a
    Òï aB  ã                   @   sL   d dl mZ d dlmZ G dd„ deƒZG dd„ deƒZG dd„ deƒZd	S )
é   )ÚBaseStemmer)ÚAmongc                    @   s   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ƒgZed+ddƒed,ddƒgZed-ddƒed.d/dƒed0ddƒed1ddƒed2ddƒed3d4dƒed5ddƒed6ddƒed7d8dƒed9d8dƒed:ddƒgZg d;¢Zg d<¢Z	d/Z
d/Zd=d>„ Zd?d@„ ZdAdB„ ZdCdD„ ZdEdF„ ZdGS )HÚNorwegianStemmerz
    This class implements the stemming algorithm defined by a snowball script.
    Generated by Snowball 2.2.0 - https://snowballstem.org/
    Úaéÿÿÿÿr   ÚeZedeZandeZendeZaneZeneZheteneé   Zerteé   ÚenZhetené	   ÚarÚerZheteré   Úsé   Úasé   ÚesZedesé   ZendesZenesZhetenesé   ZensZhetensé   ZersZetsÚetZheté   ZertÚastZdtZvtZlegZelegé    ZigZeigZligZeligé   ZelsZlovZelové   ZslovZhetslov)é   éA   r   r   r   r   r   r   r   r   r   r   r   r   r   r   é0   r   é€   )éw   é}   é•   r   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© r/   ú@lib/python3.9/site-packages/snowballstemmer/norwegian_stemmer.pyZ__r_mark_regionsG   s(    

z!NorwegianStemmer.__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|  ¡ sfdS n´|dkrzv| j	| j  }z |  
tjdd¡s˜tƒ ‚tƒ ‚W n ty²   Y n0 | j	| | _ |  d¡sÐW dS |  tjdd	¡sæW dS W n tyú   Y n0 |  ¡ sdS n|  d
¡sdS dS )NFr   r   r   éb   éz   Úkr$   r%   r   T)r(   r'   Úlimit_backwardÚketÚfind_among_br   Úa_0ÚbraÚ	slice_delr&   Zin_grouping_bÚ
g_s_endingÚlab1r+   Zeq_s_bZout_grouping_br*   Z
slice_from)r,   Úv_2Z	among_varÚv_3r/   r/   r0   Z__r_main_suffix]   sB    




z NorwegianStemmer.__r_main_suffixc                 C   sœ   | j | j }| j| jk rdS | j}| j| _| j| _|  tj¡dkrL|| _dS | j| _|| _| j | | _| j| jkrvdS |  jd8  _| j| _|  	¡ s˜dS dS )NFr   r   T)
r&   r(   r'   r4   r5   r6   r   Úa_1r8   r9   )r,   r-   r=   r/   r/   r0   Z__r_consonant_pairƒ   s&    z#NorwegianStemmer.__r_consonant_pairc                 C   s^   | j | jk rdS | j}| j| _| j | _|  tj¡dkr@|| _dS | j | _|| _|  ¡ sZdS dS )NFr   T)	r(   r'   r4   r5   r6   r   Úa_2r8   r9   )r,   r<   r/   r/   r0   Z__r_other_suffix™   s    z!NorwegianStemmer.__r_other_suffixc                 C   s   | j }|  ¡  || _ | j | _| j| _ | j| j  }|  ¡  | j| | _ | j| j  }|  ¡  | j| | _ | j| j  }|  ¡  | j| | _ | j| _ dS )NT)r(   Ú!_NorwegianStemmer__r_mark_regionsr4   r&   Ú _NorwegianStemmer__r_main_suffixÚ#_NorwegianStemmer__r_consonant_pairÚ!_NorwegianStemmer__r_other_suffix)r,   r-   r<   r=   Zv_4r/   r/   r0   Ú_stem©   s     zNorwegianStemmer._stemN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r7   r>   r?   r*   r:   r)   r'   r@   rA   rB   rC   rD   r/   r/   r/   r0   r      sn   




























ã!

þ










õ&r   c                   @   s   e Zd ZdS )r+   N©rE   rF   rG   r/   r/   r/   r0   r+   ¼   ó    r+   c                   @   s   e Zd ZdS )r;   NrI   r/   r/   r/   r0   r;   ¿   rJ   r;   N)Zbasestemmerr   Zamongr   r   ÚBaseExceptionr+   r;   r/   r/   r/   r0   Ú<module>   s
    6