+
    %i  c            
       s   R t Rt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt ]P                  ]P                  3t
]P                  ! R4      t ! R R]4      t ! R R]4      t ! R R	]4      t ! R
 R]4      t ! R R4      tR tR tR tR tR tR t ! R R]4      tRRRRR]! ]P>                  4      RRRR3
R lt RR lt!R t"]"t#R#   ] d    ]]3t
 Li ; i)z3.11z3.10Nz^[a-zA-Z0-9_]+$c                   s&   a  ] tR t^9t o R tRtV tR# )LexErrorc                s"    V3V n         W n        R # Nargstext)selfZmessagess   &&&,/usr/lib/python3.14/site-packages/ply/lex.py__init__ZLexError.__init__:   s    J		    r   N)__name__
__module____qualname____firstlineno__r   __static_attributes____classdictcell__Z__classdict__   @r   r    r    9   s      r	   r    c                   s,   a  ] tR t^@t o R tR tRtV tR# )LexTokenc                sl    R V P                   V P                  V P                  V P                  3,          # )zLexToken(%s,%r,%d,%d))typevaluelinenolexposr      &r   __str__ZLexToken.__str__A   s&    &$))TZZdkk)ZZZr	   c                s    \        V 4      # r   )strr   r   r   __repr__ZLexToken.__repr__D   s    4yr	    N)r
   r   r   r   r   r   r   r   r   r   r   r   r   @   s     [ r	   r   c                   s@   a  ] tR t^Kt o R tR tR tR t]t]t	Rt
V tR# )	PlyLoggerc                s    Wn         R # r   f)r   r      &&r   r   ZPlyLogger.__init__L   s    r	   c                sV    V P                   P                  W,          R ,           4       R# )
Nr   writer   Zmsgr   kwargs   &&*,r   criticalZPlyLogger.criticalO   s    cjD()r	   c                d    V P                   P                  R W,          ,           R,           4       R# )z	WARNING: r!   Nr"   r$   r&   r   warningZPlyLogger.warningR   s    [CJ/$67r	   c                r(   )zERROR: r!   Nr"   r$   r&   r   errorZPlyLogger.errorU   s    Y#*-45r	   r   N)r
   r   r   r   r   r'   r)   r*   infodebugr   r   r   r   r   r   r   K   s%     *86 DEr	   r   c                   s,   a  ] tR t^]t o R tR tRtV tR# )
NullLoggerc                    V # r   r   )r   namer    r   __getattribute__ZNullLogger.__getattribute__^       r	   c                r.   r   r   )r   r   r%   s   &*,r   __call__ZNullLogger.__call__a   r1   r	   r   N)r
   r   r   r   r0   r2   r   r   r   r   r   r-   r-   ]   s      r	   r-   c                   sz   a  ] tR t^st o R tRR ltRR ltR tR tR t	R t
R	 tR
 tR tR tR tR t]tRtV tR# )Lexerc                sH   R V n         R V n        / V n        / V n        / V n        RV n        . V n        R V n        / V n        / V n	        / V n
        ^ V n        R V n        ^ V n        ^ V n        R V n        R V n        R V n        RV n        RV n        R V n        ^V n        RV n        R # )NINITIAL F)lexre	lexretext
lexstaterelexstateretextlexstaterenameslexstatelexstatestacklexstateinfolexstateignorelexstateerrorflexstateeoff
lexreflagslexdatar   lexlen	lexerrorflexeoff	lextokens	lexignorelexliterals	lexmoduler   lexoptimizer   r   r   r   ZLexer.__init__t   s    
  !!    r	   Nc           
     sX   \         P                   ! V 4      pV'       Ed   / pV P                  P                  4        F  w  rE. pV Fn  w  rx. p	V Fa  p
V
'       d   V
^ ,          '       g   V	P                  V
4       K-  V	P                  \	        W^ ,          P
                  4      V
^,          34       Kc  	  Kp  	  VP                  XX	34       WcV&   K  	  W2n        / Vn        V P                  P                  4        F'  w  rK\	        WP
                  4      VP                  V&   K)  	  Wn        V#     )copyr8   itemsappendgetattrr
   r?   rI   )r   objectcZnewtabkeyZritemZnewreZcreZfindexZ	newfindexr   ef   &&          r   cloneZLexer.clone   s    IIdO 6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                sb   \        V\        P                  4      '       d   \        R 4      hVP	                  R4      R,          p\
        P                  P                  W#4      R,           p\        VR4      ;_uu_ 4       pVP                  RV: R\        : R24       VP                  R\        \        4      ,          4       VP                  R\        \        \        V P                  4      4      4      ,          4       VP                  R	\        \!        V P"                  4      4      ,          4       VP                  R
