
    Mh              
          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          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ddd eej                  ddddf
dZ ddZ!d Z"e"Z#dS )z3.10    Nz^[a-zA-Z0-9_]+$c                       e Zd Zd ZdS )LexErrorc                 $    |f| _         || _        d S N)argstext)selfmessagess      Q/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pycparser/ply/lex.py__init__zLexError.__init__:   s    J				    N)__name__
__module____qualname__r    r   r   r   r   9   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__A   s    &$)TZdk)ZZZr   c                      t          |           S r   )strr   s    r   __repr__zLexToken.__repr__D   s    4yyr   N)r   r   r   r   r   r   r   r   r   r   @   s5        [ [ [    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   )f)r	   r"   s     r   r   zPlyLogger.__init__L   s    r   c                 F    | j                             ||z  dz              d S )N
r"   writer	   msgr   kwargss       r   criticalzPlyLogger.criticalO   s%    cDjD()))))r   c                 L    | j                             d||z  z   dz              d S )Nz	WARNING: r$   r%   r'   s       r   warningzPlyLogger.warningR   s*    [C$J/$677777r   c                 L    | j                             d||z  z   dz              d S )NzERROR: r$   r%   r'   s       r   errorzPlyLogger.errorU   s*    Y#*-455555r   N)	r   r   r   r   r*   r,   r.   infodebugr   r   r   r    r    K   sV          * * *8 8 86 6 6 DEEEr   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   r6   r   N)r   r   r   r5   r8   r   r   r   r2   r2   ]   s2              r   r2   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                 H   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   s    r   r   zLexer.__init__t   s    
  !!    r   Nc           
         t          j         |           }|ri }| j                                        D ]\  }}g }|D ]b\  }}g }	|D ]X}
|
r|
d         s|	                    |
           "|	                    t	          ||
d         j                  |
d         f           Yc|                    ||	f           |||<   ||_        i |_        | j                                        D ]"\  }}t	          ||j                  |j        |<   #||_        |S Nr   r>   )copyrA   itemsappendgetattrr   rH   rR   )r	   objectcnewtabkeyritemnewrecrefindex	newfindexr"   efs               r   clonezLexer.clone   sN   IdOO  	!F"o3355 
$ 
$
U#( Q QKC "I# Q Q  %! %%,,Q///$!(('&!A$-*H*H!A$)OPPPP	Q
 c9-...#s!AL!A.4466 E ER(/(D(D %% AKr   r=   c                 *   t          |t          j                  rt          d          |                    d          d         }t
          j                            ||          dz   }t          |d          5 }|	                    d|dt          d           |	                    d	t          t                    z             |	                    d
t          t          t          | j                                      z             |	                    dt          | j                  z             |	                    dt          | j                  z             |	                    dt          | j                  z             i }| j                                        D ]b\  }}g }	t+          || j        |         | j        |                   D ].\  \  }
}}}|	                    |t3          ||          f           /|	||<   c|	                    dt          |          z             |	                    dt          | j                  z             i }| j                                        D ]\  }}|r|j        nd ||<   |	                    dt          |          z             i }| j                                        D ]\  }}|r|j        nd ||<   |	                    dt          |          z             d d d            d S # 1 swxY w Y   d S )Nz&Won't overwrite existing lextab module.z.pywz# z5.py. This file automatically created by PLY (version z). 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sortedrO   rJ   rQ   rF   rA   rW   ziprB   rC   rX   _funcs_to_namesrG   rH   r   rI   )r	   lextab	outputdirbasetabmodulefilenametftabre	statenamelretitempatfuncretextrenamestaberrrc   tabeofs                    r   writetabzLexer.writetab   sY   fe.// 	DBCCCS))"-7<<	=99EA(C   	<BHHHgtgtgt  wB  wB  wB  C  D  D  DHH+d>.B.BBCCCHH04fT^>T>T8U8U3V3VVWWWHH+d4?.C.CCDDDHH+d43C.D.DDEEEHH+d43D.E.EEFFF E"&/"7"7"9"9 ) )	347T=PQZ=[]a]qr{]|4}4} K K0KS$LL&/$*H*H!IJJJJ#(i  HH+d5kk9:::HH-T5H0I0IIJJJF!%!4!:!:!<!< @ @	235$?BKK4y!!HH-V<===F!%!2!8!8!:!: @ @	235$?BKK4y!!HH+d6ll:;;;7	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<s   8JLLLc           	         t          |t          j                  r|}n$t          d|z             t          j        |         }t          |dd          t          k    rt          d          |j	        | _
        |j        | _        |j        | _        | j
        t          | j                  z  | _        |j        | _        |j        | _        i | _        i | _        |j                                        D ]b\  }}g }g }|D ]B\  }}	|                    t5          j        ||j                  t9          |	|          f           C|| j        |<   || j        |<   ci | _        |j                                        D ]\  }}
