occam-furtle 3.0.241 → 3.0.243

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.
Files changed (97) hide show
  1. package/lib/element/assignment/array.js +19 -19
  2. package/lib/element/assignment/object.js +32 -32
  3. package/lib/element/binding/named.js +68 -0
  4. package/lib/element/binding.js +44 -0
  5. package/lib/element/bindings/named.js +84 -0
  6. package/lib/element/bindings.js +57 -0
  7. package/lib/element/every.js +20 -20
  8. package/lib/element/expression.js +13 -13
  9. package/lib/element/nodeQuery.js +12 -12
  10. package/lib/element/nodesQuery.js +12 -12
  11. package/lib/element/parameter.js +8 -8
  12. package/lib/element/parameters.js +10 -10
  13. package/lib/element/procedure.js +11 -11
  14. package/lib/element/procedureCall.js +8 -8
  15. package/lib/element/reduce.js +18 -18
  16. package/lib/element/returnBlock.js +4 -4
  17. package/lib/element/statement/return.js +9 -9
  18. package/lib/element/value.js +82 -0
  19. package/lib/element/values.js +59 -0
  20. package/lib/element/variable.js +14 -14
  21. package/lib/node/assignment/array.js +3 -3
  22. package/lib/node/assignment/object.js +4 -4
  23. package/lib/node/assignment.js +3 -3
  24. package/lib/node/assignments.js +3 -3
  25. package/lib/node/binding/named.js +36 -0
  26. package/lib/node/binding.js +47 -0
  27. package/lib/node/bindings/named.js +28 -0
  28. package/lib/node/bindings.js +31 -0
  29. package/lib/node/parameter.js +5 -13
  30. package/lib/node/parameters.js +5 -13
  31. package/lib/node/procedureCall.js +4 -4
  32. package/lib/node/statement/return.js +4 -4
  33. package/lib/node/terms.js +4 -4
  34. package/lib/node/value.js +27 -0
  35. package/lib/node/values.js +23 -0
  36. package/lib/nodeProperties.js +13 -13
  37. package/lib/nodeProperty.js +10 -10
  38. package/lib/nonTerminalNodeMap.js +14 -6
  39. package/lib/preamble.js +8 -4
  40. package/lib/ruleNames.js +23 -7
  41. package/lib/utilities/element.js +180 -89
  42. package/lib/utilities/nominal.js +21 -1
  43. package/lib/utilities/string.js +25 -1
  44. package/lib/utilities/value.js +70 -0
  45. package/lib/utilities/values.js +31 -0
  46. package/package.json +6 -6
  47. package/src/element/assignment/array.js +20 -20
  48. package/src/element/assignment/object.js +37 -37
  49. package/src/element/{parameter → binding}/named.js +19 -19
  50. package/src/element/binding.js +44 -0
  51. package/src/element/bindings/named.js +100 -0
  52. package/src/element/bindings.js +62 -0
  53. package/src/element/every.js +20 -20
  54. package/src/element/expression.js +12 -12
  55. package/src/element/nodeQuery.js +14 -14
  56. package/src/element/nodesQuery.js +14 -14
  57. package/src/element/parameter.js +7 -7
  58. package/src/element/parameters.js +9 -9
  59. package/src/element/procedure.js +9 -9
  60. package/src/element/procedureCall.js +9 -9
  61. package/src/element/reduce.js +18 -18
  62. package/src/element/returnBlock.js +4 -4
  63. package/src/element/statement/return.js +8 -8
  64. package/src/element/value.js +102 -0
  65. package/src/element/values.js +76 -0
  66. package/src/element/variable.js +16 -16
  67. package/src/node/assignment/array.js +3 -3
  68. package/src/node/assignment/object.js +5 -5
  69. package/src/node/assignment.js +1 -1
  70. package/src/node/assignments.js +1 -1
  71. package/src/node/{parameter → binding}/named.js +3 -3
  72. package/src/node/binding.js +58 -0
  73. package/src/node/bindings/named.js +16 -0
  74. package/src/node/bindings.js +32 -0
  75. package/src/node/parameter.js +2 -18
  76. package/src/node/parameters.js +2 -18
  77. package/src/node/procedureCall.js +5 -5
  78. package/src/node/statement/return.js +5 -5
  79. package/src/node/terms.js +2 -2
  80. package/src/node/value.js +23 -0
  81. package/src/node/values.js +16 -0
  82. package/src/nodeProperties.js +13 -13
  83. package/src/nodeProperty.js +10 -10
  84. package/src/nonTerminalNodeMap.js +19 -7
  85. package/src/preamble.js +7 -3
  86. package/src/ruleNames.js +6 -2
  87. package/src/utilities/element.js +241 -122
  88. package/src/utilities/nominal.js +23 -0
  89. package/src/utilities/string.js +30 -2
  90. package/src/utilities/value.js +81 -0
  91. package/src/utilities/values.js +30 -0
  92. package/lib/element/parameter/named.js +0 -68
  93. package/lib/element/parameters/named.js +0 -84
  94. package/lib/node/parameter/named.js +0 -36
  95. package/lib/node/parameters/named.js +0 -28
  96. package/src/element/parameters/named.js +0 -100
  97. package/src/node/parameters/named.js +0 -16
@@ -61,16 +61,16 @@ function _interop_require_wildcard(obj, nodeInterop) {
61
61
  return newObj;
62
62
  }
