o
    Mi)E                     @   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dS )   )BaseStemmer)Amongc                   @   sL  e Zd ZdZh dZh dZh dZdZdd Zdd	 Z	d
d Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zd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d0d"d1ed2d"d-ed3d"d-ed4d"d-ed5d"d6ed7d"d8ed9d"d:ed;d"d<ed=d"d>gZed?dded@ddedAd%dedBddedCddedDd+dgZedEddedFddedGddedHddedId)dedJd)dedKddedLddedMd6dedNddedOddedPddedQd>dedRddedSddedTd dedUd dgZedVddedWddedXd%dedYddedZd)ded[dded\dded]dded^dded_d8ded`ddedaddedbddedcddeddd#dededdedfddedgddedhddediddgZedjddedkddgZedlddedmd"dednddedoddedpddedqddedrddedsddedtddeduddedvddedwddedxddedyddedzdded{dded|dded}dded~ddedddedddedddedddedddgZedddedddedkddgZedddedddgZedddedd"dedddedddedd)dedd)dedddgZedddeddded@ddedddeedd)dedd)dedddeedd1dedd1dedd1deedd:dedd:dedd1deddded?ddedAddedBddedDddedCddgZdS )EsperantoStemmerz
    This class implements the stemming algorithm defined by a snowball script.
    Generated from esperanto.sbl by Snowball 3.0.1 - https://snowballstem.org/
    >   aeiou>   r   r   r	   >
   0123456789Fc                 C   s  d| _ 	 | j}z| j| _| tj}| j| _|dkr#| ds"W dS n|dkr0| ds/W dS n|dkr=| ds<W dS n|d	krJ| d
sIW dS n|dkrW| dsVW dS n}|dkrd| dscW dS np|dkrt| dspW dS d| _ n`|dkr| dsW dS d| _ nP|dkr| dsW dS d| _ n@|dkr| dsW dS d| _ n0|dkr| dsW dS d| _ n |dkrd| _ n|dkrd| _ n| j| jkrt	 |  jd7  _W q t	y   Y nw || _	 z	| j st
 W dS  t
y   Y dS w )NFTr      ĉ   u   ĝ   u   ĥ   u   ĵ   u   ŝ   u   ŭ   r      r   	   r   
   r      r	         )	B_foreigncursorbra
find_amongr   a_0ket
slice_fromlimitlab0lab1)selfv_1	among_var r.   U/home/ubuntu/.local/lib/python3.10/site-packages/snowballstemmer/esperanto_stemmer.py__r_canonical_form   s   










z#EsperantoStemmer.__r_canonical_formc                 C   sb   | j | _| dsdS | j | _| dsdS | tjdkr dS | j | jk r(dS | ds/dS dS )N'Fst    r   T)	r"   r#   eq_sr&   r$   r   a_1r(   r'   r+   r.   r.   r/   __r_initial_apostropheW   s   


z'EsperantoStemmer.__r_initial_apostrophec                 C   s   | j | _| j| j  }z| ds| j| | _ t W n	 ty#   Y nw | j | _| tjdkr2dS z,| j| j  }z| j | j	krCt
 t  t
yN   Y nw | j| | _ | ds]W dS W n	 tyg   Y nw |  sndS dS )Nnr3   F-T)r"   r&   r(   eq_s_br)   r#   find_among_br   a_2limit_backwardlab2r*   	slice_delr+   r,   v_2r.   r.   r/   __r_pronounf   s4   

zEsperantoStemmer.__r_pronounc                 C   s  | j | _| dsdS | j | _z| j| j  }z| dst | j | jkr(t | ds1W W dS t  ty<   Y nw | j| | _ z| dsLt	 | j | jkrUt	 | ds^W W dS t  t	yi   Y nw | j| | _ zM| 
tjdkr|t z,| j| j  }z| j | jkrt t  ty   Y nw | j| | _ | dst W n	 ty   Y nw | d	sW W dS t  ty   Y nw | j| | _ | d
sW dS W dS  ty   Y dS w )Nr1   Flr   unr	   r3   r9   u   aŭr   T)r"   r&   r:   r#   r(   r*   r=   r'   r)   r>   r;   r   a_3lab3lab5lab4r@   r.   r.   r/   __r_final_apostrophe   sj   







z%EsperantoStemmer.__r_final_apostrophec                 C   s   | j | _| j| j  }z| ds| j| | _ t W n	 ty#   Y nw | j| j  }z| ds9| j| | _ t W n	 tyC   Y nw | j | _| tj	dkrRdS z,| j| j  }z| j | j
krct t  tyn   Y nw | j| | _ | ds}W dS W n	 ty   Y nw |  sdS dS )Nr8   jr3   Fr9   T)r"   r&   r(   r:   r)   r*   r#   r;   r   a_4r=   rF   r>   r?   )r+   r,   rA   v_3r.   r.   r/   __r_ujn_suffix   sB   


zEsperantoStemmer.__r_ujn_suffixc                 C   s   |  tjdkr
dS z-| j| j }z| j| jkrt t  ty&   Y nw | j| | _| ds5W dS W dS  tyA   Y dS w Nr3   Fr9   T)	r;   r   a_5r(   r"   r=   r*   r)   r:   r+   r,   r.   r.   r/   __r_uninflected   s"   
z EsperantoStemmer.__r_uninflectedc                 C   s,   |  tjdkr
dS |  tjdkrdS dS )Nr3   FT)r;   r   a_6a_7r6   r.   r.   r/   __r_merged_numeral   s
   z#EsperantoStemmer.__r_merged_numeralc                 C   s:  | j | _| j | _| j| j  }z| j| j  }z/| j| j  }z| ds+| j| | _ t W n	 ty5   Y nw | j | _| dsBt t  tyM   Y nw | j| | _ | j| j  }z| dsi| j| | _ t W n	 tys   Y nw | j| j  }z| ds| j| | _ t	 W n	 t	y   Y nw | j | _| 
tjsW dS W n	 ty   Y nw | dsdS | j| j  }z| tjdkr| j| | _ t W n	 ty   Y nw z-| j| j  }z| j | jkrt t  ty   Y nw | j| | _ | dsW dS W n
 ty   Y nw | j| | _ |  sdS dS )	Nr8   r   rJ   Fr   r3   r9   T)r"   r&   r#   r(   r:   r>   r*   r)   rF   rH   in_grouping_br   g_aour;   a_8rG   r=   lab7lab6r?   )r+   r,   rA   rL   v_4v_5v_6v_7r.   r.   r/   __r_correlative   s~   





z EsperantoStemmer.__r_correlativec                 C   s@  z| j | j }zdD ]}| tjst |  jd8  _q
t  ty(   Y nw | j | | _zDz'	 z| ds;t t	  tyF   Y nw | j| j
krPt |  jd8  _q2 t	y`   Y nw | j| j
krjt |  jd8  _t  ty|   Y nw | j | | _| tjsW dS |  jd8  _W dS  ty   Y dS w )N)r3   r3   r   Tr9   F)r(   r"   go_out_grouping_br   g_vowelr*   r)   r:   rH   rF   r=   r>   g_digitr@   r.   r.   r/   __r_long_word(  sH   
	zEsperantoStemmer.__r_long_wordc                 C   sp   z-| j | j }z| dst t  ty   Y nw | j | | _| tjs+W dS W dS  ty7   Y dS w )Nr9   FT)r(   r"   r:   r*   r)   rU   r   ra   rP   r.   r.   r/   __r_not_after_letterL  s   
z%EsperantoStemmer.__r_not_after_letterc                 C   st   | j | _| tjdkrdS | j| j  }z| ds#| j| | _ t W n	 ty-   Y nw | j | _| 	 s8dS dS rN   )
r"   r&   r;   r   a_9r(   r:   r)   r#   r?   rP   r.   r.   r/   __r_standard_suffixZ  s   
z$EsperantoStemmer.__r_standard_suffixc           
      C   s  | j }|  s	dS || _ | j }|   || _ | j | _| j| _ | j| j  }z
