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.
@@ -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.71",
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.161"
14
+ "occam-grammars": "^1.3.163"
15
15
  },
16
16
  "devDependencies": {
17
17
  "@swc/core": "^1.5.6",
18
- "occam-custom-grammars": "^5.0.1085",
19
- "occam-entities": "^1.0.295",
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 nodeParameters from "../../parameters/node";
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, parameters) {
15
+ constructor(string, variable, namedParameters) {
16
16
  this.string = string;
17
17
  this.variable = variable;
18
- this.parameters = parameters;
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
- getParameters() {
30
- return this.parameters;
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
- nodeParameters.matchParameters(this.parameters, context);
49
+ nodeProperties.matchNamedParameters(this.namedParameters, context);
50
50
 
51
- this.parameters.forEachParameter((parameter) => {
52
- if (parameter !== null) {
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
- evaluateParameter(parameter, value, context) {
58
+ evaluateNamedParameter(namedParameter, value, context) {
61
59
  const valueString = value.asString(context),
62
- parameterString = parameter.getString();
60
+ namedParameterString = namedParameter.getString();
63
61
 
64
- context.trace(`Evaluating the '${parameterString}' parameter against the ${valueString} value...`);
62
+ context.trace(`Evaluating the '${namedParameterString}' named parameter against the ${valueString} value...`);
65
63
 
66
- const name = parameter.getName();
64
+ const name = namedParameter.getName();
67
65
 
68
66
  switch (name) {
69
67
  case CONTENT_PARAMETER_NAME: {
70
- this.evaluateContentParameter(parameter, value, context);
68
+ this.evaluateContentNamedParameter(namedParameter, value, context);
71
69
 
72
70
  break;
73
71
  }
74
72
 
75
73
  case TERMINAL_PARAMETER_NAME: {
76
- this.evaluateTerminalParameter(parameter, value, context);
74
+ this.evaluateTerminalNamedParameter(namedParameter, value, context);
77
75
 
78
76
  break;
79
77
  }
80
78
 
81
79
  case CHILD_NODES_PARAMETER_NAME: {
82
- this.evaluateChildNodesParameter(parameter, value, context);
80
+ this.evaluateChildNodesNamedParameter(namedParameter, value, context);
83
81
 
84
82
  break;
85
83
  }
86
84
  }
87
85
 
88
- context.debug(`...evaluated the '${parameterString}' parameter against the ${valueString} value.`);
86
+ context.debug(`...evaluated the '${namedParameterString}' parameter named against the ${valueString} value.`);
89
87
  }
90
88
 
91
- evaluateContentParameter(parameter, value, context) {
92
- const type = parameter.getType();
89
+ evaluateContentNamedParameter(namedParameter, value, context) {
90
+ const type = namedParameter.getType();
93
91
 
94
92
  if (type !== STRING_TYPE) {
95
- const parameterString = parameter.getString(),
96
- message = `The '${parameterString}' parameter's type should be '${STRING_TYPE}'.`,
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.fromParameterAndAssignment(parameter, assignment);
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
- evaluateTerminalParameter(parameter, value, context) {
129
- const type = parameter.getType();
126
+ evaluateTerminalNamedParameter(namedParameter, value, context) {
127
+ const type = namedParameter.getType();
130
128
 
131
129
  if (type !== BOOLEAN_TYPE) {
132
- const parameterString = parameter.getString(),
133
- message = `The '${parameterString}' parameter's type should be '${BOOLEAN_TYPE}'.`,
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.fromParameterAndAssignment(parameter, assignment);
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
- evaluateChildNodesParameter(parameter, value, context) {
157
- const type = parameter.getType();
154
+ evaluateChildNodesNamedParameter(namedParameter, value, context) {
155
+ const type = namedParameter.getType();
158
156
 
159
157
  if (type !== NODES_TYPE) {
160
- const parameterString = parameter.getString(),
161
- message = `The '${parameterString}' parameter's type should be '${NODES_TYPE}'.`,
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.fromParameterAndAssignment(parameter, assignment);
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, Parameters } = dom,
199
+ const { Variable, NamedParameters } = dom,
202
200
  node = objectAssignmentNode, ///
203
201
  string = context.nodeAsString(node),
204
202
  variable = Variable.fromObjectAssignmentNode(objectAssignmentNode, context),
205
- parameters = Parameters.fromObjectAssignmentNode(objectAssignmentNode, context);
203
+ namedParameters = NamedParameters.fromObjectAssignmentNode(objectAssignmentNode, context);
206
204
 
207
- objectAssignment = new ObjectAssigment(string, variable, parameters);
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
+ }
@@ -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, name, type) {
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, name, type);
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(),