o
    MiR                     @   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                   @   sd  e Zd ZdZh dZ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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#gZ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d0d d1ed2d3d-ed4d d-ed5d d3ed6d d-ed7d d!ed8d d!ed9d d%ed:d d-ed;d<d-gZg ed=d d-ed>d d-ed?d d1ed@d d3edAd d-edBd d1edCd d3edDd d1edEd d3edFd d1edGd d-edHd d!edId d#edJd d%edKd d-edLd d1edMd d3edNd d-edOd d1edPdQd-edRd d3edSd d1edTd d-edUd d!edVd d%edWd d-edXd d1edYd d3edZd 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dad d1edbdcd-eddd d3eded d1edfd d-edgd d1edhd d3edid d-edjd d-edkd d1edld d3Zg 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ddd!edd d!edd d!edd d%edd d!edd d!edd d!edd d!edd d!edd d#edOd d!edd d!edd d!eddd!edd d!edd d!edd d%edd d!edd d%edd d!edd d!edd d!edd d!edd d!edd d!edd d%edad d!edd d!edd d!edd d!edd d!edd d%edd d!edd d!edd d!edd d!edd d!edd d!edd d!edd d!edd d!edd d%edd d!edd d!Zg ed(d d!edd d!edd d!edd d!edd d!edd d!edd d!edd d!edd d!edd d!edd d#eddd!eddd#eddd!eddd!eddd!edd d!edd d!edd d!edd d!eddd!eddd!edd d#edd d!edd d!edd d!edd d!edd d!edd d!edd d#eddd!eddd#eddd!eddd!eddd!edd d!edd d!edd d!edd d#eddd!eddd!edd d#edd d#edd d#edd d!edd d#eddd!eddd#eddd!eddd!eddd!edd d!edd d!edd d!edd d!eddd!eddd!edd d#eddd!eddd#eddd!eddd!eddd!edd d#edd d#edd d#eddd!eddd#eddd!eddd#eddd!eddd!eddd!eddd!eddd!eddd!edd 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!Zedd d!edd d!edd!d!edd d!edd d!gZdS (  RomanianStemmerz
    This class implements the stemming algorithm defined by a snowball script.
    Generated from romanian.sbl by Snowball 3.0.1 - https://snowballstem.org/
    >   aeiou   â   î   ăF    c                 C   s  | j }zx	 | j }zdzX	 | j }z6| j | _| tj}|dkr t | j | _|dkr4| ds3W W W W dS n| ds?W W W W dS || _ t  tyM   Y nw || _ | j | j	krZt
 |  j d7  _ q tyj   Y nw W q t
yu   Y nw || _ 	 W n	 ty   Y nw || _ dS )NTr   r   u   șF   ț)cursorbra
find_amongr   a_0lab3ket
slice_fromlab2limitlab1lab0)selfv_1v_2v_3	among_var r   T/home/ubuntu/.local/lib/python3.10/site-packages/snowballstemmer/romanian_stemmer.py__r_norm   sH   

zRomanianStemmer.__r_normc                 C   sj  	 | j }zz	 | j }zs| tjst | j | _zV| j }z$| ds%t | j | _| tjs2t | 	ds>W W W W W dS t
  tyI   Y nw || _ | dsUt | j | _| tjsbt | 	dsmW W W W dS W n	 t
yw   Y nw || _ t  ty   Y nw || _ | j | jkrt |  j d7  _ q ty   Y nw W q  ty   Y nw || _ 	 dS )NTr	   UFr   Ir   )r   in_groupingr   g_vr   r   eq_slab4r   r   r   r   r   r   )r   r   r   r   r   r   r    __r_prelude:   s\   



"zRomanianStemmer.__r_preludec                 C   s  | j | _| j | _| j | _| j}zz| j}z^| tjst zI| j}z| 	tjs,t
 | tjs5t
 |  jd7  _t  t
