occam-furtle 3.0.259 → 3.0.261

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 (122) hide show
  1. package/lib/constants.js +42 -0
  2. package/lib/context/block.js +71 -0
  3. package/lib/context/file/furtle.js +139 -0
  4. package/lib/element/assignment/array.js +112 -0
  5. package/lib/element/assignment/object.js +168 -0
  6. package/lib/element/assignment/variable.js +38 -0
  7. package/lib/element/assignments/variable.js +34 -0
  8. package/lib/element/binding/named.js +68 -0
  9. package/lib/element/binding.js +51 -0
  10. package/lib/element/bindings/named.js +84 -0
  11. package/lib/element/bindings.js +57 -0
  12. package/lib/element/declaration/procedure.js +36 -0
  13. package/lib/element/error.js +25 -0
  14. package/lib/element/every.js +109 -0
  15. package/lib/element/expression.js +106 -0
  16. package/lib/element/label.js +28 -0
  17. package/lib/element/nodeQuery.js +71 -0
  18. package/lib/element/nodesQuery.js +63 -0
  19. package/lib/element/parameter.js +44 -0
  20. package/lib/element/parameters.js +57 -0
  21. package/lib/element/primitive.js +131 -0
  22. package/lib/element/procedure/anonymous.js +51 -0
  23. package/lib/element/procedure.js +80 -0
  24. package/lib/element/procedureCall.js +50 -0
  25. package/lib/element/reduce.js +108 -0
  26. package/lib/element/reference.js +28 -0
  27. package/lib/element/returnBlock.js +60 -0
  28. package/lib/element/some.js +107 -0
  29. package/lib/element/statement/return.js +33 -0
  30. package/lib/element/step.js +43 -0
  31. package/lib/element/term/bracketed.js +36 -0
  32. package/lib/element/term/comparison.js +58 -0
  33. package/lib/element/term/logical.js +63 -0
  34. package/lib/element/term/negated.js +55 -0
  35. package/lib/element/term.js +114 -0
  36. package/lib/element/terms.js +100 -0
  37. package/lib/element/ternary.js +55 -0
  38. package/lib/element/value.js +83 -0
  39. package/lib/element/values.js +59 -0
  40. package/lib/element/variable.js +90 -0
  41. package/lib/elements.js +27 -0
  42. package/lib/example/view/div/sizeable.js +25 -0
  43. package/lib/example/view/input/ruleName.js +48 -0
  44. package/lib/example/view/subHeading.js +29 -0
  45. package/lib/example/view/textarea/bnf.js +39 -0
  46. package/lib/example/view/textarea/content.js +39 -0
  47. package/lib/example/view/textarea/lexicalEntries.js +39 -0
  48. package/lib/example/view/textarea/parseTree.js +46 -0
  49. package/lib/example/view/textarea/tokens.js +55 -0
  50. package/lib/example/view/textarea.js +31 -0
  51. package/lib/example/view.js +90 -0
  52. package/lib/example.js +19 -0
  53. package/lib/exception.js +24 -0
  54. package/lib/furtle/lexer.js +15 -0
  55. package/lib/furtle/parser.js +24 -0
  56. package/lib/index.js +40 -0
  57. package/lib/metaTypeNames.js +26 -0
  58. package/lib/metaTypes.js +66 -0
  59. package/lib/node/assignment/array.js +32 -0
  60. package/lib/node/assignment/object.js +32 -0
  61. package/lib/node/assignment/variable.js +32 -0
  62. package/lib/node/assignment.js +18 -0
  63. package/lib/node/assignments/variable.js +38 -0
  64. package/lib/node/assignments.js +18 -0
  65. package/lib/node/binding/named.js +36 -0
  66. package/lib/node/binding.js +61 -0
  67. package/lib/node/bindings/named.js +28 -0
  68. package/lib/node/bindings.js +31 -0
  69. package/lib/node/declaration/procedure.js +46 -0
  70. package/lib/node/declaration.js +18 -0
  71. package/lib/node/document.js +18 -0
  72. package/lib/node/error.js +18 -0
  73. package/lib/node/every.js +27 -0
  74. package/lib/node/expression.js +55 -0
  75. package/lib/node/label.js +29 -0
  76. package/lib/node/nodeQuery.js +39 -0
  77. package/lib/node/nodesQuery.js +39 -0
  78. package/lib/node/nonsense.js +18 -0
  79. package/lib/node/parameter.js +39 -0
  80. package/lib/node/parameters.js +23 -0
  81. package/lib/node/primitive.js +104 -0
  82. package/lib/node/procedure/anoymous.js +42 -0
  83. package/lib/node/procedure.js +18 -0
  84. package/lib/node/procedureCall.js +27 -0
  85. package/lib/node/reduce.js +31 -0
  86. package/lib/node/reference.js +29 -0
  87. package/lib/node/returnBlock.js +35 -0
  88. package/lib/node/some.js +27 -0
  89. package/lib/node/statement/return.js +28 -0
  90. package/lib/node/statement.js +18 -0
  91. package/lib/node/step.js +31 -0
  92. package/lib/node/term/bracketed.js +28 -0
  93. package/lib/node/term/comparison.js +60 -0
  94. package/lib/node/term/logical.js +66 -0
  95. package/lib/node/term/negated.js +28 -0
  96. package/lib/node/term.js +51 -0
  97. package/lib/node/terms.js +23 -0
  98. package/lib/node/ternary.js +45 -0
  99. package/lib/node/value.js +27 -0
  100. package/lib/node/values.js +23 -0
  101. package/lib/node/variable.js +29 -0
  102. package/lib/nodeProperties.js +78 -0
  103. package/lib/nodeProperty.js +45 -0
  104. package/lib/nonTerminalNodeMap.js +97 -0
  105. package/lib/parameterNames.js +26 -0
  106. package/lib/preamble.js +48 -0
  107. package/lib/process/verify.js +51 -0
  108. package/lib/ruleNames.js +166 -0
  109. package/lib/tokenTypes.js +42 -0
  110. package/lib/types.js +34 -0
  111. package/lib/utilities/element.js +1081 -0
  112. package/lib/utilities/furtle.js +31 -0
  113. package/lib/utilities/lexers.js +55 -0
  114. package/lib/utilities/parameters.js +29 -0
  115. package/lib/utilities/parsers.js +74 -0
  116. package/lib/utilities/primitive.js +54 -0
  117. package/lib/utilities/string.js +215 -0
  118. package/lib/utilities/stringLiteral.js +29 -0
  119. package/lib/utilities/term.js +46 -0
  120. package/lib/utilities/value.js +90 -0
  121. package/lib/utilities/values.js +31 -0
  122. package/package.json +11 -11
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return _default;
9
+ }
10
+ });
11
+ const _occamlanguages = require("occam-languages");
12
+ const _exception = /*#__PURE__*/ _interop_require_default(require("../../exception"));
13
+ const _elements = require("../../elements");
14
+ const _value = require("../../utilities/value");
15
+ function _interop_require_default(obj) {
16
+ return obj && obj.__esModule ? obj : {
17
+ default: obj
18
+ };
19
+ }
20
+ const _default = (0, _elements.define)(class ComparisonTerm extends _occamlanguages.Element {
21
+ constructor(context, string, node, breakPoint, negated, leftTerm, rightTerm){
22
+ super(context, string, node, breakPoint);
23
+ this.negated = negated;
24
+ this.leftTerm = leftTerm;
25
+ this.rightTerm = rightTerm;
26
+ }
27
+ isNegated() {
28
+ return this.negated;
29
+ }
30
+ getLeftTerm() {
31
+ return this.leftTerm;
32
+ }
33
+ getRightTerm() {
34
+ return this.rightTerm;
35
+ }
36
+ evaluate(context) {
37
+ let value;
38
+ const comparisonTermString = this.getString(); ///
39
+ context.trace(`Evaluating the '${comparisonTermString}' comparison term...`);
40
+ const leftValue = this.leftTerm.evaluate(context), rightValue = this.rightTerm.evaluate(context), leftValueType = leftValue.getType(), rightValueType = rightValue.getType();
41
+ if (leftValueType !== rightValueType) {
42
+ const leftValueString = leftValue.getString(), rightValueString = rightValue.getString(), message = `The '${leftValueString}' left term's type is '${leftValueType}' whereas the '${rightValueString}' right term's type is '${rightTermType}'.`, exception = _exception.default.fromMessage(message);
43
+ throw exception;
44
+ }
45
+ const leftValueEqualToRightValue = leftValue.isEqualTo(rightValue);
46
+ let boolean = leftValueEqualToRightValue; ///
47
+ if (this.negated) {
48
+ boolean = !boolean; ///
49
+ }
50
+ value = (0, _value.valueFromBoolean)(boolean, context);
51
+ const valueString = value.getString();
52
+ context.debug(`...evaluated the '${comparisonTermString}' comparison value as '${valueString}'.`);
53
+ return value;
54
+ }
55
+ static name = "ComparisonTerm";
56
+ });
57
+
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L3Rlcm0vY29tcGFyaXNvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgdmFsdWVGcm9tQm9vbGVhbiB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvdmFsdWVcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIENvbXBhcmlzb25UZXJtIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgbmVnYXRlZCwgbGVmdFRlcm0sIHJpZ2h0VGVybSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLm5lZ2F0ZWQgPSBuZWdhdGVkO1xuICAgIHRoaXMubGVmdFRlcm0gPSBsZWZ0VGVybTtcbiAgICB0aGlzLnJpZ2h0VGVybSA9IHJpZ2h0VGVybTtcbiAgfVxuXG4gIGlzTmVnYXRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5uZWdhdGVkO1xuICB9XG5cbiAgZ2V0TGVmdFRlcm0oKSB7XG4gICAgcmV0dXJuIHRoaXMubGVmdFRlcm07XG4gIH1cblxuICBnZXRSaWdodFRlcm0oKSB7XG4gICAgcmV0dXJuIHRoaXMucmlnaHRUZXJtO1xuICB9XG5cbiAgZXZhbHVhdGUoY29udGV4dCkge1xuICAgIGxldCB2YWx1ZTtcblxuICAgIGNvbnN0IGNvbXBhcmlzb25UZXJtU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtjb21wYXJpc29uVGVybVN0cmluZ30nIGNvbXBhcmlzb24gdGVybS4uLmApO1xuXG4gICAgY29uc3QgbGVmdFZhbHVlID0gdGhpcy5sZWZ0VGVybS5ldmFsdWF0ZShjb250ZXh0KSxcbiAgICAgICAgICByaWdodFZhbHVlID0gdGhpcy5yaWdodFRlcm0uZXZhbHVhdGUoY29udGV4dCksXG4gICAgICAgICAgbGVmdFZhbHVlVHlwZSA9IGxlZnRWYWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgcmlnaHRWYWx1ZVR5cGUgPSByaWdodFZhbHVlLmdldFR5cGUoKTtcblxuICAgIGlmIChsZWZ0VmFsdWVUeXBlICE9PSByaWdodFZhbHVlVHlwZSkge1xuICAgICAgY29uc3QgbGVmdFZhbHVlU3RyaW5nID0gbGVmdFZhbHVlLmdldFN0cmluZygpLFxuICAgICAgICAgICAgcmlnaHRWYWx1ZVN0cmluZyA9IHJpZ2h0VmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHtsZWZ0VmFsdWVTdHJpbmd9JyBsZWZ0IHRlcm0ncyB0eXBlIGlzICcke2xlZnRWYWx1ZVR5cGV9JyB3aGVyZWFzIHRoZSAnJHtyaWdodFZhbHVlU3RyaW5nfScgcmlnaHQgdGVybSdzIHR5cGUgaXMgJyR7cmlnaHRUZXJtVHlwZX0nLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCBsZWZ0VmFsdWVFcXVhbFRvUmlnaHRWYWx1ZSA9IGxlZnRWYWx1ZS5pc0VxdWFsVG8ocmlnaHRWYWx1ZSk7XG5cbiAgICBsZXQgYm9vbGVhbiA9IGxlZnRWYWx1ZUVxdWFsVG9SaWdodFZhbHVlOyAvLy9cblxuICAgIGlmICh0aGlzLm5lZ2F0ZWQpIHtcbiAgICAgIGJvb2xlYW4gPSAhYm9vbGVhbjsgLy8vXG4gICAgfVxuXG4gICAgdmFsdWUgPSB2YWx1ZUZyb21Cb29sZWFuKGJvb2xlYW4sIGNvbnRleHQpO1xuXG4gICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgJyR7Y29tcGFyaXNvblRlcm1TdHJpbmd9JyBjb21wYXJpc29uIHZhbHVlIGFzICcke3ZhbHVlU3RyaW5nfScuYCk7XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiQ29tcGFyaXNvblRlcm1cIjtcbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIkNvbXBhcmlzb25UZXJtIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsIm5lZ2F0ZWQiLCJsZWZ0VGVybSIsInJpZ2h0VGVybSIsImlzTmVnYXRlZCIsImdldExlZnRUZXJtIiwiZ2V0UmlnaHRUZXJtIiwiZXZhbHVhdGUiLCJ2YWx1ZSIsImNvbXBhcmlzb25UZXJtU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJsZWZ0VmFsdWUiLCJyaWdodFZhbHVlIiwibGVmdFZhbHVlVHlwZSIsImdldFR5cGUiLCJyaWdodFZhbHVlVHlwZSIsImxlZnRWYWx1ZVN0cmluZyIsInJpZ2h0VmFsdWVTdHJpbmciLCJtZXNzYWdlIiwicmlnaHRUZXJtVHlwZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwibGVmdFZhbHVlRXF1YWxUb1JpZ2h0VmFsdWUiLCJpc0VxdWFsVG8iLCJib29sZWFuIiwidmFsdWVGcm9tQm9vbGVhbiIsInZhbHVlU3RyaW5nIiwiZGVidWciLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFTQTs7O2VBQUE7OztnQ0FQd0I7a0VBRUY7MEJBRUM7dUJBQ1U7Ozs7OztNQUVqQyxXQUFlQSxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLHVCQUF1QkMsdUJBQU87SUFDeEQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxPQUFPLEVBQUVDLFFBQVEsRUFBRUMsU0FBUyxDQUFFO1FBQzNFLEtBQUssQ0FBQ04sU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxPQUFPLEdBQUdBO1FBQ2YsSUFBSSxDQUFDQyxRQUFRLEdBQUdBO1FBQ2hCLElBQUksQ0FBQ0MsU0FBUyxHQUFHQTtJQUNuQjtJQUVBQyxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUNILE9BQU87SUFDckI7SUFFQUksY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDSCxRQUFRO0lBQ3RCO0lBRUFJLGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQ0gsU0FBUztJQUN2QjtJQUVBSSxTQUFTVixPQUFPLEVBQUU7UUFDaEIsSUFBSVc7UUFFSixNQUFNQyx1QkFBdUIsSUFBSSxDQUFDQyxTQUFTLElBQUksR0FBRztRQUVsRGIsUUFBUWMsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLEVBQUVGLHFCQUFxQixvQkFBb0IsQ0FBQztRQUUzRSxNQUFNRyxZQUFZLElBQUksQ0FBQ1YsUUFBUSxDQUFDSyxRQUFRLENBQUNWLFVBQ25DZ0IsYUFBYSxJQUFJLENBQUNWLFNBQVMsQ0FBQ0ksUUFBUSxDQUFDVixVQUNyQ2lCLGdCQUFnQkYsVUFBVUcsT0FBTyxJQUNqQ0MsaUJBQWlCSCxXQUFXRSxPQUFPO1FBRXpDLElBQUlELGtCQUFrQkUsZ0JBQWdCO1lBQ3BDLE1BQU1DLGtCQUFrQkwsVUFBVUYsU0FBUyxJQUNyQ1EsbUJBQW1CTCxXQUFXSCxTQUFTLElBQ3ZDUyxVQUFVLENBQUMsS0FBSyxFQUFFRixnQkFBZ0IsdUJBQXVCLEVBQUVILGNBQWMsZUFBZSxFQUFFSSxpQkFBaUIsd0JBQXdCLEVBQUVFLGNBQWMsRUFBRSxDQUFDLEVBQ3RKQyxZQUFZQyxrQkFBUyxDQUFDQyxXQUFXLENBQUNKO1lBRXhDLE1BQU1FO1FBQ1I7UUFFQSxNQUFNRyw2QkFBNkJaLFVBQVVhLFNBQVMsQ0FBQ1o7UUFFdkQsSUFBSWEsVUFBVUYsNEJBQTRCLEdBQUc7UUFFN0MsSUFBSSxJQUFJLENBQUN2QixPQUFPLEVBQUU7WUFDaEJ5QixVQUFVLENBQUNBLFNBQVMsR0FBRztRQUN6QjtRQUVBbEIsUUFBUW1CLElBQUFBLHVCQUFnQixFQUFDRCxTQUFTN0I7UUFFbEMsTUFBTStCLGNBQWNwQixNQUFNRSxTQUFTO1FBRW5DYixRQUFRZ0MsS0FBSyxDQUFDLENBQUMsa0JBQWtCLEVBQUVwQixxQkFBcUIsdUJBQXVCLEVBQUVtQixZQUFZLEVBQUUsQ0FBQztRQUVoRyxPQUFPcEI7SUFDVDtJQUVBLE9BQU9zQixPQUFPLGlCQUFpQjtBQUNqQyJ9
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return _default;
9
+ }
10
+ });
11
+ const _occamlanguages = require("occam-languages");
12
+ const _exception = /*#__PURE__*/ _interop_require_default(require("../../exception"));
13
+ const _elements = require("../../elements");
14
+ const _types = require("../../types");
15
+ const _value = require("../../utilities/value");
16
+ function _interop_require_default(obj) {
17
+ return obj && obj.__esModule ? obj : {
18
+ default: obj
19
+ };
20
+ }
21
+ const _default = (0, _elements.define)(class LogicalTerm extends _occamlanguages.Element {
22
+ constructor(context, string, node, breakPoint, type, disjunction, leftTerm, rightTerm){
23
+ super(context, string, node, breakPoint);
24
+ this.type = type;
25
+ this.disjunction = disjunction;
26
+ this.leftTerm = leftTerm;
27
+ this.rightTerm = rightTerm;
28
+ }
29
+ getType() {
30
+ return this.type;
31
+ }
32
+ isDisjunction() {
33
+ return this.disjunction;
34
+ }
35
+ getLeftTerm() {
36
+ return this.leftTerm;
37
+ }
38
+ getRightTerm() {
39
+ return this.rightTerm;
40
+ }
41
+ evaluate(context) {
42
+ let value;
43
+ const logicalTermString = this.getString(); ///
44
+ context.trace(`Evaluating the '${logicalTermString}' logical term...`);
45
+ const leftValue = this.leftTerm.evaluate(context), rightValue = this.rightTerm.evaluate(context), leftValueType = leftValue.getType(), rightValueType = rightValue.getType();
46
+ if (leftValueType !== _types.BOOLEAN_TYPE) {
47
+ const leftValueString = leftValue.getString(), message = `The '${leftValueString}' left term's type is '${leftValueType}' when it should be of type '${_types.BOOLEAN_TYPE}'.`, exception = _exception.default.fromMessage(message);
48
+ throw exception;
49
+ }
50
+ if (rightValueType !== _types.BOOLEAN_TYPE) {
51
+ const rightValueString = rightValue.getString(), message = `The '${rightValueString}' right term's type is '${rightValueType}' when it should be of type '${_types.BOOLEAN_TYPE}'.`, exception = _exception.default.fromMessage(message);
52
+ throw exception;
53
+ }
54
+ const leftValuePrimitiveValue = leftValue.getPrimitiveValue(), rightValuePrimitiveValue = rightValue.getPrimitiveValue(), leftBoolean = leftValuePrimitiveValue, rightBoolean = rightValuePrimitiveValue, boolean = this.disjunction ? leftBoolean || rightBoolean : leftBoolean && rightBoolean;
55
+ value = (0, _value.valueFromBoolean)(boolean, context);
56
+ const valueString = value.getString();
57
+ context.debug(`...evaluated the '${logicalTermString}' logical value as '${valueString}'.`);
58
+ return value;
59
+ }
60
+ static name = "LogicalTerm";
61
+ });
62
+
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L3Rlcm0vbG9naWNhbC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgQk9PTEVBTl9UWVBFIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5pbXBvcnQgeyB2YWx1ZUZyb21Cb29sZWFuIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy92YWx1ZVwiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgTG9naWNhbFRlcm0gZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB0eXBlLCBkaXNqdW5jdGlvbiwgbGVmdFRlcm0sIHJpZ2h0VGVybSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMuZGlzanVuY3Rpb24gPSBkaXNqdW5jdGlvbjtcbiAgICB0aGlzLmxlZnRUZXJtID0gbGVmdFRlcm07XG4gICAgdGhpcy5yaWdodFRlcm0gPSByaWdodFRlcm07XG4gIH1cblxuICBnZXRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGU7XG4gIH1cblxuICBpc0Rpc2p1bmN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmRpc2p1bmN0aW9uO1xuICB9XG5cbiAgZ2V0TGVmdFRlcm0oKSB7XG4gICAgcmV0dXJuIHRoaXMubGVmdFRlcm07XG4gIH1cblxuICBnZXRSaWdodFRlcm0oKSB7XG4gICAgcmV0dXJuIHRoaXMucmlnaHRUZXJtO1xuICB9XG5cbiAgZXZhbHVhdGUoY29udGV4dCkge1xuICAgIGxldCB2YWx1ZTtcblxuICAgIGNvbnN0IGxvZ2ljYWxUZXJtU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtsb2dpY2FsVGVybVN0cmluZ30nIGxvZ2ljYWwgdGVybS4uLmApO1xuXG4gICAgY29uc3QgbGVmdFZhbHVlID0gdGhpcy5sZWZ0VGVybS5ldmFsdWF0ZShjb250ZXh0KSxcbiAgICAgICAgICByaWdodFZhbHVlID0gdGhpcy5yaWdodFRlcm0uZXZhbHVhdGUoY29udGV4dCksXG4gICAgICAgICAgbGVmdFZhbHVlVHlwZSA9IGxlZnRWYWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgcmlnaHRWYWx1ZVR5cGUgPSByaWdodFZhbHVlLmdldFR5cGUoKTtcblxuICAgIGlmIChsZWZ0VmFsdWVUeXBlICE9PSBCT09MRUFOX1RZUEUpIHtcbiAgICAgIGNvbnN0IGxlZnRWYWx1ZVN0cmluZyA9IGxlZnRWYWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke2xlZnRWYWx1ZVN0cmluZ30nIGxlZnQgdGVybSdzIHR5cGUgaXMgJyR7bGVmdFZhbHVlVHlwZX0nIHdoZW4gaXQgc2hvdWxkIGJlIG9mIHR5cGUgJyR7Qk9PTEVBTl9UWVBFfScuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGlmIChyaWdodFZhbHVlVHlwZSAhPT0gQk9PTEVBTl9UWVBFKSB7XG4gICAgICBjb25zdCByaWdodFZhbHVlU3RyaW5nID0gcmlnaHRWYWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3JpZ2h0VmFsdWVTdHJpbmd9JyByaWdodCB0ZXJtJ3MgdHlwZSBpcyAnJHtyaWdodFZhbHVlVHlwZX0nIHdoZW4gaXQgc2hvdWxkIGJlIG9mIHR5cGUgJyR7Qk9PTEVBTl9UWVBFfScuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IGxlZnRWYWx1ZVByaW1pdGl2ZVZhbHVlID0gbGVmdFZhbHVlLmdldFByaW1pdGl2ZVZhbHVlKCksXG4gICAgICAgICAgcmlnaHRWYWx1ZVByaW1pdGl2ZVZhbHVlID0gcmlnaHRWYWx1ZS5nZXRQcmltaXRpdmVWYWx1ZSgpLFxuICAgICAgICAgIGxlZnRCb29sZWFuID1sZWZ0VmFsdWVQcmltaXRpdmVWYWx1ZSwgLy8vXG4gICAgICAgICAgcmlnaHRCb29sZWFuID0gcmlnaHRWYWx1ZVByaW1pdGl2ZVZhbHVlLCAvLy9cbiAgICAgICAgICBib29sZWFuID0gdGhpcy5kaXNqdW5jdGlvbiA/XG4gICAgICAgICAgICAgICAgICAgICAgKGxlZnRCb29sZWFuIHx8IHJpZ2h0Qm9vbGVhbikgOlxuICAgICAgICAgICAgICAgICAgICAgICAgKGxlZnRCb29sZWFuICYmIHJpZ2h0Qm9vbGVhbik7XG5cbiAgICB2YWx1ZSA9IHZhbHVlRnJvbUJvb2xlYW4oYm9vbGVhbiwgY29udGV4dCk7XG5cbiAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHtsb2dpY2FsVGVybVN0cmluZ30nIGxvZ2ljYWwgdmFsdWUgYXMgJyR7dmFsdWVTdHJpbmd9Jy5gKTtcblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJMb2dpY2FsVGVybVwiO1xufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiTG9naWNhbFRlcm0iLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwidHlwZSIsImRpc2p1bmN0aW9uIiwibGVmdFRlcm0iLCJyaWdodFRlcm0iLCJnZXRUeXBlIiwiaXNEaXNqdW5jdGlvbiIsImdldExlZnRUZXJtIiwiZ2V0UmlnaHRUZXJtIiwiZXZhbHVhdGUiLCJ2YWx1ZSIsImxvZ2ljYWxUZXJtU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJsZWZ0VmFsdWUiLCJyaWdodFZhbHVlIiwibGVmdFZhbHVlVHlwZSIsInJpZ2h0VmFsdWVUeXBlIiwiQk9PTEVBTl9UWVBFIiwibGVmdFZhbHVlU3RyaW5nIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwicmlnaHRWYWx1ZVN0cmluZyIsImxlZnRWYWx1ZVByaW1pdGl2ZVZhbHVlIiwiZ2V0UHJpbWl0aXZlVmFsdWUiLCJyaWdodFZhbHVlUHJpbWl0aXZlVmFsdWUiLCJsZWZ0Qm9vbGVhbiIsInJpZ2h0Qm9vbGVhbiIsImJvb2xlYW4iLCJ2YWx1ZUZyb21Cb29sZWFuIiwidmFsdWVTdHJpbmciLCJkZWJ1ZyIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVVBOzs7ZUFBQTs7O2dDQVJ3QjtrRUFFRjswQkFFQzt1QkFDTTt1QkFDSTs7Ozs7O01BRWpDLFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsb0JBQW9CQyx1QkFBTztJQUNyRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLElBQUksRUFBRUMsV0FBVyxFQUFFQyxRQUFRLEVBQUVDLFNBQVMsQ0FBRTtRQUNyRixLQUFLLENBQUNQLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsV0FBVyxHQUFHQTtRQUNuQixJQUFJLENBQUNDLFFBQVEsR0FBR0E7UUFDaEIsSUFBSSxDQUFDQyxTQUFTLEdBQUdBO0lBQ25CO0lBRUFDLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQ0osSUFBSTtJQUNsQjtJQUVBSyxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQ0osV0FBVztJQUN6QjtJQUVBSyxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUNKLFFBQVE7SUFDdEI7SUFFQUssZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDSixTQUFTO0lBQ3ZCO0lBRUFLLFNBQVNaLE9BQU8sRUFBRTtRQUNoQixJQUFJYTtRQUVKLE1BQU1DLG9CQUFvQixJQUFJLENBQUNDLFNBQVMsSUFBSSxHQUFHO1FBRS9DZixRQUFRZ0IsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLEVBQUVGLGtCQUFrQixpQkFBaUIsQ0FBQztRQUVyRSxNQUFNRyxZQUFZLElBQUksQ0FBQ1gsUUFBUSxDQUFDTSxRQUFRLENBQUNaLFVBQ25Da0IsYUFBYSxJQUFJLENBQUNYLFNBQVMsQ0FBQ0ssUUFBUSxDQUFDWixVQUNyQ21CLGdCQUFnQkYsVUFBVVQsT0FBTyxJQUNqQ1ksaUJBQWlCRixXQUFXVixPQUFPO1FBRXpDLElBQUlXLGtCQUFrQkUsbUJBQVksRUFBRTtZQUNsQyxNQUFNQyxrQkFBa0JMLFVBQVVGLFNBQVMsSUFDckNRLFVBQVUsQ0FBQyxLQUFLLEVBQUVELGdCQUFnQix1QkFBdUIsRUFBRUgsY0FBYyw2QkFBNkIsRUFBRUUsbUJBQVksQ0FBQyxFQUFFLENBQUMsRUFDeEhHLFlBQVlDLGtCQUFTLENBQUNDLFdBQVcsQ0FBQ0g7WUFFeEMsTUFBTUM7UUFDUjtRQUVBLElBQUlKLG1CQUFtQkMsbUJBQVksRUFBRTtZQUNuQyxNQUFNTSxtQkFBbUJULFdBQVdILFNBQVMsSUFDdkNRLFVBQVUsQ0FBQyxLQUFLLEVBQUVJLGlCQUFpQix3QkFBd0IsRUFBRVAsZUFBZSw2QkFBNkIsRUFBRUMsbUJBQVksQ0FBQyxFQUFFLENBQUMsRUFDM0hHLFlBQVlDLGtCQUFTLENBQUNDLFdBQVcsQ0FBQ0g7WUFFeEMsTUFBTUM7UUFDUjtRQUVBLE1BQU1JLDBCQUEwQlgsVUFBVVksaUJBQWlCLElBQ3JEQywyQkFBMkJaLFdBQVdXLGlCQUFpQixJQUN2REUsY0FBYUgseUJBQ2JJLGVBQWVGLDBCQUNmRyxVQUFVLElBQUksQ0FBQzVCLFdBQVcsR0FDYjBCLGVBQWVDLGVBQ2JELGVBQWVDO1FBRXBDbkIsUUFBUXFCLElBQUFBLHVCQUFnQixFQUFDRCxTQUFTakM7UUFFbEMsTUFBTW1DLGNBQWN0QixNQUFNRSxTQUFTO1FBRW5DZixRQUFRb0MsS0FBSyxDQUFDLENBQUMsa0JBQWtCLEVBQUV0QixrQkFBa0Isb0JBQW9CLEVBQUVxQixZQUFZLEVBQUUsQ0FBQztRQUUxRixPQUFPdEI7SUFDVDtJQUVBLE9BQU93QixPQUFPLGNBQWM7QUFDOUIifQ==
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return _default;
9
+ }
10
+ });
11
+ const _occamlanguages = require("occam-languages");
12
+ const _exception = /*#__PURE__*/ _interop_require_default(require("../../exception"));
13
+ const _elements = require("../../elements");
14
+ const _types = require("../../types");
15
+ const _value = require("../../utilities/value");
16
+ function _interop_require_default(obj) {
17
+ return obj && obj.__esModule ? obj : {
18
+ default: obj
19
+ };
20
+ }
21
+ const _default = (0, _elements.define)(class NegatedTerm extends _occamlanguages.Element {
22
+ constructor(context, string, node, breakPoint, type, term){
23
+ super(context, string, node, breakPoint);
24
+ this.type = type;
25
+ this.term = term;
26
+ }
27
+ getType() {
28
+ return this.type;
29
+ }
30
+ getTerm() {
31
+ return this.term;
32
+ }
33
+ evaluate(context) {
34
+ let value;
35
+ const negatedTermString = this.getString(); ///
36
+ context.trace(`Evaluating the '${negatedTermString}' negated value...`);
37
+ value = this.term.evaluate(context);
38
+ const valueType = value.getType();
39
+ if (valueType !== _types.BOOLEAN_TYPE) {
40
+ const valueString = value.getString(), message = `The '${valueString}' left value's type is '${valueType}' when it should be of type '${_types.BOOLEAN_TYPE}'.`, exception = _exception.default.fromMessage(message);
41
+ throw exception;
42
+ }
43
+ let boolean;
44
+ const primitiveValue = value.getPrimitiveValue();
45
+ boolean = primitiveValue; ///
46
+ boolean = !boolean;
47
+ value = (0, _value.valueFromBoolean)(boolean, context);
48
+ const valueString = value.getString();
49
+ context.debug(`...evaluated the '${negatedTermString}' negated value as '${valueString}'.`);
50
+ return value;
51
+ }
52
+ static name = "NegatedTerm";
53
+ });
54
+
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L3Rlcm0vbmVnYXRlZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgQk9PTEVBTl9UWVBFIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5pbXBvcnQgeyB2YWx1ZUZyb21Cb29sZWFuIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy92YWx1ZVwiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgTmVnYXRlZFRlcm0gZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB0eXBlLCB0ZXJtKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgdGhpcy50ZXJtID0gdGVybTtcbiAgfVxuXG4gIGdldFR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZTtcbiAgfVxuXG4gIGdldFRlcm0oKSB7XG4gICAgcmV0dXJuIHRoaXMudGVybTtcbiAgfVxuXG4gIGV2YWx1YXRlKGNvbnRleHQpIHtcbiAgICBsZXQgdmFsdWU7XG5cbiAgICBjb25zdCBuZWdhdGVkVGVybVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgJyR7bmVnYXRlZFRlcm1TdHJpbmd9JyBuZWdhdGVkIHZhbHVlLi4uYCk7XG5cbiAgICB2YWx1ZSA9IHRoaXMudGVybS5ldmFsdWF0ZShjb250ZXh0KTtcblxuICAgIGNvbnN0IHZhbHVlVHlwZSA9IHZhbHVlLmdldFR5cGUoKTtcblxuICAgIGlmICh2YWx1ZVR5cGUgIT09IEJPT0xFQU5fVFlQRSkge1xuICAgICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3ZhbHVlU3RyaW5nfScgbGVmdCB2YWx1ZSdzIHR5cGUgaXMgJyR7dmFsdWVUeXBlfScgd2hlbiBpdCBzaG91bGQgYmUgb2YgdHlwZSAnJHtCT09MRUFOX1RZUEV9Jy5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgbGV0IGJvb2xlYW47XG5cbiAgICBjb25zdCBwcmltaXRpdmVWYWx1ZSA9IHZhbHVlLmdldFByaW1pdGl2ZVZhbHVlKCk7XG5cbiAgICBib29sZWFuID0gcHJpbWl0aXZlVmFsdWU7IC8vL1xuXG4gICAgYm9vbGVhbiA9ICFib29sZWFuO1xuXG4gICAgdmFsdWUgPSB2YWx1ZUZyb21Cb29sZWFuKGJvb2xlYW4sIGNvbnRleHQpO1xuXG4gICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgJyR7bmVnYXRlZFRlcm1TdHJpbmd9JyBuZWdhdGVkIHZhbHVlIGFzICcke3ZhbHVlU3RyaW5nfScuYCk7XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiTmVnYXRlZFRlcm1cIjtcbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIk5lZ2F0ZWRUZXJtIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInR5cGUiLCJ0ZXJtIiwiZ2V0VHlwZSIsImdldFRlcm0iLCJldmFsdWF0ZSIsInZhbHVlIiwibmVnYXRlZFRlcm1TdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsInZhbHVlVHlwZSIsIkJPT0xFQU5fVFlQRSIsInZhbHVlU3RyaW5nIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwiYm9vbGVhbiIsInByaW1pdGl2ZVZhbHVlIiwiZ2V0UHJpbWl0aXZlVmFsdWUiLCJ2YWx1ZUZyb21Cb29sZWFuIiwiZGVidWciLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFVQTs7O2VBQUE7OztnQ0FSd0I7a0VBRUY7MEJBRUM7dUJBQ007dUJBQ0k7Ozs7OztNQUVqQyxXQUFlQSxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLG9CQUFvQkMsdUJBQU87SUFDckQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxJQUFJLEVBQUVDLElBQUksQ0FBRTtRQUN6RCxLQUFLLENBQUNMLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtJQUNkO0lBRUFDLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQ0YsSUFBSTtJQUNsQjtJQUVBRyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUNGLElBQUk7SUFDbEI7SUFFQUcsU0FBU1IsT0FBTyxFQUFFO1FBQ2hCLElBQUlTO1FBRUosTUFBTUMsb0JBQW9CLElBQUksQ0FBQ0MsU0FBUyxJQUFJLEdBQUc7UUFFL0NYLFFBQVFZLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixFQUFFRixrQkFBa0Isa0JBQWtCLENBQUM7UUFFdEVELFFBQVEsSUFBSSxDQUFDSixJQUFJLENBQUNHLFFBQVEsQ0FBQ1I7UUFFM0IsTUFBTWEsWUFBWUosTUFBTUgsT0FBTztRQUUvQixJQUFJTyxjQUFjQyxtQkFBWSxFQUFFO1lBQzlCLE1BQU1DLGNBQWNOLE1BQU1FLFNBQVMsSUFDN0JLLFVBQVUsQ0FBQyxLQUFLLEVBQUVELFlBQVksd0JBQXdCLEVBQUVGLFVBQVUsNkJBQTZCLEVBQUVDLG1CQUFZLENBQUMsRUFBRSxDQUFDLEVBQ2pIRyxZQUFZQyxrQkFBUyxDQUFDQyxXQUFXLENBQUNIO1lBRXhDLE1BQU1DO1FBQ1I7UUFFQSxJQUFJRztRQUVKLE1BQU1DLGlCQUFpQlosTUFBTWEsaUJBQWlCO1FBRTlDRixVQUFVQyxnQkFBZ0IsR0FBRztRQUU3QkQsVUFBVSxDQUFDQTtRQUVYWCxRQUFRYyxJQUFBQSx1QkFBZ0IsRUFBQ0gsU0FBU3BCO1FBRWxDLE1BQU1lLGNBQWNOLE1BQU1FLFNBQVM7UUFFbkNYLFFBQVF3QixLQUFLLENBQUMsQ0FBQyxrQkFBa0IsRUFBRWQsa0JBQWtCLG9CQUFvQixFQUFFSyxZQUFZLEVBQUUsQ0FBQztRQUUxRixPQUFPTjtJQUNUO0lBRUEsT0FBT2dCLE9BQU8sY0FBYztBQUM5QiJ9
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return _default;
9
+ }
10
+ });
11
+ const _occamlanguages = require("occam-languages");
12
+ const _elements = require("../elements");
13
+ const _types = require("../types");
14
+ const _default = (0, _elements.define)(class Term extends _occamlanguages.Element {
15
+ constructor(context, string, node, breakPoint, variable, primitive, negatedTerm, logicalTerm, bracketedTerm, comparisonTerm){
16
+ super(context, string, node, breakPoint);
17
+ this.variable = variable;
18
+ this.primitive = primitive;
19
+ this.negatedTerm = negatedTerm;
20
+ this.logicalTerm = logicalTerm;
21
+ this.bracketedTerm = bracketedTerm;
22
+ this.comparisonTerm = comparisonTerm;
23
+ }
24
+ getVariable() {
25
+ return this.variable;
26
+ }
27
+ getPrimitive() {
28
+ return this.primitive;
29
+ }
30
+ getNegatedTerm() {
31
+ return this.negatedTerm;
32
+ }
33
+ getLogicalTerm() {
34
+ return this.logicalTerm;
35
+ }
36
+ getBreedingTerm() {
37
+ return this.bracketedTerm;
38
+ }
39
+ getComparisonTerm() {
40
+ return this.comparisonTerm;
41
+ }
42
+ getPrimitiveValue() {
43
+ const primitiveValue = this.primitive.getValue();
44
+ return primitiveValue;
45
+ }
46
+ getType() {
47
+ let type;
48
+ if (false) {
49
+ ///
50
+ } else if (this.variable !== null) {
51
+ type = this.variable.getType();
52
+ } else if (this.primitive !== null) {
53
+ type = this.primitive.getType();
54
+ } else if (this.negatedTerm !== null) {
55
+ type = this.negatedTerm.getType();
56
+ } else if (this.logicalTerm !== null) {
57
+ type = this.logicalTerm.getType();
58
+ } else if (this.bracketedTerm !== null) {
59
+ type = this.bracketedTerm.getType();
60
+ } else if (this.comparisonTerm !== null) {
61
+ type = this.comparisonTerm.getType();
62
+ }
63
+ return type;
64
+ }
65
+ isBoolean() {
66
+ const type = this.getType(), boolean = type === _types.BOOLEAN_TYPE;
67
+ return boolean;
68
+ }
69
+ evaluate(context) {
70
+ let value;
71
+ if (false) {
72
+ ///
73
+ } else if (this.variable !== null) {
74
+ value = this.variable.evaluate(context);
75
+ } else if (this.primitive !== null) {
76
+ value = this.primitive.evaluate(context);
77
+ } else if (this.negatedTerm !== null) {
78
+ value = this.negatedTerm.evaluate(context);
79
+ } else if (this.logicalTerm !== null) {
80
+ value = this.logicalTerm.evaluate(context);
81
+ } else if (this.bracketedTerm !== null) {
82
+ value = this.bracketedTerm.evaluate(context);
83
+ } else if (this.comparisonTerm !== null) {
84
+ value = this.comparisonTerm.evaluate(context);
85
+ }
86
+ return value;
87
+ }
88
+ isEqualTo(term) {
89
+ let equalTo = false;
90
+ if (false) {
91
+ ///
92
+ } else if (this.variable !== null) {
93
+ const variable = term.getVariable();
94
+ if (variable !== null) {
95
+ equalTo = this.variable.isEqualTo(variable);
96
+ }
97
+ } else if (this.primitive !== null) {
98
+ const primitive = term.getPrimitive();
99
+ if (primitive !== null) {
100
+ equalTo = this.primitive.isEqualTo(primitive);
101
+ }
102
+ }
103
+ return equalTo;
104
+ }
105
+ static name = "Term";
106
+ static fromPrimitive(primitive, context) {
107
+ const primitiveString = primitive.getString(), string = primitiveString, node = null, breakPoint = null, variable = null, negatedTerm = null, logicalTerm = null, bracketedTerm = null, comparisonTerm = null;
108
+ context = null;
109
+ const term = new Term(context, string, node, breakPoint, variable, primitive, negatedTerm, logicalTerm, bracketedTerm, comparisonTerm);
110
+ return term;
111
+ }
112
+ });
113
+
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3Rlcm0uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgQk9PTEVBTl9UWVBFIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBUZXJtIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdmFyaWFibGUsIHByaW1pdGl2ZSwgbmVnYXRlZFRlcm0sIGxvZ2ljYWxUZXJtLCBicmFja2V0ZWRUZXJtLCBjb21wYXJpc29uVGVybSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnZhcmlhYmxlID0gdmFyaWFibGU7XG4gICAgdGhpcy5wcmltaXRpdmUgPSBwcmltaXRpdmU7XG4gICAgdGhpcy5uZWdhdGVkVGVybSA9IG5lZ2F0ZWRUZXJtO1xuICAgIHRoaXMubG9naWNhbFRlcm0gPSBsb2dpY2FsVGVybTtcbiAgICB0aGlzLmJyYWNrZXRlZFRlcm0gPSBicmFja2V0ZWRUZXJtO1xuICAgIHRoaXMuY29tcGFyaXNvblRlcm0gPSBjb21wYXJpc29uVGVybTtcbiAgfVxuXG4gIGdldFZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlO1xuICB9XG5cbiAgZ2V0UHJpbWl0aXZlKCkge1xuICAgIHJldHVybiB0aGlzLnByaW1pdGl2ZTtcbiAgfVxuXG4gIGdldE5lZ2F0ZWRUZXJtKCkge1xuICAgIHJldHVybiB0aGlzLm5lZ2F0ZWRUZXJtO1xuICB9XG5cbiAgZ2V0TG9naWNhbFRlcm0oKSB7XG4gICAgcmV0dXJuIHRoaXMubG9naWNhbFRlcm07XG4gIH1cblxuICBnZXRCcmVlZGluZ1Rlcm0oKSB7XG4gICAgcmV0dXJuIHRoaXMuYnJhY2tldGVkVGVybTtcbiAgfVxuXG4gIGdldENvbXBhcmlzb25UZXJtKCkge1xuICAgIHJldHVybiB0aGlzLmNvbXBhcmlzb25UZXJtO1xuICB9XG5cbiAgZ2V0UHJpbWl0aXZlVmFsdWUoKSB7XG4gICAgY29uc3QgcHJpbWl0aXZlVmFsdWUgPSB0aGlzLnByaW1pdGl2ZS5nZXRWYWx1ZSgpO1xuXG4gICAgcmV0dXJuIHByaW1pdGl2ZVZhbHVlO1xuICB9XG5cbiAgZ2V0VHlwZSgpIHtcbiAgICBsZXQgdHlwZTtcblxuICAgIGlmIChmYWxzZSkge1xuICAgICAgLy8vXG4gICAgfSBlbHNlIGlmICh0aGlzLnZhcmlhYmxlICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy52YXJpYWJsZS5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnByaW1pdGl2ZSAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMucHJpbWl0aXZlLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubmVnYXRlZFRlcm0gIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLm5lZ2F0ZWRUZXJtLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubG9naWNhbFRlcm0gIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLmxvZ2ljYWxUZXJtLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuYnJhY2tldGVkVGVybSAhPT0gbnVsbCkge1xuICAgICAgdHlwZSA9IHRoaXMuYnJhY2tldGVkVGVybS5nZXRUeXBlKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNvbXBhcmlzb25UZXJtICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy5jb21wYXJpc29uVGVybS5nZXRUeXBlKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cblxuICBpc0Jvb2xlYW4oKSB7XG4gICAgY29uc3QgdHlwZSA9IHRoaXMuZ2V0VHlwZSgpLFxuICAgICAgICAgIGJvb2xlYW4gPSAodHlwZSA9PT0gQk9PTEVBTl9UWVBFKTtcblxuICAgIHJldHVybiBib29sZWFuO1xuICB9XG5cbiAgZXZhbHVhdGUoY29udGV4dCkge1xuICAgIGxldCB2YWx1ZTtcblxuICAgIGlmIChmYWxzZSkge1xuICAgICAgLy8vXG4gICAgfSBlbHNlIGlmICh0aGlzLnZhcmlhYmxlICE9PSBudWxsKSB7XG4gICAgICB2YWx1ZSA9IHRoaXMudmFyaWFibGUuZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnByaW1pdGl2ZSAhPT0gbnVsbCkge1xuICAgICAgdmFsdWUgPSB0aGlzLnByaW1pdGl2ZS5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubmVnYXRlZFRlcm0gIT09IG51bGwpIHtcbiAgICAgIHZhbHVlID0gdGhpcy5uZWdhdGVkVGVybS5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubG9naWNhbFRlcm0gIT09IG51bGwpIHtcbiAgICAgIHZhbHVlID0gdGhpcy5sb2dpY2FsVGVybS5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuYnJhY2tldGVkVGVybSAhPT0gbnVsbCkge1xuICAgICAgdmFsdWUgPSB0aGlzLmJyYWNrZXRlZFRlcm0uZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNvbXBhcmlzb25UZXJtICE9PSBudWxsKSB7XG4gICAgICB2YWx1ZSA9IHRoaXMuY29tcGFyaXNvblRlcm0uZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgaXNFcXVhbFRvKHRlcm0pIHtcbiAgICBsZXQgZXF1YWxUbyA9IGZhbHNlO1xuXG4gICAgaWYgKGZhbHNlKSB7XG4gICAgICAvLy9cbiAgICB9IGVsc2UgaWYgKHRoaXMudmFyaWFibGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHZhcmlhYmxlID0gdGVybS5nZXRWYXJpYWJsZSgpO1xuXG4gICAgICBpZiAodmFyaWFibGUgIT09IG51bGwpIHtcbiAgICAgICAgZXF1YWxUbyA9IHRoaXMudmFyaWFibGUuaXNFcXVhbFRvKHZhcmlhYmxlKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMucHJpbWl0aXZlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBwcmltaXRpdmUgPSB0ZXJtLmdldFByaW1pdGl2ZSgpO1xuXG4gICAgICBpZiAocHJpbWl0aXZlICE9PSBudWxsKSB7XG4gICAgICAgIGVxdWFsVG8gPSB0aGlzLnByaW1pdGl2ZS5pc0VxdWFsVG8ocHJpbWl0aXZlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZXF1YWxUbztcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJUZXJtXCI7XG5cbiAgc3RhdGljIGZyb21QcmltaXRpdmUocHJpbWl0aXZlLCBjb250ZXh0KSB7XG4gICAgY29uc3QgcHJpbWl0aXZlU3RyaW5nID0gcHJpbWl0aXZlLmdldFN0cmluZygpLFxuICAgICAgICAgIHN0cmluZyA9IHByaW1pdGl2ZVN0cmluZywgLy8vXG4gICAgICAgICAgbm9kZSA9IG51bGwsXG4gICAgICAgICAgYnJlYWtQb2ludCA9IG51bGwsXG4gICAgICAgICAgdmFyaWFibGUgPSBudWxsLFxuICAgICAgICAgIG5lZ2F0ZWRUZXJtID0gbnVsbCxcbiAgICAgICAgICBsb2dpY2FsVGVybSA9IG51bGwsXG4gICAgICAgICAgYnJhY2tldGVkVGVybSA9IG51bGwsXG4gICAgICAgICAgY29tcGFyaXNvblRlcm0gPSBudWxsO1xuXG4gICAgY29udGV4dCA9IG51bGw7XG5cbiAgICBjb25zdCB0ZXJtID0gbmV3IFRlcm0oY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB2YXJpYWJsZSwgcHJpbWl0aXZlLCBuZWdhdGVkVGVybSwgbG9naWNhbFRlcm0sIGJyYWNrZXRlZFRlcm0sIGNvbXBhcmlzb25UZXJtKTtcblxuICAgIHJldHVybiB0ZXJtO1xuICB9XG59KTtcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJUZXJtIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInZhcmlhYmxlIiwicHJpbWl0aXZlIiwibmVnYXRlZFRlcm0iLCJsb2dpY2FsVGVybSIsImJyYWNrZXRlZFRlcm0iLCJjb21wYXJpc29uVGVybSIsImdldFZhcmlhYmxlIiwiZ2V0UHJpbWl0aXZlIiwiZ2V0TmVnYXRlZFRlcm0iLCJnZXRMb2dpY2FsVGVybSIsImdldEJyZWVkaW5nVGVybSIsImdldENvbXBhcmlzb25UZXJtIiwiZ2V0UHJpbWl0aXZlVmFsdWUiLCJwcmltaXRpdmVWYWx1ZSIsImdldFZhbHVlIiwiZ2V0VHlwZSIsInR5cGUiLCJpc0Jvb2xlYW4iLCJib29sZWFuIiwiQk9PTEVBTl9UWVBFIiwiZXZhbHVhdGUiLCJ2YWx1ZSIsImlzRXF1YWxUbyIsInRlcm0iLCJlcXVhbFRvIiwibmFtZSIsImZyb21QcmltaXRpdmUiLCJwcmltaXRpdmVTdHJpbmciLCJnZXRTdHJpbmciXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQU9BOzs7ZUFBQTs7O2dDQUx3QjswQkFFRDt1QkFDTTtNQUU3QixXQUFlQSxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLGFBQWFDLHVCQUFPO0lBQzlDLFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsUUFBUSxFQUFFQyxTQUFTLEVBQUVDLFdBQVcsRUFBRUMsV0FBVyxFQUFFQyxhQUFhLEVBQUVDLGNBQWMsQ0FBRTtRQUMzSCxLQUFLLENBQUNULFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsUUFBUSxHQUFHQTtRQUNoQixJQUFJLENBQUNDLFNBQVMsR0FBR0E7UUFDakIsSUFBSSxDQUFDQyxXQUFXLEdBQUdBO1FBQ25CLElBQUksQ0FBQ0MsV0FBVyxHQUFHQTtRQUNuQixJQUFJLENBQUNDLGFBQWEs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
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return _default;
9
+ }
10
+ });
11
+ const _occamlanguages = require("occam-languages");
12
+ const _elements = /*#__PURE__*/ _interop_require_wildcard(require("../elements"));
13
+ const _string = require("../utilities/string");
14
+ function _getRequireWildcardCache(nodeInterop) {
15
+ if (typeof WeakMap !== "function") return null;
16
+ var cacheBabelInterop = new WeakMap();
17
+ var cacheNodeInterop = new WeakMap();
18
+ return (_getRequireWildcardCache = function(nodeInterop) {
19
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
20
+ })(nodeInterop);
21
+ }
22
+ function _interop_require_wildcard(obj, nodeInterop) {
23
+ if (!nodeInterop && obj && obj.__esModule) {
24
+ return obj;
25
+ }
26
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
27
+ return {
28
+ default: obj
29
+ };
30
+ }
31
+ var cache = _getRequireWildcardCache(nodeInterop);
32
+ if (cache && cache.has(obj)) {
33
+ return cache.get(obj);
34
+ }
35
+ var newObj = {
36
+ __proto__: null
37
+ };
38
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
39
+ for(var key in obj){
40
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
41
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
42
+ if (desc && (desc.get || desc.set)) {
43
+ Object.defineProperty(newObj, key, desc);
44
+ } else {
45
+ newObj[key] = obj[key];
46
+ }
47
+ }
48
+ }
49
+ newObj.default = obj;
50
+ if (cache) {
51
+ cache.set(obj, newObj);
52
+ }
53
+ return newObj;
54
+ }
55
+ const _default = (0, _elements.define)(class Terms extends _occamlanguages.Element {
56
+ constructor(context, string, node, breakPoint, array){
57
+ super(context, string, node, breakPoint);
58
+ this.array = array;
59
+ }
60
+ getArray() {
61
+ return this.array;
62
+ }
63
+ getLength() {
64
+ const length = this.array.length;
65
+ return length;
66
+ }
67
+ getTerm(index) {
68
+ const term = this.array[index] || null; ///
69
+ return term;
70
+ }
71
+ addTerm(term) {
72
+ this.array.push(term);
73
+ }
74
+ mapTerm(callback) {
75
+ return this.array.map(callback);
76
+ }
77
+ forEachTerm(callback) {
78
+ this.array.forEach(callback);
79
+ }
80
+ evaluate(context) {
81
+ const valuesArray = this.mapTerm((term)=>{
82
+ const value = term.evaluate(context);
83
+ return value;
84
+ }), valuesString = (0, _string.valuesStringFromValuesArray)(valuesArray, context), string = valuesString, array = valuesArray, node = null, breakPoint = null;
85
+ context = null;
86
+ const { Values } = _elements.default, values = new Values(context, string, node, breakPoint, array);
87
+ return values;
88
+ }
89
+ static name = "Terms";
90
+ static fromTerm(term, context) {
91
+ const termsArray = [
92
+ term
93
+ ], termsString = (0, _string.termsStringFromTermsArray)(termsArray, context), string = termsString, array = termsArray, node = null, breakPoint = null;
94
+ context = null;
95
+ const terms = new Terms(context, string, node, breakPoint, array);
96
+ return terms;
97
+ }
98
+ });
99
+
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3Rlcm1zLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgdGVybXNTdHJpbmdGcm9tVGVybXNBcnJheSwgdmFsdWVzU3RyaW5nRnJvbVZhbHVlc0FycmF5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9zdHJpbmdcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFRlcm1zIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgYXJyYXkpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy5hcnJheSA9IGFycmF5O1xuICB9XG5cbiAgZ2V0QXJyYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXJyYXk7XG4gIH1cblxuICBnZXRMZW5ndGgoKSB7XG4gICAgY29uc3QgbGVuZ3RoID0gdGhpcy5hcnJheS5sZW5ndGg7XG5cbiAgICByZXR1cm4gbGVuZ3RoO1xuICB9XG5cbiAgZ2V0VGVybShpbmRleCkge1xuICAgIGNvbnN0IHRlcm0gPSB0aGlzLmFycmF5W2luZGV4XSB8fCBudWxsOyAgLy8vXG5cbiAgICByZXR1cm4gdGVybTtcbiAgfVxuXG4gIGFkZFRlcm0odGVybSkge1xuICAgIHRoaXMuYXJyYXkucHVzaCh0ZXJtKTtcbiAgfVxuXG4gIG1hcFRlcm0oY2FsbGJhY2spIHsgcmV0dXJuIHRoaXMuYXJyYXkubWFwKGNhbGxiYWNrKTsgfVxuXG4gIGZvckVhY2hUZXJtKGNhbGxiYWNrKSB7IHRoaXMuYXJyYXkuZm9yRWFjaChjYWxsYmFjayk7IH1cblxuICBldmFsdWF0ZShjb250ZXh0KSB7XG4gICAgY29uc3QgdmFsdWVzQXJyYXkgPSB0aGlzLm1hcFRlcm0oKHRlcm0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gdGVybS5ldmFsdWF0ZShjb250ZXh0KTtcblxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIHZhbHVlc1N0cmluZyA9IHZhbHVlc1N0cmluZ0Zyb21WYWx1ZXNBcnJheSh2YWx1ZXNBcnJheSwgY29udGV4dCksXG4gICAgICAgICAgc3RyaW5nID0gdmFsdWVzU3RyaW5nLCAvLy9cbiAgICAgICAgICBhcnJheSA9IHZhbHVlc0FycmF5LCAvLy9cbiAgICAgICAgICBub2RlID0gbnVsbCxcbiAgICAgICAgICBicmVha1BvaW50ID0gbnVsbDtcblxuICAgIGNvbnRleHQgPSBudWxsO1xuXG4gICAgY29uc3QgeyBWYWx1ZXMgfSA9IGVsZW1lbnRzLFxuICAgICAgICAgIHZhbHVlcyA9IG5ldyBWYWx1ZXMoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBhcnJheSk7XG5cbiAgICByZXR1cm4gdmFsdWVzO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlRlcm1zXCI7XG5cbiAgc3RhdGljIGZyb21UZXJtKHRlcm0sIGNvbnRleHQpIHtcbiAgICBjb25zdCB0ZXJtc0FycmF5ID0gW1xuICAgICAgICAgICAgdGVybVxuICAgICAgICAgIF0sXG4gICAgICAgICAgdGVybXNTdHJpbmcgPSB0ZXJtc1N0cmluZ0Zyb21UZXJtc0FycmF5KHRlcm1zQXJyYXksIGNvbnRleHQpLFxuICAgICAgICAgIHN0cmluZyA9IHRlcm1zU3RyaW5nLCAvLy9cbiAgICAgICAgICBhcnJheSA9IHRlcm1zQXJyYXksIC8vL1xuICAgICAgICAgIG5vZGUgPSBudWxsLFxuICAgICAgICAgIGJyZWFrUG9pbnQgPSBudWxsO1xuXG4gICAgY29udGV4dCA9IG51bGw7XG5cbiAgICBjb25zdCB0ZXJtcyA9IG5ldyBUZXJtcyhjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIGFycmF5KTtcblxuICAgIHJldHVybiB0ZXJtcztcbiAgfVxufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiVGVybXMiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwiYXJyYXkiLCJnZXRBcnJheSIsImdldExlbmd0aCIsImxlbmd0aCIsImdldFRlcm0iLCJpbmRleCIsInRlcm0iLCJhZGRUZXJtIiwicHVzaCIsIm1hcFRlcm0iLCJjYWxsYmFjayIsIm1hcCIsImZvckVhY2hUZXJtIiwiZm9yRWFjaCIsImV2YWx1YXRlIiwidmFsdWVzQXJyYXkiLCJ2YWx1ZSIsInZhbHVlc1N0cmluZyIsInZhbHVlc1N0cmluZ0Zyb21WYWx1ZXNBcnJheSIsIlZhbHVlcyIsImVsZW1lbnRzIiwidmFsdWVzIiwibmFtZSIsImZyb21UZXJtIiwidGVybXNBcnJheSIsInRlcm1zU3RyaW5nIiwidGVybXNTdHJpbmdGcm9tVGVybXNBcnJheSIsInRlcm1zIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFTQTs7O2VBQUE7OztnQ0FQd0I7a0VBRUg7d0JBR2tEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7TUFFdkUsV0FBZUEsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxjQUFjQyx1QkFBTztJQUMvQyxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLEtBQUssQ0FBRTtRQUNwRCxLQUFLLENBQUNKLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsS0FBSyxHQUFHQTtJQUNmO0lBRUFDLFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQ0QsS0FBSztJQUNuQjtJQUVBRSxZQUFZO1FBQ1YsTUFBTUMsU0FBUyxJQUFJLENBQUNILEtBQUssQ0FBQ0csTUFBTTtRQUVoQyxPQUFPQTtJQUNUO0lBRUFDLFFBQVFDLEtBQUssRUFBRTtRQUNiLE1BQU1DLE9BQU8sSUFBSSxDQUFDTixLQUFLLENBQUNLLE1BQU0sSUFBSSxNQUFPLEdBQUc7UUFFNUMsT0FBT0M7SUFDVDtJQUVBQyxRQUFRRCxJQUFJLEVBQUU7UUFDWixJQUFJLENBQUNOLEtBQUssQ0FBQ1EsSUFBSSxDQUFDRjtJQUNsQjtJQUVBRyxRQUFRQyxRQUFRLEVBQUU7UUFBRSxPQUFPLElBQUksQ0FBQ1YsS0FBSyxDQUFDVyxHQUFHLENBQUNEO0lBQVc7SUFFckRFLFlBQVlGLFFBQVEsRUFBRTtRQUFFLElBQUksQ0FBQ1YsS0FBSyxDQUFDYSxPQUFPLENBQUNIO0lBQVc7SUFFdERJLFNBQVNsQixPQUFPLEVBQUU7UUFDaEIsTUFBTW1CLGNBQWMsSUFBSSxDQUFDTixPQUFPLENBQUMsQ0FBQ0g7WUFDMUIsTUFBTVUsUUFBUVYsS0FBS1EsUUFBUSxDQUFDbEI7WUFFNUIsT0FBT29CO1FBQ1QsSUFDQUMsZUFBZUMsSUFBQUEsbUNBQTJCLEVBQUNILGFBQWFuQixVQUN4REMsU0FBU29CLGNBQ1RqQixRQUFRZSxhQUNSakIsT0FBTyxNQUNQQyxhQUFhO1FBRW5CSCxVQUFVO1FBRVYsTUFBTSxFQUFFdUIsTUFBTSxFQUFFLEdBQUdDLGlCQUFRLEVBQ3JCQyxTQUFTLElBQUlGLE9BQU92QixTQUFTQyxRQUFRQyxNQUFNQyxZQUFZQztRQUU3RCxPQUFPcUI7SUFDVDtJQUVBLE9BQU9DLE9BQU8sUUFBUTtJQUV0QixPQUFPQyxTQUFTakIsSUFBSSxFQUFFVixPQUFPLEVBQUU7UUFDN0IsTUFBTTRCLGFBQWE7WUFDWGxCO1NBQ0QsRUFDRG1CLGNBQWNDLElBQUFBLGlDQUF5QixFQUFDRixZQUFZNUIsVUFDcERDLFNBQVM0QixhQUNUekIsUUFBUXdCLFlBQ1IxQixPQUFPLE1BQ1BDLGFBQWE7UUFFbkJILFVBQVU7UUFFVixNQUFNK0IsUUFBUSxJQUFJakMsTUFBTUUsU0FBU0MsUUFBUUMsTUFBTUMsWUFBWUM7UUFFM0QsT0FBTzJCO0lBQ1Q7QUFDRiJ9
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return _default;
9
+ }
10
+ });
11
+ const _occamlanguages = require("occam-languages");
12
+ const _exception = /*#__PURE__*/ _interop_require_default(require("../exception"));
13
+ const _elements = require("../elements");
14
+ const _types = require("../types");
15
+ function _interop_require_default(obj) {
16
+ return obj && obj.__esModule ? obj : {
17
+ default: obj
18
+ };
19
+ }
20
+ const _default = (0, _elements.define)(class Ternary extends _occamlanguages.Element {
21
+ constructor(context, string, node, breakPoint, term, ifExpression, elseExpression){
22
+ super(context, string, node, breakPoint);
23
+ this.term = term;
24
+ this.ifExpression = ifExpression;
25
+ this.elseExpression = elseExpression;
26
+ }
27
+ getTerm() {
28
+ return this.term;
29
+ }
30
+ getIfBlock() {
31
+ return this.ifExpression;
32
+ }
33
+ getElseBlock() {
34
+ return this.elseExpression;
35
+ }
36
+ async evaluate(context) {
37
+ let value;
38
+ const ternaryString = this.getString(); ///
39
+ context.trace(`Evaluating the '${ternaryString}' ternary...`);
40
+ value = this.term.evaluate(context);
41
+ const valueType = value.getType();
42
+ if (valueType !== _types.BOOLEAN_TYPE) {
43
+ const valueString = value.getString(), message = `The '${valueString}' value's type is '${valueType}' when it should be of type '${_types.BOOLEAN_TYPE}'.`, exception = _exception.default.fromMessage(message);
44
+ throw exception;
45
+ }
46
+ const primitiveValue = value.getPrimitiveValue(), boolean = primitiveValue; ///
47
+ value = boolean ? await this.ifExpression.evaluate(context) : await this.elseExpression.evaluate(context);
48
+ const valueString = value.getString();
49
+ context.debug(`...evaluated the '${ternaryString}' ternary as '${valueString}'.`);
50
+ return value;
51
+ }
52
+ static name = "Ternary";
53
+ });
54
+
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3Rlcm5hcnkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IEJPT0xFQU5fVFlQRSB9IGZyb20gXCIuLi90eXBlc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgVGVybmFyeSBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHRlcm0sIGlmRXhwcmVzc2lvbiwgZWxzZUV4cHJlc3Npb24pIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy50ZXJtID0gdGVybTtcbiAgICB0aGlzLmlmRXhwcmVzc2lvbiA9IGlmRXhwcmVzc2lvbjtcbiAgICB0aGlzLmVsc2VFeHByZXNzaW9uID0gZWxzZUV4cHJlc3Npb247XG4gIH1cblxuICBnZXRUZXJtKCkge1xuICAgIHJldHVybiB0aGlzLnRlcm07XG4gIH1cblxuICBnZXRJZkJsb2NrKCkge1xuICAgIHJldHVybiB0aGlzLmlmRXhwcmVzc2lvbjtcbiAgfVxuXG4gIGdldEVsc2VCbG9jaygpIHtcbiAgICByZXR1cm4gdGhpcy5lbHNlRXhwcmVzc2lvbjtcbiAgfVxuXG4gIGFzeW5jIGV2YWx1YXRlKGNvbnRleHQpIHtcbiAgICBsZXQgdmFsdWU7XG5cbiAgICBjb25zdCB0ZXJuYXJ5U3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHt0ZXJuYXJ5U3RyaW5nfScgdGVybmFyeS4uLmApO1xuXG4gICAgdmFsdWUgPSB0aGlzLnRlcm0uZXZhbHVhdGUoY29udGV4dCk7XG5cbiAgICBjb25zdCB2YWx1ZVR5cGUgPSB2YWx1ZS5nZXRUeXBlKCk7XG5cbiAgICBpZiAodmFsdWVUeXBlICE9PSBCT09MRUFOX1RZUEUpIHtcbiAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHt2YWx1ZVN0cmluZ30nIHZhbHVlJ3MgdHlwZSBpcyAnJHt2YWx1ZVR5cGV9JyB3aGVuIGl0IHNob3VsZCBiZSBvZiB0eXBlICcke0JPT0xFQU5fVFlQRX0nLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCBwcmltaXRpdmVWYWx1ZSA9IHZhbHVlLmdldFByaW1pdGl2ZVZhbHVlKCksXG4gICAgICAgICAgYm9vbGVhbiA9IHByaW1pdGl2ZVZhbHVlOyAvLy9cblxuICAgIHZhbHVlID0gYm9vbGVhbiA/XG4gICAgICAgICAgICAgIGF3YWl0IHRoaXMuaWZFeHByZXNzaW9uLmV2YWx1YXRlKGNvbnRleHQpIDpcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmVsc2VFeHByZXNzaW9uLmV2YWx1YXRlKGNvbnRleHQpO1xuXG4gICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgJyR7dGVybmFyeVN0cmluZ30nIHRlcm5hcnkgYXMgJyR7dmFsdWVTdHJpbmd9Jy5gKTtcblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJUZXJuYXJ5XCI7XG59KTtcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJUZXJuYXJ5IiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInRlcm0iLCJpZkV4cHJlc3Npb24iLCJlbHNlRXhwcmVzc2lvbiIsImdldFRlcm0iLCJnZXRJZkJsb2NrIiwiZ2V0RWxzZUJsb2NrIiwiZXZhbHVhdGUiLCJ2YWx1ZSIsInRlcm5hcnlTdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsInZhbHVlVHlwZSIsImdldFR5cGUiLCJCT09MRUFOX1RZUEUiLCJ2YWx1ZVN0cmluZyIsIm1lc3NhZ2UiLCJleGNlcHRpb24iLCJFeGNlcHRpb24iLCJmcm9tTWVzc2FnZSIsInByaW1pdGl2ZVZhbHVlIiwiZ2V0UHJpbWl0aXZlVmFsdWUiLCJib29sZWFuIiwiZGVidWciLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFTQTs7O2VBQUE7OztnQ0FQd0I7a0VBRUY7MEJBRUM7dUJBQ007Ozs7OztNQUU3QixXQUFlQSxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLGdCQUFnQkMsdUJBQU87SUFDakQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxJQUFJLEVBQUVDLFlBQVksRUFBRUMsY0FBYyxDQUFFO1FBQ2pGLEtBQUssQ0FBQ04sU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxJQUFJLEdBQUdBO1FBQ1osSUFBSSxDQUFDQyxZQUFZLEdBQUdBO1FBQ3BCLElBQUksQ0FBQ0MsY0FBYyxHQUFHQTtJQUN4QjtJQUVBQyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUNILElBQUk7SUFDbEI7SUFFQUksYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDSCxZQUFZO0lBQzFCO0lBRUFJLGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQ0gsY0FBYztJQUM1QjtJQUVBLE1BQU1JLFNBQVNWLE9BQU8sRUFBRTtRQUN0QixJQUFJVztRQUVKLE1BQU1DLGdCQUFnQixJQUFJLENBQUNDLFNBQVMsSUFBSSxHQUFHO1FBRTNDYixRQUFRYyxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRUYsY0FBYyxZQUFZLENBQUM7UUFFNURELFFBQVEsSUFBSSxDQUFDUCxJQUFJLENBQUNNLFFBQVEsQ0FBQ1Y7UUFFM0IsTUFBTWUsWUFBWUosTUFBTUssT0FBTztRQUUvQixJQUFJRCxjQUFjRSxtQkFBWSxFQUFFO1lBQzlCLE1BQU1DLGNBQWNQLE1BQU1FLFNBQVMsSUFDN0JNLFVBQVUsQ0FBQyxLQUFLLEVBQUVELFlBQVksbUJBQW1CLEVBQUVILFVBQVUsNkJBQTZCLEVBQUVFLG1CQUFZLENBQUMsRUFBRSxDQUFDLEVBQzVHRyxZQUFZQyxrQkFBUyxDQUFDQyxXQUFXLENBQUNIO1lBRXhDLE1BQU1DO1FBQ1I7UUFFQSxNQUFNRyxpQkFBaUJaLE1BQU1hLGlCQUFpQixJQUN4Q0MsVUFBVUYsZ0JBQWdCLEdBQUc7UUFFbkNaLFFBQVFjLFVBQ0UsTUFBTSxJQUFJLENBQUNwQixZQUFZLENBQUNLLFFBQVEsQ0FBQ1YsV0FDL0IsTUFBTSxJQUFJLENBQUNNLGNBQWMsQ0FBQ0ksUUFBUSxDQUFDVjtRQUUvQyxNQUFNa0IsY0FBY1AsTUFBTUUsU0FBUztRQUVuQ2IsUUFBUTBCLEtBQUssQ0FBQyxDQUFDLGtCQUFrQixFQUFFZCxjQUFjLGNBQWMsRUFBRU0sWUFBWSxFQUFFLENBQUM7UUFFaEYsT0FBT1A7SUFDVDtJQUVBLE9BQU9nQixPQUFPLFVBQVU7QUFDMUIifQ==
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return _default;
9
+ }
10
+ });
11
+ const _occamlanguages = require("occam-languages");
12
+ const _elements = require("../elements");
13
+ const _types = require("../types");
14
+ const _value = require("../utilities/value");
15
+ const _default = (0, _elements.define)(class Value extends _occamlanguages.Element {
16
+ constructor(context, string, node, breakPoint, variable, primitive){
17
+ super(context, string, node, breakPoint);
18
+ this.variable = variable;
19
+ this.primitive = primitive;
20
+ }
21
+ getVariable() {
22
+ return this.variable;
23
+ }
24
+ getPrimitive() {
25
+ return this.primitive;
26
+ }
27
+ getPrimitiveValue() {
28
+ const primitiveValue = this.primitive.getValue();
29
+ return primitiveValue;
30
+ }
31
+ getType() {
32
+ let type;
33
+ if (false) {
34
+ ///
35
+ } else if (this.variable !== null) {
36
+ type = this.variable.getType();
37
+ } else if (this.primitive !== null) {
38
+ type = this.primitive.getType();
39
+ }
40
+ return type;
41
+ }
42
+ isBoolean() {
43
+ const type = this.getType(), boolean = type === _types.BOOLEAN_TYPE;
44
+ return boolean;
45
+ }
46
+ evaluate(context) {
47
+ let value;
48
+ if (false) {
49
+ ///
50
+ } else if (this.variable !== null) {
51
+ value = this.variable.evaluate(context);
52
+ } else if (this.primitive !== null) {
53
+ value = this.primitive.evaluate(context);
54
+ }
55
+ return value;
56
+ }
57
+ isEqualTo(value) {
58
+ let equalTo = false;
59
+ if (false) {
60
+ ///
61
+ } else if (this.variable !== null) {
62
+ const variable = value.getVariable();
63
+ if (variable !== null) {
64
+ equalTo = this.variable.isEqualTo(variable);
65
+ }
66
+ } else if (this.primitive !== null) {
67
+ const primitive = value.getPrimitive();
68
+ if (primitive !== null) {
69
+ equalTo = this.primitive.isEqualTo(primitive);
70
+ }
71
+ }
72
+ return equalTo;
73
+ }
74
+ static name = "Value";
75
+ static fromPrimitive(primitive, context) {
76
+ const primitiveString = primitive.getString(), string = primitiveString, node = null, breakPoint = null, variable = null;
77
+ context = null;
78
+ const value = new Value(context, string, node, breakPoint, variable, primitive);
79
+ return value;
80
+ }
81
+ });
82
+
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3ZhbHVlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IEJPT0xFQU5fVFlQRSB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgdmFsdWVGcm9tQm9vbGVhbiB9IGZyb20gXCIuLi91dGlsaXRpZXMvdmFsdWVcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFZhbHVlIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdmFyaWFibGUsIHByaW1pdGl2ZSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnZhcmlhYmxlID0gdmFyaWFibGU7XG4gICAgdGhpcy5wcmltaXRpdmUgPSBwcmltaXRpdmU7XG4gIH1cblxuICBnZXRWYXJpYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy52YXJpYWJsZTtcbiAgfVxuXG4gIGdldFByaW1pdGl2ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5wcmltaXRpdmU7XG4gIH1cblxuICBnZXRQcmltaXRpdmVWYWx1ZSgpIHtcbiAgICBjb25zdCBwcmltaXRpdmVWYWx1ZSA9IHRoaXMucHJpbWl0aXZlLmdldFZhbHVlKCk7XG5cbiAgICByZXR1cm4gcHJpbWl0aXZlVmFsdWU7XG4gIH1cblxuICBnZXRUeXBlKCkge1xuICAgIGxldCB0eXBlO1xuXG4gICAgaWYgKGZhbHNlKSB7XG4gICAgICAvLy9cbiAgICB9IGVsc2UgaWYgKHRoaXMudmFyaWFibGUgIT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSB0aGlzLnZhcmlhYmxlLmdldFR5cGUoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucHJpbWl0aXZlICE9PSBudWxsKSB7XG4gICAgICB0eXBlID0gdGhpcy5wcmltaXRpdmUuZ2V0VHlwZSgpO1xuICAgIH1cblxuICAgIHJldHVybiB0eXBlO1xuICB9XG5cbiAgaXNCb29sZWFuKCkge1xuICAgIGNvbnN0IHR5cGUgPSB0aGlzLmdldFR5cGUoKSxcbiAgICAgICAgICBib29sZWFuID0gKHR5cGUgPT09IEJPT0xFQU5fVFlQRSk7XG5cbiAgICByZXR1cm4gYm9vbGVhbjtcbiAgfVxuXG4gIGV2YWx1YXRlKGNvbnRleHQpIHtcbiAgICBsZXQgdmFsdWU7XG5cbiAgICBpZiAoZmFsc2UpIHtcbiAgICAgIC8vL1xuICAgIH0gZWxzZSBpZiAodGhpcy52YXJpYWJsZSAhPT0gbnVsbCkge1xuICAgICAgdmFsdWUgPSB0aGlzLnZhcmlhYmxlLmV2YWx1YXRlKGNvbnRleHQpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5wcmltaXRpdmUgIT09IG51bGwpIHtcbiAgICAgIHZhbHVlID0gdGhpcy5wcmltaXRpdmUuZXZhbHVhdGUoY29udGV4dCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgaXNFcXVhbFRvKHZhbHVlKSB7XG4gICAgbGV0IGVxdWFsVG8gPSBmYWxzZTtcblxuICAgIGlmIChmYWxzZSkge1xuICAgICAgLy8vXG4gICAgfSBlbHNlIGlmICh0aGlzLnZhcmlhYmxlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCB2YXJpYWJsZSA9IHZhbHVlLmdldFZhcmlhYmxlKCk7XG5cbiAgICAgIGlmICh2YXJpYWJsZSAhPT0gbnVsbCkge1xuICAgICAgICBlcXVhbFRvID0gdGhpcy52YXJpYWJsZS5pc0VxdWFsVG8odmFyaWFibGUpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy5wcmltaXRpdmUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHByaW1pdGl2ZSA9IHZhbHVlLmdldFByaW1pdGl2ZSgpO1xuXG4gICAgICBpZiAocHJpbWl0aXZlICE9PSBudWxsKSB7XG4gICAgICAgIGVxdWFsVG8gPSB0aGlzLnByaW1pdGl2ZS5pc0VxdWFsVG8ocHJpbWl0aXZlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZXF1YWxUbztcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJWYWx1ZVwiO1xuXG4gIHN0YXRpYyBmcm9tUHJpbWl0aXZlKHByaW1pdGl2ZSwgY29udGV4dCkge1xuICAgIGNvbnN0IHByaW1pdGl2ZVN0cmluZyA9IHByaW1pdGl2ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBzdHJpbmcgPSBwcmltaXRpdmVTdHJpbmcsIC8vL1xuICAgICAgICAgIG5vZGUgPSBudWxsLFxuICAgICAgICAgIGJyZWFrUG9pbnQgPSBudWxsLFxuICAgICAgICAgIHZhcmlhYmxlID0gbnVsbDtcblxuICAgIGNvbnRleHQgPSBudWxsO1xuXG4gICAgY29uc3QgdmFsdWUgPSBuZXcgVmFsdWUoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB2YXJpYWJsZSwgcHJpbWl0aXZlKTtcblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiVmFsdWUiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwidmFyaWFibGUiLCJwcmltaXRpdmUiLCJnZXRWYXJpYWJsZSIsImdldFByaW1pdGl2ZSIsImdldFByaW1pdGl2ZVZhbHVlIiwicHJpbWl0aXZlVmFsdWUiLCJnZXRWYWx1ZSIsImdldFR5cGUiLCJ0eXBlIiwiaXNCb29sZWFuIiwiYm9vbGVhbiIsIkJPT0xFQU5fVFlQRSIsImV2YWx1YXRlIiwidmFsdWUiLCJpc0VxdWFsVG8iLCJlcXVhbFRvIiwibmFtZSIsImZyb21QcmltaXRpdmUiLCJwcmltaXRpdmVTdHJpbmciLCJnZXRTdHJpbmciXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVFBOzs7ZUFBQTs7O2dDQU53QjswQkFFRDt1QkFDTTt1QkFDSTtN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