§
    ]ö6i†   ã                   ó°  — d Z d ZddlZddlZddlZddlZddlZddlZ	 ej        ej	        fZ
n# e$ r eefZ
Y nw xY wej        d         dk     rd„ Znd„ Z ej        d¦  «        Z G d„ de¦  «        Z G d	„ d
e¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ d¦  «        Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z G d„ de¦  «        Zdd„Z dd„Z!d„ Z"e"Z#dS ) z3.5é    Né   c                 ó   — | j         S ©N)Ú	func_code©Úfs    úQ/home/metal/girl-os/anki/victor/victor-clad/tools/message-buffers/clad/ply/lex.pyr   r   3   s
   € ØŒ{Ðó    c                 ó   — | j         S r   )Ú__code__r   s    r	   r   r   6   s
   € ØŒzÐr
   z^[a-zA-Z0-9_]+$c                   ó   — e Zd Zd„ ZdS )ÚLexErrorc                 ó$   — |f| _         || _        d S r   )ÚargsÚtext)ÚselfÚmessageÚss      r	   Ú__init__zLexError.__init__@   s   € Ø�ZˆŒØˆŒˆˆr
   N)Ú__name__Ú
__module__Ú__qualname__r   © r
   r	   r   r   ?   s#   € € € € € ðð ð ð ð r
   r   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚLexTokenc                 ó<   — d| j         | j        | j        | j        fz  S )NzLexToken(%s,%r,%d,%d))ÚtypeÚvalueÚlinenoÚlexpos©r   s    r	   Ú__str__zLexToken.__str__F   s   € Ø&¨$¬)°D´J¸t¼{È4Ì;Ð)WÑWÐWr
   c                 ó    — t          | ¦  «        S r   )Ústrr!   s    r	   Ú__repr__zLexToken.__repr__H   s   € Ý�4‰yŒyÐr
   N)r   r   r   r"   r%   r   r
   r	   r   r   E   s5   € € € € € ðXð Xð Xðð ð ð ð r
   r   c                   ó.   — e Zd Zd„ Zd„ Zd„ Zd„ ZeZeZdS )Ú	PlyLoggerc                 ó   — || _         d S r   r   )r   r   s     r	   r   zPlyLogger.__init__O   s   € ØˆŒˆˆr
   c                 óF   — | j                              ||z  dz   ¦  «         d S )Nú
©r   Úwrite©r   Úmsgr   Úkwargss       r	   ÚcriticalzPlyLogger.criticalQ   s%   € ØŒ�Š�c˜D‘j DÑ(Ñ)Ô)Ð)Ð)Ð)r
   c                 óL   — | j                              d||z  z   dz   ¦  «         d S )Nz	WARNING: r*   r+   r-   s       r	   ÚwarningzPlyLogger.warningT   s*   € ØŒ�Š�[ 3¨¡:Ñ.°Ñ5Ñ6Ô6Ð6Ð6Ð6r
   c                 óL   — | j                              d||z  z   dz   ¦  «         d S )NzERROR: r*   r+   r-   s       r	   ÚerrorzPlyLogger.errorW   s*   € ØŒ�Š�Y #¨¡*Ñ-°Ñ4Ñ5Ô5Ð5Ð5Ð5r
   N)	r   r   r   r   r0   r2   r4   ÚinfoÚdebugr   r
   r	   r'   r'   N   sV   € € € € € ðð ð ð*ð *ð *ð7ð 7ð 7ð6ð 6ð 6ð €DØ€E€E€Er
   r'   c                   ó   — e Zd Zd„ Zd„ ZdS )Ú
NullLoggerc                 ó   — | S r   r   )r   Únames     r	   Ú__getattribute__zNullLogger.__getattribute___   ó   € Øˆr
   c                 ó   — | S r   r   )r   r   r/   s      r	   Ú__call__zNullLogger.__call__a   r<   r
   N)r   r   r   r;   r>   r   r
   r	   r8   r8   ^   s2   € € € € € ðð ð ðð ð ð ð r
   r8   c                   ód   — e Zd Zd„ Zdd„Zdd„Zd„ Zd„ Zd„ Zd	„ Z	d
„ Z
d„ Zd„ Zd„ Zd„ Zd„ ZeZdS )ÚLexerc                 ó,  — d | _         d | _        i | _        i | _        i | _        d| _        g | _        d | _        i | _        i | _	        d| _
        d | _        d| _        d| _        d | _        d | _        d| _        d| _        d | _        d| _        d| _        d S )NÚINITIALr   Ú é   )ÚlexreÚ	lexretextÚ
lexstatereÚlexstateretextÚlexstaterenamesÚlexstateÚlexstatestackÚlexstateinfoÚlexstateignoreÚlexstateerrorfÚ
lexreflagsÚlexdatar    ÚlexlenÚ	lexerrorfÚ	lextokensÚ	lexignoreÚlexliteralsÚ	lexmoduler   Úlexoptimizer!   s    r	   r   zLexer.__init__s   s¥   € ØˆŒ
ð ˆŒØˆŒØ ˆÔØ!ˆÔØ!ˆŒØˆÔØ ˆÔØ ˆÔØ ˆÔØˆŒØˆŒØˆŒØˆŒØˆŒØˆŒØˆŒØˆÔØˆŒØˆŒØˆÔÐÐr
   Nc           
      ó  — t          j         | ¦  «        }|rõi }| j                             ¦   «         D ]ˆ\  }}g }|D ]b\  }}g }	|D ]X}
|
r|
d         s|	                     |
¦  «         Œ"|	                     t	          ||
d         j        ¦  «        |
d         f¦  «         ŒYŒc|                     ||	f¦  «         |||<   Œ‰||_        i |_        | j                             ¦   «         D ]"\  }}t	          ||j        ¦  «        |j        |<   Œ#||_        |S ©Nr   rD   )ÚcopyrG   ÚitemsÚappendÚgetattrr   rN   rV   )r   ÚobjectÚcÚnewtabÚkeyÚritemÚnewreÚcreÚfindexÚ	newfindexr   Úefs               r	   ÚclonezLexer.clone�   sM  € ÝŒI�d‰OŒOˆð ð 	!ØˆFØ"œo×3Ò3Ñ5Ô5ð 
$ð 
$‘
��UØ�Ø#(ð Pð P‘K�C˜Ø!#�YØ$ð Pð P˜Ø !ð &¨¨1¬ð &Ø&×-Ò-¨aÑ0Ô0Ð0Ø%Ø"×)Ò)­7°6¸!¸A¼$¼-Ñ+HÔ+HÈÈ1ÌÐ*NÑOÔOÐOÐOð	Pð
 —’˜c )˜_Ñ-Ô-Ð-Ø#��s‘�Ø!ˆAŒLØ"ˆAÔØÔ.×4Ò4Ñ6Ô6ð Dð D‘��RÝ(/°°r´{Ñ(CÔ(C�Ô  Ñ%Ð%Ø ˆAŒKØˆr
   rC   c           
      óæ  — t          |t          j        ¦  «        rd S |                     d¦  «        d         }t          j                             ||¦  «        dz   }t          |d¦  «        }|                     d|›dt          ›d�¦  «         |                     dt          t          ¦  «        z  ¦  «         |                     d	t          | j        ¦  «        z  ¦  «         |                     d
