Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
pycparser / ply / __pycache__ / lex.cpython-35.pyc
Size: Mime:


ßQâX¦§ã@s¾dZdZddlZddlZddlZddlZddlZddlZyejej	fZ
Wnek
rŠee
fZ
YnXejdƒZGdd„deƒZGdd„deƒZGdd	„d	eƒZGd
d„deƒZGdd
„d
ƒZdd„Zdd„Zdd„Zdd„Zdd„Zdd„ZGdd„deƒZdddddeejƒdddddd„
Z ddd d!„Z!d"d#„Z"e"Z#dS)$z3.10éNz^[a-zA-Z0-9_]+$c@seZdZdd„ZdS)ÚLexErrorcCs|f|_||_dS)N)ÚargsÚtext)ÚselfÚmessageÚs©rú../pycparser/ply/lex.pyÚ__init__:szLexError.__init__N)Ú__name__Ú
__module__Ú__qualname__r
rrrr	r9src@s(eZdZdd„Zdd„ZdS)ÚLexTokencCs d|j|j|j|jfS)NzLexToken(%s,%r,%d,%d))ÚtypeÚvalueÚlinenoÚlexpos)rrrr	Ú__str__AszLexToken.__str__cCs
t|ƒS)N)Ústr)rrrr	Ú__repr__DszLexToken.__repr__N)rrr
rrrrrr	r@src@sLeZdZdd„Zdd„Zdd„Zdd„ZeZeZd	S)
Ú	PlyLoggercCs
||_dS)N)Úf)rrrrr	r
LszPlyLogger.__init__cOs|jj||dƒdS)NÚ
)rÚwrite)rÚmsgrÚkwargsrrr	ÚcriticalOszPlyLogger.criticalcOs |jjd||dƒdS)Nz	WARNING: r)rr)rrrrrrr	ÚwarningRszPlyLogger.warningcOs |jjd||dƒdS)NzERROR: r)rr)rrrrrrr	ÚerrorUszPlyLogger.errorN)	rrr
r
rrrÚinfoÚdebugrrrr	rKsrc@s(eZdZdd„Zdd„ZdS)Ú
NullLoggercCs|S)Nr)rÚnamerrr	Ú__getattribute__^szNullLogger.__getattribute__cOs|S)Nr)rrrrrr	Ú__call__aszNullLogger.__call__N)rrr
r#r$rrrr	r!]sr!c@s¸eZdZdd„Zddd„Zddd„Zd	d
„Zdd„Zd
d„Zdd„Z	dd„Z
dd„Zdd„Zdd„Z
dd„Zdd„ZeZdS)ÚLexercCsÓd|_d|_i|_i|_i|_d|_g|_d|_i|_i|_	i|_
d|_d|_d|_
d|_d|_d|_d|_d|_d|_d|_d|_d|_dS)NÚINITIALrÚéF)ÚlexreÚ	lexretextÚ
lexstatereÚlexstateretextÚlexstaterenamesÚlexstateÚ
lexstatestackÚlexstateinfoÚlexstateignoreÚlexstateerrorfÚlexstateeoffÚ
lexreflagsÚlexdatarÚlexlenÚ	lexerrorfÚlexeoffÚ	lextokensÚ	lexignoreÚlexliteralsÚ	lexmodulerÚlexoptimize)rrrr	r
ts.																						zLexer.__init__NcCs-tj|ƒ}|r)i}x·|jjƒD]¦\}}g}xt|D]l\}}g}	xW|D]O}
|
su|
dr…|	j|
ƒq]|	jt||
djƒ|
dfƒq]WqDW|j||	fƒ|||<q+W||_i|_x6|jjƒD]%\}}t||jƒ|j|<q÷W||_|S)Nrr()Úcopyr+ÚitemsÚappendÚgetattrrr2r<)rÚobjectÚcZnewtabÚkeyZritemZnewreZcreZfindexZ	newfindexrÚefrrr	Úclones(

/			zLexer.cloner'cCslt|tjƒrtdƒ‚|jdƒd}tjj||ƒd}t|dƒ}|j	d|t
fƒ|j	dttƒƒ|j	dtt
|jƒƒƒ|j	d	t|jƒƒ|j	d
t|jƒƒ|j	dt|jƒƒi}xƒ|jjƒD]r\}}g}	xSt||j||j|ƒD]1\\}
}}}
|	j|t||
ƒfƒqAW|	||<qW|j	dt|ƒƒ|j	d
t|jƒƒi}x6|jjƒD]%\}}|ræ|jnd||<qËW|j	dt|ƒƒi}x6|jjƒD]%\}}|r<|jnd||<q!W|j	dt|ƒƒWdQRXdS)Nz&Won't overwrite existing lextab moduleÚ.r(z.pyÚwzJ# %s.py. This file automatically created by PLY (version %s). 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__Útupler9r4r;r0r+r?Úzipr,r-r@Ú_funcs_to_namesr1r2rr3)rÚlextabÚ	outputdirZ
basetabmoduleÚfilenameZtfZtabreÚ	statenameÚlreÚtitemÚpatÚfuncZretextÚrenamesZtaberrrEZtabeofrrr	Úwritetab®s6 6 zLexer.writetabcCsÎt|tjƒr|}ntd|ƒtj|}t|ddƒtkrZtdƒ‚|j	|_
|j|_|j
|_|j
t|jƒB|_|j|_|j|_i|_i|_x…|jjƒD]t\}}g}g}x?|D]7\}}	|jtj||jƒt|	|ƒfƒqðW||j|<||j|<qÑWi|_x.|jjƒD]\}}
||
|j|<qbWi|_x.|j jƒD]\}}
||
|j|<qœW|j!dƒdS)Nz	import %sÚ_tabversionz0.0zInconsistent PLY versionr&)"rJrKrLÚexecÚsysÚmodulesrArUÚImportErrorZ
_lextokensr9Z_lexreflagsr4Z_lexliteralsr;ÚsetÚ
lextokens_allZ
_lexstateinfor0Z_lexstateignorer1r+r,Z_lexstaterer?r@ÚreÚcompileÚ_names_to_funcsr2Z_lexstateerrorfr3Z
_lexstateeoffÚbegin)rZtabfileÚfdictrYr\r]r^Ztxtitemr_Z	func_namerErrr	ÚreadtabÓs8	
		/
		z
