
    Yh              
          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
 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#y# e$ r eefZ
Y w xY w)z3.10    Nz^[a-zA-Z0-9_]+$c                       e Zd Zd Zy)LexErrorc                 "    |f| _         || _        y N)argstext)selfmessagess      b/var/www/django-portfolio.reubendavern.link/venv/lib/python3.12/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y)LexTokenc                 d    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&    &$))TZZdkk)ZZZr   c                     t        |       S r   )strr   s    r   __repr__zLexToken.__repr__D   s    4yr   N)r   r   r   r   r   r   r   r   r   r   @   s    [r   r   c                   ,    e Zd Zd Zd Zd Zd ZeZeZy)	PlyLoggerc                     || _         y r   )f)r	   r"   s     r   r   zPlyLogger.__init__L   s	    r   c                 F    | j                   j                  ||z  dz          y )N
r"   writer	   msgr   kwargss       r   criticalzPlyLogger.criticalO   s    cDjD()r   c                 L    | j                   j                  d||z  z   dz          y )Nz	WARNING: r$   r%   r'   s       r   warningzPlyLogger.warningR   s     [C$J/$67r   c                 L    | j                   j                  d||z  z   dz          y )NzERROR: r$   r%   r'   s       r   errorzPlyLogger.errorU   s     Y#*-45r   N)	r   r   r   r   r*   r,   r.   infodebugr   r   r   r    r    K   s"    *86 DEr   r    c                       e Zd Zd Zd Zy)
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   ]   s    r   r2   c                   b    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y)Lexerc                 F   d | _         d | _        i | _        i | _        i | _        d| _        g | _        d | _        i | _        i | _	        i | _
        d| _        d | _        d| _        d| _        d | _        d | _        d | _        d| _        d| _        d | _        d| _        d| _        y )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                  j                         D ]x  \  }}g }|D ]T  \  }}g }	|D ]H  }
|
r|
d   s|	j                  |
       |	j                  t	        ||
d   j
                        |
d   f       J V |j                  	f       |||<   z ||_        i |_        | j                  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   s!   IIdO F"oo335 
$
U#( QKC "I# Q !%,,Q/$!(('&!A$--*H!A$)OP	QQ c9-.#s
$ "AL!A..446 ER(/(D  %E AKr   c                    t        |t        j                        rt        d      |j	                  d      d   }t
        j                  j                  ||      dz   }t        |d      5 }|j                  d|dt        d       |j                  d	t        t              z         |j                  d
t        t        t        | j                                    z         |j                  dt        | j                         z         |j                  dt        | j"                        z         |j                  dt        | j$                        z         i }| j&                  j)                         D ]\  \  }}g }	t+        || j,                  |   | j.                  |         D ]&  \  \  }
}}}|	j1                  |t3        ||      f       ( |	||<   ^ |j                  dt        |      z         |j                  dt        | j4                        z         i }| j6                  j)                         D ]  \  }}|r|j8                  nd ||<    |j                  dt        |      z         i }| j:                  j)                         D ]  \  }}|r|j8                  nd ||<    |j                  dt        |      z         d d d        y # 1 sw Y   y xY w)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   s|   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 )	347T=P=PQZ=[]a]q]qr{]|4} K0KS$LL&/$*H!IJK#(i 	) HH+d5k9:HH-T5H5H0IIJF!%!4!4!:!:!< @	235BKK4y!@HH-V<=F!%!2!2!8!8!: @	235BKK4y!@HH+d6l:;7	< 	< 	<s   )IKKc           	         t        |t        j                        r|}n!t        d|z         t        j
                  |   }t        |dd      t        k7  rt        d      |j                  | _
        |j                  | _        |j                  | _        | j                  t        | j                        z  | _        |j"                  | _        |j&                  | _        i | _        i | _        |j.                  j1                         D ]l  \  }}g }g }|D ]@  \  }}	|j3                  t5        j6                  ||j                        t9        |	|      f       B || j*                  |<   || j,                  |<   n i | _        |j<                  j1                         D ]  \  }}
||
   | j:                  |<    i | _        |j@                  j1                         D ]  \  }}
||
   | j>                  |<    | jC                  d       y )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Fw&'[[)F6=%0NB899$//$00$11"nns43C3C/DD$22$44  $00668 	5NIsEG"% gYbjjf.@.@A?S\^cCdefg */DOOI&-4D	*	5 !#3399; 	7MIr-22YD	*	7 #11779 	5MIr+09Di(	5 	

