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

U

տVX
@sFddlmZdZdZddZdZdZdZd	d
ZeZ	dZ
dd
ZddZddZ
ddZddZddlZddlZddlZddlZedZddddddddd d!	Zd"d#ZGd$d%d%eZGd&d'd'eZed(krBddlmZeZddl Z e!e j"d)Z#e#$Z%eeZ&e&'e%e j"d)e&(Z)e)s2qBe*e&j+e)q dS)*)
generators)
ZCPP_IDCPP_INTEGERZ	CPP_FLOATZ
CPP_STRINGZCPP_CHARCPP_WSZCPP_COMMENT1ZCPP_COMMENT2Z	CPP_POUNDZ
CPP_DPOUNDz+-*/%|&~^<>=!?()[]{}.,;:\'"cCs|jj|jd7_|S)z\s+
lexerlinenovaluecounttr
/cpp.pyt_CPP_WSsrz\#z\#\#z[A-Za-z_][\w_]*cCs|S)zA(((((0x)|(0X))[0-9a-fA-F]+)|(\d+))([uU][lL]|[lL][uU]|[uU]|[lL])?)r
rr
r
rr$srz?((\d+)(\.\d+)(e(\+|-)?(\d+))? | (\d+)e(\+|-)?(\d+))([lL]|[fF])?cCs|jj|jd7_|S)z\"([^\\\n]|(\\(.|\n)))*?\"rrrr
r
rt_CPP_STRING.srcCs|jj|jd7_|S)z(L)?\'([^\\\n]|(\\(.|\n)))*?\'rrrr
r
r
t_CPP_CHAR4srcCs8|jd}|jj|7_d|_|r.d|nd|_|S)z(/\*(.|\n)*?\*/)rr )r	r
rrtype)rZncrr
r
rt_CPP_COMMENT1:s
rcCsd|_d|_dS)z
(//.*?(\n|$))rrN)rr	rr
r
rt_CPP_COMMENT2CsrcCs(|jd|_|jd|_|jd|SNr)r	rrskiprr
r
rt_errorHsrNz\?\?[=/\'\(\)\!<>\-]#\^[]|{}~)	=/'()!<>-cCstdd|S)NcSst|dSN)
_trigraph_repgroup)gr
r
r<lambda>rztrigraph.<locals>.<lambda>)
_trigraph_patsub)inputr
r
rtrigraphqsr6c@seZdZdddZdS)MacroNFcCs0||_||_||_||_|r&|d|_d|_dSr,)namer	arglistvariadicvarargsource)selfr8r	r9r:r
r
r__init__s
zMacro.__init__)NF)__name__
__module____qualname__r>r
r
r
rr7sr7c@seZdZd&ddZddZddZdd	Zd
dZdd
ZddZ	ddZ
ddZddZd'ddZ
ddZd(ddZddZddZd d!Zdifd"d#Zd$d%ZdS))PreprocessorNcCsl|dkrtj}||_i|_g|_g|_|t}|dt	d||dt	d|d|_
dS)Nz
__DATE__ "%s"z%b %d %Yz
__TIME__ "%s"z%H:%M:%S)lexrmacrospath	temp_pathlexprobetime	localtimedefinestrftimeparser)r=rZtmr
r
rr>szPreprocessor.__init__cCs0g}|j||j}|s q,||q|SN)rr5tokenappend)r=texttokenstokr
r
rtokenizes
zPreprocessor.tokenizecCstd|||fdS)Nz%s:%d %s)print)r=filelinemsgr
r
rerrorszPreprocessor.errorc	Cs|jd|j}|r$|jdkr.tdn|j|_|jd|j}|r^t|jdkrhtdn|j|_t|j|_	|jd|j}|r|jdkrtdn|j|_
|jd|j}|r|jdkrd|_n|j|_|jd	|j}|r|jd	krd|_td
n|j|_|j|jf|_
ddd
ddddddg	}|D]:}|j||j}|rz|j|krNtd|qNdS)NZ
identifierz"Couldn't determine identifier typeZ12345i90zCouldn't determine integer typez
"filename"zCouldn't determine string typez  rz%Couldn't determine token for newlinesr)r*r##rr&r',.z,Unable to lex '%s' required for preprocessor)rr5rNr	rTrt_IDint	t_INTEGERt_INTEGER_TYPEt_STRINGZt_SPACEZ	t_NEWLINEt_WS)r=rRcharscr
r
rrGsD









zPreprocessor.lexprobecCs|j|dSrM)rErO)r=rEr
r
radd_pathszPreprocessor.add_pathccs|j}dd|D}tt|D]T}|d}||dr(|t|kr(||dd||||<d||<|d7}q4q(d|}||d|_g}|	}|sq|
||j|jkrd|j
kr|Vg}q|r|VdS)NcSsg|]}|qSr
)rstrip.0xr
r
r
<listcomp>sz,Preprocessor.group_lines.<locals>.<listcomp>rrr-r)rZclone
splitlinesZxrangelenendswithjoinr5rrNrOrrar	)r=r5rClinesijZcurrent_linerRr
r
rgroup_liness*



