509318396
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
U
    ÍÄV‰§  ã                
   @   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k
rd   eefZ
Y nX 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„Zd%d d!„Zd"d#„ Z e Z!dS )&z3.8é    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	   ú8/opt/alt/python38/lib/python3.8/site-packages/ply/lex.pyÚ__init__:   s    zLexError.__init__N)Ú__name__Ú
__module__Ú__qualname__r   r	   r	   r	   r
   r   9   s   r   c                   @   s   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   s    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   @   s   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   s    zPlyLogger.criticalc                 O   s   | j  d||  d ¡ d S )Nz	WARNING: r   r   r   r	   r	   r
   ÚwarningR   s    zPlyLogger.warningc                 O   s   | j  d||  d ¡ d S )NzERROR: r   r   r   r	   r	   r
   ÚerrorU   s    zPlyLogger.errorN)	r   r   r   r   r!   r"   r#   ÚinfoÚdebugr	   r	   r	   r
   r   K   s   r   c                   @   s   e Zd Zdd„ Zdd„ ZdS )Ú
NullLoggerc                 C   s   | S r   r	   )r   Únamer	   r	   r
   Ú__getattribute__^   s    zNullLogger.__getattribute__c                 O   s   | S r   r	   )r   r   r    r	   r	   r
   Ú__call__a   s    zNullLogger.__call__N)r   r   r   r(   r)   r	   r	   r	   r
   r&   ]   s   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   | ¡}|rÊi }| j ¡ D ]t\}}g }|D ]L\}}g }	|D ]:}
|
rL|
d sX|	 |
¡ q<|	 t||
d jƒ|
d f¡ q<q,| ||	f¡ |||< q||_i |_| j ¡ D ]\}}t||jƒ|j|< q¨||_|S ©Nr   r-   )Úcopyr0   ÚitemsÚappendÚgetattrr   r7   rA   )r   ÚobjectÚcZnewtabÚkeyZritemZnewreZcreZfindexZ	newfindexr   Úefr	   r	   r
   Úclone�   s(    

"
zLexer.cloner,   c              	   C   sÊ  t |tjƒrtdƒ‚| d¡d }tj ||¡d }t|dƒ��€}| 	d|t
f ¡ | 	dttƒ ¡ | 	dt| jƒ ¡ | 	d	t| jƒ ¡ | 	d
t| jƒ ¡ | 	dt| jƒ ¡ i }| j ¡ D ]P\}}g }	t|| j| | j| ƒD ]"\\}
}}}|	 |t||ƒf¡ qè|	||< qÄ| 	dt|ƒ ¡ | 	dt| jƒ ¡ i }| j ¡ D ]\}}|�r^|jnd ||< �qJ| 	dt|ƒ ¡ i }| j ¡ D ]\}}|�rž|jnd ||< �qŠ| 	dt|ƒ ¡ W 5 Q R X 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    = %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__r>   r9   r@   r5   r0   rE   Úzipr1   r2   rF   Ú_funcs_to_namesr6   r7   r   r8   )r   ÚlextabÚ	outputdirZbasetabmoduleÚfilenameZtfZtabreÚ	statenameÚlreÚtitemÚpatÚfuncZretextÚrenamesZtaberrrK   Ztabeofr	   r	   r
   Úwritetab®   s6    &
zLexer.writetabc              	   C   sH  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 ]V\}}g }g }|D ],\}}	| t ||jtjB ¡t|	|ƒf¡ q¤|| j|< || j|< q�i | _|j ¡ D ]\}}
||
 | j|< qøi | _ |j! ¡ D ]\}}
||
 | j |< �q |  "d¡ d S )Nú	import %sZ_tabversionz0.0zInconsistent PLY versionr+   )#rP   rQ   rR   ÚexecÚsysÚmodulesrG   r[   ÚImportErrorZ
_lextokensr>   Z_lexreflagsr9   Z_lexliteralsr@   ÚsetÚlextokens_allZ_lexstateinfor5   Z_lexstateignorer6   r0   r1   Z_lexstatererE   rF   ÚreÚcompileÚVERBOSEÚ_names_to_funcsr7   Z_lexstateerrorfr8   Z_lexstateeoffÚbegin)r   ZtabfileÚfdictr^   ra   rb   rc   Ztxtitemrd   Ú	func_namerK   r	   r	   r
   ÚreadtabÓ   s8    