Lexer.readtabcCsP|dd…}t|tƒs+tdƒ‚||_d|_t|ƒ|_dS)Nr(zExpected a stringr)rJÚStringTypesÚ
ValueErrorr5rÚlenr6)rrrCrrr	Úinputûs		zLexer.inputcCs||jkrtdƒ‚|j||_|j||_|jj|dƒ|_|jj|dƒ|_	|j
j|dƒ|_||_dS)NzUndefined stater')
r+rqr)r,r*r1Úgetr:r2r7r3r8r.)rÚstaterrr	rmszLexer.begincCs$|jj|jƒ|j|ƒdS)N)r/r@r.rm)rrurrr	Ú
push_stateszLexer.push_statecCs|j|jjƒƒdS)N)rmr/Úpop)rrrr	Ú	pop_stateszLexer.pop_statecCs|jS)N)r.)rrrr	Ú
current_state!szLexer.current_statecCs|j|7_dS)N)r)rÚnrrr	Úskip'sz
Lexer.skipcCsf|j}|j}|j}|j}xµ||krÛ|||krP|d7}q'x…|jD]B\}}|j||ƒ}|sqZtƒ}|jƒ|_|j	|_	||_|j
}	||	\}
|_|
sù|jrì|jƒ|_|S|jƒ}P|jƒ}||_
||_||_|
|ƒ}|sE|j}|j}P|js›|j|jkr›td|
jj|
jj|
j|jf||d…ƒ‚|SW|||jkrûtƒ}|||_|j	|_	|j|_||_|d|_|S|jr¨tƒ}|j|d…|_|j	|_	d|_||_
||_||_|j|ƒ}||jkr’td||||d…ƒ‚|j}|s¤q'|S||_td|||f||d…ƒ‚q'W|jr:tƒ}d|_d|_|j	|_	||_||_
||_|j|ƒ}|S|d|_|jdkrbtdƒ‚dS)	Nr(z4%s:%d: Rule '%s' returned an unknown token type '%s'rz&Scanning error. Illegal character '%s'z"Illegal character '%s' at index %dÚeofr'z"No input string given with input())rr6r:r5r)ÚmatchrÚgrouprrÚ	lastindexrÚendÚlexerZlexmatchr=rirÚ__code__Úco_filenameÚco_firstlinenorr;r7r8ÚRuntimeError)rrr6r:r5r)ÚlexindexfuncÚmÚtokÚir`Znewtokrrr	Útoken1sœ				
										#	
	
						!		+							
zLexer.tokencCs|S)Nr)rrrr	Ú__iter__ŸszLexer.__iter__cCs"|jƒ}|dkrt‚|S)N)rŠÚ
StopIteration)rÚtrrr	Únext¢sz
Lexer.next)rrr
r
rFrbrorsrmrvrxryr{rŠr‹rŽÚ__next__rrrr	r%ss%(

nr%cCst|d|jƒS)NÚregex)rAÚ__doc__)r`rrr	Ú
_get_regex·sr’cCsDtj|ƒ}|jjƒ}|j|jkr@|j|jƒ|S)N)reÚ	_getframeÚ	f_globalsr>Úf_localsÚupdate)ÚlevelsrÚldictrrr	Úget_caller_module_dictÁs
r™cCsag}xTt||ƒD]C\}}|rL|drL|j||dfƒq|j|ƒqW|S)Nrr()rWr@)ZfunclistÚnamelistÚresultrr"rrr	rXÎsrXcCsZg}xM|D]E}|rE|drE|j||d|dfƒq
|j|ƒq
W|S)Nrr()r@)ršrnr›rzrrr	rlÝs
"rlcCsâ|s
gSdj|ƒ}ytj||ƒ}dgt|jjƒƒd}|dd…}xº|jjƒD]©\}}	|j|dƒ}
t|
ƒt	j
t	jfkrË|
||f||	<|||	<qn|
dk	rn|||	<|jdƒdkrd||	<qnd||f||	<qnW||fg|g|gfSWn£t
k
rÝtt|ƒdƒ}|dkrpd}t|d|…|||ƒ\}}
}t||d…|||ƒ\}}}|||
|||fSYnXdS)Nú|r(Úignore_ré)NN)rQrjrkÚmaxÚ
groupindexÚvaluesr?rtrrKÚFunctionTypeÚ
MethodTypeÚfindÚ	ExceptionÚintrrÚ_form_master_re)ZrelistÚreflagsr˜Útoknamesrr)r†Z
lexindexnamesrr‰Zhandler‡Zllistr]ZlnamesZrlistZrreZrnamesrrr	r§ís2 


 
((r§cCs¾d}|jdƒ}x@t|dd…dƒD]%\}}||kr/|dkr/Pq/W|dkr}t|d|…ƒ}nd}d|kr›t|ƒ}dj||d…ƒ}||fS)Nr(Ú_ÚANYr&)zINITIAL)rNÚ	enumeraterVrQ)rÚnamesZnonstateÚpartsr‰ÚpartÚstatesZ	tokennamerrr	Ú_statetokens&r±c@sšeZdZdddd„Zdd„Zdd„Zd	d
„Zdd„Zd
d„Zdd„Z	dd„Z
dd„Zdd„Zdd„Z
dS)ÚLexerReflectNrcCsp||_d|_g|_||_ddi|_tƒ|_d|_|dkrctt	j
ƒn||_dS)Nr&Ú	inclusiveF)r˜Ú
error_funcÚtokensr¨Ú	stateinforhrfrrreÚstderrÚlog)rr˜r¸r¨rrr	r
/s					zLexerReflect.__init__cCs,|jƒ|jƒ|jƒ|jƒdS)N)Ú
get_tokensÚget_literalsÚ
get_statesÚ	get_rules)rrrr	Úget_all:s


