()
| 87 | } |
| 88 | |
| 89 | function parseAdditive() { |
| 90 | let node = parseMultiplicative(); |
| 91 | while (peek() && peek().type === 'sym' && (peek().value === '+' || peek().value === '-')) { |
| 92 | const op = peek().value; |
| 93 | eat('sym', op); |
| 94 | const right = parseMultiplicative(); |
| 95 | node = { type: 'expr', op, left: node, right }; |
| 96 | } |
| 97 | return node; |
| 98 | } |
| 99 | |
| 100 | function parseMultiplicative() { |
| 101 | let node = parsePrimary(); |
no test coverage detected