occam-furtle 2.0.280 → 2.0.283

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 (138) hide show
  1. package/README.md +0 -11
  2. package/lib/constants.js +29 -1
  3. package/lib/context/block.js +15 -1
  4. package/lib/context/file.js +129 -52
  5. package/lib/element/assignment/array.js +186 -0
  6. package/lib/element/assignment/object.js +244 -0
  7. package/lib/element/assignment/variable.js +144 -0
  8. package/lib/element/assignments/variable.js +158 -0
  9. package/lib/element/block/return.js +198 -0
  10. package/lib/element/comparison.js +179 -0
  11. package/lib/element/declaration/procedure.js +139 -0
  12. package/lib/{dom → element}/error.js +12 -4
  13. package/lib/element/every.js +179 -0
  14. package/lib/element/expression/bitwise.js +186 -0
  15. package/lib/element/expression/bracketed.js +149 -0
  16. package/lib/element/expression/negated.js +166 -0
  17. package/lib/element/expression.js +578 -0
  18. package/lib/element/expressions.js +210 -0
  19. package/lib/{dom → element}/label.js +4 -4
  20. package/lib/element/parameter/named.js +198 -0
  21. package/lib/element/parameter.js +165 -0
  22. package/lib/element/parameters/named.js +220 -0
  23. package/lib/element/parameters.js +198 -0
  24. package/lib/element/procedure/anonymous.js +181 -0
  25. package/lib/element/procedure.js +212 -0
  26. package/lib/element/procedureCall.js +166 -0
  27. package/lib/element/query/node.js +186 -0
  28. package/lib/element/query/nodes.js +179 -0
  29. package/lib/element/reduce.js +181 -0
  30. package/lib/element/reference.js +138 -0
  31. package/lib/element/some.js +179 -0
  32. package/lib/element/statement/return.js +138 -0
  33. package/lib/element/step.js +154 -0
  34. package/lib/element/ternary.js +171 -0
  35. package/lib/element/variable.js +279 -0
  36. package/lib/elements.js +27 -0
  37. package/lib/index.js +13 -5
  38. package/lib/log.js +202 -0
  39. package/lib/preamble.js +32 -32
  40. package/lib/process/verify.js +289 -0
  41. package/lib/utilities/context.js +46 -5
  42. package/lib/utilities/element.js +3 -0
  43. package/lib/utilities/node.js +71 -0
  44. package/package.json +3 -1
  45. package/src/constants.js +16 -0
  46. package/src/context/block.js +10 -0
  47. package/src/context/file.js +97 -55
  48. package/src/{dom → element}/assignment/array.js +6 -6
  49. package/src/{dom → element}/assignment/object.js +8 -8
  50. package/src/{dom → element}/assignment/variable.js +4 -4
  51. package/src/{dom → element}/assignments/variable.js +5 -5
  52. package/src/{dom → element}/block/return.js +5 -5
  53. package/src/{dom → element}/comparison.js +5 -5
  54. package/src/{dom → element}/declaration/procedure.js +22 -4
  55. package/src/{dom → element}/error.js +13 -4
  56. package/src/{dom → element}/every.js +6 -6
  57. package/src/{dom → element}/expression/bitwise.js +5 -5
  58. package/src/{dom → element}/expression/bracketed.js +4 -4
  59. package/src/{dom → element}/expression/negated.js +5 -5
  60. package/src/{dom → element}/expression.js +4 -4
  61. package/src/{dom → element}/expressions.js +6 -6
  62. package/src/{dom → element}/label.js +4 -4
  63. package/src/{dom → element}/parameter/named.js +4 -4
  64. package/src/{dom → element}/parameter.js +4 -4
  65. package/src/{dom → element}/parameters/named.js +5 -5
  66. package/src/{dom → element}/parameters.js +5 -5
  67. package/src/{dom → element}/procedure/anonymous.js +4 -4
  68. package/src/{dom → element}/procedure.js +5 -5
  69. package/src/{dom → element}/procedureCall.js +4 -4
  70. package/src/{dom → element}/query/node.js +5 -5
  71. package/src/{dom → element}/query/nodes.js +5 -5
  72. package/src/{dom → element}/reduce.js +5 -5
  73. package/src/{dom → element}/reference.js +4 -4
  74. package/src/{dom → element}/some.js +6 -6
  75. package/src/{dom → element}/statement/return.js +4 -4
  76. package/src/{dom → element}/step.js +4 -4
  77. package/src/{dom → element}/ternary.js +4 -4
  78. package/src/{dom → element}/variable.js +5 -5
  79. package/src/elements.js +13 -0
  80. package/src/index.js +6 -2
  81. package/src/log.js +139 -0
  82. package/src/preamble.js +31 -31
  83. package/src/process/verify.js +157 -0
  84. package/src/utilities/context.js +45 -2
  85. package/src/utilities/element.js +0 -0
  86. package/src/utilities/{string.js → node.js} +9 -14
  87. package/test/Free and bound variables.ftl +112 -0
  88. package/test/context/file.js +127 -0
  89. package/{src/example → test}/context/release.js +60 -12
  90. package/test/helpers/constants.js +17 -0
  91. package/{src/example/utilities → test/helpers}/expressions.js +8 -4
  92. package/{src/example/utilities → test/helpers}/furtle.js +8 -4
  93. package/{src/example/utilities → test/helpers}/grammar.js +8 -4
  94. package/{src/example/utilities → test/helpers}/nominal.js +10 -5
  95. package/{src/example/utilities → test/helpers}/procedure.js +6 -2
  96. package/test/main.js +55 -0
  97. package/example/Free and bound variables.ftl +0 -75
  98. package/lib/dom/assignment/array.js +0 -186
  99. package/lib/dom/assignment/object.js +0 -244
  100. package/lib/dom/assignment/variable.js +0 -144
  101. package/lib/dom/assignments/variable.js +0 -158
  102. package/lib/dom/block/return.js +0 -198
  103. package/lib/dom/comparison.js +0 -179
  104. package/lib/dom/declaration/procedure.js +0 -125
  105. package/lib/dom/every.js +0 -179
  106. package/lib/dom/expression/bitwise.js +0 -186
  107. package/lib/dom/expression/bracketed.js +0 -149
  108. package/lib/dom/expression/negated.js +0 -166
  109. package/lib/dom/expression.js +0 -578
  110. package/lib/dom/expressions.js +0 -210
  111. package/lib/dom/parameter/named.js +0 -198
  112. package/lib/dom/parameter.js +0 -165
  113. package/lib/dom/parameters/named.js +0 -220
  114. package/lib/dom/parameters.js +0 -198
  115. package/lib/dom/procedure/anonymous.js +0 -181
  116. package/lib/dom/procedure.js +0 -212
  117. package/lib/dom/procedureCall.js +0 -166
  118. package/lib/dom/query/node.js +0 -186
  119. package/lib/dom/query/nodes.js +0 -179
  120. package/lib/dom/reduce.js +0 -181
  121. package/lib/dom/reference.js +0 -138
  122. package/lib/dom/some.js +0 -179
  123. package/lib/dom/statement/return.js +0 -138
  124. package/lib/dom/step.js +0 -154
  125. package/lib/dom/ternary.js +0 -171
  126. package/lib/dom/variable.js +0 -279
  127. package/lib/dom.js +0 -27
  128. package/lib/example/context/file.js +0 -130
  129. package/lib/example/context/release.js +0 -160
  130. package/lib/example/utilities/expressions.js +0 -29
  131. package/lib/example/utilities/furtle.js +0 -19
  132. package/lib/example/utilities/grammar.js +0 -26
  133. package/lib/example/utilities/nominal.js +0 -25
  134. package/lib/example/utilities/procedure.js +0 -18
  135. package/lib/utilities/string.js +0 -78
  136. package/src/dom.js +0 -13
  137. package/src/example/context/file.js +0 -69
  138. /package/{example → test}/customGrammars.json +0 -0
