UNPKG

parsey

Version:

A parser for context-free grammars

20 lines (14 loc) 597 B
const valuators = {}; valuators.multiply = (a, b) => a * b; valuators.add = (a, b) => a + b; valuators.divide = (a, b) => a / b; valuators.subtract = (a, b) => a - b; valuators.number = (n) => parseInt(n); valuators.group = (n) => n; valuators.factor = (op, n) => parseInt(op) || parseInt(n); valuators.prod = (a, b, c, d) => (a * b) || a * c || b * d || a; valuators.sum = (a, op, b) => a + (b || 0); valuators.exp = (a, _, b) => Math.pow(a, b) || a; module.exports.valueOf = (exprType, values) => { return valuators[exprType].apply(null, values); };