occam-verify-cli 1.0.983 → 1.0.985
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/action/verify.js +22 -27
- package/lib/constants.js +1 -41
- package/lib/index.js +1 -2
- package/lib/utilities/fileContext.js +3 -8
- package/lib/utilities/releaseContext.js +2 -2
- package/package.json +10 -11
- package/src/action/verify.js +8 -18
- package/src/constants.js +0 -10
- package/src/index.js +0 -2
- package/src/utilities/fileContext.js +1 -2
- package/src/utilities/releaseContext.js +1 -1
- package/lib/context/aphasic.js +0 -27
- package/lib/context/bounded.js +0 -244
- package/lib/context/branching.js +0 -61
- package/lib/context/file/nominal.js +0 -586
- package/lib/context/illative.js +0 -28
- package/lib/context/liminal.js +0 -200
- package/lib/context/literal.js +0 -44
- package/lib/context/mnemic.js +0 -454
- package/lib/context/nested.js +0 -31
- package/lib/context/nominal.js +0 -57
- package/lib/context/phaneric.js +0 -44
- package/lib/context/thetic.js +0 -28
- package/lib/context.js +0 -445
- package/lib/element/assertion/contained.js +0 -218
- package/lib/element/assertion/defined.js +0 -213
- package/lib/element/assertion/property.js +0 -176
- package/lib/element/assertion/signature.js +0 -170
- package/lib/element/assertion/subproof.js +0 -220
- package/lib/element/assertion/type.js +0 -227
- package/lib/element/assertion.js +0 -49
- package/lib/element/assumption/metaLevel.js +0 -244
- package/lib/element/assumption.js +0 -252
- package/lib/element/combinator/bracketed.js +0 -36
- package/lib/element/combinator.js +0 -104
- package/lib/element/conclusion.js +0 -131
- package/lib/element/constructor/bracketed.js +0 -57
- package/lib/element/constructor.js +0 -129
- package/lib/element/declaration/combinator.js +0 -58
- package/lib/element/declaration/complexType.js +0 -180
- package/lib/element/declaration/constructor.js +0 -93
- package/lib/element/declaration/metavariable.js +0 -77
- package/lib/element/declaration/property.js +0 -88
- package/lib/element/declaration/simpleType.js +0 -148
- package/lib/element/declaration/typePrefix.js +0 -53
- package/lib/element/declaration/variable.js +0 -99
- package/lib/element/declaration.js +0 -15
- package/lib/element/deduction.js +0 -131
- package/lib/element/derivation.js +0 -46
- package/lib/element/equality.js +0 -211
- package/lib/element/equivalence.js +0 -200
- package/lib/element/error.js +0 -27
- package/lib/element/frame.js +0 -238
- package/lib/element/hypothesis.js +0 -135
- package/lib/element/judgement.js +0 -212
- package/lib/element/label.js +0 -135
- package/lib/element/metaType.js +0 -57
- package/lib/element/metavariable.js +0 -452
- package/lib/element/parameter.js +0 -69
- package/lib/element/procedureCall.js +0 -116
- package/lib/element/procedureReference.js +0 -56
- package/lib/element/proof.js +0 -52
- package/lib/element/proofAssertion/premise.js +0 -238
- package/lib/element/proofAssertion/step.js +0 -235
- package/lib/element/proofAssertion/supposition.js +0 -249
- package/lib/element/proofAssertion.js +0 -56
- package/lib/element/property.js +0 -176
- package/lib/element/propertyRelation.js +0 -132
- package/lib/element/reference.js +0 -227
- package/lib/element/rule.js +0 -242
- package/lib/element/section.js +0 -64
- package/lib/element/signature.js +0 -195
- package/lib/element/statement.js +0 -228
- package/lib/element/subDerivation.js +0 -46
- package/lib/element/subproof.js +0 -91
- package/lib/element/substitution/frame.js +0 -256
- package/lib/element/substitution/reference.js +0 -192
- package/lib/element/substitution/statement.js +0 -294
- package/lib/element/substitution/term.js +0 -266
- package/lib/element/substitution.js +0 -183
- package/lib/element/term.js +0 -217
- package/lib/element/topLevelAssertion/axiom.js +0 -158
- package/lib/element/topLevelAssertion/conjecture.js +0 -42
- package/lib/element/topLevelAssertion/lemma.js +0 -39
- package/lib/element/topLevelAssertion/theorem.js +0 -42
- package/lib/element/topLevelAssertion.js +0 -286
- package/lib/element/topLevelMetaAssertion/metaLemma.js +0 -42
- package/lib/element/topLevelMetaAssertion/metatheorem.js +0 -42
- package/lib/element/topLevelMetaAssertion.js +0 -179
- package/lib/element/type.js +0 -240
- package/lib/element/typePrefix.js +0 -85
- package/lib/element/variable.js +0 -206
- package/lib/elements.js +0 -27
- package/lib/metaTypeNames.js +0 -26
- package/lib/metaTypes.js +0 -66
- package/lib/node/argument.js +0 -31
- package/lib/node/assertion/contained.js +0 -51
- package/lib/node/assertion/defined.js +0 -47
- package/lib/node/assertion/property.js +0 -36
- package/lib/node/assertion/signature.js +0 -32
- package/lib/node/assertion/subproof.js +0 -28
- package/lib/node/assertion/type.js +0 -32
- package/lib/node/assertion.js +0 -18
- package/lib/node/assumption/metaLevel.js +0 -27
- package/lib/node/assumption.js +0 -27
- package/lib/node/body/axiom.js +0 -23
- package/lib/node/body/conjecture.js +0 -23
- package/lib/node/body/lemma.js +0 -23
- package/lib/node/body/metaLemma.js +0 -23
- package/lib/node/body/metatheorem.js +0 -23
- package/lib/node/body/rule.js +0 -44
- package/lib/node/body/theorem.js +0 -23
- package/lib/node/body.js +0 -31
- package/lib/node/combinator.js +0 -23
- package/lib/node/conclusion.js +0 -27
- package/lib/node/constructor.js +0 -23
- package/lib/node/declaration/combinator.js +0 -28
- package/lib/node/declaration/complexType.js +0 -72
- package/lib/node/declaration/constructor.js +0 -47
- package/lib/node/declaration/metavariable.js +0 -36
- package/lib/node/declaration/property.js +0 -44
- package/lib/node/declaration/simpleType.js +0 -72
- package/lib/node/declaration/typePrefix.js +0 -32
- package/lib/node/declaration/variable.js +0 -51
- package/lib/node/declaration.js +0 -18
- package/lib/node/deduction.js +0 -27
- package/lib/node/derivation.js +0 -26
- package/lib/node/document.js +0 -18
- package/lib/node/equality.js +0 -33
- package/lib/node/equivalence.js +0 -23
- package/lib/node/equivalences.js +0 -18
- package/lib/node/error.js +0 -18
- package/lib/node/frame.js +0 -38
- package/lib/node/header/axiom.js +0 -28
- package/lib/node/header/conjecture.js +0 -23
- package/lib/node/header/lemma.js +0 -23
- package/lib/node/header/metaLemma.js +0 -23
- package/lib/node/header/metatheorem.js +0 -23
- package/lib/node/header/rule.js +0 -23
- package/lib/node/header/theorem.js +0 -23
- package/lib/node/header.js +0 -47
- package/lib/node/hypothesis.js +0 -27
- package/lib/node/judgement.js +0 -31
- package/lib/node/label.js +0 -23
- package/lib/node/labels.js +0 -23
- package/lib/node/metaArgument.js +0 -23
- package/lib/node/metaType.js +0 -30
- package/lib/node/metavariable.js +0 -39
- package/lib/node/parameter.js +0 -47
- package/lib/node/parenthesisedLabel.js +0 -23
- package/lib/node/parenthesisedLabels.js +0 -27
- package/lib/node/placeholder.js +0 -18
- package/lib/node/procedureCall.js +0 -31
- package/lib/node/procedureReference.js +0 -30
- package/lib/node/proof.js +0 -23
- package/lib/node/proofAssertion/premise.js +0 -28
- package/lib/node/proofAssertion/step.js +0 -52
- package/lib/node/proofAssertion/supposition.js +0 -28
- package/lib/node/proofAssertion.js +0 -27
- package/lib/node/property.js +0 -30
- package/lib/node/propertyRelation.js +0 -31
- package/lib/node/qualification.js +0 -27
- package/lib/node/reference.js +0 -23
- package/lib/node/rule.js +0 -43
- package/lib/node/section.js +0 -39
- package/lib/node/signature.js +0 -23
- package/lib/node/statement.js +0 -103
- package/lib/node/subDerivation.js +0 -26
- package/lib/node/subproof.js +0 -35
- package/lib/node/substitution/frame.js +0 -40
- package/lib/node/substitution/reference.js +0 -40
- package/lib/node/substitution/statement.js +0 -60
- package/lib/node/substitution/term.js +0 -40
- package/lib/node/substitution.js +0 -18
- package/lib/node/term.js +0 -60
- package/lib/node/topLevelAssertion/axiom.js +0 -26
- package/lib/node/topLevelAssertion/conjecture.js +0 -26
- package/lib/node/topLevelAssertion/lemma.js +0 -26
- package/lib/node/topLevelAssertion/theorem.js +0 -26
- package/lib/node/topLevelAssertion.js +0 -46
- package/lib/node/topLevelMetaAssertion/metaLemma.js +0 -26
- package/lib/node/topLevelMetaAssertion/metatheorem.js +0 -26
- package/lib/node/topLevelMetaAssertion.js +0 -42
- package/lib/node/type.js +0 -60
- package/lib/node/typePrefix.js +0 -30
- package/lib/node/types.js +0 -23
- package/lib/node/variable.js +0 -30
- package/lib/nominal/lexer.js +0 -15
- package/lib/nominal/parser.js +0 -24
- package/lib/nonTerminalNodeMap.js +0 -189
- package/lib/pass/zip.js +0 -23
- package/lib/preamble.js +0 -73
- package/lib/process/assign.js +0 -62
- package/lib/process/discharge.js +0 -38
- package/lib/process/equate.js +0 -73
- package/lib/process/instantiate.js +0 -261
- package/lib/process/unification.js +0 -228
- package/lib/process/unify.js +0 -336
- package/lib/process/validate.js +0 -135
- package/lib/process/validation.js +0 -291
- package/lib/process/verify.js +0 -205
- package/lib/ruleNames.js +0 -350
- package/lib/tokenTypes.js +0 -22
- package/lib/utilities/assignment.js +0 -47
- package/lib/utilities/bnf.js +0 -21
- package/lib/utilities/brackets.js +0 -77
- package/lib/utilities/breakPoint.js +0 -38
- package/lib/utilities/context.js +0 -220
- package/lib/utilities/element.js +0 -1851
- package/lib/utilities/equivalence.js +0 -27
- package/lib/utilities/equivalences.js +0 -134
- package/lib/utilities/instance.js +0 -44
- package/lib/utilities/json.js +0 -1109
- package/lib/utilities/string.js +0 -231
- package/lib/utilities/substitutions.js +0 -86
- package/lib/utilities/synoptic.js +0 -159
- package/lib/utilities/type.js +0 -27
- package/src/context/aphasic.js +0 -15
- package/src/context/bounded.js +0 -362
- package/src/context/branching.js +0 -69
- package/src/context/file/nominal.js +0 -955
- package/src/context/illative.js +0 -17
- package/src/context/liminal.js +0 -280
- package/src/context/literal.js +0 -42
- package/src/context/mnemic.js +0 -778
- package/src/context/nested.js +0 -21
- package/src/context/nominal.js +0 -62
- package/src/context/phaneric.js +0 -43
- package/src/context/thetic.js +0 -17
- package/src/context.js +0 -722
- package/src/element/assertion/contained.js +0 -313
- package/src/element/assertion/defined.js +0 -310
- package/src/element/assertion/property.js +0 -252
- package/src/element/assertion/signature.js +0 -239
- package/src/element/assertion/subproof.js +0 -335
- package/src/element/assertion/type.js +0 -328
- package/src/element/assertion.js +0 -65
- package/src/element/assumption/metaLevel.js +0 -373
- package/src/element/assumption.js +0 -374
- package/src/element/combinator/bracketed.js +0 -32
- package/src/element/combinator.js +0 -145
- package/src/element/conclusion.js +0 -185
- package/src/element/constructor/bracketed.js +0 -68
- package/src/element/constructor.js +0 -188
- package/src/element/declaration/combinator.js +0 -66
- package/src/element/declaration/complexType.js +0 -257
- package/src/element/declaration/constructor.js +0 -122
- package/src/element/declaration/metavariable.js +0 -93
- package/src/element/declaration/property.js +0 -108
- package/src/element/declaration/simpleType.js +0 -208
- package/src/element/declaration/typePrefix.js +0 -58
- package/src/element/declaration/variable.js +0 -130
- package/src/element/declaration.js +0 -7
- package/src/element/deduction.js +0 -185
- package/src/element/derivation.js +0 -57
- package/src/element/equality.js +0 -325
- package/src/element/equivalence.js +0 -276
- package/src/element/error.js +0 -26
- package/src/element/frame.js +0 -356
- package/src/element/hypothesis.js +0 -186
- package/src/element/judgement.js +0 -303
- package/src/element/label.js +0 -186
- package/src/element/metaType.js +0 -75
- package/src/element/metavariable.js +0 -662
- package/src/element/parameter.js +0 -90
- package/src/element/procedureCall.js +0 -159
- package/src/element/procedureReference.js +0 -71
- package/src/element/proof.js +0 -61
- package/src/element/proofAssertion/premise.js +0 -354
- package/src/element/proofAssertion/step.js +0 -271
- package/src/element/proofAssertion/supposition.js +0 -377
- package/src/element/proofAssertion.js +0 -74
- package/src/element/property.js +0 -258
- package/src/element/propertyRelation.js +0 -193
- package/src/element/reference.js +0 -345
- package/src/element/rule.js +0 -358
- package/src/element/section.js +0 -78
- package/src/element/signature.js +0 -292
- package/src/element/statement.js +0 -358
- package/src/element/subDerivation.js +0 -56
- package/src/element/subproof.js +0 -116
- package/src/element/substitution/frame.js +0 -392
- package/src/element/substitution/reference.js +0 -274
- package/src/element/substitution/statement.js +0 -452
- package/src/element/substitution/term.js +0 -407
- package/src/element/substitution.js +0 -261
- package/src/element/term.js +0 -339
- package/src/element/topLevelAssertion/axiom.js +0 -244
- package/src/element/topLevelAssertion/conjecture.js +0 -40
- package/src/element/topLevelAssertion/lemma.js +0 -42
- package/src/element/topLevelAssertion/theorem.js +0 -40
- package/src/element/topLevelAssertion.js +0 -436
- package/src/element/topLevelMetaAssertion/metaLemma.js +0 -40
- package/src/element/topLevelMetaAssertion/metatheorem.js +0 -40
- package/src/element/topLevelMetaAssertion.js +0 -276
- package/src/element/type.js +0 -374
- package/src/element/typePrefix.js +0 -113
- package/src/element/variable.js +0 -259
- package/src/elements.js +0 -13
- package/src/metaTypeNames.js +0 -5
- package/src/metaTypes.js +0 -71
- package/src/node/argument.js +0 -30
- package/src/node/assertion/contained.js +0 -53
- package/src/node/assertion/defined.js +0 -46
- package/src/node/assertion/property.js +0 -30
- package/src/node/assertion/signature.js +0 -23
- package/src/node/assertion/subproof.js +0 -16
- package/src/node/assertion/type.js +0 -23
- package/src/node/assertion.js +0 -7
- package/src/node/assumption/metaLevel.js +0 -23
- package/src/node/assumption.js +0 -23
- package/src/node/body/axiom.js +0 -7
- package/src/node/body/conjecture.js +0 -7
- package/src/node/body/lemma.js +0 -7
- package/src/node/body/metaLemma.js +0 -7
- package/src/node/body/metatheorem.js +0 -7
- package/src/node/body/rule.js +0 -42
- package/src/node/body/theorem.js +0 -7
- package/src/node/body.js +0 -30
- package/src/node/combinator.js +0 -16
- package/src/node/conclusion.js +0 -23
- package/src/node/constructor.js +0 -16
- package/src/node/declaration/combinator.js +0 -16
- package/src/node/declaration/complexType.js +0 -88
- package/src/node/declaration/constructor.js +0 -46
- package/src/node/declaration/metavariable.js +0 -30
- package/src/node/declaration/property.js +0 -42
- package/src/node/declaration/simpleType.js +0 -87
- package/src/node/declaration/typePrefix.js +0 -24
- package/src/node/declaration/variable.js +0 -53
- package/src/node/declaration.js +0 -7
- package/src/node/deduction.js +0 -23
- package/src/node/derivation.js +0 -19
- package/src/node/document.js +0 -7
- package/src/node/equality.js +0 -35
- package/src/node/equivalence.js +0 -16
- package/src/node/equivalences.js +0 -7
- package/src/node/error.js +0 -7
- package/src/node/frame.js +0 -40
- package/src/node/header/axiom.js +0 -16
- package/src/node/header/conjecture.js +0 -7
- package/src/node/header/lemma.js +0 -7
- package/src/node/header/metaLemma.js +0 -7
- package/src/node/header/metatheorem.js +0 -7
- package/src/node/header/rule.js +0 -7
- package/src/node/header/theorem.js +0 -7
- package/src/node/header.js +0 -54
- package/src/node/hypothesis.js +0 -23
- package/src/node/judgement.js +0 -30
- package/src/node/label.js +0 -16
- package/src/node/labels.js +0 -16
- package/src/node/metaArgument.js +0 -16
- package/src/node/metaType.js +0 -26
- package/src/node/metavariable.js +0 -42
- package/src/node/parameter.js +0 -51
- package/src/node/parenthesisedLabel.js +0 -16
- package/src/node/parenthesisedLabels.js +0 -23
- package/src/node/placeholder.js +0 -7
- package/src/node/procedureCall.js +0 -30
- package/src/node/procedureReference.js +0 -26
- package/src/node/proof.js +0 -16
- package/src/node/proofAssertion/premise.js +0 -16
- package/src/node/proofAssertion/step.js +0 -52
- package/src/node/proofAssertion/supposition.js +0 -16
- package/src/node/proofAssertion.js +0 -23
- package/src/node/property.js +0 -28
- package/src/node/propertyRelation.js +0 -30
- package/src/node/qualification.js +0 -23
- package/src/node/reference.js +0 -16
- package/src/node/rule.js +0 -51
- package/src/node/section.js +0 -44
- package/src/node/signature.js +0 -16
- package/src/node/statement.js +0 -167
- package/src/node/subDerivation.js +0 -19
- package/src/node/subproof.js +0 -35
- package/src/node/substitution/frame.js +0 -37
- package/src/node/substitution/reference.js +0 -38
- package/src/node/substitution/statement.js +0 -70
- package/src/node/substitution/term.js +0 -38
- package/src/node/substitution.js +0 -7
- package/src/node/term.js +0 -75
- package/src/node/topLevelAssertion/axiom.js +0 -13
- package/src/node/topLevelAssertion/conjecture.js +0 -13
- package/src/node/topLevelAssertion/lemma.js +0 -13
- package/src/node/topLevelAssertion/theorem.js +0 -13
- package/src/node/topLevelAssertion.js +0 -58
- package/src/node/topLevelMetaAssertion/metaLemma.js +0 -13
- package/src/node/topLevelMetaAssertion/metatheorem.js +0 -13
- package/src/node/topLevelMetaAssertion.js +0 -51
- package/src/node/type.js +0 -74
- package/src/node/typePrefix.js +0 -26
- package/src/node/types.js +0 -16
- package/src/node/variable.js +0 -26
- package/src/nominal/lexer.js +0 -5
- package/src/nominal/parser.js +0 -12
- package/src/nonTerminalNodeMap.js +0 -261
- package/src/pass/zip.js +0 -19
- package/src/preamble.js +0 -64
- package/src/process/assign.js +0 -53
- package/src/process/discharge.js +0 -33
- package/src/process/equate.js +0 -94
- package/src/process/instantiate.js +0 -198
- package/src/process/unification.js +0 -332
- package/src/process/unify.js +0 -504
- package/src/process/validate.js +0 -174
- package/src/process/validation.js +0 -410
- package/src/process/verify.js +0 -299
- package/src/ruleNames.js +0 -86
- package/src/tokenTypes.js +0 -4
- package/src/utilities/assignment.js +0 -57
- package/src/utilities/bnf.js +0 -20
- package/src/utilities/brackets.js +0 -87
- package/src/utilities/breakPoint.js +0 -29
- package/src/utilities/context.js +0 -223
- package/src/utilities/element.js +0 -2293
- package/src/utilities/equivalence.js +0 -25
- package/src/utilities/equivalences.js +0 -158
- package/src/utilities/instance.js +0 -40
- package/src/utilities/json.js +0 -1273
- package/src/utilities/string.js +0 -282
- package/src/utilities/substitutions.js +0 -93
- package/src/utilities/synoptic.js +0 -135
- package/src/utilities/type.js +0 -19
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { Element } from "occam-languages";
|
|
4
|
-
|
|
5
|
-
import { define } from "../elements";
|
|
6
|
-
import { instantiate } from "../utilities/context";
|
|
7
|
-
import { instantiateTypePrefix } from "../process/instantiate";
|
|
8
|
-
import { nameFromTypePrefixNode } from "../utilities/element";
|
|
9
|
-
import { breakPointFromJSON, breakPointToBreakPointJSON } from "../utilities/breakPoint";
|
|
10
|
-
|
|
11
|
-
export default define(class TypePrefix extends Element {
|
|
12
|
-
constructor(context, string, node, breakPoint, name) {
|
|
13
|
-
super(context, string, node, breakPoint);
|
|
14
|
-
|
|
15
|
-
this.name = name;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
getName() {
|
|
19
|
-
return this.name;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
getTypePrefixNode() {
|
|
23
|
-
const node = this.getNode(),
|
|
24
|
-
typePrefixNode = node; ///
|
|
25
|
-
|
|
26
|
-
return typePrefixNode;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
getPrefixName() {
|
|
30
|
-
const prefixName = this.name; ///
|
|
31
|
-
|
|
32
|
-
return prefixName;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
compareTypePrefixName(typePrefixName) {
|
|
36
|
-
const comparesToTypePrefixName = (this.name === typePrefixName);
|
|
37
|
-
|
|
38
|
-
return comparesToTypePrefixName;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
verify(context) {
|
|
42
|
-
let verifies = false;
|
|
43
|
-
|
|
44
|
-
const typePrefixString = this.getString(); ///
|
|
45
|
-
|
|
46
|
-
context.trace(`Verifying the '${typePrefixString}' type prefix...`);
|
|
47
|
-
|
|
48
|
-
const typePrefix = context.getTypePrefix();
|
|
49
|
-
|
|
50
|
-
if (typePrefix === null) {
|
|
51
|
-
const typePrefixName = this.name, ///
|
|
52
|
-
typePrefixPresent = context.isTypePrefixPresentByTypePrefixName(typePrefixName);
|
|
53
|
-
|
|
54
|
-
if (!typePrefixPresent) {
|
|
55
|
-
const nominalTypeName = typePrefixName, ///
|
|
56
|
-
typePresent = context.isTypePresentByNominalTypeName(nominalTypeName);
|
|
57
|
-
|
|
58
|
-
if (!typePresent) {
|
|
59
|
-
verifies = true;
|
|
60
|
-
} else {
|
|
61
|
-
context.debug(`The '${typePrefixString}' type is already present.`);
|
|
62
|
-
}
|
|
63
|
-
} else {
|
|
64
|
-
context.debug(`The '${typePrefixString}' type prefix is already present.`);
|
|
65
|
-
}
|
|
66
|
-
} else {
|
|
67
|
-
context.trace(`The package already has a '${typePrefixString}' type prefix.`);
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
if (verifies) {
|
|
71
|
-
context.debug(`...verified the '${typePrefixString}' type prefix.`);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
return verifies;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
static name = "TypePrefix";
|
|
78
|
-
|
|
79
|
-
toJSON() {
|
|
80
|
-
const string = this.getString();
|
|
81
|
-
|
|
82
|
-
let breakPoint;
|
|
83
|
-
|
|
84
|
-
breakPoint = this.getBreakPoint();
|
|
85
|
-
|
|
86
|
-
const breakPointJSON = breakPointToBreakPointJSON(breakPoint);
|
|
87
|
-
|
|
88
|
-
breakPoint = breakPointJSON; ///
|
|
89
|
-
|
|
90
|
-
const json = {
|
|
91
|
-
string,
|
|
92
|
-
breakPoint
|
|
93
|
-
};
|
|
94
|
-
|
|
95
|
-
return json;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
static fromJSON(json, context) {
|
|
99
|
-
return instantiate((context) => {
|
|
100
|
-
const { string } = json,
|
|
101
|
-
typePrefixNode = instantiateTypePrefix(string, context),
|
|
102
|
-
node = typePrefixNode, ///
|
|
103
|
-
breakPoint = breakPointFromJSON(json),
|
|
104
|
-
name = nameFromTypePrefixNode(typePrefixNode, context);
|
|
105
|
-
|
|
106
|
-
context = null; ///
|
|
107
|
-
|
|
108
|
-
const typePrefix = new TypePrefix(context, string, node, breakPoint, name);
|
|
109
|
-
|
|
110
|
-
return typePrefix;
|
|
111
|
-
}, context);
|
|
112
|
-
}
|
|
113
|
-
});
|
package/src/element/variable.js
DELETED
|
@@ -1,259 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { Element } from "occam-languages";
|
|
4
|
-
|
|
5
|
-
import elements from "../elements";
|
|
6
|
-
|
|
7
|
-
import { define } from "../elements";
|
|
8
|
-
import { instantiate } from "../utilities/context";
|
|
9
|
-
import { instantiateVariable } from "../process/instantiate";
|
|
10
|
-
import { provisionallyStringFromProvisional } from "../utilities/string";
|
|
11
|
-
import { breakPointFromJSON, breakPointToBreakPointJSON } from "../utilities/breakPoint";
|
|
12
|
-
import { variableFromTermNode, identifierFromVariableNode } from "../utilities/element";
|
|
13
|
-
import { typeFromJSON, typeToTypeJSON, provisionalFromJSON, provisionalToProvisionalJSON } from "../utilities/json";
|
|
14
|
-
|
|
15
|
-
export default define(class Variable extends Element {
|
|
16
|
-
constructor(context, string, node, breakPoint, type, identifier, provisional) {
|
|
17
|
-
super(context, string, node, breakPoint);
|
|
18
|
-
|
|
19
|
-
this.type = type;
|
|
20
|
-
this.identifier = identifier;
|
|
21
|
-
this.provisional = provisional;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
getType() {
|
|
25
|
-
return this.type;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
getIdentifier() {
|
|
29
|
-
return this.identifier;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
isProvisional() {
|
|
33
|
-
return this.provisional;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
setType(type) {
|
|
37
|
-
this.type = type;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
setProvisional(provisional) {
|
|
41
|
-
this.provisional = provisional;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
getVariableNode() {
|
|
45
|
-
const node = this.getNode(),
|
|
46
|
-
variableNode = node; //
|
|
47
|
-
|
|
48
|
-
return variableNode;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
getTypeString() { return this.type.getString(); }
|
|
52
|
-
|
|
53
|
-
isEstablished() {
|
|
54
|
-
const provisional = this.isProvisional(),
|
|
55
|
-
established = !provisional;
|
|
56
|
-
|
|
57
|
-
return established;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
isIdentifierEqualTo(identifier) {
|
|
61
|
-
const identifierEqualTo = (this.identifier === identifier);
|
|
62
|
-
|
|
63
|
-
return identifierEqualTo;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
compareVariable(variable) {
|
|
67
|
-
const variableIdentifier = variable.getIdentifier(),
|
|
68
|
-
comparesToVariable = (this.identifier === variableIdentifier);
|
|
69
|
-
|
|
70
|
-
return comparesToVariable;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
compareParamter(parameter) {
|
|
74
|
-
const identifier = parameter.getIdentifier(),
|
|
75
|
-
identifierEqualTo = this.isIdentifierEqualTo(identifier),
|
|
76
|
-
comparesToParamter = identifierEqualTo; ///
|
|
77
|
-
|
|
78
|
-
return comparesToParamter;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
compareVariableIdentifier(variableIdentifier) {
|
|
82
|
-
const identifier = variableIdentifier, ///
|
|
83
|
-
identifierEqualTo = this.isIdentifierEqualTo(identifier),
|
|
84
|
-
comparesToVariableIdentifier = identifierEqualTo; ///
|
|
85
|
-
|
|
86
|
-
return comparesToVariableIdentifier;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
validate(context) {
|
|
90
|
-
let variable = null;
|
|
91
|
-
|
|
92
|
-
const variableString = this.getString(); ///
|
|
93
|
-
|
|
94
|
-
context.trace(`Validating the '${variableString}' variable...`);
|
|
95
|
-
|
|
96
|
-
let validates = false;
|
|
97
|
-
|
|
98
|
-
const variableIdentifier = this.identifier, ///
|
|
99
|
-
declaredVariable = context.findDeclaredVariableByVariableIdentifier(variableIdentifier);
|
|
100
|
-
|
|
101
|
-
if (declaredVariable !== null) {
|
|
102
|
-
const type = declaredVariable.getType(),
|
|
103
|
-
typeString = type.getString(),
|
|
104
|
-
provisional = declaredVariable.isProvisional(),
|
|
105
|
-
variableString = this.getString(), ///
|
|
106
|
-
provisinallyString = provisionallyStringFromProvisional(provisional);
|
|
107
|
-
|
|
108
|
-
context.trace(`Setting the '${variableString}' variable's type to the '${typeString}' type${provisinallyString}.`);
|
|
109
|
-
|
|
110
|
-
this.type = type;
|
|
111
|
-
|
|
112
|
-
this.provisional = provisional;
|
|
113
|
-
|
|
114
|
-
variable = this;
|
|
115
|
-
|
|
116
|
-
validates = true;
|
|
117
|
-
} else {
|
|
118
|
-
context.debug(`The '${variableString}' variable is not present.`);
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
if (validates) {
|
|
122
|
-
context.debug(`...validated the '${variableString}' variable.`);
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
return variable;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
unifyTerm(term, generalContext, specificContext) {
|
|
129
|
-
let termUnifies = false;
|
|
130
|
-
|
|
131
|
-
const context = specificContext, ///
|
|
132
|
-
termString = term.getString(),
|
|
133
|
-
variableString = this.getString(); ///
|
|
134
|
-
|
|
135
|
-
context.trace(`Unifying the '${termString}' term with the '${variableString}' variable...`);
|
|
136
|
-
|
|
137
|
-
const variable = this, ///
|
|
138
|
-
termVariableUnifies = this.unifyTermVariable(term, generalContext, specificContext);
|
|
139
|
-
|
|
140
|
-
if (termVariableUnifies) {
|
|
141
|
-
termUnifies = true;
|
|
142
|
-
} else {
|
|
143
|
-
const variableNode = variable.getNode(),
|
|
144
|
-
derivedSubstitution = context.findDerivedSubstitutionByVariableNode(variableNode);
|
|
145
|
-
|
|
146
|
-
if (derivedSubstitution !== null) {
|
|
147
|
-
const derivedSubstitutionTermComparesToTerm = derivedSubstitution.compareTerm(term, context);
|
|
148
|
-
|
|
149
|
-
if (derivedSubstitutionTermComparesToTerm) {
|
|
150
|
-
const derivedSubstitutionString = derivedSubstitution.getString();
|
|
151
|
-
|
|
152
|
-
context.trace(`The '${derivedSubstitutionString}' derived substitution is already present.`);
|
|
153
|
-
|
|
154
|
-
termUnifies = true;
|
|
155
|
-
}
|
|
156
|
-
} else {
|
|
157
|
-
const { TermSubstitution } = elements;
|
|
158
|
-
|
|
159
|
-
let termSubstitution;
|
|
160
|
-
|
|
161
|
-
termSubstitution = TermSubstitution.fromTermAndVariable(term, variable, generalContext, specificContext);
|
|
162
|
-
|
|
163
|
-
termSubstitution = termSubstitution.validate(context); ///
|
|
164
|
-
|
|
165
|
-
const derivedSubstitution = termSubstitution; ///
|
|
166
|
-
|
|
167
|
-
context.addDerivedSubstitution(derivedSubstitution);
|
|
168
|
-
|
|
169
|
-
termUnifies = true;
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
if (termUnifies) {
|
|
174
|
-
context.debug(`...unified the '${termString}' term with the '${variableString}' variable.`);
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
return termUnifies;
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
unifyTermVariable(term, generalContext, specificContext) {
|
|
181
|
-
let termVariableUnifies = false;
|
|
182
|
-
|
|
183
|
-
const context = specificContext, ///
|
|
184
|
-
termString = term.getString(),
|
|
185
|
-
variableString = this.getString(); ///
|
|
186
|
-
|
|
187
|
-
context.trace(`Unifying the '${termString}' term's variable with the '${variableString}' variable...`);
|
|
188
|
-
|
|
189
|
-
const generalContextFilePath = generalContext.getFilePath(),
|
|
190
|
-
specificContextFilePath = specificContext.getFilePath();
|
|
191
|
-
|
|
192
|
-
if (generalContextFilePath === specificContextFilePath) {
|
|
193
|
-
const variableNode = this.getVariableNode(), ///
|
|
194
|
-
variableNodeMatches = term.matchVariableNode(variableNode);
|
|
195
|
-
|
|
196
|
-
if (variableNodeMatches) {
|
|
197
|
-
termVariableUnifies = true;
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
if (termVariableUnifies) {
|
|
202
|
-
context.debug(`...unified the '${termString}' term's variable with the '${variableString}' variable.`);
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
return termVariableUnifies;
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
toJSON() {
|
|
209
|
-
const typeJSON = typeToTypeJSON(this.type),
|
|
210
|
-
provisionalJSON = provisionalToProvisionalJSON(this.provisional),
|
|
211
|
-
string = this.getString();
|
|
212
|
-
|
|
213
|
-
let breakPoint;
|
|
214
|
-
|
|
215
|
-
breakPoint = this.getBreakPoint();
|
|
216
|
-
|
|
217
|
-
const breakPointJSON = breakPointToBreakPointJSON(breakPoint);
|
|
218
|
-
|
|
219
|
-
breakPoint = breakPointJSON; ///
|
|
220
|
-
|
|
221
|
-
const type = typeJSON, ///
|
|
222
|
-
provisional = provisionalJSON, ///
|
|
223
|
-
json = {
|
|
224
|
-
string,
|
|
225
|
-
breakPoint,
|
|
226
|
-
type,
|
|
227
|
-
provisional
|
|
228
|
-
};
|
|
229
|
-
|
|
230
|
-
return json;
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
static name = "Variable";
|
|
234
|
-
|
|
235
|
-
static fromJSON(json, context) {
|
|
236
|
-
return instantiate((context) => {
|
|
237
|
-
const { string } = json,
|
|
238
|
-
variableNode = instantiateVariable(string, context),
|
|
239
|
-
node = variableNode, ///
|
|
240
|
-
breakPoint = breakPointFromJSON(json),
|
|
241
|
-
type = typeFromJSON(json, context),
|
|
242
|
-
identifier = identifierFromVariableNode(variableNode, context),
|
|
243
|
-
provisional = provisionalFromJSON(json, context);
|
|
244
|
-
|
|
245
|
-
context = null;
|
|
246
|
-
|
|
247
|
-
const variable = new Variable(context, string, node, breakPoint, type, identifier, provisional);
|
|
248
|
-
|
|
249
|
-
return variable;
|
|
250
|
-
}, context);
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
static fromTerm(term, context) {
|
|
254
|
-
const termNode = term.getNode(),
|
|
255
|
-
variable = variableFromTermNode(termNode, context);
|
|
256
|
-
|
|
257
|
-
return variable;
|
|
258
|
-
}
|
|
259
|
-
});
|
package/src/elements.js
DELETED
package/src/metaTypeNames.js
DELETED
package/src/metaTypes.js
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import elements from "./elements";
|
|
4
|
-
|
|
5
|
-
import { FRAME_META_TYPE_NAME, REFERENCE_META_TYPE_NAME, STATEMENT_META_TYPE_NAME } from "./metaTypeNames";
|
|
6
|
-
|
|
7
|
-
let frameMetaType = null,
|
|
8
|
-
referenceMetaType = null,
|
|
9
|
-
statementMetaType = null;
|
|
10
|
-
|
|
11
|
-
export function getMetaTypes() {
|
|
12
|
-
const frameMetaType = frameMetaTypeFromNothing(),
|
|
13
|
-
referenceMetaType = referenceMetaTypeFromNothing(),
|
|
14
|
-
statementMetaType = statementMetaTypeFromNothing(),
|
|
15
|
-
metaTypes = [
|
|
16
|
-
frameMetaType,
|
|
17
|
-
referenceMetaType,
|
|
18
|
-
statementMetaType
|
|
19
|
-
];
|
|
20
|
-
|
|
21
|
-
return metaTypes;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export function findMetaTypeByMetaTypeName(metaTypeName) {
|
|
25
|
-
const metaTypes = getMetaTypes(),
|
|
26
|
-
metaType = metaTypes.find((metaType) => {
|
|
27
|
-
const metaTypeComparesToMetaTypeName = metaType.compareMetaTypeName(metaTypeName);
|
|
28
|
-
|
|
29
|
-
if (metaTypeComparesToMetaTypeName) {
|
|
30
|
-
return true;
|
|
31
|
-
}
|
|
32
|
-
}) || null;
|
|
33
|
-
|
|
34
|
-
return metaType;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
function frameMetaTypeFromNothing() {
|
|
38
|
-
if (frameMetaType === null) {
|
|
39
|
-
const { MetaType } = elements,
|
|
40
|
-
name = FRAME_META_TYPE_NAME, ///
|
|
41
|
-
context = null;
|
|
42
|
-
|
|
43
|
-
frameMetaType = MetaType.fromName(name, context);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
return frameMetaType;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
function statementMetaTypeFromNothing() {
|
|
50
|
-
if (statementMetaType === null) {
|
|
51
|
-
const { MetaType } = elements,
|
|
52
|
-
name = STATEMENT_META_TYPE_NAME, ///
|
|
53
|
-
context = null;
|
|
54
|
-
|
|
55
|
-
statementMetaType = MetaType.fromName(name, context);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
return statementMetaType;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
function referenceMetaTypeFromNothing() {
|
|
62
|
-
if (referenceMetaType === null) {
|
|
63
|
-
const { MetaType } = elements,
|
|
64
|
-
name = REFERENCE_META_TYPE_NAME, ///
|
|
65
|
-
context = null;
|
|
66
|
-
|
|
67
|
-
referenceMetaType = MetaType.fromName(name, context);
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
return referenceMetaType;
|
|
71
|
-
}
|
package/src/node/argument.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { NonTerminalNode } from "occam-languages";
|
|
4
|
-
|
|
5
|
-
import { TERM_RULE_NAME, TYPE_RULE_NAME } from "../ruleNames";
|
|
6
|
-
|
|
7
|
-
export default class ArgumentNode extends NonTerminalNode {
|
|
8
|
-
getTermNode() {
|
|
9
|
-
const ruleName = TERM_RULE_NAME,
|
|
10
|
-
termNode = this.getNodeByRuleName(ruleName);
|
|
11
|
-
|
|
12
|
-
return termNode;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
getTypeNode() {
|
|
16
|
-
const ruleName = TYPE_RULE_NAME,
|
|
17
|
-
typeNode = this.getNodeByRuleName(ruleName);
|
|
18
|
-
|
|
19
|
-
return typeNode;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
getSingularTermNode() {
|
|
23
|
-
const ruleName = TERM_RULE_NAME,
|
|
24
|
-
singularTermNode = this.getSingularNodeByRuleName(ruleName);
|
|
25
|
-
|
|
26
|
-
return singularTermNode;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(ArgumentNode, ruleName, childNodes, opacity, precedence); }
|
|
30
|
-
}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import AssertionNode from "../../node/assertion";
|
|
4
|
-
|
|
5
|
-
import { MISSING } from "../../constants";
|
|
6
|
-
import { TERM_RULE_NAME, FRAME_RULE_NAME, STATEMENT_RULE_NAME } from "../../ruleNames";
|
|
7
|
-
|
|
8
|
-
export default class ContainedAssertionNode extends AssertionNode {
|
|
9
|
-
isNegated() {
|
|
10
|
-
let negated = false;
|
|
11
|
-
|
|
12
|
-
this.someChildNode((childNode) => {
|
|
13
|
-
const childNodeTerminalNode = childNode.isTerminalNode();
|
|
14
|
-
|
|
15
|
-
if (childNodeTerminalNode) {
|
|
16
|
-
const terminalNode = childNode, ///
|
|
17
|
-
content = terminalNode.getContent(),
|
|
18
|
-
contentMessing = (content === MISSING);
|
|
19
|
-
|
|
20
|
-
if (contentMessing) {
|
|
21
|
-
negated = true;
|
|
22
|
-
|
|
23
|
-
return true;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
return negated;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
getTermNode() {
|
|
32
|
-
const ruleName = TERM_RULE_NAME,
|
|
33
|
-
termNode = this.getNodeByRuleName(ruleName);
|
|
34
|
-
|
|
35
|
-
return termNode;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
getFrameNode() {
|
|
39
|
-
const ruleName = FRAME_RULE_NAME,
|
|
40
|
-
frameNode = this.getNodeByRuleName(ruleName);
|
|
41
|
-
|
|
42
|
-
return frameNode;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
getStatementNode() {
|
|
46
|
-
const ruleName = STATEMENT_RULE_NAME,
|
|
47
|
-
statementNode = this.getNodeByRuleName(ruleName);
|
|
48
|
-
|
|
49
|
-
return statementNode;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return AssertionNode.fromRuleNameChildNodesOpacityAndPrecedence(ContainedAssertionNode, ruleName, childNodes, opacity, precedence); }
|
|
53
|
-
}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import AssertionNode from "../../node/assertion";
|
|
4
|
-
|
|
5
|
-
import { UNDEFINED } from "../../constants";
|
|
6
|
-
import { FRAME_RULE_NAME, TERM_RULE_NAME } from "../../ruleNames";
|
|
7
|
-
|
|
8
|
-
export default class DefinedAssertionNode extends AssertionNode {
|
|
9
|
-
isNegated() {
|
|
10
|
-
let negated = false;
|
|
11
|
-
|
|
12
|
-
this.someChildNode((childNode) => {
|
|
13
|
-
const childNodeTerminalNode = childNode.isTerminalNode();
|
|
14
|
-
|
|
15
|
-
if (childNodeTerminalNode) {
|
|
16
|
-
const terminalNode = childNode, ///
|
|
17
|
-
content = terminalNode.getContent(),
|
|
18
|
-
contentUndefined = (content === UNDEFINED);
|
|
19
|
-
|
|
20
|
-
if (contentUndefined) {
|
|
21
|
-
negated = true;
|
|
22
|
-
|
|
23
|
-
return true;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
return negated;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
getTermNode() {
|
|
32
|
-
const ruleName = TERM_RULE_NAME,
|
|
33
|
-
termNode = this.getNodeByRuleName(ruleName);
|
|
34
|
-
|
|
35
|
-
return termNode;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
getFrameNode() {
|
|
39
|
-
const ruleName = FRAME_RULE_NAME,
|
|
40
|
-
frameNode = this.getNodeByRuleName(ruleName);
|
|
41
|
-
|
|
42
|
-
return frameNode;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return AssertionNode.fromRuleNameChildNodesOpacityAndPrecedence(DefinedAssertionNode, ruleName, childNodes, opacity, precedence); }
|
|
46
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import AssertionNode from "../../node/assertion";
|
|
4
|
-
|
|
5
|
-
import { TERM_RULE_NAME, FRAME_RULE_NAME, PROPERTY_RELATION_RULE_NAME } from "../../ruleNames";
|
|
6
|
-
|
|
7
|
-
export default class PropertyAssertionNode extends AssertionNode {
|
|
8
|
-
getTermNode() {
|
|
9
|
-
const ruleName = TERM_RULE_NAME,
|
|
10
|
-
termNode = this.getNodeByRuleName(ruleName);
|
|
11
|
-
|
|
12
|
-
return termNode;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
getFrameNode() {
|
|
16
|
-
const ruleName = FRAME_RULE_NAME,
|
|
17
|
-
propertyRelationNode = this.getNodeByRuleName(ruleName);
|
|
18
|
-
|
|
19
|
-
return propertyRelationNode;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
getPropertyRelationNode() {
|
|
23
|
-
const ruleName = PROPERTY_RELATION_RULE_NAME,
|
|
24
|
-
propertyRelationNode = this.getNodeByRuleName(ruleName);
|
|
25
|
-
|
|
26
|
-
return propertyRelationNode;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return AssertionNode.fromRuleNameChildNodesOpacityAndPrecedence(PropertyAssertionNode, ruleName, childNodes, opacity, precedence); }
|
|
30
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import AssertionNode from "../../node/assertion";
|
|
4
|
-
|
|
5
|
-
import { SIGNATURE_RULE_NAME, METAVARIABLE_RULE_NAME } from "../../ruleNames";
|
|
6
|
-
|
|
7
|
-
export default class SignatureAssertionNode extends AssertionNode {
|
|
8
|
-
getSignatureNode() {
|
|
9
|
-
const ruleName = SIGNATURE_RULE_NAME,
|
|
10
|
-
signatureNode = this.getNodeByRuleName(ruleName);
|
|
11
|
-
|
|
12
|
-
return signatureNode;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
getMetavariableNode() {
|
|
16
|
-
const ruleName = METAVARIABLE_RULE_NAME,
|
|
17
|
-
metavariableNode = this.getNodeByRuleName(ruleName);
|
|
18
|
-
|
|
19
|
-
return metavariableNode;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return AssertionNode.fromRuleNameChildNodesOpacityAndPrecedence(SignatureAssertionNode, ruleName, childNodes, opacity, precedence); }
|
|
23
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import AssertionNode from "../../node/assertion";
|
|
4
|
-
|
|
5
|
-
import { STATEMENT_RULE_NAME } from "../../ruleNames";
|
|
6
|
-
|
|
7
|
-
export default class SubproofAssertionNode extends AssertionNode {
|
|
8
|
-
getStatementNodes() {
|
|
9
|
-
const ruleName = STATEMENT_RULE_NAME,
|
|
10
|
-
statementNodes = this.getNodesByRuleName(ruleName);
|
|
11
|
-
|
|
12
|
-
return statementNodes;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return AssertionNode.fromRuleNameChildNodesOpacityAndPrecedence(SubproofAssertionNode, ruleName, childNodes, opacity, precedence); }
|
|
16
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import AssertionNode from "../../node/assertion";
|
|
4
|
-
|
|
5
|
-
import { TERM_RULE_NAME, TYPE_RULE_NAME } from "../../ruleNames";
|
|
6
|
-
|
|
7
|
-
export default class TypeAssertionNode extends AssertionNode {
|
|
8
|
-
getTermNode() {
|
|
9
|
-
const ruleName = TERM_RULE_NAME,
|
|
10
|
-
termNode = this.getNodeByRuleName(ruleName);
|
|
11
|
-
|
|
12
|
-
return termNode;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
getTypeNode() {
|
|
16
|
-
const ruleName = TYPE_RULE_NAME,
|
|
17
|
-
typeNode = this.getNodeByRuleName(ruleName);
|
|
18
|
-
|
|
19
|
-
return typeNode;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
static fromRuleNameChildNodesOpacityAndPrecedence(ruleName, childNodes, opacity, precedence) { return AssertionNode.fromRuleNameChildNodesOpacityAndPrecedence(TypeAssertionNode, ruleName, childNodes, opacity, precedence); }
|
|
23
|
-
}
|
package/src/node/assertion.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
import { NonTerminalNode } from "occam-languages";
|
|
4
|
-
|
|
5
|
-
export default class AssertionNode extends NonTerminalNode {
|
|
6
|
-
static fromRuleNameChildNodesOpacityAndPrecedence(Class, ruleName, childNodes, opacity, precedence) { return NonTerminalNode.fromRuleNameChildNodesOpacityAndPrecedence(Class, ruleName, childNodes, opacity, precedence); }
|
|
7
|
-
}
|