
    ԅZ              
          d Z dZddlZddlZddlZddlZddlZddlZ	 ej        ej	        fZ
n# e$ r eefZ
Y nw xY w ej        d          Z G d de          Z G d de          Z G d	 d
e          Z G d de          Z G d d          Zd Zd Zd Zd Zd Zd Z G d de          Zddddd eej                  ddddf
dZ ddZ!d Z"e"Z#dS )z3.11z3.10    Nz^[a-zA-Z0-9_]+$c                       e Zd Zd ZdS )LexErrorc                 $    |f| _         || _        d S N)argstext)selfmessagess      'lib/python3.11/site-packages/ply/lex.py__init__zLexError.__init__:   s    J				    N)__name__
__module____qualname__r    r   r   r   r   9   s#            r   r   c                       e Zd Zd Zd ZdS )LexTokenc                 <    d| j         | j        | j        | j        fz  S )NzLexToken(%s,%r,%d,%d))typevaluelinenolexposr	   s    r   __str__zLexToken.__str__A   s    &$)TZdk)ZZZr   c                      t          |           S r   )strr   s    r   __repr__zLexToken.__repr__D   s    4yyr   N)r   r   r   r   r   r   r   r   r   r   @   s5        [ [ [    r   r   c                   .    e Zd Zd Zd Zd Zd ZeZeZdS )	PlyLoggerc                     || _         d S r   )f)r	   r"   s     r   r   zPlyLogger.__init__L   s    r   c                 F    | j                             ||z  dz              d S )N
r"   writer	   msgr   kwargss       r   criticalzPlyLogger.criticalO   s%    cDjD()))))r   c                 L    | j                             d||z  z   dz              d S )Nz	WARNING: r$   r%   r'   s       r   warningzPlyLogger.warningR   s*    [C$J/$677777r   c                 L    | j                             d||z  z   dz              d S )NzERROR: r$   r%   r'   s       r   errorzPlyLogger.errorU   s*    Y#*-455555r   N)	r   r   r   r   r*   r,   r.   infodebugr   r   r   r    r    K   sV          * * *8 8 86 6 6 DEEEr   r    c                       e Zd Zd Zd ZdS )
NullLoggerc                     | S r   r   )r	   names     r   __getattribute__zNullLogger.__getattribute__^       r   c                     | S r   r   )r	   r   r)   s      r   __call__zNullLogger.__call__a   r6   r   N)r   r   r   r5   r8   r   r   r   r2   r2   ]   s2              r   r2   c                   d    e Zd Zd ZddZddZd Zd Zd Zd	 Z	d
 Z
d Zd Zd Zd Zd ZeZdS )Lexerc                 H   d | _         d | _        i | _        i | _        i | _        d| _        g | _        d | _        i | _        i | _	        i | _
        d| _        d | _        d| _        d| _        d | _        d | _        d | _        d| _        d| _        d | _        d| _        d| _        d S )NINITIALr       F)lexre	lexretext
lexstaterelexstateretextlexstaterenameslexstatelexstatestacklexstateinfolexstateignorelexstateerrorflexstateeoff
lexreflagslexdatar   lexlen	lexerrorflexeoff	lextokens	lexignorelexliterals	lexmoduler   lexoptimizer   s    r   r   zLexer.__init__t   s    
  !!    r   Nc           
         t          j         |           }|ri }| j                                        D ]\  }}g }|D ]b\  }}g }	|D ]X}
|
r|
d         s|	                    |
           "|	                    t	          ||
d         j                  |
d         f           Yc|                    ||	f           |||<   ||_        i |_        | j                                        D ]"\  }}t	          ||j                  |j        |<   #||_        |S Nr   r>   )copyrA   itemsappendgetattrr   rH   rR   )r	   objectcnewtabkeyritemnewrecrefindex	newfindexr"   efs               r   clonezLexer.clone   sN   IdOO  	!F"o3355 
$ 
$
U#( Q QKC "I# Q Q  %! %%,,Q///$!(('&!A$-*H*H!A$)OPPPP	Q
 c9-...#s!AL!A.4466 E ER(/(D(D %% AKr   r=   c                 D   t          |t          j                  rt          d          |                    d          d         }t
          j                            ||          dz   }t          |d          5 }|	                    d|dt          d           |	                    d	t          t                    z             |	                    d
