Viewing File: /opt/alt/python38/lib/python3.8/site-packages/ply/__pycache__/lex.cpython-38.pyc

U

V
@s"dZdZddlZddlZddlZddlZddlZddlZzejej	fZ
Wnek
rdee
fZ
YnXedZGdddeZGdddeZGdd	d	eZGd
ddeZGdd
d
ZddZddZddZddZddZddZGdddeZd$ddZd%d d!Zd"d#Z e Z!dS)&z3.8Nz^[a-zA-Z0-9_]+$c@seZdZddZdS)LexErrorcCs|f|_||_dSN)argstext)selfmessagesr	/lex.py__init__:szLexError.__init__N)__name__
__module____qualname__rr	r	r	r
r9src@seZdZddZddZdS)LexTokencCsd|j|j|j|jfS)NzLexToken(%s,%r,%d,%d))typevaluelinenolexposrr	r	r
__str__AszLexToken.__str__cCst|Sr)strrr	r	r
__repr__DszLexToken.__repr__N)rr
rrrr	r	r	r
r@src@s4eZdZddZddZddZddZeZeZd	S)
	PlyLoggercCs
||_dSrf)rrr	r	r
rLszPlyLogger.__init__cOs|j||ddS)N
rwritermsgrkwargsr	r	r
criticalOszPlyLogger.criticalcOs|jd||ddS)Nz	WARNING: rrrr	r	r
warningRszPlyLogger.warningcOs|jd||ddS)NzERROR: rrrr	r	r
errorUszPlyLogger.errorN)	rr
rrr!r"r#infodebugr	r	r	r
rKsrc@seZdZddZddZdS)
NullLoggercCs|Srr	)rnamer	r	r
__getattribute__^szNullLogger.__getattribute__cOs|Srr	)rrr r	r	r
__call__aszNullLogger.__call__N)rr
rr(r)r	r	r	r
r&]sr&c@s|eZdZddZdddZdddZd	d
ZddZd
dZddZ	ddZ
ddZddZddZ
ddZddZeZdS)LexercCsd|_d|_i|_i|_i|_d|_g|_d|_i|_i|_	i|_
d|_d|_d|_
d|_d|_d|_d|_d|_d|_d|_d|_d|_dS)NINITIALrF)lexre	lexretext
lexstaterelexstateretextlexstaterenameslexstate
lexstatestacklexstateinfolexstateignorelexstateerrorflexstateeoff
lexreflagslexdatarlexlen	lexerrorflexeoff	lextokens	lexignorelexliterals	lexmodulerlexoptimizerr	r	r
rts.zLexer.__init__Nc	Cst|}|ri}|jD]t\}}g}|D]L\}}g}	|D]:}
|
rL|
dsX|	|
q<|	t||
dj|
dfq<q,|||	f|||<q||_i|_|jD]\}}t||j|j|<q||_|SNrr-)copyr0itemsappendgetattrrr7rA)robjectcZnewtabkeyZritemZnewreZcreZfindexZ	newfindexrefr	r	r
clones(

"
zLexer.cloner,c	Cst|tjrtd|dd}tj||d}t|d}|	d|t
f|	dtt|	dt|j
|	d	t|j|	d
t|j|	dt|ji}|jD]P\}}g}	t||j||j|D]"\\}
}}}
|	|t||
fq|	||<q|	dt||	d
t|ji}|jD]\}}|r^|jnd||<qJ|	dt|i}|jD]\}}|r|jnd||<q|	dt|W5QRXdS)Nz&Won't overwrite existing lextab module.z.pywzJ# %s.py. This file automatically created by PLY (version %s). Don't edit!
z_tabversion   = %s
z_lextokens    = %s
z_lexreflags   = %s
z_lexliterals  = %s
z_lexstateinfo = %s
z_lexstatere   = %s
z_lexstateignore = %s
z_lexstateerrorf = %s
z_lexstateeoff = %s
)
isinstancetypes
ModuleTypeIOErrorsplitospathjoinopenr__version__repr__tabversion__r>r9r@r5r0rEzipr1r2rF_funcs_to_namesr6r7rr8)rlextab	outputdirZ
basetabmodulefilenameZtfZtabre	statenamelretitempatfuncZretextrenamesZtaberrrKZtabeofr	r	r
writetabs6&
zLexer.writetabc	CsHt|tjr|}ntd|tj|}t|ddtkr@td|j	|_
|j|_|j
|_|j
t|jB|_|j|_|j|_i|_i|_|jD]V\}}g}g}|D],\}}	|t||jtjBt|	|fq||j|<||j|<qi|_|jD]\}}
||
|j|<qi|_ |j!D]\}}
||
|j |<q |"ddS)N	import %sZ_tabversionz0.0zInconsistent PLY versionr+)#rPrQrRexecsysmodulesrGr[ImportErrorZ
_lextokensr>Z_lexreflagsr9Z_lexliteralsr@set
lextokens_allZ
_lexstateinfor5Z_lexstateignorer6r0r1Z_lexstatererErFrecompileVERBOSE_names_to_funcsr7Z_lexstateerrorfr8Z
_lexstateeoffbegin)rZtabfilefdictr^rarbrcZtxtitemrdZ	func_namerKr	r	r
readtabs8
&
z
Lexer.readtabcCs8|dd}t|tstd||_d|_t||_dS)Nr-zExpected a stringr)rPStringTypes
ValueErrorr:rlenr;)rrrIr	r	r
inputs
zLexer.inputcCsd||jkrtd|j||_|j||_|j|d|_|j|d|_	|j
|d|_||_dS)NzUndefined stater,)
r0rwr.r1r/r6getr?r7r<r8r=r3rstater	r	r
rss
zLexer.begincCs|j|j||dSr)r4rFr3rsr{r	r	r

push_stateszLexer.push_statecCs||jdSr)rsr4poprr	r	r
	pop_stateszLexer.pop_statecCs|jSr)r3rr	r	r

