occam-furtle 3.0.370 → 3.0.372

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.
@@ -9,17 +9,9 @@ Object.defineProperty(exports, "default", {
9
9
  }
10
10
  });
11
11
  const _occamlanguages = require("occam-languages");
12
- const _lexer = /*#__PURE__*/ _interop_require_default(require("../../furtle/lexer"));
13
- const _parser = /*#__PURE__*/ _interop_require_default(require("../../furtle/parser"));
14
12
  const _verify = require("../../process/verify");
13
+ const _furtle = require("../../utilities/furtle");
15
14
  const _json = require("../../utilities/json");
16
- function _interop_require_default(obj) {
17
- return obj && obj.__esModule ? obj : {
18
- default: obj
19
- };
20
- }
21
- const { furtleLexerFromNothing, furtleParserFromNothing } = _occamlanguages.furtleUtilities;
22
- const furtleLexer = furtleLexerFromNothing(_lexer.default), furtleParser = furtleParserFromNothing(_parser.default);
23
15
  class FurtleFileContext extends _occamlanguages.FileContext {
24
16
  constructor(context, fileContent, filePath, tokens, node, json, lexer, parser, procedures){
25
17
  super(context, fileContent, filePath, tokens, node, json);
@@ -144,13 +136,13 @@ class FurtleFileContext extends _occamlanguages.FileContext {
144
136
  return json;
145
137
  }
146
138
  static fromFile(file, context) {
147
- const lexer = furtleLexer, parser = furtleParser, procedures = [], furtleFileContext = _occamlanguages.FileContext.fromFile(FurtleFileContext, file, lexer, parser, procedures, context);
139
+ const lexer = _furtle.furtleLexer, parser = _furtle.furtleParser, procedures = [], furtleFileContext = _occamlanguages.FileContext.fromFile(FurtleFileContext, file, lexer, parser, procedures, context);
148
140
  return furtleFileContext;
149
141
  }
150
142
  static fromJSON(json, context) {
151
- const lexer = furtleLexer, parser = furtleParser, procedures = null, furtleFileContext = _occamlanguages.FileContext.fromJSON(FurtleFileContext, json, lexer, parser, procedures, context);
143
+ const lexer = _furtle.furtleLexer, parser = _furtle.furtleParser, procedures = null, furtleFileContext = _occamlanguages.FileContext.fromJSON(FurtleFileContext, json, lexer, parser, procedures, context);
152
144
  return furtleFileContext;
153
145
  }
154
146
  }
155
147
 
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0L2ZpbGUvZnVydGxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBGaWxlQ29udGV4dCwgZnVydGxlVXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgRnVydGxlTGV4ZXIgZnJvbSBcIi4uLy4uL2Z1cnRsZS9sZXhlclwiO1xuaW1wb3J0IEZ1cnRsZVBhcnNlciBmcm9tIFwiLi4vLi4vZnVydGxlL3BhcnNlclwiO1xuXG5pbXBvcnQgeyB2ZXJpZnlGaWxlIH0gZnJvbSBcIi4uLy4uL3Byb2Nlc3MvdmVyaWZ5XCI7XG5pbXBvcnQgeyBwcm9jZWR1cmVzRnJvbUpTT04sIHByb2NlZHVyZXNUb1Byb2NlZHVyZXNKU09OIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9qc29uXCI7XG5cbmNvbnN0IHsgZnVydGxlTGV4ZXJGcm9tTm90aGluZywgZnVydGxlUGFyc2VyRnJvbU5vdGhpbmcgfSA9IGZ1cnRsZVV0aWxpdGllcztcblxuY29uc3QgZnVydGxlTGV4ZXIgPSBmdXJ0bGVMZXhlckZyb21Ob3RoaW5nKEZ1cnRsZUxleGVyKSxcbiAgICAgIGZ1cnRsZVBhcnNlciA9IGZ1cnRsZVBhcnNlckZyb21Ob3RoaW5nKEZ1cnRsZVBhcnNlcik7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZ1cnRsZUZpbGVDb250ZXh0IGV4dGVuZHMgRmlsZUNvbnRleHQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBmaWxlQ29udGVudCwgZmlsZVBhdGgsIHRva2Vucywgbm9kZSwganNvbiwgbGV4ZXIsIHBhcnNlciwgcHJvY2VkdXJlcykge1xuICAgIHN1cGVyKGNvbnRleHQsIGZpbGVDb250ZW50LCBmaWxlUGF0aCwgdG9rZW5zLCBub2RlLCBqc29uKTtcblxuICAgIHRoaXMubGV4ZXIgPSBsZXhlcjtcbiAgICB0aGlzLnBhcnNlciA9IHBhcnNlcjtcbiAgICB0aGlzLnByb2NlZHVyZXMgPSBwcm9jZWR1cmVzO1xuICB9XG5cbiAgZ2V0TGV4ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMubGV4ZXI7XG4gIH1cblxuICBnZXRQYXJzZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFyc2VyO1xuICB9XG5cbiAgZ2V0TGFiZWxzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGxhYmVscyA9IFtdO1xuXG4gICAgcmV0dXJuIGxhYmVscztcbiAgfVxuXG4gIGdldFR5cGVzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHR5cGVzID0gW107XG5cbiAgICByZXR1cm4gdHlwZXM7XG4gIH1cblxuICBnZXRSdWxlcyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBydWxlcyA9IFtdXG5cbiAgICByZXR1cm4gcnVsZXM7XG4gIH1cblxuICBnZXRBeGlvbXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgYXhpb21zID0gW107XG5cbiAgICByZXR1cm4gYXhpb21zO1xuICB9XG5cbiAgZ2V0TGVtbWFzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGxlbW1hcyA9IFtdO1xuXG4gICAgcmV0dXJuIGxlbW1hcztcbiAgfVxuXG4gIGdldFRoZW9yZW1zKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHRoZW9yZW1zID0gW107XG5cbiAgICByZXR1cm4gdGhlb3JlbXM7XG4gIH1cblxuICBnZXRNZXRhTGVtbWFzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IG1ldGFMZW1tYXMgPSBbXTtcblxuICAgIHJldHVybiBtZXRhTGVtbWFzO1xuICB9XG5cbiAgZ2V0R2VuZXJhdG9ycyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBnZW5lcmF0b3JzID0gW107XG5cbiAgICByZXR1cm4gZ2VuZXJhdG9ycztcbiAgfVxuXG4gIGdldENvbmplY3R1cmVzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGNvbmplY3R1cmVzID0gW107XG5cbiAgICByZXR1cm4gY29uamVjdHVyZXM7XG4gIH1cblxuICBnZXRDb21iaW5hdG9ycyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBjb21iaW5hdG9ycyA9IFtdO1xuXG4gICAgcmV0dXJuIGNvbWJpbmF0b3JzO1xuICB9XG5cbiAgZ2V0VHlwZVByZWZpeGVzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHR5cGVQcmVmaXhlcyA9IFtdO1xuXG4gICAgcmV0dXJuIHR5cGVQcmVmaXhlcztcbiAgfVxuXG4gIGdldENvbnN0cnVjdG9ycyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBjb25zdHJ1Y3RvcnMgPSBbXTtcblxuICAgIHJldHVybiBjb25zdHJ1Y3RvcnM7XG4gIH1cblxuICBnZXRNZXRhdGhlb3JlbXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgbWV0YXRoZW9yZW1zID0gW107XG5cbiAgICByZXR1cm4gbWV0YXRoZW9yZW1zO1xuICB9XG5cbiAgZ2V0TWV0YXZhcmlhYmxlcyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBtZXRhdmFyaWFibGVzID0gW107XG5cbiAgICByZXR1cm4gbWV0YXZhcmlhYmxlcztcbiAgfVxuXG4gIGdldFByb2NlZHVyZXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgcHJvY2VkdXJlcyA9IGluY2x1ZGVSZWxlYXNlID9cbiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHQuZ2V0UHJvY2VkdXJlcygpIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvY2VkdXJlcztcblxuICAgIHJldHVybiBwcm9jZWR1cmVzO1xuICB9XG5cbiAgZ2V0VmFyaWFibGVzKG5lc3RlZCA9IHRydWUpIHtcbiAgICBjb25zdCB2YXJpYWJsZXMgPSBbXTtcblxuICAgIHJldHVybiB2YXJpYWJsZXM7XG4gIH1cblxuICBhZGRQcm9jZWR1cmUocHJvY2VkdXJlKSB7XG4gICAgY29uc3QgcHJvY2VkdXJlU3RyaW5nID0gcHJvY2VkdXJlLmdldFN0cmluZygpO1xuXG4gICAgdGhpcy5wcm9jZWR1cmVzLnB1c2gocHJvY2VkdXJlKTtcblxuICAgIGNvbnN0IGZpbGVQYXRoID0gdGhpcy5nZXRGaWxlUGF0aCgpO1xuXG4gICAgdGhpcy5kZWJ1ZyhgQWRkZWQgdGhlICcke3Byb2NlZHVyZVN0cmluZ30nIGZ1bmN0aW9uIHRvIHRoZSAnJHtmaWxlUGF0aH0nIGZpbGUgY29udGV4dC5gKTtcbiAgfVxuXG4gIGZpbmRQcm9jZWR1cmVCeVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSkge1xuICAgIGNvbnN0IHByb2NlZHVyZXMgPSB0aGlzLmdldFByb2NlZHVyZXMoKSxcbiAgICAgICAgICBwcm9jZWR1cmUgPSBwcm9jZWR1cmVzLmZpbmQoKHByb2NlZHVyZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJvY2VkdXJlQ29tcGFyZXNUb1Byb2NlZHVyZU5hbWUgPSBwcm9jZWR1cmUuY29tcGFyZVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSk7XG5cbiAgICAgICAgICAgIGlmIChwcm9jZWR1cmVDb21wYXJlc1RvUHJvY2VkdXJlTmFtZSkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIHByb2NlZHVyZTtcbiAgfVxuXG4gIGlzUHJvY2VkdXJlUHJlc2VudEJ5UHJvY2VkdXJlTmFtZShwcm9jZWR1cmVOYW1lKSB7XG4gICAgY29uc3QgcHJvY2VkdXJlID0gdGhpcy5maW5kUHJvY2VkdXJlQnlQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpLFxuICAgICAgICAgIHByb2NlZHVyZVByZXNlbnQgPSAocHJvY2VkdXJlICE9PSBudWxsKTtcblxuICAgIHJldHVybiBwcm9jZWR1cmVQcmVzZW50O1xuICB9XG5cbiAgY2xlYXIoKSB7XG4gICAgdGhpcy5wcm9jZWR1cmVzID0gW107XG4gIH1cblxuICBjb21wbGV0ZSgpIHtcbiAgICAvLy9cbiAgfVxuXG4gIGluaXRpYWxpc2UoKSB7XG4gICAgY29uc3QganNvbiA9IHRoaXMuZ2V0SlNPTigpO1xuXG4gICAgaWYgKGpzb24gPT09IG51bGwpIHtcbiAgICAgIHN1cGVyLmluaXRpYWxpc2UoKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGZpbGVDb250ZXh0ID0gdGhpczsgLy8vXG5cbiAgICB0aGlzLnByb2NlZHVyZXMgPSBwcm9jZWR1cmVzRnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpO1xuICB9XG5cbiAgYXN5bmMgdmVyaWZ5RmlsZSgpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgY29udGV4dCA9IHRoaXMsIC8vL1xuICAgICAgICAgIGZpbGVOb2RlID0gbm9kZSwgIC8vL1xuICAgICAgICAgIGZpbGVWZXJpZmllcyA9IHZlcmlmeUZpbGUoZmlsZU5vZGUsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGZpbGVWZXJpZmllcztcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCBwcm9jZWR1cmVzSlNPTiA9IHByb2NlZHVyZXNUb1Byb2NlZHVyZXNKU09OKHRoaXMucHJvY2VkdXJlcyksXG4gICAgICAgICAgZmlsZUNvbnRlbnQgPSB0aGlzLmdldEZpbGVDb250ZW50KCksXG4gICAgICAgICAgZmlsZVBhdGggPSB0aGlzLmdldEZpbGVQYXRoKCksXG4gICAgICAgICAgcHJvY2VkdXJlcyA9IHByb2NlZHVyZXNKU09OLCAgLy8vXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIGZpbGVDb250ZW50LFxuICAgICAgICAgICAgZmlsZVBhdGgsXG4gICAgICAgICAgICBwcm9jZWR1cmVzXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIGZyb21GaWxlKGZpbGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCBsZXhlciA9IGZ1cnRsZUxleGVyLCAgLy8vXG4gICAgICAgICAgcGFyc2VyID0gZnVydGxlUGFyc2VyLCAgLy8vXG4gICAgICAgICAgcHJvY2VkdXJlcyA9IFtdLFxuICAgICAgICAgIGZ1cnRsZUZpbGVDb250ZXh0ID0gRmlsZUNvbnRleHQuZnJvbUZpbGUoRnVydGxlRmlsZUNvbnRleHQsIGZpbGUsIGxleGVyLCBwYXJzZXIsIHByb2NlZHVyZXMsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGZ1cnRsZUZpbGVDb250ZXh0O1xuICB9XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICBjb25zdCBsZXhlciA9IGZ1cnRsZUxleGVyLCAgLy8vXG4gICAgICAgICAgcGFyc2VyID0gZnVydGxlUGFyc2VyLCAgLy8vXG4gICAgICAgICAgcHJvY2VkdXJlcyA9IG51bGwsXG4gICAgICAgICAgZnVydGxlRmlsZUNvbnRleHQgPSBGaWxlQ29udGV4dC5mcm9tSlNPTihGdXJ0bGVGaWxlQ29udGV4dCwganNvbiwgbGV4ZXIsIHBhcnNlciwgcHJvY2VkdXJlcywgY29udGV4dCk7XG5cbiAgICByZXR1cm4gZnVydGxlRmlsZUNvbnRleHQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJGdXJ0bGVGaWxlQ29udGV4dCIsImZ1cnRsZUxleGVyRnJvbU5vdGhpbmciLCJmdXJ0bGVQYXJzZXJGcm9tTm90aGluZyIsImZ1cnRsZVV0aWxpdGllcyIsImZ1cnRsZUxleGVyIiwiRnVydGxlTGV4ZXIiLCJmdXJ0bGVQYXJzZXIiLCJGdXJ0bGVQYXJzZXIiLCJGaWxlQ29udGV4dCIsImNvbnRleHQiLCJmaWxlQ29udGVudCIsImZpbGVQYXRoIiwidG9rZW5zIiwibm9kZSIsImpzb24iLCJsZXhlciIsInBhcnNlciIsInByb2NlZHVyZXMiLCJnZXRMZXhlciIsImdldFBhcnNlciIsImdldExhYmVscyIsImluY2x1ZGVSZWxlYXNlIiwibGFiZWxzIiwiZ2V0VHlwZXMiLCJ0eXBlcyIsImdldFJ1bGVzIiwicnVsZXMiLCJnZXRBeGlvbXMiLCJheGlvbXMiLCJnZXRMZW1tYXMiLCJsZW1tYXMiLCJnZXRUaGVvcmVtcyIsInRoZW9yZW1zIiwiZ2V0TWV0YUxlbW1hcyIsIm1ldGFMZW1tYXMiLCJnZXRHZW5lcmF0b3JzIiwiZ2VuZXJhdG9ycyIsImdldENvbmplY3R1cmVzIiwiY29uamVjdHVyZXMiLCJnZXRDb21iaW5hdG9ycyIsImNvbWJpbmF0b3JzIiwiZ2V0VHlwZVByZWZpeGVzIiwidHlwZVByZWZpeGVzIiwiZ2V0Q29uc3RydWN0b3JzIiwiY29uc3RydWN0b3JzIiwiZ2V0TWV0YXRoZW9yZW1zIiwibWV0YXRoZW9yZW1zIiwiZ2V0TWV0YXZhcmlhYmxlcyIsIm1ldGF2YXJpYWJsZXMiLCJnZXRQcm9jZWR1cmVzIiwiZ2V0VmFyaWFibGVzIiwibmVzdGVkIiwidmFyaWFibGVzIiwiYWRkUHJvY2VkdXJlIiwicHJvY2VkdXJlIiwicHJvY2VkdXJlU3RyaW5nIiwiZ2V0U3RyaW5nIiwicHVzaCIsImdldEZpbGVQYXRoIiwiZGVidWciLCJmaW5kUHJvY2VkdXJlQnlQcm9jZWR1cmVOYW1lIiwicHJvY2VkdXJlTmFtZSIsImZpbmQiLCJwcm9jZWR1cmVDb21wYXJlc1RvUHJvY2VkdXJlTmFtZSIsImNvbXBhcmVQcm9jZWR1cmVOYW1lIiwiaXNQcm9jZWR1cmVQcmVzZW50QnlQcm9jZWR1cmVOYW1lIiwicHJvY2VkdXJlUHJlc2VudCIsImNsZWFyIiwiY29tcGxldGUiLCJpbml0aWFsaXNlIiwiZ2V0SlNPTiIsImZpbGVDb250ZXh0IiwicHJvY2VkdXJlc0Zyb21KU09OIiwidmVyaWZ5RmlsZSIsImdldE5vZGUiLCJmaWxlTm9kZSIsImZpbGVWZXJpZmllcyIsInRvSlNPTiIsInByb2NlZHVyZXNKU09OIiwicHJvY2VkdXJlc1RvUHJvY2VkdXJlc0pTT04iLCJnZXRGaWxlQ29udGVudCIs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
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0L2ZpbGUvZnVydGxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBGaWxlQ29udGV4dCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IHsgdmVyaWZ5RmlsZSB9IGZyb20gXCIuLi8uLi9wcm9jZXNzL3ZlcmlmeVwiO1xuaW1wb3J0IHsgZnVydGxlTGV4ZXIsIGZ1cnRsZVBhcnNlciB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvZnVydGxlXCI7XG5pbXBvcnQgeyBwcm9jZWR1cmVzRnJvbUpTT04sIHByb2NlZHVyZXNUb1Byb2NlZHVyZXNKU09OIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9qc29uXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZ1cnRsZUZpbGVDb250ZXh0IGV4dGVuZHMgRmlsZUNvbnRleHQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBmaWxlQ29udGVudCwgZmlsZVBhdGgsIHRva2Vucywgbm9kZSwganNvbiwgbGV4ZXIsIHBhcnNlciwgcHJvY2VkdXJlcykge1xuICAgIHN1cGVyKGNvbnRleHQsIGZpbGVDb250ZW50LCBmaWxlUGF0aCwgdG9rZW5zLCBub2RlLCBqc29uKTtcblxuICAgIHRoaXMubGV4ZXIgPSBsZXhlcjtcbiAgICB0aGlzLnBhcnNlciA9IHBhcnNlcjtcbiAgICB0aGlzLnByb2NlZHVyZXMgPSBwcm9jZWR1cmVzO1xuICB9XG5cbiAgZ2V0TGV4ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMubGV4ZXI7XG4gIH1cblxuICBnZXRQYXJzZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFyc2VyO1xuICB9XG5cbiAgZ2V0TGFiZWxzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGxhYmVscyA9IFtdO1xuXG4gICAgcmV0dXJuIGxhYmVscztcbiAgfVxuXG4gIGdldFR5cGVzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHR5cGVzID0gW107XG5cbiAgICByZXR1cm4gdHlwZXM7XG4gIH1cblxuICBnZXRSdWxlcyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBydWxlcyA9IFtdXG5cbiAgICByZXR1cm4gcnVsZXM7XG4gIH1cblxuICBnZXRBeGlvbXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgYXhpb21zID0gW107XG5cbiAgICByZXR1cm4gYXhpb21zO1xuICB9XG5cbiAgZ2V0TGVtbWFzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGxlbW1hcyA9IFtdO1xuXG4gICAgcmV0dXJuIGxlbW1hcztcbiAgfVxuXG4gIGdldFRoZW9yZW1zKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHRoZW9yZW1zID0gW107XG5cbiAgICByZXR1cm4gdGhlb3JlbXM7XG4gIH1cblxuICBnZXRNZXRhTGVtbWFzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IG1ldGFMZW1tYXMgPSBbXTtcblxuICAgIHJldHVybiBtZXRhTGVtbWFzO1xuICB9XG5cbiAgZ2V0R2VuZXJhdG9ycyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBnZW5lcmF0b3JzID0gW107XG5cbiAgICByZXR1cm4gZ2VuZXJhdG9ycztcbiAgfVxuXG4gIGdldENvbmplY3R1cmVzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGNvbmplY3R1cmVzID0gW107XG5cbiAgICByZXR1cm4gY29uamVjdHVyZXM7XG4gIH1cblxuICBnZXRDb21iaW5hdG9ycyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBjb21iaW5hdG9ycyA9IFtdO1xuXG4gICAgcmV0dXJuIGNvbWJpbmF0b3JzO1xuICB9XG5cbiAgZ2V0VHlwZVByZWZpeGVzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHR5cGVQcmVmaXhlcyA9IFtdO1xuXG4gICAgcmV0dXJuIHR5cGVQcmVmaXhlcztcbiAgfVxuXG4gIGdldENvbnN0cnVjdG9ycyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBjb25zdHJ1Y3RvcnMgPSBbXTtcblxuICAgIHJldHVybiBjb25zdHJ1Y3RvcnM7XG4gIH1cblxuICBnZXRNZXRhdGhlb3JlbXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgbWV0YXRoZW9yZW1zID0gW107XG5cbiAgICByZXR1cm4gbWV0YXRoZW9yZW1zO1xuICB9XG5cbiAgZ2V0TWV0YXZhcmlhYmxlcyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBtZXRhdmFyaWFibGVzID0gW107XG5cbiAgICByZXR1cm4gbWV0YXZhcmlhYmxlcztcbiAgfVxuXG4gIGdldFByb2NlZHVyZXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgcHJvY2VkdXJlcyA9IGluY2x1ZGVSZWxlYXNlID9cbiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHQuZ2V0UHJvY2VkdXJlcygpIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvY2VkdXJlcztcblxuICAgIHJldHVybiBwcm9jZWR1cmVzO1xuICB9XG5cbiAgZ2V0VmFyaWFibGVzKG5lc3RlZCA9IHRydWUpIHtcbiAgICBjb25zdCB2YXJpYWJsZXMgPSBbXTtcblxuICAgIHJldHVybiB2YXJpYWJsZXM7XG4gIH1cblxuICBhZGRQcm9jZWR1cmUocHJvY2VkdXJlKSB7XG4gICAgY29uc3QgcHJvY2VkdXJlU3RyaW5nID0gcHJvY2VkdXJlLmdldFN0cmluZygpO1xuXG4gICAgdGhpcy5wcm9jZWR1cmVzLnB1c2gocHJvY2VkdXJlKTtcblxuICAgIGNvbnN0IGZpbGVQYXRoID0gdGhpcy5nZXRGaWxlUGF0aCgpO1xuXG4gICAgdGhpcy5kZWJ1ZyhgQWRkZWQgdGhlICcke3Byb2NlZHVyZVN0cmluZ30nIGZ1bmN0aW9uIHRvIHRoZSAnJHtmaWxlUGF0aH0nIGZpbGUgY29udGV4dC5gKTtcbiAgfVxuXG4gIGZpbmRQcm9jZWR1cmVCeVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSkge1xuICAgIGNvbnN0IHByb2NlZHVyZXMgPSB0aGlzLmdldFByb2NlZHVyZXMoKSxcbiAgICAgICAgICBwcm9jZWR1cmUgPSBwcm9jZWR1cmVzLmZpbmQoKHByb2NlZHVyZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJvY2VkdXJlQ29tcGFyZXNUb1Byb2NlZHVyZU5hbWUgPSBwcm9jZWR1cmUuY29tcGFyZVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSk7XG5cbiAgICAgICAgICAgIGlmIChwcm9jZWR1cmVDb21wYXJlc1RvUHJvY2VkdXJlTmFtZSkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIHByb2NlZHVyZTtcbiAgfVxuXG4gIGlzUHJvY2VkdXJlUHJlc2VudEJ5UHJvY2VkdXJlTmFtZShwcm9jZWR1cmVOYW1lKSB7XG4gICAgY29uc3QgcHJvY2VkdXJlID0gdGhpcy5maW5kUHJvY2VkdXJlQnlQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpLFxuICAgICAgICAgIHByb2NlZHVyZVByZXNlbnQgPSAocHJvY2VkdXJlICE9PSBudWxsKTtcblxuICAgIHJldHVybiBwcm9jZWR1cmVQcmVzZW50O1xuICB9XG5cbiAgY2xlYXIoKSB7XG4gICAgdGhpcy5wcm9jZWR1cmVzID0gW107XG4gIH1cblxuICBjb21wbGV0ZSgpIHtcbiAgICAvLy9cbiAgfVxuXG4gIGluaXRpYWxpc2UoKSB7XG4gICAgY29uc3QganNvbiA9IHRoaXMuZ2V0SlNPTigpO1xuXG4gICAgaWYgKGpzb24gPT09IG51bGwpIHtcbiAgICAgIHN1cGVyLmluaXRpYWxpc2UoKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGZpbGVDb250ZXh0ID0gdGhpczsgLy8vXG5cbiAgICB0aGlzLnByb2NlZHVyZXMgPSBwcm9jZWR1cmVzRnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpO1xuICB9XG5cbiAgYXN5bmMgdmVyaWZ5RmlsZSgpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgY29udGV4dCA9IHRoaXMsIC8vL1xuICAgICAgICAgIGZpbGVOb2RlID0gbm9kZSwgIC8vL1xuICAgICAgICAgIGZpbGVWZXJpZmllcyA9IHZlcmlmeUZpbGUoZmlsZU5vZGUsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGZpbGVWZXJpZmllcztcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCBwcm9jZWR1cmVzSlNPTiA9IHByb2NlZHVyZXNUb1Byb2NlZHVyZXNKU09OKHRoaXMucHJvY2VkdXJlcyksXG4gICAgICAgICAgZmlsZUNvbnRlbnQgPSB0aGlzLmdldEZpbGVDb250ZW50KCksXG4gICAgICAgICAgZmlsZVBhdGggPSB0aGlzLmdldEZpbGVQYXRoKCksXG4gICAgICAgICAgcHJvY2VkdXJlcyA9IHByb2NlZHVyZXNKU09OLCAgLy8vXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIGZpbGVDb250ZW50LFxuICAgICAgICAgICAgZmlsZVBhdGgsXG4gICAgICAgICAgICBwcm9jZWR1cmVzXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIGZyb21GaWxlKGZpbGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCBsZXhlciA9IGZ1cnRsZUxleGVyLCAgLy8vXG4gICAgICAgICAgcGFyc2VyID0gZnVydGxlUGFyc2VyLCAgLy8vXG4gICAgICAgICAgcHJvY2VkdXJlcyA9IFtdLFxuICAgICAgICAgIGZ1cnRsZUZpbGVDb250ZXh0ID0gRmlsZUNvbnRleHQuZnJvbUZpbGUoRnVydGxlRmlsZUNvbnRleHQsIGZpbGUsIGxleGVyLCBwYXJzZXIsIHByb2NlZHVyZXMsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGZ1cnRsZUZpbGVDb250ZXh0O1xuICB9XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICBjb25zdCBsZXhlciA9IGZ1cnRsZUxleGVyLCAgLy8vXG4gICAgICAgICAgcGFyc2VyID0gZnVydGxlUGFyc2VyLCAgLy8vXG4gICAgICAgICAgcHJvY2VkdXJlcyA9IG51bGwsXG4gICAgICAgICAgZnVydGxlRmlsZUNvbnRleHQgPSBGaWxlQ29udGV4dC5mcm9tSlNPTihGdXJ0bGVGaWxlQ29udGV4dCwganNvbiwgbGV4ZXIsIHBhcnNlciwgcHJvY2VkdXJlcywgY29udGV4dCk7XG5cbiAgICByZXR1cm4gZnVydGxlRmlsZUNvbnRleHQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJGdXJ0bGVGaWxlQ29udGV4dCIsIkZpbGVDb250ZXh0IiwiY29udGV4dCIsImZpbGVDb250ZW50IiwiZmlsZVBhdGgiLCJ0b2tlbnMiLCJub2RlIiwianNvbiIsImxleGVyIiwicGFyc2VyIiwicHJvY2VkdXJlcyIsImdldExleGVyIiwiZ2V0UGFyc2VyIiwiZ2V0TGFiZWxzIiwiaW5jbHVkZVJlbGVhc2UiLCJsYWJlbHMiLCJnZXRUeXBlcyIsInR5cGVzIiwiZ2V0UnVsZXMiLCJydWxlcyIsImdldEF4aW9tcyIsImF4aW9tcyIsImdldExlbW1hcyIsImxlbW1hcyIsImdldFRoZW9yZW1zIiwidGhlb3JlbXMiLCJnZXRNZXRhTGVtbWFzIiwibWV0YUxlbW1hcyIsImdldEdlbmVyYXRvcnMiLCJnZW5lcmF0b3JzIiwiZ2V0Q29uamVjdHVyZXMiLCJjb25qZWN0dXJlcyIsImdldENvbWJpbmF0b3JzIiwiY29tYmluYXRvcnMiLCJnZXRUeXBlUHJlZml4ZXMiLCJ0eXBlUHJlZml4ZXMiLCJnZXRDb25zdHJ1Y3RvcnMiLCJjb25zdHJ1Y3RvcnMiLCJnZXRNZXRhdGhlb3JlbXMiLCJtZXRhdGhlb3JlbXMiLCJnZXRNZXRhdmFyaWFibGVzIiwibWV0YXZhcmlhYmxlcyIsImdldFByb2NlZHVyZXMiLCJnZXRWYXJpYWJsZXMiLCJuZXN0ZWQiLCJ2YXJpYWJsZXMiLCJhZGRQcm9jZWR1cmUiLCJwcm9jZWR1cmUiLCJwcm9jZWR1cmVTdHJpbmciLCJnZXRTdHJpbmciLCJwdXNoIiwiZ2V0RmlsZVBhdGgiLCJkZWJ1ZyIsImZpbmRQcm9jZWR1cmVCeVByb2NlZHVyZU5hbWUiLCJwcm9jZWR1cmVOYW1lIiwiZmluZCIsInByb2NlZHVyZUNvbXBhcmVzVG9Qcm9jZWR1cmVOYW1lIiwiY29tcGFyZVByb2NlZHVyZU5hbWUiLCJpc1Byb2NlZHVyZVByZXNlbnRCeVByb2NlZHVyZU5hbWUiLCJwcm9jZWR1cmVQcmVzZW50IiwiY2xlYXIiLCJjb21wbGV0ZSIsImluaXRpYWxpc2UiLCJnZXRKU09OIiwiZmlsZUNvbnRleHQiLCJwcm9jZWR1cmVzRnJvbUpTT04iLCJ2ZXJpZnlGaWxlIiwiZ2V0Tm9kZSIsImZpbGVOb2RlIiwiZmlsZVZlcmlmaWVzIiwidG9KU09OIiwicHJvY2VkdXJlc0pTT04iLCJwcm9jZWR1cmVzVG9Qcm9jZWR1cmVzSlNPTiIsImdldEZpbGVDb250ZW50IiwiZnJvbUZpbGUiLCJmaWxlIiwiZnVydGxlTGV4ZXIiLCJmdXJ0bGVQYXJzZXIiLCJmdXJ0bGVGaWxlQ29udGV4dCIsImZyb21KU09OIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFRQTs7O2VBQXFCQTs7O2dDQU5PO3dCQUVEO3dCQUNlO3NCQUNxQjtBQUVoRCxNQUFNQSwwQkFBMEJDLDJCQUFXO0lBQ3hELFlBQVlDLE9BQU8sRUFBRUMsV0FBVyxFQUFFQyxRQUFRLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxJQUFJLEVBQUVDLEtBQUssRUFBRUMsTUFBTSxFQUFFQyxVQUFVLENBQUU7UUFDekYsS0FBSyxDQUFDUixTQUFTQyxhQUFhQyxVQUFVQyxRQUFRQyxNQUFNQztRQUVwRCxJQUFJLENBQUNDLEtBQUssR0FBR0E7UUFDYixJQUFJLENBQUNDLE1BQU0sR0FB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
@@ -21,6 +21,14 @@ class LiteralContext extends _occamlanguages.Context {
21
21
  setTokens(tokens) {
22
22
  this.tokens = tokens;
23
23
  }
24
+ getLexer() {
25
+ const context = this.getContext(), lexer = context.getLexer();
26
+ return lexer;
27
+ }
28
+ getParser() {
29
+ const context = this.getContext(), parser = context.getParser();
30
+ return parser;
31
+ }
24
32
  nodeAsString(node) {
25
33
  const string = nodeAsString(node, this.tokens);
26
34
  return string;
@@ -29,14 +37,10 @@ class LiteralContext extends _occamlanguages.Context {
29
37
  const string = nodesAsString(nodes, this.tokens);
30
38
  return string;
31
39
  }
32
- static fromTokens(tokens, context) {
33
- const literalContext = new LiteralContext(context, tokens);
34
- return literalContext;
35
- }
36
40
  static fromNothing(context) {
37
41
  const tokens = null, literalContext = new LiteralContext(context, tokens);
38
42
  return literalContext;
39
43
  }
40
44
  }
41
45
 
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L2xpdGVyYWwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IENvbnRleHQsIG5vZGVVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmNvbnN0IHsgbm9kZUFzU3RyaW5nLCBub2Rlc0FzU3RyaW5nIH0gPSBub2RlVXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMaXRlcmFsQ29udGV4dCBleHRlbmRzIENvbnRleHQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCB0b2tlbnMpIHtcbiAgICBzdXBlcihjb250ZXh0KTtcblxuICAgIHRoaXMudG9rZW5zID0gdG9rZW5zO1xuICB9XG5cbiAgZ2V0VG9rZW5zKCkge1xuICAgIHJldHVybiB0aGlzLnRva2VucztcbiAgfVxuXG4gIHNldFRva2Vucyh0b2tlbnMpIHtcbiAgICB0aGlzLnRva2VucyA9IHRva2VucztcbiAgfVxuXG4gIG5vZGVBc1N0cmluZyhub2RlKSB7XG4gICAgY29uc3Qgc3RyaW5nID0gbm9kZUFzU3RyaW5nKG5vZGUsIHRoaXMudG9rZW5zKTtcblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cblxuICBub2Rlc0FzU3RyaW5nKG5vZGVzKSB7XG4gICAgY29uc3Qgc3RyaW5nID0gbm9kZXNBc1N0cmluZyhub2RlcywgdGhpcy50b2tlbnMpO1xuXG4gICAgcmV0dXJuIHN0cmluZztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVG9rZW5zKHRva2VucywgY29udGV4dCkge1xuICAgIGNvbnN0IGxpdGVyYWxDb250ZXh0ID0gbmV3IExpdGVyYWxDb250ZXh0KGNvbnRleHQsIHRva2Vucyk7XG5cbiAgICByZXR1cm4gbGl0ZXJhbENvbnRleHQ7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5vdGhpbmcoY29udGV4dCkge1xuICAgIGNvbnN0IHRva2VucyA9IG51bGwsXG4gICAgICAgICAgbGl0ZXJhbENvbnRleHQgPSBuZXcgTGl0ZXJhbENvbnRleHQoY29udGV4dCwgdG9rZW5zKTtcblxuICAgIHJldHVybiBsaXRlcmFsQ29udGV4dDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkxpdGVyYWxDb250ZXh0Iiwibm9kZUFzU3RyaW5nIiwibm9kZXNBc1N0cmluZyIsIm5vZGVVdGlsaXRpZXMiLCJDb250ZXh0IiwiY29udGV4dCIsInRva2VucyIsImdldFRva2VucyIsInNldFRva2VucyIsIm5vZGUiLCJzdHJpbmciLCJub2RlcyIsImZyb21Ub2tlbnMiLCJsaXRlcmFsQ29udGV4dCIsImZyb21Ob3RoaW5nIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFNQTs7O2VBQXFCQTs7O2dDQUprQjtBQUV2QyxNQUFNLEVBQUVDLFlBQVksRUFBRUMsYUFBYSxFQUFFLEdBQUdDLDZCQUFhO0FBRXRDLE1BQU1ILHVCQUF1QkksdUJBQU87SUFDakQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLENBQUU7UUFDM0IsS0FBSyxDQUFDRDtRQUVOLElBQUksQ0FBQ0MsTUFBTSxHQUFHQTtJQUNoQjtJQUVBQyxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUNELE1BQU07SUFDcEI7SUFFQUUsVUFBVUYsTUFBTSxFQUFFO1FBQ2hCLElBQUksQ0FBQ0EsTUFBTSxHQUFHQTtJQUNoQjtJQUVBTCxhQUFhUSxJQUFJLEVBQUU7UUFDakIsTUFBTUMsU0FBU1QsYUFBYVEsTUFBTSxJQUFJLENBQUNILE1BQU07UUFFN0MsT0FBT0k7SUFDVDtJQUVBUixjQUFjUyxLQUFLLEVBQUU7UUFDbkIsTUFBTUQsU0FBU1IsY0FBY1MsT0FBTyxJQUFJLENBQUNMLE1BQU07UUFFL0MsT0FBT0k7SUFDVDtJQUVBLE9BQU9FLFdBQVdOLE1BQU0sRUFBRUQsT0FBTyxFQUFFO1FBQ2pDLE1BQU1RLGlCQUFpQixJQUFJYixlQUFlSyxTQUFTQztRQUVuRCxPQUFPTztJQUNUO0lBRUEsT0FBT0MsWUFBWVQsT0FBTyxFQUFFO1FBQzFCLE1BQU1DLFNBQVMsTUFDVE8saUJBQWlCLElBQUliLGVBQWVLLFNBQVNDO1FBRW5ELE9BQU9PO0lBQ1Q7QUFDRiJ9
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0L2xpdGVyYWwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IENvbnRleHQsIG5vZGVVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmNvbnN0IHsgbm9kZUFzU3RyaW5nLCBub2Rlc0FzU3RyaW5nIH0gPSBub2RlVXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMaXRlcmFsQ29udGV4dCBleHRlbmRzIENvbnRleHQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCB0b2tlbnMpIHtcbiAgICBzdXBlcihjb250ZXh0KTtcblxuICAgIHRoaXMudG9rZW5zID0gdG9rZW5zO1xuICB9XG5cbiAgZ2V0VG9rZW5zKCkge1xuICAgIHJldHVybiB0aGlzLnRva2VucztcbiAgfVxuXG4gIHNldFRva2Vucyh0b2tlbnMpIHtcbiAgICB0aGlzLnRva2VucyA9IHRva2VucztcbiAgfVxuXG4gIGdldExleGVyKCkge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKSxcbiAgICAgICAgICBsZXhlciA9IGNvbnRleHQuZ2V0TGV4ZXIoKTtcblxuICAgIHJldHVybiBsZXhlcjtcbiAgfVxuXG4gIGdldFBhcnNlcigpIHtcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5nZXRDb250ZXh0KCksXG4gICAgICAgICAgcGFyc2VyID0gY29udGV4dC5nZXRQYXJzZXIoKTtcblxuICAgIHJldHVybiBwYXJzZXI7XG4gIH1cblxuICBub2RlQXNTdHJpbmcobm9kZSkge1xuICAgIGNvbnN0IHN0cmluZyA9IG5vZGVBc1N0cmluZyhub2RlLCB0aGlzLnRva2Vucyk7XG5cbiAgICByZXR1cm4gc3RyaW5nO1xuICB9XG5cbiAgbm9kZXNBc1N0cmluZyhub2Rlcykge1xuICAgIGNvbnN0IHN0cmluZyA9IG5vZGVzQXNTdHJpbmcobm9kZXMsIHRoaXMudG9rZW5zKTtcblxuICAgIHJldHVybiBzdHJpbmc7XG4gIH1cblxuICBzdGF0aWMgZnJvbU5vdGhpbmcoY29udGV4dCkge1xuICAgIGNvbnN0IHRva2VucyA9IG51bGwsXG4gICAgICAgICAgbGl0ZXJhbENvbnRleHQgPSBuZXcgTGl0ZXJhbENvbnRleHQoY29udGV4dCwgdG9rZW5zKTtcblxuICAgIHJldHVybiBsaXRlcmFsQ29udGV4dDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkxpdGVyYWxDb250ZXh0Iiwibm9kZUFzU3RyaW5nIiwibm9kZXNBc1N0cmluZyIsIm5vZGVVdGlsaXRpZXMiLCJDb250ZXh0IiwiY29udGV4dCIsInRva2VucyIsImdldFRva2VucyIsInNldFRva2VucyIsImdldExleGVyIiwiZ2V0Q29udGV4dCIsImxleGVyIiwiZ2V0UGFyc2VyIiwicGFyc2VyIiwibm9kZSIsInN0cmluZyIsIm5vZGVzIiwiZnJvbU5vdGhpbmciLCJsaXRlcmFsQ29udGV4dCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBTUE7OztlQUFxQkE7OztnQ0FKa0I7QUFFdkMsTUFBTSxFQUFFQyxZQUFZLEVBQUVDLGFBQWEsRUFBRSxHQUFHQyw2QkFBYTtBQUV0QyxNQUFNSCx1QkFBdUJJLHVCQUFPO0lBQ2pELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxDQUFFO1FBQzNCLEtBQUssQ0FBQ0Q7UUFFTixJQUFJLENBQUNDLE1BQU0sR0FBR0E7SUFDaEI7SUFFQUMsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDRCxNQUFNO0lBQ3BCO0lBRUFFLFVBQVVGLE1BQU0sRUFBRTtRQUNoQixJQUFJLENBQUNBLE1BQU0sR0FBR0E7SUFDaEI7SUFFQUcsV0FBVztRQUNULE1BQU1KLFVBQVUsSUFBSSxDQUFDSyxVQUFVLElBQ3pCQyxRQUFRTixRQUFRSSxRQUFRO1FBRTlCLE9BQU9FO0lBQ1Q7SUFFQUMsWUFBWTtRQUNWLE1BQU1QLFVBQVUsSUFBSSxDQUFDSyxVQUFVLElBQ3pCRyxTQUFTUixRQUFRTyxTQUFTO1FBRWhDLE9BQU9DO0lBQ1Q7SUFFQVosYUFBYWEsSUFBSSxFQUFFO1FBQ2pCLE1BQU1DLFNBQVNkLGFBQWFhLE1BQU0sSUFBSSxDQUFDUixNQUFNO1FBRTdDLE9BQU9TO0lBQ1Q7SUFFQWIsY0FBY2MsS0FBSyxFQUFFO1FBQ25CLE1BQU1ELFNBQVNiLGNBQWNjLE9BQU8sSUFBSSxDQUFDVixNQUFNO1FBRS9DLE9BQU9TO0lBQ1Q7SUFFQSxPQUFPRSxZQUFZWixPQUFPLEVBQUU7UUFDMUIsTUFBTUMsU0FBUyxNQUNUWSxpQkFBaUIsSUFBSWxCLGVBQWVLLFNBQVNDO1FBRW5ELE9BQU9ZO0lBQ1Q7QUFDRiJ9
@@ -103,10 +103,10 @@ const _default = (0, _elements.define)(class Procedure extends _occamlanguages.E
103
103
  }
104
104
  static name = "Procedure";
105
105
  static fromJSON(json, context) {
106
- const { string } = json, breakPoint = breakPointFromJSON(json), type = (0, _json.typeFromJSON)(json), label = (0, _json.labelFromJSON)(json), parameters = (0, _json.parametersFromJSON)(json), procedureNode = context.findProcedureNode(label), returnBlock = null, node = procedureNode; ///
106
+ const { string } = json, breakPoint = breakPointFromJSON(json), type = (0, _json.typeFromJSON)(json, context), label = (0, _json.labelFromJSON)(json, context), parameters = (0, _json.parametersFromJSON)(json, context), procedureNode = context.findProcedureNode(label), returnBlock = null, node = procedureNode; ///
107
107
  const procedure = new Prpcedure(context, string, node, breakPoint, type, label, parameters, returnBlock);
108
108
  return procedure;
109
109
  }
110
110
  });
