o
    "“i®§  ã                
   @   s:  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zejej	fZ
W n ey1   eefZ
Y nw e d¡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ƒ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dddddeejƒddddf
dd„Z d$d d!„Z!d"d#„ Z"e"Z#dS )%z3.10é    Nz^[a-zA-Z0-9_]+$c                   @   s   e Zd Zdd„ ZdS )ÚLexErrorc                 C   s   |f| _ || _d S ©N)ÚargsÚtext)ÚselfÚmessageÚs© r	   úQ/var/www/html/premium_crap/venv/lib/python3.10/site-packages/pycparser/ply/lex.pyÚ__init__:   s   
zLexError.__init__N)Ú__name__Ú
__module__Ú__qualname__r   r	   r	   r	   r
   r   9   s    r   c                   @   ó   e Zd Zdd„ Zdd„ ZdS )ÚLexTokenc                 C   s   d| j | j| j| jf S )NzLexToken(%s,%r,%d,%d))ÚtypeÚvalueÚlinenoÚlexpos©r   r	   r	   r
   Ú__str__A   ó   zLexToken.__str__c                 C   s   t | ƒS r   )Ústrr   r	   r	   r
   Ú__repr__D   s   zLexToken.__repr__N)r   r   r   r   r   r	   r	   r	   r
   r   @   ó    r   c                   @   s4   e Zd Zdd„ Zdd„ Zdd„ Zdd„ ZeZeZd	S )
Ú	PlyLoggerc                 C   s
   || _ d S r   ©Úf)r   r   r	   r	   r
   r   L   s   
zPlyLogger.__init__c                 O   s   | j  || d ¡ d S )NÚ
©r   Úwrite©r   Úmsgr   Úkwargsr	   r	   r
   ÚcriticalO   r   zPlyLogger.criticalc                 O   ó   | j  d||  d ¡ d S )Nz	WARNING: r   r   r!   r	   r	   r
   ÚwarningR   ó   zPlyLogger.warningc                 O   r%   )NzERROR: r   r   r!   r	   r	   r
   ÚerrorU   r'   zPlyLogger.errorN)	r   r   r   r   r$   r&   r(   ÚinfoÚdebugr	   r	   r	   r
   r   K   s    r   c                   @   r   )Ú
NullLoggerc                 C   ó   | S r   r	   )r   Únamer	   r	   r
   Ú__getattribute__^   ó   zNullLogger.__getattribute__c                 O   r,   r   r	   )r   r   r#   r	   r	   r
   Ú__call__a   r/   zNullLogger.__call__N)r   r   r   r.   r0   r	   r	   r	   r
   r+   ]   r   r+   c                   @   s|   e Zd Zdd„ Zddd„Zd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ZdS )ÚLexerc                 C   sŽ   d | _ d | _i | _i | _i | _d| _g | _d | _i | _i | _	i | _
d| _d | _d| _d| _d | _d | _d | _d| _d| _d | _d| _d| _d S )NÚINITIALr   Ú é   F)ÚlexreÚ	lexretextÚ
lexstatereÚlexstateretextÚlexstaterenamesÚlexstateÚlexstatestackÚlexstateinfoÚlexstateignoreÚlexstateerrorfÚlexstateeoffÚ
lexreflagsÚlexdatar   ÚlexlenÚ	lexerrorfÚlexeoffÚ	lextokensÚ	lexignoreÚlexliteralsÚ	lexmoduler   Úlexoptimizer   r	   r	   r
   r   t   s.   
zLexer.__init__Nc              	   C   sÎ   t   | ¡}|rei }| j ¡ D ]:\}}g }|D ]&\}}g }	|D ]}
|
r&|
d s,|	 |
¡ q|	 t||
d jƒ|
d f¡ qq| ||	f¡ |||< q||_i |_| j ¡ D ]\}}t||jƒ|j|< qT||_|S ©Nr   r4   )Úcopyr7   ÚitemsÚappendÚgetattrr   r>   rH   )r   ÚobjectÚcÚnewtabÚkeyÚritemÚnewreÚcreÚfindexÚ	newfindexr   Úefr	   r	   r
   Úclone�   s*   

 ü
