diff --git a/src/lib/expr.ts b/src/lib/expr.ts index 4bd6b09..00dce77 100644 --- a/src/lib/expr.ts +++ b/src/lib/expr.ts @@ -77,13 +77,13 @@ const Operators: TokenHandler[] = [ leftBindingPower: -1, token: MINUS_TOKEN, parse: (left, matched, parser) => - map(parser.parseSubExpression(0), (right) => ({value: -right})), + map(parser.parseSubExpression(99), (right) => ({value: -right})), }, makeInfixOp(PLUS_TOKEN, 10, 11, (left, right) => ({ value: left + right })), makeInfixOp(MINUS_TOKEN, 10, 11, (left, right) => ({ value: left - right })), - makeInfixOp(TIMES_TOKEN, 10, 11, (left, right) => ({ value: left * right })), - makeInfixOp(FLOOR_TOKEN, 10, 11, (left, right) => ({ value: Math.floor(left / right) })), - makeInfixOp(DIV_TOKEN, 10, 11, (left, right) => ({ value: left / right })), + makeInfixOp(TIMES_TOKEN, 20, 21, (left, right) => ({ value: left * right })), + makeInfixOp(FLOOR_TOKEN, 20, 21, (left, right) => ({ value: Math.floor(left / right) })), + makeInfixOp(DIV_TOKEN, 20, 21, (left, right) => ({ value: left / right })), ]; const ZERO = { value: 0 };