occam-verify-cli 1.0.179 → 1.0.181
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/context/release.js +4 -2
- package/lib/defaultTerminalNode.js +20 -0
- package/lib/node.js +2 -36
- package/lib/nominal/lexer.js +80 -0
- package/lib/nominal/parser.js +102 -0
- package/lib/nonTerminalNodeMap.js +82 -0
- package/lib/utilities/customGrammar.js +3 -9
- package/package.json +6 -7
- package/src/context/release.js +4 -2
- package/src/defaultTerminalNode.js +7 -0
- package/src/node.js +2 -2
- package/src/nominal/lexer.js +5 -0
- package/src/nominal/parser.js +12 -0
- package/src/{nodeMap.js → nonTerminalNodeMap.js} +2 -2
- package/src/utilities/customGrammar.js +1 -3
- package/lib/customGrammar/combined.js +0 -149
- package/lib/nodeMap.js +0 -82
- package/src/customGrammar/combined.js +0 -36
package/lib/context/release.js
CHANGED
|
@@ -13,6 +13,8 @@ var _occamfurtle = require("occam-furtle");
|
|
|
13
13
|
var _occamentities = require("occam-entities");
|
|
14
14
|
var _occamcustomgrammars = require("occam-custom-grammars");
|
|
15
15
|
var _file = /*#__PURE__*/ _interop_require_default(require("../context/file"));
|
|
16
|
+
var _lexer = /*#__PURE__*/ _interop_require_default(require("../nominal/lexer"));
|
|
17
|
+
var _parser = /*#__PURE__*/ _interop_require_default(require("../nominal/parser"));
|
|
16
18
|
var _type = require("../dom/type");
|
|
17
19
|
var _metaType = require("../dom/metaType");
|
|
18
20
|
var _customGrammar = require("../utilities/customGrammar");
|
|
@@ -495,7 +497,7 @@ var ReleaseContext = /*#__PURE__*/ function() {
|
|
|
495
497
|
{
|
|
496
498
|
key: "initialise",
|
|
497
499
|
value: function initialise(releaseContexts) {
|
|
498
|
-
var combinedCustomGrammar = (0, _customGrammar.combinedCustomGrammarFromReleaseContexts)(releaseContexts), nominalLexer = nominalLexerFromCombinedCustomGrammar(combinedCustomGrammar), nominalParser = nominalParserFromCombinedCustomGrammar(combinedCustomGrammar), releaseContext = this, released = this.isReleased();
|
|
500
|
+
var combinedCustomGrammar = (0, _customGrammar.combinedCustomGrammarFromReleaseContexts)(releaseContexts), nominalLexer = nominalLexerFromCombinedCustomGrammar(_lexer.default, combinedCustomGrammar), nominalParser = nominalParserFromCombinedCustomGrammar(_parser.default, combinedCustomGrammar), releaseContext = this, released = this.isReleased();
|
|
499
501
|
this.dependencyReleaseContexts = tail(releaseContexts); ///
|
|
500
502
|
this.lexer = nominalLexer; ///
|
|
501
503
|
this.parser = nominalParser; ///
|
|
@@ -575,4 +577,4 @@ function fileContextsFromEntries(entries, fileContexts, releaseContext) {
|
|
|
575
577
|
});
|
|
576
578
|
}
|
|
577
579
|
|
|
578
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L3JlbGVhc2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuaW1wb3J0IHsgRmlsZUNvbnRleHQgYXMgRnVydGxlRmlsZUNvbnRleHQgfSBmcm9tIFwib2NjYW0tZnVydGxlXCI7XG5cbmltcG9ydCB7IGZpbGVQYXRoVXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWVudGl0aWVzXCI7XG5pbXBvcnQgeyBsZXhlcnNVdGlsaXRpZXMsIHBhcnNlcnNVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tY3VzdG9tLWdyYW1tYXJzXCI7XG5cbmltcG9ydCBGaWxlQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9maWxlXCI7XG5cbmltcG9ydCB7IG9iamVjdFR5cGUgfSBmcm9tIFwiLi4vZG9tL3R5cGVcIjtcbmltcG9ydCB7IGZyYW1lTWV0YVR5cGUsIHJlZmVyZW5jZU1ldGFUeXBlLCBzdGF0ZW1lbnRNZXRhVHlwZSB9IGZyb20gXCIuLi9kb20vbWV0YVR5cGVcIjtcbmltcG9ydCB7IGN1c3RvbUdyYW1tYXJGcm9tTmFtZUFuZEVudHJpZXMsIGNvbWJpbmVkQ3VzdG9tR3JhbW1hckZyb21SZWxlYXNlQ29udGV4dHMgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2N1c3RvbUdyYW1tYXJcIjtcblxuY29uc3QgeyB0YWlsLCBwdXNoLCBjbGVhciwgcmVzb2x2ZSB9ID0gYXJyYXlVdGlsaXRpZXMsXG4gICAgICB7IG5vbWluYWxMZXhlckZyb21Db21iaW5lZEN1c3RvbUdyYW1tYXIgfSA9IGxleGVyc1V0aWxpdGllcyxcbiAgICAgIHsgbm9taW5hbFBhcnNlckZyb21Db21iaW5lZEN1c3RvbUdyYW1tYXIgfSA9IHBhcnNlcnNVdGlsaXRpZXMsXG4gICAgICB7IGlzRmlsZVBhdGhGdXJ0bGVGaWxlUGF0aCwgaXNGaWxlUGF0aE5vbWluYWxGaWxlUGF0aCB9ID0gZmlsZVBhdGhVdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJlbGVhc2VDb250ZXh0IHtcbiAgY29uc3RydWN0b3IobG9nLCBuYW1lLCBqc29uLCBlbnRyaWVzLCBsZXhlciwgcGFyc2VyLCB2ZXJpZmllZCwgaW5pdGlhbGlzZWQsIGZpbGVDb250ZXh0cywgY3VzdG9tR3JhbW1hciwgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cykge1xuICAgIHRoaXMubG9nID0gbG9nO1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy5qc29uID0ganNvbjtcbiAgICB0aGlzLmVudHJpZXMgPSBlbnRyaWVzO1xuICAgIHRoaXMubGV4ZXIgPSBsZXhlcjtcbiAgICB0aGlzLnBhcnNlciA9IHBhcnNlcjtcbiAgICB0aGlzLnZlcmlmaWVkID0gdmVyaWZpZWQ7XG4gICAgdGhpcy5pbml0aWFsaXNlZCA9IGluaXRpYWxpc2VkO1xuICAgIHRoaXMuZmlsZUNvbnRleHRzID0gZmlsZUNvbnRleHRzO1xuICAgIHRoaXMuY3VzdG9tR3JhbW1hciA9IGN1c3RvbUdyYW1tYXI7XG4gICAgdGhpcy5kZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzID0gZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cztcbiAgfVxuXG4gIGdldExvZygpIHtcbiAgICByZXR1cm4gbG9nO1xuICB9XG5cbiAgZ2V0TmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lO1xuICB9XG5cbiAgZ2V0SlNPTigpIHtcbiAgICByZXR1cm4gdGhpcy5qc29uO1xuICB9XG5cbiAgZ2V0RW50cmllcygpIHtcbiAgICByZXR1cm4gdGhpcy5lbnRyaWVzO1xuICB9XG5cbiAgZ2V0TGV4ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMubGV4ZXI7XG4gIH1cblxuICBnZXRQYXJzZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFyc2VyO1xuICB9XG5cbiAgZ2V0TWV0YVR5cGVzKCkge1xuICAgIGNvbnN0IG1ldGFUeXBlcyA9IFtcbiAgICAgIGZyYW1lTWV0YVR5cGUsXG4gICAgICByZWZlcmVuY2VNZXRhVHlwZSxcbiAgICAgIHN0YXRlbWVudE1ldGFUeXBlXG4gICAgXTtcblxuICAgIHJldHVybiBtZXRhVHlwZXM7XG4gIH1cblxuICBpc1ZlcmlmaWVkKCkge1xuICAgIHJldHVybiB0aGlzLnZlcmlmaWVkO1xuICB9XG5cbiAgaXNJbml0aWFsaXNlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5pbml0aWFsaXNlZDtcbiAgfVxuXG4gIGdldEZpbGVDb250ZXh0cygpIHtcbiAgICByZXR1cm4gdGhpcy5maWxlQ29udGV4dHM7XG4gIH1cblxuICBnZXRDdXN0b21HcmFtbWFyKCkge1xuICAgIHJldHVybiB0aGlzLmN1c3RvbUdyYW1tYXI7XG4gIH1cblxuICBnZXREZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzKCkge1xuICAgIHJldHVybiB0aGlzLmRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHM7XG4gIH1cblxuICBpc1JlbGVhc2VkKCkge1xuICAgIGNvbnN0IHJlbGVhc2VkID0gKHRoaXMuanNvbiAhPT0gbnVsbCk7XG5cbiAgICByZXR1cm4gcmVsZWFzZWQ7XG4gIH1cblxuICBmaW5kRmlsZShmaWxlUGF0aCkgeyByZXR1cm4gdGhpcy5lbnRyaWVzLmZpbmRGaWxlKGZpbGVQYXRoKTsgfVxuXG4gIGZpbmRGaWxlQ29udGV4dChmaWxlUGF0aCkge1xuICAgIGNvbnN0IGZpbGVDb250ZXh0ID0gdGhpcy5maWxlQ29udGV4dHMuZmluZCgoZmlsZUNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IGZpbGVDb250ZXh0RmlsZVBhdGggPSBmaWxlQ29udGV4dC5nZXRGaWxlUGF0aCgpO1xuXG4gICAgICBpZiAoZmlsZUNvbnRleHRGaWxlUGF0aCA9PT0gZmlsZVBhdGgpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZmlsZUNvbnRleHQ7XG4gIH1cblxuICBnZXRMYWJlbHMoaW5jbHVkZURlcGVuZGVuY2llcyA9IHRydWUpIHtcbiAgICBjb25zdCBsYWJlbHMgPSBbXTtcblxuICAgIHRoaXMuZmlsZUNvbnRleHRzLmZvckVhY2goKGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBpbmNsdWRlUmVsZWFzZSA9IGZhbHNlLFxuICAgICAgICAgICAgZmlsZUNvbnRleHRMYWJlbHMgPSBmaWxlQ29udGV4dC5nZXRMYWJlbHMoaW5jbHVkZVJlbGVhc2UpO1xuXG4gICAgICBwdXNoKGxhYmVscywgZmlsZUNvbnRleHRMYWJlbHMpO1xuICAgIH0pO1xuXG4gICAgaWYgKGluY2x1ZGVEZXBlbmRlbmNpZXMpIHtcbiAgICAgIGNvbnN0IGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMgPSB0aGlzLmdldERlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMoKTtcblxuICAgICAgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cy5mb3JFYWNoKChyZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCBpbmNsdWRlRGVwZW5kZW5jaWVzID0gZmFsc2UsXG4gICAgICAgICAgICAgIHJlbGVhc2VDb250ZXh0TGFiZWxzID0gcmVsZWFzZUNvbnRleHQuZ2V0TGFiZWxzKGluY2x1ZGVEZXBlbmRlbmNpZXMpO1xuXG4gICAgICAgIHB1c2gobGFiZWxzLCByZWxlYXNlQ29udGV4dExhYmVscyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gbGFiZWxzO1xuICB9XG5cbiAgZ2V0VHlwZXMoaW5jbHVkZURlcGVuZGVuY2llcyA9IHRydWUpIHtcbiAgICBjb25zdCB0eXBlcyA9IFtdO1xuXG4gICAgdGhpcy5maWxlQ29udGV4dHMuZm9yRWFjaCgoZmlsZUNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IGluY2x1ZGVSZWxlYXNlID0gZmFsc2UsXG4gICAgICAgICAgICBmaWxlQ29udGV4dFR5cGVzID0gZmlsZUNvbnRleHQuZ2V0VHlwZXMoaW5jbHVkZVJlbGVhc2UpO1xuXG4gICAgICBwdXNoKHR5cGVzLCBmaWxlQ29udGV4dFR5cGVzKTtcbiAgICB9KTtcblxuICAgIGlmIChpbmNsdWRlRGVwZW5kZW5jaWVzKSB7XG4gICAgICBjb25zdCBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzID0gdGhpcy5nZXREZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzKCk7XG5cbiAgICAgIGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMuZm9yRWFjaCgocmVsZWFzZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgaW5jbHVkZURlcGVuZGVuY2llcyA9IGZhbHNlLFxuICAgICAgICAgICAgICByZWxlYXNlQ29udGV4dFR5cGVzID0gcmVsZWFzZUNvbnRleHQuZ2V0VHlwZXMoaW5jbHVkZURlcGVuZGVuY2llcyk7XG5cbiAgICAgICAgcHVzaCh0eXBlcywgcmVsZWFzZUNvbnRleHRUeXBlcyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHlwZXM7XG4gIH1cblxuICBnZXRSdWxlcyhpbmNsdWRlRGVwZW5kZW5jaWVzID0gdHJ1ZSkge1xuICAgIGNvbnN0IHJ1bGVzID0gW107XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgaW5jbHVkZVJlbGVhc2UgPSBmYWxzZSxcbiAgICAgICAgICAgIGZpbGVDb250ZXh0UnVsZXMgPSBmaWxlQ29udGV4dC5nZXRSdWxlcyhpbmNsdWRlUmVsZWFzZSk7XG5cbiAgICAgIHB1c2gocnVsZXMsIGZpbGVDb250ZXh0UnVsZXMpO1xuICAgIH0pO1xuXG4gICAgaWYgKGluY2x1ZGVEZXBlbmRlbmNpZXMpIHtcbiAgICAgIGNvbnN0IGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMgPSB0aGlzLmdldERlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMoKTtcblxuICAgICAgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cy5mb3JFYWNoKChyZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCBpbmNsdWRlRGVwZW5kZW5jaWVzID0gZmFsc2UsXG4gICAgICAgICAgICAgIHJlbGVhc2VDb250ZXh0UnVsZXMgPSByZWxlYXNlQ29udGV4dC5nZXRSdWxlcyhpbmNsdWRlRGVwZW5kZW5jaWVzKTtcblxuICAgICAgICBwdXNoKHJ1bGVzLCByZWxlYXNlQ29udGV4dFJ1bGVzKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBydWxlcztcbiAgfVxuXG4gIGdldEF4aW9tcyhpbmNsdWRlRGVwZW5kZW5jaWVzID0gdHJ1ZSkge1xuICAgIGNvbnN0IGF4aW9tcyA9IFtdO1xuXG4gICAgdGhpcy5maWxlQ29udGV4dHMuZm9yRWFjaCgoZmlsZUNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IGluY2x1ZGVSZWxlYXNlID0gZmFsc2UsXG4gICAgICAgICAgICBmaWxlQ29udGV4dEF4aW9tcyA9IGZpbGVDb250ZXh0LmdldEF4aW9tcyhpbmNsdWRlUmVsZWFzZSk7XG5cbiAgICAgIHB1c2goYXhpb21zLCBmaWxlQ29udGV4dEF4aW9tcyk7XG4gICAgfSk7XG5cbiAgICBpZiAoaW5jbHVkZURlcGVuZGVuY2llcykge1xuICAgICAgY29uc3QgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyA9IHRoaXMuZ2V0RGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cygpO1xuXG4gICAgICBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzLmZvckVhY2goKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IGluY2x1ZGVEZXBlbmRlbmNpZXMgPSBmYWxzZSxcbiAgICAgICAgICAgICAgcmVsZWFzZUNvbnRleHRBeGlvbXMgPSByZWxlYXNlQ29udGV4dC5nZXRBeGlvbXMoaW5jbHVkZURlcGVuZGVuY2llcyk7XG5cbiAgICAgICAgcHVzaChheGlvbXMsIHJlbGVhc2VDb250ZXh0QXhpb21zKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBheGlvbXM7XG4gIH1cblxuICBnZXRMZW1tYXMoaW5jbHVkZURlcGVuZGVuY2llcyA9IHRydWUpIHtcbiAgICBjb25zdCBsZW1tYXMgPSBbXTtcblxuICAgIHRoaXMuZmlsZUNvbnRleHRzLmZvckVhY2goKGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBpbmNsdWRlUmVsZWFzZSA9IGZhbHNlLFxuICAgICAgICAgICAgZmlsZUNvbnRleHRMZW1tYXMgPSBmaWxlQ29udGV4dC5nZXRMZW1tYXMoaW5jbHVkZVJlbGVhc2UpO1xuXG4gICAgICBwdXNoKGxlbW1hcywgZmlsZUNvbnRleHRMZW1tYXMpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGxlbW1hcztcbiAgfVxuXG4gIGdldFRoZW9yZW1zKGluY2x1ZGVEZXBlbmRlbmNpZXMgPSB0cnVlKSB7XG4gICAgY29uc3QgdGhlb3JlbXMgPSBbXTtcblxuICAgIHRoaXMuZmlsZUNvbnRleHRzLmZvckVhY2goKGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBpbmNsdWRlUmVsZWFzZSA9IGZhbHNlLFxuICAgICAgICAgICAgZmlsZUNvbnRleHRUaGVvcmVtcyA9IGZpbGVDb250ZXh0LmdldFRoZW9yZW1zKGluY2x1ZGVSZWxlYXNlKTtcblxuICAgICAgcHVzaCh0aGVvcmVtcywgZmlsZUNvbnRleHRUaGVvcmVtcyk7XG4gICAgfSk7XG5cbiAgICBpZiAoaW5jbHVkZURlcGVuZGVuY2llcykge1xuICAgICAgY29uc3QgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyA9IHRoaXMuZ2V0RGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cygpO1xuXG4gICAgICBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzLmZvckVhY2goKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IGluY2x1ZGVEZXBlbmRlbmNpZXMgPSBmYWxzZSxcbiAgICAgICAgICAgICAgcmVsZWFzZUNvbnRleHRUaGVvcmVtcyA9IHJlbGVhc2VDb250ZXh0LmdldFRoZW9yZW1zKGluY2x1ZGVEZXBlbmRlbmNpZXMpO1xuXG4gICAgICAgIHB1c2godGhlb3JlbXMsIHJlbGVhc2VDb250ZXh0VGhlb3JlbXMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoZW9yZW1zO1xuICB9XG5cbiAgZ2V0UHJvY2VkdXJlcyhpbmNsdWRlRGVwZW5kZW5jaWVzID0gdHJ1ZSkge1xuICAgIGNvbnN0IHByb2NlZHVyZXMgPSBbXTtcblxuICAgIHRoaXMuZmlsZUNvbnRleHRzLmZvckVhY2goKGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBpbmNsdWRlUmVsZWFzZSA9IGZhbHNlLFxuICAgICAgICAgICAgZmlsZUNvbnRleHRQcm9jZWR1cmVzID0gZmlsZUNvbnRleHQuZ2V0UHJvY2VkdXJlcyhpbmNsdWRlUmVsZWFzZSk7XG5cbiAgICAgIHB1c2gocHJvY2VkdXJlcywgZmlsZUNvbnRleHRQcm9jZWR1cmVzKTtcbiAgICB9KTtcblxuICAgIGlmIChpbmNsdWRlRGVwZW5kZW5jaWVzKSB7XG4gICAgICBjb25zdCBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzID0gdGhpcy5nZXREZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzKCk7XG5cbiAgICAgIGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMuZm9yRWFjaCgocmVsZWFzZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgaW5jbHVkZURlcGVuZGVuY2llcyA9IGZhbHNlLFxuICAgICAgICAgIHJlbGVhc2VDb250ZXh0UHJvY2VkdXJlcyA9IHJlbGVhc2VDb250ZXh0LmdldFByb2NlZHVyZXMoaW5jbHVkZURlcGVuZGVuY2llcyk7XG5cbiAgICAgICAgcHVzaChwcm9jZWR1cmVzLCByZWxlYXNlQ29udGV4dFByb2NlZHVyZXMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHByb2NlZHVyZXM7XG4gIH1cblxuICBnZXRNZXRhTGVtbWFzKGluY2x1ZGVEZXBlbmRlbmNpZXMgPSB0cnVlKSB7XG4gICAgY29uc3QgbWV0YUxlbW1hcyA9IFtdO1xuXG4gICAgdGhpcy5maWxlQ29udGV4dHMuZm9yRWFjaCgoZmlsZUNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IGluY2x1ZGVSZWxlYXNlID0gZmFsc2UsXG4gICAgICAgICAgICBmaWxlQ29udGV4dE1ldGFMZW1tYXMgPSBmaWxlQ29udGV4dC5nZXRNZXRhTGVtbWFzKGluY2x1ZGVSZWxlYXNlKTtcblxuICAgICAgcHVzaChtZXRhTGVtbWFzLCBmaWxlQ29udGV4dE1ldGFMZW1tYXMpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIG1ldGFMZW1tYXM7XG4gIH1cblxuICBnZXRDb25qZWN0dXJlcyhpbmNsdWRlRGVwZW5kZW5jaWVzID0gdHJ1ZSkge1xuICAgIGNvbnN0IGNvbmplY3R1cmVzID0gW107XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgaW5jbHVkZVJlbGVhc2UgPSBmYWxzZSxcbiAgICAgICAgICAgIGZpbGVDb250ZXh0Q29uamVjdHVyZXMgPSBmaWxlQ29udGV4dC5nZXRDb25qZWN0dXJlcyhpbmNsdWRlUmVsZWFzZSk7XG5cbiAgICAgIHB1c2goY29uamVjdHVyZXMsIGZpbGVDb250ZXh0Q29uamVjdHVyZXMpO1xuICAgIH0pO1xuXG4gICAgaWYgKGluY2x1ZGVEZXBlbmRlbmNpZXMpIHtcbiAgICAgIGNvbnN0IGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMgPSB0aGlzLmdldERlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMoKTtcblxuICAgICAgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cy5mb3JFYWNoKChyZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCBpbmNsdWRlRGVwZW5kZW5jaWVzID0gZmFsc2UsXG4gICAgICAgICAgICAgIHJlbGVhc2VDb250ZXh0Q29uamVjdHVyZXMgPSByZWxlYXNlQ29udGV4dC5nZXRDb25qZWN0dXJlcyhpbmNsdWRlRGVwZW5kZW5jaWVzKTtcblxuICAgICAgICBwdXNoKGNvbmplY3R1cmVzLCByZWxlYXNlQ29udGV4dENvbmplY3R1cmVzKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBjb25qZWN0dXJlcztcbiAgfVxuXG4gIGdldENvbWJpbmF0b3JzKGluY2x1ZGVEZXBlbmRlbmNpZXMgPSB0cnVlKSB7XG4gICAgY29uc3QgY29tYmluYXRvcnMgPSBbXTtcblxuICAgIHRoaXMuZmlsZUNvbnRleHRzLmZvckVhY2goKGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBpbmNsdWRlUmVsZWFzZSA9IGZhbHNlLFxuICAgICAgICAgICAgZmlsZUNvbnRleHRDb21iaW5hdG9ycyA9IGZpbGVDb250ZXh0LmdldENvbWJpbmF0b3JzKGluY2x1ZGVSZWxlYXNlKTtcblxuICAgICAgcHVzaChjb21iaW5hdG9ycywgZmlsZUNvbnRleHRDb21iaW5hdG9ycyk7XG4gICAgfSk7XG5cbiAgICBpZiAoaW5jbHVkZURlcGVuZGVuY2llcykge1xuICAgICAgY29uc3QgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyA9IHRoaXMuZ2V0RGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cygpO1xuXG4gICAgICBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzLmZvckVhY2goKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IGluY2x1ZGVEZXBlbmRlbmNpZXMgPSBmYWxzZSxcbiAgICAgICAgICAgICAgcmVsZWFzZUNvbnRleHRDb21iaW5hdG9ycyA9IHJlbGVhc2VDb250ZXh0LmdldENvbWJpbmF0b3JzKGluY2x1ZGVEZXBlbmRlbmNpZXMpO1xuXG4gICAgICAgIHB1c2goY29tYmluYXRvcnMsIHJlbGVhc2VDb250ZXh0Q29tYmluYXRvcnMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbWJpbmF0b3JzO1xuICB9XG5cbiAgZ2V0Q29uc3RydWN0b3JzKGluY2x1ZGVEZXBlbmRlbmNpZXMgPSB0cnVlKSB7XG4gICAgY29uc3QgY29uc3RydWN0b3JzID0gW107XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgaW5jbHVkZVJlbGVhc2UgPSBmYWxzZSxcbiAgICAgICAgICAgIGZpbGVDb250ZXh0Q29uc3RydWN0b3JzID0gZmlsZUNvbnRleHQuZ2V0Q29uc3RydWN0b3JzKGluY2x1ZGVSZWxlYXNlKTtcblxuICAgICAgcHVzaChjb25zdHJ1Y3RvcnMsIGZpbGVDb250ZXh0Q29uc3RydWN0b3JzKTtcbiAgICB9KTtcblxuICAgIGlmIChpbmNsdWRlRGVwZW5kZW5jaWVzKSB7XG4gICAgICBjb25zdCBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzID0gdGhpcy5nZXREZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzKCk7XG5cbiAgICAgIGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMuZm9yRWFjaCgocmVsZWFzZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgaW5jbHVkZURlcGVuZGVuY2llcyA9IGZhbHNlLFxuICAgICAgICAgICAgICByZWxlYXNlQ29udGV4dENvbnN0cnVjdG9ycyA9IHJlbGVhc2VDb250ZXh0LmdldENvbnN0cnVjdG9ycyhpbmNsdWRlRGVwZW5kZW5jaWVzKTtcblxuICAgICAgICBwdXNoKGNvbnN0cnVjdG9ycywgcmVsZWFzZUNvbnRleHRDb25zdHJ1Y3RvcnMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbnN0cnVjdG9ycztcbiAgfVxuXG4gIGdldE1ldGF0aGVvcmVtcyhpbmNsdWRlRGVwZW5kZW5jaWVzID0gdHJ1ZSkge1xuICAgIGNvbnN0IG1ldGF0aGVvcmVtcyA9IFtdO1xuXG4gICAgdGhpcy5maWxlQ29udGV4dHMuZm9yRWFjaCgoZmlsZUNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IGluY2x1ZGVSZWxlYXNlID0gZmFsc2UsXG4gICAgICAgICAgICBmaWxlQ29udGV4dE1ldGF0aGVvcmVtcyA9IGZpbGVDb250ZXh0LmdldE1ldGF0aGVvcmVtcyhpbmNsdWRlUmVsZWFzZSk7XG5cbiAgICAgIHB1c2gobWV0YXRoZW9yZW1zLCBmaWxlQ29udGV4dE1ldGF0aGVvcmVtcyk7XG4gICAgfSk7XG5cbiAgICBpZiAoaW5jbHVkZURlcGVuZGVuY2llcykge1xuICAgICAgY29uc3QgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyA9IHRoaXMuZ2V0RGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cygpO1xuXG4gICAgICBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzLmZvckVhY2goKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IGluY2x1ZGVEZXBlbmRlbmNpZXMgPSBmYWxzZSxcbiAgICAgICAgICAgICAgcmVsZWFzZUNvbnRleHRNZXRhdGhlb3JlbXMgPSByZWxlYXNlQ29udGV4dC5nZXRNZXRhdGhlb3JlbXMoaW5jbHVkZURlcGVuZGVuY2llcyk7XG5cbiAgICAgICAgcHVzaChtZXRhdGhlb3JlbXMsIHJlbGVhc2VDb250ZXh0TWV0YXRoZW9yZW1zKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBtZXRhdGhlb3JlbXM7XG4gIH1cblxuICBhZGRGaWxlQ29udGV4dChmaWxlQ29udGV4dCkge1xuICAgIHRoaXMuZmlsZUNvbnRleHRzLnB1c2goZmlsZUNvbnRleHQpO1xuICB9XG5cbiAgZmluZFR5cGVCeVR5cGVOYW1lKHR5cGVOYW1lKSB7XG4gICAgbGV0IHR5cGVzID0gdGhpcy5nZXRUeXBlcygpO1xuXG4gICAgdHlwZXMgPSBbXG4gICAgICAuLi50eXBlcyxcbiAgICAgIG9iamVjdFR5cGVcbiAgICBdO1xuXG4gICAgY29uc3QgdHlwZSA9IHR5cGVzLmZpbmQoKHR5cGUpID0+IHtcbiAgICAgIGNvbnN0IHR5cGVOYW1lTWF0Y2hlcyA9IHR5cGUubWF0Y2hUeXBlTmFtZSh0eXBlTmFtZSk7XG5cbiAgICAgIGlmICh0eXBlTmFtZU1hdGNoZXMpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSkgfHwgbnVsbDtcblxuICAgIHJldHVybiB0eXBlO1xuICB9XG5cbiAgZ2V0UmVsZWFzZU5hbWUoKSB7XG4gICAgY29uc3QgbmFtZSA9IHRoaXMuZ2V0TmFtZSgpLFxuICAgICAgICAgIHJlbGVhc2VOYW1lID0gbmFtZTsgLy8vXG5cbiAgICByZXR1cm4gcmVsZWFzZU5hbWU7XG4gIH1cblxuICBnZXRGaWxlKGZpbGVQYXRoKSB7IHJldHVybiB0aGlzLmVudHJpZXMuZ2V0RmlsZShmaWxlUGF0aCk7IH1cblxuICBnZXRWZXJzaW9uKCkgeyByZXR1cm4gdGhpcy5lbnRyaWVzLmdldFZlcnNpb24oKTsgfVxuXG4gIGdldEZpbGVQYXRocygpIHsgcmV0dXJuIHRoaXMuZW50cmllcy5nZXRGaWxlUGF0aHMoKTsgfVxuXG4gIGdldERlcGVuZGVuY2llcygpIHsgcmV0dXJuIHRoaXMuZW50cmllcy5nZXREZXBlbmRlbmNpZXMoKTsgfVxuXG4gIG1hdGNoU2hvcnRlbmVkVmVyc2lvbihzaG9ydGVuZWRWZXJzaW9uKSB7IHJldHVybiB0aGlzLmVudHJpZXMubWF0Y2hTaG9ydGVuZWRWZXJzaW9uKHNob3J0ZW5lZFZlcnNpb24pOyB9XG5cbiAgdHJhY2UobWVzc2FnZSwgZmlsZVBhdGggPSBudWxsKSB7IHRoaXMubG9nLnRyYWNlKG1lc3NhZ2UsIGZpbGVQYXRoKTsgfVxuXG4gIGRlYnVnKG1lc3NhZ2UsIGZpbGVQYXRoID0gbnVsbCkgeyB0aGlzLmxvZy5kZWJ1ZyhtZXNzYWdlLCBmaWxlUGF0aCk7IH1cblxuICBpbmZvKG1lc3NhZ2UsIGZpbGVQYXRoID0gbnVsbCkgeyB0aGlzLmxvZy5pbmZvKG1lc3NhZ2UsIGZpbGVQYXRoKTsgfVxuXG4gIHdhcm5pbmcobWVzc2FnZSwgZmlsZVBhdGggPSBudWxsKSB7IHRoaXMubG9nLndhcm5pbmcobWVzc2FnZSwgZmlsZVBhdGgpOyB9XG5cbiAgZXJyb3IobWVzc2FnZSwgZmlsZVBhdGggPSBudWxsKSB7IHRoaXMubG9nLmVycm9yKG1lc3NhZ2UsIGZpbGVQYXRoKTsgfVxuXG4gIGluaXRpYWxpc2UocmVsZWFzZUNvbnRleHRzKSB7XG4gICAgY29uc3QgY29tYmluZWRDdXN0b21HcmFtbWFyID0gY29tYmluZWRDdXN0b21HcmFtbWFyRnJvbVJlbGVhc2VDb250ZXh0cyhyZWxlYXNlQ29udGV4dHMpLFxuICAgICAgICAgIG5vbWluYWxMZXhlciA9IG5vbWluYWxMZXhlckZyb21Db21iaW5lZEN1c3RvbUdyYW1tYXIoY29tYmluZWRDdXN0b21HcmFtbWFyKSxcbiAgICAgICAgICBub21pbmFsUGFyc2VyID0gbm9taW5hbFBhcnNlckZyb21Db21iaW5lZEN1c3RvbUdyYW1tYXIoY29tYmluZWRDdXN0b21HcmFtbWFyKSxcbiAgICAgICAgICByZWxlYXNlQ29udGV4dCA9IHRoaXMsICAvLy9cbiAgICAgICAgICByZWxlYXNlZCA9IHRoaXMuaXNSZWxlYXNlZCgpO1xuXG4gICAgdGhpcy5kZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzID0gdGFpbChyZWxlYXNlQ29udGV4dHMpOyAvLy9cblxuICAgIHRoaXMubGV4ZXIgPSBub21pbmFsTGV4ZXI7IC8vL1xuXG4gICAgdGhpcy5wYXJzZXIgPSBub21pbmFsUGFyc2VyOyAvLy9cblxuICAgIGNsZWFyKHRoaXMuZmlsZUNvbnRleHRzKTtcblxuICAgIHJlbGVhc2VkID9cbiAgICAgIGZpbGVDb250ZXh0c0Zyb21KU09OKHRoaXMuanNvbiwgdGhpcy5maWxlQ29udGV4dHMsIHJlbGVhc2VDb250ZXh0KSA6XG4gICAgICAgIGZpbGVDb250ZXh0c0Zyb21FbnRyaWVzKHRoaXMuZW50cmllcywgdGhpcy5maWxlQ29udGV4dHMsIHJlbGVhc2VDb250ZXh0KTtcblxuICAgIHRoaXMuaW5pdGlhbGlzZWQgPSB0cnVlO1xuICB9XG5cbiAgdmVyaWZ5KCkge1xuICAgIGxldCB2ZXJpZmllZCA9IGZhbHNlO1xuXG4gICAgY29uc3QgdmVyaWZpZWRGaWxlQ29udGV4dHMgPSBbXSxcbiAgICAgICAgICBmaWxlQ29udGV4dHNWZXJpZmllZCA9IHZlcmlmeUZpbGVDb250ZXh0cyh0aGlzLmZpbGVDb250ZXh0cywgdmVyaWZpZWRGaWxlQ29udGV4dHMpO1xuXG4gICAgaWYgKGZpbGVDb250ZXh0c1ZlcmlmaWVkKSB7XG4gICAgICB0aGlzLmZpbGVDb250ZXh0cyA9IHZlcmlmaWVkRmlsZUNvbnRleHRzOyAvLy9cblxuICAgICAgdGhpcy52ZXJpZmllZCA9IHRydWU7XG5cbiAgICAgIHZlcmlmaWVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmVyaWZpZWQ7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgZmlsZUNvbnRleHRzSlNPTiA9IHRoaXMuZmlsZUNvbnRleHRzLm1hcCgoZmlsZUNvbnRleHQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZpbGVDb250ZXh0SlNPTiA9IGZpbGVDb250ZXh0LnRvSlNPTigpO1xuXG4gICAgICAgICAgICByZXR1cm4gZmlsZUNvbnRleHRKU09OO1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIGpzb24gPSBmaWxlQ29udGV4dHNKU09OOyAgLy8vXG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tTG9nTmFtZUpTT05BbmRFbnRyaWVzKGxvZywgbmFtZSwganNvbiwgZW50cmllcykge1xuICAgIGNvbnN0IGxleGVyID0gbnVsbCxcbiAgICAgICAgICBwYXJzZXIgPSBudWxsLFxuICAgICAgICAgIHZlcmlmaWVkID0gZmFsc2UsXG4gICAgICAgICAgaW5pdGlhbGlzZWQgPSBmYWxzZSxcbiAgICAgICAgICBmaWxlQ29udGV4dHMgPSBbXSxcbiAgICAgICAgICBjdXN0b21HcmFtbWFyID0gY3VzdG9tR3JhbW1hckZyb21OYW1lQW5kRW50cmllcyhuYW1lLCBlbnRyaWVzKSxcbiAgICAgICAgICBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzID0gbnVsbCxcbiAgICAgICAgICByZWxlYXNlQ29udGV4dCA9IG5ldyBSZWxlYXNlQ29udGV4dChsb2csIG5hbWUsIGpzb24sIGVudHJpZXMsIGxleGVyLCBwYXJzZXIsIHZlcmlmaWVkLCBpbml0aWFsaXNlZCwgZmlsZUNvbnRleHRzLCBjdXN0b21HcmFtbWFyLCBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzKTtcblxuICAgIHJldHVybiByZWxlYXNlQ29udGV4dDtcbiAgfVxufVxuXG5mdW5jdGlvbiB2ZXJpZnlGaWxlQ29udGV4dHMoZmlsZUNvbnRleHRzLCB2ZXJpZmllZEZpbGVDb250ZXh0cykge1xuICBjb25zdCByZXNvbHZlZCA9IHJlc29sdmUoZmlsZUNvbnRleHRzLCB2ZXJpZmllZEZpbGVDb250ZXh0cywgKGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICAgICAgY29uc3QgZmlsZUNvbnRleHRWZXJpZmllZCA9IGZpbGVDb250ZXh0LnZlcmlmeSgpO1xuXG4gICAgICAgICAgaWYgKGZpbGVDb250ZXh0VmVyaWZpZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIGZpbGVDb250ZXh0c1ZlcmlmaWVkID0gcmVzb2x2ZWQ7ICAvLy9cblxuICByZXR1cm4gZmlsZUNvbnRleHRzVmVyaWZpZWQ7XG59XG5cbmZ1bmN0aW9uIGZpbGVDb250ZXh0c0Zyb21KU09OKGpzb24sZmlsZUNvbnRleHRzLCByZWxlYXNlQ29udGV4dCkge1xuICBjb25zdCBmaWxlQ29udGV4dHNKU09OID0ganNvbjsgIC8vL1xuXG4gIGZpbGVDb250ZXh0c0pTT04uZm9yRWFjaCgoZmlsZUNvbnRleHRKU09OKSA9PiB7XG4gICAgY29uc3QgeyBmaWxlUGF0aCB9ID0gZmlsZUNvbnRleHRKU09OLFxuICAgICAgICAgIGpzb24gPSBmaWxlQ29udGV4dEpTT04sIC8vL1xuICAgICAgICAgIGZpbGVQYXRoRnVydGxlRmlsZVBhdGggPSBpc0ZpbGVQYXRoRnVydGxlRmlsZVBhdGgoZmlsZVBhdGgpLFxuICAgICAgICAgIGZpbGVQYXRoTm9taW5hbEZpbGVQYXRoID0gaXNGaWxlUGF0aE5vbWluYWxGaWxlUGF0aChmaWxlUGF0aCk7XG5cbiAgICBpZiAoZmlsZVBhdGhGdXJ0bGVGaWxlUGF0aCkge1xuICAgICAgY29uc3QgZnVydGxlRmlsZUNvbnRleHQgPSBGdXJ0bGVGaWxlQ29udGV4dC5mcm9tRmlsZVBhdGhBbmRKU09OKGZpbGVQYXRoLCBqc29uLCByZWxlYXNlQ29udGV4dCksXG4gICAgICAgICAgICBmaWxlQ29udGV4dCA9IGZ1cnRsZUZpbGVDb250ZXh0OyAgLy8vXG5cbiAgICAgIGZpbGVDb250ZXh0cy5wdXNoKGZpbGVDb250ZXh0KTtcbiAgICB9XG5cbiAgICBpZiAoZmlsZVBhdGhOb21pbmFsRmlsZVBhdGgpIHtcbiAgICAgIGNvbnN0IGZpbGVDb250ZXh0ID0gRmlsZUNvbnRleHQuZnJvbUZpbGVQYXRoQW5kSlNPTihmaWxlUGF0aCwganNvbiwgcmVsZWFzZUNvbnRleHQpO1xuXG4gICAgICBmaWxlQ29udGV4dHMucHVzaChmaWxlQ29udGV4dCk7XG4gICAgfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gZmlsZUNvbnRleHRzRnJvbUVudHJpZXMoZW50cmllcywgZmlsZUNvbnRleHRzLCByZWxlYXNlQ29udGV4dCkge1xuICBlbnRyaWVzLmZvckVhY2hGaWxlKChmaWxlKSA9PiB7XG4gICAgY29uc3QgZmlsZVBhdGggPSBmaWxlLmdldFBhdGgoKSxcbiAgICAgICAgICBmaWxlUGF0aEZ1cnRsZUZpbGVQYXRoID0gaXNGaWxlUGF0aEZ1cnRsZUZpbGVQYXRoKGZpbGVQYXRoKSxcbiAgICAgICAgICBmaWxlUGF0aE5vbWluYWxGaWxlUGF0aCA9IGlzRmlsZVBhdGhOb21pbmFsRmlsZVBhdGgoZmlsZVBhdGgpO1xuXG4gICAgaWYgKGZpbGVQYXRoRnVydGxlRmlsZVBhdGgpIHtcbiAgICAgIGNvbnN0IGZ1cnRsZUZpbGVDb250ZXh0ID0gRnVydGxlRmlsZUNvbnRleHQuZnJvbUZpbGUoZmlsZSwgcmVsZWFzZUNvbnRleHQpLFxuICAgICAgICAgICAgZmlsZUNvbnRleHQgPSBmdXJ0bGVGaWxlQ29udGV4dDsgIC8vL1xuXG4gICAgICBmaWxlQ29udGV4dHMucHVzaChmaWxlQ29udGV4dCk7XG4gICAgfVxuXG4gICAgaWYgKGZpbGVQYXRoTm9taW5hbEZpbGVQYXRoKSB7XG4gICAgICBjb25zdCBmaWxlQ29udGV4dCA9IEZpbGVDb250ZXh0LmZyb21GaWxlKGZpbGUsIHJlbGVhc2VDb250ZXh0KTtcblxuICAgICAgZmlsZUNvbnRleHRzLnB1c2goZmlsZUNvbnRleHQpO1xuICAgIH1cbiAgfSk7XG59XG4iXSwibmFtZXMiOlsiUmVsZWFzZUNvbnRleHQiLCJ0YWlsIiwiYXJyYXlVdGlsaXRpZXMiLCJwdXNoIiwiY2xlYXIiLCJyZXNvbHZlIiwibm9taW5hbExleGVyRnJvbUNvbWJpbmVkQ3VzdG9tR3JhbW1hciIsImxleGVyc1V0aWxpdGllcyIsIm5vbWluYWxQYXJzZXJGcm9tQ29tYmluZWRDdXN0b21HcmFtbWFyIiwicGFyc2Vyc1V0aWxpdGllcyIsImlzRmlsZVBhdGhGdXJ0bGVGaWxlUGF0aCIsImZpbGVQYXRoVXRpbGl0aWVzIiwiaXNGaWxlUGF0aE5vbWluYWxGaWxlUGF0aCIsImxvZyIsIm5hbWUiLCJqc29uIiwiZW50cmllcyIsImxleGVyIiwicGFyc2VyIiwidmVyaWZpZWQiLCJpbml0aWFsaXNlZCIsImZpbGVDb250ZXh0cyIsImN1c3RvbUdyYW1tYXIiLCJkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzIiwiZ2V0TG9nIiwiZ2V0TmFtZSIsImdldEpTT04iLCJnZXRFbnRyaWVzIiwiZ2V0TGV4ZXIiLCJnZXRQYXJzZXIiLCJnZXRNZXRhVHlwZXMiLCJtZXRhVHlwZXMiLCJmcmFtZU1ldGFUeXBlIiwicmVmZXJlbmNlTWV0YVR5cGUiLCJzdGF0ZW1lbnRNZXRhVHlwZSIsImlzVmVyaWZpZWQiLCJpc0luaXRpYWxpc2VkIiwiZ2V0RmlsZUNvbnRleHRzIiwiZ2V0Q3VzdG9tR3JhbW1hciIsImdldERlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMiLCJpc1JlbGVhc2VkIiwicmVsZWFzZWQiLCJmaW5kRmlsZSIsImZpbGVQYXRoIiwiZmluZEZpbGVDb250ZXh0IiwiZmlsZUNvbnRleHQiLCJmaW5kIiwiZmlsZUNvbnRleHRGaWxlUGF0aCIsImdldEZpbGVQYXRoIiwiZ2V0TGFiZWxzIiwiaW5jbHVkZURlcGVuZGVuY2llcyIsImxhYmVscyIsImZvckVhY2giLCJpbmNsdWRlUmVsZWFzZSIsImZpbGVDb250ZXh0TGFiZWxzIiwicmVsZWFzZUNvbnRleHQiLCJyZWxlYXNlQ29udGV4dExhYmVscyIsImdldFR5cGVzIiwidHlwZXMiLCJmaWxlQ29udGV4dFR5cGVzIiwicmVsZWFzZUNvbnRleHRUeXBlcyIsImdldFJ1bGVzIiwicnVsZXMiLCJmaWxlQ29udGV4dFJ1bGVzIiwicmVsZWFzZUNvbnRleHRSdWxlcyIsImdldEF4aW9tcyIsImF4aW9tcyIsImZpbGVDb250ZXh0QXhpb21zIiwicmVsZWFzZUNvbnRleHRBeGlvbXMiLCJnZXRMZW1tYXMiLCJsZW1tYXMiLCJmaWxlQ29udGV4dExlbW1hcyIsImdldFRoZW9yZW1zIiwidGhlb3JlbXMiLCJmaWxlQ29udGV4dFRoZW9yZW1zIiwicmVsZWFzZUNvbnRleHRUaGVvcmVtcyIsImdldFByb2NlZHVyZXMiLCJwcm9jZWR1cmVzIiwiZmlsZUNvbnRleHRQcm9jZWR1cmVzIiwicmVsZWFzZUNvbnRleHRQcm9jZWR1cmVzIiwiZ2V0TWV0YUxlbW1hcyIsIm1ldGFMZW1tYXMiLCJmaWxlQ29udGV4dE1ldGFMZW1tYXMiLCJnZXRDb25qZWN0dXJlcyIsImNvbmplY3R1cmVzIiwiZmlsZUNvbnRleHRDb25qZWN0dXJlcyIsInJlbGVhc2VDb250ZXh0Q29uamVjdHVyZXMiLCJnZXRDb21iaW5hdG9ycyIsImNvbWJpbmF0b3JzIiwiZmlsZUNvbnRleHRDb21iaW5hdG9ycyIsInJlbGVhc2VDb250ZXh0Q29tYmluYXRvcnMiLCJnZXRDb25zdHJ1Y3RvcnMiLCJjb25zdHJ1Y3RvcnMiLCJmaWxlQ29udGV4dENvbnN0cnVjdG9ycyIsInJlbGVhc2VDb250ZXh0Q29uc3RydWN0b3JzIiwiZ2V0TWV0YXRoZW9yZW1zIiwibWV0YXRoZW9yZW1zIiwiZmlsZUNvbnRleHRNZXRhdGhlb3JlbXMiLCJyZWxlYXNlQ29udGV4dE1ldGF0aGVvcmVtcyIsImFkZEZpbGVDb250ZXh0IiwiZmluZFR5cGVCeVR5cGVOYW1lIiwidHlwZU5hbWUiLCJvYmplY3RUeXBlIiwidHlwZSIsInR5cGVOYW1lTWF0Y2hlcyIsIm1hdGNoVHlwZU5hbWUiLCJnZXRSZWxlYXNlTmFtZSIsInJlbGVhc2VOYW1lIiwiZ2V0RmlsZSIsImdldFZlcnNpb24iLCJnZXRGaWxlUGF0aHMiLCJnZXREZXBlbmRlbmNpZXMiLCJtYXRjaFNob3J0ZW5lZFZlcnNpb24iLCJzaG9ydGVuZWRWZXJzaW9uIiwidHJhY2UiLCJtZXNzYWdlIiwiZGVidWciLCJpbmZvIiwid2FybmluZyIsImVycm9yIiwiaW5pdGlhbGlzZSIsInJlbGVhc2VDb250ZXh0cyIsImNvbWJpbmVkQ3VzdG9tR3JhbW1hciIsImNvbWJpbmVkQ3VzdG9tR3JhbW1hckZyb21SZWxlYXNlQ29udGV4dHMiLCJub21pbmFsTGV4ZXIiLCJub21pbmFsUGFyc2VyIiwiZmlsZUNvbnRleHRzRnJvbUpTT04iLCJmaWxlQ29udGV4dHNGcm9tRW50cmllcyIsInZlcmlmeSIsInZlcmlmaWVkRmlsZUNvbnRleHRzIiwiZmlsZUNvbnRleHRzVmVyaWZpZWQiLCJ2ZXJpZnlGaWxlQ29udGV4dHMiLCJ0b0pTT04iLCJmaWxlQ29udGV4dHNKU09OIiwibWFwIiwiZmlsZUNvbnRleHRKU09OIiwiZnJvbUxvZ05hbWVKU09OQW5kRW50cmllcyIsImN1c3RvbUdyYW1tYXJGcm9tTmFtZUFuZEVudHJpZXMiLCJyZXNvbHZlZCIsImZpbGVDb250ZXh0VmVyaWZpZWQiLCJmaWxlUGF0aEZ1cnRsZUZpbGVQYXRoIiwiZmlsZVBhdGhOb21pbmFsRmlsZVBhdGgiLCJmdXJ0bGVGaWxlQ29udGV4dCIsIkZ1cnRsZUZpbGVDb250ZXh0IiwiZnJvbUZpbGVQYXRoQW5kSlNPTiIsIkZpbGVDb250ZXh0IiwiZm9yRWFjaEZpbGUi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
|
|
580
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L3JlbGVhc2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuaW1wb3J0IHsgRmlsZUNvbnRleHQgYXMgRnVydGxlRmlsZUNvbnRleHQgfSBmcm9tIFwib2NjYW0tZnVydGxlXCI7XG5cbmltcG9ydCB7IGZpbGVQYXRoVXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWVudGl0aWVzXCI7XG5pbXBvcnQgeyBsZXhlcnNVdGlsaXRpZXMsIHBhcnNlcnNVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tY3VzdG9tLWdyYW1tYXJzXCI7XG5cbmltcG9ydCBGaWxlQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9maWxlXCI7XG5pbXBvcnQgTm9taW5hbExleGVyIGZyb20gXCIuLi9ub21pbmFsL2xleGVyXCI7XG5pbXBvcnQgTm9taW5hbFBhcnNlciBmcm9tIFwiLi4vbm9taW5hbC9wYXJzZXJcIjtcblxuaW1wb3J0IHsgb2JqZWN0VHlwZSB9IGZyb20gXCIuLi9kb20vdHlwZVwiO1xuaW1wb3J0IHsgZnJhbWVNZXRhVHlwZSwgcmVmZXJlbmNlTWV0YVR5cGUsIHN0YXRlbWVudE1ldGFUeXBlIH0gZnJvbSBcIi4uL2RvbS9tZXRhVHlwZVwiO1xuaW1wb3J0IHsgY3VzdG9tR3JhbW1hckZyb21OYW1lQW5kRW50cmllcywgY29tYmluZWRDdXN0b21HcmFtbWFyRnJvbVJlbGVhc2VDb250ZXh0cyB9IGZyb20gXCIuLi91dGlsaXRpZXMvY3VzdG9tR3JhbW1hclwiO1xuXG5jb25zdCB7IHRhaWwsIHB1c2gsIGNsZWFyLCByZXNvbHZlIH0gPSBhcnJheVV0aWxpdGllcyxcbiAgICAgIHsgbm9taW5hbExleGVyRnJvbUNvbWJpbmVkQ3VzdG9tR3JhbW1hciB9ID0gbGV4ZXJzVXRpbGl0aWVzLFxuICAgICAgeyBub21pbmFsUGFyc2VyRnJvbUNvbWJpbmVkQ3VzdG9tR3JhbW1hciB9ID0gcGFyc2Vyc1V0aWxpdGllcyxcbiAgICAgIHsgaXNGaWxlUGF0aEZ1cnRsZUZpbGVQYXRoLCBpc0ZpbGVQYXRoTm9taW5hbEZpbGVQYXRoIH0gPSBmaWxlUGF0aFV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmVsZWFzZUNvbnRleHQge1xuICBjb25zdHJ1Y3Rvcihsb2csIG5hbWUsIGpzb24sIGVudHJpZXMsIGxleGVyLCBwYXJzZXIsIHZlcmlmaWVkLCBpbml0aWFsaXNlZCwgZmlsZUNvbnRleHRzLCBjdXN0b21HcmFtbWFyLCBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzKSB7XG4gICAgdGhpcy5sb2cgPSBsb2c7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICB0aGlzLmpzb24gPSBqc29uO1xuICAgIHRoaXMuZW50cmllcyA9IGVudHJpZXM7XG4gICAgdGhpcy5sZXhlciA9IGxleGVyO1xuICAgIHRoaXMucGFyc2VyID0gcGFyc2VyO1xuICAgIHRoaXMudmVyaWZpZWQgPSB2ZXJpZmllZDtcbiAgICB0aGlzLmluaXRpYWxpc2VkID0gaW5pdGlhbGlzZWQ7XG4gICAgdGhpcy5maWxlQ29udGV4dHMgPSBmaWxlQ29udGV4dHM7XG4gICAgdGhpcy5jdXN0b21HcmFtbWFyID0gY3VzdG9tR3JhbW1hcjtcbiAgICB0aGlzLmRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMgPSBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzO1xuICB9XG5cbiAgZ2V0TG9nKCkge1xuICAgIHJldHVybiBsb2c7XG4gIH1cblxuICBnZXROYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cblxuICBnZXRKU09OKCkge1xuICAgIHJldHVybiB0aGlzLmpzb247XG4gIH1cblxuICBnZXRFbnRyaWVzKCkge1xuICAgIHJldHVybiB0aGlzLmVudHJpZXM7XG4gIH1cblxuICBnZXRMZXhlcigpIHtcbiAgICByZXR1cm4gdGhpcy5sZXhlcjtcbiAgfVxuXG4gIGdldFBhcnNlcigpIHtcbiAgICByZXR1cm4gdGhpcy5wYXJzZXI7XG4gIH1cblxuICBnZXRNZXRhVHlwZXMoKSB7XG4gICAgY29uc3QgbWV0YVR5cGVzID0gW1xuICAgICAgZnJhbWVNZXRhVHlwZSxcbiAgICAgIHJlZmVyZW5jZU1ldGFUeXBlLFxuICAgICAgc3RhdGVtZW50TWV0YVR5cGVcbiAgICBdO1xuXG4gICAgcmV0dXJuIG1ldGFUeXBlcztcbiAgfVxuXG4gIGlzVmVyaWZpZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMudmVyaWZpZWQ7XG4gIH1cblxuICBpc0luaXRpYWxpc2VkKCkge1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxpc2VkO1xuICB9XG5cbiAgZ2V0RmlsZUNvbnRleHRzKCkge1xuICAgIHJldHVybiB0aGlzLmZpbGVDb250ZXh0cztcbiAgfVxuXG4gIGdldEN1c3RvbUdyYW1tYXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuY3VzdG9tR3JhbW1hcjtcbiAgfVxuXG4gIGdldERlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cztcbiAgfVxuXG4gIGlzUmVsZWFzZWQoKSB7XG4gICAgY29uc3QgcmVsZWFzZWQgPSAodGhpcy5qc29uICE9PSBudWxsKTtcblxuICAgIHJldHVybiByZWxlYXNlZDtcbiAgfVxuXG4gIGZpbmRGaWxlKGZpbGVQYXRoKSB7IHJldHVybiB0aGlzLmVudHJpZXMuZmluZEZpbGUoZmlsZVBhdGgpOyB9XG5cbiAgZmluZEZpbGVDb250ZXh0KGZpbGVQYXRoKSB7XG4gICAgY29uc3QgZmlsZUNvbnRleHQgPSB0aGlzLmZpbGVDb250ZXh0cy5maW5kKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgZmlsZUNvbnRleHRGaWxlUGF0aCA9IGZpbGVDb250ZXh0LmdldEZpbGVQYXRoKCk7XG5cbiAgICAgIGlmIChmaWxlQ29udGV4dEZpbGVQYXRoID09PSBmaWxlUGF0aCkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBmaWxlQ29udGV4dDtcbiAgfVxuXG4gIGdldExhYmVscyhpbmNsdWRlRGVwZW5kZW5jaWVzID0gdHJ1ZSkge1xuICAgIGNvbnN0IGxhYmVscyA9IFtdO1xuXG4gICAgdGhpcy5maWxlQ29udGV4dHMuZm9yRWFjaCgoZmlsZUNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IGluY2x1ZGVSZWxlYXNlID0gZmFsc2UsXG4gICAgICAgICAgICBmaWxlQ29udGV4dExhYmVscyA9IGZpbGVDb250ZXh0LmdldExhYmVscyhpbmNsdWRlUmVsZWFzZSk7XG5cbiAgICAgIHB1c2gobGFiZWxzLCBmaWxlQ29udGV4dExhYmVscyk7XG4gICAgfSk7XG5cbiAgICBpZiAoaW5jbHVkZURlcGVuZGVuY2llcykge1xuICAgICAgY29uc3QgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyA9IHRoaXMuZ2V0RGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cygpO1xuXG4gICAgICBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzLmZvckVhY2goKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IGluY2x1ZGVEZXBlbmRlbmNpZXMgPSBmYWxzZSxcbiAgICAgICAgICAgICAgcmVsZWFzZUNvbnRleHRMYWJlbHMgPSByZWxlYXNlQ29udGV4dC5nZXRMYWJlbHMoaW5jbHVkZURlcGVuZGVuY2llcyk7XG5cbiAgICAgICAgcHVzaChsYWJlbHMsIHJlbGVhc2VDb250ZXh0TGFiZWxzKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBsYWJlbHM7XG4gIH1cblxuICBnZXRUeXBlcyhpbmNsdWRlRGVwZW5kZW5jaWVzID0gdHJ1ZSkge1xuICAgIGNvbnN0IHR5cGVzID0gW107XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgaW5jbHVkZVJlbGVhc2UgPSBmYWxzZSxcbiAgICAgICAgICAgIGZpbGVDb250ZXh0VHlwZXMgPSBmaWxlQ29udGV4dC5nZXRUeXBlcyhpbmNsdWRlUmVsZWFzZSk7XG5cbiAgICAgIHB1c2godHlwZXMsIGZpbGVDb250ZXh0VHlwZXMpO1xuICAgIH0pO1xuXG4gICAgaWYgKGluY2x1ZGVEZXBlbmRlbmNpZXMpIHtcbiAgICAgIGNvbnN0IGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMgPSB0aGlzLmdldERlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMoKTtcblxuICAgICAgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cy5mb3JFYWNoKChyZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCBpbmNsdWRlRGVwZW5kZW5jaWVzID0gZmFsc2UsXG4gICAgICAgICAgICAgIHJlbGVhc2VDb250ZXh0VHlwZXMgPSByZWxlYXNlQ29udGV4dC5nZXRUeXBlcyhpbmNsdWRlRGVwZW5kZW5jaWVzKTtcblxuICAgICAgICBwdXNoKHR5cGVzLCByZWxlYXNlQ29udGV4dFR5cGVzKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0eXBlcztcbiAgfVxuXG4gIGdldFJ1bGVzKGluY2x1ZGVEZXBlbmRlbmNpZXMgPSB0cnVlKSB7XG4gICAgY29uc3QgcnVsZXMgPSBbXTtcblxuICAgIHRoaXMuZmlsZUNvbnRleHRzLmZvckVhY2goKGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBpbmNsdWRlUmVsZWFzZSA9IGZhbHNlLFxuICAgICAgICAgICAgZmlsZUNvbnRleHRSdWxlcyA9IGZpbGVDb250ZXh0LmdldFJ1bGVzKGluY2x1ZGVSZWxlYXNlKTtcblxuICAgICAgcHVzaChydWxlcywgZmlsZUNvbnRleHRSdWxlcyk7XG4gICAgfSk7XG5cbiAgICBpZiAoaW5jbHVkZURlcGVuZGVuY2llcykge1xuICAgICAgY29uc3QgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyA9IHRoaXMuZ2V0RGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cygpO1xuXG4gICAgICBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzLmZvckVhY2goKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IGluY2x1ZGVEZXBlbmRlbmNpZXMgPSBmYWxzZSxcbiAgICAgICAgICAgICAgcmVsZWFzZUNvbnRleHRSdWxlcyA9IHJlbGVhc2VDb250ZXh0LmdldFJ1bGVzKGluY2x1ZGVEZXBlbmRlbmNpZXMpO1xuXG4gICAgICAgIHB1c2gocnVsZXMsIHJlbGVhc2VDb250ZXh0UnVsZXMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJ1bGVzO1xuICB9XG5cbiAgZ2V0QXhpb21zKGluY2x1ZGVEZXBlbmRlbmNpZXMgPSB0cnVlKSB7XG4gICAgY29uc3QgYXhpb21zID0gW107XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgaW5jbHVkZVJlbGVhc2UgPSBmYWxzZSxcbiAgICAgICAgICAgIGZpbGVDb250ZXh0QXhpb21zID0gZmlsZUNvbnRleHQuZ2V0QXhpb21zKGluY2x1ZGVSZWxlYXNlKTtcblxuICAgICAgcHVzaChheGlvbXMsIGZpbGVDb250ZXh0QXhpb21zKTtcbiAgICB9KTtcblxuICAgIGlmIChpbmNsdWRlRGVwZW5kZW5jaWVzKSB7XG4gICAgICBjb25zdCBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzID0gdGhpcy5nZXREZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzKCk7XG5cbiAgICAgIGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMuZm9yRWFjaCgocmVsZWFzZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgaW5jbHVkZURlcGVuZGVuY2llcyA9IGZhbHNlLFxuICAgICAgICAgICAgICByZWxlYXNlQ29udGV4dEF4aW9tcyA9IHJlbGVhc2VDb250ZXh0LmdldEF4aW9tcyhpbmNsdWRlRGVwZW5kZW5jaWVzKTtcblxuICAgICAgICBwdXNoKGF4aW9tcywgcmVsZWFzZUNvbnRleHRBeGlvbXMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGF4aW9tcztcbiAgfVxuXG4gIGdldExlbW1hcyhpbmNsdWRlRGVwZW5kZW5jaWVzID0gdHJ1ZSkge1xuICAgIGNvbnN0IGxlbW1hcyA9IFtdO1xuXG4gICAgdGhpcy5maWxlQ29udGV4dHMuZm9yRWFjaCgoZmlsZUNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IGluY2x1ZGVSZWxlYXNlID0gZmFsc2UsXG4gICAgICAgICAgICBmaWxlQ29udGV4dExlbW1hcyA9IGZpbGVDb250ZXh0LmdldExlbW1hcyhpbmNsdWRlUmVsZWFzZSk7XG5cbiAgICAgIHB1c2gobGVtbWFzLCBmaWxlQ29udGV4dExlbW1hcyk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbGVtbWFzO1xuICB9XG5cbiAgZ2V0VGhlb3JlbXMoaW5jbHVkZURlcGVuZGVuY2llcyA9IHRydWUpIHtcbiAgICBjb25zdCB0aGVvcmVtcyA9IFtdO1xuXG4gICAgdGhpcy5maWxlQ29udGV4dHMuZm9yRWFjaCgoZmlsZUNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IGluY2x1ZGVSZWxlYXNlID0gZmFsc2UsXG4gICAgICAgICAgICBmaWxlQ29udGV4dFRoZW9yZW1zID0gZmlsZUNvbnRleHQuZ2V0VGhlb3JlbXMoaW5jbHVkZVJlbGVhc2UpO1xuXG4gICAgICBwdXNoKHRoZW9yZW1zLCBmaWxlQ29udGV4dFRoZW9yZW1zKTtcbiAgICB9KTtcblxuICAgIGlmIChpbmNsdWRlRGVwZW5kZW5jaWVzKSB7XG4gICAgICBjb25zdCBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzID0gdGhpcy5nZXREZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzKCk7XG5cbiAgICAgIGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMuZm9yRWFjaCgocmVsZWFzZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgaW5jbHVkZURlcGVuZGVuY2llcyA9IGZhbHNlLFxuICAgICAgICAgICAgICByZWxlYXNlQ29udGV4dFRoZW9yZW1zID0gcmVsZWFzZUNvbnRleHQuZ2V0VGhlb3JlbXMoaW5jbHVkZURlcGVuZGVuY2llcyk7XG5cbiAgICAgICAgcHVzaCh0aGVvcmVtcywgcmVsZWFzZUNvbnRleHRUaGVvcmVtcyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhlb3JlbXM7XG4gIH1cblxuICBnZXRQcm9jZWR1cmVzKGluY2x1ZGVEZXBlbmRlbmNpZXMgPSB0cnVlKSB7XG4gICAgY29uc3QgcHJvY2VkdXJlcyA9IFtdO1xuXG4gICAgdGhpcy5maWxlQ29udGV4dHMuZm9yRWFjaCgoZmlsZUNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IGluY2x1ZGVSZWxlYXNlID0gZmFsc2UsXG4gICAgICAgICAgICBmaWxlQ29udGV4dFByb2NlZHVyZXMgPSBmaWxlQ29udGV4dC5nZXRQcm9jZWR1cmVzKGluY2x1ZGVSZWxlYXNlKTtcblxuICAgICAgcHVzaChwcm9jZWR1cmVzLCBmaWxlQ29udGV4dFByb2NlZHVyZXMpO1xuICAgIH0pO1xuXG4gICAgaWYgKGluY2x1ZGVEZXBlbmRlbmNpZXMpIHtcbiAgICAgIGNvbnN0IGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMgPSB0aGlzLmdldERlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMoKTtcblxuICAgICAgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cy5mb3JFYWNoKChyZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCBpbmNsdWRlRGVwZW5kZW5jaWVzID0gZmFsc2UsXG4gICAgICAgICAgcmVsZWFzZUNvbnRleHRQcm9jZWR1cmVzID0gcmVsZWFzZUNvbnRleHQuZ2V0UHJvY2VkdXJlcyhpbmNsdWRlRGVwZW5kZW5jaWVzKTtcblxuICAgICAgICBwdXNoKHByb2NlZHVyZXMsIHJlbGVhc2VDb250ZXh0UHJvY2VkdXJlcyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcHJvY2VkdXJlcztcbiAgfVxuXG4gIGdldE1ldGFMZW1tYXMoaW5jbHVkZURlcGVuZGVuY2llcyA9IHRydWUpIHtcbiAgICBjb25zdCBtZXRhTGVtbWFzID0gW107XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgaW5jbHVkZVJlbGVhc2UgPSBmYWxzZSxcbiAgICAgICAgICAgIGZpbGVDb250ZXh0TWV0YUxlbW1hcyA9IGZpbGVDb250ZXh0LmdldE1ldGFMZW1tYXMoaW5jbHVkZVJlbGVhc2UpO1xuXG4gICAgICBwdXNoKG1ldGFMZW1tYXMsIGZpbGVDb250ZXh0TWV0YUxlbW1hcyk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbWV0YUxlbW1hcztcbiAgfVxuXG4gIGdldENvbmplY3R1cmVzKGluY2x1ZGVEZXBlbmRlbmNpZXMgPSB0cnVlKSB7XG4gICAgY29uc3QgY29uamVjdHVyZXMgPSBbXTtcblxuICAgIHRoaXMuZmlsZUNvbnRleHRzLmZvckVhY2goKGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBpbmNsdWRlUmVsZWFzZSA9IGZhbHNlLFxuICAgICAgICAgICAgZmlsZUNvbnRleHRDb25qZWN0dXJlcyA9IGZpbGVDb250ZXh0LmdldENvbmplY3R1cmVzKGluY2x1ZGVSZWxlYXNlKTtcblxuICAgICAgcHVzaChjb25qZWN0dXJlcywgZmlsZUNvbnRleHRDb25qZWN0dXJlcyk7XG4gICAgfSk7XG5cbiAgICBpZiAoaW5jbHVkZURlcGVuZGVuY2llcykge1xuICAgICAgY29uc3QgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyA9IHRoaXMuZ2V0RGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cygpO1xuXG4gICAgICBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzLmZvckVhY2goKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IGluY2x1ZGVEZXBlbmRlbmNpZXMgPSBmYWxzZSxcbiAgICAgICAgICAgICAgcmVsZWFzZUNvbnRleHRDb25qZWN0dXJlcyA9IHJlbGVhc2VDb250ZXh0LmdldENvbmplY3R1cmVzKGluY2x1ZGVEZXBlbmRlbmNpZXMpO1xuXG4gICAgICAgIHB1c2goY29uamVjdHVyZXMsIHJlbGVhc2VDb250ZXh0Q29uamVjdHVyZXMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbmplY3R1cmVzO1xuICB9XG5cbiAgZ2V0Q29tYmluYXRvcnMoaW5jbHVkZURlcGVuZGVuY2llcyA9IHRydWUpIHtcbiAgICBjb25zdCBjb21iaW5hdG9ycyA9IFtdO1xuXG4gICAgdGhpcy5maWxlQ29udGV4dHMuZm9yRWFjaCgoZmlsZUNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IGluY2x1ZGVSZWxlYXNlID0gZmFsc2UsXG4gICAgICAgICAgICBmaWxlQ29udGV4dENvbWJpbmF0b3JzID0gZmlsZUNvbnRleHQuZ2V0Q29tYmluYXRvcnMoaW5jbHVkZVJlbGVhc2UpO1xuXG4gICAgICBwdXNoKGNvbWJpbmF0b3JzLCBmaWxlQ29udGV4dENvbWJpbmF0b3JzKTtcbiAgICB9KTtcblxuICAgIGlmIChpbmNsdWRlRGVwZW5kZW5jaWVzKSB7XG4gICAgICBjb25zdCBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzID0gdGhpcy5nZXREZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzKCk7XG5cbiAgICAgIGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMuZm9yRWFjaCgocmVsZWFzZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgaW5jbHVkZURlcGVuZGVuY2llcyA9IGZhbHNlLFxuICAgICAgICAgICAgICByZWxlYXNlQ29udGV4dENvbWJpbmF0b3JzID0gcmVsZWFzZUNvbnRleHQuZ2V0Q29tYmluYXRvcnMoaW5jbHVkZURlcGVuZGVuY2llcyk7XG5cbiAgICAgICAgcHVzaChjb21iaW5hdG9ycywgcmVsZWFzZUNvbnRleHRDb21iaW5hdG9ycyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29tYmluYXRvcnM7XG4gIH1cblxuICBnZXRDb25zdHJ1Y3RvcnMoaW5jbHVkZURlcGVuZGVuY2llcyA9IHRydWUpIHtcbiAgICBjb25zdCBjb25zdHJ1Y3RvcnMgPSBbXTtcblxuICAgIHRoaXMuZmlsZUNvbnRleHRzLmZvckVhY2goKGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBpbmNsdWRlUmVsZWFzZSA9IGZhbHNlLFxuICAgICAgICAgICAgZmlsZUNvbnRleHRDb25zdHJ1Y3RvcnMgPSBmaWxlQ29udGV4dC5nZXRDb25zdHJ1Y3RvcnMoaW5jbHVkZVJlbGVhc2UpO1xuXG4gICAgICBwdXNoKGNvbnN0cnVjdG9ycywgZmlsZUNvbnRleHRDb25zdHJ1Y3RvcnMpO1xuICAgIH0pO1xuXG4gICAgaWYgKGluY2x1ZGVEZXBlbmRlbmNpZXMpIHtcbiAgICAgIGNvbnN0IGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMgPSB0aGlzLmdldERlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMoKTtcblxuICAgICAgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cy5mb3JFYWNoKChyZWxlYXNlQ29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCBpbmNsdWRlRGVwZW5kZW5jaWVzID0gZmFsc2UsXG4gICAgICAgICAgICAgIHJlbGVhc2VDb250ZXh0Q29uc3RydWN0b3JzID0gcmVsZWFzZUNvbnRleHQuZ2V0Q29uc3RydWN0b3JzKGluY2x1ZGVEZXBlbmRlbmNpZXMpO1xuXG4gICAgICAgIHB1c2goY29uc3RydWN0b3JzLCByZWxlYXNlQ29udGV4dENvbnN0cnVjdG9ycyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29uc3RydWN0b3JzO1xuICB9XG5cbiAgZ2V0TWV0YXRoZW9yZW1zKGluY2x1ZGVEZXBlbmRlbmNpZXMgPSB0cnVlKSB7XG4gICAgY29uc3QgbWV0YXRoZW9yZW1zID0gW107XG5cbiAgICB0aGlzLmZpbGVDb250ZXh0cy5mb3JFYWNoKChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgaW5jbHVkZVJlbGVhc2UgPSBmYWxzZSxcbiAgICAgICAgICAgIGZpbGVDb250ZXh0TWV0YXRoZW9yZW1zID0gZmlsZUNvbnRleHQuZ2V0TWV0YXRoZW9yZW1zKGluY2x1ZGVSZWxlYXNlKTtcblxuICAgICAgcHVzaChtZXRhdGhlb3JlbXMsIGZpbGVDb250ZXh0TWV0YXRoZW9yZW1zKTtcbiAgICB9KTtcblxuICAgIGlmIChpbmNsdWRlRGVwZW5kZW5jaWVzKSB7XG4gICAgICBjb25zdCBkZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzID0gdGhpcy5nZXREZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzKCk7XG5cbiAgICAgIGRlcGVuZGVuY3lSZWxlYXNlQ29udGV4dHMuZm9yRWFjaCgocmVsZWFzZUNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgaW5jbHVkZURlcGVuZGVuY2llcyA9IGZhbHNlLFxuICAgICAgICAgICAgICByZWxlYXNlQ29udGV4dE1ldGF0aGVvcmVtcyA9IHJlbGVhc2VDb250ZXh0LmdldE1ldGF0aGVvcmVtcyhpbmNsdWRlRGVwZW5kZW5jaWVzKTtcblxuICAgICAgICBwdXNoKG1ldGF0aGVvcmVtcywgcmVsZWFzZUNvbnRleHRNZXRhdGhlb3JlbXMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1ldGF0aGVvcmVtcztcbiAgfVxuXG4gIGFkZEZpbGVDb250ZXh0KGZpbGVDb250ZXh0KSB7XG4gICAgdGhpcy5maWxlQ29udGV4dHMucHVzaChmaWxlQ29udGV4dCk7XG4gIH1cblxuICBmaW5kVHlwZUJ5VHlwZU5hbWUodHlwZU5hbWUpIHtcbiAgICBsZXQgdHlwZXMgPSB0aGlzLmdldFR5cGVzKCk7XG5cbiAgICB0eXBlcyA9IFtcbiAgICAgIC4uLnR5cGVzLFxuICAgICAgb2JqZWN0VHlwZVxuICAgIF07XG5cbiAgICBjb25zdCB0eXBlID0gdHlwZXMuZmluZCgodHlwZSkgPT4ge1xuICAgICAgY29uc3QgdHlwZU5hbWVNYXRjaGVzID0gdHlwZS5tYXRjaFR5cGVOYW1lKHR5cGVOYW1lKTtcblxuICAgICAgaWYgKHR5cGVOYW1lTWF0Y2hlcykge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cblxuICBnZXRSZWxlYXNlTmFtZSgpIHtcbiAgICBjb25zdCBuYW1lID0gdGhpcy5nZXROYW1lKCksXG4gICAgICAgICAgcmVsZWFzZU5hbWUgPSBuYW1lOyAvLy9cblxuICAgIHJldHVybiByZWxlYXNlTmFtZTtcbiAgfVxuXG4gIGdldEZpbGUoZmlsZVBhdGgpIHsgcmV0dXJuIHRoaXMuZW50cmllcy5nZXRGaWxlKGZpbGVQYXRoKTsgfVxuXG4gIGdldFZlcnNpb24oKSB7IHJldHVybiB0aGlzLmVudHJpZXMuZ2V0VmVyc2lvbigpOyB9XG5cbiAgZ2V0RmlsZVBhdGhzKCkgeyByZXR1cm4gdGhpcy5lbnRyaWVzLmdldEZpbGVQYXRocygpOyB9XG5cbiAgZ2V0RGVwZW5kZW5jaWVzKCkgeyByZXR1cm4gdGhpcy5lbnRyaWVzLmdldERlcGVuZGVuY2llcygpOyB9XG5cbiAgbWF0Y2hTaG9ydGVuZWRWZXJzaW9uKHNob3J0ZW5lZFZlcnNpb24pIHsgcmV0dXJuIHRoaXMuZW50cmllcy5tYXRjaFNob3J0ZW5lZFZlcnNpb24oc2hvcnRlbmVkVmVyc2lvbik7IH1cblxuICB0cmFjZShtZXNzYWdlLCBmaWxlUGF0aCA9IG51bGwpIHsgdGhpcy5sb2cudHJhY2UobWVzc2FnZSwgZmlsZVBhdGgpOyB9XG5cbiAgZGVidWcobWVzc2FnZSwgZmlsZVBhdGggPSBudWxsKSB7IHRoaXMubG9nLmRlYnVnKG1lc3NhZ2UsIGZpbGVQYXRoKTsgfVxuXG4gIGluZm8obWVzc2FnZSwgZmlsZVBhdGggPSBudWxsKSB7IHRoaXMubG9nLmluZm8obWVzc2FnZSwgZmlsZVBhdGgpOyB9XG5cbiAgd2FybmluZyhtZXNzYWdlLCBmaWxlUGF0aCA9IG51bGwpIHsgdGhpcy5sb2cud2FybmluZyhtZXNzYWdlLCBmaWxlUGF0aCk7IH1cblxuICBlcnJvcihtZXNzYWdlLCBmaWxlUGF0aCA9IG51bGwpIHsgdGhpcy5sb2cuZXJyb3IobWVzc2FnZSwgZmlsZVBhdGgpOyB9XG5cbiAgaW5pdGlhbGlzZShyZWxlYXNlQ29udGV4dHMpIHtcbiAgICBjb25zdCBjb21iaW5lZEN1c3RvbUdyYW1tYXIgPSBjb21iaW5lZEN1c3RvbUdyYW1tYXJGcm9tUmVsZWFzZUNvbnRleHRzKHJlbGVhc2VDb250ZXh0cyksXG4gICAgICAgICAgbm9taW5hbExleGVyID0gbm9taW5hbExleGVyRnJvbUNvbWJpbmVkQ3VzdG9tR3JhbW1hcihOb21pbmFsTGV4ZXIsIGNvbWJpbmVkQ3VzdG9tR3JhbW1hciksXG4gICAgICAgICAgbm9taW5hbFBhcnNlciA9IG5vbWluYWxQYXJzZXJGcm9tQ29tYmluZWRDdXN0b21HcmFtbWFyKE5vbWluYWxQYXJzZXIsIGNvbWJpbmVkQ3VzdG9tR3JhbW1hciksXG4gICAgICAgICAgcmVsZWFzZUNvbnRleHQgPSB0aGlzLCAgLy8vXG4gICAgICAgICAgcmVsZWFzZWQgPSB0aGlzLmlzUmVsZWFzZWQoKTtcblxuICAgIHRoaXMuZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyA9IHRhaWwocmVsZWFzZUNvbnRleHRzKTsgLy8vXG5cbiAgICB0aGlzLmxleGVyID0gbm9taW5hbExleGVyOyAvLy9cblxuICAgIHRoaXMucGFyc2VyID0gbm9taW5hbFBhcnNlcjsgLy8vXG5cbiAgICBjbGVhcih0aGlzLmZpbGVDb250ZXh0cyk7XG5cbiAgICByZWxlYXNlZCA/XG4gICAgICBmaWxlQ29udGV4dHNGcm9tSlNPTih0aGlzLmpzb24sIHRoaXMuZmlsZUNvbnRleHRzLCByZWxlYXNlQ29udGV4dCkgOlxuICAgICAgICBmaWxlQ29udGV4dHNGcm9tRW50cmllcyh0aGlzLmVudHJpZXMsIHRoaXMuZmlsZUNvbnRleHRzLCByZWxlYXNlQ29udGV4dCk7XG5cbiAgICB0aGlzLmluaXRpYWxpc2VkID0gdHJ1ZTtcbiAgfVxuXG4gIHZlcmlmeSgpIHtcbiAgICBsZXQgdmVyaWZpZWQgPSBmYWxzZTtcblxuICAgIGNvbnN0IHZlcmlmaWVkRmlsZUNvbnRleHRzID0gW10sXG4gICAgICAgICAgZmlsZUNvbnRleHRzVmVyaWZpZWQgPSB2ZXJpZnlGaWxlQ29udGV4dHModGhpcy5maWxlQ29udGV4dHMsIHZlcmlmaWVkRmlsZUNvbnRleHRzKTtcblxuICAgIGlmIChmaWxlQ29udGV4dHNWZXJpZmllZCkge1xuICAgICAgdGhpcy5maWxlQ29udGV4dHMgPSB2ZXJpZmllZEZpbGVDb250ZXh0czsgLy8vXG5cbiAgICAgIHRoaXMudmVyaWZpZWQgPSB0cnVlO1xuXG4gICAgICB2ZXJpZmllZCA9IHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVkO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IGZpbGVDb250ZXh0c0pTT04gPSB0aGlzLmZpbGVDb250ZXh0cy5tYXAoKGZpbGVDb250ZXh0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmaWxlQ29udGV4dEpTT04gPSBmaWxlQ29udGV4dC50b0pTT04oKTtcblxuICAgICAgICAgICAgcmV0dXJuIGZpbGVDb250ZXh0SlNPTjtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBqc29uID0gZmlsZUNvbnRleHRzSlNPTjsgIC8vL1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgZnJvbUxvZ05hbWVKU09OQW5kRW50cmllcyhsb2csIG5hbWUsIGpzb24sIGVudHJpZXMpIHtcbiAgICBjb25zdCBsZXhlciA9IG51bGwsXG4gICAgICAgICAgcGFyc2VyID0gbnVsbCxcbiAgICAgICAgICB2ZXJpZmllZCA9IGZhbHNlLFxuICAgICAgICAgIGluaXRpYWxpc2VkID0gZmFsc2UsXG4gICAgICAgICAgZmlsZUNvbnRleHRzID0gW10sXG4gICAgICAgICAgY3VzdG9tR3JhbW1hciA9IGN1c3RvbUdyYW1tYXJGcm9tTmFtZUFuZEVudHJpZXMobmFtZSwgZW50cmllcyksXG4gICAgICAgICAgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyA9IG51bGwsXG4gICAgICAgICAgcmVsZWFzZUNvbnRleHQgPSBuZXcgUmVsZWFzZUNvbnRleHQobG9nLCBuYW1lLCBqc29uLCBlbnRyaWVzLCBsZXhlciwgcGFyc2VyLCB2ZXJpZmllZCwgaW5pdGlhbGlzZWQsIGZpbGVDb250ZXh0cywgY3VzdG9tR3JhbW1hciwgZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyk7XG5cbiAgICByZXR1cm4gcmVsZWFzZUNvbnRleHQ7XG4gIH1cbn1cblxuZnVuY3Rpb24gdmVyaWZ5RmlsZUNvbnRleHRzKGZpbGVDb250ZXh0cywgdmVyaWZpZWRGaWxlQ29udGV4dHMpIHtcbiAgY29uc3QgcmVzb2x2ZWQgPSByZXNvbHZlKGZpbGVDb250ZXh0cywgdmVyaWZpZWRGaWxlQ29udGV4dHMsIChmaWxlQ29udGV4dCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGZpbGVDb250ZXh0VmVyaWZpZWQgPSBmaWxlQ29udGV4dC52ZXJpZnkoKTtcblxuICAgICAgICAgIGlmIChmaWxlQ29udGV4dFZlcmlmaWVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBmaWxlQ29udGV4dHNWZXJpZmllZCA9IHJlc29sdmVkOyAgLy8vXG5cbiAgcmV0dXJuIGZpbGVDb250ZXh0c1ZlcmlmaWVkO1xufVxuXG5mdW5jdGlvbiBmaWxlQ29udGV4dHNGcm9tSlNPTihqc29uLGZpbGVDb250ZXh0cywgcmVsZWFzZUNvbnRleHQpIHtcbiAgY29uc3QgZmlsZUNvbnRleHRzSlNPTiA9IGpzb247ICAvLy9cblxuICBmaWxlQ29udGV4dHNKU09OLmZvckVhY2goKGZpbGVDb250ZXh0SlNPTikgPT4ge1xuICAgIGNvbnN0IHsgZmlsZVBhdGggfSA9IGZpbGVDb250ZXh0SlNPTixcbiAgICAgICAgICBqc29uID0gZmlsZUNvbnRleHRKU09OLCAvLy9cbiAgICAgICAgICBmaWxlUGF0aEZ1cnRsZUZpbGVQYXRoID0gaXNGaWxlUGF0aEZ1cnRsZUZpbGVQYXRoKGZpbGVQYXRoKSxcbiAgICAgICAgICBmaWxlUGF0aE5vbWluYWxGaWxlUGF0aCA9IGlzRmlsZVBhdGhOb21pbmFsRmlsZVBhdGgoZmlsZVBhdGgpO1xuXG4gICAgaWYgKGZpbGVQYXRoRnVydGxlRmlsZVBhdGgpIHtcbiAgICAgIGNvbnN0IGZ1cnRsZUZpbGVDb250ZXh0ID0gRnVydGxlRmlsZUNvbnRleHQuZnJvbUZpbGVQYXRoQW5kSlNPTihmaWxlUGF0aCwganNvbiwgcmVsZWFzZUNvbnRleHQpLFxuICAgICAgICAgICAgZmlsZUNvbnRleHQgPSBmdXJ0bGVGaWxlQ29udGV4dDsgIC8vL1xuXG4gICAgICBmaWxlQ29udGV4dHMucHVzaChmaWxlQ29udGV4dCk7XG4gICAgfVxuXG4gICAgaWYgKGZpbGVQYXRoTm9taW5hbEZpbGVQYXRoKSB7XG4gICAgICBjb25zdCBmaWxlQ29udGV4dCA9IEZpbGVDb250ZXh0LmZyb21GaWxlUGF0aEFuZEpTT04oZmlsZVBhdGgsIGpzb24sIHJlbGVhc2VDb250ZXh0KTtcblxuICAgICAgZmlsZUNvbnRleHRzLnB1c2goZmlsZUNvbnRleHQpO1xuICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGZpbGVDb250ZXh0c0Zyb21FbnRyaWVzKGVudHJpZXMsIGZpbGVDb250ZXh0cywgcmVsZWFzZUNvbnRleHQpIHtcbiAgZW50cmllcy5mb3JFYWNoRmlsZSgoZmlsZSkgPT4ge1xuICAgIGNvbnN0IGZpbGVQYXRoID0gZmlsZS5nZXRQYXRoKCksXG4gICAgICAgICAgZmlsZVBhdGhGdXJ0bGVGaWxlUGF0aCA9IGlzRmlsZVBhdGhGdXJ0bGVGaWxlUGF0aChmaWxlUGF0aCksXG4gICAgICAgICAgZmlsZVBhdGhOb21pbmFsRmlsZVBhdGggPSBpc0ZpbGVQYXRoTm9taW5hbEZpbGVQYXRoKGZpbGVQYXRoKTtcblxuICAgIGlmIChmaWxlUGF0aEZ1cnRsZUZpbGVQYXRoKSB7XG4gICAgICBjb25zdCBmdXJ0bGVGaWxlQ29udGV4dCA9IEZ1cnRsZUZpbGVDb250ZXh0LmZyb21GaWxlKGZpbGUsIHJlbGVhc2VDb250ZXh0KSxcbiAgICAgICAgICAgIGZpbGVDb250ZXh0ID0gZnVydGxlRmlsZUNvbnRleHQ7ICAvLy9cblxuICAgICAgZmlsZUNvbnRleHRzLnB1c2goZmlsZUNvbnRleHQpO1xuICAgIH1cblxuICAgIGlmIChmaWxlUGF0aE5vbWluYWxGaWxlUGF0aCkge1xuICAgICAgY29uc3QgZmlsZUNvbnRleHQgPSBGaWxlQ29udGV4dC5mcm9tRmlsZShmaWxlLCByZWxlYXNlQ29udGV4dCk7XG5cbiAgICAgIGZpbGVDb250ZXh0cy5wdXNoKGZpbGVDb250ZXh0KTtcbiAgICB9XG4gIH0pO1xufVxuIl0sIm5hbWVzIjpbIlJlbGVhc2VDb250ZXh0IiwidGFpbCIsImFycmF5VXRpbGl0aWVzIiwicHVzaCIsImNsZWFyIiwicmVzb2x2ZSIsIm5vbWluYWxMZXhlckZyb21Db21iaW5lZEN1c3RvbUdyYW1tYXIiLCJsZXhlcnNVdGlsaXRpZXMiLCJub21pbmFsUGFyc2VyRnJvbUNvbWJpbmVkQ3VzdG9tR3JhbW1hciIsInBhcnNlcnNVdGlsaXRpZXMiLCJpc0ZpbGVQYXRoRnVydGxlRmlsZVBhdGgiLCJmaWxlUGF0aFV0aWxpdGllcyIsImlzRmlsZVBhdGhOb21pbmFsRmlsZVBhdGgiLCJsb2ciLCJuYW1lIiwianNvbiIsImVudHJpZXMiLCJsZXhlciIsInBhcnNlciIsInZlcmlmaWVkIiwiaW5pdGlhbGlzZWQiLCJmaWxlQ29udGV4dHMiLCJjdXN0b21HcmFtbWFyIiwiZGVwZW5kZW5jeVJlbGVhc2VDb250ZXh0cyIsImdldExvZyIsImdldE5hbWUiLCJnZXRKU09OIiwiZ2V0RW50cmllcyIsImdldExleGVyIiwiZ2V0UGFyc2VyIiwiZ2V0TWV0YVR5cGVzIiwibWV0YVR5cGVzIiwiZnJhbWVNZXRhVHlwZSIsInJlZmVyZW5jZU1ldGFUeXBlIiwic3RhdGVtZW50TWV0YVR5cGUiLCJpc1ZlcmlmaWVkIiwiaXNJbml0aWFsaXNlZCIsImdldEZpbGVDb250ZXh0cyIsImdldEN1c3RvbUdyYW1tYXIiLCJnZXREZXBlbmRlbmN5UmVsZWFzZUNvbnRleHRzIiwiaXNSZWxlYXNlZCIsInJlbGVhc2VkIiwiZmluZEZpbGUiLCJmaWxlUGF0aCIsImZpbmRGaWxlQ29udGV4dCIsImZpbGVDb250ZXh0IiwiZmluZCIsImZpbGVDb250ZXh0RmlsZVBhdGgiLCJnZXRGaWxlUGF0aCIsImdldExhYmVscyIsImluY2x1ZGVEZXBlbmRlbmNpZXMiLCJsYWJlbHMiLCJmb3JFYWNoIiwiaW5jbHVkZVJlbGVhc2UiLCJmaWxlQ29udGV4dExhYmVscyIsInJlbGVhc2VDb250ZXh0IiwicmVsZWFzZUNvbnRleHRMYWJlbHMiLCJnZXRUeXBlcyIsInR5cGVzIiwiZmlsZUNvbnRleHRUeXBlcyIsInJlbGVhc2VDb250ZXh0VHlwZXMiLCJnZXRSdWxlcyIsInJ1bGVzIiwiZmlsZUNvbnRleHRSdWxlcyIsInJlbGVhc2VDb250ZXh0UnVsZXMiLCJnZXRBeGlvbXMiLCJheGlvbXMiLCJmaWxlQ29udGV4dEF4aW9tcyIsInJlbGVhc2VDb250ZXh0QXhpb21zIiwiZ2V0TGVtbWFzIiwibGVtbWFzIiwiZmlsZUNvbnRleHRMZW1tYXMiLCJnZXRUaGVvcmVtcyIsInRoZW9yZW1zIiwiZmlsZUNvbnRleHRUaGVvcmVtcyIsInJlbGVhc2VDb250ZXh0VGhlb3JlbXMiLCJnZXRQcm9jZWR1cmVzIiwicHJvY2VkdXJlcyIsImZpbGVDb250ZXh0UHJvY2VkdXJlcyIsInJlbGVhc2VDb250ZXh0UHJvY2VkdXJlcyIsImdldE1ldGFMZW1tYXMiLCJtZXRhTGVtbWFzIiwiZmlsZUNvbnRleHRNZXRhTGVtbWFzIiwiZ2V0Q29uamVjdHVyZXMiLCJjb25qZWN0dXJlcyIsImZpbGVDb250ZXh0Q29uamVjdHVyZXMiLCJyZWxlYXNlQ29udGV4dENvbmplY3R1cmVzIiwiZ2V0Q29tYmluYXRvcnMiLCJjb21iaW5hdG9ycyIsImZpbGVDb250ZXh0Q29tYmluYXRvcnMiLCJyZWxlYXNlQ29udGV4dENvbWJpbmF0b3JzIiwiZ2V0Q29uc3RydWN0b3JzIiwiY29uc3RydWN0b3JzIiwiZmlsZUNvbnRleHRDb25zdHJ1Y3RvcnMiLCJyZWxlYXNlQ29udGV4dENvbnN0cnVjdG9ycyIsImdldE1ldGF0aGVvcmVtcyIsIm1ldGF0aGVvcmVtcyIsImZpbGVDb250ZXh0TWV0YXRoZW9yZW1zIiwicmVsZWFzZUNvbnRleHRNZXRhdGhlb3JlbXMiLCJhZGRGaWxlQ29udGV4dCIsImZpbmRUeXBlQnlUeXBlTmFtZSIsInR5cGVOYW1lIiwib2JqZWN0VHlwZSIsInR5cGUiLCJ0eXBlTmFtZU1hdGNoZXMiLCJtYXRjaFR5cGVOYW1lIiwiZ2V0UmVsZWFzZU5hbWUiLCJyZWxlYXNlTmFtZSIsImdldEZpbGUiLCJnZXRWZXJzaW9uIiwiZ2V0RmlsZVBhdGhzIiwiZ2V0RGVwZW5kZW5jaWVzIiwibWF0Y2hTaG9ydGVuZWRWZXJzaW9uIiwic2hvcnRlbmVkVmVyc2lvbiIsInRyYWNlIiwibWVzc2FnZSIsImRlYnVnIiwiaW5mbyIsIndhcm5pbmciLCJlcnJvciIsImluaXRpYWxpc2UiLCJyZWxlYXNlQ29udGV4dHMiLCJjb21iaW5lZEN1c3RvbUdyYW1tYXIiLCJjb21iaW5lZEN1c3RvbUdyYW1tYXJGcm9tUmVsZWFzZUNvbnRleHRzIiwibm9taW5hbExleGVyIiwiTm9taW5hbExleGVyIiwibm9taW5hbFBhcnNlciIsIk5vbWluYWxQYXJzZXIiLCJmaWxlQ29udGV4dHNGcm9tSlNPTiIsImZpbGVDb250ZXh0c0Zyb21FbnRyaWVzIiwidmVyaWZ5IiwidmVyaWZpZWRGaWxlQ29udGV4dHMiLCJmaWxlQ29udGV4dHNWZXJpZmllZCIsInZlcmlmeUZpbGVDb250ZXh0cyIsInRvSlNPTiIsImZpbGVDb250ZXh0c0pTT04iLCJtYXAiLCJmaWxlQ29udGV4dEpTT04iLCJmcm9tTG9nTmFtZUpTT05BbmRFbnRyaWVzIiwiY3VzdG9tR3JhbW1hckZyb21OYW1lQW5kRW50cmllcyIsInJlc29sdmVkIiwiZmlsZUNvbnRleHRWZXJpZmllZCIsImZpbGVQYXRoRnVydGxlRmlsZVBhdGgiLCJmaWxlUGF0aE5vbWluYWxGaWxlUGF0aCIsImZ1cnRsZUZpbGVDb250ZXh0IiwiRnVydGxlRmlsZUNvbnRleHQiLCJmcm9tRmlsZVBhdGhBbmRKU09OIiwiRmlsZUNvbnRleHQiLCJmb3JFYWNoRmlsZSIsImZpbGUiLCJnZXRQYXRoIiwiZnJvbUZpbGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBcUJxQkE7Ozt5QkFuQlU7MkJBQ2tCOzZCQUVmO21DQUNnQjsyREFFMUI7NERBQ0M7NkRBQ0M7b0JBRUM7d0JBQ3lDOzZCQUNzQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFMUYsSUFBUUMsT0FBK0JDLHlCQUFjLENBQTdDRCxNQUFNRSxPQUF5QkQseUJBQWMsQ0FBdkNDLE1BQU1DLFFBQW1CRix5QkFBYyxDQUFqQ0UsT0FBT0MsVUFBWUgseUJBQWMsQ0FBMUJHLFNBQ3JCLEFBQUVDLHdDQUEwQ0Msb0NBQWUsQ0FBekRELHVDQUNGLEFBQUVFLHlDQUEyQ0MscUNBQWdCLENBQTNERCx3Q0FDQUUsMkJBQXdEQyxnQ0FBaUIsQ0FBekVELDBCQUEwQkUsNEJBQThCRCxnQ0FBaUIsQ0FBL0NDO0FBRW5CLElBQUEsQUFBTVosK0JBQU47YUFBTUEsZUFDUGEsSUFBRyxFQUFFQyxJQUFJLEVBQUVDLElBQUksRUFBRUMsT0FBTyxFQUFFQyxLQUFLLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxFQUFFQyxXQUFXLEVBQUVDLFlBQVksRUFBRUMsYUFBYSxFQUFFQyx5QkFBeUI7Z0NBRC9HdkI7UUFFakIsSUFBSSxDQUFDYSxHQUFHLEdBQUdBO1FBQ1gsSUFBSSxDQUFDQyxJQUFJLEdBQUdBO1FBQ1osSUFBSSxDQUFDQyxJQUFJLEdBQUdBO1FBQ1osSUFBSSxDQUFDQyxPQUFPLEdBQUdBO1FBQ2YsSUFBSSxDQUFDQyxLQUFLLEdBQUdBO1FBQ2IsSUFBSSxDQUFDQyxNQUFNLEdBQUdBO1FBQ2Qs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
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return _default;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _Node = /*#__PURE__*/ _interop_require_default(require("./Node"));
|
|
12
|
+
function _interop_require_default(obj) {
|
|
13
|
+
return obj && obj.__esModule ? obj : {
|
|
14
|
+
default: obj
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
var defaultNonTerminalNode = _Node.default; ///
|
|
18
|
+
var _default = defaultNonTerminalNode;
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWZhdWx0VGVybWluYWxOb2RlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgTm9kZSBmcm9tIFwiLi9Ob2RlXCI7XG5cbmNvbnN0IGRlZmF1bHROb25UZXJtaW5hbE5vZGUgPSBOb2RlOyAgLy8vXG5cbmV4cG9ydCBkZWZhdWx0IGRlZmF1bHROb25UZXJtaW5hbE5vZGU7XG4iXSwibmFtZXMiOlsiZGVmYXVsdE5vblRlcm1pbmFsTm9kZSIsIk5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQU1BOzs7ZUFBQTs7OzJEQUppQjs7Ozs7O0FBRWpCLElBQU1BLHlCQUF5QkMsYUFBSSxFQUFHLEdBQUc7SUFFekMsV0FBZUQifQ==
|
package/lib/node.js
CHANGED
|
@@ -10,14 +10,6 @@ Object.defineProperty(exports, "default", {
|
|
|
10
10
|
});
|
|
11
11
|
var _occamparsers = require("occam-parsers");
|
|
12
12
|
var _node = /*#__PURE__*/ _interop_require_default(require("./mixins/node"));
|
|
13
|
-
function _array_like_to_array(arr, len) {
|
|
14
|
-
if (len == null || len > arr.length) len = arr.length;
|
|
15
|
-
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
16
|
-
return arr2;
|
|
17
|
-
}
|
|
18
|
-
function _array_without_holes(arr) {
|
|
19
|
-
if (Array.isArray(arr)) return _array_like_to_array(arr);
|
|
20
|
-
}
|
|
21
13
|
function _assert_this_initialized(self) {
|
|
22
14
|
if (self === void 0) {
|
|
23
15
|
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
@@ -71,12 +63,6 @@ function _interop_require_default(obj) {
|
|
|
71
63
|
default: obj
|
|
72
64
|
};
|
|
73
65
|
}
|
|
74
|
-
function _iterable_to_array(iter) {
|
|
75
|
-
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
76
|
-
}
|
|
77
|
-
function _non_iterable_spread() {
|
|
78
|
-
throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
79
|
-
}
|
|
80
66
|
function _possible_constructor_return(self, call) {
|
|
81
67
|
if (call && (_type_of(call) === "object" || typeof call === "function")) {
|
|
82
68
|
return call;
|
|
@@ -90,21 +76,10 @@ function _set_prototype_of(o, p) {
|
|
|
90
76
|
};
|
|
91
77
|
return _set_prototype_of(o, p);
|
|
92
78
|
}
|
|
93
|
-
function _to_consumable_array(arr) {
|
|
94
|
-
return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
|
|
95
|
-
}
|
|
96
79
|
function _type_of(obj) {
|
|
97
80
|
"@swc/helpers - typeof";
|
|
98
81
|
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
99
82
|
}
|
|
100
|
-
function _unsupported_iterable_to_array(o, minLen) {
|
|
101
|
-
if (!o) return;
|
|
102
|
-
if (typeof o === "string") return _array_like_to_array(o, minLen);
|
|
103
|
-
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
104
|
-
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
105
|
-
if (n === "Map" || n === "Set") return Array.from(n);
|
|
106
|
-
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
107
|
-
}
|
|
108
83
|
function _is_native_reflect_construct() {
|
|
109
84
|
try {
|
|
110
85
|
var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
|
|
@@ -123,22 +98,13 @@ var Node = /*#__PURE__*/ function(NonTerminalNode) {
|
|
|
123
98
|
{
|
|
124
99
|
key: "fromRuleNameChildNodesAndOpacity",
|
|
125
100
|
value: function fromRuleNameChildNodesAndOpacity(Class, ruleName, childNodes, opacity) {
|
|
126
|
-
for(var _len = arguments.length, remainingArguments = new Array(_len > 4 ? _len - 4 : 0), _key = 4; _key < _len; _key++){
|
|
127
|
-
remainingArguments[_key - 4] = arguments[_key];
|
|
128
|
-
}
|
|
129
|
-
var _NonTerminalNode;
|
|
130
101
|
if (opacity === undefined) {
|
|
131
102
|
opacity = childNodes; ///
|
|
132
103
|
childNodes = ruleName; ///
|
|
133
104
|
ruleName = Class; ///
|
|
134
105
|
Class = Node; ///
|
|
135
106
|
}
|
|
136
|
-
var node =
|
|
137
|
-
Class,
|
|
138
|
-
ruleName,
|
|
139
|
-
childNodes,
|
|
140
|
-
opacity
|
|
141
|
-
].concat(_to_consumable_array(remainingArguments)));
|
|
107
|
+
var node = _occamparsers.NonTerminalNode.fromRuleNameChildNodesAndOpacity(Class, ruleName, childNodes, opacity);
|
|
142
108
|
return node;
|
|
143
109
|
}
|
|
144
110
|
}
|
|
@@ -148,4 +114,4 @@ var Node = /*#__PURE__*/ function(NonTerminalNode) {
|
|
|
148
114
|
Object.assign(Node.prototype, _node.default);
|
|
149
115
|
var _default = Node;
|
|
150
116
|
|
|
151
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ub2RlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBOb25UZXJtaW5hbE5vZGUgfSBmcm9tIFwib2NjYW0tcGFyc2Vyc1wiO1xuXG5pbXBvcnQgbm9kZU1peGlucyBmcm9tIFwiLi9taXhpbnMvbm9kZVwiO1xuXG5jbGFzcyBOb2RlIGV4dGVuZHMgTm9uVGVybWluYWxOb2RlIHtcbiAgc3RhdGljIGZyb21SdWxlTmFtZUNoaWxkTm9kZXNBbmRPcGFjaXR5KENsYXNzLCBydWxlTmFtZSwgY2hpbGROb2Rlcywgb3BhY2l0eSkge1xuICAgIGlmIChvcGFjaXR5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIG9wYWNpdHkgPSBjaGlsZE5vZGVzOyAvLy9cblxuICAgICAgY2hpbGROb2RlcyA9IHJ1bGVOYW1lOyAgLy8vXG5cbiAgICAgIHJ1bGVOYW1lID0gQ2xhc3M7IC8vL1xuXG4gICAgICBDbGFzcyA9IE5vZGU7IC8vL1xuICAgIH1cblxuICAgIGNvbnN0IG5vZGUgPSBOb25UZXJtaW5hbE5vZGUuZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc0FuZE9wYWNpdHkoQ2xhc3MsIHJ1bGVOYW1lLCBjaGlsZE5vZGVzLCBvcGFjaXR5KTtcblxuICAgIHJldHVybiBub2RlO1xuICB9XG59XG5cbk9iamVjdC5hc3NpZ24oTm9kZS5wcm90b3R5cGUsIG5vZGVNaXhpbnMpO1xuXG5leHBvcnQgZGVmYXVsdCBOb2RlO1xuIl0sIm5hbWVzIjpbIk5vZGUiLCJmcm9tUnVsZU5hbWVDaGlsZE5vZGVzQW5kT3BhY2l0eSIsIkNsYXNzIiwicnVsZU5hbWUiLCJjaGlsZE5vZGVzIiwib3BhY2l0eSIsInVuZGVmaW5lZCIsIm5vZGUiLCJOb25UZXJtaW5hbE5vZGUiLCJPYmplY3QiLCJhc3NpZ24iLCJwcm90b3R5cGUiLCJub2RlTWl4aW5zIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkEwQkE7OztlQUFBOzs7NEJBeEJnQzsyREFFVDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUV2QixJQUFBLEFBQU1BLHFCQUFOO2NBQU1BO2FBQUFBO2dDQUFBQTtRQUFOLE9BQUEsa0JBQU1BOztrQkFBQUE7O1lBQ0dDLEtBQUFBO21CQUFQLFNBQU9BLGlDQUFpQ0MsS0FBSyxFQUFFQyxRQUFRLEVBQUVDLFVBQVUsRUFBRUMsT0FBTztnQkFDMUUsSUFBSUEsWUFBWUMsV0FBVztvQkFDekJELFVBQVVELFlBQVksR0FBRztvQkFFekJBLGFBQWFELFVBQVcsR0FBRztvQkFFM0JBLFdBQVdELE9BQU8sR0FBRztvQkFFckJBLFFBVEFGLE1BU2MsR0FBRztnQkFDbkI7Z0JBRUEsSUFBTU8sT0FBT0MsNkJBQWUsQ0FBQ1AsZ0NBQWdDLENBQUNDLE9BQU9DLFVBQVVDLFlBQVlDO2dCQUUzRixPQUFPRTtZQUNUOzs7V0FmSVA7RUFBYVEsNkJBQWU7QUFrQmxDQyxPQUFPQyxNQUFNLENBQUNWLEtBQUtXLFNBQVMsRUFBRUMsYUFBVTtJQUV4QyxXQUFlWiJ9
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return NominalLexer;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _occamgrammars = require("occam-grammars");
|
|
12
|
+
function _assert_this_initialized(self) {
|
|
13
|
+
if (self === void 0) {
|
|
14
|
+
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
15
|
+
}
|
|
16
|
+
return self;
|
|
17
|
+
}
|
|
18
|
+
function _call_super(_this, derived, args) {
|
|
19
|
+
derived = _get_prototype_of(derived);
|
|
20
|
+
return _possible_constructor_return(_this, _is_native_reflect_construct() ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor) : derived.apply(_this, args));
|
|
21
|
+
}
|
|
22
|
+
function _class_call_check(instance, Constructor) {
|
|
23
|
+
if (!(instance instanceof Constructor)) {
|
|
24
|
+
throw new TypeError("Cannot call a class as a function");
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function _get_prototype_of(o) {
|
|
28
|
+
_get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
|
|
29
|
+
return o.__proto__ || Object.getPrototypeOf(o);
|
|
30
|
+
};
|
|
31
|
+
return _get_prototype_of(o);
|
|
32
|
+
}
|
|
33
|
+
function _inherits(subClass, superClass) {
|
|
34
|
+
if (typeof superClass !== "function" && superClass !== null) {
|
|
35
|
+
throw new TypeError("Super expression must either be null or a function");
|
|
36
|
+
}
|
|
37
|
+
subClass.prototype = Object.create(superClass && superClass.prototype, {
|
|
38
|
+
constructor: {
|
|
39
|
+
value: subClass,
|
|
40
|
+
writable: true,
|
|
41
|
+
configurable: true
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
if (superClass) _set_prototype_of(subClass, superClass);
|
|
45
|
+
}
|
|
46
|
+
function _possible_constructor_return(self, call) {
|
|
47
|
+
if (call && (_type_of(call) === "object" || typeof call === "function")) {
|
|
48
|
+
return call;
|
|
49
|
+
}
|
|
50
|
+
return _assert_this_initialized(self);
|
|
51
|
+
}
|
|
52
|
+
function _set_prototype_of(o, p) {
|
|
53
|
+
_set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
|
|
54
|
+
o.__proto__ = p;
|
|
55
|
+
return o;
|
|
56
|
+
};
|
|
57
|
+
return _set_prototype_of(o, p);
|
|
58
|
+
}
|
|
59
|
+
function _type_of(obj) {
|
|
60
|
+
"@swc/helpers - typeof";
|
|
61
|
+
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
62
|
+
}
|
|
63
|
+
function _is_native_reflect_construct() {
|
|
64
|
+
try {
|
|
65
|
+
var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
|
|
66
|
+
} catch (_) {}
|
|
67
|
+
return (_is_native_reflect_construct = function() {
|
|
68
|
+
return !!result;
|
|
69
|
+
})();
|
|
70
|
+
}
|
|
71
|
+
var NominalLexer = /*#__PURE__*/ function(NominalLexerBase) {
|
|
72
|
+
_inherits(NominalLexer, NominalLexerBase);
|
|
73
|
+
function NominalLexer() {
|
|
74
|
+
_class_call_check(this, NominalLexer);
|
|
75
|
+
return _call_super(this, NominalLexer, arguments);
|
|
76
|
+
}
|
|
77
|
+
return NominalLexer;
|
|
78
|
+
}(_occamgrammars.NominalLexer);
|
|
79
|
+
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub21pbmFsL2xleGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBOb21pbmFsTGV4ZXIgYXMgTm9taW5hbExleGVyQmFzZSB9IGZyb20gXCJvY2NhbS1ncmFtbWFyc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOb21pbmFsTGV4ZXIgZXh0ZW5kcyBOb21pbmFsTGV4ZXJCYXNlIHt9XG4iXSwibmFtZXMiOlsiTm9taW5hbExleGVyIiwiTm9taW5hbExleGVyQmFzZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFJcUJBOzs7NkJBRjRCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFbEMsSUFBQSxBQUFNQSw2QkFBTjtjQUFNQTthQUFBQTtnQ0FBQUE7UUFBTixPQUFBLGtCQUFNQTs7V0FBQUE7RUFBcUJDLDJCQUFnQiJ9
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return NominalParser;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _occamgrammars = require("occam-grammars");
|
|
12
|
+
var _nonTerminalNodeMap = /*#__PURE__*/ _interop_require_default(require("../nonTerminalNodeMap"));
|
|
13
|
+
var _defaultTerminalNode = /*#__PURE__*/ _interop_require_default(require("../defaultTerminalNode"));
|
|
14
|
+
function _assert_this_initialized(self) {
|
|
15
|
+
if (self === void 0) {
|
|
16
|
+
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
17
|
+
}
|
|
18
|
+
return self;
|
|
19
|
+
}
|
|
20
|
+
function _call_super(_this, derived, args) {
|
|
21
|
+
derived = _get_prototype_of(derived);
|
|
22
|
+
return _possible_constructor_return(_this, _is_native_reflect_construct() ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor) : derived.apply(_this, args));
|
|
23
|
+
}
|
|
24
|
+
function _class_call_check(instance, Constructor) {
|
|
25
|
+
if (!(instance instanceof Constructor)) {
|
|
26
|
+
throw new TypeError("Cannot call a class as a function");
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
function _define_property(obj, key, value) {
|
|
30
|
+
if (key in obj) {
|
|
31
|
+
Object.defineProperty(obj, key, {
|
|
32
|
+
value: value,
|
|
33
|
+
enumerable: true,
|
|
34
|
+
configurable: true,
|
|
35
|
+
writable: true
|
|
36
|
+
});
|
|
37
|
+
} else {
|
|
38
|
+
obj[key] = value;
|
|
39
|
+
}
|
|
40
|
+
return obj;
|
|
41
|
+
}
|
|
42
|
+
function _get_prototype_of(o) {
|
|
43
|
+
_get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
|
|
44
|
+
return o.__proto__ || Object.getPrototypeOf(o);
|
|
45
|
+
};
|
|
46
|
+
return _get_prototype_of(o);
|
|
47
|
+
}
|
|
48
|
+
function _inherits(subClass, superClass) {
|
|
49
|
+
if (typeof superClass !== "function" && superClass !== null) {
|
|
50
|
+
throw new TypeError("Super expression must either be null or a function");
|
|
51
|
+
}
|
|
52
|
+
subClass.prototype = Object.create(superClass && superClass.prototype, {
|
|
53
|
+
constructor: {
|
|
54
|
+
value: subClass,
|
|
55
|
+
writable: true,
|
|
56
|
+
configurable: true
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
if (superClass) _set_prototype_of(subClass, superClass);
|
|
60
|
+
}
|
|
61
|
+
function _interop_require_default(obj) {
|
|
62
|
+
return obj && obj.__esModule ? obj : {
|
|
63
|
+
default: obj
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
function _possible_constructor_return(self, call) {
|
|
67
|
+
if (call && (_type_of(call) === "object" || typeof call === "function")) {
|
|
68
|
+
return call;
|
|
69
|
+
}
|
|
70
|
+
return _assert_this_initialized(self);
|
|
71
|
+
}
|
|
72
|
+
function _set_prototype_of(o, p) {
|
|
73
|
+
_set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
|
|
74
|
+
o.__proto__ = p;
|
|
75
|
+
return o;
|
|
76
|
+
};
|
|
77
|
+
return _set_prototype_of(o, p);
|
|
78
|
+
}
|
|
79
|
+
function _type_of(obj) {
|
|
80
|
+
"@swc/helpers - typeof";
|
|
81
|
+
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
82
|
+
}
|
|
83
|
+
function _is_native_reflect_construct() {
|
|
84
|
+
try {
|
|
85
|
+
var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
|
|
86
|
+
} catch (_) {}
|
|
87
|
+
return (_is_native_reflect_construct = function() {
|
|
88
|
+
return !!result;
|
|
89
|
+
})();
|
|
90
|
+
}
|
|
91
|
+
var NominalParser = /*#__PURE__*/ function(NominalParserBase) {
|
|
92
|
+
_inherits(NominalParser, NominalParserBase);
|
|
93
|
+
function NominalParser() {
|
|
94
|
+
_class_call_check(this, NominalParser);
|
|
95
|
+
return _call_super(this, NominalParser, arguments);
|
|
96
|
+
}
|
|
97
|
+
return NominalParser;
|
|
98
|
+
}(_occamgrammars.NominalParser);
|
|
99
|
+
_define_property(NominalParser, "NonTerminalNodeMap", _nonTerminalNodeMap.default);
|
|
100
|
+
_define_property(NominalParser, "defaultNonTerminalNode", _defaultTerminalNode.default);
|
|
101
|
+
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub21pbmFsL3BhcnNlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgTm9taW5hbFBhcnNlciBhcyBOb21pbmFsUGFyc2VyQmFzZSB9IGZyb20gXCJvY2NhbS1ncmFtbWFyc1wiO1xuXG5pbXBvcnQgTm9uVGVybWluYWxOb2RlTWFwIGZyb20gXCIuLi9ub25UZXJtaW5hbE5vZGVNYXBcIjtcbmltcG9ydCBkZWZhdWx0Tm9uVGVybWluYWxOb2RlIGZyb20gXCIuLi9kZWZhdWx0VGVybWluYWxOb2RlXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5vbWluYWxQYXJzZXIgZXh0ZW5kcyBOb21pbmFsUGFyc2VyQmFzZSB7XG4gIHN0YXRpYyBOb25UZXJtaW5hbE5vZGVNYXAgPSBOb25UZXJtaW5hbE5vZGVNYXA7XG5cbiAgc3RhdGljIGRlZmF1bHROb25UZXJtaW5hbE5vZGUgPSBkZWZhdWx0Tm9uVGVybWluYWxOb2RlO1xufVxuIl0sIm5hbWVzIjpbIk5vbWluYWxQYXJzZXIiLCJOb21pbmFsUGFyc2VyQmFzZSIsIk5vblRlcm1pbmFsTm9kZU1hcCIsImRlZmF1bHROb25UZXJtaW5hbE5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBT3FCQTs7OzZCQUw4Qjt5RUFFcEI7MEVBQ0k7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVwQixJQUFBLEFBQU1BLDhCQUFOO2NBQU1BO2FBQUFBO2dDQUFBQTtRQUFOLE9BQUEsa0JBQU1BOztXQUFBQTtFQUFzQkMsNEJBQWlCO0FBQzFELGlCQURtQkQsZUFDWkUsc0JBQXFCQSwyQkFBa0I7QUFFOUMsaUJBSG1CRixlQUdaRywwQkFBeUJBLDRCQUFzQiJ9
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return _default;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _term = /*#__PURE__*/ _interop_require_default(require("./node/term"));
|
|
12
|
+
var _type = /*#__PURE__*/ _interop_require_default(require("./node/type"));
|
|
13
|
+
var _rule = /*#__PURE__*/ _interop_require_default(require("./node/rule"));
|
|
14
|
+
var _step = /*#__PURE__*/ _interop_require_default(require("./node/step"));
|
|
15
|
+
var _error = /*#__PURE__*/ _interop_require_default(require("./node/error"));
|
|
16
|
+
var _frame = /*#__PURE__*/ _interop_require_default(require("./node/frame"));
|
|
17
|
+
var _axiom = /*#__PURE__*/ _interop_require_default(require("./node/axiom"));
|
|
18
|
+
var _label = /*#__PURE__*/ _interop_require_default(require("./node/label"));
|
|
19
|
+
var _lemma = /*#__PURE__*/ _interop_require_default(require("./node/lemma"));
|
|
20
|
+
var _proof = /*#__PURE__*/ _interop_require_default(require("./node/proof"));
|
|
21
|
+
var _premise = /*#__PURE__*/ _interop_require_default(require("./node/premise"));
|
|
22
|
+
var _theorem = /*#__PURE__*/ _interop_require_default(require("./node/theorem"));
|
|
23
|
+
var _subproof = /*#__PURE__*/ _interop_require_default(require("./node/subproof"));
|
|
24
|
+
var _property = /*#__PURE__*/ _interop_require_default(require("./node/property"));
|
|
25
|
+
var _metaType = /*#__PURE__*/ _interop_require_default(require("./node/metaType"));
|
|
26
|
+
var _equality = /*#__PURE__*/ _interop_require_default(require("./node/equality"));
|
|
27
|
+
var _variable = /*#__PURE__*/ _interop_require_default(require("./node/variable"));
|
|
28
|
+
var _statement = /*#__PURE__*/ _interop_require_default(require("./node/statement"));
|
|
29
|
+
var _reference = /*#__PURE__*/ _interop_require_default(require("./node/reference"));
|
|
30
|
+
var _deduction = /*#__PURE__*/ _interop_require_default(require("./node/deduction"));
|
|
31
|
+
var _judgement = /*#__PURE__*/ _interop_require_default(require("./node/judgement"));
|
|
32
|
+
var _metaLemma = /*#__PURE__*/ _interop_require_default(require("./node/metaLemma"));
|
|
33
|
+
var _parameter = /*#__PURE__*/ _interop_require_default(require("./node/parameter"));
|
|
34
|
+
var _derivation = /*#__PURE__*/ _interop_require_default(require("./node/derivation"));
|
|
35
|
+
var _combinator = /*#__PURE__*/ _interop_require_default(require("./node/combinator"));
|
|
36
|
+
var _conclusion = /*#__PURE__*/ _interop_require_default(require("./node/conclusion"));
|
|
37
|
+
var _conjecture = /*#__PURE__*/ _interop_require_default(require("./node/conjecture"));
|
|
38
|
+
var _supposition = /*#__PURE__*/ _interop_require_default(require("./node/supposition"));
|
|
39
|
+
var _constructor = /*#__PURE__*/ _interop_require_default(require("./node/constructor"));
|
|
40
|
+
var _declaration = /*#__PURE__*/ _interop_require_default(require("./node/declaration"));
|
|
41
|
+
var _metatheorem = /*#__PURE__*/ _interop_require_default(require("./node/metatheorem"));
|
|
42
|
+
var _metavariable = /*#__PURE__*/ _interop_require_default(require("./node/metavariable"));
|
|
43
|
+
var _procedureCall = /*#__PURE__*/ _interop_require_default(require("./node/procedureCall"));
|
|
44
|
+
var _subDerivation = /*#__PURE__*/ _interop_require_default(require("./node/subDerivation"));
|
|
45
|
+
var _type1 = /*#__PURE__*/ _interop_require_default(require("./node/assertion/type"));
|
|
46
|
+
var _type2 = /*#__PURE__*/ _interop_require_default(require("./node/declaration/type"));
|
|
47
|
+
var _propertyRelation = /*#__PURE__*/ _interop_require_default(require("./node/propertyRelation"));
|
|
48
|
+
var _defined = /*#__PURE__*/ _interop_require_default(require("./node/assertion/defined"));
|
|
49
|
+
var _property1 = /*#__PURE__*/ _interop_require_default(require("./node/assertion/property"));
|
|
50
|
+
var _subproof1 = /*#__PURE__*/ _interop_require_default(require("./node/assertion/subproof"));
|
|
51
|
+
var _contained = /*#__PURE__*/ _interop_require_default(require("./node/assertion/contained"));
|
|
52
|
+
var _satisfies = /*#__PURE__*/ _interop_require_default(require("./node/assertion/satisfies"));
|
|
53
|
+
var _property2 = /*#__PURE__*/ _interop_require_default(require("./node/declaration/property"));
|
|
54
|
+
var _variable1 = /*#__PURE__*/ _interop_require_default(require("./node/declaration/variable"));
|
|
55
|
+
var _combinator1 = /*#__PURE__*/ _interop_require_default(require("./node/declaration/combinator"));
|
|
56
|
+
var _complexType = /*#__PURE__*/ _interop_require_default(require("./node/declaration/complexType"));
|
|
57
|
+
var _constructor1 = /*#__PURE__*/ _interop_require_default(require("./node/declaration/constructor"));
|
|
58
|
+
var _metavariable1 = /*#__PURE__*/ _interop_require_default(require("./node/declaration/metavariable"));
|
|
59
|
+
var _ruleNames = require("./ruleNames");
|
|
60
|
+
function _define_property(obj, key, value) {
|
|
61
|
+
if (key in obj) {
|
|
62
|
+
Object.defineProperty(obj, key, {
|
|
63
|
+
value: value,
|
|
64
|
+
enumerable: true,
|
|
65
|
+
configurable: true,
|
|
66
|
+
writable: true
|
|
67
|
+
});
|
|
68
|
+
} else {
|
|
69
|
+
obj[key] = value;
|
|
70
|
+
}
|
|
71
|
+
return obj;
|
|
72
|
+
}
|
|
73
|
+
function _interop_require_default(obj) {
|
|
74
|
+
return obj && obj.__esModule ? obj : {
|
|
75
|
+
default: obj
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
var _obj;
|
|
79
|
+
var nonTerminalNodeMap = (_obj = {}, _define_property(_obj, _ruleNames.RULE_RULE_NAME, _rule.default), _define_property(_obj, _ruleNames.STEP_RULE_NAME, _step.default), _define_property(_obj, _ruleNames.TERM_RULE_NAME, _term.default), _define_property(_obj, _ruleNames.TYPE_RULE_NAME, _type.default), _define_property(_obj, _ruleNames.ERROR_RULE_NAME, _error.default), _define_property(_obj, _ruleNames.FRAME_RULE_NAME, _frame.default), _define_property(_obj, _ruleNames.LABEL_RULE_NAME, _label.default), _define_property(_obj, _ruleNames.LEMMA_RULE_NAME, _lemma.default), _define_property(_obj, _ruleNames.AXIOM_RULE_NAME, _axiom.default), _define_property(_obj, _ruleNames.PROOF_RULE_NAME, _proof.default), _define_property(_obj, _ruleNames.THEOREM_RULE_NAME, _theorem.default), _define_property(_obj, _ruleNames.PREMISE_RULE_NAME, _premise.default), _define_property(_obj, _ruleNames.PROPERTY_RULE_NAME, _property.default), _define_property(_obj, _ruleNames.SUBPROOF_RULE_NAME, _subproof.default), _define_property(_obj, _ruleNames.EQUALITY_RULE_NAME, _equality.default), _define_property(_obj, _ruleNames.VARIABLE_RULE_NAME, _variable.default), _define_property(_obj, _ruleNames.REFERENCE_RULE_NAME, _reference.default), _define_property(_obj, _ruleNames.JUDGEMENT_RULE_NAME, _judgement.default), _define_property(_obj, _ruleNames.META_TYPE_RULE_NAME, _metaType.default), _define_property(_obj, _ruleNames.DEDUCTION_RULE_NAME, _deduction.default), _define_property(_obj, _ruleNames.PARAMETER_RULE_NAME, _parameter.default), _define_property(_obj, _ruleNames.STATEMENT_RULE_NAME, _statement.default), _define_property(_obj, _ruleNames.COMBINATOR_RULE_NAME, _combinator.default), _define_property(_obj, _ruleNames.CONCLUSION_RULE_NAME, _conclusion.default), _define_property(_obj, _ruleNames.CONJECTURE_RULE_NAME, _conjecture.default), _define_property(_obj, _ruleNames.DERIVATION_RULE_NAME, _derivation.default), _define_property(_obj, _ruleNames.META_LEMMA_RULE_NAME, _metaLemma.default), _define_property(_obj, _ruleNames.SUPPOSITION_RULE_NAME, _supposition.default), _define_property(_obj, _ruleNames.CONSTRUCTOR_RULE_NAME, _constructor.default), _define_property(_obj, _ruleNames.DECLARATION_RULE_NAME, _declaration.default), _define_property(_obj, _ruleNames.METATHEOREM_RULE_NAME, _metatheorem.default), _define_property(_obj, _ruleNames.METAVARIABLE_RULE_NAME, _metavariable.default), _define_property(_obj, _ruleNames.TYPE_ASSERTION_RULE_NAME, _type1.default), _define_property(_obj, _ruleNames.PROCEDURE_CALL_RULE_NAME, _procedureCall.default), _define_property(_obj, _ruleNames.SUB_DERIVATION_RULE_NAME, _subDerivation.default), _define_property(_obj, _ruleNames.TYPE_DECLARATION_RULE_NAME, _type2.default), _define_property(_obj, _ruleNames.PROPERTY_RELATION_RULE_NAME, _propertyRelation.default), _define_property(_obj, _ruleNames.DEFINED_ASSERTION_RULE_NAME, _defined.default), _define_property(_obj, _ruleNames.SUBPROOF_ASSERTION_RULE_NAME, _subproof1.default), _define_property(_obj, _ruleNames.PROPERTY_ASSERTION_RULE_NAME, _property1.default), _define_property(_obj, _ruleNames.SATISFIES_ASSERTION_RULE_NAME, _satisfies.default), _define_property(_obj, _ruleNames.CONTAINED_ASSERTION_RULE_NAME, _contained.default), _define_property(_obj, _ruleNames.VARIABLE_DECLARATION_RULE_NAME, _variable1.default), _define_property(_obj, _ruleNames.PROPERTY_DECLARATION_RULE_NAME, _property2.default), _define_property(_obj, _ruleNames.COMBINATOR_DECLARATION_RULE_NAME, _combinator1.default), _define_property(_obj, _ruleNames.CONSTRUCTOR_DECLARATION_RULE_NAME, _constructor1.default), _define_property(_obj, _ruleNames.COMPLEX_TYPE_DECLARATION_RULE_NAME, _complexType.default), _define_property(_obj, _ruleNames.METAVARIABLE_DECLARATION_RULE_NAME, _metavariable1.default), _obj);
|
|
80
|
+
var _default = nonTerminalNodeMap;
|
|
81
|
+
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ub25UZXJtaW5hbE5vZGVNYXAuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBUZXJtTm9kZSBmcm9tIFwiLi9ub2RlL3Rlcm1cIlxuaW1wb3J0IFR5cGVOb2RlIGZyb20gXCIuL25vZGUvdHlwZVwiXG5pbXBvcnQgUnVsZU5vZGUgZnJvbSBcIi4vbm9kZS9ydWxlXCJcbmltcG9ydCBTdGVwTm9kZSBmcm9tIFwiLi9ub2RlL3N0ZXBcIlxuaW1wb3J0IEVycm9yTm9kZSBmcm9tIFwiLi9ub2RlL2Vycm9yXCJcbmltcG9ydCBGcmFtZU5vZGUgZnJvbSBcIi4vbm9kZS9mcmFtZVwiXG5pbXBvcnQgQXhpb21Ob2RlIGZyb20gXCIuL25vZGUvYXhpb21cIlxuaW1wb3J0IExhYmVsTm9kZSBmcm9tIFwiLi9ub2RlL2xhYmVsXCJcbmltcG9ydCBMZW1tYU5vZGUgZnJvbSBcIi4vbm9kZS9sZW1tYVwiXG5pbXBvcnQgUHJvb2ZOb2RlIGZyb20gXCIuL25vZGUvcHJvb2ZcIlxuaW1wb3J0IFByZW1pc2VOb2RlIGZyb20gXCIuL25vZGUvcHJlbWlzZVwiXG5pbXBvcnQgVGhlb3JlbU5vZGUgZnJvbSBcIi4vbm9kZS90aGVvcmVtXCJcbmltcG9ydCBTdWJwcm9vZk5vZGUgZnJvbSBcIi4vbm9kZS9zdWJwcm9vZlwiXG5pbXBvcnQgUHJvcGVydHlOb2RlIGZyb20gXCIuL25vZGUvcHJvcGVydHlcIlxuaW1wb3J0IE1ldGFUeXBlTm9kZSBmcm9tIFwiLi9ub2RlL21ldGFUeXBlXCJcbmltcG9ydCBFcXVhbGl0eU5vZGUgZnJvbSBcIi4vbm9kZS9lcXVhbGl0eVwiXG5pbXBvcnQgVmFyaWFibGVOb2RlIGZyb20gXCIuL25vZGUvdmFyaWFibGVcIlxuaW1wb3J0IFN0YXRlbWVudE5vZGUgZnJvbSBcIi4vbm9kZS9zdGF0ZW1lbnRcIlxuaW1wb3J0IFJlZmVyZW5jZU5vZGUgZnJvbSBcIi4vbm9kZS9yZWZlcmVuY2VcIlxuaW1wb3J0IERlZHVjdGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9kZWR1Y3Rpb25cIlxuaW1wb3J0IEp1ZGdlbWVudE5vZGUgZnJvbSBcIi4vbm9kZS9qdWRnZW1lbnRcIlxuaW1wb3J0IE1ldGFMZW1tYU5vZGUgZnJvbSBcIi4vbm9kZS9tZXRhTGVtbWFcIlxuaW1wb3J0IFBhcmFtZXRlck5vZGUgZnJvbSBcIi4vbm9kZS9wYXJhbWV0ZXJcIlxuaW1wb3J0IERlcml2YXRpb25Ob2RlIGZyb20gXCIuL25vZGUvZGVyaXZhdGlvblwiXG5pbXBvcnQgQ29tYmluYXRvck5vZGUgZnJvbSBcIi4vbm9kZS9jb21iaW5hdG9yXCJcbmltcG9ydCBDb25jbHVzaW9uTm9kZSBmcm9tIFwiLi9ub2RlL2NvbmNsdXNpb25cIlxuaW1wb3J0IENvbmplY3R1cmVOb2RlIGZyb20gXCIuL25vZGUvY29uamVjdHVyZVwiXG5pbXBvcnQgU3VwcG9zaXRpb25Ob2RlIGZyb20gXCIuL25vZGUvc3VwcG9zaXRpb25cIlxuaW1wb3J0IENvbnN0cnVjdG9yTm9kZSBmcm9tIFwiLi9ub2RlL2NvbnN0cnVjdG9yXCJcbmltcG9ydCBEZWNsYXJhdGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9kZWNsYXJhdGlvblwiXG5pbXBvcnQgTWV0YXRoZW9yZW1Ob2RlIGZyb20gXCIuL25vZGUvbWV0YXRoZW9yZW1cIlxuaW1wb3J0IE1ldGF2YXJpYWJsZU5vZGUgZnJvbSBcIi4vbm9kZS9tZXRhdmFyaWFibGVcIlxuaW1wb3J0IFByb2NlZHVyZUNhbGxOb2RlIGZyb20gXCIuL25vZGUvcHJvY2VkdXJlQ2FsbFwiXG5pbXBvcnQgU3ViRGVyaXZhdGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9zdWJEZXJpdmF0aW9uXCJcbmltcG9ydCBUeXBlQXNzZXJ0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2Fzc2VydGlvbi90eXBlXCI7XG5pbXBvcnQgdHlwZURlY2xhcmF0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2RlY2xhcmF0aW9uL3R5cGVcIjtcbmltcG9ydCBQcm9wZXJ0eVJlbGF0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL3Byb3BlcnR5UmVsYXRpb25cIlxuaW1wb3J0IERlZmluZWRBc3NlcnRpb25Ob2RlIGZyb20gXCIuL25vZGUvYXNzZXJ0aW9uL2RlZmluZWRcIjtcbmltcG9ydCBQcm9wZXJ0eUFzc2VydGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9hc3NlcnRpb24vcHJvcGVydHlcIjtcbmltcG9ydCBTdWJwcm9vZkFzc2VydGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9hc3NlcnRpb24vc3VicHJvb2ZcIjtcbmltcG9ydCBDb250YWluZWRBc3NlcnRpb25Ob2RlIGZyb20gXCIuL25vZGUvYXNzZXJ0aW9uL2NvbnRhaW5lZFwiO1xuaW1wb3J0IFNhdGlzZmllc0Fzc2VydGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9hc3NlcnRpb24vc2F0aXNmaWVzXCI7XG5pbXBvcnQgUHJvcGVydHlEZWNsYXJhdGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9kZWNsYXJhdGlvbi9wcm9wZXJ0eVwiO1xuaW1wb3J0IHZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlIGZyb20gXCIuL25vZGUvZGVjbGFyYXRpb24vdmFyaWFibGVcIjtcbmltcG9ydCBjb21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlIGZyb20gXCIuL25vZGUvZGVjbGFyYXRpb24vY29tYmluYXRvclwiO1xuaW1wb3J0IGNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlIGZyb20gXCIuL25vZGUvZGVjbGFyYXRpb24vY29tcGxleFR5cGVcIjtcbmltcG9ydCBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2RlY2xhcmF0aW9uL2NvbnN0cnVjdG9yXCI7XG5pbXBvcnQgbWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlIGZyb20gXCIuL25vZGUvZGVjbGFyYXRpb24vbWV0YXZhcmlhYmxlXCI7XG5cbmltcG9ydCB7IFJVTEVfUlVMRV9OQU1FLFxuICAgICAgICAgU1RFUF9SVUxFX05BTUUsXG4gICAgICAgICBURVJNX1JVTEVfTkFNRSxcbiAgICAgICAgIFRZUEVfUlVMRV9OQU1FLFxuICAgICAgICAgUFJPT0ZfUlVMRV9OQU1FLFxuICAgICAgICAgRVJST1JfUlVMRV9OQU1FLFxuICAgICAgICAgRlJBTUVfUlVMRV9OQU1FLFxuICAgICAgICAgQVhJT01fUlVMRV9OQU1FLFxuICAgICAgICAgTEFCRUxfUlVMRV9OQU1FLFxuICAgICAgICAgTEVNTUFfUlVMRV9OQU1FLFxuICAgICAgICAgVEhFT1JFTV9SVUxFX05BTUUsXG4gICAgICAgICBQUkVNSVNFX1JVTEVfTkFNRSxcbiAgICAgICAgIFNVQlBST09GX1JVTEVfTkFNRSxcbiAgICAgICAgIFBST1BFUlRZX1JVTEVfTkFNRSxcbiAgICAgICAgIEVRVUFMSVRZX1JVTEVfTkFNRSxcbiAgICAgICAgIFZBUklBQkxFX1JVTEVfTkFNRSxcbiAgICAgICAgIE1FVEFfVFlQRV9SVUxFX05BTUUsXG4gICAgICAgICBERURVQ1RJT05fUlVMRV9OQU1FLFxuICAgICAgICAgSlVER0VNRU5UX1JVTEVfTkFNRSxcbiAgICAgICAgIFBBUkFNRVRFUl9SVUxFX05BTUUsXG4gICAgICAgICBSRUZFUkVOQ0VfUlVMRV9OQU1FLFxuICAgICAgICAgU1RBVEVNRU5UX1JVTEVfTkFNRSxcbiAgICAgICAgIE1FVEFfTEVNTUFfUlVMRV9OQU1FLFxuICAgICAgICAgREVSSVZBVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBDT01CSU5BVE9SX1JVTEVfTkFNRSxcbiAgICAgICAgIENPTkNMVVNJT05fUlVMRV9OQU1FLFxuICAgICAgICAgQ09OSkVDVFVSRV9SVUxFX05BTUUsXG4gICAgICAgICBDT05TVFJVQ1RPUl9SVUxFX05BTUUsXG4gICAgICAgICBERUNMQVJBVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBTVVBQT1NJVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBNRVRBVEhFT1JFTV9SVUxFX05BTUUsXG4gICAgICAgICBNRVRBVkFSSUFCTEVfUlVMRV9OQU1FLFxuICAgICAgICAgU1VCX0RFUklWQVRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgVFlQRV9BU1NFUlRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgUFJPQ0VEVVJFX0NBTExfUlVMRV9OQU1FLFxuICAgICAgICAgVFlQRV9ERUNMQVJBVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBQUk9QRVJUWV9SRUxBVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBERUZJTkVEX0FTU0VSVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBTVUJQUk9PRl9BU1NFUlRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgUFJPUEVSVFlfQVNTRVJUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIENPTlRBSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgU0FUSVNGSUVTX0FTU0VSVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBQUk9QRVJUWV9ERUNMQVJBVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBWQVJJQUJMRV9ERUNMQVJBVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBDT01CSU5BVE9SX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIENPTlNUUlVDVE9SX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIENPTVBMRVhfVFlQRV9ERUNMQVJBVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBNRVRBVkFSSUFCTEVfREVDTEFSQVRJT05fUlVMRV9OQU1FIH0gZnJvbSBcIi4vcnVsZU5hbWVzXCI7XG5cbmNvbnN0IG5vblRlcm1pbmFsTm9kZU1hcCA9IHtcbiAgW1JVTEVfUlVMRV9OQU1FXTogUnVsZU5vZGUsXG4gIFtTVEVQX1JVTEVfTkFNRV06IFN0ZXBOb2RlLFxuICBbVEVSTV9SVUxFX05BTUVdOiBUZXJtTm9kZSxcbiAgW1RZUEVfUlVMRV9OQU1FXTogVHlwZU5vZGUsXG4gIFtFUlJPUl9SVUxFX05BTUVdOiBFcnJvck5vZGUsXG4gIFtGUkFNRV9SVUxFX05BTUVdOiBGcmFtZU5vZGUsXG4gIFtMQUJFTF9SVUxFX05BTUVdOiBMYWJlbE5vZGUsXG4gIFtMRU1NQV9SVUxFX05BTUVdOiBMZW1tYU5vZGUsXG4gIFtBWElPTV9SVUxFX05BTUVdOiBBeGlvbU5vZGUsXG4gIFtQUk9PRl9SVUxFX05BTUVdOiBQcm9vZk5vZGUsXG4gIFtUSEVPUkVNX1JVTEVfTkFNRV06IFRoZW9yZW1Ob2RlLFxuICBbUFJFTUlTRV9SVUxFX05BTUVdOiBQcmVtaXNlTm9kZSxcbiAgW1BST1BFUlRZX1JVTEVfTkFNRV06IFByb3BlcnR5Tm9kZSxcbiAgW1NVQlBST09GX1JVTEVfTkFNRV06IFN1YnByb29mTm9kZSxcbiAgW0VRVUFMSVRZX1JVTEVfTkFNRV06IEVxdWFsaXR5Tm9kZSxcbiAgW1ZBUklBQkxFX1JVTEVfTkFNRV06IFZhcmlhYmxlTm9kZSxcbiAgW1JFRkVSRU5DRV9SVUxFX05BTUVdOiBSZWZlcmVuY2VOb2RlLFxuICBbSlVER0VNRU5UX1JVTEVfTkFNRV06IEp1ZGdlbWVudE5vZGUsXG4gIFtNRVRBX1RZUEVfUlVMRV9OQU1FXTogTWV0YVR5cGVOb2RlLFxuICBbREVEVUNUSU9OX1JVTEVfTkFNRV06IERlZHVjdGlvbk5vZGUsXG4gIFtQQVJBTUVURVJfUlVMRV9OQU1FXTogUGFyYW1ldGVyTm9kZSxcbiAgW1NUQVRFTUVOVF9SVUxFX05BTUVdOiBTdGF0ZW1lbnROb2RlLFxuICBbQ09NQklOQVRPUl9SVUxFX05BTUVdOiBDb21iaW5hdG9yTm9kZSxcbiAgW0NPTkNMVVNJT05fUlVMRV9OQU1FXTogQ29uY2x1c2lvbk5vZGUsXG4gIFtDT05KRUNUVVJFX1JVTEVfTkFNRV06IENvbmplY3R1cmVOb2RlLFxuICBbREVSSVZBVElPTl9SVUxFX05BTUVdOiBEZXJpdmF0aW9uTm9kZSxcbiAgW01FVEFfTEVNTUFfUlVMRV9OQU1FXTogTWV0YUxlbW1hTm9kZSxcbiAgW1NVUFBPU0lUSU9OX1JVTEVfTkFNRV06IFN1cHBvc2l0aW9uTm9kZSxcbiAgW0NPTlNUUlVDVE9SX1JVTEVfTkFNRV06IENvbnN0cnVjdG9yTm9kZSxcbiAgW0RFQ0xBUkFUSU9OX1JVTEVfTkFNRV06IERlY2xhcmF0aW9uTm9kZSxcbiAgW01FVEFUSEVPUkVNX1JVTEVfTkFNRV06IE1ldGF0aGVvcmVtTm9kZSxcbiAgW01FVEFWQVJJQUJMRV9SVUxFX05BTUVdOiBNZXRhdmFyaWFibGVOb2RlLFxuICBbVFlQRV9BU1NFUlRJT05fUlVMRV9OQU1FXTogVHlwZUFzc2VydGlvbk5vZGUsXG4gIFtQUk9DRURVUkVfQ0FMTF9SVUxFX05BTUVdOiBQcm9jZWR1cmVDYWxsTm9kZSxcbiAgW1NVQl9ERVJJVkFUSU9OX1JVTEVfTkFNRV06IFN1YkRlcml2YXRpb25Ob2RlLFxuICBbVFlQRV9ERUNMQVJBVElPTl9SVUxFX05BTUVdOiB0eXBlRGVjbGFyYXRpb25Ob2RlLFxuICBbUFJPUEVSVFlfUkVMQVRJT05fUlVMRV9OQU1FXTogUHJvcGVydHlSZWxhdGlvbk5vZGUsXG4gIFtERUZJTkVEX0FTU0VSVElPTl9SVUxFX05BTUVdOiBEZWZpbmVkQXNzZXJ0aW9uTm9kZSxcbiAgW1NVQlBST09GX0FTU0VSVElPTl9SVUxFX05BTUVdOiBTdWJwcm9vZkFzc2VydGlvbk5vZGUsXG4gIFtQUk9QRVJUWV9BU1NFUlRJT05fUlVMRV9OQU1FXTogUHJvcGVydHlBc3NlcnRpb25Ob2RlLFxuICBbU0FUSVNGSUVTX0FTU0VSVElPTl9SVUxFX05BTUVdOiBTYXRpc2ZpZXNBc3NlcnRpb25Ob2RlLFxuICBbQ09OVEFJTkVEX0FTU0VSVElPTl9SVUxFX05BTUVdOiBDb250YWluZWRBc3NlcnRpb25Ob2RlLFxuICBbVkFSSUFCTEVfREVDTEFSQVRJT05fUlVMRV9OQU1FXTogdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsXG4gIFtQUk9QRVJUWV9ERUNMQVJBVElPTl9SVUxFX05BTUVdOiBQcm9wZXJ0eURlY2xhcmF0aW9uTm9kZSxcbiAgW0NPTUJJTkFUT1JfREVDTEFSQVRJT05fUlVMRV9OQU1FXTogY29tYmluYXRvckRlY2xhcmF0aW9uTm9kZSxcbiAgW0NPTlNUUlVDVE9SX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRV06IGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlLFxuICBbQ09NUExFWF9UWVBFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRV06IGNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlLFxuICBbTUVUQVZBUklBQkxFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRV06IG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZVxufTtcblxuZXhwb3J0IGRlZmF1bHQgbm9uVGVybWluYWxOb2RlTWFwO1xuIl0sIm5hbWVzIjpbIm5vblRlcm1pbmFsTm9kZU1hcCIsIlJVTEVfUlVMRV9OQU1FIiwiUnVsZU5vZGUiLCJTVEVQX1JVTEVfTkFNRSIsIlN0ZXBOb2RlIiwiVEVSTV9SVUxFX05BTUUiLCJUZXJtTm9kZSIsIlRZUEVfUlVMRV9OQU1FIiwiVHlwZU5vZGUiLCJFUlJPUl9SVUxFX05BTUUiLCJFcnJvck5vZGUiLCJGUkFNRV9SVUxFX05BTUUiLCJGcmFtZU5vZGUiLCJMQUJFTF9SVUxFX05BTUUiLCJMYWJlbE5vZGUiLCJMRU1NQV9SVUxFX05BTUUiLCJMZW1tYU5vZGUiLCJBWElPTV9SVUxFX05BTUUiLCJBeGlvbU5vZGUiLCJQUk9PRl9SVUxFX05BTUUiLCJQcm9vZk5vZGUiLCJUSEVPUkVNX1JVTEVfTkFNRSIsIlRoZW9yZW1Ob2RlIiwiUFJFTUlTRV9SVUxFX05BTUUiLCJQcmVtaXNlTm9kZSIsIlBST1BFUlRZX1JVTEVfTkFNRSIsIlByb3BlcnR5Tm9kZSIsIlNVQlBST09GX1JVTEVfTkFNRSIsIlN1YnByb29mTm9kZSIsIkVRVUFMSVRZX1JVTEVfTkFNRSIsIkVxdWFsaXR5Tm9kZSIsIlZBUklBQkxFX1JVTEVfTkFNRSIsIlZhcmlhYmxlTm9kZSIsIlJFRkVSRU5DRV9SVUxFX05BTUUiLCJSZWZlcmVuY2VOb2RlIiwiSlVER0VNRU5UX1JVTEVfTkFNRSIsIkp1ZGdlbWVudE5vZGUiLCJNRVRBX1RZUEVfUlVMRV9OQU1FIiwiTWV0YVR5cGVOb2RlIiwiREVEVUNUSU9OX1JVTEVfTkFNRSIsIkRlZHVjdGlvbk5vZGUiLCJQQVJBTUVURVJfUlVMRV9OQU1FIiwiUGFyYW1ldGVyTm9kZSIsIlNUQVRFTUVOVF9SVUxFX05BTUUiLCJTdGF0ZW1lbnROb2RlIiwiQ09NQklOQVRPUl9SVUxFX05BTUUiLCJDb21iaW5hdG9yTm9kZSIsIkNPTkNMVVNJT05fUlVMRV9OQU1FIiwiQ29uY2x1c2lvbk5vZGUiLCJDT05KRUNUVVJFX1JVTEVfTkFNRSIsIkNvbmplY3R1cmVOb2RlIiwiREVSSVZBVElPTl9SVUxFX05BTUUiLCJEZXJpdmF0aW9uTm9kZSIsIk1FVEFfTEVNTUFfUlVMRV9OQU1FIiwiTWV0YUxlbW1hTm9kZSIsIlNVUFBPU0lUSU9OX1JVTEVfTkFNRSIsIlN1cHBvc2l0aW9uTm9kZSIsIkNPTlNUUlVDVE9SX1JVTEVfTkFNRSIsIkNvbnN0cnVjdG9yTm9kZSIsIkRFQ0xBUkFUSU9OX1JVTEVfTkFNRSIsIkRlY2xhcmF0aW9uTm9kZSIsIk1FVEFUSEVPUkVNX1JVTEVfTkFNRSIsIk1ldGF0aGVvcmVtTm9kZSIsIk1FVEFWQVJJQUJMRV9SVUxFX05BTUUiLCJNZXRhdmFyaWFibGVOb2RlIiwiVFlQRV9BU1NFUlRJT05fUlVMRV9OQU1FIiwiVHlwZUFzc2VydGlvbk5vZGUiLCJQUk9DRURVUkVfQ0FMTF9SVUxFX05BTUUiLCJQcm9jZWR1cmVDYWxsTm9kZSIsIlNVQl9ERVJJVkFUSU9OX1JVTEVfTkFNRSIsIlN1YkRlcml2YXRpb25Ob2RlIiwiVFlQRV9ERUNMQVJBVElPTl9SVUxFX05BTUUiLCJ0eXBlRGVjbGFyYXRpb25Ob2RlIiwiUFJPUEVSVFlfUkVMQVRJT05fUlVMRV9OQU1FIiwiUHJvcGVydHlSZWxhdGlvbk5vZGUiLCJERUZJTkVEX0FTU0VSVElPTl9SVUxFX05BTUUiLCJEZWZpbmVkQXNzZXJ0aW9uTm9kZSIsIlNVQlBST09GX0FTU0VSVElPTl9SVUxFX05BTUUiLCJTdWJwcm9vZkFzc2VydGlvbk5vZGUiLCJQUk9QRVJUWV9BU1NFUlRJT05fUlVMRV9OQU1FIiwiUHJvcGVydHlBc3NlcnRpb25Ob2RlIiwiU0FUSVNGSUVTX0FTU0VSVElPTl9SVUxFX05BTUUiLCJTYXRpc2ZpZXNBc3NlcnRpb25Ob2RlIiwiQ09OVEFJTkVEX0FTU0VSVElPTl9SVUxFX05BTUUiLCJDb250YWluZWRBc3NlcnRpb25Ob2RlIiwiVkFSSUFCTEVfREVDTEFSQVRJT05fUlVMRV9OQU1FIiwidmFyaWFibGVEZWNsYXJhdGlvbk5vZGUiLCJQUk9QRVJUWV9ERUNMQVJBVElPTl9SVUxFX05BTUUiLCJQcm9wZXJ0eURlY2xhcmF0aW9uTm9kZSIsIkNPTUJJTkFUT1JfREVDTEFSQVRJT05fUlVMRV9OQU1FIiwiY29tYmluYXRvckRlY2xhcmF0aW9uTm9kZSIsIkNPTlNUUlVDVE9SX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSIsImNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlIiwiQ09NUExFWF9UWVBFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSIsImNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlIiwiTUVUQVZBUklBQkxFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSIsIm1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBdUpBOzs7ZUFBQTs7OzJEQXJKcUI7MkRBQ0E7MkRBQ0E7MkRBQ0E7NERBQ0M7NERBQ0E7NERBQ0E7NERBQ0E7NERBQ0E7NERBQ0E7OERBQ0U7OERBQ0E7K0RBQ0M7K0RBQ0E7K0RBQ0E7K0RBQ0E7K0RBQ0E7Z0VBQ0M7Z0VBQ0E7Z0VBQ0E7Z0VBQ0E7Z0VBQ0E7Z0VBQ0E7aUVBQ0M7aUVBQ0E7aUVBQ0E7aUVBQ0E7a0VBQ0M7a0VBQ0E7a0VBQ0E7a0VBQ0E7bUVBQ0M7b0VBQ0M7b0VBQ0E7NERBQ0E7NERBQ0U7dUVBQ0M7OERBQ0E7Z0VBQ0M7Z0VBQ0E7Z0VBQ0M7Z0VBQ0E7Z0VBQ0M7Z0VBQ0E7a0VBQ0U7a0VBQ0M7bUVBQ0E7b0VBQ0M7eUJBaURXOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBRXhCO0FBQTNCLElBQU1BLHNCQUFxQixXQUN6QixpQkFEeUIsTUFDeEJDLHlCQUFjLEVBQUdD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
|
|
@@ -23,18 +23,12 @@ _export(exports, {
|
|
|
23
23
|
}
|
|
24
24
|
});
|
|
25
25
|
var _occamcustomgrammars = require("occam-custom-grammars");
|
|
26
|
-
var _combined = /*#__PURE__*/ _interop_require_default(require("../customGrammar/combined"));
|
|
27
|
-
function _interop_require_default(obj) {
|
|
28
|
-
return obj && obj.__esModule ? obj : {
|
|
29
|
-
default: obj
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
26
|
function customGrammarFromNameAndEntries(name, entries) {
|
|
33
27
|
var termBNF = entries.getTermBNF(), statementBNF = entries.getStatementBNF(), typePattern = entries.getTypePattern(), symbolPattern = entries.getSymbolPattern(), customGrammar = _occamcustomgrammars.CustomGrammar.fromNameTermBNFStatementBNFTypePatternAndSymbolPattern(name, termBNF, statementBNF, typePattern, symbolPattern);
|
|
34
28
|
return customGrammar;
|
|
35
29
|
}
|
|
36
30
|
function combinedCustomGrammarFromNothing() {
|
|
37
|
-
var customGrammars = [], combinedCustomGrammar =
|
|
31
|
+
var customGrammars = [], combinedCustomGrammar = _occamcustomgrammars.CombinedCustomGrammar.fromCustomGrammars(customGrammars);
|
|
38
32
|
return combinedCustomGrammar;
|
|
39
33
|
}
|
|
40
34
|
function combinedCustomGrammarFromReleaseContexts(releaseContexts) {
|
|
@@ -43,7 +37,7 @@ function combinedCustomGrammarFromReleaseContexts(releaseContexts) {
|
|
|
43
37
|
return customGrammar;
|
|
44
38
|
});
|
|
45
39
|
customGrammars.reverse(); ///
|
|
46
|
-
var combinedCustomGrammar =
|
|
40
|
+
var combinedCustomGrammar = _occamcustomgrammars.CombinedCustomGrammar.fromCustomGrammars(customGrammars);
|
|
47
41
|
return combinedCustomGrammar;
|
|
48
42
|
}
|
|
49
43
|
var _default = {
|
|
@@ -52,4 +46,4 @@ var _default = {
|
|
|
52
46
|
combinedCustomGrammarFromReleaseContexts: combinedCustomGrammarFromReleaseContexts
|
|
53
47
|
};
|
|
54
48
|
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY3VzdG9tR3JhbW1hci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgQ3VzdG9tR3JhbW1hciwgQ29tYmluZWRDdXN0b21HcmFtbWFyIH0gZnJvbSBcIm9jY2FtLWN1c3RvbS1ncmFtbWFyc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gY3VzdG9tR3JhbW1hckZyb21OYW1lQW5kRW50cmllcyhuYW1lLCBlbnRyaWVzKSB7XG4gIGNvbnN0IHRlcm1CTkYgPSBlbnRyaWVzLmdldFRlcm1CTkYoKSxcbiAgICAgICAgc3RhdGVtZW50Qk5GID0gZW50cmllcy5nZXRTdGF0ZW1lbnRCTkYoKSxcbiAgICAgICAgdHlwZVBhdHRlcm4gPSBlbnRyaWVzLmdldFR5cGVQYXR0ZXJuKCksXG4gICAgICAgIHN5bWJvbFBhdHRlcm4gPSBlbnRyaWVzLmdldFN5bWJvbFBhdHRlcm4oKSxcbiAgICAgICAgY3VzdG9tR3JhbW1hciA9IEN1c3RvbUdyYW1tYXIuZnJvbU5hbWVUZXJtQk5GU3RhdGVtZW50Qk5GVHlwZVBhdHRlcm5BbmRTeW1ib2xQYXR0ZXJuKG5hbWUsIHRlcm1CTkYsIHN0YXRlbWVudEJORiwgdHlwZVBhdHRlcm4sIHN5bWJvbFBhdHRlcm4pO1xuXG4gIHJldHVybiBjdXN0b21HcmFtbWFyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29tYmluZWRDdXN0b21HcmFtbWFyRnJvbU5vdGhpbmcoKSB7XG4gIGNvbnN0IGN1c3RvbUdyYW1tYXJzID0gW10sXG4gICAgICAgIGNvbWJpbmVkQ3VzdG9tR3JhbW1hciA9IENvbWJpbmVkQ3VzdG9tR3JhbW1hci5mcm9tQ3VzdG9tR3JhbW1hcnMoY3VzdG9tR3JhbW1hcnMpO1xuXG4gIHJldHVybiBjb21iaW5lZEN1c3RvbUdyYW1tYXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21iaW5lZEN1c3RvbUdyYW1tYXJGcm9tUmVsZWFzZUNvbnRleHRzKHJlbGVhc2VDb250ZXh0cykge1xuICBjb25zdCBjdXN0b21HcmFtbWFycyA9IHJlbGVhc2VDb250ZXh0cy5tYXAoKHJlbGVhc2VDb250ZXh0KSA9PiB7XG4gICAgICAgICAgY29uc3QgY3VzdG9tR3JhbW1hciA9IHJlbGVhc2VDb250ZXh0LmdldEN1c3RvbUdyYW1tYXIoKTtcblxuICAgICAgICAgIHJldHVybiBjdXN0b21HcmFtbWFyO1xuICAgICAgICB9KTtcblxuICBjdXN0b21HcmFtbWFycy5yZXZlcnNlKCk7IC8vL1xuXG4gIGNvbnN0IGNvbWJpbmVkQ3VzdG9tR3JhbW1hciA9IENvbWJpbmVkQ3VzdG9tR3JhbW1hci5mcm9tQ3VzdG9tR3JhbW1hcnMoY3VzdG9tR3JhbW1hcnMpO1xuXG4gIHJldHVybiBjb21iaW5lZEN1c3RvbUdyYW1tYXI7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgY3VzdG9tR3JhbW1hckZyb21OYW1lQW5kRW50cmllcyxcbiAgY29tYmluZWRDdXN0b21HcmFtbWFyRnJvbU5vdGhpbmcsXG4gIGNvbWJpbmVkQ3VzdG9tR3JhbW1hckZyb21SZWxlYXNlQ29udGV4dHNcbn07XG4iXSwibmFtZXMiOlsiY29tYmluZWRDdXN0b21HcmFtbWFyRnJvbU5vdGhpbmciLCJjb21iaW5lZEN1c3RvbUdyYW1tYXJGcm9tUmVsZWFzZUNvbnRleHRzIiwiY3VzdG9tR3JhbW1hckZyb21OYW1lQW5kRW50cmllcyIsIm5hbWUiLCJlbnRyaWVzIiwidGVybUJORiIsImdldFRlcm1CTkYiLCJzdGF0ZW1lbnRCTkYiLCJnZXRTdGF0ZW1lbnRCTkYiLCJ0eXBlUGF0dGVybiIsImdldFR5cGVQYXR0ZXJuIiwic3ltYm9sUGF0dGVybiIsImdldFN5bWJvbFBhdHRlcm4iLCJjdXN0b21HcmFtbWFyIiwiQ3VzdG9tR3JhbW1hciIsImZyb21OYW1lVGVybUJORlN0YXRlbWVudEJORlR5cGVQYXR0ZXJuQW5kU3ltYm9sUGF0dGVybiIsImN1c3RvbUdyYW1tYXJzIiwiY29tYmluZWRDdXN0b21HcmFtbWFyIiwiQ29tYmluZWRDdXN0b21HcmFtbWFyIiwiZnJvbUN1c3RvbUdyYW1tYXJzIiwicmVsZWFzZUNvbnRleHRzIiwibWFwIiwicmVsZWFzZUNvbnRleHQiLCJnZXRDdXN0b21HcmFtbWFyIiwicmV2ZXJzZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBY2dCQTtlQUFBQTs7UUFPQUM7ZUFBQUE7O1FBakJBQztlQUFBQTs7UUErQmhCO2VBQUE7OzttQ0FqQ3FEO0FBRTlDLFNBQVNBLGdDQUFnQ0MsSUFBSSxFQUFFQyxPQUFPO0lBQzNELElBQU1DLFVBQVVELFFBQVFFLFVBQVUsSUFDNUJDLGVBQWVILFFBQVFJLGVBQWUsSUFDdENDLGNBQWNMLFFBQVFNLGNBQWMsSUFDcENDLGdCQUFnQlAsUUFBUVEsZ0JBQWdCLElBQ3hDQyxnQkFBZ0JDLGtDQUFhLENBQUNDLHNEQUFzRCxDQUFDWixNQUFNRSxTQUFTRSxjQUFjRSxhQUFhRTtJQUVySSxPQUFPRTtBQUNUO0FBRU8sU0FBU2I7SUFDZCxJQUFNZ0IsaUJBQWlCLEVBQUUsRUFDbkJDLHdCQUF3QkMsMENBQXFCLENBQUNDLGtCQUFrQixDQUFDSDtJQUV2RSxPQUFPQztBQUNUO0FBRU8sU0FBU2hCLHlDQUF5Q21CLGVBQWU7SUFDdEUsSUFBTUosaUJBQWlCSSxnQkFBZ0JDLEdBQUcsQ0FBQyxTQUFDQztRQUNwQyxJQUFNVCxnQkFBZ0JTLGVBQWVDLGdCQUFnQjtRQUVyRCxPQUFPVjtJQUNUO0lBRU5HLGVBQWVRLE9BQU8sSUFBSSxHQUFHO0lBRTdCLElBQU1QLHdCQUF3QkMsMENBQXFCLENBQUNDLGtCQUFrQixDQUFDSDtJQUV2RSxPQUFPQztBQUNUO0lBRUEsV0FBZTtJQUNiZixpQ0FBQUE7SUFDQUYsa0NBQUFBO0lBQ0FDLDBDQUFBQTtBQUNGIn0=
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "occam-verify-cli",
|
|
3
3
|
"author": "James Smith",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.181",
|
|
5
5
|
"license": "MIT, Anti-996",
|
|
6
6
|
"homepage": "https://github.com/djalbat/occam-verify-cli",
|
|
7
7
|
"description": "Occam's Verifier",
|
|
@@ -12,12 +12,11 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"argumentative": "^2.0.32",
|
|
14
14
|
"necessary": "^14.3.2",
|
|
15
|
-
"occam-custom-grammars": "^5.0.
|
|
16
|
-
"occam-entities": "^1.0.
|
|
17
|
-
"occam-file-system": "^6.0.
|
|
18
|
-
"occam-furtle": "^2.0.
|
|
19
|
-
"occam-
|
|
20
|
-
"occam-grammars": "^1.3.283",
|
|
15
|
+
"occam-custom-grammars": "^5.0.1208",
|
|
16
|
+
"occam-entities": "^1.0.360",
|
|
17
|
+
"occam-file-system": "^6.0.378",
|
|
18
|
+
"occam-furtle": "^2.0.162",
|
|
19
|
+
"occam-grammars": "^1.3.284",
|
|
21
20
|
"occam-lexers": "^23.0.47",
|
|
22
21
|
"occam-parsers": "^23.0.154",
|
|
23
22
|
"occam-query": "^4.1.102"
|
package/src/context/release.js
CHANGED
|
@@ -7,6 +7,8 @@ import { filePathUtilities } from "occam-entities";
|
|
|
7
7
|
import { lexersUtilities, parsersUtilities } from "occam-custom-grammars";
|
|
8
8
|
|
|
9
9
|
import FileContext from "../context/file";
|
|
10
|
+
import NominalLexer from "../nominal/lexer";
|
|
11
|
+
import NominalParser from "../nominal/parser";
|
|
10
12
|
|
|
11
13
|
import { objectType } from "../dom/type";
|
|
12
14
|
import { frameMetaType, referenceMetaType, statementMetaType } from "../dom/metaType";
|
|
@@ -424,8 +426,8 @@ export default class ReleaseContext {
|
|
|
424
426
|
|
|
425
427
|
initialise(releaseContexts) {
|
|
426
428
|
const combinedCustomGrammar = combinedCustomGrammarFromReleaseContexts(releaseContexts),
|
|
427
|
-
nominalLexer = nominalLexerFromCombinedCustomGrammar(combinedCustomGrammar),
|
|
428
|
-
nominalParser = nominalParserFromCombinedCustomGrammar(combinedCustomGrammar),
|
|
429
|
+
nominalLexer = nominalLexerFromCombinedCustomGrammar(NominalLexer, combinedCustomGrammar),
|
|
430
|
+
nominalParser = nominalParserFromCombinedCustomGrammar(NominalParser, combinedCustomGrammar),
|
|
429
431
|
releaseContext = this, ///
|
|
430
432
|
released = this.isReleased();
|
|
431
433
|
|
package/src/node.js
CHANGED
|
@@ -5,7 +5,7 @@ import { NonTerminalNode } from "occam-parsers";
|
|
|
5
5
|
import nodeMixins from "./mixins/node";
|
|
6
6
|
|
|
7
7
|
class Node extends NonTerminalNode {
|
|
8
|
-
static fromRuleNameChildNodesAndOpacity(Class, ruleName, childNodes, opacity
|
|
8
|
+
static fromRuleNameChildNodesAndOpacity(Class, ruleName, childNodes, opacity) {
|
|
9
9
|
if (opacity === undefined) {
|
|
10
10
|
opacity = childNodes; ///
|
|
11
11
|
|
|
@@ -16,7 +16,7 @@ class Node extends NonTerminalNode {
|
|
|
16
16
|
Class = Node; ///
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
const node = NonTerminalNode.fromRuleNameChildNodesAndOpacity(Class, ruleName, childNodes, opacity
|
|
19
|
+
const node = NonTerminalNode.fromRuleNameChildNodesAndOpacity(Class, ruleName, childNodes, opacity);
|
|
20
20
|
|
|
21
21
|
return node;
|
|
22
22
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { NominalParser as NominalParserBase } from "occam-grammars";
|
|
4
|
+
|
|
5
|
+
import NonTerminalNodeMap from "../nonTerminalNodeMap";
|
|
6
|
+
import defaultNonTerminalNode from "../defaultTerminalNode";
|
|
7
|
+
|
|
8
|
+
export default class NominalParser extends NominalParserBase {
|
|
9
|
+
static NonTerminalNodeMap = NonTerminalNodeMap;
|
|
10
|
+
|
|
11
|
+
static defaultNonTerminalNode = defaultNonTerminalNode;
|
|
12
|
+
}
|
|
@@ -98,7 +98,7 @@ import { RULE_RULE_NAME,
|
|
|
98
98
|
COMPLEX_TYPE_DECLARATION_RULE_NAME,
|
|
99
99
|
METAVARIABLE_DECLARATION_RULE_NAME } from "./ruleNames";
|
|
100
100
|
|
|
101
|
-
const
|
|
101
|
+
const nonTerminalNodeMap = {
|
|
102
102
|
[RULE_RULE_NAME]: RuleNode,
|
|
103
103
|
[STEP_RULE_NAME]: StepNode,
|
|
104
104
|
[TERM_RULE_NAME]: TermNode,
|
|
@@ -149,4 +149,4 @@ const ruleMap = {
|
|
|
149
149
|
[METAVARIABLE_DECLARATION_RULE_NAME]: metavariableDeclarationNode
|
|
150
150
|
};
|
|
151
151
|
|
|
152
|
-
export default
|
|
152
|
+
export default nonTerminalNodeMap;
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { CustomGrammar } from "occam-custom-grammars";
|
|
4
|
-
|
|
5
|
-
import CombinedCustomGrammar from "../customGrammar/combined";
|
|
3
|
+
import { CustomGrammar, CombinedCustomGrammar } from "occam-custom-grammars";
|
|
6
4
|
|
|
7
5
|
export function customGrammarFromNameAndEntries(name, entries) {
|
|
8
6
|
const termBNF = entries.getTermBNF(),
|
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "default", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return CombinedCustomGrammar;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
var _occamgrammarutilities = require("occam-grammar-utilities");
|
|
12
|
-
var _occamcustomgrammars = require("occam-custom-grammars");
|
|
13
|
-
var _node = /*#__PURE__*/ _interop_require_default(require("../node"));
|
|
14
|
-
var _nodeMap = /*#__PURE__*/ _interop_require_default(require("../nodeMap"));
|
|
15
|
-
function _array_like_to_array(arr, len) {
|
|
16
|
-
if (len == null || len > arr.length) len = arr.length;
|
|
17
|
-
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
|
18
|
-
return arr2;
|
|
19
|
-
}
|
|
20
|
-
function _array_without_holes(arr) {
|
|
21
|
-
if (Array.isArray(arr)) return _array_like_to_array(arr);
|
|
22
|
-
}
|
|
23
|
-
function _assert_this_initialized(self) {
|
|
24
|
-
if (self === void 0) {
|
|
25
|
-
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
|
26
|
-
}
|
|
27
|
-
return self;
|
|
28
|
-
}
|
|
29
|
-
function _call_super(_this, derived, args) {
|
|
30
|
-
derived = _get_prototype_of(derived);
|
|
31
|
-
return _possible_constructor_return(_this, _is_native_reflect_construct() ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor) : derived.apply(_this, args));
|
|
32
|
-
}
|
|
33
|
-
function _class_call_check(instance, Constructor) {
|
|
34
|
-
if (!(instance instanceof Constructor)) {
|
|
35
|
-
throw new TypeError("Cannot call a class as a function");
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
function _defineProperties(target, props) {
|
|
39
|
-
for(var i = 0; i < props.length; i++){
|
|
40
|
-
var descriptor = props[i];
|
|
41
|
-
descriptor.enumerable = descriptor.enumerable || false;
|
|
42
|
-
descriptor.configurable = true;
|
|
43
|
-
if ("value" in descriptor) descriptor.writable = true;
|
|
44
|
-
Object.defineProperty(target, descriptor.key, descriptor);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
function _create_class(Constructor, protoProps, staticProps) {
|
|
48
|
-
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
49
|
-
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
50
|
-
return Constructor;
|
|
51
|
-
}
|
|
52
|
-
function _get_prototype_of(o) {
|
|
53
|
-
_get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
|
|
54
|
-
return o.__proto__ || Object.getPrototypeOf(o);
|
|
55
|
-
};
|
|
56
|
-
return _get_prototype_of(o);
|
|
57
|
-
}
|
|
58
|
-
function _inherits(subClass, superClass) {
|
|
59
|
-
if (typeof superClass !== "function" && superClass !== null) {
|
|
60
|
-
throw new TypeError("Super expression must either be null or a function");
|
|
61
|
-
}
|
|
62
|
-
subClass.prototype = Object.create(superClass && superClass.prototype, {
|
|
63
|
-
constructor: {
|
|
64
|
-
value: subClass,
|
|
65
|
-
writable: true,
|
|
66
|
-
configurable: true
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
if (superClass) _set_prototype_of(subClass, superClass);
|
|
70
|
-
}
|
|
71
|
-
function _interop_require_default(obj) {
|
|
72
|
-
return obj && obj.__esModule ? obj : {
|
|
73
|
-
default: obj
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
function _iterable_to_array(iter) {
|
|
77
|
-
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
78
|
-
}
|
|
79
|
-
function _non_iterable_spread() {
|
|
80
|
-
throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
81
|
-
}
|
|
82
|
-
function _possible_constructor_return(self, call) {
|
|
83
|
-
if (call && (_type_of(call) === "object" || typeof call === "function")) {
|
|
84
|
-
return call;
|
|
85
|
-
}
|
|
86
|
-
return _assert_this_initialized(self);
|
|
87
|
-
}
|
|
88
|
-
function _set_prototype_of(o, p) {
|
|
89
|
-
_set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
|
|
90
|
-
o.__proto__ = p;
|
|
91
|
-
return o;
|
|
92
|
-
};
|
|
93
|
-
return _set_prototype_of(o, p);
|
|
94
|
-
}
|
|
95
|
-
function _to_consumable_array(arr) {
|
|
96
|
-
return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
|
|
97
|
-
}
|
|
98
|
-
function _type_of(obj) {
|
|
99
|
-
"@swc/helpers - typeof";
|
|
100
|
-
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
|
|
101
|
-
}
|
|
102
|
-
function _unsupported_iterable_to_array(o, minLen) {
|
|
103
|
-
if (!o) return;
|
|
104
|
-
if (typeof o === "string") return _array_like_to_array(o, minLen);
|
|
105
|
-
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
106
|
-
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
107
|
-
if (n === "Map" || n === "Set") return Array.from(n);
|
|
108
|
-
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
109
|
-
}
|
|
110
|
-
function _is_native_reflect_construct() {
|
|
111
|
-
try {
|
|
112
|
-
var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
|
|
113
|
-
} catch (_) {}
|
|
114
|
-
return (_is_native_reflect_construct = function() {
|
|
115
|
-
return !!result;
|
|
116
|
-
})();
|
|
117
|
-
}
|
|
118
|
-
var CombinedCustomGrammar = /*#__PURE__*/ function(CombinedCustomGrammarBase) {
|
|
119
|
-
_inherits(CombinedCustomGrammar, CombinedCustomGrammarBase);
|
|
120
|
-
function CombinedCustomGrammar() {
|
|
121
|
-
_class_call_check(this, CombinedCustomGrammar);
|
|
122
|
-
return _call_super(this, CombinedCustomGrammar, arguments);
|
|
123
|
-
}
|
|
124
|
-
_create_class(CombinedCustomGrammar, [
|
|
125
|
-
{
|
|
126
|
-
key: "getCombinedRules",
|
|
127
|
-
value: function getCombinedRules() {
|
|
128
|
-
var rules = this.getRules(), combinedRules = rules; ///
|
|
129
|
-
return combinedRules;
|
|
130
|
-
}
|
|
131
|
-
},
|
|
132
|
-
{
|
|
133
|
-
key: "postProcess",
|
|
134
|
-
value: function postProcess(rules) {
|
|
135
|
-
var combinedRules = this.getCombinedRules();
|
|
136
|
-
rules = _to_consumable_array(rules).concat(_to_consumable_array(combinedRules));
|
|
137
|
-
rules.forEach(function(rule) {
|
|
138
|
-
var ruleName = rule.getName(), NonTerminalNode = _nodeMap.default[ruleName] || _node.default; ///
|
|
139
|
-
rule.setNonTerminalNode(NonTerminalNode);
|
|
140
|
-
});
|
|
141
|
-
rules = (0, _occamgrammarutilities.eliminateLeftRecursion)(rules); ///
|
|
142
|
-
return rules;
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
]);
|
|
146
|
-
return CombinedCustomGrammar;
|
|
147
|
-
}(_occamcustomgrammars.CombinedCustomGrammar);
|
|
148
|
-
|
|
149
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jdXN0b21HcmFtbWFyL2NvbWJpbmVkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBlbGltaW5hdGVMZWZ0UmVjdXJzaW9uIH0gZnJvbSBcIm9jY2FtLWdyYW1tYXItdXRpbGl0aWVzXCI7XG5pbXBvcnQgeyBDb21iaW5lZEN1c3RvbUdyYW1tYXIgYXMgQ29tYmluZWRDdXN0b21HcmFtbWFyQmFzZSB9IGZyb20gXCJvY2NhbS1jdXN0b20tZ3JhbW1hcnNcIjtcblxuaW1wb3J0IE5vZGUgZnJvbSBcIi4uL25vZGVcIjtcbmltcG9ydCBub2RlTWFwIGZyb20gXCIuLi9ub2RlTWFwXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbWJpbmVkQ3VzdG9tR3JhbW1hciBleHRlbmRzIENvbWJpbmVkQ3VzdG9tR3JhbW1hckJhc2Uge1xuICBnZXRDb21iaW5lZFJ1bGVzKCkge1xuICAgIGNvbnN0IHJ1bGVzID0gdGhpcy5nZXRSdWxlcygpLFxuICAgICAgICAgIGNvbWJpbmVkUnVsZXMgPSBydWxlczsgIC8vL1xuXG4gICAgcmV0dXJuIGNvbWJpbmVkUnVsZXM7XG4gIH1cblxuICBwb3N0UHJvY2VzcyhydWxlcykge1xuICAgIGNvbnN0IGNvbWJpbmVkUnVsZXMgPSB0aGlzLmdldENvbWJpbmVkUnVsZXMoKTtcblxuICAgIHJ1bGVzID0gWyAvLy9cbiAgICAgIC4uLnJ1bGVzLFxuICAgICAgLi4uY29tYmluZWRSdWxlcyxcbiAgICBdO1xuXG4gICAgcnVsZXMuZm9yRWFjaCgocnVsZSkgPT4ge1xuICAgICAgY29uc3QgcnVsZU5hbWUgPSBydWxlLmdldE5hbWUoKSxcbiAgICAgICAgICAgIE5vblRlcm1pbmFsTm9kZSA9IG5vZGVNYXBbcnVsZU5hbWVdIHx8IE5vZGU7IC8vL1xuXG4gICAgICBydWxlLnNldE5vblRlcm1pbmFsTm9kZShOb25UZXJtaW5hbE5vZGUpO1xuICAgIH0pO1xuXG4gICAgcnVsZXMgPSBlbGltaW5hdGVMZWZ0UmVjdXJzaW9uKHJ1bGVzKTsgIC8vL1xuXG4gICAgcmV0dXJuIHJ1bGVzO1xuICB9XG59XG4iXSwibmFtZXMiOlsiQ29tYmluZWRDdXN0b21HcmFtbWFyIiwiZ2V0Q29tYmluZWRSdWxlcyIsInJ1bGVzIiwiZ2V0UnVsZXMiLCJjb21iaW5lZFJ1bGVzIiwicG9zdFByb2Nlc3MiLCJmb3JFYWNoIiwicnVsZSIsInJ1bGVOYW1lIiwiZ2V0TmFtZSIsIk5vblRlcm1pbmFsTm9kZSIsIm5vZGVNYXAiLCJOb2RlIiwic2V0Tm9uVGVybWluYWxOb2RlIiwiZWxpbWluYXRlTGVmdFJlY3Vyc2lvbiIsIkNvbWJpbmVkQ3VzdG9tR3JhbW1hckJhc2UiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBUXFCQTs7O3FDQU5rQjttQ0FDNEI7MkRBRWxEOzhEQUNHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVMLElBQUEsQUFBTUEsc0NBQU47Y0FBTUE7YUFBQUE7Z0NBQUFBO1FBQU4sT0FBQSxrQkFBTUE7O2tCQUFBQTs7WUFDbkJDLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxJQUFNQyxRQUFRLElBQUksQ0FBQ0MsUUFBUSxJQUNyQkMsZ0JBQWdCRixPQUFRLEdBQUc7Z0JBRWpDLE9BQU9FO1lBQ1Q7OztZQUVBQyxLQUFBQTttQkFBQUEsU0FBQUEsWUFBWUgsS0FBSztnQkFDZixJQUFNRSxnQkFBZ0IsSUFBSSxDQUFDSCxnQkFBZ0I7Z0JBRTNDQyxRQUFRLEFBQ04scUJBQUdBLGNBQ0gscUJBQUdFO2dCQUdMRixNQUFNSSxPQUFPLENBQUMsU0FBQ0M7b0JBQ2IsSUFBTUMsV0FBV0QsS0FBS0UsT0FBTyxJQUN2QkMsa0JBQWtCQyxnQkFBTyxDQUFDSCxTQUFTLElBQUlJLGFBQUksRUFBRSxHQUFHO29CQUV0REwsS0FBS00sa0JBQWtCLENBQUNIO2dCQUMxQjtnQkFFQVIsUUFBUVksSUFBQUEsNkNBQXNCLEVBQUNaLFFBQVMsR0FBRztnQkFFM0MsT0FBT0E7WUFDVDs7O1dBMUJtQkY7RUFBOEJlLDBDQUF5QiJ9
|
package/lib/nodeMap.js
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "default", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return _default;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
var _term = /*#__PURE__*/ _interop_require_default(require("./node/term"));
|
|
12
|
-
var _type = /*#__PURE__*/ _interop_require_default(require("./node/type"));
|
|
13
|
-
var _rule = /*#__PURE__*/ _interop_require_default(require("./node/rule"));
|
|
14
|
-
var _step = /*#__PURE__*/ _interop_require_default(require("./node/step"));
|
|
15
|
-
var _error = /*#__PURE__*/ _interop_require_default(require("./node/error"));
|
|
16
|
-
var _frame = /*#__PURE__*/ _interop_require_default(require("./node/frame"));
|
|
17
|
-
var _axiom = /*#__PURE__*/ _interop_require_default(require("./node/axiom"));
|
|
18
|
-
var _label = /*#__PURE__*/ _interop_require_default(require("./node/label"));
|
|
19
|
-
var _lemma = /*#__PURE__*/ _interop_require_default(require("./node/lemma"));
|
|
20
|
-
var _proof = /*#__PURE__*/ _interop_require_default(require("./node/proof"));
|
|
21
|
-
var _premise = /*#__PURE__*/ _interop_require_default(require("./node/premise"));
|
|
22
|
-
var _theorem = /*#__PURE__*/ _interop_require_default(require("./node/theorem"));
|
|
23
|
-
var _subproof = /*#__PURE__*/ _interop_require_default(require("./node/subproof"));
|
|
24
|
-
var _property = /*#__PURE__*/ _interop_require_default(require("./node/property"));
|
|
25
|
-
var _metaType = /*#__PURE__*/ _interop_require_default(require("./node/metaType"));
|
|
26
|
-
var _equality = /*#__PURE__*/ _interop_require_default(require("./node/equality"));
|
|
27
|
-
var _variable = /*#__PURE__*/ _interop_require_default(require("./node/variable"));
|
|
28
|
-
var _statement = /*#__PURE__*/ _interop_require_default(require("./node/statement"));
|
|
29
|
-
var _reference = /*#__PURE__*/ _interop_require_default(require("./node/reference"));
|
|
30
|
-
var _deduction = /*#__PURE__*/ _interop_require_default(require("./node/deduction"));
|
|
31
|
-
var _judgement = /*#__PURE__*/ _interop_require_default(require("./node/judgement"));
|
|
32
|
-
var _metaLemma = /*#__PURE__*/ _interop_require_default(require("./node/metaLemma"));
|
|
33
|
-
var _parameter = /*#__PURE__*/ _interop_require_default(require("./node/parameter"));
|
|
34
|
-
var _derivation = /*#__PURE__*/ _interop_require_default(require("./node/derivation"));
|
|
35
|
-
var _combinator = /*#__PURE__*/ _interop_require_default(require("./node/combinator"));
|
|
36
|
-
var _conclusion = /*#__PURE__*/ _interop_require_default(require("./node/conclusion"));
|
|
37
|
-
var _conjecture = /*#__PURE__*/ _interop_require_default(require("./node/conjecture"));
|
|
38
|
-
var _supposition = /*#__PURE__*/ _interop_require_default(require("./node/supposition"));
|
|
39
|
-
var _constructor = /*#__PURE__*/ _interop_require_default(require("./node/constructor"));
|
|
40
|
-
var _declaration = /*#__PURE__*/ _interop_require_default(require("./node/declaration"));
|
|
41
|
-
var _metatheorem = /*#__PURE__*/ _interop_require_default(require("./node/metatheorem"));
|
|
42
|
-
var _metavariable = /*#__PURE__*/ _interop_require_default(require("./node/metavariable"));
|
|
43
|
-
var _procedureCall = /*#__PURE__*/ _interop_require_default(require("./node/procedureCall"));
|
|
44
|
-
var _subDerivation = /*#__PURE__*/ _interop_require_default(require("./node/subDerivation"));
|
|
45
|
-
var _type1 = /*#__PURE__*/ _interop_require_default(require("./node/assertion/type"));
|
|
46
|
-
var _type2 = /*#__PURE__*/ _interop_require_default(require("./node/declaration/type"));
|
|
47
|
-
var _propertyRelation = /*#__PURE__*/ _interop_require_default(require("./node/propertyRelation"));
|
|
48
|
-
var _defined = /*#__PURE__*/ _interop_require_default(require("./node/assertion/defined"));
|
|
49
|
-
var _property1 = /*#__PURE__*/ _interop_require_default(require("./node/assertion/property"));
|
|
50
|
-
var _subproof1 = /*#__PURE__*/ _interop_require_default(require("./node/assertion/subproof"));
|
|
51
|
-
var _contained = /*#__PURE__*/ _interop_require_default(require("./node/assertion/contained"));
|
|
52
|
-
var _satisfies = /*#__PURE__*/ _interop_require_default(require("./node/assertion/satisfies"));
|
|
53
|
-
var _property2 = /*#__PURE__*/ _interop_require_default(require("./node/declaration/property"));
|
|
54
|
-
var _variable1 = /*#__PURE__*/ _interop_require_default(require("./node/declaration/variable"));
|
|
55
|
-
var _combinator1 = /*#__PURE__*/ _interop_require_default(require("./node/declaration/combinator"));
|
|
56
|
-
var _complexType = /*#__PURE__*/ _interop_require_default(require("./node/declaration/complexType"));
|
|
57
|
-
var _constructor1 = /*#__PURE__*/ _interop_require_default(require("./node/declaration/constructor"));
|
|
58
|
-
var _metavariable1 = /*#__PURE__*/ _interop_require_default(require("./node/declaration/metavariable"));
|
|
59
|
-
var _ruleNames = require("./ruleNames");
|
|
60
|
-
function _define_property(obj, key, value) {
|
|
61
|
-
if (key in obj) {
|
|
62
|
-
Object.defineProperty(obj, key, {
|
|
63
|
-
value: value,
|
|
64
|
-
enumerable: true,
|
|
65
|
-
configurable: true,
|
|
66
|
-
writable: true
|
|
67
|
-
});
|
|
68
|
-
} else {
|
|
69
|
-
obj[key] = value;
|
|
70
|
-
}
|
|
71
|
-
return obj;
|
|
72
|
-
}
|
|
73
|
-
function _interop_require_default(obj) {
|
|
74
|
-
return obj && obj.__esModule ? obj : {
|
|
75
|
-
default: obj
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
var _obj;
|
|
79
|
-
var ruleMap = (_obj = {}, _define_property(_obj, _ruleNames.RULE_RULE_NAME, _rule.default), _define_property(_obj, _ruleNames.STEP_RULE_NAME, _step.default), _define_property(_obj, _ruleNames.TERM_RULE_NAME, _term.default), _define_property(_obj, _ruleNames.TYPE_RULE_NAME, _type.default), _define_property(_obj, _ruleNames.ERROR_RULE_NAME, _error.default), _define_property(_obj, _ruleNames.FRAME_RULE_NAME, _frame.default), _define_property(_obj, _ruleNames.LABEL_RULE_NAME, _label.default), _define_property(_obj, _ruleNames.LEMMA_RULE_NAME, _lemma.default), _define_property(_obj, _ruleNames.AXIOM_RULE_NAME, _axiom.default), _define_property(_obj, _ruleNames.PROOF_RULE_NAME, _proof.default), _define_property(_obj, _ruleNames.THEOREM_RULE_NAME, _theorem.default), _define_property(_obj, _ruleNames.PREMISE_RULE_NAME, _premise.default), _define_property(_obj, _ruleNames.PROPERTY_RULE_NAME, _property.default), _define_property(_obj, _ruleNames.SUBPROOF_RULE_NAME, _subproof.default), _define_property(_obj, _ruleNames.EQUALITY_RULE_NAME, _equality.default), _define_property(_obj, _ruleNames.VARIABLE_RULE_NAME, _variable.default), _define_property(_obj, _ruleNames.REFERENCE_RULE_NAME, _reference.default), _define_property(_obj, _ruleNames.JUDGEMENT_RULE_NAME, _judgement.default), _define_property(_obj, _ruleNames.META_TYPE_RULE_NAME, _metaType.default), _define_property(_obj, _ruleNames.DEDUCTION_RULE_NAME, _deduction.default), _define_property(_obj, _ruleNames.PARAMETER_RULE_NAME, _parameter.default), _define_property(_obj, _ruleNames.STATEMENT_RULE_NAME, _statement.default), _define_property(_obj, _ruleNames.COMBINATOR_RULE_NAME, _combinator.default), _define_property(_obj, _ruleNames.CONCLUSION_RULE_NAME, _conclusion.default), _define_property(_obj, _ruleNames.CONJECTURE_RULE_NAME, _conjecture.default), _define_property(_obj, _ruleNames.DERIVATION_RULE_NAME, _derivation.default), _define_property(_obj, _ruleNames.META_LEMMA_RULE_NAME, _metaLemma.default), _define_property(_obj, _ruleNames.SUPPOSITION_RULE_NAME, _supposition.default), _define_property(_obj, _ruleNames.CONSTRUCTOR_RULE_NAME, _constructor.default), _define_property(_obj, _ruleNames.DECLARATION_RULE_NAME, _declaration.default), _define_property(_obj, _ruleNames.METATHEOREM_RULE_NAME, _metatheorem.default), _define_property(_obj, _ruleNames.METAVARIABLE_RULE_NAME, _metavariable.default), _define_property(_obj, _ruleNames.TYPE_ASSERTION_RULE_NAME, _type1.default), _define_property(_obj, _ruleNames.PROCEDURE_CALL_RULE_NAME, _procedureCall.default), _define_property(_obj, _ruleNames.SUB_DERIVATION_RULE_NAME, _subDerivation.default), _define_property(_obj, _ruleNames.TYPE_DECLARATION_RULE_NAME, _type2.default), _define_property(_obj, _ruleNames.PROPERTY_RELATION_RULE_NAME, _propertyRelation.default), _define_property(_obj, _ruleNames.DEFINED_ASSERTION_RULE_NAME, _defined.default), _define_property(_obj, _ruleNames.SUBPROOF_ASSERTION_RULE_NAME, _subproof1.default), _define_property(_obj, _ruleNames.PROPERTY_ASSERTION_RULE_NAME, _property1.default), _define_property(_obj, _ruleNames.SATISFIES_ASSERTION_RULE_NAME, _satisfies.default), _define_property(_obj, _ruleNames.CONTAINED_ASSERTION_RULE_NAME, _contained.default), _define_property(_obj, _ruleNames.VARIABLE_DECLARATION_RULE_NAME, _variable1.default), _define_property(_obj, _ruleNames.PROPERTY_DECLARATION_RULE_NAME, _property2.default), _define_property(_obj, _ruleNames.COMBINATOR_DECLARATION_RULE_NAME, _combinator1.default), _define_property(_obj, _ruleNames.CONSTRUCTOR_DECLARATION_RULE_NAME, _constructor1.default), _define_property(_obj, _ruleNames.COMPLEX_TYPE_DECLARATION_RULE_NAME, _complexType.default), _define_property(_obj, _ruleNames.METAVARIABLE_DECLARATION_RULE_NAME, _metavariable1.default), _obj);
|
|
80
|
-
var _default = ruleMap;
|
|
81
|
-
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ub2RlTWFwLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgVGVybU5vZGUgZnJvbSBcIi4vbm9kZS90ZXJtXCJcbmltcG9ydCBUeXBlTm9kZSBmcm9tIFwiLi9ub2RlL3R5cGVcIlxuaW1wb3J0IFJ1bGVOb2RlIGZyb20gXCIuL25vZGUvcnVsZVwiXG5pbXBvcnQgU3RlcE5vZGUgZnJvbSBcIi4vbm9kZS9zdGVwXCJcbmltcG9ydCBFcnJvck5vZGUgZnJvbSBcIi4vbm9kZS9lcnJvclwiXG5pbXBvcnQgRnJhbWVOb2RlIGZyb20gXCIuL25vZGUvZnJhbWVcIlxuaW1wb3J0IEF4aW9tTm9kZSBmcm9tIFwiLi9ub2RlL2F4aW9tXCJcbmltcG9ydCBMYWJlbE5vZGUgZnJvbSBcIi4vbm9kZS9sYWJlbFwiXG5pbXBvcnQgTGVtbWFOb2RlIGZyb20gXCIuL25vZGUvbGVtbWFcIlxuaW1wb3J0IFByb29mTm9kZSBmcm9tIFwiLi9ub2RlL3Byb29mXCJcbmltcG9ydCBQcmVtaXNlTm9kZSBmcm9tIFwiLi9ub2RlL3ByZW1pc2VcIlxuaW1wb3J0IFRoZW9yZW1Ob2RlIGZyb20gXCIuL25vZGUvdGhlb3JlbVwiXG5pbXBvcnQgU3VicHJvb2ZOb2RlIGZyb20gXCIuL25vZGUvc3VicHJvb2ZcIlxuaW1wb3J0IFByb3BlcnR5Tm9kZSBmcm9tIFwiLi9ub2RlL3Byb3BlcnR5XCJcbmltcG9ydCBNZXRhVHlwZU5vZGUgZnJvbSBcIi4vbm9kZS9tZXRhVHlwZVwiXG5pbXBvcnQgRXF1YWxpdHlOb2RlIGZyb20gXCIuL25vZGUvZXF1YWxpdHlcIlxuaW1wb3J0IFZhcmlhYmxlTm9kZSBmcm9tIFwiLi9ub2RlL3ZhcmlhYmxlXCJcbmltcG9ydCBTdGF0ZW1lbnROb2RlIGZyb20gXCIuL25vZGUvc3RhdGVtZW50XCJcbmltcG9ydCBSZWZlcmVuY2VOb2RlIGZyb20gXCIuL25vZGUvcmVmZXJlbmNlXCJcbmltcG9ydCBEZWR1Y3Rpb25Ob2RlIGZyb20gXCIuL25vZGUvZGVkdWN0aW9uXCJcbmltcG9ydCBKdWRnZW1lbnROb2RlIGZyb20gXCIuL25vZGUvanVkZ2VtZW50XCJcbmltcG9ydCBNZXRhTGVtbWFOb2RlIGZyb20gXCIuL25vZGUvbWV0YUxlbW1hXCJcbmltcG9ydCBQYXJhbWV0ZXJOb2RlIGZyb20gXCIuL25vZGUvcGFyYW1ldGVyXCJcbmltcG9ydCBEZXJpdmF0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2Rlcml2YXRpb25cIlxuaW1wb3J0IENvbWJpbmF0b3JOb2RlIGZyb20gXCIuL25vZGUvY29tYmluYXRvclwiXG5pbXBvcnQgQ29uY2x1c2lvbk5vZGUgZnJvbSBcIi4vbm9kZS9jb25jbHVzaW9uXCJcbmltcG9ydCBDb25qZWN0dXJlTm9kZSBmcm9tIFwiLi9ub2RlL2NvbmplY3R1cmVcIlxuaW1wb3J0IFN1cHBvc2l0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL3N1cHBvc2l0aW9uXCJcbmltcG9ydCBDb25zdHJ1Y3Rvck5vZGUgZnJvbSBcIi4vbm9kZS9jb25zdHJ1Y3RvclwiXG5pbXBvcnQgRGVjbGFyYXRpb25Ob2RlIGZyb20gXCIuL25vZGUvZGVjbGFyYXRpb25cIlxuaW1wb3J0IE1ldGF0aGVvcmVtTm9kZSBmcm9tIFwiLi9ub2RlL21ldGF0aGVvcmVtXCJcbmltcG9ydCBNZXRhdmFyaWFibGVOb2RlIGZyb20gXCIuL25vZGUvbWV0YXZhcmlhYmxlXCJcbmltcG9ydCBQcm9jZWR1cmVDYWxsTm9kZSBmcm9tIFwiLi9ub2RlL3Byb2NlZHVyZUNhbGxcIlxuaW1wb3J0IFN1YkRlcml2YXRpb25Ob2RlIGZyb20gXCIuL25vZGUvc3ViRGVyaXZhdGlvblwiXG5pbXBvcnQgVHlwZUFzc2VydGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9hc3NlcnRpb24vdHlwZVwiO1xuaW1wb3J0IHR5cGVEZWNsYXJhdGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9kZWNsYXJhdGlvbi90eXBlXCI7XG5pbXBvcnQgUHJvcGVydHlSZWxhdGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9wcm9wZXJ0eVJlbGF0aW9uXCJcbmltcG9ydCBEZWZpbmVkQXNzZXJ0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2Fzc2VydGlvbi9kZWZpbmVkXCI7XG5pbXBvcnQgUHJvcGVydHlBc3NlcnRpb25Ob2RlIGZyb20gXCIuL25vZGUvYXNzZXJ0aW9uL3Byb3BlcnR5XCI7XG5pbXBvcnQgU3VicHJvb2ZBc3NlcnRpb25Ob2RlIGZyb20gXCIuL25vZGUvYXNzZXJ0aW9uL3N1YnByb29mXCI7XG5pbXBvcnQgQ29udGFpbmVkQXNzZXJ0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2Fzc2VydGlvbi9jb250YWluZWRcIjtcbmltcG9ydCBTYXRpc2ZpZXNBc3NlcnRpb25Ob2RlIGZyb20gXCIuL25vZGUvYXNzZXJ0aW9uL3NhdGlzZmllc1wiO1xuaW1wb3J0IFByb3BlcnR5RGVjbGFyYXRpb25Ob2RlIGZyb20gXCIuL25vZGUvZGVjbGFyYXRpb24vcHJvcGVydHlcIjtcbmltcG9ydCB2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2RlY2xhcmF0aW9uL3ZhcmlhYmxlXCI7XG5pbXBvcnQgY29tYmluYXRvckRlY2xhcmF0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2RlY2xhcmF0aW9uL2NvbWJpbmF0b3JcIjtcbmltcG9ydCBjb21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2RlY2xhcmF0aW9uL2NvbXBsZXhUeXBlXCI7XG5pbXBvcnQgY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUgZnJvbSBcIi4vbm9kZS9kZWNsYXJhdGlvbi9jb25zdHJ1Y3RvclwiO1xuaW1wb3J0IG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSBmcm9tIFwiLi9ub2RlL2RlY2xhcmF0aW9uL21ldGF2YXJpYWJsZVwiO1xuXG5pbXBvcnQgeyBSVUxFX1JVTEVfTkFNRSxcbiAgICAgICAgIFNURVBfUlVMRV9OQU1FLFxuICAgICAgICAgVEVSTV9SVUxFX05BTUUsXG4gICAgICAgICBUWVBFX1JVTEVfTkFNRSxcbiAgICAgICAgIFBST09GX1JVTEVfTkFNRSxcbiAgICAgICAgIEVSUk9SX1JVTEVfTkFNRSxcbiAgICAgICAgIEZSQU1FX1JVTEVfTkFNRSxcbiAgICAgICAgIEFYSU9NX1JVTEVfTkFNRSxcbiAgICAgICAgIExBQkVMX1JVTEVfTkFNRSxcbiAgICAgICAgIExFTU1BX1JVTEVfTkFNRSxcbiAgICAgICAgIFRIRU9SRU1fUlVMRV9OQU1FLFxuICAgICAgICAgUFJFTUlTRV9SVUxFX05BTUUsXG4gICAgICAgICBTVUJQUk9PRl9SVUxFX05BTUUsXG4gICAgICAgICBQUk9QRVJUWV9SVUxFX05BTUUsXG4gICAgICAgICBFUVVBTElUWV9SVUxFX05BTUUsXG4gICAgICAgICBWQVJJQUJMRV9SVUxFX05BTUUsXG4gICAgICAgICBNRVRBX1RZUEVfUlVMRV9OQU1FLFxuICAgICAgICAgREVEVUNUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIEpVREdFTUVOVF9SVUxFX05BTUUsXG4gICAgICAgICBQQVJBTUVURVJfUlVMRV9OQU1FLFxuICAgICAgICAgUkVGRVJFTkNFX1JVTEVfTkFNRSxcbiAgICAgICAgIFNUQVRFTUVOVF9SVUxFX05BTUUsXG4gICAgICAgICBNRVRBX0xFTU1BX1JVTEVfTkFNRSxcbiAgICAgICAgIERFUklWQVRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgQ09NQklOQVRPUl9SVUxFX05BTUUsXG4gICAgICAgICBDT05DTFVTSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIENPTkpFQ1RVUkVfUlVMRV9OQU1FLFxuICAgICAgICAgQ09OU1RSVUNUT1JfUlVMRV9OQU1FLFxuICAgICAgICAgREVDTEFSQVRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgU1VQUE9TSVRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgTUVUQVRIRU9SRU1fUlVMRV9OQU1FLFxuICAgICAgICAgTUVUQVZBUklBQkxFX1JVTEVfTkFNRSxcbiAgICAgICAgIFNVQl9ERVJJVkFUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIFRZUEVfQVNTRVJUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIFBST0NFRFVSRV9DQUxMX1JVTEVfTkFNRSxcbiAgICAgICAgIFRZUEVfREVDTEFSQVRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgUFJPUEVSVFlfUkVMQVRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgREVGSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgU1VCUFJPT0ZfQVNTRVJUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIFBST1BFUlRZX0FTU0VSVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBDT05UQUlORURfQVNTRVJUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIFNBVElTRklFU19BU1NFUlRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgUFJPUEVSVFlfREVDTEFSQVRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgVkFSSUFCTEVfREVDTEFSQVRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgQ09NQklOQVRPUl9ERUNMQVJBVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBDT05TVFJVQ1RPUl9ERUNMQVJBVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBDT01QTEVYX1RZUEVfREVDTEFSQVRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgTUVUQVZBUklBQkxFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSB9IGZyb20gXCIuL3J1bGVOYW1lc1wiO1xuXG5jb25zdCBydWxlTWFwID0ge1xuICBbUlVMRV9SVUxFX05BTUVdOiBSdWxlTm9kZSxcbiAgW1NURVBfUlVMRV9OQU1FXTogU3RlcE5vZGUsXG4gIFtURVJNX1JVTEVfTkFNRV06IFRlcm1Ob2RlLFxuICBbVFlQRV9SVUxFX05BTUVdOiBUeXBlTm9kZSxcbiAgW0VSUk9SX1JVTEVfTkFNRV06IEVycm9yTm9kZSxcbiAgW0ZSQU1FX1JVTEVfTkFNRV06IEZyYW1lTm9kZSxcbiAgW0xBQkVMX1JVTEVfTkFNRV06IExhYmVsTm9kZSxcbiAgW0xFTU1BX1JVTEVfTkFNRV06IExlbW1hTm9kZSxcbiAgW0FYSU9NX1JVTEVfTkFNRV06IEF4aW9tTm9kZSxcbiAgW1BST09GX1JVTEVfTkFNRV06IFByb29mTm9kZSxcbiAgW1RIRU9SRU1fUlVMRV9OQU1FXTogVGhlb3JlbU5vZGUsXG4gIFtQUkVNSVNFX1JVTEVfTkFNRV06IFByZW1pc2VOb2RlLFxuICBbUFJPUEVSVFlfUlVMRV9OQU1FXTogUHJvcGVydHlOb2RlLFxuICBbU1VCUFJPT0ZfUlVMRV9OQU1FXTogU3VicHJvb2ZOb2RlLFxuICBbRVFVQUxJVFlfUlVMRV9OQU1FXTogRXF1YWxpdHlOb2RlLFxuICBbVkFSSUFCTEVfUlVMRV9OQU1FXTogVmFyaWFibGVOb2RlLFxuICBbUkVGRVJFTkNFX1JVTEVfTkFNRV06IFJlZmVyZW5jZU5vZGUsXG4gIFtKVURHRU1FTlRfUlVMRV9OQU1FXTogSnVkZ2VtZW50Tm9kZSxcbiAgW01FVEFfVFlQRV9SVUxFX05BTUVdOiBNZXRhVHlwZU5vZGUsXG4gIFtERURVQ1RJT05fUlVMRV9OQU1FXTogRGVkdWN0aW9uTm9kZSxcbiAgW1BBUkFNRVRFUl9SVUxFX05BTUVdOiBQYXJhbWV0ZXJOb2RlLFxuICBbU1RBVEVNRU5UX1JVTEVfTkFNRV06IFN0YXRlbWVudE5vZGUsXG4gIFtDT01CSU5BVE9SX1JVTEVfTkFNRV06IENvbWJpbmF0b3JOb2RlLFxuICBbQ09OQ0xVU0lPTl9SVUxFX05BTUVdOiBDb25jbHVzaW9uTm9kZSxcbiAgW0NPTkpFQ1RVUkVfUlVMRV9OQU1FXTogQ29uamVjdHVyZU5vZGUsXG4gIFtERVJJVkFUSU9OX1JVTEVfTkFNRV06IERlcml2YXRpb25Ob2RlLFxuICBbTUVUQV9MRU1NQV9SVUxFX05BTUVdOiBNZXRhTGVtbWFOb2RlLFxuICBbU1VQUE9TSVRJT05fUlVMRV9OQU1FXTogU3VwcG9zaXRpb25Ob2RlLFxuICBbQ09OU1RSVUNUT1JfUlVMRV9OQU1FXTogQ29uc3RydWN0b3JOb2RlLFxuICBbREVDTEFSQVRJT05fUlVMRV9OQU1FXTogRGVjbGFyYXRpb25Ob2RlLFxuICBbTUVUQVRIRU9SRU1fUlVMRV9OQU1FXTogTWV0YXRoZW9yZW1Ob2RlLFxuICBbTUVUQVZBUklBQkxFX1JVTEVfTkFNRV06IE1ldGF2YXJpYWJsZU5vZGUsXG4gIFtUWVBFX0FTU0VSVElPTl9SVUxFX05BTUVdOiBUeXBlQXNzZXJ0aW9uTm9kZSxcbiAgW1BST0NFRFVSRV9DQUxMX1JVTEVfTkFNRV06IFByb2NlZHVyZUNhbGxOb2RlLFxuICBbU1VCX0RFUklWQVRJT05fUlVMRV9OQU1FXTogU3ViRGVyaXZhdGlvbk5vZGUsXG4gIFtUWVBFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRV06IHR5cGVEZWNsYXJhdGlvbk5vZGUsXG4gIFtQUk9QRVJUWV9SRUxBVElPTl9SVUxFX05BTUVdOiBQcm9wZXJ0eVJlbGF0aW9uTm9kZSxcbiAgW0RFRklORURfQVNTRVJUSU9OX1JVTEVfTkFNRV06IERlZmluZWRBc3NlcnRpb25Ob2RlLFxuICBbU1VCUFJPT0ZfQVNTRVJUSU9OX1JVTEVfTkFNRV06IFN1YnByb29mQXNzZXJ0aW9uTm9kZSxcbiAgW1BST1BFUlRZX0FTU0VSVElPTl9SVUxFX05BTUVdOiBQcm9wZXJ0eUFzc2VydGlvbk5vZGUsXG4gIFtTQVRJU0ZJRVNfQVNTRVJUSU9OX1JVTEVfTkFNRV06IFNhdGlzZmllc0Fzc2VydGlvbk5vZGUsXG4gIFtDT05UQUlORURfQVNTRVJUSU9OX1JVTEVfTkFNRV06IENvbnRhaW5lZEFzc2VydGlvbk5vZGUsXG4gIFtWQVJJQUJMRV9ERUNMQVJBVElPTl9SVUxFX05BTUVdOiB2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSxcbiAgW1BST1BFUlRZX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRV06IFByb3BlcnR5RGVjbGFyYXRpb25Ob2RlLFxuICBbQ09NQklOQVRPUl9ERUNMQVJBVElPTl9SVUxFX05BTUVdOiBjb21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlLFxuICBbQ09OU1RSVUNUT1JfREVDTEFSQVRJT05fUlVMRV9OQU1FXTogY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUsXG4gIFtDT01QTEVYX1RZUEVfREVDTEFSQVRJT05fUlVMRV9OQU1FXTogY29tcGxleFR5cGVEZWNsYXJhdGlvbk5vZGUsXG4gIFtNRVRBVkFSSUFCTEVfREVDTEFSQVRJT05fUlVMRV9OQU1FXTogbWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlXG59O1xuXG5leHBvcnQgZGVmYXVsdCBydWxlTWFwO1xuIl0sIm5hbWVzIjpbInJ1bGVNYXAiLCJSVUxFX1JVTEVfTkFNRSIsIlJ1bGVOb2RlIiwiU1RFUF9SVUxFX05BTUUiLCJTdGVwTm9kZSIsIlRFUk1fUlVMRV9OQU1FIiwiVGVybU5vZGUiLCJUWVBFX1JVTEVfTkFNRSIsIlR5cGVOb2RlIiwiRVJST1JfUlVMRV9OQU1FIiwiRXJyb3JOb2RlIiwiRlJBTUVfUlVMRV9OQU1FIiwiRnJhbWVOb2RlIiwiTEFCRUxfUlVMRV9OQU1FIiwiTGFiZWxOb2RlIiwiTEVNTUFfUlVMRV9OQU1FIiwiTGVtbWFOb2RlIiwiQVhJT01fUlVMRV9OQU1FIiwiQXhpb21Ob2RlIiwiUFJPT0ZfUlVMRV9OQU1FIiwiUHJvb2ZOb2RlIiwiVEhFT1JFTV9SVUxFX05BTUUiLCJUaGVvcmVtTm9kZSIsIlBSRU1JU0VfUlVMRV9OQU1FIiwiUHJlbWlzZU5vZGUiLCJQUk9QRVJUWV9SVUxFX05BTUUiLCJQcm9wZXJ0eU5vZGUiLCJTVUJQUk9PRl9SVUxFX05BTUUiLCJTdWJwcm9vZk5vZGUiLCJFUVVBTElUWV9SVUxFX05BTUUiLCJFcXVhbGl0eU5vZGUiLCJWQVJJQUJMRV9SVUxFX05BTUUiLCJWYXJpYWJsZU5vZGUiLCJSRUZFUkVOQ0VfUlVMRV9OQU1FIiwiUmVmZXJlbmNlTm9kZSIsIkpVREdFTUVOVF9SVUxFX05BTUUiLCJKdWRnZW1lbnROb2RlIiwiTUVUQV9UWVBFX1JVTEVfTkFNRSIsIk1ldGFUeXBlTm9kZSIsIkRFRFVDVElPTl9SVUxFX05BTUUiLCJEZWR1Y3Rpb25Ob2RlIiwiUEFSQU1FVEVSX1JVTEVfTkFNRSIsIlBhcmFtZXRlck5vZGUiLCJTVEFURU1FTlRfUlVMRV9OQU1FIiwiU3RhdGVtZW50Tm9kZSIsIkNPTUJJTkFUT1JfUlVMRV9OQU1FIiwiQ29tYmluYXRvck5vZGUiLCJDT05DTFVTSU9OX1JVTEVfTkFNRSIsIkNvbmNsdXNpb25Ob2RlIiwiQ09OSkVDVFVSRV9SVUxFX05BTUUiLCJDb25qZWN0dXJlTm9kZSIsIkRFUklWQVRJT05fUlVMRV9OQU1FIiwiRGVyaXZhdGlvbk5vZGUiLCJNRVRBX0xFTU1BX1JVTEVfTkFNRSIsIk1ldGFMZW1tYU5vZGUiLCJTVVBQT1NJVElPTl9SVUxFX05BTUUiLCJTdXBwb3NpdGlvbk5vZGUiLCJDT05TVFJVQ1RPUl9SVUxFX05BTUUiLCJDb25zdHJ1Y3Rvck5vZGUiLCJERUNMQVJBVElPTl9SVUxFX05BTUUiLCJEZWNsYXJhdGlvbk5vZGUiLCJNRVRBVEhFT1JFTV9SVUxFX05BTUUiLCJNZXRhdGhlb3JlbU5vZGUiLCJNRVRBVkFSSUFCTEVfUlVMRV9OQU1FIiwiTWV0YXZhcmlhYmxlTm9kZSIsIlRZUEVfQVNTRVJUSU9OX1JVTEVfTkFNRSIsIlR5cGVBc3NlcnRpb25Ob2RlIiwiUFJPQ0VEVVJFX0NBTExfUlVMRV9OQU1FIiwiUHJvY2VkdXJlQ2FsbE5vZGUiLCJTVUJfREVSSVZBVElPTl9SVUxFX05BTUUiLCJTdWJEZXJpdmF0aW9uTm9kZSIsIlRZUEVfREVDTEFSQVRJT05fUlVMRV9OQU1FIiwidHlwZURlY2xhcmF0aW9uTm9kZSIsIlBST1BFUlRZX1JFTEFUSU9OX1JVTEVfTkFNRSIsIlByb3BlcnR5UmVsYXRpb25Ob2RlIiwiREVGSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FIiwiRGVmaW5lZEFzc2VydGlvbk5vZGUiLCJTVUJQUk9PRl9BU1NFUlRJT05fUlVMRV9OQU1FIiwiU3VicHJvb2ZBc3NlcnRpb25Ob2RlIiwiUFJPUEVSVFlfQVNTRVJUSU9OX1JVTEVfTkFNRSIsIlByb3BlcnR5QXNzZXJ0aW9uTm9kZSIsIlNBVElTRklFU19BU1NFUlRJT05fUlVMRV9OQU1FIiwiU2F0aXNmaWVzQXNzZXJ0aW9uTm9kZSIsIkNPTlRBSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FIiwiQ29udGFpbmVkQXNzZXJ0aW9uTm9kZSIsIlZBUklBQkxFX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSIsInZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlIiwiUFJPUEVSVFlfREVDTEFSQVRJT05fUlVMRV9OQU1FIiwiUHJvcGVydHlEZWNsYXJhdGlvbk5vZGUiLCJDT01CSU5BVE9SX0RFQ0xBUkFUSU9OX1JVTEVfTkFNRSIsImNvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGUiLCJDT05TVFJVQ1RPUl9ERUNMQVJBVElPTl9SVUxFX05BTUUiLCJjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZSIsIkNPTVBMRVhfVFlQRV9ERUNMQVJBVElPTl9SVUxFX05BTUUiLCJjb21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZSIsIk1FVEFWQVJJQUJMRV9ERUNMQVJBVElPTl9SVUxFX05BTUUiLCJtZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQXVKQTs7O2VBQUE7OzsyREFySnFCOzJEQUNBOzJEQUNBOzJEQUNBOzREQUNDOzREQUNBOzREQUNBOzREQUNBOzREQUNBOzREQUNBOzhEQUNFOzhEQUNBOytEQUNDOytEQUNBOytEQUNBOytEQUNBOytEQUNBO2dFQUNDO2dFQUNBO2dFQUNBO2dFQUNBO2dFQUNBO2dFQUNBO2lFQUNDO2lFQUNBO2lFQUNBO2lFQUNBO2tFQUNDO2tFQUNBO2tFQUNBO2tFQUNBO21FQUNDO29FQUNDO29FQUNBOzREQUNBOzREQUNFO3VFQUNDOzhEQUNBO2dFQUNDO2dFQUNBO2dFQUNDO2dFQUNBO2dFQUNDO2dFQUNBO2tFQUNFO2tFQUNDO21FQUNBO29FQUNDO3lCQWlEVzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQUVuQztBQUFoQixJQUFNQSxXQUFVLFdBQ2QsaUJBRGMsTUFDYkMseUJBQWMsRUFBR0MsYUFBUSxHQUMxQixpQkFGYyxNQUViQyx5QkFBYyxFQUFHQyxhQUFRLEdBQzFCLGlC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
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { eliminateLeftRecursion } from "occam-grammar-utilities";
|
|
4
|
-
import { CombinedCustomGrammar as CombinedCustomGrammarBase } from "occam-custom-grammars";
|
|
5
|
-
|
|
6
|
-
import Node from "../node";
|
|
7
|
-
import nodeMap from "../nodeMap";
|
|
8
|
-
|
|
9
|
-
export default class CombinedCustomGrammar extends CombinedCustomGrammarBase {
|
|
10
|
-
getCombinedRules() {
|
|
11
|
-
const rules = this.getRules(),
|
|
12
|
-
combinedRules = rules; ///
|
|
13
|
-
|
|
14
|
-
return combinedRules;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
postProcess(rules) {
|
|
18
|
-
const combinedRules = this.getCombinedRules();
|
|
19
|
-
|
|
20
|
-
rules = [ ///
|
|
21
|
-
...rules,
|
|
22
|
-
...combinedRules,
|
|
23
|
-
];
|
|
24
|
-
|
|
25
|
-
rules.forEach((rule) => {
|
|
26
|
-
const ruleName = rule.getName(),
|
|
27
|
-
NonTerminalNode = nodeMap[ruleName] || Node; ///
|
|
28
|
-
|
|
29
|
-
rule.setNonTerminalNode(NonTerminalNode);
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
rules = eliminateLeftRecursion(rules); ///
|
|
33
|
-
|
|
34
|
-
return rules;
|
|
35
|
-
}
|
|
36
|
-
}
|