zLexer.cloner3   c              	   C   sÞ  t |tjƒr
tdƒ‚| d¡d }tj ||¡d }t|dƒ�Æ}| 	d|t
f ¡ | 	dttƒ ¡ | 	dttt| jƒƒƒ ¡ | 	d	t| jƒ ¡ | 	d
t| jƒ ¡ | 	dt| jƒ ¡ i }| j ¡ D ](\}}g }	t|| j| | j| ƒD ]\\}
}}}|	 |t||ƒf¡ qw|	||< qe| 	dt|ƒ ¡ | 	dt| jƒ ¡ i }| j ¡ D ]\}}|r±|jnd ||< q¨| 	dt|ƒ ¡ i }| j ¡ D ]\}}|rÏ|jnd ||< qÆ| 	dt|ƒ ¡ W d   ƒ d S 1 sèw   Y  d S )Nz&Won't overwrite existing lextab moduleÚ.éÿÿÿÿz.pyÚwzJ# %s.py. This file automatically created by PLY (version %s). Don't edit!
z_tabversion   = %s
z_lextokens    = set(%s)
z_lexreflags   = %s
z_lexliterals  = %s
z_lexstateinfo = %s
z_lexstatere   = %s
z_lexstateignore = %s
z_lexstateerrorf = %s
z_lexstateeoff = %s
)Ú
isinstanceÚtypesÚ
ModuleTypeÚIOErrorÚsplitÚosÚpathÚjoinÚopenr    Ú__version__ÚreprÚ__tabversion__ÚtupleÚsortedrE   r@   rG   r<   r7   rL   Úzipr8   r9   rM   Ú_funcs_to_namesr=   r>   r   r?   )r   ÚlextabÚ	outputdirÚbasetabmoduleÚfilenameÚtfÚtabreÚ	statenameÚlreÚtitemÚpatÚfuncÚretextÚrenamesÚtaberrrX   Útabeofr	   r	   r
   Úwritetab®   s8   &
"åzLexer.writetabc                 C   s@  t |tjƒr	|}ntd| ƒ tj| }t|ddƒtkr tdƒ‚|j	| _
|j| _|j| _| j
t| jƒB | _|j| _|j| _i | _i | _|j ¡ D ](\}}g }g }|D ]\}}	| t ||j¡t|	|ƒf¡ qR|| j|< || j|< qHi | _|j ¡ D ]\}}
||
 | j|< qyi | _|j  ¡ D ]\}}
||
 | j|< q�|  !d¡ d S )Nú	import %sÚ_tabversionz0.0zInconsistent PLY versionr2   )"r]   r^   r_   ÚexecÚsysÚmodulesrN   rh   ÚImportErrorÚ
_lextokensrE   Ú_lexreflagsr@   Ú_lexliteralsrG   ÚsetÚlextokens_allÚ_lexstateinfor<   Ú_lexstateignorer=   r7   r8   Ú_lexstatererL   rM   ÚreÚcompileÚ_names_to_funcsr>   Ú_lexstateerrorfr?   Ú_lexstateeoffÚbegin)r   ÚtabfileÚfdictrm   rs   rt   ru   Útxtitemrv   Ú	func_namerX   r	   r	   r
   ÚreadtabÓ   s8   
 
zLexer.readtabc                 C   s8   |d d… }t |tƒstdƒ‚|| _d| _t|ƒ| _d S )Nr4   zExpected a stringr   )r]   ÚStringTypesÚ
ValueErrorrA   r   ÚlenrB   )r   r   rP   r	   r	   r
   Úinputû   s   
