occam-verify-cli 0.0.1245 → 0.0.1247

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 (74) hide show
  1. package/lib/context/file.js +172 -210
  2. package/lib/context/local.js +95 -125
  3. package/lib/dom/assertion/contained.js +44 -22
  4. package/lib/dom/assertion/defined.js +34 -17
  5. package/lib/dom/combinator/bracketed.js +167 -0
  6. package/lib/dom/combinator.js +163 -0
  7. package/lib/{constructor → dom/constructor}/bracketed.js +7 -7
  8. package/lib/dom/constructor.js +190 -0
  9. package/lib/dom/declaration/combinator.js +2 -8
  10. package/lib/dom/declaration/constructor.js +42 -7
  11. package/lib/dom/declaration.js +113 -71
  12. package/lib/dom/equality.js +3 -3
  13. package/lib/dom/frame.js +111 -76
  14. package/lib/dom/judgement.js +29 -3
  15. package/lib/dom/label.js +22 -15
  16. package/lib/dom/metaLemma.js +20 -41
  17. package/lib/dom/metatheorem.js +20 -41
  18. package/lib/dom/metavariable.js +7 -7
  19. package/lib/dom/reference.js +32 -18
  20. package/lib/dom/rule.js +3 -4
  21. package/lib/dom/statement.js +2 -2
  22. package/lib/dom/term.js +2 -2
  23. package/lib/dom/topLevelAssertion.js +50 -71
  24. package/lib/dom/type.js +3 -3
  25. package/lib/dom/variable.js +5 -5
  26. package/lib/equivalence.js +2 -2
  27. package/lib/index.js +7 -3
  28. package/lib/mixins/statement/verify.js +3 -3
  29. package/lib/mixins/term/verify.js +2 -3
  30. package/lib/substitution/statement.js +2 -2
  31. package/lib/unifier/{label.js → reference.js} +14 -14
  32. package/lib/utilities/json.js +5 -7
  33. package/lib/utilities/unification.js +25 -6
  34. package/lib/verifier/combinator.js +3 -3
  35. package/lib/verifier/constructor.js +3 -3
  36. package/package.json +5 -5
  37. package/src/context/file.js +166 -206
  38. package/src/context/local.js +73 -83
  39. package/src/dom/assertion/contained.js +60 -27
  40. package/src/dom/assertion/defined.js +44 -20
  41. package/src/{combinator → dom/combinator}/bracketed.js +6 -5
  42. package/src/{combinator.js → dom/combinator.js} +8 -7
  43. package/src/{constructor → dom/constructor}/bracketed.js +6 -5
  44. package/src/{constructor.js → dom/constructor.js} +8 -7
  45. package/src/dom/declaration/combinator.js +2 -3
  46. package/src/dom/declaration/constructor.js +3 -2
  47. package/src/dom/declaration.js +133 -101
  48. package/src/dom/equality.js +2 -2
  49. package/src/dom/frame.js +151 -95
  50. package/src/dom/judgement.js +36 -2
  51. package/src/dom/label.js +18 -13
  52. package/src/dom/metaLemma.js +23 -55
  53. package/src/dom/metatheorem.js +23 -55
  54. package/src/dom/metavariable.js +6 -6
  55. package/src/dom/reference.js +43 -25
  56. package/src/dom/rule.js +2 -2
  57. package/src/dom/statement.js +1 -1
  58. package/src/dom/term.js +1 -1
  59. package/src/dom/topLevelAssertion.js +53 -86
  60. package/src/dom/type.js +2 -2
  61. package/src/dom/variable.js +4 -4
  62. package/src/equivalence.js +1 -1
  63. package/src/index.js +4 -0
  64. package/src/mixins/statement/verify.js +3 -2
  65. package/src/mixins/term/verify.js +2 -3
  66. package/src/substitution/statement.js +1 -1
  67. package/src/unifier/{label.js → reference.js} +6 -6
  68. package/src/utilities/json.js +4 -4
  69. package/src/utilities/unification.js +43 -5
  70. package/src/verifier/combinator.js +2 -2
  71. package/src/verifier/constructor.js +2 -2
  72. package/lib/combinator/bracketed.js +0 -126
  73. package/lib/combinator.js +0 -122
  74. package/lib/constructor.js +0 -149
package/src/index.js CHANGED
@@ -25,6 +25,8 @@ import Consequent from "./dom/consequent";
25
25
  import Conjecture from "./dom/conjecture";
26
26
  import Conclusion from "./dom/conclusion";
27
27
  import Derivation from "./dom/derivation";
28
+ import Combinator from "./dom/combinator";
29
+ import Constructor from "./dom/constructor";
28
30
  import Declaration from "./dom/declaration";
29
31
  import Supposition from "./dom/supposition";
30
32
  import Metatheorem from "./dom/metatheorem";
@@ -37,6 +39,8 @@ import DefinedAssertion from "./dom/assertion/defined";
37
39
  import SubproofAssertion from "./dom/assertion/subproof";
38
40
  import ContainedAssertion from "./dom/assertion/contained";
39
41
  import VariableDeclaration from "./dom/declaration/variable";
