occam-verify-cli 0.0.527 → 0.0.529

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.
Files changed (197) hide show
  1. package/README.md +4 -0
  2. package/bin/abbreviations.js +5 -1
  3. package/bin/action/help.js +4 -0
  4. package/bin/action/verify.js +35 -13
  5. package/bin/actions.js +11 -6
  6. package/bin/defaults.js +4 -0
  7. package/bin/options.js +4 -0
  8. package/bin/utilities/releaseContext.js +5 -7
  9. package/lib/axiom.js +3 -3
  10. package/lib/axiomLemmaTheoremConjecture.js +5 -5
  11. package/lib/combinator.js +4 -3
  12. package/lib/conclusion.js +8 -7
  13. package/lib/conjecture.js +3 -3
  14. package/lib/consequence.js +6 -5
  15. package/lib/constants.js +8 -12
  16. package/lib/constructor.js +5 -4
  17. package/lib/context/file.js +13 -35
  18. package/lib/context/metaproof.js +12 -11
  19. package/lib/context/proof.js +11 -10
  20. package/lib/context/release/directory.js +6 -6
  21. package/lib/context/release/file.js +15 -26
  22. package/lib/context/release.js +32 -51
  23. package/lib/equality.js +5 -4
  24. package/lib/index.js +4 -4
  25. package/lib/label.js +4 -3
  26. package/lib/lemma.js +3 -3
  27. package/lib/log.js +146 -0
  28. package/lib/matcher.js +14 -23
  29. package/lib/metaTypeNames.js +13 -0
  30. package/lib/mixins/logging.js +13 -13
  31. package/lib/node/metastatement/bracketed.js +16 -0
  32. package/lib/node/statement/bracketed.js +16 -0
  33. package/lib/node/statement/combinator/bracketed.js +17 -0
  34. package/lib/node/statement/combinator/equality.js +17 -0
  35. package/lib/node/statement/equality.js +16 -0
  36. package/lib/ocmbinator/bracketed.js +3 -4
  37. package/lib/ocmbinator/equality.js +3 -4
  38. package/lib/premise.js +10 -9
  39. package/lib/rule.js +5 -5
  40. package/lib/step/metaproof.js +28 -25
  41. package/lib/step/proof.js +15 -14
  42. package/lib/substitution/metastatementForMetavariable.js +16 -13
  43. package/lib/substitution/statementForMetavariable.js +17 -18
  44. package/lib/substitution/termForVariable.js +8 -18
  45. package/lib/supposition.js +7 -6
  46. package/lib/theorem.js +3 -3
  47. package/lib/type.js +5 -5
  48. package/lib/utilities/metaproof.js +60 -0
  49. package/lib/utilities/node.js +56 -0
  50. package/lib/utilities/proof.js +60 -0
  51. package/lib/utilities/releaseContext.js +24 -12
  52. package/lib/utilities/string.js +1 -32
  53. package/lib/{matcher → verifier}/metastatementForMetavariable/conclusion.js +12 -12
  54. package/lib/{matcher → verifier}/metastatementForMetavariable/premise.js +12 -12
  55. package/lib/verifier/metastatementForMetavariable.js +198 -0
  56. package/lib/{matcher → verifier}/statementForMetavariable/conclusion.js +12 -12
  57. package/lib/{matcher → verifier}/statementForMetavariable/premise.js +12 -12
  58. package/lib/verifier/statementForMetavariable.js +203 -0
  59. package/lib/{matcher → verifier}/termForVariable/consequence.js +12 -12
  60. package/lib/{matcher → verifier}/termForVariable/supposition.js +12 -12
  61. package/lib/verifier/termForVariable.js +198 -0
  62. package/lib/verifier.js +92 -0
  63. package/lib/verify/assertion/type.js +6 -8
  64. package/lib/verify/axiom.js +3 -5
  65. package/lib/verify/conclusion.js +2 -4
  66. package/lib/verify/conjecture.js +3 -5
  67. package/lib/verify/consequence.js +2 -4
  68. package/lib/verify/declaration/combinator.js +1 -3
  69. package/lib/verify/declaration/constructor.js +1 -3
  70. package/lib/verify/declaration/topLevel.js +1 -3
  71. package/lib/verify/declaration/type.js +1 -3
  72. package/lib/verify/declaration/variable.js +1 -3
  73. package/lib/verify/derivation.js +1 -5
  74. package/lib/verify/label.js +1 -3
  75. package/lib/verify/lemma.js +3 -5
  76. package/lib/verify/metastatement/qualified.js +2 -4
  77. package/lib/verify/metastatement/unqualified.js +2 -4
  78. package/lib/verify/metastatement.js +1 -3
  79. package/lib/verify/premise.js +2 -4
  80. package/lib/verify/proof.js +3 -5
  81. package/lib/verify/rule.js +3 -5
  82. package/lib/verify/ruleDerivation.js +1 -5
  83. package/lib/verify/ruleProof.js +3 -5
  84. package/lib/verify/statement/qualified.js +2 -4
  85. package/lib/verify/statement/unqualified.js +2 -4
  86. package/lib/verify/statement.js +14 -17
  87. package/lib/verify/statementAsCombinator.js +4 -6
  88. package/lib/verify/supposition.js +2 -4
  89. package/lib/verify/term.js +4 -10
  90. package/lib/verify/termAsConstructor.js +6 -9
  91. package/lib/verify/theorem.js +3 -5
  92. package/lib/verify/type.js +5 -9
  93. package/lib/verify/variable.js +5 -9
  94. package/package.json +1 -1
  95. package/src/axiom.js +1 -1
  96. package/src/axiomLemmaTheoremConjecture.js +4 -4
  97. package/src/combinator.js +3 -3
  98. package/src/conclusion.js +7 -7
  99. package/src/conjecture.js +1 -1
  100. package/src/consequence.js +5 -5
  101. package/src/constants.js +2 -3
  102. package/src/constructor.js +4 -4
  103. package/src/context/file.js +6 -30
  104. package/src/context/metaproof.js +13 -10
  105. package/src/context/proof.js +11 -9
  106. package/src/context/release/directory.js +7 -7
  107. package/src/context/release/file.js +17 -32
  108. package/src/context/release.js +23 -32
  109. package/src/equality.js +6 -8
  110. package/src/index.js +2 -1
  111. package/src/label.js +3 -3
  112. package/src/lemma.js +1 -1
  113. package/src/log.js +116 -0
  114. package/src/matcher.js +11 -9
  115. package/src/metaTypeNames.js +3 -0
  116. package/src/mixins/logging.js +6 -6
  117. package/src/node/metastatement/bracketed.js +9 -0
  118. package/src/node/statement/bracketed.js +9 -0
  119. package/src/node/statement/combinator/bracketed.js +10 -0
  120. package/src/node/statement/combinator/equality.js +11 -0
  121. package/src/node/statement/equality.js +10 -0
  122. package/src/ocmbinator/bracketed.js +2 -5
  123. package/src/ocmbinator/equality.js +2 -5
  124. package/src/premise.js +9 -9
  125. package/src/rule.js +4 -4
  126. package/src/step/metaproof.js +32 -29
  127. package/src/step/proof.js +15 -14
  128. package/src/substitution/metastatementForMetavariable.js +10 -15
  129. package/src/substitution/statementForMetavariable.js +12 -24
  130. package/src/substitution/termForVariable.js +2 -30
  131. package/src/supposition.js +6 -6
  132. package/src/theorem.js +1 -1
  133. package/src/type.js +4 -4
  134. package/src/utilities/metaproof.js +62 -0
  135. package/src/utilities/node.js +73 -0
  136. package/src/utilities/proof.js +62 -0
  137. package/src/utilities/releaseContext.js +30 -12
  138. package/src/utilities/string.js +0 -47
  139. package/src/verifier/metastatementForMetavariable/conclusion.js +9 -0
  140. package/src/verifier/metastatementForMetavariable/premise.js +9 -0
  141. package/src/{matcher → verifier}/metastatementForMetavariable.js +2 -2
  142. package/src/verifier/statementForMetavariable/conclusion.js +9 -0
  143. package/src/verifier/statementForMetavariable/premise.js +9 -0
  144. package/src/{matcher → verifier}/statementForMetavariable.js +2 -2
  145. package/src/verifier/termForVariable/consequence.js +9 -0
  146. package/src/verifier/termForVariable/supposition.js +9 -0
  147. package/src/{matcher → verifier}/termForVariable.js +2 -2
  148. package/src/verifier.js +74 -0
  149. package/src/verify/assertion/type.js +5 -11
  150. package/src/verify/axiom.js +2 -8
  151. package/src/verify/conclusion.js +1 -7
  152. package/src/verify/conjecture.js +2 -8
  153. package/src/verify/consequence.js +1 -7
  154. package/src/verify/declaration/combinator.js +0 -6
  155. package/src/verify/declaration/constructor.js +0 -6
  156. package/src/verify/declaration/topLevel.js +0 -6
  157. package/src/verify/declaration/type.js +0 -6
  158. package/src/verify/declaration/variable.js +0 -6
  159. package/src/verify/derivation.js +0 -12
  160. package/src/verify/label.js +0 -6
  161. package/src/verify/lemma.js +4 -10
  162. package/src/verify/metastatement/qualified.js +1 -7
  163. package/src/verify/metastatement/unqualified.js +1 -7
  164. package/src/verify/metastatement.js +0 -6
  165. package/src/verify/premise.js +1 -7
  166. package/src/verify/proof.js +1 -7
  167. package/src/verify/rule.js +2 -8
  168. package/src/verify/ruleDerivation.js +0 -12
  169. package/src/verify/ruleProof.js +1 -7
  170. package/src/verify/statement/qualified.js +1 -7
  171. package/src/verify/statement/unqualified.js +1 -7
  172. package/src/verify/statement.js +24 -34
  173. package/src/verify/statementAsCombinator.js +3 -9
  174. package/src/verify/supposition.js +1 -7
  175. package/src/verify/term.js +3 -21
  176. package/src/verify/termAsConstructor.js +5 -13
  177. package/src/verify/theorem.js +2 -8
  178. package/src/verify/type.js +4 -13
  179. package/src/verify/variable.js +4 -13
  180. package/bin/callbacks.js +0 -48
  181. package/lib/callbacks.js +0 -75
  182. package/lib/context/release/combinator.js +0 -64
  183. package/lib/matcher/metastatementForMetavariable.js +0 -198
  184. package/lib/matcher/statementForMetavariable.js +0 -203
  185. package/lib/matcher/termForVariable.js +0 -198
  186. package/lib/mixins/callbacks.js +0 -27
  187. package/lib/utilities/substitution.js +0 -60
  188. package/src/callbacks.js +0 -39
  189. package/src/context/release/combinator.js +0 -39
  190. package/src/matcher/metastatementForMetavariable/conclusion.js +0 -9
  191. package/src/matcher/metastatementForMetavariable/premise.js +0 -9
  192. package/src/matcher/statementForMetavariable/conclusion.js +0 -9
  193. package/src/matcher/statementForMetavariable/premise.js +0 -9
  194. package/src/matcher/termForVariable/consequence.js +0 -9
  195. package/src/matcher/termForVariable/supposition.js +0 -9
  196. package/src/mixins/callbacks.js +0 -15
  197. package/src/utilities/substitution.js +0 -81