||
         | j        |<   i | _        |j                                         D ]\  }}
||
         | j        |<   | !                    d           d S )N	import %s_tabversionz0.0zInconsistent PLY versionr<   )"ri   rj   rk   execsysmodulesrY   rt   ImportError
_lextokensrO   _lexreflagsrJ   _lexliteralsrQ   setlextokens_all_lexstateinforF   _lexstateignorerG   rA   rB   _lexstatererW   rX   recompile_names_to_funcsrH   _lexstateerrorfrI   _lexstateeoffbegin)r	   tabfilefdictry   r   r   r   txtitemr   	func_namerc   s              r   readtabzLexer.readtab   s   gu/00 	*FFw&'''[)F6=%00NBB8999$/$0$1"ns43C/D/DD$2$4  $06688 	5 	5NIsEG"% g gYbjf.@AA?S\^cCdCdeffff).DOI&-4D	** #399;; 	7 	7MIr-22YD	**#17799 	5 	5MIr+09Di((

9r   c                     |d d         }t          |t                    st          d          || _        d| _        t          |          | _        d S )Nr>   zExpected a stringr   )ri   StringTypes
ValueErrorrK   r   lenrL   )r	   r   r[   s      r   inputzLexer.input   sO    bqbE![)) 	20111!ffr   c                 L   || j         vrt          d          | j         |         | _        | j        |         | _        | j                            |d          | _        | j                            |d           | _	        | j
                            |d           | _        || _        d S )NzUndefined stater=   )rA   r   r?   rB   r@   rG   getrP   rH   rM   rI   rN   rD   r	   states     r   r   zLexer.begin  s    ''.///_U+
,U3,00;;,00==(,,UD99r   c                 n    | j                             | j                   |                     |           d S r   )rE   rX   rD   r   r   s     r   
push_statezLexer.push_state  s3    !!$-000

5r   c                 ^    |                      | j                                                   d S r   )r   rE   popr   s    r   	pop_statezLexer.pop_state  s)    

4%))++,,,,,r   c                     | j         S r   )rD   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                 N   | j         }| j        }| j        }| j        }||k     r||         |v r|dz  }| j        D ]H\  }}|                    ||          }|st                      }|                                |_        | j	        |_	        ||_         |j
        }	||	         \  }
|_        |
s;|j        r|                                | _         |c S |                                } n|                                }| |_        || _        || _          |
|          }|s| j         }| j        } nt| j        sK|j        | j        vr=t#          d|
j        j        |
j        j        |
j        |j        fz  ||d                    |c S ||         | j        v rFt                      }||         |_        | j	        |_	        |j        |_        ||_         |dz   | _         |S | j        rt                      }| j        |d          |_        | j	        |_	        d|_        | |_        ||_         || _         |                     |          }|| j         k    r!t#          d||         z  ||d                    | j         }|sZ|S || _         t#          d||         |fz  ||d                    ||k     | j        rTt                      }d|_        d|_        | j	        |_	        ||_         | |_        || _         |                     |          }|S |dz   | _         | j        t3          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   rL   rP   rK   r?   matchr   groupr   r   	lastindexr   endlexerlexmatchrS   r   r   __code__co_filenameco_firstlinenor   rQ   rM   rN   RuntimeError)r	   r   rL   rP   rK   r?   lexindexfuncmtokir   newtoks               r   tokenzLexer.token1  sq   KKN	Lvoov)++! (,z Ms Ms#|KK00  jjGGII	![
#
K!-ach x &'eegg"


!" !	 !$c   $F $IE ' K{$*<<<&'] M5t}7S M6;a8 (89@9IK K K  6?d&666"**C 'CI!%CJ"yCH!'CJ"(1*DKJ > ""**C $VWW 5CI!%CJ&CH $CI!'CJ"(DK!^^C00F,,&'OSZ[aSb'celmsmtmteuvvv![F! ! !M$CwvX^F__ahioipipaqrrri vool < 		**CCHCICJCJCI DK\\#&&FMqj<CDDDtr   c                     | S r   r   r   s    r   __iter__zLexer.__iter__  r6   r   c                 @    |                                  }|t          |S r   )r   StopIteration)r	   ts     r   nextz
Lexer.next  s    JJLL9r   r   )r=   )r   r   r   r   rd   r   r   r   r   r   r   r   r   r   r   r   __next__r   r   r   r:   r:   s   s        ! ! !8   < <  <  <  <J# # #P      - - -    k k k\     HHHr   r:   c                 .    t          | d| j                  S )Nregex)rY   __doc__)r   s    r   
_get_regexr     s    4$,///r   c                     t          j        |           }|j                                        }|j        |j        k    r|                    |j                   |S r   )r   	_getframe	f_globalsrV   f_localsupdate)levelsr"   ldicts      r   get_caller_module_dictr     sL    fAKE{aj  QZ   Lr   c                     g }t          | |          D ]B\  }}|r&|d         r|                    ||d         f           -|                    |           C|S rU   )rw   rX   )funclistnamelistresultr"   r4   s        r   rx   rx     sn    Fx**  4 	1 	MM41,''''MM!Mr   c                     g }| D ]K}|r2|d         r*|                     ||d                  |d         f           6|                     |           L|S rU   )rX   )r   r   r   r   s       r   r   r     si    F   	1 	MM51;!-....MM!Mr   c                 (   | sg S d                     |           }	 t          j        ||          }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|r>   ignore_r   NN   )rp   r   r   max
groupindexvaluesrW   r   r   rj   FunctionType
MethodTypefind	Exceptionintr   _form_master_re)relistreflagsr   toknamesr   r?   r   lexindexnamesr"   r   handler   llistr   lnamesrlistrrernamess                     r   r   r     s    	HHVE9
5'** vU%5%<%<%>%>!?!?!!CD$QQQ$**,, 
	: 
	:DAqYYq$''FF|| 2E4DEEE#)8A;"7Q#$a  ##$a 66)$$q((&2LOO'+Xa[&9LO%&-@@ 9 9 9FA66A,VBQBZ%RRsF,VABBZ%RRsFes3w&-88889s   C7D A;FFc                 ,   d}|                      d          }t          |dd          d          D ]\  }}||vr|dk    r n|dk    rt          |d|                   }nd}d|v rt          |          }d                    ||d                    }||fS )Nr>   _ANY)r<   )rm   	enumerateru   rp   )r   namesnonstatepartsr   partstates	tokennames           r   _statetokenr    s    HGGCLLEU122Y**  4uE1uuuQqSz""uqrr##II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| _        t                      | _        d| _        |t          t          j
                  n|| _        d S )Nr<   	inclusiveF)r   
