occam-verify-cli 1.0.185 → 1.0.198

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 (244) hide show
  1. package/lib/constants.js +5 -1
  2. package/lib/context/file.js +3 -3
  3. package/lib/dom/assertion/contained.js +12 -24
  4. package/lib/dom/assertion/defined.js +9 -21
  5. package/lib/dom/assertion/property.js +8 -10
  6. package/lib/dom/assertion/satisfies.js +6 -8
  7. package/lib/dom/assertion/subproof.js +3 -5
  8. package/lib/dom/assertion/type.js +6 -8
  9. package/lib/dom/axiom.js +15 -100
  10. package/lib/dom/conjecture.js +5 -4
  11. package/lib/dom/constructor/bracketed.js +6 -7
  12. package/lib/dom/declaration/complexType.js +6 -6
  13. package/lib/dom/declaration/constructor.js +6 -6
  14. package/lib/dom/declaration/metavariable.js +3 -5
  15. package/lib/dom/declaration/type.js +2 -2
  16. package/lib/dom/declaration/variable.js +6 -6
  17. package/lib/dom/declaration.js +14 -16
  18. package/lib/dom/derivation.js +2 -4
  19. package/lib/dom/equality.js +9 -11
  20. package/lib/dom/frame.js +14 -18
  21. package/lib/dom/judgement.js +8 -10
  22. package/lib/dom/lemma.js +5 -4
  23. package/lib/dom/metaLemma.js +5 -4
  24. package/lib/dom/metaType.js +2 -4
  25. package/lib/dom/metatheorem.js +5 -4
  26. package/lib/dom/metavariable.js +12 -15
  27. package/lib/dom/parameter.js +2 -4
  28. package/lib/dom/procedureCall.js +6 -10
  29. package/lib/dom/proof.js +2 -4
  30. package/lib/dom/property.js +16 -51
  31. package/lib/dom/propertyRelation.js +14 -16
  32. package/lib/dom/reference.js +7 -11
  33. package/lib/dom/rule.js +6 -8
  34. package/lib/dom/statement.js +27 -31
  35. package/lib/dom/step.js +4 -6
  36. package/lib/dom/subDerivation.js +2 -4
  37. package/lib/dom/subproof.js +6 -8
  38. package/lib/dom/term.js +12 -20
  39. package/lib/dom/theorem.js +5 -4
  40. package/lib/dom/topLevelAssertion.js +30 -24
  41. package/lib/dom/topLevelMetaAssertion.js +76 -140
  42. package/lib/dom/type.js +8 -25
  43. package/lib/dom/variable.js +5 -11
  44. package/lib/equivalence.js +4 -6
  45. package/lib/mixins/term/verify.js +4 -8
  46. package/lib/node/argument.js +116 -0
  47. package/lib/node/assertion/contained.js +48 -53
  48. package/lib/node/assertion/defined.js +41 -53
  49. package/lib/node/assertion/property.js +23 -53
  50. package/lib/node/assertion/satisfies.js +23 -53
  51. package/lib/node/assertion/subproof.js +16 -53
  52. package/lib/node/assertion/type.js +23 -53
  53. package/lib/node/axiom.js +6 -52
  54. package/lib/node/combinator.js +6 -52
  55. package/lib/node/conclusion.js +16 -53
  56. package/lib/node/conjecture.js +6 -52
  57. package/lib/node/constructor.js +6 -52
  58. package/lib/node/declaration/combinator.js +8 -56
  59. package/lib/node/declaration/complexType.js +42 -86
  60. package/lib/node/declaration/constructor.js +26 -77
  61. package/lib/node/declaration/metavariable.js +30 -53
  62. package/lib/node/declaration/property.js +19 -69
  63. package/lib/node/declaration/type.js +45 -78
  64. package/lib/node/declaration/variable.js +21 -81
  65. package/lib/node/declaration.js +23 -53
  66. package/lib/node/deduction.js +16 -53
  67. package/lib/node/derivation.js +42 -51
  68. package/lib/node/equality.js +32 -53
  69. package/lib/node/error.js +6 -52
  70. package/lib/node/frame.js +30 -53
  71. package/lib/node/judgement.js +23 -53
  72. package/lib/node/label.js +16 -53
  73. package/lib/node/labels.js +116 -0
  74. package/lib/node/lemma.js +6 -52
  75. package/lib/node/metaArgument.js +116 -0
  76. package/lib/node/metaLemma.js +6 -52
  77. package/lib/node/metaType.js +14 -55
  78. package/lib/node/metatheorem.js +6 -52
  79. package/lib/node/metavariable.js +30 -56
  80. package/lib/node/nonTerminal.js +200 -0
  81. package/lib/node/parameter.js +22 -53
  82. package/lib/node/parenthesisedLabel.js +116 -0
  83. package/lib/node/parenthesisedLabels.js +123 -0
  84. package/lib/node/premise.js +23 -53
  85. package/lib/node/procedureCall.js +23 -53
  86. package/lib/node/proof.js +16 -53
  87. package/lib/node/property.js +18 -57
  88. package/lib/node/propertyRelation.js +30 -53
  89. package/lib/node/reference.js +16 -53
  90. package/lib/node/rule.js +44 -53
  91. package/lib/node/statement.js +139 -53
  92. package/lib/node/step.js +37 -53
  93. package/lib/node/subDerivation.js +49 -51
  94. package/lib/node/subproof.js +44 -53
  95. package/lib/node/substitution/frame.js +123 -0
  96. package/lib/node/substitution/reference.js +123 -0
  97. package/lib/node/substitution/statement.js +123 -0
  98. package/lib/node/substitution/term.js +123 -0
  99. package/lib/node/supposition.js +23 -53
  100. package/lib/node/term.js +41 -53
  101. package/lib/node/theorem.js +6 -52
  102. package/lib/node/topLevelAssertion.js +66 -54
  103. package/lib/node/topLevelMetaAssertion.js +45 -54
  104. package/lib/node/type.js +14 -55
  105. package/lib/{node.js → node/types.js} +22 -24
  106. package/lib/node/variable.js +14 -55
  107. package/lib/nominal/parser.js +3 -3
  108. package/lib/nonTerminalNodeMap.js +14 -4
  109. package/lib/ruleNames.js +42 -2
  110. package/lib/substitution/frame.js +5 -7
  111. package/lib/substitution/reference.js +5 -7
  112. package/lib/substitution/term.js +5 -7
  113. package/lib/unifier/metaLevel.js +4 -4
  114. package/lib/utilities/brackets.js +5 -5
  115. package/lib/utilities/json.js +18 -1
  116. package/lib/utilities/node.js +1 -37
  117. package/lib/utilities/subproof.js +13 -4
  118. package/lib/utilities/type.js +16 -4
  119. package/lib/verifier/topLevel.js +6 -6
  120. package/package.json +2 -2
  121. package/src/constants.js +1 -0
  122. package/src/context/file.js +2 -2
  123. package/src/dom/assertion/contained.js +12 -34
  124. package/src/dom/assertion/defined.js +9 -30
  125. package/src/dom/assertion/property.js +7 -12
  126. package/src/dom/assertion/satisfies.js +5 -10
  127. package/src/dom/assertion/subproof.js +2 -6
  128. package/src/dom/assertion/type.js +7 -10
  129. package/src/dom/axiom.js +7 -77
  130. package/src/dom/conjecture.js +6 -1
  131. package/src/dom/constructor/bracketed.js +6 -8
  132. package/src/dom/declaration/complexType.js +8 -7
  133. package/src/dom/declaration/constructor.js +6 -7
  134. package/src/dom/declaration/metavariable.js +2 -6
  135. package/src/dom/declaration/type.js +4 -2
  136. package/src/dom/declaration/variable.js +6 -7
  137. package/src/dom/declaration.js +12 -20
  138. package/src/dom/derivation.js +1 -4
  139. package/src/dom/equality.js +13 -17
  140. package/src/dom/frame.js +11 -25
  141. package/src/dom/judgement.js +7 -12
  142. package/src/dom/lemma.js +6 -1
  143. package/src/dom/metaLemma.js +6 -1
  144. package/src/dom/metaType.js +1 -5
  145. package/src/dom/metatheorem.js +6 -1
  146. package/src/dom/metavariable.js +11 -25
  147. package/src/dom/parameter.js +2 -6
  148. package/src/dom/procedureCall.js +5 -14
  149. package/src/dom/proof.js +1 -4
  150. package/src/dom/property.js +21 -78
  151. package/src/dom/propertyRelation.js +16 -22
  152. package/src/dom/reference.js +6 -18
  153. package/src/dom/rule.js +6 -12
  154. package/src/dom/statement.js +26 -46
  155. package/src/dom/step.js +3 -5
  156. package/src/dom/subDerivation.js +1 -4
  157. package/src/dom/subproof.js +8 -12
  158. package/src/dom/term.js +14 -33
  159. package/src/dom/theorem.js +6 -1
  160. package/src/dom/topLevelAssertion.js +30 -25
  161. package/src/dom/topLevelMetaAssertion.js +87 -55
  162. package/src/dom/type.js +11 -37
  163. package/src/dom/variable.js +4 -12
  164. package/src/equivalence.js +3 -6
  165. package/src/mixins/term/verify.js +5 -11
  166. package/src/node/argument.js +16 -0
  167. package/src/node/assertion/contained.js +49 -3
  168. package/src/node/assertion/defined.js +42 -3
  169. package/src/node/assertion/property.js +19 -3
  170. package/src/node/assertion/satisfies.js +19 -3
  171. package/src/node/assertion/subproof.js +12 -3
  172. package/src/node/assertion/type.js +19 -3
  173. package/src/node/axiom.js +3 -3
  174. package/src/node/combinator.js +3 -3
  175. package/src/node/conclusion.js +12 -3
  176. package/src/node/conjecture.js +3 -3
  177. package/src/node/constructor.js +3 -3
  178. package/src/node/declaration/combinator.js +7 -8
  179. package/src/node/declaration/complexType.js +40 -43
  180. package/src/node/declaration/constructor.js +25 -30
  181. package/src/node/declaration/metavariable.js +26 -3
  182. package/src/node/declaration/property.js +17 -23
  183. package/src/node/declaration/type.js +43 -32
  184. package/src/node/declaration/variable.js +19 -37
  185. package/src/node/declaration.js +19 -3
  186. package/src/node/deduction.js +12 -3
  187. package/src/node/derivation.js +15 -3
  188. package/src/node/equality.js +32 -3
  189. package/src/node/error.js +3 -3
  190. package/src/node/frame.js +26 -3
  191. package/src/node/judgement.js +19 -3
  192. package/src/node/label.js +12 -3
  193. package/src/node/labels.js +16 -0
  194. package/src/node/lemma.js +3 -3
  195. package/src/node/metaArgument.js +16 -0
  196. package/src/node/metaLemma.js +3 -3
  197. package/src/node/metaType.js +15 -8
  198. package/src/node/metatheorem.js +3 -3
  199. package/src/node/metavariable.js +32 -9
  200. package/src/node/nonTerminal.js +112 -0
  201. package/src/node/parameter.js +20 -3
  202. package/src/node/parenthesisedLabel.js +16 -0
  203. package/src/node/parenthesisedLabels.js +23 -0
  204. package/src/node/premise.js +19 -3
  205. package/src/node/procedureCall.js +19 -3
  206. package/src/node/proof.js +12 -3
  207. package/src/node/property.js +18 -12
  208. package/src/node/propertyRelation.js +26 -3
  209. package/src/node/reference.js +12 -3
  210. package/src/node/rule.js +40 -3
  211. package/src/node/statement.js +151 -3
  212. package/src/node/step.js +31 -3
  213. package/src/node/subDerivation.js +22 -3
  214. package/src/node/subproof.js +38 -3
  215. package/src/node/substitution/frame.js +23 -0
  216. package/src/node/substitution/reference.js +23 -0
  217. package/src/node/substitution/statement.js +23 -0
  218. package/src/node/substitution/term.js +23 -0
  219. package/src/node/supposition.js +19 -3
  220. package/src/node/term.js +38 -3
  221. package/src/node/theorem.js +3 -3
  222. package/src/node/topLevelAssertion.js +69 -3
  223. package/src/node/topLevelMetaAssertion.js +40 -3
  224. package/src/node/type.js +15 -8
  225. package/src/node/types.js +16 -0
  226. package/src/node/variable.js +15 -8
  227. package/src/nominal/parser.js +1 -1
  228. package/src/nonTerminalNodeMap.js +67 -37
  229. package/src/ruleNames.js +11 -1
  230. package/src/substitution/frame.js +7 -10
  231. package/src/substitution/reference.js +7 -10
  232. package/src/substitution/term.js +7 -9
  233. package/src/unifier/metaLevel.js +2 -3
  234. package/src/utilities/brackets.js +8 -8
  235. package/src/utilities/json.js +19 -0
  236. package/src/utilities/node.js +0 -27
  237. package/src/utilities/subproof.js +22 -6
  238. package/src/utilities/type.js +9 -0
  239. package/src/verifier/topLevel.js +5 -10
  240. package/lib/defaultTerminalNode.js +0 -20
  241. package/lib/mixins/node.js +0 -145
  242. package/src/defaultTerminalNode.js +0 -7
  243. package/src/mixins/node.js +0 -201
  244. package/src/node.js +0 -29