t          | j        ¦  «        z  ¦  «         |                     dt          | j        ¦  «        z  ¦  «         |                     dt          | j        ¦  «        z  ¦  «         i }| j        d         }g }|D ],}	|	d         D ]!}
|
r|
d         r|                     |
¦  «         Œ"Œ-| j                             ¦   «         D ]~\  }}g }t'          t)          |¦  «        ¦  «        D ]U}|                     | j        |         |         t-          ||         d         | j        |         |         ¦  «        f¦  «         ŒV|||<   Œ|                     dt          |¦  «        z  ¦  «         |                     dt          | j        ¦  «        z  ¦  «         i }| j                             ¦   «         D ]\  }}|r|j        ||<   Œd ||<   Œ|                     dt          |¦  «        z  ¦  «         |                     ¦   «          d S )Nú.éÿÿÿÿz.pyÚwz# z5.py. This file automatically created by PLY (version z). Don't edit!
z_tabversion   = %s
z_lextokens    = %s
z_lexreflags   = %s
z_lexliterals  = %s
z_lexstateinfo = %s
rB   rD   r   z_lexstatere   = %s
z_lexstateignore = %s
z_lexstateerrorf = %s
)Ú
isinstanceÚtypesÚ
ModuleTypeÚsplitÚosÚpathÚjoinÚopenr,   Ú__version__ÚreprÚ__tabversion__rS   rO   rU   rL   rG   r\   r[   ÚrangeÚlenrH   Ú_funcs_to_namesrI   rM   rN   r   Úclose)r   ÚtabfileÚ	outputdirÚbasetabfilenameÚfilenameÚtfÚtabreÚinitialÚinitialfuncsÚpartr   ra   ÚlreÚtitemÚiÚtaberrrg   s                    r	   ÚwritetabzLexer.writetab«   sã  € Ý�g�eÔ.Ñ/Ô/ð 	ØˆFØ!Ÿ-š-¨Ñ,Ô,¨RÔ0ˆÝ”7—<’< 	¨/Ñ:Ô:¸5Ñ@ˆÝ�(˜3ÑÔˆØ
�ŠˆÐbiÐbiÐbiÕjuÐjuÐjuÐvÑwÔwÐwØ
�ŠÐ'­$­~Ñ*>Ô*>Ñ>Ñ?Ô?Ð?Ø
�ŠÐ'­$¨t¬~Ñ*>Ô*>Ñ>Ñ?Ô?Ð?Ø
�ŠÐ'­$¨t¬Ñ*?Ô*?Ñ?Ñ@Ô@Ð@Ø
�ŠÐ'­$¨tÔ/?Ñ*@Ô*@Ñ@ÑAÔAÐAØ
�ŠÐ'­$¨tÔ/@Ñ*AÔ*AÑAÑBÔBÐBàˆà”/ )Ô,ˆØˆØð 	+ð 	+ˆDØ˜!”Wð +ð +�Øð +˜˜1œð +Ø ×'Ò'¨Ñ*Ô*Ð*øð+ð œ×-Ò-Ñ/Ô/ð 	 ð 	 ‰HˆC�ØˆUÝ�C ™HœH‘o”oð vð v�Ø—,’, Ô 3°CÔ 8¸Ô ;½OÈCÐPQÌFÐSTÌIÐVZÔVjÐknÔVoÐpqÔVrÑ<sÔ<sÐtÑuÔuÐuÐuØˆU�3‰ZˆZà
�ŠÐ'­$¨u©+¬+Ñ5Ñ6Ô6Ð6Ø
�ŠÐ)­D°Ô1DÑ,EÔ,EÑEÑFÔFÐFàˆØÔ*×0Ò0Ñ2Ô2ð 	%ð 	%‰GˆC�Øð %Ø "¤�&˜‘+�+à $�&˜‘+�+Ø
�ŠÐ)­D°©L¬LÑ8Ñ9Ô9Ð9Ø
�Š‰
Œ
ˆ
ˆ
ˆ
r
   c           	      óü  — t          |t          j        ¦  «        r|}nGt          j        d         dk     rt          d|z  ¦  «         ni }t          d|z  ||¦  «         |d         }t          |dd¦  «        t          k    rt          d¦  «        ‚|j	        | _
        |j        | _        |j        | _        |j        | _        |j        | _        i | _        i | _        |j                             ¦   «         D ]¿\  }}g }g }t/          t1          |¦  «        ¦  «        D ]…}	|                     t5          j        ||	         d         |j        t4          j        z  ¦  «        t;          ||	         d         |¦  «        f¦  «         |                     ||	         d         ¦  «         Œ†|| j        |<   || j        |<   ŒÀi | _        |j                             ¦   «         D ]\  }}
||
         | j        |<   Œ|                       d	¦  «         d S )
Nr   r   zimport %s as lextabÚlextabÚ_tabversionz0.0zInconsistent PLY versionrD   rB   )!rm   rn   ro   ÚsysÚversion_infoÚexecr]   rw   ÚImportErrorÚ
_lextokensrS   Ú_lexreflagsrO   Ú_lexliteralsrU   Ú_lexstateinforL   Ú_lexstateignorerM   rG   rH   Ú_lexstaterer[   rx   ry   r\   ÚreÚcompileÚVERBOSEÚ_names_to_funcsrN   Ú_lexstateerrorfÚbegin)r   r|   Úfdictr‹   Úenvra   r…   r†   Útxtitemr‡   rg   s              r	   ÚreadtabzLexer.readtabÖ   sü  € Ý�g�eÔ.Ñ/Ô/ð 	'ØˆFˆFåÔ Ô" QÒ&Ð&ÝÐ*¨WÑ4Ñ5Ô5Ð5Ð5à�ÝÐ*¨WÑ4°c¸#Ñ>Ô>Ð>Ø˜Xœ�å�6˜-¨Ñ.Ô.µ.Ò@Ð@ÝÐ8Ñ9Ô9Ð9à$Ô/ˆŒØ$Ô0ˆŒØ$Ô1ˆÔØ$Ô2ˆÔØ$Ô4ˆÔØ!ˆŒØ!ˆÔØÔ)×/Ò/Ñ1Ô1ð 	0ð 	0‰GˆC�ØˆUØˆWÝ�C ™HœH‘o”oð ,ð ,�Ø—,’,¥¤
¨3¨q¬6°!¬9°VÔ5GÍ"Ì*Ñ5TÑ UÔ UÕVeÐfiÐjkÔflÐmnÔfoÐpuÑVvÔVvÐwÑxÔxÐxØ—.’.  Q¤¨¤Ñ+Ô+Ð+Ð+Ø$)ˆTŒ_˜SÑ!Ø(/ˆTÔ  Ñ%Ð%Ø!ˆÔØÔ,×2Ò2Ñ4Ô4ð 	2ð 	2‰FˆC�Ø(-¨b¬	ˆTÔ  Ñ%Ð%Ø�
Š
�9ÑÔÐÐÐr
   c                 ó¦   — |d d…         }t          |t          ¦  «        st          d¦  «        ‚|| _        d| _        t          |¦  «        | _        d S )NrD   zExpected a stringr   )rm   ÚStringTypesÚ
ValueErrorrP   r    ry   rQ   )r   r   r_   s      r	   ÚinputzLexer.inputû   sO   € àˆbˆqˆbŒEˆÝ˜!�KÑ(Ô(ð 	2ÝÐ0Ñ1Ô1Ð1ØˆŒØˆŒÝ˜!‘f”fˆŒˆˆr
   c                 ó  — || j         vrt          d¦  «        ‚| j         |         | _        | j        |         | _        | j                             |d¦  «        | _        | j                             |d ¦  «        | _	        || _
        d S )NzUndefined staterC   )rG   r£   rE   rH   rF   rM   ÚgetrT   rN   rR   rJ   ©r   Ústates     r	   rœ   zLexer.begin  sz   € Ø˜œÐ'Ð'ÝÐ.Ñ/Ô/Ð/Ø”_ UÔ+ˆŒ