error_functokensr   	stateinfor   r   r.   r    r   stderrlog)r	   r   r  r   s       r   r   zLexerReflect.__init__/  sZ    
!$k2%%
36;)CJ///Cr   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_rulesr.   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 definedTztokens must be a list or tupleztokens is empty)r   r   r  r.   ri   listru   r  )r	   r  s     r   r  zLexerReflect.get_tokensH  s    $// 	HNN5666DJF&4-00 	HNN;<<<DJF 	HNN,---DJFr   c                     i }| j         D ]b}t                              |          s"| j                            d|           d| _        ||v r| j                            d|           d||<   cd S )NzBad token name '%s'TzToken '%s' multiply definedr>   )r  _is_identifierr   r  r.   r,   )r	   	terminalsr   s      r   r  zLexerReflect.validate_tokens\  s    	 	 	A!''** "4a888!
I~~  !>BBBIaLL	 	r   c                 f    | j                             dd          | _        | j        s	d| _        d S d S )Nliteralsr=   )r   r   r  r   s    r   r  zLexerReflect.get_literalsg  s8    
z266} 	DMMM	 	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)Nr>   z.Invalid literal %s. Must be a single characterTzIInvalid literals specification. literals must be a sequence of characters)r  ri   r   r   r  r.   rs   	TypeError)r	   r[   s     r   r  zLexerReflect.validate_literalsm  s    	] & &!![11 &SVVaZZHNN#SUYZ[U\U\]]]!%DJ& &
  	 	 	HNNfgggDJJJJ	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 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   ri   ru   r  r  r.   r   rs   r   r	  )r	   r   r4   	statetypes       r   r  zLexerReflect.get_statesx  s   jnnXt44; 	5dkE4=99 5JKKK!


 5 5A%a// !3q66Q;;'vx|}~xx  A  A  A%)
 &'OD)%dK88 !'GdTTT%)
 %44	[8P8P'ceijjj%)
 t~--'CTJJJ%)
 +4DN4((/	5 	5
5 5r   c                 6   d | j         D             }i | _        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    r|D ]}|| j        |<   n|dk    rB|j        j        }|j        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| _
        S|D ]$}| j        |                             ||f           %|| j	        
                    d|           d| _
        | j                                        D ]}|                    d            | j                                        D ]}|                    d d           d S )Nc                 .    g | ]}|d d         dk    |S )Nr   t_r   ).0r"   s     r   
