occam-verify-cli 0.0.470 → 0.0.472

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 (55) hide show
  1. package/lib/constants.js +4 -8
  2. package/lib/context/file.js +9 -9
  3. package/lib/context/metaproof.js +38 -32
  4. package/lib/context/proof.js +35 -29
  5. package/lib/equality.js +22 -0
  6. package/lib/metaSubstitution.js +12 -52
  7. package/lib/rule.js +15 -19
  8. package/lib/step/metaproof.js +114 -0
  9. package/lib/step/proof.js +68 -0
  10. package/lib/substitution.js +16 -56
  11. package/lib/utilities/array.js +2 -5
  12. package/lib/utilities/node.js +105 -0
  13. package/lib/verify/antecedent.js +4 -4
  14. package/lib/verify/derivation.js +16 -18
  15. package/lib/verify/equality.js +18 -5
  16. package/lib/verify/metaDerivation.js +16 -18
  17. package/lib/verify/metaproof.js +10 -51
  18. package/lib/verify/metastatement/qualified.js +1 -7
  19. package/lib/verify/metastatement/unqualified.js +2 -9
  20. package/lib/verify/premiseOrPremises.js +4 -4
  21. package/lib/verify/proof.js +11 -52
  22. package/lib/verify/statement/qualified.js +1 -7
  23. package/lib/verify/statement/unqualified.js +2 -9
  24. package/package.json +1 -1
  25. package/src/constants.js +1 -2
  26. package/src/context/file.js +6 -6
  27. package/src/context/metaproof.js +32 -31
  28. package/src/context/proof.js +30 -29
  29. package/src/equality.js +8 -0
  30. package/src/metaSubstitution.js +16 -87
  31. package/src/rule.js +19 -26
  32. package/src/step/metaproof.js +99 -0
  33. package/src/step/proof.js +30 -0
  34. package/src/substitution.js +19 -90
  35. package/src/utilities/array.js +1 -1
  36. package/src/utilities/node.js +149 -0
  37. package/src/verify/antecedent.js +3 -3
  38. package/src/verify/derivation.js +17 -18
  39. package/src/verify/equality.js +29 -11
  40. package/src/verify/metaDerivation.js +17 -18
  41. package/src/verify/metaproof.js +20 -91
  42. package/src/verify/metastatement/qualified.js +0 -9
  43. package/src/verify/metastatement/unqualified.js +1 -12
  44. package/src/verify/premiseOrPremises.js +3 -3
  45. package/src/verify/proof.js +21 -92
  46. package/src/verify/statement/qualified.js +0 -9
  47. package/src/verify/statement/unqualified.js +1 -13
  48. package/lib/assertion.js +0 -147
  49. package/lib/metaAssertion.js +0 -200
  50. package/lib/utilities/metastatement.js +0 -45
  51. package/lib/utilities/statement.js +0 -45
  52. package/src/assertion.js +0 -150
  53. package/src/metaAssertion.js +0 -245
  54. package/src/utilities/metastatement.js +0 -50
  55. package/src/utilities/statement.js +0 -50
