occam-furtle 3.0.516 → 3.0.520
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/context/block.js +9 -1
- package/lib/context/file/furtle.js +66 -11
- package/lib/element/importBinding.js +108 -0
- package/lib/element/importBindings.js +17 -0
- package/lib/element/importStatement.js +67 -0
- package/lib/element/label.js +7 -5
- package/lib/element/parameters.js +7 -5
- package/lib/element/procedure.js +9 -5
- package/lib/element/procedureCall.js +10 -4
- package/lib/element/reference.js +21 -1
- package/lib/element/type.js +8 -5
- package/lib/element/values.js +2 -2
- package/lib/example/furtle/bnf.js +2 -2
- package/lib/example/furtle/entries.js +1 -1
- package/lib/node/importBinding.js +27 -0
- package/lib/node/importBindings.js +23 -0
- package/lib/node/importStatement.js +42 -0
- package/lib/node/procedure.js +8 -13
- package/lib/nonTerminalNodeMap.js +7 -1
- package/lib/preamble.js +4 -1
- package/lib/process/instantiate.js +20 -2
- package/lib/process/verify.js +9 -2
- package/lib/ruleNames.js +13 -1
- package/lib/utilities/element.js +87 -27
- package/lib/utilities/json.js +59 -6
- package/package.json +2 -2
- package/src/context/block.js +14 -0
- package/src/context/file/furtle.js +102 -19
- package/src/element/importBinding.js +165 -0
- package/src/element/importBindings.js +9 -0
- package/src/element/importStatement.js +89 -0
- package/src/element/label.js +9 -5
- package/src/element/parameters.js +9 -5
- package/src/element/procedure.js +19 -16
- package/src/element/procedureCall.js +12 -3
- package/src/element/reference.js +33 -0
- package/src/element/type.js +13 -8
- package/src/element/values.js +1 -1
- package/src/example/furtle/bnf.js +1 -1
- package/src/example/furtle/entries.js +1 -1
- package/src/node/importBinding.js +23 -0
- package/src/node/importBindings.js +16 -0
- package/src/node/importStatement.js +45 -0
- package/src/node/procedure.js +7 -14
- package/src/nonTerminalNodeMap.js +9 -0
- package/src/preamble.js +3 -0
- package/src/process/instantiate.js +11 -2
- package/src/process/verify.js +11 -2
- package/src/ruleNames.js +3 -0
- package/src/utilities/element.js +120 -43
- package/src/utilities/json.js +62 -5
package/lib/context/block.js
CHANGED
|
@@ -67,10 +67,18 @@ class BlockContext extends _occamlanguages.Context {
|
|
|
67
67
|
}) || null;
|
|
68
68
|
return variable;
|
|
69
69
|
}
|
|
70
|
+
findImportedProcedureByProcedureName(procedureName) {
|
|
71
|
+
const context = this.getContext(), importedProcedure = context.findImportedProcedureByProcedureName(procedureName);
|
|
72
|
+
return importedProcedure;
|
|
73
|
+
}
|
|
70
74
|
isVariablePresentByVariableName(variableName, nested = true) {
|
|
71
75
|
const variable = this.findVariableByVariableName(variableName, nested), variablePresent = variable !== null;
|
|
72
76
|
return variablePresent;
|
|
73
77
|
}
|
|
78
|
+
isImportedProcedurePresentByProcedureName(procedureName) {
|
|
79
|
+
const context = this.getContext(), importedProcedurePresent = context.isImportedProcedurePresentByProcedureName(procedureName);
|
|
80
|
+
return importedProcedurePresent;
|
|
81
|
+
}
|
|
74
82
|
static fromVariables(variables, context) {
|
|
75
83
|
const blockContext = _occamlanguages.Context.fromNothing(BlockContext, variables, context);
|
|
76
84
|
return blockContext;
|
|
@@ -81,4 +89,4 @@ function isContextBlockContext(context) {
|
|
|
81
89
|
return contextBlockContext;
|
|
82
90
|
}
|
|
83
91
|
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L2Jsb2NrLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBDb250ZXh0IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uL2V4Y2VwdGlvblwiO1xuXG5jb25zdCB7IHB1c2ggfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBCbG9ja0NvbnRleHQgZXh0ZW5kcyBDb250ZXh0IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgdmFyaWFibGVzKSB7XG4gICAgc3VwZXIoY29udGV4dCk7XG5cbiAgICB0aGlzLnZhcmlhYmxlcyA9IHZhcmlhYmxlcztcbiAgfVxuXG4gIGdldFZhcmlhYmxlcyhuZXN0ZWQgPSB0cnVlKSB7XG4gICAgY29uc3QgdmFyaWFibGVzID0gW107XG5cbiAgICBwdXNoKHZhcmlhYmxlcywgdGhpcy52YXJpYWJsZXMpO1xuXG4gICAgaWYgKG5lc3RlZCkge1xuICAgICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgICAgY29udGV4dFZhcmlhYmxlcyA9IGNvbnRleHQuZ2V0VmFyaWFibGVzKG5lc3RlZCk7XG5cbiAgICAgIHB1c2godmFyaWFibGVzLCBjb250ZXh0VmFyaWFibGVzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFyaWFibGVzO1xuICB9XG5cbiAgYWRkVmFyaWFibGUodmFyaWFibGUsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCBuZXN0ZWQgPSBmYWxzZSxcbiAgICAgICAgICB2YXJpYWJsZU5hbWUgPSB2YXJpYWJsZS5nZXROYW1lKCksXG4gICAgICAgICAgdmFyaWFibGVTdHJpbmcgPSB2YXJpYWJsZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICB2YXJpYWJsZVByZXNlbnQgPSB0aGlzLmlzVmFyaWFibGVQcmVzZW50QnlWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lLCBuZXN0ZWQpO1xuXG4gICAgaWYgKHZhcmlhYmxlUHJlc2VudCkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBUaGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZSBpcyBhbHJlYWR5IHByZXNlbnQuJ2AsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgfVxuXG4gICAgY29uc3QgY29udGV4dCA9IHRoaXM7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgQWRkZWQgdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUgdG8gdGhlIGNvbnRleHQuYCk7XG5cbiAgICB0aGlzLnZhcmlhYmxlcy5wdXNoKHZhcmlhYmxlKTtcblxuICAgIHJldHVybiBmb3J3YXJkKGJhY2spO1xuICB9XG5cbiAgZmluZFByb2NlZHVyZUJ5UHJvY2VkdXJlTmFtZShwcm9jZWR1cmVOYW1lKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIHByb2NlZHVyZSA9IGNvbnRleHQuZmluZFByb2NlZHVyZUJ5UHJvY2VkdXJlTmFtZShwcm9jZWR1cmVOYW1lKTtcblxuICAgIHJldHVybiBwcm9jZWR1cmU7XG4gIH1cblxuICBpc1Byb2NlZHVyZVByZXNlbnRCeVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBwcm9jZWR1cmVQcmVzZW50ID0gY29udGV4dC5pc1Byb2NlZHVyZVByZXNlbnRCeVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSk7XG5cbiAgICByZXR1cm4gcHJvY2VkdXJlUHJlc2VudDtcbiAgfVxuXG4gIGZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSwgbmVzdGVkID0gdHJ1ZSkge1xuICAgIGNvbnN0IHZhcmlhYmxlcyA9IHRoaXMuZ2V0VmFyaWFibGVzKG5lc3RlZCksXG4gICAgICAgICAgdmFyaWFibGUgPSB2YXJpYWJsZXMuZmluZCgodmFyaWFibGUpID0+
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L2Jsb2NrLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBDb250ZXh0IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuaW1wb3J0IHsgYXJyYXlVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uL2V4Y2VwdGlvblwiO1xuXG5jb25zdCB7IHB1c2ggfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBCbG9ja0NvbnRleHQgZXh0ZW5kcyBDb250ZXh0IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgdmFyaWFibGVzKSB7XG4gICAgc3VwZXIoY29udGV4dCk7XG5cbiAgICB0aGlzLnZhcmlhYmxlcyA9IHZhcmlhYmxlcztcbiAgfVxuXG4gIGdldFZhcmlhYmxlcyhuZXN0ZWQgPSB0cnVlKSB7XG4gICAgY29uc3QgdmFyaWFibGVzID0gW107XG5cbiAgICBwdXNoKHZhcmlhYmxlcywgdGhpcy52YXJpYWJsZXMpO1xuXG4gICAgaWYgKG5lc3RlZCkge1xuICAgICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgICAgY29udGV4dFZhcmlhYmxlcyA9IGNvbnRleHQuZ2V0VmFyaWFibGVzKG5lc3RlZCk7XG5cbiAgICAgIHB1c2godmFyaWFibGVzLCBjb250ZXh0VmFyaWFibGVzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFyaWFibGVzO1xuICB9XG5cbiAgYWRkVmFyaWFibGUodmFyaWFibGUsIGZvcndhcmQsIGJhY2spIHtcbiAgICBjb25zdCBuZXN0ZWQgPSBmYWxzZSxcbiAgICAgICAgICB2YXJpYWJsZU5hbWUgPSB2YXJpYWJsZS5nZXROYW1lKCksXG4gICAgICAgICAgdmFyaWFibGVTdHJpbmcgPSB2YXJpYWJsZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICB2YXJpYWJsZVByZXNlbnQgPSB0aGlzLmlzVmFyaWFibGVQcmVzZW50QnlWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lLCBuZXN0ZWQpO1xuXG4gICAgaWYgKHZhcmlhYmxlUHJlc2VudCkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBUaGUgJyR7dmFyaWFibGVTdHJpbmd9JyB2YXJpYWJsZSBpcyBhbHJlYWR5IHByZXNlbnQuJ2AsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgfVxuXG4gICAgY29uc3QgY29udGV4dCA9IHRoaXM7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgQWRkZWQgdGhlICcke3ZhcmlhYmxlU3RyaW5nfScgdmFyaWFibGUgdG8gdGhlIGNvbnRleHQuYCk7XG5cbiAgICB0aGlzLnZhcmlhYmxlcy5wdXNoKHZhcmlhYmxlKTtcblxuICAgIHJldHVybiBmb3J3YXJkKGJhY2spO1xuICB9XG5cbiAgZmluZFByb2NlZHVyZUJ5UHJvY2VkdXJlTmFtZShwcm9jZWR1cmVOYW1lKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpLFxuICAgICAgICAgIHByb2NlZHVyZSA9IGNvbnRleHQuZmluZFByb2NlZHVyZUJ5UHJvY2VkdXJlTmFtZShwcm9jZWR1cmVOYW1lKTtcblxuICAgIHJldHVybiBwcm9jZWR1cmU7XG4gIH1cblxuICBpc1Byb2NlZHVyZVByZXNlbnRCeVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBwcm9jZWR1cmVQcmVzZW50ID0gY29udGV4dC5pc1Byb2NlZHVyZVByZXNlbnRCeVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSk7XG5cbiAgICByZXR1cm4gcHJvY2VkdXJlUHJlc2VudDtcbiAgfVxuXG4gIGZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSwgbmVzdGVkID0gdHJ1ZSkge1xuICAgIGNvbnN0IHZhcmlhYmxlcyA9IHRoaXMuZ2V0VmFyaWFibGVzKG5lc3RlZCksXG4gICAgICAgICAgdmFyaWFibGUgPSB2YXJpYWJsZXMuZmluZCgodmFyaWFibGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZhcmlhYmxlQ29tcGFyZXNUb1ZhcmlhYmxlTmFtZSA9IHZhcmlhYmxlLmNvbXBhcmVWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lKTtcblxuICAgICAgICAgICAgaWYgKHZhcmlhYmxlQ29tcGFyZXNUb1ZhcmlhYmxlTmFtZSkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlO1xuICB9XG5cbiAgZmluZEltcG9ydGVkUHJvY2VkdXJlQnlQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgaW1wb3J0ZWRQcm9jZWR1cmUgPSBjb250ZXh0LmZpbmRJbXBvcnRlZFByb2NlZHVyZUJ5UHJvY2VkdXJlTmFtZShwcm9jZWR1cmVOYW1lKTtcblxuICAgIHJldHVybiBpbXBvcnRlZFByb2NlZHVyZTtcbiAgfVxuXG4gIGlzVmFyaWFibGVQcmVzZW50QnlWYXJpYWJsZU5hbWUodmFyaWFibGVOYW1lLCBuZXN0ZWQgPSB0cnVlKSB7XG4gICAgY29uc3QgdmFyaWFibGUgPSB0aGlzLmZpbmRWYXJpYWJsZUJ5VmFyaWFibGVOYW1lKHZhcmlhYmxlTmFtZSwgbmVzdGVkKSxcbiAgICAgICAgICB2YXJpYWJsZVByZXNlbnQgPSAodmFyaWFibGUgIT09IG51bGwpO1xuXG4gICAgcmV0dXJuIHZhcmlhYmxlUHJlc2VudDtcbiAgfVxuXG4gIGlzSW1wb3J0ZWRQcm9jZWR1cmVQcmVzZW50QnlQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgaW1wb3J0ZWRQcm9jZWR1cmVQcmVzZW50ID0gY29udGV4dC5pc0ltcG9ydGVkUHJvY2VkdXJlUHJlc2VudEJ5UHJvY2VkdXJlTmFtZShwcm9jZWR1cmVOYW1lKTtcblxuICAgIHJldHVybiBpbXBvcnRlZFByb2NlZHVyZVByZXNlbnQ7XG4gIH1cblxuICBzdGF0aWMgZnJvbVZhcmlhYmxlcyh2YXJpYWJsZXMsIGNvbnRleHQpIHtcbiAgICBjb25zdCBibG9ja0NvbnRleHQgPSBDb250ZXh0LmZyb21Ob3RoaW5nKEJsb2NrQ29udGV4dCwgdmFyaWFibGVzLCBjb250ZXh0KVxuXG4gICAgcmV0dXJuIGJsb2NrQ29udGV4dDtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNDb250ZXh0QmxvY2tDb250ZXh0KGNvbnRleHQpIHtcbiAgY29uc3QgY29udGV4dEJsb2NrQ29udGV4dCA9IEJsb2NrQ29udGV4dC5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihjb250ZXh0KTtcblxuICByZXR1cm4gY29udGV4dEJsb2NrQ29udGV4dDtcbn1cbiJdLCJuYW1lcyI6WyJCbG9ja0NvbnRleHQiLCJpc0NvbnRleHRCbG9ja0NvbnRleHQiLCJwdXNoIiwiYXJyYXlVdGlsaXRpZXMiLCJDb250ZXh0IiwiY29udGV4dCIsInZhcmlhYmxlcyIsImdldFZhcmlhYmxlcyIsIm5lc3RlZCIsImdldENvbnRleHQiLCJjb250ZXh0VmFyaWFibGVzIiwiYWRkVmFyaWFibGUiLCJ2YXJpYWJsZSIsImZvcndhcmQiLCJiYWNrIiwidmFyaWFibGVOYW1lIiwiZ2V0TmFtZSIsInZhcmlhYmxlU3RyaW5nIiwiZ2V0U3RyaW5nIiwidmFyaWFibGVQcmVzZW50IiwiaXNWYXJpYWJsZVByZXNlbnRCeVZhcmlhYmxlTmFtZSIsIm1lc3NhZ2UiLCJleGNlcHRpb24iLCJFeGNlcHRpb24iLCJmcm9tTWVzc2FnZSIsInRyYWNlIiwiZmluZFByb2NlZHVyZUJ5UHJvY2VkdXJlTmFtZSIsInByb2NlZHVyZU5hbWUiLCJwcm9jZWR1cmUiLCJpc1Byb2NlZHVyZVByZXNlbnRCeVByb2NlZHVyZU5hbWUiLCJwcm9jZWR1cmVQcmVzZW50IiwiZmluZFZhcmlhYmxlQnlWYXJpYWJsZU5hbWUiLCJmaW5kIiwidmFyaWFibGVDb21wYXJlc1RvVmFyaWFibGVOYW1lIiwiY29tcGFyZVZhcmlhYmxlTmFtZSIsImZpbmRJbXBvcnRlZFByb2NlZHVyZUJ5UHJvY2VkdXJlTmFtZSIsImltcG9ydGVkUHJvY2VkdXJlIiwiaXNJbXBvcnRlZFByb2NlZHVyZVByZXNlbnRCeVByb2NlZHVyZU5hbWUiLCJpbXBvcnRlZFByb2NlZHVyZVByZXNlbnQiLCJmcm9tVmFyaWFibGVzIiwiYmxvY2tDb250ZXh0IiwiZnJvbU5vdGhpbmciLCJjb250ZXh0QmxvY2tDb250ZXh0IiwicHJvdG90eXBlIiwiaXNQcm90b3R5cGVPZiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBU0E7ZUFBcUJBOztRQW1HTEM7ZUFBQUE7OztnQ0ExR1E7MkJBQ087a0VBRVQ7Ozs7OztBQUV0QixNQUFNLEVBQUVDLElBQUksRUFBRSxHQUFHQyx5QkFBYztBQUVoQixNQUFNSCxxQkFBcUJJLHVCQUFPO0lBQy9DLFlBQVlDLE9BQU8sRUFBRUMsU0FBUyxDQUFFO1FBQzlCLEtBQUssQ0FBQ0Q7UUFFTixJQUFJLENBQUNDLFNBQVMsR0FBR0E7SUFDbkI7SUFFQUMsYUFBYUMsU0FBUyxJQUFJLEVBQUU7UUFDMUIsTUFBTUYsWUFBWSxFQUFFO1FBRXBCSixLQUFLSSxXQUFXLElBQUksQ0FBQ0EsU0FBUztRQUU5QixJQUFJRSxRQUFRO1lBQ1YsTUFBTUgsVUFBVSxJQUFJLENBQUNJLFVBQVUsSUFDekJDLG1CQUFtQkwsUUFBUUUsWUFBWSxDQUFDQztZQUU5Q04sS0FBS0ksV0FBV0k7UUFDbEI7UUFFQSxPQUFPSjtJQUNUO0lBRUFLLFlBQVlDLFFBQVEsRUFBRUMsT0FBTyxFQUFFQyxJQUFJLEVBQUU7UUFDbkMsTUFBTU4sU0FBUyxPQUNUTyxlQUFlSCxTQUFTSSxPQUFPLElBQy9CQyxpQkFBaUJMLFNBQVNNLFNBQVMsSUFDbkNDLGtCQUFrQixJQUFJLENBQUNDLCtCQUErQixDQUFDTCxjQUFjUDtRQUUzRSxJQUFJVyxpQkFBaUI7WUFDbkIsTUFBTUUsVUFBVSxDQUFDLEtBQUssRUFBRUosZUFBZSwrQkFBK0IsQ0FBQyxFQUNqRUssWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSDtZQUV4QyxPQUFPUCxLQUFLUTtRQUNkO1FBRUEsTUFBTWpCLFVBQVUsSUFBSSxFQUFFLEdBQUc7UUFFekJBLFFBQVFvQixLQUFLLENBQUMsQ0FBQyxXQUFXLEVBQUVSLGVBQWUsMEJBQTBCLENBQUM7UUFFdEUsSUFBSSxDQUFDWCxTQUFTLENBQUNKLElBQUksQ0FBQ1U7UUFFcEIsT0FBT0MsUUFBUUM7SUFDakI7SUFFQVksNkJBQTZCQyxhQUFhLEVBQUU7UUFDMUMsTUFBTXRCLFVBQVUsSUFBSSxDQUFDSSxVQUFVLElBQ3pCbUIsWUFBWXZCLFFBQVFxQiw0QkFBNEIsQ0FBQ0M7UUFFdkQsT0FBT0M7SUFDVDtJQUVBQyxrQ0FBa0NGLGFBQWEsRUFBRTtRQUMvQyxNQUFNdEIsVUFBVSxJQUFJLENBQUNJLFVBQVUsSUFDekJxQixtQkFBbUJ6QixRQUFRd0IsaUNBQWlDLENBQUNGO1FBRW5FLE9BQU9HO0lBQ1Q7SUFFQUMsMkJBQTJCaEIsWUFBWSxFQUFFUCxTQUFTLElBQUksRUFBRTtRQUN0RCxNQUFNRixZQUFZLElBQUksQ0FBQ0MsWUFBWSxDQUFDQyxTQUM5QkksV0FBV04sVUFBVTBCLElBQUksQ0FBQyxDQUFDcEI7WUFDekIsTUFBTXFCLGlDQUFpQ3JCLFNBQVNzQixtQkFBbUIsQ0FBQ25CO1lBRXBFLElBQUlrQixnQ0FBZ0M7Z0JBQ2xDLE9BQU87WUFDVDtRQUNGLE1BQU07UUFFWixPQUFPckI7SUFDVDtJQUVBdUIscUNBQXFDUixhQUFhLEVBQUU7UUFDbEQsTUFBTXRCLFVBQVUsSUFBSSxDQUFDSSxVQUFVLElBQ3pCMkIsb0JBQW9CL0IsUUFBUThCLG9DQUFvQyxDQUFDUjtRQUV2RSxPQUFPUztJQUNUO0lBRUFoQixnQ0FBZ0NMLFlBQVksRUFBRVAsU0FBUyxJQUFJLEVBQUU7UUFDM0QsTUFBTUksV0FBVyxJQUFJLENBQUNtQiwwQkFBMEIsQ0FBQ2hCLGNBQWNQLFNBQ3pEVyxrQkFBbUJQLGFBQWE7UUFFdEMsT0FBT087SUFDVDtJQUVBa0IsMENBQTBDVixhQUFhLEVBQUU7UUFDdkQsTUFBTXRCLFVBQVUsSUFBSSxDQUFDSSxVQUFVLElBQ3pCNkIsMkJBQTJCakMsUUFBUWdDLHlDQUF5QyxDQUFDVjtRQUVuRixPQUFPVztJQUNUO0lBRUEsT0FBT0MsY0FBY2pDLFNBQVMsRUFBRUQsT0FBTyxFQUFFO1FBQ3ZDLE1BQU1tQyxlQUFlcEMsdUJBQU8sQ0FBQ3FDLFdBQVcsQ0FBQ3pDLGNBQWNNLFdBQVdEO1FBRWxFLE9BQU9tQztJQUNUO0FBQ0Y7QUFFTyxTQUFTdkMsc0JBQXNCSSxPQUFPO0lBQzNDLE1BQU1xQyxzQkFBc0IxQyxhQUFhMkMsU0FBUyxDQUFDQyxhQUFhLENBQUN2QztJQUVqRSxPQUFPcUM7QUFDVCJ9
|
|
@@ -14,14 +14,21 @@ const _context = require("../../utilities/context");
|
|
|
14
14
|
const _verify = require("../../process/verify");
|
|
15
15
|
const _furtle = require("../../utilities/furtle");
|
|
16
16
|
const _json = require("../../utilities/json");
|
|
17
|
+
const _procedure = /*#__PURE__*/ _interop_require_default(require("../../element/procedure"));
|
|
18
|
+
function _interop_require_default(obj) {
|
|
19
|
+
return obj && obj.__esModule ? obj : {
|
|
20
|
+
default: obj
|
|
21
|
+
};
|
|
22
|
+
}
|
|
17
23
|
const { nodesQuery } = _occamquery.queryUtilities;
|
|
18
24
|
const procedureNodesQuery = nodesQuery("/document/procedure");
|
|
19
25
|
class FurtleFileContext extends _occamlanguages.FileContext {
|
|
20
|
-
constructor(context, fileContent, filePath, tokens, node, json, lexer, parser, procedures){
|
|
26
|
+
constructor(context, fileContent, filePath, tokens, node, json, lexer, parser, procedures, importBindings){
|
|
21
27
|
super(context, fileContent, filePath, tokens, node, json);
|
|
22
28
|
this.lexer = lexer;
|
|
23
29
|
this.parser = parser;
|
|
24
30
|
this.procedures = procedures;
|
|
31
|
+
this.importBindings = importBindings;
|
|
25
32
|
}
|
|
26
33
|
getLexer() {
|
|
27
34
|
return this.lexer;
|
|
@@ -29,6 +36,13 @@ class FurtleFileContext extends _occamlanguages.FileContext {
|
|
|
29
36
|
getParser() {
|
|
30
37
|
return this.parser;
|
|
31
38
|
}
|
|
39
|
+
getProcedures(includeRelease = true) {
|
|
40
|
+
const procedures = includeRelease ? this.context.getProcedures() : this.procedures;
|
|
41
|
+
return procedures;
|
|
42
|
+
}
|
|
43
|
+
getImportBindings() {
|
|
44
|
+
return this.importBindings;
|
|
45
|
+
}
|
|
32
46
|
getLabels(includeRelease = true) {
|
|
33
47
|
const labels = [];
|
|
34
48
|
return labels;
|
|
@@ -85,10 +99,6 @@ class FurtleFileContext extends _occamlanguages.FileContext {
|
|
|
85
99
|
const metavariables = [];
|
|
86
100
|
return metavariables;
|
|
87
101
|
}
|
|
88
|
-
getProcedures(includeRelease = true) {
|
|
89
|
-
const procedures = includeRelease ? this.context.getProcedures() : this.procedures;
|
|
90
|
-
return procedures;
|
|
91
|
-
}
|
|
92
102
|
getVariables(nested = true) {
|
|
93
103
|
const variables = [];
|
|
94
104
|
return variables;
|
|
@@ -99,6 +109,12 @@ class FurtleFileContext extends _occamlanguages.FileContext {
|
|
|
99
109
|
const filePath = this.getFilePath();
|
|
100
110
|
this.debug(`Added the '${procedureString}' function to the '${filePath}' file context.`);
|
|
101
111
|
}
|
|
112
|
+
addImportBinding(importBinding) {
|
|
113
|
+
const importBindingString = importBinding.getString();
|
|
114
|
+
this.importBindings.push(importBinding);
|
|
115
|
+
const filePath = this.getFilePath();
|
|
116
|
+
this.debug(`Added the '${importBindingString}' import binding to the '${filePath}' file context.`);
|
|
117
|
+
}
|
|
102
118
|
findProcedureNode(label) {
|
|
103
119
|
const node = this.getNode(), labelNode = label.getNode(), documentNode = node, procedureNodes = procedureNodesQuery(documentNode), procedureNode = procedureNodes.find((procedureNode)=>{
|
|
104
120
|
const labelMatches = procedureNode.matchLabelNode(labelNode);
|
|
@@ -117,10 +133,45 @@ class FurtleFileContext extends _occamlanguages.FileContext {
|
|
|
117
133
|
}) || null;
|
|
118
134
|
return procedure;
|
|
119
135
|
}
|
|
136
|
+
findImportedProcedureByProcedureName(procedureName) {
|
|
137
|
+
let importedProcedure = null;
|
|
138
|
+
this.importBindings.some((importBinding)=>{
|
|
139
|
+
const lablledProcedureName = procedureName; ///
|
|
140
|
+
const labelledProcedureNameClmpares = importBinding.compareLablledProcedureName(lablledProcedureName);
|
|
141
|
+
if (labelledProcedureNameClmpares) {
|
|
142
|
+
const referencedProcedureName = importBinding.getReferencedProcedureName();
|
|
143
|
+
procedureName = referencedProcedureName; ///
|
|
144
|
+
const procedure = this.findProcedureByProcedureName(procedureName);
|
|
145
|
+
importedProcedure = procedure; ///
|
|
146
|
+
return true;
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
return importedProcedure;
|
|
150
|
+
}
|
|
151
|
+
findImportBindingByLabelledProcedureName(labelledProcedureName) {
|
|
152
|
+
const importBinding = this.importBindings.find((importBinding)=>{
|
|
153
|
+
const labelledProcedureNameCompares = importBinding.compareLablledProcedureName(labelledProcedureName);
|
|
154
|
+
if (labelledProcedureNameCompares) {
|
|
155
|
+
return true;
|
|
156
|
+
}
|
|
157
|
+
}) || null;
|
|
158
|
+
return importBinding;
|
|
159
|
+
}
|
|
120
160
|
isProcedurePresentByProcedureName(procedureName) {
|
|
121
161
|
const procedure = this.findProcedureByProcedureName(procedureName), procedurePresent = procedure !== null;
|
|
122
162
|
return procedurePresent;
|
|
123
163
|
}
|
|
164
|
+
isImportedProcedurePresentByProcedureName(procedureName) {
|
|
165
|
+
const importedProceudre = this.findImportedProcedureByProcedureName(procedureName), importedProceudrePresent = importedProceudre !== null;
|
|
166
|
+
return importedProceudrePresent;
|
|
167
|
+
}
|
|
168
|
+
isImportBindingPresentByLabelledProcedureName(labelledProcedureName) {
|
|
169
|
+
const importBinding = this.findImportBindingByLabelledProcedureName(labelledProcedureName), importBindingPresent = importBinding !== null;
|
|
170
|
+
return importBindingPresent;
|
|
171
|
+
}
|
|
172
|
+
compareReleaseName(releaseName) {
|
|
173
|
+
return this.context.compareReleaseName(releaseName);
|
|
174
|
+
}
|
|
124
175
|
clear() {
|
|
125
176
|
this.procedures = [];
|
|
126
177
|
}
|
|
@@ -133,6 +184,7 @@ class FurtleFileContext extends _occamlanguages.FileContext {
|
|
|
133
184
|
if (json !== null) {
|
|
134
185
|
const fileContext = this; ///
|
|
135
186
|
this.procedures = (0, _json.proceduresFromJSON)(json, fileContext);
|
|
187
|
+
this.importBindings = (0, _json.importBindingsFromJSON)(json, fileContext);
|
|
136
188
|
}
|
|
137
189
|
}
|
|
138
190
|
verifyFile(forward, back) {
|
|
@@ -142,21 +194,24 @@ class FurtleFileContext extends _occamlanguages.FileContext {
|
|
|
142
194
|
}, forward, back);
|
|
143
195
|
}
|
|
144
196
|
toJSON() {
|
|
145
|
-
|
|
146
|
-
|
|
197
|
+
let json;
|
|
198
|
+
const filePath = this.getFilePath(), fileContent = this.getFileContent(), proceduresJSON = (0, _json.proceduresToProceduresJSON)(this.procedures), importBindingsJSON = (0, _json.importBindingsToImportBindingsJSON)(this.importBindings), procedures = proceduresJSON, importBindings = importBindingsJSON;
|
|
199
|
+
json = {
|
|
147
200
|
filePath,
|
|
148
|
-
|
|
201
|
+
fileContent,
|
|
202
|
+
procedures,
|
|
203
|
+
importBindings
|
|
149
204
|
};
|
|
150
205
|
return json;
|
|
151
206
|
}
|
|
152
207
|
static fromFile(file, context) {
|
|
153
|
-
const lexer = _furtle.furtleLexer, parser = _furtle.furtleParser, procedures = [], furtleFileContext = _occamlanguages.FileContext.fromFile(FurtleFileContext, file, lexer, parser, procedures, context);
|
|
208
|
+
const lexer = _furtle.furtleLexer, parser = _furtle.furtleParser, procedures = [], importBindings = [], furtleFileContext = _occamlanguages.FileContext.fromFile(FurtleFileContext, file, lexer, parser, procedures, importBindings, context);
|
|
154
209
|
return furtleFileContext;
|
|
155
210
|
}
|
|
156
211
|
static fromJSON(json, context) {
|
|
157
|
-
const lexer = _furtle.furtleLexer, parser = _furtle.furtleParser, procedures = null, furtleFileContext = _occamlanguages.FileContext.fromJSON(FurtleFileContext, json, lexer, parser, procedures, context);
|
|
212
|
+
const lexer = _furtle.furtleLexer, parser = _furtle.furtleParser, procedures = null, importBindings = null, furtleFileContext = _occamlanguages.FileContext.fromJSON(FurtleFileContext, json, lexer, parser, procedures, importBindings, context);
|
|
158
213
|
return furtleFileContext;
|
|
159
214
|
}
|
|
160
215
|
}
|
|
161
216
|
|
|
162
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0L2ZpbGUvZnVydGxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBGaWxlQ29udGV4dCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcbmltcG9ydCB7IHF1ZXJ5VXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLXF1ZXJ5XCI7XG5cbmltcG9ydCB7IGlzb2xhdGUgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcbmltcG9ydCB7IHZlcmlmeUZpbGUgfSBmcm9tIFwiLi4vLi4vcHJvY2Vzcy92ZXJpZnlcIjtcbmltcG9ydCB7IGZ1cnRsZUxleGVyLCBmdXJ0bGVQYXJzZXIgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2Z1cnRsZVwiO1xuaW1wb3J0IHsgcHJvY2VkdXJlc0Zyb21KU09OLCBwcm9jZWR1cmVzVG9Qcm9jZWR1cmVzSlNPTiB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvanNvblwiO1xuXG5jb25zdCB7IG5vZGVzUXVlcnkgfSA9IHF1ZXJ5VXRpbGl0aWVzO1xuXG5jb25zdCBwcm9jZWR1cmVOb2Rlc1F1ZXJ5ID0gbm9kZXNRdWVyeShcIi9kb2N1bWVudC9wcm9jZWR1cmVcIik7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZ1cnRsZUZpbGVDb250ZXh0IGV4dGVuZHMgRmlsZUNvbnRleHQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBmaWxlQ29udGVudCwgZmlsZVBhdGgsIHRva2Vucywgbm9kZSwganNvbiwgbGV4ZXIsIHBhcnNlciwgcHJvY2VkdXJlcykge1xuICAgIHN1cGVyKGNvbnRleHQsIGZpbGVDb250ZW50LCBmaWxlUGF0aCwgdG9rZW5zLCBub2RlLCBqc29uKTtcblxuICAgIHRoaXMubGV4ZXIgPSBsZXhlcjtcbiAgICB0aGlzLnBhcnNlciA9IHBhcnNlcjtcbiAgICB0aGlzLnByb2NlZHVyZXMgPSBwcm9jZWR1cmVzO1xuICB9XG5cbiAgZ2V0TGV4ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMubGV4ZXI7XG4gIH1cblxuICBnZXRQYXJzZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFyc2VyO1xuICB9XG5cbiAgZ2V0TGFiZWxzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGxhYmVscyA9IFtdO1xuXG4gICAgcmV0dXJuIGxhYmVscztcbiAgfVxuXG4gIGdldFR5cGVzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHR5cGVzID0gW107XG5cbiAgICByZXR1cm4gdHlwZXM7XG4gIH1cblxuICBnZXRSdWxlcyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBydWxlcyA9IFtdXG5cbiAgICByZXR1cm4gcnVsZXM7XG4gIH1cblxuICBnZXRBeGlvbXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgYXhpb21zID0gW107XG5cbiAgICByZXR1cm4gYXhpb21zO1xuICB9XG5cbiAgZ2V0TGVtbWFzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGxlbW1hcyA9IFtdO1xuXG4gICAgcmV0dXJuIGxlbW1hcztcbiAgfVxuXG4gIGdldFRoZW9yZW1zKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHRoZW9yZW1zID0gW107XG5cbiAgICByZXR1cm4gdGhlb3JlbXM7XG4gIH1cblxuICBnZXRNZXRhTGVtbWFzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IG1ldGFMZW1tYXMgPSBbXTtcblxuICAgIHJldHVybiBtZXRhTGVtbWFzO1xuICB9XG5cbiAgZ2V0R2VuZXJhdG9ycyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBnZW5lcmF0b3JzID0gW107XG5cbiAgICByZXR1cm4gZ2VuZXJhdG9ycztcbiAgfVxuXG4gIGdldENvbmplY3R1cmVzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGNvbmplY3R1cmVzID0gW107XG5cbiAgICByZXR1cm4gY29uamVjdHVyZXM7XG4gIH1cblxuICBnZXRDb21iaW5hdG9ycyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBjb21iaW5hdG9ycyA9IFtdO1xuXG4gICAgcmV0dXJuIGNvbWJpbmF0b3JzO1xuICB9XG5cbiAgZ2V0VHlwZVByZWZpeGVzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHR5cGVQcmVmaXhlcyA9IFtdO1xuXG4gICAgcmV0dXJuIHR5cGVQcmVmaXhlcztcbiAgfVxuXG4gIGdldENvbnN0cnVjdG9ycyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBjb25zdHJ1Y3RvcnMgPSBbXTtcblxuICAgIHJldHVybiBjb25zdHJ1Y3RvcnM7XG4gIH1cblxuICBnZXRNZXRhdGhlb3JlbXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgbWV0YXRoZW9yZW1zID0gW107XG5cbiAgICByZXR1cm4gbWV0YXRoZW9yZW1zO1xuICB9XG5cbiAgZ2V0TWV0YXZhcmlhYmxlcyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBtZXRhdmFyaWFibGVzID0gW107XG5cbiAgICByZXR1cm4gbWV0YXZhcmlhYmxlcztcbiAgfVxuXG4gIGdldFByb2NlZHVyZXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgcHJvY2VkdXJlcyA9IGluY2x1ZGVSZWxlYXNlID9cbiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHQuZ2V0UHJvY2VkdXJlcygpIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvY2VkdXJlcztcblxuICAgIHJldHVybiBwcm9jZWR1cmVzO1xuICB9XG5cbiAgZ2V0VmFyaWFibGVzKG5lc3RlZCA9IHRydWUpIHtcbiAgICBjb25zdCB2YXJpYWJsZXMgPSBbXTtcblxuICAgIHJldHVybiB2YXJpYWJsZXM7XG4gIH1cblxuICBhZGRQcm9jZWR1cmUocHJvY2VkdXJlKSB7XG4gICAgY29uc3QgcHJvY2VkdXJlU3RyaW5nID0gcHJvY2VkdXJlLmdldFN0cmluZygpO1xuXG4gICAgdGhpcy5wcm9jZWR1cmVzLnB1c2gocHJvY2VkdXJlKTtcblxuICAgIGNvbnN0IGZpbGVQYXRoID0gdGhpcy5nZXRGaWxlUGF0aCgpO1xuXG4gICAgdGhpcy5kZWJ1ZyhgQWRkZWQgdGhlICcke3Byb2NlZHVyZVN0cmluZ30nIGZ1bmN0aW9uIHRvIHRoZSAnJHtmaWxlUGF0aH0nIGZpbGUgY29udGV4dC5gKTtcbiAgfVxuXG4gIGZpbmRQcm9jZWR1cmVOb2RlKGxhYmVsKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Tm9kZSgpLFxuICAgICAgICAgIGxhYmVsTm9kZSA9IGxhYmVsLmdldE5vZGUoKSxcbiAgICAgICAgICBkb2N1bWVudE5vZGUgPSBub2RlLCAgLy8vXG4gICAgICAgICAgcHJvY2VkdXJlTm9kZXMgPSBwcm9jZWR1cmVOb2Rlc1F1ZXJ5KGRvY3VtZW50Tm9kZSksXG4gICAgICAgICAgcHJvY2VkdXJlTm9kZSA9IHByb2NlZHVyZU5vZGVzLmZpbmQoKHByb2NlZHVyZU5vZGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxhYmVsTWF0Y2hlcyA9IHByb2NlZHVyZU5vZGUubWF0Y2hMYWJlbE5vZGUobGFiZWxOb2RlKTtcblxuICAgICAgICAgICAgaWYgKGxhYmVsTWF0Y2hlcykge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIHByb2NlZHVyZU5vZGU7XG4gIH1cblxuICBmaW5kUHJvY2VkdXJlQnlQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpIHtcbiAgICBjb25zdCBwcm9jZWR1cmVzID0gdGhpcy5nZXRQcm9jZWR1cmVzKCksXG4gICAgICAgICAgcHJvY2VkdXJlID0gcHJvY2VkdXJlcy5maW5kKChwcm9jZWR1cmUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHByb2NlZHVyZUNvbXBhcmVzVG9Qcm9jZWR1cmVOYW1lID0gcHJvY2VkdXJlLmNvbXBhcmVQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpO1xuXG4gICAgICAgICAgICBpZiAocHJvY2VkdXJlQ29tcGFyZXNUb1Byb2NlZHVyZU5hbWUpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSkgfHwgbnVsbDtcblxuICAgIHJldHVybiBwcm9jZWR1cmU7XG4gIH1cblxuICBpc1Byb2NlZHVyZVByZXNlbnRCeVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSkge1xuICAgIGNvbnN0IHByb2NlZHVyZSA9IHRoaXMuZmluZFByb2NlZHVyZUJ5UHJvY2VkdXJlTmFtZShwcm9jZWR1cmVOYW1lKSxcbiAgICAgICAgICBwcm9jZWR1cmVQcmVzZW50ID0gKHByb2NlZHVyZSAhPT0gbnVsbCk7XG5cbiAgICByZXR1cm4gcHJvY2VkdXJlUHJlc2VudDtcbiAgfVxuXG4gIGNsZWFyKCkge1xuICAgIHRoaXMucHJvY2VkdXJlcyA9IFtdO1xuICB9XG5cbiAgY29tcGxldGUoKSB7XG4gICAgLy8vXG4gIH1cblxuICBpbml0aWFsaXNlKCkge1xuICAgIHN1cGVyLmluaXRpYWxpc2UoKTsgLy8vXG5cbiAgICBjb25zdCBqc29uID0gdGhpcy5nZXRKU09OKCk7XG5cbiAgICBpZiAoanNvbiAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgZmlsZUNvbnRleHQgPSB0aGlzOyAvLy9cblxuICAgICAgdGhpcy5wcm9jZWR1cmVzID0gcHJvY2VkdXJlc0Zyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KTtcbiAgICB9XG4gIH1cblxuICB2ZXJpZnlGaWxlKGZvcndhcmQsIGJhY2spIHtcbiAgICByZXR1cm4gaXNvbGF0ZSgoZm9yd2FyZCwgYmFjaykgPT4ge1xuICAgICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Tm9kZSgpLFxuICAgICAgICAgICAgY29udGV4dCA9IHRoaXMsIC8vL1xuICAgICAgICAgICAgZmlsZU5vZGUgPSBub2RlOyAgLy8vXG5cbiAgICAgIHJldHVybiB2ZXJpZnlGaWxlKGZpbGVOb2RlLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKTtcbiAgICB9LCBmb3J3YXJkLCBiYWNrKTtcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCBwcm9jZWR1cmVzSlNPTiA9IHByb2NlZHVyZXNUb1Byb2NlZHVyZXNKU09OKHRoaXMucHJvY2VkdXJlcyksXG4gICAgICAgICAgZmlsZUNvbnRlbnQgPSB0aGlzLmdldEZpbGVDb250ZW50KCksXG4gICAgICAgICAgZmlsZVBhdGggPSB0aGlzLmdldEZpbGVQYXRoKCksXG4gICAgICAgICAgcHJvY2VkdXJlcyA9IHByb2NlZHVyZXNKU09OLCAgLy8vXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIGZpbGVDb250ZW50LFxuICAgICAgICAgICAgZmlsZVBhdGgsXG4gICAgICAgICAgICBwcm9jZWR1cmVzXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIGZyb21GaWxlKGZpbGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCBsZXhlciA9IGZ1cnRsZUxleGVyLCAgLy8vXG4gICAgICAgICAgcGFyc2VyID0gZnVydGxlUGFyc2VyLCAgLy8vXG4gICAgICAgICAgcHJvY2VkdXJlcyA9IFtdLFxuICAgICAgICAgIGZ1cnRsZUZpbGVDb250ZXh0ID0gRmlsZUNvbnRleHQuZnJvbUZpbGUoRnVydGxlRmlsZUNvbnRleHQsIGZpbGUsIGxleGVyLCBwYXJzZXIsIHByb2NlZHVyZXMsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGZ1cnRsZUZpbGVDb250ZXh0O1xuICB9XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICBjb25zdCBsZXhlciA9IGZ1cnRsZUxleGVyLCAgLy8vXG4gICAgICAgICAgcGFyc2VyID0gZnVydGxlUGFyc2VyLCAgLy8vXG4gICAgICAgICAgcHJvY2VkdXJlcyA9IG51bGwsXG4gICAgICAgICAgZnVydGxlRmlsZUNvbnRleHQgPSBGaWxlQ29udGV4dC5mcm9tSlNPTihGdXJ0bGVGaWxlQ29udGV4dCwganNvbiwgbGV4ZXIsIHBhcnNlciwgcHJvY2VkdXJlcywgY29udGV4dCk7XG5cbiAgICByZXR1cm4gZnVydGxlRmlsZUNvbnRleHQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJGdXJ0bGVGaWxlQ29udGV4dCIsIm5vZGVzUXVlcnkiLCJxdWVyeVV0aWxpdGllcyIsInByb2NlZHVyZU5vZGVzUXVlcnkiLCJGaWxlQ29udGV4dCIsImNvbnRleHQiLCJmaWxlQ29udGVudCIsImZpbGVQYXRoIiwidG9rZW5zIiwibm9kZSIsImpzb24iLCJsZXhlciIsInBhcnNlciIsInByb2NlZHVyZXMiLCJnZXRMZXhlciIsImdldFBhcnNlciIsImdldExhYmVscyIsImluY2x1ZGVSZWxlYXNlIiwibGFiZWxzIiwiZ2V0VHlwZXMiLCJ0eXBlcyIsImdldFJ1bGVzIiwicnVsZXMiLCJnZXRBeGlvbXMiLCJheGlvbXMiLCJnZXRMZW1tYXMiLCJsZW1tYXMiLCJnZXRUaGVvcmVtcyIsInRoZW9yZW1zIiwiZ2V0TWV0YUxlbW1hcyIsIm1ldGFMZW1tYXMiLCJnZXRHZW5lcmF0b3JzIiwiZ2VuZXJhdG9ycyIsImdldENvbmplY3R1cmVzIiwiY29uamVjdHVyZXMiLCJnZXRDb21iaW5hdG9ycyIsImNvbWJpbmF0b3JzIiwiZ2V0VHlwZVByZWZpeGVzIiwidHlwZVByZWZpeGVzIiwiZ2V0Q29uc3RydWN0b3JzIiwiY29uc3RydWN0b3JzIiwiZ2V0TWV0YXRoZW9yZW1zIiwibWV0YXRoZW9yZW1zIiwiZ2V0TWV0YXZhcmlhYmxlcyIsIm1ldGF2YXJpYWJsZXMiLCJnZXRQcm9jZWR1cmVzIiwiZ2V0VmFyaWFibGVzIiwibmVzdGVkIiwidmFyaWFibGVzIiwiYWRkUHJvY2VkdXJlIiwicHJvY2VkdXJlIiwicHJvY2VkdXJlU3RyaW5nIiwiZ2V0U3RyaW5nIiwicHVzaCIsImdldEZpbGVQYXRoIiwiZGVidWciLCJmaW5kUHJvY2VkdXJlTm9kZSIsImxhYmVsIiwiZ2V0Tm9kZSIsImxhYmVsTm9kZSIsImRvY3VtZW50Tm9kZSIsInByb2NlZHVyZU5vZGVzIiwicHJvY2VkdXJlTm9kZSIsImZpbmQiLCJsYWJlbE1hdGNoZXMiLCJtYXRjaExhYmVsTm9kZSIsImZpbmRQcm9jZWR1cmVCeVByb2NlZHVyZU5hbWUiLCJwcm9jZWR1cmVOYW1lIiwicHJvY2VkdXJlQ29tcGFyZXNUb1Byb2NlZHVyZU5hbWUiLCJjb21wYXJlUHJvY2VkdXJlTmFtZSIsImlzUHJvY2VkdXJlUHJlc2VudEJ5UHJvY2VkdXJlTmFtZSIsInByb2NlZHVyZVByZXNlbnQiLCJjbGVhciIsImNvbXBsZXRlIiwiaW5pdGlhbGlzZSIsImdldEpTT04iLCJmaWxlQ29udGV4dCIsInByb2NlZHVyZXNGcm9tSlNPTiIsInZlcmlmeUZpbGUiLCJmb3J3YXJkIiwiYmFjayIsImlzb2xhdGUiLCJmaWxlTm9kZSIsInRvSlNPTiIsInByb2NlZHVyZXNKU09OIiwicHJvY2VkdXJlc1RvUHJvY2VkdXJlc0pTT04iLCJnZXRGaWxlQ29udGVudCIsImZyb21GaWxlIiwiZmlsZSIsImZ1cnRsZUxleGVyIiwiZnVydGxlUGFyc2VyIiwiZnVydGxlRmlsZUNvbnRleHQiLCJmcm9tSlNPTiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBY0E7OztlQUFxQkE7OztnQ0FaTzs0QkFDRzt5QkFFUDt3QkFDRzt3QkFDZTtzQkFDcUI7QUFFL0QsTUFBTSxFQUFFQyxVQUFVLEVBQUUsR0FBR0MsMEJBQWM7QUFFckMsTUFBTUMsc0JBQXNCRixXQUFXO0FBRXhCLE1BQU1ELDBCQUEwQkksMkJBQVc7SUFDeEQsWUFBWUMsT0FBTyxFQUFFQyxXQUFXLEVBQUVDLFFBQVEsRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLElBQUksRUFBRUMsS0FBSyxFQUFFQyxNQUFNLEVBQUVDLFVBQVUsQ0FB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
|
|
217
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0L2ZpbGUvZnVydGxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBGaWxlQ29udGV4dCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcbmltcG9ydCB7IHF1ZXJ5VXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLXF1ZXJ5XCI7XG5cbmltcG9ydCB7IGlzb2xhdGUgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcbmltcG9ydCB7IHZlcmlmeUZpbGUgfSBmcm9tIFwiLi4vLi4vcHJvY2Vzcy92ZXJpZnlcIjtcbmltcG9ydCB7IGZ1cnRsZUxleGVyLCBmdXJ0bGVQYXJzZXIgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2Z1cnRsZVwiO1xuaW1wb3J0IHtcbiAgcHJvY2VkdXJlc0Zyb21KU09OLFxuICBpbXBvcnRCaW5kaW5nc0Zyb21KU09OLFxuICBwcm9jZWR1cmVzVG9Qcm9jZWR1cmVzSlNPTixcbiAgaW1wb3J0QmluZGluZ3NUb0ltcG9ydEJpbmRpbmdzSlNPTlxufSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL2pzb25cIjtcbmltcG9ydCBwcm9jZWR1cmUgZnJvbSBcIi4uLy4uL2VsZW1lbnQvcHJvY2VkdXJlXCI7XG5cbmNvbnN0IHsgbm9kZXNRdWVyeSB9ID0gcXVlcnlVdGlsaXRpZXM7XG5cbmNvbnN0IHByb2NlZHVyZU5vZGVzUXVlcnkgPSBub2Rlc1F1ZXJ5KFwiL2RvY3VtZW50L3Byb2NlZHVyZVwiKTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRnVydGxlRmlsZUNvbnRleHQgZXh0ZW5kcyBGaWxlQ29udGV4dCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIGZpbGVDb250ZW50LCBmaWxlUGF0aCwgdG9rZW5zLCBub2RlLCBqc29uLCBsZXhlciwgcGFyc2VyLCBwcm9jZWR1cmVzLCBpbXBvcnRCaW5kaW5ncykge1xuICAgIHN1cGVyKGNvbnRleHQsIGZpbGVDb250ZW50LCBmaWxlUGF0aCwgdG9rZW5zLCBub2RlLCBqc29uKTtcblxuICAgIHRoaXMubGV4ZXIgPSBsZXhlcjtcbiAgICB0aGlzLnBhcnNlciA9IHBhcnNlcjtcbiAgICB0aGlzLnByb2NlZHVyZXMgPSBwcm9jZWR1cmVzO1xuICAgIHRoaXMuaW1wb3J0QmluZGluZ3MgPSBpbXBvcnRCaW5kaW5ncztcbiAgfVxuXG4gIGdldExleGVyKCkge1xuICAgIHJldHVybiB0aGlzLmxleGVyO1xuICB9XG5cbiAgZ2V0UGFyc2VyKCkge1xuICAgIHJldHVybiB0aGlzLnBhcnNlcjtcbiAgfVxuXG4gIGdldFByb2NlZHVyZXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgcHJvY2VkdXJlcyA9IGluY2x1ZGVSZWxlYXNlID9cbiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHQuZ2V0UHJvY2VkdXJlcygpIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvY2VkdXJlcztcblxuICAgIHJldHVybiBwcm9jZWR1cmVzO1xuICB9XG5cbiAgZ2V0SW1wb3J0QmluZGluZ3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuaW1wb3J0QmluZGluZ3M7XG4gIH1cblxuICBnZXRMYWJlbHMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgbGFiZWxzID0gW107XG5cbiAgICByZXR1cm4gbGFiZWxzO1xuICB9XG5cbiAgZ2V0VHlwZXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgdHlwZXMgPSBbXTtcblxuICAgIHJldHVybiB0eXBlcztcbiAgfVxuXG4gIGdldFJ1bGVzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHJ1bGVzID0gW11cblxuICAgIHJldHVybiBydWxlcztcbiAgfVxuXG4gIGdldEF4aW9tcyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBheGlvbXMgPSBbXTtcblxuICAgIHJldHVybiBheGlvbXM7XG4gIH1cblxuICBnZXRMZW1tYXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgbGVtbWFzID0gW107XG5cbiAgICByZXR1cm4gbGVtbWFzO1xuICB9XG5cbiAgZ2V0VGhlb3JlbXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgdGhlb3JlbXMgPSBbXTtcblxuICAgIHJldHVybiB0aGVvcmVtcztcbiAgfVxuXG4gIGdldE1ldGFMZW1tYXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgbWV0YUxlbW1hcyA9IFtdO1xuXG4gICAgcmV0dXJuIG1ldGFMZW1tYXM7XG4gIH1cblxuICBnZXRHZW5lcmF0b3JzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGdlbmVyYXRvcnMgPSBbXTtcblxuICAgIHJldHVybiBnZW5lcmF0b3JzO1xuICB9XG5cbiAgZ2V0Q29uamVjdHVyZXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgY29uamVjdHVyZXMgPSBbXTtcblxuICAgIHJldHVybiBjb25qZWN0dXJlcztcbiAgfVxuXG4gIGdldENvbWJpbmF0b3JzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGNvbWJpbmF0b3JzID0gW107XG5cbiAgICByZXR1cm4gY29tYmluYXRvcnM7XG4gIH1cblxuICBnZXRUeXBlUHJlZml4ZXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgdHlwZVByZWZpeGVzID0gW107XG5cbiAgICByZXR1cm4gdHlwZVByZWZpeGVzO1xuICB9XG5cbiAgZ2V0Q29uc3RydWN0b3JzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGNvbnN0cnVjdG9ycyA9IFtdO1xuXG4gICAgcmV0dXJuIGNvbnN0cnVjdG9ycztcbiAgfVxuXG4gIGdldE1ldGF0aGVvcmVtcyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBtZXRhdGhlb3JlbXMgPSBbXTtcblxuICAgIHJldHVybiBtZXRhdGhlb3JlbXM7XG4gIH1cblxuICBnZXRNZXRhdmFyaWFibGVzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IG1ldGF2YXJpYWJsZXMgPSBbXTtcblxuICAgIHJldHVybiBtZXRhdmFyaWFibGVzO1xuICB9XG5cbiAgZ2V0VmFyaWFibGVzKG5lc3RlZCA9IHRydWUpIHtcbiAgICBjb25zdCB2YXJpYWJsZXMgPSBbXTtcblxuICAgIHJldHVybiB2YXJpYWJsZXM7XG4gIH1cblxuICBhZGRQcm9jZWR1cmUocHJvY2VkdXJlKSB7XG4gICAgY29uc3QgcHJvY2VkdXJlU3RyaW5nID0gcHJvY2VkdXJlLmdldFN0cmluZygpO1xuXG4gICAgdGhpcy5wcm9jZWR1cmVzLnB1c2gocHJvY2VkdXJlKTtcblxuICAgIGNvbnN0IGZpbGVQYXRoID0gdGhpcy5nZXRGaWxlUGF0aCgpO1xuXG4gICAgdGhpcy5kZWJ1ZyhgQWRkZWQgdGhlICcke3Byb2NlZHVyZVN0cmluZ30nIGZ1bmN0aW9uIHRvIHRoZSAnJHtmaWxlUGF0aH0nIGZpbGUgY29udGV4dC5gKTtcbiAgfVxuXG4gIGFkZEltcG9ydEJpbmRpbmcoaW1wb3J0QmluZGluZykge1xuICAgIGNvbnN0IGltcG9ydEJpbmRpbmdTdHJpbmcgPSBpbXBvcnRCaW5kaW5nLmdldFN0cmluZygpO1xuXG4gICAgdGhpcy5pbXBvcnRCaW5kaW5ncy5wdXNoKGltcG9ydEJpbmRpbmcpO1xuXG4gICAgY29uc3QgZmlsZVBhdGggPSB0aGlzLmdldEZpbGVQYXRoKCk7XG5cbiAgICB0aGlzLmRlYnVnKGBBZGRlZCB0aGUgJyR7aW1wb3J0QmluZGluZ1N0cmluZ30nIGltcG9ydCBiaW5kaW5nIHRvIHRoZSAnJHtmaWxlUGF0aH0nIGZpbGUgY29udGV4dC5gKTtcbiAgfVxuXG4gIGZpbmRQcm9jZWR1cmVOb2RlKGxhYmVsKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Tm9kZSgpLFxuICAgICAgICAgIGxhYmVsTm9kZSA9IGxhYmVsLmdldE5vZGUoKSxcbiAgICAgICAgICBkb2N1bWVudE5vZGUgPSBub2RlLCAgLy8vXG4gICAgICAgICAgcHJvY2VkdXJlTm9kZXMgPSBwcm9jZWR1cmVOb2Rlc1F1ZXJ5KGRvY3VtZW50Tm9kZSksXG4gICAgICAgICAgcHJvY2VkdXJlTm9kZSA9IHByb2NlZHVyZU5vZGVzLmZpbmQoKHByb2NlZHVyZU5vZGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxhYmVsTWF0Y2hlcyA9IHByb2NlZHVyZU5vZGUubWF0Y2hMYWJlbE5vZGUobGFiZWxOb2RlKTtcblxuICAgICAgICAgICAgaWYgKGxhYmVsTWF0Y2hlcykge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIHByb2NlZHVyZU5vZGU7XG4gIH1cblxuICBmaW5kUHJvY2VkdXJlQnlQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpIHtcbiAgICBjb25zdCBwcm9jZWR1cmVzID0gdGhpcy5nZXRQcm9jZWR1cmVzKCksXG4gICAgICAgICAgcHJvY2VkdXJlID0gcHJvY2VkdXJlcy5maW5kKChwcm9jZWR1cmUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHByb2NlZHVyZUNvbXBhcmVzVG9Qcm9jZWR1cmVOYW1lID0gcHJvY2VkdXJlLmNvbXBhcmVQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpO1xuXG4gICAgICAgICAgICBpZiAocHJvY2VkdXJlQ29tcGFyZXNUb1Byb2NlZHVyZU5hbWUpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSkgfHwgbnVsbDtcblxuICAgIHJldHVybiBwcm9jZWR1cmU7XG4gIH1cblxuICBmaW5kSW1wb3J0ZWRQcm9jZWR1cmVCeVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSkge1xuICAgIGxldCBpbXBvcnRlZFByb2NlZHVyZSA9IG51bGw7XG5cbiAgICB0aGlzLmltcG9ydEJpbmRpbmdzLnNvbWUoKGltcG9ydEJpbmRpbmcpID0+IHtcbiAgICAgIGNvbnN0IGxhYmxsZWRQcm9jZWR1cmVOYW1lID0gcHJvY2VkdXJlTmFtZTsgLy8vXG5cbiAgICAgIGNvbnN0IGxhYmVsbGVkUHJvY2VkdXJlTmFtZUNsbXBhcmVzID0gaW1wb3J0QmluZGluZy5jb21wYXJlTGFibGxlZFByb2NlZHVyZU5hbWUobGFibGxlZFByb2NlZHVyZU5hbWUpO1xuXG4gICAgICBpZiAobGFiZWxsZWRQcm9jZWR1cmVOYW1lQ2xtcGFyZXMpIHtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlZFByb2NlZHVyZU5hbWUgPSBpbXBvcnRCaW5kaW5nLmdldFJlZmVyZW5jZWRQcm9jZWR1cmVOYW1lKCk7XG5cbiAgICAgICAgcHJvY2VkdXJlTmFtZSA9IHJlZmVyZW5jZWRQcm9jZWR1cmVOYW1lOyAgLy8vXG5cbiAgICAgICAgY29uc3QgcHJvY2VkdXJlID0gdGhpcy5maW5kUHJvY2VkdXJlQnlQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpO1xuXG4gICAgICAgIGltcG9ydGVkUHJvY2VkdXJlID0gcHJvY2VkdXJlOyAgLy8vXG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gaW1wb3J0ZWRQcm9jZWR1cmU7XG4gIH1cblxuICBmaW5kSW1wb3J0QmluZGluZ0J5TGFiZWxsZWRQcm9jZWR1cmVOYW1lKGxhYmVsbGVkUHJvY2VkdXJlTmFtZSkge1xuICAgIGNvbnN0IGltcG9ydEJpbmRpbmcgPSB0aGlzLmltcG9ydEJpbmRpbmdzLmZpbmQoKGltcG9ydEJpbmRpbmcpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxhYmVsbGVkUHJvY2VkdXJlTmFtZUNvbXBhcmVzID0gaW1wb3J0QmluZGluZy5jb21wYXJlTGFibGxlZFByb2NlZHVyZU5hbWUobGFiZWxsZWRQcm9jZWR1cmVOYW1lKTtcblxuICAgICAgICAgICAgaWYgKGxhYmVsbGVkUHJvY2VkdXJlTmFtZUNvbXBhcmVzKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pIHx8IG51bGw7XG5cbiAgICByZXR1cm4gaW1wb3J0QmluZGluZztcbiAgfVxuXG4gIGlzUHJvY2VkdXJlUHJlc2VudEJ5UHJvY2VkdXJlTmFtZShwcm9jZWR1cmVOYW1lKSB7XG4gICAgY29uc3QgcHJvY2VkdXJlID0gdGhpcy5maW5kUHJvY2VkdXJlQnlQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpLFxuICAgICAgICAgIHByb2NlZHVyZVByZXNlbnQgPSAocHJvY2VkdXJlICE9PSBudWxsKTtcblxuICAgIHJldHVybiBwcm9jZWR1cmVQcmVzZW50O1xuICB9XG5cbiAgaXNJbXBvcnRlZFByb2NlZHVyZVByZXNlbnRCeVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSkge1xuICAgIGNvbnN0IGltcG9ydGVkUHJvY2V1ZHJlID0gdGhpcy5maW5kSW1wb3J0ZWRQcm9jZWR1cmVCeVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSksXG4gICAgICAgICAgaW1wb3J0ZWRQcm9jZXVkcmVQcmVzZW50ID0gKGltcG9ydGVkUHJvY2V1ZHJlICE9PSBudWxsKTtcblxuICAgIHJldHVybiBpbXBvcnRlZFByb2NldWRyZVByZXNlbnQ7XG4gIH1cblxuICBpc0ltcG9ydEJpbmRpbmdQcmVzZW50QnlMYWJlbGxlZFByb2NlZHVyZU5hbWUobGFiZWxsZWRQcm9jZWR1cmVOYW1lKSB7XG4gICAgY29uc3QgaW1wb3J0QmluZGluZyA9IHRoaXMuZmluZEltcG9ydEJpbmRpbmdCeUxhYmVsbGVkUHJvY2VkdXJlTmFtZShsYWJlbGxlZFByb2NlZHVyZU5hbWUpLFxuICAgICAgICAgIGltcG9ydEJpbmRpbmdQcmVzZW50ID0gKGltcG9ydEJpbmRpbmcgIT09IG51bGwpO1xuXG4gICAgcmV0dXJuIGltcG9ydEJpbmRpbmdQcmVzZW50O1xuICB9XG5cbiAgY29tcGFyZVJlbGVhc2VOYW1lKHJlbGVhc2VOYW1lKSB7IHJldHVybiB0aGlzLmNvbnRleHQuY29tcGFyZVJlbGVhc2VOYW1lKHJlbGVhc2VOYW1lKTsgfVxuXG4gIGNsZWFyKCkge1xuICAgIHRoaXMucHJvY2VkdXJlcyA9IFtdO1xuICB9XG5cbiAgY29tcGxldGUoKSB7XG4gICAgLy8vXG4gIH1cblxuICBpbml0aWFsaXNlKCkge1xuICAgIHN1cGVyLmluaXRpYWxpc2UoKTsgLy8vXG5cbiAgICBjb25zdCBqc29uID0gdGhpcy5nZXRKU09OKCk7XG5cbiAgICBpZiAoanNvbiAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgZmlsZUNvbnRleHQgPSB0aGlzOyAvLy9cblxuICAgICAgdGhpcy5wcm9jZWR1cmVzID0gcHJvY2VkdXJlc0Zyb21KU09OKGpzb24sIGZpbGVDb250ZXh0KTtcblxuICAgICAgdGhpcy5pbXBvcnRCaW5kaW5ncyA9IGltcG9ydEJpbmRpbmdzRnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpO1xuICAgIH1cbiAgfVxuXG4gIHZlcmlmeUZpbGUoZm9yd2FyZCwgYmFjaykge1xuICAgIHJldHVybiBpc29sYXRlKChmb3J3YXJkLCBiYWNrKSA9PiB7XG4gICAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgICBjb250ZXh0ID0gdGhpcywgLy8vXG4gICAgICAgICAgICBmaWxlTm9kZSA9IG5vZGU7ICAvLy9cblxuICAgICAgcmV0dXJuIHZlcmlmeUZpbGUoZmlsZU5vZGUsIGNvbnRleHQsIGZvcndhcmQsIGJhY2spO1xuICAgIH0sIGZvcndhcmQsIGJhY2spO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGxldCBqc29uO1xuXG4gICAgY29uc3QgZmlsZVBhdGggPSB0aGlzLmdldEZpbGVQYXRoKCksXG4gICAgICAgICAgZmlsZUNvbnRlbnQgPSB0aGlzLmdldEZpbGVDb250ZW50KCksXG4gICAgICAgICAgcHJvY2VkdXJlc0pTT04gPSBwcm9jZWR1cmVzVG9Qcm9jZWR1cmVzSlNPTih0aGlzLnByb2NlZHVyZXMpLFxuICAgICAgICAgIGltcG9ydEJpbmRpbmdzSlNPTiA9IGltcG9ydEJpbmRpbmdzVG9JbXBvcnRCaW5kaW5nc0pTT04odGhpcy5pbXBvcnRCaW5kaW5ncyksXG4gICAgICAgICAgcHJvY2VkdXJlcyA9IHByb2NlZHVyZXNKU09OLCAgLy8vXG4gICAgICAgICAgaW1wb3J0QmluZGluZ3MgPSBpbXBvcnRCaW5kaW5nc0pTT047XG5cbiAgICBqc29uID0ge1xuICAgICAgZmlsZVBhdGgsXG4gICAgICBmaWxlQ29udGVudCxcbiAgICAgIHByb2NlZHVyZXMsXG4gICAgICBpbXBvcnRCaW5kaW5nc1xuICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tRmlsZShmaWxlLCBjb250ZXh0KSB7XG4gICAgY29uc3QgbGV4ZXIgPSBmdXJ0bGVMZXhlciwgIC8vL1xuICAgICAgICAgIHBhcnNlciA9IGZ1cnRsZVBhcnNlciwgIC8vL1xuICAgICAgICAgIHByb2NlZHVyZXMgPSBbXSxcbiAgICAgICAgICBpbXBvcnRCaW5kaW5ncyA9IFtdLFxuICAgICAgICAgIGZ1cnRsZUZpbGVDb250ZXh0ID0gRmlsZUNvbnRleHQuZnJvbUZpbGUoRnVydGxlRmlsZUNvbnRleHQsIGZpbGUsIGxleGVyLCBwYXJzZXIsIHByb2NlZHVyZXMsIGltcG9ydEJpbmRpbmdzLCBjb250ZXh0KTtcblxuICAgIHJldHVybiBmdXJ0bGVGaWxlQ29udGV4dDtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgY29uc3QgbGV4ZXIgPSBmdXJ0bGVMZXhlciwgIC8vL1xuICAgICAgICAgIHBhcnNlciA9IGZ1cnRsZVBhcnNlciwgIC8vL1xuICAgICAgICAgIHByb2NlZHVyZXMgPSBudWxsLFxuICAgICAgICAgIGltcG9ydEJpbmRpbmdzID0gbnVsbCxcbiAgICAgICAgICBmdXJ0bGVGaWxlQ29udGV4dCA9IEZpbGVDb250ZXh0LmZyb21KU09OKEZ1cnRsZUZpbGVDb250ZXh0LCBqc29uLCBsZXhlciwgcGFyc2VyLCBwcm9jZWR1cmVzLCBpbXBvcnRCaW5kaW5ncywgY29udGV4dCk7XG5cbiAgICByZXR1cm4gZnVydGxlRmlsZUNvbnRleHQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJGdXJ0bGVGaWxlQ29udGV4dCIsIm5vZGVzUXVlcnkiLCJxdWVyeVV0aWxpdGllcyIsInByb2NlZHVyZU5vZGVzUXVlcnkiLCJGaWxlQ29udGV4dCIsImNvbnRleHQiLCJmaWxlQ29udGVudCIsImZpbGVQYXRoIiwidG9rZW5zIiwibm9kZSIsImpzb24iLCJsZXhlciIsInBhcnNlciIsInByb2NlZHVyZXMiLCJpbXBvcnRCaW5kaW5ncyIsImdldExleGVyIiwiZ2V0UGFyc2VyIiwiZ2V0UHJvY2VkdXJlcyIsImluY2x1ZGVSZWxlYXNlIiwiZ2V0SW1wb3J0QmluZGluZ3MiLCJnZXRMYWJlbHMiLCJsYWJlbHMiLCJnZXRUeXBlcyIsInR5cGVzIiwiZ2V0UnVsZXMiLCJydWxlcyIsImdldEF4aW9tcyIsImF4aW9tcyIsImdldExlbW1hcyIsImxlbW1hcyIsImdldFRoZW9yZW1zIiwidGhlb3JlbXMiLCJnZXRNZXRhTGVtbWFzIiwibWV0YUxlbW1hcyIsImdldEdlbmVyYXRvcnMiLCJnZW5lcmF0b3JzIiwiZ2V0Q29uamVjdHVyZXMiLCJjb25qZWN0dXJlcyIsImdldENvbWJpbmF0b3JzIiwiY29tYmluYXRvcnMiLCJnZXRUeXBlUHJlZml4ZXMiLCJ0eXBlUHJlZml4ZXMiLCJnZXRDb25zdHJ1Y3RvcnMiLCJjb25zdHJ1Y3RvcnMiLCJnZXRNZXRhdGhlb3JlbXMiLCJtZXRhdGhlb3JlbXMiLCJnZXRNZXRhdmFyaWFibGVzIiwibWV0YXZhcmlhYmxlcyIsImdldFZhcmlhYmxlcyIsIm5lc3RlZCIsInZhcmlhYmxlcyIsImFkZFByb2NlZHVyZSIsInByb2NlZHVyZSIsInByb2NlZHVyZVN0cmluZyIsImdldFN0cmluZyIsInB1c2giLCJnZXRGaWxlUGF0aCIsImRlYnVnIiwiYWRkSW1wb3J0QmluZGluZyIsImltcG9ydEJpbmRpbmciLCJpbXBvcnRCaW5kaW5nU3RyaW5nIiwiZmluZFByb2NlZHVyZU5vZGUiLCJsYWJlbCIsImdldE5vZGUiLCJsYWJlbE5vZGUiLCJkb2N1bWVudE5vZGUiLCJwcm9jZWR1cmVOb2RlcyIsInByb2NlZHVyZU5vZGUiLCJmaW5kIiwibGFiZWxNYXRjaGVzIiwibWF0Y2hMYWJlbE5vZGUiLCJmaW5kUHJvY2VkdXJlQnlQcm9jZWR1cmVOYW1lIiwicHJvY2VkdXJlTmFtZSIsInByb2NlZHVyZUNvbXBhcmVzVG9Qcm9jZWR1cmVOYW1lIiwiY29tcGFyZVByb2NlZHVyZU5hbWUiLCJmaW5kSW1wb3J0ZWRQcm9jZWR1cmVCeVByb2NlZHVyZU5hbWUiLCJpbXBvcnRlZFByb2NlZHVyZSIsInNvbWUiLCJsYWJsbGVkUHJvY2VkdXJlTmFtZSIsImxhYmVsbGVkUHJvY2VkdXJlTmFtZUNsbXBhcmVzIiwiY29tcGFyZUxhYmxsZWRQcm9jZWR1cmVOYW1lIiwicmVmZXJlbmNlZFByb2NlZHVyZU5hbWUiLCJnZXRSZWZlcmVuY2VkUHJvY2VkdXJlTmFtZSIsImZpbmRJbXBvcnRCaW5kaW5nQnlMYWJlbGxlZFByb2NlZHVyZU5hbWUiLCJsYWJlbGxlZFByb2NlZHVyZU5hbWUiLCJsYWJlbGxlZFByb2NlZHVyZU5hbWVDb21wYXJlcyIsImlzUHJvY2VkdXJlUHJlc2VudEJ5UHJvY2VkdXJlTmFtZSIsInByb2NlZHVyZVByZXNlbnQiLCJpc0ltcG9ydGVkUHJvY2VkdXJlUHJlc2VudEJ5UHJvY2VkdXJlTmFtZSIsImltcG9ydGVkUHJvY2V1ZHJlIiwiaW1wb3J0ZWRQcm9jZXVkcmVQcmVzZW50IiwiaXNJbXBvcnRCaW5kaW5nUHJlc2VudEJ5TGFiZWxsZWRQcm9jZWR1cmVOYW1lIiwiaW1wb3J0QmluZGluZ1ByZXNlbnQiLCJjb21wYXJlUmVsZWFzZU5hbWUiLCJyZWxlYXNlTmFtZSIsImNsZWFyIiwiY29tcGxldGUiLCJpbml0aWFsaXNlIiwiZ2V0SlNPTiIsImZpbGVDb250ZXh0IiwicHJvY2VkdXJlc0Zyb21KU09OIiwiaW1wb3J0QmluZGluZ3NGcm9tSlNPTiIsInZlcmlmeUZpbGUiLCJmb3J3YXJkIiwiYmFjayIsImlzb2xhdGUiLCJmaWxlTm9kZSIsInRvSlNPTiIsImdldEZpbGVDb250ZW50IiwicHJvY2VkdXJlc0pTT04iLCJwcm9jZWR1cmVzVG9Qcm9jZWR1cmVzSlNPTiIsImltcG9ydEJpbmRpbmdzSlNPTiIsImltcG9ydEJpbmRpbmdzVG9JbXBvcnRCaW5kaW5nc0pTT04iLCJmcm9tRmlsZSIsImZpbGUiLCJmdXJ0bGVMZXhlciIsImZ1cnRsZVBhcnNlciIsImZ1cnRsZUZpbGVDb250ZXh0IiwiZnJvbUpTT04iXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQW9CQTs7O2VBQXFCQTs7O2dDQWxCTzs0QkFDRzt5QkFFUDt3QkFDRzt3QkFDZTtzQkFNbkM7a0VBQ2U7Ozs7OztBQUV0QixNQUFNLEVBQUVDLFVBQVUsRUFBRSxHQUFHQywwQkFBYztBQUVyQyxNQUFNQyxzQkFBc0JGLFdBQVc7QUFFeEIsTUFBTUQsMEJBQTBCSSwyQkFBVztJQUN4RCxZQUFZQyxPQUFPLEVBQUVDLFdBQVcsRUFBRUMsUUFBUSxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsSUFBSSxFQUFFQyxLQUFLLEVBQUVDLE1BQU0sRUFBRUMsVUFBVSxFQUFFQyxjQUFjLENBQUU7UUFDekcsS0FBSyxDQUFDVCxTQUFTQyxhQUFhQyxVQUFVQyxRQUFRQyxNQUFNQztRQUVwRCxJQUFJLENBQUNDLEtBQUssR0FBR0E7UUFDYixJQUFJLENBQUNDLE1BQU0sR0FBR0E7UUFDZCxJQUFJLENBQUNDLFVBQVUsR0FBR0E7UUFDbEIsSUFBSSxDQUFDQyxjQUFjLEdBQUdBO0lBQ3hCO0lBRUFDLFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQ0osS0FBSztJQUNuQjtJQUVBSyxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUNKLE1BQU07SUFDcEI7SUFFQUssY0FBY0MsaUJBQWlC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
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return _default;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _occamlanguages = require("occam-languages");
|
|
12
|
+
const _elements = require("../elements");
|
|
13
|
+
const _instantiate = require("../process/instantiate");
|
|
14
|
+
const _json = require("../utilities/json");
|
|
15
|
+
const _context = require("../utilities/context");
|
|
16
|
+
const _default = (0, _elements.define)(class ImportBinding extends _occamlanguages.Element {
|
|
17
|
+
constructor(context, string, node, breakPoint, label, reference){
|
|
18
|
+
super(context, string, node, breakPoint);
|
|
19
|
+
this.label = label;
|
|
20
|
+
this.reference = reference;
|
|
21
|
+
}
|
|
22
|
+
getLabel() {
|
|
23
|
+
return this.label;
|
|
24
|
+
}
|
|
25
|
+
getReference() {
|
|
26
|
+
return this.reference;
|
|
27
|
+
}
|
|
28
|
+
getLabelledProcedureName() {
|
|
29
|
+
const labelName = this.label.getName(), labelledProcedureName = labelName; ///
|
|
30
|
+
return labelledProcedureName;
|
|
31
|
+
}
|
|
32
|
+
getReferencedProcedureName() {
|
|
33
|
+
const referenceName = this.reference.getName(), referencedProcedureName = referenceName; ///
|
|
34
|
+
return referencedProcedureName;
|
|
35
|
+
}
|
|
36
|
+
isAllowed() {
|
|
37
|
+
const labelledProcedureName = this.getLabelledProcedureName(), referencedProcedureName = this.getReferencedProcedureName(), aliased = labelledProcedureName !== referencedProcedureName;
|
|
38
|
+
return aliased;
|
|
39
|
+
}
|
|
40
|
+
compareLablledProcedureName(labelledProcedureName) {
|
|
41
|
+
const labelName = this.label.getName(), labelledProcedureNameCompares = labelName === labelledProcedureName;
|
|
42
|
+
return labelledProcedureNameCompares;
|
|
43
|
+
}
|
|
44
|
+
verify(releaseName, context, forward, back) {
|
|
45
|
+
const importBindingString = this.getString(); ///
|
|
46
|
+
context.trace(`Verifying the '${importBindingString}' import binding...`);
|
|
47
|
+
let procedureName, procedurePresent;
|
|
48
|
+
const referencedProcedureName = this.getReferencedProcedureName();
|
|
49
|
+
procedureName = referencedProcedureName; ///
|
|
50
|
+
procedurePresent = context.isProcedurePresentByProcedureName(procedureName);
|
|
51
|
+
if (!procedurePresent) {
|
|
52
|
+
context.trace(`The '${procedureName}' procedure is not present.`);
|
|
53
|
+
return back();
|
|
54
|
+
}
|
|
55
|
+
const labelledProcedureName = this.getLabelledProcedureName();
|
|
56
|
+
procedureName = labelledProcedureName; ///
|
|
57
|
+
const aliased = this.isAllowed();
|
|
58
|
+
if (aliased) {
|
|
59
|
+
procedurePresent = context.isProcedurePresentByProcedureName(procedureName);
|
|
60
|
+
if (procedurePresent) {
|
|
61
|
+
context.trace(`The '${procedureName}' procedure is already present.`);
|
|
62
|
+
return back();
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
const importBindingPresent = context.isImportBindingPresentByLabelledProcedureName(labelledProcedureName);
|
|
66
|
+
if (importBindingPresent) {
|
|
67
|
+
const labelString = this.label.getString();
|
|
68
|
+
context.trace(`The '${importBindingString}' import binding's '${labelString}' label is already present...`);
|
|
69
|
+
return back();
|
|
70
|
+
}
|
|
71
|
+
procedureName = referencedProcedureName; ///
|
|
72
|
+
const procedure = context.findProcedureByProcedureName(procedureName), releaseNameCompares = procedure.compareReleaseName(releaseName);
|
|
73
|
+
if (!releaseNameCompares) {
|
|
74
|
+
context.trace(`The '${procedureName}' procedure is not in the '${releaseName}' package.`);
|
|
75
|
+
return back();
|
|
76
|
+
}
|
|
77
|
+
const exported = procedure.isExported();
|
|
78
|
+
if (!exported) {
|
|
79
|
+
context.trace(`The '${procedureName}' procedure is not exported.`);
|
|
80
|
+
return back();
|
|
81
|
+
}
|
|
82
|
+
const importBinding = this;
|
|
83
|
+
context.addImportBinding(importBinding);
|
|
84
|
+
context.debug(`...verified the '${importBindingString}' import binding.`);
|
|
85
|
+
return forward(context, back);
|
|
86
|
+
}
|
|
87
|
+
toJSON() {
|
|
88
|
+
let json;
|
|
89
|
+
const string = this.getString(), labelJSON = (0, _json.labelToLabelJSON)(this.label), referenceJJSON = (0, _json.referenceToReferenceJSON)(this.reference), label = labelJSON, reference = referenceJJSON; ///
|
|
90
|
+
json = {
|
|
91
|
+
string,
|
|
92
|
+
label,
|
|
93
|
+
reference
|
|
94
|
+
};
|
|
95
|
+
return json;
|
|
96
|
+
}
|
|
97
|
+
static name = "ImportBinding";
|
|
98
|
+
static fromJSON(json, context) {
|
|
99
|
+
let importBinding;
|
|
100
|
+
(0, _context.instantiate)((context)=>{
|
|
101
|
+
const { string } = json, breakPoint = null, importBindingNode = (0, _instantiate.instantiateImportBinding)(string, context), label = (0, _json.labelFromJSON)(json, context), reference = (0, _json.referenceFromJSON)(json, context), node = importBindingNode; ///
|
|
102
|
+
importBinding = new ImportBinding(context, string, node, breakPoint, label, reference);
|
|
103
|
+
}, context);
|
|
104
|
+
return importBinding;
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2ltcG9ydEJpbmRpbmcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgaW5zdGFudGlhdGVJbXBvcnRCaW5kaW5nIH0gZnJvbSBcIi4uL3Byb2Nlc3MvaW5zdGFudGlhdGVcIjtcbmltcG9ydCB7IGxhYmVsRnJvbUpTT04sIGxhYmVsVG9MYWJlbEpTT04sIHJlZmVyZW5jZUZyb21KU09OLCByZWZlcmVuY2VUb1JlZmVyZW5jZUpTT04gfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2pzb25cIjtcbmltcG9ydCB7aW5zdGFudGlhdGV9IGZyb20gXCIuLi91dGlsaXRpZXMvY29udGV4dFwiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgSW1wb3J0QmluZGluZyBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIGxhYmVsLCByZWZlcmVuY2UpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy5sYWJlbCA9IGxhYmVsO1xuICAgIHRoaXMucmVmZXJlbmNlID0gcmVmZXJlbmNlO1xuICB9XG5cbiAgZ2V0TGFiZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMubGFiZWw7XG4gIH1cblxuICBnZXRSZWZlcmVuY2UoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVmZXJlbmNlO1xuICB9XG5cbiAgZ2V0TGFiZWxsZWRQcm9jZWR1cmVOYW1lKCkge1xuICAgIGNvbnN0IGxhYmVsTmFtZSA9IHRoaXMubGFiZWwuZ2V0TmFtZSgpLFxuICAgICAgICAgIGxhYmVsbGVkUHJvY2VkdXJlTmFtZSA9IGxhYmVsTmFtZTsgIC8vL1xuXG4gICAgcmV0dXJuIGxhYmVsbGVkUHJvY2VkdXJlTmFtZTtcbiAgfVxuXG4gIGdldFJlZmVyZW5jZWRQcm9jZWR1cmVOYW1lKCkge1xuICAgIGNvbnN0IHJlZmVyZW5jZU5hbWUgPSB0aGlzLnJlZmVyZW5jZS5nZXROYW1lKCksXG4gICAgICAgICAgcmVmZXJlbmNlZFByb2NlZHVyZU5hbWUgPSByZWZlcmVuY2VOYW1lOyAgLy8vXG5cbiAgICByZXR1cm4gcmVmZXJlbmNlZFByb2NlZHVyZU5hbWU7XG4gIH1cblxuICBpc0FsbG93ZWQoKSB7XG4gICAgY29uc3QgbGFiZWxsZWRQcm9jZWR1cmVOYW1lID0gdGhpcy5nZXRMYWJlbGxlZFByb2NlZHVyZU5hbWUoKSxcbiAgICAgICAgICByZWZlcmVuY2VkUHJvY2VkdXJlTmFtZSA9IHRoaXMuZ2V0UmVmZXJlbmNlZFByb2NlZHVyZU5hbWUoKSxcbiAgICAgICAgICBhbGlhc2VkID0gKGxhYmVsbGVkUHJvY2VkdXJlTmFtZSAhPT0gcmVmZXJlbmNlZFByb2NlZHVyZU5hbWUpO1xuXG4gICAgcmV0dXJuIGFsaWFzZWQ7XG4gIH1cblxuICBjb21wYXJlTGFibGxlZFByb2NlZHVyZU5hbWUobGFiZWxsZWRQcm9jZWR1cmVOYW1lKSB7XG4gICAgY29uc3QgbGFiZWxOYW1lID0gdGhpcy5sYWJlbC5nZXROYW1lKCksXG4gICAgICAgICAgbGFiZWxsZWRQcm9jZWR1cmVOYW1lQ29tcGFyZXMgPSAobGFiZWxOYW1lID09PSBsYWJlbGxlZFByb2NlZHVyZU5hbWUpO1xuXG4gICAgcmV0dXJuIGxhYmVsbGVkUHJvY2VkdXJlTmFtZUNvbXBhcmVzO1xuICB9XG5cbiAgdmVyaWZ5KHJlbGVhc2VOYW1lLCBjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgY29uc3QgaW1wb3J0QmluZGluZ1N0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmVyaWZ5aW5nIHRoZSAnJHtpbXBvcnRCaW5kaW5nU3RyaW5nfScgaW1wb3J0IGJpbmRpbmcuLi5gKTtcblxuICAgIGxldCBwcm9jZWR1cmVOYW1lLFxuICAgICAgICBwcm9jZWR1cmVQcmVzZW50O1xuXG4gICAgY29uc3QgcmVmZXJlbmNlZFByb2NlZHVyZU5hbWUgPSB0aGlzLmdldFJlZmVyZW5jZWRQcm9jZWR1cmVOYW1lKCk7XG5cbiAgICBwcm9jZWR1cmVOYW1lID0gcmVmZXJlbmNlZFByb2NlZHVyZU5hbWU7ICAvLy9cblxuICAgIHByb2NlZHVyZVByZXNlbnQgPSBjb250ZXh0LmlzUHJvY2VkdXJlUHJlc2VudEJ5UHJvY2VkdXJlTmFtZShwcm9jZWR1cmVOYW1lKTtcblxuICAgIGlmICghcHJvY2VkdXJlUHJlc2VudCkge1xuICAgICAgY29udGV4dC50cmFjZShgVGhlICcke3Byb2NlZHVyZU5hbWV9JyBwcm9jZWR1cmUgaXMgbm90IHByZXNlbnQuYCk7XG5cbiAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgfVxuXG4gICAgY29uc3QgbGFiZWxsZWRQcm9jZWR1cmVOYW1lID0gdGhpcy5nZXRMYWJlbGxlZFByb2NlZHVyZU5hbWUoKTtcblxuICAgIHByb2NlZHVyZU5hbWUgPSBsYWJlbGxlZFByb2NlZHVyZU5hbWU7ICAvLy9cblxuICAgIGNvbnN0IGFsaWFzZWQgPSB0aGlzLmlzQWxsb3dlZCgpO1xuXG4gICAgaWYgKGFsaWFzZWQpIHtcbiAgICAgIHByb2NlZHVyZVByZXNlbnQgPSBjb250ZXh0LmlzUHJvY2VkdXJlUHJlc2VudEJ5UHJvY2VkdXJlTmFtZShwcm9jZWR1cmVOYW1lKTtcblxuICAgICAgaWYgKHByb2NlZHVyZVByZXNlbnQpIHtcbiAgICAgICAgY29udGV4dC50cmFjZShgVGhlICcke3Byb2NlZHVyZU5hbWV9JyBwcm9jZWR1cmUgaXMgYWxyZWFkeSBwcmVzZW50LmApO1xuXG4gICAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgaW1wb3J0QmluZGluZ1ByZXNlbnQgPSBjb250ZXh0LmlzSW1wb3J0QmluZGluZ1ByZXNlbnRCeUxhYmVsbGVkUHJvY2VkdXJlTmFtZShsYWJlbGxlZFByb2NlZHVyZU5hbWUpO1xuXG4gICAgaWYgKGltcG9ydEJpbmRpbmdQcmVzZW50KSB7XG4gICAgICBjb25zdCBsYWJlbFN0cmluZyA9IHRoaXMubGFiZWwuZ2V0U3RyaW5nKCk7XG5cbiAgICAgIGNvbnRleHQudHJhY2UoYFRoZSAnJHtpbXBvcnRCaW5kaW5nU3RyaW5nfScgaW1wb3J0IGJpbmRpbmcncyAnJHtsYWJlbFN0cmluZ30nIGxhYmVsIGlzIGFscmVhZHkgcHJlc2VudC4uLmApO1xuXG4gICAgICByZXR1cm4gYmFjaygpO1xuICAgIH1cblxuICAgIHByb2NlZHVyZU5hbWUgPSByZWZlcmVuY2VkUHJvY2VkdXJlTmFtZTsgIC8vL1xuXG4gICAgY29uc3QgcHJvY2VkdXJlID0gY29udGV4dC5maW5kUHJvY2VkdXJlQnlQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpLFxuICAgICAgICAgIHJlbGVhc2VOYW1lQ29tcGFyZXMgPSBwcm9jZWR1cmUuY29tcGFyZVJlbGVhc2VOYW1lKHJlbGVhc2VOYW1lKTtcblxuICAgIGlmICghcmVsZWFzZU5hbWVDb21wYXJlcykge1xuICAgICAgY29udGV4dC50cmFjZShgVGhlICcke3Byb2NlZHVyZU5hbWV9JyBwcm9jZWR1cmUgaXMgbm90IGluIHRoZSAnJHtyZWxlYXNlTmFtZX0nIHBhY2thZ2UuYCk7XG5cbiAgICAgIHJldHVybiBiYWNrKCk7XG4gICAgfVxuXG4gICAgY29uc3QgZXhwb3J0ZWQgPSBwcm9jZWR1cmUuaXNFeHBvcnRlZCgpO1xuXG4gICAgaWYgKCFleHBvcnRlZCkge1xuICAgICAgY29udGV4dC50cmFjZShgVGhlICcke3Byb2NlZHVyZU5hbWV9JyBwcm9jZWR1cmUgaXMgbm90IGV4cG9ydGVkLmApO1xuXG4gICAgICByZXR1cm4gYmFjaygpO1xuICAgIH1cblxuICAgIGNvbnN0IGltcG9ydEJpbmRpbmcgPSB0aGlzO1xuXG4gICAgY29udGV4dC5hZGRJbXBvcnRCaW5kaW5nKGltcG9ydEJpbmRpbmcpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke2ltcG9ydEJpbmRpbmdTdHJpbmd9JyBpbXBvcnQgYmluZGluZy5gKTtcblxuICAgIHJldHVybiBmb3J3YXJkKGNvbnRleHQsIGJhY2spO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGxldCBqc29uO1xuXG4gICAgY29uc3Qgc3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBsYWJlbEpTT04gPSBsYWJlbFRvTGFiZWxKU09OKHRoaXMubGFiZWwpLFxuICAgICAgICAgIHJlZmVyZW5jZUpKU09OID0gcmVmZXJlbmNlVG9SZWZlcmVuY2VKU09OKHRoaXMucmVmZXJlbmNlKSxcbiAgICAgICAgICBsYWJlbCA9IGxhYmVsSlNPTiwgIC8vL1xuICAgICAgICAgIHJlZmVyZW5jZSA9IHJlZmVyZW5jZUpKU09OOyAgLy8vXG5cbiAgICBqc29uID0ge1xuICAgICAgc3RyaW5nLFxuICAgICAgbGFiZWwsXG4gICAgICByZWZlcmVuY2VcbiAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiSW1wb3J0QmluZGluZ1wiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgbGV0IGltcG9ydEJpbmRpbmc7XG5cbiAgICBpbnN0YW50aWF0ZSgoY29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgeyBzdHJpbmcgfSA9IGpzb24sXG4gICAgICAgICAgICBicmVha1BvaW50ID0gbnVsbCxcbiAgICAgICAgICAgIGltcG9ydEJpbmRpbmdOb2RlID0gaW5zdGFudGlhdGVJbXBvcnRCaW5kaW5nKHN0cmluZywgY29udGV4dCksXG4gICAgICAgICAgICBsYWJlbCA9IGxhYmVsRnJvbUpTT04oanNvbiwgY29udGV4dCksXG4gICAgICAgICAgICByZWZlcmVuY2UgPSByZWZlcmVuY2VGcm9tSlNPTihqc29uLCBjb250ZXh0KSxcbiAgICAgICAgICAgIG5vZGUgPSBpbXBvcnRCaW5kaW5nTm9kZTsgLy8vXG5cbiAgICAgIGltcG9ydEJpbmRpbmcgPSBuZXcgSW1wb3J0QmluZGluZyhjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIGxhYmVsLCByZWZlcmVuY2UpO1xuICAgIH0sIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGltcG9ydEJpbmRpbmc7XG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIkltcG9ydEJpbmRpbmciLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwibGFiZWwiLCJyZWZlcmVuY2UiLCJnZXRMYWJlbCIsImdldFJlZmVyZW5jZSIsImdldExhYmVsbGVkUHJvY2VkdXJlTmFtZSIsImxhYmVsTmFtZSIsImdldE5hbWUiLCJsYWJlbGxlZFByb2NlZHVyZU5hbWUiLCJnZXRSZWZlcmVuY2VkUHJvY2VkdXJlTmFtZSIsInJlZmVyZW5jZU5hbWUiLCJyZWZlcmVuY2VkUHJvY2VkdXJlTmFtZSIsImlzQWxsb3dlZCIsImFsaWFzZWQiLCJjb21wYXJlTGFibGxlZFByb2NlZHVyZU5hbWUiLCJsYWJlbGxlZFByb2NlZHVyZU5hbWVDb21wYXJlcyIsInZlcmlmeSIsInJlbGVhc2VOYW1lIiwiZm9yd2FyZCIsImJhY2siLCJpbXBvcnRCaW5kaW5nU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJwcm9jZWR1cmVOYW1lIiwicHJvY2VkdXJlUHJlc2VudCIsImlzUHJvY2VkdXJlUHJlc2VudEJ5UHJvY2VkdXJlTmFtZSIsImltcG9ydEJpbmRpbmdQcmVzZW50IiwiaXNJbXBvcnRCaW5kaW5nUHJlc2VudEJ5TGFiZWxsZWRQcm9jZWR1cmVOYW1lIiwibGFiZWxTdHJpbmciLCJwcm9jZWR1cmUiLCJmaW5kUHJvY2VkdXJlQnlQcm9jZWR1cmVOYW1lIiwicmVsZWFzZU5hbWVDb21wYXJlcyIsImNvbXBhcmVSZWxlYXNlTmFtZSIsImV4cG9ydGVkIiwiaXNFeHBvcnRlZCIsImltcG9ydEJpbmRpbmciLCJhZGRJbXBvcnRCaW5kaW5nIiwiZGVidWciLCJ0b0pTT04iLCJqc29uIiwibGFiZWxKU09OIiwibGFiZWxUb0xhYmVsSlNPTiIsInJlZmVyZW5jZUpKU09OIiwicmVmZXJlbmNlVG9SZWZlcmVuY2VKU09OIiwibmFtZSIsImZyb21KU09OIiwiaW5zdGFudGlhdGUiLCJpbXBvcnRCaW5kaW5nTm9kZSIsImluc3RhbnRpYXRlSW1wb3J0QmluZGluZyIsImxhYmVsRnJvbUpTT04iLCJyZWZlcmVuY2VGcm9tSlNPTiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBU0E7OztlQUFBOzs7Z0NBUHdCOzBCQUVEOzZCQUNrQjtzQkFDb0Q7eUJBQ25FO01BRTFCLFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsc0JBQXNCQyx1QkFBTztJQUN2RCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLEtBQUssRUFBRUMsU0FBUyxDQUFFO1FBQy9ELEtBQUssQ0FBQ0wsU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxLQUFLLEdBQUdBO1FBQ2IsSUFBSSxDQUFDQyxTQUFTLEdBQUdBO0lBQ25CO0lBRUFDLFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQ0YsS0FBSztJQUNuQjtJQUVBRyxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUNGLFNBQVM7SUFDdkI7SUFFQUcsMkJBQTJCO1FBQ3pCLE1BQU1DLFlBQVksSUFBSSxDQUFDTCxLQUFLLENBQUNNLE9BQU8sSUFDOUJDLHdCQUF3QkYsV0FBWSxHQUFHO1FBRTdDLE9BQU9FO0lBQ1Q7SUFFQUMsNkJBQTZCO1FBQzNCLE1BQU1DLGdCQUFnQixJQUFJLENBQUNSLFNBQVMsQ0FBQ0ssT0FBTyxJQUN0Q0ksMEJBQTBCRCxlQUFnQixHQUFHO1FBRW5ELE9BQU9DO0lBQ1Q7SUFFQUMsWUFBWTtRQUNWLE1BQU1KLHdCQUF3QixJQUFJLENBQUNILHdCQUF3QixJQUNyRE0sMEJBQTBCLElB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
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return _default;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _occamlanguages = require("occam-languages");
|
|
12
|
+
const _elements = require("../elements");
|
|
13
|
+
const _default = (0, _elements.define)(class ImportBindings extends _occamlanguages.Element {
|
|
14
|
+
static name = "ImportBindings";
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2ltcG9ydEJpbmRpbmdzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIEltcG9ydEJpbmRpbmdzIGV4dGVuZHMgRWxlbWVudCB7XG4gIHN0YXRpYyBuYW1lID0gXCJJbXBvcnRCaW5kaW5nc1wiO1xufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiSW1wb3J0QmluZGluZ3MiLCJFbGVtZW50IiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBTUE7OztlQUFBOzs7Z0NBSndCOzBCQUVEO01BRXZCLFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsdUJBQXVCQyx1QkFBTztJQUN4RCxPQUFPQyxPQUFPLGlCQUFpQjtBQUNqQyJ9
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return _default;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _occamlanguages = require("occam-languages");
|
|
12
|
+
const _elements = require("../elements");
|
|
13
|
+
const _context = require("../utilities/context");
|
|
14
|
+
const _instantiate = require("../process/instantiate");
|
|
15
|
+
const _json = require("../utilities/json");
|
|
16
|
+
const { every } = _occamlanguages.continuationUtilities, { unbreakable } = _occamlanguages.breakPointUtilities;
|
|
17
|
+
const _default = (0, _elements.define)(class ImportStatement extends _occamlanguages.Element {
|
|
18
|
+
constructor(context, string, node, breakPoint, releaseName, importBindings){
|
|
19
|
+
super(context, string, node, breakPoint);
|
|
20
|
+
this.releaseName = releaseName;
|
|
21
|
+
this.importBindings = importBindings;
|
|
22
|
+
}
|
|
23
|
+
getReleaseName() {
|
|
24
|
+
return this.releaseName;
|
|
25
|
+
}
|
|
26
|
+
getImportBindings() {
|
|
27
|
+
return this.importBindings;
|
|
28
|
+
}
|
|
29
|
+
toJSON() {
|
|
30
|
+
let json;
|
|
31
|
+
const string = this.getString(), releaseNameJSON = (0, _json.releaseNameToReleaseNameJSON)(this.releaseName), importBindingsJSON = (0, _json.importBindingsToImportBindingsJSON)(this.importBindings), releaseName = releaseNameJSON, importBindings = importBindingsJSON; ///
|
|
32
|
+
json = {
|
|
33
|
+
string,
|
|
34
|
+
releaseName,
|
|
35
|
+
importBindings
|
|
36
|
+
};
|
|
37
|
+
return json;
|
|
38
|
+
}
|
|
39
|
+
verify = unbreakable(function(context, forward, back) {
|
|
40
|
+
const importStatementString = this.getString(); ///
|
|
41
|
+
context.trace(`Verifying the '${importStatementString}' import statement...`);
|
|
42
|
+
return every(this.importBindings, (importBinding, context, forward, back)=>{
|
|
43
|
+
return importBinding.verify(this.releaseName, context, forward, back);
|
|
44
|
+
}, context, (context, back)=>{
|
|
45
|
+
context.debug(`...verified the '${importStatementString}' import statement.`);
|
|
46
|
+
return forward(context, back);
|
|
47
|
+
}, (exception)=>{
|
|
48
|
+
if (exception) {
|
|
49
|
+
return back(exception);
|
|
50
|
+
}
|
|
51
|
+
context.trace(`Unable to verify the '${importStatementString}' import statement.`);
|
|
52
|
+
return back();
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
static name = "ImportStatement";
|
|
56
|
+
static fromJSON(json, context) {
|
|
57
|
+
let importStatement;
|
|
58
|
+
(0, _context.instantiate)((context)=>{
|
|
59
|
+
const { string } = json, importStatementNode = (0, _instantiate.instantiateImportStatement)(string, context), node = importStatementNode, breakPoint = null, releaseName = (0, _json.releaseNameFromJSON)(json, context), importBindings = (0, _json.importBindingsFromJSON)(json, context);
|
|
60
|
+
context = null;
|
|
61
|
+
importStatement = new ImportStatement(context, string, node, breakPoint, releaseName, importBindings);
|
|
62
|
+
}, context);
|
|
63
|
+
return importStatement;
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2ltcG9ydFN0YXRlbWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCwgYnJlYWtQb2ludFV0aWxpdGllcywgY29udGludWF0aW9uVXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jb250ZXh0XCI7XG5pbXBvcnQgeyBpbnN0YW50aWF0ZUltcG9ydFN0YXRlbWVudCB9IGZyb20gXCIuLi9wcm9jZXNzL2luc3RhbnRpYXRlXCI7XG5pbXBvcnQgeyByZWxlYXNlTmFtZUZyb21KU09OLCBpbXBvcnRCaW5kaW5nc0Zyb21KU09OLCByZWxlYXNlTmFtZVRvUmVsZWFzZU5hbWVKU09OLCBpbXBvcnRCaW5kaW5nc1RvSW1wb3J0QmluZGluZ3NKU09OIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9qc29uXCI7XG5cbmNvbnN0IHsgZXZlcnkgfSA9IGNvbnRpbnVhdGlvblV0aWxpdGllcyxcbiAgICAgIHsgdW5icmVha2FibGUgfSA9IGJyZWFrUG9pbnRVdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBJbXBvcnRTdGF0ZW1lbnQgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCByZWxlYXNlTmFtZSwgaW1wb3J0QmluZGluZ3MpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy5yZWxlYXNlTmFtZSA9IHJlbGVhc2VOYW1lO1xuICAgIHRoaXMuaW1wb3J0QmluZGluZ3MgPSBpbXBvcnRCaW5kaW5ncztcbiAgfVxuXG4gIGdldFJlbGVhc2VOYW1lKCkge1xuICAgIHJldHVybiB0aGlzLnJlbGVhc2VOYW1lO1xuICB9XG5cbiAgZ2V0SW1wb3J0QmluZGluZ3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuaW1wb3J0QmluZGluZ3M7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgbGV0IGpzb247XG5cbiAgICBjb25zdCBzdHJpbmcgPSB0aGlzLmdldFN0cmluZygpLFxuICAgICAgICAgIHJlbGVhc2VOYW1lSlNPTiA9IHJlbGVhc2VOYW1lVG9SZWxlYXNlTmFtZUpTT04odGhpcy5yZWxlYXNlTmFtZSksXG4gICAgICAgICAgaW1wb3J0QmluZGluZ3NKU09OID0gaW1wb3J0QmluZGluZ3NUb0ltcG9ydEJpbmRpbmdzSlNPTih0aGlzLmltcG9ydEJpbmRpbmdzKSxcbiAgICAgICAgICByZWxlYXNlTmFtZSA9IHJlbGVhc2VOYW1lSlNPTiwgIC8vL1xuICAgICAgICAgIGltcG9ydEJpbmRpbmdzID0gaW1wb3J0QmluZGluZ3NKU09OOyAgLy8vXG5cbiAgICBqc29uID0ge1xuICAgICAgc3RyaW5nLFxuICAgICAgcmVsZWFzZU5hbWUsXG4gICAgICBpbXBvcnRCaW5kaW5nc1xuICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHZlcmlmeSA9IHVuYnJlYWthYmxlKGZ1bmN0aW9uIChjb250ZXh0LCBmb3J3YXJkLCBiYWNrKSB7XG4gICAgY29uc3QgaW1wb3J0U3RhdGVtZW50U3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke2ltcG9ydFN0YXRlbWVudFN0cmluZ30nIGltcG9ydCBzdGF0ZW1lbnQuLi5gKTtcblxuICAgIHJldHVybiBldmVyeSh0aGlzLmltcG9ydEJpbmRpbmdzLCAoaW1wb3J0QmluZGluZywgY29udGV4dCwgZm9yd2FyZCwgYmFjaykgPT4ge1xuICAgICAgcmV0dXJuIGltcG9ydEJpbmRpbmcudmVyaWZ5KHRoaXMucmVsZWFzZU5hbWUsIGNvbnRleHQsIGZvcndhcmQsIGJhY2spO1xuICAgIH0sIGNvbnRleHQsIChjb250ZXh0LCBiYWNrKSA9PiB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52ZXJpZmllZCB0aGUgJyR7aW1wb3J0U3RhdGVtZW50U3RyaW5nfScgaW1wb3J0IHN0YXRlbWVudC5gKTtcblxuICAgICAgcmV0dXJuIGZvcndhcmQoY29udGV4dCwgYmFjayk7XG4gICAgfSwgKGV4Y2VwdGlvbikgPT4ge1xuICAgICAgaWYgKGV4Y2VwdGlvbikge1xuICAgICAgICByZXR1cm4gYmFjayhleGNlcHRpb24pO1xuICAgICAgfVxuXG4gICAgICBjb250ZXh0LnRyYWNlKGBVbmFibGUgdG8gdmVyaWZ5IHRoZSAnJHtpbXBvcnRTdGF0ZW1lbnRTdHJpbmd9JyBpbXBvcnQgc3RhdGVtZW50LmApO1xuXG4gICAgICByZXR1cm4gYmFjaygpO1xuICAgIH0pO1xuICB9KTtcblxuICBzdGF0aWMgbmFtZSA9IFwiSW1wb3J0U3RhdGVtZW50XCI7XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICBsZXQgaW1wb3J0U3RhdGVtZW50O1xuXG4gICAgaW5zdGFudGlhdGUoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IHsgc3RyaW5nIH0gPSBqc29uLFxuICAgICAgICAgICAgaW1wb3J0U3RhdGVtZW50Tm9kZSA9IGluc3RhbnRpYXRlSW1wb3J0U3RhdGVtZW50KHN0cmluZywgY29udGV4dCksXG4gICAgICAgICAgICBub2RlID0gaW1wb3J0U3RhdGVtZW50Tm9kZSwgIC8vL1xuICAgICAgICAgICAgYnJlYWtQb2ludCA9IG51bGwsXG4gICAgICAgICAgICByZWxlYXNlTmFtZSA9IHJlbGVhc2VOYW1lRnJvbUpTT04oanNvbiwgY29udGV4dCksXG4gICAgICAgICAgICBpbXBvcnRCaW5kaW5ncyA9IGltcG9ydEJpbmRpbmdzRnJvbUpTT04oanNvbiwgY29udGV4dCk7XG5cbiAgICAgIGNvbnRleHQgPSBudWxsO1xuXG4gICAgICBpbXBvcnRTdGF0ZW1lbnQgPSBuZXcgSW1wb3J0U3RhdGVtZW50KGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgcmVsZWFzZU5hbWUsIGltcG9ydEJpbmRpbmdzKTtcbiAgICB9LCBjb250ZXh0KTtcblxuICAgIHJldHVybiBpbXBvcnRTdGF0ZW1lbnQ7XG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbImV2ZXJ5IiwiY29udGludWF0aW9uVXRpbGl0aWVzIiwidW5icmVha2FibGUiLCJicmVha1BvaW50VXRpbGl0aWVzIiwiZGVmaW5lIiwiSW1wb3J0U3RhdGVtZW50IiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInJlbGVhc2VOYW1lIiwiaW1wb3J0QmluZGluZ3MiLCJnZXRSZWxlYXNlTmFtZSIsImdldEltcG9ydEJpbmRpbmdzIiwidG9KU09OIiwianNvbiIsImdldFN0cmluZyIsInJlbGVhc2VOYW1lSlNPTiIsInJlbGVhc2VOYW1lVG9SZWxlYXNlTmFtZUpTT04iLCJpbXBvcnRCaW5kaW5nc0pTT04iLCJpbXBvcnRCaW5kaW5nc1RvSW1wb3J0QmluZGluZ3NKU09OIiwidmVyaWZ5IiwiZm9yd2FyZCIsImJhY2siLCJpbXBvcnRTdGF0ZW1lbnRTdHJpbmciLCJ0cmFjZSIsImltcG9ydEJpbmRpbmciLCJkZWJ1ZyIsImV4Y2VwdGlvbiIsIm5hbWUiLCJmcm9tSlNPTiIsImltcG9ydFN0YXRlbWVudCIsImluc3RhbnRpYXRlIiwiaW1wb3J0U3RhdGVtZW50Tm9kZSIsImluc3RhbnRpYXRlSW1wb3J0U3RhdGVtZW50IiwicmVsZWFzZU5hbWVGcm9tSlNPTiIsImltcG9ydEJpbmRpbmdzRnJvbUpTT04iXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVlBOzs7ZUFBQTs7O2dDQVZvRTswQkFFN0M7eUJBQ0s7NkJBQ2U7c0JBQ21GO0FBRTlILE1BQU0sRUFBRUEsS0FBSyxFQUFFLEdBQUdDLHFDQUFxQixFQUNqQyxFQUFFQyxXQUFXLEVBQUUsR0FBR0Ms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
|
package/lib/element/label.js
CHANGED
|
@@ -26,21 +26,23 @@ const _default = (0, _elements.define)(class Label extends _occamlanguages.Eleme
|
|
|
26
26
|
return procedureNameCompares;
|
|
27
27
|
}
|
|
28
28
|
toJSON() {
|
|
29
|
+
let json;
|
|
29
30
|
const string = this.getString();
|
|
30
|
-
|
|
31
|
+
json = {
|
|
31
32
|
string
|
|
32
33
|
};
|
|
33
34
|
return json;
|
|
34
35
|
}
|
|
35
36
|
static name = "Label";
|
|
36
37
|
static fromJSON(json, context) {
|
|
37
|
-
|
|
38
|
+
let label;
|
|
39
|
+
(0, _context.instantiate)((context)=>{
|
|
38
40
|
const { string } = json, labelNode = (0, _instantiate.instantiateLabel)(string, context), node = labelNode, breakPoint = null, name = (0, _element.nameFromLabelNode)(labelNode, context);
|
|
39
41
|
context = null;
|
|
40
|
-
|
|
41
|
-
return label;
|
|
42
|
+
label = new Label(context, string, node, breakPoint, name);
|
|
42
43
|
}, context);
|
|
44
|
+
return label;
|
|
43
45
|
}
|
|
44
46
|
});
|
|
45
47
|
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2xhYmVsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jb250ZXh0XCI7XG5pbXBvcnQgeyBpbnN0YW50aWF0ZUxhYmVsIH0gZnJvbSBcIi4uL3Byb2Nlc3MvaW5zdGFudGlhdGVcIjtcbmltcG9ydCB7IG5hbWVGcm9tTGFiZWxOb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9lbGVtZW50XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBMYWJlbCBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIG5hbWUpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgfVxuXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIGNvbXBhcmVQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpIHtcbiAgICBjb25zdCBwcm9jZWR1cmVOYW1lQ29tcGFyZXMgPSAodGhpcy5uYW1lID09PSBwcm9jZWR1cmVOYW1lKTtcblxuICAgIHJldHVybiBwcm9jZWR1cmVOYW1lQ29tcGFyZXM7XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgbGV0IGpzb247XG5cbiAgICBjb25zdCBzdHJpbmcgPSB0aGlzLmdldFN0cmluZygpO1xuXG4gICAganNvbiA9IHtcbiAgICAgIHN0cmluZ1xuICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJMYWJlbFwiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgbGV0IGxhYmVsO1xuXG4gICAgaW5zdGFudGlhdGUoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IHsgc3RyaW5nIH0gPSBqc29uLFxuICAgICAgICAgICAgbGFiZWxOb2RlID0gaW5zdGFudGlhdGVMYWJlbChzdHJpbmcsIGNvbnRleHQpLFxuICAgICAgICAgICAgbm9kZSA9IGxhYmVsTm9kZSwgIC8vL1xuICAgICAgICAgICAgYnJlYWtQb2ludCA9IG51bGwsXG4gICAgICAgICAgICBuYW1lID0gbmFtZUZyb21MYWJlbE5vZGUobGFiZWxOb2RlLCBjb250ZXh0KTtcblxuICAgICAgY29udGV4dCA9IG51bGw7XG5cbiAgICAgIGxhYmVsID0gbmV3IExhYmVsKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgbmFtZSk7XG4gICAgfSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gbGFiZWw7XG4gIH1cbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIkxhYmVsIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsIm5hbWUiLCJnZXROYW1lIiwiY29tcGFyZVByb2NlZHVyZU5hbWUiLCJwcm9jZWR1cmVOYW1lIiwicHJvY2VkdXJlTmFtZUNvbXBhcmVzIiwidG9KU09OIiwianNvbiIsImdldFN0cmluZyIsImZyb21KU09OIiwibGFiZWwiLCJpbnN0YW50aWF0ZSIsImxhYmVsTm9kZSIsImluc3RhbnRpYXRlTGFiZWwiLCJuYW1lRnJvbUxhYmVsTm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBU0E7OztlQUFBOzs7Z0NBUHdCOzBCQUVEO3lCQUNLOzZCQUNLO3lCQUNDO01BRWxDLFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsY0FBY0MsdUJBQU87SUFDL0MsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxJQUFJLENBQUU7UUFDbkQsS0FBSyxDQUFDSixTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLElBQUksR0FBR0E7SUFDZDtJQUVBQyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUNELElBQUk7SUFDbEI7SUFFQUUscUJBQXFCQyxhQUFhLEVBQUU7UUFDbEMsTUFBTUMsd0JBQXlCLElBQUksQ0FBQ0osSUFBSSxLQUFLRztRQUU3QyxPQUFPQztJQUNUO0lBRUFDLFNBQVM7UUFDUCxJQUFJQztRQUVKLE1BQU1ULFNBQVMsSUFBSSxDQUFDVSxTQUFTO1FBRTdCRCxPQUFPO1lBQ0xUO1FBQ0Y7UUFFQSxPQUFPUztJQUNUO0lBRUEsT0FBT04sT0FBTyxRQUFRO0lBRXRCLE9BQU9RLFNBQVNGLElBQUksRUFBRVYsT0FBTyxFQUFFO1FBQzdCLElBQUlhO1FBRUpDLElBQUFBLG9CQUFXLEVBQUMsQ0FBQ2Q7WUFDWCxNQUFNLEVBQUVDLE1BQU0sRUFBRSxHQUFHUyxNQUNiSyxZQUFZQyxJQUFBQSw2QkFBZ0IsRUFBQ2YsUUFBUUQsVUFDckNFLE9BQU9hLFdBQ1BaLGFBQWEsTUFDYkMsT0FBT2EsSUFBQUEsMEJBQWlCLEVBQUNGLFdBQVdmO1lBRTFDQSxVQUFVO1lBRVZhLFFBQVEsSUFBSWYsTUFBTUUsU0FBU0MsUUFBUUMsTUFBTUMsWUFBWUM7UUFDdkQsR0FBR0o7UUFFSCxPQUFPYTtJQUNUO0FBQ0YifQ==
|
|
@@ -59,21 +59,23 @@ const _default = (0, _elements.define)(class Parameters extends _occamlanguages.
|
|
|
59
59
|
}, back);
|
|
60
60
|
}
|
|
61
61
|
toJSON() {
|
|
62
|
+
let json;
|
|
62
63
|
const string = this.getString();
|
|
63
|
-
|
|
64
|
+
json = {
|
|
64
65
|
string
|
|
65
66
|
};
|
|
66
67
|
return json;
|
|
67
68
|
}
|
|
68
69
|
static name = "Parameters";
|
|
69
70
|
static fromJSON(json, context) {
|
|
70
|
-
|
|
71
|
+
let parameters;
|
|
72
|
+
(0, _context.instantiate)((context)=>{
|
|
71
73
|
const { string } = json, parametersNode = (0, _instantiate.instantiateParameters)(string, context), node = parametersNode, breakPoint = null, parametersArray = (0, _element.parametersArrayFromParametersNode)(parametersNode, context), array = parametersArray; ///
|
|
72
74
|
context = null;
|
|
73
|
-
|
|
74
|
-
return parameters;
|
|
75
|
+
parameters = new Parameters(context, string, node, breakPoint, array);
|
|
75
76
|
}, context);
|
|
77
|
+
return parameters;
|
|
76
78
|
}
|
|
77
79
|
});
|
|
78
80
|
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3BhcmFtZXRlcnMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQsIGNvbnRpbnVhdGlvblV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgaW5zdGFudGlhdGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlUGFyYW1ldGVycyB9IGZyb20gXCIuLi9wcm9jZXNzL2luc3RhbnRpYXRlXCI7XG5pbXBvcnQgeyBwYXJhbWV0ZXJzQXJyYXlGcm9tUGFyYW1ldGVyc05vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2VsZW1lbnRcIjtcblxuY29uc3QgeyBmb3JFYWNoIH0gPSBjb250aW51YXRpb25VdGlsaXRpZXNcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFBhcmFtZXRlcnMgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBhcnJheSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLmFycmF5ID0gYXJyYXk7XG4gIH1cblxuICBnZXRBcnJheSgpIHtcbiAgICByZXR1cm4gdGhpcy5hcnJheTtcbiAgfVxuXG4gIGdldExlbmd0aCgpIHtcbiAgICBjb25zdCBsZW5ndGggPSB0aGlzLmFycmF5Lmxlbmd0aDtcblxuICAgIHJldHVybiBsZW5ndGg7XG4gIH1cblxuICBnZXRQYXJhbWV0ZXIoaW5kZXgpIHtcbiAgICBjb25zdCBwYXJhbWV0ZXIgPSB0aGlzLmFycmF5W2luZGV4XSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIHBhcmFtZXRlcjtcbiAgfVxuXG4gIGZvckVhY2hQYXJhbWV0ZXIoY2FsbGJhY2ssIGZvcndhcmQsIGJhY2spIHtcbiAgICByZXR1cm4gZm9yRWFjaCh0aGlzLmFycmF5LCBjYWxsYmFjaywgZm9yd2FyZCwgYmFjayk7XG4gIH1cblxuICBjb21wYXJlVmFsdWVzKHZhbHVlcywgY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IHZhbHVlc1N0cmluZyA9IHZhbHVlcy5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBwYXJhbWV0ZXJzU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBDb21wYXJpbmcgdGhlICcke3ZhbHVlc1N0cmluZ30nIHZhbHVlcyBhZ2FpbnN0IHRoZSAnJHtwYXJhbWV0ZXJzU3RyaW5nfScgcGFyYW1ldGVycy4uLmApO1xuXG4gICAgY29uc3QgdmFsdWVzTGVuZ3RoID0gdmFsdWVzLmdldExlbmd0aCgpLFxuICAgICAgICAgIHBhcmFtZXRlcnNMZW5ndGggPSB0aGlzLmdldExlbmd0aCgpO1xuXG4gICAgaWYgKHZhbHVlc0xlbmd0aCAhPT0gcGFyYW1ldGVyc0xlbmd0aCkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBUaGUgJyR7dmFsdWVzU3RyaW5nfScgZXhwcmVzc2lvbnMgYW5kICcke3BhcmFtZXRlcnNTdHJpbmd9JyBwYXJhbWV0ZXJzIGFyZSBub3Qgb2YgdGhlIHNhbWUgbGVuZ3RoLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZm9yRWFjaFBhcmFtZXRlcigocGFyYW1ldGVyLCBmb3J3YXJkLCBiYWNrLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKHBhcmFtZXRlciA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gZm9yd2FyZChiYWNrKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdmFsdWUgPSB2YWx1ZXMuZ2V0VmFsdWUoaW5kZXgpO1xuXG4gICAgICByZXR1cm4gcGFyYW1ldGVyLmNvbXBhcmVWYWx1ZSh2YWx1ZSwgY29udGV4dCwgZm9yd2FyZCwgYmFjayk7XG4gICAgfSwgKGJhY2spID0+
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3BhcmFtZXRlcnMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQsIGNvbnRpbnVhdGlvblV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgaW5zdGFudGlhdGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlUGFyYW1ldGVycyB9IGZyb20gXCIuLi9wcm9jZXNzL2luc3RhbnRpYXRlXCI7XG5pbXBvcnQgeyBwYXJhbWV0ZXJzQXJyYXlGcm9tUGFyYW1ldGVyc05vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2VsZW1lbnRcIjtcblxuY29uc3QgeyBmb3JFYWNoIH0gPSBjb250aW51YXRpb25VdGlsaXRpZXNcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFBhcmFtZXRlcnMgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBhcnJheSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLmFycmF5ID0gYXJyYXk7XG4gIH1cblxuICBnZXRBcnJheSgpIHtcbiAgICByZXR1cm4gdGhpcy5hcnJheTtcbiAgfVxuXG4gIGdldExlbmd0aCgpIHtcbiAgICBjb25zdCBsZW5ndGggPSB0aGlzLmFycmF5Lmxlbmd0aDtcblxuICAgIHJldHVybiBsZW5ndGg7XG4gIH1cblxuICBnZXRQYXJhbWV0ZXIoaW5kZXgpIHtcbiAgICBjb25zdCBwYXJhbWV0ZXIgPSB0aGlzLmFycmF5W2luZGV4XSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIHBhcmFtZXRlcjtcbiAgfVxuXG4gIGZvckVhY2hQYXJhbWV0ZXIoY2FsbGJhY2ssIGZvcndhcmQsIGJhY2spIHtcbiAgICByZXR1cm4gZm9yRWFjaCh0aGlzLmFycmF5LCBjYWxsYmFjaywgZm9yd2FyZCwgYmFjayk7XG4gIH1cblxuICBjb21wYXJlVmFsdWVzKHZhbHVlcywgY29udGV4dCwgZm9yd2FyZCwgYmFjaykge1xuICAgIGNvbnN0IHZhbHVlc1N0cmluZyA9IHZhbHVlcy5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBwYXJhbWV0ZXJzU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBDb21wYXJpbmcgdGhlICcke3ZhbHVlc1N0cmluZ30nIHZhbHVlcyBhZ2FpbnN0IHRoZSAnJHtwYXJhbWV0ZXJzU3RyaW5nfScgcGFyYW1ldGVycy4uLmApO1xuXG4gICAgY29uc3QgdmFsdWVzTGVuZ3RoID0gdmFsdWVzLmdldExlbmd0aCgpLFxuICAgICAgICAgIHBhcmFtZXRlcnNMZW5ndGggPSB0aGlzLmdldExlbmd0aCgpO1xuXG4gICAgaWYgKHZhbHVlc0xlbmd0aCAhPT0gcGFyYW1ldGVyc0xlbmd0aCkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBUaGUgJyR7dmFsdWVzU3RyaW5nfScgZXhwcmVzc2lvbnMgYW5kICcke3BhcmFtZXRlcnNTdHJpbmd9JyBwYXJhbWV0ZXJzIGFyZSBub3Qgb2YgdGhlIHNhbWUgbGVuZ3RoLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHJldHVybiBiYWNrKGV4Y2VwdGlvbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZm9yRWFjaFBhcmFtZXRlcigocGFyYW1ldGVyLCBmb3J3YXJkLCBiYWNrLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKHBhcmFtZXRlciA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gZm9yd2FyZChiYWNrKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdmFsdWUgPSB2YWx1ZXMuZ2V0VmFsdWUoaW5kZXgpO1xuXG4gICAgICByZXR1cm4gcGFyYW1ldGVyLmNvbXBhcmVWYWx1ZSh2YWx1ZSwgY29udGV4dCwgZm9yd2FyZCwgYmFjayk7XG4gICAgfSwgKGJhY2spID0+IHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLmNvbXBhcmVkIHRoZSAnJHt2YWx1ZXNTdHJpbmd9JyB2YWx1ZXMgYWdhaW5zdCB0aGUgJyR7cGFyYW1ldGVyc1N0cmluZ30nIHBhcmFtZXRlcnMuYCk7XG5cbiAgICAgIHJldHVybiBmb3J3YXJkKGJhY2spO1xuICAgIH0sIGJhY2spO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGxldCBqc29uO1xuXG4gICAgY29uc3Qgc3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTtcblxuICAgIGpzb24gPSB7XG4gICAgICBzdHJpbmdcbiAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiUGFyYW1ldGVyc1wiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgbGV0IHBhcmFtZXRlcnM7XG5cbiAgICBpbnN0YW50aWF0ZSgoY29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgeyBzdHJpbmcgfSA9IGpzb24sXG4gICAgICAgICAgICBwYXJhbWV0ZXJzTm9kZSA9IGluc3RhbnRpYXRlUGFyYW1ldGVycyhzdHJpbmcsIGNvbnRleHQpLFxuICAgICAgICAgICAgbm9kZSA9IHBhcmFtZXRlcnNOb2RlLCAgLy8vXG4gICAgICAgICAgICBicmVha1BvaW50ID0gbnVsbCxcbiAgICAgICAgICAgIHBhcmFtZXRlcnNBcnJheSA9IHBhcmFtZXRlcnNBcnJheUZyb21QYXJhbWV0ZXJzTm9kZShwYXJhbWV0ZXJzTm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICBhcnJheSA9IHBhcmFtZXRlcnNBcnJheTsgLy8vXG5cbiAgICAgIGNvbnRleHQgPSBudWxsO1xuXG4gICAgICBwYXJhbWV0ZXJzID0gbmV3IFBhcmFtZXRlcnMoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBhcnJheSk7XG4gICAgfSwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gcGFyYW1ldGVycztcbiAgfVxufSk7XG4iXSwibmFtZXMiOlsiZm9yRWFjaCIsImNvbnRpbnVhdGlvblV0aWxpdGllcyIsImRlZmluZSIsIlBhcmFtZXRlcnMiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwiYXJyYXkiLCJnZXRBcnJheSIsImdldExlbmd0aCIsImxlbmd0aCIsImdldFBhcmFtZXRlciIsImluZGV4IiwicGFyYW1ldGVyIiwiZm9yRWFjaFBhcmFtZXRlciIsImNhbGxiYWNrIiwiZm9yd2FyZCIsImJhY2siLCJjb21wYXJlVmFsdWVzIiwidmFsdWVzIiwidmFsdWVzU3RyaW5nIiwiZ2V0U3RyaW5nIiwicGFyYW1ldGVyc1N0cmluZyIsInRyYWNlIiwidmFsdWVzTGVuZ3RoIiwicGFyYW1ldGVyc0xlbmd0aCIsIm1lc3NhZ2UiLCJleGNlcHRpb24iLCJFeGNlcHRpb24iLCJmcm9tTWVzc2FnZSIsInZhbHVlIiwiZ2V0VmFsdWUiLCJjb21wYXJlVmFsdWUiLCJkZWJ1ZyIsInRvSlNPTiIsImpzb24iLCJuYW1lIiwiZnJvbUpTT04iLCJwYXJhbWV0ZXJzIiwiaW5zdGFudGlhdGUiLCJwYXJhbWV0ZXJzTm9kZSIsImluc3RhbnRpYXRlUGFyYW1ldGVycyIsInBhcmFtZXRlcnNBcnJheSIsInBhcmFtZXRlcnNBcnJheUZyb21QYXJhbWV0ZXJzTm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBYUE7OztlQUFBOzs7Z0NBWCtDO2tFQUV6QjswQkFFQzt5QkFDSzs2QkFDVTt5QkFDWTs7Ozs7O0FBRWxELE1BQU0sRUFBRUEsT0FBTyxFQUFFLEdBQUdDLHFDQUFxQjtNQUV6QyxXQUFlQyxJQUFBQSxnQkFBTSxFQUFDLE1B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
|