B
    _Ҕa                 @   s<   d dl mZ d dlm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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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ed.dded/d
ded0dded1dded2dded3d4ded5dded6d7dgZ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dCddedDddedEddedFddedGddedHdIdedJdd!edKdd!edLddedMdNdedOdNdedPddedQddedRddgZ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gZd_d`dad'd'd'd'd'd'd'd'd'd'd'd'd'dd_ddgZ	d'Z
d'Zd'Zdbdc Zddde Zdfdg Zdhdi Zdjdk Zdldm Zdndo Zdpdq Zdrds ZdtS )uIrishStemmerz
    This class implements the stemming algorithm defined by a snowball script.
    Generated by Snowball 2.2.0 - https://snowballstem.org/
    zb'r   Zbh   Zbhf   Zbp   Zch   zd'zd'fhZdh   Zdt	   ZfhgcZgh   zh-zm'ZmbZmh
   zn-ZndZngphsh   zt-thtsu   íochtau   aíochta    ZireZaireZabhZeabhZibhZaibhZamhZeamhZimhZaimhu   íochtu   aíocht   u   iríu   airí   u	   óideachaZpatachaZachtaZarcachtaZeachtau   grafaíochtapaiteZachZeachu   óideachZgineachZpatachu
   grafaíochZpataighu   óidighu   achtúilu	   eachtúil   ZgineasZginisZachtZarcacht   Zeachtu   grafaíochtu
   arcachtaíu   grafaíochtaíZimidZaimidu   ímidu   aímidZadhZeadhZfaidhZfidhu   áilZainZtearZtar   A      c             C   s   | j | _| j | _| j | _| j}y| tjdds6t |  jd7  _| j| _| 	tjddsbt |  jd7  _| j| _| tjddst |  jd7  _| 	tjddst |  jd7  _| j| _W n tk
r   Y nX || _dS )Na      r   T)
limitI_pVI_p1I_p2cursorZgo_out_groupingr   g_vlab0Zgo_in_grouping)selfv_1 r(   <lib/python3.7/site-packages/snowballstemmer/irish_stemmer.pyZ__r_mark_regionsl   s0     zIrishStemmer.__r_mark_regionsc             C   s  | j | _| tj}|dkr dS | j | _|dkr>|  s<dS n|dkrV| dsTdS n|dkrn| dsldS n|dkr| d	sdS n|d
kr| dsdS np|dkr| dsdS nX|dkr| dsdS n@|dkr| dsdS n(|dkr| dsdS n| dsdS dS )Nr   Fr   r   fr   sr   br	   cr
   dr   gr   pr   tmT)r#   braZ
find_amongr   a_0ket	slice_del
slice_from)r&   	among_varr(   r(   r)   Z__r_initial_morph   sF    







zIrishStemmer.__r_initial_morphc             C   s   | j | jksdS dS )NFT)r    r#   )r&   r(   r(   r)   Z__r_RV   s    zIrishStemmer.__r_RVc             C   s   | j | jksdS dS )NFT)r!   r#   )r&   r(   r(   r)   Z__r_R1   s    zIrishStemmer.__r_R1c             C   s   | j | jksdS dS )NFT)r"   r#   )r&   r(   r(   r)   Z__r_R2   s    zIrishStemmer.__r_R2c             C   sf   | j | _| tj}|dkr dS | j | _|dkrJ|  s<dS |  sbdS n|  sVdS |  sbdS dS )Nr   Fr   T)	r#   r5   find_among_br   a_1r3   _IrishStemmer__r_R1r6   _IrishStemmer__r_R2)r&   r8   r(   r(   r)   Z__r_noun_sfx   s    zIrishStemmer.__r_noun_sfxc             C   s   | j | _| tj}|dkr dS | j | _|dkrJ|  s<dS |  sdS nn|dkrb| dsdS nV|dkrz| dsdS n>|dkr| d	sdS n&|d
kr| dsdS n| dsdS dS )Nr   Fr   r   Zarcr   Zginr   Zgrafr	   r   u   óidT)	r#   r5   r9   r   a_2r3   r<   r6   r7   )r&   r8   r(   r(   r)   Z	__r_deriv   s2    




zIrishStemmer.__r_derivc             C   sf   | j | _| tj}|dkr dS | j | _|dkrJ|  s<dS |  sbdS n|  sVdS |  sbdS dS )Nr   Fr   T)	r#   r5   r9   r   a_3r3   _IrishStemmer__r_RVr6   r;   )r&   r8   r(   r(   r)   Z__r_verb_sfx   s    zIrishStemmer.__r_verb_sfxc             C   s   | j }|   || _ |   | j | _| j| _ | j| j  }|   | j| | _ | j| j  }|   | j| | _ | j| j  }|   | j| | _ | j| _ dS )NT)r#   _IrishStemmer__r_initial_morph_IrishStemmer__r_mark_regionsZlimit_backwardr   _IrishStemmer__r_noun_sfx_IrishStemmer__r_deriv_IrishStemmer__r_verb_sfx)r&   r'   Zv_3Zv_4Zv_5r(   r(   r)   _stem   s"    zIrishStemmer._stemN)__name__
__module____qualname____doc__r   r4   r:   r=   r>   r$   r"   r!   r    rA   r@   r?   r;   r<   rB   rC   rD   rE   r(   r(   r(   r)   r      s   








































































,'r   c               @   s   e Zd ZdS )r%   N)rF   rG   rH   r(   r(   r(   r)   r%     s    r%   N)Zbasestemmerr   Zamongr   r   BaseExceptionr%   r(   r(   r(   r)   <module>   s
     