a
    Òï 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                (   @   sF  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g d?¢Zg d@¢Z	dZ
dZdAdB„ ZdCdD„ ZdEdF„ ZdGdH„ ZdIdJ„ ZdKS )LÚSwedishStemmerz
    This class implements the stemming algorithm defined by a snowball script.
    Generated by Snowball 2.2.0 - https://snowballstem.org/
    Úaéÿÿÿÿr   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hetÚastÚddÚgdÚnnZdtÚgtZktÚttZigZligZelsZfullté   u   lÃ¶st)é   éA   é   r   r   r   r   r   r   r   r   r   r   r   r   r   é   r   é    )é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| _z| j| jk sŒtƒ ‚| j| _W n ty¨   Y n0 dS )Nr   Féa   éö   r   T)	ÚlimitÚI_p1ÚcursorÚI_xZgo_out_groupingr   Úg_vZgo_in_groupingÚlab0)ÚselfÚv_1Úc© r1   ú>lib/python3.9/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|  ¡ sˆdS n |  	tj
dd¡s|dS |  ¡ sˆd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_2Z	among_varr1   r1   r2   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)   r5   r(   r7   r   Úa_1r6   r9   r:   )r.   r=   Úv_3r1   r1   r2   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|  ¡ sˆdS n&|dkrz|  	d¡sˆdS n|  	d¡sˆdS || _dS )NFr   r   r   u   lÃ¶sZfullT)
r*   r)   r5   r6   r7   r   Úa_2r9   r:   Z
slice_fromr<   r1   r1   r2   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_regionsr5   r(   Ú_SwedishStemmer__r_main_suffixÚ!_SwedishStemmer__r_consonant_pairÚ_SwedishStemmer__r_other_suffix)r.   r/   r=   r?   Zv_4r1   r1   r2   Ú_stemª   s     zSwedishStemmer._stemN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r8   r>   r@   r,   r;   r+   r)   rA   rB   rC   rD   rE   r1   r1   r1   r2   r      s|   




































Û)






ù




ûr   c                   @   s   e Zd ZdS )r-   N)rF   rG   rH   r1   r1   r1   r2   r-   ½   ó    r-   N)Zbasestemmerr   Zamongr   r   ÚBaseExceptionr-   r1   r1   r1   r2   Ú<module>   s    7