--- source: tests/snapshot_tests.rs --- Program( statements: [ Local(LocalStatement( variables: [ Variable( name: Token( kind: Identifier("a"), range: Range( start: 6, end: 7, ), ), ty: Some(Boolean), ), ], initializer: [ Literal(Boolean(BooleanLiteral( value: true, range: Range( start: 19, end: 23, ), ))), ], range: Range( start: 0, end: 7, ), )), Local(LocalStatement( variables: [ Variable( name: Token( kind: Identifier("b"), range: Range( start: 30, end: 31, ), ), ty: Some(Boolean), ), ], initializer: [ Literal(Boolean(BooleanLiteral( value: false, range: Range( start: 43, end: 48, ), ))), ], range: Range( start: 24, end: 31, ), )), If(IfStatement( condition: Binary(BinaryExpression( operator: And, left: Identifier(Identifier( name: "a", range: Range( start: 53, end: 54, ), )), right: Unary(UnaryExpression( range: Range( start: 59, end: 62, ), operator: Not, operand: Identifier(Identifier( name: "b", range: Range( start: 63, end: 64, ), )), )), range: Range( start: 55, end: 58, ), )), then_body: Block(BlockStatement( statements: [ Expression(Call(CallExpression( left: Identifier(Identifier( name: "print", range: Range( start: 74, end: 79, ), )), args: Grouped(GroupedExpression( expressions: [ Literal(String(StringLiteral( value: "a is true and b is false", range: Range( start: 80, end: 106, ), ))), ], range: Range( start: 79, end: 107, ), )), ))), ], )), else_if_branches: [], else_body: None, range: Range( start: 50, end: 111, ), )), ], )