occam-furtle 2.0.331 → 2.0.334
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/element/expression/negated.js +2 -2
- package/lib/element/primitive.js +10 -10
- package/lib/element/returnBlock.js +3 -3
- package/lib/element/statement/return.js +2 -2
- package/lib/element/step.js +8 -8
- package/lib/element/term/logical.js +11 -11
- package/lib/element/term.js +11 -5
- package/lib/utilities/element.js +191 -50
- package/lib/utilities/string.js +32 -5
- package/package.json +4 -4
- package/src/element/expression/negated.js +1 -1
- package/src/element/primitive.js +9 -9
- package/src/element/returnBlock.js +2 -2
- package/src/element/statement/return.js +1 -1
- package/src/element/step.js +6 -6
- package/src/element/term/logical.js +5 -5
- package/src/element/term.js +12 -4
- package/src/utilities/element.js +258 -90
- package/src/utilities/string.js +31 -3
- package/test/main.js +0 -113
package/lib/utilities/string.js
CHANGED
|
@@ -45,11 +45,17 @@ _export(exports, {
|
|
|
45
45
|
get someStringFromVariableAndAnonymousProcedure () {
|
|
46
46
|
return someStringFromVariableAndAnonymousProcedure;
|
|
47
47
|
},
|
|
48
|
+
get termStringFromPrimitiveAndProperties () {
|
|
49
|
+
return termStringFromPrimitiveAndProperties;
|
|
50
|
+
},
|
|
48
51
|
get termsStringFromTermsArray () {
|
|
49
52
|
return termsStringFromTermsArray;
|
|
50
53
|
},
|
|
51
|
-
get
|
|
52
|
-
return
|
|
54
|
+
get ternaryStringFromTerm () {
|
|
55
|
+
return ternaryStringFromTerm;
|
|
56
|
+
},
|
|
57
|
+
get variableAssignmentStringFromTypeAndVariable () {
|
|
58
|
+
return variableAssignmentStringFromTypeAndVariable;
|
|
53
59
|
},
|
|
54
60
|
get variableAssignmentStringFromVariableAssignment () {
|
|
55
61
|
return variableAssignmentStringFromVariableAssignment;
|
|
@@ -69,6 +75,10 @@ function _interop_require_default(obj) {
|
|
|
69
75
|
default: obj
|
|
70
76
|
};
|
|
71
77
|
}
|
|
78
|
+
function ternaryStringFromTerm(term) {
|
|
79
|
+
var termString = term.getString(), ternaryString = "if (".concat(termString, ") { ... } else { ... }");
|
|
80
|
+
return ternaryString;
|
|
81
|
+
}
|
|
72
82
|
function variableStringFromName(name) {
|
|
73
83
|
var variableString = name; ///
|
|
74
84
|
return variableString;
|
|
@@ -97,8 +107,25 @@ function primtiveStringFromStringLiteral(stringLiteral) {
|
|
|
97
107
|
var string = (0, _stringLiteral.stringFromStringLiteral)(stringLiteral), primtiveString = string; ///
|
|
98
108
|
return primtiveString;
|
|
99
109
|
}
|
|
100
|
-
function
|
|
101
|
-
var
|
|
110
|
+
function termStringFromPrimitiveAndProperties(primitive, properties) {
|
|
111
|
+
var termString;
|
|
112
|
+
if (false) {
|
|
113
|
+
///
|
|
114
|
+
} else if (primitive !== null) {
|
|
115
|
+
var primitiveString = primitive.toString();
|
|
116
|
+
termString = primitiveString; ///
|
|
117
|
+
} else {
|
|
118
|
+
properties.forEach(function(property) {
|
|
119
|
+
if (property !== null) {
|
|
120
|
+
var propertyString = property.getString();
|
|
121
|
+
termString = propertyString; ///
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
return termString;
|
|
126
|
+
}
|
|
127
|
+
function variableAssignmentStringFromTypeAndVariable(type, variable) {
|
|
128
|
+
var variableString = variable.getString(), variableAssignmentString = "".concat(type, " ").concat(variableString, " = ... ;");
|
|
102
129
|
return variableAssignmentString;
|
|
103
130
|
}
|
|
104
131
|
function procedureDeclarationStringFromProcedure(procedure) {
|
|
@@ -159,4 +186,4 @@ function reduceStringFromVariableInitialExpressionAndAnonymousProcedure(variable
|
|
|
159
186
|
return reduceString;
|
|
160
187
|
}
|
|
161
188
|
|
|
162
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc3RyaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgbnVsbE5vZGUgZnJvbSBcIi4uL251bGxOb2RlXCI7XG5cbmltcG9ydCB7IE5VTEwgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBzdHJpbmdGcm9tU3RyaW5nTGl0ZXJhbCB9IGZyb20gXCIuL3N0cmluZ0xpdGVyYWxcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHZhcmlhYmxlU3RyaW5nRnJvbU5hbWUobmFtZSkge1xuICBjb25zdCB2YXJpYWJsZVN0cmluZyA9IG5hbWU7ICAvLy9cblxuICByZXR1cm4gdmFyaWFibGVTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmltdGl2ZVN0cmluZ0Zyb21Ob2RlKG5vZGUsIGNvbnRleHQpIHtcbiAgY29uc3QgcHJpbXRpdmVTdHJpbmcgPSAobm9kZSA9PT0gbnVsbE5vZGUpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5ub2RlQXNTdHJpbmcobm9kZSk7XG5cbiAgcmV0dXJuIHByaW10aXZlU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJpbXRpdmVTdHJpbmdGcm9tTm9kZXMobm9kZXMsIGNvbnRleHQpIHtcbiAgY29uc3Qgc3RyaW5nID0gY29udGV4dC5ub2Rlc0FzU3RyaW5nKG5vZGVzKSxcbiAgICAgICAgcHJpbXRpdmVTdHJpbmcgPSBzdHJpbmc7ICAvLy9cblxuICByZXR1cm4gcHJpbXRpdmVTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmltdGl2ZVN0cmluZ0Zyb21Cb29sZWFuKGJvb2xlYW4pIHtcbiAgY29uc3QgZXhwcmVzc3Npb25TdHJpbmcgPSBgJHtib29sZWFufWA7XG5cbiAgcmV0dXJuIGV4cHJlc3NzaW9uU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGVybXNTdHJpbmdGcm9tVGVybXNBcnJheSh0ZXJtc0FycmF5KSB7XG4gIGNvbnN0IHRlcm1zU3RyaW5nID0gdGVybXNBcnJheS5yZWR1Y2UoKHRlcm1zU3RyaW5nLCB0ZXJtKSA9PiB7XG4gICAgY29uc3QgdGVybVN0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCk7XG5cbiAgICB0ZXJtc1N0cmluZyA9ICh0ZXJtc1N0cmluZyA9PT0gbnVsbCkgP1xuICAgICAgICAgICAgICAgICAgICB0ZXJtU3RyaW5nIDpcbiAgICAgICAgICAgICAgICAgICAgIGAke3Rlcm1zU3RyaW5nfSwgJHt0ZXJtU3RyaW5nfWA7XG5cbiAgICByZXR1cm4gdGVybXNTdHJpbmc7XG4gIH0sIG51bGwpOyAvLy9cblxuICByZXR1cm4gdGVybXNTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmltdGl2ZVN0cmluZ0Zyb21TdHJpbmdMaXRlcmFsKHN0cmluZ0xpdGVyYWwpIHtcbiAgY29uc3Qgc3RyaW5nID0gc3RyaW5nRnJvbVN0cmluZ0xpdGVyYWwoc3RyaW5nTGl0ZXJhbCksXG4gICAgICAgIHByaW10aXZlU3RyaW5nID0gc3RyaW5nOyAgLy8vXG5cbiAgcmV0dXJuIHByaW10aXZlU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFyaWFibGVBc3NpZ25tZW50U3RyaW5nRnJvbVZhcmlhYmxlKGV4cHJlc3Npb24sIHZhcmlhYmxlKSB7XG4gIGNvbnN0IHR5cGUgPSB2YXJpYWJsZS5nZXRUeXBlKCksXG4gICAgICAgIHZhcmlhYmxlU3RyaW5nID0gdmFyaWFibGUuZ2V0U3RyaW5nKCksXG4gICAgICAgIHZhcmlhYmxlQXNzaWdubWVudFN0cmluZyA9IGAke3R5cGV9ICR7dmFyaWFibGVTdHJpbmd9ID0gLi4uIDtgO1xuXG4gIHJldHVybiB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm9jZWR1cmVEZWNsYXJhdGlvblN0cmluZ0Zyb21Qcm9jZWR1cmUocHJvY2VkdXJlKSB7XG4gIGNvbnN0IHR5cGUgPSBwcm9jZWR1cmUuZ2V0VHlwZSgpLFxuICAgICAgICBsYWJlbCA9IHByb2NlZHVyZS5nZXRMYWJlbCgpLFxuICAgICAgICBwYXJhbWV0ZXJzID0gcHJvY2VkdXJlLmdldFBhcmFtZXRlcnMoKSxcbiAgICAgICAgcmV0dXJuU3RhdGVtZW50ID0gcHJvY2VkdXJlLmdldFJldHVyblN0YXRlbWVudCgpLFxuICAgICAgICBsYWJlbFN0cmluZyA9IGxhYmVsLmdldFN0cmluZygpLFxuICAgICAgICBwYXJhbWV0ZXJzU3RyaW5nID0gcGFyYW1ldGVycy5nZXRTdHJpbmcoKSxcbiAgICAgICAgcmV0dXJuU3RhdGVtZW50U3RyaW5nID0gcmV0dXJuU3RhdGVtZW50LmdldFN0cmluZygpLFxuICAgICAgICBwcm9jZWR1cmVEZWxjYXJhdGlvblN0cmluZyA9IGAke3R5cGV9ICR7bGFiZWxTdHJpbmcgfSgke3BhcmFtZXRlcnNTdHJpbmd9KSB7IC4uLiAke3JldHVyblN0YXRlbWVudFN0cmluZ30gfWA7XG5cbiAgcmV0dXJuIHByb2NlZHVyZURlbGNhcmF0aW9uU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmV0dXJuQmxvY2tTdHJpbmdGcm9tUmV0dXJuU3RhdGVtZW50Tm9kZShyZXR1cm5TdGF0ZW1lbnQpIHtcbiAgY29uc3QgcmV0dXJuU3RhdGVtZW50U3RyaW5nID0gcmV0dXJuU3RhdGVtZW50LmdldFN0cmluZygpLFxuICAgICAgICByZXR1cm5CbG9ja1N0cmluZyA9IGB7IC4uLiAke3JldHVyblN0YXRlbWVudFN0cmluZ30gfWA7XG5cbiAgcmV0dXJuIHJldHVybkJsb2NrU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXhwcmVzc2lvblN0cmluZ0Zyb21QcmltaXRpdmVBbmRQcm9wZXJ0aWVzKHByaW1pdGl2ZSwgcHJvcGVydGllcykge1xuICBsZXQgZXhwcmVzc2lvblN0cmluZztcblxuICBpZiAoZmFsc2UpIHtcbiAgICAvLy9cbiAgfSBlbHNlIGlmIChwcmltaXRpdmUgIT09IG51bGwpIHtcbiAgICBjb25zdCBwcmltaXRpdmVTdHJpbmcgPSBwcmltaXRpdmUudG9TdHJpbmcoKTtcblxuICAgIGV4cHJlc3Npb25TdHJpbmcgPSBwcmltaXRpdmVTdHJpbmc7IC8vL1xuICB9IGVsc2Uge1xuICAgIHByb3BlcnRpZXMuZm9yRWFjaCgocHJvcGVydHkpID0+IHtcbiAgICAgIGlmIChwcm9wZXJ0eSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBwcm9wZXJ0eVN0cmluZyA9IHByb3BlcnR5LmdldFN0cmluZygpO1xuXG4gICAgICAgIGV4cHJlc3Npb25TdHJpbmcgPSBwcm9wZXJ0eVN0cmluZzsgIC8vL1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGV4cHJlc3Npb25TdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzb21lU3RyaW5nRnJvbVZhcmlhYmxlQW5kQW5vbnltb3VzUHJvY2VkdXJlKHZhcmlhYmxlLCBhbm9ueW1vdXNQcm9jZWR1cmUpIHtcbiAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSB2YXJpYWJsZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nID0gYW5vbnltb3VzUHJvY2VkdXJlLmdldFN0cmluZygpLFxuICAgICAgICBzb21lU3RyaW5nID0gYFNvbWUoJHt2YXJpYWJsZVN0cmluZ30sICR7YW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nfSkgYDtcblxuICByZXR1cm4gc29tZVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV2ZXJ5U3RyaW5nRnJvbVZhcmlhYmxlQW5kQW5vbnltb3VzUHJvY2VkdXJlKHZhcmlhYmxlLCBhbm9ueW1vdXNQcm9jZWR1cmUpIHtcbiAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSB2YXJpYWJsZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nID0gYW5vbnltb3VzUHJvY2VkdXJlLmdldFN0cmluZygpLFxuICAgICAgICBldmVyeVN0cmluZyA9IGBFdmVyeSgke3ZhcmlhYmxlU3RyaW5nfSwgJHthbm9ueW1vdXNQcm9jZWR1cmVTdHJpbmd9KSBgO1xuXG4gIHJldHVybiBldmVyeVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhcmlhYmxlQXNzaWdubWVudFN0cmluZ0Zyb21WYXJpYWJsZUFzc2lnbm1lbnQodmFyaWFibGVBc3NpZ25tZW50KSB7XG4gIGNvbnN0IHZhcmlhYmxlID0gdmFyaWFibGVBc3NpZ25tZW50LmdldFZhcmlhYmxlKCksXG4gICAgICAgIHZhcmlhYmxlU3RyaW5nID0gdmFyaWFibGUuZ2V0U3RyaW5nKCksXG4gICAgICAgIHZhcmlhYmxlQXNzaWdubWVudFN0cmluZyA9IGAke3ZhcmlhYmxlU3RyaW5nfSA9IC4uLmA7XG5cbiAgcmV0dXJuIHZhcmlhYmxlQXNzaWdubWVudFN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb2NlZHVyZVN0cmluZ0Zyb21UeXBlTGFiZWxQYXJhbWV0ZXJzQW5kUmV0dXJuQmxvY2sodHlwZSwgbGFiZWwsIHBhcmFtZXRlcnMsIHJldHVybkJsb2NrKSB7XG4gIGNvbnN0IHR5cGVTdHJpbmcgPSB0eXBlLCAgLy8vXG4gICAgICAgIGxhYmVsU3RyaW5nID0gbGFiZWwuZ2V0U3RyaW5nKCksXG4gICAgICAgIHBhcmFtZXRlcnNTdHJpbmcgPSBwYXJhbWV0ZXJzLmdldFN0cmluZygpLFxuICAgICAgICByZXR1cm5CbG9ja1N0cmluZyA9IHJldHVybkJsb2NrLmdldFN0cmluZygpLFxuICAgICAgICBwcm9jZWR1cmVTdHJpbmcgPSBgJHt0eXBlU3RyaW5nfSAke2xhYmVsU3RyaW5nfSgke3BhcmFtZXRlcnNTdHJpbmd9KSAke3JldHVybkJsb2NrU3RyaW5nfWA7XG5cbiAgcmV0dXJuIHByb2NlZHVyZVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhcmlhYmxlQXNzaWdubWVudFN0cmluZ0Zyb21WYXJpYWJsZUFzc2lnbm1lbnRzQXJyYXkodmFyaWFibGVBc3NpZ25tZW50c0FycmF5KSB7XG4gIGNvbnN0IHZhcmlhYmxlQXNzaWdubWVudHNTdHJpbmcgPSB2YXJpYWJsZUFzc2lnbm1lbnRzQXJyYXkucmVkdWNlKCh2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nLCB2YXJpYWJsZUFzc2lnbm1lbnQpID0+IHtcbiAgICBjb25zdCB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmcgPSB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmdGcm9tVmFyaWFibGVBc3NpZ25tZW50KHZhcmlhYmxlQXNzaWdubWVudCk7XG5cbiAgICB2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nID0gKHZhcmlhYmxlQXNzaWdubWVudHNTdHJpbmcgPT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmcgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHt2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nfSwgJHt2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmd9YDtcblxuICAgIHJldHVybiB2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nO1xuICB9LCBudWxsKTsgLy8vXG5cbiAgcmV0dXJuIHZhcmlhYmxlQXNzaWdubWVudHNTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhbm9ueW1vdXNQcm9jZWR1cmVTdHJpbmdGcm9tVHlwZVBhcmFtZXRlcnNBbmRSZXR1cm5CbG9jayh0eXBlLCBwYXJhbWV0ZXJzLCByZXR1cm5CbG9jaykge1xuICBjb25zdCB0eXBlU3RyaW5nID0gdHlwZSwgIC8vL1xuICAgICAgICBwYXJhbWV0ZXJzU3RyaW5nID0gcGFyYW1ldGVycy5nZXRTdHJpbmcoKSxcbiAgICAgICAgcmV0dXJuQmxvY2tTdHJpbmcgPSByZXR1cm5CbG9jay5nZXRTdHJpbmcoKSxcbiAgICAgICAgYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nID0gYCR7dHlwZVN0cmluZ30gKCR7cGFyYW1ldGVyc1N0cmluZ30pICR7cmV0dXJuQmxvY2tTdHJpbmd9YDtcblxuICByZXR1cm4gYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVkdWNlU3RyaW5nRnJvbVZhcmlhYmxlSW5pdGlhbEV4cHJlc3Npb25BbmRBbm9ueW1vdXNQcm9jZWR1cmUodmFyaWFibGUsIGluaXRpYWxFeHByZXNzaW9uLCBhbm9ueW1vdXNQcm9jZWR1cmUpIHtcbiAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSB2YXJpYWJsZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgaW5pdGlhbEV4cHJlc3Npb25TdHJpbmcgPSBpbml0aWFsRXhwcmVzc2lvbi5nZXRTdHJpbmcoKSxcbiAgICAgICAgYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nID0gYW5vbnltb3VzUHJvY2VkdXJlLmdldFN0cmluZygpLFxuICAgICAgICByZWR1Y2VTdHJpbmcgPSBgUmVkdWNlKCR7dmFyaWFibGVTdHJpbmd9LCAke2Fub255bW91c1Byb2NlZHVyZVN0cmluZ30sICR7aW5pdGlhbEV4cHJlc3Npb25TdHJpbmd9KWA7XG5cbiAgcmV0dXJuIHJlZHVjZVN0cmluZztcbn1cblxuIl0sIm5hbWVzIjpbImFub255bW91c1Byb2NlZHVyZVN0cmluZ0Zyb21UeXBlUGFyYW1ldGVyc0FuZFJldHVybkJsb2NrIiwiZXZlcnlTdHJpbmdGcm9tVmFyaWFibGVBbmRBbm9ueW1vdXNQcm9jZWR1cmUiLCJleHByZXNzaW9uU3RyaW5nRnJvbVByaW1pdGl2ZUFuZFByb3BlcnRpZXMiLCJwcmltdGl2ZVN0cmluZ0Zyb21Cb29sZWFuIiwicHJpbXRpdmVTdHJpbmdGcm9tTm9kZSIsInByaW10aXZlU3RyaW5nRnJvbU5vZGVzIiwicHJpbXRpdmVTdHJpbmdGcm9tU3RyaW5nTGl0ZXJhbCIsInByb2NlZHVyZURlY2xhcmF0aW9uU3RyaW5nRnJvbVByb2NlZHVyZSIsInByb2NlZHVyZVN0cmluZ0Zyb21UeXBlTGFiZWxQYXJhbWV0ZXJzQW5kUmV0dXJuQmxvY2siLCJyZWR1Y2VTdHJpbmdGcm9tVmFyaWFibGVJbml0aWFsRXhwcmVzc2lvbkFuZEFub255bW91c1Byb2NlZHVyZSIsInJldHVybkJsb2NrU3RyaW5nRnJvbVJldHVyblN0YXRlbWVudE5vZGUiLCJzb21lU3RyaW5nRnJvbVZhcmlhYmxlQW5kQW5vbnltb3VzUHJvY2VkdXJlIiwidGVybXNTdHJpbmdGcm9tVGVybXNBcnJheSIsInZhcmlhYmxlQXNzaWdubWVudFN0cmluZ0Zyb21WYXJpYWJsZSIsInZhcmlhYmxlQXNzaWdubWVudFN0cmluZ0Zyb21WYXJpYWJsZUFzc2lnbm1lbnQiLCJ2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmdGcm9tVmFyaWFibGVBc3NpZ25tZW50c0FycmF5IiwidmFyaWFibGVTdHJpbmdGcm9tTmFtZSIsIm5hbWUiLCJ2YXJpYWJsZVN0cmluZyIsIm5vZGUiLCJjb250ZXh0IiwicHJpbXRpdmVTdHJpbmciLCJudWxsTm9kZSIsIk5VTEwiLCJub2RlQXNTdHJpbmciLCJub2RlcyIsInN0cmluZyIsIm5vZGVzQXNTdHJpbmciLCJib29sZWFuIiwiZXhwcmVzc3Npb25TdHJpbmciLCJ0ZXJtc0FycmF5IiwidGVybXNTdHJpbmciLCJyZWR1Y2UiLCJ0ZXJtIiwidGVybVN0cmluZyIsImdldFN0cmluZyIsInN0cmluZ0xpdGVyYWwiLCJzdHJpbmdGcm9tU3RyaW5nTGl0ZXJhbCIsImV4cHJlc3Npb24iLCJ2YXJpYWJsZSIsInR5cGUiLCJnZXRUeXBlIiwidmFyaWFibGVBc3NpZ25tZW50U3RyaW5nIiwicHJvY2VkdXJlIiwibGFiZWwiLCJnZXRMYWJlbCIsInBhcmFtZXRlcnMiLCJnZXRQYXJhbWV0ZXJzIiwicmV0dXJuU3RhdGVtZW50IiwiZ2V0UmV0dXJuU3RhdGVtZW50IiwibGFiZWxTdHJpbmciLCJwYXJhbWV0ZXJzU3RyaW5nIiwicmV0dXJuU3RhdGVtZW50U3RyaW5nIiwicHJvY2VkdXJlRGVsY2FyYXRpb25TdHJpbmciLCJyZXR1cm5CbG9ja1N0cmluZyIsInByaW1pdGl2ZSIsInByb3BlcnRpZXMiLCJleHByZXNzaW9uU3RyaW5nIiwicHJpbWl0aXZlU3RyaW5nIiwidG9TdHJpbmciLCJmb3JFYWNoIiwicHJvcGVydHkiLCJwcm9wZXJ0eVN0cmluZyIsImFub255bW91c1Byb2NlZHVyZSIsImFub255bW91c1Byb2NlZHVyZVN0cmluZyIsInNvbWVTdHJpbmciLCJldmVyeVN0cmluZyIsInZhcmlhYmxlQXNzaWdubWVudCIsImdldFZhcmlhYmxlIiwicmV0dXJuQmxvY2siLCJ0eXBlU3RyaW5nIiwicHJvY2VkdXJlU3RyaW5nIiwidmFyaWFibGVBc3NpZ25tZW50c0FycmF5IiwidmFyaWFibGVBc3NpZ25tZW50c1N0cmluZyIsImluaXRpYWxFeHByZXNzaW9uIiwiaW5pdGlhbEV4cHJlc3Npb25TdHJpbmciLCJyZWR1Y2VTdHJpbmciXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQXlKZ0JBO2VBQUFBOztRQXhDQUM7ZUFBQUE7O1FBOUJBQztlQUFBQTs7UUF2REFDO2VBQUFBOztRQWZBQztlQUFBQTs7UUFRQUM7ZUFBQUE7O1FBMkJBQztlQUFBQTs7UUFlQUM7ZUFBQUE7O1FBa0VBQztlQUFBQTs7UUFpQ0FDO2VBQUFBOztRQXRGQUM7ZUFBQUE7O1FBNkJBQztlQUFBQTs7UUF2RUFDO2VBQUFBOztRQXFCQUM7ZUFBQUE7O1FBa0VBQztlQUFBQTs7UUFrQkFDO2VBQUFBOztRQXBJQUM7ZUFBQUE7OzsrREFMSzt5QkFFQTs2QkFDbUI7Ozs7OztBQUVqQyxTQUFTQSx1QkFBdUJDLElBQUk7SUFDekMsSUFBTUMsaUJBQWlCRCxNQUFPLEdBQUc7SUFFakMsT0FBT0M7QUFDVDtBQUVPLFNBQVNkLHVCQUF1QmUsSUFBSSxFQUFFQyxPQUFPO0lBQ2xELElBQU1DLGlCQUFpQixBQUFDRixTQUFTRyxpQkFBUSxHQUNkQyxlQUFJLEdBQ0ZILFFBQVFJLFlBQVksQ0FBQ0w7SUFFbEQsT0FBT0U7QUFDVDtBQUVPLFNBQVNoQix3QkFBd0JvQixLQUFLLEVBQUVM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
|
|
189
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc3RyaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgbnVsbE5vZGUgZnJvbSBcIi4uL251bGxOb2RlXCI7XG5cbmltcG9ydCB7IE5VTEwgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBzdHJpbmdGcm9tU3RyaW5nTGl0ZXJhbCB9IGZyb20gXCIuL3N0cmluZ0xpdGVyYWxcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHRlcm5hcnlTdHJpbmdGcm9tVGVybSh0ZXJtKSB7XG4gIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpLFxuICAgICAgICB0ZXJuYXJ5U3RyaW5nID0gYGlmICgke3Rlcm1TdHJpbmd9KSB7IC4uLiB9IGVsc2UgeyAuLi4gfWA7XG5cbiAgcmV0dXJuIHRlcm5hcnlTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YXJpYWJsZVN0cmluZ0Zyb21OYW1lKG5hbWUpIHtcbiAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSBuYW1lOyAgLy8vXG5cbiAgcmV0dXJuIHZhcmlhYmxlU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJpbXRpdmVTdHJpbmdGcm9tTm9kZShub2RlLCBjb250ZXh0KSB7XG4gIGNvbnN0IHByaW10aXZlU3RyaW5nID0gKG5vZGUgPT09IG51bGxOb2RlKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQubm9kZUFzU3RyaW5nKG5vZGUpO1xuXG4gIHJldHVybiBwcmltdGl2ZVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByaW10aXZlU3RyaW5nRnJvbU5vZGVzKG5vZGVzLCBjb250ZXh0KSB7XG4gIGNvbnN0IHN0cmluZyA9IGNvbnRleHQubm9kZXNBc1N0cmluZyhub2RlcyksXG4gICAgICAgIHByaW10aXZlU3RyaW5nID0gc3RyaW5nOyAgLy8vXG5cbiAgcmV0dXJuIHByaW10aXZlU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJpbXRpdmVTdHJpbmdGcm9tQm9vbGVhbihib29sZWFuKSB7XG4gIGNvbnN0IGV4cHJlc3NzaW9uU3RyaW5nID0gYCR7Ym9vbGVhbn1gO1xuXG4gIHJldHVybiBleHByZXNzc2lvblN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRlcm1zU3RyaW5nRnJvbVRlcm1zQXJyYXkodGVybXNBcnJheSkge1xuICBjb25zdCB0ZXJtc1N0cmluZyA9IHRlcm1zQXJyYXkucmVkdWNlKCh0ZXJtc1N0cmluZywgdGVybSkgPT4ge1xuICAgIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpO1xuXG4gICAgdGVybXNTdHJpbmcgPSAodGVybXNTdHJpbmcgPT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICAgdGVybVN0cmluZyA6XG4gICAgICAgICAgICAgICAgICAgICBgJHt0ZXJtc1N0cmluZ30sICR7dGVybVN0cmluZ31gO1xuXG4gICAgcmV0dXJuIHRlcm1zU3RyaW5nO1xuICB9LCBudWxsKTsgLy8vXG5cbiAgcmV0dXJuIHRlcm1zU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJpbXRpdmVTdHJpbmdGcm9tU3RyaW5nTGl0ZXJhbChzdHJpbmdMaXRlcmFsKSB7XG4gIGNvbnN0IHN0cmluZyA9IHN0cmluZ0Zyb21TdHJpbmdMaXRlcmFsKHN0cmluZ0xpdGVyYWwpLFxuICAgICAgICBwcmltdGl2ZVN0cmluZyA9IHN0cmluZzsgIC8vL1xuXG4gIHJldHVybiBwcmltdGl2ZVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRlcm1TdHJpbmdGcm9tUHJpbWl0aXZlQW5kUHJvcGVydGllcyhwcmltaXRpdmUsIHByb3BlcnRpZXMpIHtcbiAgbGV0IHRlcm1TdHJpbmc7XG5cbiAgaWYgKGZhbHNlKSB7XG4gICAgLy8vXG4gIH0gZWxzZSBpZiAocHJpbWl0aXZlICE9PSBudWxsKSB7XG4gICAgY29uc3QgcHJpbWl0aXZlU3RyaW5nID0gcHJpbWl0aXZlLnRvU3RyaW5nKCk7XG5cbiAgICB0ZXJtU3RyaW5nID0gcHJpbWl0aXZlU3RyaW5nOyAvLy9cbiAgfSBlbHNlIHtcbiAgICBwcm9wZXJ0aWVzLmZvckVhY2goKHByb3BlcnR5KSA9PiB7XG4gICAgICBpZiAocHJvcGVydHkgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgcHJvcGVydHlTdHJpbmcgPSBwcm9wZXJ0eS5nZXRTdHJpbmcoKTtcblxuICAgICAgICB0ZXJtU3RyaW5nID0gcHJvcGVydHlTdHJpbmc7ICAvLy9cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiB0ZXJtU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFyaWFibGVBc3NpZ25tZW50U3RyaW5nRnJvbVR5cGVBbmRWYXJpYWJsZSh0eXBlLCB2YXJpYWJsZSkge1xuICBjb25zdCB2YXJpYWJsZVN0cmluZyA9IHZhcmlhYmxlLmdldFN0cmluZygpLFxuICAgICAgICB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmcgPSBgJHt0eXBlfSAke3ZhcmlhYmxlU3RyaW5nfSA9IC4uLiA7YDtcblxuICByZXR1cm4gdmFyaWFibGVBc3NpZ25tZW50U3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvY2VkdXJlRGVjbGFyYXRpb25TdHJpbmdGcm9tUHJvY2VkdXJlKHByb2NlZHVyZSkge1xuICBjb25zdCB0eXBlID0gcHJvY2VkdXJlLmdldFR5cGUoKSxcbiAgICAgICAgbGFiZWwgPSBwcm9jZWR1cmUuZ2V0TGFiZWwoKSxcbiAgICAgICAgcGFyYW1ldGVycyA9IHByb2NlZHVyZS5nZXRQYXJhbWV0ZXJzKCksXG4gICAgICAgIHJldHVyblN0YXRlbWVudCA9IHByb2NlZHVyZS5nZXRSZXR1cm5TdGF0ZW1lbnQoKSxcbiAgICAgICAgbGFiZWxTdHJpbmcgPSBsYWJlbC5nZXRTdHJpbmcoKSxcbiAgICAgICAgcGFyYW1ldGVyc1N0cmluZyA9IHBhcmFtZXRlcnMuZ2V0U3RyaW5nKCksXG4gICAgICAgIHJldHVyblN0YXRlbWVudFN0cmluZyA9IHJldHVyblN0YXRlbWVudC5nZXRTdHJpbmcoKSxcbiAgICAgICAgcHJvY2VkdXJlRGVsY2FyYXRpb25TdHJpbmcgPSBgJHt0eXBlfSAke2xhYmVsU3RyaW5nIH0oJHtwYXJhbWV0ZXJzU3RyaW5nfSkgeyAuLi4gJHtyZXR1cm5TdGF0ZW1lbnRTdHJpbmd9IH1gO1xuXG4gIHJldHVybiBwcm9jZWR1cmVEZWxjYXJhdGlvblN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJldHVybkJsb2NrU3RyaW5nRnJvbVJldHVyblN0YXRlbWVudE5vZGUocmV0dXJuU3RhdGVtZW50KSB7XG4gIGNvbnN0IHJldHVyblN0YXRlbWVudFN0cmluZyA9IHJldHVyblN0YXRlbWVudC5nZXRTdHJpbmcoKSxcbiAgICAgICAgcmV0dXJuQmxvY2tTdHJpbmcgPSBgeyAuLi4gJHtyZXR1cm5TdGF0ZW1lbnRTdHJpbmd9IH1gO1xuXG4gIHJldHVybiByZXR1cm5CbG9ja1N0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4cHJlc3Npb25TdHJpbmdGcm9tUHJpbWl0aXZlQW5kUHJvcGVydGllcyhwcmltaXRpdmUsIHByb3BlcnRpZXMpIHtcbiAgbGV0IGV4cHJlc3Npb25TdHJpbmc7XG5cbiAgaWYgKGZhbHNlKSB7XG4gICAgLy8vXG4gIH0gZWxzZSBpZiAocHJpbWl0aXZlICE9PSBudWxsKSB7XG4gICAgY29uc3QgcHJpbWl0aXZlU3RyaW5nID0gcHJpbWl0aXZlLnRvU3RyaW5nKCk7XG5cbiAgICBleHByZXNzaW9uU3RyaW5nID0gcHJpbWl0aXZlU3RyaW5nOyAvLy9cbiAgfSBlbHNlIHtcbiAgICBwcm9wZXJ0aWVzLmZvckVhY2goKHByb3BlcnR5KSA9PiB7XG4gICAgICBpZiAocHJvcGVydHkgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgcHJvcGVydHlTdHJpbmcgPSBwcm9wZXJ0eS5nZXRTdHJpbmcoKTtcblxuICAgICAgICBleHByZXNzaW9uU3RyaW5nID0gcHJvcGVydHlTdHJpbmc7ICAvLy9cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBleHByZXNzaW9uU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc29tZVN0cmluZ0Zyb21WYXJpYWJsZUFuZEFub255bW91c1Byb2NlZHVyZSh2YXJpYWJsZSwgYW5vbnltb3VzUHJvY2VkdXJlKSB7XG4gIGNvbnN0IHZhcmlhYmxlU3RyaW5nID0gdmFyaWFibGUuZ2V0U3RyaW5nKCksXG4gICAgICAgIGFub255bW91c1Byb2NlZHVyZVN0cmluZyA9IGFub255bW91c1Byb2NlZHVyZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgc29tZVN0cmluZyA9IGBTb21lKCR7dmFyaWFibGVTdHJpbmd9LCAke2Fub255bW91c1Byb2NlZHVyZVN0cmluZ30pIGA7XG5cbiAgcmV0dXJuIHNvbWVTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBldmVyeVN0cmluZ0Zyb21WYXJpYWJsZUFuZEFub255bW91c1Byb2NlZHVyZSh2YXJpYWJsZSwgYW5vbnltb3VzUHJvY2VkdXJlKSB7XG4gIGNvbnN0IHZhcmlhYmxlU3RyaW5nID0gdmFyaWFibGUuZ2V0U3RyaW5nKCksXG4gICAgICAgIGFub255bW91c1Byb2NlZHVyZVN0cmluZyA9IGFub255bW91c1Byb2NlZHVyZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgZXZlcnlTdHJpbmcgPSBgRXZlcnkoJHt2YXJpYWJsZVN0cmluZ30sICR7YW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nfSkgYDtcblxuICByZXR1cm4gZXZlcnlTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmdGcm9tVmFyaWFibGVBc3NpZ25tZW50KHZhcmlhYmxlQXNzaWdubWVudCkge1xuICBjb25zdCB2YXJpYWJsZSA9IHZhcmlhYmxlQXNzaWdubWVudC5nZXRWYXJpYWJsZSgpLFxuICAgICAgICB2YXJpYWJsZVN0cmluZyA9IHZhcmlhYmxlLmdldFN0cmluZygpLFxuICAgICAgICB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmcgPSBgJHt2YXJpYWJsZVN0cmluZ30gPSAuLi5gO1xuXG4gIHJldHVybiB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm9jZWR1cmVTdHJpbmdGcm9tVHlwZUxhYmVsUGFyYW1ldGVyc0FuZFJldHVybkJsb2NrKHR5cGUsIGxhYmVsLCBwYXJhbWV0ZXJzLCByZXR1cm5CbG9jaykge1xuICBjb25zdCB0eXBlU3RyaW5nID0gdHlwZSwgIC8vL1xuICAgICAgICBsYWJlbFN0cmluZyA9IGxhYmVsLmdldFN0cmluZygpLFxuICAgICAgICBwYXJhbWV0ZXJzU3RyaW5nID0gcGFyYW1ldGVycy5nZXRTdHJpbmcoKSxcbiAgICAgICAgcmV0dXJuQmxvY2tTdHJpbmcgPSByZXR1cm5CbG9jay5nZXRTdHJpbmcoKSxcbiAgICAgICAgcHJvY2VkdXJlU3RyaW5nID0gYCR7dHlwZVN0cmluZ30gJHtsYWJlbFN0cmluZ30oJHtwYXJhbWV0ZXJzU3RyaW5nfSkgJHtyZXR1cm5CbG9ja1N0cmluZ31gO1xuXG4gIHJldHVybiBwcm9jZWR1cmVTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmdGcm9tVmFyaWFibGVBc3NpZ25tZW50c0FycmF5KHZhcmlhYmxlQXNzaWdubWVudHNBcnJheSkge1xuICBjb25zdCB2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nID0gdmFyaWFibGVBc3NpZ25tZW50c0FycmF5LnJlZHVjZSgodmFyaWFibGVBc3NpZ25tZW50c1N0cmluZywgdmFyaWFibGVBc3NpZ25tZW50KSA9PiB7XG4gICAgY29uc3QgdmFyaWFibGVBc3NpZ25tZW50U3RyaW5nID0gdmFyaWFibGVBc3NpZ25tZW50U3RyaW5nRnJvbVZhcmlhYmxlQXNzaWdubWVudCh2YXJpYWJsZUFzc2lnbm1lbnQpO1xuXG4gICAgdmFyaWFibGVBc3NpZ25tZW50c1N0cmluZyA9ICh2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nID09PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGVBc3NpZ25tZW50U3RyaW5nIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYCR7dmFyaWFibGVBc3NpZ25tZW50c1N0cmluZ30sICR7dmFyaWFibGVBc3NpZ25tZW50U3RyaW5nfWA7XG5cbiAgICByZXR1cm4gdmFyaWFibGVBc3NpZ25tZW50c1N0cmluZztcbiAgfSwgbnVsbCk7IC8vL1xuXG4gIHJldHVybiB2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nRnJvbVR5cGVQYXJhbWV0ZXJzQW5kUmV0dXJuQmxvY2sodHlwZSwgcGFyYW1ldGVycywgcmV0dXJuQmxvY2spIHtcbiAgY29uc3QgdHlwZVN0cmluZyA9IHR5cGUsICAvLy9cbiAgICAgICAgcGFyYW1ldGVyc1N0cmluZyA9IHBhcmFtZXRlcnMuZ2V0U3RyaW5nKCksXG4gICAgICAgIHJldHVybkJsb2NrU3RyaW5nID0gcmV0dXJuQmxvY2suZ2V0U3RyaW5nKCksXG4gICAgICAgIGFub255bW91c1Byb2NlZHVyZVN0cmluZyA9IGAke3R5cGVTdHJpbmd9ICgke3BhcmFtZXRlcnNTdHJpbmd9KSAke3JldHVybkJsb2NrU3RyaW5nfWA7XG5cbiAgcmV0dXJuIGFub255bW91c1Byb2NlZHVyZVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlZHVjZVN0cmluZ0Zyb21WYXJpYWJsZUluaXRpYWxFeHByZXNzaW9uQW5kQW5vbnltb3VzUHJvY2VkdXJlKHZhcmlhYmxlLCBpbml0aWFsRXhwcmVzc2lvbiwgYW5vbnltb3VzUHJvY2VkdXJlKSB7XG4gIGNvbnN0IHZhcmlhYmxlU3RyaW5nID0gdmFyaWFibGUuZ2V0U3RyaW5nKCksXG4gICAgICAgIGluaXRpYWxFeHByZXNzaW9uU3RyaW5nID0gaW5pdGlhbEV4cHJlc3Npb24uZ2V0U3RyaW5nKCksXG4gICAgICAgIGFub255bW91c1Byb2NlZHVyZVN0cmluZyA9IGFub255bW91c1Byb2NlZHVyZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgcmVkdWNlU3RyaW5nID0gYFJlZHVjZSgke3ZhcmlhYmxlU3RyaW5nfSwgJHthbm9ueW1vdXNQcm9jZWR1cmVTdHJpbmd9LCAke2luaXRpYWxFeHByZXNzaW9uU3RyaW5nfSlgO1xuXG4gIHJldHVybiByZWR1Y2VTdHJpbmc7XG59XG5cbiJdLCJuYW1lcyI6WyJhbm9ueW1vdXNQcm9jZWR1cmVTdHJpbmdGcm9tVHlwZVBhcmFtZXRlcnNBbmRSZXR1cm5CbG9jayIsImV2ZXJ5U3RyaW5nRnJvbVZhcmlhYmxlQW5kQW5vbnltb3VzUHJvY2VkdXJlIiwiZXhwcmVzc2lvblN0cmluZ0Zyb21QcmltaXRpdmVBbmRQcm9wZXJ0aWVzIiwicHJpbXRpdmVTdHJpbmdGcm9tQm9vbGVhbiIsInByaW10aXZlU3RyaW5nRnJvbU5vZGUiLCJwcmltdGl2ZVN0cmluZ0Zyb21Ob2RlcyIsInByaW10aXZlU3RyaW5nRnJvbVN0cmluZ0xpdGVyYWwiLCJwcm9jZWR1cmVEZWNsYXJhdGlvblN0cmluZ0Zyb21Qcm9jZWR1cmUiLCJwcm9jZWR1cmVTdHJpbmdGcm9tVHlwZUxhYmVsUGFyYW1ldGVyc0FuZFJldHVybkJsb2NrIiwicmVkdWNlU3RyaW5nRnJvbVZhcmlhYmxlSW5pdGlhbEV4cHJlc3Npb25BbmRBbm9ueW1vdXNQcm9jZWR1cmUiLCJyZXR1cm5CbG9ja1N0cmluZ0Zyb21SZXR1cm5TdGF0ZW1lbnROb2RlIiwic29tZVN0cmluZ0Zyb21WYXJpYWJsZUFuZEFub255bW91c1Byb2NlZHVyZSIsInRlcm1TdHJpbmdGcm9tUHJpbWl0aXZlQW5kUHJvcGVydGllcyIsInRlcm1zU3RyaW5nRnJvbVRlcm1zQXJyYXkiLCJ0ZXJuYXJ5U3RyaW5nRnJvbVRlcm0iLCJ2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmdGcm9tVHlwZUFuZFZhcmlhYmxlIiwidmFyaWFibGVBc3NpZ25tZW50U3RyaW5nRnJvbVZhcmlhYmxlQXNzaWdubWVudCIsInZhcmlhYmxlQXNzaWdubWVudFN0cmluZ0Zyb21WYXJpYWJsZUFzc2lnbm1lbnRzQXJyYXkiLCJ2YXJpYWJsZVN0cmluZ0Zyb21OYW1lIiwidGVybSIsInRlcm1TdHJpbmciLCJnZXRTdHJpbmciLCJ0ZXJuYXJ5U3RyaW5nIiwibmFtZSIsInZhcmlhYmxlU3RyaW5nIiwibm9kZSIsImNvbnRleHQiLCJwcmltdGl2ZVN0cmluZyIsIm51bGxOb2RlIiwiTlVMTCIsIm5vZGVBc1N0cmluZyIsIm5vZGVzIiwic3RyaW5nIiwibm9kZXNBc1N0cmluZyIsImJvb2xlYW4iLCJleHByZXNzc2lvblN0cmluZyIsInRlcm1zQXJyYXkiLCJ0ZXJtc1N0cmluZyIsInJlZHVjZSIsInN0cmluZ0xpdGVyYWwiLCJzdHJpbmdGcm9tU3RyaW5nTGl0ZXJhbCIsInByaW1pdGl2ZSIsInByb3BlcnRpZXMiLCJwcmltaXRpdmVTdHJpbmciLCJ0b1N0cmluZyIsImZvckVhY2giLCJwcm9wZXJ0eSIsInByb3BlcnR5U3RyaW5nIiwidHlwZSIsInZhcmlhYmxlIiwidmFyaWFibGVBc3NpZ25tZW50U3RyaW5nIiwicHJvY2VkdXJlIiwiZ2V0VHlwZSIsImxhYmVsIiwiZ2V0TGFiZWwiLCJwYXJhbWV0ZXJzIiwiZ2V0UGFyYW1ldGVycyIsInJldHVyblN0YXRlbWVudCIsImdldFJldHVyblN0YXRlbWVudCIsImxhYmVsU3RyaW5nIiwicGFyYW1ldGVyc1N0cmluZyIsInJldHVyblN0YXRlbWVudFN0cmluZyIsInByb2NlZHVyZURlbGNhcmF0aW9uU3RyaW5nIiwicmV0dXJuQmxvY2tTdHJpbmciLCJleHByZXNzaW9uU3RyaW5nIiwiYW5vbnltb3VzUHJvY2VkdXJlIiwiYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nIiwic29tZVN0cmluZyIsImV2ZXJ5U3RyaW5nIiwidmFyaWFibGVBc3NpZ25tZW50IiwiZ2V0VmFyaWFibGUiLCJyZXR1cm5CbG9jayIsInR5cGVTdHJpbmciLCJwcm9jZWR1cmVTdHJpbmciLCJ2YXJpYWJsZUFzc2lnbm1lbnRzQXJyYXkiLCJ2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nIiwiaW5pdGlhbEV4cHJlc3Npb24iLCJpbml0aWFsRXhwcmVzc2lvblN0cmluZyIsInJlZHVjZVN0cmluZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBcUxnQkE7ZUFBQUE7O1FBeENBQztlQUFBQTs7UUE5QkFDO2VBQUFBOztRQTVFQUM7ZUFBQUE7O1FBZkFDO2VBQUFBOztRQVFBQztlQUFBQTs7UUEyQkFDO2VBQUFBOztRQW9DQUM7ZUFBQUE7O1FBa0VBQztlQUFBQTs7UUFpQ0FDO2VBQUFBOztRQXRGQUM7ZUFBQUE7O1FBNkJBQztlQUFBQTs7UUF2RUFDO2VBQUFBOztRQXJCQUM7ZUFBQUE7O1FBbENBQztlQUFBQTs7UUE2RUFDO2VBQUFBOztRQWlFQUM7ZUFBQUE7O1FBa0JBQztlQUFBQTs7UUF6SkFDO2VBQUFBOzs7K0RBWks7eUJBRUE7NkJBQ21COzs7Ozs7QUFFakMsU0FBU0osc0JBQXNCSyxJQUFJO0lBQ3hDLElBQU1DLGFBQWFELEtBQUtFLFNBQVMsSUFDM0JDLGdCQUFnQixBQUFDLE9BQWlCLE9BQVhGLFlBQVc7SUFFeEMsT0FBT0U7QUFDVDtBQUVPLFNBQVNKLHVCQUF1QkssSUFBSTtJQUN6QyxJQUFNQyxpQkFBaUJELE1BQU8sR0FBRztJQUVqQyxPQUFPQztBQUNUO0FBRU8sU0FBU3BCLHVCQUF1QnFCLElBQUksRUFBRUMsT0FBTztJQUNsRCxJQUFNQyxpQkFBaUIsQUFBQ0YsU0FBU0csaUJBQVEsR0FDZEMsZUFBSSxHQUNGSCxRQUFRSSxZQUFZLENBQUNMO0lBRWxELE9BQU9FO0FBQ1Q7QUFFTyxTQUFTdEIsd0JBQXdCMEIsS0FBSyxFQUFFTCxPQUFPO0lBQ3BELElBQU1NLFNBQVNOLFFBQVFPLGFBQWEsQ0FBQ0YsUUFDL0JKLGlC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
|
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.334",
|
|
5
5
|
"license": "MIT, Anti-996",
|
|
6
6
|
"homepage": "https://github.com/djalbat/occam-furtle",
|
|
7
7
|
"description": "Occam's Furtle language.",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"necessary": "^17.0.9",
|
|
14
14
|
"occam-grammar-utilities": "^8.0.395",
|
|
15
|
-
"occam-grammars": "^1.3.
|
|
15
|
+
"occam-grammars": "^1.3.506",
|
|
16
16
|
"occam-lexers": "^23.1.35",
|
|
17
17
|
"occam-parsers": "^23.1.38"
|
|
18
18
|
},
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
"@swc/core": "1.13.20",
|
|
21
21
|
"express": "^5.1.0",
|
|
22
22
|
"lively-cli": "^2.0.77",
|
|
23
|
-
"occam-custom-grammars": "^5.0.
|
|
24
|
-
"occam-entities": "^1.0.
|
|
23
|
+
"occam-custom-grammars": "^5.0.1367",
|
|
24
|
+
"occam-entities": "^1.0.481",
|
|
25
25
|
"occam-query": "^4.1.142",
|
|
26
26
|
"watchful-cli": "^1.7.67"
|
|
27
27
|
},
|
|
@@ -32,7 +32,7 @@ export default define(class NegatedExpression {
|
|
|
32
32
|
|
|
33
33
|
context.trace(`Evaluating the '${negatedExpressionString}' negated expression...`);
|
|
34
34
|
|
|
35
|
-
term = this.
|
|
35
|
+
term = this.expression.evaluate(context);
|
|
36
36
|
|
|
37
37
|
const termType = term.getType();
|
|
38
38
|
|
package/src/element/primitive.js
CHANGED
|
@@ -70,33 +70,33 @@ export default define(class Primitive {
|
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
isEqualTo(primitive) {
|
|
73
|
-
let equalTo;
|
|
73
|
+
let equalTo = false;
|
|
74
74
|
|
|
75
75
|
if (false) {
|
|
76
76
|
///
|
|
77
77
|
} else if (this.node !== null) {
|
|
78
78
|
const node = primitive.getNode();
|
|
79
79
|
|
|
80
|
-
if (node
|
|
81
|
-
equalTo = false;
|
|
82
|
-
} else {
|
|
80
|
+
if (node !== null) {
|
|
83
81
|
const nodeA = this.node, ///
|
|
84
82
|
nodeB = node, ///
|
|
85
83
|
nodeMatches = matchNode(nodeA, nodeB);
|
|
86
84
|
|
|
87
|
-
|
|
85
|
+
if (nodeMatches) {
|
|
86
|
+
equalTo = true;
|
|
87
|
+
}
|
|
88
88
|
}
|
|
89
89
|
} else if (this.nodes !== null) {
|
|
90
90
|
const nodes = primitive.getNode();
|
|
91
91
|
|
|
92
|
-
if (nodes
|
|
93
|
-
equalTo = false;
|
|
94
|
-
} else {
|
|
92
|
+
if (nodes !== null) {
|
|
95
93
|
const nodesA = this.nodes, ///
|
|
96
94
|
nodesB = nodes, ///
|
|
97
95
|
nodesMatch = matchNodes(nodesA, nodesB);
|
|
98
96
|
|
|
99
|
-
|
|
97
|
+
if (nodesMatch) {
|
|
98
|
+
equalTo = true;
|
|
99
|
+
}
|
|
100
100
|
}
|
|
101
101
|
} else if (this.number !== null) {
|
|
102
102
|
const number = primitive.getNumber();
|
|
@@ -51,9 +51,9 @@ export default define(class ReturnBlock {
|
|
|
51
51
|
step.evaluate(context);
|
|
52
52
|
});
|
|
53
53
|
|
|
54
|
-
const
|
|
54
|
+
const term = this.returnStatement.evaluate(context);
|
|
55
55
|
|
|
56
|
-
return
|
|
56
|
+
return term;
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
static name = "ReturnBlock";
|
|
@@ -23,7 +23,7 @@ export default define(class ReturnStatement {
|
|
|
23
23
|
|
|
24
24
|
context.trace(`Evaluating the '${returnStatementString}' return statement...`);
|
|
25
25
|
|
|
26
|
-
term = this.term;
|
|
26
|
+
term = this.term.evaluate(context);
|
|
27
27
|
|
|
28
28
|
context.debug(`...evaluated the '${returnStatementString}' return statement.`);
|
|
29
29
|
|
package/src/element/step.js
CHANGED
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
import { define } from "../elements";
|
|
4
4
|
|
|
5
5
|
export default define(class Step {
|
|
6
|
-
constructor(string, arrayAssignment, objectAssigment,
|
|
6
|
+
constructor(string, arrayAssignment, objectAssigment, variablessAssignment) {
|
|
7
7
|
this.string = string;
|
|
8
8
|
this.arrayAssignment = arrayAssignment;
|
|
9
9
|
this.objectAssigment = objectAssigment;
|
|
10
|
-
this.
|
|
10
|
+
this.variablessAssignment = variablessAssignment;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
getString() {
|
|
@@ -22,8 +22,8 @@ export default define(class Step {
|
|
|
22
22
|
return this.objectAssigment;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
return this.
|
|
25
|
+
getVariablessAssignment() {
|
|
26
|
+
return this.variablessAssignment;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
evaluate(context) {
|
|
@@ -33,8 +33,8 @@ export default define(class Step {
|
|
|
33
33
|
this.arrayAssignment.evaluate(context);
|
|
34
34
|
} else if (this.objectAssigment !== null) {
|
|
35
35
|
this.objectAssigment.evaluate(context);
|
|
36
|
-
} else if (this.
|
|
37
|
-
this.
|
|
36
|
+
} else if (this.variablessAssignment !== null) {
|
|
37
|
+
this.variablessAssignment.evaluate(context);
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
|
|
@@ -6,7 +6,7 @@ import { define } from "../../elements";
|
|
|
6
6
|
import { BOOLEAN_TYPE } from "../../types";
|
|
7
7
|
import { termFromBoolean } from "../../utilities/term";
|
|
8
8
|
|
|
9
|
-
export default define(class
|
|
9
|
+
export default define(class LogicalTerm {
|
|
10
10
|
constructor(string, type, disjunction, leftTerm, rightTerm) {
|
|
11
11
|
this.string = string;
|
|
12
12
|
this.type = type;
|
|
@@ -38,9 +38,9 @@ export default define(class LogicaTerm {
|
|
|
38
38
|
evaluate(context) {
|
|
39
39
|
let term;
|
|
40
40
|
|
|
41
|
-
const
|
|
41
|
+
const logicalTermString = this.string; ///
|
|
42
42
|
|
|
43
|
-
context.trace(`Evaluating the '${
|
|
43
|
+
context.trace(`Evaluating the '${logicalTermString}' logical term...`);
|
|
44
44
|
|
|
45
45
|
const leftTerm = this.leftTerm.evaluate(context),
|
|
46
46
|
rightTerm = this.rightTerm.evaluate(context),
|
|
@@ -71,10 +71,10 @@ export default define(class LogicaTerm {
|
|
|
71
71
|
|
|
72
72
|
term = termFromBoolean(boolean, context);
|
|
73
73
|
|
|
74
|
-
context.debug(`...evaluated the '${
|
|
74
|
+
context.debug(`...evaluated the '${logicalTermString}' logical term.`);
|
|
75
75
|
|
|
76
76
|
return term;
|
|
77
77
|
}
|
|
78
78
|
|
|
79
|
-
static name = "
|
|
79
|
+
static name = "LogicalTerm";
|
|
80
80
|
});
|
package/src/element/term.js
CHANGED
|
@@ -95,15 +95,23 @@ export default define(class Term {
|
|
|
95
95
|
return term;
|
|
96
96
|
}
|
|
97
97
|
|
|
98
|
-
isEqualTo(
|
|
99
|
-
let equalTo;
|
|
98
|
+
isEqualTo(term) {
|
|
99
|
+
let equalTo = false;
|
|
100
100
|
|
|
101
101
|
if (false) {
|
|
102
102
|
///
|
|
103
103
|
} else if (this.variable !== null) {
|
|
104
|
-
|
|
104
|
+
const variable = term.getVariable();
|
|
105
|
+
|
|
106
|
+
if (variable !== null) {
|
|
107
|
+
equalTo = this.variable.isEqualTo(variable);
|
|
108
|
+
}
|
|
105
109
|
} else if (this.primitive !== null) {
|
|
106
|
-
|
|
110
|
+
const primitive = term.getPrimitive();
|
|
111
|
+
|
|
112
|
+
if (primitive !== null) {
|
|
113
|
+
equalTo = this.primitive.isEqualTo(primitive);
|
|
114
|
+
}
|
|
107
115
|
}
|
|
108
116
|
|
|
109
117
|
return equalTo;
|