111
111
 
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3Byb2NlZHVyZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCwgYnJlYWtQb2ludFV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgdmFsdWVzRnJvbU5vbWluYWxWYWx1ZXMgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3ZhbHVlc1wiO1xuaW1wb3J0IHsgdmFyaWFibGVzRnJvbVZhbHVlc0FuZFBhcmFtZXRlcnMgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3BhcmFtZXRlcnNcIjtcbmltcG9ydCB7IHR5cGVGcm9tSlNPTiwgbGFiZWxGcm9tSlNPTiwgcGFyYW1ldGVyc0Zyb21KU09OLCB0eXBlVG9UeXBlSlNPTiwgbGFiZWxUb0xhYmVsSlNPTiwgcGFyYW1ldGVyc1RvUGFyYW1ldGVyc0pTT04gfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2pzb25cIjtcblxuY29uc3QgeyBicmVha1BvaW50RnJvbUpTT04sIGJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OIH0gPSBicmVha1BvaW50VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgUHJvY2VkdXJlIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdHlwZSwgbGFiZWwsIHBhcmFtZXRlcnMsIHJldHVybkJsb2NrKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgdGhpcy5sYWJlbCA9IGxhYmVsO1xuICAgIHRoaXMucGFyYW1ldGVycyA9IHBhcmFtZXRlcnM7XG4gICAgdGhpcy5yZXR1cm5CbG9jayA9IHJldHVybkJsb2NrO1xuICB9XG5cbiAgZ2V0VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlO1xuICB9XG5cbiAgZ2V0TGFiZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMubGFiZWw7XG4gIH1cblxuICBnZXRQYXJhbWV0ZXJzKCkge1xuICAgIHJldHVybiB0aGlzLnBhcmFtZXRlcnM7XG4gIH1cblxuICBnZXRSZXR1cm5CbG9jaygpIHtcbiAgICByZXR1cm4gdGhpcy5yZXR1cm5CbG9jaztcbiAgfVxuXG4gIGdldE5hbWUoKSB7IHJldHVybiB0aGlzLmxhYmVsLmdldE5hbWUoKTsgfVxuXG4gIGlzQm9vbGVhbigpIHtcbiAgICBjb25zdCB0eXBlID0gdGhpcy5nZXRUeXBlKCksXG4gICAgICAgICAgYm9vbGVhblR5cGUgPSB0eXBlLmlzQm9vbGVhblR5cGUoKSxcbiAgICAgICAgICBib29sZWFuID0gYm9vbGVhblR5cGU7ICAvLy9cblxuICAgIHJldHVybiBib29sZWFuO1xuICB9XG5cbiAgZ2V0UmV0dXJuU3RhdGVtZW50KCkgeyByZXR1cm4gdGhpcy5yZXR1cm5CbG9jay5nZXRSZXR1cm5TdGF0ZW1lbnQoKTsgfVxuXG4gIGNvbXBhcmVQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpIHsgcmV0dXJuIHRoaXMubGFiZWwuY29tcGFyZVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSk7IH1cblxuICB2ZXJpZnkoY29udGV4dCkge1xuICAgIGNvbnN0IHZlcmlmaWVzID0gdHJ1ZTtcblxuICAgIGNvbnN0IHByb2NlZHVyZVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3Byb2NlZHVyZVN0cmluZ30nIGZ1bmN0aW9uLi4uYClcblxuICAgIGNvbnN0IHByb2NlZHVyZSA9IHRoaXM7IC8vL1xuXG4gICAgY29udGV4dC5hZGRQcm9jZWR1cmUocHJvY2VkdXJlKTtcblxuICAgIGlmICh2ZXJpZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3Byb2NlZHVyZVN0cmluZ30nIGZ1bmN0aW9uLmApXG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVzO1xuICB9XG5cbiAgYXN5bmMgY2FsbCh2YWx1ZXMsIGNvbnRleHQpIHtcbiAgICBhd2FpdCB0aGlzLmJyZWFrKGNvbnRleHQpO1xuXG4gICAgY29uc3QgcHJvY2VkdXJlU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgQ2FsbGluZyB0aGUgJyR7cHJvY2VkdXJlU3RyaW5nfScgcHJvY2VkdXJlLi4uYCk7XG5cbiAgICB0aGlzLnBhcmFtZXRlcnMuY29tcGFyZVZhbHVlcyh2YWx1ZXMsIGNvbnRleHQpO1xuXG4gICAgY29uc3QgdmFyaWFibGVzID0gdmFyaWFibGVzRnJvbVZhbHVlc0FuZFBhcmFtZXRlcnModmFsdWVzLCB0aGlzLnBhcmFtZXRlcnMsIGNvbnRleHQpLFxuICAgICAgICAgIHZhbHVlID0gYXdhaXQgdGhpcy5yZXR1cm5CbG9jay5ldmFsdWF0ZSh2YXJpYWJsZXMsIGNvbnRleHQpLFxuICAgICAgICAgIHZhbHVlVHlwZSA9IHZhbHVlLmdldFR5cGUoKSxcbiAgICAgICAgICB0eXBlRXF1YWxUb1ZhbHVlVHlwZSA9IHRoaXMudHlwZS5pc0VxdWFsVG8odmFsdWVUeXBlKTtcblxuICAgIGlmICghdHlwZUVxdWFsVG9WYWx1ZVR5cGUpIHtcbiAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICB0eXBlU3RyaW5nID0gdGhpcy50eXBlLmdldFN0cmluZygpLFxuICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7dmFsdWVTdHJpbmd9JyB2YWx1ZSdzICcke3R5cGVTdHJpbmd9JyB0eXBlIGlzIG5vdCBlcXVhbCB0byB0aGUgJyR7cHJvY2VkdXJlU3RyaW5nfScgcHJvY2VkdXJlJ3MgJyR7dHlwZVN0cmluZ30nIHR5cGUuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmNhbGxlZCB0aGUgJyR7cHJvY2VkdXJlU3RyaW5nfScgcHJvY2VkdXJlLmApO1xuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgYXN5bmMgY2FsbE5vbWluYWxseShub21pbmFsVmFsdWVzKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgYXdhaXQgdGhpcy5icmVhayhjb250ZXh0KTtcblxuICAgIGNvbnN0IHByb2NlZHVyZVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYENhbGxpbmcgdGhlICcke3Byb2NlZHVyZVN0cmluZ30nIGZ1bmN0aW9uIG5vbWluYWxseS4uLmApO1xuXG4gICAgY29uc3QgdmFsdWVzID0gdmFsdWVzRnJvbU5vbWluYWxWYWx1ZXMobm9taW5hbFZhbHVlcywgY29udGV4dCksXG4gICAgICAgICAgdGVybSA9IGF3YWl0IHRoaXMuY2FsbCh2YWx1ZXMsIGNvbnRleHQpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uY2FsbGVkIHRoZSAnJHtwcm9jZWR1cmVTdHJpbmd9JyBmdW5jdGlvbiBub21pbmFsbHkuYCk7XG5cbiAgICByZXR1cm4gdGVybTtcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCB0eXBlSlNPTiA9IHR5cGVUb1R5cGVKU09OKHRoaXMudHlwZSksXG4gICAgICAgICAgbGFiZWxKU09OID0gbGFiZWxUb0xhYmVsSlNPTih0aGlzLmxhYmVsKSxcbiAgICAgICAgICBwYXJhbWV0ZXJzSlNPTiA9IHBhcmFtZXRlcnNUb1BhcmFtZXRlcnNKU09OKHRoaXMucGFyYW1ldGVycyksXG4gICAgICAgICAgc3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTtcblxuICAgIGxldCBicmVha1BvaW50O1xuXG4gICAgYnJlYWtQb2ludCA9IHRoaXMuZ2V0QnJlYWtQb2ludCgpO1xuXG4gICAgY29uc3QgYnJlYWtQb2ludEpTT04gPSBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTihicmVha1BvaW50KTtcblxuICAgIGJyZWFrUG9pbnQgPSBicmVha1BvaW50SlNPTjsgIC8vL1xuXG4gICAgY29uc3QgdHlwZSA9IHR5cGVKU09OLCAgLy8vXG4gICAgICAgICAgbGFiZWwgPSBsYWJlbEpTT04sICAvLy9cbiAgICAgICAgICBwYXJhbWV0ZXJzID0gcGFyYW1ldGVyc0pTT04sICAvLy9cbiAgICAgICAgICBqc29uID0ge1xuICAgICAgICAgICAgc3RyaW5nLFxuICAgICAgICAgICAgYnJlYWtQb2ludCxcbiAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgIHBhcmFtZXRlcnNcbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiUHJvY2VkdXJlXCI7XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICBjb25zdCB7IHN0cmluZyB9ID0ganNvbixcbiAgICAgICAgICBicmVha1BvaW50ID0gYnJlYWtQb2ludEZyb21KU09OKGpzb24pLFxuICAgICAgICAgIHR5cGUgPSB0eXBlRnJvbUpTT04oanNvbiksXG4gICAgICAgICAgbGFiZWwgPSBsYWJlbEZyb21KU09OKGpzb24pLFxuICAgICAgICAgIHBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzRnJvbUpTT04oanNvbiksXG4gICAgICAgICAgcHJvY2VkdXJlTm9kZSA9IGNvbnRleHQuZmluZFByb2NlZHVyZU5vZGUobGFiZWwpLFxuICAgICAgICAgIHJldHVybkJsb2NrID0gbnVsbCwgLy8vXG4gICAgICAgICAgbm9kZSA9IHByb2NlZHVyZU5vZGU7IC8vL1xuXG4gICAgY29uc3QgcHJvY2VkdXJlID0gbmV3IFBycGNlZHVyZShjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHR5cGUsIGxhYmVsLCBwYXJhbWV0ZXJzLCByZXR1cm5CbG9jayk7XG5cbiAgICByZXR1cm4gcHJvY2VkdXJlO1xuICB9XG59KTtcbiJdLCJuYW1lcyI6WyJicmVha1BvaW50RnJvbUpTT04iLCJicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiIsImJyZWFrUG9pbnRVdGlsaXRpZXMiLCJkZWZpbmUiLCJQcm9jZWR1cmUiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwidHlwZSIsImxhYmVsIiwicGFyYW1ldGVycyIsInJldHVybkJsb2NrIiwiZ2V0VHlwZSIsImdldExhYmVsIiwiZ2V0UGFyYW1ldGVycyIsImdldFJldHVybkJsb2NrIiwiZ2V0TmFtZSIsImlzQm9vbGVhbiIsImJvb2xlYW5UeXBlIiwiaXNCb29sZWFuVHlwZSIsImJvb2xlYW4iLCJnZXRSZXR1cm5TdGF0ZW1lbnQiLCJjb21wYXJlUHJvY2VkdXJlTmFtZSIsInByb2NlZHVyZU5hbWUiLCJ2ZXJpZnkiLCJ2ZXJpZmllcyIsInByb2NlZHVyZVN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwicHJvY2VkdXJlIiwiYWRkUHJvY2VkdXJlIiwiZGVidWciLCJjYWxsIiwidmFsdWVzIiwiYnJlYWsiLCJjb21wYXJlVmFsdWVzIiwidmFyaWFibGVzIiwidmFyaWFibGVzRnJvbVZhbHVlc0FuZFBhcmFtZXRlcnMiLCJ2YWx1ZSIsImV2YWx1YXRlIiwidmFsdWVUeXBlIiwidHlwZUVxdWFsVG9WYWx1ZVR5cGUiLCJpc0VxdWFsVG8iLCJ2YWx1ZVN0cmluZyIsInR5cGVTdHJpbmciLCJtZXNzYWdlIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJjYWxsTm9taW5hbGx5Iiwibm9taW5hbFZhbHVlcyIsImdldENvbnRleHQiLCJ2YWx1ZXNGcm9tTm9taW5hbFZhbHVlcyIsInRlcm0iLCJ0b0pTT04iLCJ0eXBlSlNPTiIsInR5cGVUb1R5cGVKU09OIiwibGFiZWxKU09OIiwibGFiZWxUb0xhYmVsSlNPTiIsInBhcmFtZXRlcnNKU09OIiwicGFyYW1ldGVyc1RvUGFyYW1ldGVyc0pTT04iLCJnZXRCcmVha1BvaW50IiwiYnJlYWtQb2ludEpTT04iLCJqc29uIiwibmFtZSIsImZyb21KU09OIiwidHlwZUZyb21KU09OIiwibGFiZWxGcm9tSlNPTiIsInBhcmFtZXRlcnNGcm9tSlNPTiIsInByb2NlZHVyZU5vZGUiLCJmaW5kUHJvY2VkdXJlTm9kZSIsIlBycGNlZHVyZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBYUE7OztlQUFBOzs7Z0NBWDZDO2tFQUV2QjswQkFFQzt3QkFDaUI7NEJBQ1M7c0JBQzZFOzs7Ozs7QUFFOUgsTUFBTSxFQUFFQSxrQkFBa0IsRUFBRUMsMEJBQTBCLEVBQUUsR0FBR0MsbUNBQW1CO01BRTlFLFdBQWVDLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsa0JBQWtCQyx1QkFBTztJQUNuRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLElBQUksRUFBRUMsS0FBSyxFQUFFQyxVQUFVLEVBQUVDLFdBQVcsQ0FBRTtRQUNuRixLQUFLLENBQUNQLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsS0FBSyxHQUFHQTtRQUNiLElBQUksQ0FBQ0MsVUFBVSxHQUFHQTtRQUNsQixJQUFJLENBQUNDLFdBQVcsR0FBR0E7SUFDckI7SUFFQUMsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDSixJQUFJO0lBQ2xCO0lBRUFLLFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQ0osS0FBSztJQUNuQjtJQUVBSyxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQ0osVUFBVTtJQUN4QjtJQUVBSyxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQ0osV0FBVztJQUN6QjtJQUVBSyxV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
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3Byb2NlZHVyZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCwgYnJlYWtQb2ludFV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgdmFsdWVzRnJvbU5vbWluYWxWYWx1ZXMgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3ZhbHVlc1wiO1xuaW1wb3J0IHsgdmFyaWFibGVzRnJvbVZhbHVlc0FuZFBhcmFtZXRlcnMgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3BhcmFtZXRlcnNcIjtcbmltcG9ydCB7IHR5cGVGcm9tSlNPTiwgbGFiZWxGcm9tSlNPTiwgcGFyYW1ldGVyc0Zyb21KU09OLCB0eXBlVG9UeXBlSlNPTiwgbGFiZWxUb0xhYmVsSlNPTiwgcGFyYW1ldGVyc1RvUGFyYW1ldGVyc0pTT04gfSBmcm9tIFwiLi4vdXRpbGl0aWVzL2pzb25cIjtcblxuY29uc3QgeyBicmVha1BvaW50RnJvbUpTT04sIGJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OIH0gPSBicmVha1BvaW50VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgUHJvY2VkdXJlIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdHlwZSwgbGFiZWwsIHBhcmFtZXRlcnMsIHJldHVybkJsb2NrKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgdGhpcy5sYWJlbCA9IGxhYmVsO1xuICAgIHRoaXMucGFyYW1ldGVycyA9IHBhcmFtZXRlcnM7XG4gICAgdGhpcy5yZXR1cm5CbG9jayA9IHJldHVybkJsb2NrO1xuICB9XG5cbiAgZ2V0VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy50eXBlO1xuICB9XG5cbiAgZ2V0TGFiZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMubGFiZWw7XG4gIH1cblxuICBnZXRQYXJhbWV0ZXJzKCkge1xuICAgIHJldHVybiB0aGlzLnBhcmFtZXRlcnM7XG4gIH1cblxuICBnZXRSZXR1cm5CbG9jaygpIHtcbiAgICByZXR1cm4gdGhpcy5yZXR1cm5CbG9jaztcbiAgfVxuXG4gIGdldE5hbWUoKSB7IHJldHVybiB0aGlzLmxhYmVsLmdldE5hbWUoKTsgfVxuXG4gIGlzQm9vbGVhbigpIHtcbiAgICBjb25zdCB0eXBlID0gdGhpcy5nZXRUeXBlKCksXG4gICAgICAgICAgYm9vbGVhblR5cGUgPSB0eXBlLmlzQm9vbGVhblR5cGUoKSxcbiAgICAgICAgICBib29sZWFuID0gYm9vbGVhblR5cGU7ICAvLy9cblxuICAgIHJldHVybiBib29sZWFuO1xuICB9XG5cbiAgZ2V0UmV0dXJuU3RhdGVtZW50KCkgeyByZXR1cm4gdGhpcy5yZXR1cm5CbG9jay5nZXRSZXR1cm5TdGF0ZW1lbnQoKTsgfVxuXG4gIGNvbXBhcmVQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpIHsgcmV0dXJuIHRoaXMubGFiZWwuY29tcGFyZVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSk7IH1cblxuICB2ZXJpZnkoY29udGV4dCkge1xuICAgIGNvbnN0IHZlcmlmaWVzID0gdHJ1ZTtcblxuICAgIGNvbnN0IHByb2NlZHVyZVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LnRyYWNlKGBWZXJpZnlpbmcgdGhlICcke3Byb2NlZHVyZVN0cmluZ30nIGZ1bmN0aW9uLi4uYClcblxuICAgIGNvbnN0IHByb2NlZHVyZSA9IHRoaXM7IC8vL1xuXG4gICAgY29udGV4dC5hZGRQcm9jZWR1cmUocHJvY2VkdXJlKTtcblxuICAgIGlmICh2ZXJpZmllcykge1xuICAgICAgY29udGV4dC5kZWJ1ZyhgLi4udmVyaWZpZWQgdGhlICcke3Byb2NlZHVyZVN0cmluZ30nIGZ1bmN0aW9uLmApXG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcmlmaWVzO1xuICB9XG5cbiAgYXN5bmMgY2FsbCh2YWx1ZXMsIGNvbnRleHQpIHtcbiAgICBhd2FpdCB0aGlzLmJyZWFrKGNvbnRleHQpO1xuXG4gICAgY29uc3QgcHJvY2VkdXJlU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgQ2FsbGluZyB0aGUgJyR7cHJvY2VkdXJlU3RyaW5nfScgcHJvY2VkdXJlLi4uYCk7XG5cbiAgICB0aGlzLnBhcmFtZXRlcnMuY29tcGFyZVZhbHVlcyh2YWx1ZXMsIGNvbnRleHQpO1xuXG4gICAgY29uc3QgdmFyaWFibGVzID0gdmFyaWFibGVzRnJvbVZhbHVlc0FuZFBhcmFtZXRlcnModmFsdWVzLCB0aGlzLnBhcmFtZXRlcnMsIGNvbnRleHQpLFxuICAgICAgICAgIHZhbHVlID0gYXdhaXQgdGhpcy5yZXR1cm5CbG9jay5ldmFsdWF0ZSh2YXJpYWJsZXMsIGNvbnRleHQpLFxuICAgICAgICAgIHZhbHVlVHlwZSA9IHZhbHVlLmdldFR5cGUoKSxcbiAgICAgICAgICB0eXBlRXF1YWxUb1ZhbHVlVHlwZSA9IHRoaXMudHlwZS5pc0VxdWFsVG8odmFsdWVUeXBlKTtcblxuICAgIGlmICghdHlwZUVxdWFsVG9WYWx1ZVR5cGUpIHtcbiAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICB0eXBlU3RyaW5nID0gdGhpcy50eXBlLmdldFN0cmluZygpLFxuICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7dmFsdWVTdHJpbmd9JyB2YWx1ZSdzICcke3R5cGVTdHJpbmd9JyB0eXBlIGlzIG5vdCBlcXVhbCB0byB0aGUgJyR7cHJvY2VkdXJlU3RyaW5nfScgcHJvY2VkdXJlJ3MgJyR7dHlwZVN0cmluZ30nIHR5cGUuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmNhbGxlZCB0aGUgJyR7cHJvY2VkdXJlU3RyaW5nfScgcHJvY2VkdXJlLmApO1xuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgYXN5bmMgY2FsbE5vbWluYWxseShub21pbmFsVmFsdWVzKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgYXdhaXQgdGhpcy5icmVhayhjb250ZXh0KTtcblxuICAgIGNvbnN0IHByb2NlZHVyZVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYENhbGxpbmcgdGhlICcke3Byb2NlZHVyZVN0cmluZ30nIGZ1bmN0aW9uIG5vbWluYWxseS4uLmApO1xuXG4gICAgY29uc3QgdmFsdWVzID0gdmFsdWVzRnJvbU5vbWluYWxWYWx1ZXMobm9taW5hbFZhbHVlcywgY29udGV4dCksXG4gICAgICAgICAgdGVybSA9IGF3YWl0IHRoaXMuY2FsbCh2YWx1ZXMsIGNvbnRleHQpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uY2FsbGVkIHRoZSAnJHtwcm9jZWR1cmVTdHJpbmd9JyBmdW5jdGlvbiBub21pbmFsbHkuYCk7XG5cbiAgICByZXR1cm4gdGVybTtcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCB0eXBlSlNPTiA9IHR5cGVUb1R5cGVKU09OKHRoaXMudHlwZSksXG4gICAgICAgICAgbGFiZWxKU09OID0gbGFiZWxUb0xhYmVsSlNPTih0aGlzLmxhYmVsKSxcbiAgICAgICAgICBwYXJhbWV0ZXJzSlNPTiA9IHBhcmFtZXRlcnNUb1BhcmFtZXRlcnNKU09OKHRoaXMucGFyYW1ldGVycyksXG4gICAgICAgICAgc3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTtcblxuICAgIGxldCBicmVha1BvaW50O1xuXG4gICAgYnJlYWtQb2ludCA9IHRoaXMuZ2V0QnJlYWtQb2ludCgpO1xuXG4gICAgY29uc3QgYnJlYWtQb2ludEpTT04gPSBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTihicmVha1BvaW50KTtcblxuICAgIGJyZWFrUG9pbnQgPSBicmVha1BvaW50SlNPTjsgIC8vL1xuXG4gICAgY29uc3QgdHlwZSA9IHR5cGVKU09OLCAgLy8vXG4gICAgICAgICAgbGFiZWwgPSBsYWJlbEpTT04sICAvLy9cbiAgICAgICAgICBwYXJhbWV0ZXJzID0gcGFyYW1ldGVyc0pTT04sICAvLy9cbiAgICAgICAgICBqc29uID0ge1xuICAgICAgICAgICAgc3RyaW5nLFxuICAgICAgICAgICAgYnJlYWtQb2ludCxcbiAgICAgICAgICAgIHR5cGUsXG4gICAgICAgICAgICBsYWJlbCxcbiAgICAgICAgICAgIHBhcmFtZXRlcnNcbiAgICAgICAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiUHJvY2VkdXJlXCI7XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICBjb25zdCB7IHN0cmluZyB9ID0ganNvbixcbiAgICAgICAgICBicmVha1BvaW50ID0gYnJlYWtQb2ludEZyb21KU09OKGpzb24pLFxuICAgICAgICAgIHR5cGUgPSB0eXBlRnJvbUpTT04oanNvbiwgY29udGV4dCksXG4gICAgICAgICAgbGFiZWwgPSBsYWJlbEZyb21KU09OKGpzb24sIGNvbnRleHQpLFxuICAgICAgICAgIHBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzRnJvbUpTT04oanNvbiwgY29udGV4dCksXG4gICAgICAgICAgcHJvY2VkdXJlTm9kZSA9IGNvbnRleHQuZmluZFByb2NlZHVyZU5vZGUobGFiZWwpLFxuICAgICAgICAgIHJldHVybkJsb2NrID0gbnVsbCwgLy8vXG4gICAgICAgICAgbm9kZSA9IHByb2NlZHVyZU5vZGU7IC8vL1xuXG4gICAgY29uc3QgcHJvY2VkdXJlID0gbmV3IFBycGNlZHVyZShjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHR5cGUsIGxhYmVsLCBwYXJhbWV0ZXJzLCByZXR1cm5CbG9jayk7XG5cbiAgICByZXR1cm4gcHJvY2VkdXJlO1xuICB9XG59KTtcbiJdLCJuYW1lcyI6WyJicmVha1BvaW50RnJvbUpTT04iLCJicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiIsImJyZWFrUG9pbnRVdGlsaXRpZXMiLCJkZWZpbmUiLCJQcm9jZWR1cmUiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwidHlwZSIsImxhYmVsIiwicGFyYW1ldGVycyIsInJldHVybkJsb2NrIiwiZ2V0VHlwZSIsImdldExhYmVsIiwiZ2V0UGFyYW1ldGVycyIsImdldFJldHVybkJsb2NrIiwiZ2V0TmFtZSIsImlzQm9vbGVhbiIsImJvb2xlYW5UeXBlIiwiaXNCb29sZWFuVHlwZSIsImJvb2xlYW4iLCJnZXRSZXR1cm5TdGF0ZW1lbnQiLCJjb21wYXJlUHJvY2VkdXJlTmFtZSIsInByb2NlZHVyZU5hbWUiLCJ2ZXJpZnkiLCJ2ZXJpZmllcyIsInByb2NlZHVyZVN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwicHJvY2VkdXJlIiwiYWRkUHJvY2VkdXJlIiwiZGVidWciLCJjYWxsIiwidmFsdWVzIiwiYnJlYWsiLCJjb21wYXJlVmFsdWVzIiwidmFyaWFibGVzIiwidmFyaWFibGVzRnJvbVZhbHVlc0FuZFBhcmFtZXRlcnMiLCJ2YWx1ZSIsImV2YWx1YXRlIiwidmFsdWVUeXBlIiwidHlwZUVxdWFsVG9WYWx1ZVR5cGUiLCJpc0VxdWFsVG8iLCJ2YWx1ZVN0cmluZyIsInR5cGVTdHJpbmciLCJtZXNzYWdlIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJjYWxsTm9taW5hbGx5Iiwibm9taW5hbFZhbHVlcyIsImdldENvbnRleHQiLCJ2YWx1ZXNGcm9tTm9taW5hbFZhbHVlcyIsInRlcm0iLCJ0b0pTT04iLCJ0eXBlSlNPTiIsInR5cGVUb1R5cGVKU09OIiwibGFiZWxKU09OIiwibGFiZWxUb0xhYmVsSlNPTiIsInBhcmFtZXRlcnNKU09OIiwicGFyYW1ldGVyc1RvUGFyYW1ldGVyc0pTT04iLCJnZXRCcmVha1BvaW50IiwiYnJlYWtQb2ludEpTT04iLCJqc29uIiwibmFtZSIsImZyb21KU09OIiwidHlwZUZyb21KU09OIiwibGFiZWxGcm9tSlNPTiIsInBhcmFtZXRlcnNGcm9tSlNPTiIsInByb2NlZHVyZU5vZGUiLCJmaW5kUHJvY2VkdXJlTm9kZSIsIlBycGNlZHVyZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBYUE7OztlQUFBOzs7Z0NBWDZDO2tFQUV2QjswQkFFQzt3QkFDaUI7NEJBQ1M7c0JBQzZFOzs7Ozs7QUFFOUgsTUFBTSxFQUFFQSxrQkFBa0IsRUFBRUMsMEJBQTBCLEVBQUUsR0FBR0MsbUNBQW1CO01BRTlFLFdBQWVDLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsa0JBQWtCQyx1QkFBTztJQUNuRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLElBQUksRUFBRUMsS0FBSyxFQUFFQyxVQUFVLEVBQUVDLFdBQVcsQ0FBRTtRQUNuRixLQUFLLENBQUNQLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsS0FBSyxHQUFHQTtRQUNiLElBQUksQ0FBQ0MsVUFBVSxHQUFHQTtRQUNsQixJQUFJLENBQUNDLFdBQVcsR0FBR0E7SUFDckI7SUFFQUMsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDSixJQUFJO0lBQ2xCO0lBRUFLLFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQ0osS0FBSztJQUNuQjtJQUVBSyxnQkFBZ0I7UUFDZCxPQUFPLElBQUksQ0FBQ0osVUFBVTtJQUN4QjtJQUVBSyxpQkFBaUI7UUFDZixPQUFPLElB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
@@ -11,6 +11,7 @@ Object.defineProperty(exports, "default", {
11
11
  const _occamlanguages = require("occam-languages");
12
12
  const _elements = require("../elements");
13
13
  const _context = require("../utilities/context");
14
+ const _instantiate = require("../process/instantiate");
14
15
  const _string = require("../utilities/string");
15
16
  const _element = require("../utilities/element");
16
17
  const _typeNames = require("../typeNames");
@@ -94,7 +95,7 @@ const _default = (0, _elements.define)(class Type extends _occamlanguages.Elemen
94
95
  static name = "Type";
95
96
  static fromJSON(json, context) {
96
97
  return (0, _context.instantiate)((context)=>{
97
- const { string } = json, typeNode = instantiateType(string, context), node = typeNode, breakPoint = null, name = (0, _element.nameFromTypeNode)(typeNode, context), argumentType = (0, _element.argumentTypeFromTypeNode)(typeNode, context);
98
+ const { string } = json, typeNode = (0, _instantiate.instantiateType)(string, context), node = typeNode, breakPoint = null, name = (0, _element.nameFromTypeNode)(typeNode, context), argumentType = (0, _element.argumentTypeFromTypeNode)(typeNode, context);
98
99
  context = null;
99
100
  const type = new Type(context, string, node, breakPoint, name, argumentType);
100
101
  return type;
@@ -117,4 +118,4 @@ const _default = (0, _elements.define)(class Type extends _occamlanguages.Elemen
117
118
  }
118
119
  });
119
120
 
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3R5cGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQsIGJyZWFrUG9pbnRVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuXG5pbXBvcnQgeyBpbnN0YW50aWF0ZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvY29udGV4dFwiO1xuaW1wb3J0IHsgdHlwZVN0cmluZ0Zyb21UeXBlTmFtZUFuZEFyZ3VtZW50VHlwZU5hbWUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3N0cmluZ1wiO1xuaW1wb3J0IHsgbmFtZUZyb21UeXBlTm9kZSwgYXJndW1lbnRUeXBlRnJvbVR5cGVOb2RlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9lbGVtZW50XCI7XG5pbXBvcnQgeyBMSVNUX1RZUEVfTkFNRSwgU1RSSU5HX1RZUEVfTkFNRSwgQk9PTEVBTl9UWVBFX05BTUUsIElOVEVHRVJfVFlQRV9OQU1FLCBOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRSB9IGZyb20gXCIuLi90eXBlTmFtZXNcIjtcblxuY29uc3QgeyBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiB9ID0gYnJlYWtQb2ludFV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFR5cGUgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBuYW1lLCBhcmd1bWVudFR5cGUpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICB0aGlzLmFyZ3VtZW50VHlwZSA9IGFyZ3VtZW50VHlwZTtcbiAgfVxuXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIGdldEFyZ3VtZW50VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy5hcmd1bWVudFR5cGU7XG4gIH1cblxuICBpc0xpc3RUeXBlKCkge1xuICAgIGNvbnN0IGxpc3RUeXBlID0gKHRoaXMubmFtZSA9PT0gTElTVF9UWVBFX05BTUUpO1xuXG4gICAgcmV0dXJuIGxpc3RUeXBlO1xuICB9XG5cbiAgaXNTdHJpbmdUeXBlKCkge1xuICAgIGNvbnN0IGJvb2xlYW5UeXBlID0gKHRoaXMubmFtZSA9PT0gU1RSSU5HX1RZUEVfTkFNRSk7XG5cbiAgICByZXR1cm4gYm9vbGVhblR5cGU7XG4gIH1cblxuICBpc0Jvb2xlYW5UeXBlKCkge1xuICAgIGNvbnN0IGJvb2xlYW5UeXBlID0gKHRoaXMubmFtZSA9PT0gQk9PTEVBTl9UWVBFX05BTUUpO1xuXG4gICAgcmV0dXJuIGJvb2xlYW5UeXBlO1xuICB9XG5cbiAgaXNJbnRlZ2VyVHlwZSgpIHtcbiAgICBjb25zdCBpbnRlZ2VyVHlwZSA9ICh0aGlzLm5hbWUgPT09IElOVEVHRVJfVFlQRV9OQU1FKTtcblxuICAgIHJldHVybiBpbnRlZ2VyVHlwZTtcbiAgfVxuXG4gIGlzTm9taW5hbFZhbHVlVHlwZSgpIHtcbiAgICBjb25zdCBsaXN0VHlwZSA9ICh0aGlzLm5hbWUgPT09IE5PTUlOQUxfVkFMVUVfVFlQRV9OQU1FKTtcblxuICAgIHJldHVybiBsaXN0VHlwZTtcbiAgfVxuXG4gIGlzRXF1YWxUbyh0eXBlKSB7XG4gICAgbGV0IGVxdWFsVG8gPSBmYWxzZTtcblxuICAgIGNvbnN0IHR5cGVOYW1lID0gdHlwZS5nZXROYW1lKCk7XG5cbiAgICBpZiAodGhpcy5uYW1lID09PSB0eXBlTmFtZSkge1xuICAgICAgc3dpdGNoICh0aGlzLm5hbWUpIHtcbiAgICAgICAgY2FzZSBMSVNUX1RZUEVfTkFNRToge1xuICAgICAgICAgIGNvbnN0IHR5cGVBcmd1bWVudFR5cGUgPSB0eXBlLmdldEFyZ3VtZW50VHlwZSgpO1xuXG4gICAgICAgICAgaWYgKCh0aGlzLmFyZ3VtZW50VHlwZSA9PT0gbnVsbCkgfHwgKHR5cGVBcmd1bWVudFR5cGUgPT09IG51bGwpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5hcmd1bWVudFR5cGUgPT09IHR5cGVBcmd1bWVudFR5cGUpIHtcbiAgICAgICAgICAgICAgZXF1YWxUbyA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGFyZ3VlbW50VHlwZUVxdWFsVG9UeXBlQXJndW1lbnRUeXBlID0gdGhpcy5hcmd1bWVudFR5cGUuaXNFcXVhbFRvKHR5cGVBcmd1bWVudFR5cGUpO1xuXG4gICAgICAgICAgICBpZiAoYXJndWVtbnRUeXBlRXF1YWxUb1R5cGVBcmd1bWVudFR5cGUpIHtcbiAgICAgICAgICAgICAgZXF1YWxUbyA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBjYXNlIFNUUklOR19UWVBFX05BTUU6XG4gICAgICAgIGNhc2UgQk9PTEVBTl9UWVBFX05BTUU6XG4gICAgICAgIGNhc2UgSU5URUdFUl9UWVBFX05BTUU6XG4gICAgICAgIGNhc2UgTk9NSU5BTF9WQUxVRV9UWVBFX05BTUU6IHtcbiAgICAgICAgICBlcXVhbFRvID0gdHJ1ZTtcblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGVxdWFsVG87XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3Qgc3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTtcblxuICAgIGxldCBicmVha1BvaW50O1xuXG4gICAgYnJlYWtQb2ludCA9IHRoaXMuZ2V0QnJlYWtQb2ludCgpO1xuXG4gICAgY29uc3QgYnJlYWtQb2ludEpTT04gPSBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTihicmVha1BvaW50KTtcblxuICAgIGJyZWFrUG9pbnQgPSBicmVha1BvaW50SlNPTjsgIC8vL1xuXG4gICAgY29uc3QganNvbiA9IHtcbiAgICAgIHN0cmluZyxcbiAgICAgIGJyZWFrUG9pbnRcbiAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiVHlwZVwiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgcmV0dXJuIGluc3RhbnRpYXRlKChjb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCB7IHN0cmluZyB9ID0ganNvbixcbiAgICAgICAgICAgIHR5cGVOb2RlID0gaW5zdGFudGlhdGVUeXBlKHN0cmluZywgY29udGV4dCksXG4gICAgICAgICAgICBub2RlID0gdHlwZU5vZGUsICAvLy9cbiAgICAgICAgICAgIGJyZWFrUG9pbnQgPSBudWxsLFxuICAgICAgICAgICAgbmFtZSA9IG5hbWVGcm9tVHlwZU5vZGUodHlwZU5vZGUsIGNvbnRleHQpLFxuICAgICAgICAgICAgYXJndW1lbnRUeXBlID0gYXJndW1lbnRUeXBlRnJvbVR5cGVOb2RlKHR5cGVOb2RlLCBjb250ZXh0KTtcblxuICAgICAgY29udGV4dCA9IG51bGw7XG5cbiAgICAgIGNvbnN0IHR5cGUgPSBuZXcgVHlwZShjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIG5hbWUsIGFyZ3VtZW50VHlwZSk7XG5cbiAgICAgIHJldHVybiB0eXBlO1xuICAgIH0sIGNvbnRleHQpO1xuICB9XG5cbiAgc3RhdGljIGZyb21UeXBlTmFtZSh0eXBlTmFtZSwgY29udGV4dCkge1xuICAgIGxldCB0eXBlID0gbnVsbDtcblxuICAgIGlmICh0eXBlTmFtZSAhPT0gbnVsbCkge1xuICAgICAgY29uc3Qgbm9kZSA9IG51bGwsICAvLy9cbiAgICAgICAgICAgIG5hbWUgPSB0eXBlTmFtZSwgIC8vL1xuICAgICAgICAgICAgYXJndW1lbnRUeXBlID0gbnVsbCxcbiAgICAgICAgICAgIHR5cGVTdHJpbmcgPSB0eXBlTmFtZSwgIC8vL1xuICAgICAgICAgICAgc3RyaW5nID0gdHlwZVN0cmluZywgIC8vL1xuICAgICAgICAgICAgYnJlYWtQb2ludCA9IG51bGw7XG5cbiAgICAgIGNvbnRleHQgPSBudWxsO1xuXG4gICAgICB0eXBlID0gbmV3IFR5cGUoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBuYW1lLCBhcmd1bWVudFR5cGUpO1xuICAgIH1cblxuICAgIHJldHVybiB0eXBlO1xuICB9XG5cbiAgc3RhdGljIGZyb21UeXBlTmFtZUFuZEFyZ3VtZW50VHlwZU5hbWUodHlwZU5hbWUsIGFyZ3VtZW50VHlwZU5hbWUsIGNvbnRleHQpIHtcbiAgICBjb25zdCBub2RlID0gbnVsbCwgIC8vL1xuICAgICAgICAgIG5hbWUgPSB0eXBlTmFtZSwgIC8vL1xuICAgICAgICAgIGFyZ3VtZW50VHlwZSA9IFR5cGUuZnJvbVR5cGVOYW1lKGFyZ3VtZW50VHlwZU5hbWUsIGNvbnRleHQpLFxuICAgICAgICAgIHR5cGVTdHJpbmcgPSB0eXBlU3RyaW5nRnJvbVR5cGVOYW1lQW5kQXJndW1lbnRUeXBlTmFtZSh0eXBlTmFtZSwgYXJndW1lbnRUeXBlTmFtZSksXG4gICAgICAgICAgc3RyaW5nID0gdHlwZVN0cmluZywgIC8vL1xuICAgICAgICAgIGJyZWFrUG9pbnQgPSBudWxsO1xuXG4gICAgY29udGV4dCA9IG51bGw7XG5cbiAgICBjb25zdCB0eXBlID0gbmV3IFR5cGUoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBuYW1lLCBhcmd1bWVudFR5cGUpO1xuXG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cblxufSk7XG4iXSwibmFtZXMiOlsiYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04iLCJicmVha1BvaW50VXRpbGl0aWVzIiwiZGVmaW5lIiwiVHlwZSIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJuYW1lIiwiYXJndW1lbnRUeXBlIiwiZ2V0TmFtZSIsImdldEFyZ3VtZW50VHlwZSIsImlzTGlzdFR5cGUiLCJsaXN0VHlwZSIsIkxJU1RfVFlQRV9OQU1FIiwiaXNTdHJpbmdUeXBlIiwiYm9vbGVhblR5cGUiLCJTVFJJTkdfVFlQRV9OQU1FIiwiaXNCb29sZWFuVHlwZSIsIkJPT0xFQU5fVFlQRV9OQU1FIiwiaXNJbnRlZ2VyVHlwZSIsImludGVnZXJUeXBlIiwiSU5URUdFUl9UWVBFX05BTUUiLCJpc05vbWluYWxWYWx1ZVR5cGUiLCJOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRSIsImlzRXF1YWxUbyIsInR5cGUiLCJlcXVhbFRvIiwidHlwZU5hbWUiLCJ0eXBlQXJndW1lbnRUeXBlIiwiYXJndWVtbnRUeXBlRXF1YWxUb1R5cGVBcmd1bWVudFR5cGUiLCJ0b0pTT04iLCJnZXRTdHJpbmciLCJnZXRCcmVha1BvaW50IiwiYnJlYWtQb2ludEpTT04iLCJqc29uIiwiZnJvbUpTT04iLCJpbnN0YW50aWF0ZSIsInR5cGVOb2RlIiwiaW5zdGFudGlhdGVUeXBlIiwibmFtZUZyb21UeXBlTm9kZSIsImFyZ3VtZW50VHlwZUZyb21UeXBlTm9kZSIsImZyb21UeXBlTmFtZSIsInR5cGVTdHJpbmciLCJmcm9tVHlwZU5hbWVBbmRBcmd1bWVudFR5cGVOYW1lIiwiYXJndW1lbnRUeXBlTmFtZSIsInR5cGVTdHJpbmdGcm9tVHlwZU5hbWVBbmRBcmd1bWVudFR5cGVOYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFhQTs7O2VBQUE7OztnQ0FYNkM7MEJBRXRCO3lCQUVLO3dCQUM4Qjt5QkFDQzsyQkFDcUQ7QUFFaEgsTUFBTSxFQUFFQSwwQkFBMEIsRUFBRSxHQUFHQyxtQ0FBbUI7TUFFMUQsV0FBZUMsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxhQUFhQyx1QkFBTztJQUM5QyxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLElBQUksRUFBRUMsWUFBWSxDQUFFO1FBQ2pFLEtBQUssQ0FBQ0wsU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxJQUFJ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
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3R5cGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQsIGJyZWFrUG9pbnRVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuXG5pbXBvcnQgeyBpbnN0YW50aWF0ZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvY29udGV4dFwiO1xuaW1wb3J0IHsgaW5zdGFudGlhdGVUeXBlIH0gZnJvbSBcIi4uL3Byb2Nlc3MvaW5zdGFudGlhdGVcIjtcbmltcG9ydCB7IHR5cGVTdHJpbmdGcm9tVHlwZU5hbWVBbmRBcmd1bWVudFR5cGVOYW1lIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9zdHJpbmdcIjtcbmltcG9ydCB7IG5hbWVGcm9tVHlwZU5vZGUsIGFyZ3VtZW50VHlwZUZyb21UeXBlTm9kZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvZWxlbWVudFwiO1xuaW1wb3J0IHsgTElTVF9UWVBFX05BTUUsIFNUUklOR19UWVBFX05BTUUsIEJPT0xFQU5fVFlQRV9OQU1FLCBJTlRFR0VSX1RZUEVfTkFNRSwgTk9NSU5BTF9WQUxVRV9UWVBFX05BTUUgfSBmcm9tIFwiLi4vdHlwZU5hbWVzXCI7XG5cbmNvbnN0IHsgYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04gfSA9IGJyZWFrUG9pbnRVdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBUeXBlIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgbmFtZSwgYXJndW1lbnRUeXBlKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy5hcmd1bWVudFR5cGUgPSBhcmd1bWVudFR5cGU7XG4gIH1cblxuICBnZXROYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWU7XG4gIH1cblxuICBnZXRBcmd1bWVudFR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXJndW1lbnRUeXBlO1xuICB9XG5cbiAgaXNMaXN0VHlwZSgpIHtcbiAgICBjb25zdCBsaXN0VHlwZSA9ICh0aGlzLm5hbWUgPT09IExJU1RfVFlQRV9OQU1FKTtcblxuICAgIHJldHVybiBsaXN0VHlwZTtcbiAgfVxuXG4gIGlzU3RyaW5nVHlwZSgpIHtcbiAgICBjb25zdCBib29sZWFuVHlwZSA9ICh0aGlzLm5hbWUgPT09IFNUUklOR19UWVBFX05BTUUpO1xuXG4gICAgcmV0dXJuIGJvb2xlYW5UeXBlO1xuICB9XG5cbiAgaXNCb29sZWFuVHlwZSgpIHtcbiAgICBjb25zdCBib29sZWFuVHlwZSA9ICh0aGlzLm5hbWUgPT09IEJPT0xFQU5fVFlQRV9OQU1FKTtcblxuICAgIHJldHVybiBib29sZWFuVHlwZTtcbiAgfVxuXG4gIGlzSW50ZWdlclR5cGUoKSB7XG4gICAgY29uc3QgaW50ZWdlclR5cGUgPSAodGhpcy5uYW1lID09PSBJTlRFR0VSX1RZUEVfTkFNRSk7XG5cbiAgICByZXR1cm4gaW50ZWdlclR5cGU7XG4gIH1cblxuICBpc05vbWluYWxWYWx1ZVR5cGUoKSB7XG4gICAgY29uc3QgbGlzdFR5cGUgPSAodGhpcy5uYW1lID09PSBOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRSk7XG5cbiAgICByZXR1cm4gbGlzdFR5cGU7XG4gIH1cblxuICBpc0VxdWFsVG8odHlwZSkge1xuICAgIGxldCBlcXVhbFRvID0gZmFsc2U7XG5cbiAgICBjb25zdCB0eXBlTmFtZSA9IHR5cGUuZ2V0TmFtZSgpO1xuXG4gICAgaWYgKHRoaXMubmFtZSA9PT0gdHlwZU5hbWUpIHtcbiAgICAgIHN3aXRjaCAodGhpcy5uYW1lKSB7XG4gICAgICAgIGNhc2UgTElTVF9UWVBFX05BTUU6IHtcbiAgICAgICAgICBjb25zdCB0eXBlQXJndW1lbnRUeXBlID0gdHlwZS5nZXRBcmd1bWVudFR5cGUoKTtcblxuICAgICAgICAgIGlmICgodGhpcy5hcmd1bWVudFR5cGUgPT09IG51bGwpIHx8ICh0eXBlQXJndW1lbnRUeXBlID09PSBudWxsKSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuYXJndW1lbnRUeXBlID09PSB0eXBlQXJndW1lbnRUeXBlKSB7XG4gICAgICAgICAgICAgIGVxdWFsVG8gPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBhcmd1ZW1udFR5cGVFcXVhbFRvVHlwZUFyZ3VtZW50VHlwZSA9IHRoaXMuYXJndW1lbnRUeXBlLmlzRXF1YWxUbyh0eXBlQXJndW1lbnRUeXBlKTtcblxuICAgICAgICAgICAgaWYgKGFyZ3VlbW50VHlwZUVxdWFsVG9UeXBlQXJndW1lbnRUeXBlKSB7XG4gICAgICAgICAgICAgIGVxdWFsVG8gPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgY2FzZSBTVFJJTkdfVFlQRV9OQU1FOlxuICAgICAgICBjYXNlIEJPT0xFQU5fVFlQRV9OQU1FOlxuICAgICAgICBjYXNlIElOVEVHRVJfVFlQRV9OQU1FOlxuICAgICAgICBjYXNlIE5PTUlOQUxfVkFMVUVfVFlQRV9OQU1FOiB7XG4gICAgICAgICAgZXF1YWxUbyA9IHRydWU7XG5cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBlcXVhbFRvO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IHN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICBsZXQgYnJlYWtQb2ludDtcblxuICAgIGJyZWFrUG9pbnQgPSB0aGlzLmdldEJyZWFrUG9pbnQoKTtcblxuICAgIGNvbnN0IGJyZWFrUG9pbnRKU09OID0gYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04oYnJlYWtQb2ludCk7XG5cbiAgICBicmVha1BvaW50ID0gYnJlYWtQb2ludEpTT047ICAvLy9cblxuICAgIGNvbnN0IGpzb24gPSB7XG4gICAgICBzdHJpbmcsXG4gICAgICBicmVha1BvaW50XG4gICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlR5cGVcIjtcblxuICBzdGF0aWMgZnJvbUpTT04oanNvbiwgY29udGV4dCkge1xuICAgIHJldHVybiBpbnN0YW50aWF0ZSgoY29udGV4dCkgPT4ge1xuICAgICAgY29uc3QgeyBzdHJpbmcgfSA9IGpzb24sXG4gICAgICAgICAgICB0eXBlTm9kZSA9IGluc3RhbnRpYXRlVHlwZShzdHJpbmcsIGNvbnRleHQpLFxuICAgICAgICAgICAgbm9kZSA9IHR5cGVOb2RlLCAgLy8vXG4gICAgICAgICAgICBicmVha1BvaW50ID0gbnVsbCxcbiAgICAgICAgICAgIG5hbWUgPSBuYW1lRnJvbVR5cGVOb2RlKHR5cGVOb2RlLCBjb250ZXh0KSxcbiAgICAgICAgICAgIGFyZ3VtZW50VHlwZSA9IGFyZ3VtZW50VHlwZUZyb21UeXBlTm9kZSh0eXBlTm9kZSwgY29udGV4dCk7XG5cbiAgICAgIGNvbnRleHQgPSBudWxsO1xuXG4gICAgICBjb25zdCB0eXBlID0gbmV3IFR5cGUoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBuYW1lLCBhcmd1bWVudFR5cGUpO1xuXG4gICAgICByZXR1cm4gdHlwZTtcbiAgICB9LCBjb250ZXh0KTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVHlwZU5hbWUodHlwZU5hbWUsIGNvbnRleHQpIHtcbiAgICBsZXQgdHlwZSA9IG51bGw7XG5cbiAgICBpZiAodHlwZU5hbWUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IG5vZGUgPSBudWxsLCAgLy8vXG4gICAgICAgICAgICBuYW1lID0gdHlwZU5hbWUsICAvLy9cbiAgICAgICAgICAgIGFyZ3VtZW50VHlwZSA9IG51bGwsXG4gICAgICAgICAgICB0eXBlU3RyaW5nID0gdHlwZU5hbWUsICAvLy9cbiAgICAgICAgICAgIHN0cmluZyA9IHR5cGVTdHJpbmcsICAvLy9cbiAgICAgICAgICAgIGJyZWFrUG9pbnQgPSBudWxsO1xuXG4gICAgICBjb250ZXh0ID0gbnVsbDtcblxuICAgICAgdHlwZSA9IG5ldyBUeXBlKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgbmFtZSwgYXJndW1lbnRUeXBlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHlwZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVHlwZU5hbWVBbmRBcmd1bWVudFR5cGVOYW1lKHR5cGVOYW1lLCBhcmd1bWVudFR5cGVOYW1lLCBjb250ZXh0KSB7XG4gICAgY29uc3Qgbm9kZSA9IG51bGwsICAvLy9cbiAgICAgICAgICBuYW1lID0gdHlwZU5hbWUsICAvLy9cbiAgICAgICAgICBhcmd1bWVudFR5cGUgPSBUeXBlLmZyb21UeXBlTmFtZShhcmd1bWVudFR5cGVOYW1lLCBjb250ZXh0KSxcbiAgICAgICAgICB0eXBlU3RyaW5nID0gdHlwZVN0cmluZ0Zyb21UeXBlTmFtZUFuZEFyZ3VtZW50VHlwZU5hbWUodHlwZU5hbWUsIGFyZ3VtZW50VHlwZU5hbWUpLFxuICAgICAgICAgIHN0cmluZyA9IHR5cGVTdHJpbmcsICAvLy9cbiAgICAgICAgICBicmVha1BvaW50ID0gbnVsbDtcblxuICAgIGNvbnRleHQgPSBudWxsO1xuXG4gICAgY29uc3QgdHlwZSA9IG5ldyBUeXBlKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgbmFtZSwgYXJndW1lbnRUeXBlKTtcblxuICAgIHJldHVybiB0eXBlO1xuICB9XG5cbn0pO1xuIl0sIm5hbWVzIjpbImJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OIiwiYnJlYWtQb2ludFV0aWxpdGllcyIsImRlZmluZSIsIlR5cGUiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwibmFtZSIsImFyZ3VtZW50VHlwZSIsImdldE5hbWUiLCJnZXRBcmd1bWVudFR5cGUiLCJpc0xpc3RUeXBlIiwibGlzdFR5cGUiLCJMSVNUX1RZUEVfTkFNRSIsImlzU3RyaW5nVHlwZSIsImJvb2xlYW5UeXBlIiwiU1RSSU5HX1RZUEVfTkFNRSIsImlzQm9vbGVhblR5cGUiLCJCT09MRUFOX1RZUEVfTkFNRSIsImlzSW50ZWdlclR5cGUiLCJpbnRlZ2VyVHlwZSIsIklOVEVHRVJfVFlQRV9OQU1FIiwiaXNOb21pbmFsVmFsdWVUeXBlIiwiTk9NSU5BTF9WQUxVRV9UWVBFX05BTUUiLCJpc0VxdWFsVG8iLCJ0eXBlIiwiZXF1YWxUbyIsInR5cGVOYW1lIiwidHlwZUFyZ3VtZW50VHlwZSIsImFyZ3VlbW50VHlwZUVxdWFsVG9UeXBlQXJndW1lbnRUeXBlIiwidG9KU09OIiwiZ2V0U3RyaW5nIiwiZ2V0QnJlYWtQb2ludCIsImJyZWFrUG9pbnRKU09OIiwianNvbiIsImZyb21KU09OIiwiaW5zdGFudGlhdGUiLCJ0eXBlTm9kZSIsImluc3RhbnRpYXRlVHlwZSIsIm5hbWVGcm9tVHlwZU5vZGUiLCJhcmd1bWVudFR5cGVGcm9tVHlwZU5vZGUiLCJmcm9tVHlwZU5hbWUiLCJ0eXBlU3RyaW5nIiwiZnJvbVR5cGVOYW1lQW5kQXJndW1lbnRUeXBlTmFtZSIsImFyZ3VtZW50VHlwZU5hbWUiLCJ0eXBlU3RyaW5nRnJvbVR5cGVOYW1lQW5kQXJndW1lbnRUeXBlTmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBY0E7OztlQUFBOzs7Z0NBWjZDOzBCQUV0Qjt5QkFFSzs2QkFDSTt3QkFDMEI7eUJBQ0M7MkJBQ3FEO0FBRWhILE1BQU0sRUFBRUEsMEJBQTBCLEVBQUUsR0FBR0MsbUNBQW1CO01BRTFELFdBQWVDLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsYUFBYUMsdUJBQU87SUFDOUMsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxJQUFJLEVBQUVD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
@@ -2,254 +2,18 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
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 instantiateCombinator () {
13
- return instantiateCombinator;
14
- },
15
- get instantiateConclusion () {
16
- return instantiateConclusion;
17
- },
18
- get instantiateConstraint () {
19
- return instantiateConstraint;
20
- },
21
- get instantiateConstructor () {
22
- return instantiateConstructor;
23
- },
24
- get instantiateContainedAssertion () {
25
- return instantiateContainedAssertion;
26
- },
27
- get instantiateDeduction () {
28
- return instantiateDeduction;
29
- },
30
- get instantiateDefinedAssertion () {
31
- return instantiateDefinedAssertion;
32
- },
33
- get instantiateEquality () {
34
- return instantiateEquality;
35
- },
36
- get instantiateEquivalence () {
37
- return instantiateEquivalence;
38
- },
39
- get instantiateFrame () {
40
- return instantiateFrame;
41
- },
42
- get instantiateFrameSubstitution () {
43
- return instantiateFrameSubstitution;
44
- },
45
- get instantiateGenerator () {
46
- return instantiateGenerator;
47
- },
48
- get instantiateHypothesis () {
49
- return instantiateHypothesis;
50
- },
51
- get instantiateImplicitAssumption () {
52
- return instantiateImplicitAssumption;
53
- },
54
- get instantiateJudgement () {
55
- return instantiateJudgement;
56
- },
57
- get instantiateLabel () {
58
- return instantiateLabel;
59
- },
60
- get instantiateMetavariable () {
61
- return instantiateMetavariable;
62
- },
63
- get instantiateParameter () {
64
- return instantiateParameter;
65
- },
66
- get instantiatePremise () {
67
- return instantiatePremise;
68
- },
69
- get instantiateProcedureReference () {
70
- return instantiateProcedureReference;
71
- },
72
- get instantiateProperty () {
73
- return instantiateProperty;
74
- },
75
- get instantiatePropertyAssertion () {
76
- return instantiatePropertyAssertion;
77
- },
78
- get instantiateReference () {
79
- return instantiateReference;
80
- },
81
- get instantiateReferenceSubstitution () {
82
- return instantiateReferenceSubstitution;
83
- },
84
- get instantiateSignature () {
85
- return instantiateSignature;
86
- },
87
- get instantiateSignatureAssertion () {
88
- return instantiateSignatureAssertion;
89
- },
90
- get instantiateStatement () {
91
- return instantiateStatement;
92
- },
93
- get instantiateStatementSubstitution () {
94
- return instantiateStatementSubstitution;
95
- },
96
- get instantiateSubproofAssertion () {
97
- return instantiateSubproofAssertion;
98
- },
99
- get instantiateSupposition () {
100
- return instantiateSupposition;
101
- },
102
- get instantiateTerm () {
103
- return instantiateTerm;
104
- },
105
- get instantiateTermSubstitution () {
106
- return instantiateTermSubstitution;
107
- },
108
- get instantiateType () {
5
+ Object.defineProperty(exports, "instantiateType", {
6
+ enumerable: true,
7
+ get: function() {
109
8
  return instantiateType;
110
- },
111
- get instantiateTypeAssertion () {
112
- return instantiateTypeAssertion;
113
- },
114
- get instantiateTypePrefix () {
115
- return instantiateTypePrefix;
116
- },
117
- get instantiateVariable () {
118
- return instantiateVariable;
119
9
  }
120
10
  });
121
- const _bnf = require("../utilities/bnf");
11
+ const _occamlanguages = require("occam-languages");
122
12
  const _ruleNames = require("../ruleNames");
123
- const termPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.TERM_RULE_NAME), typePlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.TYPE_RULE_NAME), framePlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.FRAME_RULE_NAME), labelPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.LABEL_RULE_NAME), premisePlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.PREMISE_RULE_NAME), variablePlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.VARIABLE_RULE_NAME), equalityPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.EQUALITY_RULE_NAME), propertyPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.PROPERTY_RULE_NAME), judgementPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.JUDGEMENT_RULE_NAME), generatorPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.GENERATOR_RULE_NAME), deductionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.DEDUCTION_RULE_NAME), parameterPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.PARAMETER_RULE_NAME), statementPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.STATEMENT_RULE_NAME), referencePlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.REFERENCE_RULE_NAME), signaturePlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.SIGNATURE_RULE_NAME), constraintPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.CONSTRAINT_RULE_NAME), combinatorPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.COMBINATOR_RULE_NAME), conclusionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.CONCLUSION_RULE_NAME), hypothesisPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.HYPOTHESIS_RULE_NAME), typePrefixPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.TYPE_PREFIX_RULE_NAME), suppositionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.SUPPOSITION_RULE_NAME), constructorPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.CONSTRUCTOR_RULE_NAME), equivalencePlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.EQUIVALENCE_RULE_NAME), metavariablePlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.METAVARIABLE_RULE_NAME), typeAssertionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.TYPE_ASSERTION_RULE_NAME), definedAssertionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.DEFINED_ASSERTION_RULE_NAME), termSubstitutionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.TERM_SUBSTITUTION_RULE_NAME), subproofAssertionlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.SUBPROOF_ASSERTION_RULE_NAME), propertyAssertionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.PROPERTY_ASSERTION_RULE_NAME), frameSubstitutionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.FRAME_SUBSTITUTION_RULE_NAME), procedureReferencelaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.PROCEDURE_REFERENCE_RULE_NAME), containedAssertionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.CONTAINED_ASSERTION_RULE_NAME), signatureAssertionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.SIGNATURE_ASSERTION_RULE_NAME), implicitAssumptionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.IMPLICIT_ASSUMPTION_RULE_NAME), statementSubstitutionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.STATEMENT_SUBSTITUTION_RULE_NAME), referenceSubstitutionPlaceholderRule = (0, _bnf.ruleFromRuleName)(_ruleNames.REFERENCE_SUBSTITUTION_RULE_NAME);
124
- function instantiatePremise(string, context) {
125
- string = `${string}
126
- `; ///
127
- return instantiate(premisePlaceholderRule, string, context);
128
- }
129
- function instantiateDeduction(string, context) {
130
- string = `${string}
131
- `; ///
132
- return instantiate(deductionPlaceholderRule, string, context);
133
- }
134
- function instantiateConclusion(string, context) {
135
- string = `${string}
136
- `; ///
137
- return instantiate(conclusionPlaceholderRule, string, context);
138
- }
139
- function instantiateSupposition(string, context) {
140
- string = `${string}
141
- `; ///
142
- return instantiate(suppositionPlaceholderRule, string, context);
143
- }
144
- function instantiateTerm(string, context) {
145
- return instantiate(termPlaceholderRule, string, context);
146
- }
13
+ const { instantiate, ruleFromRuleName } = _occamlanguages.bnfUtilities;
14
+ const typePlaceholderRule = ruleFromRuleName(_ruleNames.TYPE_RULE_NAME);
147
15
  function instantiateType(string, context) {
148
16
  return instantiate(typePlaceholderRule, string, context);
149
17
  }