9r   c                     |d d }t        |t              st        d      || _        d| _        t        |      | _        y )Nr>   zExpected a stringr   )ri   StringTypes
ValueErrorrK   r   lenrL   )r	   r   r[   s      r   inputzLexer.input   s<    bqE![)011!fr   c                 Z   || j                   vrt        d      | j                   |   | _        | j                  |   | _        | j
                  j                  |d      | _        | j                  j                  |d       | _	        | j                  j                  |d       | _        || _        y )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r   c                 p    | j                   j                  | j                         | j                  |       y r   )rE   rX   rD   r   r   s     r   
push_statezLexer.push_state  s&    !!$--0

5r   c                 V    | j                  | j                  j                                y 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_         y r   )r   )r	   ns     r   skipz
Lexer.skip'  s    qr   c                    | j                   }| j                  }| j                  }| j                  }||k  r||   |v r|dz  }| j                  D ]g  \  }}|j                  ||      }|st               }|j                         |_        | j                  |_	        ||_         |j                  }	||	   \  }
|_        |
s8|j                  r|j                         | _         |c S |j                         } n|j                         }| |_        || _        || _          |
|      }|s| j                   }| j                  } n| j                  sj|j                  | j                   vrRt#        d|
j$                  j&                  |
j$                  j(                  |
j*                  |j                  fz  ||d        |c S  ||   | j,                  v rIt               }||   |_        | j                  |_	        |j                  |_        ||_         |dz   | _         |S | j.                  rt               }| j                  |d  |_        | j                  |_	        d|_        | |_        ||_         || _         | j/                  |      }|| j                   k(  rt#        d||   z  ||d        | j                   }|s|S || _         t#        d||   |fz  ||d        ||k  r| j0                  rQt               }d|_        d|_        | j                  |_	        ||_         | |_        || _         | j1                  |      }|S |dz   | _         | j                  t3        d      y )	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  s7   KKKKNN	LLvov)+! (,zz Ms#|KK0 jGGI	![[
#
KK!-achxx&'eeg"
!" !	 !$c  $F $I ''{{$*<*<<&'] MM55t}}7S7S MM6;;a8 (89@9IK K ]Msb 6?d&6&66"*C 'CI!%CJ"yyCH!'CJ"(1*DKJ >>"*C $VW 5CI!%CJ&CH $CI!'CJ"(DK!^^C0F,&'OSZ[aSb'celmsmteuvv![[F! !M$CwvX^F__ahioipaqrri vol <<*CCHCICJCJCI DK\\#&FMqj<<CDDr   c                     | S r   r   r   s    r   __iter__zLexer.__iter__  r6   r   c                 6    | j                         }|t        |S r   )r   StopIteration)r	   ts     r   nextz
Lexer.next  s    JJL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   sN    !8< <J#P-k\ Hr   r:   c                 0    t        | d| j                        S )Nregex)rY   __doc__)r   s    r   
_get_regexr     s    4$,,//r   c                     t        j                  |       }|j                  j                         }|j                  |j                  k7  r|j                  |j                         |S r   )r   	_getframe	f_globalsrV   f_localsupdate)levelsr"   ldicts      r   get_caller_module_dictr     sG    fAKKE{{ajj QZZ Lr   c                     g }t        | |      D ]4  \  }}|r|d   r|j                  ||d   f       $|j                  |       6 |S rU   )rw   rX   )funclistnamelistresultr"   r4   s        r   rx   rx     sQ    Fx* 41MM41,'MM!	
 Mr   c                     g }| D ]7  }|r"|d   r|j                  ||d      |d   f       '|j                  |       9 |S rU   )rX   )r   r   r   r   s       r   r   r     sO    F 1MM51;!-.MM!	
 Mr   c                    | sg S dj                  |       }	 t        j                  ||      }d gt        |j                  j                               dz   z  }|d d  }|j                  j                         D ]~  \  }}	|j                  |d       }
t        |
      t        j                  t        j                  fv r|
