FileAST(ext=[FuncDef(decl=Decl(name='loop', quals=[ ], align=[ ], storage=[ ], funcspec=[ ], type=FuncDecl(args=ParamList(params=[Decl(name='X1', quals=[ ], align=[ ], storage=[ ], funcspec=[ ], type=TypeDecl(declname='X1', quals=[ ], align=None, type=IdentifierType(names=['int' ] ) ), init=None, bitsize=None ) ] ), type=TypeDecl(declname='loop', quals=[ ], align=None, type=IdentifierType(names=['void' ] ) ) ), init=None, bitsize=None ), param_decls=None, body=Compound(block_items=[For(init=Assignment(op='=', lvalue=ID(name='i' ), rvalue=FuncCall(name=ID(name='max' ), args=ExprList(exprs=[UnaryOp(op='*', expr=ID(name='minkey' ) ), ArrayRef(name=ID(name='findx1' ), subscript=ID(name='icurlet' ) ) ] ) ) ), cond=BinaryOp(op='<=', left=ID(name='i' ), right=ArrayRef(name=ID(name='findx2' ), subscript=ID(name='icurlet' ) ) ), next=UnaryOp(op='p++', expr=ID(name='i' ) ), stmt=Compound(block_items=[UnaryOp(op='p++', expr=ID(name='X1' ) ) ] ) ) ] ) ), FuncDef(decl=Decl(name='fcall', quals=[ ], align=[ ], storage=[ ], funcspec=[ ], type=FuncDecl(args=ParamList(params=[Decl(name='X1', quals=[ ], align=[ ], storage=[ ], funcspec=[ ], type=TypeDecl(declname='X1', quals=[ ], align=None, type=IdentifierType(names=['int' ] ) ), init=None, bitsize=None ), Decl(name='X2', quals=[ ], align=[ ], storage=[ ], funcspec=[ ], type=TypeDecl(declname='X2', quals=[ ], align=None, type=IdentifierType(names=['int' ] ) ), init=None, bitsize=None ) ] ), type=TypeDecl(declname='fcall', quals=[ ], align=None, type=IdentifierType(names=['void' ] ) ) ), init=None, bitsize=None ), param_decls=None, body=Compound(block_items=[FuncCall(name=ID(name='my_fun' ), args=ExprList(exprs=[ID(name='X1' ), ID(name='X2' ), ID(name='X3' ), ID(name='z' ) ] ) ) ] ) ), FuncDef(decl=Decl(name='pointer_loop', quals=[ ], align=[ ], storage=[ ], funcspec=[ ], type=FuncDecl(args=ParamList(params=[Decl(name='level', quals=[ ], align=[ ], storage=[ ], funcspec=[ ], type=PtrDecl(quals=[ ], type=TypeDecl(declname='level', quals=[ ], align=None, type=IdentifierType(names=['int' ] ) ) ), init=None, bitsize=None ), Decl(name='z', quals=[ ], align=[ ], storage=[ ], funcspec=[ ], type=TypeDecl(declname='z', quals=[ ], align=None, type=IdentifierType(names=['int' ] ) ), init=None, bitsize=None ) ] ), type=TypeDecl(declname='pointer_loop', quals=[ ], align=None, type=IdentifierType(names=['void' ] ) ) ), init=None, bitsize=None ), param_decls=None, body=Compound(block_items=[For(init=Assignment(op='=', lvalue=ID(name='j' ), rvalue=Constant(type='int', value='0' ) ), cond=BinaryOp(op='<', left=ID(name='j' ), right=UnaryOp(op='*', expr=ID(name='level' ) ) ), next=UnaryOp(op='p++', expr=ID(name='j' ) ), stmt=UnaryOp(op='p++', expr=ID(name='z' ) ) ) ] ) ), FuncDef(decl=Decl(name='ok_loop', quals=[ ], align=[ ], storage=[ ], funcspec=[ ], type=FuncDecl(args=ParamList(params=[Decl(name='x', quals=[ ], align=[ ], storage=[ ], funcspec=[ ], type=TypeDecl(declname='x', quals=[ ], align=None, type=IdentifierType(names=['int' ] ) ), init=None, bitsize=None ), Decl(name='y', quals=[ ], align=[ ], storage=[ ], funcspec=[ ], type=TypeDecl(declname='y', quals=[ ], align=None, type=IdentifierType(names=['int' ] ) ), init=None, bitsize=None ), Decl(name='z', quals=[ ], align=[ ], storage=[ ], funcspec=[ ], type=TypeDecl(declname='z', quals=[ ], align=None, type=IdentifierType(names=['int' ] ) ), init=None, bitsize=None ) ] ), type=TypeDecl(declname='ok_loop', quals=[ ], align=None, type=IdentifierType(names=['void' ] ) ) ), init=None, bitsize=None ), param_decls=None, body=Compound(block_items=[For(init=DeclList(decls=[Decl(name='i', quals=[ ], align=[ ], storage=[ ], funcspec=[ ], type=TypeDecl(declname='i', quals=[ ], align=None, type=IdentifierType(names=['int' ] ) ), init=Constant(type='int', value='0' ), bitsize=None ) ] ), cond=BinaryOp(op='<', left=ID(name='i' ), right=ID(name='x' ) ), next=UnaryOp(op='p++', expr=ID(name='i' ) ), stmt=Assignment(op='=', lvalue=ID(name='y' ), rvalue=BinaryOp(op='+', left=ID(name='z' ), right=ID(name='z' ) ) ) ) ] ) ), FuncDef(decl=Decl(name='invalid_body', quals=[ ], align=[ ], storage=[ ], funcspec=[ ], type=FuncDecl(args=ParamList(params=[Decl(name='x', quals=[ ], align=[ ], storage=[ ], funcspec=[ ], type=TypeDecl(declname='x', quals=[ ], align=None, type=IdentifierType(names=['int' ] ) ), init=None, bitsize=None ), Decl(name='y', quals=[ ], align=[ ], storage=[ ], funcspec=[ ], type=TypeDecl(declname='y', quals=[ ], align=None, type=IdentifierType(names=['int' ] ) ), init=None, bitsize=None ) ] ), type=TypeDecl(declname='invalid_body', quals=[ ], align=None, type=IdentifierType(names=['void' ] ) ) ), init=None, bitsize=None ), param_decls=None, body=Compound(block_items=[For(init=DeclList(decls=[Decl(name='i', quals=[ ], align=[ ], storage=[ ], funcspec=[ ], type=TypeDecl(declname='i', quals=[ ], align=None, type=IdentifierType(names=['int' ] ) ), init=Constant(type='int', value='0' ), bitsize=None ) ] ), cond=BinaryOp(op='<', left=ID(name='i' ), right=ID(name='x' ) ), next=UnaryOp(op='p++', expr=ID(name='i' ) ), stmt=FuncCall(name=ID(name='foo' ), args=ExprList(exprs=[ID(name='y' ) ] ) ) ) ] ) ), FuncDef(decl=Decl(name='partially_invalid_body', quals=[ ], align=[ ], storage=[ ], funcspec=[ ], type=FuncDecl(args=ParamList(params=[Decl(name='x', quals=[ ], align=[ ], storage=[ ], funcspec=[ ], type=TypeDecl(declname='x', quals=[ ], align=None, type=IdentifierType(names=['int' ] ) ), init=None, bitsize=None ), Decl(name='y', quals=[ ], align=[ ], storage=[ ], funcspec=[ ], type=TypeDecl(declname='y', quals=[ ], align=None, type=IdentifierType(names=['int' ] ) ), init=None, bitsize=None ) ] ), type=TypeDecl(declname='partially_invalid_body', quals=[ ], align=None, type=IdentifierType(names=['void' ] ) ) ), init=None, bitsize=None ), param_decls=None, body=Compound(block_items=[For(init=DeclList(decls=[Decl(name='i', quals=[ ], align=[ ], storage=[ ], funcspec=[ ], type=TypeDecl(declname='i', quals=[ ], align=None, type=IdentifierType(names=['int' ] ) ), init=Constant(type='int', value='0' ), bitsize=None ) ] ), cond=BinaryOp(op='<', left=ID(name='i' ), right=ID(name='x' ) ), next=UnaryOp(op='p++', expr=ID(name='i' ) ), stmt=Compound(block_items=[FuncCall(name=ID(name='foo' ), args=ExprList(exprs=[ID(name='y' ) ] ) ), Assignment(op='=', lvalue=ID(name='y' ), rvalue=BinaryOp(op='+', left=ID(name='y' ), right=Constant(type='int', value='1' ) ) ) ] ) ) ] ) ), FuncDef(decl=Decl(name='fun_do_wh', quals=[ ], align=[ ], storage=[ ], funcspec=[ ], type=FuncDecl(args=None, type=TypeDecl(declname='fun_do_wh', quals=[ ], align=None, type=IdentifierType(names=['void' ] ) ) ), init=None, bitsize=None ), param_decls=None, body=Compound(block_items=[Switch(cond=ID(name='a' ), stmt=Compound(block_items=[Case(expr=Constant(type='int', value='1' ), stmts=[Break() ] ), Default(stmts=[DoWhile(cond=BinaryOp(op='>', left=ID(name='x' ), right=Constant(type='int', value='0' ) ), stmt=Compound(block_items=[Assignment(op='=', lvalue=ID(name='y' ), rvalue=BinaryOp(op='+', left=ID(name='z' ), right=ID(name='z' ) ) ), Assignment(op='=', lvalue=ID(name='z' ), rvalue=BinaryOp(op='+', left=ID(name='z' ), right=Constant(type='int', value='1' ) ) ), Assignment(op='=', lvalue=ID(name='x' ), rvalue=BinaryOp(op='-', left=ID(name='x' ), right=Constant(type='int', value='1' ) ) ) ] ) ) ] ) ] ) ) ] ) ), FuncDef(decl=Decl(name='fun_if', quals=[ ], align=[ ], storage=[ ], funcspec=[ ], type=FuncDecl(args=None, type=TypeDecl(declname='fun_if', quals=[ ], align=None, type=IdentifierType(names=['void' ] ) ) ), init=None, bitsize=None ), param_decls=None, body=Compound(block_items=[If(cond=BinaryOp(op='>', left=ID(name='a' ), right=Constant(type='int', value='0' ) ), iftrue=Compound(block_items=[DoWhile(cond=BinaryOp(op='>', left=ID(name='x' ), right=Constant(type='int', value='0' ) ), stmt=Compound(block_items=[Assignment(op='=', lvalue=ID(name='y' ), rvalue=BinaryOp(op='+', left=ID(name='z' ), right=ID(name='z' ) ) ), Assignment(op='=', lvalue=ID(name='z' ), rvalue=BinaryOp(op='+', left=ID(name='z' ), right=Constant(type='int', value='1' ) ) ), Assignment(op='=', lvalue=ID(name='x' ), rvalue=BinaryOp(op='-', left=ID(name='x' ), right=Constant(type='int', value='1' ) ) ) ] ) ) ] ), iffalse=None ) ] ) ), FuncDef(decl=Decl(name='cast', quals=[ ], align=[ ], storage=[ ], funcspec=[ ], type=FuncDecl(args=ParamList(params=[Decl(name='count', quals=[ ], align=[ ], storage=[ ], funcspec=[ ], type=TypeDecl(declname='count', quals=[ ], align=None, type=IdentifierType(names=['int' ] ) ), init=None, bitsize=None ) ] ), type=TypeDecl(declname='cast', quals=[ ], align=None, type=IdentifierType(names=['int' ] ) ) ), init=None, bitsize=None ), param_decls=None, body=Compound(block_items=[Return(expr=BinaryOp(op='*', left=Cast(to_type=Typename(name=None, quals=[ ], align=None, type=TypeDecl(declname=None, quals=[ ], align=None, type=IdentifierType(names=['double' ] ) ) ), expr=ID(name='sum' ) ), right=ID(name='count' ) ) ) ] ) ), FuncDef(decl=Decl(name='triple', quals=[ ], align=[ ], storage=[ ], funcspec=[ ], type=FuncDecl(args=ParamList(params=[Decl(name='X1', quals=[ ], align=[ ], storage=[ ], funcspec=[ ], type=TypeDecl(declname='X1', quals=[ ], align=None, type=IdentifierType(names=['int' ] ) ), init=None, bitsize=None ), Decl(name='X2', quals=[ ], align=[ ], storage=[ ], funcspec=[ ], type=TypeDecl(declname='X2', quals=[ ], align=None, type=IdentifierType(names=['int' ] ) ), init=None, bitsize=None ), Decl(name='X3', quals=[ ], align=[ ], storage=[ ], funcspec=[ ], type=TypeDecl(declname='X3', quals=[ ], align=None, type=IdentifierType(names=['int' ] ) ), init=None, bitsize=None ) ] ), type=TypeDecl(declname='triple', quals=[ ], align=None, type=IdentifierType(names=['void' ] ) ) ), init=None, bitsize=None ), param_decls=None, body=Compound(block_items=[Assignment(op='=', lvalue=ID(name='X1' ), rvalue=BinaryOp(op='+', left=BinaryOp(op='+', left=ID(name='X1' ), right=ID(name='X2' ) ), right=ID(name='X3' ) ) ) ] ) ), FuncDef(decl=Decl(name='arr', quals=[ ], align=[ ], storage=[ ], funcspec=[ ], type=FuncDecl(args=ParamList(params=[Decl(name='x', quals=[ ], align=[ ], storage=[ ], funcspec=[ ], type=TypeDecl(declname='x', quals=[ ], align=None, type=IdentifierType(names=['int' ] ) ), init=None, bitsize=None ), Decl(name='some_var', quals=[ ], align=[ ], storage=[ ], funcspec=[ ], type=TypeDecl(declname='some_var', quals=[ ], align=None, type=IdentifierType(names=['int' ] ) ), init=None, bitsize=None ), Decl(name='my_arrC', quals=[ ], align=[ ], storage=[ ], funcspec=[ ], type=PtrDecl(quals=[ ], type=TypeDecl(declname='my_arrC', quals=[ ], align=None, type=IdentifierType(names=['int' ] ) ) ), init=None, bitsize=None ) ] ), type=TypeDecl(declname='arr', quals=[ ], align=None, type=IdentifierType(names=['void' ] ) ) ), init=None, bitsize=None ), param_decls=None, body=Compound(block_items=[Assignment(op='=', lvalue=ArrayRef(name=ArrayRef(name=ID(name='my_arrC' ), subscript=ID(name='x' ) ), subscript=ID(name='x' ) ), rvalue=Constant(type='int', value='1' ) ), Assignment(op='=', lvalue=ID(name='some_var' ), rvalue=ID(name='x' ) ) ] ) ), FuncDef(decl=Decl(name='ignore_tf', quals=[ ], align=[ ], storage=[ ], funcspec=[ ], type=FuncDecl(args=ParamList(params=[Decl(name='X1', quals=[ ], align=[ ], storage=[ ], funcspec=[ ], type=TypeDecl(declname='X1', quals=[ ], align=None, type=IdentifierType(names=['int' ] ) ), init=None, bitsize=None ), Decl(name='X2', quals=[ ], align=[ ], storage=[ ], funcspec=[ ], type=TypeDecl(declname='X2', quals=[ ], align=None, type=IdentifierType(names=['int' ] ) ), init=None, bitsize=None ) ] ), type=TypeDecl(declname='ignore_tf', quals=[ ], align=None, type=IdentifierType(names=['void' ] ) ) ), init=None, bitsize=None ), param_decls=None, body=Compound(block_items=[While(cond=ID(name='true' ), stmt=Compound(block_items=[Assignment(op='=', lvalue=ID(name='X1' ), rvalue=BinaryOp(op='+', left=ID(name='X1' ), right=ID(name='X2' ) ) ) ] ) ) ] ) ) ] )