Viewing File: /usr/lib/python2.7/site-packages/pycparser/c_parser.pyc


__NVc@sddlZddlmZddlmZddlmZddlmZm	Z	m
Z
ddlmZdefd	YZ
ed
krddlZddlZddlZndS(iN(tyacci(tc_ast(tCLexer(t	PLYParsertCoordt
ParseError(tfix_switch_casestCParserc
Bs{eZedededdZdddZdZdZdZd	Z	d
Z
dZdZd
Z
dZdZdZdZdZedZdZdZddddddddddf
Zd)Zd*Zd+Zd,Zd-Zd.Zd/Zd0Zd1Zd2Z d3Z!d4Z"d5Z#d6Z$d7Z%d8Z&d9Z'd:Z(d;Z)d<Z*d=Z+d>Z,d?Z-d@Z.dAZ/dBZ0dCZ1dDZ2dEZ3dFZ4dGZ5dHZ6dIZ7dJZ8dKZ9dLZ:dMZ;dNZ<dOZ=dPZ>dQZ?dRZ@dSZAdTZBdUZCdVZDdWZEdXZFdYZGdZZHd[ZId\ZJd]ZKd^ZLd_ZMd`ZNdaZOdbZPdcZQddZRdeZSdfZTdgZUdhZVdiZWdjZXdkZYdlZZdmZ[dnZ\doZ]dpZ^dqZ_drZ`dsZadtZbduZcdvZddwZedxZfdyZgdzZhd{Zid|Zjd}Zkd~ZldZmdZndZodZpdZqdZrdZsdZtdZudZvdZwdZxdZydZzdZ{dZ|dZ}dZ~dZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZRS(spycparser.lextabspycparser.yacctabtc	Cstd|jd|jd|jd|j|_|jjd|d|d||jj|_dd	d
ddd
ddddddddg}x|D]}|j|qWt	j	d|ddd|d|d|d||_
tg|_d|_dS(s Create a new CParser.

            Some arguments for controlling the debug/optimization
            level of the parser are provided. The defaults are
            tuned for release/performance mode.
            The simple rules for using them are:
            *) When tweaking CParser/CLexer, set these to False
            *) When releasing a stable parser, set to True

            lex_optimize:
                Set to False when you're modifying the lexer.
                Otherwise, changes in the lexer won't be used, if
                some lextab.py file exists.
                When releasing with a stable lexer, set to True
                to save the re-generation of the lexer table on
                each run.

            lextab:
                Points to the lex table that's used for optimized
                mode. Only if you're modifying the lexer and want
                some tests to avoid re-generating the table, make
                this point to a local lex table file (that's been
                earlier generated with lex_optimize=True)

            yacc_optimize:
                Set to False when you're modifying the parser.
                Otherwise, changes in the parser won't be used, if
                some parsetab.py file exists.
                When releasing with a stable parser, set to True
                to save the re-generation of the parser table on
                each run.

            yacctab:
                Points to the yacc table that's used for optimized
                mode. Only if you're modifying the parser, make
                this point to a local yacc table file

            yacc_debug:
                Generate a parser.out file that explains how yacc
                built the parsing table from the grammar.

            taboutputdir:
                Set this parameter to control the location of generated
                lextab and yacctab files.
        t
error_functon_lbrace_functon_rbrace_functtype_lookup_functoptimizetlextabt	outputdirtabstract_declaratortassignment_expressiontdeclaration_listtdeclaration_specifierstdesignationt
expressiontidentifier_listtinit_declarator_listtinitializer_listtparameter_type_listtspecifier_qualifier_listtblock_item_listttype_qualifier_listtstruct_declarator_listtmoduletstartttranslation_unit_or_emptytdebugt	tabmoduleN(Rt_lex_error_funct_lex_on_lbrace_funct_lex_on_rbrace_funct_lex_type_lookup_functclextbuildttokenst_create_opt_ruleRtcparsertdictt_scope_stacktNonet_last_yielded_token(	tselftlex_optimizeRt
yacc_optimizetyacctabt
yacc_debugttaboutputdirtrules_with_opttrule((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pyt__init__sF5				
	
icCsS||j_|jjtg|_d|_|jjd|d|jd|S(s& Parses C code and returns an AST.

            text:
                A string containing the C source code

            filename:
                Name of the file being parsed (for meaningful
                error messages)

            debuglevel:
                Debug level to yacc
        tinputtlexerR!N(	R'tfilenametreset_linenoR,R-R.R/R+tparse(R0ttextR;t
debuglevel((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pyR=~s

		cCs|jjtdS(N(R-tappendR,(R0((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pyt_push_scopescCs,t|jdkst|jjdS(Ni(tlenR-tAssertionErrortpop(R0((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pyt
_pop_scopescCsE|jdj|ts0|jd||nt|jd|<dS(sC Add a new typedef name (ie a TYPEID) to the current scope
        is;Typedef %r previously declared as non-typedef in this scopeN(R-tgettTruet_parse_error(R0tnametcoord((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pyt_add_typedef_names
cCsE|jdj|tr0|jd||nt|jd|<dS(se Add a new object, function, or enum member name (ie an ID) to the
            current scope
        is;Non-typedef %r previously declared as typedef in this scopeN(R-RFtFalseRH(R0RIRJ((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pyt_add_identifiers
cCs=x6t|jD]%}|j|}|dk	r|SqWtS(s8 Is *name* a typedef-name in the current scope?
        N(treversedR-RFR.RL(R0RItscopetin_scope((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pyt_is_type_in_scopes
cCs |j||j||dS(N(RHt_coord(R0tmsgtlinetcolumn((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pyR#scCs|jdS(N(RA(R0((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pyR$scCs|jdS(N(RE(R0((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pyR%scCs|j|}|S(s Looks up types that were previously defined with
            typedef.
            Passed to the lexer for recognizing identifiers that
            are types.
        (RQ(R0RItis_type((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pyR&scCs
|jjS(s We need access to yacc's lookahead token in certain cases.
            This is the last token yacc requested from the lexer, so we
            ask the lexer.
        (R't
last_token(R0((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pyt_get_yacc_lookahead_tokenscCs|}|}x|jr$|j}qWt|tjrD||_|S|}x"t|jtjsn|j}qMW|j|_||_|SdS(s Tacks a type modifier on a declarator, and returns
            the modified declarator.

            Note: the declarator and modifier may be modified
        N(ttypet
isinstanceRtTypeDecl(R0tdecltmodifiert
modifier_headt
modifier_tailt	decl_tail((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pyt_type_modify_decls
	
	cCs3|}xt|tjs'|j}q	W|j|_|j|_xX|D]P}t|tjsGt|dkr|j	d|j
q||_|SqGqGW|st|jtjs|j	d|j
ntjdgd|j
|_nBtjg|D]}|jD]}|^qqd|dj
|_|S(s- Fixes a declaration. Modifies decl.
        is Invalid multiple types specifiedsMissing type in declarationtintRJi(
RZRR[RYtdeclnameRItqualstIdentifierTypeRBRHRJtFuncDecltnames(R0R\ttypenameRYttntidRI((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pyt_fix_decl_name_type,s.

		)c
Cs?|p$tdgdgdgdg}||jd||S(s Declaration specifiers are represented by a dictionary
            with the entries:
            * qual: a list of type qualifiers
            * storage: a list of storage type qualifiers
            * type: a list of type specifiers
            * function: a list of function specifiers

            This method is given a declaration specifier, and a
            new specifier of a given kind.
            Returns the declaration specifier, with the new
            specifier incorporated.
        tqualtstorageRYtfunctioni(R,tinsert(R0tdeclspectnewspectkindtspec((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pyt_add_declaration_specifierYs
'cCs+d|dk}g}|djddk	r2n|dddkr6t|ddkst|ddjd	ks|j|ddjdrd
}x.|dD]"}t|dr|j}PqqW|jd|ntj	d
|ddjdddddd|ddj|dd<|dd=nt
|ddtjtjtj
fs|dd}xt
|tj	s|j}qpW|jdkr|ddjd|_|dd=qnx]|D]U}	|	ddk	st|r0tjddd|dd|dd|	dd|	dj}
netjddd|dd|dd|dd|	dd|	jdd|	jdd|	dj}
t
|
jtjtjtj
fr|
}n|j|
|d}|r|r|j|j|jq|j|j|jn|j|qW|S(s Builds a list of declarations all sharing the given specifiers.
            If typedef_namespace is true, each declared name is added
            to the "typedef namespace", which also includes objects,
            functions, and enum constants.
        ttypedefRmitbitsizeR\RYiiit?RJsInvalid declarationRcRdRIRltfuncspecRntinitN(RFR.RBRgRQthasattrRJRHRR[RZtStructtUnionReRYRcRCtTypedeftDeclRkRKRIRMR@(R0Rstdeclsttypedef_namespacet
is_typedeftdeclarationsRJtttdecls_0_tailR\tdeclarationt
fixed_decl((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pyt_build_declarationsjsn3		

	


	



		c	Csod|dkst|jd|dtd|ddgdtd}tjd|d	|d
|d|jS(
s' Builds a function definition.
        RuRmRsRR\RyRitparam_declstbodyRJN(RCRR,R.RGRtFuncDefRJ(R0RsR\RRR((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pyt_build_function_definitions	
	cCs|dkrtjStjSdS(s` Given a token (either STRUCT or UNION), selects the
            appropriate AST class.
        tstructN(RR{R|(R0ttoken((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pyt_select_struct_union_classstlefttLORtLANDtORtXORtANDtEQtNEtGTtGEtLTtLEtRSHIFTtLSHIFTtPLUStMINUStTIMEStDIVIDEtMODcCsA|ddkr&tjg|d<ntj|d|d<dS(sh translation_unit_or_empty   : translation_unit
                                        | empty
        iiN(R.RtFileAST(R0tp((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_translation_unit_or_emptyscCs|d|d<dS(s4 translation_unit    : external_declaration
        iiN((R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_translation_unit_1scCs:|ddk	r(|dj|dn|d|d<dS(sE translation_unit    : translation_unit external_declaration
        iiiN(R.textend(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_translation_unit_2scCs|dg|d<dS(s7 external_declaration    : function_definition
        iiN((R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_external_declaration_1scCs|d|d<dS(s/ external_declaration    : declaration
        iiN((R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_external_declaration_2scCs|d|d<dS(s0 external_declaration    : pp_directive
        iiN((R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_external_declaration_3scCsd|d<dS(s( external_declaration    : SEMI
        iN(R.(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_external_declaration_4scCs&|jd|j|jddS(s  pp_directive  : PPHASH
        sDirectives not supported yetiN(RHRRtlineno(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_pp_directive$s	cCstdgdgdtjdgd|j|jdgdg}|jd|d	|dd
|dd|d
|d<dS(sR function_definition : declarator declaration_list_opt compound_statement
        RlRmRYRbRJiRnRsR\RiRiiN(R,RReRRRR(R0RRs((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_function_definition_1-s		

c
CsB|d}|jd|d|dd|dd|d|d	<d
S(si function_definition : declaration_specifiers declarator declaration_list_opt compound_statement
        iRsR\iRiRiiN(R(R0RRs((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_function_definition_2>s
	

cCs|d|d<dS(s
 statement   : labeled_statement
                        | expression_statement
                        | compound_statement
                        | selection_statement
                        | iteration_statement
                        | jump_statement
        iiN((R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_statementIscCs|d}|ddkr|d}tjtjtjf}t|dkrt|d|rtjddd|dd|dd	|d
d|dddddd
|djg}q|j	d|dt
ddddgdt}n"|j	d|d|ddt}||d<dS(sE decl_body : declaration_specifiers init_declarator_list_opt
        iiRYiRIRdRlRmRxRnRyRvRJRsRR\RN(R.RR{R|tEnumRBRZR~RJRR,RG(R0RRsttyts_u_or_eR((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_decl_body\s.

%	



		
	cCs|d|d<dS(s& declaration : decl_body SEMI
        iiN((R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pyt
p_declarationscCs6t|dkr|dn|d|d|d<dS(sj declaration_list    : declaration
                                | declaration_list declaration
        iiiN(RB(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_declaration_listscCs%|j|d|dd|d<dS(sM declaration_specifiers  : type_qualifier declaration_specifiers_opt
        iiRliN(Rt(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_declaration_specifiers_1scCs%|j|d|dd|d<dS(sM declaration_specifiers  : type_specifier declaration_specifiers_opt
        iiRYiN(Rt(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_declaration_specifiers_2scCs%|j|d|dd|d<dS(sV declaration_specifiers  : storage_class_specifier declaration_specifiers_opt
        iiRmiN(Rt(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_declaration_specifiers_3scCs%|j|d|dd|d<dS(sQ declaration_specifiers  : function_specifier declaration_specifiers_opt
        iiRniN(Rt(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_declaration_specifiers_4scCs|d|d<dS(s storage_class_specifier : AUTO
                                    | REGISTER
                                    | STATIC
                                    | EXTERN
                                    | TYPEDEF
        iiN((R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_storage_class_specifierscCs|d|d<dS(s& function_specifier  : INLINE
        iiN((R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_function_specifierscCs6tj|dgd|j|jd|d<dS(s type_specifier  : VOID
                            | _BOOL
                            | CHAR
                            | SHORT
                            | INT
                            | LONG
                            | FLOAT
                            | DOUBLE
                            | _COMPLEX
                            | SIGNED
                            | UNSIGNED
        iRJiN(RReRRR(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_type_specifier_1s
cCs|d|d<dS(s type_specifier  : typedef_name
                            | enum_specifier
                            | struct_or_union_specifier
        iiN((R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_type_specifier_2scCs|d|d<dS(so type_qualifier  : CONST
                            | RESTRICT
                            | VOLATILE
        iiN((R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_type_qualifierscCs<t|dkr'|d|dgn
|dg|d<dS(s init_declarator_list    : init_declarator
                                    | init_declarator_list COMMA init_declarator
        iiiiN(RB(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_init_declarator_list_1scCs$tddd|dg|d<dS(s6 init_declarator_list    : EQUALS initializer
        R\RyiiN(R,R.(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_init_declarator_list_2scCs$td|dddg|d<dS(s7 init_declarator_list    : abstract_declarator
        R\iRyiN(R,R.(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_init_declarator_list_3scCs=td|ddt|dkr,|dnd|d<dS(sb init_declarator : declarator
                            | declarator EQUALS initializer
        R\iRyiiiN(R,RBR.(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_init_declaratorscCs%|j|d|dd|d<dS(sS specifier_qualifier_list    : type_qualifier specifier_qualifier_list_opt
        iiRliN(Rt(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_specifier_qualifier_list_1scCs%|j|d|dd|d<dS(sS specifier_qualifier_list    : type_specifier specifier_qualifier_list_opt
        iiRYiN(Rt(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_specifier_qualifier_list_2sc	CsL|j|d}|d|dddd|j|jd|d<dS(s{ struct_or_union_specifier   : struct_or_union ID
                                        | struct_or_union TYPEID
        iRIiRRJiN(RR.RRR(R0Rtklass((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_struct_or_union_specifier_1s

c	CsL|j|d}|ddd|dd|j|jd|d<dS(	sd struct_or_union_specifier : struct_or_union brace_open struct_declaration_list brace_close
        iRIRiRJiiN(RR.RRR(R0RR((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_struct_or_union_specifier_2s

c	CsP|j|d}|d|dd|dd|j|jd|d<dS(	s struct_or_union_specifier   : struct_or_union ID brace_open struct_declaration_list brace_close
                                        | struct_or_union TYPEID brace_open struct_declaration_list brace_close
        iRIiRiRJiN(RRRR(R0RR((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_struct_or_union_specifier_3&s


cCs|d|d<dS(sF struct_or_union : STRUCT
                            | UNION
        iiN((R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_struct_or_union0scCs6t|dkr|dn|d|d|d<dS(s struct_declaration_list     : struct_declaration
                                        | struct_declaration_list struct_declaration
        iiiN(RB(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_struct_declaration_list8sc	Cs|d}d|dks t|ddk	rO|jd|d|d}nt|ddkr|dd}t|tjr|}ntj|}|jd|dtd	|g}n*|jd|dtd	dd
dg}||d<dS(sW struct_declaration : specifier_qualifier_list struct_declarator_list_opt SEMI
        iRuRmiRsRRYiR\RyN(	RCR.RRBRZRtNodeReR,(R0RRsRtnodet	decl_type((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_struct_declaration_1>s$
				c	Cs:|jd|ddtd|dddg|d<dS(	sP struct_declaration : specifier_qualifier_list abstract_declarator SEMI
        RsiRR\iRyiN(RR,R.(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_struct_declaration_2ds
	
cCs<t|dkr'|d|dgn
|dg|d<dS(s struct_declarator_list  : struct_declarator
                                    | struct_declarator_list COMMA struct_declarator
        iiiiN(RB(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_struct_declarator_listrscCs i|dd6dd6|d<dS(s( struct_declarator : declarator
        iR\RviN(R.(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_struct_declarator_1{scCsdt|dkr5i|dd6|dd6|d<n+itjdddd6|dd6|d<dS(s struct_declarator   : declarator COLON constant_expression
                                | COLON constant_expression
        iiR\RviiN(RBRR[R.(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_struct_declarator_2s#cCs3tj|dd|j|jd|d<dS(sM enum_specifier  : ENUM ID
                            | ENUM TYPEID
        iiiN(RRR.RRR(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_enum_specifier_1scCs3tjd|d|j|jd|d<dS(sG enum_specifier  : ENUM brace_open enumerator_list brace_close
        iiiN(RRR.RRR(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_enum_specifier_2scCs7tj|d|d|j|jd|d<dS(s enum_specifier  : ENUM ID brace_open enumerator_list brace_close
                            | ENUM TYPEID brace_open enumerator_list brace_close
        iiiiN(RRRRR(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_enum_specifier_3scCst|dkr9tj|dg|dj|d<nIt|dkr\|d|d<n&|djj|d|d|d<dS(s enumerator_list : enumerator
                            | enumerator_list COMMA
                            | enumerator_list COMMA enumerator
        iiiiN(RBRtEnumeratorListRJtenumeratorsR@(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_enumerator_lists'cCst|dkr@tj|dd|j|jd}n/tj|d|d|j|jd}|j|j|j||d<dS(sR enumerator  : ID
                        | ID EQUALS constant_expression
        iiiiN(	RBRt
EnumeratorR.RRRRMRIRJ(R0Rt
enumerator((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_enumerators
cCs|d|d<dS(s) declarator  : direct_declarator
        iiN((R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_declarator_1scCs"|j|d|d|d<dS(s1 declarator  : pointer direct_declarator
        iiiN(Ra(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_declarator_2scCsXtjd|dddddd|j|jd}|j||d|d<dS(	s& declarator  : pointer TYPEID
        RciRYRdRJiiN(RR[R.RRRRa(R0RR\((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_declarator_3s	
cCsBtjd|dddddd|j|jd|d<dS(s" direct_declarator   : ID
        RciRYRdRJiN(RR[R.RRR(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_direct_declarator_1s
	
cCs|d|d<dS(s8 direct_declarator   : LPAREN declarator RPAREN
        iiN((R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_direct_declarator_2scCst|dkr|dngp%g}tjdddt|dkrS|dn|dd|d|dj}|jd	|dd
||d<dS(
su direct_declarator   : direct_declarator LBRACKET type_qualifier_list_opt assignment_expression_opt RBRACKET
        iiRYtdimit	dim_qualsRJiR\R]iN(RBRt	ArrayDeclR.RJRa(R0RRdtarr((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_direct_declarator_3s(	&c
Csg|d|dgD]$}t|tr0|n|g^q}g|D]%}|D]}|dk	rP|^qPqF}tjddd|dd|d|dj}|jd	|dd
||d<dS(
s direct_declarator   : direct_declarator LBRACKET STATIC type_qualifier_list_opt assignment_expression RBRACKET
                                | direct_declarator LBRACKET type_qualifier_list STATIC assignment_expression RBRACKET
        iiRYRiRRJiR\R]iN(RZtlistR.RRRJRa(R0Rtitemtlisted_qualstsublistRlRR((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_direct_declarator_4s<	
c
Cstjdddtj|d|j|jdd|ddkrQ|dngd|dj}|jd|dd	||d
<dS(sa direct_declarator   : direct_declarator LBRACKET type_qualifier_list_opt TIMES RBRACKET
        RYRiRiRJiR\R]iN(RRR.tIDRRRRJRa(R0RR((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_direct_declarator_5s	( cCstjd|ddd
d|dj}|jjdkr|jd
k	rxC|jjD]2}t|tj	rvPn|j
|j|jqZWqn|jd|dd||d	<d
S(s direct_declarator   : direct_declarator LPAREN parameter_type_list RPAREN
                                | direct_declarator LPAREN identifier_list_opt RPAREN
        targsiRYRJitLBRACER\R]iN(
RRfR.RJRXRYRtparamsRZt
EllipsisParamRMRIRa(R0Rtfunctparam((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_direct_declarator_6s	

 cCs|j|jd}tjd|dp.gddd|}t|dkr|d}x|jdk	rz|j}q_W||_|d|d<n
||d<dS(	sm pointer : TIMES type_qualifier_list_opt
                    | TIMES type_qualifier_list_opt pointer
        iRdiRYRJiiN(RRRRtPtrDeclR.RBRY(R0RRJtnested_typet	tail_type((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pyt	p_pointer(s(

	cCs<t|dkr|dgn|d|dg|d<dS(ss type_qualifier_list : type_qualifier
                                | type_qualifier_list type_qualifier
        iiiN(RB(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_type_qualifier_listFscCsVt|dkrD|djjtj|j|jdn|d|d<dS(sn parameter_type_list : parameter_list
                                | parameter_list COMMA ELLIPSIS
        iiiiN(RBRR@RRRRR(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_parameter_type_listLs2cCsct|dkr9tj|dg|dj|d<n&|djj|d|d|d<dS(sz parameter_list  : parameter_declaration
                            | parameter_list COMMA parameter_declaration
        iiiiN(RBRt	ParamListRJRR@(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_parameter_listUs'cCs||d}|dsHtjdgd|j|jdg|d<n|jd|dtd|dgd	|d	<d
S(sE parameter_declaration   : declaration_specifiers declarator
        iRYRbRJRsRR\iiN(RReRRRRR,(R0RRs((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_parameter_declaration_1_s

%	cCsK|d}|dsHtjdgd|j|jdg|d<nt|ddkrt|ddjdkr|j|ddjdr|jd|dtd	|d
ddgd}notj
dd
d|dd|d
ptjdddd|j|jd
}|d}|j||}||d<dS(sR parameter_declaration   : declaration_specifiers abstract_declarator_opt
        iRYRbRJiiRsRR\iRyRIRRdRlN(
RReRRRRBRgRQRR,R.tTypenameR[Rk(R0RRsR\Rh((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_parameter_declaration_2js"

%3	&	

cCsct|dkr9tj|dg|dj|d<n&|djj|d|d|d<dS(se identifier_list : identifier
                            | identifier_list COMMA identifier
        iiiiN(RBRRRJRR@(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_identifier_lists'cCs|d|d<dS(s- initializer : assignment_expression
        iiN((R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_initializer_1scCsM|ddkr;tjg|j|jd|d<n|d|d<dS(s initializer : brace_open initializer_list_opt brace_close
                        | brace_open initializer_list COMMA brace_close
        iiiN(R.RtInitListRRR(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_initializer_2s+cCst|dkri|ddkr,|dntj|d|d}tj|g|dj|d<nV|ddkr|dntj|d|d}|djj||d|d<dS(s initializer_list    : designation_opt initializer
                                | initializer_list COMMA designation_opt initializer
        iiiiiN(RBR.RtNamedInitializerRRJtexprsR@(R0RRy((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_initializer_lists4#4cCs|d|d<dS(s. designation : designator_list EQUALS
        iiN((R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pyt
p_designationscCs<t|dkr|dgn|d|dg|d<dS(s_ designator_list : designator
                            | designator_list designator
        iiiN(RB(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_designator_listscCs|d|d<dS(si designator  : LBRACKET constant_expression RBRACKET
                        | PERIOD identifier
        iiN((R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_designatorscCsytjddd|ddd|dp9tjd
d
d
d|j|jd}|j||dd|d	<d
S(sH type_name   : specifier_qualifier_list abstract_declarator_opt
        RIRRdiRlRYiRJiN(RRR[R.RRRRk(R0RRh((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_type_names		cCs9tjddd}|jd|d|d|d<dS(s+ abstract_declarator     : pointer
        R\R]iiN(RR[R.Ra(R0Rt	dummytype((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_abstract_declarator_1s	cCs"|j|d|d|d<dS(sF abstract_declarator     : pointer direct_abstract_declarator
        iiiN(Ra(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_abstract_declarator_2scCs|d|d<dS(s> abstract_declarator     : direct_abstract_declarator
        iiN((R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_abstract_declarator_3scCs|d|d<dS(sA direct_abstract_declarator  : LPAREN abstract_declarator RPAREN iiN((R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_direct_abstract_declarator_1sc
CsStjdd
d|ddgd|dj}|jd|dd||d	<d
S(sn direct_abstract_declarator  : direct_abstract_declarator LBRACKET assignment_expression_opt RBRACKET
        RYRiRRJiR\R]iN(RRR.RJRa(R0RR((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_direct_abstract_declarator_2s	
cCsQtjdtjdddd|ddgd|j|jd|d<dS(	sS direct_abstract_declarator  : LBRACKET assignment_expression_opt RBRACKET
        RYRiRRJiiN(RRR[R.RRR(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_direct_abstract_declarator_3s
	
c
Csqtjdd
dtj|d|j|jddgd|dj}|jd|dd||d	<d
S(sZ direct_abstract_declarator  : direct_abstract_declarator LBRACKET TIMES RBRACKET
        RYRiRRJiR\R]iN(RRR.RRRRRJRa(R0RR((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_direct_abstract_declarator_4s	(cCsotjdtjddddtj|d|j|jddgd|j|jd|d<dS(	s? direct_abstract_declarator  : LBRACKET TIMES RBRACKET
        RYRiRRJiiN(RRR[R.RRRR(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_direct_abstract_declarator_5s
	(cCsMtjd|ddd	d|dj}|jd|dd||d<d	S(
sh direct_abstract_declarator  : direct_abstract_declarator LPAREN parameter_type_list_opt RPAREN
        RiRYRJiR\R]iN(RRfR.RJRa(R0RR((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_direct_abstract_declarator_6s
	
c	CsKtjd|ddtjdddd|j|jd|d<dS(sM direct_abstract_declarator  : LPAREN parameter_type_list_opt RPAREN
        RiRYRJiiN(RRfR[R.RRR(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_direct_abstract_declarator_7s	
cCs2t|dtr|dn
|dg|d<dS(sG block_item  : declaration
                        | statement
        iiN(RZR(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_block_item*scCsIt|dks%|ddgkr/|dn|d|d|d<dS(s_ block_item_list : block_item
                            | block_item_list block_item
        iiiN(RBR.(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_block_item_list2scCs6tjd|dd|j|jd|d<dS(sA compound_statement : brace_open block_item_list_opt brace_close tblock_itemsiRJiiN(RtCompoundRRR(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_compound_statement_19s	
cCs7tj|d|d|j|jd|d<dS(s( labeled_statement : ID COLON statement iiiN(RtLabelRRR(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_labeled_statement_1?scCs:tj|d|dg|j|jd|d<dS(s> labeled_statement : CASE constant_expression COLON statement iiiiN(RtCaseRRR(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_labeled_statement_2CscCs3tj|dg|j|jd|d<dS(s- labeled_statement : DEFAULT COLON statement iiiN(RtDefaultRRR(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_labeled_statement_3GscCs:tj|d|dd|j|jd|d<dS(s= selection_statement : IF LPAREN expression RPAREN statement iiiiN(RtIfR.RRR(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_selection_statement_1KscCs>tj|d|d|d|j|jd|d<dS(sL selection_statement : IF LPAREN expression RPAREN statement ELSE statement iiiiiN(RR!RRR(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_selection_statement_2OscCs=ttj|d|d|j|jd|d<dS(sA selection_statement : SWITCH LPAREN expression RPAREN statement iiiiN(RRtSwitchRRR(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_selection_statement_3SscCs7tj|d|d|j|jd|d<dS(s@ iteration_statement : WHILE LPAREN expression RPAREN statement iiiiN(RtWhileRRR(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_iteration_statement_1XscCs7tj|d|d|j|jd|d<dS(sH iteration_statement : DO statement WHILE LPAREN expression RPAREN SEMI iiiiN(RtDoWhileRRR(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_iteration_statement_2\scCsEtj|d|d|d|d|j|jd|d<dS(sj iteration_statement : FOR LPAREN expression_opt SEMI expression_opt SEMI expression_opt RPAREN statement iiii	iiN(RtForRRR(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_iteration_statement_3`scCsctjtj|d|j|jd|d|d|d|j|jd|d<dS(sb iteration_statement : FOR LPAREN declaration expression_opt SEMI expression_opt RPAREN statement iiiiiiN(RR*tDeclListRRR(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_iteration_statement_4ds+cCs0tj|d|j|jd|d<dS(s  jump_statement  : GOTO ID SEMI iiiN(RtGotoRRR(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_jump_statement_1iscCs)tj|j|jd|d<dS(s jump_statement  : BREAK SEMI iiN(RtBreakRRR(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_jump_statement_2mscCs)tj|j|jd|d<dS(s! jump_statement  : CONTINUE SEMI iiN(RtContinueRRR(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_jump_statement_3qscCsHtjt|dkr"|dnd|j|jd|d<dS(s\ jump_statement  : RETURN expression SEMI
                            | RETURN SEMI
        iiiiN(RtReturnRBR.RRR(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_jump_statement_4uscCsJ|ddkr8tj|j|jd|d<n|d|d<dS(s, expression_statement : expression_opt SEMI iiN(R.RtEmptyStatementRRR(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_expression_statement{s(cCst|dkr#|d|d<nct|dtjs`tj|dg|dj|d<n|djj|d|d|d<dS(sn expression  : assignment_expression
                        | expression COMMA assignment_expression
        iiiiN(RBRZRtExprListRJRR@(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_expressions'cCs6tj|dgd|j|jd|d<dS(s typedef_name : TYPEID iRJiN(RReRRR(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_typedef_namescCsVt|dkr#|d|d<n/tj|d|d|d|dj|d<dS(s assignment_expression   : conditional_expression
                                    | unary_expression assignment_operator assignment_expression
        iiiiN(RBRt
AssignmentRJ(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_assignment_expressionscCs|d|d<dS(s assignment_operator : EQUALS
                                | XOREQUAL
                                | TIMESEQUAL
                                | DIVEQUAL
                                | MODEQUAL
                                | PLUSEQUAL
                                | MINUSEQUAL
                                | LSHIFTEQUAL
                                | RSHIFTEQUAL
                                | ANDEQUAL
                                | OREQUAL
        iiN((R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_assignment_operators
cCs|d|d<dS(s. constant_expression : conditional_expression iiN((R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_constant_expressionscCsVt|dkr#|d|d<n/tj|d|d|d|dj|d<dS(s conditional_expression  : binary_expression
                                    | binary_expression CONDOP expression COLON conditional_expression
        iiiiiN(RBRt	TernaryOpRJ(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_conditional_expressionscCsVt|dkr#|d|d<n/tj|d|d|d|dj|d<dS(sk binary_expression   : cast_expression
                                | binary_expression TIMES binary_expression
                                | binary_expression DIVIDE binary_expression
                                | binary_expression MOD binary_expression
                                | binary_expression PLUS binary_expression
                                | binary_expression MINUS binary_expression
                                | binary_expression RSHIFT binary_expression
                                | binary_expression LSHIFT binary_expression
                                | binary_expression LT binary_expression
                                | binary_expression LE binary_expression
                                | binary_expression GE binary_expression
                                | binary_expression GT binary_expression
                                | binary_expression EQ binary_expression
                                | binary_expression NE binary_expression
                                | binary_expression AND binary_expression
                                | binary_expression OR binary_expression
                                | binary_expression XOR binary_expression
                                | binary_expression LAND binary_expression
                                | binary_expression LOR binary_expression
        iiiiN(RBRtBinaryOpRJ(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_binary_expressionscCs|d|d<dS(s$ cast_expression : unary_expression iiN((R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_cast_expression_1scCs7tj|d|d|j|jd|d<dS(s; cast_expression : LPAREN type_name RPAREN cast_expression iiiiN(RtCastRRR(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_cast_expression_2scCs|d|d<dS(s* unary_expression    : postfix_expression iiN((R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_unary_expression_1scCs,tj|d|d|dj|d<dS(s unary_expression    : PLUSPLUS unary_expression
                                | MINUSMINUS unary_expression
                                | unary_operator cast_expression
        iiiN(RtUnaryOpRJ(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_unary_expression_2scCsStj|dt|dkr)|dn|d|j|jd|d<dS(sx unary_expression    : SIZEOF unary_expression
                                | SIZEOF LPAREN type_name RPAREN
        iiiiN(RRGRBRRR(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_unary_expression_3s#cCs|d|d<dS(s unary_operator  : AND
                            | TIMES
                            | PLUS
                            | MINUS
                            | NOT
                            | LNOT
        iiN((R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_unary_operatorscCs|d|d<dS(s* postfix_expression  : primary_expression iiN((R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_postfix_expression_1scCs,tj|d|d|dj|d<dS(sG postfix_expression  : postfix_expression LBRACKET expression RBRACKET iiiN(RtArrayRefRJ(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_postfix_expression_2scCsDtj|dt|dkr)|dnd|dj|d<dS(s postfix_expression  : postfix_expression LPAREN argument_expression_list RPAREN
                                | postfix_expression LPAREN RPAREN
        iiiiN(RtFuncCallRBR.RJ(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_postfix_expression_3scCsWtj|d|j|jd}tj|d|d||dj|d<dS(s postfix_expression  : postfix_expression PERIOD ID
                                | postfix_expression PERIOD TYPEID
                                | postfix_expression ARROW ID
                                | postfix_expression ARROW TYPEID
        iiiiN(RRRRRt	StructRefRJ(R0Rtfield((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_postfix_expression_4s(cCs0tjd|d|d|dj|d<dS(s{ postfix_expression  : postfix_expression PLUSPLUS
                                | postfix_expression MINUSMINUS
        RiiiN(RRGRJ(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_postfix_expression_5scCs"tj|d|d|d<dS(s postfix_expression  : LPAREN type_name RPAREN brace_open initializer_list brace_close
                                | LPAREN type_name RPAREN brace_open initializer_list COMMA brace_close
        iiiN(RtCompoundLiteral(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_postfix_expression_6scCs|d|d<dS(s" primary_expression  : identifier iiN((R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_primary_expression_1 scCs|d|d<dS(s  primary_expression  : constant iiN((R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_primary_expression_2$scCs|d|d<dS(sp primary_expression  : unified_string_literal
                                | unified_wstring_literal
        iiN((R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_primary_expression_3(scCs|d|d<dS(s0 primary_expression  : LPAREN expression RPAREN iiN((R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_primary_expression_4.scCs_|j|jd}tjtj|d|tj|d|dg|||d<dS(sQ primary_expression  : OFFSETOF LPAREN type_name COMMA identifier RPAREN
        iiiiN(RRRRRNRR8(R0RRJ((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_primary_expression_52scCsct|dkr9tj|dg|dj|d<n&|djj|d|d|d<dS(s argument_expression_list    : assignment_expression
                                        | argument_expression_list COMMA assignment_expression
        iiiiN(RBRR8RJRR@(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_argument_expression_list:s'cCs0tj|d|j|jd|d<dS(s identifier  : ID iiN(RRRRR(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_identifierDscCs3tjd|d|j|jd|d<dS(s constant    : INT_CONST_DEC
                        | INT_CONST_OCT
                        | INT_CONST_HEX
                        | INT_CONST_BIN
        RbiiN(RtConstantRRR(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_constant_1HscCs3tjd|d|j|jd|d<dS(sM constant    : FLOAT_CONST
                        | HEX_FLOAT_CONST
        tfloatiiN(RR]RRR(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_constant_2QscCs3tjd|d|j|jd|d<dS(sH constant    : CHAR_CONST
                        | WCHAR_CONST
        tchariiN(RR]RRR(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_constant_3XscCszt|dkrDtjd|d|j|jd|d<n2|djd |dd|d_|d|d<dS(s~ unified_string_literal  : STRING_LITERAL
                                    | unified_string_literal STRING_LITERAL
        itstringiiiN(RBRR]RRRtvalue(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_unified_string_literalds
,$cCst|dkrDtjd|d|j|jd|d<n8|djjd |dd|d_|d|d<dS(s unified_wstring_literal : WSTRING_LITERAL
                                    | unified_wstring_literal WSTRING_LITERAL
        iRciiiN(RBRR]RRRRdtrstrip(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_unified_wstring_literalos
,*cCs|d|d<dS(s  brace_open  :   LBRACE
        iiN((R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_brace_openzscCs|d|d<dS(s  brace_close :   RBRACE
        iiN((R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pyt
p_brace_closescCsd|d<dS(sempty : iN(R.(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_emptyscCsU|rA|jd|j|jd|jd|jj|n|jdddS(Ns
before: %sRRUsAt end of inputR(RHRdRRRR'tfind_tok_column(R0R((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_errors
(RR(RR(RR(RR(RR(RRR(RRRRR(RRR(RRR(RRRR(t__name__t
__module__RGRLR8R=RARERKRMRQR#R$R%R&RXRaRkRtRRRt
precedenceRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR	R
RR
RRRRRRRRRRRRRR R"R#R%R'R)R+R-R/R1R3R5R7R9R:R<R=R>R@RBRCRERFRHRIRJRKRMRORRRSRURVRWRXRYRZR[R\R^R`RbReRgRhRiRjRl(((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pyRsFc					
	
						)	7	-	Y		
															;																				
			
			&										
																	
			
											
								
																				
														
													
										t__main__(tretplyRRRtc_lexerRt	plyparserRRRtast_transformsRRRmtpprintttimetsys(((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pyt<module>	s
Back to Directory File Manager