ØÔ,¨UÔ3ˆŒØÔ,×0Ò0°°rÑ:Ô:ˆŒØÔ,×0Ò0°°tÑ<Ô<ˆŒØˆŒˆˆr
   c                 ón   — | j                              | j        ¦  «         |                      |¦  «         d S r   )rK   r\   rJ   rœ   r§   s     r	   Ú
push_statezLexer.push_state  s3   € ØÔ×!Ò! $¤-Ñ0Ô0Ð0Ø�
Š
�5ÑÔÐÐÐr
   c                 ó^   — |                       | j                             ¦   «         ¦  «         d S r   )rœ   rK   Úpopr!   s    r	   Ú	pop_statezLexer.pop_state  s)   € Ø�
Š
�4Ô%×)Ò)Ñ+Ô+Ñ,Ô,Ð,Ð,Ð,r
   c                 ó   — | j         S r   )rJ   r!   s    r	   Úcurrent_statezLexer.current_state   s
   € ØŒ}Ðr
   c                 ó&   — | xj         |z  c_         d S r   )r    )r   Úns     r	   Úskipz
Lexer.skip&  s   € ØˆŒ�qÑˆŒˆˆr
   c                 ó¸  — | j         }| j        }| j        }| j        }||k     �r–||         |v r|dz  }Œ| j        D �]X\  }}|                     ||¦  «        }|sŒt          ¦   «         }|                     ¦   «         |_        | j	        |_	        ||_         |j
        }	||	         \  }
|_        |
s;|j        r|                     ¦   «         | _         |c S |                     ¦   «         } �nË|                     ¦   «         }| |_        || _        || _          |
|¦  «        }|s| j         }| j        } �n„| j        s[|j        | j        vrMt#          dt%          |
¦  «        j        t%          |
¦  «        j        |
j        |j        fz  ||d …         ¦  «        ‚|c S ||         | j        v rFt          ¦   «         }||         |_        | j	        |_	        |j        |_        ||_         |dz   | _         |S | j        r˜t          ¦   «         }| j        |d …         |_        | j	        |_	        d|_        | |_        ||_         || _         |                      |¦  «        }|| j         k    r!t#          d||         z  ||d …         ¦  «        ‚| j         }|s�Œj|S || _         t#          d||         |fz  ||d …         ¦  «        ‚||k     �°–|dz   | _         | j        €t1          d¦  «        ‚d S )NrD   z4%s:%d: Rule '%s' returned an unknown token type '%s'r4   z&Scanning error. Illegal character '%s'z"Illegal character '%s' at index %dz"No input string given with input())r    rQ   rT   rP   rE   Úmatchr   Úgroupr   r   Ú	lastindexr   ÚendÚlexerÚlexmatchrW   rS   r   r   Úco_filenameÚco_firstlinenor   rU   rR   ÚRuntimeError)r   r    rQ   rT   rP   rE   ÚlexindexfuncÚmÚtokr‡   ÚfuncÚnewtoks               r	   ÚtokenzLexer.token0  s  € à”KˆØ”KˆØ”Nˆ	Ø”Lˆà�vŠo‰oà�vŒ )Ð+Ð+Ø˜!‘�Øð '+¤jð Krñ KrÑ"��lØ—K’K ¨Ñ/Ô/�ØÐ"˜(õ ‘j”j�ØŸGšG™IœI�”	Ø!œ[�”
Ø#�”
à”K�Ø ,¨Q¤‘��S”Xàð à”hð Ø$%§E¢E¡G¤G�d”kØ �j�j�jà Ÿušu™wœw�fØ‘eàŸš™œ�ð !�”	Ø !�”Ø$�”à˜˜c™œ�ð ð Ø $¤�FØ $¤�IØ‘Eð Ô'ð JØ!œ;¨$¬.Ð8Ð8Ý&Ð']Ý% d™OœOÔ7½À4¹¼Ô9WØ œM¨6¬;ða8ñ (8à8?ÀÀÀÔ8HñJô Jð Jð ���ð ˜6”? dÔ&6Ð6Ð6Ý"™*œ*�CØ '¨¤�C”IØ!%¤�C”JØ"œy�C”HØ!'�C”JØ"(¨1¡*�D”KØ�Jð ”>ð "Ý"™*œ*�CØ $¤¨V¨W¨WÔ 5�C”IØ!%¤�C”JØ&�C”HØ $�C”IØ!'�C”JØ"(�D”KØ!Ÿ^š^¨CÑ0Ô0�FØ ¤Ò,Ð,å&Ð'OÐSZÐ[aÔSbÑ'cÐelÐmsÐmtÐmtÔeuÑvÔvÐvØ!œ[�FØ!Ð+¡8Ø!�Mà$�”ÝÐCÀwÈvÄÐW]ÐF^Ñ^Ð`gÐhnÐhoÐhoÔ`pÑqÔqÐqðe �vŠo‰oðh ˜q‘jˆŒØŒ<ÐÝÐ DÑEÔEÐEØˆtr
   c                 ó   — | S r   r   r!   s    r	   Ú__iter__zLexer.__iter__‘  r<   r
   c                 ó@   — |                       ¦   «         }|€t          ‚|S r   )rÂ   ÚStopIteration)r   Úts     r	   Únextz
Lexer.next”  s   € Ø�JŠJ‰LŒLˆØˆ9ÝÐØˆr
   r   )rC   )r   r   r   r   rh   r‰   r    r¤   rœ   rª   r­   r¯   r²   rÂ   rÄ   rÈ   Ú__next__r   r
   r	   r@   r@   r   sè   € € € € € ðð ð ð4ð ð ð ð<&ð &ð &ð &ðV ð  ð  ðJð ð ðð ð ðð ð ð-ð -ð -ðð ð ðð ð ð^ð ^ð ^ðBð ð ðð ð ð €H€H€Hr
   r@   c                 ó.   — t          | d| j        ¦  «        S )NÚregex)r]   Ú__doc__)rÀ   s    r	   Ú
_get_regexrÍ   ª  s   € Ý�4˜ ¤Ñ-Ô-Ð-r
   c                 ó(  — 	 t           ‚# t           $ r~ t          j        ¦   «         \  }}}|j        }| dk    r|j        }| dz  } | dk    °|j                             ¦   «         }|j        |j        k    r|                     |j        ¦  «         |cY S w xY wrY   )	r¼   r�   Úexc_infoÚtb_frameÚf_backÚ	f_globalsrZ   Úf_localsÚupdate)ÚlevelsÚeÚbrÇ   r   Úldicts         r	   Úget_caller_module_dictrÙ   µ  s¥   € ðÝÐøÝð 
ð 
ð 
Ý”‘”‰ˆˆ!ˆAØŒJˆØ�qŠjˆjØ”ˆAØ�a‰KˆFð �qŠjˆjð ”× Ò Ñ"Ô"ˆØŒ;˜!œ*Ò$Ð$Ø�LŠL˜œÑ$Ô$Ð$àˆˆˆð
øøøs   ‚	 ‰BBÂBc                 ó°   — g }t          | |¦  «        D ]B\  }}|r&|d         r|                     ||d         f¦  «         Œ-|                     |¦  «         ŒC|S rY   )Úzipr\   )ÚfunclistÚnamelistÚresultr   r:   s        r	   rz   rz   Ë  sn   € Ø€FÝ�h˜xÑ(Ô(ð ð ‰ˆˆ$Øð 
�!�A”$ð 
Ø�]Š]˜D ! A¤$˜<Ñ(Ô(Ð(Ð(à�]Š]˜1ÑÔÐÐØ€Mr
   c                 ó¦   — g }| D ]K}|r2|d         r*|                      ||d                  |d         f¦  «         Œ6|                      |¦  «         ŒL|S rY   )r\   )rÝ   r�   rÞ   r±   s       r	   rš   rš   Û  si   € Ø€VØð ð ˆØð �1�Q”4ð Ø�mŠm˜U 1 Q¤4œ[¨¨1¬Ð.Ñ/Ô/Ð/Ð/à�mŠm˜AÑÔÐÐØ€]r
   c                 óB  — | sg S d                      | ¦  «        }	 t          j        |t          j        |z  ¦  «        }d gt	          |j                             ¦   «         ¦  «        dz   z  }|d d …         }|j                             ¦   «         D ]ˆ\  }}	|                     |d ¦  «        }
