occam-furtle 3.0.326 → 3.0.328

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.
package/lib/constants.js CHANGED
@@ -27,14 +27,10 @@ _export(exports, {
27
27
  get NULL () {
28
28
  return NULL;
29
29
  },
30
- get TEN () {
31
- return TEN;
32
- },
33
30
  get TRUE () {
34
31
  return TRUE;
35
32
  }
36
33
  });
37
- const TEN = 10;
38
34
  const NULL = "null";
39
35
  const TRUE = "true";
40
36
  const FALSE = "false";
@@ -43,4 +39,4 @@ const NOT_EQUAL_TO = "!=";
43
39
  const CONJUNCTION_OPERATOR = "&&";
44
40
  const DISJUNCTION_OPERATOR = "||";
45
41
 
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25zdGFudHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBjb25zdCBURU4gPSAxMDtcbmV4cG9ydCBjb25zdCBOVUxMID0gXCJudWxsXCI7XG5leHBvcnQgY29uc3QgVFJVRSA9IFwidHJ1ZVwiO1xuZXhwb3J0IGNvbnN0IEZBTFNFID0gXCJmYWxzZVwiO1xuZXhwb3J0IGNvbnN0IEVNUFRZX1NUUklORyA9IFwiXCI7XG5leHBvcnQgY29uc3QgTk9UX0VRVUFMX1RPID0gXCIhPVwiO1xuZXhwb3J0IGNvbnN0IENPTkpVTkNUSU9OX09QRVJBVE9SID0gXCImJlwiO1xuZXhwb3J0IGNvbnN0IERJU0pVTkNUSU9OX09QRVJBVE9SID0gXCJ8fFwiO1xuIl0sIm5hbWVzIjpbIkNPTkpVTkNUSU9OX09QRVJBVE9SIiwiRElTSlVOQ1RJT05fT1BFUkFUT1IiLCJFTVBUWV9TVFJJTkciLCJGQUxTRSIsIk5PVF9FUVVBTF9UTyIsIk5VTEwiLCJURU4iLCJUUlVFIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFRYUE7ZUFBQUE7O1FBQ0FDO2VBQUFBOztRQUhBQztlQUFBQTs7UUFEQUM7ZUFBQUE7O1FBRUFDO2VBQUFBOztRQUpBQztlQUFBQTs7UUFEQUM7ZUFBQUE7O1FBRUFDO2VBQUFBOzs7QUFGTixNQUFNRCxNQUFNO0FBQ1osTUFBTUQsT0FBTztBQUNiLE1BQU1FLE9BQU87QUFDYixNQUFNSixRQUFRO0FBQ2QsTUFBTUQsZUFBZTtBQUNyQixNQUFNRSxlQUFlO0FBQ3JCLE1BQU1KLHVCQUF1QjtBQUM3QixNQUFNQyx1QkFBdUIifQ==
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25zdGFudHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBjb25zdCBOVUxMID0gXCJudWxsXCI7XG5leHBvcnQgY29uc3QgVFJVRSA9IFwidHJ1ZVwiO1xuZXhwb3J0IGNvbnN0IEZBTFNFID0gXCJmYWxzZVwiO1xuZXhwb3J0IGNvbnN0IEVNUFRZX1NUUklORyA9IFwiXCI7XG5leHBvcnQgY29uc3QgTk9UX0VRVUFMX1RPID0gXCIhPVwiO1xuZXhwb3J0IGNvbnN0IENPTkpVTkNUSU9OX09QRVJBVE9SID0gXCImJlwiO1xuZXhwb3J0IGNvbnN0IERJU0pVTkNUSU9OX09QRVJBVE9SID0gXCJ8fFwiO1xuIl0sIm5hbWVzIjpbIkNPTkpVTkNUSU9OX09QRVJBVE9SIiwiRElTSlVOQ1RJT05fT1BFUkFUT1IiLCJFTVBUWV9TVFJJTkciLCJGQUxTRSIsIk5PVF9FUVVBTF9UTyIsIk5VTEwiLCJUUlVFIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFPYUE7ZUFBQUE7O1FBQ0FDO2VBQUFBOztRQUhBQztlQUFBQTs7UUFEQUM7ZUFBQUE7O1FBRUFDO2VBQUFBOztRQUpBQztlQUFBQTs7UUFDQUM7ZUFBQUE7OztBQUROLE1BQU1ELE9BQU87QUFDYixNQUFNQyxPQUFPO0FBQ2IsTUFBTUgsUUFBUTtBQUNkLE1BQU1ELGVBQWU7QUFDckIsTUFBTUUsZUFBZTtBQUNyQixNQUFNSix1QkFBdUI7QUFDN0IsTUFBTUMsdUJBQXVCIn0=
@@ -13,6 +13,7 @@ const _exception = /*#__PURE__*/ _interop_require_default(require("../exception"
13
13
  const _constants = require("../constants");
14
14
  const _elements = require("../elements");
15
15
  const _value = require("../utilities/value");
16
+ const _tryInteger = require("./tryInteger");
16
17
  const _typeNames = require("../typeNames");
17
18
  function _interop_require_default(obj) {
18
19
  return obj && obj.__esModule ? obj : {
@@ -45,13 +46,12 @@ const _default = (0, _elements.define)(class ToInteger extends _occamlanguages.E
45
46
  case _typeNames.STRING_TYPE_NAME:
46
47
  case _typeNames.NOMINAL_VALUE_TYPE_NAME:
47
48
  {
48
- const radix = _constants.TEN, valueString = value.getString();
49
- integer = parseInt(valueString, radix);
50
- const nan = isNaN(integer);
51
- if (nan) {
49
+ const valueString = value.getString(), boolean = _tryInteger.integerRegularExpresssion.test(valueString);
50
+ if (!boolean) {
52
51
  const message = `Cannot evaluate the '${toIntegerString}' function because the '${valueTypeName}' value is not an integer.`, exception = _exception.default.fromMessage(message);
53
52
  throw exception;
54
53
  }
54
+ integer = Number(valueString);
55
55
  break;
56
56
  }
57
57
  }
@@ -63,4 +63,4 @@ const _default = (0, _elements.define)(class ToInteger extends _occamlanguages.E
63
63
  static name = "ToInteger";
64
64
  });
65
65
 
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3RvSW50ZWdlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IFRFTiB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgdmFsdWVGcm9tSW50ZWdlciB9IGZyb20gXCIuLi91dGlsaXRpZXMvdmFsdWVcIjtcbmltcG9ydCB7IExJU1RfVFlQRV9OQU1FLCBTVFJJTkdfVFlQRV9OQU1FLCBCT09MRUFOX1RZUEVfTkFNRSwgSU5URUdFUl9UWVBFX05BTUUsIE5PTUlOQUxfVkFMVUVfVFlQRV9OQU1FIH0gZnJvbSBcIi4uL3R5cGVOYW1lc1wiO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgVG9JbnRlZ2VyIGV4dGVuZHMgRWxlbWVudCB7XG4gIGNvbnN0cnVjdG9yKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCwgdmFyaWFibGUpIHtcbiAgICBzdXBlcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQpO1xuXG4gICAgdGhpcy52YXJpYWJsZSA9IHZhcmlhYmxlO1xuICB9XG5cbiAgZ2V0VmFyaWFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudmFyaWFibGU7XG4gIH1cblxuICBldmFsdWF0ZShjb250ZXh0KSB7XG4gICAgbGV0IHZhbHVlO1xuXG4gICAgY29uc3QgdG9JbnRlZ2VyU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgJyR7dG9JbnRlZ2VyU3RyaW5nfScgZnVuY3Rpb24uLi5gKTtcblxuICAgIHZhbHVlID0gdGhpcy52YXJpYWJsZS5ldmFsdWF0ZShjb250ZXh0KTtcblxuICAgIGNvbnN0IHZhbHVlVHlwZSA9IHZhbHVlLmdldFR5cGUoKSxcbiAgICAgICAgICB2YWx1ZVR5cGVOYW1lID0gdmFsdWVUeXBlLmdldE5hbWUoKTtcblxuICAgIGxldCBpbnRlZ2VyO1xuXG4gICAgc3dpdGNoICh2YWx1ZVR5cGVOYW1lKSB7XG4gICAgICBjYXNlIExJU1RfVFlQRV9OQU1FOlxuICAgICAgY2FzZSBCT09MRUFOX1RZUEVfTkFNRTpcbiAgICAgIGNhc2UgSU5URUdFUl9UWVBFX05BTUU6IHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGBDYW5ub3QgZXZhbHVhdGUgdGhlICcke3RvSW50ZWdlclN0cmluZ30nIGZ1bmN0aW9uIGJlY2F1c2UgdGhlICcke3ZhbHVlVHlwZU5hbWV9JyB0eXBlIG9mIGl0cyBhcmd1bWVudCBpcyBub3Qgc3VwcG9ydGVkLmAsXG4gICAgICAgICAgICAgIGV4Y2VwdGlvbiA9IEV4Y2VwdGlvbi5mcm9tTWVzc2FnZShtZXNzYWdlKTtcblxuICAgICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgICB9XG5cbiAgICAgIGNhc2UgU1RSSU5HX1RZUEVfTkFNRTpcbiAgICAgIGNhc2UgTk9NSU5BTF9WQUxVRV9UWVBFX05BTUU6IHtcbiAgICAgICAgY29uc3QgcmFkaXggPSBURU4sXG4gICAgICAgICAgICAgIHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICAgICAgaW50ZWdlciA9IHBhcnNlSW50KHZhbHVlU3RyaW5nLCByYWRpeCk7XG5cbiAgICAgICAgY29uc3QgbmFuID0gaXNOYU4oaW50ZWdlcik7XG5cbiAgICAgICAgaWYgKG5hbikge1xuICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgQ2Fubm90IGV2YWx1YXRlIHRoZSAnJHt0b0ludGVnZXJTdHJpbmd9JyBmdW5jdGlvbiBiZWNhdXNlIHRoZSAnJHt2YWx1ZVR5cGVOYW1lfScgdmFsdWUgaXMgbm90IGFuIGludGVnZXIuYCxcbiAgICAgICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgICAgIH1cblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YWx1ZSA9IHZhbHVlRnJvbUludGVnZXIoaW50ZWdlcik7XG5cbiAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHt0b0ludGVnZXJTdHJpbmd9JyBmdW5jdGlvbiBhcyAnJHt2YWx1ZVN0cmluZ30nLmApO1xuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlRvSW50ZWdlclwiO1xufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiVG9JbnRlZ2VyIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInZhcmlhYmxlIiwiZ2V0VmFyaWFibGUiLCJldmFsdWF0ZSIsInZhbHVlIiwidG9JbnRlZ2VyU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJ2YWx1ZVR5cGUiLCJnZXRUeXBlIiwidmFsdWVUeXBlTmFtZSIsImdldE5hbWUiLCJpbnRlZ2VyIiwiTElTVF9UWVBFX05BTUUiLCJCT09MRUFOX1RZUEVfTkFNRSIsIklOVEVHRVJfVFlQRV9OQU1FIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwiU1RSSU5HX1RZUEVfTkFNRSIsIk5PTUlOQUxfVkFMVUVfVFlQRV9OQU1FIiwicmFkaXgiLCJURU4iLCJ2YWx1ZVN0cmluZyIsInBhcnNlSW50IiwibmFuIiwiaXNOYU4iLCJ2YWx1ZUZyb21JbnRlZ2VyIiwiZGVidWciLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFXQTs7O2VBQUE7OztnQ0FUd0I7a0VBRUY7MkJBRUY7MEJBQ0c7dUJBQ1U7MkJBQytFOzs7Ozs7TUFFaEgsV0FBZUEsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxrQkFBa0JDLHVCQUFPO0lBQ25ELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsUUFBUSxDQUFFO1FBQ3ZELEtBQUssQ0FBQ0osU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxRQUFRLEdBQUdBO0lBQ2xCO0lBRUFDLGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQ0QsUUFBUTtJQUN0QjtJQUVBRSxTQUFTTixPQUFPLEVBQUU7UUFDaEIsSUFBSU87UUFFSixNQUFNQyxrQkFBa0IsSUFBSSxDQUFDQyxTQUFTLElBQUssR0FBRztRQUU5Q1QsUUFBUVUsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLEVBQUVGLGdCQUFnQixhQUFhLENBQUM7UUFFL0RELFFBQVEsSUFBSSxDQUFDSCxRQUFRLENBQUNFLFFBQVEsQ0FBQ047UUFFL0IsTUFBTVcsWUFBWUosTUFBTUssT0FBTyxJQUN6QkMsZ0JBQWdCRixVQUFVRyxPQUFPO1FBRXZDLElBQUlDO1FBRUosT0FBUUY7WUFDTixLQUFLRyx5QkFBYztZQUNuQixLQUFLQyw0QkFBaUI7WUFDdEIsS0FBS0MsNEJBQWlCO2dCQUFFO29CQUN0QixNQUFNQyxVQUFVLENBQUMscUJBQXFCLEVBQUVYLGdCQUFnQix3QkFBd0IsRUFBRUssY0FBYyx3Q0FBd0MsQ0FBQyxFQUNuSU8sWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSDtvQkFFeEMsTUFBTUM7Z0JBQ1I7WUFFQSxLQUFLRywyQkFBZ0I7WUFDckIsS0FBS0Msa0NBQXVCO2dCQUFFO29CQUM1QixNQUFNQyxRQUFRQyxjQUFHLEVBQ1hDLGNBQWNwQixNQUFNRSxTQUFTO29CQUVuQ00sVUFBVWEsU0FBU0QsYUFBYUY7b0JBRWhDLE1BQU1JLE1BQU1DLE1BQU1mO29CQUVsQixJQUFJYyxLQUFLO3dCQUNQLE1BQU1WLFVBQVUsQ0FBQyxxQkFBcUIsRUFBRVgsZ0JBQWdCLHdCQUF3QixFQUFFSyxjQUFjLDBCQUEwQixDQUFDLEVBQ3JITyxZQUFZQyxrQkFBUyxDQUFDQyxXQUFXLENBQUNIO3dCQUV4QyxNQUFNQztvQkFDUjtvQkFFQTtnQkFDRjtRQUNGO1FBRUFiLFFBQVF3QixJQUFBQSx1QkFBZ0IsRUFBQ2hCO1FBRXpCLE1BQU1ZLGNBQWNwQixNQUFNRSxTQUFTO1FBRW5DVCxRQUFRZ0MsS0FBSyxDQUFDLENBQUMsa0JBQWtCLEVBQUV4QixnQkFBZ0IsZUFBZSxFQUFFbUIsWUFBWSxFQUFFLENBQUM7UUFFbkYsT0FBT3BCO0lBQ1Q7SUFFQSxPQUFPMEIsT0FBTyxZQUFZO0FBQzVCIn0=
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3RvSW50ZWdlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IFRFTiB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgdmFsdWVGcm9tSW50ZWdlciB9IGZyb20gXCIuLi91dGlsaXRpZXMvdmFsdWVcIjtcbmltcG9ydCB7IGludGVnZXJSZWd1bGFyRXhwcmVzc3Npb24gfSBmcm9tIFwiLi90cnlJbnRlZ2VyXCI7XG5pbXBvcnQgeyBMSVNUX1RZUEVfTkFNRSwgU1RSSU5HX1RZUEVfTkFNRSwgQk9PTEVBTl9UWVBFX05BTUUsIElOVEVHRVJfVFlQRV9OQU1FLCBOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRSB9IGZyb20gXCIuLi90eXBlTmFtZXNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFRvSW50ZWdlciBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHZhcmlhYmxlKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMudmFyaWFibGUgPSB2YXJpYWJsZTtcbiAgfVxuXG4gIGdldFZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlO1xuICB9XG5cbiAgZXZhbHVhdGUoY29udGV4dCkge1xuICAgIGxldCB2YWx1ZTtcblxuICAgIGNvbnN0IHRvSW50ZWdlclN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYEV2YWx1YXRpbmcgdGhlICcke3RvSW50ZWdlclN0cmluZ30nIGZ1bmN0aW9uLi4uYCk7XG5cbiAgICB2YWx1ZSA9IHRoaXMudmFyaWFibGUuZXZhbHVhdGUoY29udGV4dCk7XG5cbiAgICBjb25zdCB2YWx1ZVR5cGUgPSB2YWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgdmFsdWVUeXBlTmFtZSA9IHZhbHVlVHlwZS5nZXROYW1lKCk7XG5cbiAgICBsZXQgaW50ZWdlcjtcblxuICAgIHN3aXRjaCAodmFsdWVUeXBlTmFtZSkge1xuICAgICAgY2FzZSBMSVNUX1RZUEVfTkFNRTpcbiAgICAgIGNhc2UgQk9PTEVBTl9UWVBFX05BTUU6XG4gICAgICBjYXNlIElOVEVHRVJfVFlQRV9OQU1FOiB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgQ2Fubm90IGV2YWx1YXRlIHRoZSAnJHt0b0ludGVnZXJTdHJpbmd9JyBmdW5jdGlvbiBiZWNhdXNlIHRoZSAnJHt2YWx1ZVR5cGVOYW1lfScgdHlwZSBvZiBpdHMgYXJndW1lbnQgaXMgbm90IHN1cHBvcnRlZC5gLFxuICAgICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgICAgfVxuXG4gICAgICBjYXNlIFNUUklOR19UWVBFX05BTUU6XG4gICAgICBjYXNlIE5PTUlOQUxfVkFMVUVfVFlQRV9OQU1FOiB7XG4gICAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICAgIGJvb2xlYW4gPSBpbnRlZ2VyUmVndWxhckV4cHJlc3NzaW9uLnRlc3QodmFsdWVTdHJpbmcpO1xuXG4gICAgICAgIGlmICghYm9vbGVhbikge1xuICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgQ2Fubm90IGV2YWx1YXRlIHRoZSAnJHt0b0ludGVnZXJTdHJpbmd9JyBmdW5jdGlvbiBiZWNhdXNlIHRoZSAnJHt2YWx1ZVR5cGVOYW1lfScgdmFsdWUgaXMgbm90IGFuIGludGVnZXIuYCxcbiAgICAgICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgICAgIH1cblxuICAgICAgICBpbnRlZ2VyID0gTnVtYmVyKHZhbHVlU3RyaW5nKTtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YWx1ZSA9IHZhbHVlRnJvbUludGVnZXIoaW50ZWdlcik7XG5cbiAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHt0b0ludGVnZXJTdHJpbmd9JyBmdW5jdGlvbiBhcyAnJHt2YWx1ZVN0cmluZ30nLmApO1xuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlRvSW50ZWdlclwiO1xufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiVG9JbnRlZ2VyIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInZhcmlhYmxlIiwiZ2V0VmFyaWFibGUiLCJldmFsdWF0ZSIsInZhbHVlIiwidG9JbnRlZ2VyU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJ2YWx1ZVR5cGUiLCJnZXRUeXBlIiwidmFsdWVUeXBlTmFtZSIsImdldE5hbWUiLCJpbnRlZ2VyIiwiTElTVF9UWVBFX05BTUUiLCJCT09MRUFOX1RZUEVfTkFNRSIsIklOVEVHRVJfVFlQRV9OQU1FIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwiU1RSSU5HX1RZUEVfTkFNRSIsIk5PTUlOQUxfVkFMVUVfVFlQRV9OQU1FIiwidmFsdWVTdHJpbmciLCJib29sZWFuIiwiaW50ZWdlclJlZ3VsYXJFeHByZXNzc2lvbiIsInRlc3QiLCJOdW1iZXIiLCJ2YWx1ZUZyb21JbnRlZ2VyIiwiZGVidWciLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFZQTs7O2VBQUE7OztnQ0FWd0I7a0VBRUY7MkJBRUY7MEJBQ0c7dUJBQ1U7NEJBQ1M7MkJBQ3NFOzs7Ozs7TUFFaEgsV0FBZUEsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxrQkFBa0JDLHVCQUFPO0lBQ25ELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsUUFBUSxDQUFFO1FBQ3ZELEtBQUssQ0FBQ0osU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxRQUFRLEdBQUdBO0lBQ2xCO0lBRUFDLGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQ0QsUUFBUTtJQUN0QjtJQUVBRSxTQUFTTixPQUFPLEVBQUU7UUFDaEIsSUFBSU87UUFFSixNQUFNQyxrQkFBa0IsSUFBSSxDQUFDQyxTQUFTLElBQUssR0FBRztRQUU5Q1QsUUFBUVUsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLEVBQUVGLGdCQUFnQixhQUFhLENBQUM7UUFFL0RELFFBQVEsSUFBSSxDQUFDSCxRQUFRLENBQUNFLFFBQVEsQ0FBQ047UUFFL0IsTUFBTVcsWUFBWUosTUFBTUssT0FBTyxJQUN6QkMsZ0JBQWdCRixVQUFVRyxPQUFPO1FBRXZDLElBQUlDO1FBRUosT0FBUUY7WUFDTixLQUFLRyx5QkFBYztZQUNuQixLQUFLQyw0QkFBaUI7WUFDdEIsS0FBS0MsNEJBQWlCO2dCQUFFO29CQUN0QixNQUFNQyxVQUFVLENBQUMscUJBQXFCLEVBQUVYLGdCQUFnQix3QkFBd0IsRUFBRUssY0FBYyx3Q0FBd0MsQ0FBQyxFQUNuSU8sWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSDtvQkFFeEMsTUFBTUM7Z0JBQ1I7WUFFQSxLQUFLRywyQkFBZ0I7WUFDckIsS0FBS0Msa0NBQXVCO2dCQUFFO29CQUM1QixNQUFNQyxjQUFjbEIsTUFBTUUsU0FBUyxJQUM3QmlCLFVBQVVDLHFDQUF5QixDQUFDQyxJQUFJLENBQUNIO29CQUUvQyxJQUFJLENBQUNDLFNBQVM7d0JBQ1osTUFBTVAsVUFBVSxDQUFDLHFCQUFxQixFQUFFWCxnQkFBZ0Isd0JBQXdCLEVBQUVLLGNBQWMsMEJBQTBCLENBQUMsRUFDckhPLFlBQVlDLGtCQUFTLENBQUNDLFdBQVcsQ0FBQ0g7d0JBRXhDLE1BQU1DO29CQUNSO29CQUVBTCxVQUFVYyxPQUFPSjtvQkFFakI7Z0JBQ0Y7UUFDRjtRQUVBbEIsUUFBUXVCLElBQUFBLHVCQUFnQixFQUFDZjtRQUV6QixNQUFNVSxjQUFjbEIsTUFBTUUsU0FBUztRQUVuQ1QsUUFBUStCLEtBQUssQ0FBQyxDQUFDLGtCQUFrQixFQUFFdkIsZ0JBQWdCLGVBQWUsRUFBRWlCLFlBQVksRUFBRSxDQUFDO1FBRW5GLE9BQU9sQjtJQUNUO0lBRUEsT0FBT3lCLE9BQU8sWUFBWTtBQUM1QiJ9
@@ -2,15 +2,22 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- Object.defineProperty(exports, "default", {
6
- enumerable: true,
7
- get: function() {
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 default () {
8
13
  return _default;
14
+ },
15
+ get integerRegularExpresssion () {
16
+ return integerRegularExpresssion;
9
17
  }
10
18
  });
11
19
  const _occamlanguages = require("occam-languages");
12
20
  const _exception = /*#__PURE__*/ _interop_require_default(require("../exception"));
13
- const _constants = require("../constants");
14
21
  const _elements = require("../elements");
15
22
  const _value = require("../utilities/value");
16
23
  const _typeNames = require("../typeNames");
@@ -19,6 +26,7 @@ function _interop_require_default(obj) {
19
26
  default: obj
20
27
  };
21
28
  }
29
+ const integerRegularExpresssion = /^[+-]?\d+$/;
22
30
  const _default = (0, _elements.define)(class TryInteger extends _occamlanguages.Element {
23
31
  constructor(context, string, node, breakPoint, variable){
24
32
  super(context, string, node, breakPoint);
@@ -45,8 +53,8 @@ const _default = (0, _elements.define)(class TryInteger extends _occamlanguages.
45
53
  case _typeNames.STRING_TYPE_NAME:
46
54
  case _typeNames.NOMINAL_VALUE_TYPE_NAME:
47
55
  {
48
- const radix = _constants.TEN, valueString = value.getString(), integer = parseInt(valueString, radix), nan = isNaN(integer);
49
- boolean = !nan;
56
+ const valueString = value.getString();
57
+ boolean = integerRegularExpresssion.test(valueString);
50
58
  break;
51
59
  }
52
60
  }
@@ -58,4 +66,4 @@ const _default = (0, _elements.define)(class TryInteger extends _occamlanguages.
58
66
  static name = "TryInteger";
59
67
  });
60
68
 
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3RyeUludGVnZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBURU4gfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IHZhbHVlRnJvbUJvb2xlYW4gfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3ZhbHVlXCI7XG5pbXBvcnQgeyBMSVNUX1RZUEVfTkFNRSwgU1RSSU5HX1RZUEVfTkFNRSwgQk9PTEVBTl9UWVBFX05BTUUsIElOVEVHRVJfVFlQRV9OQU1FLCBOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRSB9IGZyb20gXCIuLi90eXBlTmFtZXNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFRyeUludGVnZXIgZXh0ZW5kcyBFbGVtZW50IHtcbiAgY29uc3RydWN0b3IoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50LCB2YXJpYWJsZSkge1xuICAgIHN1cGVyKGNvbnRleHQsIHN0cmluZywgbm9kZSwgYnJlYWtQb2ludCk7XG5cbiAgICB0aGlzLnZhcmlhYmxlID0gdmFyaWFibGU7XG4gIH1cblxuICBnZXRWYXJpYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy52YXJpYWJsZTtcbiAgfVxuXG4gIGV2YWx1YXRlKGNvbnRleHQpIHtcbiAgICBsZXQgdmFsdWU7XG5cbiAgICBjb25zdCB0cnlJbnRlZ2VyU3RyaW5nID0gdGhpcy5nZXRTdHJpbmcoKTsgIC8vL1xuXG4gICAgY29udGV4dC50cmFjZShgRXZhbHVhdGluZyB0aGUgJyR7dHJ5SW50ZWdlclN0cmluZ30nIGZ1bmN0aW9uLi4uYCk7XG5cbiAgICB2YWx1ZSA9IHRoaXMudmFyaWFibGUuZXZhbHVhdGUoY29udGV4dCk7XG5cbiAgICBjb25zdCB2YWx1ZVR5cGUgPSB2YWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgdmFsdWVUeXBlTmFtZSA9IHZhbHVlVHlwZS5nZXROYW1lKCk7XG5cbiAgICBsZXQgYm9vbGVhbjtcblxuICAgIHN3aXRjaCAodmFsdWVUeXBlTmFtZSkge1xuICAgICAgY2FzZSBMSVNUX1RZUEVfTkFNRTpcbiAgICAgIGNhc2UgQk9PTEVBTl9UWVBFX05BTUU6XG4gICAgICBjYXNlIElOVEVHRVJfVFlQRV9OQU1FOiB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgQ2Fubm90IGV2YWx1YXRlIHRoZSAnJHt0cnlJbnRlZ2VyU3RyaW5nfScgZnVuY3Rpb24gYmVjYXVzZSB0aGUgJyR7dmFsdWVUeXBlTmFtZX0nIHR5cGUgb2YgaXRzIGFyZ3VtZW50IGlzIG5vdCBzdXBwb3J0ZWQuYCxcbiAgICAgICAgICAgICAgZXhjZXB0aW9uID0gRXhjZXB0aW9uLmZyb21NZXNzYWdlKG1lc3NhZ2UpO1xuXG4gICAgICAgIHRocm93IGV4Y2VwdGlvbjtcbiAgICAgIH1cblxuICAgICAgY2FzZSBTVFJJTkdfVFlQRV9OQU1FOlxuICAgICAgY2FzZSBOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRToge1xuICAgICAgICBjb25zdCByYWRpeCA9IFRFTixcbiAgICAgICAgICAgICAgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKSxcbiAgICAgICAgICAgICAgaW50ZWdlciA9IHBhcnNlSW50KHZhbHVlU3RyaW5nLCByYWRpeCksXG4gICAgICAgICAgICAgIG5hbiA9IGlzTmFOKGludGVnZXIpO1xuXG4gICAgICAgIGJvb2xlYW4gPSAhbmFuO1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHZhbHVlID0gdmFsdWVGcm9tQm9vbGVhbihib29sZWFuKTtcblxuICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICBjb250ZXh0LmRlYnVnKGAuLi5ldmFsdWF0ZWQgdGhlICcke3RyeUludGVnZXJTdHJpbmd9JyBmdW5jdGlvbiBhcyAnJHt2YWx1ZVN0cmluZ30nLmApO1xuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlRyeUludGVnZXJcIjtcbn0pO1xuIl0sIm5hbWVzIjpbImRlZmluZSIsIlRyeUludGVnZXIiLCJFbGVtZW50IiwiY29udGV4dCIsInN0cmluZyIsIm5vZGUiLCJicmVha1BvaW50IiwidmFyaWFibGUiLCJnZXRWYXJpYWJsZSIsImV2YWx1YXRlIiwidmFsdWUiLCJ0cnlJbnRlZ2VyU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJ2YWx1ZVR5cGUiLCJnZXRUeXBlIiwidmFsdWVUeXBlTmFtZSIsImdldE5hbWUiLCJib29sZWFuIiwiTElTVF9UWVBFX05BTUUiLCJCT09MRUFOX1RZUEVfTkFNRSIsIklOVEVHRVJfVFlQRV9OQU1FIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwiU1RSSU5HX1RZUEVfTkFNRSIsIk5PTUlOQUxfVkFMVUVfVFlQRV9OQU1FIiwicmFkaXgiLCJURU4iLCJ2YWx1ZVN0cmluZyIsImludGVnZXIiLCJwYXJzZUludCIsIm5hbiIsImlzTmFOIiwidmFsdWVGcm9tQm9vbGVhbiIsImRlYnVnIiwibmFtZSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBV0E7OztlQUFBOzs7Z0NBVHdCO2tFQUVGOzJCQUVGOzBCQUNHO3VCQUNVOzJCQUMrRTs7Ozs7O01BRWhILFdBQWVBLElBQUFBLGdCQUFNLEVBQUMsTUFBTUMsbUJBQW1CQyx1QkFBTztJQUNwRCxZQUFZQyxPQUFPLEVBQUVDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxVQUFVLEVBQUVDLFFBQVEsQ0FBRTtRQUN2RCxLQUFLLENBQUNKLFNBQVNDLFFBQVFDLE1BQU1DO1FBRTdCLElBQUksQ0FBQ0MsUUFBUSxHQUFHQTtJQUNsQjtJQUVBQyxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUNELFFBQVE7SUFDdEI7SUFFQUUsU0FBU04sT0FBTyxFQUFFO1FBQ2hCLElBQUlPO1FBRUosTUFBTUMsbUJBQW1CLElBQUksQ0FBQ0MsU0FBUyxJQUFLLEdBQUc7UUFFL0NULFFBQVFVLEtBQUssQ0FBQyxDQUFDLGdCQUFnQixFQUFFRixpQkFBaUIsYUFBYSxDQUFDO1FBRWhFRCxRQUFRLElBQUksQ0FBQ0gsUUFBUSxDQUFDRSxRQUFRLENBQUNOO1FBRS9CLE1BQU1XLFlBQVlKLE1BQU1LLE9BQU8sSUFDekJDLGdCQUFnQkYsVUFBVUcsT0FBTztRQUV2QyxJQUFJQztRQUVKLE9BQVFGO1lBQ04sS0FBS0cseUJBQWM7WUFDbkIsS0FBS0MsNEJBQWlCO1lBQ3RCLEtBQUtDLDRCQUFpQjtnQkFBRTtvQkFDdEIsTUFBTUMsVUFBVSxDQUFDLHFCQUFxQixFQUFFWCxpQkFBaUIsd0JBQXdCLEVBQUVLLGNBQWMsd0NBQXdDLENBQUMsRUFDcElPLFlBQVlDLGtCQUFTLENBQUNDLFdBQVcsQ0FBQ0g7b0JBRXhDLE1BQU1DO2dCQUNSO1lBRUEsS0FBS0csMkJBQWdCO1lBQ3JCLEtBQUtDLGtDQUF1QjtnQkFBRTtvQkFDNUIsTUFBTUMsUUFBUUMsY0FBRyxFQUNYQyxjQUFjcEIsTUFBTUUsU0FBUyxJQUM3Qm1CLFVBQVVDLFNBQVNGLGFBQWFGLFFBQ2hDSyxNQUFNQyxNQUFNSDtvQkFFbEJiLFVBQVUsQ0FBQ2U7b0JBRVg7Z0JBQ0Y7UUFDRjtRQUVBdkIsUUFBUXlCLElBQUFBLHVCQUFnQixFQUFDakI7UUFFekIsTUFBTVksY0FBY3BCLE1BQU1FLFNBQVM7UUFFbkNULFFBQVFpQyxLQUFLLENBQUMsQ0FBQyxrQkFBa0IsRUFBRXpCLGlCQUFpQixlQUFlLEVBQUVtQixZQUFZLEVBQUUsQ0FBQztRQUVwRixPQUFPcEI7SUFDVDtJQUVBLE9BQU8yQixPQUFPLGFBQWE7QUFDN0IifQ==
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3RyeUludGVnZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IEVsZW1lbnQgfSBmcm9tIFwib2NjYW0tbGFuZ3VhZ2VzXCI7XG5cbmltcG9ydCBFeGNlcHRpb24gZnJvbSBcIi4uL2V4Y2VwdGlvblwiO1xuXG5pbXBvcnQgeyBkZWZpbmUgfSBmcm9tIFwiLi4vZWxlbWVudHNcIjtcbmltcG9ydCB7IHZhbHVlRnJvbUJvb2xlYW4gfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3ZhbHVlXCI7XG5pbXBvcnQgeyBMSVNUX1RZUEVfTkFNRSwgU1RSSU5HX1RZUEVfTkFNRSwgQk9PTEVBTl9UWVBFX05BTUUsIElOVEVHRVJfVFlQRV9OQU1FLCBOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRSB9IGZyb20gXCIuLi90eXBlTmFtZXNcIjtcblxuZXhwb3J0IGNvbnN0IGludGVnZXJSZWd1bGFyRXhwcmVzc3Npb24gPSAvXlsrLV0/XFxkKyQvO1xuXG5leHBvcnQgZGVmYXVsdCBkZWZpbmUoY2xhc3MgVHJ5SW50ZWdlciBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHZhcmlhYmxlKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMudmFyaWFibGUgPSB2YXJpYWJsZTtcbiAgfVxuXG4gIGdldFZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlO1xuICB9XG5cbiAgZXZhbHVhdGUoY29udGV4dCkge1xuICAgIGxldCB2YWx1ZTtcblxuICAgIGNvbnN0IHRyeUludGVnZXJTdHJpbmcgPSB0aGlzLmdldFN0cmluZygpOyAgLy8vXG5cbiAgICBjb250ZXh0LnRyYWNlKGBFdmFsdWF0aW5nIHRoZSAnJHt0cnlJbnRlZ2VyU3RyaW5nfScgZnVuY3Rpb24uLi5gKTtcblxuICAgIHZhbHVlID0gdGhpcy52YXJpYWJsZS5ldmFsdWF0ZShjb250ZXh0KTtcblxuICAgIGNvbnN0IHZhbHVlVHlwZSA9IHZhbHVlLmdldFR5cGUoKSxcbiAgICAgICAgICB2YWx1ZVR5cGVOYW1lID0gdmFsdWVUeXBlLmdldE5hbWUoKTtcblxuICAgIGxldCBib29sZWFuO1xuXG4gICAgc3dpdGNoICh2YWx1ZVR5cGVOYW1lKSB7XG4gICAgICBjYXNlIExJU1RfVFlQRV9OQU1FOlxuICAgICAgY2FzZSBCT09MRUFOX1RZUEVfTkFNRTpcbiAgICAgIGNhc2UgSU5URUdFUl9UWVBFX05BTUU6IHtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGBDYW5ub3QgZXZhbHVhdGUgdGhlICcke3RyeUludGVnZXJTdHJpbmd9JyBmdW5jdGlvbiBiZWNhdXNlIHRoZSAnJHt2YWx1ZVR5cGVOYW1lfScgdHlwZSBvZiBpdHMgYXJndW1lbnQgaXMgbm90IHN1cHBvcnRlZC5gLFxuICAgICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgICAgfVxuXG4gICAgICBjYXNlIFNUUklOR19UWVBFX05BTUU6XG4gICAgICBjYXNlIE5PTUlOQUxfVkFMVUVfVFlQRV9OQU1FOiB7XG4gICAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCk7XG5cbiAgICAgICAgYm9vbGVhbiA9IGludGVnZXJSZWd1bGFyRXhwcmVzc3Npb24udGVzdCh2YWx1ZVN0cmluZyk7XG5cbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFsdWUgPSB2YWx1ZUZyb21Cb29sZWFuKGJvb2xlYW4pO1xuXG4gICAgY29uc3QgdmFsdWVTdHJpbmcgPSB2YWx1ZS5nZXRTdHJpbmcoKTtcblxuICAgIGNvbnRleHQuZGVidWcoYC4uLmV2YWx1YXRlZCB0aGUgJyR7dHJ5SW50ZWdlclN0cmluZ30nIGZ1bmN0aW9uIGFzICcke3ZhbHVlU3RyaW5nfScuYCk7XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBzdGF0aWMgbmFtZSA9IFwiVHJ5SW50ZWdlclwiO1xufSk7XG5cbiJdLCJuYW1lcyI6WyJpbnRlZ2VyUmVndWxhckV4cHJlc3NzaW9uIiwiZGVmaW5lIiwiVHJ5SW50ZWdlciIsIkVsZW1lbnQiLCJjb250ZXh0Iiwic3RyaW5nIiwibm9kZSIsImJyZWFrUG9pbnQiLCJ2YXJpYWJsZSIsImdldFZhcmlhYmxlIiwiZXZhbHVhdGUiLCJ2YWx1ZSIsInRyeUludGVnZXJTdHJpbmciLCJnZXRTdHJpbmciLCJ0cmFjZSIsInZhbHVlVHlwZSIsImdldFR5cGUiLCJ2YWx1ZVR5cGVOYW1lIiwiZ2V0TmFtZSIsImJvb2xlYW4iLCJMSVNUX1RZUEVfTkFNRSIsIkJPT0xFQU5fVFlQRV9OQU1FIiwiSU5URUdFUl9UWVBFX05BTUUiLCJtZXNzYWdlIiwiZXhjZXB0aW9uIiwiRXhjZXB0aW9uIiwiZnJvbU1lc3NhZ2UiLCJTVFJJTkdfVFlQRV9OQU1FIiwiTk9NSU5BTF9WQUxVRV9UWVBFX05BTUUiLCJ2YWx1ZVN0cmluZyIsInRlc3QiLCJ2YWx1ZUZyb21Cb29sZWFuIiwiZGVidWciLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFZQTtlQUFBOztRQUZhQTtlQUFBQTs7O2dDQVJXO2tFQUVGOzBCQUVDO3VCQUNVOzJCQUMrRTs7Ozs7O0FBRXpHLE1BQU1BLDRCQUE0QjtNQUV6QyxXQUFlQyxJQUFBQSxnQkFBTSxFQUFDLE1BQU1DLG1CQUFtQkMsdUJBQU87SUFDcEQsWUFBWUMsT0FBTyxFQUFFQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsVUFBVSxFQUFFQyxRQUFRLENBQUU7UUFDdkQsS0FBSyxDQUFDSixTQUFTQyxRQUFRQyxNQUFNQztRQUU3QixJQUFJLENBQUNDLFFBQVEsR0FBR0E7SUFDbEI7SUFFQUMsY0FBYztRQUNaLE9BQU8sSUFBSSxDQUFDRCxRQUFRO0lBQ3RCO0lBRUFFLFNBQVNOLE9BQU8sRUFBRTtRQUNoQixJQUFJTztRQUVKLE1BQU1DLG1CQUFtQixJQUFJLENBQUNDLFNBQVMsSUFBSyxHQUFHO1FBRS9DVCxRQUFRVSxLQUFLLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRUYsaUJBQWlCLGFBQWEsQ0FBQztRQUVoRUQsUUFBUSxJQUFJLENBQUNILFFBQVEsQ0FBQ0UsUUFBUSxDQUFDTjtRQUUvQixNQUFNVyxZQUFZSixNQUFNSyxPQUFPLElBQ3pCQyxnQkFBZ0JGLFVBQVVHLE9BQU87UUFFdkMsSUFBSUM7UUFFSixPQUFRRjtZQUNOLEtBQUtHLHlCQUFjO1lBQ25CLEtBQUtDLDRCQUFpQjtZQUN0QixLQUFLQyw0QkFBaUI7Z0JBQUU7b0JBQ3RCLE1BQU1DLFVBQVUsQ0FBQyxxQkFBcUIsRUFBRVgsaUJBQWlCLHdCQUF3QixFQUFFSyxjQUFjLHdDQUF3QyxDQUFDLEVBQ3BJTyxZQUFZQyxrQkFBUyxDQUFDQyxXQUFXLENBQUNIO29CQUV4QyxNQUFNQztnQkFDUjtZQUVBLEtBQUtHLDJCQUFnQjtZQUNyQixLQUFLQyxrQ0FBdUI7Z0JBQUU7b0JBQzVCLE1BQU1DLGNBQWNsQixNQUFNRSxTQUFTO29CQUVuQ00sVUFBVW5CLDBCQUEwQjhCLElBQUksQ0FBQ0Q7b0JBRXpDO2dCQUNGO1FBQ0Y7UUFFQWxCLFFBQVFvQixJQUFBQSx1QkFBZ0IsRUFBQ1o7UUFFekIsTUFBTVUsY0FBY2xCLE1BQU1FLFNBQVM7UUFFbkNULFFBQVE0QixLQUFLLENBQUMsQ0FBQyxrQkFBa0IsRUFBRXBCLGlCQUFpQixlQUFlLEVBQUVpQixZQUFZLEVBQUUsQ0FBQztRQUVwRixPQUFPbEI7SUFDVDtJQUVBLE9BQU9zQixPQUFPLGFBQWE7QUFDN0IifQ==
@@ -80,6 +80,8 @@ const bnf = `
80
80
 
81
81
 
82
82
 
83
+ lengthOf ::= "lengthOf"<NO_WHITESPACE>"(" variable ")" ;
84
+
83
85
  toInteger ::= "toInteger"<NO_WHITESPACE>"(" variable ")" ;
84
86
 
85
87
  tryInteger ::= "tryInteger"<NO_WHITESPACE>"(" variable ")" ;
@@ -115,6 +117,8 @@ const bnf = `
115
117
  | every
116
118
 
117
119
  | some
120
+
121
+ | lengthOf
118
122
 
119
123
  | toInteger
120
124
 
@@ -193,4 +197,4 @@ const bnf = `
193
197
  `;
194
198
  const _default = bnf;
195
199
 
196
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leGFtcGxlL2Z1cnRsZS9ibmYuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmNvbnN0IGJuZiA9IGBcblxuICAgIGRvY3VtZW50ICAgICAgICAgICAgICAgIDo6PSAgKCBwcm9jZWR1cmVEZWNsYXJhdGlvbiB8IGVycm9yICkrIDtcbiAgICBcbiAgICBcbiAgICBcbiAgICBwcm9jZWR1cmVEZWNsYXJhdGlvbiAgICA6Oj0gIHR5cGUgbGFiZWw8Tk9fV0hJVEVTUEFDRT5cIihcIiBwYXJhbWV0ZXJzPyBcIilcIiByZXR1cm5CbG9jayA7XG4gICAgXG4gICAgYW5vbnltb3VzUHJvY2VkdXJlICAgICAgOjo9ICB0eXBlIFwiKFwiIHBhcmFtZXRlcnM/IFwiKVwiIHJldHVybkJsb2NrIDtcbiAgICBcbiAgICBzdGVwICAgICAgICAgICAgICAgICAgICA6Oj0gIHZhcmlhYmxlQXNzaWdubWVudHNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgb2JqZWN0QXNzaWdubWVudFxuICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGFycmF5QXNzaWdubWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7ICBcbiAgICAgIFxuICAgICAgXG4gICAgXG4gICAgdmFyaWFibGVBc3NpZ25tZW50cyAgICAgOjo9ICB0eXBlIHZhcmlhYmxlQXNzaWdubWVudCAoIFwiLFwiIHZhcmlhYmxlQXNzaWdubWVudCApKiBcIjtcIiA7XG4gICAgXG4gICAgdmFyaWFibGVBc3NpZ25tZW50ICAgICAgOjo9ICB2YXJpYWJsZSBcIj1cIiBleHByZXNzaW9uIDtcbiAgICBcbiAgICBvYmplY3RBc3NpZ25tZW50ICAgICAgICA6Oj0gIFwie1wiIG5hbWVkQmluZGluZ3MgXCJ9XCIgXCI9XCIgdmFyaWFibGUgXCI7XCIgO1xuICAgIFxuICAgIGFycmF5QXNzaWdubWVudCAgICAgICAgIDo6PSAgXCJbXCIgYmluZGluZ3MgXCJdXCIgXCI9XCIgdmFyaWFibGUgXCI7XCIgO1xuICAgIFxuXG5cbiAgICBuYW1lZEJpbmRpbmdzICAgICAgICAgICA6Oj0gIG5hbWVkQmluZGluZyAoIFwiLFwiIG5hbWVkQmluZGluZyApKiA7XG4gICAgXG4gICAgcGFyYW1ldGVycyAgICAgICAgICAgICAgOjo9ICBwYXJhbWV0ZXIgKCBcIixcIiBwYXJhbWV0ZXIgKSogO1xuICAgIFxuICAgIGJpbmRpbmdzICAgICAgICAgICAgICAgIDo6PSAgYmluZGluZyAoIFwiLFwiIGJpbmRpbmcgKSogO1xuICAgIFxuICAgIHZhbHVlcyAgICAgICAgICAgICAgICAgIDo6PSAgdmFsdWUgKCBcIixcIiB2YWx1ZSApKiA7XG4gICAgXG4gICAgdGVybXMgICAgICAgICAgICAgICAgICAgOjo9ICB0ZXJtICggXCIsXCIgdGVybSApKiA7XG4gICAgXG5cblxuICAgIG5hbWVkQmluZGluZyAgICAgICAgICAgIDo6PSAgdHlwZSBbbmFtZV0gKCBcImFzXCIgW25hbWVdICk/IDsgICBcbiAgICBcbiAgICBwYXJhbWV0ZXIgICAgICAgICAgICAgICA6Oj0gIHR5cGUgW25hbWVdIDtcblxuICAgIGJpbmRpbmcgICAgICAgICAgICAgICAgIDo6PSAgdHlwZSBbbmFtZV1cbiAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIM61IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgO1xuXG5cbiAgICBcbiAgICBwcm9jZWR1cmVDYWxsICAgICAgICAgICA6Oj0gIHJlZmVyZW5jZTxOT19XSElURVNQQUNFPlwiKFwiIHZhbHVlcz8gXCIpXCIgO1xuICAgIFxuICAgIHJldHVybkJsb2NrLi4gICAgICAgICAgIDo6PSAgXCJ7XCIgKCBzdGVwIHwgbm9uc2Vuc2UgKSogcmV0dXJuU3RhdGVtZW50IFwifVwiIDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICBub2Rlc1F1ZXJ5ICAgICAgICAgICAgICA6Oj0gIFwibm9kZXNRdWVyeVwiPE5PX1dISVRFU1BBQ0U+XCIoXCIgdmFyaWFibGUgXCIsXCIgW3N0cmluZy1saXRlcmFsXSBcIilcIiA7XG4gICAgXG4gICAgbm9kZVF1ZXJ5ICAgICAgICAgICAgICAgOjo9ICBcIm5vZGVRdWVyeVwiPE5PX1dISVRFU1BBQ0U+XCIoXCIgdmFyaWFibGUgXCIsXCIgW3N0cmluZy1saXRlcmFsXSBcIilcIiA7XG4gICAgXG4gICAgdGVybmFyeSAgICAgICAgICAgICAgICAgOjo9ICBcImlmXCIgXCIoXCIgdGVybSBcIilcIiBleHByZXNzaW9uIFwiZWxzZVwiIGV4cHJlc3Npb24gO1xuICAgIFxuICAgIHJlZHVjZSAgICAgICAgICAgICAgICAgIDo6PSAgXCJyZWR1Y2VcIjxOT19XSElURVNQQUNFPlwiKFwiIHZhcmlhYmxlIFwiLFwiIGFub255bW91c1Byb2NlZHVyZSBcIixcIiB2YWx1ZSBcIilcIiA7XG4gICAgXG4gICAgZXZlcnkgICAgICAgICAgICAgICAgICAgOjo9ICBcImV2ZXJ5XCI8Tk9fV0hJVEVTUEFDRT5cIihcIiB2YXJpYWJsZSBcIixcIiBhbm9ueW1vdXNQcm9jZWR1cmUgXCIpXCIgO1xuICAgIFxuICAgIHNvbWUgICAgICAgICAgICAgICAgICAgIDo6PSAgXCJzb21lXCI8Tk9fV0hJVEVTUEFDRT5cIihcIiB2YXJpYWJsZSBcIixcIiBhbm9ueW1vdXNQcm9jZWR1cmUgXCIpXCIgO1xuICAgIFxuICAgIFxuICAgIFxuICAgIHRvSW50ZWdlciAgICAgICAgICAgICAgIDo6PSAgXCJ0b0ludGVnZXJcIjxOT19XSElURVNQQUNFPlwiKFwiIHZhcmlhYmxlIFwiKVwiIDtcbiAgICBcbiAgICB0cnlJbnRlZ2VyICAgICAgICAgICAgICA6Oj0gIFwidHJ5SW50ZWdlclwiPE5PX1dISVRFU1BBQ0U+XCIoXCIgdmFyaWFibGUgXCIpXCIgO1xuICAgIFxuICAgIFxuICAgIFxuICAgIHJldHVyblN0YXRlbWVudCAgICAgICAgIDo6PSAgXCJyZXR1cm5cIiB2YWx1ZSBcIjtcIiA7IFxuICAgIFxuICAgIFxuICAgIFxuICAgIGNvbXBhcmlzb25UZXJtICAgICAgICAgIDo6PSAgdGVybSAoIFwiPT1cIiB8IFwiIT1cIiApIHRlcm0gOyBcbiAgICBcbiAgICBicmFja2V0ZWRUZXJtICAgICAgICAgICA6Oj0gIFwiKFwiIHRlcm0gXCIpXCIgOyBcbiAgICBcbiAgICBuZWdhdGVkVGVybSAgICAgICAgICAgICA6Oj0gIFwiIVwiPE5PX1dISVRFU1BBQ0U+dGVybSA7IFxuICAgIFxuICAgIGxvZ2ljYWxUZXJtICAgICAgICAgICAgIDo6PSAgdGVybSAoIFwifHxcIiB8IFwiJiZcIiApIHRlcm0gOyBcblxuXG4gICAgXG4gICAgZXhwcmVzc2lvbiAgICAgICAgICAgICAgOjo9ICBwcm9jZWR1cmVDYWxsXG4gICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgcmV0dXJuQmxvY2tcbiAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIG5vZGVzUXVlcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgbm9kZVF1ZXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIHRlcm5hcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgcmVkdWNlXG4gICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBldmVyeVxuICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgc29tZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIHRvSW50ZWdlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIHRyeUludGVnZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICB0ZXJtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDtcbiAgICBcbiAgICBcbiAgICBcbiAgICB0ZXJtICAgICAgICAgICAgICAgICAgICA6Oj0gIGNvbXBhcmlzb25UZXJtIFxuICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgYnJhY2tldGVkVGVybSBcbiAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGxvZ2ljYWxUZXJtIFxuICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgbmVnYXRlZFRlcm0gXG4gICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBwcmltaXRpdmUgXG4gICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICB2YXJpYWJsZSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgO1xuXG5cbiAgICBcbiAgICAgdHlwZSAgICAgICAgICAgICAgICAgICA6Oj0gIFwiTGlzdFwiPE5PX1dISVRFU1BBQ0U+XCI8XCIgKCBcIk5vZGVcIiB8IFwiU3RyaW5nXCIgfCBcIkJvb2xlYW5cIiB8IFwiSW50ZWdlclwiICkgXCI+XCJcbiAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBcIk5vZGVcIiAgXG4gICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJTdHJpbmdcIiBcbiAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBcIkJvb2xlYW5cIiAgIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBcIkludGVnZXJcIiAgIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7XG5cblxuICAgIFxuICAgIHZhbHVlICAgICAgICAgICAgICAgICAgIDo6PSAgcHJpbWl0aXZlIFxuICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgdmFyaWFibGUgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDtcblxuXG4gICAgXG4gICAgcHJpbWl0aXZlICAgICAgICAgICAgICAgOjo9ICBbc3RyaW5nLWxpdGVyYWxdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFtib29sZWFuXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBbaW50ZWdlcl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgW251bGxdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgO1xuXG5cblxuICAgIHJlZmVyZW5jZS4gICAgICAgICAgICAgIDo6PSAgW25hbWVdIDtcbiAgICBcbiAgICB2YXJpYWJsZSAgICAgICAgICAgICAgICA6Oj0gIFtuYW1lXSA7XG4gICAgXG4gICAgbGFiZWwuICAgICAgICAgICAgICAgICAgOjo9ICBbbmFtZV0gO1xuICAgIFxuICAgIFxuICAgIFxuICAgIG5vbnNlbnNlLiAgICAgICAgICAgICAgIDo6PSAgW3N0cmluZy1saXRlcmFsXSB8IFtzZWNvbmRhcnkta2V5d29yZF0gfCBbZnVuY3Rpb24tbmFtZV0gfCBbdHlwZV0gfCBbYm9vbGVhbl0gfCBbaW50ZWdlcl0gfCBbbnVsbF0gfCBbbmFtZV0gfCBbc3BlY2lhbF0gfCBbdW5hc3NpZ25lZF0gO1xuXG5cbiAgICBcbiAgICBlcnJvci4gICAgICAgICAgICAgICAgICA6Oj0gIC4gO1xuICAgIFxuYDtcblxuZXhwb3J0IGRlZmF1bHQgYm5mO1xuIl0sIm5hbWVzIjpbImJuZiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBMExBOzs7ZUFBQTs7O0FBeExBLE1BQU1BLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFzTGIsQ0FBQztNQUVELFdBQWVBIn0=
200
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leGFtcGxlL2Z1cnRsZS9ibmYuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmNvbnN0IGJuZiA9IGBcblxuICAgIGRvY3VtZW50ICAgICAgICAgICAgICAgIDo6PSAgKCBwcm9jZWR1cmVEZWNsYXJhdGlvbiB8IGVycm9yICkrIDtcbiAgICBcbiAgICBcbiAgICBcbiAgICBwcm9jZWR1cmVEZWNsYXJhdGlvbiAgICA6Oj0gIHR5cGUgbGFiZWw8Tk9fV0hJVEVTUEFDRT5cIihcIiBwYXJhbWV0ZXJzPyBcIilcIiByZXR1cm5CbG9jayA7XG4gICAgXG4gICAgYW5vbnltb3VzUHJvY2VkdXJlICAgICAgOjo9ICB0eXBlIFwiKFwiIHBhcmFtZXRlcnM/IFwiKVwiIHJldHVybkJsb2NrIDtcbiAgICBcbiAgICBzdGVwICAgICAgICAgICAgICAgICAgICA6Oj0gIHZhcmlhYmxlQXNzaWdubWVudHNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgb2JqZWN0QXNzaWdubWVudFxuICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGFycmF5QXNzaWdubWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7ICBcbiAgICAgIFxuICAgICAgXG4gICAgXG4gICAgdmFyaWFibGVBc3NpZ25tZW50cyAgICAgOjo9ICB0eXBlIHZhcmlhYmxlQXNzaWdubWVudCAoIFwiLFwiIHZhcmlhYmxlQXNzaWdubWVudCApKiBcIjtcIiA7XG4gICAgXG4gICAgdmFyaWFibGVBc3NpZ25tZW50ICAgICAgOjo9ICB2YXJpYWJsZSBcIj1cIiBleHByZXNzaW9uIDtcbiAgICBcbiAgICBvYmplY3RBc3NpZ25tZW50ICAgICAgICA6Oj0gIFwie1wiIG5hbWVkQmluZGluZ3MgXCJ9XCIgXCI9XCIgdmFyaWFibGUgXCI7XCIgO1xuICAgIFxuICAgIGFycmF5QXNzaWdubWVudCAgICAgICAgIDo6PSAgXCJbXCIgYmluZGluZ3MgXCJdXCIgXCI9XCIgdmFyaWFibGUgXCI7XCIgO1xuICAgIFxuXG5cbiAgICBuYW1lZEJpbmRpbmdzICAgICAgICAgICA6Oj0gIG5hbWVkQmluZGluZyAoIFwiLFwiIG5hbWVkQmluZGluZyApKiA7XG4gICAgXG4gICAgcGFyYW1ldGVycyAgICAgICAgICAgICAgOjo9ICBwYXJhbWV0ZXIgKCBcIixcIiBwYXJhbWV0ZXIgKSogO1xuICAgIFxuICAgIGJpbmRpbmdzICAgICAgICAgICAgICAgIDo6PSAgYmluZGluZyAoIFwiLFwiIGJpbmRpbmcgKSogO1xuICAgIFxuICAgIHZhbHVlcyAgICAgICAgICAgICAgICAgIDo6PSAgdmFsdWUgKCBcIixcIiB2YWx1ZSApKiA7XG4gICAgXG4gICAgdGVybXMgICAgICAgICAgICAgICAgICAgOjo9ICB0ZXJtICggXCIsXCIgdGVybSApKiA7XG4gICAgXG5cblxuICAgIG5hbWVkQmluZGluZyAgICAgICAgICAgIDo6PSAgdHlwZSBbbmFtZV0gKCBcImFzXCIgW25hbWVdICk/IDsgICBcbiAgICBcbiAgICBwYXJhbWV0ZXIgICAgICAgICAgICAgICA6Oj0gIHR5cGUgW25hbWVdIDtcblxuICAgIGJpbmRpbmcgICAgICAgICAgICAgICAgIDo6PSAgdHlwZSBbbmFtZV1cbiAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIM61IFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgO1xuXG5cbiAgICBcbiAgICBwcm9jZWR1cmVDYWxsICAgICAgICAgICA6Oj0gIHJlZmVyZW5jZTxOT19XSElURVNQQUNFPlwiKFwiIHZhbHVlcz8gXCIpXCIgO1xuICAgIFxuICAgIHJldHVybkJsb2NrLi4gICAgICAgICAgIDo6PSAgXCJ7XCIgKCBzdGVwIHwgbm9uc2Vuc2UgKSogcmV0dXJuU3RhdGVtZW50IFwifVwiIDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICBub2Rlc1F1ZXJ5ICAgICAgICAgICAgICA6Oj0gIFwibm9kZXNRdWVyeVwiPE5PX1dISVRFU1BBQ0U+XCIoXCIgdmFyaWFibGUgXCIsXCIgW3N0cmluZy1saXRlcmFsXSBcIilcIiA7XG4gICAgXG4gICAgbm9kZVF1ZXJ5ICAgICAgICAgICAgICAgOjo9ICBcIm5vZGVRdWVyeVwiPE5PX1dISVRFU1BBQ0U+XCIoXCIgdmFyaWFibGUgXCIsXCIgW3N0cmluZy1saXRlcmFsXSBcIilcIiA7XG4gICAgXG4gICAgdGVybmFyeSAgICAgICAgICAgICAgICAgOjo9ICBcImlmXCIgXCIoXCIgdGVybSBcIilcIiBleHByZXNzaW9uIFwiZWxzZVwiIGV4cHJlc3Npb24gO1xuICAgIFxuICAgIHJlZHVjZSAgICAgICAgICAgICAgICAgIDo6PSAgXCJyZWR1Y2VcIjxOT19XSElURVNQQUNFPlwiKFwiIHZhcmlhYmxlIFwiLFwiIGFub255bW91c1Byb2NlZHVyZSBcIixcIiB2YWx1ZSBcIilcIiA7XG4gICAgXG4gICAgZXZlcnkgICAgICAgICAgICAgICAgICAgOjo9ICBcImV2ZXJ5XCI8Tk9fV0hJVEVTUEFDRT5cIihcIiB2YXJpYWJsZSBcIixcIiBhbm9ueW1vdXNQcm9jZWR1cmUgXCIpXCIgO1xuICAgIFxuICAgIHNvbWUgICAgICAgICAgICAgICAgICAgIDo6PSAgXCJzb21lXCI8Tk9fV0hJVEVTUEFDRT5cIihcIiB2YXJpYWJsZSBcIixcIiBhbm9ueW1vdXNQcm9jZWR1cmUgXCIpXCIgO1xuICAgIFxuICAgIFxuICAgIFxuICAgIGxlbmd0aE9mICAgICAgICAgICAgICAgIDo6PSAgXCJsZW5ndGhPZlwiPE5PX1dISVRFU1BBQ0U+XCIoXCIgdmFyaWFibGUgXCIpXCIgO1xuICAgIFxuICAgIHRvSW50ZWdlciAgICAgICAgICAgICAgIDo6PSAgXCJ0b0ludGVnZXJcIjxOT19XSElURVNQQUNFPlwiKFwiIHZhcmlhYmxlIFwiKVwiIDtcbiAgICBcbiAgICB0cnlJbnRlZ2VyICAgICAgICAgICAgICA6Oj0gIFwidHJ5SW50ZWdlclwiPE5PX1dISVRFU1BBQ0U+XCIoXCIgdmFyaWFibGUgXCIpXCIgO1xuICAgIFxuICAgIFxuICAgIFxuICAgIHJldHVyblN0YXRlbWVudCAgICAgICAgIDo6PSAgXCJyZXR1cm5cIiB2YWx1ZSBcIjtcIiA7IFxuICAgIFxuICAgIFxuICAgIFxuICAgIGNvbXBhcmlzb25UZXJtICAgICAgICAgIDo6PSAgdGVybSAoIFwiPT1cIiB8IFwiIT1cIiApIHRlcm0gOyBcbiAgICBcbiAgICBicmFja2V0ZWRUZXJtICAgICAgICAgICA6Oj0gIFwiKFwiIHRlcm0gXCIpXCIgOyBcbiAgICBcbiAgICBuZWdhdGVkVGVybSAgICAgICAgICAgICA6Oj0gIFwiIVwiPE5PX1dISVRFU1BBQ0U+dGVybSA7IFxuICAgIFxuICAgIGxvZ2ljYWxUZXJtICAgICAgICAgICAgIDo6PSAgdGVybSAoIFwifHxcIiB8IFwiJiZcIiApIHRlcm0gOyBcblxuXG4gICAgXG4gICAgZXhwcmVzc2lvbiAgICAgICAgICAgICAgOjo9ICBwcm9jZWR1cmVDYWxsXG4gICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgcmV0dXJuQmxvY2tcbiAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIG5vZGVzUXVlcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgbm9kZVF1ZXJ5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIHRlcm5hcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgcmVkdWNlXG4gICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBldmVyeVxuICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgc29tZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBsZW5ndGhPZlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIHRvSW50ZWdlclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIHRyeUludGVnZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICB0ZXJtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDtcbiAgICBcbiAgICBcbiAgICBcbiAgICB0ZXJtICAgICAgICAgICAgICAgICAgICA6Oj0gIGNvbXBhcmlzb25UZXJtIFxuICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgYnJhY2tldGVkVGVybSBcbiAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGxvZ2ljYWxUZXJtIFxuICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgbmVnYXRlZFRlcm0gXG4gICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBwcmltaXRpdmUgXG4gICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICB2YXJpYWJsZSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgO1xuXG5cbiAgICBcbiAgICAgdHlwZSAgICAgICAgICAgICAgICAgICA6Oj0gIFwiTGlzdFwiPE5PX1dISVRFU1BBQ0U+XCI8XCIgKCBcIk5vZGVcIiB8IFwiU3RyaW5nXCIgfCBcIkJvb2xlYW5cIiB8IFwiSW50ZWdlclwiICkgXCI+XCJcbiAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBcIk5vZGVcIiAgXG4gICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgXCJTdHJpbmdcIiBcbiAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBcIkJvb2xlYW5cIiAgIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBcIkludGVnZXJcIiAgIFxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7XG5cblxuICAgIFxuICAgIHZhbHVlICAgICAgICAgICAgICAgICAgIDo6PSAgcHJpbWl0aXZlIFxuICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgdmFyaWFibGUgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDtcblxuXG4gICAgXG4gICAgcHJpbWl0aXZlICAgICAgICAgICAgICAgOjo9ICBbc3RyaW5nLWxpdGVyYWxdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIFtib29sZWFuXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICBbaW50ZWdlcl1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgW251bGxdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgO1xuXG5cblxuICAgIHJlZmVyZW5jZS4gICAgICAgICAgICAgIDo6PSAgW25hbWVdIDtcbiAgICBcbiAgICB2YXJpYWJsZSAgICAgICAgICAgICAgICA6Oj0gIFtuYW1lXSA7XG4gICAgXG4gICAgbGFiZWwuICAgICAgICAgICAgICAgICAgOjo9ICBbbmFtZV0gO1xuICAgIFxuICAgIFxuICAgIFxuICAgIG5vbnNlbnNlLiAgICAgICAgICAgICAgIDo6PSAgW3N0cmluZy1saXRlcmFsXSB8IFtzZWNvbmRhcnkta2V5d29yZF0gfCBbZnVuY3Rpb24tbmFtZV0gfCBbdHlwZV0gfCBbYm9vbGVhbl0gfCBbaW50ZWdlcl0gfCBbbnVsbF0gfCBbbmFtZV0gfCBbc3BlY2lhbF0gfCBbdW5hc3NpZ25lZF0gO1xuXG5cbiAgICBcbiAgICBlcnJvci4gICAgICAgICAgICAgICAgICA6Oj0gIC4gO1xuICAgIFxuYDtcblxuZXhwb3J0IGRlZmF1bHQgYm5mO1xuIl0sIm5hbWVzIjpbImJuZiJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7K0JBOExBOzs7ZUFBQTs7O0FBNUxBLE1BQU1BLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBMExiLENBQUM7TUFFRCxXQUFlQSJ9
@@ -20,7 +20,7 @@ const entries = [
20
20
  "secondary-keyword": "^(?:as|if|else)"
21
21
  },
22
22
  {
23
- "function-name": "^(?:nodeQuery|nodesQuery|reduce|every|some|toInteger|tryInteger)"
23
+ "function-name": "^(?:nodeQuery|nodesQuery|reduce|every|some|lengthOf|toInteger|tryInteger)"
24
24
  },
25
25
  {
26
26
  "type": "^(?:List|Node|String|Boolean|Integer)"
@@ -46,4 +46,4 @@ const entries = [
46
46
  ];
47
47
  const _default = entries;
48
48
 
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leGFtcGxlL2Z1cnRsZS9lbnRyaWVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5cclxuY29uc3QgTEFUSU4gPSBcIltcXFxccHtTY3JpcHQ9TGF0aW59XVwiLFxyXG4gICAgICBERUNJTUFMID0gXCJbMC05XVwiO1xyXG5cclxuY29uc3QgZW50cmllcyA9IFtcclxuICB7XHJcbiAgICBcImJyYWNrZXRcIjogXCJeKD86XFxcXHt8XFxcXH0pXCJcclxuICB9LFxyXG4gIHtcclxuICAgIFwicHJpbWFyeS1rZXl3b3JkXCI6IFwiXnJldHVyblwiXHJcbiAgfSxcclxuICB7XHJcbiAgICBcInNlY29uZGFyeS1rZXl3b3JkXCI6IFwiXig/OmFzfGlmfGVsc2UpXCJcclxuICB9LFxyXG4gIHtcclxuICAgIFwiZnVuY3Rpb24tbmFtZVwiOiBcIl4oPzpub2RlUXVlcnl8bm9kZXNRdWVyeXxyZWR1Y2V8ZXZlcnl8c29tZXx0b0ludGVnZXJ8dHJ5SW50ZWdlcilcIlxyXG4gIH0sXHJcbiAge1xyXG4gICAgXCJ0eXBlXCI6IFwiXig/Okxpc3R8Tm9kZXxTdHJpbmd8Qm9vbGVhbnxJbnRlZ2VyKVwiXHJcbiAgfSxcclxuICB7XHJcbiAgICBcImJvb2xlYW5cIjogXCJeKD86dHJ1ZXxmYWxzZSlcIlxyXG4gIH0sXHJcbiAge1xyXG4gICAgXCJpbnRlZ2VyXCI6IFwiXlsrXFxcXC1dP1xcXFxkK1wiXHJcbiAgfSxcclxuICB7XHJcbiAgICBcIm51bGxcIjogXCJebnVsbFwiXHJcbiAgfSxcclxuICB7XHJcbiAgICBcIm5hbWVcIjogYF4ke0xBVElOfSske0RFQ0lNQUx9KmAsXHJcbiAgfSxcclxuICB7XHJcbiAgICBcInNwZWNpYWxcIjogXCJeKD86PHw+fCE9fD09fCF8PXwsfDt8JiZ8XFxcXHxcXFxcfHxcXFxcKHxcXFxcKXxcXFxcW3xcXFxcXSlcIlxyXG4gIH0sXHJcbiAge1xyXG4gICAgXCJ1bmFzc2lnbmVkXCI6IFwiXlteXFxcXHNdK1wiXHJcbiAgfVxyXG5dO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZW50cmllcztcclxuIl0sIm5hbWVzIjpbIkxBVElOIiwiREVDSU1BTCIsImVudHJpZXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQXlDQTs7O2VBQUE7OztBQXZDQSxNQUFNQSxRQUFRLHVCQUNSQyxVQUFVO0FBRWhCLE1BQU1DLFVBQVU7SUFDZDtRQUNFLFdBQVc7SUFDYjtJQUNBO1FBQ0UsbUJBQW1CO0lBQ3JCO0lBQ0E7UUFDRSxxQkFBcUI7SUFDdkI7SUFDQTtRQUNFLGlCQUFpQjtJQUNuQjtJQUNBO1FBQ0UsUUFBUTtJQUNWO0lBQ0E7UUFDRSxXQUFXO0lBQ2I7SUFDQTtRQUNFLFdBQVc7SUFDYjtJQUNBO1FBQ0UsUUFBUTtJQUNWO0lBQ0E7UUFDRSxRQUFRLENBQUMsQ0FBQyxFQUFFRixNQUFNLENBQUMsRUFBRUMsUUFBUSxDQUFDLENBQUM7SUFDakM7SUFDQTtRQUNFLFdBQVc7SUFDYjtJQUNBO1FBQ0UsY0FBYztJQUNoQjtDQUNEO01BRUQsV0FBZUMifQ==
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leGFtcGxlL2Z1cnRsZS9lbnRyaWVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5cclxuY29uc3QgTEFUSU4gPSBcIltcXFxccHtTY3JpcHQ9TGF0aW59XVwiLFxyXG4gICAgICBERUNJTUFMID0gXCJbMC05XVwiO1xyXG5cclxuY29uc3QgZW50cmllcyA9IFtcclxuICB7XHJcbiAgICBcImJyYWNrZXRcIjogXCJeKD86XFxcXHt8XFxcXH0pXCJcclxuICB9LFxyXG4gIHtcclxuICAgIFwicHJpbWFyeS1rZXl3b3JkXCI6IFwiXnJldHVyblwiXHJcbiAgfSxcclxuICB7XHJcbiAgICBcInNlY29uZGFyeS1rZXl3b3JkXCI6IFwiXig/OmFzfGlmfGVsc2UpXCJcclxuICB9LFxyXG4gIHtcclxuICAgIFwiZnVuY3Rpb24tbmFtZVwiOiBcIl4oPzpub2RlUXVlcnl8bm9kZXNRdWVyeXxyZWR1Y2V8ZXZlcnl8c29tZXxsZW5ndGhPZnx0b0ludGVnZXJ8dHJ5SW50ZWdlcilcIlxyXG4gIH0sXHJcbiAge1xyXG4gICAgXCJ0eXBlXCI6IFwiXig/Okxpc3R8Tm9kZXxTdHJpbmd8Qm9vbGVhbnxJbnRlZ2VyKVwiXHJcbiAgfSxcclxuICB7XHJcbiAgICBcImJvb2xlYW5cIjogXCJeKD86dHJ1ZXxmYWxzZSlcIlxyXG4gIH0sXHJcbiAge1xyXG4gICAgXCJpbnRlZ2VyXCI6IFwiXlsrXFxcXC1dP1xcXFxkK1wiXHJcbiAgfSxcclxuICB7XHJcbiAgICBcIm51bGxcIjogXCJebnVsbFwiXHJcbiAgfSxcclxuICB7XHJcbiAgICBcIm5hbWVcIjogYF4ke0xBVElOfSske0RFQ0lNQUx9KmAsXHJcbiAgfSxcclxuICB7XHJcbiAgICBcInNwZWNpYWxcIjogXCJeKD86PHw+fCE9fD09fCF8PXwsfDt8JiZ8XFxcXHxcXFxcfHxcXFxcKHxcXFxcKXxcXFxcW3xcXFxcXSlcIlxyXG4gIH0sXHJcbiAge1xyXG4gICAgXCJ1bmFzc2lnbmVkXCI6IFwiXlteXFxcXHNdK1wiXHJcbiAgfVxyXG5dO1xyXG5cclxuZXhwb3J0IGRlZmF1bHQgZW50cmllcztcclxuIl0sIm5hbWVzIjpbIkxBVElOIiwiREVDSU1BTCIsImVudHJpZXMiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQXlDQTs7O2VBQUE7OztBQXZDQSxNQUFNQSxRQUFRLHVCQUNSQyxVQUFVO0FBRWhCLE1BQU1DLFVBQVU7SUFDZDtRQUNFLFdBQVc7SUFDYjtJQUNBO1FBQ0UsbUJBQW1CO0lBQ3JCO0lBQ0E7UUFDRSxxQkFBcUI7SUFDdkI7SUFDQTtRQUNFLGlCQUFpQjtJQUNuQjtJQUNBO1FBQ0UsUUFBUTtJQUNWO0lBQ0E7UUFDRSxXQUFXO0lBQ2I7SUFDQTtRQUNFLFdBQVc7SUFDYjtJQUNBO1FBQ0UsUUFBUTtJQUNWO0lBQ0E7UUFDRSxRQUFRLENBQUMsQ0FBQyxFQUFFRixNQUFNLENBQUMsRUFBRUMsUUFBUSxDQUFDLENBQUM7SUFDakM7SUFDQTtRQUNFLFdBQVc7SUFDYjtJQUNBO1FBQ0UsY0FBYztJQUNoQjtDQUNEO01BRUQsV0FBZUMifQ==
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "occam-furtle",
3
3
  "author": "James Smith",
4
- "version": "3.0.326",
4
+ "version": "3.0.328",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/occam-furtle",
7
7
  "description": "Occam's Furtle language.",
@@ -11,7 +11,7 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "necessary": "^17.2.10",
14
- "occam-languages": "^0.0.290",
14
+ "occam-languages": "^0.0.291",
15
15
  "occam-lexers": "^23.1.67",
16
16
  "occam-parsers": "^23.1.80",
17
17
  "occam-query": "^4.1.183"
@@ -27,8 +27,8 @@
27
27
  "juxtapose": "^4.0.138",
28
28
  "lively-cli": "^3.0.3",
29
29
  "occam-grammar-utilities": "^8.0.440",
30
- "occam-model": "^1.0.544",
31
- "occam-server": "^7.0.44",
30
+ "occam-model": "^1.0.545",
31
+ "occam-server": "^7.0.45",
32
32
  "watchful-cli": "^1.7.98"
33
33
  },
34
34
  "scripts": {
package/src/constants.js CHANGED
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
 
3
- export const TEN = 10;
4
3
  export const NULL = "null";
5
4
  export const TRUE = "true";
6
5
  export const FALSE = "false";
@@ -7,6 +7,7 @@ import Exception from "../exception";
7
7
  import { TEN } from "../constants";
8
8
  import { define } from "../elements";
9
9
  import { valueFromInteger } from "../utilities/value";
10
+ import { integerRegularExpresssion } from "./tryInteger";
10
11
  import { LIST_TYPE_NAME, STRING_TYPE_NAME, BOOLEAN_TYPE_NAME, INTEGER_TYPE_NAME, NOMINAL_VALUE_TYPE_NAME } from "../typeNames";
11
12
 
12
13
  export default define(class ToInteger extends Element {
@@ -46,20 +47,18 @@ export default define(class ToInteger extends Element {
46
47
 
47
48
  case STRING_TYPE_NAME:
48
49
  case NOMINAL_VALUE_TYPE_NAME: {
49
- const radix = TEN,
50
- valueString = value.getString();
50
+ const valueString = value.getString(),
51
+ boolean = integerRegularExpresssion.test(valueString);
51
52
 
52
- integer = parseInt(valueString, radix);
53
-
54
- const nan = isNaN(integer);
55
-
56
- if (nan) {
53
+ if (!boolean) {
57
54
  const message = `Cannot evaluate the '${toIntegerString}' function because the '${valueTypeName}' value is not an integer.`,
58
55
  exception = Exception.fromMessage(message);
59
56
 
60
57
  throw exception;
61
58
  }
62
59
 
60
+ integer = Number(valueString);
61
+
63
62
  break;
64
63
  }
65
64
  }
@@ -4,11 +4,12 @@ import { Element } from "occam-languages";
4
4
 
5
5
  import Exception from "../exception";
6
6
 
7
- import { TEN } from "../constants";
8
7
  import { define } from "../elements";
9
8
  import { valueFromBoolean } from "../utilities/value";
10
9
  import { LIST_TYPE_NAME, STRING_TYPE_NAME, BOOLEAN_TYPE_NAME, INTEGER_TYPE_NAME, NOMINAL_VALUE_TYPE_NAME } from "../typeNames";
11
10
 
11
+ export const integerRegularExpresssion = /^[+-]?\d+$/;
12
+
12
13
  export default define(class TryInteger extends Element {
13
14
  constructor(context, string, node, breakPoint, variable) {
14
15
  super(context, string, node, breakPoint);
@@ -46,12 +47,9 @@ export default define(class TryInteger extends Element {
46
47
 
47
48
  case STRING_TYPE_NAME:
48
49
  case NOMINAL_VALUE_TYPE_NAME: {
49
- const radix = TEN,
50
- valueString = value.getString(),
51
- integer = parseInt(valueString, radix),
52
- nan = isNaN(integer);
50
+ const valueString = value.getString();
53
51
 
54
- boolean = !nan;
52
+ boolean = integerRegularExpresssion.test(valueString);
55
53
 
56
54
  break;
57
55
  }
@@ -68,3 +66,4 @@ export default define(class TryInteger extends Element {
68
66
 
69
67
  static name = "TryInteger";
70
68
  });
69
+
@@ -72,6 +72,8 @@ const bnf = `
72
72
 
73
73
 
74
74
 
75
+ lengthOf ::= "lengthOf"<NO_WHITESPACE>"(" variable ")" ;
76
+
75
77
  toInteger ::= "toInteger"<NO_WHITESPACE>"(" variable ")" ;
76
78
 
77
79
  tryInteger ::= "tryInteger"<NO_WHITESPACE>"(" variable ")" ;
@@ -107,6 +109,8 @@ const bnf = `
107
109
  | every
108
110
 
109
111
  | some
112
+
113
+ | lengthOf
110
114
 
111
115
  | toInteger
112
116
 
@@ -14,7 +14,7 @@ const entries = [
14
14
  "secondary-keyword": "^(?:as|if|else)"
15
15
  },
16
16
  {
17
- "function-name": "^(?:nodeQuery|nodesQuery|reduce|every|some|toInteger|tryInteger)"
17
+ "function-name": "^(?:nodeQuery|nodesQuery|reduce|every|some|lengthOf|toInteger|tryInteger)"
18
18
  },
19
19
  {
20
20
  "type": "^(?:List|Node|String|Boolean|Integer)"