current_state!szLexer.current_statecCs|j|7_dSr)r)rnr	r	r
skip'sz
Lexer.skipcCs~|j}|j}|j}|j}||kr|||kr8|d7}q|jD]\}}|||}|sXq>t}||_|j	|_	||_|j
}	||	\}
|_|
s|jr||_|S|}q|}||_
||_||_|
|}|s|j}|j}q|js(|j|jkr(td|
jj|
jj|
j|jf||d|S|||jkrtt}|||_|j	|_	|j|_||_|d|_|S|jrt}|j|d|_|j	|_	d|_||_
||_||_||}||jkrtd||||d|j}|sq|S||_td|||f||dq|jr\t}d|_d|_|j	|_	||_||_
||_||}|S|d|_|jdkrztddS)	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 %deofr,z"No input string given with input())rr;r?r:r.matchrgrouprr	lastindexrendlexerZlexmatchrBrnr__code__co_filenameco_firstlinenorr@r<r=RuntimeError)rrr;r?r:r.lexindexfuncmtokireZnewtokr	r	r
token1s






 

zLexer.tokencCs|Srr	rr	r	r
__iter__szLexer.__iter__cCs|}|dkrt|Sr)r
StopIteration)rtr	r	r
nextsz
Lexer.next)N)r,)rr
rrrLrgruryrsr}rrrrrr__next__r	r	r	r
r*ss

%(

nr*cCst|d|jS)Nregex)rG__doc__)rer	r	r

_get_regexsrcCs0t|}|j}|j|jkr,||j|Sr)rj	_getframe	f_globalsrDf_localsupdate)Zlevelsrldictr	r	r
get_caller_module_dicts


rcCsFg}t||D]2\}}|r6|dr6|||dfq||q|SrC)r\rF)Zfunclistnamelistresultrr'r	r	r
r]sr]cCsDg}|D]6}|r4|dr4|||d|dfq||q|SrC)rF)rrtrrr	r	r
rrsrrcCsl|sgSd|}zt|tj|B}dgt|jd}|dd}|jD]z\}}	||d}
t	|
t
jt
jfkr|
||f||	<|||	<qT|
dk	rT|||	<|
ddkrd||	<qTd||f||	<qT||fg|g|gfWStk
rftt|d}|dkrd}t|d||||\}}
}t||d|||\}}}|||
|||fYSXdS)N|r-ignore_r)NN)rWrorprqmax
groupindexvaluesrErzrrQFunctionType
MethodTypefind	Exceptionintrx_form_master_re)Zrelistreflagsrtoknamesrr.rZ
lexindexnamesrrZhandlerZllistrbZlnamesZrlistZrreZrnamesr	r	r
rs2