||   f||	<   |||	<   S|
V|||	<   |j                  d      dkD  rd||	<   ud ||   f||	<    ||fg|g|gfS # t        $ rY 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%5%<%<%>!?!!CD$Q$$**, 
	:DAqYYq$'FF| 2 2E4D4DEE#)8A;"7Q#$a ##$a 66)$q(&2LO'+Xa[&9LO
	: %&-@@ 9FA6A,VBQZ%RsF,VABZ%RsFes3w&-889s   B4D 4D AE#"E#c                     d}| j                  d      }t        |dd  d      D ]  \  }}||vs|dk7  s n dkD  rt        |d|       }nd}d|v rt        |      }dj                  ||d        }||fS )Nr>   _ANY)r<   )rm   	enumerateru   rp   )r   namesnonstatepartsr   partstates	tokennames           r   _statetokenr    s    HGGCLEU12Y* 4u 	1uuQqz"uqr#IIr   c                   P    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y)LexerReflectNc                     || _         d | _        g | _        || _        ddi| _        t               | _        d| _        |t        t        j                        | _        y || _        y )Nr<   	inclusiveF)r   
error_functokensr   	stateinfor   r   r.   r    r   stderrlog)r	   r   r  r   s       r   r   zLexerReflect.__init__/  sT    
!$k2%
36;)CJJ/Cr   c                     | j                          | j                          | j                          | j                          y r   )
get_tokensget_literals
get_states	get_rulesr   s    r   get_allzLexerReflect.get_all:  s,    r   c                 z    | j                          | j                          | j                          | j                  S r   )validate_tokensvalidate_literalsvalidate_rulesr.   r   s    r   validate_allzLexerReflect.validate_allA  s0     zzr   c                 P   | j                   j                  dd       }|s#| j                  j                  d       d| _        y t	        |t
        t        f      s#| j                  j                  d       d| _        y |s#| j                  j                  d       d| _        y || _        y )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    $/HHNN56DJ&4-0HHNN;<DJHHNN,-DJr   c                     i }| j                   D ]_  }t        j                  |      s#| j                  j	                  d|       d| _        ||v r| j                  j                  d|       d||<   a y )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\  sg    	 	A!''*4a8!
I~  !>BIaL	r   c                 n    | j                   j                  dd      | _        | j                  sd| _        y y )Nliteralsr=   )r   r   r  r   s    r   r  zLexerReflect.get_literalsg  s+    

z26}}DM r   c                     	 | j                   D ]M  }t        |t              rt        |      dkD  s"| j                  j                  dt        |             d| _        O y # t        $ r% | j                  j                  d       d| _        Y y 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  sx    	]] &!![1SVaZHHNN#SUYZ[U\]!%DJ&
  	HHNNfgDJ	s   -A .A +BBc                    | j                   j                  dd       | _        | j                  rRt        | j                  t        t
        f      s#| j                  j                  d       d| _        y | j                  D ]  }t        |t              rt        |      dk7  r-| j                  j                  dt        |             d| _        N|\  }}t        |t              s-| j                  j                  dt        |             d| _        |dk(  s)|dk(  s$| j                  j                  d	|       d| _        || j                  v r$| j                  j                  d
|       d| _        || j                  |<    y y )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  s4   jjnnXt4;;dkkE4=9JK!
 5A%a/3q6Q;'vx|}~x  A%)
 &'OD)%dK8'GdT%)
 %4	[8P'ceij%)
 t~~-'CTJ%)
 +4DNN4(%5 r   c                    | j                   D cg c]  }|d d dk(  s| }}i | _        i | _        i | _        i | _        i | _        i | _        | j                  D ]   }g | j                  |<   g | j                  |<   " t        |      dk(  r#| j                  j                  d       d| _
        y |D ]  }| j                   |   }t        || j                        \  }}|| j                  |<   t        |d      r|dk(  r|D ]  }|| j
                  |<    c|dk(  r|D ]  }|| j                  |<    |d	k(  r\|j                  j                  }|j                  j                  }| j                  j                  d
|||j                          d| _
        |D ]"  }| j                  |   j#                  ||f       $ 	t%        |t&              r|d	k(  r:|D ]  }|| j                  |<    d|v s:| j                  j)                  d|       X|dk(  r%| j                  j                  d|       d| _
        |D ]"  }| j                  |   j#                  ||f       $ | j                  j                  d|       d| _
         | j                  j+                         D ]  }|j-                  d         | j                  j+                         D ]  }|j-                  d d        y c c}w )Nr   t_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                 4    | 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	   r"   tsymbolsr   r   r   toknamelinefiles	            r   r  zLexerReflect.get_rules  s   #zz;!QrUd]A;; 	 	 A DLLODKKN	  x=AHHNNHIDJ #	"A

1A)!T^^<OFG&DMM!q*%g%# +)*A+%# )'(		!)(::44D::11DHHNN#QSWY]_`_i_ij!%DJ# 7Q..1v67A{+h&# +)*A+qy(()OQRS'HHNN#LaP!%DJ# 6A--q!f56 GK!
G#	"L $$& 	?AFF=F>	? ##% 	:AFF*DF9	:{ <s
   K&K&c           
      
   | j                   D ]$  }| j                  |   D ]  \  }}|j                  j                  }|j                  j                  }t        j                  |      }| j                  j                  |       | j                  |   }t        |t        j                        rd}nd}|j                  j                  }	|	|kD  r0| j                  j                  d|||j                          d| _        |	|k  r1| j                  j                  d|||j                          d| _        t#        |      s1| j                  j                  d|||j                          d| _        N	 t%        j&                  d|dt#        |      d	| j(                        }
