ifc-expressions 2.0.1-beta.1 → 2.0.1-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/dist/IfcExpression.d.ts +2 -1
  2. package/dist/cjs/IfcExpression.js +6 -4
  3. package/dist/cjs/IfcExpression.js.map +1 -1
  4. package/dist/cjs/compiler/ExprManager.js +4 -4
  5. package/dist/cjs/compiler/ExprManager.js.map +1 -1
  6. package/dist/cjs/compiler/ExprToTextInputLinker.js +6 -6
  7. package/dist/cjs/compiler/ExprToTextInputLinker.js.map +1 -1
  8. package/dist/cjs/error/mapper/MissingFunctionArgumentExceptionMapper.js +2 -2
  9. package/dist/cjs/error/mapper/MissingFunctionArgumentExceptionMapper.js.map +1 -1
  10. package/dist/cjs/error/mapper/NoSuchFunctionExceptionMapper.js +2 -2
  11. package/dist/cjs/error/mapper/NoSuchFunctionExceptionMapper.js.map +1 -1
  12. package/dist/cjs/error/mapper/SyntaxErrorMapper.js +2 -2
  13. package/dist/cjs/error/mapper/SyntaxErrorMapper.js.map +1 -1
  14. package/dist/cjs/error/mapper/ValidationExceptionMapper.js +2 -2
  15. package/dist/cjs/error/mapper/ValidationExceptionMapper.js.map +1 -1
  16. package/dist/cjs/error/mapper/WrongFunctionArgumentTypeExceptionMapper.js +2 -2
  17. package/dist/cjs/error/mapper/WrongFunctionArgumentTypeExceptionMapper.js.map +1 -1
  18. package/dist/cjs/expression/Expr.js.map +1 -1
  19. package/dist/cjs/expression/ExprBase.js +2 -2
  20. package/dist/cjs/expression/ExprBase.js.map +1 -1
  21. package/dist/cjs/expression/ExprEvalResult.js.map +1 -1
  22. package/dist/cjs/expression/function/IfcExpressionFunctions.js +2 -2
  23. package/dist/cjs/expression/function/IfcExpressionFunctions.js.map +1 -1
  24. package/dist/cjs/expression/function/impl/IF.js +5 -5
  25. package/dist/cjs/expression/function/impl/IF.js.map +1 -1
  26. package/dist/cjs/postprocess/ExprVisitor.js.map +1 -1
  27. package/dist/cjs/postprocess/ExprWalker.js.map +1 -1
  28. package/dist/compiler/ExprManager.d.ts +1 -1
  29. package/dist/compiler/ExprToTextInputLinker.d.ts +2 -2
  30. package/dist/expression/Expr.d.ts +1 -1
  31. package/dist/expression/ExprBase.d.ts +1 -1
  32. package/dist/expression/ExprEvalResult.d.ts +1 -1
  33. package/dist/mjs/IfcExpression.js +4 -3
  34. package/dist/mjs/IfcExpression.js.map +1 -1
  35. package/dist/mjs/compiler/ExprManager.js +2 -2
  36. package/dist/mjs/compiler/ExprManager.js.map +1 -1
  37. package/dist/mjs/compiler/ExprToTextInputLinker.js +3 -3
  38. package/dist/mjs/compiler/ExprToTextInputLinker.js.map +1 -1
  39. package/dist/mjs/error/mapper/MissingFunctionArgumentExceptionMapper.js +1 -1
  40. package/dist/mjs/error/mapper/MissingFunctionArgumentExceptionMapper.js.map +1 -1
  41. package/dist/mjs/error/mapper/NoSuchFunctionExceptionMapper.js +1 -1
  42. package/dist/mjs/error/mapper/NoSuchFunctionExceptionMapper.js.map +1 -1
  43. package/dist/mjs/error/mapper/SyntaxErrorMapper.js +1 -1
  44. package/dist/mjs/error/mapper/SyntaxErrorMapper.js.map +1 -1
  45. package/dist/mjs/error/mapper/ValidationExceptionMapper.js +1 -1
  46. package/dist/mjs/error/mapper/ValidationExceptionMapper.js.map +1 -1
  47. package/dist/mjs/error/mapper/WrongFunctionArgumentTypeExceptionMapper.js +1 -1
  48. package/dist/mjs/error/mapper/WrongFunctionArgumentTypeExceptionMapper.js.map +1 -1
  49. package/dist/mjs/expression/Expr.js.map +1 -1
  50. package/dist/mjs/expression/ExprBase.js +1 -1
  51. package/dist/mjs/expression/ExprBase.js.map +1 -1
  52. package/dist/mjs/expression/ExprEvalResult.js.map +1 -1
  53. package/dist/mjs/expression/function/IfcExpressionFunctions.js +1 -1
  54. package/dist/mjs/expression/function/IfcExpressionFunctions.js.map +1 -1
  55. package/dist/mjs/expression/function/impl/IF.js +2 -2
  56. package/dist/mjs/expression/function/impl/IF.js.map +1 -1
  57. package/dist/mjs/postprocess/ExprVisitor.js.map +1 -1
  58. package/dist/mjs/postprocess/ExprWalker.js.map +1 -1
  59. package/dist/postprocess/ExprVisitor.d.ts +1 -1
  60. package/dist/postprocess/ExprWalker.d.ts +1 -1
  61. package/package.json +1 -1
@@ -24,7 +24,8 @@ import type { BoxedValueTypes } from "./value/BoxedValueTypes.js";
24
24
  import { ExprEvalError, ExprEvalResult, isExprEvalError, isExprEvalSuccess } from "./expression/ExprEvalResult.js";
25
25
  import { ExprKind } from "./expression/ExprKind.js";
26
26
  import { TypeManager } from "./compiler/TypeManager.js";
27
- export { IfcElementAccessor, IfcExpressionContext, Value, StringValue, BooleanValue, LogicalValue, NumericValue, ExpressionValue, ReferenceValue, IfcPropertySetAccessor, IfcPropertyAccessor, IfcRootObjectAccessor, IfcTypeObjectAccessor, NamedObjectAccessor, ObjectAccessor, Expr, ExprCompiler, ExprKind, IfcExpressionEvaluationException, IfcExpressionErrorListener, IfcExpressionVisitor, isPresent, isNullish, ExprEvalResult, ExprEvalError, isExprEvalError, isExprEvalSuccess, };
27
+ import { ExprToTextInputLinker } from "./compiler/ExprToTextInputLinker.js";
28
+ export { IfcElementAccessor, IfcExpressionContext, Value, StringValue, BooleanValue, LogicalValue, NumericValue, ExpressionValue, ReferenceValue, IfcPropertySetAccessor, IfcPropertyAccessor, IfcRootObjectAccessor, IfcTypeObjectAccessor, NamedObjectAccessor, ObjectAccessor, Expr, ExprCompiler, ExprKind, IfcExpressionEvaluationException, IfcExpressionErrorListener, IfcExpressionVisitor, isPresent, isNullish, ExprEvalResult, ExprEvalError, isExprEvalError, isExprEvalSuccess, ExprToTextInputLinker, };
28
29
  export type { BoxedValueTypes };