t          t          t          | j                                      z             |	                    dt          t!          | j                            z             |	                    dt          | j                  z             |	                    dt          | j                  z             i }| j                                        D ]b\  }}g }	t-          || j        |         | j        |                   D ].\  \  }
}}}|	                    |t5          ||          f           /|	||<   c|	                    dt          |          z             |	                    dt          | j                  z             i }| j                                        D ]\  }}|r|j        nd ||<   |	                    dt          |          z             i }| j                                        D ]\  }}|r|j        nd ||<   |	                    dt          |          z             d d d            d S # 1 swxY w Y   d S )Nz&Won't overwrite existing lextab module.z.pywz# z5.py. This file automatically created by PLY (version z). Don't edit!
z_tabversion   = %s
z_lextokens    = set(%s)
z_lexreflags   = %s
z_lexliterals  = %s
z_lexstateinfo = %s
z_lexstatere   = %s
z_lexstateignore = %s
z_lexstateerrorf = %s
z_lexstateeoff = %s
)
isinstancetypes
ModuleTypeIOErrorsplitospathjoinopenr&   __version__repr__tabversion__tuplesortedrO   intrJ   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   sa   fe.// 	DBCCCS))"-7<<	=99EA(C   	<BHHHgtgtgt  wB  wB  wB  C  D  D  DHH+d>.B.BBCCCHH04fT^>T>T8U8U3V3VVWWWHH+d3t3G3G.H.HHIIIHH+d43C.D.DDEEEHH+d43D.E.EEFFF E"&/"7"7"9"9 ) )	347T=PQZ=[]a]qr{]|4}4} K K0KS$LL&/$*H*H!IJJJJ#(i  HH+d5kk9:::HH-T5H0I0IIJJJF!%!4!:!:!<!< @ @	235$?BKK4y!!HH-V<===F!%!2!8!8!:!: @ @	235$?BKK4y!!HH+d6ll:;;;7	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<s   8JLLLc           	         t          |t          j                  r|}n$t          d|z             t          j        |         }t          |dd          t          k    rt          d          |j	        | _
        |j        | _        |j        | _        | j
        t          | j                  z  | _        |j        | _        |j        | _        i | _        i | _        |j                                        D ]b\  }}g }g }|D ]B\  }}	|                    t5          j        ||j                  t9          |	|          f           C|| j        |<   || j        |<   ci | _        |j                                        D ]\  }}
||
         | j        |<   i | _        |j                                         D ]\  }}
||
         | j        |<   | !                    d           d S )N	import %s_tabversionz0.0zInconsistent PLY versionr<   )"ri   rj   rk   execsysmodulesrY   rt   ImportError
