occam-verify-cli 1.0.886 → 1.0.889
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 +25 -24
- package/lib/constants.js +1 -9
- package/lib/context/file/nominal.js +2 -2
- package/lib/context/nominal.js +14 -1
- package/lib/element/type.js +12 -12
- package/lib/utilities/element.js +36 -1
- package/lib/utilities/instance.js +7 -7
- package/package.json +1 -1
- package/src/action/verify.js +5 -5
- package/src/constants.js +0 -2
- package/src/context/file/nominal.js +1 -1
- package/src/context/nominal.js +19 -0
- package/src/element/type.js +17 -17
- package/src/utilities/element.js +44 -0
- package/src/utilities/instance.js +7 -9
|
@@ -24,21 +24,21 @@ const _element = require("../utilities/element");
|
|
|
24
24
|
let bracketedCombinator = null, bracketedConstructor = null;
|
|
25
25
|
function bracketedCombinatorFromNothing() {
|
|
26
26
|
if (bracketedCombinator === null) {
|
|
27
|
-
|
|
28
|
-
const bracketedCombinatorString = `(${_metaTypeNames.STATEMENT_META_TYPE_NAME})`, string = bracketedCombinatorString, combinatorNode = (0, _instantiate.instantiateCombinator)(string, context), bracketedCombinatorNode = combinatorNode
|
|
29
|
-
|
|
27
|
+
(0, _context.ground)((context)=>{
|
|
28
|
+
const bracketedCombinatorString = `(${_metaTypeNames.STATEMENT_META_TYPE_NAME})`, string = bracketedCombinatorString, combinatorNode = (0, _instantiate.instantiateCombinator)(string, context), bracketedCombinatorNode = combinatorNode; ///
|
|
29
|
+
bracketedCombinator = (0, _element.bracketedCombinatorFromBracketedCombinatorNode)(bracketedCombinatorNode, context);
|
|
30
30
|
});
|
|
31
31
|
}
|
|
32
32
|
return bracketedCombinator;
|
|
33
33
|
}
|
|
34
34
|
function bracketedConstructorFromNothing() {
|
|
35
35
|
if (bracketedConstructor === null) {
|
|
36
|
-
|
|
37
|
-
const bracketedConstructorString = `(${_constants.BASE_TYPE_SYMBOL})`, string = bracketedConstructorString, constructorNode = (0, _instantiate.instantiateConstructor)(string, context), bracketedConstructorNode = constructorNode
|
|
38
|
-
|
|
36
|
+
(0, _context.ground)((context)=>{
|
|
37
|
+
const bracketedConstructorString = `(${_constants.BASE_TYPE_SYMBOL})`, string = bracketedConstructorString, constructorNode = (0, _instantiate.instantiateConstructor)(string, context), bracketedConstructorNode = constructorNode; ///
|
|
38
|
+
bracketedConstructor = (0, _element.bracketedConstructorFromBracketedConstructorNode)(bracketedConstructorNode, context);
|
|
39
39
|
});
|
|
40
40
|
}
|
|
41
41
|
return bracketedConstructor;
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvaW5zdGFuY2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGdyb3VuZCB9IGZyb20gXCIuLi91dGlsaXRpZXMvY29udGV4dFwiO1xuaW1wb3J0IHsgQkFTRV9UWVBFX1NZTUJPTCB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IFNUQVRFTUVOVF9NRVRBX1RZUEVfTkFNRSB9IGZyb20gXCIuLi9tZXRhVHlwZU5hbWVzXCI7XG5pbXBvcnQgeyBpbnN0YW50aWF0ZUNvbWJpbmF0b3IsIGluc3RhbnRpYXRlQ29uc3RydWN0b3IgfSBmcm9tIFwiLi4vcHJvY2Vzcy9pbnN0YW50aWF0ZVwiO1xuaW1wb3J0IHsgYnJhY2tldGVkQ29tYmluYXRvckZyb21CcmFja2V0ZWRDb21iaW5hdG9yTm9kZSwgYnJhY2tldGVkQ29uc3RydWN0b3JGcm9tQnJhY2tldGVkQ29uc3RydWN0b3JOb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9lbGVtZW50XCI7XG5cbmxldCBicmFja2V0ZWRDb21iaW5hdG9yID0gbnVsbCxcbiAgICBicmFja2V0ZWRDb25zdHJ1Y3RvciA9IG51bGw7XG5cbmV4cG9ydCBmdW5jdGlvbiBicmFja2V0ZWRDb21iaW5hdG9yRnJvbU5vdGhpbmcoKSB7XG4gIGlmIChicmFja2V0ZWRDb21iaW5hdG9yID09PSBudWxsKSB7XG4gICAgZ3JvdW5kKChjb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCBicmFja2V0ZWRDb21iaW5hdG9yU3RyaW5nID0gYCgke1NUQVRFTUVOVF9NRVRBX1RZUEVfTkFNRX0pYCxcbiAgICAgICAgICAgIHN0cmluZyA9IGJyYWNrZXRlZENvbWJpbmF0b3JTdHJpbmcsIC8vL1xuICAgICAgICAgICAgY29tYmluYXRvck5vZGUgPSBpbnN0YW50aWF0ZUNvbWJpbmF0b3Ioc3RyaW5nLCBjb250ZXh0KSxcbiAgICAgICAgICAgIGJyYWNrZXRlZENvbWJpbmF0b3JOb2RlID0gY29tYmluYXRvck5vZGU7ICAvLy9cblxuICAgICAgYnJhY2tldGVkQ29tYmluYXRvciA9IGJyYWNrZXRlZENvbWJpbmF0b3JGcm9tQnJhY2tldGVkQ29tYmluYXRvck5vZGUoYnJhY2tldGVkQ29tYmluYXRvck5vZGUsIGNvbnRleHQpO1xuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGJyYWNrZXRlZENvbWJpbmF0b3I7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBicmFja2V0ZWRDb25zdHJ1Y3RvckZyb21Ob3RoaW5nKCkge1xuICBpZiAoYnJhY2tldGVkQ29uc3RydWN0b3IgPT09IG51bGwpIHtcbiAgICBncm91bmQoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IGJyYWNrZXRlZENvbnN0cnVjdG9yU3RyaW5nID0gYCgke0JBU0VfVFlQRV9TWU1CT0x9KWAsXG4gICAgICAgICAgICBzdHJpbmcgPSBicmFja2V0ZWRDb25zdHJ1Y3RvclN0cmluZywgIC8vL1xuICAgICAgICAgICAgY29uc3RydWN0b3JOb2RlID0gaW5zdGFudGlhdGVDb25zdHJ1Y3RvcihzdHJpbmcsIGNvbnRleHQpLFxuICAgICAgICAgICAgYnJhY2tldGVkQ29uc3RydWN0b3JOb2RlID0gY29uc3RydWN0b3JOb2RlOyAvLy9cblxuICAgICAgYnJhY2tldGVkQ29uc3RydWN0b3IgPSBicmFja2V0ZWRDb25zdHJ1Y3RvckZyb21CcmFja2V0ZWRDb25zdHJ1Y3Rvck5vZGUoYnJhY2tldGVkQ29uc3RydWN0b3JOb2RlLCBjb250ZXh0KTtcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBicmFja2V0ZWRDb25zdHJ1Y3Rvcjtcbn1cbiJdLCJuYW1lcyI6WyJicmFja2V0ZWRDb21iaW5hdG9yRnJvbU5vdGhpbmciLCJicmFja2V0ZWRDb25zdHJ1Y3RvckZyb21Ob3RoaW5nIiwiYnJhY2tldGVkQ29tYmluYXRvciIsImJyYWNrZXRlZENvbnN0cnVjdG9yIiwiZ3JvdW5kIiwiY29udGV4dCIsImJyYWNrZXRlZENvbWJpbmF0b3JTdHJpbmciLCJTVEFURU1FTlRfTUVUQV9UWVBFX05BTUUiLCJzdHJpbmciLCJjb21iaW5hdG9yTm9kZSIsImluc3RhbnRpYXRlQ29tYmluYXRvciIsImJyYWNrZXRlZENvbWJpbmF0b3JOb2RlIiwiYnJhY2tldGVkQ29tYmluYXRvckZyb21CcmFja2V0ZWRDb21iaW5hdG9yTm9kZSIsImJyYWNrZXRlZENvbnN0cnVjdG9yU3RyaW5nIiwiQkFTRV9UWVBFX1NZTUJPTCIsImNvbnN0cnVjdG9yTm9kZSIsImluc3RhbnRpYXRlQ29uc3RydWN0b3IiLCJicmFja2V0ZWRDb25zdHJ1Y3Rvck5vZGUiLCJicmFja2V0ZWRDb25zdHJ1Y3RvckZyb21CcmFja2V0ZWRDb25zdHJ1Y3Rvck5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQVdnQkE7ZUFBQUE7O1FBZUFDO2VBQUFBOzs7eUJBeEJPOzJCQUNVOytCQUNROzZCQUNxQjt5QkFDbUQ7QUFFakgsSUFBSUMsc0JBQXNCLE1BQ3RCQyx1QkFBdUI7QUFFcEIsU0FBU0g7SUFDZCxJQUFJRSx3QkFBd0IsTUFBTTtRQUNoQ0UsSUFBQUEsZUFBTSxFQUFDLENBQUNDO1lBQ04sTUFBTUMsNEJBQTRCLENBQUMsQ0FBQyxFQUFFQyx1Q0FBd0IsQ0FBQyxDQUFDLENBQUMsRUFDM0RDLFNBQVNGLDJCQUNURyxpQkFBaUJDLElBQUFBLGtDQUFxQixFQUFDRixRQUFRSCxVQUMvQ00sMEJBQTBCRixnQkFBaUIsR0FBRztZQUVwRFAsc0JBQXNCVSxJQUFBQSx1REFBOEMsRUFBQ0QseUJBQXlCTjtRQUNoRztJQUNGO0lBRUEsT0FBT0g7QUFDVDtBQUVPLFNBQVNEO0lBQ2QsSUFBSUUseUJBQXlCLE1BQU07UUFDakNDLElBQUFBLGVBQU0sRUFBQyxDQUFDQztZQUNOLE1BQU1RLDZCQUE2QixDQUFDLENBQUMsRUFBRUMsMkJBQWdCLENBQUMsQ0FBQyxDQUFDLEVBQ3BETixTQUFTSyw0QkFDVEUsa0JBQWtCQyxJQUFBQSxtQ0FBc0IsRUFBQ1IsUUFBUUgsVUFDakRZLDJCQUEyQkYsaUJBQWlCLEdBQUc7WUFFckRaLHVCQUF1QmUsSUFBQUEseURBQWdELEVBQUNELDBCQUEwQlo7UUFDcEc7SUFDRjtJQUVBLE9BQU9GO0FBQ1QifQ==
|
package/package.json
CHANGED
package/src/action/verify.js
CHANGED
|
@@ -26,7 +26,7 @@ export default async function verifyAction(name, log) {
|
|
|
26
26
|
releaseContextFromDependency
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
try {
|
|
29
|
+
// try {
|
|
30
30
|
const releaseContextCreated = await createReleaseContexts(dependency, context);
|
|
31
31
|
|
|
32
32
|
if (!releaseContextCreated) {
|
|
@@ -64,8 +64,8 @@ export default async function verifyAction(name, log) {
|
|
|
64
64
|
const releaseContxt = ReleaseContext.fromLogNameJSONEntriesCallbackAndCustomGrammar(log, name, json, entries, callback, customGrammar);
|
|
65
65
|
|
|
66
66
|
releaseContxt.initialise(releaseContexts, FileContextFromFilePath);
|
|
67
|
-
}
|
|
68
|
-
catch (error) {
|
|
69
|
-
|
|
70
|
-
}
|
|
67
|
+
// }
|
|
68
|
+
// catch (error) {
|
|
69
|
+
// log.error(error);
|
|
70
|
+
// }
|
|
71
71
|
}
|
package/src/constants.js
CHANGED
|
@@ -6,12 +6,10 @@ export const { TRACE_LEVEL, DEBUG_LEVEL, INFO_LEVEL, WARNING_LEVEL, ERROR_LEVEL
|
|
|
6
6
|
|
|
7
7
|
export const S = "s";
|
|
8
8
|
export const MISSING = "missing";
|
|
9
|
-
export const FUNCTION = "function";
|
|
10
9
|
export const UNDEFINED = "undefined";
|
|
11
10
|
export const PROVISIONAL = "Provisional";
|
|
12
11
|
export const EMPTY_STRING = "";
|
|
13
12
|
export const SINGLE_SPACE = " ";
|
|
14
|
-
export const BREAK_MESSAGE = ":: BREAK ::";
|
|
15
13
|
export const PROVISIONALLY = "provisionally";
|
|
16
14
|
export const BASE_TYPE_SYMBOL = "<>";
|
|
17
15
|
export const OCCAM_VERIFY_CLI = "Occam Verify-CLI";
|
|
@@ -342,7 +342,7 @@ export default class NominalFileContext extends FileContext {
|
|
|
342
342
|
this.conjectures.push(conjecture);
|
|
343
343
|
|
|
344
344
|
const filePath = this.getFilePath(),
|
|
345
|
-
ocnjectureString =
|
|
345
|
+
ocnjectureString = conjecture.getString();
|
|
346
346
|
|
|
347
347
|
this.trace(`Added the '${ocnjectureString}' ocnjecture to the '${filePath}' file context.`)
|
|
348
348
|
}
|
package/src/context/nominal.js
CHANGED
|
@@ -6,6 +6,7 @@ import { lexersUtilities, parsersUtilities } from "occam-nominal";
|
|
|
6
6
|
import NominalLexer from "../nominal/lexer";
|
|
7
7
|
import NominalParser from "../nominal/parser";
|
|
8
8
|
|
|
9
|
+
import { baseTypeFromNothing } from "../utilities/type";
|
|
9
10
|
import { findMetaTypeByMetaTypeName } from "../metaTypes";
|
|
10
11
|
|
|
11
12
|
const { nominalLexerFromNothing } = lexersUtilities,
|
|
@@ -14,6 +15,8 @@ const { nominalLexerFromNothing } = lexersUtilities,
|
|
|
14
15
|
const nominalLexer = nominalLexerFromNothing(NominalLexer),
|
|
15
16
|
nominalParser = nominalParserFromNothing(NominalParser); ///
|
|
16
17
|
|
|
18
|
+
let baseType = null;
|
|
19
|
+
|
|
17
20
|
export default class NominalContext extends Context {
|
|
18
21
|
constructor(context, lexer, parser) {
|
|
19
22
|
super(context);
|
|
@@ -30,6 +33,22 @@ export default class NominalContext extends Context {
|
|
|
30
33
|
return this.parser;
|
|
31
34
|
}
|
|
32
35
|
|
|
36
|
+
findTypeByNominalTypeName(nominalTypeName) {
|
|
37
|
+
let type = null;
|
|
38
|
+
|
|
39
|
+
if (baseType === null) {
|
|
40
|
+
baseType = baseTypeFromNothing();
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
const comparesToNominalTypeName = baseType.compareNominalTypeName(nominalTypeName);
|
|
44
|
+
|
|
45
|
+
if (comparesToNominalTypeName) {
|
|
46
|
+
type = baseType; ///
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return type;
|
|
50
|
+
}
|
|
51
|
+
|
|
33
52
|
findMetaTypeByMetaTypeName(metaTypeName) { return findMetaTypeByMetaTypeName(metaTypeName); }
|
|
34
53
|
|
|
35
54
|
static fromNothing() {
|
package/src/element/type.js
CHANGED
|
@@ -250,23 +250,6 @@ export default define(class Type extends Element {
|
|
|
250
250
|
return comparesToProvisional;
|
|
251
251
|
}
|
|
252
252
|
|
|
253
|
-
comparePrefixedTypeName(prefixedTypeName) {
|
|
254
|
-
let comparesToPrefixedTypeName = false;
|
|
255
|
-
|
|
256
|
-
const prefixed = this.isPrefixed();
|
|
257
|
-
|
|
258
|
-
if (prefixed) {
|
|
259
|
-
const prefixedName = this.getPrefixedName(),
|
|
260
|
-
prefixedTypeNamePrefixedName = (prefixedTypeName === prefixedName);
|
|
261
|
-
|
|
262
|
-
if (prefixedTypeNamePrefixedName) {
|
|
263
|
-
comparesToPrefixedTypeName = true;
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
return comparesToPrefixedTypeName;
|
|
268
|
-
}
|
|
269
|
-
|
|
270
253
|
compareNominalTypeName(nominalTypeName) {
|
|
271
254
|
let comparesToNominalTypeName = false;
|
|
272
255
|
|
|
@@ -295,6 +278,23 @@ export default define(class Type extends Element {
|
|
|
295
278
|
return comparesToNominalTypeName;
|
|
296
279
|
}
|
|
297
280
|
|
|
281
|
+
comparePrefixedTypeName(prefixedTypeName) {
|
|
282
|
+
let comparesToPrefixedTypeName = false;
|
|
283
|
+
|
|
284
|
+
const prefixed = this.isPrefixed();
|
|
285
|
+
|
|
286
|
+
if (prefixed) {
|
|
287
|
+
const prefixedName = this.getPrefixedName(),
|
|
288
|
+
prefixedTypeNamePrefixedName = (prefixedTypeName === prefixedName);
|
|
289
|
+
|
|
290
|
+
if (prefixedTypeNamePrefixedName) {
|
|
291
|
+
comparesToPrefixedTypeName = true;
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
return comparesToPrefixedTypeName;
|
|
296
|
+
}
|
|
297
|
+
|
|
298
298
|
toJSON(abridged = false) {
|
|
299
299
|
const string = this.getString(),
|
|
300
300
|
lineIndex = this.getLineIndex(),
|
package/src/utilities/element.js
CHANGED
|
@@ -816,6 +816,29 @@ export function metaLevelAssumptionFromMetaLevelAssumptionNode(metaLevelAssumpti
|
|
|
816
816
|
return metaLevelAssumption;
|
|
817
817
|
}
|
|
818
818
|
|
|
819
|
+
export function bracketedCombinatorFromBracketedCombinatorNode(bracketedCombinatorNode, context) {
|
|
820
|
+
const { BracketedCombinator } = elements,
|
|
821
|
+
node = bracketedCombinatorNode, ///
|
|
822
|
+
string = context.nodeAsString(node),
|
|
823
|
+
lineIndex = null,
|
|
824
|
+
statement = statementFromBracketedCombinatorNode(bracketedCombinatorNode, context),
|
|
825
|
+
bracketedCombinator = new BracketedCombinator(context, string, node, lineIndex, statement);
|
|
826
|
+
|
|
827
|
+
return bracketedCombinator;
|
|
828
|
+
}
|
|
829
|
+
|
|
830
|
+
export function bracketedConstructorFromBracketedConstructorNode(bracketedConstructorNode, context) {
|
|
831
|
+
const { BracketedConstructor } = elements,
|
|
832
|
+
node = bracketedConstructorNode, ///
|
|
833
|
+
string = context.nodeAsString(node),
|
|
834
|
+
lineIndex = null,
|
|
835
|
+
term = termFromBracketedConstructorNode(bracketedConstructorNode, context),
|
|
836
|
+
type = typeFromBracketedConstructorNode(bracketedConstructorNode, context),
|
|
837
|
+
bracketedConstructor = new BracketedConstructor(context, string, node, lineIndex, term, type);
|
|
838
|
+
|
|
839
|
+
return bracketedConstructor;
|
|
840
|
+
}
|
|
841
|
+
|
|
819
842
|
export function typePrefixDeclarationFromTypePrefixDeclarationNode(typePrefixDeclarationNode, context) {
|
|
820
843
|
const { TypePrefixDeclaration } = elements,
|
|
821
844
|
node = typePrefixDeclarationNode, ///
|
|
@@ -1632,6 +1655,20 @@ export function propertyFromPropertyRelationNode(propertyRelationNode, context)
|
|
|
1632
1655
|
return property;
|
|
1633
1656
|
}
|
|
1634
1657
|
|
|
1658
|
+
export function termFromBracketedConstructorNode(bracketedCcnstructorNode, context) {
|
|
1659
|
+
const termNode = bracketedCcnstructorNode.getTermNode(),
|
|
1660
|
+
term = termFromTermNode(termNode, context);
|
|
1661
|
+
|
|
1662
|
+
return term;
|
|
1663
|
+
}
|
|
1664
|
+
|
|
1665
|
+
export function typeFromBracketedConstructorNode(bracketedCcnstructorNode, context) {
|
|
1666
|
+
const baseType = baseTypeFromNothing(),
|
|
1667
|
+
type = baseType; ///
|
|
1668
|
+
|
|
1669
|
+
return type;
|
|
1670
|
+
}
|
|
1671
|
+
|
|
1635
1672
|
export function definedAssertionFromStatementNode(statementNode, context) {
|
|
1636
1673
|
let definedAssertion = null;
|
|
1637
1674
|
|
|
@@ -1795,6 +1832,13 @@ export function hypothesesFromTopLevelAssertionNode(topLevelAsssertionNode, cont
|
|
|
1795
1832
|
return ypotheses;
|
|
1796
1833
|
}
|
|
1797
1834
|
|
|
1835
|
+
export function statementFromBracketedCombinatorNode(bracketedCombinatorNode, context) {
|
|
1836
|
+
const statementNode = bracketedCombinatorNode.getStatementNode(),
|
|
1837
|
+
statement = statementFromStatementNode(statementNode, context);
|
|
1838
|
+
|
|
1839
|
+
return statement;
|
|
1840
|
+
}
|
|
1841
|
+
|
|
1798
1842
|
export function signatureFromJSatisfiesAssertionNode(sasisfiesAssertionNode, context) {
|
|
1799
1843
|
const signatureNode = sasisfiesAssertionNode.getSignatureNode(),
|
|
1800
1844
|
signature = signatureFromJSignatureNode(signatureNode, context);
|
|
@@ -4,21 +4,20 @@ import { ground } from "../utilities/context";
|
|
|
4
4
|
import { BASE_TYPE_SYMBOL } from "../constants";
|
|
5
5
|
import { STATEMENT_META_TYPE_NAME } from "../metaTypeNames";
|
|
6
6
|
import { instantiateCombinator, instantiateConstructor } from "../process/instantiate";
|
|
7
|
-
import {
|
|
7
|
+
import { bracketedCombinatorFromBracketedCombinatorNode, bracketedConstructorFromBracketedConstructorNode } from "../utilities/element";
|
|
8
8
|
|
|
9
9
|
let bracketedCombinator = null,
|
|
10
10
|
bracketedConstructor = null;
|
|
11
11
|
|
|
12
12
|
export function bracketedCombinatorFromNothing() {
|
|
13
13
|
if (bracketedCombinator === null) {
|
|
14
|
-
|
|
14
|
+
ground((context) => {
|
|
15
15
|
const bracketedCombinatorString = `(${STATEMENT_META_TYPE_NAME})`,
|
|
16
16
|
string = bracketedCombinatorString, ///
|
|
17
17
|
combinatorNode = instantiateCombinator(string, context),
|
|
18
|
-
bracketedCombinatorNode = combinatorNode
|
|
19
|
-
bracketedCombinator = combinatorFromCombinatorNode(bracketedCombinatorNode, context);
|
|
18
|
+
bracketedCombinatorNode = combinatorNode; ///
|
|
20
19
|
|
|
21
|
-
|
|
20
|
+
bracketedCombinator = bracketedCombinatorFromBracketedCombinatorNode(bracketedCombinatorNode, context);
|
|
22
21
|
});
|
|
23
22
|
}
|
|
24
23
|
|
|
@@ -27,14 +26,13 @@ export function bracketedCombinatorFromNothing() {
|
|
|
27
26
|
|
|
28
27
|
export function bracketedConstructorFromNothing() {
|
|
29
28
|
if (bracketedConstructor === null) {
|
|
30
|
-
|
|
29
|
+
ground((context) => {
|
|
31
30
|
const bracketedConstructorString = `(${BASE_TYPE_SYMBOL})`,
|
|
32
31
|
string = bracketedConstructorString, ///
|
|
33
32
|
constructorNode = instantiateConstructor(string, context),
|
|
34
|
-
bracketedConstructorNode = constructorNode
|
|
35
|
-
bracketedConstructor = constructorFromConstructorNode(bracketedConstructorNode, context);
|
|
33
|
+
bracketedConstructorNode = constructorNode; ///
|
|
36
34
|
|
|
37
|
-
|
|
35
|
+
bracketedConstructor = bracketedConstructorFromBracketedConstructorNode(bracketedConstructorNode, context);
|
|
38
36
|
});
|
|
39
37
|
}
|
|
40
38
|
|