t          |
¦  «        t          j        t          j        fv r|
||         f||	<   |||	<   ŒU|
�1|||	<   |                     d¦  «        dk    rd||	<   Œ{d ||         f||	<   Œ‰||fg|g|gfS # t          $ rt t          t!          | ¦  «        dz  ¦  «        }|dk    rd}t#          | d |…         |||¦  «        \  }}}t#          | |d …         |||¦  «        \  }}}||z   ||z   ||z   fcY S w xY w)Nú|rD   Úignore_r   ©NNé   )rs   r—   r˜   r™   ÚmaxÚ
groupindexÚvaluesr[   r¦   r   rn   ÚFunctionTypeÚ
MethodTypeÚfindÚ	ExceptionÚintry   Ú_form_master_re)ÚrelistÚreflagsrØ   ÚtoknamesrË   rE   r½   Úlexindexnamesr   r‡   Úhandler¾   Úllistr…   ÚlnamesÚrlistÚrreÚrnamess                     r	   rí   rí   ì  sá  € ØÐ˜"�9Ø�HŠH�VÑÔ€Eð3Ý”
˜5¥¤¨gÑ!5Ñ6Ô6ˆð �x¥3 uÔ'7×'>Ò'>Ñ'@Ô'@Ñ#AÔ#AÀ!Ñ#CÑDˆØ$ Q Q QœˆàÔ#×)Ò)Ñ+Ô+ð 
	:ð 
	:‰CˆAˆaØ—Y’Y˜q Ñ&Ô&ˆFÝ�F‰|Œ|¥Ô 2µEÔ4DÐEÐEÐEØ#)¨(°1¬+Ð"6�˜Q‘Ø#$�˜aÑ Ð ØÐ#Ø#$�˜aÑ Ø—6’6˜)Ñ$Ô$ qÒ(Ð(Ø&1�L ‘O�Oà'+¨X°a¬[Ð&9�L ‘Oøà�|Ð$Ð% u g¨}¨oÐ=Ð=øÝð 3ð 3ð 3Ý•�F‘”˜A‘ÑÔˆØ�Š6ˆ6�q�1Ý,¨V°B°Q°B¬Z¸ÀÀhÑOÔOÑˆˆs�FÝ,¨V°A°B°B¬Z¸ÀÀhÑOÔOÑˆˆs�FØ�U‰{˜C ™G V¨F¡]Ð2Ð2Ð2Ð2ð3øøøs   ›DD  Ä A;FÆFc                 óH  — d}|                       d¦  «        }t          dt          |¦  «        ¦  «        D ]}||         |vr||         dk    r nŒ|dk    rt          |d|…         ¦  «        }nd}d|v rt          |¦  «        }d                     ||d …         ¦  «        }||fS )NrD   Ú_ÚANY)rB   )rp   rx   ry   Útuplers   )r   ÚnamesÚnonstateÚpartsr‡   ÚstatesÚ	tokennames          r	   Ú_statetokenr    s´   € Ø€HØ�GŠG�C‰LŒL€EÝ�1•S˜‘Z”ZÑ Ô ð ?ð ?ˆØ�a”˜EÐ!Ð! e¨A¤h°%Ò&7Ð&7¸¸øØˆ1‚u€uÝ�e˜A˜a˜C”jÑ!Ô!€v€và€và�€€Ý�e‘”€và—’˜˜q˜r˜rœÑ#Ô#€IØ�9ÐÐr
   c                   óR   — e Zd Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd	„ Z	d
„ Z
d„ Zd„ Zd„ ZdS )ÚLexerReflectNr   c                 ó¾   — || _         d | _        g | _        || _        ddi| _        i | _        d| _        |€ t          t          j	        ¦  «        | _
        d S || _
        d S )NrB   Ú	inclusiver   )rØ   Ú
error_funcÚtokensrï   Ú	stateinfoÚmodulesr4   r'   r�   ÚstderrÚlog)r   rØ   r  rï   s       r	   r   zLexerReflect.__init__+  s]   € ØˆŒ
ØˆŒØˆŒØ!ˆŒØ%¨Ð4ˆŒØˆŒØˆŒ
àˆ;Ý ¥¤Ñ,Ô,ˆDŒHˆHˆHàˆDŒHˆHˆHr
   c                 ó¦   — |                       ¦   «          |                      ¦   «          |                      ¦   «          |                      ¦   «          d S r   )Ú
get_tokensÚget_literalsÚ
get_statesÚ	get_rulesr!   s    r	   Úget_allzLexerReflect.get_all:  sJ   € Ø�ŠÑÔÐØ×ÒÑÔÐØ�ŠÑÔÐØ�ŠÑÔÐÐÐr
   c                 óˆ   — |                       ¦   «          |                      ¦   «          |                      ¦   «          | j        S r   )Úvalidate_tokensÚvalidate_literalsÚvalidate_rulesr4   r!   s    r	   Úvalidate_allzLexerReflect.validate_allA  s@   € Ø×ÒÑÔÐØ×ÒÑ Ô Ð Ø×ÒÑÔÐØŒzÐr
   c                 ó\  — | j                              dd ¦  «        }|s#| j                             d¦  «         d| _        d S t	          |t
          t          f¦  «        s#| j                             d¦  «         d| _        d S |s#| j                             d¦  «         d| _        d S || _        d S )Nr  zNo token list is definedrD   ztokens must be a list or tupleztokens is empty)rØ   r¦   r  r4   rm   Úlistrû   r  )r   r  s     r	   r  zLexerReflect.get_tokensH  s«   € Ø”—’ ¨Ñ.Ô.ˆØð 	ØŒH�NŠNÐ5Ñ6Ô6Ð6ØˆDŒJØˆFå˜&¥$­ Ñ/Ô/ð 	ØŒH�NŠNÐ;Ñ<Ô<Ð<ØˆDŒJØˆFàð 	ØŒH�NŠNÐ,Ñ-Ô-Ð-ØˆDŒJØˆFàˆŒˆˆr
   c                 óÞ   — i }| j         D ]b}t                               |¦  «        s"| j                             d|¦  «         d| _        ||v r| j                             d|¦  «         d||<   Œcd S )NzBad token name '%s'rD   zToken '%s' multiply defined)r  Ú_is_identifierr´   r  r4   r2   )r   Ú	terminalsr±   s      r	   r  zLexerReflect.validate_tokens\  sƒ   € Øˆ	Ø”ð 	ð 	ˆAÝ!×'Ò'¨Ñ*Ô*ð Ø”—’Ð4°QÑ7Ô7Ð7Ø�”
