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.
Files changed (147) hide show
  1. package/lib/assignment/variable.js +3 -3
  2. package/lib/context/file.js +6 -4
  3. package/lib/context/release.js +32 -3
  4. package/lib/dom/assertion/type.js +10 -15
  5. package/lib/dom/combinator/bracketed.js +25 -4
  6. package/lib/dom/constructor.js +6 -29
  7. package/lib/dom/declaration/complexType.js +26 -60
  8. package/lib/dom/declaration/constructor.js +10 -15
  9. package/lib/dom/declaration/metavariable.js +10 -15
  10. package/lib/dom/declaration/type.js +20 -46
  11. package/lib/dom/declaration/variable.js +19 -19
  12. package/lib/dom/property.js +3 -3
  13. package/lib/dom/propertyRelation.js +3 -3
  14. package/lib/dom/term.js +4 -4
  15. package/lib/dom/type.js +80 -68
  16. package/lib/dom/variable.js +24 -52
  17. package/lib/equivalence.js +3 -3
  18. package/lib/node/assertion/contained.js +131 -0
  19. package/lib/node/assertion/defined.js +131 -0
  20. package/lib/node/assertion/property.js +131 -0
  21. package/lib/node/assertion/satisfies.js +131 -0
  22. package/lib/node/assertion/subproof.js +131 -0
  23. package/lib/node/assertion/type.js +131 -0
  24. package/lib/node/axiom.js +131 -0
  25. package/lib/node/combinator.js +131 -0
  26. package/lib/node/conclusion.js +131 -0
  27. package/lib/node/conjecture.js +131 -0
  28. package/lib/node/constructor.js +131 -0
  29. package/lib/node/declaration/combinator.js +131 -0
  30. package/lib/node/declaration/complexType.js +131 -0
  31. package/lib/node/declaration/constructor.js +131 -0
  32. package/lib/node/declaration/metavariable.js +131 -0
  33. package/lib/node/declaration/type.js +131 -0
  34. package/lib/node/declaration/variable.js +131 -0
  35. package/lib/node/declaration.js +131 -0
  36. package/lib/node/deduction.js +131 -0
  37. package/lib/node/derivation.js +131 -0
  38. package/lib/node/equality.js +131 -0
  39. package/lib/node/error.js +131 -0
  40. package/lib/node/frame.js +131 -0
  41. package/lib/node/judgement.js +131 -0
  42. package/lib/node/label.js +131 -0
  43. package/lib/node/lemma.js +131 -0
  44. package/lib/node/metaLemma.js +131 -0
  45. package/lib/node/metaType.js +131 -0
  46. package/lib/node/metatheorem.js +131 -0
  47. package/lib/node/metavariable.js +131 -0
  48. package/lib/node/parameter.js +131 -0
  49. package/lib/node/premise.js +131 -0
  50. package/lib/node/procedureCall.js +131 -0
  51. package/lib/node/proof.js +131 -0
  52. package/lib/node/property.js +131 -0
  53. package/lib/node/propertyRelation.js +131 -0
  54. package/lib/node/reference.js +131 -0
  55. package/lib/node/rule.js +131 -0
  56. package/lib/node/statement.js +131 -0
  57. package/lib/node/step.js +131 -0
  58. package/lib/node/subDerivation.js +131 -0
  59. package/lib/node/subproof.js +131 -0
  60. package/lib/node/supposition.js +131 -0
  61. package/lib/node/term.js +131 -0
  62. package/lib/node/theorem.js +131 -0
  63. package/lib/node/topLevelAssertion.js +131 -0
  64. package/lib/node/topLevelMetaAssertion.js +131 -0
  65. package/lib/node/type.js +131 -0
  66. package/lib/node/variable.js +131 -0
  67. package/lib/node.js +80 -0
  68. package/lib/nodeMap.js +80 -0
  69. package/lib/nominal/lexer.js +114 -0
  70. package/lib/nominal/parser.js +128 -0
  71. package/lib/ruleNames.js +198 -0
  72. package/lib/utilities/parser.js +21 -0
  73. package/lib/utilities/type.js +23 -0
  74. package/package.json +4 -3
  75. package/src/assignment/variable.js +4 -4
  76. package/src/context/file.js +10 -7
  77. package/src/context/release.js +8 -3
  78. package/src/dom/assertion/type.js +11 -16
  79. package/src/dom/combinator/bracketed.js +1 -6
  80. package/src/dom/constructor.js +5 -36
  81. package/src/dom/declaration/complexType.js +41 -52
  82. package/src/dom/declaration/constructor.js +11 -15
  83. package/src/dom/declaration/metavariable.js +11 -15
  84. package/src/dom/declaration/type.js +19 -44
  85. package/src/dom/declaration/variable.js +29 -21
  86. package/src/dom/property.js +2 -2
  87. package/src/dom/propertyRelation.js +2 -2
  88. package/src/dom/term.js +3 -3
  89. package/src/dom/type.js +120 -89
  90. package/src/dom/variable.js +27 -64
  91. package/src/equivalence.js +2 -2
  92. package/src/node/assertion/contained.js +5 -0
  93. package/src/node/assertion/defined.js +5 -0
  94. package/src/node/assertion/property.js +5 -0
  95. package/src/node/assertion/satisfies.js +5 -0
  96. package/src/node/assertion/subproof.js +5 -0
  97. package/src/node/assertion/type.js +5 -0
  98. package/src/node/axiom.js +5 -0
  99. package/src/node/combinator.js +5 -0
  100. package/src/node/conclusion.js +5 -0
  101. package/src/node/conjecture.js +5 -0
  102. package/src/node/constructor.js +5 -0
  103. package/src/node/declaration/combinator.js +5 -0
  104. package/src/node/declaration/complexType.js +5 -0
  105. package/src/node/declaration/constructor.js +5 -0
  106. package/src/node/declaration/metavariable.js +5 -0
  107. package/src/node/declaration/type.js +5 -0
  108. package/src/node/declaration/variable.js +5 -0
  109. package/src/node/declaration.js +5 -0
  110. package/src/node/deduction.js +5 -0
  111. package/src/node/derivation.js +5 -0
  112. package/src/node/equality.js +5 -0
  113. package/src/node/error.js +5 -0
  114. package/src/node/frame.js +5 -0
  115. package/src/node/judgement.js +5 -0
  116. package/src/node/label.js +5 -0
  117. package/src/node/lemma.js +5 -0
  118. package/src/node/metaLemma.js +5 -0
  119. package/src/node/metaType.js +5 -0
  120. package/src/node/metatheorem.js +5 -0
  121. package/src/node/metavariable.js +5 -0
  122. package/src/node/parameter.js +5 -0
  123. package/src/node/premise.js +5 -0
  124. package/src/node/procedureCall.js +5 -0
  125. package/src/node/proof.js +5 -0
  126. package/src/node/property.js +5 -0
  127. package/src/node/propertyRelation.js +5 -0
  128. package/src/node/reference.js +5 -0
  129. package/src/node/rule.js +5 -0
  130. package/src/node/statement.js +5 -0
  131. package/src/node/step.js +5 -0
  132. package/src/node/subDerivation.js +5 -0
  133. package/src/node/subproof.js +5 -0
  134. package/src/node/supposition.js +5 -0
  135. package/src/node/term.js +5 -0
  136. package/src/node/theorem.js +5 -0
  137. package/src/node/topLevelAssertion.js +5 -0
  138. package/src/node/topLevelMetaAssertion.js +5 -0
  139. package/src/node/type.js +5 -0
  140. package/src/node/variable.js +5 -0
  141. package/src/node.js +5 -0
  142. package/src/nodeMap.js +146 -0
  143. package/src/nominal/lexer.js +11 -0
  144. package/src/nominal/parser.js +37 -0
  145. package/src/ruleNames.js +48 -0
  146. package/src/utilities/parser.js +18 -0
  147. package/src/utilities/type.js +19 -0
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import Node from "../node";
4
+
5
+ export default class DerivationNode extends Node {}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import Node from "../node";
4
+
5
+ export default class EqualityNode extends Node {}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import Node from "../node";
4
+
5
+ export default class ErrorNode extends Node {}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import Node from "../node";
4
+
5
+ export default class FrameNode extends Node {}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import Node from "../node";
4
+
5
+ export default class JudgementNode extends Node {}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import Node from "../node";
4
+
5
+ export default class LabelNode extends Node {}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import Node from "../node";
4
+
5
+ export default class LemmaNode extends Node {}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import Node from "../node";
4
+
5
+ export default class MetaLemmaNode extends Node {}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import Node from "../node";
4
+
5
+ export default class MetaTypeNode extends Node {}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import Node from "../node";
4
+
5
+ export default class MetatheoremNode extends Node {}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import Node from "../node";
4
+
5
+ export default class MetavariableNode extends Node {}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import Node from "../node";
4
+
5
+ export default class ParameterNode extends Node {}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import Node from "../node";
4
+
5
+ export default class PremiseNode extends Node {}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import Node from "../node";
4
+
5
+ export default class ProcedureCallNode extends Node {}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import Node from "../node";
4
+
5
+ export default class ProofNode extends Node {}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import Node from "../node";
4
+
5
+ export default class PropertyNode extends Node {}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import Node from "../node";
4
+
5
+ export default class PropertyRelationNode extends Node {}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import Node from "../node";
4
+
5
+ export default class ReferenceNode extends Node {}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import Node from "../node";
4
+
5
+ export default class RuleNode extends Node {}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import Node from "../node";
4
+
5
+ export default class StatementNode extends Node {}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import Node from "../node";
4
+
5
+ export default class StepNode extends Node {}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import Node from "../node";
4
+
5
+ export default class SubDerivationNode extends Node {}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import Node from "../node";
4
+
5
+ export default class SubproofNode extends Node {}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import Node from "../node";
4
+
5
+ export default class SuppositionNode extends Node {}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import Node from "../node";
4
+
5
+ export default class TermNode extends Node {}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import Node from "../node";
4
+
5
+ export default class TheoremNode extends Node {}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import Node from "../node";
4
+
5
+ export default class TopLevelAssertionNode extends Node {}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import Node from "../node";
4
+
5
+ export default class TopLevelMetaAssertionNode extends Node {}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import Node from "../node";
4
+
5
+ export default class TypeNode extends Node {}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import Node from "../node";
4
+
5
+ export default class VariableNode extends Node {}
package/src/node.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ import { NonTerminalNode } from "occam-parsers";
4
+
5
+ export default class Node extends NonTerminalNode {}
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
+ }
@@ -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
+ }