&
zLexer.readtabc                 C   s8   |d d… }t |tƒstdƒ‚|| _d| _t|ƒ| _d S )Nr-   zExpected a stringr   )rP   ÚStringTypesÚ
ValueErrorr:   r   Úlenr;   )r   r   rI   r	   r	   r
   Úinputû   s    
zLexer.inputc                 C   sd   || j krtdƒ‚| j | | _| j| | _| j |d¡| _| j |d ¡| _	| j
 |d ¡| _|| _d S )NzUndefined stater,   )r0   rx   r.   r1   r/   r6   Úgetr?   r7   r<   r8   r=   r3   ©r   Ústater	   r	   r
   rs     s    
zLexer.beginc                 C   s   | j  | j¡ |  |¡ d S r   )r4   rF   r3   rs   r|   r	   r	   r
   Ú
push_state  s    zLexer.push_statec                 C   s   |   | j ¡ ¡ d S r   )rs   r4   Úpopr   r	   r	   r
   Ú	pop_state  s    zLexer.pop_statec                 C   s   | j S r   )r3   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   s~  | j }| j}| j}| j}||k �r|| |kr8|d7 }q| jD ]ð\}}| ||¡}|sXq>tƒ }| ¡ |_| j	|_	||_ |j
}	||	 \}
|_|
s²|jr¦| ¡ | _ |  S | ¡ } q| ¡ }| |_|| _|| _ |
|ƒ}|sè| j }| j} q| j�s(|j| jk�r(td|
jj|
jj|
j|jf ||d … ƒ‚|  S || | jk�rttƒ }|| |_| 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 … ƒ‚q| j�r\tƒ }d|_d|_| j	|_	||_ | |_|| _ |  |¡}|S |d | _ | jd k�rztdƒ‚d S )	Nr-   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Úeofr,   z"No input string given with input())r   r;   r?   r:   r.   Úmatchr   Úgroupr   r   Ú	lastindexr   ÚendÚlexerZlexmatchrB   rn   r   Ú__code__Úco_filenameÚco_firstlinenor   r@   r<   r=   ÚRuntimeError)r   r   r;   r?   r:   r.   ÚlexindexfuncÚmÚtokÚire   Znewtokr	   r	   r
   Útoken1  s¦    


  þ
þ


 

zLexer.tokenc                 C   s   | S r   r	   r   r	   r	   r
   Ú__iter__Ÿ  s    zLexer.__iter__c                 C   s   |   ¡ }|d krt‚|S r   )r’   ÚStopIteration)r   Útr	   r	   r
   Únext¢  s    z
Lexer.next)N)r,   )r   r   r   r   rL   rg   rv   rz   rs   r~   r€   r�   rƒ   r’   r“   r–   Ú__next__r	   r	   r	   r
   r*   s   s   

%(
nr*   c                 C   s   t | d| jƒS )NÚregex)rG   Ú__doc__)re   r	   r	   r
   Ú
_get_regex·  s    rš   c                 C   s0   t  | ¡}|j ¡ }|j|jkr,| |j¡ |S r   )rj   Ú	_getframeÚ	f_globalsrD   Úf_localsÚupdate)Zlevelsr   Úldictr	   r	   r
   Úget_caller_module_dictÁ  s
    

r    c                 C   sF   g }t | |ƒD ]2\}}|r6|d r6| ||d f¡ q| |¡ q|S rC   )r\   rF   )ZfunclistÚnamelistÚresultr   r'   r	   r	   r
   r]   Î  s    r]   c                 C   sD   g }| D ]6}|r4|d r4|  ||d  |d f¡ q|  |¡ q|S rC   )rF   )r¡   rt   r¢   r‚   r	   r	   r
   rr   Ý  s    rr   c                 C   sl  | sg S d  | ¡}zÒt |tj|B ¡}d gt|j ¡ ƒd  }|d d … }|j ¡ D ]z\}}	| |d ¡}
