(node)
| 207 | } |
| 208 | |
| 209 | function nodeToTerm(node) { |
| 210 | if (!node) throw new Error('Expected term'); |
| 211 | if (node.type === 'expr') { |
| 212 | return { type: 'expr', op: node.op, left: nodeToTerm(node.left), right: nodeToTerm(node.right) }; |
| 213 | } |
| 214 | if (node.type === 'comparison') return convertComparison(node); |
| 215 | if (node.type === 'goal') return nodeToTerm(node.goal); |
| 216 | return node; |
| 217 | } |
| 218 | |
| 219 | const clauses = []; |
| 220 | while (index < tokens.length) { |
no test coverage detected