yG   Y nw || _| tjsTt | tjs]t |  jd7  _W t  tyr   Y t w  ty{   Y nw || _| 	tjst zG| j}z| 	tjst | tjst |  jd7  _t  ty   Y nw || _| tjst | j| j krt |  jd7  _W n	 ty   Y nw W n	 ty   Y nw | j| _W n	 ty   Y nw || _| j}zN| tjst |  jd7  _| tjst |  jd7  _| j| _| tjs*t |  jd7  _| tjs;t |  jd7  _| j| _W n
 tyQ   Y nw || _dS )Nr   T)r   I_pVI_p1I_p2r   r$   r   r%   r   out_groupingr'   go_out_groupingr   go_in_groupingr   r   lab6lab5lab7)r   r   r   r   v_4v_5r   r   r    __r_mark_regionsh   s   z RomanianStemmer.__r_mark_regionsc                 C   s   	 | j }z:| j | _| tj}| j | _|dkr | dsW dS n|dkr-| ds,W dS n| j | jkr6t |  j d7  _ W q  tyG   Y nw || _ 	 dS )NTr   r   F   r	   )	r   r   r   r   a_1r   r   r   r   r   r   r   r   r   r    __r_postlude   s,   

zRomanianStemmer.__r_postludec                 C      | j | jkS N)r)   r   r   r   r   r    __r_RV      zRomanianStemmer.__r_RVc                 C   r9   r:   )r*   r   r;   r   r   r    __r_R1   r=   zRomanianStemmer.__r_R1c                 C   r9   r:   )r+   r   r;   r   r   r    __r_R2   r=   zRomanianStemmer.__r_R2c                 C   s"  | j | _| tj}|dkrdS | j | _|  sdS |dkr&|  s$dS dS |dkr3| ds1dS dS |dkr@| ds>dS dS |dkrM| d	sKdS dS |d
kr{| j	| j  }z| 
ds`t W dS  tyk   Y nw | j	| | _ | d	sydS dS |dkr| dsdS dS | dsdS dS )Nr   Fr   r5   r      r      r      ab   at   ațiT)r   r   find_among_br   a_2r   _RomanianStemmer__r_R1	slice_delr   r   eq_s_br   )r   r   r   r   r   r    
__r_step_0   sR   






zRomanianStemmer.__r_step_0c                 C   s   | j | j }| j| _| tj}|dkrdS | j| _|  s dS |dkr,| ds+dS n7|dkr8| ds7dS n+|dkrD| dsCdS n|d	krP| d
sOdS n|dkr\| ds[dS n| dscdS d| _	| j | | _dS )Nr   Fr   abilr5   ibilr@   ivrA   icrB   rE   itT)
r   r   r   rG   r   a_3r   rI   r   B_standard_suffix_removedr7   r   r   r    __r_combo_suffix   sB   





z RomanianStemmer.__r_combo_suffixc                 C   s   d| _ 	 | j| j }z	|  st W q ty   Y nw | j| | _	 | j| _| tj}|dkr4dS | j| _	| 
 s>dS |dkrI|  sHdS n|dkr`| dsTdS | j| _	| ds_dS n| dsgdS d| _ dS )	NFTr   r   r5   r   tist)rS   r   r    _RomanianStemmer__r_combo_suffixr   r   rG   r   a_4r   _RomanianStemmer__r_R2rJ   rK   r   r7   r   r   r    __r_standard_suffix  s@   


z#RomanianStemmer.__r_standard_suffixc                 C   s   | j | jk rdS | j}| j| _| j | _| tj}|dkr"|| _dS | j | _|dkrjz/| j| j  }z| 	tj
s;t t  tyF   Y nw | j| | _ | dsX|| _W dS W n	 tyb   Y nw |  sidS n|  spdS || _dS )NFr   r   r	   T)r   r)   limit_backwardr   rG   r   a_5r   r   out_grouping_br%   r   r   rK   rJ   )r   r   r   r   r   r   r    __r_verb_suffix:  s>   
zRomanianStemmer.__r_verb_suffixc                 C   s@   | j | _| tjdkrdS | j | _|  sdS |  sdS dS )Nr   FT)r   r   rG   r   a_6r   _RomanianStemmer__r_RVrJ   r;   r   r   r    __r_vowel_suffix\  s   z RomanianStemmer.__r_vowel_suffixc                 C   sH  |    | j}|   || _|   | j| _| j| _| j| j }|   | j| | _| j| j }|   | j| | _| j| j }z4z(| j| j }z	| jsOt	 t
  t	yZ   Y nw | j| | _|  sht W n	 t
