functionalscript 0.7.0 → 0.8.1
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/LICENSE +21 -661
- package/README.md +3 -2
- package/bnf/data/module.f.d.ts +16 -6
- package/bnf/data/module.f.js +115 -23
- package/bnf/data/test.f.d.ts +4 -0
- package/bnf/data/test.f.js +389 -14
- package/bnf/module.f.d.ts +5 -4
- package/bnf/module.f.js +1 -1
- package/bnf/testlib.f.js +1 -1
- package/ci/module.f.d.ts +3 -0
- package/ci/module.f.js +169 -0
- package/ci/module.js +3 -0
- package/crypto/hmac/module.f.d.ts +5 -4
- package/crypto/hmac/module.f.js +9 -18
- package/crypto/hmac/test.f.d.ts +1 -0
- package/crypto/hmac/test.f.js +16 -8
- package/crypto/prime_field/module.f.d.ts +1 -1
- package/crypto/prime_field/module.f.js +4 -3
- package/crypto/prime_field/test.f.js +13 -13
- package/crypto/rfc6979/module.f.d.ts +15 -0
- package/crypto/rfc6979/module.f.js +98 -0
- package/crypto/rfc6979/test.f.d.ts +10 -0
- package/crypto/rfc6979/test.f.js +490 -0
- package/crypto/secp/module.f.d.ts +4 -4
- package/crypto/secp/module.f.js +1 -1
- package/crypto/secp/test.f.js +8 -8
- package/crypto/sha2/module.f.d.ts +11 -5
- package/crypto/sha2/module.f.js +4 -3
- package/crypto/sha2/test.f.d.ts +4 -1
- package/crypto/sha2/test.f.js +41 -31
- package/crypto/sign/module.f.d.ts +1 -1
- package/crypto/sign/module.f.js +3 -2
- package/dev/tf/all.test.js +9 -1
- package/djs/ast/module.f.d.ts +3 -3
- package/djs/ast/test.f.js +7 -8
- package/djs/parser/module.f.d.ts +3 -3
- package/djs/parser/module.f.js +4 -4
- package/djs/parser/test.f.js +76 -77
- package/djs/serializer/module.f.d.ts +8 -8
- package/djs/serializer/module.f.js +4 -7
- package/djs/serializer/test.f.js +8 -9
- package/djs/tokenizer/module.f.d.ts +2 -2
- package/djs/tokenizer/module.f.js +3 -5
- package/djs/tokenizer/test.f.js +8 -10
- package/djs/transpiler/module.f.d.ts +3 -3
- package/djs/transpiler/module.f.js +2 -0
- package/fsc/bnf.f.d.ts +1 -1
- package/fsc/bnf.f.js +39 -51
- package/fsc/json.f.d.ts +1 -1
- package/fsc/json.f.js +56 -81
- package/fsc/test.f.d.ts +5 -0
- package/fsc/test.f.js +69 -7
- package/fsm/module.f.js +3 -3
- package/fsm/test.f.js +21 -25
- package/html/module.f.js +17 -4
- package/html/test.f.d.ts +7 -0
- package/html/test.f.js +37 -0
- package/issues/031-json.f.d.ts +1 -0
- package/js/tokenizer/module.f.d.ts +4 -4
- package/js/tokenizer/module.f.js +12 -17
- package/js/tokenizer/test.f.js +9 -11
- package/json/module.f.d.ts +6 -6
- package/json/module.f.js +5 -10
- package/json/parser/module.f.d.ts +4 -4
- package/json/parser/module.f.js +7 -4
- package/json/parser/test.f.js +47 -49
- package/json/serializer/module.f.d.ts +6 -6
- package/json/serializer/module.f.js +3 -2
- package/json/serializer/test.f.js +13 -13
- package/json/test.f.js +13 -15
- package/json/tokenizer/module.f.d.ts +4 -4
- package/json/tokenizer/module.f.js +6 -7
- package/json/tokenizer/test.f.js +7 -9
- package/nanvm-lib/tests/vm/test.f.d.ts +25 -0
- package/nanvm-lib/tests/vm/test.f.js +105 -0
- package/package.json +8 -8
- package/text/ascii/test.f.js +2 -2
- package/text/module.f.d.ts +3 -2
- package/text/module.f.js +2 -2
- package/text/test.f.js +3 -3
- package/text/utf16/test.f.js +2 -2
- package/text/utf8/test.f.js +2 -2
- package/types/array/test.f.js +2 -2
- package/types/bigint/module.f.d.ts +6 -3
- package/types/bigint/module.f.js +12 -11
- package/types/bigint/test.f.d.ts +2 -0
- package/types/bigint/test.f.js +21 -2
- package/types/bit_vec/module.f.d.ts +66 -34
- package/types/bit_vec/module.f.js +97 -32
- package/types/bit_vec/test.f.d.ts +7 -0
- package/types/bit_vec/test.f.js +283 -62
- package/types/btree/find/test.f.js +9 -8
- package/types/btree/remove/test.f.js +4 -4
- package/types/btree/set/test.f.js +4 -4
- package/types/btree/test.f.js +7 -7
- package/types/byte_set/test.f.js +2 -2
- package/types/function/compare/module.f.d.ts +15 -1
- package/types/function/compare/module.f.js +1 -1
- package/types/function/compare/test.f.js +37 -4
- package/types/list/test.f.js +93 -93
- package/types/monoid/module.f.d.ts +4 -4
- package/types/monoid/module.f.js +3 -3
- package/types/monoid/test.f.js +3 -3
- package/types/nominal/module.f.d.ts +5 -0
- package/types/nominal/module.f.js +4 -0
- package/types/nominal/test.f.d.ts +5 -0
- package/types/nominal/test.f.js +53 -0
- package/types/number/module.f.js +2 -2
- package/types/range_map/test.f.js +21 -21
- package/types/sorted_list/test.f.js +10 -10
- package/types/sorted_set/test.f.js +14 -14
- package/types/string/module.f.js +2 -2
- package/types/string_set/module.f.js +3 -3
- package/bnf/djs/module.f.d.ts +0 -77
- package/bnf/djs/module.f.js +0 -207
- package/bnf/djs/test.f.d.ts +0 -8
- package/bnf/djs/test.f.js +0 -277
- package/bnf/func/module.f.d.ts +0 -148
- package/bnf/func/module.f.js +0 -132
- package/bnf/func/test.f.d.ts +0 -12
- package/bnf/func/test.f.js +0 -171
- package/bnf/func/testlib.f.d.ts +0 -25
- package/bnf/func/testlib.f.js +0 -150
- /package/{issues/31-json.f.d.ts → ci/module.d.ts} +0 -0
- /package/issues/{31-json.f.js → 031-json.f.js} +0 -0
package/bnf/func/test.f.js
DELETED
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
import { stringify } from "../../json/module.f.js";
|
|
2
|
-
import { sort } from "../../types/object/module.f.js";
|
|
3
|
-
import { cp, str, range, remove, set, repeat0, join0, } from "./module.f.js";
|
|
4
|
-
const deterministic = () => {
|
|
5
|
-
const wsSet = () => set('\t\n\r '); // 9,10,13,32
|
|
6
|
-
// {"empty":true,"map":[[false,8],[true,10],[false,12],[true,13],[false,31],[true,32]]}
|
|
7
|
-
const ws = repeat0(wsSet);
|
|
8
|
-
// {"empty":true,"map":[[false,42],[true,43],[false,44],[true,45]]}
|
|
9
|
-
const sign = () => [
|
|
10
|
-
[],
|
|
11
|
-
...set('+-'), // 43
|
|
12
|
-
];
|
|
13
|
-
// {"empty":false,"map":[[false,48],[true,57]]}
|
|
14
|
-
const onenine = () => [
|
|
15
|
-
[range('19')]
|
|
16
|
-
];
|
|
17
|
-
// {"empty":false,"map":[[false,47],[true,57]]}
|
|
18
|
-
const digit = () => [
|
|
19
|
-
str('0'),
|
|
20
|
-
[onenine],
|
|
21
|
-
];
|
|
22
|
-
// {"empty":true,"map":[[false,47],[true,57]]}
|
|
23
|
-
const digits0 = repeat0(digit);
|
|
24
|
-
// {"empty":false,"map":[[false,47],[true,57]]}
|
|
25
|
-
const digits1 = () => [
|
|
26
|
-
[digit, digits0]
|
|
27
|
-
];
|
|
28
|
-
const e = () => set('Ee'); // 69, 101
|
|
29
|
-
// {"empty":true,"map":[[false,68],[true,69],[false,100],[true,101]]}
|
|
30
|
-
const exponent = () => [
|
|
31
|
-
[],
|
|
32
|
-
[e, sign, digits1], // 69 | 101
|
|
33
|
-
];
|
|
34
|
-
// {"empty":true,"map":[[false,45],[true,46]]}
|
|
35
|
-
const fraction = () => [
|
|
36
|
-
[],
|
|
37
|
-
[cp('.'), digits1] // 46
|
|
38
|
-
];
|
|
39
|
-
// {"empty":false,"map":[[false,47],[true,57]]}
|
|
40
|
-
const unsignedInteger = () => [
|
|
41
|
-
str('0'), // 48
|
|
42
|
-
[onenine, digits0], // 49-57
|
|
43
|
-
];
|
|
44
|
-
// {"empty":false,"map":[[false,44],[true,45],[false,47],[true,57]]}
|
|
45
|
-
const integer = () => [
|
|
46
|
-
[unsignedInteger], // 48-57
|
|
47
|
-
[cp('-'), unsignedInteger], // 45
|
|
48
|
-
];
|
|
49
|
-
// {"empty":false,"map":[[false,44],[true,45],[false,47],[true,57]]}
|
|
50
|
-
const number = () => [
|
|
51
|
-
[integer, fraction, exponent]
|
|
52
|
-
];
|
|
53
|
-
// {"empty":false,"map":[[false,47],[true,57],[false,64],[true,70],[false,96],[true,102]]}
|
|
54
|
-
const hex = () => [
|
|
55
|
-
[digit], // 48-57
|
|
56
|
-
[range('AF')], // A..F
|
|
57
|
-
[range('af')], // a..f
|
|
58
|
-
];
|
|
59
|
-
// {"empty":false,"map":[[false,33],[true,34],[false,46],[true,47],[false,91],[true,92],[false,97],[true,98],[false,101],[true,102],[false,109],[true,110],[false,113],[true,114],[false,115],[true,117]]}
|
|
60
|
-
const escape = () => [
|
|
61
|
-
...set('"\\/bfnrt'),
|
|
62
|
-
[cp('u'), hex, hex, hex, hex] // 117
|
|
63
|
-
];
|
|
64
|
-
// {"empty":false,"map":[[false,31],[true,33],[false,34],[true,1114111]]}
|
|
65
|
-
const character = () => [
|
|
66
|
-
...remove([0x20, 0x10FFFF], [cp('"'), cp('\\')]),
|
|
67
|
-
[cp('\\'), escape], // 92
|
|
68
|
-
];
|
|
69
|
-
// {"empty":true,"map":[[false,31],[true,33],[false,34],[true,1114111]]}
|
|
70
|
-
const characters = repeat0(character);
|
|
71
|
-
// {"empty":false,"map":[[false,33],[true,34]]}
|
|
72
|
-
const string = () => [
|
|
73
|
-
[cp('"'), characters, cp('"')]
|
|
74
|
-
];
|
|
75
|
-
const comma = () => [[cp(','), ws]];
|
|
76
|
-
// {"empty":false,"map":[[false,33],[true,34],[false,44],[true,45],[false,47],[true,57],[false,90],[true,91],[false,101],[true,102],[false,109],[true,110],[false,115],[true,116],[false,122],[true,123]]}
|
|
77
|
-
const element = () => [
|
|
78
|
-
[value, ws]
|
|
79
|
-
];
|
|
80
|
-
const list = (open, rule, close) => () => [
|
|
81
|
-
[cp(open), ws, join0(rule, comma), cp(close)]
|
|
82
|
-
];
|
|
83
|
-
// {"empty":false,"map":[[false,90],[true,91]]}
|
|
84
|
-
const array = list('[', element, ']');
|
|
85
|
-
// {"empty":false,"map":[[false,33],[true,34]]}
|
|
86
|
-
const member = () => [
|
|
87
|
-
[string, ws, cp(':'), ws, element]
|
|
88
|
-
];
|
|
89
|
-
// {"empty":false,"map":[[false,122],[true,123]]}
|
|
90
|
-
const object = list('{', member, '}');
|
|
91
|
-
// {"empty":false,"map":[[false,33],[true,34],[false,44],[true,45],[false,47],[true,57],[false,90],[true,91],[false,101],[true,102],[false,109],[true,110],[false,115],[true,116],[false,122],[true,123]]}
|
|
92
|
-
const value = () => [
|
|
93
|
-
[object], // 123
|
|
94
|
-
[array], // 91
|
|
95
|
-
[string], // 34
|
|
96
|
-
[number], // 45, 48-57
|
|
97
|
-
str('true'), // 116
|
|
98
|
-
str('false'), // 102
|
|
99
|
-
str('null'), // 110
|
|
100
|
-
];
|
|
101
|
-
// {"empty":false,"map":[[false,8],[true,10],[false,12],[true,13],[false,31],[true,32],[false,33],[true,34],[false,44],[true,45],[false,47],[true,57],[false,90],[true,91],[false,101],[true,102],[false,109],[true,110],[false,115],[true,116],[false,122],[true,123]]}
|
|
102
|
-
const json = [ws, element];
|
|
103
|
-
const _ = json;
|
|
104
|
-
};
|
|
105
|
-
//
|
|
106
|
-
const s = stringify(sort);
|
|
107
|
-
export default {
|
|
108
|
-
example: {
|
|
109
|
-
module: () => {
|
|
110
|
-
// Matches 'A-Z', 'a-z', and '0-9'
|
|
111
|
-
const grammar = () => [
|
|
112
|
-
[range('AZ')],
|
|
113
|
-
[range('az')],
|
|
114
|
-
[range('09')],
|
|
115
|
-
];
|
|
116
|
-
const _ = grammar;
|
|
117
|
-
},
|
|
118
|
-
types: () => {
|
|
119
|
-
const alpha = range('AZ'); // Matches 'A-Z'
|
|
120
|
-
const id2 = [alpha, alpha]; // Matches two uppercase letters
|
|
121
|
-
const digit = range('09'); // Matches '0-9'
|
|
122
|
-
// Matches two uppercase letters or one digit
|
|
123
|
-
const id2OrDigit = [
|
|
124
|
-
id2,
|
|
125
|
-
[digit],
|
|
126
|
-
];
|
|
127
|
-
// Matches 'true', 'false'
|
|
128
|
-
const bool = () => [
|
|
129
|
-
str('true'),
|
|
130
|
-
str('false'),
|
|
131
|
-
];
|
|
132
|
-
// zero or more alpha symbols
|
|
133
|
-
const alpha0x = () => [
|
|
134
|
-
[], // Empty
|
|
135
|
-
[alpha, alpha0x] // Recursive
|
|
136
|
-
];
|
|
137
|
-
const id = [alpha, alpha0x];
|
|
138
|
-
const _ = [id2OrDigit, bool, id];
|
|
139
|
-
},
|
|
140
|
-
str: () => {
|
|
141
|
-
const ranges = str('abc'); // [[97, 97], [98, 98], [99, 99]]
|
|
142
|
-
const result = s(ranges);
|
|
143
|
-
if (result !== '[[97,97],[98,98],[99,99]]') {
|
|
144
|
-
throw result;
|
|
145
|
-
}
|
|
146
|
-
},
|
|
147
|
-
cp: () => {
|
|
148
|
-
const range = cp('A'); // [65, 65]
|
|
149
|
-
const result = s(range);
|
|
150
|
-
if (result !== '[65,65]') {
|
|
151
|
-
throw result;
|
|
152
|
-
}
|
|
153
|
-
},
|
|
154
|
-
range: () => {
|
|
155
|
-
const r = range('AZ'); // [65, 90]
|
|
156
|
-
const result = s(r);
|
|
157
|
-
if (result !== '[65,90]') {
|
|
158
|
-
throw result;
|
|
159
|
-
}
|
|
160
|
-
},
|
|
161
|
-
remove: () => {
|
|
162
|
-
const result = s(remove([65, 90], [cp('C'), cp('W')])); // [A..Z] w/o C and W
|
|
163
|
-
if (result !== '[[[65,66]],[[68,86]],[[88,90]]]') {
|
|
164
|
-
throw result;
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
},
|
|
168
|
-
remove: () => {
|
|
169
|
-
const _x = remove([0x20, 0x10FFFF], [cp('"'), cp('\\')]);
|
|
170
|
-
}
|
|
171
|
-
};
|
package/bnf/func/testlib.f.d.ts
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { type Rule } from './module.f.ts';
|
|
2
|
-
export declare const classic: () => {
|
|
3
|
-
readonly ws: Rule;
|
|
4
|
-
readonly sign: Rule;
|
|
5
|
-
readonly digits: Rule;
|
|
6
|
-
readonly exponent: Rule;
|
|
7
|
-
readonly fraction: Rule;
|
|
8
|
-
readonly onenine: Rule;
|
|
9
|
-
readonly digit: Rule;
|
|
10
|
-
readonly string: Rule;
|
|
11
|
-
readonly member: Rule;
|
|
12
|
-
readonly members: Rule;
|
|
13
|
-
readonly object: Rule;
|
|
14
|
-
readonly array: Rule;
|
|
15
|
-
readonly integer: Rule;
|
|
16
|
-
readonly number: Rule;
|
|
17
|
-
readonly value: Rule;
|
|
18
|
-
readonly element: Rule;
|
|
19
|
-
readonly elements: Rule;
|
|
20
|
-
readonly json: Rule;
|
|
21
|
-
readonly hex: Rule;
|
|
22
|
-
readonly escape: Rule;
|
|
23
|
-
readonly character: Rule;
|
|
24
|
-
readonly characters: Rule;
|
|
25
|
-
};
|
package/bnf/func/testlib.f.js
DELETED
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
import { cp, range, remove, str } from "./module.f.js";
|
|
2
|
-
// https://www.json.org/json-en.html
|
|
3
|
-
export const classic = () => {
|
|
4
|
-
// {"empty":true,"map":[[false,8],[true,10],[false,12],[true,13],[false,31],[true,32]]}
|
|
5
|
-
const ws = () => [
|
|
6
|
-
[],
|
|
7
|
-
[cp(' '), ws], // 32
|
|
8
|
-
[cp('\n'), ws], // 10
|
|
9
|
-
[cp('\r'), ws], // 13
|
|
10
|
-
[cp('\t'), ws], // 9
|
|
11
|
-
];
|
|
12
|
-
// {"empty":true,"map":[[false,42],[true,43],[false,44],[true,45]]}
|
|
13
|
-
const sign = () => [
|
|
14
|
-
[],
|
|
15
|
-
str('+'), // 43
|
|
16
|
-
str('-'), // 45
|
|
17
|
-
];
|
|
18
|
-
// {"empty":false,"map":[[false,48],[true,57]]}
|
|
19
|
-
const onenine = () => [[[0x31, 0x39]]];
|
|
20
|
-
// {"empty":false,"map":[[false,47],[true,57]]}
|
|
21
|
-
const digit = () => [
|
|
22
|
-
str('0'),
|
|
23
|
-
[onenine],
|
|
24
|
-
];
|
|
25
|
-
// {"empty":false,"map":[[false,47],[true,57]]}
|
|
26
|
-
const digits = () => [
|
|
27
|
-
[digit],
|
|
28
|
-
[digit, digits]
|
|
29
|
-
];
|
|
30
|
-
// {"empty":true,"map":[[false,68],[true,69],[false,100],[true,101]]}
|
|
31
|
-
const exponent = () => [
|
|
32
|
-
[],
|
|
33
|
-
[cp('E'), sign, digits], // 69
|
|
34
|
-
[cp('e'), sign, digits], // 101
|
|
35
|
-
];
|
|
36
|
-
// {"empty":true,"map":[[false,45],[true,46]]}
|
|
37
|
-
const fraction = () => [
|
|
38
|
-
[],
|
|
39
|
-
[cp('.'), digits] // 46
|
|
40
|
-
];
|
|
41
|
-
// {"empty":false,"map":[[false,44],[true,45],[false,47],[true,57]]}
|
|
42
|
-
const integer = () => [
|
|
43
|
-
[digit], // 48-57
|
|
44
|
-
[onenine, digits],
|
|
45
|
-
[cp('-'), digit], // 45
|
|
46
|
-
[cp('-'), onenine, digits],
|
|
47
|
-
];
|
|
48
|
-
// {"empty":false,"map":[[false,44],[true,45],[false,47],[true,57]]}
|
|
49
|
-
const number = () => [
|
|
50
|
-
[integer, fraction, exponent]
|
|
51
|
-
];
|
|
52
|
-
// {"empty":false,"map":[[false,47],[true,57],[false,64],[true,70],[false,96],[true,102]]}
|
|
53
|
-
const hex = () => [
|
|
54
|
-
[digit], // 48-57
|
|
55
|
-
[range('AF')], // A..F
|
|
56
|
-
[range('af')], // a..f
|
|
57
|
-
];
|
|
58
|
-
// {"empty":false,"map":[[false,33],[true,34],[false,46],[true,47],[false,91],[true,92],[false,97],[true,98],[false,101],[true,102],[false,109],[true,110],[false,113],[true,114],[false,115],[true,117]]}
|
|
59
|
-
const escape = () => [
|
|
60
|
-
str('"'), // 34
|
|
61
|
-
str('\\'), // 92
|
|
62
|
-
str('/'), // 47
|
|
63
|
-
str('b'), // 98
|
|
64
|
-
str('f'), // 102
|
|
65
|
-
str('n'), // 110
|
|
66
|
-
str('r'), // 114
|
|
67
|
-
str('t'), // 116
|
|
68
|
-
[cp('u'), hex, hex, hex, hex] // 117
|
|
69
|
-
];
|
|
70
|
-
// {"empty":false,"map":[[false,31],[true,33],[false,34],[true,1114111]]}
|
|
71
|
-
const character = () => [
|
|
72
|
-
...remove([0x20, 0x10FFFF], [cp('"'), cp('\\')]),
|
|
73
|
-
[cp('\\'), escape],
|
|
74
|
-
];
|
|
75
|
-
// {"empty":true,"map":[[false,31],[true,33],[false,34],[true,1114111]]}
|
|
76
|
-
const characters = () => [
|
|
77
|
-
[],
|
|
78
|
-
[character, characters]
|
|
79
|
-
];
|
|
80
|
-
// {"empty":false,"map":[[false,33],[true,34]]}
|
|
81
|
-
const string = () => [
|
|
82
|
-
[cp('"'), characters, cp('"')]
|
|
83
|
-
];
|
|
84
|
-
// {"empty":false,"map":[[false,8],[true,10],[false,12],[true,13],[false,31],[true,32],[false,33],[true,34],[false,44],[true,45],[false,47],[true,57],[false,90],[true,91],[false,101],[true,102],[false,109],[true,110],[false,115],[true,116],[false,122],[true,123]]}
|
|
85
|
-
const element = () => [
|
|
86
|
-
[ws, value, ws]
|
|
87
|
-
];
|
|
88
|
-
// {"empty":false,"map":[[false,8],[true,10],[false,12],[true,13],[false,31],[true,32],[false,33],[true,34],[false,44],[true,45],[false,47],[true,57],[false,90],[true,91],[false,101],[true,102],[false,109],[true,110],[false,115],[true,116],[false,122],[true,123]]}
|
|
89
|
-
const elements = () => [
|
|
90
|
-
[element],
|
|
91
|
-
[element, cp(','), elements]
|
|
92
|
-
];
|
|
93
|
-
// {"empty":false,"map":[[false,90],[true,91]]}
|
|
94
|
-
const array = () => [
|
|
95
|
-
[cp('['), ws, cp(']')], // 91
|
|
96
|
-
[cp('['), elements, cp(']')],
|
|
97
|
-
];
|
|
98
|
-
// {"empty":false,"map":[[false,8],[true,10],[false,12],[true,13],[false,31],[true,32],[false,33],[true,34]]}
|
|
99
|
-
const member = () => [
|
|
100
|
-
[ws, string, ws, cp(':'), element]
|
|
101
|
-
];
|
|
102
|
-
// {"empty":false,"map":[[false,8],[true,10],[false,12],[true,13],[false,31],[true,32],[false,33],[true,34]]}
|
|
103
|
-
const members = () => [
|
|
104
|
-
[member],
|
|
105
|
-
[member, cp(','), members],
|
|
106
|
-
];
|
|
107
|
-
// {"empty":false,"map":[[false,122],[true,123]]}
|
|
108
|
-
const object = () => [
|
|
109
|
-
[cp('{'), ws, cp('}')], // 123
|
|
110
|
-
[cp('{'), members, cp('}')],
|
|
111
|
-
];
|
|
112
|
-
// {"empty":false,"map":[[false,33],[true,34],[false,44],[true,45],[false,47],[true,57],[false,90],[true,91],[false,101],[true,102],[false,109],[true,110],[false,115],[true,116],[false,122],[true,123]]}
|
|
113
|
-
const value = () => [
|
|
114
|
-
[object], // 123
|
|
115
|
-
[array], // 91
|
|
116
|
-
[string], // 34
|
|
117
|
-
[number], // 45, 48-57
|
|
118
|
-
str('true'), // 116
|
|
119
|
-
str('false'), // 102
|
|
120
|
-
str('null'), // 110
|
|
121
|
-
];
|
|
122
|
-
// {"empty":false,"map":[[false,8],[true,10],[false,12],[true,13],[false,31],[true,32],[false,33],[true,34],[false,44],[true,45],[false,47],[true,57],[false,90],[true,91],[false,101],[true,102],[false,109],[true,110],[false,115],[true,116],[false,122],[true,123]]}
|
|
123
|
-
const json = () => [
|
|
124
|
-
[element]
|
|
125
|
-
];
|
|
126
|
-
return {
|
|
127
|
-
ws,
|
|
128
|
-
sign,
|
|
129
|
-
digits,
|
|
130
|
-
exponent,
|
|
131
|
-
fraction,
|
|
132
|
-
onenine,
|
|
133
|
-
digit,
|
|
134
|
-
string,
|
|
135
|
-
member,
|
|
136
|
-
members,
|
|
137
|
-
object,
|
|
138
|
-
array,
|
|
139
|
-
integer,
|
|
140
|
-
number,
|
|
141
|
-
value,
|
|
142
|
-
element,
|
|
143
|
-
elements,
|
|
144
|
-
json,
|
|
145
|
-
hex,
|
|
146
|
-
escape,
|
|
147
|
-
character,
|
|
148
|
-
characters,
|
|
149
|
-
};
|
|
150
|
-
};
|
|
File without changes
|
|
File without changes
|