occam-verify-cli 1.0.420 → 1.0.427

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 (272) hide show
  1. package/lib/action/verify.js +7 -3
  2. package/lib/context/file.js +8 -44
  3. package/lib/context/local.js +8 -26
  4. package/lib/context/nominal.js +64 -0
  5. package/lib/context/release.js +2 -2
  6. package/lib/context/temporary.js +6 -58
  7. package/lib/element/assertion/contained.js +303 -0
  8. package/lib/element/assertion/defined.js +318 -0
  9. package/lib/element/assertion/property.js +299 -0
  10. package/lib/element/assertion/satisfies.js +264 -0
  11. package/lib/element/assertion/subproof.js +178 -0
  12. package/lib/element/assertion/type.js +294 -0
  13. package/lib/{ontology → element}/assertion.js +9 -9
  14. package/lib/element/assumption.js +365 -0
  15. package/lib/element/axiom.js +332 -0
  16. package/lib/element/axiomLemmaTheoremConjecture.js +346 -0
  17. package/lib/element/conclusion.js +151 -0
  18. package/lib/{ontology → element}/conjecture.js +7 -14
  19. package/lib/element/declaration/combinator.js +161 -0
  20. package/lib/element/declaration/complexType.js +343 -0
  21. package/lib/element/declaration/constructor.js +193 -0
  22. package/lib/element/declaration/metavariable.js +193 -0
  23. package/lib/element/declaration/simpleType.js +240 -0
  24. package/lib/element/declaration/typePrefix.js +179 -0
  25. package/lib/element/declaration/variable.js +196 -0
  26. package/lib/{ontology → element}/declaration.js +9 -9
  27. package/lib/element/deduction.js +207 -0
  28. package/lib/element/derivation.js +96 -0
  29. package/lib/element/equality.js +275 -0
  30. package/lib/element/equivalence.js +316 -0
  31. package/lib/element/equivalences.js +264 -0
  32. package/lib/{ontology → element}/error.js +12 -12
  33. package/lib/element/frame.js +387 -0
  34. package/lib/element/hypothesis.js +195 -0
  35. package/lib/element/judgement.js +243 -0
  36. package/lib/element/label.js +198 -0
  37. package/lib/{ontology → element}/lemma.js +7 -7
  38. package/lib/{ontology → element}/metaLemma.js +8 -8
  39. package/lib/element/metaLemmaMetatheorem.js +234 -0
  40. package/lib/{ontology → element}/metaType.js +18 -11
  41. package/lib/{ontology → element}/metatheorem.js +8 -8
  42. package/lib/element/metavariable.js +459 -0
  43. package/lib/element/parameter.js +108 -0
  44. package/lib/element/premise.js +310 -0
  45. package/lib/element/procedureCall.js +243 -0
  46. package/lib/{ontology → element}/procedureReference.js +3 -3
  47. package/lib/{ontology → element}/proof.js +4 -4
  48. package/lib/element/property.js +128 -0
  49. package/lib/element/propertyRelation.js +195 -0
  50. package/lib/element/reference.js +304 -0
  51. package/lib/element/rule.js +373 -0
  52. package/lib/element/section.js +255 -0
  53. package/lib/element/signature.js +217 -0
  54. package/lib/element/statement/combinator/bracketed.js +166 -0
  55. package/lib/element/statement/combinator.js +105 -0
  56. package/lib/element/statement.js +386 -0
  57. package/lib/element/step.js +274 -0
  58. package/lib/element/subDerivation.js +137 -0
  59. package/lib/element/subproof.js +240 -0
  60. package/lib/element/substitution/frame.js +216 -0
  61. package/lib/{ontology → element}/substitution/reference.js +5 -4
  62. package/lib/{ontology → element}/substitution/statement.js +7 -6
  63. package/lib/element/substitution/term.js +265 -0
  64. package/lib/element/substitution.js +206 -0
  65. package/lib/element/substitutions.js +425 -0
  66. package/lib/element/supposition.js +323 -0
  67. package/lib/{ontology → element/term}/constructor/bracketed.js +11 -7
  68. package/lib/element/term/constructor.js +172 -0
  69. package/lib/element/term.js +322 -0
  70. package/lib/{ontology → element}/theorem.js +8 -8
  71. package/lib/element/type.js +490 -0
  72. package/lib/element/typePrefix.js +99 -0
  73. package/lib/element/variable.js +345 -0
  74. package/lib/elements.js +27 -0
  75. package/lib/mixins/statement/verify.js +14 -14
  76. package/lib/mixins/step/unify.js +12 -12
  77. package/lib/mixins/term/verify.js +4 -4
  78. package/lib/node/substitution/frame.js +15 -1
  79. package/lib/node/substitution/statement.js +37 -1
  80. package/lib/node/substitution/term.js +15 -1
  81. package/lib/preamble.js +63 -63
  82. package/lib/process/assign.js +58 -0
  83. package/lib/process/instantiate.js +68 -7
  84. package/lib/process/unify.js +26 -26
  85. package/lib/process/verify.js +21 -21
  86. package/lib/utilities/brackets.js +9 -18
  87. package/lib/utilities/customGrammar.js +1 -1
  88. package/lib/utilities/element.js +1128 -0
  89. package/lib/utilities/json.js +32 -32
  90. package/lib/utilities/node.js +49 -61
  91. package/lib/utilities/statement.js +83 -0
  92. package/lib/utilities/string.js +98 -56
  93. package/package.json +10 -10
  94. package/src/action/verify.js +8 -1
  95. package/src/context/file.js +9 -39
  96. package/src/context/local.js +5 -11
  97. package/src/context/nominal.js +30 -0
  98. package/src/context/release.js +1 -1
  99. package/src/context/temporary.js +6 -63
  100. package/src/{ontology → element}/assertion/contained.js +4 -25
  101. package/src/{ontology → element}/assertion/defined.js +7 -26
  102. package/src/{ontology → element}/assertion/property.js +7 -26
  103. package/src/{ontology → element}/assertion/satisfies.js +5 -53
  104. package/src/{ontology → element}/assertion/subproof.js +3 -32
  105. package/src/{ontology → element}/assertion/type.js +7 -26
  106. package/src/{ontology → element}/assertion.js +6 -6
  107. package/src/{ontology → element}/assumption.js +3 -27
  108. package/src/{ontology → element}/axiom.js +4 -11
  109. package/src/{ontology/topLevelAssertion.js → element/axiomLemmaTheoremConjecture.js} +9 -105
  110. package/src/{ontology → element}/conclusion.js +4 -19
  111. package/src/{ontology → element}/conjecture.js +4 -11
  112. package/src/{ontology → element}/declaration/combinator.js +3 -14
  113. package/src/{ontology → element}/declaration/complexType.js +3 -19
  114. package/src/{ontology → element}/declaration/constructor.js +3 -14
  115. package/src/{ontology → element}/declaration/metavariable.js +3 -39
  116. package/src/{ontology → element}/declaration/simpleType.js +3 -19
  117. package/src/{ontology → element}/declaration/typePrefix.js +3 -15
  118. package/src/{ontology → element}/declaration/variable.js +3 -14
  119. package/src/{ontology → element}/declaration.js +6 -6
  120. package/src/{ontology → element}/deduction.js +9 -22
  121. package/src/{ontology → element}/derivation.js +2 -32
  122. package/src/{ontology → element}/equality.js +18 -42
  123. package/src/{ontology → element}/equivalence.js +17 -2
  124. package/src/{ontology → element}/equivalences.js +1 -1
  125. package/src/{ontology → element}/error.js +8 -8
  126. package/src/{ontology → element}/frame.js +8 -56
  127. package/src/{ontology → element}/hypothesis.js +5 -5
  128. package/src/{ontology → element}/judgement.js +7 -7
  129. package/src/{ontology → element}/label.js +3 -3
  130. package/src/{ontology → element}/lemma.js +4 -4
  131. package/src/{ontology → element}/metaLemma.js +5 -5
  132. package/src/{ontology/topLevelMetaAssertion.js → element/metaLemmaMetatheorem.js} +11 -11
  133. package/src/{ontology → element}/metaType.js +11 -7
  134. package/src/{ontology → element}/metatheorem.js +5 -5
  135. package/src/{ontology → element}/metavariable.js +10 -60
  136. package/src/{ontology → element}/parameter.js +1 -1
  137. package/src/{ontology → element}/premise.js +14 -14
  138. package/src/{ontology → element}/procedureCall.js +4 -4
  139. package/src/{ontology → element}/procedureReference.js +1 -1
  140. package/src/{ontology → element}/proof.js +3 -3
  141. package/src/{ontology → element}/property.js +7 -15
  142. package/src/{ontology → element}/propertyRelation.js +5 -11
  143. package/src/{ontology → element}/reference.js +5 -19
  144. package/src/{ontology → element}/rule.js +13 -13
  145. package/src/{ontology → element}/section.js +10 -10
  146. package/src/{ontology → element}/signature.js +12 -15
  147. package/src/element/statement/combinator/bracketed.js +38 -0
  148. package/src/element/statement/combinator.js +59 -0
  149. package/src/{ontology → element}/statement.js +11 -27
  150. package/src/{ontology → element}/step.js +10 -44
  151. package/src/{ontology → element}/subDerivation.js +3 -24
  152. package/src/{ontology → element}/subproof.js +3 -43
  153. package/src/{ontology → element}/substitution/frame.js +4 -21
  154. package/src/{ontology → element}/substitution/reference.js +3 -3
  155. package/src/{ontology → element}/substitution/statement.js +6 -10
  156. package/src/{ontology → element}/substitution/term.js +7 -23
  157. package/src/{ontology → element}/substitutions.js +1 -1
  158. package/src/{ontology → element}/supposition.js +10 -10
  159. package/src/{ontology → element/term}/constructor/bracketed.js +12 -13
  160. package/src/element/term/constructor.js +82 -0
  161. package/src/{ontology → element}/term.js +6 -38
  162. package/src/{ontology → element}/theorem.js +5 -5
  163. package/src/{ontology → element}/type.js +17 -64
  164. package/src/{ontology → element}/typePrefix.js +8 -12
  165. package/src/{ontology → element}/variable.js +9 -20
  166. package/src/elements.js +13 -0
  167. package/src/mixins/statement/verify.js +4 -4
  168. package/src/mixins/step/unify.js +6 -6
  169. package/src/mixins/term/verify.js +3 -3
  170. package/src/node/substitution/frame.js +14 -0
  171. package/src/node/substitution/statement.js +40 -0
  172. package/src/node/substitution/term.js +15 -0
  173. package/src/preamble.js +62 -62
  174. package/src/process/assign.js +59 -0
  175. package/src/process/instantiate.js +67 -15
  176. package/src/process/unify.js +37 -39
  177. package/src/process/verify.js +20 -20
  178. package/src/utilities/brackets.js +12 -17
  179. package/src/utilities/customGrammar.js +3 -3
  180. package/src/utilities/element.js +1380 -0
  181. package/src/utilities/json.js +31 -31
  182. package/src/utilities/node.js +56 -64
  183. package/src/utilities/{context.js → statement.js} +10 -39
  184. package/src/utilities/string.js +120 -52
  185. package/lib/assignment/equality.js +0 -62
  186. package/lib/assignment/judgement.js +0 -62
  187. package/lib/assignment/variable.js +0 -64
  188. package/lib/context/bracketed/combinator.js +0 -121
  189. package/lib/context/bracketed/constructor.js +0 -121
  190. package/lib/context/bracketted.js +0 -86
  191. package/lib/context/partial/metavariable.js +0 -180
  192. package/lib/context/partial/statement.js +0 -180
  193. package/lib/context/partial/term.js +0 -192
  194. package/lib/context/partial/variable.js +0 -192
  195. package/lib/context/partial.js +0 -93
  196. package/lib/ontology/assertion/contained.js +0 -357
  197. package/lib/ontology/assertion/defined.js +0 -331
  198. package/lib/ontology/assertion/property.js +0 -313
  199. package/lib/ontology/assertion/satisfies.js +0 -302
  200. package/lib/ontology/assertion/subproof.js +0 -240
  201. package/lib/ontology/assertion/type.js +0 -308
  202. package/lib/ontology/assumption.js +0 -383
  203. package/lib/ontology/axiom.js +0 -339
  204. package/lib/ontology/combinator/bracketed.js +0 -202
  205. package/lib/ontology/combinator.js +0 -155
  206. package/lib/ontology/conclusion.js +0 -201
  207. package/lib/ontology/constructor.js +0 -185
  208. package/lib/ontology/declaration/combinator.js +0 -210
  209. package/lib/ontology/declaration/complexType.js +0 -393
  210. package/lib/ontology/declaration/constructor.js +0 -242
  211. package/lib/ontology/declaration/metavariable.js +0 -257
  212. package/lib/ontology/declaration/simpleType.js +0 -290
  213. package/lib/ontology/declaration/typePrefix.js +0 -228
  214. package/lib/ontology/declaration/variable.js +0 -245
  215. package/lib/ontology/deduction.js +0 -215
  216. package/lib/ontology/derivation.js +0 -155
  217. package/lib/ontology/equality.js +0 -288
  218. package/lib/ontology/equivalence.js +0 -295
  219. package/lib/ontology/equivalences.js +0 -264
  220. package/lib/ontology/frame.js +0 -419
  221. package/lib/ontology/hypothesis.js +0 -190
  222. package/lib/ontology/judgement.js +0 -248
  223. package/lib/ontology/label.js +0 -198
  224. package/lib/ontology/metavariable.js +0 -502
  225. package/lib/ontology/parameter.js +0 -108
  226. package/lib/ontology/premise.js +0 -310
  227. package/lib/ontology/procedureCall.js +0 -243
  228. package/lib/ontology/property.js +0 -166
  229. package/lib/ontology/propertyRelation.js +0 -202
  230. package/lib/ontology/reference.js +0 -315
  231. package/lib/ontology/rule.js +0 -373
  232. package/lib/ontology/section.js +0 -255
  233. package/lib/ontology/signature.js +0 -217
  234. package/lib/ontology/statement.js +0 -398
  235. package/lib/ontology/step.js +0 -295
  236. package/lib/ontology/subDerivation.js +0 -147
  237. package/lib/ontology/subproof.js +0 -265
  238. package/lib/ontology/substitution/frame.js +0 -261
  239. package/lib/ontology/substitution/term.js +0 -269
  240. package/lib/ontology/substitution.js +0 -206
  241. package/lib/ontology/substitutions.js +0 -425
  242. package/lib/ontology/supposition.js +0 -323
  243. package/lib/ontology/term.js +0 -351
  244. package/lib/ontology/topLevelAssertion.js +0 -431
  245. package/lib/ontology/topLevelMetaAssertion.js +0 -234
  246. package/lib/ontology/type.js +0 -556
  247. package/lib/ontology/typePrefix.js +0 -99
  248. package/lib/ontology/variable.js +0 -343
  249. package/lib/ontology.js +0 -27
  250. package/lib/utilities/assignments.js +0 -19
  251. package/lib/utilities/context.js +0 -101
  252. package/lib/utilities/subproof.js +0 -42
  253. package/lib/utilities/type.js +0 -40
  254. package/src/assignment/equality.js +0 -29
  255. package/src/assignment/judgement.js +0 -29
  256. package/src/assignment/variable.js +0 -34
  257. package/src/context/bracketed/combinator.js +0 -31
  258. package/src/context/bracketed/constructor.js +0 -31
  259. package/src/context/bracketted.js +0 -41
  260. package/src/context/partial/metavariable.js +0 -39
  261. package/src/context/partial/statement.js +0 -39
  262. package/src/context/partial/term.js +0 -49
  263. package/src/context/partial/variable.js +0 -49
  264. package/src/context/partial.js +0 -71
  265. package/src/ontology/combinator/bracketed.js +0 -38
  266. package/src/ontology/combinator.js +0 -72
  267. package/src/ontology/constructor.js +0 -105
  268. package/src/ontology.js +0 -13
  269. package/src/utilities/assignments.js +0 -11
  270. package/src/utilities/subproof.js +0 -56
  271. package/src/utilities/type.js +0 -35
  272. /package/src/{ontology → element}/substitution.js +0 -0
