o
    Ni[                     @   s   d dl mZ d dl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G dd deZG dd  d ZdS )!    )
NamedTupleNc                 C   sl   | }d}d}|d dkr|d7 }| d}|D ]}|dkrq|| d7 }|d7 }q|dt|d  }|S )z(&)*(dxhq|txh|khq|dxq|dxh|zh|tx|th|sx|sh|rx|ph|nx|nj|ng|lx|kq|kh|jh|gq|gh|dx|dh|ch|bh|z|y|y|w|t|s|r|p|n|m|l|k|j|h|g|f|d|c|b)((&)(dxhq|txh|khq|dxq|dxh|zh|tx|th|sx|sh|rx|ph|nx|nj|ng|lx|kq|kh|jh|gq|gh|ex|dx|dh|ch|bh|z|y|w|t|s|r|p|n|m|l|k|j|h|g|f|d|c|b))*    r   &z&av&#&&N   )splitlen)tsansilpch r   P/home/ubuntu/.local/lib/python3.10/site-packages/indic_unified_parser/ply/lex.pyt_kaki_c   s   

r   c                 C   s   dS )z(eu)zeu&#r   r	   r   r   r   t_conjsyll2_c      r   c                 C      | S )aI  (&)*(k|kh|g|gh|c|ch|j|jh|ng|nj|tx|txh|dx|dxh|nx|t|th|d|dh|n|p|ph|b|bh|m|y|r|l|w|sh|sx|s|lx|h|kq|khq|gq|z|dxq|dxhq|f|y)(&)(uu&mq|uu&hq|rq&mq|rq&hq|ou&mq|ou&hq|ii&mq|ii&hq|ei&mq|ei&hq|ee&mq|ee&hq|aa&mq|aa&hq|uu&q|u&mq|u&hq|rq&q|ou&q|o&mq|o&hq|ii&q|i&mq|i&hq|ei&q|ee&q|aa&q|a&mq|a&hq|u&q|o&q|i&q|a&q|uu|rq|ou|ii|ei|ee|ax|aa|u|o|i|a)r   r   r   r   r   t_fullvowel_b   r   r   c                 C   r   )z(&)*(dxhq|txh|khq|dxq|dxh|tx|th|sx|sh|ph|nx|nj|ng|lx|kq|kh|jh|gq|gh|dx|dh|ch|bh|z|y|w|t|s|r|p|n|m|l|k|j|h|g|f|d|c|b)(&)(uuv|rqv|ouv|iiv|eiv|eev|aev|aav|uv|ov|mq|iv|hq|ax|q)(&)(mq|hq|q)*r   r   r   r   r   t_kaki_a   r   r   c                 C   r   )zj(&)*(dxq&uuv|dxq&rqv|dxq&ouv|dxq&iiv|dxq&eiv|dxq&eev|dxq&aav|dxq&uv|dxq&ov|dxq&mq|dxq&iv|dxq&hq|dxq&q|dxq)r   r   r   r   r   t_kaki_b    r   r   c                 C   r   )z(&)*(txh&eu|dxh&eu|tx&eu|th&eu|sx&eu|sh&eu|ph&eu|nx&eu|nj&eu|ng&eu|lx&eu|kh&eu|jh&eu|gh&eu|dx&eu|dh&eu|ch&eu|bh&eu|y&eu|w&eu|t&eu|s&eu|r&eu|p&eu|n&eu|m&eu|l&eu|k&eu|j&eu|h&eu|g&eu|d&eu|c&eu|b&eu)r   r   r   r   r   t_conjsyll2_b$   r   r   c                 C   r   )z#(&)*(dxhq|khq|dxq|kq|gq|z|y|f)(&)eur   r   r   r   r   t_conjsyll2_a(   r   r   c                 C   r   )a  (&)*(dxhq|txh|khq|dxq|dxh|tx|th|sx|sh|ph|nx|nj|ng|lx|kq|kh|jh|gq|gh|dx|dh|ch|bh|z|y|w|t|s|r|p|n|m|l|k|j|h|g|f|d|c|b)(&)(uu|rq|ou|ii|ei|ee|ax|aa|u|o|i)(&)(dxhq|uuv|txh|rqv|ouv|khq|iiv|eiv|eev|dxq|dxh|aev|aav|uv|uu|tx|th|sx|sh|rq|ph|ov|ou|nx|nj|ng|mq|kq|kh|jh|iv|ii|hq|gq|gh|ei|ee|dx|dh|ch|bh|ax|aa|z|y|w|u|t|s|r|q|p|o|n|m|l|k|j|i|h|g|f|d|c|b)(&)eu(&)(dxhq|txh|khq|dxq|dxh|tx|th|sx|sh|ph|nx|nj|ng|kq|kh|jh|gq|gh|dx|dh|ch|bh|z|y|y|w|t|s|r|p|n|m|l|k|j|h|g|f|d|c|b)r   r   r   r   r   t_conjsyll1,   r   r   c                 C   r   )zi(&)*(txh|dxh|tx|th|sx|sh|ph|nx|nj|ng|lx|kh|jh|gh|dx|dh|ch|bh|y|w|t|s|r|p|n|m|l|k|j|h|g|d|c|b)(&)(mq|hq|q)r   r   r   r   r   t_nukchan_b0   r   r   c                 C   r   )z*(&)*(dxhq|khq|dxq|kq|gq|z|y|f)(&)(mq|hq|q)r   r   r   r   r   t_nukchan_a4   r   r   c                 C   r   )z(&)*(uuv|rqv|iiv|uv|iv)(&)(y)r   r   r   r   r   t_yarule8   r   r   c                 C   r   )z(&)*(uu&mq|uu&hq|rq&mq|rq&hq|ou&mq|ou&hq|ii&mq|ii&hq|ei&mq|ei&hq|ee&mq|ee&hq|aa&mq|aa&hq|uu&q|u&mq|u&hq|rq&q|ou&q|o&mq|o&hq|ii&q|i&mq|i&hq|ei&q|ee&q|aa&q|a&mq|a&hq|u&q|o&q|i&q|a&q|uu|rq|ou|ii|ei|ee|ax|aa|u|o|i|a)r   r   r   r   r   t_vowel<   r   r   c                 C   r   ).r   r   r   r   r   t_fullvowel_a@   r   r!   c                   @   s   e Zd ZU eed< eed< dS )TokentypevalueN)__name__
__module____qualname__str__annotations__r   r   r   r   r"   D   s   
 r"   c                   @   s$   e Zd Zdd Zdd Zdd ZdS )Lexerc              	   C   s   d| _ g | _| j D ]}|  j|dtd| jtd| fg7  _q	g | _| jD ]}t|d }|  j|g7  _q)t| j| _	d| _
d| _d S )N)kaki_cconjsyll2_cfullvowel_bkaki_akaki_bconjsyll2_bconjsyll2_a	conjsyll1	nukchan_b	nukchan_ayarulefullvowel_avowelz{}t_r   r   r   )tokenstoken_specificationformateval__doc__patternsrecompiler   
tokencountdataidx)selftknprpnr   r   r   __init__I   s   
0

zLexer.__init__c                 C   s   || _ d| _d S )Nr   )rB   rC   )rD   rB   r   r   r   inputY   s   
zLexer.inputc                 C   s   d}d}d }t | jD ]#}| j| | j| j}|d kr.| |  }||kr.|}|}|}q|dkr5d S |  j|7  _| j| d |	 }t
| j| |dS )Nr      )r#   r$   )rangerA   r>   matchrB   rC   endstartr:   groupr"   r9   )rD   maxlenmaxidxmaxmor   momolentokr   r   r   token]   s"   zLexer.tokenN)r%   r&   r'   rH   rI   rW   r   r   r   r   r*   H   s    r*   )typingr   r?   r   r   r   r   r   r   r   r   r   r   r   r   r!   r"   r*   r   r   r   r   <module>   s"    