Program { ast: Block( [ Expr( ExprBox { inner: ForLoop { init: Statement( StatementBox { inner: Let { name: Ident( "i", ), typ: None, val: Some( ExprBox { inner: Literal( Number( Number { val: 0, base: 10, signed: false, }, ), ), loc: Loc { file: "parser/loops.mcl", line: 1, col: 14, }, }, ), }, loc: Loc { file: "parser/loops.mcl", line: 1, col: 8, }, }, ), test: ExprBox { inner: BinOp { typ: Lt, left: ExprBox { inner: Path( Path( [ Ident( "i", ), ], ), ), loc: Loc { file: "parser/loops.mcl", line: 1, col: 17, }, }, right: ExprBox { inner: Literal( Number( Number { val: 10, base: 10, signed: false, }, ), ), loc: Loc { file: "parser/loops.mcl", line: 1, col: 22, }, }, }, loc: Loc { file: "parser/loops.mcl", line: 1, col: 19, }, }, on_loop: ExprBox { inner: BinOp { typ: AddEq, left: ExprBox { inner: Path( Path( [ Ident( "i", ), ], ), ), loc: Loc { file: "parser/loops.mcl", line: 1, col: 25, }, }, right: ExprBox { inner: Literal( Number( Number { val: 1, base: 10, signed: false, }, ), ), loc: Loc { file: "parser/loops.mcl", line: 1, col: 29, }, }, }, loc: Loc { file: "parser/loops.mcl", line: 1, col: 27, }, }, body: Block( [], ), }, loc: Loc { file: "parser/loops.mcl", line: 1, col: 4, }, }, ), Expr( ExprBox { inner: WhileLoop { test: ExprBox { inner: BinOp { typ: Gt, left: ExprBox { inner: Path( Path( [ Ident( "i", ), ], ), ), loc: Loc { file: "parser/loops.mcl", line: 2, col: 8, }, }, right: ExprBox { inner: Literal( Number( Number { val: 3, base: 10, signed: false, }, ), ), loc: Loc { file: "parser/loops.mcl", line: 2, col: 12, }, }, }, loc: Loc { file: "parser/loops.mcl", line: 2, col: 10, }, }, body: Block( [], ), }, loc: Loc { file: "parser/loops.mcl", line: 2, col: 6, }, }, ), Expr( ExprBox { inner: InfLoop { body: Block( [], ), }, loc: Loc { file: "parser/loops.mcl", line: 3, col: 5, }, }, ), ], ), structs: {}, enums: {}, types: {}, functions: {}, member_functions: {}, }