Ø�Iˆ~ˆ~Ø”× Ò Ð!>ÀÑBÔBÐBØˆI�a‰LˆLð	ð 	r
   c                 óf   — | j                              dd¦  «        | _        | j        s	d| _        d S d S )NÚliteralsrC   )rØ   r¦   r  r!   s    r	   r  zLexerReflect.get_literalsg  s8   € Øœ
Ÿš z°"Ñ5Ô5ˆŒØŒ}ð 	ØˆDŒMˆMˆMð	ð 	r
   c                 ó.  — 	 | j         D ]Y}t          |t          ¦  «        rt          |¦  «        dk    r/| j                             dt          |¦  «        ¦  «         d| _        ŒZd S # t          $ r% | j                             d¦  «         d| _        Y d S w xY w)NrD   z.Invalid literal %s. Must be a single characterzIInvalid literals specification. literals must be a sequence of characters)r  rm   r¢   ry   r  r4   rv   Ú	TypeError)r   r_   s     r	   r  zLexerReflect.validate_literalsm  sª   € ð	Ø”]ð #ð #�Ý! !¥KÑ0Ô0ð #µC¸±F´F¸Q²J°JØ”H—N’NÐ#SÕUYÐZ[ÑU\ÔU\Ñ]Ô]Ð]Ø!"�D”Jøð#ð #øõ
 ð 	ð 	ð 	ØŒH�NŠNÐfÑgÔgÐgØˆDŒJˆJˆJˆJð	øøøs   ‚A!A% Á%+BÂBc                 ó
  — | j                              dd ¦  «        | _        | j        �rXt          | j        t          t
          f¦  «        s#| j                             d¦  «         d| _        d S | j        D �]}t          |t          ¦  «        rt          |¦  «        dk    r0| j                             dt          |¦  «        ¦  «         d| _        Œ[|\  }}t          |t          ¦  «        s0| j                             dt          |¦  «        ¦  «         d| _        Œ¥|dk    s)|dk    s#| j                             d	|¦  «         d| _        ŒÔ|| j        v r$| j                             d
|¦  «         d| _        �Œ|| j        |<   �Œd S d S )Nrÿ   z)states must be defined as a tuple or listrD   rä   zMInvalid state specifier %s. Must be a tuple (statename,'exclusive|inclusive')zState name %s must be a stringr  Ú	exclusivez:State type for state %s must be 'inclusive' or 'exclusive'zState '%s' already defined)rØ   r¦   rÿ   rm   rû   r  r  r4   ry   rv   r¢   r  )r   r   r:   Ú	statetypes       r	   r  zLexerReflect.get_statesx  sž  € Ø”j—n’n X¨dÑ3Ô3ˆŒàŒ;ñ 	9Ý˜tœ{­Eµ$¨<Ñ8Ô8ð 9Ø”(—.’.Ð!LÑMÔMÐMØ �$”*�*�*àœ;ð 9ñ 9�aÝ)¨!­EÑ2Ô2ð (µc¸!±f´fÀ²k°kØ#œxŸ~š~Ð.}õ  Cð  DEñ  Fô  Fñ   Gô   Gð   GØ,-˜tœzØ'Ø*+™˜˜iÝ)¨$­{Ñ;Ô;ð (Ø#œxŸ~š~Ð.NÕPTÐUYÑPZÔPZÑ[Ô[Ð[Ø,-˜tœzØ'Ø )¨[Ò 8Ð 8¸IÈÒ<TÐ<TØ#œxŸ~š~Ð.jÐkoÑpÔpÐpØ,-˜tœzØ'Ø 4¤>Ð1Ð1Ø#œxŸ~š~Ð.JÈ4ÑPÔPÐPØ,-˜tœzÙ'Ø/8˜œ tÑ,Ñ,ð/	9ð 	9ð
9ð 9r
   c                 óÐ  — d„ | j         D ¦   «         }i | _        i | _        i | _        i | _        i | _        | j        D ]}g | j        |<   g | j        |<   Œt          |¦  «        dk    r#| j         	                    d¦  «         d| _	        d S |D �]˜}| j         |         }t          || j        ¦  «        \  }}|| j        |<   t          |d¦  «        r–|dk    r|D ]}|| j        |<   ŒŒX|dk    rRt          |¦  «        j        }t          |¦  «        j        }| j         	                    d|||j        ¦  «         d| _	        Œ°|D ]$}| j        |                              ||f¦  «         Œ%ŒØt#          |t$          ¦  «        r‰|dk    r0|D ]}|| j        |<   Œd	|v r| j                             d
|¦  «         �Œ#|dk    r$| j         	                    d|¦  «         d| _	        �ŒM|D ]$}| j        |                              ||f¦  «         Œ%�Œv| j         	                    d|¦  «         d| _	        �Œš| j                             ¦   «         D ]F}t*          j        d         dk     r|                     d„ ¦  «         Œ/|                     d„ ¬¦  «         ŒG| j                             ¦   «         D ]G}t*          j        d         dk     r|                     d„ ¦  «         Œ/|                     d„ d¬¦  «         ŒHd S )Nc                 ó.   — g | ]}|d d…         dk    ¯|‘ŒS )Nrä   Út_r   )Ú.0r   s     r	   ú
<listcomp>z*LexerReflect.get_rules.<locals>.<listcomp>˜  s%   € Ð<Ð<Ð<˜!¨Q¨r°¨r¬U°dª]¨]�A¨]¨]¨]r
   r   z+No rules of the form t_rulename are definedrD   r>   r4   Úignorez,%s:%d: Rule '%s' must be defined as a stringú\z#%s contains a literal backslash '\'ú'Rule '%s' must be defined as a functionz&%s not defined as a function or stringr   c                 ó‚   — t          t          | d         ¦  «        j        t          |d         ¦  «        j        ¦  «        S ©NrD   )Úcmpr   r»   ©ÚxÚys     r	   ú<lambda>z(LexerReflect.get_rules.<locals>.<lambda>Ð  s-   € ¥3¥y°°1´¡¤Ô'EÅiÐPQÐRSÔPTÁoÄoÔFdÑ#eÔ#e€ r
   c                 ó6   — t          | d         ¦  «        j        S r,  )r   r»   ©r/  s    r	   r1  z(LexerReflect.get_rules.<locals>.<lambda>Ó  s   € ¥Y¨q°¬t¡_¤_Ô%C€ r
   )ra   c                 ó´   — t          | d         ¦  «        t          |d         ¦  «        k     t          | d         ¦  «        t          |d         ¦  «        k    z
  S r,  ©ry   r.  s     r	   r1  z(LexerReflect.get_rules.<locals>.<lambda>Ø  s>   € ¥C¨¨!¬¡I¤Iµ°A°a´D±	´	Ò$9½cÀ!ÀAÄ$¹i¼iÍ#ÈaÐPQÌdÉ)Ì)Ò>SÑ#T€ r
   c                 ó,   — t          | d         ¦  «        S r,  r5  r3  s    r	   r1  z(LexerReflect.get_rules.<locals>.<lambda>Û  s   € ¥S¨¨1¬¡Y¤Y€ r
   T)ra   Úreverse)rØ   rð   ÚfuncsymÚstrsymr(  Úerrorfr  ry   r  r4   r  Úhasattrr   r»   rº   r   r\   rm   r¢   r2   rç   r�   rŽ   Úsort)	r   Útsymbolsr   r   rÇ   rÿ   ÚtoknameÚlineÚfiles	            r	   r  zLexerReflect.get_rules—  sS  € Ø<Ð<˜tœzÐ<Ñ<Ô<ˆð ˆŒØˆŒØˆŒØˆŒØˆŒà”ð 	!ð 	!ˆAØ!ˆTŒ\˜!‰_Ø ˆTŒ[˜‰^ˆ^åˆx‰=Œ=˜AÒÐØŒH�NŠNÐHÑIÔIÐIØˆDŒJØˆFàð  	ñ  	ˆAØ”
˜1”ˆAÝ)¨!¨D¬NÑ;Ô;‰OˆF�GØ&ˆDŒM˜!Ñå�q˜Ñ$Ô$ð Ø˜gÒ%Ð%Ø#ð +ð +˜Ø)*˜œ A™˜ð+à Ò(Ð(Ý$ Q™<œ<Ô6�DÝ$ Q™<œ<Ô3�DØ”H—N’NÐ#QÐRVÐW[Ð\]Ô\fÑgÔgÐgØ!"�D”J�Jà#ð 6ð 6˜Øœ Qœ×.Ò.°°!¨uÑ5Ô5Ð5Ð5ð6å˜A�{Ñ+Ô+ð Ø˜hÒ&Ð&Ø#ð +ð +˜Ø)*˜œ A™˜Ø˜q�y�yØœ×(Ò(Ð)OÐPQÑRÔRÐRùà Ò'Ð'Ø”H—N’NÐ#LÈaÑPÔPÐPØ!"�D”J‘Jà#ð 5ð 5˜Øœ Aœ×-Ò-¨q°¨eÑ4Ô4Ð4Ð4ñ5ð ”—’ÐGÈÑKÔKÐKØ�”
‘
ð ”×$Ò$Ñ&Ô&ð 	Eð 	EˆAÝÔ Ô" QÒ&Ð&Ø—’ÐeÐeÑfÔfÐfÐfð —’ÐCÐC�ÑDÔDÐDÐDð ”×#Ò#Ñ%Ô%ð 	=ð 	=ˆAÝÔ Ô" QÒ&Ð&Ø—’ÐTÐTÑUÔUÐUÐUð —’Ð.Ð.°t�Ñ<Ô<Ð<Ð<ð	=ð 	=r
   c           
      óü	  — | j         D �]Ó}| j        |         D �]*\  }}t          |¦  «        j        }t          |¦  «        j        }t          j        |¦  «        }d| j        |<   | j        |         }t          |t          j        ¦  «        rd}nd}t          |¦  «        j        }	|	|k    r*| j                             d|||j        ¦  «         d| _        Œ¼|	|k     r*| j                             d|||j        ¦  «         d| _        Œìt!          |¦  «        s+| j                             d|||j        ¦  «         d| _        �Œ&	 t#          j        d|›dt!          |¦  «        ›d�t"          j        | j        z  ¦  «        }
