occam-furtle 3.0.302 → 3.0.305

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.
@@ -10,8 +10,8 @@ Object.defineProperty(exports, "default", {
10
10
  });
11
11
  const _occamlanguages = require("occam-languages");
12
12
  const _exception = /*#__PURE__*/ _interop_require_default(require("../exception"));
13
- const _block = /*#__PURE__*/ _interop_require_default(require("../context/block"));
14
13
  const _elements = require("../elements");
14
+ const _context = require("../utilities/context");
15
15
  function _interop_require_default(obj) {
16
16
  return obj && obj.__esModule ? obj : {
17
17
  default: obj
@@ -45,16 +45,18 @@ const _default = (0, _elements.define)(class ReturnBlock extends _occamlanguages
45
45
  const message = `The return block is nonsensical.`, exception = _exception.default.fromMessage(message);
46
46
  throw exception;
47
47
  }
48
- const blockContext = _block.default.fromVariables(variables, context);
49
- context = blockContext; ///
50
- await asyncForEach(this.steps, async (step)=>{
51
- await step.evaluate(context);
52
- });
53
- const value = this.returnStatement.evaluate(context), valueString = value.getString();
48
+ let value;
49
+ await (0, _context.confine)(async (context)=>{
50
+ await asyncForEach(this.steps, async (step)=>{
51
+ await step.evaluate(context);
52
+ });
53
+ value = this.returnStatement.evaluate(context);
54
+ }, variables, context);
55
+ const valueString = value.getString();
54
56
  context.debug(`Evaluated the '${returnBlockString}' return block as '${valueString}'.`);
55
57
  return value;
56
58
  }
57
59
  static name = "ReturnBlock";
58
60
  });
