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                #   @   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ƒed+d,dƒed-ddƒed.d/dƒg Zed0ddƒed1ddƒed2ddƒed3ddƒgZed4ddƒed5ddƒed6ddƒed7ddƒed8ddƒgZg d9¢Zg d:¢Z	g d;¢Z
dZdZd<Zd=d>„ Zd?d@„ ZdAdB„ ZdCdD„ ZdEdF„ ZdGdH„ ZdIS )JÚDanishStemmerz
    This class implements the stemming algorithm defined by a snowball script.
    Generated by Snowball 2.2.0 - https://snowballstem.org/
    Zhedéÿÿÿÿr   Zethedé    ZeredÚeZeredeé   ZendeZerendeé   ZeneZerneZereÚenZhedené
   ZerenZerZhederé   ZererÚsé   Zhedsé   ÚesZendesé   Zerendesé   ZenesZernesZeresZensZhedensé   ZerensZersZetsZeretsé   ÚetZereté   ÚgdZdtÚgtZktÚigZligZeligZelsu   lÃ¸st)éw   éß   r   r   )é   éA   r   r   r   r   r   r   r   r   r   r   r   r   r   r   é0   r   é€   )éï   éþ   é*   r   r   r   r   r   r   r   r   r   r   r   r   r   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/danish_stemmer.pyZ__r_mark_regionsI   s(    

zDanishStemmer.__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   r$   éå   T)r(   r'   Úlimit_backwardÚketÚfind_among_br   Úa_0ÚbraÚ	slice_delÚin_grouping_bÚ
g_s_ending)r,   Úv_2Ú	among_varr/   r/   r0   Z__r_main_suffix_   s&    zDanishStemmer.__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'   r2   r3   r4   r   Úa_1r6   r7   )r,   r-   Úv_3r/   r/   r0   Z__r_consonant_pairw   s&    z DanishStemmer.__r_consonant_pairc                 C   s
  | j | j }zB| j| _|  d¡s&tƒ ‚| j| _|  d¡s>tƒ ‚|  ¡ sLW dS W n ty`   Y n0 | j | | _| j| jk r~dS | j}| j| _| j| _|  	t
j¡}|dkr²|| _dS | j| _|| _|dkrö|  ¡ sÔdS | j | j }|  ¡  | j | | _n|  d¡sdS dS )NÚstr   Fr   r   u   lÃ¸sT)r&   r(   r3   Úeq_s_br+   r6   r7   r'   r2   r4   r   Úa_2Ú _DanishStemmer__r_consonant_pairZ
slice_from)r,   r-   r=   r;   Úv_4r/   r/   r0   Z__r_other_suffix   s@    


zDanishStemmer.__r_other_suffixc                 C   s†   | j | jk rdS | j}| j| _| j | _|  tjdd¡s@|| _dS | j | _|  ¡ | _	| j	dkr`dS || _|  
| j	¡svdS |  ¡ s‚dS dS )NFéb   éz   r#   T)r(   r'   r2   r3   r8   r   Úg_cr6   Zslice_toÚS_chr?   r7   )r,   r:   r/   r/   r0   Z__r_undouble²   s$    

zDanishStemmer.__r_undoublec                 C   s°   | j }|  ¡  || _ | j | _| j| _ | j| j  }|  ¡  | j| | _ | j| j  }|  ¡  | j| | _ | j| j  }|  ¡  | j| | _ | j| j  }|  ¡  | j| | _ | j| _ dS )NT)r(   Ú_DanishStemmer__r_mark_regionsr2   r&   Ú_DanishStemmer__r_main_suffixrA   Ú_DanishStemmer__r_other_suffixÚ_DanishStemmer__r_undouble)r,   r-   r:   r=   rB   Zv_5r/   r/   r0   Ú_stemÇ   s&    zDanishStemmer._stemN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r5   r<   r@   rE   r*   r9   r)   r'   rF   rG   rH   rA   rI   rJ   rK   r/   r/   r/   r0   r      sr   































à$



ü




û%r   c                   @   s   e Zd ZdS )r+   N)rL   rM   rN   r/   r/   r/   r0   r+   Ý   ó    r+   N)Zbasestemmerr   Zamongr   r   ÚBaseExceptionr+   r/   r/   r/   r0   Ú<module>   s    W