occam-verify-cli 0.0.507 → 0.0.509

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 (91) hide show
  1. package/lib/assertion/type.js +90 -0
  2. package/lib/axiomLemmaTheorem.js +2 -2
  3. package/lib/combinator.js +7 -1
  4. package/lib/conclusion.js +6 -6
  5. package/lib/consequence.js +4 -4
  6. package/lib/matcher/metastatementForMetavariable/conclusion.js +113 -0
  7. package/lib/matcher/metastatementForMetavariable/premise.js +113 -0
  8. package/lib/matcher/metastatementForMetavariable.js +201 -0
  9. package/lib/matcher/statementForMetavariable/conclusion.js +113 -0
  10. package/lib/matcher/statementForMetavariable/premise.js +113 -0
  11. package/lib/matcher/statementForMetavariable.js +201 -0
  12. package/lib/matcher/statementForVariable/consequence.js +113 -0
  13. package/lib/matcher/statementForVariable/supposition.js +113 -0
  14. package/lib/matcher/statementForVariable.js +201 -0
  15. package/lib/matcher.js +124 -10
  16. package/lib/premise.js +19 -19
  17. package/lib/rule.js +11 -11
  18. package/lib/substitution/metastatementForMetavariable.js +86 -0
  19. package/lib/substitution/statementForMetavariable.js +86 -0
  20. package/lib/substitution/statementForVariable.js +86 -0
  21. package/lib/supposition.js +9 -9
  22. package/lib/verify/assertion/type.js +19 -23
  23. package/lib/verify/conclusion.js +6 -5
  24. package/lib/verify/consequence.js +6 -5
  25. package/lib/verify/derivation.js +2 -2
  26. package/lib/verify/metastatement/qualified.js +19 -5
  27. package/lib/verify/metastatement/unqualified.js +16 -4
  28. package/lib/verify/metastatement.js +3 -3
  29. package/lib/verify/premise.js +6 -5
  30. package/lib/verify/ruleDerivation.js +2 -2
  31. package/lib/verify/statement/qualified.js +9 -8
  32. package/lib/verify/statement/unqualified.js +16 -4
  33. package/lib/verify/statement.js +106 -9
  34. package/lib/verify/supposition.js +11 -11
  35. package/package.json +3 -3
  36. package/src/assertion/type.js +46 -0
  37. package/src/axiomLemmaTheorem.js +1 -1
  38. package/src/combinator.js +4 -0
  39. package/src/conclusion.js +9 -9
  40. package/src/consequence.js +5 -5
  41. package/src/matcher/metastatementForMetavariable/conclusion.js +9 -0
  42. package/src/matcher/metastatementForMetavariable/premise.js +9 -0
  43. package/src/matcher/metastatementForMetavariable.js +99 -0
  44. package/src/matcher/statementForMetavariable/conclusion.js +9 -0
  45. package/src/matcher/statementForMetavariable/premise.js +9 -0
  46. package/src/matcher/statementForMetavariable.js +99 -0
  47. package/src/matcher/statementForVariable/consequence.js +9 -0
  48. package/src/matcher/statementForVariable/supposition.js +9 -0
  49. package/src/matcher/statementForVariable.js +99 -0
  50. package/src/matcher.js +70 -3
  51. package/src/premise.js +42 -42
  52. package/src/rule.js +12 -12
  53. package/src/{metaSubstitution.js → substitution/metastatementForMetavariable.js} +7 -7
  54. package/src/{substitution.js → substitution/statementForMetavariable.js} +7 -7
  55. package/src/substitution/statementForVariable.js +64 -0
  56. package/src/supposition.js +20 -20
  57. package/src/verify/assertion/type.js +24 -25
  58. package/src/verify/conclusion.js +11 -5
  59. package/src/verify/consequence.js +10 -4
  60. package/src/verify/derivation.js +4 -2
  61. package/src/verify/metastatement/qualified.js +20 -6
  62. package/src/verify/metastatement/unqualified.js +13 -3
  63. package/src/verify/metastatement.js +2 -2
  64. package/src/verify/premise.js +10 -4
  65. package/src/verify/ruleDerivation.js +4 -2
  66. package/src/verify/statement/qualified.js +13 -11
  67. package/src/verify/statement/unqualified.js +13 -3
  68. package/src/verify/statement.js +175 -9
  69. package/src/verify/supposition.js +16 -12
  70. package/lib/matcher/conclusion.js +0 -194
  71. package/lib/matcher/consequence.js +0 -194
  72. package/lib/matcher/premise.js +0 -199
  73. package/lib/matcher/supposition.js +0 -199
  74. package/lib/metaMatcher/conclusion.js +0 -194
  75. package/lib/metaMatcher/premise.js +0 -199
  76. package/lib/metaMatcher.js +0 -36
  77. package/lib/metaSubstitution.js +0 -86
  78. package/lib/mixins/matcher.js +0 -109
  79. package/lib/substitution.js +0 -86
  80. package/lib/verify/metaDerivation.js +0 -63
  81. package/lib/verify/metaproof.js +0 -32
  82. package/src/matcher/conclusion.js +0 -86
  83. package/src/matcher/consequence.js +0 -89
  84. package/src/matcher/premise.js +0 -94
  85. package/src/matcher/supposition.js +0 -97
  86. package/src/metaMatcher/conclusion.js +0 -86
  87. package/src/metaMatcher/premise.js +0 -94
  88. package/src/metaMatcher.js +0 -9
  89. package/src/mixins/matcher.js +0 -81
  90. package/src/verify/metaDerivation.js +0 -75
  91. package/src/verify/metaproof.js +0 -35
@@ -1,24 +1,33 @@
1
1
  "use strict";
2
2
 
3
+ import verifyTerm from "../verify/term";
3
4
  import verifyTypeAssertion from "../verify/assertion/type";
4
5
 
5
- import { nodeQuery } from "../utilities/query";
6
+ import { first } from "../utilities/array";
7
+ import { nodeAsString } from "../utilities/string";
8
+ import { ARGUMENT_RULE_NAME } from "../ruleNames";
9
+ import { nodeQuery, typeNameFromTypeNode } from "../utilities/query";
6
10
 
7
- const typeAssertionNodeQuery = nodeQuery("/statement/typeAssertion!");
11
+ const termNodeQuery = nodeQuery("/argument/term!"),
12
+ typeNodeQuery = nodeQuery("/argument/type!"),
13
+ typeAssertionNodeQuery = nodeQuery("/statement/typeAssertion!");
8
14
 