zLexer.inputc                 C   sd   || j vr	tdƒ‚| j | | _| j| | _| j |d¡| _| j |d ¡| _	| j
 |d ¡| _|| _d S )NzUndefined stater3   )r7   r—   r5   r8   r6   r=   ÚgetrF   r>   rC   r?   rD   r:   ©r   Ústater	   r	   r
   r�     s   

zLexer.beginc                 C   s   | j  | j¡ |  |¡ d S r   )r;   rM   r:   r�   r›   r	   r	   r
   Ú
push_state  s   zLexer.push_statec                 C   s   |   | j ¡ ¡ d S r   )r�   r;   Úpopr   r	   r	   r
   Ú	pop_state  s   zLexer.pop_statec                 C   s   | j S r   )r:   r   r	   r	   r
   Úcurrent_state!  s   zLexer.current_statec                 C   s   |  j |7  _ d S r   )r   )r   Únr	   r	   r
   Úskip'  s   z
Lexer.skipc                 C   sx  | j }| j}| j}| j}||k �r
|| |v r|d7 }q| jD ]v\}}| ||¡}|s,qtƒ }| ¡ |_| j	|_	||_ |j
}	||	 \}
|_|
sY|jrS| ¡ | _ |  S | ¡ } n­| ¡ }| |_|| _|| _ |
|ƒ}|st| j }| j} n’| js’|j| jvr’td|
jj|
jj|
j|jf ||d … ƒ‚|  S || | jv r·tƒ }|| |_| j	|_	|j|_||_ |d | _ |S | jrôtƒ }| j|d … |_| j	|_	d|_| |_||_ || _ |  |¡}|| j krìtd||  ||d … ƒ‚| j }|sòq|S || _ td|| |f ||d … ƒ‚||k s| j�r+tƒ }d|_d|_| j	|_	||_ | |_|| _ |  |¡}|S |d | _ | jd u �r:tdƒ‚d S )	Nr4   z4%s:%d: Rule '%s' returned an unknown token type '%s'r(   z&Scanning error. Illegal character '%s'z"Illegal character '%s' at index %dÚeofr3   z"No input string given with input())r   rB   rF   rA   r5   Úmatchr   Úgroupr   r   Ú	lastindexr   ÚendÚlexerÚlexmatchrI   r‡   r   Ú__code__Úco_filenameÚco_firstlinenor   rG   rC   rD   ÚRuntimeError)r   r   rB   rF   rA   r5   ÚlexindexfuncÚmÚtokÚirw   Únewtokr	   r	   r
   Útoken1  s¤   


þ
þ



¬V

zLexer.tokenc                 C   r,   r   r	   r   r	   r	   r
   Ú__iter__Ÿ  r/   zLexer.__iter__c                 C   s   |   ¡ }|d u r
t‚|S r   )r³   ÚStopIteration)r   Útr	   r	   r
   Únext¢  s   z
Lexer.nextr   )r3   )r   r   r   r   rY   r|   r•   r™   r�   r�   rŸ   r    r¢   r³   r´   r·   Ú__next__r	   r	   r	   r
   r1   s   s    

%(
nr1   c                 C   s   t | d| jƒS )NÚregex)rN   Ú__doc__)rw   r	   r	   r
   Ú
_get_regex·  s   r»   c                 C   s0   t  | ¡}|j ¡ }|j|jkr| |j¡ |S r   )r€   Ú	_getframeÚ	f_globalsrK   Úf_localsÚupdate)Úlevelsr   Úldictr	   r	   r
   Úget_caller_module_dictÁ  s
   

rÂ   c                 C   sF   g }t | |ƒD ]\}}|r|d r| ||d f¡ q| |¡ q|S rJ   )rk   rM   )ÚfunclistÚnamelistÚresultr   r-   r	   r	   r
   rl   Î  s   rl   c                 C   sD   g }| D ]}|r|d r|  ||d  |d f¡ q|  |¡ q|S rJ   )rM   )rÄ   r’   rÅ   r¡   r	   r	   r
   r�   Ý  s   r�   c                 C   s\  | sg S d  | ¡}zft ||¡}d gt|j ¡ ƒd  }|d d … }|j ¡ D ]=\}}	| |d ¡}
