occam-verify-cli 0.0.1191 → 0.0.1193
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/combinator.js +2 -2
- package/lib/context/file.js +13 -1
- package/lib/dom/frame.js +16 -16
- package/lib/dom/parameter.js +14 -64
- package/lib/dom/procedureCall.js +21 -6
- package/lib/dom/reference.js +14 -2
- package/lib/dom/statement.js +37 -20
- package/lib/dom/term.js +3 -2
- package/package.json +5 -5
- package/src/combinator.js +2 -1
- package/src/context/file.js +14 -0
- package/src/dom/frame.js +29 -31
- package/src/dom/parameter.js +14 -23
- package/src/dom/procedureCall.js +29 -5
- package/src/dom/reference.js +20 -1
- package/src/dom/statement.js +72 -40
- package/src/dom/term.js +3 -1
package/lib/dom/term.js
CHANGED
|
@@ -10,6 +10,7 @@ Object.defineProperty(exports, "default", {
|
|
|
10
10
|
});
|
|
11
11
|
var _necessary = require("necessary");
|
|
12
12
|
var _dom = /*#__PURE__*/ _interop_require_wildcard(require("../dom"));
|
|
13
|
+
var _local = /*#__PURE__*/ _interop_require_default(require("../context/local"));
|
|
13
14
|
var _verify = /*#__PURE__*/ _interop_require_default(require("../mixins/term/verify"));
|
|
14
15
|
var _constructor = /*#__PURE__*/ _interop_require_default(require("../verifier/constructor"));
|
|
15
16
|
var _type = require("./type");
|
|
@@ -296,7 +297,7 @@ var _default = (0, _dom.domAssigned)((_Term = /*#__PURE__*/ function() {
|
|
|
296
297
|
{
|
|
297
298
|
key: "fromJSON",
|
|
298
299
|
value: function fromJSON(json, fileContext) {
|
|
299
|
-
var string = json.string,
|
|
300
|
+
var string = json.string, localContext = _local.default.fromFileContext(fileContext), context = localContext, termString = string, termNode = (0, _term.termNodeFromTermString)(termString, context), node = termNode, type = (0, _json.typeFromJSON)(json, fileContext), term = new Term(string, node, type);
|
|
300
301
|
return term;
|
|
301
302
|
}
|
|
302
303
|
},
|
|
@@ -346,4 +347,4 @@ var _default = (0, _dom.domAssigned)((_Term = /*#__PURE__*/ function() {
|
|
|
346
347
|
return Term;
|
|
347
348
|
}(), _define_property(_Term, "name", "Term"), _Term));
|
|
348
349
|
|
|
349
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb20vdGVybS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCBkb20gZnJvbSBcIi4uL2RvbVwiO1xuaW1wb3J0IHZlcmlmeU1peGlucyBmcm9tIFwiLi4vbWl4aW5zL3Rlcm0vdmVyaWZ5XCI7XG5pbXBvcnQgY29uc3RydWN0b3JWZXJpZmllciBmcm9tIFwiLi4vdmVyaWZpZXIvY29uc3RydWN0b3JcIjtcblxuaW1wb3J0IHsgb2JqZWN0VHlwZSB9IGZyb20gXCIuL3R5cGVcIjtcbmltcG9ydCB7IGRvbUFzc2lnbmVkIH0gZnJvbSBcIi4uL2RvbVwiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5LCBub2Rlc1F1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiXG5pbXBvcnQgeyB0ZXJtTm9kZUZyb21UZXJtU3RyaW5nIH0gZnJvbSBcIi4uL2NvbnRleHQvcGFydGlhbC90ZXJtXCI7XG5pbXBvcnQgeyB0eXBlRnJvbUpTT04sIHR5cGVUb1R5cGVKU09OIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9qc29uXCI7XG5cbmNvbnN0IHsgZmlsdGVyLCBjb21wcmVzcyB9ID0gYXJyYXlVdGlsaXRpZXM7XG5cbmNvbnN0IHZhcmlhYmxlTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvL3ZhcmlhYmxlXCIpLFxuICAgICAgdGVybVZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiLyovdGVybVswXS92YXJpYWJsZSFcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGRvbUFzc2lnbmVkKGNsYXNzIFRlcm0ge1xuICBjb25zdHJ1Y3RvcihzdHJpbmcsIG5vZGUsIHR5cGUpIHtcbiAgICB0aGlzLnN0cmluZyA9IHN0cmluZztcbiAgICB0aGlzLm5vZGUgPSBub2RlO1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gIH1cblxuICBnZXRTdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RyaW5nO1xuICB9XG5cbiAgZ2V0Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlO1xuICB9XG5cbiAgZ2V0VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlO1xuICB9XG5cbiAgc2V0VHlwZSh0eXBlKSB7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgfVxuXG4gIGdldFZhcmlhYmxlKGNvbnRleHQpIHtcbiAgICBjb25zdCB7IFZhcmlhYmxlIH0gPSBkb20sXG4gICAgICAgICAgdGVybU5vZGUgPSB0aGlzLm5vZGUsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlID0gVmFyaWFibGUuZnJvbVRlcm1Ob2RlKHRlcm1Ob2RlLCBjb250ZXh0KTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIGdldFZhcmlhYmxlcyhjb250ZXh0KSB7XG4gICAgY29uc3QgdmFyaWFibGVOb2RlcyA9IHZhcmlhYmxlTm9kZXNRdWVyeSh0aGlzLm5vZGUpLFxuICAgICAgICAgIHZhcmlhYmxlcyA9IHZhcmlhYmxlTm9kZXMubWFwKCh2YXJpYWJsZU5vZGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgVmFyaWFibGUgfSA9IGRvbSxcbiAgICAgICAgICAgICAgICAgIHZhcmlhYmxlID0gVmFyaWFibGUuZnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgICAgICByZXR1cm4gdmFyaWFibGU7XG4gICAgICAgICAgfSk7XG5cbiAgICBjb21wcmVzcyh2YXJpYWJsZXMsICh2YXJpYWJsZUEsIHZhcmlhYmxlQikgPT4ge1xuICAgICAgY29uc3QgdmFyaWFibGVBRXF1YWxUb1ZhcmlhYmxlQiA9IHZhcmlhYmxlQS5pc0VxdWFsVG8odmFyaWFibGVCKTtcblxuICAgICAgaWYgKHZhcmlhYmxlQUVxdWFsVG9WYXJpYWJsZUIpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdmFyaWFibGVzO1xuICB9XG5cbiAgbWF0Y2hUZXJtTm9kZSh0ZXJtTm9kZSkge1xuICAgIGNvbnN0IHRlcm1Ob2RlTWF0Y2hlcyA9IHRoaXMubm9kZS5tYXRjaCh0ZXJtTm9kZSk7XG5cbiAgICByZXR1cm4gdGVybU5vZGVNYXRjaGVzO1xuICB9XG5cbiAgaXNFcXVhbFRvKHRlcm0pIHtcbiAgICBsZXQgZXF1YWxUbyA9IGZhbHNlO1xuXG4gICAgY29uc3QgdGVybVN0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCk7XG5cbiAgICBpZiAodGVybVN0cmluZyA9PT0gdGhpcy5zdHJpbmcpIHtcbiAgICAgIGNvbnN0IHRlcm1UeXBlID0gdGVybS5nZXRUeXBlKCk7XG5cbiAgICAgIGlmICh0ZXJtVHlwZSA9PT0gdGhpcy50eXBlKSB7XG4gICAgICAgIGVxdWFsVG8gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBlcXVhbFRvO1xuICB9XG5cbiAgaXNHcm91bmRlZChkZWZpbmVkVmFyaWFibGVzLCBjb250ZXh0KSB7XG4gICAgY29uc3QgdmFyaWFibGVzID0gdGhpcy5nZXRWYXJpYWJsZXMoY29udGV4dCk7XG5cbiAgICBmaWx0ZXIodmFyaWFibGVzLCAodmFyaWFibGUpID0+IHtcbiAgICAgIGNvbnN0IGRlZmluZWRWYXJpYWJsZXNJbmNsdWRlc1ZhcmlhYmxlID0gZGVmaW5lZFZhcmlhYmxlcy5pbmNsdWRlcyh2YXJpYWJsZSk7XG5cbiAgICAgIGlmICghZGVmaW5lZFZhcmlhYmxlc0luY2x1ZGVzVmFyaWFibGUpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCB1bmRlZmluZWRWYXJpYWJsZXMgPSB2YXJpYWJsZXMsIC8vL1xuICAgICAgICAgIHVuZGVmaW5lZFZhcmlhYmxlc0xlbmd0aCA9IHVuZGVmaW5lZFZhcmlhYmxlcy5sZW5ndGgsXG4gICAgICAgICAgZ3JvdW5kZWQgPSAodW5kZWZpbmVkVmFyaWFibGVzTGVuZ3RoIDw9IDEpO1xuXG4gICAgcmV0dXJuIGdyb3VuZGVkO1xuICB9XG5cbiAgaXNJbml0aWFsbHlHcm91bmRlZChjb250ZXh0KSB7XG4gICAgY29uc3QgdmFyaWFibGVzID0gdGhpcy5nZXRWYXJpYWJsZXMoY29udGV4dCksXG4gICAgICAgICAgdmFyaWFibGVzTGVuZ3RoID0gdmFyaWFibGVzLmxlbmd0aCxcbiAgICAgICAgICBpbml0aWFsbHlHcm91bmRlZCA9ICh2YXJpYWJsZXNMZW5ndGggPT09IDApO1xuXG4gICAgcmV0dXJuIGluaXRpYWxseUdyb3VuZGVkO1xuICB9XG5cbiAgaXNJbXBsaWNpdGx5R3JvdW5kZWQoZGVmaW5lZFZhcmlhYmxlcywgY29udGV4dCkge1xuICAgIGNvbnN0IGdyb3VuZGVkID0gdGhpcy5pc0dyb3VuZGVkKGRlZmluZWRWYXJpYWJsZXMsIGNvbnRleHQpLFxuICAgICAgICAgIGltcGxpY2l0bHlHcm91bmRlZCA9IGdyb3VuZGVkOyAgLy8vXG5cbiAgICByZXR1cm4gaW1wbGljaXRseUdyb3VuZGVkO1xuICB9XG5cbiAgdmVyaWZ5KGNvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gICAgbGV0IHZlcmlmaWVkO1xuXG4gICAgY29uc3QgdGVybVN0cmluZyA9IHRoaXMuc3RyaW5nOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtLi4uYCk7XG5cbiAgICB2ZXJpZmllZCA9IHZlcmlmeU1peGlucy5zb21lKCh2ZXJpZnlNaXhpbikgPT4ge1xuICAgICAgY29uc3QgdGVybSA9IHRoaXMsIC8vL1xuICAgICAgICAgICAgdmVyaWZpZWQgPSB2ZXJpZnlNaXhpbih0ZXJtLCBjb250ZXh0LCB2ZXJpZnlBaGVhZCk7XG5cbiAgICAgIGlmICh2ZXJpZmllZCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICh2ZXJpZmllZCkge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZmllZDtcbiAgfVxuXG4gIHZlcmlmeVR5cGUoZmlsZUNvbnRleHQpIHtcbiAgICBsZXQgdHlwZVZlcmlmaWVkO1xuXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gb2JqZWN0VHlwZSkge1xuICAgICAgdHlwZVZlcmlmaWVkID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdHlwZU5hbWUgPSB0aGlzLnR5cGUuZ2V0TmFtZSgpO1xuXG4gICAgICBmaWxlQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt0eXBlTmFtZX0nIHR5cGUuLi5gKTtcblxuICAgICAgY29uc3QgdHlwZSA9IGZpbGVDb250ZXh0LmZpbmRUeXBlQnlUeXBlTmFtZSh0eXBlTmFtZSk7XG5cbiAgICAgIGlmICh0eXBlID09PSBudWxsKSB7XG4gICAgICAgIGZpbGVDb250ZXh0LmRlYnVnKGBUaGUgJyR7dHlwZU5hbWV9JyB0eXBlIGlzIG1pc3NpbmcuYCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnR5cGUgPSB0eXBlOyAvLy9cblxuICAgICAgICB0eXBlVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZVZlcmlmaWVkKSB7XG4gICAgICAgIGZpbGVDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dHlwZU5hbWV9JyB0eXBlLmApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0eXBlVmVyaWZpZWQ7XG4gIH1cblxuICB2ZXJpZnlHaXZlblR5cGUodHlwZSwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkge1xuICAgIGxldCB2ZXJpZmllZEdpdmVuVHlwZTtcblxuICAgIGNvbnN0IHR5cGVOYW1lID0gdHlwZS5nZXROYW1lKCksXG4gICAgICAgICAgdGVybVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICBzcGVjaWZpY0NvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gZ2l2ZW4gdGhlICcke3R5cGVOYW1lfScgdHlwZS4uLmApO1xuXG4gICAgY29uc3QgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dCwgLy8vXG4gICAgICAgICAgdmVyaWZpZWQgPSB0aGlzLnZlcmlmeShjb250ZXh0LCAoKSA9PiB7XG4gICAgICAgICAgICBsZXQgdmVyaWZpZWRBaGVhZDtcblxuICAgICAgICAgICAgY29uc3QgdHlwZUVxdWFsVG9PclN1YlR5cGVPZkdpdmVuVHlwZVR5cGUgPSB0aGlzLnR5cGUuaXNFcXVhbFRvT3JTdWJUeXBlT2YodHlwZSk7XG5cbiAgICAgICAgICAgIGlmICh0eXBlRXF1YWxUb09yU3ViVHlwZU9mR2l2ZW5UeXBlVHlwZSkge1xuICAgICAgICAgICAgICB2ZXJpZmllZEFoZWFkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHZlcmlmaWVkQWhlYWQ7XG4gICAgICAgICAgfSk7XG5cbiAgICB2ZXJpZmllZEdpdmVuVHlwZSA9IHZlcmlmaWVkOyAvLy9cblxuICAgIGlmICh2ZXJpZmllZEdpdmVuVHlwZSkge1xuICAgICAgc3BlY2lmaWNDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gZ2l2ZW4gdGhlICcke3R5cGVOYW1lfScgdHlwZS5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmVyaWZpZWRHaXZlblR5cGU7XG4gIH1cblxuICB2ZXJpZnlXaGVuRGVjbGFyZWQoZmlsZUNvbnRleHQpIHtcbiAgICBsZXQgdmVyaWZpZWRXaGVuRGVjbGFyZWQ7XG5cbiAgICBjb25zdCB0ZXJtU3RyaW5nID0gdGhpcy5zdHJpbmc7ICAvLy9cblxuICAgIGZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIHdoZW4gZGVjbGFyZWQuLi5gKTtcblxuICAgIGNvbnN0IHRlcm1Ob2RlID0gdGhpcy5ub2RlLCAvLy9cbiAgICAgICAgICB0ZXJtVmVyaWZpZWRBc0NvbnN0cnVjdG9yID0gY29uc3RydWN0b3JWZXJpZmllci52ZXJpZnlUZXJtKHRlcm1Ob2RlLCBmaWxlQ29udGV4dCk7XG5cbiAgICBpZiAodGVybVZlcmlmaWVkQXNDb25zdHJ1Y3Rvcikge1xuICAgICAgY29uc3QgdHlwZVZlcmlmaWVkID0gdGhpcy52ZXJpZnlUeXBlKGZpbGVDb250ZXh0KTtcblxuICAgICAgdmVyaWZpZWRXaGVuRGVjbGFyZWQgPSB0eXBlVmVyaWZpZWQ7ICAvLy9cbiAgICB9XG5cbiAgICBpZiAodmVyaWZpZWRXaGVuRGVjbGFyZWQpIHtcbiAgICAgIGZpbGVDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gd2hlbiBkZWNsYXJlZC5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmVyaWZpZWRXaGVuRGVjbGFyZWQ7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgdHlwZUpTT04gPSB0eXBlVG9UeXBlSlNPTih0aGlzLnR5cGUpLFxuICAgICAgICAgIHN0cmluZyA9IHRoaXMuc3RyaW5nLFxuICAgICAgICAgIHR5cGUgPSB0eXBlSlNPTiwgIC8vL1xuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgc3RyaW5nXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlRlcm1cIjtcblxuICBzdGF0aWMgZnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpIHtcbiAgICBjb25zdCB7IHN0cmluZyB9ID0ganNvbixcbiAgICAgICAgICBjb250ZXh0ID0gZmlsZUNvbnRleHQsICAvLy9cbiAgICAgICAgICB0ZXJtU3RyaW5nID0gc3RyaW5nLCAgLy8vXG4gICAgICAgICAgdGVybU5vZGUgPSB0ZXJtTm9kZUZyb21UZXJtU3RyaW5nKHRlcm1TdHJpbmcsIGNvbnRleHQpLFxuICAgICAgICAgIG5vZGUgPSB0ZXJtTm9kZSwgIC8vL1xuICAgICAgICAgIHR5cGUgPSB0eXBlRnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgIHRlcm0gPSBuZXcgVGVybShzdHJpbmcsIG5vZGUsIHR5cGUpO1xuXG4gICAgcmV0dXJuIHRlcm07XG4gIH1cblxuICBzdGF0aWMgZnJvbVRlcm1Ob2RlKHRlcm1Ob2RlLCBjb250ZXh0KSB7XG4gICAgbGV0IHRlcm0gPSBudWxsO1xuXG4gICAgaWYgKHRlcm1Ob2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBub2RlID0gdGVybU5vZGUsICAvLy9cbiAgICAgICAgICAgIHN0cmluZyA9IGNvbnRleHQubm9kZUFzU3RyaW5nKG5vZGUpLFxuICAgICAgICAgICAgdHlwZSA9IG51bGw7XG5cbiAgICAgIHRlcm0gPSBuZXcgVGVybShzdHJpbmcsIG5vZGUsIHR5cGUpO1xuICAgIH1cblxuICAgIHJldHVybiB0ZXJtO1xuICB9XG5cbiAgc3RhdGljIGZyb21UZXJtTm9kZUFuZFR5cGUodGVybU5vZGUsIHR5cGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCBub2RlID0gdGVybU5vZGUsICAvLy9cbiAgICAgICAgICBzdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyhub2RlKSxcbiAgICAgICAgICB0ZXJtID0gbmV3IFRlcm0oc3RyaW5nLCBub2RlLCB0eXBlKTtcblxuICAgIHJldHVybiB0ZXJtO1xuICB9XG5cbiAgc3RhdGljIGZyb21EZWZpbmVkQXNzZXJ0aW9uTm9kZShkZWZpbmVkQXNzZXJ0aW9uTm9kZSwgY29udGV4dCkge1xuICAgIGxldCB0ZXJtID0gbnVsbDtcblxuICAgIGNvbnN0IHRlcm1WYXJpYWJsZU5vZGUgPSB0ZXJtVmFyaWFibGVOb2RlUXVlcnkoZGVmaW5lZEFzc2VydGlvbk5vZGUpO1xuXG4gICAgaWYgKHRlcm1WYXJpYWJsZU5vZGUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IG5vZGUgPSB0ZXJtVmFyaWFibGVOb2RlLCAgLy8vXG4gICAgICAgICAgICBzdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyhub2RlKSxcbiAgICAgICAgICAgIHR5cGUgPSBudWxsO1xuXG4gICAgICB0ZXJtID0gbmV3IFRlcm0oc3RyaW5nLCBub2RlLCB0eXBlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGVybTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tQ29udGFpbmVkQXNzZXJ0aW9uTm9kZShjb250YWluZWRBc3NlcnRpb25Ob2RlLCBjb250ZXh0KSB7XG4gICAgbGV0IHRlcm0gPSBudWxsO1xuXG4gICAgY29uc3QgdGVybVZhcmlhYmxlTm9kZSA9IHRlcm1WYXJpYWJsZU5vZGVRdWVyeShjb250YWluZWRBc3NlcnRpb25Ob2RlKTtcblxuICAgIGlmICh0ZXJtVmFyaWFibGVOb2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBub2RlID0gdGVybVZhcmlhYmxlTm9kZSwgIC8vL1xuICAgICAgICAgICAgc3RyaW5nID0gY29udGV4dC5ub2RlQXNTdHJpbmcobm9kZSksXG4gICAgICAgICAgICB0eXBlID0gbnVsbDtcblxuICAgICAgdGVybSA9IG5ldyBUZXJtKHN0cmluZywgbm9kZSwgdHlwZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRlcm07XG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbImZpbHRlciIsImFycmF5VXRpbGl0aWVzIiwiY29tcHJlc3MiLCJ2YXJpYWJsZU5vZGVzUXVlcnkiLCJub2Rlc1F1ZXJ5IiwidGVybVZhcmlhYmxlTm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5IiwiZG9tQXNzaWduZWQiLCJUZXJtIiwic3RyaW5nIiwibm9kZSIsInR5cGUiLCJnZXRTdHJpbmciLCJnZXROb2RlIiwiZ2V0VHlwZSIsInNldFR5cGUiLCJnZXRWYXJpYWJsZSIsImNvbnRleHQiLCJWYXJpYWJsZSIsImRvbSIsInRlcm1Ob2RlIiwidmFyaWFibGUiLCJmcm9tVGVybU5vZGUiLCJnZXRWYXJpYWJsZXMiLCJ2YXJpYWJsZU5vZGVzIiwidmFyaWFibGVzIiwibWFwIiwidmFyaWFibGVOb2RlIiwiZnJvbVZhcmlhYmxlTm9kZSIsInZhcmlhYmxlQSIsInZhcmlhYmxlQiIsInZhcmlhYmxlQUVxdWFsVG9WYXJpYWJsZUIiLCJpc0VxdWFsVG8iLCJtYXRjaFRlcm1Ob2RlIiwidGVybU5vZGVNYXRjaGVzIiwibWF0Y2giLCJ0ZXJtIiwiZXF1YWxUbyIsInRlcm1TdHJpbmciLCJ0ZXJtVHlwZSIsImlzR3JvdW5kZWQiLCJkZWZpbmVkVmFyaWFibGVzIiwiZGVmaW5lZFZhcmlhYmxlc0luY2x1ZGVzVmFyaWFibGUiLCJpbmNsdWRlcyIsInVuZGVmaW5lZFZhcmlhYmxlcyIsInVuZGVmaW5lZFZhcmlhYmxlc0xlbmd0aCIsImxlbmd0aCIsImdyb3VuZGVkIiwiaXNJbml0aWFsbHlHcm91bmRlZCIsInZhcmlhYmxlc0xlbmd0aCIsImluaXRpYWxseUdyb3VuZGVkIiwiaXNJbXBsaWNpdGx5R3JvdW5kZWQiLCJpbXBsaWNpdGx5R3JvdW5kZWQiLCJ2ZXJpZnkiLCJ2ZXJpZnlBaGVhZCIsInZlcmlmaWVkIiwidHJhY2UiLCJ2ZXJpZnlNaXhpbnMiLCJzb21lIiwidmVyaWZ5TWl4aW4iLCJkZWJ1ZyIsInZlcmlmeVR5cGUiLCJmaWxlQ29udGV4dCIsInR5cGVWZXJpZmllZCIsIm9iamVjdFR5cGUiLCJ0eXBlTmFtZSIsImdldE5hbWUiLCJmaW5kVHlwZUJ5VHlwZU5hbWUiLCJ2ZXJpZnlHaXZlblR5cGUiLCJnZW5lcmFsQ29udGV4dCIsInNwZWNpZmljQ29udGV4dCIsInZlcmlmaWVkR2l2ZW5UeXBlIiwidmVyaWZpZWRBaGVhZCIsInR5cGVFcXVhbFRvT3JTdWJUeXBlT2ZHaXZlblR5cGVUeXBlIiwiaXNFcXVhbFRvT3JTdWJUeXBlT2YiLCJ2ZXJpZnlXaGVuRGVjbGFyZWQiLCJ2ZXJpZmllZFdoZW5EZWNsYXJlZCIsInRlcm1WZXJpZmllZEFzQ29uc3RydWN0b3IiLCJjb25zdHJ1Y3RvclZlcmlmaWVyIiwidmVyaWZ5VGVybSIsInRvSlNPTiIsInR5cGVKU09OIiwidHlwZVRvVHlwZUpTT04iLCJqc29uIiwiZnJvbUpTT04iLCJ0ZXJtTm9kZUZyb21UZXJtU3RyaW5nIiwidHlwZUZyb21KU09OIiwibm9kZUFzU3RyaW5nIiwiZnJvbVRlcm1Ob2RlQW5kVHlwZSIsImZyb21EZWZpbmVkQXNzZXJ0aW9uTm9kZSIsImRlZmluZWRBc3NlcnRpb25Ob2RlIiwidGVybVZhcmlhYmxlTm9kZSIsImZyb21Db250YWluZWRBc3NlcnRpb25Ob2RlIiwiY29udGFpbmVkQXNzZXJ0aW9uTm9kZSIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQW1CQTs7O2VBQUE7Ozt5QkFqQitCOzJEQUVmOzZEQUNTO2tFQUNPO29CQUVMO3FCQUVXO29CQUNDO29CQUNNOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUU3QyxJQUFRQSxTQUFxQkMseUJBQWMsQ0FBbkNELFFBQVFFLFdBQWFELHlCQUFjLENBQTNCQztBQUVoQixJQUFNQyxxQkFBcUJDLElBQUFBLGlCQUFVLEVBQUMsZUFDaENDLHdCQUF3QkMsSUFBQUEsZ0JBQVMsRUFBQztJQUV4QyxXQUFlQyxJQUFBQSxnQkFBVyx5QkFBQzthQUFNQyxLQUNuQkMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLElBQUk7Z0NBRENIO1FBRTdCLElBQUksQ0FBQ0MsTUFBTSxHQUFHQTtRQUNkLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTs7OztZQUdkQyxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNILE1BQU07WUFDcEI7OztZQUVBSSxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNILElBQUk7WUFDbEI7OztZQUVBSSxLQUFBQTttQkFBQUEsU0FBQUE7Z0JBQ0UsT0FBTyxJQUFJLENBQUNILElBQUk7WUFDbEI7OztZQUVBSSxL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
|
|
350
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kb20vdGVybS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCBkb20gZnJvbSBcIi4uL2RvbVwiO1xuaW1wb3J0IExvY2FsQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9sb2NhbFwiO1xuaW1wb3J0IHZlcmlmeU1peGlucyBmcm9tIFwiLi4vbWl4aW5zL3Rlcm0vdmVyaWZ5XCI7XG5pbXBvcnQgY29uc3RydWN0b3JWZXJpZmllciBmcm9tIFwiLi4vdmVyaWZpZXIvY29uc3RydWN0b3JcIjtcblxuaW1wb3J0IHsgb2JqZWN0VHlwZSB9IGZyb20gXCIuL3R5cGVcIjtcbmltcG9ydCB7IGRvbUFzc2lnbmVkIH0gZnJvbSBcIi4uL2RvbVwiO1xuaW1wb3J0IHsgbm9kZVF1ZXJ5LCBub2Rlc1F1ZXJ5IH0gZnJvbSBcIi4uL3V0aWxpdGllcy9xdWVyeVwiXG5pbXBvcnQgeyB0ZXJtTm9kZUZyb21UZXJtU3RyaW5nIH0gZnJvbSBcIi4uL2NvbnRleHQvcGFydGlhbC90ZXJtXCI7XG5pbXBvcnQgeyB0eXBlRnJvbUpTT04sIHR5cGVUb1R5cGVKU09OIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9qc29uXCI7XG5cbmNvbnN0IHsgZmlsdGVyLCBjb21wcmVzcyB9ID0gYXJyYXlVdGlsaXRpZXM7XG5cbmNvbnN0IHZhcmlhYmxlTm9kZXNRdWVyeSA9IG5vZGVzUXVlcnkoXCIvL3ZhcmlhYmxlXCIpLFxuICAgICAgdGVybVZhcmlhYmxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiLyovdGVybVswXS92YXJpYWJsZSFcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGRvbUFzc2lnbmVkKGNsYXNzIFRlcm0ge1xuICBjb25zdHJ1Y3RvcihzdHJpbmcsIG5vZGUsIHR5cGUpIHtcbiAgICB0aGlzLnN0cmluZyA9IHN0cmluZztcbiAgICB0aGlzLm5vZGUgPSBub2RlO1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gIH1cblxuICBnZXRTdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RyaW5nO1xuICB9XG5cbiAgZ2V0Tm9kZSgpIHtcbiAgICByZXR1cm4gdGhpcy5ub2RlO1xuICB9XG5cbiAgZ2V0VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlO1xuICB9XG5cbiAgc2V0VHlwZSh0eXBlKSB7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgfVxuXG4gIGdldFZhcmlhYmxlKGNvbnRleHQpIHtcbiAgICBjb25zdCB7IFZhcmlhYmxlIH0gPSBkb20sXG4gICAgICAgICAgdGVybU5vZGUgPSB0aGlzLm5vZGUsIC8vL1xuICAgICAgICAgIHZhcmlhYmxlID0gVmFyaWFibGUuZnJvbVRlcm1Ob2RlKHRlcm1Ob2RlLCBjb250ZXh0KTtcblxuICAgIHJldHVybiB2YXJpYWJsZTtcbiAgfVxuXG4gIGdldFZhcmlhYmxlcyhjb250ZXh0KSB7XG4gICAgY29uc3QgdmFyaWFibGVOb2RlcyA9IHZhcmlhYmxlTm9kZXNRdWVyeSh0aGlzLm5vZGUpLFxuICAgICAgICAgIHZhcmlhYmxlcyA9IHZhcmlhYmxlTm9kZXMubWFwKCh2YXJpYWJsZU5vZGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgVmFyaWFibGUgfSA9IGRvbSxcbiAgICAgICAgICAgICAgICAgIHZhcmlhYmxlID0gVmFyaWFibGUuZnJvbVZhcmlhYmxlTm9kZSh2YXJpYWJsZU5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgICAgICByZXR1cm4gdmFyaWFibGU7XG4gICAgICAgICAgfSk7XG5cbiAgICBjb21wcmVzcyh2YXJpYWJsZXMsICh2YXJpYWJsZUEsIHZhcmlhYmxlQikgPT4ge1xuICAgICAgY29uc3QgdmFyaWFibGVBRXF1YWxUb1ZhcmlhYmxlQiA9IHZhcmlhYmxlQS5pc0VxdWFsVG8odmFyaWFibGVCKTtcblxuICAgICAgaWYgKHZhcmlhYmxlQUVxdWFsVG9WYXJpYWJsZUIpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdmFyaWFibGVzO1xuICB9XG5cbiAgbWF0Y2hUZXJtTm9kZSh0ZXJtTm9kZSkge1xuICAgIGNvbnN0IHRlcm1Ob2RlTWF0Y2hlcyA9IHRoaXMubm9kZS5tYXRjaCh0ZXJtTm9kZSk7XG5cbiAgICByZXR1cm4gdGVybU5vZGVNYXRjaGVzO1xuICB9XG5cbiAgaXNFcXVhbFRvKHRlcm0pIHtcbiAgICBsZXQgZXF1YWxUbyA9IGZhbHNlO1xuXG4gICAgY29uc3QgdGVybVN0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCk7XG5cbiAgICBpZiAodGVybVN0cmluZyA9PT0gdGhpcy5zdHJpbmcpIHtcbiAgICAgIGNvbnN0IHRlcm1UeXBlID0gdGVybS5nZXRUeXBlKCk7XG5cbiAgICAgIGlmICh0ZXJtVHlwZSA9PT0gdGhpcy50eXBlKSB7XG4gICAgICAgIGVxdWFsVG8gPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBlcXVhbFRvO1xuICB9XG5cbiAgaXNHcm91bmRlZChkZWZpbmVkVmFyaWFibGVzLCBjb250ZXh0KSB7XG4gICAgY29uc3QgdmFyaWFibGVzID0gdGhpcy5nZXRWYXJpYWJsZXMoY29udGV4dCk7XG5cbiAgICBmaWx0ZXIodmFyaWFibGVzLCAodmFyaWFibGUpID0+IHtcbiAgICAgIGNvbnN0IGRlZmluZWRWYXJpYWJsZXNJbmNsdWRlc1ZhcmlhYmxlID0gZGVmaW5lZFZhcmlhYmxlcy5pbmNsdWRlcyh2YXJpYWJsZSk7XG5cbiAgICAgIGlmICghZGVmaW5lZFZhcmlhYmxlc0luY2x1ZGVzVmFyaWFibGUpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCB1bmRlZmluZWRWYXJpYWJsZXMgPSB2YXJpYWJsZXMsIC8vL1xuICAgICAgICAgIHVuZGVmaW5lZFZhcmlhYmxlc0xlbmd0aCA9IHVuZGVmaW5lZFZhcmlhYmxlcy5sZW5ndGgsXG4gICAgICAgICAgZ3JvdW5kZWQgPSAodW5kZWZpbmVkVmFyaWFibGVzTGVuZ3RoIDw9IDEpO1xuXG4gICAgcmV0dXJuIGdyb3VuZGVkO1xuICB9XG5cbiAgaXNJbml0aWFsbHlHcm91bmRlZChjb250ZXh0KSB7XG4gICAgY29uc3QgdmFyaWFibGVzID0gdGhpcy5nZXRWYXJpYWJsZXMoY29udGV4dCksXG4gICAgICAgICAgdmFyaWFibGVzTGVuZ3RoID0gdmFyaWFibGVzLmxlbmd0aCxcbiAgICAgICAgICBpbml0aWFsbHlHcm91bmRlZCA9ICh2YXJpYWJsZXNMZW5ndGggPT09IDApO1xuXG4gICAgcmV0dXJuIGluaXRpYWxseUdyb3VuZGVkO1xuICB9XG5cbiAgaXNJbXBsaWNpdGx5R3JvdW5kZWQoZGVmaW5lZFZhcmlhYmxlcywgY29udGV4dCkge1xuICAgIGNvbnN0IGdyb3VuZGVkID0gdGhpcy5pc0dyb3VuZGVkKGRlZmluZWRWYXJpYWJsZXMsIGNvbnRleHQpLFxuICAgICAgICAgIGltcGxpY2l0bHlHcm91bmRlZCA9IGdyb3VuZGVkOyAgLy8vXG5cbiAgICByZXR1cm4gaW1wbGljaXRseUdyb3VuZGVkO1xuICB9XG5cbiAgdmVyaWZ5KGNvbnRleHQsIHZlcmlmeUFoZWFkKSB7XG4gICAgbGV0IHZlcmlmaWVkO1xuXG4gICAgY29uc3QgdGVybVN0cmluZyA9IHRoaXMuc3RyaW5nOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtLi4uYCk7XG5cbiAgICB2ZXJpZmllZCA9IHZlcmlmeU1peGlucy5zb21lKCh2ZXJpZnlNaXhpbikgPT4ge1xuICAgICAgY29uc3QgdGVybSA9IHRoaXMsIC8vL1xuICAgICAgICAgICAgdmVyaWZpZWQgPSB2ZXJpZnlNaXhpbih0ZXJtLCBjb250ZXh0LCB2ZXJpZnlBaGVhZCk7XG5cbiAgICAgIGlmICh2ZXJpZmllZCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICh2ZXJpZmllZCkge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtLmApO1xuICAgIH1cblxuICAgIHJldHVybiB2ZXJpZmllZDtcbiAgfVxuXG4gIHZlcmlmeVR5cGUoZmlsZUNvbnRleHQpIHtcbiAgICBsZXQgdHlwZVZlcmlmaWVkO1xuXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gb2JqZWN0VHlwZSkge1xuICAgICAgdHlwZVZlcmlmaWVkID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdHlwZU5hbWUgPSB0aGlzLnR5cGUuZ2V0TmFtZSgpO1xuXG4gICAgICBmaWxlQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHt0eXBlTmFtZX0nIHR5cGUuLi5gKTtcblxuICAgICAgY29uc3QgdHlwZSA9IGZpbGVDb250ZXh0LmZpbmRUeXBlQnlUeXBlTmFtZSh0eXBlTmFtZSk7XG5cbiAgICAgIGlmICh0eXBlID09PSBudWxsKSB7XG4gICAgICAgIGZpbGVDb250ZXh0LmRlYnVnKGBUaGUgJyR7dHlwZU5hbWV9JyB0eXBlIGlzIG1pc3NpbmcuYCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnR5cGUgPSB0eXBlOyAvLy9cblxuICAgICAgICB0eXBlVmVyaWZpZWQgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZVZlcmlmaWVkKSB7XG4gICAgICAgIGZpbGVDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dHlwZU5hbWV9JyB0eXBlLmApO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0eXBlVmVyaWZpZWQ7XG4gIH1cblxuICB2ZXJpZnlHaXZlblR5cGUodHlwZSwgZ2VuZXJhbENvbnRleHQsIHNwZWNpZmljQ29udGV4dCkge1xuICAgIGxldCB2ZXJpZmllZEdpdmVuVHlwZTtcblxuICAgIGNvbnN0IHR5cGVOYW1lID0gdHlwZS5nZXROYW1lKCksXG4gICAgICAgICAgdGVybVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICBzcGVjaWZpY0NvbnRleHQudHJhY2UoYFZlcmlmeWluZyB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gZ2l2ZW4gdGhlICcke3R5cGVOYW1lfScgdHlwZS4uLmApO1xuXG4gICAgY29uc3QgY29udGV4dCA9IHNwZWNpZmljQ29udGV4dCwgLy8vXG4gICAgICAgICAgdmVyaWZpZWQgPSB0aGlzLnZlcmlmeShjb250ZXh0LCAoKSA9PiB7XG4gICAgICAgICAgICBsZXQgdmVyaWZpZWRBaGVhZDtcblxuICAgICAgICAgICAgY29uc3QgdHlwZUVxdWFsVG9PclN1YlR5cGVPZkdpdmVuVHlwZVR5cGUgPSB0aGlzLnR5cGUuaXNFcXVhbFRvT3JTdWJUeXBlT2YodHlwZSk7XG5cbiAgICAgICAgICAgIGlmICh0eXBlRXF1YWxUb09yU3ViVHlwZU9mR2l2ZW5UeXBlVHlwZSkge1xuICAgICAgICAgICAgICB2ZXJpZmllZEFoZWFkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHZlcmlmaWVkQWhlYWQ7XG4gICAgICAgICAgfSk7XG5cbiAgICB2ZXJpZmllZEdpdmVuVHlwZSA9IHZlcmlmaWVkOyAvLy9cblxuICAgIGlmICh2ZXJpZmllZEdpdmVuVHlwZSkge1xuICAgICAgc3BlY2lmaWNDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gZ2l2ZW4gdGhlICcke3R5cGVOYW1lfScgdHlwZS5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmVyaWZpZWRHaXZlblR5cGU7XG4gIH1cblxuICB2ZXJpZnlXaGVuRGVjbGFyZWQoZmlsZUNvbnRleHQpIHtcbiAgICBsZXQgdmVyaWZpZWRXaGVuRGVjbGFyZWQ7XG5cbiAgICBjb25zdCB0ZXJtU3RyaW5nID0gdGhpcy5zdHJpbmc7ICAvLy9cblxuICAgIGZpbGVDb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIHdoZW4gZGVjbGFyZWQuLi5gKTtcblxuICAgIGNvbnN0IHRlcm1Ob2RlID0gdGhpcy5ub2RlLCAvLy9cbiAgICAgICAgICB0ZXJtVmVyaWZpZWRBc0NvbnN0cnVjdG9yID0gY29uc3RydWN0b3JWZXJpZmllci52ZXJpZnlUZXJtKHRlcm1Ob2RlLCBmaWxlQ29udGV4dCk7XG5cbiAgICBpZiAodGVybVZlcmlmaWVkQXNDb25zdHJ1Y3Rvcikge1xuICAgICAgY29uc3QgdHlwZVZlcmlmaWVkID0gdGhpcy52ZXJpZnlUeXBlKGZpbGVDb250ZXh0KTtcblxuICAgICAgdmVyaWZpZWRXaGVuRGVjbGFyZWQgPSB0eXBlVmVyaWZpZWQ7ICAvLy9cbiAgICB9XG5cbiAgICBpZiAodmVyaWZpZWRXaGVuRGVjbGFyZWQpIHtcbiAgICAgIGZpbGVDb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0gd2hlbiBkZWNsYXJlZC5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmVyaWZpZWRXaGVuRGVjbGFyZWQ7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgdHlwZUpTT04gPSB0eXBlVG9UeXBlSlNPTih0aGlzLnR5cGUpLFxuICAgICAgICAgIHN0cmluZyA9IHRoaXMuc3RyaW5nLFxuICAgICAgICAgIHR5cGUgPSB0eXBlSlNPTiwgIC8vL1xuICAgICAgICAgIGpzb24gPSB7XG4gICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgc3RyaW5nXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlRlcm1cIjtcblxuICBzdGF0aWMgZnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpIHtcbiAgICBjb25zdCB7IHN0cmluZyB9ID0ganNvbixcbiAgICAgICAgICBsb2NhbENvbnRleHQgPSBMb2NhbENvbnRleHQuZnJvbUZpbGVDb250ZXh0KGZpbGVDb250ZXh0KSxcbiAgICAgICAgICBjb250ZXh0ID0gbG9jYWxDb250ZXh0LCAgLy8vXG4gICAgICAgICAgdGVybVN0cmluZyA9IHN0cmluZywgIC8vL1xuICAgICAgICAgIHRlcm1Ob2RlID0gdGVybU5vZGVGcm9tVGVybVN0cmluZyh0ZXJtU3RyaW5nLCBjb250ZXh0KSxcbiAgICAgICAgICBub2RlID0gdGVybU5vZGUsICAvLy9cbiAgICAgICAgICB0eXBlID0gdHlwZUZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KSxcbiAgICAgICAgICB0ZXJtID0gbmV3IFRlcm0oc3RyaW5nLCBub2RlLCB0eXBlKTtcblxuICAgIHJldHVybiB0ZXJtO1xuICB9XG5cbiAgc3RhdGljIGZyb21UZXJtTm9kZSh0ZXJtTm9kZSwgY29udGV4dCkge1xuICAgIGxldCB0ZXJtID0gbnVsbDtcblxuICAgIGlmICh0ZXJtTm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgbm9kZSA9IHRlcm1Ob2RlLCAgLy8vXG4gICAgICAgICAgICBzdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyhub2RlKSxcbiAgICAgICAgICAgIHR5cGUgPSBudWxsO1xuXG4gICAgICB0ZXJtID0gbmV3IFRlcm0oc3RyaW5nLCBub2RlLCB0eXBlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGVybTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVGVybU5vZGVBbmRUeXBlKHRlcm1Ob2RlLCB0eXBlLCBjb250ZXh0KSB7XG4gICAgY29uc3Qgbm9kZSA9IHRlcm1Ob2RlLCAgLy8vXG4gICAgICAgICAgc3RyaW5nID0gY29udGV4dC5ub2RlQXNTdHJpbmcobm9kZSksXG4gICAgICAgICAgdGVybSA9IG5ldyBUZXJtKHN0cmluZywgbm9kZSwgdHlwZSk7XG5cbiAgICByZXR1cm4gdGVybTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tRGVmaW5lZEFzc2VydGlvbk5vZGUoZGVmaW5lZEFzc2VydGlvbk5vZGUsIGNvbnRleHQpIHtcbiAgICBsZXQgdGVybSA9IG51bGw7XG5cbiAgICBjb25zdCB0ZXJtVmFyaWFibGVOb2RlID0gdGVybVZhcmlhYmxlTm9kZVF1ZXJ5KGRlZmluZWRBc3NlcnRpb25Ob2RlKTtcblxuICAgIGlmICh0ZXJtVmFyaWFibGVOb2RlICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBub2RlID0gdGVybVZhcmlhYmxlTm9kZSwgIC8vL1xuICAgICAgICAgICAgc3RyaW5nID0gY29udGV4dC5ub2RlQXNTdHJpbmcobm9kZSksXG4gICAgICAgICAgICB0eXBlID0gbnVsbDtcblxuICAgICAgdGVybSA9IG5ldyBUZXJtKHN0cmluZywgbm9kZSwgdHlwZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRlcm07XG4gIH1cblxuICBzdGF0aWMgZnJvbUNvbnRhaW5lZEFzc2VydGlvbk5vZGUoY29udGFpbmVkQXNzZXJ0aW9uTm9kZSwgY29udGV4dCkge1xuICAgIGxldCB0ZXJtID0gbnVsbDtcblxuICAgIGNvbnN0IHRlcm1WYXJpYWJsZU5vZGUgPSB0ZXJtVmFyaWFibGVOb2RlUXVlcnkoY29udGFpbmVkQXNzZXJ0aW9uTm9kZSk7XG5cbiAgICBpZiAodGVybVZhcmlhYmxlTm9kZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgbm9kZSA9IHRlcm1WYXJpYWJsZU5vZGUsICAvLy9cbiAgICAgICAgICAgIHN0cmluZyA9IGNvbnRleHQubm9kZUFzU3RyaW5nKG5vZGUpLFxuICAgICAgICAgICAgdHlwZSA9IG51bGw7XG5cbiAgICAgIHRlcm0gPSBuZXcgVGVybShzdHJpbmcsIG5vZGUsIHR5cGUpO1xuICAgIH1cblxuICAgIHJldHVybiB0ZXJtO1xuICB9XG59KTtcbiJdLCJuYW1lcyI6WyJmaWx0ZXIiLCJhcnJheVV0aWxpdGllcyIsImNvbXByZXNzIiwidmFyaWFibGVOb2Rlc1F1ZXJ5Iiwibm9kZXNRdWVyeSIsInRlcm1WYXJpYWJsZU5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsImRvbUFzc2lnbmVkIiwiVGVybSIsInN0cmluZyIsIm5vZGUiLCJ0eXBlIiwiZ2V0U3RyaW5nIiwiZ2V0Tm9kZSIsImdldFR5cGUiLCJzZXRUeXBlIiwiZ2V0VmFyaWFibGUiLCJjb250ZXh0IiwiVmFyaWFibGUiLCJkb20iLCJ0ZXJtTm9kZSIsInZhcmlhYmxlIiwiZnJvbVRlcm1Ob2RlIiwiZ2V0VmFyaWFibGVzIiwidmFyaWFibGVOb2RlcyIsInZhcmlhYmxlcyIsIm1hcCIsInZhcmlhYmxlTm9kZSIsImZyb21WYXJpYWJsZU5vZGUiLCJ2YXJpYWJsZUEiLCJ2YXJpYWJsZUIiLCJ2YXJpYWJsZUFFcXVhbFRvVmFyaWFibGVCIiwiaXNFcXVhbFRvIiwibWF0Y2hUZXJtTm9kZSIsInRlcm1Ob2RlTWF0Y2hlcyIsIm1hdGNoIiwidGVybSIsImVxdWFsVG8iLCJ0ZXJtU3RyaW5nIiwidGVybVR5cGUiLCJpc0dyb3VuZGVkIiwiZGVmaW5lZFZhcmlhYmxlcyIsImRlZmluZWRWYXJpYWJsZXNJbmNsdWRlc1ZhcmlhYmxlIiwiaW5jbHVkZXMiLCJ1bmRlZmluZWRWYXJpYWJsZXMiLCJ1bmRlZmluZWRWYXJpYWJsZXNMZW5ndGgiLCJsZW5ndGgiLCJncm91bmRlZCIsImlzSW5pdGlhbGx5R3JvdW5kZWQiLCJ2YXJpYWJsZXNMZW5ndGgiLCJpbml0aWFsbHlHcm91bmRlZCIsImlzSW1wbGljaXRseUdyb3VuZGVkIiwiaW1wbGljaXRseUdyb3VuZGVkIiwidmVyaWZ5IiwidmVyaWZ5QWhlYWQiLCJ2ZXJpZmllZCIsInRyYWNlIiwidmVyaWZ5TWl4aW5zIiwic29tZSIsInZlcmlmeU1peGluIiwiZGVidWciLCJ2ZXJpZnlUeXBlIiwiZmlsZUNvbnRleHQiLCJ0eXBlVmVyaWZpZWQiLCJvYmplY3RUeXBlIiwidHlwZU5hbWUiLCJnZXROYW1lIiwiZmluZFR5cGVCeVR5cGVOYW1lIiwidmVyaWZ5R2l2ZW5UeXBlIiwiZ2VuZXJhbENvbnRleHQiLCJzcGVjaWZpY0NvbnRleHQiLCJ2ZXJpZmllZEdpdmVuVHlwZSIsInZlcmlmaWVkQWhlYWQiLCJ0eXBlRXF1YWxUb09yU3ViVHlwZU9mR2l2ZW5UeXBlVHlwZSIsImlzRXF1YWxUb09yU3ViVHlwZU9mIiwidmVyaWZ5V2hlbkRlY2xhcmVkIiwidmVyaWZpZWRXaGVuRGVjbGFyZWQiLCJ0ZXJtVmVyaWZpZWRBc0NvbnN0cnVjdG9yIiwiY29uc3RydWN0b3JWZXJpZmllciIsInZlcmlmeVRlcm0iLCJ0b0pTT04iLCJ0eXBlSlNPTiIsInR5cGVUb1R5cGVKU09OIiwianNvbiIsImZyb21KU09OIiwibG9jYWxDb250ZXh0IiwiTG9jYWxDb250ZXh0IiwiZnJvbUZpbGVDb250ZXh0IiwidGVybU5vZGVGcm9tVGVybVN0cmluZyIsInR5cGVGcm9tSlNPTiIsIm5vZGVBc1N0cmluZyIsImZyb21UZXJtTm9kZUFuZFR5cGUiLCJmcm9tRGVmaW5lZEFzc2VydGlvbk5vZGUiLCJkZWZpbmVkQXNzZXJ0aW9uTm9kZSIsInRlcm1WYXJpYWJsZU5vZGUiLCJmcm9tQ29udGFpbmVkQXNzZXJ0aW9uTm9kZSIsImNvbnRhaW5lZEFzc2VydGlvbk5vZGUiLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFvQkE7OztlQUFBOzs7eUJBbEIrQjsyREFFZjs0REFDUzs2REFDQTtrRUFDTztvQkFFTDtxQkFFVztvQkFDQztvQkFDTTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFN0MsSUFBUUEsU0FBcUJDLHlCQUFjLENBQW5DRCxRQUFRRSxXQUFhRCx5QkFBYyxDQUEzQkM7QUFFaEIsSUFBTUMscUJBQXFCQyxJQUFBQSxpQkFBVSxFQUFDLGVBQ2hDQyx3QkFBd0JDLElBQUFBLGdCQUFTLEVBQUM7SUFFeEMsV0FBZUMsSUFBQUEsZ0JBQVcseUJBQUM7YUFBTUMsS0FDbkJDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxJQUFJO2dDQURDSDtRQUU3QixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLElBQUksR0FBR0E7Ozs7WUFHZEMsS0FBQUE7bUJB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
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "occam-verify-cli",
|
|
3
3
|
"author": "James Smith",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.1193",
|
|
5
5
|
"license": "MIT, Anti-996",
|
|
6
6
|
"homepage": "https://github.com/djalbat/occam-verify-cli",
|
|
7
7
|
"description": "Occam's Verifier",
|
|
@@ -12,10 +12,10 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"argumentative": "^2.0.32",
|
|
14
14
|
"necessary": "^14.2.1",
|
|
15
|
-
"occam-custom-grammars": "^5.0.
|
|
16
|
-
"occam-entities": "^1.0.
|
|
17
|
-
"occam-file-system": "^6.0.
|
|
18
|
-
"occam-furtle": "^1.0.
|
|
15
|
+
"occam-custom-grammars": "^5.0.981",
|
|
16
|
+
"occam-entities": "^1.0.235",
|
|
17
|
+
"occam-file-system": "^6.0.263",
|
|
18
|
+
"occam-furtle": "^1.0.40",
|
|
19
19
|
"occam-grammar-utilities": "^8.0.239",
|
|
20
20
|
"occam-lexers": "^23.0.11",
|
|
21
21
|
"occam-parsers": "^23.0.21",
|
package/src/combinator.js
CHANGED
|
@@ -85,7 +85,8 @@ export default class Combinator {
|
|
|
85
85
|
const { Statement } = dom,
|
|
86
86
|
statementNode = statementNodeQuery(combinatorDeclarationNode),
|
|
87
87
|
localContext = LocalContext.fromFileContext(fileContext),
|
|
88
|
-
|
|
88
|
+
context = localContext, ///
|
|
89
|
+
statement = Statement.fromStatementNode(statementNode, context),
|
|
89
90
|
combinator = new Combinator(statement);
|
|
90
91
|
|
|
91
92
|
return combinator;
|
package/src/context/file.js
CHANGED
|
@@ -468,6 +468,20 @@ export default class FileContext {
|
|
|
468
468
|
return theorem;
|
|
469
469
|
}
|
|
470
470
|
|
|
471
|
+
findProcedureByReference(reference) {
|
|
472
|
+
const procedures = this.getProcedures(),
|
|
473
|
+
metavariableName = reference.getMetavariableName(),
|
|
474
|
+
procedure = procedures.find((procedure) => {
|
|
475
|
+
const metavariableNameMatches = procedure.matchMetavariableName(metavariableName);
|
|
476
|
+
|
|
477
|
+
if (metavariableNameMatches) {
|
|
478
|
+
return true;
|
|
479
|
+
}
|
|
480
|
+
}) || null;
|
|
481
|
+
|
|
482
|
+
return procedure;
|
|
483
|
+
}
|
|
484
|
+
|
|
471
485
|
findConjectureByReference(reference) {
|
|
472
486
|
const conjectures = this.getConjectures(),
|
|
473
487
|
metavariableName = reference.getMetavariableName(),
|
package/src/dom/frame.js
CHANGED
|
@@ -8,10 +8,11 @@ import { domAssigned } from "../dom";
|
|
|
8
8
|
import { FRAME_META_TYPE_NAME } from "../metaTypeNames";
|
|
9
9
|
import { nodeQuery, nodesQuery } from "../utilities/query";
|
|
10
10
|
|
|
11
|
-
const
|
|
12
|
-
declarationNodesQuery = nodesQuery("/frame/declaration"),
|
|
11
|
+
const declarationNodesQuery = nodesQuery("/frame/declaration"),
|
|
13
12
|
metavariableNodeQuery = nodeQuery("/frame/metavariable!"),
|
|
14
|
-
metavariableNodesQuery = nodesQuery("/frame/metavariable")
|
|
13
|
+
metavariableNodesQuery = nodesQuery("/frame/metavariable"),
|
|
14
|
+
definedAssertionFrameNodeQuery = nodeQuery("/definedAssertion/frame"),
|
|
15
|
+
containedAssertionFrameNodeQuery = nodeQuery("/containedAssertion/frame");
|
|
15
16
|
|
|
16
17
|
const { first } = arrayUtilities;
|
|
17
18
|
|
|
@@ -298,23 +299,14 @@ export default domAssigned(class Frame {
|
|
|
298
299
|
static fromDefinedAssertionNode(definedAssertionNode, context) {
|
|
299
300
|
let frame = null;
|
|
300
301
|
|
|
301
|
-
const
|
|
302
|
+
const definedAssertionFrameNode = definedAssertionFrameNodeQuery(definedAssertionNode);
|
|
302
303
|
|
|
303
|
-
if (
|
|
304
|
-
const
|
|
304
|
+
if (definedAssertionFrameNode !== null) {
|
|
305
|
+
const frameNode = definedAssertionFrameNode, ///
|
|
306
|
+
metavariableNode = metavariableNodeQuery(frameNode);
|
|
305
307
|
|
|
306
308
|
if (metavariableNode !== null) {
|
|
307
|
-
|
|
308
|
-
metavariable = Metavariable.fromMetavariableNode(metavariableNode, context),
|
|
309
|
-
declarations = [],
|
|
310
|
-
metavariables = [
|
|
311
|
-
metavariable
|
|
312
|
-
],
|
|
313
|
-
node = frameNode, ///
|
|
314
|
-
string = context.nodeAsString(node),
|
|
315
|
-
tokens = context.nodeAsTokens(node);
|
|
316
|
-
|
|
317
|
-
frame = new Frame(string, node, tokens, declarations, metavariables);
|
|
309
|
+
frameFromFrameNodeAndMetavariableNode(frameNode, metavariableNode, context)
|
|
318
310
|
}
|
|
319
311
|
}
|
|
320
312
|
|
|
@@ -324,23 +316,14 @@ export default domAssigned(class Frame {
|
|
|
324
316
|
static fromContainedAssertionNode(containedAssertionNode, context) {
|
|
325
317
|
let frame = null;
|
|
326
318
|
|
|
327
|
-
const
|
|
319
|
+
const containedAssertionFrameNode = containedAssertionFrameNodeQuery(containedAssertionNode);
|
|
328
320
|
|
|
329
|
-
if (
|
|
330
|
-
const
|
|
321
|
+
if (containedAssertionFrameNode !== null) {
|
|
322
|
+
const frameNode = containedAssertionFrameNode, ///
|
|
323
|
+
metavariableNode = metavariableNodeQuery(frameNode);
|
|
331
324
|
|
|
332
325
|
if (metavariableNode !== null) {
|
|
333
|
-
|
|
334
|
-
metavariable = Metavariable.fromMetavariableNode(metavariableNode, context),
|
|
335
|
-
declarations = [],
|
|
336
|
-
metavariables = [
|
|
337
|
-
metavariable
|
|
338
|
-
],
|
|
339
|
-
node = frameNode, ///
|
|
340
|
-
string = context.nodeAsString(node),
|
|
341
|
-
tokens = context.nodeAsTokens(node);
|
|
342
|
-
|
|
343
|
-
frame = new Frame(string, node, tokens, declarations, metavariables);
|
|
326
|
+
frame = frameFromFrameNodeAndMetavariableNode(frameNode, metavariableNode, context);
|
|
344
327
|
}
|
|
345
328
|
}
|
|
346
329
|
|
|
@@ -348,6 +331,21 @@ export default domAssigned(class Frame {
|
|
|
348
331
|
}
|
|
349
332
|
});
|
|
350
333
|
|
|
334
|
+
function frameFromFrameNodeAndMetavariableNode(frameNode, metavariableNode, context) {
|
|
335
|
+
const { Frame, Metavariable } = dom,
|
|
336
|
+
metavariable = Metavariable.fromMetavariableNode(metavariableNode, context),
|
|
337
|
+
declarations = [],
|
|
338
|
+
metavariables = [
|
|
339
|
+
metavariable
|
|
340
|
+
],
|
|
341
|
+
node = frameNode, ///
|
|
342
|
+
string = context.nodeAsString(node),
|
|
343
|
+
tokens = context.nodeAsTokens(node),
|
|
344
|
+
frame = new Frame(string, node, tokens, declarations, metavariables);
|
|
345
|
+
|
|
346
|
+
return frame;
|
|
347
|
+
}
|
|
348
|
+
|
|
351
349
|
function declarationsFromFrameNode(frameNode, context) {
|
|
352
350
|
const { Declaration } = dom,
|
|
353
351
|
declarationNodes = declarationNodesQuery(frameNode),
|
package/src/dom/parameter.js
CHANGED
|
@@ -1,26 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
4
|
-
|
|
3
|
+
import { nodeQuery } from "../utilities/query";
|
|
5
4
|
import { domAssigned } from "../dom";
|
|
6
5
|
|
|
6
|
+
const nameTerminalNodeQuery = nodeQuery("/parameter/@name");
|
|
7
|
+
|
|
7
8
|
export default domAssigned(class Parameter {
|
|
8
|
-
constructor(
|
|
9
|
-
this.
|
|
10
|
-
this.frame = frame;
|
|
11
|
-
this.statement = statement;
|
|
9
|
+
constructor(name) {
|
|
10
|
+
this.name = name;
|
|
12
11
|
}
|
|
13
12
|
|
|
14
|
-
|
|
15
|
-
return this.
|
|
13
|
+
getName() {
|
|
14
|
+
return this.name;
|
|
16
15
|
}
|
|
17
16
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
17
|
+
getString() {
|
|
18
|
+
const string = this.name; ///
|
|
21
19
|
|
|
22
|
-
|
|
23
|
-
return this.statement;
|
|
20
|
+
return string;
|
|
24
21
|
}
|
|
25
22
|
|
|
26
23
|
verify(assignments, stated, context) {
|
|
@@ -42,16 +39,10 @@ export default domAssigned(class Parameter {
|
|
|
42
39
|
static name = "Parameter";
|
|
43
40
|
|
|
44
41
|
static fromParameterNode(parameterNode, context) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
term = Term.fromParamterNode(parameterNode, context),
|
|
50
|
-
frame = Frame.fromParameterNode(parameterNode, context),
|
|
51
|
-
statement = Statement.fromParamterNode(parameterNode, context);
|
|
52
|
-
|
|
53
|
-
parameter = new Parameter(term, frame, statement);
|
|
54
|
-
}
|
|
42
|
+
const nameTerminalNode = nameTerminalNodeQuery(parameterNode),
|
|
43
|
+
nameTerminalNodeContent = nameTerminalNode.getContent(),
|
|
44
|
+
name = nameTerminalNodeContent, ///
|
|
45
|
+
parameter = new Parameter(name);
|
|
55
46
|
|
|
56
47
|
return parameter;
|
|
57
48
|
}
|
package/src/dom/procedureCall.js
CHANGED
|
@@ -5,15 +5,20 @@ import dom from "../dom";
|
|
|
5
5
|
import { domAssigned } from "../dom";
|
|
6
6
|
import { nodeQuery, nodesQuery } from "../utilities/query";
|
|
7
7
|
|
|
8
|
-
const parameterNodesQuery = nodesQuery("/procedureCall/
|
|
8
|
+
const parameterNodesQuery = nodesQuery("/procedureCall/parameter"),
|
|
9
9
|
procedureCallNodeQuery = nodeQuery("/statement/procedureCall");
|
|
10
10
|
|
|
11
11
|
export default domAssigned(class ProcedureCall {
|
|
12
|
-
constructor(reference, parameters) {
|
|
12
|
+
constructor(string, reference, parameters) {
|
|
13
|
+
this.string = string;
|
|
13
14
|
this.reference = reference;
|
|
14
15
|
this.parameters = parameters;
|
|
15
16
|
}
|
|
16
17
|
|
|
18
|
+
getString() {
|
|
19
|
+
return this.string;
|
|
20
|
+
}
|
|
21
|
+
|
|
17
22
|
getReference() {
|
|
18
23
|
return this.reference;
|
|
19
24
|
}
|
|
@@ -29,7 +34,7 @@ export default domAssigned(class ProcedureCall {
|
|
|
29
34
|
|
|
30
35
|
context.trace(`Verifying the '${procedureCallString}' procedure call...`);
|
|
31
36
|
|
|
32
|
-
|
|
37
|
+
const procedure = context.findProcedure
|
|
33
38
|
|
|
34
39
|
if (verified) {
|
|
35
40
|
context.debug(`...verified the '${procedureCallString}' procedure call.`);
|
|
@@ -46,9 +51,12 @@ export default domAssigned(class ProcedureCall {
|
|
|
46
51
|
const procedureCallNode = procedureCallNodeQuery(statementNode);
|
|
47
52
|
|
|
48
53
|
if (procedureCallNode !== null) {
|
|
49
|
-
const
|
|
54
|
+
const { Reference } = dom,
|
|
55
|
+
parameters = parametersFromProcedureCallNode(procedureCallNode, context),
|
|
56
|
+
reference = Reference.fromProcedureCallNode(procedureCallNode, context),
|
|
57
|
+
string = stringFromReferenceAndParameters(reference, parameters);
|
|
50
58
|
|
|
51
|
-
procedureCall = new ProcedureCall(parameters);
|
|
59
|
+
procedureCall = new ProcedureCall(string, reference, parameters);
|
|
52
60
|
}
|
|
53
61
|
|
|
54
62
|
return procedureCall;
|
|
@@ -66,3 +74,19 @@ function parametersFromProcedureCallNode(procedureCallNode, context) {
|
|
|
66
74
|
|
|
67
75
|
return parameters;
|
|
68
76
|
}
|
|
77
|
+
|
|
78
|
+
function stringFromReferenceAndParameters(reference, parameters) {
|
|
79
|
+
const referenceString = reference.getString(),
|
|
80
|
+
parametersString = parameters.reduce((parametersString, parameter) => {
|
|
81
|
+
const parameterString = parameter.getString();
|
|
82
|
+
|
|
83
|
+
parametersString = (parametersString === null) ?
|
|
84
|
+
parameterString : ///
|
|
85
|
+
`${parametersString}, ${parameterString}`;
|
|
86
|
+
|
|
87
|
+
return parametersString;
|
|
88
|
+
}, null),
|
|
89
|
+
string = `${referenceString}(${parametersString})`;
|
|
90
|
+
|
|
91
|
+
return string;
|
|
92
|
+
}
|
package/src/dom/reference.js
CHANGED
|
@@ -10,7 +10,8 @@ import { unifyLabelWithReference } from "../utilities/unification";
|
|
|
10
10
|
import { metavariableFromJSON, metavariableToMetavariableJSON } from "../utilities/json";
|
|
11
11
|
|
|
12
12
|
const proofStepReferenceNodeQuery = nodeQuery("/proofStep/reference"),
|
|
13
|
-
declarationReferenceNodeQuery = nodeQuery("/declaration/reference")
|
|
13
|
+
declarationReferenceNodeQuery = nodeQuery("/declaration/reference"),
|
|
14
|
+
procedureCallReferenceNodeQuery = nodeQuery("/procedureCall/reference");
|
|
14
15
|
|
|
15
16
|
export default domAssigned(class Reference {
|
|
16
17
|
constructor(metavariable) {
|
|
@@ -165,4 +166,22 @@ export default domAssigned(class Reference {
|
|
|
165
166
|
|
|
166
167
|
return reference;
|
|
167
168
|
}
|
|
169
|
+
|
|
170
|
+
static fromProcedureCallNode(procedureCallNode, fileContext) {
|
|
171
|
+
let reference = null;
|
|
172
|
+
|
|
173
|
+
const procedureCallReferenceNode = procedureCallReferenceNodeQuery(procedureCallNode);
|
|
174
|
+
|
|
175
|
+
if (procedureCallReferenceNode !== null) {
|
|
176
|
+
const { Metavariable } = dom,
|
|
177
|
+
referenceNode = procedureCallReferenceNode, ///
|
|
178
|
+
localContext = LocalContext.fromFileContext(fileContext),
|
|
179
|
+
context = localContext, ///
|
|
180
|
+
metavariable = Metavariable.fromReferenceNode(referenceNode, context);
|
|
181
|
+
|
|
182
|
+
reference = new Reference(metavariable);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
return reference;
|
|
186
|
+
}
|
|
168
187
|
});
|
package/src/dom/statement.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import { arrayUtilities } from "necessary";
|
|
4
4
|
|
|
5
5
|
import dom from "../dom";
|
|
6
|
+
import LocalContext from "../context/local";
|
|
6
7
|
import verifyMixins from "../mixins/statement/verify";
|
|
7
8
|
import combinatorVerifier from "../verifier/combinator";
|
|
8
9
|
import StatementPartialContext from "../context/partial/statement";
|
|
@@ -15,9 +16,14 @@ import { definedAssertionFromStatement, subproofAssertionFromStatement, containe
|
|
|
15
16
|
|
|
16
17
|
const { match, backwardsSome } = arrayUtilities;
|
|
17
18
|
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
const statementTermNodesQuery = nodesQuery("/statement//term"),
|
|
20
|
+
statementFrameNodesQuery = nodesQuery("/statement//frame"),
|
|
21
|
+
premiseStatementNodeQuery = nodeQuery("/premise/statement"),
|
|
22
|
+
proofStepStatementNodeQuery = nodeQuery("/proofStep/statement"),
|
|
23
|
+
conclusionStatementNodeQuery = nodeQuery("/conclusion/statement"),
|
|
24
|
+
consequentStatementNodeQuery = nodeQuery("/consequent/statement"),
|
|
25
|
+
suppositionStatementNodeQuery = nodeQuery("/supposition/statement"),
|
|
26
|
+
containedAssertionStatementNodeQuery = nodeQuery("/containedAssertion/statement");
|
|
21
27
|
|
|
22
28
|
export default domAssigned(class Statement {
|
|
23
29
|
constructor(string, node, tokens) {
|
|
@@ -294,78 +300,104 @@ export default domAssigned(class Statement {
|
|
|
294
300
|
}
|
|
295
301
|
|
|
296
302
|
static fromPremiseNode(premiseNode, fileContext) {
|
|
297
|
-
|
|
298
|
-
statement = statementFromNode(node, fileContext);
|
|
303
|
+
let statement = null;
|
|
299
304
|
|
|
300
|
-
|
|
301
|
-
}
|
|
305
|
+
const premiseStatementNode = premiseStatementNodeQuery(premiseNode);
|
|
302
306
|
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
307
|
+
if (premiseStatementNode !== null) {
|
|
308
|
+
const statementNode = premiseStatementNode, ///
|
|
309
|
+
localContext = LocalContext.fromFileContext(fileContext),
|
|
310
|
+
context = localContext; ///
|
|
311
|
+
|
|
312
|
+
statement = statementFromStatementNode(statementNode, context);
|
|
313
|
+
}
|
|
306
314
|
|
|
307
315
|
return statement;
|
|
308
316
|
}
|
|
309
317
|
|
|
310
|
-
static
|
|
318
|
+
static fromProofStepNode(proofStepNode, fileContext) {
|
|
311
319
|
let statement = null;
|
|
312
320
|
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
321
|
+
const proofStepStatementNode = proofStepStatementNodeQuery(proofStepNode);
|
|
322
|
+
|
|
323
|
+
if (proofStepStatementNode !== null) {
|
|
324
|
+
const statementNode = proofStepStatementNode; ///
|
|
317
325
|
|
|
318
|
-
statement =
|
|
326
|
+
statement = statementFromStatementNode(statementNode, fileContext);
|
|
319
327
|
}
|
|
320
328
|
|
|
321
329
|
return statement;
|
|
322
330
|
}
|
|
323
331
|
|
|
332
|
+
static fromStatementNode(statementNode, context) {
|
|
333
|
+
const statement = statementFromStatementNode(statementNode, context);
|
|
334
|
+
|
|
335
|
+
return statement;
|
|
336
|
+
}
|
|
337
|
+
|
|
324
338
|
static fromConclusionNode(conclusionNode, fileContext) {
|
|
325
|
-
|
|
326
|
-
|
|
339
|
+
let statement = null;
|
|
340
|
+
|
|
341
|
+
const conclusionStatementNode = conclusionStatementNodeQuery(conclusionNode);
|
|
342
|
+
|
|
343
|
+
if (conclusionStatementNode !== null) {
|
|
344
|
+
const statementNode = conclusionStatementNode, ///
|
|
345
|
+
localContext = LocalContext.fromFileContext(fileContext),
|
|
346
|
+
context = localContext; ///
|
|
347
|
+
|
|
348
|
+
statement = statementFromStatementNode(statementNode, context);
|
|
349
|
+
}
|
|
327
350
|
|
|
328
351
|
return statement;
|
|
329
352
|
}
|
|
330
353
|
|
|
331
354
|
static fromConsequentNode(consequentNode, fileContext) {
|
|
332
|
-
|
|
333
|
-
|
|
355
|
+
let statement = null;
|
|
356
|
+
|
|
357
|
+
const consequentStatementNode = consequentStatementNodeQuery(consequentNode);
|
|
358
|
+
|
|
359
|
+
if (consequentStatementNode !== null) {
|
|
360
|
+
const statementNode = consequentStatementNode, ///
|
|
361
|
+
localContext = LocalContext.fromFileContext(fileContext),
|
|
362
|
+
context = localContext; ///
|
|
363
|
+
|
|
364
|
+
statement = statementFromStatementNode(statementNode, context);
|
|
365
|
+
}
|
|
334
366
|
|
|
335
367
|
return statement;
|
|
336
368
|
}
|
|
337
369
|
|
|
338
370
|
static fromSuppositionNode(suppositionNode, fileContext) {
|
|
339
|
-
|
|
340
|
-
|
|
371
|
+
let statement = null;
|
|
372
|
+
|
|
373
|
+
const suppositionStatementNode = suppositionStatementNodeQuery(suppositionNode);
|
|
374
|
+
|
|
375
|
+
if (suppositionStatementNode !== null) {
|
|
376
|
+
const statementNode = suppositionStatementNode, ///
|
|
377
|
+
localContext = LocalContext.fromFileContext(fileContext),
|
|
378
|
+
context = localContext; ///
|
|
379
|
+
|
|
380
|
+
statement = statementFromStatementNode(statementNode, context);
|
|
381
|
+
}
|
|
341
382
|
|
|
342
383
|
return statement;
|
|
343
384
|
}
|
|
344
385
|
|
|
345
386
|
static fromContainedAssertionNode(containedAssertionNode, context) {
|
|
346
|
-
const
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
string = context.tokensAsString(tokens),
|
|
350
|
-
statement = new Statement(string, node, tokens);
|
|
387
|
+
const containedAssertionStatementNode = containedAssertionStatementNodeQuery(containedAssertionNode),
|
|
388
|
+
statementNode = containedAssertionStatementNode, ///
|
|
389
|
+
statement = statementFromStatementNode(statementNode, context);
|
|
351
390
|
|
|
352
391
|
return statement;
|
|
353
392
|
}
|
|
354
393
|
});
|
|
355
394
|
|
|
356
|
-
function
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
const { Statement } = dom,
|
|
363
|
-
node = statementNode, ///
|
|
364
|
-
tokens = fileContext.nodeAsTokens(node),
|
|
365
|
-
string = fileContext.tokensAsString(tokens);
|
|
366
|
-
|
|
367
|
-
statement = new Statement(string, node, tokens);
|
|
368
|
-
}
|
|
395
|
+
function statementFromStatementNode(statementNode, context) {
|
|
396
|
+
const { Statement } = dom,
|
|
397
|
+
node = statementNode, ///
|
|
398
|
+
tokens = context.nodeAsTokens(node),
|
|
399
|
+
string = context.tokensAsString(tokens),
|
|
400
|
+
statement = new Statement(string, node, tokens);
|
|
369
401
|
|
|
370
402
|
return statement;
|
|
371
403
|
}
|
package/src/dom/term.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
import { arrayUtilities } from "necessary";
|
|
4
4
|
|
|
5
5
|
import dom from "../dom";
|
|
6
|
+
import LocalContext from "../context/local";
|
|
6
7
|
import verifyMixins from "../mixins/term/verify";
|
|
7
8
|
import constructorVerifier from "../verifier/constructor";
|
|
8
9
|
|
|
@@ -243,7 +244,8 @@ export default domAssigned(class Term {
|
|
|
243
244
|
|
|
244
245
|
static fromJSON(json, fileContext) {
|
|
245
246
|
const { string } = json,
|
|
246
|
-
|
|
247
|
+
localContext = LocalContext.fromFileContext(fileContext),
|
|
248
|
+
context = localContext, ///
|
|
247
249
|
termString = string, ///
|
|
248
250
|
termNode = termNodeFromTermString(termString, context),
|
|
249
251
|
node = termNode, ///
|