--- source: full-moon/tests/pass_cases.rs assertion_line: 52 expression: ast.nodes() input_file: full-moon/tests/cases/pass/binops --- stmts: - - Assignment: var_list: pairs: - End: Name: leading_trivia: [] token: start_position: bytes: 0 line: 1 character: 1 end_position: bytes: 1 line: 1 character: 2 token_type: type: Identifier identifier: a trailing_trivia: - start_position: bytes: 1 line: 1 character: 2 end_position: bytes: 2 line: 1 character: 3 token_type: type: Whitespace characters: " " equal_token: leading_trivia: [] token: start_position: bytes: 2 line: 1 character: 3 end_position: bytes: 3 line: 1 character: 4 token_type: type: Symbol symbol: "=" trailing_trivia: - start_position: bytes: 3 line: 1 character: 4 end_position: bytes: 4 line: 1 character: 5 token_type: type: Whitespace characters: " " expr_list: pairs: - End: BinaryOperator: lhs: Var: Name: leading_trivia: [] token: start_position: bytes: 4 line: 1 character: 5 end_position: bytes: 7 line: 1 character: 8 token_type: type: Identifier identifier: foo trailing_trivia: - start_position: bytes: 7 line: 1 character: 8 end_position: bytes: 8 line: 1 character: 9 token_type: type: Whitespace characters: " " binop: And: leading_trivia: [] token: start_position: bytes: 8 line: 1 character: 9 end_position: bytes: 11 line: 1 character: 12 token_type: type: Symbol symbol: and trailing_trivia: - start_position: bytes: 11 line: 1 character: 12 end_position: bytes: 12 line: 1 character: 13 token_type: type: Whitespace characters: " " rhs: Var: Name: leading_trivia: [] token: start_position: bytes: 12 line: 1 character: 13 end_position: bytes: 15 line: 1 character: 16 token_type: type: Identifier identifier: bar trailing_trivia: - start_position: bytes: 15 line: 1 character: 16 end_position: bytes: 16 line: 1 character: 16 token_type: type: Whitespace characters: "\n" - ~ - - Assignment: var_list: pairs: - End: Name: leading_trivia: [] token: start_position: bytes: 16 line: 2 character: 1 end_position: bytes: 17 line: 2 character: 2 token_type: type: Identifier identifier: b trailing_trivia: - start_position: bytes: 17 line: 2 character: 2 end_position: bytes: 18 line: 2 character: 3 token_type: type: Whitespace characters: " " equal_token: leading_trivia: [] token: start_position: bytes: 18 line: 2 character: 3 end_position: bytes: 19 line: 2 character: 4 token_type: type: Symbol symbol: "=" trailing_trivia: - start_position: bytes: 19 line: 2 character: 4 end_position: bytes: 20 line: 2 character: 5 token_type: type: Whitespace characters: " " expr_list: pairs: - End: BinaryOperator: lhs: BinaryOperator: lhs: Var: Name: leading_trivia: [] token: start_position: bytes: 20 line: 2 character: 5 end_position: bytes: 23 line: 2 character: 8 token_type: type: Identifier identifier: foo trailing_trivia: - start_position: bytes: 23 line: 2 character: 8 end_position: bytes: 24 line: 2 character: 9 token_type: type: Whitespace characters: " " binop: And: leading_trivia: [] token: start_position: bytes: 24 line: 2 character: 9 end_position: bytes: 27 line: 2 character: 12 token_type: type: Symbol symbol: and trailing_trivia: - start_position: bytes: 27 line: 2 character: 12 end_position: bytes: 28 line: 2 character: 13 token_type: type: Whitespace characters: " " rhs: Var: Name: leading_trivia: [] token: start_position: bytes: 28 line: 2 character: 13 end_position: bytes: 31 line: 2 character: 16 token_type: type: Identifier identifier: bar trailing_trivia: - start_position: bytes: 31 line: 2 character: 16 end_position: bytes: 32 line: 2 character: 17 token_type: type: Whitespace characters: " " binop: Or: leading_trivia: [] token: start_position: bytes: 32 line: 2 character: 17 end_position: bytes: 34 line: 2 character: 19 token_type: type: Symbol symbol: or trailing_trivia: - start_position: bytes: 34 line: 2 character: 19 end_position: bytes: 35 line: 2 character: 20 token_type: type: Whitespace characters: " " rhs: Var: Name: leading_trivia: [] token: start_position: bytes: 35 line: 2 character: 20 end_position: bytes: 38 line: 2 character: 23 token_type: type: Identifier identifier: baz trailing_trivia: - start_position: bytes: 38 line: 2 character: 23 end_position: bytes: 39 line: 2 character: 23 token_type: type: Whitespace characters: "\n" - ~ - - Assignment: var_list: pairs: - End: Name: leading_trivia: [] token: start_position: bytes: 39 line: 3 character: 1 end_position: bytes: 40 line: 3 character: 2 token_type: type: Identifier identifier: c trailing_trivia: - start_position: bytes: 40 line: 3 character: 2 end_position: bytes: 41 line: 3 character: 3 token_type: type: Whitespace characters: " " equal_token: leading_trivia: [] token: start_position: bytes: 41 line: 3 character: 3 end_position: bytes: 42 line: 3 character: 4 token_type: type: Symbol symbol: "=" trailing_trivia: - start_position: bytes: 42 line: 3 character: 4 end_position: bytes: 43 line: 3 character: 5 token_type: type: Whitespace characters: " " expr_list: pairs: - End: BinaryOperator: lhs: BinaryOperator: lhs: Number: leading_trivia: [] token: start_position: bytes: 43 line: 3 character: 5 end_position: bytes: 44 line: 3 character: 6 token_type: type: Number text: "1" trailing_trivia: - start_position: bytes: 44 line: 3 character: 6 end_position: bytes: 45 line: 3 character: 7 token_type: type: Whitespace characters: " " binop: Plus: leading_trivia: [] token: start_position: bytes: 45 line: 3 character: 7 end_position: bytes: 46 line: 3 character: 8 token_type: type: Symbol symbol: + trailing_trivia: - start_position: bytes: 46 line: 3 character: 8 end_position: bytes: 47 line: 3 character: 9 token_type: type: Whitespace characters: " " rhs: BinaryOperator: lhs: Number: leading_trivia: [] token: start_position: bytes: 47 line: 3 character: 9 end_position: bytes: 48 line: 3 character: 10 token_type: type: Number text: "2" trailing_trivia: - start_position: bytes: 48 line: 3 character: 10 end_position: bytes: 49 line: 3 character: 11 token_type: type: Whitespace characters: " " binop: Star: leading_trivia: [] token: start_position: bytes: 49 line: 3 character: 11 end_position: bytes: 50 line: 3 character: 12 token_type: type: Symbol symbol: "*" trailing_trivia: - start_position: bytes: 50 line: 3 character: 12 end_position: bytes: 51 line: 3 character: 13 token_type: type: Whitespace characters: " " rhs: Number: leading_trivia: [] token: start_position: bytes: 51 line: 3 character: 13 end_position: bytes: 52 line: 3 character: 14 token_type: type: Number text: "3" trailing_trivia: - start_position: bytes: 52 line: 3 character: 14 end_position: bytes: 53 line: 3 character: 15 token_type: type: Whitespace characters: " " binop: Minus: leading_trivia: [] token: start_position: bytes: 53 line: 3 character: 15 end_position: bytes: 54 line: 3 character: 16 token_type: type: Symbol symbol: "-" trailing_trivia: - start_position: bytes: 54 line: 3 character: 16 end_position: bytes: 55 line: 3 character: 17 token_type: type: Whitespace characters: " " rhs: BinaryOperator: lhs: Number: leading_trivia: [] token: start_position: bytes: 55 line: 3 character: 17 end_position: bytes: 56 line: 3 character: 18 token_type: type: Number text: "4" trailing_trivia: - start_position: bytes: 56 line: 3 character: 18 end_position: bytes: 57 line: 3 character: 19 token_type: type: Whitespace characters: " " binop: Caret: leading_trivia: [] token: start_position: bytes: 57 line: 3 character: 19 end_position: bytes: 58 line: 3 character: 20 token_type: type: Symbol symbol: ^ trailing_trivia: - start_position: bytes: 58 line: 3 character: 20 end_position: bytes: 59 line: 3 character: 21 token_type: type: Whitespace characters: " " rhs: Number: leading_trivia: [] token: start_position: bytes: 59 line: 3 character: 21 end_position: bytes: 60 line: 3 character: 22 token_type: type: Number text: "2" trailing_trivia: - start_position: bytes: 60 line: 3 character: 22 end_position: bytes: 61 line: 3 character: 22 token_type: type: Whitespace characters: "\n" - ~ - - Assignment: var_list: pairs: - End: Name: leading_trivia: [] token: start_position: bytes: 61 line: 4 character: 1 end_position: bytes: 62 line: 4 character: 2 token_type: type: Identifier identifier: d trailing_trivia: - start_position: bytes: 62 line: 4 character: 2 end_position: bytes: 63 line: 4 character: 3 token_type: type: Whitespace characters: " " equal_token: leading_trivia: [] token: start_position: bytes: 63 line: 4 character: 3 end_position: bytes: 64 line: 4 character: 4 token_type: type: Symbol symbol: "=" trailing_trivia: - start_position: bytes: 64 line: 4 character: 4 end_position: bytes: 65 line: 4 character: 5 token_type: type: Whitespace characters: " " expr_list: pairs: - End: BinaryOperator: lhs: BinaryOperator: lhs: Var: Name: leading_trivia: [] token: start_position: bytes: 65 line: 4 character: 5 end_position: bytes: 66 line: 4 character: 6 token_type: type: Identifier identifier: a trailing_trivia: - start_position: bytes: 66 line: 4 character: 6 end_position: bytes: 67 line: 4 character: 7 token_type: type: Whitespace characters: " " binop: Plus: leading_trivia: [] token: start_position: bytes: 67 line: 4 character: 7 end_position: bytes: 68 line: 4 character: 8 token_type: type: Symbol symbol: + trailing_trivia: - start_position: bytes: 68 line: 4 character: 8 end_position: bytes: 69 line: 4 character: 9 token_type: type: Whitespace characters: " " rhs: Var: Name: leading_trivia: [] token: start_position: bytes: 69 line: 4 character: 9 end_position: bytes: 70 line: 4 character: 10 token_type: type: Identifier identifier: i trailing_trivia: - start_position: bytes: 70 line: 4 character: 10 end_position: bytes: 71 line: 4 character: 11 token_type: type: Whitespace characters: " " binop: LessThan: leading_trivia: [] token: start_position: bytes: 71 line: 4 character: 11 end_position: bytes: 72 line: 4 character: 12 token_type: type: Symbol symbol: "<" trailing_trivia: - start_position: bytes: 72 line: 4 character: 12 end_position: bytes: 73 line: 4 character: 13 token_type: type: Whitespace characters: " " rhs: BinaryOperator: lhs: BinaryOperator: lhs: Var: Name: leading_trivia: [] token: start_position: bytes: 73 line: 4 character: 13 end_position: bytes: 74 line: 4 character: 14 token_type: type: Identifier identifier: b trailing_trivia: - start_position: bytes: 74 line: 4 character: 14 end_position: bytes: 75 line: 4 character: 15 token_type: type: Whitespace characters: " " binop: Slash: leading_trivia: [] token: start_position: bytes: 75 line: 4 character: 15 end_position: bytes: 76 line: 4 character: 16 token_type: type: Symbol symbol: / trailing_trivia: - start_position: bytes: 76 line: 4 character: 16 end_position: bytes: 77 line: 4 character: 17 token_type: type: Whitespace characters: " " rhs: Number: leading_trivia: [] token: start_position: bytes: 77 line: 4 character: 17 end_position: bytes: 78 line: 4 character: 18 token_type: type: Number text: "2" trailing_trivia: - start_position: bytes: 78 line: 4 character: 18 end_position: bytes: 79 line: 4 character: 19 token_type: type: Whitespace characters: " " binop: Plus: leading_trivia: [] token: start_position: bytes: 79 line: 4 character: 19 end_position: bytes: 80 line: 4 character: 20 token_type: type: Symbol symbol: + trailing_trivia: - start_position: bytes: 80 line: 4 character: 20 end_position: bytes: 81 line: 4 character: 21 token_type: type: Whitespace characters: " " rhs: Number: leading_trivia: [] token: start_position: bytes: 81 line: 4 character: 21 end_position: bytes: 82 line: 4 character: 22 token_type: type: Number text: "1" trailing_trivia: - start_position: bytes: 82 line: 4 character: 22 end_position: bytes: 83 line: 4 character: 22 token_type: type: Whitespace characters: "\n" - ~ - - Assignment: var_list: pairs: - End: Name: leading_trivia: [] token: start_position: bytes: 83 line: 5 character: 1 end_position: bytes: 84 line: 5 character: 2 token_type: type: Identifier identifier: e trailing_trivia: - start_position: bytes: 84 line: 5 character: 2 end_position: bytes: 85 line: 5 character: 3 token_type: type: Whitespace characters: " " equal_token: leading_trivia: [] token: start_position: bytes: 85 line: 5 character: 3 end_position: bytes: 86 line: 5 character: 4 token_type: type: Symbol symbol: "=" trailing_trivia: - start_position: bytes: 86 line: 5 character: 4 end_position: bytes: 87 line: 5 character: 5 token_type: type: Whitespace characters: " " expr_list: pairs: - End: BinaryOperator: lhs: Number: leading_trivia: [] token: start_position: bytes: 87 line: 5 character: 5 end_position: bytes: 88 line: 5 character: 6 token_type: type: Number text: "5" trailing_trivia: - start_position: bytes: 88 line: 5 character: 6 end_position: bytes: 89 line: 5 character: 7 token_type: type: Whitespace characters: " " binop: Plus: leading_trivia: [] token: start_position: bytes: 89 line: 5 character: 7 end_position: bytes: 90 line: 5 character: 8 token_type: type: Symbol symbol: + trailing_trivia: - start_position: bytes: 90 line: 5 character: 8 end_position: bytes: 91 line: 5 character: 9 token_type: type: Whitespace characters: " " rhs: BinaryOperator: lhs: BinaryOperator: lhs: Var: Name: leading_trivia: [] token: start_position: bytes: 91 line: 5 character: 9 end_position: bytes: 92 line: 5 character: 10 token_type: type: Identifier identifier: x trailing_trivia: - start_position: bytes: 92 line: 5 character: 10 end_position: bytes: 93 line: 5 character: 11 token_type: type: Whitespace characters: " " binop: Caret: leading_trivia: [] token: start_position: bytes: 93 line: 5 character: 11 end_position: bytes: 94 line: 5 character: 12 token_type: type: Symbol symbol: ^ trailing_trivia: - start_position: bytes: 94 line: 5 character: 12 end_position: bytes: 95 line: 5 character: 13 token_type: type: Whitespace characters: " " rhs: Number: leading_trivia: [] token: start_position: bytes: 95 line: 5 character: 13 end_position: bytes: 96 line: 5 character: 14 token_type: type: Number text: "2" trailing_trivia: - start_position: bytes: 96 line: 5 character: 14 end_position: bytes: 97 line: 5 character: 15 token_type: type: Whitespace characters: " " binop: Star: leading_trivia: [] token: start_position: bytes: 97 line: 5 character: 15 end_position: bytes: 98 line: 5 character: 16 token_type: type: Symbol symbol: "*" trailing_trivia: - start_position: bytes: 98 line: 5 character: 16 end_position: bytes: 99 line: 5 character: 17 token_type: type: Whitespace characters: " " rhs: Number: leading_trivia: [] token: start_position: bytes: 99 line: 5 character: 17 end_position: bytes: 100 line: 5 character: 18 token_type: type: Number text: "8" trailing_trivia: - start_position: bytes: 100 line: 5 character: 18 end_position: bytes: 101 line: 5 character: 18 token_type: type: Whitespace characters: "\n" - ~ - - Assignment: var_list: pairs: - End: Name: leading_trivia: [] token: start_position: bytes: 101 line: 6 character: 1 end_position: bytes: 102 line: 6 character: 2 token_type: type: Identifier identifier: f trailing_trivia: - start_position: bytes: 102 line: 6 character: 2 end_position: bytes: 103 line: 6 character: 3 token_type: type: Whitespace characters: " " equal_token: leading_trivia: [] token: start_position: bytes: 103 line: 6 character: 3 end_position: bytes: 104 line: 6 character: 4 token_type: type: Symbol symbol: "=" trailing_trivia: - start_position: bytes: 104 line: 6 character: 4 end_position: bytes: 105 line: 6 character: 5 token_type: type: Whitespace characters: " " expr_list: pairs: - End: BinaryOperator: lhs: BinaryOperator: lhs: Var: Name: leading_trivia: [] token: start_position: bytes: 105 line: 6 character: 5 end_position: bytes: 106 line: 6 character: 6 token_type: type: Identifier identifier: a trailing_trivia: - start_position: bytes: 106 line: 6 character: 6 end_position: bytes: 107 line: 6 character: 7 token_type: type: Whitespace characters: " " binop: LessThan: leading_trivia: [] token: start_position: bytes: 107 line: 6 character: 7 end_position: bytes: 108 line: 6 character: 8 token_type: type: Symbol symbol: "<" trailing_trivia: - start_position: bytes: 108 line: 6 character: 8 end_position: bytes: 109 line: 6 character: 9 token_type: type: Whitespace characters: " " rhs: Var: Name: leading_trivia: [] token: start_position: bytes: 109 line: 6 character: 9 end_position: bytes: 110 line: 6 character: 10 token_type: type: Identifier identifier: y trailing_trivia: - start_position: bytes: 110 line: 6 character: 10 end_position: bytes: 111 line: 6 character: 11 token_type: type: Whitespace characters: " " binop: And: leading_trivia: [] token: start_position: bytes: 111 line: 6 character: 11 end_position: bytes: 114 line: 6 character: 14 token_type: type: Symbol symbol: and trailing_trivia: - start_position: bytes: 114 line: 6 character: 14 end_position: bytes: 115 line: 6 character: 15 token_type: type: Whitespace characters: " " rhs: BinaryOperator: lhs: Var: Name: leading_trivia: [] token: start_position: bytes: 115 line: 6 character: 15 end_position: bytes: 116 line: 6 character: 16 token_type: type: Identifier identifier: y trailing_trivia: - start_position: bytes: 116 line: 6 character: 16 end_position: bytes: 117 line: 6 character: 17 token_type: type: Whitespace characters: " " binop: LessThanEqual: leading_trivia: [] token: start_position: bytes: 117 line: 6 character: 17 end_position: bytes: 119 line: 6 character: 19 token_type: type: Symbol symbol: "<=" trailing_trivia: - start_position: bytes: 119 line: 6 character: 19 end_position: bytes: 120 line: 6 character: 20 token_type: type: Whitespace characters: " " rhs: Var: Name: leading_trivia: [] token: start_position: bytes: 120 line: 6 character: 20 end_position: bytes: 121 line: 6 character: 21 token_type: type: Identifier identifier: z trailing_trivia: - start_position: bytes: 121 line: 6 character: 21 end_position: bytes: 122 line: 6 character: 21 token_type: type: Whitespace characters: "\n" - ~ - - Assignment: var_list: pairs: - End: Name: leading_trivia: [] token: start_position: bytes: 122 line: 7 character: 1 end_position: bytes: 123 line: 7 character: 2 token_type: type: Identifier identifier: g trailing_trivia: - start_position: bytes: 123 line: 7 character: 2 end_position: bytes: 124 line: 7 character: 3 token_type: type: Whitespace characters: " " equal_token: leading_trivia: [] token: start_position: bytes: 124 line: 7 character: 3 end_position: bytes: 125 line: 7 character: 4 token_type: type: Symbol symbol: "=" trailing_trivia: - start_position: bytes: 125 line: 7 character: 4 end_position: bytes: 126 line: 7 character: 5 token_type: type: Whitespace characters: " " expr_list: pairs: - End: UnaryOperator: unop: Minus: leading_trivia: [] token: start_position: bytes: 126 line: 7 character: 5 end_position: bytes: 127 line: 7 character: 6 token_type: type: Symbol symbol: "-" trailing_trivia: [] expression: BinaryOperator: lhs: Var: Name: leading_trivia: [] token: start_position: bytes: 127 line: 7 character: 6 end_position: bytes: 128 line: 7 character: 7 token_type: type: Identifier identifier: x trailing_trivia: - start_position: bytes: 128 line: 7 character: 7 end_position: bytes: 129 line: 7 character: 8 token_type: type: Whitespace characters: " " binop: Caret: leading_trivia: [] token: start_position: bytes: 129 line: 7 character: 8 end_position: bytes: 130 line: 7 character: 9 token_type: type: Symbol symbol: ^ trailing_trivia: - start_position: bytes: 130 line: 7 character: 9 end_position: bytes: 131 line: 7 character: 10 token_type: type: Whitespace characters: " " rhs: Number: leading_trivia: [] token: start_position: bytes: 131 line: 7 character: 10 end_position: bytes: 132 line: 7 character: 11 token_type: type: Number text: "2" trailing_trivia: - start_position: bytes: 132 line: 7 character: 11 end_position: bytes: 133 line: 7 character: 11 token_type: type: Whitespace characters: "\n" - ~ - - Assignment: var_list: pairs: - End: Name: leading_trivia: [] token: start_position: bytes: 133 line: 8 character: 1 end_position: bytes: 134 line: 8 character: 2 token_type: type: Identifier identifier: h trailing_trivia: - start_position: bytes: 134 line: 8 character: 2 end_position: bytes: 135 line: 8 character: 3 token_type: type: Whitespace characters: " " equal_token: leading_trivia: [] token: start_position: bytes: 135 line: 8 character: 3 end_position: bytes: 136 line: 8 character: 4 token_type: type: Symbol symbol: "=" trailing_trivia: - start_position: bytes: 136 line: 8 character: 4 end_position: bytes: 137 line: 8 character: 5 token_type: type: Whitespace characters: " " expr_list: pairs: - End: BinaryOperator: lhs: Var: Name: leading_trivia: [] token: start_position: bytes: 137 line: 8 character: 5 end_position: bytes: 138 line: 8 character: 6 token_type: type: Identifier identifier: x trailing_trivia: - start_position: bytes: 138 line: 8 character: 6 end_position: bytes: 139 line: 8 character: 7 token_type: type: Whitespace characters: " " binop: Caret: leading_trivia: [] token: start_position: bytes: 139 line: 8 character: 7 end_position: bytes: 140 line: 8 character: 8 token_type: type: Symbol symbol: ^ trailing_trivia: - start_position: bytes: 140 line: 8 character: 8 end_position: bytes: 141 line: 8 character: 9 token_type: type: Whitespace characters: " " rhs: BinaryOperator: lhs: Var: Name: leading_trivia: [] token: start_position: bytes: 141 line: 8 character: 9 end_position: bytes: 142 line: 8 character: 10 token_type: type: Identifier identifier: y trailing_trivia: - start_position: bytes: 142 line: 8 character: 10 end_position: bytes: 143 line: 8 character: 11 token_type: type: Whitespace characters: " " binop: Caret: leading_trivia: [] token: start_position: bytes: 143 line: 8 character: 11 end_position: bytes: 144 line: 8 character: 12 token_type: type: Symbol symbol: ^ trailing_trivia: - start_position: bytes: 144 line: 8 character: 12 end_position: bytes: 145 line: 8 character: 13 token_type: type: Whitespace characters: " " rhs: Var: Name: leading_trivia: [] token: start_position: bytes: 145 line: 8 character: 13 end_position: bytes: 146 line: 8 character: 14 token_type: type: Identifier identifier: z trailing_trivia: [] - ~