
    #	h              
          S r S rSSKrSSKrSSKrSSKrSSKrSSKr \R                  \R                  4r
\R                  " S5      r " S S\5      r " S S\5      r " S S	\5      r " S
 S\5      r " S S5      rS rS rS rS rS rS r " S S\5      rSSSSS\" \R>                  5      SSSS4
S jr SS jr!S r"\"r#g! \ a    \\4r
 Nf = f)z3.10    Nz^[a-zA-Z0-9_]+$c                       \ rS rSrS rSrg)LexError9   c                      U4U l         X l        g Nargstext)selfmessagess      C/var/www/html/env/lib/python3.13/site-packages/pycparser/ply/lex.py__init__LexError.__init__:   s    J		    r   N)__name__
__module____qualname____firstlineno__r   __static_attributes__ r   r   r   r   9   s    r   r   c                        \ rS rSrS rS rSrg)LexToken@   c                 d    SU R                   U R                  U R                  U R                  4-  $ )NzLexToken(%s,%r,%d,%d))typevaluelinenolexposr   s    r   __str__LexToken.__str__A   s&    &$))TZZdkk)ZZZr   c                     [        U 5      $ r   )strr    s    r   __repr__LexToken.__repr__D   s    4yr   r   N)r   r   r   r   r!   r%   r   r   r   r   r   r   @   s    [r   r   c                   4    \ rS rSrS rS rS rS r\r\r	Sr
g)	PlyLoggerK   c                     Xl         g r   f)r   r,   s     r   r   PlyLogger.__init__L   s    r   c                 D    U R                   R                  X-  S-   5        g )N
r,   writer   msgr	   kwargss       r   criticalPlyLogger.criticalO   s    cjD()r   c                 J    U R                   R                  SX-  -   S-   5        g )Nz	WARNING: r/   r0   r2   s       r   warningPlyLogger.warningR   s    [CJ/$67r   c                 J    U R                   R                  SX-  -   S-   5        g )NzERROR: r/   r0   r2   s       r   errorPlyLogger.errorU   s    Y#*-45r   r+   N)r   r   r   r   r   r5   r8   r;   infodebugr   r   r   r   r(   r(   K   s"    *86 DEr   r(   c                        \ rS rSrS rS rSrg)
NullLogger]   c                     U $ r   r   )r   names     r   __getattribute__NullLogger.__getattribute__^       r   c                     U $ r   r   )r   r	   r4   s      r   __call__NullLogger.__call__a   rF   r   r   N)r   r   r   r   rD   rH   r   r   r   r   r@   r@   ]   s    r   r@   c                   n    \ rS rSrS rSS jrSS jrS rS rS r	S	 r
S
 rS rS rS rS rS r\rSrg)Lexers   c                 F   S U l         S U l        0 U l        0 U l        0 U l        SU l        / U l        S U l        0 U l        0 U l	        0 U l
        SU l        S U l        SU l        SU l        S U l        S U l        S U l        SU l        SU l        S U l        SU l        SU l        g )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   Lexer.__init__t   s    
  !!    r   Nc           
      8   [         R                   " U 5      nU(       a  0 nU R                  R                  5        H  u  pE/ nU H`  u  px/ n	U HS  n
U
(       a
  U
S   (       d  U	R                  U
5        M'  U	R                  [	        XS   R
                  5      U
S   45        MU     Mb     UR                  WW	45        XcU'   M     X2l        0 Ul        U R                  R                  5        H'  u  pK[	        XR
                  5      UR                  U'   M)     Xl        U$ Nr   rP   )copyrS   itemsappendgetattrr   rZ   rd   )r   objectcnewtabkeyritemnewrecrefindex	newfindexr,   efs               r   cloneLexer.clone   s    IIdO F"oo335
#(KC "I# !%,,Q/$!(('&A$--*H!A$)OP	 $ $) c9-.#s 6 "L!A..446(/(D  % 7 Kr   c                    [        U[        R                  5      (       a  [        S5      eUR	                  S5      S   n[
        R                  R                  X#5      S-   n[        US5       nUR                  SU< S[        < S35        UR                  S	[        [        5      -  5        UR                  S
[        [        [        U R                  5      5      5      -  5        UR                  S[        U R                   5      -  5        UR                  S[        U R"                  5      -  5        UR                  S[        U R$                  5      -  5        0 nU R&                  R)                  5        HY  u  px/ n	[+        XR,                  U   U R.                  U   5       H$  u  u  ppU	R1                  U[3        X5      45        M&     XU'   M[     UR                  S[        U5      -  5        UR                  S[        U R4                  5      -  5        0 nU R6                  R)                  5        H  u  pU(       a  UR8                  OS X'   M     UR                  S[        U5      -  5        0 nU R:                  R)                  5        H  u  pU(       a  UR8                  OS UU'   M     UR                  S[        U5      -  5        S S S 5        g ! , (       d  f       g = f)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openr1   __version__repr__tabversion__tuplesortedra   r\   rc   rX   rS   rj   ziprT   rU   rk   _funcs_to_namesrY   rZ   r   r[   )r   lextab	outputdirbasetabmodulefilenametftabre	statenamelretitempatfuncretextrenamestaberrrv   tabeofs                    r   writetabLexer.writetab   sI   fe..//BCCS)"-77<<	9EA(C BHHgt  wB  C  DHH+d>.BBCHH04fT^^>T8U3VVWHH+d4??.CCDHH+d43C3C.DDEHH+d43D3D.EEF E"&//"7"7"9	47=P=PQZ=[]a]q]qr{]|4}0KSLL&/$*H!IJ 5~#(i 	 #: HH+d5k9:HH-T5H5H0IIJF!%!4!4!:!:!<	35BKK4! "=HH-V<=F!%!2!2!8!8!:	35BKK4y! ";HH+d6l:;7 !  s   -IK
K"c           	         [        U[        R                  5      (       a  UnO![        SU-  5        [        R
                  U   n[        USS5      [        :w  a  [        S5      eUR                  U l
        UR                  U l        UR                  U l        U R                  [        U R                  5      -  U l        UR"                  U l        UR&                  U l        0 U l        0 U l        UR.                  R1                  5        Hj  u  pE/ n/ nU H?  u  pUR3                  [4        R6                  " XR                  5      [9        X5      45        MA     X`R*                  U'   XpR,                  U'   Ml     0 U l        UR<                  R1                  5        H  u  pJX*   U R:                  U'   M     0 U l        UR@                  R1                  5        H  u  pJX*   U R>                  U'   M     U RC                  S5        g )N	import %s_tabversionz0.0zInconsistent PLY versionrN   )"r}   r~   r   execsysmodulesrl   r   ImportError
_lextokensra   _lexreflagsr\   _lexliteralsrc   setlextokens_all_lexstateinforX   _lexstateignorerY   rS   rT   _lexstatererj   rk   recompile_names_to_funcsrZ   _lexstateerrorfr[   _lexstateeoffbegin)r   tabfilefdictr   r   r   r   txtitemr   	func_namerv   s              r   readtabLexer.readtab   s   gu//00Fw&'[[)F6=%0NB899$//$00$11"nns43C3C/DD$22$44  $00668NIEG"%bjj.@.@A?S\Cdef #& */OOI&-4	* 9 !#3399;MI-2YD	* < #11779MI+09Di( : 	

9r   c                     US S n[        U[        5      (       d  [        S5      eXl        SU l        [        U5      U l        g )NrP   zExpected a stringr   )r}   StringTypes
ValueErrorr]   r   lenr^   )r   r   rn   s      r   inputLexer.input   s=    bqE![))011!fr   c                 Z   XR                   ;  a  [        S5      eU R                   U   U l        U R                  U   U l        U R
                  R                  US5      U l        U R                  R                  US 5      U l	        U R                  R                  US 5      U l        Xl        g )NzUndefined staterO   )rS   r   rQ   rT   rR   rY   getrb   rZ   r_   r[   r`   rV   r   states     r   r   Lexer.begin  s    './/__U+
,,U3,,00;,,00=((,,UD9r   c                 p    U R                   R                  U R                  5        U R                  U5        g r   )rW   rk   rV   r   r   s     r   
push_stateLexer.push_state  s&    !!$--0

5r   c                 V    U R                  U R                  R                  5       5        g r   )r   rW   popr    s    r   	pop_stateLexer.pop_state  s    

4%%))+,r   c                     U R                   $ r   )rV   r    s    r   current_stateLexer.current_state!  s    }}r   c                 .    U =R                   U-  sl         g r   )r   )r   ns     r   skip
Lexer.skip'  s    qr   c                    U R                   nU R                  nU R                  nU R                  nX:  Ga  XA   U;   a  US-  nM  U R                   GHz  u  pVUR                  XA5      nU(       d  M   [        5       nUR                  5       Ul        U R                  Ul	        Xl         UR                  n	Xi   u  ol        U
(       d=  UR                  (       a  UR                  5       U l         Us  $ UR                  5       n  GOUR                  5       nXl        Xpl        Xl         U
" U5      nU(       d  U R                   nU R                  n  GOU R                  (       dk  UR                  U R                   ;  aQ  [#        SU
R$                  R&                  U
R$                  R(                  U
R*                  UR                  4-  XAS  5      eUs  $    XA   U R,                  ;   aG  [        5       nXA   Ul        U R                  Ul	        UR                  Ul        Xl         US-   U l         U$ U R.                  (       a  [        5       nU R                  US  Ul        U R                  Ul	        SUl        Xl        Xl         Xl         U R/                  U5      nXR                   :X  a  [#        SXA   -  XAS  5      eU R                   nU(       d  GM  U$ Xl         [#        SXA   U4-  XAS  5      eX:  a  GM  U R0                  (       aN  [        5       nSUl        SUl        U R                  Ul	        Xl         Xl        Xl         U R1                  U5      nU$ US-   U l         U R                  c  [3        S5      eg )	NrP   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eofrO   z"No input string given with input())r   r^   rb   r]   rQ   matchr   groupr   r   	lastindexr   endlexerlexmatchre   r   r   __code__co_filenameco_firstlinenor   rc   r_   r`   RuntimeError)r   r   r^   rb   r]   rQ   lexindexfuncmtokir   newtoks               r   tokenLexer.token1  s   KKKKNN	LLo)+! (,zz#KK0 jGGI	![[
#
KK!-hxx&'eeg"
!" !	 !$c  $F $I ''{{$*<*<<&'] MM55t}}7S7S MM6;;a8 (89@9IK K ] (2b ?d&6&66"*C 'CI!%CJ"yyCH!'J"(1*DKJ >>"*C $VW 5CI!%CJ&CH $I!'J"(K!^^C0F,&'OSZSb'celmteuvv![[F! !M$CwX^F__ahipaqrri ol <<*CCHCICJJI K\\#&FMqj<<CDDr   c                     U $ r   r   r    s    r   __iter__Lexer.__iter__  rF   r   c                 8    U R                  5       nUc  [        eU$ r   )r   StopIteration)r   ts     r   next
Lexer.next  s    JJL9r   )r]   r`   r_   rb   r^   rc   r   rd   re   r   rQ   r\   rR   rV   r[   rZ   rY   rX   rS   rU   rT   rW   ra   r   r   r   )rO   )r   r   r   r   r   rw   r   r   r   r   r   r   r   r   r   r   r   __next__r   r   r   r   rK   rK   s   sN    !8< <J#P-k\ Hr   rK   c                 0    [        U SU R                  5      $ )Nregex)rl   __doc__)r   s    r   
_get_regexr     s    4$,,//r   c                     [         R                  " U 5      nUR                  R                  5       nUR                  UR                  :w  a  UR                  UR                  5        U$ r   )r   	_getframe	f_globalsri   f_localsupdate)levelsr,   ldicts      r   get_caller_module_dictr     sG    fAKKE{{ajj QZZ Lr   c                     / n[        X5       H>  u  p4U(       a!  US   (       a  UR                  XCS   45        M-  UR                  U5        M@     U$ rh   )r   rk   )funclistnamelistresultr,   rC   s        r   r   r     sF    Fx*1MM41,'MM!	 +
 Mr   c                     / nU  HB  nU(       a'  US   (       a  UR                  XS      US   45        M1  UR                  U5        MD     U$ rh   )rk   )r   r   r   r   s       r   r   r     sH    F1MM51;!-.MM!	 
 Mr   c                    U (       d  / $ SR                  U 5      n [        R                  " XA5      nS /[        UR                  R                  5       5      S-   -  nUS S  nUR                  R                  5        H~  u  pUR                  US 5      n
[        U
5      [        R                  [        R                  4;   a  XU   4Xi'   XU	'   MR  U
c  MW  XU	'   UR                  S5      S:  a  SXi'   Mv  S X8   4Xi'   M     XV4/U/U/4$ ! [         aU    [        [        U 5      S-  5      nUS:X  a  Sn[!        U S U XU5      u  pn[!        XS  XU5      u  nnnX-   UU-   UU-   4s $ f = f)N|rP   ignore_r   NN   )r   r   r   max
groupindexvaluesrj   r   r   r~   FunctionType
MethodTypefind	Exceptionintr   _form_master_re)relistreflagsr   toknamesr   rQ   r   lexindexnamesr,   r   handler   llistr   lnamesrlistrrernamess                     r   r  r    s|   	HHVE9

5* vU%5%5%<%<%>!?!!CD$Q$$**,DAYYq$'FF| 2 2E4D4DEE#)A;"7#$a ##$a 66)$q(&2LO'+X[&9LO - %&-@@ 9FA6A,VBQZRF,VBZRsFs3w&-889s   B2D 3D AE%$E%c                     SnU R                  S5      n[        USS  S5       H  u  pEXQ;  d  M  US:w  d  M    O   WS:  a  [        USU 5      nOSnSU;   a  [        U5      nSR                  X4S  5      nXg4$ )NrP   _ANY)rN   )r   	enumerater   r   )r   namesnonstatepartsr   partstates	tokennames           r   _statetokenr!    s    HGGCLEU12Y* + 	1uuQqz"ur#Ir   c                   Z    \ rS rSrSS jrS rS rS rS rS r	S	 r
S
 rS rS rS rSrg)LexerReflecti.  Nc                     Xl         S U l        / U l        X0l        SS0U l        [        5       U l        SU l        Uc  [        [        R                  5      U l        g UU l        g )NrN   	inclusiveF)r   
error_functokensr  	stateinfor   r   r;   r(   r   stderrlog)r   r   r*  r  s       r   r   LexerReflect.__init__/  sP    
!$k2%
36;)CJJ/Cr   c                     U R                  5         U R                  5         U R                  5         U R                  5         g r   )
get_tokensget_literals
get_states	get_rulesr    s    r   get_allLexerReflect.get_all:  s,    r   c                 z    U R                  5         U R                  5         U R                  5         U R                  $ r   )validate_tokensvalidate_literalsvalidate_rulesr;   r    s    r   validate_allLexerReflect.validate_allA  s0     zzr   c                 l   U R                   R                  SS 5      nU(       d#  U R                  R                  S5        SU l        g [	        U[
        [        45      (       d#  U R                  R                  S5        SU l        g U(       d#  U R                  R                  S5        SU l        g Xl        g )Nr'  zNo token list is definedTztokens must be a list or tupleztokens is empty)r   r   r*  r;   r}   listr   r'  )r   r'  s     r   r-  LexerReflect.get_tokensH  s    $/HHNN56DJ&4-00HHNN;<DJHHNN,-DJr   c                     0 nU R                    He  n[        R                  U5      (       d#  U R                  R	                  SU5        SU l        X!;   a  U R                  R                  SU5        SX'   Mg     g )NzBad token name '%s'TzToken '%s' multiply definedrP   )r'  _is_identifierr   r*  r;   r8   )r   	terminalsr   s      r   r4  LexerReflect.validate_tokens\  sa    	A!''**4a8!
~  !>BIL r   c                 x    U R                   R                  SS5      U l        U R                  (       d  SU l        g g )NliteralsrO   )r   r   rA  r    s    r   r.  LexerReflect.get_literalsg  s+    

z26}}DM r   c                 4    U R                    HU  n[        U[        5      (       a  [        U5      S:  d  M)  U R                  R                  S[        U5      5        SU l        MW     g ! [         a%    U R                  R                  S5        SU l         g f = f)NrP   z.Invalid literal %s. Must be a single characterTzIInvalid literals specification. literals must be a sequence of characters)rA  r}   r   r   r*  r;   r   	TypeError)r   rn   s     r   r5  LexerReflect.validate_literalsm  sv    	]]!![11SVaZHHNN#SUYZ[U\]!%DJ #
  	HHNNfgDJ	s   1A( 0A( (,BBc                 @   U R                   R                  SS 5      U l        U R                  (       Gak  [        U R                  [        [
        45      (       d#  U R                  R                  S5        SU l        g U R                   GH  n[        U[        5      (       a  [        U5      S:w  a.  U R                  R                  S[        U5      5        SU l        MV  Uu  p#[        U[        5      (       d.  U R                  R                  S[        U5      5        SU l        M  US:X  d+  US:X  d%  U R                  R                  S	U5        SU l        M  X R                  ;   a&  U R                  R                  S
U5        SU l        GM  X0R                  U'   GM     g g )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}   r   r:  r*  r;   r   r   r   r(  )r   r   rC   	statetypes       r   r/  LexerReflect.get_statesx  s4   jjnnXt4;;;dkkE4=99JK!
A%a//3q6Q;'vx|}~x  A%)
 &'OD%dK88'GdT%)
 %4	[8P'ceij%)
 ~~-'CTJ%)
 +4NN4(% % r   c                    U R                    Vs/ s H  oS S S:X  d  M  UPM     nn0 U l        0 U l        0 U l        0 U l        0 U l        0 U l        U R                   H!  n/ U R                  U'   / U R                  U'   M#     [        U5      S:X  a#  U R                  R                  S5        SU l
        g U GH  nU R                   U   n[        XR                  5      u  pVX`R                  U'   [        US5      (       a  US:X  a  U H  nX@R
                  U'   M     Mh  US:X  a  U H  nX@R                  U'   M     M  US	:X  a\  UR                  R                  nUR                  R                  nU R                  R                  S
XUR                   5        SU l
        M  U H"  nU R                  U   R#                  X45        M$     GM  [%        U[&        5      (       a  US	:X  a?  U H  nX@R                  U'   M     SU;   a  U R                  R)                  SU5        GMk  GMn  US:X  a&  U R                  R                  SU5        SU l
        GM  U H"  nU R                  U   R#                  X45        M$     GM  U R                  R                  SU5        SU l
        GM     U R                  R+                  5        H  nUR-                  S S9  M     U R                  R+                  5        H  nUR-                  S SS9  M     g s  snf )Nr  t_r   z+No rules of the form t_rulename are definedTrH   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                 4    U S   R                   R                  $ NrP   )r   r   xs    r   <lambda>(LexerReflect.get_rules.<locals>.<lambda>  s    1!=!=r   )rp   c                     [        U S   5      $ rP  )r   rQ  s    r   rS  rT    s    QqTr   )rp   reverse)r   r  funcsymstrsymrL  errorfeoffr(  r   r*  r;   r!  hasattrr   r   r   r   rk   r}   r   r8   r  sort)	r   r,   tsymbolsr   r   r  toknamelinefiles	            r   r0  LexerReflect.get_rules  s   #zz;z!rUd]Az; 	A DLLODKKN   x=AHHNNHIDJA

1A)!^^<OF&MM!q*%%g%#)*A $%#'(		! $(::44D::11DHHNN#QSW_`_i_ij!%DJ#Q..v6 $A{++h&#)*A $qy(()OQRS ! 'HHNN#LaP!%DJ#A--qf5 $ GK!
G L $$&AFF=F> ' ##%AFF*DF9 &{ <s
   LLc           
         U R                    GH_  nU R                  U    GH  u  p#UR                  R                  nUR                  R                  n[
        R                  " U5      nU R                  R                  U5        U R                  U   n[        U[        R                  5      (       a  SnOSnUR                  R                  n	X:  a0  U R                  R                  SXTUR                   5        SU l        M  X:  a1  U R                  R                  SXTUR                   5        SU l        GM  [#        U5      (       d1  U R                  R                  SXTUR                   5        SU l        GMX   [$        R&                  " SU< S[#        U5      < S	3U R(                  5      n
U
R+                  S
5      (       a1  U R                  R                  SXTUR                   5        SU l        GM  GM     U R,                  U    H  u  pU R                  U   nUS:X  a%  U R                  R                  SU5        SU l        M?  XpR.                  ;  a:  UR1                  S5      S:  a%  U R                  R                  SX5        SU l        M   [$        R&                  " SU< SU< S	3U R(                  5      n
U
R+                  S
5      (       a%  U R                  R                  SU5        SU l        M  M     U R                  U   (       d7  U R,                  U   (       d#  U R                  R                  SU5        SU l        U R2                  R5                  US 5      nU(       d  GM]  UnUR                  R                  nUR                  R                  n[
        R                  " U5      nU R                  R                  U5        [        U[        R                  5      (       a  SnOSnUR                  R                  n	X:  a.  U R                  R                  SXTUR                   5        SU l        X:  d  GM1  U R                  R                  SXTUR                   5        SU l        GMb     U R                   H  nU R7                  U5        M     g ! [$        R                   aq  nU R                  R                  SXTUR                   U5        S[#        U5      ;   a'  U R                  R                  SXTUR                   5        SU l         S nAGM  S nAff = f! [$        R                   aQ  nU R                  R                  SX5        SU;   a  U R                  R                  SU5        SU l         S nAGMw  S nAff = f)Nr  rP   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<>)rO   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;   rN  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(  rW  r   r   r   inspect	getmoduler   addr  r}   r~   r  co_argcountr*  r;   r   r   r   r   r  r   rX  r'  r	  rY  r   validate_module)r   r   fnamer,   r_  r`  moduler^  reqargsnargsrn   erC   refuncs                  r   r6  LexerReflect.validate_rules  s2   ^^E !LL/zz00zz-- **1-  (--.a!1!122GG

..?HHNN#LdZ[ZdZde!%DJ?HHNN#JDXYXbXbc!%DJ!!}}HHNN#WY]efeoeop!%DJ	&

5*Q-#H$,,WAwwr{{'egksts}s}~%)
 #; 0N  ;;u----g%HHNN#LdS!%DJ++-',,y2IA2MHHNN#RTXb!%DJ	&

4#;T\\JA'^`de%)
 $ .. <<&t{{5/A@%H!
 KKOOE40Euzz00zz-- **1-  (a!1!122GG

..?HHNN#LdZ[ZdZde!%DJ?HHNN#JDXYXbXbc!%DJs $v llF  ( #q xx &HHNN#XZ^fgfpfprstjm+'`bfnonxnxy!%DJJ	&0 xx &HHNN#QSW[ax'Y[_`!%DJJ	&s4   9A7RA#TT*A%TTV2AU>>Vc                     [         R                  " U5      u  p#[        R                  " S5      n[        R                  " S5      n0 nUS-  nU H  nUR                  U5      nU(       d  UR                  U5      nU(       ah  UR                  S5      n	UR                  U	5      n
U
(       d  X6U	'   O:[         R                  " U5      nU R                  R                  SXX5        SU l
        US-  nM     g ! [         a     g f = f)Nz\s*def\s+(t_[a-zA-Z_0-9]*)\(z\s*(t_[a-zA-Z_0-9]*)\s*=rP   z7%s:%d: Rule %s redefined. Previously defined on line %dT)rg  getsourcelinesr   r   r   r   r   r   getsourcefiler*  r;   )r   rm  lineslinenfresre	counthashr_  r   rC   prevr   s               r   rk  LexerReflect.validate_module@  s    	"11&9LE jj89jj45	
D		$AIIdOwwqz }}T*&+dO&44V<HHHNN#\^fosz!%DJQJE   		s   C4 4
D D)rZ  r;   r&  rY  rW  rL  r   rA  r*  r   r  r(  r  rX  r'  r  )Nr   )r   r   r   r   r   r1  r7  r-  r4  r.  r5  r/  r0  r6  rk  r   r   r   r   r#  r#  .  s=    H(	5>?:D])Nr   r#  Fr   c
           
      "   Uc  SnS n
SS0n[        5       nX<l        U	c  [        [        R                  5      n	U(       a  Uc  [        [        R                  5      nU(       a  Un U (       aZ  [        U 5       Vs/ s H  o[        X5      4PM     nn[        U5      n
SU
;  a#  [        R                  U
S      R                  U
S'   O[        S5      n
U
R                  S5      nU(       a#  [        U[        5      (       a  SU;  a  US-   U-   n[        XUS	9nUR                  5         U(       d   UR!                  5       (       a  [#        S
5      eU(       a5  U(       a.   UR%                  XJ5        UR&                  qUR(                  qUqU$ U(       aT  UR/                  SUR0                  5        UR/                  SUR2                  5        UR/                  SUR4                  5        [7        5       Ul        UR0                   H  nUR8                  R;                  U5        M      [        UR2                  [<        [>        45      (       a<  [A        UR2                  S   5      " 5       RC                  UR2                  5      Ul"        OUR2                  Ul"        UR8                  [7        URD                  5      -  Ul#        UR4                  n0 nU H  n/ nURH                  U    H{  u  nnURJ                  RL                  nURJ                  RN                  nURQ                  SU< S[S        U5      < S35        U(       d  M^  UR/                  SU[S        U5      U5        M}     URT                  U    H=  u  nnURQ                  SU< SU< S35        U(       d  M)  UR/                  SUUU5        M?     UUU'   M     U(       a  UR/                  S5        U H  n[W        UU   XZURX                  5      u  nnnUURZ                  U'   UUR\                  U'   UUR^                  U'   U(       d  MW  [a        U5       H  u  nnUR/                  SUUU5        M     M     URc                  5        H  u  nn US:w  d  M  U S:X  d  M  URZ                  U   Re                  URZ                  S   5        UR\                  U   Re                  UR\                  S   5        UR^                  U   Re                  UR^                  S   5        M     Xl3        URZ                  S   Ul4        UR\                  S   Ul5        X\l6        URn                  Ul8        URp                  R                  SS5      Ul9        URt                  Ul;        URt                  R                  SS 5      Ul<        URx                  (       d  U	R{                  S5        UR|                  Ul?        UR|                  R                  SS 5      Ul@        URc                  5        H  u  n!n U S:X  a[  U!URt                  ;  a  U	R{                  SU!5        U!URn                  ;  a'  URr                  (       a  U	R{                  SU!5        Mc  Me  Mg  U S:X  d  Mo  U!URt                  ;  a)  URt                  R                  SS 5      URt                  U!'   U!URn                  ;  d  M  URn                  R                  SS5      URn                  U!'   M     UR&                  qUR(                  qUqU(       a  U(       a  Uc  [        U[        R                  5      (       a  UR                  n"O]SU;  a  U
S   n"OQUR                  S5      n#SRC                  U#S S 5      n$[        SU$-  5        [        [        R                  U$   SS5      n"[        R                  R                  U"5      n UR                  XG5        U$ U$ s  snf ! [,         a     GNTf = f! [         a$  n%U	R{                  SU< SU%< 35         S n%A%U$ S n%A%ff = f)Nr   rN   r%  __file__r   r  __package__rz   )r*  r  zCan't build lexerzlex: tokens   = %rzlex: literals = %rzlex: states   = %rr   rc  rd  re  z(lex: Adding rule %s -> '%s' (state '%s')z#lex: ==== MASTER REGEXS FOLLOW ====z"lex: state '%s' : regex[%d] = '%s'rO   zNo t_error rule is definedrG  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 z. )JrK   re   r(   r   r)  dirrl   dictr   r  r   r   r}   r$   r#  r1  r7  SyntaxErrorr   r   r   r   r   r=   r'  rA  r(  r   ra   ri  r:  r   r   r   rc   r   rW  r   r   r   rk   r   rX  r  r  rS   rT   rU   r  rj   extendrX   rQ   rR   r\   rL  rY   rb   rY  rZ   r_   r8   rZ  r[   r`   r~   r   r   r   r   r   dirnamer   r   )&rm  rm   r>   optimizer   r  nowarnr   debuglogerrorlogr   r(  lexobjk_itemspkglinfor   regexsr   
regex_listrl  r,   r_  r`  rC   rq  rQ   re_textre_namesr   r
   styper   srcfiler  pkgnamerp  s&                                         r   lexr  _  s    ~ E[)IWF! SZZ( ,H  36v;?;agf();?VU" #E,,? @ I IE*&q) ))M
"C
z&#&&f3Y'F g>E	MMO122F	NN6)LLELLEEM *ELL9*ENN;*EOO< uF\\Q  %..4-00!%.."346;;ENNK"^^!++c&2D2D.EEF IF
 e,HE1::,,D::))DeZ]CDuH%Q[\]Q^`ef - ||E*GD!dA67uH$PQSXY +
 #u# * ;<#26%='RWR`R`#a w#(% '.e$(0u%5$W-4BE1dS .  ")uI%;"6e$++F,=,=i,HI!!%(//0E0Ei0PQ""5)001G1G	1RS	 * $$$Y/FL,,Y7F "LLF,,00B?F "LLF||''	48F56  **FZZ^^It4FN OO%5K$  !TVWX$)9)9  !UWXY *:$k!$"',,"2"29d"CQ$"',,"2"29b"AQ & LLELLEE (
 &%"2"233 //f$#J/G"LL-E!hhuSbz2Gw./%ckk'&:JKG0I	ROOF. M6M{ @<  		x  	RfaPQQM	Rs0   8_
,_ 5_  
__ 
`*`		`c                 `   U(       d?   [         R                  S   n[        U5      nUR                  5       nUR	                  5         U (       a  U R                  nO[        nU" U5        U (       a  U R                  nO[        n U" 5       nU(       d  g [         R                  R                  SUR                  UR                  UR                  UR                  4-  5        M_  ! [
         a@    [         R                  R                  S5        [         R                  R                  5       n Nf = f)NrP   z/Reading from standard input (type EOF to end):
z(%s,%r,%d,%d)
)r   argvr   readclose
IndexErrorstdoutr1   stdinr   r   r   r   r   r   )r   datar   r,   _input_tokenr   s          r   runmainr    s    	$xx{HXA668DGGI
 
4L
h

*chh		3::szz-ZZ[	   	$JJOP99>>#D	$s   >C# #AD-,D-c                    ^  U 4S jnU$ )Nc                 \   > [        TS5      (       a  [        T5      U l        U $ TU l        U $ )NrH   )r[  r   r   )r,   rq  s    r   	set_regexTOKEN.<locals>.set_regexB  s0    1j!! mAG  AGr   r   )rq  r  s   ` r   TOKENr  A  s     r   r  )$r   r   r   r   r~   ri   r   rg  
StringTypeUnicodeTyper   AttributeErrorr$   bytesr   r=  r
  r   rm   r   r(   r@   rK   r   r   r   r   r  r!  r#  r  VERBOSEr  r  r  Tokenr   r   r   <module>r     s  D  	 
   	 ##U%6%67K ./y v  $ ,u uH
0 9P2j6 jb	 DhBJJW[x@\D 	w   ,Ks   C 
CC