occam-verify-cli 1.0.317 → 1.0.318
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/file.js +39 -6
- package/lib/context/local.js +13 -1
- package/lib/context/release.js +33 -2
- package/lib/dom/declaration/combinator.js +2 -2
- package/lib/dom/declaration/complexType.js +2 -2
- package/lib/dom/declaration/constructor.js +2 -2
- package/lib/dom/declaration/simpleType.js +4 -4
- package/lib/dom/declaration/typePrefix.js +170 -0
- package/lib/dom/typePrefix.js +100 -0
- package/lib/index.js +3 -1
- package/lib/node/declaration/typePrefix.js +123 -0
- package/lib/node/type.js +12 -14
- package/lib/node/typePrefix.js +6 -6
- package/lib/nonTerminalNodeMap.js +6 -4
- package/lib/ruleNames.js +11 -3
- package/lib/utilities/json.js +2 -2
- package/lib/verifier/topLevel.js +9 -2
- package/package.json +1 -1
- package/src/context/file.js +44 -6
- package/src/context/local.js +4 -0
- package/src/context/release.js +41 -1
- package/src/dom/declaration/combinator.js +1 -1
- package/src/dom/declaration/complexType.js +1 -1
- package/src/dom/declaration/constructor.js +1 -1
- package/src/dom/declaration/simpleType.js +3 -3
- package/src/dom/declaration/typePrefix.js +93 -0
- package/src/dom/typePrefix.js +54 -0
- package/src/index.js +2 -0
- package/src/node/declaration/typePrefix.js +24 -0
- package/src/node/type.js +12 -16
- package/src/node/typePrefix.js +4 -4
- package/src/nonTerminalNodeMap.js +45 -39
- package/src/ruleNames.js +4 -2
- package/src/utilities/json.js +1 -1
- package/src/verifier/topLevel.js +11 -0
package/lib/verifier/topLevel.js
CHANGED
|
@@ -102,7 +102,7 @@ function _is_native_reflect_construct() {
|
|
|
102
102
|
return !!result;
|
|
103
103
|
})();
|
|
104
104
|
}
|
|
105
|
-
var errorNodeQuery = (0, _query.nodeQuery)("/error"), ruleNodeQuery = (0, _query.nodeQuery)("/rule"), axiomNodeQuery = (0, _query.nodeQuery)("/axiom"), lemmaNodeQuery = (0, _query.nodeQuery)("/lemma"), sectionNodeQuery = (0, _query.nodeQuery)("/section"), theoremNodeQuery = (0, _query.nodeQuery)("/theorem"), metaLemmaNodeQuery = (0, _query.nodeQuery)("/metaLemma"), conjectureNodeQuery = (0, _query.nodeQuery)("/conjecture"), metatheoremNodeQuery = (0, _query.nodeQuery)("/metatheorem"), variableDeclarationNodeQuery = (0, _query.nodeQuery)("/variableDeclaration"), combinatorDeclarationNodeQuery = (0, _query.nodeQuery)("/combinatorDeclaration"), simpleTypeDeclarationNodeQuery = (0, _query.nodeQuery)("/simpleTypeDeclaration"), constructorDeclarationNodeQuery = (0, _query.nodeQuery)("/constructorDeclaration"), complexTypeDeclarationNodeQuery = (0, _query.nodeQuery)("/complexTypeDeclaration"), metavariableDeclarationNodeQuery = (0, _query.nodeQuery)("/metavariableDeclaration");
|
|
105
|
+
var errorNodeQuery = (0, _query.nodeQuery)("/error"), ruleNodeQuery = (0, _query.nodeQuery)("/rule"), axiomNodeQuery = (0, _query.nodeQuery)("/axiom"), lemmaNodeQuery = (0, _query.nodeQuery)("/lemma"), sectionNodeQuery = (0, _query.nodeQuery)("/section"), theoremNodeQuery = (0, _query.nodeQuery)("/theorem"), metaLemmaNodeQuery = (0, _query.nodeQuery)("/metaLemma"), conjectureNodeQuery = (0, _query.nodeQuery)("/conjecture"), metatheoremNodeQuery = (0, _query.nodeQuery)("/metatheorem"), variableDeclarationNodeQuery = (0, _query.nodeQuery)("/variableDeclaration"), combinatorDeclarationNodeQuery = (0, _query.nodeQuery)("/combinatorDeclaration"), simpleTypeDeclarationNodeQuery = (0, _query.nodeQuery)("/simpleTypeDeclaration"), typePrefixDeclarationNodeQuery = (0, _query.nodeQuery)("/typePrefixDeclaration"), constructorDeclarationNodeQuery = (0, _query.nodeQuery)("/constructorDeclaration"), complexTypeDeclarationNodeQuery = (0, _query.nodeQuery)("/complexTypeDeclaration"), metavariableDeclarationNodeQuery = (0, _query.nodeQuery)("/metavariableDeclaration");
|
|
106
106
|
var TopLevelVerifier = /*#__PURE__*/ function(Verifier) {
|
|
107
107
|
_inherits(TopLevelVerifier, Verifier);
|
|
108
108
|
function TopLevelVerifier() {
|
|
@@ -200,6 +200,13 @@ _define_property(TopLevelVerifier, "maps", [
|
|
|
200
200
|
return simpleTypeDeclarationVerifies;
|
|
201
201
|
}
|
|
202
202
|
},
|
|
203
|
+
{
|
|
204
|
+
nodeQuery: typePrefixDeclarationNodeQuery,
|
|
205
|
+
verify: function(typePrefixDeclarationNode, context) {
|
|
206
|
+
var TypePrefixDeclaration = _dom.default.TypePrefixDeclaration, typePrefixDeclaration = TypePrefixDeclaration.fromTypePrefixDeclarationNode(typePrefixDeclarationNode, context), typePrefixDeclarationVerifies = typePrefixDeclaration.verify();
|
|
207
|
+
return typePrefixDeclarationVerifies;
|
|
208
|
+
}
|
|
209
|
+
},
|
|
203
210
|
{
|
|
204
211
|
nodeQuery: combinatorDeclarationNodeQuery,
|
|
205
212
|
verify: function(combinatorDeclarationNode, context) {
|
|
@@ -232,4 +239,4 @@ _define_property(TopLevelVerifier, "maps", [
|
|
|
232
239
|
var topLevelVerifier = new TopLevelVerifier();
|
|
233
240
|
var _default = topLevelVerifier;
|
|
234
241
|
|
|
235
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZmllci90b3BMZXZlbC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IGRvbSBmcm9tIFwiLi4vZG9tXCI7XG5pbXBvcnQgVmVyaWZpZXIgZnJvbSBcIi4uL3ZlcmlmaWVyXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgZXJyb3JOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvZXJyb3JcIiksXG4gICAgICBydWxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3J1bGVcIiksXG4gICAgICBheGlvbU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9heGlvbVwiKSxcbiAgICAgIGxlbW1hTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2xlbW1hXCIpLFxuICAgICAgc2VjdGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zZWN0aW9uXCIpLFxuICAgICAgdGhlb3JlbU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90aGVvcmVtXCIpLFxuICAgICAgbWV0YUxlbW1hTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL21ldGFMZW1tYVwiKSxcbiAgICAgIGNvbmplY3R1cmVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvY29uamVjdHVyZVwiKSxcbiAgICAgIG1ldGF0aGVvcmVtTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL21ldGF0aGVvcmVtXCIpLFxuICAgICAgdmFyaWFibGVEZWNsYXJhdGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi92YXJpYWJsZURlY2xhcmF0aW9uXCIpLFxuICAgICAgY29tYmluYXRvckRlY2xhcmF0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2NvbWJpbmF0b3JEZWNsYXJhdGlvblwiKSxcbiAgICAgIHNpbXBsZVR5cGVEZWNsYXJhdGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zaW1wbGVUeXBlRGVjbGFyYXRpb25cIiksXG4gICAgICBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2NvbnN0cnVjdG9yRGVjbGFyYXRpb25cIiksXG4gICAgICBjb21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2NvbXBsZXhUeXBlRGVjbGFyYXRpb25cIiksXG4gICAgICBtZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9tZXRhdmFyaWFibGVEZWNsYXJhdGlvblwiKTtcblxuY2xhc3MgVG9wTGV2ZWxWZXJpZmllciBleHRlbmRzIFZlcmlmaWVyIHtcbiAgdmVyaWZ5KG5vZGUsIGZpbGVDb250ZXh0KSB7XG4gICAgbGV0IHZlcmlmaWVzQXRUb3BMZXZlbDtcblxuICAgIGNvbnN0IGNvbnRleHQgPSBmaWxlQ29udGV4dCwgIC8vL1xuICAgICAgICAgIG5vblRlcm1pbmFsTm9kZSA9IG5vZGUsIC8vL1xuICAgICAgICAgIG5vblRlcm1pbmFsTm9kZVZlcmlmaWVzID0gdGhpcy52ZXJpZnlOb25UZXJtaW5hbE5vZGUobm9uVGVybWluYWxOb2RlLCBjb250ZXh0KTtcblxuICAgIHZlcmlmaWVzQXRUb3BMZXZlbCA9IG5vblRlcm1pbmFsTm9kZVZlcmlmaWVzOyAgLy8vXG5cbiAgICByZXR1cm4gdmVyaWZpZXNBdFRvcExldmVsO1xuICB9XG5cbiAgc3RhdGljIG1hcHMgPSBbXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiBlcnJvck5vZGVRdWVyeSxcbiAgICAgIHZlcmlmeTogKGVycm9yTm9kZSwgY29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB7IEVycm9yIH0gPSBkb20sXG4gICAgICAgICAgICAgIGVycm9yID0gRXJyb3IuZnJvbUVycm9yTm9kZShlcnJvck5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgICBlcnJvclZlcmlmaWVzID0gZXJyb3IudmVyaWZ5KCk7XG5cbiAgICAgICAgcmV0dXJuIGVycm9yVmVyaWZpZXM7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IHJ1bGVOb2RlUXVlcnksXG4gICAgICB2ZXJpZnk6IChydWxlTm9kZSwgY29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB7IFJ1bGUgfSA9IGRvbSxcbiAgICAgICAgICAgICAgcnVsZSA9IFJ1bGUuZnJvbVJ1bGVOb2RlKHJ1bGVOb2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgcnVsZVZlcmlmaWVzID0gcnVsZS52ZXJpZnkoKTtcblxuICAgICAgICByZXR1cm4gcnVsZVZlcmlmaWVzO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiBheGlvbU5vZGVRdWVyeSxcbiAgICAgIHZlcmlmeTogKGF4aW9tTm9kZSwgY29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB7IEF4aW9tIH0gPSBkb20sXG4gICAgICAgICAgICAgIGF4aW9tID0gQXhpb20uZnJvbUF4aW9tTm9kZShheGlvbU5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgICBheGlvbVZlcmlmaWVzID0gYXhpb20udmVyaWZ5KCk7XG5cbiAgICAgICAgcmV0dXJuIGF4aW9tVmVyaWZpZXM7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IGxlbW1hTm9kZVF1ZXJ5LFxuICAgICAgdmVyaWZ5OiAobGVtbWFOb2RlLCBjb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgTGVtbWEgfSA9IGRvbSxcbiAgICAgICAgICAgICAgbGVtbWEgPSBMZW1tYS5mcm9tTGVtbWFOb2RlKGxlbW1hTm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICAgIGxlbW1hVmVyaWZpZXMgPSBsZW1tYS52ZXJpZnkoKTtcblxuICAgICAgICByZXR1cm4gbGVtbWFWZXJpZmllcztcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogc2VjdGlvbk5vZGVRdWVyeSxcbiAgICAgIHZlcmlmeTogKHNlY3Rpb25Ob2RlLCBjb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgU2VjdGlvbiB9ID0gZG9tLFxuICAgICAgICAgICAgICBzZWN0aW9uID0gU2VjdGlvbi5mcm9tU2VjdGlvbk5vZGUoc2VjdGlvbk5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgICBzZWN0aW9uVmVyaWZpZXMgPSBzZWN0aW9uLnZlcmlmeSgpO1xuXG4gICAgICAgIHJldHVybiBzZWN0aW9uVmVyaWZpZXM7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IHRoZW9yZW1Ob2RlUXVlcnksXG4gICAgICB2ZXJpZnk6ICh0aGVvcmVtTm9kZSwgY29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB7IFRoZW9yZW0gfSA9IGRvbSxcbiAgICAgICAgICAgICAgdGhlb3JlbSA9IFRoZW9yZW0uZnJvbVRoZW9yZW1Ob2RlKHRoZW9yZW1Ob2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgdGhlb3JlbVZlcmlmaWVzID0gdGhlb3JlbS52ZXJpZnkoKTtcblxuICAgICAgICByZXR1cm4gdGhlb3JlbVZlcmlmaWVzO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiBtZXRhTGVtbWFOb2RlUXVlcnksXG4gICAgICB2ZXJpZnk6IChtZXRhTGVtbWFOb2RlLCBjb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgTWV0YUxlbW1hIH0gPSBkb20sXG4gICAgICAgICAgICAgIG1ldGFMZW1tYSA9IE1ldGFMZW1tYS5mcm9tTWV0YUxlbW1hTm9kZShtZXRhTGVtbWFOb2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgbWV0YUxlbW1hVmVyaWZpZXMgPSBtZXRhTGVtbWEudmVyaWZ5KCk7XG5cbiAgICAgICAgcmV0dXJuIG1ldGFMZW1tYVZlcmlmaWVzO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiBjb25qZWN0dXJlTm9kZVF1ZXJ5LFxuICAgICAgdmVyaWZ5OiAoY29uamVjdHVyZU5vZGUsIGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBDb25qZWN0dXJlIH0gPSBkb20sXG4gICAgICAgICAgICAgIGNvbmplY3R1cmUgPSBDb25qZWN0dXJlLmZyb21Db25qZWN0dXJlTm9kZShjb25qZWN0dXJlTm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICAgIGNvbmplY3R1cmVWZXJpZmllcyA9IGNvbmplY3R1cmUudmVyaWZ5KCk7XG5cbiAgICAgICAgcmV0dXJuIGNvbmplY3R1cmVWZXJpZmllcztcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogbWV0YXRoZW9yZW1Ob2RlUXVlcnksXG4gICAgICB2ZXJpZnk6IChtZXRhdGhlb3JlbU5vZGUsIGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBNZXRhdGhlb3JlbSB9ID0gZG9tLFxuICAgICAgICAgICAgICBtZXRhdGhlb3JlbSA9IE1ldGF0aGVvcmVtLmZyb21NZXRhdGhlb3JlbU5vZGUobWV0YXRoZW9yZW1Ob2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgbWV0YXRoZW9yZW1WZXJpZmllcyA9IG1ldGF0aGVvcmVtLnZlcmlmeSgpO1xuXG4gICAgICAgIHJldHVybiBtZXRhdGhlb3JlbVZlcmlmaWVzO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiB2YXJpYWJsZURlY2xhcmF0aW9uTm9kZVF1ZXJ5LFxuICAgICAgdmVyaWZ5OiAodmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBWYXJpYWJsZURlY2xhcmF0aW9uIH0gPSBkb20sXG4gICAgICAgICAgICAgIHZhcmlhYmxlRGVjbGFyYXRpb24gPSBWYXJpYWJsZURlY2xhcmF0aW9uLmZyb21WYXJpYWJsZURlY2xhcmF0aW9uTm9kZSh2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICAgIHZhcmlhYmxlRGVjbGFyYXRpb25WZXJpZmllcyA9IHZhcmlhYmxlRGVjbGFyYXRpb24udmVyaWZ5KCk7XG5cbiAgICAgICAgcmV0dXJuIHZhcmlhYmxlRGVjbGFyYXRpb25WZXJpZmllcztcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogc2ltcGxlVHlwZURlY2xhcmF0aW9uTm9kZVF1ZXJ5LFxuICAgICAgdmVyaWZ5OiAoc2ltcGxlVHlwZURlY2xhcmF0aW9uTm9kZSwgY29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB7IFNpbXBsZVR5cGVEZWNsYXJhdGlvbiB9ID0gZG9tLFxuICAgICAgICAgICAgICBzaW1wbGVUeXBlRGVjbGFyYXRpb24gPSBTaW1wbGVUeXBlRGVjbGFyYXRpb24uZnJvbVNpbXBsZVR5cGVEZWNsYXJhdGlvbk5vZGUoc2ltcGxlVHlwZURlY2xhcmF0aW9uTm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICAgIHNpbXBsZVR5cGVEZWNsYXJhdGlvblZlcmlmaWVzID0gc2ltcGxlVHlwZURlY2xhcmF0aW9uLnZlcmlmeSgpO1xuXG4gICAgICAgIHJldHVybiBzaW1wbGVUeXBlRGVjbGFyYXRpb25WZXJpZmllcztcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogY29tYmluYXRvckRlY2xhcmF0aW9uTm9kZVF1ZXJ5LFxuICAgICAgdmVyaWZ5OiAoY29tYmluYXRvckRlY2xhcmF0aW9uTm9kZSwgY29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB7IENvbWJpbmF0b3JEZWNsYXJhdGlvbiB9ID0gZG9tLFxuICAgICAgICAgICAgICBjb21iaW5hdG9yRGVjbGFyYXRpb24gPSBDb21iaW5hdG9yRGVjbGFyYXRpb24uZnJvbUNvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGUoY29tYmluYXRvckRlY2xhcmF0aW9uTm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICAgIGNvbWJpbmF0b3JEZWNsYXJhdGlvblZlcmlmaWVzID0gY29tYmluYXRvckRlY2xhcmF0aW9uLnZlcmlmeSgpO1xuXG4gICAgICAgIHJldHVybiBjb21iaW5hdG9yRGVjbGFyYXRpb25WZXJpZmllcztcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGVRdWVyeSxcbiAgICAgIHZlcmlmeTogKGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlLCBjb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgQ29uc3RydWN0b3JEZWNsYXJhdGlvbiB9ID0gZG9tLFxuICAgICAgICAgICAgICBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uID0gQ29uc3RydWN0b3JEZWNsYXJhdGlvbi5mcm9tQ29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUoY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgICBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uVmVyaWZpZXMgPSBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uLnZlcmlmeSgpO1xuXG4gICAgICAgIHJldHVybiBjb25zdHJ1Y3RvckRlY2xhcmF0aW9uVmVyaWZpZXM7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IGNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlUXVlcnksXG4gICAgICB2ZXJpZnk6IChjb21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZSwgY29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB7IENvbXBsZXhUeXBlRGVjbGFyYXRpb24gfSA9IGRvbSxcbiAgICAgICAgICAgICAgY29tcGxleFR5cGVEZWNsYXJhdGlvbiA9IENvbXBsZXhUeXBlRGVjbGFyYXRpb24uZnJvbUNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlKGNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgY29tcGxleFR5cGVEZWNsYXJhdGlvblZlcmlmaWVzID0gY29tcGxleFR5cGVEZWNsYXJhdGlvbi52ZXJpZnkoKTtcblxuICAgICAgICByZXR1cm4gY29tcGxleFR5cGVEZWNsYXJhdGlvblZlcmlmaWVzO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiBtZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGVRdWVyeSxcbiAgICAgIHZlcmlmeTogKG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSwgY29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB7IE1ldGF2YXJpYWJsZURlY2xhcmF0aW9uIH0gPSBkb20sXG4gICAgICAgICAgICAgIG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uID0gTWV0YXZhcmlhYmxlRGVjbGFyYXRpb24uZnJvbU1ldGF2YXJpYWJsZURlY2xhcmF0aW9uTm9kZShtZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgICBtZXRhdmFyaWFibGVEZWNsYXJhdGlvblZlcmlmaWVzID0gbWV0YXZhcmlhYmxlRGVjbGFyYXRpb24udmVyaWZ5KCk7XG5cbiAgICAgICAgcmV0dXJuIG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uVmVyaWZpZXM7XG4gICAgICB9XG4gICAgfVxuICBdO1xufVxuXG5jb25zdCB0b3BMZXZlbFZlcmlmaWVyID0gbmV3IFRvcExldmVsVmVyaWZpZXIoKTtcblxuZXhwb3J0IGRlZmF1bHQgdG9wTGV2ZWxWZXJpZmllcjtcbiJdLCJuYW1lcyI6WyJlcnJvck5vZGVRdWVyeSIsIm5vZGVRdWVyeSIsInJ1bGVOb2RlUXVlcnkiLCJheGlvbU5vZGVRdWVyeSIsImxlbW1hTm9kZVF1ZXJ5Iiwic2VjdGlvbk5vZGVRdWVyeSIsInRoZW9yZW1Ob2RlUXVlcnkiLCJtZXRhTGVtbWFOb2RlUXVlcnkiLCJjb25qZWN0dXJlTm9kZVF1ZXJ5IiwibWV0YXRoZW9yZW1Ob2RlUXVlcnkiLCJ2YXJpYWJsZURlY2xhcmF0aW9uTm9kZVF1ZXJ5IiwiY29tYmluYXRvckRlY2xhcmF0aW9uTm9kZVF1ZXJ5Iiwic2ltcGxlVHlwZURlY2xhcmF0aW9uTm9kZVF1ZXJ5IiwiY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGVRdWVyeSIsImNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlUXVlcnkiLCJtZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGVRdWVyeSIsIlRvcExldmVsVmVyaWZpZXIiLCJ2ZXJpZnkiLCJub2RlIiwiZmlsZUNvbnRleHQiLCJ2ZXJpZmllc0F0VG9wTGV2ZWwiLCJjb250ZXh0Iiwibm9uVGVybWluYWxOb2RlIiwibm9uVGVybWluYWxOb2RlVmVyaWZpZXMiLCJ2ZXJpZnlOb25UZXJtaW5hbE5vZGUiLCJWZXJpZmllciIsIm1hcHMiLCJlcnJvck5vZGUiLCJFcnJvciIsImRvbSIsImVycm9yIiwiZnJvbUVycm9yTm9kZSIsImVycm9yVmVyaWZpZXMiLCJydWxlTm9kZSIsIlJ1bGUiLCJydWxlIiwiZnJvbVJ1bGVOb2RlIiwicnVsZVZlcmlmaWVzIiwiYXhpb21Ob2RlIiwiQXhpb20iLCJheGlvbSIsImZyb21BeGlvbU5vZGUiLCJheGlvbVZlcmlmaWVzIiwibGVtbWFOb2RlIiwiTGVtbWEiLCJsZW1tYSIsImZyb21MZW1tYU5vZGUiLCJsZW1tYVZlcmlmaWVzIiwic2VjdGlvbk5vZGUiLCJTZWN0aW9uIiwic2VjdGlvbiIsImZyb21TZWN0aW9uTm9kZSIsInNlY3Rpb25WZXJpZmllcyIsInRoZW9yZW1Ob2RlIiwiVGhlb3JlbSIsInRoZW9yZW0iLCJmcm9tVGhlb3JlbU5vZGUiLCJ0aGVvcmVtVmVyaWZpZXMiLCJtZXRhTGVtbWFOb2RlIiwiTWV0YUxlbW1hIiwibWV0YUxlbW1hIiwiZnJvbU1ldGFMZW1tYU5vZGUiLCJtZXRhTGVtbWFWZXJpZmllcyIsImNvbmplY3R1cmVOb2RlIiwiQ29uamVjdHVyZSIsImNvbmplY3R1cmUiLCJmcm9tQ29uamVjdHVyZU5vZGUiLCJjb25qZWN0dXJlVmVyaWZpZXMiLCJtZXRhdGhlb3JlbU5vZGUiLCJNZXRhdGhlb3JlbSIsIm1ldGF0aGVvcmVtIiwiZnJvbU1ldGF0aGVvcmVtTm9kZSIsIm1ldGF0aGVvcmVtVmVyaWZpZXMiLCJ2YXJpYWJsZURlY2xhcmF0aW9uTm9kZSIsIlZhcmlhYmxlRGVjbGFyYXRpb24iLCJ2YXJpYWJsZURlY2xhcmF0aW9uIiwiZnJvbVZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlIiwidmFyaWFibGVEZWNsYXJhdGlvblZlcmlmaWVzIiwic2ltcGxlVHlwZURlY2xhcmF0aW9uTm9kZSIsIlNpbXBsZVR5cGVEZWNsYXJhdGlvbiIsInNpbXBsZVR5cGVEZWNsYXJhdGlvbiIsImZyb21TaW1wbGVUeXBlRGVjbGFyYXRpb25Ob2RlIiwic2ltcGxlVHlwZURlY2xhcmF0aW9uVmVyaWZpZXMiLCJjb21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlIiwiQ29tYmluYXRvckRlY2xhcmF0aW9uIiwiY29tYmluYXRvckRlY2xhcmF0aW9uIiwiZnJvbUNvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGUiLCJjb21iaW5hdG9yRGVjbGFyYXRpb25WZXJpZmllcyIsImNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlIiwiQ29uc3RydWN0b3JEZWNsYXJhdGlvbiIsImNvbnN0cnVjdG9yRGVjbGFyYXRpb24iLCJmcm9tQ29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUiLCJjb25zdHJ1Y3RvckRlY2xhcmF0aW9uVmVyaWZpZXMiLCJjb21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZSIsIkNvbXBsZXhUeXBlRGVjbGFyYXRpb24iLCJjb21wbGV4VHlwZURlY2xhcmF0aW9uIiwiZnJvbUNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlIiwiY29tcGxleFR5cGVEZWNsYXJhdGlvblZlcmlmaWVzIiwibWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlIiwiTWV0YXZhcmlhYmxlRGVjbGFyYXRpb24iLCJtZXRhdmFyaWFibGVEZWNsYXJhdGlvbiIsImZyb21NZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUiLCJtZXRhdmFyaWFibGVEZWNsYXJhdGlvblZlcmlmaWVzIiwidG9wTGV2ZWxWZXJpZmllciJdLCJt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
|
|
242
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZmllci90b3BMZXZlbC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IGRvbSBmcm9tIFwiLi4vZG9tXCI7XG5pbXBvcnQgVmVyaWZpZXIgZnJvbSBcIi4uL3ZlcmlmaWVyXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuY29uc3QgZXJyb3JOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvZXJyb3JcIiksXG4gICAgICBydWxlTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL3J1bGVcIiksXG4gICAgICBheGlvbU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9heGlvbVwiKSxcbiAgICAgIGxlbW1hTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2xlbW1hXCIpLFxuICAgICAgc2VjdGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zZWN0aW9uXCIpLFxuICAgICAgdGhlb3JlbU5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi90aGVvcmVtXCIpLFxuICAgICAgbWV0YUxlbW1hTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL21ldGFMZW1tYVwiKSxcbiAgICAgIGNvbmplY3R1cmVOb2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvY29uamVjdHVyZVwiKSxcbiAgICAgIG1ldGF0aGVvcmVtTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL21ldGF0aGVvcmVtXCIpLFxuICAgICAgdmFyaWFibGVEZWNsYXJhdGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi92YXJpYWJsZURlY2xhcmF0aW9uXCIpLFxuICAgICAgY29tYmluYXRvckRlY2xhcmF0aW9uTm9kZVF1ZXJ5ID0gbm9kZVF1ZXJ5KFwiL2NvbWJpbmF0b3JEZWNsYXJhdGlvblwiKSxcbiAgICAgIHNpbXBsZVR5cGVEZWNsYXJhdGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9zaW1wbGVUeXBlRGVjbGFyYXRpb25cIiksXG4gICAgICB0eXBlUHJlZml4RGVjbGFyYXRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvdHlwZVByZWZpeERlY2xhcmF0aW9uXCIpLFxuICAgICAgY29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9jb25zdHJ1Y3RvckRlY2xhcmF0aW9uXCIpLFxuICAgICAgY29tcGxleFR5cGVEZWNsYXJhdGlvbk5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9jb21wbGV4VHlwZURlY2xhcmF0aW9uXCIpLFxuICAgICAgbWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlUXVlcnkgPSBub2RlUXVlcnkoXCIvbWV0YXZhcmlhYmxlRGVjbGFyYXRpb25cIik7XG5cbmNsYXNzIFRvcExldmVsVmVyaWZpZXIgZXh0ZW5kcyBWZXJpZmllciB7XG4gIHZlcmlmeShub2RlLCBmaWxlQ29udGV4dCkge1xuICAgIGxldCB2ZXJpZmllc0F0VG9wTGV2ZWw7XG5cbiAgICBjb25zdCBjb250ZXh0ID0gZmlsZUNvbnRleHQsICAvLy9cbiAgICAgICAgICBub25UZXJtaW5hbE5vZGUgPSBub2RlLCAvLy9cbiAgICAgICAgICBub25UZXJtaW5hbE5vZGVWZXJpZmllcyA9IHRoaXMudmVyaWZ5Tm9uVGVybWluYWxOb2RlKG5vblRlcm1pbmFsTm9kZSwgY29udGV4dCk7XG5cbiAgICB2ZXJpZmllc0F0VG9wTGV2ZWwgPSBub25UZXJtaW5hbE5vZGVWZXJpZmllczsgIC8vL1xuXG4gICAgcmV0dXJuIHZlcmlmaWVzQXRUb3BMZXZlbDtcbiAgfVxuXG4gIHN0YXRpYyBtYXBzID0gW1xuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogZXJyb3JOb2RlUXVlcnksXG4gICAgICB2ZXJpZnk6IChlcnJvck5vZGUsIGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBFcnJvciB9ID0gZG9tLFxuICAgICAgICAgICAgICBlcnJvciA9IEVycm9yLmZyb21FcnJvck5vZGUoZXJyb3JOb2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgZXJyb3JWZXJpZmllcyA9IGVycm9yLnZlcmlmeSgpO1xuXG4gICAgICAgIHJldHVybiBlcnJvclZlcmlmaWVzO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiBydWxlTm9kZVF1ZXJ5LFxuICAgICAgdmVyaWZ5OiAocnVsZU5vZGUsIGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBSdWxlIH0gPSBkb20sXG4gICAgICAgICAgICAgIHJ1bGUgPSBSdWxlLmZyb21SdWxlTm9kZShydWxlTm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICAgIHJ1bGVWZXJpZmllcyA9IHJ1bGUudmVyaWZ5KCk7XG5cbiAgICAgICAgcmV0dXJuIHJ1bGVWZXJpZmllcztcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogYXhpb21Ob2RlUXVlcnksXG4gICAgICB2ZXJpZnk6IChheGlvbU5vZGUsIGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBBeGlvbSB9ID0gZG9tLFxuICAgICAgICAgICAgICBheGlvbSA9IEF4aW9tLmZyb21BeGlvbU5vZGUoYXhpb21Ob2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgYXhpb21WZXJpZmllcyA9IGF4aW9tLnZlcmlmeSgpO1xuXG4gICAgICAgIHJldHVybiBheGlvbVZlcmlmaWVzO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiBsZW1tYU5vZGVRdWVyeSxcbiAgICAgIHZlcmlmeTogKGxlbW1hTm9kZSwgY29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB7IExlbW1hIH0gPSBkb20sXG4gICAgICAgICAgICAgIGxlbW1hID0gTGVtbWEuZnJvbUxlbW1hTm9kZShsZW1tYU5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgICBsZW1tYVZlcmlmaWVzID0gbGVtbWEudmVyaWZ5KCk7XG5cbiAgICAgICAgcmV0dXJuIGxlbW1hVmVyaWZpZXM7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IHNlY3Rpb25Ob2RlUXVlcnksXG4gICAgICB2ZXJpZnk6IChzZWN0aW9uTm9kZSwgY29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB7IFNlY3Rpb24gfSA9IGRvbSxcbiAgICAgICAgICAgICAgc2VjdGlvbiA9IFNlY3Rpb24uZnJvbVNlY3Rpb25Ob2RlKHNlY3Rpb25Ob2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgc2VjdGlvblZlcmlmaWVzID0gc2VjdGlvbi52ZXJpZnkoKTtcblxuICAgICAgICByZXR1cm4gc2VjdGlvblZlcmlmaWVzO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiB0aGVvcmVtTm9kZVF1ZXJ5LFxuICAgICAgdmVyaWZ5OiAodGhlb3JlbU5vZGUsIGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBUaGVvcmVtIH0gPSBkb20sXG4gICAgICAgICAgICAgIHRoZW9yZW0gPSBUaGVvcmVtLmZyb21UaGVvcmVtTm9kZSh0aGVvcmVtTm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICAgIHRoZW9yZW1WZXJpZmllcyA9IHRoZW9yZW0udmVyaWZ5KCk7XG5cbiAgICAgICAgcmV0dXJuIHRoZW9yZW1WZXJpZmllcztcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogbWV0YUxlbW1hTm9kZVF1ZXJ5LFxuICAgICAgdmVyaWZ5OiAobWV0YUxlbW1hTm9kZSwgY29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB7IE1ldGFMZW1tYSB9ID0gZG9tLFxuICAgICAgICAgICAgICBtZXRhTGVtbWEgPSBNZXRhTGVtbWEuZnJvbU1ldGFMZW1tYU5vZGUobWV0YUxlbW1hTm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICAgIG1ldGFMZW1tYVZlcmlmaWVzID0gbWV0YUxlbW1hLnZlcmlmeSgpO1xuXG4gICAgICAgIHJldHVybiBtZXRhTGVtbWFWZXJpZmllcztcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogY29uamVjdHVyZU5vZGVRdWVyeSxcbiAgICAgIHZlcmlmeTogKGNvbmplY3R1cmVOb2RlLCBjb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgQ29uamVjdHVyZSB9ID0gZG9tLFxuICAgICAgICAgICAgICBjb25qZWN0dXJlID0gQ29uamVjdHVyZS5mcm9tQ29uamVjdHVyZU5vZGUoY29uamVjdHVyZU5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgICBjb25qZWN0dXJlVmVyaWZpZXMgPSBjb25qZWN0dXJlLnZlcmlmeSgpO1xuXG4gICAgICAgIHJldHVybiBjb25qZWN0dXJlVmVyaWZpZXM7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IG1ldGF0aGVvcmVtTm9kZVF1ZXJ5LFxuICAgICAgdmVyaWZ5OiAobWV0YXRoZW9yZW1Ob2RlLCBjb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgTWV0YXRoZW9yZW0gfSA9IGRvbSxcbiAgICAgICAgICAgICAgbWV0YXRoZW9yZW0gPSBNZXRhdGhlb3JlbS5mcm9tTWV0YXRoZW9yZW1Ob2RlKG1ldGF0aGVvcmVtTm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICAgIG1ldGF0aGVvcmVtVmVyaWZpZXMgPSBtZXRhdGhlb3JlbS52ZXJpZnkoKTtcblxuICAgICAgICByZXR1cm4gbWV0YXRoZW9yZW1WZXJpZmllcztcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogdmFyaWFibGVEZWNsYXJhdGlvbk5vZGVRdWVyeSxcbiAgICAgIHZlcmlmeTogKHZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlLCBjb250ZXh0KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgVmFyaWFibGVEZWNsYXJhdGlvbiB9ID0gZG9tLFxuICAgICAgICAgICAgICB2YXJpYWJsZURlY2xhcmF0aW9uID0gVmFyaWFibGVEZWNsYXJhdGlvbi5mcm9tVmFyaWFibGVEZWNsYXJhdGlvbk5vZGUodmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgICB2YXJpYWJsZURlY2xhcmF0aW9uVmVyaWZpZXMgPSB2YXJpYWJsZURlY2xhcmF0aW9uLnZlcmlmeSgpO1xuXG4gICAgICAgIHJldHVybiB2YXJpYWJsZURlY2xhcmF0aW9uVmVyaWZpZXM7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IHNpbXBsZVR5cGVEZWNsYXJhdGlvbk5vZGVRdWVyeSxcbiAgICAgIHZlcmlmeTogKHNpbXBsZVR5cGVEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBTaW1wbGVUeXBlRGVjbGFyYXRpb24gfSA9IGRvbSxcbiAgICAgICAgICAgICAgc2ltcGxlVHlwZURlY2xhcmF0aW9uID0gU2ltcGxlVHlwZURlY2xhcmF0aW9uLmZyb21TaW1wbGVUeXBlRGVjbGFyYXRpb25Ob2RlKHNpbXBsZVR5cGVEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgICBzaW1wbGVUeXBlRGVjbGFyYXRpb25WZXJpZmllcyA9IHNpbXBsZVR5cGVEZWNsYXJhdGlvbi52ZXJpZnkoKTtcblxuICAgICAgICByZXR1cm4gc2ltcGxlVHlwZURlY2xhcmF0aW9uVmVyaWZpZXM7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IHR5cGVQcmVmaXhEZWNsYXJhdGlvbk5vZGVRdWVyeSxcbiAgICAgIHZlcmlmeTogKHR5cGVQcmVmaXhEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBUeXBlUHJlZml4RGVjbGFyYXRpb24gfSA9IGRvbSxcbiAgICAgICAgICAgICAgdHlwZVByZWZpeERlY2xhcmF0aW9uID0gVHlwZVByZWZpeERlY2xhcmF0aW9uLmZyb21UeXBlUHJlZml4RGVjbGFyYXRpb25Ob2RlKHR5cGVQcmVmaXhEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgICB0eXBlUHJlZml4RGVjbGFyYXRpb25WZXJpZmllcyA9IHR5cGVQcmVmaXhEZWNsYXJhdGlvbi52ZXJpZnkoKTtcblxuICAgICAgICByZXR1cm4gdHlwZVByZWZpeERlY2xhcmF0aW9uVmVyaWZpZXM7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IGNvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGVRdWVyeSxcbiAgICAgIHZlcmlmeTogKGNvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBDb21iaW5hdG9yRGVjbGFyYXRpb24gfSA9IGRvbSxcbiAgICAgICAgICAgICAgY29tYmluYXRvckRlY2xhcmF0aW9uID0gQ29tYmluYXRvckRlY2xhcmF0aW9uLmZyb21Db21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlKGNvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgICBjb21iaW5hdG9yRGVjbGFyYXRpb25WZXJpZmllcyA9IGNvbWJpbmF0b3JEZWNsYXJhdGlvbi52ZXJpZnkoKTtcblxuICAgICAgICByZXR1cm4gY29tYmluYXRvckRlY2xhcmF0aW9uVmVyaWZpZXM7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBub2RlUXVlcnk6IGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlUXVlcnksXG4gICAgICB2ZXJpZnk6IChjb25zdHJ1Y3RvckRlY2xhcmF0aW9uTm9kZSwgY29udGV4dCkgPT4ge1xuICAgICAgICBjb25zdCB7IENvbnN0cnVjdG9yRGVjbGFyYXRpb24gfSA9IGRvbSxcbiAgICAgICAgICAgICAgY29uc3RydWN0b3JEZWNsYXJhdGlvbiA9IENvbnN0cnVjdG9yRGVjbGFyYXRpb24uZnJvbUNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlKGNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgY29uc3RydWN0b3JEZWNsYXJhdGlvblZlcmlmaWVzID0gY29uc3RydWN0b3JEZWNsYXJhdGlvbi52ZXJpZnkoKTtcblxuICAgICAgICByZXR1cm4gY29uc3RydWN0b3JEZWNsYXJhdGlvblZlcmlmaWVzO1xuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgbm9kZVF1ZXJ5OiBjb21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZVF1ZXJ5LFxuICAgICAgdmVyaWZ5OiAoY29tcGxleFR5cGVEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBDb21wbGV4VHlwZURlY2xhcmF0aW9uIH0gPSBkb20sXG4gICAgICAgICAgICAgIGNvbXBsZXhUeXBlRGVjbGFyYXRpb24gPSBDb21wbGV4VHlwZURlY2xhcmF0aW9uLmZyb21Db21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZShjb21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICAgIGNvbXBsZXhUeXBlRGVjbGFyYXRpb25WZXJpZmllcyA9IGNvbXBsZXhUeXBlRGVjbGFyYXRpb24udmVyaWZ5KCk7XG5cbiAgICAgICAgcmV0dXJuIGNvbXBsZXhUeXBlRGVjbGFyYXRpb25WZXJpZmllcztcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIG5vZGVRdWVyeTogbWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlUXVlcnksXG4gICAgICB2ZXJpZnk6IChtZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUsIGNvbnRleHQpID0+IHtcbiAgICAgICAgY29uc3QgeyBNZXRhdmFyaWFibGVEZWNsYXJhdGlvbiB9ID0gZG9tLFxuICAgICAgICAgICAgICBtZXRhdmFyaWFibGVEZWNsYXJhdGlvbiA9IE1ldGF2YXJpYWJsZURlY2xhcmF0aW9uLmZyb21NZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUobWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgICAgbWV0YXZhcmlhYmxlRGVjbGFyYXRpb25WZXJpZmllcyA9IG1ldGF2YXJpYWJsZURlY2xhcmF0aW9uLnZlcmlmeSgpO1xuXG4gICAgICAgIHJldHVybiBtZXRhdmFyaWFibGVEZWNsYXJhdGlvblZlcmlmaWVzO1xuICAgICAgfVxuICAgIH1cbiAgXTtcbn1cblxuY29uc3QgdG9wTGV2ZWxWZXJpZmllciA9IG5ldyBUb3BMZXZlbFZlcmlmaWVyKCk7XG5cbmV4cG9ydCBkZWZhdWx0IHRvcExldmVsVmVyaWZpZXI7XG4iXSwibmFtZXMiOlsiZXJyb3JOb2RlUXVlcnkiLCJub2RlUXVlcnkiLCJydWxlTm9kZVF1ZXJ5IiwiYXhpb21Ob2RlUXVlcnkiLCJsZW1tYU5vZGVRdWVyeSIsInNlY3Rpb25Ob2RlUXVlcnkiLCJ0aGVvcmVtTm9kZVF1ZXJ5IiwibWV0YUxlbW1hTm9kZVF1ZXJ5IiwiY29uamVjdHVyZU5vZGVRdWVyeSIsIm1ldGF0aGVvcmVtTm9kZVF1ZXJ5IiwidmFyaWFibGVEZWNsYXJhdGlvbk5vZGVRdWVyeSIsImNvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGVRdWVyeSIsInNpbXBsZVR5cGVEZWNsYXJhdGlvbk5vZGVRdWVyeSIsInR5cGVQcmVmaXhEZWNsYXJhdGlvbk5vZGVRdWVyeSIsImNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlUXVlcnkiLCJjb21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZVF1ZXJ5IiwibWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlUXVlcnkiLCJUb3BMZXZlbFZlcmlmaWVyIiwidmVyaWZ5Iiwibm9kZSIsImZpbGVDb250ZXh0IiwidmVyaWZpZXNBdFRvcExldmVsIiwiY29udGV4dCIsIm5vblRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZVZlcmlmaWVzIiwidmVyaWZ5Tm9uVGVybWluYWxOb2RlIiwiVmVyaWZpZXIiLCJtYXBzIiwiZXJyb3JOb2RlIiwiRXJyb3IiLCJkb20iLCJlcnJvciIsImZyb21FcnJvck5vZGUiLCJlcnJvclZlcmlmaWVzIiwicnVsZU5vZGUiLCJSdWxlIiwicnVsZSIsImZyb21SdWxlTm9kZSIsInJ1bGVWZXJpZmllcyIsImF4aW9tTm9kZSIsIkF4aW9tIiwiYXhpb20iLCJmcm9tQXhpb21Ob2RlIiwiYXhpb21WZXJpZmllcyIsImxlbW1hTm9kZSIsIkxlbW1hIiwibGVtbWEiLCJmcm9tTGVtbWFOb2RlIiwibGVtbWFWZXJpZmllcyIsInNlY3Rpb25Ob2RlIiwiU2VjdGlvbiIsInNlY3Rpb24iLCJmcm9tU2VjdGlvbk5vZGUiLCJzZWN0aW9uVmVyaWZpZXMiLCJ0aGVvcmVtTm9kZSIsIlRoZW9yZW0iLCJ0aGVvcmVtIiwiZnJvbVRoZW9yZW1Ob2RlIiwidGhlb3JlbVZlcmlmaWVzIiwibWV0YUxlbW1hTm9kZSIsIk1ldGFMZW1tYSIsIm1ldGFMZW1tYSIsImZyb21NZXRhTGVtbWFOb2RlIiwibWV0YUxlbW1hVmVyaWZpZXMiLCJjb25qZWN0dXJlTm9kZSIsIkNvbmplY3R1cmUiLCJjb25qZWN0dXJlIiwiZnJvbUNvbmplY3R1cmVOb2RlIiwiY29uamVjdHVyZVZlcmlmaWVzIiwibWV0YXRoZW9yZW1Ob2RlIiwiTWV0YXRoZW9yZW0iLCJtZXRhdGhlb3JlbSIsImZyb21NZXRhdGhlb3JlbU5vZGUiLCJtZXRhdGhlb3JlbVZlcmlmaWVzIiwidmFyaWFibGVEZWNsYXJhdGlvbk5vZGUiLCJWYXJpYWJsZURlY2xhcmF0aW9uIiwidmFyaWFibGVEZWNsYXJhdGlvbiIsImZyb21WYXJpYWJsZURlY2xhcmF0aW9uTm9kZSIsInZhcmlhYmxlRGVjbGFyYXRpb25WZXJpZmllcyIsInNpbXBsZVR5cGVEZWNsYXJhdGlvbk5vZGUiLCJTaW1wbGVUeXBlRGVjbGFyYXRpb24iLCJzaW1wbGVUeXBlRGVjbGFyYXRpb24iLCJmcm9tU2ltcGxlVHlwZURlY2xhcmF0aW9uTm9kZSIsInNpbXBsZVR5cGVEZWNsYXJhdGlvblZlcmlmaWVzIiwidHlwZVByZWZpeERlY2xhcmF0aW9uTm9kZSIsIlR5cGVQcmVmaXhEZWNsYXJhdGlvbiIsInR5cGVQcmVmaXhEZWNsYXJhdGlvbiIsImZyb21UeXBlUHJlZml4RGVjbGFyYXRpb25Ob2RlIiwidHlwZVByZWZpeERlY2xhcmF0aW9uVmVyaWZpZXMiLCJjb21iaW5hdG9yRGVjbGFyYXRpb25Ob2RlIiwiQ29tYmluYXRvckRlY2xhcmF0aW9uIiwiY29tYmluYXRvckRlY2xhcmF0aW9uIiwiZnJvbUNvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGUiLCJjb21iaW5hdG9yRGVjbGFyYXRpb25WZXJpZmllcyIsImNvbnN0cnVjdG9yRGVjbGFyYXRpb25Ob2RlIiwiQ29uc3RydWN0b3JEZWNsYXJhdGlvbiIsImNvbnN0cnVjdG9yRGVjbGFyYXRpb24iLCJmcm9tQ29uc3RydWN0b3JEZWNsYXJhdGlvbk5vZGUiLCJjb25zdHJ1Y3RvckRlY2xhcmF0aW9uVmVyaWZpZXMiLCJjb21wbGV4VHlwZURlY2xhcmF0aW9uTm9kZSIsIkNvbXBsZXhUeXBlRGVjbGFyYXRpb24iLCJjb21wbGV4VHlwZURlY2xhcmF0aW9uIiwiZnJvbUNvbXBsZXhUeXBlRGVjbGFyYXRpb25Ob2RlIiwiY29tcGxleFR5cGVEZWNsYXJhdGlvblZlcmlmaWVzIiwibWV0YXZhcmlhYmxlRGVjbGFyYXRpb25Ob2RlIiwiTWV0YXZhcmlhYmxlRGVjbGFyYXRpb24iLCJtZXRhdmFyaWFibGVEZWNsYXJhdGlvbiIsImZyb21NZXRhdmFyaWFibGVEZWNsYXJhdGlvbk5vZGUiLCJtZXRhdmFyaWFibGVEZWNsYXJhdGlvblZlcmlmaWVzIiwidG9wTGV2ZWxWZXJpZmllciJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBMk1BOzs7ZUFBQTs7OzBEQXpNZ0I7K0RBQ0s7cUJBRUs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTFCLElBQU1BLGlCQUFpQkMsSUFBQUEsZ0JBQVMsRUFBQyxXQUMzQkMsZ0JBQWdCRCxJQUFBQSxnQkFBUyxFQUFD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
|
package/package.json
CHANGED
package/src/context/file.js
CHANGED
|
@@ -278,7 +278,17 @@ export default class FileContext {
|
|
|
278
278
|
}
|
|
279
279
|
|
|
280
280
|
getTypePrefixes(includeRelease = true) {
|
|
281
|
-
|
|
281
|
+
const typePrefixes = [];
|
|
282
|
+
|
|
283
|
+
push(typePrefixes, this.typePrefixes);
|
|
284
|
+
|
|
285
|
+
if (includeRelease) {
|
|
286
|
+
const releaseContextTypePrefixes = this.releaseContext.getTypePrefixes();
|
|
287
|
+
|
|
288
|
+
push(typePrefixes, releaseContextTypePrefixes);
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
return typePrefixes;
|
|
282
292
|
}
|
|
283
293
|
|
|
284
294
|
getConstructors(includeRelease = true) {
|
|
@@ -319,15 +329,23 @@ export default class FileContext {
|
|
|
319
329
|
return fileContext;
|
|
320
330
|
}
|
|
321
331
|
|
|
322
|
-
getTypePrefix() {
|
|
332
|
+
getTypePrefix(includeRelease = true) {
|
|
323
333
|
let typePrefix = null;
|
|
324
334
|
|
|
325
|
-
|
|
335
|
+
if (typePrefix === null) {
|
|
336
|
+
const typePrefixesLength = this.typePrefixes.length;
|
|
326
337
|
|
|
327
|
-
|
|
328
|
-
|
|
338
|
+
if (typePrefixesLength === 1) {
|
|
339
|
+
const firstTypePrefix = first(this.typePrefixes);
|
|
329
340
|
|
|
330
|
-
|
|
341
|
+
typePrefix = firstTypePrefix; ///
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
if (typePrefix === null) {
|
|
346
|
+
if (includeRelease) {
|
|
347
|
+
typePrefix = this.releaseContext.getTypePrefix();
|
|
348
|
+
}
|
|
331
349
|
}
|
|
332
350
|
|
|
333
351
|
return typePrefix;
|
|
@@ -603,6 +621,19 @@ export default class FileContext {
|
|
|
603
621
|
return type;
|
|
604
622
|
}
|
|
605
623
|
|
|
624
|
+
findTypePrefixByTypePrefixName(typePrefixName) {
|
|
625
|
+
const typePrefixes = this.getTypePrefixes(),
|
|
626
|
+
typePrefix = typePrefixes.find((typePrefix) => {
|
|
627
|
+
const typePrefixNameMatches = typePrefix.matchTypePrefixName(typePrefixName);
|
|
628
|
+
|
|
629
|
+
if (typePrefixNameMatches) {
|
|
630
|
+
return true;
|
|
631
|
+
}
|
|
632
|
+
}) || null;
|
|
633
|
+
|
|
634
|
+
return typePrefix;
|
|
635
|
+
}
|
|
636
|
+
|
|
606
637
|
findMetaTypeByMetaTypeName(metaTypeName) {
|
|
607
638
|
const metaTypes = this.getMetaTypes(),
|
|
608
639
|
metaType = metaTypes.find((metaType) => {
|
|
@@ -701,6 +732,13 @@ export default class FileContext {
|
|
|
701
732
|
return typePresent;
|
|
702
733
|
}
|
|
703
734
|
|
|
735
|
+
isTypePrefixPresentByTypePrefixName(typePrefixName) {
|
|
736
|
+
const typePrefix = this.findTypePrefixByTypePrefixName(typePrefixName),
|
|
737
|
+
typePrefixPresent = (typePrefix !== null);
|
|
738
|
+
|
|
739
|
+
return typePrefixPresent;
|
|
740
|
+
}
|
|
741
|
+
|
|
704
742
|
isVariablePresentByVariableIdentifier(variableIdentifier) {
|
|
705
743
|
const variable = this.findVariableByVariableIdentifier(variableIdentifier),
|
|
706
744
|
variablePresent = (variable !== null);
|
package/src/context/local.js
CHANGED
|
@@ -116,6 +116,8 @@ class LocalContext {
|
|
|
116
116
|
|
|
117
117
|
getConstructors() { return this.context.getConstructors(); }
|
|
118
118
|
|
|
119
|
+
getTypePrefix() { return this.context.getTypePrefix(); }
|
|
120
|
+
|
|
119
121
|
addAxiom(axiom) { this.context.addAxiom(axiom); }
|
|
120
122
|
|
|
121
123
|
addLemma(lemma) { this.context.addLemma(lemma); }
|
|
@@ -251,6 +253,8 @@ class LocalContext {
|
|
|
251
253
|
|
|
252
254
|
isTypePresentByTypeName(typeName) { return this.context.isTypePresentByTypeName(typeName); }
|
|
253
255
|
|
|
256
|
+
isTypePrefixPresentByTypePrefixName(typePrefixName) { return this.context.isTypePrefixPresentByTypePrefixName(typePrefixName); }
|
|
257
|
+
|
|
254
258
|
isVariablePresentByVariableIdentifier(variableIdentifier, nested = true) {
|
|
255
259
|
const variable = this.findVariableByVariableIdentifier(variableIdentifier, nested),
|
|
256
260
|
variablePresent = (variable !== null);
|
package/src/context/release.js
CHANGED
|
@@ -13,7 +13,7 @@ import NominalParser from "../nominal/parser";
|
|
|
13
13
|
import { frameMetaType, referenceMetaType, statementMetaType } from "../dom/metaType";
|
|
14
14
|
import { customGrammarFromNameAndEntries, combinedCustomGrammarFromReleaseContexts } from "../utilities/customGrammar";
|
|
15
15
|
|
|
16
|
-
const { tail, push, clear, resolve } = arrayUtilities,
|
|
16
|
+
const { tail, push, first, clear, resolve } = arrayUtilities,
|
|
17
17
|
{ nominalLexerFromCombinedCustomGrammar } = lexersUtilities,
|
|
18
18
|
{ nominalParserFromCombinedCustomGrammar } = parsersUtilities,
|
|
19
19
|
{ isFilePathFurtleFilePath, isFilePathNominalFilePath } = filePathUtilities;
|
|
@@ -107,6 +107,22 @@ export default class ReleaseContext {
|
|
|
107
107
|
return fileContext;
|
|
108
108
|
}
|
|
109
109
|
|
|
110
|
+
getTypePrefix() {
|
|
111
|
+
let typePrefix = null;
|
|
112
|
+
|
|
113
|
+
const includeDependencies = false,
|
|
114
|
+
typePrefixes = this.getTypePrefixes(includeDependencies),
|
|
115
|
+
typePrefixesLength = typePrefixes.length;
|
|
116
|
+
|
|
117
|
+
if (typePrefixesLength === 1) {
|
|
118
|
+
const firstTypePrefix = first(typePrefixes);
|
|
119
|
+
|
|
120
|
+
typePrefix = firstTypePrefix; ///
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
return typePrefix;
|
|
124
|
+
}
|
|
125
|
+
|
|
110
126
|
getLabels(includeDependencies = true) {
|
|
111
127
|
const labels = [];
|
|
112
128
|
|
|
@@ -325,6 +341,30 @@ export default class ReleaseContext {
|
|
|
325
341
|
return combinators;
|
|
326
342
|
}
|
|
327
343
|
|
|
344
|
+
getTypePrefixes(includeDependencies = true) {
|
|
345
|
+
const typePrefixes = [];
|
|
346
|
+
|
|
347
|
+
this.fileContexts.forEach((fileContext) => {
|
|
348
|
+
const includeRelease = false,
|
|
349
|
+
fileContextTypePrefixes = fileContext.getTypePrefixes(includeRelease);
|
|
350
|
+
|
|
351
|
+
push(typePrefixes, fileContextTypePrefixes);
|
|
352
|
+
});
|
|
353
|
+
|
|
354
|
+
if (includeDependencies) {
|
|
355
|
+
const dependencyReleaseContexts = this.getDependencyReleaseContexts();
|
|
356
|
+
|
|
357
|
+
dependencyReleaseContexts.forEach((releaseContext) => {
|
|
358
|
+
const includeDependencies = false,
|
|
359
|
+
releaseContextTypePrefixes = releaseContext.getTypePrefixes(includeDependencies);
|
|
360
|
+
|
|
361
|
+
push(typePrefixes, releaseContextTypePrefixes);
|
|
362
|
+
});
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
return typePrefixes;
|
|
366
|
+
}
|
|
367
|
+
|
|
328
368
|
getConstructors(includeDependencies = true) {
|
|
329
369
|
const constructors = [];
|
|
330
370
|
|
|
@@ -33,7 +33,7 @@ export default domAssigned(class CombinatorDeclaration {
|
|
|
33
33
|
verify() {
|
|
34
34
|
let verifies = false;
|
|
35
35
|
|
|
36
|
-
const combinatorDeclarationString = this.
|
|
36
|
+
const combinatorDeclarationString = this.string; ///
|
|
37
37
|
|
|
38
38
|
this.context.trace(`Verifying the '${combinatorDeclarationString}' combinator declaration...`, this.node);
|
|
39
39
|
|
|
@@ -35,7 +35,7 @@ export default domAssigned(class ComplexTypeDeclaration {
|
|
|
35
35
|
verify() {
|
|
36
36
|
let verifies = false;
|
|
37
37
|
|
|
38
|
-
const complexTypeDeclarationString = this.
|
|
38
|
+
const complexTypeDeclarationString = this.string; ///
|
|
39
39
|
|
|
40
40
|
this.context.trace(`Verifying the '${complexTypeDeclarationString}' complex type declaration...`, this.node);
|
|
41
41
|
|
|
@@ -33,7 +33,7 @@ export default domAssigned(class ConstructorDeclaration {
|
|
|
33
33
|
verify() {
|
|
34
34
|
let verifies;
|
|
35
35
|
|
|
36
|
-
const constructorDeclarationString = this.
|
|
36
|
+
const constructorDeclarationString = this.string; ///
|
|
37
37
|
|
|
38
38
|
this.context.trace(`Verifying the '${constructorDeclarationString}' constructor declaration...`, this.node);
|
|
39
39
|
|
|
@@ -33,9 +33,9 @@ export default domAssigned(class SimpleTypeDeclaration {
|
|
|
33
33
|
verify() {
|
|
34
34
|
let verifies = false;
|
|
35
35
|
|
|
36
|
-
const
|
|
36
|
+
const simpleTypeDeclarationString = this.string; ///
|
|
37
37
|
|
|
38
|
-
this.context.trace(`Verifying the '${
|
|
38
|
+
this.context.trace(`Verifying the '${simpleTypeDeclarationString}' simple type declaration...`, this.node);
|
|
39
39
|
|
|
40
40
|
const typeVerifies = this.verifyType();
|
|
41
41
|
|
|
@@ -50,7 +50,7 @@ export default domAssigned(class SimpleTypeDeclaration {
|
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
if (verifies) {
|
|
53
|
-
this.context.debug(`...verified the '${
|
|
53
|
+
this.context.debug(`...verified the '${simpleTypeDeclarationString}' simple type declaration.`, this.node);
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
return verifies;
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import dom from "../../dom";
|
|
4
|
+
|
|
5
|
+
import { domAssigned } from "../../dom";
|
|
6
|
+
|
|
7
|
+
export default domAssigned(class TypePrefixDeclaration {
|
|
8
|
+
constructor(context, node, string, typePrefix) {
|
|
9
|
+
this.context = context;
|
|
10
|
+
this.node = node;
|
|
11
|
+
this.string = string;
|
|
12
|
+
this.typePrefix = typePrefix;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
getContext() {
|
|
16
|
+
return this.context;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
getNode() {
|
|
20
|
+
return this.node;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
getString() {
|
|
24
|
+
return this.string;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
getTypePrefix() {
|
|
28
|
+
return this.typePrefix;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
verify() {
|
|
32
|
+
let verifies = false;
|
|
33
|
+
|
|
34
|
+
const typePrefixDeclarationString = this.string; ///
|
|
35
|
+
|
|
36
|
+
this.context.trace(`Verifying the '${typePrefixDeclarationString}' type prefix declaration...`, this.node);
|
|
37
|
+
|
|
38
|
+
const typePrefixVerifies = this.verifyTypePrefix();
|
|
39
|
+
|
|
40
|
+
if (typePrefixVerifies) {
|
|
41
|
+
verifies = true;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
if (verifies) {
|
|
45
|
+
this.context.debug(`...verified the '${typePrefixDeclarationString}' type prefix declaration.`, this.node);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
return verifies;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
verifyTypePrefix() {
|
|
52
|
+
let typePrefixVerifies = false;
|
|
53
|
+
|
|
54
|
+
const typePrefixString = this.typePrefix.getString();
|
|
55
|
+
|
|
56
|
+
this.context.trace(`Verifying the '${typePrefixString}' type prefix...`, this.node);
|
|
57
|
+
|
|
58
|
+
const typePrefix = this.context.getTypePrefix();
|
|
59
|
+
|
|
60
|
+
if (typePrefix !== null) {
|
|
61
|
+
this.context.debug(`The package already has a '${typePrefixString}' type prefix.`, this.node);
|
|
62
|
+
} else {
|
|
63
|
+
|
|
64
|
+
const typePrefixName = this.typePrefix.getName(),
|
|
65
|
+
typePrefixPresent = this.context.isTypePrefixPresentByTypePrefixName(typePrefixName);
|
|
66
|
+
|
|
67
|
+
if (typePrefixPresent) {
|
|
68
|
+
this.context.debug(`The '${typePrefixString}' type prefix is already present.`, this.node);
|
|
69
|
+
} else {
|
|
70
|
+
debugger
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
if (typePrefixVerifies) {
|
|
75
|
+
this.context.debug(`...verified the '${typePrefixString}' type prefix.`, this.node);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
return typePrefixVerifies;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
static name = "TypePrefixDeclaration";
|
|
82
|
+
|
|
83
|
+
static fromTypePrefixDeclarationNode(typePrefixDeclarationNode, context) {
|
|
84
|
+
const { TypePrefix } = dom,
|
|
85
|
+
node = typePrefixDeclarationNode, ///
|
|
86
|
+
typePrefix = TypePrefix.fromTypePrefixDeclarationNode(typePrefixDeclarationNode, context),
|
|
87
|
+
typePrefixName = typePrefix.getName(),
|
|
88
|
+
string = typePrefixName, ///
|
|
89
|
+
simpleTypeDeclaration = new TypePrefixDeclaration(context, node, string, typePrefix);
|
|
90
|
+
|
|
91
|
+
return simpleTypeDeclaration;
|
|
92
|
+
}
|
|
93
|
+
});
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { domAssigned } from "../dom";
|
|
4
|
+
|
|
5
|
+
class TypePrefix {
|
|
6
|
+
constructor(string, name) {
|
|
7
|
+
this.string = string;
|
|
8
|
+
this.name = name;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
getString() {
|
|
12
|
+
return this.string;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
getName() {
|
|
16
|
+
return this.name;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
matchTypePrefixName(typePrefixName) {
|
|
20
|
+
const typePrefixNameMatches = (this.name === typePrefixName);
|
|
21
|
+
|
|
22
|
+
return typePrefixNameMatches;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
toJSON() {
|
|
26
|
+
const name = this.name,
|
|
27
|
+
json = {
|
|
28
|
+
name
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
return json;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
static name = "TypePrefix";
|
|
35
|
+
|
|
36
|
+
static fromJSON(json, context) {
|
|
37
|
+
const { name } = json,
|
|
38
|
+
string = name, ///
|
|
39
|
+
typePrefix = new TypePrefix(string, name);
|
|
40
|
+
|
|
41
|
+
return typePrefix;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
static fromTypePrefixDeclarationNode(typePrefixDeclarationNode, context) {
|
|
45
|
+
const typePrefix = typePrefixDeclarationNode.getTypePrefix(),
|
|
46
|
+
name = typePrefix, ///
|
|
47
|
+
string = name, ///
|
|
48
|
+
type = new TypePrefix(string, name);
|
|
49
|
+
|
|
50
|
+
return type;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export default domAssigned(TypePrefix);
|
package/src/index.js
CHANGED
|
@@ -25,6 +25,7 @@ import Judgement from "./dom/judgement";
|
|
|
25
25
|
import MetaLemma from "./dom/metaLemma";
|
|
26
26
|
import Deduction from "./dom/deduction";
|
|
27
27
|
import Signature from "./dom/signature";
|
|
28
|
+
import TypePrefix from "./dom/typePrefix";
|
|
28
29
|
import Conjecture from "./dom/conjecture";
|
|
29
30
|
import Conclusion from "./dom/conclusion";
|
|
30
31
|
import Derivation from "./dom/derivation";
|
|
@@ -53,6 +54,7 @@ import SimpleTypeDeclaration from "./dom/declaration/simpleType";
|
|
|
53
54
|
import StatementSubstitution from "./dom/substitution/statement";
|
|
54
55
|
import ReferenceSubstitution from "./dom/substitution/reference";
|
|
55
56
|
import CombinatorDeclaration from "./dom/declaration/combinator";
|
|
57
|
+
import TypePrefixDeclaration from "./dom/declaration/typePrefix";
|
|
56
58
|
import ConstructorDeclaration from "./dom/declaration/constructor";
|
|
57
59
|
import ComplexTypeDeclaration from "./dom/declaration/complexType";
|
|
58
60
|
import MetavariableDeclaration from "./dom/declaration/metavariable";
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import NonTerminalNode from "../../node/nonTerminal";
|
|
4
|
+
|
|
5
|
+
import { TYPE_PREFIX_RULE_NAME } from "../../ruleNames";
|
|
6
|
+
|
|
7
|
+
export default class TypePrefixDeclarationNode extends NonTerminalNode {
|
|
8
|
+
getTypePrefix() {
|
|
9
|
+
const typePrefixNode = this.getTypePrefixNode(),
|
|
10
|
+
typePrefixName = typePrefixNode.getTypePrefixName();
|
|
11
|
+
|
|
12
|
+
return typePrefixName;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
getTypePrefixNode() {
|
|
16
|
+
const ruleName = TYPE_PREFIX_RULE_NAME,
|
|
17
|
+
typePrefixNode = this.getNodeByRuleName(ruleName);
|
|
18
|
+
|
|
19
|
+
return typePrefixNode;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(TypePrefixDeclarationNode, ruleName, childNodes, opacity, precedence); }
|
|
23
|
+
}
|
|
24
|
+
|
package/src/node/type.js
CHANGED
|
@@ -6,12 +6,10 @@ export default class TypeNode extends NonTerminalNode {
|
|
|
6
6
|
getTypeName() {
|
|
7
7
|
let typeName;
|
|
8
8
|
|
|
9
|
-
this.someChildNode((childNode) => {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const terminalNode = childNode, ///
|
|
14
|
-
content = terminalNode.getContent();
|
|
9
|
+
this.someChildNode((childNode, index) => {
|
|
10
|
+
if (index === 0) {
|
|
11
|
+
const typeTerminalNode = childNode, ///
|
|
12
|
+
content = typeTerminalNode.getContent();
|
|
15
13
|
|
|
16
14
|
typeName = content; ///
|
|
17
15
|
|
|
@@ -22,23 +20,21 @@ export default class TypeNode extends NonTerminalNode {
|
|
|
22
20
|
return typeName;
|
|
23
21
|
}
|
|
24
22
|
|
|
25
|
-
|
|
26
|
-
let
|
|
27
|
-
|
|
28
|
-
this.someChildNode((childNode) => {
|
|
29
|
-
const childNodeTerminalNode = childNode.isTerminalNode();
|
|
23
|
+
getTypePrefixName() {
|
|
24
|
+
let typePrefixName = null;
|
|
30
25
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
26
|
+
this.someChildNode((childNode, index) => {
|
|
27
|
+
if (index === 2) {
|
|
28
|
+
const typeTerminalNode = childNode, ///
|
|
29
|
+
content = typeTerminalNode.getContent();
|
|
34
30
|
|
|
35
|
-
|
|
31
|
+
typePrefixName = content; ///
|
|
36
32
|
|
|
37
33
|
return true;
|
|
38
34
|
}
|
|
39
35
|
});
|
|
40
36
|
|
|
41
|
-
return
|
|
37
|
+
return typePrefixName;
|
|
42
38
|
}
|
|
43
39
|
|
|
44
40
|
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(TypeNode, ruleName, childNodes, opacity, precedence); }
|
package/src/node/typePrefix.js
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
import NonTerminalNode from "../node/nonTerminal";
|
|
4
4
|
|
|
5
5
|
export default class TypePrefixNode extends NonTerminalNode {
|
|
6
|
-
|
|
7
|
-
let
|
|
6
|
+
getTypePrefixName() {
|
|
7
|
+
let typePrefixName;
|
|
8
8
|
|
|
9
9
|
this.someChildNode((childNode) => {
|
|
10
10
|
const childNodeTerminalNode = childNode.isTerminalNode();
|
|
@@ -13,13 +13,13 @@ export default class TypePrefixNode extends NonTerminalNode {
|
|
|
13
13
|
const terminalNode = childNode, ///
|
|
14
14
|
content = terminalNode.getContent();
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
typePrefixName = content; ///
|
|
17
17
|
|
|
18
18
|
return true;
|
|
19
19
|
}
|
|
20
20
|
});
|
|
21
21
|
|
|
22
|
-
return
|
|
22
|
+
return typePrefixName;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(TypePrefixNode, ruleName, childNodes, opacity, precedence); }
|