yr   Y nw W n	 ty}   Y nw | j| | _| j| j }|   | j| | _| j| _| j}|   || _dS )NT)_RomanianStemmer__r_normr   _RomanianStemmer__r_prelude _RomanianStemmer__r_mark_regionsr[   r   _RomanianStemmer__r_step_0#_RomanianStemmer__r_standard_suffixrS   r   r   _RomanianStemmer__r_verb_suffixr    _RomanianStemmer__r_vowel_suffix_RomanianStemmer__r_postlude)r   r   r2   r3   v_6v_7v_8v_9r   r   r    _stemh  sL   zRomanianStemmer._stemu   şr   u   ţr5    r@   r#   r"   eau   ația   auaiuarA   u   ațieeleilerB   iilerD   ieiateiiiuluiuleloriloriilor   icalaicivaativaitivaicaleu   ațiuneu   ițiuneatoareitoareu   ătoareicitate	abilitate	ibilitateivitateiciveativeitiveicaliatoriicatori   itoriu   ătoriicitati	abilitatiivitatiiciviativiitiviu   icităiu	   abilităiu   ivităiu	   icitățiu   abilitățiu	   ivitățiicalatoricator#   itoru   ătoricivativitivu   icalău   icivău   ativău   itivăicaabilaibilaoasaataitaantaistautaivarP   iceabileibileismeiuneoaseateitate   iteanteisteuteiveiciabiliibiliiuniosiatiitati   itiantiistiutiu   iștiiviu   ităiu   oșiu   itățirM   rN   ismosrE   rQ   antrV   utrO   u   icău   abilău   ibilău   oasău   atău   itău   antău   istău   utău   ivăiaescu   ăscindu   ândareereireu   âresease
   seseiseuseu   âseu   eșteu   ășteezeaieai   iaiseiu   eștiu   ăștiuieziu   âiu   așiu   seșiu   aseși   u   seseșiu   iseșiu   useșiu   âseșiu   ișiu   ușiu   âșirF   u   eați&   u   iațiu   ețiu   ițiu   âțiu   arățiu   serățiu	   aserăți-   u
   seserățiu	   iserățiu	   userățiu
   âserățiu   irățiu   urățiu   ârățiameam6   iamemasem9   sesemisemusemu   âsemimu   âmu   ămu   arămA   u   serămu   aserămC   u   seserămu   iserămu   userămu   âserămu   irămu   urămu   ârămaueauL   iauinduu   ânduezu   eascău   arău   serău   aserăT   u   seserău   iserău   userău   âserău   irău   urău   ârău   eazăr   r   ier   r   N)__name__
__module____qualname____doc__r%   rS   r+   r*   r)   rb   rc   rd   ri   r`   rI   rY   re   rW   rf   rg   rh   rn   r   r   r6   rH   rR   rX   r\   r_   r   r   r   r    r      s   %.J'""
'




























	























 
!
"
#
$
%
&
'
(
)
*
+
,
-
.1








	























 
!
"
#
$
%
&
'
(
)
*
+
,
-
.
/
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>A








	























 
!
"
#
$
%
&
'
(
)
*
+
,
-
.
/
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
@
A
B
C
D
E
F
G
H
I
J
K
L
MNOPQRSTUVWXYZ[\]^b
r   c                   @      e Zd ZdS )r   Nr   r   r   r   r   r   r    r         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   )r   Nr   r   r   r   r    r     r   r   c                   @   r   )r'   Nr   r   r   r   r    r'     r   r'   c                   @   r   )r0   Nr   r   r   r   r    r0     r   r0   c                   @   r   )r/   Nr   r   r   r   r    r/     r   r/   c                   @   r   )r1   Nr   r   r   r   r    r1     r   r1   N)basestemmerr   amongr   r   BaseExceptionr   r   r   r   r'   r0   r/   r1   r   r   r   r    <module>   s         