
    zTiz                     H    d dl mZ d dlmZ  G d de      Z G d de      Zy)   )BaseStemmer)Amongc            	          e Zd ZdZh dZh dZh dZdZdZdZ	d Z
d Zd	 Zd
 Zd Zd Zg  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       ed/d&d       ed0d1d       ed2d1d       ed3d&d       ed4d&d       ed5d6d       ed7dd       ed8d9d      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       ed@dd       edAdd       edBdd$      gZyC)DDanishStemmerz
    This class implements the stemming algorithm defined by a snowball script.
    Generated from danish.sbl by Snowball 3.0.1 - https://snowballstem.org/
    >   bcdfghjklmnpqrstvwxz>	   aeiouy   å   æ   ø>   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r    r   r!        c                 8   | j                   | _        | j                  }| j                  dz   }|| j                   kD  ry|| _        | j                  | _        || _        | j	                  t
        j                        sy| xj                  dz  c_        | j                  t
        j                        sy| xj                  dz  c_        | j                  | _        	 | j                  | j                  k\  r
t               | j                  | _        y# t        $ r Y yw xY w)N   Fr   T)	limitI_p1cursorI_xgo_out_groupingr   g_vgo_in_groupinglab0)selfv_1r   s      Q/home/agent/.local/lib/python3.12/site-packages/snowballstemmer/danish_stemmer.py__r_mark_regionszDanishStemmer.__r_mark_regions   s    JJ	kkKK!Otzz>;;##M$5$56q""=#4#45qKK		yyDHH$fDI T 	s   4D 	DDc                    | j                   | j                  k  ry| j                  }| j                  | _        | j                   | _        | j	                  t
        j                        }|dk(  r|| _        y| j                   | _        || _        |dk(  r| j                         syy| j                  t
        j                        sy| j                         syyNFr$   r   T)r*   r)   limit_backwardketfind_among_br   a_0bra	slice_delin_grouping_b
g_s_ending)r0   v_2	among_vars      r2   __r_main_suffixzDanishStemmer.__r_main_suffix/   s    ;;"!!"ii;;%%m&7&78	>"%D;;!>>>#  %%m&>&>?>>#    c                    | j                   | j                  z
  }| j                  | j                  k  ry| j                  }| j                  | _        | j                  | _        | j                  t        j                        dk(  r|| _        y| j                  | _        || _        | j                   |z
  | _        | j                  | j                  k  ry| xj                  dz  c_        | j                  | _        | j                         syyr5   )
r(   r*   r)   r6   r7   r8   r   a_1r:   r;   )r0   r1   v_3s      r2   __r_consonant_pairz DanishStemmer.__r_consonant_pairG   s    jj4;;&;;"!!"ii;;]../14"%D;;!jj3&;;$---q;;~~rA   c                 8   | j                   | j                  z
  }	 | j                  | _        | j                  d      s
t	               | j                  | _        | j                  d      s
t	               | j                         sy	 | j                   |z
  | _        | j                  | j                  k  ry| j                  }| j                  | _        | j                  | _        | j                  t        j                        }|dk(  r|| _        y| j                  | _        || _        |dk(  rO| j                         sy| j                   | j                  z
  }| j                          | j                   |z
  | _        y| j                  d      syy# t        $ r Y w xY w)NstigFr$   r   u   løsT)r(   r*   r7   eq_s_br/   r:   r;   r)   r6   r8   r   a_2 _DanishStemmer__r_consonant_pair
slice_from)r0   r1   rD   r?   v_4s        r2   __r_other_suffixzDanishStemmer.__r_other_suffix]   sS   jj4;;&
	{{DH;;u%f{{DH;;u%f>># $ jj3&;;"!!"ii;;%%m&7&78	>"%D;;!>>>#**t{{*C##%**s*DK  ??7+/ Ts   A(F 	FFc                    | j                   | j                  k  ry| j                  }| j                  | _        | j                   | _        | j	                  t
        j                        s|| _        y| j                   | _        | j                         | _	        | j                  dk(  ry|| _        | j                  | j                        sy| j                         syy)NFr%   T)r*   r)   r6   r7   r<   r   g_cr:   slice_toS_chrI   r;   )r0   r>   s     r2   __r_undoublezDanishStemmer.__r_undouble   s    ;;"!!"ii;;!!-"3"34"%D;;MMO	99?!{{499%~~rA   c                    | j                   }| j                          || _         | j                   | _        | j                  | _         | j                  | j                   z
  }| j	                          | j                  |z
  | _         | j                  | j                   z
  }| j                          | j                  |z
  | _         | j                  | j                   z
  }| j                          | j                  |z
  | _         | j                  | j                   z
  }| j                          | j                  |z
  | _         | j                  | _         y)NT)r*   _DanishStemmer__r_mark_regionsr6   r(   _DanishStemmer__r_main_suffixrK   _DanishStemmer__r_other_suffix_DanishStemmer__r_undouble)r0   r1   r>   rD   rM   v_5s         r2   _stemzDanishStemmer._stem   s    kk"kkjjjj4;;&jj3&jj4;;&!jj3&jj4;;&jj3&jj4;;&jj3&))rA   hedr   ethederedr   ereder'   endeerende   eneerneereenheden
   erenerheder   ererr      heds   esendes   erendes   eneserneseresenshedens   erensersetserets   eteret   gddtgtktrH   ligeligelsu   løstN)__name__
__module____qualname____doc__rP   r-   r=   r+   r)   rR   rU   rV   rK   rW   rX   rZ   r   r9   rC   rJ    rA   r2   r   r      s.   
 CC
CC KJ
CDD.0,#J**!fb!!h1! 	gr1! 	dB	!
 	h1! 	gq!! 	iA! 	fa! 	gq!! 	fa! 	eR! 	hA! 	gr1! 	eR! 	hA!  	gr1!!" 	dB#!$ 	gr1%!& 	eR'!( 	hA)!* 	j"a +!, 	gr1-!. 	hA/!0 	gr11!2 	fb!3!4 	iQ5!6 	hA7!8 	fb!9!: 	fb!;!< 	hA=!> 	eR?!@ 	gr1A!CH 	eReReReR	C 	eRfagq!fb!hACrA   r   c                       e Zd Zy)r/   N)r   r   r   r   rA   r2   r/   r/      s    rA   r/   N)basestemmerr   amongr   r   BaseExceptionr/   r   rA   r2   <module>r      s&    % TK Tn  = rA   