occam-verify-cli 1.0.166 → 1.0.169
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/assignment/variable.js +3 -3
- package/lib/context/file.js +6 -4
- package/lib/context/release.js +32 -3
- package/lib/dom/assertion/type.js +10 -15
- package/lib/dom/combinator/bracketed.js +25 -4
- package/lib/dom/constructor.js +6 -29
- package/lib/dom/declaration/complexType.js +26 -60
- package/lib/dom/declaration/constructor.js +10 -15
- package/lib/dom/declaration/metavariable.js +10 -15
- package/lib/dom/declaration/type.js +20 -46
- package/lib/dom/declaration/variable.js +19 -19
- package/lib/dom/property.js +3 -3
- package/lib/dom/propertyRelation.js +3 -3
- package/lib/dom/term.js +4 -4
- package/lib/dom/type.js +80 -68
- package/lib/dom/variable.js +24 -52
- package/lib/equivalence.js +3 -3
- package/lib/node/assertion/contained.js +131 -0
- package/lib/node/assertion/defined.js +131 -0
- package/lib/node/assertion/property.js +131 -0
- package/lib/node/assertion/satisfies.js +131 -0
- package/lib/node/assertion/subproof.js +131 -0
- package/lib/node/assertion/type.js +131 -0
- package/lib/node/axiom.js +131 -0
- package/lib/node/combinator.js +131 -0
- package/lib/node/conclusion.js +131 -0
- package/lib/node/conjecture.js +131 -0
- package/lib/node/constructor.js +131 -0
- package/lib/node/declaration/combinator.js +131 -0
- package/lib/node/declaration/complexType.js +131 -0
- package/lib/node/declaration/constructor.js +131 -0
- package/lib/node/declaration/metavariable.js +131 -0
- package/lib/node/declaration/type.js +131 -0
- package/lib/node/declaration/variable.js +131 -0
- package/lib/node/declaration.js +131 -0
- package/lib/node/deduction.js +131 -0
- package/lib/node/derivation.js +131 -0
- package/lib/node/equality.js +131 -0
- package/lib/node/error.js +131 -0
- package/lib/node/frame.js +131 -0
- package/lib/node/judgement.js +131 -0
- package/lib/node/label.js +131 -0
- package/lib/node/lemma.js +131 -0
- package/lib/node/metaLemma.js +131 -0
- package/lib/node/metaType.js +131 -0
- package/lib/node/metatheorem.js +131 -0
- package/lib/node/metavariable.js +131 -0
- package/lib/node/parameter.js +131 -0
- package/lib/node/premise.js +131 -0
- package/lib/node/procedureCall.js +131 -0
- package/lib/node/proof.js +131 -0
- package/lib/node/property.js +131 -0
- package/lib/node/propertyRelation.js +131 -0
- package/lib/node/reference.js +131 -0
- package/lib/node/rule.js +131 -0
- package/lib/node/statement.js +131 -0
- package/lib/node/step.js +131 -0
- package/lib/node/subDerivation.js +131 -0
- package/lib/node/subproof.js +131 -0
- package/lib/node/supposition.js +131 -0
- package/lib/node/term.js +131 -0
- package/lib/node/theorem.js +131 -0
- package/lib/node/topLevelAssertion.js +131 -0
- package/lib/node/topLevelMetaAssertion.js +131 -0
- package/lib/node/type.js +131 -0
- package/lib/node/variable.js +131 -0
- package/lib/node.js +80 -0
- package/lib/nodeMap.js +80 -0
- package/lib/nominal/lexer.js +114 -0
- package/lib/nominal/parser.js +128 -0
- package/lib/ruleNames.js +198 -0
- package/lib/utilities/parser.js +21 -0
- package/lib/utilities/type.js +23 -0
- package/package.json +4 -3
- package/src/assignment/variable.js +4 -4
- package/src/context/file.js +10 -7
- package/src/context/release.js +8 -3
- package/src/dom/assertion/type.js +11 -16
- package/src/dom/combinator/bracketed.js +1 -6
- package/src/dom/constructor.js +5 -36
- package/src/dom/declaration/complexType.js +41 -52
- package/src/dom/declaration/constructor.js +11 -15
- package/src/dom/declaration/metavariable.js +11 -15
- package/src/dom/declaration/type.js +19 -44
- package/src/dom/declaration/variable.js +29 -21
- package/src/dom/property.js +2 -2
- package/src/dom/propertyRelation.js +2 -2
- package/src/dom/term.js +3 -3
- package/src/dom/type.js +120 -89
- package/src/dom/variable.js +27 -64
- package/src/equivalence.js +2 -2
- package/src/node/assertion/contained.js +5 -0
- package/src/node/assertion/defined.js +5 -0
- package/src/node/assertion/property.js +5 -0
- package/src/node/assertion/satisfies.js +5 -0
- package/src/node/assertion/subproof.js +5 -0
- package/src/node/assertion/type.js +5 -0
- package/src/node/axiom.js +5 -0
- package/src/node/combinator.js +5 -0
- package/src/node/conclusion.js +5 -0
- package/src/node/conjecture.js +5 -0
- package/src/node/constructor.js +5 -0
- package/src/node/declaration/combinator.js +5 -0
- package/src/node/declaration/complexType.js +5 -0
- package/src/node/declaration/constructor.js +5 -0
- package/src/node/declaration/metavariable.js +5 -0
- package/src/node/declaration/type.js +5 -0
- package/src/node/declaration/variable.js +5 -0
- package/src/node/declaration.js +5 -0
- package/src/node/deduction.js +5 -0
- package/src/node/derivation.js +5 -0
- package/src/node/equality.js +5 -0
- package/src/node/error.js +5 -0
- package/src/node/frame.js +5 -0
- package/src/node/judgement.js +5 -0
- package/src/node/label.js +5 -0
- package/src/node/lemma.js +5 -0
- package/src/node/metaLemma.js +5 -0
- package/src/node/metaType.js +5 -0
- package/src/node/metatheorem.js +5 -0
- package/src/node/metavariable.js +5 -0
- package/src/node/parameter.js +5 -0
- package/src/node/premise.js +5 -0
- package/src/node/procedureCall.js +5 -0
- package/src/node/proof.js +5 -0
- package/src/node/property.js +5 -0
- package/src/node/propertyRelation.js +5 -0
- package/src/node/reference.js +5 -0
- package/src/node/rule.js +5 -0
- package/src/node/statement.js +5 -0
- package/src/node/step.js +5 -0
- package/src/node/subDerivation.js +5 -0
- package/src/node/subproof.js +5 -0
- package/src/node/supposition.js +5 -0
- package/src/node/term.js +5 -0
- package/src/node/theorem.js +5 -0
- package/src/node/topLevelAssertion.js +5 -0
- package/src/node/topLevelMetaAssertion.js +5 -0
- package/src/node/type.js +5 -0
- package/src/node/variable.js +5 -0
- package/src/node.js +5 -0
- package/src/nodeMap.js +146 -0
- package/src/nominal/lexer.js +11 -0
- package/src/nominal/parser.js +37 -0
- package/src/ruleNames.js +48 -0
- package/src/utilities/parser.js +18 -0
- package/src/utilities/type.js +19 -0
package/src/node/rule.js
ADDED
package/src/node/step.js
ADDED
package/src/node/term.js
ADDED
package/src/node/type.js
ADDED
package/src/node.js
ADDED
package/src/nodeMap.js
ADDED
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import TermNode from "./node/term"
|
|
4
|
+
import TypeNode from "./node/type"
|
|
5
|
+
import RuleNode from "./node/rule"
|
|
6
|
+
import StepNode from "./node/step"
|
|
7
|
+
import ErrorNode from "./node/error"
|
|
8
|
+
import FrameNode from "./node/frame"
|
|
9
|
+
import AxiomNode from "./node/axiom"
|
|
10
|
+
import LabelNode from "./node/label"
|
|
11
|
+
import LemmaNode from "./node/lemma"
|
|
12
|
+
import ProofNode from "./node/proof"
|
|
13
|
+
import PremiseNode from "./node/premise"
|
|
14
|
+
import TheoremNode from "./node/theorem"
|
|
15
|
+
import SubproofNode from "./node/subproof"
|
|
16
|
+
import PropertyNode from "./node/property"
|
|
17
|
+
import MetaTypeNode from "./node/metaType"
|
|
18
|
+
import EqualityNode from "./node/equality"
|
|
19
|
+
import StatementNode from "./node/statement"
|
|
20
|
+
import ReferenceNode from "./node/reference"
|
|
21
|
+
import DeductionNode from "./node/deduction"
|
|
22
|
+
import JudgementNode from "./node/judgement"
|
|
23
|
+
import MetaLemmaNode from "./node/metaLemma"
|
|
24
|
+
import ParameterNode from "./node/parameter"
|
|
25
|
+
import DerivationNode from "./node/derivation"
|
|
26
|
+
import CombinatorNode from "./node/combinator"
|
|
27
|
+
import ConclusionNode from "./node/conclusion"
|
|
28
|
+
import ConjectureNode from "./node/conjecture"
|
|
29
|
+
import SuppositionNode from "./node/supposition"
|
|
30
|
+
import ConstructorNode from "./node/constructor"
|
|
31
|
+
import DeclarationNode from "./node/declaration"
|
|
32
|
+
import MetatheoremNode from "./node/metatheorem"
|
|
33
|
+
import MetavariableNode from "./node/metavariable"
|
|
34
|
+
import ProcedureCallNode from "./node/procedureCall"
|
|
35
|
+
import SubDerivationNode from "./node/subDerivation"
|
|
36
|
+
import TypeAssertionNode from "./node/assertion/type";
|
|
37
|
+
import typeDeclarationNode from "./node/declaration/type";
|
|
38
|
+
import DefinedAssertionNode from "./node/assertion/defined";
|
|
39
|
+
import PropertyRelationNode from "./node/propertyRelation"
|
|
40
|
+
import PropertyAssertionNode from "./node/assertion/property";
|
|
41
|
+
import SubproofAssertionNode from "./node/assertion/subproof";
|
|
42
|
+
import ContainedAssertionNode from "./node/assertion/contained";
|
|
43
|
+
import SatisfiesAssertionNode from "./node/assertion/satisfies";
|
|
44
|
+
import variableDeclarationNode from "./node/declaration/variable";
|
|
45
|
+
import combinatorDeclarationNode from "./node/declaration/combinator";
|
|
46
|
+
import complexTypeDeclarationNode from "./node/declaration/complexType";
|
|
47
|
+
import constructorDeclarationNode from "./node/declaration/constructor";
|
|
48
|
+
import metavariableDeclarationNode from "./node/declaration/metavariable";
|
|
49
|
+
|
|
50
|
+
import { RULE_RULE_NAME,
|
|
51
|
+
STEP_RULE_NAME,
|
|
52
|
+
TERM_RULE_NAME,
|
|
53
|
+
TYPE_RULE_NAME,
|
|
54
|
+
PROOF_RULE_NAME,
|
|
55
|
+
ERROR_RULE_NAME,
|
|
56
|
+
FRAME_RULE_NAME,
|
|
57
|
+
AXIOM_RULE_NAME,
|
|
58
|
+
LABEL_RULE_NAME,
|
|
59
|
+
LEMMA_RULE_NAME,
|
|
60
|
+
THEOREM_RULE_NAME,
|
|
61
|
+
PREMISE_RULE_NAME,
|
|
62
|
+
SUBPROOF_RULE_NAME,
|
|
63
|
+
PROPERTY_RULE_NAME,
|
|
64
|
+
EQUALITY_RULE_NAME,
|
|
65
|
+
META_TYPE_RULE_NAME,
|
|
66
|
+
DEDUCTION_RULE_NAME,
|
|
67
|
+
JUDGEMENT_RULE_NAME,
|
|
68
|
+
PARAMETER_RULE_NAME,
|
|
69
|
+
REFERENCE_RULE_NAME,
|
|
70
|
+
STATEMENT_RULE_NAME,
|
|
71
|
+
META_LEMMA_RULE_NAME,
|
|
72
|
+
DERIVATION_RULE_NAME,
|
|
73
|
+
COMBINATOR_RULE_NAME,
|
|
74
|
+
CONCLUSION_RULE_NAME,
|
|
75
|
+
CONJECTURE_RULE_NAME,
|
|
76
|
+
CONSTRUCTOR_RULE_NAME,
|
|
77
|
+
DECLARATION_RULE_NAME,
|
|
78
|
+
SUPPOSITION_RULE_NAME,
|
|
79
|
+
METATHEOREM_RULE_NAME,
|
|
80
|
+
METAVARIABLE_RULE_NAME,
|
|
81
|
+
SUB_DERIVATION_RULE_NAME,
|
|
82
|
+
TYPE_ASSERTION_RULE_NAME,
|
|
83
|
+
PROCEDURE_CALL_RULE_NAME,
|
|
84
|
+
TYPE_DECLARATION_RULE_NAME,
|
|
85
|
+
PROPERTY_RELATION_RULE_NAME,
|
|
86
|
+
DEFINED_ASSERTION_RULE_NAME,
|
|
87
|
+
SUBPROOF_ASSERTION_RULE_NAME,
|
|
88
|
+
PROPERTY_ASSERTION_RULE_NAME,
|
|
89
|
+
CONTAINED_ASSERTION_RULE_NAME,
|
|
90
|
+
SATISFIES_ASSERTION_RULE_NAME,
|
|
91
|
+
VARIABLE_DECLARATION_RULE_NAME,
|
|
92
|
+
COMBINATOR_DECLARATION_RULE_NAME,
|
|
93
|
+
CONSTRUCTOR_DECLARATION_RULE_NAME,
|
|
94
|
+
COMPLEX_TYPE_DECLARATION_RULE_NAME,
|
|
95
|
+
METAVARIABLE_DECLARATION_RULE_NAME } from "./ruleNames";
|
|
96
|
+
|
|
97
|
+
const ruleMap = {
|
|
98
|
+
[RULE_RULE_NAME]: RuleNode,
|
|
99
|
+
[STEP_RULE_NAME]: StepNode,
|
|
100
|
+
[TERM_RULE_NAME]: TermNode,
|
|
101
|
+
[TYPE_RULE_NAME]: TypeNode,
|
|
102
|
+
[ERROR_RULE_NAME]: ErrorNode,
|
|
103
|
+
[FRAME_RULE_NAME]: FrameNode,
|
|
104
|
+
[LABEL_RULE_NAME]: LabelNode,
|
|
105
|
+
[LEMMA_RULE_NAME]: LemmaNode,
|
|
106
|
+
[AXIOM_RULE_NAME]: AxiomNode,
|
|
107
|
+
[PROOF_RULE_NAME]: ProofNode,
|
|
108
|
+
[THEOREM_RULE_NAME]: TheoremNode,
|
|
109
|
+
[PREMISE_RULE_NAME]: PremiseNode,
|
|
110
|
+
[PROPERTY_RULE_NAME]: PropertyNode,
|
|
111
|
+
[EQUALITY_RULE_NAME]: EqualityNode,
|
|
112
|
+
[SUBPROOF_RULE_NAME]: SubproofNode,
|
|
113
|
+
[REFERENCE_RULE_NAME]: ReferenceNode,
|
|
114
|
+
[JUDGEMENT_RULE_NAME]: JudgementNode,
|
|
115
|
+
[META_TYPE_RULE_NAME]: MetaTypeNode,
|
|
116
|
+
[DEDUCTION_RULE_NAME]: DeductionNode,
|
|
117
|
+
[PARAMETER_RULE_NAME]: ParameterNode,
|
|
118
|
+
[STATEMENT_RULE_NAME]: StatementNode,
|
|
119
|
+
[COMBINATOR_RULE_NAME]: CombinatorNode,
|
|
120
|
+
[CONCLUSION_RULE_NAME]: ConclusionNode,
|
|
121
|
+
[CONJECTURE_RULE_NAME]: ConjectureNode,
|
|
122
|
+
[DERIVATION_RULE_NAME]: DerivationNode,
|
|
123
|
+
[META_LEMMA_RULE_NAME]: MetaLemmaNode,
|
|
124
|
+
[SUPPOSITION_RULE_NAME]: SuppositionNode,
|
|
125
|
+
[CONSTRUCTOR_RULE_NAME]: ConstructorNode,
|
|
126
|
+
[DECLARATION_RULE_NAME]: DeclarationNode,
|
|
127
|
+
[METATHEOREM_RULE_NAME]: MetatheoremNode,
|
|
128
|
+
[METAVARIABLE_RULE_NAME]: MetavariableNode,
|
|
129
|
+
[TYPE_ASSERTION_RULE_NAME]: TypeAssertionNode,
|
|
130
|
+
[PROCEDURE_CALL_RULE_NAME]: ProcedureCallNode,
|
|
131
|
+
[SUB_DERIVATION_RULE_NAME]: SubDerivationNode,
|
|
132
|
+
[TYPE_DECLARATION_RULE_NAME]: typeDeclarationNode,
|
|
133
|
+
[PROPERTY_RELATION_RULE_NAME]: PropertyRelationNode,
|
|
134
|
+
[DEFINED_ASSERTION_RULE_NAME]: DefinedAssertionNode,
|
|
135
|
+
[SUBPROOF_ASSERTION_RULE_NAME]: SubproofAssertionNode,
|
|
136
|
+
[PROPERTY_ASSERTION_RULE_NAME]: PropertyAssertionNode,
|
|
137
|
+
[SATISFIES_ASSERTION_RULE_NAME]: SatisfiesAssertionNode,
|
|
138
|
+
[CONTAINED_ASSERTION_RULE_NAME]: ContainedAssertionNode,
|
|
139
|
+
[VARIABLE_DECLARATION_RULE_NAME]: variableDeclarationNode,
|
|
140
|
+
[COMBINATOR_DECLARATION_RULE_NAME]: combinatorDeclarationNode,
|
|
141
|
+
[CONSTRUCTOR_DECLARATION_RULE_NAME]: constructorDeclarationNode,
|
|
142
|
+
[COMPLEX_TYPE_DECLARATION_RULE_NAME]: complexTypeDeclarationNode,
|
|
143
|
+
[METAVARIABLE_DECLARATION_RULE_NAME]: metavariableDeclarationNode
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
export default ruleMap;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { NominalLexer as NominalLexerBase } from "occam-grammars";
|
|
4
|
+
|
|
5
|
+
export default class NominalLexer extends NominalLexerBase {
|
|
6
|
+
static fromRules(rules) { return NominalLexerBase.fromRules(NominalLexer, rules); }
|
|
7
|
+
|
|
8
|
+
static fromEntries(entries) { return NominalLexerBase.fromEntries(NominalLexer, entries); }
|
|
9
|
+
|
|
10
|
+
static fromNothing() { return NominalLexerBase.fromNothing(NominalLexer); }
|
|
11
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { NominalParser as NominalParserBase } from "occam-grammars";
|
|
4
|
+
|
|
5
|
+
import Node from "../node";
|
|
6
|
+
import nodeMap from "../nodeMap";
|
|
7
|
+
|
|
8
|
+
import { setNonTerminalNodes } from "../utilities/parser";
|
|
9
|
+
|
|
10
|
+
export default class NominalParser extends NominalParserBase {
|
|
11
|
+
static fromBNF(bnf) {
|
|
12
|
+
const markdownParser = NominalParserBase.fromBNF(NominalParser, bnf),
|
|
13
|
+
DefaultNonTerminalNode = Node; ///
|
|
14
|
+
|
|
15
|
+
setNonTerminalNodes(markdownParser, nodeMap, DefaultNonTerminalNode);
|
|
16
|
+
|
|
17
|
+
return markdownParser;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
static fromRules(rules) {
|
|
21
|
+
const markdownParser = NominalParserBase.fromRules(NominalParser, rules),
|
|
22
|
+
DefaultNonTerminalNode = Node; ///
|
|
23
|
+
|
|
24
|
+
setNonTerminalNodes(markdownParser, nodeMap, DefaultNonTerminalNode);
|
|
25
|
+
|
|
26
|
+
return markdownParser;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
static fromNothing() {
|
|
30
|
+
const markdownParser = NominalParserBase.fromNothing(NominalParser),
|
|
31
|
+
DefaultNonTerminalNode = Node; ///
|
|
32
|
+
|
|
33
|
+
setNonTerminalNodes(markdownParser, nodeMap, DefaultNonTerminalNode);
|
|
34
|
+
|
|
35
|
+
return markdownParser;
|
|
36
|
+
}
|
|
37
|
+
}
|
package/src/ruleNames.js
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export const RULE_RULE_NAME = "rule";
|
|
4
|
+
export const STEP_RULE_NAME = "step";
|
|
5
|
+
export const TERM_RULE_NAME = "term";
|
|
6
|
+
export const TYPE_RULE_NAME = "type";
|
|
7
|
+
export const LABEL_RULE_NAME = "label";
|
|
8
|
+
export const LEMMA_RULE_NAME = "lemma";
|
|
9
|
+
export const AXIOM_RULE_NAME = "axiom";
|
|
10
|
+
export const ERROR_RULE_NAME = "error";
|
|
11
|
+
export const FRAME_RULE_NAME = "frame";
|
|
12
|
+
export const PROOF_RULE_NAME = "proof";
|
|
13
|
+
export const THEOREM_RULE_NAME = "theorem";
|
|
14
|
+
export const PREMISE_RULE_NAME = "premise";
|
|
15
|
+
export const PROPERTY_RULE_NAME = "property";
|
|
16
|
+
export const EQUALITY_RULE_NAME = "equality";
|
|
17
|
+
export const SUBPROOF_RULE_NAME = "subproof";
|
|
18
|
+
export const PARAMETER_RULE_NAME = "parameter";
|
|
19
|
+
export const META_TYPE_RULE_NAME = "metaType";
|
|
20
|
+
export const DEDUCTION_RULE_NAME = "deduction";
|
|
21
|
+
export const JUDGEMENT_RULE_NAME = "judgement";
|
|
22
|
+
export const REFERENCE_RULE_NAME = "reference";
|
|
23
|
+
export const STATEMENT_RULE_NAME = "statement";
|
|
24
|
+
export const COMBINATOR_RULE_NAME = "combinator";
|
|
25
|
+
export const CONCLUSION_RULE_NAME = "conclusion";
|
|
26
|
+
export const CONJECTURE_RULE_NAME = "conjecture";
|
|
27
|
+
export const DERIVATION_RULE_NAME = "derivation";
|
|
28
|
+
export const META_LEMMA_RULE_NAME = "metaLemma";
|
|
29
|
+
export const SUPPOSITION_RULE_NAME = "supposition";
|
|
30
|
+
export const CONSTRUCTOR_RULE_NAME = "constructor";
|
|
31
|
+
export const DECLARATION_RULE_NAME = "declaration";
|
|
32
|
+
export const METATHEOREM_RULE_NAME = "metatheorem";
|
|
33
|
+
export const METAVARIABLE_RULE_NAME = "metavariable";
|
|
34
|
+
export const PROCEDURE_CALL_RULE_NAME = "procedureCall";
|
|
35
|
+
export const SUB_DERIVATION_RULE_NAME = "subDerivation";
|
|
36
|
+
export const TYPE_ASSERTION_RULE_NAME = "typeAssertion";
|
|
37
|
+
export const TYPE_DECLARATION_RULE_NAME = "typeDeclaration";
|
|
38
|
+
export const PROPERTY_RELATION_RULE_NAME = "propertyRelation";
|
|
39
|
+
export const DEFINED_ASSERTION_RULE_NAME = "definedAssertion";
|
|
40
|
+
export const PROPERTY_ASSERTION_RULE_NAME = "propertyAssertion";
|
|
41
|
+
export const SUBPROOF_ASSERTION_RULE_NAME = "subproofAssertion";
|
|
42
|
+
export const CONTAINED_ASSERTION_RULE_NAME = "containedAssertion";
|
|
43
|
+
export const SATISFIES_ASSERTION_RULE_NAME = "satisfiesAssertion";
|
|
44
|
+
export const VARIABLE_DECLARATION_RULE_NAME = "variableDeclaration";
|
|
45
|
+
export const COMBINATOR_DECLARATION_RULE_NAME = "combinatorDeclaration";
|
|
46
|
+
export const CONSTRUCTOR_DECLARATION_RULE_NAME = "constructorDeclaration";
|
|
47
|
+
export const COMPLEX_TYPE_DECLARATION_RULE_NAME = "complexTypeDeclaration";
|
|
48
|
+
export const METAVARIABLE_DECLARATION_RULE_NAME = "metavariableDeclaration";
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { rulesUtilities } from "occam-parsers";
|
|
4
|
+
|
|
5
|
+
const { rulesFromStartRuleAndRuleMap } = rulesUtilities;
|
|
6
|
+
|
|
7
|
+
export function setNonTerminalNodes(parser, nodeMap, DefaultNonTerminalNode) {
|
|
8
|
+
const startRule = parser.getStartRule(),
|
|
9
|
+
ruleMap = parser.getRuleMap(),
|
|
10
|
+
rules = rulesFromStartRuleAndRuleMap(startRule, ruleMap);
|
|
11
|
+
|
|
12
|
+
rules.forEach((rule) => {
|
|
13
|
+
const ruleName = rule.getName(),
|
|
14
|
+
NonTerminalNode = nodeMap[ruleName] || DefaultNonTerminalNode; ///
|
|
15
|
+
|
|
16
|
+
rule.setNonTerminalNode(NonTerminalNode);
|
|
17
|
+
});
|
|
18
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { objectType } from "../dom/type";
|
|
4
|
+
|
|
5
|
+
export function superTypesStringFromSuperTypes(superTypes) {
|
|
6
|
+
const superTypesString = superTypes.reduce((superTypesString, superType) => {
|
|
7
|
+
if (superType !== objectType) {
|
|
8
|
+
const superTypeString = superType.getString();
|
|
9
|
+
|
|
10
|
+
superTypesString = (superTypesString === null) ?
|
|
11
|
+
`'${superTypeString}'` :
|
|
12
|
+
`${superTypesString}, '${superTypeString}'`;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
return superTypesString;
|
|
16
|
+
}, null);
|
|
17
|
+
|
|
18
|
+
return superTypesString;
|
|
19
|
+
}
|