<listcomp>z*LexerReflect.get_rules.<locals>.<listcomp>  s%    ;;;!QrrUd]]A]]]r   r   z+No rules of the form t_rulename are definedTr8   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                 &    | d         j         j        S Nr>   )r   r   xs    r   <lambda>z(LexerReflect.get_rules.<locals>.<lambda>  s    1!= r   )r]   c                 ,    t          | d                   S r,  )r   r-  s    r   r/  z(LexerReflect.get_rules.<locals>.<lambda>  s    QqT r   )r]   reverse)r   r   funcsymstrsymr(  errorfeoffr	  r   r  r.   r  hasattrr   r   r   r   rX   ri   r   r,   r   sort)	r	   tsymbolsr   r"   r   r   toknamelinefiles	            r   r  zLexerReflect.get_rules  s    ;;tz;;; 	 	  	 A DLODKNNx==AHNNHIIIDJF #	" #	"A
1A)!T^<<OFG&DM!q*%% "g%%# + +)*A+%%# ) )'(	!)((:4D:1DHNN#QSWY]_`_ijjj!%DJJ# 7 7Q..1v66667A{++ "h&&# + +)*Aqyy(()OQRSSS''HNN#LaPPP!%DJJ# 6 6A--q!f55556 GKKK!

 $$&& 	? 	?AFF==F>>>> ##%% 	: 	:AFF**DF9999	: 	:r   c           
      h	   | j         D ]}| j        |         D ]\  }}|j        j        }|j        j        }t          j        |          }| j                            |           | j	        |         }t          |t          j                  rd}nd}|j        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	| j                  }
|
                    d
          r)| j                            d|||j                   d| _        # t$          j        $ rh}| j                            d|||j        |           dt#          |          v r"| j                            d|||j                   d| _        Y d }~d }~ww xY w| j        |         D ]9\  }}| j	        |         }|dk    r#| j                            d|           d| _        <|| j        vr=|                    d          dk     r$| j                            d||           d| _        	 t%          j        d|d|d	| j                  }
