occam-furtle 2.0.340 → 2.0.342
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/example.js +73 -202
- package/lib/element/assignment/array.js +2 -2
- package/lib/element/assignment/object.js +4 -4
- package/lib/element/expression.js +10 -51
- package/lib/element/nodeQuery.js +5 -5
- package/lib/element/nodesQuery.js +5 -5
- package/lib/element/primitive.js +1 -51
- package/lib/element/some.js +3 -3
- package/lib/element/term/logical.js +2 -2
- package/lib/element/term/negated.js +4 -2
- package/lib/element/term.js +5 -28
- package/lib/element/ternary.js +2 -2
- package/lib/node/expression.js +8 -15
- package/lib/utilities/element.js +22 -26
- package/lib/utilities/string.js +13 -20
- package/package.json +1 -1
- package/src/element/assignment/array.js +2 -1
- package/src/element/assignment/object.js +6 -3
- package/src/element/expression.js +8 -27
- package/src/element/nodeQuery.js +6 -6
- package/src/element/nodesQuery.js +6 -6
- package/src/element/primitive.js +0 -50
- package/src/element/some.js +4 -2
- package/src/element/term/logical.js +6 -4
- package/src/element/term/negated.js +5 -1
- package/src/element/term.js +4 -8
- package/src/element/ternary.js +2 -1
- package/src/node/expression.js +9 -17
- package/src/utilities/element.js +24 -31
- package/src/utilities/string.js +14 -22
- package/test/main.js +3 -2
package/lib/utilities/string.js
CHANGED
|
@@ -15,8 +15,8 @@ _export(exports, {
|
|
|
15
15
|
get everyStringFromVariableAndAnonymousProcedure () {
|
|
16
16
|
return everyStringFromVariableAndAnonymousProcedure;
|
|
17
17
|
},
|
|
18
|
-
get
|
|
19
|
-
return
|
|
18
|
+
get expressionStringFromProperties () {
|
|
19
|
+
return expressionStringFromProperties;
|
|
20
20
|
},
|
|
21
21
|
get primtiveStringFromBoolean () {
|
|
22
22
|
return primtiveStringFromBoolean;
|
|
@@ -103,6 +103,16 @@ function termsStringFromTermsArray(termsArray) {
|
|
|
103
103
|
}, null); ///
|
|
104
104
|
return termsString;
|
|
105
105
|
}
|
|
106
|
+
function expressionStringFromProperties(properties) {
|
|
107
|
+
var expressionString;
|
|
108
|
+
properties.forEach(function(property) {
|
|
109
|
+
if (property !== null) {
|
|
110
|
+
var propertyString = property.getString();
|
|
111
|
+
expressionString = propertyString; ///
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
return expressionString;
|
|
115
|
+
}
|
|
106
116
|
function primtiveStringFromStringLiteral(stringLiteral) {
|
|
107
117
|
var string = (0, _stringLiteral.stringFromStringLiteral)(stringLiteral), primtiveString = string; ///
|
|
108
118
|
return primtiveString;
|
|
@@ -132,23 +142,6 @@ function returnBlockStringFromReturnStatementNode(returnStatement) {
|
|
|
132
142
|
var returnStatementString = returnStatement.getString(), returnBlockString = "{ ... ".concat(returnStatementString, " }");
|
|
133
143
|
return returnBlockString;
|
|
134
144
|
}
|
|
135
|
-
function expressionStringFromPrimitiveAndProperties(primitive, properties) {
|
|
136
|
-
var expressionString;
|
|
137
|
-
if (false) {
|
|
138
|
-
///
|
|
139
|
-
} else if (primitive !== null) {
|
|
140
|
-
var primitiveString = primitive.getString();
|
|
141
|
-
expressionString = primitiveString; ///
|
|
142
|
-
} else {
|
|
143
|
-
properties.forEach(function(property) {
|
|
144
|
-
if (property !== null) {
|
|
145
|
-
var propertyString = property.getString();
|
|
146
|
-
expressionString = propertyString; ///
|
|
147
|
-
}
|
|
148
|
-
});
|
|
149
|
-
}
|
|
150
|
-
return expressionString;
|
|
151
|
-
}
|
|
152
145
|
function variableAssignmentStringFromTypeAndVariable(type, variable) {
|
|
153
146
|
var variableString = variable.getString(), variableAssignmentString = "".concat(type, " ").concat(variableString, " = ... ;");
|
|
154
147
|
return variableAssignmentString;
|
|
@@ -187,4 +180,4 @@ function reduceStringFromVariableInitialExpressionAndAnonymousProcedure(variable
|
|
|
187
180
|
return reduceString;
|
|
188
181
|
}
|
|
189
182
|
|
|
190
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc3RyaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgbnVsbE5vZGUgZnJvbSBcIi4uL251bGxOb2RlXCI7XG5cbmltcG9ydCB7IE5VTEwgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBzdHJpbmdGcm9tU3RyaW5nTGl0ZXJhbCB9IGZyb20gXCIuL3N0cmluZ0xpdGVyYWxcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHRlcm5hcnlTdHJpbmdGcm9tVGVybSh0ZXJtKSB7XG4gIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpLFxuICAgICAgICB0ZXJuYXJ5U3RyaW5nID0gYGlmICgke3Rlcm1TdHJpbmd9KSB7IC4uLiB9IGVsc2UgeyAuLi4gfWA7XG5cbiAgcmV0dXJuIHRlcm5hcnlTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YXJpYWJsZVN0cmluZ0Zyb21OYW1lKG5hbWUpIHtcbiAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSBuYW1lOyAgLy8vXG5cbiAgcmV0dXJuIHZhcmlhYmxlU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJpbXRpdmVTdHJpbmdGcm9tTm9kZShub2RlLCBjb250ZXh0KSB7XG4gIGNvbnN0IHByaW10aXZlU3RyaW5nID0gKG5vZGUgPT09IG51bGxOb2RlKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQubm9kZUFzU3RyaW5nKG5vZGUpO1xuXG4gIHJldHVybiBwcmltdGl2ZVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByaW10aXZlU3RyaW5nRnJvbU5vZGVzKG5vZGVzLCBjb250ZXh0KSB7XG4gIGNvbnN0IHN0cmluZyA9IGNvbnRleHQubm9kZXNBc1N0cmluZyhub2RlcyksXG4gICAgICAgIHByaW10aXZlU3RyaW5nID0gc3RyaW5nOyAgLy8vXG5cbiAgcmV0dXJuIHByaW10aXZlU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJpbXRpdmVTdHJpbmdGcm9tQm9vbGVhbihib29sZWFuKSB7XG4gIGNvbnN0IGV4cHJlc3NzaW9uU3RyaW5nID0gYCR7Ym9vbGVhbn1gO1xuXG4gIHJldHVybiBleHByZXNzc2lvblN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRlcm1zU3RyaW5nRnJvbVRlcm1zQXJyYXkodGVybXNBcnJheSkge1xuICBjb25zdCB0ZXJtc1N0cmluZyA9IHRlcm1zQXJyYXkucmVkdWNlKCh0ZXJtc1N0cmluZywgdGVybSkgPT4ge1xuICAgIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpO1xuXG4gICAgdGVybXNTdHJpbmcgPSAodGVybXNTdHJpbmcgPT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICAgdGVybVN0cmluZyA6XG4gICAgICAgICAgICAgICAgICAgICBgJHt0ZXJtc1N0cmluZ30sICR7dGVybVN0cmluZ31gO1xuXG4gICAgcmV0dXJuIHRlcm1zU3RyaW5nO1xuICB9LCBudWxsKTsgLy8vXG5cbiAgcmV0dXJuIHRlcm1zU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJpbXRpdmVTdHJpbmdGcm9tU3RyaW5nTGl0ZXJhbChzdHJpbmdMaXRlcmFsKSB7XG4gIGNvbnN0IHN0cmluZyA9IHN0cmluZ0Zyb21TdHJpbmdMaXRlcmFsKHN0cmluZ0xpdGVyYWwpLFxuICAgICAgICBwcmltdGl2ZVN0cmluZyA9IHN0cmluZzsgIC8vL1xuXG4gIHJldHVybiBwcmltdGl2ZVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRlcm1TdHJpbmdGcm9tUHJpbWl0aXZlQW5kUHJvcGVydGllcyhwcmltaXRpdmUsIHByb3BlcnRpZXMpIHtcbiAgbGV0IHRlcm1TdHJpbmc7XG5cbiAgaWYgKGZhbHNlKSB7XG4gICAgLy8vXG4gIH0gZWxzZSBpZiAocHJpbWl0aXZlICE9PSBudWxsKSB7XG4gICAgY29uc3QgcHJpbWl0aXZlU3RyaW5nID0gcHJpbWl0aXZlLmdldFN0cmluZygpO1xuXG4gICAgdGVybVN0cmluZyA9IHByaW1pdGl2ZVN0cmluZzsgLy8vXG4gIH0gZWxzZSB7XG4gICAgcHJvcGVydGllcy5mb3JFYWNoKChwcm9wZXJ0eSkgPT4ge1xuICAgICAgaWYgKHByb3BlcnR5ICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IHByb3BlcnR5U3RyaW5nID0gcHJvcGVydHkuZ2V0U3RyaW5nKCk7XG5cbiAgICAgICAgdGVybVN0cmluZyA9IHByb3BlcnR5U3RyaW5nOyAgLy8vXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gdGVybVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb2NlZHVyZURlY2xhcmF0aW9uU3RyaW5nRnJvbVByb2NlZHVyZShwcm9jZWR1cmUpIHtcbiAgY29uc3QgdHlwZSA9IHByb2NlZHVyZS5nZXRUeXBlKCksXG4gICAgICAgIGxhYmVsID0gcHJvY2VkdXJlLmdldExhYmVsKCksXG4gICAgICAgIHBhcmFtZXRlcnMgPSBwcm9jZWR1cmUuZ2V0UGFyYW1ldGVycygpLFxuICAgICAgICByZXR1cm5TdGF0ZW1lbnQgPSBwcm9jZWR1cmUuZ2V0UmV0dXJuU3RhdGVtZW50KCksXG4gICAgICAgIGxhYmVsU3RyaW5nID0gbGFiZWwuZ2V0U3RyaW5nKCksXG4gICAgICAgIHBhcmFtZXRlcnNTdHJpbmcgPSBwYXJhbWV0ZXJzLmdldFN0cmluZygpLFxuICAgICAgICByZXR1cm5TdGF0ZW1lbnRTdHJpbmcgPSByZXR1cm5TdGF0ZW1lbnQuZ2V0U3RyaW5nKCksXG4gICAgICAgIHByb2NlZHVyZURlbGNhcmF0aW9uU3RyaW5nID0gYCR7dHlwZX0gJHtsYWJlbFN0cmluZyB9KCR7cGFyYW1ldGVyc1N0cmluZ30pIHsgLi4uICR7cmV0dXJuU3RhdGVtZW50U3RyaW5nfSB9YDtcblxuICByZXR1cm4gcHJvY2VkdXJlRGVsY2FyYXRpb25TdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXR1cm5CbG9ja1N0cmluZ0Zyb21SZXR1cm5TdGF0ZW1lbnROb2RlKHJldHVyblN0YXRlbWVudCkge1xuICBjb25zdCByZXR1cm5TdGF0ZW1lbnRTdHJpbmcgPSByZXR1cm5TdGF0ZW1lbnQuZ2V0U3RyaW5nKCksXG4gICAgICAgIHJldHVybkJsb2NrU3RyaW5nID0gYHsgLi4uICR7cmV0dXJuU3RhdGVtZW50U3RyaW5nfSB9YDtcblxuICByZXR1cm4gcmV0dXJuQmxvY2tTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHByZXNzaW9uU3RyaW5nRnJvbVByaW1pdGl2ZUFuZFByb3BlcnRpZXMocHJpbWl0aXZlLCBwcm9wZXJ0aWVzKSB7XG4gIGxldCBleHByZXNzaW9uU3RyaW5nO1xuXG4gIGlmIChmYWxzZSkge1xuICAgIC8vL1xuICB9IGVsc2UgaWYgKHByaW1pdGl2ZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHByaW1pdGl2ZVN0cmluZyA9IHByaW1pdGl2ZS5nZXRTdHJpbmcoKTtcblxuICAgIGV4cHJlc3Npb25TdHJpbmcgPSBwcmltaXRpdmVTdHJpbmc7IC8vL1xuICB9IGVsc2Uge1xuICAgIHByb3BlcnRpZXMuZm9yRWFjaCgocHJvcGVydHkpID0+IHtcbiAgICAgIGlmIChwcm9wZXJ0eSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBwcm9wZXJ0eVN0cmluZyA9IHByb3BlcnR5LmdldFN0cmluZygpO1xuXG4gICAgICAgIGV4cHJlc3Npb25TdHJpbmcgPSBwcm9wZXJ0eVN0cmluZzsgIC8vL1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIGV4cHJlc3Npb25TdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmdGcm9tVHlwZUFuZFZhcmlhYmxlKHR5cGUsIHZhcmlhYmxlKSB7XG4gIGNvbnN0IHZhcmlhYmxlU3RyaW5nID0gdmFyaWFibGUuZ2V0U3RyaW5nKCksXG4gICAgICAgIHZhcmlhYmxlQXNzaWdubWVudFN0cmluZyA9IGAke3R5cGV9ICR7dmFyaWFibGVTdHJpbmd9ID0gLi4uIDtgO1xuXG4gIHJldHVybiB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzb21lU3RyaW5nRnJvbVZhcmlhYmxlQW5kQW5vbnltb3VzUHJvY2VkdXJlKHZhcmlhYmxlLCBhbm9ueW1vdXNQcm9jZWR1cmUpIHtcbiAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSB2YXJpYWJsZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nID0gYW5vbnltb3VzUHJvY2VkdXJlLmdldFN0cmluZygpLFxuICAgICAgICBzb21lU3RyaW5nID0gYFNvbWUoJHt2YXJpYWJsZVN0cmluZ30sICR7YW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nfSkgYDtcblxuICByZXR1cm4gc29tZVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV2ZXJ5U3RyaW5nRnJvbVZhcmlhYmxlQW5kQW5vbnltb3VzUHJvY2VkdXJlKHZhcmlhYmxlLCBhbm9ueW1vdXNQcm9jZWR1cmUpIHtcbiAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSB2YXJpYWJsZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nID0gYW5vbnltb3VzUHJvY2VkdXJlLmdldFN0cmluZygpLFxuICAgICAgICBldmVyeVN0cmluZyA9IGBFdmVyeSgke3ZhcmlhYmxlU3RyaW5nfSwgJHthbm9ueW1vdXNQcm9jZWR1cmVTdHJpbmd9KSBgO1xuXG4gIHJldHVybiBldmVyeVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhcmlhYmxlQXNzaWdubWVudFN0cmluZ0Zyb21WYXJpYWJsZUFzc2lnbm1lbnQodmFyaWFibGVBc3NpZ25tZW50KSB7XG4gIGNvbnN0IHZhcmlhYmxlID0gdmFyaWFibGVBc3NpZ25tZW50LmdldFZhcmlhYmxlKCksXG4gICAgICAgIHZhcmlhYmxlU3RyaW5nID0gdmFyaWFibGUuZ2V0U3RyaW5nKCksXG4gICAgICAgIHZhcmlhYmxlQXNzaWdubWVudFN0cmluZyA9IGAke3ZhcmlhYmxlU3RyaW5nfSA9IC4uLmA7XG5cbiAgcmV0dXJuIHZhcmlhYmxlQXNzaWdubWVudFN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb2NlZHVyZVN0cmluZ0Zyb21UeXBlTGFiZWxQYXJhbWV0ZXJzQW5kUmV0dXJuQmxvY2sodHlwZSwgbGFiZWwsIHBhcmFtZXRlcnMsIHJldHVybkJsb2NrKSB7XG4gIGNvbnN0IHR5cGVTdHJpbmcgPSB0eXBlLCAgLy8vXG4gICAgICAgIGxhYmVsU3RyaW5nID0gbGFiZWwuZ2V0U3RyaW5nKCksXG4gICAgICAgIHBhcmFtZXRlcnNTdHJpbmcgPSBwYXJhbWV0ZXJzLmdldFN0cmluZygpLFxuICAgICAgICByZXR1cm5CbG9ja1N0cmluZyA9IHJldHVybkJsb2NrLmdldFN0cmluZygpLFxuICAgICAgICBwcm9jZWR1cmVTdHJpbmcgPSBgJHt0eXBlU3RyaW5nfSAke2xhYmVsU3RyaW5nfSgke3BhcmFtZXRlcnNTdHJpbmd9KSAke3JldHVybkJsb2NrU3RyaW5nfWA7XG5cbiAgcmV0dXJuIHByb2NlZHVyZVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFub255bW91c1Byb2NlZHVyZVN0cmluZ0Zyb21UeXBlUGFyYW1ldGVyc0FuZFJldHVybkJsb2NrKHR5cGUsIHBhcmFtZXRlcnMsIHJldHVybkJsb2NrKSB7XG4gIGNvbnN0IHR5cGVTdHJpbmcgPSB0eXBlLCAgLy8vXG4gICAgICAgIHBhcmFtZXRlcnNTdHJpbmcgPSBwYXJhbWV0ZXJzLmdldFN0cmluZygpLFxuICAgICAgICByZXR1cm5CbG9ja1N0cmluZyA9IHJldHVybkJsb2NrLmdldFN0cmluZygpLFxuICAgICAgICBhbm9ueW1vdXNQcm9jZWR1cmVTdHJpbmcgPSBgJHt0eXBlU3RyaW5nfSAoJHtwYXJhbWV0ZXJzU3RyaW5nfSkgJHtyZXR1cm5CbG9ja1N0cmluZ31gO1xuXG4gIHJldHVybiBhbm9ueW1vdXNQcm9jZWR1cmVTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmdGcm9tVHlwZUFuZFZhcmlhYmxlQXNzaWdubWVudHNBcnJheSh0eXBlLCB2YXJpYWJsZUFzc2lnbm1lbnRzQXJyYXkpIHtcbiAgbGV0IHZhcmlhYmxlQXNzaWdubWVudHNTdHJpbmcgPSB2YXJpYWJsZUFzc2lnbm1lbnRzQXJyYXkucmVkdWNlKCh2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nLCB2YXJpYWJsZUFzc2lnbm1lbnQpID0+IHtcbiAgICBjb25zdCB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmcgPSB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmdGcm9tVmFyaWFibGVBc3NpZ25tZW50KHZhcmlhYmxlQXNzaWdubWVudCk7XG5cbiAgICB2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nID0gKHZhcmlhYmxlQXNzaWdubWVudHNTdHJpbmcgPT09IG51bGwpID9cbiAgICAgIHZhcmlhYmxlQXNzaWdubWVudFN0cmluZyA6XG4gICAgICBgJHt2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nfSwgJHt2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmd9YDtcblxuICAgIHJldHVybiB2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nO1xuICB9LCBudWxsKTsgLy8vXG5cbiAgdmFyaWFibGVBc3NpZ25tZW50c1N0cmluZyA9IGAke3R5cGV9ICR7dmFyaWFibGVBc3NpZ25tZW50c1N0cmluZ30gO2A7IC8vL1xuXG4gIHJldHVybiB2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVkdWNlU3RyaW5nRnJvbVZhcmlhYmxlSW5pdGlhbEV4cHJlc3Npb25BbmRBbm9ueW1vdXNQcm9jZWR1cmUodmFyaWFibGUsIGluaXRpYWxFeHByZXNzaW9uLCBhbm9ueW1vdXNQcm9jZWR1cmUpIHtcbiAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSB2YXJpYWJsZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgaW5pdGlhbEV4cHJlc3Npb25TdHJpbmcgPSBpbml0aWFsRXhwcmVzc2lvbi5nZXRTdHJpbmcoKSxcbiAgICAgICAgYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nID0gYW5vbnltb3VzUHJvY2VkdXJlLmdldFN0cmluZygpLFxuICAgICAgICByZWR1Y2VTdHJpbmcgPSBgUmVkdWNlKCR7dmFyaWFibGVTdHJpbmd9LCAke2Fub255bW91c1Byb2NlZHVyZVN0cmluZ30sICR7aW5pdGlhbEV4cHJlc3Npb25TdHJpbmd9KWA7XG5cbiAgcmV0dXJuIHJlZHVjZVN0cmluZztcbn1cblxuIl0sIm5hbWVzIjpbImFub255bW91c1Byb2NlZHVyZVN0cmluZ0Zyb21UeXBlUGFyYW1ldGVyc0FuZFJldHVybkJsb2NrIiwiZXZlcnlTdHJpbmdGcm9tVmFyaWFibGVBbmRBbm9ueW1vdXNQcm9jZWR1cmUiLCJleHByZXNzaW9uU3RyaW5nRnJvbVByaW1pdGl2ZUFuZFByb3BlcnRpZXMiLCJwcmltdGl2ZVN0cmluZ0Zyb21Cb29sZWFuIiwicHJpbXRpdmVTdHJpbmdGcm9tTm9kZSIsInByaW10aXZlU3RyaW5nRnJvbU5vZGVzIiwicHJpbXRpdmVTdHJpbmdGcm9tU3RyaW5nTGl0ZXJhbCIsInByb2NlZHVyZURlY2xhcmF0aW9uU3RyaW5nRnJvbVByb2NlZHVyZSIsInByb2NlZHVyZVN0cmluZ0Zyb21UeXBlTGFiZWxQYXJhbWV0ZXJzQW5kUmV0dXJuQmxvY2siLCJyZWR1Y2VTdHJpbmdGcm9tVmFyaWFibGVJbml0aWFsRXhwcmVzc2lvbkFuZEFub255bW91c1Byb2NlZHVyZSIsInJldHVybkJsb2NrU3RyaW5nRnJvbVJldHVyblN0YXRlbWVudE5vZGUiLCJzb21lU3RyaW5nRnJvbVZhcmlhYmxlQW5kQW5vbnltb3VzUHJvY2VkdXJlIiwidGVybVN0cmluZ0Zyb21QcmltaXRpdmVBbmRQcm9wZXJ0aWVzIiwidGVybXNTdHJpbmdGcm9tVGVybXNBcnJheSIsInRlcm5hcnlTdHJpbmdGcm9tVGVybSIsInZhcmlhYmxlQXNzaWdubWVudFN0cmluZ0Zyb21UeXBlQW5kVmFyaWFibGUiLCJ2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmdGcm9tVHlwZUFuZFZhcmlhYmxlQXNzaWdubWVudHNBcnJheSIsInZhcmlhYmxlQXNzaWdubWVudFN0cmluZ0Zyb21WYXJpYWJsZUFzc2lnbm1lbnQiLCJ2YXJpYWJsZVN0cmluZ0Zyb21OYW1lIiwidGVybSIsInRlcm1TdHJpbmciLCJnZXRTdHJpbmciLCJ0ZXJuYXJ5U3RyaW5nIiwibmFtZSIsInZhcmlhYmxlU3RyaW5nIiwibm9kZSIsImNvbnRleHQiLCJwcmltdGl2ZVN0cmluZyIsIm51bGxOb2RlIiwiTlVMTCIsIm5vZGVBc1N0cmluZyIsIm5vZGVzIiwic3RyaW5nIiwibm9kZXNBc1N0cmluZyIsImJvb2xlYW4iLCJleHByZXNzc2lvblN0cmluZyIsInRlcm1zQXJyYXkiLCJ0ZXJtc1N0cmluZyIsInJlZHVjZSIsInN0cmluZ0xpdGVyYWwiLCJzdHJpbmdGcm9tU3RyaW5nTGl0ZXJhbCIsInByaW1pdGl2ZSIsInByb3BlcnRpZXMiLCJwcmltaXRpdmVTdHJpbmciLCJmb3JFYWNoIiwicHJvcGVydHkiLCJwcm9wZXJ0eVN0cmluZyIsInByb2NlZHVyZSIsInR5cGUiLCJnZXRUeXBlIiwibGFiZWwiLCJnZXRMYWJlbCIsInBhcmFtZXRlcnMiLCJnZXRQYXJhbWV0ZXJzIiwicmV0dXJuU3RhdGVtZW50IiwiZ2V0UmV0dXJuU3RhdGVtZW50IiwibGFiZWxTdHJpbmciLCJwYXJhbWV0ZXJzU3RyaW5nIiwicmV0dXJuU3RhdGVtZW50U3RyaW5nIiwicHJvY2VkdXJlRGVsY2FyYXRpb25TdHJpbmciLCJyZXR1cm5CbG9ja1N0cmluZyIsImV4cHJlc3Npb25TdHJpbmciLCJ2YXJpYWJsZSIsInZhcmlhYmxlQXNzaWdubWVudFN0cmluZyIsImFub255bW91c1Byb2NlZHVyZSIsImFub255bW91c1Byb2NlZHVyZVN0cmluZyIsInNvbWVTdHJpbmciLCJldmVyeVN0cmluZyIsInZhcmlhYmxlQXNzaWdubWVudCIsImdldFZhcmlhYmxlIiwicmV0dXJuQmxvY2siLCJ0eXBlU3RyaW5nIiwicHJvY2VkdXJlU3RyaW5nIiwidmFyaWFibGVBc3NpZ25tZW50c0FycmF5IiwidmFyaWFibGVBc3NpZ25tZW50c1N0cmluZyIsImluaXRpYWxFeHByZXNzaW9uIiwiaW5pdGlhbEV4cHJlc3Npb25TdHJpbmciLCJyZWR1Y2VTdHJpbmciXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQXVLZ0JBO2VBQUFBOztRQTFCQUM7ZUFBQUE7O1FBckNBQztlQUFBQTs7UUFyRUFDO2VBQUFBOztRQWZBQztlQUFBQTs7UUFRQUM7ZUFBQUE7O1FBMkJBQztlQUFBQTs7UUE2QkFDO2VBQUFBOztRQXlFQUM7ZUFBQUE7O1FBbUNBQztlQUFBQTs7UUEvRkFDO2VBQUFBOztRQW9DQUM7ZUFBQUE7O1FBdkVBQztlQUFBQTs7UUFyQkFDO2VBQUFBOztRQWxDQUM7ZUFBQUE7O1FBdUhBQztlQUFBQTs7UUFrREFDO2VBQUFBOztRQTNCQUM7ZUFBQUE7O1FBdklBQztlQUFBQTs7OytEQVpLO3lCQUVBOzZCQUNtQjs7Ozs7O0FBRWpDLFNBQVNKLHNCQUFzQkssSUFBSTtJQUN4QyxJQUFNQyxhQUFhRCxLQUFLRSxTQUFTLElBQzNCQyxnQkFBZ0IsQUFBQyxPQUFpQixPQUFYRixZQUFXO0lBRXhDLE9BQU9FO0FBQ1Q7QUFFTyxTQUFTSix1QkFBdUJLLElBQUk7SUFDekMsSUFBTUMsaUJBQWlCRCxNQUFPLEdBQUc7SUFFakMsT0FBT0M7QUFDVDtBQUVPLFNBQVNwQix1QkFBdUJxQixJQUFJLEVBQUVDLE9BQU87SUFDbEQsSUFBTUMsaUJBQWlCLEFBQUNGLFNBQVNHLGlCQUFRLEdBQ2RDLGVBQUksR0FDRkgsUUFBUUksWUFBWSxDQUFDTDtJQUVsRCxPQUFPRTtBQUNUO0FBRU8sU0FBU3RCLHdCQUF3QjBCLEtBQUssRUFBRUwsT0FBTztJQUNwRCxJQUFNTSxT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
|
|
183
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc3RyaW5nLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgbnVsbE5vZGUgZnJvbSBcIi4uL251bGxOb2RlXCI7XG5cbmltcG9ydCB7IE5VTEwgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBzdHJpbmdGcm9tU3RyaW5nTGl0ZXJhbCB9IGZyb20gXCIuL3N0cmluZ0xpdGVyYWxcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHRlcm5hcnlTdHJpbmdGcm9tVGVybSh0ZXJtKSB7XG4gIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpLFxuICAgICAgICB0ZXJuYXJ5U3RyaW5nID0gYGlmICgke3Rlcm1TdHJpbmd9KSB7IC4uLiB9IGVsc2UgeyAuLi4gfWA7XG5cbiAgcmV0dXJuIHRlcm5hcnlTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YXJpYWJsZVN0cmluZ0Zyb21OYW1lKG5hbWUpIHtcbiAgY29uc3QgdmFyaWFibGVTdHJpbmcgPSBuYW1lOyAgLy8vXG5cbiAgcmV0dXJuIHZhcmlhYmxlU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJpbXRpdmVTdHJpbmdGcm9tTm9kZShub2RlLCBjb250ZXh0KSB7XG4gIGNvbnN0IHByaW10aXZlU3RyaW5nID0gKG5vZGUgPT09IG51bGxOb2RlKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQubm9kZUFzU3RyaW5nKG5vZGUpO1xuXG4gIHJldHVybiBwcmltdGl2ZVN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByaW10aXZlU3RyaW5nRnJvbU5vZGVzKG5vZGVzLCBjb250ZXh0KSB7XG4gIGNvbnN0IHN0cmluZyA9IGNvbnRleHQubm9kZXNBc1N0cmluZyhub2RlcyksXG4gICAgICAgIHByaW10aXZlU3RyaW5nID0gc3RyaW5nOyAgLy8vXG5cbiAgcmV0dXJuIHByaW10aXZlU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJpbXRpdmVTdHJpbmdGcm9tQm9vbGVhbihib29sZWFuKSB7XG4gIGNvbnN0IGV4cHJlc3NzaW9uU3RyaW5nID0gYCR7Ym9vbGVhbn1gO1xuXG4gIHJldHVybiBleHByZXNzc2lvblN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRlcm1zU3RyaW5nRnJvbVRlcm1zQXJyYXkodGVybXNBcnJheSkge1xuICBjb25zdCB0ZXJtc1N0cmluZyA9IHRlcm1zQXJyYXkucmVkdWNlKCh0ZXJtc1N0cmluZywgdGVybSkgPT4ge1xuICAgIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpO1xuXG4gICAgdGVybXNTdHJpbmcgPSAodGVybXNTdHJpbmcgPT09IG51bGwpID9cbiAgICAgICAgICAgICAgICAgICAgdGVybVN0cmluZyA6XG4gICAgICAgICAgICAgICAgICAgICBgJHt0ZXJtc1N0cmluZ30sICR7dGVybVN0cmluZ31gO1xuXG4gICAgcmV0dXJuIHRlcm1zU3RyaW5nO1xuICB9LCBudWxsKTsgLy8vXG5cbiAgcmV0dXJuIHRlcm1zU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXhwcmVzc2lvblN0cmluZ0Zyb21Qcm9wZXJ0aWVzKHByb3BlcnRpZXMpIHtcbiAgbGV0IGV4cHJlc3Npb25TdHJpbmc7XG5cbiAgcHJvcGVydGllcy5mb3JFYWNoKChwcm9wZXJ0eSkgPT4ge1xuICAgIGlmIChwcm9wZXJ0eSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgcHJvcGVydHlTdHJpbmcgPSBwcm9wZXJ0eS5nZXRTdHJpbmcoKTtcblxuICAgICAgZXhwcmVzc2lvblN0cmluZyA9IHByb3BlcnR5U3RyaW5nOyAgLy8vXG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gZXhwcmVzc2lvblN0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByaW10aXZlU3RyaW5nRnJvbVN0cmluZ0xpdGVyYWwoc3RyaW5nTGl0ZXJhbCkge1xuICBjb25zdCBzdHJpbmcgPSBzdHJpbmdGcm9tU3RyaW5nTGl0ZXJhbChzdHJpbmdMaXRlcmFsKSxcbiAgICAgICAgcHJpbXRpdmVTdHJpbmcgPSBzdHJpbmc7ICAvLy9cblxuICByZXR1cm4gcHJpbXRpdmVTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0ZXJtU3RyaW5nRnJvbVByaW1pdGl2ZUFuZFByb3BlcnRpZXMocHJpbWl0aXZlLCBwcm9wZXJ0aWVzKSB7XG4gIGxldCB0ZXJtU3RyaW5nO1xuXG4gIGlmIChmYWxzZSkge1xuICAgIC8vL1xuICB9IGVsc2UgaWYgKHByaW1pdGl2ZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHByaW1pdGl2ZVN0cmluZyA9IHByaW1pdGl2ZS5nZXRTdHJpbmcoKTtcblxuICAgIHRlcm1TdHJpbmcgPSBwcmltaXRpdmVTdHJpbmc7IC8vL1xuICB9IGVsc2Uge1xuICAgIHByb3BlcnRpZXMuZm9yRWFjaCgocHJvcGVydHkpID0+IHtcbiAgICAgIGlmIChwcm9wZXJ0eSAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBwcm9wZXJ0eVN0cmluZyA9IHByb3BlcnR5LmdldFN0cmluZygpO1xuXG4gICAgICAgIHRlcm1TdHJpbmcgPSBwcm9wZXJ0eVN0cmluZzsgIC8vL1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHRlcm1TdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm9jZWR1cmVEZWNsYXJhdGlvblN0cmluZ0Zyb21Qcm9jZWR1cmUocHJvY2VkdXJlKSB7XG4gIGNvbnN0IHR5cGUgPSBwcm9jZWR1cmUuZ2V0VHlwZSgpLFxuICAgICAgICBsYWJlbCA9IHByb2NlZHVyZS5nZXRMYWJlbCgpLFxuICAgICAgICBwYXJhbWV0ZXJzID0gcHJvY2VkdXJlLmdldFBhcmFtZXRlcnMoKSxcbiAgICAgICAgcmV0dXJuU3RhdGVtZW50ID0gcHJvY2VkdXJlLmdldFJldHVyblN0YXRlbWVudCgpLFxuICAgICAgICBsYWJlbFN0cmluZyA9IGxhYmVsLmdldFN0cmluZygpLFxuICAgICAgICBwYXJhbWV0ZXJzU3RyaW5nID0gcGFyYW1ldGVycy5nZXRTdHJpbmcoKSxcbiAgICAgICAgcmV0dXJuU3RhdGVtZW50U3RyaW5nID0gcmV0dXJuU3RhdGVtZW50LmdldFN0cmluZygpLFxuICAgICAgICBwcm9jZWR1cmVEZWxjYXJhdGlvblN0cmluZyA9IGAke3R5cGV9ICR7bGFiZWxTdHJpbmcgfSgke3BhcmFtZXRlcnNTdHJpbmd9KSB7IC4uLiAke3JldHVyblN0YXRlbWVudFN0cmluZ30gfWA7XG5cbiAgcmV0dXJuIHByb2NlZHVyZURlbGNhcmF0aW9uU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmV0dXJuQmxvY2tTdHJpbmdGcm9tUmV0dXJuU3RhdGVtZW50Tm9kZShyZXR1cm5TdGF0ZW1lbnQpIHtcbiAgY29uc3QgcmV0dXJuU3RhdGVtZW50U3RyaW5nID0gcmV0dXJuU3RhdGVtZW50LmdldFN0cmluZygpLFxuICAgICAgICByZXR1cm5CbG9ja1N0cmluZyA9IGB7IC4uLiAke3JldHVyblN0YXRlbWVudFN0cmluZ30gfWA7XG5cbiAgcmV0dXJuIHJldHVybkJsb2NrU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFyaWFibGVBc3NpZ25tZW50U3RyaW5nRnJvbVR5cGVBbmRWYXJpYWJsZSh0eXBlLCB2YXJpYWJsZSkge1xuICBjb25zdCB2YXJpYWJsZVN0cmluZyA9IHZhcmlhYmxlLmdldFN0cmluZygpLFxuICAgICAgICB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmcgPSBgJHt0eXBlfSAke3ZhcmlhYmxlU3RyaW5nfSA9IC4uLiA7YDtcblxuICByZXR1cm4gdmFyaWFibGVBc3NpZ25tZW50U3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc29tZVN0cmluZ0Zyb21WYXJpYWJsZUFuZEFub255bW91c1Byb2NlZHVyZSh2YXJpYWJsZSwgYW5vbnltb3VzUHJvY2VkdXJlKSB7XG4gIGNvbnN0IHZhcmlhYmxlU3RyaW5nID0gdmFyaWFibGUuZ2V0U3RyaW5nKCksXG4gICAgICAgIGFub255bW91c1Byb2NlZHVyZVN0cmluZyA9IGFub255bW91c1Byb2NlZHVyZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgc29tZVN0cmluZyA9IGBTb21lKCR7dmFyaWFibGVTdHJpbmd9LCAke2Fub255bW91c1Byb2NlZHVyZVN0cmluZ30pIGA7XG5cbiAgcmV0dXJuIHNvbWVTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBldmVyeVN0cmluZ0Zyb21WYXJpYWJsZUFuZEFub255bW91c1Byb2NlZHVyZSh2YXJpYWJsZSwgYW5vbnltb3VzUHJvY2VkdXJlKSB7XG4gIGNvbnN0IHZhcmlhYmxlU3RyaW5nID0gdmFyaWFibGUuZ2V0U3RyaW5nKCksXG4gICAgICAgIGFub255bW91c1Byb2NlZHVyZVN0cmluZyA9IGFub255bW91c1Byb2NlZHVyZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgZXZlcnlTdHJpbmcgPSBgRXZlcnkoJHt2YXJpYWJsZVN0cmluZ30sICR7YW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nfSkgYDtcblxuICByZXR1cm4gZXZlcnlTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmdGcm9tVmFyaWFibGVBc3NpZ25tZW50KHZhcmlhYmxlQXNzaWdubWVudCkge1xuICBjb25zdCB2YXJpYWJsZSA9IHZhcmlhYmxlQXNzaWdubWVudC5nZXRWYXJpYWJsZSgpLFxuICAgICAgICB2YXJpYWJsZVN0cmluZyA9IHZhcmlhYmxlLmdldFN0cmluZygpLFxuICAgICAgICB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmcgPSBgJHt2YXJpYWJsZVN0cmluZ30gPSAuLi5gO1xuXG4gIHJldHVybiB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm9jZWR1cmVTdHJpbmdGcm9tVHlwZUxhYmVsUGFyYW1ldGVyc0FuZFJldHVybkJsb2NrKHR5cGUsIGxhYmVsLCBwYXJhbWV0ZXJzLCByZXR1cm5CbG9jaykge1xuICBjb25zdCB0eXBlU3RyaW5nID0gdHlwZSwgIC8vL1xuICAgICAgICBsYWJlbFN0cmluZyA9IGxhYmVsLmdldFN0cmluZygpLFxuICAgICAgICBwYXJhbWV0ZXJzU3RyaW5nID0gcGFyYW1ldGVycy5nZXRTdHJpbmcoKSxcbiAgICAgICAgcmV0dXJuQmxvY2tTdHJpbmcgPSByZXR1cm5CbG9jay5nZXRTdHJpbmcoKSxcbiAgICAgICAgcHJvY2VkdXJlU3RyaW5nID0gYCR7dHlwZVN0cmluZ30gJHtsYWJlbFN0cmluZ30oJHtwYXJhbWV0ZXJzU3RyaW5nfSkgJHtyZXR1cm5CbG9ja1N0cmluZ31gO1xuXG4gIHJldHVybiBwcm9jZWR1cmVTdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhbm9ueW1vdXNQcm9jZWR1cmVTdHJpbmdGcm9tVHlwZVBhcmFtZXRlcnNBbmRSZXR1cm5CbG9jayh0eXBlLCBwYXJhbWV0ZXJzLCByZXR1cm5CbG9jaykge1xuICBjb25zdCB0eXBlU3RyaW5nID0gdHlwZSwgIC8vL1xuICAgICAgICBwYXJhbWV0ZXJzU3RyaW5nID0gcGFyYW1ldGVycy5nZXRTdHJpbmcoKSxcbiAgICAgICAgcmV0dXJuQmxvY2tTdHJpbmcgPSByZXR1cm5CbG9jay5nZXRTdHJpbmcoKSxcbiAgICAgICAgYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nID0gYCR7dHlwZVN0cmluZ30gKCR7cGFyYW1ldGVyc1N0cmluZ30pICR7cmV0dXJuQmxvY2tTdHJpbmd9YDtcblxuICByZXR1cm4gYW5vbnltb3VzUHJvY2VkdXJlU3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFyaWFibGVBc3NpZ25tZW50U3RyaW5nRnJvbVR5cGVBbmRWYXJpYWJsZUFzc2lnbm1lbnRzQXJyYXkodHlwZSwgdmFyaWFibGVBc3NpZ25tZW50c0FycmF5KSB7XG4gIGxldCB2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nID0gdmFyaWFibGVBc3NpZ25tZW50c0FycmF5LnJlZHVjZSgodmFyaWFibGVBc3NpZ25tZW50c1N0cmluZywgdmFyaWFibGVBc3NpZ25tZW50KSA9PiB7XG4gICAgY29uc3QgdmFyaWFibGVBc3NpZ25tZW50U3RyaW5nID0gdmFyaWFibGVBc3NpZ25tZW50U3RyaW5nRnJvbVZhcmlhYmxlQXNzaWdubWVudCh2YXJpYWJsZUFzc2lnbm1lbnQpO1xuXG4gICAgdmFyaWFibGVBc3NpZ25tZW50c1N0cmluZyA9ICh2YXJpYWJsZUFzc2lnbm1lbnRzU3RyaW5nID09PSBudWxsKSA/XG4gICAgICB2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmcgOlxuICAgICAgYCR7dmFyaWFibGVBc3NpZ25tZW50c1N0cmluZ30sICR7dmFyaWFibGVBc3NpZ25tZW50U3RyaW5nfWA7XG5cbiAgICByZXR1cm4gdmFyaWFibGVBc3NpZ25tZW50c1N0cmluZztcbiAgfSwgbnVsbCk7IC8vL1xuXG4gIHZhcmlhYmxlQXNzaWdubWVudHNTdHJpbmcgPSBgJHt0eXBlfSAke3ZhcmlhYmxlQXNzaWdubWVudHNTdHJpbmd9IDtgOyAvLy9cblxuICByZXR1cm4gdmFyaWFibGVBc3NpZ25tZW50c1N0cmluZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlZHVjZVN0cmluZ0Zyb21WYXJpYWJsZUluaXRpYWxFeHByZXNzaW9uQW5kQW5vbnltb3VzUHJvY2VkdXJlKHZhcmlhYmxlLCBpbml0aWFsRXhwcmVzc2lvbiwgYW5vbnltb3VzUHJvY2VkdXJlKSB7XG4gIGNvbnN0IHZhcmlhYmxlU3RyaW5nID0gdmFyaWFibGUuZ2V0U3RyaW5nKCksXG4gICAgICAgIGluaXRpYWxFeHByZXNzaW9uU3RyaW5nID0gaW5pdGlhbEV4cHJlc3Npb24uZ2V0U3RyaW5nKCksXG4gICAgICAgIGFub255bW91c1Byb2NlZHVyZVN0cmluZyA9IGFub255bW91c1Byb2NlZHVyZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgcmVkdWNlU3RyaW5nID0gYFJlZHVjZSgke3ZhcmlhYmxlU3RyaW5nfSwgJHthbm9ueW1vdXNQcm9jZWR1cmVTdHJpbmd9LCAke2luaXRpYWxFeHByZXNzaW9uU3RyaW5nfSlgO1xuXG4gIHJldHVybiByZWR1Y2VTdHJpbmc7XG59XG5cbiJdLCJuYW1lcyI6WyJhbm9ueW1vdXNQcm9jZWR1cmVTdHJpbmdGcm9tVHlwZVBhcmFtZXRlcnNBbmRSZXR1cm5CbG9jayIsImV2ZXJ5U3RyaW5nRnJvbVZhcmlhYmxlQW5kQW5vbnltb3VzUHJvY2VkdXJlIiwiZXhwcmVzc2lvblN0cmluZ0Zyb21Qcm9wZXJ0aWVzIiwicHJpbXRpdmVTdHJpbmdGcm9tQm9vbGVhbiIsInByaW10aXZlU3RyaW5nRnJvbU5vZGUiLCJwcmltdGl2ZVN0cmluZ0Zyb21Ob2RlcyIsInByaW10aXZlU3RyaW5nRnJvbVN0cmluZ0xpdGVyYWwiLCJwcm9jZWR1cmVEZWNsYXJhdGlvblN0cmluZ0Zyb21Qcm9jZWR1cmUiLCJwcm9jZWR1cmVTdHJpbmdGcm9tVHlwZUxhYmVsUGFyYW1ldGVyc0FuZFJldHVybkJsb2NrIiwicmVkdWNlU3RyaW5nRnJvbVZhcmlhYmxlSW5pdGlhbEV4cHJlc3Npb25BbmRBbm9ueW1vdXNQcm9jZWR1cmUiLCJyZXR1cm5CbG9ja1N0cmluZ0Zyb21SZXR1cm5TdGF0ZW1lbnROb2RlIiwic29tZVN0cmluZ0Zyb21WYXJpYWJsZUFuZEFub255bW91c1Byb2NlZHVyZSIsInRlcm1TdHJpbmdGcm9tUHJpbWl0aXZlQW5kUHJvcGVydGllcyIsInRlcm1zU3RyaW5nRnJvbVRlcm1zQXJyYXkiLCJ0ZXJuYXJ5U3RyaW5nRnJvbVRlcm0iLCJ2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmdGcm9tVHlwZUFuZFZhcmlhYmxlIiwidmFyaWFibGVBc3NpZ25tZW50U3RyaW5nRnJvbVR5cGVBbmRWYXJpYWJsZUFzc2lnbm1lbnRzQXJyYXkiLCJ2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmdGcm9tVmFyaWFibGVBc3NpZ25tZW50IiwidmFyaWFibGVTdHJpbmdGcm9tTmFtZSIsInRlcm0iLCJ0ZXJtU3RyaW5nIiwiZ2V0U3RyaW5nIiwidGVybmFyeVN0cmluZyIsIm5hbWUiLCJ2YXJpYWJsZVN0cmluZyIsIm5vZGUiLCJjb250ZXh0IiwicHJpbXRpdmVTdHJpbmciLCJudWxsTm9kZSIsIk5VTEwiLCJub2RlQXNTdHJpbmciLCJub2RlcyIsInN0cmluZyIsIm5vZGVzQXNTdHJpbmciLCJib29sZWFuIiwiZXhwcmVzc3Npb25TdHJpbmciLCJ0ZXJtc0FycmF5IiwidGVybXNTdHJpbmciLCJyZWR1Y2UiLCJwcm9wZXJ0aWVzIiwiZXhwcmVzc2lvblN0cmluZyIsImZvckVhY2giLCJwcm9wZXJ0eSIsInByb3BlcnR5U3RyaW5nIiwic3RyaW5nTGl0ZXJhbCIsInN0cmluZ0Zyb21TdHJpbmdMaXRlcmFsIiwicHJpbWl0aXZlIiwicHJpbWl0aXZlU3RyaW5nIiwicHJvY2VkdXJlIiwidHlwZSIsImdldFR5cGUiLCJsYWJlbCIsImdldExhYmVsIiwicGFyYW1ldGVycyIsImdldFBhcmFtZXRlcnMiLCJyZXR1cm5TdGF0ZW1lbnQiLCJnZXRSZXR1cm5TdGF0ZW1lbnQiLCJsYWJlbFN0cmluZyIsInBhcmFtZXRlcnNTdHJpbmciLCJyZXR1cm5TdGF0ZW1lbnRTdHJpbmciLCJwcm9jZWR1cmVEZWxjYXJhdGlvblN0cmluZyIsInJldHVybkJsb2NrU3RyaW5nIiwidmFyaWFibGUiLCJ2YXJpYWJsZUFzc2lnbm1lbnRTdHJpbmciLCJhbm9ueW1vdXNQcm9jZWR1cmUiLCJhbm9ueW1vdXNQcm9jZWR1cmVTdHJpbmciLCJzb21lU3RyaW5nIiwiZXZlcnlTdHJpbmciLCJ2YXJpYWJsZUFzc2lnbm1lbnQiLCJnZXRWYXJpYWJsZSIsInJldHVybkJsb2NrIiwidHlwZVN0cmluZyIsInByb2NlZHVyZVN0cmluZyIsInZhcmlhYmxlQXNzaWdubWVudHNBcnJheSIsInZhcmlhYmxlQXNzaWdubWVudHNTdHJpbmciLCJpbml0aWFsRXhwcmVzc2lvbiIsImluaXRpYWxFeHByZXNzaW9uU3RyaW5nIiwicmVkdWNlU3Ry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
|
package/package.json
CHANGED
|
@@ -42,7 +42,8 @@ export default define(class ArrayAssigment {
|
|
|
42
42
|
throw exception;
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
const
|
|
45
|
+
const primitiveValue = term.getPrimitiveValue(),
|
|
46
|
+
nodes = primitiveValue, ///
|
|
46
47
|
nodesLength = nodes.length,
|
|
47
48
|
parametersLength = this.parameters.getLength();
|
|
48
49
|
|
|
@@ -104,7 +104,8 @@ export default define(class ObjectAssigment {
|
|
|
104
104
|
throw exception;
|
|
105
105
|
}
|
|
106
106
|
|
|
107
|
-
const
|
|
107
|
+
const primitiveValue = term.getPrimitiveValue(),
|
|
108
|
+
node = primitiveValue, ///
|
|
108
109
|
nodeTerminalNode = node.isTerminalNode();
|
|
109
110
|
|
|
110
111
|
if (!nodeTerminalNode) {
|
|
@@ -143,7 +144,8 @@ export default define(class ObjectAssigment {
|
|
|
143
144
|
throw exception;
|
|
144
145
|
}
|
|
145
146
|
|
|
146
|
-
const
|
|
147
|
+
const primitiveValue = term.getPrimitiveValue(),
|
|
148
|
+
node = primitiveValue, ///
|
|
147
149
|
nodeTerminalNode = node.isTerminalNode(),
|
|
148
150
|
terminal = nodeTerminalNode; ///
|
|
149
151
|
|
|
@@ -172,7 +174,8 @@ export default define(class ObjectAssigment {
|
|
|
172
174
|
throw exception;
|
|
173
175
|
}
|
|
174
176
|
|
|
175
|
-
const
|
|
177
|
+
const primitiveValue = term.getPrimitiveValue(),
|
|
178
|
+
node = primitiveValue, ///
|
|
176
179
|
nodeNonTerminalNode = node.isNonTerminalNode();
|
|
177
180
|
|
|
178
181
|
if (!nodeNonTerminalNode) {
|
|
@@ -3,10 +3,9 @@
|
|
|
3
3
|
import { define } from "../elements";
|
|
4
4
|
|
|
5
5
|
export default define(class Expression {
|
|
6
|
-
constructor(string,
|
|
6
|
+
constructor(string, term, some, every, reduce, ternary, nodeQuery, nodesQuery, returnBlock, procedureCall) {
|
|
7
7
|
this.string = string;
|
|
8
|
-
this.
|
|
9
|
-
this.primitive = primitive;
|
|
8
|
+
this.term = term;
|
|
10
9
|
this.some = some;
|
|
11
10
|
this.every = every;
|
|
12
11
|
this.reduce = reduce;
|
|
@@ -21,12 +20,8 @@ export default define(class Expression {
|
|
|
21
20
|
return this.string;
|
|
22
21
|
}
|
|
23
22
|
|
|
24
|
-
|
|
25
|
-
return this.
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
getPrimitive() {
|
|
29
|
-
return this.primitive;
|
|
23
|
+
getTerm() {
|
|
24
|
+
return this.term;
|
|
30
25
|
}
|
|
31
26
|
|
|
32
27
|
getSome() {
|
|
@@ -61,25 +56,13 @@ export default define(class Expression {
|
|
|
61
56
|
return this.procedureCall;
|
|
62
57
|
}
|
|
63
58
|
|
|
64
|
-
getNode() { return this.primitive.getNode(); }
|
|
65
|
-
|
|
66
|
-
getNodes() { return this.primitive.getNodes(); }
|
|
67
|
-
|
|
68
|
-
getNumber() { return this.primitive.getNumber(); }
|
|
69
|
-
|
|
70
|
-
getBoolean() { return this.primitive.getBoolean(); }
|
|
71
|
-
|
|
72
|
-
getStringLiteral() { return this.primitive.getStringLiteral(); }
|
|
73
|
-
|
|
74
59
|
getType() {
|
|
75
60
|
let type;
|
|
76
61
|
|
|
77
62
|
if (false) {
|
|
78
63
|
///
|
|
79
|
-
} else if (this.
|
|
80
|
-
type = this.
|
|
81
|
-
} else if (this.primitive !== null) {
|
|
82
|
-
type = this.primitive.getType();
|
|
64
|
+
} else if (this.term !== null) {
|
|
65
|
+
type = this.term.getType();
|
|
83
66
|
} else if (this.some !== null) {
|
|
84
67
|
type = this.some.getType();
|
|
85
68
|
} else if (this.every !== null) {
|
|
@@ -106,10 +89,8 @@ export default define(class Expression {
|
|
|
106
89
|
|
|
107
90
|
if (false) {
|
|
108
91
|
///
|
|
109
|
-
} else if (this.
|
|
110
|
-
term = this.
|
|
111
|
-
} else if (this.primitive !== null) {
|
|
112
|
-
term = this.primitive.evaluate(context);
|
|
92
|
+
} else if (this.term !== null) {
|
|
93
|
+
term = this.term.evaluate(context);
|
|
113
94
|
} else if (this.some !== null) {
|
|
114
95
|
term = this.some.evaluate(context);
|
|
115
96
|
} else if (this.every !== null) {
|
package/src/element/nodeQuery.js
CHANGED
|
@@ -55,9 +55,13 @@ export default define(class NodeQuery {
|
|
|
55
55
|
throw exception;
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
|
|
58
|
+
let node;
|
|
59
|
+
|
|
60
|
+
const primitiveValue = term.getPrimitiveValue();
|
|
61
|
+
|
|
62
|
+
node = primitiveValue; ///
|
|
59
63
|
|
|
60
|
-
if (
|
|
64
|
+
if (node === null) {
|
|
61
65
|
const termString = term.getString(),
|
|
62
66
|
message = `The '${termString}' term's node is null.`,
|
|
63
67
|
exception = Exception.fromMessage(message);
|
|
@@ -65,10 +69,6 @@ export default define(class NodeQuery {
|
|
|
65
69
|
throw exception;
|
|
66
70
|
}
|
|
67
71
|
|
|
68
|
-
let node;
|
|
69
|
-
|
|
70
|
-
node = termNode; ///
|
|
71
|
-
|
|
72
72
|
const nodes = this.query.execute(node),
|
|
73
73
|
nodesLength = nodes.length;
|
|
74
74
|
|
|
@@ -51,9 +51,13 @@ export default define(class NodesQuery {
|
|
|
51
51
|
throw exception;
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
let node;
|
|
55
|
+
|
|
56
|
+
const primitiveValue = term.getPrimitiveValue();
|
|
57
|
+
|
|
58
|
+
node = primitiveValue; ///
|
|
55
59
|
|
|
56
|
-
if (
|
|
60
|
+
if (node === null) {
|
|
57
61
|
const termString = term.getString(),
|
|
58
62
|
message = `The '${termString}' term's node is null.`,
|
|
59
63
|
exception = Exception.fromMessage(message);
|
|
@@ -61,10 +65,6 @@ export default define(class NodesQuery {
|
|
|
61
65
|
throw exception;
|
|
62
66
|
}
|
|
63
67
|
|
|
64
|
-
let node;
|
|
65
|
-
|
|
66
|
-
node = termNode; ///
|
|
67
|
-
|
|
68
68
|
const nodes = this.query.execute(node);
|
|
69
69
|
|
|
70
70
|
term = termFromNodes(nodes, context);
|
package/src/element/primitive.js
CHANGED
|
@@ -29,56 +29,6 @@ export default define(class Primitive {
|
|
|
29
29
|
return this.value;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
getNode() {
|
|
33
|
-
let node = null;
|
|
34
|
-
|
|
35
|
-
if (this.type === NODE_TYPE) {
|
|
36
|
-
node = this.value; ///
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
return node;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
getNodes() {
|
|
43
|
-
let nodes = null;
|
|
44
|
-
|
|
45
|
-
if (this.type === NODES_TYPE) {
|
|
46
|
-
nodes = this.value; ///
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
return nodes;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
getNumber() {
|
|
53
|
-
let number = null;
|
|
54
|
-
|
|
55
|
-
if (this.type === NUMBER_TYPE) {
|
|
56
|
-
number = this.value; ///
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
return number;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
getBoolean() {
|
|
63
|
-
let boolean = null;
|
|
64
|
-
|
|
65
|
-
if (this.type === BOOLEAN_TYPE) {
|
|
66
|
-
boolean = this.value; ///
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
return boolean;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
getStringLiteral() {
|
|
73
|
-
let stringLiteral = null;
|
|
74
|
-
|
|
75
|
-
if (this.type === STRING_TYPE) {
|
|
76
|
-
stringLiteral = this.value; ///
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
return stringLiteral;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
32
|
evaluate(context) {
|
|
83
33
|
const { Term } = elements,
|
|
84
34
|
primitive = this,
|
package/src/element/some.js
CHANGED
|
@@ -45,7 +45,8 @@ export default define(class Some {
|
|
|
45
45
|
throw exception;
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
const
|
|
48
|
+
const primitiveValue = term.getPrimitiveValue(),
|
|
49
|
+
nodes = primitiveValue, ///
|
|
49
50
|
boolean = nodes.some((node) => {
|
|
50
51
|
let term;
|
|
51
52
|
|
|
@@ -66,7 +67,8 @@ export default define(class Some {
|
|
|
66
67
|
throw exception;
|
|
67
68
|
}
|
|
68
69
|
|
|
69
|
-
const
|
|
70
|
+
const primitiveValue = term.getPrimitiveValue(),
|
|
71
|
+
boolean = primitiveValue; ///
|
|
70
72
|
|
|
71
73
|
return boolean;
|
|
72
74
|
});
|
|
@@ -63,11 +63,13 @@ export default define(class LogicalTerm {
|
|
|
63
63
|
throw exception;
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
-
const
|
|
67
|
-
|
|
66
|
+
const leftTermPrimitiveValue = leftTerm.getPrimitiveValue(),
|
|
67
|
+
rightTermPrimitiveValue = rightTerm.getPrimitiveValue(),
|
|
68
|
+
leftBoolean =leftTermPrimitiveValue, ///
|
|
69
|
+
rightBoolean = rightTermPrimitiveValue, ///
|
|
68
70
|
boolean = this.disjunction ?
|
|
69
|
-
(
|
|
70
|
-
(
|
|
71
|
+
(leftBoolean || rightBoolean) :
|
|
72
|
+
(leftBoolean && rightBoolean);
|
|
71
73
|
|
|
72
74
|
term = termFromBoolean(boolean, context);
|
|
73
75
|
|
package/src/element/term.js
CHANGED
|
@@ -41,15 +41,11 @@ export default define(class Term {
|
|
|
41
41
|
return this.comparisonTerm;
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
getPrimitiveValue() {
|
|
45
|
+
const primitiveValue = this.primitive.getValue();
|
|
45
46
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
getNumber() { return this.primitive.getNumber(); }
|
|
49
|
-
|
|
50
|
-
getBoolean() { return this.primitive.getBoolean(); }
|
|
51
|
-
|
|
52
|
-
getStringLiteral() { return this.primitive.getStringLiteral(); }
|
|
47
|
+
return primitiveValue;
|
|
48
|
+
}
|
|
53
49
|
|
|
54
50
|
getType() {
|
|
55
51
|
let type;
|
package/src/element/ternary.js
CHANGED
package/src/node/expression.js
CHANGED
|
@@ -2,18 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
import NonTerminalNode from "../nonTerminalNode";
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import { TERM_RULE_NAME,
|
|
6
|
+
SOME_RULE_NAME,
|
|
6
7
|
EVERY_RULE_NAME,
|
|
7
8
|
REDUCE_RULE_NAME,
|
|
8
9
|
TERNARY_RULE_NAME,
|
|
9
|
-
VARIABLE_RULE_NAME,
|
|
10
|
-
PRIMITIVE_RULE_NAME,
|
|
11
10
|
NODE_QUERY_RULE_NAME,
|
|
12
11
|
NODES_QUERY_RULE_NAME,
|
|
13
12
|
RETURN_BLOCK_RULE_NAME,
|
|
14
13
|
PROCEDURE_CALL_RULE_NAME } from "../ruleNames";
|
|
15
14
|
|
|
16
15
|
export default class ExpressionNode extends NonTerminalNode {
|
|
16
|
+
getTermNode() {
|
|
17
|
+
const ruleName = TERM_RULE_NAME,
|
|
18
|
+
termNode = this.getNodeByRuleName(ruleName);
|
|
19
|
+
|
|
20
|
+
return termNode;
|
|
21
|
+
}
|
|
22
|
+
|
|
17
23
|
getSomeNode() {
|
|
18
24
|
const ruleName = SOME_RULE_NAME,
|
|
19
25
|
someNode = this.getNodeByRuleName(ruleName);
|
|
@@ -42,20 +48,6 @@ export default class ExpressionNode extends NonTerminalNode {
|
|
|
42
48
|
return ternaryNode;
|
|
43
49
|
}
|
|
44
50
|
|
|
45
|
-
getVariableNode() {
|
|
46
|
-
const ruleName = VARIABLE_RULE_NAME,
|
|
47
|
-
variableNode = this.getNodeByRuleName(ruleName);
|
|
48
|
-
|
|
49
|
-
return variableNode;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
getPrimitiveNode() {
|
|
53
|
-
const ruleName = PRIMITIVE_RULE_NAME,
|
|
54
|
-
primitiveNode = this.getNodeByRuleName(ruleName);
|
|
55
|
-
|
|
56
|
-
return primitiveNode;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
51
|
getNodeQueryNode() {
|
|
60
52
|
const ruleName = NODE_QUERY_RULE_NAME,
|
|
61
53
|
nodeQueryNode = this.getNodeByRuleName(ruleName);
|
package/src/utilities/element.js
CHANGED
|
@@ -7,10 +7,10 @@ import elements from "../elements";
|
|
|
7
7
|
import { BOOLEAN_TYPE } from "../types";
|
|
8
8
|
import { ternaryStringFromTerm,
|
|
9
9
|
variableStringFromName,
|
|
10
|
+
expressionStringFromProperties,
|
|
10
11
|
termStringFromPrimitiveAndProperties,
|
|
11
12
|
procedureDeclarationStringFromProcedure,
|
|
12
13
|
returnBlockStringFromReturnStatementNode,
|
|
13
|
-
expressionStringFromPrimitiveAndProperties,
|
|
14
14
|
variableAssignmentStringFromTypeAndVariable,
|
|
15
15
|
someStringFromVariableAndAnonymousProcedure,
|
|
16
16
|
everyStringFromVariableAndAnonymousProcedure,
|
|
@@ -215,8 +215,7 @@ export function parametersFromParametersNode(parametersNode, context) {
|
|
|
215
215
|
|
|
216
216
|
export function expressionFromExpressionNode(expressionNode, context) {
|
|
217
217
|
const { Expression } = elements,
|
|
218
|
-
|
|
219
|
-
primitive = primitiveFromExpressionNode(expressionNode, context),
|
|
218
|
+
term = termFromExpressionNode(expressionNode, context),
|
|
220
219
|
some = someFromExpressionNode(expressionNode, context),
|
|
221
220
|
every = everyFromExpressionNode(expressionNode, context),
|
|
222
221
|
reduce = reduceFromExpressionNode(expressionNode, context),
|
|
@@ -226,19 +225,19 @@ export function expressionFromExpressionNode(expressionNode, context) {
|
|
|
226
225
|
returnBlock = returnBlockFromExpressionNode(expressionNode, context),
|
|
227
226
|
procedureCall = procedureCallFromExpressionNode(expressionNode, context),
|
|
228
227
|
properties = [
|
|
228
|
+
term,
|
|
229
229
|
some,
|
|
230
230
|
every,
|
|
231
231
|
reduce,
|
|
232
232
|
ternary,
|
|
233
|
-
variable,
|
|
234
233
|
nodeQuery,
|
|
235
234
|
nodesQuery,
|
|
236
235
|
returnBlock,
|
|
237
236
|
procedureCall
|
|
238
237
|
],
|
|
239
|
-
expressionString =
|
|
238
|
+
expressionString = expressionStringFromProperties(properties, context),
|
|
240
239
|
string = expressionString, ///
|
|
241
|
-
expression = new Expression(string,
|
|
240
|
+
expression = new Expression(string, term, some, every, reduce, ternary, nodeQuery, nodesQuery, returnBlock, procedureCall);
|
|
242
241
|
|
|
243
242
|
return expression;
|
|
244
243
|
}
|
|
@@ -457,6 +456,18 @@ export function variableFromReduceNode(reduceNode, context) {
|
|
|
457
456
|
return variable;
|
|
458
457
|
}
|
|
459
458
|
|
|
459
|
+
export function termFromExpressionNode(expressionNode, context) {
|
|
460
|
+
let term = null;
|
|
461
|
+
|
|
462
|
+
const termNode = expressionNode.getTermNode();
|
|
463
|
+
|
|
464
|
+
if (termNode !== null) {
|
|
465
|
+
term = termFromTermNode(termNode, context);
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
return term;
|
|
469
|
+
}
|
|
470
|
+
|
|
460
471
|
export function someFromExpressionNode(expressionNode, context) {
|
|
461
472
|
let some = null;
|
|
462
473
|
|
|
@@ -533,9 +544,15 @@ export function typeFromLogicalTermNode(logicalTermNode, context) {
|
|
|
533
544
|
return type;
|
|
534
545
|
}
|
|
535
546
|
|
|
547
|
+
export function typeFromNegatedTermNode(logicalTermNode, context) {
|
|
548
|
+
const type = BOOLEAN_TYPE;
|
|
549
|
+
|
|
550
|
+
return type;
|
|
551
|
+
}
|
|
552
|
+
|
|
536
553
|
export function termFromNegatedTermNode(negatedTermNode, context) {
|
|
537
554
|
const termNode = negatedTermNode.getTermNode(),
|
|
538
|
-
|
|
555
|
+
term = termFromTermNode(termNode, context);
|
|
539
556
|
|
|
540
557
|
return term;
|
|
541
558
|
}
|
|
@@ -633,18 +650,6 @@ export function variableFromNodesQueryNode(nodesQueryNode, context) {
|
|
|
633
650
|
return variable;
|
|
634
651
|
}
|
|
635
652
|
|
|
636
|
-
export function variableFromExpressionNode(expressionNode, context) {
|
|
637
|
-
let variable = null;
|
|
638
|
-
|
|
639
|
-
const variableNode = expressionNode.getVariableNode();
|
|
640
|
-
|
|
641
|
-
if (variableNode !== null) {
|
|
642
|
-
variable = variableFromVariableNode(variableNode, context);
|
|
643
|
-
}
|
|
644
|
-
|
|
645
|
-
return variable;
|
|
646
|
-
}
|
|
647
|
-
|
|
648
653
|
export function termsFromProcedureCallNode(procedureCallNode, context) {
|
|
649
654
|
const termsNode = procedureCallNode.getTermsNode(),
|
|
650
655
|
terms = termsFromTermsNode(termsNode, context);
|
|
@@ -690,18 +695,6 @@ export function ifExpressionFromTernaryNode(ternaryNode, context) {
|
|
|
690
695
|
return ifExpression;
|
|
691
696
|
}
|
|
692
697
|
|
|
693
|
-
export function primitiveFromExpressionNode(expressionNode, context) {
|
|
694
|
-
let primitive = null;
|
|
695
|
-
|
|
696
|
-
const primitiveNode = expressionNode.getPrimitiveNode();
|
|
697
|
-
|
|
698
|
-
if (primitiveNode !== null) {
|
|
699
|
-
primitive = primitiveFromPrimitiveNode(primitiveNode, context);
|
|
700
|
-
}
|
|
701
|
-
|
|
702
|
-
return primitive;
|
|
703
|
-
}
|
|
704
|
-
|
|
705
698
|
export function nodeQueryFromExpressionNode(expressionNode, context) {
|
|
706
699
|
let nodeQuery = null;
|
|
707
700
|
|
package/src/utilities/string.js
CHANGED
|
@@ -53,6 +53,20 @@ export function termsStringFromTermsArray(termsArray) {
|
|
|
53
53
|
return termsString;
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
+
export function expressionStringFromProperties(properties) {
|
|
57
|
+
let expressionString;
|
|
58
|
+
|
|
59
|
+
properties.forEach((property) => {
|
|
60
|
+
if (property !== null) {
|
|
61
|
+
const propertyString = property.getString();
|
|
62
|
+
|
|
63
|
+
expressionString = propertyString; ///
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
return expressionString;
|
|
68
|
+
}
|
|
69
|
+
|
|
56
70
|
export function primtiveStringFromStringLiteral(stringLiteral) {
|
|
57
71
|
const string = stringFromStringLiteral(stringLiteral),
|
|
58
72
|
primtiveString = string; ///
|
|
@@ -102,28 +116,6 @@ export function returnBlockStringFromReturnStatementNode(returnStatement) {
|
|
|
102
116
|
return returnBlockString;
|
|
103
117
|
}
|
|
104
118
|
|
|
105
|
-
export function expressionStringFromPrimitiveAndProperties(primitive, properties) {
|
|
106
|
-
let expressionString;
|
|
107
|
-
|
|
108
|
-
if (false) {
|
|
109
|
-
///
|
|
110
|
-
} else if (primitive !== null) {
|
|
111
|
-
const primitiveString = primitive.getString();
|
|
112
|
-
|
|
113
|
-
expressionString = primitiveString; ///
|
|
114
|
-
} else {
|
|
115
|
-
properties.forEach((property) => {
|
|
116
|
-
if (property !== null) {
|
|
117
|
-
const propertyString = property.getString();
|
|
118
|
-
|
|
119
|
-
expressionString = propertyString; ///
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
return expressionString;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
119
|
export function variableAssignmentStringFromTypeAndVariable(type, variable) {
|
|
128
120
|
const variableString = variable.getString(),
|
|
129
121
|
variableAssignmentString = `${type} ${variableString} = ... ;`;
|
package/test/main.js
CHANGED
|
@@ -31,8 +31,9 @@ const free = true,
|
|
|
31
31
|
|
|
32
32
|
// try {
|
|
33
33
|
const context = fileContext, ///
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
term = procedure.call(terms, context),
|
|
35
|
+
primitiveValue = term.getPrimitiveValue(),
|
|
36
|
+
boolean = primitiveValue; ///
|
|
36
37
|
|
|
37
38
|
console.log(boolean);
|
|
38
39
|
// } catch (exception) {
|