\        V P$                  4      ,          4       VP                  R\        V P&                  4      ,          4       / pV P(                  P+                  4        Fa  w  rx. p	\-        WP.                  V,          V P0                  V,          4       F$  w  w  rrV	P3                  V\5        W4      34       K&  	  WV&   Kc  	  VP                  R\        V4      ,          4       VP                  R\        V P6                  4      ,          4       / pV P8                  P+                  4        F  w  rV'       d   VP:                  MRW&   K  	  VP                  R\        V4      ,          4       / pV P<                  P+                  4        F  w  rV'       d   VP:                  MRVV&   K   	  VP                  R\        V4      ,          4       RRR4       R#   + '       g   i     R# ; i)z&Won't overwrite existing lextab module.z.pyZ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
Nz_lexstateerrorf = %s
z_lexstateeoff = %s
)
isinstancetypes
ModuleTypeIOErrorsplitospathjoinopenr#   __version__repr__tabversion__tupleZsortedrF   intrA   rH   r=   r8   rN   zipr9   r:   rO   _funcs_to_namesr>   r?   r
   r@   )r   lextab	outputdirZbasetabmodulefilenameZtfZtabre	statenamelretitempatfuncZretextZrenamesZtaberrrT   Ztabeofs   &&&              r   writetabZLexer.writetab   sT   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+d3t3G.HHI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   >JLL.	c           	     s*   \        V\        P                  4      '       d   TpM)\        R V,          4       \        P
                  V,          p\        VRR4      \        8w  d   \        R4      hVP                  V n
        VP                  V n        VP                  V n        V P                  \        V P                  4      ,          V n        VP"                  V n        VP&                  V n        / V n        / V n        VP.                  P1                  4        Fj  w  rE. p. pV F?  w  rVP3                  \4        P6                  ! WP                  4      \9        W4      34       KA  	  W`P*                  V&   WpP,                  V&   Kl  	  / V n        VP<                  P1                  4        F  w  rJW*,          V P:                  V&   K  	  / V n        VP@                  P1                  4        F  w  rJW*,          V P>                  V&   K  	  V PC                  R4       R# )	import %sZ_tabversionz0.0zInconsistent PLY versionr4   N)"rY   rZ   r[   execsysmodulesrP   rd   ImportErrorZ
_lextokensrF   Z_lexreflagsrA   Z_lexliteralsrH   setlextokens_allZ_lexstateinfor=   Z_lexstateignorer>   r8   r9   Z_lexstatererN   rO   recompile_names_to_funcsr?   Z_lexstateerrorfr@   Z_lexstateeoffbegin)r   Ztabfilefdictri   rl   rm   rn   Ztxtitemro   Z	func_namerT   s   &&&        r   readtabZ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                s    VR ,          p\        V\        4      '       g   \        R4      hWn        ^ V n        \        V4      V n        R# ):N   NzExpected a stringN)rY   StringTypes
ValueErrorrB   r   lenrC   )r   r   rR   s   && r   inputZLexer.input   s;    bE![))011!fr	   c                sn   WP                   9  d   \        R 4      hV P                   V,          V n        V P                  V,          V n        V P
                  P                  VR4      V n        V P                  P                  VR4      V n	        V P                  P                  VR4      V n        Wn        R# )zUndefined stater5   N)r8   r   r6   r9   r7   r>   getrG   r?   rD   r@   rE   r;   r   stater    r   r|   ZLexer.begin  s    './/__U+