@@ -1,42 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "subproofStringFromSubproofNode", {
6
- enumerable: true,
7
- get: function() {
8
- return subproofStringFromSubproofNode;
9
- }
10
- });
11
- function subproofStringFromSubproofNode(subproofNode, context) {
12
- var suppositionStatementsOrNonsenseString = suppositionStatementOrNonsenseStringFromSubproofNode(subproofNode, context), lastStatementOrNonsenseString = lastStatementOrNonsenseStringFromSubproofNode(subproofNode, context), subproofString = "[".concat(suppositionStatementsOrNonsenseString, "] ... ").concat(lastStatementOrNonsenseString);
13
- return subproofString;
14
- }
15
- function suppositionStatementOrNonsenseStringFromSubproofNode(subproofNode, context) {
16
- var suppositionNodes = subproofNode.getSuppositionNodes(), suppositionStatementsOrNonsenseString = suppositionNodes.reduce(function(suppositionStatementsOrNonsenseString, suppositionNode) {
17
- var suppositionOrStepNode = suppositionNode, statementOrNonsenseString = statementOrNonsenseStringFromSuppositionOrStepNode(suppositionOrStepNode, context), suppositionStatementOrNonsenseString = statementOrNonsenseString; ///
18
- suppositionStatementsOrNonsenseString = suppositionStatementsOrNonsenseString !== null ? "".concat(suppositionStatementsOrNonsenseString, ", ").concat(suppositionStatementOrNonsenseString) : suppositionStatementOrNonsenseString; ///
19
- return suppositionStatementsOrNonsenseString;
20
- }, null);
21
- return suppositionStatementsOrNonsenseString;
22
- }
23
- function lastStatementOrNonsenseStringFromSubproofNode(subproofNode, context) {
24
- var lastStepNode = subproofNode.getLastStepNode(), suppositionOrStepNode = lastStepNode, statementOrNonsenseString = statementOrNonsenseStringFromSuppositionOrStepNode(suppositionOrStepNode, context), lastStatementOrNonsenseString = statementOrNonsenseString; ///
25
- return lastStatementOrNonsenseString;
26
- }
27
- function statementOrNonsenseStringFromSuppositionOrStepNode(suppositionOrStepNode, context) {
28
- var statementOrNonsenseString;
29
- var nonsenseNode = suppositionOrStepNode.getNonsenseNode(), statementNode = suppositionOrStepNode.getStatementNode();
30
- if (false) {
31
- ///
32
- } else if (nonsenseNode !== null) {
33
- var nonsenseString = context.nodeAsString(nonsenseNode);
34
- statementOrNonsenseString = nonsenseString; ///
35
- } else if (statementNode !== null) {
36
- var statementString = context.nodeAsString(statementNode);
37
- statementOrNonsenseString = statementString; ///
38
- }
39
- return statementOrNonsenseString;
40
- }
41
-
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc3VicHJvb2YuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBzdWJwcm9vZlN0cmluZ0Zyb21TdWJwcm9vZk5vZGUoc3VicHJvb2ZOb2RlLCBjb250ZXh0KSB7XG4gIGNvbnN0IHN1cHBvc2l0aW9uU3RhdGVtZW50c09yTm9uc2Vuc2VTdHJpbmcgPSBzdXBwb3NpdGlvblN0YXRlbWVudE9yTm9uc2Vuc2VTdHJpbmdGcm9tU3VicHJvb2ZOb2RlKHN1YnByb29mTm9kZSwgY29udGV4dCksXG4gICAgICAgIGxhc3RTdGF0ZW1lbnRPck5vbnNlbnNlU3RyaW5nID0gbGFzdFN0YXRlbWVudE9yTm9uc2Vuc2VTdHJpbmdGcm9tU3VicHJvb2ZOb2RlKHN1YnByb29mTm9kZSwgY29udGV4dCksXG4gICAgICAgIHN1YnByb29mU3RyaW5nID0gYFske3N1cHBvc2l0aW9uU3RhdGVtZW50c09yTm9uc2Vuc2VTdHJpbmd9XSAuLi4gJHtsYXN0U3RhdGVtZW50T3JOb25zZW5zZVN0cmluZ31gO1xuXG4gIHJldHVybiBzdWJwcm9vZlN0cmluZztcbn1cblxuZnVuY3Rpb24gc3VwcG9zaXRpb25TdGF0ZW1lbnRPck5vbnNlbnNlU3RyaW5nRnJvbVN1YnByb29mTm9kZShzdWJwcm9vZk5vZGUsIGNvbnRleHQpIHtcbiAgY29uc3Qgc3VwcG9zaXRpb25Ob2RlcyA9IHN1YnByb29mTm9kZS5nZXRTdXBwb3NpdGlvbk5vZGVzKCksXG4gICAgICAgIHN1cHBvc2l0aW9uU3RhdGVtZW50c09yTm9uc2Vuc2VTdHJpbmcgPSBzdXBwb3NpdGlvbk5vZGVzLnJlZHVjZSgoc3VwcG9zaXRpb25TdGF0ZW1lbnRzT3JOb25zZW5zZVN0cmluZywgc3VwcG9zaXRpb25Ob2RlKSA9PiB7XG4gICAgICAgICAgY29uc3Qgc3VwcG9zaXRpb25PclN0ZXBOb2RlID0gc3VwcG9zaXRpb25Ob2RlLCAgLy8vXG4gICAgICAgICAgICAgICAgc3RhdGVtZW50T3JOb25zZW5zZVN0cmluZyA9IHN0YXRlbWVudE9yTm9uc2Vuc2VTdHJpbmdGcm9tU3VwcG9zaXRpb25PclN0ZXBOb2RlKHN1cHBvc2l0aW9uT3JTdGVwTm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICAgICAgc3VwcG9zaXRpb25TdGF0ZW1lbnRPck5vbnNlbnNlU3RyaW5nID0gc3RhdGVtZW50T3JOb25zZW5zZVN0cmluZzsgLy8vXG5cbiAgICAgICAgICBzdXBwb3NpdGlvblN0YXRlbWVudHNPck5vbnNlbnNlU3RyaW5nID0gKHN1cHBvc2l0aW9uU3RhdGVtZW50c09yTm9uc2Vuc2VTdHJpbmcgIT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHtzdXBwb3NpdGlvblN0YXRlbWVudHNPck5vbnNlbnNlU3RyaW5nfSwgJHtzdXBwb3NpdGlvblN0YXRlbWVudE9yTm9uc2Vuc2VTdHJpbmd9YCA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBwb3NpdGlvblN0YXRlbWVudE9yTm9uc2Vuc2VTdHJpbmc7IC8vL1xuXG4gICAgICAgICAgcmV0dXJuIHN1cHBvc2l0aW9uU3RhdGVtZW50c09yTm9uc2Vuc2VTdHJpbmc7XG4gICAgICAgIH0sIG51bGwpO1xuXG4gIHJldHVybiBzdXBwb3NpdGlvblN0YXRlbWVudHNPck5vbnNlbnNlU3RyaW5nO1xufVxuXG5mdW5jdGlvbiBsYXN0U3RhdGVtZW50T3JOb25zZW5zZVN0cmluZ0Zyb21TdWJwcm9vZk5vZGUoc3VicHJvb2ZOb2RlLCBjb250ZXh0KSB7XG4gIGNvbnN0IGxhc3RTdGVwTm9kZSA9IHN1YnByb29mTm9kZS5nZXRMYXN0U3RlcE5vZGUoKSxcbiAgICAgICAgc3VwcG9zaXRpb25PclN0ZXBOb2RlID0gbGFzdFN0ZXBOb2RlLCAvLy9cbiAgICAgICAgc3RhdGVtZW50T3JOb25zZW5zZVN0cmluZyA9IHN0YXRlbWVudE9yTm9uc2Vuc2VTdHJpbmdGcm9tU3VwcG9zaXRpb25PclN0ZXBOb2RlKHN1cHBvc2l0aW9uT3JTdGVwTm9kZSwgY29udGV4dCksXG4gICAgICAgIGxhc3RTdGF0ZW1lbnRPck5vbnNlbnNlU3RyaW5nID0gc3RhdGVtZW50T3JOb25zZW5zZVN0cmluZzsgLy8vXG5cbiAgcmV0dXJuIGxhc3RTdGF0ZW1lbnRPck5vbnNlbnNlU3RyaW5nO1xufVxuXG5mdW5jdGlvbiBzdGF0ZW1lbnRPck5vbnNlbnNlU3RyaW5nRnJvbVN1cHBvc2l0aW9uT3JTdGVwTm9kZShzdXBwb3NpdGlvbk9yU3RlcE5vZGUsIGNvbnRleHQpIHtcbiAgbGV0IHN0YXRlbWVudE9yTm9uc2Vuc2VTdHJpbmc7XG5cbiAgY29uc3Qgbm9uc2Vuc2VOb2RlID0gc3VwcG9zaXRpb25PclN0ZXBOb2RlLmdldE5vbnNlbnNlTm9kZSgpLFxuICAgICAgICBzdGF0ZW1lbnROb2RlID0gc3VwcG9zaXRpb25PclN0ZXBOb2RlLmdldFN0YXRlbWVudE5vZGUoKTtcblxuICBpZiAoZmFsc2UpIHtcbiAgICAvLy9cbiAgfSBlbHNlIGlmIChub25zZW5zZU5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBub25zZW5zZVN0cmluZyA9IGNvbnRleHQubm9kZUFzU3RyaW5nKG5vbnNlbnNlTm9kZSk7XG5cbiAgICBzdGF0ZW1lbnRPck5vbnNlbnNlU3RyaW5nID0gbm9uc2Vuc2VTdHJpbmc7IC8vL1xuICB9IGVsc2UgaWYgKHN0YXRlbWVudE5vZGUgIT09IG51bGwpIHtcbiAgICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBjb250ZXh0Lm5vZGVBc1N0cmluZyhzdGF0ZW1lbnROb2RlKTtcblxuICAgIHN0YXRlbWVudE9yTm9uc2Vuc2VTdHJpbmcgPSBzdGF0ZW1lbnRTdHJpbmc7ICAvLy9cbiAgfVxuXG4gIHJldHVybiBzdGF0ZW1lbnRPck5vbnNlbnNlU3RyaW5nO1xufSJdLCJuYW1lcyI6WyJzdWJwcm9vZlN0cmluZ0Zyb21TdWJwcm9vZk5vZGUiLCJzdWJwcm9vZk5vZGUiLCJjb250ZXh0Iiwic3VwcG9zaXRpb25TdGF0ZW1lbnRzT3JOb25zZW5zZVN0cmluZyIsInN1cHBvc2l0aW9uU3RhdGVtZW50T3JOb25zZW5zZVN0cmluZ0Zyb21TdWJwcm9vZk5vZGUiLCJsYXN0U3RhdGVtZW50T3JOb25zZW5zZVN0cmluZyIsImxhc3RTdGF0ZW1lbnRPck5vbnNlbnNlU3RyaW5nRnJvbVN1YnByb29mTm9kZSIsInN1YnByb29mU3RyaW5nIiwic3VwcG9zaXRpb25Ob2RlcyIsImdldFN1cHBvc2l0aW9uTm9kZXMiLCJyZWR1Y2UiLCJzdXBwb3NpdGlvbk5vZGUiLCJzdXBwb3NpdGlvbk9yU3RlcE5vZGUiLCJzdGF0ZW1lbnRPck5vbnNlbnNlU3RyaW5nIiwic3RhdGVtZW50T3JOb25zZW5zZVN0cmluZ0Zyb21TdXBwb3NpdGlvbk9yU3RlcE5vZGUiLCJzdXBwb3NpdGlvblN0YXRlbWVudE9yTm9uc2Vuc2VTdHJpbmciLCJsYXN0U3RlcE5vZGUiLCJnZXRMYXN0U3RlcE5vZGUiLCJub25zZW5zZU5vZGUiLCJnZXROb25zZW5zZU5vZGUiLCJzdGF0ZW1lbnROb2RlIiwiZ2V0U3RhdGVtZW50Tm9kZSIsIm5vbnNlbnNlU3RyaW5nIiwibm9kZUFzU3RyaW5nIiwic3RhdGVtZW50U3RyaW5nIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFFZ0JBOzs7ZUFBQUE7OztBQUFULFNBQVNBLCtCQUErQkMsWUFBWSxFQUFFQyxPQUFPO0lBQ2xFLElBQU1DLHdDQUF3Q0MscURBQXFESCxjQUFjQyxVQUMzR0csZ0NBQWdDQyw4Q0FBOENMLGNBQWNDLFVBQzVGSyxpQkFBaUIsQUFBQyxJQUFpREYsT0FBOUNGLHVDQUFzQyxVQUFzQyxPQUE5QkU7SUFFekUsT0FBT0U7QUFDVDtBQUVBLFNBQVNILHFEQUFxREgsWUFBWSxFQUFFQyxPQUFPO0lBQ2pGLElBQU1NLG1CQUFtQlAsYUFBYVEsbUJBQW1CLElBQ25ETix3Q0FBd0NLLGlCQUFpQkUsTUFBTSxDQUFDLFNBQUNQLHVDQUF1Q1E7UUFDdEcsSUFBTUMsd0JBQXdCRCxpQkFDeEJFLDRCQUE0QkMsbURBQW1ERix1QkFBdUJWLFVBQ3RHYSx1Q0FBdUNGLDJCQUEyQixHQUFHO1FBRTNFVix3Q0FBd0MsQUFBQ0EsMENBQTBDLE9BQ3pDLEFBQUMsR0FBNENZLE9BQTFDWix1Q0FBc0MsTUFBeUMsT0FBckNZLHdDQUMzQ0Esc0NBQXNDLEdBQUc7UUFFckYsT0FBT1o7SUFDVCxHQUFHO0lBRVQsT0FBT0E7QUFDVDtBQUVBLFNBQVNHLDhDQUE4Q0wsWUFBWSxFQUFFQyxPQUFPO0lBQzFFLElBQU1jLGVBQWVmLGFBQWFnQixlQUFlLElBQzNDTCx3QkFBd0JJLGNBQ3hCSCw0QkFBNEJDLG1EQUFtREYsdUJBQXVCVixVQUN0R0csZ0NBQWdDUSwyQkFBMkIsR0FBRztJQUVwRSxPQUFPUjtBQUNUO0FBRUEsU0FBU1MsbURBQW1ERixxQkFBcUIsRUFBRVYsT0FBTztJQUN4RixJQUFJVztJQUVKLElBQU1LLGVBQWVOLHNCQUFzQk8sZUFBZSxJQUNwREMsZ0JBQWdCUixzQkFBc0JTLGdCQUFnQjtJQUU1RCxJQUFJLE9BQU87SUFDVCxHQUFHO0lBQ0wsT0FBTyxJQUFJSCxpQkFBaUIsTUFBTTtRQUNoQyxJQUFNSSxpQkFBaUJwQixRQUFRcUIsWUFBWSxDQUFDTDtRQUU1Q0wsNEJBQTRCUyxnQkFBZ0IsR0FBRztJQUNqRCxPQUFPLElBQUlGLGtCQUFrQixNQUFNO1FBQ2pDLElBQU1JLGtCQUFrQnRCLFFBQVFxQixZQUFZLENBQUNIO1FBRTdDUCw0QkFBNEJXLGlCQUFrQixHQUFHO0lBQ25EO0lBRUEsT0FBT1g7QUFDVCJ9
@@ -1,40 +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 stringFromTypeNameTypePrefixNameAndSuperTypes () {
13
- return stringFromTypeNameTypePrefixNameAndSuperTypes;
14
- },
15
- get superTypesStringFromSuperTypes () {
16
- return superTypesStringFromSuperTypes;
17
- }
18
- });
19
- var _type = require("../ontology/type");
20
- function stringFromTypeNameTypePrefixNameAndSuperTypes(typeName, typePrefixName, superTypes) {
21
- var string;
22
- string = typePrefixName !== null ? "".concat(typePrefixName).concat(typeName) : typeName;
23
- var superTypesString = superTypesStringFromSuperTypes(superTypes);
24
- if (superTypesString !== null) {
25
- string = "".concat(string, ":").concat(superTypesString);
26
- }
27
- return string;
28
- }
29
- function superTypesStringFromSuperTypes(superTypes) {
30
- var superTypesString = superTypes.reduce(function(superTypesString, superType) {
31
- if (superType !== _type.baseType) {
32
- var superTypeString = superType.getString();
33
- superTypesString = superTypesString === null ? "'".concat(superTypeString, "'") : "".concat(superTypesString, ", '").concat(superTypeString, "'");
34
- }
35
- return superTypesString;
36
- }, null);
37
- return superTypesString;
38
- }
39
-
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdHlwZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgYmFzZVR5cGUgfSBmcm9tIFwiLi4vb250b2xvZ3kvdHlwZVwiO1xuXG5leHBvcnQgZnVuY3Rpb24gc3RyaW5nRnJvbVR5cGVOYW1lVHlwZVByZWZpeE5hbWVBbmRTdXBlclR5cGVzKHR5cGVOYW1lLCB0eXBlUHJlZml4TmFtZSwgc3VwZXJUeXBlcykge1xuICBsZXQgc3RyaW5nO1xuXG4gIHN0cmluZyA9ICh0eXBlUHJlZml4TmFtZSAhPT0gbnVsbCkgP1xuICAgICAgICAgICAgIGAke3R5cGVQcmVmaXhOYW1lfSR7dHlwZU5hbWV9YDpcbiAgICAgICAgICAgICAgIHR5cGVOYW1lO1xuXG4gIGNvbnN0IHN1cGVyVHlwZXNTdHJpbmcgPSBzdXBlclR5cGVzU3RyaW5nRnJvbVN1cGVyVHlwZXMoc3VwZXJUeXBlcyk7XG5cbiAgaWYgKHN1cGVyVHlwZXNTdHJpbmcgIT09IG51bGwpIHtcbiAgICBzdHJpbmcgPSBgJHtzdHJpbmd9OiR7c3VwZXJUeXBlc1N0cmluZ31gO1xuICB9XG5cbiAgcmV0dXJuIHN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN1cGVyVHlwZXNTdHJpbmdGcm9tU3VwZXJUeXBlcyhzdXBlclR5cGVzKSB7XG4gIGNvbnN0IHN1cGVyVHlwZXNTdHJpbmcgPSBzdXBlclR5cGVzLnJlZHVjZSgoc3VwZXJUeXBlc1N0cmluZywgc3VwZXJUeXBlKSA9PiB7XG4gICAgaWYgKHN1cGVyVHlwZSAhPT0gYmFzZVR5cGUpIHtcbiAgICAgIGNvbnN0IHN1cGVyVHlwZVN0cmluZyA9IHN1cGVyVHlwZS5nZXRTdHJpbmcoKTtcblxuICAgICAgc3VwZXJUeXBlc1N0cmluZyA9IChzdXBlclR5cGVzU3RyaW5nID09PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICBgJyR7c3VwZXJUeXBlU3RyaW5nfSdgIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYCR7c3VwZXJUeXBlc1N0cmluZ30sICcke3N1cGVyVHlwZVN0cmluZ30nYDtcbiAgICB9XG5cbiAgICByZXR1cm4gc3VwZXJUeXBlc1N0cmluZztcbiAgfSwgbnVsbCk7XG5cbiAgcmV0dXJuIHN1cGVyVHlwZXNTdHJpbmc7XG59XG4iXSwibmFtZXMiOlsic3RyaW5nRnJvbVR5cGVOYW1lVHlwZVByZWZpeE5hbWVBbmRTdXBlclR5cGVzIiwic3VwZXJUeXBlc1N0cmluZ0Zyb21TdXBlclR5cGVzIiwidHlwZU5hbWUiLCJ0eXBlUHJlZml4TmFtZSIsInN1cGVyVHlwZXMiLCJzdHJpbmciLCJzdXBlclR5cGVzU3RyaW5nIiwicmVkdWNlIiwic3VwZXJUeXBlIiwiYmFzZVR5cGUiLCJzdXBlclR5cGVTdHJpbmciLCJnZXRTdHJpbmciXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQUlnQkE7ZUFBQUE7O1FBZ0JBQztlQUFBQTs7O29CQWxCUztBQUVsQixTQUFTRCw4Q0FBOENFLFFBQVEsRUFBRUMsY0FBYyxFQUFFQyxVQUFVO0lBQ2hHLElBQUlDO0lBRUpBLFNBQVMsQUFBQ0YsbUJBQW1CLE9BQ2xCLEFBQUMsR0FBbUJELE9BQWpCQyxnQkFBMEIsT0FBVEQsWUFDbEJBO0lBRWIsSUFBTUksbUJBQW1CTCwrQkFBK0JHO0lBRXhELElBQUlFLHFCQUFxQixNQUFNO1FBQzdCRCxTQUFTLEFBQUMsR0FBWUMsT0FBVkQsUUFBTyxLQUFvQixPQUFqQkM7SUFDeEI7SUFFQSxPQUFPRDtBQUNUO0FBRU8sU0FBU0osK0JBQStCRyxVQUFVO0lBQ3ZELElBQU1FLG1CQUFtQkYsV0FBV0csTUFBTSxDQUFDLFNBQUNELGtCQUFrQkU7UUFDNUQsSUFBSUEsY0FBY0MsY0FBUSxFQUFFO1lBQzFCLElBQU1DLGtCQUFrQkYsVUFBVUcsU0FBUztZQUUzQ0wsbUJBQW1CLEFBQUNBLHFCQUFxQixPQUNwQixBQUFDLElBQW1CLE9BQWhCSSxpQkFBZ0IsT0FDbEIsQUFBQyxHQUF3QkEsT0FBdEJKLGtCQUFpQixPQUFxQixPQUFoQkksaUJBQWdCO1FBQ2xFO1FBRUEsT0FBT0o7SUFDVCxHQUFHO0lBRUgsT0FBT0E7QUFDVCJ9
@@ -1,29 +0,0 @@
1
- "use strict";
2
-
3
- export default class EqualityAssignment {
4
- constructor(equality) {
5
- this.equality = equality;
6
- }
7
-
8
- getEquality() {
9
- return this.equality;
10
- }
11
-
12
- assign(context) {
13
- const equalityAdded = context.addEquality(this.equality),
14
- equalityString = this.equality.getString(),
15
- equalityAssigned = equalityAdded; ///
16
-
17
- equalityAssigned ?
18
- context.trace(`Assigned the '${equalityString}' equality.`) :
19
- context.debug(`Unable to assign the '${equalityString}' equality.`);
20
-
21
- return equalityAssigned;
22
- }
23
-
24
- static fromEquality(equality) {
25
- const equalityAssignment = new EqualityAssignment(equality);
26
-
27
- return equalityAssignment;
28
- }
29
- }
@@ -1,29 +0,0 @@
1
- "use strict";
2
-
3
- export default class JudgementAssignment {
4
- constructor(judgement) {
5
- this.judgement = judgement;
6
- }
7
-
8
- getJudgement() {
9
- return this.judgement;
10
- }
11
-
12
- assign(context) {
13
- const judgementAdded = context.addJudgement(this.judgement),
14
- judgementString = this.judgement.getString(),
15
- judgementAssigned = judgementAdded; ///
16
-
17
- judgementAssigned ?
18
- context.trace(`Assigned the '${judgementString}' judgement.`) :
19
- context.debug(`Unable to assign the '${judgementString}' judgement.`);
20
-
21
- return judgementAssigned;
22
- }
23
-
24
- static fromJudgement(judgement) {
25
- const judgementAssignment = new JudgementAssignment(judgement);
26
-
27
- return judgementAssignment;
28
- }
29
- }
@@ -1,34 +0,0 @@
1
- "use strict";
2
-
3
- export default class VariableAssignment {
4
- constructor(variable) {
5
- this.variable = variable;
6
- }
7
-
8
- getVariable() {
9
- return this.variable;
10
- }
11
-
12
- assign(context) {
13
- const nested = false;
14
-
15
- context.addVariable(this.variable, nested);
16
-
17
- const variableType = this.variable.getType(),
18
- variableString = this.variable.getString(),
19
- variableAssigned = true, ///
20
- variableTypeString = variableType.getString();
21
-
22
- variableAssigned ?
23
- context.trace(`Assigned the '${variableString}' variable with type '${variableTypeString}'.`) :
24
- context.debug(`Unable to assign the '${variableString}' variable with type '${variableTypeString}'.`);
25
-
26
- return variableAssigned;
27
- }
28
-
29
- static fromVariable(variable) {
30
- const variableAssignment = new VariableAssignment(variable);
31
-
32
- return variableAssignment;
33
- }
34
- }
@@ -1,31 +0,0 @@
1
- "use strict";
2
-
3
- import BracketedContext from "../../context/bracketted";
4
- import StatementPartialContext from "../../context/partial/statement";
5
-
6
- import { STATEMENT_META_TYPE_NAME } from "../../metaTypeNames";
7
- import { nominalLexer, nominalParser } from "../../utilities/nominal";
8
-
9
- class CombinatorBracketedContext extends BracketedContext {
10
- getBracketedStatementNode() {
11
- const node = this.getNode(),
12
- bracketedStatementNode = node; ///
13
-
14
- return bracketedStatementNode;
15
- }
16
-
17
- static fromNothing() {
18
- const string = `(${STATEMENT_META_TYPE_NAME})`,
19
- lexer = nominalLexer, ///
20
- parser = nominalParser, ///
21
- statementPartialContext = StatementPartialContext.fromStringLexerAndParser(string, lexer, parser),
22
- context = statementPartialContext, ///
23
- combinatorBracketedContext = BracketedContext.fromString(CombinatorBracketedContext, string, context);
24
-
25
- return combinatorBracketedContext;
26
- }
27
- }
28
-
29
- const combinatorBracketedContext = CombinatorBracketedContext.fromNothing();
30
-
31
- export default combinatorBracketedContext;
@@ -1,31 +0,0 @@
1
- "use strict";
2
-
3
- import BracketedContext from "../../context/bracketted";
4
- import TermPartialContext from "../../context/partial/term";
5
-
6
- import { BASE_TYPE_SYMBOL } from "../../constants";
7
- import { nominalLexer, nominalParser } from "../../utilities/nominal";
8
-
9
- class ConstructorBracketedContext extends BracketedContext {
10
- getBracketedTermNode() {
11
- const node = this.getNode(),
12
- bracketedTermNode = node; ///
13
-
14
- return bracketedTermNode;
15
- }
16
-
17
- static fromNothing() {
18
- const string = `(${BASE_TYPE_SYMBOL})`,
19
- lexer = nominalLexer, ///
20
- parser = nominalParser, ///
21
- termPartialContext = TermPartialContext.fromStringLexerAndParser(string, lexer, parser),
22
- context = termPartialContext,
23
- constructorBracketedContext = BracketedContext.fromString(ConstructorBracketedContext, string, context);
24
-
25
- return constructorBracketedContext;
26
- }
27
- }
28
-
29
- const constructorBracketedContext = ConstructorBracketedContext.fromNothing();
30
-
31
- export default constructorBracketedContext;
@@ -1,41 +0,0 @@
1
- "use strict";
2
-
3
- export default class BracketedContext {
4
- constructor(string, node, tokens) {
5
- this.string = string;
6
- this.node = node;
7
- this.tokens = tokens;
8
- }
9
-
10
- getString() {
11
- return this.string;
12
- }
13
-
14
- getNode() {
15
- return this.node;
16
- }
17
-
18
- getTokens() {
19
- return this.tokens;
20
- }
21
-
22
- nodeAsTokens() {
23
- return this.tokens;
24
- }
25
-
26
- nodeAsString() {
27
- return this.string;
28
- }
29
-
30
- tokensAsString() {
31
- return this.string;
32
- }
33
-
34
- static fromString(Class, string, context) {
35
- const node = context.getNode(),
36
- tokens = context.getTokens(),
37
- bracketedContext = new Class(string, node, tokens);
38
-
39
- return bracketedContext;
40
- }
41
- }
@@ -1,39 +0,0 @@
1
- "use strict";
2
-
3
- import PartialContext from "../../context/partial";
4
-
5
- import { ruleFromBNF } from "../../context/partial";
6
-
7
- const bnf = `
8
-
9
- _ ::= metavariable... <END_OF_LINE> ;
10
-
11
- `,
12
- rule = ruleFromBNF(bnf);
13
-
14
- export default class MetavariablePartialContext extends PartialContext {
15
- getMetavariableNode() {
16
- const metavariableNode = this.node; ///
17
-
18
- return metavariableNode;
19
- }
20
-
21
- getMetavariableTokens() {
22
- const metavariableTokens = this.tokens; ///
23
-
24
- return metavariableTokens;
25
- }
26
-
27
- static rule = rule;
28
-
29
- static fromMetavariable(metavariable, context) {
30
- const string = metavariable.getString(),
31
- lexer = context.getLexer(),
32
- parser = context.getParser(),
33
- metavariablePartialContext = PartialContext.fromStringLexerAndParser(MetavariablePartialContext, string, lexer, parser);
34
-
35
- return metavariablePartialContext;
36
- }
37
-
38
- static fromStringLexerAndParser(string, lexer, parser) { return PartialContext.fromStringLexerAndParser(MetavariablePartialContext, string, lexer, parser); }
39
- }
@@ -1,39 +0,0 @@
1
- "use strict";
2
-
3
- import PartialContext from "../../context/partial";
4
-
5
- import { ruleFromBNF } from "../../context/partial";
6
-
7
- const bnf = `
8
-
9
- _ ::= statement... <END_OF_LINE> ;
10
-
11
- `,
12
- rule = ruleFromBNF(bnf);
13
-
14
- export default class StatementPartialContext extends PartialContext {
15
- getStatementNode() {
16
- const statementNode = this.node; ///
17
-
18
- return statementNode;
19
- }
20
-
21
- getStatementTokens() {
22
- const statementTokens = this.tokens; ///
23
-
24
- return statementTokens;
25
- }
26
-
27
- static rule = rule;
28
-
29
- static fromStatement(statement, context) {
30
- const string = statement.getString(),
31
- lexer = context.getLexer(),
32
- parser = context.getParser(),
33
- statementPartialContext = PartialContext.fromStringLexerAndParser(StatementPartialContext, string, lexer, parser);
34
-
35
- return statementPartialContext;
36
- }
37
-
38
- static fromStringLexerAndParser(string, lexer, parser) { return PartialContext.fromStringLexerAndParser(StatementPartialContext, string, lexer, parser); }
39
- }
@@ -1,49 +0,0 @@
1
- "use strict";
2
-
3
- import PartialContext from "../../context/partial";
4
-
5
- import { ruleFromBNF } from "../../context/partial";
6
-
7
- const bnf = `
8
-
9
- _ ::= term... <END_OF_LINE> ;
10
-
11
- `,
12
- rule = ruleFromBNF(bnf);
13
-
14
- export default class TermPartialContext extends PartialContext {
15
- getTermNode() {
16
- const termNode = this.node; ///
17
-
18
- return termNode;
19
- }
20
-
21
- getTermTokens() {
22
- const termTokens = this.tokens; ///
23
-
24
- return termTokens;
25
- }
26
-
27
- static rule = rule;
28
-
29
- static fromTerm(term, context) {
30
- const string = term.getString(),
31
- lexer = context.getLexer(),
32
- parser = context.getParser(),
33
- termPartialContext = PartialContext.fromStringLexerAndParser(TermPartialContext, string, lexer, parser);
34
-
35
- return termPartialContext;
36
- }
37
-
38
- static fromStringLexerAndParser(string, lexer, parser) { return PartialContext.fromStringLexerAndParser(TermPartialContext, string, lexer, parser); }
39
- }
40
-
41
- export function termNodeFromTermString(termString, context) {
42
- const string = termString, ///
43
- lexer = context.getLexer(),
44
- parser = context.getParser(),
45
- termPartialContext = TermPartialContext.fromStringLexerAndParser(string, lexer, parser),
46
- termNode = termPartialContext.getTermNode();
47
-
48
- return termNode;
49
- }
@@ -1,49 +0,0 @@
1
- "use strict";
2
-
3
- import PartialContext from "../../context/partial";
4
-
5
- import { ruleFromBNF } from "../../context/partial";
6
-
7
- const bnf = `
8
-
9
- _ ::= variable... <END_OF_LINE> ;
10
-
11
- `,
12
- rule = ruleFromBNF(bnf);
13
-
14
- export default class VariablePartialContext extends PartialContext {
15
- getVariableNode() {
16
- const variableNode = this.node; ///
17
-
18
- return variableNode;
19
- }
20
-
21
- getVariableTokens() {
22
- const variableTokens = this.tokens; ///
23
-
24
- return variableTokens;
25
- }
26
-
27
- static rule = rule;
28
-
29
- static fromVariable(variable, context) {
30
- const string = variable.getString(),
31
- lexer = context.getLexer(),
32
- parser = context.getParser(),
33
- variablePartialContext = PartialContext.fromStringLexerAndParser(VariablePartialContext, string, context, lexer, parser);
34
-
35
- return variablePartialContext;
36
- }
37
-
38
- static fromStringLexerAndParser(string, lexer, parser) { return PartialContext.fromStringLexerAndParser(VariablePartialContext, string, lexer, parser); }
39
- }
40
-
41
- export function variableNodeFromVariableString(variableString, context) {
42
- const string = variableString, ///
43
- lexer = context.getLexer(),
44
- parser = context.getParser(),
45
- variablePartialContext = VariablePartialContext.fromStringLexerAndParser(string, lexer, parser),
46
- variableNode = variablePartialContext.getVariableNode();
47
-
48
- return variableNode;
49
- }
@@ -1,71 +0,0 @@
1
- "use strict";
2
-
3
- import { BNFLexer } from "occam-lexers";
4
- import { BNFParser } from "occam-parsers";
5
- import { arrayUtilities } from "necessary";
6
-
7
- const { first } = arrayUtilities;
8
-
9
- const bnfLexer = BNFLexer.fromNothing(),
10
- bnfParser = BNFParser.fromNothing();
11
-
12
- export default class PartialContext {
13
- constructor(node, tokens) {
14
- this.node = node;
15
- this.tokens = tokens;
16
- }
17
-
18
- getNode() {
19
- return this.node;
20
- }
21
-
22
- getTokens() {
23
- return this.tokens;
24
- }
25
-
26
- static fromStringLexerAndParser(Class, string, lexer, parser) {
27
- const { rule } = Class,
28
- startRule = rule, ///
29
- content = `${string}
30
- `;
31
-
32
- let tokens = lexer.tokenise(content),
33
- node = parser.parse(tokens, startRule);
34
-
35
- node.someChildNode((childNode) => {
36
- const childNodeNonTerminalNode = childNode.isNonTerminalNode();
37
-
38
- if (childNodeNonTerminalNode) {
39
- node = childNode; ///
40
-
41
- tokens = tokensFromTokensAndNode(tokens, node); ///
42
-
43
- return true;
44
- }
45
- })
46
-
47
- const partialContext = new Class(node, tokens);
48
-
49
- return partialContext;
50
- }
51
- }
52
-
53
- export function ruleFromBNF(bnf) {
54
- const tokens = bnfLexer.tokensFromBNF(bnf),
55
- rules = bnfParser.rulesFromTokens(tokens),
56
- firstRule = first(rules),
57
- rule = firstRule; ///
58
-
59
- return rule;
60
- }
61
-
62
- function tokensFromTokensAndNode(tokens, node) {
63
- const lastSignificantTokenIndex = node.getLastSignificantTokenIndex(tokens),
64
- firstSignificantTokenIndex = node.getFirstSignificantTokenIndex(tokens),
65
- start = firstSignificantTokenIndex, ///
66
- end = lastSignificantTokenIndex + 1;
67
-
68
- tokens = tokens.slice(start, end); ///
69
-
70
- return tokens;
71
- }
@@ -1,38 +0,0 @@
1
- "use strict";
2
-
3
- import ontology from "../../ontology";
4
- import Combinator from "../combinator";
5
- import combinatorBracketedContext from "../../context/bracketed/combinator";
6
-
7
- import { define } from "../../ontology";
8
-
9
- export default define(class BracketedCombinator extends Combinator {
10
- unifyStatement(statement, assignments, stated, context) {
11
- let statementUnifies;
12
-
13
- const statementString = statement.getString();
14
-
15
- context.trace(`Unifying the '${statementString}' statement with the bracketed combinator...`);
16
-
17
- statementUnifies = super.unifyStatement(statement, assignments, stated, context);
18
-
19
- if (statementUnifies) {
20
- context.debug(`...unified the '${statementString}' statement with the bracketed combinator.`);
21
- }
22
-
23
- return statementUnifies;
24
- }
25
-
26
- static name = "BracketedCombinator";
27
-
28
- static fromNothing() {
29
- const { Statement } = ontology,
30
- bracketedStatementNode = combinatorBracketedContext.getBracketedStatementNode(),
31
- statementNode = bracketedStatementNode, ///
32
- context = combinatorBracketedContext, ///
33
- statement = Statement.fromStatementNode(statementNode, context),
34
- bracketedCombinator = new BracketedCombinator(statement);
35
-
36
- return bracketedCombinator;
37
- }
38
- });
@@ -1,72 +0,0 @@
1
- "use strict";
2
-
3
- import ontology from "../ontology";
4
-
5
- import { define } from "../ontology";
6
- import { unifyStatementWithCombinator } from "../process/unify";
7
- import { statementFromJSON, statementToStatementJSON } from "../utilities/json";
8
-
9
- export default define(class Combinator {
10
- constructor(statement) {
11
- this.statement = statement;
12
- }
13
-
14
- getStatement() {
15
- return this.statement;
16
- }
17
-
18
- getString() { return this.statement.getString(); }
19
-
20
- getStatementNode() {
21
- const statementNode = this.statement.getNode();
22
-
23
- return statementNode;
24
- }
25
-
26
- unifyStatement(statement, assignments, stated, context) {
27
- let statementUnifies;
28
-
29
- const combinator = this, ///
30
- statementString = statement.getString(),
31
- combinatorString = combinator.getString();
32
-
33
- context.trace(`Unifying the '${statementString}' statement with the '${combinatorString}' combinator...`);
34
-
35
- const statementUnifiesWithCombinator = unifyStatementWithCombinator(statement, combinator, assignments, stated, context);
36
-
37
- statementUnifies = statementUnifiesWithCombinator; ///
38
-
39
- if (statementUnifies) {
40
- context.debug(`...unified the '${statementString}' statement with the '${combinatorString}' combinator.`);
41
- }
42
-
43
- return statementUnifies;
44
- }
45
-
46
- toJSON() {
47
- const statementJSON = statementToStatementJSON(this.statement),
48
- statement = statementJSON, ///
49
- json = {
50
- statement
51
- };
52
-
53
- return json;
54
- }
55
-
56
- static name = "Combinator";
57
-
58
- static fromJSON(json, context) {
59
- const statement = statementFromJSON(json, context),
60
- combinator = new Combinator(statement);
61
-
62
- return combinator;
63
- }
64
-
65
- static fromCombinatorDeclarationNode(combinatorDeclarationNode, context) {
66
- const { Statement } = ontology,
67
- statement = Statement.fromCombinatorDeclarationNode(combinatorDeclarationNode, context),
68
- combinator = new Combinator(statement);
69
-
70
- return combinator;
71
- }
72
- });