occam-furtle 3.0.39 → 3.0.40

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 (164) hide show
  1. package/lib/constants.js +1 -28
  2. package/lib/context/block.js +6 -7
  3. package/lib/context/file/furtle.js +6 -12
  4. package/lib/element/assignment/array.js +3 -3
  5. package/lib/element/assignment/object.js +3 -3
  6. package/lib/element/assignment/variable.js +3 -8
  7. package/lib/element/assignments/variable.js +3 -8
  8. package/lib/element/declaration/procedure.js +3 -8
  9. package/lib/element/error.js +3 -8
  10. package/lib/element/every.js +5 -5
  11. package/lib/element/expression.js +3 -8
  12. package/lib/element/label.js +3 -8
  13. package/lib/element/nodeQuery.js +3 -3
  14. package/lib/element/nodesQuery.js +3 -3
  15. package/lib/element/parameter/named.js +3 -3
  16. package/lib/element/parameter.js +3 -3
  17. package/lib/element/parameters/named.js +3 -3
  18. package/lib/element/parameters.js +3 -3
  19. package/lib/element/primitive.js +3 -3
  20. package/lib/element/procedure/anonymous.js +3 -3
  21. package/lib/element/procedure.js +3 -3
  22. package/lib/element/procedureCall.js +3 -3
  23. package/lib/element/reduce.js +3 -3
  24. package/lib/element/reference.js +3 -8
  25. package/lib/element/returnBlock.js +3 -3
  26. package/lib/element/some.js +3 -3
  27. package/lib/element/statement/return.js +3 -8
  28. package/lib/element/step.js +3 -8
  29. package/lib/element/term/bracketed.js +3 -8
  30. package/lib/element/term/comparison.js +3 -3
  31. package/lib/element/term/logical.js +3 -3
  32. package/lib/element/term/negated.js +3 -3
  33. package/lib/element/term.js +3 -8
  34. package/lib/element/terms.js +3 -8
  35. package/lib/element/ternary.js +3 -3
  36. package/lib/element/variable.js +3 -3
  37. package/lib/example/view.js +3 -4
  38. package/lib/furtle/parser.js +3 -3
  39. package/lib/index.js +7 -43
  40. package/lib/node/assignment.js +4 -9
  41. package/lib/node/assignments.js +4 -9
  42. package/lib/node/declaration.js +4 -9
  43. package/lib/node/document.js +4 -9
  44. package/lib/node/error.js +4 -9
  45. package/lib/node/every.js +4 -9
  46. package/lib/node/expression.js +4 -9
  47. package/lib/node/label.js +4 -9
  48. package/lib/node/nodeQuery.js +4 -9
  49. package/lib/node/nodesQuery.js +4 -9
  50. package/lib/node/nonsense.js +4 -9
  51. package/lib/node/parameter.js +4 -9
  52. package/lib/node/parameters.js +4 -9
  53. package/lib/node/primitive.js +4 -4
  54. package/lib/node/procedure.js +4 -9
  55. package/lib/node/procedureCall.js +4 -9
  56. package/lib/node/reduce.js +4 -9
  57. package/lib/node/reference.js +4 -9
  58. package/lib/node/returnBlock.js +4 -9
  59. package/lib/node/some.js +4 -9
  60. package/lib/node/statement.js +4 -9
  61. package/lib/node/step.js +4 -9
  62. package/lib/node/term.js +4 -9
  63. package/lib/node/terms.js +4 -9
  64. package/lib/node/ternary.js +4 -9
  65. package/lib/node/variable.js +4 -9
  66. package/lib/process/verify.js +5 -161
  67. package/package.json +7 -7
  68. package/src/constants.js +0 -12
  69. package/src/context/block.js +3 -4
  70. package/src/context/file/furtle.js +3 -4
  71. package/src/element/assignment/array.js +2 -1
  72. package/src/element/assignment/object.js +2 -1
  73. package/src/element/assignment/variable.js +1 -1
  74. package/src/element/assignments/variable.js +2 -2
  75. package/src/element/declaration/procedure.js +2 -2
  76. package/src/element/error.js +2 -2
  77. package/src/element/every.js +4 -2
  78. package/src/element/expression.js +1 -1
  79. package/src/element/label.js +1 -1
  80. package/src/element/nodeQuery.js +1 -1
  81. package/src/element/nodesQuery.js +2 -1
  82. package/src/element/parameter/named.js +2 -2
  83. package/src/element/parameter.js +2 -1
  84. package/src/element/parameters/named.js +2 -2
  85. package/src/element/parameters.js +2 -1
  86. package/src/element/primitive.js +1 -1
  87. package/src/element/procedure/anonymous.js +2 -1
  88. package/src/element/procedure.js +2 -1
  89. package/src/element/procedureCall.js +2 -1
  90. package/src/element/reduce.js +2 -1
  91. package/src/element/reference.js +1 -1
  92. package/src/element/returnBlock.js +2 -1
  93. package/src/element/some.js +2 -1
  94. package/src/element/statement/return.js +2 -2
  95. package/src/element/step.js +1 -1
  96. package/src/element/term/bracketed.js +2 -2
  97. package/src/element/term/comparison.js +2 -1
  98. package/src/element/term/logical.js +2 -1
  99. package/src/element/term/negated.js +2 -1
  100. package/src/element/term.js +1 -1
  101. package/src/element/terms.js +1 -1
  102. package/src/element/ternary.js +2 -1
  103. package/src/element/variable.js +2 -1
  104. package/src/example/view.js +1 -2
  105. package/src/furtle/parser.js +2 -1
  106. package/src/index.js +2 -11
  107. package/src/node/assignment.js +1 -1
  108. package/src/node/assignments.js +1 -1
  109. package/src/node/declaration.js +1 -1
  110. package/src/node/document.js +1 -1
  111. package/src/node/error.js +1 -1
  112. package/src/node/every.js +1 -1
  113. package/src/node/expression.js +1 -1
  114. package/src/node/label.js +1 -1
  115. package/src/node/nodeQuery.js +1 -1
  116. package/src/node/nodesQuery.js +1 -1
  117. package/src/node/nonsense.js +1 -1
  118. package/src/node/parameter.js +1 -1
  119. package/src/node/parameters.js +1 -1
  120. package/src/node/primitive.js +2 -1
  121. package/src/node/procedure.js +1 -1
  122. package/src/node/procedureCall.js +1 -1
  123. package/src/node/reduce.js +1 -1
  124. package/src/node/reference.js +1 -1
  125. package/src/node/returnBlock.js +1 -1
  126. package/src/node/some.js +1 -1
  127. package/src/node/statement.js +1 -1
  128. package/src/node/step.js +1 -1
  129. package/src/node/term.js +1 -1
  130. package/src/node/terms.js +1 -1
  131. package/src/node/ternary.js +1 -2
  132. package/src/node/variable.js +1 -1
  133. package/src/process/verify.js +2 -98
  134. package/{src → test}/context/file/nominal.js +5 -3
  135. package/test/file/furtle.js +14 -0
  136. package/test/file/nominal.js +15 -0
  137. package/test/helpers/nominal.js +32 -0
  138. package/lib/context/file/nominal.js +0 -272
  139. package/lib/context/file.js +0 -456
  140. package/lib/context/release.js +0 -446
  141. package/lib/context.js +0 -141
  142. package/lib/element.js +0 -207
  143. package/lib/log.js +0 -195
  144. package/lib/nonTerminalNode.js +0 -236
  145. package/lib/utilities/asynchronous.js +0 -458
  146. package/lib/utilities/context.js +0 -34
  147. package/lib/utilities/customGrammar.js +0 -55
  148. package/lib/utilities/lineIndex.js +0 -26
  149. package/lib/utilities/node.js +0 -78
  150. package/lib/utilities/nominal.js +0 -42
  151. package/lib/utilities/query.js +0 -43
  152. package/src/context/file.js +0 -149
  153. package/src/context/release.js +0 -222
  154. package/src/context.js +0 -42
  155. package/src/element.js +0 -27
  156. package/src/log.js +0 -132
  157. package/src/nonTerminalNode.js +0 -151
  158. package/src/utilities/asynchronous.js +0 -121
  159. package/src/utilities/context.js +0 -19
  160. package/src/utilities/customGrammar.js +0 -54
  161. package/src/utilities/lineIndex.js +0 -21
  162. package/src/utilities/node.js +0 -90
  163. package/src/utilities/nominal.js +0 -31
  164. package/src/utilities/query.js +0 -30
