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            #   @   sN  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d9d:d9dgZd;d<ddddddddddddddd=dd>gZ	d?d@dAd
dddddddddddddgZ
dZdZdBZdCdD ZdEdF ZdGdH ZdIdJ ZdKdL ZdMdN ZdOS )PDanishStemmerz
    This class implements the stemming algorithm defined by a snowball script.
    Generated by Snowball 2.2.0 - https://snowballstem.org/
    Zhedr   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østw         A   0            *    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 r/   =lib/python3.7/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|  sdS n | 	tj
dds|dS |  sd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| _| 	 sd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 }y@| j| _| ds&t | j| _| ds>t |  sJdS W n tk
r`   Y nX | j | | _| j| jk r~dS | j}| j| _| j| _| 	t
j}|dkr|| _dS | j| _|| _|dkr|  sd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   sB    

 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 |  sdS dS )NFb   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      sl   





































*&%r   c               @   s   e Zd ZdS )r+   N)rL   rM   rN   r/   r/   r/   r0   r+      s    r+   N)Zbasestemmerr   Zamongr   r   BaseExceptionr+   r/   r/   r/   r0   <module>   s    W