42
+ import BracketedCombinator from "./dom/combinator/bracketed";
43
+ import BracketedConstructor from "./dom/constructor/bracketed";
40
44
  import CombinatorDeclaration from "./dom/declaration/combinator";
41
45
  import ConstructorDeclaration from "./dom/declaration/constructor";
42
46
  import MetavariableDeclaration from "./dom/declaration/metavariable";
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import BracketedCombinator from "../../combinator/bracketed";
3
+ import dom from "../../dom";
4
4
 
5
5
  import { equalityFromStatement,
6
6
  judgementFromStatement,
@@ -169,7 +169,8 @@ function unifyWithBracketedCombinator(statement, assignments, stated, context) {
169
169
 
170
170
  assignments = null; ///
171
171
 
172
- const bracketedCombinator = BracketedCombinator.fromNothing(),
172
+ const { BracketedCombinator } = dom,
173
+ bracketedCombinator = BracketedCombinator.fromNothing(),
173
174
  unifiedWithBracketedCombinator = bracketedCombinator.unifyStatement(statement, assignments, stated, context);
174
175
 
175
176
  return unifiedWithBracketedCombinator;
@@ -2,8 +2,6 @@
2
2
 
3
3
  import dom from "../../dom";
4
4
 
5
- import BracketedConstructor from "../../constructor/bracketed";
6
-
7
5
  import { nodeQuery } from "../../utilities/query";
8
6
 
9
7
  const variableNodeQuery = nodeQuery("/term/variable!");
@@ -47,7 +45,8 @@ function verifyTermAsVariable(term, localContext, verifyAhead) {
47
45
  function unifyWithBracketedConstructor(term, context, verifyAhead) {
48
46
  let unifiedWithBracketedConstructor;
49
47
 
50
- const bracketedConstructor = BracketedConstructor.fromNothing();
48
+ const { BracketedConstructor } = dom,
49
+ bracketedConstructor = BracketedConstructor.fromNothing();
51
50
 
52
51
  unifiedWithBracketedConstructor = bracketedConstructor.unifyTerm(term, context, verifyAhead);
53
52
 
@@ -78,7 +78,7 @@ export default class StatementSubstitution extends Substitution {
78
78
  }
79
79
 
80
80
  resolve(substitutions, generalContext, specificContext) {
81
- const substitutionString = this.string;
81
+ const substitutionString = this.string; ///
82
82
 
83
83
  const metavariable = this.getMetavariable(),
84
84
  simpleSubstitution = substitutions.findSimpleSubstitutionByMetavariable(metavariable);
@@ -8,17 +8,17 @@ import { nodeQuery } from "../utilities/query";
8
8
  const termNodeQuery = nodeQuery("/term"),
9
9
  termVariableNodeQuery = nodeQuery("/term/variable!");
10
10
 
11
- class LabelUnifier extends Unifier {
11
+ class ReferenceUnifier extends Unifier {
12
12
  unify(labelMetavariableNode, referenceMetavariableNode, substitutions, generalContext, specificContext) {
13
- let labelUnified;
13
+ let referenceUnified;
14
14
 
15
15
  const generalNonTerminalNode = labelMetavariableNode, ///
16
16
  specificNonTerminalNode = referenceMetavariableNode, ///
17
17
  nonTerminalNodeUnified = this.unifyNonTerminalNode(generalNonTerminalNode, specificNonTerminalNode, substitutions, generalContext, specificContext);
18
18
 
19
- labelUnified = nonTerminalNodeUnified; ///
19
+ referenceUnified = nonTerminalNodeUnified; ///
20
20
 
21
- return labelUnified;
21
+ return referenceUnified;
22
22
  }
23
23
 
24
24
  static maps = [
@@ -51,6 +51,6 @@ class LabelUnifier extends Unifier {
51
51
  ];
52
52
  }
53
53
 
54
- const labelUnifier = new LabelUnifier();
54
+ const referenceUnified = new ReferenceUnifier();
55
55
 
56
- export default labelUnifier;
56
+ export default referenceUnified;
@@ -1,8 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  import dom from "../dom";
4
- import Combinator from "../combinator";
5
- import Constructor from "../constructor";
6
4
  import StatementSubstitution from "../substitution/statement";
7
5
 
8
6
  export function termFromJSON(json, fileContext) {
@@ -287,7 +285,8 @@ export function conjecturesFromJSON(json, fileContext) {
287
285
  export function combinatorsFromJSON(json, fileContext) {
288
286
  let { combinators } = json;
289
287
 
290
- const combinatorsJSON = combinators; ///
288
+ const { Combinator } = dom,
289
+ combinatorsJSON = combinators; ///
291
290
 
292
291
  combinators = combinatorsJSON.map((combinatorJSON) => {
293
292
  const json = combinatorJSON, ///
@@ -302,7 +301,8 @@ export function combinatorsFromJSON(json, fileContext) {
302
301
  export function constructorsFromJSON(json, fileContext) {
303
302
  let { constructors } = json;
304
303
 
305
- const constructorsJSON = constructors; ///
304
+ const { Constructor } = dom,
305
+ constructorsJSON = constructors; ///
306
306
 
307
307
  constructors = constructorsJSON.map((constructorJSON) => {
308
308
  const json = constructorJSON, ///
@@ -1,8 +1,9 @@
1
1
  "use string";
2
2
 
3
3
  import LocalContext from "../context/local";
4
- import labelUnifier from "../unifier/label";
4
+ import Substitutions from "../substitutions";
5
5
  import equalityUnifier from "../unifier/equality";
6
+ import referenceUnifier from "../unifier/reference";
6
7
  import metaLevelUnifier from "../unifier/metaLevel";
7
8
  import metavariableUnifier from "../unifier/metavariable";
8
9
  import intrinsicLevelUnifier from "../unifier/intrinsicLevel";
@@ -81,27 +82,64 @@ export function unifyMetavariable(generalMetavariable, specificMetavariable, gen
81
82
  return metavariableUnified;
82
83
  }
83
84
 
84
- export function unifyLabelWithReference(label, reference, substitutions, generalContext, specificContext) {
85
+ export function unifyLabelWithReference(label, reference, substitutions, context) {
85
86
  let labelUnifiedWithReference;
86
87
 
87
- const labelMetavariable = label.getMetavariable(),
88
+ let generalContext,
89
+ specificContext;
90
+
91
+ const fileContext = label.getFileContext(),
92
+ labelMetavariable = label.getMetavariable(),
88
93
  referenceMetavariable = reference.getMetavariable(),
89
94
  labelMetavariableNode = labelMetavariable.getNode(),
90
95
  labelMetavariableTokens = labelMetavariable.getTokens(),
91
96
  referenceMetavariableNode = referenceMetavariable.getNode(),
92
97
  referenceMetavariableTokens = referenceMetavariable.getTokens();
93
98
 
99
+ generalContext = context; ///
100
+
101
+ specificContext = fileContext; ///
102
+
94
103
  generalContext = contextFromTokens(labelMetavariableTokens, generalContext); ///
95
104
 
96
105
  specificContext = contextFromTokens(referenceMetavariableTokens, specificContext); ///
97
106
 
98
- const labelUnified = labelUnifier.unify(labelMetavariableNode, referenceMetavariableNode, substitutions, generalContext, specificContext);
107
+ const referenceUnified = referenceUnifier.unify(labelMetavariableNode, referenceMetavariableNode, substitutions, generalContext, specificContext);
99
108
 
100
- labelUnifiedWithReference = labelUnified; ///
109
+ labelUnifiedWithReference = referenceUnified; ///
101
110
 
102
111
  return labelUnifiedWithReference;
103
112
  }
104
113
 
114
+ export function unifyMetavariableWithReference(metavariable, reference, context) {
115
+ let metavariableUnifiedWithReference;
116
+
117
+ let generalContext,
118
+ specificContext;
119
+
120
+ const fileContext = context.getFileContext(),
121
+ metavariableNode = metavariable.getNode(),
122
+ metavariableTokens = metavariable.getTokens(),
123
+ referenceMetavariable = reference.getMetavariable(),
124
+ referenceMetavariableNode = referenceMetavariable.getNode(),
125
+ referenceMetavariableTokens = referenceMetavariable.getTokens();
126
+
127
+ generalContext = context; ///
128
+
129
+ specificContext = fileContext; ///
130
+
131
+ generalContext = contextFromTokens(metavariableTokens, generalContext); ///
132
+
133
+ specificContext = contextFromTokens(referenceMetavariableTokens, specificContext); ///
134
+
135
+ const substitutions = Substitutions.fromNothing(),
136
+ referenceUnified = referenceUnifier.unify(metavariableNode, referenceMetavariableNode, substitutions, generalContext, specificContext);
137
+
138
+ metavariableUnifiedWithReference = referenceUnified; ///
139
+
140
+ return metavariableUnifiedWithReference;
141
+ }
142
+
105
143
  export function unifyTermWithConstructor(term, constructor, context) {
106
144
  let termUnifiedWithConstructor;
107
145
 
@@ -61,9 +61,9 @@ class CombinatorVerifier extends Verifier {
61
61
  let typeVerified = false;
62
62
 
63
63
  const typeName = typeNameFromTypeNode(typeNode),
64
- typeDeclared = fileContext.isTypeDeclaredByTypeName(typeName);
64
+ typePresent = fileContext.isTypePresentByTypeName(typeName);
65
65
 
66
- if (typeDeclared) {
66
+ if (typePresent) {
67
67
  typeVerified = true;
68
68
  }
69
69
 
@@ -46,9 +46,9 @@ class ConstructorVerifier extends Verifier {
46
46
  let typeVerified = false;
47
47
 
48
48
  const typeName = typeNameFromTypeNode(typeNode),
49
- typeDeclared = fileContext.isTypeDeclaredByTypeName(typeName);
49
+ typePresent = fileContext.isTypePresentByTypeName(typeName);
50
50
 
51
- if (typeDeclared) {
51
+ if (typePresent) {
52
52
  const verifiedAhead = verifyAhead();
53
53
 
54
54
  if (verifiedAhead) {
@@ -1,126 +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 BracketedCombinator;
9
- }
10
- });
11
- var _dom = /*#__PURE__*/ _interop_require_default(require("../dom"));
12
- var _combinator = /*#__PURE__*/ _interop_require_default(require("../combinator"));
13
- var _combinator1 = /*#__PURE__*/ _interop_require_default(require("../context/bracketed/combinator"));
14
- var _unification = require("../utilities/unification");
15
- function _assert_this_initialized(self) {
16
- if (self === void 0) {
17
- throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
18
- }
19
- return self;
20
- }
21
- function _call_super(_this, derived, args) {
22
- derived = _get_prototype_of(derived);
23
- return _possible_constructor_return(_this, _is_native_reflect_construct() ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor) : derived.apply(_this, args));
24
- }
25
- function _class_call_check(instance, Constructor) {
26
- if (!(instance instanceof Constructor)) {
27
- throw new TypeError("Cannot call a class as a function");
28
- }
29
- }
30
- function _defineProperties(target, props) {
31
- for(var i = 0; i < props.length; i++){
32
- var descriptor = props[i];
33
- descriptor.enumerable = descriptor.enumerable || false;
34
- descriptor.configurable = true;
35
- if ("value" in descriptor) descriptor.writable = true;
36
- Object.defineProperty(target, descriptor.key, descriptor);
37
- }
38
- }
39
- function _create_class(Constructor, protoProps, staticProps) {
40
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
41
- if (staticProps) _defineProperties(Constructor, staticProps);
42
- return Constructor;
43
- }
44
- function _get_prototype_of(o) {
45
- _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o) {
46
- return o.__proto__ || Object.getPrototypeOf(o);
47
- };
48
- return _get_prototype_of(o);
49
- }
50
- function _inherits(subClass, superClass) {
51
- if (typeof superClass !== "function" && superClass !== null) {
52
- throw new TypeError("Super expression must either be null or a function");
53
- }
54
- subClass.prototype = Object.create(superClass && superClass.prototype, {
55
- constructor: {
56
- value: subClass,
57
- writable: true,
58
- configurable: true
59
- }
60
- });
61
- if (superClass) _set_prototype_of(subClass, superClass);
62
- }
63
- function _interop_require_default(obj) {
64
- return obj && obj.__esModule ? obj : {
65
- default: obj
66
- };
67
- }
68
- function _possible_constructor_return(self, call) {
69
- if (call && (_type_of(call) === "object" || typeof call === "function")) {
70
- return call;
71
- }
72
- return _assert_this_initialized(self);
73
- }
74
- function _set_prototype_of(o, p) {
75
- _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o, p) {
76
- o.__proto__ = p;
77
- return o;
78
- };
79
- return _set_prototype_of(o, p);
80
- }
81
- function _type_of(obj) {
82
- "@swc/helpers - typeof";
83
- return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
84
- }
85
- function _is_native_reflect_construct() {
86
- try {
87
- var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));
88
- } catch (_) {}
89
- return (_is_native_reflect_construct = function() {
90
- return !!result;
91
- })();
92
- }
93
- var BracketedCombinator = /*#__PURE__*/ function(Combinator) {
94
- _inherits(BracketedCombinator, Combinator);
95
- function BracketedCombinator() {
96
- _class_call_check(this, BracketedCombinator);
97
- return _call_super(this, BracketedCombinator, arguments);
98
- }
99
- _create_class(BracketedCombinator, [
100
- {
101
- key: "unifyStatement",
102
- value: function unifyStatement(statement, assignments, stated, context) {
103
- var statementUnified;
104
- var statementString = statement.getString();
105
- context.trace("Unifying the '".concat(statementString, "' statement with the bracketed combinator..."));
106
- var bracketedCombinator = this, combinator = bracketedCombinator, statementUnifiedWithCombinator = (0, _unification.unifyStatementWithCombinator)(statement, combinator, assignments, stated, context);
107
- statementUnified = statementUnifiedWithCombinator;
108
- if (statementUnified) {
109
- context.debug("...unified the '".concat(statementString, "' statement with the bracketed combinator."));
110
- }
111
- return statementUnified;
112
- }
113
- }
114
- ], [
115
- {
116
- key: "fromNothing",
117
- value: function fromNothing() {
118
- var Statement = _dom.default.Statement, bracketedStatementNode = _combinator1.default.getBracketedStatementNode(), statementNode = bracketedStatementNode, context = _combinator1.default, statement = Statement.fromStatementNode(statementNode, context), bracketedCombinator = new BracketedCombinator(statement);
119
- return bracketedCombinator;
120
- }
121
- }
122
- ]);
123
- return BracketedCombinator;
124
- }(_combinator.default);
125
-
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21iaW5hdG9yL2JyYWNrZXRlZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IGRvbSBmcm9tIFwiLi4vZG9tXCI7XG5pbXBvcnQgQ29tYmluYXRvciBmcm9tIFwiLi4vY29tYmluYXRvclwiO1xuaW1wb3J0IGNvbWJpbmF0b3JCcmFja2V0ZWRDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L2JyYWNrZXRlZC9jb21iaW5hdG9yXCI7XG5cbmltcG9ydCB7IHVuaWZ5U3RhdGVtZW50V2l0aENvbWJpbmF0b3IgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3VuaWZpY2F0aW9uXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJyYWNrZXRlZENvbWJpbmF0b3IgZXh0ZW5kcyBDb21iaW5hdG9yIHtcbiAgdW5pZnlTdGF0ZW1lbnQoc3RhdGVtZW50LCBhc3NpZ25tZW50cywgc3RhdGVkLCBjb250ZXh0KSB7XG4gICAgbGV0IHN0YXRlbWVudFVuaWZpZWQ7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IHdpdGggdGhlIGJyYWNrZXRlZCBjb21iaW5hdG9yLi4uYCk7XG5cbiAgICBjb25zdCBicmFja2V0ZWRDb21iaW5hdG9yID0gdGhpcywgLy8vXG4gICAgICAgICAgY29tYmluYXRvciA9IGJyYWNrZXRlZENvbWJpbmF0b3IsIC8vL1xuICAgICAgICAgIHN0YXRlbWVudFVuaWZpZWRXaXRoQ29tYmluYXRvciA9IHVuaWZ5U3RhdGVtZW50V2l0aENvbWJpbmF0b3Ioc3RhdGVtZW50LCBjb21iaW5hdG9yLCBhc3NpZ25tZW50cywgc3RhdGVkLCBjb250ZXh0KTtcblxuICAgIHN0YXRlbWVudFVuaWZpZWQgPSBzdGF0ZW1lbnRVbmlmaWVkV2l0aENvbWJpbmF0b3I7XG5cbiAgICBpZiAoc3RhdGVtZW50VW5pZmllZCkge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IHdpdGggdGhlIGJyYWNrZXRlZCBjb21iaW5hdG9yLmApO1xuICAgIH1cblxuICAgIHJldHVybiBzdGF0ZW1lbnRVbmlmaWVkO1xuICB9XG5cbiAgc3RhdGljIGZyb21Ob3RoaW5nKCkge1xuICAgIGNvbnN0IHsgU3RhdGVtZW50IH0gPSBkb20sXG4gICAgICAgICAgYnJhY2tldGVkU3RhdGVtZW50Tm9kZSA9IGNvbWJpbmF0b3JCcmFja2V0ZWRDb250ZXh0LmdldEJyYWNrZXRlZFN0YXRlbWVudE5vZGUoKSxcbiAgICAgICAgICBzdGF0ZW1lbnROb2RlID0gYnJhY2tldGVkU3RhdGVtZW50Tm9kZSwgLy8vXG4gICAgICAgICAgY29udGV4dCA9IGNvbWJpbmF0b3JCcmFja2V0ZWRDb250ZXh0LCAvLy9cbiAgICAgICAgICBzdGF0ZW1lbnQgPSBTdGF0ZW1lbnQuZnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZSwgY29udGV4dCksXG4gICAgICAgICAgYnJhY2tldGVkQ29tYmluYXRvciA9IG5ldyBCcmFja2V0ZWRDb21iaW5hdG9yKHN0YXRlbWVudCk7XG5cbiAgICByZXR1cm4gYnJhY2tldGVkQ29tYmluYXRvcjtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkJyYWNrZXRlZENvbWJpbmF0b3IiLCJ1bmlmeVN0YXRlbWVudCIsInN0YXRlbWVudCIsImFzc2lnbm1lbnRzIiwic3RhdGVkIiwiY29udGV4dCIsInN0YXRlbWVudFVuaWZpZWQiLCJzdGF0ZW1lbnRTdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsImJyYWNrZXRlZENvbWJpbmF0b3IiLCJjb21iaW5hdG9yIiwic3RhdGVtZW50VW5pZmllZFdpdGhDb21iaW5hdG9yIiwidW5pZnlTdGF0ZW1lbnRXaXRoQ29tYmluYXRvciIsImRlYnVnIiwiZnJvbU5vdGhpbmciLCJTdGF0ZW1lbnQiLCJkb20iLCJicmFja2V0ZWRTdGF0ZW1lbnROb2RlIiwiY29tYmluYXRvckJyYWNrZXRlZENvbnRleHQiLCJnZXRCcmFja2V0ZWRTdGF0ZW1lbnROb2RlIiwic3RhdGVtZW50Tm9kZSIsImZyb21TdGF0ZW1lbnROb2RlIiwiQ29tYmluYXRvciJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFRcUJBOzs7MERBTkw7aUVBQ087a0VBQ2dCOzJCQUVNOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTlCLElBQUEsQUFBTUEsb0NBQU47Y0FBTUE7YUFBQUE7Z0NBQUFBO2VBQU4sa0JBQU1BOztrQkFBQUE7O1lBQ25CQyxLQUFBQTttQkFBQUEsU0FBQUEsZUFBZUMsU0FBUyxFQUFFQyxXQUFXLEVBQUVDLE1BQU0sRUFBRUMsT0FBTztnQkFDcEQsSUFBSUM7Z0JBRUosSUFBTUMsa0JBQWtCTCxVQUFVTSxTQUFTO2dCQUUzQ0gsUUFBUUksS0FBSyxDQUFDLEFBQUMsaUJBQWdDLE9BQWhCRixpQkFBZ0I7Z0JBRS9DLElBQU1HLHNCQUFzQixJQUFJLEVBQzFCQyxhQUFhRCxxQkFDYkUsaUNBQWlDQyxJQUFBQSx5Q0FBNEIsRUFBQ1gsV0FBV1MsWUFBWVIsYUFBYUMsUUFBUUM7Z0JBRWhIQyxtQkFBbUJNO2dCQUVuQixJQUFJTixrQkFBa0I7b0JBQ3BCRCxRQUFRUyxLQUFLLENBQUMsQUFBQyxtQkFBa0MsT0FBaEJQLGlCQUFnQjtnQkFDbkQ7Z0JBRUEsT0FBT0Q7WUFDVDs7OztZQUVPUyxLQUFBQTttQkFBUCxTQUFPQTtnQkFDTCxJQUFNLEFBQUVDLFlBQWNDLFlBQUcsQ0FBakJELFdBQ0ZFLHlCQUF5QkMsb0JBQTBCLENBQUNDLHlCQUF5QixJQUM3RUMsZ0JBQWdCSCx3QkFDaEJiLFVBQVVjLG9CQUEwQixFQUNwQ2pCLFlBQVljLFVBQVVNLGlCQUFpQixDQUFDRCxlQUFlaEIsVUFDdkRLLHNCQUFzQixJQTNCWFYsb0JBMkJtQ0U7Z0JBRXBELE9BQU9RO1lBQ1Q7OztXQTlCbUJWO0VBQTRCdUIsbUJBQVUifQ==
package/lib/combinator.js DELETED
@@ -1,122 +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 Combinator;
9
- }
10
- });
11
- var _dom = /*#__PURE__*/ _interop_require_default(require("./dom"));
12
- var _local = /*#__PURE__*/ _interop_require_default(require("./context/local"));
13
- var _query = require("./utilities/query");
14
- var _unification = require("./utilities/unification");
15
- var _json = require("./utilities/json");
16
- function _class_call_check(instance, Constructor) {
17
- if (!(instance instanceof Constructor)) {
18
- throw new TypeError("Cannot call a class as a function");
19
- }
20
- }
21
- function _defineProperties(target, props) {
22
- for(var i = 0; i < props.length; i++){
23
- var descriptor = props[i];
24
- descriptor.enumerable = descriptor.enumerable || false;
25
- descriptor.configurable = true;
26
- if ("value" in descriptor) descriptor.writable = true;
27
- Object.defineProperty(target, descriptor.key, descriptor);
28
- }
29
- }
30
- function _create_class(Constructor, protoProps, staticProps) {
31
- if (protoProps) _defineProperties(Constructor.prototype, protoProps);
32
- if (staticProps) _defineProperties(Constructor, staticProps);
33
- return Constructor;
34
- }
35
- function _interop_require_default(obj) {
36
- return obj && obj.__esModule ? obj : {
37
- default: obj
38
- };
39
- }
40
- var statementNodeQuery = (0, _query.nodeQuery)("/combinatorDeclaration/statement");
41
- var Combinator = /*#__PURE__*/ function() {
42
- function Combinator(statement) {
43
- _class_call_check(this, Combinator);
44
- this.statement = statement;
45
- }
46
- _create_class(Combinator, [
47
- {
48
- key: "getStatement",
49
- value: function getStatement() {
50
- return this.statement;
51
- }
52
- },
53
- {
54
- key: "getString",
55
- value: function getString() {
56
- return this.statement.getString();
57
- }
58
- },
59
- {
60
- key: "getStatementNode",
61
- value: function getStatementNode() {
62
- var statementNode = this.statement.getNode();
63
- return statementNode;
64
- }
65
- },
66
- {
67
- key: "unifyStatement",
68
- value: function unifyStatement(statement, assignments, stated, context) {
69
- var statementUnified;
70
- var combinator = this, statementString = statement.getString(), combinatorString = combinator.getString();
71
- context.trace("Unifying the '".concat(statementString, "' statement with the '").concat(combinatorString, "' combinator..."));
72
- var statementUnifiedWithCombinator = (0, _unification.unifyStatementWithCombinator)(statement, combinator, assignments, stated, context);
73
- statementUnified = statementUnifiedWithCombinator; ///
74
- if (statementUnified) {
75
- context.debug("...unified the '".concat(statementString, "' statement with the '").concat(combinatorString, "' combinator."));
76
- }
77
- return statementUnified;
78
- }
79
- },
80
- {
81
- key: "verifyWhenDeclared",
82
- value: function verifyWhenDeclared(fileContext) {
83
- var verifiedWhenDeclared;
84
- var combinatorString = this.getString(); ///
85
- fileContext.trace("Verifying the '".concat(combinatorString, "' combinator when declared..."));
86
- var statementVerifiedAtTopLevel = this.statement.verifyWhenDeclared(fileContext);
87
- verifiedWhenDeclared = statementVerifiedAtTopLevel; ///
88
- if (verifiedWhenDeclared) {
89
- fileContext.debug("...verified the '".concat(combinatorString, "' combinator when declared."));
90
- }
91
- return verifiedWhenDeclared;
92
- }
93
- },
94
- {
95
- key: "toJSON",
96
- value: function toJSON() {
97
- var statementJSON = (0, _json.statementToStatementJSON)(this.statement), statement = statementJSON, json = {
98
- statement: statement
99
- };
100
- return json;
101
- }
102
- }
103
- ], [
104
- {
105
- key: "fromJSON",
106
- value: function fromJSON(json, fileContext) {
107
- var statement = (0, _json.statementFromJSON)(json, fileContext), combinator = new Combinator(statement);
108
- return combinator;
109
- }
110
- },
111
- {
112
- key: "fromCombinatorDeclarationNode",
113
- value: function fromCombinatorDeclarationNode(combinatorDeclarationNode, fileContext) {
114
- var Statement = _dom.default.Statement, statementNode = statementNodeQuery(combinatorDeclarationNode), localContext = _local.default.fromFileContext(fileContext), context = localContext, statement = Statement.fromStatementNode(statementNode, context), combinator = new Combinator(statement);
115
- return combinator;
116
- }
117
- }
118
- ]);
119
- return Combinator;
120
- }();
121
-
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21iaW5hdG9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgZG9tIGZyb20gXCIuL2RvbVwiO1xuaW1wb3J0IExvY2FsQ29udGV4dCBmcm9tIFwiLi9jb250ZXh0L2xvY2FsXCI7XG5cbmltcG9ydCB7IG5vZGVRdWVyeSB9IGZyb20gXCIuL3V0aWxpdGllcy9xdWVyeVwiO1xuaW1wb3J0IHsgdW5pZnlTdGF0ZW1lbnRXaXRoQ29tYmluYXRvciB9IGZyb20gXCIuL3V0aWxpdGllcy91bmlmaWNhdGlvblwiO1xuaW1wb3J0IHsgc3RhdGVtZW50RnJvbUpTT04sIHN0YXRlbWVudFRvU3RhdGVtZW50SlNPTiB9IGZyb20gXCIuL3V0aWxpdGllcy9qc29uXCI7XG5cbmNvbnN0IHN0YXRlbWVudE5vZGVRdWVyeSA9IG5vZGVRdWVyeShcIi9jb21iaW5hdG9yRGVjbGFyYXRpb24vc3RhdGVtZW50XCIpO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb21iaW5hdG9yIHtcbiAgY29uc3RydWN0b3Ioc3RhdGVtZW50KSB7XG4gICAgdGhpcy5zdGF0ZW1lbnQgPSBzdGF0ZW1lbnQ7XG4gIH1cblxuICBnZXRTdGF0ZW1lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVtZW50O1xuICB9XG5cbiAgZ2V0U3RyaW5nKCkgeyByZXR1cm4gdGhpcy5zdGF0ZW1lbnQuZ2V0U3RyaW5nKCk7IH1cblxuICBnZXRTdGF0ZW1lbnROb2RlKCkge1xuICAgIGNvbnN0IHN0YXRlbWVudE5vZGUgPSB0aGlzLnN0YXRlbWVudC5nZXROb2RlKCk7XG5cbiAgICByZXR1cm4gc3RhdGVtZW50Tm9kZTtcbiAgfVxuXG4gIHVuaWZ5U3RhdGVtZW50KHN0YXRlbWVudCwgYXNzaWdubWVudHMsIHN0YXRlZCwgY29udGV4dCkge1xuICAgIGxldCBzdGF0ZW1lbnRVbmlmaWVkO1xuXG4gICAgY29uc3QgY29tYmluYXRvciA9IHRoaXMsICAvLy9cbiAgICAgICAgICBzdGF0ZW1lbnRTdHJpbmcgPSBzdGF0ZW1lbnQuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgY29tYmluYXRvclN0cmluZyA9IGNvbWJpbmF0b3IuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBVbmlmeWluZyB0aGUgJyR7c3RhdGVtZW50U3RyaW5nfScgc3RhdGVtZW50IHdpdGggdGhlICcke2NvbWJpbmF0b3JTdHJpbmd9JyBjb21iaW5hdG9yLi4uYCk7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnRVbmlmaWVkV2l0aENvbWJpbmF0b3IgPSB1bmlmeVN0YXRlbWVudFdpdGhDb21iaW5hdG9yKHN0YXRlbWVudCwgY29tYmluYXRvciwgYXNzaWdubWVudHMsIHN0YXRlZCwgY29udGV4dCk7XG5cbiAgICBzdGF0ZW1lbnRVbmlmaWVkID0gc3RhdGVtZW50VW5pZmllZFdpdGhDb21iaW5hdG9yOyAvLy9cblxuICAgIGlmIChzdGF0ZW1lbnRVbmlmaWVkKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi51bmlmaWVkIHRoZSAnJHtzdGF0ZW1lbnRTdHJpbmd9JyBzdGF0ZW1lbnQgd2l0aCB0aGUgJyR7Y29tYmluYXRvclN0cmluZ30nIGNvbWJpbmF0b3IuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlbWVudFVuaWZpZWQ7XG4gIH1cblxuICB2ZXJpZnlXaGVuRGVjbGFyZWQoZmlsZUNvbnRleHQpIHtcbiAgICBsZXQgdmVyaWZpZWRXaGVuRGVjbGFyZWQ7XG5cbiAgICBjb25zdCBjb21iaW5hdG9yU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBmaWxlQ29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtjb21iaW5hdG9yU3RyaW5nfScgY29tYmluYXRvciB3aGVuIGRlY2xhcmVkLi4uYCk7XG5cbiAgICBjb25zdCBzdGF0ZW1lbnRWZXJpZmllZEF0VG9wTGV2ZWwgPSB0aGlzLnN0YXRlbWVudC52ZXJpZnlXaGVuRGVjbGFyZWQoZmlsZUNvbnRleHQpO1xuXG4gICAgdmVyaWZpZWRXaGVuRGVjbGFyZWQgPSBzdGF0ZW1lbnRWZXJpZmllZEF0VG9wTGV2ZWw7IC8vL1xuXG4gICAgaWYgKHZlcmlmaWVkV2hlbkRlY2xhcmVkKSB7XG4gICAgICBmaWxlQ29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2NvbWJpbmF0b3JTdHJpbmd9JyBjb21iaW5hdG9yIHdoZW4gZGVjbGFyZWQuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVkV2hlbkRlY2xhcmVkO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IHN0YXRlbWVudEpTT04gPSBzdGF0ZW1lbnRUb1N0YXRlbWVudEpTT04odGhpcy5zdGF0ZW1lbnQpLFxuICAgICAgICAgIHN0YXRlbWVudCA9IHN0YXRlbWVudEpTT04sICAvLy9cbiAgICAgICAgICBqc29uID0ge1xuICAgICAgICAgICAgc3RhdGVtZW50XG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KSB7XG4gICAgY29uc3Qgc3RhdGVtZW50ID0gc3RhdGVtZW50RnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpLFxuICAgICAgICAgIGNvbWJpbmF0b3IgPSBuZXcgQ29tYmluYXRvcihzdGF0ZW1lbnQpO1xuXG4gICAgcmV0dXJuIGNvbWJpbmF0b3I7XG4gIH1cblxuICBzdGF0aWMgZnJvbUNvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGUoY29tYmluYXRvckRlY2xhcmF0aW9uTm9kZSwgZmlsZUNvbnRleHQpIHtcbiAgICBjb25zdCB7IFN0YXRlbWVudCB9ID0gZG9tLFxuICAgICAgICAgIHN0YXRlbWVudE5vZGUgPSBzdGF0ZW1lbnROb2RlUXVlcnkoY29tYmluYXRvckRlY2xhcmF0aW9uTm9kZSksXG4gICAgICAgICAgbG9jYWxDb250ZXh0ID0gTG9jYWxDb250ZXh0LmZyb21GaWxlQ29udGV4dChmaWxlQ29udGV4dCksXG4gICAgICAgICAgY29udGV4dCA9IGxvY2FsQ29udGV4dCwgLy8vXG4gICAgICAgICAgc3RhdGVtZW50ID0gU3RhdGVtZW50LmZyb21TdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgIGNvbWJpbmF0b3IgPSBuZXcgQ29tYmluYXRvcihzdGF0ZW1lbnQpO1xuXG4gICAgcmV0dXJuIGNvbWJpbmF0b3I7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJDb21iaW5hdG9yIiwic3RhdGVtZW50Tm9kZVF1ZXJ5Iiwibm9kZVF1ZXJ5Iiwic3RhdGVtZW50IiwiZ2V0U3RhdGVtZW50IiwiZ2V0U3RyaW5nIiwiZ2V0U3RhdGVtZW50Tm9kZSIsInN0YXRlbWVudE5vZGUiLCJnZXROb2RlIiwidW5pZnlTdGF0ZW1lbnQiLCJhc3NpZ25tZW50cyIsInN0YXRlZCIsImNvbnRleHQiLCJzdGF0ZW1lbnRVbmlmaWVkIiwiY29tYmluYXRvciIsInN0YXRlbWVudFN0cmluZyIsImNvbWJpbmF0b3JTdHJpbmciLCJ0cmFjZSIsInN0YXRlbWVudFVuaWZpZWRXaXRoQ29tYmluYXRvciIsInVuaWZ5U3RhdGVtZW50V2l0aENvbWJpbmF0b3IiLCJkZWJ1ZyIsInZlcmlmeVdoZW5EZWNsYXJlZCIsImZpbGVDb250ZXh0IiwidmVyaWZpZWRXaGVuRGVjbGFyZWQiLCJzdGF0ZW1lbnRWZXJpZmllZEF0VG9wTGV2ZWwiLCJ0b0pTT04iLCJzdGF0ZW1lbnRKU09OIiwic3RhdGVtZW50VG9TdGF0ZW1lbnRKU09OIiwianNvbiIsImZyb21KU09OIiwic3RhdGVtZW50RnJvbUpTT04iLCJmcm9tQ29tYmluYXRvckRlY2xhcmF0aW9uTm9kZSIsImNvbWJpbmF0b3JEZWNsYXJhdGlvbk5vZGUiLCJTdGF0ZW1lbnQiLCJkb20iLCJsb2NhbENvbnRleHQiLCJMb2NhbENvbnRleHQiLCJmcm9tRmlsZUNvbnRleHQiLCJmcm9tU3RhdGVtZW50Tm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFXcUJB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