63
63
  const _default = (0, _elements.define)(class ArrayAssigment extends _occamlanguages.Element {
64
- constructor(context, string, node, breakPoint, variable, parameters){
64
+ constructor(context, string, node, breakPoint, variable, bindings){
65
65
  super(context, string, node, breakPoint);
66
66
  this.variable = variable;
67
- this.parameters = parameters;
67
+ this.bindings = bindings;
68
68
  }
69
69
  getVariable() {
70
70
  return this.variable;
71
71
  }
72
- getParameters() {
73
- return this.parameters;
72
+ getBindings() {
73
+ return this.bindings;
74
74
  }
75
75
  evaluate(context) {
76
76
  const arrayAssignmentString = this.getString(); ///
@@ -80,32 +80,32 @@ const _default = (0, _elements.define)(class ArrayAssigment extends _occamlangua
80
80
  const termString = term.getString(), message = `The '${termString}' term's '${termType}' type should be '${_types.NOMINAL_VALUES_TYPE}'.`, exception = _exception.default.fromMessage(message);
81
81
  throw exception;
82
82
  }
83
- const primitiveValue = term.getPrimitiveValue(), nominalValues = primitiveValue, parametersLength = this.parameters.getLength(), nominalValuesLength = nominalValues.length;
84
- if (parametersLength > nominalValuesLength) {
85
- const parametersString = this.parameters.getString(), primitiveString = (0, _string.primtiveStringFromNominalValues)(nominalValues), message = `The length of the '${parametersString}' parameters is greater than the length of the '${primitiveString}' nodes.`, exception = _exception.default.fromMessage(message);
83
+ const primitiveValue = term.getPrimitiveValue(), nominalValues = primitiveValue, bindingsLength = this.bindings.getLength(), nominalValuesLength = nominalValues.length;
84
+ if (bindingsLength > nominalValuesLength) {
85
+ const bindingsString = this.bindings.getString(), primitiveString = (0, _string.primtiveStringFromNominalValues)(nominalValues), message = `The length of the '${bindingsString}' bindings is greater than the length of the '${primitiveString}' nodes.`, exception = _exception.default.fromMessage(message);
86
86
  throw exception;
87
87
  }
88
- this.parameters.forEachParameter((parameter, index)=>{
89
- if (parameter !== null) {
88
+ this.bindings.forEachBinding((binding, index)=>{
89
+ if (binding !== null) {
90
90
  const nominalValue = nominalValues[index], term = (0, _term.termFromNominalValue)(nominalValue);
91
- this.evaluateParameter(parameter, term, context);
91
+ this.evaluateBinding(binding, term, context);
92
92
  }
93
93
  });
94
94
  context.debug(`...evaluated the '${arrayAssignmentString}' array assignment.`);
95
95
  }
96
- evaluateParameter(parameter, expression, context) {
97
- const expressionString = expression.getString(), parameterString = parameter.getString();
98
- context.trace(`Evaluating the '${parameterString}' parameter against the '${expressionString}' expression...`);
99
- const parameterType = parameter.getType();
100
- if (parameterType !== _types.NOMINAL_VALUE_TYPE) {
101
- const message = `The type of the '${parameterString}' parameter should be '${_types.NOMINAL_VALUE_TYPE}'.`, exception = _exception.default.fromMessage(message);
96
+ evaluateBinding(binding, expression, context) {
97
+ const bindingString = binding.getString(), expressionString = expression.getString();
98
+ context.trace(`Evaluating the '${bindingString}' binding against the '${expressionString}' expression...`);
99
+ const bindingType = binding.getType();
100
+ if (bindingType !== _types.NOMINAL_VALUE_TYPE) {
101
+ const message = `The type of the '${bindingString}' binding should be '${_types.NOMINAL_VALUE_TYPE}'.`, exception = _exception.default.fromMessage(message);
102
102
  throw exception;
103
103
  }
104
- const { Variable } = _elements.default, variable = Variable.fromParameter(parameter, context);
104
+ const { Variable } = _elements.default, variable = Variable.fromBinding(binding, context);
105
105
  variable.assign(expression, context);
106
- context.debug(`...evaluated the '${parameterString}' parameter against the '${expressionString}' expression.`);
106
+ context.debug(`...evaluated the '${bindingString}' binding against the '${expressionString}' expression.`);
107
107
  }
108
108
  static name = "ArrayAssignment";
109
109
  });
110
110
 
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2Fzc2lnbm1lbnQvYXJyYXkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBlbGVtZW50cyBmcm9tIFwiLi4vLi4vZWxlbWVudHNcIjtcbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uLy4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IHRlcm1Gcm9tTm9taW5hbFZhbHVlIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy90ZXJtXCI7XG5pbXBvcnQgeyBwcmltdGl2ZVN0cmluZ0Zyb21Ob21pbmFsVmFsdWVzIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9zdHJpbmdcIjtcbmltcG9ydCB7IE5PTUlOQUxfVkFMVUVfVFlQRSwgTk9NSU5BTF9WQUxVRVNfVFlQRSB9IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgQXJyYXlBc3NpZ21lbnQgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB2YXJpYWJsZSwgcGFyYW1ldGVycykge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnZhcmlhYmxlID0gdmFyaWFibGU7XG4gICAgdGhpcy5wYXJhbWV0ZXJzID0gcGFyYW1ldGVycztcbiAgfVxuXG4gIGdldFZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlO1xuICB9XG5cbiAgZ2V0UGFyYW1ldGVycygpIHtcbiAgICByZXR1cm4gdGhpcy5wYXJhbWV0ZXJzO1xuICB9XG5cbiAgZXZhbHVhdGUoY29udGV4dCkge1xuICAgIGNvbnN0IGFycmF5QXNzaWdubWVudFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgJyR7YXJyYXlBc3NpZ25tZW50U3RyaW5nfScgYXJyYXkgYXNzaWdubWVudC4uLmApO1xuXG4gICAgY29uc3QgdGVybSA9IHRoaXMudmFyaWFibGUuZXZhbHVhdGUoY29udGV4dCksXG4gICAgICAgICAgdGVybVR5cGUgPSB0ZXJtLmdldFR5cGUoKTtcblxuICAgIGlmICh0ZXJtVHlwZSAhPT0gTk9NSU5BTF9WQUxVRVNfVFlQRSkge1xuICAgICAgY29uc3QgdGVybVN0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSdzICcke3Rlcm1UeXBlfScgdHlwZSBzaG91bGQgYmUgJyR7Tk9NSU5BTF9WQUxVRVNfVFlQRX0nLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCBwcmltaXRpdmVWYWx1ZSA9IHRlcm0uZ2V0UHJpbWl0aXZlVmFsdWUoKSxcbiAgICAgICAgICBub21pbmFsVmFsdWVzID0gcHJpbWl0aXZlVmFsdWUsIC8vL1xuICAgICAgICAgIHBhcmFtZXRlcnNMZW5ndGggPSB0aGlzLnBhcmFtZXRlcnMuZ2V0TGVuZ3RoKCksXG4gICAgICAgICAgbm9taW5hbFZhbHVlc0xlbmd0aCA9IG5vbWluYWxWYWx1ZXMubGVuZ3RoO1xuXG4gICAgaWYgKHBhcmFtZXRlcnNMZW5ndGggPiBub21pbmFsVmFsdWVzTGVuZ3RoKSB7XG4gICAgICBjb25zdCBwYXJhbWV0ZXJzU3RyaW5nID0gdGhpcy5wYXJhbWV0ZXJzLmdldFN0cmluZygpLFxuICAgICAgICAgICAgcHJpbWl0aXZlU3RyaW5nID0gcHJpbXRpdmVTdHJpbmdGcm9tTm9taW5hbFZhbHVlcyhub21pbmFsVmFsdWVzKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlIGxlbmd0aCBvZiB0aGUgJyR7cGFyYW1ldGVyc1N0cmluZ30nIHBhcmFtZXRlcnMgaXMgZ3JlYXRlciB0aGFuIHRoZSBsZW5ndGggb2YgdGhlICcke3ByaW1pdGl2ZVN0cmluZ30nIG5vZGVzLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICB0aGlzLnBhcmFtZXRlcnMuZm9yRWFjaFBhcmFtZXRlcigocGFyYW1ldGVyLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKHBhcmFtZXRlciAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCBub21pbmFsVmFsdWUgPSBub21pbmFsVmFsdWVzW2luZGV4XSxcbiAgICAgICAgICAgICAgdGVybSA9IHRlcm1Gcm9tTm9taW5hbFZhbHVlKG5vbWluYWxWYWx1ZSk7XG5cbiAgICAgICAgdGhpcy5ldmFsdWF0ZVBhcmFtZXRlcihwYXJhbWV0ZXIsIHRlcm0sIGNvbnRleHQpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHthcnJheUFzc2lnbm1lbnRTdHJpbmd9JyBhcnJheSBhc3NpZ25tZW50LmApO1xuICB9XG5cbiAgZXZhbHVhdGVQYXJhbWV0ZXIocGFyYW1ldGVyLCBleHByZXNzaW9uLCBjb250ZXh0KSB7XG4gICAgY29uc3QgZXhwcmVzc2lvblN0cmluZyA9IGV4cHJlc3Npb24uZ2V0U3RyaW5nKCksXG4gICAgICAgICAgcGFyYW1ldGVyU3RyaW5nID0gcGFyYW1ldGVyLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgJyR7cGFyYW1ldGVyU3RyaW5nfScgcGFyYW1ldGVyIGFnYWluc3QgdGhlICcke2V4cHJlc3Npb25TdHJpbmd9JyBleHByZXNzaW9uLi4uYCk7XG5cbiAgICBjb25zdCBwYXJhbWV0ZXJUeXBlID0gcGFyYW1ldGVyLmdldFR5cGUoKTtcblxuICAgIGlmIChwYXJhbWV0ZXJUeXBlICE9PSBOT01JTkFMX1ZBTFVFX1RZUEUpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgVGhlIHR5cGUgb2YgdGhlICcke3BhcmFtZXRlclN0cmluZ30nIHBhcmFtZXRlciBzaG91bGQgYmUgJyR7Tk9NSU5BTF9WQUxVRV9UWVBFfScuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IHsgVmFyaWFibGUgfSA9IGVsZW1lbnRzLFxuICAgICAgICAgIHZhcmlhYmxlID0gVmFyaWFibGUuZnJvbVBhcmFtZXRlcihwYXJhbWV0ZXIsIGNvbnRleHQpO1xuXG4gICAgdmFyaWFibGUuYXNzaWduKGV4cHJlc3Npb24sIGNvbnRleHQpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHtwYXJhbWV0ZXJTdHJpbmd9JyBwYXJhbWV0ZXIgYWdhaW5zdCB0aGUgJyR7ZXhwcmVzc2lvblN0cmluZ30nIGV4cHJlc3Npb24uYCk7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiQXJyYXlBc3NpZ25tZW50XCI7XG59KTtcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJBcnJheUFzc2lnbWVudCIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ2YXJpYWJsZSIsInBhcmFtZXRlcnMiLCJnZXRWYXJpYWJsZSIsImdldFBhcmFtZXRlcnMiLCJldmFsdWF0ZSIsImFycmF5QXNzaWdubWVudFN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwidGVybSIsInRlcm1UeXBlIiwiZ2V0VHlwZSIsIk5PTUlOQUxfVkFMVUVTX1RZUEUiLCJ0ZXJtU3RyaW5nIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwicHJpbWl0aXZlVmFsdWUiLCJnZXRQcmltaXRpdmVWYWx1ZSIsIm5vbWluYWxWYWx1ZXMiLCJwYXJhbWV0ZXJzTGVuZ3RoIiwiZ2V0TGVuZ3RoIiwibm9taW5hbFZhbHVlc0xlbmd0aCIsImxlbmd0aCIsInBhcmFtZXRlcnNTdHJpbmciLCJwcmltaXRpdmVTdHJpbmciLCJwcmltdGl2ZVN0cmluZ0Zyb21Ob21pbmFsVmFsdWVzIiwiZm9yRWFjaFBhcmFtZXRlciIsInBhcmFtZXRlciIsImluZGV4Iiwibm9taW5hbFZhbHVlIiwidGVybUZyb21Ob21pbmFsVmFsdWUiLCJldmFsdWF0ZVBhcmFtZXRlciIsImRlYnVnIiwiZXhwcmVzc2lvbiIsImV4cHJlc3Npb25TdHJpbmciLCJwYXJhbWV0ZXJTdHJpbmciLCJwYXJhbWV0ZXJUeXBlIiwiTk9NSU5BTF9WQUxVRV9UWVBFIiwiVmFyaWFibGUiLCJlbGVtZW50cyIsImZyb21QYXJhbWV0ZXIiLCJhc3NpZ24iLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFZQTs7O2VBQUE7OztnQ0FWd0I7a0VBRUg7a0VBQ0M7c0JBR2U7d0JBQ1c7dUJBQ1E7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BRXhELFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsdUJBQXVCQyx1QkFBTztJQUN4RCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFFBQVEsRUFBRUMsVUFBVSxDQUFFO1FBQ25FLEtBQUssQ0FBQ0wsU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxRQUFRLEdBQUdBO1FBQ2hCLElBQUksQ0FBQ0MsVUFBVSxHQUFHQTtJQUNwQjtJQUVBQyxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUNGLFFBQVE7SUFDdEI7SUFFQUcsZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUNGLFVBQVU7SUFD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
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2Fzc2lnbm1lbnQvYXJyYXkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBlbGVtZW50cyBmcm9tIFwiLi4vLi4vZWxlbWVudHNcIjtcbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uLy4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IHRlcm1Gcm9tTm9taW5hbFZhbHVlIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy90ZXJtXCI7XG5pbXBvcnQgeyBwcmltdGl2ZVN0cmluZ0Zyb21Ob21pbmFsVmFsdWVzIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9zdHJpbmdcIjtcbmltcG9ydCB7IE5PTUlOQUxfVkFMVUVfVFlQRSwgTk9NSU5BTF9WQUxVRVNfVFlQRSB9IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgQXJyYXlBc3NpZ21lbnQgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB2YXJpYWJsZSwgYmluZGluZ3MpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy52YXJpYWJsZSA9IHZhcmlhYmxlO1xuICAgIHRoaXMuYmluZGluZ3MgPSBiaW5kaW5ncztcbiAgfVxuXG4gIGdldFZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlO1xuICB9XG5cbiAgZ2V0QmluZGluZ3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuYmluZGluZ3M7XG4gIH1cblxuICBldmFsdWF0ZShjb250ZXh0KSB7XG4gICAgY29uc3QgYXJyYXlBc3NpZ25tZW50U3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHthcnJheUFzc2lnbm1lbnRTdHJpbmd9JyBhcnJheSBhc3NpZ25tZW50Li4uYCk7XG5cbiAgICBjb25zdCB0ZXJtID0gdGhpcy52YXJpYWJsZS5ldmFsdWF0ZShjb250ZXh0KSxcbiAgICAgICAgICB0ZXJtVHlwZSA9IHRlcm0uZ2V0VHlwZSgpO1xuXG4gICAgaWYgKHRlcm1UeXBlICE9PSBOT01JTkFMX1ZBTFVFU19UWVBFKSB7XG4gICAgICBjb25zdCB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtJ3MgJyR7dGVybVR5cGV9JyB0eXBlIHNob3VsZCBiZSAnJHtOT01JTkFMX1ZBTFVFU19UWVBFfScuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IHByaW1pdGl2ZVZhbHVlID0gdGVybS5nZXRQcmltaXRpdmVWYWx1ZSgpLFxuICAgICAgICAgIG5vbWluYWxWYWx1ZXMgPSBwcmltaXRpdmVWYWx1ZSwgLy8vXG4gICAgICAgICAgYmluZGluZ3NMZW5ndGggPSB0aGlzLmJpbmRpbmdzLmdldExlbmd0aCgpLFxuICAgICAgICAgIG5vbWluYWxWYWx1ZXNMZW5ndGggPSBub21pbmFsVmFsdWVzLmxlbmd0aDtcblxuICAgIGlmIChiaW5kaW5nc0xlbmd0aCA+IG5vbWluYWxWYWx1ZXNMZW5ndGgpIHtcbiAgICAgIGNvbnN0IGJpbmRpbmdzU3RyaW5nID0gdGhpcy5iaW5kaW5ncy5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIHByaW1pdGl2ZVN0cmluZyA9IHByaW10aXZlU3RyaW5nRnJvbU5vbWluYWxWYWx1ZXMobm9taW5hbFZhbHVlcyksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSBsZW5ndGggb2YgdGhlICcke2JpbmRpbmdzU3RyaW5nfScgYmluZGluZ3MgaXMgZ3JlYXRlciB0aGFuIHRoZSBsZW5ndGggb2YgdGhlICcke3ByaW1pdGl2ZVN0cmluZ30nIG5vZGVzLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICB0aGlzLmJpbmRpbmdzLmZvckVhY2hCaW5kaW5nKChiaW5kaW5nLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKGJpbmRpbmcgIT09IG51bGwpIHtcbiAgICAgICAgY29uc3Qgbm9taW5hbFZhbHVlID0gbm9taW5hbFZhbHVlc1tpbmRleF0sXG4gICAgICAgICAgICAgIHRlcm0gPSB0ZXJtRnJvbU5vbWluYWxWYWx1ZShub21pbmFsVmFsdWUpO1xuXG4gICAgICAgIHRoaXMuZXZhbHVhdGVCaW5kaW5nKGJpbmRpbmcsIHRlcm0sIGNvbnRleHQpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHthcnJheUFzc2lnbm1lbnRTdHJpbmd9JyBhcnJheSBhc3NpZ25tZW50LmApO1xuICB9XG5cbiAgZXZhbHVhdGVCaW5kaW5nKGJpbmRpbmcsIGV4cHJlc3Npb24sIGNvbnRleHQpIHtcbiAgICBjb25zdCBiaW5kaW5nU3RyaW5nID0gYmluZGluZy5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBleHByZXNzaW9uU3RyaW5nID0gZXhwcmVzc2lvbi5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYEV2YWx1YXRpbmcgdGhlICcke2JpbmRpbmdTdHJpbmd9JyBiaW5kaW5nIGFnYWluc3QgdGhlICcke2V4cHJlc3Npb25TdHJpbmd9JyBleHByZXNzaW9uLi4uYCk7XG5cbiAgICBjb25zdCBiaW5kaW5nVHlwZSA9IGJpbmRpbmcuZ2V0VHlwZSgpO1xuXG4gICAgaWYgKGJpbmRpbmdUeXBlICE9PSBOT01JTkFMX1ZBTFVFX1RZUEUpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgVGhlIHR5cGUgb2YgdGhlICcke2JpbmRpbmdTdHJpbmd9JyBiaW5kaW5nIHNob3VsZCBiZSAnJHtOT01JTkFMX1ZBTFVFX1RZUEV9Jy5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3QgeyBWYXJpYWJsZSB9ID0gZWxlbWVudHMsXG4gICAgICAgICAgdmFyaWFibGUgPSBWYXJpYWJsZS5mcm9tQmluZGluZyhiaW5kaW5nLCBjb250ZXh0KTtcblxuICAgIHZhcmlhYmxlLmFzc2lnbihleHByZXNzaW9uLCBjb250ZXh0KTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgJyR7YmluZGluZ1N0cmluZ30nIGJpbmRpbmcgYWdhaW5zdCB0aGUgJyR7ZXhwcmVzc2lvblN0cmluZ30nIGV4cHJlc3Npb24uYCk7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiQXJyYXlBc3NpZ25tZW50XCI7XG59KTtcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJBcnJheUFzc2lnbWVudCIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ2YXJpYWJsZSIsImJpbmRpbmdzIiwiZ2V0VmFyaWFibGUiLCJnZXRCaW5kaW5ncyIsImV2YWx1YXRlIiwiYXJyYXlBc3NpZ25tZW50U3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJ0ZXJtIiwidGVybVR5cGUiLCJnZXRUeXBlIiwiTk9NSU5BTF9WQUxVRVNfVFlQRSIsInRlcm1TdHJpbmciLCJtZXNzYWdlIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJwcmltaXRpdmVWYWx1ZSIsImdldFByaW1pdGl2ZVZhbHVlIiwibm9taW5hbFZhbHVlcyIsImJpbmRpbmdzTGVuZ3RoIiwiZ2V0TGVuZ3RoIiwibm9taW5hbFZhbHVlc0xlbmd0aCIsImxlbmd0aCIsImJpbmRpbmdzU3RyaW5nIiwicHJpbWl0aXZlU3RyaW5nIiwicHJpbXRpdmVTdHJpbmdGcm9tTm9taW5hbFZhbHVlcyIsImZvckVhY2hCaW5kaW5nIiwiYmluZGluZyIsImluZGV4Iiwibm9taW5hbFZhbHVlIiwidGVybUZyb21Ob21pbmFsVmFsdWUiLCJldmFsdWF0ZUJpbmRpbmciLCJkZWJ1ZyIsImV4cHJlc3Npb24iLCJiaW5kaW5nU3RyaW5nIiwiZXhwcmVzc2lvblN0cmluZyIsImJpbmRpbmdUeXBlIiwiTk9NSU5BTF9WQUxVRV9UWVBFIiwiVmFyaWFibGUiLCJlbGVtZW50cyIsImZyb21CaW5kaW5nIiwiYXNzaWduIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBWUE7OztlQUFBOzs7Z0NBVndCO2tFQUVIO2tFQUNDO3NCQUdlO3dCQUNXO3VCQUNROzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQUV4RCxXQUFlQSxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLHVCQUF1QkMsdUJBQU87SUFDeEQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxRQUFRLEVBQUVDLFFBQVEsQ0FBRTtRQUNqRSxLQUFLLENBQUNMLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsUUFBUSxHQUFHQTtRQUNoQixJQUFJLENBQUNDLFFBQVEsR0FBR0E7SUFDbEI7SUFFQUMsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDRixRQUFRO0lBQ3RCO0lBRUFHLGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQ0YsUUFBUTtJQUN0QjtJQUVBRyxTQUFTUixPQUFPLEVBQUU7UUFDaEIsTUFBTVMsd0JBQXdCLElBQUksQ0FBQ0MsU0FBUyxJQUFJLEdBQUc7UUFFbkRWLFFBQVFXLEtBQUss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
@@ -64,16 +64,16 @@ function _interop_require_wildcard(obj, nodeInterop) {
64
64
  return newObj;
65
65
  }
66
66
  const _default = (0, _elements.define)(class ObjectAssigment extends _occamlanguages.Element {
67
- constructor(context, string, node, breakPoint, variable, namedParameters){
67
+ constructor(context, string, node, breakPoint, variable, nameBindings){
68
68
  super(context, string, node, breakPoint);
69
69
  this.variable = variable;
70
- this.namedParameters = namedParameters;
70
+ this.nameBindings = nameBindings;
71
71
  }
72
72
  getVariable() {
73
73
  return this.variable;
74
74
  }
75
- getNamedParameters() {
76
- return this.namedParameters;
75
+ getNameBindings() {
76
+ return this.nameBindings;
77
77
  }
78
78
  evaluate(context) {
79
79
  const objectAssignmentString = this.getString(); ///
@@ -83,42 +83,42 @@ const _default = (0, _elements.define)(class ObjectAssigment extends _occamlangu
83
83
  const termString = term.getString(), message = `The '${termString}' term's '${termType}' type should be '${_types.NOMINAL_VALUE_TYPE}'.`, exception = _exception.default.fromMessage(message);
84
84
  throw exception;
85
85
  }
86
- _nodeProperties.default.compareNamedParameters(this.namedParameters, context);
87
- this.namedParameters.forEachNamedParameter((namedParameter)=>{
88
- this.evaluateNamedParameter(namedParameter, term, context);
86
+ _nodeProperties.default.compareNameBindings(this.nameBindings, context);
87
+ this.nameBindings.forEachNameBinding((nameBinding)=>{
88
+ this.evaluateNameBinding(nameBinding, term, context);
89
89
  });
90
90
  context.debug(`...evaluated the '${objectAssignmentString}' object assignment.`);
91
91
  }
92
- evaluateNamedParameter(namedParameter, term, context) {
93
- const termString = term.getString(), namedParameterString = namedParameter.getString();
94
- context.trace(`Evaluating the '${namedParameterString}' named parameter against the '${termString}' term...`);
95
- const name = namedParameter.getName();
92
+ evaluateNameBinding(nameBinding, term, context) {
93
+ const termString = term.getString(), nameBindingString = nameBinding.getString();
94
+ context.trace(`Evaluating the '${nameBindingString}' named binding against the '${termString}' term...`);
95
+ const name = nameBinding.getName();
96
96
  switch(name){
97
97
  case _parameterNames.CONTENT_PARAMETER_NAME:
98
98
  {
99
- term = this.evaluateContentNamedParameter(namedParameter, term, context);
99
+ term = this.evaluateContentNameBinding(nameBinding, term, context);
100
100
  break;
101
101
  }
102
102
  case _parameterNames.TERMINAL_PARAMETER_NAME:
103
103
  {
104
- term = this.evaluateTerminalNamedParameter(namedParameter, term, context);
104
+ term = this.evaluateTerminalNameBinding(nameBinding, term, context);
105
105
  break;
106
106
  }
107
107
  case _parameterNames.CHILD_NODES_PARAMETER_NAME:
108
108
  {
109
- term = this.evaluateChildNodesNamedParameter(namedParameter, term, context);
109
+ term = this.evaluateChildNodesNameBinding(nameBinding, term, context);
110
110
  break;
111
111
  }
112
112
  }
113
- const { Variable } = _elements.default, variable = Variable.fromNamedParameter(namedParameter, context);
113
+ const { Variable } = _elements.default, variable = Variable.fromNameBinding(nameBinding, context);
114
114
  variable.assign(term, context);
115
- context.debug(`...evaluated the '${namedParameterString}' parameter named against the '${termString}' term.`);
115
+ context.debug(`...evaluated the '${nameBindingString}' parameter named against the '${termString}' term.`);
116
116
  }
117
- evaluateContentNamedParameter(namedParameter, term, context) {
118
- const type = namedParameter.getType(), namedParameterString = namedParameter.getString();
119
- context.trace(`Evaluating the content '${namedParameterString}' named parameter...`);
117
+ evaluateContentNameBinding(nameBinding, term, context) {
118
+ const type = nameBinding.getType(), nameBindingString = nameBinding.getString();
119
+ context.trace(`Evaluating the content '${nameBindingString}' named binding...`);
120
120
  if (type !== _types.STRING_TYPE) {
121
- const namedParameterString = namedParameter.getString(), message = `The '${namedParameterString}' named parameter's type should be '${_types.STRING_TYPE}'.`, exception = _exception.default.fromMessage(message);
121
+ const nameBindingString = nameBinding.getString(), message = `The '${nameBindingString}' named binding's type should be '${_types.STRING_TYPE}'.`, exception = _exception.default.fromMessage(message);
122
122
  throw exception;
123
123
  }
124
124
  const primitiveValue = term.getPrimitiveValue(), nominalValue = primitiveValue, node = nominalValue.getNode(), nodeTerminalNode = node.isTerminalNode();
@@ -129,28 +129,28 @@ const _default = (0, _elements.define)(class ObjectAssigment extends _occamlangu
129
129
  const terminalNode = node, content = terminalNode.getContent(), string = content, stringLiteral = (0, _stringLiteral.stringLiteralFromString)(string);
130
130
  term = (0, _term.termFromStringLiteral)(stringLiteral, context);
131
131
  const termSttring = term.getString();
132
- context.debug(`...evaluated the content '${namedParameterString}' named parameter as '${termSttring}'.`);
132
+ context.debug(`...evaluated the content '${nameBindingString}' named binding as '${termSttring}'.`);
133
133
  return term;
134
134
  }
135
- evaluateTerminalNamedParameter(namedParameter, term, context) {
136
- const type = namedParameter.getType(), namedParameterString = namedParameter.getString();
137
- context.trace(`Evaluating the terminal '${namedParameterString}' named parameter...`);
135
+ evaluateTerminalNameBinding(nameBinding, term, context) {
136
+ const type = nameBinding.getType(), nameBindingString = nameBinding.getString();
137
+ context.trace(`Evaluating the terminal '${nameBindingString}' named binding...`);
138
138
  if (type !== _types.BOOLEAN_TYPE) {
139
- const namedParameterString = namedParameter.getString(), message = `The '${namedParameterString}' named parameter's type should be '${_types.BOOLEAN_TYPE}'.`, exception = _exception.default.fromMessage(message);
139
+ const nameBindingString = nameBinding.getString(), message = `The '${nameBindingString}' named binding's type should be '${_types.BOOLEAN_TYPE}'.`, exception = _exception.default.fromMessage(message);
140
140
  throw exception;
141
141
  }
142
142
  const primitiveValue = term.getPrimitiveValue(), nominalValue = primitiveValue, node = nominalValue.getNode(), nodeTerminalNode = node.isTerminalNode(), terminal = nodeTerminalNode; ///
143
143
  const boolean = terminal; ///
144
144
  term = (0, _term.termFromBoolean)(boolean, context); ///
145
145
  const termSttring = term.getString();
146
- context.debug(`...evaluated the terminal '${namedParameterString}' named parameter as '${termSttring}'.`);
146
+ context.debug(`...evaluated the terminal '${nameBindingString}' named binding as '${termSttring}'.`);
147
147
  return term;
148
148
  }
149
- evaluateChildNodesNamedParameter(namedParameter, term, context) {
150
- const type = namedParameter.getType(), namedParameterString = namedParameter.getString();
151
- context.trace(`Evaluating the child nodes '${namedParameterString}' named parameter...`);
149
+ evaluateChildNodesNameBinding(nameBinding, term, context) {
150
+ const type = nameBinding.getType(), nameBindingString = nameBinding.getString();
151
+ context.trace(`Evaluating the child nodes '${nameBindingString}' named binding...`);
152
152
  if (type !== _types.NOMINAL_VALUES_TYPE) {
153
- const namedParameterString = namedParameter.getString(), message = `The '${namedParameterString}' named parameter's type should be '${_types.NOMINAL_VALUES_TYPE}'.`, exception = _exception.default.fromMessage(message);
153
+ const nameBindingString = nameBinding.getString(), message = `The '${nameBindingString}' named binding's type should be '${_types.NOMINAL_VALUES_TYPE}'.`, exception = _exception.default.fromMessage(message);
154
154
  throw exception;
155
155
  }
156
156
  const primitiveValue = term.getPrimitiveValue(), nominalValue = primitiveValue, node = nominalValue.getNode(), nodeNonTerminalNode = node.isNonTerminalNode();
@@ -161,10 +161,10 @@ const _default = (0, _elements.define)(class ObjectAssigment extends _occamlangu
161
161
  const nonTerminalNode = node, childNodes = nonTerminalNode.getChildNodes(), nodes = childNodes; ///
162
162
  term = (0, _nominal.termFromNodesAndNominalValue)(nodes, nominalValue);
163
163
  const termSttring = term.getString();
164
- context.debug(`...evaluated the childNodes '${namedParameterString}' named parameter as '${termSttring}'.`);
164
+ context.debug(`...evaluated the childNodes '${nameBindingString}' named binding as '${termSttring}'.`);
165
165
  return term;
166
166
  }
167
167
  static name = "ObjectAssigment";
168
168
  });
169
169
 
170
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2Fzc2lnbm1lbnQvb2JqZWN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uLy4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi8uLi9leGNlcHRpb25cIjtcbmltcG9ydCBub2RlUHJvcGVydGllcyBmcm9tIFwiLi4vLi4vbm9kZVByb3BlcnRpZXNcIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uLy4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyBzdHJpbmdMaXRlcmFsRnJvbVN0cmluZyB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvc3RyaW5nTGl0ZXJhbFwiO1xuaW1wb3J0IHsgdGVybUZyb21Ob2Rlc0FuZE5vbWluYWxWYWx1ZSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvbm9taW5hbFwiO1xuaW1wb3J0IHsgdGVybUZyb21Cb29sZWFuLCB0ZXJtRnJvbVN0cmluZ0xpdGVyYWwgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3Rlcm1cIjtcbmltcG9ydCB7IFNUUklOR19UWVBFLCBCT09MRUFOX1RZUEUsIE5PTUlOQUxfVkFMVUVfVFlQRSwgTk9NSU5BTF9WQUxVRVNfVFlQRSB9IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuaW1wb3J0IHsgQ09OVEVOVF9QQVJBTUVURVJfTkFNRSwgVEVSTUlOQUxfUEFSQU1FVEVSX05BTUUsIENISUxEX05PREVTX1BBUkFNRVRFUl9OQU1FIH0gZnJvbSBcIi4uLy4uL3BhcmFtZXRlck5hbWVzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBPYmplY3RBc3NpZ21lbnQgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB2YXJpYWJsZSwgbmFtZWRQYXJhbWV0ZXJzKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMudmFyaWFibGUgPSB2YXJpYWJsZTtcbiAgICB0aGlzLm5hbWVkUGFyYW1ldGVycyA9IG5hbWVkUGFyYW1ldGVycztcbiAgfVxuXG4gIGdldFZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlO1xuICB9XG5cbiAgZ2V0TmFtZWRQYXJhbWV0ZXJzKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWVkUGFyYW1ldGVycztcbiAgfVxuXG4gIGV2YWx1YXRlKGNvbnRleHQpIHtcbiAgICBjb25zdCBvYmplY3RBc3NpZ25tZW50U3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtvYmplY3RBc3NpZ25tZW50U3RyaW5nfScgb2JqZWN0IGFzc2lnbm1lbnQuLi5gKTtcblxuICAgIGNvbnN0IHRlcm0gPSB0aGlzLnZhcmlhYmxlLmV2YWx1YXRlKGNvbnRleHQpLFxuICAgICAgICAgIHRlcm1UeXBlID0gdGVybS5nZXRUeXBlKCk7XG5cbiAgICBpZiAodGVybVR5cGUgIT09IE5PTUlOQUxfVkFMVUVfVFlQRSkge1xuICAgICAgY29uc3QgdGVybVN0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSdzICcke3Rlcm1UeXBlfScgdHlwZSBzaG91bGQgYmUgJyR7Tk9NSU5BTF9WQUxVRV9UWVBFfScuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIG5vZGVQcm9wZXJ0aWVzLmNvbXBhcmVOYW1lZFBhcmFtZXRlcnModGhpcy5uYW1lZFBhcmFtZXRlcnMsIGNvbnRleHQpO1xuXG4gICAgdGhpcy5uYW1lZFBhcmFtZXRlcnMuZm9yRWFjaE5hbWVkUGFyYW1ldGVyKChuYW1lZFBhcmFtZXRlcikgPT4ge1xuICAgICAgdGhpcy5ldmFsdWF0ZU5hbWVkUGFyYW1ldGVyKG5hbWVkUGFyYW1ldGVyLCB0ZXJtLCBjb250ZXh0KTtcbiAgICB9KTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgJyR7b2JqZWN0QXNzaWdubWVudFN0cmluZ30nIG9iamVjdCBhc3NpZ25tZW50LmApO1xuICB9XG5cbiAgZXZhbHVhdGVOYW1lZFBhcmFtZXRlcihuYW1lZFBhcmFtZXRlciwgdGVybSwgY29udGV4dCkge1xuICAgIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpLFxuICAgICAgICAgIG5hbWVkUGFyYW1ldGVyU3RyaW5nID0gbmFtZWRQYXJhbWV0ZXIuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtuYW1lZFBhcmFtZXRlclN0cmluZ30nIG5hbWVkIHBhcmFtZXRlciBhZ2FpbnN0IHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybS4uLmApO1xuXG4gICAgY29uc3QgbmFtZSA9IG5hbWVkUGFyYW1ldGVyLmdldE5hbWUoKTtcblxuICAgIHN3aXRjaCAobmFtZSkge1xuICAgICAgY2FzZSBDT05URU5UX1BBUkFNRVRFUl9OQU1FOiB7XG4gICAgICAgIHRlcm0gPSB0aGlzLmV2YWx1YXRlQ29udGVudE5hbWVkUGFyYW1ldGVyKG5hbWVkUGFyYW1ldGVyLCB0ZXJtLCBjb250ZXh0KTtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY2FzZSBURVJNSU5BTF9QQVJBTUVURVJfTkFNRToge1xuICAgICAgICB0ZXJtID0gdGhpcy5ldmFsdWF0ZVRlcm1pbmFsTmFtZWRQYXJhbWV0ZXIobmFtZWRQYXJhbWV0ZXIsIHRlcm0sIGNvbnRleHQpO1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuXG4gICAgICBjYXNlIENISUxEX05PREVTX1BBUkFNRVRFUl9OQU1FOiB7XG4gICAgICAgIHRlcm0gPSB0aGlzLmV2YWx1YXRlQ2hpbGROb2Rlc05hbWVkUGFyYW1ldGVyKG5hbWVkUGFyYW1ldGVyLCB0ZXJtLCBjb250ZXh0KTtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCB7IFZhcmlhYmxlIH0gPSBlbGVtZW50cyxcbiAgICAgICAgICB2YXJpYWJsZSA9IFZhcmlhYmxlLmZyb21OYW1lZFBhcmFtZXRlcihuYW1lZFBhcmFtZXRlciwgY29udGV4dCk7XG5cbiAgICB2YXJpYWJsZS5hc3NpZ24odGVybSwgY29udGV4dCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlICcke25hbWVkUGFyYW1ldGVyU3RyaW5nfScgcGFyYW1ldGVyIG5hbWVkIGFnYWluc3QgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtLmApO1xuICB9XG5cbiAgZXZhbHVhdGVDb250ZW50TmFtZWRQYXJhbWV0ZXIobmFtZWRQYXJhbWV0ZXIsIHRlcm0sIGNvbnRleHQpIHtcbiAgICBjb25zdCB0eXBlID0gbmFtZWRQYXJhbWV0ZXIuZ2V0VHlwZSgpLFxuICAgICAgICAgIG5hbWVkUGFyYW1ldGVyU3RyaW5nID0gbmFtZWRQYXJhbWV0ZXIuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSBjb250ZW50ICcke25hbWVkUGFyYW1ldGVyU3RyaW5nfScgbmFtZWQgcGFyYW1ldGVyLi4uYCk7XG5cbiAgICBpZiAodHlwZSAhPT0gU1RSSU5HX1RZUEUpIHtcbiAgICAgIGNvbnN0IG5hbWVkUGFyYW1ldGVyU3RyaW5nID0gbmFtZWRQYXJhbWV0ZXIuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHtuYW1lZFBhcmFtZXRlclN0cmluZ30nIG5hbWVkIHBhcmFtZXRlcidzIHR5cGUgc2hvdWxkIGJlICcke1NUUklOR19UWVBFfScuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IHByaW1pdGl2ZVZhbHVlID0gdGVybS5nZXRQcmltaXRpdmVWYWx1ZSgpLFxuICAgICAgICAgIG5vbWluYWxWYWx1ZSA9IHByaW1pdGl2ZVZhbHVlLCAgLy8vXG4gICAgICAgICAgbm9kZSA9IG5vbWluYWxWYWx1ZS5nZXROb2RlKCksXG4gICAgICAgICAgbm9kZVRlcm1pbmFsTm9kZSA9IG5vZGUuaXNUZXJtaW5hbE5vZGUoKTtcblxuICAgIGlmICghbm9kZVRlcm1pbmFsTm9kZSkge1xuICAgICAgY29uc3QgdGVybVN0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSdzIG5vZGUgbXVzdCBiZSB0ZXJtaW5hbC5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3QgdGVybWluYWxOb2RlID0gbm9kZSwgIC8vL1xuICAgICAgICAgIGNvbnRlbnQgPSB0ZXJtaW5hbE5vZGUuZ2V0Q29udGVudCgpLFxuICAgICAgICAgIHN0cmluZyA9IGNvbnRlbnQsICAvLy9cbiAgICAgICAgICBzdHJpbmdMaXRlcmFsID0gc3RyaW5nTGl0ZXJhbEZyb21TdHJpbmcoc3RyaW5nKTtcblxuICAgIHRlcm0gPSB0ZXJtRnJvbVN0cmluZ0xpdGVyYWwoc3RyaW5nTGl0ZXJhbCwgY29udGV4dCk7XG5cbiAgICBjb25zdCB0ZXJtU3R0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlIGNvbnRlbnQgJyR7bmFtZWRQYXJhbWV0ZXJTdHJpbmd9JyBuYW1lZCBwYXJhbWV0ZXIgYXMgJyR7dGVybVN0dHJpbmd9Jy5gKTtcblxuICAgIHJldHVybiB0ZXJtO1xuICB9XG5cbiAgZXZhbHVhdGVUZXJtaW5hbE5hbWVkUGFyYW1ldGVyKG5hbWVkUGFyYW1ldGVyLCB0ZXJtLCBjb250ZXh0KSB7XG4gICAgY29uc3QgdHlwZSA9IG5hbWVkUGFyYW1ldGVyLmdldFR5cGUoKSxcbiAgICAgICAgICBuYW1lZFBhcmFtZXRlclN0cmluZyA9IG5hbWVkUGFyYW1ldGVyLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgdGVybWluYWwgJyR7bmFtZWRQYXJhbWV0ZXJTdHJpbmd9JyBuYW1lZCBwYXJhbWV0ZXIuLi5gKTtcblxuICAgIGlmICh0eXBlICE9PSBCT09MRUFOX1RZUEUpIHtcbiAgICAgIGNvbnN0IG5hbWVkUGFyYW1ldGVyU3RyaW5nID0gbmFtZWRQYXJhbWV0ZXIuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHtuYW1lZFBhcmFtZXRlclN0cmluZ30nIG5hbWVkIHBhcmFtZXRlcidzIHR5cGUgc2hvdWxkIGJlICcke0JPT0xFQU5fVFlQRX0nLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCBwcmltaXRpdmVWYWx1ZSA9IHRlcm0uZ2V0UHJpbWl0aXZlVmFsdWUoKSxcbiAgICAgICAgICBub21pbmFsVmFsdWUgPSBwcmltaXRpdmVWYWx1ZSwgIC8vL1xuICAgICAgICAgIG5vZGUgPSBub21pbmFsVmFsdWUuZ2V0Tm9kZSgpLFxuICAgICAgICAgIG5vZGVUZXJtaW5hbE5vZGUgPSBub2RlLmlzVGVybWluYWxOb2RlKCksXG4gICAgICAgICAgdGVybWluYWwgPSBub2RlVGVybWluYWxOb2RlOyAgLy8vXG5cbiAgICBjb25zdCBib29sZWFuID0gdGVybWluYWw7IC8vL1xuXG4gICAgdGVybSA9IHRlcm1Gcm9tQm9vbGVhbihib29sZWFuLCBjb250ZXh0KTsgIC8vL1xuXG4gICAgY29uc3QgdGVybVN0dHJpbmcgPSB0ZXJtLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSB0ZXJtaW5hbCAnJHtuYW1lZFBhcmFtZXRlclN0cmluZ30nIG5hbWVkIHBhcmFtZXRlciBhcyAnJHt0ZXJtU3R0cmluZ30nLmApO1xuXG4gICAgcmV0dXJuIHRlcm07XG4gIH1cblxuICBldmFsdWF0ZUNoaWxkTm9kZXNOYW1lZFBhcmFtZXRlcihuYW1lZFBhcmFtZXRlciwgdGVybSwgY29udGV4dCkge1xuICAgIGNvbnN0IHR5cGUgPSBuYW1lZFBhcmFtZXRlci5nZXRUeXBlKCksXG4gICAgICAgICAgbmFtZWRQYXJhbWV0ZXJTdHJpbmcgPSBuYW1lZFBhcmFtZXRlci5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYEV2YWx1YXRpbmcgdGhlIGNoaWxkIG5vZGVzICcke25hbWVkUGFyYW1ldGVyU3RyaW5nfScgbmFtZWQgcGFyYW1ldGVyLi4uYCk7XG5cbiAgICBpZiAodHlwZSAhPT0gTk9NSU5BTF9WQUxVRVNfVFlQRSkge1xuICAgICAgY29uc3QgbmFtZWRQYXJhbWV0ZXJTdHJpbmcgPSBuYW1lZFBhcmFtZXRlci5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke25hbWVkUGFyYW1ldGVyU3RyaW5nfScgbmFtZWQgcGFyYW1ldGVyJ3MgdHlwZSBzaG91bGQgYmUgJyR7Tk9NSU5BTF9WQUxVRVNfVFlQRX0nLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCBwcmltaXRpdmVWYWx1ZSA9IHRlcm0uZ2V0UHJpbWl0aXZlVmFsdWUoKSxcbiAgICAgICAgICBub21pbmFsVmFsdWUgPSBwcmltaXRpdmVWYWx1ZSwgIC8vL1xuICAgICAgICAgIG5vZGUgPSBub21pbmFsVmFsdWUuZ2V0Tm9kZSgpLFxuICAgICAgICAgIG5vZGVOb25UZXJtaW5hbE5vZGUgPSBub2RlLmlzTm9uVGVybWluYWxOb2RlKCk7XG5cbiAgICBpZiAoIW5vZGVOb25UZXJtaW5hbE5vZGUpIHtcbiAgICAgIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpLFxuICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7dGVybVN0cmluZ30nIHRlcm0ncyBub2RlIG11c3QgYmUgbm9uLXRlcm1pbmFsLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBub2RlLCAgLy8vXG4gICAgICAgICAgY2hpbGROb2RlcyA9IG5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgbm9kZXMgPSBjaGlsZE5vZGVzOyAgLy8vXG5cbiAgICB0ZXJtID0gdGVybUZyb21Ob2Rlc0FuZE5vbWluYWxWYWx1ZShub2Rlcywgbm9taW5hbFZhbHVlKTtcblxuICAgIGNvbnN0IHRlcm1TdHRyaW5nID0gdGVybS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgY2hpbGROb2RlcyAnJHtuYW1lZFBhcmFtZXRlclN0cmluZ30nIG5hbWVkIHBhcmFtZXRlciBhcyAnJHt0ZXJtU3R0cmluZ30nLmApO1xuXG4gICAgcmV0dXJuIHRlcm07XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiT2JqZWN0QXNzaWdtZW50XCI7XG59KTtcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJPYmplY3RBc3NpZ21lbnQiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwidmFyaWFibGUiLCJuYW1lZFBhcmFtZXRlcnMiLCJnZXRWYXJpYWJsZSIsImdldE5hbWVkUGFyYW1ldGVycyIsImV2YWx1YXRlIiwib2JqZWN0QXNzaWdubWVudFN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwidGVybSIsInRlcm1UeXBlIiwiZ2V0VHlwZSIsIk5PTUlOQUxfVkFMVUVfVFlQRSIsInRlcm1TdHJpbmciLCJtZXNzYWdlIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJub2RlUHJvcGVydGllcyIsImNvbXBhcmVOYW1lZFBhcmFtZXRlcnMiLCJmb3JFYWNoTmFtZWRQYXJhbWV0ZXIiLCJuYW1lZFBhcmFtZXRlciIsImV2YWx1YXRlTmFtZWRQYXJhbWV0ZXIiLCJkZWJ1ZyIsIm5hbWVkUGFyYW1ldGVyU3RyaW5nIiwibmFtZSIsImdldE5hbWUiLCJDT05URU5UX1BBUkFNRVRFUl9OQU1FIiwiZXZhbHVhdGVDb250ZW50TmFtZWRQYXJhbWV0ZXIiLCJURVJNSU5BTF9QQVJBTUVURVJfTkFNRSIsImV2YWx1YXRlVGVybWluYWxOYW1lZFBhcmFtZXRlciIsIkNISUxEX05PREVTX1BBUkFNRVRFUl9OQU1FIiwiZXZhbHVhdGVDaGlsZE5vZGVzTmFtZWRQYXJhbWV0ZXIiLCJWYXJpYWJsZSIsImVsZW1lbnRzIiwiZnJvbU5hbWVkUGFyYW1ldGVyIiwiYXNzaWduIiwidHlwZSIsIlNUUklOR19UWVBFIiwicHJpbWl0aXZlVmFsdWUiLCJnZXRQcmltaXRpdmVWYWx1ZSIsIm5vbWluYWxWYWx1ZSIsImdldE5vZGUiLCJub2RlVGVybWluYWxOb2RlIiwiaXNUZXJtaW5hbE5vZGUiLCJ0ZXJtaW5hbE5vZGUiLCJjb250ZW50IiwiZ2V0Q29udGVudCIsInN0cmluZ0xpdGVyYWwiLCJzdHJpbmdMaXRlcmFsRnJvbVN0cmluZyIsInRlcm1Gcm9tU3RyaW5nTGl0ZXJhbCIsInRlcm1TdHRyaW5nIiwiQk9PTEVBTl9UWVBFIiwidGVybWluYWwiLCJib29sZWFuIiwidGVybUZyb21Cb29sZWFuIiwiTk9NSU5BTF9WQUxVRVNfVFlQRSIsIm5vZGVOb25UZXJtaW5hbE5vZGUiLCJpc05vblRlcm1pbmFsTm9kZSIsIm5vblRlcm1pbmFsTm9kZSIsImNoaWxkTm9kZXMiLCJnZXRDaGlsZE5vZGVzIiwibm9kZXMiLCJ0ZXJtRnJvbU5vZGVzQW5kTm9taW5hbFZhbHVlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFlQTs7O2VBQUE7OztnQ0Fid0I7a0VBRUg7a0VBQ0M7dUVBQ0s7K0JBR2E7eUJBQ0s7c0JBQ1U7dUJBQzRCO2dDQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQUU1RixXQUFlQSxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLHdCQUF3QkMsdUJBQU87SUFDekQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxRQUFRLEVBQUVDLGVBQWUsQ0FBRTtRQUN4RSxLQUFLLENBQUNMLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsUUFBUSxHQUFHQTtRQUNoQixJQUFJLENBQUNDLGVBQWUsR0FBR0E7SUFDekI7SUFFQUMsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDRixRQUFRO0lBQ3RCO0lBRUFHLHFCQUFxQjtRQUNuQixPQUFPLElBQUksQ0FBQ0YsZUFBZTtJQUM3QjtJQUVBRyxTQUFTUixPQUFPLEVBQUU7UUFDaEIsTUFBTVMseUJBQXlCLElBQUksQ0FBQ0MsU0FBUyxJQUFJLEdBQUc7UUFFcERWLFFBQVFXLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixFQUFFRix1QkFBdUIsc0JBQXNCLENBQUM7UUFFL0UsTUFBTUcsT0FBTyxJQUFJLENBQUNSLFFBQVEsQ0FBQ0ksUUFBUSxDQUFDUixVQUM5QmEsV0FBV0QsS0FBS0UsT0FBTztRQUU3QixJQUFJRCxhQUFhRSx5QkFBa0IsRUFBRTtZQUNuQyxNQUFNQyxhQUFhSixLQUFLRixTQUFTLElBQzNCTyxVQUFV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
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2Fzc2lnbm1lbnQvb2JqZWN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgZWxlbWVudHMgZnJvbSBcIi4uLy4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi8uLi9leGNlcHRpb25cIjtcbmltcG9ydCBub2RlUHJvcGVydGllcyBmcm9tIFwiLi4vLi4vbm9kZVByb3BlcnRpZXNcIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uLy4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyBzdHJpbmdMaXRlcmFsRnJvbVN0cmluZyB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvc3RyaW5nTGl0ZXJhbFwiO1xuaW1wb3J0IHsgdGVybUZyb21Ob2Rlc0FuZE5vbWluYWxWYWx1ZSB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvbm9taW5hbFwiO1xuaW1wb3J0IHsgdGVybUZyb21Cb29sZWFuLCB0ZXJtRnJvbVN0cmluZ0xpdGVyYWwgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3Rlcm1cIjtcbmltcG9ydCB7IFNUUklOR19UWVBFLCBCT09MRUFOX1RZUEUsIE5PTUlOQUxfVkFMVUVfVFlQRSwgTk9NSU5BTF9WQUxVRVNfVFlQRSB9IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuaW1wb3J0IHsgQ09OVEVOVF9QQVJBTUVURVJfTkFNRSwgVEVSTUlOQUxfUEFSQU1FVEVSX05BTUUsIENISUxEX05PREVTX1BBUkFNRVRFUl9OQU1FIH0gZnJvbSBcIi4uLy4uL3BhcmFtZXRlck5hbWVzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBPYmplY3RBc3NpZ21lbnQgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB2YXJpYWJsZSwgbmFtZUJpbmRpbmdzKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMudmFyaWFibGUgPSB2YXJpYWJsZTtcbiAgICB0aGlzLm5hbWVCaW5kaW5ncyA9IG5hbWVCaW5kaW5ncztcbiAgfVxuXG4gIGdldFZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlO1xuICB9XG5cbiAgZ2V0TmFtZUJpbmRpbmdzKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWVCaW5kaW5ncztcbiAgfVxuXG4gIGV2YWx1YXRlKGNvbnRleHQpIHtcbiAgICBjb25zdCBvYmplY3RBc3NpZ25tZW50U3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtvYmplY3RBc3NpZ25tZW50U3RyaW5nfScgb2JqZWN0IGFzc2lnbm1lbnQuLi5gKTtcblxuICAgIGNvbnN0IHRlcm0gPSB0aGlzLnZhcmlhYmxlLmV2YWx1YXRlKGNvbnRleHQpLFxuICAgICAgICAgIHRlcm1UeXBlID0gdGVybS5nZXRUeXBlKCk7XG5cbiAgICBpZiAodGVybVR5cGUgIT09IE5PTUlOQUxfVkFMVUVfVFlQRSkge1xuICAgICAgY29uc3QgdGVybVN0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSdzICcke3Rlcm1UeXBlfScgdHlwZSBzaG91bGQgYmUgJyR7Tk9NSU5BTF9WQUxVRV9UWVBFfScuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIG5vZGVQcm9wZXJ0aWVzLmNvbXBhcmVOYW1lQmluZGluZ3ModGhpcy5uYW1lQmluZGluZ3MsIGNvbnRleHQpO1xuXG4gICAgdGhpcy5uYW1lQmluZGluZ3MuZm9yRWFjaE5hbWVCaW5kaW5nKChuYW1lQmluZGluZykgPT4ge1xuICAgICAgdGhpcy5ldmFsdWF0ZU5hbWVCaW5kaW5nKG5hbWVCaW5kaW5nLCB0ZXJtLCBjb250ZXh0KTtcbiAgICB9KTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgJyR7b2JqZWN0QXNzaWdubWVudFN0cmluZ30nIG9iamVjdCBhc3NpZ25tZW50LmApO1xuICB9XG5cbiAgZXZhbHVhdGVOYW1lQmluZGluZyhuYW1lQmluZGluZywgdGVybSwgY29udGV4dCkge1xuICAgIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpLFxuICAgICAgICAgIG5hbWVCaW5kaW5nU3RyaW5nID0gbmFtZUJpbmRpbmcuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtuYW1lQmluZGluZ1N0cmluZ30nIG5hbWVkIGJpbmRpbmcgYWdhaW5zdCB0aGUgJyR7dGVybVN0cmluZ30nIHRlcm0uLi5gKTtcblxuICAgIGNvbnN0IG5hbWUgPSBuYW1lQmluZGluZy5nZXROYW1lKCk7XG5cbiAgICBzd2l0Y2ggKG5hbWUpIHtcbiAgICAgIGNhc2UgQ09OVEVOVF9QQVJBTUVURVJfTkFNRToge1xuICAgICAgICB0ZXJtID0gdGhpcy5ldmFsdWF0ZUNvbnRlbnROYW1lQmluZGluZyhuYW1lQmluZGluZywgdGVybSwgY29udGV4dCk7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGNhc2UgVEVSTUlOQUxfUEFSQU1FVEVSX05BTUU6IHtcbiAgICAgICAgdGVybSA9IHRoaXMuZXZhbHVhdGVUZXJtaW5hbE5hbWVCaW5kaW5nKG5hbWVCaW5kaW5nLCB0ZXJtLCBjb250ZXh0KTtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgY2FzZSBDSElMRF9OT0RFU19QQVJBTUVURVJfTkFNRToge1xuICAgICAgICB0ZXJtID0gdGhpcy5ldmFsdWF0ZUNoaWxkTm9kZXNOYW1lQmluZGluZyhuYW1lQmluZGluZywgdGVybSwgY29udGV4dCk7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgeyBWYXJpYWJsZSB9ID0gZWxlbWVudHMsXG4gICAgICAgICAgdmFyaWFibGUgPSBWYXJpYWJsZS5mcm9tTmFtZUJpbmRpbmcobmFtZUJpbmRpbmcsIGNvbnRleHQpO1xuXG4gICAgdmFyaWFibGUuYXNzaWduKHRlcm0sIGNvbnRleHQpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHtuYW1lQmluZGluZ1N0cmluZ30nIHBhcmFtZXRlciBuYW1lZCBhZ2FpbnN0IHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybS5gKTtcbiAgfVxuXG4gIGV2YWx1YXRlQ29udGVudE5hbWVCaW5kaW5nKG5hbWVCaW5kaW5nLCB0ZXJtLCBjb250ZXh0KSB7XG4gICAgY29uc3QgdHlwZSA9IG5hbWVCaW5kaW5nLmdldFR5cGUoKSxcbiAgICAgICAgICBuYW1lQmluZGluZ1N0cmluZyA9IG5hbWVCaW5kaW5nLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgY29udGVudCAnJHtuYW1lQmluZGluZ1N0cmluZ30nIG5hbWVkIGJpbmRpbmcuLi5gKTtcblxuICAgIGlmICh0eXBlICE9PSBTVFJJTkdfVFlQRSkge1xuICAgICAgY29uc3QgbmFtZUJpbmRpbmdTdHJpbmcgPSBuYW1lQmluZGluZy5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke25hbWVCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZydzIHR5cGUgc2hvdWxkIGJlICcke1NUUklOR19UWVBFfScuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0IHByaW1pdGl2ZVZhbHVlID0gdGVybS5nZXRQcmltaXRpdmVWYWx1ZSgpLFxuICAgICAgICAgIG5vbWluYWxWYWx1ZSA9IHByaW1pdGl2ZVZhbHVlLCAgLy8vXG4gICAgICAgICAgbm9kZSA9IG5vbWluYWxWYWx1ZS5nZXROb2RlKCksXG4gICAgICAgICAgbm9kZVRlcm1pbmFsTm9kZSA9IG5vZGUuaXNUZXJtaW5hbE5vZGUoKTtcblxuICAgIGlmICghbm9kZVRlcm1pbmFsTm9kZSkge1xuICAgICAgY29uc3QgdGVybVN0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICBtZXNzYWdlID0gYFRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSdzIG5vZGUgbXVzdCBiZSB0ZXJtaW5hbC5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3QgdGVybWluYWxOb2RlID0gbm9kZSwgIC8vL1xuICAgICAgICAgIGNvbnRlbnQgPSB0ZXJtaW5hbE5vZGUuZ2V0Q29udGVudCgpLFxuICAgICAgICAgIHN0cmluZyA9IGNvbnRlbnQsICAvLy9cbiAgICAgICAgICBzdHJpbmdMaXRlcmFsID0gc3RyaW5nTGl0ZXJhbEZyb21TdHJpbmcoc3RyaW5nKTtcblxuICAgIHRlcm0gPSB0ZXJtRnJvbVN0cmluZ0xpdGVyYWwoc3RyaW5nTGl0ZXJhbCwgY29udGV4dCk7XG5cbiAgICBjb25zdCB0ZXJtU3R0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlIGNvbnRlbnQgJyR7bmFtZUJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nIGFzICcke3Rlcm1TdHRyaW5nfScuYCk7XG5cbiAgICByZXR1cm4gdGVybTtcbiAgfVxuXG4gIGV2YWx1YXRlVGVybWluYWxOYW1lQmluZGluZyhuYW1lQmluZGluZywgdGVybSwgY29udGV4dCkge1xuICAgIGNvbnN0IHR5cGUgPSBuYW1lQmluZGluZy5nZXRUeXBlKCksXG4gICAgICAgICAgbmFtZUJpbmRpbmdTdHJpbmcgPSBuYW1lQmluZGluZy5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYEV2YWx1YXRpbmcgdGhlIHRlcm1pbmFsICcke25hbWVCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZy4uLmApO1xuXG4gICAgaWYgKHR5cGUgIT09IEJPT0xFQU5fVFlQRSkge1xuICAgICAgY29uc3QgbmFtZUJpbmRpbmdTdHJpbmcgPSBuYW1lQmluZGluZy5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke25hbWVCaW5kaW5nU3RyaW5nfScgbmFtZWQgYmluZGluZydzIHR5cGUgc2hvdWxkIGJlICcke0JPT0xFQU5fVFlQRX0nLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCBwcmltaXRpdmVWYWx1ZSA9IHRlcm0uZ2V0UHJpbWl0aXZlVmFsdWUoKSxcbiAgICAgICAgICBub21pbmFsVmFsdWUgPSBwcmltaXRpdmVWYWx1ZSwgIC8vL1xuICAgICAgICAgIG5vZGUgPSBub21pbmFsVmFsdWUuZ2V0Tm9kZSgpLFxuICAgICAgICAgIG5vZGVUZXJtaW5hbE5vZGUgPSBub2RlLmlzVGVybWluYWxOb2RlKCksXG4gICAgICAgICAgdGVybWluYWwgPSBub2RlVGVybWluYWxOb2RlOyAgLy8vXG5cbiAgICBjb25zdCBib29sZWFuID0gdGVybWluYWw7IC8vL1xuXG4gICAgdGVybSA9IHRlcm1Gcm9tQm9vbGVhbihib29sZWFuLCBjb250ZXh0KTsgIC8vL1xuXG4gICAgY29uc3QgdGVybVN0dHJpbmcgPSB0ZXJtLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSB0ZXJtaW5hbCAnJHtuYW1lQmluZGluZ1N0cmluZ30nIG5hbWVkIGJpbmRpbmcgYXMgJyR7dGVybVN0dHJpbmd9Jy5gKTtcblxuICAgIHJldHVybiB0ZXJtO1xuICB9XG5cbiAgZXZhbHVhdGVDaGlsZE5vZGVzTmFtZUJpbmRpbmcobmFtZUJpbmRpbmcsIHRlcm0sIGNvbnRleHQpIHtcbiAgICBjb25zdCB0eXBlID0gbmFtZUJpbmRpbmcuZ2V0VHlwZSgpLFxuICAgICAgICAgIG5hbWVCaW5kaW5nU3RyaW5nID0gbmFtZUJpbmRpbmcuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSBjaGlsZCBub2RlcyAnJHtuYW1lQmluZGluZ1N0cmluZ30nIG5hbWVkIGJpbmRpbmcuLi5gKTtcblxuICAgIGlmICh0eXBlICE9PSBOT01JTkFMX1ZBTFVFU19UWVBFKSB7XG4gICAgICBjb25zdCBuYW1lQmluZGluZ1N0cmluZyA9IG5hbWVCaW5kaW5nLmdldFN0cmluZygpLFxuICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7bmFtZUJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nJ3MgdHlwZSBzaG91bGQgYmUgJyR7Tk9NSU5BTF9WQUxVRVNfVFlQRX0nLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCBwcmltaXRpdmVWYWx1ZSA9IHRlcm0uZ2V0UHJpbWl0aXZlVmFsdWUoKSxcbiAgICAgICAgICBub21pbmFsVmFsdWUgPSBwcmltaXRpdmVWYWx1ZSwgIC8vL1xuICAgICAgICAgIG5vZGUgPSBub21pbmFsVmFsdWUuZ2V0Tm9kZSgpLFxuICAgICAgICAgIG5vZGVOb25UZXJtaW5hbE5vZGUgPSBub2RlLmlzTm9uVGVybWluYWxOb2RlKCk7XG5cbiAgICBpZiAoIW5vZGVOb25UZXJtaW5hbE5vZGUpIHtcbiAgICAgIGNvbnN0IHRlcm1TdHJpbmcgPSB0ZXJtLmdldFN0cmluZygpLFxuICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7dGVybVN0cmluZ30nIHRlcm0ncyBub2RlIG11c3QgYmUgbm9uLXRlcm1pbmFsLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb25zdCBub25UZXJtaW5hbE5vZGUgPSBub2RlLCAgLy8vXG4gICAgICAgICAgY2hpbGROb2RlcyA9IG5vblRlcm1pbmFsTm9kZS5nZXRDaGlsZE5vZGVzKCksXG4gICAgICAgICAgbm9kZXMgPSBjaGlsZE5vZGVzOyAgLy8vXG5cbiAgICB0ZXJtID0gdGVybUZyb21Ob2Rlc0FuZE5vbWluYWxWYWx1ZShub2Rlcywgbm9taW5hbFZhbHVlKTtcblxuICAgIGNvbnN0IHRlcm1TdHRyaW5nID0gdGVybS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgY2hpbGROb2RlcyAnJHtuYW1lQmluZGluZ1N0cmluZ30nIG5hbWVkIGJpbmRpbmcgYXMgJyR7dGVybVN0dHJpbmd9Jy5gKTtcblxuICAgIHJldHVybiB0ZXJtO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIk9iamVjdEFzc2lnbWVudFwiO1xufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiT2JqZWN0QXNzaWdtZW50IiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInZhcmlhYmxlIiwibmFtZUJpbmRpbmdzIiwiZ2V0VmFyaWFibGUiLCJnZXROYW1lQmluZGluZ3MiLCJldmFsdWF0ZSIsIm9iamVjdEFzc2lnbm1lbnRTdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsInRlcm0iLCJ0ZXJtVHlwZSIsImdldFR5cGUiLCJOT01JTkFMX1ZBTFVFX1RZUEUiLCJ0ZXJtU3RyaW5nIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwibm9kZVByb3BlcnRpZXMiLCJjb21wYXJlTmFtZUJpbmRpbmdzIiwiZm9yRWFjaE5hbWVCaW5kaW5nIiwibmFtZUJpbmRpbmciLCJldmFsdWF0ZU5hbWVCaW5kaW5nIiwiZGVidWciLCJuYW1lQmluZGluZ1N0cmluZyIsIm5hbWUiLCJnZXROYW1lIiwiQ09OVEVOVF9QQVJBTUVURVJfTkFNRSIsImV2YWx1YXRlQ29udGVudE5hbWVCaW5kaW5nIiwiVEVSTUlOQUxfUEFSQU1FVEVSX05BTUUiLCJldmFsdWF0ZVRlcm1pbmFsTmFtZUJpbmRpbmciLCJDSElMRF9OT0RFU19QQVJBTUVURVJfTkFNRSIsImV2YWx1YXRlQ2hpbGROb2Rlc05hbWVCaW5kaW5nIiwiVmFyaWFibGUiLCJlbGVtZW50cyIsImZyb21OYW1lQmluZGluZyIsImFzc2lnbiIsInR5cGUiLCJTVFJJTkdfVFlQRSIsInByaW1pdGl2ZVZhbHVlIiwiZ2V0UHJpbWl0aXZlVmFsdWUiLCJub21pbmFsVmFsdWUiLCJnZXROb2RlIiwibm9kZVRlcm1pbmFsTm9kZSIsImlzVGVybWluYWxOb2RlIiwidGVybWluYWxOb2RlIiwiY29udGVudCIsImdldENvbnRlbnQiLCJzdHJpbmdMaXRlcmFsIiwic3RyaW5nTGl0ZXJhbEZyb21TdHJpbmciLCJ0ZXJtRnJvbVN0cmluZ0xpdGVyYWwiLCJ0ZXJtU3R0cmluZyIsIkJPT0xFQU5fVFlQRSIsInRlcm1pbmFsIiwiYm9vbGVhbiIsInRlcm1Gcm9tQm9vbGVhbiIsIk5PTUlOQUxfVkFMVUVTX1RZUEUiLCJub2RlTm9uVGVybWluYWxOb2RlIiwiaXNOb25UZXJtaW5hbE5vZGUiLCJub25UZXJtaW5hbE5vZGUiLCJjaGlsZE5vZGVzIiwiZ2V0Q2hpbGROb2RlcyIsIm5vZGVzIiwidGVybUZyb21Ob2Rlc0FuZE5vbWluYWxWYWx1ZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBZUE7OztlQUFBOzs7Z0NBYndCO2tFQUVIO2tFQUNDO3VFQUNLOytCQUdhO3lCQUNLO3NCQUNVO3VCQUM0QjtnQ0FDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7TUFFNUYsV0FBZUEsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyx3QkFBd0JDLHVCQUFPO0lBQ3pELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsUUFBUSxFQUFFQyxZQUFZLENBQUU7UUFDckUsS0FBSyxDQUFDTCxTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLFFBQVEsR0FBR0E7UUFDaEIsSUFBSSxDQUFDQyxZQUFZLEdBQUdBO0lBQ3RCO0lBRUFDLGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQ0YsUUFBUTtJQUN0QjtJQUVBRyxrQkFBa0I7UUFDaEIsT0FBTyxJQUFJLENBQUNGLFlBQVk7SUFDMUI7SUFFQUcsU0FBU1IsT0FBTyxFQUFFO1FBQ2hCLE1BQU1TLHlCQUF5QixJQUFJLENBQUNDLFNBQVMsSUFBSSxHQUFHO1FBRXBEVixRQUFRVyxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRUYsdUJBQXVCLHNCQUFzQixDQUFDO1FBRS9FLE1BQU1HLE9BQU8sSUFBSSxDQUFDUixRQUFRLENBQUNJLFFBQVEsQ0FBQ1IsVUFDOUJhLFdBQVdELEtBQUtFLE9BQU87UUFFN0IsSUFBSUQsYUFBYUUseUJBQWtCLEVBQUU7WUFDbkMsTUFBTUMsYUFBYUosS0FBS0YsU0FBUyxJQUMzQk8sVUFBVSxDQUFDLEtBQUssRUFBRUQsV0FBVyxVQUFVLEVBQUVILFNBQVMsa0JBQWtCLEVBQUVFLHlCQUFrQixDQUFDLEVBQUUsQ0FBQyxFQUM1RkcsWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSDtZQUV4QyxNQUFNQztRQUNSO1FBRUFHLHVCQUFjLENBQUNDLG1CQUFtQixDQUFDLElBQUksQ0FBQ2pCLFlBQVksRUFBRUw7UUFFdEQsSUFBSSxDQUFDSyxZQUFZLENBQUNrQixrQkFBa0IsQ0FBQyxDQUFDQztZQUNwQyxJQUFJLENBQUNDLG1CQUFtQixDQUFDRCxhQUFhWixNQUFNWjtRQUM5QztRQUVBQSxRQUFRMEIsS0FBSyxDQUFDLENBQUMsa0JBQWtCLEVBQUVqQix1QkFBdUIsb0JBQW9CLENBQUM7SUFDakY7SUFFQWdCLG9CQUFvQkQsV0FBVyxFQUFFWixJQUFJLEVBQUVaLE9BQU8sRUFBRTtRQUM5QyxNQUFNZ0IsYUFBYUosS0FBS0YsU0FBUyxJQUMzQmlCLG9CQUFvQkgsWUFBWWQsU0FBUztRQUUvQ1YsUUFBUVcsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLEVBQUVnQixrQkFBa0IsNkJBQTZCLEVBQUVYLFdBQVcsU0FBUyxDQUFDO1FBRXZHLE1BQU1ZLE9BQU9KLFlBQVlLLE9BQU87UUFFaEMsT0FBUUQ7WUFDTixLQUFLRSxzQ0FBc0I7Z0JBQUU7b0JBQzNCbEIsT0FBTyxJQUFJLENBQUNtQiwwQkFBMEIsQ0FBQ1AsYUFBYVosTUFBTVo7b0JBRTFEO2dCQUNGO1lBRUEsS0FBS2dDLHVDQUF1QjtnQkFBRTtvQkFDNUJwQixPQUFPLElBQUksQ0FBQ3FCLDJCQUEyQixDQUFDVCxhQUFhWixNQUFNWjtvQkFFM0Q7Z0JBQ0Y7WUFFQSxLQUFLa0MsMENBQTBCO2dCQUFFO29CQUMvQnRCLE9BQU8sSUFBSSxDQUFDdUIsNkJBQTZCLENBQUNYLGFBQWFaLE1BQU1aO29CQUU3RDtnQkFDRjtRQUNGO1FBRUEsTUFBTSxFQUFFb0MsUUFBUSxFQUFFLEdBQUdDLGlCQUFRLEVBQ3ZCakMsV0FBV2dDLFNBQVNFLGVBQWUsQ0FBQ2QsYUFBYXhCO1FBRXZESSxTQUFTbUMsTUFBTSxDQUFDM0IsTUFBTVo7UUFFdEJBLFFBQVEwQixLQUFLLENBQUMsQ0FBQyxrQkFBa0IsRUFBRUMsa0JBQWtCLCtCQUErQixFQUFFWCxXQUFXLE9BQU8sQ0FBQztJQUMzRztJQUVBZSwyQkFBMkJQLFdBQVcsRUFBRVosSUFBSSxFQUFFWixPQUFPLEVBQUU7UUFDckQsTUFBTXdDLE9BQU9oQixZQUFZVixPQUFPLElBQzFCYSxvQkFBb0JILFlBQVlkLFNBQVM7UUFFL0NWLFFBQVFXLEtBQUssQ0FBQyxDQUFDLHdCQUF3QixFQUFFZ0Isa0JBQWtCLGtCQUFrQixDQUFDO1FBRTlFLElBQUlhLFNBQVNDLGtCQUFXLEVBQUU7WUFDeEIsTUFBTWQsb0JBQW9CSCxZQUFZZCxTQUFTLElBQ3pDTyxVQUFVLENBQUMsS0FBSyxFQUFFVSxrQkFBa0Isa0NBQWtDLEVBQUVjLGtCQUFXLENBQUMsRUFBRSxDQUFDLEVBQ3ZGdkIsWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSDtZQUV4QyxNQUFNQztRQUNSO1FBRUEsTUFBTXdCLGlCQUFpQjlCLEtBQUsrQixpQkFBaUIsSUFDdkNDLGVBQWVGLGdCQUNmeEMsT0FBTzBDLGFBQWFDLE9BQU8sSUFDM0JDLG1CQUFtQjVDLEtBQUs2QyxjQUFjO1FBRTVDLElBQUksQ0FBQ0Qsa0JBQWtCO1lBQ3JCLE1BQU05QixhQUFhSixLQUFLRixTQUFTLElBQzNCTyxVQUFVLENBQUMsS0FBSyxFQUFFRCxXQUFXLCtCQUErQixDQUFDLEVBQzdERSxZQUFZQyxrQkFBUyxDQUFDQyxXQUFXLENBQUNIO1lBRXhDLE1BQU1DO1FBQ1I7UUFFQSxNQUFNOEIsZUFBZTlDLE1BQ2YrQyxVQUFVRCxhQUFhRSxVQUFVLElBQ2pDakQsU0FBU2dELFNBQ1RFLGdCQUFnQkMsSUFBQUEsc0NBQXVCLEVBQUNuRDtRQUU5Q1csT0FBT3lDLElBQUFBLDJCQUFxQixFQUFDRixlQUFlbkQ7UUFFNUMsTUFBTXNELGNBQWMxQyxLQUFLRixTQUFTO1FBRWxDVixRQUFRMEIsS0FBSyxDQUFDLENBQUMsMEJBQTBCLEVBQUVDLGtCQUFrQixvQkFBb0IsRUFBRTJCLFlBQVksRUFBRSxDQUFDO1FBRWxHLE9BQU8xQztJQUNUO0lBRUFxQiw0QkFBNEJULFdBQVcsRUFBRVosSUFBSSxFQUFFWixPQUFPLEVBQUU7UUFDdEQsTUFBTXdDLE9BQU9oQixZQUFZVixPQUFPLElBQzFCYSxvQkFBb0JILFlBQVlkLFNBQVM7UUFFL0NWLFFBQVFXLEtBQUssQ0FBQyxDQUFDLHlCQUF5QixFQUFFZ0Isa0JBQWtCLGtCQUFrQixDQUFDO1FBRS9FLElBQUlhLFNBQVNlLG1CQUFZLEVBQUU7WUFDekIsTUFBTTVCLG9CQUFvQkgsWUFBWWQsU0FBUyxJQUN6Q08sVUFBVSxDQUFDLEtBQUssRUFBRVUsa0JBQWtCLGtDQUFrQyxFQUFFNEIsbUJBQVksQ0FBQyxFQUFFLENBQUMsRUFDeEZyQyxZQUFZQyxrQkFBUyxDQUFDQyxXQUFXLENBQUNIO1lBRXhDLE1BQU1DO1FBQ1I7UUFFQSxNQUFNd0IsaUJBQWlCOUIsS0FBSytCLGlCQUFpQixJQUN2Q0MsZUFBZUYsZ0JBQ2Z4QyxPQUFPMEMsYUFBYUMsT0FBTyxJQUMzQkMsbUJBQW1CNUMsS0FBSzZDLGNBQWMsSUFDdENTLFdBQVdWLGtCQUFtQixHQUFHO1FBRXZDLE1BQU1XLFVBQVVELFVBQVUsR0FBRztRQUU3QjVDLE9BQU84QyxJQUFBQSxxQkFBZSxFQUFDRCxTQUFTekQsVUFBVyxHQUFHO1FBRTlDLE1BQU1zRCxjQUFjMUMsS0FBS0YsU0FBUztRQUVsQ1YsUUFBUTBCLEtBQUssQ0FBQyxDQUFDLDJCQUEyQixFQUFFQyxrQkFBa0Isb0JBQW9CLEVBQUUyQixZQUFZLEVBQUUsQ0FBQztRQUVuRyxPQUFPMUM7SUFDVDtJQUVBdUIsOEJBQThCWCxXQUFXLEVBQUVaLElBQUksRUFBRVosT0FBTyxFQUFFO1FBQ3hELE1BQU13QyxPQUFPaEIsWUFBWVYsT0FBTyxJQUMxQmEsb0JBQW9CSCxZQUFZZCxTQUFTO1FBRS9DVixRQUFRVyxLQUFLLENBQUMsQ0FBQyw0QkFBNEIsRUFBRWdCLGtCQUFrQixrQkFBa0IsQ0FBQztRQUVsRixJQUFJYSxTQUFTbUIsMEJBQW1CLEVBQUU7WUFDaEMsTUFBTWhDLG9CQUFvQkgsWUFBWWQsU0FBUyxJQUN6Q08sVUFBVSxDQUFDLEtBQUssRUFBRVUsa0JBQWtCLGtDQUFrQyxFQUFFZ0MsMEJBQW1CLENBQUMsRUFBRSxDQUFDLEVBQy9GekMsWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSDtZQUV4QyxNQUFNQztRQUNSO1FBRUEsTUFBTXdCLGlCQUFpQjlCLEtBQUsrQixpQkFBaUIsSUFDdkNDLGVBQWVGLGdCQUNmeEMsT0FBTzBDLGFBQWFDLE9BQU8sSUFDM0JlLHNCQUFzQjFELEtBQUsyRCxpQkFBaUI7UUFFbEQsSUFBSSxDQUFDRCxxQkFBcUI7WUFDeEIsTUFBTTVDLGFBQWFKLEtBQUtGLFNBQVMsSUFDM0JPLFVBQVUsQ0FBQyxLQUFLLEVBQUVELFdBQVcsbUNBQW1DLENBQUMsRUFDakVFLFlBQVlDLGtCQUFTLENBQUNDLFdBQVcsQ0FBQ0g7WUFFeEMsTUFBTUM7UUFDUjtRQUVBLE1BQU00QyxrQkFBa0I1RCxNQUNsQjZELGFBQWFELGdCQUFnQkUsYUFBYSxJQUMxQ0MsUUFBUUYsWUFBYSxHQUFHO1FBRTlCbkQsT0FBT3NELElBQUFBLHFDQUE0QixFQUFDRCxPQUFPckI7UUFFM0MsTUFBTVUsY0FBYzFDLEtBQUtGLFNBQVM7UUFFbENWLFFBQVEwQixLQUFLLENBQUMsQ0FBQyw2QkFBNkIsRUFBRUMsa0JBQWtCLG9CQUFvQixFQUFFMkIsWUFBWSxFQUFFLENBQUM7UUFFckcsT0FBTzFDO0lBQ1Q7SUFFQSxPQUFPZ0IsT0FBTyxrQkFBa0I7QUFDbEMifQ==
@@ -0,0 +1,68 @@
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 _exception = /*#__PURE__*/ _interop_require_default(require("../../exception"));
13
+ const _elements = require("../../elements");
14
+ function _interop_require_default(obj) {
15
+ return obj && obj.__esModule ? obj : {
16
+ default: obj
17
+ };
18
+ }
19
+ const _default = (0, _elements.define)(class NamedBinding extends _occamlanguages.Element {
20
+ constructor(context, string, node, breakPoint, type, name, alias){
21
+ super(context, string, node, breakPoint);
22
+ this.type = type;
23
+ this.name = name;
24
+ this.alias = alias;
25
+ }
26
+ getType() {
27
+ return this.type;
28
+ }
29
+ getName() {
30
+ return this.name;
31
+ }
32
+ getAlias() {
33
+ return this.alias;
34
+ }
35
+ isAliased() {
36
+ const aliased = this.alias !== null;
37
+ return aliased;
38
+ }
39
+ getAliasedName() {
40
+ const aliased = this.isAliased(), aliasedName = aliased ? this.alias : this.name; ///
41
+ return aliasedName;
42
+ }
43
+ compareTerm(term, context) {
44
+ const termString = term.getString(), namedBindingString = this.getString(); ///
45
+ context.trace(`Comparing the '${termString}' term with the '${namedBindingString}' named binding...`);
46
+ const termType = term.getType();
47
+ if (this.type !== termType) {
48
+ const message = `The '${termString}' term's '${termType}' type is not equal to '${namedBindingString}' named binding's '${this.type}' type.`, exception = _exception.default.fromMessage(message);
49
+ throw exception;
50
+ }
51
+ context.debug(`...compared the '${termString}' term with the '${namedBindingString}' named binding.`);
52
+ }
53
+ compareNamedBinding(namedBinding, context) {
54
+ let namedBindingCompares;
55
+ const namedBindingA = this, namedBindingB = namedBinding; ///
56
+ const namedBindingAString = namedBindingA.getString(), namedBindingBString = namedBindingB.getString();
57
+ context.trace(`Comparing the '${namedBindingAString}' named binding with the '${namedBindingBString}' named binding...`);
58
+ const name = namedBinding.getName(), type = namedBinding.getType();
59
+ namedBindingCompares = this.name === name && this.type === type;
60
+ if (namedBindingCompares) {
61
+ context.debug(`...compared the '${namedBindingAString}' named binding with the '${namedBindingBString}' named binding.`);
62
+ }
63
+ return namedBindingCompares;
64
+ }
65
+ static name = "NamedBinding";
66
+ });
67
+
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2JpbmRpbmcvbmFtZWQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uLy4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vLi4vZWxlbWVudHNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIE5hbWVkQmluZGluZyBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHR5cGUsIG5hbWUsIGFsaWFzKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICB0aGlzLmFsaWFzID0gYWxpYXM7XG4gIH1cblxuICBnZXRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGU7XG4gIH1cblxuICBnZXROYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cblxuICBnZXRBbGlhcygpIHtcbiAgICByZXR1cm4gdGhpcy5hbGlhcztcbiAgfVxuXG4gIGlzQWxpYXNlZCgpIHtcbiAgICBjb25zdCBhbGlhc2VkID0gKHRoaXMuYWxpYXMgIT09IG51bGwpO1xuXG4gICAgcmV0dXJuIGFsaWFzZWQ7XG4gIH1cblxuICBnZXRBbGlhc2VkTmFtZSgpIHtcbiAgICBjb25zdCBhbGlhc2VkID0gdGhpcy5pc0FsaWFzZWQoKSxcbiAgICAgICAgICBhbGlhc2VkTmFtZSA9IGFsaWFzZWQgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFsaWFzIDogIC8vL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubmFtZTsgLy8vXG5cbiAgICByZXR1cm4gYWxpYXNlZE5hbWU7XG4gIH1cblxuICBjb21wYXJlVGVybSh0ZXJtLCBjb250ZXh0KSB7XG4gICAgY29uc3QgdGVybVN0cmluZyA9IHRlcm0uZ2V0U3RyaW5nKCksXG4gICAgICAgICAgbmFtZWRCaW5kaW5nU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgQ29tcGFyaW5nIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSB3aXRoIHRoZSAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nLi4uYCk7XG5cbiAgICBjb25zdCB0ZXJtVHlwZSA9IHRlcm0uZ2V0VHlwZSgpO1xuXG4gICAgaWYgKHRoaXMudHlwZSAhPT0gdGVybVR5cGUpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgVGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtJ3MgJyR7dGVybVR5cGV9JyB0eXBlIGlzIG5vdCBlcXVhbCB0byAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZCBiaW5kaW5nJ3MgJyR7dGhpcy50eXBlfScgdHlwZS5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uY29tcGFyZWQgdGhlICcke3Rlcm1TdHJpbmd9JyB0ZXJtIHdpdGggdGhlICcke25hbWVkQmluZGluZ1N0cmluZ30nIG5hbWVkIGJpbmRpbmcuYCk7XG4gIH1cblxuICBjb21wYXJlTmFtZWRCaW5kaW5nKG5hbWVkQmluZGluZywgY29udGV4dCkge1xuICAgIGxldCBuYW1lZEJpbmRpbmdDb21wYXJlcztcblxuICAgIGNvbnN0IG5hbWVkQmluZGluZ0EgPSB0aGlzLCAgLy8vXG4gICAgICAgICAgbmFtZWRCaW5kaW5nQiA9IG5hbWVkQmluZGluZzsgLy8vXG5cbiAgICBjb25zdCBuYW1lZEJpbmRpbmdBU3RyaW5nID0gbmFtZWRCaW5kaW5nQS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBuYW1lZEJpbmRpbmdCU3RyaW5nID0gbmFtZWRCaW5kaW5nQi5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQudHJhY2UoYENvbXBhcmluZyB0aGUgJyR7bmFtZWRCaW5kaW5nQVN0cmluZ30nIG5hbWVkIGJpbmRpbmcgd2l0aCB0aGUgJyR7bmFtZWRCaW5kaW5nQlN0cmluZ30nIG5hbWVkIGJpbmRpbmcuLi5gKTtcblxuICAgIGNvbnN0IG5hbWUgPSBuYW1lZEJpbmRpbmcuZ2V0TmFtZSgpLFxuICAgICAgICAgIHR5cGUgPSBuYW1lZEJpbmRpbmcuZ2V0VHlwZSgpO1xuXG4gICAgbmFtZWRCaW5kaW5nQ29tcGFyZXMgPSAoKHRoaXMubmFtZSA9PT0gbmFtZSkgJiYgKHRoaXMudHlwZSA9PT0gdHlwZSkpO1xuXG4gICAgaWYgKG5hbWVkQmluZGluZ0NvbXBhcmVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi5jb21wYXJlZCB0aGUgJyR7bmFtZWRCaW5kaW5nQVN0cmluZ30nIG5hbWVkIGJpbmRpbmcgd2l0aCB0aGUgJyR7bmFtZWRCaW5kaW5nQlN0cmluZ30nIG5hbWVkIGJpbmRpbmcuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5hbWVkQmluZGluZ0NvbXBhcmVzO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIk5hbWVkQmluZGluZ1wiO1xufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiTmFtZWRCaW5kaW5nIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInR5cGUiLCJuYW1lIiwiYWxpYXMiLCJnZXRUeXBlIiwiZ2V0TmFtZSIsImdldEFsaWFzIiwiaXNBbGlhc2VkIiwiYWxpYXNlZCIsImdldEFsaWFzZWROYW1lIiwiYWxpYXNlZE5hbWUiLCJjb21wYXJlVGVybSIsInRlcm0iLCJ0ZXJtU3RyaW5nIiwiZ2V0U3RyaW5nIiwibmFtZWRCaW5kaW5nU3RyaW5nIiwidHJhY2UiLCJ0ZXJtVHlwZSIsIm1lc3NhZ2UiLCJleGNlcHRpb24iLCJFeGNlcHRpb24iLCJmcm9tTWVzc2FnZSIsImRlYnVnIiwiY29tcGFyZU5hbWVkQmluZGluZyIsIm5hbWVkQmluZGluZyIsIm5hbWVkQmluZGluZ0NvbXBhcmVzIiwibmFtZWRCaW5kaW5nQSIsIm5hbWVkQmluZGluZ0IiLCJuYW1lZEJpbmRpbmdBU3RyaW5nIiwibmFtZWRCaW5kaW5nQlN0cmluZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBUUE7OztlQUFBOzs7Z0NBTndCO2tFQUVGOzBCQUVDOzs7Ozs7TUFFdkIsV0FBZUEsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxxQkFBcUJDLHVCQUFPO0lBQ3RELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsSUFBSSxFQUFFQyxJQUFJLEVBQUVDLEtBQUssQ0FBRTtRQUNoRSxLQUFLLENBQUNOLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsS0FBSyxHQUFHQTtJQUNmO0lBRUFDLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQ0gsSUFBSTtJQUNsQjtJQUVBSSxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUNILElBQUk7SUFDbEI7SUFFQUksV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDSCxLQUFLO0lBQ25CO0lBRUFJLFlBQVk7UUFDVixNQUFNQyxVQUFXLElBQUksQ0FBQ0wsS0FBSyxLQUFLO1FBRWhDLE9BQU9LO0lBQ1Q7SUFFQUMsaUJBQWlCO1FBQ2YsTUFBTUQsVUFBVSxJQUFJLENBQUNELFNBQVMsSUFDeEJHLGNBQWNGLFVBQ0UsSUFBSSxDQUFDTCxLQUFLLEdBQ1IsSUFBSSxDQUFDRCxJQUFJLEVBQUUsR0FBRztRQUV0QyxPQUFPUTtJQUNUO0lBRUFDLFlBQVlDLElBQUksRUFBRWYsT0FBTyxFQUFFO1FBQ3pCLE1BQU1nQixhQUFhRCxLQUFLRSxTQUFTLElBQzNCQyxxQkFBcUIsSUFBSSxDQUFDRCxTQUFTLElBQUssR0FBRztRQUVqRGpCLFFBQVFtQixLQUFLLENBQUMsQ0FBQyxlQUFlLEVBQUVILFdBQVcsaUJBQWlCLEVBQUVFLG1CQUFtQixrQkFBa0IsQ0FBQztRQUVwRyxNQUFNRSxXQUFXTCxLQUFLUixPQUFPO1FBRTdCLElBQUksSUFBSSxDQUFDSCxJQUFJLEtBQUtnQixVQUFVO1lBQzFCLE1BQU1DLFVBQVUsQ0FBQyxLQUFLLEVBQUVMLFdBQVcsVUFBVSxFQUFFSSxTQUFTLHdCQUF3QixFQUFFRixtQkFBbUIsbUJBQW1CLEVBQUUsSUFBSSxDQUFDZCxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQ3RJa0IsWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSDtZQUV4QyxNQUFNQztRQUNSO1FBRUF0QixRQUFReUIsS0FBSyxDQUFDLENBQUMsaUJBQWlCLEVBQUVULFdBQVcsaUJBQWlCLEVBQUVFLG1CQUFtQixnQkFBZ0IsQ0FBQztJQUN0RztJQUVBUSxvQkFBb0JDLFlBQVksRUFBRTNCLE9BQU8sRUFBRTtRQUN6QyxJQUFJNEI7UUFFSixNQUFNQyxnQkFBZ0IsSUFBSSxFQUNwQkMsZ0JBQWdCSCxjQUFjLEdBQUc7UUFFdkMsTUFBTUksc0JBQXNCRixjQUFjWixTQUFTLElBQzdDZSxzQkFBc0JGLGNBQWNiLFNBQVM7UUFFbkRqQixRQUFRbUIsS0FBSyxDQUFDLENBQUMsZUFBZSxFQUFFWSxvQkFBb0IsMEJBQTBCLEVBQUVDLG9CQUFvQixrQkFBa0IsQ0FBQztRQUV2SCxNQUFNM0IsT0FBT3NCLGFBQWFuQixPQUFPLElBQzNCSixPQUFPdUIsYUFBYXBCLE9BQU87UUFFakNxQix1QkFBd0IsQUFBQyxJQUFJLENBQUN2QixJQUFJLEtBQUtBLFFBQVUsSUFBSSxDQUFDRCxJQUFJLEtBQUtBO1FBRS9ELElBQUl3QixzQkFBc0I7WUFDeEI1QixRQUFReUIsS0FBSyxDQUFDLENBQUMsaUJBQWlCLEVBQUVNLG9CQUFvQiwwQkFBMEIsRUFBRUMsb0JBQW9CLGdCQUFnQixDQUFDO1FBQ3pIO1FBRUEsT0FBT0o7SUFDVDtJQUVBLE9BQU92QixPQUFPLGVBQWU7QUFDL0IifQ==
@@ -0,0 +1,44 @@
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 _exception = /*#__PURE__*/ _interop_require_default(require("../exception"));
13
+ const _elements = require("../elements");
14
+ function _interop_require_default(obj) {
15
+ return obj && obj.__esModule ? obj : {
16
+ default: obj
17
+ };
18
+ }
19
+ const _default = (0, _elements.define)(class Binding extends _occamlanguages.Element {
20
+ constructor(context, string, node, breakPoint, type, name){
21
+ super(context, string, node, breakPoint);
22
+ this.type = type;
23
+ this.name = name;
24
+ }
25
+ getType() {
26
+ return this.type;
27
+ }
28
+ getName() {
29
+ return this.name;
30
+ }
31
+ compareTerm(term, context) {
32
+ const termString = term.getString(), bindingString = this.getString(); ///
33
+ context.trace(`Comparing the '${termString}' term against the '${bindingString}' binding...`);
34
+ const termType = term.getType();
35
+ if (this.type !== termType) {
36
+ const message = `The '${termString}' term's '${termType}' type is not equal to the '${bindingString}' binding's '${this.type}' type.`, exception = _exception.default.fromMessage(message);
37
+ throw exception;
38
+ }
39
+ context.debug(`...comparing the '${termString}' term against the '${bindingString}' binding.`);
40
+ }
41
+ static name = "Binding";
42
+ });
43
+
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2JpbmRpbmcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIEJpbmRpbmcgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB0eXBlLCBuYW1lKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgfVxuXG4gIGdldFR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZTtcbiAgfVxuXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIGNvbXBhcmVUZXJtKHRlcm0sIGNvbnRleHQpIHtcbiAgICBjb25zdCB0ZXJtU3RyaW5nID0gdGVybS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBiaW5kaW5nU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgQ29tcGFyaW5nIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSBhZ2FpbnN0IHRoZSAnJHtiaW5kaW5nU3RyaW5nfScgYmluZGluZy4uLmApO1xuXG4gICAgY29uc3QgdGVybVR5cGUgPSB0ZXJtLmdldFR5cGUoKTtcblxuICAgIGlmICh0aGlzLnR5cGUgIT09IHRlcm1UeXBlKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSdzICcke3Rlcm1UeXBlfScgdHlwZSBpcyBub3QgZXF1YWwgdG8gdGhlICcke2JpbmRpbmdTdHJpbmd9JyBiaW5kaW5nJ3MgJyR7dGhpcy50eXBlfScgdHlwZS5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uY29tcGFyaW5nIHRoZSAnJHt0ZXJtU3RyaW5nfScgdGVybSBhZ2FpbnN0IHRoZSAnJHtiaW5kaW5nU3RyaW5nfScgYmluZGluZy5gKTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJCaW5kaW5nXCI7XG59KTtcbiJdLCJuYW1lcyI6WyJkZWZpbmUiLCJCaW5kaW5nIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInR5cGUiLCJuYW1lIiwiZ2V0VHlwZSIsImdldE5hbWUiLCJjb21wYXJlVGVybSIsInRlcm0iLCJ0ZXJtU3RyaW5nIiwiZ2V0U3RyaW5nIiwiYmluZGluZ1N0cmluZyIsInRyYWNlIiwidGVybVR5cGUiLCJtZXNzYWdlIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJkZWJ1ZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBUUE7OztlQUFBOzs7Z0NBTndCO2tFQUVGOzBCQUVDOzs7Ozs7TUFFdkIsV0FBZUEsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxnQkFBZ0JDLHVCQUFPO0lBQ2pELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsSUFBSSxFQUFFQyxJQUFJLENBQUU7UUFDekQsS0FBSyxDQUFDTCxTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLElBQUksR0FBR0E7SUFDZDtJQUVBQyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUNGLElBQUk7SUFDbEI7SUFFQUcsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDRixJQUFJO0lBQ2xCO0lBRUFHLFlBQVlDLElBQUksRUFBRVQsT0FBTyxFQUFFO1FBQ3pCLE1BQU1VLGFBQWFELEtBQUtFLFNBQVMsSUFDM0JDLGdCQUFnQixJQUFJLENBQUNELFNBQVMsSUFBSyxHQUFHO1FBRTVDWCxRQUFRYSxLQUFLLENBQUMsQ0FBQyxlQUFlLEVBQUVILFdBQVcsb0JBQW9CLEVBQUVFLGNBQWMsWUFBWSxDQUFDO1FBRTVGLE1BQU1FLFdBQVdMLEtBQUtILE9BQU87UUFFN0IsSUFBSSxJQUFJLENBQUNGLElBQUksS0FBS1UsVUFBVTtZQUMxQixNQUFNQyxVQUFVLENBQUMsS0FBSyxFQUFFTCxXQUFXLFVBQVUsRUFBRUksU0FBUyw0QkFBNEIsRUFBRUYsY0FBYyxhQUFhLEVBQUUsSUFBSSxDQUFDUixJQUFJLENBQUMsT0FBTyxDQUFDLEVBQy9IWSxZQUFZQyxrQkFBUyxDQUFDQyxXQUFXLENBQUNIO1lBRXhDLE1BQU1DO1FBQ1I7UUFFQWhCLFFBQVFtQixLQUFLLENBQUMsQ0FBQyxrQkFBa0IsRUFBRVQsV0FBVyxvQkFBb0IsRUFBRUUsY0FBYyxVQUFVLENBQUM7SUFDL0Y7SUFFQSxPQUFPUCxPQUFPLFVBQVU7QUFDMUIifQ==
@@ -0,0 +1,84 @@
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 _exception = /*#__PURE__*/ _interop_require_default(require("../../exception"));
13
+ const _elements = require("../../elements");
14
+ function _interop_require_default(obj) {
15
+ return obj && obj.__esModule ? obj : {
16
+ default: obj
17
+ };
18
+ }
19
+ const _default = (0, _elements.define)(class NamedBindings extends _occamlanguages.Element {
20
+ constructor(context, string, node, breakPoint, array){
21
+ super(context, string, node, breakPoint);
22
+ this.array = array;
23
+ }
24
+ getArray() {
25
+ return this.array;
26
+ }
27
+ getLength() {
28
+ const length = this.array.length;
29
+ return length;
30
+ }
31
+ getNamedBinding(index) {
32
+ const namedBinding = this.array[index] || null;
33
+ return namedBinding;
34
+ }
35
+ someNamedBinding(callback) {
36
+ return this.array.some(callback);
37
+ }
38
+ forEachNamedBinding(callback) {
39
+ this.array.forEach(callback);
40
+ }
41
+ compareTerms(terms, context) {
42
+ const termsString = terms.getString(), namedBindingsString = this.getString(); ///
43
+ context.trace(`Comparing the '${termsString}' terms with the '${namedBindingsString}' named bindings...`);
44
+ const termsLength = terms.getLength(), namedBindingsLength = this.getLength();
45
+ if (termsLength !== namedBindingsLength) {
46
+ const message = `The '${termsString}' terms and '${namedBindingsString}' named bindings are not of the same length.`, exception = _exception.default.fromMessage(message);
47
+ throw exception;
48
+ }
49
+ this.forEachNamedBinding((namedBinding, index)=>{
50
+ if (namedBinding !== null) {
51
+ const term = terms.getTerm(index);
52
+ namedBinding.compareTerm(term, context);
53
+ }
54
+ });
55
+ context.debug(`...compared the '${termsString}' terms with the '${namedBindingsString}' named bindings.`);
56
+ }
57
+ compareNamedBinding(namedBinding, context) {
58
+ const namedBindingString = namedBinding.getString(), namedBindingsString = this.getString(); ///
59
+ context.trace(`Comparing the '${namedBindingString}' namedBinding with the '${namedBindingsString}' named bindings...`);
60
+ const namedBindingA = namedBinding, namedBindingCompares = this.someNamedBinding((namedBinding)=>{
61
+ if (namedBinding !== null) {
62
+ const namedBindingB = namedBinding, namedBindingBComparesToNamedBindingA = namedBindingA.compareNamedBinding(namedBindingB, context);
63
+ if (namedBindingBComparesToNamedBindingA) {
64
+ return true;
65
+ }
66
+ }
67
+ });
68
+ if (!namedBindingCompares) {
69
+ const message = `The '${namedBindingString}' namedBinding does not compare to any of the '${namedBindingsString}' named bindings.`, exception = _exception.default.fromMessage(message);
70
+ throw exception;
71
+ }
72
+ context.debug(`...compared the '${namedBindingString}' namedBinding with the '${namedBindingsString}' named bindings.`);
73
+ }
74
+ compareNamedBindings(namedBindings, context) {
75
+ namedBindings.forEachNamedBinding((namedBinding)=>{
76
+ if (namedBinding !== null) {
77
+ this.compareNamedBinding(namedBinding, context);
78
+ }
79
+ });
80
+ }
81
+ static name = "NamedBindings";
82
+ });
83
+
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbGVtZW50L2JpbmRpbmdzL25hbWVkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi8uLi9leGNlcHRpb25cIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uLy4uL2VsZW1lbnRzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBOYW1lZEJpbmRpbmdzIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgYXJyYXkpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy5hcnJheSA9IGFycmF5O1xuICB9XG5cbiAgZ2V0QXJyYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXJyYXk7XG4gIH1cblxuICBnZXRMZW5ndGgoKSB7XG4gICAgY29uc3QgbGVuZ3RoID0gdGhpcy5hcnJheS5sZW5ndGg7XG5cbiAgICByZXR1cm4gbGVuZ3RoO1xuICB9XG5cbiAgZ2V0TmFtZWRCaW5kaW5nKGluZGV4KSB7XG4gICAgY29uc3QgbmFtZWRCaW5kaW5nID0gdGhpcy5hcnJheVtpbmRleF0gfHwgbnVsbDtcblxuICAgIHJldHVybiBuYW1lZEJpbmRpbmc7XG4gIH1cblxuICBzb21lTmFtZWRCaW5kaW5nKGNhbGxiYWNrKSB7IHJldHVybiB0aGlzLmFycmF5LnNvbWUoY2FsbGJhY2spOyB9XG5cbiAgZm9yRWFjaE5hbWVkQmluZGluZyhjYWxsYmFjaykgeyB0aGlzLmFycmF5LmZvckVhY2goY2FsbGJhY2spOyB9XG5cbiAgY29tcGFyZVRlcm1zKHRlcm1zLCBjb250ZXh0KSB7XG4gICAgY29uc3QgdGVybXNTdHJpbmcgPSB0ZXJtcy5nZXRTdHJpbmcoKSxcbiAgICAgICAgICBuYW1lZEJpbmRpbmdzU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBDb21wYXJpbmcgdGhlICcke3Rlcm1zU3RyaW5nfScgdGVybXMgd2l0aCB0aGUgJyR7bmFtZWRCaW5kaW5nc1N0cmluZ30nIG5hbWVkIGJpbmRpbmdzLi4uYCk7XG5cbiAgICBjb25zdCB0ZXJtc0xlbmd0aCA9IHRlcm1zLmdldExlbmd0aCgpLFxuICAgICAgICAgIG5hbWVkQmluZGluZ3NMZW5ndGggPSB0aGlzLmdldExlbmd0aCgpO1xuXG4gICAgaWYgKHRlcm1zTGVuZ3RoICE9PSBuYW1lZEJpbmRpbmdzTGVuZ3RoKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSAnJHt0ZXJtc1N0cmluZ30nIHRlcm1zIGFuZCAnJHtuYW1lZEJpbmRpbmdzU3RyaW5nfScgbmFtZWQgYmluZGluZ3MgYXJlIG5vdCBvZiB0aGUgc2FtZSBsZW5ndGguYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIHRoaXMuZm9yRWFjaE5hbWVkQmluZGluZygobmFtZWRCaW5kaW5nLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKG5hbWVkQmluZGluZyAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCB0ZXJtID0gdGVybXMuZ2V0VGVybShpbmRleCk7XG5cbiAgICAgICAgbmFtZWRCaW5kaW5nLmNvbXBhcmVUZXJtKHRlcm0sIGNvbnRleHQpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uY29tcGFyZWQgdGhlICcke3Rlcm1zU3RyaW5nfScgdGVybXMgd2l0aCB0aGUgJyR7bmFtZWRCaW5kaW5nc1N0cmluZ30nIG5hbWVkIGJpbmRpbmdzLmApO1xuICB9XG5cbiAgY29tcGFyZU5hbWVkQmluZGluZyhuYW1lZEJpbmRpbmcsIGNvbnRleHQpIHtcbiAgICBjb25zdCBuYW1lZEJpbmRpbmdTdHJpbmcgPSBuYW1lZEJpbmRpbmcuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgbmFtZWRCaW5kaW5nc1N0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgQ29tcGFyaW5nIHRoZSAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZEJpbmRpbmcgd2l0aCB0aGUgJyR7bmFtZWRCaW5kaW5nc1N0cmluZ30nIG5hbWVkIGJpbmRpbmdzLi4uYCk7XG5cbiAgICBjb25zdCBuYW1lZEJpbmRpbmdBID0gbmFtZWRCaW5kaW5nLCAvLy9cbiAgICAgICAgICBuYW1lZEJpbmRpbmdDb21wYXJlcyA9IHRoaXMuc29tZU5hbWVkQmluZGluZygobmFtZWRCaW5kaW5nKSA9PiB7XG4gICAgICAgICAgICBpZiAobmFtZWRCaW5kaW5nICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIGNvbnN0IG5hbWVkQmluZGluZ0IgPSBuYW1lZEJpbmRpbmcsIC8vL1xuICAgICAgICAgICAgICAgICAgICBuYW1lZEJpbmRpbmdCQ29tcGFyZXNUb05hbWVkQmluZGluZ0EgPSBuYW1lZEJpbmRpbmdBLmNvbXBhcmVOYW1lZEJpbmRpbmcobmFtZWRCaW5kaW5nQiwgY29udGV4dCk7XG5cbiAgICAgICAgICAgICAgaWYgKG5hbWVkQmluZGluZ0JDb21wYXJlc1RvTmFtZWRCaW5kaW5nQSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICBpZiAoIW5hbWVkQmluZGluZ0NvbXBhcmVzKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSAnJHtuYW1lZEJpbmRpbmdTdHJpbmd9JyBuYW1lZEJpbmRpbmcgZG9lcyBub3QgY29tcGFyZSB0byBhbnkgb2YgdGhlICcke25hbWVkQmluZGluZ3NTdHJpbmd9JyBuYW1lZCBiaW5kaW5ncy5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uY29tcGFyZWQgdGhlICcke25hbWVkQmluZGluZ1N0cmluZ30nIG5hbWVkQmluZGluZyB3aXRoIHRoZSAnJHtuYW1lZEJpbmRpbmdzU3RyaW5nfScgbmFtZWQgYmluZGluZ3MuYCk7XG4gIH1cblxuICBjb21wYXJlTmFtZWRCaW5kaW5ncyhuYW1lZEJpbmRpbmdzLCBjb250ZXh0KSB7XG4gICAgbmFtZWRCaW5kaW5ncy5mb3JFYWNoTmFtZWRCaW5kaW5nKChuYW1lZEJpbmRpbmcpID0+IHtcbiAgICAgIGlmIChuYW1lZEJpbmRpbmcgIT09IG51bGwpIHtcbiAgICAgICAgdGhpcy5jb21wYXJlTmFtZWRCaW5kaW5nKG5hbWVkQmluZGluZywgY29udGV4dCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiTmFtZWRCaW5kaW5nc1wiO1xufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiTmFtZWRCaW5kaW5ncyIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJhcnJheSIsImdldEFycmF5IiwiZ2V0TGVuZ3RoIiwibGVuZ3RoIiwiZ2V0TmFtZWRCaW5kaW5nIiwiaW5kZXgiLCJuYW1lZEJpbmRpbmciLCJzb21lTmFtZWRCaW5kaW5nIiwiY2FsbGJhY2siLCJzb21lIiwiZm9yRWFjaE5hbWVkQmluZGluZyIsImZvckVhY2giLCJjb21wYXJlVGVybXMiLCJ0ZXJtcyIsInRlcm1zU3RyaW5nIiwiZ2V0U3RyaW5nIiwibmFtZWRCaW5kaW5nc1N0cmluZyIsInRyYWNlIiwidGVybXNMZW5ndGgiLCJuYW1lZEJpbmRpbmdzTGVuZ3RoIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwidGVybSIsImdldFRlcm0iLCJjb21wYXJlVGVybSIsImRlYnVnIiwiY29tcGFyZU5hbWVkQmluZGluZyIsIm5hbWVkQmluZGluZ1N0cmluZyIsIm5hbWVkQmluZGluZ0EiLCJuYW1lZEJpbmRpbmdDb21wYXJlcyIsIm5hbWVkQmluZGluZ0IiLCJuYW1lZEJpbmRpbmdCQ29tcGFyZXNUb05hbWVkQmluZGluZ0EiLCJjb21wYXJlTmFtZWRCaW5kaW5ncyIsIm5hbWVkQmluZGluZ3MiLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFRQTs7O2VBQUE7OztnQ0FOd0I7a0VBRUY7MEJBRUM7Ozs7OztNQUV2QixXQUFlQSxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLHNCQUFzQkMsdUJBQU87SUFDdkQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxLQUFLLENBQUU7UUFDcEQsS0FBSyxDQUFDSixTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLEtBQUssR0FBR0E7SUFDZjtJQUVBQyxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUNELEtBQUs7SUFDbkI7SUFFQUUsWUFBWTtRQUNWLE1BQU1DLFNBQVMsSUFBSSxDQUFDSCxLQUFLLENBQUNHLE1BQU07UUFFaEMsT0FBT0E7SUFDVDtJQUVBQyxnQkFBZ0JDLEtBQUssRUFBRTtRQUNyQixNQUFNQyxlQUFlLElBQUksQ0FBQ04sS0FBSyxDQUFDSyxNQUFNLElBQUk7UUFFMUMsT0FBT0M7SUFDVDtJQUVBQyxpQkFBaUJDLFFBQVEsRUFBRTtRQUFFLE9BQU8sSUFBSSxDQUFDUixLQUFLLENBQUNTLElBQUksQ0FBQ0Q7SUFBVztJQUUvREUsb0JBQW9CRixRQUFRLEVBQUU7UUFBRSxJQUFJLENBQUNSLEtBQUssQ0FBQ1csT0FBTyxDQUFDSDtJQUFXO0lBRTlESSxhQUFhQyxLQUFLLEVBQUVqQixPQUFPLEVBQUU7UUFDM0IsTUFBTWtCLGNBQWNELE1BQU1FLFNBQVMsSUFDN0JDLHNCQUFzQixJQUFJLENBQUNELFNBQVMsSUFBSSxHQUFHO1FBRWpEbkIsUUFBUXFCLEtBQUssQ0FBQyxDQUFDLGVBQWUsRUFBRUgsWUFBWSxrQkFBa0IsRUFBRUUsb0JBQW9CLG1CQUFtQixDQUFDO1FBRXhHLE1BQU1FLGNBQWNMLE1BQU1YLFNBQVMsSUFDN0JpQixzQkFBc0IsSUFBSSxDQUFDakIsU0FBUztRQUUxQyxJQUFJZ0IsZ0JBQWdCQyxxQkFBcUI7WUFDdkMsTUFBTUMsVUFBVSxDQUFDLEtBQUssRUFBRU4sWUFBWSxhQUFhLEVBQUVFLG9CQUFvQiw0Q0FBNEMsQ0FBQyxFQUM5R0ssWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSDtZQUV4QyxNQUFNQztRQUNSO1FBRUEsSUFBSSxDQUFDWCxtQkFBbUIsQ0FBQyxDQUFDSixjQUFjRDtZQUN0QyxJQUFJQyxpQkFBaUIsTUFBTTtnQkFDekIsTUFBTWtCLE9BQU9YLE1BQU1ZLE9BQU8sQ0FBQ3BCO2dCQUUzQkMsYUFBYW9CLFdBQVcsQ0FBQ0YsTUFBTTVCO1lBQ2pDO1FBQ0Y7UUFFQUEsUUFBUStCLEtBQUssQ0FBQyxDQUFDLGlCQUFpQixFQUFFYixZQUFZLGtCQUFrQixFQUFFRSxvQkFBb0IsaUJBQWlCLENBQUM7SUFDMUc7SUFFQVksb0JBQW9CdEIsWUFBWSxFQUFFVixPQUFPLEVBQUU7UUFDekMsTUFBTWlDLHFCQUFxQnZCLGFBQWFTLFNBQVMsSUFDM0NDLHNCQUFzQixJQUFJLENBQUNELFNBQVMsSUFBSSxHQUFHO1FBRWpEbkIsUUFBUXFCLEtBQUssQ0FBQyxDQUFDLGVBQWUsRUFBRVksbUJBQW1CLHlCQUF5QixFQUFFYixvQkFBb0IsbUJBQW1CLENBQUM7UUFFdEgsTUFBTWMsZ0JBQWdCeEIsY0FDaEJ5Qix1QkFBdUIsSUFBSSxDQUFDeEIsZ0JBQWdCLENBQUMsQ0FBQ0Q7WUFDNUMsSUFBSUEsaUJBQWlCLE1BQU07Z0JBQ3pCLE1BQU0wQixnQkFBZ0IxQixjQUNoQjJCLHVDQUF1Q0gsY0FBY0YsbUJBQW1CLENBQUNJLGVBQWVwQztnQkFFOUYsSUFBSXFDLHNDQUFzQztvQkFDeEMsT0FBTztnQkFDVDtZQUNGO1FBQ0Y7UUFFTixJQUFJLENBQUNGLHNCQUFzQjtZQUN6QixNQUFNWCxVQUFVLENBQUMsS0FBSyxFQUFFUyxtQkFBbUIsK0NBQStDLEVBQUViLG9CQUFvQixpQkFBaUIsQ0FBQyxFQUM1SEssWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSDtZQUV4QyxNQUFNQztRQUNSO1FBRUF6QixRQUFRK0IsS0FBSyxDQUFDLENBQUMsaUJBQWlCLEVBQUVFLG1CQUFtQix5QkFBeUIsRUFBRWIsb0JBQW9CLGlCQUFpQixDQUFDO0lBQ3hIO0lBRUFrQixxQkFBcUJDLGFBQWEsRUFBRXZDLE9BQU8sRUFBRTtRQUMzQ3VDLGNBQWN6QixtQkFBbUIsQ0FBQyxDQUFDSjtZQUNqQyxJQUFJQSxpQkFBaUIsTUFBTTtnQkFDekIsSUFBSSxDQUFDc0IsbUJBQW1CLENBQUN0QixjQUFjVjtZQUN6QztRQUNGO0lBQ0Y7SUFFQSxPQUFPd0MsT0FBTyxnQkFBZ0I7QUFDaEMifQ==
@@ -0,0 +1,57 @@
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 _exception = /*#__PURE__*/ _interop_require_default(require("../exception"));
13
+ const _elements = require("../elements");
14
+ function _interop_require_default(obj) {
15
+ return obj && obj.__esModule ? obj : {
16
+ default: obj
17
+ };
18
+ }
19
+ const _default = (0, _elements.define)(class Bindings extends _occamlanguages.Element {
20
+ constructor(context, string, node, breakPoint, array){
21
+ super(context, string, node, breakPoint);
22
+ this.array = array;
23
+ }
24
+ getArray() {
25
+ return this.array;
26
+ }
27
+ getLength() {
28
+ const length = this.array.length;
29
+ return length;
30
+ }
31
+ getBinding(index) {
32
+ const binding = this.array[index] || null;
33
+ return binding;
34
+ }
35
+ forEachBinding(callback) {
36
+ this.array.forEach(callback);
37
+ }
38
+ compareTerms(terms, context) {
39
+ const termsString = terms.getString(), bindingsString = this.getString(); ///
40
+ context.trace(`Comparing the '${termsString}' terms against the '${bindingsString}' bindings...`);
41
+ const termsLength = terms.getLength(), bindingsLength = this.getLength();
42
+ if (termsLength !== bindingsLength) {
43
+ const message = `The '${termsString}' expressions and '${bindingsString}' bindings are not of the same length.`, exception = _exception.default.fromMessage(message);
44
+ throw exception;
45
+ }
46
+ this.forEachBinding((binding, index)=>{
47
+ if (binding !== null) {
48
+ const term = terms.getTerm(index);
49
+ binding.compareTerm(term, context);
50
+ }
51
+ });
52
+ context.debug(`...compared the '${termsString}' terms against the '${bindingsString}' bindings.`);
53
+ }
54
+ static name = "Bindings";
55
+ });
56
+
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2JpbmRpbmdzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgRXhjZXB0aW9uIGZyb20gXCIuLi9leGNlcHRpb25cIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBCaW5kaW5ncyBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIGFycmF5KSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMuYXJyYXkgPSBhcnJheTtcbiAgfVxuXG4gIGdldEFycmF5KCkge1xuICAgIHJldHVybiB0aGlzLmFycmF5O1xuICB9XG5cbiAgZ2V0TGVuZ3RoKCkge1xuICAgIGNvbnN0IGxlbmd0aCA9IHRoaXMuYXJyYXkubGVuZ3RoO1xuXG4gICAgcmV0dXJuIGxlbmd0aDtcbiAgfVxuXG4gIGdldEJpbmRpbmcoaW5kZXgpIHtcbiAgICBjb25zdCBiaW5kaW5nID0gdGhpcy5hcnJheVtpbmRleF0gfHwgbnVsbDtcblxuICAgIHJldHVybiBiaW5kaW5nO1xuICB9XG5cbiAgZm9yRWFjaEJpbmRpbmcoY2FsbGJhY2spIHsgdGhpcy5hcnJheS5mb3JFYWNoKGNhbGxiYWNrKTsgfVxuXG4gIGNvbXBhcmVUZXJtcyh0ZXJtcywgY29udGV4dCkge1xuICAgIGNvbnN0IHRlcm1zU3RyaW5nID0gdGVybXMuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgYmluZGluZ3NTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYENvbXBhcmluZyB0aGUgJyR7dGVybXNTdHJpbmd9JyB0ZXJtcyBhZ2FpbnN0IHRoZSAnJHtiaW5kaW5nc1N0cmluZ30nIGJpbmRpbmdzLi4uYCk7XG5cbiAgICBjb25zdCB0ZXJtc0xlbmd0aCA9IHRlcm1zLmdldExlbmd0aCgpLFxuICAgICAgICAgIGJpbmRpbmdzTGVuZ3RoID0gdGhpcy5nZXRMZW5ndGgoKTtcblxuICAgIGlmICh0ZXJtc0xlbmd0aCAhPT0gYmluZGluZ3NMZW5ndGgpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgVGhlICcke3Rlcm1zU3RyaW5nfScgZXhwcmVzc2lvbnMgYW5kICcke2JpbmRpbmdzU3RyaW5nfScgYmluZGluZ3MgYXJlIG5vdCBvZiB0aGUgc2FtZSBsZW5ndGguYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIHRoaXMuZm9yRWFjaEJpbmRpbmcoKGJpbmRpbmcsIGluZGV4KSA9PiB7XG4gICAgICBpZiAoYmluZGluZyAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCB0ZXJtID0gdGVybXMuZ2V0VGVybShpbmRleCk7XG5cbiAgICAgICAgYmluZGluZy5jb21wYXJlVGVybSh0ZXJtLCBjb250ZXh0KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmNvbXBhcmVkIHRoZSAnJHt0ZXJtc1N0cmluZ30nIHRlcm1zIGFnYWluc3QgdGhlICcke2JpbmRpbmdzU3RyaW5nfScgYmluZGluZ3MuYCk7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiQmluZGluZ3NcIjtcbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIkJpbmRpbmdzIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsImFycmF5IiwiZ2V0QXJyYXkiLCJnZXRMZW5ndGgiLCJsZW5ndGgiLCJnZXRCaW5kaW5nIiwiaW5kZXgiLCJiaW5kaW5nIiwiZm9yRWFjaEJpbmRpbmciLCJjYWxsYmFjayIsImZvckVhY2giLCJjb21wYXJlVGVybXMiLCJ0ZXJtcyIsInRlcm1zU3RyaW5nIiwiZ2V0U3RyaW5nIiwiYmluZGluZ3NTdHJpbmciLCJ0cmFjZSIsInRlcm1zTGVuZ3RoIiwiYmluZGluZ3NMZW5ndGgiLCJtZXNzYWdlIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJ0ZXJtIiwiZ2V0VGVybSIsImNvbXBhcmVUZXJtIiwiZGVidWciLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFRQTs7O2VBQUE7OztnQ0FOd0I7a0VBRUY7MEJBRUM7Ozs7OztNQUV2QixXQUFlQSxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLGlCQUFpQkMsdUJBQU87SUFDbEQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxLQUFLLENBQUU7UUFDcEQsS0FBSyxDQUFDSixTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLEtBQUssR0FBR0E7SUFDZjtJQUVBQyxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUNELEtBQUs7SUFDbkI7SUFFQUUsWUFBWTtRQUNWLE1BQU1DLFNBQVMsSUFBSSxDQUFDSCxLQUFLLENBQUNHLE1BQU07UUFFaEMsT0FBT0E7SUFDVDtJQUVBQyxXQUFXQyxLQUFLLEVBQUU7UUFDaEIsTUFBTUMsVUFBVSxJQUFJLENBQUNOLEtBQUssQ0FBQ0ssTUFBTSxJQUFJO1FBRXJDLE9BQU9DO0lBQ1Q7SUFFQUMsZUFBZUMsUUFBUSxFQUFFO1FBQUUsSUFBSSxDQUFDUixLQUFLLENBQUNTLE9BQU8sQ0FBQ0Q7SUFBVztJQUV6REUsYUFBYUMsS0FBSyxFQUFFZixPQUFPLEVBQUU7UUFDM0IsTUFBTWdCLGNBQWNELE1BQU1FLFNBQVMsSUFDN0JDLGlCQUFpQixJQUFJLENBQUNELFNBQVMsSUFBSSxHQUFHO1FBRTVDakIsUUFBUW1CLEtBQUssQ0FBQyxDQUFDLGVBQWUsRUFBRUgsWUFBWSxxQkFBcUIsRUFBRUUsZUFBZSxhQUFhLENBQUM7UUFFaEcsTUFBTUUsY0FBY0wsTUFBTVQsU0FBUyxJQUM3QmUsaUJBQWlCLElBQUksQ0FBQ2YsU0FBUztRQUVyQyxJQUFJYyxnQkFBZ0JDLGdCQUFnQjtZQUNsQyxNQUFNQyxVQUFVLENBQUMsS0FBSyxFQUFFTixZQUFZLG1CQUFtQixFQUFFRSxlQUFlLHNDQUFzQyxDQUFDLEVBQ3pHSyxZQUFZQyxrQkFBUyxDQUFDQyxXQUFXLENBQUNIO1lBRXhDLE1BQU1DO1FBQ1I7UUFFQSxJQUFJLENBQUNaLGNBQWMsQ0FBQyxDQUFDRCxTQUFTRDtZQUM1QixJQUFJQyxZQUFZLE1BQU07Z0JBQ3BCLE1BQU1nQixPQUFPWCxNQUFNWSxPQUFPLENBQUNsQjtnQkFFM0JDLFFBQVFrQixXQUFXLENBQUNGLE1BQU0xQjtZQUM1QjtRQUNGO1FBRUFBLFFBQVE2QixLQUFLLENBQUMsQ0FBQyxpQkFBaUIsRUFBRWIsWUFBWSxxQkFBcUIsRUFBRUUsZUFBZSxXQUFXLENBQUM7SUFDbEc7SUFFQSxPQUFPWSxPQUFPLFdBQVc7QUFDM0IifQ==