150
- function instantiateFrame(string, context) {
151
- return instantiate(framePlaceholderRule, string, context);
152
- }
153
- function instantiateLabel(string, context) {
154
- return instantiate(labelPlaceholderRule, string, context);
155
- }
156
- function instantiateVariable(string, context) {
157
- return instantiate(variablePlaceholderRule, string, context);
158
- }
159
- function instantiateEquality(string, context) {
160
- return instantiate(equalityPlaceholderRule, string, context);
161
- }
162
- function instantiateProperty(string, context) {
163
- return instantiate(propertyPlaceholderRule, string, context);
164
- }
165
- function instantiateGenerator(string, context) {
166
- return instantiate(generatorPlaceholderRule, string, context);
167
- }
168
- function instantiateJudgement(string, context) {
169
- return instantiate(judgementPlaceholderRule, string, context);
170
- }
171
- function instantiateParameter(string, context) {
172
- return instantiate(parameterPlaceholderRule, string, context);
173
- }
174
- function instantiateStatement(string, context) {
175
- return instantiate(statementPlaceholderRule, string, context);
176
- }
177
- function instantiateReference(string, context) {
178
- return instantiate(referencePlaceholderRule, string, context);
179
- }
180
- function instantiateSignature(string, context) {
181
- return instantiate(signaturePlaceholderRule, string, context);
182
- }
183
- function instantiateCombinator(string, context) {
184
- return instantiate(combinatorPlaceholderRule, string, context);
185
- }
186
- function instantiateHypothesis(string, context) {
187
- return instantiate(hypothesisPlaceholderRule, string, context);
188
- }
189
- function instantiateConstraint(string, context) {
190
- return instantiate(constraintPlaceholderRule, string, context);
191
- }
192
- function instantiateTypePrefix(string, context) {
193
- return instantiate(typePrefixPlaceholderRule, string, context);
194
- }
195
- function instantiateConstructor(string, context) {
196
- return instantiate(constructorPlaceholderRule, string, context);
197
- }
198
- function instantiateEquivalence(string, context) {
199
- return instantiate(equivalencePlaceholderRule, string, context);
200
- }
201
- function instantiateMetavariable(string, context) {
202
- return instantiate(metavariablePlaceholderRule, string, context);
203
- }
204
- function instantiateTypeAssertion(string, context) {
205
- return instantiate(typeAssertionPlaceholderRule, string, context);
206
- }
207
- function instantiateDefinedAssertion(string, context) {
208
- return instantiate(definedAssertionPlaceholderRule, string, context);
209
- }
210
- function instantiateTermSubstitution(string, context) {
211
- return instantiate(termSubstitutionPlaceholderRule, string, context);
212
- }
213
- function instantiateSubproofAssertion(string, context) {
214
- return instantiate(subproofAssertionlaceholderRule, string, context);
215
- }
216
- function instantiatePropertyAssertion(string, context) {
217
- return instantiate(propertyAssertionPlaceholderRule, string, context);
218
- }
219
- function instantiateFrameSubstitution(string, context) {
220
- return instantiate(frameSubstitutionPlaceholderRule, string, context);
221
- }
222
- function instantiateProcedureReference(string, context) {
223
- return instantiate(procedureReferencelaceholderRule, string, context);
224
- }
225
- function instantiateContainedAssertion(string, context) {
226
- return instantiate(containedAssertionPlaceholderRule, string, context);
227
- }
228
- function instantiateSignatureAssertion(string, context) {
229
- return instantiate(signatureAssertionPlaceholderRule, string, context);
230
- }
231
- function instantiateImplicitAssumption(string, context) {
232
- return instantiate(implicitAssumptionPlaceholderRule, string, context);
233
- }
234
- function instantiateStatementSubstitution(string, context) {
235
- return instantiate(statementSubstitutionPlaceholderRule, string, context);
236
- }
237
- function instantiateReferenceSubstitution(string, context) {
238
- return instantiate(referenceSubstitutionPlaceholderRule, string, context);
239
- }
240
- function instantiate(placeholderRule, string, context) {
241
- let node;
242
- const lexer = context.getLexer(), parser = context.getParser(), content = `${string}
243
- `, tokens = lexer.tokenise(content);
244
- context.setTokens(tokens);
245
- const startRule = placeholderRule; ///
246
- node = parser.parse(tokens, startRule);
247
- const nonTerminalNode = node; ///
248
- nonTerminalNode.someChildNode((childNode)=>{
249
- node = childNode; ///
250
- return true;
251
- });
252
- return node;
253
- }
254
18
 
