()
| 98 | } |
| 99 | |
| 100 | function parseMultiplicative() { |
| 101 | let node = parsePrimary(); |
| 102 | while (peek() && peek().type === 'sym' && (peek().value === '*' || peek().value === '/')) { |
| 103 | const op = peek().value; |
| 104 | eat('sym', op); |
| 105 | const right = parsePrimary(); |
| 106 | node = { type: 'expr', op, left: node, right }; |
| 107 | } |
| 108 | return node; |
| 109 | } |
| 110 | |
| 111 | function parsePrimary() { |
| 112 | const tok = peek(); |
no test coverage detected