@@ -1,200 +0,0 @@
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 MetaAssertion;
9
- }
10
- });
11
- var _array = require("./utilities/array");
12
- var _query = require("./utilities/query");
13
- var _metastatement = require("./utilities/metastatement");
14
- function _classCallCheck(instance, Constructor) {
15
- if (!(instance instanceof Constructor)) {
16
- throw new TypeError("Cannot call a class as a function");
17
- }
18
- }
19
- function _defineProperties(target, props) {
20
- for(var i = 0; i < props.length; i++){
21
- var descriptor = props[i];
22
- descriptor.enumerable = descriptor.enumerable || false;
23
- descriptor.configurable = true;
24
- if ("value" in descriptor) descriptor.writable = true;
25
- Object.defineProperty(target, descriptor.key, descriptor);
26
- }
27
- }
28
- function _createClass(Constructor, protoProps, staticProps) {
29
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
30
- if (staticProps) _defineProperties(Constructor, staticProps);
31
- return Constructor;
32
- }
33
- var metastatementNodeQuery = (0, _query.nodeQuery)("/*/metastatement!"), metastatementNodesQuery = (0, _query.nodesQuery)("/metaSubproofAssertion/metastatement"), metaSubproofAssertionNodeQuery = (0, _query.nodeQuery)("/metastatement/metaSubproofAssertion"), qualifiedOrUnqualifiedMetastatementMetastatementNodesQuery = (0, _query.nodesQuery)("/metaSubproof/qualifiedMetastatement|unqualifiedMetastatement/metastatement!");
34
- var MetaAssertion = /*#__PURE__*/ function() {
35
- function MetaAssertion(metaSubproofNode, metastatementNode) {
36
- _classCallCheck(this, MetaAssertion);
37
- this.metaSubproofNode = metaSubproofNode;
38
- this.metastatementNode = metastatementNode;
39
- }
40
- _createClass(MetaAssertion, [
41
- {
42
- key: "getMetaSubproofNode",
43
- value: function getMetaSubproofNode() {
44
- return this.metaSubproofNode;
45
- }
46
- },
47
- {
48
- key: "getMetastatementNode",
49
- value: function getMetastatementNode() {
50
- return this.metastatementNode;
51
- }
52
- },
53
- {
54
- key: "match",
55
- value: function match(metaAssertion) {
56
- var matches = false;
57
- var metastatementNode = metaAssertion.getMetastatementNode();
58
- if (metastatementNode !== null) {
59
- var metaSubproofAssertionNode = metaSubproofAssertionNodeQuery(metastatementNode);
60
- if (metaSubproofAssertionNode === null) {
61
- var metastatementNodeMatches = this.matchMetastatementNode(metastatementNode);
62
- matches = metastatementNodeMatches; ///
63
- } else {
64
- var metaSubproofAssertionNodeMatches = this.matchMetaSubproofAssertionNode(metaSubproofAssertionNode);
65
- matches = metaSubproofAssertionNodeMatches; ///
66
- }
67
- }
68
- return matches;
69
- }
70
- },
71
- {
72
- key: "matchMetastatementNode",
73
- value: function matchMetastatementNode(metastatementNode) {
74
- var metastatementNodeMatches = false;
75
- if (this.metastatementNode !== null) {
76
- var topmostMetastatementNode = metastatementNode, topmostMetaAssertionMetastatementNode = this.metastatementNode, topmostMetaAssertionMetastatementNodeMatches = matchTopmostMetaAssertionMetastatementNode(topmostMetaAssertionMetastatementNode, topmostMetastatementNode);
77
- metastatementNodeMatches = topmostMetaAssertionMetastatementNodeMatches; ///
78
- }
79
- return metastatementNodeMatches;
80
- }
81
- },
82
- {
83
- key: "matchMetaSubproofAssertionNode",
84
- value: function matchMetaSubproofAssertionNode(metaSubproofAssertionNode) {
85
- var metaSubproofAssertionNodeMatches = false;
86
- if (this.metaSubproofNode !== null) {
87
- var metaSubproofAssertionMetastatementNodes = metastatementNodesQuery(metaSubproofAssertionNode), firstMetaSubproofAssertionMetastatementNode = (0, _array.first)(metaSubproofAssertionMetastatementNodes), qualifiedOrUnqualifiedMetastatementMetastatementNodes = qualifiedOrUnqualifiedMetastatementMetastatementNodesQuery(this.metaSubproofNode), firstQualifiedOrUnqualifiedMetastatementMetastatementNode = (0, _array.first)(qualifiedOrUnqualifiedMetastatementMetastatementNodes);
88
- var topmostMetastatementNode = firstMetaSubproofAssertionMetastatementNode, topmostMetaAssertionMetastatementNode = firstQualifiedOrUnqualifiedMetastatementMetastatementNode, topmostMetaAssertionMetastatementNodeMatches = matchTopmostMetaAssertionMetastatementNode(topmostMetaAssertionMetastatementNode, topmostMetastatementNode);
89
- if (topmostMetaAssertionMetastatementNodeMatches) {
90
- var secondMetaSubproofAssertionMetastatementNode = (0, _array.second)(metaSubproofAssertionMetastatementNodes), secondQualifiedOrUnqualifiedMetastatementMetastatementNode = (0, _array.second)(qualifiedOrUnqualifiedMetastatementMetastatementNodes);
91
- var topmostMetastatementNode1 = secondMetaSubproofAssertionMetastatementNode, topmostMetaAssertionMetastatementNode1 = secondQualifiedOrUnqualifiedMetastatementMetastatementNode, topmostMetaAssertionMetastatementNodeMatches1 = matchTopmostMetaAssertionMetastatementNode(topmostMetaAssertionMetastatementNode1, topmostMetastatementNode1);
92
- metaSubproofAssertionNodeMatches = topmostMetaAssertionMetastatementNodeMatches1; ///
93
- }
94
- }
95
- return metaSubproofAssertionNodeMatches;
96
- }
97
- }
98
- ], [
99
- {
100
- key: "fromMetaSubproofNode",
101
- value: function fromMetaSubproofNode(metaSubproofNode) {
102
- var metastatementNode = null, metaAssertion = new MetaAssertion(metaSubproofNode, metastatementNode);
103
- return metaAssertion;
104
- }
105
- },
106
- {
107
- key: "fromMetastatementNode",
108
- value: function fromMetastatementNode(metastatementNode) {
109
- var metaSubproofNode = null, metaAssertion = new MetaAssertion(metaSubproofNode, metastatementNode);
110
- return metaAssertion;
111
- }
112
- },
113
- {
114
- key: "fromQualifiedMetastatementNode",
115
- value: function fromQualifiedMetastatementNode(qualifiedMetastatementNode) {
116
- var metaSubproofNode = null, metastatementNode = metastatementNodeQuery(qualifiedMetastatementNode), metaAssertion = new MetaAssertion(metaSubproofNode, metastatementNode);
117
- return metaAssertion;
118
- }
119
- },
120
- {
121
- key: "fromUnqualifiedMetastatementNode",
122
- value: function fromUnqualifiedMetastatementNode(unqualifiedMetastatementNode) {
123
- var metaSubproofNode = null, metastatementNode = metastatementNodeQuery(unqualifiedMetastatementNode), metaAssertion = new MetaAssertion(metaSubproofNode, metastatementNode);
124
- return metaAssertion;
125
- }
126
- }
127
- ]);
128
- return MetaAssertion;
129
- }();
130
- function matchMetaAssertionNode(metaAssertionNode, node) {
131
- var metaAssertionNodeMatches = false;
132
- var nodeTerminalNode = node.isTerminalNode(), ruleNodeTerminalNode = metaAssertionNode.isTerminalNode();
133
- if (nodeTerminalNode === ruleNodeTerminalNode) {
134
- if (nodeTerminalNode) {
135
- var terminalNode = node, metaAssertionTerminalNode = metaAssertionNode, metaAssertionTerminalNodeMatches = matchMetaAssertionTerminalNode(metaAssertionTerminalNode, terminalNode);
136
- metaAssertionNodeMatches = metaAssertionTerminalNodeMatches; ///
137
- } else {
138
- var nonTerminalNode = node, metaAssertionNonTerminalNode = metaAssertionNode, metaAssertionNonTerminalNodeMatches = matchMetaAssertionNonTerminalNode(metaAssertionNonTerminalNode, nonTerminalNode);
139
- metaAssertionNodeMatches = metaAssertionNonTerminalNodeMatches; ///
140
- }
141
- }
142
- return metaAssertionNodeMatches;
143
- }
144
- function matchMetaAssertionNodes(metaAssertionNodes, nodes) {
145
- var metaAssertionNodesMatches = false;
146
- var nodesLength = nodes.length, metaAssertionNodesLength = metaAssertionNodes.length;
147
- if (nodesLength === metaAssertionNodesLength) {
148
- metaAssertionNodesMatches = nodes.every(function(node, index) {
149
- var metaAssertionNode = metaAssertionNodes[index], metaAssertionNodeMatches = matchMetaAssertionNode(metaAssertionNode, node);
150
- if (metaAssertionNodeMatches) {
151
- return true;
152
- }
153
- });
154
- }
155
- return metaAssertionNodesMatches;
156
- }
157
- function matchMetaAssertionTerminalNode(metaAssertionTerminalNode, terminalNode) {
158
- var metaAssertionTerminalNodeMatches = false;
159
- var matches = metaAssertionTerminalNode.match(terminalNode);
160
- if (matches) {
161
- metaAssertionTerminalNodeMatches = true;
162
- }
163
- return metaAssertionTerminalNodeMatches;
164
- }
165
- function matchMetaAssertionNonTerminalNode(metaAssertionNonTerminalNode, nonTerminalNode) {
166
- var metaAssertionNonTerminalNodeMatches = false;
167
- var ruleName = nonTerminalNode.getRuleName(), metaAssertionRuleName = metaAssertionNonTerminalNode.getRuleName(); ///
168
- if (ruleName === metaAssertionRuleName) {
169
- var childNodes = nonTerminalNode.getChildNodes(), nodes = childNodes, metaAssertionChildNodes = metaAssertionNonTerminalNode.getChildNodes(), metaAssertionNodes = metaAssertionChildNodes, metaAssertionNodesMatches = matchMetaAssertionNodes(metaAssertionNodes, nodes);
170
- metaAssertionNonTerminalNodeMatches = metaAssertionNodesMatches; ///
171
- }
172
- return metaAssertionNonTerminalNodeMatches;
173
- }
174
- function matchMetaAssertionMetastatementNode(metaAssertionMetastatementNode, metastatementNode) {
175
- var nonTerminalNode = metastatementNode, metaAssertionNonTerminalNode = metaAssertionMetastatementNode, metaAssertionNonTerminalNodeMatches = matchMetaAssertionNonTerminalNode(metaAssertionNonTerminalNode, nonTerminalNode), metaAssertionMetastatementNodeNatches = metaAssertionNonTerminalNodeMatches; ///
176
- return metaAssertionMetastatementNodeNatches;
177
- }
178
- function matchTopmostMetaAssertionMetastatementNode(topmostMetaAssertionMetastatementNode, topmostMetastatementNode) {
179
- var metaAssertionMetastatementNodeMatches;
180
- var metastatementNode = topmostMetastatementNode, metaAssertionMetastatementNode = topmostMetaAssertionMetastatementNode; ///
181
- metaAssertionMetastatementNodeMatches = matchMetaAssertionMetastatementNode(metaAssertionMetastatementNode, metastatementNode);
182
- if (!metaAssertionMetastatementNodeMatches) {
183
- var nonTerminalNode = metastatementNode, childNodes = nonTerminalNode, bracketedMetastatementChildNodeMatches = (0, _metastatement.matchBracketedMetastatementChildNode)(childNodes, function(bracketedMetastatementChildNode) {
184
- var metastatementNode = bracketedMetastatementChildNode, metaAssertionMetastatementNodeMatches = matchMetaAssertionMetastatementNode(metaAssertionMetastatementNode, metastatementNode), bracketedMetastatementChildNodeMatches = metaAssertionMetastatementNodeMatches;
185
- return bracketedMetastatementChildNodeMatches;
186
- });
187
- metaAssertionMetastatementNodeMatches = bracketedMetastatementChildNodeMatches; ///
188
- }
189
- if (!metaAssertionMetastatementNodeMatches) {
190
- var metaAssertionNonTerminalNode = metaAssertionMetastatementNode, metaAssertionChildNodes = metaAssertionNonTerminalNode.getChildNodes(), bracketedMetaAssertionMetastatementChildNodeMatches = (0, _metastatement.matchBracketedMetastatementChildNode)(metaAssertionChildNodes, function(bracketedMetaAssertionMetastatementChildNode) {
191
- var metaAssertionMetastatementNode = bracketedMetaAssertionMetastatementChildNode, metaAssertionMetastatementNodeMatches = matchMetaAssertionMetastatementNode(metaAssertionMetastatementNode, metastatementNode), bracketedMetaAssertionMetastatementChildNodeMatches = metaAssertionMetastatementNodeMatches;
192
- return bracketedMetaAssertionMetastatementChildNodeMatches;
193
- });
194
- metaAssertionMetastatementNodeMatches = bracketedMetaAssertionMetastatementChildNodeMatches; ///
195
- }
196
- var topmostMetaAssertionMetastatementNodeMatches = metaAssertionMetastatementNodeMatches; ///
197
- return topmostMetaAssertionMetastatementNodeMatches;
198
- }
199
-
200
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tZXRhQXNzZXJ0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBmaXJzdCwgc2Vjb25kIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2FycmF5XCI7XG5pbXBvcnQgeyBub2RlUXVlcnksIG5vZGVzUXVlcnkgfSBmcm9tIFwiLi91dGlsaXRpZXMvcXVlcnlcIjtcbmltcG9ydCB7IG1hdGNoQnJhY2tldGVkTWV0YXN0YXRlbWVudENoaWxkTm9kZSB9IGZyb20gXCIuL3V0aWxpdGllcy9tZXRhc3RhdGVtZW50XCI7XG5cbmNvbnN0IG1ldGFzdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvKi9tZXRhc3RhdGVtZW50IVwiKSxcbiAgICAgIG1ldGFzdGF0ZW1lbnROb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9tZXRhU3VicHJvb2ZBc3NlcnRpb24vbWV0YXN0YXRlbWVudFwiKSxcbiAgICAgIG1ldGFTdWJwcm9vZkFzc2VydGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9tZXRhc3RhdGVtZW50L21ldGFTdWJwcm9vZkFzc2VydGlvblwiKSxcbiAgICAgIHF1YWxpZmllZE9yVW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50TWV0YXN0YXRlbWVudE5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiL21ldGFTdWJwcm9vZi9xdWFsaWZpZWRNZXRhc3RhdGVtZW50fHVucXVhbGlmaWVkTWV0YXN0YXRlbWVudC9tZXRhc3RhdGVtZW50IVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTWV0YUFzc2VydGlvbiB7XG4gIGNvbnN0cnVjdG9yKG1ldGFTdWJwcm9vZk5vZGUsIG1ldGFzdGF0ZW1lbnROb2RlKSB7XG4gICAgdGhpcy5tZXRhU3VicHJvb2ZOb2RlID0gbWV0YVN1YnByb29mTm9kZTtcbiAgICB0aGlzLm1ldGFzdGF0ZW1lbnROb2RlID0gbWV0YXN0YXRlbWVudE5vZGU7XG4gIH1cblxuICBnZXRNZXRhU3VicHJvb2ZOb2RlKCkge1xuICAgIHJldHVybiB0aGlzLm1ldGFTdWJwcm9vZk5vZGU7XG4gIH1cblxuICBnZXRNZXRhc3RhdGVtZW50Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRhc3RhdGVtZW50Tm9kZTtcbiAgfVxuXG4gIG1hdGNoKG1ldGFBc3NlcnRpb24pIHtcbiAgICBsZXQgbWF0Y2hlcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgbWV0YXN0YXRlbWVudE5vZGUgPSBtZXRhQXNzZXJ0aW9uLmdldE1ldGFzdGF0ZW1lbnROb2RlKCk7XG5cbiAgICBpZiAobWV0YXN0YXRlbWVudE5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IG1ldGFTdWJwcm9vZkFzc2VydGlvbk5vZGUgPSBtZXRhU3VicHJvb2ZBc3NlcnRpb25Ob2RlUXVlcnkobWV0YXN0YXRlbWVudE5vZGUpO1xuXG4gICAgICBpZiAobWV0YVN1YnByb29mQXNzZXJ0aW9uTm9kZSA9PT0gbnVsbCkge1xuICAgICAgICBjb25zdCBtZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXMgPSB0aGlzLm1hdGNoTWV0YXN0YXRlbWVudE5vZGUobWV0YXN0YXRlbWVudE5vZGUpO1xuXG4gICAgICAgIG1hdGNoZXMgPSBtZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXM7ICAvLy9cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IG1ldGFTdWJwcm9vZkFzc2VydGlvbk5vZGVNYXRjaGVzID0gdGhpcy5tYXRjaE1ldGFTdWJwcm9vZkFzc2VydGlvbk5vZGUobWV0YVN1YnByb29mQXNzZXJ0aW9uTm9kZSk7XG5cbiAgICAgICAgbWF0Y2hlcyA9IG1ldGFTdWJwcm9vZkFzc2VydGlvbk5vZGVNYXRjaGVzOyAvLy9cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbWF0Y2hlcztcbiAgfVxuXG4gIG1hdGNoTWV0YXN0YXRlbWVudE5vZGUobWV0YXN0YXRlbWVudE5vZGUpIHtcbiAgICBsZXQgbWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzID0gZmFsc2U7XG5cbiAgICBpZiAodGhpcy5tZXRhc3RhdGVtZW50Tm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgdG9wbW9zdE1ldGFzdGF0ZW1lbnROb2RlID0gbWV0YXN0YXRlbWVudE5vZGUsIC8vL1xuICAgICAgICAgICAgdG9wbW9zdE1ldGFBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZSA9IHRoaXMubWV0YXN0YXRlbWVudE5vZGUsICAvLy9cbiAgICAgICAgICAgIHRvcG1vc3RNZXRhQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzID0gbWF0Y2hUb3Btb3N0TWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlKHRvcG1vc3RNZXRhQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGUsIHRvcG1vc3RNZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgICAgIG1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IHRvcG1vc3RNZXRhQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzOyAgLy8vXG4gICAgfVxuXG4gICAgcmV0dXJuIG1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcztcbiAgfVxuXG4gIG1hdGNoTWV0YVN1YnByb29mQXNzZXJ0aW9uTm9kZShtZXRhU3VicHJvb2ZBc3NlcnRpb25Ob2RlKSB7XG4gICAgbGV0IG1ldGFTdWJwcm9vZkFzc2VydGlvbk5vZGVNYXRjaGVzID0gZmFsc2U7XG5cbiAgICBpZiAodGhpcy5tZXRhU3VicHJvb2ZOb2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBtZXRhU3VicHJvb2ZBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZXMgPSBtZXRhc3RhdGVtZW50Tm9kZXNRdWVyeShtZXRhU3VicHJvb2ZBc3NlcnRpb25Ob2RlKSxcbiAgICAgICAgICAgIGZpcnN0TWV0YVN1YnByb29mQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGUgPSBmaXJzdChtZXRhU3VicHJvb2ZBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZXMpLFxuICAgICAgICAgICAgcXVhbGlmaWVkT3JVbnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRNZXRhc3RhdGVtZW50Tm9kZXMgPSBxdWFsaWZpZWRPclVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE1ldGFzdGF0ZW1lbnROb2Rlc1F1ZXJ5KHRoaXMubWV0YVN1YnByb29mTm9kZSksXG4gICAgICAgICAgICBmaXJzdFF1YWxpZmllZE9yVW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50TWV0YXN0YXRlbWVudE5vZGUgPSBmaXJzdChxdWFsaWZpZWRPclVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE1ldGFzdGF0ZW1lbnROb2Rlcyk7XG5cbiAgICAgIGNvbnN0IHRvcG1vc3RNZXRhc3RhdGVtZW50Tm9kZSA9IGZpcnN0TWV0YVN1YnByb29mQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGUsICAvLy9cbiAgICAgICAgICAgIHRvcG1vc3RNZXRhQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGUgPSBmaXJzdFF1YWxpZmllZE9yVW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50TWV0YXN0YXRlbWVudE5vZGUsIC8vL1xuICAgICAgICAgICAgdG9wbW9zdE1ldGFBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXMgPSBtYXRjaFRvcG1vc3RNZXRhQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGUodG9wbW9zdE1ldGFBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZSwgdG9wbW9zdE1ldGFzdGF0ZW1lbnROb2RlKTtcblxuICAgICAgaWYgKHRvcG1vc3RNZXRhQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzKSB7XG4gICAgICAgIGNvbnN0IHNlY29uZE1ldGFTdWJwcm9vZkFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlID0gc2Vjb25kKG1ldGFTdWJwcm9vZkFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlcyksXG4gICAgICAgICAgICAgIHNlY29uZFF1YWxpZmllZE9yVW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50TWV0YXN0YXRlbWVudE5vZGUgPSBzZWNvbmQocXVhbGlmaWVkT3JVbnF1YWxpZmllZE1ldGFzdGF0ZW1lbnRNZXRhc3RhdGVtZW50Tm9kZXMpO1xuXG4gICAgICAgIGNvbnN0IHRvcG1vc3RNZXRhc3RhdGVtZW50Tm9kZSA9IHNlY29uZE1ldGFTdWJwcm9vZkFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlLCAvLy9cbiAgICAgICAgICAgICAgdG9wbW9zdE1ldGFBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZSA9IHNlY29uZFF1YWxpZmllZE9yVW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50TWV0YXN0YXRlbWVudE5vZGUsIC8vL1xuICAgICAgICAgICAgICB0b3Btb3N0TWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IG1hdGNoVG9wbW9zdE1ldGFBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZSh0b3Btb3N0TWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlLCB0b3Btb3N0TWV0YXN0YXRlbWVudE5vZGUpO1xuXG4gICAgICAgIG1ldGFTdWJwcm9vZkFzc2VydGlvbk5vZGVNYXRjaGVzID0gdG9wbW9zdE1ldGFBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXM7IC8vL1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBtZXRhU3VicHJvb2ZBc3NlcnRpb25Ob2RlTWF0Y2hlcztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTWV0YVN1YnByb29mTm9kZShtZXRhU3VicHJvb2ZOb2RlKSB7XG4gICAgY29uc3QgbWV0YXN0YXRlbWVudE5vZGUgPSBudWxsLFxuICAgICAgICAgIG1ldGFBc3NlcnRpb24gPSBuZXcgTWV0YUFzc2VydGlvbihtZXRhU3VicHJvb2ZOb2RlLCBtZXRhc3RhdGVtZW50Tm9kZSk7XG5cbiAgICByZXR1cm4gbWV0YUFzc2VydGlvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTWV0YXN0YXRlbWVudE5vZGUobWV0YXN0YXRlbWVudE5vZGUpIHtcbiAgICBjb25zdCBtZXRhU3VicHJvb2ZOb2RlID0gbnVsbCxcbiAgICAgICAgICBtZXRhQXNzZXJ0aW9uID0gbmV3IE1ldGFBc3NlcnRpb24obWV0YVN1YnByb29mTm9kZSwgbWV0YXN0YXRlbWVudE5vZGUpO1xuXG4gICAgcmV0dXJuIG1ldGFBc3NlcnRpb247XG4gIH1cblxuICBzdGF0aWMgZnJvbVF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlKHF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlKSB7XG4gICAgY29uc3QgbWV0YVN1YnByb29mTm9kZSA9IG51bGwsXG4gICAgICAgICAgbWV0YXN0YXRlbWVudE5vZGUgPSBtZXRhc3RhdGVtZW50Tm9kZVF1ZXJ5KHF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICBtZXRhQXNzZXJ0aW9uID0gbmV3IE1ldGFBc3NlcnRpb24obWV0YVN1YnByb29mTm9kZSwgbWV0YXN0YXRlbWVudE5vZGUpO1xuXG4gICAgcmV0dXJuIG1ldGFBc3NlcnRpb247XG4gIH1cblxuICBzdGF0aWMgZnJvbVVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGUodW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSkge1xuICAgIGNvbnN0IG1ldGFTdWJwcm9vZk5vZGUgPSBudWxsLFxuICAgICAgICAgIG1ldGFzdGF0ZW1lbnROb2RlID0gbWV0YXN0YXRlbWVudE5vZGVRdWVyeSh1bnF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICBtZXRhQXNzZXJ0aW9uID0gbmV3IE1ldGFBc3NlcnRpb24obWV0YVN1YnByb29mTm9kZSwgbWV0YXN0YXRlbWVudE5vZGUpO1xuXG4gICAgcmV0dXJuIG1ldGFBc3NlcnRpb247XG4gIH1cbn1cblxuZnVuY3Rpb24gbWF0Y2hNZXRhQXNzZXJ0aW9uTm9kZShtZXRhQXNzZXJ0aW9uTm9kZSwgbm9kZSkge1xuICBsZXQgbWV0YUFzc2VydGlvbk5vZGVNYXRjaGVzID0gZmFsc2U7XG5cbiAgY29uc3Qgbm9kZVRlcm1pbmFsTm9kZSA9IG5vZGUuaXNUZXJtaW5hbE5vZGUoKSxcbiAgICAgICAgcnVsZU5vZGVUZXJtaW5hbE5vZGUgPSBtZXRhQXNzZXJ0aW9uTm9kZS5pc1Rlcm1pbmFsTm9kZSgpO1xuXG4gIGlmIChub2RlVGVybWluYWxOb2RlID09PSBydWxlTm9kZVRlcm1pbmFsTm9kZSkge1xuICAgIGlmIChub2RlVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCB0ZXJtaW5hbE5vZGUgPSBub2RlLCAgLy8vXG4gICAgICAgICAgICBtZXRhQXNzZXJ0aW9uVGVybWluYWxOb2RlID0gbWV0YUFzc2VydGlvbk5vZGUsICAvLy9cbiAgICAgICAgICAgIG1ldGFBc3NlcnRpb25UZXJtaW5hbE5vZGVNYXRjaGVzID0gbWF0Y2hNZXRhQXNzZXJ0aW9uVGVybWluYWxOb2RlKG1ldGFBc3NlcnRpb25UZXJtaW5hbE5vZGUsIHRlcm1pbmFsTm9kZSk7XG5cbiAgICAgIG1ldGFBc3NlcnRpb25Ob2RlTWF0Y2hlcyA9IG1ldGFBc3NlcnRpb25UZXJtaW5hbE5vZGVNYXRjaGVzOyAgLy8vXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IG5vZGUsIC8vL1xuICAgICAgICAgICAgbWV0YUFzc2VydGlvbk5vblRlcm1pbmFsTm9kZSA9IG1ldGFBc3NlcnRpb25Ob2RlLCAgLy8vXG4gICAgICAgICAgICBtZXRhQXNzZXJ0aW9uTm9uVGVybWluYWxOb2RlTWF0Y2hlcyA9IG1hdGNoTWV0YUFzc2VydGlvbk5vblRlcm1pbmFsTm9kZShtZXRhQXNzZXJ0aW9uTm9uVGVybWluYWxOb2RlLCBub25UZXJtaW5hbE5vZGUpO1xuXG4gICAgICBtZXRhQXNzZXJ0aW9uTm9kZU1hdGNoZXMgPSBtZXRhQXNzZXJ0aW9uTm9uVGVybWluYWxOb2RlTWF0Y2hlczsgLy8vXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIG1ldGFBc3NlcnRpb25Ob2RlTWF0Y2hlcztcbn1cblxuZnVuY3Rpb24gbWF0Y2hNZXRhQXNzZXJ0aW9uTm9kZXMobWV0YUFzc2VydGlvbk5vZGVzLCBub2Rlcykge1xuICBsZXQgbWV0YUFzc2VydGlvbk5vZGVzTWF0Y2hlcyA9IGZhbHNlO1xuXG4gIGNvbnN0IG5vZGVzTGVuZ3RoID0gbm9kZXMubGVuZ3RoLFxuICAgICAgICBtZXRhQXNzZXJ0aW9uTm9kZXNMZW5ndGggPSBtZXRhQXNzZXJ0aW9uTm9kZXMubGVuZ3RoO1xuXG4gIGlmIChub2Rlc0xlbmd0aCA9PT0gbWV0YUFzc2VydGlvbk5vZGVzTGVuZ3RoKSB7XG4gICAgbWV0YUFzc2VydGlvbk5vZGVzTWF0Y2hlcyA9IG5vZGVzLmV2ZXJ5KChub2RlLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgbWV0YUFzc2VydGlvbk5vZGUgPSBtZXRhQXNzZXJ0aW9uTm9kZXNbaW5kZXhdLFxuICAgICAgICAgICAgbWV0YUFzc2VydGlvbk5vZGVNYXRjaGVzID0gbWF0Y2hNZXRhQXNzZXJ0aW9uTm9kZShtZXRhQXNzZXJ0aW9uTm9kZSwgbm9kZSk7XG5cbiAgICAgIGlmIChtZXRhQXNzZXJ0aW9uTm9kZU1hdGNoZXMpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gbWV0YUFzc2VydGlvbk5vZGVzTWF0Y2hlcztcbn1cblxuZnVuY3Rpb24gbWF0Y2hNZXRhQXNzZXJ0aW9uVGVybWluYWxOb2RlKG1ldGFBc3NlcnRpb25UZXJtaW5hbE5vZGUsIHRlcm1pbmFsTm9kZSkge1xuICBsZXQgbWV0YUFzc2VydGlvblRlcm1pbmFsTm9kZU1hdGNoZXMgPSBmYWxzZTtcblxuICBjb25zdCBtYXRjaGVzID0gbWV0YUFzc2VydGlvblRlcm1pbmFsTm9kZS5tYXRjaCh0ZXJtaW5hbE5vZGUpO1xuXG4gIGlmIChtYXRjaGVzKSB7XG4gICAgbWV0YUFzc2VydGlvblRlcm1pbmFsTm9kZU1hdGNoZXMgPSB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIG1ldGFBc3NlcnRpb25UZXJtaW5hbE5vZGVNYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBtYXRjaE1ldGFBc3NlcnRpb25Ob25UZXJtaW5hbE5vZGUobWV0YUFzc2VydGlvbk5vblRlcm1pbmFsTm9kZSwgbm9uVGVybWluYWxOb2RlKSB7XG4gIGxldCBtZXRhQXNzZXJ0aW9uTm9uVGVybWluYWxOb2RlTWF0Y2hlcyA9IGZhbHNlO1xuXG4gIGNvbnN0IHJ1bGVOYW1lID0gbm9uVGVybWluYWxOb2RlLmdldFJ1bGVOYW1lKCksXG4gICAgICAgIG1ldGFBc3NlcnRpb25SdWxlTmFtZSA9IG1ldGFBc3NlcnRpb25Ob25UZXJtaW5hbE5vZGUuZ2V0UnVsZU5hbWUoKTsgLy8vXG5cbiAgaWYgKHJ1bGVOYW1lID09PSBtZXRhQXNzZXJ0aW9uUnVsZU5hbWUpIHtcbiAgICBjb25zdCBjaGlsZE5vZGVzID0gbm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICBub2RlcyA9IGNoaWxkTm9kZXMsIC8vL1xuICAgICAgICAgIG1ldGFBc3NlcnRpb25DaGlsZE5vZGVzID0gbWV0YUFzc2VydGlvbk5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgbWV0YUFzc2VydGlvbk5vZGVzID0gbWV0YUFzc2VydGlvbkNoaWxkTm9kZXMsIC8vL1xuICAgICAgICAgIG1ldGFBc3NlcnRpb25Ob2Rlc01hdGNoZXMgPSBtYXRjaE1ldGFBc3NlcnRpb25Ob2RlcyhtZXRhQXNzZXJ0aW9uTm9kZXMsIG5vZGVzKTtcblxuICAgIG1ldGFBc3NlcnRpb25Ob25UZXJtaW5hbE5vZGVNYXRjaGVzID0gbWV0YUFzc2VydGlvbk5vZGVzTWF0Y2hlczsgIC8vL1xuICB9XG5cbiAgcmV0dXJuIG1ldGFBc3NlcnRpb25Ob25UZXJtaW5hbE5vZGVNYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBtYXRjaE1ldGFBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZShtZXRhQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGUsIG1ldGFzdGF0ZW1lbnROb2RlKSB7XG4gIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IG1ldGFzdGF0ZW1lbnROb2RlLCAgLy8vXG4gICAgICAgIG1ldGFBc3NlcnRpb25Ob25UZXJtaW5hbE5vZGUgPSBtZXRhQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGUsICAvLy9cbiAgICAgICAgbWV0YUFzc2VydGlvbk5vblRlcm1pbmFsTm9kZU1hdGNoZXMgPSBtYXRjaE1ldGFBc3NlcnRpb25Ob25UZXJtaW5hbE5vZGUobWV0YUFzc2VydGlvbk5vblRlcm1pbmFsTm9kZSwgbm9uVGVybWluYWxOb2RlKSxcbiAgICAgICAgbWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlTmF0Y2hlcyA9IG1ldGFBc3NlcnRpb25Ob25UZXJtaW5hbE5vZGVNYXRjaGVzOyAgLy8vXG5cbiAgcmV0dXJuIG1ldGFBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZU5hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIG1hdGNoVG9wbW9zdE1ldGFBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZSh0b3Btb3N0TWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlLCB0b3Btb3N0TWV0YXN0YXRlbWVudE5vZGUpIHtcbiAgbGV0IG1ldGFBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXM7XG5cbiAgY29uc3QgbWV0YXN0YXRlbWVudE5vZGUgPSB0b3Btb3N0TWV0YXN0YXRlbWVudE5vZGUsIC8vL1xuICAgICAgICBtZXRhQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGUgPSB0b3Btb3N0TWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlOyAgLy8vXG5cbiAgbWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IG1hdGNoTWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlKG1ldGFBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZSwgbWV0YXN0YXRlbWVudE5vZGUpO1xuXG4gIGlmICghbWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcykge1xuICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IG1ldGFzdGF0ZW1lbnROb2RlLCAgLy8vXG4gICAgICAgICAgY2hpbGROb2RlcyA9IG5vblRlcm1pbmFsTm9kZSwgLy8vXG4gICAgICAgICAgYnJhY2tldGVkTWV0YXN0YXRlbWVudENoaWxkTm9kZU1hdGNoZXMgPSBtYXRjaEJyYWNrZXRlZE1ldGFzdGF0ZW1lbnRDaGlsZE5vZGUoY2hpbGROb2RlcywgKGJyYWNrZXRlZE1ldGFzdGF0ZW1lbnRDaGlsZE5vZGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG1ldGFzdGF0ZW1lbnROb2RlID0gYnJhY2tldGVkTWV0YXN0YXRlbWVudENoaWxkTm9kZSwgIC8vL1xuICAgICAgICAgICAgICAgICAgbWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IG1hdGNoTWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlKG1ldGFBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZSwgbWV0YXN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgICAgICAgICAgYnJhY2tldGVkTWV0YXN0YXRlbWVudENoaWxkTm9kZU1hdGNoZXMgPSBtZXRhQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzO1xuXG4gICAgICAgICAgICByZXR1cm4gYnJhY2tldGVkTWV0YXN0YXRlbWVudENoaWxkTm9kZU1hdGNoZXM7XG4gICAgICAgICAgfSk7XG5cbiAgICBtZXRhQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzID0gYnJhY2tldGVkTWV0YXN0YXRlbWVudENoaWxkTm9kZU1hdGNoZXM7ICAvLy9cbiAgfVxuXG4gIGlmICghbWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcykge1xuICAgIGNvbnN0IG1ldGFBc3NlcnRpb25Ob25UZXJtaW5hbE5vZGUgPSBtZXRhQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGUsICAvLy9cbiAgICAgICAgICBtZXRhQXNzZXJ0aW9uQ2hpbGROb2RlcyA9IG1ldGFBc3NlcnRpb25Ob25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgIGJyYWNrZXRlZE1ldGFBc3NlcnRpb25NZXRhc3RhdGVtZW50Q2hpbGROb2RlTWF0Y2hlcyA9IG1hdGNoQnJhY2tldGVkTWV0YXN0YXRlbWVudENoaWxkTm9kZShtZXRhQXNzZXJ0aW9uQ2hpbGROb2RlcywgKGJyYWNrZXRlZE1ldGFBc3NlcnRpb25NZXRhc3RhdGVtZW50Q2hpbGROb2RlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBtZXRhQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGUgPSBicmFja2V0ZWRNZXRhQXNzZXJ0aW9uTWV0YXN0YXRlbWVudENoaWxkTm9kZSwgIC8vL1xuICAgICAgICAgICAgICAgICAgbWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IG1hdGNoTWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlKG1ldGFBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZSwgbWV0YXN0YXRlbWVudE5vZGUpLFxuICAgICAgICAgICAgICAgICAgYnJhY2tldGVkTWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnRDaGlsZE5vZGVNYXRjaGVzID0gbWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcztcblxuICAgICAgICAgICAgcmV0dXJuIGJyYWNrZXRlZE1ldGFBc3NlcnRpb25NZXRhc3RhdGVtZW50Q2hpbGROb2RlTWF0Y2hlcztcbiAgICAgICAgICB9KTtcblxuICAgIG1ldGFBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXMgPSBicmFja2V0ZWRNZXRhQXNzZXJ0aW9uTWV0YXN0YXRlbWVudENoaWxkTm9kZU1hdGNoZXM7ICAvLy9cbiAgfVxuXG4gIGNvbnN0IHRvcG1vc3RNZXRhQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzID0gbWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlczsgIC8vL1xuXG4gIHJldHVybiB0b3Btb3N0TWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcztcbn1cbiJdLCJuYW1lcyI6WyJNZXRhQXNzZXJ0aW9uIiwibWV0YXN0YXRlbWVudE5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsIm1ldGFzdGF0ZW1lbnROb2Rlc1F1ZXJ5Iiwibm9kZXNRdWVyeSIsIm1ldGFTdWJwcm9vZkFzc2VydGlvbk5vZGVRdWVyeSIsInF1YWxpZmllZE9yVW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50TWV0YXN0YXRlbWVudE5vZGVzUXVlcnkiLCJtZXRhU3VicHJvb2ZOb2RlIiwibWV0YXN0YXRlbWVudE5vZGUiLCJnZXRNZXRhU3VicHJvb2ZOb2RlIiwiZ2V0TWV0YXN0YXRlbWVudE5vZGUiLCJtYXRjaCIsIm1ldGFBc3NlcnRpb24iLCJtYXRjaGVzIiwibWV0YVN1YnByb29mQXNzZXJ0aW9uTm9kZSIsIm1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyIsIm1hdGNoTWV0YXN0YXRlbWVudE5vZGUiLCJtZXRhU3VicHJvb2ZBc3NlcnRpb25Ob2RlTWF0Y2hlcyIsIm1hdGNoTWV0YVN1YnByb29mQXNzZXJ0aW9uTm9kZSIsInRvcG1vc3RNZXRhc3RhdGVtZW50Tm9kZSIsInRvcG1vc3RNZXRhQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGUiLCJ0b3Btb3N0TWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyIsIm1hdGNoVG9wbW9zdE1ldGFBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZSIsIm1ldGFTdWJwcm9vZkFzc2VydGlvbk1ldGFzdGF0ZW1lbnROb2RlcyIsImZpcnN0TWV0YVN1YnByb29mQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGUiLCJmaXJzdCIsInF1YWxpZmllZE9yVW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50TWV0YXN0YXRlbWVudE5vZGVzIiwiZmlyc3RRdWFsaWZpZWRPclVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE1ldGFzdGF0ZW1lbnROb2RlIiwic2Vjb25kTWV0YVN1YnByb29mQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGUiLCJzZWNvbmQiLCJzZWNvbmRRdWFsaWZpZWRPclVucXVhbGlmaWVkTWV0YXN0YXRlbWVudE1ldGFzdGF0ZW1lbnROb2RlIiwiZnJvbU1ldGFTdWJwcm9vZk5vZGUiLCJmcm9tTWV0YXN0YXRlbWVudE5vZGUiLCJmcm9tUXVhbGlmaWVkTWV0YXN0YXRlbWVudE5vZGUiLCJxdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSIsImZyb21VbnF1YWxpZmllZE1ldGFzdGF0ZW1lbnROb2RlIiwidW5xdWFsaWZpZWRNZXRhc3RhdGVtZW50Tm9kZSIsIm1hdGNoTWV0YUFzc2VydGlvbk5vZGUiLCJtZXRhQXNzZXJ0aW9uTm9kZSIsIm5vZGUiLCJtZXRhQXNzZXJ0aW9uTm9kZU1hdGNoZXMiLCJub2RlVGVybWluYWxOb2RlIiwiaXNUZXJtaW5hbE5vZGUiLCJydWxlTm9kZVRlcm1pbmFsTm9kZSIsInRlcm1pbmFsTm9kZSIsIm1ldGFBc3NlcnRpb25UZXJtaW5hbE5vZGUiLCJtZXRhQXNzZXJ0aW9uVGVybWluYWxOb2RlTWF0Y2hlcyIsIm1hdGNoTWV0YUFzc2VydGlvblRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZSIsIm1ldGFBc3NlcnRpb25Ob25UZXJtaW5hbE5vZGUiLCJtZXRhQXNzZXJ0aW9uTm9uVGVybWluYWxOb2RlTWF0Y2hlcyIsIm1hdGNoTWV0YUFzc2VydGlvbk5vblRlcm1pbmFsTm9kZSIsIm1hdGNoTWV0YUFzc2VydGlvbk5vZGVzIiwibWV0YUFzc2VydGlvbk5vZGVzIiwibm9kZXMiLCJtZXRhQXNzZXJ0aW9uTm9kZXNNYXRjaGVzIiwibm9kZXNMZW5ndGgiLCJsZW5ndGgiLCJtZXRhQXNzZXJ0aW9uTm9kZXNMZW5ndGgiLCJldmVyeSIsImluZGV4IiwicnVsZU5hbWUiLCJnZXRSdWxlTmFtZSIsIm1ldGFBc3NlcnRpb25SdWxlTmFtZSIsImNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwibWV0YUFzc2VydGlvbkNoaWxkTm9kZXMiLCJtYXRjaE1ldGFBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZSIsIm1ldGFBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZSIsIm1ldGFBc3NlcnRpb25NZXRhc3RhdGVtZW50Tm9kZU5hdGNoZXMiLCJtZXRhQXNzZXJ0aW9uTWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzIiwiYnJhY2tldGVkTWV0YXN0YXRlbWVudENoaWxkTm9kZU1hdGNoZXMiLCJtYXRjaEJyYWNrZXRlZE1ldGFzdGF0ZW1lbnRDaGlsZE5vZGUiLCJicmFja2V0ZWRNZXRhc3RhdGVtZW50Q2hpbGROb2RlIiwiYnJhY2tldGVkTWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnRDaGlsZE5vZGVNYXRjaGVzIiwiYnJhY2tldGVkTWV0YUFzc2VydGlvbk1ldGFzdGF0ZW1lbnRDaGlsZE5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBV3FCQTs7O3FCQVRTO3FCQUNROzZCQUNlOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVyRCxJQUFNQyx5QkFBeUJDLElBQUFBLGdCQUFTLEVBQUMsc0JBQ25DQywwQkFBMEJDLElBQUFBLGlCQUFVLEVBQUMseUNBQ3JDQyxpQ0FBaUNILElBQUFBLGdCQUFTLEVBQUMseUNBQzNDSSw2REFBNkRGLElBQUFBLGlCQUFVLEVBQUM7QUFFL0QsSUFBQSxBQUFNSiw4QkE2R2xCLEFBN0dZO2FBQU1BLGNBQ1BPLGdCQUFnQixFQUFFQyxpQkFBaUI7OEJBRDVCUjtRQUVqQixJQUFJLENBQUNPLGdCQUFnQixHQUFHQTtRQUN4QixJQUFJLENBQUNDLGlCQUFpQixHQUFHQTs7aUJBSFJSOztZQU1uQlMsS0FBQUE7bUJBQUFBLFNBQUFBLHNCQUFzQjtnQkFDcEIsT0FBTyxJQUFJLENBQUNGLGdCQUFnQjtZQUM5Qjs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQSx1QkFBdUI7Z0JBQ3JCLE9BQU8sSUFBSSxDQUFDRixpQkFBaUI7WUFDL0I7OztZQUVBRyxLQUFBQTttQkFBQUEsU0FBQUEsTUFBTUMsYUFBYSxFQUFFO2dCQUNuQixJQUFJQyxVQUFVLEtBQUs7Z0JBRW5CLElBQU1MLG9CQUFvQkksY0FBY0Ysb0JBQW9CO2dCQUU1RCxJQUFJRixzQkFBc0IsSUFBSSxFQUFFO29CQUM5QixJQUFNTSw0QkFBNEJULCtCQUErQkc7b0JBRWpFLElBQUlNLDhCQUE4QixJQUFJLEVBQUU7d0JBQ3RDLElBQU1DLDJCQUEyQixJQUFJLENBQUNDLHNCQUFzQixDQUFDUjt3QkFFN0RLLFVBQVVFLDBCQUEyQixHQUFHO29CQUMxQyxPQUFPO3dCQUNMLElBQU1FLG1DQUFtQyxJQUFJLENBQUNDLDhCQUE4QixDQUFDSjt3QkFFN0VELFVBQVVJLGtDQUFrQyxHQUFHO29CQUNqRCxDQUFDO2dCQUNILENBQUM7Z0JBRUQsT0FBT0o7WUFDVDs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQSx1QkFBdUJSLGlCQUFpQixFQUFFO2dCQUN4QyxJQUFJTywyQkFBMkIsS0FBSztnQkFFcEMsSUFBSSxJQUFJLENBQUNQLGlCQUFpQixLQUFLLElBQUksRUFBRTtvQkFDbkMsSUFBTVcsMkJBQTJCWCxtQkFDM0JZLHdDQUF3QyxJQUFJLENBQUNaLGlCQUFpQixFQUM5RGEsK0NBQStDQywyQ0FBMkNGLHVDQUF1Q0Q7b0JBRXZJSiwyQkFBMkJNLDhDQUErQyxHQUFHO2dCQUMvRSxDQUFDO2dCQUVELE9BQU9OO1lBQ1Q7OztZQUVBRyxLQUFBQTttQkFBQUEsU0FBQUEsK0JBQStCSix5QkFBeUIsRUFBRTtnQkFDeEQsSUFBSUcsbUNBQW1DLEtBQUs7Z0JBRTVDLElBQUksSUFBSSxDQUFDVixnQkFBZ0IsS0FBSyxJQUFJLEVBQUU7b0JBQ2xDLElBQU1nQiwwQ0FBMENwQix3QkFBd0JXLDRCQUNsRVUsOENBQThDQyxJQUFBQSxZQUFLLEVBQUNGLDBDQUNwREcsd0RBQXdEcEIsMkRBQTJELElBQUksQ0FBQ0MsZ0JBQWdCLEdBQ3hJb0IsNERBQTRERixJQUFBQSxZQUFLLEVBQUNDO29CQUV4RSxJQUFNUCwyQkFBMkJLLDZDQUMzQkosd0NBQXdDTywyREFDeENOLCtDQUErQ0MsMkNBQTJDRix1Q0FBdUNEO29CQUV2SSxJQUFJRSw4Q0FBOEM7d0JBQ2hELElBQU1PLCtDQUErQ0MsSUFBQUEsYUFBTSxFQUFDTiwwQ0FDdERPLDZEQUE2REQsSUFBQUEsYUFBTSxFQUFDSDt3QkFFMUUsSUFBTVAsNEJBQTJCUyw4Q0FDM0JSLHlDQUF3Q1UsNERBQ3hDVCxnREFBK0NDLDJDQUEyQ0Ysd0NBQXVDRDt3QkFFdklGLG1DQUFtQ0ksK0NBQThDLEdBQUc7b0JBQ3RGLENBQUM7Z0JBQ0gsQ0FBQztnQkFFRCxPQUFPSjtZQUNUOzs7O1lBRU9jLEtBQUFBO21CQUFQLFNBQU9BLHFCQUFxQnhCLGdCQUFnQixFQUFFO2dCQUM1QyxJQUFNQyxvQkFBb0IsSUFBSSxFQUN4QkksZ0JBQWdCLElBaEZMWixjQWdGdUJPLGtCQUFrQkM7Z0JBRTFELE9BQU9JO1lBQ1Q7OztZQUVPb0IsS0FBQUE7bUJBQVAsU0FBT0Esc0JBQXNCeEIsaUJBQWlCLEVBQUU7Z0JBQzlDLElBQU1ELG1CQUFtQixJQUFJLEVBQ3ZCSyxnQkFBZ0IsSUF2RkxaLGNBdUZ1Qk8sa0JBQWtCQztnQkFFMUQsT0FBT0k7WUFDVDs7O1lBRU9xQixLQUFBQTttQkFBUCxTQUFPQSwrQkFBK0JDLDBCQUEwQixFQUFFO2dCQUNoRSxJQUFNM0IsbUJBQW1CLElBQUksRUFDdkJDLG9CQUFvQlAsdUJBQXVCaUMsNkJBQzNDdEIsZ0JBQWdCLElBL0ZMWixjQStGdUJPLGtCQUFrQkM7Z0JBRTFELE9BQU9JO1lBQ1Q7OztZQUVPdUIsS0FBQUE7bUJBQVAsU0FBT0EsaUNBQWlDQyw0QkFBNEIsRUFBRTtnQkFDcEUsSUFBTTdCLG1CQUFtQixJQUFJLEVBQ3ZCQyxvQkFBb0JQLHVCQUF1Qm1DLCtCQUMzQ3hCLGdCQUFnQixJQXZHTFosY0F1R3VCTyxrQkFBa0JDO2dCQUUxRCxPQUFPSTtZQUNUOzs7V0ExR21CWjs7QUE2R3JCLFNBQVNxQyx1QkFBdUJDLGlCQUFpQixFQUFFQyxJQUFJLEVBQUU7SUFDdkQsSUFBSUMsMkJBQTJCLEtBQUs7SUFFcEMsSUFBTUMsbUJBQW1CRixLQUFLRyxjQUFjLElBQ3RDQyx1QkFBdUJMLGtCQUFrQkksY0FBYztJQUU3RCxJQUFJRCxxQkFBcUJFLHNCQUFzQjtRQUM3QyxJQUFJRixrQkFBa0I7WUFDcEIsSUFBTUcsZUFBZUwsTUFDZk0sNEJBQTRCUCxtQkFDNUJRLG1DQUFtQ0MsK0JBQStCRiwyQkFBMkJEO1lBRW5HSiwyQkFBMkJNLGtDQUFtQyxHQUFHO1FBQ25FLE9BQU87WUFDTCxJQUFNRSxrQkFBa0JULE1BQ2xCVSwrQkFBK0JYLG1CQUMvQlksc0NBQXNDQyxrQ0FBa0NGLDhCQUE4QkQ7WUFFNUdSLDJCQUEyQlUscUNBQXFDLEdBQUc7UUFDckUsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPVjtBQUNUO0FBRUEsU0FBU1ksd0JBQXdCQyxrQkFBa0IsRUFBRUMsS0FBSyxFQUFFO0lBQzFELElBQUlDLDRCQUE0QixLQUFLO0lBRXJDLElBQU1DLGNBQWNGLE1BQU1HLE1BQU0sRUFDMUJDLDJCQUEyQkwsbUJBQW1CSSxNQUFNO0lBRTFELElBQUlELGdCQUFnQkUsMEJBQTBCO1FBQzVDSCw0QkFBNEJELE1BQU1LLEtBQUssQ0FBQyxTQUFDcEIsTUFBTXFCLE9BQVU7WUFDdkQsSUFBTXRCLG9CQUFvQmUsa0JBQWtCLENBQUNPLE1BQU0sRUFDN0NwQiwyQkFBMkJILHVCQUF1QkMsbUJBQW1CQztZQUUzRSxJQUFJQywwQkFBMEI7Z0JBQzVCLE9BQU8sSUFBSTtZQUNiLENBQUM7UUFDSDtJQUNGLENBQUM7SUFFRCxPQUFPZTtBQUNUO0FBRUEsU0FBU1IsK0JBQStCRix5QkFBeUIsRUFBRUQsWUFBWSxFQUFFO0lBQy9FLElBQUlFLG1DQUFtQyxLQUFLO0lBRTVDLElBQU1qQyxVQUFVZ0MsMEJBQTBCbEMsS0FBSyxDQUFDaUM7SUFFaEQsSUFBSS9CLFNBQVM7UUFDWGlDLG1DQUFtQyxJQUFJO0lBQ3pDLENBQUM7SUFFRCxPQUFPQTtBQUNUO0FBRUEsU0FBU0ssa0NBQWtDRiw0QkFBNEIsRUFBRUQsZUFBZSxFQUFFO0lBQ3hGLElBQUlFLHNDQUFzQyxLQUFLO0lBRS9DLElBQU1XLFdBQVdiLGdCQUFnQmMsV0FBVyxJQUN0Q0Msd0JBQXdCZCw2QkFBNkJhLFdBQVcsSUFBSSxHQUFHO0lBRTdFLElBQUlELGFBQWFFLHVCQUF1QjtRQUN0QyxJQUFNQyxhQUFhaEIsZ0JBQWdCaUIsYUFBYSxJQUMxQ1gsUUFBUVUsWUFDUkUsMEJBQTBCakIsNkJBQTZCZ0IsYUFBYSxJQUNwRVoscUJBQXFCYSx5QkFDckJYLDRCQUE0Qkgsd0JBQXdCQyxvQkFBb0JDO1FBRTlFSixzQ0FBc0NLLDJCQUE0QixHQUFHO0lBQ3ZFLENBQUM7SUFFRCxPQUFPTDtBQUNUO0FBRUEsU0FBU2lCLG9DQUFvQ0MsOEJBQThCLEVBQUU1RCxpQkFBaUIsRUFBRTtJQUM5RixJQUFNd0Msa0JBQWtCeEMsbUJBQ2xCeUMsK0JBQStCbUIsZ0NBQy9CbEIsc0NBQXNDQyxrQ0FBa0NGLDhCQUE4QkQsa0JBQ3RHcUIsd0NBQXdDbkIscUNBQXNDLEdBQUc7SUFFdkYsT0FBT21CO0FBQ1Q7QUFFQSxTQUFTL0MsMkNBQTJDRixxQ0FBcUMsRUFBRUQsd0JBQXdCLEVBQUU7SUFDbkgsSUFBSW1EO0lBRUosSUFBTTlELG9CQUFvQlcsMEJBQ3BCaUQsaUNBQWlDaEQsdUNBQXdDLEdBQUc7SUFFbEZrRCx3Q0FBd0NILG9DQUFvQ0MsZ0NBQWdDNUQ7SUFFNUcsSUFBSSxDQUFDOEQsdUNBQXVDO1FBQzFDLElBQU10QixrQkFBa0J4QyxtQkFDbEJ3RCxhQUFhaEIsaUJBQ2J1Qix5Q0FBeUNDLElBQUFBLG1EQUFvQyxFQUFDUixZQUFZLFNBQUNTLGlDQUFvQztZQUM3SCxJQUFNakUsb0JBQW9CaUUsaUNBQ3BCSCx3Q0FBd0NILG9DQUFvQ0MsZ0NBQWdDNUQsb0JBQzVHK0QseUNBQXlDRDtZQUUvQyxPQUFPQztRQUNUO1FBRU5ELHdDQUF3Q0Msd0NBQXlDLEdBQUc7SUFDdEYsQ0FBQztJQUVELElBQUksQ0FBQ0QsdUNBQXVDO1FBQzFDLElBQU1yQiwrQkFBK0JtQixnQ0FDL0JGLDBCQUEwQmpCLDZCQUE2QmdCLGFBQWEsSUFDcEVTLHNEQUFzREYsSUFBQUEsbURBQW9DLEVBQUNOLHlCQUF5QixTQUFDUyw4Q0FBaUQ7WUFDcEssSUFBTVAsaUNBQWlDTyw4Q0FDakNMLHdDQUF3Q0gsb0NBQW9DQyxnQ0FBZ0M1RCxvQkFDNUdrRSxzREFBc0RKO1lBRTVELE9BQU9JO1FBQ1Q7UUFFTkosd0NBQXdDSSxxREFBc0QsR0FBRztJQUNuRyxDQUFDO0lBRUQsSUFBTXJELCtDQUErQ2lELHVDQUF3QyxHQUFHO0lBRWhHLE9BQU9qRDtBQUNUIn0=
@@ -1,45 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: all[name]
9
- });
10
- }
11
- _export(exports, {
12
- bracketedMetastatementChildNodeFromChildNodes: function() {
13
- return bracketedMetastatementChildNodeFromChildNodes;
14
- },
15
- matchBracketedMetastatementChildNode: function() {
16
- return matchBracketedMetastatementChildNode;
17
- }
18
- });
19
- var _array = require("../utilities/array");
20
- var _ruleNames = require("../ruleNames");
21
- var _constants = require("../constants");
22
- function bracketedMetastatementChildNodeFromChildNodes(childNodes) {
23
- var bracketedMetastatementChildNode = null;
24
- var childNodesLength = childNodes.length;
25
- if (childNodesLength === _constants.BRACKETED_METASTATEMENT_CHILD_NODES_LENGTH) {
26
- var firstChildNode = (0, _array.first)(childNodes), thirdChildNode = (0, _array.third)(childNodes), secondChildNode = (0, _array.second)(childNodes), firstChildNodeTerminalNode = firstChildNode.isTerminalNode(), thirdChildNodeTerminalNode = thirdChildNode.isTerminalNode(), secondChildNodeNonTerminalNode = secondChildNode.isNonTerminalNode();
27
- if (firstChildNodeTerminalNode && secondChildNodeNonTerminalNode && thirdChildNodeTerminalNode) {
28
- var nonTerminalNode = secondChildNode, firstTerminalNode = firstChildNode, secondTerminalNode = thirdChildNode, nonTerminalNodeRuleName = nonTerminalNode.getRuleName(), firstTerminalNodeContent = firstTerminalNode.getContent(), secondTerminalNodeContent = secondTerminalNode.getContent(), firstTerminalNodeContentLeftBracket = firstTerminalNodeContent === _constants.LEFT_BRACKET, secondTerminalNodeContentRightBracket = secondTerminalNodeContent === _constants.RIGHT_BRACKET, nonTerminalNodeRuleNameMetastatementRuleName = nonTerminalNodeRuleName === _ruleNames.METASTATEMENT_RULE_NAME;
29
- if (firstTerminalNodeContentLeftBracket && nonTerminalNodeRuleNameMetastatementRuleName && secondTerminalNodeContentRightBracket) {
30
- bracketedMetastatementChildNode = nonTerminalNode; ///
31
- }
32
- }
33
- }
34
- return bracketedMetastatementChildNode;
35
- }
36
- function matchBracketedMetastatementChildNode(childNodes, callback) {
37
- var bracketedMetastatementChildNodeMatches = false;
38
- var bracketedMetastatementChildNode = bracketedMetastatementChildNodeFromChildNodes(childNodes);
39
- if (bracketedMetastatementChildNode !== null) {
40
- bracketedMetastatementChildNodeMatches = callback(bracketedMetastatementChildNode);
41
- }
42
- return bracketedMetastatementChildNodeMatches;
43
- }
44
-
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbWV0YXN0YXRlbWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgZmlyc3QsIHNlY29uZCwgdGhpcmQgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2FycmF5XCI7XG5pbXBvcnQgeyBNRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSB9IGZyb20gXCIuLi9ydWxlTmFtZXNcIjtcbmltcG9ydCB7IExFRlRfQlJBQ0tFVCwgUklHSFRfQlJBQ0tFVCwgQlJBQ0tFVEVEX01FVEFTVEFURU1FTlRfQ0hJTERfTk9ERVNfTEVOR1RIIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gYnJhY2tldGVkTWV0YXN0YXRlbWVudENoaWxkTm9kZUZyb21DaGlsZE5vZGVzKGNoaWxkTm9kZXMpIHtcbiAgbGV0IGJyYWNrZXRlZE1ldGFzdGF0ZW1lbnRDaGlsZE5vZGUgPSBudWxsO1xuXG4gIGNvbnN0IGNoaWxkTm9kZXNMZW5ndGggPSBjaGlsZE5vZGVzLmxlbmd0aDtcblxuICBpZiAoY2hpbGROb2Rlc0xlbmd0aCA9PT0gQlJBQ0tFVEVEX01FVEFTVEFURU1FTlRfQ0hJTERfTk9ERVNfTEVOR1RIKSB7XG4gICAgY29uc3QgZmlyc3RDaGlsZE5vZGUgPSBmaXJzdChjaGlsZE5vZGVzKSxcbiAgICAgICAgICB0aGlyZENoaWxkTm9kZSA9IHRoaXJkKGNoaWxkTm9kZXMpLFxuICAgICAgICAgIHNlY29uZENoaWxkTm9kZSA9IHNlY29uZChjaGlsZE5vZGVzKSxcbiAgICAgICAgICBmaXJzdENoaWxkTm9kZVRlcm1pbmFsTm9kZSA9IGZpcnN0Q2hpbGROb2RlLmlzVGVybWluYWxOb2RlKCksXG4gICAgICAgICAgdGhpcmRDaGlsZE5vZGVUZXJtaW5hbE5vZGUgPSB0aGlyZENoaWxkTm9kZS5pc1Rlcm1pbmFsTm9kZSgpLFxuICAgICAgICAgIHNlY29uZENoaWxkTm9kZU5vblRlcm1pbmFsTm9kZSA9IHNlY29uZENoaWxkTm9kZS5pc05vblRlcm1pbmFsTm9kZSgpO1xuXG4gICAgaWYgKGZpcnN0Q2hpbGROb2RlVGVybWluYWxOb2RlICYmIHNlY29uZENoaWxkTm9kZU5vblRlcm1pbmFsTm9kZSAmJiB0aGlyZENoaWxkTm9kZVRlcm1pbmFsTm9kZSkge1xuICAgICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gc2Vjb25kQ2hpbGROb2RlLCAgLy8vXG4gICAgICAgICAgICBmaXJzdFRlcm1pbmFsTm9kZSA9IGZpcnN0Q2hpbGROb2RlLCAvLy9cbiAgICAgICAgICAgIHNlY29uZFRlcm1pbmFsTm9kZSA9IHRoaXJkQ2hpbGROb2RlLCAgLy8vXG4gICAgICAgICAgICBub25UZXJtaW5hbE5vZGVSdWxlTmFtZSA9IG5vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpLFxuICAgICAgICAgICAgZmlyc3RUZXJtaW5hbE5vZGVDb250ZW50ID0gZmlyc3RUZXJtaW5hbE5vZGUuZ2V0Q29udGVudCgpLFxuICAgICAgICAgICAgc2Vjb25kVGVybWluYWxOb2RlQ29udGVudCA9IHNlY29uZFRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCksXG4gICAgICAgICAgICBmaXJzdFRlcm1pbmFsTm9kZUNvbnRlbnRMZWZ0QnJhY2tldCA9IChmaXJzdFRlcm1pbmFsTm9kZUNvbnRlbnQgPT09IExFRlRfQlJBQ0tFVCksXG4gICAgICAgICAgICBzZWNvbmRUZXJtaW5hbE5vZGVDb250ZW50UmlnaHRCcmFja2V0ID0gKHNlY29uZFRlcm1pbmFsTm9kZUNvbnRlbnQgPT09IFJJR0hUX0JSQUNLRVQpLFxuICAgICAgICAgICAgbm9uVGVybWluYWxOb2RlUnVsZU5hbWVNZXRhc3RhdGVtZW50UnVsZU5hbWUgPSAobm9uVGVybWluYWxOb2RlUnVsZU5hbWUgPT09IE1FVEFTVEFURU1FTlRfUlVMRV9OQU1FKTtcblxuICAgICAgaWYgKGZpcnN0VGVybWluYWxOb2RlQ29udGVudExlZnRCcmFja2V0ICYmIG5vblRlcm1pbmFsTm9kZVJ1bGVOYW1lTWV0YXN0YXRlbWVudFJ1bGVOYW1lICYmIHNlY29uZFRlcm1pbmFsTm9kZUNvbnRlbnRSaWdodEJyYWNrZXQpIHtcbiAgICAgICAgYnJhY2tldGVkTWV0YXN0YXRlbWVudENoaWxkTm9kZSA9IG5vblRlcm1pbmFsTm9kZTsgIC8vL1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBicmFja2V0ZWRNZXRhc3RhdGVtZW50Q2hpbGROb2RlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2hCcmFja2V0ZWRNZXRhc3RhdGVtZW50Q2hpbGROb2RlKGNoaWxkTm9kZXMsIGNhbGxiYWNrKSB7XG4gIGxldCBicmFja2V0ZWRNZXRhc3RhdGVtZW50Q2hpbGROb2RlTWF0Y2hlcyA9IGZhbHNlO1xuXG4gIGNvbnN0IGJyYWNrZXRlZE1ldGFzdGF0ZW1lbnRDaGlsZE5vZGUgPSBicmFja2V0ZWRNZXRhc3RhdGVtZW50Q2hpbGROb2RlRnJvbUNoaWxkTm9kZXMoY2hpbGROb2Rlcyk7XG5cbiAgaWYgKGJyYWNrZXRlZE1ldGFzdGF0ZW1lbnRDaGlsZE5vZGUgIT09IG51bGwpIHtcbiAgICBicmFja2V0ZWRNZXRhc3RhdGVtZW50Q2hpbGROb2RlTWF0Y2hlcyA9IGNhbGxiYWNrKGJyYWNrZXRlZE1ldGFzdGF0ZW1lbnRDaGlsZE5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIGJyYWNrZXRlZE1ldGFzdGF0ZW1lbnRDaGlsZE5vZGVNYXRjaGVzO1xufVxuIl0sIm5hbWVzIjpbImJyYWNrZXRlZE1ldGFzdGF0ZW1lbnRDaGlsZE5vZGVGcm9tQ2hpbGROb2RlcyIsIm1hdGNoQnJhY2tldGVkTWV0YXN0YXRlbWVudENoaWxkTm9kZSIsImNoaWxkTm9kZXMiLCJicmFja2V0ZWRNZXRhc3RhdGVtZW50Q2hpbGROb2RlIiwiY2hpbGROb2Rlc0xlbmd0aCIsImxlbmd0aCIsIkJSQUNLRVRFRF9NRVRBU1RBVEVNRU5UX0NISUxEX05PREVTX0xFTkdUSCIsImZpcnN0Q2hpbGROb2RlIiwiZmlyc3QiLCJ0aGlyZENoaWxkTm9kZSIsInRoaXJkIiwic2Vjb25kQ2hpbGROb2RlIiwic2Vjb25kIiwiZmlyc3RDaGlsZE5vZGVUZXJtaW5hbE5vZGUiLCJpc1Rlcm1pbmFsTm9kZSIsInRoaXJkQ2hpbGROb2RlVGVybWluYWxOb2RlIiwic2Vjb25kQ2hpbGROb2RlTm9uVGVybWluYWxOb2RlIiwiaXNOb25UZXJtaW5hbE5vZGUiLCJub25UZXJtaW5hbE5vZGUiLCJmaXJzdFRlcm1pbmFsTm9kZSIsInNlY29uZFRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZVJ1bGVOYW1lIiwiZ2V0UnVsZU5hbWUiLCJmaXJzdFRlcm1pbmFsTm9kZUNvbnRlbnQiLCJnZXRDb250ZW50Iiwic2Vjb25kVGVybWluYWxOb2RlQ29udGVudCIsImZpcnN0VGVybWluYWxOb2RlQ29udGVudExlZnRCcmFja2V0IiwiTEVGVF9CUkFDS0VUIiwic2Vjb25kVGVybWluYWxOb2RlQ29udGVudFJpZ2h0QnJhY2tldCIsIlJJR0hUX0JSQUNLRVQiLCJub25UZXJtaW5hbE5vZGVSdWxlTmFtZU1ldGFzdGF0ZW1lbnRSdWxlTmFtZSIsIk1FVEFTVEFURU1FTlRfUlVMRV9OQU1FIiwiY2FsbGJhY2siLCJicmFja2V0ZWRNZXRhc3RhdGVtZW50Q2hpbGROb2RlTWF0Y2hlcyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBTWdCQSw2Q0FBNkM7ZUFBN0NBOztJQWlDQUMsb0NBQW9DO2VBQXBDQTs7O3FCQXJDcUI7eUJBQ0c7eUJBQ2dEO0FBRWpGLFNBQVNELDhDQUE4Q0UsVUFBVSxFQUFFO0lBQ3hFLElBQUlDLGtDQUFrQyxJQUFJO0lBRTFDLElBQU1DLG1CQUFtQkYsV0FBV0csTUFBTTtJQUUxQyxJQUFJRCxxQkFBcUJFLHFEQUEwQyxFQUFFO1FBQ25FLElBQU1DLGlCQUFpQkMsSUFBQUEsWUFBSyxFQUFDTixhQUN2Qk8saUJBQWlCQyxJQUFBQSxZQUFLLEVBQUNSLGFBQ3ZCUyxrQkFBa0JDLElBQUFBLGFBQU0sRUFBQ1YsYUFDekJXLDZCQUE2Qk4sZUFBZU8sY0FBYyxJQUMxREMsNkJBQTZCTixlQUFlSyxjQUFjLElBQzFERSxpQ0FBaUNMLGdCQUFnQk0saUJBQWlCO1FBRXhFLElBQUlKLDhCQUE4Qkcsa0NBQWtDRCw0QkFBNEI7WUFDOUYsSUFBTUcsa0JBQWtCUCxpQkFDbEJRLG9CQUFvQlosZ0JBQ3BCYSxxQkFBcUJYLGdCQUNyQlksMEJBQTBCSCxnQkFBZ0JJLFdBQVcsSUFDckRDLDJCQUEyQkosa0JBQWtCSyxVQUFVLElBQ3ZEQyw0QkFBNEJMLG1CQUFtQkksVUFBVSxJQUN6REUsc0NBQXVDSCw2QkFBNkJJLHVCQUFZLEVBQ2hGQyx3Q0FBeUNILDhCQUE4Qkksd0JBQWEsRUFDcEZDLCtDQUFnRFQsNEJBQTRCVSxrQ0FBdUI7WUFFekcsSUFBSUwsdUNBQXVDSSxnREFBZ0RGLHVDQUF1QztnQkFDaEl6QixrQ0FBa0NlLGlCQUFrQixHQUFHO1lBQ3pELENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU9mO0FBQ1Q7QUFFTyxTQUFTRixxQ0FBcUNDLFVBQVUsRUFBRThCLFFBQVEsRUFBRTtJQUN6RSxJQUFJQyx5Q0FBeUMsS0FBSztJQUVsRCxJQUFNOUIsa0NBQWtDSCw4Q0FBOENFO0lBRXRGLElBQUlDLG9DQUFvQyxJQUFJLEVBQUU7UUFDNUM4Qix5Q0FBeUNELFNBQVM3QjtJQUNwRCxDQUFDO0lBRUQsT0FBTzhCO0FBQ1QifQ==
@@ -1,45 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: all[name]
9
- });
10
- }
11
- _export(exports, {
12
- bracketedStatementChildNodeFromChildNodes: function() {
13
- return bracketedStatementChildNodeFromChildNodes;
14
- },
15
- matchBracketedStatementChildNode: function() {
16
- return matchBracketedStatementChildNode;
17
- }
18
- });
19
- var _array = require("../utilities/array");
20
- var _ruleNames = require("../ruleNames");
21
- var _constants = require("../constants");
22
- function bracketedStatementChildNodeFromChildNodes(childNodes) {
23
- var bracketedStatementChildNode = null;
24
- var childNodesLength = childNodes.length;
25
- if (childNodesLength === _constants.BRACKETED_STATEMENT_CHILD_NODES_LENGTH) {
26
- var firstChildNode = (0, _array.first)(childNodes), thirdChildNode = (0, _array.third)(childNodes), secondChildNode = (0, _array.second)(childNodes), firstChildNodeTerminalNode = firstChildNode.isTerminalNode(), thirdChildNodeTerminalNode = thirdChildNode.isTerminalNode(), secondChildNodeNonTerminalNode = secondChildNode.isNonTerminalNode();
27
- if (firstChildNodeTerminalNode && secondChildNodeNonTerminalNode && thirdChildNodeTerminalNode) {
28
- var nonTerminalNode = secondChildNode, firstTerminalNode = firstChildNode, secondTerminalNode = thirdChildNode, nonTerminalNodeRuleName = nonTerminalNode.getRuleName(), firstTerminalNodeContent = firstTerminalNode.getContent(), secondTerminalNodeContent = secondTerminalNode.getContent(), firstTerminalNodeContentLeftBracket = firstTerminalNodeContent === _constants.LEFT_BRACKET, secondTerminalNodeContentRightBracket = secondTerminalNodeContent === _constants.RIGHT_BRACKET, nonTerminalNodeRuleNameStatementRuleName = nonTerminalNodeRuleName === _ruleNames.STATEMENT_RULE_NAME;
29
- if (firstTerminalNodeContentLeftBracket && nonTerminalNodeRuleNameStatementRuleName && secondTerminalNodeContentRightBracket) {
30
- bracketedStatementChildNode = nonTerminalNode; ///
31
- }
32
- }
33
- }
34
- return bracketedStatementChildNode;
35
- }
36
- function matchBracketedStatementChildNode(childNodes, callback) {
37
- var bracketedStatementChildNodeMatches = false;
38
- var bracketedStatementChildNode = bracketedStatementChildNodeFromChildNodes(childNodes);
39
- if (bracketedStatementChildNode !== null) {
40
- bracketedStatementChildNodeMatches = callback(bracketedStatementChildNode);
41
- }
42
- return bracketedStatementChildNodeMatches;
43
- }
44
-
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc3RhdGVtZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBmaXJzdCwgc2Vjb25kLCB0aGlyZCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IFNUQVRFTUVOVF9SVUxFX05BTUUgfSBmcm9tIFwiLi4vcnVsZU5hbWVzXCI7XG5pbXBvcnQgeyBMRUZUX0JSQUNLRVQsIFJJR0hUX0JSQUNLRVQsIEJSQUNLRVRFRF9TVEFURU1FTlRfQ0hJTERfTk9ERVNfTEVOR1RIIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlRnJvbUNoaWxkTm9kZXMoY2hpbGROb2Rlcykge1xuICBsZXQgYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlID0gbnVsbDtcblxuICBjb25zdCBjaGlsZE5vZGVzTGVuZ3RoID0gY2hpbGROb2Rlcy5sZW5ndGg7XG5cbiAgaWYgKGNoaWxkTm9kZXNMZW5ndGggPT09IEJSQUNLRVRFRF9TVEFURU1FTlRfQ0hJTERfTk9ERVNfTEVOR1RIKSB7XG4gICAgY29uc3QgZmlyc3RDaGlsZE5vZGUgPSBmaXJzdChjaGlsZE5vZGVzKSxcbiAgICAgICAgICB0aGlyZENoaWxkTm9kZSA9IHRoaXJkKGNoaWxkTm9kZXMpLFxuICAgICAgICAgIHNlY29uZENoaWxkTm9kZSA9IHNlY29uZChjaGlsZE5vZGVzKSxcbiAgICAgICAgICBmaXJzdENoaWxkTm9kZVRlcm1pbmFsTm9kZSA9IGZpcnN0Q2hpbGROb2RlLmlzVGVybWluYWxOb2RlKCksXG4gICAgICAgICAgdGhpcmRDaGlsZE5vZGVUZXJtaW5hbE5vZGUgPSB0aGlyZENoaWxkTm9kZS5pc1Rlcm1pbmFsTm9kZSgpLFxuICAgICAgICAgIHNlY29uZENoaWxkTm9kZU5vblRlcm1pbmFsTm9kZSA9IHNlY29uZENoaWxkTm9kZS5pc05vblRlcm1pbmFsTm9kZSgpO1xuXG4gICAgaWYgKGZpcnN0Q2hpbGROb2RlVGVybWluYWxOb2RlICYmIHNlY29uZENoaWxkTm9kZU5vblRlcm1pbmFsTm9kZSAmJiB0aGlyZENoaWxkTm9kZVRlcm1pbmFsTm9kZSkge1xuICAgICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gc2Vjb25kQ2hpbGROb2RlLCAgLy8vXG4gICAgICAgICAgICBmaXJzdFRlcm1pbmFsTm9kZSA9IGZpcnN0Q2hpbGROb2RlLCAvLy9cbiAgICAgICAgICAgIHNlY29uZFRlcm1pbmFsTm9kZSA9IHRoaXJkQ2hpbGROb2RlLCAgLy8vXG4gICAgICAgICAgICBub25UZXJtaW5hbE5vZGVSdWxlTmFtZSA9IG5vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpLFxuICAgICAgICAgICAgZmlyc3RUZXJtaW5hbE5vZGVDb250ZW50ID0gZmlyc3RUZXJtaW5hbE5vZGUuZ2V0Q29udGVudCgpLFxuICAgICAgICAgICAgc2Vjb25kVGVybWluYWxOb2RlQ29udGVudCA9IHNlY29uZFRlcm1pbmFsTm9kZS5nZXRDb250ZW50KCksXG4gICAgICAgICAgICBmaXJzdFRlcm1pbmFsTm9kZUNvbnRlbnRMZWZ0QnJhY2tldCA9IChmaXJzdFRlcm1pbmFsTm9kZUNvbnRlbnQgPT09IExFRlRfQlJBQ0tFVCksXG4gICAgICAgICAgICBzZWNvbmRUZXJtaW5hbE5vZGVDb250ZW50UmlnaHRCcmFja2V0ID0gKHNlY29uZFRlcm1pbmFsTm9kZUNvbnRlbnQgPT09IFJJR0hUX0JSQUNLRVQpLFxuICAgICAgICAgICAgbm9uVGVybWluYWxOb2RlUnVsZU5hbWVTdGF0ZW1lbnRSdWxlTmFtZSA9IChub25UZXJtaW5hbE5vZGVSdWxlTmFtZSA9PT0gU1RBVEVNRU5UX1JVTEVfTkFNRSk7XG5cbiAgICAgIGlmIChmaXJzdFRlcm1pbmFsTm9kZUNvbnRlbnRMZWZ0QnJhY2tldCAmJiBub25UZXJtaW5hbE5vZGVSdWxlTmFtZVN0YXRlbWVudFJ1bGVOYW1lICYmIHNlY29uZFRlcm1pbmFsTm9kZUNvbnRlbnRSaWdodEJyYWNrZXQpIHtcbiAgICAgICAgYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlID0gbm9uVGVybWluYWxOb2RlOyAgLy8vXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hdGNoQnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlKGNoaWxkTm9kZXMsIGNhbGxiYWNrKSB7XG4gIGxldCBicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGVNYXRjaGVzID0gZmFsc2U7XG5cbiAgY29uc3QgYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlID0gYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlRnJvbUNoaWxkTm9kZXMoY2hpbGROb2Rlcyk7XG5cbiAgaWYgKGJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZSAhPT0gbnVsbCkge1xuICAgIGJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZU1hdGNoZXMgPSBjYWxsYmFjayhicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIGJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZU1hdGNoZXM7XG59XG4iXSwibmFtZXMiOlsiYnJhY2tldGVkU3RhdGVtZW50Q2hpbGROb2RlRnJvbUNoaWxkTm9kZXMiLCJtYXRjaEJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZSIsImNoaWxkTm9kZXMiLCJicmFja2V0ZWRTdGF0ZW1lbnRDaGlsZE5vZGUiLCJjaGlsZE5vZGVzTGVuZ3RoIiwibGVuZ3RoIiwiQlJBQ0tFVEVEX1NUQVRFTUVOVF9DSElMRF9OT0RFU19MRU5HVEgiLCJmaXJzdENoaWxkTm9kZSIsImZpcnN0IiwidGhpcmRDaGlsZE5vZGUiLCJ0aGlyZCIsInNlY29uZENoaWxkTm9kZSIsInNlY29uZCIsImZpcnN0Q2hpbGROb2RlVGVybWluYWxOb2RlIiwiaXNUZXJtaW5hbE5vZGUiLCJ0aGlyZENoaWxkTm9kZVRlcm1pbmFsTm9kZSIsInNlY29uZENoaWxkTm9kZU5vblRlcm1pbmFsTm9kZSIsImlzTm9uVGVybWluYWxOb2RlIiwibm9uVGVybWluYWxOb2RlIiwiZmlyc3RUZXJtaW5hbE5vZGUiLCJzZWNvbmRUZXJtaW5hbE5vZGUiLCJub25UZXJtaW5hbE5vZGVSdWxlTmFtZSIsImdldFJ1bGVOYW1lIiwiZmlyc3RUZXJtaW5hbE5vZGVDb250ZW50IiwiZ2V0Q29udGVudCIsInNlY29uZFRlcm1pbmFsTm9kZUNvbnRlbnQiLCJmaXJzdFRlcm1pbmFsTm9kZUNvbnRlbnRMZWZ0QnJhY2tldCIsIkxFRlRfQlJBQ0tFVCIsInNlY29uZFRlcm1pbmFsTm9kZUNvbnRlbnRSaWdodEJyYWNrZXQiLCJSSUdIVF9CUkFDS0VUIiwibm9uVGVybWluYWxOb2RlUnVsZU5hbWVTdGF0ZW1lbnRSdWxlTmFtZSIsIlNUQVRFTUVOVF9SVUxFX05BTUUiLCJjYWxsYmFjayIsImJyYWNrZXRlZFN0YXRlbWVudENoaWxkTm9kZU1hdGNoZXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztJQU1nQkEseUNBQXlDO2VBQXpDQTs7SUFpQ0FDLGdDQUFnQztlQUFoQ0E7OztxQkFyQ3FCO3lCQUNEO3lCQUNnRDtBQUU3RSxTQUFTRCwwQ0FBMENFLFVBQVUsRUFBRTtJQUNwRSxJQUFJQyw4QkFBOEIsSUFBSTtJQUV0QyxJQUFNQyxtQkFBbUJGLFdBQVdHLE1BQU07SUFFMUMsSUFBSUQscUJBQXFCRSxpREFBc0MsRUFBRTtRQUMvRCxJQUFNQyxpQkFBaUJDLElBQUFBLFlBQUssRUFBQ04sYUFDdkJPLGlCQUFpQkMsSUFBQUEsWUFBSyxFQUFDUixhQUN2QlMsa0JBQWtCQyxJQUFBQSxhQUFNLEVBQUNWLGFBQ3pCVyw2QkFBNkJOLGVBQWVPLGNBQWMsSUFDMURDLDZCQUE2Qk4sZUFBZUssY0FBYyxJQUMxREUsaUNBQWlDTCxnQkFBZ0JNLGlCQUFpQjtRQUV4RSxJQUFJSiw4QkFBOEJHLGtDQUFrQ0QsNEJBQTRCO1lBQzlGLElBQU1HLGtCQUFrQlAsaUJBQ2xCUSxvQkFBb0JaLGdCQUNwQmEscUJBQXFCWCxnQkFDckJZLDBCQUEwQkgsZ0JBQWdCSSxXQUFXLElBQ3JEQywyQkFBMkJKLGtCQUFrQkssVUFBVSxJQUN2REMsNEJBQTRCTCxtQkFBbUJJLFVBQVUsSUFDekRFLHNDQUF1Q0gsNkJBQTZCSSx1QkFBWSxFQUNoRkMsd0NBQXlDSCw4QkFBOEJJLHdCQUFhLEVBQ3BGQywyQ0FBNENULDRCQUE0QlUsOEJBQW1CO1lBRWpHLElBQUlMLHVDQUF1Q0ksNENBQTRDRix1Q0FBdUM7Z0JBQzVIekIsOEJBQThCZSxpQkFBa0IsR0FBRztZQUNyRCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPZjtBQUNUO0FBRU8sU0FBU0YsaUNBQWlDQyxVQUFVLEVBQUU4QixRQUFRLEVBQUU7SUFDckUsSUFBSUMscUNBQXFDLEtBQUs7SUFFOUMsSUFBTTlCLDhCQUE4QkgsMENBQTBDRTtJQUU5RSxJQUFJQyxnQ0FBZ0MsSUFBSSxFQUFFO1FBQ3hDOEIscUNBQXFDRCxTQUFTN0I7SUFDaEQsQ0FBQztJQUVELE9BQU84QjtBQUNUIn0=
package/src/assertion.js DELETED
@@ -1,150 +0,0 @@
1
- "use strict";
2
-
3
- import { nodeQuery } from "./utilities/query";
4
-
5
- const statementNodeQuery = nodeQuery("/*/statement!");
6
-
7
- export default class Assertion {
8
- constructor(subproofNode, statementNode) {
9
- this.subproofNode = subproofNode;
10
- this.statementNode = statementNode;
11
- }
12
-
13
- getNonTerminalNode() {
14
- const nonTerminalNode = (this.statementNode !== null) ?
15
- this.statementNode :
16
- null;
17
-
18
- return nonTerminalNode;
19
- }
20
-
21
- getSubproofNode() {
22
- return this.subproofNode;
23
- }
24
-
25
- getStatementNode() {
26
- return this.statementNode;
27
- }
28
-
29
- match(assertion) {
30
- let matches = false;
31
-
32
- const statementNode = assertion.getstatementNode();
33
-
34
- if ((statementNode !== null) && (this.statementNode !== null)) {
35
- const nonTerminalNode = this.statementNode, ///
36
- assertionNonTerminalNode = statementNode, ///
37
- assertionNonTerminalNodeMatches = matchAssertionNonTerminalNode(assertionNonTerminalNode, nonTerminalNode);
38
-
39
- matches = assertionNonTerminalNodeMatches; ///
40
- }
41
-
42
- return matches;
43
- }
44
-
45
- static fromSubproofNode(subproofNode) {
46
- const statementNode = null,
47
- assertion = new Assertion(subproofNode, statementNode);
48
-
49
- return assertion;
50
- }
51
-
52
- static fromStatementNode(statementNode) {
53
- const subproofNode = null,
54
- assertion = new Assertion(subproofNode, statementNode);
55
-
56
- return assertion;
57
- }
58
-
59
- static fromQualifiedStatementNode(qualifiedStatementNode) {
60
- const subproofNode = null,
61
- statementNode = statementNodeQuery(qualifiedStatementNode),
62
- assertion = new Assertion(subproofNode, statementNode);
63
-
64
- return assertion;
65
- }
66
-
67
- static fromUnqualifiedStatementNode(unqualifiedStatementNode) {
68
- const subproofNode = null,
69
- statementNode = statementNodeQuery(unqualifiedStatementNode),
70
- assertion = new Assertion(subproofNode, statementNode);
71
-
72
- return assertion;
73
- }
74
- }
75
-
76
- function matchAssertionNode(assertionNode, node) {
77
- let assertionNodeMatches = false;
78
-
79
- const nodeTerminalNode = node.isTerminalNode(),
80
- ruleNodeTerminalNode = assertionNode.isTerminalNode();
81
-
82
- if (nodeTerminalNode === ruleNodeTerminalNode) {
83
- if (nodeTerminalNode) {
84
- const terminalNode = node, ///
85
- assertionTerminalNode = assertionNode, ///
86
- assertionTerminalNodeMatches = matchAssertionTerminalNode(assertionTerminalNode, terminalNode);
87
-
88
- assertionNodeMatches = assertionTerminalNodeMatches; ///
89
- } else {
90
- const nonTerminalNode = node, ///
91
- assertionNonTerminalNode = assertionNode, ///
92
- assertionNonTerminalNodeMatches = matchAssertionNonTerminalNode(assertionNonTerminalNode, nonTerminalNode);
93
-
94
- assertionNodeMatches = assertionNonTerminalNodeMatches; ///
95
- }
96
- }
97
-
98
- return assertionNodeMatches;
99
- }
100
-
101
- function matchAssertionChildNodes(assertionChildNodes, childNodes) {
102
- let assertionChildNodesMatches = false;
103
-
104
- const childNodesLength = childNodes.length,
105
- assertionChildNodesLength = assertionChildNodes.length;
106
-
107
- if (childNodesLength === assertionChildNodesLength) {
108
- assertionChildNodesMatches = childNodes.every((childNode, index) => {
109
- const assertionChildNode = assertionChildNodes[index],
110
- assertionNode = assertionChildNode, ///
111
- node = childNode, ///
112
- assertionNodeMatches = matchAssertionNode(assertionNode, node);
113
-
114
- if (assertionNodeMatches) {
115
- return true;
116
- }
117
- })
118
- }
119
-
120
- return assertionChildNodesMatches;
121
- }
122
-
123
- function matchAssertionTerminalNode(assertionTerminalNode, terminalNode) {
124
- let assertionTerminalNodeMatches = false;
125
-
126
- const matches = assertionTerminalNode.match(terminalNode);
127
-
128
- if (matches) {
129
- assertionTerminalNodeMatches = true;
130
- }
131
-
132
- return assertionTerminalNodeMatches;
133
- }
134
-
135
- function matchAssertionNonTerminalNode(assertionNonTerminalNode, nonTerminalNode) {
136
- let assertionNonTerminalNodeMatches = false;
137
-
138
- const ruleName = nonTerminalNode.getRuleName(),
139
- assertionRuleName = assertionNonTerminalNode.getRuleName(); ///
140
-
141
- if (ruleName === assertionRuleName) {
142
- const childNodes = nonTerminalNode.getChildNodes(),
143
- assertionChildNodes = assertionNonTerminalNode.getChildNodes(),
144
- assertionChildNodesMatches = matchAssertionChildNodes(assertionChildNodes, childNodes);
145
-
146
- assertionNonTerminalNodeMatches = assertionChildNodesMatches; ///
147
- }
148
-
149
- return assertionNonTerminalNodeMatches;
150
- }