255
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9jZXNzL2luc3RhbnRpYXRlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBydWxlRnJvbVJ1bGVOYW1lIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9ibmZcIjtcbmltcG9ydCB7IFRFUk1fUlVMRV9OQU1FLFxuICAgICAgICAgVFlQRV9SVUxFX05BTUUsXG4gICAgICAgICBGUkFNRV9SVUxFX05BTUUsXG4gICAgICAgICBMQUJFTF9SVUxFX05BTUUsXG4gICAgICAgICBQUkVNSVNFX1JVTEVfTkFNRSxcbiAgICAgICAgIFZBUklBQkxFX1JVTEVfTkFNRSxcbiAgICAgICAgIEVRVUFMSVRZX1JVTEVfTkFNRSxcbiAgICAgICAgIFBST1BFUlRZX1JVTEVfTkFNRSxcbiAgICAgICAgIEpVREdFTUVOVF9SVUxFX05BTUUsXG4gICAgICAgICBERURVQ1RJT05fUlVMRV9OQU1FLFxuICAgICAgICAgUEFSQU1FVEVSX1JVTEVfTkFNRSxcbiAgICAgICAgIFNUQVRFTUVOVF9SVUxFX05BTUUsXG4gICAgICAgICBSRUZFUkVOQ0VfUlVMRV9OQU1FLFxuICAgICAgICAgU0lHTkFUVVJFX1JVTEVfTkFNRSxcbiAgICAgICAgIEdFTkVSQVRPUl9SVUxFX05BTUUsXG4gICAgICAgICBDT01CSU5BVE9SX1JVTEVfTkFNRSxcbiAgICAgICAgIENPTkNMVVNJT05fUlVMRV9OQU1FLFxuICAgICAgICAgSFlQT1RIRVNJU19SVUxFX05BTUUsXG4gICAgICAgICBDT05TVFJBSU5UX1JVTEVfTkFNRSxcbiAgICAgICAgIFRZUEVfUFJFRklYX1JVTEVfTkFNRSxcbiAgICAgICAgIFNVUFBPU0lUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIENPTlNUUlVDVE9SX1JVTEVfTkFNRSxcbiAgICAgICAgIEVRVUlWQUxFTkNFX1JVTEVfTkFNRSxcbiAgICAgICAgIE1FVEFWQVJJQUJMRV9SVUxFX05BTUUsXG4gICAgICAgICBUWVBFX0FTU0VSVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBERUZJTkVEX0FTU0VSVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBURVJNX1NVQlNUSVRVVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBQUk9QRVJUWV9BU1NFUlRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgU1VCUFJPT0ZfQVNTRVJUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIEZSQU1FX1NVQlNUSVRVVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBQUk9DRURVUkVfUkVGRVJFTkNFX1JVTEVfTkFNRSxcbiAgICAgICAgIENPTlRBSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgU0lHTkFUVVJFX0FTU0VSVElPTl9SVUxFX05BTUUsXG4gICAgICAgICBJTVBMSUNJVF9BU1NVTVBUSU9OX1JVTEVfTkFNRSxcbiAgICAgICAgIFNUQVRFTUVOVF9TVUJTVElUVVRJT05fUlVMRV9OQU1FLFxuICAgICAgICAgUkVGRVJFTkNFX1NVQlNUSVRVVElPTl9SVUxFX05BTUUgfSBmcm9tIFwiLi4vcnVsZU5hbWVzXCI7XG5cbmNvbnN0IHRlcm1QbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFRFUk1fUlVMRV9OQU1FKSxcbiAgICAgIHR5cGVQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFRZUEVfUlVMRV9OQU1FKSxcbiAgICAgIGZyYW1lUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShGUkFNRV9SVUxFX05BTUUpLFxuICAgICAgbGFiZWxQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKExBQkVMX1JVTEVfTkFNRSksXG4gICAgICBwcmVtaXNlUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShQUkVNSVNFX1JVTEVfTkFNRSksXG4gICAgICB2YXJpYWJsZVBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoVkFSSUFCTEVfUlVMRV9OQU1FKSxcbiAgICAgIGVxdWFsaXR5UGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShFUVVBTElUWV9SVUxFX05BTUUpLFxuICAgICAgcHJvcGVydHlQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFBST1BFUlRZX1JVTEVfTkFNRSksXG4gICAgICBqdWRnZW1lbnRQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKEpVREdFTUVOVF9SVUxFX05BTUUpLFxuICAgICAgZ2VuZXJhdG9yUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShHRU5FUkFUT1JfUlVMRV9OQU1FKSxcbiAgICAgIGRlZHVjdGlvblBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoREVEVUNUSU9OX1JVTEVfTkFNRSksXG4gICAgICBwYXJhbWV0ZXJQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFBBUkFNRVRFUl9SVUxFX05BTUUpLFxuICAgICAgc3RhdGVtZW50UGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShTVEFURU1FTlRfUlVMRV9OQU1FKSxcbiAgICAgIHJlZmVyZW5jZVBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoUkVGRVJFTkNFX1JVTEVfTkFNRSksXG4gICAgICBzaWduYXR1cmVQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFNJR05BVFVSRV9SVUxFX05BTUUpLFxuICAgICAgY29uc3RyYWludFBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoQ09OU1RSQUlOVF9SVUxFX05BTUUpLFxuICAgICAgY29tYmluYXRvclBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoQ09NQklOQVRPUl9SVUxFX05BTUUpLFxuICAgICAgY29uY2x1c2lvblBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoQ09OQ0xVU0lPTl9SVUxFX05BTUUpLFxuICAgICAgaHlwb3RoZXNpc1BsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoSFlQT1RIRVNJU19SVUxFX05BTUUpLFxuICAgICAgdHlwZVByZWZpeFBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoVFlQRV9QUkVGSVhfUlVMRV9OQU1FKSxcbiAgICAgIHN1cHBvc2l0aW9uUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShTVVBQT1NJVElPTl9SVUxFX05BTUUpLFxuICAgICAgY29uc3RydWN0b3JQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKENPTlNUUlVDVE9SX1JVTEVfTkFNRSksXG4gICAgICBlcXVpdmFsZW5jZVBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoRVFVSVZBTEVOQ0VfUlVMRV9OQU1FKSxcbiAgICAgIG1ldGF2YXJpYWJsZVBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoTUVUQVZBUklBQkxFX1JVTEVfTkFNRSksXG4gICAgICB0eXBlQXNzZXJ0aW9uUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShUWVBFX0FTU0VSVElPTl9SVUxFX05BTUUpLFxuICAgICAgZGVmaW5lZEFzc2VydGlvblBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoREVGSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FKSxcbiAgICAgIHRlcm1TdWJzdGl0dXRpb25QbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFRFUk1fU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSksXG4gICAgICBzdWJwcm9vZkFzc2VydGlvbmxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShTVUJQUk9PRl9BU1NFUlRJT05fUlVMRV9OQU1FKSxcbiAgICAgIHByb3BlcnR5QXNzZXJ0aW9uUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShQUk9QRVJUWV9BU1NFUlRJT05fUlVMRV9OQU1FKSxcbiAgICAgIGZyYW1lU3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShGUkFNRV9TVUJTVElUVVRJT05fUlVMRV9OQU1FKSxcbiAgICAgIHByb2NlZHVyZVJlZmVyZW5jZWxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShQUk9DRURVUkVfUkVGRVJFTkNFX1JVTEVfTkFNRSksXG4gICAgICBjb250YWluZWRBc3NlcnRpb25QbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKENPTlRBSU5FRF9BU1NFUlRJT05fUlVMRV9OQU1FKSxcbiAgICAgIHNpZ25hdHVyZUFzc2VydGlvblBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoU0lHTkFUVVJFX0FTU0VSVElPTl9SVUxFX05BTUUpLFxuICAgICAgaW1wbGljaXRBc3N1bXB0aW9uUGxhY2Vob2xkZXJSdWxlID0gcnVsZUZyb21SdWxlTmFtZShJTVBMSUNJVF9BU1NVTVBUSU9OX1JVTEVfTkFNRSksXG4gICAgICBzdGF0ZW1lbnRTdWJzdGl0dXRpb25QbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFNUQVRFTUVOVF9TVUJTVElUVVRJT05fUlVMRV9OQU1FKSxcbiAgICAgIHJlZmVyZW5jZVN1YnN0aXR1dGlvblBsYWNlaG9sZGVyUnVsZSA9IHJ1bGVGcm9tUnVsZU5hbWUoUkVGRVJFTkNFX1NVQlNUSVRVVElPTl9SVUxFX05BTUUpO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVQcmVtaXNlKHN0cmluZywgY29udGV4dCkge1xuICBzdHJpbmcgPSBgJHtzdHJpbmd9XG5gOyAgLy8vXG5cbiAgcmV0dXJuIGluc3RhbnRpYXRlKHByZW1pc2VQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZURlZHVjdGlvbihzdHJpbmcsIGNvbnRleHQpIHtcbiAgc3RyaW5nID0gYCR7c3RyaW5nfVxuYDsgIC8vL1xuXG4gIHJldHVybiBpbnN0YW50aWF0ZShkZWR1Y3Rpb25QbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZUNvbmNsdXNpb24oc3RyaW5nLCBjb250ZXh0KSB7XG4gIHN0cmluZyA9IGAke3N0cmluZ31cbmA7ICAvLy9cblxuICByZXR1cm4gaW5zdGFudGlhdGUoY29uY2x1c2lvblBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlU3VwcG9zaXRpb24oc3RyaW5nLCBjb250ZXh0KSB7XG4gIHN0cmluZyA9IGAke3N0cmluZ31cbmA7ICAvLy9cblxuICByZXR1cm4gaW5zdGFudGlhdGUoc3VwcG9zaXRpb25QbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVRlcm0oc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZSh0ZXJtUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVR5cGUoc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZSh0eXBlUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZUZyYW1lKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoZnJhbWVQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlTGFiZWwoc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShsYWJlbFBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVWYXJpYWJsZShzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHZhcmlhYmxlUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZUVxdWFsaXR5KHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoZXF1YWxpdHlQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlUHJvcGVydHkoc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShwcm9wZXJ0eVBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVHZW5lcmF0b3Ioc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShnZW5lcmF0b3JQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlSnVkZ2VtZW50KHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoanVkZ2VtZW50UGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVBhcmFtZXRlcihzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHBhcmFtZXRlclBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVTdGF0ZW1lbnQoc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShzdGF0ZW1lbnRQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlUmVmZXJlbmNlKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUocmVmZXJlbmNlUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVNpZ25hdHVyZShzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHNpZ25hdHVyZVBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVDb21iaW5hdG9yKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoY29tYmluYXRvclBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVIeXBvdGhlc2lzKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoaHlwb3RoZXNpc1BsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVDb25zdHJhaW50KHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoY29uc3RyYWludFBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVUeXBlUHJlZml4KHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUodHlwZVByZWZpeFBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVDb25zdHJ1Y3RvcihzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKGNvbnN0cnVjdG9yUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZUVxdWl2YWxlbmNlKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoZXF1aXZhbGVuY2VQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlTWV0YXZhcmlhYmxlKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUobWV0YXZhcmlhYmxlUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVR5cGVBc3NlcnRpb24oc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZSh0eXBlQXNzZXJ0aW9uUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZURlZmluZWRBc3NlcnRpb24oc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShkZWZpbmVkQXNzZXJ0aW9uUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVRlcm1TdWJzdGl0dXRpb24oc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZSh0ZXJtU3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVN1YnByb29mQXNzZXJ0aW9uKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoc3VicHJvb2ZBc3NlcnRpb25sYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVQcm9wZXJ0eUFzc2VydGlvbihzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHByb3BlcnR5QXNzZXJ0aW9uUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZUZyYW1lU3Vic3RpdHV0aW9uKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoZnJhbWVTdWJzdGl0dXRpb25QbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlUHJvY2VkdXJlUmVmZXJlbmNlKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUocHJvY2VkdXJlUmVmZXJlbmNlbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlQ29udGFpbmVkQXNzZXJ0aW9uKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoY29udGFpbmVkQXNzZXJ0aW9uUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVNpZ25hdHVyZUFzc2VydGlvbihzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHNpZ25hdHVyZUFzc2VydGlvblBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFudGlhdGVJbXBsaWNpdEFzc3VtcHRpb24oc3RyaW5nLCBjb250ZXh0KSB7IHJldHVybiBpbnN0YW50aWF0ZShpbXBsaWNpdEFzc3VtcHRpb25QbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlU3RhdGVtZW50U3Vic3RpdHV0aW9uKHN0cmluZywgY29udGV4dCkgeyByZXR1cm4gaW5zdGFudGlhdGUoc3RhdGVtZW50U3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlLCBzdHJpbmcsIGNvbnRleHQpOyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YW50aWF0ZVJlZmVyZW5jZVN1YnN0aXR1dGlvbihzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHJlZmVyZW5jZVN1YnN0aXR1dGlvblBsYWNlaG9sZGVyUnVsZSwgc3RyaW5nLCBjb250ZXh0KTsgfVxuXG5mdW5jdGlvbiBpbnN0YW50aWF0ZShwbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCkge1xuICBsZXQgbm9kZTtcblxuICBjb25zdCBsZXhlciA9IGNvbnRleHQuZ2V0TGV4ZXIoKSxcbiAgICAgICAgcGFyc2VyID0gY29udGV4dC5nZXRQYXJzZXIoKSxcbiAgICAgICAgY29udGVudCA9IGAke3N0cmluZ31cbmAsXG4gICAgICAgIHRva2VucyA9IGxleGVyLnRva2VuaXNlKGNvbnRlbnQpO1xuXG4gIGNvbnRleHQuc2V0VG9rZW5zKHRva2Vucyk7XG5cbiAgY29uc3Qgc3RhcnRSdWxlID0gcGxhY2Vob2xkZXJSdWxlOyAgLy8vXG5cbiAgbm9kZSA9IHBhcnNlci5wYXJzZSh0b2tlbnMsIHN0YXJ0UnVsZSk7XG5cbiAgY29uc3Qgbm9uVGVybWluYWxOb2RlID0gbm9kZTsgLy8vXG5cbiAgbm9uVGVybWluYWxOb2RlLnNvbWVDaGlsZE5vZGUoKGNoaWxkTm9kZSkgPT4ge1xuICAgIG5vZGUgPSBjaGlsZE5vZGU7IC8vL1xuXG4gICAgcmV0dXJuIHRydWU7XG4gIH0pO1xuXG4gIHJldHVybiBub2RlO1xufVxuIl0sIm5hbWVzIjpbImluc3RhbnRpYXRlQ29tYmluYXRvciIsImluc3RhbnRpYXRlQ29uY2x1c2lvbiIsImluc3RhbnRpYXRlQ29uc3RyYWludCIsImluc3RhbnRpYXRlQ29uc3RydWN0b3IiLCJpbnN0YW50aWF0ZUNvbnRhaW5lZEFzc2VydGlvbiIsImluc3RhbnRpYXRlRGVkdWN0aW9uIiwiaW5zdGFudGlhdGVEZWZpbmVkQXNzZXJ0aW9uIiwiaW5zdGFudGlhdGVFcXVhbGl0eSIsImluc3RhbnRpYXRlRXF1aXZhbGVuY2UiLCJpbnN0YW50aWF0ZUZyYW1lIiwiaW5zdGFudGlhdGVGcmFtZVN1YnN0aXR1dGlvbiIsImluc3RhbnRpYXRlR2VuZXJhdG9yIiwiaW5zdGFudGlhdGVIeXBvdGhlc2lzIiwiaW5zdGFudGlhdGVJbXBsaWNpdEFzc3VtcHRpb24iLCJpbnN0YW50aWF0ZUp1ZGdlbWVudCIsImluc3RhbnRpYXRlTGFiZWwiLCJpbnN0YW50aWF0ZU1ldGF2YXJpYWJsZSIsImluc3RhbnRpYXRlUGFyYW1ldGVyIiwiaW5zdGFudGlhdGVQcmVtaXNlIiwiaW5zdGFudGlhdGVQcm9jZWR1cmVSZWZlcmVuY2UiLCJpbnN0YW50aWF0ZVByb3BlcnR5IiwiaW5zdGFudGlhdGVQcm9wZXJ0eUFzc2VydGlvbiIsImluc3RhbnRpYXRlUmVmZXJlbmNlIiwiaW5zdGFudGlhdGVSZWZlcmVuY2VTdWJzdGl0dXRpb24iLCJpbnN0YW50aWF0ZVNpZ25hdHVyZSIsImluc3RhbnRpYXRlU2lnbmF0dXJlQXNzZXJ0aW9uIiwiaW5zdGFudGlhdGVTdGF0ZW1lbnQiLCJpbnN0YW50aWF0ZVN0YXRlbWVudFN1YnN0aXR1dGlvbiIsImluc3RhbnRpYXRlU3VicHJvb2ZBc3NlcnRpb24iLCJpbnN0YW50aWF0ZVN1cHBvc2l0aW9uIiwiaW5zdGFudGlhdGVUZXJtIiwiaW5zdGFudGlhdGVUZXJtU3Vic3RpdHV0aW9uIiwiaW5zdGFudGlhdGVUeXBlIiwiaW5zdGFudGlhdGVUeXBlQXNzZXJ0aW9uIiwiaW5zdGFudGlhdGVUeXBlUHJlZml4IiwiaW5zdGFudGlhdGVWYXJpYWJsZSIsInRlcm1QbGFjZWhvbGRlclJ1bGUiLCJydWxlRnJvbVJ1bGVOYW1lIiwiVEVSTV9SVUxFX05BTUUiLCJ0eXBlUGxhY2Vob2xkZXJSdWxlIiwiVFlQRV9SVUxFX05BTUUiLCJmcmFtZVBsYWNlaG9sZGVyUnVsZSIsIkZSQU1FX1JVTEVfTkFNRSIsImxhYmVsUGxhY2Vob2xkZXJSdWxlIiwiTEFCRUxfUlVMRV9OQU1FIiwicHJlbWlzZVBsYWNlaG9sZGVyUnVsZSIsIlBSRU1JU0VfUlVMRV9OQU1FIiwidmFyaWFibGVQbGFjZWhvbGRlclJ1bGUiLCJWQVJJQUJMRV9SVUxFX05BTUUiLCJlcXVhbGl0eVBsYWNlaG9sZGVyUnVsZSIsIkVRVUFMSVRZX1JVTEVfTkFNRSIsInByb3BlcnR5UGxhY2Vob2xkZXJSdWxlIiwiUFJPUEVSVFlfUlVMRV9OQU1FIiwianVkZ2VtZW50UGxhY2Vob2xkZXJSdWxlIiwiSlVER0VNRU5UX1JVTEVfTkFNRSIsImdlbmVyYXRvclBsYWNlaG9sZGVyUnVsZSIsIkdFTkVSQVRPUl9SVUxFX05BTUUiLCJkZWR1Y3Rpb25QbGFjZWhvbGRlclJ1bGUiLCJERURVQ1RJT05fUlVMRV9OQU1FIiwicGFyYW1ldGVyUGxhY2Vob2xkZXJSdWxlIiwiUEFSQU1FVEVSX1JVTEVfTkFNRSIsInN0YXRlbWVudFBsYWNlaG9sZGVyUnVsZSIsIlNUQVRFTUVOVF9SVUxFX05BTUUiLCJyZWZlcmVuY2VQbGFjZWhvbGRlclJ1bGUiLCJSRUZFUkVOQ0VfUlVMRV9OQU1FIiwic2lnbmF0dXJlUGxhY2Vob2xkZXJSdWxlIiwiU0lHTkFUVVJFX1JVTEVfTkFNRSIsImNvbnN0cmFpbnRQbGFjZWhvbGRlclJ1bGUiLCJDT05TVFJBSU5UX1JVTEVfTkFNRSIsImNvbWJpbmF0b3JQbGFjZWhvbGRlclJ1bGUiLCJDT01CSU5BVE9SX1JVTEVfTkFNRSIsImNvbmNsdXNpb25QbGFjZWhvbGRlclJ1bGUiLCJDT05DTFVTSU9OX1JVTEVfTkFNRSIsImh5cG90aGVzaXNQbGFjZWhvbGRlclJ1bGUiLCJIWVBPVEhFU0lTX1JVTEVfTkFNRSIsInR5cGVQcmVmaXhQbGFjZWhvbGRlclJ1bGUiLCJUWVBFX1BSRUZJWF9SVUxFX05BTUUiLCJzdXBwb3NpdGlvblBsYWNlaG9sZGVyUnVsZSIsIlNVUFBPU0lUSU9OX1JVTEVfTkFNRSIsImNvbnN0cnVjdG9yUGxhY2Vob2xkZXJSdWxlIiwiQ09OU1RSVUNUT1JfUlVMRV9OQU1FIiwiZXF1aXZhbGVuY2VQbGFjZWhvbGRlclJ1bGUiLCJFUVVJVkFMRU5DRV9SVUxFX05BTUUiLCJtZXRhdmFyaWFibGVQbGFjZWhvbGRlclJ1bGUiLCJNRVRBVkFSSUFCTEVfUlVMRV9OQU1FIiwidHlwZUFzc2VydGlvblBsYWNlaG9sZGVyUnVsZSIsIlRZUEVfQVNTRVJUSU9OX1JVTEVfTkFNRSIsImRlZmluZWRBc3NlcnRpb25QbGFjZWhvbGRlclJ1bGUiLCJERUZJTkVEX0FTU0VSVElPTl9SVUxFX05BTUUiLCJ0ZXJtU3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlIiwiVEVSTV9TVUJTVElUVVRJT05fUlVMRV9OQU1FIiwic3VicHJvb2ZBc3NlcnRpb25sYWNlaG9sZGVyUnVsZSIsIlNVQlBST09GX0FTU0VSVElPTl9SVUxFX05BTUUiLCJwcm9wZXJ0eUFzc2VydGlvblBsYWNlaG9sZGVyUnVsZSIsIlBST1BFUlRZX0FTU0VSVElPTl9SVUxFX05BTUUiLCJmcmFtZVN1YnN0aXR1dGlvblBsYWNlaG9sZGVyUnVsZSIsIkZSQU1FX1NVQlNUSVRVVElPTl9SVUxFX05BTUUiLCJwcm9jZWR1cmVSZWZlcmVuY2VsYWNlaG9sZGVyUnVsZSIsIlBST0NFRFVSRV9SRUZFUkVOQ0VfUlVMRV9OQU1FIiwiY29udGFpbmVkQXNzZXJ0aW9uUGxhY2Vob2xkZXJSdWxlIiwiQ09OVEFJTkVEX0FTU0VSVElPTl9SVUxFX05BTUUiLCJzaWduYXR1cmVBc3NlcnRpb25QbGFjZWhvbGRlclJ1bGUiLCJTSUdOQVRVUkVfQVNTRVJUSU9OX1JVTEVfTkFNRSIsImltcGxpY2l0QXNzdW1wdGlvblBsYWNlaG9sZGVyUnVsZSIsIklNUExJQ0lUX0FTU1VNUFRJT05fUlVMRV9OQU1FIiwic3RhdGVtZW50U3Vic3RpdHV0aW9uUGxhY2Vob2xkZXJSdWxlIiwiU1RBVEVNRU5UX1NVQlNUSVRVVElPTl9SVUxFX05BTUUiLCJyZWZlcmVuY2VTdWJzdGl0dXRpb25QbGFjZWhvbGRlclJ1bGUiLCJSRUZFUkVOQ0VfU1VCU1RJVFVUSU9OX1JVTEVfTkFNRSIsInN0cmluZyIsImNvbnRleHQiLCJpbnN0YW50aWF0ZSIsInBsYWNlaG9sZGVyUnVsZSIsIm5vZGUiLCJsZXhlciIsImdldExleGVyIiwicGFyc2VyIiwiZ2V0UGFyc2VyIiwiY29udGVudCIsInRva2VucyIsInRva2VuaXNlIiwic2V0VG9rZW5zIiwic3RhcnRSdWxlIiwicGFyc2UiLCJub25UZXJtaW5hbE5vZGUiLCJzb21lQ2hpbGROb2RlIiwiY2hpbGROb2RlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFtSWdCQTtlQUFBQTs7UUF4Q0FDO2VBQUFBOztRQTRDQUM7ZUFBQUE7O1FBSUFDO2VBQUFBOztRQW9CQUM7ZUFBQUE7O1FBM0VBQztlQUFBQTs7UUErREFDO2VBQUFBOztRQWhDQUM7ZUFBQUE7O1FBMEJBQztlQUFBQTs7UUFoQ0FDO2VBQUFBOztRQThDQUM7ZUFBQUE7O1FBcENBQztlQUFBQTs7UUFjQUM7ZUFBQUE7O1FBOEJBQztlQUFBQTs7UUExQ0FDO2VBQUFBOztRQVZBQztlQUFBQTs7UUFnQ0FDO2VBQUFBOztRQXBCQUM7ZUFBQUE7O1FBOUNBQztlQUFBQTs7UUFnRkFDO2VBQUFBOztRQXhDQUM7ZUFBQUE7O1FBb0NBQztlQUFBQTs7UUExQkFDO2VBQUFBOztRQXdDQUM7ZUFBQUE7O1FBdENBQztlQUFBQTs7UUFnQ0FDO2VBQUFBOztRQXBDQUM7ZUFBQUE7O1FBd0NBQztlQUFBQTs7UUFkQUM7ZUFBQUE7O1FBckRBQztlQUFBQTs7UUFPQUM7ZUFBQUE7O1FBNENBQztlQUFBQTs7UUExQ0FDO2VBQUFBOztRQXNDQUM7ZUFBQUE7O1FBUkFDO2VBQUFBOztRQXhCQUM7ZUFBQUE7OztxQkEvR2lCOzJCQW9DZ0I7QUFFakQsTUFBTUMsc0JBQXNCQyxJQUFBQSxxQkFBZ0IsRUFBQ0MseUJBQWMsR0FDckRDLHNCQUFzQkYsSUFBQUEscUJBQWdCLEVBQUNHLHlCQUFjLEdBQ3JEQyx1QkFBdUJKLElBQUFBLHFCQUFnQixFQUFDSywwQkFBZSxHQUN2REMsdUJBQXVCTixJQUFBQSxxQkFBZ0IsRUFBQ08sMEJBQWUsR0FDdkRDLHlCQUF5QlIsSUFBQUEscUJBQWdCLEVBQUNTLDRCQUFpQixHQUMzREMsMEJBQTBCVixJQUFBQSxxQkFBZ0IsRUFBQ1csNkJBQWtCLEdBQzdEQywwQkFBMEJaLElBQUFBLHFCQUFnQixFQUFDYSw2QkFBa0IsR0FDN0RD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
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9jZXNzL2luc3RhbnRpYXRlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBibmZVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IFRZUEVfUlVMRV9OQU1FIH0gZnJvbSBcIi4uL3J1bGVOYW1lc1wiO1xuXG5jb25zdCB7IGluc3RhbnRpYXRlLCBydWxlRnJvbVJ1bGVOYW1lIH0gPSBibmZVdGlsaXRpZXM7XG5cbmNvbnN0IHR5cGVQbGFjZWhvbGRlclJ1bGUgPSBydWxlRnJvbVJ1bGVOYW1lKFRZUEVfUlVMRV9OQU1FKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbnRpYXRlVHlwZShzdHJpbmcsIGNvbnRleHQpIHsgcmV0dXJuIGluc3RhbnRpYXRlKHR5cGVQbGFjZWhvbGRlclJ1bGUsIHN0cmluZywgY29udGV4dCk7IH1cbiJdLCJuYW1lcyI6WyJpbnN0YW50aWF0ZVR5cGUiLCJpbnN0YW50aWF0ZSIsInJ1bGVGcm9tUnVsZU5hbWUiLCJibmZVdGlsaXRpZXMiLCJ0eXBlUGxhY2Vob2xkZXJSdWxlIiwiVFlQRV9SVUxFX05BTUUiLCJzdHJpbmciLCJjb250ZXh0Il0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFVZ0JBOzs7ZUFBQUE7OztnQ0FSYTsyQkFFRTtBQUUvQixNQUFNLEVBQUVDLFdBQVcsRUFBRUMsZ0JBQWdCLEVBQUUsR0FBR0MsNEJBQVk7QUFFdEQsTUFBTUMsc0JBQXNCRixpQkFBaUJHLHlCQUFjO0FBRXBELFNBQVNMLGdCQUFnQk0sTUFBTSxFQUFFQyxPQUFPO0lBQUksT0FBT04sWUFBWUcscUJBQXFCRSxRQUFRQztBQUFVIn0=
@@ -0,0 +1,31 @@
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 furtleLexer () {
13
+ return furtleLexer;
14
+ },
15
+ get furtleParser () {
16
+ return furtleParser;
17
+ }
18
+ });
19
+ const _occamlanguages = require("occam-languages");
20
+ const _lexer = /*#__PURE__*/ _interop_require_default(require("../furtle/lexer"));
21
+ const _parser = /*#__PURE__*/ _interop_require_default(require("../furtle/parser"));
22
+ function _interop_require_default(obj) {
23
+ return obj && obj.__esModule ? obj : {
24
+ default: obj
25
+ };
26
+ }
27
+ const { furtleLexerFromNothing, furtleParserFromNothing } = _occamlanguages.furtleUtilities;
28
+ const furtleLexer = furtleLexerFromNothing(_lexer.default);
29
+ const furtleParser = furtleParserFromNothing(_parser.default);
30
+
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvZnVydGxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBmdXJ0bGVVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBGdXJ0bGVMZXhlciBmcm9tIFwiLi4vZnVydGxlL2xleGVyXCI7XG5pbXBvcnQgRnVydGxlUGFyc2VyIGZyb20gXCIuLi9mdXJ0bGUvcGFyc2VyXCI7XG5cbmNvbnN0IHsgZnVydGxlTGV4ZXJGcm9tTm90aGluZywgZnVydGxlUGFyc2VyRnJvbU5vdGhpbmcgfSA9IGZ1cnRsZVV0aWxpdGllcztcblxuZXhwb3J0IGNvbnN0IGZ1cnRsZUxleGVyID0gZnVydGxlTGV4ZXJGcm9tTm90aGluZyhGdXJ0bGVMZXhlcik7XG5cbmV4cG9ydCBjb25zdCBmdXJ0bGVQYXJzZXIgPSBmdXJ0bGVQYXJzZXJGcm9tTm90aGluZyhGdXJ0bGVQYXJzZXIpO1xuIl0sIm5hbWVzIjpbImZ1cnRsZUxleGVyIiwiZnVydGxlUGFyc2VyIiwiZnVydGxlTGV4ZXJGcm9tTm90aGluZyIsImZ1cnRsZVBhcnNlckZyb21Ob3RoaW5nIiwiZnVydGxlVXRpbGl0aWVzIiwiRnVydGxlTGV4ZXIiLCJGdXJ0bGVQYXJzZXIiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQVNhQTtlQUFBQTs7UUFFQUM7ZUFBQUE7OztnQ0FUbUI7OERBRVI7K0RBQ0M7Ozs7OztBQUV6QixNQUFNLEVBQUVDLHNCQUFzQixFQUFFQyx1QkFBdUIsRUFBRSxHQUFHQywrQkFBZTtBQUVwRSxNQUFNSixjQUFjRSx1QkFBdUJHLGNBQVc7QUFFdEQsTUFBTUosZUFBZUUsd0JBQXdCRyxlQUFZIn0=
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-furtle",
3
3
  "author": "James Smith",
