occam-verify-cli 0.0.1037 → 0.0.1039

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.
@@ -29,16 +29,15 @@ class IntrinsicLevelUnifier extends Unifier {
29
29
  unify: (termVariableNodeA, termNodeB, substitutions, localContextA, localContextB) => {
30
30
  let termUnified = false;
31
31
 
32
- const variableNodeA = termVariableNodeA, ///
33
- variableNameA = variableNameFromVariableNode(variableNodeA),
34
- variableA = localContextA.findVariableByVariableName(variableNameA);
32
+ const variableNode = termVariableNodeA, ///
33
+ variableName = variableNameFromVariableNode(variableNode),
34
+ variable = localContextA.findVariableByVariableName(variableName);
35
35
 
36
- if (variableA !== null) {
36
+ if (variable !== null) {
37
37
  const { Term } = shim,
38
- termB = Term.fromTermNode(termNodeB, localContextB),
39
38
  localContext = localContextB, ///
40
- variable = variableA, ///
41
- term = termB; ///
39
+ termNode = termNodeB, ///
40
+ term = Term.fromTermNode(termNode, localContextB);
42
41
 
43
42
  termUnified = variable.unifyTerm(term, substitutions, localContext);
44
43
  }
@@ -3,7 +3,6 @@
3
3
  import shim from "../shim";
4
4
  import Unifier from "../unifier";
5
5
  import unifyMetavariableWithFrame from "../unify/metavariableWithFrame";
6
- import unifyMetavariableWithStatementGivenSubstitution from "../unify/metavariableWithStatementGivenSubstitution";
7
6
 
8
7
  import { nodeQuery } from "../utilities/query";
9
8
  import { variableNameFromVariableNode, metavariableNameFromMetavariableNode } from "../utilities/name";
@@ -13,7 +12,6 @@ const termNodeQuery = nodeQuery("/term!"),
13
12
  statementNodeQuery = nodeQuery("/statement!"),
14
13
  termVariableNodeQuery = nodeQuery("/term/variable!"),
15
14
  frameMetavariableNodeQuery = nodeQuery("/frame/metavariable!"),
16
- statementSubstitutionNodeQuery = nodeQuery("/statement/substitution!"),
17
15
  statementMetavariableNodeQuery = nodeQuery("/statement/metavariable!");
18
16
 
19
17
  class MetaLevelUnifier extends Unifier {
@@ -34,42 +32,46 @@ class MetaLevelUnifier extends Unifier {
34
32
  nodeQueryA: statementNodeQuery,
35
33
  nodeQueryB: statementNodeQuery,
36
34
  unify: (statementNodeA, statementNodeB, substitutions, localContextA, localContextB) => {
37
- let statementUnifiedWithStatement;
35
+ let statementUnified;
38
36
 
39
37
  const matches = statementNodeA.match(statementNodeB);
40
38
 
41
39
  if (matches) {
42
- statementUnifiedWithStatement = true;
40
+ statementUnified = true;
43
41
  } else {
44
- const statementMetavariableNodeA = statementMetavariableNodeQuery(statementNodeA);
42
+ const { Statement } = shim,
43
+ statementB = Statement.fromStatementNode(statementNodeB, localContextB),
44
+ statementMetavariableNodeA = statementMetavariableNodeQuery(statementNodeA);
45
45
 
46
46
  if (statementMetavariableNodeA !== null) {
47
- const metavariableNodeA = statementMetavariableNodeA, ///
48
- statementSubstitutionNodeA = statementSubstitutionNodeQuery(statementNodeA);
49
-
50
- if (statementSubstitutionNodeA === null) {
51
- const { Statement } = shim,
52
- metavariableNameA = metavariableNameFromMetavariableNode(metavariableNodeA),
53
- metavariableA = localContextA.findMetavariableByMetavariableName(metavariableNameA),
54
- statementB = Statement.fromStatementNode(statementNodeB, localContextB),
55
- localContext = localContextB, ///
56
- metavariable = metavariableA, ///
57
- statement = statementB, ///
58
- statementUnified = metavariable.unifyStatement(statement, substitutions, localContext);
59
-
60
- statementUnifiedWithStatement = statementUnified; ///
47
+ let statement;
48
+
49
+ const statementA = Statement.fromStatementNode(statementNodeA, localContextA);
50
+
51
+ statement = statementA; ///
52
+
53
+ const substitution = statement.getSubstitution();
54
+
55
+ statement = statementB; ///
56
+
57
+ const localContext = localContextB, ///
58
+ metavariableNode = statementMetavariableNodeA, ///
59
+ metavariableName = metavariableNameFromMetavariableNode(metavariableNode),
60
+ metavariable = localContextA.findMetavariableByMetavariableName(metavariableName);
61
+
62
+ if (substitution === null) {
63
+ statementUnified = metavariable.unifyStatement(statement, substitutions, localContext);
61
64
  } else {
62
- const substitutionNodeA = statementSubstitutionNodeA, ///
63
- metavariableUnifiedWithStatementGivenSubstitution = unifyMetavariableWithStatementGivenSubstitution(metavariableNodeA, statementNodeB, substitutionNodeA, substitutions, localContextA, localContextB);
65
+ const statementUnifiedGivenSubstitution = metavariableNode.unifyStatementGivenSubstitution(statement, substitution, substitutions, localContext);
64
66
 
65
- statementUnifiedWithStatement = metavariableUnifiedWithStatementGivenSubstitution; ///
67
+ statementUnified = statementUnifiedGivenSubstitution; ///
66
68
  }
67
69
  } else {
68
- statementUnifiedWithStatement = unifyStatementWithStatement(statementNodeA, statementNodeB, substitutions, localContextA, localContextB);
70
+ statementUnified = unifyStatementWithStatement(statementNodeA, statementNodeB, substitutions, localContextA, localContextB);
69
71
  }
70
72
  }
71
73
 
72
- return statementUnifiedWithStatement;
74
+ return statementUnified;
73
75
  }
74
76
  },
75
77
  {
@@ -90,16 +92,15 @@ class MetaLevelUnifier extends Unifier {
90
92
  unify: (termVariableNodeA, termNodeB, substitutions, localContextA, localContextB) => {
91
93
  let termUnified = false;
92
94
 
93
- const variableNodeA = termVariableNodeA, ///
94
- variableNameA = variableNameFromVariableNode(variableNodeA),
95
- variableA = localContextA.findVariableByVariableName(variableNameA);
95
+ const variableNode = termVariableNodeA, ///
96
+ variableName = variableNameFromVariableNode(variableNode),
97
+ variable = localContextA.findVariableByVariableName(variableName);
96
98
 
97
- if (variableA !== null) {
99
+ if (variable !== null) {
98
100
  const { Term } = shim,
99
- termB = Term.fromTermNode(termNodeB, localContextB),
100
101
  localContext = localContextB, ///
101
- variable = variableA, ///
102
- term = termB; ///
102
+ termNode = termNodeB, ///
103
+ term = Term.fromTermNode(termNode, localContextB);
103
104
 
104
105
  termUnified = variable.unifyTerm(term, substitutions, localContext);
105
106
  }
@@ -122,7 +123,7 @@ function unifyStatementWithStatement(statementNodeA, statementNodeB, substitutio
122
123
  childNodesA = nonTerminalNodeAChildNodes, ///
123
124
  childNodesB = nonTerminalNodeBChildNodes, ///
124
125
  childNodesVerified = metaLevelUnifier.unifyChildNodes(childNodesA, childNodesB, substitutions, localContextA, localContextB),
125
- statementUnifiedWithStatement = childNodesVerified; ///
126
+ statementUnified = childNodesVerified; ///
126
127
 
127
- return statementUnifiedWithStatement;
128
+ return statementUnified;
128
129
  }
@@ -6,10 +6,12 @@ import { nodeQuery } from "../utilities/query";
6
6
  import { combinedCustomGrammarFromNothing } from "./customGrammar";
7
7
  import { VARIABLE_RULE_NAME,
8
8
  METAVARIABLE_RULE_NAME,
9
+ SUBSTITUTION_RULE_NAME,
9
10
  UNQUALIFIED_STATEMENT_RULE_NAME,
10
11
  CONSTRUCTOR_DECLARATION_RULE_NAME } from "../ruleNames";
11
12
  import { variableTokensFromVariableString,
12
13
  metavariableTokensFromMetavariableString,
14
+ substitutionTokensFromSubstitutionString,
13
15
  unqualifiedStatementTokensFromUnqualifiedStatementString,
14
16
  constructorDeclarationTokensFromConstructorDeclarationString } from "../utilities/tokens";
15
17
 
@@ -55,6 +57,13 @@ export function metavariableNodeFromMetavariableString(metavariableString, lexer
55
57
  return metavariableNode;
56
58
  }
57
59
 
60
+ export function substitutionNodeFromSubstitutionString(substitutionString, lexer, parser) {
61
+ const substitutionTokens = substitutionTokensFromSubstitutionString(substitutionString, lexer),
62
+ substitutionNode = substitutionNodeFromSubstitutionTokens(substitutionTokens, parser);
63
+
64
+ return substitutionNode;
65
+ }
66
+
58
67
  export function variableNodeFromVariableTokens(variableTokens, parser) {
59
68
  const ruleName = VARIABLE_RULE_NAME,
60
69
  variableNode = nodeFromTokensRuleNameAndParser(variableTokens, ruleName, parser);
@@ -69,6 +78,13 @@ export function metavariableNodeFromMetavariableTokens(metavariableTokens, parse
69
78
  return metavariableNode;
70
79
  }
71
80
 
81
+ export function substitutionNodeFromSubstitutionTokens(substitutionTokens, parser) {
82
+ const ruleName = SUBSTITUTION_RULE_NAME,
83
+ substitutionNode = nodeFromTokensRuleNameAndParser(substitutionTokens, ruleName, parser);
84
+
85
+ return substitutionNode;
86
+ }
87
+
72
88
  export function unqualifiedStatementNodeFromUnqualifiedStatementTokens(unqualifiedStatementTokens, parser) {
73
89
  const tokens = unqualifiedStatementTokens, ///
74
90
  ruleName = UNQUALIFIED_STATEMENT_RULE_NAME,
@@ -23,6 +23,13 @@ export function metavariableTokensFromMetavariableString(metavariableString, lex
23
23
  return metavariableTokens;
24
24
  }
25
25
 
26
+ export function substitutionTokensFromSubstitutionString(substitutionString, lexer) {
27
+ const substitutionContent = `${substitutionString}`,
28
+ substitutionTokens = tokensFromContentAndLexer(substitutionContent, lexer);
29
+
30
+ return substitutionTokens;
31
+ }
32
+
26
33
  export function unqualifiedStatementTokensFromUnqualifiedStatementString(unqualifiedStatementString, lexer) {
27
34
  const content = unqualifiedStatementString, ///
28
35
  unqualifiedStatementTokens = tokensFromContentAndLexer(content, lexer);
@@ -23,9 +23,9 @@ class IntrinsicLevelVerifier extends Verifier {
23
23
  {
24
24
  nodeQuery: termNodeQuery,
25
25
  verify: (termNode, localContext) => {
26
- const { verifyTerm } = shim,
27
- terms = [],
28
- termVerified = verifyTerm(termNode, terms, localContext, () => {
26
+ const { Term } = shim,
27
+ term = Term.fromTermNode(termNode, localContext),
28
+ termVerified = term.verify(localContext, () => {
29
29
  const verifiedAhead = true;
30
30
 
31
31
  return verifiedAhead;
@@ -35,9 +35,9 @@ class MetaLevelVerifier extends Verifier {
35
35
  {
36
36
  nodeQuery: termNodeQuery,
37
37
  verify: (termNode, assignments, stated, localContext) => {
38
- const { verifyTerm } = shim,
39
- terms = [],
40
- termVerified = verifyTerm(termNode, terms, localContext, () => {
38
+ const { Term } = shim,
39
+ term = Term.fromTermNode(termNode, localContext),
40
+ termVerified = term.verify(localContext, () => {
41
41
  const verifiedAhead = true;
42
42
 
43
43
  return verifiedAhead;
@@ -1,40 +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 unifyMetavariableWithStatementGivenSubstitution;
9
- }
10
- });
11
- var _statementForMetavariable = /*#__PURE__*/ _interop_require_default(require("../substitution/statementForMetavariable"));
12
- var _unify = require("../utilities/unify");
13
- var _name = require("../utilities/name");
14
- function _interop_require_default(obj) {
15
- return obj && obj.__esModule ? obj : {
16
- default: obj
17
- };
18
- }
19
- function unifyMetavariableWithStatementGivenSubstitution(metavariableNodeA, statementNodeB, substitutionNodeA, substitutions, localContextA, localContextB) {
20
- var metavariableUnifiedWithStatementGivenSubstitution = false;
21
- var complexSubstitution = substitutions.findComplexSubstitutionByMetavariableNodeAndSubstitutionNode(metavariableNodeA, substitutionNodeA), substitution = complexSubstitution; ///
22
- if (substitution !== null) {
23
- var statementNodeMatches = substitution.matchStatementNode(statementNodeB);
24
- if (statementNodeMatches) {
25
- metavariableUnifiedWithStatementGivenSubstitution = true;
26
- }
27
- } else {
28
- var metavariableNameA = (0, _name.metavariableNameFromMetavariableNode)(metavariableNodeA), metavariableA = localContextA.findMetavariableByMetavariableName(metavariableNameA), metavariableB = (0, _unify.metavariableFromStatementNode)(statementNodeB, localContextB);
29
- if (metavariableA === metavariableB) {
30
- metavariableUnifiedWithStatementGivenSubstitution = false; ///
31
- } else {
32
- var statementNode = statementNodeB, substitutionNode = substitutionNodeA, metavariableNode = metavariableNodeA, statementForMetavariableSubstitution = _statementForMetavariable.default.fromStatementNodeMetavariableNodeAndSubstitutionNode(statementNode, metavariableNode, substitutionNode, localContextA, localContextB), substitution1 = statementForMetavariableSubstitution; ///
33
- substitutions.addSubstitution(substitution1, localContextA, localContextB);
34
- metavariableUnifiedWithStatementGivenSubstitution = true;
35
- }
36
- }
37
- return metavariableUnifiedWithStatementGivenSubstitution;
38
- }
39
-
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91bmlmeS9tZXRhdmFyaWFibGVXaXRoU3RhdGVtZW50R2l2ZW5TdWJzdGl0dXRpb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBTdGF0ZW1lbnRGb3JNZXRhdmFyaWFibGVTdWJzdGl0dXRpb24gZnJvbSBcIi4uL3N1YnN0aXR1dGlvbi9zdGF0ZW1lbnRGb3JNZXRhdmFyaWFibGVcIjtcblxuaW1wb3J0IHsgbWV0YXZhcmlhYmxlRnJvbVN0YXRlbWVudE5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3VuaWZ5XCI7XG5pbXBvcnQgeyBtZXRhdmFyaWFibGVOYW1lRnJvbU1ldGF2YXJpYWJsZU5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL25hbWVcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdW5pZnlNZXRhdmFyaWFibGVXaXRoU3RhdGVtZW50R2l2ZW5TdWJzdGl0dXRpb24obWV0YXZhcmlhYmxlTm9kZUEsIHN0YXRlbWVudE5vZGVCLCBzdWJzdGl0dXRpb25Ob2RlQSwgc3Vic3RpdHV0aW9ucywgbG9jYWxDb250ZXh0QSwgbG9jYWxDb250ZXh0Qikge1xuICBsZXQgbWV0YXZhcmlhYmxlVW5pZmllZFdpdGhTdGF0ZW1lbnRHaXZlblN1YnN0aXR1dGlvbiA9IGZhbHNlO1xuXG4gIGNvbnN0IGNvbXBsZXhTdWJzdGl0dXRpb24gPSBzdWJzdGl0dXRpb25zLmZpbmRDb21wbGV4U3Vic3RpdHV0aW9uQnlNZXRhdmFyaWFibGVOb2RlQW5kU3Vic3RpdHV0aW9uTm9kZShtZXRhdmFyaWFibGVOb2RlQSwgc3Vic3RpdHV0aW9uTm9kZUEpLFxuICAgICAgICBzdWJzdGl0dXRpb24gPSBjb21wbGV4U3Vic3RpdHV0aW9uOyAvLy9cblxuICBpZiAoc3Vic3RpdHV0aW9uICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc3RhdGVtZW50Tm9kZU1hdGNoZXMgPSBzdWJzdGl0dXRpb24ubWF0Y2hTdGF0ZW1lbnROb2RlKHN0YXRlbWVudE5vZGVCKTtcblxuICAgIGlmIChzdGF0ZW1lbnROb2RlTWF0Y2hlcykge1xuICAgICAgbWV0YXZhcmlhYmxlVW5pZmllZFdpdGhTdGF0ZW1lbnRHaXZlblN1YnN0aXR1dGlvbiA9IHRydWU7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGNvbnN0IG1ldGF2YXJpYWJsZU5hbWVBID0gbWV0YXZhcmlhYmxlTmFtZUZyb21NZXRhdmFyaWFibGVOb2RlKG1ldGF2YXJpYWJsZU5vZGVBKSxcbiAgICAgICAgICBtZXRhdmFyaWFibGVBID0gbG9jYWxDb250ZXh0QS5maW5kTWV0YXZhcmlhYmxlQnlNZXRhdmFyaWFibGVOYW1lKG1ldGF2YXJpYWJsZU5hbWVBKSxcbiAgICAgICAgICBtZXRhdmFyaWFibGVCID0gbWV0YXZhcmlhYmxlRnJvbVN0YXRlbWVudE5vZGUoc3RhdGVtZW50Tm9kZUIsIGxvY2FsQ29udGV4dEIpO1xuXG4gICAgaWYgKG1ldGF2YXJpYWJsZUEgPT09IG1ldGF2YXJpYWJsZUIpIHtcbiAgICAgIG1ldGF2YXJpYWJsZVVuaWZpZWRXaXRoU3RhdGVtZW50R2l2ZW5TdWJzdGl0dXRpb24gPSBmYWxzZTsgIC8vL1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBzdGF0ZW1lbnROb2RlID0gc3RhdGVtZW50Tm9kZUIsIC8vL1xuICAgICAgICAgICAgc3Vic3RpdHV0aW9uTm9kZSA9IHN1YnN0aXR1dGlvbk5vZGVBLCAvLy9cbiAgICAgICAgICAgIG1ldGF2YXJpYWJsZU5vZGUgPSBtZXRhdmFyaWFibGVOb2RlQSwgLy8vXG4gICAgICAgICAgICBzdGF0ZW1lbnRGb3JNZXRhdmFyaWFibGVTdWJzdGl0dXRpb24gPSBTdGF0ZW1lbnRGb3JNZXRhdmFyaWFibGVTdWJzdGl0dXRpb24uZnJvbVN0YXRlbWVudE5vZGVNZXRhdmFyaWFibGVOb2RlQW5kU3Vic3RpdHV0aW9uTm9kZShzdGF0ZW1lbnROb2RlLCBtZXRhdmFyaWFibGVOb2RlLCBzdWJzdGl0dXRpb25Ob2RlLCBsb2NhbENvbnRleHRBLCBsb2NhbENvbnRleHRCKSxcbiAgICAgICAgICAgIHN1YnN0aXR1dGlvbiA9IHN0YXRlbWVudEZvck1ldGF2YXJpYWJsZVN1YnN0aXR1dGlvbjsgIC8vL1xuXG4gICAgICBzdWJzdGl0dXRpb25zLmFkZFN1YnN0aXR1dGlvbihzdWJzdGl0dXRpb24sIGxvY2FsQ29udGV4dEEsIGxvY2FsQ29udGV4dEIpO1xuXG4gICAgICBtZXRhdmFyaWFibGVVbmlmaWVkV2l0aFN0YXRlbWVudEdpdmVuU3Vic3RpdHV0aW9uID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbWV0YXZhcmlhYmxlVW5pZmllZFdpdGhTdGF0ZW1lbnRHaXZlblN1YnN0aXR1dGlvbjtcbn1cbiJdLCJuYW1lcyI6WyJ1bmlmeU1ldGF2YXJpYWJsZVdpdGhTdGF0ZW1lbnRHaXZlblN1YnN0aXR1dGlvbiIsIm1ldGF2YXJpYWJsZU5vZGVBIiwic3RhdGVtZW50Tm9kZUIiLCJzdWJzdGl0dXRpb25Ob2RlQSIsInN1YnN0aXR1dGlvbnMiLCJsb2NhbENvbnRleHRBIiwibG9jYWxDb250ZXh0QiIsIm1ldGF2YXJpYWJsZVVuaWZpZWRXaXRoU3RhdGVtZW50R2l2ZW5TdWJzdGl0dXRpb24iLCJjb21wbGV4U3Vic3RpdHV0aW9uIiwiZmluZENvbXBsZXhTdWJzdGl0dXRpb25CeU1ldGF2YXJpYWJsZU5vZGVBbmRTdWJzdGl0dXRpb25Ob2RlIiwic3Vic3RpdHV0aW9uIiwic3RhdGVtZW50Tm9kZU1hdGNoZXMiLCJtYXRjaFN0YXRlbWVudE5vZGUiLCJtZXRhdmFyaWFibGVOYW1lQSIsIm1ldGF2YXJpYWJsZU5hbWVGcm9tTWV0YXZhcmlhYmxlTm9kZSIsIm1ldGF2YXJpYWJsZUEiLCJmaW5kTWV0YXZhcmlhYmxlQnlNZXRhdmFyaWFibGVOYW1lIiwibWV0YXZhcmlhYmxlQiIsIm1ldGF2YXJpYWJsZUZyb21TdGF0ZW1lbnROb2RlIiwic3RhdGVtZW50Tm9kZSIsInN1YnN0aXR1dGlvbk5vZGUiLCJtZXRhdmFyaWFibGVOb2RlIiwic3RhdGVtZW50Rm9yTWV0YXZhcmlhYmxlU3Vic3RpdHV0aW9uIiwiU3RhdGVtZW50Rm9yTWV0YXZhcmlhYmxlU3Vic3RpdHV0aW9uIiwiZnJvbVN0YXRlbWVudE5vZGVNZXRhdmFyaWFibGVOb2RlQW5kU3Vic3RpdHV0aW9uTm9kZSIsImFkZFN1YnN0aXR1dGlvbiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBT0E7OztlQUF3QkE7OzsrRUFMeUI7cUJBRUg7b0JBQ087Ozs7OztBQUV0QyxTQUFTQSxnREFBZ0RDLGlCQUFpQixFQUFFQyxjQUFjLEVBQUVDLGlCQUFpQixFQUFFQyxhQUFhLEVBQUVDLGFBQWEsRUFBRUMsYUFBYTtJQUN2SyxJQUFJQyxvREFBb0Q7SUFFeEQsSUFBTUMsc0JBQXNCSixjQUFjSyw0REFBNEQsQ0FBQ1IsbUJBQW1CRSxvQkFDcEhPLGVBQWVGLHFCQUFxQixHQUFHO0lBRTdDLElBQUlFLGlCQUFpQixNQUFNO1FBQ3pCLElBQU1DLHVCQUF1QkQsYUFBYUUsa0JBQWtCLENBQUNWO1FBRTdELElBQUlTLHNCQUFzQjtZQUN4Qkosb0RBQW9EO1FBQ3REO0lBQ0YsT0FBTztRQUNMLElBQU1NLG9CQUFvQkMsSUFBQUEsMENBQW9DLEVBQUNiLG9CQUN6RGMsZ0JBQWdCVixjQUFjVyxrQ0FBa0MsQ0FBQ0gsb0JBQ2pFSSxnQkFBZ0JDLElBQUFBLG9DQUE2QixFQUFDaEIsZ0JBQWdCSTtRQUVwRSxJQUFJUyxrQkFBa0JFLGVBQWU7WUFDbkNWLG9EQUFvRCxPQUFRLEdBQUc7UUFDakUsT0FBTztZQUNMLElBQU1ZLGdCQUFnQmpCLGdCQUNoQmtCLG1CQUFtQmpCLG1CQUNuQmtCLG1CQUFtQnBCLG1CQUNuQnFCLHVDQUF1Q0MsaUNBQW9DLENBQUNDLG9EQUFvRCxDQUFDTCxlQUFlRSxrQkFBa0JELGtCQUFrQmYsZUFBZUMsZ0JBQ25NSSxnQkFBZVksc0NBQXVDLEdBQUc7WUFFL0RsQixjQUFjcUIsZUFBZSxDQUFDZixlQUFjTCxlQUFlQztZQUUzREMsb0RBQW9EO1FBQ3REO0lBQ0Y7SUFFQSxPQUFPQTtBQUNUIn0=
@@ -1,41 +0,0 @@
1
- "use strict";
2
-
3
- import StatementForMetavariableSubstitution from "../substitution/statementForMetavariable";
4
-
5
- import { metavariableFromStatementNode } from "../utilities/unify";
6
- import { metavariableNameFromMetavariableNode } from "../utilities/name";
7
-
8
- export default function unifyMetavariableWithStatementGivenSubstitution(metavariableNodeA, statementNodeB, substitutionNodeA, substitutions, localContextA, localContextB) {
9
- let metavariableUnifiedWithStatementGivenSubstitution = false;
10
-
11
- const complexSubstitution = substitutions.findComplexSubstitutionByMetavariableNodeAndSubstitutionNode(metavariableNodeA, substitutionNodeA),
12
- substitution = complexSubstitution; ///
13
-
14
- if (substitution !== null) {
15
- const statementNodeMatches = substitution.matchStatementNode(statementNodeB);
16
-
17
- if (statementNodeMatches) {
18
- metavariableUnifiedWithStatementGivenSubstitution = true;
19
- }
20
- } else {
21
- const metavariableNameA = metavariableNameFromMetavariableNode(metavariableNodeA),
22
- metavariableA = localContextA.findMetavariableByMetavariableName(metavariableNameA),
23
- metavariableB = metavariableFromStatementNode(statementNodeB, localContextB);
24
-
25
- if (metavariableA === metavariableB) {
26
- metavariableUnifiedWithStatementGivenSubstitution = false; ///
27
- } else {
28
- const statementNode = statementNodeB, ///
29
- substitutionNode = substitutionNodeA, ///
30
- metavariableNode = metavariableNodeA, ///
31
- statementForMetavariableSubstitution = StatementForMetavariableSubstitution.fromStatementNodeMetavariableNodeAndSubstitutionNode(statementNode, metavariableNode, substitutionNode, localContextA, localContextB),
32
- substitution = statementForMetavariableSubstitution; ///
33
-
34
- substitutions.addSubstitution(substitution, localContextA, localContextB);
35
-
36
- metavariableUnifiedWithStatementGivenSubstitution = true;
37
- }
38
- }
39
-
40
- return metavariableUnifiedWithStatementGivenSubstitution;
41
- }