zLexerReflect.get_allcCs%|jƒ|jƒ|jƒ|jS)N)Úvalidate_tokensÚvalidate_literalsÚvalidate_rulesr)rrrr	Úvalidate_allAs


zLexerReflect.validate_allcCsš|jjddƒ}|s8|jjdƒd|_dSt|ttfƒsj|jjdƒd|_dS|s|jjdƒd|_dS||_dS)NrµzNo token list is definedTztokens must be a list or tupleztokens is empty)r˜rtr¸rrJÚlistrVrµ)rrµrrr	r¹Hs			zLexerReflect.get_tokenscCsri}xe|jD]Z}tj|ƒsA|jjd|ƒd|_||kr`|jjd|ƒd||<qWdS)NzBad token name '%s'TzToken '%s' multiply definedr()rµÚ_is_identifierr}r¸rr)rÚ	terminalsrzrrr	r¾\s	zLexerReflect.validate_tokenscCs.|jjddƒ|_|js*d|_dS)NÚliteralsr')r˜rtrÅ)rrrr	rºgs	zLexerReflect.get_literalscCsŽy\xU|jD]J}t|tƒs5t|ƒdkr
|jjdt|ƒƒd|_q
WWn+tk
r‰|jjdƒd|_YnXdS)Nr(z.Invalid literal %s. Must be a single characterTzIInvalid literals specification. literals must be a sequence of characters)rÅrJrprrr¸rrTÚ	TypeError)rrCrrr	r¿ms"
zLexerReflect.validate_literalscCsf|jjddƒ|_|jrbt|jttfƒsU|jjdƒd|_n
x
|jD]ÿ}t|tƒs‡t|ƒdkr¬|jjdt	|ƒƒd|_q_|\}}t|t
ƒsì|jjdt	|ƒƒd|_q_|dkp|dks#|jjd	|ƒd|_q_||jkrQ|jjd
|ƒd|_q_||j|<q_WdS)Nr°z)states must be defined as a tuple or listTržzMInvalid 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)r˜rtr°rJrVrÂr¸rrrrTrpr¶)rrr"Z	statetyperrr	r»xs0	"				zLexerReflect.get_statesc	Cs	dd„|jDƒ}i|_i|_i|_i|_i|_i|_x+|jD] }g|j|<g|j|<qVWt|ƒdkr©|j	j
dƒd|_
dSxó|D]ë}|j|}t||jƒ\}}||j|<t|dƒrË|dkr$xÂ|D]}||j|<q
Wq›|dkrQx•|D]}||j|<q7Wq›|d	kr|j
j}|j
j}|j	j
d
|||jƒd|_
q›xû|D] }|j|j||fƒq¤Wq°t|tƒr|d	kr&x|D]}||j|<qíWd|kr||j	jd|ƒq›|dkrQ|j	j
d
|ƒd|_
q›xG|D] }|j|j||fƒqXWq°|j	j
d|ƒd|_
q°Wx-|jjƒD]}|jddd„ƒq¯Wx3|jjƒD]"}|jddd„ddƒqßWdS)NcSs,g|]"}|dd…dkr|‘qS)NržÚt_r)Ú.0rrrr	ú
<listcomp>˜s	z*LexerReflect.get_rules.<locals>.<listcomp>rz+No rules of the form t_rulename are definedTr$rr|Úignorez,%s:%d: Rule '%s' must be defined as a stringú\z#%s contains a literal backslash '\'z'Rule '%s' must be defined as a functionz&%s not defined as a function or stringrDcSs|djjS)Nr()r‚r„)Úxrrr	Ú<lambda>Òsz(LexerReflect.get_rules.<locals>.<lambda>cSst|dƒS)Nr()rr)rÍrrr	rÎÖsÚreverse)r˜r©ÚfuncsymÚstrsymrËÚerrorfÚeoffr¶rrr¸rr±Úhasattrr‚r„rƒrr@rJrprr¡Úsort)	rZtsymbolsrrrr°ÚtoknameÚlineÚfilerrr	r¼—sb						
	





!

!
zLexerReflect.get_rulescCs´xŒ|jD]}x|j|D]÷\}}|jj}|jj}tj|ƒ}|jj|ƒ|j	|}t
|tjƒr‰d}nd}|jj
}	|	|krÏ|jjd|||jƒd|_q|	|kr|jjd|||jƒd|_qt|ƒs7|jjd|||jƒd|_qy]tjd|t|ƒf|jƒ}
|
jdƒr“|jjd	|||jƒd|_Wqtjk
r}z[|jjd
|||j|ƒdt|ƒkrù|jjd|||jƒd|_WYdd}~XqXqWxP|j|D]A\}}
|j	|}|d
krk|jjd|ƒd|_q'||jkr±|jdƒdkr±|jjd||ƒd|_q'yNtjd||
f|jƒ}
|
jdƒrþ|jjd|ƒd|_Wq'tjk
rg}zC|jjd||ƒd|
krL|jjd|ƒd|_WYdd}~Xq'Xq'W|j|r¤|j|r¤|jjd|ƒd|_|jj|dƒ}|r
|}|jj}|jj}tj|ƒ}|jj|ƒt
|tjƒrd}nd}|jj
}	|	|krZ|jjd|||jƒd|_|	|kr
|jjd|||jƒd|_q
Wx|jD]}|j|ƒq™WdS)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'z
(?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 '\#'rz'Rule '%s' must be defined as a functionrrz-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')r¶rÐr‚r„rƒÚinspectÚ	getmodulerfÚaddr©rJrKr£Úco_argcountr¸rrr’rjrkr¨r}rÑrµr¤rÒrtÚvalidate_module)rruÚfnamerr×rØÚmodulerÖÚreqargsÚnargsrCÚer"ÚrZefuncrrr	rÀÙs–
				%
 
	$	
 			
zLexerReflect.validate_rulescCsytj|ƒ\}}Wntk
r1dSYnXtjdƒ}tjdƒ}i}|d7}x§|D]Ÿ}|j|ƒ}|s‘|j|ƒ}|rü|jdƒ}	|j|	ƒ}
|
sÈ|||	<n4tj|ƒ}|j	j
d|||	|
ƒd|_
|d7}qgWdS)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ÚÚgetsourcelinesrMrjrkr}r~rtÚ
getsourcefiler¸r)rràÚlinesÚlinenÚfreZsreÚ	counthashr×r‡r"Úprevr[rrr	rÞ@s*
	


	zLexerReflect.validate_module)rrr
r
r½rÁr¹r¾rºr¿r»r¼rÀrÞrrrr	r².sBgr²FrYc
%sR|dkrd}d}
ddi}tƒ}||_|	dkrQttjƒ}	|rr|dkrrttjƒ}|r~|‰ˆrևfdd†tˆƒDƒ}
t|
ƒ}
d|
krâtj|
dj|
d<nt	dƒ}
|
j
d	ƒ}|r t|tƒr d
|kr |d
|}t
|
d|	d|ƒ}|jƒ|s`|jƒr`td
ƒ‚|r±|r±y0|j||
ƒ|ja|ja|a|SWntk
r°YnX|rð|jd|jƒ|jd|jƒ|jd|jƒtƒ|_x!|jD]}|jj|ƒqWt|jttfƒr`t|jdƒƒj |jƒ|_!n|j|_!|jt|j!ƒB|_"|j}i}xä|D]Ü}g}xr|j#|D]c\}}|j$j%}|j$j&}|j'd|t(|ƒfƒ|rµ|jd|t(|ƒ|ƒqµWxN|j)|D]?\}}|j'd||fƒ|r*|jd|||ƒq*W|||<q›W|rŽ|jdƒx“|D]‹}t*||||
|j+ƒ\}}}||j,|<||j-|<||j.|<|r•x0t/|ƒD]"\}}|jd|||ƒqúWq•Wxƒ|j0ƒD]u\}}|dkr1|dkr1|j,|j1|j,dƒ|j-|j1|j-dƒ|j.|j1|j.dƒq1W||_2|j,d|_3|j-d|_4||_5|j6|_7|j7j
ddƒ|_8|j9|_:|j9j
ddƒ|_;|j;s:|	j<dƒ|j=|_>|j=j
ddƒ|_?xÒ|j0ƒD]Ä\} }|dkrÍ| |j9kr¢|	j<d| ƒ| |j6kr/|j8r/|	j<d| ƒqk|dkrk| |j9kr|j9j
ddƒ|j9| <| |j6krk|j6j
ddƒ|j6| <qkW|ja|ja|a|rN|rN|dkrût|t@jAƒr|j}!nhd
|krš|
d}!nO|jBd
ƒ}"d
j |"dd…ƒ}#tCd|#ƒtDtj|#ddƒ}!tEjFjG|!ƒ}y|jH||ƒWn<tIk
rM}$z|	j<d||$fƒWYdd}$~$XnX|S)NrYr&r³cs%g|]}|tˆ|ƒf‘qSr)rA)rÉÚk)ràrr	rÊzs	zlex.<locals>.<listcomp>Ú__file__rržÚ__package__rGr¸r¨zCan't build lexerzlex: tokens   = %rzlex: literals = %rzlex: states   = %rrz
(?P<%s>%s)z(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 definedrÇz1No error rule is defined for exclusive state '%s'z2No ignore rule is defined for exclusive state '%s'r(z	import %sz#Couldn't write lextab module %r. %srI)Jr%r=rrer·ÚdirÚdictrfrír™rtrJrr²r½rÁÚSyntaxErrorrorŠrsrrgrrµrÅr¶rhr9rÜrÂrVrrQr;rirÐr‚r„rƒr@r’rÑr§r©r+r,r-r¬r?Úextendr0r)r*r4rËr1r:rÒr2r7rrÓr3r8rKrLrNrdrArOrPÚdirnamerbrM)%ràrBr ÚoptimizerYr¨ZnowarnrZÚdebuglogÚerrorlogr˜r¶ZlexobjÚ_itemsÚpkgZlinforzZregexsruZ
regex_listrßrr×rØr"rär)Zre_textZre_namesr‰rÚstyperÚsrcfiler®Úpkgnamerãr)ràr	Úlex_sð		
		
(	
 

%


			
 		
*rücCsî|smy3tjd}t|ƒ}|jƒ}|jƒWn1tk
rltjjdƒtjjƒ}YnX|r|j	}nt	}||ƒ|r¡|j
}nt
}x@|ƒ}|sºPtjjd|j|j|j
|jfƒqªWdS)Nr(z/Reading from standard input (type EOF to end):
z(%s,%r,%d,%d)
)reÚargvrRÚreadÚcloseÚ
IndexErrorÚstdoutrÚstdinrsrŠrrrr)rÚdatar[rÚ_inputÚ_tokenrˆrrr	Úrunmains*


	rcs‡fdd†}|S)Ncs.tˆdƒr!tˆƒ|_n	ˆ|_|S)Nr$)rÔr’r)r)rärr	Ú	set_regexBs	zTOKEN.<locals>.set_regexr)rärr)rär	ÚTOKENAsr)$rSrUrjrerKr>rOrÚZ
StringTypeZUnicodeTyperpÚAttributeErrorrÚbytesrkrÃr¥rrBrrr!r%r’r™rXrlr§r±r²r¦ÚVERBOSErürrÚTokenrrrr	Ú<module>"s>
ÿE

(ÿ2$¿"