occam-verify-cli 0.0.308 → 0.0.310
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/bin/abbreviations.js +2 -4
- package/bin/main.js +10 -10
- package/bin/options.js +1 -3
- package/bin/utilities/logging.js +42 -0
- package/bin/utilities/release.js +77 -0
- package/lib/context/file.js +33 -16
- package/lib/context/metaproof.js +13 -13
- package/lib/context/proof.js +13 -13
- package/lib/context/release.js +38 -68
- package/lib/mixins/log.js +41 -0
- package/lib/utilities/customGrammar.js +32 -0
- package/lib/utilities/tokens.js +63 -0
- package/lib/verify/assertion/type.js +4 -4
- package/lib/verify/axiom.js +3 -3
- package/lib/verify/label.js +2 -2
- package/lib/verify/metastatement/qualified.js +2 -2
- package/lib/verify/metastatement/unqualified.js +2 -2
- package/lib/verify/release.js +2 -2
- package/lib/verify/rule.js +3 -3
- package/lib/verify/statement.js +3 -3
- package/lib/verify/statementAsCombinator.js +4 -4
- package/lib/verify/term.js +2 -2
- package/lib/verify/termAsConstructor.js +7 -7
- package/lib/verify/termAsVariable.js +2 -2
- package/lib/verify/type.js +5 -5
- package/lib/verify/variable.js +4 -4
- package/package.json +2 -2
- package/src/context/file.js +26 -10
- package/src/context/metaproof.js +6 -6
- package/src/context/proof.js +6 -6
- package/src/context/release.js +38 -54
- package/src/mixins/log.js +28 -0
- package/src/utilities/customGrammar.js +27 -0
- package/src/utilities/tokens.js +67 -0
- package/src/verify/assertion/type.js +3 -3
- package/src/verify/axiom.js +2 -2
- package/src/verify/label.js +1 -1
- package/src/verify/metastatement/qualified.js +1 -1
- package/src/verify/metastatement/unqualified.js +1 -1
- package/src/verify/release.js +1 -1
- package/src/verify/rule.js +2 -2
- package/src/verify/statement.js +2 -2
- package/src/verify/statementAsCombinator.js +3 -3
- package/src/verify/term.js +1 -1
- package/src/verify/termAsConstructor.js +6 -6
- package/src/verify/termAsVariable.js +1 -1
- package/src/verify/type.js +4 -4
- package/src/verify/variable.js +3 -3
- package/bin/loadReleaseContexts.js +0 -68
package/src/verify/type.js
CHANGED
|
@@ -11,7 +11,7 @@ export default function verifyType(typeNode, superTypeNode, context) {
|
|
|
11
11
|
typePresent = context.isTypePresentByTypeName(typeName);
|
|
12
12
|
|
|
13
13
|
if (typePresent) {
|
|
14
|
-
context.error(`The type '${typeName}' is already present
|
|
14
|
+
context.error(`The type '${typeName}' is already present.`, typeNode);
|
|
15
15
|
} else {
|
|
16
16
|
const superTypeName = typeNameFromTypeNode(superTypeNode);
|
|
17
17
|
|
|
@@ -23,12 +23,12 @@ export default function verifyType(typeNode, superTypeNode, context) {
|
|
|
23
23
|
|
|
24
24
|
typeVerified = true;
|
|
25
25
|
|
|
26
|
-
context.info(`Verified the '${typeString}' type
|
|
26
|
+
context.info(`Verified the '${typeString}' type.`, typeNode);
|
|
27
27
|
} else {
|
|
28
28
|
const superType = context.findTypeByTypeName(superTypeName);
|
|
29
29
|
|
|
30
30
|
if (superType === null) {
|
|
31
|
-
context.error(`The super-type '${superTypeName}' is missing
|
|
31
|
+
context.error(`The super-type '${superTypeName}' is missing.`, typeNode);
|
|
32
32
|
} else {
|
|
33
33
|
const type = Type.fromTypeNameAndSuperType(typeName, superType),
|
|
34
34
|
typeString = type.asString();
|
|
@@ -37,7 +37,7 @@ export default function verifyType(typeNode, superTypeNode, context) {
|
|
|
37
37
|
|
|
38
38
|
typeVerified = true;
|
|
39
39
|
|
|
40
|
-
context.info(`Verified the '${typeString}' type
|
|
40
|
+
context.info(`Verified the '${typeString}' type.`, typeNode);
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
}
|
package/src/verify/variable.js
CHANGED
|
@@ -11,7 +11,7 @@ export default function verifyVariable(variableNode, typeNode, context) {
|
|
|
11
11
|
variablePresent = context.isVariablePresentByVariableName(variableName);
|
|
12
12
|
|
|
13
13
|
if (variablePresent) {
|
|
14
|
-
context.error(`The variable '${variableName}' is already present
|
|
14
|
+
context.error(`The variable '${variableName}' is already present.`, variableNode);
|
|
15
15
|
} else {
|
|
16
16
|
let variable = null;
|
|
17
17
|
|
|
@@ -26,7 +26,7 @@ export default function verifyVariable(variableNode, typeNode, context) {
|
|
|
26
26
|
const type = context.findTypeByTypeName(typeName);
|
|
27
27
|
|
|
28
28
|
if (type === null) {
|
|
29
|
-
context.error(`The '${variableName}' variable's '${typeName}' type is missing
|
|
29
|
+
context.error(`The '${variableName}' variable's '${typeName}' type is missing.`, variableNode);
|
|
30
30
|
} else {
|
|
31
31
|
const name = variableName; ///
|
|
32
32
|
|
|
@@ -41,7 +41,7 @@ export default function verifyVariable(variableNode, typeNode, context) {
|
|
|
41
41
|
|
|
42
42
|
variableVerified = true;
|
|
43
43
|
|
|
44
|
-
context.info(`Verified the '${variableString}' variable
|
|
44
|
+
context.info(`Verified the '${variableString}' variable.`, variableNode);
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
const { ReleaseContext } = require("../lib/index"),
|
|
4
|
-
{ fileSystemUtilities } = require("occam-file-system"),
|
|
5
|
-
{ arrayUtilities, loggingUtilities } = require("necessary");
|
|
6
|
-
|
|
7
|
-
const { PERIOD } = require("./constants");
|
|
8
|
-
|
|
9
|
-
const { log } = loggingUtilities,
|
|
10
|
-
{ first } = arrayUtilities,
|
|
11
|
-
{ loadRelease } = fileSystemUtilities;
|
|
12
|
-
|
|
13
|
-
function loadReleaseContexts(releaseName, releaseContextMap = {}, dependentReleaseNames = []) {
|
|
14
|
-
const cyclicDependencyExists = checkCyclicDependencyExists(releaseName, dependentReleaseNames);
|
|
15
|
-
|
|
16
|
-
if (!cyclicDependencyExists) {
|
|
17
|
-
const releaseContext = releaseContextMap[releaseName] || null;
|
|
18
|
-
|
|
19
|
-
if (releaseContext === null) {
|
|
20
|
-
const topmostDirectoryName = releaseName, ///
|
|
21
|
-
projectsDirectoryPath = PERIOD,
|
|
22
|
-
release = loadRelease(topmostDirectoryName, projectsDirectoryPath);
|
|
23
|
-
|
|
24
|
-
if (release === null) {
|
|
25
|
-
log.error(`The '${releaseName}' package cannot be loaded.`);
|
|
26
|
-
} else {
|
|
27
|
-
const releaseContext = ReleaseContext.fromLogAndRelease(log, release);
|
|
28
|
-
|
|
29
|
-
releaseContextMap[releaseName] = releaseContext;
|
|
30
|
-
|
|
31
|
-
const dependencies = releaseContext.getDependencies(),
|
|
32
|
-
dependencyReleaseNames = dependencies.mapDependency((dependency) => {
|
|
33
|
-
const dependencyName = dependency.getName(),
|
|
34
|
-
dependencyReleaseName = dependencyName; ///
|
|
35
|
-
|
|
36
|
-
return dependencyReleaseName;
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
dependentReleaseNames = [ ...dependentReleaseNames, releaseName ]; ///
|
|
40
|
-
|
|
41
|
-
dependencyReleaseNames.forEach((dependencyReleaseName) => {
|
|
42
|
-
const releaseName = dependencyReleaseName; ///
|
|
43
|
-
|
|
44
|
-
loadReleaseContexts(releaseName, releaseContextMap, dependentReleaseNames);
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
return releaseContextMap;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
module.exports = loadReleaseContexts;
|
|
54
|
-
|
|
55
|
-
function checkCyclicDependencyExists(releaseName, dependentReleaseNames) {
|
|
56
|
-
const dependentReleaseNamesIncludesReleaseName = dependentReleaseNames.includes(releaseName),
|
|
57
|
-
cyclicDependencyExists = dependentReleaseNamesIncludesReleaseName; ///
|
|
58
|
-
|
|
59
|
-
if (cyclicDependencyExists) {
|
|
60
|
-
const firstDependentReleaseName = first(dependentReleaseNames),
|
|
61
|
-
releaseNames = dependentReleaseNames.concat(firstDependentReleaseName),
|
|
62
|
-
releaseNamesString = releaseNames.join(`' -> '`);
|
|
63
|
-
|
|
64
|
-
log.error(`There is a cyclic dependency: '${releaseNamesString}'.`);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
return cyclicDependencyExists;
|
|
68
|
-
}
|