|
                     d	¦  «        r)| j                             d
|||j        ¦  «         d| _        �Œ¢# t"          j        $ rx t-          j        ¦   «         \  }}}| j                             d|||j        |¦  «         dt!          |¦  «        v r"| j                             d|||j        ¦  «         d| _        Y �Œ(w xY w| j        |         D �]V\  }}| j        |         }|dk    r#| j                             d|¦  «         d| _        Œ<|| j        vr=|                     d¦  «        dk     r$| j                             d||¦  «         d| _        Œ‚	 t#          j        d|›d|›d�t"          j        | j        z  ¦  «        }
|
                     d	¦  «        r"| j                             d|¦  «         d| _        Œé# t"          j        $ r] t-          j        ¦   «         \  }}}| j                             d||¦  «         d|v r| j                             d|¦  «         d| _        Y �ŒTw xY w| j        |         s/| j        |         s"| j                             d|¦  «         d| _        | j                             |d ¦  «        }|rÙ|}t          |¦  «        j        }t          |¦  «        j        }t          j        |¦  «        }d| j        |<   t          |t          j        ¦  «        rd}nd}t          |¦  «        j        }	|	|k    r)| j                             d|||j        ¦  «         d| _        |	|k     r)| j                             d|||j        ¦  «         d| _        �ŒÕ| j        D ]}|                      |¦  «         Œd S )NrD   rä   z'%s:%d: Rule '%s' has too many argumentsz%%s:%d: Rule '%s' requires an argumentz2%s:%d: No regular expression defined for rule '%s'ú(?P<ú>ú)rC   z<%s:%d: Regular expression for rule '%s' matches empty stringz3%s:%d: Invalid regular expression for rule '%s'. %sú#z6%s:%d. Make sure '#' in rule '%s' is escaped with '\#'r4   r*  râ   r   z-Rule '%s' defined for an unspecified token %sz5Regular expression for rule '%s' matches empty stringz,Invalid regular expression for rule '%s'. %sz/Make sure '#' in rule '%s' is escaped with '\#'zNo rules defined for state '%s')r  r8  r   r»   rº   ÚinspectÚ	getmoduler	  rð   rm   rn   ré   Úco_argcountr  r4   r   rÍ   r—   r˜   r™   rï   r´   r�   rÏ   r9  r  rê   r:  r¦   Úvalidate_module)r   r¨   Úfnamer   r?  r@  Úmoduler>  ÚreqargsÚnargsr_   Ú_etyperÖ   Ú_etracer:   ÚrÚefuncs                    r	   r  zLexerReflect.validate_rulesÞ  s  € Ø”^ð ]	#ñ ]	#ˆEð
 !œL¨Ô/ð %#ñ %#‘��qÝ  ‘|”|Ô2�Ý  ‘|”|Ô/�Ý Ô*¨1Ñ-Ô-�Ø'(�”˜VÑ$àœ-¨Ô.�Ý˜a¥Ô!1Ñ2Ô2ð  Ø�G�Gà�GÝ! !™œÔ0�Ø˜7’?�?Ø”H—N’NÐ#LÈTÐRVÐWXÔWaÑbÔbÐbØ!"�D”JØà˜7’?�?Ø”H—N’NÐ#JÈDÐQUÐVWÔV`ÑaÔaÐaØ!"�D”JØå! !‘}”}ð Ø”H—N’NÐ#WÐX\Ð]aÐbcÔblÑmÔmÐmØ!"�D”JÙð
