occam-verify-cli 0.0.903 → 0.0.904
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/conclusion.js +3 -3
- package/lib/verifier/node/metastatement.js +31 -6
- package/lib/verifier/node/statementAsCombinator.js +32 -12
- package/lib/verifier/node/termAsConstructor.js +25 -5
- package/lib/verifier/nodes/equality.js +13 -3
- package/lib/verifier/nodes/intrinsicLevel.js +13 -3
- package/lib/verifier/nodes/intrinsicLevelAgainstMetaLevel.js +13 -3
- package/lib/verifier/nodes/statementAgainstCombinator.js +13 -3
- package/lib/verifier/nodes/termAgainstConstructor.js +13 -3
- package/lib/verify/statement.js +7 -4
- package/lib/verify/statementAsCombinator.js +1 -2
- package/package.json +1 -1
- package/src/conclusion.js +2 -2
- package/src/verifier/node/metastatement.js +46 -6
- package/src/verifier/node/statementAsCombinator.js +49 -16
- package/src/verifier/node/termAsConstructor.js +37 -6
- package/src/verifier/nodes/equality.js +19 -4
- package/src/verifier/nodes/intrinsicLevel.js +18 -3
- package/src/verifier/nodes/intrinsicLevelAgainstMetaLevel.js +18 -3
- package/src/verifier/nodes/statementAgainstCombinator.js +18 -3
- package/src/verifier/nodes/termAgainstConstructor.js +19 -4
- package/src/verify/statement.js +7 -3
- package/src/verify/statementAsCombinator.js +0 -1
|
@@ -126,7 +126,7 @@ function _create_super(Derived) {
|
|
|
126
126
|
return _possible_constructor_return(this, result);
|
|
127
127
|
};
|
|
128
128
|
}
|
|
129
|
-
var argumentNodeQuery = (0, _query.nodeQuery)("/argument!"), metaArgumentMetaTypeNodeQuery = (0, _query.nodeQuery)("/metaArgument/metaType!"), metaArgumentStatementNodeQuery = (0, _query.nodeQuery)("/metaArgument/statement!");
|
|
129
|
+
var argumentNodeQuery = (0, _query.nodeQuery)("/argument!"), nonTerminalNodeQuery = (0, _query.nodeQuery)("/*"), metaArgumentMetaTypeNodeQuery = (0, _query.nodeQuery)("/metaArgument/metaType!"), metaArgumentStatementNodeQuery = (0, _query.nodeQuery)("/metaArgument/statement!");
|
|
130
130
|
var StatementAgainstCombinatorNodesVerifier = /*#__PURE__*/ function(NodesVerifier) {
|
|
131
131
|
_inherits(StatementAgainstCombinatorNodesVerifier, NodesVerifier);
|
|
132
132
|
var _super = _create_super(StatementAgainstCombinatorNodesVerifier);
|
|
@@ -160,10 +160,20 @@ var StatementAgainstCombinatorNodesVerifier = /*#__PURE__*/ function(NodesVerifi
|
|
|
160
160
|
nonTerminalNodeVerified = argumentNodeVerifiedAgainstArgumentNode; ///
|
|
161
161
|
return nonTerminalNodeVerified;
|
|
162
162
|
}
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
nodeQueryA: nonTerminalNodeQuery,
|
|
166
|
+
nodeQueryB: nonTerminalNodeQuery,
|
|
167
|
+
verifyNodes: function(nodeA, nodeB, substitutions, localMetaContextA, localMetaContextB, verifyAhead) {
|
|
168
|
+
var nonTerminalNodeVerified;
|
|
169
|
+
var _$nonTerminalNodeA = nodeA, _$nonTerminalNodeB = nodeB; ///
|
|
170
|
+
nonTerminalNodeVerified = _get(_get_prototype_of(StatementAgainstCombinatorNodesVerifier.prototype), "verifyNonTerminalNode", _this).call(_this, _$nonTerminalNodeA, _$nonTerminalNodeB, substitutions, localMetaContextA, localMetaContextB, verifyAhead);
|
|
171
|
+
return nonTerminalNodeVerified;
|
|
172
|
+
}
|
|
163
173
|
}
|
|
164
174
|
];
|
|
165
175
|
var nodesVerified = (0, _verifier.verifyNodes)(nodeQueryMaps, nonTerminalNodeA, nonTerminalNodeB, localContext, verifyAhead);
|
|
166
|
-
nonTerminalNodeVerified = nodesVerified
|
|
176
|
+
nonTerminalNodeVerified = nodesVerified; ///
|
|
167
177
|
return nonTerminalNodeVerified;
|
|
168
178
|
}
|
|
169
179
|
},
|
|
@@ -191,4 +201,4 @@ var StatementAgainstCombinatorNodesVerifier = /*#__PURE__*/ function(NodesVerifi
|
|
|
191
201
|
var statementAgainstCombinatorNodesVerifier = new StatementAgainstCombinatorNodesVerifier();
|
|
192
202
|
var _default = statementAgainstCombinatorNodesVerifier;
|
|
193
203
|
|
|
194
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
204
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZmllci9ub2Rlcy9zdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IE5vZGVzVmVyaWZpZXIgZnJvbSBcIi4uLy4uL3ZlcmlmaWVyL25vZGVzXCI7XG5pbXBvcnQgdmVyaWZ5QXJndW1lbnRBZ2FpbnN0QXJndW1lbnQgZnJvbSBcIi4uLy4uL3ZlcmlmeS9hcmd1bWVudEFnYWluc3RBcmd1bWVudFwiO1xuaW1wb3J0IHZlcmlmeVN0YXRlbWVudEFnYWluc3RNZXRhVHlwZSBmcm9tIFwiLi4vLi4vdmVyaWZ5L3N0YXRlbWVudEFnYWluc3RNZXRhVHlwZVwiO1xuXG5pbXBvcnQgeyBub2RlUXVlcnkgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5pbXBvcnQgeyB2ZXJpZnlOb2RlcyB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvdmVyaWZpZXJcIjtcblxuY29uc3QgYXJndW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvYXJndW1lbnQhXCIpLFxuICAgICAgbm9uVGVybWluYWxOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvKlwiKSxcbiAgICAgIG1ldGFBcmd1bWVudE1ldGFUeXBlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL21ldGFBcmd1bWVudC9tZXRhVHlwZSFcIiksXG4gICAgICBtZXRhQXJndW1lbnRTdGF0ZW1lbnROb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbWV0YUFyZ3VtZW50L3N0YXRlbWVudCFcIik7XG5cbmNsYXNzIFN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9yTm9kZXNWZXJpZmllciBleHRlbmRzIE5vZGVzVmVyaWZpZXIge1xuICB2ZXJpZnlOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlQSwgbm9uVGVybWluYWxOb2RlQiwgbG9jYWxDb250ZXh0LCB2ZXJpZnlBaGVhZCkge1xuICAgIGxldCBub25UZXJtaW5hbE5vZGVWZXJpZmllZDtcblxuICAgIGNvbnN0IG5vZGVRdWVyeU1hcHMgPSBbXG4gICAgICB7XG4gICAgICAgIG5vZGVRdWVyeUE6IG1ldGFBcmd1bWVudFN0YXRlbWVudE5vZGVRdWVyeSxcbiAgICAgICAgbm9kZVF1ZXJ5QjogbWV0YUFyZ3VtZW50TWV0YVR5cGVOb2RlUXVlcnksXG4gICAgICAgIHZlcmlmeU5vZGVzOiAobm9kZUEsIG5vZGVCLCBsb2NhbENvbnRleHQsIHZlcmlmeUFoZWFkKSA9PiB7XG4gICAgICAgICAgbGV0IG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkO1xuXG4gICAgICAgICAgY29uc3QgbWV0YUFyZ3VtZW50TWV0YVR5cGVOb2RlQiA9IG5vZGVCLCAgLy8vXG4gICAgICAgICAgICAgICAgbWV0YUFyZ3VtZW50U3RhdGVtZW50Tm9kZUEgPSBub2RlQSwgLy8vXG4gICAgICAgICAgICAgICAgbWV0YUFyZ3VtZW50U3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0TWV0YUFyZ3VtZW50TWV0YVR5cGUgPVxuXG4gICAgICAgICAgICAgICAgICB0aGlzLnZlcmlmeU1ldGFBcmd1bWVudFN0YXRlbWVudEFnYWluc3RNZXRhQXJndW1lbnRNZXRhVHlwZShtZXRhQXJndW1lbnRTdGF0ZW1lbnROb2RlQSwgbWV0YUFyZ3VtZW50TWV0YVR5cGVOb2RlQiwgbG9jYWxDb250ZXh0LCB2ZXJpZnlBaGVhZCk7XG5cbiAgICAgICAgICBub25UZXJtaW5hbE5vZGVWZXJpZmllZCA9IG1ldGFBcmd1bWVudFN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdE1ldGFBcmd1bWVudE1ldGFUeXBlOyAvLy9cblxuICAgICAgICAgIHJldHVybiBub25UZXJtaW5hbE5vZGVWZXJpZmllZDtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbm9kZVF1ZXJ5QTogYXJndW1lbnROb2RlUXVlcnksXG4gICAgICAgIG5vZGVRdWVyeUI6IGFyZ3VtZW50Tm9kZVF1ZXJ5LFxuICAgICAgICB2ZXJpZnlOb2RlczogKG5vZGVBLCBub2RlQiwgbG9jYWxDb250ZXh0LCB2ZXJpZnlBaGVhZCkgPT4ge1xuICAgICAgICAgIGxldCBub25UZXJtaW5hbE5vZGVWZXJpZmllZDtcblxuICAgICAgICAgIGNvbnN0IGFyZ3VtZW50Tm9kZUEgPSBub2RlQSwgIC8vL1xuICAgICAgICAgICAgICAgIGFyZ3VtZW50Tm9kZUIgPSBub2RlQiwgIC8vL1xuICAgICAgICAgICAgICAgIGFyZ3VtZW50Tm9kZVZlcmlmaWVkQWdhaW5zdEFyZ3VtZW50Tm9kZSA9XG5cbiAgICAgICAgICAgICAgICAgIHRoaXMudmVyaWZ5QXJndW1lbnROb2RlQWdhaW5zdEFyZ3VtZW50Tm9kZShhcmd1bWVudE5vZGVBLCBhcmd1bWVudE5vZGVCLCBsb2NhbENvbnRleHQsIHZlcmlmeUFoZWFkKTtcblxuICAgICAgICAgIG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkID0gYXJndW1lbnROb2RlVmVyaWZpZWRBZ2FpbnN0QXJndW1lbnROb2RlOyAvLy9cblxuICAgICAgICAgIHJldHVybiBub25UZXJtaW5hbE5vZGVWZXJpZmllZDtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbm9kZVF1ZXJ5QTogbm9uVGVybWluYWxOb2RlUXVlcnksXG4gICAgICAgIG5vZGVRdWVyeUI6IG5vblRlcm1pbmFsTm9kZVF1ZXJ5LFxuICAgICAgICB2ZXJpZnlOb2RlczogKG5vZGVBLCBub2RlQiwgc3Vic3RpdHV0aW9ucywgbG9jYWxNZXRhQ29udGV4dEEsIGxvY2FsTWV0YUNvbnRleHRCLCB2ZXJpZnlBaGVhZCkgPT4ge1xuICAgICAgICAgIGxldCBub25UZXJtaW5hbE5vZGVWZXJpZmllZDtcblxuICAgICAgICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZUEgPSBub2RlQSwgLy8vXG4gICAgICAgICAgICAgICBub25UZXJtaW5hbE5vZGVCID0gbm9kZUI7IC8vL1xuXG4gICAgICAgICAgbm9uVGVybWluYWxOb2RlVmVyaWZpZWQgPVxuXG4gICAgICAgICAgICBzdXBlci52ZXJpZnlOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlQSwgbm9uVGVybWluYWxOb2RlQiwgc3Vic3RpdHV0aW9ucywgbG9jYWxNZXRhQ29udGV4dEEsIGxvY2FsTWV0YUNvbnRleHRCLCB2ZXJpZnlBaGVhZCk7XG5cbiAgICAgICAgICByZXR1cm4gbm9uVGVybWluYWxOb2RlVmVyaWZpZWQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBdO1xuXG4gICAgY29uc3Qgbm9kZXNWZXJpZmllZCA9IHZlcmlmeU5vZGVzKG5vZGVRdWVyeU1hcHMsIG5vblRlcm1pbmFsTm9kZUEsIG5vblRlcm1pbmFsTm9kZUIsIGxvY2FsQ29udGV4dCwgdmVyaWZ5QWhlYWQpO1xuXG4gICAgbm9uVGVybWluYWxOb2RlVmVyaWZpZWQgPSBub2Rlc1ZlcmlmaWVkOyAgLy8vXG5cbiAgICByZXR1cm4gbm9uVGVybWluYWxOb2RlVmVyaWZpZWQ7XG4gIH1cblxuICB2ZXJpZnlNZXRhQXJndW1lbnRTdGF0ZW1lbnRBZ2FpbnN0TWV0YUFyZ3VtZW50TWV0YVR5cGUobWV0YUFyZ3VtZW50U3RhdGVtZW50Tm9kZUEsIG1ldGFBcmd1bWVudE1ldGFUeXBlTm9kZUIsIGxvY2FsQ29udGV4dCwgdmVyaWZ5QWhlYWQpIHtcbiAgICBsZXQgbWV0YUFyZ3VtZW50U3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0TWV0YUFyZ3VtZW50TWV0YVR5cGUgPSBmYWxzZTtcblxuICAgIGNvbnN0IG1ldGFUeXBlTm9kZSA9IG1ldGFBcmd1bWVudE1ldGFUeXBlTm9kZUIsIC8vL1xuICAgICAgICAgIHN0YXRlbWVudE5vZGUgPSBtZXRhQXJndW1lbnRTdGF0ZW1lbnROb2RlQSwgIC8vL1xuICAgICAgICAgIHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdE1ldGFUeXBlID0gdmVyaWZ5U3RhdGVtZW50QWdhaW5zdE1ldGFUeXBlKHN0YXRlbWVudE5vZGUsIG1ldGFUeXBlTm9kZSwgbG9jYWxDb250ZXh0LCB2ZXJpZnlBaGVhZCk7XG5cbiAgICBtZXRhQXJndW1lbnRTdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RNZXRhQXJndW1lbnRNZXRhVHlwZSA9IHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdE1ldGFUeXBlOyAvLy9cblxuICAgIHJldHVybiBtZXRhQXJndW1lbnRTdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RNZXRhQXJndW1lbnRNZXRhVHlwZTtcbiAgfVxuXG4gIHZlcmlmeUFyZ3VtZW50Tm9kZUFnYWluc3RBcmd1bWVudE5vZGUoYXJndW1lbnROb2RlQSwgYXJndW1lbnROb2RlQiwgbG9jYWxDb250ZXh0LCB2ZXJpZnlBaGVhZCkge1xuICAgIGxldCBhcmd1bWVudE5vZGVWZXJpZmllZEFnYWluc3RBcmd1bWVudE5vZGU7XG5cbiAgICBjb25zdCBhcmd1bWVudFZlcmlmaWVkQWdhaW5zdEFyZ3VtZW50ID0gdmVyaWZ5QXJndW1lbnRBZ2FpbnN0QXJndW1lbnQoYXJndW1lbnROb2RlQSwgYXJndW1lbnROb2RlQiwgbG9jYWxDb250ZXh0LCB2ZXJpZnlBaGVhZCk7XG5cbiAgICBhcmd1bWVudE5vZGVWZXJpZmllZEFnYWluc3RBcmd1bWVudE5vZGUgPSBhcmd1bWVudFZlcmlmaWVkQWdhaW5zdEFyZ3VtZW50OyAvLy9cblxuICAgIHJldHVybiBhcmd1bWVudE5vZGVWZXJpZmllZEFnYWluc3RBcmd1bWVudE5vZGU7XG4gIH1cbn1cblxuY29uc3Qgc3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3JOb2Rlc1ZlcmlmaWVyID0gbmV3IFN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9yTm9kZXNWZXJpZmllcigpO1xuXG5leHBvcnQgZGVmYXVsdCBzdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvck5vZGVzVmVyaWZpZXI7XG4iXSwibmFtZXMiOlsiYXJndW1lbnROb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJub25UZXJtaW5hbE5vZGVRdWVyeSIsIm1ldGFBcmd1bWVudE1ldGFUeXBlTm9kZVF1ZXJ5IiwibWV0YUFyZ3VtZW50U3RhdGVtZW50Tm9kZVF1ZXJ5IiwiU3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3JOb2Rlc1ZlcmlmaWVyIiwidmVyaWZ5Tm9uVGVybWluYWxOb2RlIiwibm9uVGVybWluYWxOb2RlQSIsIm5vblRlcm1pbmFsTm9kZUIiLCJsb2NhbENvbnRleHQiLCJ2ZXJpZnlBaGVhZCIsIm5vblRlcm1pbmFsTm9kZVZlcmlmaWVkIiwibm9kZVF1ZXJ5TWFwcyIsIm5vZGVRdWVyeUEiLCJub2RlUXVlcnlCIiwidmVyaWZ5Tm9kZXMiLCJub2RlQSIsIm5vZGVCIiwibWV0YUFyZ3VtZW50TWV0YVR5cGVOb2RlQiIsIm1ldGFBcmd1bWVudFN0YXRlbWVudE5vZGVBIiwibWV0YUFyZ3VtZW50U3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0TWV0YUFyZ3VtZW50TWV0YVR5cGUiLCJ2ZXJpZnlNZXRhQXJndW1lbnRTdGF0ZW1lbnRBZ2FpbnN0TWV0YUFyZ3VtZW50TWV0YVR5cGUiLCJhcmd1bWVudE5vZGVBIiwiYXJndW1lbnROb2RlQiIsImFyZ3VtZW50Tm9kZVZlcmlmaWVkQWdhaW5zdEFyZ3VtZW50Tm9kZSIsInZlcmlmeUFyZ3VtZW50Tm9kZUFnYWluc3RBcmd1bWVudE5vZGUiLCJzdWJzdGl0dXRpb25zIiwibG9jYWxNZXRhQ29udGV4dEEiLCJsb2NhbE1ldGFDb250ZXh0QiIsIm5vZGVzVmVyaWZpZWQiLCJtZXRhVHlwZU5vZGUiLCJzdGF0ZW1lbnROb2RlIiwic3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0TWV0YVR5cGUiLCJ2ZXJpZnlTdGF0ZW1lbnRBZ2FpbnN0TWV0YVR5cGUiLCJhcmd1bWVudFZlcmlmaWVkQWdhaW5zdEFyZ3VtZW50IiwidmVyaWZ5QXJndW1lbnRBZ2FpbnN0QXJndW1lbnQiLCJOb2Rlc1ZlcmlmaWVyIiwic3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3JOb2Rlc1ZlcmlmaWVyIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkF1R0E7OztlQUFBOzs7NERBckcwQjs4RUFDZ0I7K0VBQ0M7cUJBRWpCO3dCQUNFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFNUIsSUFBTUEsb0JBQW9CQyxJQUFBQSxnQkFBUyxFQUFDLGVBQzlCQyx1QkFBdUJELElBQUFBLGdCQUFTLEVBQUMsT0FDakNFLGdDQUFnQ0YsSUFBQUEsZ0JBQVMsRUFBQyw0QkFDMUNHLGlDQUFpQ0gsSUFBQUEsZ0JBQVMsRUFBQztBQUVqRCxJQUFBLEFBQU1JLHdEQUFELEFBQUw7Y0FBTUE7K0JBQUFBO2FBQUFBO2dDQUFBQTs7O2tCQUFBQTs7WUFDSkMsS0FBQUE7bUJBQUFBLFNBQUFBLHNCQUFzQkMsZ0JBQWdCLEVBQUVDLGdCQUFnQixFQUFFQyxZQUFZLEVBQUVDLFdBQVc7O2dCQUNqRixJQUFJQztnQkFFSixJQUFNQyxnQkFBZ0I7b0JBQ3BCO3dCQUNFQyxZQUFZVDt3QkFDWlUsWUFBWVg7d0JBQ1pZLGFBQWEsU0FBQ0MsT0FBT0MsT0FBT1IsY0FBY0M7NEJBQ3hDLElBQUlDOzRCQUVKLElBQU1PLDRCQUE0QkQsT0FDNUJFLDZCQUE2QkgsT0FDN0JJLDJEQUVFLE1BQUtDLHNEQUFzRCxDQUFDRiw0QkFBNEJELDJCQUEyQlQsY0FBY0M7NEJBRXpJQywwQkFBMEJTLDBEQUEwRCxHQUFHOzRCQUV2RixPQUFPVDt3QkFDVDtvQkFDRjtvQkFDQTt3QkFDRUUsWUFBWWI7d0JBQ1pjLFlBQVlkO3dCQUNaZSxhQUFhLFNBQUNDLE9BQU9DLE9BQU9SLGNBQWNDOzRCQUN4QyxJQUFJQzs0QkFFSixJQUFNVyxnQkFBZ0JOLE9BQ2hCTyxnQkFBZ0JOLE9BQ2hCTywwQ0FFRSxNQUFLQyxxQ0FBcUMsQ0FBQ0gsZUFBZUMsZUFBZWQsY0FBY0M7NEJBRS9GQywwQkFBMEJhLHlDQUF5QyxHQUFHOzRCQUV0RSxPQUFPYjt3QkFDVDtvQkFDRjtvQkFDQTt3QkFDRUUsWUFBWVg7d0JBQ1pZLFlBQVlaO3dCQUNaYSxhQUFhLFNBQUNDLE9BQU9DLE9BQU9TLGVBQWVDLG1CQUFtQkMsbUJBQW1CbEI7NEJBQy9FLElBQUlDOzRCQUVKLElBQU1KLHFCQUFtQlMsT0FDcEJSLHFCQUFtQlMsT0FBTyxHQUFHOzRCQUVsQ04sMEJBRUUsdUJBbEROTixvREFrRFlDLDRDQUFzQkMsb0JBQWtCQyxvQkFBa0JrQixlQUFlQyxtQkFBbUJDLG1CQUFtQmxCOzRCQUV2SCxPQUFPQzt3QkFDVDtvQkFDRjtpQkFDRDtnQkFFRCxJQUFNa0IsZ0JBQWdCZCxJQUFBQSxxQkFBVyxFQUFDSCxlQUFlTCxrQkFBa0JDLGtCQUFrQkMsY0FBY0M7Z0JBRW5HQywwQkFBMEJrQixlQUFnQixHQUFHO2dCQUU3QyxPQUFPbEI7WUFDVDs7O1lBRUFVLEtBQUFBO21CQUFBQSxTQUFBQSx1REFBdURGLDBCQUEwQixFQUFFRCx5QkFBeUIsRUFBRVQsWUFBWSxFQUFFQyxXQUFXO2dCQUNySSxJQUFJVSwyREFBMkQ7Z0JBRS9ELElBQU1VLGVBQWVaLDJCQUNmYSxnQkFBZ0JaLDRCQUNoQmEsbUNBQW1DQyxJQUFBQSxpQ0FBOEIsRUFBQ0YsZUFBZUQsY0FBY3JCLGNBQWNDO2dCQUVuSFUsMkRBQTJEWSxrQ0FBa0MsR0FBRztnQkFFaEcsT0FBT1o7WUFDVDs7O1lBRUFLLEtBQUFBO21CQUFBQSxTQUFBQSxzQ0FBc0NILGFBQWEsRUFBRUMsYUFBYSxFQUFFZCxZQUFZLEVBQUVDLFdBQVc7Z0JBQzNGLElBQUljO2dCQUVKLElBQU1VLGtDQUFrQ0MsSUFBQUEsZ0NBQTZCLEVBQUNiLGVBQWVDLGVBQWVkLGNBQWNDO2dCQUVsSGMsMENBQTBDVSxpQ0FBaUMsR0FBRztnQkFFOUUsT0FBT1Y7WUFDVDs7O1dBcEZJbkI7RUFBZ0QrQixjQUFhO0FBdUZuRSxJQUFNQywwQ0FBMEMsSUFBSWhDO0lBRXBELFdBQWVnQyJ9
|
|
@@ -125,7 +125,7 @@ function _create_super(Derived) {
|
|
|
125
125
|
return _possible_constructor_return(this, result);
|
|
126
126
|
};
|
|
127
127
|
}
|
|
128
|
-
var termNodeQuery = (0, _query.nodeQuery)("/argument/term!"), typeNodeQuery = (0, _query.nodeQuery)("/argument/type!");
|
|
128
|
+
var termNodeQuery = (0, _query.nodeQuery)("/argument/term!"), typeNodeQuery = (0, _query.nodeQuery)("/argument/type!"), nonTerminalNodeQuery = (0, _query.nodeQuery)("/*");
|
|
129
129
|
var TermAgainstConstructorNodesVerifier = /*#__PURE__*/ function(NodesVerifier) {
|
|
130
130
|
_inherits(TermAgainstConstructorNodesVerifier, NodesVerifier);
|
|
131
131
|
var _super = _create_super(TermAgainstConstructorNodesVerifier);
|
|
@@ -149,10 +149,20 @@ var TermAgainstConstructorNodesVerifier = /*#__PURE__*/ function(NodesVerifier)
|
|
|
149
149
|
nonTerminalNodeVerified = termNodeVerifiedAgainstTypeNode; ///
|
|
150
150
|
return nonTerminalNodeVerified;
|
|
151
151
|
}
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
nodeQueryA: nonTerminalNodeQuery,
|
|
155
|
+
nodeQueryB: nonTerminalNodeQuery,
|
|
156
|
+
verifyNodes: function(nodeA, nodeB, substitutions, localMetaContextA, localMetaContextB, verifyAhead) {
|
|
157
|
+
var nonTerminalNodeVerified;
|
|
158
|
+
var _$nonTerminalNodeA = nodeA, _$nonTerminalNodeB = nodeB; ///
|
|
159
|
+
nonTerminalNodeVerified = _get(_get_prototype_of(TermAgainstConstructorNodesVerifier.prototype), "verifyNonTerminalNode", _this).call(_this, _$nonTerminalNodeA, _$nonTerminalNodeB, substitutions, localMetaContextA, localMetaContextB, verifyAhead);
|
|
160
|
+
return nonTerminalNodeVerified;
|
|
161
|
+
}
|
|
152
162
|
}
|
|
153
163
|
];
|
|
154
164
|
var nodesVerified = (0, _verifier.verifyNodes)(nodeQueryMaps, nonTerminalNodeA, nonTerminalNodeB, localContext, verifyAhead);
|
|
155
|
-
nonTerminalNodeVerified = nodesVerified
|
|
165
|
+
nonTerminalNodeVerified = nodesVerified; ///
|
|
156
166
|
return nonTerminalNodeVerified;
|
|
157
167
|
}
|
|
158
168
|
},
|
|
@@ -171,4 +181,4 @@ var TermAgainstConstructorNodesVerifier = /*#__PURE__*/ function(NodesVerifier)
|
|
|
171
181
|
var termAgainstConstructorNodesVerifier = new TermAgainstConstructorNodesVerifier();
|
|
172
182
|
var _default = termAgainstConstructorNodesVerifier;
|
|
173
183
|
|
|
174
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
184
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92ZXJpZmllci9ub2Rlcy90ZXJtQWdhaW5zdENvbnN0cnVjdG9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgTm9kZXNWZXJpZmllciBmcm9tIFwiLi4vLi4vdmVyaWZpZXIvbm9kZXNcIjtcbmltcG9ydCB2ZXJpZnlUZXJtQWdhaW5zdFR5cGUgZnJvbSBcIi4uLy4uL3ZlcmlmeS90ZXJtQWdhaW5zdFR5cGVcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgdmVyaWZ5Tm9kZXMgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3ZlcmlmaWVyXCI7XG5cbmNvbnN0IHRlcm1Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvYXJndW1lbnQvdGVybSFcIiksXG4gICAgICB0eXBlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2FyZ3VtZW50L3R5cGUhXCIpLFxuICAgICAgbm9uVGVybWluYWxOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvKlwiKTtcblxuY2xhc3MgVGVybUFnYWluc3RDb25zdHJ1Y3Rvck5vZGVzVmVyaWZpZXIgZXh0ZW5kcyBOb2Rlc1ZlcmlmaWVyIHtcbiAgdmVyaWZ5Tm9uVGVybWluYWxOb2RlKG5vblRlcm1pbmFsTm9kZUEsIG5vblRlcm1pbmFsTm9kZUIsIGxvY2FsQ29udGV4dCwgdmVyaWZ5QWhlYWQpIHtcbiAgICBsZXQgbm9uVGVybWluYWxOb2RlVmVyaWZpZWQ7XG5cbiAgICBjb25zdCBub2RlUXVlcnlNYXBzID0gW1xuICAgICAge1xuICAgICAgICBub2RlUXVlcnlBOiB0ZXJtTm9kZVF1ZXJ5LFxuICAgICAgICBub2RlUXVlcnlCOiB0eXBlTm9kZVF1ZXJ5LFxuICAgICAgICB2ZXJpZnlOb2RlczogKG5vZGVBLCBub2RlQiwgbG9jYWxDb250ZXh0LCB2ZXJpZnlBaGVhZCkgPT4ge1xuICAgICAgICAgIGxldCBub25UZXJtaW5hbE5vZGVWZXJpZmllZDtcblxuICAgICAgICAgIGNvbnN0IHRlcm1Ob2RlQSA9IG5vZGVBLCAgLy8vXG4gICAgICAgICAgICAgICAgdHlwZU5vZGVCID0gbm9kZUIsICAvLy9cbiAgICAgICAgICAgICAgICB0ZXJtTm9kZVZlcmlmaWVkQWdhaW5zdFR5cGVOb2RlID1cblxuICAgICAgICAgICAgICAgICAgdGhpcy52ZXJpZnlUZXJtTm9kZUFnYWluc3RUeXBlTm9kZSh0ZXJtTm9kZUEsIHR5cGVOb2RlQiwgbG9jYWxDb250ZXh0LCB2ZXJpZnlBaGVhZCk7XG5cbiAgICAgICAgICBub25UZXJtaW5hbE5vZGVWZXJpZmllZCA9IHRlcm1Ob2RlVmVyaWZpZWRBZ2FpbnN0VHlwZU5vZGU7ICAvLy9cblxuICAgICAgICAgIHJldHVybiBub25UZXJtaW5hbE5vZGVWZXJpZmllZDtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbm9kZVF1ZXJ5QTogbm9uVGVybWluYWxOb2RlUXVlcnksXG4gICAgICAgIG5vZGVRdWVyeUI6IG5vblRlcm1pbmFsTm9kZVF1ZXJ5LFxuICAgICAgICB2ZXJpZnlOb2RlczogKG5vZGVBLCBub2RlQiwgc3Vic3RpdHV0aW9ucywgbG9jYWxNZXRhQ29udGV4dEEsIGxvY2FsTWV0YUNvbnRleHRCLCB2ZXJpZnlBaGVhZCkgPT4ge1xuICAgICAgICAgIGxldCBub25UZXJtaW5hbE5vZGVWZXJpZmllZDtcblxuICAgICAgICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZUEgPSBub2RlQSwgLy8vXG4gICAgICAgICAgICAgICAgbm9uVGVybWluYWxOb2RlQiA9IG5vZGVCOyAvLy9cblxuICAgICAgICAgIG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkID1cblxuICAgICAgICAgICAgc3VwZXIudmVyaWZ5Tm9uVGVybWluYWxOb2RlKG5vblRlcm1pbmFsTm9kZUEsIG5vblRlcm1pbmFsTm9kZUIsIHN1YnN0aXR1dGlvbnMsIGxvY2FsTWV0YUNvbnRleHRBLCBsb2NhbE1ldGFDb250ZXh0QiwgdmVyaWZ5QWhlYWQpO1xuXG4gICAgICAgICAgcmV0dXJuIG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgXTtcblxuICAgIGNvbnN0IG5vZGVzVmVyaWZpZWQgPSB2ZXJpZnlOb2Rlcyhub2RlUXVlcnlNYXBzLCBub25UZXJtaW5hbE5vZGVBLCBub25UZXJtaW5hbE5vZGVCLCBsb2NhbENvbnRleHQsIHZlcmlmeUFoZWFkKTtcblxuICAgIG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkID0gbm9kZXNWZXJpZmllZDsgIC8vL1xuXG4gICAgcmV0dXJuIG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkO1xuICB9XG5cbiAgdmVyaWZ5VGVybU5vZGVBZ2FpbnN0VHlwZU5vZGUodGVybU5vZGVBLCB0eXBlTm9kZUIsIGxvY2FsQ29udGV4dCwgdmVyaWZ5QWhlYWQpIHtcbiAgICBsZXQgdGVybU5vZGVWZXJpZmllZEFnYWluc3RUeXBlTm9kZTtcblxuICAgIGNvbnN0IHsgdmVyaWZ5VGVybSB9ID0gdGVybUFnYWluc3RDb25zdHJ1Y3Rvck5vZGVzVmVyaWZpZXIsXG4gICAgICAgICAgdGVybU5vZGUgPSB0ZXJtTm9kZUEsIC8vL1xuICAgICAgICAgIHR5cGVOb2RlID0gdHlwZU5vZGVCLCAvLy9cbiAgICAgICAgICB0eXBlVmVyaWZpZWRBZ2FpbnN0VGVybSA9IHZlcmlmeVRlcm1BZ2FpbnN0VHlwZSh0ZXJtTm9kZSwgdHlwZU5vZGUsIGxvY2FsQ29udGV4dCwgdmVyaWZ5QWhlYWQsIHZlcmlmeVRlcm0pO1xuXG4gICAgdGVybU5vZGVWZXJpZmllZEFnYWluc3RUeXBlTm9kZSA9IHR5cGVWZXJpZmllZEFnYWluc3RUZXJtOyAvLy9cblxuICAgIHJldHVybiB0ZXJtTm9kZVZlcmlmaWVkQWdhaW5zdFR5cGVOb2RlO1xuICB9XG59XG5cbmNvbnN0IHRlcm1BZ2FpbnN0Q29uc3RydWN0b3JOb2Rlc1ZlcmlmaWVyID0gbmV3IFRlcm1BZ2FpbnN0Q29uc3RydWN0b3JOb2Rlc1ZlcmlmaWVyKCk7XG5cbmV4cG9ydCBkZWZhdWx0IHRlcm1BZ2FpbnN0Q29uc3RydWN0b3JOb2Rlc1ZlcmlmaWVyO1xuIl0sIm5hbWVzIjpbInRlcm1Ob2RlUXVlcnkiLCJub2RlUXVlcnkiLCJ0eXBlTm9kZVF1ZXJ5Iiwibm9uVGVybWluYWxOb2RlUXVlcnkiLCJUZXJtQWdhaW5zdENvbnN0cnVjdG9yTm9kZXNWZXJpZmllciIsInZlcmlmeU5vblRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZUEiLCJub25UZXJtaW5hbE5vZGVCIiwibG9jYWxDb250ZXh0IiwidmVyaWZ5QWhlYWQiLCJub25UZXJtaW5hbE5vZGVWZXJpZmllZCIsIm5vZGVRdWVyeU1hcHMiLCJub2RlUXVlcnlBIiwibm9kZVF1ZXJ5QiIsInZlcmlmeU5vZGVzIiwibm9kZUEiLCJub2RlQiIsInRlcm1Ob2RlQSIsInR5cGVOb2RlQiIsInRlcm1Ob2RlVmVyaWZpZWRBZ2FpbnN0VHlwZU5vZGUiLCJ2ZXJpZnlUZXJtTm9kZUFnYWluc3RUeXBlTm9kZSIsInN1YnN0aXR1dGlvbnMiLCJsb2NhbE1ldGFDb250ZXh0QSIsImxvY2FsTWV0YUNvbnRleHRCIiwibm9kZXNWZXJpZmllZCIsInZlcmlmeVRlcm0iLCJ0ZXJtQWdhaW5zdENvbnN0cnVjdG9yTm9kZXNWZXJpZmllciIsInRlcm1Ob2RlIiwidHlwZU5vZGUiLCJ0eXBlVmVyaWZpZWRBZ2FpbnN0VGVybSIsInZlcmlmeVRlcm1BZ2FpbnN0VHlwZSIsIk5vZGVzVmVyaWZpZXIiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQTJFQTs7O2VBQUE7Ozs0REF6RTBCO3NFQUNRO3FCQUVSO3dCQUNFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFNUIsSUFBTUEsZ0JBQWdCQyxJQUFBQSxnQkFBUyxFQUFDLG9CQUMxQkMsZ0JBQWdCRCxJQUFBQSxnQkFBUyxFQUFDLG9CQUMxQkUsdUJBQXVCRixJQUFBQSxnQkFBUyxFQUFDO0FBRXZDLElBQUEsQUFBTUcsb0RBQUQsQUFBTDtjQUFNQTsrQkFBQUE7YUFBQUE7Z0NBQUFBOzs7a0JBQUFBOztZQUNKQyxLQUFBQTttQkFBQUEsU0FBQUEsc0JBQXNCQyxnQkFBZ0IsRUFBRUMsZ0JBQWdCLEVBQUVDLFlBQVksRUFBRUMsV0FBVzs7Z0JBQ2pGLElBQUlDO2dCQUVKLElBQU1DLGdCQUFnQjtvQkFDcEI7d0JBQ0VDLFlBQVlaO3dCQUNaYSxZQUFZWDt3QkFDWlksYUFBYSxTQUFDQyxPQUFPQyxPQUFPUixjQUFjQzs0QkFDeEMsSUFBSUM7NEJBRUosSUFBTU8sWUFBWUYsT0FDWkcsWUFBWUYsT0FDWkcsa0NBRUUsTUFBS0MsNkJBQTZCLENBQUNILFdBQVdDLFdBQVdWLGNBQWNDOzRCQUUvRUMsMEJBQTBCUyxpQ0FBa0MsR0FBRzs0QkFFL0QsT0FBT1Q7d0JBQ1Q7b0JBQ0Y7b0JBQ0E7d0JBQ0VFLFlBQVlUO3dCQUNaVSxZQUFZVjt3QkFDWlcsYUFBYSxTQUFDQyxPQUFPQyxPQUFPSyxlQUFlQyxtQkFBbUJDLG1CQUFtQmQ7NEJBQy9FLElBQUlDOzRCQUVKLElBQU1KLHFCQUFtQlMsT0FDbkJSLHFCQUFtQlMsT0FBTyxHQUFHOzRCQUVuQ04sMEJBRUUsdUJBakNOTixnREFpQ1lDLDRDQUFzQkMsb0JBQWtCQyxvQkFBa0JjLGVBQWVDLG1CQUFtQkMsbUJBQW1CZDs0QkFFdkgsT0FBT0M7d0JBQ1Q7b0JBQ0Y7aUJBQ0Q7Z0JBRUQsSUFBTWMsZ0JBQWdCVixJQUFBQSxxQkFBVyxFQUFDSCxlQUFlTCxrQkFBa0JDLGtCQUFrQkMsY0FBY0M7Z0JBRW5HQywwQkFBMEJjLGVBQWdCLEdBQUc7Z0JBRTdDLE9BQU9kO1lBQ1Q7OztZQUVBVSxLQUFBQTttQkFBQUEsU0FBQUEsOEJBQThCSCxTQUFTLEVBQUVDLFNBQVMsRUFBRVYsWUFBWSxFQUFFQyxXQUFXO2dCQUMzRSxJQUFJVTtnQkFFSixJQUFNLEFBQUVNLGFBQWVDLG9DQUFmRCxZQUNGRSxXQUFXVixXQUNYVyxXQUFXVixXQUNYVywwQkFBMEJDLElBQUFBLHdCQUFxQixFQUFDSCxVQUFVQyxVQUFVcEIsY0FBY0MsYUFBYWdCO2dCQUVyR04sa0NBQWtDVSx5QkFBeUIsR0FBRztnQkFFOUQsT0FBT1Y7WUFDVDs7O1dBMURJZjtFQUE0QzJCLGNBQWE7QUE2RC9ELElBQU1MLHNDQUFzQyxJQUFJdEI7SUFFaEQsV0FBZXNCIn0=
|
package/lib/verify/statement.js
CHANGED
|
@@ -82,12 +82,15 @@ function verifyStatement(statementNode, assignments, derived, localContext) {
|
|
|
82
82
|
}
|
|
83
83
|
return statementVerified;
|
|
84
84
|
}
|
|
85
|
-
function verifyStandaloneStatement(statementNode, localContext) {
|
|
86
|
-
var standaloneStatementVerified;
|
|
85
|
+
function verifyStandaloneStatement(statementNode, localContext, verifyAhead) {
|
|
86
|
+
var standaloneStatementVerified = false;
|
|
87
87
|
var statementString = localContext.nodeAsString(statementNode);
|
|
88
88
|
localContext.trace("Verifying the '".concat(statementString, "' standalone statement..."), statementNode);
|
|
89
89
|
var derived = false, assignments = [], statementVerified = verifyStatement(statementNode, assignments, derived);
|
|
90
|
-
|
|
90
|
+
if (statementVerified) {
|
|
91
|
+
var verifiedAhead = verifyAhead();
|
|
92
|
+
standaloneStatementVerified = verifiedAhead; ///
|
|
93
|
+
}
|
|
91
94
|
if (standaloneStatementVerified) {
|
|
92
95
|
localContext.debug("...verified the '".concat(statementString, "' standalone statement."), statementNode);
|
|
93
96
|
}
|
|
@@ -207,4 +210,4 @@ function verifyStatementAgainstCombinator(statementNode, combinator, localContex
|
|
|
207
210
|
return statementVerifiedAgainstCombinator;
|
|
208
211
|
}
|
|
209
212
|
|
|
210
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgdmVyaWZ5RXF1YWxpdHkgZnJvbSBcIi4uL3ZlcmlmeS9lcXVhbGl0eVwiO1xuaW1wb3J0IGJyYWNrZXRlZENvbWJpbmF0b3IgZnJvbSBcIi4uL29jbWJpbmF0b3IvYnJhY2tldGVkXCI7XG5pbXBvcnQgdmVyaWZ5VHlwZUFzc2VydGlvbiBmcm9tIFwiLi4vdmVyaWZ5L3R5cGVBc3NlcnRpb25cIjtcbmltcG9ydCB2ZXJpZnlEZWZpbmVkQXNzZXJ0aW9uIGZyb20gXCIuLi92ZXJpZnkvZGVmaW5lZEFzc2VydGlvblwiO1xuaW1wb3J0IHZlcmlmeUNvbnRhaW5lZEFzc2VydGlvbiBmcm9tIFwiLi4vdmVyaWZ5L2NvbnRhaW5lZEFzc2VydGlvblwiO1xuaW1wb3J0IHN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9yTm9kZXNWZXJpZmllciBmcm9tIFwiLi4vdmVyaWZpZXIvbm9kZXMvc3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3JcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCBlcXVhbGl0eU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQvZXF1YWxpdHkhXCIpLFxuICAgICAgc3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2NvbnRhaW5lZEFzc2VydGlvbi9zdGF0ZW1lbnQhXCIpLFxuICAgICAgdHlwZUFzc2VydGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQvdHlwZUFzc2VydGlvbiFcIiksXG4gICAgICBkZWZpbmVkQXNzZXJ0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC9kZWZpbmVkQXNzZXJ0aW9uIVwiKSxcbiAgICAgIGNvbnRhaW5lZEFzc2VydGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQvY29udGFpbmVkQXNzZXJ0aW9uIVwiKTtcblxuZnVuY3Rpb24gdmVyaWZ5U3RhdGVtZW50KHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkO1xuXG4gIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoc3RhdGVtZW50Tm9kZSk7XG5cbiAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudC4uLmAsIHN0YXRlbWVudE5vZGUpO1xuXG4gIGNvbnN0IHZlcmlmeVN0YXRlbWVudEZ1bmN0aW9ucyA9IFtcbiAgICB2ZXJpZnlTdGF0ZW1lbnRBc0VxdWFsaXR5LFxuICAgIHZlcmlmeVN0YXRlbWVudEFzVHlwZUFzc2VydGlvbixcbiAgICB2ZXJpZnlTdGF0ZW1lbnRBc0RlZmluZWRBc3NlcnRpb24sXG4gICAgdmVyaWZ5U3RhdGVtZW50QXNDb250YWluZWRBc3NlcnRpb24sXG4gICAgdmVyaWZ5U3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3JzXG4gIF07XG5cbiAgc3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlTdGF0ZW1lbnRGdW5jdGlvbnMuc29tZSgodmVyaWZ5U3RhdGVtZW50RnVuY3Rpb24pID0+IHtcbiAgICBjb25zdCBzdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeVN0YXRlbWVudEZ1bmN0aW9uKHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgaWYgKHN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIGlmIChzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudC5gLCBzdGF0ZW1lbnROb2RlKTtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRWZXJpZmllZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeVN0YW5kYWxvbmVTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBzdGFuZGFsb25lU3RhdGVtZW50VmVyaWZpZWQ7XG5cbiAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhzdGF0ZW1lbnROb2RlKTtcblxuICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhbmRhbG9uZSBzdGF0ZW1lbnQuLi5gLCBzdGF0ZW1lbnROb2RlKTtcblxuICBjb25zdCBkZXJpdmVkID0gZmFsc2UsXG4gICAgICAgIGFzc2lnbm1lbnRzID0gW10sXG4gICAgICAgIHN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5U3RhdGVtZW50KHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkKTtcblxuICBzdGFuZGFsb25lU3RhdGVtZW50VmVyaWZpZWQgPSBzdGF0ZW1lbnRWZXJpZmllZDsgIC8vL1xuXG4gIGlmIChzdGFuZGFsb25lU3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGFuZGFsb25lIHN0YXRlbWVudC5gLCBzdGF0ZW1lbnROb2RlKTtcbiAgfVxuXG4gIHJldHVybiBzdGFuZGFsb25lU3RhdGVtZW50VmVyaWZpZWQ7XG59XG5cbk9iamVjdC5hc3NpZ24oc3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3JOb2Rlc1ZlcmlmaWVyLCB7XG4gIHZlcmlmeVN0YXRlbWVudFxufSk7XG5cbmV4cG9ydCBkZWZhdWx0IHZlcmlmeVN0YXRlbWVudDtcblxuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeVN0YXRlbWVudEFzRXF1YWxpdHkoc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgc3RhdGVtZW50VmVyaWZpZWRBc0VxdWFsaXR5ID0gZmFsc2U7XG5cbiAgY29uc3QgZXF1YWxpdHlOb2RlID0gZXF1YWxpdHlOb2RlUXVlcnkoc3RhdGVtZW50Tm9kZSk7XG5cbiAgaWYgKGVxdWFsaXR5Tm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGFuIGVxdWFsaXR5Li4uYCwgZXF1YWxpdHlOb2RlKTtcblxuICAgIGNvbnN0IGVxdWFsaXR5VmVyaWZpZWQgPSB2ZXJpZnlFcXVhbGl0eShlcXVhbGl0eU5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQsICgpID0+IHtcbiAgICAgIGNvbnN0IHZlcmlmaWVkQWhlYWQgPSB0cnVlO1xuXG4gICAgICByZXR1cm4gdmVyaWZpZWRBaGVhZDtcbiAgICB9KTtcblxuICAgIHN0YXRlbWVudFZlcmlmaWVkQXNFcXVhbGl0eSA9IGVxdWFsaXR5VmVyaWZpZWQ7IC8vL1xuXG4gICAgaWYgKHN0YXRlbWVudFZlcmlmaWVkQXNFcXVhbGl0eSkge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGFuIGVxdWFsaXR5LmAsIGVxdWFsaXR5Tm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0YXRlbWVudFZlcmlmaWVkQXNFcXVhbGl0eTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeVN0YXRlbWVudEFzVHlwZUFzc2VydGlvbihzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRWZXJpZmllZEFzVHlwZUFzc2VydGlvbiA9IGZhbHNlO1xuXG4gIGNvbnN0IHR5cGVBc3NlcnRpb25Ob2RlID0gdHlwZUFzc2VydGlvbk5vZGVRdWVyeShzdGF0ZW1lbnROb2RlKTtcblxuICBpZiAodHlwZUFzc2VydGlvbk5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHN0YXRlbWVudE5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIHR5cGUgYXNzZXJ0aW9uLi4uYCwgdHlwZUFzc2VydGlvbk5vZGUpO1xuXG4gICAgY29uc3QgdHlwZUFzc2VydGlvblZlcmlmaWVkID0gdmVyaWZ5VHlwZUFzc2VydGlvbih0eXBlQXNzZXJ0aW9uTm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCwgKCkgPT4ge1xuICAgICAgY29uc3QgdmVyaWZpZWRBaGVhZCA9IHRydWU7XG5cbiAgICAgIHJldHVybiB2ZXJpZmllZEFoZWFkO1xuICAgIH0pO1xuXG4gICAgc3RhdGVtZW50VmVyaWZpZWRBc1R5cGVBc3NlcnRpb24gPSB0eXBlQXNzZXJ0aW9uVmVyaWZpZWQ7IC8vL1xuXG4gICAgaWYgKHN0YXRlbWVudFZlcmlmaWVkQXNUeXBlQXNzZXJ0aW9uKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSB0eXBlIGFzc2VydGlvbi5gLCB0eXBlQXNzZXJ0aW9uTm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0YXRlbWVudFZlcmlmaWVkQXNUeXBlQXNzZXJ0aW9uO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlTdGF0ZW1lbnRBc0RlZmluZWRBc3NlcnRpb24oc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgc3RhdGVtZW50VmVyaWZpZWRBc0RlZmluZWRBc3NlcnRpb24gPSBmYWxzZTtcblxuICBjb25zdCBkZWZpbmVkQXNzZXJ0aW9uTm9kZSA9IGRlZmluZWRBc3NlcnRpb25Ob2RlUXVlcnkoc3RhdGVtZW50Tm9kZSk7XG5cbiAgaWYgKGRlZmluZWRBc3NlcnRpb25Ob2RlICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhzdGF0ZW1lbnROb2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBkZWZpbmVkIGFzc2VydGlvbi4uLmAsIGRlZmluZWRBc3NlcnRpb25Ob2RlKTtcblxuICAgIGNvbnN0IGRlZmluZWRBc3NlcnRpb25WZXJpZmllZCA9IHZlcmlmeURlZmluZWRBc3NlcnRpb24oZGVmaW5lZEFzc2VydGlvbk5vZGUsIGxvY2FsQ29udGV4dCwgKCkgPT4ge1xuICAgICAgY29uc3QgdmVyaWZpZWRBaGVhZCA9IHRydWU7XG5cbiAgICAgIHJldHVybiB2ZXJpZmllZEFoZWFkO1xuICAgIH0pO1xuXG4gICAgc3RhdGVtZW50VmVyaWZpZWRBc0RlZmluZWRBc3NlcnRpb24gPSBkZWZpbmVkQXNzZXJ0aW9uVmVyaWZpZWQ7IC8vL1xuXG4gICAgaWYgKHN0YXRlbWVudFZlcmlmaWVkQXNEZWZpbmVkQXNzZXJ0aW9uKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBkZWZpbmVkIGFzc2VydGlvbi5gLCBkZWZpbmVkQXNzZXJ0aW9uTm9kZSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0YXRlbWVudFZlcmlmaWVkQXNEZWZpbmVkQXNzZXJ0aW9uO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlTdGF0ZW1lbnRBc0NvbnRhaW5lZEFzc2VydGlvbihzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRWZXJpZmllZEFzQ29udGFpbmVkQXNzZXJ0aW9uID0gZmFsc2U7XG5cbiAgY29uc3QgY29udGFpbmVkQXNzZXJ0aW9uTm9kZSA9IGNvbnRhaW5lZEFzc2VydGlvbk5vZGVRdWVyeShzdGF0ZW1lbnROb2RlKTtcblxuICBpZiAoY29udGFpbmVkQXNzZXJ0aW9uTm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgY29udGFpbmVkIGFzc2VydGlvbi4uLmAsIGNvbnRhaW5lZEFzc2VydGlvbk5vZGUpO1xuXG4gICAgY29uc3QgY29udGFpbmVkVmVyaWZpZWQgPSB2ZXJpZnlDb250YWluZWRBc3NlcnRpb24oY29udGFpbmVkQXNzZXJ0aW9uTm9kZSk7XG5cbiAgICBpZiAoY29udGFpbmVkVmVyaWZpZWQpIHtcbiAgICAgIHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlUXVlcnkoY29udGFpbmVkQXNzZXJ0aW9uTm9kZSk7IC8vL1xuXG4gICAgICBjb25zdCB2ZXJpZnlTdGF0ZW1lbnRGdW5jdGlvbnMgPSBbXG4gICAgICAgIHZlcmlmeVN0YXRlbWVudEFzRXF1YWxpdHksXG4gICAgICAgIHZlcmlmeVN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9yc1xuICAgICAgXTtcblxuICAgICAgY29uc3Qgc3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlTdGF0ZW1lbnRGdW5jdGlvbnMuc29tZSgodmVyaWZ5U3RhdGVtZW50RnVuY3Rpb24pID0+IHtcbiAgICAgICAgY29uc3QgZGVyaXZlZCA9IGZhbHNlLFxuICAgICAgICAgICAgICBhc3NpZ25tZW50cyA9IFtdLFxuICAgICAgICAgICAgICBzdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeVN0YXRlbWVudEZ1bmN0aW9uKHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgICAgIGlmIChzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgc3RhdGVtZW50VmVyaWZpZWRBc0NvbnRhaW5lZEFzc2VydGlvbiA9IHN0YXRlbWVudFZlcmlmaWVkOyAvLy9cbiAgICB9XG5cbiAgICBpZiAoc3RhdGVtZW50VmVyaWZpZWRBc0NvbnRhaW5lZEFzc2VydGlvbikge1xuICAgICAgbG9jYWxDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgY29udGFpbmVkIGFzc2VydGlvbi5gLCBjb250YWluZWRBc3NlcnRpb25Ob2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBc0NvbnRhaW5lZEFzc2VydGlvbjtcbn1cblxuZnVuY3Rpb24gdmVyaWZ5U3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3JzKHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3JzID0gZmFsc2U7XG5cbiAgY29uc3QgZXF1YWxpdHlOb2RlID0gZXF1YWxpdHlOb2RlUXVlcnkoc3RhdGVtZW50Tm9kZSksXG4gICAgICAgIHR5cGVBc3NlcnRpb25Ob2RlID0gdHlwZUFzc2VydGlvbk5vZGVRdWVyeShzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgZGVmaW5lZEFzc2VydGlvbk5vZGUgPSBkZWZpbmVkQXNzZXJ0aW9uTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpLFxuICAgICAgICBjb250YWluZWRBc3NlcnRpb25Ob2RlID0gY29udGFpbmVkQXNzZXJ0aW9uTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpO1xuXG4gIGlmICgoZXF1YWxpdHlOb2RlID09PSBudWxsKSAmJiAodHlwZUFzc2VydGlvbk5vZGUgPT09IG51bGwpICYmIChkZWZpbmVkQXNzZXJ0aW9uTm9kZSA9PT0gbnVsbCkgJiYgKGNvbnRhaW5lZEFzc2VydGlvbk5vZGUgPT09IG51bGwpKSB7XG4gICAgbGV0IGNvbWJpbmF0b3JzID0gbG9jYWxDb250ZXh0LmdldENvbWJpbmF0b3JzKCk7XG5cbiAgICBjb21iaW5hdG9ycyA9IFsgLy8vXG4gICAgICBicmFja2V0ZWRDb21iaW5hdG9yLFxuICAgICAgLi4uY29tYmluYXRvcnNcbiAgICBdO1xuXG4gICAgc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcnMgPSBjb21iaW5hdG9ycy5zb21lKChjb21iaW5hdG9yKSA9PiB7XG4gICAgICBjb25zdCBzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9yID0gdmVyaWZ5U3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3Ioc3RhdGVtZW50Tm9kZSwgY29tYmluYXRvciwgbG9jYWxDb250ZXh0KTtcblxuICAgICAgaWYgKHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3IpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcnM7XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9yKHN0YXRlbWVudE5vZGUsIGNvbWJpbmF0b3IsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcjtcblxuICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHN0YXRlbWVudE5vZGUpLFxuICAgICAgICBjb21iaW5hdG9yU3RyaW5nID0gY29tYmluYXRvci5nZXRTdHJpbmcoKTtcblxuICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFnYWluc3QgdGhlICcke2NvbWJpbmF0b3JTdHJpbmd9JyBjb21iaW5hdG9yLi4uYCwgc3RhdGVtZW50Tm9kZSk7XG5cbiAgY29uc3QgY29tYmluYXRvclN0YXRlbWVudE5vZGUgPSBjb21iaW5hdG9yLmdldFN0YXRlbWVudE5vZGUoKSxcbiAgICAgICAgbm9uVGVybWluYWxOb2RlQSA9IHN0YXRlbWVudE5vZGUsIC8vL1xuICAgICAgICBub25UZXJtaW5hbE5vZGVCID0gY29tYmluYXRvclN0YXRlbWVudE5vZGUsIC8vL1xuICAgICAgICBub25UZXJtaW5hbE5vZGVWZXJpZmllZCA9IHN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9yTm9kZXNWZXJpZmllci52ZXJpZnlOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlQSwgbm9uVGVybWluYWxOb2RlQiwgbG9jYWxDb250ZXh0LCAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgdmVyaWZpZWRBaGVhZCA9IHRydWU7XG5cbiAgICAgICAgICByZXR1cm4gdmVyaWZpZWRBaGVhZDtcbiAgICAgICAgfSk7XG5cbiAgc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvciA9IG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkOyAgLy8vXG5cbiAgaWYgKHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3IpIHtcbiAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYWdhaW5zdCB0aGUgJyR7Y29tYmluYXRvclN0cmluZ30nIGNvbWJpbmF0b3IuYCwgc3RhdGVtZW50Tm9kZSk7XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcjtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlTdGFuZGFsb25lU3RhdGVtZW50IiwidmVyaWZ5U3RhdGVtZW50QXNFcXVhbGl0eSIsInZlcmlmeVN0YXRlbWVudEFzVHlwZUFzc2VydGlvbiIsImVxdWFsaXR5Tm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5Iiwic3RhdGVtZW50Tm9kZVF1ZXJ5IiwidHlwZUFzc2VydGlvbk5vZGVRdWVyeSIsImRlZmluZWRBc3NlcnRpb25Ob2RlUXVlcnkiLCJjb250YWluZWRBc3NlcnRpb25Ob2RlUXVlcnkiLCJ2ZXJpZnlTdGF0ZW1lbnQiLCJzdGF0ZW1lbnROb2RlIiwiYXNzaWdubWVudHMiLCJkZXJpdmVkIiwibG9jYWxDb250ZXh0Iiwic3RhdGVtZW50VmVyaWZpZWQiLCJzdGF0ZW1lbnRTdHJpbmciLCJub2RlQXNTdHJpbmciLCJ0cmFjZSIsInZlcmlmeVN0YXRlbWVudEZ1bmN0aW9ucyIsInZlcmlmeVN0YXRlbWVudEFzRGVmaW5lZEFzc2VydGlvbiIsInZlcmlmeVN0YXRlbWVudEFzQ29udGFpbmVkQXNzZXJ0aW9uIiwidmVyaWZ5U3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3JzIiwic29tZSIsInZlcmlmeVN0YXRlbWVudEZ1bmN0aW9uIiwiZGVidWciLCJzdGFuZGFsb25lU3RhdGVtZW50VmVyaWZpZWQiLCJPYmplY3QiLCJhc3NpZ24iLCJzdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvck5vZGVzVmVyaWZpZXIiLCJzdGF0ZW1lbnRWZXJpZmllZEFzRXF1YWxpdHkiLCJlcXVhbGl0eU5vZGUiLCJlcXVhbGl0eVZlcmlmaWVkIiwidmVyaWZ5RXF1YWxpdHkiLCJ2ZXJpZmllZEFoZWFkIiwic3RhdGVtZW50VmVyaWZpZWRBc1R5cGVBc3NlcnRpb24iLCJ0eXBlQXNzZXJ0aW9uTm9kZSIsInR5cGVBc3NlcnRpb25WZXJpZmllZCIsInZlcmlmeVR5cGVBc3NlcnRpb24iLCJzdGF0ZW1lbnRWZXJpZmllZEFzRGVmaW5lZEFzc2VydGlvbiIsImRlZmluZWRBc3NlcnRpb25Ob2RlIiwiZGVmaW5lZEFzc2VydGlvblZlcmlmaWVkIiwidmVyaWZ5RGVmaW5lZEFzc2VydGlvbiIsInN0YXRlbWVudFZlcmlmaWVkQXNDb250YWluZWRBc3NlcnRpb24iLCJjb250YWluZWRBc3NlcnRpb25Ob2RlIiwiY29udGFpbmVkVmVyaWZpZWQiLCJ2ZXJpZnlDb250YWluZWRBc3NlcnRpb24iLCJzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9ycyIsImNvbWJpbmF0b3JzIiwiZ2V0Q29tYmluYXRvcnMiLCJicmFja2V0ZWRDb21iaW5hdG9yIiwiY29tYmluYXRvciIsInN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3IiLCJ2ZXJpZnlTdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvciIsImNvbWJpbmF0b3JTdHJpbmciLCJnZXRTdHJpbmciLCJjb21iaW5hdG9yU3RhdGVtZW50Tm9kZSIsImdldFN0YXRlbWVudE5vZGUiLCJub25UZXJtaW5hbE5vZGVBIiwibm9uVGVybWluYWxOb2RlQiIsIm5vblRlcm1pbmFsTm9kZVZlcmlmaWVkIiwidmVyaWZ5Tm9uVGVybWluYWxOb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7SUF1RUEsT0FBK0I7ZUFBL0I7O0lBeEJnQkEseUJBQXlCO2VBQXpCQTs7SUEwQkFDLHlCQUF5QjtlQUF6QkE7O0lBMEJBQyw4QkFBOEI7ZUFBOUJBOzs7K0RBakdXO2dFQUNLO29FQUNBO3VFQUNHO3lFQUNFO2lGQUNlO3FCQUUxQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUUxQixJQUFNQyxvQkFBb0JDLElBQUFBLGdCQUFTLEVBQUMseUJBQzlCQyxxQkFBcUJELElBQUFBLGdCQUFTLEVBQUMsbUNBQy9CRSx5QkFBeUJGLElBQUFBLGdCQUFTLEVBQUMsOEJBQ25DRyw0QkFBNEJILElBQUFBLGdCQUFTLEVBQUMsaUNBQ3RD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
|
|
213
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgdmVyaWZ5RXF1YWxpdHkgZnJvbSBcIi4uL3ZlcmlmeS9lcXVhbGl0eVwiO1xuaW1wb3J0IGJyYWNrZXRlZENvbWJpbmF0b3IgZnJvbSBcIi4uL29jbWJpbmF0b3IvYnJhY2tldGVkXCI7XG5pbXBvcnQgdmVyaWZ5VHlwZUFzc2VydGlvbiBmcm9tIFwiLi4vdmVyaWZ5L3R5cGVBc3NlcnRpb25cIjtcbmltcG9ydCB2ZXJpZnlEZWZpbmVkQXNzZXJ0aW9uIGZyb20gXCIuLi92ZXJpZnkvZGVmaW5lZEFzc2VydGlvblwiO1xuaW1wb3J0IHZlcmlmeUNvbnRhaW5lZEFzc2VydGlvbiBmcm9tIFwiLi4vdmVyaWZ5L2NvbnRhaW5lZEFzc2VydGlvblwiO1xuaW1wb3J0IHN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9yTm9kZXNWZXJpZmllciBmcm9tIFwiLi4vdmVyaWZpZXIvbm9kZXMvc3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3JcIjtcblxuaW1wb3J0IHsgbm9kZVF1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiO1xuXG5jb25zdCBlcXVhbGl0eU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQvZXF1YWxpdHkhXCIpLFxuICAgICAgc3RhdGVtZW50Tm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2NvbnRhaW5lZEFzc2VydGlvbi9zdGF0ZW1lbnQhXCIpLFxuICAgICAgdHlwZUFzc2VydGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQvdHlwZUFzc2VydGlvbiFcIiksXG4gICAgICBkZWZpbmVkQXNzZXJ0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3N0YXRlbWVudC9kZWZpbmVkQXNzZXJ0aW9uIVwiKSxcbiAgICAgIGNvbnRhaW5lZEFzc2VydGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zdGF0ZW1lbnQvY29udGFpbmVkQXNzZXJ0aW9uIVwiKTtcblxuZnVuY3Rpb24gdmVyaWZ5U3RhdGVtZW50KHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkO1xuXG4gIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoc3RhdGVtZW50Tm9kZSk7XG5cbiAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudC4uLmAsIHN0YXRlbWVudE5vZGUpO1xuXG4gIGNvbnN0IHZlcmlmeVN0YXRlbWVudEZ1bmN0aW9ucyA9IFtcbiAgICB2ZXJpZnlTdGF0ZW1lbnRBc0VxdWFsaXR5LFxuICAgIHZlcmlmeVN0YXRlbWVudEFzVHlwZUFzc2VydGlvbixcbiAgICB2ZXJpZnlTdGF0ZW1lbnRBc0RlZmluZWRBc3NlcnRpb24sXG4gICAgdmVyaWZ5U3RhdGVtZW50QXNDb250YWluZWRBc3NlcnRpb24sXG4gICAgdmVyaWZ5U3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3JzXG4gIF07XG5cbiAgc3RhdGVtZW50VmVyaWZpZWQgPSB2ZXJpZnlTdGF0ZW1lbnRGdW5jdGlvbnMuc29tZSgodmVyaWZ5U3RhdGVtZW50RnVuY3Rpb24pID0+IHtcbiAgICBjb25zdCBzdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeVN0YXRlbWVudEZ1bmN0aW9uKHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpO1xuXG4gICAgaWYgKHN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIGlmIChzdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudC5gLCBzdGF0ZW1lbnROb2RlKTtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRWZXJpZmllZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZlcmlmeVN0YW5kYWxvbmVTdGF0ZW1lbnQoc3RhdGVtZW50Tm9kZSwgbG9jYWxDb250ZXh0LCB2ZXJpZnlBaGVhZCkge1xuICBsZXQgc3RhbmRhbG9uZVN0YXRlbWVudFZlcmlmaWVkID0gZmFsc2U7XG5cbiAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhzdGF0ZW1lbnROb2RlKTtcblxuICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhbmRhbG9uZSBzdGF0ZW1lbnQuLi5gLCBzdGF0ZW1lbnROb2RlKTtcblxuICBjb25zdCBkZXJpdmVkID0gZmFsc2UsXG4gICAgICAgIGFzc2lnbm1lbnRzID0gW10sXG4gICAgICAgIHN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5U3RhdGVtZW50KHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkKTtcblxuICBpZiAoc3RhdGVtZW50VmVyaWZpZWQpIHtcbiAgICBjb25zdCB2ZXJpZmllZEFoZWFkID0gdmVyaWZ5QWhlYWQoKTtcblxuICAgIHN0YW5kYWxvbmVTdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmaWVkQWhlYWQ7IC8vL1xuICB9XG5cbiAgaWYgKHN0YW5kYWxvbmVTdGF0ZW1lbnRWZXJpZmllZCkge1xuICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YW5kYWxvbmUgc3RhdGVtZW50LmAsIHN0YXRlbWVudE5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHN0YW5kYWxvbmVTdGF0ZW1lbnRWZXJpZmllZDtcbn1cblxuT2JqZWN0LmFzc2lnbihzdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvck5vZGVzVmVyaWZpZXIsIHtcbiAgdmVyaWZ5U3RhdGVtZW50XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgdmVyaWZ5U3RhdGVtZW50O1xuXG5leHBvcnQgZnVuY3Rpb24gdmVyaWZ5U3RhdGVtZW50QXNFcXVhbGl0eShzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRWZXJpZmllZEFzRXF1YWxpdHkgPSBmYWxzZTtcblxuICBjb25zdCBlcXVhbGl0eU5vZGUgPSBlcXVhbGl0eU5vZGVRdWVyeShzdGF0ZW1lbnROb2RlKTtcblxuICBpZiAoZXF1YWxpdHlOb2RlICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhzdGF0ZW1lbnROb2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYW4gZXF1YWxpdHkuLi5gLCBlcXVhbGl0eU5vZGUpO1xuXG4gICAgY29uc3QgZXF1YWxpdHlWZXJpZmllZCA9IHZlcmlmeUVxdWFsaXR5KGVxdWFsaXR5Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCwgKCkgPT4ge1xuICAgICAgY29uc3QgdmVyaWZpZWRBaGVhZCA9IHRydWU7XG5cbiAgICAgIHJldHVybiB2ZXJpZmllZEFoZWFkO1xuICAgIH0pO1xuXG4gICAgc3RhdGVtZW50VmVyaWZpZWRBc0VxdWFsaXR5ID0gZXF1YWxpdHlWZXJpZmllZDsgLy8vXG5cbiAgICBpZiAoc3RhdGVtZW50VmVyaWZpZWRBc0VxdWFsaXR5KSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYW4gZXF1YWxpdHkuYCwgZXF1YWxpdHlOb2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBc0VxdWFsaXR5O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmVyaWZ5U3RhdGVtZW50QXNUeXBlQXNzZXJ0aW9uKHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkQXNUeXBlQXNzZXJ0aW9uID0gZmFsc2U7XG5cbiAgY29uc3QgdHlwZUFzc2VydGlvbk5vZGUgPSB0eXBlQXNzZXJ0aW9uTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpO1xuXG4gIGlmICh0eXBlQXNzZXJ0aW9uTm9kZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoc3RhdGVtZW50Tm9kZSk7XG5cbiAgICBsb2NhbENvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IGFzIGEgdHlwZSBhc3NlcnRpb24uLi5gLCB0eXBlQXNzZXJ0aW9uTm9kZSk7XG5cbiAgICBjb25zdCB0eXBlQXNzZXJ0aW9uVmVyaWZpZWQgPSB2ZXJpZnlUeXBlQXNzZXJ0aW9uKHR5cGVBc3NlcnRpb25Ob2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0LCAoKSA9PiB7XG4gICAgICBjb25zdCB2ZXJpZmllZEFoZWFkID0gdHJ1ZTtcblxuICAgICAgcmV0dXJuIHZlcmlmaWVkQWhlYWQ7XG4gICAgfSk7XG5cbiAgICBzdGF0ZW1lbnRWZXJpZmllZEFzVHlwZUFzc2VydGlvbiA9IHR5cGVBc3NlcnRpb25WZXJpZmllZDsgLy8vXG5cbiAgICBpZiAoc3RhdGVtZW50VmVyaWZpZWRBc1R5cGVBc3NlcnRpb24pIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIHR5cGUgYXNzZXJ0aW9uLmAsIHR5cGVBc3NlcnRpb25Ob2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBc1R5cGVBc3NlcnRpb247XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlbWVudEFzRGVmaW5lZEFzc2VydGlvbihzdGF0ZW1lbnROb2RlLCBhc3NpZ25tZW50cywgZGVyaXZlZCwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRWZXJpZmllZEFzRGVmaW5lZEFzc2VydGlvbiA9IGZhbHNlO1xuXG4gIGNvbnN0IGRlZmluZWRBc3NlcnRpb25Ob2RlID0gZGVmaW5lZEFzc2VydGlvbk5vZGVRdWVyeShzdGF0ZW1lbnROb2RlKTtcblxuICBpZiAoZGVmaW5lZEFzc2VydGlvbk5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBsb2NhbENvbnRleHQubm9kZUFzU3RyaW5nKHN0YXRlbWVudE5vZGUpO1xuXG4gICAgbG9jYWxDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIGRlZmluZWQgYXNzZXJ0aW9uLi4uYCwgZGVmaW5lZEFzc2VydGlvbk5vZGUpO1xuXG4gICAgY29uc3QgZGVmaW5lZEFzc2VydGlvblZlcmlmaWVkID0gdmVyaWZ5RGVmaW5lZEFzc2VydGlvbihkZWZpbmVkQXNzZXJ0aW9uTm9kZSwgbG9jYWxDb250ZXh0LCAoKSA9PiB7XG4gICAgICBjb25zdCB2ZXJpZmllZEFoZWFkID0gdHJ1ZTtcblxuICAgICAgcmV0dXJuIHZlcmlmaWVkQWhlYWQ7XG4gICAgfSk7XG5cbiAgICBzdGF0ZW1lbnRWZXJpZmllZEFzRGVmaW5lZEFzc2VydGlvbiA9IGRlZmluZWRBc3NlcnRpb25WZXJpZmllZDsgLy8vXG5cbiAgICBpZiAoc3RhdGVtZW50VmVyaWZpZWRBc0RlZmluZWRBc3NlcnRpb24pIHtcbiAgICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIGRlZmluZWQgYXNzZXJ0aW9uLmAsIGRlZmluZWRBc3NlcnRpb25Ob2RlKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBc0RlZmluZWRBc3NlcnRpb247XG59XG5cbmZ1bmN0aW9uIHZlcmlmeVN0YXRlbWVudEFzQ29udGFpbmVkQXNzZXJ0aW9uKHN0YXRlbWVudE5vZGUsIGFzc2lnbm1lbnRzLCBkZXJpdmVkLCBsb2NhbENvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudFZlcmlmaWVkQXNDb250YWluZWRBc3NlcnRpb24gPSBmYWxzZTtcblxuICBjb25zdCBjb250YWluZWRBc3NlcnRpb25Ob2RlID0gY29udGFpbmVkQXNzZXJ0aW9uTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpO1xuXG4gIGlmIChjb250YWluZWRBc3NlcnRpb25Ob2RlICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50U3RyaW5nID0gbG9jYWxDb250ZXh0Lm5vZGVBc1N0cmluZyhzdGF0ZW1lbnROb2RlKTtcblxuICAgIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBjb250YWluZWQgYXNzZXJ0aW9uLi4uYCwgY29udGFpbmVkQXNzZXJ0aW9uTm9kZSk7XG5cbiAgICBjb25zdCBjb250YWluZWRWZXJpZmllZCA9IHZlcmlmeUNvbnRhaW5lZEFzc2VydGlvbihjb250YWluZWRBc3NlcnRpb25Ob2RlKTtcblxuICAgIGlmIChjb250YWluZWRWZXJpZmllZCkge1xuICAgICAgc3RhdGVtZW50Tm9kZSA9IHN0YXRlbWVudE5vZGVRdWVyeShjb250YWluZWRBc3NlcnRpb25Ob2RlKTsgLy8vXG5cbiAgICAgIGNvbnN0IHZlcmlmeVN0YXRlbWVudEZ1bmN0aW9ucyA9IFtcbiAgICAgICAgdmVyaWZ5U3RhdGVtZW50QXNFcXVhbGl0eSxcbiAgICAgICAgdmVyaWZ5U3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3JzXG4gICAgICBdO1xuXG4gICAgICBjb25zdCBzdGF0ZW1lbnRWZXJpZmllZCA9IHZlcmlmeVN0YXRlbWVudEZ1bmN0aW9ucy5zb21lKCh2ZXJpZnlTdGF0ZW1lbnRGdW5jdGlvbikgPT4ge1xuICAgICAgICBjb25zdCBkZXJpdmVkID0gZmFsc2UsXG4gICAgICAgICAgICAgIGFzc2lnbm1lbnRzID0gW10sXG4gICAgICAgICAgICAgIHN0YXRlbWVudFZlcmlmaWVkID0gdmVyaWZ5U3RhdGVtZW50RnVuY3Rpb24oc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCk7XG5cbiAgICAgICAgaWYgKHN0YXRlbWVudFZlcmlmaWVkKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBzdGF0ZW1lbnRWZXJpZmllZEFzQ29udGFpbmVkQXNzZXJ0aW9uID0gc3RhdGVtZW50VmVyaWZpZWQ7IC8vL1xuICAgIH1cblxuICAgIGlmIChzdGF0ZW1lbnRWZXJpZmllZEFzQ29udGFpbmVkQXNzZXJ0aW9uKSB7XG4gICAgICBsb2NhbENvbnRleHQuZGVidWcoYC4uLnZlcmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBjb250YWluZWQgYXNzZXJ0aW9uLmAsIGNvbnRhaW5lZEFzc2VydGlvbk5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRWZXJpZmllZEFzQ29udGFpbmVkQXNzZXJ0aW9uO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlTdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvcnMoc3RhdGVtZW50Tm9kZSwgYXNzaWdubWVudHMsIGRlcml2ZWQsIGxvY2FsQ29udGV4dCkge1xuICBsZXQgc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcnMgPSBmYWxzZTtcblxuICBjb25zdCBlcXVhbGl0eU5vZGUgPSBlcXVhbGl0eU5vZGVRdWVyeShzdGF0ZW1lbnROb2RlKSxcbiAgICAgICAgdHlwZUFzc2VydGlvbk5vZGUgPSB0eXBlQXNzZXJ0aW9uTm9kZVF1ZXJ5KHN0YXRlbWVudE5vZGUpLFxuICAgICAgICBkZWZpbmVkQXNzZXJ0aW9uTm9kZSA9IGRlZmluZWRBc3NlcnRpb25Ob2RlUXVlcnkoc3RhdGVtZW50Tm9kZSksXG4gICAgICAgIGNvbnRhaW5lZEFzc2VydGlvbk5vZGUgPSBjb250YWluZWRBc3NlcnRpb25Ob2RlUXVlcnkoc3RhdGVtZW50Tm9kZSk7XG5cbiAgaWYgKChlcXVhbGl0eU5vZGUgPT09IG51bGwpICYmICh0eXBlQXNzZXJ0aW9uTm9kZSA9PT0gbnVsbCkgJiYgKGRlZmluZWRBc3NlcnRpb25Ob2RlID09PSBudWxsKSAmJiAoY29udGFpbmVkQXNzZXJ0aW9uTm9kZSA9PT0gbnVsbCkpIHtcbiAgICBsZXQgY29tYmluYXRvcnMgPSBsb2NhbENvbnRleHQuZ2V0Q29tYmluYXRvcnMoKTtcblxuICAgIGNvbWJpbmF0b3JzID0gWyAvLy9cbiAgICAgIGJyYWNrZXRlZENvbWJpbmF0b3IsXG4gICAgICAuLi5jb21iaW5hdG9yc1xuICAgIF07XG5cbiAgICBzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9ycyA9IGNvbWJpbmF0b3JzLnNvbWUoKGNvbWJpbmF0b3IpID0+IHtcbiAgICAgIGNvbnN0IHN0YXRlbWVudFZlcmlmaWVkQWdhaW5zdENvbWJpbmF0b3IgPSB2ZXJpZnlTdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvcihzdGF0ZW1lbnROb2RlLCBjb21iaW5hdG9yLCBsb2NhbENvbnRleHQpO1xuXG4gICAgICBpZiAoc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9ycztcbn1cblxuZnVuY3Rpb24gdmVyaWZ5U3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3Ioc3RhdGVtZW50Tm9kZSwgY29tYmluYXRvciwgbG9jYWxDb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9yO1xuXG4gIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IGxvY2FsQ29udGV4dC5ub2RlQXNTdHJpbmcoc3RhdGVtZW50Tm9kZSksXG4gICAgICAgIGNvbWJpbmF0b3JTdHJpbmcgPSBjb21iaW5hdG9yLmdldFN0cmluZygpO1xuXG4gIGxvY2FsQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYWdhaW5zdCB0aGUgJyR7Y29tYmluYXRvclN0cmluZ30nIGNvbWJpbmF0b3IuLi5gLCBzdGF0ZW1lbnROb2RlKTtcblxuICBjb25zdCBjb21iaW5hdG9yU3RhdGVtZW50Tm9kZSA9IGNvbWJpbmF0b3IuZ2V0U3RhdGVtZW50Tm9kZSgpLFxuICAgICAgICBub25UZXJtaW5hbE5vZGVBID0gc3RhdGVtZW50Tm9kZSwgLy8vXG4gICAgICAgIG5vblRlcm1pbmFsTm9kZUIgPSBjb21iaW5hdG9yU3RhdGVtZW50Tm9kZSwgLy8vXG4gICAgICAgIG5vblRlcm1pbmFsTm9kZVZlcmlmaWVkID0gc3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3JOb2Rlc1ZlcmlmaWVyLnZlcmlmeU5vblRlcm1pbmFsTm9kZShub25UZXJtaW5hbE5vZGVBLCBub25UZXJtaW5hbE5vZGVCLCBsb2NhbENvbnRleHQsICgpID0+IHtcbiAgICAgICAgICBjb25zdCB2ZXJpZmllZEFoZWFkID0gdHJ1ZTtcblxuICAgICAgICAgIHJldHVybiB2ZXJpZmllZEFoZWFkO1xuICAgICAgICB9KTtcblxuICBzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9yID0gbm9uVGVybWluYWxOb2RlVmVyaWZpZWQ7ICAvLy9cblxuICBpZiAoc3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcikge1xuICAgIGxvY2FsQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhZ2FpbnN0IHRoZSAnJHtjb21iaW5hdG9yU3RyaW5nfScgY29tYmluYXRvci5gLCBzdGF0ZW1lbnROb2RlKTtcbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9yO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeVN0YW5kYWxvbmVTdGF0ZW1lbnQiLCJ2ZXJpZnlTdGF0ZW1lbnRBc0VxdWFsaXR5IiwidmVyaWZ5U3RhdGVtZW50QXNUeXBlQXNzZXJ0aW9uIiwiZXF1YWxpdHlOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJzdGF0ZW1lbnROb2RlUXVlcnkiLCJ0eXBlQXNzZXJ0aW9uTm9kZVF1ZXJ5IiwiZGVmaW5lZEFzc2VydGlvbk5vZGVRdWVyeSIsImNvbnRhaW5lZEFzc2VydGlvbk5vZGVRdWVyeSIsInZlcmlmeVN0YXRlbWVudCIsInN0YXRlbWVudE5vZGUiLCJhc3NpZ25tZW50cyIsImRlcml2ZWQiLCJsb2NhbENvbnRleHQiLCJzdGF0ZW1lbnRWZXJpZmllZCIsInN0YXRlbWVudFN0cmluZyIsIm5vZGVBc1N0cmluZyIsInRyYWNlIiwidmVyaWZ5U3RhdGVtZW50RnVuY3Rpb25zIiwidmVyaWZ5U3RhdGVtZW50QXNEZWZpbmVkQXNzZXJ0aW9uIiwidmVyaWZ5U3RhdGVtZW50QXNDb250YWluZWRBc3NlcnRpb24iLCJ2ZXJpZnlTdGF0ZW1lbnRBZ2FpbnN0Q29tYmluYXRvcnMiLCJzb21lIiwidmVyaWZ5U3RhdGVtZW50RnVuY3Rpb24iLCJkZWJ1ZyIsInZlcmlmeUFoZWFkIiwic3RhbmRhbG9uZVN0YXRlbWVudFZlcmlmaWVkIiwidmVyaWZpZWRBaGVhZCIsIk9iamVjdCIsImFzc2lnbiIsInN0YXRlbWVudEFnYWluc3RDb21iaW5hdG9yTm9kZXNWZXJpZmllciIsInN0YXRlbWVudFZlcmlmaWVkQXNFcXVhbGl0eSIsImVxdWFsaXR5Tm9kZSIsImVxdWFsaXR5VmVyaWZpZWQiLCJ2ZXJpZnlFcXVhbGl0eSIsInN0YXRlbWVudFZlcmlmaWVkQXNUeXBlQXNzZXJ0aW9uIiwidHlwZUFzc2VydGlvbk5vZGUiLCJ0eXBlQXNzZXJ0aW9uVmVyaWZpZWQiLCJ2ZXJpZnlUeXBlQXNzZXJ0aW9uIiwic3RhdGVtZW50VmVyaWZpZWRBc0RlZmluZWRBc3NlcnRpb24iLCJkZWZpbmVkQXNzZXJ0aW9uTm9kZSIsImRlZmluZWRBc3NlcnRpb25WZXJpZmllZCIsInZlcmlmeURlZmluZWRBc3NlcnRpb24iLCJzdGF0ZW1lbnRWZXJpZmllZEFzQ29udGFpbmVkQXNzZXJ0aW9uIiwiY29udGFpbmVkQXNzZXJ0aW9uTm9kZSIsImNvbnRhaW5lZFZlcmlmaWVkIiwidmVyaWZ5Q29udGFpbmVkQXNzZXJ0aW9uIiwic3RhdGVtZW50VmVyaWZpZWRBZ2FpbnN0Q29tYmluYXRvcnMiLCJjb21iaW5hdG9ycyIsImdldENvbWJpbmF0b3JzIiwiYnJhY2tldGVkQ29tYmluYXRvciIsImNvbWJpbmF0b3IiLCJzdGF0ZW1lbnRWZXJpZmllZEFnYWluc3RDb21iaW5hdG9yIiwidmVyaWZ5U3RhdGVtZW50QWdhaW5zdENvbWJpbmF0b3IiLCJjb21iaW5hdG9yU3RyaW5nIiwiZ2V0U3RyaW5nIiwiY29tYmluYXRvclN0YXRlbWVudE5vZGUiLCJnZXRTdGF0ZW1lbnROb2RlIiwibm9uVGVybWluYWxOb2RlQSIsIm5vblRlcm1pbmFsTm9kZUIiLCJub25UZXJtaW5hbE5vZGVWZXJpZmllZCIsInZlcmlmeU5vblRlcm1pbmFsTm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBMkVBLE9BQStCO2VBQS9COztJQTVCZ0JBLHlCQUF5QjtlQUF6QkE7O0lBOEJBQyx5QkFBeUI7ZUFBekJBOztJQTBCQUMsOEJBQThCO2VBQTlCQTs7OytEQXJHVztnRUFDSztvRUFDQTt1RUFDRzt5RUFDRTtpRkFDZTtxQkFFMUI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFMUIsSUFBTUMsb0JBQW9CQyxJQUFBQSxnQkFBUyxF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
|
|
@@ -9,7 +9,6 @@ Object.defineProperty(exports, "default", {
|
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
11
|
var _combinator = /*#__PURE__*/ _interop_require_default(require("../combinator"));
|
|
12
|
-
var _local = /*#__PURE__*/ _interop_require_default(require("../context/local"));
|
|
13
12
|
var _statementAsCombinator = /*#__PURE__*/ _interop_require_default(require("../verifier/node/statementAsCombinator"));
|
|
14
13
|
function _interop_require_default(obj) {
|
|
15
14
|
return obj && obj.__esModule ? obj : {
|
|
@@ -35,4 +34,4 @@ function verifyStatementAsCombinator(statementNode, fileContext) {
|
|
|
35
34
|
return statementVerifiedAsCombinator;
|
|
36
35
|
}
|
|
37
36
|
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvc3RhdGVtZW50QXNDb21iaW5hdG9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgQ29tYmluYXRvciBmcm9tIFwiLi4vY29tYmluYXRvclwiO1xuaW1wb3J0IHN0YXRlbWVudEFzQ29tYmluYXRvck5vZGVWZXJpZmllciBmcm9tIFwiLi4vdmVyaWZpZXIvbm9kZS9zdGF0ZW1lbnRBc0NvbWJpbmF0b3JcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5U3RhdGVtZW50QXNDb21iaW5hdG9yKHN0YXRlbWVudE5vZGUsIGZpbGVDb250ZXh0KSB7XG4gIGxldCBzdGF0ZW1lbnRWZXJpZmllZEFzQ29tYmluYXRvciA9IGZhbHNlO1xuXG4gIGNvbnN0IHN0YXRlbWVudFN0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVBc1N0cmluZyhzdGF0ZW1lbnROb2RlKTtcblxuICBmaWxlQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgYXMgYSBjb21iaW5hdG9yLi4uLmAsIHN0YXRlbWVudE5vZGUpO1xuXG4gIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IHN0YXRlbWVudE5vZGUsIC8vL1xuICAgICAgICBjaGlsZE5vZGVzID0gbm9uVGVybWluYWxOb2RlLmdldENoaWxkTm9kZXMoKSxcbiAgICAgICAgY2hpbGROb2Rlc1ZlcmlmaWVkID0gc3RhdGVtZW50QXNDb21iaW5hdG9yTm9kZVZlcmlmaWVyLnZlcmlmeUNoaWxkTm9kZXMoY2hpbGROb2RlcywgZmlsZUNvbnRleHQsICgpID0+IHtcbiAgICAgICAgICBjb25zdCB2ZXJpZmllZEFoZWFkID0gdHJ1ZTtcblxuICAgICAgICAgIHJldHVybiB2ZXJpZmllZEFoZWFkO1xuICAgICAgICB9KTtcblxuICBpZiAoY2hpbGROb2Rlc1ZlcmlmaWVkKSB7XG4gICAgY29uc3QgdG9rZW5zID0gZmlsZUNvbnRleHQuZ2V0VG9rZW5zKCksXG4gICAgICAgICAgY29tYmluYXRvciA9IENvbWJpbmF0b3IuZnJvbVN0YXRlbWVudE5vZGVBbmRUb2tlbnMoc3RhdGVtZW50Tm9kZSwgdG9rZW5zKTtcblxuICAgIGZpbGVDb250ZXh0LmFkZENvbWJpbmF0b3IoY29tYmluYXRvcik7XG5cbiAgICBzdGF0ZW1lbnRWZXJpZmllZEFzQ29tYmluYXRvciA9IHRydWU7XG4gIH1cblxuICBpZiAoc3RhdGVtZW50VmVyaWZpZWRBc0NvbWJpbmF0b3IpIHtcbiAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3N0YXRlbWVudFN0cmluZ30nIHN0YXRlbWVudCBhcyBhIGNvbWJpbmF0b3IuYCwgc3RhdGVtZW50Tm9kZSk7XG4gIH1cblxuICByZXR1cm4gc3RhdGVtZW50VmVyaWZpZWRBc0NvbWJpbmF0b3I7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5U3RhdGVtZW50QXNDb21iaW5hdG9yIiwic3RhdGVtZW50Tm9kZSIsImZpbGVDb250ZXh0Iiwic3RhdGVtZW50VmVyaWZpZWRBc0NvbWJpbmF0b3IiLCJzdGF0ZW1lbnRTdHJpbmciLCJub2RlQXNTdHJpbmciLCJ0cmFjZSIsIm5vblRlcm1pbmFsTm9kZSIsImNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwiY2hpbGROb2Rlc1ZlcmlmaWVkIiwic3RhdGVtZW50QXNDb21iaW5hdG9yTm9kZVZlcmlmaWVyIiwidmVyaWZ5Q2hpbGROb2RlcyIsInZlcmlmaWVkQWhlYWQiLCJ0b2tlbnMiLCJnZXRUb2tlbnMiLCJjb21iaW5hdG9yIiwiQ29tYmluYXRvciIsImZyb21TdGF0ZW1lbnROb2RlQW5kVG9rZW5zIiwiYWRkQ29tYmluYXRvciIsImRlYnVnIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFLQTs7O2VBQXdCQTs7O2lFQUhEOzRFQUN1Qjs7Ozs7O0FBRS9CLFNBQVNBLDRCQUE0QkMsYUFBYSxFQUFFQyxXQUFXO0lBQzVFLElBQUlDLGdDQUFnQztJQUVwQyxJQUFNQyxrQkFBa0JGLFlBQVlHLFlBQVksQ0FBQ0o7SUFFakRDLFlBQVlJLEtBQUssQ0FBQyxBQUFDLGtCQUFpQyxPQUFoQkYsaUJBQWdCLG9DQUFrQ0g7SUFFdEYsSUFBTU0sa0JBQWtCTixlQUNsQk8sYUFBYUQsZ0JBQWdCRSxhQUFhLElBQzFDQyxxQkFBcUJDLDhCQUFpQyxDQUFDQyxnQkFBZ0IsQ0FBQ0osWUFBWU4sYUFBYTtRQUMvRixJQUFNVyxnQkFBZ0I7UUFFdEIsT0FBT0E7SUFDVDtJQUVOLElBQUlILG9CQUFvQjtRQUN0QixJQUFNSSxTQUFTWixZQUFZYSxTQUFTLElBQzlCQyxhQUFhQyxtQkFBVSxDQUFDQywwQkFBMEIsQ0FBQ2pCLGVBQWVhO1FBRXhFWixZQUFZaUIsYUFBYSxDQUFDSDtRQUUxQmIsZ0NBQWdDO0lBQ2xDO0lBRUEsSUFBSUEsK0JBQStCO1FBQ2pDRCxZQUFZa0IsS0FBSyxDQUFDLEFBQUMsb0JBQW1DLE9BQWhCaEIsaUJBQWdCLGlDQUErQkg7SUFDdkY7SUFFQSxPQUFPRTtBQUNUIn0=
|
package/package.json
CHANGED
package/src/conclusion.js
CHANGED
|
@@ -30,9 +30,9 @@ export default class Conclusion {
|
|
|
30
30
|
localContextA = localContext, ///
|
|
31
31
|
localContextB = statementLocalContext, ///
|
|
32
32
|
nonTerminalNodeVerified = intrinsicLevelAgainstMetaLevelNodesVerifier.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, () => {
|
|
33
|
-
const
|
|
33
|
+
const verifiedAhead = true;
|
|
34
34
|
|
|
35
|
-
return
|
|
35
|
+
return verifiedAhead;
|
|
36
36
|
});
|
|
37
37
|
|
|
38
38
|
statementNodeMatches = nonTerminalNodeVerified; ///
|
|
@@ -11,6 +11,7 @@ import { verifyStandaloneMetavariable } from "../../verify/metavariable";
|
|
|
11
11
|
|
|
12
12
|
const termNodeQuery = nodeQuery("/term!"),
|
|
13
13
|
variableNodeQuery = nodeQuery("/variable!"),
|
|
14
|
+
nonTerminalNodeQuery = nodeQuery("/*"),
|
|
14
15
|
metavariableNodeQuery = nodeQuery("/metavariable!");
|
|
15
16
|
|
|
16
17
|
class MetastatementNodeVerifier extends NodeVerifier {
|
|
@@ -20,23 +21,62 @@ class MetastatementNodeVerifier extends NodeVerifier {
|
|
|
20
21
|
const nodeQueryMaps = [
|
|
21
22
|
{
|
|
22
23
|
nodeQuery: termNodeQuery,
|
|
23
|
-
verifyNode:
|
|
24
|
+
verifyNode: (node, localMetaContext, verifyAhead) => {
|
|
25
|
+
let nonTerminalNodeVerified;
|
|
26
|
+
|
|
27
|
+
const termNode = node, ///
|
|
28
|
+
termNodeVerified = this.verifyTermNode(termNode, localMetaContext, verifyAhead);
|
|
29
|
+
|
|
30
|
+
nonTerminalNodeVerified = termNodeVerified; ///
|
|
31
|
+
|
|
32
|
+
return nonTerminalNodeVerified;
|
|
33
|
+
}
|
|
24
34
|
},
|
|
25
35
|
{
|
|
26
36
|
nodeQuery: variableNodeQuery,
|
|
27
|
-
verifyNode:
|
|
37
|
+
verifyNode: (node, localMetaContext, verifyAhead) => {
|
|
38
|
+
let nonTerminalNodeVerified;
|
|
39
|
+
|
|
40
|
+
const variableNode = node, ///
|
|
41
|
+
variableNodeVerified = this.verifyVariableNode(variableNode, localMetaContext, verifyAhead);
|
|
42
|
+
|
|
43
|
+
nonTerminalNodeVerified = variableNodeVerified; ///
|
|
44
|
+
|
|
45
|
+
return nonTerminalNodeVerified;
|
|
46
|
+
}
|
|
28
47
|
},
|
|
29
48
|
{
|
|
30
49
|
nodeQuery: metavariableNodeQuery,
|
|
31
|
-
verifyNode:
|
|
50
|
+
verifyNode: (node, localMetaContext, verifyAhead) => {
|
|
51
|
+
let nonTerminalNodeVerified;
|
|
52
|
+
|
|
53
|
+
const metavariableNode = node, ///
|
|
54
|
+
metavariableNodeVerified = this.verifyMetavariableNode(metavariableNode, localMetaContext, verifyAhead);
|
|
55
|
+
|
|
56
|
+
nonTerminalNodeVerified = metavariableNodeVerified; ///
|
|
57
|
+
|
|
58
|
+
return nonTerminalNodeVerified;
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
nodeQuery: nonTerminalNodeQuery,
|
|
63
|
+
verifyNode: (node, localMetaContext, verifyAhead) => {
|
|
64
|
+
let nonTerminalNodeVerified;
|
|
65
|
+
|
|
66
|
+
const nonTerminalNode = node; ///
|
|
67
|
+
|
|
68
|
+
nonTerminalNodeVerified =
|
|
69
|
+
|
|
70
|
+
super.verifyNonTerminalNode(nonTerminalNode, localMetaContext, verifyAhead);
|
|
71
|
+
|
|
72
|
+
return nonTerminalNodeVerified;
|
|
73
|
+
}
|
|
32
74
|
}
|
|
33
75
|
];
|
|
34
76
|
|
|
35
77
|
const nodeVerified = verifyNode(nodeQueryMaps, nonTerminalNode, localMetaContext, verifyAhead);
|
|
36
78
|
|
|
37
|
-
nonTerminalNodeVerified = nodeVerified
|
|
38
|
-
true :
|
|
39
|
-
super.verifyNonTerminalNode(nonTerminalNode, localMetaContext, verifyAhead);
|
|
79
|
+
nonTerminalNodeVerified = nodeVerified; ///
|
|
40
80
|
|
|
41
81
|
return nonTerminalNodeVerified;
|
|
42
82
|
}
|
|
@@ -10,7 +10,8 @@ import { verifyStandaloneStatement } from "../../verify/statement";
|
|
|
10
10
|
|
|
11
11
|
const termNodeQuery = nodeQuery("/term!"),
|
|
12
12
|
typeNodeQuery = nodeQuery("/type!"),
|
|
13
|
-
statementNodeQuery = nodeQuery("/statement!")
|
|
13
|
+
statementNodeQuery = nodeQuery("/statement!"),
|
|
14
|
+
nonTerminalNodeQuery = nodeQuery("/*");
|
|
14
15
|
|
|
15
16
|
class StatementAsCombinatorNodeVerifier extends NodeVerifier {
|
|
16
17
|
verifyNonTerminalNode(nonTerminalNode, localContext, verifyAhead) {
|
|
@@ -19,37 +20,69 @@ class StatementAsCombinatorNodeVerifier extends NodeVerifier {
|
|
|
19
20
|
const nodeQueryMaps = [
|
|
20
21
|
{
|
|
21
22
|
nodeQuery: termNodeQuery,
|
|
22
|
-
verifyNode:
|
|
23
|
+
verifyNode: (node, localMetaContext, verifyAhead) => {
|
|
24
|
+
let nonTerminalNodeVerified;
|
|
25
|
+
|
|
26
|
+
const termNode = node, ///
|
|
27
|
+
termNodeVerified = this.verifyTermNode(termNode, localMetaContext, verifyAhead);
|
|
28
|
+
|
|
29
|
+
nonTerminalNodeVerified = termNodeVerified; ///
|
|
30
|
+
|
|
31
|
+
return nonTerminalNodeVerified;
|
|
32
|
+
}
|
|
23
33
|
},
|
|
24
34
|
{
|
|
25
35
|
nodeQuery: typeNodeQuery,
|
|
26
|
-
verifyNode:
|
|
36
|
+
verifyNode: (node, localMetaContext, verifyAhead) => {
|
|
37
|
+
let nonTerminalNodeVerified;
|
|
38
|
+
|
|
39
|
+
const typeNode = node, ///
|
|
40
|
+
typeNodeVerified = this.verifyTypeNode(typeNode, localMetaContext, verifyAhead);
|
|
41
|
+
|
|
42
|
+
nonTerminalNodeVerified = typeNodeVerified; ///
|
|
43
|
+
|
|
44
|
+
return nonTerminalNodeVerified;
|
|
45
|
+
}
|
|
27
46
|
},
|
|
28
47
|
{
|
|
29
48
|
nodeQuery: statementNodeQuery,
|
|
30
|
-
verifyNode:
|
|
49
|
+
verifyNode: (node, localMetaContext, verifyAhead) => {
|
|
50
|
+
let nonTerminalNodeVerified;
|
|
51
|
+
|
|
52
|
+
const statementNode = node, ///
|
|
53
|
+
statementNodeVerified = this.verifyStatementNode(statementNode, localMetaContext, verifyAhead);
|
|
54
|
+
|
|
55
|
+
nonTerminalNodeVerified = statementNodeVerified; ///
|
|
56
|
+
|
|
57
|
+
return nonTerminalNodeVerified;
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
nodeQuery: nonTerminalNodeQuery,
|
|
62
|
+
verifyNode: (node, localMetaContext, verifyAhead) => {
|
|
63
|
+
let nonTerminalNodeVerified;
|
|
64
|
+
|
|
65
|
+
const nonTerminalNode = node; ///
|
|
66
|
+
|
|
67
|
+
nonTerminalNodeVerified =
|
|
68
|
+
|
|
69
|
+
super.verifyNonTerminalNode(nonTerminalNode, localMetaContext, verifyAhead);
|
|
70
|
+
|
|
71
|
+
return nonTerminalNodeVerified;
|
|
72
|
+
}
|
|
31
73
|
}
|
|
32
74
|
];
|
|
33
75
|
|
|
34
76
|
const nodeVerified = verifyNode(nodeQueryMaps, nonTerminalNode, localContext, verifyAhead);
|
|
35
77
|
|
|
36
|
-
nonTerminalNodeVerified = nodeVerified
|
|
37
|
-
true :
|
|
38
|
-
super.verifyNonTerminalNode(nonTerminalNode, localContext, verifyAhead);
|
|
78
|
+
nonTerminalNodeVerified = nodeVerified; ///
|
|
39
79
|
|
|
40
80
|
return nonTerminalNodeVerified;
|
|
41
81
|
}
|
|
42
82
|
|
|
43
83
|
verifyStatementNode(statementNode, localContext, verifyAhead) {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
const standaloneStatementVerified = verifyStandaloneStatement(statementNode, localContext);
|
|
47
|
-
|
|
48
|
-
if (standaloneStatementVerified) {
|
|
49
|
-
const verifiedAhead = verifyAhead; ///
|
|
50
|
-
|
|
51
|
-
statementNodeVerified = verifiedAhead; ///
|
|
52
|
-
}
|
|
84
|
+
const standaloneStatementVerified = verifyStandaloneStatement(statementNode, localContext, verifyAhead),
|
|
85
|
+
statementNodeVerified = standaloneStatementVerified; ///
|
|
53
86
|
|
|
54
87
|
return statementNodeVerified;
|
|
55
88
|
}
|
|
@@ -8,7 +8,8 @@ import { verifyStandaloneType } from "../../verify/type";
|
|
|
8
8
|
import { verifyStandaloneTerm } from "../../verify/term";
|
|
9
9
|
|
|
10
10
|
const termNodeQuery = nodeQuery("/term!"),
|
|
11
|
-
typeNodeQuery = nodeQuery("/type!")
|
|
11
|
+
typeNodeQuery = nodeQuery("/type!"),
|
|
12
|
+
nonTerminalNodeQuery = nodeQuery("/*");
|
|
12
13
|
|
|
13
14
|
class TermAsConstructorNodeVerifier extends NodeVerifier {
|
|
14
15
|
verifyNonTerminalNode(nonTerminalNode, localContext, verifyAhead) {
|
|
@@ -17,19 +18,49 @@ class TermAsConstructorNodeVerifier extends NodeVerifier {
|
|
|
17
18
|
const nodeQueryMaps = [
|
|
18
19
|
{
|
|
19
20
|
nodeQuery: termNodeQuery,
|
|
20
|
-
verifyNode:
|
|
21
|
+
verifyNode: (node, localMetaContext, verifyAhead) => {
|
|
22
|
+
let nonTerminalNodeVerified;
|
|
23
|
+
|
|
24
|
+
const termNode = node, ///
|
|
25
|
+
termNodeVerified = this.verifyTermNode(termNode, localMetaContext, verifyAhead);
|
|
26
|
+
|
|
27
|
+
nonTerminalNodeVerified = termNodeVerified; ///
|
|
28
|
+
|
|
29
|
+
return nonTerminalNodeVerified;
|
|
30
|
+
}
|
|
21
31
|
},
|
|
22
32
|
{
|
|
23
33
|
nodeQuery: typeNodeQuery,
|
|
24
|
-
verifyNode:
|
|
34
|
+
verifyNode: (node, localMetaContext, verifyAhead) => {
|
|
35
|
+
let nonTerminalNodeVerified;
|
|
36
|
+
|
|
37
|
+
const typeNode = node, ///
|
|
38
|
+
typeNodeVerified = this.verifyTypeNode(typeNode, localMetaContext, verifyAhead);
|
|
39
|
+
|
|
40
|
+
nonTerminalNodeVerified = typeNodeVerified; ///
|
|
41
|
+
|
|
42
|
+
return nonTerminalNodeVerified;
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
nodeQuery: nonTerminalNodeQuery,
|
|
47
|
+
verifyNode: (node, localMetaContext, verifyAhead) => {
|
|
48
|
+
let nonTerminalNodeVerified;
|
|
49
|
+
|
|
50
|
+
const nonTerminalNode = node; ///
|
|
51
|
+
|
|
52
|
+
nonTerminalNodeVerified =
|
|
53
|
+
|
|
54
|
+
super.verifyNonTerminalNode(nonTerminalNode, localMetaContext, verifyAhead);
|
|
55
|
+
|
|
56
|
+
return nonTerminalNodeVerified;
|
|
57
|
+
}
|
|
25
58
|
}
|
|
26
59
|
];
|
|
27
60
|
|
|
28
61
|
const nodeVerified = verifyNode(nodeQueryMaps, nonTerminalNode, localContext, verifyAhead);
|
|
29
62
|
|
|
30
|
-
nonTerminalNodeVerified = nodeVerified
|
|
31
|
-
true :
|
|
32
|
-
super.verifyNonTerminalNode(nonTerminalNode, localContext, verifyAhead);
|
|
63
|
+
nonTerminalNodeVerified = nodeVerified; ///
|
|
33
64
|
|
|
34
65
|
return nonTerminalNodeVerified;
|
|
35
66
|
}
|
|
@@ -6,7 +6,8 @@ import verifyTermAgainstTerm from "../../verify/termAgainstTerm";
|
|
|
6
6
|
import { nodeQuery } from "../../utilities/query";
|
|
7
7
|
import { verifyNodes } from "../../utilities/verifier";
|
|
8
8
|
|
|
9
|
-
const termNodeQuery = nodeQuery("/term!")
|
|
9
|
+
const termNodeQuery = nodeQuery("/term!"),
|
|
10
|
+
nonTerminalNodeQuery = nodeQuery("/*");
|
|
10
11
|
|
|
11
12
|
class EqualityNodesVerifier extends NodesVerifier {
|
|
12
13
|
verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, localContext, verifyAhead) {
|
|
@@ -27,6 +28,22 @@ class EqualityNodesVerifier extends NodesVerifier {
|
|
|
27
28
|
|
|
28
29
|
nonTerminalNodeVerified = termNodeVerifiedAgainstTermNode; ///
|
|
29
30
|
|
|
31
|
+
return nonTerminalNodeVerified;
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
nodeQueryA: nonTerminalNodeQuery,
|
|
36
|
+
nodeQueryB: nonTerminalNodeQuery,
|
|
37
|
+
verifyNodes: (nodeA, nodeB, substitutions, localMetaContextA, localMetaContextB, verifyAhead) => {
|
|
38
|
+
let nonTerminalNodeVerified;
|
|
39
|
+
|
|
40
|
+
const nonTerminalNodeA = nodeA, ///
|
|
41
|
+
nonTerminalNodeB = nodeB; ///
|
|
42
|
+
|
|
43
|
+
nonTerminalNodeVerified =
|
|
44
|
+
|
|
45
|
+
super.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localMetaContextA, localMetaContextB, verifyAhead);
|
|
46
|
+
|
|
30
47
|
return nonTerminalNodeVerified;
|
|
31
48
|
}
|
|
32
49
|
}
|
|
@@ -34,9 +51,7 @@ class EqualityNodesVerifier extends NodesVerifier {
|
|
|
34
51
|
|
|
35
52
|
const nodesVerified = verifyNodes(nodeQueryMaps, nonTerminalNodeA, nonTerminalNodeB, localContext, verifyAhead);
|
|
36
53
|
|
|
37
|
-
nonTerminalNodeVerified = nodesVerified
|
|
38
|
-
true :
|
|
39
|
-
super.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, localContext, verifyAhead);
|
|
54
|
+
nonTerminalNodeVerified = nodesVerified; ///
|
|
40
55
|
|
|
41
56
|
return nonTerminalNodeVerified;
|
|
42
57
|
}
|
|
@@ -7,6 +7,7 @@ import { nodeQuery } from "../../utilities/query";
|
|
|
7
7
|
import { verifyNodes } from "../../utilities/verifier";
|
|
8
8
|
|
|
9
9
|
const termNodeQuery = nodeQuery("/term!"),
|
|
10
|
+
nonTerminalNodeQuery = nodeQuery("/*"),
|
|
10
11
|
termVariableNodeQuery = nodeQuery("/term/variable!");
|
|
11
12
|
|
|
12
13
|
class IntrinsicLevelNodesVerifier extends NodesVerifier {
|
|
@@ -28,6 +29,22 @@ class IntrinsicLevelNodesVerifier extends NodesVerifier {
|
|
|
28
29
|
|
|
29
30
|
nonTerminalNodeVerified = termVariableNodeVerifiedAgainstTermNode; ///
|
|
30
31
|
|
|
32
|
+
return nonTerminalNodeVerified;
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
nodeQueryA: nonTerminalNodeQuery,
|
|
37
|
+
nodeQueryB: nonTerminalNodeQuery,
|
|
38
|
+
verifyNodes: (nodeA, nodeB, substitutions, localMetaContextA, localMetaContextB, verifyAhead) => {
|
|
39
|
+
let nonTerminalNodeVerified;
|
|
40
|
+
|
|
41
|
+
const nonTerminalNodeA = nodeA, ///
|
|
42
|
+
nonTerminalNodeB = nodeB; ///
|
|
43
|
+
|
|
44
|
+
nonTerminalNodeVerified =
|
|
45
|
+
|
|
46
|
+
super.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localMetaContextA, localMetaContextB, verifyAhead);
|
|
47
|
+
|
|
31
48
|
return nonTerminalNodeVerified;
|
|
32
49
|
}
|
|
33
50
|
}
|
|
@@ -35,9 +52,7 @@ class IntrinsicLevelNodesVerifier extends NodesVerifier {
|
|
|
35
52
|
|
|
36
53
|
const nodesVerified = verifyNodes(nodeQueryMaps, nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, verifyAhead);
|
|
37
54
|
|
|
38
|
-
nonTerminalNodeVerified = nodesVerified
|
|
39
|
-
true :
|
|
40
|
-
super.verifyNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions, localContextA, localContextB, verifyAhead);
|
|
55
|
+
nonTerminalNodeVerified = nodesVerified; ///
|
|
41
56
|
|
|
42
57
|
return nonTerminalNodeVerified;
|
|
43
58
|
}
|