occam-verify-cli 0.0.375 → 0.0.377
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/context/file.js +28 -49
- package/lib/context/release/directory.js +73 -79
- package/lib/context/release/file.js +64 -84
- package/lib/context/release.js +8 -8
- package/lib/label.js +2 -2
- package/lib/ruleNames.js +5 -1
- package/lib/verify/release.js +4 -6
- package/package.json +1 -1
- package/src/context/file.js +34 -37
- package/src/context/release/directory.js +84 -96
- package/src/context/release/file.js +84 -90
- package/src/context/release.js +6 -6
- package/src/label.js +2 -2
- package/src/ruleNames.js +1 -0
- package/src/verify/release.js +6 -8
package/src/context/file.js
CHANGED
|
@@ -39,39 +39,36 @@ export default class FileContext {
|
|
|
39
39
|
return this.variables;
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
getLabels(
|
|
42
|
+
getLabels(includeRelease = true) {
|
|
43
43
|
const labels = [];
|
|
44
44
|
|
|
45
|
-
|
|
46
|
-
const releaseContextLabels = this.releaseContext.getLabels();
|
|
47
|
-
|
|
48
|
-
push(labels, releaseContextLabels);
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
const rules = this.getRules(),
|
|
52
|
-
axioms = this.getAxioms();
|
|
53
|
-
|
|
54
|
-
rules.forEach((rule) => {
|
|
45
|
+
this.rules.forEach((rule) => {
|
|
55
46
|
const ruleLabels = rule.getLabels();
|
|
56
47
|
|
|
57
48
|
push(labels, ruleLabels);
|
|
58
49
|
});
|
|
59
50
|
|
|
60
|
-
axioms.forEach((axiom) => {
|
|
51
|
+
this.axioms.forEach((axiom) => {
|
|
61
52
|
const axiomLabels = axiom.getLabels();
|
|
62
53
|
|
|
63
54
|
push(labels, axiomLabels);
|
|
64
55
|
});
|
|
65
56
|
|
|
57
|
+
if (includeRelease) {
|
|
58
|
+
const releaseContextLabels = this.releaseContext.getLabels();
|
|
59
|
+
|
|
60
|
+
push(labels, releaseContextLabels);
|
|
61
|
+
}
|
|
62
|
+
|
|
66
63
|
return labels;
|
|
67
64
|
}
|
|
68
65
|
|
|
69
|
-
getRules(
|
|
70
|
-
const rules = [
|
|
71
|
-
|
|
72
|
-
|
|
66
|
+
getRules(includeRelease = true) {
|
|
67
|
+
const rules = []
|
|
68
|
+
|
|
69
|
+
push(rules, this.rules);
|
|
73
70
|
|
|
74
|
-
if (
|
|
71
|
+
if (includeRelease) {
|
|
75
72
|
const releaseContextRules = this.releaseContext.getRules();
|
|
76
73
|
|
|
77
74
|
push(rules, releaseContextRules);
|
|
@@ -80,12 +77,12 @@ export default class FileContext {
|
|
|
80
77
|
return rules;
|
|
81
78
|
}
|
|
82
79
|
|
|
83
|
-
getTypes(
|
|
84
|
-
const types = [
|
|
85
|
-
...this.types
|
|
86
|
-
];
|
|
80
|
+
getTypes(includeRelease = true) {
|
|
81
|
+
const types = [];
|
|
87
82
|
|
|
88
|
-
|
|
83
|
+
push(types, this.types);
|
|
84
|
+
|
|
85
|
+
if (includeRelease) {
|
|
89
86
|
const releaseContextTypes = this.releaseContext.getTypes();
|
|
90
87
|
|
|
91
88
|
push(types, releaseContextTypes);
|
|
@@ -94,12 +91,12 @@ export default class FileContext {
|
|
|
94
91
|
return types;
|
|
95
92
|
}
|
|
96
93
|
|
|
97
|
-
getAxioms(
|
|
98
|
-
const axioms = [
|
|
99
|
-
|
|
100
|
-
|
|
94
|
+
getAxioms(includeRelease = true) {
|
|
95
|
+
const axioms = [];
|
|
96
|
+
|
|
97
|
+
push(axioms, this.axioms);
|
|
101
98
|
|
|
102
|
-
if (
|
|
99
|
+
if (includeRelease) {
|
|
103
100
|
const releaseContextAxioms = this.releaseContext.getAxioms();
|
|
104
101
|
|
|
105
102
|
push(axioms, releaseContextAxioms);
|
|
@@ -108,12 +105,12 @@ export default class FileContext {
|
|
|
108
105
|
return axioms;
|
|
109
106
|
}
|
|
110
107
|
|
|
111
|
-
getCombinators(
|
|
112
|
-
const combinators = [
|
|
113
|
-
...this.combinators
|
|
114
|
-
];
|
|
108
|
+
getCombinators(includeRelease = true) {
|
|
109
|
+
const combinators = [];
|
|
115
110
|
|
|
116
|
-
|
|
111
|
+
push(combinators, this.combinators);
|
|
112
|
+
|
|
113
|
+
if (includeRelease) {
|
|
117
114
|
const releaseContextCombinators = this.releaseContext.getCombinators();
|
|
118
115
|
|
|
119
116
|
push(combinators, releaseContextCombinators);
|
|
@@ -122,12 +119,12 @@ export default class FileContext {
|
|
|
122
119
|
return combinators;
|
|
123
120
|
}
|
|
124
121
|
|
|
125
|
-
getConstructors(
|
|
126
|
-
const constructors = [
|
|
127
|
-
|
|
128
|
-
|
|
122
|
+
getConstructors(includeRelease = true) {
|
|
123
|
+
const constructors = [];
|
|
124
|
+
|
|
125
|
+
push(constructors, this.constructors);
|
|
129
126
|
|
|
130
|
-
if (
|
|
127
|
+
if (includeRelease) {
|
|
131
128
|
const releaseContextConstructors = this.releaseContext.getConstructors();
|
|
132
129
|
|
|
133
130
|
push(constructors, releaseContextConstructors);
|
|
@@ -6,8 +6,8 @@ import { push } from "../../utilities/array";
|
|
|
6
6
|
import { customGrammarFromNameAndEntries } from "../../utilities/customGrammar";
|
|
7
7
|
|
|
8
8
|
export default class DirectoryReleaseContext extends ReleaseContext {
|
|
9
|
-
constructor(log, name, entries, callbacks, verified, customGrammar, florenceLexer, florenceParser,
|
|
10
|
-
super(log, name, entries, callbacks, verified, customGrammar, florenceLexer, florenceParser,
|
|
9
|
+
constructor(log, name, entries, callbacks, verified, customGrammar, florenceLexer, florenceParser, dependencyReleaseContexts, fileContexts) {
|
|
10
|
+
super(log, name, entries, callbacks, verified, customGrammar, florenceLexer, florenceParser, dependencyReleaseContexts);
|
|
11
11
|
|
|
12
12
|
this.fileContexts = fileContexts;
|
|
13
13
|
}
|
|
@@ -16,128 +16,118 @@ export default class DirectoryReleaseContext extends ReleaseContext {
|
|
|
16
16
|
return this.fileContexts;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
const
|
|
21
|
-
releaseName = this.getReleaseName(),
|
|
22
|
-
releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
19
|
+
getLabels(includeDependencies = true) {
|
|
20
|
+
const labels = [];
|
|
23
21
|
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
this.fileContexts.forEach((fileContext) => {
|
|
23
|
+
const includeRelease = false,
|
|
24
|
+
fileContextLabels = fileContext.getLabels(includeRelease);
|
|
26
25
|
|
|
27
|
-
|
|
26
|
+
push(labels, fileContextLabels);
|
|
27
|
+
});
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
if (includeDependencies) {
|
|
30
|
+
const dependencyReleaseContexts = this.getDependencyReleaseContexts();
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
dependencyReleaseContexts.forEach((releaseContext) => {
|
|
33
|
+
const includeDependencies = false,
|
|
34
|
+
releaseContextLabels = releaseContext.getLabels(includeDependencies);
|
|
34
35
|
|
|
35
|
-
|
|
36
|
-
const releaseContextTypes = releaseContext.getTypes(releaseNames);
|
|
37
|
-
|
|
38
|
-
push(types, releaseContextTypes);
|
|
36
|
+
push(labels, releaseContextLabels);
|
|
39
37
|
});
|
|
40
38
|
}
|
|
41
39
|
|
|
42
|
-
return
|
|
40
|
+
return labels;
|
|
43
41
|
}
|
|
44
42
|
|
|
45
|
-
|
|
46
|
-
const
|
|
47
|
-
releaseName = this.getReleaseName(),
|
|
48
|
-
releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
43
|
+
getTypes(includeDependencies = true) {
|
|
44
|
+
const types = [];
|
|
49
45
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
const bubble = false;
|
|
46
|
+
this.fileContexts.forEach((fileContext) => {
|
|
47
|
+
const includeRelease = false,
|
|
48
|
+
fileContextTypes = fileContext.getTypes(includeRelease);
|
|
54
49
|
|
|
55
|
-
|
|
56
|
-
|
|
50
|
+
push(types, fileContextTypes);
|
|
51
|
+
});
|
|
57
52
|
|
|
58
|
-
|
|
59
|
-
|
|
53
|
+
if (includeDependencies) {
|
|
54
|
+
const dependencyReleaseContexts = this.getDependencyReleaseContexts();
|
|
60
55
|
|
|
61
|
-
|
|
62
|
-
const
|
|
56
|
+
dependencyReleaseContexts.forEach((releaseContext) => {
|
|
57
|
+
const includeDependencies = false,
|
|
58
|
+
releaseContextTypes = releaseContext.getTypes(includeDependencies);
|
|
63
59
|
|
|
64
|
-
push(
|
|
60
|
+
push(types, releaseContextTypes);
|
|
65
61
|
});
|
|
66
62
|
}
|
|
67
63
|
|
|
68
|
-
return
|
|
64
|
+
return types;
|
|
69
65
|
}
|
|
70
66
|
|
|
71
|
-
|
|
72
|
-
const
|
|
73
|
-
releaseName = this.getReleaseName(),
|
|
74
|
-
releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
75
|
-
|
|
76
|
-
if (!releaseNamesIncludesReleaseName) {
|
|
77
|
-
releaseNames.push(releaseName);
|
|
67
|
+
getRules(includeDependencies = true) {
|
|
68
|
+
const rules = [];
|
|
78
69
|
|
|
79
|
-
|
|
70
|
+
this.fileContexts.forEach((fileContext) => {
|
|
71
|
+
const includeRelease = false,
|
|
72
|
+
fileContextRules = fileContext.getRules(includeRelease);
|
|
80
73
|
|
|
81
|
-
|
|
82
|
-
|
|
74
|
+
push(rules, fileContextRules);
|
|
75
|
+
});
|
|
83
76
|
|
|
84
|
-
|
|
85
|
-
|
|
77
|
+
if (includeDependencies) {
|
|
78
|
+
const dependencyReleaseContexts = this.getDependencyReleaseContexts();
|
|
86
79
|
|
|
87
|
-
|
|
88
|
-
const
|
|
80
|
+
dependencyReleaseContexts.forEach((releaseContext) => {
|
|
81
|
+
const includeDependencies = false,
|
|
82
|
+
releaseContextRules = releaseContext.getRules(includeDependencies);
|
|
89
83
|
|
|
90
|
-
push(
|
|
84
|
+
push(rules, releaseContextRules);
|
|
91
85
|
});
|
|
92
86
|
}
|
|
93
87
|
|
|
94
|
-
return
|
|
88
|
+
return rules;
|
|
95
89
|
}
|
|
96
90
|
|
|
97
|
-
|
|
98
|
-
const
|
|
99
|
-
releaseName = this.getReleaseName(),
|
|
100
|
-
releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
101
|
-
|
|
102
|
-
if (!releaseNamesIncludesReleaseName) {
|
|
103
|
-
releaseNames.push(releaseName);
|
|
91
|
+
getAxioms(includeDependencies = true) {
|
|
92
|
+
const axioms = [];
|
|
104
93
|
|
|
105
|
-
|
|
94
|
+
this.fileContexts.forEach((fileContext) => {
|
|
95
|
+
const includeRelease = false,
|
|
96
|
+
fileContextAxioms = fileContext.getAxioms(includeRelease);
|
|
106
97
|
|
|
107
|
-
|
|
108
|
-
|
|
98
|
+
push(axioms, fileContextAxioms);
|
|
99
|
+
});
|
|
109
100
|
|
|
110
|
-
|
|
111
|
-
|
|
101
|
+
if (includeDependencies) {
|
|
102
|
+
const dependencyReleaseContexts = this.getDependencyReleaseContexts();
|
|
112
103
|
|
|
113
|
-
|
|
114
|
-
const
|
|
104
|
+
dependencyReleaseContexts.forEach((releaseContext) => {
|
|
105
|
+
const includeDependencies = false,
|
|
106
|
+
releaseContextAxioms = releaseContext.getAxioms(includeDependencies);
|
|
115
107
|
|
|
116
|
-
push(
|
|
108
|
+
push(axioms, releaseContextAxioms);
|
|
117
109
|
});
|
|
118
110
|
}
|
|
119
111
|
|
|
120
|
-
return
|
|
112
|
+
return axioms;
|
|
121
113
|
}
|
|
122
114
|
|
|
123
|
-
getCombinators(
|
|
124
|
-
const combinators = []
|
|
125
|
-
releaseName = this.getReleaseName(),
|
|
126
|
-
releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
127
|
-
|
|
128
|
-
if (!releaseNamesIncludesReleaseName) {
|
|
129
|
-
releaseNames.push(releaseName);
|
|
115
|
+
getCombinators(includeDependencies = true) {
|
|
116
|
+
const combinators = [];
|
|
130
117
|
|
|
131
|
-
|
|
118
|
+
this.fileContexts.forEach((fileContext) => {
|
|
119
|
+
const includeRelease = false,
|
|
120
|
+
fileContextCombinators = fileContext.getCombinators(includeRelease);
|
|
132
121
|
|
|
133
|
-
|
|
134
|
-
|
|
122
|
+
push(combinators, fileContextCombinators);
|
|
123
|
+
});
|
|
135
124
|
|
|
136
|
-
|
|
137
|
-
|
|
125
|
+
if (includeDependencies) {
|
|
126
|
+
const dependencyReleaseContexts = this.getDependencyReleaseContexts();
|
|
138
127
|
|
|
139
|
-
|
|
140
|
-
const
|
|
128
|
+
dependencyReleaseContexts.forEach((releaseContext) => {
|
|
129
|
+
const includeDependencies = false,
|
|
130
|
+
releaseContextCombinators = releaseContext.getCombinators(includeDependencies);
|
|
141
131
|
|
|
142
132
|
push(combinators, releaseContextCombinators);
|
|
143
133
|
});
|
|
@@ -146,24 +136,22 @@ export default class DirectoryReleaseContext extends ReleaseContext {
|
|
|
146
136
|
return combinators;
|
|
147
137
|
}
|
|
148
138
|
|
|
149
|
-
getConstructors(
|
|
150
|
-
const constructors = []
|
|
151
|
-
releaseName = this.getReleaseName(),
|
|
152
|
-
releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
153
|
-
|
|
154
|
-
if (!releaseNamesIncludesReleaseName) {
|
|
155
|
-
releaseNames.push(releaseName);
|
|
139
|
+
getConstructors(includeDependencies = true) {
|
|
140
|
+
const constructors = [];
|
|
156
141
|
|
|
157
|
-
|
|
142
|
+
this.fileContexts.forEach((fileContext) => {
|
|
143
|
+
const includeRelease = false,
|
|
144
|
+
fileContextConstructors = fileContext.getConstructors(includeRelease);
|
|
158
145
|
|
|
159
|
-
|
|
160
|
-
|
|
146
|
+
push(constructors, fileContextConstructors);
|
|
147
|
+
});
|
|
161
148
|
|
|
162
|
-
|
|
163
|
-
|
|
149
|
+
if (includeDependencies) {
|
|
150
|
+
const dependencyReleaseContexts = this.getDependencyReleaseContexts();
|
|
164
151
|
|
|
165
|
-
|
|
166
|
-
const
|
|
152
|
+
dependencyReleaseContexts.forEach((releaseContext) => {
|
|
153
|
+
const includeDependencies = false,
|
|
154
|
+
releaseContextConstructors = releaseContext.getConstructors(includeDependencies);
|
|
167
155
|
|
|
168
156
|
push(constructors, releaseContextConstructors);
|
|
169
157
|
});
|
|
@@ -193,9 +181,9 @@ export default class DirectoryReleaseContext extends ReleaseContext {
|
|
|
193
181
|
customGrammar = customGrammarFromNameAndEntries(name, entries),
|
|
194
182
|
florenceLexer = null,
|
|
195
183
|
florenceParser = null,
|
|
196
|
-
|
|
184
|
+
dependencyReleaseContexts = null,
|
|
197
185
|
fileContexts = [],
|
|
198
|
-
directoryReleaseContext = new DirectoryReleaseContext(log, name, entries, callbacks, verified, customGrammar, florenceLexer, florenceParser,
|
|
186
|
+
directoryReleaseContext = new DirectoryReleaseContext(log, name, entries, callbacks, verified, customGrammar, florenceLexer, florenceParser, dependencyReleaseContexts, fileContexts);
|
|
199
187
|
|
|
200
188
|
return directoryReleaseContext;
|
|
201
189
|
}
|
|
@@ -13,8 +13,8 @@ import { customGrammarFromNameAndEntries } from "../../utilities/customGrammar";
|
|
|
13
13
|
import { RULE_KIND, TYPE_KIND, AXIOM_KIND, COMBINATOR_KIND, CONSTRUCTOR_KIND } from "../../kinds";
|
|
14
14
|
|
|
15
15
|
export default class FileReleaseContext extends ReleaseContext {
|
|
16
|
-
constructor(log, name, entries, callbacks, verified, customGrammar, florenceLexer, florenceParser,
|
|
17
|
-
super(log, name, entries, callbacks, verified, customGrammar, florenceLexer, florenceParser,
|
|
16
|
+
constructor(log, name, entries, callbacks, verified, customGrammar, florenceLexer, florenceParser, dependencyReleaseContexts, contextJSON, types, rules, axioms, combinators, constructors) {
|
|
17
|
+
super(log, name, entries, callbacks, verified, customGrammar, florenceLexer, florenceParser, dependencyReleaseContexts);
|
|
18
18
|
|
|
19
19
|
this.types = types;
|
|
20
20
|
this.rules = rules;
|
|
@@ -28,108 +28,103 @@ export default class FileReleaseContext extends ReleaseContext {
|
|
|
28
28
|
return this.contextJSON;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
const
|
|
33
|
-
...this.types
|
|
34
|
-
],
|
|
35
|
-
releaseName = this.getReleaseName(),
|
|
36
|
-
releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
31
|
+
getLabels(includeDependencies = true) {
|
|
32
|
+
const labels = [];
|
|
37
33
|
|
|
38
|
-
|
|
39
|
-
|
|
34
|
+
this.rules.forEach((rule) => {
|
|
35
|
+
const ruleLabels = rule.getLabels();
|
|
40
36
|
|
|
41
|
-
|
|
42
|
-
|
|
37
|
+
push(labels, ruleLabels);
|
|
38
|
+
});
|
|
43
39
|
|
|
44
|
-
|
|
40
|
+
this.axioms.forEach((axiom) => {
|
|
41
|
+
const axiomLabels = axiom.getLabels();
|
|
42
|
+
|
|
43
|
+
push(labels, axiomLabels);
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
if (includeDependencies) {
|
|
47
|
+
const dependencyReleaseContexts = this.getDependencyReleaseContexts();
|
|
48
|
+
|
|
49
|
+
dependencyReleaseContexts.forEach((releaseContext) => {
|
|
50
|
+
const includeDependencies = false,
|
|
51
|
+
releaseContextAxioms = releaseContext.getAxioms(includeDependencies);
|
|
52
|
+
|
|
53
|
+
push(labels, releaseContextAxioms);
|
|
45
54
|
});
|
|
46
55
|
}
|
|
47
56
|
|
|
48
|
-
return
|
|
57
|
+
return labels;
|
|
49
58
|
}
|
|
50
59
|
|
|
51
|
-
|
|
52
|
-
const
|
|
53
|
-
...this.rules
|
|
54
|
-
],
|
|
55
|
-
releaseName = this.getReleaseName(),
|
|
56
|
-
releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
60
|
+
getTypes(includeDependencies = true) {
|
|
61
|
+
const types = [];
|
|
57
62
|
|
|
58
|
-
|
|
59
|
-
releaseNames.push(releaseName);
|
|
63
|
+
push(types, this.types);
|
|
60
64
|
|
|
61
|
-
|
|
62
|
-
|
|
65
|
+
if (includeDependencies) {
|
|
66
|
+
const dependencyReleaseContexts = this.getDependencyReleaseContexts();
|
|
63
67
|
|
|
64
|
-
|
|
68
|
+
dependencyReleaseContexts.forEach((releaseContext) => {
|
|
69
|
+
const includeDependencies = false,
|
|
70
|
+
releaseContextTypes = releaseContext.getTypes(includeDependencies);
|
|
71
|
+
|
|
72
|
+
push(types, releaseContextTypes);
|
|
65
73
|
});
|
|
66
74
|
}
|
|
67
75
|
|
|
68
|
-
return
|
|
76
|
+
return types;
|
|
69
77
|
}
|
|
70
78
|
|
|
71
|
-
|
|
72
|
-
const
|
|
73
|
-
...this.axioms
|
|
74
|
-
],
|
|
75
|
-
releaseName = this.getReleaseName(),
|
|
76
|
-
releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
79
|
+
getRules(includeDependencies = true) {
|
|
80
|
+
const rules = [];
|
|
77
81
|
|
|
78
|
-
|
|
79
|
-
releaseNames.push(releaseName);
|
|
82
|
+
push(rules, this.rules);
|
|
80
83
|
|
|
81
|
-
|
|
82
|
-
|
|
84
|
+
if (includeDependencies) {
|
|
85
|
+
const dependencyReleaseContexts = this.getDependencyReleaseContexts();
|
|
83
86
|
|
|
84
|
-
|
|
87
|
+
dependencyReleaseContexts.forEach((releaseContext) => {
|
|
88
|
+
const includeDependencies = false,
|
|
89
|
+
releaseContextRules = releaseContext.getRules(includeDependencies);
|
|
90
|
+
|
|
91
|
+
push(rules, releaseContextRules);
|
|
85
92
|
});
|
|
86
93
|
}
|
|
87
94
|
|
|
88
|
-
return
|
|
95
|
+
return rules;
|
|
89
96
|
}
|
|
90
97
|
|
|
91
|
-
|
|
92
|
-
const
|
|
93
|
-
releaseName = this.getReleaseName(),
|
|
94
|
-
releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
98
|
+
getAxioms(includeDependencies = true) {
|
|
99
|
+
const axioms = [];
|
|
95
100
|
|
|
96
|
-
this.
|
|
97
|
-
const ruleLabels = rule.getLabels();
|
|
101
|
+
push(axioms, this.axioms);
|
|
98
102
|
|
|
99
|
-
|
|
100
|
-
|
|
103
|
+
if (includeDependencies) {
|
|
104
|
+
const dependencyReleaseContexts = this.getDependencyReleaseContexts();
|
|
101
105
|
|
|
102
|
-
|
|
103
|
-
|
|
106
|
+
dependencyReleaseContexts.forEach((releaseContext) => {
|
|
107
|
+
const includeDependencies = false,
|
|
108
|
+
releaseContextAxioms = releaseContext.getAxioms(includeDependencies);
|
|
104
109
|
|
|
105
|
-
|
|
106
|
-
});
|
|
107
|
-
|
|
108
|
-
if (!releaseNamesIncludesReleaseName) {
|
|
109
|
-
releaseNames.push(releaseName);
|
|
110
|
-
|
|
111
|
-
this.releaseContexts.forEach((releaseContext) => {
|
|
112
|
-
const releaseContextAxioms = releaseContext.getAxioms(releaseNames);
|
|
113
|
-
|
|
114
|
-
push(labels, releaseContextAxioms);
|
|
110
|
+
push(axioms, releaseContextAxioms);
|
|
115
111
|
});
|
|
116
112
|
}
|
|
117
113
|
|
|
118
|
-
return
|
|
114
|
+
return axioms;
|
|
119
115
|
}
|
|
120
116
|
|
|
121
|
-
getCombinators(
|
|
122
|
-
const combinators = [
|
|
123
|
-
...this.combinators
|
|
124
|
-
],
|
|
125
|
-
releaseName = this.getReleaseName(),
|
|
126
|
-
releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
117
|
+
getCombinators(includeDependencies = true) {
|
|
118
|
+
const combinators = [];
|
|
127
119
|
|
|
128
|
-
|
|
129
|
-
releaseNames.push(releaseName);
|
|
120
|
+
push(combinators, this.combinators);
|
|
130
121
|
|
|
131
|
-
|
|
132
|
-
|
|
122
|
+
if (includeDependencies) {
|
|
123
|
+
const dependencyReleaseContexts = this.getDependencyReleaseContexts();
|
|
124
|
+
|
|
125
|
+
dependencyReleaseContexts.forEach((releaseContext) => {
|
|
126
|
+
const includeDependencies = false,
|
|
127
|
+
releaseContextCombinators = releaseContext.getCombinators(includeDependencies);
|
|
133
128
|
|
|
134
129
|
push(combinators, releaseContextCombinators);
|
|
135
130
|
});
|
|
@@ -138,18 +133,17 @@ export default class FileReleaseContext extends ReleaseContext {
|
|
|
138
133
|
return combinators;
|
|
139
134
|
}
|
|
140
135
|
|
|
141
|
-
getConstructors(
|
|
142
|
-
const constructors = [
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
releaseName = this.getReleaseName(),
|
|
146
|
-
releaseNamesIncludesReleaseName = releaseNames.includes(releaseName);
|
|
136
|
+
getConstructors(includeDependencies = true) {
|
|
137
|
+
const constructors = [];
|
|
138
|
+
|
|
139
|
+
push(constructors, this.constructors);
|
|
147
140
|
|
|
148
|
-
if (
|
|
149
|
-
|
|
141
|
+
if (includeDependencies) {
|
|
142
|
+
const dependencyReleaseContexts = this.getDependencyReleaseContexts();
|
|
150
143
|
|
|
151
|
-
|
|
152
|
-
const
|
|
144
|
+
dependencyReleaseContexts.forEach((releaseContext) => {
|
|
145
|
+
const includeDependencies = false,
|
|
146
|
+
releaseContextConstructors = releaseContext.getConstructors(includeDependencies);
|
|
153
147
|
|
|
154
148
|
push(constructors, releaseContextConstructors);
|
|
155
149
|
});
|
|
@@ -161,10 +155,10 @@ export default class FileReleaseContext extends ReleaseContext {
|
|
|
161
155
|
initialise(dependencyReleaseContexts) {
|
|
162
156
|
super.initialise(dependencyReleaseContexts);
|
|
163
157
|
|
|
164
|
-
const
|
|
165
|
-
jsonArray = this.contextJSON, ///
|
|
158
|
+
const jsonArray = this.contextJSON, ///
|
|
166
159
|
callback = (content, ruleName) => {
|
|
167
|
-
const
|
|
160
|
+
const ruleMap = this.florenceParser.getRuleMap(),
|
|
161
|
+
tokens = this.florenceLexer.tokenise(content),
|
|
168
162
|
rule = ruleMap[ruleName],
|
|
169
163
|
node = this.florenceParser.parse(tokens, rule);
|
|
170
164
|
|
|
@@ -219,17 +213,17 @@ export default class FileReleaseContext extends ReleaseContext {
|
|
|
219
213
|
}
|
|
220
214
|
|
|
221
215
|
static fromLogNameEntriesCallbacksAndContextJSON(log, name, entries, callbacks, contextJSON) {
|
|
222
|
-
const verified =
|
|
216
|
+
const verified = true,
|
|
223
217
|
customGrammar = customGrammarFromNameAndEntries(name, entries),
|
|
224
218
|
florenceLexer = null,
|
|
225
219
|
florenceParser = null,
|
|
226
|
-
|
|
227
|
-
types =
|
|
228
|
-
rules =
|
|
229
|
-
axioms =
|
|
230
|
-
combinators =
|
|
231
|
-
constructors =
|
|
232
|
-
releaseContext = new FileReleaseContext(log, name, entries, callbacks, verified, customGrammar, florenceLexer, florenceParser,
|
|
220
|
+
dependencyReleaseContexts = null,
|
|
221
|
+
types = [],
|
|
222
|
+
rules = [],
|
|
223
|
+
axioms = [],
|
|
224
|
+
combinators = [],
|
|
225
|
+
constructors = [],
|
|
226
|
+
releaseContext = new FileReleaseContext(log, name, entries, callbacks, verified, customGrammar, florenceLexer, florenceParser, dependencyReleaseContexts, contextJSON, types, rules, axioms, combinators, constructors);
|
|
233
227
|
|
|
234
228
|
return releaseContext;
|
|
235
229
|
}
|
package/src/context/release.js
CHANGED
|
@@ -8,7 +8,7 @@ const { florenceLexerFromCombinedCustomGrammar } = lexersUtilities,
|
|
|
8
8
|
{ florenceParserFromCombinedCustomGrammar } = parsersUtilities;
|
|
9
9
|
|
|
10
10
|
export default class ReleaseContext {
|
|
11
|
-
constructor(log, name, entries, callbacks, verified, customGrammar, florenceLexer, florenceParser,
|
|
11
|
+
constructor(log, name, entries, callbacks, verified, customGrammar, florenceLexer, florenceParser, dependencyReleaseContexts) {
|
|
12
12
|
this.log = log;
|
|
13
13
|
this.name = name;
|
|
14
14
|
this.entries = entries;
|
|
@@ -17,7 +17,7 @@ export default class ReleaseContext {
|
|
|
17
17
|
this.customGrammar = customGrammar;
|
|
18
18
|
this.florenceLexer = florenceLexer;
|
|
19
19
|
this.florenceParser = florenceParser;
|
|
20
|
-
this.
|
|
20
|
+
this.dependencyReleaseContexts = dependencyReleaseContexts;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
getLog() {
|
|
@@ -52,8 +52,8 @@ export default class ReleaseContext {
|
|
|
52
52
|
return this.florenceParser;
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
|
|
56
|
-
return this.
|
|
55
|
+
getDependencyReleaseContexts() {
|
|
56
|
+
return this.dependencyReleaseContexts;
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
getReleaseName() {
|
|
@@ -64,7 +64,7 @@ export default class ReleaseContext {
|
|
|
64
64
|
}
|
|
65
65
|
|
|
66
66
|
isInitialised() {
|
|
67
|
-
const initialised = (this.
|
|
67
|
+
const initialised = (this.dependencyReleaseContexts !== null); ///
|
|
68
68
|
|
|
69
69
|
return initialised;
|
|
70
70
|
}
|
|
@@ -117,6 +117,6 @@ export default class ReleaseContext {
|
|
|
117
117
|
|
|
118
118
|
this.florenceParser = florenceParserFromCombinedCustomGrammar(combinedCustomGrammar);
|
|
119
119
|
|
|
120
|
-
this.
|
|
120
|
+
this.dependencyReleaseContexts = dependencyReleaseContexts;
|
|
121
121
|
}
|
|
122
122
|
}
|