_lextokensrO   _lexreflagsrJ   _lexliteralsrQ   setlextokens_all_lexstateinforF   _lexstateignorerG   rA   rB   _lexstatererW   rX   recompile_names_to_funcsrH   _lexstateerrorfrI   _lexstateeoffbegin)r	   tabfilefdictrz   r   r   r   txtitemr   	func_namerc   s              r   readtabzLexer.readtab   s   gu/00 	*FFw&'''[)F6=%00NB 	:8999$/$0$1"ns43C/D/DD$2$4  $06688 	5 	5NIsEG"% g gYbjf.@AA?S\^cCdCdeffff).DOI&-4D	** #399;; 	7 	7MIr-22YD	**#17799 	5 	5MIr+09Di((

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

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

4%))++,,,,,r   c                     | j         S r   )rD   r   s    r   current_statezLexer.current_state!  s
    }r   c                 &    | xj         |z  c_         d S r   )r   )r	   ns     r   skipz
Lexer.skip'  s    qr   c                 N   | j         }| j        }| j        }| j        }||k     r||         |v r|dz  }| j        D ]H\  }}|                    ||          }|st                      }|                                |_        | j	        |_	        ||_         |j
        }	||	         \  }
|_        |
s;|j        r|                                | _         |c S |                                } n|                                }| |_        || _        || _          |
|          }|s| j         }| j        } nt| j        sK|j        | j        vr=t#          d|
j        j        |
j        j        |
j        |j        fz  ||d                    |c S ||         | j        v rFt                      }||         |_        | j	        |_	        |j        |_        ||_         |dz   | _         |S | j        rt                      }| j        |d          |_        | j	        |_	        d|_        | |_        ||_         || _         |                     |          }|| j         k    r!t#          d||         z  ||d                    | j         }|sZ|S || _         t#          d||         |fz  ||d                    ||k     | j        rTt                      }d|_        d|_        | j	        |_	        ||_         | |_        || _         |                     |          }|S |dz   | _         | j        t3          d          d S )	Nr>   z4%s:%d: Rule '%s' returned an unknown token type '%s'r.   z&Scanning error. Illegal character '%s'z"Illegal character '%s' at index %deofr=   z"No input string given with input())r   rL   rP   rK   r?   matchr   groupr   r   	lastindexr   endlexerlexmatchrS   r   r   __code__co_filenameco_firstlinenor   rQ   rM   rN   RuntimeError)r	   r   rL   rP   rK   r?   lexindexfuncmtokir   newtoks               r   tokenzLexer.token1  s   KKN	Lvo T	sv)+ ! (,z Ms Ms#|KK00  jjGGII	![
#
K!-ach x &'eegg"


!" !	 !$c   $F $IE ' K{$*<< K&'] M5t}7S M6;a8 (89@9IK K K  6?d&66 "**C 'CI!%CJ"yCH!'CJ"(1*DKJ > ""**C $VWW 5CI!%CJ&CH $CI!'CJ"(DK!^^C00F, w&'OSZ[aSb'celmsmtmteuvvv![F! ! !M$CwvX^F__ahioipipaqrrri vo T	sl < 		**CCHCICJCJCI DK\\#&&FMqj< 	ECDDDtr   c                     | S r   r   r   s    r   __iter__zLexer.__iter__  r6   r   c                 @    |                                  }|t          |S r   )r   StopIteration)r	   ts     r   nextz
Lexer.next  s"    JJLL 	 r   r   )r=   )r   r   r   r   rd   r   r   r   r   r   r   r   r   r   r   r   __next__r   r   r   r:   r:   s   s        ! ! !8   < <  <  <  <J# # #P      - - -    k k k\     HHHr   r:   c                 .    t          | d| j                  S )Nregex)rY   __doc__)r   s    r   
_get_regexr     s    4$,///r   c                     t          j        |           }|j                                        }|j        |j        k    r|                    |j                   |S r   )r   	_getframe	f_globalsrV   f_localsupdate)levelsr"   ldicts      r   get_caller_module_dictr     sN    fAKE{aj  !QZ   Lr   c                     g }t          | |          D ]B\  }}|r&|d         r|                    ||d         f           -|                    |           C|S rU   )rx   rX   )funclistnamelistresultr"   r4   s        r   ry   ry     sn    Fx**  4 	1 	MM41,''''MM!Mr   c                     g }| D ]K}|r2|d         r*|                     ||d                  |d         f           6|                     |           L|S rU   )rX   )r   r   r   r   s       r   r   r     si    F   	1 	MM51;!-....MM!Mr   c                 (   | sg S d                     |           }	 t          j        ||          }d gt          |j                                                  dz   z  }|d d          }|j                                        D ]\  }}	|                    |d           }
t          |
          t          j
        t          j        fv r|
||         f||	<   |||	<   U|
1|||	<   |                    d          dk    rd||	<   {d ||         f||	<   ||fg|g|gfS # t          $ rt t          t          |           dz            }|dk    rd}t!          | d |         |||          \  }}}t!          | |d          |||          \  }}}||z   ||z   ||z   fcY S w xY w)N|r>   ignore_r   NN   )rp   r   r   max
groupindexvaluesrW   r   r   rj   FunctionType
MethodTypefind	Exceptionrw   r   _form_master_re)relistreflagsr   toknamesr   r?   r   lexindexnamesr"   r   handler   llistr   lnamesrlistrrernamess                     r   r   r     s    	HHVE9
5'** vU%5%<%<%>%>!?!?!!CD$QQQ$**,, 
	: 
	:DAqYYq$''FF|| 2E4DEE :#)8A;"7Q#$a   :#$a 66)$$q( :&2LOO'+Xa[&9LO%&-@@ 9 9 9FA6 	A,VBQBZ%RRsF,VABBZ%RRsFes3w&-88889s   C7D A;FFc                 (   |                      d          }t          |dd          d          D ]\  }}||vr|dk    r n|dk    rt          |d|                   }nd}d|v rt          |          }d                    ||d                    }||fS )N_r>   ANY)r<   )rm   	enumerateru   rp   )r   namespartsr   partstates	tokennames          r   _statetokenr    s    GGCLLEU122Y**  4u 	 	E1u uQqSz"" uqrr##IIr   c                   R    e Zd ZddZd Zd Zd Zd Zd Zd	 Z	d
 Z