59
61
 
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3JldHVybkJsb2NrLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50LCBhc3luY2hyb25vdXNVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uL2V4Y2VwdGlvblwiO1xuaW1wb3J0IEJsb2NrQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9ibG9ja1wiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcblxuY29uc3QgeyBhc3luY0ZvckVhY2ggfSA9IGFzeW5jaHJvbm91c1V0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFJldHVybkJsb2NrIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgc3RlcHMsIG5vbnNlbnNpY2FsLCByZXR1cm5TdGF0ZW1lbnQpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy5zdGVwcyA9IHN0ZXBzO1xuICAgIHRoaXMubm9uc2Vuc2ljYWwgPSBub25zZW5zaWNhbDtcbiAgICB0aGlzLnJldHVyblN0YXRlbWVudCA9IHJldHVyblN0YXRlbWVudDtcbiAgfVxuXG4gIGdldFN0ZXBzKCkge1xuICAgIHJldHVybiB0aGlzLnN0ZXBzO1xuICB9XG5cbiAgaXNOb25zZW5zaWNhbCgpIHtcbiAgICByZXR1cm4gdGhpcy5ub25zZW5zaWNhbDtcbiAgfVxuXG4gIGdldFJldHVyblN0YXRlbWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5yZXR1cm5TdGF0ZW1lbnQ7XG4gIH1cblxuICBhc3luYyBldmFsdWF0ZSh2YXJpYWJsZXMsIGNvbnRleHQpIHtcbiAgICBpZiAoY29udGV4dCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb250ZXh0ID0gdmFyaWFibGVzOyAgLy8vXG5cbiAgICAgIHZhcmlhYmxlcyA9IFtdO1xuICAgIH1cblxuICAgIGNvbnN0IHJldHVybkJsb2NrU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtyZXR1cm5CbG9ja1N0cmluZ30nIHJldHVybiBibG9jay4uLmApO1xuXG4gICAgaWYgKHRoaXMubm9uc2Vuc2ljYWwpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgVGhlIHJldHVybiBibG9jayBpcyBub25zZW5zaWNhbC5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgY29uc3QgYmxvY2tDb250ZXh0ID0gQmxvY2tDb250ZXh0LmZyb21WYXJpYWJsZXModmFyaWFibGVzLCBjb250ZXh0KTtcblxuICAgIGNvbnRleHQgPSBibG9ja0NvbnRleHQ7IC8vL1xuXG4gICAgYXdhaXQgYXN5bmNGb3JFYWNoKHRoaXMuc3RlcHMsIGFzeW5jIChzdGVwKSA9PiB7XG4gICAgICBhd2FpdCBzdGVwLmV2YWx1YXRlKGNvbnRleHQpO1xuICAgIH0pO1xuXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLnJldHVyblN0YXRlbWVudC5ldmFsdWF0ZShjb250ZXh0KSxcbiAgICAgICAgICB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgRXZhbHVhdGVkIHRoZSAnJHtyZXR1cm5CbG9ja1N0cmluZ30nIHJldHVybiBibG9jayBhcyAnJHt2YWx1ZVN0cmluZ30nLmApO1xuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlJldHVybkJsb2NrXCI7XG59KTtcbiJdLCJuYW1lcyI6WyJhc3luY0ZvckVhY2giLCJhc3luY2hyb25vdXNVdGlsaXRpZXMiLCJkZWZpbmUiLCJSZXR1cm5CbG9jayIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJzdGVwcyIsIm5vbnNlbnNpY2FsIiwicmV0dXJuU3RhdGVtZW50IiwiZ2V0U3RlcHMiLCJpc05vbnNlbnNpY2FsIiwiZ2V0UmV0dXJuU3RhdGVtZW50IiwiZXZhbHVhdGUiLCJ2YXJpYWJsZXMiLCJ1bmRlZmluZWQiLCJyZXR1cm5CbG9ja1N0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwiYmxvY2tDb250ZXh0IiwiQmxvY2tDb250ZXh0IiwiZnJvbVZhcmlhYmxlcyIsInN0ZXAiLCJ2YWx1ZSIsInZhbHVlU3RyaW5nIiwiZGVidWciLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFXQTs7O2VBQUE7OztnQ0FUK0M7a0VBRXpCOzhEQUNHOzBCQUVGOzs7Ozs7QUFFdkIsTUFBTSxFQUFFQSxZQUFZLEVBQUUsR0FBR0MscUNBQXFCO01BRTlDLFdBQWVDLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsb0JBQW9CQyx1QkFBTztJQUNyRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLEtBQUssRUFBRUMsV0FBVyxFQUFFQyxlQUFlLENBQUU7UUFDbEYsS0FBSyxDQUFDTixTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLEtBQUssR0FBR0E7UUFDYixJQUFJLENBQUNDLFdBQVcsR0FBR0E7UUFDbkIsSUFBSSxDQUFDQyxlQUFlLEdBQUdBO0lBQ3pCO0lBRUFDLFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQ0gsS0FBSztJQUNuQjtJQUVBSSxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQ0gsV0FBVztJQUN6QjtJQUVBSSxxQkFBcUI7UUFDbkIsT0FBTyxJQUFJLENBQUNILGVBQWU7SUFDN0I7SUFFQSxNQUFNSSxTQUFTQyxTQUFTLEVBQUVYLE9BQU8sRUFBRTtRQUNqQyxJQUFJQSxZQUFZWSxXQUFXO1lBQ3pCWixVQUFVVyxXQUFZLEdBQUc7WUFFekJBLFlBQVksRUFBRTtRQUNoQjtRQUVBLE1BQU1FLG9CQUFvQixJQUFJLENBQUNDLFNBQVMsSUFBSSxHQUFHO1FBRS9DZCxRQUFRZSxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRUYsa0JBQWtCLGlCQUFpQixDQUFDO1FBRXJFLElBQUksSUFBSSxDQUFDUixXQUFXLEVBQUU7WUFDcEIsTUFBTVcsVUFBVSxDQUFDLGdDQUFnQyxDQUFDLEVBQzVDQyxZQUFZQyxrQkFBUyxDQUFDQyxXQUFXLENBQUNIO1lBRXhDLE1BQU1DO1FBQ1I7UUFFQSxNQUFNRyxlQUFlQyxjQUFZLENBQUNDLGFBQWEsQ0FBQ1gsV0FBV1g7UUFFM0RBLFVBQVVvQixjQUFjLEdBQUc7UUFFM0IsTUFBTXpCLGFBQWEsSUFBSSxDQUFDUyxLQUFLLEVBQUUsT0FBT21CO1lBQ3BDLE1BQU1BLEtBQUtiLFFBQVEsQ0FBQ1Y7UUFDdEI7UUFFQSxNQUFNd0IsUUFBUSxJQUFJLENBQUNsQixlQUFlLENBQUNJLFFBQVEsQ0FBQ1YsVUFDdEN5QixjQUFjRCxNQUFNVixTQUFTO1FBRW5DZCxRQUFRMEIsS0FBSyxDQUFDLENBQUMsZUFBZSxFQUFFYixrQkFBa0IsbUJBQW1CLEVBQUVZLFlBQVksRUFBRSxDQUFDO1FBRXRGLE9BQU9EO0lBQ1Q7SUFFQSxPQUFPRyxPQUFPLGNBQWM7QUFDOUIifQ==
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3JldHVybkJsb2NrLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50LCBhc3luY2hyb25vdXNVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IGNvbmZpbmUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2NvbnRleHRcIjtcblxuY29uc3QgeyBhc3luY0ZvckVhY2ggfSA9IGFzeW5jaHJvbm91c1V0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFJldHVybkJsb2NrIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgc3RlcHMsIG5vbnNlbnNpY2FsLCByZXR1cm5TdGF0ZW1lbnQpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy5zdGVwcyA9IHN0ZXBzO1xuICAgIHRoaXMubm9uc2Vuc2ljYWwgPSBub25zZW5zaWNhbDtcbiAgICB0aGlzLnJldHVyblN0YXRlbWVudCA9IHJldHVyblN0YXRlbWVudDtcbiAgfVxuXG4gIGdldFN0ZXBzKCkge1xuICAgIHJldHVybiB0aGlzLnN0ZXBzO1xuICB9XG5cbiAgaXNOb25zZW5zaWNhbCgpIHtcbiAgICByZXR1cm4gdGhpcy5ub25zZW5zaWNhbDtcbiAgfVxuXG4gIGdldFJldHVyblN0YXRlbWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5yZXR1cm5TdGF0ZW1lbnQ7XG4gIH1cblxuICBhc3luYyBldmFsdWF0ZSh2YXJpYWJsZXMsIGNvbnRleHQpIHtcbiAgICBpZiAoY29udGV4dCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb250ZXh0ID0gdmFyaWFibGVzOyAgLy8vXG5cbiAgICAgIHZhcmlhYmxlcyA9IFtdO1xuICAgIH1cblxuICAgIGNvbnN0IHJldHVybkJsb2NrU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHtyZXR1cm5CbG9ja1N0cmluZ30nIHJldHVybiBibG9jay4uLmApO1xuXG4gICAgaWYgKHRoaXMubm9uc2Vuc2ljYWwpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgVGhlIHJldHVybiBibG9jayBpcyBub25zZW5zaWNhbC5gLFxuICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgfVxuXG4gICAgbGV0IHZhbHVlO1xuXG4gICAgYXdhaXQgY29uZmluZShhc3luYyAoY29udGV4dCkgPT4ge1xuICAgICAgYXdhaXQgYXN5bmNGb3JFYWNoKHRoaXMuc3RlcHMsIGFzeW5jIChzdGVwKSA9PiB7XG4gICAgICAgIGF3YWl0IHN0ZXAuZXZhbHVhdGUoY29udGV4dCk7XG4gICAgICB9KTtcblxuICAgICAgdmFsdWUgPSB0aGlzLnJldHVyblN0YXRlbWVudC5ldmFsdWF0ZShjb250ZXh0KTtcbiAgICB9LCB2YXJpYWJsZXMsIGNvbnRleHQpO1xuXG4gICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQuZGVidWcoYEV2YWx1YXRlZCB0aGUgJyR7cmV0dXJuQmxvY2tTdHJpbmd9JyByZXR1cm4gYmxvY2sgYXMgJyR7dmFsdWVTdHJpbmd9Jy5gKTtcblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJSZXR1cm5CbG9ja1wiO1xufSk7XG4iXSwibmFtZXMiOlsiYXN5bmNGb3JFYWNoIiwiYXN5bmNocm9ub3VzVXRpbGl0aWVzIiwiZGVmaW5lIiwiUmV0dXJuQmxvY2siLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50Iiwic3RlcHMiLCJub25zZW5zaWNhbCIsInJldHVyblN0YXRlbWVudCIsImdldFN0ZXBzIiwiaXNOb25zZW5zaWNhbCIsImdldFJldHVyblN0YXRlbWVudCIsImV2YWx1YXRlIiwidmFyaWFibGVzIiwidW5kZWZpbmVkIiwicmV0dXJuQmxvY2tTdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsIm1lc3NhZ2UiLCJleGNlcHRpb24iLCJFeGNlcHRpb24iLCJmcm9tTWVzc2FnZSIsInZhbHVlIiwiY29uZmluZSIsInN0ZXAiLCJ2YWx1ZVN0cmluZyIsImRlYnVnIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBV0E7OztlQUFBOzs7Z0NBVCtDO2tFQUV6QjswQkFFQzt5QkFDQzs7Ozs7O0FBRXhCLE1BQU0sRUFBRUEsWUFBWSxFQUFFLEdBQUdDLHFDQUFxQjtNQUU5QyxXQUFlQyxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLG9CQUFvQkMsdUJBQU87SUFDckQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxLQUFLLEVBQUVDLFdBQVcsRUFBRUMsZUFBZSxDQUFFO1FBQ2xGLEtBQUssQ0FBQ04sU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxLQUFLLEdBQUdBO1FBQ2IsSUFBSSxDQUFDQyxXQUFXLEdBQUdBO1FBQ25CLElBQUksQ0FBQ0MsZUFBZSxHQUFHQTtJQUN6QjtJQUVBQyxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUNILEtBQUs7SUFDbkI7SUFFQUksZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUNILFdBQVc7SUFDekI7SUFFQUkscUJBQXFCO1FBQ25CLE9BQU8sSUFBSSxDQUFDSCxlQUFlO0lBQzdCO0lBRUEsTUFBTUksU0FBU0MsU0FBUyxFQUFFWCxPQUFPLEVBQUU7UUFDakMsSUFBSUEsWUFBWVksV0FBVztZQUN6QlosVUFBVVcsV0FBWSxHQUFHO1lBRXpCQSxZQUFZLEVBQUU7UUFDaEI7UUFFQSxNQUFNRSxvQkFBb0IsSUFBSSxDQUFDQyxTQUFTLElBQUksR0FBRztRQUUvQ2QsUUFBUWUsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLEVBQUVGLGtCQUFrQixpQkFBaUIsQ0FBQztRQUVyRSxJQUFJLElBQUksQ0FBQ1IsV0FBVyxFQUFFO1lBQ3BCLE1BQU1XLFVBQVUsQ0FBQyxnQ0FBZ0MsQ0FBQyxFQUM1Q0MsWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSDtZQUV4QyxNQUFNQztRQUNSO1FBRUEsSUFBSUc7UUFFSixNQUFNQyxJQUFBQSxnQkFBTyxFQUFDLE9BQU9yQjtZQUNuQixNQUFNTCxhQUFhLElBQUksQ0FBQ1MsS0FBSyxFQUFFLE9BQU9rQjtnQkFDcEMsTUFBTUEsS0FBS1osUUFBUSxDQUFDVjtZQUN0QjtZQUVBb0IsUUFBUSxJQUFJLENBQUNkLGVBQWUsQ0FBQ0ksUUFBUSxDQUFDVjtRQUN4QyxHQUFHVyxXQUFXWDtRQUVkLE1BQU11QixjQUFjSCxNQUFNTixTQUFTO1FBRW5DZCxRQUFRd0IsS0FBSyxDQUFDLENBQUMsZUFBZSxFQUFFWCxrQkFBa0IsbUJBQW1CLEVBQUVVLFlBQVksRUFBRSxDQUFDO1FBRXRGLE9BQU9IO0lBQ1Q7SUFFQSxPQUFPSyxPQUFPLGNBQWM7QUFDOUIifQ==
@@ -0,0 +1,186 @@
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 bnf = `
12
+
13
+ document ::= ( procedureDeclaration | error )+ ;
14
+
15
+
16
+
17
+ procedureDeclaration ::= type label<NO_WHITESPACE>"(" parameters? ")" returnBlock ;
18
+
19
+ anonymousProcedure ::= type "(" parameters? ")" returnBlock ;
20
+
21
+ step ::= variableAssignments
22
+
23
+ | objectAssignment
24
+
25
+ | arrayAssignment
26
+
27
+ ;
28
+
29
+
30
+
31
+ variableAssignments ::= type variableAssignment ( "," variableAssignment )* ";" ;
32
+
33
+ variableAssignment ::= variable "=" expression ;
34
+
35
+ objectAssignment ::= "{" namedBindings "}" "=" variable ";" ;
36
+
37
+ arrayAssignment ::= "[" bindings "]" "=" variable ";" ;
38
+
39
+
40
+
41
+ namedBindings ::= namedBinding ( "," namedBinding )* ;
42
+
43
+ parameters ::= parameter ( "," parameter )* ;
44
+
45
+ bindings ::= binding ( "," binding )* ;
46
+
47
+ values ::= value ( "," value )* ;
48
+
49
+ terms ::= term ( "," term )* ;
50
+
51
+
52
+
53
+ namedBinding ::= type [name] ( "as" [name] )? ;
54
+
55
+ parameter ::= type [name] ;
56
+
57
+ binding ::= type [name]
58
+
59
+ | ε
60
+
61
+ ;
62
+
63
+
64
+
65
+ procedureCall ::= reference<NO_WHITESPACE>"(" values? ")" ;
66
+
67
+ returnBlock.. ::= "{" ( step | nonsense )* returnStatement "}" ;
68
+
69
+ nodesQuery ::= "nodesQuery"<NO_WHITESPACE>"(" variable "," [string-literal] ")" ;
70
+
71
+ nodeQuery ::= "nodeQuery"<NO_WHITESPACE>"(" variable "," [string-literal] ")" ;
72
+
73
+ ternary ::= "if" "(" term ")" expression "else" expression ;
74
+
75
+ reduce ::= "reduce"<NO_WHITESPACE>"(" variable "," anonymousProcedure "," value ")" ;
76
+
77
+ every ::= "every"<NO_WHITESPACE>"(" variable "," anonymousProcedure ")" ;
78
+
79
+ some ::= "some"<NO_WHITESPACE>"(" variable "," anonymousProcedure ")" ;
80
+
81
+
82
+
83
+ returnStatement ::= "return" value ";" ;
84
+
85
+
86
+
87
+ comparisonTerm ::= term ( "==" | "!=" ) term ;
88
+
89
+ bracketedTerm ::= "(" term ")" ;
90
+
91
+ negatedTerm ::= "!"<NO_WHITESPACE>term ;
92
+
93
+ logicalTerm ::= term ( "||" | "&&" ) term ;
94
+
95
+
96
+
97
+ expression ::= procedureCall
98
+
99
+ | returnBlock
100
+
101
+ | nodesQuery
102
+
103
+ | nodeQuery
104
+
105
+ | ternary
106
+
107
+ | reduce
108
+
109
+ | every
110
+
111
+ | some
112
+
113
+ | term
114
+
115
+ ;
116
+
117
+
118
+
119
+ term ::= comparisonTerm
120
+
121
+ | bracketedTerm
122
+
123
+ | logicalTerm
124
+
125
+ | negatedTerm
126
+
127
+ | primitive
128
+
129
+ | variable
130
+
131
+ ;
132
+
133
+
134
+
135
+ type ::= "List"<NO_WHITESPACE>"<" ( "Node" | "String" | "Number" | "Boolean" ) ">"
136
+
137
+ | "Node"
138
+
139
+ | "String"
140
+
141
+ | "Number"
142
+
143
+ | "Boolean"
144
+
145
+ ;
146
+
147
+
148
+
149
+ value ::= primitive
150
+
151
+ | variable
152
+
153
+ ;
154
+
155
+
156
+
157
+ primitive ::= [string-literal]
158
+
159
+ | [boolean]
160
+
161
+ | [number]
162
+
163
+ | [null]
164
+
165
+ ;
166
+
167
+
168
+
169
+ reference. ::= [name] ;
170
+
171
+ variable ::= [name] ;
172
+
173
+ label. ::= [name] ;
174
+
175
+
176
+
177
+ nonsense. ::= [secondary-keyword] | [type] | [null] | [boolean] | [string-literal] | [query] | [special] | [name] | [number] | [unassigned] ;
178
+
179
+
180
+
181
+ error. ::= . ;
182
+
183
+ `;
184
+ const _default = bnf;
185
+
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leGFtcGxlL2Z1cnRsZS9ibmYuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmNvbnN0IGJuZiA9IGBcblxuICAgIGRvY3VtZW50ICAgICAgICAgICAgICAgIDo6PSAgKCBwcm9jZWR1cmVEZWNsYXJhdGlvbiB8IGVycm9yICkrIDtcbiAgICBcbiAgICBcbiAgICBcbiAgICBwcm9jZWR1cmVEZWNsYXJhdGlvbiAgICA6Oj0gIHR5cGUgbGFiZWw8Tk9fV0hJVEVTUEFDRT5cIihcIiBwYXJhbWV0ZXJzPyBcIilcIiByZXR1cm5CbG9jayA7XG4gICAgXG4gICAgYW5vbnltb3VzUHJvY2VkdXJlICAgICAgOjo9ICB0eXBlIFwiKFwiIHBhcmFtZXRlcnM/IFwiKVwiIHJldHVybkJsb2NrIDtcbiAgICBcbiAgICBzdGVwICAgICAgICAgICAgICAgICAgICA6Oj0gIHZhcmlhYmxlQXNzaWdubWVudHNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgb2JqZWN0QXNzaWdubWVudFxuICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGFycmF5QXNzaWdubWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7ICBcbiAgICAgIFxuICAgICAgXG4gICAgXG4gICAgdmFyaWFibGVBc3NpZ25tZW50cyAgICAgOjo9ICB0eXBlIHZhcmlhYmxlQXNzaWdubWVudCAoIFwiLFwiIHZhcmlhYmxlQXNzaWdubWVudCApKiBcIjtcIiA7XG4gICAgXG4gICAgdmFyaWFibGVBc3NpZ25tZW50ICAgICAgOjo9ICB2YXJpYWJsZSBcIj1cIiBleHByZXNzaW9uIDtcbiAgICBcbiAgICBvYmplY3RBc3NpZ25tZW50ICAgICAgICA6Oj0gIFwie1wiIG5hbWVkQmluZGluZ3MgXCJ9XCIgXCI9XCIgdmFyaWFibGUgXCI7XCIgO1xuICAgIFxuICAgIGFycmF5QXNzaWdubWVudCAgICAgICAgIDo6PSAgXCJbXCIgYmluZGluZ3MgXCJdXCIgXCI9XCIgdmFyaWFibGUgXCI7XCIgO1xuICAgIFxuXG5cbiAgICBuYW1lZEJpbmRpbmdzICAgICAgICAgICA6Oj0gIG5hbWVkQmluZGluZyAoIFwiLFwiIG5hbWVkQmluZGluZyApKiA7XG4gICAgXG4gICAgcGFyYW1ldGVycyAgICAgICAgICAgICAgOjo9ICBwYXJhbWV0ZXIgKCBcIixcIiBwYXJhbWV0ZXIgKSogO1xuICAgIFxuICAgIGJpbmRpbmdzICAgICAgICAgICAgICAgIDo6PSAgYmluZGluZyAoIFwiLFwiIGJpbmRpbmcgKSogO1xuICAgIFxuICAgIHZhbHVlcyAgICAgICAgICAgICAgICAgIDo6PSAgdmFsdWUgKCBcIixcIiB2YWx1ZSApKiA7XG4gICAgXG4gICAgdGVybXMgICAgICAgICAgICAgICAgICAgOjo9ICB0ZXJtICggXCIsXCIgdGVybSApKiA7XG4gICAgXG5cblxuICAgIG5hbWVkQmluZGluZyAgICAgICAgICAgIDo6PSAgdHlwZSBbbmFtZV0gKCBcImFzXCIgW25hbWVdICk/IDsgICBcbiAgICBcbiAgICBwYXJhbWV0ZXIgICAgICAgICAgICAgICA6Oj0gIHR5cGUgW25hbWVdIDtcblxuICAgIGJpbmRpbmcgICAgICAgICAgICAgICAgIDo6PSAgdHlwZSBbbmFtZV1cbiAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIM61IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgO1xuXG5cbiAgICBcbiAgICBwcm9jZWR1cmVDYWxsICAgICAgICAgICA6Oj0gIHJlZmVyZW5jZTxOT19XSElURVNQQUNFPlwiKFwiIHZhbHVlcz8gXCIpXCIgO1xuICAgIFxuICAgIHJldHVybkJsb2NrLi4gICAgICAgICAgIDo6PSAgXCJ7XCIgKCBzdGVwIHwgbm9uc2Vuc2UgKSogcmV0dXJuU3RhdGVtZW50IFwifVwiIDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICBub2Rlc1F1ZXJ5ICAgICAgICAgICAgICA6Oj0gIFwibm9kZXNRdWVyeVwiPE5PX1dISVRFU1BBQ0U+XCIoXCIgdmFyaWFibGUgXCIsXCIgW3N0cmluZy1saXRlcmFsXSBcIilcIiA7XG4gICAgXG4gICAgbm9kZVF1ZXJ5ICAgICAgICAgICAgICAgOjo9ICBcIm5vZGVRdWVyeVwiPE5PX1dISVRFU1BBQ0U+XCIoXCIgdmFyaWFibGUgXCIsXCIgW3N0cmluZy1saXRlcmFsXSBcIilcIiA7XG4gICAgXG4gICAgdGVybmFyeSAgICAgICAgICAgICAgICAgOjo9ICBcImlmXCIgXCIoXCIgdGVybSBcIilcIiBleHByZXNzaW9uIFwiZWxzZVwiIGV4cHJlc3Npb24gO1xuICAgIFxuICAgIHJlZHVjZSAgICAgICAgICAgICAgICAgIDo6PSAgXCJyZWR1Y2VcIjxOT19XSElURVNQQUNFPlwiKFwiIHZhcmlhYmxlIFwiLFwiIGFub255bW91c1Byb2NlZHVyZSBcIixcIiB2YWx1ZSBcIilcIiA7XG4gICAgXG4gICAgZXZlcnkgICAgICAgICAgICAgICAgICAgOjo9ICBcImV2ZXJ5XCI8Tk9fV0hJVEVTUEFDRT5cIihcIiB2YXJpYWJsZSBcIixcIiBhbm9ueW1vdXNQcm9jZWR1cmUgXCIpXCIgO1xuICAgIFxuICAgIHNvbWUgICAgICAgICAgICAgICAgICAgIDo6PSAgXCJzb21lXCI8Tk9fV0hJVEVTUEFDRT5cIihcIiB2YXJpYWJsZSBcIixcIiBhbm9ueW1vdXNQcm9jZWR1cmUgXCIpXCIgO1xuICAgIFxuICAgIFxuICAgIFxuICAgIHJldHVyblN0YXRlbWVudCAgICAgICAgIDo6PSAgXCJyZXR1cm5cIiB2YWx1ZSBcIjtcIiA7IFxuICAgIFxuICAgIFxuICAgIFxuICAgIGNvbXBhcmlzb25UZXJtICAgICAgICAgIDo6PSAgdGVybSAoIFwiPT1cIiB8IFwiIT1cIiApIHRlcm0gOyBcbiAgICBcbiAgICBicmFja2V0ZWRUZXJtICAgICAgICAgICA6Oj0gIFwiKFwiIHRlcm0gXCIpXCIgOyBcbiAgICBcbiAgICBuZWdhdGVkVGVybSAgICAgICAgICAgICA6Oj0gIFwiIVwiPE5PX1dISVRFU1BBQ0U+dGVybSA7IFxuICAgIFxuICAgIGxvZ2ljYWxUZXJtICAgICAgICAgICAgIDo6PSAgdGVybSAoIFwifHxcIiB8IFwiJiZcIiApIHRlcm0gOyBcblxuXG4gICAgXG4gICAgZXhwcmVzc2lvbiAgICAgICAgICAgICAgOjo9ICBwcm9jZWR1cmVDYWxsXG4gICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgcmV0dXJuQmxvY2tcbiAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIG5vZGVzUXVlcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgbm9kZVF1ZXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIHRlcm5hcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgcmVkdWNlXG4gICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBldmVyeVxuICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgc29tZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIHRlcm1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgO1xuICAgIFxuICAgIFxuICAgIFxuICAgIHRlcm0gICAgICAgICAgICAgICAgICAgIDo6PSAgY29tcGFyaXNvblRlcm0gXG4gICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBicmFja2V0ZWRUZXJtIFxuICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgbG9naWNhbFRlcm0gXG4gICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBuZWdhdGVkVGVybSBcbiAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIHByaW1pdGl2ZSBcbiAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIHZhcmlhYmxlIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7XG5cblxuICAgIFxuICAgICB0eXBlICAgICAgICAgICAgICAgICAgIDo6PSAgXCJMaXN0XCI8Tk9fV0hJVEVTUEFDRT5cIjxcIiAoIFwiTm9kZVwiIHwgXCJTdHJpbmdcIiB8IFwiTnVtYmVyXCIgfCBcIkJvb2xlYW5cIiApIFwiPlwiXG4gICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJOb2RlXCIgIFxuICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFwiU3RyaW5nXCIgXG4gICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJOdW1iZXJcIiBcbiAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBcIkJvb2xlYW5cIiAgIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7XG5cblxuICAgIFxuICAgIHZhbHVlICAgICAgICAgICAgICAgICAgIDo6PSAgcHJpbWl0aXZlIFxuICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgdmFyaWFibGUgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDtcblxuXG4gICAgXG4gICAgcHJpbWl0aXZlICAgICAgICAgICAgICAgOjo9ICBbc3RyaW5nLWxpdGVyYWxdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFtib29sZWFuXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBbbnVtYmVyXSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgW251bGxdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgO1xuXG5cblxuICAgIHJlZmVyZW5jZS4gICAgICAgICAgICAgIDo6PSAgW25hbWVdIDtcbiAgICBcbiAgICB2YXJpYWJsZSAgICAgICAgICAgICAgICA6Oj0gIFtuYW1lXSA7XG4gICAgXG4gICAgbGFiZWwuICAgICAgICAgICAgICAgICAgOjo9ICBbbmFtZV0gO1xuICAgIFxuICAgIFxuICAgIFxuICAgIG5vbnNlbnNlLiAgICAgICAgICAgICAgIDo6PSAgW3NlY29uZGFyeS1rZXl3b3JkXSB8IFt0eXBlXSB8IFtudWxsXSB8IFtib29sZWFuXSB8IFtzdHJpbmctbGl0ZXJhbF0gfCBbcXVlcnldIHwgW3NwZWNpYWxdIHwgW25hbWVdIHwgW251bWJlcl0gfCBbdW5hc3NpZ25lZF0gO1xuXG5cbiAgICBcbiAgICBlcnJvci4gICAgICAgICAgICAgICAgICA6Oj0gIC4gO1xuICAgIFxuYDtcblxuZXhwb3J0IGRlZmF1bHQgYm5mO1xuIl0sIm5hbWVzIjpbImJuZiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBZ0xBOzs7ZUFBQTs7O0FBOUtBLE1BQU1BLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTRLYixDQUFDO01BRUQsV0FBZUEifQ==
@@ -0,0 +1,49 @@
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 LATIN = "[\\p{Script=Latin}]", DECIMAL = "[0-9]";
12
+ const entries = [
13
+ {
14
+ "type": "^(?:List|Node|String|Number|Boolean)"
15
+ },
16
+ {
17
+ "query": "^(?:nodeQuery|nodesQuery)"
18
+ },
19
+ {
20
+ "primary-keyword": "^return"
21
+ },
22
+ {
23
+ "secondary-keyword": "^(?:if|else|reduce|every|some|as)"
24
+ },
25
+ {
26
+ "null": "^null"
27
+ },
28
+ {
29
+ "boolean": "^(?:true|false)"
30
+ },
31
+ {
32
+ "bracket": "^(?:\\{|\\})"
33
+ },
34
+ {
35
+ "special": "^(?:<|>|!=|==|!|=|,|;|&&|\\|\\||\\(|\\)|\\[|\\])"
36
+ },
37
+ {
38
+ "name": `^${LATIN}+${DECIMAL}*`
39
+ },
40
+ {
41
+ "number": `^${DECIMAL}+`
42
+ },
43
+ {
44
+ "unassigned": "^[^\\s]+"
45
+ }
46
+ ];
47
+ const _default = entries;
48
+
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leGFtcGxlL2Z1cnRsZS9lbnRyaWVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5cclxuY29uc3QgTEFUSU4gPSBcIltcXFxccHtTY3JpcHQ9TGF0aW59XVwiLFxyXG4gICAgICBERUNJTUFMID0gXCJbMC05XVwiO1xyXG5cclxuY29uc3QgZW50cmllcyA9IFtcclxuICB7XHJcbiAgICBcInR5cGVcIjogXCJeKD86TGlzdHxOb2RlfFN0cmluZ3xOdW1iZXJ8Qm9vbGVhbilcIlxyXG4gIH0sXHJcbiAge1xyXG4gICAgXCJxdWVyeVwiOiBcIl4oPzpub2RlUXVlcnl8bm9kZXNRdWVyeSlcIlxyXG4gIH0sXHJcbiAge1xyXG4gICAgXCJwcmltYXJ5LWtleXdvcmRcIjogXCJecmV0dXJuXCJcclxuICB9LFxyXG4gIHtcclxuICAgIFwic2Vjb25kYXJ5LWtleXdvcmRcIjogXCJeKD86aWZ8ZWxzZXxyZWR1Y2V8ZXZlcnl8c29tZXxhcylcIlxyXG4gIH0sXHJcbiAge1xyXG4gICAgXCJudWxsXCI6IFwiXm51bGxcIlxyXG4gIH0sXHJcbiAge1xyXG4gICAgXCJib29sZWFuXCI6IFwiXig/OnRydWV8ZmFsc2UpXCJcclxuICB9LFxyXG4gIHtcclxuICAgIFwiYnJhY2tldFwiOiBcIl4oPzpcXFxce3xcXFxcfSlcIlxyXG4gIH0sXHJcbiAge1xyXG4gICAgXCJzcGVjaWFsXCI6IFwiXig/Ojx8PnwhPXw9PXwhfD18LHw7fCYmfFxcXFx8XFxcXHx8XFxcXCh8XFxcXCl8XFxcXFt8XFxcXF0pXCJcclxuICB9LFxyXG4gIHtcclxuICAgIFwibmFtZVwiOiBgXiR7TEFUSU59KyR7REVDSU1BTH0qYCxcclxuICB9LFxyXG4gIHtcclxuICAgIFwibnVtYmVyXCI6IGBeJHtERUNJTUFMfStgXHJcbiAgfSxcclxuICB7XHJcbiAgICBcInVuYXNzaWduZWRcIjogXCJeW15cXFxcc10rXCJcclxuICB9XHJcbl07XHJcblxyXG5leHBvcnQgZGVmYXVsdCBlbnRyaWVzO1xyXG4iXSwibmFtZXMiOlsiTEFUSU4iLCJERUNJTUFMIiwiZW50cmllcyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBeUNBOzs7ZUFBQTs7O0FBdkNBLE1BQU1BLFFBQVEsdUJBQ1JDLFVBQVU7QUFFaEIsTUFBTUMsVUFBVTtJQUNkO1FBQ0UsUUFBUTtJQUNWO0lBQ0E7UUFDRSxTQUFTO0lBQ1g7SUFDQTtRQUNFLG1CQUFtQjtJQUNyQjtJQUNBO1FBQ0UscUJBQXFCO0lBQ3ZCO0lBQ0E7UUFDRSxRQUFRO0lBQ1Y7SUFDQTtRQUNFLFdBQVc7SUFDYjtJQUNBO1FBQ0UsV0FBVztJQUNiO0lBQ0E7UUFDRSxXQUFXO0lBQ2I7SUFDQTtRQUNFLFFBQVEsQ0FBQyxDQUFDLEVBQUVGLE1BQU0sQ0FBQyxFQUFFQyxRQUFRLENBQUMsQ0FBQztJQUNqQztJQUNBO1FBQ0UsVUFBVSxDQUFDLENBQUMsRUFBRUEsUUFBUSxDQUFDLENBQUM7SUFDMUI7SUFDQTtRQUNFLGNBQWM7SUFDaEI7Q0FDRDtNQUVELFdBQWVDIn0=
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get furtleLexerFromEntries () {
13
+ return furtleLexerFromEntries;
14
+ },
15
+ get furtleParserFromBNF () {
16
+ return furtleParserFromBNF;
17
+ }
18
+ });
19
+ const _occamlexers = require("occam-lexers");
20
+ const _occamparsers = require("occam-parsers");
21
+ const _occamgrammarutilities = require("occam-grammar-utilities");
22
+ const _index = require("../../index");
23
+ const { rulesFromBNF, parserFromRules } = _occamparsers.parserUtilities, { lexerFromRules, rulesFromEntries } = _occamlexers.lexerUtilities;
24
+ function furtleLexerFromEntries(Class, entries) {
25
+ if (entries === undefined) {
26
+ entries = Class; ///
27
+ Class = _index.FurtleLexer; ///
28
+ }
29
+ let rules;
30
+ rules = rulesFromEntries(entries);
31
+ const furtleLexer = lexerFromRules(Class, rules);
32
+ return furtleLexer;
33
+ }
34
+ function furtleParserFromBNF(Class, bnf) {
35
+ if (bnf === undefined) {
36
+ bnf = Class; ///
37
+ Class = _index.FurtleParser; ///
38
+ }
39
+ let rules;
40
+ rules = rulesFromBNF(bnf);
41
+ rules = (0, _occamgrammarutilities.eliminateLeftRecursion)(rules); ///
42
+ const furtleParser = parserFromRules(Class, rules);
43
+ return furtleParser;
44
+ }
45
+
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leGFtcGxlL3V0aWxpdGllcy9mdXJ0bGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IGxleGVyVXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxleGVyc1wiO1xuaW1wb3J0IHsgcGFyc2VyVXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLXBhcnNlcnNcIjtcbmltcG9ydCB7IGVsaW1pbmF0ZUxlZnRSZWN1cnNpb24gfSBmcm9tIFwib2NjYW0tZ3JhbW1hci11dGlsaXRpZXNcIjtcbmltcG9ydCB7IEZ1cnRsZUxleGVyLEZ1cnRsZVBhcnNlciB9IGZyb20gXCIuLi8uLi9pbmRleFwiOyAvLy9cblxuY29uc3QgeyBydWxlc0Zyb21CTkYsIHBhcnNlckZyb21SdWxlcyB9ID0gcGFyc2VyVXRpbGl0aWVzLFxuICAgICAgeyBsZXhlckZyb21SdWxlcywgcnVsZXNGcm9tRW50cmllcyB9ID0gbGV4ZXJVdGlsaXRpZXM7XG5cbmV4cG9ydCBmdW5jdGlvbiBmdXJ0bGVMZXhlckZyb21FbnRyaWVzKENsYXNzLCBlbnRyaWVzKSB7XG4gIGlmIChlbnRyaWVzID09PSB1bmRlZmluZWQpIHtcbiAgICBlbnRyaWVzID0gQ2xhc3M7ICAvLy9cblxuICAgIENsYXNzID0gRnVydGxlTGV4ZXI7ICAvLy9cbiAgfVxuXG4gIGxldCBydWxlcztcblxuICBydWxlcyA9IHJ1bGVzRnJvbUVudHJpZXMoZW50cmllcyk7XG5cbiAgY29uc3QgZnVydGxlTGV4ZXIgPSBsZXhlckZyb21SdWxlcyhDbGFzcywgcnVsZXMpO1xuXG4gIHJldHVybiBmdXJ0bGVMZXhlcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGZ1cnRsZVBhcnNlckZyb21CTkYoQ2xhc3MsIGJuZikge1xuICBpZiAoYm5mID09PSB1bmRlZmluZWQpIHtcbiAgICBibmYgPSBDbGFzczsgIC8vL1xuXG4gICAgQ2xhc3MgPSBGdXJ0bGVQYXJzZXI7ICAvLy9cbiAgfVxuXG4gIGxldCBydWxlcztcblxuICBydWxlcyA9IHJ1bGVzRnJvbUJORihibmYpO1xuXG4gIHJ1bGVzID0gZWxpbWluYXRlTGVmdFJlY3Vyc2lvbihydWxlcyk7ICAvLy9cblxuICBjb25zdCBmdXJ0bGVQYXJzZXIgPSBwYXJzZXJGcm9tUnVsZXMoQ2xhc3MsIHJ1bGVzKTtcblxuICByZXR1cm4gZnVydGxlUGFyc2VyO1xufVxuIl0sIm5hbWVzIjpbImZ1cnRsZUxleGVyRnJvbUVudHJpZXMiLCJmdXJ0bGVQYXJzZXJGcm9tQk5GIiwicnVsZXNGcm9tQk5GIiwicGFyc2VyRnJvbVJ1bGVzIiwicGFyc2VyVXRpbGl0aWVzIiwibGV4ZXJGcm9tUnVsZXMiLCJydWxlc0Zyb21FbnRyaWVzIiwibGV4ZXJVdGlsaXRpZXMiLCJDbGFzcyIsImVudHJpZXMiLCJ1bmRlZmluZWQiLCJGdXJ0bGVMZXhlciIsInJ1bGVzIiwiZnVydGxlTGV4ZXIiLCJibmYiLCJGdXJ0bGVQYXJzZXIiLCJlbGltaW5hdGVMZWZ0UmVjdXJzaW9uIiwiZnVydGxlUGFyc2VyIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFVZ0JBO2VBQUFBOztRQWdCQUM7ZUFBQUE7Ozs2QkF4QmU7OEJBQ0M7dUNBQ087dUJBQ0U7QUFFekMsTUFBTSxFQUFFQyxZQUFZLEVBQUVDLGVBQWUsRUFBRSxHQUFHQyw2QkFBZSxFQUNuRCxFQUFFQyxjQUFjLEVBQUVDLGdCQUFnQixFQUFFLEdBQUdDLDJCQUFjO0FBRXBELFNBQVNQLHVCQUF1QlEsS0FBSyxFQUFFQyxPQUFPO0lBQ25ELElBQUlBLFlBQVlDLFdBQVc7UUFDekJELFVBQVVELE9BQVEsR0FBRztRQUVyQkEsUUFBUUcsa0JBQVcsRUFBRyxHQUFHO0lBQzNCO0lBRUEsSUFBSUM7SUFFSkEsUUFBUU4saUJBQWlCRztJQUV6QixNQUFNSSxjQUFjUixlQUFlRyxPQUFPSTtJQUUxQyxPQUFPQztBQUNUO0FBRU8sU0FBU1osb0JBQW9CTyxLQUFLLEVBQUVNLEdBQUc7SUFDNUMsSUFBSUEsUUFBUUosV0FBVztRQUNyQkksTUFBTU4sT0FBUSxHQUFHO1FBRWpCQSxRQUFRTyxtQkFBWSxFQUFHLEdBQUc7SUFDNUI7SUFFQSxJQUFJSDtJQUVKQSxRQUFRVixhQUFhWTtJQUVyQkYsUUFBUUksSUFBQUEsNkNBQXNCLEVBQUNKLFFBQVMsR0FBRztJQUUzQyxNQUFNSyxlQUFlZCxnQkFBZ0JLLE9BQU9JO0lBRTVDLE9BQU9LO0FBQ1QifQ==
@@ -11,22 +11,22 @@ Object.defineProperty(exports, "default", {
11
11
  const _easywithstyle = /*#__PURE__*/ _interop_require_default(require("easy-with-style"));
12
12
  const _easy = require("easy");
13
13
  const _easylayout = require("easy-layout");
14
- const _index = require("../index");
14
+ const _bnf = /*#__PURE__*/ _interop_require_default(require("./furtle/bnf"));
15
+ const _entries = /*#__PURE__*/ _interop_require_default(require("./furtle/entries"));
15
16
  const _subHeading = /*#__PURE__*/ _interop_require_default(require("./view/subHeading"));
16
17
  const _sizeable = /*#__PURE__*/ _interop_require_default(require("./view/div/sizeable"));
17
- const _bnf = /*#__PURE__*/ _interop_require_default(require("./view/textarea/bnf"));
18
+ const _bnf1 = /*#__PURE__*/ _interop_require_default(require("./view/textarea/bnf"));
18
19
  const _ruleName = /*#__PURE__*/ _interop_require_default(require("./view/input/ruleName"));
19
20
  const _tokens = /*#__PURE__*/ _interop_require_default(require("./view/textarea/tokens"));
20
21
  const _content = /*#__PURE__*/ _interop_require_default(require("./view/textarea/content"));
21
22
  const _parseTree = /*#__PURE__*/ _interop_require_default(require("./view/textarea/parseTree"));
22
23
  const _lexicalEntries = /*#__PURE__*/ _interop_require_default(require("./view/textarea/lexicalEntries"));
24
+ const _furtle = require("./utilities/furtle");
23
25
  function _interop_require_default(obj) {
24
26
  return obj && obj.__esModule ? obj : {
25
27
  default: obj
26
28
  };
27
29
  }
28
- const { furtleParserFromBNF } = _index.parsersUtilities, { furtleLexerFromEntries } = _index.lexersUtilities;
29
- const { bnf } = _index.FurtleParser, { entries } = _index.FurtleLexer;
30
30
  class View extends _easy.Element {
31
31
  keyUpHandler = (event, element)=>{
32
32
  // try {
@@ -42,12 +42,12 @@ class View extends _easy.Element {
42
42
  // }
43
43
  };
44
44
  getTokens() {
45
- const lexicalEntries = this.getLexicalEntries(), entries = lexicalEntries, furtleLexer = furtleLexerFromEntries(entries), lexer = furtleLexer, content = this.getContent(), tokens = lexer.tokenise(content);
45
+ const lexicalEntries = this.getLexicalEntries(), entries = lexicalEntries, furtleLexer = (0, _furtle.furtleLexerFromEntries)(entries), lexer = furtleLexer, content = this.getContent(), tokens = lexer.tokenise(content);
46
46
  return tokens;
47
47
  }
48
48
  getParseTree(tokens) {
49
49
  let parseTree = null;
50
- const bnf = this.getBNF(), furtleParser = furtleParserFromBNF(bnf), parser = furtleParser, ruleName = this.getRuleName(), ruleMap = parser.getRuleMap(), rule = ruleMap[ruleName], node = parser.parse(tokens, rule);
50
+ const bnf = this.getBNF(), furtleParser = (0, _furtle.furtleParserFromBNF)(bnf), parser = furtleParser, ruleName = this.getRuleName(), ruleMap = parser.getRuleMap(), rule = ruleMap[ruleName], node = parser.parse(tokens, rule);
51
51
  if (node !== null) {
52
52
  parseTree = node.asParseTree(tokens);
53
53
  }
@@ -56,7 +56,7 @@ class View extends _easy.Element {
56
56
  childElements() {
57
57
  return /*#__PURE__*/ React.createElement(_easylayout.ColumnsDiv, null, /*#__PURE__*/ React.createElement(_sizeable.default, null, /*#__PURE__*/ React.createElement(_easylayout.RowsDiv, null, /*#__PURE__*/ React.createElement(_subHeading.default, null, "Lexical entries"), /*#__PURE__*/ React.createElement(_lexicalEntries.default, {
58
58
  onKeyUp: this.keyUpHandler
59
- }), /*#__PURE__*/ React.createElement(_subHeading.default, null, "BNF"), /*#__PURE__*/ React.createElement(_bnf.default, {
59
+ }), /*#__PURE__*/ React.createElement(_subHeading.default, null, "BNF"), /*#__PURE__*/ React.createElement(_bnf1.default, {
60
60
  onKeyUp: this.keyUpHandler
61
61
  }), /*#__PURE__*/ React.createElement(_subHeading.default, null, "Rule name"), /*#__PURE__*/ React.createElement(_ruleName.default, {
62
62
  onKeyUp: this.keyUpHandler
@@ -66,8 +66,8 @@ class View extends _easy.Element {
66
66
  }
67
67
  initialise() {
68
68
  this.assignContext();
69
- const { initialContent, initialRuleName } = this.constructor, content = initialContent, ruleName = initialRuleName, lexicalEntries = entries; ///
70
- this.setBNF(bnf);
69
+ const { initialContent, initialRuleName } = this.constructor, content = initialContent, ruleName = initialRuleName, lexicalEntries = _entries.default; ///
70
+ this.setBNF(_bnf.default);
71
71
  this.setContent(content);
72
72
  this.setRuleName(ruleName);
73
73
  this.setLexicalEntries(lexicalEntries);
@@ -87,4 +87,4 @@ const _default = (0, _easywithstyle.default)(View)`
87
87
 
88
88
  `;
89
89
 
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leGFtcGxlL3ZpZXcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB3aXRoU3R5bGUgZnJvbSBcImVhc3ktd2l0aC1zdHlsZVwiOyAgLy8vXG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwiZWFzeVwiO1xuaW1wb3J0IHsgUm93c0RpdiwgQ29sdW1uRGl2LCBDb2x1bW5zRGl2LCBWZXJ0aWNhbFNwbGl0dGVyRGl2IH0gZnJvbSBcImVhc3ktbGF5b3V0XCI7XG5pbXBvcnQgeyBGdXJ0bGVMZXhlcixGdXJ0bGVQYXJzZXIsIGxleGVyc1V0aWxpdGllcywgcGFyc2Vyc1V0aWxpdGllcyB9IGZyb20gXCIuLi9pbmRleFwiOyAvLy9cblxuaW1wb3J0IFN1YkhlYWRpbmcgZnJvbSBcIi4vdmlldy9zdWJIZWFkaW5nXCI7XG5pbXBvcnQgU2l6ZWFibGVEaXYgZnJvbSBcIi4vdmlldy9kaXYvc2l6ZWFibGVcIjtcbmltcG9ydCBCTkZUZXh0YXJlYSBmcm9tIFwiLi92aWV3L3RleHRhcmVhL2JuZlwiO1xuaW1wb3J0IFJ1bGVOYW1lSW5wdXQgZnJvbSBcIi4vdmlldy9pbnB1dC9ydWxlTmFtZVwiO1xuaW1wb3J0IFRva2Vuc1RleHRhcmVhIGZyb20gXCIuL3ZpZXcvdGV4dGFyZWEvdG9rZW5zXCI7XG5pbXBvcnQgQ29udGVudFRleHRhcmVhIGZyb20gXCIuL3ZpZXcvdGV4dGFyZWEvY29udGVudFwiO1xuaW1wb3J0IFBhcnNlVHJlZVRleHRhcmVhIGZyb20gXCIuL3ZpZXcvdGV4dGFyZWEvcGFyc2VUcmVlXCI7XG5pbXBvcnQgTGV4aWNhbEVudHJpZXNUZXh0YXJlYSBmcm9tIFwiLi92aWV3L3RleHRhcmVhL2xleGljYWxFbnRyaWVzXCI7XG5cbmNvbnN0IHsgZnVydGxlUGFyc2VyRnJvbUJORiB9ID0gcGFyc2Vyc1V0aWxpdGllcyxcbiAgICAgIHsgZnVydGxlTGV4ZXJGcm9tRW50cmllcyB9ID0gbGV4ZXJzVXRpbGl0aWVzO1xuXG5jb25zdCB7IGJuZiB9ID0gRnVydGxlUGFyc2VyLFxuICAgICAgeyBlbnRyaWVzIH0gPSBGdXJ0bGVMZXhlcjtcblxuY2xhc3MgVmlldyBleHRlbmRzIEVsZW1lbnQge1xuICBrZXlVcEhhbmRsZXIgPSAoZXZlbnQsIGVsZW1lbnQpID0+IHtcbiAgICAvLyB0cnkge1xuICAgICAgY29uc3QgdG9rZW5zID0gdGhpcy5nZXRUb2tlbnMoKSxcbiAgICAgICAgICAgIHBhcnNlVHJlZSA9IHRoaXMuZ2V0UGFyc2VUcmVlKHRva2Vucyk7XG5cbiAgICAgIHRoaXMuc2V0VG9rZW5zKHRva2Vucyk7XG5cbiAgICAgIHRoaXMuc2V0UGFyc2VUcmVlKHBhcnNlVHJlZSk7XG4gICAgLy8gfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAvLyAgIGNvbnNvbGUubG9nKGVycm9yKTtcbiAgICAvL1xuICAgIC8vICAgdGhpcy5jbGVhclRva2VucygpO1xuICAgIC8vXG4gICAgLy8gICB0aGlzLmNsZWFyUGFyc2VUcmVlKCk7XG4gICAgLy8gfVxuICB9XG5cbiAgZ2V0VG9rZW5zKCkge1xuICAgIGNvbnN0IGxleGljYWxFbnRyaWVzID0gdGhpcy5nZXRMZXhpY2FsRW50cmllcygpLFxuICAgICAgICAgIGVudHJpZXMgPSBsZXhpY2FsRW50cmllcywgLy8vXG4gICAgICAgICAgZnVydGxlTGV4ZXIgPSBmdXJ0bGVMZXhlckZyb21FbnRyaWVzKGVudHJpZXMpLFxuICAgICAgICAgIGxleGVyID0gZnVydGxlTGV4ZXIsICAvLy9cbiAgICAgICAgICBjb250ZW50ID0gdGhpcy5nZXRDb250ZW50KCksXG4gICAgICAgICAgdG9rZW5zID0gbGV4ZXIudG9rZW5pc2UoY29udGVudCk7XG5cbiAgICByZXR1cm4gdG9rZW5zO1xuICB9XG5cbiAgZ2V0UGFyc2VUcmVlKHRva2Vucykge1xuICAgIGxldCBwYXJzZVRyZWUgPSBudWxsO1xuXG4gICAgY29uc3QgYm5mID0gdGhpcy5nZXRCTkYoKSxcbiAgICAgICAgICBmdXJ0bGVQYXJzZXIgPSBmdXJ0bGVQYXJzZXJGcm9tQk5GKGJuZiksXG4gICAgICAgICAgcGFyc2VyID0gZnVydGxlUGFyc2VyLCAgLy8vXG4gICAgICAgICAgcnVsZU5hbWUgPSB0aGlzLmdldFJ1bGVOYW1lKCksXG4gICAgICAgICAgcnVsZU1hcCA9IHBhcnNlci5nZXRSdWxlTWFwKCksXG4gICAgICAgICAgcnVsZSA9IHJ1bGVNYXBbcnVsZU5hbWVdLFxuICAgICAgICAgIG5vZGUgPSBwYXJzZXIucGFyc2UodG9rZW5zLCBydWxlKTtcblxuICAgIGlmIChub2RlICE9PSBudWxsKSB7XG4gICAgICBwYXJzZVRyZWUgPSBub2RlLmFzUGFyc2VUcmVlKHRva2Vucyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhcnNlVHJlZTtcbiAgfVxuXG4gIGNoaWxkRWxlbWVudHMoKSB7XG4gICAgcmV0dXJuIChcblxuICAgICAgPENvbHVtbnNEaXY+XG4gICAgICAgIDxTaXplYWJsZURpdj5cbiAgICAgICAgICA8Um93c0Rpdj5cbiAgICAgICAgICAgIDxTdWJIZWFkaW5nPlxuICAgICAgICAgICAgICBMZXhpY2FsIGVudHJpZXNcbiAgICAgICAgICAgIDwvU3ViSGVhZGluZz5cbiAgICAgICAgICAgIDxMZXhpY2FsRW50cmllc1RleHRhcmVhIG9uS2V5VXA9e3RoaXMua2V5VXBIYW5kbGVyfSAvPlxuICAgICAgICAgICAgPFN1YkhlYWRpbmc+XG4gICAgICAgICAgICAgIEJORlxuICAgICAgICAgICAgPC9TdWJIZWFkaW5nPlxuICAgICAgICAgICAgPEJORlRleHRhcmVhIG9uS2V5VXA9e3RoaXMua2V5VXBIYW5kbGVyfSAvPlxuICAgICAgICAgICAgPFN1YkhlYWRpbmc+XG4gICAgICAgICAgICAgIFJ1bGUgbmFtZVxuICAgICAgICAgICAgPC9TdWJIZWFkaW5nPlxuICAgICAgICAgICAgPFJ1bGVOYW1lSW5wdXQgb25LZXlVcD17dGhpcy5rZXlVcEhhbmRsZXJ9IC8+XG4gICAgICAgICAgPC9Sb3dzRGl2PlxuICAgICAgICA8L1NpemVhYmxlRGl2PlxuICAgICAgICA8VmVydGljYWxTcGxpdHRlckRpdiAvPlxuICAgICAgICA8Q29sdW1uRGl2PlxuICAgICAgICAgIDxSb3dzRGl2PlxuICAgICAgICAgICAgPFN1YkhlYWRpbmc+XG4gICAgICAgICAgICAgIENvbnRlbnRcbiAgICAgICAgICAgIDwvU3ViSGVhZGluZz5cbiAgICAgICAgICAgIDxDb250ZW50VGV4dGFyZWEgb25LZXlVcD17dGhpcy5rZXlVcEhhbmRsZXJ9IC8+XG4gICAgICAgICAgICA8U3ViSGVhZGluZz5cbiAgICAgICAgICAgICAgVG9rZW5zXG4gICAgICAgICAgICA8L1N1YkhlYWRpbmc+XG4gICAgICAgICAgICA8VG9rZW5zVGV4dGFyZWEgLz5cbiAgICAgICAgICAgIDxTdWJIZWFkaW5nPlxuICAgICAgICAgICAgICBQYXJzZSB0cmVlXG4gICAgICAgICAgICA8L1N1YkhlYWRpbmc+XG4gICAgICAgICAgICA8UGFyc2VUcmVlVGV4dGFyZWEgLz5cbiAgICAgICAgICA8L1Jvd3NEaXY+XG4gICAgICAgIDwvQ29sdW1uRGl2PlxuICAgICAgPC9Db2x1bW5zRGl2PlxuXG4gICAgKTtcbiAgfVxuXG4gIGluaXRpYWxpc2UoKSB7XG4gICAgdGhpcy5hc3NpZ25Db250ZXh0KCk7XG5cbiAgICBjb25zdCB7IGluaXRpYWxDb250ZW50LCBpbml0aWFsUnVsZU5hbWUgfSA9IHRoaXMuY29uc3RydWN0b3IsXG4gICAgICAgICAgY29udGVudCA9IGluaXRpYWxDb250ZW50LCAvLy9cbiAgICAgICAgICBydWxlTmFtZSA9IGluaXRpYWxSdWxlTmFtZSwgLy8vXG4gICAgICAgICAgbGV4aWNhbEVudHJpZXMgPSBlbnRyaWVzOyAvLy9cblxuICAgIHRoaXMuc2V0Qk5GKGJuZik7XG5cbiAgICB0aGlzLnNldENvbnRlbnQoY29udGVudCk7XG5cbiAgICB0aGlzLnNldFJ1bGVOYW1lKHJ1bGVOYW1lKTtcblxuICAgIHRoaXMuc2V0TGV4aWNhbEVudHJpZXMobGV4aWNhbEVudHJpZXMpO1xuXG4gICAgdGhpcy5rZXlVcEhhbmRsZXIoKTtcbiAgfVxuXG4gIHN0YXRpYyBpbml0aWFsUnVsZU5hbWUgPSBcInZhcmlhYmxlQXNzaWdubWVudHNcIjtcblxuICBzdGF0aWMgaW5pdGlhbENvbnRlbnQgPSBgQm9vbGVhbiBtZXRhdmFyaWFibGVCb3VuZCA9IGlzTWV0YXZhcmlhYmxlQm91bmQoZnJhbWVOb2RlLCBzdGF0ZW1lbnROb2RlKTtcbmA7XG5cbiAgc3RhdGljIHRhZ05hbWUgPSBcImRpdlwiO1xuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcGVydGllcyA9IHtcbiAgICBjbGFzc05hbWU6IFwidmlld1wiXG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IHdpdGhTdHlsZShWaWV3KWBcblxuICBwYWRkaW5nOiAxcmVtO1xuIFxuYDtcbiJdLCJuYW1lcyI6WyJmdXJ0bGVQYXJzZXJGcm9tQk5GIiwicGFyc2Vyc1V0aWxpdGllcyIsImZ1cnRsZUxleGVyRnJvbUVudHJpZXMiLCJsZXhlcnNVdGlsaXRpZXMiLCJibmYiLCJGdXJ0bGVQYXJzZXIiLCJlbnRyaWVzIiwiRnVydGxlTGV4ZXIiLCJWaWV3IiwiRWxlbWVudCIsImtleVVwSGFuZGxlciIsImV2ZW50IiwiZWxlbWVudCIsInRva2VucyIsImdldFRva2VucyIsInBhcnNlVHJlZSIsImdldFBhcnNlVHJlZSIsInNldFRva2VucyIsInNldFBhcnNlVHJlZSIsImxleGljYWxFbnRyaWVzIiwiZ2V0TGV4aWNhbEVudHJpZXMiLCJmdXJ0bGVMZXhlciIsImxleGVyIiwiY29udGVudCIsImdldENvbnRlbnQiLCJ0b2tlbmlzZSIsImdldEJORiIsImZ1cnRsZVBhcnNlciIsInBhcnNlciIsInJ1bGVOYW1lIiwiZ2V0UnVsZU5hbWUiLCJydWxlTWFwIiwiZ2V0UnVsZU1hcCIsInJ1bGUiLCJub2RlIiwicGFyc2UiLCJhc1BhcnNlVHJlZSIsImNoaWxkRWxlbWVudHMiLCJDb2x1bW5zRGl2IiwiU2l6ZWFibGVEaXYiLCJSb3dzRGl2IiwiU3ViSGVhZGluZyIsIkxleGljYWxFbnRyaWVzVGV4dGFyZWEiLCJvbktleVVwIiwiQk5GVGV4dGFyZWEiLCJSdWxlTmFtZUlucHV0IiwiVmVydGljYWxTcGxpdHRlckRpdiIsIkNvbHVtbkRpdiIsIkNvbnRlbnRUZXh0YXJlYSIsIlRva2Vuc1RleHRhcmVhIiwiUGFyc2VUcmVlVGV4dGFyZWEiLCJpbml0aWFsaXNlIiwiYXNzaWduQ29udGV4dCIsImluaXRpYWxDb250ZW50IiwiaW5pdGlhbFJ1bGVOYW1lIiwic2V0Qk5GIiwic2V0Q29udGVudCIsInNldFJ1bGVOYW1lIiwic2V0TGV4aWNhbEVudHJpZXMiLCJ0YWdOYW1lIiwiZGVmYXVsdFByb3BlcnRpZXMiLCJjbGFzc05hbWUiLCJ3aXRoU3R5bGUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQStJQTs7O2VBQUE7OztzRUE3SXNCO3NCQUVFOzRCQUM0Qzt1QkFDUTttRUFFckQ7aUVBQ0M7NERBQ0E7aUVBQ0U7K0RBQ0M7Z0VBQ0M7a0VBQ0U7dUVBQ0s7Ozs7OztBQUVuQyxNQUFNLEVBQUVBLG1CQUFtQixFQUFFLEdBQUdDLHVCQUFnQixFQUMxQyxFQUFFQyxzQkFBc0IsRUFBRSxHQUFHQyxzQkFBZTtBQUVsRCxNQUFNLEVBQUVDLEdBQUcsRUFBRSxHQUFHQyxtQkFBWSxFQUN0QixFQUFFQyxPQUFPLEVBQUUsR0FBR0Msa0JBQVc7QUFFL0IsTUFBTUMsYUFBYUMsYUFBTztJQUN4QkMsZUFBZSxDQUFDQyxPQUFPQztRQUNyQixRQUFRO1FBQ04sTUFBTUMsU0FBUyxJQUFJLENBQUNDLFNBQVMsSUFDdkJDLFlBQVksSUFBSSxDQUFDQyxZQUFZLENBQUNIO1FBRXBDLElBQUksQ0FBQ0ksU0FBUyxDQUFDSjtRQUVmLElBQUksQ0FBQ0ssWUFBWSxDQUFDSDtJQUNwQixvQkFBb0I7SUFDcEIsd0JBQXdCO0lBQ3hCLEVBQUU7SUFDRix3QkFBd0I7SUFDeEIsRUFBRTtJQUNGLDJCQUEyQjtJQUMzQixJQUFJO0lBQ04sRUFBQztJQUVERCxZQUFZO1FBQ1YsTUFBTUssaUJBQWlCLElBQUksQ0FBQ0MsaUJBQWlCLElBQ3ZDZCxVQUFVYSxnQkFDVkUsY0FBY25CLHVCQUF1QkksVUFDckNnQixRQUFRRCxhQUNSRSxVQUFVLElBQUksQ0FBQ0MsVUFBVSxJQUN6QlgsU0FBU1MsTUFBTUcsUUFBUSxDQUFDRjtRQUU5QixPQUFPVjtJQUNUO0lBRUFHLGFBQWFILE1BQU0sRUFBRTtRQUNuQixJQUFJRSxZQUFZO1FBRWhCLE1BQU1YLE1BQU0sSUFBSSxDQUFDc0IsTUFBTSxJQUNqQkMsZUFBZTNCLG9CQUFvQkksTUFDbkN3QixTQUFTRCxjQUNURSxXQUFXLElBQUksQ0FBQ0MsV0FBVyxJQUMzQkMsVUFBVUgsT0FBT0ksVUFBVSxJQUMzQkMsT0FBT0YsT0FBTyxDQUFDRixTQUFTLEVBQ3hCSyxPQUFPTixPQUFPTyxLQUFLLENBQUN0QixRQUFRb0I7UUFFbEMsSUFBSUMsU0FBUyxNQUFNO1lBQ2pCbkIsWUFBWW1CLEtBQUtFLFdBQVcsQ0FBQ3ZCO1FBQy9CO1FBRUEsT0FBT0U7SUFDVDtJQUVBc0IsZ0JBQWdCO1FBQ2QscUJBRUUsb0JBQUNDLHNCQUFVLHNCQUNULG9CQUFDQyxpQkFBVyxzQkFDVixvQkFBQ0MsbUJBQU8sc0JBQ04sb0JBQUNDLG1CQUFVLFFBQUMsa0NBR1osb0JBQUNDLHVCQUFzQjtZQUFDQyxTQUFTLElBQUksQ0FBQ2pDLFlBQVk7MEJBQ2xELG9CQUFDK0IsbUJBQVUsUUFBQyxzQkFHWixvQkFBQ0csWUFBVztZQUFDRCxTQUFTLElBQUksQ0FBQ2pDLFlBQVk7MEJBQ3ZDLG9CQUFDK0IsbUJBQVUsUUFBQyw0QkFHWixvQkFBQ0ksaUJBQWE7WUFBQ0YsU0FBUyxJQUFJLENBQUNqQyxZQUFZOzRCQUc3QyxvQkFBQ29DLCtCQUFtQix1QkFDcEIsb0JBQUNDLHFCQUFTLHNCQUNSLG9CQUFDUCxtQkFBTyxzQkFDTixvQkFBQ0MsbUJBQVUsUUFBQywwQkFHWixvQkFBQ08sZ0JBQWU7WUFBQ0wsU0FBUyxJQUFJLENBQUNqQyxZQUFZOzBCQUMzQyxvQkFBQytCLG1CQUFVLFFBQUMseUJBR1osb0JBQUNRLGVBQWMsdUJBQ2Ysb0JBQUNSLG1CQUFVLFFBQUMsNkJBR1osb0JBQUNTLGtCQUFpQjtJQU01QjtJQUVBQyxhQUFhO1FBQ1gsSUFBSSxDQUFDQyxhQUFhO1FBRWxCLE1BQU0sRUFBRUMsY0FBYyxFQUFFQyxlQUFlLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUN0RC9CLFVBQVU4QixnQkFDVnhCLFdBQVd5QixpQkFDWG5DLGlCQUFpQmIsU0FBUyxHQUFHO1FBRW5DLElBQUksQ0FBQ2lELE1BQU0sQ0FBQ25EO1FBRVosSUFBSSxDQUFDb0QsVUFBVSxDQUFDakM7UUFFaEIsSUFBSSxDQUFDa0MsV0FBVyxDQUFDNUI7UUFFakIsSUFBSSxDQUFDNkIsaUJBQWlCLENBQUN2QztRQUV2QixJQUFJLENBQUNULFlBQVk7SUFDbkI7SUFFQSxPQUFPNEMsa0JBQWtCLHNCQUFzQjtJQUUvQyxPQUFPRCxpQkFBaUIsQ0FBQztBQUMzQixDQUFDLENBQUM7SUFFQSxPQUFPTSxVQUFVLE1BQU07SUFFdkIsT0FBT0Msb0JBQW9CO1FBQ3pCQyxXQUFXO0lBQ2IsRUFBRTtBQUNKO01BRUEsV0FBZUMsSUFBQUEsc0JBQVMsRUFBQ3RELEtBQUssQ0FBQzs7OztBQUkvQixDQUFDIn0=
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leGFtcGxlL3ZpZXcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB3aXRoU3R5bGUgZnJvbSBcImVhc3ktd2l0aC1zdHlsZVwiOyAgLy8vXG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwiZWFzeVwiO1xuaW1wb3J0IHsgUm93c0RpdiwgQ29sdW1uRGl2LCBDb2x1bW5zRGl2LCBWZXJ0aWNhbFNwbGl0dGVyRGl2IH0gZnJvbSBcImVhc3ktbGF5b3V0XCI7XG5cbmltcG9ydCBibmYgZnJvbSBcIi4vZnVydGxlL2JuZlwiO1xuaW1wb3J0IGVudHJpZXMgZnJvbSBcIi4vZnVydGxlL2VudHJpZXNcIjtcbmltcG9ydCBTdWJIZWFkaW5nIGZyb20gXCIuL3ZpZXcvc3ViSGVhZGluZ1wiO1xuaW1wb3J0IFNpemVhYmxlRGl2IGZyb20gXCIuL3ZpZXcvZGl2L3NpemVhYmxlXCI7XG5pbXBvcnQgQk5GVGV4dGFyZWEgZnJvbSBcIi4vdmlldy90ZXh0YXJlYS9ibmZcIjtcbmltcG9ydCBSdWxlTmFtZUlucHV0IGZyb20gXCIuL3ZpZXcvaW5wdXQvcnVsZU5hbWVcIjtcbmltcG9ydCBUb2tlbnNUZXh0YXJlYSBmcm9tIFwiLi92aWV3L3RleHRhcmVhL3Rva2Vuc1wiO1xuaW1wb3J0IENvbnRlbnRUZXh0YXJlYSBmcm9tIFwiLi92aWV3L3RleHRhcmVhL2NvbnRlbnRcIjtcbmltcG9ydCBQYXJzZVRyZWVUZXh0YXJlYSBmcm9tIFwiLi92aWV3L3RleHRhcmVhL3BhcnNlVHJlZVwiO1xuaW1wb3J0IExleGljYWxFbnRyaWVzVGV4dGFyZWEgZnJvbSBcIi4vdmlldy90ZXh0YXJlYS9sZXhpY2FsRW50cmllc1wiO1xuXG5pbXBvcnQgeyBmdXJ0bGVQYXJzZXJGcm9tQk5GLCBmdXJ0bGVMZXhlckZyb21FbnRyaWVzIH0gZnJvbSBcIi4vdXRpbGl0aWVzL2Z1cnRsZVwiXG5cbmNsYXNzIFZpZXcgZXh0ZW5kcyBFbGVtZW50IHtcbiAga2V5VXBIYW5kbGVyID0gKGV2ZW50LCBlbGVtZW50KSA9PiB7XG4gICAgLy8gdHJ5IHtcbiAgICAgIGNvbnN0IHRva2VucyA9IHRoaXMuZ2V0VG9rZW5zKCksXG4gICAgICAgICAgICBwYXJzZVRyZWUgPSB0aGlzLmdldFBhcnNlVHJlZSh0b2tlbnMpO1xuXG4gICAgICB0aGlzLnNldFRva2Vucyh0b2tlbnMpO1xuXG4gICAgICB0aGlzLnNldFBhcnNlVHJlZShwYXJzZVRyZWUpO1xuICAgIC8vIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgLy8gICBjb25zb2xlLmxvZyhlcnJvcik7XG4gICAgLy9cbiAgICAvLyAgIHRoaXMuY2xlYXJUb2tlbnMoKTtcbiAgICAvL1xuICAgIC8vICAgdGhpcy5jbGVhclBhcnNlVHJlZSgpO1xuICAgIC8vIH1cbiAgfVxuXG4gIGdldFRva2VucygpIHtcbiAgICBjb25zdCBsZXhpY2FsRW50cmllcyA9IHRoaXMuZ2V0TGV4aWNhbEVudHJpZXMoKSxcbiAgICAgICAgICBlbnRyaWVzID0gbGV4aWNhbEVudHJpZXMsIC8vL1xuICAgICAgICAgIGZ1cnRsZUxleGVyID0gZnVydGxlTGV4ZXJGcm9tRW50cmllcyhlbnRyaWVzKSxcbiAgICAgICAgICBsZXhlciA9IGZ1cnRsZUxleGVyLCAgLy8vXG4gICAgICAgICAgY29udGVudCA9IHRoaXMuZ2V0Q29udGVudCgpLFxuICAgICAgICAgIHRva2VucyA9IGxleGVyLnRva2VuaXNlKGNvbnRlbnQpO1xuXG4gICAgcmV0dXJuIHRva2VucztcbiAgfVxuXG4gIGdldFBhcnNlVHJlZSh0b2tlbnMpIHtcbiAgICBsZXQgcGFyc2VUcmVlID0gbnVsbDtcblxuICAgIGNvbnN0IGJuZiA9IHRoaXMuZ2V0Qk5GKCksXG4gICAgICAgICAgZnVydGxlUGFyc2VyID0gZnVydGxlUGFyc2VyRnJvbUJORihibmYpLFxuICAgICAgICAgIHBhcnNlciA9IGZ1cnRsZVBhcnNlciwgIC8vL1xuICAgICAgICAgIHJ1bGVOYW1lID0gdGhpcy5nZXRSdWxlTmFtZSgpLFxuICAgICAgICAgIHJ1bGVNYXAgPSBwYXJzZXIuZ2V0UnVsZU1hcCgpLFxuICAgICAgICAgIHJ1bGUgPSBydWxlTWFwW3J1bGVOYW1lXSxcbiAgICAgICAgICBub2RlID0gcGFyc2VyLnBhcnNlKHRva2VucywgcnVsZSk7XG5cbiAgICBpZiAobm9kZSAhPT0gbnVsbCkge1xuICAgICAgcGFyc2VUcmVlID0gbm9kZS5hc1BhcnNlVHJlZSh0b2tlbnMpO1xuICAgIH1cblxuICAgIHJldHVybiBwYXJzZVRyZWU7XG4gIH1cblxuICBjaGlsZEVsZW1lbnRzKCkge1xuICAgIHJldHVybiAoXG5cbiAgICAgIDxDb2x1bW5zRGl2PlxuICAgICAgICA8U2l6ZWFibGVEaXY+XG4gICAgICAgICAgPFJvd3NEaXY+XG4gICAgICAgICAgICA8U3ViSGVhZGluZz5cbiAgICAgICAgICAgICAgTGV4aWNhbCBlbnRyaWVzXG4gICAgICAgICAgICA8L1N1YkhlYWRpbmc+XG4gICAgICAgICAgICA8TGV4aWNhbEVudHJpZXNUZXh0YXJlYSBvbktleVVwPXt0aGlzLmtleVVwSGFuZGxlcn0gLz5cbiAgICAgICAgICAgIDxTdWJIZWFkaW5nPlxuICAgICAgICAgICAgICBCTkZcbiAgICAgICAgICAgIDwvU3ViSGVhZGluZz5cbiAgICAgICAgICAgIDxCTkZUZXh0YXJlYSBvbktleVVwPXt0aGlzLmtleVVwSGFuZGxlcn0gLz5cbiAgICAgICAgICAgIDxTdWJIZWFkaW5nPlxuICAgICAgICAgICAgICBSdWxlIG5hbWVcbiAgICAgICAgICAgIDwvU3ViSGVhZGluZz5cbiAgICAgICAgICAgIDxSdWxlTmFtZUlucHV0IG9uS2V5VXA9e3RoaXMua2V5VXBIYW5kbGVyfSAvPlxuICAgICAgICAgIDwvUm93c0Rpdj5cbiAgICAgICAgPC9TaXplYWJsZURpdj5cbiAgICAgICAgPFZlcnRpY2FsU3BsaXR0ZXJEaXYgLz5cbiAgICAgICAgPENvbHVtbkRpdj5cbiAgICAgICAgICA8Um93c0Rpdj5cbiAgICAgICAgICAgIDxTdWJIZWFkaW5nPlxuICAgICAgICAgICAgICBDb250ZW50XG4gICAgICAgICAgICA8L1N1YkhlYWRpbmc+XG4gICAgICAgICAgICA8Q29udGVudFRleHRhcmVhIG9uS2V5VXA9e3RoaXMua2V5VXBIYW5kbGVyfSAvPlxuICAgICAgICAgICAgPFN1YkhlYWRpbmc+XG4gICAgICAgICAgICAgIFRva2Vuc1xuICAgICAgICAgICAgPC9TdWJIZWFkaW5nPlxuICAgICAgICAgICAgPFRva2Vuc1RleHRhcmVhIC8+XG4gICAgICAgICAgICA8U3ViSGVhZGluZz5cbiAgICAgICAgICAgICAgUGFyc2UgdHJlZVxuICAgICAgICAgICAgPC9TdWJIZWFkaW5nPlxuICAgICAgICAgICAgPFBhcnNlVHJlZVRleHRhcmVhIC8+XG4gICAgICAgICAgPC9Sb3dzRGl2PlxuICAgICAgICA8L0NvbHVtbkRpdj5cbiAgICAgIDwvQ29sdW1uc0Rpdj5cblxuICAgICk7XG4gIH1cblxuICBpbml0aWFsaXNlKCkge1xuICAgIHRoaXMuYXNzaWduQ29udGV4dCgpO1xuXG4gICAgY29uc3QgeyBpbml0aWFsQ29udGVudCwgaW5pdGlhbFJ1bGVOYW1lIH0gPSB0aGlzLmNvbnN0cnVjdG9yLFxuICAgICAgICAgIGNvbnRlbnQgPSBpbml0aWFsQ29udGVudCwgLy8vXG4gICAgICAgICAgcnVsZU5hbWUgPSBpbml0aWFsUnVsZU5hbWUsIC8vL1xuICAgICAgICAgIGxleGljYWxFbnRyaWVzID0gZW50cmllczsgLy8vXG5cbiAgICB0aGlzLnNldEJORihibmYpO1xuXG4gICAgdGhpcy5zZXRDb250ZW50KGNvbnRlbnQpO1xuXG4gICAgdGhpcy5zZXRSdWxlTmFtZShydWxlTmFtZSk7XG5cbiAgICB0aGlzLnNldExleGljYWxFbnRyaWVzKGxleGljYWxFbnRyaWVzKTtcblxuICAgIHRoaXMua2V5VXBIYW5kbGVyKCk7XG4gIH1cblxuICBzdGF0aWMgaW5pdGlhbFJ1bGVOYW1lID0gXCJ2YXJpYWJsZUFzc2lnbm1lbnRzXCI7XG5cbiAgc3RhdGljIGluaXRpYWxDb250ZW50ID0gYEJvb2xlYW4gbWV0YXZhcmlhYmxlQm91bmQgPSBpc01ldGF2YXJpYWJsZUJvdW5kKGZyYW1lTm9kZSwgc3RhdGVtZW50Tm9kZSk7XG5gO1xuXG4gIHN0YXRpYyB0YWdOYW1lID0gXCJkaXZcIjtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BlcnRpZXMgPSB7XG4gICAgY2xhc3NOYW1lOiBcInZpZXdcIlxuICB9O1xufVxuXG5leHBvcnQgZGVmYXVsdCB3aXRoU3R5bGUoVmlldylgXG5cbiAgcGFkZGluZzogMXJlbTtcbiBcbmA7XG4iXSwibmFtZXMiOlsiVmlldyIsIkVsZW1lbnQiLCJrZXlVcEhhbmRsZXIiLCJldmVudCIsImVsZW1lbnQiLCJ0b2tlbnMiLCJnZXRUb2tlbnMiLCJwYXJzZVRyZWUiLCJnZXRQYXJzZVRyZWUiLCJzZXRUb2tlbnMiLCJzZXRQYXJzZVRyZWUiLCJsZXhpY2FsRW50cmllcyIsImdldExleGljYWxFbnRyaWVzIiwiZW50cmllcyIsImZ1cnRsZUxleGVyIiwiZnVydGxlTGV4ZXJGcm9tRW50cmllcyIsImxleGVyIiwiY29udGVudCIsImdldENvbnRlbnQiLCJ0b2tlbmlzZSIsImJuZiIsImdldEJORiIsImZ1cnRsZVBhcnNlciIsImZ1cnRsZVBhcnNlckZyb21CTkYiLCJwYXJzZXIiLCJydWxlTmFtZSIsImdldFJ1bGVOYW1lIiwicnVsZU1hcCIsImdldFJ1bGVNYXAiLCJydWxlIiwibm9kZSIsInBhcnNlIiwiYXNQYXJzZVRyZWUiLCJjaGlsZEVsZW1lbnRzIiwiQ29sdW1uc0RpdiIsIlNpemVhYmxlRGl2IiwiUm93c0RpdiIsIlN1YkhlYWRpbmciLCJMZXhpY2FsRW50cmllc1RleHRhcmVhIiwib25LZXlVcCIsIkJORlRleHRhcmVhIiwiUnVsZU5hbWVJbnB1dCIsIlZlcnRpY2FsU3BsaXR0ZXJEaXYiLCJDb2x1bW5EaXYiLCJDb250ZW50VGV4dGFyZWEiLCJUb2tlbnNUZXh0YXJlYSIsIlBhcnNlVHJlZVRleHRhcmVhIiwiaW5pdGlhbGlzZSIsImFzc2lnbkNvbnRleHQiLCJpbml0aWFsQ29udGVudCIsImluaXRpYWxSdWxlTmFtZSIsInNldEJORiIsInNldENvbnRlbnQiLCJzZXRSdWxlTmFtZSIsInNldExleGljYWxFbnRyaWVzIiwidGFnTmFtZSIsImRlZmF1bHRQcm9wZXJ0aWVzIiwiY2xhc3NOYW1lIiwid2l0aFN0eWxlIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkE0SUE7OztlQUFBOzs7c0VBMUlzQjtzQkFFRTs0QkFDNEM7NERBRXBEO2dFQUNJO21FQUNHO2lFQUNDOzZEQUNBO2lFQUNFOytEQUNDO2dFQUNDO2tFQUNFO3VFQUNLO3dCQUV5Qjs7Ozs7O0FBRTVELE1BQU1BLGFBQWFDLGFBQU87SUFDeEJDLGVBQWUsQ0FBQ0MsT0FBT0M7UUFDckIsUUFBUTtRQUNOLE1BQU1DLFNBQVMsSUFBSSxDQUFDQyxTQUFTLElBQ3ZCQyxZQUFZLElBQUksQ0FBQ0MsWUFBWSxDQUFDSDtRQUVwQyxJQUFJLENBQUNJLFNBQVMsQ0FBQ0o7UUFFZixJQUFJLENBQUNLLFlBQVksQ0FBQ0g7SUFDcEIsb0JBQW9CO0lBQ3BCLHdCQUF3QjtJQUN4QixFQUFFO0lBQ0Ysd0JBQXdCO0lBQ3hCLEVBQUU7SUFDRiwyQkFBMkI7SUFDM0IsSUFBSTtJQUNOLEVBQUM7SUFFREQsWUFBWTtRQUNWLE1BQU1LLGlCQUFpQixJQUFJLENBQUNDLGlCQUFpQixJQUN2Q0MsVUFBVUYsZ0JBQ1ZHLGNBQWNDLElBQUFBLDhCQUFzQixFQUFDRixVQUNyQ0csUUFBUUYsYUFDUkcsVUFBVSxJQUFJLENBQUNDLFVBQVUsSUFDekJiLFNBQVNXLE1BQU1HLFFBQVEsQ0FBQ0Y7UUFFOUIsT0FBT1o7SUFDVDtJQUVBRyxhQUFhSCxNQUFNLEVBQUU7UUFDbkIsSUFBSUUsWUFBWTtRQUVoQixNQUFNYSxNQUFNLElBQUksQ0FBQ0MsTUFBTSxJQUNqQkMsZUFBZUMsSUFBQUEsMkJBQW1CLEVBQUNILE1BQ25DSSxTQUFTRixjQUNURyxXQUFXLElBQUksQ0FBQ0MsV0FBVyxJQUMzQkMsVUFBVUgsT0FBT0ksVUFBVSxJQUMzQkMsT0FBT0YsT0FBTyxDQUFDRixTQUFTLEVBQ3hCSyxPQUFPTixPQUFPTyxLQUFLLENBQUMxQixRQUFRd0I7UUFFbEMsSUFBSUMsU0FBUyxNQUFNO1lBQ2pCdkIsWUFBWXVCLEtBQUtFLFdBQVcsQ0FBQzNCO1FBQy9CO1FBRUEsT0FBT0U7SUFDVDtJQUVBMEIsZ0JBQWdCO1FBQ2QscUJBRUUsb0JBQUNDLHNCQUFVLHNCQUNULG9CQUFDQyxpQkFBVyxzQkFDVixvQkFBQ0MsbUJBQU8sc0JBQ04sb0JBQUNDLG1CQUFVLFFBQUMsa0NBR1osb0JBQUNDLHVCQUFzQjtZQUFDQyxTQUFTLElBQUksQ0FBQ3JDLFlBQVk7MEJBQ2xELG9CQUFDbUMsbUJBQVUsUUFBQyxzQkFHWixvQkFBQ0csYUFBVztZQUFDRCxTQUFTLElBQUksQ0FBQ3JDLFlBQVk7MEJBQ3ZDLG9CQUFDbUMsbUJBQVUsUUFBQyw0QkFHWixvQkFBQ0ksaUJBQWE7WUFBQ0YsU0FBUyxJQUFJLENBQUNyQyxZQUFZOzRCQUc3QyxvQkFBQ3dDLCtCQUFtQix1QkFDcEIsb0JBQUNDLHFCQUFTLHNCQUNSLG9CQUFDUCxtQkFBTyxzQkFDTixvQkFBQ0MsbUJBQVUsUUFBQywwQkFHWixvQkFBQ08sZ0JBQWU7WUFBQ0wsU0FBUyxJQUFJLENBQUNyQyxZQUFZOzBCQUMzQyxvQkFBQ21DLG1CQUFVLFFBQUMseUJBR1osb0JBQUNRLGVBQWMsdUJBQ2Ysb0JBQUNSLG1CQUFVLFFBQUMsNkJBR1osb0JBQUNTLGtCQUFpQjtJQU01QjtJQUVBQyxhQUFhO1FBQ1gsSUFBSSxDQUFDQyxhQUFhO1FBRWxCLE1BQU0sRUFBRUMsY0FBYyxFQUFFQyxlQUFlLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUN0RGpDLFVBQVVnQyxnQkFDVnhCLFdBQVd5QixpQkFDWHZDLGlCQUFpQkUsZ0JBQU8sRUFBRSxHQUFHO1FBRW5DLElBQUksQ0FBQ3NDLE1BQU0sQ0FBQy9CLFlBQUc7UUFFZixJQUFJLENBQUNnQyxVQUFVLENBQUNuQztRQUVoQixJQUFJLENBQUNvQyxXQUFXLENBQUM1QjtRQUVqQixJQUFJLENBQUM2QixpQkFBaUIsQ0FBQzNDO1FBRXZCLElBQUksQ0FBQ1QsWUFBWTtJQUNuQjtJQUVBLE9BQU9nRCxrQkFBa0Isc0JBQXNCO0lBRS9DLE9BQU9ELGlCQUFpQixDQUFDO0FBQzNCLENBQUMsQ0FBQztJQUVBLE9BQU9NLFVBQVUsTUFBTTtJQUV2QixPQUFPQyxvQkFBb0I7UUFDekJDLFdBQVc7SUFDYixFQUFFO0FBQ0o7TUFFQSxXQUFlQyxJQUFBQSxzQkFBUyxFQUFDMUQsS0FBSyxDQUFDOzs7O0FBSS9CLENBQUMifQ==
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "confine", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return confine;
9
+ }
10
+ });
11
+ const _block = /*#__PURE__*/ _interop_require_default(require("../context/block"));
12
+ function _interop_require_default(obj) {
13
+ return obj && obj.__esModule ? obj : {
14
+ default: obj
15
+ };
16
+ }
17
+ function confine(innerFunction, variables, context) {
18
+ const blockContext = _block.default.fromVariables(variables, context);
19
+ context = blockContext; ///
20
+ return innerFunction(context);
21
+ }
22
+
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29udGV4dC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IEJsb2NrQ29udGV4dCBmcm9tIFwiLi4vY29udGV4dC9ibG9ja1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gY29uZmluZShpbm5lckZ1bmN0aW9uLCB2YXJpYWJsZXMsIGNvbnRleHQpIHtcbiAgY29uc3QgYmxvY2tDb250ZXh0ID0gQmxvY2tDb250ZXh0LmZyb21WYXJpYWJsZXModmFyaWFibGVzLCBjb250ZXh0KTtcblxuICBjb250ZXh0ID0gYmxvY2tDb250ZXh0OyAgLy8vXG5cbiAgcmV0dXJuIGlubmVyRnVuY3Rpb24oY29udGV4dCk7XG59XG4iXSwibmFtZXMiOlsiY29uZmluZSIsImlubmVyRnVuY3Rpb24iLCJ2YXJpYWJsZXMiLCJjb250ZXh0IiwiYmxvY2tDb250ZXh0IiwiQmxvY2tDb250ZXh0IiwiZnJvbVZhcmlhYmxlcyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBSWdCQTs7O2VBQUFBOzs7OERBRlM7Ozs7OztBQUVsQixTQUFTQSxRQUFRQyxhQUFhLEVBQUVDLFNBQVMsRUFBRUMsT0FBTztJQUN2RCxNQUFNQyxlQUFlQyxjQUFZLENBQUNDLGFBQWEsQ0FBQ0osV0FBV0M7SUFFM0RBLFVBQVVDLGNBQWUsR0FBRztJQUU1QixPQUFPSCxjQUFjRTtBQUN2QiJ9
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-furtle",
3
3
  "author": "James Smith",
4
- "version": "3.0.302",
4
+ "version": "3.0.305",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-furtle",
7
7
  "description": "Occam's Furtle language.",
@@ -11,7 +11,7 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "necessary": "^17.2.10",
14
- "occam-languages": "^0.0.280",
14
+ "occam-languages": "^0.0.281",
15
15
  "occam-lexers": "^23.1.67",
16
16
  "occam-parsers": "^23.1.80",
17
17
  "occam-query": "^4.1.183"
@@ -26,8 +26,9 @@
26
26
  "express": "^4.17.1",
27
27
  "juxtapose": "^4.0.138",
28
28
  "lively-cli": "^3.0.3",
29
- "occam-model": "^1.0.539",
30
- "occam-server": "^7.0.39",
29
+ "occam-grammar-utilities": "^8.0.440",
30
+ "occam-model": "^1.0.540",
31
+ "occam-server": "^7.0.40",
31
32
  "watchful-cli": "^1.7.98"
32
33
  },
33
34
  "scripts": {
@@ -3,9 +3,9 @@
3
3
  import { Element, asynchronousUtilities } from "occam-languages";
4
4
 
5
5
  import Exception from "../exception";
6
- import BlockContext from "../context/block";
7
6
 
8
7
  import { define } from "../elements";
8
+ import { confine } from "../utilities/context";
9
9
 
10
10
  const { asyncForEach } = asynchronousUtilities;
11
11
 
@@ -48,16 +48,17 @@ export default define(class ReturnBlock extends Element {
48
48
  throw exception;
49
49
  }
50
50
 
51
- const blockContext = BlockContext.fromVariables(variables, context);
51
+ let value;
52
52
 
53
- context = blockContext; ///
53
+ await confine(async (context) => {
54
+ await asyncForEach(this.steps, async (step) => {
55
+ await step.evaluate(context);
56
+ });
54
57
 
55
- await asyncForEach(this.steps, async (step) => {
56
- await step.evaluate(context);
57
- });
58
+ value = this.returnStatement.evaluate(context);
59
+ }, variables, context);
58
60
 
59
- const value = this.returnStatement.evaluate(context),
60
- valueString = value.getString();
61
+ const valueString = value.getString();
61
62
 
62
63
  context.debug(`Evaluated the '${returnBlockString}' return block as '${valueString}'.`);
63
64
 
@@ -0,0 +1,177 @@
1
+ "use strict";
2
+
3
+ const bnf = `
4
+
5
+ document ::= ( procedureDeclaration | error )+ ;
6
+
7
+
8
+
9
+ procedureDeclaration ::= type label<NO_WHITESPACE>"(" parameters? ")" returnBlock ;
10
+
11
+ anonymousProcedure ::= type "(" parameters? ")" returnBlock ;
12
+
13
+ step ::= variableAssignments
14
+
15
+ | objectAssignment
16
+
17
+ | arrayAssignment
18
+
19
+ ;
20
+
21
+
22
+
23
+ variableAssignments ::= type variableAssignment ( "," variableAssignment )* ";" ;
24
+
25
+ variableAssignment ::= variable "=" expression ;
26
+
27
+ objectAssignment ::= "{" namedBindings "}" "=" variable ";" ;
28
+
29
+ arrayAssignment ::= "[" bindings "]" "=" variable ";" ;
30
+
31
+
32
+
33
+ namedBindings ::= namedBinding ( "," namedBinding )* ;
34
+
35
+ parameters ::= parameter ( "," parameter )* ;
36
+
37
+ bindings ::= binding ( "," binding )* ;
38
+
39
+ values ::= value ( "," value )* ;
40
+
41
+ terms ::= term ( "," term )* ;
42
+
43
+
44
+
45
+ namedBinding ::= type [name] ( "as" [name] )? ;
46
+
47
+ parameter ::= type [name] ;
48
+
49
+ binding ::= type [name]
50
+
51
+ | ε
52
+
53
+ ;
54
+
55
+
56
+
57
+ procedureCall ::= reference<NO_WHITESPACE>"(" values? ")" ;
58
+
59
+ returnBlock.. ::= "{" ( step | nonsense )* returnStatement "}" ;
60
+
61
+ nodesQuery ::= "nodesQuery"<NO_WHITESPACE>"(" variable "," [string-literal] ")" ;
62
+
63
+ nodeQuery ::= "nodeQuery"<NO_WHITESPACE>"(" variable "," [string-literal] ")" ;
64
+
65
+ ternary ::= "if" "(" term ")" expression "else" expression ;
66
+
67
+ reduce ::= "reduce"<NO_WHITESPACE>"(" variable "," anonymousProcedure "," value ")" ;
68
+
69
+ every ::= "every"<NO_WHITESPACE>"(" variable "," anonymousProcedure ")" ;
70
+
71
+ some ::= "some"<NO_WHITESPACE>"(" variable "," anonymousProcedure ")" ;
72
+
73
+
74
+
75
+ returnStatement ::= "return" value ";" ;
76
+
77
+
78
+
79
+ comparisonTerm ::= term ( "==" | "!=" ) term ;
80
+
81
+ bracketedTerm ::= "(" term ")" ;
82
+
83
+ negatedTerm ::= "!"<NO_WHITESPACE>term ;
84
+
85
+ logicalTerm ::= term ( "||" | "&&" ) term ;
86
+
87
+
88
+
89
+ expression ::= procedureCall
90
+
91
+ | returnBlock
92
+
93
+ | nodesQuery
94
+
95
+ | nodeQuery
96
+
97
+ | ternary
98
+
99
+ | reduce
100
+
101
+ | every
102
+
103
+ | some
104
+
105
+ | term
106
+
107
+ ;
108
+
109
+
110
+
111
+ term ::= comparisonTerm
112
+
113
+ | bracketedTerm
114
+
115
+ | logicalTerm
116
+
117
+ | negatedTerm
118
+
119
+ | primitive
120
+
121
+ | variable
122
+
123
+ ;
124
+
125
+
126
+
127
+ type ::= "List"<NO_WHITESPACE>"<" ( "Node" | "String" | "Number" | "Boolean" ) ">"
128
+
129
+ | "Node"
130
+
131
+ | "String"
132
+
133
+ | "Number"
134
+
135
+ | "Boolean"
136
+
137
+ ;
138
+
139
+
140
+
141
+ value ::= primitive
142
+
143
+ | variable
144
+
145
+ ;
146
+
147
+
148
+
149
+ primitive ::= [string-literal]
150
+
151
+ | [boolean]
152
+
153
+ | [number]
154
+
155
+ | [null]
156
+
157
+ ;
158
+
159
+
160
+
161
+ reference. ::= [name] ;
162
+
163
+ variable ::= [name] ;
164
+
165
+ label. ::= [name] ;
166
+
167
+
168
+
169
+ nonsense. ::= [secondary-keyword] | [type] | [null] | [boolean] | [string-literal] | [query] | [special] | [name] | [number] | [unassigned] ;
170
+
171
+
172
+
173
+ error. ::= . ;
174
+
175
+ `;
176
+
177
+ export default bnf;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ const LATIN = "[\\p{Script=Latin}]",
4
+ DECIMAL = "[0-9]";
5
+
6
+ const entries = [
7
+ {
8
+ "type": "^(?:List|Node|String|Number|Boolean)"
9
+ },
10
+ {
11
+ "query": "^(?:nodeQuery|nodesQuery)"
12
+ },
13
+ {
14
+ "primary-keyword": "^return"
15
+ },
16
+ {
17
+ "secondary-keyword": "^(?:if|else|reduce|every|some|as)"
18
+ },
19
+ {
20
+ "null": "^null"
21
+ },
22
+ {
23
+ "boolean": "^(?:true|false)"
24
+ },
25
+ {
26
+ "bracket": "^(?:\\{|\\})"
27
+ },
28
+ {
29
+ "special": "^(?:<|>|!=|==|!|=|,|;|&&|\\|\\||\\(|\\)|\\[|\\])"
30
+ },
31
+ {
32
+ "name": `^${LATIN}+${DECIMAL}*`,
33
+ },
34
+ {
35
+ "number": `^${DECIMAL}+`
36
+ },
37
+ {
38
+ "unassigned": "^[^\\s]+"
39
+ }
40
+ ];
41
+
42
+ export default entries;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+
3
+ import { lexerUtilities } from "occam-lexers";
4
+ import { parserUtilities } from "occam-parsers";
5
+ import { eliminateLeftRecursion } from "occam-grammar-utilities";
6
+ import { FurtleLexer,FurtleParser } from "../../index"; ///
7
+
8
+ const { rulesFromBNF, parserFromRules } = parserUtilities,
9
+ { lexerFromRules, rulesFromEntries } = lexerUtilities;
10
+
11
+ export function furtleLexerFromEntries(Class, entries) {
12
+ if (entries === undefined) {
13
+ entries = Class; ///
14
+
15
+ Class = FurtleLexer; ///
16
+ }
17
+
18
+ let rules;
19
+
20
+ rules = rulesFromEntries(entries);
21
+
22
+ const furtleLexer = lexerFromRules(Class, rules);
23
+
24
+ return furtleLexer;
25
+ }
26
+
27
+ export function furtleParserFromBNF(Class, bnf) {
28
+ if (bnf === undefined) {
29
+ bnf = Class; ///
30
+
31
+ Class = FurtleParser; ///
32
+ }
33
+
34
+ let rules;
35
+
36
+ rules = rulesFromBNF(bnf);
37
+
38
+ rules = eliminateLeftRecursion(rules); ///
39
+
40
+ const furtleParser = parserFromRules(Class, rules);
41
+
42
+ return furtleParser;
43
+ }
@@ -4,8 +4,9 @@ import withStyle from "easy-with-style"; ///
4
4
 
5
5
  import { Element } from "easy";
6
6
  import { RowsDiv, ColumnDiv, ColumnsDiv, VerticalSplitterDiv } from "easy-layout";
7
- import { FurtleLexer,FurtleParser, lexersUtilities, parsersUtilities } from "../index"; ///
8
7
 
8
+ import bnf from "./furtle/bnf";
9
+ import entries from "./furtle/entries";
9
10
  import SubHeading from "./view/subHeading";
10
11
  import SizeableDiv from "./view/div/sizeable";
11
12
  import BNFTextarea from "./view/textarea/bnf";
@@ -15,11 +16,7 @@ import ContentTextarea from "./view/textarea/content";
15
16
  import ParseTreeTextarea from "./view/textarea/parseTree";
16
17
  import LexicalEntriesTextarea from "./view/textarea/lexicalEntries";
17
18
 
18
- const { furtleParserFromBNF } = parsersUtilities,
19
- { furtleLexerFromEntries } = lexersUtilities;
20
-
21
- const { bnf } = FurtleParser,
22
- { entries } = FurtleLexer;
19
+ import { furtleParserFromBNF, furtleLexerFromEntries } from "./utilities/furtle"
23
20
 
24
21
  class View extends Element {
25
22
  keyUpHandler = (event, element) => {
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ import BlockContext from "../context/block";
4
+
5
+ export function confine(innerFunction, variables, context) {
6
+ const blockContext = BlockContext.fromVariables(variables, context);
7
+
8
+ context = blockContext; ///
9
+
10
+ return innerFunction(context);
11
+ }