t	|
ƒt
jt
jfkr–|
|| f||	< |||	< qT|
d k	rT|||	< | d¡dkr¾d||	< qTd || f||	< qT||fg|g|gfW S  tk
�rf   tt| ƒd ƒ}|dk�rd}t| d |… |||ƒ\}}}t| |d … |||ƒ\}}}|| || || f Y S X d S )Nú|r-   Úignore_r   )NNé   )rW   ro   rp   rq   ÚmaxÚ
groupindexÚvaluesrE   r{   r   rQ   ÚFunctionTypeÚ
MethodTypeÚfindÚ	ExceptionÚintry   Ú_form_master_re)ZrelistÚreflagsrŸ   Útoknamesr˜   r.   rŽ   Zlexindexnamesr   r‘   Úhandler�   Zllistrb   ZlnamesZrlistZrreZrnamesr	   r	   r
   r®   í  s2    



r®   c                 C   s†   d}|   d¡}t|dd … dƒD ]\}}||kr |dkr  q>q |dkrXt|d|… ƒ}nd}d|krlt|ƒ}d ||d … ¡}||fS )Nr-   Ú_ÚANY)r+   )rT   Ú	enumerateÚtuplerW   )r   ÚnamesZnonstateÚpartsr‘   ÚpartÚstatesZ	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   sL   || _ d | _g | _|| _ddi| _tƒ | _d| _|d krBtt	j
ƒn|| _d S )Nr+   Ú	inclusiveF)rŸ   Z
error_funcÚtokensr¯   Ú	stateinform   rk   r#   r   rj   Ú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ƒsL| j d¡ d| _d S |sf| 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#   rP   Úlistrµ   r½   )r   r½   r	   r	   r
   rÁ   H  s    zLexerReflect.get_tokensc                 C   sP   i }| j D ]@}t |¡s,| j d|¡ d| _||krB| j d|¡ d||< q
d S )NzBad token name '%s'TzToken '%s' multiply definedr-   )r½   Ú_is_identifierr…   rÀ   r#   r"   )r   Z	terminalsr‚   r	   r	   r
   rÆ   \  s    

zLexerReflect.validate_tokensc                 C   s    | j  dd¡| _| jsd| _d S )NÚliteralsr,   )rŸ   r{   rÌ   r   r	   r	   r
   rÂ   g  s    zLexerReflect.get_literalsc                 C   sj   z>| j D ]2}t|tƒr"t|ƒdkr| j dt|ƒ¡ d| _qW n& tk
rd   | j d¡ d| _Y nX d S )Nr-   z.Invalid literal %s. Must be a single characterTzIInvalid literals specification. literals must be a sequence of characters)rÌ   rP   rw   ry   rÀ   r#   rZ   Ú	TypeError)r   rI   r	   r	   r
   rÇ   m  s    
zLexerReflect.validate_literalsc                 C   sö   | j  dd ¡| _| jròt| jttfƒs:| j d¡ d| _n¸| jD ]°}t|tƒrZt|ƒdkrt| j dt	|ƒ¡ d| _q@|\}}t|t
ƒs | j dt	|ƒ¡ d| _q@|dksÆ|dksÆ| j d	|¡ d| _q@|| jkræ| j d
|¡ d| _q@|| j|< q@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¹   rP   rµ   rÊ   rÀ   r#   ry   rZ   rw   r¾   )r   r   r'   Z	statetyper	   r	   r
   rÃ   x  s0    


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rv| j	 
d¡ d| _
d S |D �]d}| j | }t|| jƒ\}}|| j|< t|dƒ�rD|dkrÎ|D ]}|| j|< q¼nt|dkrì|D ]}|| j|< qÚnV|d	k�r"|jj}|jj}| j	 
d
|||j¡ d| _
n |D ]}| j|  ||f¡ �q&qzt|tƒ�rÌ|d	k�rŠ|D ]}|| j|< �q^d|k�rÊ| j	 d|¡ n@|dk�rª| j	 
d|¡ d| _
n |D ]}| j|  ||f¡ �q®qz| j	 
d|¡ d| _
qz| 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¥   Zt_r	   )Ú.0r   r	   r	   r
   Ú