t|
ƒt	j
t	jfv rH|
|| f||	< |||	< q'|
d urd|||	< | d¡dkr\d||	< q'd || f||	< q'||fg|g|gfW S  ty­   tt| ƒd ƒ}|dkr„d}t| d |… |||ƒ\}}}t| |d … |||ƒ\}}}|| || || f Y S w )Nú|r4   Úignore_r   ©NNé   )rd   r‹   rŒ   ÚmaxÚ
groupindexÚvaluesrL   rš   r   r^   ÚFunctionTypeÚ
MethodTypeÚfindÚ	ExceptionÚintr˜   Ú_form_master_re)ÚrelistÚreflagsrÁ   Útoknamesr¹   r5   r®   Úlexindexnamesr   r±   Úhandler¯   Úllistrt   ÚlnamesÚrlistÚrreÚrnamesr	   r	   r
   rÒ   í  s6   


€úrÒ   c                 C   s†   d}|   d¡}t|dd … dƒD ]\}}||vr|dkr nq|dkr,t|d|… ƒ}nd}d|v r6t|ƒ}d ||d … ¡}||fS )Nr4   Ú_ÚANY)r2   )ra   Ú	enumerateri   rd   )r   ÚnamesÚnonstateÚpartsr±   ÚpartÚstatesÚ	tokennamer	   r	   r
   Ú_statetoken  s   
€ræ   c                   @   sf   e Zd Zd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S )ÚLexerReflectNr   c                 C   sR   || _ d | _g | _|| _ddi| _tƒ | _d| _|d u r$tt	j
ƒ| _d S || _d S )Nr2   Ú	inclusiveF)rÁ   Ú
error_funcÚtokensrÔ   Ú	stateinfor†   r�   r(   r   r€   ÚstderrÚlog)r   rÁ   rí   rÔ   r	   r	   r
   r   /  s   
"zLexerReflect.__init__c                 C   s$   |   ¡  |  ¡  |  ¡  |  ¡  d S r   )Ú
get_tokensÚget_literalsÚ
get_statesÚ	get_rulesr   r	   r	   r
   Úget_all:  s   zLexerReflect.get_allc                 C   s   |   ¡  |  ¡  |  ¡  | jS r   )Úvalidate_tokensÚvalidate_literalsÚvalidate_rulesr(   r   r	   r	   r
   Úvalidate_allA  s   zLexerReflect.validate_allc                 C   sp   | j  dd ¡}|s| j d¡ d| _d S t|ttfƒs&| j d¡ d| _d S |s3| j d¡ d| _d S || _d S )Nrê   zNo token list is definedTztokens must be a list or tupleztokens is empty)rÁ   rš   rí   r(   r]   Úlistri   rê   )r   rê   r	   r	   r
   rî   H  s   
zLexerReflect.get_tokensc                 C   sP   i }| j D ] }t |¡s| j d|¡ d| _||v r!| j d|¡ d||< qd S )NzBad token name '%s'TzToken '%s' multiply definedr4   )rê   Ú_is_identifierr¤   rí   r(   r&   )r   Ú	terminalsr¡   r	   r	   r
   ró   \  s   


úzLexerReflect.validate_tokensc                 C   s$   | j  dd¡| _| jsd| _d S d S )NÚliteralsr3   )rÁ   rš   rú   r   r	   r	   r
   rï   g  s   
ÿzLexerReflect.get_literalsc                 C   sh   z | j D ]}t|tƒrt|ƒdkr| j dt|ƒ¡ d| _qW d S  ty3   | j d¡ d| _Y d S w )Nr4   z.Invalid literal %s. Must be a single characterTzIInvalid literals specification. literals must be a sequence of characters)rú   r]   r–   r˜   rí   r(   rg   Ú	TypeError)r   rP   r	   r	   r
   rô   m  s   