|
j+                  d
      r/| j                  j                  d|||j                          d| _         | j,                  |   D ]  \  }}| j                  |   }|dk(  r$| j                  j                  d|       d| _        >|| j.                  vr9|j1                  d      dk  r%| j                  j                  d||       d| _        	 t%        j&                  d|d|d	| j(                        }
|
j+                  d
      r#| j                  j                  d|       d| _         | j                  |   s2| j,                  |   s#| j                  j                  d|       d| _        | j2                  j5                  |d       }|s(|}|j                  j                  }|j                  j                  }t        j                  |      }| j                  j                  |       t        |t        j                        rd}nd}|j                  j                  }	|	|kD  r/| j                  j                  d|||j                          d| _        |	|k  s| j                  j                  d|||j                          d| _        ' | j                  D ]  }| j7                  |        y # t$        j                  $ rp}| j                  j                  d|||j                   |       dt#        |      v r(| j                  j                  d|||j                          d| _        Y d }~d }~ww xY w# t$        j                  $ rO}| j                  j                  d||       d|v r| j                  j                  d|       d| _        Y d }~Jd }~ww xY w)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	  r/  r   r   r   inspect	getmoduler   addr   ri   rj   r   co_argcountr  r.   r   r   r   r   r   r   r0  r  r   r1  r   validate_module)r	   r   fnamer"   r7  r8  moduler6  reqargsnargsr[   er4   refuncs                  r   r  zLexerReflect.validate_rules  s^   ^^ Y	&E !LL/ $&qzz00zz-- **1-  (--.a!1!12GG

..7?HHNN#LdTXZ[ZdZde!%DJ7?HHNN#JDRVXYXbXbc!%DJ!!}HHNN#WY]_cefeoeop!%DJ	&

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

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

..7?HHNN#LdTXZ[ZdZde!%DJ7?HHNN#JDRVXYXbXbc!%DJsY	&v ll 	)F  (	)q xx &HHNN#XZ^`dfgfpfprstjm+'`bfhlnonxnxy!%DJJ	&0 xx &HHNN#QSWYZ[ax'Y[_`!%DJJ	&s4   /A0Q7ASS+A%SSU 1AT;;U c                    	 t        j                  |      \  }}t        j                  d      }t        j                  d      }i }|dz  }|D ]  }|j                  |      }|s|j                  |      }|re|j                  d      }	|j                  |	      }
|
s|||	<   n;t        j                  |      }| j                  j                  d|||	|
       d| _
        |dz  } y # t        $ r Y y w xY w)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>  getsourcelinesrl   r   r   r   r   r   getsourcefiler  r.   )r	   rD  lineslinenfresre	counthashr7  r   r4   prevr|   s               r   rB  zLexerReflect.validate_module@  s    	"11&9LE5 jj89jj45	
 	D		$AIIdOwwqz }}T*&+IdO&44V<HHHNN#\^fhmosuyz!%DJQJE	  		s   C# #	C/.C/)Nr   )r   r   r   r   r  r  r  r  r  r  r  r  r  rB  r   r   r   r  r  .  s=    H(	5>?:D])Nr   r  Fry   c
           
         |d}d }
ddi}t               }||_        |	t        t        j                        }	|r|t        t        j                        }|r|} | rWt        |       D cg c]  }|t        | |      f }}t        |      }
d|
vr/t        j                  |
d      j                  |
d<   nt        d      }
|
j                  d      }|rt        |t              rd|vr|dz   |z   }t        |
|	|	      }|j                          |s|j!                         rt#        d
      |r1|r/	 |j%                  ||
       |j&                  a|j(                  a|a|S |rT|j/                  d|j0                         |j/                  d|j2                         |j/                  d|j4                         t7               |_        |j0                  D ]  }|j8                  j;                  |        t        |j2                  t<        t>        f      r< tA        |j2                  d                jC                  |j2                        |_"        n|j2                  |_"        |j8                  t7        |jD                        z  |_#        |j4                  }i }|D ]  }g }|jH                  |   D ]r  \  }}|jJ                  jL                  }|jJ                  jN                  }|jQ                  d|dtS        |      d       |sV|j/                  d|tS        |      |       t |jT                  |   D ]4  \  }}|jQ                  d|d|d       |s!|j/                  d|||       6 |||<    |r|j/                  d       |D ]x  }tW        ||   ||
