occam-furtle 3.0.325 → 3.0.327
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/element/nodeQuery.js +13 -6
- package/lib/element/procedureCall.js +8 -2
- package/lib/utilities/context.js +24 -4
- package/lib/utilities/value.js +1 -1
- package/package.json +1 -1
- package/src/element/nodeQuery.js +16 -9
- package/src/element/procedureCall.js +10 -3
- package/src/utilities/context.js +18 -0
- package/src/utilities/value.js +5 -5
package/lib/element/nodeQuery.js
CHANGED
|
@@ -11,6 +11,7 @@ Object.defineProperty(exports, "default", {
|
|
|
11
11
|
const _occamlanguages = require("occam-languages");
|
|
12
12
|
const _necessary = require("necessary");
|
|
13
13
|
const _exception = /*#__PURE__*/ _interop_require_default(require("../exception"));
|
|
14
|
+
const _nominalValue = /*#__PURE__*/ _interop_require_default(require("../nominalValue"));
|
|
14
15
|
const _elements = require("../elements");
|
|
15
16
|
const _typeNames = require("../typeNames");
|
|
16
17
|
const _value = require("../utilities/value");
|
|
@@ -54,13 +55,19 @@ const _default = (0, _elements.define)(class NodeQuery extends _occamlanguages.E
|
|
|
54
55
|
throw exception;
|
|
55
56
|
}
|
|
56
57
|
const nodes = this.query.execute(node), nodesLength = nodes.length;
|
|
57
|
-
if (
|
|
58
|
-
|
|
58
|
+
if (false) {
|
|
59
|
+
///
|
|
60
|
+
} else if (nodesLength === 0) {
|
|
61
|
+
const nominalValue = _nominalValue.default.fromNothing();
|
|
62
|
+
value = (0, _value.valueFromNominalValue)(nominalValue);
|
|
63
|
+
} else if (nodesLength === 1) {
|
|
64
|
+
const firstNode = first(nodes);
|
|
65
|
+
node = firstNode; ///
|
|
66
|
+
value = (0, _value.valueFromNodeAndNominalValue)(node, nominalValue);
|
|
67
|
+
} else {
|
|
68
|
+
const message = `The length of the returned nodes is ${nodesLength} when it should be 0 or 1.`, exception = _exception.default.fromMessage(message);
|
|
59
69
|
throw exception;
|
|
60
70
|
}
|
|
61
|
-
const firstNode = first(nodes);
|
|
62
|
-
node = firstNode; ///
|
|
63
|
-
value = (0, _value.valueFromNodeAndNominalValue)(node, nominalValue);
|
|
64
71
|
const valueString = value.getString();
|
|
65
72
|
context.debug(`...evaluated the '${nodeQueryString}' function as '${valueString}'.`);
|
|
66
73
|
return value;
|
|
@@ -68,4 +75,4 @@ const _default = (0, _elements.define)(class NodeQuery extends _occamlanguages.E
|
|
|
68
75
|
static name = "NodeQuery";
|
|
69
76
|
});
|
|
70
77
|
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L25vZGVRdWVyeS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcbmltcG9ydCB7IGFycmF5VXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi9leGNlcHRpb25cIjtcbmltcG9ydCBOb21pbmFsVmFsdWUgZnJvbSBcIi4uL25vbWluYWxWYWx1ZVwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IE5PTUlOQUxfVkFMVUVfVFlQRV9OQU1FIH0gZnJvbSBcIi4uL3R5cGVOYW1lc1wiO1xuaW1wb3J0IHsgdmFsdWVGcm9tTm9taW5hbFZhbHVlLCB2YWx1ZUZyb21Ob2RlQW5kTm9taW5hbFZhbHVlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy92YWx1ZVwiO1xuXG5jb25zdCB7IGZpcnN0IH0gPSBhcnJheVV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIE5vZGVRdWVyeSBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHZhcmlhYmxlLCBxdWVyeSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnZhcmlhYmxlID0gdmFyaWFibGU7XG4gICAgdGhpcy5xdWVyeSA9IHF1ZXJ5O1xuICB9XG5cbiAgZ2V0VmFyaWFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFyaWFibGU7XG4gIH1cblxuICBnZXRRdWVyeSgpIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyeTtcbiAgfVxuXG4gIGV2YWx1YXRlKGNvbnRleHQpIHtcbiAgICBsZXQgdmFsdWU7XG5cbiAgICBjb25zdCBub2RlUXVlcnlTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtub2RlUXVlcnlTdHJpbmd9JyBmdW5jdGlvbi4uLmApO1xuXG4gICAgaWYgKHRoaXMucXVlcnkgPT09IG51bGwpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgQ2Fubm90IGV2YWx1YXRlIHRoZSAnJHtub2RlUXVlcnlTdHJpbmd9JyBmdW5jdGlvbiBiZWNhdXNlIGl0cyBleHByZXNzaW9uIGlzIG1hbGZvcm1lZC5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgdmFsdWUgPSB0aGlzLnZhcmlhYmxlLmV2YWx1YXRlKGNvbnRleHQpO1xuXG4gICAgY29uc3QgdmFsdWVUeXBlID0gdmFsdWUuZ2V0VHlwZSgpLFxuICAgICAgICAgIHZhbHVlVHlwZU5vbWluYWxWYWx1ZVR5cGUgPSB2YWx1ZVR5cGUuaXNOb21pbmFsVmFsdWVUeXBlKCk7XG5cbiAgICBpZiAoIXZhbHVlVHlwZU5vbWluYWxWYWx1ZVR5cGUpIHtcbiAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHt2YWx1ZVN0cmluZ30nIHZhbHVlJ3MgJyR7dmFsdWVUeXBlfScgdHlwZSBzaG91bGQgYmUgJyR7Tk9NSU5BTF9WQUxVRV9UWVBFX05BTUV9Jy5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgbGV0IG5vZGU7XG5cbiAgICBjb25zdCBwcmltaXRpdmVWYWx1ZSA9IHZhbHVlLmdldFByaW1pdGl2ZVZhbHVlKCksXG4gICAgICAgICAgbm9taW5hbFZhbHVlID0gcHJpbWl0aXZlVmFsdWU7ICAvLy9cblxuICAgIG5vZGUgPSBub21pbmFsVmFsdWUuZ2V0Tm9kZSgpO1xuXG4gICAgaWYgKG5vZGUgPT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHt2YWx1ZVN0cmluZ30nIHZhbHVlJ3Mgbm9kZSBpcyBudWxsLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCBub2RlcyA9IHRoaXMucXVlcnkuZXhlY3V0ZShub2RlKSxcbiAgICAgICAgICBub2Rlc0xlbmd0aCA9IG5vZGVzLmxlbmd0aDtcblxuICAgIGlmIChmYWxzZSkge1xuICAgICAgLy8vXG4gICAgfSBlbHNlIGlmIChub2Rlc0xlbmd0aCA9PT0gMCkge1xuICAgICAgY29uc3Qgbm9taW5hbFZhbHVlID0gTm9taW5hbFZhbHVlLmZyb21Ob3RoaW5nKCk7XG5cbiAgICAgIHZhbHVlID0gdmFsdWVGcm9tTm9taW5hbFZhbHVlKG5vbWluYWxWYWx1ZSk7XG4gICAgfSBlbHNlIGlmIChub2Rlc0xlbmd0aCA9PT0gMSkge1xuICAgICAgY29uc3QgZmlyc3ROb2RlID0gZmlyc3Qobm9kZXMpO1xuXG4gICAgICBub2RlID0gZmlyc3ROb2RlIC8vL1xuXG4gICAgICB2YWx1ZSA9IHZhbHVlRnJvbU5vZGVBbmROb21pbmFsVmFsdWUobm9kZSwgbm9taW5hbFZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBUaGUgbGVuZ3RoIG9mIHRoZSByZXR1cm5lZCBub2RlcyBpcyAke25vZGVzTGVuZ3RofSB3aGVuIGl0IHNob3VsZCBiZSAwIG9yIDEuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlICcke25vZGVRdWVyeVN0cmluZ30nIGZ1bmN0aW9uIGFzICcke3ZhbHVlU3RyaW5nfScuYCk7XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiTm9kZVF1ZXJ5XCI7XG59KTtcbiJdLCJuYW1lcyI6WyJmaXJzdCIsImFycmF5VXRpbGl0aWVzIiwiZGVmaW5lIiwiTm9kZVF1ZXJ5IiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInZhcmlhYmxlIiwicXVlcnkiLCJnZXRWYXJpYWJsZSIsImdldFF1ZXJ5IiwiZXZhbHVhdGUiLCJ2YWx1ZSIsIm5vZGVRdWVyeVN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwidmFsdWVUeXBlIiwiZ2V0VHlwZSIsInZhbHVlVHlwZU5vbWluYWxWYWx1ZVR5cGUiLCJpc05vbWluYWxWYWx1ZVR5cGUiLCJ2YWx1ZVN0cmluZyIsIk5PTUlOQUxfVkFMVUVfVFlQRV9OQU1FIiwicHJpbWl0aXZlVmFsdWUiLCJnZXRQcmltaXRpdmVWYWx1ZSIsIm5vbWluYWxWYWx1ZSIsImdldE5vZGUiLCJub2RlcyIsImV4ZWN1dGUiLCJub2Rlc0xlbmd0aCIsImxlbmd0aCIsIk5vbWluYWxWYWx1ZSIsImZyb21Ob3RoaW5nIiwidmFsdWVGcm9tTm9taW5hbFZhbHVlIiwiZmlyc3ROb2RlIiwidmFsdWVGcm9tTm9kZUFuZE5vbWluYWxWYWx1ZSIsImRlYnVnIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBY0E7OztlQUFBOzs7Z0NBWndCOzJCQUNPO2tFQUVUO3FFQUNHOzBCQUVGOzJCQUNp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
|
|
@@ -10,6 +10,7 @@ Object.defineProperty(exports, "default", {
|
|
|
10
10
|
});
|
|
11
11
|
const _occamlanguages = require("occam-languages");
|
|
12
12
|
const _exception = /*#__PURE__*/ _interop_require_default(require("../exception"));
|
|
13
|
+
const _context = require("../utilities/context");
|
|
13
14
|
const _elements = require("../elements");
|
|
14
15
|
function _interop_require_default(obj) {
|
|
15
16
|
return obj && obj.__esModule ? obj : {
|
|
@@ -40,11 +41,16 @@ const _default = (0, _elements.define)(class ProcedureCall extends _occamlanguag
|
|
|
40
41
|
const message = `The '${procedureCallString}' function is not present.'`, exception = _exception.default.fromMessage(message);
|
|
41
42
|
throw exception;
|
|
42
43
|
}
|
|
43
|
-
|
|
44
|
+
let value;
|
|
45
|
+
const procedure = context.findProcedureByProcedureName(procedureName), values = this.values.evaluate(context);
|
|
46
|
+
await (0, _context.free)(async (context)=>{
|
|
47
|
+
value = await procedure.call(values, context);
|
|
48
|
+
}, context);
|
|
49
|
+
const valueString = value.getString();
|
|
44
50
|
context.debug(`...evaluated the '${procedureCallString}' function call as '${valueString}'.`);
|
|
45
51
|
return value;
|
|
46
52
|
}
|
|
47
53
|
static name = "ProcedureCall";
|
|
48
54
|
});
|
|
49
55
|
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3Byb2NlZHVyZUNhbGwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBmcmVlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jb250ZXh0XCI7XG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFByb2NlZHVyZUNhbGwgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCByZWZlcmVuY2UsIHZhbHVlcykge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnJlZmVyZW5jZSA9IHJlZmVyZW5jZTtcbiAgICB0aGlzLnZhbHVlcyA9IHZhbHVlcztcbiAgfVxuXG4gIGdldFJlZmVyZW5jZSgpIHtcbiAgICByZXR1cm4gdGhpcy5yZWZlcmVuY2U7XG4gIH1cblxuICBnZXRWYWx1ZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWVzO1xuICB9XG5cbiAgZ2V0UHJvY2VkdXJlTmFtZSgpIHsgcmV0dXJuIHRoaXMucmVmZXJlbmNlLmdldFByb2NlZHVyZU5hbWUoKTsgfVxuXG4gIGFzeW5jIGV2YWx1YXRlKGNvbnRleHQpIHtcbiAgICBhd2FpdCB0aGlzLmJyZWFrKGNvbnRleHQpO1xuXG4gICAgY29uc3QgcHJvY2VkdXJlQ2FsbFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYEV2YWx1YXRpbmcgdGhlICcke3Byb2NlZHVyZUNhbGxTdHJpbmd9JyBmdW5jdGlvbiBjYWxsLi4uYCk7XG5cbiAgICBjb25zdCBwcm9jZWR1cmVOYW1lID0gdGhpcy5nZXRQcm9jZWR1cmVOYW1lKCksXG4gICAgICAgICAgcHJvY2VkdXJlUHJlc2VudCA9IGNvbnRleHQuaXNQcm9jZWR1cmVQcmVzZW50QnlQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpO1xuXG4gICAgaWYgKCFwcm9jZWR1cmVQcmVzZW50KSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSAnJHtwcm9jZWR1cmVDYWxsU3RyaW5nfScgZnVuY3Rpb24gaXMgbm90IHByZXNlbnQuJ2AsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBsZXQgdmFsdWU7XG5cbiAgICBjb25zdCBwcm9jZWR1cmUgPSBjb250ZXh0LmZpbmRQcm9jZWR1cmVCeVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSksXG4gICAgICAgICAgdmFsdWVzID0gdGhpcy52YWx1ZXMuZXZhbHVhdGUoY29udGV4dCk7XG5cbiAgICBhd2FpdCBmcmVlKGFzeW5jIChjb250ZXh0KSA9PiB7XG4gICAgICB2YWx1ZSA9IGF3YWl0IHByb2NlZHVyZS5jYWxsKHZhbHVlcywgY29udGV4dCk7XG4gICAgfSwgY29udGV4dCk7XG5cbiAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHtwcm9jZWR1cmVDYWxsU3RyaW5nfScgZnVuY3Rpb24gY2FsbCBhcyAnJHt2YWx1ZVN0cmluZ30nLmApO1xuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlByb2NlZHVyZUNhbGxcIjtcbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIlByb2NlZHVyZUNhbGwiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwicmVmZXJlbmNlIiwidmFsdWVzIiwiZ2V0UmVmZXJlbmNlIiwiZ2V0VmFsdWVzIiwiZ2V0UHJvY2VkdXJlTmFtZSIsImV2YWx1YXRlIiwiYnJlYWsiLCJwcm9jZWR1cmVDYWxsU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJwcm9jZWR1cmVOYW1lIiwicHJvY2VkdXJlUHJlc2VudCIsImlzUHJvY2VkdXJlUHJlc2VudEJ5UHJvY2VkdXJlTmFtZSIsIm1lc3NhZ2UiLCJleGNlcHRpb24iLCJFeGNlcHRpb24iLCJmcm9tTWVzc2FnZSIsInZhbHVlIiwicHJvY2VkdXJlIiwiZmluZFByb2NlZHVyZUJ5UHJvY2VkdXJlTmFtZSIsImZyZWUiLCJjYWxsIiwidmFsdWVTdHJpbmciLCJkZWJ1ZyIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVNBOzs7ZUFBQTs7O2dDQVB3QjtrRUFFRjt5QkFFRDswQkFDRTs7Ozs7O01BRXZCLFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsc0JBQXNCQyx1QkFBTztJQUN2RCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFNBQVMsRUFBRUMsTUFBTSxDQUFFO1FBQ2hFLEtBQUssQ0FBQ0wsU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxTQUFTLEdBQUdBO1FBQ2pCLElBQUksQ0FBQ0MsTUFBTSxHQUFHQTtJQUNoQjtJQUVBQyxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUNGLFNBQVM7SUFDdkI7SUFFQUcsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDRixNQUFNO0lBQ3BCO0lBRUFHLG1CQUFtQjtRQUFFLE9BQU8sSUFBSSxDQUFDSixTQUFTLENBQUNJLGdCQUFnQjtJQUFJO0lBRS9ELE1BQU1DLFNBQVNULE9BQU8sRUFBRTtRQUN0QixNQUFNLElBQUksQ0FBQ1UsS0FBSyxDQUFDVjtRQUVqQixNQUFNVyxzQkFBc0IsSUFBSSxDQUFDQyxTQUFTLElBQUssR0FBRztRQUVsRFosUUFBUWEsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLEVBQUVGLG9CQUFvQixrQkFBa0IsQ0FBQztRQUV4RSxNQUFNRyxnQkFBZ0IsSUFBSSxDQUFDTixnQkFBZ0IsSUFDckNPLG1CQUFtQmYsUUFBUWdCLGlDQUFpQyxDQUFDRjtRQUVuRSxJQUFJLENBQUNDLGtCQUFrQjtZQUNyQixNQUFNRSxVQUFVLENBQUMsS0FBSyxFQUFFTixvQkFBb0IsMkJBQTJCLENBQUMsRUFDbEVPLFlBQVlDLGtCQUFTLENBQUNDLFdBQVcsQ0FBQ0g7WUFFeEMsTUFBTUM7UUFDUjtRQUVBLElBQUlHO1FBRUosTUFBTUMsWUFBWXRCLFFBQVF1Qiw0QkFBNEIsQ0FBQ1QsZ0JBQ2pEVCxTQUFTLElBQUksQ0FBQ0EsTUFBTSxDQUFDSSxRQUFRLENBQUNUO1FBRXBDLE1BQU13QixJQUFBQSxhQUFJLEVBQUMsT0FBT3hCO1lBQ2hCcUIsUUFBUSxNQUFNQyxVQUFVRyxJQUFJLENBQUNwQixRQUFRTDtRQUN2QyxHQUFHQTtRQUVILE1BQU0wQixjQUFjTCxNQUFNVCxTQUFTO1FBRW5DWixRQUFRMkIsS0FBSyxDQUFDLENBQUMsa0JBQWtCLEVBQUVoQixvQkFBb0Isb0JBQW9CLEVBQUVlLFlBQVksRUFBRSxDQUFDO1FBRTVGLE9BQU9MO0lBQ1Q7SUFFQSxPQUFPTyxPQUFPLGdCQUFnQjtBQUNoQyJ9
|
package/lib/utilities/context.js
CHANGED
|
@@ -2,10 +2,18 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: Object.getOwnPropertyDescriptor(all, name).get
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
get confine () {
|
|
8
13
|
return confine;
|
|
14
|
+
},
|
|
15
|
+
get free () {
|
|
16
|
+
return free;
|
|
9
17
|
}
|
|
10
18
|
});
|
|
11
19
|
const _block = /*#__PURE__*/ _interop_require_default(require("../context/block"));
|
|
@@ -14,10 +22,22 @@ function _interop_require_default(obj) {
|
|
|
14
22
|
default: obj
|
|
15
23
|
};
|
|
16
24
|
}
|
|
25
|
+
function free(innerFunction, context) {
|
|
26
|
+
context = freeContext(context); ///
|
|
27
|
+
return innerFunction(context);
|
|
28
|
+
}
|
|
17
29
|
function confine(innerFunction, variables, context) {
|
|
18
30
|
const blockContext = _block.default.fromVariables(variables, context);
|
|
19
31
|
context = blockContext; ///
|
|
20
32
|
return innerFunction(context);
|
|
21
33
|
}
|
|
34
|
+
function freeContext(context) {
|
|
35
|
+
let contextBlockContext = context instanceof _block.default;
|
|
36
|
+
while(contextBlockContext){
|
|
37
|
+
context = context.getContext();
|
|
38
|
+
contextBlockContext = context instanceof _block.default;
|
|
39
|
+
}
|
|
40
|
+
return context;
|
|
41
|
+
}
|
|
22
42
|
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGV4dC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IEJsb2NrQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9ibG9ja1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gZnJlZShpbm5lckZ1bmN0aW9uLCBjb250ZXh0KSB7XG4gIGNvbnRleHQgPSBmcmVlQ29udGV4dChjb250ZXh0KTsgLy8vXG5cbiAgcmV0dXJuIGlubmVyRnVuY3Rpb24oY29udGV4dCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb25maW5lKGlubmVyRnVuY3Rpb24sIHZhcmlhYmxlcywgY29udGV4dCkge1xuICBjb25zdCBibG9ja0NvbnRleHQgPSBCbG9ja0NvbnRleHQuZnJvbVZhcmlhYmxlcyh2YXJpYWJsZXMsIGNvbnRleHQpO1xuXG4gIGNvbnRleHQgPSBibG9ja0NvbnRleHQ7ICAvLy9cblxuICByZXR1cm4gaW5uZXJGdW5jdGlvbihjb250ZXh0KTtcbn1cblxuZnVuY3Rpb24gZnJlZUNvbnRleHQoY29udGV4dCkge1xuICBsZXQgY29udGV4dEJsb2NrQ29udGV4dCA9IChjb250ZXh0IGluc3RhbmNlb2YgQmxvY2tDb250ZXh0KTtcblxuICB3aGlsZSAoY29udGV4dEJsb2NrQ29udGV4dCkge1xuICAgIGNvbnRleHQgPSBjb250ZXh0LmdldENvbnRleHQoKTtcblxuICAgIGNvbnRleHRCbG9ja0NvbnRleHQgPSAoY29udGV4dCBpbnN0YW5jZW9mIEJsb2NrQ29udGV4dClcbiAgfVxuXG4gIHJldHVybiBjb250ZXh0O1xufVxuIl0sIm5hbWVzIjpbImNvbmZpbmUiLCJmcmVlIiwiaW5uZXJGdW5jdGlvbiIsImNvbnRleHQiLCJmcmVlQ29udGV4dCIsInZhcmlhYmxlcyIsImJsb2NrQ29udGV4dCIsIkJsb2NrQ29udGV4dCIsImZyb21WYXJpYWJsZXMiLCJjb250ZXh0QmxvY2tDb250ZXh0IiwiZ2V0Q29udGV4dCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBVWdCQTtlQUFBQTs7UUFOQUM7ZUFBQUE7Ozs4REFGUzs7Ozs7O0FBRWxCLFNBQVNBLEtBQUtDLGFBQWEsRUFBRUMsT0FBTztJQUN6Q0EsVUFBVUMsWUFBWUQsVUFBVSxHQUFHO0lBRW5DLE9BQU9ELGNBQWNDO0FBQ3ZCO0FBRU8sU0FBU0gsUUFBUUUsYUFBYSxFQUFFRyxTQUFTLEVBQUVGLE9BQU87SUFDdkQsTUFBTUcsZUFBZUMsY0FBWSxDQUFDQyxhQUFhLENBQUNILFdBQVdGO0lBRTNEQSxVQUFVRyxjQUFlLEdBQUc7SUFFNUIsT0FBT0osY0FBY0M7QUFDdkI7QUFFQSxTQUFTQyxZQUFZRCxPQUFPO0lBQzFCLElBQUlNLHNCQUF1Qk4sbUJBQW1CSSxjQUFZO0lBRTFELE1BQU9FLG9CQUFxQjtRQUMxQk4sVUFBVUEsUUFBUU8sVUFBVTtRQUU1QkQsc0JBQXVCTixtQkFBbUJJLGNBQVk7SUFDeEQ7SUFFQSxPQUFPSjtBQUNUIn0=
|
package/lib/utilities/value.js
CHANGED
|
@@ -85,4 +85,4 @@ function valueFromNominalValues(nominalValues) {
|
|
|
85
85
|
return value;
|
|
86
86
|
}
|
|
87
87
|
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdmFsdWUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBlbGVtZW50cyBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCBOb21pbmFsVmFsdWUgZnJvbSBcIi4uL25vbWluYWxWYWx1ZVwiO1xuXG5pbXBvcnQgeyBwcmltaXRpdmVGcm9tQm9vbGVhbiwgcHJpbWl0aXZlRnJvbUludGVnZXIsIHByaW1pdGl2ZUZyb21Ob21pbmFsVmFsdWUsIHByaW1pdGl2ZUZyb21Ob21pbmFsVmFsdWVzLCBwcmltaXRpdmVGcm9tU3RyaW5nTGl0ZXJhbCB9IGZyb20gXCIuLi91dGlsaXRpZXMvcHJpbWl0aXZlXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWx1ZUZyb21Cb29sZWFuKGJvb2xlYW4sIGNvbnRleHQpIHtcbiAgY29uc3QgeyBWYWx1ZSB9ID0gZWxlbWVudHMsXG4gICAgICAgIHZhcmlhYmxlID0gbnVsbCxcbiAgICAgICAgcHJpbWl0aXZlID0gcHJpbWl0aXZlRnJvbUJvb2xlYW4oYm9vbGVhbiwgY29udGV4dCksXG4gICAgICAgIHN0cmluZyA9IHByaW1pdGl2ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgbm9kZSA9IG51bGwsXG4gICAgICAgIGJyZWFrUG9pbnQgPSBudWxsO1xuXG4gIGNvbnRleHQgPSBudWxsO1xuXG4gIGNvbnN0IHZhbHVlID0gbmV3IFZhbHVlKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdmFyaWFibGUsIHByaW1pdGl2ZSk7XG5cbiAgcmV0dXJuIHZhbHVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsdWVGcm9tSW50ZWdlcihpbnRlZ2VyLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgVmFsdWUgfSA9IGVsZW1lbnRzLFxuICAgICAgICB2YXJpYWJsZSA9IG51bGwsXG4gICAgICAgIHByaW1pdGl2ZSA9IHByaW1pdGl2ZUZyb21JbnRlZ2VyKGludGVnZXIsIGNvbnRleHQpLFxuICAgICAgICBzdHJpbmcgPSBwcmltaXRpdmUuZ2V0U3RyaW5nKCksXG4gICAgICAgIG5vZGUgPSBudWxsLFxuICAgICAgICBicmVha1BvaW50ID0gbnVsbDtcblxuICBjb250ZXh0ID0gbnVsbDtcblxuICBjb25zdCB2YWx1ZSA9IG5ldyBWYWx1ZShjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHZhcmlhYmxlLCBwcmltaXRpdmUpO1xuXG4gIHJldHVybiB2YWx1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbHVlRnJvbU5vbWluYWxWYWx1ZShub21pbmFsVmFsdWUpIHtcbiAgY29uc3QgeyBWYWx1ZSB9ID0gZWxlbWVudHMsXG4gICAgICAgIHZhcmlhYmxlID0gbnVsbCxcbiAgICAgICAgcHJpbWl0aXZlID0gcHJpbWl0aXZlRnJvbU5vbWluYWxWYWx1ZShub21pbmFsVmFsdWUpLFxuICAgICAgICBzdHJpbmcgPSBwcmltaXRpdmUuZ2V0U3RyaW5nKCksXG4gICAgICAgIGJyZWFrUG9pbnQgPSBudWxsLFxuICAgICAgICBub2RlID0gbnVsbCxcbiAgICAgICAgY29udGV4dCA9IG51bGwsICAvLy9cbiAgICAgICAgdmFsdWUgPSBuZXcgVmFsdWUoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB2YXJpYWJsZSwgcHJpbWl0aXZlKTtcblxuICByZXR1cm4gdmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWx1ZUZyb21TdHJpbmdMaXRlcmFsKHN0cmluZ0xpdGVyYWwsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBWYWx1ZSB9ID0gZWxlbWVudHMsXG4gICAgICAgIHZhcmlhYmxlID0gbnVsbCxcbiAgICAgICAgcHJpbWl0aXZlID0gcHJpbWl0aXZlRnJvbVN0cmluZ0xpdGVyYWwoc3RyaW5nTGl0ZXJhbCwgY29udGV4dCksXG4gICAgICAgIHN0cmluZyA9IHByaW1pdGl2ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgbm9kZSA9IG51bGwsXG4gICAgICAgIGJyZWFrUG9pbnQgPSBudWxsO1xuXG4gIGNvbnRleHQgPSBudWxsO1xuXG4gIGNvbnN0IHZhbHVlID0gbmV3IFZhbHVlKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdmFyaWFibGUsIHByaW1pdGl2ZSk7XG5cbiAgcmV0dXJuIHZhbHVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsdWVGcm9tTm9kZUFuZE5vbWluYWxWYWx1ZShub2RlLCBub21pbmFsVmFsdWUpIHtcbiAgY29uc3QgY29udGV4dCA9IG5vbWluYWxWYWx1ZS5nZXRDb250ZXh0KCk7XG5cbiAgbm9taW5hbFZhbHVlID0gTm9taW5hbFZhbHVlLmZyb21Ob2RlKG5vZGUsIGNvbnRleHQpO1xuXG4gIGNvbnN0IHZhbHVlID0gdmFsdWVGcm9tTm9taW5hbFZhbHVlKG5vbWluYWxWYWx1ZSk7XG5cbiAgcmV0dXJuIHZhbHVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsdWVGcm9tTm9kZXNBbmROb21pbmFsVmFsdWUobm9kZXMsIG5vbWluYWxWYWx1ZSkge1xuICBjb25zdCBjb250ZXh0ID0gbm9taW5hbFZhbHVlLmdldENvbnRleHQoKSxcbiAgICAgICAgbm9taW5hbFZ2YWx1ZXMgPSBub2Rlcy5tYXAoKG5vZGUpID0+IHtcbiAgICAgICAgICBjb25zdCBub21pbmFsVmFsdWUgPSBOb21pbmFsVmFsdWUuZnJvbU5vZGUobm9kZSwgY29udGV4dCk7XG5cbiAgICAgICAgICByZXR1cm4gbm9taW5hbFZhbHVlO1xuICAgICAgICB9KSxcbiAgICAgICAgdmFsdWUgPSB2YWx1ZUZyb21Ob21pbmFsVmFsdWVzKG5vbWluYWxWdmFsdWVzKTtcblxuICByZXR1cm4gdmFsdWU7XG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgdmFsdWVGcm9tQm9vbGVhbixcbiAgdmFsdWVGcm9tU3RyaW5nTGl0ZXJhbCxcbiAgdmFsdWVGcm9tTm9kZUFuZE5vbWluYWxWYWx1ZSxcbiAgdmFsdWVGcm9tTm9kZXNBbmROb21pbmFsVmFsdWVcbn07XG5cbmZ1bmN0aW9uIHZhbHVlRnJvbU5vbWluYWxWYWx1ZXMobm9taW5hbFZhbHVlcykge1xuICBjb25zdCB7IFZhbHVlIH0gPSBlbGVtZW50cyxcbiAgICAgICAgdmFyaWFibGUgPSBudWxsLFxuICAgICAgICBjb250ZXh0ID0gbnVsbCxcbiAgICAgICAgcHJpbWl0aXZlID0gcHJpbWl0aXZlRnJvbU5vbWluYWxWYWx1ZXMobm9taW5hbFZhbHVlcywgY29udGV4dCksXG4gICAgICAgIHN0cmluZyA9IHByaW1pdGl2ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgbm9kZSA9IG51bGwsXG4gICAgICAgIGJyZWFrUG9pbnQgPSBudWxsLFxuICAgICAgICB2YWx1ZSA9IG5ldyBWYWx1ZShjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHZhcmlhYmxlLCBwcmltaXRpdmUpO1xuXG4gIHJldHVybiB2YWx1ZTtcbn1cbiJdLCJuYW1lcyI6WyJ2YWx1ZUZyb21Cb29sZWFuIiwidmFsdWVGcm9tSW50ZWdlciIsInZhbHVlRnJvbU5vZGVBbmROb21pbmFsVmFsdWUiLCJ2YWx1ZUZyb21Ob2Rlc0FuZE5vbWluYWxWYWx1ZSIsInZhbHVlRnJvbU5vbWluYWxWYWx1ZSIsInZhbHVlRnJvbVN0cmluZ0xpdGVyYWwiLCJib29sZWFuIiwiY29udGV4dCIsIlZhbHVlIiwiZWxlbWVudHMiLCJ2YXJpYWJsZSIsInByaW1pdGl2ZSIsInByaW1pdGl2ZUZyb21Cb29sZWFuIiwic3RyaW5nIiwiZ2V0U3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ2YWx1ZSIsImludGVnZXIiLCJwcmltaXRpdmVGcm9tSW50ZWdlciIsIm5vbWluYWxWYWx1ZSIsInByaW1pdGl2ZUZyb21Ob21pbmFsVmFsdWUiLCJzdHJpbmdMaXRlcmFsIiwicHJpbWl0aXZlRnJvbVN0cmluZ0xpdGVyYWwiLCJnZXRDb250ZXh0IiwiTm9taW5hbFZhbHVlIiwiZnJvbU5vZGUiLCJub2RlcyIsIm5vbWluYWxWdmFsdWVzIiwibWFwIiwidmFsdWVGcm9tTm9taW5hbFZhbHVlcyIsIm5vbWluYWxWYWx1ZXMiLCJwcmltaXRpdmVGcm9tTm9taW5hbFZhbHVlcyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBdUZBO2VBQUE7O1FBaEZnQkE7ZUFBQUE7O1FBZUFDO2VBQUFBOztRQTJDQUM7ZUFBQUE7O1FBVUFDO2VBQUFBOztRQXRDQUM7ZUFBQUE7O1FBYUFDO2VBQUFBOzs7aUVBaERLO3FFQUNJOzJCQUVxSDs7Ozs7O0FBRXZJLFNBQVNMLGlCQUFpQk0sT0FBTyxFQUFFQyxPQUFPO0lBQy9DLE1BQU0sRUFBRUMsS0FBSyxFQUFFLEdBQUdDLGlCQUFRLEVBQ3BCQyxXQUFXLE1BQ1hDLFlBQVlDLElBQUFBLCtCQUFvQixFQUFDTixTQUFTQyxVQUMxQ00sU0FBU0YsVUFBVUcsU0FBUyxJQUM1QkMsT0FBTyxNQUNQQyxhQUFhO0lBRW5CVCxVQUFVO0lBRVYsTUFBTVUsUUFBUSxJQUFJVCxNQUFNRCxTQUFTTSxRQUFRRSxNQUFNQyxZQUFZTixVQUFVQztJQUVyRSxPQUFPTTtBQUNUO0FBRU8sU0FBU2hCLGlCQUFpQmlCLE9BQU8sRUFBRVgsT0FBTztJQUMvQyxNQUFNLEVBQUVDLEtBQUssRUFBRSxHQUFHQyxpQkFBUSxFQUNwQkMsV0FBVyxNQUNYQyxZQUFZUSxJQUFBQSwrQkFBb0IsRUFBQ0QsU0FBU1gsVUFDMUNNLFNBQVNGLFVBQVVHLFNBQVMsSUFDNUJDLE9BQU8sTUFDUEMsYUFBYTtJQUVuQlQsVUFBVTtJQUVWLE1BQU1VLFFBQVEsSUFBSVQsTUFBTUQsU0FBU00sUUFBUUUsTUFBTUMsWUFBWU4sVUFBVUM7SUFFckUsT0FBT007QUFDVDtBQUVPLFNBQVNiLHNCQUFzQmdCLFlBQVk7SUFDaEQsTUFBTSxFQUFFWixLQUFLLEVBQUUsR0FBR0MsaUJBQVEsRUFDcEJDLFdBQVcsTUFDWEMsWUFBWVUsSUFBQUEsb0NBQXlCLEVBQUNELGVBQ3RDUCxTQUFTRixVQUFVRyxTQUFTLElBQzVCRSxhQUFhLE1BQ2JELE9BQU8sTUFDUFIsVUFBVSxNQUNWVSxRQUFRLElBQUlULE1BQU1ELFNBQVNNLFFBQVFFLE1BQU1DLFlBQVlOLFVBQVVDO0lBRXJFLE9BQU9NO0FBQ1Q7QUFFTyxTQUFTWix1QkFBdUJpQixhQUFhLEVBQUVmLE9BQU87SUFDM0QsTUFBTSxFQUFFQyxLQUFLLEVBQUUsR0FBR0MsaUJBQVEsRUFDcEJDLFdBQVcsTUFDWEMsWUFBWVksSUFBQUEscUNBQTBCLEVBQUNELGVBQWVmLFVBQ3RETSxTQUFTRixVQUFVRyxTQUFTLElBQzVCQyxPQUFPLE1BQ1BDLGFBQWE7SUFFbkJULFVBQVU7SUFFVixNQUFNVSxRQUFRLElBQUlULE1BQU1ELFNBQVNNLFFBQVFFLE1BQU1DLFlBQVlOLFVBQVVDO0lBRXJFLE9BQU9NO0FBQ1Q7QUFFTyxTQUFTZiw2QkFBNkJhLElBQUksRUFBRUssWUFBWTtJQUM3RCxNQUFNYixVQUFVYSxhQUFhSSxVQUFVO0lBRXZDSixlQUFlSyxxQkFBWSxDQUFDQyxRQUFRLENBQUNYLE1BQU1SO0lBRTNDLE1BQU1VLFFBQVFiLHNCQUFzQmdCO0lBRXBDLE9BQU9IO0FBQ1Q7QUFFTyxTQUFTZCw4QkFBOEJ3QixLQUFLLEVBQUVQLFlBQVk7SUFDL0QsTUFBTWIsVUFBVWEsYUFBYUksVUFBVSxJQUNqQ0ksaUJBQWlCRCxNQUFNRSxHQUFHLENBQUMsQ0FBQ2Q7UUFDMUIsTUFBTUssZUFBZUsscUJBQVksQ0FBQ0MsUUFBUSxDQUFDWCxNQUFNUjtRQUVqRCxPQUFPYTtJQUNULElBQ0FILFFBQVFhLHVCQUF1QkY7SUFFckMsT0FBT1g7QUFDVDtNQUVBLFdBQWU7SUFDYmpCO0lBQ0FLO0lBQ0FIO0lBQ0FDO0FBQ0Y7QUFFQSxTQUFTMkIsdUJBQXVCQyxhQUFhO0lBQzNDLE1BQU0sRUFBRXZCLEtBQUssRUFBRSxHQUFHQyxpQkFBUSxFQUNwQkMsV0FBVyxNQUNYSCxVQUFVLE1BQ1ZJLFlBQVlxQixJQUFBQSxxQ0FBMEIsRUFBQ0QsZUFBZXhCLFVBQ3RETSxTQUFTRixVQUFVRyxTQUFTLElBQzVCQyxPQUFPLE1BQ1BDLGFBQWEsTUFDYkMsUUFBUSxJQUFJVCxNQUFNRCxTQUFTTSxRQUFRRSxNQUFNQyxZQUFZTixVQUFVQztJQUVyRSxPQUFPTTtBQUNUIn0=
|
package/package.json
CHANGED
package/src/element/nodeQuery.js
CHANGED
|
@@ -4,10 +4,11 @@ import { Element } from "occam-languages";
|
|
|
4
4
|
import { arrayUtilities } from "necessary";
|
|
5
5
|
|
|
6
6
|
import Exception from "../exception";
|
|
7
|
+
import NominalValue from "../nominalValue";
|
|
7
8
|
|
|
8
9
|
import { define } from "../elements";
|
|
9
10
|
import { NOMINAL_VALUE_TYPE_NAME } from "../typeNames";
|
|
10
|
-
import { valueFromNodeAndNominalValue } from "../utilities/value";
|
|
11
|
+
import { valueFromNominalValue, valueFromNodeAndNominalValue } from "../utilities/value";
|
|
11
12
|
|
|
12
13
|
const { first } = arrayUtilities;
|
|
13
14
|
|
|
@@ -72,18 +73,24 @@ export default define(class NodeQuery extends Element {
|
|
|
72
73
|
const nodes = this.query.execute(node),
|
|
73
74
|
nodesLength = nodes.length;
|
|
74
75
|
|
|
75
|
-
if (
|
|
76
|
-
|
|
77
|
-
|
|
76
|
+
if (false) {
|
|
77
|
+
///
|
|
78
|
+
} else if (nodesLength === 0) {
|
|
79
|
+
const nominalValue = NominalValue.fromNothing();
|
|
78
80
|
|
|
79
|
-
|
|
80
|
-
}
|
|
81
|
+
value = valueFromNominalValue(nominalValue);
|
|
82
|
+
} else if (nodesLength === 1) {
|
|
83
|
+
const firstNode = first(nodes);
|
|
81
84
|
|
|
82
|
-
|
|
85
|
+
node = firstNode ///
|
|
83
86
|
|
|
84
|
-
|
|
87
|
+
value = valueFromNodeAndNominalValue(node, nominalValue);
|
|
88
|
+
} else {
|
|
89
|
+
const message = `The length of the returned nodes is ${nodesLength} when it should be 0 or 1.`,
|
|
90
|
+
exception = Exception.fromMessage(message);
|
|
85
91
|
|
|
86
|
-
|
|
92
|
+
throw exception;
|
|
93
|
+
}
|
|
87
94
|
|
|
88
95
|
const valueString = value.getString();
|
|
89
96
|
|
|
@@ -4,6 +4,7 @@ import { Element } from "occam-languages";
|
|
|
4
4
|
|
|
5
5
|
import Exception from "../exception";
|
|
6
6
|
|
|
7
|
+
import { free } from "../utilities/context";
|
|
7
8
|
import { define } from "../elements";
|
|
8
9
|
|
|
9
10
|
export default define(class ProcedureCall extends Element {
|
|
@@ -41,10 +42,16 @@ export default define(class ProcedureCall extends Element {
|
|
|
41
42
|
throw exception;
|
|
42
43
|
}
|
|
43
44
|
|
|
45
|
+
let value;
|
|
46
|
+
|
|
44
47
|
const procedure = context.findProcedureByProcedureName(procedureName),
|
|
45
|
-
values = this.values.evaluate(context)
|
|
46
|
-
|
|
47
|
-
|
|
48
|
+
values = this.values.evaluate(context);
|
|
49
|
+
|
|
50
|
+
await free(async (context) => {
|
|
51
|
+
value = await procedure.call(values, context);
|
|
52
|
+
}, context);
|
|
53
|
+
|
|
54
|
+
const valueString = value.getString();
|
|
48
55
|
|
|
49
56
|
context.debug(`...evaluated the '${procedureCallString}' function call as '${valueString}'.`);
|
|
50
57
|
|
package/src/utilities/context.js
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
import BlockContext from "../context/block";
|
|
4
4
|
|
|
5
|
+
export function free(innerFunction, context) {
|
|
6
|
+
context = freeContext(context); ///
|
|
7
|
+
|
|
8
|
+
return innerFunction(context);
|
|
9
|
+
}
|
|
10
|
+
|
|
5
11
|
export function confine(innerFunction, variables, context) {
|
|
6
12
|
const blockContext = BlockContext.fromVariables(variables, context);
|
|
7
13
|
|
|
@@ -9,3 +15,15 @@ export function confine(innerFunction, variables, context) {
|
|
|
9
15
|
|
|
10
16
|
return innerFunction(context);
|
|
11
17
|
}
|
|
18
|
+
|
|
19
|
+
function freeContext(context) {
|
|
20
|
+
let contextBlockContext = (context instanceof BlockContext);
|
|
21
|
+
|
|
22
|
+
while (contextBlockContext) {
|
|
23
|
+
context = context.getContext();
|
|
24
|
+
|
|
25
|
+
contextBlockContext = (context instanceof BlockContext)
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
return context;
|
|
29
|
+
}
|
package/src/utilities/value.js
CHANGED
|
@@ -7,11 +7,11 @@ import { primitiveFromBoolean, primitiveFromInteger, primitiveFromNominalValue,
|
|
|
7
7
|
|
|
8
8
|
export function valueFromBoolean(boolean, context) {
|
|
9
9
|
const { Value } = elements,
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
variable = null,
|
|
11
|
+
primitive = primitiveFromBoolean(boolean, context),
|
|
12
|
+
string = primitive.getString(),
|
|
13
|
+
node = null,
|
|
14
|
+
breakPoint = null;
|
|
15
15
|
|
|
16
16
|
context = null;
|
|
17
17
|
|