occam-verify-cli 1.0.192 → 1.0.199
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.
- package/lib/context/file.js +3 -3
- package/lib/dom/assertion/contained.js +12 -24
- package/lib/dom/assertion/defined.js +9 -21
- package/lib/dom/assertion/property.js +7 -7
- package/lib/dom/assertion/satisfies.js +6 -8
- package/lib/dom/declaration/complexType.js +3 -3
- package/lib/dom/declaration/constructor.js +6 -6
- package/lib/dom/declaration/variable.js +6 -6
- package/lib/dom/declaration.js +13 -13
- package/lib/dom/frame.js +7 -7
- package/lib/dom/judgement.js +7 -7
- package/lib/dom/propertyRelation.js +7 -7
- package/lib/dom/term.js +1 -3
- package/lib/dom/topLevelMetaAssertion.js +77 -131
- package/lib/dom/type.js +2 -2
- package/lib/equivalence.js +4 -6
- package/lib/mixins/term/verify.js +4 -8
- package/lib/node/argument.js +116 -0
- package/lib/node/assertion/contained.js +31 -23
- package/lib/node/assertion/defined.js +30 -17
- package/lib/node/assertion/property.js +14 -19
- package/lib/node/assertion/satisfies.js +20 -13
- package/lib/node/assertion/subproof.js +11 -11
- package/lib/node/assertion/type.js +12 -17
- package/lib/node/combinator.js +9 -4
- package/lib/node/conclusion.js +11 -11
- package/lib/node/constructor.js +9 -4
- package/lib/node/declaration/combinator.js +11 -11
- package/lib/node/declaration/complexType.js +38 -34
- package/lib/node/declaration/constructor.js +24 -29
- package/lib/node/declaration/metavariable.js +12 -17
- package/lib/node/declaration/property.js +19 -24
- package/lib/node/declaration/type.js +41 -28
- package/lib/node/declaration/variable.js +12 -17
- package/lib/node/declaration.js +12 -17
- package/lib/node/deduction.js +11 -11
- package/lib/node/derivation.js +39 -11
- package/lib/node/equality.js +21 -18
- package/lib/node/error.js +9 -4
- package/lib/node/frame.js +13 -30
- package/lib/node/judgement.js +13 -18
- package/lib/node/label.js +11 -11
- package/lib/node/labels.js +11 -11
- package/lib/node/metaArgument.js +116 -0
- package/lib/node/metaType.js +9 -8
- package/lib/node/metavariable.js +12 -17
- package/lib/node/nonTerminal.js +218 -0
- package/lib/node/parameter.js +9 -4
- package/lib/node/parenthesisedLabel.js +116 -0
- package/lib/node/parenthesisedLabels.js +11 -11
- package/lib/node/premise.js +12 -17
- package/lib/node/procedureCall.js +12 -17
- package/lib/node/proof.js +11 -11
- package/lib/node/property.js +9 -4
- package/lib/node/propertyRelation.js +12 -17
- package/lib/node/reference.js +11 -11
- package/lib/node/rule.js +44 -7
- package/lib/node/statement.js +92 -53
- package/lib/node/step.js +12 -17
- package/lib/node/subDerivation.js +46 -11
- package/lib/node/subproof.js +19 -17
- package/lib/node/substitution/frame.js +123 -0
- package/lib/node/substitution/reference.js +123 -0
- package/lib/node/substitution/statement.js +123 -0
- package/lib/node/substitution/term.js +123 -0
- package/lib/node/supposition.js +12 -17
- package/lib/node/term.js +22 -33
- package/lib/node/topLevelAssertion.js +14 -29
- package/lib/node/topLevelMetaAssertion.js +26 -41
- package/lib/node/type.js +9 -4
- package/lib/node/types.js +116 -0
- package/lib/node/variable.js +9 -4
- package/lib/nonTerminalNodeMap.js +11 -3
- package/lib/ruleNames.js +33 -1
- package/lib/substitution/frame.js +5 -7
- package/lib/substitution/reference.js +5 -7
- package/lib/substitution/term.js +5 -7
- package/lib/unifier/metaLevel.js +4 -4
- package/lib/utilities/brackets.js +5 -5
- package/lib/utilities/json.js +18 -1
- package/lib/utilities/node.js +1 -313
- package/lib/utilities/subproof.js +13 -4
- package/package.json +1 -1
- package/src/context/file.js +2 -2
- package/src/dom/assertion/contained.js +12 -34
- package/src/dom/assertion/defined.js +9 -30
- package/src/dom/assertion/property.js +6 -8
- package/src/dom/assertion/satisfies.js +5 -10
- package/src/dom/declaration/complexType.js +2 -2
- package/src/dom/declaration/constructor.js +6 -7
- package/src/dom/declaration/variable.js +6 -7
- package/src/dom/declaration.js +11 -15
- package/src/dom/frame.js +4 -6
- package/src/dom/judgement.js +6 -8
- package/src/dom/propertyRelation.js +6 -8
- package/src/dom/term.js +0 -3
- package/src/dom/topLevelMetaAssertion.js +83 -39
- package/src/dom/type.js +2 -2
- package/src/equivalence.js +3 -6
- package/src/mixins/term/verify.js +5 -11
- package/src/node/argument.js +16 -0
- package/src/node/assertion/contained.js +30 -22
- package/src/node/assertion/defined.js +28 -15
- package/src/node/assertion/property.js +7 -17
- package/src/node/assertion/satisfies.js +11 -9
- package/src/node/assertion/subproof.js +4 -9
- package/src/node/assertion/type.js +6 -16
- package/src/node/combinator.js +1 -1
- package/src/node/conclusion.js +4 -9
- package/src/node/constructor.js +1 -1
- package/src/node/declaration/combinator.js +4 -9
- package/src/node/declaration/complexType.js +31 -35
- package/src/node/declaration/constructor.js +16 -26
- package/src/node/declaration/metavariable.js +6 -16
- package/src/node/declaration/property.js +13 -23
- package/src/node/declaration/type.js +35 -29
- package/src/node/declaration/variable.js +6 -16
- package/src/node/declaration.js +6 -16
- package/src/node/deduction.js +4 -9
- package/src/node/derivation.js +7 -10
- package/src/node/equality.js +19 -18
- package/src/node/error.js +1 -1
- package/src/node/frame.js +8 -35
- package/src/node/judgement.js +7 -17
- package/src/node/label.js +4 -9
- package/src/node/labels.js +4 -9
- package/src/node/metaArgument.js +16 -0
- package/src/node/metaType.js +1 -5
- package/src/node/metavariable.js +6 -16
- package/src/node/nonTerminal.js +130 -0
- package/src/node/parameter.js +1 -1
- package/src/node/parenthesisedLabel.js +16 -0
- package/src/node/parenthesisedLabels.js +5 -10
- package/src/node/premise.js +6 -16
- package/src/node/procedureCall.js +6 -16
- package/src/node/proof.js +4 -9
- package/src/node/property.js +1 -1
- package/src/node/propertyRelation.js +7 -16
- package/src/node/reference.js +4 -9
- package/src/node/rule.js +40 -3
- package/src/node/statement.js +109 -66
- package/src/node/step.js +6 -16
- package/src/node/subDerivation.js +14 -10
- package/src/node/subproof.js +13 -16
- package/src/node/substitution/frame.js +23 -0
- package/src/node/substitution/reference.js +23 -0
- package/src/node/substitution/statement.js +23 -0
- package/src/node/substitution/term.js +23 -0
- package/src/node/supposition.js +6 -16
- package/src/node/term.js +15 -39
- package/src/node/topLevelAssertion.js +13 -33
- package/src/node/topLevelMetaAssertion.js +20 -39
- package/src/node/type.js +1 -1
- package/src/node/types.js +16 -0
- package/src/node/variable.js +1 -1
- package/src/nonTerminalNodeMap.js +60 -36
- package/src/ruleNames.js +8 -0
- package/src/substitution/frame.js +7 -10
- package/src/substitution/reference.js +7 -10
- package/src/substitution/term.js +7 -9
- package/src/unifier/metaLevel.js +2 -3
- package/src/utilities/brackets.js +8 -8
- package/src/utilities/json.js +19 -0
- package/src/utilities/node.js +0 -168
- package/src/utilities/subproof.js +22 -6
|
@@ -1,25 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import NonTerminalNode from "../node/nonTerminal";
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import { LABELS_RULE_NAME } from "../ruleNames";
|
|
6
6
|
|
|
7
7
|
export default class ParenthesisedLabelsNode extends NonTerminalNode {
|
|
8
8
|
getLabelNodes() {
|
|
9
9
|
const labelsNode = this.getLabelsNode(),
|
|
10
|
-
|
|
10
|
+
labelNodes = labelsNode.getLabelNodes();
|
|
11
11
|
|
|
12
12
|
return labelNodes;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
getLabelsNode() {
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
if (childNodeLabelsNode) {
|
|
20
|
-
return true;
|
|
21
|
-
}
|
|
22
|
-
}) || null;
|
|
16
|
+
const ruleName = LABELS_RULE_NAME,
|
|
17
|
+
labelsNode = this.getNodeByRuleName(ruleName);
|
|
23
18
|
|
|
24
19
|
return labelsNode;
|
|
25
20
|
}
|
package/src/node/premise.js
CHANGED
|
@@ -1,30 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import NonTerminalNode from "../node/nonTerminal";
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import { STATEMENT_RULE_NAME, PROCEDURE_CALL_RULE_NAME } from "../ruleNames";
|
|
6
6
|
|
|
7
7
|
export default class PremiseNode extends NonTerminalNode {
|
|
8
8
|
getStatementNode() {
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
if (childNodeStatementNode) {
|
|
13
|
-
return true;
|
|
14
|
-
}
|
|
15
|
-
}) || null;
|
|
9
|
+
const ruleName = STATEMENT_RULE_NAME,
|
|
10
|
+
statementNode = this.getNodeByRuleName(ruleName);
|
|
16
11
|
|
|
17
12
|
return statementNode;
|
|
18
13
|
}
|
|
19
14
|
|
|
20
15
|
getProcedureCallNode() {
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
if (childNodeProcedureCallNode) {
|
|
25
|
-
return true;
|
|
26
|
-
}
|
|
27
|
-
}) || null;
|
|
16
|
+
const ruleName = PROCEDURE_CALL_RULE_NAME,
|
|
17
|
+
procedureCallNode = this.getNodeByRuleName(ruleName);
|
|
28
18
|
|
|
29
19
|
return procedureCallNode;
|
|
30
20
|
}
|
|
@@ -1,30 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import NonTerminalNode from "../node/nonTerminal";
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import { REFERENCE_RULE_NAME, PARAMETER_RULE_NAME } from "../ruleNames";
|
|
6
6
|
|
|
7
7
|
export default class ProcedureCallNode extends NonTerminalNode {
|
|
8
8
|
getReferenceNode() {
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
if (childNodeReferenceNode) {
|
|
13
|
-
return true;
|
|
14
|
-
}
|
|
15
|
-
}) || null;
|
|
9
|
+
const ruleName = REFERENCE_RULE_NAME,
|
|
10
|
+
referenceNode = this.getNodeByRuleName(ruleName);
|
|
16
11
|
|
|
17
12
|
return referenceNode;
|
|
18
13
|
}
|
|
19
14
|
|
|
20
15
|
getParameterNodes() {
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
if (childNodeParameterNode) {
|
|
25
|
-
return true;
|
|
26
|
-
}
|
|
27
|
-
});
|
|
16
|
+
const ruleName = PARAMETER_RULE_NAME,
|
|
17
|
+
parameterNodes = this.getNodesByRuleName(ruleName);
|
|
28
18
|
|
|
29
19
|
return parameterNodes;
|
|
30
20
|
}
|
package/src/node/proof.js
CHANGED
|
@@ -1,18 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import NonTerminalNode from "../node/nonTerminal";
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import { DERIVATION_RULE_NAME } from "../ruleNames";
|
|
6
6
|
|
|
7
7
|
export default class ProofNode extends NonTerminalNode {
|
|
8
8
|
getDerivationNode() {
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
if (childNodeDerivationNode) {
|
|
13
|
-
return true;
|
|
14
|
-
}
|
|
15
|
-
});
|
|
9
|
+
const ruleName = DERIVATION_RULE_NAME,
|
|
10
|
+
derivationNode = this.getNodeByRuleName(ruleName);
|
|
16
11
|
|
|
17
12
|
return derivationNode;
|
|
18
13
|
}
|
package/src/node/property.js
CHANGED
|
@@ -1,29 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
4
|
-
|
|
3
|
+
import NonTerminalNode from "../node/nonTerminal";
|
|
4
|
+
|
|
5
|
+
import { TERM_RULE_NAME, PROPERTY_RULE_NAME } from "../ruleNames";
|
|
5
6
|
|
|
6
7
|
export default class PropertyRelationNode extends NonTerminalNode {
|
|
7
8
|
getTermNode() {
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
if (childNodeTermNode) {
|
|
12
|
-
return true;
|
|
13
|
-
}
|
|
14
|
-
}) || null;
|
|
9
|
+
const ruleName = TERM_RULE_NAME,
|
|
10
|
+
termNode = this.getNodeByRuleName(ruleName);
|
|
15
11
|
|
|
16
12
|
return termNode;
|
|
17
13
|
}
|
|
18
14
|
|
|
19
15
|
getPropertyNode() {
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
if (childNodePropertyNode) {
|
|
24
|
-
return true;
|
|
25
|
-
}
|
|
26
|
-
}) || null;
|
|
16
|
+
const ruleName = PROPERTY_RULE_NAME,
|
|
17
|
+
propertyNode = this.getNodeByRuleName(ruleName);
|
|
27
18
|
|
|
28
19
|
return propertyNode;
|
|
29
20
|
}
|
package/src/node/reference.js
CHANGED
|
@@ -1,18 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import NonTerminalNode from "../node/nonTerminal";
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import { METAVARIABLE_RULE_NAME } from "../ruleNames";
|
|
6
6
|
|
|
7
7
|
export default class ReferenceNode extends NonTerminalNode {
|
|
8
8
|
getMetavariableNode() {
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
if (childNodeMetavariableNode) {
|
|
13
|
-
return true;
|
|
14
|
-
}
|
|
15
|
-
}) || null;
|
|
9
|
+
const ruleName = METAVARIABLE_RULE_NAME,
|
|
10
|
+
metavariableNode = this.getNodeByRuleName(ruleName);
|
|
16
11
|
|
|
17
12
|
return metavariableNode;
|
|
18
13
|
}
|
package/src/node/rule.js
CHANGED
|
@@ -1,7 +1,44 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import NonTerminalNode from "../node/nonTerminal";
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
import { PROOF_RULE_NAME, PREMISE_RULE_NAME, CONCLUSION_RULE_NAME, PARENTHESISED_LABELS_RULE_NAME } from "../ruleNames";
|
|
6
|
+
|
|
7
|
+
export default class RuleNode extends NonTerminalNode {
|
|
8
|
+
getLabelNodes() {
|
|
9
|
+
const parenthesisedLabelsNode = this.getParenthesisedLabelsNode(),
|
|
10
|
+
labelNodes = parenthesisedLabelsNode.getLabelNodes();
|
|
11
|
+
|
|
12
|
+
return labelNodes;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
getProofNode() {
|
|
16
|
+
const ruleName = PROOF_RULE_NAME,
|
|
17
|
+
proofNode = this.getNodeByRuleName(ruleName);
|
|
18
|
+
|
|
19
|
+
return proofNode;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
getPremiseNodes() {
|
|
23
|
+
const ruleName = PREMISE_RULE_NAME,
|
|
24
|
+
premiseNodes = this.getNodesByRuleName(ruleName);
|
|
25
|
+
|
|
26
|
+
return premiseNodes;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
getConclusionNode() {
|
|
30
|
+
const ruleName = CONCLUSION_RULE_NAME,
|
|
31
|
+
conclusionNode = this.getNodeByRuleName(ruleName);
|
|
32
|
+
|
|
33
|
+
return conclusionNode;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
getParenthesisedLabelsNode() {
|
|
37
|
+
const ruleName = PARENTHESISED_LABELS_RULE_NAME,
|
|
38
|
+
parenthesisedLabelsNode = this.getNodeByRuleName(ruleName);
|
|
39
|
+
|
|
40
|
+
return parenthesisedLabelsNode;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(RuleNode, ruleName, childNodes, opacity, precedence); }
|
|
7
44
|
}
|
package/src/node/statement.js
CHANGED
|
@@ -1,112 +1,155 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
3
|
+
import NonTerminalNode from "../node/nonTerminal";
|
|
4
|
+
|
|
5
|
+
import { TERM_RULE_NAME,
|
|
6
|
+
FRAME_RULE_NAME,
|
|
7
|
+
EQUALITY_RULE_NAME,
|
|
8
|
+
JUDGEMENT_RULE_NAME,
|
|
9
|
+
METAVARIABLE_RULE_NAME,
|
|
10
|
+
META_ARGUMENT_RULE_NAME,
|
|
11
|
+
TYPE_ASSERTION_RULE_NAME,
|
|
12
|
+
DEFINED_ASSERTION_RULE_NAME,
|
|
13
|
+
TERM_SUBSTITUTION_RULE_NAME,
|
|
14
|
+
PROPERTY_ASSERTION_RULE_NAME,
|
|
15
|
+
SUBPROOF_ASSERTION_RULE_NAME,
|
|
16
|
+
FRAME_SUBSTITUTION_RULE_NAME,
|
|
17
|
+
SATISFIES_ASSERTION_RULE_NAME,
|
|
18
|
+
CONTAINED_ASSERTION_RULE_NAME,
|
|
19
|
+
REFERENCE_SUBSTITUTION_RULE_NAME,
|
|
20
|
+
STATEMENT_SUBSTITUTION_RULE_NAME } from "../ruleNames";
|
|
13
21
|
|
|
14
22
|
export default class StatementNode extends NonTerminalNode {
|
|
15
23
|
getTermNodes() {
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
if (descendantNodeTermNode) {
|
|
20
|
-
return true;
|
|
21
|
-
}
|
|
22
|
-
});
|
|
24
|
+
const ruleName = TERM_RULE_NAME,
|
|
25
|
+
termNodes = this.getDescendantNodesByRuleName(ruleName);
|
|
23
26
|
|
|
24
27
|
return termNodes;
|
|
25
28
|
}
|
|
26
29
|
|
|
27
30
|
getFrameNodes() {
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
if (descendantNodeFrameNode) {
|
|
32
|
-
return true;
|
|
33
|
-
}
|
|
34
|
-
});
|
|
31
|
+
const ruleName = FRAME_RULE_NAME,
|
|
32
|
+
frameNodes = this.getDescendantNodesByRuleName(ruleName);
|
|
35
33
|
|
|
36
34
|
return frameNodes;
|
|
37
35
|
}
|
|
38
36
|
|
|
39
37
|
getEqualityNode() {
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
if (childNodeEqualityNode) {
|
|
44
|
-
return true;
|
|
45
|
-
}
|
|
46
|
-
}) || null;
|
|
38
|
+
const ruleName = EQUALITY_RULE_NAME,
|
|
39
|
+
equalityNode = this.getNodeByRuleName(ruleName);
|
|
47
40
|
|
|
48
41
|
return equalityNode;
|
|
49
42
|
}
|
|
50
43
|
|
|
51
44
|
getJudgementNode() {
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
if (childNodeJudgementNode) {
|
|
56
|
-
return true;
|
|
57
|
-
}
|
|
58
|
-
}) || null;
|
|
45
|
+
const ruleName = JUDGEMENT_RULE_NAME,
|
|
46
|
+
judgementNode = this.getNodeByRuleName(ruleName);
|
|
59
47
|
|
|
60
48
|
return judgementNode;
|
|
61
49
|
}
|
|
62
50
|
|
|
63
51
|
getMetavariableNode() {
|
|
64
|
-
const
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
if (childNodeMetavariableNode) {
|
|
68
|
-
return true;
|
|
69
|
-
}
|
|
70
|
-
}) || null;
|
|
52
|
+
const ruleName = METAVARIABLE_RULE_NAME,
|
|
53
|
+
metavariableNode = this.getNodeByRuleName(ruleName);
|
|
71
54
|
|
|
72
55
|
return metavariableNode;
|
|
73
56
|
}
|
|
74
57
|
|
|
75
58
|
getTypeAssertionNode() {
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
if (childNodeTypeAssertionNode) {
|
|
80
|
-
return true;
|
|
81
|
-
}
|
|
82
|
-
}) || null;
|
|
59
|
+
const ruleName = TYPE_ASSERTION_RULE_NAME,
|
|
60
|
+
typeAssertionNode = this.getNodeByRuleName(ruleName);
|
|
83
61
|
|
|
84
62
|
return typeAssertionNode;
|
|
85
63
|
}
|
|
86
64
|
|
|
87
|
-
|
|
88
|
-
const
|
|
89
|
-
|
|
65
|
+
getDefinedAssertionNode() {
|
|
66
|
+
const ruleName = DEFINED_ASSERTION_RULE_NAME,
|
|
67
|
+
definedAssertionNode = this.getNodeByRuleName(ruleName);
|
|
90
68
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
69
|
+
return definedAssertionNode;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
getTermSubstitutionNode() {
|
|
73
|
+
const ruleName = TERM_SUBSTITUTION_RULE_NAME,
|
|
74
|
+
termSubstitutionNode = this.getNodeByRuleName(ruleName);
|
|
75
|
+
|
|
76
|
+
return termSubstitutionNode;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
getFrameSubstitutionNode() {
|
|
80
|
+
const ruleName = FRAME_SUBSTITUTION_RULE_NAME,
|
|
81
|
+
frameSubstitutionNode = this.getNodeByRuleName(ruleName);
|
|
82
|
+
|
|
83
|
+
return frameSubstitutionNode;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
getSubproofAssertionNode() {
|
|
87
|
+
const ruleName = SUBPROOF_ASSERTION_RULE_NAME,
|
|
88
|
+
subproofAssertionNode = this.getNodeByRuleName(ruleName);
|
|
95
89
|
|
|
96
90
|
return subproofAssertionNode;
|
|
97
91
|
}
|
|
98
92
|
|
|
99
93
|
getPropertyAssertionNode() {
|
|
100
|
-
const
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
if (childNodePropertyAssertionNode) {
|
|
104
|
-
return true;
|
|
105
|
-
}
|
|
106
|
-
}) || null;
|
|
94
|
+
const ruleName = PROPERTY_ASSERTION_RULE_NAME,
|
|
95
|
+
propertyAssertionNode = this.getNodeByRuleName(ruleName);
|
|
107
96
|
|
|
108
97
|
return propertyAssertionNode;
|
|
109
98
|
}
|
|
110
99
|
|
|
100
|
+
getSingularStatementNode() {
|
|
101
|
+
let singularStatementNode = null;
|
|
102
|
+
|
|
103
|
+
const singularMetaArgumentNode = this.getSingularMetaArgumentNode();
|
|
104
|
+
|
|
105
|
+
if (singularMetaArgumentNode !== null) {
|
|
106
|
+
singularStatementNode = singularMetaArgumentNode.getSingularStatementNode();
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
return singularStatementNode;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
getContainedAssertionNode() {
|
|
113
|
+
const ruleName = CONTAINED_ASSERTION_RULE_NAME,
|
|
114
|
+
containedAssertionNode = this.getNodeByRuleName(ruleName);
|
|
115
|
+
|
|
116
|
+
return containedAssertionNode;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
getSatisfiedAssertionNode() {
|
|
120
|
+
const ruleName = SATISFIES_ASSERTION_RULE_NAME,
|
|
121
|
+
satisfiedAssertionNode = this.getNodeByRuleName(ruleName);
|
|
122
|
+
|
|
123
|
+
return satisfiedAssertionNode;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
getSingularMetavariableNode() {
|
|
127
|
+
const ruleName = METAVARIABLE_RULE_NAME,
|
|
128
|
+
singularMetavariableNode = this.getSingularTNodeByRuleName(ruleName);
|
|
129
|
+
|
|
130
|
+
return singularMetavariableNode;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
getSingularMetaArgumentNode() {
|
|
134
|
+
const ruleName = META_ARGUMENT_RULE_NAME,
|
|
135
|
+
singularMetaArgumentNode = this.getNodeByRuleName(ruleName);
|
|
136
|
+
|
|
137
|
+
return singularMetaArgumentNode;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
getReferenceSubstitutionNode() {
|
|
141
|
+
const ruleName = REFERENCE_SUBSTITUTION_RULE_NAME,
|
|
142
|
+
referenceSubstitutionNode = this.getNodeByRuleName(ruleName);
|
|
143
|
+
|
|
144
|
+
return referenceSubstitutionNode;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
getStatementSubstitutionNode() {
|
|
148
|
+
const ruleName = STATEMENT_SUBSTITUTION_RULE_NAME,
|
|
149
|
+
statementSubstitutionNode = this.getNodeByRuleName(ruleName);
|
|
150
|
+
|
|
151
|
+
return statementSubstitutionNode;
|
|
152
|
+
}
|
|
153
|
+
|
|
111
154
|
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(StatementNode, ruleName, childNodes, opacity, precedence); }
|
|
112
155
|
}
|
package/src/node/step.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import NonTerminalNode from "../node/nonTerminal";
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import { REFERENCE_RULE_NAME, STATEMENT_RULE_NAME } from "../ruleNames";
|
|
6
6
|
|
|
7
7
|
export default class StepNode extends NonTerminalNode {
|
|
8
8
|
isStepNode() {
|
|
@@ -18,25 +18,15 @@ export default class StepNode extends NonTerminalNode {
|
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
getStatementNode() {
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
if (childNodeStatementNode) {
|
|
25
|
-
return true;
|
|
26
|
-
}
|
|
27
|
-
}) || null;
|
|
21
|
+
const ruleName = STATEMENT_RULE_NAME,
|
|
22
|
+
statementNode = this.getNodeByRuleName(ruleName);
|
|
28
23
|
|
|
29
24
|
return statementNode;
|
|
30
25
|
}
|
|
31
26
|
|
|
32
27
|
getReferenceNode() {
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
if (childNodeReferenceNode) {
|
|
37
|
-
return true;
|
|
38
|
-
}
|
|
39
|
-
}) || null;
|
|
28
|
+
const ruleName = REFERENCE_RULE_NAME,
|
|
29
|
+
referenceNode = this.getNodeByRuleName(ruleName);
|
|
40
30
|
|
|
41
31
|
return referenceNode;
|
|
42
32
|
}
|
|
@@ -1,19 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import NonTerminalNode from "../node/nonTerminal";
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import { STEP_RULE_NAME, SUBPROOF_RULE_NAME } from "../ruleNames";
|
|
6
6
|
|
|
7
7
|
export default class SubDerivationNode extends NonTerminalNode {
|
|
8
|
-
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
getLastStepNode() {
|
|
9
|
+
const ruleName = STEP_RULE_NAME,
|
|
10
|
+
lastStepNode = this.getLastNodeByRuleName(ruleName);
|
|
11
|
+
|
|
12
|
+
return lastStepNode;
|
|
13
|
+
}
|
|
12
14
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
getStepOrSubproofNodes() {
|
|
16
|
+
const ruleNames = [
|
|
17
|
+
STEP_RULE_NAME,
|
|
18
|
+
SUBPROOF_RULE_NAME,
|
|
19
|
+
],
|
|
20
|
+
stepOrSubproofNodes = this.getNodesByRuleName(...ruleNames);
|
|
17
21
|
|
|
18
22
|
return stepOrSubproofNodes;
|
|
19
23
|
}
|
package/src/node/subproof.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import NonTerminalNode from "../node/nonTerminal";
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import { SUPPOSITION_RULE_NAME, SUB_DERIVATION_RULE_NAME } from "../ruleNames";
|
|
6
6
|
|
|
7
7
|
export default class SubproofNode extends NonTerminalNode {
|
|
8
8
|
isStepNode() {
|
|
@@ -17,26 +17,23 @@ export default class SubproofNode extends NonTerminalNode {
|
|
|
17
17
|
return subproofNode;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
const subDerivationNode = this.
|
|
22
|
-
|
|
20
|
+
getLastStepNode() {
|
|
21
|
+
const subDerivationNode = this.getSubDerivationNode(),
|
|
22
|
+
lastStepNode = subDerivationNode.getLastStepNode();
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
return lastStepNode;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
getSubDerivationNode() {
|
|
28
|
+
const ruleName = SUB_DERIVATION_RULE_NAME,
|
|
29
|
+
subDerivationNode = this.getNodeByRuleName(ruleName);
|
|
28
30
|
|
|
29
31
|
return subDerivationNode;
|
|
30
32
|
}
|
|
31
33
|
|
|
32
34
|
getSuppositionNodes() {
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
if (childNodeSuppositionNode) {
|
|
37
|
-
return true;
|
|
38
|
-
}
|
|
39
|
-
});
|
|
35
|
+
const ruleName = SUPPOSITION_RULE_NAME,
|
|
36
|
+
suppositionNodes = this.getNodesByRuleName(ruleName);
|
|
40
37
|
|
|
41
38
|
return suppositionNodes;
|
|
42
39
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import NonTerminalNode from "../../node/nonTerminal";
|
|
4
|
+
|
|
5
|
+
import { FRAME_RULE_NAME } from "../../ruleNames";
|
|
6
|
+
|
|
7
|
+
export default class FrameSubstitutionNode extends NonTerminalNode {
|
|
8
|
+
getLastFrameNode() {
|
|
9
|
+
const ruleName = FRAME_RULE_NAME,
|
|
10
|
+
lastFrameNode = this.getLastNodeByRuleName(ruleName);
|
|
11
|
+
|
|
12
|
+
return lastFrameNode;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
getFirstFrameNode() {
|
|
16
|
+
const ruleName = FRAME_RULE_NAME,
|
|
17
|
+
firstFrameNode = this.getFirstNodeByRuleName(ruleName);
|
|
18
|
+
|
|
19
|
+
return firstFrameNode;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(FrameSubstitutionNode, ruleName, childNodes, opacity, precedence); }
|
|
23
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import NonTerminalNode from "../../node/nonTerminal";
|
|
4
|
+
|
|
5
|
+
import { REFERENCE_RULE_NAME } from "../../ruleNames";
|
|
6
|
+
|
|
7
|
+
export default class ReferenceSubstitutionNode extends NonTerminalNode {
|
|
8
|
+
getLastReferenceNode() {
|
|
9
|
+
const ruleName = REFERENCE_RULE_NAME,
|
|
10
|
+
lastReferenceNode = this.getLastNodeByRuleName(ruleName);
|
|
11
|
+
|
|
12
|
+
return lastReferenceNode;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
getFirstReferenceNode() {
|
|
16
|
+
const ruleName = REFERENCE_RULE_NAME,
|
|
17
|
+
firstReferenceNode = this.getFirstNodeByRuleName(ruleName);
|
|
18
|
+
|
|
19
|
+
return firstReferenceNode;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(ReferenceSubstitutionNode, ruleName, childNodes, opacity, precedence); }
|
|
23
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import NonTerminalNode from "../../node/nonTerminal";
|
|
4
|
+
|
|
5
|
+
import { STATEMENT_RULE_NAME } from "../../ruleNames";
|
|
6
|
+
|
|
7
|
+
export default class StatementSubstitutionNode extends NonTerminalNode {
|
|
8
|
+
getLastStatementNode() {
|
|
9
|
+
const ruleName = STATEMENT_RULE_NAME,
|
|
10
|
+
lastStatementNode = this.getLastNodeByRuleName(ruleName);
|
|
11
|
+
|
|
12
|
+
return lastStatementNode;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
getFirstStatementNode() {
|
|
16
|
+
const ruleName = STATEMENT_RULE_NAME,
|
|
17
|
+
firstStatementNode = this.getFirstNodeByRuleName(ruleName);
|
|
18
|
+
|
|
19
|
+
return firstStatementNode;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(StatementSubstitutionNode, ruleName, childNodes, opacity, precedence); }
|
|
23
|
+
}
|