occam-verify-cli 1.0.476 → 1.0.479

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 (247) hide show
  1. package/lib/context/file.js +8 -2
  2. package/lib/context/scoped.js +9 -3
  3. package/lib/element/assertion/contained.js +3 -3
  4. package/lib/element/assertion/defined.js +46 -6
  5. package/lib/element/assertion/property.js +45 -5
  6. package/lib/element/assertion/satisfies.js +45 -5
  7. package/lib/element/assertion/subproof.js +4 -4
  8. package/lib/element/assertion/type.js +45 -5
  9. package/lib/element/assumption.js +4 -4
  10. package/lib/element/combinator/bracketed.js +3 -3
  11. package/lib/element/combinator.js +3 -3
  12. package/lib/element/conclusion.js +3 -3
  13. package/lib/element/constructor/bracketed.js +45 -5
  14. package/lib/element/constructor.js +3 -3
  15. package/lib/element/declaration/combinator.js +3 -4
  16. package/lib/element/declaration/complexType.js +3 -4
  17. package/lib/element/declaration/constructor.js +3 -4
  18. package/lib/element/declaration/metavariable.js +3 -4
  19. package/lib/element/declaration/simpleType.js +3 -4
  20. package/lib/element/declaration/typePrefix.js +3 -4
  21. package/lib/element/declaration/variable.js +3 -4
  22. package/lib/element/deduction.js +3 -3
  23. package/lib/element/derivation.js +5 -4
  24. package/lib/element/equality.js +4 -4
  25. package/lib/element/equivalence.js +5 -4
  26. package/lib/element/equivalences.js +5 -4
  27. package/lib/element/error.js +3 -3
  28. package/lib/element/frame.js +6 -5
  29. package/lib/element/hypothesis.js +3 -3
  30. package/lib/element/judgement.js +4 -4
  31. package/lib/element/label.js +3 -3
  32. package/lib/element/metaType.js +3 -3
  33. package/lib/element/metavariable.js +47 -6
  34. package/lib/element/parameter.js +3 -3
  35. package/lib/element/procedureCall.js +3 -3
  36. package/lib/element/procedureReference.js +3 -3
  37. package/lib/element/proof.js +3 -3
  38. package/lib/element/proofAssertion/premise.js +3 -4
  39. package/lib/element/proofAssertion/step.js +45 -5
  40. package/lib/element/proofAssertion/supposition.js +3 -4
  41. package/lib/element/property.js +3 -3
  42. package/lib/element/propertyRelation.js +3 -3
  43. package/lib/element/reference.js +4 -4
  44. package/lib/element/rule.js +48 -6
  45. package/lib/element/section.js +3 -3
  46. package/lib/element/signature.js +6 -5
  47. package/lib/element/statement.js +5 -4
  48. package/lib/element/subDerivation.js +5 -4
  49. package/lib/element/subproof.js +4 -4
  50. package/lib/element/substitution/frame.js +3 -4
  51. package/lib/element/substitution/reference.js +3 -4
  52. package/lib/element/substitution/statement.js +45 -5
  53. package/lib/element/substitution/term.js +3 -4
  54. package/lib/element/substitutions.js +5 -4
  55. package/lib/element/term.js +5 -4
  56. package/lib/element/topLevelAssertion/axiom.js +3 -4
  57. package/lib/element/topLevelAssertion/conjecture.js +3 -4
  58. package/lib/element/topLevelAssertion/lemma.js +3 -4
  59. package/lib/element/topLevelAssertion/theorem.js +3 -4
  60. package/lib/element/topLevelMetaAssertion/metaLemma.js +3 -4
  61. package/lib/element/topLevelMetaAssertion/metatheorem.js +3 -4
  62. package/lib/element/type.js +5 -4
  63. package/lib/element/typePrefix.js +3 -3
  64. package/lib/element/variable.js +4 -4
  65. package/lib/elements.js +27 -0
  66. package/lib/metaTypes.js +10 -5
  67. package/lib/node/argument.js +4 -9
  68. package/lib/node/assertion.js +4 -9
  69. package/lib/node/assumption.js +6 -11
  70. package/lib/node/body.js +4 -9
  71. package/lib/node/combinator.js +4 -9
  72. package/lib/node/conclusion.js +4 -9
  73. package/lib/node/constructor.js +4 -9
  74. package/lib/node/declaration.js +4 -9
  75. package/lib/node/deduction.js +4 -9
  76. package/lib/node/derivation.js +4 -9
  77. package/lib/node/document.js +4 -9
  78. package/lib/node/equality.js +4 -9
  79. package/lib/node/equivalence.js +4 -9
  80. package/lib/node/equivalences.js +4 -9
  81. package/lib/node/error.js +4 -9
  82. package/lib/node/frame.js +4 -9
  83. package/lib/node/header.js +4 -9
  84. package/lib/node/hypothesis.js +4 -9
  85. package/lib/node/judgement.js +4 -9
  86. package/lib/node/label.js +4 -9
  87. package/lib/node/labels.js +4 -9
  88. package/lib/node/metaArgument.js +4 -9
  89. package/lib/node/metaType.js +4 -9
  90. package/lib/node/metavariable.js +4 -9
  91. package/lib/node/parameter.js +4 -9
  92. package/lib/node/parenthesisedLabel.js +4 -9
  93. package/lib/node/parenthesisedLabels.js +4 -9
  94. package/lib/node/placeholder.js +4 -9
  95. package/lib/node/procedureCall.js +4 -9
  96. package/lib/node/procedureReference.js +4 -9
  97. package/lib/node/proof.js +4 -9
  98. package/lib/node/proofAssertion.js +4 -9
  99. package/lib/node/property.js +4 -9
  100. package/lib/node/propertyRelation.js +4 -9
  101. package/lib/node/qualification.js +4 -9
  102. package/lib/node/reference.js +4 -9
  103. package/lib/node/rule.js +4 -9
  104. package/lib/node/section.js +4 -9
  105. package/lib/node/signature.js +4 -9
  106. package/lib/node/statement.js +4 -9
  107. package/lib/node/subDerivation.js +4 -9
  108. package/lib/node/subproof.js +4 -9
  109. package/lib/node/substitution.js +4 -9
  110. package/lib/node/term.js +4 -9
  111. package/lib/node/topLevelAssertion.js +4 -9
  112. package/lib/node/topLevelMetaAssertion.js +4 -9
  113. package/lib/node/type.js +4 -9
  114. package/lib/node/typePrefix.js +4 -9
  115. package/lib/node/types.js +4 -9
  116. package/lib/node/variable.js +4 -9
  117. package/lib/nominal/parser.js +3 -3
  118. package/lib/types.js +8 -3
  119. package/lib/utilities/element.js +62 -57
  120. package/lib/utilities/json.js +37 -32
  121. package/lib/utilities/unification.js +11 -6
  122. package/lib/utilities/validation.js +8 -3
  123. package/package.json +6 -6
  124. package/src/context/file.js +3 -1
  125. package/src/context/scoped.js +3 -1
  126. package/src/element/assertion/contained.js +1 -2
  127. package/src/element/assertion/defined.js +2 -4
  128. package/src/element/assertion/property.js +2 -4
  129. package/src/element/assertion/satisfies.js +2 -3
  130. package/src/element/assertion/subproof.js +2 -3
  131. package/src/element/assertion/type.js +2 -4
  132. package/src/element/assumption.js +2 -3
  133. package/src/element/combinator/bracketed.js +1 -1
  134. package/src/element/combinator.js +2 -3
  135. package/src/element/conclusion.js +2 -3
  136. package/src/element/constructor/bracketed.js +2 -3
  137. package/src/element/constructor.js +2 -3
  138. package/src/element/declaration/combinator.js +1 -3
  139. package/src/element/declaration/complexType.js +1 -3
  140. package/src/element/declaration/constructor.js +1 -4
  141. package/src/element/declaration/metavariable.js +1 -3
  142. package/src/element/declaration/simpleType.js +1 -3
  143. package/src/element/declaration/typePrefix.js +1 -3
  144. package/src/element/declaration/variable.js +1 -3
  145. package/src/element/deduction.js +2 -3
  146. package/src/element/derivation.js +4 -3
  147. package/src/element/equality.js +2 -3
  148. package/src/element/equivalence.js +3 -3
  149. package/src/element/equivalences.js +3 -3
  150. package/src/element/error.js +2 -2
  151. package/src/element/frame.js +3 -3
  152. package/src/element/hypothesis.js +2 -3
  153. package/src/element/judgement.js +2 -3
  154. package/src/element/label.js +2 -3
  155. package/src/element/metaType.js +2 -2
  156. package/src/element/metavariable.js +4 -3
  157. package/src/element/parameter.js +2 -2
  158. package/src/element/procedureCall.js +2 -3
  159. package/src/element/procedureReference.js +2 -2
  160. package/src/element/proof.js +2 -3
  161. package/src/element/proofAssertion/premise.js +1 -4
  162. package/src/element/proofAssertion/step.js +2 -4
  163. package/src/element/proofAssertion/supposition.js +1 -4
  164. package/src/element/property.js +2 -2
  165. package/src/element/propertyRelation.js +2 -2
  166. package/src/element/reference.js +2 -3
  167. package/src/element/rule.js +5 -3
  168. package/src/element/section.js +2 -2
  169. package/src/element/signature.js +3 -3
  170. package/src/element/statement.js +3 -3
  171. package/src/element/subDerivation.js +4 -3
  172. package/src/element/subproof.js +2 -3
  173. package/src/element/substitution/frame.js +1 -4
  174. package/src/element/substitution/reference.js +1 -4
  175. package/src/element/substitution/statement.js +2 -4
  176. package/src/element/substitution/term.js +1 -4
  177. package/src/element/substitutions.js +3 -3
  178. package/src/element/term.js +3 -3
  179. package/src/element/topLevelAssertion/axiom.js +1 -3
  180. package/src/element/topLevelAssertion/conjecture.js +1 -3
  181. package/src/element/topLevelAssertion/lemma.js +1 -3
  182. package/src/element/topLevelAssertion/theorem.js +1 -3
  183. package/src/element/topLevelMetaAssertion/metaLemma.js +1 -3
  184. package/src/element/topLevelMetaAssertion/metatheorem.js +1 -3
  185. package/src/element/type.js +3 -3
  186. package/src/element/typePrefix.js +2 -2
  187. package/src/element/variable.js +2 -3
  188. package/src/elements.js +13 -0
  189. package/src/metaTypes.js +1 -1
  190. package/src/node/argument.js +1 -1
  191. package/src/node/assertion.js +1 -1
  192. package/src/node/assumption.js +2 -2
  193. package/src/node/body.js +1 -1
  194. package/src/node/combinator.js +1 -1
  195. package/src/node/conclusion.js +1 -1
  196. package/src/node/constructor.js +1 -1
  197. package/src/node/declaration.js +1 -1
  198. package/src/node/deduction.js +1 -1
  199. package/src/node/derivation.js +1 -1
  200. package/src/node/document.js +1 -1
  201. package/src/node/equality.js +1 -2
  202. package/src/node/equivalence.js +1 -1
  203. package/src/node/equivalences.js +1 -1
  204. package/src/node/error.js +1 -1
  205. package/src/node/frame.js +1 -1
  206. package/src/node/header.js +1 -1
  207. package/src/node/hypothesis.js +1 -1
  208. package/src/node/judgement.js +1 -1
  209. package/src/node/label.js +1 -1
  210. package/src/node/labels.js +1 -1
  211. package/src/node/metaArgument.js +1 -1
  212. package/src/node/metaType.js +1 -1
  213. package/src/node/metavariable.js +1 -1
  214. package/src/node/parameter.js +1 -1
  215. package/src/node/parenthesisedLabel.js +1 -1
  216. package/src/node/parenthesisedLabels.js +1 -1
  217. package/src/node/placeholder.js +1 -1
  218. package/src/node/procedureCall.js +1 -1
  219. package/src/node/procedureReference.js +1 -1
  220. package/src/node/proof.js +1 -1
  221. package/src/node/proofAssertion.js +1 -1
  222. package/src/node/property.js +1 -1
  223. package/src/node/propertyRelation.js +1 -1
  224. package/src/node/qualification.js +1 -1
  225. package/src/node/reference.js +1 -1
  226. package/src/node/rule.js +1 -1
  227. package/src/node/section.js +1 -1
  228. package/src/node/signature.js +1 -1
  229. package/src/node/statement.js +1 -1
  230. package/src/node/subDerivation.js +1 -1
  231. package/src/node/subproof.js +1 -1
  232. package/src/node/substitution.js +1 -1
  233. package/src/node/term.js +1 -1
  234. package/src/node/topLevelAssertion.js +1 -1
  235. package/src/node/topLevelMetaAssertion.js +1 -1
  236. package/src/node/type.js +1 -1
  237. package/src/node/typePrefix.js +1 -1
  238. package/src/node/types.js +1 -1
  239. package/src/node/variable.js +1 -1
  240. package/src/nominal/parser.js +1 -1
  241. package/src/types.js +1 -1
  242. package/src/utilities/element.js +1 -1
  243. package/src/utilities/json.js +1 -1
  244. package/src/utilities/unification.js +2 -1
  245. package/src/utilities/validation.js +1 -1
  246. package/lib/nonTerminalNode.js +0 -222
  247. package/src/nonTerminalNode.js +0 -136
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import { elements } from "occam-furtle";
3
+ import elements from "../elements";
4
4
 
