a
    a2                     @   s   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G d	d
 d
eZG dd deZ	G dd deZ
G dd deZG dd deZG dd de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g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gZ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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	g d Z
g d!Zg d"ZdZdZdZd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd1S )2GermanStemmerz
    This class implements the stemming algorithm defined by a snowball script.
    Generated by Snowball 2.2.0 - https://snowballstem.org/
        U       Yr      ä      ö      üeZemenZernersesstZestigZlichendZungZischZikZheitZkeit)   A      r   r	   r	   r	   r	   r	   r	   r	   r	   r	   r	   r	   r	      r	       r   )u      r   )r   r   r   c                 C   sr  | j }| j }zz| j }z>| j | _| ds0t | j | _| dsLW W W dS t W n tyf   Y n0 || _ | j | jkrt |  j d7  _ W n ty   Y n0 W qW n ty   Y n0 || _ qq|| _ | j }zvzV| j }z
| 	t
jddst | j | _z| j }zV| ds t | j | _| 	t
jdds@t | dsZW W W W W dS t W n tyv   Y n0 || _ | d	st | j | _| 	t
jddst | d
sW W W W dS W n ty   Y n0 || _ t W n ty   Y n0 || _ | j | jkrt |  j d7  _ qW n tyD   Y n0 W qW n ty`   Y n0 || _ qnqdS )N   ßssFr   a      ur   yr   T)cursorbraZeq_slab2ket
slice_fromlab1limitlab0Zin_groupingr   g_vlab5lab7lab6lab4lab3)selfv_1v_2v_3v_4v_5v_6 r;   =lib/python3.9/site-packages/snowballstemmer/german_stemmer.pyZ__r_preludeA   s    





zGermanStemmer.__r_preludec                 C   s  | j | _| j | _| j}| jd }|| j kr.dS || _| j| _|| _| tjddsVdS |  jd7  _| tjddsxdS |  jd7  _| j| _z| j| jk st	 | j| _W n t	y   Y n0 | tjddsdS |  jd7  _| tjddsdS |  jd7  _| j| _dS )Nr   Fr"   r#   r   T)
r,   I_p1I_p2r&   I_xZgo_out_groupingr   r.   Zgo_in_groupingr-   )r4   r5   cr;   r;   r<   Z__r_mark_regions   s:    

zGermanStemmer.__r_mark_regionsc                 C   s   | j }z| j | _| tj}|dkr*t | j | _|dkrL| dsW dS nn|dkrf| dsW dS nT|dkr| dsW dS n:|d	kr| d
sW dS n | j | jkrt |  j d7  _ W q W n ty   Y n0 || _ qq dS )Nr	   r   r%   Fr
   r$   r   ar   oT)	r&   r'   Z
find_amongr   a_0r-   r)   r*   r,   )r4   r5   	among_varr;   r;   r<   Z__r_postlude   s6    



zGermanStemmer.__r_postludec                 C   s   | j | jksdS dS NFT)r=   r&   r4   r;   r;   r<   Z__r_R1   s    zGermanStemmer.__r_R1c                 C   s   | j | jksdS dS rE   )r>   r&   rF   r;   r;   r<   Z__r_R2   s    zGermanStemmer.__r_R2c                 C   s  | j | j }z| j| _| tj}|dkr2t | j| _|  sHt |dkr`| 	 s^W dS n|dkr| 	 svW dS | j | j }z\| j| _| 
ds| j | | _t | j| _| 
ds| j | | _t | 	 sW W dS W n ty   Y n0 n(| tjddst | 	 sW dS W n ty2   Y n0 | j | | _| j | j }z| j| _| tj}|dkrrt | j| _|  st |dkr| 	 sW dS nJ| tjddst | jd	 }|| jk rt || _| 	 sW dS W n ty   Y n0 | j | | _| j | j }z8| j| _| tj}|dkrHt | j| _|  s`t |dkrV| 	 szW dS | j | j }z| j| _| 
d
s| j | | _t | j| _| j | j }z(| 
dst | j | | _t W n ty   Y n0 | j | | _|  s(| j | | _t | 	 s:W W dS W n tyP   Y n0 n|dkr| j | j }	z| 
dst t W n ty   Y n0 | j |	 | _| 	 sXW dS n|d	kr| 	 sW dS | j | j }
z| j| _zl| j | j }z| 
dst t W n ty,   Y n0 | j | | _| 
dsX| j |
 | _t W n tyn   Y n0 | j| _|  s| j |
 | _t | 	 sW W dS W n ty   Y n0 n| 	 sW dS | j | j }zf| j| _| tjdkr
| j | | _t | j| _|  s.| j | | _t | 	 s@W W dS W n tyV   Y n0 W n tyn   Y n0 | j | | _dS )Nr	   r   Fr
   r   Znisb   t   r   r   r   r   r   T)r,   r&   r)   Zfind_among_br   a_1r-   r'   _GermanStemmer__r_R1Z	slice_delZeq_s_br+   Zin_grouping_b
g_s_endinga_2r(   g_st_endinglimit_backwarda_4r3   _GermanStemmer__r_R2r2   r/   r1   lab9lab8r0   a_3lab10)r4   r5   rD   r6   r7   r@   r8   r9   r:   Zv_7Zv_8Zv_9Zv_10r;   r;   r<   Z__r_standard_suffix   s   






























z!GermanStemmer.__r_standard_suffixc                 C   s`   | j }|   || _ | j }|   || _ | j | _| j| _ |   | j| _ | j }|   || _ dS )NT)r&   _GermanStemmer__r_prelude_GermanStemmer__r_mark_regionsrN   r,   !_GermanStemmer__r_standard_suffix_GermanStemmer__r_postlude)r4   r5   r6   r8   r;   r;   r<   _stemp  s    zGermanStemmer._stemN)__name__
__module____qualname____doc__r   rC   rI   rL   rS   rO   r.   rK   rM   r?   r>   r=   rU   rV   rX   rJ   rP   rW   rY   r;   r;   r;   r<   r      s^   



























G !r   c                   @   s   e Zd ZdS )r-   NrZ   r[   r\   r;   r;   r;   r<   r-         r-   c                   @   s   e Zd ZdS )r+   Nr^   r;   r;   r;   r<   r+     r_   r+   c                   @   s   e Zd ZdS )r(   Nr^   r;   r;   r;   r<   r(     r_   r(   c                   @   s   e Zd ZdS )r3   Nr^   r;   r;   r;   r<   r3     r_   r3   c                   @   s   e Zd ZdS )r2   Nr^   r;   r;   r;   r<   r2     r_   r2   c                   @   s   e Zd ZdS )r/   Nr^   r;   r;   r;   r<   r/     r_   r/   c                   @   s   e Zd ZdS )r1   Nr^   r;   r;   r;   r<   r1     r_   r1   c                   @   s   e Zd ZdS )r0   Nr^   r;   r;   r;   r<   r0     r_   r0   c                   @   s   e Zd ZdS )rR   Nr^   r;   r;   r;   r<   rR     r_   rR   c                   @   s   e Zd ZdS )rQ   Nr^   r;   r;   r;   r<   rQ     r_   rQ   c                   @   s   e Zd ZdS )rT   Nr^   r;   r;   r;   r<   rT     r_   rT   N)Zbasestemmerr   Zamongr   r   BaseExceptionr-   r+   r(   r3   r2   r/   r1   r0   rR   rQ   rT   r;   r;   r;   r<   <module>   s     |