€ýþzLexerReflect.validate_literalsc                 C   sü   | j  dd ¡| _| jrzt| jttfƒs| j d¡ d| _d S | jD ]Z}t|tƒr.t|ƒdkr;| j dt	|ƒ¡ d| _q!|\}}t|t
ƒsQ| j dt	|ƒ¡ d| _q!|dksd|dksd| j d	|¡ d| _q!|| jv rt| j d
|¡ d| _q!|| j|< q!d S d S )Nrä   z)states must be defined as a tuple or listTrÉ   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ä   r]   ri   r÷   rí   r(   r˜   rg   r–   rë   )r   r   r-   Ú	statetyper	   r	   r
   rð   x  s4   



ézLexerReflect.get_statesc           	      C   s  dd„ | j D ƒ}i | _i | _i | _i | _i | _i | _| jD ]}g | j|< g | j|< qt|ƒdkr;| j	 
d¡ d| _
d S |D ]©}| j | }t|| jƒ\}}|| j|< t|dƒrž|dkre|D ]}|| j|< q\q=|dkrt|D ]}|| j|< qkq=|d	krŽ|jj}|jj}| j	 
d
|||j¡ d| _
q=|D ]}| j|  ||f¡ q�q=t|tƒrÜ|d	kr½|D ]}|| j|< q©d|v r¼| j	 d|¡ q=|dkrÌ| j	 
d|¡ d| _
q=|D ]}| j|  ||f¡ qÎq=| j	 
d|¡ d| _
q=| j ¡ D ]
}|jdd„ d� qì| j ¡ D ]}|jdd„ dd� qüd S )Nc                 S   s    g | ]}|d d… dkr|‘qS )NrÉ   Út_r	   )Ú.0r   r	   r	   r
   Ú
<listcomp>˜  s     z*LexerReflect.get_rules.<locals>.<listcomp>r   z+No rules of the form t_rulename are definedTr0   r(   r£   Ú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 stringc                 S   s   | d j jS ©Nr4   )rª   r¬   ©Úxr	   r	   r
   Ú<lambda>Ò  ó    z(LexerReflect.get_rules.<locals>.<lambda>)rR   c                 S   s   t | d ƒS r  )r˜   r  r	   r	   r
   r  Ö  r  )rR   Úreverse)rÁ   rÕ   ÚfuncsymÚstrsymr  ÚerrorfÚeoffrë   r˜   rí   r(   ræ   Úhasattrrª   r¬   r«   r   rM   r]   r–   r&   rÌ   Úsort)	r   Útsymbolsr   r   r¶   rä   ÚtoknameÚlineÚfiler	   r	   r
   rñ   —  sn   




ÿÿÿ
€ÿÿzLexerReflect.get_rulesc                 C   sj  | j D �]¢}| j| D ]³\}}|jj}|jj}t |¡}| j |¡ | j	| }t
|tjƒr0d}nd}|jj}	|	|krH| j d|||j¡ d| _q|	|k rZ| j d|||j¡ d| _qt|ƒsl| j d|||j¡ d| _qz!t d|t|ƒf | j¡}
|
 d¡rŒ| j d	|||j¡ d| _W q tjy¾ } z$| j d
|||j|¡ dt|ƒv r±| j d|||j¡ d| _W Y d }~qd }~ww | j| D ]x\}}| j	| }|dkrÜ| j d|¡ d| _qÄ|| jvrô| d¡dk rô| j d||¡ d| _qÄzt d||f | j¡}
|
 d¡�r| j d|¡ d| _W qÄ tj�y< } z| j d||¡ d|v �r/| j d|¡ d| _W Y d }~qÄd }~ww | j| �sS| j| �sS| j d|¡ d| _| j |d ¡}|�r¦|}|jj}|jj}t |¡}| j |¡ t