d Zd Zd ZdS )LexerReflectNr   c                     || _         d | _        g | _        || _        ddi| _        t                      | _        d| _        |t          t          j
                  n|| _        d S )Nr<   	inclusiveF)r   
error_functokensr   	stateinfor   r   r.   r    r   stderrlog)r	   r   r
  r   s       r   r   zLexerReflect.__init__.  s[    
!$k2%%
36G)CJ///Cr   c                     |                                   |                                  |                                  |                                  d S r   )
get_tokensget_literals
get_states	get_rulesr   s    r   get_allzLexerReflect.get_all9  sJ    r   c                     |                                   |                                  |                                  | j        S r   )validate_tokensvalidate_literalsvalidate_rulesr.   r   s    r   validate_allzLexerReflect.validate_all@  s@       zr   c                 \   | j                             dd           }|s#| j                            d           d| _        d S t	          |t
          t          f          s#| j                            d           d| _        d S |s#| j                            d           d| _        d S || _        d S )Nr  zNo token list is definedTztokens must be a list or tupleztokens is empty)r   r   r
  r.   ri   listru   r  )r	   r  s     r   r  zLexerReflect.get_tokensG  s    $// 	HNN5666DJF&4-00 	HNN;<<<DJF 	HNN,---DJFr   c                     i }| j         D ]b}t                              |          s"| j                            d|           d| _        ||v r| j                            d|           d||<   cd S )NzBad token name '%s'TzToken '%s' multiply definedr>   )r  _is_identifierr   r
  r.   r,   )r	   	terminalsr   s      r   r  zLexerReflect.validate_tokens[  s    	 	 	A!''** "4a888!
I~ C  !>BBBIaLL	 	r   c                 f    | j                             dd          | _        | j        s	d| _        d S d S )Nliteralsr=   )r   r   r  r   s    r   r  zLexerReflect.get_literalsf  s8    
z266} 	DMMM	 	r   c                 .   	 | j         D ]Y}t          |t                    rt          |          dk    r/| j                            dt          |                     d| _        Zd S # t          $ r% | j                            d           d| _        Y d S w xY w)Nr>   z.Invalid literal %s. Must be a single characterTzIInvalid literals specification. literals must be a sequence of characters)r  ri   r   r   r
  r.   rs   	TypeError)r	   r[   s     r   r  zLexerReflect.validate_literalsl  s    	] & &!![11 &SVVaZ &HNN#SUYZ[U\U\]]]!%DJ& &
  	 	 	HNNfgggDJJJJ	s   A!A% %+BBc                 
   | j                             dd           | _        | j        rXt          | j        t          t
          f          s#| j                            d           d| _        d S | j        D ]}t          |t                    rt          |          dk    r0| j                            dt          |                     d| _        [|\  }}t          |t                    s0| j                            dt          |                     d| _        |dk    s)|dk    s#| j                            d	|           d| _        || j        v r$| j                            d
|           d| _        || j        |<   d S d S )Nr   z)states must be defined as a tuple or listTr   zMInvalid state specifier %s. Must be a tuple (statename,'exclusive|inclusive')zState name %s must be a stringr  	exclusivez:State type for state %s must be 'inclusive' or 'exclusive'zState '%s' already defined)r   r   r   ri   ru   r  r
  r.   r   rs   r   r  )r	   r   r4   	statetypes       r   r  zLexerReflect.get_statesw  s   jnnXt44; 	5dkE4=99 5JKKK!


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

 $$&& 	? 	?AFF==F>>>> ##%% 	: 	:AFF**DF9999	: 	:r   c           
      h	   | j         D ]}| j        |         D ]\  }}|j        j        }|j        j        }t          j        |          }| j                            |           | j	        |         }t          |t          j                  rd}nd}|j        j        }	|	|k    r*| j                            d|||j                   d| _        |	|k     r*| j                            d|||j                   d| _        t#          |          s+| j                            d|||j                   d| _        	 t%          j        d|dt#          |          d	| j                  }