4
- "version": "3.0.370",
4
+ "version": "3.0.372",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-furtle",
7
7
  "description": "Occam's Furtle language.",
@@ -12,7 +12,7 @@
12
12
  "dependencies": {
13
13
  "necessary": "^17.5.2",
14
14
  "occam-grammars": "^1.3.628",
15
- "occam-languages": "^1.0.28",
15
+ "occam-languages": "^1.0.32",
16
16
  "occam-lexers": "^23.2.2",
17
17
  "occam-parsers": "^23.2.4",
18
18
  "occam-query": "^4.1.198"
@@ -1,18 +1,11 @@
1
1
  "use strict";
2
2
 
3
- import { FileContext, furtleUtilities } from "occam-languages";
4
-
5
- import FurtleLexer from "../../furtle/lexer";
6
- import FurtleParser from "../../furtle/parser";
3
+ import { FileContext } from "occam-languages";
7
4
 
8
5
  import { verifyFile } from "../../process/verify";
6
+ import { furtleLexer, furtleParser } from "../../utilities/furtle";
9
7
  import { proceduresFromJSON, proceduresToProceduresJSON } from "../../utilities/json";
10
8
 
11
- const { furtleLexerFromNothing, furtleParserFromNothing } = furtleUtilities;
12
-
13
- const furtleLexer = furtleLexerFromNothing(FurtleLexer),
14
- furtleParser = furtleParserFromNothing(FurtleParser);
15
-
16
9
  export default class FurtleFileContext extends FileContext {
17
10
  constructor(context, fileContent, filePath, tokens, node, json, lexer, parser, procedures) {
18
11
  super(context, fileContent, filePath, tokens, node, json);
@@ -19,6 +19,20 @@ export default class LiteralContext extends Context {
19
19
  this.tokens = tokens;
20
20
  }
21
21
 
22
+ getLexer() {
23
+ const context = this.getContext(),
24
+ lexer = context.getLexer();
25
+
26
+ return lexer;
27
+ }
28
+
29
+ getParser() {
30
+ const context = this.getContext(),
31
+ parser = context.getParser();
32
+
33
+ return parser;
34
+ }
35
+
22
36
  nodeAsString(node) {
23
37
  const string = nodeAsString(node, this.tokens);
24
38
 
@@ -31,12 +45,6 @@ export default class LiteralContext extends Context {
31
45
  return string;
32
46
  }
33
47
 
34
- static fromTokens(tokens, context) {
35
- const literalContext = new LiteralContext(context, tokens);
36
-
37
- return literalContext;
38
- }
39
-
40
48
  static fromNothing(context) {
41
49
  const tokens = null,
42
50
  literalContext = new LiteralContext(context, tokens);
@@ -147,9 +147,9 @@ export default define(class Procedure extends Element {
147
147
  static fromJSON(json, context) {
148
148
  const { string } = json,
149
149
  breakPoint = breakPointFromJSON(json),
150
- type = typeFromJSON(json),
151
- label = labelFromJSON(json),
152
- parameters = parametersFromJSON(json),
150
+ type = typeFromJSON(json, context),
151
+ label = labelFromJSON(json, context),
152
+ parameters = parametersFromJSON(json, context),
153
153
  procedureNode = context.findProcedureNode(label),
154
154
  returnBlock = null, ///
155
155
  node = procedureNode; ///
@@ -5,6 +5,7 @@ import { Element, breakPointUtilities } from "occam-languages";
5
5
  import { define } from "../elements";
6
6
 
7
7
  import { instantiate } from "../utilities/context";
8
+ import { instantiateType } from "../process/instantiate";
8
9
  import { typeStringFromTypeNameAndArgumentTypeName } from "../utilities/string";
9
10
  import { nameFromTypeNode, argumentTypeFromTypeNode } from "../utilities/element";
10
11
  import { LIST_TYPE_NAME, STRING_TYPE_NAME, BOOLEAN_TYPE_NAME, INTEGER_TYPE_NAME, NOMINAL_VALUE_TYPE_NAME } from "../typeNames";
@@ -1,194 +1,11 @@
1
1
  "use strict";
2
2
 
3
- import { ruleFromRuleName } from "../utilities/bnf";
4
- import { TERM_RULE_NAME,
5
- TYPE_RULE_NAME,
6
- FRAME_RULE_NAME,
7
- LABEL_RULE_NAME,
8
- PREMISE_RULE_NAME,
9
- VARIABLE_RULE_NAME,
10
- EQUALITY_RULE_NAME,
11
- PROPERTY_RULE_NAME,
12
- JUDGEMENT_RULE_NAME,
13
- DEDUCTION_RULE_NAME,
14
- PARAMETER_RULE_NAME,
15
- STATEMENT_RULE_NAME,
16
- REFERENCE_RULE_NAME,
17
- SIGNATURE_RULE_NAME,
18
- GENERATOR_RULE_NAME,
19
- COMBINATOR_RULE_NAME,
20
- CONCLUSION_RULE_NAME,
21
- HYPOTHESIS_RULE_NAME,
22
- CONSTRAINT_RULE_NAME,
23
- TYPE_PREFIX_RULE_NAME,
24
- SUPPOSITION_RULE_NAME,
25
- CONSTRUCTOR_RULE_NAME,
26
- EQUIVALENCE_RULE_NAME,
27
- METAVARIABLE_RULE_NAME,
28
- TYPE_ASSERTION_RULE_NAME,
29
- DEFINED_ASSERTION_RULE_NAME,
30
- TERM_SUBSTITUTION_RULE_NAME,
31
- PROPERTY_ASSERTION_RULE_NAME,
32
- SUBPROOF_ASSERTION_RULE_NAME,
33
- FRAME_SUBSTITUTION_RULE_NAME,
34
- PROCEDURE_REFERENCE_RULE_NAME,
35
- CONTAINED_ASSERTION_RULE_NAME,
36
- SIGNATURE_ASSERTION_RULE_NAME,
37
- IMPLICIT_ASSUMPTION_RULE_NAME,
38
- STATEMENT_SUBSTITUTION_RULE_NAME,
39
- REFERENCE_SUBSTITUTION_RULE_NAME } from "../ruleNames";
3
+ import { bnfUtilities } from "occam-languages";
40
4
 
41
- const termPlaceholderRule = ruleFromRuleName(TERM_RULE_NAME),
42
- typePlaceholderRule = ruleFromRuleName(TYPE_RULE_NAME),
43
- framePlaceholderRule = ruleFromRuleName(FRAME_RULE_NAME),
44
- labelPlaceholderRule = ruleFromRuleName(LABEL_RULE_NAME),
45
- premisePlaceholderRule = ruleFromRuleName(PREMISE_RULE_NAME),
46
- variablePlaceholderRule = ruleFromRuleName(VARIABLE_RULE_NAME),
47
- equalityPlaceholderRule = ruleFromRuleName(EQUALITY_RULE_NAME),
48
- propertyPlaceholderRule = ruleFromRuleName(PROPERTY_RULE_NAME),
49
- judgementPlaceholderRule = ruleFromRuleName(JUDGEMENT_RULE_NAME),
50
- generatorPlaceholderRule = ruleFromRuleName(GENERATOR_RULE_NAME),
51
- deductionPlaceholderRule = ruleFromRuleName(DEDUCTION_RULE_NAME),
52
- parameterPlaceholderRule = ruleFromRuleName(PARAMETER_RULE_NAME),
53
- statementPlaceholderRule = ruleFromRuleName(STATEMENT_RULE_NAME),
54
- referencePlaceholderRule = ruleFromRuleName(REFERENCE_RULE_NAME),
55
- signaturePlaceholderRule = ruleFromRuleName(SIGNATURE_RULE_NAME),
56
- constraintPlaceholderRule = ruleFromRuleName(CONSTRAINT_RULE_NAME),
57
- combinatorPlaceholderRule = ruleFromRuleName(COMBINATOR_RULE_NAME),
58
- conclusionPlaceholderRule = ruleFromRuleName(CONCLUSION_RULE_NAME),
59
- hypothesisPlaceholderRule = ruleFromRuleName(HYPOTHESIS_RULE_NAME),
60
- typePrefixPlaceholderRule = ruleFromRuleName(TYPE_PREFIX_RULE_NAME),
61
- suppositionPlaceholderRule = ruleFromRuleName(SUPPOSITION_RULE_NAME),
62
- constructorPlaceholderRule = ruleFromRuleName(CONSTRUCTOR_RULE_NAME),
63
- equivalencePlaceholderRule = ruleFromRuleName(EQUIVALENCE_RULE_NAME),
64
- metavariablePlaceholderRule = ruleFromRuleName(METAVARIABLE_RULE_NAME),
65
- typeAssertionPlaceholderRule = ruleFromRuleName(TYPE_ASSERTION_RULE_NAME),
66
- definedAssertionPlaceholderRule = ruleFromRuleName(DEFINED_ASSERTION_RULE_NAME),
67
- termSubstitutionPlaceholderRule = ruleFromRuleName(TERM_SUBSTITUTION_RULE_NAME),
68
- subproofAssertionlaceholderRule = ruleFromRuleName(SUBPROOF_ASSERTION_RULE_NAME),
69
- propertyAssertionPlaceholderRule = ruleFromRuleName(PROPERTY_ASSERTION_RULE_NAME),
70
- frameSubstitutionPlaceholderRule = ruleFromRuleName(FRAME_SUBSTITUTION_RULE_NAME),
71
- procedureReferencelaceholderRule = ruleFromRuleName(PROCEDURE_REFERENCE_RULE_NAME),
72
- containedAssertionPlaceholderRule = ruleFromRuleName(CONTAINED_ASSERTION_RULE_NAME),
73
- signatureAssertionPlaceholderRule = ruleFromRuleName(SIGNATURE_ASSERTION_RULE_NAME),
74
- implicitAssumptionPlaceholderRule = ruleFromRuleName(IMPLICIT_ASSUMPTION_RULE_NAME),
75
- statementSubstitutionPlaceholderRule = ruleFromRuleName(STATEMENT_SUBSTITUTION_RULE_NAME),
76
- referenceSubstitutionPlaceholderRule = ruleFromRuleName(REFERENCE_SUBSTITUTION_RULE_NAME);
5
+ import { TYPE_RULE_NAME } from "../ruleNames";
77
6
 
78
- export function instantiatePremise(string, context) {
79
- string = `${string}
80
- `; ///
7
+ const { instantiate, ruleFromRuleName } = bnfUtilities;
81
8
 
82
- return instantiate(premisePlaceholderRule, string, context);
83
- }
84
-
85
- export function instantiateDeduction(string, context) {
86
- string = `${string}
87
- `; ///
88
-
89
- return instantiate(deductionPlaceholderRule, string, context);
90
- }
91
-
92
- export function instantiateConclusion(string, context) {
93
- string = `${string}
94
- `; ///
95
-
96
- return instantiate(conclusionPlaceholderRule, string, context);
97
- }
98
-
99
- export function instantiateSupposition(string, context) {
100
- string = `${string}
101
- `; ///
102
-
103
- return instantiate(suppositionPlaceholderRule, string, context);
104
- }
105
-
106
- export function instantiateTerm(string, context) { return instantiate(termPlaceholderRule, string, context); }
9
+ const typePlaceholderRule = ruleFromRuleName(TYPE_RULE_NAME);
107
10
 
108
11
  export function instantiateType(string, context) { return instantiate(typePlaceholderRule, string, context); }
109
-
110
- export function instantiateFrame(string, context) { return instantiate(framePlaceholderRule, string, context); }
111
-
112
- export function instantiateLabel(string, context) { return instantiate(labelPlaceholderRule, string, context); }
113
-
114
- export function instantiateVariable(string, context) { return instantiate(variablePlaceholderRule, string, context); }
115
-
116
- export function instantiateEquality(string, context) { return instantiate(equalityPlaceholderRule, string, context); }
117
-
118
- export function instantiateProperty(string, context) { return instantiate(propertyPlaceholderRule, string, context); }
119
-
120
- export function instantiateGenerator(string, context) { return instantiate(generatorPlaceholderRule, string, context); }
121
-
122
- export function instantiateJudgement(string, context) { return instantiate(judgementPlaceholderRule, string, context); }
123
-
124
- export function instantiateParameter(string, context) { return instantiate(parameterPlaceholderRule, string, context); }
125
-
126
- export function instantiateStatement(string, context) { return instantiate(statementPlaceholderRule, string, context); }
127
-
128
- export function instantiateReference(string, context) { return instantiate(referencePlaceholderRule, string, context); }
129
-
130
- export function instantiateSignature(string, context) { return instantiate(signaturePlaceholderRule, string, context); }
131
-
132
- export function instantiateCombinator(string, context) { return instantiate(combinatorPlaceholderRule, string, context); }
133
-
134
- export function instantiateHypothesis(string, context) { return instantiate(hypothesisPlaceholderRule, string, context); }
135
-
136
- export function instantiateConstraint(string, context) { return instantiate(constraintPlaceholderRule, string, context); }
137
-
138
- export function instantiateTypePrefix(string, context) { return instantiate(typePrefixPlaceholderRule, string, context); }
139
-
140
- export function instantiateConstructor(string, context) { return instantiate(constructorPlaceholderRule, string, context); }
141
-
142
- export function instantiateEquivalence(string, context) { return instantiate(equivalencePlaceholderRule, string, context); }
143
-
144
- export function instantiateMetavariable(string, context) { return instantiate(metavariablePlaceholderRule, string, context); }
145
-
146
- export function instantiateTypeAssertion(string, context) { return instantiate(typeAssertionPlaceholderRule, string, context); }
147
-
148
- export function instantiateDefinedAssertion(string, context) { return instantiate(definedAssertionPlaceholderRule, string, context); }
149
-
150
- export function instantiateTermSubstitution(string, context) { return instantiate(termSubstitutionPlaceholderRule, string, context); }
151
-
152
- export function instantiateSubproofAssertion(string, context) { return instantiate(subproofAssertionlaceholderRule, string, context); }
153
-
154
- export function instantiatePropertyAssertion(string, context) { return instantiate(propertyAssertionPlaceholderRule, string, context); }
155
-
156
- export function instantiateFrameSubstitution(string, context) { return instantiate(frameSubstitutionPlaceholderRule, string, context); }
157
-
158
- export function instantiateProcedureReference(string, context) { return instantiate(procedureReferencelaceholderRule, string, context); }
159
-
160
- export function instantiateContainedAssertion(string, context) { return instantiate(containedAssertionPlaceholderRule, string, context); }
161
-
162
- export function instantiateSignatureAssertion(string, context) { return instantiate(signatureAssertionPlaceholderRule, string, context); }
163
-
164
- export function instantiateImplicitAssumption(string, context) { return instantiate(implicitAssumptionPlaceholderRule, string, context); }
165
-
166
- export function instantiateStatementSubstitution(string, context) { return instantiate(statementSubstitutionPlaceholderRule, string, context); }
167
-
168
- export function instantiateReferenceSubstitution(string, context) { return instantiate(referenceSubstitutionPlaceholderRule, string, context); }
169
-
170
- function instantiate(placeholderRule, string, context) {
171
- let node;
172
-
173
- const lexer = context.getLexer(),
174
- parser = context.getParser(),
175
- content = `${string}
176
- `,
177
- tokens = lexer.tokenise(content);
178
-
179
- context.setTokens(tokens);
180
-
181
- const startRule = placeholderRule; ///
182
-
183
- node = parser.parse(tokens, startRule);
184
-
185
- const nonTerminalNode = node; ///
186
-
187
- nonTerminalNode.someChildNode((childNode) => {
188
- node = childNode; ///
189
-
190
- return true;
191
- });
192
-
193
- return node;
194
- }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ import { furtleUtilities } from "occam-languages";
4
+
5
+ import FurtleLexer from "../furtle/lexer";
6
+ import FurtleParser from "../furtle/parser";
7
+
8
+ const { furtleLexerFromNothing, furtleParserFromNothing } = furtleUtilities;
9
+
10
+ export const furtleLexer = furtleLexerFromNothing(FurtleLexer);
11
+
12
+ export const furtleParser = furtleParserFromNothing(FurtleParser);