5
5
  import { findMetaTypeByMetaTypeName } from "../metaTypes";
6
6
 
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
2
 
3
- import { elements } from "occam-furtle";
4
3
  import { arrayUtilities } from "necessary";
5
4
 
5
+ import elements from "../elements";
6
+
6
7
  import { synthetically } from "../utilities/context";
7
8
  import { equalityFromStatement,
8
9
  judgementFromStatement,
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import { elements } from "occam-furtle";
3
+ import elements from "../elements";
4
4
 
5
5
  import { bracketedConstructorFromNothing, bracketedCombinatorFromNothing } from "../utilities/instance";
6
6
  import { equalityFromStatement,
@@ -1,222 +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 NonTerminalNode;
9
- }
10
- });
11
- var _necessary = require("necessary");
12
- var _occamparsers = require("occam-parsers");
13
- function _assert_this_initialized(self) {
14
- if (self === void 0) {
15
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
16
- }
17
- return self;
18
- }
19
- function _call_super(_this, derived, args) {
20
- derived = _get_prototype_of(derived);
21
- return _possible_constructor_return(_this, _is_native_reflect_construct() ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor) : derived.apply(_this, args));
22
- }
23
- function _class_call_check(instance, Constructor) {
24
- if (!(instance instanceof Constructor)) {
25
- throw new TypeError("Cannot call a class as a function");
26
- }
27
- }
28
- function _defineProperties(target, props) {
29
- for(var i = 0; i < props.length; i++){
30
- var descriptor = props[i];
31
- descriptor.enumerable = descriptor.enumerable || false;
32
- descriptor.configurable = true;
33
- if ("value" in descriptor) descriptor.writable = true;
34
- Object.defineProperty(target, descriptor.key, descriptor);
35
- }
36
- }
37
- function _create_class(Constructor, protoProps, staticProps) {
38
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
39
- if (staticProps) _defineProperties(Constructor, staticProps);
40
- return Constructor;
41
- }
42
- function _get_prototype_of(o) {
43
- _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
44
- return o.__proto__ || Object.getPrototypeOf(o);
45
- };
46
- return _get_prototype_of(o);
47
- }
48
- function _inherits(subClass, superClass) {
49
- if (typeof superClass !== "function" && superClass !== null) {
50
- throw new TypeError("Super expression must either be null or a function");
51
- }
52
- subClass.prototype = Object.create(superClass && superClass.prototype, {
53
- constructor: {
54
- value: subClass,
55
- writable: true,
56
- configurable: true
57
- }
58
- });
59
- if (superClass) _set_prototype_of(subClass, superClass);
60
- }
61
- function _possible_constructor_return(self, call) {
62
- if (call && (_type_of(call) === "object" || typeof call === "function")) {
63
- return call;
64
- }
65
- return _assert_this_initialized(self);
66
- }
67
- function _set_prototype_of(o, p) {
68
- _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
69
- o.__proto__ = p;
70
- return o;
71
- };
72
- return _set_prototype_of(o, p);
73
- }
74
- function _type_of(obj) {
75
- "@swc/helpers - typeof";
76
- return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
77
- }
78
- function _is_native_reflect_construct() {
79
- try {
80
- var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
81
- } catch (_) {}
82
- return (_is_native_reflect_construct = function() {
83
- return !!result;
84
- })();
85
- }
86
- var first = _necessary.arrayUtilities.first;
87
- var NonTerminalNode = /*#__PURE__*/ function(NonTerminalNodeBase) {
88
- _inherits(NonTerminalNode, NonTerminalNodeBase);
89
- function NonTerminalNode() {
90
- _class_call_check(this, NonTerminalNode);
91
- return _call_super(this, NonTerminalNode, arguments);
92
- }
93
- _create_class(NonTerminalNode, [
94
- {
95
- key: "getNodeByRuleName",
96
- value: function getNodeByRuleName() {
97
- for(var _len = arguments.length, ruleNames = new Array(_len), _key = 0; _key < _len; _key++){
98
- ruleNames[_key] = arguments[_key];
99
- }
100
- var node = this.findChildNode(function(childNode) {
101
- var childNodeNonTerminalNode = childNode.isNonTerminalNode();
102
- if (childNodeNonTerminalNode) {
103
- var nonTerminalNode = childNode, ruleName = nonTerminalNode.getRuleName(), ruleNamesIncludesRuleName = ruleNames.includes(ruleName);
104
- if (ruleNamesIncludesRuleName) {
105
- return true;
106
- }
107
- }
108
- }) || null;
109
- return node;
110
- }
111
- },
112
- {
113
- key: "getNodesByRuleName",
114
- value: function getNodesByRuleName() {
115
- for(var _len = arguments.length, ruleNames = new Array(_len), _key = 0; _key < _len; _key++){
116
- ruleNames[_key] = arguments[_key];
117
- }
118
- var nodes = this.filterChildNode(function(childNode) {
119
- var childNodeNonTerminalNode = childNode.isNonTerminalNode();
120
- if (childNodeNonTerminalNode) {
121
- var nonTerminalNode = childNode, ruleName = nonTerminalNode.getRuleName(), ruleNamesIncludesRuleName = ruleNames.includes(ruleName);
122
- if (ruleNamesIncludesRuleName) {
123
- return true;
124
- }
125
- }
126
- });
127
- return nodes;
128
- }
129
- },
130
- {
131
- key: "getLastNodeByRuleName",
132
- value: function getLastNodeByRuleName() {
133
- for(var _len = arguments.length, ruleNames = new Array(_len), _key = 0; _key < _len; _key++){
134
- ruleNames[_key] = arguments[_key];
135
- }
136
- var lastNode = null;
137
- this.backwardsSomeChildNode(function(childNode) {
138
- var childNodeNonTerminalNode = childNode.isNonTerminalNode();
139
- if (childNodeNonTerminalNode) {
140
- var nonTerminalNode = childNode, ruleName = nonTerminalNode.getRuleName(), ruleNamesIncludesRuleName = ruleNames.includes(ruleName);
141
- if (ruleNamesIncludesRuleName) {
142
- lastNode = childNode; ///
143
- return true;
144
- }
145
- }
146
- });
147
- return lastNode;
148
- }
149
- },
150
- {
151
- key: "getFirstNodeByRuleName",
152
- value: function getFirstNodeByRuleName() {
153
- for(var _len = arguments.length, ruleNames = new Array(_len), _key = 0; _key < _len; _key++){
154
- ruleNames[_key] = arguments[_key];
155
- }
156
- var firstNode = null;
157
- this.forwardsSomeChildNode(function(childNode) {
158
- var childNodeNonTerminalNode = childNode.isNonTerminalNode();
159
- if (childNodeNonTerminalNode) {
160
- var nonTerminalNode = childNode, ruleName = nonTerminalNode.getRuleName(), ruleNamesIncludesRuleName = ruleNames.includes(ruleName);
161
- if (ruleNamesIncludesRuleName) {
162
- firstNode = childNode; ///
163
- return true;
164
- }
165
- }
166
- });
167
- return firstNode;
168
- }
169
- },
170
- {
171
- key: "getSingularNodeByRuleName",
172
- value: function getSingularNodeByRuleName() {
173
- for(var _len = arguments.length, ruleNames = new Array(_len), _key = 0; _key < _len; _key++){
174
- ruleNames[_key] = arguments[_key];
175
- }
176
- var singularNode = null;
177
- var nodes = this.filterChildNode(function(childNode) {
178
- var childNodeNonTerminalNode = childNode.isNonTerminalNode();
179
- if (childNodeNonTerminalNode) {
180
- var nonTerminalNode = childNode, ruleName = nonTerminalNode.getRuleName(), ruleNamesIncludesRuleName = ruleNames.includes(ruleName);
181
- if (ruleNamesIncludesRuleName) {
182
- return true;
183
- }
184
- }
185
- }), nodesLength = nodes.length;
186
- if (nodesLength === 1) {
187
- var firstNode = first(nodes);
188
- singularNode = firstNode; ///
189
- }
190
- return singularNode;
191
- }
192
- },
193
- {
194
- key: "getDescendantNodesByRuleName",
195
- value: function getDescendantNodesByRuleName() {
196
- for(var _len = arguments.length, ruleNames = new Array(_len), _key = 0; _key < _len; _key++){
197
- ruleNames[_key] = arguments[_key];
198
- }
199
- var nodes = this.filterDescendantNode(function(descendantNode) {
200
- var descendantNodeNonTerminalNode = descendantNode.isNonTerminalNode();
201
- if (descendantNodeNonTerminalNode) {
202
- var nonTerminalNode = descendantNode, ruleName = nonTerminalNode.getRuleName(), ruleNamesIncludesRuleName = ruleNames.includes(ruleName);
203
- if (ruleNamesIncludesRuleName) {
204
- return true;
205
- }
206
- }
207
- });
208
- return nodes;
209
- }
210
- }
211
- ], [
212
- {
213
- key: "fromRuleNameChildNodesOpacityAndPrecedence",
214
- value: function fromRuleNameChildNodesOpacityAndPrecedence(Class, ruleName, childNodes, opacity, precedence) {
215
- return _occamparsers.NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(Class, ruleName, childNodes, opacity, precedence);
216
- }
217
- }
218
- ]);
219
- return NonTerminalNode;
220
- }(_occamparsers.NonTerminalNode);
221
-
222
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ub25UZXJtaW5hbE5vZGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgeyBOb25UZXJtaW5hbE5vZGUgYXMgTm9uVGVybWluYWxOb2RlQmFzZSB9IGZyb20gXCJvY2NhbS1wYXJzZXJzXCI7XG5cbmNvbnN0IHsgZmlyc3QgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOb25UZXJtaW5hbE5vZGUgZXh0ZW5kcyBOb25UZXJtaW5hbE5vZGVCYXNlIHtcbiAgZ2V0Tm9kZUJ5UnVsZU5hbWUoLi4ucnVsZU5hbWVzKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZmluZENoaWxkTm9kZSgoY2hpbGROb2RlKSA9PiB7XG4gICAgICBjb25zdCBjaGlsZE5vZGVOb25UZXJtaW5hbE5vZGUgPSBjaGlsZE5vZGUuaXNOb25UZXJtaW5hbE5vZGUoKTtcblxuICAgICAgaWYgKGNoaWxkTm9kZU5vblRlcm1pbmFsTm9kZSkge1xuICAgICAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBjaGlsZE5vZGUsIC8vL1xuICAgICAgICAgICAgICBydWxlTmFtZSA9IG5vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpLFxuICAgICAgICAgICAgICBydWxlTmFtZXNJbmNsdWRlc1J1bGVOYW1lID0gcnVsZU5hbWVzLmluY2x1ZGVzKHJ1bGVOYW1lKTtcblxuICAgICAgICBpZiAocnVsZU5hbWVzSW5jbHVkZXNSdWxlTmFtZSkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSkgfHwgbnVsbDtcblxuICAgIHJldHVybiBub2RlO1xuICB9XG5cbiAgZ2V0Tm9kZXNCeVJ1bGVOYW1lKC4uLnJ1bGVOYW1lcykge1xuICAgIGNvbnN0IG5vZGVzID0gdGhpcy5maWx0ZXJDaGlsZE5vZGUoKGNoaWxkTm9kZSkgPT4ge1xuICAgICAgY29uc3QgY2hpbGROb2RlTm9uVGVybWluYWxOb2RlID0gY2hpbGROb2RlLmlzTm9uVGVybWluYWxOb2RlKCk7XG5cbiAgICAgIGlmIChjaGlsZE5vZGVOb25UZXJtaW5hbE5vZGUpIHtcbiAgICAgICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gY2hpbGROb2RlLCAvLy9cbiAgICAgICAgICAgICAgcnVsZU5hbWUgPSBub25UZXJtaW5hbE5vZGUuZ2V0UnVsZU5hbWUoKSxcbiAgICAgICAgICAgICAgcnVsZU5hbWVzSW5jbHVkZXNSdWxlTmFtZSA9IHJ1bGVOYW1lcy5pbmNsdWRlcyhydWxlTmFtZSk7XG5cbiAgICAgICAgaWYgKHJ1bGVOYW1lc0luY2x1ZGVzUnVsZU5hbWUpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIG5vZGVzO1xuICB9XG5cbiAgZ2V0TGFzdE5vZGVCeVJ1bGVOYW1lKC4uLnJ1bGVOYW1lcykge1xuICAgIGxldCBsYXN0Tm9kZSA9IG51bGw7XG5cbiAgICB0aGlzLmJhY2t3YXJkc1NvbWVDaGlsZE5vZGUoKGNoaWxkTm9kZSkgPT4ge1xuICAgICAgY29uc3QgY2hpbGROb2RlTm9uVGVybWluYWxOb2RlID0gY2hpbGROb2RlLmlzTm9uVGVybWluYWxOb2RlKCk7XG5cbiAgICAgIGlmIChjaGlsZE5vZGVOb25UZXJtaW5hbE5vZGUpIHtcbiAgICAgICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gY2hpbGROb2RlLCAvLy9cbiAgICAgICAgICAgICAgcnVsZU5hbWUgPSBub25UZXJtaW5hbE5vZGUuZ2V0UnVsZU5hbWUoKSxcbiAgICAgICAgICAgICAgcnVsZU5hbWVzSW5jbHVkZXNSdWxlTmFtZSA9IHJ1bGVOYW1lcy5pbmNsdWRlcyhydWxlTmFtZSk7XG5cbiAgICAgICAgaWYgKHJ1bGVOYW1lc0luY2x1ZGVzUnVsZU5hbWUpIHtcbiAgICAgICAgICBsYXN0Tm9kZSA9IGNoaWxkTm9kZTsgLy8vXG5cbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGxhc3ROb2RlO1xuICB9XG5cbiAgZ2V0Rmlyc3ROb2RlQnlSdWxlTmFtZSguLi5ydWxlTmFtZXMpIHtcbiAgICBsZXQgZmlyc3ROb2RlID0gbnVsbDtcblxuICAgIHRoaXMuZm9yd2FyZHNTb21lQ2hpbGROb2RlKChjaGlsZE5vZGUpID0+IHtcbiAgICAgIGNvbnN0IGNoaWxkTm9kZU5vblRlcm1pbmFsTm9kZSA9IGNoaWxkTm9kZS5pc05vblRlcm1pbmFsTm9kZSgpO1xuXG4gICAgICBpZiAoY2hpbGROb2RlTm9uVGVybWluYWxOb2RlKSB7XG4gICAgICAgIGNvbnN0IG5vblRlcm1pbmFsTm9kZSA9IGNoaWxkTm9kZSwgLy8vXG4gICAgICAgICAgICAgIHJ1bGVOYW1lID0gbm9uVGVybWluYWxOb2RlLmdldFJ1bGVOYW1lKCksXG4gICAgICAgICAgICAgIHJ1bGVOYW1lc0luY2x1ZGVzUnVsZU5hbWUgPSBydWxlTmFtZXMuaW5jbHVkZXMocnVsZU5hbWUpO1xuXG4gICAgICAgIGlmIChydWxlTmFtZXNJbmNsdWRlc1J1bGVOYW1lKSB7XG4gICAgICAgICAgZmlyc3ROb2RlID0gY2hpbGROb2RlOyAvLy9cblxuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZmlyc3ROb2RlO1xuICB9XG5cbiAgZ2V0U2luZ3VsYXJOb2RlQnlSdWxlTmFtZSguLi5ydWxlTmFtZXMpIHtcbiAgICBsZXQgc2luZ3VsYXJOb2RlID0gbnVsbDtcblxuICAgIGNvbnN0IG5vZGVzID0gdGhpcy5maWx0ZXJDaGlsZE5vZGUoKGNoaWxkTm9kZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY2hpbGROb2RlTm9uVGVybWluYWxOb2RlID0gY2hpbGROb2RlLmlzTm9uVGVybWluYWxOb2RlKCk7XG5cbiAgICAgICAgICAgIGlmIChjaGlsZE5vZGVOb25UZXJtaW5hbE5vZGUpIHtcbiAgICAgICAgICAgICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gY2hpbGROb2RlLCAvLy9cbiAgICAgICAgICAgICAgICAgICAgcnVsZU5hbWUgPSBub25UZXJtaW5hbE5vZGUuZ2V0UnVsZU5hbWUoKSxcbiAgICAgICAgICAgICAgICAgICAgcnVsZU5hbWVzSW5jbHVkZXNSdWxlTmFtZSA9IHJ1bGVOYW1lcy5pbmNsdWRlcyhydWxlTmFtZSk7XG5cbiAgICAgICAgICAgICAgaWYgKHJ1bGVOYW1lc0luY2x1ZGVzUnVsZU5hbWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pLFxuICAgICAgICAgIG5vZGVzTGVuZ3RoID0gbm9kZXMubGVuZ3RoO1xuXG4gICAgaWYgKG5vZGVzTGVuZ3RoID09PSAxKSB7XG4gICAgICBjb25zdCBmaXJzdE5vZGUgPSBmaXJzdChub2Rlcyk7XG5cbiAgICAgIHNpbmd1bGFyTm9kZSA9IGZpcnN0Tm9kZTsgLy8vXG4gICAgfVxuXG4gICAgcmV0dXJuIHNpbmd1bGFyTm9kZTtcbiAgfVxuXG4gIGdldERlc2NlbmRhbnROb2Rlc0J5UnVsZU5hbWUoLi4ucnVsZU5hbWVzKSB7XG4gICAgY29uc3Qgbm9kZXMgPSB0aGlzLmZpbHRlckRlc2NlbmRhbnROb2RlKChkZXNjZW5kYW50Tm9kZSkgPT4ge1xuICAgICAgY29uc3QgZGVzY2VuZGFudE5vZGVOb25UZXJtaW5hbE5vZGUgPSBkZXNjZW5kYW50Tm9kZS5pc05vblRlcm1pbmFsTm9kZSgpO1xuXG4gICAgICBpZiAoZGVzY2VuZGFudE5vZGVOb25UZXJtaW5hbE5vZGUpIHtcbiAgICAgICAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gZGVzY2VuZGFudE5vZGUsIC8vL1xuICAgICAgICAgICAgICBydWxlTmFtZSA9IG5vblRlcm1pbmFsTm9kZS5nZXRSdWxlTmFtZSgpLFxuICAgICAgICAgICAgICBydWxlTmFtZXNJbmNsdWRlc1J1bGVOYW1lID0gcnVsZU5hbWVzLmluY2x1ZGVzKHJ1bGVOYW1lKTtcblxuICAgICAgICBpZiAocnVsZU5hbWVzSW5jbHVkZXNSdWxlTmFtZSkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbm9kZXM7XG4gIH1cblxuICBzdGF0aWMgZnJvbVJ1bGVOYW1lQ2hpbGROb2Rlc09wYWNpdHlBbmRQcmVjZWRlbmNlKENsYXNzLCBydWxlTmFtZSwgY2hpbGROb2Rlcywgb3BhY2l0eSwgcHJlY2VkZW5jZSkgeyByZXR1cm4gTm9uVGVybWluYWxOb2RlQmFzZS5mcm9tUnVsZU5hbWVDaGlsZE5vZGVzT3BhY2l0eUFuZFByZWNlZGVuY2UoQ2xhc3MsIHJ1bGVOYW1lLCBjaGlsZE5vZGVzLCBvcGFjaXR5LCBwcmVjZWRlbmNlKTsgfVxufVxuIl0sIm5hbWVzIjpbIk5vblRlcm1pbmFsTm9kZSIsImZpcnN0IiwiYXJyYXlVdGlsaXRpZXMiLCJnZXROb2RlQnlSdWxlTmFtZSIsInJ1bGVOYW1lcyIsIm5vZGUiLCJmaW5kQ2hpbGROb2RlIiwiY2hpbGROb2RlIiwiY2hpbGROb2RlTm9uVGVybWluYWxOb2RlIiwiaXNOb25UZXJtaW5hbE5vZGUiLCJub25UZXJtaW5hbE5vZGUiLCJydWxlTmFtZSIsImdldFJ1bGVOYW1lIiwicnVsZU5hbWVzSW5jbHVkZXNSdWxlTmFtZSIsImluY2x1ZGVzIiwiZ2V0Tm9kZXNCeVJ1bGVOYW1lIiwibm9kZXMiLCJmaWx0ZXJDaGlsZE5vZGUiLCJnZXRMYXN0Tm9kZUJ5UnVsZU5hbWUiLCJsYXN0Tm9kZSIsImJhY2t3YXJkc1NvbWVDaGlsZE5vZGUiLCJnZXRGaXJzdE5vZGVCeVJ1bGVOYW1lIiwiZmlyc3ROb2RlIiwiZm9yd2FyZHNTb21lQ2hpbGROb2RlIiwiZ2V0U2luZ3VsYXJOb2RlQnlSdWxlTmFtZSIsInNpbmd1bGFyTm9kZSIsIm5vZGVzTGVuZ3RoIiwibGVuZ3RoIiwiZ2V0RGVzY2VuZGFudE5vZGVzQnlSdWxlTmFtZSIsImZpbHRlckRlc2NlbmRhbnROb2RlIiwiZGVzY2VuZGFudE5vZGUiLCJkZXNjZW5kYW50Tm9kZU5vblRlcm1pbmFsTm9kZSIsImZyb21SdWxlTmFtZUNoaWxkTm9kZXNPcGFjaXR5QW5kUHJlY2VkZW5jZSIsIkNsYXNzIiwiY2hpbGROb2RlcyIsIm9wYWNpdHkiLCJwcmVjZWRlbmNlIiwiTm9uVGVybWluYWxOb2RlQmFzZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFRcUJBOzs7eUJBTlU7NEJBRXdCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUV2RCxJQUFNLEFBQUVDLFFBQVVDLHlCQUFjLENBQXhCRDtBQUVPLElBQUEsQUFBTUQsZ0NBQU47Y0FBTUE7YUFBQUE7Z0NBQUFBO1FBQU4sT0FBQSxrQkFBTUE7O2tCQUFBQTs7WUFDbkJHLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFBa0IsSUFBQSxJQUFBLE9BQUEsVUFBQSxRQUFBLEFBQUdDLFlBQUgsVUFBQSxPQUFBLE9BQUEsR0FBQSxPQUFBLE1BQUE7b0JBQUdBLFVBQUgsUUFBQSxTQUFBLENBQUEsS0FBWTs7Z0JBQzVCLElBQU1DLE9BQU8sSUFBSSxDQUFDQyxhQUFhLENBQUMsU0FBQ0M7b0JBQy9CLElBQU1DLDJCQUEyQkQsVUFBVUUsaUJBQWlCO29CQUU1RCxJQUFJRCwwQkFBMEI7d0JBQzVCLElBQU1FLGtCQUFrQkgsV0FDbEJJLFdBQVdELGdCQUFnQkUsV0FBVyxJQUN0Q0MsNEJBQTRCVCxVQUFVVSxRQUFRLENBQUNIO3dCQUVyRCxJQUFJRSwyQkFBMkI7NEJBQzdCLE9BQU87d0JBQ1Q7b0JBQ0Y7Z0JBQ0YsTUFBTTtnQkFFTixPQUFPUjtZQUNUOzs7WUFFQVUsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUFtQixJQUFBLElBQUEs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
@@ -1,136 +0,0 @@
1
- "use strict";
2
-
3
- import { arrayUtilities } from "necessary";
4
-
5
- import { NonTerminalNode as NonTerminalNodeBase } from "occam-parsers";
6
-
7
- const { first } = arrayUtilities;
8
-
9
- export default class NonTerminalNode extends NonTerminalNodeBase {
10
- getNodeByRuleName(...ruleNames) {
11
- const node = this.findChildNode((childNode) => {
12
- const childNodeNonTerminalNode = childNode.isNonTerminalNode();
13
-
14
- if (childNodeNonTerminalNode) {
15
- const nonTerminalNode = childNode, ///
16
- ruleName = nonTerminalNode.getRuleName(),
17
- ruleNamesIncludesRuleName = ruleNames.includes(ruleName);
18
-
19
- if (ruleNamesIncludesRuleName) {
20
- return true;
21
- }
22
- }
23
- }) || null;
24
-
25
- return node;
26
- }
27
-
28
- getNodesByRuleName(...ruleNames) {
29
- const nodes = this.filterChildNode((childNode) => {
30
- const childNodeNonTerminalNode = childNode.isNonTerminalNode();
31
-
32
- if (childNodeNonTerminalNode) {
33
- const nonTerminalNode = childNode, ///
34
- ruleName = nonTerminalNode.getRuleName(),
35
- ruleNamesIncludesRuleName = ruleNames.includes(ruleName);
36
-
37
- if (ruleNamesIncludesRuleName) {
38
- return true;
39
- }
40
- }
41
- });
42
-
43
- return nodes;
44
- }
45
-
46
- getLastNodeByRuleName(...ruleNames) {
47
- let lastNode = null;
48
-
49
- this.backwardsSomeChildNode((childNode) => {
50
- const childNodeNonTerminalNode = childNode.isNonTerminalNode();
51
-
52
- if (childNodeNonTerminalNode) {
53
- const nonTerminalNode = childNode, ///
54
- ruleName = nonTerminalNode.getRuleName(),
55
- ruleNamesIncludesRuleName = ruleNames.includes(ruleName);
56
-
57
- if (ruleNamesIncludesRuleName) {
58
- lastNode = childNode; ///
59
-
60
- return true;
61
- }
62
- }
63
- });
64
-
65
- return lastNode;
66
- }
67
-
68
- getFirstNodeByRuleName(...ruleNames) {
69
- let firstNode = null;
70
-
71
- this.forwardsSomeChildNode((childNode) => {
72
- const childNodeNonTerminalNode = childNode.isNonTerminalNode();
73
-
74
- if (childNodeNonTerminalNode) {
75
- const nonTerminalNode = childNode, ///
76
- ruleName = nonTerminalNode.getRuleName(),
77
- ruleNamesIncludesRuleName = ruleNames.includes(ruleName);
78
-
79
- if (ruleNamesIncludesRuleName) {
80
- firstNode = childNode; ///
81
-
82
- return true;
83
- }
84
- }
85
- });
86
-
87
- return firstNode;
88
- }
89
-
90
- getSingularNodeByRuleName(...ruleNames) {
91
- let singularNode = null;
92
-
93
- const nodes = this.filterChildNode((childNode) => {
94
- const childNodeNonTerminalNode = childNode.isNonTerminalNode();
95
-
96
- if (childNodeNonTerminalNode) {
97
- const nonTerminalNode = childNode, ///
98
- ruleName = nonTerminalNode.getRuleName(),
99
- ruleNamesIncludesRuleName = ruleNames.includes(ruleName);
100
-
101
- if (ruleNamesIncludesRuleName) {
102
- return true;
103
- }
104
- }
105
- }),
106
- nodesLength = nodes.length;
107
-
108
- if (nodesLength === 1) {
109
- const firstNode = first(nodes);
110
-
111
- singularNode = firstNode; ///
112
- }
113
-
114
- return singularNode;
115
- }
116
-
117
- getDescendantNodesByRuleName(...ruleNames) {
118
- const nodes = this.filterDescendantNode((descendantNode) => {
119
- const descendantNodeNonTerminalNode = descendantNode.isNonTerminalNode();
120
-
121
- if (descendantNodeNonTerminalNode) {
122
- const nonTerminalNode = descendantNode, ///
123
- ruleName = nonTerminalNode.getRuleName(),
124
- ruleNamesIncludesRuleName = ruleNames.includes(ruleName);
125
-
126
- if (ruleNamesIncludesRuleName) {
127
- return true;
128
- }
129
- }
130
- });
131
-
132
- return nodes;
133
- }
134
-
135
- static fromRuleNameChildNodesOpacityAndPrecedence(Class, ruleName, childNodes, opacity, precedence) { return NonTerminalNodeBase.fromRuleNameChildNodesOpacityAndPrecedence(Class, ruleName, childNodes, opacity, precedence); }
136
- }