()
| 124 | } |
| 125 | |
| 126 | function parseMultiplication(): ASTNode { |
| 127 | enter(); |
| 128 | try { |
| 129 | let left = parsePipe(); |
| 130 | while (peek().type === TokenType.STAR || peek().type === TokenType.SLASH) { |
| 131 | const op = advance().value; |
| 132 | const right = parsePipe(); |
| 133 | left = { type: 'binary', op, left, right }; |
| 134 | } |
| 135 | return left; |
| 136 | } finally { exit(); } |
| 137 | } |
| 138 | |
| 139 | function parsePipe(): ASTNode { |
| 140 | enter(); |