|jX                        \  }}}||jZ                  |<   ||j\                  |<   ||j^                  |<   |sRta        |      D ]  \  }}|j/                  d|||        z |jc                         D ]  \  }} |dk7  s| dk(  s|jZ                  |   je                  |jZ                  d          |j\                  |   je                  |j\                  d          |j^                  |   je                  |j^                  d           ||_3        |jZ                  d   |_4        |j\                  d   |_5        ||_6        |jn                  |_8        |jp                  j                  dd      |_9        |jt                  |_;        |jt                  j                  dd       |_<        |jx                  s|	j{                  d       |j|                  |_?        |j|                  j                  dd       |_@        |jc                         D ]  \  }!} | dk(  rO|!|jt                  vr|	j{                  d|!       |!|jn                  vs:|jr                  sG|	j{                  d|!       Z| dk(  s`|!|jt                  vr)|jt                  j                  dd       |jt                  |!<   |!|jn                  vs|jn                  j                  dd      |jn                  |!<    |j&                  a|j(                  a|a|r|r|t        |t        j                        r|j                  }"n[d|vr|
d   }"nQ|j                  d      }#djC                  |#d d       }$t        d|$z         t        t        j                  |$   dd      }"t        j                  j                  |"      }	 |j                  ||       |S |S c c}w # t,        $ r Y w xY w# t        $ r"}%|	j{                  d|d|%       Y d }%~%|S d }%~%ww xY w)Nry   r<   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
  dirrY   dictr   rT  r   r   ri   r   r  r  r  SyntaxErrorr   r   r   r   r   r/   r  r  r	  r   rO   r@  r  ru   r   rp   rQ   r   r/  r   r   r   rX   r   r0  r   r   rA   rB   rC   r   rW   extendrF   r?   r@   rJ   r%  rG   rP   r1  rH   rM   r,   r2  rI   rN   rj   rk   rm   r   rn   ro   dirnamer   rl   )&rD  rZ   r0   optimizery   r   nowarnrz   debuglogerrorlogr   r	  lexobjk_itemspkglinfor   regexsr   
regex_listrC  r"   r7  r8  r4   rH  r?   re_textre_namesr   r   styper   srcfiler   pkgnamerG  s&                                         r   lexrk  _  s    ~ E[)IWF!F SZZ( ,H  36v;?a1gfa()??VU" #E,,? @ I IE*&q) ))M
"C
z&#&f3Y'F Hg>E	MMO122F	NN65)LLELLEEM *ELL9*ENN;*EOO< uF\\  Q  %..4-04T%.."346;;ENNK"^^!++c&2D2D.EEF IF #
 e, 	gHE1::,,D::))DeZ]CDH%Q[\]Q^`ef	g ||E* 	ZGD!dA67H$PQSXY	Z
 #u##* ;< T#26%='5RWR`R`#a w#(% '.e$(0u%$W- T4BE1dSTT ") TuI%;"6e$++F,=,=i,HI!!%(//0E0Ei0PQ""5)001G1G	1RS	T $F$$Y/FL,,Y7FF "LLF,,00B?F "LLF||''	48F56  **FZZ^^It4FN OO% 
B5K$  !TVWX$)9)9  !UWXYk!$"',,"2"29d"CQ$"',,"2"29b"AQ
B LLELLEE (
 &%"2"23 //f$#J/G"LL-E!hhuSbz2Gw./%ckk'&:JKG0I	ROOFI. M6M{ @<  		x  	RfaPQQM	Rs0   '\;+-]  %]  	]]	];]66];c                 4   |s?	 t         j                  d   }t        |      }|j                         }|j	                          | r| j                  }nt        } ||       | r| j                  }nt        }	  |       }|sy t         j                  j                  d|j                  |j                  |j                  |j                  fz         Y# t
        $ r@ t         j                  j                  d       t         j                  j                         }Y w xY w)Nr>   z/Reading from standard input (type EOF to end):
z(%s,%r,%d,%d)
)r   argvrq   readclose
IndexErrorstdoutr&   stdinr   r   r   r   r   r   )r   datar|   r"   _input_tokenr   s          r   runmainrv    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                       fd}|S )Nc                 R    t        d      rt              | _        | S | _        | S )Nr8   )r3  r   r   )r"   rH  s    r   	set_regexzTOKEN.<locals>.set_regexB  s-    1j! mAG  AGr   r   )rH  ry  s   ` r   TOKENrz  A  s     r   r   )$rr   rt   r   r   rj   rV   rn   r>  
StringTypeUnicodeTyper   AttributeErrorr   bytesr   r  r   r   rZ   r   r    r2   r:   r   r   rx   r   r   r  r  r   VERBOSErk  rv  rz  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