<listcomp>˜  s      z*LexerReflect.get_rules.<locals>.<listcomp>r   z+No rules of the form t_rulename are definedTr)   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 ©Nr-   )rŠ   rŒ   ©Úxr	   r	   r
   Ú<lambda>Ò  ó    z(LexerReflect.get_rules.<locals>.<lambda>)rJ   c                 S   s   t | d ƒS rÔ   )ry   rÕ   r	   r	   r
   r×   Ö  rØ   )rJ   Úreverse)rŸ   r°   ÚfuncsymÚstrsymrÑ   ÚerrorfÚeoffr¾   ry   rÀ   r#   rº   ÚhasattrrŠ   rŒ   r‹   r   rF   rP   rw   r"   r¨   Úsort)	r   Ztsymbolsr   r   r•   r¹   ÚtoknameÚlineÚfiler	   r	   r
   rÄ   —  sb    








zLexerReflect.get_rulesc                 C   sˆ  | j D �]b}| j| D �]r\}}|jj}|jj}t |¡}| j |¡ | j	| }t
|tjƒrbd}nd}|jj}	|	|kr’| j d|||j¡ d| _q|	|k r¶| j d|||j¡ d| _qt|ƒsÚ| j d|||j¡ d| _qzJt d|t|ƒf tj| jB ¡}
|
 d¡�r"| j d	|||j¡ d| _W q tjk
�rˆ } zB| j d
|||j|¡ dt|ƒk�rr| j d|||j¡ d| _W 5 d }~X Y qX q| j| D �]\}}| j	| }|dk�rÌ| j d|¡ d| _�q–|| jk�r| d¡dk �r| j d||¡ d| _�q–z@t d||f tj| jB ¡}
|
 d¡�r@| j d|¡ d| _W nT tjk
�r– } z2| j d||¡ d|k�r€| j d|¡ d| _W 5 d }~X Y nX �q–| j| �sÈ| j| �sÈ| j d|¡ d| _| j |d ¡}|r|}|jj}|jj}t |¡}| j |¡ t
|tjƒ�rd}nd}|jj}	|	|k�rH| j d|||j¡ d| _|	|k r| j d|||j¡ d| _q| jD ]}|  |¡ �qrd S )Nr¥   r-   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)r,   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Ú	getmodulerk   Úaddr°   rP   rQ   rª   Úco_argcountrÀ   r#   r   rš   ro   rp   rq   r¯   r…   rÛ   r½   r«   rÜ   r{   Úvalidate_module)r   r}   Úfnamer   rá   râ   Úmodulerà   ZreqargsÚnargsrI   Úer'   ÚrZefuncr	   r	   r
   rÈ   Ù  s–    

 







zLexerReflect.validate_rulesc                 C   s¦   t  |¡\}}t d¡}t d¡}i }|d7 }|D ]n}| |¡}|sN| |¡}|r˜| d¡}	| |	¡}
|
st|||	< n$t  |¡}| j 	d|||	|
¡ d| _	|d7 }q2d S )Nz\s*def\s+(t_[a-zA-Z_0-9]*)\(z\s*(t_[a-zA-Z_0-9]*)\s*=r-   z7%s:%d: Rule %s redefined. Previously defined on line %dT)
rå   Úgetsourcelinesro   rp   r…   r†   r{   ÚgetsourcefilerÀ   r#   )r   rë   ÚlinesZlinenZfreZsreZ	counthashrá   r�   r'   Úprevr`   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»   Fr^   c
           %   
      sr  |d krd}d }
ddi}t ƒ }||_|	d kr6ttjƒ}	|rL|d krLttjƒ}|rT|‰ ˆ r”‡ fdd„tˆ ƒD ƒ}t|ƒ}
d|
krœtj|
d  j|
d< nt	dƒ}
|
 
d	¡}|rÈt|tƒrÈd
|krÈ|d
 | }t|
