occam-furtle 1.0.47 → 1.0.49
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/example/Free and bound variables.ftl +69 -0
- package/example/customGrammars.json +18 -0
- package/lib/example/utilities/file.js +19 -0
- package/lib/example/utilities/grammar.js +26 -0
- package/lib/example/utilities/nominal.js +29 -0
- package/lib/example.js +6 -9
- package/package.json +2 -1
- package/src/example/utilities/file.js +17 -0
- package/src/example/utilities/grammar.js +29 -0
- package/src/example/utilities/nominal.js +20 -0
- package/src/example.js +5 -15
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
Boolean isVariableFree(Node termNode, Node statementNode) {
|
|
2
|
+
Boolean variableFree = true;
|
|
3
|
+
|
|
4
|
+
Boolean variableBound = isVariableBound(termNode, statementNode);
|
|
5
|
+
|
|
6
|
+
If (variableBound) {
|
|
7
|
+
variableFree = false;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
Return variableFree;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
Boolean isVariableBound(Node termNode, Node statementNode) {
|
|
14
|
+
Boolean variableBound = false;
|
|
15
|
+
|
|
16
|
+
String variableName = variableNameFromTermNode(termNode);
|
|
17
|
+
|
|
18
|
+
If (variableName != null) {
|
|
19
|
+
Nodes statementNodes = nodesQuery(statementNode, //statement);
|
|
20
|
+
|
|
21
|
+
ForEach(statementNodes, (Node statementNode) {
|
|
22
|
+
String boundVariableName = boundVariableNameFromStatementNode(statementNode);
|
|
23
|
+
|
|
24
|
+
If (boundVariableName == variableName) {
|
|
25
|
+
variableBound = true;
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
Return variableBound;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
String variableNameFromTermNode(Node termNode) {
|
|
34
|
+
String variableName = null;
|
|
35
|
+
|
|
36
|
+
Node variableNameTerminalNode = nodeQuery(termNode, /term/variable/@name);
|
|
37
|
+
|
|
38
|
+
If (variableNameTerminalNode != null) {
|
|
39
|
+
( String content ) = variableNameTerminalNode;
|
|
40
|
+
|
|
41
|
+
variableName = content;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
Return variableName;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
String boundVariableNameFromStatementNode(Node statementNode) {
|
|
48
|
+
String boundVariableName = null;
|
|
49
|
+
|
|
50
|
+
( Nodes childNodes ) = statementNode;
|
|
51
|
+
|
|
52
|
+
[ Node firstChildNode ] = childNodes;
|
|
53
|
+
|
|
54
|
+
( String content ) = firstChildNode;
|
|
55
|
+
|
|
56
|
+
If ((content == "∀") || (content == "∃")) {
|
|
57
|
+
[ _, Node argumentNode ] = childNodes;
|
|
58
|
+
|
|
59
|
+
Node boundVariableNameTerminalNode = nodeQuery(argumentNode, /argument/term/variable/@name);
|
|
60
|
+
|
|
61
|
+
If (boundVariableNameTerminalNode != null) {
|
|
62
|
+
( String content ) = boundVariableNameTerminalNode;
|
|
63
|
+
|
|
64
|
+
boundVariableName = content;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
Return boundVariableName;
|
|
69
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"name": "Default",
|
|
4
|
+
"termBNF": "term. ::= \"(\" argument \")\"\n\n | variable \n \n ;",
|
|
5
|
+
"statementBNF": "statement. ::= \"(\" metaArgument \")\" \n \n | equality\n\n | typeAssertion \n \n | definedAssertion \n\n | containedAssertion \n \n | subproofAssertion \n\n | procedureCall \n \n | judgement\n\n | metavariable ( frameSubstitution | termSubstitution )?\n\n ;\n\nequality ::= term \"=\" term ;\n\ntypeAssertion ::= term \":\" type ;\n\ndefinedAssertion ::= ( frame | term ) \"not\"? \"defined\" ;\n\ncontainedAssertion ::= ( frame | term ) \"not\"? \"contained\" \"in\" statement ;\n\nsubproofAssertion ::= \"[\" statement ( \",\" statement )* \"]\" \"...\" statement ;\n\nprocedureCall ::= \"@\"<NO_WHITESPACE>reference<NO_WHITESPACE>\"(\" parameter ( \",\" parameter )* \")\" ;\n\njudgement ::= frame \"|-\" declaration ;\n\nframe ::= \"[\" ( ( declaration | metavariable ) ( \",\" ( declaration | metavariable ) )* )? \"]\" ;\n \ndeclaration ::= reference \"::\" statement ;\n\ntermSubstitution ::= \"[\" term \"for\" term \"]\";\n\nframeSubstitution ::= \"[\" frame \"for\" frame \"]\";\n\nreferenceSubstitution ::= \"[\" reference \"for\" reference \"]\";\n\nstatementSubstitution ::= \"[\" statement \"for\" statement \"]\";\n\nparameter ::= [name] ;",
|
|
6
|
+
"typePattern": "Object",
|
|
7
|
+
"symbolPattern": "",
|
|
8
|
+
"operatorPattern": "::|\\[|\\]|\\.\\.\\.|\\|-|=|@|in|for|defined|contained|not"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"name": "first-order-logic",
|
|
12
|
+
"termBNF": null,
|
|
13
|
+
"statementBNF": "\n\n statement ::= ( \"∀\" | \"∃\" ) ( frameArgument | argument ) metaArgument \n\n | ( frameArgument | argument ) ( \"bound\" | \"free\" ) \"in\" metaArgument\n\n ;\n\n",
|
|
14
|
+
"typePattern": null,
|
|
15
|
+
"symbolPattern": null,
|
|
16
|
+
"operatorPattern": "bound|free|∀|∃"
|
|
17
|
+
}
|
|
18
|
+
]
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "fileFromNothing", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return fileFromNothing;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _occamentities = require("occam-entities");
|
|
12
|
+
var _necessary = require("necessary");
|
|
13
|
+
var readFile = _necessary.fileSystemUtilities.readFile;
|
|
14
|
+
function fileFromNothing() {
|
|
15
|
+
var filePath = "example/Free and bound variables.ftl", fileContent = readFile(filePath), path = filePath, content = fileContent, released = false, file = _occamentities.File.fromPathContentAndReleased(path, content, released);
|
|
16
|
+
return file;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leGFtcGxlL3V0aWxpdGllcy9maWxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBGaWxlIH0gZnJvbSBcIm9jY2FtLWVudGl0aWVzXCI7XG5pbXBvcnQgeyBmaWxlU3lzdGVtVXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5jb25zdCB7IHJlYWRGaWxlIH0gPSBmaWxlU3lzdGVtVXRpbGl0aWVzO1xuXG5leHBvcnQgZnVuY3Rpb24gZmlsZUZyb21Ob3RoaW5nKCkge1xuICBjb25zdCBmaWxlUGF0aCA9IFwiZXhhbXBsZS9GcmVlIGFuZCBib3VuZCB2YXJpYWJsZXMuZnRsXCIsXG4gICAgICAgIGZpbGVDb250ZW50ID0gcmVhZEZpbGUoZmlsZVBhdGgpLFxuICAgICAgICBwYXRoID0gZmlsZVBhdGgsICAvLy9cbiAgICAgICAgY29udGVudCA9IGZpbGVDb250ZW50LCAgLy8vXG4gICAgICAgIHJlbGVhc2VkID0gZmFsc2UsXG4gICAgICAgIGZpbGUgPSBGaWxlLmZyb21QYXRoQ29udGVudEFuZFJlbGVhc2VkKHBhdGgsIGNvbnRlbnQsIHJlbGVhc2VkKTtcblxuICByZXR1cm4gZmlsZTtcbn0iXSwibmFtZXMiOlsiZmlsZUZyb21Ob3RoaW5nIiwicmVhZEZpbGUiLCJmaWxlU3lzdGVtVXRpbGl0aWVzIiwiZmlsZVBhdGgiLCJmaWxlQ29udGVudCIsInBhdGgiLCJjb250ZW50IiwicmVsZWFzZWQiLCJmaWxlIiwiRmlsZSIsImZyb21QYXRoQ29udGVudEFuZFJlbGVhc2VkIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFPZ0JBOzs7ZUFBQUE7Ozs2QkFMSzt5QkFDZTtBQUVwQyxJQUFNLEFBQUVDLFdBQWFDLDhCQUFtQixDQUFoQ0Q7QUFFRCxTQUFTRDtJQUNkLElBQU1HLFdBQVcsd0NBQ1hDLGNBQWNILFNBQVNFLFdBQ3ZCRSxPQUFPRixVQUNQRyxVQUFVRixhQUNWRyxXQUFXLE9BQ1hDLE9BQU9DLG1CQUFJLENBQUNDLDBCQUEwQixDQUFDTCxNQUFNQyxTQUFTQztJQUU1RCxPQUFPQztBQUNUIn0=
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "combinedCustomGrammarFromNothing", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return combinedCustomGrammarFromNothing;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _necessary = require("necessary");
|
|
12
|
+
var _occamcustomgrammars = require("occam-custom-grammars");
|
|
13
|
+
var readFile = _necessary.fileSystemUtilities.readFile;
|
|
14
|
+
function combinedCustomGrammarFromNothing() {
|
|
15
|
+
var filePath = "example/customGrammars.json", fileContent = readFile(filePath), json = JSON.parse(fileContent), customGrammars = customGrammarsFromJSON(json), includeDefault = false, combinedCustomGrammar = _occamcustomgrammars.CombinedCustomGrammar.fromCustomGrammars(customGrammars, includeDefault);
|
|
16
|
+
return combinedCustomGrammar;
|
|
17
|
+
}
|
|
18
|
+
function customGrammarsFromJSON(json) {
|
|
19
|
+
var customGrammarsJSON = json, customGrammars = customGrammarsJSON.map(function(customGrammarsJSON) {
|
|
20
|
+
var _$json = customGrammarsJSON, customGrammar = _occamcustomgrammars.CustomGrammar.fromJSON(_$json);
|
|
21
|
+
return customGrammar;
|
|
22
|
+
});
|
|
23
|
+
return customGrammars;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leGFtcGxlL3V0aWxpdGllcy9ncmFtbWFyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBmaWxlU3lzdGVtVXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuaW1wb3J0IHsgQ3VzdG9tR3JhbW1hciwgQ29tYmluZWRDdXN0b21HcmFtbWFyIH0gZnJvbSBcIm9jY2FtLWN1c3RvbS1ncmFtbWFyc1wiO1xuXG5jb25zdCB7IHJlYWRGaWxlIH0gPSBmaWxlU3lzdGVtVXRpbGl0aWVzO1xuXG5leHBvcnQgZnVuY3Rpb24gY29tYmluZWRDdXN0b21HcmFtbWFyRnJvbU5vdGhpbmcoKSB7XG4gIGNvbnN0IGZpbGVQYXRoID0gXCJleGFtcGxlL2N1c3RvbUdyYW1tYXJzLmpzb25cIixcbiAgICAgICAgZmlsZUNvbnRlbnQgPSByZWFkRmlsZShmaWxlUGF0aCksXG4gICAgICAgIGpzb24gPSBKU09OLnBhcnNlKGZpbGVDb250ZW50KSxcbiAgICAgICAgY3VzdG9tR3JhbW1hcnMgPSBjdXN0b21HcmFtbWFyc0Zyb21KU09OKGpzb24pLFxuICAgICAgICBpbmNsdWRlRGVmYXVsdCA9IGZhbHNlLFxuICAgICAgICBjb21iaW5lZEN1c3RvbUdyYW1tYXIgPSBDb21iaW5lZEN1c3RvbUdyYW1tYXIuZnJvbUN1c3RvbUdyYW1tYXJzKGN1c3RvbUdyYW1tYXJzLCBpbmNsdWRlRGVmYXVsdCk7XG5cbiAgcmV0dXJuIGNvbWJpbmVkQ3VzdG9tR3JhbW1hcjtcbn1cblxuZnVuY3Rpb24gY3VzdG9tR3JhbW1hcnNGcm9tSlNPTihqc29uKSB7XG4gIGNvbnN0IGN1c3RvbUdyYW1tYXJzSlNPTiA9IGpzb24sICAvLy9cbiAgICAgICAgY3VzdG9tR3JhbW1hcnMgPSBjdXN0b21HcmFtbWFyc0pTT04ubWFwKChjdXN0b21HcmFtbWFyc0pTT04pID0+IHtcbiAgICAgICAgICBjb25zdCBqc29uID0gY3VzdG9tR3JhbW1hcnNKU09OLCAgLy8vXG4gICAgICAgICAgICAgICAgY3VzdG9tR3JhbW1hciA9IEN1c3RvbUdyYW1tYXIuZnJvbUpTT04oanNvbik7XG5cbiAgICAgICAgICByZXR1cm4gY3VzdG9tR3JhbW1hcjtcbiAgICAgICAgfSk7XG5cbiAgcmV0dXJuIGN1c3RvbUdyYW1tYXJzO1xufSJdLCJuYW1lcyI6WyJjb21iaW5lZEN1c3RvbUdyYW1tYXJGcm9tTm90aGluZyIsInJlYWRGaWxlIiwiZmlsZVN5c3RlbVV0aWxpdGllcyIsImZpbGVQYXRoIiwiZmlsZUNvbnRlbnQiLCJqc29uIiwiSlNPTiIsInBhcnNlIiwiY3VzdG9tR3JhbW1hcnMiLCJjdXN0b21HcmFtbWFyc0Zyb21KU09OIiwiaW5jbHVkZURlZmF1bHQiLCJjb21iaW5lZEN1c3RvbUdyYW1tYXIiLCJDb21iaW5lZEN1c3RvbUdyYW1tYXIiLCJmcm9tQ3VzdG9tR3JhbW1hcnMiLCJjdXN0b21HcmFtbWFyc0pTT04iLCJtYXAiLCJjdXN0b21HcmFtbWFyIiwiQ3VzdG9tR3JhbW1hciIsImZyb21KU09OIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFPZ0JBOzs7ZUFBQUE7Ozt5QkFMb0I7bUNBQ2lCO0FBRXJELElBQU0sQUFBRUMsV0FBYUMsOEJBQW1CLENBQWhDRDtBQUVELFNBQVNEO0lBQ2QsSUFBTUcsV0FBVywrQkFDWEMsY0FBY0gsU0FBU0UsV0FDdkJFLE9BQU9DLEtBQUtDLEtBQUssQ0FBQ0gsY0FDbEJJLGlCQUFpQkMsdUJBQXVCSixPQUN4Q0ssaUJBQWlCLE9BQ2pCQyx3QkFBd0JDLDBDQUFxQixDQUFDQyxrQkFBa0IsQ0FBQ0wsZ0JBQWdCRTtJQUV2RixPQUFPQztBQUNUO0FBRUEsU0FBU0YsdUJBQXVCSixJQUFJO0lBQ2xDLElBQU1TLHFCQUFxQlQsTUFDckJHLGlCQUFpQk0sbUJBQW1CQyxHQUFHLENBQUMsU0FBQ0Q7UUFDdkMsSUFBTVQsU0FBT1Msb0JBQ1BFLGdCQUFnQkMsa0NBQWEsQ0FBQ0MsUUFBUSxDQUFDYjtRQUU3QyxPQUFPVztJQUNUO0lBRU4sT0FBT1I7QUFDVCJ9
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: all[name]
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
nominalLexerFromNothing: function() {
|
|
13
|
+
return nominalLexerFromNothing;
|
|
14
|
+
},
|
|
15
|
+
nominalParserFromNothing: function() {
|
|
16
|
+
return nominalParserFromNothing;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
var _occamcustomgrammars = require("occam-custom-grammars");
|
|
20
|
+
var _grammar = require("../utilities/grammar");
|
|
21
|
+
var nominalLexerFromCombinedCustomGrammar = _occamcustomgrammars.lexersUtilities.nominalLexerFromCombinedCustomGrammar, nominalParserFromCombinedCustomGrammar = _occamcustomgrammars.parsersUtilities.nominalParserFromCombinedCustomGrammar;
|
|
22
|
+
var combinedCustomGrammar = (0, _grammar.combinedCustomGrammarFromNothing)();
|
|
23
|
+
function nominalLexerFromNothing() {
|
|
24
|
+
var nominalLexer = nominalLexerFromCombinedCustomGrammar(combinedCustomGrammar);
|
|
25
|
+
return nominalLexer;
|
|
26
|
+
}
|
|
27
|
+
function nominalParserFromNothing() {}
|
|
28
|
+
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leGFtcGxlL3V0aWxpdGllcy9ub21pbmFsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBsZXhlcnNVdGlsaXRpZXMsIHBhcnNlcnNVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tY3VzdG9tLWdyYW1tYXJzXCI7XG5cbmltcG9ydCB7IGNvbWJpbmVkQ3VzdG9tR3JhbW1hckZyb21Ob3RoaW5nIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9ncmFtbWFyXCI7XG5cbmNvbnN0IHsgbm9taW5hbExleGVyRnJvbUNvbWJpbmVkQ3VzdG9tR3JhbW1hciB9ID0gbGV4ZXJzVXRpbGl0aWVzLFxuICAgICAgeyBub21pbmFsUGFyc2VyRnJvbUNvbWJpbmVkQ3VzdG9tR3JhbW1hciB9ID0gcGFyc2Vyc1V0aWxpdGllcztcblxuY29uc3QgY29tYmluZWRDdXN0b21HcmFtbWFyID0gY29tYmluZWRDdXN0b21HcmFtbWFyRnJvbU5vdGhpbmcoKTtcblxuZXhwb3J0IGZ1bmN0aW9uIG5vbWluYWxMZXhlckZyb21Ob3RoaW5nKCkge1xuICBjb25zdCBub21pbmFsTGV4ZXIgPSBub21pbmFsTGV4ZXJGcm9tQ29tYmluZWRDdXN0b21HcmFtbWFyKGNvbWJpbmVkQ3VzdG9tR3JhbW1hcik7XG5cbiAgcmV0dXJuIG5vbWluYWxMZXhlcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vbWluYWxQYXJzZXJGcm9tTm90aGluZygpIHtcblxufSJdLCJuYW1lcyI6WyJub21pbmFsTGV4ZXJGcm9tTm90aGluZyIsIm5vbWluYWxQYXJzZXJGcm9tTm90aGluZyIsIm5vbWluYWxMZXhlckZyb21Db21iaW5lZEN1c3RvbUdyYW1tYXIiLCJsZXhlcnNVdGlsaXRpZXMiLCJub21pbmFsUGFyc2VyRnJvbUNvbWJpbmVkQ3VzdG9tR3JhbW1hciIsInBhcnNlcnNVdGlsaXRpZXMiLCJjb21iaW5lZEN1c3RvbUdyYW1tYXIiLCJjb21iaW5lZEN1c3RvbUdyYW1tYXJGcm9tTm90aGluZyIsIm5vbWluYWxMZXhlciJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0lBV2dCQSx1QkFBdUI7ZUFBdkJBOztJQU1BQyx3QkFBd0I7ZUFBeEJBOzs7bUNBZmtDO3VCQUVEO0FBRWpELElBQU0sQUFBRUMsd0NBQTBDQyxvQ0FBZSxDQUF6REQsdUNBQ0YsQUFBRUUseUNBQTJDQyxxQ0FBZ0IsQ0FBM0REO0FBRVIsSUFBTUUsd0JBQXdCQyxJQUFBQSx5Q0FBZ0M7QUFFdkQsU0FBU1A7SUFDZCxJQUFNUSxlQUFlTixzQ0FBc0NJO0lBRTNELE9BQU9FO0FBQ1Q7QUFFTyxTQUFTUCw0QkFFaEIifQ==
|
package/lib/example.js
CHANGED
|
@@ -3,21 +3,18 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
5
|
require("./index");
|
|
6
|
-
var _occamentities = require("occam-entities");
|
|
7
|
-
var _necessary = require("necessary");
|
|
8
6
|
var _file = /*#__PURE__*/ _interop_require_default(require("./context/file"));
|
|
9
7
|
var _release = require("./example/context/release");
|
|
8
|
+
var _file1 = require("./example/utilities/file");
|
|
9
|
+
var _grammar = require("./example/utilities/grammar");
|
|
10
10
|
function _interop_require_default(obj) {
|
|
11
11
|
return obj && obj.__esModule ? obj : {
|
|
12
12
|
default: obj
|
|
13
13
|
};
|
|
14
14
|
}
|
|
15
|
-
var
|
|
16
|
-
var filePath = "first-order-logic/Procedures/Free and bound variables.ftl", file = fileFromFilePath(filePath), releaseContext = _release.ReleaseContext.fromFile(file), fileContext = _file.default.fromFile(file, releaseContext);
|
|
15
|
+
var file = (0, _file1.fileFromNothing)(), releaseContext = _release.ReleaseContext.fromFile(file), fileContext = _file.default.fromFile(file, releaseContext);
|
|
17
16
|
fileContext.verify();
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
return file;
|
|
21
|
-
}
|
|
17
|
+
var combinedCustomGrammar = (0, _grammar.combinedCustomGrammarFromNothing)();
|
|
18
|
+
debugger;
|
|
22
19
|
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9leGFtcGxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgXCIuL2luZGV4XCI7XG5cbmltcG9ydCBGaWxlQ29udGV4dCBmcm9tIFwiLi9jb250ZXh0L2ZpbGVcIjtcblxuaW1wb3J0IHsgUmVsZWFzZUNvbnRleHQgfSBmcm9tIFwiLi9leGFtcGxlL2NvbnRleHQvcmVsZWFzZVwiO1xuaW1wb3J0IHsgZmlsZUZyb21Ob3RoaW5nIH0gZnJvbSBcIi4vZXhhbXBsZS91dGlsaXRpZXMvZmlsZVwiO1xuaW1wb3J0IHsgY29tYmluZWRDdXN0b21HcmFtbWFyRnJvbU5vdGhpbmcgfSBmcm9tIFwiLi9leGFtcGxlL3V0aWxpdGllcy9ncmFtbWFyXCI7XG5cbmNvbnN0IGZpbGUgPSBmaWxlRnJvbU5vdGhpbmcoKSxcbiAgICAgIHJlbGVhc2VDb250ZXh0ID0gUmVsZWFzZUNvbnRleHQuZnJvbUZpbGUoZmlsZSksXG4gICAgICBmaWxlQ29udGV4dCA9IEZpbGVDb250ZXh0LmZyb21GaWxlKGZpbGUsIHJlbGVhc2VDb250ZXh0KTtcblxuZmlsZUNvbnRleHQudmVyaWZ5KCk7XG5cbmNvbnN0IGNvbWJpbmVkQ3VzdG9tR3JhbW1hciA9IGNvbWJpbmVkQ3VzdG9tR3JhbW1hckZyb21Ob3RoaW5nKCk7XG5cbmRlYnVnZ2VyXG4iXSwibmFtZXMiOlsiZmlsZSIsImZpbGVGcm9tTm90aGluZyIsInJlbGVhc2VDb250ZXh0IiwiUmVsZWFzZUNvbnRleHQiLCJmcm9tRmlsZSIsImZpbGVDb250ZXh0IiwiRmlsZUNvbnRleHQiLCJ2ZXJpZnkiLCJjb21iaW5lZEN1c3RvbUdyYW1tYXIiLCJjb21iaW5lZEN1c3RvbUdyYW1tYXJGcm9tTm90aGluZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7UUFFTzsyREFFaUI7dUJBRU87cUJBQ0M7dUJBQ2lCOzs7Ozs7QUFFakQsSUFBTUEsT0FBT0MsSUFBQUEsc0JBQWUsS0FDdEJDLGlCQUFpQkMsdUJBQWMsQ0FBQ0MsUUFBUSxDQUFDSixPQUN6Q0ssY0FBY0MsYUFBVyxDQUFDRixRQUFRLENBQUNKLE1BQU1FO0FBRS9DRyxZQUFZRSxNQUFNO0FBRWxCLElBQU1DLHdCQUF3QkMsSUFBQUEseUNBQWdDO0FBRTlELFFBQVEifQ==
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "occam-furtle",
|
|
3
3
|
"author": "James Smith",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.49",
|
|
5
5
|
"license": "MIT, Anti-996",
|
|
6
6
|
"homepage": "https://github.com/djalbat/occam-furtle",
|
|
7
7
|
"description": "Occam's Furtle language.",
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
},
|
|
17
17
|
"devDependencies": {
|
|
18
18
|
"@swc/core": "^1.5.6",
|
|
19
|
+
"occam-custom-grammars": "^5.0.988",
|
|
19
20
|
"occam-entities": "^1.0.238",
|
|
20
21
|
"watchful-cli": "^1.7.56"
|
|
21
22
|
},
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { File } from "occam-entities";
|
|
4
|
+
import { fileSystemUtilities } from "necessary";
|
|
5
|
+
|
|
6
|
+
const { readFile } = fileSystemUtilities;
|
|
7
|
+
|
|
8
|
+
export function fileFromNothing() {
|
|
9
|
+
const filePath = "example/Free and bound variables.ftl",
|
|
10
|
+
fileContent = readFile(filePath),
|
|
11
|
+
path = filePath, ///
|
|
12
|
+
content = fileContent, ///
|
|
13
|
+
released = false,
|
|
14
|
+
file = File.fromPathContentAndReleased(path, content, released);
|
|
15
|
+
|
|
16
|
+
return file;
|
|
17
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { fileSystemUtilities } from "necessary";
|
|
4
|
+
import { CustomGrammar, CombinedCustomGrammar } from "occam-custom-grammars";
|
|
5
|
+
|
|
6
|
+
const { readFile } = fileSystemUtilities;
|
|
7
|
+
|
|
8
|
+
export function combinedCustomGrammarFromNothing() {
|
|
9
|
+
const filePath = "example/customGrammars.json",
|
|
10
|
+
fileContent = readFile(filePath),
|
|
11
|
+
json = JSON.parse(fileContent),
|
|
12
|
+
customGrammars = customGrammarsFromJSON(json),
|
|
13
|
+
includeDefault = false,
|
|
14
|
+
combinedCustomGrammar = CombinedCustomGrammar.fromCustomGrammars(customGrammars, includeDefault);
|
|
15
|
+
|
|
16
|
+
return combinedCustomGrammar;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function customGrammarsFromJSON(json) {
|
|
20
|
+
const customGrammarsJSON = json, ///
|
|
21
|
+
customGrammars = customGrammarsJSON.map((customGrammarsJSON) => {
|
|
22
|
+
const json = customGrammarsJSON, ///
|
|
23
|
+
customGrammar = CustomGrammar.fromJSON(json);
|
|
24
|
+
|
|
25
|
+
return customGrammar;
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
return customGrammars;
|
|
29
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { lexersUtilities, parsersUtilities } from "occam-custom-grammars";
|
|
4
|
+
|
|
5
|
+
import { combinedCustomGrammarFromNothing } from "../utilities/grammar";
|
|
6
|
+
|
|
7
|
+
const { nominalLexerFromCombinedCustomGrammar } = lexersUtilities,
|
|
8
|
+
{ nominalParserFromCombinedCustomGrammar } = parsersUtilities;
|
|
9
|
+
|
|
10
|
+
const combinedCustomGrammar = combinedCustomGrammarFromNothing();
|
|
11
|
+
|
|
12
|
+
export function nominalLexerFromNothing() {
|
|
13
|
+
const nominalLexer = nominalLexerFromCombinedCustomGrammar(combinedCustomGrammar);
|
|
14
|
+
|
|
15
|
+
return nominalLexer;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export function nominalParserFromNothing() {
|
|
19
|
+
|
|
20
|
+
}
|
package/src/example.js
CHANGED
|
@@ -2,28 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
import "./index";
|
|
4
4
|
|
|
5
|
-
import { File } from "occam-entities";
|
|
6
|
-
import { fileSystemUtilities } from "necessary";
|
|
7
|
-
|
|
8
5
|
import FileContext from "./context/file";
|
|
9
6
|
|
|
10
7
|
import { ReleaseContext } from "./example/context/release";
|
|
8
|
+
import { fileFromNothing } from "./example/utilities/file";
|
|
9
|
+
import { combinedCustomGrammarFromNothing } from "./example/utilities/grammar";
|
|
11
10
|
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
const filePath = "first-order-logic/Procedures/Free and bound variables.ftl",
|
|
15
|
-
file = fileFromFilePath(filePath),
|
|
11
|
+
const file = fileFromNothing(),
|
|
16
12
|
releaseContext = ReleaseContext.fromFile(file),
|
|
17
13
|
fileContext = FileContext.fromFile(file, releaseContext);
|
|
18
14
|
|
|
19
15
|
fileContext.verify();
|
|
20
16
|
|
|
21
|
-
|
|
22
|
-
const fileContent = readFile(filePath),
|
|
23
|
-
path = filePath, ///
|
|
24
|
-
content = fileContent, ///
|
|
25
|
-
released = false,
|
|
26
|
-
file = File.fromPathContentAndReleased(path, content, released);
|
|
17
|
+
const combinedCustomGrammar = combinedCustomGrammarFromNothing();
|
|
27
18
|
|
|
28
|
-
|
|
29
|
-
}
|
|
19
|
+
debugger
|