/usr/lib/python2.6/site-packages/pycparser
NameSizeModeActions
ply/-0755rm
ast_transforms.py35680644editdlrm
ast_transforms.pyc28160644editdlrm
c_ast.py233360644editdlrm
c_ast.pyc354570644editdlrm
c_generator.py135700644editdlrm
c_generator.pyc190180644editdlrm
c_lexer.py144470644editdlrm
c_lexer.pyc154670644editdlrm
c_parser.py622120644editdlrm
c_parser.pyc643850644editdlrm
lextab.py74570644editdlrm
lextab.pyc71090644editdlrm
plyparser.py15940644editdlrm
plyparser.pyc26580644editdlrm
yacctab.py1295680644editdlrm
yacctab.pyc1018460644editdlrm
_ast_gen.py86630644editdlrm
_ast_gen.pyc94800644editdlrm
_build_tables.py8510644editdlrm
_build_tables.pyc6370644editdlrm
_c_ast.cfg41800644editdlrm
__init__.py29030644editdlrm
__init__.pyc28970644editdlrm
Edit: /usr/lib/python2.6/site-packages/pycparser/ast_transforms.pyc (2816B)
Ńň KVc@s&ddklZd„Zd„ZdS(i(tc_astcCsőt|tiƒpt‚t|itiƒp|Stig|iiƒ}d}x’|iiD]„}t|ti ti fƒo1|ii |ƒt ||iƒ|id}q`|djo|ii |ƒq`|i i |ƒq`W||_|S(sÜ The 'case' statements in a 'switch' come out of parsing with one child node, so subsequent statements are just tucked to the parent Compound. Additionally, consecutive (fall-through) case statements come out messy. This is a peculiarity of the C grammar. The following: switch (myvar) { case 10: k = 10; p = k + 1; return 10; case 20: case 30: return 20; default: break; } Creates this tree (pseudo-dump): Switch ID: myvar Compound: Case 10: k = 10 p = k + 1 return 10 Case 20: Case 30: return 20 Default: break The goal of this transform it to fix this mess, turning it into the following: Switch ID: myvar Compound: Case 10: k = 10 p = k + 1 return 10 Case 20: Case 30: return 20 Default: break A fixed AST node is returned. The argument may be modified. i˙˙˙˙N(t isinstanceRtSwitchtAssertionErrortstmttCompoundtcoordtNonet block_itemstCasetDefaulttappendt_extract_nested_casetstmts(t switch_nodet new_compoundt last_casetchild((s</usr/lib/python2.6/site-packages/pycparser/ast_transforms.pytfix_switch_cases s 3   cCsRt|idtitifƒo+|i|iiƒƒt|d|ƒndS(s€ Recursively extract consecutive Case statements that are made nested by the parser and add them to the stmts_list. ii˙˙˙˙N(RR RR R R tpopR (t case_nodet stmts_list((s</usr/lib/python2.6/site-packages/pycparser/ast_transforms.pyR bs#N(tRRR (((s</usr/lib/python2.6/site-packages/pycparser/ast_transforms.pyt s U