@@ -17,12 +17,9 @@ function _interopRequireDefault(obj) {
17
17
  }
18
18
  function verifyType(typeNode, superTypeNode, fileContext) {
19
19
  var typeVerified = false;
20
- fileContext.begin(typeNode);
21
- var typeString = fileContext.nodeAsString(typeNode);
22
- fileContext.debug("Verifying the '".concat(typeString, "' type..."));
23
- var typeName = (0, _query.typeNameFromTypeNode)(typeNode), typePresent = fileContext.isTypePresentByTypeName(typeName);
20
+ var typeName = (0, _query.typeNameFromTypeNode)(typeNode), typeString = fileContext.nodeAsString(typeNode), typePresent = fileContext.isTypePresentByTypeName(typeName);
24
21
  if (typePresent) {
25
- fileContext.error("The type '".concat(typeName, "' is already present."));
22
+ fileContext.error("The type '".concat(typeName, "' is already present."), typeNode);
26
23
  } else {
27
24
  var type;
28
25
  var superTypeName = (0, _query.typeNameFromTypeNode)(superTypeNode);
@@ -31,7 +28,7 @@ function verifyType(typeNode, superTypeNode, fileContext) {
31
28
  } else {
32
29
  var superType = fileContext.findTypeByTypeName(superTypeName);
33
30
  if (superType === null) {
34
- fileContext.error("The super-type '".concat(superTypeName, "' is missing."));
31
+ fileContext.error("The super-type '".concat(superTypeName, "' is not present."), typeNode);
35
32
  } else {
36
33
  type = _type.default.fromTypeNameAndSuperType(typeName, superType);
37
34
  }
@@ -42,10 +39,9 @@ function verifyType(typeNode, superTypeNode, fileContext) {
42
39
  }
43
40
  }
44
41
  if (typeVerified) {
45
- fileContext.info("Verified the '".concat(typeString, "' type."));
42
+ fileContext.info("Verified the '".concat(typeString, "' type."), typeNode);
46
43
  }
47
- typeVerified ? fileContext.complete(typeNode) : fileContext.halt(typeNode);
48
44
  return typeVerified;
49
45
  }
50
46
 
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvdHlwZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFR5cGUgZnJvbSBcIi4uL3R5cGVcIjtcblxuaW1wb3J0IHsgdHlwZU5hbWVGcm9tVHlwZU5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeVR5cGUodHlwZU5vZGUsIHN1cGVyVHlwZU5vZGUsIGZpbGVDb250ZXh0KSB7XG4gIGxldCB0eXBlVmVyaWZpZWQgPSBmYWxzZTtcblxuICBmaWxlQ29udGV4dC5iZWdpbih0eXBlTm9kZSk7XG5cbiAgY29uc3QgdHlwZVN0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVBc1N0cmluZyh0eXBlTm9kZSk7XG5cbiAgZmlsZUNvbnRleHQuZGVidWcoYFZlcmlmeWluZyB0aGUgJyR7dHlwZVN0cmluZ30nIHR5cGUuLi5gKTtcblxuICBjb25zdCB0eXBlTmFtZSA9IHR5cGVOYW1lRnJvbVR5cGVOb2RlKHR5cGVOb2RlKSxcbiAgICAgICAgdHlwZVByZXNlbnQgPSBmaWxlQ29udGV4dC5pc1R5cGVQcmVzZW50QnlUeXBlTmFtZSh0eXBlTmFtZSk7XG5cbiAgaWYgKHR5cGVQcmVzZW50KSB7XG4gICAgZmlsZUNvbnRleHQuZXJyb3IoYFRoZSB0eXBlICcke3R5cGVOYW1lfScgaXMgYWxyZWFkeSBwcmVzZW50LmApO1xuICB9IGVsc2Uge1xuICAgIGxldCB0eXBlO1xuXG4gICAgY29uc3Qgc3VwZXJUeXBlTmFtZSA9IHR5cGVOYW1lRnJvbVR5cGVOb2RlKHN1cGVyVHlwZU5vZGUpO1xuXG4gICAgaWYgKHN1cGVyVHlwZU5hbWUgPT09IG51bGwpIHtcbiAgICAgIHR5cGUgPSBUeXBlLmZyb21UeXBlTmFtZSh0eXBlTmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHN1cGVyVHlwZSA9IGZpbGVDb250ZXh0LmZpbmRUeXBlQnlUeXBlTmFtZShzdXBlclR5cGVOYW1lKTtcblxuICAgICAgaWYgKHN1cGVyVHlwZSA9PT0gbnVsbCkge1xuICAgICAgICBmaWxlQ29udGV4dC5lcnJvcihgVGhlIHN1cGVyLXR5cGUgJyR7c3VwZXJUeXBlTmFtZX0nIGlzIG1pc3NpbmcuYCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0eXBlID0gVHlwZS5mcm9tVHlwZU5hbWVBbmRTdXBlclR5cGUodHlwZU5hbWUsIHN1cGVyVHlwZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHR5cGUgIT09IG51bGwpIHtcbiAgICAgIGZpbGVDb250ZXh0LmFkZFR5cGUodHlwZSk7XG5cbiAgICAgIHR5cGVWZXJpZmllZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGVWZXJpZmllZCkge1xuICAgIGZpbGVDb250ZXh0LmluZm8oYFZlcmlmaWVkIHRoZSAnJHt0eXBlU3RyaW5nfScgdHlwZS5gKTtcbiAgfVxuXG4gIHR5cGVWZXJpZmllZCA/XG4gICAgZmlsZUNvbnRleHQuY29tcGxldGUodHlwZU5vZGUpOlxuICAgICAgZmlsZUNvbnRleHQuaGFsdCh0eXBlTm9kZSk7XG5cbiAgcmV0dXJuIHR5cGVWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlUeXBlIiwidHlwZU5vZGUiLCJzdXBlclR5cGVOb2RlIiwiZmlsZUNvbnRleHQiLCJ0eXBlVmVyaWZpZWQiLCJiZWdpbiIsInR5cGVTdHJpbmciLCJub2RlQXNTdHJpbmciLCJkZWJ1ZyIsInR5cGVOYW1lIiwidHlwZU5hbWVGcm9tVHlwZU5vZGUiLCJ0eXBlUHJlc2VudCIsImlzVHlwZVByZXNlbnRCeVR5cGVOYW1lIiwiZXJyb3IiLCJ0eXBlIiwic3VwZXJUeXBlTmFtZSIsIlR5cGUiLCJmcm9tVHlwZU5hbWUiLCJzdXBlclR5cGUiLCJmaW5kVHlwZUJ5VHlwZU5hbWUiLCJmcm9tVHlwZU5hbWVBbmRTdXBlclR5cGUiLCJhZGRUeXBlIiwiaW5mbyIsImNvbXBsZXRlIiwiaGFsdCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBTUE7OztlQUF3QkE7Ozt5REFKUDtxQkFFb0I7Ozs7OztBQUV0QixTQUFTQSxXQUFXQyxRQUFRLEVBQUVDLGFBQWEsRUFBRUMsV0FBVyxFQUFFO0lBQ3ZFLElBQUlDLGVBQWUsS0FBSztJQUV4QkQsWUFBWUUsS0FBSyxDQUFDSjtJQUVsQixJQUFNSyxhQUFhSCxZQUFZSSxZQUFZLENBQUNOO0lBRTVDRSxZQUFZSyxLQUFLLENBQUMsQUFBQyxrQkFBNEIsT0FBWEYsWUFBVztJQUUvQyxJQUFNRyxXQUFXQyxJQUFBQSwyQkFBb0IsRUFBQ1QsV0FDaENVLGNBQWNSLFlBQVlTLHVCQUF1QixDQUFDSDtJQUV4RCxJQUFJRSxhQUFhO1FBQ2ZSLFlBQVlVLEtBQUssQ0FBQyxBQUFDLGFBQXFCLE9BQVRKLFVBQVM7SUFDMUMsT0FBTztRQUNMLElBQUlLO1FBRUosSUFBTUMsZ0JBQWdCTCxJQUFBQSwyQkFBb0IsRUFBQ1I7UUFFM0MsSUFBSWEsa0JBQWtCLElBQUksRUFBRTtZQUMxQkQsT0FBT0UsYUFBSSxDQUFDQyxZQUFZLENBQUNSO1FBQzNCLE9BQU87WUFDTCxJQUFNUyxZQUFZZixZQUFZZ0Isa0JBQWtCLENBQUNKO1lBRWpELElBQUlHLGNBQWMsSUFBSSxFQUFFO2dCQUN0QmYsWUFBWVUsS0FBSyxDQUFDLEFBQUMsbUJBQWdDLE9BQWRFLGVBQWM7WUFDckQsT0FBTztnQkFDTEQsT0FBT0UsYUFBSSxDQUFDSSx3QkFBd0IsQ0FBQ1gsVUFBVVM7WUFDakQsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJSixTQUFTLElBQUksRUFBRTtZQUNqQlgsWUFBWWtCLE9BQU8sQ0FBQ1A7WUFFcEJWLGVBQWUsSUFBSTtRQUNyQixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUlBLGNBQWM7UUFDaEJELFlBQVltQixJQUFJLENBQUMsQUFBQyxpQkFBMkIsT0FBWGhCLFlBQVc7SUFDL0MsQ0FBQztJQUVERixlQUNFRCxZQUFZb0IsUUFBUSxDQUFDdEIsWUFDbkJFLFlBQVlxQixJQUFJLENBQUN2QixTQUFTO0lBRTlCLE9BQU9HO0FBQ1QifQ==
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvdHlwZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IFR5cGUgZnJvbSBcIi4uL3R5cGVcIjtcblxuaW1wb3J0IHsgdHlwZU5hbWVGcm9tVHlwZU5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3F1ZXJ5XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHZlcmlmeVR5cGUodHlwZU5vZGUsIHN1cGVyVHlwZU5vZGUsIGZpbGVDb250ZXh0KSB7XG4gIGxldCB0eXBlVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCB0eXBlTmFtZSA9IHR5cGVOYW1lRnJvbVR5cGVOb2RlKHR5cGVOb2RlKSxcbiAgICAgICAgdHlwZVN0cmluZyA9IGZpbGVDb250ZXh0Lm5vZGVBc1N0cmluZyh0eXBlTm9kZSksXG4gICAgICAgIHR5cGVQcmVzZW50ID0gZmlsZUNvbnRleHQuaXNUeXBlUHJlc2VudEJ5VHlwZU5hbWUodHlwZU5hbWUpO1xuXG4gIGlmICh0eXBlUHJlc2VudCkge1xuICAgIGZpbGVDb250ZXh0LmVycm9yKGBUaGUgdHlwZSAnJHt0eXBlTmFtZX0nIGlzIGFscmVhZHkgcHJlc2VudC5gLCB0eXBlTm9kZSk7XG4gIH0gZWxzZSB7XG4gICAgbGV0IHR5cGU7XG5cbiAgICBjb25zdCBzdXBlclR5cGVOYW1lID0gdHlwZU5hbWVGcm9tVHlwZU5vZGUoc3VwZXJUeXBlTm9kZSk7XG5cbiAgICBpZiAoc3VwZXJUeXBlTmFtZSA9PT0gbnVsbCkge1xuICAgICAgdHlwZSA9IFR5cGUuZnJvbVR5cGVOYW1lKHR5cGVOYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgc3VwZXJUeXBlID0gZmlsZUNvbnRleHQuZmluZFR5cGVCeVR5cGVOYW1lKHN1cGVyVHlwZU5hbWUpO1xuXG4gICAgICBpZiAoc3VwZXJUeXBlID09PSBudWxsKSB7XG4gICAgICAgIGZpbGVDb250ZXh0LmVycm9yKGBUaGUgc3VwZXItdHlwZSAnJHtzdXBlclR5cGVOYW1lfScgaXMgbm90IHByZXNlbnQuYCwgdHlwZU5vZGUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdHlwZSA9IFR5cGUuZnJvbVR5cGVOYW1lQW5kU3VwZXJUeXBlKHR5cGVOYW1lLCBzdXBlclR5cGUpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0eXBlICE9PSBudWxsKSB7XG4gICAgICBmaWxlQ29udGV4dC5hZGRUeXBlKHR5cGUpO1xuXG4gICAgICB0eXBlVmVyaWZpZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIGlmICh0eXBlVmVyaWZpZWQpIHtcbiAgICBmaWxlQ29udGV4dC5pbmZvKGBWZXJpZmllZCB0aGUgJyR7dHlwZVN0cmluZ30nIHR5cGUuYCwgdHlwZU5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHR5cGVWZXJpZmllZDtcbn1cbiJdLCJuYW1lcyI6WyJ2ZXJpZnlUeXBlIiwidHlwZU5vZGUiLCJzdXBlclR5cGVOb2RlIiwiZmlsZUNvbnRleHQiLCJ0eXBlVmVyaWZpZWQiLCJ0eXBlTmFtZSIsInR5cGVOYW1lRnJvbVR5cGVOb2RlIiwidHlwZVN0cmluZyIsIm5vZGVBc1N0cmluZyIsInR5cGVQcmVzZW50IiwiaXNUeXBlUHJlc2VudEJ5VHlwZU5hbWUiLCJlcnJvciIsInR5cGUiLCJzdXBlclR5cGVOYW1lIiwiVHlwZSIsImZyb21UeXBlTmFtZSIsInN1cGVyVHlwZSIsImZpbmRUeXBlQnlUeXBlTmFtZSIsImZyb21UeXBlTmFtZUFuZFN1cGVyVHlwZSIsImFkZFR5cGUiLCJpbmZvIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFNQTs7O2VBQXdCQTs7O3lEQUpQO3FCQUVvQjs7Ozs7O0FBRXRCLFNBQVNBLFdBQVdDLFFBQVEsRUFBRUMsYUFBYSxFQUFFQyxXQUFXLEVBQUU7SUFDdkUsSUFBSUMsZUFBZSxLQUFLO0lBRXhCLElBQU1DLFdBQVdDLElBQUFBLDJCQUFvQixFQUFDTCxXQUNoQ00sYUFBYUosWUFBWUssWUFBWSxDQUFDUCxXQUN0Q1EsY0FBY04sWUFBWU8sdUJBQXVCLENBQUNMO0lBRXhELElBQUlJLGFBQWE7UUFDZk4sWUFBWVEsS0FBSyxDQUFDLEFBQUMsYUFBcUIsT0FBVE4sVUFBUywwQkFBd0JKO0lBQ2xFLE9BQU87UUFDTCxJQUFJVztRQUVKLElBQU1DLGdCQUFnQlAsSUFBQUEsMkJBQW9CLEVBQUNKO1FBRTNDLElBQUlXLGtCQUFrQixJQUFJLEVBQUU7WUFDMUJELE9BQU9FLGFBQUksQ0FBQ0MsWUFBWSxDQUFDVjtRQUMzQixPQUFPO1lBQ0wsSUFBTVcsWUFBWWIsWUFBWWMsa0JBQWtCLENBQUNKO1lBRWpELElBQUlHLGNBQWMsSUFBSSxFQUFFO2dCQUN0QmIsWUFBWVEsS0FBSyxDQUFDLEFBQUMsbUJBQWdDLE9BQWRFLGVBQWMsc0JBQW9CWjtZQUN6RSxPQUFPO2dCQUNMVyxPQUFPRSxhQUFJLENBQUNJLHdCQUF3QixDQUFDYixVQUFVVztZQUNqRCxDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUlKLFNBQVMsSUFBSSxFQUFFO1lBQ2pCVCxZQUFZZ0IsT0FBTyxDQUFDUDtZQUVwQlIsZUFBZSxJQUFJO1FBQ3JCLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSUEsY0FBYztRQUNoQkQsWUFBWWlCLElBQUksQ0FBQyxBQUFDLGlCQUEyQixPQUFYYixZQUFXLFlBQVVOO0lBQ3pELENBQUM7SUFFRCxPQUFPRztBQUNUIn0=
@@ -18,12 +18,9 @@ function _interopRequireDefault(obj) {
18
18
  }
19
19
  function verifyVariable(variableNode, typeNode, fileContext) {
20
20
  var variableVerified = false;
21
- fileContext.begin(variableNode);
22
- var variableString = fileContext.nodeAsString(variableNode);
23
- fileContext.debug("Verifying the '".concat(variableString, "' variable..."));
24
- var variableName = (0, _query.variableNameFromVariableNode)(variableNode), variablePresent = fileContext.isVariablePresentByVariableName(variableName);
21
+ var variableName = (0, _query.variableNameFromVariableNode)(variableNode), variableString = fileContext.nodeAsString(variableNode), variablePresent = fileContext.isVariablePresentByVariableName(variableName);
25
22
  if (variablePresent) {
26
- fileContext.error("The variable '".concat(variableName, "' is already present."));
23
+ fileContext.error("The variable '".concat(variableName, "' is already present."), variableNode);
27
24
  } else {
28
25
  var variable;
29
26
  var typeName = (0, _query.typeNameFromTypeNode)(typeNode);
@@ -33,7 +30,7 @@ function verifyVariable(variableNode, typeNode, fileContext) {
33
30
  } else {
34
31
  var type1 = fileContext.findTypeByTypeName(typeName);
35
32
  if (type1 === null) {
36
- fileContext.error("The '".concat(variableName, "' variable's '").concat(typeName, "' type is missing."));
33
+ fileContext.error("The '".concat(variableName, "' variable's '").concat(typeName, "' type is not present."), variableNode);
37
34
  } else {
38
35
  var name1 = variableName; ///
39
36
  variable = _variable.default.fromTypeAndName(type1, name1);
@@ -45,10 +42,9 @@ function verifyVariable(variableNode, typeNode, fileContext) {
45
42
  }
46
43
  }
47
44
  if (variableVerified) {
48
- fileContext.info("Verified the '".concat(variableString, "' variable."));
45
+ fileContext.info("Verified the '".concat(variableString, "' variable."), variableNode);
49
46
  }
50
- variableVerified ? fileContext.complete(variableNode) : fileContext.halt(variableNode);
51
47
  return variableVerified;
52
48
  }
53
49
 
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvdmFyaWFibGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBWYXJpYWJsZSBmcm9tIFwiLi4vdmFyaWFibGVcIjtcblxuaW1wb3J0IHsgb2JqZWN0VHlwZSB9IGZyb20gXCIuLi90eXBlXCI7XG5pbXBvcnQgeyB0eXBlTmFtZUZyb21UeXBlTm9kZSwgdmFyaWFibGVOYW1lRnJvbVZhcmlhYmxlTm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5VmFyaWFibGUodmFyaWFibGVOb2RlLCB0eXBlTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IHZhcmlhYmxlVmVyaWZpZWQgPSBmYWxzZTtcblxuICBmaWxlQ29udGV4dC5iZWdpbih2YXJpYWJsZU5vZGUpO1xuXG4gIGNvbnN0IHZhcmlhYmxlU3RyaW5nID0gZmlsZUNvbnRleHQubm9kZUFzU3RyaW5nKHZhcmlhYmxlTm9kZSk7XG5cbiAgZmlsZUNvbnRleHQuZGVidWcoYFZlcmlmeWluZyB0aGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZS4uLmApO1xuXG4gIGNvbnN0IHZhcmlhYmxlTmFtZSA9IHZhcmlhYmxlTmFtZUZyb21WYXJpYWJsZU5vZGUodmFyaWFibGVOb2RlKSxcbiAgICAgICAgdmFyaWFibGVQcmVzZW50ID0gZmlsZUNvbnRleHQuaXNWYXJpYWJsZVByZXNlbnRCeVZhcmlhYmxlTmFtZSh2YXJpYWJsZU5hbWUpO1xuXG4gIGlmICh2YXJpYWJsZVByZXNlbnQpIHtcbiAgICBmaWxlQ29udGV4dC5lcnJvcihgVGhlIHZhcmlhYmxlICcke3ZhcmlhYmxlTmFtZX0nIGlzIGFscmVhZHkgcHJlc2VudC5gKTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgdmFyaWFibGU7XG5cbiAgICBjb25zdCB0eXBlTmFtZSA9IHR5cGVOYW1lRnJvbVR5cGVOb2RlKHR5cGVOb2RlKTtcbiAgICBcbiAgICBpZiAodHlwZU5hbWUgPT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHR5cGUgPSBvYmplY3RUeXBlLFxuICAgICAgICAgICAgbmFtZSA9IHZhcmlhYmxlTmFtZTsgIC8vL1xuXG4gICAgICB2YXJpYWJsZSA9IFZhcmlhYmxlLmZyb21UeXBlQW5kTmFtZSh0eXBlLCBuYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdHlwZSA9IGZpbGVDb250ZXh0LmZpbmRUeXBlQnlUeXBlTmFtZSh0eXBlTmFtZSk7XG5cbiAgICAgIGlmICh0eXBlID09PSBudWxsKSB7XG4gICAgICAgIGZpbGVDb250ZXh0LmVycm9yKGBUaGUgJyR7dmFyaWFibGVOYW1lfScgdmFyaWFibGUncyAnJHt0eXBlTmFtZX0nIHR5cGUgaXMgbWlzc2luZy5gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSB2YXJpYWJsZU5hbWU7ICAvLy9cblxuICAgICAgICB2YXJpYWJsZSA9IFZhcmlhYmxlLmZyb21UeXBlQW5kTmFtZSh0eXBlLCBuYW1lKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodmFyaWFibGUgIT09IG51bGwpIHtcbiAgICAgIGZpbGVDb250ZXh0LmFkZFZhcmlhYmxlKHZhcmlhYmxlKTtcblxuICAgICAgdmFyaWFibGVWZXJpZmllZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgaWYgKHZhcmlhYmxlVmVyaWZpZWQpIHtcbiAgICBmaWxlQ29udGV4dC5pbmZvKGBWZXJpZmllZCB0aGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZS5gKTtcbiAgfVxuXG4gIHZhcmlhYmxlVmVyaWZpZWQgP1xuICAgIGZpbGVDb250ZXh0LmNvbXBsZXRlKHZhcmlhYmxlTm9kZSkgOlxuICAgICAgZmlsZUNvbnRleHQuaGFsdCh2YXJpYWJsZU5vZGUpO1xuXG4gIHJldHVybiB2YXJpYWJsZVZlcmlmaWVkO1xufVxuIl0sIm5hbWVzIjpbInZlcmlmeVZhcmlhYmxlIiwidmFyaWFibGVOb2RlIiwidHlwZU5vZGUiLCJmaWxlQ29udGV4dCIsInZhcmlhYmxlVmVyaWZpZWQiLCJiZWdpbiIsInZhcmlhYmxlU3RyaW5nIiwibm9kZUFzU3RyaW5nIiwiZGVidWciLCJ2YXJpYWJsZU5hbWUiLCJ2YXJpYWJsZU5hbWVGcm9tVmFyaWFibGVOb2RlIiwidmFyaWFibGVQcmVzZW50IiwiaXNWYXJpYWJsZVByZXNlbnRCeVZhcmlhYmxlTmFtZSIsImVycm9yIiwidmFyaWFibGUiLCJ0eXBlTmFtZSIsInR5cGVOYW1lRnJvbVR5cGVOb2RlIiwidHlwZSIsIm9iamVjdFR5cGUiLCJuYW1lIiwiVmFyaWFibGUiLCJmcm9tVHlwZUFuZE5hbWUiLCJmaW5kVHlwZUJ5VHlwZU5hbWUiLCJhZGRWYXJpYWJsZSIsImluZm8iLCJjb21wbGV0ZSIsImhhbHQiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQU9BOzs7ZUFBd0JBOzs7NkRBTEg7b0JBRU07cUJBQ3dDOzs7Ozs7QUFFcEQsU0FBU0EsZUFBZUMsWUFBWSxFQUFFQyxRQUFRLEVBQUVDLFdBQVcsRUFBRTtJQUMxRSxJQUFJQyxtQkFBbUIsS0FBSztJQUU1QkQsWUFBWUUsS0FBSyxDQUFDSjtJQUVsQixJQUFNSyxpQkFBaUJILFlBQVlJLFlBQVksQ0FBQ047SUFFaERFLFlBQVlLLEtBQUssQ0FBQyxBQUFDLGtCQUFnQyxPQUFmRixnQkFBZTtJQUVuRCxJQUFNRyxlQUFlQyxJQUFBQSxtQ0FBNEIsRUFBQ1QsZUFDNUNVLGtCQUFrQlIsWUFBWVMsK0JBQStCLENBQUNIO0lBRXBFLElBQUlFLGlCQUFpQjtRQUNuQlIsWUFBWVUsS0FBSyxDQUFDLEFBQUMsaUJBQTZCLE9BQWJKLGNBQWE7SUFDbEQsT0FBTztRQUNMLElBQUlLO1FBRUosSUFBTUMsV0FBV0MsSUFBQUEsMkJBQW9CLEVBQUNkO1FBRXRDLElBQUlhLGFBQWEsSUFBSSxFQUFFO1lBQ3JCLElBQU1FLE9BQU9DLGdCQUFVLEVBQ2pCQyxPQUFPVixjQUFlLEdBQUc7WUFFL0JLLFdBQVdNLGlCQUFRLENBQUNDLGVBQWUsQ0FBQ0osTUFBTUU7UUFDNUMsT0FBTztZQUNMLElBQU1GLFFBQU9kLFlBQVltQixrQkFBa0IsQ0FBQ1A7WUFFNUMsSUFBSUUsVUFBUyxJQUFJLEVBQUU7Z0JBQ2pCZCxZQUFZVSxLQUFLLENBQUMsQUFBQyxRQUFvQ0UsT0FBN0JOLGNBQWEsa0JBQXlCLE9BQVRNLFVBQVM7WUFDbEUsT0FBTztnQkFDTCxJQUFNSSxRQUFPVixjQUFlLEdBQUc7Z0JBRS9CSyxXQUFXTSxpQkFBUSxDQUFDQyxlQUFlLENBQUNKLE9BQU1FO1lBQzVDLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSUwsYUFBYSxJQUFJLEVBQUU7WUFDckJYLFlBQVlvQixXQUFXLENBQUNUO1lBRXhCVixtQkFBbUIsSUFBSTtRQUN6QixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUlBLGtCQUFrQjtRQUNwQkQsWUFBWXFCLElBQUksQ0FBQyxBQUFDLGlCQUErQixPQUFmbEIsZ0JBQWU7SUFDbkQsQ0FBQztJQUVERixtQkFDRUQsWUFBWXNCLFFBQVEsQ0FBQ3hCLGdCQUNuQkUsWUFBWXVCLElBQUksQ0FBQ3pCLGFBQWE7SUFFbEMsT0FBT0c7QUFDVCJ9
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnkvdmFyaWFibGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBWYXJpYWJsZSBmcm9tIFwiLi4vdmFyaWFibGVcIjtcblxuaW1wb3J0IHsgb2JqZWN0VHlwZSB9IGZyb20gXCIuLi90eXBlXCI7XG5pbXBvcnQgeyB0eXBlTmFtZUZyb21UeXBlTm9kZSwgdmFyaWFibGVOYW1lRnJvbVZhcmlhYmxlTm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvcXVlcnlcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmVyaWZ5VmFyaWFibGUodmFyaWFibGVOb2RlLCB0eXBlTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgbGV0IHZhcmlhYmxlVmVyaWZpZWQgPSBmYWxzZTtcblxuICBjb25zdCB2YXJpYWJsZU5hbWUgPSB2YXJpYWJsZU5hbWVGcm9tVmFyaWFibGVOb2RlKHZhcmlhYmxlTm9kZSksXG4gICAgICAgIHZhcmlhYmxlU3RyaW5nID0gZmlsZUNvbnRleHQubm9kZUFzU3RyaW5nKHZhcmlhYmxlTm9kZSksXG4gICAgICAgIHZhcmlhYmxlUHJlc2VudCA9IGZpbGVDb250ZXh0LmlzVmFyaWFibGVQcmVzZW50QnlWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lKTtcblxuICBpZiAodmFyaWFibGVQcmVzZW50KSB7XG4gICAgZmlsZUNvbnRleHQuZXJyb3IoYFRoZSB2YXJpYWJsZSAnJHt2YXJpYWJsZU5hbWV9JyBpcyBhbHJlYWR5IHByZXNlbnQuYCwgdmFyaWFibGVOb2RlKTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgdmFyaWFibGU7XG5cbiAgICBjb25zdCB0eXBlTmFtZSA9IHR5cGVOYW1lRnJvbVR5cGVOb2RlKHR5cGVOb2RlKTtcbiAgICBcbiAgICBpZiAodHlwZU5hbWUgPT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHR5cGUgPSBvYmplY3RUeXBlLFxuICAgICAgICAgICAgbmFtZSA9IHZhcmlhYmxlTmFtZTsgIC8vL1xuXG4gICAgICB2YXJpYWJsZSA9IFZhcmlhYmxlLmZyb21UeXBlQW5kTmFtZSh0eXBlLCBuYW1lKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdHlwZSA9IGZpbGVDb250ZXh0LmZpbmRUeXBlQnlUeXBlTmFtZSh0eXBlTmFtZSk7XG5cbiAgICAgIGlmICh0eXBlID09PSBudWxsKSB7XG4gICAgICAgIGZpbGVDb250ZXh0LmVycm9yKGBUaGUgJyR7dmFyaWFibGVOYW1lfScgdmFyaWFibGUncyAnJHt0eXBlTmFtZX0nIHR5cGUgaXMgbm90IHByZXNlbnQuYCwgdmFyaWFibGVOb2RlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSB2YXJpYWJsZU5hbWU7ICAvLy9cblxuICAgICAgICB2YXJpYWJsZSA9IFZhcmlhYmxlLmZyb21UeXBlQW5kTmFtZSh0eXBlLCBuYW1lKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodmFyaWFibGUgIT09IG51bGwpIHtcbiAgICAgIGZpbGVDb250ZXh0LmFkZFZhcmlhYmxlKHZhcmlhYmxlKTtcblxuICAgICAgdmFyaWFibGVWZXJpZmllZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgaWYgKHZhcmlhYmxlVmVyaWZpZWQpIHtcbiAgICBmaWxlQ29udGV4dC5pbmZvKGBWZXJpZmllZCB0aGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZS5gLCB2YXJpYWJsZU5vZGUpO1xuICB9XG5cbiAgcmV0dXJuIHZhcmlhYmxlVmVyaWZpZWQ7XG59XG4iXSwibmFtZXMiOlsidmVyaWZ5VmFyaWFibGUiLCJ2YXJpYWJsZU5vZGUiLCJ0eXBlTm9kZSIsImZpbGVDb250ZXh0IiwidmFyaWFibGVWZXJpZmllZCIsInZhcmlhYmxlTmFtZSIsInZhcmlhYmxlTmFtZUZyb21WYXJpYWJsZU5vZGUiLCJ2YXJpYWJsZVN0cmluZyIsIm5vZGVBc1N0cmluZyIsInZhcmlhYmxlUHJlc2VudCIsImlzVmFyaWFibGVQcmVzZW50QnlWYXJpYWJsZU5hbWUiLCJlcnJvciIsInZhcmlhYmxlIiwidHlwZU5hbWUiLCJ0eXBlTmFtZUZyb21UeXBlTm9kZSIsInR5cGUiLCJvYmplY3RUeXBlIiwibmFtZSIsIlZhcmlhYmxlIiwiZnJvbVR5cGVBbmROYW1lIiwiZmluZFR5cGVCeVR5cGVOYW1lIiwiYWRkVmFyaWFibGUiLCJpbmZvIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFPQTs7O2VBQXdCQTs7OzZEQUxIO29CQUVNO3FCQUN3Qzs7Ozs7O0FBRXBELFNBQVNBLGVBQWVDLFlBQVksRUFBRUMsUUFBUSxFQUFFQyxXQUFXLEVBQUU7SUFDMUUsSUFBSUMsbUJBQW1CLEtBQUs7SUFFNUIsSUFBTUMsZUFBZUMsSUFBQUEsbUNBQTRCLEVBQUNMLGVBQzVDTSxpQkFBaUJKLFlBQVlLLFlBQVksQ0FBQ1AsZUFDMUNRLGtCQUFrQk4sWUFBWU8sK0JBQStCLENBQUNMO0lBRXBFLElBQUlJLGlCQUFpQjtRQUNuQk4sWUFBWVEsS0FBSyxDQUFDLEFBQUMsaUJBQTZCLE9BQWJOLGNBQWEsMEJBQXdCSjtJQUMxRSxPQUFPO1FBQ0wsSUFBSVc7UUFFSixJQUFNQyxXQUFXQyxJQUFBQSwyQkFBb0IsRUFBQ1o7UUFFdEMsSUFBSVcsYUFBYSxJQUFJLEVBQUU7WUFDckIsSUFBTUUsT0FBT0MsZ0JBQVUsRUFDakJDLE9BQU9aLGNBQWUsR0FBRztZQUUvQk8sV0FBV00saUJBQVEsQ0FBQ0MsZUFBZSxDQUFDSixNQUFNRTtRQUM1QyxPQUFPO1lBQ0wsSUFBTUYsUUFBT1osWUFBWWlCLGtCQUFrQixDQUFDUDtZQUU1QyxJQUFJRSxVQUFTLElBQUksRUFBRTtnQkFDakJaLFlBQVlRLEtBQUssQ0FBQyxBQUFDLFFBQW9DRSxPQUE3QlIsY0FBYSxrQkFBeUIsT0FBVFEsVUFBUywyQkFBeUJaO1lBQzNGLE9BQU87Z0JBQ0wsSUFBTWdCLFFBQU9aLGNBQWUsR0FBRztnQkFFL0JPLFdBQVdNLGlCQUFRLENBQUNDLGVBQWUsQ0FBQ0osT0FBTUU7WUFDNUMsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJTCxhQUFhLElBQUksRUFBRTtZQUNyQlQsWUFBWWtCLFdBQVcsQ0FBQ1Q7WUFFeEJSLG1CQUFtQixJQUFJO1FBQ3pCLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSUEsa0JBQWtCO1FBQ3BCRCxZQUFZbUIsSUFBSSxDQUFDLEFBQUMsaUJBQStCLE9BQWZmLGdCQUFlLGdCQUFjTjtJQUNqRSxDQUFDO0lBRUQsT0FBT0c7QUFDVCJ9
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-verify-cli",
3
3
  "author": "James Smith",
4
- "version": "0.0.527",
4
+ "version": "0.0.529",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-verify-cli",
7
7
  "description": "Occam's Verifier",
package/src/axiom.js CHANGED
@@ -7,7 +7,7 @@ import { AXIOM_KIND } from "./kinds";
7
7
  export default class Axiom extends AxiomLemmaTheoremConjecture {
8
8
  static kind = AXIOM_KIND;
9
9
 
10
- static fromJSON(json, releaseContext) { return AxiomLemmaTheoremConjecture.fromJSON(Axiom, json, releaseContext); }
10
+ static fromJSON(json, lexer, parser) { return AxiomLemmaTheoremConjecture.fromJSON(Axiom, json, lexer, parser); }
11
11
 
12
12
  static fromLabelsSuppositionsAndConsequence(labels, suppositions, consequence) { return AxiomLemmaTheoremConjecture.fromLabelsSuppositionsAndConsequence(Axiom, labels, suppositions, consequence); }
13
13
  }
@@ -90,14 +90,14 @@ export default class AxiomLemmaTheoremConjecture {
90
90
  return json;
91
91
  }
92
92
 
93
- static fromJSON(Class, json, releaseContext) {
93
+ static fromJSON(Class, json, lexer, parser) {
94
94
  let { labels } = json;
95
95
 
96
96
  const labelsJSON = labels; ///
97
97
 
98
98
  labels = labelsJSON.map((labelJSON) => {
99
99
  const json = labelJSON, ///
100
- label = Label.fromJSON(json, releaseContext);
100
+ label = Label.fromJSON(json, lexer, parser);
101
101
 
102
102
  return label;
103
103
  });
@@ -108,7 +108,7 @@ export default class AxiomLemmaTheoremConjecture {
108
108
 
109
109
  suppositions = suppositionsJSON.map((suppositionJSON) => {
110
110
  const json = suppositionJSON, ///
111
- supposition = Supposition.fromJSON(json, releaseContext);
111
+ supposition = Supposition.fromJSON(json, lexer, parser);
112
112
 
113
113
  return supposition;
114
114
  });
@@ -119,7 +119,7 @@ export default class AxiomLemmaTheoremConjecture {
119
119
 
120
120
  json = consequenceJSON; ///
121
121
 
122
- consequence = Consequence.fromJSON(json, releaseContext);
122
+ consequence = Consequence.fromJSON(json, lexer, parser);
123
123
 
124
124
  return new Class(labels, suppositions, consequence); ///
125
125
  }
package/src/combinator.js CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { nodeAsString } from "./utilities/string";
4
4
  import { COMBINATOR_KIND } from "./kinds";
5
- import { statementNodeFromStatementString } from "./utilities/string";
5
+ import { statementNodeFromStatementString } from "./utilities/node";
6
6
 
7
7
  export default class Combinator {
8
8
  constructor(statementNode) {
@@ -35,10 +35,10 @@ export default class Combinator {
35
35
  return json;
36
36
  }
37
37
 
38
- static fromJSON(json, releaseContext) {
38
+ static fromJSON(json, lexer, parser) {
39
39
  const { statement } = json,
40
40
  statementString = statement, ///
41
- statementNode = statementNodeFromStatementString(statementString, releaseContext),
41
+ statementNode = statementNodeFromStatementString(statementString, lexer, parser),
42
42
  combinator = new Combinator(statementNode);
43
43
 
44
44
  return combinator;
package/src/conclusion.js CHANGED
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
 
3
3
  import { nodeAsString } from "./utilities/string";
4
- import { metastatementNodeFromMetastatementString } from "./utilities/string";
5
- import { conclusionStatementForMetavariableMatcher } from "./matcher/statementForMetavariable/conclusion";
6
- import { conclusionMetastatementForMetavariableMatcher } from "./matcher/metastatementForMetavariable/conclusion";
4
+ import { metastatementNodeFromMetastatementString } from "./utilities/node";
5
+ import { conclusionStatementForMetavariableVerifier } from "./verifier/statementForMetavariable/conclusion";
6
+ import { conclusionMetastatementForMetavariableVerifier } from "./verifier/metastatementForMetavariable/conclusion";
7
7
 
8
8
  export default class Conclusion {
9
9
  constructor(metastatementNode) {
@@ -17,7 +17,7 @@ export default class Conclusion {
17
17
  matchStatementNode(statementNode, substitutions) {
18
18
  const nonTerminalNodeA = this.metastatementNode, ///
19
19
  nonTerminalNodeB = statementNode, ///
20
- nonTerminalNodeMatches = conclusionStatementForMetavariableMatcher.matchNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions),
20
+ nonTerminalNodeMatches = conclusionStatementForMetavariableVerifier.matchNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions),
21
21
  statementNodeMatches = nonTerminalNodeMatches; ///
22
22
 
23
23
  return statementNodeMatches;
@@ -26,7 +26,7 @@ export default class Conclusion {
26
26
  matchMetastatementNode(metastatementNode, substitutions) {
27
27
  const nonTerminalNodeA = this.metastatementNode, ///
28
28
  nonTerminalNodeB = metastatementNode, ///
29
- nonTerminalNodeMatches = conclusionMetastatementForMetavariableMatcher.matchNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions),
29
+ nonTerminalNodeMatches = conclusionMetastatementForMetavariableVerifier.matchNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions),
30
30
  metastatementNodeMatches = nonTerminalNodeMatches; ///
31
31
 
32
32
  return metastatementNodeMatches;
@@ -42,10 +42,10 @@ export default class Conclusion {
42
42
  return json;
43
43
  }
44
44
 
45
- static fromJSON(json, releaseContext) {
45
+ static fromJSON(json, lexer, parser) {
46
46
  const { metastatement } = json,
47
47
  metastatementString = metastatement, ///
48
- metastatementNode = metastatementNodeFromMetastatementString(metastatementString, releaseContext),
48
+ metastatementNode = metastatementNodeFromMetastatementString(metastatementString, lexer, parser),
49
49
  conclusion = new Conclusion(metastatementNode);
50
50
 
51
51
  return conclusion;
package/src/conjecture.js CHANGED
@@ -7,7 +7,7 @@ import { CONJECTURE_KIND } from "./kinds";
7
7
  export default class Conjecture extends AxiomLemmaTheoremConjecture {
8
8
  static kind = CONJECTURE_KIND;
9
9
 
10
- static fromJSON(json, releaseContext) { return AxiomLemmaTheoremConjecture.fromJSON(Conjecture, json, releaseContext); }
10
+ static fromJSON(json, lexer, parser) { return AxiomLemmaTheoremConjecture.fromJSON(Conjecture, json, lexer, parser); }
11
11
 
12
12
  static fromLabelsSuppositionsAndConsequence(labels, suppositions, consequence) { return AxiomLemmaTheoremConjecture.fromLabelsSuppositionsAndConsequence(Conjecture, labels, suppositions, consequence); }
13
13
  }
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
 
3
3
  import { nodeAsString } from "./utilities/string";
4
- import { statementNodeFromStatementString } from "./utilities/string";
5
- import { consequenceTermForVariableMatcher } from "./matcher/termForVariable/consequence";
4
+ import { statementNodeFromStatementString } from "./utilities/node";
5
+ import { consequenceTermForVariableVerifier } from "./verifier/termForVariable/consequence";
6
6
 
7
7
  export default class Consequence {
8
8
  constructor(statementNode) {
@@ -16,7 +16,7 @@ export default class Consequence {
16
16
  matchStatementNode(statementNode, substitutions) {
17
17
  const nonTerminalNodeA = this.statementNode, ///
18
18
  nonTerminalNodeB = statementNode, ///
19
- nonTerminalNodeMatches = consequenceTermForVariableMatcher.matchNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions),
19
+ nonTerminalNodeMatches = consequenceTermForVariableVerifier.matchNonTerminalNode(nonTerminalNodeA, nonTerminalNodeB, substitutions),
20
20
  statementNodeMatches = nonTerminalNodeMatches; ///
21
21
 
22
22
  return statementNodeMatches;
@@ -32,10 +32,10 @@ export default class Consequence {
32
32
  return json;
33
33
  }
34
34
 
35
- static fromJSON(json, releaseContext) {
35
+ static fromJSON(json, lexer, parser) {
36
36
  const { statement } = json,
37
37
  statementString = statement, ///
38
- statementNode = statementNodeFromStatementString(statementString, releaseContext),
38
+ statementNode = statementNodeFromStatementString(statementString, lexer, parser),
39
39
  consequence = new Consequence(statementNode);
40
40
 
41
41
  return consequence;
package/src/constants.js CHANGED
@@ -2,9 +2,8 @@
2
2
 
3
3
  export const COMMA = ',';
4
4
  export const EMPTY_STRING = "";
5
- export const LEFT_BRACKET = "(";
6
- export const RIGHT_BRACKET = ")";
7
5
  export const EQUALITY_DEPTH = 2;
8
6
  export const MAXIMUM_INDEXES_LENGTH = 10;
7
+ export const BRACKETED_STATEMENT_DEPTH = 2;
9
8
  export const MAXIMUM_PERMUTATION_LENGTH = 5;
10
- export const BRACKETED_CHILD_NODES_LENGTH = 3;
9
+ export const BRACKETED_METASTATEMENT_DEPTH = 1;
@@ -4,7 +4,7 @@ import Type from "./type";
4
4
 
5
5
  import { nodeAsString } from "./utilities/string";
6
6
  import { CONSTRUCTOR_KIND } from "./kinds";
7
- import { termNodeFromTermString } from "./utilities/string";
7
+ import { termNodeFromTermString } from "./utilities/node";
8
8
 
9
9
  export default class Constructor {
10
10
  constructor(termNode, type) {
@@ -54,10 +54,10 @@ export default class Constructor {
54
54
  return json;
55
55
  }
56
56
 
57
- static fromJSON(json, releaseContext) {
57
+ static fromJSON(json, lexer, parser) {
58
58
  const { term } = json,
59
59
  termString = term, ///
60
- termNode = termNodeFromTermString(termString, releaseContext);
60
+ termNode = termNodeFromTermString(termString, lexer, parser);
61
61
 
62
62
  let { type } = json;
63
63
 
@@ -66,7 +66,7 @@ export default class Constructor {
66
66
 
67
67
  json = typeJSON; ///
68
68
 
69
- type = Type.fromJSON(json, releaseContext);
69
+ type = Type.fromJSON(json, lexer, parser);
70
70
 
71
71
  const typeName = type.getName();
72
72
 
@@ -4,7 +4,6 @@ import { rewriteNodes } from "occam-grammar-utilities";
4
4
 
5
5
  import { push } from "../utilities/array";
6
6
  import { nodeAsString, nodesAsString } from "../utilities/string";
7
- import { leastLineIndexFromNodeAndTokens, greatestLineIndexFromNodeAndTokens } from "../utilities/tokens";
8
7
 
9
8
  export default class FileContext {
10
9
  constructor(releaseContext, filePath, tokens, node, types, rules, axioms, lemmas, theorems, conjectures, combinators, constructors, variables, metavariables) {
@@ -12,7 +11,6 @@ export default class FileContext {
12
11
  this.filePath = filePath;
13
12
  this.tokens = tokens;
14
13
  this.node = node;
15
-
16
14
  this.types = types;
17
15
  this.rules = rules;
18
16
  this.axioms = axioms;
@@ -21,7 +19,6 @@ export default class FileContext {
21
19
  this.conjectures = conjectures;
22
20
  this.combinators = combinators;
23
21
  this.constructors = constructors;
24
-
25
22
  this.variables = variables;
26
23
  this.metavariables = metavariables;
27
24
  }
@@ -392,38 +389,17 @@ export default class FileContext {
392
389
  this.constructors.push(constructor);
393
390
  }
394
391
 
395
- trace(message) { this.releaseContext.trace(message); }
396
-
397
- debug(message) { this.releaseContext.debug(message); }
392
+ trace(message, node) { this.releaseContext.trace(message, node, this.tokens, this.filePath); }
398
393
 
399
- info(message) { this.releaseContext.info(message); }
394
+ debug(message, node) { this.releaseContext.debug(message, node, this.tokens, this.filePath); }
400
395
 
401
- warning(message) { this.releaseContext.warning(message); }
396
+ info(message, node) { this.releaseContext.info(message, node, this.tokens, this.filePath); }
402
397
 
403
- error(message) { this.releaseContext.error(message); }
398
+ warning(message, node) { this.releaseContext.warning(message, node, this.tokens, this.filePath); }
404
399
 
405
- fatal(message) { this.releaseContext.fatal(message); }
406
-
407
- halt(node) {
408
- const leastLineIndex = leastLineIndexFromNodeAndTokens(node, this.tokens),
409
- greatestLineIndex = greatestLineIndexFromNodeAndTokens(node, this.tokens);
410
-
411
- this.releaseContext.halt(this.filePath, leastLineIndex, greatestLineIndex);
412
- }
400
+ error(message, node) { this.releaseContext.error(message, node, this.tokens, this.filePath); }
413
401
 
414
- begin(node) {
415
- const leastLineIndex = leastLineIndexFromNodeAndTokens(node, this.tokens),
416
- greatestLineIndex = greatestLineIndexFromNodeAndTokens(node, this.tokens);
417
-
418
- this.releaseContext.begin(this.filePath, leastLineIndex, greatestLineIndex);
419
- }
420
-
421
- complete(node) {
422
- const leastLineIndex = leastLineIndexFromNodeAndTokens(node, this.tokens),
423
- greatestLineIndex = greatestLineIndexFromNodeAndTokens(node, this.tokens);
424
-
425
- this.releaseContext.complete(this.filePath, leastLineIndex, greatestLineIndex);
426
- }
402
+ fatal(message, node) { this.releaseContext.fatal(message, node, this.tokens, this.filePath); }
427
403
 
428
404
  toJSON() {
429
405
  const json = [];
@@ -2,7 +2,6 @@
2
2
 
3
3
  import fileMixins from "../mixins/file";
4
4
  import loggingMixins from "../mixins/logging";
5
- import callbacksMixins from "../mixins/callbacks";
6
5
 
7
6
  import { push, last } from "../utilities/array";
8
7
 
@@ -63,15 +62,19 @@ class MetaproofContext {
63
62
  }
64
63
 
65
64
  matchMetastatement(metastatementNode) {
66
- let metastatementMatches;
65
+ let metastatementMatches = false;
67
66
 
68
- metastatementMatches = this.metaproofSteps.some((metaproofStep) => {
69
- metastatementMatches = metaproofStep.matchMetastatement(metastatementNode);
67
+ if (!metastatementMatches) {
68
+ const proofStepMatchesMetastatement = this.metaproofSteps.some((metaproofStep) => {
69
+ const proofStepMatchesMetastatement = metaproofStep.match(metastatementNode);
70
+
71
+ if (proofStepMatchesMetastatement) {
72
+ return true;
73
+ }
74
+ });
70
75
 
71
- if (metastatementMatches) {
72
- return true;
73
- }
74
- });
76
+ metastatementMatches = proofStepMatchesMetastatement; ///
77
+ }
75
78
 
76
79
  if (!metastatementMatches) {
77
80
  metastatementMatches = this.context.matchMetastatement(metastatementNode);
@@ -103,8 +106,9 @@ class MetaproofContext {
103
106
 
104
107
  static fromFileContext(fileContext) {
105
108
  const context = fileContext, ///
109
+ metavariables = [],
106
110
  metaproofSteps = [],
107
- metaproofContext = new MetaproofContext(context, metaproofSteps);
111
+ metaproofContext = new MetaproofContext(context, metavariables, metaproofSteps);
108
112
 
109
113
  return metaproofContext;
110
114
  }
@@ -122,6 +126,5 @@ class MetaproofContext {
122
126
 
123
127
  Object.assign(MetaproofContext.prototype, fileMixins);
124
128
  Object.assign(MetaproofContext.prototype, loggingMixins);
125
- Object.assign(MetaproofContext.prototype, callbacksMixins);
126
129
 
127
130
  export default MetaproofContext;
@@ -3,7 +3,6 @@
3
3
  import Equality from "../equality";
4
4
  import fileMixins from "../mixins/file";
5
5
  import loggingMixins from "../mixins/logging";
6
- import callbacksMixins from "../mixins/callbacks";
7
6
 
8
7
  import { push, last } from "../utilities/array";
9
8
  import { MAXIMUM_INDEXES_LENGTH } from "../constants";
@@ -81,15 +80,19 @@ class ProofContext {
81
80
  }
82
81
 
83
82
  matchStatement(statementNode) {
84
- let statementMatches;
83
+ let statementMatches = false;
85
84
 
86
- statementMatches = this.proofSteps.some((proofStep) => {
87
- statementMatches = proofStep.matchStatement(statementNode);
85
+ if (!statementMatches) {
86
+ const proofStepMatchesStatement = this.proofSteps.some((proofStep) => {
87
+ const proofStepMatchesStatement = proofStep.match(statementNode);
88
88
 
89
- if (statementMatches) {
90
- return true;
91
- }
92
- });
89
+ if (proofStepMatchesStatement) {
90
+ return true;
91
+ }
92
+ });
93
+
94
+ statementMatches = proofStepMatchesStatement; ///
95
+ }
93
96
 
94
97
  if (!statementMatches) {
95
98
  statementMatches = this.context.matchStatement(statementNode);
@@ -141,7 +144,6 @@ class ProofContext {
141
144
 
142
145
  Object.assign(ProofContext.prototype, fileMixins);
143
146
  Object.assign(ProofContext.prototype, loggingMixins);
144
- Object.assign(ProofContext.prototype, callbacksMixins);
145
147
 
146
148
  export default ProofContext;
147
149
 
@@ -6,8 +6,8 @@ import { push } from "../../utilities/array";
6
6
  import { customGrammarFromNameAndEntries } from "../../utilities/customGrammar";
7
7
 
8
8
  export default class DirectoryReleaseContext extends ReleaseContext {
9
- constructor(log, name, entries, callbacks, verified, customGrammar, florenceLexer, florenceParser, dependencyReleaseContexts, fileContexts) {
10
- super(log, name, entries, callbacks, verified, customGrammar, florenceLexer, florenceParser, dependencyReleaseContexts);
9
+ constructor(log, name, entries, lexer, parser, verified, customGrammar, dependencyReleaseContexts, fileContexts) {
10
+ super(log, name, entries, lexer, parser, verified, customGrammar, dependencyReleaseContexts);
11
11
 
12
12
  this.fileContexts = fileContexts;
13
13
  }
@@ -237,14 +237,14 @@ export default class DirectoryReleaseContext extends ReleaseContext {
237
237
  return json;
238
238
  }
239
239
 
240
- static fromLogNameEntriesAndCallbacks(log, name, entries, callbacks) {
241
- const verified = false,
240
+ static fromLogNameAndEntries(log, name, entries) {
241
+ const lexer = null,
242
+ parser = null,
243
+ verified = false,
242
244
  customGrammar = customGrammarFromNameAndEntries(name, entries),
243
- florenceLexer = null,
244
- florenceParser = null,
245
245
  dependencyReleaseContexts = null,
246
246
  fileContexts = [],
247
- directoryReleaseContext = new DirectoryReleaseContext(log, name, entries, callbacks, verified, customGrammar, florenceLexer, florenceParser, dependencyReleaseContexts, fileContexts);
247
+ directoryReleaseContext = new DirectoryReleaseContext(log, name, entries, lexer, parser, verified, customGrammar, dependencyReleaseContexts, fileContexts);
248
248
 
249
249
  return directoryReleaseContext;
250
250
  }