#Ýœ
˜
°5°5°5½*ÀQ¹-¼-¸-¸-Ð#HÍ"Ì*ÐW[ÔWcÑJcÑdÔd�AØ—w’w˜r‘{”{ð 'ØœŸšÐ'eÐgkÐlpÐqrÔq{Ñ|Ô|Ð|Ø%&˜œ
ùøÝ”xð #ð #ð #Ý),¬©¬Ñ&�F˜A˜wØ”H—N’NÐ#XÐZ^Ð_cÐdeÔdnÐopÑqÔqÐqØ�j¨™mœmÐ+Ð+ØœŸšÐ'`ÐaeÐfjÐlmÔlvÑwÔwÐwØ!"�D”J�J‘Jð#øøøð œ+ eÔ,ð #ñ #‘��QØœ-¨Ô-�Ø˜gÒ%Ð%Ø”H—N’NÐ#LÈdÑSÔSÐSØ!"�D”JØà $¤+Ð-Ð-°'·,²,¸yÑ2IÔ2IÈAÒ2MÐ2MØ”H—N’NÐ#RÐSWÐX_Ñ`Ô`Ð`Ø!"�D”JØð
#Ýœ
˜
°4°4°4¸¸¸Ð#:½2¼:ÈÌÑ;TÑUÔU�AØŸš ™œð (ØœŸšÐ(_Ð`dÑeÔeÐeØ&'˜œøøÝ”xð #ð #ð #Ý),¬©¬Ñ&�F˜A˜wØ”H—N’NÐ#QÐRVÐWXÑYÔYÐYØ˜a�x�xØœŸšÐ(ZÐ[_Ñ`Ô`Ð`Ø!"�D”J�J‘Jð#øøøð ”< Ô&ð ¨t¬{¸5Ô/Að Ø”—’Ð@ÀÑGÔGÐGØ�”
ð ”K—O’O E¨$Ñ/Ô/ˆEØð #Ø�Ý  ‘|”|Ô2�Ý  ‘|”|Ô/�Ý Ô*¨1Ñ-Ô-�Ø'(�”˜VÑ$å˜a¥Ô!1Ñ2Ô2ð  Ø�G�Gà�GÝ! !™œÔ0�Ø˜7’?�?Ø”H—N’NÐ#LÈTÐRVÐWXÔWaÑbÔbÐbØ!"�D”Jà˜7’?�?Ø”H—N’NÐ#JÈDÐQUÐVWÔV`ÑaÔaÐaØ!"�D”Jùà”lð 	)ð 	)ˆFØ× Ò  Ñ(Ô(Ð(Ð(ð	)ð 	)s(   Ä?A9F:Æ:BIÉ IËA%L:Ì:A(N&Î%N&c                 óØ  — t          j        |¦  «        \  }}t          j        d¦  «        }t          j        d¦  «        }i }|dz  }|D ] }|                     |¦  «        }|s|                     |¦  «        }|rk|                     d¦  «        }	|                     |	¦  «        }
|
s|||	<   n9t          j        |¦  «        }| j         	                    d|||	|
¦  «         d| _	        |dz  }Œ¡d S )Nz\s*def\s+(t_[a-zA-Z_0-9]*)\(z\s*(t_[a-zA-Z_0-9]*)\s*=rD   z7%s:%d: Rule %s redefined. Previously defined on line %d)
rF  Úgetsourcelinesr—   r˜   r´   rµ   r¦   Úgetsourcefiler  r4   )r   rK  ÚlinesÚlinenÚfreÚsreÚ	counthashÚlr¾   r:   Úprevr   s               r	   rI  zLexerReflect.validate_moduleJ  s  € ÝÔ-¨fÑ5Ô5‰ˆˆuåŒjÐ8Ñ9Ô9ˆÝŒjÐ4Ñ5Ô5ˆàˆ	Ø�‰
ˆØð 	ð 	ˆAØ—	’	˜!‘”ˆAØð !Ø—I’I˜a‘L”L�Øð #Ø—w’w˜q‘z”z�Ø —}’} TÑ*Ô*�Øð #Ø&+�I˜d‘O�Oå&Ô4°VÑ<Ô<�HØ”H—N’NÐ#\Ð]eÐfkÐlpÐquÑvÔvÐvØ!"�D”JØ�Q‰JˆEˆEð	ð 	r
   )Nr   )r   r   r   r   r  r  r  r  r  r  r  r  r  rI  r   r
   r	   r  r  *  sÆ   € € € € € ðð ð ð ðð ð ðð ð ðð ð ð(ð ð ðð ð ð	ð 	ð 	ð9ð 9ð 9ð>D=ð D=ð D=ðNa)ð a)ð a)ðXð ð ð ð r
   r  r‹   rC   c
           
      óp  ‡ — d }
ddi}t          ¦   «         }||_        |	€t          t          j        ¦  «        }	|r|€t          t          j        ¦  «        }|r|Š ‰ r+ˆ fd„t          ‰ ¦  «        D ¦   «         }t          |¦  «        }
nt          d¦  «        }
t          |
|	|¬¦  «        }| 	                    ¦   «          |s#| 
                    ¦   «         rt          d¦  «        ‚|r;|r9	 |                     ||
¦  «         |j        a|j        a|a|S # t           $ r Y nw xY w|rQ|                     d|j        ¦  «         |                     d|j        ¦  «         |                     d	|j        ¦  «         i |_        |j        D ]}d
|j        |<   Œt-          |j        t.          t0          f¦  «        r@ t3          |j        d         ¦  «        ¦   «                              |j        ¦  «        |_        n|j        |_        |j        }i }|D ]Ý}g }|j        |         D ]}\  }}t;          |¦  «        j        }t;          |¦  «        j        }|                      d|›dtC          |¦  «        ›d�¦  «         |r%|                     d|tC          |¦  «        |¦  «         Œ~|j"        |         D ];\  }}|                      d|›d|›d�¦  «         |r|                     d|||¦  «         Œ<|||<   ŒÞ|r|                     d¦  «         |D ]€}tG          ||         ||
|j$        ¦  «        \  }}}||j%        |<   ||j&        |<   ||j'        |<   |r=tQ          tS          |¦  «        ¦  «        D ] }|                     d||||         ¦  «         Œ!Œ�| *                    ¦   «         D ]’\  }}|dk    r‡|dk    r�|j%        |          +                    |j%        d         ¦  «         |j&        |          +                    |j&        d         ¦  «         |j'        |          +                    |j'        d         ¦  «         Œ“||_,        |j%        d         |_-        |j&        d         |_.        ||_/        |j0        |_1        |j1         2                    dd¦  «        |_3        |j4        |_5        |j4         2                    dd ¦  «        |_6        |j6        s|	 7                    d¦  «         | *                    ¦   «         D ]¯\  }}|dk    rF||j4        vr|	 7                    d|¦  «         ||j0        vr|j3        r|	 7                    d|¦  «         ŒQ|dk    rX||j4        vr#|j4         2                    dd ¦  «        |j4        |<   ||j0        vr#|j0         2                    dd¦  «        |j0        |<   Œ°|j        a|j        a|a|r|r| 8                    ||¦  «         |S )NrB   r  c                 ó4   •— g | ]}|t          ‰|¦  «        f‘ŒS r   )r]   )r&  ÚkrK  s     €r	   r'  zlex.<locals>.<listcomp>y  s(   ø€ Ð=Ð=Ð=¨A�1•W˜V AÑ&Ô&Ð'Ð=Ð=Ð=r
   rä   )r  rï   zCan't build lexerzlex: tokens   = %rzlex: literals = %rzlex: states   = %rrD   r   rB  rC  rD  z(lex: Adding rule %s -> '%s' (state '%s')z#lex: ==== MASTER REGEXS FOLLOW ====z"lex: state '%s' : regex[%d] = '%s'rC   zNo t_error rule is definedr!  z1No error rule is defined for exclusive state '%s'z2No ignore rule is defined for exclusive state '%s')9r@   rW   r'   r�   r
  ÚdirÚdictrÙ   r  r  r  ÚSyntaxErrorr    rÂ   r¤   r¸   r�   r5   r  r  r  rS   rm   r  rû   r   rs   rU   r8  r   r»   rº   r\   rÍ   r9  rí   rð   rG   rH   rI   rx   ry   r[   ÚextendrL   rE   rF   rO   r(  rM   r¦   rT   r:  rN   rR   r2   r‰   )rK  r^   r6   Úoptimizer‹   rï   Únowarnr}   ÚdebuglogÚerrorlogrØ   r  ÚlexobjÚ_itemsÚlinfor±   Úregexsr¨   Ú