@@ -1,42 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: Object.getOwnPropertyDescriptor(all, name).get
9
- });
10
- }
11
- _export(exports, {
12
- get nominalLexer () {
13
- return nominalLexer;
14
- },
15
- get nominalParser () {
16
- return nominalParser;
17
- }
18
- });
19
- var _occamnominal = require("occam-nominal");
20
- var _constants = require("../constants");
21
- var _customGrammar = require("../utilities/customGrammar");
22
- var nominalLexerFromCombinedCustomGrammar = _occamnominal.lexersUtilities.nominalLexerFromCombinedCustomGrammar, nominalParserFromStartRuleNameAndCombinedCustomGrammar = _occamnominal.parsersUtilities.nominalParserFromStartRuleNameAndCombinedCustomGrammar;
23
- var startRuleName = _constants.STATEMENT_RULE_NAME, combinedCustomGrammar = (0, _customGrammar.combinedCustomGrammarFromJSON)([
24
- {
25
- "name": "Default",
26
- "termBNF": "term ::= \"(\" argument \")\"\n\n | variable \n \n ;",
27
- "statementBNF": "statement ::= \"(\" metaArgument \")\" \n \n | equality\n\n | judgement\n\n | typeAssertion \n \n | definedAssertion \n\n | containedAssertion \n \n | satisfiesAssertion\n\n | subproofAssertion \n\n | propertyAssertion \n\n | metavariable ( frameSubstitution | termSubstitution )?\n\n ;\n\nequality ::= term \"=\" term ;\n\ntypeAssertion ::= term \":\" type ;\n\ndefinedAssertion ::= ( frame | term ) \"is\" ( \"defined\" | \"undefined\" );\n\ncontainedAssertion ::= ( frame | term ) \"is\" ( \"present\" | \"missing\" ) \"in\" statement ;\n\nsatisfiesAssertion ::= signature \"satisfies\" metavariable ; \n\nsubproofAssertion ::= \"[\" statement ( \",\" statement )* \"]\" \"...\" statement ;\n\npropertyAssertion ::= term \"is\" ( \"a\" | \"an\" ) propertyRelation ;\n\npropertyRelation ::= property \"of\" term ;\n\njudgement ::= frame \"|\"<NO_WHITESPACE>\"-\" declaration ;\n\nframe ::= \"[\" declaration ( \",\" declaration )* \"]\" ;\n \ndeclaration ::= metavariable ( \"::\" statement )? ;\n\ntermSubstitution ::= \"[\" term \"for\" term \"]\";\n\nframeSubstitution ::= \"[\" frame \"for\" frame \"]\";\n\nstatementSubstitution ::= \"[\" statement \"for\" statement \"]\";\n\nreferenceSubstitution ::= \"[\" reference \"for\" reference \"]\";",
28
- "typeVocabulary": "",
29
- "symbolVocabulary": ""
30
- },
31
- {
32
- "name": "first-order-logic",
33
- "termBNF": "",
34
- "statementBNF": "\n\n statement ::= ( \"∀\" | \"∃\" ) ( frameArgument | argument ) metaArgument \n\n | ( frameArgument | argument ) \"is\" ( \"𝘣𝘰𝘶𝘯𝘥\" | \"𝘧𝘳𝘦𝘦\" ) \"in\" metaArgument\n\n ;\n\n",
35
- "typeVocabulary": "",
36
- "symbolVocabulary": "𝘣𝘰𝘶𝘯𝘥\n𝘧𝘳𝘦𝘦\n∀\n∃\n"
37
- }
38
- ]);
39
- var nominalLexer = nominalLexerFromCombinedCustomGrammar(combinedCustomGrammar);
40
- var nominalParser = nominalParserFromStartRuleNameAndCombinedCustomGrammar(startRuleName, combinedCustomGrammar);
41
-
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbm9taW5hbC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgbGV4ZXJzVXRpbGl0aWVzLCBwYXJzZXJzVXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLW5vbWluYWxcIjtcblxuaW1wb3J0IHsgU1RBVEVNRU5UX1JVTEVfTkFNRSB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGNvbWJpbmVkQ3VzdG9tR3JhbW1hckZyb21KU09OIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jdXN0b21HcmFtbWFyXCI7XG5cbmNvbnN0IHsgbm9taW5hbExleGVyRnJvbUNvbWJpbmVkQ3VzdG9tR3JhbW1hciB9ID0gbGV4ZXJzVXRpbGl0aWVzLFxuICAgICAgeyBub21pbmFsUGFyc2VyRnJvbVN0YXJ0UnVsZU5hbWVBbmRDb21iaW5lZEN1c3RvbUdyYW1tYXIgfSA9IHBhcnNlcnNVdGlsaXRpZXM7XG5cbmNvbnN0IHN0YXJ0UnVsZU5hbWUgPSBTVEFURU1FTlRfUlVMRV9OQU1FLFxuICAgICAgY29tYmluZWRDdXN0b21HcmFtbWFyID0gY29tYmluZWRDdXN0b21HcmFtbWFyRnJvbUpTT04oW1xuICAgICAgICB7XG4gICAgICAgICAgXCJuYW1lXCI6IFwiRGVmYXVsdFwiLFxuICAgICAgICAgIFwidGVybUJORlwiOiBcInRlcm0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIFxcXCIoXFxcIiBhcmd1bWVudCBcXFwiKVxcXCJcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICB2YXJpYWJsZSBcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7XCIsXG4gICAgICAgICAgXCJzdGF0ZW1lbnRCTkZcIjogXCJzdGF0ZW1lbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjo9ICBcXFwiKFxcXCIgbWV0YUFyZ3VtZW50IFxcXCIpXFxcIiBcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGVxdWFsaXR5XFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAganVkZ2VtZW50XFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgdHlwZUFzc2VydGlvbiBcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGRlZmluZWRBc3NlcnRpb24gIFxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGNvbnRhaW5lZEFzc2VydGlvbiAgXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgc2F0aXNmaWVzQXNzZXJ0aW9uXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgc3VicHJvb2ZBc3NlcnRpb24gICAgICAgICBcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBwcm9wZXJ0eUFzc2VydGlvbiAgXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgbWV0YXZhcmlhYmxlICggZnJhbWVTdWJzdGl0dXRpb24gfCB0ZXJtU3Vic3RpdHV0aW9uICk/XFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgO1xcblxcbmVxdWFsaXR5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIHRlcm0gXFxcIj1cXFwiIHRlcm0gO1xcblxcbnR5cGVBc3NlcnRpb24gICAgICAgICAgICAgICAgICAgICAgICA6Oj0gIHRlcm0gXFxcIjpcXFwiIHR5cGUgO1xcblxcbmRlZmluZWRBc3NlcnRpb24gICAgICAgICAgICAgICAgICAgICA6Oj0gICggZnJhbWUgfCB0ZXJtICkgXFxcImlzXFxcIiAoIFxcXCJkZWZpbmVkXFxcIiB8IFxcXCJ1bmRlZmluZWRcXFwiICk7XFxuXFxuY29udGFpbmVkQXNzZXJ0aW9uICAgICAgICAgICAgICAgICAgIDo6PSAgKCBmcmFtZSB8IHRlcm0gKSBcXFwiaXNcXFwiICggXFxcInByZXNlbnRcXFwiIHwgXFxcIm1pc3NpbmdcXFwiICkgXFxcImluXFxcIiBzdGF0ZW1lbnQgO1xcblxcbnNhdGlzZmllc0Fzc2VydGlvbiAgICAgICAgICAgICAgICAgICA6Oj0gIHNpZ25hdHVyZSBcXFwic2F0aXNmaWVzXFxcIiBtZXRhdmFyaWFibGUgOyAgXFxuXFxuc3VicHJvb2ZBc3NlcnRpb24gICAgICAgICAgICAgICAgICAgIDo6PSAgXFxcIltcXFwiIHN0YXRlbWVudCAoIFxcXCIsXFxcIiBzdGF0ZW1lbnQgKSogXFxcIl1cXFwiIFxcXCIuLi5cXFwiIHN0YXRlbWVudCA7XFxuXFxucHJvcGVydHlBc3NlcnRpb24gICAgICAgICAgICAgICAgICAgIDo6PSAgdGVybSBcXFwiaXNcXFwiICggXFxcImFcXFwiIHwgXFxcImFuXFxcIiApIHByb3BlcnR5UmVsYXRpb24gO1xcblxcbnByb3BlcnR5UmVsYXRpb24gICAgICAgICAgICAgICAgICAgICA6Oj0gIHByb3BlcnR5IFxcXCJvZlxcXCIgdGVybSA7XFxuXFxuanVkZ2VtZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgZnJhbWUgXFxcInxcXFwiPE5PX1dISVRFU1BBQ0U+XFxcIi1cXFwiIGRlY2xhcmF0aW9uIDtcXG5cXG5mcmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOjo9ICBcXFwiW1xcXCIgZGVjbGFyYXRpb24gKCBcXFwiLFxcXCIgZGVjbGFyYXRpb24gKSogXFxcIl1cXFwiIDtcXG4gXFxuZGVjbGFyYXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgIDo6PSAgbWV0YXZhcmlhYmxlICggXFxcIjo6XFxcIiBzdGF0ZW1lbnQgKT8gO1xcblxcbnRlcm1TdWJzdGl0dXRpb24gICAgICAgICAgICAgICAgICAgICA6Oj0gIFxcXCJbXFxcIiB0ZXJtIFxcXCJmb3JcXFwiIHRlcm0gXFxcIl1cXFwiO1xcblxcbmZyYW1lU3Vic3RpdHV0aW9uICAgICAgICAgICAgICAgICAgICA6Oj0gIFxcXCJbXFxcIiBmcmFtZSBcXFwiZm9yXFxcIiBmcmFtZSBcXFwiXVxcXCI7XFxuXFxuc3RhdGVtZW50U3Vic3RpdHV0aW9uICAgICAgICAgICAgICAgIDo6PSAgXFxcIltcXFwiIHN0YXRlbWVudCBcXFwiZm9yXFxcIiBzdGF0ZW1lbnQgXFxcIl1cXFwiO1xcblxcbnJlZmVyZW5jZVN1YnN0aXR1dGlvbiAgICAgICAgICAgICAgICA6Oj0gIFxcXCJbXFxcIiByZWZlcmVuY2UgXFxcImZvclxcXCIgcmVmZXJlbmNlIFxcXCJdXFxcIjtcIixcbiAgICAgICAgICBcInR5cGVWb2NhYnVsYXJ5XCI6IFwiXCIsXG4gICAgICAgICAgXCJzeW1ib2xWb2NhYnVsYXJ5XCI6IFwiXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwibmFtZVwiOiBcImZpcnN0LW9yZGVyLWxvZ2ljXCIsXG4gICAgICAgICAgXCJ0ZXJtQk5GXCI6IFwiXCIsXG4gICAgICAgICAgXCJzdGF0ZW1lbnRCTkZcIjogXCJcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZW1lbnQgIDo6PSAgKCBcXFwi4oiAXFxcIiB8IFxcXCLiiINcXFwiICkgKCBmcmFtZUFyZ3VtZW50IHwgYXJndW1lbnQgKSBtZXRhQXJndW1lbnQgXFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICggZnJhbWVBcmd1bWVudCB8IGFyZ3VtZW50ICkgXFxcImlzXFxcIiAoIFxcXCLwnZij8J2YsPCdmLbwnZiv8J2YpVxcXCIgfCBcXFwi8J2Yp/CdmLPwnZim8J2YplxcXCIgKSBcXFwiaW5cXFwiIG1ldGFBcmd1bWVudFxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7XFxuXFxuXCIsXG4gICAgICAgICAgXCJ0eXBlVm9jYWJ1bGFyeVwiOiBcIlwiLFxuICAgICAgICAgIFwic3ltYm9sVm9jYWJ1bGFyeVwiOiBcIvCdmKPwnZiw8J2YtvCdmK/wnZilXFxu8J2Yp/CdmLPwnZim8J2YplxcbuKIgFxcbuKIg1xcblwiXG4gICAgICAgIH1cbiAgICAgIF0pO1xuXG5leHBvcnQgY29uc3Qgbm9taW5hbExleGVyID0gbm9taW5hbExleGVyRnJvbUNvbWJpbmVkQ3VzdG9tR3JhbW1hcihjb21iaW5lZEN1c3RvbUdyYW1tYXIpO1xuXG5leHBvcnQgY29uc3Qgbm9taW5hbFBhcnNlciA9IG5vbWluYWxQYXJzZXJGcm9tU3RhcnRSdWxlTmFtZUFuZENvbWJpbmVkQ3VzdG9tR3JhbW1hcihzdGFydFJ1bGVOYW1lLCBjb21iaW5lZEN1c3RvbUdyYW1tYXIpO1xuIl0sIm5hbWVzIjpbIm5vbWluYWxMZXhlciIsIm5vbWluYWxQYXJzZXIiLCJub21pbmFsTGV4ZXJGcm9tQ29tYmluZWRDdXN0b21HcmFtbWFyIiwibGV4ZXJzVXRpbGl0aWVzIiwibm9taW5hbFBhcnNlckZyb21TdGFydFJ1bGVOYW1lQW5kQ29tYmluZWRDdXN0b21HcmFtbWFyIiwicGFyc2Vyc1V0aWxpdGllcyIsInN0YXJ0UnVsZU5hbWUiLCJTVEFURU1FTlRfUlVMRV9OQU1FIiwiY29tYmluZWRDdXN0b21HcmFtbWFyIiwiY29tYmluZWRDdXN0b21HcmFtbWFyRnJvbUpTT04iXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQTRCYUE7ZUFBQUE7O1FBRUFDO2VBQUFBOzs7NEJBNUJxQzt5QkFFZDs2QkFDVTtBQUU5QyxJQUFNLEFBQUVDLHdDQUEwQ0MsNkJBQWUsQ0FBekRELHVDQUNGLEFBQUVFLHlEQUEyREMsOEJBQWdCLENBQTNFRDtBQUVSLElBQU1FLGdCQUFnQkMsOEJBQW1CLEVBQ25DQyx3QkFBd0JDLElBQUFBLDRDQUE2QixFQUFDO0lBQ3BEO1FBQ0UsUUFBUTtRQUNSLFdBQVc7UUFDWCxnQkFBZ0I7UUFDaEIsa0JBQWtCO1FBQ2xCLG9CQUFvQjtJQUN0QjtJQUNBO1FBQ0UsUUFBUTtRQUNSLFdBQVc7UUFDWCxnQkFBZ0I7UUFDaEIsa0JBQWtCO1FBQ2xCLG9CQUFvQjtJQUN0QjtDQUNEO0FBRUEsSUFBTVQsZUFBZUUsc0NBQXNDTTtBQUUzRCxJQUFNUCxnQkFBZ0JHLHVEQUF1REUsZUFBZUUifQ==
@@ -1,43 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- function _export(target, all) {
6
- for(var name in all)Object.defineProperty(target, name, {
7
- enumerable: true,
8
- get: Object.getOwnPropertyDescriptor(all, name).get
9
- });
10
- }
11
- _export(exports, {
12
- get default () {
13
- return _default;
14
- },
15
- get nodeQuery () {
16
- return nodeQuery;
17
- },
18
- get nodesQuery () {
19
- return nodesQuery;
20
- }
21
- });
22
- var _occamquery = require("occam-query");
23
- function nodeQuery(expressionString) {
24
- var query = _occamquery.Query.fromExpressionString(expressionString);
25
- return function(node) {
26
- var nodes = query.execute(node);
27
- node = nodes.shift() || null; ///
28
- return node;
29
- };
30
- }
31
- function nodesQuery(expressionString) {
32
- var query = _occamquery.Query.fromExpressionString(expressionString);
33
- return function(node) {
34
- var nodes = query.execute(node);
35
- return nodes;
36
- };
37
- }
38
- var _default = {
39
- nodeQuery: nodeQuery,
40
- nodesQuery: nodesQuery
41
- };
42
-
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcXVlcnkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IFF1ZXJ5IH0gZnJvbSBcIm9jY2FtLXF1ZXJ5XCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBub2RlUXVlcnkoZXhwcmVzc2lvblN0cmluZykge1xuICBjb25zdCBxdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uU3RyaW5nKGV4cHJlc3Npb25TdHJpbmcpO1xuXG4gIHJldHVybiBmdW5jdGlvbihub2RlKSB7XG4gICAgY29uc3Qgbm9kZXMgPSBxdWVyeS5leGVjdXRlKG5vZGUpO1xuXG4gICAgbm9kZSA9IG5vZGVzLnNoaWZ0KCkgfHwgbnVsbDsgLy8vXG5cbiAgICByZXR1cm4gbm9kZTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vZGVzUXVlcnkoZXhwcmVzc2lvblN0cmluZykge1xuICBjb25zdCBxdWVyeSA9IFF1ZXJ5LmZyb21FeHByZXNzaW9uU3RyaW5nKGV4cHJlc3Npb25TdHJpbmcpO1xuXG4gIHJldHVybiBmdW5jdGlvbihub2RlKSB7XG4gICAgY29uc3Qgbm9kZXMgPSBxdWVyeS5leGVjdXRlKG5vZGUpO1xuXG4gICAgcmV0dXJuIG5vZGVzO1xuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIG5vZGVRdWVyeSxcbiAgbm9kZXNRdWVyeSxcbn1cbiJdLCJuYW1lcyI6WyJub2RlUXVlcnkiLCJub2Rlc1F1ZXJ5IiwiZXhwcmVzc2lvblN0cmluZyIsInF1ZXJ5IiwiUXVlcnkiLCJmcm9tRXhwcmVzc2lvblN0cmluZyIsIm5vZGUiLCJub2RlcyIsImV4ZWN1dGUiLCJzaGlmdCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBMEJBO2VBQUE7O1FBdEJnQkE7ZUFBQUE7O1FBWUFDO2VBQUFBOzs7MEJBZE07QUFFZixTQUFTRCxVQUFVRSxnQkFBZ0I7SUFDeEMsSUFBTUMsUUFBUUMsaUJBQUssQ0FBQ0Msb0JBQW9CLENBQUNIO0lBRXpDLE9BQU8sU0FBU0ksSUFBSTtRQUNsQixJQUFNQyxRQUFRSixNQUFNSyxPQUFPLENBQUNGO1FBRTVCQSxPQUFPQyxNQUFNRSxLQUFLLE1BQU0sTUFBTSxHQUFHO1FBRWpDLE9BQU9IO0lBQ1Q7QUFDRjtBQUVPLFNBQVNMLFdBQVdDLGdCQUFnQjtJQUN6QyxJQUFNQyxRQUFRQyxpQkFBSyxDQUFDQyxvQkFBb0IsQ0FBQ0g7SUFFekMsT0FBTyxTQUFTSSxJQUFJO1FBQ2xCLElBQU1DLFFBQVFKLE1BQU1LLE9BQU8sQ0FBQ0Y7UUFFNUIsT0FBT0M7SUFDVDtBQUNGO0lBRUEsV0FBZTtJQUNiUCxXQUFBQTtJQUNBQyxZQUFBQTtBQUNGIn0=
@@ -1,149 +0,0 @@
1
- "use strict";
2
-
3
- import Context from '../context';
4
-
5
- import { lineIndexFromNodeAndTokens } from "../utilities/lineIndex";
6
- import { nodeAsString, nodesAsString } from "../utilities/node";
7
-
8
- export default class FileContext extends Context {
9
- constructor(context, filePath, tokens, node) {
10
- super(context);
11
-
12
- this.filePath = filePath;
13
- this.tokens = tokens;
14
- this.node = node;
15
- }
16
-
17
- getFilePath() {
18
- return this.filePath;
19
- }
20
-
21
- getTokens() {
22
- return this.tokens;
23
- }
24
-
25
- getNode() {
26
- return this.node;
27
- }
28
-
29
- matchFilePath(filePath) {
30
- const filePathMatches = (this.filePath === filePath);
31
-
32
- return filePathMatches;
33
- }
34
-
35
- nodeAsString(node) {
36
- const string = nodeAsString(node, this.tokens);
37
-
38
- return string;
39
- }
40
-
41
- nodesAsString(nodes) {
42
- const string = nodesAsString(nodes, this.tokens);
43
-
44
- return string;
45
- }
46
-
47
- prepare() {
48
- if (this.tokens !== null) {
49
- return;
50
- }
51
-
52
- const file = this.findFile(this.filePath),
53
- lexer = this.getLexer(),
54
- parser = this.getParser(),
55
- content = file.getContent();
56
-
57
- this.tokens = lexer.tokenise(content);
58
-
59
- this.node = parser.parse(this.tokens);
60
- }
61
-
62
- initialise(json) {
63
- const { content } = json,
64
- lexer = this.getLexer(),
65
- parser = this.getParser();
66
-
67
- this.tokens = lexer.tokenise(content);
68
-
69
- this.node = parser.parse(this.tokens);
70
-
71
- this.clear();
72
-
73
- this.addProcedures();
74
- }
75
-
76
- async break(node) {
77
- const filePath = this.filePath,
78
- lineIndex = lineIndexFromNodeAndTokens(node, this.tokens),
79
- releaseContext = this.getReleaseContext();
80
-
81
- await releaseContext.break(filePath, lineIndex);
82
- }
83
-
84
- async verify() {
85
- let verifies = false;
86
-
87
- this.prepare();
88
-
89
- if (this.node === null) {
90
- this.warning(`Unable to verify the '${this.filePath}' file because it cannot be parsed.`);
91
- } else {
92
- this.debug(`Verifying the '${this.filePath}' file...`);
93
-
94
- const fileVerifies = await this.verifyFile();
95
-
96
- if (fileVerifies) {
97
- verifies = true;
98
- }
99
-
100
- verifies ?
101
- this.complete() :
102
- this.clear();
103
-
104
- if (verifies) {
105
- this.info(`...verified the '${this.filePath}' file.`);
106
- }
107
- }
108
-
109
- return verifies;
110
- }
111
-
112
- toJSON() {
113
- const file = this.findFile(this.filePath),
114
- filePath = this.filePath, ///
115
- content = file.getContent(),
116
- json = {
117
- filePath,
118
- content
119
- };
120
-
121
- return json;
122
- }
123
-
124
- static fromFile(Class, file, ...remainingArguments) {
125
- const filePath = file.getPath(),
126
- tokens = null,
127
- node = null,
128
- context = remainingArguments.pop(), ///
129
- fileContext = new Class(context, filePath, tokens, node, ...remainingArguments);
130
-
131
- return fileContext;
132
- }
133
-
134
- static fromFilePath(Class, filePath, ...remainingArguments) {
135
- const tokens = null,
136
- node = null,
137
- context = remainingArguments.pop(), ///
138
- fileContext = new Class(context, filePath, tokens, node, ...remainingArguments);
139
-
140
- return fileContext;
141
- }
142
-
143
- static fromFilePathTokensAndNode(Class, filePath, tokens, node, ...remainingArguments) {
144
- const context = remainingArguments.pop(), ///
145
- fileContext = new Class(context, filePath, tokens, node, ...remainingArguments);
146
-
147
- return fileContext;
148
- }
149
- }
@@ -1,222 +0,0 @@
1
- "use strict";
2
-
3
- import { arrayUtilities } from "necessary";
4
- import { filePathUtilities } from "occam-model";
5
-
6
- import FurtleFileContext from "../context/file/furtle";
7
- import NominalFileContext from "../context/file/nominal";
8
-
9
- import { asyncResolve } from "../utilities/asynchronous";
10
- import { nominalLexer, nominalParser } from "../utilities/nominal";
11
- import { TRACE_LEVEL, DEBUG_LEVEL, INFO_LEVEL, WARNING_LEVEL, ERROR_LEVEL, BREAK_MESSAGE} from "../constants";
12
-
13
- const { push } = arrayUtilities,
14
- { isFilePathFurtleFilePath, isFilePathNominalFilePath } = filePathUtilities;
15
-
16
- export default class ReleaseContext {
17
- constructor(log, entries, callback, fileContexts) {
18
- this.log = log;
19
- this.entries = entries;
20
- this.callback = callback;
21
- this.fileContexts = fileContexts;
22
- }
23
-
24
- getLog() {
25
- return this.log;
26
- }
27
-
28
- getEntries() {
29
- return this.entries;
30
- }
31
-
32
- getCallback() {
33
- return this.callback;
34
- }
35
-
36
- getFileContexts() {
37
- return this.fileContexts;
38
- }
39
-
40
- getReleaseContext() {
41
- const releaseContext = this; ///
42
-
43
- return releaseContext;
44
- }
45
-
46
- getLexer() {
47
- const lexer = nominalLexer; ///
48
-
49
- return lexer;
50
- }
51
-
52
- getParser() {
53
- const parser = nominalParser; ///
54
-
55
- return parser;
56
- }
57
-
58
- getProcedures() {
59
- const procedures = [];
60
-
61
- this.fileContexts.forEach((fileContext) => {
62
- const includeRelease = false,
63
- fileContextProcedures = fileContext.getProcedures(includeRelease);
64
-
65
- push(procedures, fileContextProcedures);
66
- });
67
-
68
- return procedures;
69
- }
70
-
71
- findFile(filePath) { return this.entries.findFile(filePath); }
72
-
73
- findFileContext(filePath) {
74
- const fileContext = this.fileContexts.find(((fileContext) => {
75
- const filePathMatches = fileContext.matchFilePath(filePath);
76
-
77
- if (filePathMatches) {
78
- return true;
79
- }
80
- })) || null;
81
-
82
- return fileContext;
83
- }
84
-
85
- findProcedureByName(name) {
86
- const procedures = this.getProcedures(),
87
- procedure = procedures.find((procedure) => {
88
- const nameMatches = procedure.matchName(name);
89
-
90
- if (nameMatches) {
91
- return true;
92
- }
93
- }) || null;
94
-
95
- return procedure;
96
- }
97
-
98
- isProcedurePresentByName(name) {
99
- const procedure = this.findProcedureByName(name),
100
- procedurePresent = (procedure !== null);
101
-
102
- return procedurePresent;
103
- }
104
-
105
- trace(message) {
106
- const level = TRACE_LEVEL;
107
-
108
- this.writeToLog(level, message);
109
- }
110
-
111
- debug(message) {
112
- const level = DEBUG_LEVEL;
113
-
114
- this.writeToLog(level, message);
115
- }
116
-
117
- info(message) {
118
- const level = INFO_LEVEL;
119
-
120
- this.writeToLog(level, message);
121
- }
122
-
123
- warning(message) {
124
- const level = WARNING_LEVEL;
125
-
126
- this.writeToLog(level, message);
127
- }
128
-
129
- error(message) {
130
- const level = ERROR_LEVEL;
131
-
132
- this.writeToLog(level, message);
133
- }
134
-
135
- writeToLog(level, message, filePath = null, lineIndex = null) {
136
- this.log.write(level, message, filePath, lineIndex);
137
- }
138
-
139
- getDepth() {
140
- const depth = 0;
141
-
142
- return depth;
143
- }
144
-
145
- initialise() {
146
- const releaseContext = this; ///
147
-
148
- fileContextsFromEntries(this.entries, this.fileContexts, releaseContext);
149
-
150
- this.initialised = true;
151
- }
152
-
153
- async verify() {
154
- let verifies = false;
155
-
156
- const verifiedFileContexts = [],
157
- fileContextsVerify = await verifyFileContexts(this.fileContexts, verifiedFileContexts);
158
-
159
- if (fileContextsVerify) {
160
- this.fileContexts = verifiedFileContexts; ///
161
-
162
- this.verified = true;
163
-
164
- verifies = true;
165
- }
166
-
167
- return verifies;
168
- }
169
-
170
- async break(filePath, lineIndex) {
171
- const level = TRACE_LEVEL,
172
- message = BREAK_MESSAGE;
173
-
174
- this.writeToLog(level, message, filePath, lineIndex);
175
-
176
- const context = this; ///
177
-
178
- await this.callback(context, filePath, lineIndex);
179
- }
180
-
181
- static fromLogEntriesAndCallback(log, entries, callback) {
182
- const fileContexts = [],
183
- releaseContext = new ReleaseContext(log, entries, callback, fileContexts);
184
-
185
- return releaseContext;
186
- }
187
- }
188
-
189
- async function verifyFileContexts(fileContexts, verifiedFileContexts) {
190
- const resolved = await asyncResolve(fileContexts, verifiedFileContexts, async (fileContext) => {
191
- const fileContextVerifies = await fileContext.verify();
192
-
193
- if (fileContextVerifies) {
194
- return true;
195
- }
196
- }),
197
- fileContextsVerify = resolved; ///
198
-
199
- return fileContextsVerify;
200
- }
201
-
202
- function fileContextsFromEntries(entries, fileContexts, releaseContext) {
203
- entries.forEachFile((file) => {
204
- const filePath = file.getPath(),
205
- filePathFurtleFilePath = isFilePathFurtleFilePath(filePath),
206
- filePathNominalFilePath = isFilePathNominalFilePath(filePath);
207
-
208
- if (filePathFurtleFilePath) {
209
- const furtleFileContext = FurtleFileContext.fromFile(file, releaseContext),
210
- fileContext = furtleFileContext; ///
211
-
212
- fileContexts.push(fileContext);
213
- }
214
-
215
- if (filePathNominalFilePath) {
216
- const context = releaseContext, ///
217
- fileContext = NominalFileContext.fromFile(file, context);
218
-
219
- fileContexts.push(fileContext);
220
- }
221
- });
222
- }
package/src/context.js DELETED
@@ -1,42 +0,0 @@
1
- "use strict";
2
-
3
- import { DOUBLE_SPACE } from "./constants";
4
-
5
- export default class Context {
6
- constructor(context) {
7
- this.context = context;
8
- }
9
-
10
- getContext() {
11
- return this.context;
12
- }
13
-
14
- getDepth() {
15
- let depth = this.context.getDepth();
16
-
17
- depth++;
18
-
19
- return depth;
20
- }
21
-
22
- getReleaseContext() { return this.context.getReleaseContext(); }
23
-
24
- writeToLog(level, message) {
25
- const depth = this.getDepth(),
26
- indent = DOUBLE_SPACE.repeat(depth);
27
-
28
- message = `${indent}${message}`; ///
29
-
30
- const releaseContext = this.getReleaseContext();
31
-
32
- releaseContext.writeToLog(level, message);
33
- }
34
-
35
- static fromNothing(Class, ...remainingArguments) {
36
- let context = remainingArguments.pop();
37
-
38
- context = new Class(context, ...remainingArguments); ///
39
-
40
- return context;
41
- }
42
- }
package/src/element.js DELETED
@@ -1,27 +0,0 @@
1
- "use strict";
2
-
3
- export default class Element {
4
- constructor(context, string, node) {
5
- this.context = context;
6
- this.string = string;
7
- this.node = node;
8
- }
9
-
10
- getContext() {
11
- return this.context;
12
- }
13
-
14
- getString() {
15
- return this.string;
16
- }
17
-
18
- getNode() {
19
- return this.node;
20
- }
21
-
22
- async break(context) {
23
- await context.break(this.node);
24
- }
25
-
26
- matchNode(node) { return this.node.match(node); }
27
- }
package/src/log.js DELETED
@@ -1,132 +0,0 @@
1
- "use strict";
2
-
3
- import { LEVELS, SINGLE_SPACE, EMPTY_STRING, LEVEL_MAXIMUM_LENGTH } from "./constants";
4
-
5
- const [ TRACE_LEVEL, DEBUG_LEVEL, INFO_LEVEL, WARNING_LEVEL, ERROR_LEVEL ] = LEVELS;
6
-
7
- export default class Log {
8
- constructor(messages, logLevel, follow) {
9
- this.messages = messages;
10
- this.logLevel = logLevel;
11
- this.follow = follow;
12
- }
13
-
14
- getMessages() {
15
- return this.messages;
16
- }
17
-
18
- getLogLevel() {
19
- return this.logLevel;
20
- }
21
-
22
- getFollow() {
23
- return this.follow;
24
- }
25
-
26
- trace(message) {
27
- const level = TRACE_LEVEL;
28
-
29
- this.write(level, message);
30
- }
31
-
32
- debug(message) {
33
- const level = DEBUG_LEVEL;
34
-
35
- this.write(level, message);
36
- }
37
-
38
- info(message) {
39
- const level = INFO_LEVEL;
40
-
41
- this.write(level, message);
42
- }
43
-
44
- warning(message) {
45
- const level = WARNING_LEVEL;
46
-
47
- this.write(level, message);
48
- }
49
-
50
- error(message) {
51
- const level = ERROR_LEVEL;
52
-
53
- this.write(level, message);
54
- }
55
-
56
- write(level, message, filePath = null, lineIndex = null) {
57
- const levelIndex = LEVELS.indexOf(level),
58
- logLevelIndex = LEVELS.indexOf(this.logLevel);
59
-
60
- if (levelIndex < logLevelIndex) {
61
- return;
62
- }
63
-
64
- message = formatMessage(level, message, filePath, lineIndex); ///
65
-
66
- this.follow ?
67
- console.log(message) :
68
- this.messages.push(message);
69
- }
70
-
71
- static fromNothing() {
72
- const messages = null,
73
- logLevel = TRACE_LEVEL,
74
- follow = true,
75
- log = new Log(messages, logLevel, follow);
76
-
77
- return log;
78
- }
79
-
80
- static fromFollowAndLogLevel(follow, logLevel) {
81
- const messages = follow ?
82
- null :
83
- [],
84
- log = new Log(messages, logLevel, follow);
85
-
86
- return log;
87
- }
88
- }
89
-
90
- function formatMessage(level, message, filePath, lineIndex) {
91
- let formattedMessage = EMPTY_STRING;
92
-
93
- const leftPaddedLevel = leftPadLevel(level),
94
- upperCaseLeftPaddedLevel = leftPaddedLevel.toUpperCase();
95
-
96
- formattedMessage += `${upperCaseLeftPaddedLevel}: `;
97
-
98
- if (filePath !== null) {
99
- formattedMessage += `${filePath} `;
100
- }
101
-
102
- if (lineIndex !== null) {
103
- formattedMessage += `[${lineIndex}] `;
104
- }
105
-
106
- if ((filePath !== null) || (lineIndex !== null)) {
107
- formattedMessage += `- `;
108
- }
109
-
110
- formattedMessage += message;
111
-
112
- message = formattedMessage; ///
113
-
114
- return message;
115
- }
116
-
117
- function leftPadLevel(level) {
118
- const maximumLength = LEVEL_MAXIMUM_LENGTH,
119
- leftPaddedLevel = leftPad(level, maximumLength);
120
-
121
- return leftPaddedLevel;
122
- }
123
-
124
- function leftPad(string, maximumLength) {
125
- const stringLength = string.length,
126
- length = maximumLength - stringLength,
127
- indent = SINGLE_SPACE.repeat(length),
128
- leftPaddedString = `${indent}${string}`;
129
-
130
- return leftPaddedString;
131
- }
132
-