occam-nominal 1.0.142 → 1.0.144

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.
@@ -33,12 +33,12 @@ const _default = (0, _elements.define)(class NominalProcedureCall extends _occam
33
33
  getProcedureName() {
34
34
  return this.procedureReference.getProcedureName();
35
35
  }
36
- findNodes(context) {
37
- const substitutions = context.getSubstitutions(), nodes = this.parameters.map((parameter)=>{
38
- const node = parameter.findNode(substitutions);
39
- return node;
36
+ findValues(context) {
37
+ const substitutions = context.getSubstitutions(), values = this.parameters.map((parameter)=>{
38
+ const value = parameter.findValue(substitutions);
39
+ return value;
40
40
  });
41
- return nodes;
41
+ return values;
42
42
  }
43
43
  validate(context) {
44
44
  let nominalProcedureCall = null;
@@ -66,10 +66,10 @@ const _default = (0, _elements.define)(class NominalProcedureCall extends _occam
66
66
  let unifiesIndependently = false;
67
67
  const nominalProcedureCallString = this.getString(); ///
68
68
  context.trace(`Unifying the '${nominalProcedureCallString}' nominal procedure call independently...`);
69
- const procedureName = this.getProcedureName(), procedure = context.findProcedureByProcedureName(procedureName), nodes = this.findNodes(context);
69
+ const procedureName = this.getProcedureName(), procedure = context.findProcedureByProcedureName(procedureName), values = this.findValues(context);
70
70
  let term = null;
71
71
  try {
72
- term = await (0, _context.evaluate)(procedure, nodes, context);
72
+ term = await procedure.callNominally(values, context);
73
73
  } catch (exception) {
74
74
  const message = exception.getMessage();
75
75
  context.info(message);
@@ -113,4 +113,4 @@ const _default = (0, _elements.define)(class NominalProcedureCall extends _occam
113
113
  }
114
114
  });
115
115
 
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L25vbWluYWxQcm9jZWR1cmVDYWxsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IGV2YWx1YXRlLCBpbnN0YW50aWF0ZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvY29udGV4dFwiO1xuaW1wb3J0IHsgaW5zdGFudGlhdGVOb21pbmFsUHJvY2VkdXJlQ2FsbCB9IGZyb20gXCIuLi9wcm9jZXNzL2luc3RhbnRpYXRlXCI7XG5pbXBvcnQgeyBicmVha1BvaW50RnJvbUpTT04sIGJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9icmVha1BvaW50XCI7XG5pbXBvcnQgeyBwYXJhbWV0ZXJzRnJvbU5vbWluYWxQcm9jZWR1cmVDYWxsTm9kZSwgcHJvY2VkdXJlUmVmZXJlbmNlRnJvbU5vbWluYWxQcm9jZWR1cmVDYWxsTm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvZWxlbWVudFwiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgTm9taW5hbFByb2NlZHVyZUNhbGwgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBwYXJhbWV0ZXJzLCBwcm9jZWR1cmVSZWZlcmVuY2UpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy5wYXJhbWV0ZXJzID0gcGFyYW1ldGVycztcbiAgICB0aGlzLnByb2NlZHVyZVJlZmVyZW5jZSA9IHByb2NlZHVyZVJlZmVyZW5jZTtcbiAgfVxuXG4gIGdldFBhcmFtZXRlcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFyYW1ldGVycztcbiAgfVxuXG4gIGdldFByb2NlZHVyZVJlZmVyZW5jZSgpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9jZWR1cmVSZWZlcmVuY2U7XG4gIH1cblxuICBnZXROb21pbmFsUHJvY2VkdXJlQ2FsbE5vZGUoKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Tm9kZSgpLFxuICAgICAgICAgIG5vbWluYWxQcm9jZWR1cmVDYWxsTm9kZSA9IG5vZGU7XG5cbiAgICByZXR1cm4gbm9taW5hbFByb2NlZHVyZUNhbGxOb2RlO1xuICB9XG5cbiAgZ2V0UHJvY2VkdXJlTmFtZSgpIHsgcmV0dXJuIHRoaXMucHJvY2VkdXJlUmVmZXJlbmNlLmdldFByb2NlZHVyZU5hbWUoKTsgfVxuXG4gIGZpbmROb2Rlcyhjb250ZXh0KSB7XG4gICAgY29uc3Qgc3Vic3RpdHV0aW9ucyA9IGNvbnRleHQuZ2V0U3Vic3RpdHV0aW9ucygpLFxuICAgICAgICAgIG5vZGVzID0gdGhpcy5wYXJhbWV0ZXJzLm1hcCgocGFyYW1ldGVyKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gcGFyYW1ldGVyLmZpbmROb2RlKHN1YnN0aXR1dGlvbnMpO1xuXG4gICAgICAgICAgICByZXR1cm4gbm9kZTtcbiAgICAgICAgICB9KTtcblxuICAgIHJldHVybiBub2RlcztcbiAgfVxuXG4gIHZhbGlkYXRlKGNvbnRleHQpIHtcbiAgICBsZXQgbm9taW5hbFByb2NlZHVyZUNhbGwgPSBudWxsO1xuXG4gICAgY29uc3Qgbm9taW5hbFByb2NlZHVyZUNhbGxTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFZhbGlkYXRpbmcgdGhlICcke25vbWluYWxQcm9jZWR1cmVDYWxsU3RyaW5nfScgbm9taW5hbCBwcm9jZWR1cmUgY2FsbC4uLmApO1xuXG4gICAgbGV0IHZhbGlkYXRlcyA9IGZhbHNlO1xuXG4gICAgY29uc3QgcHJvY2VkdXJlTmFtZSA9IHRoaXMuZ2V0UHJvY2VkdXJlTmFtZSgpLFxuICAgICAgICAgIHByb2NlZHVyZSA9IGNvbnRleHQuZmluZFByb2NlZHVyZUJ5UHJvY2VkdXJlTmFtZShwcm9jZWR1cmVOYW1lKTtcblxuICAgIGlmIChwcm9jZWR1cmUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IHByb2NlZHVyZUJvb2xlYW4gPSBwcm9jZWR1cmUuaXNCb29sZWFuKCk7XG5cbiAgICAgIGlmIChwcm9jZWR1cmVCb29sZWFuKSB7XG4gICAgICAgIG5vbWluYWxQcm9jZWR1cmVDYWxsID0gdGhpczsgIC8vL1xuXG4gICAgICAgIHZhbGlkYXRlcyA9IHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb250ZXh0LmRlYnVnKGBUaGUgJyR7bm9taW5hbFByb2NlZHVyZUNhbGxTdHJpbmd9JyBwcm9jZWR1cmUgaXMgbm90IGJvb2xlYW4uYCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYFRoZSAnJHtub21pbmFsUHJvY2VkdXJlQ2FsbFN0cmluZ30nIHByb2NlZHVyZSBpcyBub3QgcHJlc2VudC5gKTtcbiAgICB9XG5cbiAgICBpZiAodmFsaWRhdGVzKSB7XG4gICAgICBjb250ZXh0LmRlYnVnKGAuLi52YWxpZGF0ZWQgdGhlICcke25vbWluYWxQcm9jZWR1cmVDYWxsU3RyaW5nfScgbm9taW5hbCBwcm9jZWR1cmUgY2FsbC5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbm9taW5hbFByb2NlZHVyZUNhbGw7XG4gIH1cblxuICBhc3luYyB1bmlmeUluZGVwZW5kZW50bHkoY29udGV4dCkge1xuICAgIGxldCB1bmlmaWVzSW5kZXBlbmRlbnRseSA9IGZhbHNlO1xuXG4gICAgY29uc3Qgbm9taW5hbFByb2NlZHVyZUNhbGxTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYFVuaWZ5aW5nIHRoZSAnJHtub21pbmFsUHJvY2VkdXJlQ2FsbFN0cmluZ30nIG5vbWluYWwgcHJvY2VkdXJlIGNhbGwgaW5kZXBlbmRlbnRseS4uLmApO1xuXG4gICAgY29uc3QgcHJvY2VkdXJlTmFtZSA9IHRoaXMuZ2V0UHJvY2VkdXJlTmFtZSgpLFxuICAgICAgICAgIHByb2NlZHVyZSA9IGNvbnRleHQuZmluZFByb2NlZHVyZUJ5UHJvY2VkdXJlTmFtZShwcm9jZWR1cmVOYW1lKSxcbiAgICAgICAgICBub2RlcyA9IHRoaXMuZmluZE5vZGVzKGNvbnRleHQpO1xuXG4gICAgbGV0IHRlcm0gPSBudWxsO1xuXG4gICAgdHJ5IHtcbiAgICAgIHRlcm0gPSBhd2FpdCBldmFsdWF0ZShwcm9jZWR1cmUsIG5vZGVzLCBjb250ZXh0KTtcbiAgICB9IGNhdGNoIChleGNlcHRpb24pIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBleGNlcHRpb24uZ2V0TWVzc2FnZSgpO1xuXG4gICAgICBjb250ZXh0LmluZm8obWVzc2FnZSk7XG4gICAgfVxuXG4gICAgaWYgKHRlcm0gIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGJvb2xlYW4gPSB0ZXJtLmlzQm9vbGVhbigpO1xuXG4gICAgICBpZiAoIWJvb2xlYW4pIHtcbiAgICAgICAgY29udGV4dC5pbmZvKGBUaGUgJyR7bm9taW5hbFByb2NlZHVyZUNhbGxTdHJpbmd9JyBub21pbmFsIHByb2NlZHVyZSBjYWxsIGRpZCBub3QgcmV0dXJuIGEgYm9vbGVhbi5gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHByaW1pdGl2ZVZhbHVlID0gdGVybS5nZXRQcmltaXRpdmVWYWx1ZSgpO1xuXG4gICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZSkge1xuICAgICAgICAgIHVuaWZpZXNJbmRlcGVuZGVudGx5ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh1bmlmaWVzSW5kZXBlbmRlbnRseSkge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7bm9taW5hbFByb2NlZHVyZUNhbGxTdHJpbmd9JyBub21pbmFsIHByb2NlZHVyZSBjYWxsIGluZGVwZW5kZW50bHkuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuaWZpZXNJbmRlcGVuZGVudGx5O1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIk5vbWluYWxQcm9jZWR1cmVDYWxsXCI7XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IHN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICBsZXQgYnJlYWtQb2ludDtcblxuICAgIGJyZWFrUG9pbnQgPSB0aGlzLmdldEJyZWFrUG9pbnQoKTtcblxuICAgIGNvbnN0IGJyZWFrUG9pbnRKU09OID0gYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04oYnJlYWtQb2ludCk7XG5cbiAgICBicmVha1BvaW50ID0gYnJlYWtQb2ludEpTT047ICAvLy9cblxuICAgIGNvbnN0IGpzb24gPSB7XG4gICAgICBzdHJpbmcsXG4gICAgICBicmVha1BvaW50XG4gICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICByZXR1cm4gaW5zdGFudGlhdGUoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IHsgc3RyaW5nIH0gPSBqc29uLFxuICAgICAgICAgICAgbm9taW5hbFByb2NlZHVyZUNhbGxOb2RlID0gaW5zdGFudGlhdGVOb21pbmFsUHJvY2VkdXJlQ2FsbChzdHJpbmcsIGNvbnRleHQpLFxuICAgICAgICAgICAgbm9kZSA9IG5vbWluYWxQcm9jZWR1cmVDYWxsTm9kZSwgIC8vL1xuICAgICAgICAgICAgYnJlYWtQb2ludCA9IGJyZWFrUG9pbnRGcm9tSlNPTihqc29uKSxcbiAgICAgICAgICAgIHBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzRnJvbU5vbWluYWxQcm9jZWR1cmVDYWxsTm9kZShqc29uLCBjb250ZXh0KSxcbiAgICAgICAgICAgIHByb2NlZHVyZVJlZmVyZW5jZSA9IHByb2NlZHVyZVJlZmVyZW5jZUZyb21Ob21pbmFsUHJvY2VkdXJlQ2FsbE5vZGUoanNvbiwgY29udGV4dCk7XG5cbiAgICAgIGNvbnRleHQgPSBudWxsO1xuXG4gICAgICBjb25zdCBub21pbmFsUHJvY2VkdXJlQ2FsbCA9IG5ldyBOb21pbmFsUHJvY2VkdXJlQ2FsbChjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHBhcmFtZXRlcnMsIHByb2NlZHVyZVJlZmVyZW5jZSk7XG5cbiAgICAgIHJldHVybiBub21pbmFsUHJvY2VkdXJlQ2FsbDtcbiAgICB9LCBjb250ZXh0KTtcbiAgfVxufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiTm9taW5hbFByb2NlZHVyZUNhbGwiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwicGFyYW1ldGVycyIsInByb2NlZHVyZVJlZmVyZW5jZSIsImdldFBhcmFtZXRlcnMiLCJnZXRQcm9jZWR1cmVSZWZlcmVuY2UiLCJnZXROb21pbmFsUHJvY2VkdXJlQ2FsbE5vZGUiLCJnZXROb2RlIiwibm9taW5hbFByb2NlZHVyZUNhbGxOb2RlIiwiZ2V0UHJvY2VkdXJlTmFtZSIsImZpbmROb2RlcyIsInN1YnN0aXR1dGlvbnMiLCJnZXRTdWJzdGl0dXRpb25zIiwibm9kZXMiLCJtYXAiLCJwYXJhbWV0ZXIiLCJmaW5kTm9kZSIsInZhbGlkYXRlIiwibm9taW5hbFByb2NlZHVyZUNhbGwiLCJub21pbmFsUHJvY2VkdXJlQ2FsbFN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwidmFsaWRhdGVzIiwicHJvY2VkdXJlTmFtZSIsInByb2NlZHVyZSIsImZpbmRQcm9jZWR1cmVCeVByb2NlZHVyZU5hbWUiLCJwcm9jZWR1cmVCb29sZWFuIiwiaXNCb29sZWFuIiwiZGVidWciLCJ1bmlmeUluZGVwZW5kZW50bHkiLCJ1bmlmaWVzSW5kZXBlbmRlbnRseSIsInRlcm0iLCJldmFsdWF0ZSIsImV4Y2VwdGlvbiIsIm1lc3NhZ2UiLCJnZXRNZXNzYWdlIiwiaW5mbyIsImJvb2xlYW4iLCJwcmltaXRpdmVWYWx1ZSIsImdldFByaW1pdGl2ZVZhbHVlIiwibmFtZSIsInRvSlNPTiIsImdldEJyZWFrUG9pbnQiLCJicmVha1BvaW50SlNPTiIsImJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OIiwianNvbiIsImZyb21KU09OIiwiaW5zdGFudGlhdGUiLCJpbnN0YW50aWF0ZU5vbWluYWxQcm9jZWR1cmVDYWxsIiwiYnJlYWtQb2ludEZyb21KU09OIiwicGFyYW1ldGVyc0Zyb21Ob21pbmFsUHJvY2VkdXJlQ2FsbE5vZGUiLCJwcm9jZWR1cmVSZWZlcmVuY2VGcm9tTm9taW5hbFByb2NlZHVyZUNhbGxOb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFVQTs7O2VBQUE7OztnQ0FSd0I7MEJBRUQ7eUJBQ2U7NkJBQ1U7NEJBQ2U7eUJBQ3dDO01BRXZHLFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsNkJBQTZCQyx1QkFBTztJQUM5RCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFVBQVUsRUFBRUMsa0JBQWtCLENBQUU7UUFDN0UsS0FBSyxDQUFDTCxTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLFVBQVUsR0FBR0E7UUFDbEIsSUFBSSxDQUFDQyxrQkFBa0IsR0FBR0E7SUFDNUI7SUFFQUMsZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUNGLFVBQVU7SUFDeEI7SUFFQUcsd0JBQXdCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDRixrQkFBa0I7SUFDaEM7SUFFQUcsOEJBQThCO1FBQzVCLE1BQU1OLE9BQU8sSUFBSSxDQUFDTyxPQUFPLElBQ25CQywyQkFBMkJSO1FBRWpDLE9BQU9RO0lBQ1Q7SUFFQUMsbUJBQW1CO1FBQUUsT0FBTyxJQUFJLENBQUNOLGtCQUFrQixDQUFDTSxnQkFBZ0I7SUFBSTtJQUV4RUMsVUFBVVosT0FBTyxFQUFFO1FBQ2pCLE1BQU1hLGdCQUFnQmIsUUFBUWMsZ0JBQWdCLElBQ3hDQyxRQUFRLElBQUksQ0FBQ1gsVUFBVSxDQUFDWSxHQUFHLENBQUMs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
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L25vbWluYWxQcm9jZWR1cmVDYWxsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jb250ZXh0XCI7XG5pbXBvcnQgeyBpbnN0YW50aWF0ZU5vbWluYWxQcm9jZWR1cmVDYWxsIH0gZnJvbSBcIi4uL3Byb2Nlc3MvaW5zdGFudGlhdGVcIjtcbmltcG9ydCB7IGJyZWFrUG9pbnRGcm9tSlNPTiwgYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04gfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2JyZWFrUG9pbnRcIjtcbmltcG9ydCB7IHBhcmFtZXRlcnNGcm9tTm9taW5hbFByb2NlZHVyZUNhbGxOb2RlLCBwcm9jZWR1cmVSZWZlcmVuY2VGcm9tTm9taW5hbFByb2NlZHVyZUNhbGxOb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9lbGVtZW50XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBOb21pbmFsUHJvY2VkdXJlQ2FsbCBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHBhcmFtZXRlcnMsIHByb2NlZHVyZVJlZmVyZW5jZSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzO1xuICAgIHRoaXMucHJvY2VkdXJlUmVmZXJlbmNlID0gcHJvY2VkdXJlUmVmZXJlbmNlO1xuICB9XG5cbiAgZ2V0UGFyYW1ldGVycygpIHtcbiAgICByZXR1cm4gdGhpcy5wYXJhbWV0ZXJzO1xuICB9XG5cbiAgZ2V0UHJvY2VkdXJlUmVmZXJlbmNlKCkge1xuICAgIHJldHVybiB0aGlzLnByb2NlZHVyZVJlZmVyZW5jZTtcbiAgfVxuXG4gIGdldE5vbWluYWxQcm9jZWR1cmVDYWxsTm9kZSgpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgbm9taW5hbFByb2NlZHVyZUNhbGxOb2RlID0gbm9kZTtcblxuICAgIHJldHVybiBub21pbmFsUHJvY2VkdXJlQ2FsbE5vZGU7XG4gIH1cblxuICBnZXRQcm9jZWR1cmVOYW1lKCkgeyByZXR1cm4gdGhpcy5wcm9jZWR1cmVSZWZlcmVuY2UuZ2V0UHJvY2VkdXJlTmFtZSgpOyB9XG5cbiAgZmluZFZhbHVlcyhjb250ZXh0KSB7XG4gICAgY29uc3Qgc3Vic3RpdHV0aW9ucyA9IGNvbnRleHQuZ2V0U3Vic3RpdHV0aW9ucygpLFxuICAgICAgICAgIHZhbHVlcyA9IHRoaXMucGFyYW1ldGVycy5tYXAoKHBhcmFtZXRlcikgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBwYXJhbWV0ZXIuZmluZFZhbHVlKHN1YnN0aXR1dGlvbnMpO1xuXG4gICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgfSk7XG5cbiAgICByZXR1cm4gdmFsdWVzO1xuICB9XG5cbiAgdmFsaWRhdGUoY29udGV4dCkge1xuICAgIGxldCBub21pbmFsUHJvY2VkdXJlQ2FsbCA9IG51bGw7XG5cbiAgICBjb25zdCBub21pbmFsUHJvY2VkdXJlQ2FsbFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVmFsaWRhdGluZyB0aGUgJyR7bm9taW5hbFByb2NlZHVyZUNhbGxTdHJpbmd9JyBub21pbmFsIHByb2NlZHVyZSBjYWxsLi4uYCk7XG5cbiAgICBsZXQgdmFsaWRhdGVzID0gZmFsc2U7XG5cbiAgICBjb25zdCBwcm9jZWR1cmVOYW1lID0gdGhpcy5nZXRQcm9jZWR1cmVOYW1lKCksXG4gICAgICAgICAgcHJvY2VkdXJlID0gY29udGV4dC5maW5kUHJvY2VkdXJlQnlQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpO1xuXG4gICAgaWYgKHByb2NlZHVyZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgcHJvY2VkdXJlQm9vbGVhbiA9IHByb2NlZHVyZS5pc0Jvb2xlYW4oKTtcblxuICAgICAgaWYgKHByb2NlZHVyZUJvb2xlYW4pIHtcbiAgICAgICAgbm9taW5hbFByb2NlZHVyZUNhbGwgPSB0aGlzOyAgLy8vXG5cbiAgICAgICAgdmFsaWRhdGVzID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnRleHQuZGVidWcoYFRoZSAnJHtub21pbmFsUHJvY2VkdXJlQ2FsbFN0cmluZ30nIHByb2NlZHVyZSBpcyBub3QgYm9vbGVhbi5gKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgVGhlICcke25vbWluYWxQcm9jZWR1cmVDYWxsU3RyaW5nfScgcHJvY2VkdXJlIGlzIG5vdCBwcmVzZW50LmApO1xuICAgIH1cblxuICAgIGlmICh2YWxpZGF0ZXMpIHtcbiAgICAgIGNvbnRleHQuZGVidWcoYC4uLnZhbGlkYXRlZCB0aGUgJyR7bm9taW5hbFByb2NlZHVyZUNhbGxTdHJpbmd9JyBub21pbmFsIHByb2NlZHVyZSBjYWxsLmApO1xuICAgIH1cblxuICAgIHJldHVybiBub21pbmFsUHJvY2VkdXJlQ2FsbDtcbiAgfVxuXG4gIGFzeW5jIHVuaWZ5SW5kZXBlbmRlbnRseShjb250ZXh0KSB7XG4gICAgbGV0IHVuaWZpZXNJbmRlcGVuZGVudGx5ID0gZmFsc2U7XG5cbiAgICBjb25zdCBub21pbmFsUHJvY2VkdXJlQ2FsbFN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7IC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgVW5pZnlpbmcgdGhlICcke25vbWluYWxQcm9jZWR1cmVDYWxsU3RyaW5nfScgbm9taW5hbCBwcm9jZWR1cmUgY2FsbCBpbmRlcGVuZGVudGx5Li4uYCk7XG5cbiAgICBjb25zdCBwcm9jZWR1cmVOYW1lID0gdGhpcy5nZXRQcm9jZWR1cmVOYW1lKCksXG4gICAgICAgICAgcHJvY2VkdXJlID0gY29udGV4dC5maW5kUHJvY2VkdXJlQnlQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpLFxuICAgICAgICAgIHZhbHVlcyA9IHRoaXMuZmluZFZhbHVlcyhjb250ZXh0KTtcblxuICAgIGxldCB0ZXJtID0gbnVsbDtcblxuICAgIHRyeSB7XG4gICAgICB0ZXJtID0gYXdhaXQgcHJvY2VkdXJlLmNhbGxOb21pbmFsbHkodmFsdWVzLCBjb250ZXh0KTtcbiAgICB9IGNhdGNoIChleGNlcHRpb24pIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBleGNlcHRpb24uZ2V0TWVzc2FnZSgpO1xuXG4gICAgICBjb250ZXh0LmluZm8obWVzc2FnZSk7XG4gICAgfVxuXG4gICAgaWYgKHRlcm0gIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGJvb2xlYW4gPSB0ZXJtLmlzQm9vbGVhbigpO1xuXG4gICAgICBpZiAoIWJvb2xlYW4pIHtcbiAgICAgICAgY29udGV4dC5pbmZvKGBUaGUgJyR7bm9taW5hbFByb2NlZHVyZUNhbGxTdHJpbmd9JyBub21pbmFsIHByb2NlZHVyZSBjYWxsIGRpZCBub3QgcmV0dXJuIGEgYm9vbGVhbi5gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHByaW1pdGl2ZVZhbHVlID0gdGVybS5nZXRQcmltaXRpdmVWYWx1ZSgpO1xuXG4gICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZSkge1xuICAgICAgICAgIHVuaWZpZXNJbmRlcGVuZGVudGx5ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh1bmlmaWVzSW5kZXBlbmRlbnRseSkge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udW5pZmllZCB0aGUgJyR7bm9taW5hbFByb2NlZHVyZUNhbGxTdHJpbmd9JyBub21pbmFsIHByb2NlZHVyZSBjYWxsIGluZGVwZW5kZW50bHkuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuaWZpZXNJbmRlcGVuZGVudGx5O1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIk5vbWluYWxQcm9jZWR1cmVDYWxsXCI7XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IHN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICBsZXQgYnJlYWtQb2ludDtcblxuICAgIGJyZWFrUG9pbnQgPSB0aGlzLmdldEJyZWFrUG9pbnQoKTtcblxuICAgIGNvbnN0IGJyZWFrUG9pbnRKU09OID0gYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04oYnJlYWtQb2ludCk7XG5cbiAgICBicmVha1BvaW50ID0gYnJlYWtQb2ludEpTT047ICAvLy9cblxuICAgIGNvbnN0IGpzb24gPSB7XG4gICAgICBzdHJpbmcsXG4gICAgICBicmVha1BvaW50XG4gICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICByZXR1cm4gaW5zdGFudGlhdGUoKGNvbnRleHQpID0+IHtcbiAgICAgIGNvbnN0IHsgc3RyaW5nIH0gPSBqc29uLFxuICAgICAgICAgICAgbm9taW5hbFByb2NlZHVyZUNhbGxOb2RlID0gaW5zdGFudGlhdGVOb21pbmFsUHJvY2VkdXJlQ2FsbChzdHJpbmcsIGNvbnRleHQpLFxuICAgICAgICAgICAgbm9kZSA9IG5vbWluYWxQcm9jZWR1cmVDYWxsTm9kZSwgIC8vL1xuICAgICAgICAgICAgYnJlYWtQb2ludCA9IGJyZWFrUG9pbnRGcm9tSlNPTihqc29uKSxcbiAgICAgICAgICAgIHBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzRnJvbU5vbWluYWxQcm9jZWR1cmVDYWxsTm9kZShqc29uLCBjb250ZXh0KSxcbiAgICAgICAgICAgIHByb2NlZHVyZVJlZmVyZW5jZSA9IHByb2NlZHVyZVJlZmVyZW5jZUZyb21Ob21pbmFsUHJvY2VkdXJlQ2FsbE5vZGUoanNvbiwgY29udGV4dCk7XG5cbiAgICAgIGNvbnRleHQgPSBudWxsO1xuXG4gICAgICBjb25zdCBub21pbmFsUHJvY2VkdXJlQ2FsbCA9IG5ldyBOb21pbmFsUHJvY2VkdXJlQ2FsbChjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHBhcmFtZXRlcnMsIHByb2NlZHVyZVJlZmVyZW5jZSk7XG5cbiAgICAgIHJldHVybiBub21pbmFsUHJvY2VkdXJlQ2FsbDtcbiAgICB9LCBjb250ZXh0KTtcbiAgfVxufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiTm9taW5hbFByb2NlZHVyZUNhbGwiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwicGFyYW1ldGVycyIsInByb2NlZHVyZVJlZmVyZW5jZSIsImdldFBhcmFtZXRlcnMiLCJnZXRQcm9jZWR1cmVSZWZlcmVuY2UiLCJnZXROb21pbmFsUHJvY2VkdXJlQ2FsbE5vZGUiLCJnZXROb2RlIiwibm9taW5hbFByb2NlZHVyZUNhbGxOb2RlIiwiZ2V0UHJvY2VkdXJlTmFtZSIsImZpbmRWYWx1ZXMiLCJzdWJzdGl0dXRpb25zIiwiZ2V0U3Vic3RpdHV0aW9ucyIsInZhbHVlcyIsIm1hcCIsInBhcmFtZXRlciIsInZhbHVlIiwiZmluZFZhbHVlIiwidmFsaWRhdGUiLCJub21pbmFsUHJvY2VkdXJlQ2FsbCIsIm5vbWluYWxQcm9jZWR1cmVDYWxsU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJ2YWxpZGF0ZXMiLCJwcm9jZWR1cmVOYW1lIiwicHJvY2VkdXJlIiwiZmluZFByb2NlZHVyZUJ5UHJvY2VkdXJlTmFtZSIsInByb2NlZHVyZUJvb2xlYW4iLCJpc0Jvb2xlYW4iLCJkZWJ1ZyIsInVuaWZ5SW5kZXBlbmRlbnRseSIsInVuaWZpZXNJbmRlcGVuZGVudGx5IiwidGVybSIsImNhbGxOb21pbmFsbHkiLCJleGNlcHRpb24iLCJtZXNzYWdlIiwiZ2V0TWVzc2FnZSIsImluZm8iLCJib29sZWFuIiwicHJpbWl0aXZlVmFsdWUiLCJnZXRQcmltaXRpdmVWYWx1ZSIsIm5hbWUiLCJ0b0pTT04iLCJnZXRCcmVha1BvaW50IiwiYnJlYWtQb2ludEpTT04iLCJicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiIsImpzb24iLCJmcm9tSlNPTiIsImluc3RhbnRpYXRlIiwiaW5zdGFudGlhdGVOb21pbmFsUHJvY2VkdXJlQ2FsbCIsImJyZWFrUG9pbnRGcm9tSlNPTiIsInBhcmFtZXRlcnNGcm9tTm9taW5hbFByb2NlZHVyZUNhbGxOb2RlIiwicHJvY2VkdXJlUmVmZXJlbmNlRnJvbU5vbWluYWxQcm9jZWR1cmVDYWxsTm9kZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBVUE7OztlQUFBOzs7Z0NBUndCOzBCQUVEO3lCQUNLOzZCQUNvQjs0QkFDZTt5QkFDd0M7TUFFdkcsV0FBZUEsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyw2QkFBNkJDLHVCQUFPO0lBQzlELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsVUFBVSxFQUFFQyxrQkFBa0IsQ0FBRTtRQUM3RSxLQUFLLENBQUNMLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsVUFBVSxHQUFHQTtRQUNsQixJQUFJLENBQUNDLGtCQUFrQixHQUFHQTtJQUM1QjtJQUVBQyxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQ0YsVUFBVTtJQUN4QjtJQUVBRyx3QkFBd0I7UUFDdEIsT0FBTyxJQUFJLENBQUNGLGtCQUFrQjtJQUNoQztJQUVBRyw4QkFBOEI7UUFDNUIsTUFBTU4sT0FBTyxJQUFJLENBQUNPLE9BQU8sSUFDbkJDLDJCQUEyQlI7UUFFakMsT0FBT1E7SUFDVDtJQUVBQyxtQkFBbUI7UUFBRSxPQUFPLElBQUksQ0FBQ04sa0JBQWtCLENBQUNNLGdCQUFnQjtJQUFJO0lBRXhFQyxXQUFXWixPQUFPLEVBQUU7UUFDbEIsTUFBTWEsZ0JBQWdCYixRQUFRYyxnQkFBZ0IsSUFDeENDLFNBQVMsSUFBSSxDQUFDWCxV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
@@ -9,11 +9,17 @@ Object.defineProperty(exports, "default", {
9
9
  }
10
10
  });
11
11
  const _occamlanguages = require("occam-languages");
12
+ const _value = /*#__PURE__*/ _interop_require_default(require("../value"));
12
13
  const _elements = require("../elements");
13
14
  const _context = require("../utilities/context");
14
15
  const _instantiate = require("../process/instantiate");
15
16
  const _breakPoint = require("../utilities/breakPoint");
16
17
  const _element = require("../utilities/element");
18
+ function _interop_require_default(obj) {
19
+ return obj && obj.__esModule ? obj : {
20
+ default: obj
21
+ };
22
+ }
17
23
  const _default = (0, _elements.define)(class Parameter extends _occamlanguages.Element {
18
24
  constructor(context, string, node, breakPoint, name, identifier){
19
25
  super(context, string, node, breakPoint);
@@ -30,8 +36,8 @@ const _default = (0, _elements.define)(class Parameter extends _occamlanguages.E
30
36
  const node = this.getNode(), parameterNode = node; ///
31
37
  return parameterNode;
32
38
  }
33
- findNode(substitutions) {
34
- let node = null;
39
+ findValue(substitutions) {
40
+ let value = null;
35
41
  const parameter = this, substitution = substitutions.find((substitution)=>{
36
42
  const substitutionComparesToParameter = substitution.compareParameter(parameter);
37
43
  if (substitutionComparesToParameter) {
@@ -39,10 +45,9 @@ const _default = (0, _elements.define)(class Parameter extends _occamlanguages.E
39
45
  }
40
46
  }) || null;
41
47
  if (substitution !== null) {
42
- const replacementNode = substitution.getReplacementNode();
43
- node = replacementNode; ///
48
+ value = _value.default.fromSubstitution(substitution);
44
49
  }
45
- return node;
50
+ return value;
46
51
  }
47
52
  static name = "Parameter";
48
53
  toJSON() {
@@ -67,4 +72,4 @@ const _default = (0, _elements.define)(class Parameter extends _occamlanguages.E
67
72
  }
68
73
  });
69
74
 
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3BhcmFtZXRlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IHsgZGVmaW5lIH0gZnJvbSBcIi4uL2VsZW1lbnRzXCI7XG5pbXBvcnQgeyBpbnN0YW50aWF0ZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvY29udGV4dFwiO1xuaW1wb3J0IHsgaW5zdGFudGlhdGVQYXJhbWV0ZXIgfSBmcm9tIFwiLi4vcHJvY2Vzcy9pbnN0YW50aWF0ZVwiO1xuaW1wb3J0IHsgYnJlYWtQb2ludEZyb21KU09OLCBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiB9IGZyb20gXCIuLi91dGlsaXRpZXMvYnJlYWtQb2ludFwiO1xuaW1wb3J0IHsgbmFtZUZyb21QYXJhbmV0ZXJOb2RlLCBpZGVudGlmaWVyRnJvbVBhcmFtZXRlck5vZGUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2VsZW1lbnRcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFBhcmFtZXRlciBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIG5hbWUsIGlkZW50aWZpZXIpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICB0aGlzLmlkZW50aWZpZXIgPSBpZGVudGlmaWVyO1xuICB9XG4gIFxuICBnZXROYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cblxuICBnZXRJZGVudGlmaWVyKCkge1xuICAgIHJldHVybiB0aGlzLmlkZW50aWZpZXI7XG4gIH1cblxuICBnZXRQYXJhbWV0ZXJOb2RlKCkge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLmdldE5vZGUoKSxcbiAgICAgICAgICBwYXJhbWV0ZXJOb2RlID0gbm9kZTsgLy8vXG5cbiAgICByZXR1cm4gcGFyYW1ldGVyTm9kZTtcbiAgfVxuXG4gIGZpbmROb2RlKHN1YnN0aXR1dGlvbnMpIHtcbiAgICBsZXQgbm9kZSA9IG51bGw7XG5cbiAgICBjb25zdCBwYXJhbWV0ZXIgPSB0aGlzLCAvLy9cbiAgICAgICAgICBzdWJzdGl0dXRpb24gPSBzdWJzdGl0dXRpb25zLmZpbmQoKHN1YnN0aXR1dGlvbikgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3Vic3RpdHV0aW9uQ29tcGFyZXNUb1BhcmFtZXRlciA9IHN1YnN0aXR1dGlvbi5jb21wYXJlUGFyYW1ldGVyKHBhcmFtZXRlcik7XG5cbiAgICAgICAgICAgIGlmIChzdWJzdGl0dXRpb25Db21wYXJlc1RvUGFyYW1ldGVyKSB7XG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pIHx8IG51bGw7XG5cbiAgICBpZiAoc3Vic3RpdHV0aW9uICE9PSBudWxsKSB7XG4gICAgICBjb25zdCByZXBsYWNlbWVudE5vZGUgPSBzdWJzdGl0dXRpb24uZ2V0UmVwbGFjZW1lbnROb2RlKCk7XG5cbiAgICAgIG5vZGUgPSByZXBsYWNlbWVudE5vZGU7IC8vL1xuICAgIH1cblxuICAgIHJldHVybiBub2RlO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlBhcmFtZXRlclwiO1xuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCBzdHJpbmcgPSB0aGlzLmdldFN0cmluZygpO1xuXG4gICAgbGV0IGJyZWFrUG9pbnQ7XG5cbiAgICBicmVha1BvaW50ID0gdGhpcy5nZXRCcmVha1BvaW50KCk7XG5cbiAgICBjb25zdCBicmVha1BvaW50SlNPTiA9IGJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OKGJyZWFrUG9pbnQpO1xuXG4gICAgYnJlYWtQb2ludCA9IGJyZWFrUG9pbnRKU09OOyAgLy8vXG5cbiAgICBjb25zdCBqc29uID0ge1xuICAgICAgc3RyaW5nLFxuICAgICAgYnJlYWtQb2ludFxuICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgcmV0dXJuIGluc3RhbnRpYXRlKChjb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCB7IHN0cmluZyB9ID0ganNvbixcbiAgICAgICAgICAgIHBhcmFtZXRlck5vZGUgPSBpbnN0YW50aWF0ZVBhcmFtZXRlcihzdHJpbmcsIGNvbnRleHQpLFxuICAgICAgICAgICAgbm9kZSA9IHBhcmFtZXRlck5vZGUsICAvLy9cbiAgICAgICAgICAgIGJyZWFrUG9pbnQgPSBicmVha1BvaW50RnJvbUpTT04oanNvbiksXG4gICAgICAgICAgICBuYW1lID0gbmFtZUZyb21QYXJhbmV0ZXJOb2RlKHBhcmFtZXRlck5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgaWRlbnRpZmllciA9IGlkZW50aWZpZXJGcm9tUGFyYW1ldGVyTm9kZShwYXJhbWV0ZXJOb2RlLCBjb250ZXh0KTtcblxuICAgICAgY29udGV4dCA9IG51bGw7XG5cbiAgICAgIGNvbnN0IHBhcmFtZXRlciA9IG5ldyBQYXJhbWV0ZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBuYW1lLCBpZGVudGlmaWVyKTtcblxuICAgICAgcmV0dXJuIHBhcmFtZXRlcjtcbiAgICB9LCBjb250ZXh0KTtcbiAgfVxufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiUGFyYW1ldGVyIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsIm5hbWUiLCJpZGVudGlmaWVyIiwiZ2V0TmFtZSIsImdldElkZW50aWZpZXIiLCJnZXRQYXJhbWV0ZXJOb2RlIiwiZ2V0Tm9kZSIsInBhcmFtZXRlck5vZGUiLCJmaW5kTm9kZSIsInN1YnN0aXR1dGlvbnMiLCJwYXJhbWV0ZXIiLCJzdWJzdGl0dXRpb24iLCJmaW5kIiwic3Vic3RpdHV0aW9uQ29tcGFyZXNUb1BhcmFtZXRlciIsImNvbXBhcmVQYXJhbWV0ZXIiLCJyZXBsYWNlbWVudE5vZGUiLCJnZXRSZXBsYWNlbWVudE5vZGUiLCJ0b0pTT04iLCJnZXRTdHJpbmciLCJnZXRCcmVha1BvaW50IiwiYnJlYWtQb2ludEpTT04iLCJicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiIsImpzb24iLCJmcm9tSlNPTiIsImluc3RhbnRpYXRlIiwiaW5zdGFudGlhdGVQYXJhbWV0ZXIiLCJicmVha1BvaW50RnJvbUpTT04iLCJuYW1lRnJvbVBhcmFuZXRlck5vZGUiLCJpZGVudGlmaWVyRnJvbVBhcmFtZXRlck5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVVBOzs7ZUFBQTs7O2dDQVJ3QjswQkFFRDt5QkFDSzs2QkFDUzs0QkFDMEI7eUJBQ0k7TUFFbkUsV0FBZUEsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxrQkFBa0JDLHVCQUFPO0lBQ25ELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsSUFBSSxFQUFFQyxVQUFVLENBQUU7UUFDL0QsS0FBSyxDQUFDTCxTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLElBQUksR0FBR0E7UUFDWixJQUFJLENBQUNDLFVBQVUsR0FBR0E7SUFDcEI7SUFFQUMsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDRixJQUFJO0lBQ2xCO0lBRUFHLGdCQUFnQjtRQUNkLE9BQU8sSUFBSSxDQUFDRixVQUFVO0lBQ3hCO0lBRUFHLG1CQUFtQjtRQUNqQixNQUFNTixPQUFPLElBQUksQ0FBQ08sT0FBTyxJQUNuQkMsZ0JBQWdCUixNQUFNLEdBQUc7UUFFL0IsT0FBT1E7SUFDVDtJQUVBQyxTQUFTQyxhQUFhLEVBQUU7UUFDdEIsSUFBSVYsT0FBTztRQUVYLE1BQU1XLFlBQVksSUFBSSxFQUNoQkMsZUFBZUYsY0FBY0csSUFBSSxDQUFDLENBQUNEO1lBQ2pDLE1BQU1FLGtDQUFrQ0YsYUFBYUcsZ0JBQWdCLENBQUNKO1lBRXRFLElBQUlHLGlDQUFpQztnQkFDbkMsT0FBTztZQUNUO1FBQ0YsTUFBTTtRQUVaLElBQUlGLGlCQUFpQixNQUFNO1lBQ3pCLE1BQU1JLGtCQUFrQkosYUFBYUssa0JBQWtCO1lBRXZEakIsT0FBT2dCLGlCQUFpQixHQUFHO1FBQzdCO1FBRUEsT0FBT2hCO0lBQ1Q7SUFFQSxPQUFPRSxPQUFPLFlBQVk7SUFFMUJnQixTQUFTO1FBQ1AsTUFBTW5CLFNBQVMsSUFBSSxDQUFDb0IsU0FBUztRQUU3QixJQUFJbEI7UUFFSkEsYUFBYSxJQUFJLENBQUNtQixhQUFhO1FBRS9CLE1BQU1DLGlCQUFpQkMsSUFBQUEsc0NBQTBCLEVBQUNyQjtRQUVsREEsYUFBYW9CLGdCQUFpQixHQUFHO1FBRWpDLE1BQU1FLE9BQU87WUFDWHhCO1lBQ0FFO1FBQ0Y7UUFFQSxPQUFPc0I7SUFDVDtJQUVBLE9BQU9DLFNBQVNELElBQUksRUFBRXpCLE9BQU8sRUFBRTtRQUM3QixPQUFPMkIsSUFBQUEsb0JBQVcsRUFBQyxDQUFDM0I7WUFDbEIsTUFBTSxFQUFFQyxNQUFNLEVBQUUsR0FBR3dCLE1BQ2JmLGdCQUFnQmtCLElBQUFBLGlDQUFvQixFQUFDM0IsUUFBUUQsVUFDN0NFLE9BQU9RLGVBQ1BQLGFBQWEwQixJQUFBQSw4QkFBa0IsRUFBQ0osT0FDaENyQixPQUFPMEIsSUFBQUEsOEJBQXFCLEVBQUNwQixlQUFlVixVQUM1Q0ssYUFBYTBCLElBQUFBLG9DQUEyQixFQUFDckIsZUFBZVY7WUFFOURBLFVBQVU7WUFFVixNQUFNYSxZQUFZLElBQUlmLFVBQVVFLFNBQVNDLFFBQVFDLE1BQU1DLFlBQVlDLE1BQU1DO1lBRXpFLE9BQU9RO1FBQ1QsR0FBR2I7SUFDTDtBQUNGIn0=
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3BhcmFtZXRlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IFZhbHVlIGZyb20gXCIuLi92YWx1ZVwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IGluc3RhbnRpYXRlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9jb250ZXh0XCI7XG5pbXBvcnQgeyBpbnN0YW50aWF0ZVBhcmFtZXRlciB9IGZyb20gXCIuLi9wcm9jZXNzL2luc3RhbnRpYXRlXCI7XG5pbXBvcnQgeyBicmVha1BvaW50RnJvbUpTT04sIGJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9icmVha1BvaW50XCI7XG5pbXBvcnQgeyBuYW1lRnJvbVBhcmFuZXRlck5vZGUsIGlkZW50aWZpZXJGcm9tUGFyYW1ldGVyTm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvZWxlbWVudFwiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgUGFyYW1ldGVyIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgbmFtZSwgaWRlbnRpZmllcikge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICAgIHRoaXMuaWRlbnRpZmllciA9IGlkZW50aWZpZXI7XG4gIH1cbiAgXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIGdldElkZW50aWZpZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuaWRlbnRpZmllcjtcbiAgfVxuXG4gIGdldFBhcmFtZXRlck5vZGUoKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Tm9kZSgpLFxuICAgICAgICAgIHBhcmFtZXRlck5vZGUgPSBub2RlOyAvLy9cblxuICAgIHJldHVybiBwYXJhbWV0ZXJOb2RlO1xuICB9XG5cbiAgZmluZFZhbHVlKHN1YnN0aXR1dGlvbnMpIHtcbiAgICBsZXQgdmFsdWUgPSBudWxsO1xuXG4gICAgY29uc3QgcGFyYW1ldGVyID0gdGhpcywgLy8vXG4gICAgICAgICAgc3Vic3RpdHV0aW9uID0gc3Vic3RpdHV0aW9ucy5maW5kKChzdWJzdGl0dXRpb24pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHN1YnN0aXR1dGlvbkNvbXBhcmVzVG9QYXJhbWV0ZXIgPSBzdWJzdGl0dXRpb24uY29tcGFyZVBhcmFtZXRlcihwYXJhbWV0ZXIpO1xuXG4gICAgICAgICAgICBpZiAoc3Vic3RpdHV0aW9uQ29tcGFyZXNUb1BhcmFtZXRlcikge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSB8fCBudWxsO1xuXG4gICAgaWYgKHN1YnN0aXR1dGlvbiAhPT0gbnVsbCkge1xuICAgICAgdmFsdWUgPSBWYWx1ZS5mcm9tU3Vic3RpdHV0aW9uKHN1YnN0aXR1dGlvbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlBhcmFtZXRlclwiO1xuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCBzdHJpbmcgPSB0aGlzLmdldFN0cmluZygpO1xuXG4gICAgbGV0IGJyZWFrUG9pbnQ7XG5cbiAgICBicmVha1BvaW50ID0gdGhpcy5nZXRCcmVha1BvaW50KCk7XG5cbiAgICBjb25zdCBicmVha1BvaW50SlNPTiA9IGJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OKGJyZWFrUG9pbnQpO1xuXG4gICAgYnJlYWtQb2ludCA9IGJyZWFrUG9pbnRKU09OOyAgLy8vXG5cbiAgICBjb25zdCBqc29uID0ge1xuICAgICAgc3RyaW5nLFxuICAgICAgYnJlYWtQb2ludFxuICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgcmV0dXJuIGluc3RhbnRpYXRlKChjb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCB7IHN0cmluZyB9ID0ganNvbixcbiAgICAgICAgICAgIHBhcmFtZXRlck5vZGUgPSBpbnN0YW50aWF0ZVBhcmFtZXRlcihzdHJpbmcsIGNvbnRleHQpLFxuICAgICAgICAgICAgbm9kZSA9IHBhcmFtZXRlck5vZGUsICAvLy9cbiAgICAgICAgICAgIGJyZWFrUG9pbnQgPSBicmVha1BvaW50RnJvbUpTT04oanNvbiksXG4gICAgICAgICAgICBuYW1lID0gbmFtZUZyb21QYXJhbmV0ZXJOb2RlKHBhcmFtZXRlck5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgaWRlbnRpZmllciA9IGlkZW50aWZpZXJGcm9tUGFyYW1ldGVyTm9kZShwYXJhbWV0ZXJOb2RlLCBjb250ZXh0KTtcblxuICAgICAgY29udGV4dCA9IG51bGw7XG5cbiAgICAgIGNvbnN0IHBhcmFtZXRlciA9IG5ldyBQYXJhbWV0ZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBuYW1lLCBpZGVudGlmaWVyKTtcblxuICAgICAgcmV0dXJuIHBhcmFtZXRlcjtcbiAgICB9LCBjb250ZXh0KTtcbiAgfVxufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiUGFyYW1ldGVyIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsIm5hbWUiLCJpZGVudGlmaWVyIiwiZ2V0TmFtZSIsImdldElkZW50aWZpZXIiLCJnZXRQYXJhbWV0ZXJOb2RlIiwiZ2V0Tm9kZSIsInBhcmFtZXRlck5vZGUiLCJmaW5kVmFsdWUiLCJzdWJzdGl0dXRpb25zIiwidmFsdWUiLCJwYXJhbWV0ZXIiLCJzdWJzdGl0dXRpb24iLCJmaW5kIiwic3Vic3RpdHV0aW9uQ29tcGFyZXNUb1BhcmFtZXRlciIsImNvbXBhcmVQYXJhbWV0ZXIiLCJWYWx1ZSIsImZyb21TdWJzdGl0dXRpb24iLCJ0b0pTT04iLCJnZXRTdHJpbmciLCJnZXRCcmVha1BvaW50IiwiYnJlYWtQb2ludEpTT04iLCJicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiIsImpzb24iLCJmcm9tSlNPTiIsImluc3RhbnRpYXRlIiwiaW5zdGFudGlhdGVQYXJhbWV0ZXIiLCJicmVha1BvaW50RnJvbUpTT04iLCJuYW1lRnJvbVBhcmFuZXRlck5vZGUiLCJpZGVudGlmaWVyRnJvbVBhcmFtZXRlck5vZGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVlBOzs7ZUFBQTs7O2dDQVZ3Qjs4REFFTjswQkFFSzt5QkFDSzs2QkFDUzs0QkFDMEI7eUJBQ0k7Ozs7OztNQUVuRSxXQUFlQSxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLGtCQUFrQkMsdUJBQU87SUFDbkQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsQ0FBRTtRQUMvRCxLQUFLLENBQUNMLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsVUFBVSxHQUFHQTtJQUNwQjtJQUVBQyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUNGLElBQUk7SUFDbEI7SUFFQUcsZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUNGLFVBQVU7SUFDeEI7SUFFQUcsbUJBQW1CO1FBQ2pCLE1BQU1OLE9BQU8sSUFBSSxDQUFDTyxPQUFPLElBQ25CQyxnQkFBZ0JSLE1BQU0sR0FBRztRQUUvQixPQUFPUTtJQUNUO0lBRUFDLFVBQVVDLGFBQWEsRUFBRTtRQUN2QixJQUFJQyxRQUFRO1FBRVosTUFBTUMsWUFBWSxJQUFJLEVBQ2hCQyxlQUFlSCxjQUFjSSxJQUFJLENBQUMsQ0FBQ0Q7WUFDakMsTUFBTUUsa0NBQWtDRixhQUFhRyxnQkFBZ0IsQ0FBQ0o7WUFFdEUsSUFBSUcsaUNBQWlDO2dCQUNuQyxPQUFPO1lBQ1Q7UUFDRixNQUFNO1FBRVosSUFBSUYsaUJBQWlCLE1BQU07WUFDekJGLFFBQVFNLGNBQUssQ0FBQ0MsZ0JBQWdCLENBQUNMO1FBQ2pDO1FBRUEsT0FBT0Y7SUFDVDtJQUVBLE9BQU9ULE9BQU8sWUFBWTtJQUUxQmlCLFNBQVM7UUFDUCxNQUFNcEIsU0FBUyxJQUFJLENBQUNxQixTQUFTO1FBRTdCLElBQUluQjtRQUVKQSxhQUFhLElBQUksQ0FBQ29CLGFBQWE7UUFFL0IsTUFBTUMsaUJBQWlCQyxJQUFBQSxzQ0FBMEIsRUFBQ3RCO1FBRWxEQSxhQUFhcUIsZ0JBQWlCLEdBQUc7UUFFakMsTUFBTUUsT0FBTztZQUNYekI7WUFDQUU7UUFDRjtRQUVBLE9BQU91QjtJQUNUO0lBRUEsT0FBT0MsU0FBU0QsSUFBSSxFQUFFMUIsT0FBTyxFQUFFO1FBQzdCLE9BQU80QixJQUFBQSxvQkFBVyxFQUFDLENBQUM1QjtZQUNsQixNQUFNLEVBQUVDLE1BQU0sRUFBRSxHQUFHeUIsTUFDYmhCLGdCQUFnQm1CLElBQUFBLGlDQUFvQixFQUFDNUIsUUFBUUQsVUFDN0NFLE9BQU9RLGVBQ1BQLGFBQWEyQixJQUFBQSw4QkFBa0IsRUFBQ0osT0FDaEN0QixPQUFPMkIsSUFBQUEsOEJBQXFCLEVBQUNyQixlQUFlVixVQUM1Q0ssYUFBYTJCLElBQUFBLG9DQUEyQixFQUFDdEIsZUFBZVY7WUFFOURBLFVBQVU7WUFFVixNQUFNYyxZQUFZLElBQUloQixVQUFVRSxTQUFTQyxRQUFRQyxNQUFNQyxZQUFZQyxNQUFNQztZQUV6RSxPQUFPUztRQUNULEdBQUdkO0lBQ0w7QUFDRiJ9
@@ -45,9 +45,6 @@ _export(exports, {
45
45
  get enclose () {
46
46
  return enclose;
47
47
  },
48
- get evaluate () {
49
- return evaluate;
50
- },
51
48
  get ground () {
52
49
  return ground;
53
50
  },
@@ -91,13 +88,6 @@ function _interop_require_default(obj) {
91
88
  default: obj
92
89
  };
93
90
  }
94
- function evaluate(procedure, nodes, context) {
95
- const tokens = context.getTokens();
96
- context = procedure.getContext();
97
- const literalContext = _literal.default.fromTokens(tokens, context);
98
- context = literalContext; ///
99
- return procedure.callNominally(nodes, context);
100
- }
101
91
  function ground(innerFunction) {
102
92
  let context;
103
93
  const nominalContext = _nominal.default.fromNothing();
@@ -245,4 +235,4 @@ function isContextGroundedContext(context) {
245
235
  return contextGroundedContext;
246
236
  }
247
237
 
248
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGV4dC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IE1uZW1pY0NvbnRleHQgZnJvbSBcIi4uL2NvbnRleHQvbW5lbWljXCI7XG5pbXBvcnQgTmVzdGVkQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9uZXN0ZWRcIjtcbmltcG9ydCBUaGV0aWNDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L3RoZXRpY1wiO1xuaW1wb3J0IEFwaGFzaWNDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L2FwaGFzaWNcIjtcbmltcG9ydCBCb3VuZGVkQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9ib3VuZGVkXCI7XG5pbXBvcnQgTm9taW5hbENvbnRleHQgZnJvbSBcIi4uL2NvbnRleHQvbm9taW5hbFwiO1xuaW1wb3J0IExpdGVyYWxDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L2xpdGVyYWxcIjtcbmltcG9ydCBMaW1pbmFsQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9saW1pbmFsXCI7XG5pbXBvcnQgUGhhbmVyaWNDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L3BoYW5lcmljXCI7XG5pbXBvcnQgSWxsYXRpdmVDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L2lsbGF0aXZlXCI7XG5pbXBvcnQgQnJhbmNoaW5nQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9icmFuY2hpbmdcIjtcbmltcG9ydCBOb21pbmFsRmlsZUNvbnRleHQgZnJvbSBcIi4uL2NvbnRleHQvZmlsZS9ub21pbmFsXCI7XG5cbmltcG9ydCB7IG1uZW1pY0NvbnRleHRGcm9tSlNPTiwgbW5lbWljQ29udGV4dHNGcm9tSlNPTiwgbW5lbWljQ29udGV4dFRvTW5lbWljQ29udGV4dEpTT04sIG1uZW1pY0NvbnRleHRzVG9NbmVtaWNDb250ZXh0c0pTT04gfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2pzb25cIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGV2YWx1YXRlKHByb2NlZHVyZSwgbm9kZXMsIGNvbnRleHQpIHtcbiAgY29uc3QgdG9rZW5zID0gY29udGV4dC5nZXRUb2tlbnMoKTtcblxuICBjb250ZXh0ID0gcHJvY2VkdXJlLmdldENvbnRleHQoKTtcblxuICBjb25zdCBsaXRlcmFsQ29udGV4dCA9IExpdGVyYWxDb250ZXh0LmZyb21Ub2tlbnModG9rZW5zLCBjb250ZXh0KTtcblxuICBjb250ZXh0ID0gbGl0ZXJhbENvbnRleHQ7ICAvLy9cblxuICByZXR1cm4gcHJvY2VkdXJlLmNhbGxOb21pbmFsbHkobm9kZXMsIGNvbnRleHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ3JvdW5kKGlubmVyRnVuY3Rpb24pIHtcbiAgbGV0IGNvbnRleHQ7XG5cbiAgY29uc3Qgbm9taW5hbENvbnRleHQgPSBOb21pbmFsQ29udGV4dC5mcm9tTm90aGluZygpO1xuXG4gIGNvbnRleHQgPSBub21pbmFsQ29udGV4dDsgLy8vXG5cbiAgY29uc3QgbGl0ZXJhbENvbnRleHQgPSBMaXRlcmFsQ29udGV4dC5mcm9tTm90aGluZyhjb250ZXh0KTtcblxuICBjb250ZXh0ID0gbGl0ZXJhbENvbnRleHQ7ICAvLy9cblxuICByZXR1cm4gaW5uZXJGdW5jdGlvbihjb250ZXh0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlY2xhcmUoaW5uZXJGdW5jdGlvbiwgY29udGV4dCkge1xuICBjb25zdCB0aGV0aWNDb250ZXh0ID0gVGhldGljQ29udGV4dC5mcm9tTm90aGluZyhjb250ZXh0KTtcblxuICBjb250ZXh0ID0gdGhldGljQ29udGV4dDsgIC8vL1xuXG4gIHJldHVybiBpbm5lckZ1bmN0aW9uKGNvbnRleHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVyaXZlKGlubmVyRnVuY3Rpb24sIGNvbnRleHQpIHtcbiAgY29uc3QgaWxsYXRpdmVDb250ZXh0ID0gSWxsYXRpdmVDb250ZXh0LmZyb21Ob3RoaW5nKGNvbnRleHQpO1xuXG4gIGNvbnRleHQgPSBpbGxhdGl2ZUNvbnRleHQ7ICAvLy9cblxuICByZXR1cm4gaW5uZXJGdW5jdGlvbihjb250ZXh0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVsaWRlKGlubmVyRnVuY3Rpb24sIGNvbnRleHQpIHtcbiAgY29uc3QgYXBoYXNpY0NvbnRleHQgPSBBcGhhc2ljQ29udGV4dC5mcm9tTm90aGluZyhjb250ZXh0KTtcblxuICBjb250ZXh0ID0gYXBoYXNpY0NvbnRleHQ7ICAvLy9cblxuICByZXR1cm4gaW5uZXJGdW5jdGlvbihjb250ZXh0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVuY2xvc2UoaW5uZXJGdW5jdGlvbiwgY29udGV4dCkge1xuICBjb25zdCBib3VuZGVkQ29udGV4dCA9IEJvdW5kZWRDb250ZXh0LmZyb21Ob3RoaW5nKGNvbnRleHQpO1xuXG4gIGNvbnRleHQgPSBib3VuZGVkQ29udGV4dDsgIC8vL1xuXG4gIHJldHVybiBpbm5lckZ1bmN0aW9uKGNvbnRleHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZW5jYXBzdWxhdGUoaW5uZXJGdW5jdGlvbiwgbWV0YUxldmVsQXNzdW1wdGlvbnMsIGNvbnRleHQpIHtcbiAgY29uc3QgYm91bmRlZENvbnRleHQgPSBCb3VuZGVkQ29udGV4dC5mcm9tTWV0YUxldmVsQXNzdW1wdGlvbnMobWV0YUxldmVsQXNzdW1wdGlvbnMsIGNvbnRleHQpO1xuXG4gIGNvbnRleHQgPSBib3VuZGVkQ29udGV4dDsgIC8vL1xuXG4gIHJldHVybiBpbm5lckZ1bmN0aW9uKGNvbnRleHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2hvb3NlKGlubmVyRnVuY3Rpb24sIGNvbnRleHQpIHtcbiAgY29uc3QgYnJhbmNoaW5nQ29udGV4dCA9IEJyYW5jaGluZ0NvbnRleHQuZnJvbU5vdGhpbmcoY29udGV4dCk7XG5cbiAgY29udGV4dCA9IGJyYW5jaGluZ0NvbnRleHQ7ICAvLy9cblxuICByZXR1cm4gaW5uZXJGdW5jdGlvbihjb250ZXh0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlc2NlbmQoaW5uZXJGdW5jdGlvbiwgY29udGV4dCkge1xuICBjb25zdCBuZXN0ZWRDb250ZXh0ID0gTmVzdGVkQ29udGV4dC5mcm9tTm90aGluZyhjb250ZXh0KTtcblxuICBjb250ZXh0ID0gbmVzdGVkQ29udGV4dDsgIC8vL1xuXG4gIHJldHVybiBpbm5lckZ1bmN0aW9uKGNvbnRleHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWJsYXRlKGlubmVyRnVuY3Rpb24sIGNvbnRleHQpIHtcbiAgY29uc3QgdW5yZWxlYXNlZCA9IGNvbnRleHQuaXNVbnJlbGVhc2VkKCk7XG5cbiAgaWYgKHVucmVsZWFzZWQpIHtcbiAgICBjb250ZXh0ID0gYWJsYXRlQ29udGV4dChjb250ZXh0KTsgLy8vXG4gIH1cblxuICByZXR1cm4gaW5uZXJGdW5jdGlvbihjb250ZXh0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGF0dGVtcHQoaW5uZXJGdW5jdGlvbiwgY29udGV4dCkge1xuICBjb25zdCB1bnJlbGVhc2VkID0gY29udGV4dC5pc1VucmVsZWFzZWQoKTtcblxuICBpZiAodW5yZWxlYXNlZCkge1xuICAgIGNvbnN0IG1uZW1pY0NvbnRleHQgPSBNbmVtaWNDb250ZXh0LmZyb21Ob3RoaW5nKGNvbnRleHQpO1xuXG4gICAgY29udGV4dCA9IG1uZW1pY0NvbnRleHQ7ICAvLy9cbiAgfVxuXG4gIHJldHVybiBpbm5lckZ1bmN0aW9uKGNvbnRleHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVjb25jaWxlKGlubmVyRnVuY3Rpb24sIGNvbnRleHQpIHtcbiAgY29uc3QgbGltaW5hbENvbnRleHQgPSBMaW1pbmFsQ29udGV4dC5mcm9tTm90aGluZyhjb250ZXh0KTtcblxuICBjb250ZXh0ID0gbGltaW5hbENvbnRleHQ7ICAvLy9cblxuICByZXR1cm4gaW5uZXJGdW5jdGlvbihjb250ZXh0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNlcmlhbGlzZShpbm5lckZ1bmN0aW9uLCBjb250ZXh0KSB7XG4gIGNvbnN0IG1uZW1pY0NvbnRleHQgPSBjb250ZXh0LCAvLy9cbiAgICAgICAgbW5lbWljQ29udGV4dEpTT04gPSBtbmVtaWNDb250ZXh0VG9NbmVtaWNDb250ZXh0SlNPTihtbmVtaWNDb250ZXh0KSxcbiAgICAgICAgY29udGV4dEpTT04gPSBtbmVtaWNDb250ZXh0SlNPTjsgLy8vXG5cbiAgY29udGV4dCA9IGNvbnRleHRKU09OOyAgLy8vXG5cbiAgcmV0dXJuIGlubmVyRnVuY3Rpb24oY29udGV4dCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1bnNlcmlhbGlzZShpbm5lckZ1bmN0aW9uLCBqc29uLCBjb250ZXh0KSB7XG4gIGNvbnN0IG1uZW1pY0NvbnRleHQgPSBtbmVtaWNDb250ZXh0RnJvbUpTT04oanNvbiwgY29udGV4dCk7XG5cbiAgY29udGV4dCA9IG1uZW1pY0NvbnRleHQ7IC8vL1xuXG4gIHJldHVybiBpbm5lckZ1bmN0aW9uKGpzb24sIGNvbnRleHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5zZXJpYWxpc2VzKGlubmVyRnVuY3Rpb24sIGpzb24sIGNvbnRleHQpIHtcbiAgY29uc3QgbW5lbWljQ29udGV4dHMgPSBtbmVtaWNDb250ZXh0c0Zyb21KU09OKGpzb24sIGNvbnRleHQpLFxuICAgICAgICBjb250ZXh0cyA9IG1uZW1pY0NvbnRleHRzOyAvLy9cblxuICByZXR1cm4gaW5uZXJGdW5jdGlvbihqc29uLCAuLi5jb250ZXh0cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZShpbm5lckZ1bmN0aW9uLCBjb250ZXh0KSB7XG4gIGNvbnN0IGxpdGVyYWxDb250ZXh0ID0gTGl0ZXJhbENvbnRleHQuZnJvbU5vdGhpbmcoY29udGV4dCk7XG5cbiAgY29udGV4dCA9IGxpdGVyYWxDb250ZXh0OyAgLy8vXG5cbiAgcmV0dXJuIGlubmVyRnVuY3Rpb24oY29udGV4dCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYW5pZmVzdChpbm5lckZ1bmN0aW9uLCAuLi5jb250ZXh0cykge1xuICBjb25zdCBwaGFuZXJpY0NvbnRleHQgPSBQaGFuZXJpY0NvbnRleHQuZnJvbUNvbnRleHRzKGNvbnRleHRzKSxcbiAgICAgICAgY29udGV4dCA9IHBoYW5lcmljQ29udGV4dDsgIC8vL1xuXG4gIHJldHVybiBpbm5lckZ1bmN0aW9uKGNvbnRleHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXR0ZW1wdHMoaW5uZXJGdW5jdGlvbiwgLi4uY29udGV4dHMpIHtcbiAgY29udGV4dHMgPSBjb250ZXh0cy5tYXAoKGNvbnRleHQpID0+IHsgIC8vL1xuICAgIGNvbnN0IHVucmVsZWFzZWQgPSBjb250ZXh0LmlzVW5yZWxlYXNlZCgpO1xuXG4gICAgaWYgKHVucmVsZWFzZWQpIHtcbiAgICAgIGNvbnN0IG1uZW1pY0NvbnRleHQgPSBNbmVtaWNDb250ZXh0LmZyb21Ob3RoaW5nKGNvbnRleHQpO1xuXG4gICAgICBjb250ZXh0ID0gbW5lbWljQ29udGV4dDsgIC8vL1xuICAgIH1cblxuICAgIHJldHVybiBjb250ZXh0O1xuICB9KTtcblxuICByZXR1cm4gaW5uZXJGdW5jdGlvbiguLi5jb250ZXh0cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpc2VzKGlubmVyRnVuY3Rpb24sIC4uLmNvbnRleHRzKSB7XG4gIGNvbnN0IG1uZW1pY0NvbnRleHRzID0gY29udGV4dHMsIC8vL1xuICAgICAgICBtbmVtaWNDb250ZXh0c0pTT04gPSBtbmVtaWNDb250ZXh0c1RvTW5lbWljQ29udGV4dHNKU09OKG1uZW1pY0NvbnRleHRzKSxcbiAgICAgICAgY29udGV4dHNKU09OID0gbW5lbWljQ29udGV4dHNKU09OOyAvLy9cblxuICBjb250ZXh0cyA9IGNvbnRleHRzSlNPTjsgIC8vL1xuXG4gIHJldHVybiBpbm5lckZ1bmN0aW9uKC4uLmNvbnRleHRzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFibGF0ZXMoaW5uZXJGdW5jdGlvbiwgLi4uY29udGV4dHMpIHtcbiAgY29udGV4dHMgPSBjb250ZXh0cy5tYXAoKGNvbnRleHQpID0+IHsgIC8vL1xuICAgIGNvbnN0IHVucmVsZWFzZWQgPSBjb250ZXh0LmlzVW5yZWxlYXNlZCgpO1xuXG4gICAgaWYgKHVucmVsZWFzZWQpIHtcbiAgICAgIGNvbnRleHQgPSBhYmxhdGVDb250ZXh0KGNvbnRleHQpOyAvLy9cbiAgICB9XG5cbiAgICByZXR1cm4gY29udGV4dDtcbiAgfSk7XG5cbiAgcmV0dXJuIGlubmVyRnVuY3Rpb24oLi4uY29udGV4dHMpO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGV2YWx1YXRlLFxuICBncm91bmQsXG4gIGRlY2xhcmUsXG4gIGRlcml2ZSxcbiAgZWxpZGUsXG4gIGVuY2xvc2UsXG4gIGVuY2Fwc3VsYXRlLFxuICBjaG9vc2UsXG4gIGRlc2NlbmQsXG4gIGFibGF0ZSxcbiAgYXR0ZW1wdCxcbiAgcmVjb25jaWxlLFxuICBzZXJpYWxpc2UsXG4gIHVuc2VyaWFsaXNlLFxuICB1bnNlcmlhbGlzZXMsXG4gIGluc3RhbnRpYXRlLFxuICBtYW5pZmVzdCxcbiAgYXR0ZW1wdHMsXG4gIHNlcmlhbGlzZXMsXG4gIGFibGF0ZXNcbn07XG5cbmZ1bmN0aW9uIGFibGF0ZUNvbnRleHQoY29udGV4dCkge1xuICAgIGxldCBjb250ZXh0R3JvdW5kZWRDb250ZXh0ID0gaXNDb250ZXh0R3JvdW5kZWRDb250ZXh0KGNvbnRleHQpO1xuXG4gICAgd2hpbGUgKCFjb250ZXh0R3JvdW5kZWRDb250ZXh0KSB7XG4gICAgICBjb250ZXh0ID0gY29udGV4dC5nZXRDb250ZXh0KCk7XG5cbiAgICAgIGNvbnRleHRHcm91bmRlZENvbnRleHQgPSBpc0NvbnRleHRHcm91bmRlZENvbnRleHQoY29udGV4dCk7XG4gICAgfVxuXG4gIHJldHVybiBjb250ZXh0O1xufVxuXG5mdW5jdGlvbiBpc0NvbnRleHRHcm91bmRlZENvbnRleHQoY29udGV4dCkge1xuICBjb25zdCBjb250ZXh0VGhldGljQ29udGV4dCA9IChjb250ZXh0IGluc3RhbmNlb2YgVGhldGljQ29udGV4dCksXG4gICAgICAgIGNvbnRleHRJbGxhdGl2ZUNvbnRleHQgPSAoY29udGV4dCBpbnN0YW5jZW9mIElsbGF0aXZlQ29udGV4dCksXG4gICAgICAgIGNvbnRleHROb21pbmFsRmlsZUNvbnRleHQgPSAoY29udGV4dCBpbnN0YW5jZW9mIE5vbWluYWxGaWxlQ29udGV4dCksXG4gICAgICAgIGNvbnRleHRHcm91bmRlZENvbnRleHQgPSAoY29udGV4dFRoZXRpY0NvbnRleHQgfHwgY29udGV4dElsbGF0aXZlQ29udGV4dCB8fCBjb250ZXh0Tm9taW5hbEZpbGVDb250ZXh0KTtcblxuICByZXR1cm4gY29udGV4dEdyb3VuZGVkQ29udGV4dDtcbn1cbiJdLCJuYW1lcyI6WyJhYmxhdGUiLCJhYmxhdGVzIiwiYXR0ZW1wdCIsImF0dGVtcHRzIiwiY2hvb3NlIiwiZGVjbGFyZSIsImRlcml2ZSIsImRlc2NlbmQiLCJlbGlkZSIsImVuY2Fwc3VsYXRlIiwiZW5jbG9zZSIsImV2YWx1YXRlIiwiZ3JvdW5kIiwiaW5zdGFudGlhdGUiLCJtYW5pZmVzdCIsInJlY29uY2lsZSIsInNlcmlhbGlzZSIsInNlcmlhbGlzZXMiLCJ1bnNlcmlhbGlzZSIsInVuc2VyaWFsaXNlcyIsInByb2NlZHVyZSIsIm5vZGVzIiwiY29udGV4dCIsInRva2VucyIsImdldFRva2VucyIsImdldENvbnRleHQiLCJsaXRlcmFsQ29udGV4dCIsIkxpdGVyYWxDb250ZXh0IiwiZnJvbVRva2VucyIsImNhbGxOb21pbmFsbHkiLCJpbm5lckZ1bmN0aW9uIiwibm9taW5hbENvbnRleHQiLCJOb21pbmFsQ29udGV4dCIsImZyb21Ob3RoaW5nIiwidGhldGljQ29udGV4dCIsIlRoZXRpY0NvbnRleHQiLCJpbGxhdGl2ZUNvbnRleHQiLCJJbGxhdGl2ZUNvbnRleHQiLCJhcGhhc2ljQ29udGV4dCIsIkFwaGFzaWNDb250ZXh0IiwiYm91bmRlZENvbnRleHQiLCJCb3VuZGVkQ29udGV4dCIsIm1ldGFMZXZlbEFzc3VtcHRpb25zIiwiZnJvbU1ldGFMZXZlbEFzc3VtcHRpb25zIiwiYnJhbmNoaW5nQ29udGV4dCIsIkJyYW5jaGluZ0NvbnRleHQiLCJuZXN0ZWRDb250ZXh0IiwiTmVzdGVkQ29udGV4dCIsInVucmVsZWFzZWQiLCJpc1VucmVsZWFzZWQiLCJhYmxhdGVDb250ZXh0IiwibW5lbWljQ29udGV4dCIsIk1uZW1pY0NvbnRleHQiLCJsaW1pbmFsQ29udGV4dCIsIkxpbWluYWxDb250ZXh0IiwibW5lbWljQ29udGV4dEpTT04iLCJtbmVtaWNDb250ZXh0VG9NbmVtaWNDb250ZXh0SlNPTiIsImNvbnRleHRKU09OIiwianNvbiIsIm1uZW1pY0NvbnRleHRGcm9tSlNPTiIsIm1uZW1pY0NvbnRleHRzIiwibW5lbWljQ29udGV4dHNGcm9tSlNPTiIsImNvbnRleHRzIiwicGhhbmVyaWNDb250ZXh0IiwiUGhhbmVyaWNDb250ZXh0IiwiZnJvbUNvbnRleHRzIiwibWFwIiwibW5lbWljQ29udGV4dHNKU09OIiwibW5lbWljQ29udGV4dHNUb01uZW1pY0NvbnRleHRzSlNPTiIsImNvbnRleHRzSlNPTiIsImNvbnRleHRHcm91bmRlZENvbnRleHQiLCJpc0NvbnRleHRHcm91bmRlZENvbnRleHQiLCJjb250ZXh0VGhldGljQ29udGV4dCIsImNvbnRleHRJbGxhdGl2ZUNvbnRleHQiLCJjb250ZXh0Tm9taW5hbEZpbGVDb250ZXh0IiwiTm9taW5hbEZpbGVDb250ZXh0Il0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFtR2dCQTtlQUFBQTs7UUFnR0FDO2VBQUFBOztRQXRGQUM7ZUFBQUE7O1FBNERBQztlQUFBQTs7UUF0RkFDO2VBQUFBOztRQXhDQUM7ZUFBQUE7O1FBc0toQjtlQUFBOztRQTlKZ0JDO2VBQUFBOztRQXdDQUM7ZUFBQUE7O1FBaENBQztlQUFBQTs7UUFnQkFDO2VBQUFBOztRQVJBQztlQUFBQTs7UUFsREFDO2VBQUFBOztRQVlBQztlQUFBQTs7UUE2SEFDO2VBQUFBOztRQVFBQztlQUFBQTs7UUF6Q0FDO2VBQUFB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
238
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGV4dC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IE1uZW1pY0NvbnRleHQgZnJvbSBcIi4uL2NvbnRleHQvbW5lbWljXCI7XG5pbXBvcnQgTmVzdGVkQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9uZXN0ZWRcIjtcbmltcG9ydCBUaGV0aWNDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L3RoZXRpY1wiO1xuaW1wb3J0IEFwaGFzaWNDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L2FwaGFzaWNcIjtcbmltcG9ydCBCb3VuZGVkQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9ib3VuZGVkXCI7XG5pbXBvcnQgTm9taW5hbENvbnRleHQgZnJvbSBcIi4uL2NvbnRleHQvbm9taW5hbFwiO1xuaW1wb3J0IExpdGVyYWxDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L2xpdGVyYWxcIjtcbmltcG9ydCBMaW1pbmFsQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9saW1pbmFsXCI7XG5pbXBvcnQgUGhhbmVyaWNDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L3BoYW5lcmljXCI7XG5pbXBvcnQgSWxsYXRpdmVDb250ZXh0IGZyb20gXCIuLi9jb250ZXh0L2lsbGF0aXZlXCI7XG5pbXBvcnQgQnJhbmNoaW5nQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9icmFuY2hpbmdcIjtcbmltcG9ydCBOb21pbmFsRmlsZUNvbnRleHQgZnJvbSBcIi4uL2NvbnRleHQvZmlsZS9ub21pbmFsXCI7XG5cbmltcG9ydCB7IG1uZW1pY0NvbnRleHRGcm9tSlNPTiwgbW5lbWljQ29udGV4dHNGcm9tSlNPTiwgbW5lbWljQ29udGV4dFRvTW5lbWljQ29udGV4dEpTT04sIG1uZW1pY0NvbnRleHRzVG9NbmVtaWNDb250ZXh0c0pTT04gfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2pzb25cIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGdyb3VuZChpbm5lckZ1bmN0aW9uKSB7XG4gIGxldCBjb250ZXh0O1xuXG4gIGNvbnN0IG5vbWluYWxDb250ZXh0ID0gTm9taW5hbENvbnRleHQuZnJvbU5vdGhpbmcoKTtcblxuICBjb250ZXh0ID0gbm9taW5hbENvbnRleHQ7IC8vL1xuXG4gIGNvbnN0IGxpdGVyYWxDb250ZXh0ID0gTGl0ZXJhbENvbnRleHQuZnJvbU5vdGhpbmcoY29udGV4dCk7XG5cbiAgY29udGV4dCA9IGxpdGVyYWxDb250ZXh0OyAgLy8vXG5cbiAgcmV0dXJuIGlubmVyRnVuY3Rpb24oY29udGV4dCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWNsYXJlKGlubmVyRnVuY3Rpb24sIGNvbnRleHQpIHtcbiAgY29uc3QgdGhldGljQ29udGV4dCA9IFRoZXRpY0NvbnRleHQuZnJvbU5vdGhpbmcoY29udGV4dCk7XG5cbiAgY29udGV4dCA9IHRoZXRpY0NvbnRleHQ7ICAvLy9cblxuICByZXR1cm4gaW5uZXJGdW5jdGlvbihjb250ZXh0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlcml2ZShpbm5lckZ1bmN0aW9uLCBjb250ZXh0KSB7XG4gIGNvbnN0IGlsbGF0aXZlQ29udGV4dCA9IElsbGF0aXZlQ29udGV4dC5mcm9tTm90aGluZyhjb250ZXh0KTtcblxuICBjb250ZXh0ID0gaWxsYXRpdmVDb250ZXh0OyAgLy8vXG5cbiAgcmV0dXJuIGlubmVyRnVuY3Rpb24oY29udGV4dCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbGlkZShpbm5lckZ1bmN0aW9uLCBjb250ZXh0KSB7XG4gIGNvbnN0IGFwaGFzaWNDb250ZXh0ID0gQXBoYXNpY0NvbnRleHQuZnJvbU5vdGhpbmcoY29udGV4dCk7XG5cbiAgY29udGV4dCA9IGFwaGFzaWNDb250ZXh0OyAgLy8vXG5cbiAgcmV0dXJuIGlubmVyRnVuY3Rpb24oY29udGV4dCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbmNsb3NlKGlubmVyRnVuY3Rpb24sIGNvbnRleHQpIHtcbiAgY29uc3QgYm91bmRlZENvbnRleHQgPSBCb3VuZGVkQ29udGV4dC5mcm9tTm90aGluZyhjb250ZXh0KTtcblxuICBjb250ZXh0ID0gYm91bmRlZENvbnRleHQ7ICAvLy9cblxuICByZXR1cm4gaW5uZXJGdW5jdGlvbihjb250ZXh0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVuY2Fwc3VsYXRlKGlubmVyRnVuY3Rpb24sIG1ldGFMZXZlbEFzc3VtcHRpb25zLCBjb250ZXh0KSB7XG4gIGNvbnN0IGJvdW5kZWRDb250ZXh0ID0gQm91bmRlZENvbnRleHQuZnJvbU1ldGFMZXZlbEFzc3VtcHRpb25zKG1ldGFMZXZlbEFzc3VtcHRpb25zLCBjb250ZXh0KTtcblxuICBjb250ZXh0ID0gYm91bmRlZENvbnRleHQ7ICAvLy9cblxuICByZXR1cm4gaW5uZXJGdW5jdGlvbihjb250ZXh0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNob29zZShpbm5lckZ1bmN0aW9uLCBjb250ZXh0KSB7XG4gIGNvbnN0IGJyYW5jaGluZ0NvbnRleHQgPSBCcmFuY2hpbmdDb250ZXh0LmZyb21Ob3RoaW5nKGNvbnRleHQpO1xuXG4gIGNvbnRleHQgPSBicmFuY2hpbmdDb250ZXh0OyAgLy8vXG5cbiAgcmV0dXJuIGlubmVyRnVuY3Rpb24oY29udGV4dCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZXNjZW5kKGlubmVyRnVuY3Rpb24sIGNvbnRleHQpIHtcbiAgY29uc3QgbmVzdGVkQ29udGV4dCA9IE5lc3RlZENvbnRleHQuZnJvbU5vdGhpbmcoY29udGV4dCk7XG5cbiAgY29udGV4dCA9IG5lc3RlZENvbnRleHQ7ICAvLy9cblxuICByZXR1cm4gaW5uZXJGdW5jdGlvbihjb250ZXh0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFibGF0ZShpbm5lckZ1bmN0aW9uLCBjb250ZXh0KSB7XG4gIGNvbnN0IHVucmVsZWFzZWQgPSBjb250ZXh0LmlzVW5yZWxlYXNlZCgpO1xuXG4gIGlmICh1bnJlbGVhc2VkKSB7XG4gICAgY29udGV4dCA9IGFibGF0ZUNvbnRleHQoY29udGV4dCk7IC8vL1xuICB9XG5cbiAgcmV0dXJuIGlubmVyRnVuY3Rpb24oY29udGV4dCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhdHRlbXB0KGlubmVyRnVuY3Rpb24sIGNvbnRleHQpIHtcbiAgY29uc3QgdW5yZWxlYXNlZCA9IGNvbnRleHQuaXNVbnJlbGVhc2VkKCk7XG5cbiAgaWYgKHVucmVsZWFzZWQpIHtcbiAgICBjb25zdCBtbmVtaWNDb250ZXh0ID0gTW5lbWljQ29udGV4dC5mcm9tTm90aGluZyhjb250ZXh0KTtcblxuICAgIGNvbnRleHQgPSBtbmVtaWNDb250ZXh0OyAgLy8vXG4gIH1cblxuICByZXR1cm4gaW5uZXJGdW5jdGlvbihjb250ZXh0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlY29uY2lsZShpbm5lckZ1bmN0aW9uLCBjb250ZXh0KSB7XG4gIGNvbnN0IGxpbWluYWxDb250ZXh0ID0gTGltaW5hbENvbnRleHQuZnJvbU5vdGhpbmcoY29udGV4dCk7XG5cbiAgY29udGV4dCA9IGxpbWluYWxDb250ZXh0OyAgLy8vXG5cbiAgcmV0dXJuIGlubmVyRnVuY3Rpb24oY29udGV4dCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpc2UoaW5uZXJGdW5jdGlvbiwgY29udGV4dCkge1xuICBjb25zdCBtbmVtaWNDb250ZXh0ID0gY29udGV4dCwgLy8vXG4gICAgICAgIG1uZW1pY0NvbnRleHRKU09OID0gbW5lbWljQ29udGV4dFRvTW5lbWljQ29udGV4dEpTT04obW5lbWljQ29udGV4dCksXG4gICAgICAgIGNvbnRleHRKU09OID0gbW5lbWljQ29udGV4dEpTT047IC8vL1xuXG4gIGNvbnRleHQgPSBjb250ZXh0SlNPTjsgIC8vL1xuXG4gIHJldHVybiBpbm5lckZ1bmN0aW9uKGNvbnRleHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5zZXJpYWxpc2UoaW5uZXJGdW5jdGlvbiwganNvbiwgY29udGV4dCkge1xuICBjb25zdCBtbmVtaWNDb250ZXh0ID0gbW5lbWljQ29udGV4dEZyb21KU09OKGpzb24sIGNvbnRleHQpO1xuXG4gIGNvbnRleHQgPSBtbmVtaWNDb250ZXh0OyAvLy9cblxuICByZXR1cm4gaW5uZXJGdW5jdGlvbihqc29uLCBjb250ZXh0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVuc2VyaWFsaXNlcyhpbm5lckZ1bmN0aW9uLCBqc29uLCBjb250ZXh0KSB7XG4gIGNvbnN0IG1uZW1pY0NvbnRleHRzID0gbW5lbWljQ29udGV4dHNGcm9tSlNPTihqc29uLCBjb250ZXh0KSxcbiAgICAgICAgY29udGV4dHMgPSBtbmVtaWNDb250ZXh0czsgLy8vXG5cbiAgcmV0dXJuIGlubmVyRnVuY3Rpb24oanNvbiwgLi4uY29udGV4dHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGUoaW5uZXJGdW5jdGlvbiwgY29udGV4dCkge1xuICBjb25zdCBsaXRlcmFsQ29udGV4dCA9IExpdGVyYWxDb250ZXh0LmZyb21Ob3RoaW5nKGNvbnRleHQpO1xuXG4gIGNvbnRleHQgPSBsaXRlcmFsQ29udGV4dDsgIC8vL1xuXG4gIHJldHVybiBpbm5lckZ1bmN0aW9uKGNvbnRleHQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWFuaWZlc3QoaW5uZXJGdW5jdGlvbiwgLi4uY29udGV4dHMpIHtcbiAgY29uc3QgcGhhbmVyaWNDb250ZXh0ID0gUGhhbmVyaWNDb250ZXh0LmZyb21Db250ZXh0cyhjb250ZXh0cyksXG4gICAgICAgIGNvbnRleHQgPSBwaGFuZXJpY0NvbnRleHQ7ICAvLy9cblxuICByZXR1cm4gaW5uZXJGdW5jdGlvbihjb250ZXh0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGF0dGVtcHRzKGlubmVyRnVuY3Rpb24sIC4uLmNvbnRleHRzKSB7XG4gIGNvbnRleHRzID0gY29udGV4dHMubWFwKChjb250ZXh0KSA9PiB7ICAvLy9cbiAgICBjb25zdCB1bnJlbGVhc2VkID0gY29udGV4dC5pc1VucmVsZWFzZWQoKTtcblxuICAgIGlmICh1bnJlbGVhc2VkKSB7XG4gICAgICBjb25zdCBtbmVtaWNDb250ZXh0ID0gTW5lbWljQ29udGV4dC5mcm9tTm90aGluZyhjb250ZXh0KTtcblxuICAgICAgY29udGV4dCA9IG1uZW1pY0NvbnRleHQ7ICAvLy9cbiAgICB9XG5cbiAgICByZXR1cm4gY29udGV4dDtcbiAgfSk7XG5cbiAgcmV0dXJuIGlubmVyRnVuY3Rpb24oLi4uY29udGV4dHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2VyaWFsaXNlcyhpbm5lckZ1bmN0aW9uLCAuLi5jb250ZXh0cykge1xuICBjb25zdCBtbmVtaWNDb250ZXh0cyA9IGNvbnRleHRzLCAvLy9cbiAgICAgICAgbW5lbWljQ29udGV4dHNKU09OID0gbW5lbWljQ29udGV4dHNUb01uZW1pY0NvbnRleHRzSlNPTihtbmVtaWNDb250ZXh0cyksXG4gICAgICAgIGNvbnRleHRzSlNPTiA9IG1uZW1pY0NvbnRleHRzSlNPTjsgLy8vXG5cbiAgY29udGV4dHMgPSBjb250ZXh0c0pTT047ICAvLy9cblxuICByZXR1cm4gaW5uZXJGdW5jdGlvbiguLi5jb250ZXh0cyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhYmxhdGVzKGlubmVyRnVuY3Rpb24sIC4uLmNvbnRleHRzKSB7XG4gIGNvbnRleHRzID0gY29udGV4dHMubWFwKChjb250ZXh0KSA9PiB7ICAvLy9cbiAgICBjb25zdCB1bnJlbGVhc2VkID0gY29udGV4dC5pc1VucmVsZWFzZWQoKTtcblxuICAgIGlmICh1bnJlbGVhc2VkKSB7XG4gICAgICBjb250ZXh0ID0gYWJsYXRlQ29udGV4dChjb250ZXh0KTsgLy8vXG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbnRleHQ7XG4gIH0pO1xuXG4gIHJldHVybiBpbm5lckZ1bmN0aW9uKC4uLmNvbnRleHRzKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBldmFsdWF0ZSxcbiAgZ3JvdW5kLFxuICBkZWNsYXJlLFxuICBkZXJpdmUsXG4gIGVsaWRlLFxuICBlbmNsb3NlLFxuICBlbmNhcHN1bGF0ZSxcbiAgY2hvb3NlLFxuICBkZXNjZW5kLFxuICBhYmxhdGUsXG4gIGF0dGVtcHQsXG4gIHJlY29uY2lsZSxcbiAgc2VyaWFsaXNlLFxuICB1bnNlcmlhbGlzZSxcbiAgdW5zZXJpYWxpc2VzLFxuICBpbnN0YW50aWF0ZSxcbiAgbWFuaWZlc3QsXG4gIGF0dGVtcHRzLFxuICBzZXJpYWxpc2VzLFxuICBhYmxhdGVzXG59O1xuXG5mdW5jdGlvbiBhYmxhdGVDb250ZXh0KGNvbnRleHQpIHtcbiAgICBsZXQgY29udGV4dEdyb3VuZGVkQ29udGV4dCA9IGlzQ29udGV4dEdyb3VuZGVkQ29udGV4dChjb250ZXh0KTtcblxuICAgIHdoaWxlICghY29udGV4dEdyb3VuZGVkQ29udGV4dCkge1xuICAgICAgY29udGV4dCA9IGNvbnRleHQuZ2V0Q29udGV4dCgpO1xuXG4gICAgICBjb250ZXh0R3JvdW5kZWRDb250ZXh0ID0gaXNDb250ZXh0R3JvdW5kZWRDb250ZXh0KGNvbnRleHQpO1xuICAgIH1cblxuICByZXR1cm4gY29udGV4dDtcbn1cblxuZnVuY3Rpb24gaXNDb250ZXh0R3JvdW5kZWRDb250ZXh0KGNvbnRleHQpIHtcbiAgY29uc3QgY29udGV4dFRoZXRpY0NvbnRleHQgPSAoY29udGV4dCBpbnN0YW5jZW9mIFRoZXRpY0NvbnRleHQpLFxuICAgICAgICBjb250ZXh0SWxsYXRpdmVDb250ZXh0ID0gKGNvbnRleHQgaW5zdGFuY2VvZiBJbGxhdGl2ZUNvbnRleHQpLFxuICAgICAgICBjb250ZXh0Tm9taW5hbEZpbGVDb250ZXh0ID0gKGNvbnRleHQgaW5zdGFuY2VvZiBOb21pbmFsRmlsZUNvbnRleHQpLFxuICAgICAgICBjb250ZXh0R3JvdW5kZWRDb250ZXh0ID0gKGNvbnRleHRUaGV0aWNDb250ZXh0IHx8IGNvbnRleHRJbGxhdGl2ZUNvbnRleHQgfHwgY29udGV4dE5vbWluYWxGaWxlQ29udGV4dCk7XG5cbiAgcmV0dXJuIGNvbnRleHRHcm91bmRlZENvbnRleHQ7XG59XG4iXSwibmFtZXMiOlsiYWJsYXRlIiwiYWJsYXRlcyIsImF0dGVtcHQiLCJhdHRlbXB0cyIsImNob29zZSIsImRlY2xhcmUiLCJkZXJpdmUiLCJkZXNjZW5kIiwiZWxpZGUiLCJlbmNhcHN1bGF0ZSIsImVuY2xvc2UiLCJncm91bmQiLCJpbnN0YW50aWF0ZSIsIm1hbmlmZXN0IiwicmVjb25jaWxlIiwic2VyaWFsaXNlIiwic2VyaWFsaXNlcyIsInVuc2VyaWFsaXNlIiwidW5zZXJpYWxpc2VzIiwiaW5uZXJGdW5jdGlvbiIsImNvbnRleHQiLCJub21pbmFsQ29udGV4dCIsIk5vbWluYWxDb250ZXh0IiwiZnJvbU5vdGhpbmciLCJsaXRlcmFsQ29udGV4dCIsIkxpdGVyYWxDb250ZXh0IiwidGhldGljQ29udGV4dCIsIlRoZXRpY0NvbnRleHQiLCJpbGxhdGl2ZUNvbnRleHQiLCJJbGxhdGl2ZUNvbnRleHQiLCJhcGhhc2ljQ29udGV4dCIsIkFwaGFzaWNDb250ZXh0IiwiYm91bmRlZENvbnRleHQiLCJCb3VuZGVkQ29udGV4dCIsIm1ldGFMZXZlbEFzc3VtcHRpb25zIiwiZnJvbU1ldGFMZXZlbEFzc3VtcHRpb25zIiwiYnJhbmNoaW5nQ29udGV4dCIsIkJyYW5jaGluZ0NvbnRleHQiLCJuZXN0ZWRDb250ZXh0IiwiTmVzdGVkQ29udGV4dCIsInVucmVsZWFzZWQiLCJpc1VucmVsZWFzZWQiLCJhYmxhdGVDb250ZXh0IiwibW5lbWljQ29udGV4dCIsIk1uZW1pY0NvbnRleHQiLCJsaW1pbmFsQ29udGV4dCIsIkxpbWluYWxDb250ZXh0IiwibW5lbWljQ29udGV4dEpTT04iLCJtbmVtaWNDb250ZXh0VG9NbmVtaWNDb250ZXh0SlNPTiIsImNvbnRleHRKU09OIiwianNvbiIsIm1uZW1pY0NvbnRleHRGcm9tSlNPTiIsIm1uZW1pY0NvbnRleHRzIiwibW5lbWljQ29udGV4dHNGcm9tSlNPTiIsImNvbnRleHRzIiwicGhhbmVyaWNDb250ZXh0IiwiUGhhbmVyaWNDb250ZXh0IiwiZnJvbUNvbnRleHRzIiwibWFwIiwibW5lbWljQ29udGV4dHNKU09OIiwibW5lbWljQ29udGV4dHNUb01uZW1pY0NvbnRleHRzSlNPTiIsImNvbnRleHRzSlNPTiIsImV2YWx1YXRlIiwiY29udGV4dEdyb3VuZGVkQ29udGV4dCIsImlzQ29udGV4dEdyb3VuZGVkQ29udGV4dCIsImdldENvbnRleHQiLCJjb250ZXh0VGhldGljQ29udGV4dCIsImNvbnRleHRJbGxhdGl2ZUNvbnRleHQiLCJjb250ZXh0Tm9taW5hbEZpbGVDb250ZXh0IiwiTm9taW5hbEZpbGVDb250ZXh0Il0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUF1RmdCQTtlQUFBQTs7UUFnR0FDO2VBQUFBOztRQXRGQUM7ZUFBQUE7O1FBNERBQztlQUFBQTs7UUF0RkFDO2VBQUFBOztRQXhDQUM7ZUFBQUE7O1FBc0toQjtlQUFBOztRQTlKZ0JDO2VBQUFBOztRQXdDQUM7ZUFBQUE7O1FBaENBQztlQUFBQTs7UUFnQkFDO2VBQUFBOztRQVJBQztlQUFBQTs7UUF0Q0FDO2VBQUFBOztRQTZIQUM7ZUFBQUE7O1FBUUFDO2VBQUFBOztRQXpDQUM7ZUFBQUE7O1FBUUFDO2VBQUFBOztRQXdEQUM7ZUFBQUE7O1FBOUNBQztlQUFBQTs7UUFRQUM7ZUFBQUE7OzsrREFySVU7K0RBQ0E7K0RBQ0E7Z0VBQ0M7Z0VBQ0E7Z0VBQ0E7Z0VBQ0E7Z0VBQ0E7aUVBQ0M7aUVBQ0E7a0VBQ0M7aUVBQ0U7c0JBRXFHOzs7Ozs7QUFFN0gsU0FBU1AsT0FBT1EsYUFBYTtJQUNsQyxJQUFJQztJQUVKLE1BQU1DLGlCQUFpQkMsZ0JBQWMsQ0FBQ0MsV0FBVztJQUVqREgsVUFBVUMsZ0JBQWdCLEdBQUc7SUFFN0IsTUFBTUcsaUJBQWlCQyxnQkFBYyxDQUFDRixXQUFXLENBQUNIO0lBRWxEQSxVQUFVSSxnQkFBaUIsR0FBRztJQUU5QixPQUFPTCxjQUFjQztBQUN2QjtBQUVPLFNBQVNmLFFBQVFjLGFBQWEsRUFBRUMsT0FBTztJQUM1QyxNQUFNTSxnQkFBZ0JD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
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-nominal",
3
3
  "author": "James Smith",
4
- "version": "1.0.142",
4
+ "version": "1.0.144",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-nominal",
7
7
  "description": "Occam's Nominal language.",
@@ -11,17 +11,17 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "necessary": "^17.2.10",
14
- "occam-custom-grammars": "^6.0.47",
15
- "occam-grammars": "^1.3.540",
16
- "occam-languages": "^0.0.236",
14
+ "occam-custom-grammars": "^6.0.49",
15
+ "occam-grammars": "^1.3.544",
16
+ "occam-languages": "^0.0.238",
17
17
  "occam-lexers": "^23.1.58",
18
18
  "occam-parsers": "^23.1.64"
19
19
  },
20
20
  "devDependencies": {
21
21
  "@swc/core": "1.13.20",
22
22
  "decaf-cli": "^1.0.26",
23
- "occam-model": "^1.0.514",
24
- "occam-server": "^7.0.15",
23
+ "occam-model": "^1.0.516",
24
+ "occam-server": "^7.0.17",
25
25
  "watchful-cli": "^1.7.91"
26
26
  },
27
27
  "scripts": {
@@ -3,7 +3,7 @@
3
3
  import { Element } from "occam-languages";
4
4
 
5
5
  import { define } from "../elements";
6
- import { evaluate, instantiate } from "../utilities/context";
6
+ import { instantiate } from "../utilities/context";
7
7
  import { instantiateNominalProcedureCall } from "../process/instantiate";
8
8
  import { breakPointFromJSON, breakPointToBreakPointJSON } from "../utilities/breakPoint";
9
9
  import { parametersFromNominalProcedureCallNode, procedureReferenceFromNominalProcedureCallNode } from "../utilities/element";
@@ -33,15 +33,15 @@ export default define(class NominalProcedureCall extends Element {
33
33
 
34
34
  getProcedureName() { return this.procedureReference.getProcedureName(); }
35
35
 
36
- findNodes(context) {
36
+ findValues(context) {
37
37
  const substitutions = context.getSubstitutions(),
38
- nodes = this.parameters.map((parameter) => {
39
- const node = parameter.findNode(substitutions);
38
+ values = this.parameters.map((parameter) => {
39
+ const value = parameter.findValue(substitutions);
40
40
 
41
- return node;
41
+ return value;
42
42
  });
43
43
 
44
- return nodes;
44
+ return values;
45
45
  }
46
46
 
47
47
  validate(context) {
@@ -86,12 +86,12 @@ export default define(class NominalProcedureCall extends Element {
86
86
 
87
87
  const procedureName = this.getProcedureName(),
88
88
  procedure = context.findProcedureByProcedureName(procedureName),
89
- nodes = this.findNodes(context);
89
+ values = this.findValues(context);
90
90
 
91
91
  let term = null;
92
92
 
93
93
  try {
94
- term = await evaluate(procedure, nodes, context);
94
+ term = await procedure.callNominally(values, context);
95
95
  } catch (exception) {
96
96
  const message = exception.getMessage();
97
97
 
@@ -2,6 +2,8 @@
2
2
 
3
3
  import { Element } from "occam-languages";
4
4
 
5
+ import Value from "../value";
6
+
5
7
  import { define } from "../elements";
6
8
  import { instantiate } from "../utilities/context";
7
9
  import { instantiateParameter } from "../process/instantiate";
@@ -31,8 +33,8 @@ export default define(class Parameter extends Element {
31
33
  return parameterNode;
32
34
  }
33
35
 
34
- findNode(substitutions) {
35
- let node = null;
36
+ findValue(substitutions) {
37
+ let value = null;
36
38
 
37
39
  const parameter = this, ///
38
40
  substitution = substitutions.find((substitution) => {
@@ -44,12 +46,10 @@ export default define(class Parameter extends Element {
44
46
  }) || null;
45
47
 
46
48
  if (substitution !== null) {
47
- const replacementNode = substitution.getReplacementNode();
48
-
49
- node = replacementNode; ///
49
+ value = Value.fromSubstitution(substitution);
50
50
  }
51
51
 
52
- return node;
52
+ return value;
53
53
  }
54
54
 
55
55
  static name = "Parameter";
@@ -15,18 +15,6 @@ import NominalFileContext from "../context/file/nominal";
15
15
 
16
16
  import { mnemicContextFromJSON, mnemicContextsFromJSON, mnemicContextToMnemicContextJSON, mnemicContextsToMnemicContextsJSON } from "../utilities/json";
17
17
 
18
- export function evaluate(procedure, nodes, context) {
19
- const tokens = context.getTokens();
20
-
21
- context = procedure.getContext();
22
-
23
- const literalContext = LiteralContext.fromTokens(tokens, context);
24
-
25
- context = literalContext; ///
26
-
27
- return procedure.callNominally(nodes, context);
28
- }
29
-
30
18
  export function ground(innerFunction) {
31
19
  let context;
32
20
 
package/src/value.js ADDED
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ export default class Value {
4
+ constructor(context, string, node) {
5
+ this.context = context;
6
+ this.string = string;
7
+ this.node = node;
8
+ }
9
+
10
+ getContext() {
11
+ return this.context;
12
+ }
13
+
14
+ getString() {
15
+ return this.string;
16
+ }
17
+
18
+ getNode() {
19
+ return this.node;
20
+ }
21
+
22
+ static fromNode(node, context) {
23
+ const string = context.nodeAsString(node),
24
+ value = new Value(context, string, node);
25
+
26
+ return value;
27
+ }
28
+
29
+ static fromSubstitution(substitution) {
30
+ const replacementNode = substitution.getReplacementNode(),
31
+ specificContext = substitution.getSpecificContext(),
32
+ node = replacementNode, ///
33
+ context = specificContext, ///
34
+ string = context.nodeAsString(node),
35
+ value = new Value(context, string, node);
36
+
37
+ return value;
38
+ }
39
+ });