int main(int argc, char **argv)
{
int i, j = 5;
if (i) {
return (j * 1 - j);
}
else {
exit(1);
}
}
<<AST>> (D:\git\cbc\cbc-project\test\ast.cb:1)
variables:
functions:
<<DefinedFunction>> (D:\git\cbc\cbc-project\test\ast.cb:1)
name: "main"
isPrivate: false
params:
parameters:
<<Parameter>> (D:\git\cbc\cbc-project\test\ast.cb:1)
name: "argc"
typeNode: int
<<Parameter>> (D:\git\cbc\cbc-project\test\ast.cb:1)
name: "argv"
typeNode: char**
body:
<<BlockNode>> (D:\git\cbc\cbc-project\test\ast.cb:2)
variables:
<<DefinedVariable>> (D:\git\cbc\cbc-project\test\ast.cb:3)
name: "i"
isPrivate: false
typeNode: int
initializer: null
<<DefinedVariable>> (D:\git\cbc\cbc-project\test\ast.cb:3)
name: "j"
isPrivate: false
typeNode: int
initializer:
<<IntegerLiteralNode>> (D:\git\cbc\cbc-project\test\ast.cb:3)
typeNode: int
value: 5
stmts:
<<IfNode>> (D:\git\cbc\cbc-project\test\ast.cb:4)
cond:
<<VariableNode>> (D:\git\cbc\cbc-project\test\ast.cb:4)
name: "i"
thenBody:
<<BlockNode>> (D:\git\cbc\cbc-project\test\ast.cb:4)
variables:
stmts:
<<ReturnNode>> (D:\git\cbc\cbc-project\test\ast.cb:5)
expr:
<<BinaryOpNode>> (D:\git\cbc\cbc-project\test\ast.cb:5)
operator: "-"
left:
<<BinaryOpNode>> (D:\git\cbc\cbc-project\test\ast.cb:5)
operator: "*"
left:
<<VariableNode>> (D:\git\cbc\cbc-project\test\ast.cb:5)
name: "j"
right:
<<IntegerLiteralNode>> (D:\git\cbc\cbc-project\test\ast.cb:5)
typeNode: int
value: 1
right:
<<VariableNode>> (D:\git\cbc\cbc-project\test\ast.cb:5)
name: "j"
elseBody:
<<BlockNode>> (D:\git\cbc\cbc-project\test\ast.cb:7)
variables:
stmts:
<<ExprStmtNode>> (D:\git\cbc\cbc-project\test\ast.cb:8)
expr:
<<FuncallNode>> (D:\git\cbc\cbc-project\test\ast.cb:8)
expr:
<<VariableNode>> (D:\git\cbc\cbc-project\test\ast.cb:8)
name: "exit"
args:
<<IntegerLiteralNode>> (D:\git\cbc\cbc-project\test\ast.cb:8)
typeNode: int
value: 1