rcCsd}|d}t|dddD]\}}||kr |dkr q>q |dkrXt|d|}nd}d|krlt|}d||d}||fS)Nr-_ANY)r+)rT	enumeratetuplerW)rnamesZnonstatepartsrpartstatesZ	tokennamer	r	r
_statetokens
rc@sfeZdZdddZddZddZd	d
ZddZd
dZddZ	ddZ
ddZddZddZ
dS)LexerReflectNrcCsL||_d|_g|_||_ddi|_t|_d|_|dkrBtt	j
n||_dS)Nr+	inclusiveF)rZ
error_functokensr	stateinformrkr#rrjstderrlog)rrrrr	r	r
r/s
zLexerReflect.__init__cCs$||||dSr)
get_tokensget_literals
get_states	get_rulesrr	r	r
get_all:szLexerReflect.get_allcCs||||jSr)validate_tokensvalidate_literalsvalidate_rulesr#rr	r	r
validate_allAszLexerReflect.validate_allcCsp|jdd}|s(|jdd|_dSt|ttfsL|jdd|_dS|sf|jdd|_dS||_dS)NrzNo token list is definedTztokens must be a list or tupleztokens is empty)rrzrr#rPlistrr)rrr	r	r
rHszLexerReflect.get_tokenscCsPi}|jD]@}t|s,|jd|d|_||krB|jd|d||<q
dS)NzBad token name '%s'TzToken '%s' multiply definedr-)r_is_identifierrrr#r")rZ	terminalsrr	r	r
r\s

zLexerReflect.validate_tokenscCs |jdd|_|jsd|_dS)Nliteralsr,)rrzrrr	r	r
rgszLexerReflect.get_literalscCsjz>|jD]2}t|tr"t|dkr|jdt|d|_qWn&tk
rd|jdd|_YnXdS)Nr-z.Invalid literal %s. Must be a single characterTzIInvalid literals specification. literals must be a sequence of characters)rrPrvrxrr#rZ	TypeError)rrIr	r	r
rms
zLexerReflect.validate_literalscCs|jdd|_|jrt|jttfs:|jdd|_n|jD]}t|trZt|dkrt|jdt	|d|_q@|\}}t|t
s|jdt	|d|_q@|dks|dks|jd	|d|_q@||jkr|jd
|d|_q@||j|<q@dS)Nrz)states must be defined as a tuple or listTrzMInvalid state specifier %s. Must be a tuple (statename,'exclusive|inclusive')zState name %s must be a stringr	exclusivez:State type for state %s must be 'inclusive' or 'exclusive'zState '%s' already defined)rrzrrPrrrr#rxrZrvr)rrr'Z	statetyper	r	r
rxs0


zLexerReflect.get_statesc	Cs,dd|jD}i|_i|_i|_i|_i|_i|_|jD]}g|j|<g|j|<q:t|dkrv|j	
dd|_
dS|D]d}|j|}t||j\}}||j|<t|drD|dkr|D]}||j|<qnt|dkr|D]}||j|<qnV|d	kr"|j
j}|j
j}|j	
d
|||jd|_
n |D]}|j|||fq&qzt|tr|d	kr|D]}||j|<q^d|kr|j	d|n@|dkr|j	
d
|d|_
n |D]}|j|||fqqz|j	
d|d|_
qz|jD]}|jdddq|jD]}|jddddqdS)NcSs g|]}|dddkr|qS)NrZt_r	).0rr	r	r

<listcomp>sz*LexerReflect.get_rules.<locals>.<listcomp>rz+No rules of the form t_rulename are definedTr)r#rignorez,%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 stringcSs|djjSNr-)rrxr	r	r
<lambda>z(LexerReflect.get_rules.<locals>.<lambda>)rJcSst|dSr)rxrr	r	r
rr)rJreverse)rrfuncsymstrsymrerrorfeoffrrxrr#rhasattrrrrrrFrPrvr"rsort)	rZtsymbolsrrrrtoknamelinefiler	r	r
rsb








zLexerReflect.get_rulescCs|jD]b}|j|D]r\}}|jj}|jj}t|}|j||j	|}t
|tjrbd}nd}|jj
}	|	|kr|jd|||jd|_q|	|kr|jd|||jd|_qt|s|jd|||jd|_qzJtd|t|ftj|jB}
|
dr"|jd	|||jd|_Wqtjk
r}zB|jd
|||j|dt|krr|jd|||jd|_W5d}~XYqXq|j|D]\}}
|j	|}|d
kr|jd|d|_q||jkr|ddkr|jd||d|_qz@td||
ftj|jB}
|
dr@|jd|d|_WnTtjk
r}z2|jd||d|
kr|jd|d|_W5d}~XYnXq|j|s|j|s|jd|d|_|j|d}|r|}|jj}|jj}t|}|j|t
|tjrd}nd}|jj
}	|	|krH|jd|||jd|_|	|kr|jd|||jd|_q|jD]}||qrdS)Nrr-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<%s>%s)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#rrrz-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 '\#'zNo rules defined for state '%s')rrrrrinspectZ	getmodulerkaddrrPrQrco_argcountrr#rrrorprqrrrrrrrzvalidate_module)rr|fnamerrrmodulerZreqargsnargsrIer'rZefuncr	r	r
rs

 