,,U3,,00;,,00=((,,UD9r	   c                sr    V P                   P                  V P                  4       V P                  V4       R # r   )r<   rO   r;   r|   r   r    r   
push_stateZLexer.push_state  s&    !!$--0

5r	   c                sX    V P                  V P                  P                  4       4       R # r   )r|   r<   Zpopr   r   r   	pop_stateZLexer.pop_state  s    

4%%))+,r	   c                s    V P                   # r   )r;   r   r   r   current_stateZLexer.current_state!  s    }}r	   c                s8    V ;P                   V,          un         R # r   )r   )r   nr    r   skipZ
Lexer.skip'  s    qr	   c                sV   V P                   pV P                  pV P                  pV P                  pW8  Ed   WA,          V9   d   V^,          pK  V P                   EF  w  rVVP                  WA4      pV'       g   K!  \        4       pVP                  4       Vn        V P                  Vn	        Wn         VP                  p	Wi,          w  qn        V
'       g?   VP                  '       d   VP                  4       V n         Vu # VP                  4       p K  VP                  4       pWn        Wpn        Wn         V
! V4      pV'       g   V P                   pV P                  p EK1  V P                  '       gq   VP                  V P                   9  dV   \#        RV
P$                  P&                  V
P$                  P(                  V
P*                  VP                  3,          WAR 4      hVu # 	  WA,          V P,                  9   dP   \        4       pWA,          Vn        V P                  Vn	        VP                  Vn        Wn         V^,           V n         V# V P.                  '       d   \        4       pV P                  VR Vn        V P                  Vn	        RVn        Wn        Wn         Wn         V P/                  V4      pWP                   8X  d   \#        RWA,          ,          WAR 4      hV P                   pV'       g   EK  V# Wn         \#        RWA,          V3,          WAR 4      hV P0                  '       dO   \        4       pRVn        RVn        V P                  Vn	        Wn         Wn        Wn         V P1                  V4      pV# V^,           V n         V P                  f   \3        R4      hR# )	r   z4%s:%d: Rule '%s' returned an unknown token type '%s'Nr*   z&Scanning error. Illegal character '%s'z"Illegal character '%s' at index %deofr5   z"No input string given with input())r   rC   rG   rB   r6   matchr   groupr   r   Z	lastindexr   ZendlexerlexmatchrJ   rx   r    __code__co_filenameco_firstlinenor
   rH   rD   rE   ZRuntimeError)r   r   rC   rG   rB   r6   lexindexfuncmtokirp   Znewtoks   &           r   tokenZLexer.token1  s   KKKKNN	LLo)+! (,zz#KK0 jGGI	![[
#
KK!-hxxx&'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r<<<*CCHCICJJI K\\#&FMqj<<CDDr	   c                r.   r   r   r   r   r   __iter__ZLexer.__iter__  r1   r	   c                s:    V P                  4       pVf   \        hV# r   )r   ZStopIteration)r   t   & r   nextZ
Lexer.next  s    JJL9r	   )rB   rE   rD   rG   rC   rH   r   rI   rJ   r   r6   rA   r7   r;   r@   r?   r>   r=   r8   r:   r9   r<   rF   rx   r   r   )r5   )r
   r   r   r   r   rV   rq   r~   r   r|   r   r   r   r   r   r   r   Z__next__r   r   r   r   r   r3   r3   s   sQ     !8< <J#P-k\ Hr	   r3   c                 s0    \        V R V P                  4      # )regex)rP   Z__doc__)rp   r   r   
_get_regexr     s    4$,,//r	   c                 s    \         P                  ! V 4      pVP                  P                  4       pVP                  VP                  8w  d   VP                  VP                  4       V# r   )rt   Z	_getframeZ	f_globalsrM   Zf_localsZupdate)Zlevelsr   ldict   &  r   get_caller_module_dictr     sG    fAKKE{{ajj QZZ Lr	   c                 s    . p\        W4       FH  w  r4V'       d+   V^ ,          '       d   VP                  WC^,          34       K7  VP                  V4       KJ  	  V# rK   )rg   rO   )Zfunclistnamelistresultr   r/   s   &&   r   rh   rh     sH    Fx*1MM41,'MM!	 +
 Mr	   c                 s    . pV  FT  pV'       d9   V^ ,          '       d*   VP                  W^ ,          ,          V^,          34       KC  VP                  V4       KV  	  V# rK   )rO   )r   r}   r   r   s   &&  r   r{   r{     sJ    F1MM51;!-.MM!	 
 Mr	   c                 s$   V '       g   . # R P                  V 4      p \        P                  ! WA4      pR.\        VP                  P                  4       4      ^,           ,          pVR,          pVP                  P                  4        F  w  rVP                  VR4      p