regex_listrJ  r   r?  r@  r:   rP  rE   Úre_textÚre_namesr‡   Ústyper   s   `                              r	   Úlexro  f  s`  ø€ à€EØ˜{Ð+€IÝ‰WŒW€FØ!€FÔð ÐÝ�SœZÑ(Ô(ˆàð -ØÐÝ ¥¤Ñ,Ô,ˆHð Ð˜ˆvàð *Ø=Ð=Ð=Ð=µ°V±´Ð=Ñ=Ô=ˆÝ�V‘”ˆˆå& qÑ)Ô)ˆõ ˜ 8°GÐ<Ñ<Ô<€EØ	‡M‚M�O„O€OØð 3Ø×ÒÑÔð 	3ÝÐ1Ñ2Ô2Ð2àð 	�Fð 	ð	Ø�NŠN˜6 %Ñ(Ô(Ð(Ø”LˆEØ”LˆEØˆEØˆMøåð 	ð 	ð 	ØˆDð	øøøð ð =Ø�ŠÐ*¨E¬LÑ9Ô9Ð9Ø�ŠÐ*¨E¬NÑ;Ô;Ð;Ø�ŠÐ*¨E¬OÑ<Ô<Ð<ð €FÔØŒ\ð  ð  ˆØˆÔ˜ÑÐõ �%”.¥$¥u Ñ.Ô.ð ,Ø4�T %¤.°Ô"3Ñ4Ô4Ñ6Ô6×;Ò;¸E¼NÑKÔKˆÔÐà"œ^ˆÔð ”€Ià€Fàð #ð #ˆØˆ
ð œ eÔ,ð 	eð 	e‰HˆE�1Ý˜Q‘<”<Ô.ˆDÝ˜Q‘<”<Ô+ˆDØ×ÒÐ¨e¨e¨eµJ¸q±M´M°M°MÐBÑCÔCÐCØð eØ—’ÐHÈÍzÐZ[É}Ì}Ð^cÑdÔdÐdøð ”l 5Ô)ð 	Xð 	X‰FˆD�Ø×ÒÐ¨d¨d¨d°1°1°1Ð5Ñ6Ô6Ð6Øð XØ—’ÐHÈÈaÐQVÑWÔWÐWøà"ˆˆu‰ˆð ð =Ø�ŠÐ;Ñ<Ô<Ð<àð Yð YˆÝ#2°6¸%´=ÀÈÈuÌ~Ñ#^Ô#^Ñ ˆˆw˜Ø#(ˆÔ˜%Ñ Ø'.ˆÔ˜eÑ$Ø(0ˆÔ˜uÑ%Øð 	YÝ�3˜w™<œ<Ñ(Ô(ð Yð Y�Ø—’ÐBÀ5È!ÈWÐUVÌZÑXÔXÐXÐXøð !—’Ñ(Ô(ð Uð U‰ˆˆeØ�IÒÐ %¨;Ò"6Ð"6ØÔ˜uÔ%×,Ò,¨VÔ->¸yÔ-IÑJÔJÐJØÔ" 5Ô)×0Ò0°Ô1FÀyÔ1QÑRÔRÐRØÔ# EÔ*×1Ò1°&Ô2HÈÔ2SÑTÔTÐTøà#€FÔØÔ$ YÔ/€F„LØÔ,¨YÔ7€FÔØ€FÔð "œL€FÔØÔ,×0Ò0°¸2Ñ>Ô>€FÔð "œL€FÔØ”|×'Ò'¨	°$Ñ7Ô7€FÔØÔð 7Ø×ÒÐ5Ñ6Ô6Ð6ð —?’?Ñ$Ô$ð 
Dð 
D‰ˆˆ%Ø�KÒÐØ˜%œ,Ð&Ð&Ø×#Ò#Ð$WÐYZÑ[Ô[Ð[Ø˜%œ,Ð&Ð&¨6Ô+;Ð&Ø×#Ò#Ð$XÐZ[Ñ\Ô\Ð\øØ�kÒ!Ð!Ø˜%œ,Ð&Ð&Ø%*¤\×%5Ò%5°iÀÑ%EÔ%E�5”< ‘?Ø˜%œ,Ð&Ð&Ø%*¤\×%5Ò%5°iÀÑ%CÔ%C�5”< ‘?øð ŒL€EØŒL€EØ€Eð ð *�(ð *Ø�Š˜˜yÑ)Ô)Ð)à€Ms   Ã%'D Ä
DÄDc                 ó$  — |s˜	 t           j        d         }t          |¦  «        }|                     ¦   «         }|                     ¦   «          nM# t
          $ r@ t           j                             d¦  «         t           j                             ¦   «         }Y nw xY w| r| j	        }nt          } ||¦  «         | r| j
        }nt          }	  |¦   «         }|sd S t           j                             d|j        |j        |j        |j        fz  ¦  «         ŒI)NrD   z/Reading from standard input (type EOF to end):
z(%s,%r,%d,%d)
)r�   Úargvrt   Úreadr{   Ú
IndexErrorÚstdoutr,   Ústdinr¤   rÂ   r   r   r   r    )r¸   Údatar   r   Ú_inputÚ_tokenr¿   s          r	   Úrunmainry  û  s  € Øð $ð	$Ý”x ”{ˆHÝ�X‘”ˆAØ—6’6‘8”8ˆDØ�GŠG‰IŒIˆIˆIøÝð 	$ð 	$ð 	$ÝŒJ×ÒÐOÑPÔPÐPÝ”9—>’>Ñ#Ô#ˆDˆDˆDð	$øøøð ð Ø”ˆˆåˆØ
€Fˆ4�L„L€LØð Ø”ˆˆåˆð[Øˆf‰hŒhˆØÐ�E�EÝŒ
×ÒÐ*¨c¬h¸¼	À3Ä:ÈcÌjÐ-YÑYÑZÔZÐZð[s   „A	A ÁABÂBc                 ó   ‡ — ˆ fd„}|S )Nc                 ó`   •— t          ‰d¦  «        rt          ‰¦  «        | _        n‰| _        | S )Nr>   )r;  rÍ   rË   )r   rP  s    €r	   Ú	set_regexzTOKEN.<locals>.set_regex  s0   ø€ Ý�1�ZÑ Ô ð 	Ý  ‘m”mˆAŒGˆGàˆAŒGØˆr
   r   )rP  r|  s   ` r	   ÚTOKENr}    s$   ø€ ðð ð ð ð ð Ðr
   )
NNr   r   r‹   r   r   rC   NNrã   )$ru   rw   r—   r�   rn   rZ   rq   rF  Ú
StringTypeÚUnicodeTyper¢   ÚAttributeErrorr$   ÚbytesrŽ   r   r˜   r  rë   r   r^   r   r'   r8   r@   rÍ   rÙ   rz   rš   rí   r  r  ro  ry  r}  ÚTokenr   r
   r	   ú<module>rƒ     s˜  ððD €Ø€à (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (ðàÔ# UÔ%6Ð7€K€KøØð ð ð à˜�,€K€K€Kðøøøð Ô�AÔ˜ÒÐðð ð ð ðð ð ð �”Ð.Ñ/Ô/€ð
ð ð ð ð ˆyñ ô ð ðð ð ð ð ˆvñ ô ð ðð ð ð ð �ñ ô ð ð ð ð ð ð �ñ ô ð ð(hð hð hð hð hñ hô hð hðp	.ð .ð .ðð ð ð,ð ð ð ð ð ð"3ð 3ð 3ðNð ð ð.uð uð uð uð u�6ñ uô uð uðx	Mð Mð Mð Mðj[ð [ð [ð [ðBð ð ð 	€€€s   ž- ­	9¸9