occam-furtle 3.0.519 → 3.0.521
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/block.js +9 -1
- package/lib/context/file/furtle.js +60 -10
- package/lib/element/importBinding.js +58 -8
- package/lib/element/importStatement.js +5 -4
- package/lib/element/label.js +5 -4
- package/lib/element/parameters.js +5 -4
- package/lib/element/procedureCall.js +10 -4
- package/lib/element/reference.js +5 -4
- package/lib/element/type.js +5 -4
- package/lib/example/furtle/bnf.js +45 -31
- package/lib/example/furtle/entries.js +2 -2
- package/package.json +5 -5
- package/src/context/block.js +14 -0
- package/src/context/file/furtle.js +92 -14
- package/src/element/importBinding.js +98 -14
- package/src/element/importStatement.js +6 -4
- package/src/element/label.js +6 -4
- package/src/element/parameters.js +6 -4
- package/src/element/procedureCall.js +12 -3
- package/src/element/reference.js +6 -4
- package/src/element/type.js +6 -4
- package/src/example/furtle/bnf.js +44 -30
- package/src/example/furtle/entries.js +1 -1
package/lib/element/reference.js
CHANGED
|
@@ -35,13 +35,14 @@ const _default = (0, _elements.define)(class Reference extends _occamlanguages.E
|
|
|
35
35
|
}
|
|
36
36
|
static name = "Reference";
|
|
37
37
|
static fromJSON(json, context) {
|
|
38
|
-
|
|
38
|
+
let reference;
|
|
39
|
+
(0, _context.instantiate)((context)=>{
|
|
39
40
|
const { string } = json, referencelNode = (0, _instantiate.instantiateReference)(string, context), node = referencelNode, breakPoint = null, name = (0, _element.nameFromReferenceNode)(referencelNode, context);
|
|
40
41
|
context = null;
|
|
41
|
-
|
|
42
|
-
return referencel;
|
|
42
|
+
reference = new Reference(context, string, node, breakPoint, name);
|
|
43
43
|
}, context);
|
|
44
|
+
return reference;
|
|
44
45
|
}
|
|
45
46
|
});
|
|
46
47
|
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3JlZmVyZW5jZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyBpbnN0YW50aWF0ZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvY29udGV4dFwiO1xuaW1wb3J0IHsgaW5zdGFudGlhdGVSZWZlcmVuY2UgfSBmcm9tIFwiLi4vcHJvY2Vzcy9pbnN0YW50aWF0ZVwiO1xuaW1wb3J0IHsgbmFtZUZyb21SZWZlcmVuY2VOb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9lbGVtZW50XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBSZWZlcmVuY2UgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBuYW1lKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gIH1cblxuICBnZXROYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cblxuICBnZXRQcm9jZWR1cmVOYW1lKCkge1xuICAgIGNvbnN0IHByb2NlZHVyZU5hbWUgPSB0aGlzLm5hbWU7ICAvLy9cblxuICAgIHJldHVybiBwcm9jZWR1cmVOYW1lO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGxldCBqc29uO1xuXG4gICAgY29uc3Qgc3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTtcblxuICAgIGpzb24gPSB7XG4gICAgICBzdHJpbmdcbiAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiUmVmZXJlbmNlXCI7XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICBsZXQgcmVmZXJlbmNlO1xuXG4gICAgaW5zdGFudGlhdGUoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IHsgc3RyaW5nIH0gPSBqc29uLFxuICAgICAgICAgICAgcmVmZXJlbmNlbE5vZGUgPSBpbnN0YW50aWF0ZVJlZmVyZW5jZShzdHJpbmcsIGNvbnRleHQpLFxuICAgICAgICAgICAgbm9kZSA9IHJlZmVyZW5jZWxOb2RlLCAgLy8vXG4gICAgICAgICAgICBicmVha1BvaW50ID0gbnVsbCxcbiAgICAgICAgICAgIG5hbWUgPSBuYW1lRnJvbVJlZmVyZW5jZU5vZGUocmVmZXJlbmNlbE5vZGUsIGNvbnRleHQpO1xuXG4gICAgICBjb250ZXh0ID0gbnVsbDtcblxuICAgICAgcmVmZXJlbmNlID0gbmV3IFJlZmVyZW5jZShjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIG5hbWUpO1xuICAgIH0sIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHJlZmVyZW5jZTtcbiAgfVxufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiUmVmZXJlbmNlIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsIm5hbWUiLCJnZXROYW1lIiwiZ2V0UHJvY2VkdXJlTmFtZSIsInByb2NlZHVyZU5hbWUiLCJ0b0pTT04iLCJqc29uIiwiZ2V0U3RyaW5nIiwiZnJvbUpTT04iLCJyZWZlcmVuY2UiLCJpbnN0YW50aWF0ZSIsInJlZmVyZW5jZWxOb2RlIiwiaW5zdGFudGlhdGVSZWZlcmVuY2UiLCJuYW1lRnJvbVJlZmVyZW5jZU5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVNBOzs7ZUFBQTs7O2dDQVB3QjswQkFFRDt5QkFDSzs2QkFDUzt5QkFDQztNQUV0QyxXQUFlQSxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLGtCQUFrQkMsdUJBQU87SUFDbkQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxJQUFJLENBQUU7UUFDbkQsS0FBSyxDQUFDSixTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLElBQUksR0FBR0E7SUFDZDtJQUVBQyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUNELElBQUk7SUFDbEI7SUFFQUUsbUJBQW1CO1FBQ2pCLE1BQU1DLGdCQUFnQixJQUFJLENBQUNILElBQUksRUFBRyxHQUFHO1FBRXJDLE9BQU9HO0lBQ1Q7SUFFQUMsU0FBUztRQUNQLElBQUlDO1FBRUosTUFBTVIsU0FBUyxJQUFJLENBQUNTLFNBQVM7UUFFN0JELE9BQU87WUFDTFI7UUFDRjtRQUVBLE9BQU9RO0lBQ1Q7SUFFQSxPQUFPTCxPQUFPLFlBQVk7SUFFMUIsT0FBT08sU0FBU0YsSUFBSSxFQUFFVCxPQUFPLEVBQUU7UUFDN0IsSUFBSVk7UUFFSkMsSUFBQUEsb0JBQVcsRUFBQyxDQUFDYjtZQUNYLE1BQU0sRUFBRUMsTUFBTSxFQUFFLEdBQUdRLE1BQ2JLLGlCQUFpQkMsSUFBQUEsaUNBQW9CLEVBQUNkLFFBQVFELFVBQzlDRSxPQUFPWSxnQkFDUFgsYUFBYSxNQUNiQyxPQUFPWSxJQUFBQSw4QkFBcUIsRUFBQ0YsZ0JBQWdCZDtZQUVuREEsVUFBVTtZQUVWWSxZQUFZLElBQUlkLFVBQVVFLFNBQVNDLFFBQVFDLE1BQU1DLFlBQVlDO1FBQy9ELEdBQUdKO1FBRUgsT0FBT1k7SUFDVDtBQUNGIn0=
|
package/lib/element/type.js
CHANGED
|
@@ -89,12 +89,13 @@ const _default = (0, _elements.define)(class Type extends _occamlanguages.Elemen
|
|
|
89
89
|
}
|
|
90
90
|
static name = "Type";
|
|
91
91
|
static fromJSON(json, context) {
|
|
92
|
-
|
|
92
|
+
let type;
|
|
93
|
+
(0, _context.instantiate)((context)=>{
|
|
93
94
|
const { string } = json, typeNode = (0, _instantiate.instantiateType)(string, context), node = typeNode, breakPoint = null, name = (0, _element.nameFromTypeNode)(typeNode, context), argumentType = (0, _element.argumentTypeFromTypeNode)(typeNode, context);
|
|
94
95
|
context = null;
|
|
95
|
-
|
|
96
|
-
return type;
|
|
96
|
+
type = new Type(context, string, node, breakPoint, name, argumentType);
|
|
97
97
|
}, context);
|
|
98
|
+
return type;
|
|
98
99
|
}
|
|
99
100
|
static fromTypeName(typeName, context) {
|
|
100
101
|
let type = null;
|
|
@@ -113,4 +114,4 @@ const _default = (0, _elements.define)(class Type extends _occamlanguages.Elemen
|
|
|
113
114
|
}
|
|
114
115
|
});
|
|
115
116
|
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3R5cGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuXG5pbXBvcnQgeyBpbnN0YW50aWF0ZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvY29udGV4dFwiO1xuaW1wb3J0IHsgaW5zdGFudGlhdGVUeXBlIH0gZnJvbSBcIi4uL3Byb2Nlc3MvaW5zdGFudGlhdGVcIjtcbmltcG9ydCB7IHR5cGVTdHJpbmdGcm9tVHlwZU5hbWVBbmRBcmd1bWVudFR5cGVOYW1lIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9zdHJpbmdcIjtcbmltcG9ydCB7IG5hbWVGcm9tVHlwZU5vZGUsIGFyZ3VtZW50VHlwZUZyb21UeXBlTm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvZWxlbWVudFwiO1xuaW1wb3J0IHsgTElTVF9UWVBFX05BTUUsIFNUUklOR19UWVBFX05BTUUsIEJPT0xFQU5fVFlQRV9OQU1FLCBJTlRFR0VSX1RZUEVfTkFNRSwgTk9NSU5BTF9WQUxVRV9UWVBFX05BTUUgfSBmcm9tIFwiLi4vdHlwZU5hbWVzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBUeXBlIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgbmFtZSwgYXJndW1lbnRUeXBlKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy5hcmd1bWVudFR5cGUgPSBhcmd1bWVudFR5cGU7XG4gIH1cblxuICBnZXROYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cblxuICBnZXRBcmd1bWVudFR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXJndW1lbnRUeXBlO1xuICB9XG5cbiAgaXNMaXN0VHlwZSgpIHtcbiAgICBjb25zdCBsaXN0VHlwZSA9ICh0aGlzLm5hbWUgPT09IExJU1RfVFlQRV9OQU1FKTtcblxuICAgIHJldHVybiBsaXN0VHlwZTtcbiAgfVxuXG4gIGlzU3RyaW5nVHlwZSgpIHtcbiAgICBjb25zdCBib29sZWFuVHlwZSA9ICh0aGlzLm5hbWUgPT09IFNUUklOR19UWVBFX05BTUUpO1xuXG4gICAgcmV0dXJuIGJvb2xlYW5UeXBlO1xuICB9XG5cbiAgaXNCb29sZWFuVHlwZSgpIHtcbiAgICBjb25zdCBib29sZWFuVHlwZSA9ICh0aGlzLm5hbWUgPT09IEJPT0xFQU5fVFlQRV9OQU1FKTtcblxuICAgIHJldHVybiBib29sZWFuVHlwZTtcbiAgfVxuXG4gIGlzSW50ZWdlclR5cGUoKSB7XG4gICAgY29uc3QgaW50ZWdlclR5cGUgPSAodGhpcy5uYW1lID09PSBJTlRFR0VSX1RZUEVfTkFNRSk7XG5cbiAgICByZXR1cm4gaW50ZWdlclR5cGU7XG4gIH1cblxuICBpc05vbWluYWxWYWx1ZVR5cGUoKSB7XG4gICAgY29uc3QgbGlzdFR5cGUgPSAodGhpcy5uYW1lID09PSBOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRSk7XG5cbiAgICByZXR1cm4gbGlzdFR5cGU7XG4gIH1cblxuICBpc0VxdWFsVG8odHlwZSkge1xuICAgIGxldCBlcXVhbFRvID0gZmFsc2U7XG5cbiAgICBjb25zdCB0eXBlTmFtZSA9IHR5cGUuZ2V0TmFtZSgpO1xuXG4gICAgaWYgKHRoaXMubmFtZSA9PT0gdHlwZU5hbWUpIHtcbiAgICAgIHN3aXRjaCAodGhpcy5uYW1lKSB7XG4gICAgICAgIGNhc2UgTElTVF9UWVBFX05BTUU6IHtcbiAgICAgICAgICBjb25zdCB0eXBlQXJndW1lbnRUeXBlID0gdHlwZS5nZXRBcmd1bWVudFR5cGUoKTtcblxuICAgICAgICAgIGlmICgodGhpcy5hcmd1bWVudFR5cGUgPT09IG51bGwpIHx8ICh0eXBlQXJndW1lbnRUeXBlID09PSBudWxsKSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuYXJndW1lbnRUeXBlID09PSB0eXBlQXJndW1lbnRUeXBlKSB7XG4gICAgICAgICAgICAgIGVxdWFsVG8gPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBhcmd1ZW1udFR5cGVFcXVhbFRvVHlwZUFyZ3VtZW50VHlwZSA9IHRoaXMuYXJndW1lbnRUeXBlLmlzRXF1YWxUbyh0eXBlQXJndW1lbnRUeXBlKTtcblxuICAgICAgICAgICAgaWYgKGFyZ3VlbW50VHlwZUVxdWFsVG9UeXBlQXJndW1lbnRUeXBlKSB7XG4gICAgICAgICAgICAgIGVxdWFsVG8gPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgY2FzZSBTVFJJTkdfVFlQRV9OQU1FOlxuICAgICAgICBjYXNlIEJPT0xFQU5fVFlQRV9OQU1FOlxuICAgICAgICBjYXNlIElOVEVHRVJfVFlQRV9OQU1FOlxuICAgICAgICBjYXNlIE5PTUlOQUxfVkFMVUVfVFlQRV9OQU1FOiB7XG4gICAgICAgICAgZXF1YWxUbyA9IHRydWU7XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBlcXVhbFRvO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGxldCBqc29uO1xuXG4gICAgY29uc3Qgc3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTtcblxuICAgIGpzb24gPSB7XG4gICAgICBzdHJpbmdcbiAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiVHlwZVwiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgbGV0IHR5cGU7XG5cbiAgICBpbnN0YW50aWF0ZSgoY29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgeyBzdHJpbmcgfSA9IGpzb24sXG4gICAgICAgICAgICB0eXBlTm9kZSA9IGluc3RhbnRpYXRlVHlwZShzdHJpbmcsIGNvbnRleHQpLFxuICAgICAgICAgICAgbm9kZSA9IHR5cGVOb2RlLCAgLy8vXG4gICAgICAgICAgICBicmVha1BvaW50ID0gbnVsbCxcbiAgICAgICAgICAgIG5hbWUgPSBuYW1lRnJvbVR5cGVOb2RlKHR5cGVOb2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgIGFyZ3VtZW50VHlwZSA9IGFyZ3VtZW50VHlwZUZyb21UeXBlTm9kZSh0eXBlTm9kZSwgY29udGV4dCk7XG5cbiAgICAgIGNvbnRleHQgPSBudWxsO1xuXG4gICAgICB0eXBlID0gbmV3IFR5cGUoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBuYW1lLCBhcmd1bWVudFR5cGUpO1xuICAgIH0sIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVR5cGVOYW1lKHR5cGVOYW1lLCBjb250ZXh0KSB7XG4gICAgbGV0IHR5cGUgPSBudWxsO1xuXG4gICAgaWYgKHR5cGVOYW1lICE9PSBudWxsKSB7XG4gICAgICBjb25zdCBub2RlID0gbnVsbCwgIC8vL1xuICAgICAgICAgICAgbmFtZSA9IHR5cGVOYW1lLCAgLy8vXG4gICAgICAgICAgICBhcmd1bWVudFR5cGUgPSBudWxsLFxuICAgICAgICAgICAgdHlwZVN0cmluZyA9IHR5cGVOYW1lLCAgLy8vXG4gICAgICAgICAgICBzdHJpbmcgPSB0eXBlU3RyaW5nLCAgLy8vXG4gICAgICAgICAgICBicmVha1BvaW50ID0gbnVsbDtcblxuICAgICAgY29udGV4dCA9IG51bGw7XG5cbiAgICAgIHR5cGUgPSBuZXcgVHlwZShjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIG5hbWUsIGFyZ3VtZW50VHlwZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cblxuICBzdGF0aWMgZnJvbVR5cGVOYW1lQW5kQXJndW1lbnRUeXBlTmFtZSh0eXBlTmFtZSwgYXJndW1lbnRUeXBlTmFtZSwgY29udGV4dCkge1xuICAgIGNvbnN0IG5vZGUgPSBudWxsLCAgLy8vXG4gICAgICAgICAgbmFtZSA9IHR5cGVOYW1lLCAgLy8vXG4gICAgICAgICAgYXJndW1lbnRUeXBlID0gVHlwZS5mcm9tVHlwZU5hbWUoYXJndW1lbnRUeXBlTmFtZSwgY29udGV4dCksXG4gICAgICAgICAgdHlwZVN0cmluZyA9IHR5cGVTdHJpbmdGcm9tVHlwZU5hbWVBbmRBcmd1bWVudFR5cGVOYW1lKHR5cGVOYW1lLCBhcmd1bWVudFR5cGVOYW1lKSxcbiAgICAgICAgICBzdHJpbmcgPSB0eXBlU3RyaW5nLCAgLy8vXG4gICAgICAgICAgYnJlYWtQb2ludCA9IG51bGw7XG5cbiAgICBjb250ZXh0ID0gbnVsbDtcblxuICAgIGNvbnN0IHR5cGUgPSBuZXcgVHlwZShjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIG5hbWUsIGFyZ3VtZW50VHlwZSk7XG5cbiAgICByZXR1cm4gdHlwZTtcbiAgfVxuXG59KTtcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJUeXBlIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsIm5hbWUiLCJhcmd1bWVudFR5cGUiLCJnZXROYW1lIiwiZ2V0QXJndW1lbnRUeXBlIiwiaXNMaXN0VHlwZSIsImxpc3RUeXBlIiwiTElTVF9UWVBFX05BTUUiLCJpc1N0cmluZ1R5cGUiLCJib29sZWFuVHlwZSIsIlNUUklOR19UWVBFX05BTUUiLCJpc0Jvb2xlYW5UeXBlIiwiQk9PTEVBTl9UWVBFX05BTUUiLCJpc0ludGVnZXJUeXBlIiwiaW50ZWdlclR5cGUiLCJJTlRFR0VSX1RZUEVfTkFNRSIsImlzTm9taW5hbFZhbHVlVHlwZSIsIk5PTUlOQUxfVkFMVUVfVFlQRV9OQU1FIiwiaXNFcXVhbFRvIiwidHlwZSIsImVxdWFsVG8iLCJ0eXBlTmFtZSIsInR5cGVBcmd1bWVudFR5cGUiLCJhcmd1ZW1udFR5cGVFcXVhbFRvVHlwZUFyZ3VtZW50VHlwZSIsInRvSlNPTiIsImpzb24iLCJnZXRTdHJpbmciLCJmcm9tSlNPTiIsImluc3RhbnRpYXRlIiwidHlwZU5vZGUiLCJpbnN0YW50aWF0ZVR5cGUiLCJuYW1lRnJvbVR5cGVOb2RlIiwiYXJndW1lbnRUeXBlRnJvbVR5cGVOb2RlIiwiZnJvbVR5cGVOYW1lIiwidHlwZVN0cmluZyIsImZyb21UeXBlTmFtZUFuZEFyZ3VtZW50VHlwZU5hbWUiLCJhcmd1bWVudFR5cGVOYW1lIiwidHlwZVN0cmluZ0Zyb21UeXBlTmFtZUFuZEFyZ3VtZW50VHlwZU5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVlBOzs7ZUFBQTs7O2dDQVZ3QjswQkFFRDt5QkFFSzs2QkFDSTt3QkFDMEI7eUJBQ0M7MkJBQ3FEO01BRWhILFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsYUFBYUMsdUJBQU87SUFDOUMsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxJQUFJLEVBQUVDLFlBQVksQ0FBRTtRQUNqRSxLQUFLLENBQUNMLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsWUFBWSxHQUFHQTtJQUN0QjtJQUVBQyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUNGLElBQUk7SUFDbEI7SUFFQUcsa0JBQWtCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDRixZQUFZO0lBQzFCO0lBRUFHLGFBQWE7UUFDWCxNQUFNQyxXQUFZLElBQUksQ0FBQ0wsSUFBSSxLQUFLTSx5QkFBYztRQUU5QyxPQUFPRDtJQUNUO0lBRUFFLGVBQWU7UUFDYixNQUFNQyxjQUFlLElBQUksQ0FBQ1IsSUFBSSxLQUFLUywyQkFBZ0I7UUFFbkQsT0FBT0Q7SUFDVDtJQUVBRSxnQkFBZ0I7UUFDZCxNQUFNRixjQUFlLElBQUksQ0FBQ1IsSUFBSSxLQUFLVyw0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
|
|
@@ -40,34 +40,6 @@ const bnf = `
|
|
|
40
40
|
|
|
41
41
|
|
|
42
42
|
|
|
43
|
-
importBindings ::= importBinding ( "," importBinding )* ;
|
|
44
|
-
|
|
45
|
-
namedBindings ::= namedBinding ( "," namedBinding )* ;
|
|
46
|
-
|
|
47
|
-
parameters ::= parameter ( "," parameter )* ;
|
|
48
|
-
|
|
49
|
-
bindings ::= binding ( "," binding )* ;
|
|
50
|
-
|
|
51
|
-
values ::= value ( "," value )* ;
|
|
52
|
-
|
|
53
|
-
terms ::= term ( "," term )* ;
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
importBinding ::= reference ( "as" label )? ;
|
|
58
|
-
|
|
59
|
-
namedBinding ::= type [name] ( "as" [name] )? ;
|
|
60
|
-
|
|
61
|
-
parameter ::= type [name] ;
|
|
62
|
-
|
|
63
|
-
binding ::= type [name]
|
|
64
|
-
|
|
65
|
-
| ε
|
|
66
|
-
|
|
67
|
-
;
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
43
|
procedureCall ::= reference<NO_WHITESPACE>"(" values? ")" ;
|
|
72
44
|
|
|
73
45
|
returnBlock.. ::= "{" ( statement | nonsense )* returnStatement "}" ;
|
|
@@ -79,6 +51,10 @@ const bnf = `
|
|
|
79
51
|
every ::= "every"<NO_WHITESPACE>"(" variable "," anonymousProcedure ")" ;
|
|
80
52
|
|
|
81
53
|
some ::= "some"<NO_WHITESPACE>"(" variable "," anonymousProcedure ")" ;
|
|
54
|
+
|
|
55
|
+
all ::= "all"<NO_WHITESPACE>"(" variable "," referencesListLiteral ( "," values )? ")" ;
|
|
56
|
+
|
|
57
|
+
exists ::= "exists"<NO_WHITESPACE>"(" variable "," referencesListLiteral ( "," values )? ")" ;
|
|
82
58
|
|
|
83
59
|
|
|
84
60
|
|
|
@@ -104,6 +80,40 @@ const bnf = `
|
|
|
104
80
|
|
|
105
81
|
|
|
106
82
|
|
|
83
|
+
referencesListLiteral ::= "[" references? "]" ;
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
importBindings ::= importBinding ( "," importBinding )* ;
|
|
88
|
+
|
|
89
|
+
namedBindings ::= namedBinding ( "," namedBinding )* ;
|
|
90
|
+
|
|
91
|
+
parameters ::= parameter ( "," parameter )* ;
|
|
92
|
+
|
|
93
|
+
references ::= reference ( "," reference )* ;
|
|
94
|
+
|
|
95
|
+
bindings ::= binding ( "," binding )* ;
|
|
96
|
+
|
|
97
|
+
values ::= value ( "," value )* ;
|
|
98
|
+
|
|
99
|
+
terms ::= term ( "," term )* ;
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
importBinding ::= reference ( "as" label )? ;
|
|
104
|
+
|
|
105
|
+
namedBinding ::= type [name] ( "as" [name] )? ;
|
|
106
|
+
|
|
107
|
+
parameter ::= type [name] ;
|
|
108
|
+
|
|
109
|
+
binding ::= type [name]
|
|
110
|
+
|
|
111
|
+
| ε
|
|
112
|
+
|
|
113
|
+
;
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
|
|
107
117
|
comparisonTerm ::= term ( "==" | "!=" ) term ;
|
|
108
118
|
|
|
109
119
|
bracketedTerm ::= "(" term ")" ;
|
|
@@ -126,6 +136,10 @@ const bnf = `
|
|
|
126
136
|
|
|
127
137
|
| some
|
|
128
138
|
|
|
139
|
+
| all
|
|
140
|
+
|
|
141
|
+
| exists
|
|
142
|
+
|
|
129
143
|
| nodesQuery
|
|
130
144
|
|
|
131
145
|
| nodeQuery
|
|
@@ -164,7 +178,7 @@ const bnf = `
|
|
|
164
178
|
|
|
165
179
|
|
|
166
180
|
|
|
167
|
-
|
|
181
|
+
type ::= "List"<NO_WHITESPACE>"<" ( "Node" | "String" | "Boolean" | "Integer" ) ">"
|
|
168
182
|
|
|
169
183
|
| "Node"
|
|
170
184
|
|
|
@@ -200,7 +214,7 @@ const bnf = `
|
|
|
200
214
|
|
|
201
215
|
reference. ::= [name] ;
|
|
202
216
|
|
|
203
|
-
variable
|
|
217
|
+
variable. ::= [name] ;
|
|
204
218
|
|
|
205
219
|
label. ::= [name] ;
|
|
206
220
|
|
|
@@ -215,4 +229,4 @@ const bnf = `
|
|
|
215
229
|
`;
|
|
216
230
|
const _default = bnf;
|
|
217
231
|
|
|
218
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leGFtcGxlL2Z1cnRsZS9ibmYuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmNvbnN0IGJuZiA9IGBcblxuICAgIGRvY3VtZW50ICAgICAgICAgICAgICAgIDo6PSAgKCBpbXBvcnRTdGF0ZW1lbnQgfCBwcm9jZWR1cmUgfCBlcnJvciApKyA7XG4gICAgXG4gICAgXG4gICAgXG4gICAgcHJvY2VkdXJlICAgICAgICAgICAgICAgOjo9ICBcImV4cG9ydFwiPyB0eXBlIGxhYmVsPE5PX1dISVRFU1BBQ0U+
|
|
232
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leGFtcGxlL2Z1cnRsZS9ibmYuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmNvbnN0IGJuZiA9IGBcblxuICAgIGRvY3VtZW50ICAgICAgICAgICAgICAgIDo6PSAgKCBpbXBvcnRTdGF0ZW1lbnQgfCBwcm9jZWR1cmUgfCBlcnJvciApKyA7XG4gICAgXG4gICAgXG4gICAgXG4gICAgcHJvY2VkdXJlICAgICAgICAgICAgICAgOjo9ICBcImV4cG9ydFwiPyB0eXBlIGxhYmVsPE5PX1dISVRFU1BBQ0U+XCIoXCIgcGFyYW1ldGVycz8gXCIpXCIgcmV0dXJuQmxvY2sgO1xuICAgIFxuICAgIGltcG9ydFN0YXRlbWVudCAgICAgICAgIDo6PSAgXCJpbXBvcnRcIiBpbXBvcnRCaW5kaW5ncyBcImZyb21cIiBbc3RyaW5nLWxpdGVyYWxdIFwiO1wiIDtcbiAgICBcbiAgICBhbm9ueW1vdXNQcm9jZWR1cmUgICAgICA6Oj0gIHR5cGUgXCIoXCIgcGFyYW1ldGVycz8gXCIpXCIgcmV0dXJuQmxvY2sgO1xuICAgIFxuICAgIHN0YXRlbWVudCAgICAgICAgICAgICAgIDo6PSAgdmFyaWFibGVBc3NpZ25tZW50c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBvYmplY3RBc3NpZ25tZW50XG4gICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgbGlzdEFzc2lnbm1lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyAgXG4gICAgICBcbiAgICAgIFxuICAgIFxuICAgIHZhcmlhYmxlQXNzaWdubWVudHMgICAgIDo6PSAgdHlwZSB2YXJpYWJsZUFzc2lnbm1lbnQgKCBcIixcIiB2YXJpYWJsZUFzc2lnbm1lbnQgKSogXCI7XCIgO1xuICAgIFxuICAgIHZhcmlhYmxlQXNzaWdubWVudCAgICAgIDo6PSAgdmFyaWFibGUgXCI9XCIgZXhwcmVzc2lvbiA7XG4gICAgXG4gICAgb2JqZWN0QXNzaWdubWVudCAgICAgICAgOjo9ICBcIntcIiBuYW1lZEJpbmRpbmdzIFwifVwiIFwiPVwiIHZhcmlhYmxlIFwiO1wiIDtcbiAgICBcbiAgICBsaXN0QXNzaWdubWVudCAgICAgICAgIDo6PSAgXCJbXCIgYmluZGluZ3MgXCJdXCIgXCI9XCIgdmFyaWFibGUgXCI7XCIgO1xuICAgIFxuXG5cbiAgICBwcm9jZWR1cmVDYWxsICAgICAgICAgICA6Oj0gIHJlZmVyZW5jZTxOT19XSElURVNQQUNFPlwiKFwiIHZhbHVlcz8gXCIpXCIgO1xuICAgIFxuICAgIHJldHVybkJsb2NrLi4gICAgICAgICAgIDo6PSAgXCJ7XCIgKCBzdGF0ZW1lbnQgfCBub25zZW5zZSApKiByZXR1cm5TdGF0ZW1lbnQgXCJ9XCIgO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgIHRlcm5hcnkgICAgICAgICAgICAgICAgIDo6PSAgXCJpZlwiIFwiKFwiIHRlcm0gXCIpXCIgZXhwcmVzc2lvbiBcImVsc2VcIiBleHByZXNzaW9uIDtcbiAgICBcbiAgICByZWR1Y2UgICAgICAgICAgICAgICAgICA6Oj0gIFwicmVkdWNlXCI8Tk9fV0hJVEVTUEFDRT5cIihcIiB2YXJpYWJsZSBcIixcIiBhbm9ueW1vdXNQcm9jZWR1cmUgXCIsXCIgdmFsdWUgXCIpXCIgO1xuICAgIFxuICAgIGV2ZXJ5ICAgICAgICAgICAgICAgICAgIDo6PSAgXCJldmVyeVwiPE5PX1dISVRFU1BBQ0U+XCIoXCIgdmFyaWFibGUgXCIsXCIgYW5vbnltb3VzUHJvY2VkdXJlIFwiKVwiIDtcbiAgICBcbiAgICBzb21lICAgICAgICAgICAgICAgICAgICA6Oj0gIFwic29tZVwiPE5PX1dISVRFU1BBQ0U+XCIoXCIgdmFyaWFibGUgXCIsXCIgYW5vbnltb3VzUHJvY2VkdXJlIFwiKVwiIDtcblxuICAgIGFsbCAgICAgICAgICAgICAgICAgICAgIDo6PSAgXCJhbGxcIjxOT19XSElURVNQQUNFPlwiKFwiIHZhcmlhYmxlIFwiLFwiIHJlZmVyZW5jZXNMaXN0TGl0ZXJhbCAoIFwiLFwiIHZhbHVlcyApPyBcIilcIiA7XG4gICAgXG4gICAgZXhpc3RzICAgICAgICAgICAgICAgICAgOjo9ICBcImV4aXN0c1wiPE5PX1dISVRFU1BBQ0U+XCIoXCIgdmFyaWFibGUgXCIsXCIgcmVmZXJlbmNlc0xpc3RMaXRlcmFsICggXCIsXCIgdmFsdWVzICk/IFwiKVwiIDsgICAgXG4gICAgXG4gICAgXG4gICAgXG4gICAgbm9kZXNRdWVyeSAgICAgICAgICAgICAgOjo9ICBcIm5vZGVzUXVlcnlcIjxOT19XSElURVNQQUNFPlwiKFwiIHZhcmlhYmxlIFwiLFwiIFtzdHJpbmctbGl0ZXJhbF0gXCIpXCIgO1xuICAgIFxuICAgIG5vZGVRdWVyeSAgICAgICAgICAgICAgIDo6PSAgXCJub2RlUXVlcnlcIjxOT19XSElURVNQQUNFPlwiKFwiIHZhcmlhYmxlIFwiLFwiIFtzdHJpbmctbGl0ZXJhbF0gXCIpXCIgO1xuICAgIFxuICAgIGxlbmd0aE9mICAgICAgICAgICAgICAgIDo6PSAgXCJsZW5ndGhPZlwiPE5PX1dISVRFU1BBQ0U+XCIoXCIgdmFyaWFibGUgXCIpXCIgO1xuICAgIFxuICAgIHRvSW50ZWdlciAgICAgICAgICAgICAgIDo6PSAgXCJ0b0ludGVnZXJcIjxOT19XSElURVNQQUNFPlwiKFwiIHZhcmlhYmxlIFwiKVwiIDtcbiAgICBcbiAgICB0cnlJbnRlZ2VyICAgICAgICAgICAgICA6Oj0gIFwidHJ5SW50ZWdlclwiPE5PX1dISVRFU1BBQ0U+XCIoXCIgdmFyaWFibGUgXCIpXCIgO1xuICAgIFxuICAgIHN0YXJ0c1dpdGggICAgICAgICAgICAgIDo6PSAgXCJzdGFydHNXaXRoXCI8Tk9fV0hJVEVTUEFDRT5cIihcIiB2YXJpYWJsZSBcIixcIiBbc3RyaW5nLWxpdGVyYWxdIFwiKVwiIDtcbiAgICBcbiAgICBlbmRzV2l0aCAgICAgICAgICAgICAgICA6Oj0gIFwiZW5kc1dpdGhcIjxOT19XSElURVNQQUNFPlwiKFwiIHZhcmlhYmxlIFwiLFwiIFtzdHJpbmctbGl0ZXJhbF0gXCIpXCIgO1xuICAgIFxuICAgIGNvbnRhaW5zICAgICAgICAgICAgICAgIDo6PSAgXCJjb250YWluc1wiPE5PX1dISVRFU1BBQ0U+XCIoXCIgdmFyaWFibGUgXCIsXCIgW3N0cmluZy1saXRlcmFsXSBcIilcIiA7XG4gICAgXG4gICAgXG4gICAgXG4gICAgcmV0dXJuU3RhdGVtZW50ICAgICAgICAgOjo9ICBcInJldHVyblwiIHZhbHVlIFwiO1wiIDsgXG4gICAgXG4gICAgXG4gICAgXG4gICAgcmVmZXJlbmNlc0xpc3RMaXRlcmFsICAgOjo9ICBcIltcIiByZWZlcmVuY2VzPyBcIl1cIiA7XG4gICAgIFxuICAgICBcbiAgICAgXG4gICAgaW1wb3J0QmluZGluZ3MgICAgICAgICAgOjo9ICBpbXBvcnRCaW5kaW5nICggXCIsXCIgaW1wb3J0QmluZGluZyApKiA7XG4gICAgXG4gICAgbmFtZWRCaW5kaW5ncyAgICAgICAgICAgOjo9ICBuYW1lZEJpbmRpbmcgKCBcIixcIiBuYW1lZEJpbmRpbmcgKSogO1xuICAgIFxuICAgIHBhcmFtZXRlcnMgICAgICAgICAgICAgIDo6PSAgcGFyYW1ldGVyICggXCIsXCIgcGFyYW1ldGVyICkqIDtcbiAgICBcbiAgICByZWZlcmVuY2VzICAgICAgICAgICAgICA6Oj0gIHJlZmVyZW5jZSAoIFwiLFwiIHJlZmVyZW5jZSApKiA7XG4gICAgXG4gICAgYmluZGluZ3MgICAgICAgICAgICAgICAgOjo9ICBiaW5kaW5nICggXCIsXCIgYmluZGluZyApKiA7XG4gICAgXG4gICAgdmFsdWVzICAgICAgICAgICAgICAgICAgOjo9ICB2YWx1ZSAoIFwiLFwiIHZhbHVlICkqIDtcbiAgICBcbiAgICB0ZXJtcyAgICAgICAgICAgICAgICAgICA6Oj0gIHRlcm0gKCBcIixcIiB0ZXJtICkqIDtcbiAgICBcblxuXG4gICAgaW1wb3J0QmluZGluZyAgICAgICAgICAgOjo9ICByZWZlcmVuY2UgKCBcImFzXCIgbGFiZWwgKT8gOyAgIFxuICAgIFxuICAgIG5hbWVkQmluZGluZyAgICAgICAgICAgIDo6PSAgdHlwZSBbbmFtZV0gKCBcImFzXCIgW25hbWVdICk/IDsgICBcbiAgICBcbiAgICBwYXJhbWV0ZXIgICAgICAgICAgICAgICA6Oj0gIHR5cGUgW25hbWVdIDtcblxuICAgIGJpbmRpbmcgICAgICAgICAgICAgICAgIDo6PSAgdHlwZSBbbmFtZV1cbiAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIM61IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgO1xuXG5cbiAgICBcbiAgICBjb21wYXJpc29uVGVybSAgICAgICAgICA6Oj0gIHRlcm0gKCBcIj09XCIgfCBcIiE9XCIgKSB0ZXJtIDsgXG4gICAgXG4gICAgYnJhY2tldGVkVGVybSAgICAgICAgICAgOjo9ICBcIihcIiB0ZXJtIFwiKVwiIDsgXG4gICAgXG4gICAgbmVnYXRlZFRlcm0gICAgICAgICAgICAgOjo9ICBcIiFcIjxOT19XSElURVNQQUNFPnRlcm0gOyBcbiAgICBcbiAgICBsb2dpY2FsVGVybSAgICAgICAgICAgICA6Oj0gIHRlcm0gKCBcInx8XCIgfCBcIiYmXCIgKSB0ZXJtIDsgXG5cblxuICAgIFxuICAgIGV4cHJlc3Npb24gICAgICAgICAgICAgIDo6PSAgcHJvY2VkdXJlQ2FsbFxuICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIHJldHVybkJsb2NrXG4gICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICB0ZXJuYXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIHJlZHVjZVxuICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgZXZlcnlcbiAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIHNvbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGV4aXN0c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBub2Rlc1F1ZXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIG5vZGVRdWVyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBsZW5ndGhPZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIHRvSW50ZWdlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIHRyeUludGVnZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBzdGFydHNXaXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGVuZHNXaXRoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGNvbnRhaW5zXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIHRlcm1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgO1xuICAgIFxuICAgIFxuICAgIFxuICAgIHRlcm0gICAgICAgICAgICAgICAgICAgIDo6PSAgY29tcGFyaXNvblRlcm0gXG4gICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBicmFja2V0ZWRUZXJtIFxuICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgbG9naWNhbFRlcm0gXG4gICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBuZWdhdGVkVGVybSBcbiAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIHByaW1pdGl2ZSBcbiAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIHZhcmlhYmxlIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7XG5cblxuICAgIFxuICAgIHR5cGUgICAgICAgICAgICAgICAgICAgIDo6PSAgXCJMaXN0XCI8Tk9fV0hJVEVTUEFDRT5cIjxcIiAoIFwiTm9kZVwiIHwgXCJTdHJpbmdcIiB8IFwiQm9vbGVhblwiIHwgXCJJbnRlZ2VyXCIgKSBcIj5cIlxuICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwiTm9kZVwiICBcbiAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBcIlN0cmluZ1wiIFxuICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwiQm9vbGVhblwiICAgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwiSW50ZWdlclwiICAgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDtcblxuXG4gICAgXG4gICAgdmFsdWUgICAgICAgICAgICAgICAgICAgOjo9ICBwcmltaXRpdmUgXG4gICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICB2YXJpYWJsZSBcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgO1xuXG5cbiAgICBcbiAgICBwcmltaXRpdmUgICAgICAgICAgICAgICA6Oj0gIFtzdHJpbmctbGl0ZXJhbF1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgW2Jvb2xlYW5dXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFtpbnRlZ2VyXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBbbnVsbF1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7XG5cblxuXG4gICAgcmVmZXJlbmNlLiAgICAgICAgICAgICAgOjo9ICBbbmFtZV0gO1xuICAgIFxuICAgIHZhcmlhYmxlLiAgICAgICAgICAgICAgIDo6PSAgW25hbWVdIDtcbiAgICBcbiAgICBsYWJlbC4gICAgICAgICAgICAgICAgICA6Oj0gIFtuYW1lXSA7XG4gICAgXG4gICAgXG4gICAgXG4gICAgbm9uc2Vuc2UuICAgICAgICAgICAgICAgOjo9ICBbc3RyaW5nLWxpdGVyYWxdIHwgW3NlY29uZGFyeS1rZXl3b3JkXSB8IFtmdW5jdGlvbi1uYW1lXSB8IFt0eXBlXSB8IFtib29sZWFuXSB8IFtpbnRlZ2VyXSB8IFtudWxsXSB8IFtuYW1lXSB8IFtzcGVjaWFsXSB8IFt1bmFzc2lnbmVkXSA7XG5cblxuICAgIFxuICAgIGVycm9yLiAgICAgICAgICAgICAgICAgIDo6PSAgLiA7XG4gICAgXG5gO1xuXG5leHBvcnQgZGVmYXVsdCBibmY7XG4iXSwibmFtZXMiOlsiYm5mIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkE4TkE7OztlQUFBOzs7QUE1TkEsTUFBTUEsTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTBOYixDQUFDO01BRUQsV0FBZUEifQ==
|
|
@@ -20,7 +20,7 @@ const entries = [
|
|
|
20
20
|
"secondary-keyword": "^(?:as|if|else)"
|
|
21
21
|
},
|
|
22
22
|
{
|
|
23
|
-
"function-name": "^(?:nodeQuery|nodesQuery|reduce|every|some|lengthOf|toInteger|tryInteger|startsWith|endsWith|contains)"
|
|
23
|
+
"function-name": "^(?:nodeQuery|nodesQuery|reduce|every|some|lengthOf|toInteger|tryInteger|startsWith|endsWith|contains|all|exists)"
|
|
24
24
|
},
|
|
25
25
|
{
|
|
26
26
|
"type": "^(?:List|Node|String|Boolean|Integer)"
|
|
@@ -46,4 +46,4 @@ const entries = [
|
|
|
46
46
|
];
|
|
47
47
|
const _default = entries;
|
|
48
48
|
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leGFtcGxlL2Z1cnRsZS9lbnRyaWVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5cclxuY29uc3QgTEFUSU4gPSBcIltcXFxccHtTY3JpcHQ9TGF0aW59XVwiLFxyXG4gICAgICBERUNJTUFMID0gXCJbMC05XVwiO1xyXG5cclxuY29uc3QgZW50cmllcyA9IFtcclxuICB7XHJcbiAgICBcImJyYWNrZXRcIjogXCJeKD86XFxcXHt8XFxcXH0pXCJcclxuICB9LFxyXG4gIHtcclxuICAgIFwicHJpbWFyeS1rZXl3b3JkXCI6IFwiXig/OmV4cG9ydHxpbXBvcnR8ZnJvbXxyZXR1cm4pXCJcclxuICB9LFxyXG4gIHtcclxuICAgIFwic2Vjb25kYXJ5LWtleXdvcmRcIjogXCJeKD86YXN8aWZ8ZWxzZSlcIlxyXG4gIH0sXHJcbiAge1xyXG4gICAgXCJmdW5jdGlvbi1uYW1lXCI6IFwiXig/
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leGFtcGxlL2Z1cnRsZS9lbnRyaWVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5cclxuY29uc3QgTEFUSU4gPSBcIltcXFxccHtTY3JpcHQ9TGF0aW59XVwiLFxyXG4gICAgICBERUNJTUFMID0gXCJbMC05XVwiO1xyXG5cclxuY29uc3QgZW50cmllcyA9IFtcclxuICB7XHJcbiAgICBcImJyYWNrZXRcIjogXCJeKD86XFxcXHt8XFxcXH0pXCJcclxuICB9LFxyXG4gIHtcclxuICAgIFwicHJpbWFyeS1rZXl3b3JkXCI6IFwiXig/OmV4cG9ydHxpbXBvcnR8ZnJvbXxyZXR1cm4pXCJcclxuICB9LFxyXG4gIHtcclxuICAgIFwic2Vjb25kYXJ5LWtleXdvcmRcIjogXCJeKD86YXN8aWZ8ZWxzZSlcIlxyXG4gIH0sXHJcbiAge1xyXG4gICAgXCJmdW5jdGlvbi1uYW1lXCI6IFwiXig/Om5vZGVRdWVyeXxub2Rlc1F1ZXJ5fHJlZHVjZXxldmVyeXxzb21lfGxlbmd0aE9mfHRvSW50ZWdlcnx0cnlJbnRlZ2VyfHN0YXJ0c1dpdGh8ZW5kc1dpdGh8Y29udGFpbnN8YWxsfGV4aXN0cylcIlxyXG4gIH0sXHJcbiAge1xyXG4gICAgXCJ0eXBlXCI6IFwiXig/Okxpc3R8Tm9kZXxTdHJpbmd8Qm9vbGVhbnxJbnRlZ2VyKVwiXHJcbiAgfSxcclxuICB7XHJcbiAgICBcImJvb2xlYW5cIjogXCJeKD86dHJ1ZXxmYWxzZSlcIlxyXG4gIH0sXHJcbiAge1xyXG4gICAgXCJpbnRlZ2VyXCI6IFwiXlsrXFxcXC1dP1xcXFxkK1wiXHJcbiAgfSxcclxuICB7XHJcbiAgICBcIm51bGxcIjogXCJebnVsbFwiXHJcbiAgfSxcclxuICB7XHJcbiAgICBcIm5hbWVcIjogYF4ke0xBVElOfSske0RFQ0lNQUx9KmAsXHJcbiAgfSxcclxuICB7XHJcbiAgICBcInNwZWNpYWxcIjogXCJeKD86PHw+fCE9fD09fCF8PXwsfDt8JiZ8XFxcXHxcXFxcfHxcXFxcKHxcXFxcKXxcXFxcW3xcXFxcXSlcIlxyXG4gIH0sXHJcbiAge1xyXG4gICAgXCJ1bmFzc2lnbmVkXCI6IFwiXlteXFxcXHNdK1wiXHJcbiAgfVxyXG5dO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZW50cmllcztcclxuIl0sIm5hbWVzIjpbIkxBVElOIiwiREVDSU1BTCIsImVudHJpZXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQXlDQTs7O2VBQUE7OztBQXZDQSxNQUFNQSxRQUFRLHVCQUNSQyxVQUFVO0FBRWhCLE1BQU1DLFVBQVU7SUFDZDtRQUNFLFdBQVc7SUFDYjtJQUNBO1FBQ0UsbUJBQW1CO0lBQ3JCO0lBQ0E7UUFDRSxxQkFBcUI7SUFDdkI7SUFDQTtRQUNFLGlCQUFpQjtJQUNuQjtJQUNBO1FBQ0UsUUFBUTtJQUNWO0lBQ0E7UUFDRSxXQUFXO0lBQ2I7SUFDQTtRQUNFLFdBQVc7SUFDYjtJQUNBO1FBQ0UsUUFBUTtJQUNWO0lBQ0E7UUFDRSxRQUFRLENBQUMsQ0FBQyxFQUFFRixNQUFNLENBQUMsRUFBRUMsUUFBUSxDQUFDLENBQUM7SUFDakM7SUFDQTtRQUNFLFdBQVc7SUFDYjtJQUNBO1FBQ0UsY0FBYztJQUNoQjtDQUNEO01BRUQsV0FBZUMifQ==
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "occam-furtle",
|
|
3
3
|
"author": "James Smith",
|
|
4
|
-
"version": "3.0.
|
|
4
|
+
"version": "3.0.521",
|
|
5
5
|
"license": "MIT, Anti-996",
|
|
6
6
|
"homepage": "https://github.com/djalbat/occam-furtle",
|
|
7
7
|
"description": "Occam's Furtle language.",
|
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"necessary": "^17.7.2",
|
|
14
|
-
"occam-grammars": "^1.3.
|
|
15
|
-
"occam-languages": "^3.0.
|
|
14
|
+
"occam-grammars": "^1.3.690",
|
|
15
|
+
"occam-languages": "^3.0.82",
|
|
16
16
|
"occam-lexers": "^23.2.12",
|
|
17
17
|
"occam-parsers": "^23.2.17",
|
|
18
18
|
"occam-query": "^4.1.210"
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
"juxtapose": "^4.0.143",
|
|
29
29
|
"lively-cli": "^3.0.3",
|
|
30
30
|
"occam-grammar-utilities": "^8.1.27",
|
|
31
|
-
"occam-model": "^1.0.
|
|
32
|
-
"occam-server": "^7.0.
|
|
31
|
+
"occam-model": "^1.0.594",
|
|
32
|
+
"occam-server": "^7.0.93",
|
|
33
33
|
"watchful-cli": "^1.7.102"
|
|
34
34
|
},
|
|
35
35
|
"scripts": {
|
package/src/context/block.js
CHANGED
|
@@ -78,6 +78,13 @@ export default class BlockContext extends Context {
|
|
|
78
78
|
return variable;
|
|
79
79
|
}
|
|
80
80
|
|
|
81
|
+
findImportedProcedureByProcedureName(procedureName) {
|
|
82
|
+
const context = this.getContext(),
|
|
83
|
+
importedProcedure = context.findImportedProcedureByProcedureName(procedureName);
|
|
84
|
+
|
|
85
|
+
return importedProcedure;
|
|
86
|
+
}
|
|
87
|
+
|
|
81
88
|
isVariablePresentByVariableName(variableName, nested = true) {
|
|
82
89
|
const variable = this.findVariableByVariableName(variableName, nested),
|
|
83
90
|
variablePresent = (variable !== null);
|
|
@@ -85,6 +92,13 @@ export default class BlockContext extends Context {
|
|
|
85
92
|
return variablePresent;
|
|
86
93
|
}
|
|
87
94
|
|
|
95
|
+
isImportedProcedurePresentByProcedureName(procedureName) {
|
|
96
|
+
const context = this.getContext(),
|
|
97
|
+
importedProcedurePresent = context.isImportedProcedurePresentByProcedureName(procedureName);
|
|
98
|
+
|
|
99
|
+
return importedProcedurePresent;
|
|
100
|
+
}
|
|
101
|
+
|
|
88
102
|
static fromVariables(variables, context) {
|
|
89
103
|
const blockContext = Context.fromNothing(BlockContext, variables, context)
|
|
90
104
|
|
|
@@ -6,19 +6,26 @@ import { queryUtilities } from "occam-query";
|
|
|
6
6
|
import { isolate } from "../../utilities/context";
|
|
7
7
|
import { verifyFile } from "../../process/verify";
|
|
8
8
|
import { furtleLexer, furtleParser } from "../../utilities/furtle";
|
|
9
|
-
import {
|
|
9
|
+
import {
|
|
10
|
+
proceduresFromJSON,
|
|
11
|
+
importBindingsFromJSON,
|
|
12
|
+
proceduresToProceduresJSON,
|
|
13
|
+
importBindingsToImportBindingsJSON
|
|
14
|
+
} from "../../utilities/json";
|
|
15
|
+
import procedure from "../../element/procedure";
|
|
10
16
|
|
|
11
17
|
const { nodesQuery } = queryUtilities;
|
|
12
18
|
|
|
13
19
|
const procedureNodesQuery = nodesQuery("/document/procedure");
|
|
14
20
|
|
|
15
21
|
export default class FurtleFileContext extends FileContext {
|
|
16
|
-
constructor(context, fileContent, filePath, tokens, node, json, lexer, parser, procedures) {
|
|
22
|
+
constructor(context, fileContent, filePath, tokens, node, json, lexer, parser, procedures, importBindings) {
|
|
17
23
|
super(context, fileContent, filePath, tokens, node, json);
|
|
18
24
|
|
|
19
25
|
this.lexer = lexer;
|
|
20
26
|
this.parser = parser;
|
|
21
27
|
this.procedures = procedures;
|
|
28
|
+
this.importBindings = importBindings;
|
|
22
29
|
}
|
|
23
30
|
|
|
24
31
|
getLexer() {
|
|
@@ -29,6 +36,18 @@ export default class FurtleFileContext extends FileContext {
|
|
|
29
36
|
return this.parser;
|
|
30
37
|
}
|
|
31
38
|
|
|
39
|
+
getProcedures(includeRelease = true) {
|
|
40
|
+
const procedures = includeRelease ?
|
|
41
|
+
this.context.getProcedures() :
|
|
42
|
+
this.procedures;
|
|
43
|
+
|
|
44
|
+
return procedures;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
getImportBindings() {
|
|
48
|
+
return this.importBindings;
|
|
49
|
+
}
|
|
50
|
+
|
|
32
51
|
getLabels(includeRelease = true) {
|
|
33
52
|
const labels = [];
|
|
34
53
|
|
|
@@ -113,14 +132,6 @@ export default class FurtleFileContext extends FileContext {
|
|
|
113
132
|
return metavariables;
|
|
114
133
|
}
|
|
115
134
|
|
|
116
|
-
getProcedures(includeRelease = true) {
|
|
117
|
-
const procedures = includeRelease ?
|
|
118
|
-
this.context.getProcedures() :
|
|
119
|
-
this.procedures;
|
|
120
|
-
|
|
121
|
-
return procedures;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
135
|
getVariables(nested = true) {
|
|
125
136
|
const variables = [];
|
|
126
137
|
|
|
@@ -137,6 +148,16 @@ export default class FurtleFileContext extends FileContext {
|
|
|
137
148
|
this.debug(`Added the '${procedureString}' function to the '${filePath}' file context.`);
|
|
138
149
|
}
|
|
139
150
|
|
|
151
|
+
addImportBinding(importBinding) {
|
|
152
|
+
const importBindingString = importBinding.getString();
|
|
153
|
+
|
|
154
|
+
this.importBindings.push(importBinding);
|
|
155
|
+
|
|
156
|
+
const filePath = this.getFilePath();
|
|
157
|
+
|
|
158
|
+
this.debug(`Added the '${importBindingString}' import binding to the '${filePath}' file context.`);
|
|
159
|
+
}
|
|
160
|
+
|
|
140
161
|
findProcedureNode(label) {
|
|
141
162
|
const node = this.getNode(),
|
|
142
163
|
labelNode = label.getNode(),
|
|
@@ -166,6 +187,42 @@ export default class FurtleFileContext extends FileContext {
|
|
|
166
187
|
return procedure;
|
|
167
188
|
}
|
|
168
189
|
|
|
190
|
+
findImportedProcedureByProcedureName(procedureName) {
|
|
191
|
+
let importedProcedure = null;
|
|
192
|
+
|
|
193
|
+
this.importBindings.some((importBinding) => {
|
|
194
|
+
const lablledProcedureName = procedureName; ///
|
|
195
|
+
|
|
196
|
+
const labelledProcedureNameClmpares = importBinding.compareLablledProcedureName(lablledProcedureName);
|
|
197
|
+
|
|
198
|
+
if (labelledProcedureNameClmpares) {
|
|
199
|
+
const referencedProcedureName = importBinding.getReferencedProcedureName();
|
|
200
|
+
|
|
201
|
+
procedureName = referencedProcedureName; ///
|
|
202
|
+
|
|
203
|
+
const procedure = this.findProcedureByProcedureName(procedureName);
|
|
204
|
+
|
|
205
|
+
importedProcedure = procedure; ///
|
|
206
|
+
|
|
207
|
+
return true;
|
|
208
|
+
}
|
|
209
|
+
});
|
|
210
|
+
|
|
211
|
+
return importedProcedure;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
findImportBindingByLabelledProcedureName(labelledProcedureName) {
|
|
215
|
+
const importBinding = this.importBindings.find((importBinding) => {
|
|
216
|
+
const labelledProcedureNameCompares = importBinding.compareLablledProcedureName(labelledProcedureName);
|
|
217
|
+
|
|
218
|
+
if (labelledProcedureNameCompares) {
|
|
219
|
+
return true;
|
|
220
|
+
}
|
|
221
|
+
}) || null;
|
|
222
|
+
|
|
223
|
+
return importBinding;
|
|
224
|
+
}
|
|
225
|
+
|
|
169
226
|
isProcedurePresentByProcedureName(procedureName) {
|
|
170
227
|
const procedure = this.findProcedureByProcedureName(procedureName),
|
|
171
228
|
procedurePresent = (procedure !== null);
|
|
@@ -173,6 +230,20 @@ export default class FurtleFileContext extends FileContext {
|
|
|
173
230
|
return procedurePresent;
|
|
174
231
|
}
|
|
175
232
|
|
|
233
|
+
isImportedProcedurePresentByProcedureName(procedureName) {
|
|
234
|
+
const importedProceudre = this.findImportedProcedureByProcedureName(procedureName),
|
|
235
|
+
importedProceudrePresent = (importedProceudre !== null);
|
|
236
|
+
|
|
237
|
+
return importedProceudrePresent;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
isImportBindingPresentByLabelledProcedureName(labelledProcedureName) {
|
|
241
|
+
const importBinding = this.findImportBindingByLabelledProcedureName(labelledProcedureName),
|
|
242
|
+
importBindingPresent = (importBinding !== null);
|
|
243
|
+
|
|
244
|
+
return importBindingPresent;
|
|
245
|
+
}
|
|
246
|
+
|
|
176
247
|
compareReleaseName(releaseName) { return this.context.compareReleaseName(releaseName); }
|
|
177
248
|
|
|
178
249
|
clear() {
|
|
@@ -192,6 +263,8 @@ export default class FurtleFileContext extends FileContext {
|
|
|
192
263
|
const fileContext = this; ///
|
|
193
264
|
|
|
194
265
|
this.procedures = proceduresFromJSON(json, fileContext);
|
|
266
|
+
|
|
267
|
+
this.importBindings = importBindingsFromJSON(json, fileContext);
|
|
195
268
|
}
|
|
196
269
|
}
|
|
197
270
|
|
|
@@ -211,12 +284,15 @@ export default class FurtleFileContext extends FileContext {
|
|
|
211
284
|
const filePath = this.getFilePath(),
|
|
212
285
|
fileContent = this.getFileContent(),
|
|
213
286
|
proceduresJSON = proceduresToProceduresJSON(this.procedures),
|
|
214
|
-
|
|
287
|
+
importBindingsJSON = importBindingsToImportBindingsJSON(this.importBindings),
|
|
288
|
+
procedures = proceduresJSON, ///
|
|
289
|
+
importBindings = importBindingsJSON;
|
|
215
290
|
|
|
216
291
|
json = {
|
|
217
292
|
filePath,
|
|
218
293
|
fileContent,
|
|
219
|
-
procedures
|
|
294
|
+
procedures,
|
|
295
|
+
importBindings
|
|
220
296
|
};
|
|
221
297
|
|
|
222
298
|
return json;
|
|
@@ -226,7 +302,8 @@ export default class FurtleFileContext extends FileContext {
|
|
|
226
302
|
const lexer = furtleLexer, ///
|
|
227
303
|
parser = furtleParser, ///
|
|
228
304
|
procedures = [],
|
|
229
|
-
|
|
305
|
+
importBindings = [],
|
|
306
|
+
furtleFileContext = FileContext.fromFile(FurtleFileContext, file, lexer, parser, procedures, importBindings, context);
|
|
230
307
|
|
|
231
308
|
return furtleFileContext;
|
|
232
309
|
}
|
|
@@ -235,7 +312,8 @@ export default class FurtleFileContext extends FileContext {
|
|
|
235
312
|
const lexer = furtleLexer, ///
|
|
236
313
|
parser = furtleParser, ///
|
|
237
314
|
procedures = null,
|
|
238
|
-
|
|
315
|
+
importBindings = null,
|
|
316
|
+
furtleFileContext = FileContext.fromJSON(FurtleFileContext, json, lexer, parser, procedures, importBindings, context);
|
|
239
317
|
|
|
240
318
|
return furtleFileContext;
|
|
241
319
|
}
|