zPreprocessor.group_linescCstd}|t|kr*||j|jkr*|d7}q|d|=t|d}|dkrb||j|jkrb|d8}q@||dd=|Sr)rlrra)r=rQrpr
r
r
tokenstrip0s


zPreprocessor.tokenstripc	Csg}g}g}d}t|}d}||kr>||j|jkr>|d7}q||krd||jdkrd||dn ||j|djddggfS|d7}||kr`||}|jdkr|||d7}n|jdkr|d8}|dkr|r||||||d||fS||nD|jdkrL|dkrL|||||dg}n
|||d7}q||j|djddggfS)	Nrrr&zMissing '(' in macro argumentsr'rZr-zMissing ')' in macro arguments)	rlrrar	rOrXr<rrs)	r=Z	tokenlistargs	positionsZcurrent_argZnestingZtokenlenrprr
r
rcollect_argsLsD









zPreprocessor.collect_argscCsg|_g|_g|_d}|t|jkr|j|j|jkrh|j|j|jkrh|j|j|j}|dkr|j|djdkrt		|j||j|<|j
|j|_|j|d=|j||dfqn|dkr|j|djdkr|jd||df|j|d=qnZ|dt|jkrT|j|djdkrT|jd||f|d7}qn|jd||fn|j|jdkr|jr|dkr|j|djdkr|dt|jkr|j|dj|jkr|j|dj|j
kr|j|d|d7}q|jjdd	d
ddS)NrrrrYrcerZcSs|dS)Nr
)rhr
r
rr1r2z,Preprocessor.macro_prescan.<locals>.<lambda>T)keyreverse)patch	str_patchvar_comma_patchrlr	rr\r9indexcopyr`rOr:r;sort)r=macrorpargnumr
r
r
macro_prescansB( *(
zPreprocessor.macro_prescanc
Cs dd|jD}i}|jD]X\}}||krRdddd||Ddd||<t||||<||||_qd}|jr|d	s|jD]}d||<d
}qi}|jD]^\}	}}|	dkr|||||d<q|	d
kr||kr|||||<|||||d<q|rdd|D}|S)NcSsg|]}t|qSr
rrgZ_xr
r
rrisz2Preprocessor.macro_expand_args.<locals>.<listcomp>z"%s"rjcSsg|]
}|jqSr
r	rfr
r
rrisrz\\Fr-TrcrrwcSsg|]}|r|qSr
r
rgZ_ir
r
rris)	r	r|rnreplacerr:r}r{
expand_macros)
r=rrtrepZ
str_expansionrrpZcomma_patchexpandedZptyper
r
rmacro_expand_argss.(
zPreprocessor.macro_expand_argscCs|dkri}d}|t|kr||}|j|jkr|j|jkr|j|krd||j<|j|j}|js|dd|jD|}|D]}|j|_q||||d<|t|7}n|d}|t|kr||j|jkr|d7}q||jdkr|	||d\}	}
}|j
sTt|
t|jkrT||j|jd|jt|jf||	}n@|j
rt|
t|jdkrt|jdkr||j|jd	|jt|jdfn&||j|jd
|jt|jdf||	}n|j
rLt|
t|jdkr|

gnD|||t|jd||	d|
t|jd<|
t|jd=|||
}|||}|D]}
|j|
_qh|||||	<|t|7}||j=qn"|jdkr|j|_||j|_|d7}q|S)NrTcSsg|]}t|qSr
rrr
r
rrisz.Preprocessor.expand_macros.<locals>.<listcomp>rr&zMacro %s requires %d argumentsrxz(Macro %s must have at least %d argumentsz'Macro %s must have at least %d argumentZ__LINE__)rlrr\r	rDr9rrrarvr:rXr<rOrr^r_)r=rQrrprmZexrwrqtokcountrtrurrr
r
rrs\


" (&
4
zPreprocessor.expand_macroscCsNd}|t|kr||j|jkr||jdkr|d}d}d}|t|kr||j|jkrl|d7}qDnn||j|jkr||j|jkrd}nd}|sqn<||jdkrd}n(||jd	krqn||j||jd
|d7}qD|j	||_|
|||_||d|d=|d7}q||}t|D]\}}|j|jkrpt