\        V
4      \        P                  \        P                  39   d   WV,          3Wi&   WV	&   KW  V
f   K]  WV	&   VP                  R4      ^ 8  d   RWi&   K}  RW8,          3Wi&   K  	  WV3.V.V.3#   \         dg    \        \        T 4      ^,          4      pT^ 8X  d   ^p\!        T RT YT4      w  rp\!        YR YT4      w  pppY,           TT,           TT,           3u # i ; i)Z|N:NNNignore_NN)r`   ry   rz   ZmaxZ
groupindexvaluesrN   r   r   rZ   ZFunctionType
MethodTypefind	Exceptionrf   r   _form_master_re)Zrelistreflagsr   toknamesr   r6   r   Zlexindexnamesr   r   Zhandler   Zllistrm   ZlnamesZrlistZrreZ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   CD %8D A.FFc                 s    V P                  R 4      p\        VR,          ^4       F  w  r4WA9  g   K  VR8w  g   K   M	  X^8  d   \        V^V 4      pMRpRV9   d   \        V4      pR P                  W#R 4      pWV3# )Z_:r   NNZANYN)r4   )r]   	enumeratere   r`   )r   Znamespartsr   ZpartstatesZ	tokenname   &&     r   _statetokenr     s~    GGCLEU2Y* + 	1uuQqz"ur#Ir	   c                   sf   a  ] tR tRt o RR ltR tR tR tR tR t	R	 t
R
 tR tR tR tRtV tR# )LexerReflecti-  Nc                s    Wn         R V n        . V n        W0n        RR/V n        \        4       V n        RV n        Vf!   \        \        P                  4      V n        R # TV n        R # )Nr4   	inclusiveF)r   
error_functokensr   	stateinforw   ru   r*   r   rt   stderrlog)r   r   r   r   s   &&&&r   r   ZLexerReflect.__init__.  sP    
!$k2%
36;)CJJ/Cr	   c                s    V P                  4        V P                  4        V P                  4        V P                  4        R # r   )
get_tokensget_literals
get_states	get_rulesr   r   r   get_allZLexerReflect.get_all9  s,    r	   c                sz    V P                  4        V P                  4        V P                  4        V P                  # r   )validate_tokensvalidate_literalsvalidate_rulesr*   r   r   r   validate_allZLexerReflect.validate_all@  s0     zzr	   c                sz   V P                   P                  R R4      pV'       g%   V P                  P                  R4       RV n        R# \	        V\
        \        34      '       g%   V P                  P                  R4       RV n        R# V'       g%   V P                  P                  R4       RV n        R# Wn        R# )r   NzNo token list is definedTztokens must be a list or tupleztokens is empty)r   r   r   r*   rY   listre   r   )r   r   r   r   r   ZLexerReflect.get_tokensG  s    $/HHNN56DJ&4-00HHNN;<DJHHNN,-DJr	   c                s    / pV P                    Fg  p\        P                  V4      '       g$   V P                  P	                  R V4       RV n        W!9   d   V P                  P                  RV4       ^W&   Ki  	  R# )zBad token name '%s'TzToken '%s' multiply definedN)r   _is_identifierr   r   r*   r)   )r   Z	terminalsr   r   r   r   ZLexerReflect.validate_tokens[  sa    	A!''**4a8!
~  !>BIL r	   c                s~    V P                   P                  R R4      V n        V P                  '       g
   RV n        R# R# )literalsr5   N)r   r   r   r   r   r   r   ZLexerReflect.get_literalsf  s-    

z26}}}DM r	   c                s>    V P                    FW  p\        V\        4      '       d   \        V4      ^8  g   K+  V P                  P                  R\        V4      4       RV n        KY  	  R#   \         d'    T P                  P                  R4       RT n         R# i ; i)r   z.Invalid literal %s. Must be a single characterTzIInvalid literals specification. literals must be a sequence of charactersN)r   rY   r   r   r   r*   rc   Z	TypeError)r   rR   r   r   r   ZLexerReflect.validate_literalsl  sv    	]]!![11SVaZHHNN#SUYZ[U\]!%DJ #
  	HHNNfgDJ	s   2A+ 0A+ +-BBc                sV   V P                   P                  R R4      V n        V P                  '       Edu   \        V P                  \        \
        34      '       g%   V P                  P                  R4       RV n        R# V P                   EF  p\        V\        4      '       d   \        V4      ^8w  d/   V P                  P                  R\        V4      4       RV n        KX  Vw  r#\        V\        4      '       g/   V P                  P                  R\        V4      4       RV n        K  VR8X  g-   VR8X  g&   V P                  P                  RV4       RV n        K  W P                  9   d'   V P                  P                  R	V4       RV n        EK	  W0P                  V&   EK  	  R# R# )