|	|d�}| ¡  |sò| ¡ ròtdƒ‚|�r8|�r8z"| ||
¡ |ja|ja|a|W S  tk
�r6   Y nX |�rh| d|j¡ | d|j¡ | d|j¡ tƒ |_|jD ]}|j |¡ �qvt|jttfƒ�r¸t|jd ƒƒ   |j¡|_!n|j|_!|jt|j!ƒB |_"|j}i }|D ]¦}g }|j#| D ]J\}}|j$j%}|j$j&}| 'd|t(|ƒf ¡ |�rò| d|t(|ƒ|¡ �qò|j)| D ]2\}}| 'd||f ¡ |�rH| d|||¡ �qH|||< �qà|�r˜| d¡ |D ]h}t*|| ||
|j+ƒ\}}}||j,|< ||j-|< ||j.|< |�rœt/|ƒD ]\}}| d|||¡ �qæ�qœ| 0¡ D ]`\}}|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 ]˜\} }|dk�rB| |j9k�r |	 <d| ¡ | |j6k�rŒ|j8�rŒ|	 <d| ¡ nJ|dk�rö| |j9k�rl|j9 
dd ¡|j9| < | |j6k�rö|j6 
dd¡|j6| < �qö|ja|ja|a|�rn|�rn|d k�r&t|t@jAƒ�rÌ|j}!nNd
|k�rà|
d }!n:| Bd
¡}"d
  |"d d… ¡}#tCd|# ƒ tDtj|# ddƒ}!tEjF G|!¡}z| H||¡ W n6 tIk
�rl }$ z|	 <d||$f ¡ W 5 d }$~$X Y nX |S )Nr^   r+   r¼   c                    s   g | ]}|t ˆ |ƒf‘qS r	   )rG   )rÏ   Úk©rë   r	   r
   rÐ   w  s     zlex.<locals>.<listcomp>Ú__file__r   r¥   Ú__package__rM   )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'r,   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'rN   rh   z#Couldn't write lextab module %r. %s)Jr*   rB   r   rj   r¿   ÚdirÚdictrk   rõ   r    r{   rP   r   r»   rÅ   rÉ   ÚSyntaxErrorrv   r’   rz   r‰   rl   r$   r½   rÌ   r¾   rm   r>   rç   rÊ   rµ   r   rW   r@   rn   rÚ   rŠ   rŒ   r‹   rF   rš   rÛ   r®   r°   r0   r1   r2   r´   rE   Úextendr5   r.   r/   r9   rÑ   r6   r?   rÜ   r7   r<   r"   rÝ   r8   r=   rQ   rR   rT   ri   rG   rU   rV   Údirnamerg   rS   )%rë   rH   r%   Úoptimizer^   r¯   Znowarnr_   ZdebuglogZerrorlogrŸ   r¾   ZlexobjZ_itemsÚpkgZlinfor‚   Zregexsr}   Z
regex_listrê   r   rá   râ   r'   rî   r.   Zre_textZre_namesr‘   r   Ústyper   Zsrcfiler·   Úpkgnamerí   r	   rô   r
   Úlex\  sð    














$r   c                 C   s°   |sVz&t jd }t|ƒ}| ¡ }| ¡  W n* tk
rT   t j d¡ t j ¡ }Y nX | rb| j	}nt	}||ƒ | rz| j
}nt
}|ƒ }|sŠq¬t j d|j|j|j|jf ¡ q~d S )Nr-   z/Reading from standard input (type EOF to end):
z(%s,%r,%d,%d)
)rj   ÚargvrX   ÚreadÚcloseÚ
IndexErrorÚstdoutr   Ústdinrz   r’   r   r   r   r   )r‰   Údatar`   r   Ú_inputÚ_tokenr�   r	   r	   r
   Úrunmain  s(    
r
  c                    s   ‡ fdd„}|S )Nc                    s    t ˆ dƒrtˆ ƒ| _nˆ | _| S )Nr)   )rÞ   rš   r˜   r   ©rî   r	   r
   Ú	set_regex?  s    
zTOKEN.<locals>.set_regexr	   )rî   r  r	   r  r
   ÚTOKEN>  s    r  )
NNFFr^   r   FNNN)NN)"rY   r[   ro   rj   rQ   rD   rU   rå   Z
StringTypeZUnicodeTyperw   ÚAttributeErrorr   Úbytesrp   rË   r¬   r   rH   r   r   r&   r*   rš   r    r]   rr   r®   rº   r»   r   r
  r  ÚTokenr	   r	   r	   r
   Ú<module>"   sN   
  F
(  0          ÿ
 A
"
