U
    YShW                     @   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dS )   )BaseStemmer)Amongc                Z   @   sz  e Zd ZdZdddddddd	d
dh
Zddddddd	d
hZddh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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d3gZed%d&d/ed4dd+ed5dd-gZed6d&d&ed7dd&ed8dd&ed9d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dAd)d&edBd&d&edCdDd&edEdDd&edFdDd&edGdDd&edHdDd&edIdDd&edJd&d&edKd&d&edLdMd&edNdMd&edOdMd&edPdMd&edQdMd&edRdMd&edSd&d&edTd&d&edUd&d&edVd&d&edWd&d&edXdYd&edZdYd&ed[dYd&ed\dYd&ed]dYd&g%Zed^d&d+ed_d&d+ed`d&d-edad&d-edbd&d-gZedcd&d&eddd&d&eded&d&edfd&d+gZedcd&d+eddd&d+edfd&d+gZedgd&d+edhd&d/edid&d+edjd&d+edkd&dledmd&d+ednd&d3edod&d+edpd'd+edqd&d+edrd&d/edsd&d+edtd&d+edud&d1edvd&d-edwd&d1edxd&d-edyd&d+edzd&d+ed{d&d+ed|d}d'ed~d&d+edd&dledd&d+edd&d3edd&d+eddd+edd&d+edd&d+edd&d+edd&d+edd&d1edd&d-edd&d1edd&d-edd&d+edd&d+edd&d)edd&d)edd&d+edd&dledd&d+edd&d+edd&d+edd&d)edd&d)edd&dledd&dedd&d+edd&d+edd&d+g3Zedd&d+edd&d+edd&d+edd&d+edd&d+edd&d+edd&d+edkd&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dd&d+eddMd+eddMd+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+edd&d+edd&d+edd&d+ed^d&d+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dd&d+edd&d+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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d`d&d+edbd&d+edd&d+edd&d+edd&d+edd&d+gWZdS )ItalianStemmerz
    This class implements the stemming algorithm defined by a snowball script.
    Generated from italian.sbl by Snowball 3.0.1 - https://snowballstem.org/
    aeiou   à   è   ì   ò   ùcg    c                 C   s  | j }| j }z| j | _| tj}| j | _|dkrD| dsW dS n|dkr^| dsW dS n|dkrx| dsW dS nn|dkr| 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k
r   Y nX || _ qq|| _ | j }zxzT| j }z| 	tj
sBt | j | _z| j }zR| dsft | j | _| 	tj
st | dsW W W W W dS t W n tk
r   Y nX || _ | dst | j | _| 	tj
st | dsW W W W dS W n tk
r    Y nX || _ t W n tk
rF   Y nX || _ | j | jkrbt |  j d7  _ q$W n tk
r   Y nX W qW n tk
r   Y nX || _ qqdS )Nr   r
   F   r      r      r      r      ZqUr	   Ur   IT)cursorbra
find_amongr   a_0ket
slice_fromlimitlab0in_groupingg_vlab3eq_slab5lab4lab2lab1)selfv_1v_2	among_varv_3v_4v_5 r0   R/root/rtd-docs/venv/lib/python3.8/site-packages/snowballstemmer/italian_stemmer.pyZ__r_prelude   s    





 
  
  
 zItalianStemmer.__r_preludec                 C   s  | j | _| j | _| j | _| j}zz| j}z| tjs@t z| j}z<| 	tjs\t
 | tjsnt
 |  jd7  _t W n t
k
r   Y nX || _| tjst | tjst |  jd7  _W n tk
r   Y nX t W n tk
r   Y nX || _z| ds$t t W n tk
rB   Y nX || _| 	tjs^t z| j}z@| 	tjs|t | tjst |  jd7  _t W n tk
r   Y nX || _| tjst | j| j krt |  jd7  _W n tk
r   Y nX W n tk
r,   Y nX | j| _W n tk
rN   Y nX || _| j}z| tjsrt |  jd7  _| tjst |  jd7  _| j| _| tjst |  jd7  _| tjst |  jd7  _| j| _W n tk
r   Y nX || _dS )Nr   ZdivanT)r   I_pVI_p1I_p2r   r!   r   r"   r'   Zout_groupingr&   Zgo_out_groupingr#   Zgo_in_groupingr(   r$   r%   r    lab7lab6lab8)r)   r*   r+   r-   r.   r/   r0   r0   r1   Z__r_mark_regionsh   s    
  
 
 
  
   zItalianStemmer.__r_mark_regionsc                 C   s   | j }zx| j | _| tj}| j | _|dkr>| dsxW dS n:|dkrX| dsxW dS n | j | jkrjt |  j d7  _ W q W n tk
