occam-furtle 3.0.365 → 3.0.368

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.
@@ -12,6 +12,7 @@ const _occamlanguages = require("occam-languages");
12
12
  const _lexer = /*#__PURE__*/ _interop_require_default(require("../../furtle/lexer"));
13
13
  const _parser = /*#__PURE__*/ _interop_require_default(require("../../furtle/parser"));
14
14
  const _verify = require("../../process/verify");
15
+ const _json = require("../../utilities/json");
15
16
  function _interop_require_default(obj) {
16
17
  return obj && obj.__esModule ? obj : {
17
18
  default: obj
@@ -121,20 +122,24 @@ class FurtleFileContext extends _occamlanguages.FileContext {
121
122
  complete() {
122
123
  ///
123
124
  }
124
- initialise(json) {
125
- super.initialise();
126
- this.procedures = [];
127
- const node = this.getNode(), context = this, fileNode = node; ///
128
- (0, _verify.verifyFile)(fileNode, context);
125
+ initialise() {
126
+ const json = this.getJSON();
127
+ if (json === null) {
128
+ super.initialise();
129
+ return;
130
+ }
131
+ const fileContext = this; ///
132
+ this.procedures = (0, _json.proceduresFromJSON)(json, fileContext);
129
133
  }
130
134
  async verifyFile() {
131
135
  const node = this.getNode(), context = this, fileNode = node, fileVerifies = (0, _verify.verifyFile)(fileNode, context);
132
136
  return fileVerifies;
133
137
  }
134
138
  toJSON() {
135
- const filePath = this.getFilePath(), fileContent = this.getFileContent(), json = {
139
+ const proceduresJSON = (0, _json.proceduresToProceduresJSON)(this.procedures), fileContent = this.getFileContent(), filePath = this.getFilePath(), procedures = proceduresJSON, json = {
140
+ fileContent,
136
141
  filePath,
137
- fileContent
142
+ procedures
138
143
  };
139
144
  return json;
140
145
  }
@@ -148,4 +153,4 @@ class FurtleFileContext extends _occamlanguages.FileContext {
148
153
  }
149
154
  }
150
155
 
151
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0L2ZpbGUvZnVydGxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBGaWxlQ29udGV4dCwgZnVydGxlVXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgRnVydGxlTGV4ZXIgZnJvbSBcIi4uLy4uL2Z1cnRsZS9sZXhlclwiO1xuaW1wb3J0IEZ1cnRsZVBhcnNlciBmcm9tIFwiLi4vLi4vZnVydGxlL3BhcnNlclwiO1xuXG5pbXBvcnQgeyB2ZXJpZnlGaWxlIH0gZnJvbSBcIi4uLy4uL3Byb2Nlc3MvdmVyaWZ5XCI7XG5cbmNvbnN0IHsgZnVydGxlTGV4ZXJGcm9tTm90aGluZywgZnVydGxlUGFyc2VyRnJvbU5vdGhpbmcgfSA9IGZ1cnRsZVV0aWxpdGllcztcblxuY29uc3QgZnVydGxlTGV4ZXIgPSBmdXJ0bGVMZXhlckZyb21Ob3RoaW5nKEZ1cnRsZUxleGVyKSxcbiAgICAgIGZ1cnRsZVBhcnNlciA9IGZ1cnRsZVBhcnNlckZyb21Ob3RoaW5nKEZ1cnRsZVBhcnNlcik7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZ1cnRsZUZpbGVDb250ZXh0IGV4dGVuZHMgRmlsZUNvbnRleHQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBmaWxlQ29udGVudCwgZmlsZVBhdGgsIHRva2Vucywgbm9kZSwganNvbiwgbGV4ZXIsIHBhcnNlciwgcHJvY2VkdXJlcykge1xuICAgIHN1cGVyKGNvbnRleHQsIGZpbGVDb250ZW50LCBmaWxlUGF0aCwgdG9rZW5zLCBub2RlLCBqc29uKTtcblxuICAgIHRoaXMubGV4ZXIgPSBsZXhlcjtcbiAgICB0aGlzLnBhcnNlciA9IHBhcnNlcjtcbiAgICB0aGlzLnByb2NlZHVyZXMgPSBwcm9jZWR1cmVzO1xuICB9XG5cbiAgZ2V0TGV4ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMubGV4ZXI7XG4gIH1cblxuICBnZXRQYXJzZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFyc2VyO1xuICB9XG5cbiAgZ2V0TGFiZWxzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGxhYmVscyA9IFtdO1xuXG4gICAgcmV0dXJuIGxhYmVscztcbiAgfVxuXG4gIGdldFR5cGVzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHR5cGVzID0gW107XG5cbiAgICByZXR1cm4gdHlwZXM7XG4gIH1cblxuICBnZXRSdWxlcyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBydWxlcyA9IFtdXG5cbiAgICByZXR1cm4gcnVsZXM7XG4gIH1cblxuICBnZXRBeGlvbXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgYXhpb21zID0gW107XG5cbiAgICByZXR1cm4gYXhpb21zO1xuICB9XG5cbiAgZ2V0TGVtbWFzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGxlbW1hcyA9IFtdO1xuXG4gICAgcmV0dXJuIGxlbW1hcztcbiAgfVxuXG4gIGdldFRoZW9yZW1zKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHRoZW9yZW1zID0gW107XG5cbiAgICByZXR1cm4gdGhlb3JlbXM7XG4gIH1cblxuICBnZXRNZXRhTGVtbWFzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IG1ldGFMZW1tYXMgPSBbXTtcblxuICAgIHJldHVybiBtZXRhTGVtbWFzO1xuICB9XG5cbiAgZ2V0R2VuZXJhdG9ycyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBnZW5lcmF0b3JzID0gW107XG5cbiAgICByZXR1cm4gZ2VuZXJhdG9ycztcbiAgfVxuXG4gIGdldENvbmplY3R1cmVzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGNvbmplY3R1cmVzID0gW107XG5cbiAgICByZXR1cm4gY29uamVjdHVyZXM7XG4gIH1cblxuICBnZXRDb21iaW5hdG9ycyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBjb21iaW5hdG9ycyA9IFtdO1xuXG4gICAgcmV0dXJuIGNvbWJpbmF0b3JzO1xuICB9XG5cbiAgZ2V0VHlwZVByZWZpeGVzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHR5cGVQcmVmaXhlcyA9IFtdO1xuXG4gICAgcmV0dXJuIHR5cGVQcmVmaXhlcztcbiAgfVxuXG4gIGdldENvbnN0cnVjdG9ycyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBjb25zdHJ1Y3RvcnMgPSBbXTtcblxuICAgIHJldHVybiBjb25zdHJ1Y3RvcnM7XG4gIH1cblxuICBnZXRNZXRhdGhlb3JlbXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgbWV0YXRoZW9yZW1zID0gW107XG5cbiAgICByZXR1cm4gbWV0YXRoZW9yZW1zO1xuICB9XG5cbiAgZ2V0TWV0YXZhcmlhYmxlcyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBtZXRhdmFyaWFibGVzID0gW107XG5cbiAgICByZXR1cm4gbWV0YXZhcmlhYmxlcztcbiAgfVxuXG4gIGdldFByb2NlZHVyZXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgcHJvY2VkdXJlcyA9IGluY2x1ZGVSZWxlYXNlID9cbiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHQuZ2V0UHJvY2VkdXJlcygpIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvY2VkdXJlcztcblxuICAgIHJldHVybiBwcm9jZWR1cmVzO1xuICB9XG5cbiAgZ2V0VmFyaWFibGVzKG5lc3RlZCA9IHRydWUpIHtcbiAgICBjb25zdCB2YXJpYWJsZXMgPSBbXTtcblxuICAgIHJldHVybiB2YXJpYWJsZXM7XG4gIH1cblxuICBhZGRQcm9jZWR1cmUocHJvY2VkdXJlKSB7XG4gICAgY29uc3QgcHJvY2VkdXJlU3RyaW5nID0gcHJvY2VkdXJlLmdldFN0cmluZygpO1xuXG4gICAgdGhpcy5wcm9jZWR1cmVzLnB1c2gocHJvY2VkdXJlKTtcblxuICAgIGNvbnN0IGZpbGVQYXRoID0gdGhpcy5nZXRGaWxlUGF0aCgpO1xuXG4gICAgdGhpcy5kZWJ1ZyhgQWRkZWQgdGhlICcke3Byb2NlZHVyZVN0cmluZ30nIGZ1bmN0aW9uIHRvIHRoZSAnJHtmaWxlUGF0aH0nIGZpbGUgY29udGV4dC5gKTtcbiAgfVxuXG4gIGZpbmRQcm9jZWR1cmVCeVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSkge1xuICAgIGNvbnN0IHByb2NlZHVyZXMgPSB0aGlzLmdldFByb2NlZHVyZXMoKSxcbiAgICAgICAgICBwcm9jZWR1cmUgPSBwcm9jZWR1cmVzLmZpbmQoKHByb2NlZHVyZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJvY2VkdXJlQ29tcGFyZXNUb1Byb2NlZHVyZU5hbWUgPSBwcm9jZWR1cmUuY29tcGFyZVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSk7XG5cbiAgICAgICAgICAgIGlmIChwcm9jZWR1cmVDb21wYXJlc1RvUHJvY2VkdXJlTmFtZSkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIHByb2NlZHVyZTtcbiAgfVxuXG4gIGlzUHJvY2VkdXJlUHJlc2VudEJ5UHJvY2VkdXJlTmFtZShwcm9jZWR1cmVOYW1lKSB7XG4gICAgY29uc3QgcHJvY2VkdXJlID0gdGhpcy5maW5kUHJvY2VkdXJlQnlQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpLFxuICAgICAgICAgIHByb2NlZHVyZVByZXNlbnQgPSAocHJvY2VkdXJlICE9PSBudWxsKTtcblxuICAgIHJldHVybiBwcm9jZWR1cmVQcmVzZW50O1xuICB9XG5cbiAgY2xlYXIoKSB7XG4gICAgdGhpcy5wcm9jZWR1cmVzID0gW107XG4gIH1cblxuICBjb21wbGV0ZSgpIHtcbiAgICAvLy9cbiAgfVxuXG4gIGluaXRpYWxpc2UoanNvbikge1xuICAgIHN1cGVyLmluaXRpYWxpc2UoKTtcblxuICAgIHRoaXMucHJvY2VkdXJlcyA9IFtdO1xuXG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZ2V0Tm9kZSgpLFxuICAgICAgICAgIGNvbnRleHQgPSB0aGlzLCAvLy9cbiAgICAgICAgICBmaWxlTm9kZSA9IG5vZGU7ICAvLy9cblxuICAgIHZlcmlmeUZpbGUoZmlsZU5vZGUsIGNvbnRleHQpO1xuICB9XG5cbiAgYXN5bmMgdmVyaWZ5RmlsZSgpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgY29udGV4dCA9IHRoaXMsIC8vL1xuICAgICAgICAgIGZpbGVOb2RlID0gbm9kZSwgIC8vL1xuICAgICAgICAgIGZpbGVWZXJpZmllcyA9IHZlcmlmeUZpbGUoZmlsZU5vZGUsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGZpbGVWZXJpZmllcztcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCBmaWxlUGF0aCA9IHRoaXMuZ2V0RmlsZVBhdGgoKSxcbiAgICAgICAgICBmaWxlQ29udGVudCA9IHRoaXMuZ2V0RmlsZUNvbnRlbnQoKSxcbiAgICAgICAgICBqc29uID0ge1xuICAgICAgICAgICAgZmlsZVBhdGgsXG4gICAgICAgICAgICBmaWxlQ29udGVudFxuICAgICAgICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tRmlsZShmaWxlLCBjb250ZXh0KSB7XG4gICAgY29uc3QgbGV4ZXIgPSBmdXJ0bGVMZXhlciwgIC8vL1xuICAgICAgICAgIHBhcnNlciA9IGZ1cnRsZVBhcnNlciwgIC8vL1xuICAgICAgICAgIHByb2NlZHVyZXMgPSBbXSxcbiAgICAgICAgICBmdXJ0bGVGaWxlQ29udGV4dCA9IEZpbGVDb250ZXh0LmZyb21GaWxlKEZ1cnRsZUZpbGVDb250ZXh0LCBmaWxlLCBsZXhlciwgcGFyc2VyLCBwcm9jZWR1cmVzLCBjb250ZXh0KTtcblxuICAgIHJldHVybiBmdXJ0bGVGaWxlQ29udGV4dDtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgY29uc3QgbGV4ZXIgPSBmdXJ0bGVMZXhlciwgIC8vL1xuICAgICAgICAgIHBhcnNlciA9IGZ1cnRsZVBhcnNlciwgIC8vL1xuICAgICAgICAgIHByb2NlZHVyZXMgPSBudWxsLFxuICAgICAgICAgIGZ1cnRsZUZpbGVDb250ZXh0ID0gRmlsZUNvbnRleHQuZnJvbUpTT04oRnVydGxlRmlsZUNvbnRleHQsIGpzb24sIGxleGVyLCBwYXJzZXIsIHByb2NlZHVyZXMsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGZ1cnRsZUZpbGVDb250ZXh0O1xuICB9XG59XG4iXSwibmFtZXMiOlsiRnVydGxlRmlsZUNvbnRleHQiLCJmdXJ0bGVMZXhlckZyb21Ob3RoaW5nIiwiZnVydGxlUGFyc2VyRnJvbU5vdGhpbmciLCJmdXJ0bGVVdGlsaXRpZXMiLCJmdXJ0bGVMZXhlciIsIkZ1cnRsZUxleGVyIiwiZnVydGxlUGFyc2VyIiwiRnVydGxlUGFyc2VyIiwiRmlsZUNvbnRleHQiLCJjb250ZXh0IiwiZmlsZUNvbnRlbnQiLCJmaWxlUGF0aCIsInRva2VucyIsIm5vZGUiLCJqc29uIiwibGV4ZXIiLCJwYXJzZXIiLCJwcm9jZWR1cmVzIiwiZ2V0TGV4ZXIiLCJnZXRQYXJzZXIiLCJnZXRMYWJlbHMiLCJpbmNsdWRlUmVsZWFzZSIsImxhYmVscyIsImdldFR5cGVzIiwidHlwZXMiLCJnZXRSdWxlcyIsInJ1bGVzIiwiZ2V0QXhpb21zIiwiYXhpb21zIiwiZ2V0TGVtbWFzIiwibGVtbWFzIiwiZ2V0VGhlb3JlbXMiLCJ0aGVvcmVtcyIsImdldE1ldGFMZW1tYXMiLCJtZXRhTGVtbWFzIiwiZ2V0R2VuZXJhdG9ycyIsImdlbmVyYXRvcnMiLCJnZXRDb25qZWN0dXJlcyIsImNvbmplY3R1cmVzIiwiZ2V0Q29tYmluYXRvcnMiLCJjb21iaW5hdG9ycyIsImdldFR5cGVQcmVmaXhlcyIsInR5cGVQcmVmaXhlcyIsImdldENvbnN0cnVjdG9ycyIsImNvbnN0cnVjdG9ycyIsImdldE1ldGF0aGVvcmVtcyIsIm1ldGF0aGVvcmVtcyIsImdldE1ldGF2YXJpYWJsZXMiLCJtZXRhdmFyaWFibGVzIiwiZ2V0UHJvY2VkdXJlcyIsImdldFZhcmlhYmxlcyIsIm5lc3RlZCIsInZhcmlhYmxlcyIsImFkZFByb2NlZHVyZSIsInByb2NlZHVyZSIsInByb2NlZHVyZVN0cmluZyIsImdldFN0cmluZyIsInB1c2giLCJnZXRGaWxlUGF0aCIsImRlYnVnIiwiZmluZFByb2NlZHVyZUJ5UHJvY2VkdXJlTmFtZSIsInByb2NlZHVyZU5hbWUiLCJmaW5kIiwicHJvY2VkdXJlQ29tcGFyZXNUb1Byb2NlZHVyZU5hbWUiLCJjb21wYXJlUHJvY2VkdXJlTmFtZSIsImlzUHJvY2VkdXJlUHJlc2VudEJ5UHJvY2VkdXJlTmFtZSIsInByb2NlZHVyZVByZXNlbnQiLCJjbGVhciIsImNvbXBsZXRlIiwiaW5pdGlhbGlzZSIsImdldE5vZGUiLCJmaWxlTm9kZSIsInZlcmlmeUZpbGUiLCJmaWxlVmVyaWZpZXMiLCJ0b0pTT04iLCJnZXRGaWxlQ29udGVudCIsImZyb21GaWxlIiwiZmlsZSIsImZ1cnRsZUZpbGVDb250ZXh0IiwiZnJvbUpTT04iXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWNBOzs7ZUFBcUJBOzs7Z0NBWndCOzhEQUVyQjsrREFDQzt3QkFFRTs7Ozs7O0FBRTNCLE1BQU0sRUFBRUMsc0JBQXNCLEVBQUVDLHVCQUF1QixFQUFFLEdBQUdDLCtCQUFlO0FBRTNFLE1BQU1DLGNBQWNILHVCQUF1QkksY0FBVyxHQUNoREMsZUFBZUosd0JBQXdCSyxlQUFZO0FBRTFDLE1BQU1QLDBCQUEwQlEsMkJBQVc7SUFDeEQsWUFBWUMsT0FBTyxFQUFFQyxXQUFXLEVBQUVDLFFBQVEsRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLElBQUksRUFBRUMsS0FBSyxFQUFF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
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250ZXh0L2ZpbGUvZnVydGxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBGaWxlQ29udGV4dCwgZnVydGxlVXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgRnVydGxlTGV4ZXIgZnJvbSBcIi4uLy4uL2Z1cnRsZS9sZXhlclwiO1xuaW1wb3J0IEZ1cnRsZVBhcnNlciBmcm9tIFwiLi4vLi4vZnVydGxlL3BhcnNlclwiO1xuXG5pbXBvcnQgeyB2ZXJpZnlGaWxlIH0gZnJvbSBcIi4uLy4uL3Byb2Nlc3MvdmVyaWZ5XCI7XG5pbXBvcnQgeyBwcm9jZWR1cmVzRnJvbUpTT04sIHByb2NlZHVyZXNUb1Byb2NlZHVyZXNKU09OIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy9qc29uXCI7XG5cbmNvbnN0IHsgZnVydGxlTGV4ZXJGcm9tTm90aGluZywgZnVydGxlUGFyc2VyRnJvbU5vdGhpbmcgfSA9IGZ1cnRsZVV0aWxpdGllcztcblxuY29uc3QgZnVydGxlTGV4ZXIgPSBmdXJ0bGVMZXhlckZyb21Ob3RoaW5nKEZ1cnRsZUxleGVyKSxcbiAgICAgIGZ1cnRsZVBhcnNlciA9IGZ1cnRsZVBhcnNlckZyb21Ob3RoaW5nKEZ1cnRsZVBhcnNlcik7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEZ1cnRsZUZpbGVDb250ZXh0IGV4dGVuZHMgRmlsZUNvbnRleHQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBmaWxlQ29udGVudCwgZmlsZVBhdGgsIHRva2Vucywgbm9kZSwganNvbiwgbGV4ZXIsIHBhcnNlciwgcHJvY2VkdXJlcykge1xuICAgIHN1cGVyKGNvbnRleHQsIGZpbGVDb250ZW50LCBmaWxlUGF0aCwgdG9rZW5zLCBub2RlLCBqc29uKTtcblxuICAgIHRoaXMubGV4ZXIgPSBsZXhlcjtcbiAgICB0aGlzLnBhcnNlciA9IHBhcnNlcjtcbiAgICB0aGlzLnByb2NlZHVyZXMgPSBwcm9jZWR1cmVzO1xuICB9XG5cbiAgZ2V0TGV4ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMubGV4ZXI7XG4gIH1cblxuICBnZXRQYXJzZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFyc2VyO1xuICB9XG5cbiAgZ2V0TGFiZWxzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGxhYmVscyA9IFtdO1xuXG4gICAgcmV0dXJuIGxhYmVscztcbiAgfVxuXG4gIGdldFR5cGVzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHR5cGVzID0gW107XG5cbiAgICByZXR1cm4gdHlwZXM7XG4gIH1cblxuICBnZXRSdWxlcyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBydWxlcyA9IFtdXG5cbiAgICByZXR1cm4gcnVsZXM7XG4gIH1cblxuICBnZXRBeGlvbXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgYXhpb21zID0gW107XG5cbiAgICByZXR1cm4gYXhpb21zO1xuICB9XG5cbiAgZ2V0TGVtbWFzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGxlbW1hcyA9IFtdO1xuXG4gICAgcmV0dXJuIGxlbW1hcztcbiAgfVxuXG4gIGdldFRoZW9yZW1zKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHRoZW9yZW1zID0gW107XG5cbiAgICByZXR1cm4gdGhlb3JlbXM7XG4gIH1cblxuICBnZXRNZXRhTGVtbWFzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IG1ldGFMZW1tYXMgPSBbXTtcblxuICAgIHJldHVybiBtZXRhTGVtbWFzO1xuICB9XG5cbiAgZ2V0R2VuZXJhdG9ycyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBnZW5lcmF0b3JzID0gW107XG5cbiAgICByZXR1cm4gZ2VuZXJhdG9ycztcbiAgfVxuXG4gIGdldENvbmplY3R1cmVzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IGNvbmplY3R1cmVzID0gW107XG5cbiAgICByZXR1cm4gY29uamVjdHVyZXM7XG4gIH1cblxuICBnZXRDb21iaW5hdG9ycyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBjb21iaW5hdG9ycyA9IFtdO1xuXG4gICAgcmV0dXJuIGNvbWJpbmF0b3JzO1xuICB9XG5cbiAgZ2V0VHlwZVByZWZpeGVzKGluY2x1ZGVSZWxlYXNlID0gdHJ1ZSkge1xuICAgIGNvbnN0IHR5cGVQcmVmaXhlcyA9IFtdO1xuXG4gICAgcmV0dXJuIHR5cGVQcmVmaXhlcztcbiAgfVxuXG4gIGdldENvbnN0cnVjdG9ycyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBjb25zdHJ1Y3RvcnMgPSBbXTtcblxuICAgIHJldHVybiBjb25zdHJ1Y3RvcnM7XG4gIH1cblxuICBnZXRNZXRhdGhlb3JlbXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgbWV0YXRoZW9yZW1zID0gW107XG5cbiAgICByZXR1cm4gbWV0YXRoZW9yZW1zO1xuICB9XG5cbiAgZ2V0TWV0YXZhcmlhYmxlcyhpbmNsdWRlUmVsZWFzZSA9IHRydWUpIHtcbiAgICBjb25zdCBtZXRhdmFyaWFibGVzID0gW107XG5cbiAgICByZXR1cm4gbWV0YXZhcmlhYmxlcztcbiAgfVxuXG4gIGdldFByb2NlZHVyZXMoaW5jbHVkZVJlbGVhc2UgPSB0cnVlKSB7XG4gICAgY29uc3QgcHJvY2VkdXJlcyA9IGluY2x1ZGVSZWxlYXNlID9cbiAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHQuZ2V0UHJvY2VkdXJlcygpIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvY2VkdXJlcztcblxuICAgIHJldHVybiBwcm9jZWR1cmVzO1xuICB9XG5cbiAgZ2V0VmFyaWFibGVzKG5lc3RlZCA9IHRydWUpIHtcbiAgICBjb25zdCB2YXJpYWJsZXMgPSBbXTtcblxuICAgIHJldHVybiB2YXJpYWJsZXM7XG4gIH1cblxuICBhZGRQcm9jZWR1cmUocHJvY2VkdXJlKSB7XG4gICAgY29uc3QgcHJvY2VkdXJlU3RyaW5nID0gcHJvY2VkdXJlLmdldFN0cmluZygpO1xuXG4gICAgdGhpcy5wcm9jZWR1cmVzLnB1c2gocHJvY2VkdXJlKTtcblxuICAgIGNvbnN0IGZpbGVQYXRoID0gdGhpcy5nZXRGaWxlUGF0aCgpO1xuXG4gICAgdGhpcy5kZWJ1ZyhgQWRkZWQgdGhlICcke3Byb2NlZHVyZVN0cmluZ30nIGZ1bmN0aW9uIHRvIHRoZSAnJHtmaWxlUGF0aH0nIGZpbGUgY29udGV4dC5gKTtcbiAgfVxuXG4gIGZpbmRQcm9jZWR1cmVCeVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSkge1xuICAgIGNvbnN0IHByb2NlZHVyZXMgPSB0aGlzLmdldFByb2NlZHVyZXMoKSxcbiAgICAgICAgICBwcm9jZWR1cmUgPSBwcm9jZWR1cmVzLmZpbmQoKHByb2NlZHVyZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJvY2VkdXJlQ29tcGFyZXNUb1Byb2NlZHVyZU5hbWUgPSBwcm9jZWR1cmUuY29tcGFyZVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSk7XG5cbiAgICAgICAgICAgIGlmIChwcm9jZWR1cmVDb21wYXJlc1RvUHJvY2VkdXJlTmFtZSkge1xuICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIHByb2NlZHVyZTtcbiAgfVxuXG4gIGlzUHJvY2VkdXJlUHJlc2VudEJ5UHJvY2VkdXJlTmFtZShwcm9jZWR1cmVOYW1lKSB7XG4gICAgY29uc3QgcHJvY2VkdXJlID0gdGhpcy5maW5kUHJvY2VkdXJlQnlQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpLFxuICAgICAgICAgIHByb2NlZHVyZVByZXNlbnQgPSAocHJvY2VkdXJlICE9PSBudWxsKTtcblxuICAgIHJldHVybiBwcm9jZWR1cmVQcmVzZW50O1xuICB9XG5cbiAgY2xlYXIoKSB7XG4gICAgdGhpcy5wcm9jZWR1cmVzID0gW107XG4gIH1cblxuICBjb21wbGV0ZSgpIHtcbiAgICAvLy9cbiAgfVxuXG4gIGluaXRpYWxpc2UoKSB7XG4gICAgY29uc3QganNvbiA9IHRoaXMuZ2V0SlNPTigpO1xuXG4gICAgaWYgKGpzb24gPT09IG51bGwpIHtcbiAgICAgIHN1cGVyLmluaXRpYWxpc2UoKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGZpbGVDb250ZXh0ID0gdGhpczsgLy8vXG5cbiAgICB0aGlzLnByb2NlZHVyZXMgPSBwcm9jZWR1cmVzRnJvbUpTT04oanNvbiwgZmlsZUNvbnRleHQpO1xuICB9XG5cbiAgYXN5bmMgdmVyaWZ5RmlsZSgpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5nZXROb2RlKCksXG4gICAgICAgICAgY29udGV4dCA9IHRoaXMsIC8vL1xuICAgICAgICAgIGZpbGVOb2RlID0gbm9kZSwgIC8vL1xuICAgICAgICAgIGZpbGVWZXJpZmllcyA9IHZlcmlmeUZpbGUoZmlsZU5vZGUsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGZpbGVWZXJpZmllcztcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCBwcm9jZWR1cmVzSlNPTiA9IHByb2NlZHVyZXNUb1Byb2NlZHVyZXNKU09OKHRoaXMucHJvY2VkdXJlcyksXG4gICAgICAgICAgZmlsZUNvbnRlbnQgPSB0aGlzLmdldEZpbGVDb250ZW50KCksXG4gICAgICAgICAgZmlsZVBhdGggPSB0aGlzLmdldEZpbGVQYXRoKCksXG4gICAgICAgICAgcHJvY2VkdXJlcyA9IHByb2NlZHVyZXNKU09OLCAgLy8vXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIGZpbGVDb250ZW50LFxuICAgICAgICAgICAgZmlsZVBhdGgsXG4gICAgICAgICAgICBwcm9jZWR1cmVzXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIGZyb21GaWxlKGZpbGUsIGNvbnRleHQpIHtcbiAgICBjb25zdCBsZXhlciA9IGZ1cnRsZUxleGVyLCAgLy8vXG4gICAgICAgICAgcGFyc2VyID0gZnVydGxlUGFyc2VyLCAgLy8vXG4gICAgICAgICAgcHJvY2VkdXJlcyA9IFtdLFxuICAgICAgICAgIGZ1cnRsZUZpbGVDb250ZXh0ID0gRmlsZUNvbnRleHQuZnJvbUZpbGUoRnVydGxlRmlsZUNvbnRleHQsIGZpbGUsIGxleGVyLCBwYXJzZXIsIHByb2NlZHVyZXMsIGNvbnRleHQpO1xuXG4gICAgcmV0dXJuIGZ1cnRsZUZpbGVDb250ZXh0O1xuICB9XG5cbiAgc3RhdGljIGZyb21KU09OKGpzb24sIGNvbnRleHQpIHtcbiAgICBjb25zdCBsZXhlciA9IGZ1cnRsZUxleGVyLCAgLy8vXG4gICAgICAgICAgcGFyc2VyID0gZnVydGxlUGFyc2VyLCAgLy8vXG4gICAgICAgICAgcHJvY2VkdXJlcyA9IG51bGwsXG4gICAgICAgICAgZnVydGxlRmlsZUNvbnRleHQgPSBGaWxlQ29udGV4dC5mcm9tSlNPTihGdXJ0bGVGaWxlQ29udGV4dCwganNvbiwgbGV4ZXIsIHBhcnNlciwgcHJvY2VkdXJlcywgY29udGV4dCk7XG5cbiAgICByZXR1cm4gZnVydGxlRmlsZUNvbnRleHQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJGdXJ0bGVGaWxlQ29udGV4dCIsImZ1cnRsZUxleGVyRnJvbU5vdGhpbmciLCJmdXJ0bGVQYXJzZXJGcm9tTm90aGluZyIsImZ1cnRsZVV0aWxpdGllcyIsImZ1cnRsZUxleGVyIiwiRnVydGxlTGV4ZXIiLCJmdXJ0bGVQYXJzZXIiLCJGdXJ0bGVQYXJzZXIiLCJGaWxlQ29udGV4dCIsImNvbnRleHQiLCJmaWxlQ29udGVudCIsImZpbGVQYXRoIiwidG9rZW5zIiwibm9kZSIsImpzb24iLCJsZXhlciIsInBhcnNlciIsInByb2NlZHVyZXMiLCJnZXRMZXhlciIsImdldFBhcnNlciIsImdldExhYmVscyIsImluY2x1ZGVSZWxlYXNlIiwibGFiZWxzIiwiZ2V0VHlwZXMiLCJ0eXBlcyIsImdldFJ1bGVzIiwicnVsZXMiLCJnZXRBeGlvbXMiLCJheGlvbXMiLCJnZXRMZW1tYXMiLCJsZW1tYXMiLCJnZXRUaGVvcmVtcyIsInRoZW9yZW1zIiwiZ2V0TWV0YUxlbW1hcyIsIm1ldGFMZW1tYXMiLCJnZXRHZW5lcmF0b3JzIiwiZ2VuZXJhdG9ycyIsImdldENvbmplY3R1cmVzIiwiY29uamVjdHVyZXMiLCJnZXRDb21iaW5hdG9ycyIsImNvbWJpbmF0b3JzIiwiZ2V0VHlwZVByZWZpeGVzIiwidHlwZVByZWZpeGVzIiwiZ2V0Q29uc3RydWN0b3JzIiwiY29uc3RydWN0b3JzIiwiZ2V0TWV0YXRoZW9yZW1zIiwibWV0YXRoZW9yZW1zIiwiZ2V0TWV0YXZhcmlhYmxlcyIsIm1ldGF2YXJpYWJsZXMiLCJnZXRQcm9jZWR1cmVzIiwiZ2V0VmFyaWFibGVzIiwibmVzdGVkIiwidmFyaWFibGVzIiwiYWRkUHJvY2VkdXJlIiwicHJvY2VkdXJlIiwicHJvY2VkdXJlU3RyaW5nIiwiZ2V0U3RyaW5nIiwicHVzaCIsImdldEZpbGVQYXRoIiwiZGVidWciLCJmaW5kUHJvY2VkdXJlQnlQcm9jZWR1cmVOYW1lIiwicHJvY2VkdXJlTmFtZSIsImZpbmQiLCJwcm9jZWR1cmVDb21wYXJlc1RvUHJvY2VkdXJlTmFtZSIsImNvbXBhcmVQcm9jZWR1cmVOYW1lIiwiaXNQcm9jZWR1cmVQcmVzZW50QnlQcm9jZWR1cmVOYW1lIiwicHJvY2VkdXJlUHJlc2VudCIsImNsZWFyIiwiY29tcGxldGUiLCJpbml0aWFsaXNlIiwiZ2V0SlNPTiIsImZpbGVDb250ZXh0IiwicHJvY2VkdXJlc0Zyb21KU09OIiwidmVyaWZ5RmlsZSIsImdldE5vZGUiLCJmaWxlTm9kZSIsImZpbGVWZXJpZmllcyIsInRvSlNPTiIsInByb2NlZHVyZXNKU09OIiwicHJvY2VkdXJlc1RvUHJvY2VkdXJlc0pTT04iLCJnZXRGaWxlQ29udGVudCIs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
@@ -10,6 +10,7 @@ Object.defineProperty(exports, "default", {
10
10
  });
11
11
  const _occamlanguages = require("occam-languages");
12
12
  const _elements = require("../elements");
13
+ const { breakPointToBreakPointJSON } = _occamlanguages.breakPointUtilities;
13
14
  const _default = (0, _elements.define)(class Label extends _occamlanguages.Element {
14
15
  constructor(context, string, node, breakPoint, name){
15
16
  super(context, string, node, breakPoint);
@@ -22,7 +23,19 @@ const _default = (0, _elements.define)(class Label extends _occamlanguages.Eleme
22
23
  const procedureNameCompares = this.name === procedureName;
23
24
  return procedureNameCompares;
24
25
  }
26
+ toJSON() {
27
+ const string = this.getString();
28
+ let breakPoint;
29
+ breakPoint = this.getBreakPoint();
30
+ const breakPointJSON = breakPointToBreakPointJSON(breakPoint);
31
+ breakPoint = breakPointJSON; ///
32
+ const json = {
33
+ string,
34
+ breakPoint
35
+ };
36
+ return json;
37
+ }
25
38
  static name = "Label";
26
39
  });
27
40
 
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2xhYmVsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50IH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIExhYmVsIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgbmFtZSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICB9XG5cbiAgZ2V0TmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lO1xuICB9XG5cbiAgY29tcGFyZVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSkge1xuICAgIGNvbnN0IHByb2NlZHVyZU5hbWVDb21wYXJlcyA9ICh0aGlzLm5hbWUgPT09IHByb2NlZHVyZU5hbWUpO1xuXG4gICAgcmV0dXJuIHByb2NlZHVyZU5hbWVDb21wYXJlcztcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJMYWJlbFwiO1xufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiTGFiZWwiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwibmFtZSIsImdldE5hbWUiLCJjb21wYXJlUHJvY2VkdXJlTmFtZSIsInByb2NlZHVyZU5hbWUiLCJwcm9jZWR1cmVOYW1lQ29tcGFyZXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQU1BOzs7ZUFBQTs7O2dDQUp3QjswQkFFRDtNQUV2QixXQUFlQSxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLGNBQWNDLHVCQUFPO0lBQy9DLFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsSUFBSSxDQUFFO1FBQ25ELEtBQUssQ0FBQ0osU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxJQUFJLEdBQUdBO0lBQ2Q7SUFFQUMsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDRCxJQUFJO0lBQ2xCO0lBRUFFLHFCQUFxQkMsYUFBYSxFQUFFO1FBQ2xDLE1BQU1DLHdCQUF5QixJQUFJLENBQUNKLElBQUksS0FBS0c7UUFFN0MsT0FBT0M7SUFDVDtJQUVBLE9BQU9KLE9BQU8sUUFBUTtBQUN4QiJ9
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L2xhYmVsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBFbGVtZW50LCBicmVha1BvaW50VXRpbGl0aWVzIH0gZnJvbSBcIm9jY2FtLWxhbmd1YWdlc1wiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcblxuY29uc3QgeyBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiB9ID0gYnJlYWtQb2ludFV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIExhYmVsIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgbmFtZSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICB9XG5cbiAgZ2V0TmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lO1xuICB9XG5cbiAgY29tcGFyZVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSkge1xuICAgIGNvbnN0IHByb2NlZHVyZU5hbWVDb21wYXJlcyA9ICh0aGlzLm5hbWUgPT09IHByb2NlZHVyZU5hbWUpO1xuXG4gICAgcmV0dXJuIHByb2NlZHVyZU5hbWVDb21wYXJlcztcbiAgfVxuXG4gIHRvSlNPTigpIHtcbiAgICBjb25zdCBzdHJpbmcgPSB0aGlzLmdldFN0cmluZygpO1xuXG4gICAgbGV0IGJyZWFrUG9pbnQ7XG5cbiAgICBicmVha1BvaW50ID0gdGhpcy5nZXRCcmVha1BvaW50KCk7XG5cbiAgICBjb25zdCBicmVha1BvaW50SlNPTiA9IGJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OKGJyZWFrUG9pbnQpO1xuXG4gICAgYnJlYWtQb2ludCA9IGJyZWFrUG9pbnRKU09OOyAgLy8vXG5cbiAgICBjb25zdCBqc29uID0ge1xuICAgICAgc3RyaW5nLFxuICAgICAgYnJlYWtQb2ludFxuICAgIH07XG5cbiAgICByZXR1cm4ganNvbjtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJMYWJlbFwiO1xufSk7XG4iXSwibmFtZXMiOlsiYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04iLCJicmVha1BvaW50VXRpbGl0aWVzIiwiZGVmaW5lIiwiTGFiZWwiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwibmFtZSIsImdldE5hbWUiLCJjb21wYXJlUHJvY2VkdXJlTmFtZSIsInByb2NlZHVyZU5hbWUiLCJwcm9jZWR1cmVOYW1lQ29tcGFyZXMiLCJ0b0pTT04iLCJnZXRTdHJpbmciLCJnZXRCcmVha1BvaW50IiwiYnJlYWtQb2ludEpTT04iLCJqc29uIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFRQTs7O2VBQUE7OztnQ0FONkM7MEJBRXRCO0FBRXZCLE1BQU0sRUFBRUEsMEJBQTBCLEVBQUUsR0FBR0MsbUNBQW1CO01BRTFELFdBQWVDLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsY0FBY0MsdUJBQU87SUFDL0MsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxJQUFJLENBQUU7UUFDbkQsS0FBSyxDQUFDSixTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLElBQUksR0FBR0E7SUFDZDtJQUVBQyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUNELElBQUk7SUFDbEI7SUFFQUUscUJBQXFCQyxhQUFhLEVBQUU7UUFDbEMsTUFBTUMsd0JBQXlCLElBQUksQ0FBQ0osSUFBSSxLQUFLRztRQUU3QyxPQUFPQztJQUNUO0lBRUFDLFNBQVM7UUFDUCxNQUFNUixTQUFTLElBQUksQ0FBQ1MsU0FBUztRQUU3QixJQUFJUDtRQUVKQSxhQUFhLElBQUksQ0FBQ1EsYUFBYTtRQUUvQixNQUFNQyxpQkFBaUJqQiwyQkFBMkJRO1FBRWxEQSxhQUFhUyxnQkFBaUIsR0FBRztRQUVqQyxNQUFNQyxPQUFPO1lBQ1haO1lBQ0FFO1FBQ0Y7UUFFQSxPQUFPVTtJQUNUO0lBRUEsT0FBT1QsT0FBTyxRQUFRO0FBQ3hCIn0=
@@ -16,6 +16,7 @@ function _interop_require_default(obj) {
16
16
  default: obj
17
17
  };
18
18
  }
19
+ const { breakPointToBreakPointJSON } = _occamlanguages.breakPointUtilities;
19
20
  const _default = (0, _elements.define)(class Parameters extends _occamlanguages.Element {
20
21
  constructor(context, string, node, breakPoint, array){
21
22
  super(context, string, node, breakPoint);
@@ -51,7 +52,19 @@ const _default = (0, _elements.define)(class Parameters extends _occamlanguages.
51
52
  });
52
53
  context.debug(`...compared the '${valuesString}' values against the '${parametersString}' parameters.`);
53
54
  }
55
+ toJSON() {
56
+ const string = this.getString();
57
+ let breakPoint;
58
+ breakPoint = this.getBreakPoint();
59
+ const breakPointJSON = breakPointToBreakPointJSON(breakPoint);
60
+ breakPoint = breakPointJSON; ///
61
+ const json = {
62
+ string,
63
+ breakPoint
64
+ };
65
+ return json;
66
+ }
54
67
  static name = "Parameters";
55
68
  });
56
69
 
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3BhcmFtZXRlcnMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFBhcmFtZXRlcnMgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBhcnJheSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLmFycmF5ID0gYXJyYXk7XG4gIH1cblxuICBnZXRBcnJheSgpIHtcbiAgICByZXR1cm4gdGhpcy5hcnJheTtcbiAgfVxuXG4gIGdldExlbmd0aCgpIHtcbiAgICBjb25zdCBsZW5ndGggPSB0aGlzLmFycmF5Lmxlbmd0aDtcblxuICAgIHJldHVybiBsZW5ndGg7XG4gIH1cblxuICBnZXRQYXJhbWV0ZXIoaW5kZXgpIHtcbiAgICBjb25zdCBwYXJhbWV0ZXIgPSB0aGlzLmFycmF5W2luZGV4XSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIHBhcmFtZXRlcjtcbiAgfVxuXG4gIGZvckVhY2hQYXJhbWV0ZXIoY2FsbGJhY2spIHsgdGhpcy5hcnJheS5mb3JFYWNoKGNhbGxiYWNrKTsgfVxuXG4gIGNvbXBhcmVWYWx1ZXModmFsdWVzLCBjb250ZXh0KSB7XG4gICAgY29uc3QgdmFsdWVzU3RyaW5nID0gdmFsdWVzLmdldFN0cmluZygpLFxuICAgICAgICAgIHBhcmFtZXRlcnNTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYENvbXBhcmluZyB0aGUgJyR7dmFsdWVzU3RyaW5nfScgdmFsdWVzIGFnYWluc3QgdGhlICcke3BhcmFtZXRlcnNTdHJpbmd9JyBwYXJhbWV0ZXJzLi4uYCk7XG5cbiAgICBjb25zdCB2YWx1ZXNMZW5ndGggPSB2YWx1ZXMuZ2V0TGVuZ3RoKCksXG4gICAgICAgICAgcGFyYW1ldGVyc0xlbmd0aCA9IHRoaXMuZ2V0TGVuZ3RoKCk7XG5cbiAgICBpZiAodmFsdWVzTGVuZ3RoICE9PSBwYXJhbWV0ZXJzTGVuZ3RoKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSAnJHt2YWx1ZXNTdHJpbmd9JyBleHByZXNzaW9ucyBhbmQgJyR7cGFyYW1ldGVyc1N0cmluZ30nIHBhcmFtZXRlcnMgYXJlIG5vdCBvZiB0aGUgc2FtZSBsZW5ndGguYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIHRoaXMuZm9yRWFjaFBhcmFtZXRlcigocGFyYW1ldGVyLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKHBhcmFtZXRlciAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHZhbHVlcy5nZXRWYWx1ZShpbmRleCk7XG5cbiAgICAgICAgcGFyYW1ldGVyLmNvbXBhcmVWYWx1ZSh2YWx1ZSwgY29udGV4dCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5jb21wYXJlZCB0aGUgJyR7dmFsdWVzU3RyaW5nfScgdmFsdWVzIGFnYWluc3QgdGhlICcke3BhcmFtZXRlcnNTdHJpbmd9JyBwYXJhbWV0ZXJzLmApO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlBhcmFtZXRlcnNcIjtcbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIlBhcmFtZXRlcnMiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwiYXJyYXkiLCJnZXRBcnJheSIsImdldExlbmd0aCIsImxlbmd0aCIsImdldFBhcmFtZXRlciIsImluZGV4IiwicGFyYW1ldGVyIiwiZm9yRWFjaFBhcmFtZXRlciIsImNhbGxiYWNrIiwiZm9yRWFjaCIsImNvbXBhcmVWYWx1ZXMiLCJ2YWx1ZXMiLCJ2YWx1ZXNTdHJpbmciLCJnZXRTdHJpbmciLCJwYXJhbWV0ZXJzU3RyaW5nIiwidHJhY2UiLCJ2YWx1ZXNMZW5ndGgiLCJwYXJhbWV0ZXJzTGVuZ3RoIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwidmFsdWUiLCJnZXRWYWx1ZSIsImNvbXBhcmVWYWx1ZSIsImRlYnVnIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBUUE7OztlQUFBOzs7Z0NBTndCO2tFQUVGOzBCQUVDOzs7Ozs7TUFFdkIsV0FBZUEsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxtQkFBbUJDLHVCQUFPO0lBQ3BELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsS0FBSyxDQUFFO1FBQ3BELEtBQUssQ0FBQ0osU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxLQUFLLEdBQUdBO0lBQ2Y7SUFFQUMsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDRCxLQUFLO0lBQ25CO0lBRUFFLFlBQVk7UUFDVixNQUFNQyxTQUFTLElBQUksQ0FBQ0gsS0FBSyxDQUFDRyxNQUFNO1FBRWhDLE9BQU9BO0lBQ1Q7SUFFQUMsYUFBYUMsS0FBSyxFQUFFO1FBQ2xCLE1BQU1DLFlBQVksSUFBSSxDQUFDTixLQUFLLENBQUNLLE1BQU0sSUFBSTtRQUV2QyxPQUFPQztJQUNUO0lBRUFDLGlCQUFpQkMsUUFBUSxFQUFFO1FBQUUsSUFBSSxDQUFDUixLQUFLLENBQUNTLE9BQU8sQ0FBQ0Q7SUFBVztJQUUzREUsY0FBY0MsTUFBTSxFQUFFZixPQUFPLEVBQUU7UUFDN0IsTUFBTWdCLGVBQWVELE9BQU9FLFNBQVMsSUFDL0JDLG1CQUFtQixJQUFJLENBQUNELFNBQVMsSUFBSSxHQUFHO1FBRTlDakIsUUFBUW1CLEtBQUssQ0FBQyxDQUFDLGVBQWUsRUFBRUgsYUFBYSxzQkFBc0IsRUFBRUUsaUJBQWlCLGVBQWUsQ0FBQztRQUV0RyxNQUFNRSxlQUFlTCxPQUFPVCxTQUFTLElBQy9CZSxtQkFBbUIsSUFBSSxDQUFDZixTQUFTO1FBRXZDLElBQUljLGlCQUFpQkMsa0JBQWtCO1lBQ3JDLE1BQU1DLFVBQVUsQ0FBQyxLQUFLLEVBQUVOLGFBQWEsbUJBQW1CLEVBQUVFLGlCQUFpQix3Q0FBd0MsQ0FBQyxFQUM5R0ssWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSDtZQUV4QyxNQUFNQztRQUNSO1FBRUEsSUFBSSxDQUFDWixnQkFBZ0IsQ0FBQyxDQUFDRCxXQUFXRDtZQUNoQyxJQUFJQyxjQUFjLE1BQU07Z0JBQ3RCLE1BQU1nQixRQUFRWCxPQUFPWSxRQUFRLENBQUNsQjtnQkFFOUJDLFVBQVVrQixZQUFZLENBQUNGLE9BQU8xQjtZQUNoQztRQUNGO1FBRUFBLFFBQVE2QixLQUFLLENBQUMsQ0FBQyxpQkFBaUIsRUFBRWIsYUFBYSxzQkFBc0IsRUFBRUUsaUJBQWlCLGFBQWEsQ0FBQztJQUN4RztJQUVBLE9BQU9ZLE9BQU8sYUFBYTtBQUM3QiJ9
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3BhcmFtZXRlcnMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQsIGJyZWFrUG9pbnRVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcblxuY29uc3QgeyBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiB9ID0gYnJlYWtQb2ludFV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFBhcmFtZXRlcnMgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBhcnJheSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLmFycmF5ID0gYXJyYXk7XG4gIH1cblxuICBnZXRBcnJheSgpIHtcbiAgICByZXR1cm4gdGhpcy5hcnJheTtcbiAgfVxuXG4gIGdldExlbmd0aCgpIHtcbiAgICBjb25zdCBsZW5ndGggPSB0aGlzLmFycmF5Lmxlbmd0aDtcblxuICAgIHJldHVybiBsZW5ndGg7XG4gIH1cblxuICBnZXRQYXJhbWV0ZXIoaW5kZXgpIHtcbiAgICBjb25zdCBwYXJhbWV0ZXIgPSB0aGlzLmFycmF5W2luZGV4XSB8fCBudWxsO1xuXG4gICAgcmV0dXJuIHBhcmFtZXRlcjtcbiAgfVxuXG4gIGZvckVhY2hQYXJhbWV0ZXIoY2FsbGJhY2spIHsgdGhpcy5hcnJheS5mb3JFYWNoKGNhbGxiYWNrKTsgfVxuXG4gIGNvbXBhcmVWYWx1ZXModmFsdWVzLCBjb250ZXh0KSB7XG4gICAgY29uc3QgdmFsdWVzU3RyaW5nID0gdmFsdWVzLmdldFN0cmluZygpLFxuICAgICAgICAgIHBhcmFtZXRlcnNTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYENvbXBhcmluZyB0aGUgJyR7dmFsdWVzU3RyaW5nfScgdmFsdWVzIGFnYWluc3QgdGhlICcke3BhcmFtZXRlcnNTdHJpbmd9JyBwYXJhbWV0ZXJzLi4uYCk7XG5cbiAgICBjb25zdCB2YWx1ZXNMZW5ndGggPSB2YWx1ZXMuZ2V0TGVuZ3RoKCksXG4gICAgICAgICAgcGFyYW1ldGVyc0xlbmd0aCA9IHRoaXMuZ2V0TGVuZ3RoKCk7XG5cbiAgICBpZiAodmFsdWVzTGVuZ3RoICE9PSBwYXJhbWV0ZXJzTGVuZ3RoKSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYFRoZSAnJHt2YWx1ZXNTdHJpbmd9JyBleHByZXNzaW9ucyBhbmQgJyR7cGFyYW1ldGVyc1N0cmluZ30nIHBhcmFtZXRlcnMgYXJlIG5vdCBvZiB0aGUgc2FtZSBsZW5ndGguYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIHRoaXMuZm9yRWFjaFBhcmFtZXRlcigocGFyYW1ldGVyLCBpbmRleCkgPT4ge1xuICAgICAgaWYgKHBhcmFtZXRlciAhPT0gbnVsbCkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHZhbHVlcy5nZXRWYWx1ZShpbmRleCk7XG5cbiAgICAgICAgcGFyYW1ldGVyLmNvbXBhcmVWYWx1ZSh2YWx1ZSwgY29udGV4dCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5jb21wYXJlZCB0aGUgJyR7dmFsdWVzU3RyaW5nfScgdmFsdWVzIGFnYWluc3QgdGhlICcke3BhcmFtZXRlcnNTdHJpbmd9JyBwYXJhbWV0ZXJzLmApO1xuICB9XG5cbiAgdG9KU09OKCkge1xuICAgIGNvbnN0IHN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICBsZXQgYnJlYWtQb2ludDtcblxuICAgIGJyZWFrUG9pbnQgPSB0aGlzLmdldEJyZWFrUG9pbnQoKTtcblxuICAgIGNvbnN0IGJyZWFrUG9pbnRKU09OID0gYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04oYnJlYWtQb2ludCk7XG5cbiAgICBicmVha1BvaW50ID0gYnJlYWtQb2ludEpTT047ICAvLy9cblxuICAgIGNvbnN0IGpzb24gPSB7XG4gICAgICBzdHJpbmcsXG4gICAgICBicmVha1BvaW50XG4gICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlBhcmFtZXRlcnNcIjtcbn0pO1xuIl0sIm5hbWVzIjpbImJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OIiwiYnJlYWtQb2ludFV0aWxpdGllcyIsImRlZmluZSIsIlBhcmFtZXRlcnMiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwiYXJyYXkiLCJnZXRBcnJheSIsImdldExlbmd0aCIsImxlbmd0aCIsImdldFBhcmFtZXRlciIsImluZGV4IiwicGFyYW1ldGVyIiwiZm9yRWFjaFBhcmFtZXRlciIsImNhbGxiYWNrIiwiZm9yRWFjaCIsImNvbXBhcmVWYWx1ZXMiLCJ2YWx1ZXMiLCJ2YWx1ZXNTdHJpbmciLCJnZXRTdHJpbmciLCJwYXJhbWV0ZXJzU3RyaW5nIiwidHJhY2UiLCJ2YWx1ZXNMZW5ndGgiLCJwYXJhbWV0ZXJzTGVuZ3RoIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwidmFsdWUiLCJnZXRWYWx1ZSIsImNvbXBhcmVWYWx1ZSIsImRlYnVnIiwidG9KU09OIiwiZ2V0QnJlYWtQb2ludCIsImJyZWFrUG9pbnRKU09OIiwianNvbiIsIm5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVVBOzs7ZUFBQTs7O2dDQVI2QztrRUFFdkI7MEJBRUM7Ozs7OztBQUV2QixNQUFNLEVBQUVBLDBCQUEwQixFQUFFLEdBQUdDLG1DQUFtQjtNQUUxRCxXQUFlQyxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLG1CQUFtQkMsdUJBQU87SUFDcEQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxLQUFLLENBQUU7UUFDcEQsS0FBSyxDQUFDSixTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLEtBQUssR0FBR0E7SUFDZjtJQUVBQyxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUNELEtBQUs7SUFDbkI7SUFFQUUsWUFBWTtRQUNWLE1BQU1DLFNBQVMsSUFBSSxDQUFDSCxLQUFLLENBQUNHLE1BQU07UUFFaEMsT0FBT0E7SUFDVDtJQUVBQyxhQUFhQyxLQUFLLEVBQUU7UUFDbEIsTUFBTUMsWUFBWSxJQUFJLENBQUNOLEtBQUssQ0FBQ0ssTUFBTSxJQUFJO1FBRXZDLE9BQU9DO0lBQ1Q7SUFFQUMsaUJBQWlCQyxRQUFRLEVBQUU7UUFBRSxJQUFJLENBQUNSLEtBQUssQ0FBQ1MsT0FBTyxDQUFDRDtJQUFXO0lBRTNERSxjQUFjQyxNQUFNLEVBQUVmLE9BQU8sRUFBRTtRQUM3QixNQUFNZ0IsZUFBZUQsT0FBT0UsU0FBUyxJQUMvQkMsbUJBQW1CLElBQUksQ0FBQ0QsU0FBUyxJQUFJLEdBQUc7UUFFOUNqQixRQUFRbUIsS0FBSyxDQUFDLENBQUMsZUFBZSxFQUFFSCxhQUFhLHNCQUFzQixFQUFFRSxpQkFBaUIsZUFBZSxDQUFDO1FBRXRHLE1BQU1FLGVBQWVMLE9BQU9ULFNBQVMsSUFDL0JlLG1CQUFtQixJQUFJLENBQUNmLFNBQVM7UUFFdkMsSUFBSWMsaUJBQWlCQyxrQkFBa0I7WUFDckMsTUFBTUMsVUFBVSxDQUFDLEtBQUssRUFBRU4sYUFBYSxtQkFBbUIsRUFBRUUsaUJBQWlCLHdDQUF3QyxDQUFDLEVBQzlHSyxZQUFZQyxrQkFBUyxDQUFDQyxXQUFXLENBQUNIO1lBRXhDLE1BQU1DO1FBQ1I7UUFFQSxJQUFJLENBQUNaLGdCQUFnQixDQUFDLENBQUNELFdBQVdEO1lBQ2hDLElBQUlDLGNBQWMsTUFBTTtnQkFDdEIsTUFBTWdCLFFBQVFYLE9BQU9ZLFFBQVEsQ0FBQ2xCO2dCQUU5QkMsVUFBVWtCLFlBQVksQ0FBQ0YsT0FBTzFCO1lBQ2hDO1FBQ0Y7UUFFQUEsUUFBUTZCLEtBQUssQ0FBQyxDQUFDLGlCQUFpQixFQUFFYixhQUFhLHNCQUFzQixFQUFFRSxpQkFBaUIsYUFBYSxDQUFDO0lBQ3hHO0lBRUFZLFNBQVM7UUFDUCxNQUFNN0IsU0FBUyxJQUFJLENBQUNnQixTQUFTO1FBRTdCLElBQUlkO1FBRUpBLGFBQWEsSUFBSSxDQUFDNEIsYUFBYTtRQUUvQixNQUFNQyxpQkFBaUJyQywyQkFBMkJRO1FBRWxEQSxhQUFhNkIsZ0JBQWlCLEdBQUc7UUFFakMsTUFBTUMsT0FBTztZQUNYaEM7WUFDQUU7UUFDRjtRQUVBLE9BQU84QjtJQUNUO0lBRUEsT0FBT0MsT0FBTyxhQUFhO0FBQzdCIn0=
@@ -13,11 +13,13 @@ const _exception = /*#__PURE__*/ _interop_require_default(require("../exception"
13
13
  const _elements = require("../elements");
14
14
  const _values = require("../utilities/values");
15
15
  const _parameters = require("../utilities/parameters");
16
+ const _json = require("../utilities/json");
16
17
  function _interop_require_default(obj) {
17
18
  return obj && obj.__esModule ? obj : {
18
19
  default: obj
19
20
  };
20
21
  }
22
+ const { breakPointFromJSON, breakPointToBreakPointJSON } = _occamlanguages.breakPointUtilities;
21
23
  const _default = (0, _elements.define)(class Procedure extends _occamlanguages.Element {
22
24
  constructor(context, string, node, breakPoint, type, label, parameters, returnBlock){
23
25
  super(context, string, node, breakPoint);
@@ -73,7 +75,30 @@ const _default = (0, _elements.define)(class Procedure extends _occamlanguages.E
73
75
  context.debug(`...called the '${procedureString}' function nominally.`);
74
76
  return term;
75
77
  }
78
+ toJSON() {
79
+ const typeJSON = (0, _json.typeToTypeJSON)(this.type), labelJSON = (0, _json.labelToLabelJSON)(this.label), parametersJSON = (0, _json.parametersToParametersJSON)(this.parameters), string = this.getString();
80
+ let breakPoint;
81
+ breakPoint = this.getBreakPoint();
82
+ const breakPointJSON = breakPointToBreakPointJSON(breakPoint);
83
+ breakPoint = breakPointJSON; ///
84
+ const type = typeJSON, label = labelJSON, parameters = parametersJSON, json = {
85
+ string,
86
+ breakPoint,
87
+ type,
88
+ label,
89
+ parameters
90
+ };
91
+ return json;
92
+ }
76
93
  static name = "Procedure";
94
+ static fromJSON(json, context) {
95
+ return instantiate((context)=>{
96
+ const { string } = json, procedureNode = instantiatePrpcedure(string, context), node = procedureNode, breakPoint = breakPointFromJSON(json), frame = frameFromPrpcedureNode(procedureNode, context), goal = goalFromPrpcedureNode(procedureNode, context);
97
+ context = null;
98
+ const procedure = new Prpcedure(context, string, node, breakPoint, frame, goal);
99
+ return procedure;
100
+ }, context);
101
+ }
77
102
  });
78
103
 
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3Byb2NlZHVyZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgdmFsdWVzRnJvbU5vbWluYWxWYWx1ZXMgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3ZhbHVlc1wiO1xuaW1wb3J0IHsgdmFyaWFibGVzRnJvbVZhbHVlc0FuZFBhcmFtZXRlcnMgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3BhcmFtZXRlcnNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFByb2NlZHVyZSBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHR5cGUsIGxhYmVsLCBwYXJhbWV0ZXJzLCByZXR1cm5CbG9jaykge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMubGFiZWwgPSBsYWJlbDtcbiAgICB0aGlzLnBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzO1xuICAgIHRoaXMucmV0dXJuQmxvY2sgPSByZXR1cm5CbG9jaztcbiAgfVxuXG4gIGdldFR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudHlwZTtcbiAgfVxuXG4gIGdldExhYmVsKCkge1xuICAgIHJldHVybiB0aGlzLmxhYmVsO1xuICB9XG5cbiAgZ2V0UGFyYW1ldGVycygpIHtcbiAgICByZXR1cm4gdGhpcy5wYXJhbWV0ZXJzO1xuICB9XG5cbiAgZ2V0UmV0dXJuQmxvY2soKSB7XG4gICAgcmV0dXJuIHRoaXMucmV0dXJuQmxvY2s7XG4gIH1cblxuICBnZXROYW1lKCkgeyByZXR1cm4gdGhpcy5sYWJlbC5nZXROYW1lKCk7IH1cblxuICBpc0Jvb2xlYW4oKSB7XG4gICAgY29uc3QgdHlwZSA9IHRoaXMuZ2V0VHlwZSgpLFxuICAgICAgICAgIGJvb2xlYW5UeXBlID0gdHlwZS5pc0Jvb2xlYW5UeXBlKCksXG4gICAgICAgICAgYm9vbGVhbiA9IGJvb2xlYW5UeXBlOyAgLy8vXG5cbiAgICByZXR1cm4gYm9vbGVhbjtcbiAgfVxuXG4gIGdldFJldHVyblN0YXRlbWVudCgpIHsgcmV0dXJuIHRoaXMucmV0dXJuQmxvY2suZ2V0UmV0dXJuU3RhdGVtZW50KCk7IH1cblxuICBjb21wYXJlUHJvY2VkdXJlTmFtZShwcm9jZWR1cmVOYW1lKSB7IHJldHVybiB0aGlzLmxhYmVsLmNvbXBhcmVQcm9jZWR1cmVOYW1lKHByb2NlZHVyZU5hbWUpOyB9XG5cbiAgYXN5bmMgY2FsbCh2YWx1ZXMsIGNvbnRleHQpIHtcbiAgICBhd2FpdCB0aGlzLmJyZWFrKGNvbnRleHQpO1xuXG4gICAgY29uc3QgcHJvY2VkdXJlU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgQ2FsbGluZyB0aGUgJyR7cHJvY2VkdXJlU3RyaW5nfScgcHJvY2VkdXJlLi4uYCk7XG5cbiAgICB0aGlzLnBhcmFtZXRlcnMuY29tcGFyZVZhbHVlcyh2YWx1ZXMsIGNvbnRleHQpO1xuXG4gICAgY29uc3QgdmFyaWFibGVzID0gdmFyaWFibGVzRnJvbVZhbHVlc0FuZFBhcmFtZXRlcnModmFsdWVzLCB0aGlzLnBhcmFtZXRlcnMsIGNvbnRleHQpLFxuICAgICAgICAgIHZhbHVlID0gYXdhaXQgdGhpcy5yZXR1cm5CbG9jay5ldmFsdWF0ZSh2YXJpYWJsZXMsIGNvbnRleHQpLFxuICAgICAgICAgIHZhbHVlVHlwZSA9IHZhbHVlLmdldFR5cGUoKSxcbiAgICAgICAgICB0eXBlRXF1YWxUb1ZhbHVlVHlwZSA9IHRoaXMudHlwZS5pc0VxdWFsVG8odmFsdWVUeXBlKTtcblxuICAgIGlmICghdHlwZUVxdWFsVG9WYWx1ZVR5cGUpIHtcbiAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICB0eXBlU3RyaW5nID0gdGhpcy50eXBlLmdldFN0cmluZygpLFxuICAgICAgICAgICAgbWVzc2FnZSA9IGBUaGUgJyR7dmFsdWVTdHJpbmd9JyB2YWx1ZSdzICcke3R5cGVTdHJpbmd9JyB0eXBlIGlzIG5vdCBlcXVhbCB0byB0aGUgJyR7cHJvY2VkdXJlU3RyaW5nfScgcHJvY2VkdXJlJ3MgJyR7dHlwZVN0cmluZ30nIHR5cGUuYCxcbiAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgIH1cblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmNhbGxlZCB0aGUgJyR7cHJvY2VkdXJlU3RyaW5nfScgcHJvY2VkdXJlLmApO1xuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgYXN5bmMgY2FsbE5vbWluYWxseShub21pbmFsVmFsdWVzKSB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZ2V0Q29udGV4dCgpO1xuXG4gICAgYXdhaXQgdGhpcy5icmVhayhjb250ZXh0KTtcblxuICAgIGNvbnN0IHByb2NlZHVyZVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYENhbGxpbmcgdGhlICcke3Byb2NlZHVyZVN0cmluZ30nIGZ1bmN0aW9uIG5vbWluYWxseS4uLmApO1xuXG4gICAgY29uc3QgdmFsdWVzID0gdmFsdWVzRnJvbU5vbWluYWxWYWx1ZXMobm9taW5hbFZhbHVlcywgY29udGV4dCksXG4gICAgICAgICAgdGVybSA9IGF3YWl0IHRoaXMuY2FsbCh2YWx1ZXMsIGNvbnRleHQpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uY2FsbGVkIHRoZSAnJHtwcm9jZWR1cmVTdHJpbmd9JyBmdW5jdGlvbiBub21pbmFsbHkuYCk7XG5cbiAgICByZXR1cm4gdGVybTtcbiAgfVxuXG4gIHN0YXRpYyBuYW1lID0gXCJQcm9jZWR1cmVcIjtcbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIlByb2NlZHVyZSIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ0eXBlIiwibGFiZWwiLCJwYXJhbWV0ZXJzIiwicmV0dXJuQmxvY2siLCJnZXRUeXBlIiwiZ2V0TGFiZWwiLCJnZXRQYXJhbWV0ZXJzIiwiZ2V0UmV0dXJuQmxvY2siLCJnZXROYW1lIiwiaXNCb29sZWFuIiwiYm9vbGVhblR5cGUiLCJpc0Jvb2xlYW5UeXBlIiwiYm9vbGVhbiIsImdldFJldHVyblN0YXRlbWVudCIsImNvbXBhcmVQcm9jZWR1cmVOYW1lIiwicHJvY2VkdXJlTmFtZSIsImNhbGwiLCJ2YWx1ZXMiLCJicmVhayIsInByb2NlZHVyZVN0cmluZyIsImdldFN0cmluZyIsInRyYWNlIiwiY29tcGFyZVZhbHVlcyIsInZhcmlhYmxlcyIsInZhcmlhYmxlc0Zyb21WYWx1ZXNBbmRQYXJhbWV0ZXJzIiwidmFsdWUiLCJldmFsdWF0ZSIsInZhbHVlVHlwZSIsInR5cGVFcXVhbFRvVmFsdWVUeXBlIiwiaXNFcXVhbFRvIiwidmFsdWVTdHJpbmciLCJ0eXBlU3RyaW5nIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwiZGVidWciLCJjYWxsTm9taW5hbGx5Iiwibm9taW5hbFZhbHVlcyIsImdldENvbnRleHQiLCJ2YWx1ZXNGcm9tTm9taW5hbFZhbHVlcyIsInRlcm0iLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFVQTs7O2VBQUE7OztnQ0FSd0I7a0VBRUY7MEJBRUM7d0JBQ2lCOzRCQUNTOzs7Ozs7TUFFakQsV0FBZUEsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxrQkFBa0JDLHVCQUFPO0lBQ25ELFlBQVlDLE9BQU8sRUFB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
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3Byb2NlZHVyZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCwgYnJlYWtQb2ludFV0aWxpdGllcyB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgdmFsdWVzRnJvbU5vbWluYWxWYWx1ZXMgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3ZhbHVlc1wiO1xuaW1wb3J0IHsgdmFyaWFibGVzRnJvbVZhbHVlc0FuZFBhcmFtZXRlcnMgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3BhcmFtZXRlcnNcIjtcbmltcG9ydCB7IHR5cGVUb1R5cGVKU09OLCBsYWJlbFRvTGFiZWxKU09OLCBwYXJhbWV0ZXJzVG9QYXJhbWV0ZXJzSlNPTiB9IGZyb20gXCIuLi91dGlsaXRpZXMvanNvblwiO1xuXG5jb25zdCB7IGJyZWFrUG9pbnRGcm9tSlNPTiwgYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04gfSA9IGJyZWFrUG9pbnRVdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGRlZmluZShjbGFzcyBQcm9jZWR1cmUgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB0eXBlLCBsYWJlbCwgcGFyYW1ldGVycywgcmV0dXJuQmxvY2spIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgICB0aGlzLmxhYmVsID0gbGFiZWw7XG4gICAgdGhpcy5wYXJhbWV0ZXJzID0gcGFyYW1ldGVycztcbiAgICB0aGlzLnJldHVybkJsb2NrID0gcmV0dXJuQmxvY2s7XG4gIH1cblxuICBnZXRUeXBlKCkge1xuICAgIHJldHVybiB0aGlzLnR5cGU7XG4gIH1cblxuICBnZXRMYWJlbCgpIHtcbiAgICByZXR1cm4gdGhpcy5sYWJlbDtcbiAgfVxuXG4gIGdldFBhcmFtZXRlcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFyYW1ldGVycztcbiAgfVxuXG4gIGdldFJldHVybkJsb2NrKCkge1xuICAgIHJldHVybiB0aGlzLnJldHVybkJsb2NrO1xuICB9XG5cbiAgZ2V0TmFtZSgpIHsgcmV0dXJuIHRoaXMubGFiZWwuZ2V0TmFtZSgpOyB9XG5cbiAgaXNCb29sZWFuKCkge1xuICAgIGNvbnN0IHR5cGUgPSB0aGlzLmdldFR5cGUoKSxcbiAgICAgICAgICBib29sZWFuVHlwZSA9IHR5cGUuaXNCb29sZWFuVHlwZSgpLFxuICAgICAgICAgIGJvb2xlYW4gPSBib29sZWFuVHlwZTsgIC8vL1xuXG4gICAgcmV0dXJuIGJvb2xlYW47XG4gIH1cblxuICBnZXRSZXR1cm5TdGF0ZW1lbnQoKSB7IHJldHVybiB0aGlzLnJldHVybkJsb2NrLmdldFJldHVyblN0YXRlbWVudCgpOyB9XG5cbiAgY29tcGFyZVByb2NlZHVyZU5hbWUocHJvY2VkdXJlTmFtZSkgeyByZXR1cm4gdGhpcy5sYWJlbC5jb21wYXJlUHJvY2VkdXJlTmFtZShwcm9jZWR1cmVOYW1lKTsgfVxuXG4gIGFzeW5jIGNhbGwodmFsdWVzLCBjb250ZXh0KSB7XG4gICAgYXdhaXQgdGhpcy5icmVhayhjb250ZXh0KTtcblxuICAgIGNvbnN0IHByb2NlZHVyZVN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYENhbGxpbmcgdGhlICcke3Byb2NlZHVyZVN0cmluZ30nIHByb2NlZHVyZS4uLmApO1xuXG4gICAgdGhpcy5wYXJhbWV0ZXJzLmNvbXBhcmVWYWx1ZXModmFsdWVzLCBjb250ZXh0KTtcblxuICAgIGNvbnN0IHZhcmlhYmxlcyA9IHZhcmlhYmxlc0Zyb21WYWx1ZXNBbmRQYXJhbWV0ZXJzKHZhbHVlcywgdGhpcy5wYXJhbWV0ZXJzLCBjb250ZXh0KSxcbiAgICAgICAgICB2YWx1ZSA9IGF3YWl0IHRoaXMucmV0dXJuQmxvY2suZXZhbHVhdGUodmFyaWFibGVzLCBjb250ZXh0KSxcbiAgICAgICAgICB2YWx1ZVR5cGUgPSB2YWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgdHlwZUVxdWFsVG9WYWx1ZVR5cGUgPSB0aGlzLnR5cGUuaXNFcXVhbFRvKHZhbHVlVHlwZSk7XG5cbiAgICBpZiAoIXR5cGVFcXVhbFRvVmFsdWVUeXBlKSB7XG4gICAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpLFxuICAgICAgICAgICAgdHlwZVN0cmluZyA9IHRoaXMudHlwZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgIG1lc3NhZ2UgPSBgVGhlICcke3ZhbHVlU3RyaW5nfScgdmFsdWUncyAnJHt0eXBlU3RyaW5nfScgdHlwZSBpcyBub3QgZXF1YWwgdG8gdGhlICcke3Byb2NlZHVyZVN0cmluZ30nIHByb2NlZHVyZSdzICcke3R5cGVTdHJpbmd9JyB0eXBlLmAsXG4gICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICB9XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5jYWxsZWQgdGhlICcke3Byb2NlZHVyZVN0cmluZ30nIHByb2NlZHVyZS5gKTtcblxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIGFzeW5jIGNhbGxOb21pbmFsbHkobm9taW5hbFZhbHVlcykge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmdldENvbnRleHQoKTtcblxuICAgIGF3YWl0IHRoaXMuYnJlYWsoY29udGV4dCk7XG5cbiAgICBjb25zdCBwcm9jZWR1cmVTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBDYWxsaW5nIHRoZSAnJHtwcm9jZWR1cmVTdHJpbmd9JyBmdW5jdGlvbiBub21pbmFsbHkuLi5gKTtcblxuICAgIGNvbnN0IHZhbHVlcyA9IHZhbHVlc0Zyb21Ob21pbmFsVmFsdWVzKG5vbWluYWxWYWx1ZXMsIGNvbnRleHQpLFxuICAgICAgICAgIHRlcm0gPSBhd2FpdCB0aGlzLmNhbGwodmFsdWVzLCBjb250ZXh0KTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmNhbGxlZCB0aGUgJyR7cHJvY2VkdXJlU3RyaW5nfScgZnVuY3Rpb24gbm9taW5hbGx5LmApO1xuXG4gICAgcmV0dXJuIHRlcm07XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3QgdHlwZUpTT04gPSB0eXBlVG9UeXBlSlNPTih0aGlzLnR5cGUpLFxuICAgICAgICAgIGxhYmVsSlNPTiA9IGxhYmVsVG9MYWJlbEpTT04odGhpcy5sYWJlbCksXG4gICAgICAgICAgcGFyYW1ldGVyc0pTT04gPSBwYXJhbWV0ZXJzVG9QYXJhbWV0ZXJzSlNPTih0aGlzLnBhcmFtZXRlcnMpLFxuICAgICAgICAgIHN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7XG5cbiAgICBsZXQgYnJlYWtQb2ludDtcblxuICAgIGJyZWFrUG9pbnQgPSB0aGlzLmdldEJyZWFrUG9pbnQoKTtcblxuICAgIGNvbnN0IGJyZWFrUG9pbnRKU09OID0gYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04oYnJlYWtQb2ludCk7XG5cbiAgICBicmVha1BvaW50ID0gYnJlYWtQb2ludEpTT047ICAvLy9cblxuICAgIGNvbnN0IHR5cGUgPSB0eXBlSlNPTiwgIC8vL1xuICAgICAgICAgIGxhYmVsID0gbGFiZWxKU09OLCAgLy8vXG4gICAgICAgICAgcGFyYW1ldGVycyA9IHBhcmFtZXRlcnNKU09OLCAgLy8vXG4gICAgICAgICAganNvbiA9IHtcbiAgICAgICAgICAgIHN0cmluZyxcbiAgICAgICAgICAgIGJyZWFrUG9pbnQsXG4gICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgbGFiZWwsXG4gICAgICAgICAgICBwYXJhbWV0ZXJzXG4gICAgICAgICAgfTtcblxuICAgIHJldHVybiBqc29uO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlByb2NlZHVyZVwiO1xuXG4gIHN0YXRpYyBmcm9tSlNPTihqc29uLCBjb250ZXh0KSB7XG4gICAgcmV0dXJuIGluc3RhbnRpYXRlKChjb250ZXh0KSA9PiB7XG4gICAgICBjb25zdCB7IHN0cmluZyB9ID0ganNvbixcbiAgICAgICAgICAgIHByb2NlZHVyZU5vZGUgPSBpbnN0YW50aWF0ZVBycGNlZHVyZShzdHJpbmcsIGNvbnRleHQpLFxuICAgICAgICAgICAgbm9kZSA9IHByb2NlZHVyZU5vZGUsICAvLy9cbiAgICAgICAgICAgIGJyZWFrUG9pbnQgPSBicmVha1BvaW50RnJvbUpTT04oanNvbiksXG4gICAgICAgICAgICBmcmFtZSA9IGZyYW1lRnJvbVBycGNlZHVyZU5vZGUocHJvY2VkdXJlTm9kZSwgY29udGV4dCksXG4gICAgICAgICAgICBnb2FsID0gZ29hbEZyb21QcnBjZWR1cmVOb2RlKHByb2NlZHVyZU5vZGUsIGNvbnRleHQpO1xuXG4gICAgICBjb250ZXh0ID0gbnVsbDtcblxuICAgICAgY29uc3QgcHJvY2VkdXJlID0gbmV3IFBycGNlZHVyZShjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIGZyYW1lLCBnb2FsKTtcblxuICAgICAgcmV0dXJuIHByb2NlZHVyZTtcbiAgICB9LCBjb250ZXh0KTtcbiAgfVxufSk7XG4iXSwibmFtZXMiOlsiYnJlYWtQb2ludEZyb21KU09OIiwiYnJlYWtQb2ludFRvQnJlYWtQb2ludEpTT04iLCJicmVha1BvaW50VXRpbGl0aWVzIiwiZGVmaW5lIiwiUHJvY2VkdXJlIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInR5cGUiLCJsYWJlbCIsInBhcmFtZXRlcnMiLCJyZXR1cm5CbG9jayIsImdldFR5cGUiLCJnZXRMYWJlbCIsImdldFBhcmFtZXRlcnMiLCJnZXRSZXR1cm5CbG9jayIsImdldE5hbWUiLCJpc0Jvb2xlYW4iLCJib29sZWFuVHlwZSIsImlzQm9vbGVhblR5cGUiLCJib29sZWFuIiwiZ2V0UmV0dXJuU3RhdGVtZW50IiwiY29tcGFyZVByb2NlZHVyZU5hbWUiLCJwcm9jZWR1cmVOYW1lIiwiY2FsbCIsInZhbHVlcyIsImJyZWFrIiwicHJvY2VkdXJlU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJjb21wYXJlVmFsdWVzIiwidmFyaWFibGVzIiwidmFyaWFibGVzRnJvbVZhbHVlc0FuZFBhcmFtZXRlcnMiLCJ2YWx1ZSIsImV2YWx1YXRlIiwidmFsdWVUeXBlIiwidHlwZUVxdWFsVG9WYWx1ZVR5cGUiLCJpc0VxdWFsVG8iLCJ2YWx1ZVN0cmluZyIsInR5cGVTdHJpbmciLCJtZXNzYWdlIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJkZWJ1ZyIsImNhbGxOb21pbmFsbHkiLCJub21pbmFsVmFsdWVzIiwiZ2V0Q29udGV4dCIsInZhbHVlc0Zyb21Ob21pbmFsVmFsdWVzIiwidGVybSIsInRvSlNPTiIsInR5cGVKU09OIiwidHlwZVRvVHlwZUpTT04iLCJsYWJlbEpTT04iLCJsYWJlbFRvTGFiZWxKU09OIiwicGFyYW1ldGVyc0pTT04iLCJwYXJhbWV0ZXJzVG9QYXJhbWV0ZXJzSlNPTiIsImdldEJyZWFrUG9pbnQiLCJicmVha1BvaW50SlNPTiIsImpzb24iLCJuYW1lIiwiZnJvbUpTT04iLCJpbnN0YW50aWF0ZSIsInByb2NlZHVyZU5vZGUiLCJpbnN0YW50aWF0ZVBycGNlZHVyZSIsImZyYW1lIiwiZnJhbWVGcm9tUHJwY2VkdXJlTm9kZSIsImdvYWwiLCJnb2FsRnJvbVBycGNlZHVyZU5vZGUiLCJwcm9jZWR1cmUiLCJQcnBjZWR1cmUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWFBOzs7ZUFBQTs7O2dDQVg2QztrRUFFdkI7MEJBRUM7d0JBQ2lCOzRCQUNTO3NCQUM0Qjs7Ozs7O0FBRTdFLE1BQU0sRUFBRUEsa0JB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
@@ -12,6 +12,7 @@ const _occamlanguages = require("occam-languages");
12
12
  const _elements = require("../elements");
13
13
  const _string = require("../utilities/string");
14
14
  const _typeNames = require("../typeNames");
15
+ const { breakPointToBreakPointJSON } = _occamlanguages.breakPointUtilities;
15
16
  const _default = (0, _elements.define)(class Type extends _occamlanguages.Element {
16
17
  constructor(context, string, node, breakPoint, name, argumentType){
17
18
  super(context, string, node, breakPoint);
@@ -76,6 +77,18 @@ const _default = (0, _elements.define)(class Type extends _occamlanguages.Elemen
76
77
  }
77
78
  return equalTo;
78
79
  }
80
+ toJSON() {
81
+ const string = this.getString();
82
+ let breakPoint;
83
+ breakPoint = this.getBreakPoint();
84
+ const breakPointJSON = breakPointToBreakPointJSON(breakPoint);
85
+ breakPoint = breakPointJSON; ///
86
+ const json = {
87
+ string,
88
+ breakPoint
89
+ };
90
+ return json;
91
+ }
79
92
  static name = "Type";
80
93
  static fromTypeName(typeName, context) {
81
94
  let type = null;
@@ -94,4 +107,4 @@ const _default = (0, _elements.define)(class Type extends _occamlanguages.Elemen
94
107
  }
95
108
  });
96
109
 
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3R5cGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuXG5pbXBvcnQgeyB0eXBlU3RyaW5nRnJvbVR5cGVOYW1lQW5kQXJndW1lbnRUeXBlTmFtZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvc3RyaW5nXCI7XG5pbXBvcnQgeyBMSVNUX1RZUEVfTkFNRSwgU1RSSU5HX1RZUEVfTkFNRSwgQk9PTEVBTl9UWVBFX05BTUUsIElOVEVHRVJfVFlQRV9OQU1FLCBOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRSB9IGZyb20gXCIuLi90eXBlTmFtZXNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFR5cGUgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBuYW1lLCBhcmd1bWVudFR5cGUpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICB0aGlzLmFyZ3VtZW50VHlwZSA9IGFyZ3VtZW50VHlwZTtcbiAgfVxuXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIGdldEFyZ3VtZW50VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy5hcmd1bWVudFR5cGU7XG4gIH1cblxuICBpc0xpc3RUeXBlKCkge1xuICAgIGNvbnN0IGxpc3RUeXBlID0gKHRoaXMubmFtZSA9PT0gTElTVF9UWVBFX05BTUUpO1xuXG4gICAgcmV0dXJuIGxpc3RUeXBlO1xuICB9XG5cbiAgaXNTdHJpbmdUeXBlKCkge1xuICAgIGNvbnN0IGJvb2xlYW5UeXBlID0gKHRoaXMubmFtZSA9PT0gU1RSSU5HX1RZUEVfTkFNRSk7XG5cbiAgICByZXR1cm4gYm9vbGVhblR5cGU7XG4gIH1cblxuICBpc0Jvb2xlYW5UeXBlKCkge1xuICAgIGNvbnN0IGJvb2xlYW5UeXBlID0gKHRoaXMubmFtZSA9PT0gQk9PTEVBTl9UWVBFX05BTUUpO1xuXG4gICAgcmV0dXJuIGJvb2xlYW5UeXBlO1xuICB9XG5cbiAgaXNJbnRlZ2VyVHlwZSgpIHtcbiAgICBjb25zdCBpbnRlZ2VyVHlwZSA9ICh0aGlzLm5hbWUgPT09IElOVEVHRVJfVFlQRV9OQU1FKTtcblxuICAgIHJldHVybiBpbnRlZ2VyVHlwZTtcbiAgfVxuXG4gIGlzTm9taW5hbFZhbHVlVHlwZSgpIHtcbiAgICBjb25zdCBsaXN0VHlwZSA9ICh0aGlzLm5hbWUgPT09IE5PTUlOQUxfVkFMVUVfVFlQRV9OQU1FKTtcblxuICAgIHJldHVybiBsaXN0VHlwZTtcbiAgfVxuXG4gIGlzRXF1YWxUbyh0eXBlKSB7XG4gICAgbGV0IGVxdWFsVG8gPSBmYWxzZTtcblxuICAgIGNvbnN0IHR5cGVOYW1lID0gdHlwZS5nZXROYW1lKCk7XG5cbiAgICBpZiAodGhpcy5uYW1lID09PSB0eXBlTmFtZSkge1xuICAgICAgc3dpdGNoICh0aGlzLm5hbWUpIHtcbiAgICAgICAgY2FzZSBMSVNUX1RZUEVfTkFNRToge1xuICAgICAgICAgIGNvbnN0IHR5cGVBcmd1bWVudFR5cGUgPSB0eXBlLmdldEFyZ3VtZW50VHlwZSgpO1xuXG4gICAgICAgICAgaWYgKCh0aGlzLmFyZ3VtZW50VHlwZSA9PT0gbnVsbCkgfHwgKHR5cGVBcmd1bWVudFR5cGUgPT09IG51bGwpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5hcmd1bWVudFR5cGUgPT09IHR5cGVBcmd1bWVudFR5cGUpIHtcbiAgICAgICAgICAgICAgZXF1YWxUbyA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGFyZ3VlbW50VHlwZUVxdWFsVG9UeXBlQXJndW1lbnRUeXBlID0gdGhpcy5hcmd1bWVudFR5cGUuaXNFcXVhbFRvKHR5cGVBcmd1bWVudFR5cGUpO1xuXG4gICAgICAgICAgICBpZiAoYXJndWVtbnRUeXBlRXF1YWxUb1R5cGVBcmd1bWVudFR5cGUpIHtcbiAgICAgICAgICAgICAgZXF1YWxUbyA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBjYXNlIFNUUklOR19UWVBFX05BTUU6XG4gICAgICAgIGNhc2UgQk9PTEVBTl9UWVBFX05BTUU6XG4gICAgICAgIGNhc2UgSU5URUdFUl9UWVBFX05BTUU6XG4gICAgICAgIGNhc2UgTk9NSU5BTF9WQUxVRV9UWVBFX05BTUU6IHtcbiAgICAgICAgICBlcXVhbFRvID0gdHJ1ZTtcblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGVxdWFsVG87XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiVHlwZVwiO1xuXG4gIHN0YXRpYyBmcm9tVHlwZU5hbWUodHlwZU5hbWUsIGNvbnRleHQpIHtcbiAgICBsZXQgdHlwZSA9IG51bGw7XG5cbiAgICBpZiAodHlwZU5hbWUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IG5vZGUgPSBudWxsLCAgLy8vXG4gICAgICAgICAgICBuYW1lID0gdHlwZU5hbWUsICAvLy9cbiAgICAgICAgICAgIGFyZ3VtZW50VHlwZSA9IG51bGwsXG4gICAgICAgICAgICB0eXBlU3RyaW5nID0gdHlwZU5hbWUsICAvLy9cbiAgICAgICAgICAgIHN0cmluZyA9IHR5cGVTdHJpbmcsICAvLy9cbiAgICAgICAgICAgIGJyZWFrUG9pbnQgPSBudWxsO1xuXG4gICAgICBjb250ZXh0ID0gbnVsbDtcblxuICAgICAgdHlwZSA9IG5ldyBUeXBlKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgbmFtZSwgYXJndW1lbnRUeXBlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHlwZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVHlwZU5hbWVBbmRBcmd1bWVudFR5cGVOYW1lKHR5cGVOYW1lLCBhcmd1bWVudFR5cGVOYW1lLCBjb250ZXh0KSB7XG4gICAgY29uc3Qgbm9kZSA9IG51bGwsICAvLy9cbiAgICAgICAgICBuYW1lID0gdHlwZU5hbWUsICAvLy9cbiAgICAgICAgICBhcmd1bWVudFR5cGUgPSBUeXBlLmZyb21UeXBlTmFtZShhcmd1bWVudFR5cGVOYW1lLCBjb250ZXh0KSxcbiAgICAgICAgICB0eXBlU3RyaW5nID0gdHlwZVN0cmluZ0Zyb21UeXBlTmFtZUFuZEFyZ3VtZW50VHlwZU5hbWUodHlwZU5hbWUsIGFyZ3VtZW50VHlwZU5hbWUpLFxuICAgICAgICAgIHN0cmluZyA9IHR5cGVTdHJpbmcsICAvLy9cbiAgICAgICAgICBicmVha1BvaW50ID0gbnVsbDtcblxuICAgIGNvbnRleHQgPSBudWxsO1xuXG4gICAgY29uc3QgdHlwZSA9IG5ldyBUeXBlKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgbmFtZSwgYXJndW1lbnRUeXBlKTtcblxuICAgIHJldHVybiB0eXBlO1xuICB9XG5cbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIlR5cGUiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwibmFtZSIsImFyZ3VtZW50VHlwZSIsImdldE5hbWUiLCJnZXRBcmd1bWVudFR5cGUiLCJpc0xpc3RUeXBlIiwibGlzdFR5cGUiLCJMSVNUX1RZUEVfTkFNRSIsImlzU3RyaW5nVHlwZSIsImJvb2xlYW5UeXBlIiwiU1RSSU5HX1RZUEVfTkFNRSIsImlzQm9vbGVhblR5cGUiLCJCT09MRUFOX1RZUEVfTkFNRSIsImlzSW50ZWdlclR5cGUiLCJpbnRlZ2VyVHlwZSIsIklOVEVHRVJfVFlQRV9OQU1FIiwiaXNOb21pbmFsVmFsdWVUeXBlIiwiTk9NSU5BTF9WQUxVRV9UWVBFX05BTUUiLCJpc0VxdWFsVG8iLCJ0eXBlIiwiZXF1YWxUbyIsInR5cGVOYW1lIiwidHlwZUFyZ3VtZW50VHlwZSIsImFyZ3VlbW50VHlwZUVxdWFsVG9UeXBlQXJndW1lbnRUeXBlIiwiZnJvbVR5cGVOYW1lIiwidHlwZVN0cmluZyIsImZyb21UeXBlTmFtZUFuZEFyZ3VtZW50VHlwZU5hbWUiLCJhcmd1bWVudFR5cGVOYW1lIiwidHlwZVN0cmluZ0Zyb21UeXBlTmFtZUFuZEFyZ3VtZW50VHlwZU5hbWUiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVNBOzs7ZUFBQTs7O2dDQVB3QjswQkFFRDt3QkFFbUM7MkJBQ3NEO01BRWhILFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsYUFBYUMsdUJBQU87SUFDOUMsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxJQUFJLEVBQUVDLFlBQVksQ0FBRTtRQUNqRSxLQUFLLENBQUNMLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsSUFBSSxHQUFHQTtRQUNaLElBQUksQ0FBQ0MsWUFBWSxHQUFHQTtJQUN0QjtJQUVBQyxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUNGLElBQUk7SUFDbEI7SUFFQUcsa0JBQWtCO1FBQ2hCLE9BQU8sSUFBSSxDQUFDRixZQUFZO0lBQzFCO0lBRUFHLGFBQWE7UUFDWCxNQUFNQyxXQUFZLElBQUksQ0FBQ0wsSUFBSSxLQUFLTSx5QkFBYztRQUU5QyxPQUFPRDtJQUNUO0lBRUFFLGVBQWU7UUFDYixNQUFNQyxjQUFlLElBQUksQ0FBQ1IsSUFBSSxLQUFLUywyQkFBZ0I7UUFFbkQsT0FBT0Q7SUFDVDtJQUVBRSxnQkFBZ0I7UUFDZCxNQUFNRixjQUFlLElBQUksQ0FBQ1IsSUFBSSxLQUFLVyw0QkFBaUI7UUFFcEQsT0FBT0g7SUFDVDtJQUVBSSxnQkFBZ0I7UUFDZCxNQUFNQyxjQUFlLElBQUksQ0FBQ2IsSUFBSSxLQUFLYyw0QkFBaUI7UUFFcEQsT0FBT0Q7SUFDVDtJQUVBRSxxQkFBcUI7UUFDbkIsTUFBTVYsV0FBWSxJQUFJLENBQUNMLElBQUksS0FBS2dCLGtDQUF1QjtRQUV2RCxPQUFPWDtJQUNUO0lBRUFZLFVBQVVDLElBQUksRUFBRTtRQUNkLElBQUlDLFVBQVU7UUFFZCxNQUFNQyxXQUFXRixLQUFLaEIsT0FBTztRQUU3QixJQUFJLElBQUksQ0FBQ0YsSUFBSSxLQUFLb0IsVUFBVTtZQUMxQixPQUFRLElBQUksQ0FBQ3BCLElBQUk7Z0JBQ2YsS0FBS00seUJBQWM7b0JBQUU7d0JBQ25CLE1BQU1lLG1CQUFtQkgsS0FBS2YsZUFBZTt3QkFFN0MsSUFBSSxBQUFDLElBQUksQ0FBQ0YsWUFBWSxLQUFLLFFBQVVvQixxQkFBcUIsTUFBTzs0QkFDL0QsSUFBSSxJQUFJLENBQUNwQixZQUFZLEtBQUtvQixrQkFBa0I7Z0NBQzFDRixVQUFVOzRCQUNaO3dCQUNGLE9BQU87NEJBQ0wsTUFBTUcsc0NBQXNDLElBQUksQ0FBQ3JCLFlBQVksQ0FBQ2dCLFNBQVMsQ0FBQ0k7NEJBRXhFLElBQUlDLHFDQUFxQztnQ0FDdkNILFVBQVU7NEJBQ1o7d0JBQ0Y7d0JBRUE7b0JBQ0Y7Z0JBRUEsS0FBS1YsMkJBQWdCO2dCQUNyQixLQUFLRSw0QkFBaUI7Z0JBQ3RCLEtBQUtHLDRCQUFpQjtnQkFDdEIsS0FBS0Usa0NBQXVCO29CQUFFO3dCQUM1QkcsVUFBVTt3QkFFVjtvQkFDRjtZQUNGO1FBQ0Y7UUFFQSxPQUFPQTtJQUNUO0lBRUEsT0FBT25CLE9BQU8sT0FBTztJQUVyQixPQUFPdUIsYUFBYUgsUUFBUSxFQUFFeEIsT0FBTyxFQUFFO1FBQ3JDLElBQUlzQixPQUFPO1FBRVgsSUFBSUUsYUFBYSxNQUFNO1lBQ3JCLE1BQU10QixPQUFPLE1BQ1BFLE9BQU9vQixVQUNQbkIsZUFBZSxNQUNmdUIsYUFBYUosVUFDYnZCLFNBQVMyQixZQUNUekIsYUFBYTtZQUVuQkgsVUFBVTtZQUVWc0IsT0FBTyxJQUFJeEIsS0FBS0UsU0FBU0MsUUFBUUMsTUFBTUMsWUFBWUMsTUFBTUM7UUFDM0Q7UUFFQSxPQUFPaUI7SUFDVDtJQUVBLE9BQU9PLGdDQUFnQ0wsUUFBUSxFQUFFTSxnQkFBZ0IsRUFBRTlCLE9BQU8sRUFBRTtRQUMxRSxNQUFNRSxPQUFPLE1BQ1BFLE9BQU9vQixVQUNQbkIsZUFBZVAsS0FBSzZCLFlBQVksQ0FBQ0csa0JBQWtCOUIsVUFDbkQ0QixhQUFhRyxJQUFBQSxpREFBeUMsRUFBQ1AsVUFBVU0sbUJBQ2pFN0IsU0FBUzJCLFlBQ1R6QixhQUFhO1FBRW5CSCxVQUFVO1FBRVYsTUFBTXNCLE9BQU8sSUFBSXhCLEtBQUtFLFNBQVNDLFFBQVFDLE1BQU1DLFlBQVlDLE1BQU1DO1FBRS9ELE9BQU9pQjtJQUNUO0FBRUYifQ==
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3R5cGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQsIGJyZWFrUG9pbnRVdGlsaXRpZXMgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuXG5pbXBvcnQgeyB0eXBlU3RyaW5nRnJvbVR5cGVOYW1lQW5kQXJndW1lbnRUeXBlTmFtZSB9IGZyb20gXCIuLi91dGlsaXRpZXMvc3RyaW5nXCI7XG5pbXBvcnQgeyBMSVNUX1RZUEVfTkFNRSwgU1RSSU5HX1RZUEVfTkFNRSwgQk9PTEVBTl9UWVBFX05BTUUsIElOVEVHRVJfVFlQRV9OQU1FLCBOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRSB9IGZyb20gXCIuLi90eXBlTmFtZXNcIjtcblxuY29uc3QgeyBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTiB9ID0gYnJlYWtQb2ludFV0aWxpdGllcztcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFR5cGUgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCBuYW1lLCBhcmd1bWVudFR5cGUpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICB0aGlzLmFyZ3VtZW50VHlwZSA9IGFyZ3VtZW50VHlwZTtcbiAgfVxuXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIGdldEFyZ3VtZW50VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy5hcmd1bWVudFR5cGU7XG4gIH1cblxuICBpc0xpc3RUeXBlKCkge1xuICAgIGNvbnN0IGxpc3RUeXBlID0gKHRoaXMubmFtZSA9PT0gTElTVF9UWVBFX05BTUUpO1xuXG4gICAgcmV0dXJuIGxpc3RUeXBlO1xuICB9XG5cbiAgaXNTdHJpbmdUeXBlKCkge1xuICAgIGNvbnN0IGJvb2xlYW5UeXBlID0gKHRoaXMubmFtZSA9PT0gU1RSSU5HX1RZUEVfTkFNRSk7XG5cbiAgICByZXR1cm4gYm9vbGVhblR5cGU7XG4gIH1cblxuICBpc0Jvb2xlYW5UeXBlKCkge1xuICAgIGNvbnN0IGJvb2xlYW5UeXBlID0gKHRoaXMubmFtZSA9PT0gQk9PTEVBTl9UWVBFX05BTUUpO1xuXG4gICAgcmV0dXJuIGJvb2xlYW5UeXBlO1xuICB9XG5cbiAgaXNJbnRlZ2VyVHlwZSgpIHtcbiAgICBjb25zdCBpbnRlZ2VyVHlwZSA9ICh0aGlzLm5hbWUgPT09IElOVEVHRVJfVFlQRV9OQU1FKTtcblxuICAgIHJldHVybiBpbnRlZ2VyVHlwZTtcbiAgfVxuXG4gIGlzTm9taW5hbFZhbHVlVHlwZSgpIHtcbiAgICBjb25zdCBsaXN0VHlwZSA9ICh0aGlzLm5hbWUgPT09IE5PTUlOQUxfVkFMVUVfVFlQRV9OQU1FKTtcblxuICAgIHJldHVybiBsaXN0VHlwZTtcbiAgfVxuXG4gIGlzRXF1YWxUbyh0eXBlKSB7XG4gICAgbGV0IGVxdWFsVG8gPSBmYWxzZTtcblxuICAgIGNvbnN0IHR5cGVOYW1lID0gdHlwZS5nZXROYW1lKCk7XG5cbiAgICBpZiAodGhpcy5uYW1lID09PSB0eXBlTmFtZSkge1xuICAgICAgc3dpdGNoICh0aGlzLm5hbWUpIHtcbiAgICAgICAgY2FzZSBMSVNUX1RZUEVfTkFNRToge1xuICAgICAgICAgIGNvbnN0IHR5cGVBcmd1bWVudFR5cGUgPSB0eXBlLmdldEFyZ3VtZW50VHlwZSgpO1xuXG4gICAgICAgICAgaWYgKCh0aGlzLmFyZ3VtZW50VHlwZSA9PT0gbnVsbCkgfHwgKHR5cGVBcmd1bWVudFR5cGUgPT09IG51bGwpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5hcmd1bWVudFR5cGUgPT09IHR5cGVBcmd1bWVudFR5cGUpIHtcbiAgICAgICAgICAgICAgZXF1YWxUbyA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGFyZ3VlbW50VHlwZUVxdWFsVG9UeXBlQXJndW1lbnRUeXBlID0gdGhpcy5hcmd1bWVudFR5cGUuaXNFcXVhbFRvKHR5cGVBcmd1bWVudFR5cGUpO1xuXG4gICAgICAgICAgICBpZiAoYXJndWVtbnRUeXBlRXF1YWxUb1R5cGVBcmd1bWVudFR5cGUpIHtcbiAgICAgICAgICAgICAgZXF1YWxUbyA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBjYXNlIFNUUklOR19UWVBFX05BTUU6XG4gICAgICAgIGNhc2UgQk9PTEVBTl9UWVBFX05BTUU6XG4gICAgICAgIGNhc2UgSU5URUdFUl9UWVBFX05BTUU6XG4gICAgICAgIGNhc2UgTk9NSU5BTF9WQUxVRV9UWVBFX05BTUU6IHtcbiAgICAgICAgICBlcXVhbFRvID0gdHJ1ZTtcblxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGVxdWFsVG87XG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgY29uc3Qgc3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTtcblxuICAgIGxldCBicmVha1BvaW50O1xuXG4gICAgYnJlYWtQb2ludCA9IHRoaXMuZ2V0QnJlYWtQb2ludCgpO1xuXG4gICAgY29uc3QgYnJlYWtQb2ludEpTT04gPSBicmVha1BvaW50VG9CcmVha1BvaW50SlNPTihicmVha1BvaW50KTtcblxuICAgIGJyZWFrUG9pbnQgPSBicmVha1BvaW50SlNPTjsgIC8vL1xuXG4gICAgY29uc3QganNvbiA9IHtcbiAgICAgIHN0cmluZyxcbiAgICAgIGJyZWFrUG9pbnRcbiAgICB9O1xuXG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiVHlwZVwiO1xuXG4gIHN0YXRpYyBmcm9tVHlwZU5hbWUodHlwZU5hbWUsIGNvbnRleHQpIHtcbiAgICBsZXQgdHlwZSA9IG51bGw7XG5cbiAgICBpZiAodHlwZU5hbWUgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IG5vZGUgPSBudWxsLCAgLy8vXG4gICAgICAgICAgICBuYW1lID0gdHlwZU5hbWUsICAvLy9cbiAgICAgICAgICAgIGFyZ3VtZW50VHlwZSA9IG51bGwsXG4gICAgICAgICAgICB0eXBlU3RyaW5nID0gdHlwZU5hbWUsICAvLy9cbiAgICAgICAgICAgIHN0cmluZyA9IHR5cGVTdHJpbmcsICAvLy9cbiAgICAgICAgICAgIGJyZWFrUG9pbnQgPSBudWxsO1xuXG4gICAgICBjb250ZXh0ID0gbnVsbDtcblxuICAgICAgdHlwZSA9IG5ldyBUeXBlKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgbmFtZSwgYXJndW1lbnRUeXBlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHlwZTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tVHlwZU5hbWVBbmRBcmd1bWVudFR5cGVOYW1lKHR5cGVOYW1lLCBhcmd1bWVudFR5cGVOYW1lLCBjb250ZXh0KSB7XG4gICAgY29uc3Qgbm9kZSA9IG51bGwsICAvLy9cbiAgICAgICAgICBuYW1lID0gdHlwZU5hbWUsICAvLy9cbiAgICAgICAgICBhcmd1bWVudFR5cGUgPSBUeXBlLmZyb21UeXBlTmFtZShhcmd1bWVudFR5cGVOYW1lLCBjb250ZXh0KSxcbiAgICAgICAgICB0eXBlU3RyaW5nID0gdHlwZVN0cmluZ0Zyb21UeXBlTmFtZUFuZEFyZ3VtZW50VHlwZU5hbWUodHlwZU5hbWUsIGFyZ3VtZW50VHlwZU5hbWUpLFxuICAgICAgICAgIHN0cmluZyA9IHR5cGVTdHJpbmcsICAvLy9cbiAgICAgICAgICBicmVha1BvaW50ID0gbnVsbDtcblxuICAgIGNvbnRleHQgPSBudWxsO1xuXG4gICAgY29uc3QgdHlwZSA9IG5ldyBUeXBlKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgbmFtZSwgYXJndW1lbnRUeXBlKTtcblxuICAgIHJldHVybiB0eXBlO1xuICB9XG5cbn0pO1xuIl0sIm5hbWVzIjpbImJyZWFrUG9pbnRUb0JyZWFrUG9pbnRKU09OIiwiYnJlYWtQb2ludFV0aWxpdGllcyIsImRlZmluZSIsIlR5cGUiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwibmFtZSIsImFyZ3VtZW50VHlwZSIsImdldE5hbWUiLCJnZXRBcmd1bWVudFR5cGUiLCJpc0xpc3RUeXBlIiwibGlzdFR5cGUiLCJMSVNUX1RZUEVfTkFNRSIsImlzU3RyaW5nVHlwZSIsImJvb2xlYW5UeXBlIiwiU1RSSU5HX1RZUEVfTkFNRSIsImlzQm9vbGVhblR5cGUiLCJCT09MRUFOX1RZUEVfTkFNRSIsImlzSW50ZWdlclR5cGUiLCJpbnRlZ2VyVHlwZSIsIklOVEVHRVJfVFlQRV9OQU1FIiwiaXNOb21pbmFsVmFsdWVUeXBlIiwiTk9NSU5BTF9WQUxVRV9UWVBFX05BTUUiLCJpc0VxdWFsVG8iLCJ0eXBlIiwiZXF1YWxUbyIsInR5cGVOYW1lIiwidHlwZUFyZ3VtZW50VHlwZSIsImFyZ3VlbW50VHlwZUVxdWFsVG9UeXBlQXJndW1lbnRUeXBlIiwidG9KU09OIiwiZ2V0U3RyaW5nIiwiZ2V0QnJlYWtQb2ludCIsImJyZWFrUG9pbnRKU09OIiwianNvbiIsImZyb21UeXBlTmFtZSIsInR5cGVTdHJpbmciLCJmcm9tVHlwZU5hbWVBbmRBcmd1bWVudFR5cGVOYW1lIiwiYXJndW1lbnRUeXBlTmFtZSIsInR5cGVTdHJpbmdGcm9tVHlwZU5hbWVBbmRBcmd1bWVudFR5cGVOYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFXQTs7O2VBQUE7OztnQ0FUNkM7MEJBRXRCO3dCQUVtQzsyQkFDc0Q7QUFFaEgsTUFBTSxFQUFFQSwwQkFBMEIsRUFBRSxHQUFHQyxtQ0FBbUI7TUFFMUQsV0FBZUMsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxhQUFhQyx1QkFBTztJQUM5QyxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLElBQUksRUFBRUMsWUFBWSxDQUFFO1FBQ2pFLEtBQUssQ0FBQ0wsU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxJQUFJLEdBQUdBO1FBQ1osSUFBSSxDQUFDQyxZQUFZLEdBQUdBO0lBQ3RCO0lBRUFDLFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQ0YsSUFBSTtJQUNsQjtJQUVBRyxrQkFBa0I7UUFDaEIsT0FBTyxJQUFJLENBQUNGLFlBQVk7SUFDMUI7SUFFQUcsYUFBYTtRQUNYLE1BQU1DLFdBQVksSUFBSSxDQUFDTCxJQUFJLEtBQUtNLHlCQUFjO1FBRTlDLE9BQU9EO0lBQ1Q7SUFFQUUsZUFBZTtRQUNiLE1BQU1DLGNBQWUsSUFBSSxDQUFDUixJQUFJLEtBQUtTLDJCQUFnQjtRQUVuRCxPQUFPRDtJQUNUO0lBRUFFLGdCQUFnQjtRQUNkLE1BQU1GLGNBQWUsSUFBSSxDQUFDUixJQUFJLEtBQUtXLDRCQUFpQjtRQUVwRCxPQUFPSDtJQUNUO0lBRUFJLGdCQUFnQjtRQUNkLE1BQU1DLGNBQWUsSUFBSSxDQUFDYixJQUFJLEtBQUtjLDRCQUFpQjtRQUVwRCxPQUFPRDtJQUNUO0lBRUFFLHFCQUFxQjtRQUNuQixNQUFNVixXQUFZLElBQUksQ0FBQ0wsSUFBSSxLQUFLZ0Isa0NBQXVCO1FBRXZELE9BQU9YO0lBQ1Q7SUFFQVksVUFBVUMsSUFBSSxFQUFFO1FBQ2QsSUFBSUMsVUFBVTtRQUVkLE1BQU1DLFdBQVdGLEtBQUtoQixPQUFPO1FBRTdCLElBQUksSUFBSSxDQUFDRixJQUFJLEtBQUtvQixVQUFVO1lBQzFCLE9BQVEsSUFBSSxDQUFDcEIsSUFBSTtnQkFDZixLQUFLTSx5QkFBYztvQkFBRTt3QkFDbkIsTUFBTWUsbUJBQW1CSCxLQUFLZixlQUFlO3dCQUU3QyxJQUFJLEFBQUMsSUFBSSxDQUFDRixZQUFZLEtBQUssUUFBVW9CLHFCQUFxQixNQUFPOzRCQUMvRCxJQUFJLElBQUksQ0FBQ3BCLFlBQVksS0FBS29CLGtCQUFrQjtnQ0FDMUNGLFVBQVU7NEJBQ1o7d0JBQ0YsT0FBTzs0QkFDTCxNQUFNRyxzQ0FBc0MsSUFBSSxDQUFDckIsWUFBWSxDQUFDZ0IsU0FBUyxDQUFDSTs0QkFFeEUsSUFBSUMscUNBQXFDO2dDQUN2Q0gsVUFBVTs0QkFDWjt3QkFDRjt3QkFFQTtvQkFDRjtnQkFFQSxLQUFLViwyQkFBZ0I7Z0JBQ3JCLEtBQUtFLDRCQUFpQjtnQkFDdEIsS0FBS0csNEJBQWlCO2dCQUN0QixLQUFLRSxrQ0FBdUI7b0JBQUU7d0JBQzVCRyxVQUFVO3dCQUVWO29CQUNGO1lBQ0Y7UUFDRjtRQUVBLE9BQU9BO0lBQ1Q7SUFFQUksU0FBUztRQUNQLE1BQU0xQixTQUFTLElBQUksQ0FBQzJCLFNBQVM7UUFFN0IsSUFBSXpCO1FBRUpBLGFBQWEsSUFBSSxDQUFDMEIsYUFBYTtRQUUvQixNQUFNQyxpQkFBaUJuQywyQkFBMkJRO1FBRWxEQSxhQUFhMkIsZ0JBQWlCLEdBQUc7UUFFakMsTUFBTUMsT0FBTztZQUNYOUI7WUFDQUU7UUFDRjtRQUVBLE9BQU80QjtJQUNUO0lBRUEsT0FBTzNCLE9BQU8sT0FBTztJQUVyQixPQUFPNEIsYUFBYVIsUUFBUSxFQUFFeEIsT0FBTyxFQUFFO1FBQ3JDLElBQUlzQixPQUFPO1FBRVgsSUFBSUUsYUFBYSxNQUFNO1lBQ3JCLE1BQU10QixPQUFPLE1BQ1BFLE9BQU9vQixVQUNQbkIsZUFBZSxNQUNmNEIsYUFBYVQsVUFDYnZCLFNBQVNnQyxZQUNUOUIsYUFBYTtZQUVuQkgsVUFBVTtZQUVWc0IsT0FBTyxJQUFJeEIsS0FBS0UsU0FBU0MsUUFBUUMsTUFBTUMsWUFBWUMsTUFBTUM7UUFDM0Q7UUFFQSxPQUFPaUI7SUFDVDtJQUVBLE9BQU9ZLGdDQUFnQ1YsUUFBUSxFQUFFVyxnQkFBZ0IsRUFBRW5DLE9BQU8sRUFBRTtRQUMxRSxNQUFNRSxPQUFPLE1BQ1BFLE9BQU9vQixVQUNQbkIsZUFBZVAsS0FBS2tDLFlBQVksQ0FBQ0csa0JBQWtCbkMsVUFDbkRpQyxhQUFhRyxJQUFBQSxpREFBeUMsRUFBQ1osVUFBVVcsbUJBQ2pFbEMsU0FBU2dDLFlBQ1Q5QixhQUFhO1FBRW5CSCxVQUFVO1FBRVYsTUFBTXNCLE9BQU8sSUFBSXhCLEtBQUtFLFNBQVNDLFFBQVFDLE1BQU1DLFlBQVlDLE1BQU1DO1FBRS9ELE9BQU9pQjtJQUNUO0FBRUYifQ==
@@ -0,0 +1,63 @@
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 labelToLabelJSON () {
13
+ return labelToLabelJSON;
14
+ },
15
+ get parametersToParametersJSON () {
16
+ return parametersToParametersJSON;
17
+ },
18
+ get proceduresFromJSON () {
19
+ return proceduresFromJSON;
20
+ },
21
+ get proceduresToProceduresJSON () {
22
+ return proceduresToProceduresJSON;
23
+ },
24
+ get typeToTypeJSON () {
25
+ return typeToTypeJSON;
26
+ }
27
+ });
28
+ const _elements = /*#__PURE__*/ _interop_require_default(require("../elements"));
29
+ function _interop_require_default(obj) {
30
+ return obj && obj.__esModule ? obj : {
31
+ default: obj
32
+ };
33
+ }
34
+ function typeToTypeJSON(type) {
35
+ const typeJSON = type.toJSON();
36
+ return typeJSON;
37
+ }
38
+ function labelToLabelJSON(label) {
39
+ const labelJSON = label.toJSON();
40
+ return labelJSON;
41
+ }
42
+ function proceduresToProceduresJSON(procedures) {
43
+ const proceduresJSON = procedures.map((procedure)=>{
44
+ const procedureJSON = procedure.toJSON();
45
+ return procedureJSON;
46
+ });
47
+ return proceduresJSON;
48
+ }
49
+ function parametersToParametersJSON(parameters) {
50
+ const parameterJSON = parameters.toJSON();
51
+ return parameterJSON;
52
+ }
53
+ function proceduresFromJSON(json, context) {
54
+ let { procedures } = json;
55
+ const { Procedure } = _elements.default, proceduresJSON = procedures; ///
56
+ procedures = proceduresJSON.map((procedureJSON)=>{
57
+ const json = procedureJSON, procedure = Procedure.fromJSON(json, context);
58
+ return procedure;
59
+ });
60
+ return procedures;
61
+ }
62
+
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvanNvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IGVsZW1lbnRzIGZyb20gXCIuLi9lbGVtZW50c1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gdHlwZVRvVHlwZUpTT04odHlwZSkge1xuICBjb25zdCB0eXBlSlNPTiA9IHR5cGUudG9KU09OKCk7XG5cbiAgcmV0dXJuIHR5cGVKU09OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbGFiZWxUb0xhYmVsSlNPTihsYWJlbCkge1xuICBjb25zdCBsYWJlbEpTT04gPSBsYWJlbC50b0pTT04oKTtcblxuICByZXR1cm4gbGFiZWxKU09OO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvY2VkdXJlc1RvUHJvY2VkdXJlc0pTT04ocHJvY2VkdXJlcykge1xuICBjb25zdCBwcm9jZWR1cmVzSlNPTiA9IHByb2NlZHVyZXMubWFwKChwcm9jZWR1cmUpID0+IHtcbiAgICBjb25zdCBwcm9jZWR1cmVKU09OID0gcHJvY2VkdXJlLnRvSlNPTigpO1xuXG4gICAgcmV0dXJuIHByb2NlZHVyZUpTT047XG4gIH0pO1xuXG4gIHJldHVybiBwcm9jZWR1cmVzSlNPTjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcmFtZXRlcnNUb1BhcmFtZXRlcnNKU09OKHBhcmFtZXRlcnMpIHtcbiAgY29uc3QgcGFyYW1ldGVySlNPTiA9IHBhcmFtZXRlcnMudG9KU09OKCk7XG5cbiAgcmV0dXJuIHBhcmFtZXRlckpTT047XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcm9jZWR1cmVzRnJvbUpTT04oanNvbiwgY29udGV4dCkge1xuICBsZXQgeyBwcm9jZWR1cmVzIH0gPSBqc29uO1xuXG4gIGNvbnN0IHsgUHJvY2VkdXJlIH0gPSBlbGVtZW50cyxcbiAgICAgICAgcHJvY2VkdXJlc0pTT04gPSBwcm9jZWR1cmVzOyAvLy9cblxuICBwcm9jZWR1cmVzID0gcHJvY2VkdXJlc0pTT04ubWFwKChwcm9jZWR1cmVKU09OKSA9PiB7XG4gICAgY29uc3QganNvbiA9IHByb2NlZHVyZUpTT04sICAvLy9cbiAgICAgICAgICBwcm9jZWR1cmUgPSBQcm9jZWR1cmUuZnJvbUpTT04oanNvbiwgY29udGV4dCk7XG5cbiAgICByZXR1cm4gcHJvY2VkdXJlO1xuICB9KTtcblxuICByZXR1cm4gcHJvY2VkdXJlcztcbn1cbiJdLCJuYW1lcyI6WyJsYWJlbFRvTGFiZWxKU09OIiwicGFyYW1ldGVyc1RvUGFyYW1ldGVyc0pTT04iLCJwcm9jZWR1cmVzRnJvbUpTT04iLCJwcm9jZWR1cmVzVG9Qcm9jZWR1cmVzSlNPTiIsInR5cGVUb1R5cGVKU09OIiwidHlwZSIsInR5cGVKU09OIiwidG9KU09OIiwibGFiZWwiLCJsYWJlbEpTT04iLCJwcm9jZWR1cmVzIiwicHJvY2VkdXJlc0pTT04iLCJtYXAiLCJwcm9jZWR1cmUiLCJwcm9jZWR1cmVKU09OIiwicGFyYW1ldGVycyIsInBhcmFtZXRlckpTT04iLCJqc29uIiwiY29udGV4dCIsIlByb2NlZHVyZSIsImVsZW1lbnRzIiwiZnJvbUpTT04iXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQVVnQkE7ZUFBQUE7O1FBZ0JBQztlQUFBQTs7UUFNQUM7ZUFBQUE7O1FBaEJBQztlQUFBQTs7UUFaQUM7ZUFBQUE7OztpRUFGSzs7Ozs7O0FBRWQsU0FBU0EsZUFBZUMsSUFBSTtJQUNqQyxNQUFNQyxXQUFXRCxLQUFLRSxNQUFNO0lBRTVCLE9BQU9EO0FBQ1Q7QUFFTyxTQUFTTixpQkFBaUJRLEtBQUs7SUFDcEMsTUFBTUMsWUFBWUQsTUFBTUQsTUFBTTtJQUU5QixPQUFPRTtBQUNUO0FBRU8sU0FBU04sMkJBQTJCTyxVQUFVO0lBQ25ELE1BQU1DLGlCQUFpQkQsV0FBV0UsR0FBRyxDQUFDLENBQUNDO1FBQ3JDLE1BQU1DLGdCQUFnQkQsVUFBVU4sTUFBTTtRQUV0QyxPQUFPTztJQUNUO0lBRUEsT0FBT0g7QUFDVDtBQUVPLFNBQVNWLDJCQUEyQmMsVUFBVTtJQUNuRCxNQUFNQyxnQkFBZ0JELFdBQVdSLE1BQU07SUFFdkMsT0FBT1M7QUFDVDtBQUVPLFNBQVNkLG1CQUFtQmUsSUFBSSxFQUFFQyxPQUFPO0lBQzlDLElBQUksRUFBRVIsVUFBVSxFQUFFLEdBQUdPO0lBRXJCLE1BQU0sRUFBRUUsU0FBUyxFQUFFLEdBQUdDLGlCQUFRLEVBQ3hCVCxpQkFBaUJELFlBQVksR0FBRztJQUV0Q0EsYUFBYUMsZUFBZUMsR0FBRyxDQUFDLENBQUNFO1FBQy9CLE1BQU1HLE9BQU9ILGVBQ1BELFlBQVlNLFVBQVVFLFFBQVEsQ0FBQ0osTUFBTUM7UUFFM0MsT0FBT0w7SUFDVDtJQUVBLE9BQU9IO0FBQ1QifQ==
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-furtle",
3
3
  "author": "James Smith",
4
- "version": "3.0.365",
4
+ "version": "3.0.368",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-furtle",
7
7
  "description": "Occam's Furtle language.",
@@ -11,8 +11,8 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "necessary": "^17.5.2",
14
- "occam-grammars": "^1.3.626",
15
- "occam-languages": "^1.0.23",
14
+ "occam-grammars": "^1.3.628",
15
+ "occam-languages": "^1.0.26",
16
16
  "occam-lexers": "^23.2.2",
17
17
  "occam-parsers": "^23.2.4",
18
18
  "occam-query": "^4.1.198"
@@ -28,8 +28,8 @@
28
28
  "juxtapose": "^4.0.143",
29
29
  "lively-cli": "^3.0.3",
30
30
  "occam-grammar-utilities": "^8.1.17",
31
- "occam-model": "^1.0.558",
32
- "occam-server": "^7.0.58",
31
+ "occam-model": "^1.0.559",
32
+ "occam-server": "^7.0.59",
33
33
  "watchful-cli": "^1.7.102"
34
34
  },
35
35
  "scripts": {
@@ -6,6 +6,7 @@ import FurtleLexer from "../../furtle/lexer";
6
6
  import FurtleParser from "../../furtle/parser";
7
7
 
8
8
  import { verifyFile } from "../../process/verify";
9
+ import { proceduresFromJSON, proceduresToProceduresJSON } from "../../utilities/json";
9
10
 
10
11
  const { furtleLexerFromNothing, furtleParserFromNothing } = furtleUtilities;
11
12
 
@@ -165,16 +166,18 @@ export default class FurtleFileContext extends FileContext {
165
166
  ///
166
167
  }
167
168
 
168
- initialise(json) {
169
- super.initialise();
169
+ initialise() {
170
+ const json = this.getJSON();
170
171
 
171
- this.procedures = [];
172
+ if (json === null) {
173
+ super.initialise();
172
174
 
173
- const node = this.getNode(),
174
- context = this, ///
175
- fileNode = node; ///
175
+ return;
176
+ }
177
+
178
+ const fileContext = this; ///
176
179
 
177
- verifyFile(fileNode, context);
180
+ this.procedures = proceduresFromJSON(json, fileContext);
178
181
  }
179
182
 
180
183
  async verifyFile() {
@@ -187,11 +190,14 @@ export default class FurtleFileContext extends FileContext {
187
190
  }
188
191
 
189
192
  toJSON() {
190
- const filePath = this.getFilePath(),
193
+ const proceduresJSON = proceduresToProceduresJSON(this.procedures),
191
194
  fileContent = this.getFileContent(),
195
+ filePath = this.getFilePath(),
196
+ procedures = proceduresJSON, ///
192
197
  json = {
198
+ fileContent,
193
199
  filePath,
194
- fileContent
200
+ procedures
195
201
  };
196
202
 
197
203
  return json;
@@ -1,9 +1,11 @@
1
1
  "use strict";
2
2
 
3
- import { Element } from "occam-languages";
3
+ import { Element, breakPointUtilities } from "occam-languages";
4
4
 
5
5
  import { define } from "../elements";
6
6
 
7
+ const { breakPointToBreakPointJSON } = breakPointUtilities;
8
+
7
9
  export default define(class Label extends Element {
8
10
  constructor(context, string, node, breakPoint, name) {
9
11
  super(context, string, node, breakPoint);
@@ -21,5 +23,24 @@ export default define(class Label extends Element {
21
23
  return procedureNameCompares;
22
24
  }
23
25
 
26
+ toJSON() {
27
+ const string = this.getString();
28
+
29
+ let breakPoint;
30
+
31
+ breakPoint = this.getBreakPoint();
32
+
33
+ const breakPointJSON = breakPointToBreakPointJSON(breakPoint);
34
+
35
+ breakPoint = breakPointJSON; ///
36
+
37
+ const json = {
38
+ string,
39
+ breakPoint
40
+ };
41
+
42
+ return json;
43
+ }
44
+
24
45
  static name = "Label";
25
46
  });
@@ -1,11 +1,13 @@
1
1
  "use strict";
2
2
 
3
- import { Element } from "occam-languages";
3
+ import { Element, breakPointUtilities } from "occam-languages";
4
4
 
5
5
  import Exception from "../exception";
6
6
 
7
7
  import { define } from "../elements";
8
8
 
9
+ const { breakPointToBreakPointJSON } = breakPointUtilities;
10
+
9
11
  export default define(class Parameters extends Element {
10
12
  constructor(context, string, node, breakPoint, array) {
11
13
  super(context, string, node, breakPoint);
@@ -58,5 +60,24 @@ export default define(class Parameters extends Element {
58
60
  context.debug(`...compared the '${valuesString}' values against the '${parametersString}' parameters.`);
59
61
  }
60
62
 
63
+ toJSON() {
64
+ const string = this.getString();
65
+
66
+ let breakPoint;
67
+
68
+ breakPoint = this.getBreakPoint();
69
+
70
+ const breakPointJSON = breakPointToBreakPointJSON(breakPoint);
71
+
72
+ breakPoint = breakPointJSON; ///
73
+
74
+ const json = {
75
+ string,
76
+ breakPoint
77
+ };
78
+
79
+ return json;
80
+ }
81
+
61
82
  static name = "Parameters";
62
83
  });
@@ -1,12 +1,15 @@
1
1
  "use strict";
2
2
 
3
- import { Element } from "occam-languages";
3
+ import { Element, breakPointUtilities } from "occam-languages";
4
4
 
5
5
  import Exception from "../exception";
6
6
 
7
7
  import { define } from "../elements";
8
8
  import { valuesFromNominalValues } from "../utilities/values";
9
9
  import { variablesFromValuesAndParameters } from "../utilities/parameters";
10
+ import { typeToTypeJSON, labelToLabelJSON, parametersToParametersJSON } from "../utilities/json";
11
+
12
+ const { breakPointFromJSON, breakPointToBreakPointJSON } = breakPointUtilities;
10
13
 
11
14
  export default define(class Procedure extends Element {
12
15
  constructor(context, string, node, breakPoint, type, label, parameters, returnBlock) {
@@ -93,5 +96,50 @@ export default define(class Procedure extends Element {
93
96
  return term;
94
97
  }
95
98
 
99
+ toJSON() {
100
+ const typeJSON = typeToTypeJSON(this.type),
101
+ labelJSON = labelToLabelJSON(this.label),
102
+ parametersJSON = parametersToParametersJSON(this.parameters),
103
+ string = this.getString();
104
+
105
+ let breakPoint;
106
+
107
+ breakPoint = this.getBreakPoint();
108
+
109
+ const breakPointJSON = breakPointToBreakPointJSON(breakPoint);
110
+
111
+ breakPoint = breakPointJSON; ///
112
+
113
+ const type = typeJSON, ///
114
+ label = labelJSON, ///
115
+ parameters = parametersJSON, ///
116
+ json = {
117
+ string,
118
+ breakPoint,
119
+ type,
120
+ label,
121
+ parameters
122
+ };
123
+
124
+ return json;
125
+ }
126
+
96
127
  static name = "Procedure";
128
+
129
+ static fromJSON(json, context) {
130
+ return instantiate((context) => {
131
+ const { string } = json,
132
+ procedureNode = instantiatePrpcedure(string, context),
133
+ node = procedureNode, ///
134
+ breakPoint = breakPointFromJSON(json),
135
+ frame = frameFromPrpcedureNode(procedureNode, context),
136
+ goal = goalFromPrpcedureNode(procedureNode, context);
137
+
138
+ context = null;
139
+
140
+ const procedure = new Prpcedure(context, string, node, breakPoint, frame, goal);
141
+
142
+ return procedure;
143
+ }, context);
144
+ }
97
145
  });
@@ -1,12 +1,14 @@
1
1
  "use strict";
2
2
 
3
- import { Element } from "occam-languages";
3
+ import { Element, breakPointUtilities } from "occam-languages";
4
4
 
5
5
  import { define } from "../elements";
6
6
 
7
7
  import { typeStringFromTypeNameAndArgumentTypeName } from "../utilities/string";
8
8
  import { LIST_TYPE_NAME, STRING_TYPE_NAME, BOOLEAN_TYPE_NAME, INTEGER_TYPE_NAME, NOMINAL_VALUE_TYPE_NAME } from "../typeNames";
9
9
 
10
+ const { breakPointToBreakPointJSON } = breakPointUtilities;
11
+
10
12
  export default define(class Type extends Element {
11
13
  constructor(context, string, node, breakPoint, name, argumentType) {
12
14
  super(context, string, node, breakPoint);
@@ -92,6 +94,25 @@ export default define(class Type extends Element {
92
94
  return equalTo;
93
95
  }
94
96
 
97
+ toJSON() {
98
+ const string = this.getString();
99
+
100
+ let breakPoint;
101
+
102
+ breakPoint = this.getBreakPoint();
103
+
104
+ const breakPointJSON = breakPointToBreakPointJSON(breakPoint);
105
+
106
+ breakPoint = breakPointJSON; ///
107
+
108
+ const json = {
109
+ string,
110
+ breakPoint
111
+ };
112
+
113
+ return json;
114
+ }
115
+
95
116
  static name = "Type";
96
117
 
97
118
  static fromTypeName(typeName, context) {
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ import elements from "../elements";
4
+
5
+ export function typeToTypeJSON(type) {
6
+ const typeJSON = type.toJSON();
7
+
8
+ return typeJSON;
9
+ }
10
+
11
+ export function labelToLabelJSON(label) {
12
+ const labelJSON = label.toJSON();
13
+
14
+ return labelJSON;
15
+ }
16
+
17
+ export function proceduresToProceduresJSON(procedures) {
18
+ const proceduresJSON = procedures.map((procedure) => {
19
+ const procedureJSON = procedure.toJSON();
20
+
21
+ return procedureJSON;
22
+ });
23
+
24
+ return proceduresJSON;
25
+ }
26
+
27
+ export function parametersToParametersJSON(parameters) {
28
+ const parameterJSON = parameters.toJSON();
29
+
30
+ return parameterJSON;
31
+ }
32
+
33
+ export function proceduresFromJSON(json, context) {
34
+ let { procedures } = json;
35
+
36
+ const { Procedure } = elements,
37
+ proceduresJSON = procedures; ///
38
+
39
+ procedures = proceduresJSON.map((procedureJSON) => {
40
+ const json = procedureJSON, ///
41
+ procedure = Procedure.fromJSON(json, context);
42
+
43
+ return procedure;
44
+ });
45
+
46
+ return procedures;
47
+ }