|||<|j	||_|
d||_n`|j|j	kr.t

|||<t||j||_||jddkr.||jdd||_qq.d
dd|D}|dd}|dd}|dd}zt|}Wn0tk
rH||j|djdd}YnX|S)NrZdefinedrFZ0LZ1Lr&Tr'zMalformed defined()r-Z0123456789abcdefABCDEFrjcSsg|]}t|jqSr
strr	rfr
r
rriKsz)Preprocessor.evalexpr.<locals>.<listcomp>z&&z and z||z or r(z not zCouldn't evaluate expression)rlrr\r	rarDrXr<rr^r_r	enumeraterrrnrevalZ
StandardError)r=rQrprqZ	needparenresultrexprr
r
revalexpr s^"


 
zPreprocessor.evalexprccst|}||}|sd}|d|||_g}d}d}g}|D],}	t|	D]\}
}|j|jkrPqjqP|jdkrb|	D]$}|j|jkrzd|jkrz||qz|	|	|
dd}|r|dj}
|	|dd}nd}
g}|
d	kr|r`|
|D]
}|Vqg}||qp|
d
krz|r`|
|D]}|Vq2g}|jd}||D]}|VqX||jd<||_qp|
dkr|r`|
|D]}|Vqg}|
|qp|
d
kr|||f|r`|dj|jkrd}d}nd}qp|
dkr8|||f|r`|dj|jkr0d}d}nd}qp|
dkrv|||f|r`||}|spd}d}nd}n|
dkr|r|ddr|rd}n|s||}|rd}d}n||j|djdn|
dkr*|r|ddr(|rd}n|s(d}d}n||j|djdn6|
dkrp|rH|\}}n||j|djdnqB|rB||	qB|
|D]}|Vq|g}dS)Nrjz
__FILE__ "%s"TFrrrrrJincludeZ__FILE__undefZifdefZifndefifelifr-zMisplaced #elifelsezMisplaced #elseZendifzMisplaced #endif)r6rrrJr<rrrar	rOrsrrDrrrrXrpopextend)r=r5r<rrochunkZenableZ	iftriggerZifstackrhrprRZ	dirtokensr8rtZoldfilerr
r
rparsegen[s




















zPreprocessor.parsegenc
	cs|sdS|r|djdkr4|dj|jkr4||}|djdkrd}|t|krl||jdkrbqx|d7}qFtddSddd|d|D}|jdg|j}nB|dj|jkr|djdd	}|jdg|j}ntd
dS|D]}t	j||}zbt
|d}t	j|}|r0|j
d||||D]}	|	Vq<|rX|jd=WqWqtk
rxYqXqtd|dS)
Nrr)rr*zMalformed #include <...>rjcSsg|]
}|jqSr
rrfr
r
rrisz(Preprocessor.include.<locals>.<listcomp>r-zMalformed #include statementrzCouldn't find '%s')r	rr`rrlrTrnrErFosopenreaddirnameinsertrIOError)
r=rQrpfilenamerEpZinamedataZdnamerRr
r
rrsF


zPreprocessor.includecCst|ttfr||}|}zz|d}t|dkr>|d}nd}|sbt|jg}||j|j<n4|j|j	krt|j|
|dd}||j|j<n|jdkr||dd\}}}d}	|D]}
|	rtdqd
dd	|
D}|d
kr$d}	|j|
d_d|
d_d}	|
dd=qnb|d
dd
kr|
dj|jkrd}	|
dd=|
djd
dd
kr|
djdd
|
d_qt|
dks|
dj|jkrtdqq|
|d|d}d}
|
t|kr\|
dt|krP||
j|j	kr ||
djdkr ||
=qn0||
jdkrP||
dj|j	krP||
d=|
d7}
qt|j|dd	|D|	}||||j|j<ntdWntk
rtdYnXdS)Nrrrxr&Fz0No more arguments may follow a variadic argumentrjcSsg|]}t|jqSr
rrr
r
rri)sz'Preprocessor.define.<locals>.<listcomp>z...TZ__VA_ARGS__zInvalid macro argumentrYcSsg|]}|djqS)rrrfr
r
rriGszBad macro definition)
isinstancerZunicoderSrlr7r	rDrrarsrvrTrnr\rLookupError)r=rQZlinetokr8Zmtyperrrtrur:aZastrZmvaluerpr
r
rrJsl




$
&&

zPreprocessor.definecCs0|dj}z|j|=Wntk
r*YnXdS)Nr)r	rDr)r=rQidr
r
rrUs

zPreprocessor.undefcCs||_||||_dSrM)ignorerrL)r=r5r<rr
r
rparseaszPreprocessor.parsecCsDz"t|j}|j|jkr|WSqWntk
r>d|_YdSXdSrM)nextrLrr
StopIteration)r=rRr
r
rrNjs
zPreprocessor.token)N)N)N)r?r@rAr>rSrXrGrdrrrsrvrrrrrrrJrrrNr
r
r
rrBs&
<!5+2
B;
1F	rB__main__r),Z
__future__rrQliteralsrZt_CPP_POUNDZt_CPP_DPOUNDZt_CPP_IDrZ
t_CPP_INTEGERZt_CPP_FLOATrrrrrrerrHZos.pathrcompiler3r.r6objectr7rBr?Zply.lexrCrsysrargvfrr5rrrNrRrTr<r
r
r
r<module>
sb	
c

Back to Directory File Manager