Viewing File: /usr/lib64/python2.7/site-packages/cffi/cparser.pyo


pWc@sddlmZmZddlmZmZyddlmZWnek
r_ddlZnXddl	Z	ddl
Z
ddlZy:ejdkrddl
ZnddlZejZWnek
rdZnXe
jde
je
jBZe
jde
je
jBZe
jd	Ze
jd
Ze
jdZe
jdZdae
jd
e
jZe
jdZe
jdZe
jdZ e
jdZ!e
jdZ"dZ#dZ$dZ%dZ&dZ'de(fdYZ)dS(i(tapitmodel(tCOMMON_TYPEStresolve_common_type(t
_pycparseriNis/\*.*?\*/|//([^\n\\]|\\.)*?$s?^\s*#\s*define\s+([A-Za-z_][A-Za-z_0-9]*)\b((?:[^\n\\]|\\.)*?)$s=\s*\.\.\.\s*[,}]|\.\.\.\s*\}s__dotdotdot\d+__$s\[\s*\.\.\.\s*\]s\w+|\Ss-?0?x?[0-9a-f]+[lu]*$s\b(__stdcall|WINAPI)\bs[(]\s*(__stdcall|WINAPI)\bs\b__cdecl\bs9\bextern\s*"(Python|Python\s*\+\s*C|C\s*\+\s*Python)"\s*.s'[*]\s*((const|volatile|restrict)\b\s*)+cCstdkrtjantS(N(t
_parser_cachetNonet	pycparsertCParser(((s2/usr/lib64/python2.7/site-packages/cffi/cparser.pyt_get_parser%scCsng}xKtrStj|}|s(Pn|j||j |jdd}|j|j|j}|jd|r|jd|d7}nd}|}x|t|kr6||}|dkr|d7}nH|dkr
|dkrPn|d8}n|dkr)|dkr)Pq)n|d7}qW|||!|||}q	W|j|dj	|S(Nt(t)t*iis,;=t(
tTruet_r_star_const_spacetsearchtappendtstarttgrouptendt
startswithtlentjoin(tcsourcetpartstmatchtclosingtendpostleveltitc((s2/usr/lib64/python2.7/site-packages/cffi/cparser.pyt_workaround_for_old_pycparser+s<	






cCsg}xvtr~tj|}|s(Pn|jd}|j||j d|jdkrt|jdn
|jd||dkr|jd|}|dkrtj	dn|jd|d|dkrt
d	n|j||d|!||d}nV|jd
|}|dkrHtj	dn|j|||d!||d}|jdq	W|j|d
j|S(NitCs(void __cffi_extern_python_plus_c_start; s!void __cffi_extern_python_start; t{t}is!'extern "Python" {': no '}' founds7cannot use { } inside a block 'extern "Python" { ... }'t;s'extern "Python": no ';' founds  void __cffi_extern_python_stop;R
(Rt_r_extern_pythonRRRRRtfindRt	CDefErrortNotImplementedErrorR(RRRRRt	semicolon((s2/usr/lib64/python2.7/site-packages/cffi/cparser.pyt_preprocess_extern_pythonUs4
	

c	Cstjd|}i}xKtj|D]:}|j\}}|jddj}|||<q(Wtjd|}tjdkrt	|}nt
jd|}tjd|}tjd|}t
|}tjd|}ttj|}xtt|D]\}}|j}||dkrw|jd	||j}d
|| |||df}qd|| |||df}qW|jd	d
|fS(Nt s\
R
s2.14s volatile volatile const(s volatile volatile const s[__dotdotdotarray__]t=s...s%s,__dotdotdot%d__ %sis%s __dotdotdot%d__ %ss __dotdotdot__ (t
_r_commenttsubt	_r_definetfinditertgroupstreplacetstripRt__version__R t_r_stdcall2t_r_stdcall1t_r_cdeclR*t_r_partial_arraytlistt_r_partial_enumt	enumeratetreversedRR&R(	RtmacrosRt	macronamet
macrovaluetmatchestnumbertptp2((s2/usr/lib64/python2.7/site-packages/cffi/cparser.pyt_preprocesss0

cCsktt}|jd|jd|jd|jd|jdt}t}d}d}xtj|D]}||kr]|dkr|rZ|j||j|t}qZq]|dkrt}d}q]|dkr|d7}q]|dkr|d8}q]|dkrM|rZ|dkrZ|j||j|qZq]|j|n|}qxW|S(	NR$t,R
RttypedefiR
i(tsetRtaddtFalset_r_wordstfindalltdiscardR(Rtlook_for_wordst
words_usedt
is_typedeftparent
previous_wordtword((s2/usr/lib64/python2.7/site-packages/cffi/cparser.pyt_common_type_namess>




	

	



tParsercBs
eZdZdZdZdZeeedZdZdZ	dZ
dZd	Zd
Z
dZdZed
dZdZddZdedZddZdZdedZdZedZdZdZdZRS(cCsUi|_t|_d|_tj|_i|_i|_g|_	d|_dS(Ni(t
_declarationsRGt_included_declarationst_anonymous_countertweakreftWeakKeyDictionaryt_structnode2typet_optionst_int_constantst_recompleteRt_uses_new_feature(tself((s2/usr/lib64/python2.7/site-packages/cffi/cparser.pyt__init__s					c
CsSt|\}}t|}g}xMt|jD]<}|jdr4|d}|j||j|q4q4W|t|7}g|D]}d|^q}|jd|j|dj|}tdk	rtj
nzFytj|}Wn)t
jjk
r'}	|j|	|nXWdtdk	rEtjnX|||fS(Nstypedef istypedef int %s;stypedef int __dotdotdot__;s
(RDRStsortedRURRRLRtlockRtacquireR	tparseRtc_parsert
ParseErrortconvert_pycparser_errortrelease(
R_RR=tctnt	typenamestnamettypenametcsourcelinestastte((s2/usr/lib64/python2.7/site-packages/cffi/cparser.pyt_parses.




cCsd}t|}|jdrd|dkr|d|jdd!}|jrt|d}|j}d|kot|knr||d}qqn|S(Nt:ii
(RtstrRR&tisdigittintt
splitlinesR(R_RoRtlinetmsgtlinenumRm((s2/usr/lib64/python2.7/site-packages/cffi/cparser.pyt_convert_pycparser_error
s"cCs]|j||}t|}|r=d|j|f}n
d|f}tj|dS(Nscannot parse "%s"
%ssparse error
%s(RyRrR3RR'(R_RoRRvRw((s2/usr/lib64/python2.7/site-packages/cffi/cparser.pyRgs
cCsI|j}z/i|d6|d6|d6|_|j|Wd||_XdS(Ntoverridetpackedt	dllexport(R[t_internal_parse(R_RRzR{R|tprev_options((s2/usr/lib64/python2.7/site-packages/cffi/cparser.pyRd%s	

c

CsD|j|\}}}|j|t|j}x!|D]}|jdkr;Pq;q;Wyd|_x|D]~}t|tjj	r|j
|qkt|tjjr|jstj
d|nd}t|jjtjjr|jjjddkr|j|}nt|jtjjrt|jjtjjrt|jjjtjjr|jjjjdgkrtj|j}n!|j|jd|j\}}|jd|j|d|qktj
d	|qkWWnOtjk
r?}|j||}	|	r9|jdd
|	f|_nnXdS(Nt
__dotdotdot__t__cffi_extern_python_stops!typedef does not declare any nameiiRkstypedef tqualssunrecognized constructs
    *** Err: %s(Rpt_process_macrostitertextRkt_inside_extern_pythont
isinstanceRtc_asttDeclt_parse_decltTypedefRR'ttypetIdentifierTypetnamest_get_unknown_typetPtrDecltTypeDeclRtunknown_ptr_typet_get_type_and_qualst_declaretFFIErrorRytargs(
R_RRnR=titeratortdeclRtrealtypeRoRw((s2/usr/lib64/python2.7/site-packages/cffi/cparser.pyR}/sD

	
		 cCsP||jkr?|j||kr&dStjd|fn||j|<dS(Ns%multiple declarations of constant: %s(R\RR(R_tkeytval((s2/usr/lib64/python2.7/site-packages/cffi/cparser.pyt_add_constantsYscCs|jjd}|jd}|r7|d}n|jdrs|dkrs|jdrsd|d}nt|d}|r|}n|j|||jd||dS(	Ntult-it0t0xt0oismacro (tlowertrstripRRtRR(R_Rktint_strtnegtpyvalue((s2/usr/lib64/python2.7/site-packages/cffi/cparser.pyt_add_integer_constantas

cCsx|jD]|\}}|j}tj|rG|j||q
|dkrj|jd||q
tjd||||fq
WdS(Ns...smacro sonly supports one of the following syntax:
  #define %s ...     (literally dot-dot-dot)
  #define %s NUMBER  (with NUMBER an integer constant, decimal/hex/octal)
got:
  #define %s %s(titemsR3t_r_int_literalRRRRR'(R_R=Rtvalue((s2/usr/lib64/python2.7/site-packages/cffi/cparser.pyRpscCs~|j||}|jjdr-d}n6|jdkrEd}n|jdkr]d}nd}|j||j|dS(NR|sdllexport_python t__cffi_extern_python_startsextern_python t!__cffi_extern_python_plus_c_startsextern_python_plus_c s	function (t_get_type_pointerR[tgetRRRk(R_ttpRRttag((s2/usr/lib64/python2.7/site-packages/cffi/cparser.pyt_declare_functions			cCs|j}t|tjjrR|j|d|j\}}|j|||net|tjjrz|j	d|nnt|tjj
r|j	d|nFt|tjjr|j	d|n|jstj
d|n|jr|j|dt\}}|jr+|j|||q|jrt|drt|jdrtj|jjr|j|j|jjq|jrt|jtjjr|jjd	krt|jjdrtj|jjjr|j|jd	|jjjq|tjkr?|jjd
r?|j|_q|jdkr`tj
dn|tj@r|jr|j d
|j|d|q|j d|j|d|ndS(NRktstructtuniontenums'construct does not declare any variabletpartial_length_oktinitRRt__cffi_extern_python_Rs<cannot declare constants or variables with 'extern "Python"'s	constant Rs	variable (!RRRRtFuncDeclRRkRtStructt_get_struct_union_enum_typetUniontEnumRR'Rtis_raw_functiontis_integer_typethasattrRRRRRtUnaryOptoptexprRt	void_typeRRtQ_CONSTt
is_array_typeR(R_RtnodeRR((s2/usr/lib64/python2.7/site-packages/cffi/cparser.pyRsN					 cCs|j|dS(Ni(tparse_type_and_quals(R_tcdecl((s2/usr/lib64/python2.7/site-packages/cffi/cparser.pyt
parse_typescCsx|jd|d \}}|jdjjjd}t|tjjrht	j
d|jfn|j|jS(Nsvoid __dummy(
%s
);iiisunknown identifier '%s'(
RpRRRtparamsRRRtIDRR'RkR(R_RRnR=texprnode((s2/usr/lib64/python2.7/site-packages/cffi/cparser.pyRs
icCs||jkrl|j|\}}||kr>||kr>dS|jjdsltjd|fqln||f|j|<|r|jj|ndS(NRzsPmultiple declarations of %s (for interactive usage, try cdef(xx, override=True))(RUR[RRRRVRH(R_RktobjtincludedRtprevobjt	prevquals((s2/usr/lib64/python2.7/site-packages/cffi/cparser.pyRscCsd}t|tjjtjjfrd|jkrF|tjO}nd|jkre|tjO}nd|jkr|tj	O}qn|S(Nitconsttvolatiletrestrict(
RRRRRRRRt
Q_VOLATILEt
Q_RESTRICT(R_RR((s2/usr/lib64/python2.7/site-packages/cffi/cparser.pyt_extract_qualsscCst|tjr|jSt|tjr|jjdr|jdjr|jdkr|dk	rtj
|||Stj||S(Nt$i(RRtRawFunctionTypetas_function_pointertStructOrUnionOrEnumRkRRst	forcenameRtNamedPointerTypetPointerType(R_RRtdeclname((s2/usr/lib64/python2.7/site-packages/cffi/cparser.pyRs
%c
Cst|tjjrt|jtjjrt|jjdkrd|jjd|jkr|jd|jjd\}}||j	|O}||fSt|tjj
r|jdkrd}n|j
|jd|}|j|jd|\}}tj|||fSt|tjjrw|j|j\}}|j||d|}|j	|}||fSt|tjjr|j	|}|j}	t|	tjjr4t|	j}
|
ddgkri}xE|
r'|
d}|dkr#|j|dd||<|
d=qPqWg}x>dD]6}
x-t|j|
dD]}|j|
qTWq5W|
sdg}
n|
dgkrd|ksd	|krg}
qn||
}
ndj|
}|d
krtj|fS|dkrtjd|jjnt||\}}|||BfSt|	tjjrh|jd|	|}||fSt|	tjj r|jd|	|}||fSt|	tjj!r|jd|	|}||fSnt|tjj"r|j#||dfSt|tjjr2|jd||dt$dfSt|tjj rf|jd||dt$dfStjd|jjdS(Nistypedef iRRtsignedtchartshorttlongtunsignedRtR+tvoidRs:%d: bad usage of "..."RRRtnesteds(:%d: bad or unsupported type declaration(RslongRR(RRslong(%RRRRRRRRRURt	ArrayDecltdimRt_parse_constantRRt	ArrayTypeRRR9RtrangeRRRRRtcoordRvRRRRRRt_parse_function_typeR(R_ttypenodeRkRRRtlengthtitemtypet	itemqualsRRtprefixestnewnamestprefixRtidentttp0tquals0((s2/usr/lib64/python2.7/site-packages/cffi/cparser.pyRs!
	
		




	




	c
Cstt|jdg}x^t|D]P\}}t|ds(tjd|pUd|dt|ddfq(q(Wt|dkot|d	j	t
jjot|d	j	j	t
jj
o|d	j	j	jd
gk}|r|j|stjd|p
dqng|D]!}|j|j|j	^q!}|rj|tjgkrjg}n|j|j	\}	}
d}t|j	dr|j	jd
dddgkrd}qntjt||	||S(NRRst%s arg %d: unknown type '%s' (if you meant to use the old C syntax of giving untyped arguments, it is not supported)s
in expressioniRkt?iiRs=%s: a function with only '(...)' as argument is not correct CRiRRt	__stdcall(R9tgetattrRR;RRR'RRRRRRRRtpopt_as_func_argRRRRRRttuple(R_RtfuncnameRRtargtellipsistargdeclnodeRtresultRtabi((s2/usr/lib64/python2.7/site-packages/cffi/cparser.pyRKs6	 
+	cCsIt|tjr%tj|j|St|tjrA|jS|SdS(N(RRRRtitemRR(R_RR((s2/usr/lib64/python2.7/site-packages/cffi/cparser.pyRns

cCs]y|j|SWntk
r"nX|}|j}|dkr||dk	rWd|}n|jd7_d|j}d}n1|}d||f}|jj|d\}}	|dkr{|dkrtj|ddd}ny|dkrtj	|ddd}nR|dkrF|dkr.t
d	n|j||j}nt
d
|f|dk	r|j||qn.|dkr|jdk	rtd|n|js|j|n|jrd|jkr|jd
|j|n||j|<|dkr|S|jdkr$|S|jdk	rItj
d|ng}
g}g}g}
x2|jD]'}t|jtjjrdj|jjdkr|j||qkn|jdkrd}n|j|j}t|_ |j!|jdt"\}}|j r'|j||nt|tjrU|j#rU|j||n|
j$|jpgd|j$||j$||
j$|qkWt%|
|_t%||_&t%||_'t%|
|_(|dgt)|krt|tjr|j#rtd|fqn|j*jd|_+|j,rYd|_,|j-j$|n|S(Ns$%sis$%ds%s %sRRRRs!Enums cannot be declared with ...s	kind = %rs^enum %s: the '{}' declaration should appear on the first time the enum is mentioned, not laterRsanonymous %ss"duplicate declaration of struct %sR
iRs#%s: using both bitfields and '...;'R{i(NN(.RZtKeyErrorRkRRWRURRt
StructTypet	UnionTypeR't_build_enum_typetvaluestAssertionErrorRR(Rtforce_the_nametdeclstfldnamesRRRRRRRRt
_make_partialtbitsizeRRIt_partial_lengthRRtpartialRRtfldtypest
fldbitsizetfldqualsRR[R{t	completedR](R_tkindRRkRt
force_namet
explicit_nameRRt_RRRRRR
tfqual((s2/usr/lib64/python2.7/site-packages/cffi/cparser.pyRvs	

	

	
	
			

		cCsbt|tjs+tjd|fn|jrU|rUtd|fnt|_dS(Ns%s cannot be partials%s is partial but has no C name(	RRt
StructOrUnionRR't
has_c_nameR(RR(R_RR((s2/usr/lib64/python2.7/site-packages/cffi/cparser.pyRs
cCst|tjjr
|j}|jdre|jdsK|jdrXt|dSt|dSd|dkodknrt|d	S|dd
kr|dd
krt|dkst|d
kr|ddkrt|dSt	j
d|fnt|tjjrA|jdkrA|j
|jSt|tjjrv|jdkrv|j
|jSt|tjjr|j|jkr|j|jS|rt|tjjr|jdkrt|_dSnt	jd|jjdS(NRRt0Xiit1it9i
t'iiiis\isinvalid constant %rt+Rt__dotdotdotarray__s...s?:%d: unsupported expression: expected a simple numeric constant(RRRtConstantRRRtRtordRR'RRRRRRkR\RRRRRv(R_RRts((s2/usr/lib64/python2.7/site-packages/cffi/cparser.pyRs8	

 
 4		c	Cs|dk	rt}g}g}d}x|jD]}tj|jrRt}q.n|jdk	rv|j|j}n|j	|j|j	||j
|j||d7}q.Wt|}t|}tj
|||}||_ntj
|dd}|S(Nii(((RRItenumeratorst_r_enum_dotdotdotRRkRRRRRRRtEnumTypeR(	R_RR
RR$t
enumvaluest
nextenumvalueRR((s2/usr/lib64/python2.7/site-packages/cffi/cparser.pyRs*
cCsxy|jjD]h\}\}}|jdr7qn|jddd}|dkr|j||d
td|qqWx-|jjD]\}}|j||qWdS(
Nsanonymous $enum_$R+iiRRRt	anonymousRFRR(sstructsunionsenumR)stypedef(RURRtsplitRRR\R(R_totherRkRRRtktv((s2/usr/lib64/python2.7/site-packages/cffi/cparser.pytinclude1s"#c	Cs|jjj}t|dkr1tj|jS|d dgksW|d dgkrltj|j}nOx:|d D].}|dkrwtjd|j	j
qwqwWtj|j}|jdkrdd
j|d |jf|_n|S(NiitfloattdoubleRtRRRRRs:%d: bad usage of "..."s'typedef %s... %s'R+(sintsshortslongssignedsunsignedschar(RRRRtunknown_typeRktUnknownFloatTypeRRRRvtUnknownIntegerTypeR^RR(R_RRjRtt((s2/usr/lib64/python2.7/site-packages/cffi/cparser.pyR;s 		#N(t__name__t
__module__R`RpRyRgRIRdR}RRRRRRRRRRRRRRRRRRR.R(((s2/usr/lib64/python2.7/site-packages/cffi/cparser.pyRTs2	
			

	*					2				^#	v	&		
(i(*R
RRtcommontypesRRRRtImportErrorRXtretsystversion_infotthreadt_threadt
allocate_lockRbRtcompiletDOTALLt	MULTILINER-R/R:R%R8RJRt
IGNORECASERR6R5R7R%RR	R R*RDRStobjectRT(((s2/usr/lib64/python2.7/site-packages/cffi/cparser.pyt<module>sF
$

					*	2	3	(
Back to Directory File Manager