zLexerReflect.validate_rulescCst|\}}td}td}i}|d7}|D]n}||}|sN||}|r|d}	||	}
|
st|||	<n$t|}|j	d|||	|
d|_	|d7}q2dS)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)
rZgetsourcelinesrorprrrzZ
getsourcefilerr#)rrlinesZlinenZfreZsreZ	counthashrrr'prevr`r	r	r
r@s$







zLexerReflect.validate_module)Nr)rr
rrrrrrrrrrrrr	r	r	r
r.s
BgrFr^c
%
sr|dkrd}d}
ddi}t}||_|	dkr6ttj}	|rL|dkrLttj}|rT|rfddtD}
t|
}
d|
krtj|
dj|
d<nt	d}
|

d	}|rt|trd
|kr|d
|}t
|
|	|d}||s|rtd|r8|r8z"|||
|ja|ja|a|WStk
r6YnX|rh|d
|j|d|j|d|jt|_|jD]}|j|qvt|jttfrt|jd |j|_!n|j|_!|jt|j!B|_"|j}i}|D]}g}|j#|D]J\}}|j$j%}|j$j&}|'d|t(|f|r|d|t(||q|j)|D]2\}}|'d||f|rH|d|||qH|||<q|r|d|D]h}t*||||
|j+\}}}||j,|<||j-|<||j.|<|rt/|D]\}}|d|||qq|0D]`\}}|dkr|dkr|j,|1|j,d|j-|1|j-d|j.|1|j.dq||_2|j,d|_3|j-d|_4||_5|j6|_7|j7
dd|_8|j9|_:|j9
dd|_;|j;s|	<d|j=|_>|j=
dd|_?|0D]\} }|dkrB| |j9kr |	<d| | |j6kr|j8r|	<d| nJ|dkr| |j9krl|j9
dd|j9| <| |j6kr|j6
dd|j6| <q|ja|ja|a|rn|rn|dkr&t|t@jAr|j}!nNd
|kr|
d}!n:|Bd
}"d
 |"dd}#tCd|#tDtj|#dd}!tEjFG|!}z|H||Wn6tIk
rl}$z|	<d||$fW5d}$~$XYnX|S)Nr^r+rcsg|]}|t|fqSr	)rG)rkrr	r
rwszlex.<locals>.<listcomp>__file__r
r__package__rM)rrzCan't build lexerzlex: tokens   = %rzlex: literals = %rzlex: states   = %rrrz(lex: Adding rule %s -> '%s' (state '%s')z#lex: ==== MASTER REGEXS FOLLOW ====z"lex: state '%s' : regex[%d] = '%s'r,zNo t_error rule is definedrz1No error rule is defined for exclusive state '%s'z2No ignore rule is defined for exclusive state '%s'rNrhz#Couldn't write lextab module %r. %s)Jr*rBrrjrdirdictrkrrrzrPrrrrSyntaxErrorrurryrrlr$rrrrmr>rrrrrWr@rnrrrrrFrrrrr0r1r2rrEextendr5r.r/r9rr6r?rr7r<r"rr8r=rQrRrTrirGrUrVdirnamergrS)%rrHr%optimizer^rZnowarnr_ZdebuglogZerrorlogrrZlexobjZ_itemsZpkgZlinforZregexsr|Z
regex_listrrrrr'rr.Zre_textZre_namesrrstyperZsrcfilerZpkgnamerr	rr
lex\s














$rcCs|sVz&tjd}t|}|}|Wn*tk
rTtjdtj}YnX|rb|j	}nt	}|||rz|j
}nt
}|}|sqtjd|j|j|j
|jfq~dS)Nr-z/Reading from standard input (type EOF to end):
z(%s,%r,%d,%d)
)rjargvrXreadclose
IndexErrorstdoutrstdinryrrrrr)rdatar`rZ_inputZ_tokenrr	r	r
runmains(
rcsfdd}|S)Ncs tdrt|_n|_|S)Nr))rrrrrr	r
	set_regex?s
zTOKEN.<locals>.set_regexr	)rrr	rr
TOKEN>sr)
NNFFr^rFNNN)NN)"rYr[rorjrQrDrUrZ
StringTypeZUnicodeTypervAttributeErrorrbytesrprrrrHrrr&r*rrr]rrrrrrrrTokenr	r	r	r
<module>"sN
F

(0
A
"
Back to Directory File Manager