r   Nz)states must be defined as a tuple or listTzMInvalid 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   rY   re   r   r   r*   r   rc   r   r   )r   r   r/   Z	statetypes   &   r   r   ZLexerReflect.get_statesw  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                sZ   V P                    Uu. uF  qR ,          R8X  g   K  VNK  	  pp/ V n        / V n        / V n        / V n        / V n        / V n        V P                   F!  p. V P                  V&   . V P                  V&   K#  	  \        V4      ^ 8X  d%   V P                  P                  R4       RV n
        R# V EF  pV P                   V,          p\        WP                  4      w  rVW`P                  V&   \        VR4      '       d   VR8X  d   V F  pW@P
                  V&   K  	  Kn  VR8X  d   V F  pW@P                  V&   K  	  K  VR8X  d]   VP                  P                  pVP                  P                  pV P                  P                  R	WVP                   4       RV n
        K  V F&  pV P                  V,          P#                  W34       K(  	  EK   \%        V\&        4      '       d   VR8X  dA   V F  pW@P                  V&   K  	  R
V9   d    V P                  P)                  RV4       EKz  EK}  VR8X  d'   V P                  P                  RV4       RV n
        EK  V F&  pV P                  V,          P#                  W34       K(  	  EK  V P                  P                  RV4       RV n
        EK  	  V P                  P+                  4        F  pVP-                  R R7       K  	  V P                  P+                  4        F  pVP-                  R RR7       K  	  R# u upi ):N   NZt_z+No rules of the form t_rulename are definedTNr2   r*   r   ignorez,%s:%d: Rule '%s' must be defined as a stringZ\z#%s contains a literal backslash '\''Rule '%s' must be defined as a functionz&%s not defined as a function or stringc                 s<    V ^,          P                   P                  # r   )r   r   Zxr   r   <lambda>(LexerReflect.get_rules.<locals>.<lambda>  s    1!=!=r	   )rS   c                 s&    \        V ^,          4      # r   )r   r   r   r   r   r     s    QqTr	   )rS   Zreverse)r   r   funcsymstrsymr   errorfeoffr   r   r   r*   r   hasattrr   r   r   r
   rO   rY   r   r)   r   Zsort)	r   r   Ztsymbolsr   r   r   toknamelinefiles	   &        r   r   ZLexerReflect.get_rules  s   #zz;z!rUd]AAz; 	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           
     sd   V P                    EF  pV P                  V,           EF  w  r#VP                  P                  pVP                  P                  p\
        P                  ! V4      pV P                  P                  V4       V P                  V,          p\        V\        P                  4      '       d   ^pM^pVP                  P                  p	W8  d1   V P                  P                  RWTVP                   4       RV n        K  W8  d2   V P                  P                  RWTVP                   4       RV n        EK  \#        V4      '       g2   V P                  P                  RWTVP                   4       RV n        EK`   \$        P&                  ! RV: R\#        V4      : R2V P(                  4      p
V
P+                  R4      '       d2   V P                  P                  R	WTVP                   4       RV n        EK  EK  	  V P,                  V,           F  w  rV P                  V,          pVR8X  d&   V P                  P                  RV4       RV n        KD  WpP.                  9  d<   VP1                  R4      ^ 8  d&   V P                  P                  RW4       RV n        K   \$        P&                  ! RV: RV: R2V P(                  4      p
V
P+                  R4      '       d&   V P                  P                  RV4       RV n        K  K  	  V P                  V,          '       g=   V P,                  V,          '       g$   V P                  P                  RV4       RV n        V P2                  P5                  VR4      pV'       g   EK  TpVP                  P                  pVP                  P                  p\
        P                  ! V4      pV P                  P                  V4       \        V\        P                  4      '       d   ^pM^pVP                  P                  p	W8  d/   V P                  P                  RWTVP                   4       RV n        W8  g   EKX  V P                  P                  RWTVP                   4       RV n        EK  	  V P                   F  pV P7                  V4       K  	  R#   \$        P                   ds   pT P                  P                  R
YTTP                   T4       R\#        T4      9   d(   T P                  P                  RYTTP                   4       RT n         Rp?EK  Rp?ii ; i  \$        P                   dS   pT P                  P                  RY4       RT9   d   T P                  P                  RT4       RT n         Rp?EK  Rp?ii ; i)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<>)r5   z<%s:%d: Regular expression for rule '%s' matches empty stringz3%s:%d: Invalid regular expression for rule '%s'. %sZ#z6%s:%d. Make sure '#' in rule '%s' is escaped with '\#'Nr*   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   inspectZ	getmoduleru   addr   rY   rZ   r   Zco_argcountr   r*   r
   r   ry   rz   r   r   r   r   r   r   r   validate_module)r   r   fnamer   r   r   moduler   ZreqargsZnargsrR   er/   rZefuncs   &              r   r   ZLexerReflect.validate_rules  s>   ^^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/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	&s:   A8R>(A U)#U>UA&U  UV/AV**V/c                s$    \         P                  ! V4      w  r#\        P                  ! R4      p\        P                  ! R4      p/ pT^,          pT F  pTP                  T4      pT'       g   TP                  T4      pT'       dj   TP                  ^4      p	TP                  T	4      p
T
'       g   Y6T	&   M:\         P                  ! T4      pT P                  P                  RYY4       RT n
        T^,          pK  	  R #   \         d     R # i ; i)Nz\s*def\s+(t_[a-zA-Z_0-9]*)\(z\s*(t_[a-zA-Z_0-9]*)\s*=z7%s:%d: Rule %s redefined. Previously defined on line %dT)r   Zgetsourcelinesr\   ry   rz   r   r   r   Zgetsourcefiler   r*   )r   r   ZlinesZlinenZfreZsreZ	counthashr   r   r/   Zprevrk   rU   r   r   Z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   D   DD)r   r*   r   r   r   r   r   r   r   ru   r   r   r   r   r   r   )NrL   )r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   -  sE     H(	5>?:D])N r	   r   Fri   c
           
      s   Vf   RpR p
RR/p\        4       pW<n        V	f   \        \        P                  4      p	V'       d   Vf   \        \        P                  4      pV'       d   Tp V '       dc   \        V 4       Uu. uF  q\        W4      3NK  	  pp\        V4      p
RV
9  d,   \        P                  V
R,          ,          P                  V
R&   M\        ^4      p
V
P                  R4      pV'       d.   \        V\        4      '       d   RV9  d   VR,           V,           p\        WVR7      pVP                  4        V'       g"   VP!                  4       '       d   \#        R	4      hV'       d7   V'       d/    VP%                  WJ4       VP&                  sVP(                  sVsV# V'       dU   VP/                  R
VP0                  4       VP/                  RVP2                  4       VP/                  RVP4                  4       \7        4       Vn        VP0                   F  pVP8                  P;                  V4       K   	  \        VP2                  \<        \>        34      '       dA   \A        VP2                  ^ ,          4      ! 4       PC                  VP2                  4      Vn"        MVP2                  Vn"        VP8                  \7        VPD                  4      ,          Vn#        VP4                  p/ pV F  p. pVPH                  V,           FP  w  ppVPK                  RV: R\M        V4      : R24       V'       g   K3  VP/                  RV\M        V4      V4       KR  	  VPN                  V,           F>  w  ppVPK                  RV: RV: R24       V'       g   K*  VP/                  RVVV4       K@  	  VVV&   K  	  V'       d   VP/                  R4       V F  p\Q        VV,          WZVPR                  4      w  pppVVPT                  V&   VVPV                  V&   VVPX                  V&   V'       g   K\  \[        V4       F  w  ppVP/                  RVVV4       K  	  K  	  VP]                  4        F  w  ppVR8w  g   K  VR8X  g   K  VPT                  V,          P_                  VPT                  R,          4       VPV                  V,          P_                  VPV                  R,          4       VPX                  V,          P_                  VPX                  R,          4       K  	  Wn0        VPT                  R,          Vn1        VPV                  R,          Vn2        W\n3        VPh                  Vn5        VPj                  P                  RR4      Vn6        VPn                  Vn8        VPn                  P                  RR 4      Vn9        VPr                  '       g   V	Pu                  R4       VPv                  Vn<        VPv                  P                  RR 4      Vn=        VP]                  4        F  w  ppVR8X  d_   VVPn                  9  d   V	Pu                  RV4       VVPh                  9  d)   VPl                  '       d   V	Pu                  RV4       Kg  Ki  Kk  VR8X  g   Kt  VVPn                  9  d*   VPn                  P                  RR 4      VPn                  V&   VVPh                  9  g   K  VPh                  P                  RR4      VPh                  V&   K  	  VP&                  sVP(                  sVsV'       d   V'       d   Vf   \        V\|        P~                  4      '       d   VP                  p MjRV9  d   V
R,          p MYVP                  R4      p!RPC                  V!R R 4      p"\        RV",          4       \        \        P                  V",          RR4      p \        P                  P                  V 4      p VP                  WG4       V\        P                  9   d   \        P                  V V# V# u upi   \,         d     ELi ; i  \         d%   p#T	Pu                  RT: RT#: 24        R p#?#T# R p#?#ii ; i)Nri   r4   r   __file__r   Z__package__rW   )r   r   zCan't build lexerzlex: tokens   = %rzlex: literals = %rzlex: states   = %rr   r   r   z(lex: Adding rule %s -> '%s' (state '%s')z#lex: ==== MASTER REGEXS FOLLOW ====z"lex: state '%s' : regex[%d] = '%s'r5   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'rr   zCouldn't write lextab module z. rX   )Gr3   rJ   r   rt   r   ZdirrP   Zdictru   r   r   r   rY   r   r   r   r   ZSyntaxErrorr~   r   r   r   rv   r+   r   r   r   rw   rF   r   r   re   r   r`   rH   rx   r   rO   r   r   r   r   r8   r9   r:   r   rN   Zextendr=   r6   r7   rA   r   r>   rG   r   r?   rD   r)   r   r@   rE   rZ   r[   r]   rs   r^   r_   Zdirnamerq   r\   )$r   rQ   r,   Zoptimizeri   r   Znowarnrj   ZdebuglogZerrorlogr   r   ZlexobjZkZ_itemsZpkgZlinfor   Zregexsr   Z
regex_listr   r   r/   r   r6   Zre_textZre_namesr   r   Zstyper   Zsrcfiler   Zpkgnamer   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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)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.$KK' M6M{ @<  		x  	RfaPQQM	Rs0   >`9;,`> >7a >aaa?a::a?c                 s|   V'       gD    \         P                  ^,          p\        V4      pVP                  4       pVP	                  4        V '       d   V P                  pM\        pV! V4       V '       d   V P                  pM\        p V! 4       pV'       g   R# \         P                  P                  RVP                  VP                  VP                  VP                  3,          4       Kf    \
         dA    \         P                  P                  R4       \         P                  P                  4       p Li ; i)r   z/Reading from standard input (type EOF to end):
z(%s,%r,%d,%d)
N)rt   Zargvra   ZreadZcloseZ
IndexErrorZstdoutr#   Zstdinr   r   r   r   r   r   )r   Zdatark   r   Z_inputZ_tokenr   r   r   runmainr     s    	$xx{HXA668DGGI
 
4L
h

*chh		3::szz-ZZ[%  	$JJOP99>>#D	$s   AC0 0AD;:D;c                 s   a  V 3R  lpV# )c                 s^   < \        SR 4      '       d   \        S4      V n        V # SV n        V # )r2   )r   r   r   )r   r   s   &r   	set_regexZTOKEN.<locals>.set_regexA  s0    1j!! mAG  AGr	   r   )r   r   s   f r   TOKENr   @  s     r	   r   )$rb   rd   ry   rt   rZ   rM   r^   r   Z
StringTypeZUnicodeTyper   ZAttributeErrorr   Zbytesrz   r   r   r    rQ   r   r   r-   r3   r   r   rh   r{   r   r   r   rf   ZVERBOSEr   r   r   ZTokenr   r	   r   <module>r      s  D  	 
   	 ##U%6%67K ./y v  $ ,u uH
0 9P0j6 jb	 DhBJJW[x@\D 	u   ,Ks   C CC