Spade
Mini Shell
| Directory:~$ /lib/python2.7/site-packages/pycparser/ |
| [Home] [System Details] [Kill Me] |
�
"�SVc@s�ddlZddlmZddlmZddlmZddlmZm Z m
Z
ddlmZdefd ��YZ
ed
kr�ddlZddlZddlZndS(i����N(tyacci(tc_ast(tCLexer(t PLYParsertCoordt
ParseError(tfix_switch_casestCParserc
Bs{eZedededd�Zddd�Zd�Zd�Zd�Zd �Z d
�Z
d�Zd�Zd
�Z
d�Zd�Zd�Zd�Zd�Zed�Zd�Zd�Zd�d�d�d�d�d�d�d�d�d�f
Zd)�Zd*�Zd+�Zd,�Zd-�Zd.�Zd/�Zd0�Zd1�Zd2�Z
d3�Z!d4�Z"d5�Z#d6�Z$d7�Z%d8�Z&d9�Z'd:�Z(d;�Z)d<�Z*d=�Z+d>�Z,d?�Z-d@�Z.dA�Z/dB�Z0dC�Z1dD�Z2dE�Z3dF�Z4dG�Z5dH�Z6dI�Z7dJ�Z8dK�Z9dL�Z:dM�Z;dN�Z<dO�Z=dP�Z>dQ�Z?dR�Z@dS�ZAdT�ZBdU�ZCdV�ZDdW�ZEdX�ZFdY�ZGdZ�ZHd[�ZId\�ZJd]�ZKd^�ZLd_�ZMd`�ZNda�ZOdb�ZPdc�ZQdd�ZRde�ZSdf�ZTdg�ZUdh�ZVdi�ZWdj�ZXdk�ZYdl�ZZdm�Z[dn�Z\do�Z]dp�Z^dq�Z_dr�Z`ds�Zadt�Zbdu�Zcdv�Zddw�Zedx�Zfdy�Zgdz�Zhd{�Zid|�Zjd}�Zkd~�Zld�Zmd��Znd��Zod��Zpd��Zqd��Zrd��Zsd��Ztd��Zud��Zvd��Zwd��Zxd��Zyd��Zzd��Z{d��Z|d��Z}d��Z~d��Zd��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�d��Z�RS(�spycparser.lextabspycparser.yacctabtc Cs�td|jd|jd|jd|j�|_|jjd|d|d|�|jj|_dd d
ddd
ddddddddg}x|D]}|j|�q�Wt j d|ddd|d|d|d|�|_
t�g|_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( tselftlex_optimizeRt
yacc_optimizetyacctabt
yacc_debugttaboutputdirtrules_with_opttrule((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pyt__init__sF5
icCsS||j_|jj�t�g|_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'tfilenametreset_linenoR,R-R.R/R+tparse(R0ttextR;t
debuglevel((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pyR=~s
cCs|jjt��dS(N(R-tappendR,(R0((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pyt_push_scope�scCs|jj�dS(N(R-tpop(R0((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pyt
_pop_scope�scCsE|jdj|t�s0|jd||�nt|jd|<dS(sC
Add a new typedef name (ie a TYPEID) to the current scope
i����s;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_name�s
cCsE|jdj|t�r0|jd||�nt|jd|<dS(se Add a
new object, function, or enum member name (ie an ID) to the
current scope
i����s;Non-typedef %r previously declared as typedef in
this
scopeN(R-RDtFalseRF(R0RGRH((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pyt_add_identifier�s
cCs=x6t|j�D]%}|j|�}|dk r|SqWtS(s8 Is *name*
a typedef-name in the current scope?
N(treversedR-RDR.RJ(R0RGtscopetin_scope((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pyt_is_type_in_scope�s
cCs
|j||j||��dS(N(RFt_coord(R0tmsgtlinetcolumn((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pyR#�scCs|j�dS(N(RA(R0((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pyR$�scCs|j�dS(N(RC(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.
(RO(R0RGtis_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_token�scCs�|}|}x|jr$|j}qWt|tj�rD||_|S|}x"t|jtj�sn|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_decl�s
cCs3|}xt|tj�s'|j}q W|j|_|j|_xX|D]P}t|tj�sGt|�dkr�|j d|j
�q�||_|SqGqGW|s�t|jtj�s�|j d|j
�ntjdgd|j
�|_nBtjg|D]}|jD]}|^qq�d|dj
�|_|S(s- Fixes a declaration. Modifies decl.
is Invalid multiple types specifiedsMissing type in
declarationtintRHi(
RXRRYRWtdeclnameRGtqualstIdentifierTypetlenRFRHtFuncDecltnames(R0RZttypenameRWttntidRG((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.
tqualtstorageRWtfunctioni(R,tinsert(R0tdeclspectnewspectkindtspec((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pyt_add_declaration_specifierYs
'cCsd|dk}g}|djd�dk r2n�|dddkr6t|d�dks�t|ddj�d ks�|j|ddjd�r�d
}x.|dD]"}t|d�r�|j}Pq�q�W|jd|�ntj d
|ddjdddddd|ddj�|dd<|dd=n�t
|ddtjtjtj
f�s�|dd}xt
|tj �s�|j}qpW|jdkr�|ddjd|_|dd=q�nxG|D]?} |rtjddd|dd|dd| dd| dj�}
netjddd|dd|dd|dd| dd| jd�d| jd�d| dj�}
t
|
jtjtjtj
f�r�|
}n|j|
|d�}|r|r�|j|j|j�q|j|j|j�n|j|�q�W|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.
ttypedefRlitbitsizeRZRWii����it?RHsInvalid
declarationRaRbRGRktfuncspecRmtinitN(RDR.RdRfROthasattrRHRFRRYRXtStructtUnionRcRWRatTypedeftDeclRjRIRGRKR@(R0Rrtdeclsttypedef_namespacet
is_typedeftdeclarationsRHtttdecls_0_tailRZtdeclarationt
fixed_decl((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pyt_build_declarationsjsl3
c CsY|jd|dtd|dd
�gdt�d}tjd|d|d|d |j�S(s' Builds a function
definition.
RrR~RZRxRitparam_declstbodyRHN(R�R,R.RERtFuncDefRH(R0RrRZR�R�R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pyt_build_function_definition�s
cCs|dkrtjStjSdS(s`
Given a token (either STRUCT or UNION), selects the
appropriate AST class.
tstructN(RRzR{(R0ttoken((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pyt_select_struct_union_class�stlefttLORtLANDtORtXORtANDtEQtNEtGTtGEtLTtLEtRSHIFTtLSHIFTtPLUStMINUStTIMEStDIVIDEtMODcCsA|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_empty�scCs|d|d<dS(s4
translation_unit : external_declaration
iiN((R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_translation_unit_1�scCs:|ddk r(|dj|d�n|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|jd���dS(s
pp_directive : PPHASH
sDirectives not supported
yetiN(RFRPtlineno(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_pp_directive$s cCs�tdgdgdtjdgd|j|jd���gdg�}|jd|d |dd
|dd|d
�|d<dS(sR function_definition : declarator
declaration_list_opt compound_statement
RkRlRWR`RHiRmRrRZR�iR�iiN(R,RRcRPR�R�(R0R�Rr((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
iRrRZiR�iR�iiN(R�(R0R�Rr((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|�dkr�t|d|�r�tjddd|dd|dd |d
d|dddddd
|dj�g}q|j d|dt
dddd�gdt�}n"|j d|d|ddt�}||d<dS(sE
decl_body : declaration_specifiers init_declarator_list_opt
iiRWiRGRbRkRlRwRmRxRuRHRrR~RZRN(R.RRzR{tEnumRdRXR}RHR�R,RE(R0R�Rrttyts_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_declaration�scCs6t|�dkr|dn|d|d|d<dS(sj
declaration_list : declaration
| declaration_list declaration
iiiN(Rd(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_declaration_list�scCs%|j|d|dd�|d<dS(sM
declaration_specifiers : type_qualifier declaration_specifiers_opt
iiRkiN(Rs(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_declaration_specifiers_1�scCs%|j|d|dd�|d<dS(sM
declaration_specifiers : type_specifier declaration_specifiers_opt
iiRWiN(Rs(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_declaration_specifiers_2�scCs%|j|d|dd�|d<dS(sV
declaration_specifiers : storage_class_specifier
declaration_specifiers_opt
iiRliN(Rs(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_declaration_specifiers_3�scCs%|j|d|dd�|d<dS(sQ
declaration_specifiers : function_specifier declaration_specifiers_opt
iiRmiN(Rs(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_declaration_specifiers_4�scCs|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_specifier�scCs|d|d<dS(s&
function_specifier : INLINE
iiN((R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_function_specifier�scCs6tj|dgd|j|jd���|d<dS(s�
type_specifier : VOID
| _BOOL
| CHAR
| SHORT
| INT
| LONG
| FLOAT
| DOUBLE
| _COMPLEX
| SIGNED
| UNSIGNED
iRHiN(RRcRPR�(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_type_specifier_1�s
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_2�scCs|d|d<dS(so
type_qualifier : CONST
| RESTRICT
| VOLATILE
iiN((R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_type_qualifier�scCs<t|�dkr'|d|dgn
|dg|d<dS(s� init_declarator_list : init_declarator
| init_declarator_list COMMA
init_declarator
iiiiN(Rd(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_init_declarator_list_1�scCs$tddd|d�g|d<dS(s6
init_declarator_list : EQUALS initializer
RZRxiiN(R,R.(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_init_declarator_list_2�scCs$td|ddd�g|d<dS(s7
init_declarator_list : abstract_declarator
RZiRxiN(R,R.(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_init_declarator_list_3�scCs=td|ddt|�dkr,|dnd�|d<dS(sb
init_declarator : declarator
| declarator EQUALS initializer
RZiRxiiiN(R,RdR.(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
iiRkiN(Rs(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
iiRWiN(Rs(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
iRGiR~RHiN(R�R.RPR�(R0R�tklass((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
iRGR~iRHiiN(R�R.RPR�(R0R�R�((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
iRGiR~iRHiN(R�RPR�(R0R�R�((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(Rd(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_struct_declaration_list8sc Cs�|d}|dd k r9|jd|d|d�}n�t|d�dkr�|dd}t|tj�rx|}ntj|�}|jd|dtd|�g�}n*|jd|dtdd dd �g�}||d<d S(
sW struct_declaration : specifier_qualifier_list struct_declarator_list_opt
SEMI
iiRrR~RWiRZRxN(R.R�RdRXRtNodeRcR,(R0R�RrR~tnodet decl_type((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_struct_declaration_1>s"
c Cs:|jd|ddtd|ddd�g�|d<dS( sP
struct_declaration : specifier_qualifier_list abstract_declarator SEMI
RriR~RZiRxiN(R�R,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(Rd(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_struct_declarator_listrscCs
i|dd6dd6|d<dS(s( struct_declarator : declarator
iRZRuiN(R.(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_struct_declarator_1{scCsdt|�dkr5i|dd6|dd6|d<n+itjddd�d6|dd6|d<dS(s�
struct_declarator : declarator COLON constant_expression
| COLON constant_expression
iiRZRuiiN(RdRRYR.(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_struct_declarator_2�s#cCs3tj|dd|j|jd���|d<dS(sM
enum_specifier : ENUM ID
| ENUM TYPEID
iiiN(RR�R.RPR�(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_enum_specifier_1�scCs3tjd|d|j|jd���|d<dS(sG
enum_specifier : ENUM brace_open enumerator_list brace_close
iiiN(RR�R.RPR�(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_enum_specifier_2�scCs7tj|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(RR�RPR�(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_enum_specifier_3�scCs�t|�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(RdRtEnumeratorListRHtenumeratorsR@(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_enumerator_list�s'cCs�t|�dkr@tj|dd|j|jd���}n/tj|d|d|j|jd���}|j|j|j�||d<dS(sR
enumerator : ID
| ID EQUALS constant_expression
iiiiN( RdRt
EnumeratorR.RPR�RKRGRH(R0R�t
enumerator((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_enumerator�s
cCs|d|d<dS(s) declarator : direct_declarator
iiN((R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_declarator_1�scCs"|j|d|d�|d<dS(s1
declarator : pointer direct_declarator
iiiN(R_(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_declarator_2�scCsXtjd|dddddd|j|jd���}|j||d�|d<dS( s&
declarator : pointer TYPEID
RaiRWRbRHiiN(RRYR.RPR�R_(R0R�RZ((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_declarator_3�s
cCsBtjd|dddddd|j|jd���|d<dS(s"
direct_declarator : ID
RaiRWRbRHiN(RRYR.RPR�(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_direct_declarator_1�s
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_2�scCs�t|�dkr|dngp%g}tjdddt|�dkrS|dn|dd|d|dj�}|jd |dd
|�|d<dS(
su direct_declarator : direct_declarator LBRACKET
type_qualifier_list_opt assignment_expression_opt RBRACKET
iiRWtdimit dim_qualsRHiRZR[iN(RdRt ArrayDeclR.RHR_(R0R�Rbtarr((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_direct_declarator_3�s( &c
Cs�g|d|dgD]$}t|t�r0|n|g^q}g|D]%}|D]}|dk rP|^qPqF}tjddd|dd|d|dj�}|jd |dd
|�|d<dS(
s� direct_declarator : direct_declarator LBRACKET
STATIC type_qualifier_list_opt assignment_expression RBRACKET
| direct_declarator LBRACKET
type_qualifier_list STATIC assignment_expression RBRACKET
iiRWR�iR�RHiRZR[iN(RXtlistR.RR�RHR_(R0R�titemtlisted_qualstsublistRkR�R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_direct_declarator_4�s<
c
Cs�tjdddtj|d|j|jd���d|ddkrQ|dngd|dj�}|jd|dd |�|d
<dS(sa direct_declarator : direct_declarator LBRACKET
type_qualifier_list_opt TIMES RBRACKET
RWR�iR�iRHiRZR[iN(RR�R.tIDRPR�RHR_(R0R�R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_direct_declarator_5s (
cCs�tjd|ddd
d|dj�}|j�jdkr�|jd
k r�xC|jjD]2}t|tj �rvPn|j
|j|j�qZWq�n|jd|dd|�|d <d
S(s� direct_declarator : direct_declarator LPAREN parameter_type_list
RPAREN
| direct_declarator LPAREN
identifier_list_opt RPAREN
targsiRWRHitLBRACERZR[iN(
RReR.RHRVRWR�tparamsRXt
EllipsisParamRKRGR_(R0R�tfunctparam((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_direct_declarator_6s
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
iRbiRWRHiiN(RPR�RtPtrDeclR.RdRW(R0R�RHtnested_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(Rd(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_type_qualifier_listFscCsVt|�dkrD|djjtj|j|jd����n|d|d<dS(sn
parameter_type_list : parameter_list
| parameter_list COMMA ELLIPSIS
iiiiN(RdR�R@RR�RPR�(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(RdRt ParamListRHR�R@(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_parameter_listUs'cCs||d}|dsHtjdgd|j|jd���g|d<n|jd|dtd|d�g�d |d <d
S(sE parameter_declaration : declaration_specifiers declarator
iRWR`RHRrR~RZiiN(RRcRPR�R�R,(R0R�Rr((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_parameter_declaration_1_s
% cCsK|d}|dsHtjdgd|j|jd���g|d<nt|d�dkr�t|ddj�dkr�|j|ddjd�r�|jd|dtd |d
dd�g�d}notj
dd
d|dd|d
ptjddd�d|j|jd
���}|d}|j||�}||d<dS(sR parameter_declaration
: declaration_specifiers abstract_declarator_opt
iRWR`RHi����iRrR~RZiRxRGRRbRkN(
RRcRPR�RdRfROR�R,R.tTypenameRYRj(R0R�RrRZRg((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(RdRR�RHR�R@(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_identifier_list�s'cCs|d|d<dS(s-
initializer : assignment_expression
iiN((R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_initializer_1�scCsM|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.RtInitListRPR�(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_initializer_2�s+cCs�t|�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(RdR.RtNamedInitializerRRHtexprsR@(R0R�Rx((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_initializer_list�s4#4cCs|d|d<dS(s.
designation : designator_list EQUALS
iiN((R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pyt
p_designation�scCs<t|�dkr|dgn|d|dg|d<dS(s_
designator_list : designator
| designator_list designator
iiiN(Rd(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_designator_list�scCs|d|d<dS(si
designator : LBRACKET constant_expression RBRACKET
| PERIOD identifier
iiN((R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_designator�scCsytjddd|ddd|dp9tjd
d
d
�d|j|jd���}|j||dd�|d <d
S(sH type_name : specifier_qualifier_list abstract_declarator_opt
RGRRbiRkRWiRHiN(RR�RYR.RPR�Rj(R0R�Rg((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_type_name�s cCs9tjddd�}|jd|d|d�|d<dS(s+
abstract_declarator : pointer
RZR[iiN(RRYR.R_(R0R�t dummytype((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_abstract_declarator_1�s cCs"|j|d|d�|d<dS(sF
abstract_declarator : pointer direct_abstract_declarator
iiiN(R_(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_abstract_declarator_2�scCs|d|d<dS(s>
abstract_declarator : direct_abstract_declarator
iiN((R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_abstract_declarator_3�scCs|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_1�sc
CsStjdd
d|ddgd|dj�}|jd|dd|�|d <d
S(sn direct_abstract_declarator : direct_abstract_declarator LBRACKET
assignment_expression_opt RBRACKET
RWR�iR�RHiRZR[iN(RR�R.RHR_(R0R�R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_direct_abstract_declarator_2�s
cCsQtjdtjddd�d|ddgd|j|jd���|d<dS( sS
direct_abstract_declarator : LBRACKET assignment_expression_opt RBRACKET
RWR�iR�RHiiN(RR�RYR.RPR�(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_direct_abstract_declarator_3�s
c
Csqtjdd
dtj|d|j|jd���dgd|dj�}|jd|dd|�|d <d
S(sZ direct_abstract_declarator : direct_abstract_declarator LBRACKET
TIMES RBRACKET
RWR�iR�RHiRZR[iN(RR�R.R�RPR�RHR_(R0R�R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_direct_abstract_declarator_4s (cCsotjdtjddd�dtj|d|j|jd���dgd|j|jd���|d<dS( s?
direct_abstract_declarator : LBRACKET TIMES RBRACKET
RWR�iR�RHiiN(RR�RYR.R�RPR�(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_direct_abstract_declarator_5s
(cCsMtjd|ddd d|dj�}|jd|dd|�|d<d S(
sh direct_abstract_declarator : direct_abstract_declarator LPAREN
parameter_type_list_opt RPAREN
R�iRWRHiRZR[iN(RReR.RHR_(R0R�R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_direct_abstract_declarator_6s
c CsKtjd|ddtjddd�d|j|jd���|d<dS(sM
direct_abstract_declarator : LPAREN parameter_type_list_opt RPAREN
R�iRWRHiiN(RReRYR.RPR�(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_direct_abstract_declarator_7s
cCs2t|dt�r|dn
|dg|d<dS(sG block_item : declaration
| statement
iiN(RXR�(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_block_item*scCsIt|�dks%|ddgkr/|dn|d|d|d<dS(s_
block_item_list : block_item
| block_item_list block_item
iiiN(RdR.(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_itemsiRHiiN(RtCompoundRPR�(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(RtLabelRPR�(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(RtCaseRPR�(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(RtDefaultRPR�(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.RPR�(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
RPR�(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(RRtSwitchRPR�(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(RtWhileRPR�(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(RtDoWhileRPR�(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(RtForRPR�(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)tDeclListRPR�(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(RtGotoRPR�(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(RtBreakRPR�(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(RtContinueRPR�(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(RtReturnRdR.RPR�(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.RtEmptyStatementRPR�(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_expression_statement{s(cCs�t|�dkr#|d|d<nct|dtj�s`tj|dg|dj�|d<n|djj|d�|d|d<dS(sn
expression : assignment_expression
| expression COMMA assignment_expression
iiiiN(RdRXRtExprListRHRR@(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_expression�s'cCs6tj|dgd|j|jd���|d<dS(s
typedef_name : TYPEID
iRHiN(RRcRPR�(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_typedef_name�scCsVt|�dkr#|d|d<n/tj|d|d|d|dj�|d<dS(s�
assignment_expression : conditional_expression
| unary_expression assignment_operator
assignment_expression
iiiiN(RdRt
AssignmentRH(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_assignment_expression�scCs|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_operator�s
cCs|d|d<dS(s.
constant_expression : conditional_expression
iiN((R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_constant_expression�scCsVt|�dkr#|d|d<n/tj|d|d|d|dj�|d<dS(s�
conditional_expression : binary_expression
| binary_expression CONDOP expression
COLON conditional_expression
iiiiiN(RdRt TernaryOpRH(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_conditional_expression�scCsVt|�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(RdRtBinaryOpRH(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_binary_expression�scCs|d|d<dS(s$
cast_expression : unary_expression
iiN((R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_cast_expression_1�scCs7tj|d|d|j|jd���|d<dS(s;
cast_expression : LPAREN type_name RPAREN cast_expression
iiiiN(RtCastRPR�(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_cast_expression_2�scCs|d|d<dS(s*
unary_expression : postfix_expression
iiN((R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_unary_expression_1�scCs,tj|d|d|dj�|d<dS(s�
unary_expression : PLUSPLUS unary_expression
| MINUSMINUS unary_expression
| unary_operator cast_expression
iiiN(RtUnaryOpRH(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_unary_expression_2�scCsStj|dt|�dkr)|dn|d|j|jd���|d<dS(sx
unary_expression : SIZEOF unary_expression
| SIZEOF LPAREN type_name RPAREN
iiiiN(RRFRdRPR�(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_unary_expression_3�s#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_operator�scCs|d|d<dS(s*
postfix_expression : primary_expression
iiN((R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_postfix_expression_1�scCs,tj|d|d|dj�|d<dS(sG
postfix_expression : postfix_expression LBRACKET expression RBRACKET
iiiN(RtArrayRefRH(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(RtFuncCallRdR.RH(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(RR�RPR�t StructRefRH(R0R�tfield((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
R�iiiN(RRFRH(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(RPR�RRMR�R7(R0R�RH((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(RdRR7RHRR@(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(RR�RPR�(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_identifierDscCs3tjd|d|j|jd���|d<dS(s�
constant : INT_CONST_DEC
| INT_CONST_OCT
| INT_CONST_HEX
| INT_CONST_BIN
R`iiN(RtConstantRPR�(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_constant_1HscCs3tjd|d|j|jd���|d<dS(sM
constant : FLOAT_CONST
| HEX_FLOAT_CONST
tfloatiiN(RR\RPR�(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_constant_2QscCs3tjd|d|j|jd���|d<dS(sH
constant : CHAR_CONST
| WCHAR_CONST
tchariiN(RR\RPR�(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_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
itstringiii����N(RdRR\RPR�tvalue(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_unified_string_literalds
,$cCs�t|�dkrDtjd|d|j|jd���|d<n8|djj�d
|dd|d_|d|d<dS(s� unified_wstring_literal :
WSTRING_LITERAL
| unified_wstring_literal
WSTRING_LITERAL
iRbiii����N(RdRR\RPR�Rctrstrip(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.pytp_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_empty�scCsU|rA|jd|j|jd|jd|jj|���n|jdd�dS(Ns
before: %sR�RSsAt end of
inputR(RFRcRPR�R'tfind_tok_column(R0R�((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pytp_error�s
(R�R�(R�R�(R�R�(R�R�(R�R�(R�R�R�(R�R�R�R�R�(R�R�R�(R�R�R�(R�R�R�R�(�t__name__t
__module__RERJR8R=RARCRIRKROR#R$R%R&RVR_RjRsR�R�R�t
precedenceR�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�RRRRRRR RRR
RRRRRRRRRRRRRR!R"R$R&R(R*R,R.R0R2R4R6R8R9R;R<R=R?RARBRDRERGRHRIRJRLRNRQRRRTRURVRWRXRYRZR[R]R_RaRdRfRgRhRiRk(((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pyRsFc
) 7 - Y
;
&
t__main__(tretplyRRRtc_lexerRt plyparserRRRtast_transformsRRRltpprintttimetsys(((s6/usr/lib/python2.7/site-packages/pycparser/c_parser.pyt<module> s�������