29
30
  export declare class IfcExpressionParseResult {
30
31
  private readonly _input;
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.IfcExpression = exports.IfcExpressionParseResult = exports.isExprEvalSuccess = exports.isExprEvalError = exports.isNullish = exports.isPresent = exports.IfcExpressionVisitor = exports.IfcExpressionErrorListener = exports.IfcExpressionEvaluationException = exports.ExprKind = exports.ExprCompiler = exports.NamedObjectAccessor = exports.IfcTypeObjectAccessor = exports.IfcRootObjectAccessor = exports.IfcPropertyAccessor = exports.IfcPropertySetAccessor = exports.ReferenceValue = exports.NumericValue = exports.LogicalValue = exports.BooleanValue = exports.StringValue = exports.IfcElementAccessor = void 0;
6
+ exports.IfcExpression = exports.IfcExpressionParseResult = exports.ExprToTextInputLinker = exports.isExprEvalSuccess = exports.isExprEvalError = exports.isNullish = exports.isPresent = exports.IfcExpressionVisitor = exports.IfcExpressionErrorListener = exports.IfcExpressionEvaluationException = exports.ExprKind = exports.ExprCompiler = exports.NamedObjectAccessor = exports.IfcTypeObjectAccessor = exports.IfcRootObjectAccessor = exports.IfcPropertyAccessor = exports.IfcPropertySetAccessor = exports.ReferenceValue = exports.NumericValue = exports.LogicalValue = exports.BooleanValue = exports.StringValue = exports.IfcElementAccessor = void 0;
7
7
  const antlr4_1 = require("antlr4");
8
8
  const ExprCompiler_js_1 = require("./compiler/ExprCompiler.js");
9
9
  Object.defineProperty(exports, "ExprCompiler", { enumerable: true, get: function () { return ExprCompiler_js_1.ExprCompiler; } });
@@ -49,7 +49,8 @@ Object.defineProperty(exports, "ExprKind", { enumerable: true, get: function ()
49
49
  const ValidationException_js_1 = require("./error/ValidationException.js");
50
50
  const ExceptionToExprEvalErrorMapper_js_1 = require("./error/ExceptionToExprEvalErrorMapper.js");
51
51
  const NopContext_js_1 = require("./context/NopContext.js");
52
- const ExprToTextInputLinker_1 = require("./compiler/ExprToTextInputLinker");
52
+ const ExprToTextInputLinker_js_1 = require("./compiler/ExprToTextInputLinker.js");
53
+ Object.defineProperty(exports, "ExprToTextInputLinker", { enumerable: true, get: function () { return ExprToTextInputLinker_js_1.ExprToTextInputLinker; } });
53
54
  class IfcExpressionParseResult {
54
55
  constructor(input, typeManager, exprContext) {
55
56
  this._typeManager = typeManager;
@@ -88,7 +89,8 @@ class IfcExpression {
88
89
  }
89
90
  lexer.addErrorListener(myErrorListener);
90
91
  parser.addErrorListener(myErrorListener);
91
- const expr = parser.expr();
92
+ let expr;
93
+ expr = parser.expr();
92
94
  const validationListener = new IfcExpressionValidationListener_js_1.IfcExpressionValidationListener();
93
95
  if (!myErrorListener.isErrorOccurred()) {
94
96
  const walker = new antlr4_1.ParseTreeWalker();
@@ -114,7 +116,7 @@ class IfcExpression {
114
116
  static compile(parseResult) {
115
117
  const compiler = new ExprCompiler_js_1.ExprCompiler(parseResult.typeManager);
116
118
  const expr = compiler.visit(parseResult.parseTree);
117
- ExprToTextInputLinker_1.ExprToTextInputLinker.linkTextToExpressions(parseResult.input, expr, compiler.getExprManager());
119
+ ExprToTextInputLinker_js_1.ExprToTextInputLinker.linkTextToExpressions(parseResult.input, expr, compiler.getExprManager());
118
120
  return expr;
119
121
  }
120
122
  /**
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/IfcExpression.ts"],"names":[],"mappings":"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","file":"IfcExpression.js","sourcesContent":["import {\n CharStream,\n CommonTokenStream,\n ErrorListener,\n ParserRuleContext,\n ParseTreeWalker,\n Token,\n} from \"antlr4\";\nimport { ExprCompiler } from \"./compiler/ExprCompiler.js\";\nimport { IfcExpressionErrorListener } from \"./IfcExpressionErrorListener.js\";\nimport { IfcExpressionValidationListener } from \"./compiler/IfcExpressionValidationListener.js\";\n\nimport { isNullish, isPresent } from \"./util/IfcExpressionUtils.js\";\nimport { IfcExpressionContext } from \"./context/IfcExpressionContext.js\";\nimport { Expr } from \"./expression/Expr.js\";\n\nimport { IfcElementAccessor } from \"./context/IfcElementAccessor.js\";\nimport { Value } from \"./value/Value.js\";\nimport { StringValue } from \"./value/StringValue.js\";\nimport { NumericValue } from \"./value/NumericValue.js\";\nimport { BooleanValue } from \"./value/BooleanValue.js\";\nimport { LogicalValue } from \"./value/LogicalValue.js\";\nimport { ReferenceValue } from \"./value/ReferenceValue.js\";\nimport { IfcPropertySetAccessor } from \"./context/IfcPropertySetAccessor.js\";\nimport { IfcPropertyAccessor } from \"./context/IfcPropertyAccessor.js\";\nimport { IfcRootObjectAccessor } from \"./context/IfcRootObjectAccessor.js\";\nimport { IfcTypeObjectAccessor } from \"./context/IfcTypeObjectAccessor.js\";\nimport { NamedObjectAccessor } from \"./context/NamedObjectAccessor.js\";\nimport IfcExpressionParser from \"./gen/parser/IfcExpressionParser.js\";\nimport IfcExpressionVisitor from \"./gen/parser/IfcExpressionVisitor.js\";\nimport IfcExpressionLexer from \"./gen/parser/IfcExpressionLexer.js\";\nimport { ObjectAccessor } from \"./context/ObjectAccessor.js\";\nimport { IfcExpressionEvaluationException } from \"./expression/IfcExpressionEvaluationException.js\";\nimport type { ExpressionValue } from \"./value/ExpressionValue.js\";\nimport type { BoxedValueTypes } from \"./value/BoxedValueTypes.js\";\nimport {\n ExprEvalConsequentialError1Obj,\n ExprEvalError,\n ExprEvalResult,\n isExprEvalError,\n isExprEvalSuccess,\n} from \"./expression/ExprEvalResult.js\";\nimport { ExprKind } from \"./expression/ExprKind.js\";\nimport { ValidationException } from \"./error/ValidationException.js\";\nimport { TypeManager } from \"./compiler/TypeManager.js\";\nimport { mapException } from \"./error/ExceptionToExprEvalErrorMapper.js\";\nimport { NopContext } from \"./context/NopContext.js\";\nimport { ExprToTextInputLinker } from \"./compiler/ExprToTextInputLinker\";\nimport { TextSpan } from \"./util/TextSpan\";\n\nexport {\n IfcElementAccessor,\n IfcExpressionContext,\n Value,\n StringValue,\n BooleanValue,\n LogicalValue,\n NumericValue,\n ExpressionValue,\n ReferenceValue,\n IfcPropertySetAccessor,\n IfcPropertyAccessor,\n IfcRootObjectAccessor,\n IfcTypeObjectAccessor,\n NamedObjectAccessor,\n ObjectAccessor,\n Expr,\n ExprCompiler,\n ExprKind,\n IfcExpressionEvaluationException,\n IfcExpressionErrorListener,\n IfcExpressionVisitor,\n isPresent,\n isNullish,\n ExprEvalResult,\n ExprEvalError,\n isExprEvalError,\n isExprEvalSuccess,\n};\n\nexport type { BoxedValueTypes };\n\nexport class IfcExpressionParseResult {\n private readonly _input: string;\n private readonly _typeManager: TypeManager;\n private readonly _parseTree: ParserRuleContext;\n\n constructor(input: string, typeManager: TypeManager, exprContext) {\n this._typeManager = typeManager;\n this._parseTree = exprContext;\n this._input = input;\n }\n\n get typeManager(): TypeManager {\n return this._typeManager;\n }\n\n get parseTree(): ParserRuleContext {\n return this._parseTree;\n }\n\n get input(): string {\n return this._input;\n }\n}\n\nexport class IfcExpression {\n /**\n * Parses the input and returns a parse result, which contains the parse tree, the type information per parse tree node, and the input.\n * @param input\n * @param errorListener\n * @return the parse result, which can subequently be compiled into an Expr using compile().\n */\n public static parse(\n input: string,\n errorListener?: ErrorListener<Token | number>\n ): IfcExpressionParseResult {\n const chars = new CharStream(input); // replace this with a FileStream as required\n const lexer = new IfcExpressionLexer(chars);\n const tokens = new CommonTokenStream(lexer);\n const parser = new IfcExpressionParser(tokens);\n lexer.removeErrorListeners();\n parser.removeErrorListeners();\n const myErrorListener = new IfcExpressionErrorListener();\n if (isPresent(errorListener)) {\n lexer.addErrorListener(errorListener);\n parser.addErrorListener(errorListener);\n }\n lexer.addErrorListener(myErrorListener);\n parser.addErrorListener(myErrorListener);\n const expr = parser.expr();\n const validationListener = new IfcExpressionValidationListener();\n if (!myErrorListener.isErrorOccurred()) {\n const walker = new ParseTreeWalker();\n try {\n walker.walk(validationListener, expr);\n } catch (e) {\n if (e instanceof ValidationException) {\n if (errorListener instanceof IfcExpressionErrorListener) {\n errorListener.validationException(e);\n }\n myErrorListener.validationException(e);\n }\n }\n }\n return new IfcExpressionParseResult(\n input,\n validationListener.getTypeManager(),\n expr\n );\n }\n\n /**\n * Compiles the specified parseResult into an Expr.\n * @param parseResult\n * @return the Expression (Expr), which can be evaluated to obtain its result.\n */\n public static compile(\n parseResult: IfcExpressionParseResult\n ): Expr<ExpressionValue> {\n const compiler = new ExprCompiler(parseResult.typeManager);\n const expr = compiler.visit(parseResult.parseTree);\n ExprToTextInputLinker.linkTextToExpressions(\n parseResult.input,\n expr,\n compiler.getExprManager()\n );\n return expr;\n }\n\n /**\n * Evaluates the specified input expression and returns the evaluation result. The parse\n * and compile steps are done internally.\n *\n * @param expression: the input expression\n * @param context: the context required for accessing the IFC model\n * @return the result (or an error object).\n */\n public static evaluate(\n expression: string,\n context: IfcExpressionContext = new NopContext()\n ): ExprEvalResult<ExpressionValue> {\n const errorListener = new IfcExpressionErrorListener();\n const parseResult = IfcExpression.parse(expression, errorListener);\n if (errorListener.isErrorOccurred()) {\n return mapException(errorListener.getException());\n }\n const compiledExpression = this.compile(parseResult);\n return compiledExpression.evaluate(context, new Map<string, any>());\n }\n\n public static formatError(input: string, error: ExprEvalError) {\n const lines = [\"** Error **\"];\n if (!isNullish(error[\"textSpan\"])) {\n const span: TextSpan = error[\"textSpan\"];\n const underlined = span.underline(input, \"^\");\n const startString = \"Input: \";\n const indented = this.indent(underlined, startString.length);\n const replaced = startString + indented.substr(startString.length);\n replaced.split(\"\\n\").forEach((line) => lines.push(line));\n }\n lines.push(\"Problem: \" + error.message);\n return lines.join(\"\\n\");\n }\n\n private static indent(s: string, by: number) {\n return s\n .split(\"\\n\")\n .map((line) => \" \".repeat(by) + line)\n .join(\"\\n\");\n }\n\n public static evaluateExpression(\n expr: Expr<ExpressionValue>,\n context: IfcExpressionContext = new NopContext()\n ) {\n if (isNullish(expr.getTextSpan())) {\n // if the expr was created by parsing an input, it has a textSpan set.\n // If the expr was created programmatically, we have to generate its exprString once, which causes its\n // textspan to be set.\n // make sure we know the position\n expr.toExprString();\n }\n return expr.evaluate(context, new Map());\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/IfcExpression.ts"],"names":[],"mappings":";;;;;;AAAA,mCAOgB;AAChB,gEAA0D;AA0DxD,6FA1DO,8BAAY,OA0DP;AAzDd,mFAA6E;AA4D3E,2GA5DO,0DAA0B,OA4DP;AA3D5B,sGAAgG;AAEhG,wEAAoE;AA4DlE,0FA5DO,iCAAS,OA4DP;AADT,0FA3DkB,iCAAS,OA2DlB;AAvDX,2EAAqE;AAkCnE,mGAlCO,0CAAkB,OAkCP;AAhCpB,2DAAqD;AAmCnD,4FAnCO,4BAAW,OAmCP;AAlCb,6DAAuD;AAqCrD,6FArCO,8BAAY,OAqCP;AApCd,6DAAuD;AAkCrD,6FAlCO,8BAAY,OAkCP;AAjCd,6DAAuD;AAkCrD,6FAlCO,8BAAY,OAkCP;AAjCd,iEAA2D;AAoCzD,+FApCO,kCAAc,OAoCP;AAnChB,mFAA6E;AAoC3E,uGApCO,kDAAsB,OAoCP;AAnCxB,6EAAuE;AAoCrE,oGApCO,4CAAmB,OAoCP;AAnCrB,iFAA2E;AAoCzE,sGApCO,gDAAqB,OAoCP;AAnCvB,iFAA2E;AAoCzE,sGApCO,gDAAqB,OAoCP;AAnCvB,6EAAuE;AAoCrE,oGApCO,4CAAmB,OAoCP;AAnCrB,iGAAsE;AACtE,mGAAwE;AAyCtE,+BAzCK,iCAAoB,CAyCL;AAxCtB,+FAAoE;AAEpE,0GAAoG;AAoClG,iHApCO,sEAAgC,OAoCP;AAjClC,sEAKwC;AAmCtC,gGArCA,mCAAe,OAqCA;AACf,kGArCA,qCAAiB,OAqCA;AAnCnB,0DAAoD;AA0BlD,yFA1BO,sBAAQ,OA0BP;AAzBV,2EAAqE;AAErE,iGAAyE;AACzE,2DAAqD;AACrD,kFAA4E;AA+B1E,sGA/BO,gDAAqB,OA+BP;AAKvB,MAAa,wBAAwB;IAKnC,YAAY,KAAa,EAAE,WAAwB,EAAE,WAAW;QAC9D,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF;AAtBD,4DAsBC;AAED,MAAa,aAAa;IACxB;;;;;OAKG;IACI,MAAM,CAAC,KAAK,CACjB,KAAa,EACb,aAA6C;QAE7C,MAAM,KAAK,GAAG,IAAI,mBAAU,CAAC,KAAK,CAAC,CAAC,CAAC,6CAA6C;QAClF,MAAM,KAAK,GAAG,IAAI,+BAAkB,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,IAAI,0BAAiB,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,IAAI,gCAAmB,CAAC,MAAM,CAAC,CAAC;QAC/C,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAC7B,MAAM,CAAC,oBAAoB,EAAE,CAAC;QAC9B,MAAM,eAAe,GAAG,IAAI,0DAA0B,EAAE,CAAC;QACzD,IAAI,IAAA,iCAAS,EAAC,aAAa,CAAC,EAAE;YAC5B,KAAK,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;YACtC,MAAM,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;SACxC;QACD,KAAK,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;QACxC,MAAM,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;QACzC,IAAI,IAAI,CAAC;QACT,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QACrB,MAAM,kBAAkB,GAAG,IAAI,oEAA+B,EAAE,CAAC;QACjE,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,EAAE;YACtC,MAAM,MAAM,GAAG,IAAI,wBAAe,EAAE,CAAC;YACrC,IAAI;gBACF,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;aACvC;YAAC,OAAO,CAAC,EAAE;gBACV,IAAI,CAAC,YAAY,4CAAmB,EAAE;oBACpC,IAAI,aAAa,YAAY,0DAA0B,EAAE;wBACvD,aAAa,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;qBACtC;oBACD,eAAe,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;iBACxC;aACF;SACF;QACD,OAAO,IAAI,wBAAwB,CACjC,KAAK,EACL,kBAAkB,CAAC,cAAc,EAAE,EACnC,IAAI,CACL,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,OAAO,CACnB,WAAqC;QAErC,MAAM,QAAQ,GAAG,IAAI,8BAAY,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QAC3D,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACnD,gDAAqB,CAAC,qBAAqB,CACzC,WAAW,CAAC,KAAK,EACjB,IAAI,EACJ,QAAQ,CAAC,cAAc,EAAE,CAC1B,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,QAAQ,CACpB,UAAkB,EAClB,UAAgC,IAAI,0BAAU,EAAE;QAEhD,MAAM,aAAa,GAAG,IAAI,0DAA0B,EAAE,CAAC;QACvD,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QACnE,IAAI,aAAa,CAAC,eAAe,EAAE,EAAE;YACnC,OAAO,IAAA,gDAAY,EAAC,aAAa,CAAC,YAAY,EAAE,CAAC,CAAC;SACnD;QACD,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACrD,OAAO,kBAAkB,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,GAAG,EAAe,CAAC,CAAC;IACtE,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,KAAa,EAAE,KAAoB;QAC3D,MAAM,KAAK,GAAG,CAAC,aAAa,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAA,iCAAS,EAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE;YACjC,MAAM,IAAI,GAAa,KAAK,CAAC,UAAU,CAAC,CAAC;YACzC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC9C,MAAM,WAAW,GAAG,SAAS,CAAC;YAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;YAC7D,MAAM,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACnE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SAC1D;QACD,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;QACxC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAEO,MAAM,CAAC,MAAM,CAAC,CAAS,EAAE,EAAU;QACzC,OAAO,CAAC;aACL,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;aACpC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAEM,MAAM,CAAC,kBAAkB,CAC9B,IAA2B,EAC3B,UAAgC,IAAI,0BAAU,EAAE;QAEhD,IAAI,IAAA,iCAAS,EAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE;YACjC,sEAAsE;YACtE,sGAAsG;YACtG,sBAAsB;YACtB,iCAAiC;YACjC,IAAI,CAAC,YAAY,EAAE,CAAC;SACrB;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;IAC3C,CAAC;CACF;AAxHD,sCAwHC","file":"IfcExpression.js","sourcesContent":["import {\n CharStream,\n CommonTokenStream,\n ErrorListener,\n ParserRuleContext,\n ParseTreeWalker,\n Token,\n} from \"antlr4\";\nimport { ExprCompiler } from \"./compiler/ExprCompiler.js\";\nimport { IfcExpressionErrorListener } from \"./IfcExpressionErrorListener.js\";\nimport { IfcExpressionValidationListener } from \"./compiler/IfcExpressionValidationListener.js\";\n\nimport { isNullish, isPresent } from \"./util/IfcExpressionUtils.js\";\nimport { IfcExpressionContext } from \"./context/IfcExpressionContext.js\";\nimport { Expr } from \"./expression/Expr.js\";\n\nimport { IfcElementAccessor } from \"./context/IfcElementAccessor.js\";\nimport { Value } from \"./value/Value.js\";\nimport { StringValue } from \"./value/StringValue.js\";\nimport { NumericValue } from \"./value/NumericValue.js\";\nimport { BooleanValue } from \"./value/BooleanValue.js\";\nimport { LogicalValue } from \"./value/LogicalValue.js\";\nimport { ReferenceValue } from \"./value/ReferenceValue.js\";\nimport { IfcPropertySetAccessor } from \"./context/IfcPropertySetAccessor.js\";\nimport { IfcPropertyAccessor } from \"./context/IfcPropertyAccessor.js\";\nimport { IfcRootObjectAccessor } from \"./context/IfcRootObjectAccessor.js\";\nimport { IfcTypeObjectAccessor } from \"./context/IfcTypeObjectAccessor.js\";\nimport { NamedObjectAccessor } from \"./context/NamedObjectAccessor.js\";\nimport IfcExpressionParser from \"./gen/parser/IfcExpressionParser.js\";\nimport IfcExpressionVisitor from \"./gen/parser/IfcExpressionVisitor.js\";\nimport IfcExpressionLexer from \"./gen/parser/IfcExpressionLexer.js\";\nimport { ObjectAccessor } from \"./context/ObjectAccessor.js\";\nimport { IfcExpressionEvaluationException } from \"./expression/IfcExpressionEvaluationException.js\";\nimport type { ExpressionValue } from \"./value/ExpressionValue.js\";\nimport type { BoxedValueTypes } from \"./value/BoxedValueTypes.js\";\nimport {\n ExprEvalError,\n ExprEvalResult,\n isExprEvalError,\n isExprEvalSuccess,\n} from \"./expression/ExprEvalResult.js\";\nimport { ExprKind } from \"./expression/ExprKind.js\";\nimport { ValidationException } from \"./error/ValidationException.js\";\nimport { TypeManager } from \"./compiler/TypeManager.js\";\nimport { mapException } from \"./error/ExceptionToExprEvalErrorMapper.js\";\nimport { NopContext } from \"./context/NopContext.js\";\nimport { ExprToTextInputLinker } from \"./compiler/ExprToTextInputLinker.js\";\nimport { TextSpan } from \"./util/TextSpan.js\";\n\nexport {\n IfcElementAccessor,\n IfcExpressionContext,\n Value,\n StringValue,\n BooleanValue,\n LogicalValue,\n NumericValue,\n ExpressionValue,\n ReferenceValue,\n IfcPropertySetAccessor,\n IfcPropertyAccessor,\n IfcRootObjectAccessor,\n IfcTypeObjectAccessor,\n NamedObjectAccessor,\n ObjectAccessor,\n Expr,\n ExprCompiler,\n ExprKind,\n IfcExpressionEvaluationException,\n IfcExpressionErrorListener,\n IfcExpressionVisitor,\n isPresent,\n isNullish,\n ExprEvalResult,\n ExprEvalError,\n isExprEvalError,\n isExprEvalSuccess,\n ExprToTextInputLinker,\n};\n\nexport type { BoxedValueTypes };\n\nexport class IfcExpressionParseResult {\n private readonly _input: string;\n private readonly _typeManager: TypeManager;\n private readonly _parseTree: ParserRuleContext;\n\n constructor(input: string, typeManager: TypeManager, exprContext) {\n this._typeManager = typeManager;\n this._parseTree = exprContext;\n this._input = input;\n }\n\n get typeManager(): TypeManager {\n return this._typeManager;\n }\n\n get parseTree(): ParserRuleContext {\n return this._parseTree;\n }\n\n get input(): string {\n return this._input;\n }\n}\n\nexport class IfcExpression {\n /**\n * Parses the input and returns a parse result, which contains the parse tree, the type information per parse tree node, and the input.\n * @param input\n * @param errorListener\n * @return the parse result, which can subequently be compiled into an Expr using compile().\n */\n public static parse(\n input: string,\n errorListener?: ErrorListener<Token | number>\n ): IfcExpressionParseResult {\n const chars = new CharStream(input); // replace this with a FileStream as required\n const lexer = new IfcExpressionLexer(chars);\n const tokens = new CommonTokenStream(lexer);\n const parser = new IfcExpressionParser(tokens);\n lexer.removeErrorListeners();\n parser.removeErrorListeners();\n const myErrorListener = new IfcExpressionErrorListener();\n if (isPresent(errorListener)) {\n lexer.addErrorListener(errorListener);\n parser.addErrorListener(errorListener);\n }\n lexer.addErrorListener(myErrorListener);\n parser.addErrorListener(myErrorListener);\n let expr;\n expr = parser.expr();\n const validationListener = new IfcExpressionValidationListener();\n if (!myErrorListener.isErrorOccurred()) {\n const walker = new ParseTreeWalker();\n try {\n walker.walk(validationListener, expr);\n } catch (e) {\n if (e instanceof ValidationException) {\n if (errorListener instanceof IfcExpressionErrorListener) {\n errorListener.validationException(e);\n }\n myErrorListener.validationException(e);\n }\n }\n }\n return new IfcExpressionParseResult(\n input,\n validationListener.getTypeManager(),\n expr\n );\n }\n\n /**\n * Compiles the specified parseResult into an Expr.\n * @param parseResult\n * @return the Expression (Expr), which can be evaluated to obtain its result.\n */\n public static compile(\n parseResult: IfcExpressionParseResult\n ): Expr<ExpressionValue> {\n const compiler = new ExprCompiler(parseResult.typeManager);\n const expr = compiler.visit(parseResult.parseTree);\n ExprToTextInputLinker.linkTextToExpressions(\n parseResult.input,\n expr,\n compiler.getExprManager()\n );\n return expr;\n }\n\n /**\n * Evaluates the specified input expression and returns the evaluation result. The parse\n * and compile steps are done internally.\n *\n * @param expression: the input expression\n * @param context: the context required for accessing the IFC model\n * @return the result (or an error object).\n */\n public static evaluate(\n expression: string,\n context: IfcExpressionContext = new NopContext()\n ): ExprEvalResult<ExpressionValue> {\n const errorListener = new IfcExpressionErrorListener();\n const parseResult = IfcExpression.parse(expression, errorListener);\n if (errorListener.isErrorOccurred()) {\n return mapException(errorListener.getException());\n }\n const compiledExpression = this.compile(parseResult);\n return compiledExpression.evaluate(context, new Map<string, any>());\n }\n\n public static formatError(input: string, error: ExprEvalError) {\n const lines = [\"** Error **\"];\n if (!isNullish(error[\"textSpan\"])) {\n const span: TextSpan = error[\"textSpan\"];\n const underlined = span.underline(input, \"^\");\n const startString = \"Input: \";\n const indented = this.indent(underlined, startString.length);\n const replaced = startString + indented.substr(startString.length);\n replaced.split(\"\\n\").forEach((line) => lines.push(line));\n }\n lines.push(\"Problem: \" + error.message);\n return lines.join(\"\\n\");\n }\n\n private static indent(s: string, by: number) {\n return s\n .split(\"\\n\")\n .map((line) => \" \".repeat(by) + line)\n .join(\"\\n\");\n }\n\n public static evaluateExpression(\n expr: Expr<ExpressionValue>,\n context: IfcExpressionContext = new NopContext()\n ) {\n if (isNullish(expr.getTextSpan())) {\n // if the expr was created by parsing an input, it has a textSpan set.\n // If the expr was created programmatically, we have to generate its exprString once, which causes its\n // textspan to be set.\n // make sure we know the position\n expr.toExprString();\n }\n return expr.evaluate(context, new Map());\n }\n}\n"]}
@@ -1,16 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ExprManager = void 0;
4
- const ValidationException_1 = require("../error/ValidationException");
5
- const IfcExpressionUtils_1 = require("../util/IfcExpressionUtils");
4
+ const ValidationException_js_1 = require("../error/ValidationException.js");
5
+ const IfcExpressionUtils_js_1 = require("../util/IfcExpressionUtils.js");
6
6
  class ExprManager {
7
7
  constructor() {
8
8
  this.contextToExpr = new Map();
9
9
  }
10
10
  registerExprWithContext(expr, ctx) {
11
11
  const otherCtx = this.contextToExpr.get(expr);
12
- if (!(0, IfcExpressionUtils_1.isNullish)(otherCtx) && otherCtx !== ctx) {
13
- throw new ValidationException_1.ValidationException(`Expression (of kind '${expr.getKind}') at line ${ctx.start.line}, column ${ctx.start.start} is already associated with a ParserRuleContext of type ${otherCtx.constructor.name}' cannot associate it with another one (${ctx.constructor.name} at ${ctx.start.line}:${ctx.start.start}')`, ctx);
12
+ if (!(0, IfcExpressionUtils_js_1.isNullish)(otherCtx) && otherCtx !== ctx) {
13
+ throw new ValidationException_js_1.ValidationException(`Expression (of kind '${expr.getKind}') at line ${ctx.start.line}, column ${ctx.start.start} is already associated with a ParserRuleContext of type ${otherCtx.constructor.name}' cannot associate it with another one (${ctx.constructor.name} at ${ctx.start.line}:${ctx.start.start}')`, ctx);
14
14
  }
15
15
  this.contextToExpr.set(expr, ctx);
16
16
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/compiler/ExprManager.ts"],"names":[],"mappings":";;;AAEA,sEAAmE;AACnE,mEAAuD;AAEvD,MAAa,WAAW;IAGtB;QAFiB,kBAAa,GAAG,IAAI,GAAG,EAAgC,CAAC;IAE1D,CAAC;IAET,uBAAuB,CAAC,IAAe,EAAE,GAAG;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAA,8BAAS,EAAC,QAAQ,CAAC,IAAI,QAAQ,KAAK,GAAG,EAAE;YAC5C,MAAM,IAAI,yCAAmB,CAC3B,wBAAwB,IAAI,CAAC,OAAO,cAAc,GAAG,CAAC,KAAK,CAAC,IAAI,YAAY,GAAG,CAAC,KAAK,CAAC,KAAK,2DAA2D,QAAQ,CAAC,WAAW,CAAC,IAAI,2CAA2C,GAAG,CAAC,WAAW,CAAC,IAAI,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAC1R,GAAG,CACJ,CAAC;SACH;QACD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,UAAU,CAAC,IAAe;QACxB,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;CACF;AAnBD,kCAmBC","file":"compiler/ExprManager.js","sourcesContent":["import { ParserRuleContext } from \"antlr4\";\nimport { Expr } from \"../expression/Expr\";\nimport { ValidationException } from \"../error/ValidationException\";\nimport { isNullish } from \"../util/IfcExpressionUtils\";\n\nexport class ExprManager {\n private readonly contextToExpr = new Map<Expr<any>, ParserRuleContext>();\n\n constructor() {}\n\n public registerExprWithContext(expr: Expr<any>, ctx) {\n const otherCtx = this.contextToExpr.get(expr);\n if (!isNullish(otherCtx) && otherCtx !== ctx) {\n throw new ValidationException(\n `Expression (of kind '${expr.getKind}') at line ${ctx.start.line}, column ${ctx.start.start} is already associated with a ParserRuleContext of type ${otherCtx.constructor.name}' cannot associate it with another one (${ctx.constructor.name} at ${ctx.start.line}:${ctx.start.start}')`,\n ctx\n );\n }\n this.contextToExpr.set(expr, ctx);\n }\n\n getContext(expr: Expr<any>) {\n return this.contextToExpr.get(expr);\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/compiler/ExprManager.ts"],"names":[],"mappings":";;;AAEA,4EAAsE;AACtE,yEAA0D;AAE1D,MAAa,WAAW;IAGtB;QAFiB,kBAAa,GAAG,IAAI,GAAG,EAAgC,CAAC;IAE1D,CAAC;IAET,uBAAuB,CAAC,IAAe,EAAE,GAAG;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAA,iCAAS,EAAC,QAAQ,CAAC,IAAI,QAAQ,KAAK,GAAG,EAAE;YAC5C,MAAM,IAAI,4CAAmB,CAC3B,wBAAwB,IAAI,CAAC,OAAO,cAAc,GAAG,CAAC,KAAK,CAAC,IAAI,YAAY,GAAG,CAAC,KAAK,CAAC,KAAK,2DAA2D,QAAQ,CAAC,WAAW,CAAC,IAAI,2CAA2C,GAAG,CAAC,WAAW,CAAC,IAAI,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAC1R,GAAG,CACJ,CAAC;SACH;QACD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,UAAU,CAAC,IAAe;QACxB,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;CACF;AAnBD,kCAmBC","file":"compiler/ExprManager.js","sourcesContent":["import { ParserRuleContext } from \"antlr4\";\nimport { Expr } from \"../expression/Expr.js\";\nimport { ValidationException } from \"../error/ValidationException.js\";\nimport { isNullish } from \"../util/IfcExpressionUtils.js\";\n\nexport class ExprManager {\n private readonly contextToExpr = new Map<Expr<any>, ParserRuleContext>();\n\n constructor() {}\n\n public registerExprWithContext(expr: Expr<any>, ctx) {\n const otherCtx = this.contextToExpr.get(expr);\n if (!isNullish(otherCtx) && otherCtx !== ctx) {\n throw new ValidationException(\n `Expression (of kind '${expr.getKind}') at line ${ctx.start.line}, column ${ctx.start.start} is already associated with a ParserRuleContext of type ${otherCtx.constructor.name}' cannot associate it with another one (${ctx.constructor.name} at ${ctx.start.line}:${ctx.start.start}')`,\n ctx\n );\n }\n this.contextToExpr.set(expr, ctx);\n }\n\n getContext(expr: Expr<any>) {\n return this.contextToExpr.get(expr);\n }\n}\n"]}
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ExprToTextInputLinker = void 0;
4
- const ExprVisitor_1 = require("../postprocess/ExprVisitor");
5
- const TextSpan_1 = require("../util/TextSpan");
6
- const ExprWalker_1 = require("../postprocess/ExprWalker");
7
- class ExprToTextInputLinker extends ExprVisitor_1.ExprVisitor {
4
+ const ExprVisitor_js_1 = require("../postprocess/ExprVisitor.js");
5
+ const TextSpan_js_1 = require("../util/TextSpan.js");
6
+ const ExprWalker_js_1 = require("../postprocess/ExprWalker.js");
7
+ class ExprToTextInputLinker extends ExprVisitor_js_1.ExprVisitor {
8
8
  constructor(input, exprManager) {
9
9
  super();
10
10
  this.exprManager = exprManager;
@@ -12,14 +12,14 @@ class ExprToTextInputLinker extends ExprVisitor_1.ExprVisitor {
12
12
  }
13
13
  static linkTextToExpressions(input, expr, exprManager) {
14
14
  const visitor = new ExprToTextInputLinker(input, exprManager);
15
- const walker = new ExprWalker_1.ExprWalker(visitor);
15
+ const walker = new ExprWalker_js_1.ExprWalker(visitor);
16
16
  walker.walk(expr);
17
17
  }
18
18
  enterExpr(expr) {
19
19
  const parserRuleContext = this.exprManager.getContext(expr);
20
20
  // @ts-ignore
21
21
  // @ts-ignore
22
- const textSpan = TextSpan_1.TextSpan.of(parserRuleContext.start.line, parserRuleContext.start.column + 1, parserRuleContext.stop.line, parserRuleContext.stop.column + (parserRuleContext.stop.text || "").length);
22
+ const textSpan = TextSpan_js_1.TextSpan.of(parserRuleContext.start.line, parserRuleContext.start.column + 1, parserRuleContext.stop.line, parserRuleContext.stop.column + (parserRuleContext.stop.text || "").length);
23
23
  expr.setTextSpan(textSpan);
24
24
  }
25
25
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/compiler/ExprToTextInputLinker.ts"],"names":[],"mappings":";;;AAAA,4DAAyD;AAGzD,+CAA4C;AAC5C,0DAAuD;AAEvD,MAAa,qBAAsB,SAAQ,yBAAW;IAIpD,YAAY,KAAa,EAAE,WAAwB;QACjD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,qBAAqB,CAC1B,KAAa,EACb,IAAe,EACf,WAAwB;QAExB,MAAM,OAAO,GAAG,IAAI,qBAAqB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,IAAI,uBAAU,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IAED,SAAS,CAAC,IAAe;QACvB,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC5D,aAAa;QACb,aAAa;QACb,MAAM,QAAQ,GAAG,mBAAQ,CAAC,EAAE,CAC1B,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAC5B,iBAAiB,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAClC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAC3B,iBAAiB,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAC3E,CAAC;QACF,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;CACF;AAhCD,sDAgCC","file":"compiler/ExprToTextInputLinker.js","sourcesContent":["import { ExprVisitor } from \"../postprocess/ExprVisitor\";\nimport { ExprManager } from \"./ExprManager.js\";\nimport { Expr } from \"../expression/Expr\";\nimport { TextSpan } from \"../util/TextSpan\";\nimport { ExprWalker } from \"../postprocess/ExprWalker\";\n\nexport class ExprToTextInputLinker extends ExprVisitor {\n private exprManager: ExprManager;\n private input: string;\n\n constructor(input: string, exprManager: ExprManager) {\n super();\n this.exprManager = exprManager;\n this.input = input;\n }\n\n static linkTextToExpressions(\n input: string,\n expr: Expr<any>,\n exprManager: ExprManager\n ) {\n const visitor = new ExprToTextInputLinker(input, exprManager);\n const walker = new ExprWalker(visitor);\n walker.walk(expr);\n }\n\n enterExpr(expr: Expr<any>) {\n const parserRuleContext = this.exprManager.getContext(expr);\n // @ts-ignore\n // @ts-ignore\n const textSpan = TextSpan.of(\n parserRuleContext.start.line,\n parserRuleContext.start.column + 1,\n parserRuleContext.stop.line,\n parserRuleContext.stop.column + (parserRuleContext.stop.text || \"\").length\n );\n expr.setTextSpan(textSpan);\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/compiler/ExprToTextInputLinker.ts"],"names":[],"mappings":";;;AAAA,kEAA4D;AAG5D,qDAA+C;AAC/C,gEAA0D;AAE1D,MAAa,qBAAsB,SAAQ,4BAAW;IAIpD,YAAY,KAAa,EAAE,WAAwB;QACjD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,qBAAqB,CAC1B,KAAa,EACb,IAAe,EACf,WAAwB;QAExB,MAAM,OAAO,GAAG,IAAI,qBAAqB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,IAAI,0BAAU,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IAED,SAAS,CAAC,IAAe;QACvB,MAAM,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC5D,aAAa;QACb,aAAa;QACb,MAAM,QAAQ,GAAG,sBAAQ,CAAC,EAAE,CAC1B,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAC5B,iBAAiB,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAClC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAC3B,iBAAiB,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAC3E,CAAC;QACF,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;CACF;AAhCD,sDAgCC","file":"compiler/ExprToTextInputLinker.js","sourcesContent":["import { ExprVisitor } from \"../postprocess/ExprVisitor.js\";\nimport { ExprManager } from \"./ExprManager.js\";\nimport { Expr } from \"../expression/Expr.js\";\nimport { TextSpan } from \"../util/TextSpan.js\";\nimport { ExprWalker } from \"../postprocess/ExprWalker.js\";\n\nexport class ExprToTextInputLinker extends ExprVisitor {\n private exprManager: ExprManager;\n private input: string;\n\n constructor(input: string, exprManager: ExprManager) {\n super();\n this.exprManager = exprManager;\n this.input = input;\n }\n\n static linkTextToExpressions(\n input: string,\n expr: Expr<any>,\n exprManager: ExprManager\n ) {\n const visitor = new ExprToTextInputLinker(input, exprManager);\n const walker = new ExprWalker(visitor);\n walker.walk(expr);\n }\n\n enterExpr(expr: Expr<any>) {\n const parserRuleContext = this.exprManager.getContext(expr);\n // @ts-ignore\n // @ts-ignore\n const textSpan = TextSpan.of(\n parserRuleContext.start.line,\n parserRuleContext.start.column + 1,\n parserRuleContext.stop.line,\n parserRuleContext.stop.column + (parserRuleContext.stop.text || \"\").length\n );\n expr.setTextSpan(textSpan);\n }\n}\n"]}
@@ -2,10 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MissingFunctionArgumentExceptionMapper = void 0;
4
4
  const ExprEvalResult_js_1 = require("../../expression/ExprEvalResult.js");
5
- const TextSpan_1 = require("../../util/TextSpan");
5
+ const TextSpan_js_1 = require("../../util/TextSpan.js");
6
6
  class MissingFunctionArgumentExceptionMapper {
7
7
  mapException(exception) {
8
- return new ExprEvalResult_js_1.ExprEvalMissingFunctionArgumentErrorObj(exception.message, exception.functionName, exception.argumentName, exception.index, TextSpan_1.TextSpan.of(exception.fromLine, exception.fromColumn + 1, exception.toLine, exception.toColumn + 1));
8
+ return new ExprEvalResult_js_1.ExprEvalMissingFunctionArgumentErrorObj(exception.message, exception.functionName, exception.argumentName, exception.index, TextSpan_js_1.TextSpan.of(exception.fromLine, exception.fromColumn + 1, exception.toLine, exception.toColumn + 1));
9
9
  }
10
10
  }
11
11
  exports.MissingFunctionArgumentExceptionMapper = MissingFunctionArgumentExceptionMapper;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/error/mapper/MissingFunctionArgumentExceptionMapper.ts"],"names":[],"mappings":";;;AACA,0EAG4C;AAE5C,kDAA+C;AAE/C,MAAa,sCAAsC;IAGjD,YAAY,CACV,SAA2C;QAE3C,OAAO,IAAI,2DAAuC,CAChD,SAAS,CAAC,OAAO,EACjB,SAAS,CAAC,YAAY,EACtB,SAAS,CAAC,YAAY,EACtB,SAAS,CAAC,KAAK,EACf,mBAAQ,CAAC,EAAE,CACT,SAAS,CAAC,QAAQ,EAClB,SAAS,CAAC,UAAU,GAAG,CAAC,EACxB,SAAS,CAAC,MAAM,EAChB,SAAS,CAAC,QAAQ,GAAG,CAAC,CACvB,CACF,CAAC;IACJ,CAAC;CACF;AAnBD,wFAmBC","file":"error/mapper/MissingFunctionArgumentExceptionMapper.js","sourcesContent":["import { ExceptionToExprEvalErrorMapper } from \"../ExceptionToExprEvalErrorMapper.js\";\nimport {\n ExprEvalMissingFunctionArgumentErrorObj,\n ExprEvalValidationError,\n} from \"../../expression/ExprEvalResult.js\";\nimport { MissingFunctionArgumentException } from \"../MissingFunctionArgumentException.js\";\nimport { TextSpan } from \"../../util/TextSpan\";\n\nexport class MissingFunctionArgumentExceptionMapper\n implements ExceptionToExprEvalErrorMapper<MissingFunctionArgumentException>\n{\n mapException(\n exception: MissingFunctionArgumentException\n ): ExprEvalValidationError {\n return new ExprEvalMissingFunctionArgumentErrorObj(\n exception.message,\n exception.functionName,\n exception.argumentName,\n exception.index,\n TextSpan.of(\n exception.fromLine,\n exception.fromColumn + 1,\n exception.toLine,\n exception.toColumn + 1\n )\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/error/mapper/MissingFunctionArgumentExceptionMapper.ts"],"names":[],"mappings":";;;AACA,0EAG4C;AAE5C,wDAAkD;AAElD,MAAa,sCAAsC;IAGjD,YAAY,CACV,SAA2C;QAE3C,OAAO,IAAI,2DAAuC,CAChD,SAAS,CAAC,OAAO,EACjB,SAAS,CAAC,YAAY,EACtB,SAAS,CAAC,YAAY,EACtB,SAAS,CAAC,KAAK,EACf,sBAAQ,CAAC,EAAE,CACT,SAAS,CAAC,QAAQ,EAClB,SAAS,CAAC,UAAU,GAAG,CAAC,EACxB,SAAS,CAAC,MAAM,EAChB,SAAS,CAAC,QAAQ,GAAG,CAAC,CACvB,CACF,CAAC;IACJ,CAAC;CACF;AAnBD,wFAmBC","file":"error/mapper/MissingFunctionArgumentExceptionMapper.js","sourcesContent":["import { ExceptionToExprEvalErrorMapper } from \"../ExceptionToExprEvalErrorMapper.js\";\nimport {\n ExprEvalMissingFunctionArgumentErrorObj,\n ExprEvalValidationError,\n} from \"../../expression/ExprEvalResult.js\";\nimport { MissingFunctionArgumentException } from \"../MissingFunctionArgumentException.js\";\nimport { TextSpan } from \"../../util/TextSpan.js\";\n\nexport class MissingFunctionArgumentExceptionMapper\n implements ExceptionToExprEvalErrorMapper<MissingFunctionArgumentException>\n{\n mapException(\n exception: MissingFunctionArgumentException\n ): ExprEvalValidationError {\n return new ExprEvalMissingFunctionArgumentErrorObj(\n exception.message,\n exception.functionName,\n exception.argumentName,\n exception.index,\n TextSpan.of(\n exception.fromLine,\n exception.fromColumn + 1,\n exception.toLine,\n exception.toColumn + 1\n )\n );\n }\n}\n"]}
@@ -3,13 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NoSuchFunctionExceptionMapper = void 0;
4
4
  const ExprEvalResult_js_1 = require("../../expression/ExprEvalResult.js");
5
5
  const NoSuchFunctionException_js_1 = require("../NoSuchFunctionException.js");
6
- const TextSpan_1 = require("../../util/TextSpan");
6
+ const TextSpan_js_1 = require("../../util/TextSpan.js");
7
7
  class NoSuchFunctionExceptionMapper {
8
8
  mapException(exception) {
9
9
  const name = exception instanceof NoSuchFunctionException_js_1.NoSuchFunctionException
10
10
  ? exception.functionName
11
11
  : exception.methodName;
12
- return new ExprEvalResult_js_1.ExprEvalUnknownFunctionErrorObj(exception.message, name, TextSpan_1.TextSpan.of(exception.fromLine, exception.fromColumn + 1, exception.toLine, exception.toColumn + 1));
12
+ return new ExprEvalResult_js_1.ExprEvalUnknownFunctionErrorObj(exception.message, name, TextSpan_js_1.TextSpan.of(exception.fromLine, exception.fromColumn + 1, exception.toLine, exception.toColumn + 1));
13
13
  }
14
14
  }
15
15
  exports.NoSuchFunctionExceptionMapper = NoSuchFunctionExceptionMapper;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/error/mapper/NoSuchFunctionExceptionMapper.ts"],"names":[],"mappings":";;;AACA,0EAG4C;AAC5C,8EAAwE;AAExE,kDAA+C;AAE/C,MAAa,6BAA6B;IAMxC,YAAY,CACV,SAA0D;QAE1D,MAAM,IAAI,GACR,SAAS,YAAY,oDAAuB;YAC1C,CAAC,CAAC,SAAS,CAAC,YAAY;YACxB,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC;QAC3B,OAAO,IAAI,mDAA+B,CACxC,SAAS,CAAC,OAAO,EACjB,IAAI,EACJ,mBAAQ,CAAC,EAAE,CACT,SAAS,CAAC,QAAQ,EAClB,SAAS,CAAC,UAAU,GAAG,CAAC,EACxB,SAAS,CAAC,MAAM,EAChB,SAAS,CAAC,QAAQ,GAAG,CAAC,CACvB,CACF,CAAC;IACJ,CAAC;CACF;AAxBD,sEAwBC","file":"error/mapper/NoSuchFunctionExceptionMapper.js","sourcesContent":["import { ExceptionToExprEvalErrorMapper } from \"../ExceptionToExprEvalErrorMapper.js\";\nimport {\n ExprEvalUnknownFunctionErrorObj,\n ExprEvalValidationError,\n} from \"../../expression/ExprEvalResult.js\";\nimport { NoSuchFunctionException } from \"../NoSuchFunctionException.js\";\nimport { NoSuchMethodException } from \"../NoSuchMethodException.js\";\nimport { TextSpan } from \"../../util/TextSpan\";\n\nexport class NoSuchFunctionExceptionMapper\n implements\n ExceptionToExprEvalErrorMapper<\n NoSuchFunctionException | NoSuchMethodException\n >\n{\n mapException(\n exception: NoSuchFunctionException | NoSuchMethodException\n ): ExprEvalValidationError {\n const name =\n exception instanceof NoSuchFunctionException\n ? exception.functionName\n : exception.methodName;\n return new ExprEvalUnknownFunctionErrorObj(\n exception.message,\n name,\n TextSpan.of(\n exception.fromLine,\n exception.fromColumn + 1,\n exception.toLine,\n exception.toColumn + 1\n )\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/error/mapper/NoSuchFunctionExceptionMapper.ts"],"names":[],"mappings":";;;AACA,0EAG4C;AAC5C,8EAAwE;AAExE,wDAAkD;AAElD,MAAa,6BAA6B;IAMxC,YAAY,CACV,SAA0D;QAE1D,MAAM,IAAI,GACR,SAAS,YAAY,oDAAuB;YAC1C,CAAC,CAAC,SAAS,CAAC,YAAY;YACxB,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC;QAC3B,OAAO,IAAI,mDAA+B,CACxC,SAAS,CAAC,OAAO,EACjB,IAAI,EACJ,sBAAQ,CAAC,EAAE,CACT,SAAS,CAAC,QAAQ,EAClB,SAAS,CAAC,UAAU,GAAG,CAAC,EACxB,SAAS,CAAC,MAAM,EAChB,SAAS,CAAC,QAAQ,GAAG,CAAC,CACvB,CACF,CAAC;IACJ,CAAC;CACF;AAxBD,sEAwBC","file":"error/mapper/NoSuchFunctionExceptionMapper.js","sourcesContent":["import { ExceptionToExprEvalErrorMapper } from \"../ExceptionToExprEvalErrorMapper.js\";\nimport {\n ExprEvalUnknownFunctionErrorObj,\n ExprEvalValidationError,\n} from \"../../expression/ExprEvalResult.js\";\nimport { NoSuchFunctionException } from \"../NoSuchFunctionException.js\";\nimport { NoSuchMethodException } from \"../NoSuchMethodException.js\";\nimport { TextSpan } from \"../../util/TextSpan.js\";\n\nexport class NoSuchFunctionExceptionMapper\n implements\n ExceptionToExprEvalErrorMapper<\n NoSuchFunctionException | NoSuchMethodException\n >\n{\n mapException(\n exception: NoSuchFunctionException | NoSuchMethodException\n ): ExprEvalValidationError {\n const name =\n exception instanceof NoSuchFunctionException\n ? exception.functionName\n : exception.methodName;\n return new ExprEvalUnknownFunctionErrorObj(\n exception.message,\n name,\n TextSpan.of(\n exception.fromLine,\n exception.fromColumn + 1,\n exception.toLine,\n exception.toColumn + 1\n )\n );\n }\n}\n"]}
@@ -2,10 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SyntaxErrorMapper = void 0;
4
4
  const ExprEvalResult_js_1 = require("../../expression/ExprEvalResult.js");
5
- const TextSpan_1 = require("../../util/TextSpan");
5
+ const TextSpan_js_1 = require("../../util/TextSpan.js");
6
6
  class SyntaxErrorMapper {
7
7
  mapException(exception) {
8
- return new ExprEvalResult_js_1.ExprEvalParseErrorObj(ExprEvalResult_js_1.ExprEvalStatus.SYNTAX_ERROR, exception.message, "" + exception.offendingSymbol, TextSpan_1.TextSpan.of(exception.line, exception.column + 1, exception.line, exception.column + 1));
8
+ return new ExprEvalResult_js_1.ExprEvalParseErrorObj(ExprEvalResult_js_1.ExprEvalStatus.SYNTAX_ERROR, exception.message, "" + exception.offendingSymbol, TextSpan_js_1.TextSpan.of(exception.line, exception.column + 1, exception.line, exception.column + 1));
9
9
  }
10
10
  }
11
11
  exports.SyntaxErrorMapper = SyntaxErrorMapper;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/error/mapper/SyntaxErrorMapper.ts"],"names":[],"mappings":";;;AAEA,0EAI4C;AAC5C,kDAA+C;AAE/C,MAAa,iBAAiB;IAG5B,YAAY,CAAC,SAA+B;QAC1C,OAAO,IAAI,yCAAqB,CAC9B,kCAAc,CAAC,YAAY,EAC3B,SAAS,CAAC,OAAO,EACjB,EAAE,GAAG,SAAS,CAAC,eAAe,EAC9B,mBAAQ,CAAC,EAAE,CACT,SAAS,CAAC,IAAI,EACd,SAAS,CAAC,MAAM,GAAG,CAAC,EACpB,SAAS,CAAC,IAAI,EACd,SAAS,CAAC,MAAM,GAAG,CAAC,CACrB,CACF,CAAC;IACJ,CAAC;CACF;AAhBD,8CAgBC","file":"error/mapper/SyntaxErrorMapper.js","sourcesContent":["import { ExceptionToExprEvalErrorMapper } from \"../ExceptionToExprEvalErrorMapper.js\";\nimport { SyntaxErrorException } from \"../SyntaxErrorException.js\";\nimport {\n ExprEvalError,\n ExprEvalParseErrorObj,\n ExprEvalStatus,\n} from \"../../expression/ExprEvalResult.js\";\nimport { TextSpan } from \"../../util/TextSpan\";\n\nexport class SyntaxErrorMapper\n implements ExceptionToExprEvalErrorMapper<SyntaxErrorException>\n{\n mapException(exception: SyntaxErrorException): ExprEvalError {\n return new ExprEvalParseErrorObj(\n ExprEvalStatus.SYNTAX_ERROR,\n exception.message,\n \"\" + exception.offendingSymbol,\n TextSpan.of(\n exception.line,\n exception.column + 1,\n exception.line,\n exception.column + 1\n )\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/error/mapper/SyntaxErrorMapper.ts"],"names":[],"mappings":";;;AAEA,0EAI4C;AAC5C,wDAAkD;AAElD,MAAa,iBAAiB;IAG5B,YAAY,CAAC,SAA+B;QAC1C,OAAO,IAAI,yCAAqB,CAC9B,kCAAc,CAAC,YAAY,EAC3B,SAAS,CAAC,OAAO,EACjB,EAAE,GAAG,SAAS,CAAC,eAAe,EAC9B,sBAAQ,CAAC,EAAE,CACT,SAAS,CAAC,IAAI,EACd,SAAS,CAAC,MAAM,GAAG,CAAC,EACpB,SAAS,CAAC,IAAI,EACd,SAAS,CAAC,MAAM,GAAG,CAAC,CACrB,CACF,CAAC;IACJ,CAAC;CACF;AAhBD,8CAgBC","file":"error/mapper/SyntaxErrorMapper.js","sourcesContent":["import { ExceptionToExprEvalErrorMapper } from \"../ExceptionToExprEvalErrorMapper.js\";\nimport { SyntaxErrorException } from \"../SyntaxErrorException.js\";\nimport {\n ExprEvalError,\n ExprEvalParseErrorObj,\n ExprEvalStatus,\n} from \"../../expression/ExprEvalResult.js\";\nimport { TextSpan } from \"../../util/TextSpan.js\";\n\nexport class SyntaxErrorMapper\n implements ExceptionToExprEvalErrorMapper<SyntaxErrorException>\n{\n mapException(exception: SyntaxErrorException): ExprEvalError {\n return new ExprEvalParseErrorObj(\n ExprEvalStatus.SYNTAX_ERROR,\n exception.message,\n \"\" + exception.offendingSymbol,\n TextSpan.of(\n exception.line,\n exception.column + 1,\n exception.line,\n exception.column + 1\n )\n );\n }\n}\n"]}
@@ -4,7 +4,7 @@ exports.ValidationExceptionMapper = void 0;
4
4
  const ExprEvalResult_js_1 = require("../../expression/ExprEvalResult.js");
5
5
  const InvalidSyntaxException_js_1 = require("../InvalidSyntaxException.js");
6
6
  const ExpressionTypeError_js_1 = require("../ExpressionTypeError.js");
7
- const TextSpan_1 = require("../../util/TextSpan");
7
+ const TextSpan_js_1 = require("../../util/TextSpan.js");
8
8
  class ValidationExceptionMapper {
9
9
  mapException(exception) {
10
10
  let status = ExprEvalResult_js_1.ExprEvalStatus.VALIDATION_ERROR;
@@ -14,7 +14,7 @@ class ValidationExceptionMapper {
14
14
  else if (exception instanceof ExpressionTypeError_js_1.ExpressionTypeError) {
15
15
  status = ExprEvalResult_js_1.ExprEvalStatus.STATIC_TYPE_ERROR;
16
16
  }
17
- return new ExprEvalResult_js_1.ExprEvalValidationErrorObj(status, exception.message, TextSpan_1.TextSpan.of(exception.fromLine, exception.fromColumn + 1, exception.toLine, exception.toColumn + 1));
17
+ return new ExprEvalResult_js_1.ExprEvalValidationErrorObj(status, exception.message, TextSpan_js_1.TextSpan.of(exception.fromLine, exception.fromColumn + 1, exception.toLine, exception.toColumn + 1));
18
18
  }
19
19
  }
20
20
  exports.ValidationExceptionMapper = ValidationExceptionMapper;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/error/mapper/ValidationExceptionMapper.ts"],"names":[],"mappings":";;;AACA,0EAI4C;AAC5C,4EAAsE;AAEtE,sEAAgE;AAChE,kDAA+C;AAE/C,MAAa,yBAAyB;IAMpC,YAAY,CACV,SAGuB;QAEvB,IAAI,MAAM,GAAG,kCAAc,CAAC,gBAAgB,CAAC;QAC7C,IAAI,SAAS,YAAY,kDAAsB,EAAE;YAC/C,MAAM,GAAG,kCAAc,CAAC,YAAY,CAAC;SACtC;aAAM,IAAI,SAAS,YAAY,4CAAmB,EAAE;YACnD,MAAM,GAAG,kCAAc,CAAC,iBAAiB,CAAC;SAC3C;QACD,OAAO,IAAI,8CAA0B,CACnC,MAAM,EACN,SAAS,CAAC,OAAO,EACjB,mBAAQ,CAAC,EAAE,CACT,SAAS,CAAC,QAAQ,EAClB,SAAS,CAAC,UAAU,GAAG,CAAC,EACxB,SAAS,CAAC,MAAM,EAChB,SAAS,CAAC,QAAQ,GAAG,CAAC,CACvB,CACF,CAAC;IACJ,CAAC;CACF;AA7BD,8DA6BC","file":"error/mapper/ValidationExceptionMapper.js","sourcesContent":["import { ExceptionToExprEvalErrorMapper } from \"../ExceptionToExprEvalErrorMapper.js\";\nimport {\n ExprEvalStatus,\n ExprEvalValidationError,\n ExprEvalValidationErrorObj,\n} from \"../../expression/ExprEvalResult.js\";\nimport { InvalidSyntaxException } from \"../InvalidSyntaxException.js\";\nimport { ValidationException } from \"../ValidationException.js\";\nimport { ExpressionTypeError } from \"../ExpressionTypeError.js\";\nimport { TextSpan } from \"../../util/TextSpan\";\n\nexport class ValidationExceptionMapper\n implements\n ExceptionToExprEvalErrorMapper<\n InvalidSyntaxException | ValidationException | ExpressionTypeError\n >\n{\n mapException(\n exception:\n | InvalidSyntaxException\n | ValidationException\n | ExpressionTypeError\n ): ExprEvalValidationError {\n let status = ExprEvalStatus.VALIDATION_ERROR;\n if (exception instanceof InvalidSyntaxException) {\n status = ExprEvalStatus.SYNTAX_ERROR;\n } else if (exception instanceof ExpressionTypeError) {\n status = ExprEvalStatus.STATIC_TYPE_ERROR;\n }\n return new ExprEvalValidationErrorObj(\n status,\n exception.message,\n TextSpan.of(\n exception.fromLine,\n exception.fromColumn + 1,\n exception.toLine,\n exception.toColumn + 1\n )\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/error/mapper/ValidationExceptionMapper.ts"],"names":[],"mappings":";;;AACA,0EAI4C;AAC5C,4EAAsE;AAEtE,sEAAgE;AAChE,wDAAkD;AAElD,MAAa,yBAAyB;IAMpC,YAAY,CACV,SAGuB;QAEvB,IAAI,MAAM,GAAG,kCAAc,CAAC,gBAAgB,CAAC;QAC7C,IAAI,SAAS,YAAY,kDAAsB,EAAE;YAC/C,MAAM,GAAG,kCAAc,CAAC,YAAY,CAAC;SACtC;aAAM,IAAI,SAAS,YAAY,4CAAmB,EAAE;YACnD,MAAM,GAAG,kCAAc,CAAC,iBAAiB,CAAC;SAC3C;QACD,OAAO,IAAI,8CAA0B,CACnC,MAAM,EACN,SAAS,CAAC,OAAO,EACjB,sBAAQ,CAAC,EAAE,CACT,SAAS,CAAC,QAAQ,EAClB,SAAS,CAAC,UAAU,GAAG,CAAC,EACxB,SAAS,CAAC,MAAM,EAChB,SAAS,CAAC,QAAQ,GAAG,CAAC,CACvB,CACF,CAAC;IACJ,CAAC;CACF;AA7BD,8DA6BC","file":"error/mapper/ValidationExceptionMapper.js","sourcesContent":["import { ExceptionToExprEvalErrorMapper } from \"../ExceptionToExprEvalErrorMapper.js\";\nimport {\n ExprEvalStatus,\n ExprEvalValidationError,\n ExprEvalValidationErrorObj,\n} from \"../../expression/ExprEvalResult.js\";\nimport { InvalidSyntaxException } from \"../InvalidSyntaxException.js\";\nimport { ValidationException } from \"../ValidationException.js\";\nimport { ExpressionTypeError } from \"../ExpressionTypeError.js\";\nimport { TextSpan } from \"../../util/TextSpan.js\";\n\nexport class ValidationExceptionMapper\n implements\n ExceptionToExprEvalErrorMapper<\n InvalidSyntaxException | ValidationException | ExpressionTypeError\n >\n{\n mapException(\n exception:\n | InvalidSyntaxException\n | ValidationException\n | ExpressionTypeError\n ): ExprEvalValidationError {\n let status = ExprEvalStatus.VALIDATION_ERROR;\n if (exception instanceof InvalidSyntaxException) {\n status = ExprEvalStatus.SYNTAX_ERROR;\n } else if (exception instanceof ExpressionTypeError) {\n status = ExprEvalStatus.STATIC_TYPE_ERROR;\n }\n return new ExprEvalValidationErrorObj(\n status,\n exception.message,\n TextSpan.of(\n exception.fromLine,\n exception.fromColumn + 1,\n exception.toLine,\n exception.toColumn + 1\n )\n );\n }\n}\n"]}
@@ -2,10 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.WrongFunctionArgumentTypeExceptionMapper = void 0;
4
4
  const ExprEvalResult_js_1 = require("../../expression/ExprEvalResult.js");
5
- const TextSpan_1 = require("../../util/TextSpan");
5
+ const TextSpan_js_1 = require("../../util/TextSpan.js");
6
6
  class WrongFunctionArgumentTypeExceptionMapper {
7
7
  mapException(exception) {
8
- return new ExprEvalResult_js_1.ExprEvalWrongFunctionArgumentTypeErrorObj(exception.message, exception.functionName, exception.argumentName, exception.argumentIndex, exception.expectedType.getName(), exception.actualType.getName(), TextSpan_1.TextSpan.of(exception.fromLine, exception.fromColumn + 1, exception.toLine, exception.toColumn));
8
+ return new ExprEvalResult_js_1.ExprEvalWrongFunctionArgumentTypeErrorObj(exception.message, exception.functionName, exception.argumentName, exception.argumentIndex, exception.expectedType.getName(), exception.actualType.getName(), TextSpan_js_1.TextSpan.of(exception.fromLine, exception.fromColumn + 1, exception.toLine, exception.toColumn));
9
9
  }
10
10
  }
11
11
  exports.WrongFunctionArgumentTypeExceptionMapper = WrongFunctionArgumentTypeExceptionMapper;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/error/mapper/WrongFunctionArgumentTypeExceptionMapper.ts"],"names":[],"mappings":";;;AACA,0EAG4C;AAE5C,kDAA+C;AAE/C,MAAa,wCAAwC;IAGnD,YAAY,CACV,SAA6C;QAE7C,OAAO,IAAI,6DAAyC,CAClD,SAAS,CAAC,OAAO,EACjB,SAAS,CAAC,YAAY,EACtB,SAAS,CAAC,YAAY,EACtB,SAAS,CAAC,aAAa,EACvB,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,EAChC,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,EAC9B,mBAAQ,CAAC,EAAE,CACT,SAAS,CAAC,QAAQ,EAClB,SAAS,CAAC,UAAU,GAAG,CAAC,EACxB,SAAS,CAAC,MAAM,EAChB,SAAS,CAAC,QAAQ,CACnB,CACF,CAAC;IACJ,CAAC;CACF;AArBD,4FAqBC","file":"error/mapper/WrongFunctionArgumentTypeExceptionMapper.js","sourcesContent":["import { ExceptionToExprEvalErrorMapper } from \"../ExceptionToExprEvalErrorMapper.js\";\nimport {\n ExprEvalValidationError,\n ExprEvalWrongFunctionArgumentTypeErrorObj,\n} from \"../../expression/ExprEvalResult.js\";\nimport { WrongFunctionArgumentTypeException } from \"../WrongFunctionArgumentTypeException.js\";\nimport { TextSpan } from \"../../util/TextSpan\";\n\nexport class WrongFunctionArgumentTypeExceptionMapper\n implements ExceptionToExprEvalErrorMapper<WrongFunctionArgumentTypeException>\n{\n mapException(\n exception: WrongFunctionArgumentTypeException\n ): ExprEvalValidationError {\n return new ExprEvalWrongFunctionArgumentTypeErrorObj(\n exception.message,\n exception.functionName,\n exception.argumentName,\n exception.argumentIndex,\n exception.expectedType.getName(),\n exception.actualType.getName(),\n TextSpan.of(\n exception.fromLine,\n exception.fromColumn + 1,\n exception.toLine,\n exception.toColumn\n )\n );\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/error/mapper/WrongFunctionArgumentTypeExceptionMapper.ts"],"names":[],"mappings":";;;AACA,0EAG4C;AAE5C,wDAAkD;AAElD,MAAa,wCAAwC;IAGnD,YAAY,CACV,SAA6C;QAE7C,OAAO,IAAI,6DAAyC,CAClD,SAAS,CAAC,OAAO,EACjB,SAAS,CAAC,YAAY,EACtB,SAAS,CAAC,YAAY,EACtB,SAAS,CAAC,aAAa,EACvB,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,EAChC,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,EAC9B,sBAAQ,CAAC,EAAE,CACT,SAAS,CAAC,QAAQ,EAClB,SAAS,CAAC,UAAU,GAAG,CAAC,EACxB,SAAS,CAAC,MAAM,EAChB,SAAS,CAAC,QAAQ,CACnB,CACF,CAAC;IACJ,CAAC;CACF;AArBD,4FAqBC","file":"error/mapper/WrongFunctionArgumentTypeExceptionMapper.js","sourcesContent":["import { ExceptionToExprEvalErrorMapper } from \"../ExceptionToExprEvalErrorMapper.js\";\nimport {\n ExprEvalValidationError,\n ExprEvalWrongFunctionArgumentTypeErrorObj,\n} from \"../../expression/ExprEvalResult.js\";\nimport { WrongFunctionArgumentTypeException } from \"../WrongFunctionArgumentTypeException.js\";\nimport { TextSpan } from \"../../util/TextSpan.js\";\n\nexport class WrongFunctionArgumentTypeExceptionMapper\n implements ExceptionToExprEvalErrorMapper<WrongFunctionArgumentTypeException>\n{\n mapException(\n exception: WrongFunctionArgumentTypeException\n ): ExprEvalValidationError {\n return new ExprEvalWrongFunctionArgumentTypeErrorObj(\n exception.message,\n exception.functionName,\n exception.argumentName,\n exception.argumentIndex,\n exception.expectedType.getName(),\n exception.actualType.getName(),\n TextSpan.of(\n exception.fromLine,\n exception.fromColumn + 1,\n exception.toLine,\n exception.toColumn\n )\n );\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/expression/Expr.ts"],"names":[],"mappings":"","file":"expression/Expr.js","sourcesContent":["import { IfcExpressionContext } from \"../context/IfcExpressionContext.js\";\nimport { ExprKind } from \"./ExprKind.js\";\nimport { ExprEvalResult } from \"./ExprEvalResult.js\";\nimport { ExprType } from \"../type/ExprType.js\";\nimport { TextSpan } from \"../util/TextSpan\";\nimport { ExprStringBuilder } from \"./ExprStringBuilder.js\";\n\nexport interface Expr<T> {\n evaluate(\n ctx: IfcExpressionContext,\n localCtx: Map<string, any>\n ): ExprEvalResult<T>;\n getKind(): ExprKind;\n\n toExprString(builder?: ExprStringBuilder): string;\n getChildren(): Array<Expr<any>>;\n setTextSpan(ctx: TextSpan);\n getTextSpan(): TextSpan | undefined;\n getType(): ExprType;\n}\n"]}
1
+ {"version":3,"sources":["../../src/expression/Expr.ts"],"names":[],"mappings":"","file":"expression/Expr.js","sourcesContent":["import { IfcExpressionContext } from \"../context/IfcExpressionContext.js\";\nimport { ExprKind } from \"./ExprKind.js\";\nimport { ExprEvalResult } from \"./ExprEvalResult.js\";\nimport { ExprType } from \"../type/ExprType.js\";\nimport { TextSpan } from \"../util/TextSpan.js\";\nimport { ExprStringBuilder } from \"./ExprStringBuilder.js\";\n\nexport interface Expr<T> {\n evaluate(\n ctx: IfcExpressionContext,\n localCtx: Map<string, any>\n ): ExprEvalResult<T>;\n getKind(): ExprKind;\n\n toExprString(builder?: ExprStringBuilder): string;\n getChildren(): Array<Expr<any>>;\n setTextSpan(ctx: TextSpan);\n getTextSpan(): TextSpan | undefined;\n getType(): ExprType;\n}\n"]}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ExprBase = void 0;
4
4
  const ExprEvalResult_js_1 = require("./ExprEvalResult.js");
5
- const TextSpan_1 = require("../util/TextSpan");
5
+ const TextSpan_js_1 = require("../util/TextSpan.js");
6
6
  const IfcExpressionUtils_js_1 = require("../util/IfcExpressionUtils.js");
7
7
  const ExprStringBuilder_js_1 = require("./ExprStringBuilder.js");
8
8
  class ExprBase {
@@ -43,7 +43,7 @@ class ExprBase {
43
43
  toExprString(builder = new ExprStringBuilder_js_1.ExprStringBuilder(0)) {
44
44
  this.buildExprString(builder);
45
45
  if ((0, IfcExpressionUtils_js_1.isNullish)(this.getTextSpan())) {
46
- this.setTextSpan(TextSpan_1.TextSpan.of(1, builder.startPos + 1, 1, builder.endPos + 1));
46
+ this.setTextSpan(TextSpan_js_1.TextSpan.of(1, builder.startPos + 1, 1, builder.endPos + 1));
47
47
  }
48
48
  return builder.build();
49
49
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/expression/ExprBase.ts"],"names":[],"mappings":";;;AAEA,2DAM6B;AAG7B,+CAA4C;AAC5C,yEAA0D;AAC1D,iEAA2D;AAE3D,MAAsB,QAAQ;IAI5B,YAAsB,QAAkB;QACtC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,WAAW,CAAC,GAAa;QACvB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;IACtB,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IASD,OAAO;QACL,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAES,uBAAuB,CAC/B,MAAyB;QAEzB,IAAI,IAAA,mCAAe,EAAC,MAAM,CAAC,EAAE;YAC3B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;gBAC7B,OAAO,IAAI,kDAA8B,CACvC,IAAI,CAAC,OAAO,EAAE,EACd,MAAM,EACN,SAAS,EACT,IAAI,CAAC,WAAW,EAAE,CACnB,CAAC;aACH;YACD,OAAO,MAAM,CAAC;SACf;QACD,OAAO,IAAI,sCAAkB,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAEO,WAAW,CAAC,KAAU;QAC5B,IAAI,CAAC,IAAA,iCAAS,EAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE;YACjC,OAAO,IAAI,CAAC;SACb;QACD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAA,iCAAS,EAAC,KAAK,CAAC,EAAE;YACrB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SAChC;QACD,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;QACrC,MAAM,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;QACvC,OAAO,CACL,CAAC,IAAA,iCAAS,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAC5D,CAAC,IAAA,iCAAS,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAC/D,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,UAA6B,IAAI,wCAAiB,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC9B,IAAI,IAAA,iCAAS,EAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE;YACjC,IAAI,CAAC,WAAW,CACd,mBAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAC5D,CAAC;SACH;QACD,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;CAKF;AAzED,4BAyEC","file":"expression/ExprBase.js","sourcesContent":["import { Expr } from \"./Expr.js\";\nimport { IfcExpressionContext } from \"../context/IfcExpressionContext.js\";\nimport {\n ExprEvalConsequentialError1Obj,\n ExprEvalError,\n ExprEvalResult,\n ExprEvalSuccessObj,\n isExprEvalError,\n} from \"./ExprEvalResult.js\";\nimport { ExprKind } from \"./ExprKind.js\";\nimport { ExprType } from \"../type/ExprType.js\";\nimport { TextSpan } from \"../util/TextSpan\";\nimport { isNullish } from \"../util/IfcExpressionUtils.js\";\nimport { ExprStringBuilder } from \"./ExprStringBuilder.js\";\n\nexport abstract class ExprBase<T> implements Expr<T> {\n private readonly exprKind: ExprKind;\n private textSpan?: TextSpan;\n\n protected constructor(exprKind: ExprKind) {\n this.exprKind = exprKind;\n }\n\n setTextSpan(ctx: TextSpan) {\n this.textSpan = ctx;\n }\n\n getTextSpan(): TextSpan | undefined {\n return this.textSpan;\n }\n\n abstract getChildren(): Array<Expr<any>>;\n\n abstract evaluate(\n ctx: IfcExpressionContext,\n localCtx: Map<string, any>\n ): ExprEvalResult<T>;\n\n getKind(): ExprKind {\n return this.exprKind;\n }\n\n protected wrapInResultIfNecessary(\n result: T | ExprEvalError\n ): ExprEvalResult<T> {\n if (isExprEvalError(result)) {\n if (!this.hasTextSpan(result)) {\n return new ExprEvalConsequentialError1Obj(\n this.getKind(),\n result,\n undefined,\n this.getTextSpan()\n );\n }\n return result;\n }\n return new ExprEvalSuccessObj(result);\n }\n\n private hasTextSpan(error: any): boolean {\n if (!isNullish(error[\"textSpan\"])) {\n return true;\n }\n const cause = error[\"cause\"];\n if (!isNullish(cause)) {\n return this.hasTextSpan(cause);\n }\n const leftCause = error[\"leftCause\"];\n const rightCause = error[\"rightCause\"];\n return (\n (isNullish(leftCause) ? false : this.hasTextSpan(leftCause)) ||\n (isNullish(rightCause) ? false : this.hasTextSpan(rightCause))\n );\n }\n\n toExprString(builder: ExprStringBuilder = new ExprStringBuilder(0)): string {\n this.buildExprString(builder);\n if (isNullish(this.getTextSpan())) {\n this.setTextSpan(\n TextSpan.of(1, builder.startPos + 1, 1, builder.endPos + 1)\n );\n }\n return builder.build();\n }\n\n protected abstract buildExprString(builder: ExprStringBuilder): void;\n\n abstract getType(): ExprType;\n}\n"]}
1
+ {"version":3,"sources":["../../src/expression/ExprBase.ts"],"names":[],"mappings":";;;AAEA,2DAM6B;AAG7B,qDAA+C;AAC/C,yEAA0D;AAC1D,iEAA2D;AAE3D,MAAsB,QAAQ;IAI5B,YAAsB,QAAkB;QACtC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,WAAW,CAAC,GAAa;QACvB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;IACtB,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IASD,OAAO;QACL,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAES,uBAAuB,CAC/B,MAAyB;QAEzB,IAAI,IAAA,mCAAe,EAAC,MAAM,CAAC,EAAE;YAC3B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;gBAC7B,OAAO,IAAI,kDAA8B,CACvC,IAAI,CAAC,OAAO,EAAE,EACd,MAAM,EACN,SAAS,EACT,IAAI,CAAC,WAAW,EAAE,CACnB,CAAC;aACH;YACD,OAAO,MAAM,CAAC;SACf;QACD,OAAO,IAAI,sCAAkB,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAEO,WAAW,CAAC,KAAU;QAC5B,IAAI,CAAC,IAAA,iCAAS,EAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE;YACjC,OAAO,IAAI,CAAC;SACb;QACD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAA,iCAAS,EAAC,KAAK,CAAC,EAAE;YACrB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SAChC;QACD,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;QACrC,MAAM,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;QACvC,OAAO,CACL,CAAC,IAAA,iCAAS,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAC5D,CAAC,IAAA,iCAAS,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAC/D,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,UAA6B,IAAI,wCAAiB,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC9B,IAAI,IAAA,iCAAS,EAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE;YACjC,IAAI,CAAC,WAAW,CACd,sBAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAC5D,CAAC;SACH;QACD,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;CAKF;AAzED,4BAyEC","file":"expression/ExprBase.js","sourcesContent":["import { Expr } from \"./Expr.js\";\nimport { IfcExpressionContext } from \"../context/IfcExpressionContext.js\";\nimport {\n ExprEvalConsequentialError1Obj,\n ExprEvalError,\n ExprEvalResult,\n ExprEvalSuccessObj,\n isExprEvalError,\n} from \"./ExprEvalResult.js\";\nimport { ExprKind } from \"./ExprKind.js\";\nimport { ExprType } from \"../type/ExprType.js\";\nimport { TextSpan } from \"../util/TextSpan.js\";\nimport { isNullish } from \"../util/IfcExpressionUtils.js\";\nimport { ExprStringBuilder } from \"./ExprStringBuilder.js\";\n\nexport abstract class ExprBase<T> implements Expr<T> {\n private readonly exprKind: ExprKind;\n private textSpan?: TextSpan;\n\n protected constructor(exprKind: ExprKind) {\n this.exprKind = exprKind;\n }\n\n setTextSpan(ctx: TextSpan) {\n this.textSpan = ctx;\n }\n\n getTextSpan(): TextSpan | undefined {\n return this.textSpan;\n }\n\n abstract getChildren(): Array<Expr<any>>;\n\n abstract evaluate(\n ctx: IfcExpressionContext,\n localCtx: Map<string, any>\n ): ExprEvalResult<T>;\n\n getKind(): ExprKind {\n return this.exprKind;\n }\n\n protected wrapInResultIfNecessary(\n result: T | ExprEvalError\n ): ExprEvalResult<T> {\n if (isExprEvalError(result)) {\n if (!this.hasTextSpan(result)) {\n return new ExprEvalConsequentialError1Obj(\n this.getKind(),\n result,\n undefined,\n this.getTextSpan()\n );\n }\n return result;\n }\n return new ExprEvalSuccessObj(result);\n }\n\n private hasTextSpan(error: any): boolean {\n if (!isNullish(error[\"textSpan\"])) {\n return true;\n }\n const cause = error[\"cause\"];\n if (!isNullish(cause)) {\n return this.hasTextSpan(cause);\n }\n const leftCause = error[\"leftCause\"];\n const rightCause = error[\"rightCause\"];\n return (\n (isNullish(leftCause) ? false : this.hasTextSpan(leftCause)) ||\n (isNullish(rightCause) ? false : this.hasTextSpan(rightCause))\n );\n }\n\n toExprString(builder: ExprStringBuilder = new ExprStringBuilder(0)): string {\n this.buildExprString(builder);\n if (isNullish(this.getTextSpan())) {\n this.setTextSpan(\n TextSpan.of(1, builder.startPos + 1, 1, builder.endPos + 1)\n );\n }\n return builder.build();\n }\n\n protected abstract buildExprString(builder: ExprStringBuilder): void;\n\n abstract getType(): ExprType;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/expression/ExprEvalResult.ts"],"names":[],"mappings":"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","file":"expression/ExprEvalResult.js","sourcesContent":["import { Expr } from \"./Expr.js\";\nimport { ExprKind } from \"./ExprKind.js\";\nimport { isNullish } from \"../util/IfcExpressionUtils.js\";\nimport { TextSpan } from \"../util/TextSpan\";\n\nexport enum ExprEvalStatus {\n SUCCESS = 1000,\n ERROR = 2000,\n UNDEFINED_RESULT = 2001,\n REFERENCE_ERROR = 2010,\n CONSEQUENTIAL_ERROR = 2020,\n MATH_ERROR = 2030,\n TYPE_ERROR = 2040,\n NOT_FOUND = 2050,\n IFC_PROPERTY_NOT_FOUND = 2051,\n IFC_PROPERTY_SET_NOT_FOUND = 2052,\n IFC_TYPE_OBJECT_NOT_FOUND = 2053,\n PARSE_ERROR = 2080,\n SYNTAX_ERROR = 2081,\n VALIDATION_ERROR = 2082,\n STATIC_TYPE_ERROR = 2083,\n MISSING_OPERAND = 2084,\n MISSING_REQUIRED_FUNCTION_ARGUMENT = 2085,\n UNKNOWN_FUNCTION = 2086,\n WRONG_FUNCTION_ARGUMENT_TYPE = 2088,\n}\n\nexport function isExprEvalStatus(candidate: number): boolean {\n return (\n typeof candidate === \"number\" &&\n typeof ExprEvalStatus[candidate] !== \"undefined\"\n );\n}\n\nexport type ExprEvalResult<T> = ExprEvalSuccess<T> | ExprEvalError;\n\nexport type ExprEvalSuccess<T> = {\n status: ExprEvalStatus;\n result: T;\n};\n\nexport function isExprEvalSuccess(arg: any): arg is ExprEvalSuccess<unknown> {\n return (\n isExprEvalStatus(arg.status) &&\n arg.status >= ExprEvalStatus.SUCCESS &&\n arg.status < ExprEvalStatus.ERROR &&\n typeof arg.result !== \"undefined\"\n );\n}\n\nexport class ExprEvalSuccessObj<T> {\n public readonly result: T;\n public readonly status: ExprEvalStatus;\n\n constructor(result: T) {\n this.result = result;\n this.status = ExprEvalStatus.SUCCESS;\n }\n}\n\nexport class ExprEvalErrorObj {\n public readonly status: ExprEvalStatus;\n public readonly exprKind: ExprKind;\n public readonly message?: string;\n public readonly textSpan?: TextSpan;\n constructor(\n exprKind: ExprKind,\n status: ExprEvalStatus = ExprEvalStatus.ERROR,\n message?: any,\n textSpan?: TextSpan\n ) {\n if (!isExprEvalStatus(status) || status < ExprEvalStatus.ERROR) {\n throw new Error(`ExprEvalStatus ${status} is not an error status\"`);\n }\n this.status = status;\n this.exprKind = exprKind;\n if (!isNullish(message)) {\n this.message = mapErrorObjectToMessage(message);\n }\n if (!isNullish(textSpan)) {\n this.textSpan = textSpan;\n }\n }\n}\n\nexport function mapErrorObjectToMessage(errorObjectOrMessage: any): string {\n if (typeof errorObjectOrMessage === \"string\") {\n return errorObjectOrMessage;\n } else if (errorObjectOrMessage instanceof Error) {\n return errorObjectOrMessage.message;\n } else if (Array.isArray(errorObjectOrMessage)) {\n return errorObjectOrMessage\n .map((m) => this.createErrorMessage(m))\n .join(\" \");\n }\n return JSON.stringify(errorObjectOrMessage);\n}\n\nexport class ExprEvalErrorUndefinedResult extends ExprEvalErrorObj {\n constructor(epxrKind: ExprKind, textSpan?: TextSpan) {\n super(\n epxrKind,\n ExprEvalStatus.UNDEFINED_RESULT,\n \"Expression evaluated to undefined or null - this should never happen\",\n textSpan\n );\n }\n}\n\nexport class ExprEvalError1Obj extends ExprEvalErrorObj {\n public readonly sub: ExprEvalResult<unknown>;\n\n constructor(\n exprKind: ExprKind,\n sub: ExprEvalResult<unknown>,\n status: ExprEvalStatus,\n message?: any,\n textSpan?: TextSpan\n ) {\n super(exprKind, status, message, textSpan);\n this.sub = sub;\n }\n}\n\nexport class ExprEvalError2Obj extends ExprEvalErrorObj {\n public readonly left: ExprEvalResult<unknown>;\n public readonly right: ExprEvalResult<unknown>;\n\n constructor(\n exprKind: ExprKind,\n left: ExprEvalResult<unknown>,\n right: ExprEvalResult<unknown>,\n status?: ExprEvalStatus,\n message?: any,\n textSpan?: TextSpan\n ) {\n super(exprKind, status, message, textSpan);\n this.left = left;\n this.right = right;\n }\n}\n\nexport function isExprEvalError(arg: any): arg is ExprEvalError {\n return isExprEvalStatus(arg.status) && arg.status >= ExprEvalStatus.ERROR;\n}\n\nexport type ExprEvalError =\n | ExprEvalUnspecificError\n | ExprEvalReferencError\n | ExprEvalErrorUndefinedResult\n | ExprEvalMissingRequiredFunctionArgumentError\n | ExprEvalValueError<unknown>;\n\ntype ExprEvalUnspecificError = {\n readonly exprKind: ExprKind;\n readonly status: ExprEvalStatus;\n readonly message?: string;\n};\n\nexport type ExprEvalReferencError = ExprEvalUnspecificError & {\n readonly status: ExprEvalStatus.REFERENCE_ERROR;\n readonly expr: Expr<unknown>;\n};\n\nexport type ExprEvalConsequentialError1 = ExprEvalUnspecificError & {\n readonly status: ExprEvalStatus.CONSEQUENTIAL_ERROR;\n readonly exprKind: ExprKind;\n readonly cause: ExprEvalError;\n};\n\nexport class ExprEvalConsequentialError1Obj extends ExprEvalErrorObj {\n public readonly exprKind: ExprKind;\n public readonly cause: ExprEvalResult<unknown>;\n\n constructor(\n exprKind: ExprKind,\n cause: ExprEvalResult<unknown>,\n message?: any,\n textSpan?: TextSpan\n ) {\n super(\n exprKind,\n ExprEvalStatus.CONSEQUENTIAL_ERROR,\n message || \"Consequential error\",\n textSpan\n );\n this.exprKind = exprKind;\n this.cause = cause;\n }\n}\n\nexport type ExprEvalFunctionEvaluationError = ExprEvalUnspecificError & {\n functionName: string;\n};\n\nexport type ExprEvalMissingRequiredFunctionArgumentError =\n ExprEvalFunctionEvaluationError & {\n argumentName: string;\n argumentIndex: number;\n };\n\nexport type ExprEvalFunctionEvaluationConsequentialError =\n ExprEvalFunctionEvaluationError & {\n cause: ExprEvalUnspecificError;\n };\n\nexport class ExprEvalFunctionEvaluationErrorObj extends ExprEvalErrorObj {\n public readonly functionName: string;\n\n constructor(\n exprKind: ExprKind,\n status: ExprEvalStatus,\n message: any,\n functionName: string,\n textSpan?: TextSpan\n ) {\n super(exprKind, status, message, textSpan);\n this.functionName = functionName;\n }\n}\n\nexport class ExprEvalFunctionEvaluationObjectNotFoundErrorObj extends ExprEvalFunctionEvaluationErrorObj {\n public readonly offendingKey: string;\n\n constructor(\n exprKind: ExprKind,\n status: ExprEvalStatus,\n message: any,\n functionName: string,\n objectKey: string,\n textSpan?: TextSpan\n ) {\n super(exprKind, status, message, functionName, textSpan);\n this.offendingKey = objectKey;\n }\n}\n\nexport class ExprEvalFunctionEvaluationConsequentialErrorObj extends ExprEvalFunctionEvaluationErrorObj {\n public readonly cause: ExprEvalError;\n\n constructor(\n exprKind: ExprKind,\n functionName: string,\n cause: ExprEvalError,\n textSpan?: TextSpan\n ) {\n super(\n exprKind,\n ExprEvalStatus.CONSEQUENTIAL_ERROR,\n `Error evaluating function ${functionName}`,\n functionName,\n textSpan\n );\n this.cause = cause;\n }\n}\n\nexport class ExprEvalMissingRequiredFunctionArgumentErrorObj extends ExprEvalFunctionEvaluationErrorObj {\n public readonly argumentName: string;\n public readonly argumentIndex: number;\n\n constructor(\n exprKind: ExprKind,\n message: any,\n functionName: string,\n argumentName: string,\n argumentIndex: number,\n textSpan?: TextSpan\n ) {\n super(\n exprKind,\n ExprEvalStatus.MISSING_REQUIRED_FUNCTION_ARGUMENT,\n message,\n functionName,\n textSpan\n );\n this.argumentName = argumentName;\n this.argumentIndex = argumentIndex;\n }\n}\n\nexport type ExprEvalTypeError = ExprEvalUnspecificError & {\n status: ExprEvalStatus.TYPE_ERROR;\n};\n\nexport type ExprEvalValueError<T> = ExprEvalUnspecificError & {\n offendingValue: T;\n};\n\nexport class ExprEvalValueErrorObj<T> extends ExprEvalErrorObj {\n public readonly offendingValue: T;\n\n constructor(\n exprKind: ExprKind,\n status: ExprEvalStatus,\n message: any,\n offendingValue: T,\n textSpan?: TextSpan\n ) {\n super(exprKind, status, message, textSpan);\n this.offendingValue = offendingValue;\n }\n}\n\nexport class ExprEvalTypeErrorObj<T> extends ExprEvalValueErrorObj<T> {\n constructor(\n exprKind: ExprKind,\n message: any,\n offendingValue: T,\n textSpan?: TextSpan\n ) {\n super(\n exprKind,\n ExprEvalStatus.TYPE_ERROR,\n message,\n offendingValue,\n textSpan\n );\n }\n}\n\nexport type ExprEvalParseError = ExprEvalUnspecificError & {\n exprKind: ExprKind.PARSE_ERROR;\n line: number;\n column: number;\n offendingInput: string;\n};\n\nexport type ExprEvalValidationError = ExprEvalUnspecificError & {\n textSpan: TextSpan;\n};\n\nexport class ExprEvalParseErrorObj extends ExprEvalErrorObj {\n public readonly line: number;\n public readonly column: number;\n public readonly offendingInput: string;\n\n constructor(\n status: ExprEvalStatus,\n message: any,\n offendingInput: string,\n textSpan: TextSpan\n ) {\n super(ExprKind.PARSE_ERROR, status, message, textSpan);\n this.offendingInput = offendingInput;\n }\n}\n\nexport class ExprEvalValidationErrorObj extends ExprEvalErrorObj {\n public readonly textSpan: TextSpan;\n constructor(status: ExprEvalStatus, message: any, textSpan: TextSpan) {\n super(ExprKind.PARSE_ERROR, status, message, textSpan);\n }\n}\n\nexport class ExprEvalUnknownFunctionErrorObj extends ExprEvalValidationErrorObj {\n public readonly functionName: string;\n\n constructor(message: any, functionName, textSpan: TextSpan) {\n super(ExprEvalStatus.UNKNOWN_FUNCTION, message, textSpan);\n this.functionName = functionName;\n }\n}\n\nexport class ExprEvalMissingFunctionArgumentErrorObj extends ExprEvalValidationErrorObj {\n public readonly functionName: string;\n public readonly argumentName: string;\n public readonly argumentIndex: number;\n\n constructor(\n message: any,\n functionName: string,\n argumentName: string,\n argumentIndex: number,\n textSpan: TextSpan\n ) {\n super(ExprEvalStatus.MISSING_REQUIRED_FUNCTION_ARGUMENT, message, textSpan);\n this.functionName = functionName;\n this.argumentName = argumentName;\n this.argumentIndex = argumentIndex;\n }\n}\n\nexport class ExprEvalWrongFunctionArgumentTypeErrorObj extends ExprEvalValidationErrorObj {\n public readonly functionName: string;\n public readonly argumentName: string;\n public readonly argumentIndex: number;\n public readonly expectedType: string;\n public readonly actualType: string;\n\n constructor(\n message: any,\n functionName: string,\n argumentName: string,\n argumentIndex: number,\n expectedType: string,\n actualType: string,\n textSpan: TextSpan\n ) {\n super(ExprEvalStatus.WRONG_FUNCTION_ARGUMENT_TYPE, message, textSpan);\n this.functionName = functionName;\n this.argumentName = argumentName;\n this.argumentIndex = argumentIndex;\n this.expectedType = expectedType;\n this.actualType = actualType;\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/expression/ExprEvalResult.ts"],"names":[],"mappings":"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","file":"expression/ExprEvalResult.js","sourcesContent":["import { Expr } from \"./Expr.js\";\nimport { ExprKind } from \"./ExprKind.js\";\nimport { isNullish } from \"../util/IfcExpressionUtils.js\";\nimport { TextSpan } from \"../util/TextSpan.js\";\n\nexport enum ExprEvalStatus {\n SUCCESS = 1000,\n ERROR = 2000,\n UNDEFINED_RESULT = 2001,\n REFERENCE_ERROR = 2010,\n CONSEQUENTIAL_ERROR = 2020,\n MATH_ERROR = 2030,\n TYPE_ERROR = 2040,\n NOT_FOUND = 2050,\n IFC_PROPERTY_NOT_FOUND = 2051,\n IFC_PROPERTY_SET_NOT_FOUND = 2052,\n IFC_TYPE_OBJECT_NOT_FOUND = 2053,\n PARSE_ERROR = 2080,\n SYNTAX_ERROR = 2081,\n VALIDATION_ERROR = 2082,\n STATIC_TYPE_ERROR = 2083,\n MISSING_OPERAND = 2084,\n MISSING_REQUIRED_FUNCTION_ARGUMENT = 2085,\n UNKNOWN_FUNCTION = 2086,\n WRONG_FUNCTION_ARGUMENT_TYPE = 2088,\n}\n\nexport function isExprEvalStatus(candidate: number): boolean {\n return (\n typeof candidate === \"number\" &&\n typeof ExprEvalStatus[candidate] !== \"undefined\"\n );\n}\n\nexport type ExprEvalResult<T> = ExprEvalSuccess<T> | ExprEvalError;\n\nexport type ExprEvalSuccess<T> = {\n status: ExprEvalStatus;\n result: T;\n};\n\nexport function isExprEvalSuccess(arg: any): arg is ExprEvalSuccess<unknown> {\n return (\n isExprEvalStatus(arg.status) &&\n arg.status >= ExprEvalStatus.SUCCESS &&\n arg.status < ExprEvalStatus.ERROR &&\n typeof arg.result !== \"undefined\"\n );\n}\n\nexport class ExprEvalSuccessObj<T> {\n public readonly result: T;\n public readonly status: ExprEvalStatus;\n\n constructor(result: T) {\n this.result = result;\n this.status = ExprEvalStatus.SUCCESS;\n }\n}\n\nexport class ExprEvalErrorObj {\n public readonly status: ExprEvalStatus;\n public readonly exprKind: ExprKind;\n public readonly message?: string;\n public readonly textSpan?: TextSpan;\n constructor(\n exprKind: ExprKind,\n status: ExprEvalStatus = ExprEvalStatus.ERROR,\n message?: any,\n textSpan?: TextSpan\n ) {\n if (!isExprEvalStatus(status) || status < ExprEvalStatus.ERROR) {\n throw new Error(`ExprEvalStatus ${status} is not an error status\"`);\n }\n this.status = status;\n this.exprKind = exprKind;\n if (!isNullish(message)) {\n this.message = mapErrorObjectToMessage(message);\n }\n if (!isNullish(textSpan)) {\n this.textSpan = textSpan;\n }\n }\n}\n\nexport function mapErrorObjectToMessage(errorObjectOrMessage: any): string {\n if (typeof errorObjectOrMessage === \"string\") {\n return errorObjectOrMessage;\n } else if (errorObjectOrMessage instanceof Error) {\n return errorObjectOrMessage.message;\n } else if (Array.isArray(errorObjectOrMessage)) {\n return errorObjectOrMessage\n .map((m) => this.createErrorMessage(m))\n .join(\" \");\n }\n return JSON.stringify(errorObjectOrMessage);\n}\n\nexport class ExprEvalErrorUndefinedResult extends ExprEvalErrorObj {\n constructor(epxrKind: ExprKind, textSpan?: TextSpan) {\n super(\n epxrKind,\n ExprEvalStatus.UNDEFINED_RESULT,\n \"Expression evaluated to undefined or null - this should never happen\",\n textSpan\n );\n }\n}\n\nexport class ExprEvalError1Obj extends ExprEvalErrorObj {\n public readonly sub: ExprEvalResult<unknown>;\n\n constructor(\n exprKind: ExprKind,\n sub: ExprEvalResult<unknown>,\n status: ExprEvalStatus,\n message?: any,\n textSpan?: TextSpan\n ) {\n super(exprKind, status, message, textSpan);\n this.sub = sub;\n }\n}\n\nexport class ExprEvalError2Obj extends ExprEvalErrorObj {\n public readonly left: ExprEvalResult<unknown>;\n public readonly right: ExprEvalResult<unknown>;\n\n constructor(\n exprKind: ExprKind,\n left: ExprEvalResult<unknown>,\n right: ExprEvalResult<unknown>,\n status?: ExprEvalStatus,\n message?: any,\n textSpan?: TextSpan\n ) {\n super(exprKind, status, message, textSpan);\n this.left = left;\n this.right = right;\n }\n}\n\nexport function isExprEvalError(arg: any): arg is ExprEvalError {\n return isExprEvalStatus(arg.status) && arg.status >= ExprEvalStatus.ERROR;\n}\n\nexport type ExprEvalError =\n | ExprEvalUnspecificError\n | ExprEvalReferencError\n | ExprEvalErrorUndefinedResult\n | ExprEvalMissingRequiredFunctionArgumentError\n | ExprEvalValueError<unknown>;\n\ntype ExprEvalUnspecificError = {\n readonly exprKind: ExprKind;\n readonly status: ExprEvalStatus;\n readonly message?: string;\n};\n\nexport type ExprEvalReferencError = ExprEvalUnspecificError & {\n readonly status: ExprEvalStatus.REFERENCE_ERROR;\n readonly expr: Expr<unknown>;\n};\n\nexport type ExprEvalConsequentialError1 = ExprEvalUnspecificError & {\n readonly status: ExprEvalStatus.CONSEQUENTIAL_ERROR;\n readonly exprKind: ExprKind;\n readonly cause: ExprEvalError;\n};\n\nexport class ExprEvalConsequentialError1Obj extends ExprEvalErrorObj {\n public readonly exprKind: ExprKind;\n public readonly cause: ExprEvalResult<unknown>;\n\n constructor(\n exprKind: ExprKind,\n cause: ExprEvalResult<unknown>,\n message?: any,\n textSpan?: TextSpan\n ) {\n super(\n exprKind,\n ExprEvalStatus.CONSEQUENTIAL_ERROR,\n message || \"Consequential error\",\n textSpan\n );\n this.exprKind = exprKind;\n this.cause = cause;\n }\n}\n\nexport type ExprEvalFunctionEvaluationError = ExprEvalUnspecificError & {\n functionName: string;\n};\n\nexport type ExprEvalMissingRequiredFunctionArgumentError =\n ExprEvalFunctionEvaluationError & {\n argumentName: string;\n argumentIndex: number;\n };\n\nexport type ExprEvalFunctionEvaluationConsequentialError =\n ExprEvalFunctionEvaluationError & {\n cause: ExprEvalUnspecificError;\n };\n\nexport class ExprEvalFunctionEvaluationErrorObj extends ExprEvalErrorObj {\n public readonly functionName: string;\n\n constructor(\n exprKind: ExprKind,\n status: ExprEvalStatus,\n message: any,\n functionName: string,\n textSpan?: TextSpan\n ) {\n super(exprKind, status, message, textSpan);\n this.functionName = functionName;\n }\n}\n\nexport class ExprEvalFunctionEvaluationObjectNotFoundErrorObj extends ExprEvalFunctionEvaluationErrorObj {\n public readonly offendingKey: string;\n\n constructor(\n exprKind: ExprKind,\n status: ExprEvalStatus,\n message: any,\n functionName: string,\n objectKey: string,\n textSpan?: TextSpan\n ) {\n super(exprKind, status, message, functionName, textSpan);\n this.offendingKey = objectKey;\n }\n}\n\nexport class ExprEvalFunctionEvaluationConsequentialErrorObj extends ExprEvalFunctionEvaluationErrorObj {\n public readonly cause: ExprEvalError;\n\n constructor(\n exprKind: ExprKind,\n functionName: string,\n cause: ExprEvalError,\n textSpan?: TextSpan\n ) {\n super(\n exprKind,\n ExprEvalStatus.CONSEQUENTIAL_ERROR,\n `Error evaluating function ${functionName}`,\n functionName,\n textSpan\n );\n this.cause = cause;\n }\n}\n\nexport class ExprEvalMissingRequiredFunctionArgumentErrorObj extends ExprEvalFunctionEvaluationErrorObj {\n public readonly argumentName: string;\n public readonly argumentIndex: number;\n\n constructor(\n exprKind: ExprKind,\n message: any,\n functionName: string,\n argumentName: string,\n argumentIndex: number,\n textSpan?: TextSpan\n ) {\n super(\n exprKind,\n ExprEvalStatus.MISSING_REQUIRED_FUNCTION_ARGUMENT,\n message,\n functionName,\n textSpan\n );\n this.argumentName = argumentName;\n this.argumentIndex = argumentIndex;\n }\n}\n\nexport type ExprEvalTypeError = ExprEvalUnspecificError & {\n status: ExprEvalStatus.TYPE_ERROR;\n};\n\nexport type ExprEvalValueError<T> = ExprEvalUnspecificError & {\n offendingValue: T;\n};\n\nexport class ExprEvalValueErrorObj<T> extends ExprEvalErrorObj {\n public readonly offendingValue: T;\n\n constructor(\n exprKind: ExprKind,\n status: ExprEvalStatus,\n message: any,\n offendingValue: T,\n textSpan?: TextSpan\n ) {\n super(exprKind, status, message, textSpan);\n this.offendingValue = offendingValue;\n }\n}\n\nexport class ExprEvalTypeErrorObj<T> extends ExprEvalValueErrorObj<T> {\n constructor(\n exprKind: ExprKind,\n message: any,\n offendingValue: T,\n textSpan?: TextSpan\n ) {\n super(\n exprKind,\n ExprEvalStatus.TYPE_ERROR,\n message,\n offendingValue,\n textSpan\n );\n }\n}\n\nexport type ExprEvalParseError = ExprEvalUnspecificError & {\n exprKind: ExprKind.PARSE_ERROR;\n line: number;\n column: number;\n offendingInput: string;\n};\n\nexport type ExprEvalValidationError = ExprEvalUnspecificError & {\n textSpan: TextSpan;\n};\n\nexport class ExprEvalParseErrorObj extends ExprEvalErrorObj {\n public readonly line: number;\n public readonly column: number;\n public readonly offendingInput: string;\n\n constructor(\n status: ExprEvalStatus,\n message: any,\n offendingInput: string,\n textSpan: TextSpan\n ) {\n super(ExprKind.PARSE_ERROR, status, message, textSpan);\n this.offendingInput = offendingInput;\n }\n}\n\nexport class ExprEvalValidationErrorObj extends ExprEvalErrorObj {\n public readonly textSpan: TextSpan;\n constructor(status: ExprEvalStatus, message: any, textSpan: TextSpan) {\n super(ExprKind.PARSE_ERROR, status, message, textSpan);\n }\n}\n\nexport class ExprEvalUnknownFunctionErrorObj extends ExprEvalValidationErrorObj {\n public readonly functionName: string;\n\n constructor(message: any, functionName, textSpan: TextSpan) {\n super(ExprEvalStatus.UNKNOWN_FUNCTION, message, textSpan);\n this.functionName = functionName;\n }\n}\n\nexport class ExprEvalMissingFunctionArgumentErrorObj extends ExprEvalValidationErrorObj {\n public readonly functionName: string;\n public readonly argumentName: string;\n public readonly argumentIndex: number;\n\n constructor(\n message: any,\n functionName: string,\n argumentName: string,\n argumentIndex: number,\n textSpan: TextSpan\n ) {\n super(ExprEvalStatus.MISSING_REQUIRED_FUNCTION_ARGUMENT, message, textSpan);\n this.functionName = functionName;\n this.argumentName = argumentName;\n this.argumentIndex = argumentIndex;\n }\n}\n\nexport class ExprEvalWrongFunctionArgumentTypeErrorObj extends ExprEvalValidationErrorObj {\n public readonly functionName: string;\n public readonly argumentName: string;\n public readonly argumentIndex: number;\n public readonly expectedType: string;\n public readonly actualType: string;\n\n constructor(\n message: any,\n functionName: string,\n argumentName: string,\n argumentIndex: number,\n expectedType: string,\n actualType: string,\n textSpan: TextSpan\n ) {\n super(ExprEvalStatus.WRONG_FUNCTION_ARGUMENT_TYPE, message, textSpan);\n this.functionName = functionName;\n this.argumentName = argumentName;\n this.argumentIndex = argumentIndex;\n this.expectedType = expectedType;\n this.actualType = actualType;\n }\n}\n"]}
@@ -18,7 +18,7 @@ const EXISTS_js_1 = require("./impl/EXISTS.js");
18
18
  const EQUALS_js_1 = require("./impl/EQUALS.js");
19
19
  const CompareMagnitudes_js_1 = require("./impl/CompareMagnitudes.js");
20
20
  const ReplacePattern_js_1 = require("./impl/ReplacePattern.js");
21
- const IF_1 = require("./impl/IF");
21
+ const IF_js_1 = require("./impl/IF.js");
22
22
  const builtinFunctions = new Map();
23
23
  function registerFunc(func) {
24
24
  builtinFunctions.set(IfcExpressionFunctions.normalizeName(func.getName()), func);
@@ -46,7 +46,7 @@ class IfcExpressionFunctions {
46
46
  exports.IfcExpressionFunctions = IfcExpressionFunctions;
47
47
  registerFunc(new MAP_js_1.MAP());
48
48
  registerFunc(new CHOOSE_js_1.CHOOSE());
49
- registerFunc(new IF_1.IF());
49
+ registerFunc(new IF_js_1.IF());
50
50
  registerFunc(new ROUND_js_1.ROUND());
51
51
  registerFunc(new AttributeAccessorFunction_js_1.AttributeAccessorFunction("name", Types_js_1.Type.STRING));
52
52
  registerFunc(new AttributeAccessorFunction_js_1.AttributeAccessorFunction("guid", Types_js_1.Type.STRING));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/expression/function/IfcExpressionFunctions.ts"],"names":[],"mappings":"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","file":"expression/function/IfcExpressionFunctions.js","sourcesContent":["import { Func } from \"./Func.js\";\nimport { isNullish } from \"../../util/IfcExpressionUtils.js\";\nimport { MAP } from \"./impl/MAP.js\";\nimport { ROUND } from \"./impl/ROUND.js\";\nimport { AttributeAccessorFunction } from \"./impl/AttributeAccessorFunction.js\";\nimport { PROPERTYSET } from \"./impl/PROPERTYSET.js\";\nimport { PROPERTY } from \"./impl/PROPERTY.js\";\nimport { TYPE } from \"./impl/TYPE.js\";\nimport { FuncBooleanBinary } from \"./impl/FuncBooleanBinary.js\";\nimport { NOT } from \"./impl/NOT.js\";\nimport { CHOOSE } from \"./impl/CHOOSE.js\";\nimport { MatchesPattern } from \"./impl/MatchesPattern.js\";\nimport { Type, Types } from \"../../type/Types.js\";\nimport { TOSTRING } from \"./impl/TOSTRING.js\";\nimport { EXISTS } from \"./impl/EXISTS.js\";\nimport { EQUALS } from \"./impl/EQUALS.js\";\nimport { CompareMagnitudes } from \"./impl/CompareMagnitudes.js\";\nimport { ReplacePattern } from \"./impl/ReplacePattern.js\";\nimport { IF } from \"./impl/IF\";\n\nconst builtinFunctions = new Map<string, Func>();\nfunction registerFunc(func: Func) {\n builtinFunctions.set(\n IfcExpressionFunctions.normalizeName(func.getName()),\n func\n );\n}\nexport class IfcExpressionFunctions {\n public static normalizeName(name: string): string {\n if (isNullish(name)) {\n return undefined;\n }\n return name.toUpperCase();\n }\n\n public static isBuiltinFunction(name: string) {\n if (isNullish(name)) {\n return false;\n }\n return builtinFunctions.has(this.normalizeName(name));\n }\n\n public static getFunction(name: string): Func {\n if (isNullish(name)) {\n return undefined;\n }\n return builtinFunctions.get(this.normalizeName(name));\n }\n}\n\nregisterFunc(new MAP());\nregisterFunc(new CHOOSE());\nregisterFunc(new IF());\nregisterFunc(new ROUND());\nregisterFunc(new AttributeAccessorFunction(\"name\", Type.STRING));\nregisterFunc(new AttributeAccessorFunction(\"guid\", Type.STRING));\nregisterFunc(new AttributeAccessorFunction(\"ifcClass\", Type.STRING));\nregisterFunc(new AttributeAccessorFunction(\"description\", Type.STRING));\nregisterFunc(\n new AttributeAccessorFunction(\n \"value\",\n Types.or(Type.STRING, Type.NUMERIC, Type.BOOLEAN, Type.ARRAY)\n )\n);\nregisterFunc(new PROPERTYSET());\nregisterFunc(new PROPERTY());\nregisterFunc(new TYPE());\nregisterFunc(new NOT());\nregisterFunc(new TOSTRING());\nregisterFunc(new EXISTS());\nregisterFunc(new FuncBooleanBinary(\"AND\", (left, right) => left && right));\nregisterFunc(new FuncBooleanBinary(\"OR\", (left, right) => left || right));\nregisterFunc(\n new FuncBooleanBinary(\"XOR\", (left, right) => (left ? !right : right))\n);\nregisterFunc(new FuncBooleanBinary(\"IMPLIES\", (left, right) => !left || right));\nregisterFunc(new EQUALS());\nregisterFunc(new CompareMagnitudes(\"GREATERTHAN\", (cmp) => cmp > 0));\nregisterFunc(new CompareMagnitudes(\"GREATERTHANOREQUAL\", (cmp) => cmp >= 0));\nregisterFunc(new CompareMagnitudes(\"LESSTHAN\", (cmp) => cmp < 0));\nregisterFunc(new CompareMagnitudes(\"LESSTHANOREQUAL\", (cmp) => cmp <= 0));\nregisterFunc(new MatchesPattern(\"CONTAINS\", true, false));\nregisterFunc(new MatchesPattern(\"MATCHES\", true, true));\nregisterFunc(new MatchesPattern(\"REGEXCONTAINS\", false, false));\nregisterFunc(new MatchesPattern(\"REGEXMATCHES\", false, true));\nregisterFunc(new ReplacePattern(\"REPLACE\", true));\nregisterFunc(new ReplacePattern(\"REGEXREPLACE\", false));\n"]}
1
+ {"version":3,"sources":["../../src/expression/function/IfcExpressionFunctions.ts"],"names":[],"mappings":"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","file":"expression/function/IfcExpressionFunctions.js","sourcesContent":["import { Func } from \"./Func.js\";\nimport { isNullish } from \"../../util/IfcExpressionUtils.js\";\nimport { MAP } from \"./impl/MAP.js\";\nimport { ROUND } from \"./impl/ROUND.js\";\nimport { AttributeAccessorFunction } from \"./impl/AttributeAccessorFunction.js\";\nimport { PROPERTYSET } from \"./impl/PROPERTYSET.js\";\nimport { PROPERTY } from \"./impl/PROPERTY.js\";\nimport { TYPE } from \"./impl/TYPE.js\";\nimport { FuncBooleanBinary } from \"./impl/FuncBooleanBinary.js\";\nimport { NOT } from \"./impl/NOT.js\";\nimport { CHOOSE } from \"./impl/CHOOSE.js\";\nimport { MatchesPattern } from \"./impl/MatchesPattern.js\";\nimport { Type, Types } from \"../../type/Types.js\";\nimport { TOSTRING } from \"./impl/TOSTRING.js\";\nimport { EXISTS } from \"./impl/EXISTS.js\";\nimport { EQUALS } from \"./impl/EQUALS.js\";\nimport { CompareMagnitudes } from \"./impl/CompareMagnitudes.js\";\nimport { ReplacePattern } from \"./impl/ReplacePattern.js\";\nimport { IF } from \"./impl/IF.js\";\n\nconst builtinFunctions = new Map<string, Func>();\nfunction registerFunc(func: Func) {\n builtinFunctions.set(\n IfcExpressionFunctions.normalizeName(func.getName()),\n func\n );\n}\nexport class IfcExpressionFunctions {\n public static normalizeName(name: string): string {\n if (isNullish(name)) {\n return undefined;\n }\n return name.toUpperCase();\n }\n\n public static isBuiltinFunction(name: string) {\n if (isNullish(name)) {\n return false;\n }\n return builtinFunctions.has(this.normalizeName(name));\n }\n\n public static getFunction(name: string): Func {\n if (isNullish(name)) {\n return undefined;\n }\n return builtinFunctions.get(this.normalizeName(name));\n }\n}\n\nregisterFunc(new MAP());\nregisterFunc(new CHOOSE());\nregisterFunc(new IF());\nregisterFunc(new ROUND());\nregisterFunc(new AttributeAccessorFunction(\"name\", Type.STRING));\nregisterFunc(new AttributeAccessorFunction(\"guid\", Type.STRING));\nregisterFunc(new AttributeAccessorFunction(\"ifcClass\", Type.STRING));\nregisterFunc(new AttributeAccessorFunction(\"description\", Type.STRING));\nregisterFunc(\n new AttributeAccessorFunction(\n \"value\",\n Types.or(Type.STRING, Type.NUMERIC, Type.BOOLEAN, Type.ARRAY)\n )\n);\nregisterFunc(new PROPERTYSET());\nregisterFunc(new PROPERTY());\nregisterFunc(new TYPE());\nregisterFunc(new NOT());\nregisterFunc(new TOSTRING());\nregisterFunc(new EXISTS());\nregisterFunc(new FuncBooleanBinary(\"AND\", (left, right) => left && right));\nregisterFunc(new FuncBooleanBinary(\"OR\", (left, right) => left || right));\nregisterFunc(\n new FuncBooleanBinary(\"XOR\", (left, right) => (left ? !right : right))\n);\nregisterFunc(new FuncBooleanBinary(\"IMPLIES\", (left, right) => !left || right));\nregisterFunc(new EQUALS());\nregisterFunc(new CompareMagnitudes(\"GREATERTHAN\", (cmp) => cmp > 0));\nregisterFunc(new CompareMagnitudes(\"GREATERTHANOREQUAL\", (cmp) => cmp >= 0));\nregisterFunc(new CompareMagnitudes(\"LESSTHAN\", (cmp) => cmp < 0));\nregisterFunc(new CompareMagnitudes(\"LESSTHANOREQUAL\", (cmp) => cmp <= 0));\nregisterFunc(new MatchesPattern(\"CONTAINS\", true, false));\nregisterFunc(new MatchesPattern(\"MATCHES\", true, true));\nregisterFunc(new MatchesPattern(\"REGEXCONTAINS\", false, false));\nregisterFunc(new MatchesPattern(\"REGEXMATCHES\", false, true));\nregisterFunc(new ReplacePattern(\"REPLACE\", true));\nregisterFunc(new ReplacePattern(\"REGEXREPLACE\", false));\n"]}
@@ -4,14 +4,14 @@ exports.IF = void 0;
4
4
  const Func_js_1 = require("../Func.js");
5
5
  const ExprEvalResult_js_1 = require("../../ExprEvalResult.js");
6
6
  const Types_js_1 = require("../../../type/Types.js");
7
- const FuncArgBoolean_1 = require("../arg/FuncArgBoolean");
8
- const FuncArgAny_1 = require("../arg/FuncArgAny");
7
+ const FuncArgBoolean_js_1 = require("../arg/FuncArgBoolean.js");
8
+ const FuncArgAny_js_1 = require("../arg/FuncArgAny.js");
9
9
  class IF extends Func_js_1.Func {
10
10
  constructor() {
11
11
  super("IF", [
12
- new FuncArgBoolean_1.FuncArgBoolean(true, IF.ARG_NAME_CONDITION),
13
- new FuncArgAny_1.FuncArgAny(true, IF.ARG_NAME_THEN),
14
- new FuncArgAny_1.FuncArgAny(true, IF.ARG_NAME_ELSE),
12
+ new FuncArgBoolean_js_1.FuncArgBoolean(true, IF.ARG_NAME_CONDITION),
13
+ new FuncArgAny_js_1.FuncArgAny(true, IF.ARG_NAME_THEN),
14
+ new FuncArgAny_js_1.FuncArgAny(true, IF.ARG_NAME_ELSE),
15
15
  ]);
16
16
  }
17
17
  getReturnType(argumentTypes) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/expression/function/impl/IF.ts"],"names":[],"mappings":";;;AAAA,wCAAkC;AAElC,+DAA6E;AAG7E,qDAA+C;AAE/C,0DAAuD;AACvD,kDAA+C;AAE/C,MAAa,EAAG,SAAQ,cAAI;IAK1B;QACE,KAAK,CAAC,IAAI,EAAE;YACV,IAAI,+BAAc,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC;YAC/C,IAAI,uBAAU,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC;YACtC,IAAI,uBAAU,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC;SACvC,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CAAC,aAA8B;QAC1C,OAAO,gBAAK,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IAES,eAAe,CACvB,WAAyB,EACzB,kBAAgD;QAEhD,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,CACtC,EAAE,CAAC,kBAAkB,CACN,CAAC;QAClB,IAAI,SAAS,CAAC,QAAQ,EAAE,EAAE;YACxB,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;YAC3D,OAAO,IAAI,sCAAkB,CAAC,SAAS,CAAC,CAAC;SAC1C;QACD,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;QAC3D,OAAO,IAAI,sCAAkB,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;;AA9BH,gBA+BC;AA9ByB,qBAAkB,GAAG,WAAW,CAAC;AACjC,gBAAa,GAAG,WAAW,CAAC;AAC5B,gBAAa,GAAG,WAAW,CAAC","file":"expression/function/impl/IF.js","sourcesContent":["import { Func } from \"../Func.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport { ExprEvalResult, ExprEvalSuccessObj } from \"../../ExprEvalResult.js\";\nimport { BooleanValue } from \"../../../value/BooleanValue.js\";\nimport { ExprType } from \"../../../type/ExprType.js\";\nimport { Types } from \"../../../type/Types.js\";\nimport { FunctionExpr } from \"../FunctionExpr.js\";\nimport { FuncArgBoolean } from \"../arg/FuncArgBoolean\";\nimport { FuncArgAny } from \"../arg/FuncArgAny\";\n\nexport class IF extends Func {\n private static readonly ARG_NAME_CONDITION = \"condition\";\n private static readonly ARG_NAME_THEN = \"thenValue\";\n private static readonly ARG_NAME_ELSE = \"elseValue\";\n\n constructor() {\n super(\"IF\", [\n new FuncArgBoolean(true, IF.ARG_NAME_CONDITION),\n new FuncArgAny(true, IF.ARG_NAME_THEN),\n new FuncArgAny(true, IF.ARG_NAME_ELSE),\n ]);\n }\n\n getReturnType(argumentTypes: Array<ExprType>): ExprType {\n return Types.or(argumentTypes[1], argumentTypes[2]);\n }\n\n protected calculateResult(\n callingExpr: FunctionExpr,\n evaluatedArguments: Map<string, ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const condition = evaluatedArguments.get(\n IF.ARG_NAME_CONDITION\n ) as BooleanValue;\n if (condition.getValue()) {\n const thenValue = evaluatedArguments.get(IF.ARG_NAME_THEN);\n return new ExprEvalSuccessObj(thenValue);\n }\n const elseValue = evaluatedArguments.get(IF.ARG_NAME_ELSE);\n return new ExprEvalSuccessObj(elseValue);\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/expression/function/impl/IF.ts"],"names":[],"mappings":";;;AAAA,wCAAkC;AAElC,+DAA6E;AAG7E,qDAA+C;AAE/C,gEAA0D;AAC1D,wDAAkD;AAElD,MAAa,EAAG,SAAQ,cAAI;IAK1B;QACE,KAAK,CAAC,IAAI,EAAE;YACV,IAAI,kCAAc,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC;YAC/C,IAAI,0BAAU,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC;YACtC,IAAI,0BAAU,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC;SACvC,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CAAC,aAA8B;QAC1C,OAAO,gBAAK,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IAES,eAAe,CACvB,WAAyB,EACzB,kBAAgD;QAEhD,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,CACtC,EAAE,CAAC,kBAAkB,CACN,CAAC;QAClB,IAAI,SAAS,CAAC,QAAQ,EAAE,EAAE;YACxB,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;YAC3D,OAAO,IAAI,sCAAkB,CAAC,SAAS,CAAC,CAAC;SAC1C;QACD,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;QAC3D,OAAO,IAAI,sCAAkB,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;;AA9BH,gBA+BC;AA9ByB,qBAAkB,GAAG,WAAW,CAAC;AACjC,gBAAa,GAAG,WAAW,CAAC;AAC5B,gBAAa,GAAG,WAAW,CAAC","file":"expression/function/impl/IF.js","sourcesContent":["import { Func } from \"../Func.js\";\nimport { ExpressionValue } from \"../../../value/ExpressionValue.js\";\nimport { ExprEvalResult, ExprEvalSuccessObj } from \"../../ExprEvalResult.js\";\nimport { BooleanValue } from \"../../../value/BooleanValue.js\";\nimport { ExprType } from \"../../../type/ExprType.js\";\nimport { Types } from \"../../../type/Types.js\";\nimport { FunctionExpr } from \"../FunctionExpr.js\";\nimport { FuncArgBoolean } from \"../arg/FuncArgBoolean.js\";\nimport { FuncArgAny } from \"../arg/FuncArgAny.js\";\n\nexport class IF extends Func {\n private static readonly ARG_NAME_CONDITION = \"condition\";\n private static readonly ARG_NAME_THEN = \"thenValue\";\n private static readonly ARG_NAME_ELSE = \"elseValue\";\n\n constructor() {\n super(\"IF\", [\n new FuncArgBoolean(true, IF.ARG_NAME_CONDITION),\n new FuncArgAny(true, IF.ARG_NAME_THEN),\n new FuncArgAny(true, IF.ARG_NAME_ELSE),\n ]);\n }\n\n getReturnType(argumentTypes: Array<ExprType>): ExprType {\n return Types.or(argumentTypes[1], argumentTypes[2]);\n }\n\n protected calculateResult(\n callingExpr: FunctionExpr,\n evaluatedArguments: Map<string, ExpressionValue>\n ): ExprEvalResult<ExpressionValue> {\n const condition = evaluatedArguments.get(\n IF.ARG_NAME_CONDITION\n ) as BooleanValue;\n if (condition.getValue()) {\n const thenValue = evaluatedArguments.get(IF.ARG_NAME_THEN);\n return new ExprEvalSuccessObj(thenValue);\n }\n const elseValue = evaluatedArguments.get(IF.ARG_NAME_ELSE);\n return new ExprEvalSuccessObj(elseValue);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/postprocess/ExprVisitor.ts"],"names":[],"mappings":";;;AAEA,MAAa,WAAW;IACtB,SAAS,CAAC,IAAe,IAAG,CAAC;IAC7B,QAAQ,CAAC,IAAe,IAAG,CAAC;CAC7B;AAHD,kCAGC","file":"postprocess/ExprVisitor.js","sourcesContent":["import { Expr } from \"../expression/Expr\";\n\nexport class ExprVisitor {\n enterExpr(expr: Expr<any>) {}\n exitExpr(expr: Expr<any>) {}\n}\n"]}
1
+ {"version":3,"sources":["../../src/postprocess/ExprVisitor.ts"],"names":[],"mappings":";;;AAEA,MAAa,WAAW;IACtB,SAAS,CAAC,IAAe,IAAG,CAAC;IAC7B,QAAQ,CAAC,IAAe,IAAG,CAAC;CAC7B;AAHD,kCAGC","file":"postprocess/ExprVisitor.js","sourcesContent":["import { Expr } from \"../expression/Expr.js\";\n\nexport class ExprVisitor {\n enterExpr(expr: Expr<any>) {}\n exitExpr(expr: Expr<any>) {}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/postprocess/ExprWalker.ts"],"names":[],"mappings":";;;AAGA,MAAa,UAAU;IAGrB,YAAY,OAAoB;QAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAEM,IAAI,CAAC,IAAe;QACzB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC7B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;YACtC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAClB;QACD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;CACF;AAdD,gCAcC","file":"postprocess/ExprWalker.js","sourcesContent":["import { Expr } from \"../expression/Expr\";\nimport { ExprVisitor } from \"./ExprVisitor.js\";\n\nexport class ExprWalker {\n private readonly visitor: ExprVisitor;\n\n constructor(visitor: ExprVisitor) {\n this.visitor = visitor;\n }\n\n public walk(expr: Expr<any>): void {\n this.visitor.enterExpr(expr);\n for (const child of expr.getChildren()) {\n this.walk(child);\n }\n this.visitor.exitExpr(expr);\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/postprocess/ExprWalker.ts"],"names":[],"mappings":";;;AAGA,MAAa,UAAU;IAGrB,YAAY,OAAoB;QAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAEM,IAAI,CAAC,IAAe;QACzB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC7B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;YACtC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAClB;QACD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;CACF;AAdD,gCAcC","file":"postprocess/ExprWalker.js","sourcesContent":["import { Expr } from \"../expression/Expr.js\";\nimport { ExprVisitor } from \"./ExprVisitor.js\";\n\nexport class ExprWalker {\n private readonly visitor: ExprVisitor;\n\n constructor(visitor: ExprVisitor) {\n this.visitor = visitor;\n }\n\n public walk(expr: Expr<any>): void {\n this.visitor.enterExpr(expr);\n for (const child of expr.getChildren()) {\n this.walk(child);\n }\n this.visitor.exitExpr(expr);\n }\n}\n"]}