|
                    d
          r)| j                            d|||j                   d| _        # t$          j        $ rh}| j                            d|||j        |           dt#          |          v r"| j                            d|||j                   d| _        Y d }~d }~ww xY w| j        |         D ]9\  }}| j	        |         }|dk    r#| j                            d|           d| _        <|| j        vr=|                    d          dk     r$| j                            d||           d| _        	 t%          j        d|d|d	| j                  }
|
                    d
          r"| j                            d|           d| _        # t$          j        $ rM}| j                            d||           d|v r| j                            d|           d| _        Y d }~3d }~ww xY w| j        |         s/| j        |         s"| j                            d|           d| _        | j                            |d           }|r|}|j        j        }|j        j        }t          j        |          }| j                            |           t          |t          j                  rd}nd}|j        j        }	|	|k    r)| j                            d|||j                   d| _        |	|k     r)| j                            d|||j                   d| _        | j        D ]}|                     |           d S )Nr   r>   z'%s:%d: Rule '%s' has too many argumentsTz%%s:%d: Rule '%s' requires an argumentz2%s:%d: No regular expression defined for rule '%s'(?P<>)r=   z<%s:%d: Regular expression for rule '%s' matches empty stringz3%s:%d: Invalid regular expression for rule '%s'. %s#z6%s:%d. Make sure '#' in rule '%s' is escaped with '\#'r.   r)  r   r   z-Rule '%s' defined for an unspecified token %sz5Regular expression for rule '%s' matches empty stringz,Invalid regular expression for rule '%s'. %sz/Make sure '#' in rule '%s' is escaped with '\#'zNo rules defined for state '%s')r  r1  r   r   r   inspect	getmoduler   addr   ri   rj   r   co_argcountr
  r.   r   r   r   r   r   r   r2  r  r   r3  r   validate_module)r	   r   fnamer"   r9  r:  moduler8  reqargsnargsr[   er4   refuncs                  r   r  zLexerReflect.validate_rules  s   ^ Y	& Y	&E !L/ $& $&qz0z- *1--  (((-.a!122  GGG
.7? HNN#LdTXZ[Zdeee!%DJ7? HNN#JDRVXYXbccc!%DJ!!}} HNN#WY]_cefeoppp!%DJ	&

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

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

                    d          }|r!t          |t                    rd	|vr|d	z   |z   }t          |
|	|
          }|                                 |s#|                                rt!          d          |r;|r9	 |                    ||
           |j        a|j        a|a|S # t*          $ r Y nw xY w|rQ|                    d|j                   |                    d|j                   |                    d|j                   t5                      |_        |j        D ]}|j                            |           t          |j        t:          t<          f          r@ t?          |j        d                                                    |j                  |_!        n|j        |_!        |j        t5          |j!                  z  |_"        |j        }i }|D ]}g }|j#        |         D ]U\  }}|$                    d|dtK          |          d           |r%|                    d|tK          |          |           V|j&        |         D ];\  }}|$                    d|d|d           |r|                    d|||           <|||<   |r|                    d           |D ]p}tO          ||         ||
|j(                  \  }}}||j)        |<   ||j*        |<   ||j+        |<   |r-tY          |          D ]\  }}|                    d|||           q|-                                D ]\  }}|dk    r|dk    r|j)        |         .                    |j)        d                    |j*        |         .                    |j*        d                    |j+        |         .                    |j+        d                    ||_/        |j)        d         |_0        |j*        d         |_1        ||_2        |j3        |_4        |j4        
                    dd          |_5        |j6        |_7        |j6        
                    dd           |_8        |j8        s|	9                    d           |j:        |_;        |j:        
                    dd           |_<        |-                                D ]\  }}|dk    rF||j6        vr|	9                    d|           ||j3        vr|j5        r|	9                    d|           Q|dk    rX||j6        vr#|j6        
                    dd           |j6        |<   ||j3        vr#|j3        
                    dd          |j3        |<   |j        a|j        a|a|r|r|t          |tz          j>                  r|j        }nrd	|vr	|