@@ -0,0 +1,158 @@
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
+ var _elements = /*#__PURE__*/ _interop_require_wildcard(require("../../elements"));
12
+ var _query = require("../../utilities/query");
13
+ function _class_call_check(instance, Constructor) {
14
+ if (!(instance instanceof Constructor)) {
15
+ throw new TypeError("Cannot call a class as a function");
16
+ }
17
+ }
18
+ function _defineProperties(target, props) {
19
+ for(var i = 0; i < props.length; i++){
20
+ var descriptor = props[i];
21
+ descriptor.enumerable = descriptor.enumerable || false;
22
+ descriptor.configurable = true;
23
+ if ("value" in descriptor) descriptor.writable = true;
24
+ Object.defineProperty(target, descriptor.key, descriptor);
25
+ }
26
+ }
27
+ function _create_class(Constructor, protoProps, staticProps) {
28
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
29
+ if (staticProps) _defineProperties(Constructor, staticProps);
30
+ return Constructor;
31
+ }
32
+ function _define_property(obj, key, value) {
33
+ if (key in obj) {
34
+ Object.defineProperty(obj, key, {
35
+ value: value,
36
+ enumerable: true,
37
+ configurable: true,
38
+ writable: true
39
+ });
40
+ } else {
41
+ obj[key] = value;
42
+ }
43
+ return obj;
44
+ }
45
+ function _getRequireWildcardCache(nodeInterop) {
46
+ if (typeof WeakMap !== "function") return null;
47
+ var cacheBabelInterop = new WeakMap();
48
+ var cacheNodeInterop = new WeakMap();
49
+ return (_getRequireWildcardCache = function(nodeInterop) {
50
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
51
+ })(nodeInterop);
52
+ }
53
+ function _interop_require_wildcard(obj, nodeInterop) {
54
+ if (!nodeInterop && obj && obj.__esModule) {
55
+ return obj;
56
+ }
57
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
58
+ return {
59
+ default: obj
60
+ };
61
+ }
62
+ var cache = _getRequireWildcardCache(nodeInterop);
63
+ if (cache && cache.has(obj)) {
64
+ return cache.get(obj);
65
+ }
66
+ var newObj = {
67
+ __proto__: null
68
+ };
69
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
70
+ for(var key in obj){
71
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
72
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
73
+ if (desc && (desc.get || desc.set)) {
74
+ Object.defineProperty(newObj, key, desc);
75
+ } else {
76
+ newObj[key] = obj[key];
77
+ }
78
+ }
79
+ }
80
+ newObj.default = obj;
81
+ if (cache) {
82
+ cache.set(obj, newObj);
83
+ }
84
+ return newObj;
85
+ }
86
+ var _VariableAssignments;
87
+ var typeTerminalNodeQuery = (0, _query.nodeQuery)("/variableAssignments/@type"), variableAssignmentNodesQuery = (0, _query.nodesQuery)("/variableAssignments/variableAssignment"), stepVariableAssignmentsNodeQuery = (0, _query.nodeQuery)("/step/variableAssignments");
88
+ var _default = (0, _elements.define)((_VariableAssignments = /*#__PURE__*/ function() {
89
+ function VariableAssignments(string, array) {
90
+ _class_call_check(this, VariableAssignments);
91
+ this.string = string;
92
+ this.array = array;
93
+ }
94
+ _create_class(VariableAssignments, [
95
+ {
96
+ key: "getString",
97
+ value: function getString() {
98
+ return this.string;
99
+ }
100
+ },
101
+ {
102
+ key: "getArray",
103
+ value: function getArray() {
104
+ return this.array;
105
+ }
106
+ },
107
+ {
108
+ key: "evaluate",
109
+ value: function evaluate(context) {
110
+ var variableAssignmentsString = this.string; ///
111
+ context.trace("Evaluating the '".concat(variableAssignmentsString, "' variable assignments..."));
112
+ this.array.forEach(function(variableAssignment) {
113
+ variableAssignment.evaluate(context);
114
+ });
115
+ context.debug("...evaluated the '".concat(variableAssignmentsString, "' variable assignments."));
116
+ }
117
+ }
118
+ ], [
119
+ {
120
+ key: "fromStepNode",
121
+ value: function fromStepNode(stepNode, context) {
122
+ var variableAssignments = null;
123
+ var stepVariableAssignmentsNode = stepVariableAssignmentsNodeQuery(stepNode);
124
+ if (stepVariableAssignmentsNode !== null) {
125
+ var variableAssignmentsNode = stepVariableAssignmentsNode; ///
126
+ variableAssignments = variableAssignmentsFromVariableAssignmentsNode(variableAssignmentsNode, context);
127
+ }
128
+ return variableAssignments;
129
+ }
130
+ }
131
+ ]);
132
+ return VariableAssignments;
133
+ }(), _define_property(_VariableAssignments, "name", "VariableAssignments"), _VariableAssignments));
134
+ function variableAssignmentsFromVariableAssignmentsNode(variableAssignmentsNode, context) {
135
+ var VariableAssignments = _elements.default.VariableAssignments, type = typeFromVariableAssignmentsNode(variableAssignmentsNode, context), array = arrayFromTypeAndVariableAssignmentsNode(type, variableAssignmentsNode, context), string = stringFromArray(array, context), variableAssignments = new VariableAssignments(string, array);
136
+ return variableAssignments;
137
+ }
138
+ function stringFromArray(array, context) {
139
+ var variableAssignmentsString = array.reduce(function(variableAssignmentsString, variableAssignment) {
140
+ var variableAssignmentString = variableAssignment.getString();
141
+ variableAssignmentsString = variableAssignmentsString === null ? variableAssignmentString : "".concat(variableAssignmentsString, ", ").concat(variableAssignmentString);
142
+ return variableAssignmentsString;
143
+ }, null), string = variableAssignmentsString; ///
144
+ return string;
145
+ }
146
+ function typeFromVariableAssignmentsNode(variableAssignmentsNode, context) {
147
+ var typeTerminalNode = typeTerminalNodeQuery(variableAssignmentsNode), typeTerminalNodeContent = typeTerminalNode.getContent(), type = typeTerminalNodeContent; ///
148
+ return type;
149
+ }
150
+ function arrayFromTypeAndVariableAssignmentsNode(type, variableAssignmentsNode, context) {
151
+ var variableAssignmentNodes = variableAssignmentNodesQuery(variableAssignmentsNode), array = variableAssignmentNodes.map(function(variableAssignmentNode) {
152
+ var VariableAssignment = _elements.default.VariableAssignment, variableAssignment = VariableAssignment.fromTypeAndVariableAssignmentNode(type, variableAssignmentNode, context);
153
+ return variableAssignment;
154
+ });
155
+ return array;
156
+ }
157
+
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2Fzc2lnbm1lbnRzL3ZhcmlhYmxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uLy4uL2VsZW1lbnRzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5LCBub2Rlc1F1ZXJ5IH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCB0eXBlVGVybWluYWxOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdmFyaWFibGVBc3NpZ25tZW50cy9AdHlwZVwiKSxcbiAgICAgIHZhcmlhYmxlQXNzaWdubWVudE5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiL3ZhcmlhYmxlQXNzaWdubWVudHMvdmFyaWFibGVBc3NpZ25tZW50XCIpLFxuICAgICAgc3RlcFZhcmlhYmxlQXNzaWdubWVudHNOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvc3RlcC92YXJpYWJsZUFzc2lnbm1lbnRzXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgVmFyaWFibGVBc3NpZ25tZW50cyB7XG4gIGNvbnN0cnVjdG9yKHN0cmluZywgYXJyYXkpIHtcbiAgICB0aGlzLnN0cmluZyA9IHN0cmluZztcbiAgICB0aGlzLmFycmF5ID0gYXJyYXk7XG4gIH1cblxuICBnZXRTdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RyaW5nO1xuICB9XG5cbiAgZ2V0QXJyYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXJyYXk7XG4gIH1cblxuICBldmFsdWF0ZShjb250ZXh0KSB7XG4gICAgY29uc3QgdmFyaWFibGVBc3NpZ25tZW50c1N0cmluZyA9IHRoaXMuc3RyaW5nOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYEV2YWx1YXRpbmcgdGhlICcke3ZhcmlhYmxlQXNzaWdubWVudHNTdHJpbmd9JyB2YXJpYWJsZSBhc3NpZ25tZW50cy4uLmApO1xuXG4gICAgdGhpcy5hcnJheS5mb3JFYWNoKCh2YXJpYWJsZUFzc2lnbm1lbnQpID0+IHtcbiAgICAgIHZhcmlhYmxlQXNzaWdubWVudC5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9KTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgJyR7dmFyaWFibGVBc3NpZ25tZW50c1N0cmluZ30nIHZhcmlhYmxlIGFzc2lnbm1lbnRzLmApO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlZhcmlhYmxlQXNzaWdubWVudHNcIjtcblxuICBzdGF0aWMgZnJvbVN0ZXBOb2RlKHN0ZXBOb2RlLCBjb250ZXh0KSB7XG4gICAgbGV0IHZhcmlhYmxlQXNzaWdubWVudHMgPSBudWxsO1xuXG4gICAgY29uc3Qgc3RlcFZhcmlhYmxlQXNzaWdubWVudHNOb2RlID0gc3RlcFZhcmlhYmxlQXNzaWdubWVudHNOb2RlUXVlcnkoc3RlcE5vZGUpO1xuXG4gICAgaWYgKHN0ZXBWYXJpYWJsZUFzc2lnbm1lbnRzTm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgdmFyaWFibGVBc3NpZ25tZW50c05vZGUgPSBzdGVwVmFyaWFibGVBc3NpZ25tZW50c05vZGU7ICAvLy9cblxuICAgICAgdmFyaWFibGVBc3NpZ25tZW50cyA9IHZhcmlhYmxlQXNzaWdubWVudHNGcm9tVmFyaWFibGVBc3NpZ25tZW50c05vZGUodmFyaWFibGVBc3NpZ25tZW50c05vZGUsIGNvbnRleHQpO1xuICAgIH1cblxuICAgIHJldHVybiB2YXJpYWJsZUFzc2lnbm1lbnRzO1xuICB9XG59KTtcblxuZnVuY3Rpb24gdmFyaWFibGVBc3NpZ25tZW50c0Zyb21WYXJpYWJsZUFzc2lnbm1lbnRzTm9kZSh2YXJpYWJsZUFzc2lnbm1lbnRzTm9kZSwgY29udGV4dCkge1xuICBjb25zdCB7IFZhcmlhYmxlQXNzaWdubWVudHMgfSA9IGVsZW1lbnRzLFxuICAgICAgICB0eXBlID0gdHlwZUZyb21WYXJpYWJsZUFzc2lnbm1lbnRzTm9kZSh2YXJpYWJsZUFzc2lnbm1lbnRzTm9kZSwgY29udGV4dCksXG4gICAgICAgIGFycmF5ID0gYXJyYXlGcm9tVHlwZUFuZFZhcmlhYmxlQXNzaWdubWVudHNOb2RlKHR5cGUsIHZhcmlhYmxlQXNzaWdubWVudHNOb2RlLCBjb250ZXh0KSxcbiAgICAgICAgc3RyaW5nID0gc3RyaW5nRnJvbUFycmF5KGFycmF5LCBjb250ZXh0KSxcbiAgICAgICAgdmFyaWFibGVBc3NpZ25tZW50cyA9IG5ldyBWYXJpYWJsZUFzc2lnbm1lbnRzKHN0cmluZywgYXJyYXkpO1xuXG4gIHJldHVybiB2YXJpYWJsZUFzc2lnbm1lbnRzO1xufVxuXG5mdW5jdGlvbiBzdHJpbmdGcm9tQXJyYXkoYXJyYXksIGNvbnRleHQpIHtcbiAgY29uc3QgdmFyaWFibGVBc3NpZ25tZW50c1N0cmluZyA9IGFycmF5LnJlZHVjZSgodmFyaWFibGVBc3NpZ25tZW50c1N0cmluZywgdmFyaWFibGVBc3NpZ25tZW50KSA9PiB7XG4gICAgICAgICAgY29uc3QgdmFyaWFibGVBc3NpZ25tZW50U3RyaW5nID0gdmFyaWFibGVBc3NpZ25tZW50LmdldFN0cmluZygpO1xuXG4gICAgICAgICAgdmFyaWFibGVBc3NpZ25tZW50c1N0cmluZyA9ICh2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nID09PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGVBc3NpZ25tZW50U3RyaW5nIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYCR7dmFyaWFibGVBc3NpZ25tZW50c1N0cmluZ30sICR7dmFyaWFibGVBc3NpZ25tZW50U3RyaW5nfWA7XG5cbiAgICAgICAgICByZXR1cm4gdmFyaWFibGVBc3NpZ25tZW50c1N0cmluZztcbiAgICAgICAgfSwgbnVsbCksXG4gICAgICAgIHN0cmluZyA9IHZhcmlhYmxlQXNzaWdubWVudHNTdHJpbmc7IC8vL1xuXG4gIHJldHVybiBzdHJpbmc7XG59XG5cbmZ1bmN0aW9uIHR5cGVGcm9tVmFyaWFibGVBc3NpZ25tZW50c05vZGUodmFyaWFibGVBc3NpZ25tZW50c05vZGUsIGNvbnRleHQpIHtcbiAgY29uc3QgdHlwZVRlcm1pbmFsTm9kZSA9IHR5cGVUZXJtaW5hbE5vZGVRdWVyeSh2YXJpYWJsZUFzc2lnbm1lbnRzTm9kZSksXG4gICAgICAgIHR5cGVUZXJtaW5hbE5vZGVDb250ZW50ID0gdHlwZVRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCksXG4gICAgICAgIHR5cGUgPSB0eXBlVGVybWluYWxOb2RlQ29udGVudDsgLy8vXG5cbiAgcmV0dXJuIHR5cGU7XG59XG5cbmZ1bmN0aW9uIGFycmF5RnJvbVR5cGVBbmRWYXJpYWJsZUFzc2lnbm1lbnRzTm9kZSh0eXBlLCB2YXJpYWJsZUFzc2lnbm1lbnRzTm9kZSwgY29udGV4dCkge1xuICBjb25zdCB2YXJpYWJsZUFzc2lnbm1lbnROb2RlcyA9IHZhcmlhYmxlQXNzaWdubWVudE5vZGVzUXVlcnkodmFyaWFibGVBc3NpZ25tZW50c05vZGUpLFxuICAgICAgICBhcnJheSA9IHZhcmlhYmxlQXNzaWdubWVudE5vZGVzLm1hcCgodmFyaWFibGVBc3NpZ25tZW50Tm9kZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHsgVmFyaWFibGVBc3NpZ25tZW50IH0gPSBlbGVtZW50cyxcbiAgICAgICAgICAgICAgICB2YXJpYWJsZUFzc2lnbm1lbnQgPSBWYXJpYWJsZUFzc2lnbm1lbnQuZnJvbVR5cGVBbmRWYXJpYWJsZUFzc2lnbm1lbnROb2RlKHR5cGUsIHZhcmlhYmxlQXNzaWdubWVudE5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgICAgcmV0dXJuIHZhcmlhYmxlQXNzaWdubWVudDtcbiAgICAgICAgfSk7XG5cbiAgcmV0dXJuIGFycmF5O1xufVxuIl0sIm5hbWVzIjpbInR5cGVUZXJtaW5hbE5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInZhcmlhYmxlQXNzaWdubWVudE5vZGVzUXVlcnkiLCJub2Rlc1F1ZXJ5Iiwic3RlcFZhcmlhYmxlQXNzaWdubWVudHNOb2RlUXVlcnkiLCJkZWZpbmUiLCJWYXJpYWJsZUFzc2lnbm1lbnRzIiwic3RyaW5nIiwiYXJyYXkiLCJnZXRTdHJpbmciLCJnZXRBcnJheSIsImV2YWx1YXRlIiwiY29udGV4dCIsInZhcmlhYmxlQXNzaWdubWVudHNTdHJpbmciLCJ0cmFjZSIsImZvckVhY2giLCJ2YXJpYWJsZUFzc2lnbm1lbnQiLCJkZWJ1ZyIsImZyb21TdGVwTm9kZSIsInN0ZXBOb2RlIiwidmFyaWFibGVBc3NpZ25tZW50cyIsInN0ZXBWYXJpYWJsZUFzc2lnbm1lbnRzTm9kZSIsInZhcmlhYmxlQXNzaWdubWVudHNOb2RlIiwidmFyaWFibGVBc3NpZ25tZW50c0Zyb21WYXJpYWJsZUFzc2lnbm1lbnRzTm9kZSIsIm5hbWUiLCJlbGVtZW50cyIsInR5cGUiLCJ0eXBlRnJvbVZhcmlhYmxlQXNzaWdubWVudHNOb2RlIiwiYXJyYXlGcm9tVHlwZUFuZFZhcmlhYmxlQXNzaWdubWVudHNOb2RlIiwic3RyaW5nRnJvbUFycmF5IiwicmVkdWNlIiwidmFyaWFibGVBc3NpZ25tZW50U3RyaW5nIiwidHlwZVRlcm1pbmFsTm9kZSIsInR5cGVUZXJtaW5hbE5vZGVDb250ZW50IiwiZ2V0Q29udGVudCIsInZhcmlhYmxlQXNzaWdubWVudE5vZGVzIiwibWFwIiwidmFyaWFibGVBc3NpZ25tZW50Tm9kZSIsIlZhcmlhYmxlQXNzaWdubWVudCIsImZyb21UeXBlQW5kVmFyaWFibGVBc3NpZ25tZW50Tm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBV0E7OztlQUFBOzs7Z0VBVHFCO3FCQUdpQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXRDLElBQU1BLHdCQUF3QkMsSUFBQUEsZ0JBQVMsRUFBQywrQkFDbENDLCtCQUErQkMsSUFBQUEsaUJB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
@@ -0,0 +1,198 @@
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
+ var _elements = /*#__PURE__*/ _interop_require_wildcard(require("../../elements"));
12
+ var _exception = /*#__PURE__*/ _interop_require_default(require("../../exception"));
13
+ var _block = /*#__PURE__*/ _interop_require_default(require("../../context/block"));
14
+ var _query = require("../../utilities/query");
15
+ function _class_call_check(instance, Constructor) {
16
+ if (!(instance instanceof Constructor)) {
17
+ throw new TypeError("Cannot call a class as a function");
18
+ }
19
+ }
20
+ function _defineProperties(target, props) {
21
+ for(var i = 0; i < props.length; i++){
22
+ var descriptor = props[i];
23
+ descriptor.enumerable = descriptor.enumerable || false;
24
+ descriptor.configurable = true;
25
+ if ("value" in descriptor) descriptor.writable = true;
26
+ Object.defineProperty(target, descriptor.key, descriptor);
27
+ }
28
+ }
29
+ function _create_class(Constructor, protoProps, staticProps) {
30
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
31
+ if (staticProps) _defineProperties(Constructor, staticProps);
32
+ return Constructor;
33
+ }
34
+ function _define_property(obj, key, value) {
35
+ if (key in obj) {
36
+ Object.defineProperty(obj, key, {
37
+ value: value,
38
+ enumerable: true,
39
+ configurable: true,
40
+ writable: true
41
+ });
42
+ } else {
43
+ obj[key] = value;
44
+ }
45
+ return obj;
46
+ }
47
+ function _interop_require_default(obj) {
48
+ return obj && obj.__esModule ? obj : {
49
+ default: obj
50
+ };
51
+ }
52
+ function _getRequireWildcardCache(nodeInterop) {
53
+ if (typeof WeakMap !== "function") return null;
54
+ var cacheBabelInterop = new WeakMap();
55
+ var cacheNodeInterop = new WeakMap();
56
+ return (_getRequireWildcardCache = function(nodeInterop) {
57
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
58
+ })(nodeInterop);
59
+ }
60
+ function _interop_require_wildcard(obj, nodeInterop) {
61
+ if (!nodeInterop && obj && obj.__esModule) {
62
+ return obj;
63
+ }
64
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
65
+ return {
66
+ default: obj
67
+ };
68
+ }
69
+ var cache = _getRequireWildcardCache(nodeInterop);
70
+ if (cache && cache.has(obj)) {
71
+ return cache.get(obj);
72
+ }
73
+ var newObj = {
74
+ __proto__: null
75
+ };
76
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
77
+ for(var key in obj){
78
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
79
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
80
+ if (desc && (desc.get || desc.set)) {
81
+ Object.defineProperty(newObj, key, desc);
82
+ } else {
83
+ newObj[key] = obj[key];
84
+ }
85
+ }
86
+ }
87
+ newObj.default = obj;
88
+ if (cache) {
89
+ cache.set(obj, newObj);
90
+ }
91
+ return newObj;
92
+ }
93
+ var _ReturnBlock;
94
+ var stepNodesQuery = (0, _query.nodesQuery)("/returnBlock/step"), nonsenseNodesQuery = (0, _query.nodesQuery)("/returnBlock/nonsense"), expressionReturnBlockNodeQuery = (0, _query.nodeQuery)("/expression/returnBlock"), anonymousProcedureReturnBlockNodeQuery = (0, _query.nodeQuery)("/anonymousProcedure/returnBlock"), procedureDeclarationReturnBlockNodeQuery = (0, _query.nodeQuery)("/procedureDeclaration/returnBlock");
95
+ var _default = (0, _elements.define)((_ReturnBlock = /*#__PURE__*/ function() {
96
+ function ReturnBlock(string, steps, nonsensical, returnStatement) {
97
+ _class_call_check(this, ReturnBlock);
98
+ this.string = string;
99
+ this.steps = steps;
100
+ this.nonsensical = nonsensical;
101
+ this.returnStatement = returnStatement;
102
+ }
103
+ _create_class(ReturnBlock, [
104
+ {
105
+ key: "getString",
106
+ value: function getString() {
107
+ return this.string;
108
+ }
109
+ },
110
+ {
111
+ key: "getSteps",
112
+ value: function getSteps() {
113
+ return this.steps;
114
+ }
115
+ },
116
+ {
117
+ key: "isNonsensical",
118
+ value: function isNonsensical() {
119
+ return this.nonsensical;
120
+ }
121
+ },
122
+ {
123
+ key: "getReturnStatement",
124
+ value: function getReturnStatement() {
125
+ return this.returnStatement;
126
+ }
127
+ },
128
+ {
129
+ key: "evaluate",
130
+ value: function evaluate(variables, context) {
131
+ if (context === undefined) {
132
+ context = variables; ///
133
+ variables = [];
134
+ }
135
+ if (this.nonsensical) {
136
+ var message = "The return block is nonsensical.", exception = _exception.default.fromMessage(message);
137
+ throw exception;
138
+ }
139
+ var blockContext = _block.default.fromVariables(variables, context);
140
+ context = blockContext; ///
141
+ this.steps.forEach(function(step) {
142
+ step.evaluate(context);
143
+ });
144
+ var expression = this.returnStatement.evaluate(context);
145
+ return expression;
146
+ }
147
+ }
148
+ ], [
149
+ {
150
+ key: "fromExpressionNode",
151
+ value: function fromExpressionNode(expressionNode, context) {
152
+ var returnBlock = null;
153
+ var expressionReturnBlockNode = expressionReturnBlockNodeQuery(expressionNode);
154
+ if (expressionReturnBlockNode !== null) {
155
+ var returnBlockNode = expressionReturnBlockNode; ///
156
+ returnBlock = returnBlockFromReturnBlockNode(returnBlockNode, context);
157
+ }
158
+ return returnBlock;
159
+ }
160
+ },
161
+ {
162
+ key: "fromAnonymousProcedureNode",
163
+ value: function fromAnonymousProcedureNode(anonymousProcedureNode, context) {
164
+ var anonymousProcedureReturnBlockNode = anonymousProcedureReturnBlockNodeQuery(anonymousProcedureNode), returnBlockNode = anonymousProcedureReturnBlockNode, returnBlock = returnBlockFromReturnBlockNode(returnBlockNode, context);
165
+ return returnBlock;
166
+ }
167
+ },
168
+ {
169
+ key: "fromProcedureDeclarationNode",
170
+ value: function fromProcedureDeclarationNode(procedureDeclarationNode, context) {
171
+ var procedureDeclarationReturnBlockNode = procedureDeclarationReturnBlockNodeQuery(procedureDeclarationNode), returnBlockNode = procedureDeclarationReturnBlockNode, returnBlock = returnBlockFromReturnBlockNode(returnBlockNode, context);
172
+ return returnBlock;
173
+ }
174
+ }
175
+ ]);
176
+ return ReturnBlock;
177
+ }(), _define_property(_ReturnBlock, "name", "ReturnBlock"), _ReturnBlock));
178
+ function stringFromReturnStatement(returnStatement, context) {
179
+ var returnStatementString = returnStatement.getString(), string = "{ ... ".concat(returnStatementString, " }");
180
+ return string;
181
+ }
182
+ function stepsFromReturnBlockNode(returnBlockNode, context) {
183
+ var Step = _elements.default.Step, stepNodes = stepNodesQuery(returnBlockNode), steps = stepNodes.map(function(stepNode) {
184
+ var step = Step.fromStepNode(stepNode, context);
185
+ return step;
186
+ });
187
+ return steps;
188
+ }
189
+ function returnBlockFromReturnBlockNode(returnBlockNode, context) {
190
+ var ReturnBlock = _elements.default.ReturnBlock, ReturnStatement = _elements.default.ReturnStatement, returnStatement = ReturnStatement.fromReturnBlockNode(returnBlockNode, context), nonsensical = nonsensicalFromReturnBlockNode(returnBlockNode, context), steps = stepsFromReturnBlockNode(returnBlockNode, context), string = stringFromReturnStatement(returnStatement, context), returnBlock = new ReturnBlock(string, steps, nonsensical, returnStatement);
191
+ return returnBlock;
192
+ }
193
+ function nonsensicalFromReturnBlockNode(returnBlockNode, context) {
194
+ var nonsenseNodes = nonsenseNodesQuery(returnBlockNode), nonsenseNodesLength = nonsenseNodes.length, nonsensical = nonsenseNodesLength > 0;
195
+ return nonsensical;
196
+ }
197
+
198
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2Jsb2NrL3JldHVybi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IGVsZW1lbnRzIGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vLi4vZXhjZXB0aW9uXCI7XG5pbXBvcnQgQmxvY2tDb250ZXh0IGZyb20gXCIuLi8uLi9jb250ZXh0L2Jsb2NrXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi8uLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5LCBub2Rlc1F1ZXJ5IH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCBzdGVwTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvcmV0dXJuQmxvY2svc3RlcFwiKSxcbiAgICAgIG5vbnNlbnNlTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvcmV0dXJuQmxvY2svbm9uc2Vuc2VcIiksXG4gICAgICBleHByZXNzaW9uUmV0dXJuQmxvY2tOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvZXhwcmVzc2lvbi9yZXR1cm5CbG9ja1wiKSxcbiAgICAgIGFub255bW91c1Byb2NlZHVyZVJldHVybkJsb2NrTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2Fub255bW91c1Byb2NlZHVyZS9yZXR1cm5CbG9ja1wiKSxcbiAgICAgIHByb2NlZHVyZURlY2xhcmF0aW9uUmV0dXJuQmxvY2tOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvcHJvY2VkdXJlRGVjbGFyYXRpb24vcmV0dXJuQmxvY2tcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBSZXR1cm5CbG9jayB7XG4gIGNvbnN0cnVjdG9yKHN0cmluZywgc3RlcHMsIG5vbnNlbnNpY2FsLCByZXR1cm5TdGF0ZW1lbnQpIHtcbiAgICB0aGlzLnN0cmluZyA9IHN0cmluZztcbiAgICB0aGlzLnN0ZXBzID0gc3RlcHM7XG4gICAgdGhpcy5ub25zZW5zaWNhbCA9IG5vbnNlbnNpY2FsO1xuICAgIHRoaXMucmV0dXJuU3RhdGVtZW50ID0gcmV0dXJuU3RhdGVtZW50O1xuICB9XG5cbiAgZ2V0U3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnN0cmluZztcbiAgfVxuXG4gIGdldFN0ZXBzKCkge1xuICAgIHJldHVybiB0aGlzLnN0ZXBzO1xuICB9XG5cbiAgaXNOb25zZW5zaWNhbCgpIHtcbiAgICByZXR1cm4gdGhpcy5ub25zZW5zaWNhbDtcbiAgfVxuXG4gIGdldFJldHVyblN0YXRlbWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5yZXR1cm5TdGF0ZW1lbnQ7XG4gIH1cblxuICBldmFsdWF0ZSh2YXJpYWJsZXMsIGNvbnRleHQpIHtcbiAgICBpZiAoY29udGV4dCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb250ZXh0ID0gdmFyaWFibGVzOyAgLy8vXG5cbiAgICAgIHZhcmlhYmxlcyA9IFtdO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm5vbnNlbnNpY2FsKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSByZXR1cm4gYmxvY2sgaXMgbm9uc2Vuc2ljYWwuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IGJsb2NrQ29udGV4dCA9IEJsb2NrQ29udGV4dC5mcm9tVmFyaWFibGVzKHZhcmlhYmxlcywgY29udGV4dCk7XG5cbiAgICBjb250ZXh0ID0gYmxvY2tDb250ZXh0OyAvLy9cblxuICAgIHRoaXMuc3RlcHMuZm9yRWFjaCgoc3RlcCkgPT4ge1xuICAgICAgc3RlcC5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGV4cHJlc3Npb24gPSB0aGlzLnJldHVyblN0YXRlbWVudC5ldmFsdWF0ZShjb250ZXh0KTtcblxuICAgIHJldHVybiBleHByZXNzaW9uO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlJldHVybkJsb2NrXCI7XG5cbiAgc3RhdGljIGZyb21FeHByZXNzaW9uTm9kZShleHByZXNzaW9uTm9kZSwgY29udGV4dCkge1xuICAgIGxldCByZXR1cm5CbG9jayA9IG51bGw7XG5cbiAgICBjb25zdCBleHByZXNzaW9uUmV0dXJuQmxvY2tOb2RlID0gZXhwcmVzc2lvblJldHVybkJsb2NrTm9kZVF1ZXJ5KGV4cHJlc3Npb25Ob2RlKTtcblxuICAgIGlmIChleHByZXNzaW9uUmV0dXJuQmxvY2tOb2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCByZXR1cm5CbG9ja05vZGUgPSBleHByZXNzaW9uUmV0dXJuQmxvY2tOb2RlOyAgLy8vXG5cbiAgICAgIHJldHVybkJsb2NrID0gcmV0dXJuQmxvY2tGcm9tUmV0dXJuQmxvY2tOb2RlKHJldHVybkJsb2NrTm9kZSwgY29udGV4dCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJldHVybkJsb2NrO1xuICB9XG5cbiAgc3RhdGljIGZyb21Bbm9ueW1vdXNQcm9jZWR1cmVOb2RlKGFub255bW91c1Byb2NlZHVyZU5vZGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCBhbm9ueW1vdXNQcm9jZWR1cmVSZXR1cm5CbG9ja05vZGUgPSBhbm9ueW1vdXNQcm9jZWR1cmVSZXR1cm5CbG9ja05vZGVRdWVyeShhbm9ueW1vdXNQcm9jZWR1cmVOb2RlKSxcbiAgICAgICAgICByZXR1cm5CbG9ja05vZGUgPSBhbm9ueW1vdXNQcm9jZWR1cmVSZXR1cm5CbG9ja05vZGUsICAvLy9cbiAgICAgICAgICByZXR1cm5CbG9jayA9IHJldHVybkJsb2NrRnJvbVJldHVybkJsb2NrTm9kZShyZXR1cm5CbG9ja05vZGUsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHJldHVybkJsb2NrO1xuICB9XG5cbiAgc3RhdGljIGZyb21Qcm9jZWR1cmVEZWNsYXJhdGlvbk5vZGUocHJvY2VkdXJlRGVjbGFyYXRpb25Ob2RlLCBjb250ZXh0KSB7XG4gICAgY29uc3QgcHJvY2VkdXJlRGVjbGFyYXRpb25SZXR1cm5CbG9ja05vZGUgPSBwcm9jZWR1cmVEZWNsYXJhdGlvblJldHVybkJsb2NrTm9kZVF1ZXJ5KHByb2NlZHVyZURlY2xhcmF0aW9uTm9kZSksXG4gICAgICAgICAgcmV0dXJuQmxvY2tOb2RlID0gcHJvY2VkdXJlRGVjbGFyYXRpb25SZXR1cm5CbG9ja05vZGUsICAvLy9cbiAgICAgICAgICByZXR1cm5CbG9jayA9IHJldHVybkJsb2NrRnJvbVJldHVybkJsb2NrTm9kZShyZXR1cm5CbG9ja05vZGUsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHJldHVybkJsb2NrO1xuICB9XG59KTtcblxuZnVuY3Rpb24gc3RyaW5nRnJvbVJldHVyblN0YXRlbWVudChyZXR1cm5TdGF0ZW1lbnQsIGNvbnRleHQpIHtcbiAgY29uc3QgcmV0dXJuU3RhdGVtZW50U3RyaW5nID0gcmV0dXJuU3RhdGVtZW50LmdldFN0cmluZygpLFxuICAgICAgICBzdHJpbmcgPSBgeyAuLi4gJHtyZXR1cm5TdGF0ZW1lbnRTdHJpbmd9IH1gO1xuXG4gIHJldHVybiBzdHJpbmc7XG59XG5cbmZ1bmN0aW9uIHN0ZXBzRnJvbVJldHVybkJsb2NrTm9kZShyZXR1cm5CbG9ja05vZGUsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBTdGVwIH0gPSBlbGVtZW50cyxcbiAgICAgICAgc3RlcE5vZGVzID0gc3RlcE5vZGVzUXVlcnkocmV0dXJuQmxvY2tOb2RlKSxcbiAgICAgICAgc3RlcHMgPSBzdGVwTm9kZXMubWFwKChzdGVwTm9kZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHN0ZXAgPSBTdGVwLmZyb21TdGVwTm9kZShzdGVwTm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgICByZXR1cm4gc3RlcDtcbiAgICAgICAgfSk7XG5cbiAgcmV0dXJuIHN0ZXBzO1xufVxuXG5mdW5jdGlvbiByZXR1cm5CbG9ja0Zyb21SZXR1cm5CbG9ja05vZGUocmV0dXJuQmxvY2tOb2RlLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgUmV0dXJuQmxvY2ssIFJldHVyblN0YXRlbWVudCB9ID0gZWxlbWVudHMsXG4gICAgICAgIHJldHVyblN0YXRlbWVudCA9IFJldHVyblN0YXRlbWVudC5mcm9tUmV0dXJuQmxvY2tOb2RlKHJldHVybkJsb2NrTm9kZSwgY29udGV4dCksXG4gICAgICAgIG5vbnNlbnNpY2FsID0gbm9uc2Vuc2ljYWxGcm9tUmV0dXJuQmxvY2tOb2RlKHJldHVybkJsb2NrTm9kZSwgY29udGV4dCksXG4gICAgICAgIHN0ZXBzID0gc3RlcHNGcm9tUmV0dXJuQmxvY2tOb2RlKHJldHVybkJsb2NrTm9kZSwgY29udGV4dCksXG4gICAgICAgIHN0cmluZyA9IHN0cmluZ0Zyb21SZXR1cm5TdGF0ZW1lbnQocmV0dXJuU3RhdGVtZW50LCBjb250ZXh0KSxcbiAgICAgICAgcmV0dXJuQmxvY2sgPSBuZXcgUmV0dXJuQmxvY2soc3RyaW5nLCBzdGVwcywgbm9uc2Vuc2ljYWwsIHJldHVyblN0YXRlbWVudCk7XG5cbiAgcmV0dXJuIHJldHVybkJsb2NrO1xufVxuXG5mdW5jdGlvbiBub25zZW5zaWNhbEZyb21SZXR1cm5CbG9ja05vZGUocmV0dXJuQmxvY2tOb2RlLCBjb250ZXh0KSB7XG4gIGNvbnN0IG5vbnNlbnNlTm9kZXMgPSBub25zZW5zZU5vZGVzUXVlcnkocmV0dXJuQmxvY2tOb2RlKSxcbiAgICAgICAgbm9uc2Vuc2VOb2Rlc0xlbmd0aCA9IG5vbnNlbnNlTm9kZXMubGVuZ3RoLFxuICAgICAgICBub25zZW5zaWNhbCA9IChub25zZW5zZU5vZGVzTGVuZ3RoID4gMCk7XG5cbiAgcmV0dXJuIG5vbnNlbnNpY2FsO1xufVxuIl0sIm5hbWVzIjpbInN0ZXBOb2Rlc1F1ZXJ5Iiwibm9kZXNRdWVyeSIsIm5vbnNlbnNlTm9kZXNRdWVyeSIsImV4cHJlc3Npb25SZXR1cm5CbG9ja05vZGVRdWVyeSIsIm5vZGVRdWVyeSIsImFub255bW91c1Byb2NlZHVyZVJldHVybkJsb2NrTm9kZVF1ZXJ5IiwicHJvY2VkdXJlRGVjbGFyYXRpb25SZXR1cm5CbG9ja05vZGVRdWVyeSIsImRlZmluZSIsIlJldHVybkJsb2NrIiwic3RyaW5nIiwic3RlcHMiLCJub25zZW5zaWNhbCIsInJldHVyblN0YXRlbWVudCIsImdldFN0cmluZyIsImdldFN0ZXBzIiwiaXNOb25zZW5zaWNhbCIsImdldFJldHVyblN0YXRlbWVudCIsImV2YWx1YXRlIiwidmFyaWFibGVzIiwiY29udGV4dCIsInVuZGVmaW5lZCIsIm1lc3NhZ2UiLCJleGNlcHRpb24iLCJFeGNlcHRpb24iLCJmcm9tTWVzc2FnZSIsImJsb2NrQ29udGV4dCIsIkJsb2NrQ29udGV4dCIsImZyb21WYXJpYWJsZXMiLCJmb3JFYWNoIiwic3RlcCIsImV4cHJlc3Npb24iLCJmcm9tRXhwcmVzc2lvbk5vZGUiLCJleHByZXNzaW9uTm9kZSIsInJldHVybkJsb2NrIiwiZXhwcmVzc2lvblJldHVybkJsb2NrTm9kZSIsInJldHVybkJsb2NrTm9kZSIsInJldHVybkJsb2NrRnJvbVJldHVybkJsb2NrTm9kZSIsImZyb21Bbm9ueW1vdXNQcm9jZWR1cmVOb2RlIiwiYW5vbnltb3VzUHJvY2VkdXJlTm9kZSIsImFub255bW91c1Byb2NlZHVyZVJldHVybkJsb2NrTm9kZSIsImZyb21Qcm9jZWR1cmVEZWNsYXJhdGlvbk5vZGUiLCJwcm9jZWR1cmVEZWNsYXJhdGlvbk5vZGUiLCJwcm9jZWR1cmVEZWNsYXJhdGlvblJldHVybkJsb2NrTm9kZSIsIm5hbWUiLCJzdHJpbmdGcm9tUmV0dXJuU3RhdGVtZW50IiwicmV0dXJuU3RhdGVtZW50U3RyaW5nIiwic3RlcHNGcm9tUmV0dXJuQmxvY2tOb2RlIiwiU3RlcCIsImVsZW1lbnRzIiwic3RlcE5vZGVzIiwibWFwIiwic3RlcE5vZGUiLCJmcm9tU3RlcE5vZGUiLCJSZXR1cm5TdGF0ZW1lbnQiLCJmcm9tUmV0dXJuQmxvY2tOb2RlIiwibm9uc2Vuc2ljYWxGcm9tUmV0dXJuQmxvY2tOb2RlIiwibm9uc2Vuc2VOb2RlcyIsIm5vbnNlbnNlTm9kZXNMZW5ndGgiLCJsZW5ndGgiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWVBOzs7ZUFBQTs7O2dFQWJxQjtnRUFDQzs0REFDRztxQkFHYTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFdEMsSUFBTUEsaUJBQWlCQyxJQUFBQSxpQkFBVSxFQUFDLHNCQUM1QkMscUJBQXFCRCxJQUFBQSxpQkFBVSxFQUFDLDBCQUNoQ0UsaUNBQWlDQyxJQUFBQSxnQkFBUyxFQUFDLDRCQUMzQ0MseUNBQXlDRCxJQUFBQSxnQkFBUyxFQUFDLG9DQUNuREUsMkNBQTJDRixJQUFBQSxnQkFBUyxFQUFDO0lBRTNELFdBQWVHLElBQUFBLGdCQUFNLGdDQUFDO2FBQU1DLFlBQ2RDLE1BQU0sRUFBRUMsS0FBSyxFQUFFQyxXQUFXLEVBQUVDLGVBQWU7Z0NBRDdCSjtRQUV4QixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLEtBQUssR0FBR0E7UUFDYixJQUFJLENBQUNDLFdBQVcsR0FBR0E7UUFDbkIsSUFBSSxDQUFDQyxlQUFlLEdBQUdBOzs7O1lBR3pCQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNKLE1BQU07WUFDcEI7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNKLEtBQUs7WUFDbkI7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNKLFdBQVc7WUFDekI7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNKLGVBQWU7WUFDN0I7OztZQUVBSyxLQUFBQTttQkFBQUEsU0FBQUEsU0FBU0MsU0FBUyxFQUFFQyxPQUFPO2dCQUN6QixJQUFJQSxZQUFZQyxXQUFXO29CQUN6QkQsVUFBVUQsV0FBWSxHQUFHO29CQUV6QkEsWUFBWSxFQUFFO2dCQUNoQjtnQkFFQSxJQUFJLElBQUksQ0FBQ1AsV0FBVyxFQUFFO29CQUNwQixJQUFNVSxVQUFVLG9DQUNWQyxZQUFZQyxrQkFBUyxDQUFDQyxXQUFXLENBQUNIO29CQUV4QyxNQUFNQztnQkFDUjtnQkFFQSxJQUFNRyxlQUFlQyxjQUFZLENBQUNDLGFBQWEsQ0FBQ1QsV0FBV0M7Z0JBRTNEQSxVQUFVTSxjQUFjLEdBQUc7Z0JBRTNCLElBQUksQ0FBQ2YsS0FBSyxDQUFDa0IsT0FBTyxDQUFDLFNBQUNDO29CQUNsQkEsS0FBS1osUUFBUSxDQUFDRTtnQkFDaEI7Z0JBRUEsSUFBTVcsYUFBYSxJQUFJLENBQUNsQixlQUFlLENBQUNLLFFBQVEsQ0FBQ0U7Z0JBRWpELE9BQU9XO1lBQ1Q7Ozs7WUFJT0MsS0FBQUE7bUJBQVAsU0FBT0EsbUJBQW1CQyxjQUFjLEVBQUViLE9BQU87Z0JBQy9DLElBQUljLGNBQWM7Z0JBRWxCLElBQU1DLDRCQUE0Qi9CLCtCQUErQjZCO2dCQUVqRSxJQUFJRSw4QkFBOEIsTUFBTTtvQkFDdEMsSUFBTUMsa0JBQWtCRCwyQkFBNEIsR0FBRztvQkFFdkRELGNBQWNHLCtCQUErQkQsaUJBQWlCaEI7Z0JBQ2hFO2dCQUVBLE9BQU9jO1lBQ1Q7OztZQUVPSSxLQUFBQTttQkFBUCxTQUFPQSwyQkFBMkJDLHNCQUFzQixFQUFFbkIsT0FBTztnQkFDL0QsSUFBTW9CLG9DQUFvQ2xDLHVDQUF1Q2lDLHlCQUMzRUgsa0JBQWtCSSxtQ0FDbEJOLGNBQWNHLCtCQUErQkQsaUJBQWlCaEI7Z0JBRXBFLE9BQU9jO1lBQ1Q7OztZQUVPTyxLQUFBQTttQkFBUCxTQUFPQSw2QkFBNkJDLHdCQUF3QixFQUFFdEIsT0FBTztnQkFDbkUsSUFBTXVCLHNDQUFzQ3BDLHlDQUF5Q21DLDJCQUMvRU4sa0JBQWtCTyxxQ0FDbEJULGNBQWNHLCtCQUErQkQsaUJBQWlCaEI7Z0JBRXBFLE9BQU9jO1lBQ1Q7Ozs7S0E5QkEsK0JBQU9VLFFBQU87QUFpQ2hCLFNBQVNDLDBCQUEwQmhDLGVBQWUsRUFBRU8sT0FBTztJQUN6RCxJQUFNMEIsd0JBQXdCakMsZ0JBQWdCQyxTQUFTLElBQ2pESixTQUFTLEFBQUMsU0FBOEIsT0FBdEJvQyx1QkFBc0I7SUFFOUMsT0FBT3BDO0FBQ1Q7QUFFQSxTQUFTcUMseUJBQXlCWCxlQUFlLEVBQUVoQixPQUFPO0lBQ3hELElBQU0sQUFBRTRCLE9BQVNDLGlCQUFRLENBQWpCRCxNQUNGRSxZQUFZakQsZUFBZW1DLGtCQUMzQnpCLFFBQVF1QyxVQUFVQyxHQUFHLENBQUMsU0FBQ0M7UUFDckIsSUFBTXRCLE9BQU9rQixLQUFLSyxZQUFZLENBQUNELFVBQVVoQztRQUV6QyxPQUFPVTtJQUNUO0lBRU4sT0FBT25CO0FBQ1Q7QUFFQSxTQUFTMEIsK0JBQStCRCxlQUFlLEVBQUVoQixPQUFPO0lBQzlELElBQVFYLGNBQWlDd0MsaUJBQVEsQ0FBekN4QyxhQUFhNkMsa0JBQW9CTCxpQkFBUSxDQUE1QkssaUJBQ2Z6QyxrQkFBa0J5QyxnQkFBZ0JDLG1CQUFtQixDQUFDbkIsaUJBQWlCaEIsVUFDdkVSLGNBQWM0QywrQkFBK0JwQixpQkFBaUJoQixVQUM5RFQsUUFBUW9DLHlCQUF5QlgsaUJBQWlCaEIsVUFDbERWLFNBQVNtQywwQkFBMEJoQyxpQkFBaUJPLFVBQ3BEYyxjQUFjLElBQUl6QixZQUFZQyxRQUFRQyxPQUFPQyxhQUFhQztJQUVoRSxPQUFPcUI7QUFDVDtBQUVBLFNBQVNzQiwrQkFBK0JwQixlQUFlLEVBQUVoQixPQUFPO0lBQzlELElBQU1xQyxnQkFBZ0J0RCxtQkFBbUJpQyxrQkFDbkNzQixzQkFBc0JELGNBQWNFLE1BQU0sRUFDMUMvQyxjQUFlOEMsc0JBQXNCO0lBRTNDLE9BQU85QztBQUNUIn0=
@@ -0,0 +1,179 @@
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
+ var _elements = /*#__PURE__*/ _interop_require_wildcard(require("../elements"));
12
+ var _exception = /*#__PURE__*/ _interop_require_default(require("../exception"));
13
+ var _query = require("../utilities/query");
14
+ var _constants = require("../constants");
15
+ function _class_call_check(instance, Constructor) {
16
+ if (!(instance instanceof Constructor)) {
17
+ throw new TypeError("Cannot call a class as a function");
18
+ }
19
+ }
20
+ function _defineProperties(target, props) {
21
+ for(var i = 0; i < props.length; i++){
22
+ var descriptor = props[i];
23
+ descriptor.enumerable = descriptor.enumerable || false;
24
+ descriptor.configurable = true;
25
+ if ("value" in descriptor) descriptor.writable = true;
26
+ Object.defineProperty(target, descriptor.key, descriptor);
27
+ }
28
+ }
29
+ function _create_class(Constructor, protoProps, staticProps) {
30
+ if (protoProps) _defineProperties(Constructor.prototype, protoProps);
31
+ if (staticProps) _defineProperties(Constructor, staticProps);
32
+ return Constructor;
33
+ }
34
+ function _define_property(obj, key, value) {
35
+ if (key in obj) {
36
+ Object.defineProperty(obj, key, {
37
+ value: value,
38
+ enumerable: true,
39
+ configurable: true,
40
+ writable: true
41
+ });
42
+ } else {
43
+ obj[key] = value;
44
+ }
45
+ return obj;
46
+ }
47
+ function _interop_require_default(obj) {
48
+ return obj && obj.__esModule ? obj : {
49
+ default: obj
50
+ };
51
+ }
52
+ function _getRequireWildcardCache(nodeInterop) {
53
+ if (typeof WeakMap !== "function") return null;
54
+ var cacheBabelInterop = new WeakMap();
55
+ var cacheNodeInterop = new WeakMap();
56
+ return (_getRequireWildcardCache = function(nodeInterop) {
57
+ return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
58
+ })(nodeInterop);
59
+ }
60
+ function _interop_require_wildcard(obj, nodeInterop) {
61
+ if (!nodeInterop && obj && obj.__esModule) {
62
+ return obj;
63
+ }
64
+ if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
65
+ return {
66
+ default: obj
67
+ };
68
+ }
69
+ var cache = _getRequireWildcardCache(nodeInterop);
70
+ if (cache && cache.has(obj)) {
71
+ return cache.get(obj);
72
+ }
73
+ var newObj = {
74
+ __proto__: null
75
+ };
76
+ var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
77
+ for(var key in obj){
78
+ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
79
+ var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
80
+ if (desc && (desc.get || desc.set)) {
81
+ Object.defineProperty(newObj, key, desc);
82
+ } else {
83
+ newObj[key] = obj[key];
84
+ }
85
+ }
86
+ }
87
+ newObj.default = obj;
88
+ if (cache) {
89
+ cache.set(obj, newObj);
90
+ }
91
+ return newObj;
92
+ }
93
+ var _Comparison;
94
+ var terminalNodeQuery = (0, _query.nodeQuery)("/comparison/@*"), leftExpressionNodeQuery = (0, _query.nodeQuery)("/comparison/expression[0]"), rightExpressionNodeQuery = (0, _query.nodeQuery)("/comparison/expression[1]"), expressionComparisonNodeQuery = (0, _query.nodeQuery)("/expression/comparison");
95
+ var _default = (0, _elements.define)((_Comparison = /*#__PURE__*/ function() {
96
+ function Comparison(string, negated, leftExpression, rightExpression) {
97
+ _class_call_check(this, Comparison);
98
+ this.string = string;
99
+ this.negated = negated;
100
+ this.leftExpression = leftExpression;
101
+ this.rightExpression = rightExpression;
102
+ }
103
+ _create_class(Comparison, [
104
+ {
105
+ key: "getString",
106
+ value: function getString() {
107
+ return this.string;
108
+ }
109
+ },
110
+ {
111
+ key: "isNegated",
112
+ value: function isNegated() {
113
+ return this.negated;
114
+ }
115
+ },
116
+ {
117
+ key: "getLeftExpression",
118
+ value: function getLeftExpression() {
119
+ return this.leftExpression;
120
+ }
121
+ },
122
+ {
123
+ key: "getRightExpression",
124
+ value: function getRightExpression() {
125
+ return this.rightExpression;
126
+ }
127
+ },
128
+ {
129
+ key: "evaluate",
130
+ value: function evaluate(context) {
131
+ var expression;
132
+ var comparisonString = this.string; ///
133
+ context.trace("Evaluating the '".concat(comparisonString, "' comparison..."));
134
+ var leftExpression = this.leftExpression.evaluate(context), rightExpression = this.rightExpression.evaluate(context), leftExpressionType = leftExpression.getType(), rightExpressionType = rightExpression.getType();
135
+ if (leftExpressionType !== rightExpressionType) {
136
+ var leftExpressionString = leftExpression.asString(context), rightExpressionString = rightExpression.asString(context), message = "The ".concat(leftExpressionString, " left expression's type is '").concat(leftExpressionType, "' whereas the ").concat(rightExpressionString, " right expression's type is '").concat(rightExpressionType, "'."), exception = _exception.default.fromMessage(message);
137
+ throw exception;
138
+ }
139
+ var leftExpressionEqualToRightExpression = leftExpression.isEqualTo(rightExpression);
140
+ var boolean = leftExpressionEqualToRightExpression; ///
141
+ if (this.negated) {
142
+ boolean = !boolean; ///
143
+ }
144
+ var Expression = _elements.default.Expression;
145
+ expression = Expression.fromBoolean(boolean, context);
146
+ context.debug("...evaluated the '".concat(comparisonString, "' comparison."));
147
+ return expression;
148
+ }
149
+ }
150
+ ], [
151
+ {
152
+ key: "fromExpressionNode",
153
+ value: function fromExpressionNode(valudNode, context) {
154
+ var comparison = null;
155
+ var expressionComparisonNode = expressionComparisonNodeQuery(valudNode);
156
+ if (expressionComparisonNode !== null) {
157
+ var comparisonNode = expressionComparisonNode; ///
158
+ comparison = comparisonFromComparisonNode(comparisonNode, context);
159
+ }
160
+ return comparison;
161
+ }
162
+ }
163
+ ]);
164
+ return Comparison;
165
+ }(), _define_property(_Comparison, "name", "Comparison"), _Comparison));
166
+ function negatedFromComparisonNode(comparisonNode) {
167
+ var terminalNode = terminalNodeQuery(comparisonNode), terminalNodeContent = terminalNode.getContent(), negated = terminalNodeContent !== _constants.EQUAL_TO;
168
+ return negated;
169
+ }
170
+ function comparisonFromComparisonNode(comparisonNode, context) {
171
+ var Expression = _elements.default.Expression, Comparison = _elements.default.Comparison, leftExpressionNode = leftExpressionNodeQuery(comparisonNode), rightExpressionNode = rightExpressionNodeQuery(comparisonNode), rightExpression = Expression.fromExpressionNode(rightExpressionNode, context), leftExpression = Expression.fromExpressionNode(leftExpressionNode, context), negated = negatedFromComparisonNode(comparisonNode, context), string = stringFromNegatedLeftExpressionAndRightExpression(negated, leftExpression, rightExpression, context), comparison = new Comparison(string, negated, leftExpression, rightExpression);
172
+ return comparison;
173
+ }
174
+ function stringFromNegatedLeftExpressionAndRightExpression(negated, leftExpression, rightExpression, context) {
175
+ var operatorString = negated ? _constants.EQUAL_TO : _constants.NOT_EQUAL_TO, leftExpressionString = leftExpression.asString(context), rightExpressionString = rightExpression.asString(context), string = "".concat(leftExpressionString, " ").concat(operatorString, " ").concat(rightExpressionString);
176
+ return string;
177
+ }
178
+
179
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2NvbXBhcmlzb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBlbGVtZW50cyBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IEVRVUFMX1RPLCBOT1RfRVFVQUxfVE8gfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5cbmNvbnN0IHRlcm1pbmFsTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2NvbXBhcmlzb24vQCpcIiksXG4gICAgICBsZWZ0RXhwcmVzc2lvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9jb21wYXJpc29uL2V4cHJlc3Npb25bMF1cIiksXG4gICAgICByaWdodEV4cHJlc3Npb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvY29tcGFyaXNvbi9leHByZXNzaW9uWzFdXCIpLFxuICAgICAgZXhwcmVzc2lvbkNvbXBhcmlzb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvZXhwcmVzc2lvbi9jb21wYXJpc29uXCIpO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgQ29tcGFyaXNvbiB7XG4gIGNvbnN0cnVjdG9yKHN0cmluZywgbmVnYXRlZCwgbGVmdEV4cHJlc3Npb24sIHJpZ2h0RXhwcmVzc2lvbikge1xuICAgIHRoaXMuc3RyaW5nID0gc3RyaW5nO1xuICAgIHRoaXMubmVnYXRlZCA9IG5lZ2F0ZWQ7XG4gICAgdGhpcy5sZWZ0RXhwcmVzc2lvbiA9IGxlZnRFeHByZXNzaW9uO1xuICAgIHRoaXMucmlnaHRFeHByZXNzaW9uID0gcmlnaHRFeHByZXNzaW9uO1xuICB9XG5cbiAgZ2V0U3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnN0cmluZztcbiAgfVxuXG4gIGlzTmVnYXRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5uZWdhdGVkO1xuICB9XG5cbiAgZ2V0TGVmdEV4cHJlc3Npb24oKSB7XG4gICAgcmV0dXJuIHRoaXMubGVmdEV4cHJlc3Npb247XG4gIH1cblxuICBnZXRSaWdodEV4cHJlc3Npb24oKSB7XG4gICAgcmV0dXJuIHRoaXMucmlnaHRFeHByZXNzaW9uO1xuICB9XG5cbiAgZXZhbHVhdGUoY29udGV4dCkge1xuICAgIGxldCBleHByZXNzaW9uO1xuXG4gICAgY29uc3QgY29tcGFyaXNvblN0cmluZyA9IHRoaXMuc3RyaW5nOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYEV2YWx1YXRpbmcgdGhlICcke2NvbXBhcmlzb25TdHJpbmd9JyBjb21wYXJpc29uLi4uYCk7XG5cbiAgICBjb25zdCBsZWZ0RXhwcmVzc2lvbiA9IHRoaXMubGVmdEV4cHJlc3Npb24uZXZhbHVhdGUoY29udGV4dCksXG4gICAgICAgICAgcmlnaHRFeHByZXNzaW9uID0gdGhpcy5yaWdodEV4cHJlc3Npb24uZXZhbHVhdGUoY29udGV4dCksXG4gICAgICAgICAgbGVmdEV4cHJlc3Npb25UeXBlID0gbGVmdEV4cHJlc3Npb24uZ2V0VHlwZSgpLFxuICAgICAgICAgIHJpZ2h0RXhwcmVzc2lvblR5cGUgPSByaWdodEV4cHJlc3Npb24uZ2V0VHlwZSgpO1xuXG4gICAgaWYgKGxlZnRFeHByZXNzaW9uVHlwZSAhPT0gcmlnaHRFeHByZXNzaW9uVHlwZSkge1xuICAgICAgY29uc3QgbGVmdEV4cHJlc3Npb25TdHJpbmcgPSBsZWZ0RXhwcmVzc2lvbi5hc1N0cmluZyhjb250ZXh0KSxcbiAgICAgICAgICAgIHJpZ2h0RXhwcmVzc2lvblN0cmluZyA9IHJpZ2h0RXhwcmVzc2lvbi5hc1N0cmluZyhjb250ZXh0KSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICR7bGVmdEV4cHJlc3Npb25TdHJpbmd9IGxlZnQgZXhwcmVzc2lvbidzIHR5cGUgaXMgJyR7bGVmdEV4cHJlc3Npb25UeXBlfScgd2hlcmVhcyB0aGUgJHtyaWdodEV4cHJlc3Npb25TdHJpbmd9IHJpZ2h0IGV4cHJlc3Npb24ncyB0eXBlIGlzICcke3JpZ2h0RXhwcmVzc2lvblR5cGV9Jy5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3QgbGVmdEV4cHJlc3Npb25FcXVhbFRvUmlnaHRFeHByZXNzaW9uID0gbGVmdEV4cHJlc3Npb24uaXNFcXVhbFRvKHJpZ2h0RXhwcmVzc2lvbik7XG5cbiAgICBsZXQgYm9vbGVhbiA9IGxlZnRFeHByZXNzaW9uRXF1YWxUb1JpZ2h0RXhwcmVzc2lvbjsgLy8vXG5cbiAgICBpZiAodGhpcy5uZWdhdGVkKSB7XG4gICAgICBib29sZWFuID0gIWJvb2xlYW47IC8vL1xuICAgIH1cblxuICAgIGNvbnN0IHsgRXhwcmVzc2lvbiB9ID0gZWxlbWVudHM7XG5cbiAgICBleHByZXNzaW9uID0gRXhwcmVzc2lvbi5mcm9tQm9vbGVhbihib29sZWFuLCBjb250ZXh0KTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgJyR7Y29tcGFyaXNvblN0cmluZ30nIGNvbXBhcmlzb24uYCk7XG5cbiAgICByZXR1cm4gZXhwcmVzc2lvbjtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJDb21wYXJpc29uXCI7XG5cbiAgc3RhdGljIGZyb21FeHByZXNzaW9uTm9kZSh2YWx1ZE5vZGUsIGNvbnRleHQpIHtcbiAgICBsZXQgY29tcGFyaXNvbiA9IG51bGw7XG5cbiAgICBjb25zdCBleHByZXNzaW9uQ29tcGFyaXNvbk5vZGUgPSBleHByZXNzaW9uQ29tcGFyaXNvbk5vZGVRdWVyeSh2YWx1ZE5vZGUpO1xuXG4gICAgaWYgKGV4cHJlc3Npb25Db21wYXJpc29uTm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgY29tcGFyaXNvbk5vZGUgPSBleHByZXNzaW9uQ29tcGFyaXNvbk5vZGU7IC8vL1xuXG4gICAgICBjb21wYXJpc29uID0gY29tcGFyaXNvbkZyb21Db21wYXJpc29uTm9kZShjb21wYXJpc29uTm9kZSwgY29udGV4dCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbXBhcmlzb247XG4gIH1cbn0pO1xuXG5mdW5jdGlvbiBuZWdhdGVkRnJvbUNvbXBhcmlzb25Ob2RlKGNvbXBhcmlzb25Ob2RlKSB7XG4gIGNvbnN0IHRlcm1pbmFsTm9kZSA9IHRlcm1pbmFsTm9kZVF1ZXJ5KGNvbXBhcmlzb25Ob2RlKSxcbiAgICAgICAgdGVybWluYWxOb2RlQ29udGVudCA9IHRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCksXG4gICAgICAgIG5lZ2F0ZWQgPSAodGVybWluYWxOb2RlQ29udGVudCAhPT0gRVFVQUxfVE8pO1xuXG4gIHJldHVybiBuZWdhdGVkO1xufVxuXG5mdW5jdGlvbiBjb21wYXJpc29uRnJvbUNvbXBhcmlzb25Ob2RlKGNvbXBhcmlzb25Ob2RlLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgRXhwcmVzc2lvbiwgQ29tcGFyaXNvbiB9ID0gZWxlbWVudHMsXG4gICAgICAgIGxlZnRFeHByZXNzaW9uTm9kZSA9IGxlZnRFeHByZXNzaW9uTm9kZVF1ZXJ5KGNvbXBhcmlzb25Ob2RlKSxcbiAgICAgICAgcmlnaHRFeHByZXNzaW9uTm9kZSA9IHJpZ2h0RXhwcmVzc2lvbk5vZGVRdWVyeShjb21wYXJpc29uTm9kZSksXG4gICAgICAgIHJpZ2h0RXhwcmVzc2lvbiA9IEV4cHJlc3Npb24uZnJvbUV4cHJlc3Npb25Ob2RlKHJpZ2h0RXhwcmVzc2lvbk5vZGUsIGNvbnRleHQpLFxuICAgICAgICBsZWZ0RXhwcmVzc2lvbiA9IEV4cHJlc3Npb24uZnJvbUV4cHJlc3Npb25Ob2RlKGxlZnRFeHByZXNzaW9uTm9kZSwgY29udGV4dCksXG4gICAgICAgIG5lZ2F0ZWQgPSBuZWdhdGVkRnJvbUNvbXBhcmlzb25Ob2RlKGNvbXBhcmlzb25Ob2RlLCBjb250ZXh0KSxcbiAgICAgICAgc3RyaW5nID0gc3RyaW5nRnJvbU5lZ2F0ZWRMZWZ0RXhwcmVzc2lvbkFuZFJpZ2h0RXhwcmVzc2lvbihuZWdhdGVkLCBsZWZ0RXhwcmVzc2lvbiwgcmlnaHRFeHByZXNzaW9uLCBjb250ZXh0KSxcbiAgICAgICAgY29tcGFyaXNvbiA9IG5ldyBDb21wYXJpc29uKHN0cmluZywgbmVnYXRlZCwgbGVmdEV4cHJlc3Npb24sIHJpZ2h0RXhwcmVzc2lvbik7XG5cbiAgcmV0dXJuIGNvbXBhcmlzb247XG59XG5cbmZ1bmN0aW9uIHN0cmluZ0Zyb21OZWdhdGVkTGVmdEV4cHJlc3Npb25BbmRSaWdodEV4cHJlc3Npb24obmVnYXRlZCwgbGVmdEV4cHJlc3Npb24sIHJpZ2h0RXhwcmVzc2lvbiwgY29udGV4dCkge1xuICBjb25zdCBvcGVyYXRvclN0cmluZyA9IG5lZ2F0ZWQgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgRVFVQUxfVE8gOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5PVF9FUVVBTF9UTyxcbiAgICAgICAgbGVmdEV4cHJlc3Npb25TdHJpbmcgPSBsZWZ0RXhwcmVzc2lvbi5hc1N0cmluZyhjb250ZXh0KSxcbiAgICAgICAgcmlnaHRFeHByZXNzaW9uU3RyaW5nID0gcmlnaHRFeHByZXNzaW9uLmFzU3RyaW5nKGNvbnRleHQpLFxuICAgICAgICBzdHJpbmcgPSBgJHtsZWZ0RXhwcmVzc2lvblN0cmluZ30gJHtvcGVyYXRvclN0cmluZ30gJHtyaWdodEV4cHJlc3Npb25TdHJpbmd9YDtcblxuICByZXR1cm4gc3RyaW5nO1xufVxuIl0sIm5hbWVzIjpbInRlcm1pbmFsTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwibGVmdEV4cHJlc3Npb25Ob2RlUXVlcnkiLCJyaWdodEV4cHJlc3Npb25Ob2RlUXVlcnkiLCJleHByZXNzaW9uQ29tcGFyaXNvbk5vZGVRdWVyeSIsImRlZmluZSIsIkNvbXBhcmlzb24iLCJzdHJpbmciLCJuZWdhdGVkIiwibGVmdEV4cHJlc3Npb24iLCJyaWdodEV4cHJlc3Npb24iLCJnZXRTdHJpbmciLCJpc05lZ2F0ZWQiLCJnZXRMZWZ0RXhwcmVzc2lvbiIsImdldFJpZ2h0RXhwcmVzc2lvbiIsImV2YWx1YXRlIiwiY29udGV4dCIsImV4cHJlc3Npb24iLCJjb21wYXJpc29uU3RyaW5nIiwidHJhY2UiLCJsZWZ0RXhwcmVzc2lvblR5cGUiLCJnZXRUeXBlIiwicmlnaHRFeHByZXNzaW9uVHlwZSIsImxlZnRFeHByZXNzaW9uU3RyaW5nIiwiYXNTdHJpbmciLCJyaWdodEV4cHJlc3Npb25TdHJpbmciLCJtZXNzYWdlIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJsZWZ0RXhwcmVzc2lvbkVxdWFsVG9SaWdodEV4cHJlc3Npb24iLCJpc0VxdWFsVG8iLCJib29sZWFuIiwiRXhwcmVzc2lvbiIsImVsZW1lbnRzIiwiZnJvbUJvb2xlYW4iLCJkZWJ1ZyIsImZyb21FeHByZXNzaW9uTm9kZSIsInZhbHVkTm9kZSIsImNvbXBhcmlzb24iLCJleHByZXNzaW9uQ29tcGFyaXNvbk5vZGUiLCJjb21wYXJpc29uTm9kZSIsImNvbXBhcmlzb25Gcm9tQ29tcGFyaXNvbk5vZGUiLCJuYW1lIiwibmVnYXRlZEZyb21Db21wYXJpc29uTm9kZSIsInRlcm1pbmFsTm9kZSIsInRlcm1pbmFsTm9kZUNvbnRlbnQiLCJnZXRDb250ZW50IiwiRVFVQUxfVE8iLCJsZWZ0RXhwcmVzc2lvbk5vZGUiLCJyaWdodEV4cHJlc3Npb25Ob2RlIiwic3RyaW5nRnJvbU5lZ2F0ZWRMZWZ0RXhwcmVzc2lvbkFuZFJpZ2h0RXhwcmVzc2lvbiIsIm9wZXJhdG9yU3RyaW5nIiwiTk9UX0VRVUFMX1RPIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFjQTs7O2VBQUE7OztnRUFacUI7Z0VBQ0M7cUJBR0k7eUJBQ2E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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