r   Y nX || _ qq dS )Nr   r   Fr   r	   T)	r   r   r   r   a_1r   r   r   r    )r)   r*   r,   r0   r0   r1   Z__r_postlude   s(    

 zItalianStemmer.__r_postludec                 C   s   | j | jkS N)r2   r   r)   r0   r0   r1   Z__r_RV   s    zItalianStemmer.__r_RVc                 C   s   | j | jkS r9   )r3   r   r:   r0   r0   r1   Z__r_R1   s    zItalianStemmer.__r_R1c                 C   s   | j | jkS r9   )r4   r   r:   r0   r0   r1   Z__r_R2   s    zItalianStemmer.__r_R2c                 C   sp   | j | _| tjdkrdS | j | _| tj}|dkr<dS |  sHdS |dkr^|  sldS n| 	dsldS dS )Nr   Fr   r   T)
r   r   find_among_br   a_2r   a_3_ItalianStemmer__r_RV	slice_delr   )r)   r,   r0   r0   r1   Z__r_attached_pronoun   s    
z#ItalianStemmer.__r_attached_pronounc                 C   s^  | j | _| tj}|dkr dS | j | _|dkrL|  s<dS |  sHdS n|dkr|  s`dS |  sldS | j| j  }zX| j | _| 	ds| j| | _ t
 | j | _|  s| j| | _ t
 |  sW dS W n t