|
                    d
          r"| j                            d|           d| _        # t$          j        $ rM}| j                            d||           d|v r| j                            d|           d| _        Y d }~3d }~ww xY w| j        |         s/| j        |         s"| j                            d|           d| _        | j                            |d           }|r|}|j        j        }|j        j        }t          j        |          }| j                            |           t          |t          j                  rd}nd}|j        j        }	|	|k    r)| j                            d|||j                   d| _        |	|k     r)| j                            d|||j                   d| _        | j        D ]}|                     |           d 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<>)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	  r2  r   r   r   inspect	getmoduler   addr   ri   rj   r   co_argcountr  r.   r   r   r   r   r   r   r3  r  r   r4  r   validate_module)r	   r   fnamer"   r:  r;  moduler9  reqargsnargsr[   er4   refuncs                  r   r  zLexerReflect.validate_rules  s   ^ Y	& Y	&E !L/ $& $&qz0z- *1--  (((-.a!122  GGG
.7??HNN#LdTXZ[Zdeee!%DJ7??HNN#JDRVXYXbccc!%DJ!!}} HNN#WY]_cefeoppp!%DJ	&

555*Q----#H$,WWAwwr{{ *'egkmqsts}~~~%)
x & & &HNN#XZ^`dfgfprstttjmm++'`bfhlnonxyyy!%DJJJJJJ	&  ;u- & &a--g%%HNN#LdSSS!%DJ$+--',,y2I2IA2M2MHNN#RTXZabbb!%DJ	&

444#;T\JJA *'^`deee%)
x & & &HNN#QSWYZ[[[axx'Y[_```!%DJJJJJJ	& <& "t{5/A "@%HHH!
 KOOE400E &z0z- *1--  (((a!122  GGG
.7??HNN#LdTXZ[Zdeee!%DJ7??HNN#JDRVXYXbccc!%DJl 	) 	)F  ((((	) 	)s4   7A,F%%H4AHH/ALM$AMM$c                    	 t          j        |          \  }}n# t          $ r Y d S w xY w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*=r>   z7%s:%d: Rule %s redefined. Previously defined on line %dT)rA  getsourcelinesrl   r   r   r   r   r   getsourcefiler  r.   )r	   rG  lineslinenfresre	counthashr:  r   r4   prevr|   s               r   rE  zLexerReflect.validate_module@  s,   	"1&99LE55 	 	 	FF	 j899j455	
 	 	D		$A $IIdOO &wwqzz }}T** &&+IdOO&4V<<HHNN#\^fhmosuyzzz!%DJQJEE	 	s    
(()Nr   )r   r   r   r   r  r  r  r  r  r  r  r  r  rE  r   r   r   r  r  .  s        H H H H      (    	 	 	5 5 5>?: ?: ?:D]) ]) ])N    r   r  Fry   c
           
          |d}d }
ddi}t                      }||_        |	t          t          j                  }	|r|t          t          j                  }|r|  rO fdt                     D             }t          |          }
d|
vr t          j        |
d                  j        |
d<   nt          d          }
|

                    d          }|r!t          |t                    rd	|vr|d	z   |z   }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                   t5                      |_        |j        D ]}|j                            |           t          |j        t:          t<          f          r@ t?          |j        d                                                    |j                  |_!        n|j        |_!        |j        t5          |j!                  z  |_"        |j        }i }|D ]}g }|j#        |         D ]m\  }}|j$        j%        }|j$        j&        }|'                    d|dtQ          |          d           |r%|                    d|tQ          |          |           n|j)        |         D ];\  }}|'                    d|d|d           |r|                    d|||           <|||<   |r|                    d           |D ]p}tU          ||         ||
|j+                  \  }}}||j,        |<   ||j-        |<   ||j.        |<   |r-t_          |          D ]\  }}|                    d|||           q|0                                D ]\  }}|dk    r|dk    r|j,        |         1                    |j,        d                    |j-        |         1                    |j-        d                    |j.        |         1                    |j.        d                    ||_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    rF| |j9        vr|	<                    d|            | |j6        vr|j8        r|	<                    d|            Q|dk    rX| |j9        vr#|j9        
                    dd           |j9        | <   | |j6        vr#|j6        
                    dd          |j6        | <   |j        a|j        a|a|r|r|t          |t          jA                  r|j        }!nrd	|vr	|
