B
    _Ҕa                 @   s<   d dl mZ d dlmZ G dd deZG dd deZdS )   )BaseStemmer)Amongc            (   @   sj  e Zd ZdZedddedddedddedd	ded
ddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddedddeddd	edd ded!d"ded#d"ded$d"ded%d ded&d'ded(d'ded)d ded*d+ded,d+ded-d ded.dded/dded0dded1ddg%Zed2dded3dded4dded5dded6dded7dded8ddgZed9dded:dded;dded<dd=ed>dd	gZd?d@dAddddddddddddddBddCgZdDdEdFgZ	dZ
dZdGdH ZdIdJ ZdKdL ZdMdN ZdOdP ZdQS )RSwedishStemmerz
    This class implements the stemming algorithm defined by a snowball script.
    Generated by Snowball 2.2.0 - https://snowballstem.org/
    ar   Zarna    ZernaZheterna   ZornaZadeZade   ZandeZarneZareZasteenZanden   ZarenZhetenZernarZerZheter   orsas   Zarnas   ZernasZornasesZades   ZandesZensZarens   ZhetensZernsZatZandetZhetZastddgdnnZdtgtZktttZigZligZelsZfullt   u   löst   A             w         c             C   s   | j | _| j}| jd }|| j kr&dS || _| j| _|| _| tjddsNdS | tjddsbdS |  jd7  _| j| _y| j| jk st | j| _W n tk
r   Y nX dS )Nr   Fa      r   T)	limitI_p1cursorI_xZgo_out_groupingr   g_vZgo_in_groupinglab0)selfv_1c r0   >lib/python3.7/site-packages/snowballstemmer/swedish_stemmer.pyZ__r_mark_regionsN   s*    

 zSwedishStemmer.__r_mark_regionsc             C   s   | j | jk rdS | j}| j| _| j | _| tj}|dkrD|| _dS | j | _|| _|dkrh|  sdS n | 	tj
dds|dS |  sdS dS )NFr   r   b   y   T)r)   r(   limit_backwardketfind_among_br   a_0bra	slice_delZin_grouping_b
g_s_ending)r-   v_2	among_varr0   r0   r1   Z__r_main_suffixd   s&    zSwedishStemmer.__r_main_suffixc             C   s   | j | jk rdS | j}| j| _| j| j  }| tjdkrD|| _dS | j| | _ | j | _| j | jkrn|| _dS |  j d8  _ | j | _| 	 sdS || _dS )NFr   r   T)
r)   r(   r4   r'   r6   r   a_1r5   r8   r9   )r-   r;   v_3r0   r0   r1   Z__r_consonant_pair|   s&    z!SwedishStemmer.__r_consonant_pairc             C   s   | j | jk rdS | j}| j| _| j | _| tj}|dkrD|| _dS | j | _|dkrb|  sdS n&|dkrz| 	dsdS n| 	dsdS || _dS )NFr   r   r   u   lösZfullT)
r)   r(   r4   r5   r6   r   a_2r8   r9   Z
slice_from)r-   r;   r<   r0   r0   r1   Z__r_other_suffix   s(    

zSwedishStemmer.__r_other_suffixc             C   s   | j }|   || _ | j | _| j| _ | j| j  }|   | j| | _ | j| j  }|   | j| | _ | j| j  }|   | j| | _ | j| _ dS )NT)r)   _SwedishStemmer__r_mark_regionsr4   r'   _SwedishStemmer__r_main_suffix!_SwedishStemmer__r_consonant_pair_SwedishStemmer__r_other_suffix)r-   r.   r;   r>   Zv_4r0   r0   r1   _stem   s     zSwedishStemmer._stemN)__name__
__module____qualname____doc__r   r7   r=   r?   r+   r:   r*   r(   r@   rA   rB   rC   rD   r0   r0   r0   r1   r      sv   













































*
r   c               @   s   e Zd ZdS )r,   N)rE   rF   rG   r0   r0   r0   r1   r,      s    r,   N)Zbasestemmerr   Zamongr   r   BaseExceptionr,   r0   r0   r0   r1   <module>   s    7