occam-furtle 3.0.307 → 3.0.310
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/assignment/array.js +7 -7
- package/lib/element/assignment/object.js +2 -2
- package/lib/element/primitive.js +20 -1
- package/lib/element/reduce.js +2 -2
- package/lib/element/value.js +55 -2
- package/lib/node/binding/named.js +2 -2
- package/lib/utilities/element.js +4 -3
- package/lib/utilities/primitive.js +10 -11
- package/lib/utilities/string.js +1 -13
- package/lib/utilities/value.js +11 -24
- package/lib/utilities/values.js +4 -4
- package/package.json +1 -1
- package/src/element/assignment/array.js +11 -12
- package/src/element/assignment/object.js +1 -1
- package/src/element/primitive.js +29 -0
- package/src/element/reduce.js +1 -1
- package/src/element/value.js +25 -0
- package/src/node/binding/named.js +1 -1
- package/src/utilities/element.js +4 -4
- package/src/utilities/primitive.js +18 -18
- package/src/utilities/string.js +0 -14
- package/src/utilities/value.js +21 -35
- package/src/utilities/values.js +3 -3
package/lib/utilities/string.js
CHANGED
|
@@ -60,9 +60,6 @@ _export(exports, {
|
|
|
60
60
|
get ternaryStringFromTerm () {
|
|
61
61
|
return ternaryStringFromTerm;
|
|
62
62
|
},
|
|
63
|
-
get typeStringFromNameAndArgumentType () {
|
|
64
|
-
return typeStringFromNameAndArgumentType;
|
|
65
|
-
},
|
|
66
63
|
get typeStringFromTypeNameAndArgumentTypeName () {
|
|
67
64
|
return typeStringFromTypeNameAndArgumentTypeName;
|
|
68
65
|
},
|
|
@@ -160,15 +157,6 @@ function primtiveStringFromNominalValues(nominalValues) {
|
|
|
160
157
|
}, null);
|
|
161
158
|
return primtiveString;
|
|
162
159
|
}
|
|
163
|
-
function typeStringFromNameAndArgumentType(name, argumentType) {
|
|
164
|
-
let typeString;
|
|
165
|
-
typeString = `${name}`;
|
|
166
|
-
if (argumentType !== null) {
|
|
167
|
-
const argumentTypeString = argumentType.getString();
|
|
168
|
-
typeString = `${typeString}${argumentTypeString}`;
|
|
169
|
-
}
|
|
170
|
-
return typeString;
|
|
171
|
-
}
|
|
172
160
|
function procedureDeclarationStringFromProcedure(procedure) {
|
|
173
161
|
const type = procedure.getType(), label = procedure.getLabel(), parameters = procedure.getParameters(), returnStatement = procedure.getReturnStatement(), typeString = type.getString(), labelString = label.getString(), parametersString = parameters.getString(), returnStatementString = returnStatement.getString(), procedureDelcarationString = `${typeString} ${labelString}(${parametersString}) { ... ${returnStatementString} }`;
|
|
174
162
|
return procedureDelcarationString;
|
|
@@ -237,4 +225,4 @@ function reduceStringFromVariableInitialExpressionAndAnonymousProcedure(variable
|
|
|
237
225
|
return reduceString;
|
|
238
226
|
}
|
|
239
227
|
|
|
240
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc3RyaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBzdHJpbmdGcm9tU3RyaW5nTGl0ZXJhbCB9IGZyb20gXCIuL3N0cmluZ0xpdGVyYWxcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHRlcm5hcnlTdHJpbmdGcm9tVGVybSh0ZXJtKSB7XG4gIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpLFxuICAgICAgICB0ZXJuYXJ5U3RyaW5nID0gYGlmICgke3Rlcm1TdHJpbmd9KSB7IC4uLiB9IGVsc2UgeyAuLi4gfWA7XG5cbiAgcmV0dXJuIHRlcm5hcnlTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YXJpYWJsZVN0cmluZ0Zyb21OYW1lKG5hbWUpIHtcbiAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSBuYW1lOyAgLy8vXG5cbiAgcmV0dXJuIHZhcmlhYmxlU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGVybVN0cmluZ0Zyb21Qcm9wZXJ0aWVzKHByb3BlcnRpZXMpIHtcbiAgbGV0IHRlcm1TdHJpbmc7XG5cbiAgcHJvcGVydGllcy5mb3JFYWNoKChwcm9wZXJ0eSkgPT4ge1xuICAgIGlmIChwcm9wZXJ0eSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgcHJvcGVydHlTdHJpbmcgPSBwcm9wZXJ0eS5nZXRTdHJpbmcoKTtcblxuICAgICAgdGVybVN0cmluZyA9IHByb3BlcnR5U3RyaW5nOyAgLy8vXG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gdGVybVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbHVlU3RyaW5nRnJvbVByb3BlcnRpZXMocHJvcGVydGllcykge1xuICBsZXQgdmFsdWVTdHJpbmc7XG5cbiAgcHJvcGVydGllcy5mb3JFYWNoKChwcm9wZXJ0eSkgPT4ge1xuICAgIGlmIChwcm9wZXJ0eSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgcHJvcGVydHlTdHJpbmcgPSBwcm9wZXJ0eS5nZXRTdHJpbmcoKTtcblxuICAgICAgdmFsdWVTdHJpbmcgPSBwcm9wZXJ0eVN0cmluZzsgIC8vL1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHZhbHVlU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJpbXRpdmVTdHJpbmdGcm9tQm9vbGVhbihib29sZWFuKSB7XG4gIGNvbnN0IGV4cHJlc3NzaW9uU3RyaW5nID0gYCR7Ym9vbGVhbn1gO1xuXG4gIHJldHVybiBleHByZXNzc2lvblN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRlcm1zU3RyaW5nRnJvbVRlcm1zQXJyYXkodGVybXNBcnJheSkge1xuICBjb25zdCB0ZXJtc1N0cmluZyA9IHRlcm1zQXJyYXkucmVkdWNlKCh0ZXJtc1N0cmluZywgdGVybSkgPT4ge1xuICAgIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpO1xuXG4gICAgdGVybXNTdHJpbmcgPSAodGVybXNTdHJpbmcgPT09IG51bGwpID9cbiAgICAgIHRlcm1TdHJpbmcgOlxuICAgICAgYCR7dGVybXNTdHJpbmd9LCAke3Rlcm1TdHJpbmd9YDtcblxuICAgIHJldHVybiB0ZXJtc1N0cmluZztcbiAgfSwgbnVsbCk7IC8vL1xuXG4gIHJldHVybiB0ZXJtc1N0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbHVlc1N0cmluZ0Zyb21WYWx1ZXNBcnJheSh2YWx1ZXNBcnJheSkge1xuICBjb25zdCB2YWx1ZXNTdHJpbmcgPSB2YWx1ZXNBcnJheS5yZWR1Y2UoKHZhbHVlc1N0cmluZywgdmFsdWUpID0+IHtcbiAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgdmFsdWVzU3RyaW5nID0gKHZhbHVlc1N0cmluZyA9PT0gbnVsbCkgP1xuICAgICAgICAgICAgICAgICAgICAgdmFsdWVTdHJpbmcgOlxuICAgICAgICAgICAgICAgICAgICAgICBgJHt2YWx1ZXNTdHJpbmd9LCAke3ZhbHVlU3RyaW5nfWA7XG5cbiAgICByZXR1cm4gdmFsdWVzU3RyaW5nO1xuICB9LCBudWxsKTsgLy8vXG5cbiAgcmV0dXJuIHZhbHVlc1N0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByaW10aXZlU3RyaW5nRnJvbU5vbWluYWxWYWx1ZShub21pbmFsVmFsdWUpIHtcbiAgY29uc3Qgc3RyaW5nID0gbm9taW5hbFZhbHVlLmdldFN0cmluZygpLFxuICAgICAgICBwcmltdGl2ZVN0cmluZyA9IHN0cmluZzsgIC8vL1xuXG4gIHJldHVybiBwcmltdGl2ZVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4cHJlc3Npb25TdHJpbmdGcm9tUHJvcGVydGllcyhwcm9wZXJ0aWVzKSB7XG4gIGxldCBleHByZXNzaW9uU3RyaW5nO1xuXG4gIHByb3BlcnRpZXMuZm9yRWFjaCgocHJvcGVydHkpID0+IHtcbiAgICBpZiAocHJvcGVydHkgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHByb3BlcnR5U3RyaW5nID0gcHJvcGVydHkuZ2V0U3RyaW5nKCk7XG5cbiAgICAgIGV4cHJlc3Npb25TdHJpbmcgPSBwcm9wZXJ0eVN0cmluZzsgIC8vL1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGV4cHJlc3Npb25TdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmltdGl2ZVN0cmluZ0Zyb21TdHJpbmdMaXRlcmFsKHN0cmluZ0xpdGVyYWwpIHtcbiAgY29uc3Qgc3RyaW5nID0gc3RyaW5nRnJvbVN0cmluZ0xpdGVyYWwoc3RyaW5nTGl0ZXJhbCksXG4gICAgICAgIHByaW10aXZlU3RyaW5nID0gc3RyaW5nOyAgLy8vXG5cbiAgcmV0dXJuIHByaW10aXZlU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJpbXRpdmVTdHJpbmdGcm9tTm9taW5hbFZhbHVlcyhub21pbmFsVmFsdWVzKSB7XG4gIGNvbnN0IHByaW10aXZlU3RyaW5nID0gbm9taW5hbFZhbHVlcy5yZWR1Y2UoKHByaW1pdGl2ZVN0cmluZywgbm9taW5hbFZhbHVlKSA9PiB7XG4gICAgY29uc3Qgbm9taW5hbFZhbHVlU3RyaW5nID0gbm9taW5hbFZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgcHJpbWl0aXZlU3RyaW5nID0gKHByaW1pdGl2ZVN0cmluZyAhPT0gbnVsbCkgP1xuICAgICAgICAgICAgICAgICAgICAgICBgJHtwcmltaXRpdmVTdHJpbmd9LCAke25vbWluYWxWYWx1ZVN0cmluZ31gIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbm9taW5hbFZhbHVlU3RyaW5nOyAvLy9cblxuICAgIHJldHVybiBwcmltaXRpdmVTdHJpbmc7XG4gIH0sIG51bGwpO1xuXG4gIHJldHVybiBwcmltdGl2ZVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHR5cGVTdHJpbmdGcm9tTmFtZUFuZEFyZ3VtZW50VHlwZShuYW1lLCBhcmd1bWVudFR5cGUpIHtcbiAgbGV0IHR5cGVTdHJpbmc7XG5cbiAgdHlwZVN0cmluZyA9IGAke25hbWV9YDtcblxuICBpZiAoYXJndW1lbnRUeXBlICE9PSBudWxsKSB7XG4gICAgY29uc3QgYXJndW1lbnRUeXBlU3RyaW5nID0gYXJndW1lbnRUeXBlLmdldFN0cmluZygpO1xuXG4gICAgdHlwZVN0cmluZyA9IGAke3R5cGVTdHJpbmd9JHthcmd1bWVudFR5cGVTdHJpbmd9YDtcbiAgfVxuXG4gIHJldHVybiB0eXBlU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvY2VkdXJlRGVjbGFyYXRpb25TdHJpbmdGcm9tUHJvY2VkdXJlKHByb2NlZHVyZSkge1xuICBjb25zdCB0eXBlID0gcHJvY2VkdXJlLmdldFR5cGUoKSxcbiAgICAgICAgbGFiZWwgPSBwcm9jZWR1cmUuZ2V0TGFiZWwoKSxcbiAgICAgICAgcGFyYW1ldGVycyA9IHByb2NlZHVyZS5nZXRQYXJhbWV0ZXJzKCksXG4gICAgICAgIHJldHVyblN0YXRlbWVudCA9IHByb2NlZHVyZS5nZXRSZXR1cm5TdGF0ZW1lbnQoKSxcbiAgICAgICAgdHlwZVN0cmluZyA9IHR5cGUuZ2V0U3RyaW5nKCksXG4gICAgICAgIGxhYmVsU3RyaW5nID0gbGFiZWwuZ2V0U3RyaW5nKCksXG4gICAgICAgIHBhcmFtZXRlcnNTdHJpbmcgPSBwYXJhbWV0ZXJzLmdldFN0cmluZygpLFxuICAgICAgICByZXR1cm5TdGF0ZW1lbnRTdHJpbmcgPSByZXR1cm5TdGF0ZW1lbnQuZ2V0U3RyaW5nKCksXG4gICAgICAgIHByb2NlZHVyZURlbGNhcmF0aW9uU3RyaW5nID0gYCR7dHlwZVN0cmluZ30gJHtsYWJlbFN0cmluZyB9KCR7cGFyYW1ldGVyc1N0cmluZ30pIHsgLi4uICR7cmV0dXJuU3RhdGVtZW50U3RyaW5nfSB9YDtcblxuICByZXR1cm4gcHJvY2VkdXJlRGVsY2FyYXRpb25TdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXR1cm5CbG9ja1N0cmluZ0Zyb21SZXR1cm5TdGF0ZW1lbnROb2RlKHJldHVyblN0YXRlbWVudCkge1xuICBjb25zdCByZXR1cm5TdGF0ZW1lbnRTdHJpbmcgPSByZXR1cm5TdGF0ZW1lbnQuZ2V0U3RyaW5nKCksXG4gICAgICAgIHJldHVybkJsb2NrU3RyaW5nID0gYHsgLi4uICR7cmV0dXJuU3RhdGVtZW50U3RyaW5nfSB9YDtcblxuICByZXR1cm4gcmV0dXJuQmxvY2tTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBub21pbmFsVmFsdWVQcm9wZXJ0eVN0cmluZ0Zyb21OYW1lQW5kVHlwZShuYW1lLCB0eXBlKSB7XG4gIGNvbnN0IG5hbWVTdHJpbmcgPSBuYW1lLCAgLy8vXG4gICAgICAgIHR5cGVTdHJpbmcgPSB0eXBlLmdldFN0cmluZygpLFxuICAgICAgICBub21pbmFsVmFsdWVQcm9wZXJ0eVN0cmluZyA9IGAke3R5cGVTdHJpbmd9ICR7bmFtZVN0cmluZ31gO1xuXG4gIHJldHVybiBub21pbmFsVmFsdWVQcm9wZXJ0eVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHR5cGVTdHJpbmdGcm9tVHlwZU5hbWVBbmRBcmd1bWVudFR5cGVOYW1lKHR5cGVOYW1lLCBhcmd1bWVudFR5cGVOYW1lKSB7XG4gIGxldCB0eXBlU3RyaW5nO1xuXG4gIHR5cGVTdHJpbmcgPSBgJHt0eXBlTmFtZX1gO1xuXG4gIGlmIChhcmd1bWVudFR5cGVOYW1lICE9PSBudWxsKSB7XG4gICAgdHlwZVN0cmluZyA9IGAke3R5cGVTdHJpbmd9PCR7YXJndW1lbnRUeXBlTmFtZX0+YDtcbiAgfVxuXG4gIHJldHVybiB0eXBlU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFyaWFibGVBc3NpZ25tZW50U3RyaW5nRnJvbVR5cGVBbmRWYXJpYWJsZSh0eXBlLCB2YXJpYWJsZSkge1xuICBjb25zdCB0eXBlU3RyaW5nID0gdHlwZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgdmFyaWFibGVTdHJpbmcgPSB2YXJpYWJsZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgdmFyaWFibGVBc3NpZ25tZW50U3RyaW5nID0gYCR7dHlwZVN0cmluZ30gJHt2YXJpYWJsZVN0cmluZ30gPSAuLi4gO2A7XG5cbiAgcmV0dXJuIHZhcmlhYmxlQXNzaWdubWVudFN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNvbWVTdHJpbmdGcm9tVmFyaWFibGVBbmRBbm9ueW1vdXNQcm9jZWR1cmUodmFyaWFibGUsIGFub255bW91c1Byb2NlZHVyZSkge1xuICBjb25zdCB2YXJpYWJsZVN0cmluZyA9IHZhcmlhYmxlLmdldFN0cmluZygpLFxuICAgICAgICBhbm9ueW1vdXNQcm9jZWR1cmVTdHJpbmcgPSBhbm9ueW1vdXNQcm9jZWR1cmUuZ2V0U3RyaW5nKCksXG4gICAgICAgIHNvbWVTdHJpbmcgPSBgU29tZSgke3ZhcmlhYmxlU3RyaW5nfSwgJHthbm9ueW1vdXNQcm9jZWR1cmVTdHJpbmd9KSBgO1xuXG4gIHJldHVybiBzb21lU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXZlcnlTdHJpbmdGcm9tVmFyaWFibGVBbmRBbm9ueW1vdXNQcm9jZWR1cmUodmFyaWFibGUsIGFub255bW91c1Byb2NlZHVyZSkge1xuICBjb25zdCB2YXJpYWJsZVN0cmluZyA9IHZhcmlhYmxlLmdldFN0cmluZygpLFxuICAgICAgICBhbm9ueW1vdXNQcm9jZWR1cmVTdHJpbmcgPSBhbm9ueW1vdXNQcm9jZWR1cmUuZ2V0U3RyaW5nKCksXG4gICAgICAgIGV2ZXJ5U3RyaW5nID0gYEV2ZXJ5KCR7dmFyaWFibGVTdHJpbmd9LCAke2Fub255bW91c1Byb2NlZHVyZVN0cmluZ30pIGA7XG5cbiAgcmV0dXJuIGV2ZXJ5U3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFyaWFibGVBc3NpZ25tZW50U3RyaW5nRnJvbVZhcmlhYmxlQXNzaWdubWVudCh2YXJpYWJsZUFzc2lnbm1lbnQpIHtcbiAgY29uc3QgdmFyaWFibGUgPSB2YXJpYWJsZUFzc2lnbm1lbnQuZ2V0VmFyaWFibGUoKSxcbiAgICAgICAgdmFyaWFibGVTdHJpbmcgPSB2YXJpYWJsZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgdmFyaWFibGVBc3NpZ25tZW50U3RyaW5nID0gYCR7dmFyaWFibGVTdHJpbmd9ID0gLi4uYDtcblxuICByZXR1cm4gdmFyaWFibGVBc3NpZ25tZW50U3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvY2VkdXJlU3RyaW5nRnJvbVR5cGVMYWJlbFBhcmFtZXRlcnNBbmRSZXR1cm5CbG9jayh0eXBlLCBsYWJlbCwgcGFyYW1ldGVycywgcmV0dXJuQmxvY2spIHtcbiAgY29uc3QgdHlwZVN0cmluZyA9IHR5cGUuZ2V0U3RyaW5nKCksXG4gICAgICAgIGxhYmVsU3RyaW5nID0gbGFiZWwuZ2V0U3RyaW5nKCksXG4gICAgICAgIHBhcmFtZXRlcnNTdHJpbmcgPSBwYXJhbWV0ZXJzLmdldFN0cmluZygpLFxuICAgICAgICByZXR1cm5CbG9ja1N0cmluZyA9IHJldHVybkJsb2NrLmdldFN0cmluZygpLFxuICAgICAgICBwcm9jZWR1cmVTdHJpbmcgPSBgJHt0eXBlU3RyaW5nfSAke2xhYmVsU3RyaW5nfSgke3BhcmFtZXRlcnNTdHJpbmd9KSAke3JldHVybkJsb2NrU3RyaW5nfWA7XG5cbiAgcmV0dXJuIHByb2NlZHVyZVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFub255bW91c1Byb2NlZHVyZVN0cmluZ0Zyb21UeXBlUGFyYW1ldGVyc0FuZFJldHVybkJsb2NrKHR5cGUsIHBhcmFtZXRlcnMsIHJldHVybkJsb2NrKSB7XG4gIGNvbnN0IHR5cGVTdHJpbmcgPSB0eXBlLmdldFN0cmluZygpLFxuICAgICAgICBwYXJhbWV0ZXJzU3RyaW5nID0gcGFyYW1ldGVycy5nZXRTdHJpbmcoKSxcbiAgICAgICAgcmV0dXJuQmxvY2tTdHJpbmcgPSByZXR1cm5CbG9jay5nZXRTdHJpbmcoKSxcbiAgICAgICAgYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nID0gYCR7dHlwZVN0cmluZ30gKCR7cGFyYW1ldGVyc1N0cmluZ30pICR7cmV0dXJuQmxvY2tTdHJpbmd9YDtcblxuICByZXR1cm4gYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbm9taW5hbFZhbHVlUHJvcGVydGllc1N0cmluZ0Zyb21Ob21pbmFsVmFsdWVQcm9wZXJ0aWVzQXJyYXkobm9taW5hbFZhbHVlUHJvcGVydGllc0FycmF5KSB7XG4gIGNvbnN0IG5vbWluYWxWYWx1ZVByb3BlcnRpZXNTdHJpbmcgPSBub21pbmFsVmFsdWVQcm9wZXJ0aWVzQXJyYXkucmVkdWNlKChub21pbmFsVmFsdWVQcm9wZXJ0aWVzU3RyaW5nLCBub21pbmFsVmFsdWVQcm9wZXJ0eSkgPT4ge1xuICAgIGNvbnN0IG5vbWluYWxWYWx1ZVByb3BlcnR5U3RyaW5nID0gbm9taW5hbFZhbHVlUHJvcGVydHkuZ2V0U3RyaW5nKCk7XG5cbiAgICBub21pbmFsVmFsdWVQcm9wZXJ0aWVzU3RyaW5nID0gKG5vbWluYWxWYWx1ZVByb3BlcnRpZXNTdHJpbmcgPT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub21pbmFsVmFsdWVQcm9wZXJ0eVN0cmluZyA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAke25vbWluYWxWYWx1ZVByb3BlcnRpZXNTdHJpbmd9LCAke25vbWluYWxWYWx1ZVByb3BlcnR5U3RyaW5nfWA7XG5cbiAgICByZXR1cm4gbm9taW5hbFZhbHVlUHJvcGVydGllc1N0cmluZztcbiAgfSwgbnVsbCk7XG5cbiAgcmV0dXJuIG5vbWluYWxWYWx1ZVByb3BlcnRpZXNTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmdGcm9tVHlwZUFuZFZhcmlhYmxlQXNzaWdubWVudHNBcnJheSh0eXBlLCB2YXJpYWJsZUFzc2lnbm1lbnRzQXJyYXkpIHtcbiAgbGV0IHZhcmlhYmxlQXNzaWdubWVudHNTdHJpbmc7XG5cbiAgY29uc3QgdHlwZVN0cmluZyA9IHR5cGUuZ2V0U3RyaW5nKCk7XG5cbiAgdmFyaWFibGVBc3NpZ25tZW50c1N0cmluZyA9IHZhcmlhYmxlQXNzaWdubWVudHNBcnJheS5yZWR1Y2UoKHZhcmlhYmxlQXNzaWdubWVudHNTdHJpbmcsIHZhcmlhYmxlQXNzaWdubWVudCkgPT4ge1xuICAgIGNvbnN0IHZhcmlhYmxlQXNzaWdubWVudFN0cmluZyA9IHZhcmlhYmxlQXNzaWdubWVudFN0cmluZ0Zyb21WYXJpYWJsZUFzc2lnbm1lbnQodmFyaWFibGVBc3NpZ25tZW50KTtcblxuICAgIHZhcmlhYmxlQXNzaWdubWVudHNTdHJpbmcgPSAodmFyaWFibGVBc3NpZ25tZW50c1N0cmluZyA9PT0gbnVsbCkgP1xuICAgICAgdmFyaWFibGVBc3NpZ25tZW50U3RyaW5nIDpcbiAgICAgIGAke3ZhcmlhYmxlQXNzaWdubWVudHNTdHJpbmd9LCAke3ZhcmlhYmxlQXNzaWdubWVudFN0cmluZ31gO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlQXNzaWdubWVudHNTdHJpbmc7XG4gIH0sIG51bGwpOyAvLy9cblxuICB2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nID0gYCR7dHlwZVN0cmluZ30gJHt2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nfSA7YDsgLy8vXG5cbiAgcmV0dXJuIHZhcmlhYmxlQXNzaWdubWVudHNTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWR1Y2VTdHJpbmdGcm9tVmFyaWFibGVJbml0aWFsRXhwcmVzc2lvbkFuZEFub255bW91c1Byb2NlZHVyZSh2YXJpYWJsZSwgaW5pdGlhbEV4cHJlc3Npb24sIGFub255bW91c1Byb2NlZHVyZSkge1xuICBjb25zdCB2YXJpYWJsZVN0cmluZyA9IHZhcmlhYmxlLmdldFN0cmluZygpLFxuICAgICAgICBpbml0aWFsRXhwcmVzc2lvblN0cmluZyA9IGluaXRpYWxFeHByZXNzaW9uLmdldFN0cmluZygpLFxuICAgICAgICBhbm9ueW1vdXNQcm9jZWR1cmVTdHJpbmcgPSBhbm9ueW1vdXNQcm9jZWR1cmUuZ2V0U3RyaW5nKCksXG4gICAgICAgIHJlZHVjZVN0cmluZyA9IGBSZWR1Y2UoJHt2YXJpYWJsZVN0cmluZ30sICR7YW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nfSwgJHtpbml0aWFsRXhwcmVzc2lvblN0cmluZ30pYDtcblxuICByZXR1cm4gcmVkdWNlU3RyaW5nO1xufVxuXG4iXSwibmFtZXMiOlsiYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nRnJvbVR5cGVQYXJhbWV0ZXJzQW5kUmV0dXJuQmxvY2siLCJldmVyeVN0cmluZ0Zyb21WYXJpYWJsZUFuZEFub255bW91c1Byb2NlZHVyZSIsImV4cHJlc3Npb25TdHJpbmdGcm9tUHJvcGVydGllcyIsIm5vbWluYWxWYWx1ZVByb3BlcnRpZXNTdHJpbmdGcm9tTm9taW5hbFZhbHVlUHJvcGVydGllc0FycmF5Iiwibm9taW5hbFZhbHVlUHJvcGVydHlTdHJpbmdGcm9tTmFtZUFuZFR5cGUiLCJwcmltdGl2ZVN0cmluZ0Zyb21Cb29sZWFuIiwicHJpbXRpdmVTdHJpbmdGcm9tTm9taW5hbFZhbHVlIiwicHJpbXRpdmVTdHJpbmdGcm9tTm9taW5hbFZhbHVlcyIsInByaW10aXZlU3RyaW5nRnJvbVN0cmluZ0xpdGVyYWwiLCJwcm9jZWR1cmVEZWNsYXJhdGlvblN0cmluZ0Zyb21Qcm9jZWR1cmUiLCJwcm9jZWR1cmVTdHJpbmdGcm9tVHlwZUxhYmVsUGFyYW1ldGVyc0FuZFJldHVybkJsb2NrIiwicmVkdWNlU3RyaW5nRnJvbVZhcmlhYmxlSW5pdGlhbEV4cHJlc3Npb25BbmRBbm9ueW1vdXNQcm9jZWR1cmUiLCJyZXR1cm5CbG9ja1N0cmluZ0Zyb21SZXR1cm5TdGF0ZW1lbnROb2RlIiwic29tZVN0cmluZ0Zyb21WYXJpYWJsZUFuZEFub255bW91c1Byb2NlZHVyZSIsInRlcm1TdHJpbmdGcm9tUHJvcGVydGllcyIsInRlcm1zU3RyaW5nRnJvbVRlcm1zQXJyYXkiLCJ0ZXJuYXJ5U3RyaW5nRnJvbVRlcm0iLCJ0eXBlU3RyaW5nRnJvbU5hbWVBbmRBcmd1bWVudFR5cGUiLCJ0eXBlU3RyaW5nRnJvbVR5cGVOYW1lQW5kQXJndW1lbnRUeXBlTmFtZSIsInZhbHVlU3RyaW5nRnJvbVByb3BlcnRpZXMiLCJ2YWx1ZXNTdHJpbmdGcm9tVmFsdWVzQXJyYXkiLCJ2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmdGcm9tVHlwZUFuZFZhcmlhYmxlIiwidmFyaWFibGVBc3NpZ25tZW50U3RyaW5nRnJvbVR5cGVBbmRWYXJpYWJsZUFzc2lnbm1lbnRzQXJyYXkiLCJ2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmdGcm9tVmFyaWFibGVBc3NpZ25tZW50IiwidmFyaWFibGVTdHJpbmdGcm9tTmFtZSIsInRlcm0iLCJ0ZXJtU3RyaW5nIiwiZ2V0U3RyaW5nIiwidGVybmFyeVN0cmluZyIsIm5hbWUiLCJ2YXJpYWJsZVN0cmluZyIsInByb3BlcnRpZXMiLCJmb3JFYWNoIiwicHJvcGVydHkiLCJwcm9wZXJ0eVN0cmluZyIsInZhbHVlU3RyaW5nIiwiYm9vbGVhbiIsImV4cHJlc3NzaW9uU3RyaW5nIiwidGVybXNBcnJheSIsInRlcm1zU3RyaW5nIiwicmVkdWNlIiwidmFsdWVzQXJyYXkiLCJ2YWx1ZXNTdHJpbmciLCJ2YWx1ZSIsIm5vbWluYWxWYWx1ZSIsInN0cmluZyIsInByaW10aXZlU3RyaW5nIiwiZXhwcmVzc2lvblN0cmluZyIsInN0cmluZ0xpdGVyYWwiLCJzdHJpbmdGcm9tU3RyaW5nTGl0ZXJhbCIsIm5vbWluYWxWYWx1ZXMiLCJwcmltaXRpdmVTdHJpbmciLCJub21pbmFsVmFsdWVTdHJpbmciLCJhcmd1bWVudFR5cGUiLCJ0eXBlU3RyaW5nIiwiYXJndW1lbnRUeXBlU3RyaW5nIiwicHJvY2VkdXJlIiwidHlwZSIsImdldFR5cGUiLCJsYWJlbCIsImdldExhYmVsIiwicGFyYW1ldGVycyIsImdldFBhcmFtZXRlcnMiLCJyZXR1cm5TdGF0ZW1lbnQiLCJnZXRSZXR1cm5TdGF0ZW1lbnQiLCJsYWJlbFN0cmluZyIsInBhcmFtZXRlcnNTdHJpbmciLCJyZXR1cm5TdGF0ZW1lbnRTdHJpbmciLCJwcm9jZWR1cmVEZWxjYXJhdGlvblN0cmluZyIsInJldHVybkJsb2NrU3RyaW5nIiwibmFtZVN0cmluZyIsIm5vbWluYWxWYWx1ZVByb3BlcnR5U3RyaW5nIiwidHlwZU5hbWUiLCJhcmd1bWVudFR5cGVOYW1lIiwidmFyaWFibGUiLCJ2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmciLCJhbm9ueW1vdXNQcm9jZWR1cmUiLCJhbm9ueW1vdXNQcm9jZWR1cmVTdHJpbmciLCJzb21lU3RyaW5nIiwiZXZlcnlTdHJpbmciLCJ2YXJpYWJsZUFzc2lnbm1lbnQiLCJnZXRWYXJpYWJsZSIsInJldHVybkJsb2NrIiwicHJvY2VkdXJlU3RyaW5nIiwibm9taW5hbFZhbHVlUHJvcGVydGllc0FycmF5Iiwibm9taW5hbFZhbHVlUHJvcGVydGllc1N0cmluZyIsIm5vbWluYWxWYWx1ZVByb3BlcnR5IiwidmFyaWFibGVBc3NpZ25tZW50c0FycmF5IiwidmFyaWFibGVBc3NpZ25tZW50c1N0cmluZyIsImluaXRpYWxFeHByZXNzaW9u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
|
|
228
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc3RyaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBzdHJpbmdGcm9tU3RyaW5nTGl0ZXJhbCB9IGZyb20gXCIuL3N0cmluZ0xpdGVyYWxcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHRlcm5hcnlTdHJpbmdGcm9tVGVybSh0ZXJtKSB7XG4gIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpLFxuICAgICAgICB0ZXJuYXJ5U3RyaW5nID0gYGlmICgke3Rlcm1TdHJpbmd9KSB7IC4uLiB9IGVsc2UgeyAuLi4gfWA7XG5cbiAgcmV0dXJuIHRlcm5hcnlTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YXJpYWJsZVN0cmluZ0Zyb21OYW1lKG5hbWUpIHtcbiAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSBuYW1lOyAgLy8vXG5cbiAgcmV0dXJuIHZhcmlhYmxlU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGVybVN0cmluZ0Zyb21Qcm9wZXJ0aWVzKHByb3BlcnRpZXMpIHtcbiAgbGV0IHRlcm1TdHJpbmc7XG5cbiAgcHJvcGVydGllcy5mb3JFYWNoKChwcm9wZXJ0eSkgPT4ge1xuICAgIGlmIChwcm9wZXJ0eSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgcHJvcGVydHlTdHJpbmcgPSBwcm9wZXJ0eS5nZXRTdHJpbmcoKTtcblxuICAgICAgdGVybVN0cmluZyA9IHByb3BlcnR5U3RyaW5nOyAgLy8vXG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gdGVybVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbHVlU3RyaW5nRnJvbVByb3BlcnRpZXMocHJvcGVydGllcykge1xuICBsZXQgdmFsdWVTdHJpbmc7XG5cbiAgcHJvcGVydGllcy5mb3JFYWNoKChwcm9wZXJ0eSkgPT4ge1xuICAgIGlmIChwcm9wZXJ0eSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgcHJvcGVydHlTdHJpbmcgPSBwcm9wZXJ0eS5nZXRTdHJpbmcoKTtcblxuICAgICAgdmFsdWVTdHJpbmcgPSBwcm9wZXJ0eVN0cmluZzsgIC8vL1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHZhbHVlU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJpbXRpdmVTdHJpbmdGcm9tQm9vbGVhbihib29sZWFuKSB7XG4gIGNvbnN0IGV4cHJlc3NzaW9uU3RyaW5nID0gYCR7Ym9vbGVhbn1gO1xuXG4gIHJldHVybiBleHByZXNzc2lvblN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRlcm1zU3RyaW5nRnJvbVRlcm1zQXJyYXkodGVybXNBcnJheSkge1xuICBjb25zdCB0ZXJtc1N0cmluZyA9IHRlcm1zQXJyYXkucmVkdWNlKCh0ZXJtc1N0cmluZywgdGVybSkgPT4ge1xuICAgIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpO1xuXG4gICAgdGVybXNTdHJpbmcgPSAodGVybXNTdHJpbmcgPT09IG51bGwpID9cbiAgICAgIHRlcm1TdHJpbmcgOlxuICAgICAgYCR7dGVybXNTdHJpbmd9LCAke3Rlcm1TdHJpbmd9YDtcblxuICAgIHJldHVybiB0ZXJtc1N0cmluZztcbiAgfSwgbnVsbCk7IC8vL1xuXG4gIHJldHVybiB0ZXJtc1N0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbHVlc1N0cmluZ0Zyb21WYWx1ZXNBcnJheSh2YWx1ZXNBcnJheSkge1xuICBjb25zdCB2YWx1ZXNTdHJpbmcgPSB2YWx1ZXNBcnJheS5yZWR1Y2UoKHZhbHVlc1N0cmluZywgdmFsdWUpID0+IHtcbiAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgdmFsdWVzU3RyaW5nID0gKHZhbHVlc1N0cmluZyA9PT0gbnVsbCkgP1xuICAgICAgICAgICAgICAgICAgICAgdmFsdWVTdHJpbmcgOlxuICAgICAgICAgICAgICAgICAgICAgICBgJHt2YWx1ZXNTdHJpbmd9LCAke3ZhbHVlU3RyaW5nfWA7XG5cbiAgICByZXR1cm4gdmFsdWVzU3RyaW5nO1xuICB9LCBudWxsKTsgLy8vXG5cbiAgcmV0dXJuIHZhbHVlc1N0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByaW10aXZlU3RyaW5nRnJvbU5vbWluYWxWYWx1ZShub21pbmFsVmFsdWUpIHtcbiAgY29uc3Qgc3RyaW5nID0gbm9taW5hbFZhbHVlLmdldFN0cmluZygpLFxuICAgICAgICBwcmltdGl2ZVN0cmluZyA9IHN0cmluZzsgIC8vL1xuXG4gIHJldHVybiBwcmltdGl2ZVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4cHJlc3Npb25TdHJpbmdGcm9tUHJvcGVydGllcyhwcm9wZXJ0aWVzKSB7XG4gIGxldCBleHByZXNzaW9uU3RyaW5nO1xuXG4gIHByb3BlcnRpZXMuZm9yRWFjaCgocHJvcGVydHkpID0+IHtcbiAgICBpZiAocHJvcGVydHkgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHByb3BlcnR5U3RyaW5nID0gcHJvcGVydHkuZ2V0U3RyaW5nKCk7XG5cbiAgICAgIGV4cHJlc3Npb25TdHJpbmcgPSBwcm9wZXJ0eVN0cmluZzsgIC8vL1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGV4cHJlc3Npb25TdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmltdGl2ZVN0cmluZ0Zyb21TdHJpbmdMaXRlcmFsKHN0cmluZ0xpdGVyYWwpIHtcbiAgY29uc3Qgc3RyaW5nID0gc3RyaW5nRnJvbVN0cmluZ0xpdGVyYWwoc3RyaW5nTGl0ZXJhbCksXG4gICAgICAgIHByaW10aXZlU3RyaW5nID0gc3RyaW5nOyAgLy8vXG5cbiAgcmV0dXJuIHByaW10aXZlU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJpbXRpdmVTdHJpbmdGcm9tTm9taW5hbFZhbHVlcyhub21pbmFsVmFsdWVzKSB7XG4gIGNvbnN0IHByaW10aXZlU3RyaW5nID0gbm9taW5hbFZhbHVlcy5yZWR1Y2UoKHByaW1pdGl2ZVN0cmluZywgbm9taW5hbFZhbHVlKSA9PiB7XG4gICAgY29uc3Qgbm9taW5hbFZhbHVlU3RyaW5nID0gbm9taW5hbFZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgcHJpbWl0aXZlU3RyaW5nID0gKHByaW1pdGl2ZVN0cmluZyAhPT0gbnVsbCkgP1xuICAgICAgICAgICAgICAgICAgICAgICBgJHtwcmltaXRpdmVTdHJpbmd9LCAke25vbWluYWxWYWx1ZVN0cmluZ31gIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbm9taW5hbFZhbHVlU3RyaW5nOyAvLy9cblxuICAgIHJldHVybiBwcmltaXRpdmVTdHJpbmc7XG4gIH0sIG51bGwpO1xuXG4gIHJldHVybiBwcmltdGl2ZVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb2NlZHVyZURlY2xhcmF0aW9uU3RyaW5nRnJvbVByb2NlZHVyZShwcm9jZWR1cmUpIHtcbiAgY29uc3QgdHlwZSA9IHByb2NlZHVyZS5nZXRUeXBlKCksXG4gICAgICAgIGxhYmVsID0gcHJvY2VkdXJlLmdldExhYmVsKCksXG4gICAgICAgIHBhcmFtZXRlcnMgPSBwcm9jZWR1cmUuZ2V0UGFyYW1ldGVycygpLFxuICAgICAgICByZXR1cm5TdGF0ZW1lbnQgPSBwcm9jZWR1cmUuZ2V0UmV0dXJuU3RhdGVtZW50KCksXG4gICAgICAgIHR5cGVTdHJpbmcgPSB0eXBlLmdldFN0cmluZygpLFxuICAgICAgICBsYWJlbFN0cmluZyA9IGxhYmVsLmdldFN0cmluZygpLFxuICAgICAgICBwYXJhbWV0ZXJzU3RyaW5nID0gcGFyYW1ldGVycy5nZXRTdHJpbmcoKSxcbiAgICAgICAgcmV0dXJuU3RhdGVtZW50U3RyaW5nID0gcmV0dXJuU3RhdGVtZW50LmdldFN0cmluZygpLFxuICAgICAgICBwcm9jZWR1cmVEZWxjYXJhdGlvblN0cmluZyA9IGAke3R5cGVTdHJpbmd9ICR7bGFiZWxTdHJpbmcgfSgke3BhcmFtZXRlcnNTdHJpbmd9KSB7IC4uLiAke3JldHVyblN0YXRlbWVudFN0cmluZ30gfWA7XG5cbiAgcmV0dXJuIHByb2NlZHVyZURlbGNhcmF0aW9uU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmV0dXJuQmxvY2tTdHJpbmdGcm9tUmV0dXJuU3RhdGVtZW50Tm9kZShyZXR1cm5TdGF0ZW1lbnQpIHtcbiAgY29uc3QgcmV0dXJuU3RhdGVtZW50U3RyaW5nID0gcmV0dXJuU3RhdGVtZW50LmdldFN0cmluZygpLFxuICAgICAgICByZXR1cm5CbG9ja1N0cmluZyA9IGB7IC4uLiAke3JldHVyblN0YXRlbWVudFN0cmluZ30gfWA7XG5cbiAgcmV0dXJuIHJldHVybkJsb2NrU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbm9taW5hbFZhbHVlUHJvcGVydHlTdHJpbmdGcm9tTmFtZUFuZFR5cGUobmFtZSwgdHlwZSkge1xuICBjb25zdCBuYW1lU3RyaW5nID0gbmFtZSwgIC8vL1xuICAgICAgICB0eXBlU3RyaW5nID0gdHlwZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgbm9taW5hbFZhbHVlUHJvcGVydHlTdHJpbmcgPSBgJHt0eXBlU3RyaW5nfSAke25hbWVTdHJpbmd9YDtcblxuICByZXR1cm4gbm9taW5hbFZhbHVlUHJvcGVydHlTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0eXBlU3RyaW5nRnJvbVR5cGVOYW1lQW5kQXJndW1lbnRUeXBlTmFtZSh0eXBlTmFtZSwgYXJndW1lbnRUeXBlTmFtZSkge1xuICBsZXQgdHlwZVN0cmluZztcblxuICB0eXBlU3RyaW5nID0gYCR7dHlwZU5hbWV9YDtcblxuICBpZiAoYXJndW1lbnRUeXBlTmFtZSAhPT0gbnVsbCkge1xuICAgIHR5cGVTdHJpbmcgPSBgJHt0eXBlU3RyaW5nfTwke2FyZ3VtZW50VHlwZU5hbWV9PmA7XG4gIH1cblxuICByZXR1cm4gdHlwZVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhcmlhYmxlQXNzaWdubWVudFN0cmluZ0Zyb21UeXBlQW5kVmFyaWFibGUodHlwZSwgdmFyaWFibGUpIHtcbiAgY29uc3QgdHlwZVN0cmluZyA9IHR5cGUuZ2V0U3RyaW5nKCksXG4gICAgICAgIHZhcmlhYmxlU3RyaW5nID0gdmFyaWFibGUuZ2V0U3RyaW5nKCksXG4gICAgICAgIHZhcmlhYmxlQXNzaWdubWVudFN0cmluZyA9IGAke3R5cGVTdHJpbmd9ICR7dmFyaWFibGVTdHJpbmd9ID0gLi4uIDtgO1xuXG4gIHJldHVybiB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzb21lU3RyaW5nRnJvbVZhcmlhYmxlQW5kQW5vbnltb3VzUHJvY2VkdXJlKHZhcmlhYmxlLCBhbm9ueW1vdXNQcm9jZWR1cmUpIHtcbiAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSB2YXJpYWJsZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nID0gYW5vbnltb3VzUHJvY2VkdXJlLmdldFN0cmluZygpLFxuICAgICAgICBzb21lU3RyaW5nID0gYFNvbWUoJHt2YXJpYWJsZVN0cmluZ30sICR7YW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nfSkgYDtcblxuICByZXR1cm4gc29tZVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV2ZXJ5U3RyaW5nRnJvbVZhcmlhYmxlQW5kQW5vbnltb3VzUHJvY2VkdXJlKHZhcmlhYmxlLCBhbm9ueW1vdXNQcm9jZWR1cmUpIHtcbiAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSB2YXJpYWJsZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nID0gYW5vbnltb3VzUHJvY2VkdXJlLmdldFN0cmluZygpLFxuICAgICAgICBldmVyeVN0cmluZyA9IGBFdmVyeSgke3ZhcmlhYmxlU3RyaW5nfSwgJHthbm9ueW1vdXNQcm9jZWR1cmVTdHJpbmd9KSBgO1xuXG4gIHJldHVybiBldmVyeVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhcmlhYmxlQXNzaWdubWVudFN0cmluZ0Zyb21WYXJpYWJsZUFzc2lnbm1lbnQodmFyaWFibGVBc3NpZ25tZW50KSB7XG4gIGNvbnN0IHZhcmlhYmxlID0gdmFyaWFibGVBc3NpZ25tZW50LmdldFZhcmlhYmxlKCksXG4gICAgICAgIHZhcmlhYmxlU3RyaW5nID0gdmFyaWFibGUuZ2V0U3RyaW5nKCksXG4gICAgICAgIHZhcmlhYmxlQXNzaWdubWVudFN0cmluZyA9IGAke3ZhcmlhYmxlU3RyaW5nfSA9IC4uLmA7XG5cbiAgcmV0dXJuIHZhcmlhYmxlQXNzaWdubWVudFN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb2NlZHVyZVN0cmluZ0Zyb21UeXBlTGFiZWxQYXJhbWV0ZXJzQW5kUmV0dXJuQmxvY2sodHlwZSwgbGFiZWwsIHBhcmFtZXRlcnMsIHJldHVybkJsb2NrKSB7XG4gIGNvbnN0IHR5cGVTdHJpbmcgPSB0eXBlLmdldFN0cmluZygpLFxuICAgICAgICBsYWJlbFN0cmluZyA9IGxhYmVsLmdldFN0cmluZygpLFxuICAgICAgICBwYXJhbWV0ZXJzU3RyaW5nID0gcGFyYW1ldGVycy5nZXRTdHJpbmcoKSxcbiAgICAgICAgcmV0dXJuQmxvY2tTdHJpbmcgPSByZXR1cm5CbG9jay5nZXRTdHJpbmcoKSxcbiAgICAgICAgcHJvY2VkdXJlU3RyaW5nID0gYCR7dHlwZVN0cmluZ30gJHtsYWJlbFN0cmluZ30oJHtwYXJhbWV0ZXJzU3RyaW5nfSkgJHtyZXR1cm5CbG9ja1N0cmluZ31gO1xuXG4gIHJldHVybiBwcm9jZWR1cmVTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhbm9ueW1vdXNQcm9jZWR1cmVTdHJpbmdGcm9tVHlwZVBhcmFtZXRlcnNBbmRSZXR1cm5CbG9jayh0eXBlLCBwYXJhbWV0ZXJzLCByZXR1cm5CbG9jaykge1xuICBjb25zdCB0eXBlU3RyaW5nID0gdHlwZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgcGFyYW1ldGVyc1N0cmluZyA9IHBhcmFtZXRlcnMuZ2V0U3RyaW5nKCksXG4gICAgICAgIHJldHVybkJsb2NrU3RyaW5nID0gcmV0dXJuQmxvY2suZ2V0U3RyaW5nKCksXG4gICAgICAgIGFub255bW91c1Byb2NlZHVyZVN0cmluZyA9IGAke3R5cGVTdHJpbmd9ICgke3BhcmFtZXRlcnNTdHJpbmd9KSAke3JldHVybkJsb2NrU3RyaW5nfWA7XG5cbiAgcmV0dXJuIGFub255bW91c1Byb2NlZHVyZVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vbWluYWxWYWx1ZVByb3BlcnRpZXNTdHJpbmdGcm9tTm9taW5hbFZhbHVlUHJvcGVydGllc0FycmF5KG5vbWluYWxWYWx1ZVByb3BlcnRpZXNBcnJheSkge1xuICBjb25zdCBub21pbmFsVmFsdWVQcm9wZXJ0aWVzU3RyaW5nID0gbm9taW5hbFZhbHVlUHJvcGVydGllc0FycmF5LnJlZHVjZSgobm9taW5hbFZhbHVlUHJvcGVydGllc1N0cmluZywgbm9taW5hbFZhbHVlUHJvcGVydHkpID0+IHtcbiAgICBjb25zdCBub21pbmFsVmFsdWVQcm9wZXJ0eVN0cmluZyA9IG5vbWluYWxWYWx1ZVByb3BlcnR5LmdldFN0cmluZygpO1xuXG4gICAgbm9taW5hbFZhbHVlUHJvcGVydGllc1N0cmluZyA9IChub21pbmFsVmFsdWVQcm9wZXJ0aWVzU3RyaW5nID09PSBudWxsKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9taW5hbFZhbHVlUHJvcGVydHlTdHJpbmcgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHtub21pbmFsVmFsdWVQcm9wZXJ0aWVzU3RyaW5nfSwgJHtub21pbmFsVmFsdWVQcm9wZXJ0eVN0cmluZ31gO1xuXG4gICAgcmV0dXJuIG5vbWluYWxWYWx1ZVByb3BlcnRpZXNTdHJpbmc7XG4gIH0sIG51bGwpO1xuXG4gIHJldHVybiBub21pbmFsVmFsdWVQcm9wZXJ0aWVzU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFyaWFibGVBc3NpZ25tZW50U3RyaW5nRnJvbVR5cGVBbmRWYXJpYWJsZUFzc2lnbm1lbnRzQXJyYXkodHlwZSwgdmFyaWFibGVBc3NpZ25tZW50c0FycmF5KSB7XG4gIGxldCB2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nO1xuXG4gIGNvbnN0IHR5cGVTdHJpbmcgPSB0eXBlLmdldFN0cmluZygpO1xuXG4gIHZhcmlhYmxlQXNzaWdubWVudHNTdHJpbmcgPSB2YXJpYWJsZUFzc2lnbm1lbnRzQXJyYXkucmVkdWNlKCh2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nLCB2YXJpYWJsZUFzc2lnbm1lbnQpID0+IHtcbiAgICBjb25zdCB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmcgPSB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmdGcm9tVmFyaWFibGVBc3NpZ25tZW50KHZhcmlhYmxlQXNzaWdubWVudCk7XG5cbiAgICB2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nID0gKHZhcmlhYmxlQXNzaWdubWVudHNTdHJpbmcgPT09IG51bGwpID9cbiAgICAgIHZhcmlhYmxlQXNzaWdubWVudFN0cmluZyA6XG4gICAgICBgJHt2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nfSwgJHt2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmd9YDtcblxuICAgIHJldHVybiB2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nO1xuICB9LCBudWxsKTsgLy8vXG5cbiAgdmFyaWFibGVBc3NpZ25tZW50c1N0cmluZyA9IGAke3R5cGVTdHJpbmd9ICR7dmFyaWFibGVBc3NpZ25tZW50c1N0cmluZ30gO2A7IC8vL1xuXG4gIHJldHVybiB2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVkdWNlU3RyaW5nRnJvbVZhcmlhYmxlSW5pdGlhbEV4cHJlc3Npb25BbmRBbm9ueW1vdXNQcm9jZWR1cmUodmFyaWFibGUsIGluaXRpYWxFeHByZXNzaW9uLCBhbm9ueW1vdXNQcm9jZWR1cmUpIHtcbiAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSB2YXJpYWJsZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgaW5pdGlhbEV4cHJlc3Npb25TdHJpbmcgPSBpbml0aWFsRXhwcmVzc2lvbi5nZXRTdHJpbmcoKSxcbiAgICAgICAgYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nID0gYW5vbnltb3VzUHJvY2VkdXJlLmdldFN0cmluZygpLFxuICAgICAgICByZWR1Y2VTdHJpbmcgPSBgUmVkdWNlKCR7dmFyaWFibGVTdHJpbmd9LCAke2Fub255bW91c1Byb2NlZHVyZVN0cmluZ30sICR7aW5pdGlhbEV4cHJlc3Npb25TdHJpbmd9KWA7XG5cbiAgcmV0dXJuIHJlZHVjZVN0cmluZztcbn1cblxuIl0sIm5hbWVzIjpbImFub255bW91c1Byb2NlZHVyZVN0cmluZ0Zyb21UeXBlUGFyYW1ldGVyc0FuZFJldHVybkJsb2NrIiwiZXZlcnlTdHJpbmdGcm9tVmFyaWFibGVBbmRBbm9ueW1vdXNQcm9jZWR1cmUiLCJleHByZXNzaW9uU3RyaW5nRnJvbVByb3BlcnRpZXMiLCJub21pbmFsVmFsdWVQcm9wZXJ0aWVzU3RyaW5nRnJvbU5vbWluYWxWYWx1ZVByb3BlcnRpZXNBcnJheSIsIm5vbWluYWxWYWx1ZVByb3BlcnR5U3RyaW5nRnJvbU5hbWVBbmRUeXBlIiwicHJpbXRpdmVTdHJpbmdGcm9tQm9vbGVhbiIsInByaW10aXZlU3RyaW5nRnJvbU5vbWluYWxWYWx1ZSIsInByaW10aXZlU3RyaW5nRnJvbU5vbWluYWxWYWx1ZXMiLCJwcmltdGl2ZVN0cmluZ0Zyb21TdHJpbmdMaXRlcmFsIiwicHJvY2VkdXJlRGVjbGFyYXRpb25TdHJpbmdGcm9tUHJvY2VkdXJlIiwicHJvY2VkdXJlU3RyaW5nRnJvbVR5cGVMYWJlbFBhcmFtZXRlcnNBbmRSZXR1cm5CbG9jayIsInJlZHVjZVN0cmluZ0Zyb21WYXJpYWJsZUluaXRpYWxFeHByZXNzaW9uQW5kQW5vbnltb3VzUHJvY2VkdXJlIiwicmV0dXJuQmxvY2tTdHJpbmdGcm9tUmV0dXJuU3RhdGVtZW50Tm9kZSIsInNvbWVTdHJpbmdGcm9tVmFyaWFibGVBbmRBbm9ueW1vdXNQcm9jZWR1cmUiLCJ0ZXJtU3RyaW5nRnJvbVByb3BlcnRpZXMiLCJ0ZXJtc1N0cmluZ0Zyb21UZXJtc0FycmF5IiwidGVybmFyeVN0cmluZ0Zyb21UZXJtIiwidHlwZVN0cmluZ0Zyb21UeXBlTmFtZUFuZEFyZ3VtZW50VHlwZU5hbWUiLCJ2YWx1ZVN0cmluZ0Zyb21Qcm9wZXJ0aWVzIiwidmFsdWVzU3RyaW5nRnJvbVZhbHVlc0FycmF5IiwidmFyaWFibGVBc3NpZ25tZW50U3RyaW5nRnJvbVR5cGVBbmRWYXJpYWJsZSIsInZhcmlhYmxlQXNzaWdubWVudFN0cmluZ0Zyb21UeXBlQW5kVmFyaWFibGVBc3NpZ25tZW50c0FycmF5IiwidmFyaWFibGVBc3NpZ25tZW50U3RyaW5nRnJvbVZhcmlhYmxlQXNzaWdubWVudCIsInZhcmlhYmxlU3RyaW5nRnJvbU5hbWUiLCJ0ZXJtIiwidGVybVN0cmluZyIsImdldFN0cmluZyIsInRlcm5hcnlTdHJpbmciLCJuYW1lIiwidmFyaWFibGVTdHJpbmciLCJwcm9wZXJ0aWVzIiwiZm9yRWFjaCIsInByb3BlcnR5IiwicHJvcGVydHlTdHJpbmciLCJ2YWx1ZVN0cmluZyIsImJvb2xlYW4iLCJleHByZXNzc2lvblN0cmluZyIsInRlcm1zQXJyYXkiLCJ0ZXJtc1N0cmluZyIsInJlZHVjZSIsInZhbHVlc0FycmF5IiwidmFsdWVzU3RyaW5nIiwidmFsdWUiLCJub21pbmFsVmFsdWUiLCJzdHJpbmciLCJwcmltdGl2ZVN0cmluZyIsImV4cHJlc3Npb25TdHJpbmciLCJzdHJpbmdMaXRlcmFsIiwic3RyaW5nRnJvbVN0cmluZ0xpdGVyYWwiLCJub21pbmFsVmFsdWVzIiwicHJpbWl0aXZlU3RyaW5nIiwibm9taW5hbFZhbHVlU3RyaW5nIiwicHJvY2VkdXJlIiwidHlwZSIsImdldFR5cGUiLCJsYWJlbCIsImdldExhYmVsIiwicGFyYW1ldGVycyIsImdldFBhcmFtZXRlcnMiLCJyZXR1cm5TdGF0ZW1lbnQiLCJnZXRSZXR1cm5TdGF0ZW1lbnQiLCJ0eXBlU3RyaW5nIiwibGFiZWxTdHJpbmciLCJwYXJhbWV0ZXJzU3RyaW5nIiwicmV0dXJuU3RhdGVtZW50U3RyaW5nIiwicHJvY2VkdXJlRGVsY2FyYXRpb25TdHJpbmciLCJyZXR1cm5CbG9ja1N0cmluZyIsIm5hbWVTdHJpbmciLCJub21pbmFsVmFsdWVQcm9wZXJ0eVN0cmluZyIsInR5cGVOYW1lIiwiYXJndW1lbnRUeXBlTmFtZSIsInZhcmlhYmxlIiwidmFyaWFibGVBc3NpZ25tZW50U3RyaW5nIiwiYW5vbnltb3VzUHJvY2VkdXJlIiwiYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nIiwic29tZVN0cmluZyIsImV2ZXJ5U3RyaW5nIiwidmFyaWFibGVBc3NpZ25tZW50IiwiZ2V0VmFyaWFibGUiLCJyZXR1cm5CbG9jayIsInByb2NlZHVyZVN0cmluZyIsIm5vbWluYWxWYWx1ZVByb3BlcnRpZXNBcnJheSIsIm5vbWluYWxWYWx1ZVByb3BlcnRpZXNTdHJpbmciLCJub21pbmFsVmFsdWVQcm9wZXJ0eSIsInZhcmlhYmxlQXNzaWdubWVudHNBcnJheSIsInZhcmlhYmxlQXNzaWdubWVudHNTdHJpbmciLCJpbml0aWFsRXhwcmVzc2lvbiIsImluaXRpYWxFeHByZXNzaW9uU3RyaW5nIiwicmVkdWNlU3RyaW5nIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUE0TWdCQTtlQUFBQTs7UUExQkFDO2VBQUFBOztRQTVGQUM7ZUFBQUE7O1FBK0hBQztlQUFBQTs7UUF2RUFDO2VBQUFBOztRQWpHQUM7ZUFBQUE7O1FBa0NBQztlQUFBQTs7UUE0QkFDO2VBQUFBOztRQVBBQztlQUFBQTs7UUFxQkFDO2VBQUFBOztRQXlFQUM7ZUFBQUE7O1FBcURBQztlQUFBQTs7UUFoSEFDO2VBQUFBOztRQW1DQUM7ZUFBQUE7O1FBekpBQztlQUFBQTs7UUFrQ0FDO2VBQUFBOztRQS9DQUM7ZUFBQUE7O1FBa0pBQztlQUFBQTs7UUF2SEFDO2VBQUFBOztRQWtDQUM7ZUFBQUE7O1FBaUdBQztlQUFBQTs7UUFpRUFDO2VBQUFB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
|
package/lib/utilities/value.js
CHANGED
|
@@ -15,9 +15,6 @@ _export(exports, {
|
|
|
15
15
|
get valueFromBoolean () {
|
|
16
16
|
return valueFromBoolean;
|
|
17
17
|
},
|
|
18
|
-
get valueFromList () {
|
|
19
|
-
return valueFromList;
|
|
20
|
-
},
|
|
21
18
|
get valueFromNodeAndNominalValue () {
|
|
22
19
|
return valueFromNodeAndNominalValue;
|
|
23
20
|
},
|
|
@@ -27,9 +24,6 @@ _export(exports, {
|
|
|
27
24
|
get valueFromNominalValue () {
|
|
28
25
|
return valueFromNominalValue;
|
|
29
26
|
},
|
|
30
|
-
get valueFromPrimitive () {
|
|
31
|
-
return valueFromPrimitive;
|
|
32
|
-
},
|
|
33
27
|
get valueFromStringLiteral () {
|
|
34
28
|
return valueFromStringLiteral;
|
|
35
29
|
}
|
|
@@ -42,24 +36,14 @@ function _interop_require_default(obj) {
|
|
|
42
36
|
default: obj
|
|
43
37
|
};
|
|
44
38
|
}
|
|
45
|
-
function valueFromList(list, context) {
|
|
46
|
-
const { Value } = _elements.default, variable = null, primitive = (0, _primitive.primitiveFromList)(list, context), string = primitive.getString(), node = null, breakPoint = null;
|
|
47
|
-
context = null;
|
|
48
|
-
const value = new Value(context, string, node, breakPoint, variable, primitive);
|
|
49
|
-
return value;
|
|
50
|
-
}
|
|
51
39
|
function valueFromBoolean(boolean, context) {
|
|
52
40
|
const { Value } = _elements.default, variable = null, primitive = (0, _primitive.primitiveFromBoolean)(boolean, context), string = primitive.getString(), node = null, breakPoint = null;
|
|
53
41
|
context = null;
|
|
54
42
|
const value = new Value(context, string, node, breakPoint, variable, primitive);
|
|
55
43
|
return value;
|
|
56
44
|
}
|
|
57
|
-
function
|
|
58
|
-
const { Value } = _elements.default,
|
|
59
|
-
return value;
|
|
60
|
-
}
|
|
61
|
-
function valueFromNominalValue(nominalValue, context) {
|
|
62
|
-
const { Value } = _elements.default, variable = null, primitive = (0, _primitive.primitiveFromNominalValue)(nominalValue, context), string = primitive.getString(), breakPoint = null, node = null, value = new Value(context, string, node, breakPoint, variable, primitive);
|
|
45
|
+
function valueFromNominalValue(nominalValue) {
|
|
46
|
+
const { Value } = _elements.default, variable = null, primitive = (0, _primitive.primitiveFromNominalValue)(nominalValue), string = primitive.getString(), breakPoint = null, node = null, context = null, value = new Value(context, string, node, breakPoint, variable, primitive);
|
|
63
47
|
return value;
|
|
64
48
|
}
|
|
65
49
|
function valueFromStringLiteral(stringLiteral, context) {
|
|
@@ -75,18 +59,21 @@ function valueFromNodeAndNominalValue(node, nominalValue) {
|
|
|
75
59
|
return value;
|
|
76
60
|
}
|
|
77
61
|
function valueFromNodesAndNominalValue(nodes, nominalValue) {
|
|
78
|
-
const context = nominalValue.getContext(),
|
|
62
|
+
const context = nominalValue.getContext(), nominalVvalues = nodes.map((node)=>{
|
|
79
63
|
const nominalValue = _nominalValue.default.fromNode(node, context);
|
|
80
64
|
return nominalValue;
|
|
81
|
-
}), value =
|
|
65
|
+
}), value = valueFromNominalValues(nominalVvalues);
|
|
82
66
|
return value;
|
|
83
67
|
}
|
|
84
68
|
const _default = {
|
|
85
|
-
valueFromList,
|
|
86
69
|
valueFromBoolean,
|
|
87
|
-
valueFromNominalValue,
|
|
88
70
|
valueFromStringLiteral,
|
|
89
|
-
|
|
71
|
+
valueFromNodeAndNominalValue,
|
|
72
|
+
valueFromNodesAndNominalValue
|
|
90
73
|
};
|
|
74
|
+
function valueFromNominalValues(nominalValues) {
|
|
75
|
+
const { Value } = _elements.default, variable = null, context = null, primitive = (0, _primitive.primitiveFromNominalValues)(nominalValues, context), string = primitive.getString(), node = null, breakPoint = null, value = new Value(context, string, node, breakPoint, variable, primitive);
|
|
76
|
+
return value;
|
|
77
|
+
}
|
|
91
78
|
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdmFsdWUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBlbGVtZW50cyBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCBOb21pbmFsVmFsdWUgZnJvbSBcIi4uL25vbWluYWxWYWx1ZVwiO1xuXG5pbXBvcnQgeyBwcmltaXRpdmVGcm9tQm9vbGVhbiwgcHJpbWl0aXZlRnJvbU5vbWluYWxWYWx1ZSwgcHJpbWl0aXZlRnJvbU5vbWluYWxWYWx1ZXMsIHByaW1pdGl2ZUZyb21TdHJpbmdMaXRlcmFsIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9wcmltaXRpdmVcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHZhbHVlRnJvbUJvb2xlYW4oYm9vbGVhbiwgY29udGV4dCkge1xuICBjb25zdCB7IFZhbHVlIH0gPSBlbGVtZW50cyxcbiAgICAgICAgdmFyaWFibGUgPSBudWxsLFxuICAgICAgICBwcmltaXRpdmUgPSBwcmltaXRpdmVGcm9tQm9vbGVhbihib29sZWFuLCBjb250ZXh0KSxcbiAgICAgICAgc3RyaW5nID0gcHJpbWl0aXZlLmdldFN0cmluZygpLFxuICAgICAgICBub2RlID0gbnVsbCxcbiAgICAgICAgYnJlYWtQb2ludCA9IG51bGw7XG5cbiAgY29udGV4dCA9IG51bGw7XG5cbiAgY29uc3QgdmFsdWUgPSBuZXcgVmFsdWUoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB2YXJpYWJsZSwgcHJpbWl0aXZlKTtcblxuICByZXR1cm4gdmFsdWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWx1ZUZyb21Ob21pbmFsVmFsdWUobm9taW5hbFZhbHVlKSB7XG4gIGNvbnN0IHsgVmFsdWUgfSA9IGVsZW1lbnRzLFxuICAgICAgICB2YXJpYWJsZSA9IG51bGwsXG4gICAgICAgIHByaW1pdGl2ZSA9IHByaW1pdGl2ZUZyb21Ob21pbmFsVmFsdWUobm9taW5hbFZhbHVlKSxcbiAgICAgICAgc3RyaW5nID0gcHJpbWl0aXZlLmdldFN0cmluZygpLFxuICAgICAgICBicmVha1BvaW50ID0gbnVsbCxcbiAgICAgICAgbm9kZSA9IG51bGwsXG4gICAgICAgIGNvbnRleHQgPSBudWxsLCAgLy8vXG4gICAgICAgIHZhbHVlID0gbmV3IFZhbHVlKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdmFyaWFibGUsIHByaW1pdGl2ZSk7XG5cbiAgcmV0dXJuIHZhbHVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsdWVGcm9tU3RyaW5nTGl0ZXJhbChzdHJpbmdMaXRlcmFsLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgVmFsdWUgfSA9IGVsZW1lbnRzLFxuICAgICAgICB2YXJpYWJsZSA9IG51bGwsXG4gICAgICAgIHByaW1pdGl2ZSA9IHByaW1pdGl2ZUZyb21TdHJpbmdMaXRlcmFsKHN0cmluZ0xpdGVyYWwsIGNvbnRleHQpLFxuICAgICAgICBzdHJpbmcgPSBwcmltaXRpdmUuZ2V0U3RyaW5nKCksXG4gICAgICAgIG5vZGUgPSBudWxsLFxuICAgICAgICBicmVha1BvaW50ID0gbnVsbDtcblxuICBjb250ZXh0ID0gbnVsbDtcblxuICBjb25zdCB2YWx1ZSA9IG5ldyBWYWx1ZShjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHZhcmlhYmxlLCBwcmltaXRpdmUpO1xuXG4gIHJldHVybiB2YWx1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbHVlRnJvbU5vZGVBbmROb21pbmFsVmFsdWUobm9kZSwgbm9taW5hbFZhbHVlKSB7XG4gIGNvbnN0IGNvbnRleHQgPSBub21pbmFsVmFsdWUuZ2V0Q29udGV4dCgpO1xuXG4gIG5vbWluYWxWYWx1ZSA9IE5vbWluYWxWYWx1ZS5mcm9tTm9kZShub2RlLCBjb250ZXh0KTtcblxuICBjb25zdCB2YWx1ZSA9IHZhbHVlRnJvbU5vbWluYWxWYWx1ZShub21pbmFsVmFsdWUpO1xuXG4gIHJldHVybiB2YWx1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbHVlRnJvbU5vZGVzQW5kTm9taW5hbFZhbHVlKG5vZGVzLCBub21pbmFsVmFsdWUpIHtcbiAgY29uc3QgY29udGV4dCA9IG5vbWluYWxWYWx1ZS5nZXRDb250ZXh0KCksXG4gICAgICAgIG5vbWluYWxWdmFsdWVzID0gbm9kZXMubWFwKChub2RlKSA9PiB7XG4gICAgICAgICAgY29uc3Qgbm9taW5hbFZhbHVlID0gTm9taW5hbFZhbHVlLmZyb21Ob2RlKG5vZGUsIGNvbnRleHQpO1xuXG4gICAgICAgICAgcmV0dXJuIG5vbWluYWxWYWx1ZTtcbiAgICAgICAgfSksXG4gICAgICAgIHZhbHVlID0gdmFsdWVGcm9tTm9taW5hbFZhbHVlcyhub21pbmFsVnZhbHVlcyk7XG5cbiAgcmV0dXJuIHZhbHVlO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIHZhbHVlRnJvbUJvb2xlYW4sXG4gIHZhbHVlRnJvbVN0cmluZ0xpdGVyYWwsXG4gIHZhbHVlRnJvbU5vZGVBbmROb21pbmFsVmFsdWUsXG4gIHZhbHVlRnJvbU5vZGVzQW5kTm9taW5hbFZhbHVlXG59O1xuXG5mdW5jdGlvbiB2YWx1ZUZyb21Ob21pbmFsVmFsdWVzKG5vbWluYWxWYWx1ZXMpIHtcbiAgY29uc3QgeyBWYWx1ZSB9ID0gZWxlbWVudHMsXG4gICAgICAgIHZhcmlhYmxlID0gbnVsbCxcbiAgICAgICAgY29udGV4dCA9IG51bGwsXG4gICAgICAgIHByaW1pdGl2ZSA9IHByaW1pdGl2ZUZyb21Ob21pbmFsVmFsdWVzKG5vbWluYWxWYWx1ZXMsIGNvbnRleHQpLFxuICAgICAgICBzdHJpbmcgPSBwcmltaXRpdmUuZ2V0U3RyaW5nKCksXG4gICAgICAgIG5vZGUgPSBudWxsLFxuICAgICAgICBicmVha1BvaW50ID0gbnVsbCxcbiAgICAgICAgdmFsdWUgPSBuZXcgVmFsdWUoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB2YXJpYWJsZSwgcHJpbWl0aXZlKTtcblxuICByZXR1cm4gdmFsdWU7XG59XG4iXSwibmFtZXMiOlsidmFsdWVGcm9tQm9vbGVhbiIsInZhbHVlRnJvbU5vZGVBbmROb21pbmFsVmFsdWUiLCJ2YWx1ZUZyb21Ob2Rlc0FuZE5vbWluYWxWYWx1ZSIsInZhbHVlRnJvbU5vbWluYWxWYWx1ZSIsInZhbHVlRnJvbVN0cmluZ0xpdGVyYWwiLCJib29sZWFuIiwiY29udGV4dCIsIlZhbHVlIiwiZWxlbWVudHMiLCJ2YXJpYWJsZSIsInByaW1pdGl2ZSIsInByaW1pdGl2ZUZyb21Cb29sZWFuIiwic3RyaW5nIiwiZ2V0U3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ2YWx1ZSIsIm5vbWluYWxWYWx1ZSIsInByaW1pdGl2ZUZyb21Ob21pbmFsVmFsdWUiLCJzdHJpbmdMaXRlcmFsIiwicHJpbWl0aXZlRnJvbVN0cmluZ0xpdGVyYWwiLCJnZXRDb250ZXh0IiwiTm9taW5hbFZhbHVlIiwiZnJvbU5vZGUiLCJub2RlcyIsIm5vbWluYWxWdmFsdWVzIiwibWFwIiwidmFsdWVGcm9tTm9taW5hbFZhbHVlcyIsIm5vbWluYWxWYWx1ZXMiLCJwcmltaXRpdmVGcm9tTm9taW5hbFZhbHVlcyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBd0VBO2VBQUE7O1FBakVnQkE7ZUFBQUE7O1FBMkNBQztlQUFBQTs7UUFVQUM7ZUFBQUE7O1FBdENBQztlQUFBQTs7UUFhQUM7ZUFBQUE7OztpRUFqQ0s7cUVBQ0k7MkJBRStGOzs7Ozs7QUFFakgsU0FBU0osaUJBQWlCSyxPQUFPLEVBQUVDLE9BQU87SUFDL0MsTUFBTSxFQUFFQyxLQUFLLEVBQUUsR0FBR0MsaUJBQVEsRUFDcEJDLFdBQVcsTUFDWEMsWUFBWUMsSUFBQUEsK0JBQW9CLEVBQUNOLFNBQVNDLFVBQzFDTSxTQUFTRixVQUFVRyxTQUFTLElBQzVCQyxPQUFPLE1BQ1BDLGFBQWE7SUFFbkJULFVBQVU7SUFFVixNQUFNVSxRQUFRLElBQUlULE1BQU1ELFNBQVNNLFFBQVFFLE1BQU1DLFlBQVlOLFVBQVVDO0lBRXJFLE9BQU9NO0FBQ1Q7QUFFTyxTQUFTYixzQkFBc0JjLFlBQVk7SUFDaEQsTUFBTSxFQUFFVixLQUFLLEVBQUUsR0FBR0MsaUJBQVEsRUFDcEJDLFdBQVcsTUFDWEMsWUFBWVEsSUFBQUEsb0NBQXlCLEVBQUNELGVBQ3RDTCxTQUFTRixVQUFVRyxTQUFTLElBQzVCRSxhQUFhLE1BQ2JELE9BQU8sTUFDUFIsVUFBVSxNQUNWVSxRQUFRLElBQUlULE1BQU1ELFNBQVNNLFFBQVFFLE1BQU1DLFlBQVlOLFVBQVVDO0lBRXJFLE9BQU9NO0FBQ1Q7QUFFTyxTQUFTWix1QkFBdUJlLGFBQWEsRUFBRWIsT0FBTztJQUMzRCxNQUFNLEVBQUVDLEtBQUssRUFBRSxHQUFHQyxpQkFBUSxFQUNwQkMsV0FBVyxNQUNYQyxZQUFZVSxJQUFBQSxxQ0FBMEIsRUFBQ0QsZUFBZWIsVUFDdERNLFNBQVNGLFVBQVVHLFNBQVMsSUFDNUJDLE9BQU8sTUFDUEMsYUFBYTtJQUVuQlQsVUFBVTtJQUVWLE1BQU1VLFFBQVEsSUFBSVQsTUFBTUQsU0FBU00sUUFBUUUsTUFBTUMsWUFBWU4sVUFBVUM7SUFFckUsT0FBT007QUFDVDtBQUVPLFNBQVNmLDZCQUE2QmEsSUFBSSxFQUFFRyxZQUFZO0lBQzdELE1BQU1YLFVBQVVXLGFBQWFJLFVBQVU7SUFFdkNKLGVBQWVLLHFCQUFZLENBQUNDLFFBQVEsQ0FBQ1QsTUFBTVI7SUFFM0MsTUFBTVUsUUFBUWIsc0JBQXNCYztJQUVwQyxPQUFPRDtBQUNUO0FBRU8sU0FBU2QsOEJBQThCc0IsS0FBSyxFQUFFUCxZQUFZO0lBQy9ELE1BQU1YLFVBQVVXLGFBQWFJLFVBQVUsSUFDakNJLGlCQUFpQkQsTUFBTUUsR0FBRyxDQUFDLENBQUNaO1FBQzFCLE1BQU1HLGVBQWVLLHFCQUFZLENBQUNDLFFBQVEsQ0FBQ1QsTUFBTVI7UUFFakQsT0FBT1c7SUFDVCxJQUNBRCxRQUFRVyx1QkFBdUJGO0lBRXJDLE9BQU9UO0FBQ1Q7TUFFQSxXQUFlO0lBQ2JoQjtJQUNBSTtJQUNBSDtJQUNBQztBQUNGO0FBRUEsU0FBU3lCLHVCQUF1QkMsYUFBYTtJQUMzQyxNQUFNLEVBQUVyQixLQUFLLEVBQUUsR0FBR0MsaUJBQVEsRUFDcEJDLFdBQVcsTUFDWEgsVUFBVSxNQUNWSSxZQUFZbUIsSUFBQUEscUNBQTBCLEVBQUNELGVBQWV0QixVQUN0RE0sU0FBU0YsVUFBVUcsU0FBUyxJQUM1QkMsT0FBTyxNQUNQQyxhQUFhLE1BQ2JDLFFBQVEsSUFBSVQsTUFBTUQsU0FBU00sUUFBUUUsTUFBTUMsWUFBWU4sVUFBVUM7SUFFckUsT0FBT007QUFDVCJ9
|
package/lib/utilities/values.js
CHANGED
|
@@ -17,15 +17,15 @@ function _interop_require_default(obj) {
|
|
|
17
17
|
};
|
|
18
18
|
}
|
|
19
19
|
function valuesFromNominalValues(nominalValues, context) {
|
|
20
|
-
const { Values } = _elements.default, valuesArray = valuesArrayFromNominalValues(nominalValues
|
|
20
|
+
const { Values } = _elements.default, valuesArray = valuesArrayFromNominalValues(nominalValues), valuesString = (0, _string.valuesStringFromValuesArray)(valuesArray), string = valuesString, array = valuesArray, node = null, breakPoint = null, values = new Values(context, string, node, breakPoint, array);
|
|
21
21
|
return values;
|
|
22
22
|
}
|
|
23
|
-
function valuesArrayFromNominalValues(nominalValues
|
|
23
|
+
function valuesArrayFromNominalValues(nominalValues) {
|
|
24
24
|
const valuesArray = nominalValues.map((nominalValue)=>{
|
|
25
|
-
const value = (0, _value.valueFromNominalValue)(nominalValue
|
|
25
|
+
const value = (0, _value.valueFromNominalValue)(nominalValue);
|
|
26
26
|
return value;
|
|
27
27
|
});
|
|
28
28
|
return valuesArray;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvdmFsdWVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5cbmltcG9ydCB7IHZhbHVlRnJvbU5vbWluYWxWYWx1ZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvdmFsdWVcIjtcbmltcG9ydCB7IHZhbHVlc1N0cmluZ0Zyb21WYWx1ZXNBcnJheSB9IGZyb20gXCIuLi91dGlsaXRpZXMvc3RyaW5nXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWx1ZXNGcm9tTm9taW5hbFZhbHVlcyhub21pbmFsVmFsdWVzLCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgVmFsdWVzIH0gPSBlbGVtZW50cyxcbiAgICAgICAgdmFsdWVzQXJyYXkgPSB2YWx1ZXNBcnJheUZyb21Ob21pbmFsVmFsdWVzKG5vbWluYWxWYWx1ZXMpLFxuICAgICAgICB2YWx1ZXNTdHJpbmcgPSB2YWx1ZXNTdHJpbmdGcm9tVmFsdWVzQXJyYXkodmFsdWVzQXJyYXkpLFxuICAgICAgICBzdHJpbmcgPSB2YWx1ZXNTdHJpbmcsIC8vL1xuICAgICAgICBhcnJheSA9IHZhbHVlc0FycmF5LCAgLy8vXG4gICAgICAgIG5vZGUgPSBudWxsLFxuICAgICAgICBicmVha1BvaW50ID0gbnVsbCxcbiAgICAgICAgdmFsdWVzID0gbmV3IFZhbHVlcyhjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIGFycmF5KTtcblxuICByZXR1cm4gdmFsdWVzO1xufVxuXG5mdW5jdGlvbiB2YWx1ZXNBcnJheUZyb21Ob21pbmFsVmFsdWVzKG5vbWluYWxWYWx1ZXMpIHtcbiAgY29uc3QgdmFsdWVzQXJyYXkgPSBub21pbmFsVmFsdWVzLm1hcCgobm9taW5hbFZhbHVlKSA9PiB7XG4gICAgY29uc3QgdmFsdWUgPSB2YWx1ZUZyb21Ob21pbmFsVmFsdWUobm9taW5hbFZhbHVlKTtcblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfSk7XG5cbiAgcmV0dXJuIHZhbHVlc0FycmF5O1xufVxuIl0sIm5hbWVzIjpbInZhbHVlc0Zyb21Ob21pbmFsVmFsdWVzIiwibm9taW5hbFZhbHVlcyIsImNvbnRleHQiLCJWYWx1ZXMiLCJlbGVtZW50cyIsInZhbHVlc0FycmF5IiwidmFsdWVzQXJyYXlGcm9tTm9taW5hbFZhbHVlcyIsInZhbHVlc1N0cmluZyIsInZhbHVlc1N0cmluZ0Zyb21WYWx1ZXNBcnJheSIsInN0cmluZyIsImFycmF5Iiwibm9kZSIsImJyZWFrUG9pbnQiLCJ2YWx1ZXMiLCJtYXAiLCJub21pbmFsVmFsdWUiLCJ2YWx1ZSIsInZhbHVlRnJvbU5vbWluYWxWYWx1ZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBT2dCQTs7O2VBQUFBOzs7aUVBTEs7dUJBRWlCO3dCQUNNOzs7Ozs7QUFFckMsU0FBU0Esd0JBQXdCQyxhQUFhLEVBQUVDLE9BQU87SUFDNUQsTUFBTSxFQUFFQyxNQUFNLEVBQUUsR0FBR0MsaUJBQVEsRUFDckJDLGNBQWNDLDZCQUE2QkwsZ0JBQzNDTSxlQUFlQyxJQUFBQSxtQ0FBMkIsRUFBQ0gsY0FDM0NJLFNBQVNGLGNBQ1RHLFFBQVFMLGFBQ1JNLE9BQU8sTUFDUEMsYUFBYSxNQUNiQyxTQUFTLElBQUlWLE9BQU9ELFNBQVNPLFFBQVFFLE1BQU1DLFlBQVlGO0lBRTdELE9BQU9HO0FBQ1Q7QUFFQSxTQUFTUCw2QkFBNkJMLGFBQWE7SUFDakQsTUFBTUksY0FBY0osY0FBY2EsR0FBRyxDQUFDLENBQUNDO1FBQ3JDLE1BQU1DLFFBQVFDLElBQUFBLDRCQUFxQixFQUFDRjtRQUVwQyxPQUFPQztJQUNUO0lBRUEsT0FBT1g7QUFDVCJ9
|
package/package.json
CHANGED
|
@@ -6,9 +6,8 @@ import elements from "../../elements";
|
|
|
6
6
|
import Exception from "../../exception";
|
|
7
7
|
|
|
8
8
|
import { define } from "../../elements";
|
|
9
|
-
import {
|
|
9
|
+
import { LIST_TYPE_NAME } from "../../typeNames";
|
|
10
10
|
import { primtiveStringFromNominalValues } from "../../utilities/string";
|
|
11
|
-
import { LIST_TYPE_NAME, NOMINAL_VALUE_TYPE_NAME } from "../../typeNames";
|
|
12
11
|
|
|
13
12
|
export default define(class ArrayAssigment extends Element {
|
|
14
13
|
constructor(context, string, node, breakPoint, variable, bindings) {
|
|
@@ -43,26 +42,26 @@ export default define(class ArrayAssigment extends Element {
|
|
|
43
42
|
throw exception;
|
|
44
43
|
}
|
|
45
44
|
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
listValuesLength = listValues.length;
|
|
45
|
+
const bindingsLength = this.bindings.getLength(),
|
|
46
|
+
primitiveValue = value.getPrimitiveValue(),
|
|
47
|
+
primitiveValueLength = primitiveValue.length;
|
|
50
48
|
|
|
51
|
-
if (bindingsLength >
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
message = `The length of the '${bindingsString}' bindings is greater than the length of the '${
|
|
49
|
+
if (bindingsLength > primitiveValueLength) {
|
|
50
|
+
const valueString = value.getString(),
|
|
51
|
+
bindingsString = this.bindings.getString(),
|
|
52
|
+
message = `The length of the '${bindingsString}' bindings is greater than the length of the '${valueString}' list.`,
|
|
55
53
|
exception = Exception.fromMessage(message);
|
|
56
54
|
|
|
57
55
|
throw exception;
|
|
58
56
|
}
|
|
59
57
|
|
|
58
|
+
const values = value.lift(context);
|
|
59
|
+
|
|
60
60
|
this.bindings.forEachBinding((binding, index) => {
|
|
61
61
|
const elided = binding.isElided();
|
|
62
62
|
|
|
63
63
|
if (!elided) {
|
|
64
|
-
const
|
|
65
|
-
value = listValue; ///
|
|
64
|
+
const value = values[index];
|
|
66
65
|
|
|
67
66
|
this.evaluateBinding(binding, value, context);
|
|
68
67
|
}
|
|
@@ -7,8 +7,8 @@ import Exception from "../../exception";
|
|
|
7
7
|
import nominalValueProperties from "../../nominalValueProperties";
|
|
8
8
|
|
|
9
9
|
import { define } from "../../elements";
|
|
10
|
-
import { stringLiteralFromString } from "../../utilities/stringLiteral";
|
|
11
10
|
import { valueFromNodesAndNominalValue } from "../../utilities/value";
|
|
11
|
+
import { stringLiteralFromString } from "../../utilities/stringLiteral";
|
|
12
12
|
import { termFromBoolean, termFromStringLiteral } from "../../utilities/term";
|
|
13
13
|
import { CONTENT_PARAMETER_NAME, TERMINAL_PARAMETER_NAME, CHILD_NODES_PARAMETER_NAME } from "../../parameterNames";
|
|
14
14
|
import { LIST_TYPE_NAME, STRING_TYPE_NAME, BOOLEAN_TYPE_NAME, NOMINAL_VALUE_TYPE_NAME } from "../../typeNames";
|
package/src/element/primitive.js
CHANGED
|
@@ -114,4 +114,33 @@ export default define(class Primitive extends Element {
|
|
|
114
114
|
}
|
|
115
115
|
|
|
116
116
|
static name = "Primitive";
|
|
117
|
+
|
|
118
|
+
static fromPrimitiveValueAndType(primitiveValue, type, context) {
|
|
119
|
+
const value = primitiveValue, ///
|
|
120
|
+
typeName = type.getName();
|
|
121
|
+
|
|
122
|
+
let string;
|
|
123
|
+
|
|
124
|
+
switch (typeName) {
|
|
125
|
+
case NOMINAL_VALUE_TYPE_NAME: {
|
|
126
|
+
const nominalValue = value; ///
|
|
127
|
+
|
|
128
|
+
string = nominalValue.getString();
|
|
129
|
+
|
|
130
|
+
break;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
default: {
|
|
134
|
+
string = `${value}`;
|
|
135
|
+
|
|
136
|
+
break;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
const node = null,
|
|
141
|
+
breakPoint = null,
|
|
142
|
+
primitive = new Primitive(context, string, node, breakPoint, type, value);
|
|
143
|
+
|
|
144
|
+
return primitive;
|
|
145
|
+
}
|
|
117
146
|
});
|
package/src/element/reduce.js
CHANGED
package/src/element/value.js
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
import { Element } from "occam-languages";
|
|
4
4
|
|
|
5
|
+
import elements from "../elements";
|
|
6
|
+
|
|
5
7
|
import { define } from "../elements";
|
|
6
8
|
|
|
7
9
|
export default define(class Value extends Element {
|
|
@@ -84,6 +86,29 @@ export default define(class Value extends Element {
|
|
|
84
86
|
return equalTo;
|
|
85
87
|
}
|
|
86
88
|
|
|
89
|
+
lift(context) {
|
|
90
|
+
const { Primitive } = elements,
|
|
91
|
+
primitiveValue = this.getPrimitiveValue(),
|
|
92
|
+
primitiveValues = primitiveValue; ///
|
|
93
|
+
|
|
94
|
+
let type;
|
|
95
|
+
|
|
96
|
+
type = this.getType();
|
|
97
|
+
|
|
98
|
+
const argumentType = type.getArgumentType();
|
|
99
|
+
|
|
100
|
+
type = argumentType; ///
|
|
101
|
+
|
|
102
|
+
const values = primitiveValues.map((primitiveValue)=> {
|
|
103
|
+
const primitive = Primitive.fromPrimitiveValueAndType(primitiveValue, type, context),
|
|
104
|
+
value = Value.fromPrimitive(primitive, context);
|
|
105
|
+
|
|
106
|
+
return value;
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
return values;
|
|
110
|
+
}
|
|
111
|
+
|
|
87
112
|
static name = "Value";
|
|
88
113
|
|
|
89
114
|
static fromPrimitive(primitive, context) {
|
|
@@ -11,7 +11,7 @@ export default class NamedBindingNode extends BindingNode {
|
|
|
11
11
|
const tokenType = NAME_TOKEN_TYPE;
|
|
12
12
|
|
|
13
13
|
this.someTerminalNode((terminalNode, index) => {
|
|
14
|
-
if (index ===
|
|
14
|
+
if (index === 1) {
|
|
15
15
|
const content = terminalNode.getContent();
|
|
16
16
|
|
|
17
17
|
alias = content; //
|
package/src/utilities/element.js
CHANGED
|
@@ -10,7 +10,6 @@ import { ternaryStringFromTerm,
|
|
|
10
10
|
termStringFromProperties,
|
|
11
11
|
valueStringFromProperties,
|
|
12
12
|
expressionStringFromProperties,
|
|
13
|
-
typeStringFromNameAndArgumentType,
|
|
14
13
|
procedureDeclarationStringFromProcedure,
|
|
15
14
|
returnBlockStringFromReturnStatementNode,
|
|
16
15
|
variableAssignmentStringFromTypeAndVariable,
|
|
@@ -84,10 +83,9 @@ export function termFromTermNode(termNode, context) {
|
|
|
84
83
|
export function typeFromTypeNode(typeNode, context) {
|
|
85
84
|
const { Type } = elements,
|
|
86
85
|
node = typeNode, ///
|
|
86
|
+
string = context.nodeAsString(node),
|
|
87
87
|
name = nameFromTypeNode(typeNode, context),
|
|
88
88
|
argumentType = argumentTypeFromTypeNode(typeNode, context),
|
|
89
|
-
typeString = typeStringFromNameAndArgumentType(name, argumentType),
|
|
90
|
-
string = typeString, ///
|
|
91
89
|
breakPoint = null;
|
|
92
90
|
|
|
93
91
|
context = null;
|
|
@@ -917,7 +915,9 @@ export function argumentTypeFromTypeNode(typeNode, context) {
|
|
|
917
915
|
const argumentTypeName = typeNode.getArgumentTypeName();
|
|
918
916
|
|
|
919
917
|
if (argumentTypeName !== null) {
|
|
920
|
-
|
|
918
|
+
const { Type } = elements;
|
|
919
|
+
|
|
920
|
+
argumentType = Type.fromTypeName(argumentTypeName, context);
|
|
921
921
|
}
|
|
922
922
|
|
|
923
923
|
return argumentType;
|
|
@@ -2,27 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
import elements from "../elements";
|
|
4
4
|
|
|
5
|
-
import { typeFromTypeName } from "../utilities/element";
|
|
6
5
|
import { STRING_TYPE_NAME, BOOLEAN_TYPE_NAME, NOMINAL_VALUE_TYPE_NAME, LIST_TYPE_NAME } from "../typeNames";
|
|
7
6
|
import { primtiveStringFromBoolean, primtiveStringFromNominalValue, primtiveStringFromNominalValues, primtiveStringFromStringLiteral } from "../utilities/string";
|
|
8
7
|
|
|
9
|
-
export function primitiveFromList(list, context) {
|
|
10
|
-
const { Type, Primitive } = elements,
|
|
11
|
-
primitiveString = primtiveStringFromNominalValues(list),
|
|
12
|
-
string = primitiveString, ///
|
|
13
|
-
typeName = LIST_TYPE_NAME,
|
|
14
|
-
type = Type.fromTypeName(typeName, context),
|
|
15
|
-
value = list, ///
|
|
16
|
-
node = null,
|
|
17
|
-
breakPoint = null;
|
|
18
|
-
|
|
19
|
-
context = null;
|
|
20
|
-
|
|
21
|
-
const primitive = new Primitive(context, string, node, breakPoint, type, value);
|
|
22
|
-
|
|
23
|
-
return primitive;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
8
|
export function primitiveFromBoolean(boolean, context) {
|
|
27
9
|
const { Type, Primitive } = elements,
|
|
28
10
|
primitiveString = primtiveStringFromBoolean(boolean),
|
|
@@ -73,3 +55,21 @@ export function primitiveFromStringLiteral(stringLiteral, context) {
|
|
|
73
55
|
|
|
74
56
|
return primitive;
|
|
75
57
|
}
|
|
58
|
+
|
|
59
|
+
export function primitiveFromNominalValues(nominalValues, context) {
|
|
60
|
+
const { Type, Primitive } = elements,
|
|
61
|
+
primitiveString = primtiveStringFromNominalValues(nominalValues),
|
|
62
|
+
string = primitiveString, ///
|
|
63
|
+
argumentTypeName = NOMINAL_VALUE_TYPE_NAME,
|
|
64
|
+
typeName = LIST_TYPE_NAME,
|
|
65
|
+
type = Type.fromTypeNameAndArgumentTypeName(typeName, argumentTypeName, context),
|
|
66
|
+
value = nominalValues, ///
|
|
67
|
+
node = null,
|
|
68
|
+
breakPoint = null;
|
|
69
|
+
|
|
70
|
+
context = null;
|
|
71
|
+
|
|
72
|
+
const primitive = new Primitive(context, string, node, breakPoint, type, value);
|
|
73
|
+
|
|
74
|
+
return primitive;
|
|
75
|
+
}
|
package/src/utilities/string.js
CHANGED
|
@@ -119,20 +119,6 @@ export function primtiveStringFromNominalValues(nominalValues) {
|
|
|
119
119
|
return primtiveString;
|
|
120
120
|
}
|
|
121
121
|
|
|
122
|
-
export function typeStringFromNameAndArgumentType(name, argumentType) {
|
|
123
|
-
let typeString;
|
|
124
|
-
|
|
125
|
-
typeString = `${name}`;
|
|
126
|
-
|
|
127
|
-
if (argumentType !== null) {
|
|
128
|
-
const argumentTypeString = argumentType.getString();
|
|
129
|
-
|
|
130
|
-
typeString = `${typeString}${argumentTypeString}`;
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
return typeString;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
122
|
export function procedureDeclarationStringFromProcedure(procedure) {
|
|
137
123
|
const type = procedure.getType(),
|
|
138
124
|
label = procedure.getLabel(),
|
package/src/utilities/value.js
CHANGED
|
@@ -3,22 +3,7 @@
|
|
|
3
3
|
import elements from "../elements";
|
|
4
4
|
import NominalValue from "../nominalValue";
|
|
5
5
|
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
export function valueFromList(list, context) {
|
|
9
|
-
const { Value } = elements,
|
|
10
|
-
variable = null,
|
|
11
|
-
primitive = primitiveFromList(list, context),
|
|
12
|
-
string = primitive.getString(),
|
|
13
|
-
node = null,
|
|
14
|
-
breakPoint = null;
|
|
15
|
-
|
|
16
|
-
context = null;
|
|
17
|
-
|
|
18
|
-
const value = new Value(context, string, node, breakPoint, variable, primitive);
|
|
19
|
-
|
|
20
|
-
return value;
|
|
21
|
-
}
|
|
6
|
+
import { primitiveFromBoolean, primitiveFromNominalValue, primitiveFromNominalValues, primitiveFromStringLiteral } from "../utilities/primitive";
|
|
22
7
|
|
|
23
8
|
export function valueFromBoolean(boolean, context) {
|
|
24
9
|
const { Value } = elements,
|
|
@@ -35,25 +20,14 @@ export function valueFromBoolean(boolean, context) {
|
|
|
35
20
|
return value;
|
|
36
21
|
}
|
|
37
22
|
|
|
38
|
-
export function
|
|
23
|
+
export function valueFromNominalValue(nominalValue) {
|
|
39
24
|
const { Value } = elements,
|
|
40
|
-
context = null,
|
|
41
|
-
string = primitive.getString(),
|
|
42
|
-
node = null,
|
|
43
|
-
breakPoint = null,
|
|
44
25
|
variable = null,
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
return value;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
export function valueFromNominalValue(nominalValue, context) {
|
|
51
|
-
const { Value } = elements,
|
|
52
|
-
variable = null,
|
|
53
|
-
primitive = primitiveFromNominalValue(nominalValue, context),
|
|
26
|
+
primitive = primitiveFromNominalValue(nominalValue),
|
|
54
27
|
string = primitive.getString(),
|
|
55
28
|
breakPoint = null,
|
|
56
29
|
node = null,
|
|
30
|
+
context = null, ///
|
|
57
31
|
value = new Value(context, string, node, breakPoint, variable, primitive);
|
|
58
32
|
|
|
59
33
|
return value;
|
|
@@ -86,20 +60,32 @@ export function valueFromNodeAndNominalValue(node, nominalValue) {
|
|
|
86
60
|
|
|
87
61
|
export function valueFromNodesAndNominalValue(nodes, nominalValue) {
|
|
88
62
|
const context = nominalValue.getContext(),
|
|
89
|
-
|
|
63
|
+
nominalVvalues = nodes.map((node) => {
|
|
90
64
|
const nominalValue = NominalValue.fromNode(node, context);
|
|
91
65
|
|
|
92
66
|
return nominalValue;
|
|
93
67
|
}),
|
|
94
|
-
value =
|
|
68
|
+
value = valueFromNominalValues(nominalVvalues);
|
|
95
69
|
|
|
96
70
|
return value;
|
|
97
71
|
}
|
|
98
72
|
|
|
99
73
|
export default {
|
|
100
|
-
valueFromList,
|
|
101
74
|
valueFromBoolean,
|
|
102
|
-
valueFromNominalValue,
|
|
103
75
|
valueFromStringLiteral,
|
|
104
|
-
|
|
76
|
+
valueFromNodeAndNominalValue,
|
|
77
|
+
valueFromNodesAndNominalValue
|
|
105
78
|
};
|
|
79
|
+
|
|
80
|
+
function valueFromNominalValues(nominalValues) {
|
|
81
|
+
const { Value } = elements,
|
|
82
|
+
variable = null,
|
|
83
|
+
context = null,
|
|
84
|
+
primitive = primitiveFromNominalValues(nominalValues, context),
|
|
85
|
+
string = primitive.getString(),
|
|
86
|
+
node = null,
|
|
87
|
+
breakPoint = null,
|
|
88
|
+
value = new Value(context, string, node, breakPoint, variable, primitive);
|
|
89
|
+
|
|
90
|
+
return value;
|
|
91
|
+
}
|
package/src/utilities/values.js
CHANGED
|
@@ -7,7 +7,7 @@ import { valuesStringFromValuesArray } from "../utilities/string";
|
|
|
7
7
|
|
|
8
8
|
export function valuesFromNominalValues(nominalValues, context) {
|
|
9
9
|
const { Values } = elements,
|
|
10
|
-
valuesArray = valuesArrayFromNominalValues(nominalValues
|
|
10
|
+
valuesArray = valuesArrayFromNominalValues(nominalValues),
|
|
11
11
|
valuesString = valuesStringFromValuesArray(valuesArray),
|
|
12
12
|
string = valuesString, ///
|
|
13
13
|
array = valuesArray, ///
|
|
@@ -18,9 +18,9 @@ export function valuesFromNominalValues(nominalValues, context) {
|
|
|
18
18
|
return values;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
function valuesArrayFromNominalValues(nominalValues
|
|
21
|
+
function valuesArrayFromNominalValues(nominalValues) {
|
|
22
22
|
const valuesArray = nominalValues.map((nominalValue) => {
|
|
23
|
-
const value = valueFromNominalValue(nominalValue
|
|
23
|
+
const value = valueFromNominalValue(nominalValue);
|
|
24
24
|
|
|
25
25
|
return value;
|
|
26
26
|
});
|