d         }ne|?                    d	          } d	                     | d d                   }!t          d|!z             t          t          j        |!         dd          }t          jC        D                    |          }	 |E                    ||           |t          j        v rt          j        |= n2# t          $ r%}"|	9                    d|d|"           Y d }"~"nd }"~"ww xY w|S )Nrz   r<   r  c                 4    g | ]}|t          |          fS r   )rY   )r%  krF  s     r   r&  zlex.<locals>.<listcomp>y  s(    ???a1gfa(()???r   __file__r   r   __package__rf   )r
  r   zCan't build lexerzlex: tokens   = %rzlex: literals = %rzlex: states   = %rr   r<  r=  r>  z(lex: Adding rule %s -> '%s' (state '%s')z#lex: ==== MASTER REGEXS FOLLOW ====z"lex: state '%s' : regex[%d] = '%s'r=   zNo t_error rule is definedr   z1No error rule is defined for exclusive state '%s'z2No ignore rule is defined for exclusive state '%s'rg   r   zCouldn't write lextab module z. )Gr:   rS   r    r   r	  dirdictr   rX  r   r   ri   r   r  r  r  SyntaxErrorr   r   r   r   r   r/   r  r  r  r   rO   rB  r  ru   r   rp   rQ   r   r1  rX   r   r2  r   r   rA   rB   rC   r   rW   extendrF   r?   r@   rJ   r'  rG   rP   r3  rH   rM   r,   r4  rI   rN   rj   rk   rm   r   rY   rn   ro   dirnamer   rl   )#rF  rZ   r0   optimizerz   r   nowarnr{   debuglogerrorlogr   r  lexobj_itemspkglinfor   regexsr   
regex_listrE  r"   r4   rJ  r?   re_textre_namesr   r   styper   srcfiler   pkgnamerI  s#   `                                  r   lexrn  ^  sT      E[)IWWF!F  )SZ(( - 	- ,,H    *????3v;;???VU" 	J #E,,? @ IE*&q)) ))M
"
"C
 (z&#&& (f 	(3Y'F Hg>>>E	MMOOO 3 	31222 	F 		NN65)))LELEEM 	 	 	D	  =*EL999*EN;;;*EO<<< uuF\    Q %.4-00 ,4T%."34466;;ENKK"^!+c&2D.E.EEF IF # #
 e, 	g 	gHE1eeeZ]]]]CDDD gH%Q[\]Q^Q^`efff |E* 	Z 	ZGD!dddAAA6777 ZH$PQSXYYY"u  =;<<< T T#26%='5RWR`#a#a w#(% '.e$(0u% 	T$W-- T T4BE1dSSSS ")) T TuI 	T%;"6 	Te$++F,=i,HIII!%(//0Ei0PQQQ"5)001G	1RSSS#F$Y/FL,Y7FF "LF,00B??F "LF|''	488F 75666  *FZ^^It44FN OO%% 
B 
B5K 		B$ Y  !TVWXXX$ Z)9 Z  !UWXYYYk! 	B$ D"',"2"29d"C"CQ$ B"',"2"29b"A"AQ LELEE  R( R 	1
 &%"233 	L /f$ L#J/GG"LL--E!hhuSbSz22Gw.///%ck'&:JKKG00I	ROOFI...$ (K' 	R 	R 	RfffaaPQQQQQQQQ	R Ms*   'E- -
E:9E:)1\ 
]
%]]
c                 $   |s	 t           j        d         }t          |          }|                                }|                                 nM# t
          $ r@ t           j                            d           t           j                                        }Y nw xY w| r| j	        }nt          } ||           | r| j
        }nt          }	  |            }|sd S t           j                            d|j        |j        |j        |j        fz             I)Nr>   z/Reading from standard input (type EOF to end):
Tz(%s,%r,%d,%d)
)r   argvrq   readclose
IndexErrorstdoutr&   stdinr   r   r   r   r   r   )r   datar}   r"   _input_tokenr   s          r   runmainry    s    $	$x{HXA6688DGGIIII 	$ 	$ 	$JOPPP9>>##DDD	$  
F4LLL \fhh 	E
*ch	3:sz-ZZ[[[	\s   A	A ABBc                       fd}|S )Nc                 `    t          d          rt                    | _        n| _        | S )Nr8   )r5  r   r   )r"   rJ  s    r   	set_regexzTOKEN.<locals>.set_regexA  s0    1j!! 	 mmAGGAGr   r   )rJ  r|  s   ` r   TOKENr}  @  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   ry   r   r   r  r  rw   VERBOSErn  ry  r}  Tokenr   r   r   <module>r     sq  D  				 



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