|  s,t W dS  ty7   Y nw | j| | _ | j| j  }|   | j| | _ | j| j  }z
|  s\t	 W dS  t	yg   Y nw | j| | _ | j| j  }z
| 
 s|t W dS  ty   Y nw | j| | _ | j| j  }z
|  st W dS  ty   Y nw | j| | _ | j| j  }z
|  st W dS  ty   Y nw | j| | _ | j| j  }	|  sdS | j|	 | _ |  sdS | j| _ dS )NFT)r"   #_EsperantoStemmer__r_canonical_form'_EsperantoStemmer__r_initial_apostropher=   r(   _EsperantoStemmer__r_pronounr)   %_EsperantoStemmer__r_final_apostrophe _EsperantoStemmer__r_correlativer*    _EsperantoStemmer__r_uninflectedr>   #_EsperantoStemmer__r_merged_numeralrF   _EsperantoStemmer__r_ujn_suffixrH   _EsperantoStemmer__r_long_word$_EsperantoStemmer__r_standard_suffix)
r+   r,   rA   rL   rZ   r[   r\   r]   v_8v_9r.   r.   r/   _stemj  sn   zEsperantoStemmer._stem    r9   r3   r    cxr   gxr   hxr   jxr   qr   sxr   uxr   wxy   ár      ér      ír      ór      úr   asr   isosr	   uscigihiliiliu   ŝliminionirisiviiviu   ĝiu   ŝiu   iŝiu   malŝiambbaldmalbaldmorgpostmorgadihodianku   ĉirku   tutĉirkpreskalmenapenhieru
   antaŭhiermalgrankorkontranstatkvazaliuunuahahahahalelujaholahosanamaltrahurau   ĥaĥaekdeeldedisdeehemaltre	dirlididimalpliu   malĉimalkajamentamen   ohomaltrominusuhumuutridudekcentkkelknentmultsamtr   r   r   rJ   ajojr8   anenjnajnojnonr   N)__name__
__module____qualname____doc__r`   rV   ra   r!   rf   rg   rh   ri   rm   rk   rl   rj   rn   %_EsperantoStemmer__r_not_after_letterro   rr   r   r%   r5   r<   rE   rK   rO   rR   rS   rW   rd   r.   r.   r.   r/   r      s"   A3!<$
:

















































































































r   c                   @      e Zd ZdS )r)   Nr   r   r   r.   r.   r.   r/   r)   7      r)   c                   @   r   )r*   Nr   r.   r.   r.   r/   r*   :  r   r*   c                   @   r   )r>   Nr   r.   r.   r.   r/   r>   =  r   r>   c                   @   r   )rF   Nr   r.   r.   r.   r/   rF   @  r   rF   c                   @   r   )rH   Nr   r.   r.   r.   r/   rH   C  r   rH   c                   @   r   )rG   Nr   r.   r.   r.   r/   rG   F  r   rG   c                   @   r   )rY   Nr   r.   r.   r.   r/   rY   I  r   rY   c                   @   r   )rX   Nr   r.   r.   r.   r/   rX   L  r   rX   N)basestemmerr   amongr   r   BaseExceptionr)   r*   r>   rF   rH   rG   rY   rX   r.   r.   r.   r/   <module>   s       3