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 +1 -5
- package/lib/element/toInteger.js +5 -5
- package/lib/element/tryInteger.js +15 -7
- package/lib/example/furtle/bnf.js +5 -1
- package/lib/example/furtle/entries.js +2 -2
- package/package.json +4 -4
- package/src/constants.js +0 -1
- package/src/element/toInteger.js +6 -7
- package/src/element/tryInteger.js +5 -6
- package/src/example/furtle/bnf.js +4 -0
- package/src/example/furtle/entries.js +1 -1
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,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb25zdGFudHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmV4cG9ydCBjb25zdCBOVUxMID0gXCJudWxsXCI7XG5leHBvcnQgY29uc3QgVFJVRSA9IFwidHJ1ZVwiO1xuZXhwb3J0IGNvbnN0IEZBTFNFID0gXCJmYWxzZVwiO1xuZXhwb3J0IGNvbnN0IEVNUFRZX1NUUklORyA9IFwiXCI7XG5leHBvcnQgY29uc3QgTk9UX0VRVUFMX1RPID0gXCIhPVwiO1xuZXhwb3J0IGNvbnN0IENPTkpVTkNUSU9OX09QRVJBVE9SID0gXCImJlwiO1xuZXhwb3J0IGNvbnN0IERJU0pVTkNUSU9OX09QRVJBVE9SID0gXCJ8fFwiO1xuIl0sIm5hbWVzIjpbIkNPTkpVTkNUSU9OX09QRVJBVE9SIiwiRElTSlVOQ1RJT05fT1BFUkFUT1IiLCJFTVBUWV9TVFJJTkciLCJGQUxTRSIsIk5PVF9FUVVBTF9UTyIsIk5VTEwiLCJUUlVFIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7UUFPYUE7ZUFBQUE7O1FBQ0FDO2VBQUFBOztRQUhBQztlQUFBQTs7UUFEQUM7ZUFBQUE7O1FBRUFDO2VBQUFBOztRQUpBQztlQUFBQTs7UUFDQUM7ZUFBQUE7OztBQUROLE1BQU1ELE9BQU87QUFDYixNQUFNQyxPQUFPO0FBQ2IsTUFBTUgsUUFBUTtBQUNkLE1BQU1ELGVBQWU7QUFDckIsTUFBTUUsZUFBZTtBQUNyQixNQUFNSix1QkFBdUI7QUFDN0IsTUFBTUMsdUJBQXVCIn0=
|
package/lib/element/toInteger.js
CHANGED
|
@@ -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
|
|
49
|
-
|
|
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,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lbGVtZW50L3RvSW50ZWdlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IHsgRWxlbWVudCB9IGZyb20gXCJvY2NhbS1sYW5ndWFnZXNcIjtcblxuaW1wb3J0IEV4Y2VwdGlvbiBmcm9tIFwiLi4vZXhjZXB0aW9uXCI7XG5cbmltcG9ydCB7IFRFTiB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGRlZmluZSB9IGZyb20gXCIuLi9lbGVtZW50c1wiO1xuaW1wb3J0IHsgdmFsdWVGcm9tSW50ZWdlciB9IGZyb20gXCIuLi91dGlsaXRpZXMvdmFsdWVcIjtcbmltcG9ydCB7IGludGVnZXJSZWd1bGFyRXhwcmVzc3Npb24gfSBmcm9tIFwiLi90cnlJbnRlZ2VyXCI7XG5pbXBvcnQgeyBMSVNUX1RZUEVfTkFNRSwgU1RSSU5HX1RZUEVfTkFNRSwgQk9PTEVBTl9UWVBFX05BTUUsIElOVEVHRVJfVFlQRV9OQU1FLCBOT01JTkFMX1ZBTFVFX1RZUEVfTkFNRSB9IGZyb20gXCIuLi90eXBlTmFtZXNcIjtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lKGNsYXNzIFRvSW50ZWdlciBleHRlbmRzIEVsZW1lbnQge1xuICBjb25zdHJ1Y3Rvcihjb250ZXh0LCBzdHJpbmcsIG5vZGUsIGJyZWFrUG9pbnQsIHZhcmlhYmxlKSB7XG4gICAgc3VwZXIoY29udGV4dCwgc3RyaW5nLCBub2RlLCBicmVha1BvaW50KTtcblxuICAgIHRoaXMudmFyaWFibGUgPSB2YXJpYWJsZTtcbiAgfVxuXG4gIGdldFZhcmlhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnZhcmlhYmxlO1xuICB9XG5cbiAgZXZhbHVhdGUoY29udGV4dCkge1xuICAgIGxldCB2YWx1ZTtcblxuICAgIGNvbnN0IHRvSW50ZWdlclN0cmluZyA9IHRoaXMuZ2V0U3RyaW5nKCk7ICAvLy9cblxuICAgIGNvbnRleHQudHJhY2UoYEV2YWx1YXRpbmcgdGhlICcke3RvSW50ZWdlclN0cmluZ30nIGZ1bmN0aW9uLi4uYCk7XG5cbiAgICB2YWx1ZSA9IHRoaXMudmFyaWFibGUuZXZhbHVhdGUoY29udGV4dCk7XG5cbiAgICBjb25zdCB2YWx1ZVR5cGUgPSB2YWx1ZS5nZXRUeXBlKCksXG4gICAgICAgICAgdmFsdWVUeXBlTmFtZSA9IHZhbHVlVHlwZS5nZXROYW1lKCk7XG5cbiAgICBsZXQgaW50ZWdlcjtcblxuICAgIHN3aXRjaCAodmFsdWVUeXBlTmFtZSkge1xuICAgICAgY2FzZSBMSVNUX1RZUEVfTkFNRTpcbiAgICAgIGNhc2UgQk9PTEVBTl9UWVBFX05BTUU6XG4gICAgICBjYXNlIElOVEVHRVJfVFlQRV9OQU1FOiB7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgQ2Fubm90IGV2YWx1YXRlIHRoZSAnJHt0b0ludGVnZXJTdHJpbmd9JyBmdW5jdGlvbiBiZWNhdXNlIHRoZSAnJHt2YWx1ZVR5cGVOYW1lfScgdHlwZSBvZiBpdHMgYXJndW1lbnQgaXMgbm90IHN1cHBvcnRlZC5gLFxuICAgICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgICAgdGhyb3cgZXhjZXB0aW9uO1xuICAgICAgfVxuXG4gICAgICBjYXNlIFNUUklOR19UWVBFX05BTUU6XG4gICAgICBjYXNlIE5PTUlOQUxfVkFMVUVfVFlQRV9OQU1FOiB7XG4gICAgICAgIGNvbnN0IHZhbHVlU3RyaW5nID0gdmFsdWUuZ2V0U3RyaW5nKCksXG4gICAgICAgICAgICAgIGJvb2xlYW4gPSBpbnRlZ2VyUmVndWxhckV4cHJlc3NzaW9uLnRlc3QodmFsdWVTdHJpbmcpO1xuXG4gICAgICAgIGlmICghYm9vbGVhbikge1xuICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgQ2Fubm90IGV2YWx1YXRlIHRoZSAnJHt0b0ludGVnZXJTdHJpbmd9JyBmdW5jdGlvbiBiZWNhdXNlIHRoZSAnJHt2YWx1ZVR5cGVOYW1lfScgdmFsdWUgaXMgbm90IGFuIGludGVnZXIuYCxcbiAgICAgICAgICAgICAgICBleGNlcHRpb24gPSBFeGNlcHRpb24uZnJvbU1lc3NhZ2UobWVzc2FnZSk7XG5cbiAgICAgICAgICB0aHJvdyBleGNlcHRpb247XG4gICAgICAgIH1cblxuICAgICAgICBpbnRlZ2VyID0gTnVtYmVyKHZhbHVlU3RyaW5nKTtcblxuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YWx1ZSA9IHZhbHVlRnJvbUludGVnZXIoaW50ZWdlcik7XG5cbiAgICBjb25zdCB2YWx1ZVN0cmluZyA9IHZhbHVlLmdldFN0cmluZygpO1xuXG4gICAgY29udGV4dC5kZWJ1ZyhgLi4uZXZhbHVhdGVkIHRoZSAnJHt0b0ludGVnZXJTdHJpbmd9JyBmdW5jdGlvbiBhcyAnJHt2YWx1ZVN0cmluZ30nLmApO1xuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgc3RhdGljIG5hbWUgPSBcIlRvSW50ZWdlclwiO1xufSk7XG4iXSwibmFtZXMiOlsiZGVmaW5lIiwiVG9JbnRlZ2VyIiwiRWxlbWVudCIsImNvbnRleHQiLCJzdHJpbmciLCJub2RlIiwiYnJlYWtQb2ludCIsInZhcmlhYmxlIiwiZ2V0VmFyaWFibGUiLCJldmFsdWF0ZSIsInZhbHVlIiwidG9JbnRlZ2VyU3RyaW5nIiwiZ2V0U3RyaW5nIiwidHJhY2UiLCJ2YWx1ZVR5cGUiLCJnZXRUeXBlIiwidmFsdWVUeXBlTmFtZSIsImdldE5hbWUiLCJpbnRlZ2VyIiwiTElTVF9UWVBFX05BTUUiLCJCT09MRUFOX1RZUEVfTkFNRSIsIklOVEVHRVJfVFlQRV9OQU1FIiwibWVzc2FnZSIsImV4Y2VwdGlvbiIsIkV4Y2VwdGlvbiIsImZyb21NZXNzYWdlIiwiU1RSSU5HX1RZUEVfTkFNRSIsIk5PTUlOQUxfVkFMVUVfVFlQRV9OQU1FIiwidmFsdWVTdHJpbmciLCJib29sZWFuIiwiaW50ZWdlclJlZ3VsYXJFeHByZXNzc2lvbiIsInRlc3QiLCJOdW1iZXIiLCJ2YWx1ZUZyb21JbnRlZ2VyIiwiZGVidWciLCJuYW1lIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFZQTs7O2VBQUE7OztnQ0FWd0I7a0VBRUY7MkJBRUY7MEJBQ0c7dUJBQ1U7NEJBQ1M7MkJBQ3NFOzs7Ozs7TUFFaEgsV0FBZUEsSUFBQUEsZ0JBQU0sRUFBQyxNQUFNQyxrQkFBa0JDLHVCQUFPO0lBQ25ELFlBQVlDLE9BQU8sRUFBRUMsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFVBQVUsRUFBRUMsUUFBUSxDQUFFO1FBQ3ZELEtBQUssQ0FBQ0osU0FBU0MsUUFBUUMsTUFBTUM7UUFFN0IsSUFBSSxDQUFDQyxRQUFRLEdBQUdBO0lBQ2xCO0lBRUFDLGNBQWM7UUFDWixPQUFPLElBQUksQ0FBQ0QsUUFBUTtJQUN0QjtJQUVBRSxTQUFTTixPQUFPLEVBQUU7UUFDaEIsSUFBSU87UUFFSixNQUFNQyxrQkFBa0IsSUFBSSxDQUFDQyxTQUFTLElBQUssR0FBRztRQUU5Q1QsUUFBUVUsS0FBSyxDQUFDLENBQUMsZ0JBQWdCLEVBQUVGLGdCQUFnQixhQUFhLENBQUM7UUFFL0RELFFBQVEsSUFBSSxDQUFDSCxRQUFRLENBQUNFLFFBQVEsQ0FBQ047UUFFL0IsTUFBTVcsWUFBWUosTUFBTUssT0FBTyxJQUN6QkMsZ0JBQWdCRixVQUFVRyxPQUFPO1FBRXZDLElBQUlDO1FBRUosT0FBUUY7WUFDTixLQUFLRyx5QkFBYztZQUNuQixLQUFLQyw0QkFBaUI7WUFDdEIsS0FBS0MsNEJBQWlCO2dCQUFFO29CQUN0QixNQUFNQyxVQUFVLENBQUMscUJBQXFCLEVBQUVYLGdCQUFnQix3QkFBd0IsRUFBRUssY0FBYyx3Q0FBd0MsQ0FBQyxFQUNuSU8sWUFBWUMsa0JBQVMsQ0FBQ0MsV0FBVyxDQUFDSDtvQkFFeEMsTUFBTUM7Z0JBQ1I7WUFFQSxLQUFLRywyQkFBZ0I7WUFDckIsS0FBS0Msa0NBQXVCO2dCQUFFO29CQUM1QixNQUFNQyxjQUFjbEIsTUFBTUUsU0FBUyxJQUM3QmlCLFVBQVVDLHFDQUF5QixDQUFDQyxJQUFJLENBQUNIO29CQUUvQyxJQUFJLENBQUNDLFNBQVM7d0JBQ1osTUFBTVAsVUFBVSxDQUFDLHFCQUFxQixFQUFFWCxnQkFBZ0Isd0JBQXdCLEVBQUVLLGNBQWMsMEJBQTBCLENBQUMsRUFDckhPLFlBQVlDLGtCQUFTLENBQUNDLFdBQVcsQ0FBQ0g7d0JBRXhDLE1BQU1DO29CQUNSO29CQUVBTCxVQUFVYyxPQUFPSjtvQkFFakI7Z0JBQ0Y7UUFDRjtRQUVBbEIsUUFBUXVCLElBQUFBLHVCQUFnQixFQUFDZjtRQUV6QixNQUFNVSxjQUFjbEIsTUFBTUUsU0FBUztRQUVuQ1QsUUFBUStCLEtBQUssQ0FBQyxDQUFDLGtCQUFrQixFQUFFdkIsZ0JBQWdCLGVBQWUsRUFBRWlCLFlBQVksRUFBRSxDQUFDO1FBRW5GLE9BQU9sQjtJQUNUO0lBRUEsT0FBT3lCLE9BQU8sWUFBWTtBQUM1QiJ9
|
|
@@ -2,15 +2,22 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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
|
|
49
|
-
boolean =
|
|
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,
|
|
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+
|
|
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/
|
|
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.
|
|
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.
|
|
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.
|
|
31
|
-
"occam-server": "^7.0.
|
|
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
package/src/element/toInteger.js
CHANGED
|
@@ -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
|
|
50
|
-
|
|
50
|
+
const valueString = value.getString(),
|
|
51
|
+
boolean = integerRegularExpresssion.test(valueString);
|
|
51
52
|
|
|
52
|
-
|
|
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
|
|
50
|
-
valueString = value.getString(),
|
|
51
|
-
integer = parseInt(valueString, radix),
|
|
52
|
-
nan = isNaN(integer);
|
|
50
|
+
const valueString = value.getString();
|
|
53
51
|
|
|
54
|
-
boolean =
|
|
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)"
|