UNPKG

simc-ast-builder

Version:

Parser and AST generator for SimulationCraft files

55 lines 1.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.handleSubExpr = exports.handleAdditiveExpr = exports.handleAddExpr = void 0; /** * Handler for addition expressions */ const handleAddExpr = (ctx, visitor) => { // Only handle if this is an addition if (!ctx.OP_PLUS()) { throw new Error("Not an addition expression"); } return { expressionType: "numeric", kind: "expression", left: visitor.visit(ctx.expression(0)), nodeType: "additive", operator: "add", right: visitor.visit(ctx.expression(1)), }; }; exports.handleAddExpr = handleAddExpr; /** * Handler for subtraction expressions */ const handleSubExpr = (ctx, visitor) => { // Only handle if this is a subtraction if (!ctx.OP_MINUS()) { throw new Error("Not a subtraction expression"); } return { expressionType: "numeric", kind: "expression", left: visitor.visit(ctx.expression(0)), nodeType: "additive", operator: "sub", right: visitor.visit(ctx.expression(1)), }; }; exports.handleSubExpr = handleSubExpr; /** * Generic handler for additive expressions (+ -) */ const handleAdditiveExpr = (ctx, visitor) => { if (ctx.OP_PLUS()) { return handleAddExpr(ctx, visitor); } else if (ctx.OP_MINUS()) { return handleSubExpr(ctx, visitor); } else { throw new Error("Unknown additive operator"); } }; exports.handleAdditiveExpr = handleAdditiveExpr; //# sourceMappingURL=AdditiveExprHandler.js.map