o
    욌h2                     @   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      ä      ö      üeemenernersesstestiglichendungischikheitkeit)   A      r   r	   r	   r	   r	   r	   r	   r	   r	   r	   r	   r	   r	      r	       r%   )u      r   )r'   r(   r   c                 C   s@  | j }	 | j }zKz?| j }z| j | _| dst | j | _| ds'W W W dS t  ty2   Y nw || _ | j | jkr?t |  j d7  _ W n	 tyP   Y nw W q ty[   Y nw || _ 	 || _ 	 | j }zz	 | j }zy| 	t
jddsyt | j | _zZ| j }z&| dst | j | _| 	t
jddst | d	sW W W W W dS t  ty   Y nw || _ | d
st | j | _| 	t
jddst | dsW W W W dS W n	 ty   Y nw || _ t  ty   Y nw || _ | j | jkrt |  j d7  _ qj ty   Y nw W qc ty   Y nw || _ 	 dS )NT   ßssFr   a      ur   yr   )cursorbraeq_slab2ket
slice_fromlab1limitlab0in_groupingr   g_vlab5lab7lab6lab4lab3)selfv_1v_2v_3v_4v_5v_6 rF   [/var/www/Befach/backend/venv/lib/python3.10/site-packages/snowballstemmer/german_stemmer.py__r_preludeA   s   






"zGermanStemmer.__r_preludec                 C   s  | j | _| j | _| j}| jd }|| j krdS || _| j| _|| _| tjdds+dS |  jd7  _| tjdds<dS |  jd7  _| j| _z| j| jk sQt	 | j| _W n	 t	y_   Y nw | tjddsjdS |  jd7  _| tjdds{dS |  jd7  _| j| _dS )Nr   Fr+   r,   r   T)
r6   I_p1I_p2r/   I_xgo_out_groupingr   r9   go_in_groupingr7   )r?   r@   crF   rF   rG   __r_mark_regions   s:   

zGermanStemmer.__r_mark_regionsc                 C   s   	 | j }z[| j | _| tj}|dkrt | j | _|dkr'| ds&W dS n7|dkr4| ds3W dS n*|dkrA| d	s@W dS n|d
krN| dsMW dS n| j | jkrWt |  j d7  _ W q  tyh   Y nw || _ 	 dS )NTr	   r   r.   Fr
   r-   r   ar   o)	r/   r0   
find_amongr   a_0r7   r3   r4   r6   )r?   r@   	among_varrF   rF   rG   __r_postlude   s@   



zGermanStemmer.__r_postludec                 C      | j | jksdS dS NFT)rI   r/   r?   rF   rF   rG   __r_R1      zGermanStemmer.__r_R1c                 C   rV   rW   )rJ   r/   rX   rF   rF   rG   __r_R2   rZ   zGermanStemmer.__r_R2c                 C   sT  | j | j }z| j| _| tj}|dkrt | j| _|  s#t |dkr/| 	 s.W dS n[|dkrx| 	 s:W dS | j | j }z.| j| _| 
dsS| j | | _t | j| _| 
dse| j | | _t | 	 smW W dS W n tyw   Y nw | tjddst | 	 sW dS W n	 ty   Y nw | j | | _| j | j }zL| j| _| tj}|dkrt | j| _|  st |dkr| 	 sW dS n"| tjddst | jd	 }|| jk rt || _| 	 sW dS W n	 ty   Y nw | j | | _| j | j }z| j| _| tj}|dkrt | j| _|  s#t |dkr| 	 s0W dS | j | j }zZ| j| _| 
d
sJ| j | | _t | j| _| j | j }z| 
ds^t | j | | _t  typ   Y nw | j | | _|  s| j | | _t | 	 sW W dS W n ty   Y nw |dkr| j | j }	z| 
dst t  ty   Y nw | j |	 | _| 	 sW dS n|d	krJ| 	 sW dS | j | j }
z`| j| _z4| j | j }z| 
dst t  ty   Y nw | j | | _| 
ds| j |
 | _t W n
 ty"   Y nw | j| _|  s5| j |
 | _t | 	 s>W W dS W nV tyI   Y nMw | 	 sRW dS | j | j }z3| j| _| tjdkro| j | | _t | j| _|  s| j | | _t | 	 sW W dS W n
 ty   Y nw W n
 ty   Y nw | j | | _dS )Nr	   r   Fr
   r   nisb   t   r   r   r   r   r   T)r6   r/   r3   find_among_br   a_1r7   r0   _GermanStemmer__r_R1	slice_deleq_s_br5   in_grouping_b
g_s_endinga_2r2   g_st_endinglimit_backwarda_4r>   _GermanStemmer__r_R2r=   r:   r<   lab9lab8r;   a_3lab10)r?   r@   rT   rA   rB   rN   rC   rD   rE   v_7v_8v_9v_10rF   rF   rG   __r_standard_suffix   s2  


















z!GermanStemmer.__r_standard_suffixc                 C   s`   | j }|   || _ | j }|   || _ | j | _| j| _ |   | j| _ | j }|   || _ dS )NT)r/   _GermanStemmer__r_prelude_GermanStemmer__r_mark_regionsrh   r6   !_GermanStemmer__r_standard_suffix_GermanStemmer__r_postlude)r?   r@   rA   rC   rF   rF   rG   _stemp  s   zGermanStemmer._stemN)__name__
__module____qualname____doc__r   rS   r`   rf   rm   ri   r9   re   rg   rK   rJ   rI   rt   ru   rw   ra   rj   rv   rx   rF   rF   rF   rG   r      s`    



























G !r   c                   @      e Zd ZdS )r7   Nry   rz   r{   rF   rF   rF   rG   r7         r7   c                   @   r}   )r5   Nr~   rF   rF   rF   rG   r5     r   r5   c                   @   r}   )r2   Nr~   rF   rF   rF   rG   r2     r   r2   c                   @   r}   )r>   Nr~   rF   rF   rF   rG   r>     r   r>   c                   @   r}   )r=   Nr~   rF   rF   rF   rG   r=     r   r=   c                   @   r}   )r:   Nr~   rF   rF   rF   rG   r:     r   r:   c                   @   r}   )r<   Nr~   rF   rF   rF   rG   r<     r   r<   c                   @   r}   )r;   Nr~   rF   rF   rF   rG   r;     r   r;   c                   @   r}   )rl   Nr~   rF   rF   rF   rG   rl     r   rl   c                   @   r}   )rk   Nr~   rF   rF   rF   rG   rk     r   rk   c                   @   r}   )rn   Nr~   rF   rF   rF   rG   rn     r   rn   N)basestemmerr   amongr   r   BaseExceptionr7   r5   r2   r>   r=   r:   r<   r;   rl   rk   rn   rF   rF   rF   rG   <module>   s      |