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.
@@ -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
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-verify-cli",
3
3
  "author": "James Smith",
4
- "version": "1.0.317",
4
+ "version": "1.0.318",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-verify-cli",
7
7
  "description": "Occam's Verifier",
@@ -278,7 +278,17 @@ export default class FileContext {
278
278
  }
279
279
 
280
280
  getTypePrefixes(includeRelease = true) {
281
- return this.typePrefixes;
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
- const typePrefixesLength = this.typePrefixes.length;
335
+ if (typePrefix === null) {
336
+ const typePrefixesLength = this.typePrefixes.length;
326
337
 
327
- if (typePrefixesLength === 1) {
328
- const firstTypePrefix = first(this.typePrefixes);
338
+ if (typePrefixesLength === 1) {
339
+ const firstTypePrefix = first(this.typePrefixes);
329
340
 
330
- typePrefix = firstTypePrefix; ///
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);
@@ -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);
@@ -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.getString(); ///
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.getString();
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.getString(); ///
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 typeDeclarationString = this.getString(); ///
36
+ const simpleTypeDeclarationString = this.string; ///
37
37
 
38
- this.context.trace(`Verifying the '${typeDeclarationString}' simple type declaration...`, this.node);
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 '${typeDeclarationString}' simple type declaration.`, this.node);
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
- const childNodeTerminalNode = childNode.isTerminalNode();
11
-
12
- if (childNodeTerminalNode) {
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
- getTypePrefix() {
26
- let typePrefix;
27
-
28
- this.someChildNode((childNode) => {
29
- const childNodeTerminalNode = childNode.isTerminalNode();
23
+ getTypePrefixName() {
24
+ let typePrefixName = null;
30
25
 
31
- if (childNodeTerminalNode) {
32
- const terminalNode = childNode, ///
33
- content = terminalNode.getContent();
26
+ this.someChildNode((childNode, index) => {
27
+ if (index === 2) {
28
+ const typeTerminalNode = childNode, ///
29
+ content = typeTerminalNode.getContent();
34
30
 
35
- typePrefix = content; ///
31
+ typePrefixName = content; ///
36
32
 
37
33
  return true;
38
34
  }
39
35
  });
40
36
 
41
- return typePrefix;
37
+ return typePrefixName;
42
38
  }
43
39
 
44
40
  static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(TypeNode, ruleName, childNodes, opacity, precedence); }
@@ -3,8 +3,8 @@
3
3
  import NonTerminalNode from "../node/nonTerminal";
4
4
 
5
5
  export default class TypePrefixNode extends NonTerminalNode {
6
- getTypePrefix() {
7
- let typePrefix;
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
- typePrefix = content; ///
16
+ typePrefixName = content; ///
17
17
 
18
18
  return true;
19
19
  }
20
20
  });
21
21
 
22
- return typePrefix;
22
+ return typePrefixName;
23
23
  }
24
24
 
25
25
  static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(TypePrefixNode, ruleName, childNodes, opacity, precedence); }