@@ -1,20 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return _default;
9
- }
10
- });
11
- var _Node = /*#__PURE__*/ _interop_require_default(require("./Node"));
12
- function _interop_require_default(obj) {
13
- return obj && obj.__esModule ? obj : {
14
- default: obj
15
- };
16
- }
17
- var defaultNonTerminalNode = _Node.default; ///
18
- var _default = defaultNonTerminalNode;
19
-
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWZhdWx0VGVybWluYWxOb2RlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgTm9kZSBmcm9tIFwiLi9Ob2RlXCI7XG5cbmNvbnN0IGRlZmF1bHROb25UZXJtaW5hbE5vZGUgPSBOb2RlOyAgLy8vXG5cbmV4cG9ydCBkZWZhdWx0IGRlZmF1bHROb25UZXJtaW5hbE5vZGU7XG4iXSwibmFtZXMiOlsiZGVmYXVsdE5vblRlcm1pbmFsTm9kZSIsIk5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQU1BOzs7ZUFBQTs7OzJEQUppQjs7Ozs7O0FBRWpCLElBQU1BLHlCQUF5QkMsYUFBSSxFQUFHLEdBQUc7SUFFekMsV0FBZUQifQ==
@@ -1,145 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
8
- return _default;
9
- }
10
- });
11
- function fromFirstChildNode(callback) {
12
- var result;
13
- var firstIndex = 0;
14
- this.forwardsSomeChildNode(function(childNode, index) {
15
- if (index === firstIndex) {
16
- var firstChildNode = childNode; ///
17
- result = callback(firstChildNode);
18
- return true;
19
- }
20
- });
21
- return result;
22
- }
23
- function fromSecondChildNode(callback) {
24
- var result;
25
- var secondIndex = 1;
26
- this.forwardsSomeChildNode(function(childNode, index) {
27
- if (index === secondIndex) {
28
- var firstChildNode = childNode; ///
29
- result = callback(firstChildNode);
30
- return true;
31
- }
32
- });
33
- return result;
34
- }
35
- function fromThirdChildNode(callback) {
36
- var result;
37
- var thirdIndex = 2;
38
- this.forwardsSomeChildNode(function(childNode, index) {
39
- if (index === thirdIndex) {
40
- var thirdChildNode = childNode; ///
41
- result = callback(thirdChildNode);
42
- return true;
43
- }
44
- });
45
- return result;
46
- }
47
- function fromFourthChildNode(callback) {
48
- var result;
49
- var fourthIndex = 3;
50
- this.forwardsSomeChildNode(function(childNode, index) {
51
- if (index === fourthIndex) {
52
- var fourthChildNode = childNode; ///
53
- result = callback(fourthChildNode);
54
- return true;
55
- }
56
- });
57
- return result;
58
- }
59
- function fromFifthChildNode(callback) {
60
- var result;
61
- var fifthIndex = 4;
62
- this.forwardsSomeChildNode(function(childNode, index) {
63
- if (index === fifthIndex) {
64
- var fifthChildNode = childNode; ///
65
- result = callback(fifthChildNode);
66
- return true;
67
- }
68
- });
69
- return result;
70
- }
71
- function fromFirstLastChildNode(callback) {
72
- var result;
73
- var multiplicity = this.getMultiplicity(), firstLastIndex = multiplicity - 1;
74
- this.backwardsSomeChildNode(function(childNode, index) {
75
- if (index === firstLastIndex) {
76
- var firstLastChildNode = childNode; ///
77
- result = callback(firstLastChildNode);
78
- return true;
79
- }
80
- });
81
- return result;
82
- }
83
- function fromSecondLastChildNode(callback) {
84
- var result;
85
- var multiplicity = this.getMultiplicity(), secondLastIndex = multiplicity - 2;
86
- this.backwardsSomeChildNode(function(childNode, index) {
87
- if (index === secondLastIndex) {
88
- var secondLastChildNode = childNode; ///
89
- result = callback(secondLastChildNode);
90
- return true;
91
- }
92
- });
93
- return result;
94
- }
95
- function fromThirdLastChildNode(callback) {
96
- var result;
97
- var multiplicity = this.getMultiplicity(), thirdLastIndex = multiplicity - 3;
98
- this.backwardsSomeChildNode(function(childNode, index) {
99
- if (index === thirdLastIndex) {
100
- var thirdLastChildNode = childNode; ///
101
- result = callback(thirdLastChildNode);
102
- return true;
103
- }
104
- });
105
- return result;
106
- }
107
- function fromFourthLastChildNode(callback) {
108
- var result;
109
- var multiplicity = this.getMultiplicity(), fourthLastIndex = multiplicity - 4;
110
- this.backwardsSomeChildNode(function(childNode, index) {
111
- if (index === fourthLastIndex) {
112
- var fourthLastChildNode = childNode; ///
113
- result = callback(fourthLastChildNode);
114
- return true;
115
- }
116
- });
117
- return result;
118
- }
119
- function fromFifthLastChildNode(callback) {
120
- var result;
121
- var multiplicity = this.getMultiplicity(), fifthLastIndex = multiplicity - 5;
122
- this.backwardsSomeChildNode(function(childNode, index) {
123
- if (index === fifthLastIndex) {
124
- var fifthLastChildNode = childNode; ///
125
- result = callback(fifthLastChildNode);
126
- return true;
127
- }
128
- });
129
- return result;
130
- }
131
- var nodeMixins = {
132
- fromFirstChildNode: fromFirstChildNode,
133
- fromSecondChildNode: fromSecondChildNode,
134
- fromThirdChildNode: fromThirdChildNode,
135
- fromFourthChildNode: fromFourthChildNode,
136
- fromFifthChildNode: fromFifthChildNode,
137
- fromFirstLastChildNode: fromFirstLastChildNode,
138
- fromSecondLastChildNode: fromSecondLastChildNode,
139
- fromThirdLastChildNode: fromThirdLastChildNode,
140
- fromFourthLastChildNode: fromFourthLastChildNode,
141
- fromFifthLastChildNode: fromFifthLastChildNode
142
- };
143
- var _default = nodeMixins;
144
-
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taXhpbnMvbm9kZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZnVuY3Rpb24gZnJvbUZpcnN0Q2hpbGROb2RlKGNhbGxiYWNrKSB7XG4gIGxldCByZXN1bHQ7XG5cbiAgY29uc3QgZmlyc3RJbmRleCA9IDA7XG5cbiAgdGhpcy5mb3J3YXJkc1NvbWVDaGlsZE5vZGUoKGNoaWxkTm9kZSwgaW5kZXgpID0+IHtcbiAgICBpZiAoaW5kZXggPT09IGZpcnN0SW5kZXgpIHtcbiAgICAgIGNvbnN0IGZpcnN0Q2hpbGROb2RlID0gY2hpbGROb2RlOyAvLy9cblxuICAgICAgcmVzdWx0ID0gY2FsbGJhY2soZmlyc3RDaGlsZE5vZGUpO1xuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIGZyb21TZWNvbmRDaGlsZE5vZGUoY2FsbGJhY2spIHtcbiAgbGV0IHJlc3VsdDtcblxuICBjb25zdCBzZWNvbmRJbmRleCA9IDE7XG5cbiAgdGhpcy5mb3J3YXJkc1NvbWVDaGlsZE5vZGUoKGNoaWxkTm9kZSwgaW5kZXgpID0+IHtcbiAgICBpZiAoaW5kZXggPT09IHNlY29uZEluZGV4KSB7XG4gICAgICBjb25zdCBmaXJzdENoaWxkTm9kZSA9IGNoaWxkTm9kZTsgLy8vXG5cbiAgICAgIHJlc3VsdCA9IGNhbGxiYWNrKGZpcnN0Q2hpbGROb2RlKTtcblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBmcm9tVGhpcmRDaGlsZE5vZGUoY2FsbGJhY2spIHtcbiAgbGV0IHJlc3VsdDtcblxuICBjb25zdCB0aGlyZEluZGV4ID0gMjtcblxuICB0aGlzLmZvcndhcmRzU29tZUNoaWxkTm9kZSgoY2hpbGROb2RlLCBpbmRleCkgPT4ge1xuICAgIGlmIChpbmRleCA9PT0gdGhpcmRJbmRleCkge1xuICAgICAgY29uc3QgdGhpcmRDaGlsZE5vZGUgPSBjaGlsZE5vZGU7IC8vL1xuXG4gICAgICByZXN1bHQgPSBjYWxsYmFjayh0aGlyZENoaWxkTm9kZSk7XG5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gZnJvbUZvdXJ0aENoaWxkTm9kZShjYWxsYmFjaykge1xuICBsZXQgcmVzdWx0O1xuXG4gIGNvbnN0IGZvdXJ0aEluZGV4ID0gMztcblxuICB0aGlzLmZvcndhcmRzU29tZUNoaWxkTm9kZSgoY2hpbGROb2RlLCBpbmRleCkgPT4ge1xuICAgIGlmIChpbmRleCA9PT0gZm91cnRoSW5kZXgpIHtcbiAgICAgIGNvbnN0IGZvdXJ0aENoaWxkTm9kZSA9IGNoaWxkTm9kZTsgLy8vXG5cbiAgICAgIHJlc3VsdCA9IGNhbGxiYWNrKGZvdXJ0aENoaWxkTm9kZSk7XG5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gZnJvbUZpZnRoQ2hpbGROb2RlKGNhbGxiYWNrKSB7XG4gIGxldCByZXN1bHQ7XG5cbiAgY29uc3QgZmlmdGhJbmRleCA9IDQ7XG5cbiAgdGhpcy5mb3J3YXJkc1NvbWVDaGlsZE5vZGUoKGNoaWxkTm9kZSwgaW5kZXgpID0+IHtcbiAgICBpZiAoaW5kZXggPT09IGZpZnRoSW5kZXgpIHtcbiAgICAgIGNvbnN0IGZpZnRoQ2hpbGROb2RlID0gY2hpbGROb2RlOyAvLy9cblxuICAgICAgcmVzdWx0ID0gY2FsbGJhY2soZmlmdGhDaGlsZE5vZGUpO1xuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIGZyb21GaXJzdExhc3RDaGlsZE5vZGUoY2FsbGJhY2spIHtcbiAgbGV0IHJlc3VsdDtcblxuICBjb25zdCBtdWx0aXBsaWNpdHkgPSB0aGlzLmdldE11bHRpcGxpY2l0eSgpLFxuICAgICAgICBmaXJzdExhc3RJbmRleCA9IG11bHRpcGxpY2l0eSAtIDE7XG5cbiAgdGhpcy5iYWNrd2FyZHNTb21lQ2hpbGROb2RlKChjaGlsZE5vZGUsIGluZGV4KSA9PiB7XG4gICAgaWYgKGluZGV4ID09PSBmaXJzdExhc3RJbmRleCkge1xuICAgICAgY29uc3QgZmlyc3RMYXN0Q2hpbGROb2RlID0gY2hpbGROb2RlOyAvLy9cblxuICAgICAgcmVzdWx0ID0gY2FsbGJhY2soZmlyc3RMYXN0Q2hpbGROb2RlKTtcblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBmcm9tU2Vjb25kTGFzdENoaWxkTm9kZShjYWxsYmFjaykge1xuICBsZXQgcmVzdWx0O1xuXG4gIGNvbnN0IG11bHRpcGxpY2l0eSA9IHRoaXMuZ2V0TXVsdGlwbGljaXR5KCksXG4gICAgICAgIHNlY29uZExhc3RJbmRleCA9IG11bHRpcGxpY2l0eSAtIDI7XG5cbiAgdGhpcy5iYWNrd2FyZHNTb21lQ2hpbGROb2RlKChjaGlsZE5vZGUsIGluZGV4KSA9PiB7XG4gICAgaWYgKGluZGV4ID09PSBzZWNvbmRMYXN0SW5kZXgpIHtcbiAgICAgIGNvbnN0IHNlY29uZExhc3RDaGlsZE5vZGUgPSBjaGlsZE5vZGU7IC8vL1xuXG4gICAgICByZXN1bHQgPSBjYWxsYmFjayhzZWNvbmRMYXN0Q2hpbGROb2RlKTtcblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBmcm9tVGhpcmRMYXN0Q2hpbGROb2RlKGNhbGxiYWNrKSB7XG4gIGxldCByZXN1bHQ7XG5cbiAgY29uc3QgbXVsdGlwbGljaXR5ID0gdGhpcy5nZXRNdWx0aXBsaWNpdHkoKSxcbiAgICAgICAgdGhpcmRMYXN0SW5kZXggPSBtdWx0aXBsaWNpdHkgLSAzO1xuXG4gIHRoaXMuYmFja3dhcmRzU29tZUNoaWxkTm9kZSgoY2hpbGROb2RlLCBpbmRleCkgPT4ge1xuICAgIGlmIChpbmRleCA9PT0gdGhpcmRMYXN0SW5kZXgpIHtcbiAgICAgIGNvbnN0IHRoaXJkTGFzdENoaWxkTm9kZSA9IGNoaWxkTm9kZTsgLy8vXG5cbiAgICAgIHJlc3VsdCA9IGNhbGxiYWNrKHRoaXJkTGFzdENoaWxkTm9kZSk7XG5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gZnJvbUZvdXJ0aExhc3RDaGlsZE5vZGUoY2FsbGJhY2spIHtcbiAgbGV0IHJlc3VsdDtcblxuICBjb25zdCBtdWx0aXBsaWNpdHkgPSB0aGlzLmdldE11bHRpcGxpY2l0eSgpLFxuICAgICAgICBmb3VydGhMYXN0SW5kZXggPSBtdWx0aXBsaWNpdHkgLSA0O1xuXG4gIHRoaXMuYmFja3dhcmRzU29tZUNoaWxkTm9kZSgoY2hpbGROb2RlLCBpbmRleCkgPT4ge1xuICAgIGlmIChpbmRleCA9PT0gZm91cnRoTGFzdEluZGV4KSB7XG4gICAgICBjb25zdCBmb3VydGhMYXN0Q2hpbGROb2RlID0gY2hpbGROb2RlOyAvLy9cblxuICAgICAgcmVzdWx0ID0gY2FsbGJhY2soZm91cnRoTGFzdENoaWxkTm9kZSk7XG5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gZnJvbUZpZnRoTGFzdENoaWxkTm9kZShjYWxsYmFjaykge1xuICBsZXQgcmVzdWx0O1xuXG4gIGNvbnN0IG11bHRpcGxpY2l0eSA9IHRoaXMuZ2V0TXVsdGlwbGljaXR5KCksXG4gICAgICAgIGZpZnRoTGFzdEluZGV4ID0gbXVsdGlwbGljaXR5IC0gNTtcblxuICB0aGlzLmJhY2t3YXJkc1NvbWVDaGlsZE5vZGUoKGNoaWxkTm9kZSwgaW5kZXgpID0+IHtcbiAgICBpZiAoaW5kZXggPT09IGZpZnRoTGFzdEluZGV4KSB7XG4gICAgICBjb25zdCBmaWZ0aExhc3RDaGlsZE5vZGUgPSBjaGlsZE5vZGU7IC8vL1xuXG4gICAgICByZXN1bHQgPSBjYWxsYmFjayhmaWZ0aExhc3RDaGlsZE5vZGUpO1xuXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmNvbnN0IG5vZGVNaXhpbnMgPSB7XG4gIGZyb21GaXJzdENoaWxkTm9kZSxcbiAgZnJvbVNlY29uZENoaWxkTm9kZSxcbiAgZnJvbVRoaXJkQ2hpbGROb2RlLFxuICBmcm9tRm91cnRoQ2hpbGROb2RlLFxuICBmcm9tRmlmdGhDaGlsZE5vZGUsXG4gIGZyb21GaXJzdExhc3RDaGlsZE5vZGUsXG4gIGZyb21TZWNvbmRMYXN0Q2hpbGROb2RlLFxuICBmcm9tVGhpcmRMYXN0Q2hpbGROb2RlLFxuICBmcm9tRm91cnRoTGFzdENoaWxkTm9kZSxcbiAgZnJvbUZpZnRoTGFzdENoaWxkTm9kZVxufTtcblxuZXhwb3J0IGRlZmF1bHQgbm9kZU1peGlucztcbiJdLCJuYW1lcyI6WyJmcm9tRmlyc3RDaGlsZE5vZGUiLCJjYWxsYmFjayIsInJlc3VsdCIsImZpcnN0SW5kZXgiLCJmb3J3YXJkc1NvbWVDaGlsZE5vZGUiLCJjaGlsZE5vZGUiLCJpbmRleCIsImZpcnN0Q2hpbGROb2RlIiwiZnJvbVNlY29uZENoaWxkTm9kZSIsInNlY29uZEluZGV4IiwiZnJvbVRoaXJkQ2hpbGROb2RlIiwidGhpcmRJbmRleCIsInRoaXJkQ2hpbGROb2RlIiwiZnJvbUZvdXJ0aENoaWxkTm9kZSIsImZvdXJ0aEluZGV4IiwiZm91cnRoQ2hpbGROb2RlIiwiZnJvbUZpZnRoQ2hpbGROb2RlIiwiZmlmdGhJbmRleCIsImZpZnRoQ2hpbGROb2RlIiwiZnJvbUZpcnN0TGFzdENoaWxkTm9kZSIsIm11bHRpcGxpY2l0eSIsImdldE11bHRpcGxpY2l0eSIsImZpcnN0TGFzdEluZGV4IiwiYmFja3dhcmRzU29tZUNoaWxkTm9kZSIsImZpcnN0TGFzdENoaWxkTm9kZSIsImZyb21TZWNvbmRMYXN0Q2hpbGROb2RlIiwic2Vjb25kTGFzdEluZGV4Iiwic2Vjb25kTGFzdENoaWxkTm9kZSIsImZyb21UaGlyZExhc3RDaGlsZE5vZGUiLCJ0aGlyZExhc3RJbmRleCIsInRoaXJkTGFzdENoaWxkTm9kZSIsImZyb21Gb3VydGhMYXN0Q2hpbGROb2RlIiwiZm91cnRoTGFzdEluZGV4IiwiZm91cnRoTGFzdENoaWxkTm9kZSIsImZyb21GaWZ0aExhc3RDaGlsZE5vZGUiLCJmaWZ0aExhc3RJbmRleCIsImZpZnRoTGFzdENoaWxkTm9kZSIsIm5vZGVNaXhpbnMiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQXdNQTs7O2VBQUE7OztBQXRNQSxTQUFTQSxtQkFBbUJDLFFBQVE7SUFDbEMsSUFBSUM7SUFFSixJQUFNQyxhQUFhO0lBRW5CLElBQUksQ0FBQ0MscUJBQXFCLENBQUMsU0FBQ0MsV0FBV0M7UUFDckMsSUFBSUEsVUFBVUgsWUFBWTtZQUN4QixJQUFNSSxpQkFBaUJGLFdBQVcsR0FBRztZQUVyQ0gsU0FBU0QsU0FBU007WUFFbEIsT0FBTztRQUNUO0lBQ0Y7SUFFQSxPQUFPTDtBQUNUO0FBRUEsU0FBU00sb0JBQW9CUCxRQUFRO0lBQ25DLElBQUlDO0lBRUosSUFBTU8sY0FBYztJQUVwQixJQUFJLENBQUNMLHFCQUFxQixDQUFDLFNBQUNDLFdBQVdDO1FBQ3JDLElBQUlBLFVBQVVHLGFBQWE7WUFDekIsSUFBTUYsaUJBQWlCRixXQUFXLEdBQUc7WUFFckNILFNBQVNELFNBQVNNO1lBRWxCLE9BQU87UUFDVDtJQUNGO0lBRUEsT0FBT0w7QUFDVDtBQUVBLFNBQVNRLG1CQUFtQlQsUUFBUTtJQUNsQyxJQUFJQztJQUVKLElBQU1TLGFBQWE7SUFFbkIsSUFBSSxDQUFDUCxxQkFBcUIsQ0FBQyxTQUFDQyxXQUFXQztRQUNyQyxJQUFJQSxVQUFVSyxZQUFZO1lBQ3hCLElBQU1DLGlCQUFpQlAsV0FBVyxHQUFHO1lBRXJDSCxTQUFTRCxTQUFTVztZQUVsQixPQUFPO1FBQ1Q7SUFDRjtJQUVB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
@@ -1,7 +0,0 @@
1
- "use strict";
2
-
3
- import Node from "./Node";
4
-
5
- const defaultNonTerminalNode = Node; ///
6
-
7
- export default defaultNonTerminalNode;
@@ -1,201 +0,0 @@
1
- "use strict";
2
-
3
- function fromFirstChildNode(callback) {
4
- let result;
5
-
6
- const firstIndex = 0;
7
-
8
- this.forwardsSomeChildNode((childNode, index) => {
9
- if (index === firstIndex) {
10
- const firstChildNode = childNode; ///
11
-
12
- result = callback(firstChildNode);
13
-
14
- return true;
15
- }
16
- });
17
-
18
- return result;
19
- }
20
-
21
- function fromSecondChildNode(callback) {
22
- let result;
23
-
24
- const secondIndex = 1;
25
-
26
- this.forwardsSomeChildNode((childNode, index) => {
27
- if (index === secondIndex) {
28
- const firstChildNode = childNode; ///
29
-
30
- result = callback(firstChildNode);
31
-
32
- return true;
33
- }
34
- });
35
-
36
- return result;
37
- }
38
-
39
- function fromThirdChildNode(callback) {
40
- let result;
41
-
42
- const thirdIndex = 2;
43
-
44
- this.forwardsSomeChildNode((childNode, index) => {
45
- if (index === thirdIndex) {
46
- const thirdChildNode = childNode; ///
47
-
48
- result = callback(thirdChildNode);
49
-
50
- return true;
51
- }
52
- });
53
-
54
- return result;
55
- }
56
-
57
- function fromFourthChildNode(callback) {
58
- let result;
59
-
60
- const fourthIndex = 3;
61
-
62
- this.forwardsSomeChildNode((childNode, index) => {
63
- if (index === fourthIndex) {
64
- const fourthChildNode = childNode; ///
65
-
66
- result = callback(fourthChildNode);
67
-
68
- return true;
69
- }
70
- });
71
-
72
- return result;
73
- }
74
-
75
- function fromFifthChildNode(callback) {
76
- let result;
77
-
78
- const fifthIndex = 4;
79
-
80
- this.forwardsSomeChildNode((childNode, index) => {
81
- if (index === fifthIndex) {
82
- const fifthChildNode = childNode; ///
83
-
84
- result = callback(fifthChildNode);
85
-
86
- return true;
87
- }
88
- });
89
-
90
- return result;
91
- }
92
-
93
- function fromFirstLastChildNode(callback) {
94
- let result;
95
-
96
- const multiplicity = this.getMultiplicity(),
97
- firstLastIndex = multiplicity - 1;
98
-
99
- this.backwardsSomeChildNode((childNode, index) => {
100
- if (index === firstLastIndex) {
101
- const firstLastChildNode = childNode; ///
102
-
103
- result = callback(firstLastChildNode);
104
-
105
- return true;
106
- }
107
- });
108
-
109
- return result;
110
- }
111
-
112
- function fromSecondLastChildNode(callback) {
113
- let result;
114
-
115
- const multiplicity = this.getMultiplicity(),
116
- secondLastIndex = multiplicity - 2;
117
-
118
- this.backwardsSomeChildNode((childNode, index) => {
119
- if (index === secondLastIndex) {
120
- const secondLastChildNode = childNode; ///
121
-
122
- result = callback(secondLastChildNode);
123
-
124
- return true;
125
- }
126
- });
127
-
128
- return result;
129
- }
130
-
131
- function fromThirdLastChildNode(callback) {
132
- let result;
133
-
134
- const multiplicity = this.getMultiplicity(),
135
- thirdLastIndex = multiplicity - 3;
136
-
137
- this.backwardsSomeChildNode((childNode, index) => {
138
- if (index === thirdLastIndex) {
139
- const thirdLastChildNode = childNode; ///
140
-
141
- result = callback(thirdLastChildNode);
142
-
143
- return true;
144
- }
145
- });
146
-
147
- return result;
148
- }
149
-
150
- function fromFourthLastChildNode(callback) {
151
- let result;
152
-
153
- const multiplicity = this.getMultiplicity(),
154
- fourthLastIndex = multiplicity - 4;
155
-
156
- this.backwardsSomeChildNode((childNode, index) => {
157
- if (index === fourthLastIndex) {
158
- const fourthLastChildNode = childNode; ///
159
-
160
- result = callback(fourthLastChildNode);
161
-
162
- return true;
163
- }
164
- });
165
-
166
- return result;
167
- }
168
-
169
- function fromFifthLastChildNode(callback) {
170
- let result;
171
-
172
- const multiplicity = this.getMultiplicity(),
173
- fifthLastIndex = multiplicity - 5;
174
-
175
- this.backwardsSomeChildNode((childNode, index) => {
176
- if (index === fifthLastIndex) {
177
- const fifthLastChildNode = childNode; ///
178
-
179
- result = callback(fifthLastChildNode);
180
-
181
- return true;
182
- }
183
- });
184
-
185
- return result;
186
- }
187
-
188
- const nodeMixins = {
189
- fromFirstChildNode,
190
- fromSecondChildNode,
191
- fromThirdChildNode,
192
- fromFourthChildNode,
193
- fromFifthChildNode,
194
- fromFirstLastChildNode,
195
- fromSecondLastChildNode,
196
- fromThirdLastChildNode,
197
- fromFourthLastChildNode,
198
- fromFifthLastChildNode
199
- };
200
-
201
- export default nodeMixins;
package/src/node.js DELETED
@@ -1,29 +0,0 @@
1
- "use strict";
2
-
3
- import { NonTerminalNode } from "occam-parsers";
4
-
5
- import nodeMixins from "./mixins/node";
6
-
7
- class Node extends NonTerminalNode {
8
- static fromRuleNameChildNodesOpacityAndPrecedence(Class, ruleName, childNodes, opacity, precedence) {
9
- if (precedence === undefined) {
10
- precedence = opacity; ///
11
-
12
- opacity = childNodes; ///
13
-
14
- childNodes = ruleName; ///
15
-
16
- ruleName = Class; ///
17
-
18
- Class = Node; ///
19
- }
20
-
21
- const node = NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(Class, ruleName, childNodes, opacity, precedence);
22
-
23
- return node;
24
- }
25
- }
26
-
27
- Object.assign(Node.prototype, nodeMixins);
28
-
29
- export default Node;