|tjƒ�r|d}nd}|jj}	|	|k�r”| j d|||j¡ d| _|	|k �r¦| j d|||j¡ d| _q| jD ]}|  |¡ �qªd S )NrÉ   r4   z'%s:%d: Rule '%s' has too many argumentsTz%%s:%d: Rule '%s' requires an argumentz2%s:%d: No regular expression defined for rule '%s'ú
(?P<%s>%s)r3   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 '\#'r(   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ë   r
  rª   r¬   r«   ÚinspectÚ	getmoduler�   ÚaddrÕ   r]   r^   rÎ   Úco_argcountrí   r(   r   r»   r‹   rŒ   rÔ   r¤   r  rê   rÏ   r  rš   Úvalidate_module)r   rœ   Úfnamer   r  r  Úmoduler  ÚreqargsÚnargsrP   Úer-   ÚrÚefuncr	   r	   r
   rõ   Ù  s¦   


€€ü
€
€ü


€
ÿzLexerReflect.validate_rulesc                 C   sÀ   z	t  |¡\}}W n
 ty   Y d S w t d¡}t d¡}i }|d7 }|D ]7}| |¡}|s4| |¡}|rY| d¡}	| |	¡}
|
sG|||	< nt  |¡}| j	 
d|||	|
¡ d| _
|d7 }q&d S )Nz\s*def\s+(t_[a-zA-Z_0-9]*)\(z\s*(t_[a-zA-Z_0-9]*)\s*=r4   z7%s:%d: Rule %s redefined. Previously defined on line %dT)r  Úgetsourcelinesr`   r‹   rŒ   r¤   r¥   rš   Úgetsourcefilerí   r(   )r   r  ÚlinesÚlinenÚfreÚsreÚ	counthashr  r¯   r-   Úprevrp   r	   r	   r
   r  @  s.   ÿ








ózLexerReflect.validate_module)Nr   )r   r   r   r   rò   rö   rî   ró   rï   rô   rð   rñ   rõ   r  r	   r	   r	   r
   rç   .  s    
Bgrç   Frm   c
           %   
      sh  |d u rd}d }
ddi}t ƒ }||_|	d u rttjƒ}	|r&|d u r&ttjƒ}|r*|‰ ˆ rJ‡ fdd„tˆ ƒD ƒ}t|ƒ}
d|
vrItj|
d  j|
d< nt	dƒ}
|
 
d	¡}|rdt|tƒrdd
|vrd|d
 | }t|
|	|d�}| ¡  |sy| ¡ rytdƒ‚|r˜|r˜z| ||
¡ |ja|ja|a|W S  ty—   Y nw |r¯| d|j¡ | d|j¡ | d|j¡ tƒ |_|jD ]}|j |¡ q¶t|jttfƒrÕt|jd ƒƒ   |j¡|_!n|j|_!|jt|j!ƒB |_"|j}i }|D ]Q}g }|j#| D ]$\}}|j$j%}|j$j&}| 'd|t(|ƒf ¡ |�r| d|t(|ƒ|¡ qò|j)| D ]\}}| 'd||f ¡ |�r4| d|||¡ �q|||< qé|�rC| d¡ |D ]4}t*|| ||
|j+ƒ\}}}||j,|< ||j-|< ||j.|< |�rxt/|ƒD ]\}}| d|||¡ �qj�qE| 0¡ D ]0\}}|dk�r­|dk�r­|j,|  1|j,d ¡ |j-|  1|j-d ¡ |j.|  1|j.d ¡ �q~||_2|j,d |_3|j-d |_4||_5|j6|_7|j7 
dd¡|_8|j9|_:|j9 
dd ¡|_;|j;�sâ|	 <d¡ |j=|_>|j= 
dd ¡|_?| 0¡ D ]M\} }|dk�r| |j9v�r|	 <d| ¡ | |j6v�r|j8�r|	 <d| ¡ �qò|dk�r>| |j9v�r.|j9 
dd ¡|j9| < | |j6v�r>|j6 
dd¡|j6| < �qò|ja|ja|a|�r²|�r²|d u �r‹t|t@jAƒ�r^|j}!n'd
|v�rh|
d }!n| Bd
¡}"d
  |"d d… ¡}#tCd|# ƒ tDtj|# ddƒ}!tEjF G|!¡}z	| H||¡ W |S  tI�y± }$ z|	 <d||$f ¡ W Y d }$~$|S d }$~$ww |S )Nrm   r2   rè   c                    s   g | ]	}|t ˆ |ƒf‘qS r	   )rN   )rÿ   Úk©r  r	   r
   r   z  s    zlex.<locals>.<listcomp>Ú__file__r   rÉ   Ú__package__rZ   )rí   rÔ   zCan't build lexerzlex: tokens   = %rzlex: literals = %rzlex: states   = %rr   r  z(lex: Adding rule %s -> '%s' (state '%s')z#lex: ==== MASTER REGEXS FOLLOW ====z"lex: state '%s' : regex[%d] = '%s'r3   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'r[   r}   z#Couldn't write lextab module %r. %s)Jr1   rI   r   r€   rì   ÚdirÚdictr�   r,  rÂ   rš   r]   r   rç   rò   rö   ÚSyntaxErrorr•   r³   r™   r¨   r‚   r)   rê   rú   rë   r†   rE   r  r÷   ri   r   rd   rG   r‡   r
  rª   r¬   r«   rM   r»   r  rÒ   rÕ   r7   r8   r9   rß   rL   Úextendr<   r5   r6   r@   r  r=   rF   r  r>   rC   r&   r  r?   rD   r^   r_   ra   r   rN   rb   rc   Údirnamer|   r`   )%r  rO   r*   Úoptimizerm   rÔ   Únowarnrn   ÚdebuglogÚerrorlogrÁ   rë   ÚlexobjÚ_itemsÚpkgÚlinfor¡   Úregexsrœ   Ú
