occam-furtle 2.0.82 → 2.0.86
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/dom/every.js +5 -5
- package/lib/dom/label.js +6 -2
- package/lib/dom/parameter/named.js +5 -3
- package/lib/dom/parameter.js +6 -2
- package/lib/dom/parameters.js +4 -12
- package/lib/dom/procedure/anonymous.js +8 -16
- package/lib/dom/procedure.js +4 -4
- package/lib/dom/procedureCall.js +6 -2
- package/lib/dom/reduce.js +4 -4
- package/lib/dom/reference.js +6 -2
- package/lib/dom/some.js +4 -4
- package/lib/dom/step.js +8 -12
- package/lib/dom/ternary.js +2 -2
- package/lib/dom/value.js +8 -28
- package/lib/dom/values.js +2 -9
- package/lib/dom/variable.js +10 -13
- package/lib/index.js +1 -4
- package/lib/nodeProperties.js +10 -3
- package/lib/nodeProperty.js +2 -2
- package/package.json +4 -4
- package/src/dom/every.js +8 -12
- package/src/dom/label.js +9 -3
- package/src/dom/parameter/named.js +7 -2
- package/src/dom/parameter.js +9 -2
- package/src/dom/parameters.js +1 -1
- package/src/dom/procedure/anonymous.js +16 -29
- package/src/dom/procedure.js +7 -10
- package/src/dom/procedureCall.js +10 -2
- package/src/dom/reduce.js +8 -11
- package/src/dom/reference.js +8 -2
- package/src/dom/some.js +7 -9
- package/src/dom/step.js +11 -13
- package/src/dom/ternary.js +4 -4
- package/src/dom/value.js +7 -32
- package/src/dom/values.js +1 -10
- package/src/dom/variable.js +12 -17
- package/src/index.js +0 -3
- package/src/nodeProperties.js +15 -1
- package/src/nodeProperty.js +3 -1
- package/lib/dom/block.js +0 -154
- package/lib/dom/conditionalBlocks.js +0 -176
- package/lib/dom/procedureCall/anonymous.js +0 -145
- package/src/dom/block.js +0 -73
- package/src/dom/conditionalBlocks.js +0 -106
- package/src/dom/procedureCall/anonymous.js +0 -68
package/lib/nodeProperties.js
CHANGED
|
@@ -10,7 +10,6 @@ Object.defineProperty(exports, "default", {
|
|
|
10
10
|
});
|
|
11
11
|
var _exception = /*#__PURE__*/ _interop_require_default(require("./exception"));
|
|
12
12
|
var _nodeProperty = /*#__PURE__*/ _interop_require_default(require("./nodeProperty"));
|
|
13
|
-
var _parameters = require("./dom/parameters");
|
|
14
13
|
var _types = require("./types");
|
|
15
14
|
var _parameterNames = require("./parameterNames");
|
|
16
15
|
function _class_call_check(instance, Constructor) {
|
|
@@ -105,7 +104,7 @@ var NodeProperties = /*#__PURE__*/ function() {
|
|
|
105
104
|
var context = null, array = names.map(function(name, index) {
|
|
106
105
|
var type = types[index], nodeProperty = _nodeProperty.default.fromNameAndType(name, type, context);
|
|
107
106
|
return nodeProperty;
|
|
108
|
-
}), string =
|
|
107
|
+
}), string = stringFromArray(array, context), nodeProperties = new NodeProperties(string, array);
|
|
109
108
|
return nodeProperties;
|
|
110
109
|
}
|
|
111
110
|
}
|
|
@@ -114,5 +113,13 @@ var NodeProperties = /*#__PURE__*/ function() {
|
|
|
114
113
|
}();
|
|
115
114
|
var nodeProperties = NodeProperties.fromNothing();
|
|
116
115
|
var _default = nodeProperties;
|
|
116
|
+
function stringFromArray(array, context) {
|
|
117
|
+
var nodePropertiesString = array.reduce(function(nodePropertiesString, nodeProperty) {
|
|
118
|
+
var nodePropertyString = nodeProperty.getString();
|
|
119
|
+
nodePropertiesString = nodePropertiesString === null ? nodePropertyString : "".concat(nodePropertiesString, ", ").concat(nodePropertyString);
|
|
120
|
+
return nodePropertiesString;
|
|
121
|
+
}, null), string = nodePropertiesString; ///
|
|
122
|
+
return string;
|
|
123
|
+
}
|
|
117
124
|
|
|
118
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ub2RlUHJvcGVydGllcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi9leGNlcHRpb25cIjtcbmltcG9ydCBOb2RlUHJvcGVydHkgZnJvbSBcIi4vbm9kZVByb3BlcnR5XCI7XG5cbmltcG9ydCB7IE5PREVTX1RZUEUsIFNUUklOR19UWVBFLCBCT09MRUFOX1RZUEUgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgQ09OVEVOVF9QQVJBTUVURVJfTkFNRSwgVEVSTUlOQUxfUEFSQU1FVEVSX05BTUUsIENISUxEX05PREVTX1BBUkFNRVRFUl9OQU1FIH0gZnJvbSBcIi4vcGFyYW1ldGVyTmFtZXNcIjtcblxuY29uc3QgdHlwZXMgPSBbXG4gICAgICAgIFNUUklOR19UWVBFLFxuICAgICAgICBCT09MRUFOX1RZUEUsXG4gICAgICAgIE5PREVTX1RZUEUsXG4gICAgICBdLFxuICAgICAgbmFtZXMgPSBbXG4gICAgICAgIENPTlRFTlRfUEFSQU1FVEVSX05BTUUsXG4gICAgICAgIFRFUk1JTkFMX1BBUkFNRVRFUl9OQU1FLFxuICAgICAgICBDSElMRF9OT0RFU19QQVJBTUVURVJfTkFNRVxuICAgICAgXTtcblxuY2xhc3MgTm9kZVByb3BlcnRpZXMge1xuICBjb25zdHJ1Y3RvcihzdHJpbmcsIGFycmF5KSB7XG4gICAgdGhpcy5zdHJpbmcgPSBzdHJpbmc7XG4gICAgdGhpcy5hcnJheSA9IGFycmF5O1xuICB9XG5cbiAgZ2V0U3RyaW5nKCkge1xuICAgIHJldHVybiB0aGlzLnN0cmluZztcbiAgfVxuXG4gIGdldEFycmF5KCkge1xuICAgIHJldHVybiB0aGlzLmFycmF5O1xuICB9XG5cbiAgc29tZU5vZGVQcm9wZXJ0eShjYWxsYmFjaykgeyByZXR1cm4gdGhpcy5hcnJheS5zb21lKGNhbGxiYWNrKTsgfVxuXG4gIG1hdGNoTmFtZWRQYXJhbWV0ZXIobmFtZWRQYXJhbWV0ZXIsIGNvbnRleHQpIHtcbiAgICBjb25zdCBub2RlUHJvcGVydGllc1N0cmluZyA9IHRoaXMuc3RyaW5nLCAvLy9cbiAgICAgICAgICBuYW1lZFBhcmFtZXRlclN0cmluZyA9IG5hbWVkUGFyYW1ldGVyLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgTWF0Y2hpbmcgdGhlICcke25hbWVkUGFyYW1ldGVyU3RyaW5nfScgbmFtZWQgcGFyYW1ldGVyIGFnYWluc3QgdGhlICcke25vZGVQcm9wZXJ0aWVzU3RyaW5nfScgbm9kZSBwcm9wZXJ0aWVzLi4uYCk7XG5cbiAgICBjb25zdCBuYW1lZFBhcmFtZXRlck1hdGNoZXMgPSB0aGlzLnNvbWVOb2RlUHJvcGVydHkoKG5vZGVQcm9wZXJ0eSkgPT4ge1xuICAgICAgY29uc3QgbmFtZWRQYXJhbWV0ZXJNYXRjaGVzTm9kZVByb3BlcnR5ID0gbm9kZVByb3BlcnR5Lm1hdGNoTmFtZWRQYXJhbWV0ZXIobmFtZWRQYXJhbWV0ZXIsIGNvbnRleHQpO1xuXG4gICAgICBpZiAobmFtZWRQYXJhbWV0ZXJNYXRjaGVzTm9kZVByb3BlcnR5KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaWYgKCFuYW1lZFBhcmFtZXRlck1hdGNoZXMpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgVGhlICcke25hbWVkUGFyYW1ldGVyU3RyaW5nfScgbmFtZWQgcGFyYW1ldGVyIGRvZXMgbm90IG1hdGNoIGFueSBvZiB0aGUgJyR7bm9kZVByb3BlcnRpZXNTdHJpbmd9JyBub2RlIHByb3BlcnRpZXMuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnRleHQuZGVidWcoYC4uLm1hdGNoZWQgdGhlICcke25hbWVkUGFyYW1ldGVyU3RyaW5nfScgbmFtZWQgcGFyYW1ldGVyIGFnYWluc3QgdGhlICcke25vZGVQcm9wZXJ0aWVzU3RyaW5nfScgbm9kZSBwcm9wZXJ0aWVzLmApO1xuICB9XG5cbiAgbWF0Y2hOYW1lZFBhcmFtZXRlcnMobmFtZWRQYXJhbWV0ZXJzLCBjb250ZXh0KSB7XG4gICAgbmFtZWRQYXJhbWV0ZXJzLmZvckVhY2hOYW1lZFBhcmFtZXRlcigobmFtZWRQYXJhbWV0ZXIpID0+IHtcbiAgICAgIHRoaXMubWF0Y2hOYW1lZFBhcmFtZXRlcihuYW1lZFBhcmFtZXRlciwgY29udGV4dCk7XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5vdGhpbmcoKSB7XG4gICAgY29uc3QgY29udGV4dCA9IG51bGwsXG4gICAgICAgICAgYXJyYXkgPSBuYW1lcy5tYXAoKG5hbWUsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0eXBlID0gdHlwZXNbaW5kZXhdLFxuICAgICAgICAgICAgICAgICAgbm9kZVByb3BlcnR5ID0gTm9kZVByb3BlcnR5LmZyb21OYW1lQW5kVHlwZShuYW1lLCB0eXBlLCBjb250ZXh0KTtcblxuICAgICAgICAgICAgcmV0dXJuIG5vZGVQcm9wZXJ0eTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBzdHJpbmcgPSBzdHJpbmdGcm9tQXJyYXkoYXJyYXksIGNvbnRleHQpLFxuICAgICAgICAgIG5vZGVQcm9wZXJ0aWVzID0gbmV3IE5vZGVQcm9wZXJ0aWVzKHN0cmluZywgYXJyYXkpO1xuXG4gICAgcmV0dXJuIG5vZGVQcm9wZXJ0aWVzO1xuICB9XG59XG5cbmNvbnN0IG5vZGVQcm9wZXJ0aWVzID0gTm9kZVByb3BlcnRpZXMuZnJvbU5vdGhpbmcoKTtcblxuZXhwb3J0IGRlZmF1bHQgbm9kZVByb3BlcnRpZXM7XG5cbmZ1bmN0aW9uIHN0cmluZ0Zyb21BcnJheShhcnJheSwgY29udGV4dCkge1xuICBjb25zdCBub2RlUHJvcGVydGllc1N0cmluZyA9IGFycmF5LnJlZHVjZSgobm9kZVByb3BlcnRpZXNTdHJpbmcsIG5vZGVQcm9wZXJ0eSkgPT4ge1xuICAgICAgICAgIGNvbnN0IG5vZGVQcm9wZXJ0eVN0cmluZyA9IG5vZGVQcm9wZXJ0eS5nZXRTdHJpbmcoKTtcblxuICAgICAgICAgIG5vZGVQcm9wZXJ0aWVzU3RyaW5nID0gKG5vZGVQcm9wZXJ0aWVzU3RyaW5nID09PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVQcm9wZXJ0eVN0cmluZyA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHtub2RlUHJvcGVydGllc1N0cmluZ30sICR7bm9kZVByb3BlcnR5U3RyaW5nfWA7XG5cbiAgICAgICAgICByZXR1cm4gbm9kZVByb3BlcnRpZXNTdHJpbmc7XG4gICAgICAgIH0sIG51bGwpLFxuICAgICAgICBzdHJpbmcgPSBub2RlUHJvcGVydGllc1N0cmluZzsgIC8vL1xuXG4gIHJldHVybiBzdHJpbmc7XG59XG4iXSwibmFtZXMiOlsidHlwZXMiLCJTVFJJTkdfVFlQRSIsIkJPT0xFQU5fVFlQRSIsIk5PREVTX1RZUEUiLCJuYW1lcyIsIkNPTlRFTlRfUEFSQU1FVEVSX05BTUUiLCJURVJNSU5BTF9QQVJBTUVURVJfTkFNRSIsIkNISUxEX05PREVTX1BBUkFNRVRFUl9OQU1FIiwiTm9kZVByb3BlcnRpZXMiLCJzdHJpbmciLCJhcnJheSIsImdldFN0cmluZyIsImdldEFycmF5Iiwic29tZU5vZGVQcm9wZXJ0eSIsImNhbGxiYWNrIiwic29tZSIsIm1hdGNoTmFtZWRQYXJhbWV0ZXIiLCJuYW1lZFBhcmFtZXRlciIsImNvbnRleHQiLCJub2RlUHJvcGVydGllc1N0cmluZyIsIm5hbWVkUGFyYW1ldGVyU3RyaW5nIiwidHJhY2UiLCJuYW1lZFBhcmFtZXRlck1hdGNoZXMiLCJub2RlUHJvcGVydHkiLCJuYW1lZFBhcmFtZXRlck1hdGNoZXNOb2RlUHJvcGVydHkiLCJtZXNzYWdlIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJkZWJ1ZyIsIm1hdGNoTmFtZWRQYXJhbWV0ZXJzIiwibmFtZWRQYXJhbWV0ZXJzIiwiZm9yRWFjaE5hbWVkUGFyYW1ldGVyIiwiZnJvbU5vdGhpbmciLCJtYXAiLCJuYW1lIiwiaW5kZXgiLCJ0eXBlIiwiTm9kZVByb3BlcnR5IiwiZnJvbU5hbWVBbmRUeXBlIiwic3RyaW5nRnJvbUFycmF5Iiwibm9kZVByb3BlcnRpZXMiLCJyZWR1Y2UiLCJub2RlUHJvcGVydHlTdHJpbmciXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWtGQTs7O2VBQUE7OztnRUFoRnNCO21FQUNHO3FCQUU2Qjs4QkFDc0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFNUYsSUFBTUEsUUFBUTtJQUNOQyxrQkFBVztJQUNYQyxtQkFBWTtJQUNaQyxpQkFBVTtDQUNYLEVBQ0RDLFFBQVE7SUFDTkMsc0NBQXNCO0lBQ3RCQyx1Q0FBdUI7SUFDdkJDLDBDQUEwQjtDQUMzQjtBQUVQLElBQUEsQUFBTUMsK0JBQU47YUFBTUEsZUFDUUMsTUFBTSxFQUFFQyxLQUFLO2dDQURyQkY7UUFFRixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLEtBQUssR0FBR0E7O2tCQUhYRjs7WUFNSkcsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDRixNQUFNO1lBQ3BCOzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDRixLQUFLO1lBQ25COzs7WUFFQUcsS0FBQUE7bUJBQUFBLFNBQUFBLGlCQUFpQkMsUUFBUTtnQkFBSSxPQUFPLElBQUksQ0FBQ0osS0FBSyxDQUFDSyxJQUFJLENBQUNEO1lBQVc7OztZQUUvREUsS0FBQUE7bUJBQUFBLFNBQUFBLG9CQUFvQkMsY0FBYyxFQUFFQyxPQUFPO2dCQUN6QyxJQUFNQyx1QkFBdUIsSUFBSSxDQUFDVixNQUFNLEVBQ2xDVyx1QkFBdUJILGVBQWVOLFNBQVM7Z0JBRXJETyxRQUFRRyxLQUFLLENBQUMsQUFBQyxpQkFBc0VGLE9BQXREQyxzQkFBcUIsbUNBQXNELE9BQXJCRCxzQkFBcUI7Z0JBRTFHLElBQU1HLHdCQUF3QixJQUFJLENBQUNULGdCQUFnQixDQUFDLFNBQUNVO29CQUNuRCxJQUFNQyxvQ0FBb0NELGFBQWFQLG1CQUFtQixDQUFDQyxnQkFBZ0JDO29CQUUzRixJQUFJTSxtQ0FBbUM7d0JBQ3JDLE9BQU87b0JBQ1Q7Z0JBQ0Y7Z0JBRUEsSUFBSSxDQUFDRix1QkFBdUI7b0JBQzFCLElBQU1HLFVBQVUsQUFBQyxRQUEyRU4sT0FBcEVDLHNCQUFxQixpREFBb0UsT0FBckJELHNCQUFxQix1QkFDM0dPLFlBQVlDLGtCQUFTLENBQUNDLFdBQVcsQ0FBQ0g7b0JBRXhDLE1BQU1DO2dCQUNSO2dCQUVBUixRQUFRVyxLQUFLLENBQUMsQUFBQyxtQkFBd0VWLE9BQXREQyxzQkFBcUIsbUNBQXNELE9BQXJCRCxzQkFBcUI7WUFDOUc7OztZQUVBVyxLQUFBQTttQkFBQUEsU0FBQUEscUJBQXFCQyxlQUFlLEVBQUViLE9BQU87O2dCQUMzQ2EsZ0JBQWdCQyxxQkFBcUIsQ0FBQyxTQUFDZjtvQkFDckMsTUFBS0QsbUJBQW1CLENBQUNDLGdCQUFnQkM7Z0JBQzNDO1lBQ0Y7Ozs7WUFFT2UsS0FBQUE7bUJBQVAsU0FBT0E7Z0JBQ0wsSUFBTWYsVUFBVSxNQUNWUixRQUFRTixNQUFNOEIsR0FBRyxDQUFDLFNBQUNDLE1BQU1DO29CQUN2QixJQUFNQyxPQUFPckMsS0FBSyxDQUFDb0MsTUFBTSxFQUNuQmIsZUFBZWUscUJBQVksQ0FBQ0MsZUFBZSxDQUFDSixNQUFNRSxNQUFNbkI7b0JBRTlELE9BQU9LO2dCQUNULElBQ0FkLFNBQVMrQixnQkFBZ0I5QixPQUFPUSxVQUNoQ3VCLGlCQUFpQixJQXZEckJqQyxlQXVEd0NDLFFBQVFDO2dCQUVsRCxPQUFPK0I7WUFDVDs7O1dBMURJakM7O0FBNkROLElBQU1pQyxpQkFBaUJqQyxlQUFleUIsV0FBVztJQUVqRCxXQUFlUTtBQUVmLFNBQVNELGdCQUFnQjlCLEtBQUssRUFBRVEsT0FBTztJQUNyQyxJQUFNQyx1QkFBdUJULE1BQU1nQyxNQUFNLENBQUMsU0FBQ3ZCLHNCQUFzQkk7UUFDekQsSUFBTW9CLHFCQUFxQnBCLGFBQWFaLFNBQVM7UUFFakRRLHVCQUF1QixBQUFDQSx5QkFBeUIsT0FDeEJ3QixxQkFDQyxBQUFDLEdBQTJCQSxPQUF6QnhCLHNCQUFxQixNQUF1QixPQUFuQndCO1FBRXRELE9BQU94QjtJQUNULEdBQUcsT0FDSFYsU0FBU1Usc0JBQXVCLEdBQUc7SUFFekMsT0FBT1Y7QUFDVCJ9
|
package/lib/nodeProperty.js
CHANGED
|
@@ -93,8 +93,8 @@ var NodeProperty = /*#__PURE__*/ function() {
|
|
|
93
93
|
}();
|
|
94
94
|
_define_property(NodeProperty, "name", "Parameter");
|
|
95
95
|
function stringFromNameAndType(name, type, context) {
|
|
96
|
-
var string = "".concat(
|
|
96
|
+
var typeString = type, nameString = name, string = "".concat(typeString, " ").concat(nameString);
|
|
97
97
|
return string;
|
|
98
98
|
}
|
|
99
99
|
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ub2RlUHJvcGVydHkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5vZGVQcm9wZXJ0eSB7XG4gIGNvbnN0cnVjdG9yKHN0cmluZywgdHlwZSwgbmFtZSkge1xuICAgIHRoaXMuc3RyaW5nID0gc3RyaW5nO1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgfVxuXG4gIGdldFN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmc7XG4gIH1cblxuICBnZXRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGU7XG4gIH1cblxuICBnZXROYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cblxuICBtYXRjaE5hbWVkUGFyYW1ldGVyKG5hbWVkUGFyYW1ldGVyLCBjb250ZXh0KSB7XG4gICAgbGV0IG5hbWVkUGFyYW1ldGVyTWF0Y2hlcztcblxuICAgIGNvbnN0IG5vZGVQcm9wZXJ0eVN0cmluZyA9IHRoaXMuc3RyaW5nLCAvLy9cbiAgICAgICAgICBuYW1lZFBhcmFtZXRlclN0cmluZyA9IG5hbWVkUGFyYW1ldGVyLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgTWF0Y2hpbmcgdGhlICcke25vZGVQcm9wZXJ0eVN0cmluZ30nIG5vZGUgcHJvcGVydHkgYWdhaW5zdCB0aGUgJyR7bmFtZWRQYXJhbWV0ZXJTdHJpbmd9JyBuYW1lZCBwYXJhbWV0ZXIuLi5gKTtcblxuICAgIGNvbnN0IG5hbWUgPSBuYW1lZFBhcmFtZXRlci5nZXROYW1lKCksXG4gICAgICAgICAgdHlwZSA9IG5hbWVkUGFyYW1ldGVyLmdldFR5cGUoKTtcblxuICAgIG5hbWVkUGFyYW1ldGVyTWF0Y2hlcyA9ICgodGhpcy5uYW1lID09PSBuYW1lKSAmJiAodGhpcy50eXBlID09PSB0eXBlKSk7XG5cbiAgICBpZiAobmFtZWRQYXJhbWV0ZXJNYXRjaGVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi5tYXRjaGVkIHRoZSAnJHtub2RlUHJvcGVydHlTdHJpbmd9JyBub2RlIHByb3BlcnR5IGFnYWluc3QgdGhlICcke25hbWVkUGFyYW1ldGVyU3RyaW5nfScgbmFtZWQgcGFyYW1ldGVyLmApO1xuICAgIH1cblxuICAgIHJldHVybiBuYW1lZFBhcmFtZXRlck1hdGNoZXM7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiUGFyYW1ldGVyXCI7XG5cbiAgc3RhdGljIGZyb21OYW1lQW5kVHlwZShuYW1lLCB0eXBlLCBjb250ZXh0KSB7XG4gICAgY29uc3Qgc3RyaW5nID0gc3RyaW5nRnJvbU5hbWVBbmRUeXBlKG5hbWUsIHR5cGUsIGNvbnRleHQpLFxuICAgICAgICAgIG5vZGVQcm9wZXJ0eSA9IG5ldyBOb2RlUHJvcGVydHkoc3RyaW5nLCB0eXBlLCBuYW1lKTtcblxuICAgIHJldHVybiBub2RlUHJvcGVydHk7XG4gIH1cbn07XG5cbmZ1bmN0aW9uIHN0cmluZ0Zyb21OYW1lQW5kVHlwZShuYW1lLCB0eXBlLCBjb250ZXh0KSB7XG4gIGNvbnN0IHR5cGVTdHJpbmcgPSB0eXBlLCAgLy8vXG4gICAgICAgIG5hbWVTdHJpbmcgPSBuYW1lLCAgLy8vXG4gICAgICAgIHN0cmluZyA9IGAke3R5cGVTdHJpbmd9ICR7bmFtZVN0cmluZ31gO1xuXG4gIHJldHVybiBzdHJpbmc7XG59XG4iXSwibmFtZXMiOlsiTm9kZVByb3BlcnR5Iiwic3RyaW5nIiwidHlwZSIsIm5hbWUiLCJnZXRTdHJpbmciLCJnZXRUeXBlIiwiZ2V0TmFtZSIsIm1hdGNoTmFtZWRQYXJhbWV0ZXIiLCJuYW1lZFBhcmFtZXRlciIsImNvbnRleHQiLCJuYW1lZFBhcmFtZXRlck1hdGNoZXMiLCJub2RlUHJvcGVydHlTdHJpbmciLCJuYW1lZFBhcmFtZXRlclN0cmluZyIsInRyYWNlIiwiZGVidWciLCJmcm9tTmFtZUFuZFR5cGUiLCJzdHJpbmdGcm9tTmFtZUFuZFR5cGUiLCJub2RlUHJvcGVydHkiLCJ0eXBlU3RyaW5nIiwibmFtZVN0cmluZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFFcUJBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFOLElBQUEsQUFBTUEsNkJBQU47YUFBTUEsYUFDUEMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLElBQUk7Z0NBRFhIO1FBRWpCLElBQUksQ0FBQ0MsTUFBTSxHQUFHQTtRQUNkLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTs7a0JBSktIOztZQU9uQkksS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSCxNQUFNO1lBQ3BCOzs7WUFFQUksS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSCxJQUFJO1lBQ2xCOzs7WUFFQUksS0FBQUE7bUJBQUFBLFNBQUFBO2dCQUNFLE9BQU8sSUFBSSxDQUFDSCxJQUFJO1lBQ2xCOzs7WUFFQUksS0FBQUE7bUJBQUFBLFNBQUFBLG9CQUFvQkMsY0FBYyxFQUFFQyxPQUFPO2dCQUN6QyxJQUFJQztnQkFFSixJQUFNQyxxQkFBcUIsSUFBSSxDQUFDVixNQUFNLEVBQ2hDVyx1QkFBdUJKLGVBQWVKLFNBQVM7Z0JBRXJESyxRQUFRSSxLQUFLLENBQUMsQUFBQyxpQkFBa0VELE9BQWxERCxvQkFBbUIsaUNBQW9ELE9BQXJCQyxzQkFBcUI7Z0JBRXRHLElBQU1ULE9BQU9LLGVBQWVGLE9BQU8sSUFDN0JKLE9BQU9NLGVBQWVILE9BQU87Z0JBRW5DSyx3QkFBeUIsQUFBQyxJQUFJLENBQUNQLElBQUksS0FBS0EsUUFBVSxJQUFJLENBQUNELElBQUksS0FBS0E7Z0JBRWhFLElBQUlRLHVCQUF1QjtvQkFDekJELFFBQVFLLEtBQUssQ0FBQyxBQUFDLG1CQUFvRUYsT0FBbERELG9CQUFtQixpQ0FBb0QsT0FBckJDLHNCQUFxQjtnQkFDMUc7Z0JBRUEsT0FBT0Y7WUFDVDs7OztZQUlPSyxLQUFBQTttQkFBUCxTQUFPQSxnQkFBZ0JaLElBQUksRUFBRUQsSUFBSSxFQUFFTyxPQUFPO2dCQUN4QyxJQUFNUixTQUFTZSxzQkFBc0JiLE1BQU1ELE1BQU1PLFVBQzNDUSxlQUFlLElBM0NKakIsYUEyQ3FCQyxRQUFRQyxNQUFNQztnQkFFcEQsT0FBT2M7WUFDVDs7O1dBOUNtQmpCOztBQXVDbkIsaUJBdkNtQkEsY0F1Q1pHLFFBQU87QUFVaEIsU0FBU2Esc0JBQXNCYixJQUFJLEVBQUVELElBQUksRUFBRU8sT0FBTztJQUNoRCxJQUFNUyxhQUFhaEIsTUFDYmlCLGFBQWFoQixNQUNiRixTQUFTLEFBQUMsR0FBZ0JrQixPQUFkRCxZQUFXLEtBQWMsT0FBWEM7SUFFaEMsT0FBT2xCO0FBQ1QifQ==
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "occam-furtle",
|
|
3
3
|
"author": "James Smith",
|
|
4
|
-
"version": "2.0.
|
|
4
|
+
"version": "2.0.86",
|
|
5
5
|
"license": "MIT, Anti-996",
|
|
6
6
|
"homepage": "https://github.com/djalbat/occam-furtle",
|
|
7
7
|
"description": "Occam's Furtle language.",
|
|
@@ -11,12 +11,12 @@
|
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"necessary": "^14.3.2",
|
|
14
|
-
"occam-grammars": "^1.3.
|
|
14
|
+
"occam-grammars": "^1.3.182"
|
|
15
15
|
},
|
|
16
16
|
"devDependencies": {
|
|
17
17
|
"@swc/core": "^1.5.6",
|
|
18
|
-
"occam-custom-grammars": "^5.0.
|
|
19
|
-
"occam-entities": "^1.0.
|
|
18
|
+
"occam-custom-grammars": "^5.0.1096",
|
|
19
|
+
"occam-entities": "^1.0.304",
|
|
20
20
|
"occam-query": "^4.1.35",
|
|
21
21
|
"watchful-cli": "^1.7.56"
|
|
22
22
|
},
|
package/src/dom/every.js
CHANGED
|
@@ -7,9 +7,7 @@ import { nodeQuery } from "../utilities/query";
|
|
|
7
7
|
import { domAssigned } from "../dom";
|
|
8
8
|
import { NODES_TYPE, BOOLEAN_TYPE } from "../types";
|
|
9
9
|
|
|
10
|
-
const
|
|
11
|
-
valueEveryNodeQuery = nodeQuery("/value/every"),
|
|
12
|
-
parametersNodeQuery = nodeQuery("/every/anonymousProcedure/parameters");
|
|
10
|
+
const valueEveryNodeQuery = nodeQuery("/value/every");
|
|
13
11
|
|
|
14
12
|
export default domAssigned(class Every {
|
|
15
13
|
constructor(string, variable, anonymousProcedure) {
|
|
@@ -95,9 +93,9 @@ export default domAssigned(class Every {
|
|
|
95
93
|
if (valueEveryNode !== null) {
|
|
96
94
|
const { Variable, AnonymousProcedure } = dom,
|
|
97
95
|
everyNode = valueEveryNode, ///
|
|
98
|
-
|
|
96
|
+
anonymousProcedure = AnonymousProcedure.fromEveryNode(everyNode, context),
|
|
99
97
|
variable = Variable.fromEveryNode(everyNode, context),
|
|
100
|
-
|
|
98
|
+
string = stringFromVariableAndAnonymousProcedure(variable, anonymousProcedure, context);
|
|
101
99
|
|
|
102
100
|
every = new Every(string, variable, anonymousProcedure);
|
|
103
101
|
}
|
|
@@ -106,12 +104,10 @@ export default domAssigned(class Every {
|
|
|
106
104
|
}
|
|
107
105
|
});
|
|
108
106
|
|
|
109
|
-
function
|
|
110
|
-
const
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
parametersString = context.nodeAsString(parametersNode),
|
|
114
|
-
string = `Every(${variableString}, (${parametersString}) { ... })`;
|
|
107
|
+
function stringFromVariableAndAnonymousProcedure(variable, anonymousProcedure, context) {
|
|
108
|
+
const variableString = variable.getString(),
|
|
109
|
+
anonymousProcedureString = anonymousProcedure.getString(),
|
|
110
|
+
string = `Every(${variableString}, ${anonymousProcedureString}) `;
|
|
115
111
|
|
|
116
112
|
return string;
|
|
117
|
-
}
|
|
113
|
+
}
|
package/src/dom/label.js
CHANGED
|
@@ -29,16 +29,22 @@ export default domAssigned(class Label {
|
|
|
29
29
|
static name = "Label";
|
|
30
30
|
|
|
31
31
|
static fromProcedureDeclarationNode(procedureDeclarationNode, context) {
|
|
32
|
-
const
|
|
33
|
-
string = context.nodeAsString(node),
|
|
34
|
-
labelNode = labelNodeQuery(procedureDeclarationNode),
|
|
32
|
+
const labelNode = labelNodeQuery(procedureDeclarationNode),
|
|
35
33
|
name = nameFromLabelNode(labelNode, context),
|
|
34
|
+
string = stringFromName(name, context),
|
|
36
35
|
label = new Label(string, name);
|
|
37
36
|
|
|
38
37
|
return label;
|
|
39
38
|
}
|
|
40
39
|
});
|
|
41
40
|
|
|
41
|
+
function stringFromName(name, context) {
|
|
42
|
+
const nameString = name, ///
|
|
43
|
+
string = nameString; ///
|
|
44
|
+
|
|
45
|
+
return string;
|
|
46
|
+
}
|
|
47
|
+
|
|
42
48
|
function nameFromLabelNode(labelNode, context) {
|
|
43
49
|
const nameTerminalNode = nameTerminalNodeQuery(labelNode),
|
|
44
50
|
nameTerminalNodeContent = nameTerminalNode.getContent(),
|
|
@@ -90,10 +90,15 @@ export default domAssigned(class NamedParameter {
|
|
|
90
90
|
function stringFromTypeNameAndAsName(type, name, asName, context) {
|
|
91
91
|
let string;
|
|
92
92
|
|
|
93
|
-
|
|
93
|
+
const typeString = type, ///
|
|
94
|
+
nameString = name; ///
|
|
95
|
+
|
|
96
|
+
string = `${typeString} ${nameString}`;
|
|
94
97
|
|
|
95
98
|
if (asName !== null) {
|
|
96
|
-
|
|
99
|
+
const asNameString = asName; ///
|
|
100
|
+
|
|
101
|
+
string = `${string} As ${asNameString}`;
|
|
97
102
|
}
|
|
98
103
|
|
|
99
104
|
return string;
|
package/src/dom/parameter.js
CHANGED
|
@@ -57,8 +57,7 @@ export default domAssigned(class Parameter {
|
|
|
57
57
|
if (terminalNodesLength === 2) {
|
|
58
58
|
const name = nameFromParameterNode(parameterNode, context),
|
|
59
59
|
type = typeFromParameterNode(parameterNode, context),
|
|
60
|
-
|
|
61
|
-
string = context.nodeAsString(node);
|
|
60
|
+
string = stringFromNameAndType(name, type, context);
|
|
62
61
|
|
|
63
62
|
parameter = new Parameter(string, type, name);
|
|
64
63
|
}
|
|
@@ -67,6 +66,14 @@ export default domAssigned(class Parameter {
|
|
|
67
66
|
}
|
|
68
67
|
});
|
|
69
68
|
|
|
69
|
+
function stringFromNameAndType(name, type, context) {
|
|
70
|
+
const nameString = name, ///
|
|
71
|
+
typeString = type, ///
|
|
72
|
+
string = `${typeString} ${nameString}`;
|
|
73
|
+
|
|
74
|
+
return string;
|
|
75
|
+
}
|
|
76
|
+
|
|
70
77
|
function nameFromParameterNode(parameterNode, context) {
|
|
71
78
|
const nameTerminalNode = nameTerminalNodeQuery(parameterNode),
|
|
72
79
|
nameTerminalNodeContent = nameTerminalNode.getContent(),
|
package/src/dom/parameters.js
CHANGED
|
@@ -121,7 +121,7 @@ export default domAssigned(class Parameters {
|
|
|
121
121
|
}
|
|
122
122
|
});
|
|
123
123
|
|
|
124
|
-
|
|
124
|
+
function stringFromArray(array, context) {
|
|
125
125
|
const parametersString = array.reduce((parametersString, parameter) => {
|
|
126
126
|
const parameterString = parameter.getString();
|
|
127
127
|
|
|
@@ -7,12 +7,10 @@ import { nodeQuery } from "../../utilities/query";
|
|
|
7
7
|
import { domAssigned } from "../../dom";
|
|
8
8
|
import { variablesFromValuesAndParameters } from "../procedure";
|
|
9
9
|
|
|
10
|
-
const
|
|
11
|
-
typeTerminalNodeQuery = nodeQuery("/anonymousProcedure/@type"),
|
|
10
|
+
const typeTerminalNodeQuery = nodeQuery("/anonymousProcedure/@type"),
|
|
12
11
|
someAnonymousProcedureNodeQuery = nodeQuery("/some/anonymousProcedure"),
|
|
13
12
|
everyAnonymousProcedureNodeQuery = nodeQuery("/every/anonymousProcedure"),
|
|
14
|
-
reduceAnonymousProcedureNodeQuery = nodeQuery("/reduce/anonymousProcedure")
|
|
15
|
-
anonymousProcedureCallAnonymousProcedureNodeQuery = nodeQuery("/anonymousProcedureCall/anonymousProcedure");
|
|
13
|
+
reduceAnonymousProcedureNodeQuery = nodeQuery("/reduce/anonymousProcedure");
|
|
16
14
|
|
|
17
15
|
export default domAssigned(class AnonymousProcedure {
|
|
18
16
|
constructor(string, type, parameters, returnBlock) {
|
|
@@ -45,9 +43,8 @@ export default domAssigned(class AnonymousProcedure {
|
|
|
45
43
|
|
|
46
44
|
this.parameters.matchValues(values, context);
|
|
47
45
|
|
|
48
|
-
const variables = variablesFromValuesAndParameters(values, this.parameters, context)
|
|
49
|
-
|
|
50
|
-
const value = this.returnBlock.evaluate(variables, context),
|
|
46
|
+
const variables = variablesFromValuesAndParameters(values, this.parameters, context),
|
|
47
|
+
value = this.returnBlock.evaluate(variables, context),
|
|
51
48
|
valueType = value.getType();
|
|
52
49
|
|
|
53
50
|
if (this.type !== valueType) {
|
|
@@ -88,27 +85,28 @@ export default domAssigned(class AnonymousProcedure {
|
|
|
88
85
|
|
|
89
86
|
return anonymousProcedure;
|
|
90
87
|
}
|
|
91
|
-
|
|
92
|
-
static fromAnonymousProcedureCallNode(anonymousProcedureCallNode, context) {
|
|
93
|
-
const anonymousProcedureCallAnonymousProcedureNode = anonymousProcedureCallAnonymousProcedureNodeQuery(anonymousProcedureCallNode),
|
|
94
|
-
anonymousProcedureNode = anonymousProcedureCallAnonymousProcedureNode, ///
|
|
95
|
-
anonymousProcedure = anonymousProcedureFromAnonymousProcedureNode(anonymousProcedureNode, context);
|
|
96
|
-
|
|
97
|
-
return anonymousProcedure;
|
|
98
|
-
}
|
|
99
88
|
});
|
|
100
89
|
|
|
101
90
|
function anonymousProcedureFromAnonymousProcedureNode(anonymousProcedureNode, context) {
|
|
102
91
|
const { Parameters, ReturnBlock, AnonymousProcedure } = dom,
|
|
103
|
-
string = stringFromAnonymousProcedureNode(anonymousProcedureNode, context),
|
|
104
|
-
type = typeFromProcedureAnonymousProcedureNode(anonymousProcedureNode, context),
|
|
105
|
-
parameters = Parameters.fromAnonymousProcedureNode(anonymousProcedureNode, context),
|
|
106
92
|
returnBlock = ReturnBlock.fromAnonymousProcedureNode(anonymousProcedureNode, context),
|
|
93
|
+
parameters = Parameters.fromAnonymousProcedureNode(anonymousProcedureNode, context),
|
|
94
|
+
type = typeFromProcedureAnonymousProcedureNode(anonymousProcedureNode, context),
|
|
95
|
+
string = stringFromTypeParametersAndReturnBlock(type, parameters, returnBlock, context),
|
|
107
96
|
anonymousProcedure = new AnonymousProcedure(string, type, parameters, returnBlock);
|
|
108
97
|
|
|
109
98
|
return anonymousProcedure;
|
|
110
99
|
}
|
|
111
100
|
|
|
101
|
+
function stringFromTypeParametersAndReturnBlock(type, parameters, returnBlock, context) {
|
|
102
|
+
const typeString = type, ///
|
|
103
|
+
parametersString = parameters.getString(),
|
|
104
|
+
returnBlockString = returnBlock.getString(),
|
|
105
|
+
string = `${typeString} (${parametersString}) ${returnBlockString}`;
|
|
106
|
+
|
|
107
|
+
return string;
|
|
108
|
+
}
|
|
109
|
+
|
|
112
110
|
function typeFromProcedureAnonymousProcedureNode(anonymousProcedureNode, context) {
|
|
113
111
|
const typeTerminalNode = typeTerminalNodeQuery(anonymousProcedureNode),
|
|
114
112
|
typeTerminalNodeContent = typeTerminalNode.getContent(),
|
|
@@ -116,14 +114,3 @@ function typeFromProcedureAnonymousProcedureNode(anonymousProcedureNode, context
|
|
|
116
114
|
|
|
117
115
|
return type;
|
|
118
116
|
}
|
|
119
|
-
|
|
120
|
-
function stringFromAnonymousProcedureNode(anonymousProcedureNode, context) {
|
|
121
|
-
const parametersNode = parametersNodeQuery(anonymousProcedureNode),
|
|
122
|
-
typeTerminalNode = typeTerminalNodeQuery(anonymousProcedureNode),
|
|
123
|
-
parametersString = context.nodeAsString(parametersNode),
|
|
124
|
-
typeNode = typeTerminalNode, ///
|
|
125
|
-
typeString = context.nodeAsString(typeNode),
|
|
126
|
-
string = `${typeString} (${parametersString}) { ... }`;
|
|
127
|
-
|
|
128
|
-
return string;
|
|
129
|
-
}
|
package/src/dom/procedure.js
CHANGED
|
@@ -83,11 +83,11 @@ export default domAssigned(class Procedure {
|
|
|
83
83
|
|
|
84
84
|
static fromProcedureDeclarationNode(procedureDeclarationNode, context) {
|
|
85
85
|
const { Label, ReturnBlock, Parameters } = dom,
|
|
86
|
-
string = stringFromProcedureDeclarationNode(procedureDeclarationNode, context),
|
|
87
86
|
type = typeFromProcedureDeclarationNode(procedureDeclarationNode, context),
|
|
88
87
|
label = Label.fromProcedureDeclarationNode(procedureDeclarationNode, context),
|
|
89
88
|
parameters = Parameters.fromProcedureDeclarationNode(procedureDeclarationNode, context),
|
|
90
89
|
returnBlock = ReturnBlock.fromProcedureDeclarationNode(procedureDeclarationNode, context),
|
|
90
|
+
string = stringFromTypeLabelParametersAndReturnBlock(type, label, parameters, returnBlock),
|
|
91
91
|
procedureDeclaration = new Procedure(string, type, label, parameters, returnBlock);
|
|
92
92
|
|
|
93
93
|
return procedureDeclaration;
|
|
@@ -119,15 +119,12 @@ function typeFromProcedureDeclarationNode(procedureDeclarationNode, context) {
|
|
|
119
119
|
return type;
|
|
120
120
|
}
|
|
121
121
|
|
|
122
|
-
function
|
|
123
|
-
const
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
labelString = context.nodeAsString(labelNode),
|
|
129
|
-
parametersString = context.nodeAsString(parametersNode),
|
|
130
|
-
string = `${typeString} ${labelString}(${parametersString}) { ... }`;
|
|
122
|
+
function stringFromTypeLabelParametersAndReturnBlock(type, label, parameters, returnBlock) {
|
|
123
|
+
const typeString = type, ///
|
|
124
|
+
labelString = label.getString(),
|
|
125
|
+
parametersString = parameters.getString(),
|
|
126
|
+
returnBlockString = returnBlock.getString(),
|
|
127
|
+
string = `${typeString} ${labelString}(${parametersString}) ${returnBlockString}`;
|
|
131
128
|
|
|
132
129
|
return string;
|
|
133
130
|
}
|
package/src/dom/procedureCall.js
CHANGED
|
@@ -61,9 +61,9 @@ export default domAssigned(class ProcedureCall {
|
|
|
61
61
|
if (procedureCallNode !== null) {
|
|
62
62
|
const { Values, Reference } = dom,
|
|
63
63
|
node = procedureCallNode, ///
|
|
64
|
-
string = context.nodeAsString(node),
|
|
65
64
|
reference = Reference.fromValueNode(valueNode, context),
|
|
66
|
-
values = Values.fromValueNode(valueNode, context)
|
|
65
|
+
values = Values.fromValueNode(valueNode, context),
|
|
66
|
+
string = stringFromValuesAndReference(values, reference, context);
|
|
67
67
|
|
|
68
68
|
procedureCall = new ProcedureCall(string, reference, values);
|
|
69
69
|
}
|
|
@@ -71,3 +71,11 @@ export default domAssigned(class ProcedureCall {
|
|
|
71
71
|
return procedureCall;
|
|
72
72
|
}
|
|
73
73
|
});
|
|
74
|
+
|
|
75
|
+
function stringFromValuesAndReference(values, reference, context) {
|
|
76
|
+
const valuesString = values.getString(),
|
|
77
|
+
referenceString = reference.getString(),
|
|
78
|
+
string = `${referenceString}(${valuesString})`;
|
|
79
|
+
|
|
80
|
+
return string;
|
|
81
|
+
}
|
package/src/dom/reduce.js
CHANGED
|
@@ -91,11 +91,11 @@ export default domAssigned(class Reduce {
|
|
|
91
91
|
if (valueReduceNode !== null) {
|
|
92
92
|
const { Value, Variable, AnonymousProcedure } = dom,
|
|
93
93
|
reduceNode = valueReduceNode, ///
|
|
94
|
-
string = stringFromReduceNode(reduceNode, context),
|
|
95
94
|
value = Value.fromReduceNode(reduceNode, context),
|
|
96
95
|
variable = Variable.fromReduceNode(reduceNode, context),
|
|
97
96
|
initialValue = value, ///
|
|
98
|
-
anonymousProcedure = AnonymousProcedure.fromReduceNode(reduceNode, context)
|
|
97
|
+
anonymousProcedure = AnonymousProcedure.fromReduceNode(reduceNode, context),
|
|
98
|
+
string = stringFromVariableInitialValueAndAnonymousProcedure(variable, initialValue, anonymousProcedure);
|
|
99
99
|
|
|
100
100
|
reduce = new Reduce(string, variable, initialValue, anonymousProcedure);
|
|
101
101
|
}
|
|
@@ -104,14 +104,11 @@ export default domAssigned(class Reduce {
|
|
|
104
104
|
}
|
|
105
105
|
});
|
|
106
106
|
|
|
107
|
-
function
|
|
108
|
-
const
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
parametersString = context.nodeAsString(parametersNode),
|
|
113
|
-
initialValueString = context.nodeAsString(initialValueNode),
|
|
114
|
-
string = `Reduce(${variableString}, (${parametersString}) { ... }, ${initialValueString})`;
|
|
107
|
+
function stringFromVariableInitialValueAndAnonymousProcedure(variable, initialValue, anonymousProcedure) {
|
|
108
|
+
const variableString = variable.getString(),
|
|
109
|
+
initialValueString = initialValue.getString(),
|
|
110
|
+
anonymousProcedureString = anonymousProcedure.getString(),
|
|
111
|
+
string = `Reduce(${variableString}, ${anonymousProcedureString}, ${initialValueString})`;
|
|
115
112
|
|
|
116
113
|
return string;
|
|
117
|
-
}
|
|
114
|
+
}
|
package/src/dom/reference.js
CHANGED
|
@@ -34,15 +34,21 @@ export default domAssigned(class Reference {
|
|
|
34
34
|
static fromValueNode(valueNode, context) {
|
|
35
35
|
const valueProcedureCallReferenceNod = valueProcedureCallReferenceNodeQuery(valueNode),
|
|
36
36
|
referenceNode = valueProcedureCallReferenceNod,
|
|
37
|
-
node = referenceNode, ///
|
|
38
|
-
string = context.nodeAsString(node),
|
|
39
37
|
name = nameFromReferenceNode(referenceNode, context),
|
|
38
|
+
string = stringFromName(name, context),
|
|
40
39
|
reference = new Reference(string, name);
|
|
41
40
|
|
|
42
41
|
return reference;
|
|
43
42
|
}
|
|
44
43
|
});
|
|
45
44
|
|
|
45
|
+
function stringFromName(name, context) {
|
|
46
|
+
const nameString = name, ///
|
|
47
|
+
string = nameString; ///
|
|
48
|
+
|
|
49
|
+
return string;
|
|
50
|
+
}
|
|
51
|
+
|
|
46
52
|
function nameFromReferenceNode(referenceNode, context) {
|
|
47
53
|
const referenceNameTerminalNode = referenceNameTerminalNodeQuery(referenceNode),
|
|
48
54
|
referenceNameTerminalNodeContent = referenceNameTerminalNode.getContent(),
|
package/src/dom/some.js
CHANGED
|
@@ -95,9 +95,9 @@ export default domAssigned(class Some {
|
|
|
95
95
|
if (valueSomeNode !== null) {
|
|
96
96
|
const { Variable, AnonymousProcedure } = dom,
|
|
97
97
|
someNode = valueSomeNode, ///
|
|
98
|
-
|
|
98
|
+
anonymousProcedure = AnonymousProcedure.fromSomeNode(someNode, context),
|
|
99
99
|
variable = Variable.fromSomeNode(someNode, context),
|
|
100
|
-
|
|
100
|
+
string = stringFromVariableAndAnonymousProcedure(variable, anonymousProcedure, context);
|
|
101
101
|
|
|
102
102
|
some = new Some(string, variable, anonymousProcedure);
|
|
103
103
|
}
|
|
@@ -106,12 +106,10 @@ export default domAssigned(class Some {
|
|
|
106
106
|
}
|
|
107
107
|
});
|
|
108
108
|
|
|
109
|
-
function
|
|
110
|
-
const
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
parametersString = context.nodeAsString(parametersNode),
|
|
114
|
-
string = `Some(${variableString}, (${parametersString}) { ... })`;
|
|
109
|
+
function stringFromVariableAndAnonymousProcedure(variable, anonymousProcedure, context) {
|
|
110
|
+
const variableString = variable.getString(),
|
|
111
|
+
anonymousProcedureString = anonymousProcedure.getString(),
|
|
112
|
+
string = `Some(${variableString}, ${anonymousProcedureString}) `;
|
|
115
113
|
|
|
116
114
|
return string;
|
|
117
|
-
}
|
|
115
|
+
}
|
package/src/dom/step.js
CHANGED
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
import dom from "../dom";
|
|
4
4
|
|
|
5
5
|
import { domAssigned } from "../dom";
|
|
6
|
+
import { EMPTY_STRING } from "../constants";
|
|
6
7
|
|
|
7
8
|
export default domAssigned(class Step {
|
|
8
|
-
constructor(string, arrayAssignment, objectAssigment,
|
|
9
|
+
constructor(string, arrayAssignment, objectAssigment, variablesDeclaration) {
|
|
9
10
|
this.string = string;
|
|
10
11
|
this.arrayAssignment = arrayAssignment;
|
|
11
12
|
this.objectAssigment = objectAssigment;
|
|
12
|
-
this.conditionalBlocks = conditionalBlocks;
|
|
13
13
|
this.variablesDeclaration = variablesDeclaration;
|
|
14
14
|
}
|
|
15
15
|
|
|
@@ -25,10 +25,6 @@ export default domAssigned(class Step {
|
|
|
25
25
|
return this.objectAssigment;
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
getConditionalBlocks() {
|
|
29
|
-
return this.conditionalBlocks;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
28
|
getVariablesDeclaration() {
|
|
33
29
|
return this.variablesDeclaration;
|
|
34
30
|
}
|
|
@@ -40,8 +36,6 @@ export default domAssigned(class Step {
|
|
|
40
36
|
this.arrayAssignment.evaluate(context);
|
|
41
37
|
} else if (this.objectAssigment !== null) {
|
|
42
38
|
this.objectAssigment.evaluate(context);
|
|
43
|
-
} else if (this.conditionalBlocks !== null) {
|
|
44
|
-
this.conditionalBlocks.evaluate(context);
|
|
45
39
|
} else if (this.variablesDeclaration !== null) {
|
|
46
40
|
this.variablesDeclaration.evaluate(context);
|
|
47
41
|
}
|
|
@@ -50,15 +44,19 @@ export default domAssigned(class Step {
|
|
|
50
44
|
static name = "Step";
|
|
51
45
|
|
|
52
46
|
static fromStepNode(stepNode, context) {
|
|
53
|
-
const { ArrayAssignment, ObjectAssigment,
|
|
54
|
-
|
|
55
|
-
string = context.nodeAsString(node),
|
|
47
|
+
const { ArrayAssignment, ObjectAssigment, VariableAssignments } = dom,
|
|
48
|
+
string = stringFromNothing(context),
|
|
56
49
|
arrayAssignment = ArrayAssignment.fromStepNode(stepNode, context),
|
|
57
50
|
objectAssigment = ObjectAssigment.fromStepNode(stepNode, context),
|
|
58
|
-
conditionalBlocks = ConditionalBlocks.fromStepNode(stepNode, context),
|
|
59
51
|
variablesDeclaration = VariableAssignments.fromStepNode(stepNode, context),
|
|
60
|
-
step = new Step(string, arrayAssignment, objectAssigment,
|
|
52
|
+
step = new Step(string, arrayAssignment, objectAssigment, variablesDeclaration);
|
|
61
53
|
|
|
62
54
|
return step;
|
|
63
55
|
}
|
|
64
56
|
});
|
|
57
|
+
|
|
58
|
+
function stringFromNothing(context) {
|
|
59
|
+
const string = EMPTY_STRING;
|
|
60
|
+
|
|
61
|
+
return string;
|
|
62
|
+
}
|
package/src/dom/ternary.js
CHANGED
|
@@ -89,10 +89,10 @@ export default domAssigned(class Ternary {
|
|
|
89
89
|
});
|
|
90
90
|
|
|
91
91
|
function stringFromValueIfValueAndElseValue(value, ifValue, elseValue, context) {
|
|
92
|
-
const valueString = value.
|
|
93
|
-
ifValueString = ifValue.
|
|
94
|
-
elseValueString = elseValue.
|
|
95
|
-
string = `If (${valueString}) ${ifValueString} ${elseValueString}
|
|
92
|
+
const valueString = value.asString(context),
|
|
93
|
+
ifValueString = ifValue.asString(context),
|
|
94
|
+
elseValueString = elseValue.asString(context),
|
|
95
|
+
string = `If (${valueString}) ${ifValueString} Else ${elseValueString};`;
|
|
96
96
|
|
|
97
97
|
return string;
|
|
98
98
|
}
|