k
r   Y nX np|dkr|  sdS | dsZdS nD|dkrB|  s.dS | d	sZdS n|d
krn|  sZdS | dsZdS n|dkr|  sdS |  sZdS n|dkr|  sdS |  sdS | j| j  }z| j | _| tj}|dkr| j| | _ t | j | _|  s | j| | _ t |  s0W dS |dkr| j | _| 	ds`| j| | _ t | j | _|  s| j| | _ t |  sW dS W n tk
r   Y nX n|dkrb|  sdS |  sdS | j| j  }zd| j | _| tjdkr| j| | _ t | j | _|  s6| j| | _ t |  sFW dS W n tk
r^   Y nX n|  spdS |  s~dS | j| j  }z| j | _| 	ds| j| | _ t | j | _|  s| j| | _ t |  sW dS | j | _| 	ds| j| | _ t | j | _|  s0| j| | _ t |  s@W dS W n tk
rX   Y nX dS )Nr   Fr   r   icr   logr   r	   r   Zenter      at   T)r   r   r;   r   a_6r   _ItalianStemmer__r_R2r?   r   eq_s_br    r   r>   _ItalianStemmer__r_R1a_4r(   a_5r'   r#   )r)   r,   r*   r+   r-   r.   r0   r0   r1   Z__r_standard_suffix   s    

 



















 






 






 z"ItalianStemmer.__r_standard_suffixc                 C   s^   | j | jk rdS | j}| j| _| j | _| tjdkr@|| _dS | j | _|  sTdS || _dS )NFr   T)	r   r2   limit_backwardr   r;   r   a_7r   r?   )r)   r+   r0   r0   r1   Z__r_verb_suffixv  s    zItalianStemmer.__r_verb_suffixc                 C   sv  | j | j }z| j| _| tjs4| j | | _t | j| _|  sV| j | | _t | 	 sdW dS | j| _| 
ds| j | | _t | j| _|  s| j | | _t | 	 sW dS W n tk
r   Y nX | j | j }z~| j| _| 
ds| j | | _t | j| _| tjs,| j | | _t |  sH| j | | _t | 	 sXW dS W n tk
rp   Y nX dS )NFr   hT)r   r   r   Zin_grouping_br   g_AEIOr    r   r>   r?   rG   r(   g_CG)r)   r*   r+   r0   r0   r1   Z__r_vowel_suffix  sT    

 


 zItalianStemmer.__r_vowel_suffixc                 C   s,  | j }|   || _ |   | j | _| j| _ | j| j  }|   | j| | _ | j| j  }zrzX| j| j  }z|  sxt t W n tk
r   Y nX | j| | _ | 	 st
 W n tk
r   Y nX W n t
k
r   Y nX | j| | _ | j| j  }|   | j| | _ | j| _ | j }|   || _ dS )NT)r   _ItalianStemmer__r_prelude_ItalianStemmer__r_mark_regionsrK   r   #_ItalianStemmer__r_attached_pronoun"_ItalianStemmer__r_standard_suffixr'   r(   _ItalianStemmer__r_verb_suffixr    _ItalianStemmer__r_vowel_suffix_ItalianStemmer__r_postlude)r)   r*   r-   r.   r/   Zv_6Zv_7r0   r0   r1   _stem  sF    
 
 
 zItalianStemmer._stem rB   Zqur      ár      ér      ír      ór      úr   r   r   ZlaZcelaZglielaZmelaZtelaZvelaleZceleZglieleZmeleZteleZveleneZcene   ZglieneZmeneZseneZteneZveneciZliZceli   ZglieliZmeliZteliZveliZglimisitiviloZcelo   ZglieloZmeloZteloZveloZandoZendoarZerZirr@   ZabilosZivZicaZlogiaZosaZistaZiva	   ZanzaZenzaiceZatriceZicheZlogieZabileZibileZusioneZazioneZuzioneZatoreZoseZanteZmenteZamente   ZisteZiveZanzeZenzeZiciZatrici   ZichiZabiliZibiliZismiZusioniZazioniZuzioniZatoriZosiZantiZamentiZimentiZistiZiviZicoZismoZosoZamentoZimentoZivou   itàrD   u   istàu   istèu   istìZiscaZendaZataZitaZutaZavaZevaZerebbeZirebbeZisceZendeZareZereZireZasseZateZavate   ZevateZivateZeteZereteZireteZiteZeresteZiresteZuteZeraiZiraiZisciZendiZereiZireiZassiZatiZitiZerestiZirestiZutiZaviZeviZiscoZYamoZiamoZavamoZevamoZivamoZeremoZiremoZassimoZammoZemmoZeremmo6   ZiremmoZimmoZanoZiscano:   ZavanoZevanoZivanoZerannoZirannoZonoZisconoA   ZaronoZeronoZironoZerebberoZirebberoZasseroZesseroZisseroZatoZitoZutoZavoZevou   eràu   iràu   eròu   iròN)__name__
__module____qualname____doc__r"   rN   rO   r4   r3   r2   rP   rQ   rV   r>   rH   rF   rR   rS   rT   rU   rW   r   r   r8   r<   r=   rI   rJ   rE   rL   r0   r0   r0   r1   r      s  PP -#














































)




	

























































7






















































































r   c                   @   s   e Zd ZdS )r    Nrt   ru   rv   r0   r0   r0   r1   r      s    r    c                   @   s   e Zd ZdS )r(   Nrx   r0   r0   r0   r1   r(     s    r(   c                   @   s   e Zd ZdS )r'   Nrx   r0   r0   r0   r1   r'     s    r'   c                   @   s   e Zd ZdS )r#   Nrx   r0   r0   r0   r1   r#     s    r#   c                   @   s   e Zd ZdS )r&   Nrx   r0   r0   r0   r1   r&     s    r&   c                   @   s   e Zd ZdS )r%   Nrx   r0   r0   r0   r1   r%     s    r%   c                   @   s   e Zd ZdS )r6   Nrx   r0   r0   r0   r1   r6     s    r6   c                   @   s   e Zd ZdS )r5   Nrx   r0   r0   r0   r1   r5     s    r5   c                   @   s   e Zd ZdS )r7   Nrx   r0   r0   r0   r1   r7     s    r7   N)Zbasestemmerr   Zamongr   r   BaseExceptionr    r(   r'   r#   r&   r%   r6   r5   r7   r0   r0   r0   r1   <module>   s         0