occam-furtle 2.0.71 → 2.0.73
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/assignment/object.js +36 -38
- package/lib/dom/parameter/named.js +143 -0
- package/lib/dom/parameter.js +10 -36
- package/lib/dom/parameters/named.js +208 -0
- package/lib/dom/parameters.js +2 -46
- package/lib/dom/some.js +13 -3
- package/lib/dom/step.js +1 -1
- package/lib/dom/variable.js +8 -1
- package/lib/index.js +3 -1
- package/lib/nodeProperties.js +118 -0
- package/lib/nodeProperty.js +100 -0
- package/package.json +4 -4
- package/src/dom/assignment/object.js +34 -36
- package/src/dom/parameter/named.js +119 -0
- package/src/dom/parameter.js +7 -43
- package/src/dom/parameters/named.js +129 -0
- package/src/dom/parameters.js +0 -51
- package/src/dom/some.js +23 -5
- package/src/dom/step.js +0 -1
- package/src/dom/variable.js +13 -0
- package/src/index.js +2 -0
- package/src/nodeProperties.js +84 -0
- package/src/nodeProperty.js +56 -0
- package/lib/parameters/node.js +0 -76
- package/src/parameters/node.js +0 -32
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return _default;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _exception = /*#__PURE__*/ _interop_require_default(require("./exception"));
|
|
12
|
+
var _nodeProperty = /*#__PURE__*/ _interop_require_default(require("./nodeProperty"));
|
|
13
|
+
var _parameters = require("./dom/parameters");
|
|
14
|
+
var _types = require("./types");
|
|
15
|
+
var _parameterNames = require("./parameterNames");
|
|
16
|
+
function _class_call_check(instance, Constructor) {
|
|
17
|
+
if (!(instance instanceof Constructor)) {
|
|
18
|
+
throw new TypeError("Cannot call a class as a function");
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
function _defineProperties(target, props) {
|
|
22
|
+
for(var i = 0; i < props.length; i++){
|
|
23
|
+
var descriptor = props[i];
|
|
24
|
+
descriptor.enumerable = descriptor.enumerable || false;
|
|
25
|
+
descriptor.configurable = true;
|
|
26
|
+
if ("value" in descriptor) descriptor.writable = true;
|
|
27
|
+
Object.defineProperty(target, descriptor.key, descriptor);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function _create_class(Constructor, protoProps, staticProps) {
|
|
31
|
+
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
32
|
+
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
33
|
+
return Constructor;
|
|
34
|
+
}
|
|
35
|
+
function _interop_require_default(obj) {
|
|
36
|
+
return obj && obj.__esModule ? obj : {
|
|
37
|
+
default: obj
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
var types = [
|
|
41
|
+
_types.STRING_TYPE,
|
|
42
|
+
_types.BOOLEAN_TYPE,
|
|
43
|
+
_types.NODES_TYPE
|
|
44
|
+
], names = [
|
|
45
|
+
_parameterNames.CONTENT_PARAMETER_NAME,
|
|
46
|
+
_parameterNames.TERMINAL_PARAMETER_NAME,
|
|
47
|
+
_parameterNames.CHILD_NODES_PARAMETER_NAME
|
|
48
|
+
];
|
|
49
|
+
var NodeProperties = /*#__PURE__*/ function() {
|
|
50
|
+
function NodeProperties(string, array) {
|
|
51
|
+
_class_call_check(this, NodeProperties);
|
|
52
|
+
this.string = string;
|
|
53
|
+
this.array = array;
|
|
54
|
+
}
|
|
55
|
+
_create_class(NodeProperties, [
|
|
56
|
+
{
|
|
57
|
+
key: "getString",
|
|
58
|
+
value: function getString() {
|
|
59
|
+
return this.string;
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
key: "getArray",
|
|
64
|
+
value: function getArray() {
|
|
65
|
+
return this.array;
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
key: "someNodeProperty",
|
|
70
|
+
value: function someNodeProperty(callback) {
|
|
71
|
+
return this.array.some(callback);
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
key: "matchNamedParameter",
|
|
76
|
+
value: function matchNamedParameter(namedParameter, context) {
|
|
77
|
+
var nodePropertiesString = this.string, namedParameterString = namedParameter.getString();
|
|
78
|
+
context.trace("Matching the '".concat(namedParameterString, "' named parameter against the '").concat(nodePropertiesString, "' node properties..."));
|
|
79
|
+
var namedParameterMatches = this.someNodeProperty(function(nodeProperty) {
|
|
80
|
+
var namedParameterMatchesNodeProperty = nodeProperty.matchNamedParameter(namedParameter, context);
|
|
81
|
+
if (namedParameterMatchesNodeProperty) {
|
|
82
|
+
return true;
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
if (!namedParameterMatches) {
|
|
86
|
+
var message = "The '".concat(namedParameterString, "' named parameter does not match any of the '").concat(nodePropertiesString, "' node properties."), exception = _exception.default.fromMessage(message);
|
|
87
|
+
throw exception;
|
|
88
|
+
}
|
|
89
|
+
context.debug("...matched the '".concat(namedParameterString, "' named parameter against the '").concat(nodePropertiesString, "' node properties."));
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
key: "matchNamedParameters",
|
|
94
|
+
value: function matchNamedParameters(namedParameters, context) {
|
|
95
|
+
var _this = this;
|
|
96
|
+
namedParameters.forEachNamedParameter(function(namedParameter) {
|
|
97
|
+
_this.matchNamedParameter(namedParameter, context);
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
], [
|
|
102
|
+
{
|
|
103
|
+
key: "fromNothing",
|
|
104
|
+
value: function fromNothing() {
|
|
105
|
+
var context = null, array = names.map(function(name, index) {
|
|
106
|
+
var type = types[index], nodeProperty = _nodeProperty.default.fromNameAndType(name, type, context);
|
|
107
|
+
return nodeProperty;
|
|
108
|
+
}), string = (0, _parameters.stringFromArray)(array, context), nodeProperties = new NodeProperties(string, array);
|
|
109
|
+
return nodeProperties;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
]);
|
|
113
|
+
return NodeProperties;
|
|
114
|
+
}();
|
|
115
|
+
var nodeProperties = NodeProperties.fromNothing();
|
|
116
|
+
var _default = nodeProperties;
|
|
117
|
+
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ub2RlUHJvcGVydGllcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi9leGNlcHRpb25cIjtcbmltcG9ydCBOb2RlUHJvcGVydHkgZnJvbSBcIi4vbm9kZVByb3BlcnR5XCI7XG5cbmltcG9ydCB7IHN0cmluZ0Zyb21BcnJheSB9IGZyb20gXCIuL2RvbS9wYXJhbWV0ZXJzXCI7XG5pbXBvcnQgeyBOT0RFU19UWVBFLCBTVFJJTkdfVFlQRSwgQk9PTEVBTl9UWVBFIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IENPTlRFTlRfUEFSQU1FVEVSX05BTUUsIFRFUk1JTkFMX1BBUkFNRVRFUl9OQU1FLCBDSElMRF9OT0RFU19QQVJBTUVURVJfTkFNRSB9IGZyb20gXCIuL3BhcmFtZXRlck5hbWVzXCI7XG5cbmNvbnN0IHR5cGVzID0gW1xuICAgICAgICBTVFJJTkdfVFlQRSxcbiAgICAgICAgQk9PTEVBTl9UWVBFLFxuICAgICAgICBOT0RFU19UWVBFLFxuICAgICAgXSxcbiAgICAgIG5hbWVzID0gW1xuICAgICAgICBDT05URU5UX1BBUkFNRVRFUl9OQU1FLFxuICAgICAgICBURVJNSU5BTF9QQVJBTUVURVJfTkFNRSxcbiAgICAgICAgQ0hJTERfTk9ERVNfUEFSQU1FVEVSX05BTUVcbiAgICAgIF07XG5cbmNsYXNzIE5vZGVQcm9wZXJ0aWVzIHtcbiAgY29uc3RydWN0b3Ioc3RyaW5nLCBhcnJheSkge1xuICAgIHRoaXMuc3RyaW5nID0gc3RyaW5nO1xuICAgIHRoaXMuYXJyYXkgPSBhcnJheTtcbiAgfVxuXG4gIGdldFN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmc7XG4gIH1cblxuICBnZXRBcnJheSgpIHtcbiAgICByZXR1cm4gdGhpcy5hcnJheTtcbiAgfVxuXG4gIHNvbWVOb2RlUHJvcGVydHkoY2FsbGJhY2spIHsgcmV0dXJuIHRoaXMuYXJyYXkuc29tZShjYWxsYmFjayk7IH1cblxuICBtYXRjaE5hbWVkUGFyYW1ldGVyKG5hbWVkUGFyYW1ldGVyLCBjb250ZXh0KSB7XG4gICAgY29uc3Qgbm9kZVByb3BlcnRpZXNTdHJpbmcgPSB0aGlzLnN0cmluZywgLy8vXG4gICAgICAgICAgbmFtZWRQYXJhbWV0ZXJTdHJpbmcgPSBuYW1lZFBhcmFtZXRlci5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYE1hdGNoaW5nIHRoZSAnJHtuYW1lZFBhcmFtZXRlclN0cmluZ30nIG5hbWVkIHBhcmFtZXRlciBhZ2FpbnN0IHRoZSAnJHtub2RlUHJvcGVydGllc1N0cmluZ30nIG5vZGUgcHJvcGVydGllcy4uLmApO1xuXG4gICAgY29uc3QgbmFtZWRQYXJhbWV0ZXJNYXRjaGVzID0gdGhpcy5zb21lTm9kZVByb3BlcnR5KChub2RlUHJvcGVydHkpID0+IHtcbiAgICAgIGNvbnN0IG5hbWVkUGFyYW1ldGVyTWF0Y2hlc05vZGVQcm9wZXJ0eSA9IG5vZGVQcm9wZXJ0eS5tYXRjaE5hbWVkUGFyYW1ldGVyKG5hbWVkUGFyYW1ldGVyLCBjb250ZXh0KTtcblxuICAgICAgaWYgKG5hbWVkUGFyYW1ldGVyTWF0Y2hlc05vZGVQcm9wZXJ0eSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICghbmFtZWRQYXJhbWV0ZXJNYXRjaGVzKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSAnJHtuYW1lZFBhcmFtZXRlclN0cmluZ30nIG5hbWVkIHBhcmFtZXRlciBkb2VzIG5vdCBtYXRjaCBhbnkgb2YgdGhlICcke25vZGVQcm9wZXJ0aWVzU3RyaW5nfScgbm9kZSBwcm9wZXJ0aWVzLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5tYXRjaGVkIHRoZSAnJHtuYW1lZFBhcmFtZXRlclN0cmluZ30nIG5hbWVkIHBhcmFtZXRlciBhZ2FpbnN0IHRoZSAnJHtub2RlUHJvcGVydGllc1N0cmluZ30nIG5vZGUgcHJvcGVydGllcy5gKTtcbiAgfVxuXG4gIG1hdGNoTmFtZWRQYXJhbWV0ZXJzKG5hbWVkUGFyYW1ldGVycywgY29udGV4dCkge1xuICAgIG5hbWVkUGFyYW1ldGVycy5mb3JFYWNoTmFtZWRQYXJhbWV0ZXIoKG5hbWVkUGFyYW1ldGVyKSA9PiB7XG4gICAgICB0aGlzLm1hdGNoTmFtZWRQYXJhbWV0ZXIobmFtZWRQYXJhbWV0ZXIsIGNvbnRleHQpO1xuICAgIH0pO1xuICB9XG5cbiAgc3RhdGljIGZyb21Ob3RoaW5nKCkge1xuICAgIGNvbnN0IGNvbnRleHQgPSBudWxsLFxuICAgICAgICAgIGFycmF5ID0gbmFtZXMubWFwKChuYW1lLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdHlwZSA9IHR5cGVzW2luZGV4XSxcbiAgICAgICAgICAgICAgICAgIG5vZGVQcm9wZXJ0eSA9IE5vZGVQcm9wZXJ0eS5mcm9tTmFtZUFuZFR5cGUobmFtZSwgdHlwZSwgY29udGV4dCk7XG5cbiAgICAgICAgICAgIHJldHVybiBub2RlUHJvcGVydHk7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgc3RyaW5nID0gc3RyaW5nRnJvbUFycmF5KGFycmF5LCBjb250ZXh0KSxcbiAgICAgICAgICBub2RlUHJvcGVydGllcyA9IG5ldyBOb2RlUHJvcGVydGllcyhzdHJpbmcsIGFycmF5KTtcblxuICAgIHJldHVybiBub2RlUHJvcGVydGllcztcbiAgfVxufVxuXG5jb25zdCBub2RlUHJvcGVydGllcyA9IE5vZGVQcm9wZXJ0aWVzLmZyb21Ob3RoaW5nKCk7XG5cbmV4cG9ydCBkZWZhdWx0IG5vZGVQcm9wZXJ0aWVzO1xuIl0sIm5hbWVzIjpbInR5cGVzIiwiU1RSSU5HX1RZUEUiLCJCT09MRUFOX1RZUEUiLCJOT0RFU19UWVBFIiwibmFtZXMiLCJDT05URU5UX1BBUkFNRVRFUl9OQU1FIiwiVEVSTUlOQUxfUEFSQU1FVEVSX05BTUUiLCJDSElMRF9OT0RFU19QQVJBTUVURVJfTkFNRSIsIk5vZGVQcm9wZXJ0aWVzIiwic3RyaW5nIiwiYXJyYXkiLCJnZXRTdHJpbmciLCJnZXRBcnJheSIsInNvbWVOb2RlUHJvcGVydHkiLCJjYWxsYmFjayIsInNvbWUiLCJtYXRjaE5hbWVkUGFyYW1ldGVyIiwibmFtZWRQYXJhbWV0ZXIiLCJjb250ZXh0Iiwibm9kZVByb3BlcnRpZXNTdHJpbmciLCJuYW1lZFBhcmFtZXRlclN0cmluZyIsInRyYWNlIiwibmFtZWRQYXJhbWV0ZXJNYXRjaGVzIiwibm9kZVByb3BlcnR5IiwibmFtZWRQYXJhbWV0ZXJNYXRjaGVzTm9kZVByb3BlcnR5IiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwiZGVidWciLCJtYXRjaE5hbWVkUGFyYW1ldGVycyIsIm5hbWVkUGFyYW1ldGVycyIsImZvckVhY2hOYW1lZFBhcmFtZXRlciIsImZyb21Ob3RoaW5nIiwibWFwIiwibmFtZSIsImluZGV4IiwidHlwZSIsIk5vZGVQcm9wZXJ0eSIsImZyb21OYW1lQW5kVHlwZSIsInN0cmluZ0Zyb21BcnJheSIsIm5vZGVQcm9wZXJ0aWVzIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFtRkE7OztlQUFBOzs7Z0VBakZzQjttRUFDRzswQkFFTztxQkFDc0I7OEJBQ3NDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTVGLElBQU1BLFFBQVE7SUFDTkMsa0JBQVc7SUFDWEMsbUJBQVk7SUFDWkMsaUJBQVU7Q0FDWCxFQUNEQyxRQUFRO0lBQ05DLHNDQUFzQjtJQUN0QkMsdUNBQXVCO0lBQ3ZCQywwQ0FBMEI7Q0FDM0I7QUFFUCxJQUFBLEFBQU1DLCtCQUFOO2FBQU1BLGVBQ1FDLE1BQU0sRUFBRUMsS0FBSztnQ0FEckJGO1FBRUYsSUFBSSxDQUFDQyxNQUFNLEdBQUdBO1FBQ2QsSUFBSSxDQUFDQyxLQUFLLEdBQUdBOztrQkFIWEY7O1lBTUpHLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0YsTUFBTTtZQUNwQjs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0YsS0FBSztZQUNuQjs7O1lBRUFHLEtBQUFBO21CQUFBQSxTQUFBQSxpQkFBaUJDLFFBQVE7Z0JBQUksT0FBTyxJQUFJLENBQUNKLEtBQUssQ0FBQ0ssSUFBSSxDQUFDRDtZQUFXOzs7WUFFL0RFLEtBQUFBO21CQUFBQSxTQUFBQSxvQkFBb0JDLGNBQWMsRUFBRUMsT0FBTztnQkFDekMsSUFBTUMsdUJBQXVCLElBQUksQ0FBQ1YsTUFBTSxFQUNsQ1csdUJBQXVCSCxlQUFlTixTQUFTO2dCQUVyRE8sUUFBUUcsS0FBSyxDQUFDLEFBQUMsaUJBQXNFRixPQUF0REMsc0JBQXFCLG1DQUFzRCxPQUFyQkQsc0JBQXFCO2dCQUUxRyxJQUFNRyx3QkFBd0IsSUFBSSxDQUFDVCxnQkFBZ0IsQ0FBQyxTQUFDVTtvQkFDbkQsSUFBTUMsb0NBQW9DRCxhQUFhUCxtQkFBbUIsQ0FBQ0MsZ0JBQWdCQztvQkFFM0YsSUFBSU0sbUNBQW1DO3dCQUNyQyxPQUFPO29CQUNUO2dCQUNGO2dCQUVBLElBQUksQ0FBQ0YsdUJBQXVCO29CQUMxQixJQUFNRyxVQUFVLEFBQUMsUUFBMkVOLE9BQXBFQyxzQkFBcUIsaURBQW9FLE9BQXJCRCxzQkFBcUIsdUJBQzNHTyxZQUFZQyxrQkFBUyxDQUFDQyxXQUFXLENBQUNIO29CQUV4QyxNQUFNQztnQkFDUjtnQkFFQVIsUUFBUVcsS0FBSyxDQUFDLEFBQUMsbUJBQXdFVixPQUF0REMsc0JBQXFCLG1DQUFzRCxPQUFyQkQsc0JBQXFCO1lBQzlHOzs7WUFFQVcsS0FBQUE7bUJBQUFBLFNBQUFBLHFCQUFxQkMsZUFBZSxFQUFFYixPQUFPOztnQkFDM0NhLGdCQUFnQkMscUJBQXFCLENBQUMsU0FBQ2Y7b0JBQ3JDLE1BQUtELG1CQUFtQixDQUFDQyxnQkFBZ0JDO2dCQUMzQztZQUNGOzs7O1lBRU9lLEtBQUFBO21CQUFQLFNBQU9BO2dCQUNMLElBQU1mLFVBQVUsTUFDVlIsUUFBUU4sTUFBTThCLEdBQUcsQ0FBQyxTQUFDQyxNQUFNQztvQkFDdkIsSUFBTUMsT0FBT3JDLEtBQUssQ0FBQ29DLE1BQU0sRUFDbkJiLGVBQWVlLHFCQUFZLENBQUNDLGVBQWUsQ0FBQ0osTUFBTUUsTUFBTW5CO29CQUU5RCxPQUFPSztnQkFDVCxJQUNBZCxTQUFTK0IsSUFBQUEsMkJBQWUsRUFBQzlCLE9BQU9RLFVBQ2hDdUIsaUJBQWlCLElBdkRyQmpDLGVBdUR3Q0MsUUFBUUM7Z0JBRWxELE9BQU8rQjtZQUNUOzs7V0ExRElqQzs7QUE2RE4sSUFBTWlDLGlCQUFpQmpDLGVBQWV5QixXQUFXO0lBRWpELFdBQWVRIn0=
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return NodeProperty;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
function _class_call_check(instance, Constructor) {
|
|
12
|
+
if (!(instance instanceof Constructor)) {
|
|
13
|
+
throw new TypeError("Cannot call a class as a function");
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
function _defineProperties(target, props) {
|
|
17
|
+
for(var i = 0; i < props.length; i++){
|
|
18
|
+
var descriptor = props[i];
|
|
19
|
+
descriptor.enumerable = descriptor.enumerable || false;
|
|
20
|
+
descriptor.configurable = true;
|
|
21
|
+
if ("value" in descriptor) descriptor.writable = true;
|
|
22
|
+
Object.defineProperty(target, descriptor.key, descriptor);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
function _create_class(Constructor, protoProps, staticProps) {
|
|
26
|
+
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
27
|
+
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
28
|
+
return Constructor;
|
|
29
|
+
}
|
|
30
|
+
function _define_property(obj, key, value) {
|
|
31
|
+
if (key in obj) {
|
|
32
|
+
Object.defineProperty(obj, key, {
|
|
33
|
+
value: value,
|
|
34
|
+
enumerable: true,
|
|
35
|
+
configurable: true,
|
|
36
|
+
writable: true
|
|
37
|
+
});
|
|
38
|
+
} else {
|
|
39
|
+
obj[key] = value;
|
|
40
|
+
}
|
|
41
|
+
return obj;
|
|
42
|
+
}
|
|
43
|
+
var NodeProperty = /*#__PURE__*/ function() {
|
|
44
|
+
function NodeProperty(string, type, name) {
|
|
45
|
+
_class_call_check(this, NodeProperty);
|
|
46
|
+
this.string = string;
|
|
47
|
+
this.type = type;
|
|
48
|
+
this.name = name;
|
|
49
|
+
}
|
|
50
|
+
_create_class(NodeProperty, [
|
|
51
|
+
{
|
|
52
|
+
key: "getString",
|
|
53
|
+
value: function getString() {
|
|
54
|
+
return this.string;
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
key: "getType",
|
|
59
|
+
value: function getType() {
|
|
60
|
+
return this.type;
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
key: "getName",
|
|
65
|
+
value: function getName() {
|
|
66
|
+
return this.name;
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
key: "matchNamedParameter",
|
|
71
|
+
value: function matchNamedParameter(namedParameter, context) {
|
|
72
|
+
var namedParameterMatches;
|
|
73
|
+
var nodePropertyString = this.string, namedParameterString = namedParameter.getString();
|
|
74
|
+
context.trace("Matching the '".concat(nodePropertyString, "' node property against the '").concat(namedParameterString, "' named parameter..."));
|
|
75
|
+
var name = namedParameter.getName(), type = namedParameter.getType();
|
|
76
|
+
namedParameterMatches = this.name === name && this.type === type;
|
|
77
|
+
if (namedParameterMatches) {
|
|
78
|
+
context.debug("...matched the '".concat(nodePropertyString, "' node property against the '").concat(namedParameterString, "' named parameter."));
|
|
79
|
+
}
|
|
80
|
+
return namedParameterMatches;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
], [
|
|
84
|
+
{
|
|
85
|
+
key: "fromNameAndType",
|
|
86
|
+
value: function fromNameAndType(name, type, context) {
|
|
87
|
+
var string = stringFromNameAndType(name, type, context), nodeProperty = new NodeProperty(string, type, name);
|
|
88
|
+
return nodeProperty;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
]);
|
|
92
|
+
return NodeProperty;
|
|
93
|
+
}();
|
|
94
|
+
_define_property(NodeProperty, "name", "Parameter");
|
|
95
|
+
function stringFromNameAndType(name, type) {
|
|
96
|
+
var string = "".concat(type, " ").concat(name);
|
|
97
|
+
return string;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9ub2RlUHJvcGVydHkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5vZGVQcm9wZXJ0eSB7XG4gIGNvbnN0cnVjdG9yKHN0cmluZywgdHlwZSwgbmFtZSkge1xuICAgIHRoaXMuc3RyaW5nID0gc3RyaW5nO1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgfVxuXG4gIGdldFN0cmluZygpIHtcbiAgICByZXR1cm4gdGhpcy5zdHJpbmc7XG4gIH1cblxuICBnZXRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGU7XG4gIH1cblxuICBnZXROYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cblxuICBtYXRjaE5hbWVkUGFyYW1ldGVyKG5hbWVkUGFyYW1ldGVyLCBjb250ZXh0KSB7XG4gICAgbGV0IG5hbWVkUGFyYW1ldGVyTWF0Y2hlcztcblxuICAgIGNvbnN0IG5vZGVQcm9wZXJ0eVN0cmluZyA9IHRoaXMuc3RyaW5nLCAvLy9cbiAgICAgICAgICBuYW1lZFBhcmFtZXRlclN0cmluZyA9IG5hbWVkUGFyYW1ldGVyLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgTWF0Y2hpbmcgdGhlICcke25vZGVQcm9wZXJ0eVN0cmluZ30nIG5vZGUgcHJvcGVydHkgYWdhaW5zdCB0aGUgJyR7bmFtZWRQYXJhbWV0ZXJTdHJpbmd9JyBuYW1lZCBwYXJhbWV0ZXIuLi5gKTtcblxuICAgIGNvbnN0IG5hbWUgPSBuYW1lZFBhcmFtZXRlci5nZXROYW1lKCksXG4gICAgICAgICAgdHlwZSA9IG5hbWVkUGFyYW1ldGVyLmdldFR5cGUoKTtcblxuICAgIG5hbWVkUGFyYW1ldGVyTWF0Y2hlcyA9ICgodGhpcy5uYW1lID09PSBuYW1lKSAmJiAodGhpcy50eXBlID09PSB0eXBlKSk7XG5cbiAgICBpZiAobmFtZWRQYXJhbWV0ZXJNYXRjaGVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi5tYXRjaGVkIHRoZSAnJHtub2RlUHJvcGVydHlTdHJpbmd9JyBub2RlIHByb3BlcnR5IGFnYWluc3QgdGhlICcke25hbWVkUGFyYW1ldGVyU3RyaW5nfScgbmFtZWQgcGFyYW1ldGVyLmApO1xuICAgIH1cblxuICAgIHJldHVybiBuYW1lZFBhcmFtZXRlck1hdGNoZXM7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiUGFyYW1ldGVyXCI7XG5cbiAgc3RhdGljIGZyb21OYW1lQW5kVHlwZShuYW1lLCB0eXBlLCBjb250ZXh0KSB7XG4gICAgY29uc3Qgc3RyaW5nID0gc3RyaW5nRnJvbU5hbWVBbmRUeXBlKG5hbWUsIHR5cGUsIGNvbnRleHQpLFxuICAgICAgICAgIG5vZGVQcm9wZXJ0eSA9IG5ldyBOb2RlUHJvcGVydHkoc3RyaW5nLCB0eXBlLCBuYW1lKTtcblxuICAgIHJldHVybiBub2RlUHJvcGVydHk7XG4gIH1cbn07XG5cbmZ1bmN0aW9uIHN0cmluZ0Zyb21OYW1lQW5kVHlwZShuYW1lLCB0eXBlKSB7XG4gIGNvbnN0IHN0cmluZyA9IGAke3R5cGV9ICR7bmFtZX1gO1xuXG4gIHJldHVybiBzdHJpbmc7XG59XG4iXSwibmFtZXMiOlsiTm9kZVByb3BlcnR5Iiwic3RyaW5nIiwidHlwZSIsIm5hbWUiLCJnZXRTdHJpbmciLCJnZXRUeXBlIiwiZ2V0TmFtZSIsIm1hdGNoTmFtZWRQYXJhbWV0ZXIiLCJuYW1lZFBhcmFtZXRlciIsImNvbnRleHQiLCJuYW1lZFBhcmFtZXRlck1hdGNoZXMiLCJub2RlUHJvcGVydHlTdHJpbmciLCJuYW1lZFBhcmFtZXRlclN0cmluZyIsInRyYWNlIiwiZGVidWciLCJmcm9tTmFtZUFuZFR5cGUiLCJzdHJpbmdGcm9tTmFtZUFuZFR5cGUiLCJub2RlUHJvcGVydHkiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O2VBRXFCQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBTixJQUFBLEFBQU1BLDZCQUFOO2FBQU1BLGFBQ1BDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxJQUFJO2dDQURYSDtRQUVqQixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLElBQUksR0FBR0E7O2tCQUpLSDs7WUFPbkJJLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0gsTUFBTTtZQUNwQjs7O1lBRUFJLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0gsSUFBSTtZQUNsQjs7O1lBRUFJLEtBQUFBO21CQUFBQSxTQUFBQTtnQkFDRSxPQUFPLElBQUksQ0FBQ0gsSUFBSTtZQUNsQjs7O1lBRUFJLEtBQUFBO21CQUFBQSxTQUFBQSxvQkFBb0JDLGNBQWMsRUFBRUMsT0FBTztnQkFDekMsSUFBSUM7Z0JBRUosSUFBTUMscUJBQXFCLElBQUksQ0FBQ1YsTUFBTSxFQUNoQ1csdUJBQXVCSixlQUFlSixTQUFTO2dCQUVyREssUUFBUUksS0FBSyxDQUFDLEFBQUMsaUJBQWtFRCxPQUFsREQsb0JBQW1CLGlDQUFvRCxPQUFyQkMsc0JBQXFCO2dCQUV0RyxJQUFNVCxPQUFPSyxlQUFlRixPQUFPLElBQzdCSixPQUFPTSxlQUFlSCxPQUFPO2dCQUVuQ0ssd0JBQXlCLEFBQUMsSUFBSSxDQUFDUCxJQUFJLEtBQUtBLFFBQVUsSUFBSSxDQUFDRCxJQUFJLEtBQUtBO2dCQUVoRSxJQUFJUSx1QkFBdUI7b0JBQ3pCRCxRQUFRSyxLQUFLLENBQUMsQUFBQyxtQkFBb0VGLE9BQWxERCxvQkFBbUIsaUNBQW9ELE9BQXJCQyxzQkFBcUI7Z0JBQzFHO2dCQUVBLE9BQU9GO1lBQ1Q7Ozs7WUFJT0ssS0FBQUE7bUJBQVAsU0FBT0EsZ0JBQWdCWixJQUFJLEVBQUVELElBQUksRUFBRU8sT0FBTztnQkFDeEMsSUFBTVIsU0FBU2Usc0JBQXNCYixNQUFNRCxNQUFNTyxVQUMzQ1EsZUFBZSxJQTNDSmpCLGFBMkNxQkMsUUFBUUMsTUFBTUM7Z0JBRXBELE9BQU9jO1lBQ1Q7OztXQTlDbUJqQjs7QUF1Q25CLGlCQXZDbUJBLGNBdUNaRyxRQUFPO0FBVWhCLFNBQVNhLHNCQUFzQmIsSUFBSSxFQUFFRCxJQUFJO0lBQ3ZDLElBQU1ELFNBQVMsQUFBQyxHQUFVRSxPQUFSRCxNQUFLLEtBQVEsT0FBTEM7SUFFMUIsT0FBT0Y7QUFDVCJ9
|
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.73",
|
|
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.163"
|
|
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.1086",
|
|
19
|
+
"occam-entities": "^1.0.296",
|
|
20
20
|
"occam-query": "^4.1.30",
|
|
21
21
|
"watchful-cli": "^1.7.56"
|
|
22
22
|
},
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import dom from "../../dom";
|
|
4
4
|
import Exception from "../../exception";
|
|
5
|
-
import
|
|
5
|
+
import nodeProperties from "../../nodeProperties";
|
|
6
6
|
|
|
7
7
|
import { nodeQuery } from "../../utilities/query";
|
|
8
8
|
import { domAssigned } from "../../dom";
|
|
@@ -12,10 +12,10 @@ import { CONTENT_PARAMETER_NAME, TERMINAL_PARAMETER_NAME, CHILD_NODES_PARAMETER_
|
|
|
12
12
|
const objectAssignmentNodeQuery = nodeQuery("/step/objectAssignment");
|
|
13
13
|
|
|
14
14
|
export default domAssigned(class ObjectAssigment {
|
|
15
|
-
constructor(string, variable,
|
|
15
|
+
constructor(string, variable, namedParameters) {
|
|
16
16
|
this.string = string;
|
|
17
17
|
this.variable = variable;
|
|
18
|
-
this.
|
|
18
|
+
this.namedParameters = namedParameters;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
getString() {
|
|
@@ -26,8 +26,8 @@ export default domAssigned(class ObjectAssigment {
|
|
|
26
26
|
return this.variable;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
return this.
|
|
29
|
+
getNamedParameters() {
|
|
30
|
+
return this.namedParameters;
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
evaluate(context) {
|
|
@@ -46,54 +46,52 @@ export default domAssigned(class ObjectAssigment {
|
|
|
46
46
|
throw exception;
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
nodeProperties.matchNamedParameters(this.namedParameters, context);
|
|
50
50
|
|
|
51
|
-
this.
|
|
52
|
-
|
|
53
|
-
this.evaluateParameter(parameter, value, context);
|
|
54
|
-
}
|
|
51
|
+
this.namedParameters.forEachNamedParameter((namedParameter) => {
|
|
52
|
+
this.evaluateNamedParameter(namedParameter, value, context);
|
|
55
53
|
});
|
|
56
54
|
|
|
57
55
|
context.debug(`...evaluated the '${objectAssignmentString}' object assignment.`);
|
|
58
56
|
}
|
|
59
57
|
|
|
60
|
-
|
|
58
|
+
evaluateNamedParameter(namedParameter, value, context) {
|
|
61
59
|
const valueString = value.asString(context),
|
|
62
|
-
|
|
60
|
+
namedParameterString = namedParameter.getString();
|
|
63
61
|
|
|
64
|
-
context.trace(`Evaluating the '${
|
|
62
|
+
context.trace(`Evaluating the '${namedParameterString}' named parameter against the ${valueString} value...`);
|
|
65
63
|
|
|
66
|
-
const name =
|
|
64
|
+
const name = namedParameter.getName();
|
|
67
65
|
|
|
68
66
|
switch (name) {
|
|
69
67
|
case CONTENT_PARAMETER_NAME: {
|
|
70
|
-
this.
|
|
68
|
+
this.evaluateContentNamedParameter(namedParameter, value, context);
|
|
71
69
|
|
|
72
70
|
break;
|
|
73
71
|
}
|
|
74
72
|
|
|
75
73
|
case TERMINAL_PARAMETER_NAME: {
|
|
76
|
-
this.
|
|
74
|
+
this.evaluateTerminalNamedParameter(namedParameter, value, context);
|
|
77
75
|
|
|
78
76
|
break;
|
|
79
77
|
}
|
|
80
78
|
|
|
81
79
|
case CHILD_NODES_PARAMETER_NAME: {
|
|
82
|
-
this.
|
|
80
|
+
this.evaluateChildNodesNamedParameter(namedParameter, value, context);
|
|
83
81
|
|
|
84
82
|
break;
|
|
85
83
|
}
|
|
86
84
|
}
|
|
87
85
|
|
|
88
|
-
context.debug(`...evaluated the '${
|
|
86
|
+
context.debug(`...evaluated the '${namedParameterString}' parameter named against the ${valueString} value.`);
|
|
89
87
|
}
|
|
90
88
|
|
|
91
|
-
|
|
92
|
-
const type =
|
|
89
|
+
evaluateContentNamedParameter(namedParameter, value, context) {
|
|
90
|
+
const type = namedParameter.getType();
|
|
93
91
|
|
|
94
92
|
if (type !== STRING_TYPE) {
|
|
95
|
-
const
|
|
96
|
-
message = `The '${
|
|
93
|
+
const namedParameterString = namedParameter.getString(),
|
|
94
|
+
message = `The '${namedParameterString}' named parameter's type should be '${STRING_TYPE}'.`,
|
|
97
95
|
exception = Exception.fromMessage(message);
|
|
98
96
|
|
|
99
97
|
throw exception;
|
|
@@ -118,19 +116,19 @@ export default domAssigned(class ObjectAssigment {
|
|
|
118
116
|
value = Value.fromString(string, context); ///
|
|
119
117
|
|
|
120
118
|
const assignment = Assignment.fromValue(value, context),
|
|
121
|
-
variable = Variable.
|
|
119
|
+
variable = Variable.fromNamedParameterAndAssignment(namedParameter, assignment);
|
|
122
120
|
|
|
123
121
|
context.addVariable(variable);
|
|
124
122
|
|
|
125
123
|
variable.assign(context);
|
|
126
124
|
}
|
|
127
125
|
|
|
128
|
-
|
|
129
|
-
const type =
|
|
126
|
+
evaluateTerminalNamedParameter(namedParameter, value, context) {
|
|
127
|
+
const type = namedParameter.getType();
|
|
130
128
|
|
|
131
129
|
if (type !== BOOLEAN_TYPE) {
|
|
132
|
-
const
|
|
133
|
-
message = `The '${
|
|
130
|
+
const namedParameterString = namedParameter.getString(),
|
|
131
|
+
message = `The '${namedParameterString}' named parameter's type should be '${BOOLEAN_TYPE}'.`,
|
|
134
132
|
exception = Exception.fromMessage(message);
|
|
135
133
|
|
|
136
134
|
throw exception;
|
|
@@ -146,19 +144,19 @@ export default domAssigned(class ObjectAssigment {
|
|
|
146
144
|
value = Value.fromBoolean(boolean, context); ///
|
|
147
145
|
|
|
148
146
|
const assignment = Assignment.fromValue(value, context),
|
|
149
|
-
variable = Variable.
|
|
147
|
+
variable = Variable.fromNamedParameterAndAssignment(namedParameter, assignment);
|
|
150
148
|
|
|
151
149
|
context.addVariable(variable);
|
|
152
150
|
|
|
153
151
|
variable.assign(context);
|
|
154
152
|
}
|
|
155
153
|
|
|
156
|
-
|
|
157
|
-
const type =
|
|
154
|
+
evaluateChildNodesNamedParameter(namedParameter, value, context) {
|
|
155
|
+
const type = namedParameter.getType();
|
|
158
156
|
|
|
159
157
|
if (type !== NODES_TYPE) {
|
|
160
|
-
const
|
|
161
|
-
message = `The '${
|
|
158
|
+
const namedParameterString = namedParameter.getString(),
|
|
159
|
+
message = `The '${namedParameterString}' named parameter's type should be '${NODES_TYPE}'.`,
|
|
162
160
|
exception = Exception.fromMessage(message);
|
|
163
161
|
|
|
164
162
|
throw exception;
|
|
@@ -183,7 +181,7 @@ export default domAssigned(class ObjectAssigment {
|
|
|
183
181
|
value = Value.fromNodes(nodes, context); ///
|
|
184
182
|
|
|
185
183
|
const assignment = Assignment.fromValue(value, context),
|
|
186
|
-
variable = Variable.
|
|
184
|
+
variable = Variable.fromNamedParameterAndAssignment(namedParameter, assignment);
|
|
187
185
|
|
|
188
186
|
context.addVariable(variable);
|
|
189
187
|
|
|
@@ -198,13 +196,13 @@ export default domAssigned(class ObjectAssigment {
|
|
|
198
196
|
const objectAssignmentNode = objectAssignmentNodeQuery(stepNode);
|
|
199
197
|
|
|
200
198
|
if (objectAssignmentNode !== null) {
|
|
201
|
-
const { Variable,
|
|
199
|
+
const { Variable, NamedParameters } = dom,
|
|
202
200
|
node = objectAssignmentNode, ///
|
|
203
201
|
string = context.nodeAsString(node),
|
|
204
202
|
variable = Variable.fromObjectAssignmentNode(objectAssignmentNode, context),
|
|
205
|
-
|
|
203
|
+
namedParameters = NamedParameters.fromObjectAssignmentNode(objectAssignmentNode, context);
|
|
206
204
|
|
|
207
|
-
objectAssignment = new ObjectAssigment(string, variable,
|
|
205
|
+
objectAssignment = new ObjectAssigment(string, variable, namedParameters);
|
|
208
206
|
}
|
|
209
207
|
|
|
210
208
|
return objectAssignment;
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import Exception from "../../exception";
|
|
4
|
+
|
|
5
|
+
import { domAssigned } from "../../dom";
|
|
6
|
+
import { nodeQuery, nodesQuery } from "../../utilities/query";
|
|
7
|
+
|
|
8
|
+
const typeTerminalNodeQuery = nodeQuery("/namedParameter/@type"),
|
|
9
|
+
nameTerminalNodeQuery = nodeQuery("/namedParameter/@name[0]"),
|
|
10
|
+
asNameTerminalNodeQuery = nodeQuery("/namedParameter/@name[1]");
|
|
11
|
+
|
|
12
|
+
export default domAssigned(class NamedParameter {
|
|
13
|
+
constructor(string, type, name, asName) {
|
|
14
|
+
this.string = string;
|
|
15
|
+
this.type = type;
|
|
16
|
+
this.name = name;
|
|
17
|
+
this.asName = asName;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
getString() {
|
|
21
|
+
return this.string;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
getType() {
|
|
25
|
+
return this.type;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
getName() {
|
|
29
|
+
return this.name;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
getAsName() {
|
|
33
|
+
return this.asName;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
matchValue(value, context) {
|
|
37
|
+
const valueString = value.asString(context),
|
|
38
|
+
namedParameterString = this.string; ///
|
|
39
|
+
|
|
40
|
+
context.trace(`Matching the ${valueString} value against the '${namedParameterString}' named parameter...`);
|
|
41
|
+
|
|
42
|
+
const valueType = value.getType();
|
|
43
|
+
|
|
44
|
+
if (this.type !== valueType) {
|
|
45
|
+
const message = `The ${valueString} value's '${valueType}' type and '${namedParameterString}' named parameter's '${this.type}' type do not match.`,
|
|
46
|
+
exception = Exception.fromMessage(message);
|
|
47
|
+
|
|
48
|
+
throw exception;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
context.debug(`...matched the ${valueString} value against the '${namedParameterString}' named parameter.`);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
matchNamedParameter(namedParameter, context) {
|
|
55
|
+
let namedParameterMatches;
|
|
56
|
+
|
|
57
|
+
const namedParameterA = this, ///
|
|
58
|
+
namedParameterB = namedParameter; ///
|
|
59
|
+
|
|
60
|
+
const namedParameterAString = namedParameterA.getString(),
|
|
61
|
+
namedParameterBString = namedParameterB.getString();
|
|
62
|
+
|
|
63
|
+
context.trace(`Matching the '${namedParameterAString}' named parameter against the '${namedParameterBString}' named parameter...`);
|
|
64
|
+
|
|
65
|
+
const name = namedParameter.getName(),
|
|
66
|
+
type = namedParameter.getType();
|
|
67
|
+
|
|
68
|
+
namedParameterMatches = ((this.name === name) && (this.type === type));
|
|
69
|
+
|
|
70
|
+
if (namedParameterMatches) {
|
|
71
|
+
context.debug(`...matched the '${namedParameterAString}' named parameter against the '${namedParameterBString}' named parameter.`);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
return namedParameterMatches;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
static name = "NamedParameter";
|
|
78
|
+
|
|
79
|
+
static fromNamedParameterNode(namedParameterNode, context) {
|
|
80
|
+
const type = typeFromNamedParameterNode(namedParameterNode, context),
|
|
81
|
+
name = nameFromNamedParameterNode(namedParameterNode, context),
|
|
82
|
+
asName = asNameFromNamedParameterNode(namedParameterNode, context),
|
|
83
|
+
node = namedParameterNode, //
|
|
84
|
+
string = context.nodeAsString(node),
|
|
85
|
+
namedParameter = new NamedParameter(string, type, name, asName);
|
|
86
|
+
|
|
87
|
+
return namedParameter;
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
function typeFromNamedParameterNode(namedParameterNode, context) {
|
|
92
|
+
const typeTerminalNode = typeTerminalNodeQuery(namedParameterNode),
|
|
93
|
+
typeTerminalNodeContent = typeTerminalNode.getContent(),
|
|
94
|
+
type = typeTerminalNodeContent; ///
|
|
95
|
+
|
|
96
|
+
return type;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
function nameFromNamedParameterNode(namedParameterNode, context) {
|
|
100
|
+
const nameTerminalNode = nameTerminalNodeQuery(namedParameterNode),
|
|
101
|
+
nameTerminalNodeContent = nameTerminalNode.getContent(),
|
|
102
|
+
name = nameTerminalNodeContent; ///
|
|
103
|
+
|
|
104
|
+
return name;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
function asNameFromNamedParameterNode(namedParameterNode, context) {
|
|
108
|
+
let asName = null;
|
|
109
|
+
|
|
110
|
+
const asNameTerminalNode = asNameTerminalNodeQuery(namedParameterNode);
|
|
111
|
+
|
|
112
|
+
if (asNameTerminalNode !== null) {
|
|
113
|
+
const asNameTerminalNodeContent = asNameTerminalNode.getContent();
|
|
114
|
+
|
|
115
|
+
asName = asNameTerminalNodeContent; ///
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
return asName;
|
|
119
|
+
}
|
package/src/dom/parameter.js
CHANGED
|
@@ -10,24 +10,24 @@ const terminalNodesQuery = nodesQuery("/parameter/@*"),
|
|
|
10
10
|
typeTerminalNodeQuery = nodeQuery("/parameter/@type");
|
|
11
11
|
|
|
12
12
|
export default domAssigned(class Parameter {
|
|
13
|
-
constructor(string,
|
|
13
|
+
constructor(string, type, name) {
|
|
14
14
|
this.string = string;
|
|
15
|
-
this.name = name;
|
|
16
15
|
this.type = type;
|
|
16
|
+
this.name = name;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
getString() {
|
|
20
20
|
return this.string;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
getName() {
|
|
24
|
-
return this.name;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
23
|
getType() {
|
|
28
24
|
return this.type;
|
|
29
25
|
}
|
|
30
26
|
|
|
27
|
+
getName() {
|
|
28
|
+
return this.name;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
31
|
matchValue(value, context) {
|
|
32
32
|
const valueString = value.asString(context),
|
|
33
33
|
parameterString = this.string; ///
|
|
@@ -46,38 +46,8 @@ export default domAssigned(class Parameter {
|
|
|
46
46
|
context.debug(`...matched the ${valueString} value against the '${parameterString}' parameter.`);
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
matchParameter(parameter, context) {
|
|
50
|
-
let parameterMatches;
|
|
51
|
-
|
|
52
|
-
const parameterA = this, ///
|
|
53
|
-
parameterB = parameter; ///
|
|
54
|
-
|
|
55
|
-
const parameterAString = parameterA.getString(),
|
|
56
|
-
parameterBString = parameterB.getString();
|
|
57
|
-
|
|
58
|
-
context.trace(`Matching the '${parameterAString}' parameter against the '${parameterBString}' parameter...`);
|
|
59
|
-
|
|
60
|
-
const name = parameter.getName(),
|
|
61
|
-
type = parameter.getType();
|
|
62
|
-
|
|
63
|
-
parameterMatches = ((this.name === name) && (this.type === type));
|
|
64
|
-
|
|
65
|
-
if (parameterMatches) {
|
|
66
|
-
context.debug(`...matched the '${parameterAString}' parameter against the '${parameterBString}' parameter.`);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
return parameterMatches;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
49
|
static name = "Parameter";
|
|
73
50
|
|
|
74
|
-
static fromNameAndType(name, type, context) {
|
|
75
|
-
const string = stringFromNameAndType(name, type, context),
|
|
76
|
-
parameter = new Parameter(string, name, type);
|
|
77
|
-
|
|
78
|
-
return parameter;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
51
|
static fromParameterNode(parameterNode, context) {
|
|
82
52
|
let parameter = null;
|
|
83
53
|
|
|
@@ -90,19 +60,13 @@ export default domAssigned(class Parameter {
|
|
|
90
60
|
node = parameterNode, //
|
|
91
61
|
string = context.nodeAsString(node);
|
|
92
62
|
|
|
93
|
-
parameter = new Parameter(string,
|
|
63
|
+
parameter = new Parameter(string, type, name);
|
|
94
64
|
}
|
|
95
65
|
|
|
96
66
|
return parameter;
|
|
97
67
|
}
|
|
98
68
|
});
|
|
99
69
|
|
|
100
|
-
function stringFromNameAndType(name, type) {
|
|
101
|
-
const string = `${type} ${name}`;
|
|
102
|
-
|
|
103
|
-
return string;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
70
|
function nameFromParameterNode(parameterNode, context) {
|
|
107
71
|
const nameTerminalNode = nameTerminalNodeQuery(parameterNode),
|
|
108
72
|
nameTerminalNodeContent = nameTerminalNode.getContent(),
|