occam-verify-cli 0.0.464 → 0.0.466
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.
- package/lib/antecedent.js +214 -0
- package/lib/axiom.js +93 -78
- package/lib/axiomLemmaTheorem.js +190 -0
- package/lib/consequent.js +157 -0
- package/lib/constants.js +9 -1
- package/lib/lemma.js +93 -78
- package/lib/ruleNames.js +4 -4
- package/lib/substitution.js +123 -0
- package/lib/theorem.js +93 -78
- package/lib/utilities/statement.js +45 -0
- package/lib/utilities/string.js +6 -6
- package/lib/verify/antecedentOrAntecedents.js +38 -0
- package/lib/verify/axiom.js +15 -14
- package/lib/verify/conditinalIndicative.js +32 -0
- package/lib/verify/{indicativeConditional.js → conditionalIndicative.js} +10 -10
- package/lib/verify/consequent.js +36 -0
- package/lib/verify/derivation.js +1 -1
- package/lib/verify/lemma.js +25 -19
- package/lib/verify/proof.js +26 -11
- package/lib/verify/statement/qualified.js +16 -4
- package/lib/verify/theorem.js +22 -17
- package/lib/verify/unconditionalIndicative.js +28 -0
- package/package.json +3 -3
- package/src/antecedent.js +235 -0
- package/src/axiom.js +5 -95
- package/src/axiomLemmaTheorem.js +190 -0
- package/src/consequent.js +187 -0
- package/src/constants.js +2 -0
- package/src/lemma.js +5 -95
- package/src/ruleNames.js +1 -1
- package/src/substitution.js +130 -0
- package/src/theorem.js +5 -95
- package/src/utilities/statement.js +50 -0
- package/src/utilities/string.js +6 -6
- package/src/verify/antecedentOrAntecedents.js +40 -0
- package/src/verify/axiom.js +21 -16
- package/src/verify/conditinalIndicative.js +31 -0
- package/src/verify/conditionalIndicative.js +29 -0
- package/src/verify/consequent.js +36 -0
- package/src/verify/derivation.js +1 -1
- package/src/verify/lemma.js +38 -21
- package/src/verify/proof.js +32 -14
- package/src/verify/statement/qualified.js +15 -6
- package/src/verify/theorem.js +32 -20
- package/src/verify/unconditionalIndicative.js +24 -0
- package/src/verify/indicativeConditional.js +0 -29
|
@@ -0,0 +1,190 @@
|
|
|
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 AxiomLemmaTheorem;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _label = /*#__PURE__*/ _interopRequireDefault(require("./label"));
|
|
12
|
+
var _antecedent = /*#__PURE__*/ _interopRequireDefault(require("./antecedent"));
|
|
13
|
+
var _consequent = /*#__PURE__*/ _interopRequireDefault(require("./consequent"));
|
|
14
|
+
var _array = require("./utilities/array");
|
|
15
|
+
function _classCallCheck(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 _createClass(Constructor, protoProps, staticProps) {
|
|
30
|
+
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
31
|
+
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
32
|
+
return Constructor;
|
|
33
|
+
}
|
|
34
|
+
function _interopRequireDefault(obj) {
|
|
35
|
+
return obj && obj.__esModule ? obj : {
|
|
36
|
+
default: obj
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
var AxiomLemmaTheorem = /*#__PURE__*/ function() {
|
|
40
|
+
function AxiomLemmaTheorem(labels, antecedents, consequent) {
|
|
41
|
+
_classCallCheck(this, AxiomLemmaTheorem);
|
|
42
|
+
this.labels = labels;
|
|
43
|
+
this.antecedents = antecedents;
|
|
44
|
+
this.consequent = consequent;
|
|
45
|
+
}
|
|
46
|
+
_createClass(AxiomLemmaTheorem, [
|
|
47
|
+
{
|
|
48
|
+
key: "getLabels",
|
|
49
|
+
value: function getLabels() {
|
|
50
|
+
return this.labels;
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
key: "getAntecedents",
|
|
55
|
+
value: function getAntecedents() {
|
|
56
|
+
return this.antecedents;
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
key: "getConsequent",
|
|
61
|
+
value: function getConsequent() {
|
|
62
|
+
return this.consequent;
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
key: "matchLabelName",
|
|
67
|
+
value: function matchLabelName(labelName) {
|
|
68
|
+
var matchesLabelName = this.labels.some(function(label) {
|
|
69
|
+
var name = labelName, labelMatchesName = label.matchName(name);
|
|
70
|
+
if (labelMatchesName) {
|
|
71
|
+
return true;
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
return matchesLabelName;
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
key: "matchStatement",
|
|
79
|
+
value: function matchStatement(statementNode, proofContext) {
|
|
80
|
+
var _this = this;
|
|
81
|
+
var statementNatches;
|
|
82
|
+
var antecedentsLength = this.antecedents.length;
|
|
83
|
+
if (antecedentsLength === 0) {
|
|
84
|
+
var substitutions = [], consequentMatches = matchConsequent(this.consequent, statementNode, substitutions);
|
|
85
|
+
statementNatches = consequentMatches; ///
|
|
86
|
+
} else {
|
|
87
|
+
var assertions = proofContext.getAssertions();
|
|
88
|
+
statementNatches = (0, _array.someSubArray)(assertions, antecedentsLength, function(assertions) {
|
|
89
|
+
var antecedentsMatchConsequent = matchAntecedentsAndConsequent(_this.antecedents, _this.consequent, assertions, statementNode);
|
|
90
|
+
if (antecedentsMatchConsequent) {
|
|
91
|
+
return true;
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
return statementNatches;
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
key: "toJSON",
|
|
100
|
+
value: function toJSON() {
|
|
101
|
+
var kind = this.constructor.kind, labelsJSON = this.labels.map(function(label) {
|
|
102
|
+
var labelJSON = label.toJSON();
|
|
103
|
+
return labelJSON;
|
|
104
|
+
}), antecedentsJSON = this.antecedents.map(function(antecedent) {
|
|
105
|
+
var antecedentJSON = antecedent.toJSON();
|
|
106
|
+
return antecedentJSON;
|
|
107
|
+
}), consequentJSON = this.consequent.toJSON(), labels = labelsJSON, antecedents = antecedentsJSON, consequent = consequentJSON, json = {
|
|
108
|
+
kind: kind,
|
|
109
|
+
labels: labels,
|
|
110
|
+
antecedents: antecedents,
|
|
111
|
+
consequent: consequent
|
|
112
|
+
};
|
|
113
|
+
return json;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
], [
|
|
117
|
+
{
|
|
118
|
+
key: "fromJSON",
|
|
119
|
+
value: function fromJSON(Class, json, releaseContext) {
|
|
120
|
+
var labels = json.labels;
|
|
121
|
+
var labelsJSON = labels; ///
|
|
122
|
+
labels = labelsJSON.map(function(labelJSON) {
|
|
123
|
+
var _$json = labelJSON, label = _label.default.fromJSON(_$json, releaseContext);
|
|
124
|
+
return label;
|
|
125
|
+
});
|
|
126
|
+
var antecedents = json.antecedents;
|
|
127
|
+
var antecedentsJSON = antecedents; ///
|
|
128
|
+
antecedents = antecedentsJSON.map(function(antecedentJSON) {
|
|
129
|
+
var _$json = antecedentJSON, antecedent = _antecedent.default.fromJSON(_$json, releaseContext);
|
|
130
|
+
return antecedent;
|
|
131
|
+
});
|
|
132
|
+
var consequent = json.consequent;
|
|
133
|
+
var consequentJSON = consequent; ///
|
|
134
|
+
json = consequentJSON; ///
|
|
135
|
+
consequent = _consequent.default.fromJSON(json, releaseContext);
|
|
136
|
+
return new Class(labels, antecedents, consequent); ///
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
key: "fromLabelsAntecedentsAndConsequent",
|
|
141
|
+
value: function fromLabelsAntecedentsAndConsequent(Class, labels, antecedents, consequent) {
|
|
142
|
+
return new Class(labels, antecedents, consequent);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
]);
|
|
146
|
+
return AxiomLemmaTheorem;
|
|
147
|
+
}();
|
|
148
|
+
function matchAntecedent(antecedent, assertions, substitutions) {
|
|
149
|
+
var assertion = (0, _array.prune)(assertions, function(assertion) {
|
|
150
|
+
var subproofNode = assertion.getSubproofNode(), statementNode = assertion.getStatementNode();
|
|
151
|
+
if (subproofNode !== null) {
|
|
152
|
+
var subProofMatches = antecedent.matchSubproofNode(subproofNode, substitutions);
|
|
153
|
+
if (!subProofMatches) {
|
|
154
|
+
return true;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
if (statementNode !== null) {
|
|
158
|
+
var statementMatches = antecedent.matchStatementNode(statementNode, substitutions);
|
|
159
|
+
if (!statementMatches) {
|
|
160
|
+
return true;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}) || null;
|
|
164
|
+
var antecedentMatches = assertion !== null;
|
|
165
|
+
return antecedentMatches;
|
|
166
|
+
}
|
|
167
|
+
function matchAntecedents(antecedent, assertions, substitutions) {
|
|
168
|
+
var antecedentsMatches = antecedent.every(function(antecedent) {
|
|
169
|
+
var antecedentMatches = matchAntecedent(antecedent, assertions, substitutions);
|
|
170
|
+
if (antecedentMatches) {
|
|
171
|
+
return true;
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
return antecedentsMatches;
|
|
175
|
+
}
|
|
176
|
+
function matchConsequent(consequent, statementNode, substitutions) {
|
|
177
|
+
var nonTerminalNodeMatches = consequent.matchStatementNode(statementNode, substitutions), consequentMatches = nonTerminalNodeMatches; ///
|
|
178
|
+
return consequentMatches;
|
|
179
|
+
}
|
|
180
|
+
function matchAntecedentsAndConsequent(antecedents, consequent, assertions, statementNode) {
|
|
181
|
+
var antecedentsMatchConsequent = false;
|
|
182
|
+
var substitutions = [], antecedentsMatches = matchAntecedents(antecedents, assertions, substitutions);
|
|
183
|
+
if (antecedentsMatches) {
|
|
184
|
+
var consequentMatches = matchConsequent(consequent, statementNode, substitutions);
|
|
185
|
+
antecedentsMatchConsequent = consequentMatches; ///
|
|
186
|
+
}
|
|
187
|
+
return antecedentsMatchConsequent;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9heGlvbUxlbW1hVGhlb3JlbS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IExhYmVsIGZyb20gXCIuL2xhYmVsXCI7XG5pbXBvcnQgQW50ZWNlZGVudCBmcm9tIFwiLi9hbnRlY2VkZW50XCI7XG5pbXBvcnQgQ29uc2VxdWVudCBmcm9tIFwiLi9jb25zZXF1ZW50XCI7XG5cbmltcG9ydCB7IHBydW5lIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2FycmF5XCI7XG5pbXBvcnQgeyBzb21lU3ViQXJyYXkgfSBmcm9tIFwiLi91dGlsaXRpZXMvYXJyYXlcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXhpb21MZW1tYVRoZW9yZW0ge1xuICBjb25zdHJ1Y3RvcihsYWJlbHMsIGFudGVjZWRlbnRzLCBjb25zZXF1ZW50KSB7XG4gICAgdGhpcy5sYWJlbHMgPSBsYWJlbHM7XG4gICAgdGhpcy5hbnRlY2VkZW50cyA9IGFudGVjZWRlbnRzO1xuICAgIHRoaXMuY29uc2VxdWVudCA9IGNvbnNlcXVlbnQ7XG4gIH1cblxuICBnZXRMYWJlbHMoKSB7XG4gICAgcmV0dXJuIHRoaXMubGFiZWxzO1xuICB9XG5cbiAgZ2V0QW50ZWNlZGVudHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuYW50ZWNlZGVudHM7XG4gIH1cblxuICBnZXRDb25zZXF1ZW50KCkge1xuICAgIHJldHVybiB0aGlzLmNvbnNlcXVlbnQ7XG4gIH1cblxuICBtYXRjaExhYmVsTmFtZShsYWJlbE5hbWUpIHtcbiAgICBjb25zdCBtYXRjaGVzTGFiZWxOYW1lID0gdGhpcy5sYWJlbHMuc29tZSgobGFiZWwpID0+IHtcbiAgICAgIGNvbnN0IG5hbWUgPSBsYWJlbE5hbWUsIC8vL1xuICAgICAgICAgICAgbGFiZWxNYXRjaGVzTmFtZSA9IGxhYmVsLm1hdGNoTmFtZShuYW1lKTtcblxuICAgICAgaWYgKGxhYmVsTWF0Y2hlc05hbWUpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbWF0Y2hlc0xhYmVsTmFtZTtcbiAgfVxuXG4gIG1hdGNoU3RhdGVtZW50KHN0YXRlbWVudE5vZGUsIHByb29mQ29udGV4dCkge1xuICAgIGxldCBzdGF0ZW1lbnROYXRjaGVzO1xuXG4gICAgY29uc3QgYW50ZWNlZGVudHNMZW5ndGggPSB0aGlzLmFudGVjZWRlbnRzLmxlbmd0aDtcblxuICAgIGlmIChhbnRlY2VkZW50c0xlbmd0aCA9PT0gMCkge1xuICAgICAgY29uc3Qgc3Vic3RpdHV0aW9ucyA9IFtdLFxuICAgICAgICAgICAgY29uc2VxdWVudE1hdGNoZXMgPSBtYXRjaENvbnNlcXVlbnQodGhpcy5jb25zZXF1ZW50LCBzdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zKTtcblxuICAgICAgc3RhdGVtZW50TmF0Y2hlcyA9IGNvbnNlcXVlbnRNYXRjaGVzOyAvLy9cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgYXNzZXJ0aW9ucyA9IHByb29mQ29udGV4dC5nZXRBc3NlcnRpb25zKCk7XG5cbiAgICAgIHN0YXRlbWVudE5hdGNoZXMgPSBzb21lU3ViQXJyYXkoYXNzZXJ0aW9ucywgYW50ZWNlZGVudHNMZW5ndGgsIChhc3NlcnRpb25zKSA9PiB7XG4gICAgICAgIGNvbnN0IGFudGVjZWRlbnRzTWF0Y2hDb25zZXF1ZW50ID0gbWF0Y2hBbnRlY2VkZW50c0FuZENvbnNlcXVlbnQodGhpcy5hbnRlY2VkZW50cywgdGhpcy5jb25zZXF1ZW50LCBhc3NlcnRpb25zLCBzdGF0ZW1lbnROb2RlKTtcblxuICAgICAgICBpZiAoYW50ZWNlZGVudHNNYXRjaENvbnNlcXVlbnQpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlbWVudE5hdGNoZXM7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgeyBraW5kIH0gPSB0aGlzLmNvbnN0cnVjdG9yLFxuICAgICAgICAgIGxhYmVsc0pTT04gPSB0aGlzLmxhYmVscy5tYXAoKGxhYmVsKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBsYWJlbEpTT04gPSBsYWJlbC50b0pTT04oKTtcblxuICAgICAgICAgICAgcmV0dXJuIGxhYmVsSlNPTjtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBhbnRlY2VkZW50c0pTT04gPSB0aGlzLmFudGVjZWRlbnRzLm1hcCgoYW50ZWNlZGVudCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYW50ZWNlZGVudEpTT04gPSBhbnRlY2VkZW50LnRvSlNPTigpO1xuXG4gICAgICAgICAgICByZXR1cm4gYW50ZWNlZGVudEpTT047XG4gICAgICAgICAgfSksXG4gICAgICAgICAgY29uc2VxdWVudEpTT04gPSB0aGlzLmNvbnNlcXVlbnQudG9KU09OKCksXG4gICAgICAgICAgbGFiZWxzID0gbGFiZWxzSlNPTiwgIC8vL1xuICAgICAgICAgIGFudGVjZWRlbnRzID0gYW50ZWNlZGVudHNKU09OLCAgLy8vXG4gICAgICAgICAgY29uc2VxdWVudCA9IGNvbnNlcXVlbnRKU09OLCAgLy8vXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIGtpbmQsXG4gICAgICAgICAgICBsYWJlbHMsXG4gICAgICAgICAgICBhbnRlY2VkZW50cyxcbiAgICAgICAgICAgIGNvbnNlcXVlbnRcbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgZnJvbUpTT04oQ2xhc3MsIGpzb24sIHJlbGVhc2VDb250ZXh0KSB7XG4gICAgbGV0IHsgbGFiZWxzIH0gPSBqc29uO1xuXG4gICAgY29uc3QgbGFiZWxzSlNPTiA9IGxhYmVsczsgIC8vL1xuXG4gICAgbGFiZWxzID0gbGFiZWxzSlNPTi5tYXAoKGxhYmVsSlNPTikgPT4ge1xuICAgICAgY29uc3QganNvbiA9IGxhYmVsSlNPTiwgLy8vXG4gICAgICAgICAgICBsYWJlbCA9IExhYmVsLmZyb21KU09OKGpzb24sIHJlbGVhc2VDb250ZXh0KTtcblxuICAgICAgcmV0dXJuIGxhYmVsO1xuICAgIH0pO1xuXG4gICAgbGV0IHsgYW50ZWNlZGVudHMgfSA9IGpzb247XG5cbiAgICBjb25zdCBhbnRlY2VkZW50c0pTT04gPSBhbnRlY2VkZW50czsgIC8vL1xuXG4gICAgYW50ZWNlZGVudHMgPSBhbnRlY2VkZW50c0pTT04ubWFwKChhbnRlY2VkZW50SlNPTikgPT4ge1xuICAgICAgY29uc3QganNvbiA9IGFudGVjZWRlbnRKU09OLCAvLy9cbiAgICAgICAgICAgIGFudGVjZWRlbnQgPSBBbnRlY2VkZW50LmZyb21KU09OKGpzb24sIHJlbGVhc2VDb250ZXh0KTtcblxuICAgICAgcmV0dXJuIGFudGVjZWRlbnQ7XG4gICAgfSk7XG5cbiAgICBsZXQgeyBjb25zZXF1ZW50IH0gPSBqc29uO1xuXG4gICAgY29uc3QgY29uc2VxdWVudEpTT04gPSBjb25zZXF1ZW50OyAgLy8vXG5cbiAgICBqc29uID0gY29uc2VxdWVudEpTT047ICAvLy9cblxuICAgIGNvbnNlcXVlbnQgPSBDb25zZXF1ZW50LmZyb21KU09OKGpzb24sIHJlbGVhc2VDb250ZXh0KTtcblxuICAgIHJldHVybiBuZXcgQ2xhc3MobGFiZWxzLCBhbnRlY2VkZW50cywgY29uc2VxdWVudCk7ICAvLy9cbiAgfVxuXG4gIHN0YXRpYyBmcm9tTGFiZWxzQW50ZWNlZGVudHNBbmRDb25zZXF1ZW50KENsYXNzLCBsYWJlbHMsIGFudGVjZWRlbnRzLCBjb25zZXF1ZW50KSB7IHJldHVybiBuZXcgQ2xhc3MobGFiZWxzLCBhbnRlY2VkZW50cywgY29uc2VxdWVudCk7IH1cbn1cblxuZnVuY3Rpb24gbWF0Y2hBbnRlY2VkZW50KGFudGVjZWRlbnQsIGFzc2VydGlvbnMsIHN1YnN0aXR1dGlvbnMpIHtcbiAgY29uc3QgYXNzZXJ0aW9uID0gcHJ1bmUoYXNzZXJ0aW9ucywgKGFzc2VydGlvbikgPT4ge1xuICAgIGNvbnN0IHN1YnByb29mTm9kZSA9IGFzc2VydGlvbi5nZXRTdWJwcm9vZk5vZGUoKSxcbiAgICAgICAgICBzdGF0ZW1lbnROb2RlID0gYXNzZXJ0aW9uLmdldFN0YXRlbWVudE5vZGUoKTtcblxuICAgIGlmIChzdWJwcm9vZk5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHN1YlByb29mTWF0Y2hlcyA9IGFudGVjZWRlbnQubWF0Y2hTdWJwcm9vZk5vZGUoc3VicHJvb2ZOb2RlLCBzdWJzdGl0dXRpb25zKTtcblxuICAgICAgaWYgKCFzdWJQcm9vZk1hdGNoZXMpIHsgIC8vL1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc3RhdGVtZW50Tm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgc3RhdGVtZW50TWF0Y2hlcyA9IGFudGVjZWRlbnQubWF0Y2hTdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUsIHN1YnN0aXR1dGlvbnMpO1xuXG4gICAgICBpZiAoIXN0YXRlbWVudE1hdGNoZXMpIHsgIC8vL1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgfSkgfHwgbnVsbDtcblxuICBjb25zdCBhbnRlY2VkZW50TWF0Y2hlcyA9IChhc3NlcnRpb24gIT09IG51bGwpO1xuXG4gIHJldHVybiBhbnRlY2VkZW50TWF0Y2hlcztcbn1cblxuZnVuY3Rpb24gbWF0Y2hBbnRlY2VkZW50cyhhbnRlY2VkZW50LCBhc3NlcnRpb25zLCBzdWJzdGl0dXRpb25zKSB7XG4gIGNvbnN0IGFudGVjZWRlbnRzTWF0Y2hlcyA9IGFudGVjZWRlbnQuZXZlcnkoKGFudGVjZWRlbnQpID0+IHtcbiAgICBjb25zdCBhbnRlY2VkZW50TWF0Y2hlcyA9IG1hdGNoQW50ZWNlZGVudChhbnRlY2VkZW50LCBhc3NlcnRpb25zLCBzdWJzdGl0dXRpb25zKTtcblxuICAgIGlmIChhbnRlY2VkZW50TWF0Y2hlcykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gYW50ZWNlZGVudHNNYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBtYXRjaENvbnNlcXVlbnQoY29uc2VxdWVudCwgc3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9ucykge1xuICBjb25zdCBub25UZXJtaW5hbE5vZGVNYXRjaGVzID0gY29uc2VxdWVudC5tYXRjaFN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9ucyksXG4gICAgICAgIGNvbnNlcXVlbnRNYXRjaGVzID0gbm9uVGVybWluYWxOb2RlTWF0Y2hlczsgLy8vXG5cbiAgcmV0dXJuIGNvbnNlcXVlbnRNYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBtYXRjaEFudGVjZWRlbnRzQW5kQ29uc2VxdWVudChhbnRlY2VkZW50cywgY29uc2VxdWVudCwgYXNzZXJ0aW9ucywgc3RhdGVtZW50Tm9kZSkge1xuICBsZXQgYW50ZWNlZGVudHNNYXRjaENvbnNlcXVlbnQgPSBmYWxzZTtcblxuICBjb25zdCBzdWJzdGl0dXRpb25zID0gW10sXG4gICAgICAgIGFudGVjZWRlbnRzTWF0Y2hlcyA9IG1hdGNoQW50ZWNlZGVudHMoYW50ZWNlZGVudHMsIGFzc2VydGlvbnMsIHN1YnN0aXR1dGlvbnMpO1xuXG4gIGlmIChhbnRlY2VkZW50c01hdGNoZXMpIHtcbiAgICBjb25zdCBjb25zZXF1ZW50TWF0Y2hlcyA9IG1hdGNoQ29uc2VxdWVudChjb25zZXF1ZW50LCBzdGF0ZW1lbnROb2RlLCBzdWJzdGl0dXRpb25zKTtcblxuICAgIGFudGVjZWRlbnRzTWF0Y2hDb25zZXF1ZW50ID0gY29uc2VxdWVudE1hdGNoZXM7ICAvLy9cbiAgfVxuXG4gIHJldHVybiBhbnRlY2VkZW50c01hdGNoQ29uc2VxdWVudDtcbn1cbiJdLCJuYW1lcyI6WyJBeGlvbUxlbW1hVGhlb3JlbSIsImxhYmVscyIsImFudGVjZWRlbnRzIiwiY29uc2VxdWVudCIsImdldExhYmVscyIsImdldEFudGVjZWRlbnRzIiwiZ2V0Q29uc2VxdWVudCIsIm1hdGNoTGFiZWxOYW1lIiwibGFiZWxOYW1lIiwibWF0Y2hlc0xhYmVsTmFtZSIsInNvbWUiLCJsYWJlbCIsIm5hbWUiLCJsYWJlbE1hdGNoZXNOYW1lIiwibWF0Y2hOYW1lIiwibWF0Y2hTdGF0ZW1lbnQiLCJzdGF0ZW1lbnROb2RlIiwicHJvb2ZDb250ZXh0Iiwic3RhdGVtZW50TmF0Y2hlcyIsImFudGVjZWRlbnRzTGVuZ3RoIiwibGVuZ3RoIiwic3Vic3RpdHV0aW9ucyIsImNvbnNlcXVlbnRNYXRjaGVzIiwibWF0Y2hDb25zZXF1ZW50IiwiYXNzZXJ0aW9ucyIsImdldEFzc2VydGlvbnMiLCJzb21lU3ViQXJyYXkiLCJhbnRlY2VkZW50c01hdGNoQ29uc2VxdWVudCIsIm1hdGNoQW50ZWNlZGVudHNBbmRDb25zZXF1ZW50IiwidG9KU09OIiwia2luZCIsImNvbnN0cnVjdG9yIiwibGFiZWxzSlNPTiIsIm1hcCIsImxhYmVsSlNPTiIsImFudGVjZWRlbnRzSlNPTiIsImFudGVjZWRlbnQiLCJhbnRlY2VkZW50SlNPTiIsImNvbnNlcXVlbnRKU09OIiwianNvbiIsImZyb21KU09OIiwiQ2xhc3MiLCJyZWxlYXNlQ29udGV4dCIsIkxhYmVsIiwiQW50ZWNlZGVudCIsIkNvbnNlcXVlbnQiLCJmcm9tTGFiZWxzQW50ZWNlZGVudHNBbmRDb25zZXF1ZW50IiwibWF0Y2hBbnRlY2VkZW50IiwiYXNzZXJ0aW9uIiwicHJ1bmUiLCJzdWJwcm9vZk5vZGUiLCJnZXRTdWJwcm9vZk5vZGUiLCJnZXRTdGF0ZW1lbnROb2RlIiwic3ViUHJvb2ZNYXRjaGVzIiwibWF0Y2hTdWJwcm9vZk5vZGUiLCJzdGF0ZW1lbnRNYXRjaGVzIiwibWF0Y2hTdGF0ZW1lbnROb2RlIiwiYW50ZWNlZGVudE1hdGNoZXMiLCJtYXRjaEFudGVjZWRlbnRzIiwiYW50ZWNlZGVudHNNYXRjaGVzIiwiZXZlcnkiLCJub25UZXJtaW5hbE5vZGVNYXRjaGVzIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQVNxQkE7OzswREFQSDsrREFDSzsrREFDQTtxQkFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdQLElBQUEsQUFBTUEsa0NBd0hsQixBQXhIWTthQUFNQSxrQkFDUEMsTUFBTSxFQUFFQyxXQUFXLEVBQUVDLFVBQVU7OEJBRHhCSDtRQUVqQixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLFdBQVcsR0FBR0E7UUFDbkIsSUFBSSxDQUFDQyxVQUFVLEdBQUdBOztpQkFKREg7O1lBT25CSSxLQUFBQTttQkFBQUEsU0FBQUEsWUFBWTtnQkFDVixPQUFPLElBQUksQ0FBQ0gsTUFBTTtZQUNwQjs7O1lBRUFJLEtBQUFBO21CQUFBQSxTQUFBQSxpQkFBaUI7Z0JBQ2YsT0FBTyxJQUFJLENBQUNILFdBQVc7WUFDekI7OztZQUVBSSxLQUFBQTttQkFBQUEsU0FBQUEsZ0JBQWdCO2dCQUNkLE9BQU8sSUFBSSxDQUFDSCxVQUFVO1lBQ3hCOzs7WUFFQUksS0FBQUE7bUJBQUFBLFNBQUFBLGVBQWVDLFNBQVMsRUFBRTtnQkFDeEIsSUFBTUMsbUJBQW1CLElBQUksQ0FBQ1IsTUFBTSxDQUFDUyxJQUFJLENBQUMsU0FBQ0MsT0FBVTtvQkFDbkQsSUFBTUMsT0FBT0osV0FDUEssbUJBQW1CRixNQUFNRyxTQUFTLENBQUNGO29CQUV6QyxJQUFJQyxrQkFBa0I7d0JBQ3BCLE9BQU8sSUFBSTtvQkFDYixDQUFDO2dCQUNIO2dCQUVBLE9BQU9KO1lBQ1Q7OztZQUVBTSxLQUFBQTttQkFBQUEsU0FBQUEsZUFBZUMsYUFBYSxFQUFFQyxZQUFZLEVBQUU7O2dCQUMxQyxJQUFJQztnQkFFSixJQUFNQyxvQkFBb0IsSUFBSSxDQUFDakIsV0FBVyxDQUFDa0IsTUFBTTtnQkFFakQsSUFBSUQsc0JBQXNCLEdBQUc7b0JBQzNCLElBQU1FLGdCQUFnQixFQUFFLEVBQ2xCQyxvQkFBb0JDLGdCQUFnQixJQUFJLENBQUNwQixVQUFVLEVBQUVhLGVBQWVLO29CQUUxRUgsbUJBQW1CSSxtQkFBbUIsR0FBRztnQkFDM0MsT0FBTztvQkFDTCxJQUFNRSxhQUFhUCxhQUFhUSxhQUFhO29CQUU3Q1AsbUJBQW1CUSxJQUFBQSxtQkFBWSxFQUFDRixZQUFZTCxtQkFBbUIsU0FBQ0ssWUFBZTt3QkFDN0UsSUFBTUcsNkJBQTZCQyw4QkFBOEIsTUFBSzFCLFdBQVcsRUFBRSxNQUFLQyxVQUFVLEVBQUVxQixZQUFZUjt3QkFFaEgsSUFBSVcsNEJBQTRCOzRCQUM5QixPQUFPLElBQUk7d0JBQ2IsQ0FBQztvQkFDSDtnQkFDRixDQUFDO2dCQUVELE9BQU9UO1lBQ1Q7OztZQUVBVyxLQUFBQTttQkFBQUEsU0FBQUEsU0FBUztnQkFDUCxJQUFNLEFBQUVDLE9BQVMsSUFBSSxDQUFDQyxXQUFXLENBQXpCRCxNQUNGRSxhQUFhLElBQUksQ0FBQy9CLE1BQU0sQ0FBQ2dDLEdBQUcsQ0FBQyxTQUFDdEIsT0FBVTtvQkFDdEMsSUFBTXVCLFlBQVl2QixNQUFNa0IsTUFBTTtvQkFFOUIsT0FBT0s7Z0JBQ1QsSUFDQUMsa0JBQWtCLElBQUksQ0FBQ2pDLFdBQVcsQ0FBQytCLEdBQUcsQ0FBQyxTQUFDRyxZQUFlO29CQUNyRCxJQUFNQyxpQkFBaUJELFdBQVdQLE1BQU07b0JBRXhDLE9BQU9RO2dCQUNULElBQ0FDLGlCQUFpQixJQUFJLENBQUNuQyxVQUFVLENBQUMwQixNQUFNLElBQ3ZDNUIsU0FBUytCLFlBQ1Q5QixjQUFjaUMsaUJBQ2RoQyxhQUFhbUMsZ0JBQ2JDLE9BQU87b0JBQ0xULE1BQUFBO29CQUNBN0IsUUFBQUE7b0JBQ0FDLGFBQUFBO29CQUNBQyxZQUFBQTtnQkFDRjtnQkFFTixPQUFPb0M7WUFDVDs7OztZQUVPQyxLQUFBQTttQkFBUCxTQUFPQSxTQUFTQyxLQUFLLEVBQUVGLElBQUksRUFBRUcsY0FBYyxFQUFFO2dCQUMzQyxJQUFJLEFBQUV6QyxTQUFXc0MsS0FBWHRDO2dCQUVOLElBQU0rQixhQUFhL0IsUUFBUyxHQUFHO2dCQUUvQkEsU0FBUytCLFdBQVdDLEdBQUcsQ0FBQyxTQUFDQyxXQUFjO29CQUNyQyxJQUFNSyxTQUFPTCxXQUNQdkIsUUFBUWdDLGNBQUssQ0FBQ0gsUUFBUSxDQUFDRCxRQUFNRztvQkFFbkMsT0FBTy9CO2dCQUNUO2dCQUVBLElBQUksQUFBRVQsY0FBZ0JxQyxLQUFoQnJDO2dCQUVOLElBQU1pQyxrQkFBa0JqQyxhQUFjLEdBQUc7Z0JBRXpDQSxjQUFjaUMsZ0JBQWdCRixHQUFHLENBQUMsU0FBQ0ksZ0JBQW1CO29CQUNwRCxJQUFNRSxTQUFPRixnQkFDUEQsYUFBYVEsbUJBQVUsQ0FBQ0osUUFBUSxDQUFDRCxRQUFNRztvQkFFN0MsT0FBT047Z0JBQ1Q7Z0JBRUEsSUFBSSxBQUFFakMsYUFBZW9DLEtBQWZwQztnQkFFTixJQUFNbUMsaUJBQWlCbkMsWUFBYSxHQUFHO2dCQUV2Q29DLE9BQU9ELGdCQUFpQixHQUFHO2dCQUUzQm5DLGFBQWEwQyxtQkFBVSxDQUFDTCxRQUFRLENBQUNELE1BQU1HO2dCQUV2QyxPQUFPLElBQUlELE1BQU14QyxRQUFRQyxhQUFhQyxhQUFjLEdBQUc7WUFDekQ7OztZQUVPMkMsS0FBQUE7bUJBQVAsU0FBT0EsbUNBQW1DTCxLQUFLLEVBQUV4QyxNQUFNLEVBQUVDLFdBQVcsRUFBRUMsVUFBVSxFQUFFO2dCQUFFLE9BQU8sSUFBSXNDLE1BQU14QyxRQUFRQyxhQUFhQztZQUFhOzs7V0FySHBISDs7QUF3SHJCLFNBQVMrQyxnQkFBZ0JYLFVBQVUsRUFBRVosVUFBVSxFQUFFSCxhQUFhLEVBQUU7SUFDOUQsSUFBTTJCLFlBQVlDLElBQUFBLFlBQUssRUFBQ3pCLFlBQVksU0FBQ3dCLFdBQWM7UUFDakQsSUFBTUUsZUFBZUYsVUFBVUcsZUFBZSxJQUN4Q25DLGdCQUFnQmdDLFVBQVVJLGdCQUFnQjtRQUVoRCxJQUFJRixpQkFBaUIsSUFBSSxFQUFFO1lBQ3pCLElBQU1HLGtCQUFrQmpCLFdBQVdrQixpQkFBaUIsQ0FBQ0osY0FBYzdCO1lBRW5FLElBQUksQ0FBQ2dDLGlCQUFpQjtnQkFDcEIsT0FBTyxJQUFJO1lBQ2IsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJckMsa0JBQWtCLElBQUksRUFBRTtZQUMxQixJQUFNdUMsbUJBQW1CbkIsV0FBV29CLGtCQUFrQixDQUFDeEMsZUFBZUs7WUFFdEUsSUFBSSxDQUFDa0Msa0JBQWtCO2dCQUNyQixPQUFPLElBQUk7WUFDYixDQUFDO1FBQ0gsQ0FBQztJQUVILE1BQU0sSUFBSTtJQUVWLElBQU1FLG9CQUFxQlQsY0FBYyxJQUFJO0lBRTdDLE9BQU9TO0FBQ1Q7QUFFQSxTQUFTQyxpQkFBaUJ0QixVQUFVLEVBQUVaLFVBQVUsRUFBRUgsYUFBYSxFQUFFO0lBQy9ELElBQU1zQyxxQkFBcUJ2QixXQUFXd0IsS0FBSyxDQUFDLFNBQUN4QixZQUFlO1FBQzFELElBQU1xQixvQkFBb0JWLGdCQUFnQlgsWUFBWVosWUFBWUg7UUFFbEUsSUFBSW9DLG1CQUFtQjtZQUNyQixPQUFPLElBQUk7UUFDYixDQUFDO0lBQ0g7SUFFQSxPQUFPRTtBQUNUO0FBRUEsU0FBU3BDLGdCQUFnQnBCLFVBQVUsRUFBRWEsYUFBYSxFQUFFSyxhQUFhLEVBQUU7SUFDakUsSUFBTXdDLHlCQUF5QjFELFdBQVdxRCxrQkFBa0IsQ0FBQ3hDLGVBQWVLLGdCQUN0RUMsb0JBQW9CdUMsd0JBQXdCLEdBQUc7SUFFckQsT0FBT3ZDO0FBQ1Q7QUFFQSxTQUFTTSw4QkFBOEIxQixXQUFXLEVBQUVDLFVBQVUsRUFBRXFCLFVBQVUsRUFBRVIsYUFBYSxFQUFFO0lBQ3pGLElBQUlXLDZCQUE2QixLQUFLO0lBRXRDLElBQU1OLGdCQUFnQixFQUFFLEVBQ2xCc0MscUJBQXFCRCxpQkFBaUJ4RCxhQUFhc0IsWUFBWUg7SUFFckUsSUFBSXNDLG9CQUFvQjtRQUN0QixJQUFNckMsb0JBQW9CQyxnQkFBZ0JwQixZQUFZYSxlQUFlSztRQUVyRU0sNkJBQTZCTCxtQkFBb0IsR0FBRztJQUN0RCxDQUFDO0lBRUQsT0FBT0s7QUFDVCJ9
|
|
@@ -0,0 +1,157 @@
|
|
|
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 Consequent;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _array = require("./utilities/array");
|
|
12
|
+
var _string = require("./utilities/string");
|
|
13
|
+
var _query = require("./utilities/query");
|
|
14
|
+
var _ruleNames = require("./ruleNames");
|
|
15
|
+
function _classCallCheck(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 _createClass(Constructor, protoProps, staticProps) {
|
|
30
|
+
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
31
|
+
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
32
|
+
return Constructor;
|
|
33
|
+
}
|
|
34
|
+
var Consequent = /*#__PURE__*/ function() {
|
|
35
|
+
function Consequent(statementNode) {
|
|
36
|
+
_classCallCheck(this, Consequent);
|
|
37
|
+
this.statementNode = statementNode;
|
|
38
|
+
}
|
|
39
|
+
_createClass(Consequent, [
|
|
40
|
+
{
|
|
41
|
+
key: "getStatementNode",
|
|
42
|
+
value: function getStatementNode() {
|
|
43
|
+
return this.statementNode;
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
key: "matchStatementNode",
|
|
48
|
+
value: function matchStatementNode(statementNode, metaSubstitutions) {
|
|
49
|
+
var nonTerminalNode = statementNode, consequentNonTerminalNode = this.statementNode, consequentNonTerminalNodeMatches = matchConsequentNonTerminalNode(consequentNonTerminalNode, nonTerminalNode, metaSubstitutions), statementNodeMatches = consequentNonTerminalNodeMatches; ///
|
|
50
|
+
return statementNodeMatches;
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
key: "toJSON",
|
|
55
|
+
value: function toJSON() {
|
|
56
|
+
var statementString = (0, _string.nodeAsString)(this.statementNode), statement = statementString, json = {
|
|
57
|
+
statement: statement
|
|
58
|
+
};
|
|
59
|
+
return json;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
], [
|
|
63
|
+
{
|
|
64
|
+
key: "fromJSON",
|
|
65
|
+
value: function fromJSON(json, releaseContext) {
|
|
66
|
+
var statement = json.statement, statementString = statement, statementNode = (0, _string.statementNodeFromStatementString)(statementString, releaseContext), consequent = new Consequent(statementNode);
|
|
67
|
+
return consequent;
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
key: "fromStatementNode",
|
|
72
|
+
value: function fromStatementNode(statementNode) {
|
|
73
|
+
var consequent = new Consequent(statementNode);
|
|
74
|
+
return consequent;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
]);
|
|
78
|
+
return Consequent;
|
|
79
|
+
}();
|
|
80
|
+
function matchConsequentNode(consequentNode, node, metaSubstitutions) {
|
|
81
|
+
var consequentNodeMatches = false;
|
|
82
|
+
var nodeTerminalNode = node.isTerminalNode(), ruleNodeTerminalNode = consequentNode.isTerminalNode();
|
|
83
|
+
if (nodeTerminalNode === ruleNodeTerminalNode) {
|
|
84
|
+
if (nodeTerminalNode) {
|
|
85
|
+
var terminalNode = node, consequentTerminalNode = consequentNode, consequentTerminalNodeMatches = matchConsequentTerminalNode(consequentTerminalNode, terminalNode, metaSubstitutions);
|
|
86
|
+
consequentNodeMatches = consequentTerminalNodeMatches; ///
|
|
87
|
+
} else {
|
|
88
|
+
var nonTerminalNode = node, consequentNonTerminalNode = consequentNode, consequentNonTerminalNodeMatches = matchConsequentNonTerminalNode(consequentNonTerminalNode, nonTerminalNode, metaSubstitutions);
|
|
89
|
+
consequentNodeMatches = consequentNonTerminalNodeMatches; ///
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return consequentNodeMatches;
|
|
93
|
+
}
|
|
94
|
+
function matchConsequentNodes(consequentNodes, nodes, metaSubstitutions) {
|
|
95
|
+
var consequentNodesMatches = false;
|
|
96
|
+
var nodesLength = nodes.length, consequentNodesLength = consequentNodes.length;
|
|
97
|
+
if (nodesLength === consequentNodesLength) {
|
|
98
|
+
consequentNodesMatches = nodes.every(function(node, index) {
|
|
99
|
+
var consequentNode = consequentNodes[index], consequentNodeMatches = matchConsequentNode(consequentNode, node, metaSubstitutions);
|
|
100
|
+
if (consequentNodeMatches) {
|
|
101
|
+
return true;
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
return consequentNodesMatches;
|
|
106
|
+
}
|
|
107
|
+
function matchConsequentVariable(consequentVariableNode, nodes, metaSubstitutions) {
|
|
108
|
+
var consequentVariableMatches = true;
|
|
109
|
+
var consequentVariableName = (0, _query.variableNameFromVariableNode)(consequentVariableNode), metaSubstitution = metaSubstitutions.find(function(metaSubstitution) {
|
|
110
|
+
var variableName = metaSubstitution.getVariableName();
|
|
111
|
+
if (variableName === consequentVariableName) {
|
|
112
|
+
return true;
|
|
113
|
+
}
|
|
114
|
+
}) || null;
|
|
115
|
+
if (metaSubstitution !== null) {
|
|
116
|
+
var metaSubstitutionNodesMatch = metaSubstitution.matchNodes(nodes);
|
|
117
|
+
consequentVariableMatches = metaSubstitutionNodesMatch; ///
|
|
118
|
+
}
|
|
119
|
+
return consequentVariableMatches;
|
|
120
|
+
}
|
|
121
|
+
function matchConsequentTerminalNode(consequentTerminalNode, terminalNode, metaSubstitutions) {
|
|
122
|
+
var matches = consequentTerminalNode.match(terminalNode), consequentTerminalNodeMatches = matches; ///
|
|
123
|
+
return consequentTerminalNodeMatches;
|
|
124
|
+
}
|
|
125
|
+
function matchConsequentNonTerminalNode(consequentNonTerminalNode, nonTerminalNode, metaSubstitutions) {
|
|
126
|
+
var consequentNonTerminalNodeMatches = false;
|
|
127
|
+
var ruleName = nonTerminalNode.getRuleName(), consequentRuleName = consequentNonTerminalNode.getRuleName(); ///
|
|
128
|
+
if (ruleName === consequentRuleName) {
|
|
129
|
+
var childNodes = nonTerminalNode.getChildNodes(), consequentChildNodes = consequentNonTerminalNode.getChildNodes(), nodes = childNodes, consequentNodes = consequentChildNodes, consequentChildNodesMatches = matchConsequentNodes(consequentNodes, nodes, metaSubstitutions);
|
|
130
|
+
consequentNonTerminalNodeMatches = consequentChildNodesMatches; ///
|
|
131
|
+
if (!consequentNonTerminalNodeMatches) {
|
|
132
|
+
var ruleNameStatementRuleName = ruleName === _ruleNames.STATEMENT_RULE_NAME;
|
|
133
|
+
if (ruleNameStatementRuleName) {
|
|
134
|
+
var statementNode = nonTerminalNode, consequentStatementNode = consequentNonTerminalNode, consequentStatementNodeMatches = matchConsequentStatementNode(consequentStatementNode, statementNode, metaSubstitutions);
|
|
135
|
+
consequentNonTerminalNodeMatches = consequentStatementNodeMatches; ///
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return consequentNonTerminalNodeMatches;
|
|
140
|
+
}
|
|
141
|
+
function matchConsequentStatementNode(consequentStatementNode, statementNode, metaSubstitutions) {
|
|
142
|
+
var consequentStatementNodeMatches = false;
|
|
143
|
+
var consequentNonTerminalNode = consequentStatementNode, consequentChildNodes = consequentNonTerminalNode.getChildNodes(), consequentChildNodesLength = consequentChildNodes.length;
|
|
144
|
+
if (consequentChildNodesLength === 1) {
|
|
145
|
+
var firstConsequentChildNode = (0, _array.first)(consequentChildNodes), consequentChildNode = firstConsequentChildNode, consequentChildNodeNonTerminalNode = consequentChildNode.isNonTerminalNode();
|
|
146
|
+
if (consequentChildNodeNonTerminalNode) {
|
|
147
|
+
var consequentNonTerminalChildNode = consequentChildNode, consequentNonTerminalChildNodeRuleName = consequentNonTerminalChildNode.getRuleName(), consequentNonTerminalChildNodeRuleNameVariableRuleName = consequentNonTerminalChildNodeRuleName === _ruleNames.VARIABLE_RULE_NAME;
|
|
148
|
+
if (consequentNonTerminalChildNodeRuleNameVariableRuleName) {
|
|
149
|
+
var consequentVariableNode = consequentNonTerminalChildNode, nonTerminalNode = statementNode, childNodes = nonTerminalNode.getChildNodes(), nodes = childNodes, consequentMetaVariableMatches = matchConsequentVariable(consequentVariableNode, nodes, metaSubstitutions);
|
|
150
|
+
consequentStatementNodeMatches = consequentMetaVariableMatches; ///
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
return consequentStatementNodeMatches;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25zZXF1ZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCIuL3V0aWxpdGllcy9hcnJheVwiO1xuaW1wb3J0IHsgbm9kZUFzU3RyaW5nIH0gZnJvbSBcIi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuaW1wb3J0IHsgdmFyaWFibGVOYW1lRnJvbVZhcmlhYmxlTm9kZSB9IGZyb20gXCIuL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgc3RhdGVtZW50Tm9kZUZyb21TdGF0ZW1lbnRTdHJpbmcgfSBmcm9tIFwiLi91dGlsaXRpZXMvc3RyaW5nXCI7XG5pbXBvcnQgeyBWQVJJQUJMRV9SVUxFX05BTUUsIFNUQVRFTUVOVF9SVUxFX05BTUUgfSBmcm9tIFwiLi9ydWxlTmFtZXNcIjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29uc2VxdWVudCB7XG4gIGNvbnN0cnVjdG9yKHN0YXRlbWVudE5vZGUpIHtcbiAgICB0aGlzLnN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlO1xuICB9XG5cbiAgZ2V0U3RhdGVtZW50Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZW1lbnROb2RlO1xuICB9XG5cbiAgbWF0Y2hTdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKSB7XG4gICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gc3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICAgIGNvbnNlcXVlbnROb25UZXJtaW5hbE5vZGUgPSB0aGlzLnN0YXRlbWVudE5vZGUsICAvLy9cbiAgICAgICAgICBjb25zZXF1ZW50Tm9uVGVybWluYWxOb2RlTWF0Y2hlcyA9IG1hdGNoQ29uc2VxdWVudE5vblRlcm1pbmFsTm9kZShjb25zZXF1ZW50Tm9uVGVybWluYWxOb2RlLCBub25UZXJtaW5hbE5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKSxcbiAgICAgICAgICBzdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IGNvbnNlcXVlbnROb25UZXJtaW5hbE5vZGVNYXRjaGVzOyAvLy9cblxuICAgIHJldHVybiBzdGF0ZW1lbnROb2RlTWF0Y2hlcztcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBub2RlQXNTdHJpbmcodGhpcy5zdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgICBzdGF0ZW1lbnQgPSBzdGF0ZW1lbnRTdHJpbmcsICAvLy9cbiAgICAgICAgICBqc29uID0ge1xuICAgICAgICAgICAgc3RhdGVtZW50XG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIHJlbGVhc2VDb250ZXh0KSB7XG4gICAgY29uc3QgeyBzdGF0ZW1lbnQgfSA9IGpzb24sXG4gICAgICAgICAgc3RhdGVtZW50U3RyaW5nID0gc3RhdGVtZW50LCAgLy8vXG4gICAgICAgICAgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVGcm9tU3RhdGVtZW50U3RyaW5nKHN0YXRlbWVudFN0cmluZywgcmVsZWFzZUNvbnRleHQpLFxuICAgICAgICAgIGNvbnNlcXVlbnQgPSBuZXcgQ29uc2VxdWVudChzdGF0ZW1lbnROb2RlKTtcblxuICAgIHJldHVybiBjb25zZXF1ZW50O1xuICB9XG5cbiAgc3RhdGljIGZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUpIHtcbiAgICBjb25zdCBjb25zZXF1ZW50ID0gbmV3IENvbnNlcXVlbnQoc3RhdGVtZW50Tm9kZSk7XG5cbiAgICByZXR1cm4gY29uc2VxdWVudDtcbiAgfVxufVxuXG5mdW5jdGlvbiBtYXRjaENvbnNlcXVlbnROb2RlKGNvbnNlcXVlbnROb2RlLCBub2RlLCBtZXRhU3Vic3RpdHV0aW9ucykge1xuICBsZXQgY29uc2VxdWVudE5vZGVNYXRjaGVzID0gZmFsc2U7XG5cbiAgY29uc3Qgbm9kZVRlcm1pbmFsTm9kZSA9IG5vZGUuaXNUZXJtaW5hbE5vZGUoKSxcbiAgICAgICAgcnVsZU5vZGVUZXJtaW5hbE5vZGUgPSBjb25zZXF1ZW50Tm9kZS5pc1Rlcm1pbmFsTm9kZSgpO1xuXG4gIGlmIChub2RlVGVybWluYWxOb2RlID09PSBydWxlTm9kZVRlcm1pbmFsTm9kZSkge1xuICAgIGlmIChub2RlVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCB0ZXJtaW5hbE5vZGUgPSBub2RlLCAgLy8vXG4gICAgICAgICAgICBjb25zZXF1ZW50VGVybWluYWxOb2RlID0gY29uc2VxdWVudE5vZGUsICAvLy9cbiAgICAgICAgICAgIGNvbnNlcXVlbnRUZXJtaW5hbE5vZGVNYXRjaGVzID0gbWF0Y2hDb25zZXF1ZW50VGVybWluYWxOb2RlKGNvbnNlcXVlbnRUZXJtaW5hbE5vZGUsIHRlcm1pbmFsTm9kZSwgbWV0YVN1YnN0aXR1dGlvbnMpO1xuXG4gICAgICBjb25zZXF1ZW50Tm9kZU1hdGNoZXMgPSBjb25zZXF1ZW50VGVybWluYWxOb2RlTWF0Y2hlczsgIC8vL1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBub2RlLCAvLy9cbiAgICAgICAgICAgIGNvbnNlcXVlbnROb25UZXJtaW5hbE5vZGUgPSBjb25zZXF1ZW50Tm9kZSwgIC8vL1xuICAgICAgICAgICAgY29uc2VxdWVudE5vblRlcm1pbmFsTm9kZU1hdGNoZXMgPSBtYXRjaENvbnNlcXVlbnROb25UZXJtaW5hbE5vZGUoY29uc2VxdWVudE5vblRlcm1pbmFsTm9kZSwgbm9uVGVybWluYWxOb2RlLCBtZXRhU3Vic3RpdHV0aW9ucyk7XG5cbiAgICAgIGNvbnNlcXVlbnROb2RlTWF0Y2hlcyA9IGNvbnNlcXVlbnROb25UZXJtaW5hbE5vZGVNYXRjaGVzOyAvLy9cbiAgICB9XG4gIH1cblxuICByZXR1cm4gY29uc2VxdWVudE5vZGVNYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBtYXRjaENvbnNlcXVlbnROb2Rlcyhjb25zZXF1ZW50Tm9kZXMsIG5vZGVzLCBtZXRhU3Vic3RpdHV0aW9ucykge1xuICBsZXQgY29uc2VxdWVudE5vZGVzTWF0Y2hlcyA9IGZhbHNlO1xuXG4gIGNvbnN0IG5vZGVzTGVuZ3RoID0gbm9kZXMubGVuZ3RoLFxuICAgICAgICBjb25zZXF1ZW50Tm9kZXNMZW5ndGggPSBjb25zZXF1ZW50Tm9kZXMubGVuZ3RoO1xuXG4gIGlmIChub2Rlc0xlbmd0aCA9PT0gY29uc2VxdWVudE5vZGVzTGVuZ3RoKSB7XG4gICAgY29uc2VxdWVudE5vZGVzTWF0Y2hlcyA9IG5vZGVzLmV2ZXJ5KChub2RlLCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgY29uc2VxdWVudE5vZGUgPSBjb25zZXF1ZW50Tm9kZXNbaW5kZXhdLFxuICAgICAgICAgICAgY29uc2VxdWVudE5vZGVNYXRjaGVzID0gbWF0Y2hDb25zZXF1ZW50Tm9kZShjb25zZXF1ZW50Tm9kZSwgbm9kZSwgbWV0YVN1YnN0aXR1dGlvbnMpO1xuXG4gICAgICBpZiAoY29uc2VxdWVudE5vZGVNYXRjaGVzKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGNvbnNlcXVlbnROb2Rlc01hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIG1hdGNoQ29uc2VxdWVudFZhcmlhYmxlKGNvbnNlcXVlbnRWYXJpYWJsZU5vZGUsIG5vZGVzLCBtZXRhU3Vic3RpdHV0aW9ucykge1xuICBsZXQgY29uc2VxdWVudFZhcmlhYmxlTWF0Y2hlcyA9IHRydWU7XG5cbiAgY29uc3QgY29uc2VxdWVudFZhcmlhYmxlTmFtZSA9IHZhcmlhYmxlTmFtZUZyb21WYXJpYWJsZU5vZGUoY29uc2VxdWVudFZhcmlhYmxlTm9kZSksXG4gICAgICAgIG1ldGFTdWJzdGl0dXRpb24gPSBtZXRhU3Vic3RpdHV0aW9ucy5maW5kKChtZXRhU3Vic3RpdHV0aW9uKSA9PiB7XG4gICAgICAgICAgY29uc3QgdmFyaWFibGVOYW1lID0gbWV0YVN1YnN0aXR1dGlvbi5nZXRWYXJpYWJsZU5hbWUoKTtcblxuICAgICAgICAgIGlmICh2YXJpYWJsZU5hbWUgPT09IGNvbnNlcXVlbnRWYXJpYWJsZU5hbWUpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSkgfHwgbnVsbDtcblxuICBpZiAobWV0YVN1YnN0aXR1dGlvbiAhPT0gbnVsbCkge1xuICAgIGNvbnN0IG1ldGFTdWJzdGl0dXRpb25Ob2Rlc01hdGNoID0gbWV0YVN1YnN0aXR1dGlvbi5tYXRjaE5vZGVzKG5vZGVzKTtcblxuICAgIGNvbnNlcXVlbnRWYXJpYWJsZU1hdGNoZXMgPSBtZXRhU3Vic3RpdHV0aW9uTm9kZXNNYXRjaDsgIC8vL1xuICB9XG5cbiAgcmV0dXJuIGNvbnNlcXVlbnRWYXJpYWJsZU1hdGNoZXM7XG59XG5cbmZ1bmN0aW9uIG1hdGNoQ29uc2VxdWVudFRlcm1pbmFsTm9kZShjb25zZXF1ZW50VGVybWluYWxOb2RlLCB0ZXJtaW5hbE5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKSB7XG4gIGNvbnN0IG1hdGNoZXMgPSBjb25zZXF1ZW50VGVybWluYWxOb2RlLm1hdGNoKHRlcm1pbmFsTm9kZSksXG4gICAgICAgIGNvbnNlcXVlbnRUZXJtaW5hbE5vZGVNYXRjaGVzID0gbWF0Y2hlczsgIC8vL1xuXG4gIHJldHVybiBjb25zZXF1ZW50VGVybWluYWxOb2RlTWF0Y2hlcztcbn1cblxuZnVuY3Rpb24gbWF0Y2hDb25zZXF1ZW50Tm9uVGVybWluYWxOb2RlKGNvbnNlcXVlbnROb25UZXJtaW5hbE5vZGUsIG5vblRlcm1pbmFsTm9kZSwgbWV0YVN1YnN0aXR1dGlvbnMpIHtcbiAgbGV0IGNvbnNlcXVlbnROb25UZXJtaW5hbE5vZGVNYXRjaGVzID0gZmFsc2U7XG5cbiAgY29uc3QgcnVsZU5hbWUgPSBub25UZXJtaW5hbE5vZGUuZ2V0UnVsZU5hbWUoKSxcbiAgICAgICAgY29uc2VxdWVudFJ1bGVOYW1lID0gY29uc2VxdWVudE5vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpOyAvLy9cblxuICBpZiAocnVsZU5hbWUgPT09IGNvbnNlcXVlbnRSdWxlTmFtZSkge1xuICAgIGNvbnN0IGNoaWxkTm9kZXMgPSBub25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgIGNvbnNlcXVlbnRDaGlsZE5vZGVzID0gY29uc2VxdWVudE5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgbm9kZXMgPSBjaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgICBjb25zZXF1ZW50Tm9kZXMgPSBjb25zZXF1ZW50Q2hpbGROb2RlcywgLy8vXG4gICAgICAgICAgY29uc2VxdWVudENoaWxkTm9kZXNNYXRjaGVzID0gbWF0Y2hDb25zZXF1ZW50Tm9kZXMoY29uc2VxdWVudE5vZGVzLCBub2RlcywgbWV0YVN1YnN0aXR1dGlvbnMpO1xuXG4gICAgY29uc2VxdWVudE5vblRlcm1pbmFsTm9kZU1hdGNoZXMgPSBjb25zZXF1ZW50Q2hpbGROb2Rlc01hdGNoZXM7IC8vL1xuXG4gICAgaWYgKCFjb25zZXF1ZW50Tm9uVGVybWluYWxOb2RlTWF0Y2hlcykge1xuICAgICAgY29uc3QgcnVsZU5hbWVTdGF0ZW1lbnRSdWxlTmFtZSA9IChydWxlTmFtZSA9PT0gU1RBVEVNRU5UX1JVTEVfTkFNRSk7XG5cbiAgICAgIGlmIChydWxlTmFtZVN0YXRlbWVudFJ1bGVOYW1lKSB7XG4gICAgICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBub25UZXJtaW5hbE5vZGUsICAvLy9cbiAgICAgICAgICAgICAgY29uc2VxdWVudFN0YXRlbWVudE5vZGUgPSBjb25zZXF1ZW50Tm9uVGVybWluYWxOb2RlLCAgLy8vXG4gICAgICAgICAgICAgIGNvbnNlcXVlbnRTdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IG1hdGNoQ29uc2VxdWVudFN0YXRlbWVudE5vZGUoY29uc2VxdWVudFN0YXRlbWVudE5vZGUsIHN0YXRlbWVudE5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKTtcblxuICAgICAgICBjb25zZXF1ZW50Tm9uVGVybWluYWxOb2RlTWF0Y2hlcyA9IGNvbnNlcXVlbnRTdGF0ZW1lbnROb2RlTWF0Y2hlczsgLy8vXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNvbnNlcXVlbnROb25UZXJtaW5hbE5vZGVNYXRjaGVzO1xufVxuXG5mdW5jdGlvbiBtYXRjaENvbnNlcXVlbnRTdGF0ZW1lbnROb2RlKGNvbnNlcXVlbnRTdGF0ZW1lbnROb2RlLCBzdGF0ZW1lbnROb2RlLCBtZXRhU3Vic3RpdHV0aW9ucykge1xuICBsZXQgY29uc2VxdWVudFN0YXRlbWVudE5vZGVNYXRjaGVzID0gZmFsc2U7XG5cbiAgY29uc3QgY29uc2VxdWVudE5vblRlcm1pbmFsTm9kZSA9IGNvbnNlcXVlbnRTdGF0ZW1lbnROb2RlLCAgLy8vXG4gICAgICAgIGNvbnNlcXVlbnRDaGlsZE5vZGVzID0gY29uc2VxdWVudE5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgIGNvbnNlcXVlbnRDaGlsZE5vZGVzTGVuZ3RoID0gY29uc2VxdWVudENoaWxkTm9kZXMubGVuZ3RoO1xuXG4gIGlmIChjb25zZXF1ZW50Q2hpbGROb2Rlc0xlbmd0aCA9PT0gMSkge1xuICAgIGNvbnN0IGZpcnN0Q29uc2VxdWVudENoaWxkTm9kZSA9IGZpcnN0KGNvbnNlcXVlbnRDaGlsZE5vZGVzKSxcbiAgICAgICAgICBjb25zZXF1ZW50Q2hpbGROb2RlID0gZmlyc3RDb25zZXF1ZW50Q2hpbGROb2RlLCAgLy8vXG4gICAgICAgICAgY29uc2VxdWVudENoaWxkTm9kZU5vblRlcm1pbmFsTm9kZSA9IGNvbnNlcXVlbnRDaGlsZE5vZGUuaXNOb25UZXJtaW5hbE5vZGUoKTtcblxuICAgIGlmIChjb25zZXF1ZW50Q2hpbGROb2RlTm9uVGVybWluYWxOb2RlKSB7XG4gICAgICBjb25zdCBjb25zZXF1ZW50Tm9uVGVybWluYWxDaGlsZE5vZGUgPSBjb25zZXF1ZW50Q2hpbGROb2RlLCAgLy8vXG4gICAgICAgICAgICBjb25zZXF1ZW50Tm9uVGVybWluYWxDaGlsZE5vZGVSdWxlTmFtZSA9IGNvbnNlcXVlbnROb25UZXJtaW5hbENoaWxkTm9kZS5nZXRSdWxlTmFtZSgpLFxuICAgICAgICAgICAgY29uc2VxdWVudE5vblRlcm1pbmFsQ2hpbGROb2RlUnVsZU5hbWVWYXJpYWJsZVJ1bGVOYW1lID0gKGNvbnNlcXVlbnROb25UZXJtaW5hbENoaWxkTm9kZVJ1bGVOYW1lID09PSBWQVJJQUJMRV9SVUxFX05BTUUpO1xuXG4gICAgICBpZiAoY29uc2VxdWVudE5vblRlcm1pbmFsQ2hpbGROb2RlUnVsZU5hbWVWYXJpYWJsZVJ1bGVOYW1lKSB7XG4gICAgICAgIGNvbnN0IGNvbnNlcXVlbnRWYXJpYWJsZU5vZGUgPSBjb25zZXF1ZW50Tm9uVGVybWluYWxDaGlsZE5vZGUsICAvLy9cbiAgICAgICAgICAgICAgbm9uVGVybWluYWxOb2RlID0gc3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICAgICAgICBjaGlsZE5vZGVzID0gbm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICAgICAgbm9kZXMgPSBjaGlsZE5vZGVzLCAvLy9cbiAgICAgICAgICAgICAgY29uc2VxdWVudE1ldGFWYXJpYWJsZU1hdGNoZXMgPSBtYXRjaENvbnNlcXVlbnRWYXJpYWJsZShjb25zZXF1ZW50VmFyaWFibGVOb2RlLCBub2RlcywgbWV0YVN1YnN0aXR1dGlvbnMpO1xuXG4gICAgICAgIGNvbnNlcXVlbnRTdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IGNvbnNlcXVlbnRNZXRhVmFyaWFibGVNYXRjaGVzOyAvLy9cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gY29uc2VxdWVudFN0YXRlbWVudE5vZGVNYXRjaGVzO1xufVxuIl0sIm5hbWVzIjpbIkNvbnNlcXVlbnQiLCJzdGF0ZW1lbnROb2RlIiwiZ2V0U3RhdGVtZW50Tm9kZSIsIm1hdGNoU3RhdGVtZW50Tm9kZSIsIm1ldGFTdWJzdGl0dXRpb25zIiwibm9uVGVybWluYWxOb2RlIiwiY29uc2VxdWVudE5vblRlcm1pbmFsTm9kZSIsImNvbnNlcXVlbnROb25UZXJtaW5hbE5vZGVNYXRjaGVzIiwibWF0Y2hDb25zZXF1ZW50Tm9uVGVybWluYWxOb2RlIiwic3RhdGVtZW50Tm9kZU1hdGNoZXMiLCJ0b0pTT04iLCJzdGF0ZW1lbnRTdHJpbmciLCJub2RlQXNTdHJpbmciLCJzdGF0ZW1lbnQiLCJqc29uIiwiZnJvbUpTT04iLCJyZWxlYXNlQ29udGV4dCIsInN0YXRlbWVudE5vZGVGcm9tU3RhdGVtZW50U3RyaW5nIiwiY29uc2VxdWVudCIsImZyb21TdGF0ZW1lbnROb2RlIiwibWF0Y2hDb25zZXF1ZW50Tm9kZSIsImNvbnNlcXVlbnROb2RlIiwibm9kZSIsImNvbnNlcXVlbnROb2RlTWF0Y2hlcyIsIm5vZGVUZXJtaW5hbE5vZGUiLCJpc1Rlcm1pbmFsTm9kZSIsInJ1bGVOb2RlVGVybWluYWxOb2RlIiwidGVybWluYWxOb2RlIiwiY29uc2VxdWVudFRlcm1pbmFsTm9kZSIsImNvbnNlcXVlbnRUZXJtaW5hbE5vZGVNYXRjaGVzIiwibWF0Y2hDb25zZXF1ZW50VGVybWluYWxOb2RlIiwibWF0Y2hDb25zZXF1ZW50Tm9kZXMiLCJjb25zZXF1ZW50Tm9kZXMiLCJub2RlcyIsImNvbnNlcXVlbnROb2Rlc01hdGNoZXMiLCJub2Rlc0xlbmd0aCIsImxlbmd0aCIsImNvbnNlcXVlbnROb2Rlc0xlbmd0aCIsImV2ZXJ5IiwiaW5kZXgiLCJtYXRjaENvbnNlcXVlbnRWYXJpYWJsZSIsImNvbnNlcXVlbnRWYXJpYWJsZU5vZGUiLCJjb25zZXF1ZW50VmFyaWFibGVNYXRjaGVzIiwiY29uc2VxdWVudFZhcmlhYmxlTmFtZSIsInZhcmlhYmxlTmFtZUZyb21WYXJpYWJsZU5vZGUiLCJtZXRhU3Vic3RpdHV0aW9uIiwiZmluZCIsInZhcmlhYmxlTmFtZSIsImdldFZhcmlhYmxlTmFtZSIsIm1ldGFTdWJzdGl0dXRpb25Ob2Rlc01hdGNoIiwibWF0Y2hOb2RlcyIsIm1hdGNoZXMiLCJtYXRjaCIsInJ1bGVOYW1lIiwiZ2V0UnVsZU5hbWUiLCJjb25zZXF1ZW50UnVsZU5hbWUiLCJjaGlsZE5vZGVzIiwiZ2V0Q2hpbGROb2RlcyIsImNvbnNlcXVlbnRDaGlsZE5vZGVzIiwiY29uc2VxdWVudENoaWxkTm9kZXNNYXRjaGVzIiwicnVsZU5hbWVTdGF0ZW1lbnRSdWxlTmFtZSIsIlNUQVRFTUVOVF9SVUxFX05BTUUiLCJjb25zZXF1ZW50U3RhdGVtZW50Tm9kZSIsImNvbnNlcXVlbnRTdGF0ZW1lbnROb2RlTWF0Y2hlcyIsIm1hdGNoQ29uc2VxdWVudFN0YXRlbWVudE5vZGUiLCJjb25zZXF1ZW50Q2hpbGROb2Rlc0xlbmd0aCIsImZpcnN0Q29uc2VxdWVudENoaWxkTm9kZSIsImZpcnN0IiwiY29uc2VxdWVudENoaWxkTm9kZSIsImNvbnNlcXVlbnRDaGlsZE5vZGVOb25UZXJtaW5hbE5vZGUiLCJpc05vblRlcm1pbmFsTm9kZSIsImNvbnNlcXVlbnROb25UZXJtaW5hbENoaWxkTm9kZSIsImNvbnNlcXVlbnROb25UZXJtaW5hbENoaWxkTm9kZVJ1bGVOYW1lIiwiY29uc2VxdWVudE5vblRlcm1pbmFsQ2hpbGROb2RlUnVsZU5hbWVWYXJpYWJsZVJ1bGVOYW1lIiwiVkFSSUFCTEVfUlVMRV9OQU1FIiwiY29uc2VxdWVudE1ldGFWYXJpYWJsZU1hdGNoZXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBUXFCQTs7O3FCQU5DO3NCQUNPO3FCQUNnQjt5QkFFVzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFekMsSUFBQSxBQUFNQSwyQkE0Q2xCLEFBNUNZO2FBQU1BLFdBQ1BDLGFBQWE7OEJBRE5EO1FBRWpCLElBQUksQ0FBQ0MsYUFBYSxHQUFHQTs7aUJBRkpEOztZQUtuQkUsS0FBQUE7bUJBQUFBLFNBQUFBLG1CQUFtQjtnQkFDakIsT0FBTyxJQUFJLENBQUNELGFBQWE7WUFDM0I7OztZQUVBRSxLQUFBQTttQkFBQUEsU0FBQUEsbUJBQW1CRixhQUFhLEVBQUVHLGlCQUFpQixFQUFFO2dCQUNuRCxJ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
|
package/lib/constants.js
CHANGED
|
@@ -21,6 +21,9 @@ _export(exports, {
|
|
|
21
21
|
BOOLEAN: function() {
|
|
22
22
|
return BOOLEAN;
|
|
23
23
|
},
|
|
24
|
+
EMPTY_STRING: function() {
|
|
25
|
+
return EMPTY_STRING;
|
|
26
|
+
},
|
|
24
27
|
LEFT_BRACKET: function() {
|
|
25
28
|
return LEFT_BRACKET;
|
|
26
29
|
},
|
|
@@ -33,6 +36,9 @@ _export(exports, {
|
|
|
33
36
|
MAXIMUM_PERMUTATION_LENGTH: function() {
|
|
34
37
|
return MAXIMUM_PERMUTATION_LENGTH;
|
|
35
38
|
},
|
|
39
|
+
BRACKETED_STATEMENT_CHILD_NODES_LENGTH: function() {
|
|
40
|
+
return BRACKETED_STATEMENT_CHILD_NODES_LENGTH;
|
|
41
|
+
},
|
|
36
42
|
BRACKETED_METASTATEMENT_CHILD_NODES_LENGTH: function() {
|
|
37
43
|
return BRACKETED_METASTATEMENT_CHILD_NODES_LENGTH;
|
|
38
44
|
}
|
|
@@ -41,10 +47,12 @@ var COMMA = ",";
|
|
|
41
47
|
var STRING = "string";
|
|
42
48
|
var NUMBER = "number";
|
|
43
49
|
var BOOLEAN = "boolean";
|
|
50
|
+
var EMPTY_STRING = "";
|
|
44
51
|
var LEFT_BRACKET = "(";
|
|
45
52
|
var RIGHT_BRACKET = ")";
|
|
46
53
|
var MAXIMUM_INDEXES_LENGTH = 10;
|
|
47
54
|
var MAXIMUM_PERMUTATION_LENGTH = 5;
|
|
55
|
+
var BRACKETED_STATEMENT_CHILD_NODES_LENGTH = 3;
|
|
48
56
|
var BRACKETED_METASTATEMENT_CHILD_NODES_LENGTH = 3;
|
|
49
57
|
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25zdGFudHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBjb25zdCBDT01NQSA9ICcsJztcbmV4cG9ydCBjb25zdCBTVFJJTkcgPSBcInN0cmluZ1wiO1xuZXhwb3J0IGNvbnN0IE5VTUJFUiA9IFwibnVtYmVyXCI7XG5leHBvcnQgY29uc3QgQk9PTEVBTiA9IFwiYm9vbGVhblwiO1xuZXhwb3J0IGNvbnN0IEVNUFRZX1NUUklORyA9IFwiXCI7XG5leHBvcnQgY29uc3QgTEVGVF9CUkFDS0VUID0gXCIoXCI7XG5leHBvcnQgY29uc3QgUklHSFRfQlJBQ0tFVCA9IFwiKVwiO1xuZXhwb3J0IGNvbnN0IE1BWElNVU1fSU5ERVhFU19MRU5HVEggPSAxMDtcbmV4cG9ydCBjb25zdCBNQVhJTVVNX1BFUk1VVEFUSU9OX0xFTkdUSCA9IDU7XG5leHBvcnQgY29uc3QgQlJBQ0tFVEVEX1NUQVRFTUVOVF9DSElMRF9OT0RFU19MRU5HVEggPSAzO1xuZXhwb3J0IGNvbnN0IEJSQUNLRVRFRF9NRVRBU1RBVEVNRU5UX0NISUxEX05PREVTX0xFTkdUSCA9IDM7XG4iXSwibmFtZXMiOlsiQ09NTUEiLCJTVFJJTkciLCJOVU1CRVIiLCJCT09MRUFOIiwiRU1QVFlfU1RSSU5HIiwiTEVGVF9CUkFDS0VUIiwiUklHSFRfQlJBQ0tFVCIsIk1BWElNVU1fSU5ERVhFU19MRU5HVEgiLCJNQVhJTVVNX1BFUk1VVEFUSU9OX0xFTkdUSCIsIkJSQUNLRVRFRF9TVEFURU1FTlRfQ0hJTERfTk9ERVNfTEVOR1RIIiwiQlJBQ0tFVEVEX01FVEFTVEFURU1FTlRfQ0hJTERfTk9ERVNfTEVOR1RIIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUFFYUEsS0FBSztlQUFMQTs7SUFDQUMsTUFBTTtlQUFOQTs7SUFDQUMsTUFBTTtlQUFOQTs7SUFDQUMsT0FBTztlQUFQQTs7SUFDQUMsWUFBWTtlQUFaQTs7SUFDQUMsWUFBWTtlQUFaQTs7SUFDQUMsYUFBYTtlQUFiQTs7SUFDQUMsc0JBQXNCO2VBQXRCQTs7SUFDQUMsMEJBQTBCO2VBQTFCQTs7SUFDQUMsc0NBQXNDO2VBQXRDQTs7SUFDQUMsMENBQTBDO2VBQTFDQTs7O0FBVk4sSUFBTVYsUUFBUTtBQUNkLElBQU1DLFNBQVM7QUFDZixJQUFNQyxTQUFTO0FBQ2YsSUFBTUMsVUFBVTtBQUNoQixJQUFNQyxlQUFlO0FBQ3JCLElBQU1DLGVBQWU7QUFDckIsSUFBTUMsZ0JBQWdCO0FBQ3RCLElBQU1DLHlCQUF5QjtBQUMvQixJQUFNQyw2QkFBNkI7QUFDbkMsSUFBTUMseUNBQXlDO0FBQy9DLElBQU1DLDZDQUE2QyJ9
|