d         }!ne|B                    d	          }"d	                     |"d d                   }#t          d|#z             t          t          j        |#         dd          }!t          jF        G                    |!          }	 |H                    ||           n2# t          $ r%}$|	<                    d|d|$           Y d }$~$nd }$~$ww xY w|S )Nry   r<   r  c                 4    g | ]}|t          |          fS r   )rY   )r&  krG  s     r   r'  zlex.<locals>.<listcomp>z  s(    ???a1gfa(()???r   __file__r   r   __package__rf   )r  r   zCan't build lexerzlex: tokens   = %rzlex: literals = %rzlex: states   = %rr   r=  r>  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'rg   r   zCouldn't write lextab module z. )Jr:   rS   r    r   r
  dirdictr   rY  r   r   ri   r   r  r  r  SyntaxErrorr   r   r   r   r   r/   r  r  r	  r   rO   rC  r  ru   r   rp   rQ   r   r2  r   r   r   rX   r   r3  r   r   rA   rB   rC   r   rW   extendrF   r?   r@   rJ   r(  rG   rP   r4  rH   rM   r,   r5  rI   rN   rj   rk   rm   r   rY   rn   ro   dirnamer   rl   )%rG  rZ   r0   optimizery   r   nowarnrz   debuglogerrorlogr   r	  lexobj_itemspkglinfor   regexsr   
regex_listrF  r"   r:  r;  r4   rK  r?   re_textre_namesr   r   styper   srcfiler   pkgnamerJ  s%   `                                    r   lexro  _  s%    ~ E[)IWWF!F SZ(( - ,,H    *????3v;;???VU"" #E,,? @ IE*&q)) ))M
"
"C
 (z&#&& (f3Y'F Hg>>>E	MMOOO 3 	31222 	F 		NN65)))LELEEM 	 	 	D	  =*EL999*EN;;;*EO<<< uuF\    Q %.4-00 ,4T%."34466;;ENKK"^!+c&2D.E.EEF IF # #
 e, 	g 	gHE1:,D:)DeeeZ]]]]CDDD gH%Q[\]Q^Q^`efff |E* 	Z 	ZGD!dddAAA6777 ZH$PQSXYYY"u  =;<<< T T#26%='5RWR`#a#a w#(% '.e$(0u% 	T$W-- T T4BE1dSSSS ")) T TuI%;"6"6e$++F,=i,HIII!%(//0Ei0PQQQ"5)001G	1RSSS#F$Y/FL,Y7FF "LF,00B??F "LF|''	488F 75666  *FZ^^It44FN OO%% 
B 
B5K$$  !TVWXXX$$)9$  !UWXYYYk!!$$"',"2"29d"C"CQ$$"',"2"29b"A"AQ LELEE  R( R
 &%"233 	L /f$$#J/GG"LL--E!hhuSbSz22Gw.///%ck'&:JKKG00I	ROOFI.... 	R 	R 	RfffaaPQQQQQQQQ	R Ms*   'E- -
E:9E: \ 
]!]]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)Nr>   z/Reading from standard input (type EOF to end):
Tz(%s,%r,%d,%d)
)r   argvrq   readclose
IndexErrorstdoutr&   stdinr   r   r   r   r   r   )r   datar|   r"   _input_tokenr   s          r   runmainrz    s    $	$x{HXA6688DGGIIII 	$ 	$ 	$JOPPP9>>##DDD	$  
F4LLL \fhh 	E
*ch	3:sz-ZZ[[[	\s   A	A ABBc                       fd}|S )Nc                 `    t          d          rt                    | _        n| _        | S )Nr8   )r6  r   r   )r"   rK  s    r   	set_regexzTOKEN.<locals>.set_regexB  s0    1j!! 	 mmAGGAGr   r   )rK  r}  s   ` r   TOKENr~  A  s$         r   r   )$rr   rt   r   r   rj   rV   rn   rA  
StringTypeUnicodeTyper   AttributeErrorr   bytesr   r  r   r   rZ   r   r    r2   r:   r   r   rx   r   r   r  r  r   VERBOSEro  rz  r~  Tokenr   r   r   <module>r     sq  D  				 



   				 #U%67KK   ,KKK
 .//    y       v          $       ,u u u u u u u uH
0 0 0       9 9 9P  2j j j j j6 j j jb	 DhBJW[x x x x@\ \ \ \D   	s   - 	99