regex_listr  r   r  r  r-   r   r5   Úre_textÚre_namesr±   r   Ústyper   Úsrcfilerâ   Úpkgnamer  r	   r+  r
   Úlex_  s  

€
ÿ
€€




€€

€
€



ý€ýrB  c                 C   s®   |s*zt jd }t|ƒ}| ¡ }| ¡  W n ty)   t j d¡ t j ¡ }Y nw | r0| j	}nt	}||ƒ | r<| j
}nt
}	 |ƒ }|sFd S t j d|j|j|j|jf ¡ q?)Nr4   z/Reading from standard input (type EOF to end):
Tz(%s,%r,%d,%d)
)r€   Úargvre   ÚreadÚcloseÚ
IndexErrorÚstdoutr    Ústdinr™   r³   r   r   r   r   )r¨   Údatarp   r   Ú_inputÚ_tokenr°   r	   r	   r
   Úrunmain  s.   
þ ürL  c                    s   ‡ fdd„}|S )Nc                    s"   t ˆ dƒrtˆ ƒ| _| S ˆ | _| S )Nr0   )r  r»   r¹   r   ©r   r	   r
   Ú	set_regexB  s
   

ÿzTOKEN.<locals>.set_regexr	   )r   rN  r	   rM  r
   ÚTOKENA  s   rO  rÈ   )$rf   rh   r‹   r€   r^   rK   rb   r  Ú
StringTypeÚUnicodeTyper–   ÚAttributeErrorr   ÚbytesrŒ   rø   rÐ   r   rO   r   r   r+   r1   r»   rÂ   rl   r�   rÒ   ræ   rç   rÑ   ÚVERBOSErB  rL  rO  ÚTokenr	   r	   r	   r
   Ú<module>   sJ   !þ
  F
(  
3
ÿ 
A"