9
- export default function verifyStatement(statementNode, qualified, proofContext) {
15
+ export default function verifyStatement(statementNode, assertions, proofContext) {
10
16
  let statementVerified = false;
11
17
 
12
18
  proofContext.begin(statementNode);
13
19
 
14
- if (!statementVerified) {
15
- const typeAssertionNode = typeAssertionNodeQuery(statementNode);
20
+ const typeAssertionNode = typeAssertionNodeQuery(statementNode);
16
21
 
17
- if (typeAssertionNode !== null) {
18
- const typeAssertionVerified = verifyTypeAssertion(typeAssertionNode, qualified, proofContext);
22
+ if (typeAssertionNode !== null) {
23
+ const typeAssertionVerified = verifyTypeAssertion(typeAssertionNode, assertions, proofContext);
19
24
 
20
- statementVerified = typeAssertionVerified; ///
21
- }
25
+ statementVerified = typeAssertionVerified; ///
26
+ } else {
27
+ const context = proofContext, ///
28
+ statementVerifiedAgainstCombinators = verifyStatementAgainstCombinators(statementNode, context);
29
+
30
+ statementVerified = statementVerifiedAgainstCombinators; ///
22
31
  }
23
32
 
24
33
  statementVerified ?
@@ -27,3 +36,160 @@ export default function verifyStatement(statementNode, qualified, proofContext)
27
36
 
28
37
  return statementVerified;
29
38
  }
39
+
40
+ function verifyStatementAgainstCombinators(statementNode, context) {
41
+ let statementVerifiedAgainstCombinators = false;
42
+
43
+ context.begin(statementNode);
44
+
45
+ const combinators = context.getCombinators(),
46
+ combinator = combinators.find((combinator) => {
47
+ const statementVerifiedAgainstCombinator = verifyStatementAgainstCombinator(statementNode, combinator, context);
48
+
49
+ if (statementVerifiedAgainstCombinator) {
50
+ return true;
51
+ }
52
+ }) || null;
53
+
54
+ if (combinator !== null) {
55
+ statementVerifiedAgainstCombinators = true;
56
+ }
57
+
58
+ statementVerifiedAgainstCombinators ?
59
+ context.complete(statementNode) :
60
+ context.halt(statementNode);
61
+
62
+ return statementVerifiedAgainstCombinators;
63
+ }
64
+
65
+ function verifyStatementAgainstCombinator(statementNode, combinator, context) {
66
+ const combinatorStatementNode = combinator.getStatementNode(),
67
+ node = statementNode, ///
68
+ combinatorNode = combinatorStatementNode, ///
69
+ nodeVerified = verifyNode(node, combinatorNode, context),
70
+ statementVerifiedAgainstCombinator = nodeVerified; ///
71
+
72
+ return statementVerifiedAgainstCombinator;
73
+ }
74
+
75
+ function verifyNode(node, combinatorNode, context) {
76
+ let nodeVerified;
77
+
78
+ const nodeTerminalNode = node.isTerminalNode(),
79
+ combinatorNodeTerminalNode = combinatorNode.isTerminalNode();
80
+
81
+ if (nodeTerminalNode === combinatorNodeTerminalNode) {
82
+ if (nodeTerminalNode) {
83
+ const terminalNode = node, ///
84
+ combinatorTerminalNode = combinatorNode, ///
85
+ terminalNodeVerified = verifyTerminalNode(terminalNode, combinatorTerminalNode, context);
86
+
87
+ nodeVerified = terminalNodeVerified; ///
88
+ } else {
89
+ const nonTerminalNode = node, ///
90
+ combinatorNonTerminalNode = combinatorNode, ///
91
+ nonTerminalNodeVerified = verifyNonTerminalNode(nonTerminalNode, combinatorNonTerminalNode, context);
92
+
93
+ nodeVerified = nonTerminalNodeVerified; ///
94
+ }
95
+ }
96
+
97
+ return nodeVerified;
98
+ }
99
+
100
+ function verifyNodes(nodes, combinatorNodes, context) {
101
+ let nodesVerified = false;
102
+
103
+ const nodesLength = nodes.length,
104
+ combinatorNodesLength = combinatorNodes.length;
105
+
106
+ if (nodesLength === combinatorNodesLength) {
107
+ nodesVerified = nodes.every((node, index) => {
108
+ const combinatorNode = combinatorNodes[index],
109
+ nodeVerified = verifyNode(node, combinatorNode, context);
110
+
111
+ if (nodeVerified) {
112
+ return true;
113
+ }
114
+ });
115
+ }
116
+
117
+ return nodesVerified;
118
+ }
119
+
120
+ function verifyTerminalNode(terminalNode, combinatorTerminalNode, context) {
121
+ let terminalNodeVerified = false;
122
+
123
+ const matches = terminalNode.match(combinatorTerminalNode);
124
+
125
+ if (matches) {
126
+ terminalNodeVerified = true;
127
+ }
128
+
129
+ return terminalNodeVerified;
130
+ }
131
+
132
+ function verifyNonTerminalNode(nonTerminalNode, combinatorNonTerminalNode, context) {
133
+ let nonTerminalNodeVerified = false;
134
+
135
+ const ruleName = nonTerminalNode.getRuleName(), ///
136
+ combinatorRuleName = combinatorNonTerminalNode.getRuleName(); ///
137
+
138
+ if (ruleName === combinatorRuleName) {
139
+ switch (ruleName) {
140
+ case ARGUMENT_RULE_NAME: {
141
+ const argumentNode = nonTerminalNode, ///
142
+ combinatorArgumentNode = combinatorNonTerminalNode, ///
143
+ argumentNodeVerified = verifyArgumentNode(argumentNode, combinatorArgumentNode, context);
144
+
145
+ nonTerminalNodeVerified = argumentNodeVerified; ///
146
+
147
+ break;
148
+ }
149
+
150
+ default: {
151
+ const childNodes = nonTerminalNode.getChildNodes(),
152
+ combinatorChildNodes = combinatorNonTerminalNode.getChildNodes(),
153
+ nodes = childNodes, ///
154
+ combinatorNodes = combinatorChildNodes, ///
155
+ nodesVerified = verifyNodes(nodes, combinatorNodes, context);
156
+
157
+ nonTerminalNodeVerified = nodesVerified; ///
158
+
159
+ break;
160
+ }
161
+ }
162
+ }
163
+
164
+ return nonTerminalNodeVerified;
165
+ }
166
+
167
+ function verifyArgumentNode(argumentNode, combinatorArgumentNode, context) {
168
+ let argumentNodeVerified = false;
169
+
170
+ const termNode = termNodeQuery(argumentNode);
171
+
172
+ if (termNode === null) {
173
+ const argumentString = nodeAsString(argumentNode);
174
+
175
+ context.error(`The ${argumentString} argument should be a term, not a type`);
176
+ } else {
177
+ const types = [],
178
+ termVerified = verifyTerm(termNode, types, context);
179
+
180
+ if (termVerified) {
181
+ const firstType = first(types),
182
+ termType = firstType, ///
183
+ typeNode = typeNodeQuery(combinatorArgumentNode),
184
+ typeName = typeNameFromTypeNode(typeNode),
185
+ type = context.findTypeByTypeName(typeName),
186
+ statementTypeEqualToOrSubTypeOfType = termType.isEqualToOrSubTypeOf(type);
187
+
188
+ if (statementTypeEqualToOrSubTypeOfType) {
189
+ argumentNodeVerified = true;
190
+ }
191
+ }
192
+ }
193
+
194
+ return argumentNodeVerified;
195
+ }
@@ -2,12 +2,13 @@
2
2
 
3
3
  import ProofStep from "../step/proof";
4
4
  import Supposition from "../supposition";
5
- import verifyStatement from "./statement";
5
+ import verifyUnqualifiedStatement from "./statement/unqualified";
6
6
 
7
7
  import { nodeQuery } from "../utilities/query";
8
8
  import { nodeAsString } from "../utilities/string";
9
9
 
10
- const statementNodeQuery = nodeQuery("/supposition/unqualifiedStatement!/statement!");
10
+ const statementNodeQuery = nodeQuery("/unqualifiedStatement/statement!"),
11
+ unqualifiedStatementNodeQuery = nodeQuery("/supposition/unqualifiedStatement!");
11
12
 
12
13
  export default function verifySupposition(suppositionNode, suppositions, proofContext) {
13
14
  let suppositionVerified;
@@ -18,20 +19,23 @@ export default function verifySupposition(suppositionNode, suppositions, proofCo
18
19
 
19
20
  proofContext.debug(`Verifying the ${suppositionString} supposition...`);
20
21
 
21
- const statementNode = statementNodeQuery(suppositionNode);
22
+ const derived = false,
23
+ assertions = [],
24
+ unqualifiedStatementNode = unqualifiedStatementNodeQuery(suppositionNode),
25
+ unqualifiedStatementVerified = verifyUnqualifiedStatement(unqualifiedStatementNode, assertions, derived, proofContext);
22
26
 
23
- if (statementNode !== null) {
24
- const qualified = false,
25
- statementVerified = verifyStatement(statementNode, qualified, proofContext);
27
+ if (unqualifiedStatementVerified) {
28
+ const statementNode = statementNodeQuery(unqualifiedStatementNode),
29
+ proofStep = ProofStep.fromStatementNode(statementNode),
30
+ supposition = Supposition.fromStatementNode(statementNode);
26
31
 
27
- if (statementVerified) {
28
- const proofStep = ProofStep.fromStatementNode(statementNode),
29
- supposition = Supposition.fromStatementNode(statementNode);
32
+ suppositions.push(supposition);
30
33
 
31
- suppositions.push(supposition);
34
+ proofContext.addProofStep(proofStep);
32
35
 
33
- proofContext.addProofStep(proofStep);
34
- }
36
+ assertions.every((assertion) => {
37
+ assertion.assert(proofContext);
38
+ });
35
39
 
36
40
  suppositionVerified = true;
37
41
  }
@@ -1,194 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "conclusionMatcher", {
6
- enumerable: true,
7
- get: function() {
8
- return conclusionMatcher;
9
- }
10
- });
11
- var _matcher = /*#__PURE__*/ _interopRequireDefault(require("../matcher"));
12
- var _array = require("../utilities/array");
13
- var _query = require("../utilities/query");
14
- var _ruleNames = require("../ruleNames");
15
- function _assertThisInitialized(self) {
16
- if (self === void 0) {
17
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
18
- }
19
- return self;
20
- }
21
- function _classCallCheck(instance, Constructor) {
22
- if (!(instance instanceof Constructor)) {
23
- throw new TypeError("Cannot call a class as a function");
24
- }
25
- }
26
- function _defineProperties(target, props) {
27
- for(var i = 0; i < props.length; i++){
28
- var descriptor = props[i];
29
- descriptor.enumerable = descriptor.enumerable || false;
30
- descriptor.configurable = true;
31
- if ("value" in descriptor) descriptor.writable = true;
32
- Object.defineProperty(target, descriptor.key, descriptor);
33
- }
34
- }
35
- function _createClass(Constructor, protoProps, staticProps) {
36
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
37
- if (staticProps) _defineProperties(Constructor, staticProps);
38
- return Constructor;
39
- }
40
- function _get(target, property, receiver) {
41
- if (typeof Reflect !== "undefined" && Reflect.get) {
42
- _get = Reflect.get;
43
- } else {
44
- _get = function _get(target, property, receiver) {
45
- var base = _superPropBase(target, property);
46
- if (!base) return;
47
- var desc = Object.getOwnPropertyDescriptor(base, property);
48
- if (desc.get) {
49
- return desc.get.call(receiver);
50
- }
51
- return desc.value;
52
- };
53
- }
54
- return _get(target, property, receiver || target);
55
- }
56
- function _getPrototypeOf(o) {
57
- _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
58
- return o.__proto__ || Object.getPrototypeOf(o);
59
- };
60
- return _getPrototypeOf(o);
61
- }
62
- function _inherits(subClass, superClass) {
63
- if (typeof superClass !== "function" && superClass !== null) {
64
- throw new TypeError("Super expression must either be null or a function");
65
- }
66
- subClass.prototype = Object.create(superClass && superClass.prototype, {
67
- constructor: {
68
- value: subClass,
69
- writable: true,
70
- configurable: true
71
- }
72
- });
73
- if (superClass) _setPrototypeOf(subClass, superClass);
74
- }
75
- function _interopRequireDefault(obj) {
76
- return obj && obj.__esModule ? obj : {
77
- default: obj
78
- };
79
- }
80
- function _possibleConstructorReturn(self, call) {
81
- if (call && (_typeof(call) === "object" || typeof call === "function")) {
82
- return call;
83
- }
84
- return _assertThisInitialized(self);
85
- }
86
- function _setPrototypeOf(o, p) {
87
- _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
88
- o.__proto__ = p;
89
- return o;
90
- };
91
- return _setPrototypeOf(o, p);
92
- }
93
- function _superPropBase(object, property) {
94
- while(!Object.prototype.hasOwnProperty.call(object, property)){
95
- object = _getPrototypeOf(object);
96
- if (object === null) break;
97
- }
98
- return object;
99
- }
100
- var _typeof = function(obj) {
101
- "@swc/helpers - typeof";
102
- return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
103
- };
104
- function _isNativeReflectConstruct() {
105
- if (typeof Reflect === "undefined" || !Reflect.construct) return false;
106
- if (Reflect.construct.sham) return false;
107
- if (typeof Proxy === "function") return true;
108
- try {
109
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
110
- return true;
111
- } catch (e) {
112
- return false;
113
- }
114
- }
115
- function _createSuper(Derived) {
116
- var hasNativeReflectConstruct = _isNativeReflectConstruct();
117
- return function _createSuperInternal() {
118
- var Super = _getPrototypeOf(Derived), result;
119
- if (hasNativeReflectConstruct) {
120
- var NewTarget = _getPrototypeOf(this).constructor;
121
- result = Reflect.construct(Super, arguments, NewTarget);
122
- } else {
123
- result = Super.apply(this, arguments);
124
- }
125
- return _possibleConstructorReturn(this, result);
126
- };
127
- }
128
- var ConclusionMatcher = /*#__PURE__*/ function(Matcher) {
129
- _inherits(ConclusionMatcher, Matcher);
130
- var _super = _createSuper(ConclusionMatcher);
131
- function ConclusionMatcher() {
132
- _classCallCheck(this, ConclusionMatcher);
133
- return _super.apply(this, arguments);
134
- }
135
- _createClass(ConclusionMatcher, [
136
- {
137
- key: "matchNonTerminalNode",
138
- value: function matchNonTerminalNode(conclusionNonTerminalNode, nonTerminalNode, substitutions) {
139
- var nonTerminalNodeMatches = false;
140
- var ruleName = nonTerminalNode.getRuleName(), conclusionNonTerminalNodeRuleName = conclusionNonTerminalNode.getRuleName(), ruleNameStatementRuleName = ruleName === _ruleNames.STATEMENT_RULE_NAME, conclusionNonTerminalNodeRuleNameMetastatementRuleName = conclusionNonTerminalNodeRuleName === _ruleNames.METASTATEMENT_RULE_NAME;
141
- if (ruleNameStatementRuleName && conclusionNonTerminalNodeRuleNameMetastatementRuleName) {
142
- var statementNode = nonTerminalNode, conclusionMetastatementNode = conclusionNonTerminalNode, metastatementNodeMatches = this.matchMetastatementNode(conclusionMetastatementNode, statementNode, substitutions);
143
- if (metastatementNodeMatches) {
144
- nonTerminalNodeMatches = true; ///
145
- } else {
146
- nonTerminalNodeMatches = _get(_getPrototypeOf(ConclusionMatcher.prototype), "matchNonTerminalNode", this).call(this, conclusionNonTerminalNode, nonTerminalNode, substitutions);
147
- }
148
- } else if (ruleName === conclusionNonTerminalNodeRuleName) {
149
- nonTerminalNodeMatches = _get(_getPrototypeOf(ConclusionMatcher.prototype), "matchNonTerminalNode", this).call(this, conclusionNonTerminalNode, nonTerminalNode, substitutions);
150
- }
151
- return nonTerminalNodeMatches;
152
- }
153
- },
154
- {
155
- key: "matchMetavariableNode",
156
- value: function matchMetavariableNode(conclusionMetavariableNode, statementNode, substitutions) {
157
- var metavariableNodeMatches = true;
158
- var conclusionMetavariableName = (0, _query.metavariableNameFromMetavariableNode)(conclusionMetavariableNode), substitution = substitutions.find(function(substitution) {
159
- var metavariableName = substitution.getMetavariableName();
160
- if (metavariableName === conclusionMetavariableName) {
161
- return true;
162
- }
163
- }) || null;
164
- if (substitution !== null) {
165
- var substitutionNodesMatch = substitution.matchStatementNode(statementNode);
166
- metavariableNodeMatches = substitutionNodesMatch; ///
167
- }
168
- return metavariableNodeMatches;
169
- }
170
- },
171
- {
172
- key: "matchMetastatementNode",
173
- value: function matchMetastatementNode(conclusionMetastatementNode, statementNode, substitutions) {
174
- var metastatementNodeMatches = false;
175
- var conclusionNonTerminalNode = conclusionMetastatementNode, conclusionNonTerminalNodeChildNodes = conclusionNonTerminalNode.getChildNodes(), conclusionNonTerminalNodeChildNodesLength = conclusionNonTerminalNodeChildNodes.length;
176
- if (conclusionNonTerminalNodeChildNodesLength === 1) {
177
- var firstConclusionChildNode = (0, _array.first)(conclusionNonTerminalNodeChildNodes), conclusionChildNode = firstConclusionChildNode, conclusionChildNodeNonTerminalNode = conclusionChildNode.isNonTerminalNode();
178
- if (conclusionChildNodeNonTerminalNode) {
179
- var conclusionNonTerminalChildNode = conclusionChildNode, conclusionNonTerminalChildNodeRuleName = conclusionNonTerminalChildNode.getRuleName(), conclusionNonTerminalChildNodeRuleNameMetavariableRuleName = conclusionNonTerminalChildNodeRuleName === _ruleNames.METAVARIABLE_RULE_NAME;
180
- if (conclusionNonTerminalChildNodeRuleNameMetavariableRuleName) {
181
- var conclusionMetavariableNode = conclusionNonTerminalChildNode, metavariableNodeMatches = this.matchMetavariableNode(conclusionMetavariableNode, statementNode, substitutions);
182
- metastatementNodeMatches = metavariableNodeMatches; ///
183
- }
184
- }
185
- }
186
- return metastatementNodeMatches;
187
- }
188
- }
189
- ]);
190
- return ConclusionMatcher;
191
- }(_matcher.default);
192
- var conclusionMatcher = new ConclusionMatcher();
193
-
194
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXRjaGVyL2NvbmNsdXNpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBNYXRjaGVyIGZyb20gXCIuLi9tYXRjaGVyXCI7XG5cbmltcG9ydCB7IGZpcnN0IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9hcnJheVwiO1xuaW1wb3J0IHsgbWV0YXZhcmlhYmxlTmFtZUZyb21NZXRhdmFyaWFibGVOb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgU1RBVEVNRU5UX1JVTEVfTkFNRSwgTUVUQVZBUklBQkxFX1JVTEVfTkFNRSwgTUVUQVNUQVRFTUVOVF9SVUxFX05BTUUgfSBmcm9tIFwiLi4vcnVsZU5hbWVzXCI7XG5cbmNsYXNzIENvbmNsdXNpb25NYXRjaGVyIGV4dGVuZHMgTWF0Y2hlciB7XG4gIG1hdGNoTm9uVGVybWluYWxOb2RlKGNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGUsIG5vblRlcm1pbmFsTm9kZSwgc3Vic3RpdHV0aW9ucykge1xuICAgIGxldCBub25UZXJtaW5hbE5vZGVNYXRjaGVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBydWxlTmFtZSA9IG5vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpLFxuICAgICAgICAgIGNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGVSdWxlTmFtZSA9IGNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGUuZ2V0UnVsZU5hbWUoKSxcbiAgICAgICAgICBydWxlTmFtZVN0YXRlbWVudFJ1bGVOYW1lID0gKHJ1bGVOYW1lID09PSBTVEFURU1FTlRfUlVMRV9OQU1FKSxcbiAgICAgICAgICBjb25jbHVzaW9uTm9uVGVybWluYWxOb2RlUnVsZU5hbWVNZXRhc3RhdGVtZW50UnVsZU5hbWUgPSAoY29uY2x1c2lvbk5vblRlcm1pbmFsTm9kZVJ1bGVOYW1lID09PSBNRVRBU1RBVEVNRU5UX1JVTEVfTkFNRSk7XG5cbiAgICBpZiAocnVsZU5hbWVTdGF0ZW1lbnRSdWxlTmFtZSAmJiBjb25jbHVzaW9uTm9uVGVybWluYWxOb2RlUnVsZU5hbWVNZXRhc3RhdGVtZW50UnVsZU5hbWUpIHtcbiAgICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSBub25UZXJtaW5hbE5vZGUsICAvLy9cbiAgICAgICAgICAgIGNvbmNsdXNpb25NZXRhc3RhdGVtZW50Tm9kZSA9IGNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGUsICAvLy9cbiAgICAgICAgICAgIG1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyA9IHRoaXMubWF0Y2hNZXRhc3RhdGVtZW50Tm9kZShjb25jbHVzaW9uTWV0YXN0YXRlbWVudE5vZGUsIHN0YXRlbWVudE5vZGUsIHN1YnN0aXR1dGlvbnMpO1xuXG4gICAgICBpZiAobWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzKSB7XG4gICAgICAgIG5vblRlcm1pbmFsTm9kZU1hdGNoZXMgPSB0cnVlOyAvLy9cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5vblRlcm1pbmFsTm9kZU1hdGNoZXMgPSBzdXBlci5tYXRjaE5vblRlcm1pbmFsTm9kZShjb25jbHVzaW9uTm9uVGVybWluYWxOb2RlLCBub25UZXJtaW5hbE5vZGUsIHN1YnN0aXR1dGlvbnMpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAocnVsZU5hbWUgPT09IGNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGVSdWxlTmFtZSkge1xuICAgICAgbm9uVGVybWluYWxOb2RlTWF0Y2hlcyA9IHN1cGVyLm1hdGNoTm9uVGVybWluYWxOb2RlKGNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGUsIG5vblRlcm1pbmFsTm9kZSwgc3Vic3RpdHV0aW9ucyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5vblRlcm1pbmFsTm9kZU1hdGNoZXM7XG4gIH1cblxuICBtYXRjaE1ldGF2YXJpYWJsZU5vZGUoY29uY2x1c2lvbk1ldGF2YXJpYWJsZU5vZGUsIHN0YXRlbWVudE5vZGUsIHN1YnN0aXR1dGlvbnMpIHtcbiAgICBsZXQgbWV0YXZhcmlhYmxlTm9kZU1hdGNoZXMgPSB0cnVlO1xuXG4gICAgY29uc3QgY29uY2x1c2lvbk1ldGF2YXJpYWJsZU5hbWUgPSBtZXRhdmFyaWFibGVOYW1lRnJvbU1ldGF2YXJpYWJsZU5vZGUoY29uY2x1c2lvbk1ldGF2YXJpYWJsZU5vZGUpLFxuICAgICAgICAgIHN1YnN0aXR1dGlvbiA9IHN1YnN0aXR1dGlvbnMuZmluZCgoc3Vic3RpdHV0aW9uKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBtZXRhdmFyaWFibGVOYW1lID0gc3Vic3RpdHV0aW9uLmdldE1ldGF2YXJpYWJsZU5hbWUoKTtcblxuICAgICAgICAgICAgaWYgKG1ldGF2YXJpYWJsZU5hbWUgPT09IGNvbmNsdXNpb25NZXRhdmFyaWFibGVOYW1lKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pIHx8IG51bGw7XG5cbiAgICBpZiAoc3Vic3RpdHV0aW9uICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBzdWJzdGl0dXRpb25Ob2Rlc01hdGNoID0gc3Vic3RpdHV0aW9uLm1hdGNoU3RhdGVtZW50Tm9kZShzdGF0ZW1lbnROb2RlKTtcblxuICAgICAgbWV0YXZhcmlhYmxlTm9kZU1hdGNoZXMgPSBzdWJzdGl0dXRpb25Ob2Rlc01hdGNoOyAgLy8vXG4gICAgfVxuXG4gICAgcmV0dXJuIG1ldGF2YXJpYWJsZU5vZGVNYXRjaGVzO1xuICB9XG5cbiAgbWF0Y2hNZXRhc3RhdGVtZW50Tm9kZShjb25jbHVzaW9uTWV0YXN0YXRlbWVudE5vZGUsIHN0YXRlbWVudE5vZGUsIHN1YnN0aXR1dGlvbnMpIHtcbiAgICBsZXQgbWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBjb25jbHVzaW9uTm9uVGVybWluYWxOb2RlID0gY29uY2x1c2lvbk1ldGFzdGF0ZW1lbnROb2RlLCAgLy8vXG4gICAgICAgICAgY29uY2x1c2lvbk5vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXMgPSBjb25jbHVzaW9uTm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICBjb25jbHVzaW9uTm9uVGVybWluYWxOb2RlQ2hpbGROb2Rlc0xlbmd0aCA9IGNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGVDaGlsZE5vZGVzLmxlbmd0aDtcblxuICAgIGlmIChjb25jbHVzaW9uTm9uVGVybWluYWxOb2RlQ2hpbGROb2Rlc0xlbmd0aCA9PT0gMSkge1xuICAgICAgY29uc3QgZmlyc3RDb25jbHVzaW9uQ2hpbGROb2RlID0gZmlyc3QoY29uY2x1c2lvbk5vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXMpLFxuICAgICAgICAgICAgY29uY2x1c2lvbkNoaWxkTm9kZSA9IGZpcnN0Q29uY2x1c2lvbkNoaWxkTm9kZSwgIC8vL1xuICAgICAgICAgICAgY29uY2x1c2lvbkNoaWxkTm9kZU5vblRlcm1pbmFsTm9kZSA9IGNvbmNsdXNpb25DaGlsZE5vZGUuaXNOb25UZXJtaW5hbE5vZGUoKTtcblxuICAgICAgaWYgKGNvbmNsdXNpb25DaGlsZE5vZGVOb25UZXJtaW5hbE5vZGUpIHtcbiAgICAgICAgY29uc3QgY29uY2x1c2lvbk5vblRlcm1pbmFsQ2hpbGROb2RlID0gY29uY2x1c2lvbkNoaWxkTm9kZSwgIC8vL1xuICAgICAgICAgICAgICBjb25jbHVzaW9uTm9uVGVybWluYWxDaGlsZE5vZGVSdWxlTmFtZSA9IGNvbmNsdXNpb25Ob25UZXJtaW5hbENoaWxkTm9kZS5nZXRSdWxlTmFtZSgpLFxuICAgICAgICAgICAgICBjb25jbHVzaW9uTm9uVGVybWluYWxDaGlsZE5vZGVSdWxlTmFtZU1ldGF2YXJpYWJsZVJ1bGVOYW1lID0gKGNvbmNsdXNpb25Ob25UZXJtaW5hbENoaWxkTm9kZVJ1bGVOYW1lID09PSBNRVRBVkFSSUFCTEVfUlVMRV9OQU1FKTtcblxuICAgICAgICBpZiAoY29uY2x1c2lvbk5vblRlcm1pbmFsQ2hpbGROb2RlUnVsZU5hbWVNZXRhdmFyaWFibGVSdWxlTmFtZSkge1xuICAgICAgICAgIGNvbnN0IGNvbmNsdXNpb25NZXRhdmFyaWFibGVOb2RlID0gY29uY2x1c2lvbk5vblRlcm1pbmFsQ2hpbGROb2RlLCAgLy8vXG4gICAgICAgICAgICAgICAgbWV0YXZhcmlhYmxlTm9kZU1hdGNoZXMgPSB0aGlzLm1hdGNoTWV0YXZhcmlhYmxlTm9kZShjb25jbHVzaW9uTWV0YXZhcmlhYmxlTm9kZSwgc3RhdGVtZW50Tm9kZSwgc3Vic3RpdHV0aW9ucyk7XG5cbiAgICAgICAgICBtZXRhc3RhdGVtZW50Tm9kZU1hdGNoZXMgPSBtZXRhdmFyaWFibGVOb2RlTWF0Y2hlczsgLy8vXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbWV0YXN0YXRlbWVudE5vZGVNYXRjaGVzO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBjb25jbHVzaW9uTWF0Y2hlciA9IG5ldyBDb25jbHVzaW9uTWF0Y2hlcigpO1xuIl0sIm5hbWVzIjpbImNvbmNsdXNpb25NYXRjaGVyIiwiQ29uY2x1c2lvbk1hdGNoZXIiLCJtYXRjaE5vblRlcm1pbmFsTm9kZSIsImNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGUiLCJub25UZXJtaW5hbE5vZGUiLCJzdWJzdGl0dXRpb25zIiwibm9uVGVybWluYWxOb2RlTWF0Y2hlcyIsInJ1bGVOYW1lIiwiZ2V0UnVsZU5hbWUiLCJjb25jbHVzaW9uTm9uVGVybWluYWxOb2RlUnVsZU5hbWUiLCJydWxlTmFtZVN0YXRlbWVudFJ1bGVOYW1lIiwiU1RBVEVNRU5UX1JVTEVfTkFNRSIsImNvbmNsdXNpb25Ob25UZXJtaW5hbE5vZGVSdWxlTmFtZU1ldGFzdGF0ZW1lbnRSdWxlTmFtZSIsIk1FVEFTVEFURU1FTlRfUlVMRV9OQU1FIiwic3RhdGVtZW50Tm9kZSIsImNvbmNsdXNpb25NZXRhc3RhdGVtZW50Tm9kZSIsIm1ldGFzdGF0ZW1lbnROb2RlTWF0Y2hlcyIsIm1hdGNoTWV0YXN0YXRlbWVudE5vZGUiLCJtYXRjaE1ldGF2YXJpYWJsZU5vZGUiLCJjb25jbHVzaW9uTWV0YXZhcmlhYmxlTm9kZSIsIm1ldGF2YXJpYWJsZU5vZGVNYXRjaGVzIiwiY29uY2x1c2lvbk1ldGF2YXJpYWJsZU5hbWUiLCJtZXRhdmFyaWFibGVOYW1lRnJvbU1ldGF2YXJpYWJsZU5vZGUiLCJzdWJzdGl0dXRpb24iLCJmaW5kIiwibWV0YXZhcmlhYmxlTmFtZSIsImdldE1ldGF2YXJpYWJsZU5hbWUiLCJzdWJzdGl0dXRpb25Ob2Rlc01hdGNoIiwibWF0Y2hTdGF0ZW1lbnROb2RlIiwiY29uY2x1c2lvbk5vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwiY29uY2x1c2lvbk5vblRlcm1pbmFsTm9kZUNoaWxkTm9kZXNMZW5ndGgiLCJsZW5ndGgiLCJmaXJzdENvbmNsdXNpb25DaGlsZE5vZGUiLCJmaXJzdCIsImNvbmNsdXNpb25DaGlsZE5vZGUiLCJjb25jbHVzaW9uQ2hpbGROb2RlTm9uVGVybWluYWxOb2RlIiwiaXNOb25UZXJtaW5hbE5vZGUiLCJjb25jbHVzaW9uTm9uVGVybWluYWxDaGlsZE5vZGUiLCJjb25jbHVzaW9uTm9uVGVybWluYWxDaGlsZE5vZGVSdWxlTmFtZSIsImNvbmNsdXNpb25Ob25UZXJtaW5hbENoaWxkTm9kZVJ1bGVOYW1lTWV0YXZhcmlhYmxlUnVsZU5hbWUiLCJNRVRBVkFSSUFCTEVfUlVMRV9OQU1FIiwiTWF0Y2hlciJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBcUZhQTs7O2VBQUFBOzs7NERBbkZPO3FCQUVFO3FCQUMrQjt5QkFDZ0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVyRixJQUFBLEFBQU1DLGtDQTZFSCxBQTdFSDtjQUFNQTs4QkFBQUE7YUFBQUE7OEJBQUFBOzs7aUJBQUFBOztZQUNKQyxLQUFBQTttQkFBQUEsU0FBQUEscUJBQXFCQyx5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
@@ -1,194 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "consequenceMatcher", {
6
- enumerable: true,
7
- get: function() {
8
- return consequenceMatcher;
9
- }
10
- });
11
- var _matcher = /*#__PURE__*/ _interopRequireDefault(require("../matcher"));
12
- var _array = require("../utilities/array");
13
- var _query = require("../utilities/query");
14
- var _ruleNames = require("../ruleNames");
15
- function _assertThisInitialized(self) {
16
- if (self === void 0) {
17
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
18
- }
19
- return self;
20
- }
21
- function _classCallCheck(instance, Constructor) {
22
- if (!(instance instanceof Constructor)) {
23
- throw new TypeError("Cannot call a class as a function");
24
- }
25
- }
26
- function _defineProperties(target, props) {
27
- for(var i = 0; i < props.length; i++){
28
- var descriptor = props[i];
29
- descriptor.enumerable = descriptor.enumerable || false;
30
- descriptor.configurable = true;
31
- if ("value" in descriptor) descriptor.writable = true;
32
- Object.defineProperty(target, descriptor.key, descriptor);
33
- }
34
- }
35
- function _createClass(Constructor, protoProps, staticProps) {
36
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
37
- if (staticProps) _defineProperties(Constructor, staticProps);
38
- return Constructor;
39
- }
40
- function _get(target, property, receiver) {
41
- if (typeof Reflect !== "undefined" && Reflect.get) {
42
- _get = Reflect.get;
43
- } else {
44
- _get = function _get(target, property, receiver) {
45
- var base = _superPropBase(target, property);
46
- if (!base) return;
47
- var desc = Object.getOwnPropertyDescriptor(base, property);
48
- if (desc.get) {
49
- return desc.get.call(receiver);
50
- }
51
- return desc.value;
52
- };
53
- }
54
- return _get(target, property, receiver || target);
55
- }
56
- function _getPrototypeOf(o) {
57
- _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {
58
- return o.__proto__ || Object.getPrototypeOf(o);
59
- };
60
- return _getPrototypeOf(o);
61
- }
62
- function _inherits(subClass, superClass) {
63
- if (typeof superClass !== "function" && superClass !== null) {
64
- throw new TypeError("Super expression must either be null or a function");
65
- }
66
- subClass.prototype = Object.create(superClass && superClass.prototype, {
67
- constructor: {
68
- value: subClass,
69
- writable: true,
70
- configurable: true
71
- }
72
- });
73
- if (superClass) _setPrototypeOf(subClass, superClass);
74
- }
75
- function _interopRequireDefault(obj) {
76
- return obj && obj.__esModule ? obj : {
77
- default: obj
78
- };
79
- }
80
- function _possibleConstructorReturn(self, call) {
81
- if (call && (_typeof(call) === "object" || typeof call === "function")) {
82
- return call;
83
- }
84
- return _assertThisInitialized(self);
85
- }
86
- function _setPrototypeOf(o, p) {
87
- _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
88
- o.__proto__ = p;
89
- return o;
90
- };
91
- return _setPrototypeOf(o, p);
92
- }
93
- function _superPropBase(object, property) {
94
- while(!Object.prototype.hasOwnProperty.call(object, property)){
95
- object = _getPrototypeOf(object);
96
- if (object === null) break;
97
- }
98
- return object;
99
- }
100
- var _typeof = function(obj) {
101
- "@swc/helpers - typeof";
102
- return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
103
- };
104
- function _isNativeReflectConstruct() {
105
- if (typeof Reflect === "undefined" || !Reflect.construct) return false;
106
- if (Reflect.construct.sham) return false;
107
- if (typeof Proxy === "function") return true;
108
- try {
109
- Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
110
- return true;
111
- } catch (e) {
112
- return false;
113
- }
114
- }
115
- function _createSuper(Derived) {
116
- var hasNativeReflectConstruct = _isNativeReflectConstruct();
117
- return function _createSuperInternal() {
118
- var Super = _getPrototypeOf(Derived), result;
119
- if (hasNativeReflectConstruct) {
120
- var NewTarget = _getPrototypeOf(this).constructor;
121
- result = Reflect.construct(Super, arguments, NewTarget);
122
- } else {
123
- result = Super.apply(this, arguments);
124
- }
125
- return _possibleConstructorReturn(this, result);
126
- };
127
- }
128
- var ConsequenceMatcher = /*#__PURE__*/ function(Matcher) {
129
- _inherits(ConsequenceMatcher, Matcher);
130
- var _super = _createSuper(ConsequenceMatcher);
131
- function ConsequenceMatcher() {
132
- _classCallCheck(this, ConsequenceMatcher);
133
- return _super.apply(this, arguments);
134
- }
135
- _createClass(ConsequenceMatcher, [
136
- {
137
- key: "matchNonTerminalNode",
138
- value: function matchNonTerminalNode(consequenceNonTerminalNode, nonTerminalNode, metaSubstitutions) {
139
- var nonTerminalNodeMatches = false;
140
- var ruleName = nonTerminalNode.getRuleName(), consequenceRuleName = consequenceNonTerminalNode.getRuleName(); ///
141
- if (ruleName === consequenceRuleName) {
142
- nonTerminalNodeMatches = _get(_getPrototypeOf(ConsequenceMatcher.prototype), "matchNonTerminalNode", this).call(this, consequenceNonTerminalNode, nonTerminalNode, metaSubstitutions);
143
- if (!nonTerminalNodeMatches) {
144
- var ruleNameStatementRuleName = ruleName === _ruleNames.STATEMENT_RULE_NAME;
145
- if (ruleNameStatementRuleName) {
146
- var statementNode = nonTerminalNode, consequenceStatementNode = consequenceNonTerminalNode, statementNodeMatches = this.matchStatementNode(consequenceStatementNode, statementNode, metaSubstitutions);
147
- nonTerminalNodeMatches = statementNodeMatches; ///
148
- }
149
- }
150
- }
151
- return nonTerminalNodeMatches;
152
- }
153
- },
154
- {
155
- key: "matchStatementNode",
156
- value: function matchStatementNode(consequenceStatementNode, statementNode, metaSubstitutions) {
157
- var statementNodeMatches = false;
158
- var consequenceNonTerminalNode = consequenceStatementNode, consequenceChildNodes = consequenceNonTerminalNode.getChildNodes(), consequenceChildNodesLength = consequenceChildNodes.length;
159
- if (consequenceChildNodesLength === 1) {
160
- var firstConsequenceChildNode = (0, _array.first)(consequenceChildNodes), consequenceChildNode = firstConsequenceChildNode, consequenceChildNodeNonTerminalNode = consequenceChildNode.isNonTerminalNode();
161
- if (consequenceChildNodeNonTerminalNode) {
162
- var consequenceNonTerminalChildNode = consequenceChildNode, consequenceNonTerminalChildNodeRuleName = consequenceNonTerminalChildNode.getRuleName(), consequenceNonTerminalChildNodeRuleNameVariableRuleName = consequenceNonTerminalChildNodeRuleName === _ruleNames.VARIABLE_RULE_NAME;
163
- if (consequenceNonTerminalChildNodeRuleNameVariableRuleName) {
164
- var consequenceVariableNode = consequenceNonTerminalChildNode, nonTerminalNode = statementNode, childNodes = nonTerminalNode.getChildNodes(), nodes = childNodes, variableMatches = this.matchVariable(consequenceVariableNode, nodes, metaSubstitutions);
165
- statementNodeMatches = variableMatches; ///
166
- }
167
- }
168
- }
169
- return statementNodeMatches;
170
- }
171
- },
172
- {
173
- key: "matchVariable",
174
- value: function matchVariable(consequenceVariableNode, nodes, metaSubstitutions) {
175
- var variableMatches = true;
176
- var consequenceVariableName = (0, _query.variableNameFromVariableNode)(consequenceVariableNode), metaSubstitution = metaSubstitutions.find(function(metaSubstitution) {
177
- var variableName = metaSubstitution.getVariableName();
178
- if (variableName === consequenceVariableName) {
179
- return true;
180
- }
181
- }) || null;
182
- if (metaSubstitution !== null) {
183
- var metaSubstitutionNodesMatch = metaSubstitution.matchNodes(nodes);
184
- variableMatches = metaSubstitutionNodesMatch; ///
185
- }
186
- return variableMatches;
187
- }
188
- }
189
- ]);
190
- return ConsequenceMatcher;
191
- }(_matcher.default);
192
- var consequenceMatcher = new ConsequenceMatcher();
193
-
194
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXRjaGVyL2NvbnNlcXVlbmNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgTWF0Y2hlciBmcm9tIFwiLi4vbWF0Y2hlclwiO1xuXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCIuLi91dGlsaXRpZXMvYXJyYXlcIjtcbmltcG9ydCB7IHZhcmlhYmxlTmFtZUZyb21WYXJpYWJsZU5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyBWQVJJQUJMRV9SVUxFX05BTUUsIFNUQVRFTUVOVF9SVUxFX05BTUUgfSBmcm9tIFwiLi4vcnVsZU5hbWVzXCI7XG5cbmNsYXNzIENvbnNlcXVlbmNlTWF0Y2hlciBleHRlbmRzIE1hdGNoZXIge1xuICBtYXRjaE5vblRlcm1pbmFsTm9kZShjb25zZXF1ZW5jZU5vblRlcm1pbmFsTm9kZSwgbm9uVGVybWluYWxOb2RlLCBtZXRhU3Vic3RpdHV0aW9ucykge1xuICAgIGxldCBub25UZXJtaW5hbE5vZGVNYXRjaGVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBydWxlTmFtZSA9IG5vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpLFxuICAgICAgICAgIGNvbnNlcXVlbmNlUnVsZU5hbWUgPSBjb25zZXF1ZW5jZU5vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpOyAvLy9cblxuICAgIGlmIChydWxlTmFtZSA9PT0gY29uc2VxdWVuY2VSdWxlTmFtZSkge1xuICAgICAgbm9uVGVybWluYWxOb2RlTWF0Y2hlcyA9IHN1cGVyLm1hdGNoTm9uVGVybWluYWxOb2RlKGNvbnNlcXVlbmNlTm9uVGVybWluYWxOb2RlLCBub25UZXJtaW5hbE5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKTtcblxuICAgICAgaWYgKCFub25UZXJtaW5hbE5vZGVNYXRjaGVzKSB7XG4gICAgICAgIGNvbnN0IHJ1bGVOYW1lU3RhdGVtZW50UnVsZU5hbWUgPSAocnVsZU5hbWUgPT09IFNUQVRFTUVOVF9SVUxFX05BTUUpO1xuXG4gICAgICAgIGlmIChydWxlTmFtZVN0YXRlbWVudFJ1bGVOYW1lKSB7XG4gICAgICAgICAgY29uc3Qgc3RhdGVtZW50Tm9kZSA9IG5vblRlcm1pbmFsTm9kZSwgIC8vL1xuICAgICAgICAgICAgICAgIGNvbnNlcXVlbmNlU3RhdGVtZW50Tm9kZSA9IGNvbnNlcXVlbmNlTm9uVGVybWluYWxOb2RlLCAgLy8vXG4gICAgICAgICAgICAgICAgc3RhdGVtZW50Tm9kZU1hdGNoZXMgPSB0aGlzLm1hdGNoU3RhdGVtZW50Tm9kZShjb25zZXF1ZW5jZVN0YXRlbWVudE5vZGUsIHN0YXRlbWVudE5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKTtcblxuICAgICAgICAgIG5vblRlcm1pbmFsTm9kZU1hdGNoZXMgPSBzdGF0ZW1lbnROb2RlTWF0Y2hlczsgLy8vXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbm9uVGVybWluYWxOb2RlTWF0Y2hlcztcbiAgfVxuXG4gIG1hdGNoU3RhdGVtZW50Tm9kZShjb25zZXF1ZW5jZVN0YXRlbWVudE5vZGUsIHN0YXRlbWVudE5vZGUsIG1ldGFTdWJzdGl0dXRpb25zKSB7XG4gICAgbGV0IHN0YXRlbWVudE5vZGVNYXRjaGVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBjb25zZXF1ZW5jZU5vblRlcm1pbmFsTm9kZSA9IGNvbnNlcXVlbmNlU3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICAgIGNvbnNlcXVlbmNlQ2hpbGROb2RlcyA9IGNvbnNlcXVlbmNlTm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgICBjb25zZXF1ZW5jZUNoaWxkTm9kZXNMZW5ndGggPSBjb25zZXF1ZW5jZUNoaWxkTm9kZXMubGVuZ3RoO1xuXG4gICAgaWYgKGNvbnNlcXVlbmNlQ2hpbGROb2Rlc0xlbmd0aCA9PT0gMSkge1xuICAgICAgY29uc3QgZmlyc3RDb25zZXF1ZW5jZUNoaWxkTm9kZSA9IGZpcnN0KGNvbnNlcXVlbmNlQ2hpbGROb2RlcyksXG4gICAgICAgICAgICBjb25zZXF1ZW5jZUNoaWxkTm9kZSA9IGZpcnN0Q29uc2VxdWVuY2VDaGlsZE5vZGUsICAvLy9cbiAgICAgICAgICAgIGNvbnNlcXVlbmNlQ2hpbGROb2RlTm9uVGVybWluYWxOb2RlID0gY29uc2VxdWVuY2VDaGlsZE5vZGUuaXNOb25UZXJtaW5hbE5vZGUoKTtcblxuICAgICAgaWYgKGNvbnNlcXVlbmNlQ2hpbGROb2RlTm9uVGVybWluYWxOb2RlKSB7XG4gICAgICAgIGNvbnN0IGNvbnNlcXVlbmNlTm9uVGVybWluYWxDaGlsZE5vZGUgPSBjb25zZXF1ZW5jZUNoaWxkTm9kZSwgIC8vL1xuICAgICAgICAgICAgICBjb25zZXF1ZW5jZU5vblRlcm1pbmFsQ2hpbGROb2RlUnVsZU5hbWUgPSBjb25zZXF1ZW5jZU5vblRlcm1pbmFsQ2hpbGROb2RlLmdldFJ1bGVOYW1lKCksXG4gICAgICAgICAgICAgIGNvbnNlcXVlbmNlTm9uVGVybWluYWxDaGlsZE5vZGVSdWxlTmFtZVZhcmlhYmxlUnVsZU5hbWUgPSAoY29uc2VxdWVuY2VOb25UZXJtaW5hbENoaWxkTm9kZVJ1bGVOYW1lID09PSBWQVJJQUJMRV9SVUxFX05BTUUpO1xuXG4gICAgICAgIGlmIChjb25zZXF1ZW5jZU5vblRlcm1pbmFsQ2hpbGROb2RlUnVsZU5hbWVWYXJpYWJsZVJ1bGVOYW1lKSB7XG4gICAgICAgICAgY29uc3QgY29uc2VxdWVuY2VWYXJpYWJsZU5vZGUgPSBjb25zZXF1ZW5jZU5vblRlcm1pbmFsQ2hpbGROb2RlLCAgLy8vXG4gICAgICAgICAgICAgICAgbm9uVGVybWluYWxOb2RlID0gc3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICAgICAgICAgIGNoaWxkTm9kZXMgPSBub25UZXJtaW5hbE5vZGUuZ2V0Q2hpbGROb2RlcygpLFxuICAgICAgICAgICAgICAgIG5vZGVzID0gY2hpbGROb2RlcywgLy8vXG4gICAgICAgICAgICAgICAgdmFyaWFibGVNYXRjaGVzID0gdGhpcy5tYXRjaFZhcmlhYmxlKGNvbnNlcXVlbmNlVmFyaWFibGVOb2RlLCBub2RlcywgbWV0YVN1YnN0aXR1dGlvbnMpO1xuXG4gICAgICAgICAgc3RhdGVtZW50Tm9kZU1hdGNoZXMgPSB2YXJpYWJsZU1hdGNoZXM7IC8vL1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlbWVudE5vZGVNYXRjaGVzO1xuICB9XG5cbiAgbWF0Y2hWYXJpYWJsZShjb25zZXF1ZW5jZVZhcmlhYmxlTm9kZSwgbm9kZXMsIG1ldGFTdWJzdGl0dXRpb25zKSB7XG4gICAgbGV0IHZhcmlhYmxlTWF0Y2hlcyA9IHRydWU7XG5cbiAgICBjb25zdCBjb25zZXF1ZW5jZVZhcmlhYmxlTmFtZSA9IHZhcmlhYmxlTmFtZUZyb21WYXJpYWJsZU5vZGUoY29uc2VxdWVuY2VWYXJpYWJsZU5vZGUpLFxuICAgICAgICAgIG1ldGFTdWJzdGl0dXRpb24gPSBtZXRhU3Vic3RpdHV0aW9ucy5maW5kKChtZXRhU3Vic3RpdHV0aW9uKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2YXJpYWJsZU5hbWUgPSBtZXRhU3Vic3RpdHV0aW9uLmdldFZhcmlhYmxlTmFtZSgpO1xuXG4gICAgICAgICAgICBpZiAodmFyaWFibGVOYW1lID09PSBjb25zZXF1ZW5jZVZhcmlhYmxlTmFtZSkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSB8fCBudWxsO1xuXG4gICAgaWYgKG1ldGFTdWJzdGl0dXRpb24gIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IG1ldGFTdWJzdGl0dXRpb25Ob2Rlc01hdGNoID0gbWV0YVN1YnN0aXR1dGlvbi5tYXRjaE5vZGVzKG5vZGVzKTtcblxuICAgICAgdmFyaWFibGVNYXRjaGVzID0gbWV0YVN1YnN0aXR1dGlvbk5vZGVzTWF0Y2g7ICAvLy9cbiAgICB9XG5cbiAgICByZXR1cm4gdmFyaWFibGVNYXRjaGVzO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBjb25zZXF1ZW5jZU1hdGNoZXIgPSBuZXcgQ29uc2VxdWVuY2VNYXRjaGVyKCk7XG4iXSwibmFtZXMiOlsiY29uc2VxdWVuY2VNYXRjaGVyIiwiQ29uc2VxdWVuY2VNYXRjaGVyIiwibWF0Y2hOb25UZXJtaW5hbE5vZGUiLCJjb25zZXF1ZW5jZU5vblRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZSIsIm1ldGFTdWJzdGl0dXRpb25zIiwibm9uVGVybWluYWxOb2RlTWF0Y2hlcyIsInJ1bGVOYW1lIiwiZ2V0UnVsZU5hbWUiLCJjb25zZXF1ZW5jZVJ1bGVOYW1lIiwicnVsZU5hbWVTdGF0ZW1lbnRSdWxlTmFtZSIsIlNUQVRFTUVOVF9SVUxFX05BTUUiLCJzdGF0ZW1lbnROb2RlIiwiY29uc2VxdWVuY2VTdGF0ZW1lbnROb2RlIiwic3RhdGVtZW50Tm9kZU1hdGNoZXMiLCJtYXRjaFN0YXRlbWVudE5vZGUiLCJjb25zZXF1ZW5jZUNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwiY29uc2VxdWVuY2VDaGlsZE5vZGVzTGVuZ3RoIiwibGVuZ3RoIiwiZmlyc3RDb25zZXF1ZW5jZUNoaWxkTm9kZSIsImZpcnN0IiwiY29uc2VxdWVuY2VDaGlsZE5vZGUiLCJjb25zZXF1ZW5jZUNoaWxkTm9kZU5vblRlcm1pbmFsTm9kZSIsImlzTm9uVGVybWluYWxOb2RlIiwiY29uc2VxdWVuY2VOb25UZXJtaW5hbENoaWxkTm9kZSIsImNvbnNlcXVlbmNlTm9uVGVybWluYWxDaGlsZE5vZGVSdWxlTmFtZSIsImNvbnNlcXVlbmNlTm9uVGVybWluYWxDaGlsZE5vZGVSdWxlTmFtZVZhcmlhYmxlUnVsZU5hbWUiLCJWQVJJQUJMRV9SVUxFX05BTUUiLCJjb25zZXF1ZW5jZVZhcmlhYmxlTm9kZSIsImNoaWxkTm9kZXMiLCJub2RlcyIsInZhcmlhYmxlTWF0Y2hlcyIsIm1hdGNoVmFyaWFibGUiLCJjb25zZXF1ZW5jZVZhcmlhYmxlTmFtZSIsInZhcmlhYmxlTmFtZUZyb21WYXJpYWJsZU5vZGUiLCJtZXRhU3Vic3RpdHV0aW9uIiwiZmluZCIsInZhcmlhYmxlTmFtZSIsImdldFZhcmlhYmxlTmFtZSIsIm1ldGFTdWJzdGl0dXRpb25Ob2Rlc01hdGNoIiwibWF0Y2hOb2RlcyIsIk1hdGNoZXIiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQXdGYUE7OztlQUFBQTs7OzREQXRGTztxQkFFRTtxQkFDdUI7eUJBQ1c7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUV4RCxJQUFBLEFBQU1DLG1DQWdGSCxBQWhGSDtjQUFNQTs4QkFBQUE7YUFBQUE7OEJBQUFBOzs7aUJBQUFBOztZQUNKQyxLQUFBQTttQkFBQUEsU0FBQUEscUJBQXFCQywwQkFBMEIsRUFBRUMsZUFBZSxFQUFFQyxpQkFBaUIsRUFBRTtnQkFDbkYsSUFBSUMseUJBQXlCLEtBQUs7Z0JBRWxDLElBQU1DLFdBQVdILGdCQUFnQkksV0FBVyxJQUN0Q0Msc0JBQXNCTiwyQkFBMkJLLFdBQVcsSUFBSSxHQUFHO2dCQUV6RSxJQUFJRCxhQUFhRSxxQkFBcUI7b0JBQ3BDSCx5QkFBeUIscUJBUnpCTCwrQkFRK0JDLHdCQUFOLElBQUssYUFBc0JDLDRCQUE0QkMsaUJBQWlCQztvQkFFakcsSUFBSSxDQUFDQyx3QkFBd0I7d0JBQzNCLElBQU1JLDRCQUE2QkgsYUFBYUksOEJBQW1CO3dCQUVuRSxJQUFJRCwyQkFBMkI7NEJBQzdCLElBQU1FLGdCQUFnQlIsaUJBQ2hCUywyQkFBMkJWLDRCQUMzQlcsdUJBQXVCLElBQUksQ0FBQ0Msa0JBQWtCLENBQUNGLDBCQUEwQkQsZUFBZVA7NEJBRTlGQyx5QkFBeUJRLHNCQUFzQixHQUFHO3dCQUNwRCxDQUFDO29CQUNILENBQUM7Z0JBQ0gsQ0FBQztnQkFFRCxPQUFPUjtZQUNUOzs7WUFFQVMsS0FBQUE7bUJBQUFBLFNBQUFBLG1CQUFtQkYsd0JBQXdCLEVBQUVELGFBQWEsRUFBRVAsaUJBQWlCLEVBQUU7Z0JBQzdFLElBQUlTLHVCQUF1QixLQUFLO2dCQUVoQyxJQUFNWCw2QkFBNkJVLDBCQUM3Qkcsd0JBQXdCYiwyQkFBMkJjLGFBQWEsSUFDaEVDLDhCQUE4QkYsc0JBQXNCRyxNQUFNO2dCQUVoRSxJQUFJRCxnQ0FBZ0MsR0FBRztvQkFDckMsSUFBTUUsNEJBQTRCQyxJQUFBQSxZQUFLLEVBQUNMLHdCQUNsQ00sdUJBQXVCRiwyQkFDdkJHLHNDQUFzQ0QscUJBQXFCRSxpQkFBaUI7b0JBRWxGLElBQUlELHFDQUFxQzt3QkFDdkMsSUFBTUUsa0NBQWtDSCxzQkFDbENJLDBDQUEwQ0QsZ0NBQWdDakIsV0FBVyxJQUNyRm1CLDBEQUEyREQsNENBQTRDRSw2QkFBa0I7d0JBRS9ILElBQUlELHlEQUF5RDs0QkFDM0QsSUFBTUUsMEJBQTBCSixpQ0FDMUJyQixrQkFBa0JRLGVBQ2xCa0IsYUFBYTFCLGdCQUFnQmEsYUFBYSxJQUMxQ2MsUUFBUUQsWUFDUkUsa0JBQWtCLElBQUksQ0FBQ0MsYUFBYSxDQUFDSix5QkFBeUJFLE9BQU8xQjs0QkFFM0VTLHVCQUF1QmtCLGlCQUFpQixHQUFHO3dCQUM3QyxDQUFDO29CQUNILENBQUM7Z0JBQ0gsQ0FBQztnQkFFRCxPQUFPbEI7WUFDVDs7O1lBRUFtQixLQUFBQTttQkFBQUEsU0FBQUEsY0FBY0osdUJBQXVCLEVBQUVFLEtBQUssRUFBRTFCLGlCQUFpQixFQUFFO2dCQUMvRCxJQUFJMkIsa0JBQWtCLElBQUk7Z0JBRTFCLElBQU1FLDBCQUEwQkMsSUFBQUEsbUNBQTRCLEVBQUNOLDBCQUN2RE8sbUJBQW1CL0Isa0JBQWtCZ0MsSUFBSSxDQUFDLFNBQUNELGtCQUFxQjtvQkFDOUQsSUFBTUUsZUFBZUYsaUJBQWlCRyxlQUFlO29CQUVyRCxJQUFJRCxpQkFBaUJKLHlCQUF5Qjt3QkFDNUMsT0FBTyxJQUFJO29CQUNiLENBQUM7Z0JBQ0gsTUFBTSxJQUFJO2dCQUVoQixJQUFJRSxxQkFBcUIsSUFBSSxFQUFFO29CQUM3QixJQUFNSSw2QkFBNkJKLGlCQUFpQkssVUFBVSxDQUFDVjtvQkFFL0RDLGtCQUFrQlEsNEJBQTZCLEdBQUc7Z0JBQ3BELENBQUM7Z0JBRUQsT0FBT1I7WUFDVDs7O1dBN0VJL0I7RUFBMkJ5QyxnQkFBTztBQWdGakMsSUFBTTFDLHFCQUFxQixJQUFJQyJ9