@teasel/parser 0.0.6 → 0.0.8
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/README.md +3 -3
- package/identifier.js +28 -202
- package/package.json +21 -15
- package/plan.d.ts +238 -0
- package/plan.js +83 -0
- package/teasel.wasm +0 -0
- package/wasm.d.ts +0 -1
package/README.md
CHANGED
|
@@ -127,9 +127,9 @@ teasel --typescript --scopes file.ts
|
|
|
127
127
|
```
|
|
128
128
|
cargo build --release
|
|
129
129
|
cd package
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
130
|
+
npm run build # the Node addon; tsc 7 on the PATH for the plan types
|
|
131
|
+
npm run build:wasm # the WebAssembly module
|
|
132
|
+
node test.js
|
|
133
133
|
```
|
|
134
134
|
|
|
135
135
|
Node resolves `@teasel/parser` to the addon and everything else to the WebAssembly module, with the same API.
|
package/identifier.js
CHANGED
|
@@ -1,212 +1,38 @@
|
|
|
1
1
|
// Generated by scripts/unicode.js from Unicode 17.0.0. Do not edit.
|
|
2
2
|
// The parser's own identifier tables, so a host tokenizing around embedded JavaScript agrees with
|
|
3
|
-
// it whatever Unicode its engine has.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
0xd12, 0xd3a, 0xd3d, 0xd3d, 0xd4e, 0xd4e, 0xd54, 0xd56, 0xd5f, 0xd61, 0xd7a, 0xd7f, 0xd85, 0xd96, 0xd9a, 0xdb1,
|
|
22
|
-
0xdb3, 0xdbb, 0xdbd, 0xdbd, 0xdc0, 0xdc6, 0xe01, 0xe30, 0xe32, 0xe33, 0xe40, 0xe46, 0xe81, 0xe82, 0xe84, 0xe84,
|
|
23
|
-
0xe86, 0xe8a, 0xe8c, 0xea3, 0xea5, 0xea5, 0xea7, 0xeb0, 0xeb2, 0xeb3, 0xebd, 0xebd, 0xec0, 0xec4, 0xec6, 0xec6,
|
|
24
|
-
0xedc, 0xedf, 0xf00, 0xf00, 0xf40, 0xf47, 0xf49, 0xf6c, 0xf88, 0xf8c, 0x1000, 0x102a, 0x103f, 0x103f, 0x1050, 0x1055,
|
|
25
|
-
0x105a, 0x105d, 0x1061, 0x1061, 0x1065, 0x1066, 0x106e, 0x1070, 0x1075, 0x1081, 0x108e, 0x108e, 0x10a0, 0x10c5, 0x10c7, 0x10c7,
|
|
26
|
-
0x10cd, 0x10cd, 0x10d0, 0x10fa, 0x10fc, 0x1248, 0x124a, 0x124d, 0x1250, 0x1256, 0x1258, 0x1258, 0x125a, 0x125d, 0x1260, 0x1288,
|
|
27
|
-
0x128a, 0x128d, 0x1290, 0x12b0, 0x12b2, 0x12b5, 0x12b8, 0x12be, 0x12c0, 0x12c0, 0x12c2, 0x12c5, 0x12c8, 0x12d6, 0x12d8, 0x1310,
|
|
28
|
-
0x1312, 0x1315, 0x1318, 0x135a, 0x1380, 0x138f, 0x13a0, 0x13f5, 0x13f8, 0x13fd, 0x1401, 0x166c, 0x166f, 0x167f, 0x1681, 0x169a,
|
|
29
|
-
0x16a0, 0x16ea, 0x16ee, 0x16f8, 0x1700, 0x1711, 0x171f, 0x1731, 0x1740, 0x1751, 0x1760, 0x176c, 0x176e, 0x1770, 0x1780, 0x17b3,
|
|
30
|
-
0x17d7, 0x17d7, 0x17dc, 0x17dc, 0x1820, 0x1878, 0x1880, 0x18a8, 0x18aa, 0x18aa, 0x18b0, 0x18f5, 0x1900, 0x191e, 0x1950, 0x196d,
|
|
31
|
-
0x1970, 0x1974, 0x1980, 0x19ab, 0x19b0, 0x19c9, 0x1a00, 0x1a16, 0x1a20, 0x1a54, 0x1aa7, 0x1aa7, 0x1b05, 0x1b33, 0x1b45, 0x1b4c,
|
|
32
|
-
0x1b83, 0x1ba0, 0x1bae, 0x1baf, 0x1bba, 0x1be5, 0x1c00, 0x1c23, 0x1c4d, 0x1c4f, 0x1c5a, 0x1c7d, 0x1c80, 0x1c8a, 0x1c90, 0x1cba,
|
|
33
|
-
0x1cbd, 0x1cbf, 0x1ce9, 0x1cec, 0x1cee, 0x1cf3, 0x1cf5, 0x1cf6, 0x1cfa, 0x1cfa, 0x1d00, 0x1dbf, 0x1e00, 0x1f15, 0x1f18, 0x1f1d,
|
|
34
|
-
0x1f20, 0x1f45, 0x1f48, 0x1f4d, 0x1f50, 0x1f57, 0x1f59, 0x1f59, 0x1f5b, 0x1f5b, 0x1f5d, 0x1f5d, 0x1f5f, 0x1f7d, 0x1f80, 0x1fb4,
|
|
35
|
-
0x1fb6, 0x1fbc, 0x1fbe, 0x1fbe, 0x1fc2, 0x1fc4, 0x1fc6, 0x1fcc, 0x1fd0, 0x1fd3, 0x1fd6, 0x1fdb, 0x1fe0, 0x1fec, 0x1ff2, 0x1ff4,
|
|
36
|
-
0x1ff6, 0x1ffc, 0x2071, 0x2071, 0x207f, 0x207f, 0x2090, 0x209c, 0x2102, 0x2102, 0x2107, 0x2107, 0x210a, 0x2113, 0x2115, 0x2115,
|
|
37
|
-
0x2118, 0x211d, 0x2124, 0x2124, 0x2126, 0x2126, 0x2128, 0x2128, 0x212a, 0x2139, 0x213c, 0x213f, 0x2145, 0x2149, 0x214e, 0x214e,
|
|
38
|
-
0x2160, 0x2188, 0x2c00, 0x2ce4, 0x2ceb, 0x2cee, 0x2cf2, 0x2cf3, 0x2d00, 0x2d25, 0x2d27, 0x2d27, 0x2d2d, 0x2d2d, 0x2d30, 0x2d67,
|
|
39
|
-
0x2d6f, 0x2d6f, 0x2d80, 0x2d96, 0x2da0, 0x2da6, 0x2da8, 0x2dae, 0x2db0, 0x2db6, 0x2db8, 0x2dbe, 0x2dc0, 0x2dc6, 0x2dc8, 0x2dce,
|
|
40
|
-
0x2dd0, 0x2dd6, 0x2dd8, 0x2dde, 0x3005, 0x3007, 0x3021, 0x3029, 0x3031, 0x3035, 0x3038, 0x303c, 0x3041, 0x3096, 0x309b, 0x309f,
|
|
41
|
-
0x30a1, 0x30fa, 0x30fc, 0x30ff, 0x3105, 0x312f, 0x3131, 0x318e, 0x31a0, 0x31bf, 0x31f0, 0x31ff, 0x3400, 0x4dbf, 0x4e00, 0xa48c,
|
|
42
|
-
0xa4d0, 0xa4fd, 0xa500, 0xa60c, 0xa610, 0xa61f, 0xa62a, 0xa62b, 0xa640, 0xa66e, 0xa67f, 0xa69d, 0xa6a0, 0xa6ef, 0xa717, 0xa71f,
|
|
43
|
-
0xa722, 0xa788, 0xa78b, 0xa7dc, 0xa7f1, 0xa801, 0xa803, 0xa805, 0xa807, 0xa80a, 0xa80c, 0xa822, 0xa840, 0xa873, 0xa882, 0xa8b3,
|
|
44
|
-
0xa8f2, 0xa8f7, 0xa8fb, 0xa8fb, 0xa8fd, 0xa8fe, 0xa90a, 0xa925, 0xa930, 0xa946, 0xa960, 0xa97c, 0xa984, 0xa9b2, 0xa9cf, 0xa9cf,
|
|
45
|
-
0xa9e0, 0xa9e4, 0xa9e6, 0xa9ef, 0xa9fa, 0xa9fe, 0xaa00, 0xaa28, 0xaa40, 0xaa42, 0xaa44, 0xaa4b, 0xaa60, 0xaa76, 0xaa7a, 0xaa7a,
|
|
46
|
-
0xaa7e, 0xaaaf, 0xaab1, 0xaab1, 0xaab5, 0xaab6, 0xaab9, 0xaabd, 0xaac0, 0xaac0, 0xaac2, 0xaac2, 0xaadb, 0xaadd, 0xaae0, 0xaaea,
|
|
47
|
-
0xaaf2, 0xaaf4, 0xab01, 0xab06, 0xab09, 0xab0e, 0xab11, 0xab16, 0xab20, 0xab26, 0xab28, 0xab2e, 0xab30, 0xab5a, 0xab5c, 0xab69,
|
|
48
|
-
0xab70, 0xabe2, 0xac00, 0xd7a3, 0xd7b0, 0xd7c6, 0xd7cb, 0xd7fb, 0xf900, 0xfa6d, 0xfa70, 0xfad9, 0xfb00, 0xfb06, 0xfb13, 0xfb17,
|
|
49
|
-
0xfb1d, 0xfb1d, 0xfb1f, 0xfb28, 0xfb2a, 0xfb36, 0xfb38, 0xfb3c, 0xfb3e, 0xfb3e, 0xfb40, 0xfb41, 0xfb43, 0xfb44, 0xfb46, 0xfbb1,
|
|
50
|
-
0xfbd3, 0xfd3d, 0xfd50, 0xfd8f, 0xfd92, 0xfdc7, 0xfdf0, 0xfdfb, 0xfe70, 0xfe74, 0xfe76, 0xfefc, 0xff21, 0xff3a, 0xff41, 0xff5a,
|
|
51
|
-
0xff66, 0xffbe, 0xffc2, 0xffc7, 0xffca, 0xffcf, 0xffd2, 0xffd7, 0xffda, 0xffdc, 0x10000, 0x1000b, 0x1000d, 0x10026, 0x10028, 0x1003a,
|
|
52
|
-
0x1003c, 0x1003d, 0x1003f, 0x1004d, 0x10050, 0x1005d, 0x10080, 0x100fa, 0x10140, 0x10174, 0x10280, 0x1029c, 0x102a0, 0x102d0, 0x10300, 0x1031f,
|
|
53
|
-
0x1032d, 0x1034a, 0x10350, 0x10375, 0x10380, 0x1039d, 0x103a0, 0x103c3, 0x103c8, 0x103cf, 0x103d1, 0x103d5, 0x10400, 0x1049d, 0x104b0, 0x104d3,
|
|
54
|
-
0x104d8, 0x104fb, 0x10500, 0x10527, 0x10530, 0x10563, 0x10570, 0x1057a, 0x1057c, 0x1058a, 0x1058c, 0x10592, 0x10594, 0x10595, 0x10597, 0x105a1,
|
|
55
|
-
0x105a3, 0x105b1, 0x105b3, 0x105b9, 0x105bb, 0x105bc, 0x105c0, 0x105f3, 0x10600, 0x10736, 0x10740, 0x10755, 0x10760, 0x10767, 0x10780, 0x10785,
|
|
56
|
-
0x10787, 0x107b0, 0x107b2, 0x107ba, 0x10800, 0x10805, 0x10808, 0x10808, 0x1080a, 0x10835, 0x10837, 0x10838, 0x1083c, 0x1083c, 0x1083f, 0x10855,
|
|
57
|
-
0x10860, 0x10876, 0x10880, 0x1089e, 0x108e0, 0x108f2, 0x108f4, 0x108f5, 0x10900, 0x10915, 0x10920, 0x10939, 0x10940, 0x10959, 0x10980, 0x109b7,
|
|
58
|
-
0x109be, 0x109bf, 0x10a00, 0x10a00, 0x10a10, 0x10a13, 0x10a15, 0x10a17, 0x10a19, 0x10a35, 0x10a60, 0x10a7c, 0x10a80, 0x10a9c, 0x10ac0, 0x10ac7,
|
|
59
|
-
0x10ac9, 0x10ae4, 0x10b00, 0x10b35, 0x10b40, 0x10b55, 0x10b60, 0x10b72, 0x10b80, 0x10b91, 0x10c00, 0x10c48, 0x10c80, 0x10cb2, 0x10cc0, 0x10cf2,
|
|
60
|
-
0x10d00, 0x10d23, 0x10d4a, 0x10d65, 0x10d6f, 0x10d85, 0x10e80, 0x10ea9, 0x10eb0, 0x10eb1, 0x10ec2, 0x10ec7, 0x10f00, 0x10f1c, 0x10f27, 0x10f27,
|
|
61
|
-
0x10f30, 0x10f45, 0x10f70, 0x10f81, 0x10fb0, 0x10fc4, 0x10fe0, 0x10ff6, 0x11003, 0x11037, 0x11071, 0x11072, 0x11075, 0x11075, 0x11083, 0x110af,
|
|
62
|
-
0x110d0, 0x110e8, 0x11103, 0x11126, 0x11144, 0x11144, 0x11147, 0x11147, 0x11150, 0x11172, 0x11176, 0x11176, 0x11183, 0x111b2, 0x111c1, 0x111c4,
|
|
63
|
-
0x111da, 0x111da, 0x111dc, 0x111dc, 0x11200, 0x11211, 0x11213, 0x1122b, 0x1123f, 0x11240, 0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d,
|
|
64
|
-
0x1128f, 0x1129d, 0x1129f, 0x112a8, 0x112b0, 0x112de, 0x11305, 0x1130c, 0x1130f, 0x11310, 0x11313, 0x11328, 0x1132a, 0x11330, 0x11332, 0x11333,
|
|
65
|
-
0x11335, 0x11339, 0x1133d, 0x1133d, 0x11350, 0x11350, 0x1135d, 0x11361, 0x11380, 0x11389, 0x1138b, 0x1138b, 0x1138e, 0x1138e, 0x11390, 0x113b5,
|
|
66
|
-
0x113b7, 0x113b7, 0x113d1, 0x113d1, 0x113d3, 0x113d3, 0x11400, 0x11434, 0x11447, 0x1144a, 0x1145f, 0x11461, 0x11480, 0x114af, 0x114c4, 0x114c5,
|
|
67
|
-
0x114c7, 0x114c7, 0x11580, 0x115ae, 0x115d8, 0x115db, 0x11600, 0x1162f, 0x11644, 0x11644, 0x11680, 0x116aa, 0x116b8, 0x116b8, 0x11700, 0x1171a,
|
|
68
|
-
0x11740, 0x11746, 0x11800, 0x1182b, 0x118a0, 0x118df, 0x118ff, 0x11906, 0x11909, 0x11909, 0x1190c, 0x11913, 0x11915, 0x11916, 0x11918, 0x1192f,
|
|
69
|
-
0x1193f, 0x1193f, 0x11941, 0x11941, 0x119a0, 0x119a7, 0x119aa, 0x119d0, 0x119e1, 0x119e1, 0x119e3, 0x119e3, 0x11a00, 0x11a00, 0x11a0b, 0x11a32,
|
|
70
|
-
0x11a3a, 0x11a3a, 0x11a50, 0x11a50, 0x11a5c, 0x11a89, 0x11a9d, 0x11a9d, 0x11ab0, 0x11af8, 0x11bc0, 0x11be0, 0x11c00, 0x11c08, 0x11c0a, 0x11c2e,
|
|
71
|
-
0x11c40, 0x11c40, 0x11c72, 0x11c8f, 0x11d00, 0x11d06, 0x11d08, 0x11d09, 0x11d0b, 0x11d30, 0x11d46, 0x11d46, 0x11d60, 0x11d65, 0x11d67, 0x11d68,
|
|
72
|
-
0x11d6a, 0x11d89, 0x11d98, 0x11d98, 0x11db0, 0x11ddb, 0x11ee0, 0x11ef2, 0x11f02, 0x11f02, 0x11f04, 0x11f10, 0x11f12, 0x11f33, 0x11fb0, 0x11fb0,
|
|
73
|
-
0x12000, 0x12399, 0x12400, 0x1246e, 0x12480, 0x12543, 0x12f90, 0x12ff0, 0x13000, 0x1342f, 0x13441, 0x13446, 0x13460, 0x143fa, 0x14400, 0x14646,
|
|
74
|
-
0x16100, 0x1611d, 0x16800, 0x16a38, 0x16a40, 0x16a5e, 0x16a70, 0x16abe, 0x16ad0, 0x16aed, 0x16b00, 0x16b2f, 0x16b40, 0x16b43, 0x16b63, 0x16b77,
|
|
75
|
-
0x16b7d, 0x16b8f, 0x16d40, 0x16d6c, 0x16e40, 0x16e7f, 0x16ea0, 0x16eb8, 0x16ebb, 0x16ed3, 0x16f00, 0x16f4a, 0x16f50, 0x16f50, 0x16f93, 0x16f9f,
|
|
76
|
-
0x16fe0, 0x16fe1, 0x16fe3, 0x16fe3, 0x16ff2, 0x16ff6, 0x17000, 0x18cd5, 0x18cff, 0x18d1e, 0x18d80, 0x18df2, 0x1aff0, 0x1aff3, 0x1aff5, 0x1affb,
|
|
77
|
-
0x1affd, 0x1affe, 0x1b000, 0x1b122, 0x1b132, 0x1b132, 0x1b150, 0x1b152, 0x1b155, 0x1b155, 0x1b164, 0x1b167, 0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a,
|
|
78
|
-
0x1bc70, 0x1bc7c, 0x1bc80, 0x1bc88, 0x1bc90, 0x1bc99, 0x1d400, 0x1d454, 0x1d456, 0x1d49c, 0x1d49e, 0x1d49f, 0x1d4a2, 0x1d4a2, 0x1d4a5, 0x1d4a6,
|
|
79
|
-
0x1d4a9, 0x1d4ac, 0x1d4ae, 0x1d4b9, 0x1d4bb, 0x1d4bb, 0x1d4bd, 0x1d4c3, 0x1d4c5, 0x1d505, 0x1d507, 0x1d50a, 0x1d50d, 0x1d514, 0x1d516, 0x1d51c,
|
|
80
|
-
0x1d51e, 0x1d539, 0x1d53b, 0x1d53e, 0x1d540, 0x1d544, 0x1d546, 0x1d546, 0x1d54a, 0x1d550, 0x1d552, 0x1d6a5, 0x1d6a8, 0x1d6c0, 0x1d6c2, 0x1d6da,
|
|
81
|
-
0x1d6dc, 0x1d6fa, 0x1d6fc, 0x1d714, 0x1d716, 0x1d734, 0x1d736, 0x1d74e, 0x1d750, 0x1d76e, 0x1d770, 0x1d788, 0x1d78a, 0x1d7a8, 0x1d7aa, 0x1d7c2,
|
|
82
|
-
0x1d7c4, 0x1d7cb, 0x1df00, 0x1df1e, 0x1df25, 0x1df2a, 0x1e030, 0x1e06d, 0x1e100, 0x1e12c, 0x1e137, 0x1e13d, 0x1e14e, 0x1e14e, 0x1e290, 0x1e2ad,
|
|
83
|
-
0x1e2c0, 0x1e2eb, 0x1e4d0, 0x1e4eb, 0x1e5d0, 0x1e5ed, 0x1e5f0, 0x1e5f0, 0x1e6c0, 0x1e6de, 0x1e6e0, 0x1e6e2, 0x1e6e4, 0x1e6e5, 0x1e6e7, 0x1e6ed,
|
|
84
|
-
0x1e6f0, 0x1e6f4, 0x1e6fe, 0x1e6ff, 0x1e7e0, 0x1e7e6, 0x1e7e8, 0x1e7eb, 0x1e7ed, 0x1e7ee, 0x1e7f0, 0x1e7fe, 0x1e800, 0x1e8c4, 0x1e900, 0x1e943,
|
|
85
|
-
0x1e94b, 0x1e94b, 0x1ee00, 0x1ee03, 0x1ee05, 0x1ee1f, 0x1ee21, 0x1ee22, 0x1ee24, 0x1ee24, 0x1ee27, 0x1ee27, 0x1ee29, 0x1ee32, 0x1ee34, 0x1ee37,
|
|
86
|
-
0x1ee39, 0x1ee39, 0x1ee3b, 0x1ee3b, 0x1ee42, 0x1ee42, 0x1ee47, 0x1ee47, 0x1ee49, 0x1ee49, 0x1ee4b, 0x1ee4b, 0x1ee4d, 0x1ee4f, 0x1ee51, 0x1ee52,
|
|
87
|
-
0x1ee54, 0x1ee54, 0x1ee57, 0x1ee57, 0x1ee59, 0x1ee59, 0x1ee5b, 0x1ee5b, 0x1ee5d, 0x1ee5d, 0x1ee5f, 0x1ee5f, 0x1ee61, 0x1ee62, 0x1ee64, 0x1ee64,
|
|
88
|
-
0x1ee67, 0x1ee6a, 0x1ee6c, 0x1ee72, 0x1ee74, 0x1ee77, 0x1ee79, 0x1ee7c, 0x1ee7e, 0x1ee7e, 0x1ee80, 0x1ee89, 0x1ee8b, 0x1ee9b, 0x1eea1, 0x1eea3,
|
|
89
|
-
0x1eea5, 0x1eea9, 0x1eeab, 0x1eebb, 0x20000, 0x2a6df, 0x2a700, 0x2b81d, 0x2b820, 0x2cead, 0x2ceb0, 0x2ebe0, 0x2ebf0, 0x2ee5d, 0x2f800, 0x2fa1d,
|
|
90
|
-
0x30000, 0x3134a, 0x31350, 0x33479,
|
|
91
|
-
];
|
|
92
|
-
const ID_CONTINUE = [
|
|
93
|
-
0xaa, 0xaa, 0xb5, 0xb5, 0xb7, 0xb7, 0xba, 0xba, 0xc0, 0xd6, 0xd8, 0xf6, 0xf8, 0x2c1, 0x2c6, 0x2d1,
|
|
94
|
-
0x2e0, 0x2e4, 0x2ec, 0x2ec, 0x2ee, 0x2ee, 0x300, 0x374, 0x376, 0x377, 0x37a, 0x37d, 0x37f, 0x37f, 0x386, 0x38a,
|
|
95
|
-
0x38c, 0x38c, 0x38e, 0x3a1, 0x3a3, 0x3f5, 0x3f7, 0x481, 0x483, 0x487, 0x48a, 0x52f, 0x531, 0x556, 0x559, 0x559,
|
|
96
|
-
0x560, 0x588, 0x591, 0x5bd, 0x5bf, 0x5bf, 0x5c1, 0x5c2, 0x5c4, 0x5c5, 0x5c7, 0x5c7, 0x5d0, 0x5ea, 0x5ef, 0x5f2,
|
|
97
|
-
0x610, 0x61a, 0x620, 0x669, 0x66e, 0x6d3, 0x6d5, 0x6dc, 0x6df, 0x6e8, 0x6ea, 0x6fc, 0x6ff, 0x6ff, 0x710, 0x74a,
|
|
98
|
-
0x74d, 0x7b1, 0x7c0, 0x7f5, 0x7fa, 0x7fa, 0x7fd, 0x7fd, 0x800, 0x82d, 0x840, 0x85b, 0x860, 0x86a, 0x870, 0x887,
|
|
99
|
-
0x889, 0x88f, 0x897, 0x8e1, 0x8e3, 0x963, 0x966, 0x96f, 0x971, 0x983, 0x985, 0x98c, 0x98f, 0x990, 0x993, 0x9a8,
|
|
100
|
-
0x9aa, 0x9b0, 0x9b2, 0x9b2, 0x9b6, 0x9b9, 0x9bc, 0x9c4, 0x9c7, 0x9c8, 0x9cb, 0x9ce, 0x9d7, 0x9d7, 0x9dc, 0x9dd,
|
|
101
|
-
0x9df, 0x9e3, 0x9e6, 0x9f1, 0x9fc, 0x9fc, 0x9fe, 0x9fe, 0xa01, 0xa03, 0xa05, 0xa0a, 0xa0f, 0xa10, 0xa13, 0xa28,
|
|
102
|
-
0xa2a, 0xa30, 0xa32, 0xa33, 0xa35, 0xa36, 0xa38, 0xa39, 0xa3c, 0xa3c, 0xa3e, 0xa42, 0xa47, 0xa48, 0xa4b, 0xa4d,
|
|
103
|
-
0xa51, 0xa51, 0xa59, 0xa5c, 0xa5e, 0xa5e, 0xa66, 0xa75, 0xa81, 0xa83, 0xa85, 0xa8d, 0xa8f, 0xa91, 0xa93, 0xaa8,
|
|
104
|
-
0xaaa, 0xab0, 0xab2, 0xab3, 0xab5, 0xab9, 0xabc, 0xac5, 0xac7, 0xac9, 0xacb, 0xacd, 0xad0, 0xad0, 0xae0, 0xae3,
|
|
105
|
-
0xae6, 0xaef, 0xaf9, 0xaff, 0xb01, 0xb03, 0xb05, 0xb0c, 0xb0f, 0xb10, 0xb13, 0xb28, 0xb2a, 0xb30, 0xb32, 0xb33,
|
|
106
|
-
0xb35, 0xb39, 0xb3c, 0xb44, 0xb47, 0xb48, 0xb4b, 0xb4d, 0xb55, 0xb57, 0xb5c, 0xb5d, 0xb5f, 0xb63, 0xb66, 0xb6f,
|
|
107
|
-
0xb71, 0xb71, 0xb82, 0xb83, 0xb85, 0xb8a, 0xb8e, 0xb90, 0xb92, 0xb95, 0xb99, 0xb9a, 0xb9c, 0xb9c, 0xb9e, 0xb9f,
|
|
108
|
-
0xba3, 0xba4, 0xba8, 0xbaa, 0xbae, 0xbb9, 0xbbe, 0xbc2, 0xbc6, 0xbc8, 0xbca, 0xbcd, 0xbd0, 0xbd0, 0xbd7, 0xbd7,
|
|
109
|
-
0xbe6, 0xbef, 0xc00, 0xc0c, 0xc0e, 0xc10, 0xc12, 0xc28, 0xc2a, 0xc39, 0xc3c, 0xc44, 0xc46, 0xc48, 0xc4a, 0xc4d,
|
|
110
|
-
0xc55, 0xc56, 0xc58, 0xc5a, 0xc5c, 0xc5d, 0xc60, 0xc63, 0xc66, 0xc6f, 0xc80, 0xc83, 0xc85, 0xc8c, 0xc8e, 0xc90,
|
|
111
|
-
0xc92, 0xca8, 0xcaa, 0xcb3, 0xcb5, 0xcb9, 0xcbc, 0xcc4, 0xcc6, 0xcc8, 0xcca, 0xccd, 0xcd5, 0xcd6, 0xcdc, 0xcde,
|
|
112
|
-
0xce0, 0xce3, 0xce6, 0xcef, 0xcf1, 0xcf3, 0xd00, 0xd0c, 0xd0e, 0xd10, 0xd12, 0xd44, 0xd46, 0xd48, 0xd4a, 0xd4e,
|
|
113
|
-
0xd54, 0xd57, 0xd5f, 0xd63, 0xd66, 0xd6f, 0xd7a, 0xd7f, 0xd81, 0xd83, 0xd85, 0xd96, 0xd9a, 0xdb1, 0xdb3, 0xdbb,
|
|
114
|
-
0xdbd, 0xdbd, 0xdc0, 0xdc6, 0xdca, 0xdca, 0xdcf, 0xdd4, 0xdd6, 0xdd6, 0xdd8, 0xddf, 0xde6, 0xdef, 0xdf2, 0xdf3,
|
|
115
|
-
0xe01, 0xe3a, 0xe40, 0xe4e, 0xe50, 0xe59, 0xe81, 0xe82, 0xe84, 0xe84, 0xe86, 0xe8a, 0xe8c, 0xea3, 0xea5, 0xea5,
|
|
116
|
-
0xea7, 0xebd, 0xec0, 0xec4, 0xec6, 0xec6, 0xec8, 0xece, 0xed0, 0xed9, 0xedc, 0xedf, 0xf00, 0xf00, 0xf18, 0xf19,
|
|
117
|
-
0xf20, 0xf29, 0xf35, 0xf35, 0xf37, 0xf37, 0xf39, 0xf39, 0xf3e, 0xf47, 0xf49, 0xf6c, 0xf71, 0xf84, 0xf86, 0xf97,
|
|
118
|
-
0xf99, 0xfbc, 0xfc6, 0xfc6, 0x1000, 0x1049, 0x1050, 0x109d, 0x10a0, 0x10c5, 0x10c7, 0x10c7, 0x10cd, 0x10cd, 0x10d0, 0x10fa,
|
|
119
|
-
0x10fc, 0x1248, 0x124a, 0x124d, 0x1250, 0x1256, 0x1258, 0x1258, 0x125a, 0x125d, 0x1260, 0x1288, 0x128a, 0x128d, 0x1290, 0x12b0,
|
|
120
|
-
0x12b2, 0x12b5, 0x12b8, 0x12be, 0x12c0, 0x12c0, 0x12c2, 0x12c5, 0x12c8, 0x12d6, 0x12d8, 0x1310, 0x1312, 0x1315, 0x1318, 0x135a,
|
|
121
|
-
0x135d, 0x135f, 0x1369, 0x1371, 0x1380, 0x138f, 0x13a0, 0x13f5, 0x13f8, 0x13fd, 0x1401, 0x166c, 0x166f, 0x167f, 0x1681, 0x169a,
|
|
122
|
-
0x16a0, 0x16ea, 0x16ee, 0x16f8, 0x1700, 0x1715, 0x171f, 0x1734, 0x1740, 0x1753, 0x1760, 0x176c, 0x176e, 0x1770, 0x1772, 0x1773,
|
|
123
|
-
0x1780, 0x17d3, 0x17d7, 0x17d7, 0x17dc, 0x17dd, 0x17e0, 0x17e9, 0x180b, 0x180d, 0x180f, 0x1819, 0x1820, 0x1878, 0x1880, 0x18aa,
|
|
124
|
-
0x18b0, 0x18f5, 0x1900, 0x191e, 0x1920, 0x192b, 0x1930, 0x193b, 0x1946, 0x196d, 0x1970, 0x1974, 0x1980, 0x19ab, 0x19b0, 0x19c9,
|
|
125
|
-
0x19d0, 0x19da, 0x1a00, 0x1a1b, 0x1a20, 0x1a5e, 0x1a60, 0x1a7c, 0x1a7f, 0x1a89, 0x1a90, 0x1a99, 0x1aa7, 0x1aa7, 0x1ab0, 0x1abd,
|
|
126
|
-
0x1abf, 0x1add, 0x1ae0, 0x1aeb, 0x1b00, 0x1b4c, 0x1b50, 0x1b59, 0x1b6b, 0x1b73, 0x1b80, 0x1bf3, 0x1c00, 0x1c37, 0x1c40, 0x1c49,
|
|
127
|
-
0x1c4d, 0x1c7d, 0x1c80, 0x1c8a, 0x1c90, 0x1cba, 0x1cbd, 0x1cbf, 0x1cd0, 0x1cd2, 0x1cd4, 0x1cfa, 0x1d00, 0x1f15, 0x1f18, 0x1f1d,
|
|
128
|
-
0x1f20, 0x1f45, 0x1f48, 0x1f4d, 0x1f50, 0x1f57, 0x1f59, 0x1f59, 0x1f5b, 0x1f5b, 0x1f5d, 0x1f5d, 0x1f5f, 0x1f7d, 0x1f80, 0x1fb4,
|
|
129
|
-
0x1fb6, 0x1fbc, 0x1fbe, 0x1fbe, 0x1fc2, 0x1fc4, 0x1fc6, 0x1fcc, 0x1fd0, 0x1fd3, 0x1fd6, 0x1fdb, 0x1fe0, 0x1fec, 0x1ff2, 0x1ff4,
|
|
130
|
-
0x1ff6, 0x1ffc, 0x200c, 0x200d, 0x203f, 0x2040, 0x2054, 0x2054, 0x2071, 0x2071, 0x207f, 0x207f, 0x2090, 0x209c, 0x20d0, 0x20dc,
|
|
131
|
-
0x20e1, 0x20e1, 0x20e5, 0x20f0, 0x2102, 0x2102, 0x2107, 0x2107, 0x210a, 0x2113, 0x2115, 0x2115, 0x2118, 0x211d, 0x2124, 0x2124,
|
|
132
|
-
0x2126, 0x2126, 0x2128, 0x2128, 0x212a, 0x2139, 0x213c, 0x213f, 0x2145, 0x2149, 0x214e, 0x214e, 0x2160, 0x2188, 0x2c00, 0x2ce4,
|
|
133
|
-
0x2ceb, 0x2cf3, 0x2d00, 0x2d25, 0x2d27, 0x2d27, 0x2d2d, 0x2d2d, 0x2d30, 0x2d67, 0x2d6f, 0x2d6f, 0x2d7f, 0x2d96, 0x2da0, 0x2da6,
|
|
134
|
-
0x2da8, 0x2dae, 0x2db0, 0x2db6, 0x2db8, 0x2dbe, 0x2dc0, 0x2dc6, 0x2dc8, 0x2dce, 0x2dd0, 0x2dd6, 0x2dd8, 0x2dde, 0x2de0, 0x2dff,
|
|
135
|
-
0x3005, 0x3007, 0x3021, 0x302f, 0x3031, 0x3035, 0x3038, 0x303c, 0x3041, 0x3096, 0x3099, 0x309f, 0x30a1, 0x30ff, 0x3105, 0x312f,
|
|
136
|
-
0x3131, 0x318e, 0x31a0, 0x31bf, 0x31f0, 0x31ff, 0x3400, 0x4dbf, 0x4e00, 0xa48c, 0xa4d0, 0xa4fd, 0xa500, 0xa60c, 0xa610, 0xa62b,
|
|
137
|
-
0xa640, 0xa66f, 0xa674, 0xa67d, 0xa67f, 0xa6f1, 0xa717, 0xa71f, 0xa722, 0xa788, 0xa78b, 0xa7dc, 0xa7f1, 0xa827, 0xa82c, 0xa82c,
|
|
138
|
-
0xa840, 0xa873, 0xa880, 0xa8c5, 0xa8d0, 0xa8d9, 0xa8e0, 0xa8f7, 0xa8fb, 0xa8fb, 0xa8fd, 0xa92d, 0xa930, 0xa953, 0xa960, 0xa97c,
|
|
139
|
-
0xa980, 0xa9c0, 0xa9cf, 0xa9d9, 0xa9e0, 0xa9fe, 0xaa00, 0xaa36, 0xaa40, 0xaa4d, 0xaa50, 0xaa59, 0xaa60, 0xaa76, 0xaa7a, 0xaac2,
|
|
140
|
-
0xaadb, 0xaadd, 0xaae0, 0xaaef, 0xaaf2, 0xaaf6, 0xab01, 0xab06, 0xab09, 0xab0e, 0xab11, 0xab16, 0xab20, 0xab26, 0xab28, 0xab2e,
|
|
141
|
-
0xab30, 0xab5a, 0xab5c, 0xab69, 0xab70, 0xabea, 0xabec, 0xabed, 0xabf0, 0xabf9, 0xac00, 0xd7a3, 0xd7b0, 0xd7c6, 0xd7cb, 0xd7fb,
|
|
142
|
-
0xf900, 0xfa6d, 0xfa70, 0xfad9, 0xfb00, 0xfb06, 0xfb13, 0xfb17, 0xfb1d, 0xfb28, 0xfb2a, 0xfb36, 0xfb38, 0xfb3c, 0xfb3e, 0xfb3e,
|
|
143
|
-
0xfb40, 0xfb41, 0xfb43, 0xfb44, 0xfb46, 0xfbb1, 0xfbd3, 0xfd3d, 0xfd50, 0xfd8f, 0xfd92, 0xfdc7, 0xfdf0, 0xfdfb, 0xfe00, 0xfe0f,
|
|
144
|
-
0xfe20, 0xfe2f, 0xfe33, 0xfe34, 0xfe4d, 0xfe4f, 0xfe70, 0xfe74, 0xfe76, 0xfefc, 0xff10, 0xff19, 0xff21, 0xff3a, 0xff3f, 0xff3f,
|
|
145
|
-
0xff41, 0xff5a, 0xff65, 0xffbe, 0xffc2, 0xffc7, 0xffca, 0xffcf, 0xffd2, 0xffd7, 0xffda, 0xffdc, 0x10000, 0x1000b, 0x1000d, 0x10026,
|
|
146
|
-
0x10028, 0x1003a, 0x1003c, 0x1003d, 0x1003f, 0x1004d, 0x10050, 0x1005d, 0x10080, 0x100fa, 0x10140, 0x10174, 0x101fd, 0x101fd, 0x10280, 0x1029c,
|
|
147
|
-
0x102a0, 0x102d0, 0x102e0, 0x102e0, 0x10300, 0x1031f, 0x1032d, 0x1034a, 0x10350, 0x1037a, 0x10380, 0x1039d, 0x103a0, 0x103c3, 0x103c8, 0x103cf,
|
|
148
|
-
0x103d1, 0x103d5, 0x10400, 0x1049d, 0x104a0, 0x104a9, 0x104b0, 0x104d3, 0x104d8, 0x104fb, 0x10500, 0x10527, 0x10530, 0x10563, 0x10570, 0x1057a,
|
|
149
|
-
0x1057c, 0x1058a, 0x1058c, 0x10592, 0x10594, 0x10595, 0x10597, 0x105a1, 0x105a3, 0x105b1, 0x105b3, 0x105b9, 0x105bb, 0x105bc, 0x105c0, 0x105f3,
|
|
150
|
-
0x10600, 0x10736, 0x10740, 0x10755, 0x10760, 0x10767, 0x10780, 0x10785, 0x10787, 0x107b0, 0x107b2, 0x107ba, 0x10800, 0x10805, 0x10808, 0x10808,
|
|
151
|
-
0x1080a, 0x10835, 0x10837, 0x10838, 0x1083c, 0x1083c, 0x1083f, 0x10855, 0x10860, 0x10876, 0x10880, 0x1089e, 0x108e0, 0x108f2, 0x108f4, 0x108f5,
|
|
152
|
-
0x10900, 0x10915, 0x10920, 0x10939, 0x10940, 0x10959, 0x10980, 0x109b7, 0x109be, 0x109bf, 0x10a00, 0x10a03, 0x10a05, 0x10a06, 0x10a0c, 0x10a13,
|
|
153
|
-
0x10a15, 0x10a17, 0x10a19, 0x10a35, 0x10a38, 0x10a3a, 0x10a3f, 0x10a3f, 0x10a60, 0x10a7c, 0x10a80, 0x10a9c, 0x10ac0, 0x10ac7, 0x10ac9, 0x10ae6,
|
|
154
|
-
0x10b00, 0x10b35, 0x10b40, 0x10b55, 0x10b60, 0x10b72, 0x10b80, 0x10b91, 0x10c00, 0x10c48, 0x10c80, 0x10cb2, 0x10cc0, 0x10cf2, 0x10d00, 0x10d27,
|
|
155
|
-
0x10d30, 0x10d39, 0x10d40, 0x10d65, 0x10d69, 0x10d6d, 0x10d6f, 0x10d85, 0x10e80, 0x10ea9, 0x10eab, 0x10eac, 0x10eb0, 0x10eb1, 0x10ec2, 0x10ec7,
|
|
156
|
-
0x10efa, 0x10f1c, 0x10f27, 0x10f27, 0x10f30, 0x10f50, 0x10f70, 0x10f85, 0x10fb0, 0x10fc4, 0x10fe0, 0x10ff6, 0x11000, 0x11046, 0x11066, 0x11075,
|
|
157
|
-
0x1107f, 0x110ba, 0x110c2, 0x110c2, 0x110d0, 0x110e8, 0x110f0, 0x110f9, 0x11100, 0x11134, 0x11136, 0x1113f, 0x11144, 0x11147, 0x11150, 0x11173,
|
|
158
|
-
0x11176, 0x11176, 0x11180, 0x111c4, 0x111c9, 0x111cc, 0x111ce, 0x111da, 0x111dc, 0x111dc, 0x11200, 0x11211, 0x11213, 0x11237, 0x1123e, 0x11241,
|
|
159
|
-
0x11280, 0x11286, 0x11288, 0x11288, 0x1128a, 0x1128d, 0x1128f, 0x1129d, 0x1129f, 0x112a8, 0x112b0, 0x112ea, 0x112f0, 0x112f9, 0x11300, 0x11303,
|
|
160
|
-
0x11305, 0x1130c, 0x1130f, 0x11310, 0x11313, 0x11328, 0x1132a, 0x11330, 0x11332, 0x11333, 0x11335, 0x11339, 0x1133b, 0x11344, 0x11347, 0x11348,
|
|
161
|
-
0x1134b, 0x1134d, 0x11350, 0x11350, 0x11357, 0x11357, 0x1135d, 0x11363, 0x11366, 0x1136c, 0x11370, 0x11374, 0x11380, 0x11389, 0x1138b, 0x1138b,
|
|
162
|
-
0x1138e, 0x1138e, 0x11390, 0x113b5, 0x113b7, 0x113c0, 0x113c2, 0x113c2, 0x113c5, 0x113c5, 0x113c7, 0x113ca, 0x113cc, 0x113d3, 0x113e1, 0x113e2,
|
|
163
|
-
0x11400, 0x1144a, 0x11450, 0x11459, 0x1145e, 0x11461, 0x11480, 0x114c5, 0x114c7, 0x114c7, 0x114d0, 0x114d9, 0x11580, 0x115b5, 0x115b8, 0x115c0,
|
|
164
|
-
0x115d8, 0x115dd, 0x11600, 0x11640, 0x11644, 0x11644, 0x11650, 0x11659, 0x11680, 0x116b8, 0x116c0, 0x116c9, 0x116d0, 0x116e3, 0x11700, 0x1171a,
|
|
165
|
-
0x1171d, 0x1172b, 0x11730, 0x11739, 0x11740, 0x11746, 0x11800, 0x1183a, 0x118a0, 0x118e9, 0x118ff, 0x11906, 0x11909, 0x11909, 0x1190c, 0x11913,
|
|
166
|
-
0x11915, 0x11916, 0x11918, 0x11935, 0x11937, 0x11938, 0x1193b, 0x11943, 0x11950, 0x11959, 0x119a0, 0x119a7, 0x119aa, 0x119d7, 0x119da, 0x119e1,
|
|
167
|
-
0x119e3, 0x119e4, 0x11a00, 0x11a3e, 0x11a47, 0x11a47, 0x11a50, 0x11a99, 0x11a9d, 0x11a9d, 0x11ab0, 0x11af8, 0x11b60, 0x11b67, 0x11bc0, 0x11be0,
|
|
168
|
-
0x11bf0, 0x11bf9, 0x11c00, 0x11c08, 0x11c0a, 0x11c36, 0x11c38, 0x11c40, 0x11c50, 0x11c59, 0x11c72, 0x11c8f, 0x11c92, 0x11ca7, 0x11ca9, 0x11cb6,
|
|
169
|
-
0x11d00, 0x11d06, 0x11d08, 0x11d09, 0x11d0b, 0x11d36, 0x11d3a, 0x11d3a, 0x11d3c, 0x11d3d, 0x11d3f, 0x11d47, 0x11d50, 0x11d59, 0x11d60, 0x11d65,
|
|
170
|
-
0x11d67, 0x11d68, 0x11d6a, 0x11d8e, 0x11d90, 0x11d91, 0x11d93, 0x11d98, 0x11da0, 0x11da9, 0x11db0, 0x11ddb, 0x11de0, 0x11de9, 0x11ee0, 0x11ef6,
|
|
171
|
-
0x11f00, 0x11f10, 0x11f12, 0x11f3a, 0x11f3e, 0x11f42, 0x11f50, 0x11f5a, 0x11fb0, 0x11fb0, 0x12000, 0x12399, 0x12400, 0x1246e, 0x12480, 0x12543,
|
|
172
|
-
0x12f90, 0x12ff0, 0x13000, 0x1342f, 0x13440, 0x13455, 0x13460, 0x143fa, 0x14400, 0x14646, 0x16100, 0x16139, 0x16800, 0x16a38, 0x16a40, 0x16a5e,
|
|
173
|
-
0x16a60, 0x16a69, 0x16a70, 0x16abe, 0x16ac0, 0x16ac9, 0x16ad0, 0x16aed, 0x16af0, 0x16af4, 0x16b00, 0x16b36, 0x16b40, 0x16b43, 0x16b50, 0x16b59,
|
|
174
|
-
0x16b63, 0x16b77, 0x16b7d, 0x16b8f, 0x16d40, 0x16d6c, 0x16d70, 0x16d79, 0x16e40, 0x16e7f, 0x16ea0, 0x16eb8, 0x16ebb, 0x16ed3, 0x16f00, 0x16f4a,
|
|
175
|
-
0x16f4f, 0x16f87, 0x16f8f, 0x16f9f, 0x16fe0, 0x16fe1, 0x16fe3, 0x16fe4, 0x16ff0, 0x16ff6, 0x17000, 0x18cd5, 0x18cff, 0x18d1e, 0x18d80, 0x18df2,
|
|
176
|
-
0x1aff0, 0x1aff3, 0x1aff5, 0x1affb, 0x1affd, 0x1affe, 0x1b000, 0x1b122, 0x1b132, 0x1b132, 0x1b150, 0x1b152, 0x1b155, 0x1b155, 0x1b164, 0x1b167,
|
|
177
|
-
0x1b170, 0x1b2fb, 0x1bc00, 0x1bc6a, 0x1bc70, 0x1bc7c, 0x1bc80, 0x1bc88, 0x1bc90, 0x1bc99, 0x1bc9d, 0x1bc9e, 0x1ccf0, 0x1ccf9, 0x1cf00, 0x1cf2d,
|
|
178
|
-
0x1cf30, 0x1cf46, 0x1d165, 0x1d169, 0x1d16d, 0x1d172, 0x1d17b, 0x1d182, 0x1d185, 0x1d18b, 0x1d1aa, 0x1d1ad, 0x1d242, 0x1d244, 0x1d400, 0x1d454,
|
|
179
|
-
0x1d456, 0x1d49c, 0x1d49e, 0x1d49f, 0x1d4a2, 0x1d4a2, 0x1d4a5, 0x1d4a6, 0x1d4a9, 0x1d4ac, 0x1d4ae, 0x1d4b9, 0x1d4bb, 0x1d4bb, 0x1d4bd, 0x1d4c3,
|
|
180
|
-
0x1d4c5, 0x1d505, 0x1d507, 0x1d50a, 0x1d50d, 0x1d514, 0x1d516, 0x1d51c, 0x1d51e, 0x1d539, 0x1d53b, 0x1d53e, 0x1d540, 0x1d544, 0x1d546, 0x1d546,
|
|
181
|
-
0x1d54a, 0x1d550, 0x1d552, 0x1d6a5, 0x1d6a8, 0x1d6c0, 0x1d6c2, 0x1d6da, 0x1d6dc, 0x1d6fa, 0x1d6fc, 0x1d714, 0x1d716, 0x1d734, 0x1d736, 0x1d74e,
|
|
182
|
-
0x1d750, 0x1d76e, 0x1d770, 0x1d788, 0x1d78a, 0x1d7a8, 0x1d7aa, 0x1d7c2, 0x1d7c4, 0x1d7cb, 0x1d7ce, 0x1d7ff, 0x1da00, 0x1da36, 0x1da3b, 0x1da6c,
|
|
183
|
-
0x1da75, 0x1da75, 0x1da84, 0x1da84, 0x1da9b, 0x1da9f, 0x1daa1, 0x1daaf, 0x1df00, 0x1df1e, 0x1df25, 0x1df2a, 0x1e000, 0x1e006, 0x1e008, 0x1e018,
|
|
184
|
-
0x1e01b, 0x1e021, 0x1e023, 0x1e024, 0x1e026, 0x1e02a, 0x1e030, 0x1e06d, 0x1e08f, 0x1e08f, 0x1e100, 0x1e12c, 0x1e130, 0x1e13d, 0x1e140, 0x1e149,
|
|
185
|
-
0x1e14e, 0x1e14e, 0x1e290, 0x1e2ae, 0x1e2c0, 0x1e2f9, 0x1e4d0, 0x1e4f9, 0x1e5d0, 0x1e5fa, 0x1e6c0, 0x1e6de, 0x1e6e0, 0x1e6f5, 0x1e6fe, 0x1e6ff,
|
|
186
|
-
0x1e7e0, 0x1e7e6, 0x1e7e8, 0x1e7eb, 0x1e7ed, 0x1e7ee, 0x1e7f0, 0x1e7fe, 0x1e800, 0x1e8c4, 0x1e8d0, 0x1e8d6, 0x1e900, 0x1e94b, 0x1e950, 0x1e959,
|
|
187
|
-
0x1ee00, 0x1ee03, 0x1ee05, 0x1ee1f, 0x1ee21, 0x1ee22, 0x1ee24, 0x1ee24, 0x1ee27, 0x1ee27, 0x1ee29, 0x1ee32, 0x1ee34, 0x1ee37, 0x1ee39, 0x1ee39,
|
|
188
|
-
0x1ee3b, 0x1ee3b, 0x1ee42, 0x1ee42, 0x1ee47, 0x1ee47, 0x1ee49, 0x1ee49, 0x1ee4b, 0x1ee4b, 0x1ee4d, 0x1ee4f, 0x1ee51, 0x1ee52, 0x1ee54, 0x1ee54,
|
|
189
|
-
0x1ee57, 0x1ee57, 0x1ee59, 0x1ee59, 0x1ee5b, 0x1ee5b, 0x1ee5d, 0x1ee5d, 0x1ee5f, 0x1ee5f, 0x1ee61, 0x1ee62, 0x1ee64, 0x1ee64, 0x1ee67, 0x1ee6a,
|
|
190
|
-
0x1ee6c, 0x1ee72, 0x1ee74, 0x1ee77, 0x1ee79, 0x1ee7c, 0x1ee7e, 0x1ee7e, 0x1ee80, 0x1ee89, 0x1ee8b, 0x1ee9b, 0x1eea1, 0x1eea3, 0x1eea5, 0x1eea9,
|
|
191
|
-
0x1eeab, 0x1eebb, 0x1fbf0, 0x1fbf9, 0x20000, 0x2a6df, 0x2a700, 0x2b81d, 0x2b820, 0x2cead, 0x2ceb0, 0x2ebe0, 0x2ebf0, 0x2ee5d, 0x2f800, 0x2fa1d,
|
|
192
|
-
0x30000, 0x3134a, 0x31350, 0x33479, 0xe0100, 0xe01ef,
|
|
193
|
-
];
|
|
3
|
+
// it whatever Unicode its engine has. The same three-level trie as src/lexer/unicode.rs, its
|
|
4
|
+
// 64-bit chunks held as pairs of 32-bit words.
|
|
5
|
+
const ID_START = {
|
|
6
|
+
r1: Uint32Array.of(0,0,0,0,0,69207040,4286578687,4286578687,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,262083,20511,0,0,0,3168731136,4294956864,4294967291,4294967295,4290772991,4294967295,4294967295,4294967295,4294967295,4294966275,4294967295,4294967295,4294967295,4294967295,4294901759,41943039,4294967295,511,0,4294901760,493567,0,4294967295,2047,4294885376,4294967295,4294967295,3145727,2617294944,4294770688,65535,4294959104,4294967295,4294967295,131135,4294966272,70256639),
|
|
7
|
+
r2: Uint8Array.of(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,23,25,26,27,28,29,30,31,32,33,34,35,35,35,35,35,36,37,38,39,40,41,42,43,35,35,35,35,35,35,35,35,44,45,46,47,48,49,50,51,52,53,54,55,56,57,3,58,59,60,30,61,62,63,64,65,66,67,68,35,35,35,30,35,35,35,35,69,70,71,72,30,73,74,30,75,76,77,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,35,35,35,78,79,80,81,82,30,30,30,30,30,30,30,30,83,43,84,85,86,35,87,88,30,30,30,30,30,30,30,30,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,30,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,89,90,35,35,35,35,91,92,93,94,95,35,96,97,98,49,99,100,101,102,103,104,105,106,107,108,109,110,35,111,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,112,113,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,35,35,35,35,35,114,35,115,116,117,118,119,35,35,35,35,120,121,122,123,30,124,35,125,126,127,128,129),
|
|
8
|
+
r3: Uint32Array.of(71303167,272,33554431,4294903807,65279,4294967295,1023,0,4294967280,603979775,4278255616,4294836227,4294549473,600178175,2952806400,268632067,4294543328,57540095,1577058304,1835008,4294688736,602799615,65536,33554435,4294549472,602799615,2952790016,131075,3594373096,67094296,65536,0,4294828000,603979263,922746880,3,4294828001,602930687,1879048192,393219,4294828016,671088639,2154840064,4227858435,4236247008,805044223,127,0,4294967294,917503,4294965206,537788335,4026531935,0,1,0,4294967039,8191,7936,0,0,0,4294967295,2147485695,1010761728,4292984930,16387,4294967295,4294910143,4160749567,4294967295,4294967295,1031749119,4294967295,4294917631,2134769663,4286578493,4294967295,4282253311,4294967295,134217727,0,65535,4294967295,4294967295,1061158911,4294967294,4294967295,4294967295,4294942719,134217726,4294967295,4294967295,33540095,2147745791,262143,262143,122879,4294967295,1048575,276824064,0,0,4294967295,4294967295,33554431,4294967295,4294903295,4294967295,4194303,2147483647,0,4294901760,2047999,4294967295,4294905855,8388607,4294967295,2097151,0,0,128,4294967264,1048575,8160,0,4294967288,4227907585,4294967295,63,4294967295,15,4227915776,1073741823,4294903807,3892314111,0,74440192,1061158911,4294967295,2868854591,1073741823,4294967295,1608515583,265232348,534519807,0,2147614720,536805376,0,1060109444,4093640016,17376,4294967295,511,0,4294967295,817183,4294967295,4294910143,4294967295,33023,8388607,2139062143,2139062143,0,224,524157950,4169138175,4294967294,4294967295,4160749567,4294967264,4294901759,32767,4294967295,0,4294901760,8191,0,4294901760,1073741823,4294909951,3072,4294967295,2147516415,1073741823,4294967295,4294967295,65535,4286578688,4294967292,4294965759,4294967295,536870911,4294836224,4294965179,7,4294967292,1048575,0,1761345536,4294966272,4294901823,127,536870911,4294967280,524287,32768,2080440287,4294967295,511,4087,3296722943,4294967295,1046675455,939524101,1837055,8289918,4294934399,4160749567,4294902783,4294967295,7,4294967295,4294901775,4294965375,268435455,4294967295,4294918143,67108863,0,2700607615,1602223615,4294967259,4294967295,4294967295,262143,4294443008,4294967295,4294967295,1073741823,4294901760,4294967295,4294770687,4294967295,255,268369920,0,4292804608,4294967295,536870911,0,134217726,134217726,4294967232,4294967295,2147483647,486341884,0),
|
|
9
|
+
r4: Uint8Array.of(0,1,2,3,4,5,6,7,8,5,9,10,5,11,12,5,7,7,7,7,7,7,7,7,7,7,13,14,15,7,16,17,7,18,7,19,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5),
|
|
10
|
+
r5: Uint8Array.of(0,1,2,3,4,5,4,4,4,4,6,7,8,9,10,11,2,2,12,13,14,15,16,17,2,2,2,2,18,19,20,4,21,22,23,24,25,26,27,4,28,29,30,31,32,33,34,4,2,35,36,36,37,38,39,4,4,4,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,23,57,58,59,60,5,61,62,63,4,4,64,65,62,66,67,4,68,69,4,4,70,4,71,72,73,74,75,76,77,78,79,80,4,4,4,81,82,83,84,4,85,86,87,88,4,4,4,89,90,4,91,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,26,4,2,64,2,2,2,92,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,93,94,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,62,95,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,2,2,2,2,2,2,2,2,2,69,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,96,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,2,2,2,2,2,2,2,2,80,97,98,99,62,100,84,4,4,4,4,4,4,101,4,4,4,2,102,103,2,104,105,106,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,107,23,4,2,36,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,108,2,2,2,2,109,110,2,2,2,2,2,111,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,2,112,113,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,2,114,115,116,117,118,2,2,2,2,119,120,121,122,123,124,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,125,4,4,4,126,127,4,4,128,129,4,4,4,4,99,70,4,4,4,4,4,4,4,130,4,4,4,131,4,4,4,132,4,4,4,133,2,2,2,134,2,135,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,136,137,138,4,4,4,4,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,139,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,10,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,140,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,141,2,2,2,2,2,2,2,2,2,96,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,2,2,2,2,2,2,2,2,96,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,2,2,2,2,2,2,2,2,2,2,2,2,2,142,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,143,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4),
|
|
11
|
+
r6: Uint32Array.of(4294963199,3087007615,1073692671,0,4294967295,4294967295,4294967295,134217727,0,0,4294967295,2097151,536870911,4294967295,131071,0,4294967295,4294959104,4294903807,4194303,1073741823,4294967295,4128527,0,1073741823,4294901760,4279238655,268435455,4294967295,4294902015,4294967295,4160684047,4290246655,469499899,4294967295,1048575,4294967295,8388607,4194303,255,4294967231,134086655,4294966591,2445279231,4194303,8388607,2147483647,0,0,3670015,4194303,67108863,67108863,0,4294967295,3238002687,4277075969,4194303,0,536870911,536870911,0,4294967039,31,4294967295,4194303,4194303,524287,262143,0,511,0,4294967295,524287,4294967295,15,4294966272,4294934591,63,0,4294967295,197631,252,0,536870911,4294901888,63,4294901760,3,4294901760,31,8388607,4294967288,16777215,0,2490368,4294967288,65535,4294901760,511,4294967288,127,4294901904,4718591,4294967288,524287,335544350,0,4294705151,2147487743,1,0,3221208447,4294902271,4294549472,602799615,3758161920,3,4294921215,12582911,655360,0,2147485568,3,4294967295,65535,176,0,4294967295,32767,251658240,0,16,0,4294967295,16779263,134217727,0,127,0,4294967295,4095,0,4294967295,4294967295,2147483648,4285526655,2147549183,2,0,0,4294966527,131071,10,4294965249,67633151,4026597376,4294967295,536871935,4294901760,4294967295,33554431,4294967295,1,4294966783,32767,1,4294705152,65535,0,4294966143,131071,64,4294966719,16778239,4294901760,268435455,0,0,524287,4294836212,1048575,0,65536,15,0,4294901760,4294967295,4294967295,131071,126,4294967295,1073741823,0,2147483647,4294901760,4294967295,2147483647,4294901760,16383,15,3774873592,4294967295,8191,0,4194303999,1048575,0,67583,0,4294443008,0,0,8126475,4194303,2147483648,0,1877934080,4294967295,262151,2555904,4294902000,4294967295,268435455,4294967295,536807423,67043839,0,4292870143,4294967295,3758096383,3959414372,4294967279,4294967295,3755993023,2080374783,4294835295,4294967295,4294967295,4294967103,4160749565,4160749567,4292870143,4292870143,4294934527,4294934527,4294966783,4294966783,4087,0,2147483647,2016,0,4294901760,4294967295,16383,4294967295,1065361407,16384,0,4294901760,4095,4294901760,81919,2147483647,3223273399,0,2147446655,31,0,2063,0,4294967279,184024726,2862017156,1593309078,268434431,268434414,4294967295,0,4294967295,4294918143,4294967295,4294901761,4294903807,4294967295,4294967295,67108863),
|
|
12
|
+
};
|
|
13
|
+
const ID_CONTINUE = {
|
|
14
|
+
r1: Uint32Array.of(0,0,0,0,0,77595648,4286578687,4286578687,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,4294967295,262083,20511,4294967295,4294967295,4294967295,3168796671,4294956992,4294967291,4294967295,4290772991,4294967295,4294967295,4294967295,4294967295,4294966523,4294967295,4294967295,4294967295,4294967295,4294901759,41943039,4294967295,4294836735,3221225471,4294901942,493567,134152192,4294967295,4294967295,4294951935,4294967295,4294967295,2683305983,2684354047,4294901760,4294967295,4294961151,4294967295,4294967295,262143,4294967295,608174079),
|
|
15
|
+
r2: Uint8Array.of(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,4,32,33,34,4,4,4,4,4,35,36,37,38,39,40,41,42,4,4,4,4,4,4,4,4,43,44,45,46,47,4,48,49,50,51,52,53,54,55,56,57,58,59,60,4,61,4,62,63,64,65,66,4,4,4,4,4,4,4,4,67,68,69,70,71,72,73,74,75,76,77,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,4,4,4,79,80,81,82,83,78,78,78,78,78,78,78,78,84,42,85,4,86,4,87,88,78,78,78,78,78,78,78,78,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,78,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,89,90,4,4,4,4,91,92,4,93,94,4,95,96,97,62,4,98,99,100,4,101,102,103,4,104,105,106,4,107,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,108,109,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,4,4,4,4,4,99,4,110,111,112,93,113,4,4,4,4,114,115,116,117,118,119,4,120,121,122,123,124),
|
|
16
|
+
r3: Uint32Array.of(4294967295,16383,268435455,4294903807,4286643967,4294967295,4294967295,4294967291,4294967295,4294967295,4294967295,4294901711,4294549487,4089839103,2961209759,1342439375,4294543342,3547201023,1577204103,4194240,4294688750,4092460543,80831,4261478351,4294549486,4092460543,2967484831,196559,3594373100,3288319768,8469959,65472,4294828031,4093640191,929054175,65487,4294828015,4092591615,1885355487,982991,4294828031,4294967295,2163244511,4227923919,4236247022,805044223,4284449919,851904,4294967294,134217727,67076095,0,4294965206,1073741743,4093607775,0,50331649,3265266687,4294967039,4294844415,4278190047,536870911,64,0,4294902783,4294967295,1073741823,4294967295,4294910143,4160749567,1031749119,4294967295,4294917631,2134769663,4286578493,4294967295,4282253311,4294967295,3892314111,261632,65535,4294967295,4294967295,1061158911,4294967294,4294967295,4294967295,4294942719,134217726,4294967295,4294967295,33540095,2151677951,2097151,1048575,909311,814743551,1023,67090432,4294967295,4294967295,33554431,4294967295,4294903807,4294967295,4194303,2147483647,268374015,4294967232,2047999,4294967295,4294905855,134153215,0,268435455,4294967295,2147483647,2684354559,67044351,3221160064,1073741823,4095,67051519,1046528,4294967295,1048575,4294967295,16777215,4294960127,1073741823,4294903807,3892314111,4294377472,134217727,1061158911,4294967295,2868854591,1073741823,4294967295,1608515583,265232348,534519807,12288,2147483648,1048577,2147614720,536805376,0,536805376,131042,1060109444,4093640016,17376,4294967295,511,0,0,0,4294967295,1046559,4294967295,4294910143,4294967295,2147516671,8388607,2139062143,2139062143,4294967295,224,524222462,4269801471,4294967294,4294967264,4294901759,32767,4294967295,0,4294901760,8191,0,4294901760,1073741823,4294909951,4095,4294967295,3220242431,4294967295,262143,4286578688,4294967292,4294965759,4294967295,536870911,4294836224,4294967295,4351,67043391,3909091327,4294967295,4294918143,1048575,536870911,67076097,2147483647,4294967295,8388607,67059711,4236247039,939524103,8191999,8289918,4294934399,4160749567,4294902783,4294967295,67057663,4294967295,4294901775,4294965375,268435455,67108863,0,3774349439,1602223615,4294967259,4294967295,4294443008,4294967295,4294967295,1073741823,4294901760,4294967295,4294770687,4294967295,255,268369920,65535,1638399,57344,4292804608,4294967295,536870911,67043328,2281701374,134217726,4294967264,4294967295,2147483647,486341884,0),
|
|
17
|
+
r4: Uint8Array.of(0,1,2,3,4,5,6,7,8,5,9,10,11,12,13,14,7,7,7,7,7,7,7,7,7,7,15,16,17,7,18,19,7,20,7,21,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,22,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5),
|
|
18
|
+
r5: Uint8Array.of(0,1,2,3,4,5,4,6,4,4,7,8,9,10,11,12,2,2,13,14,15,16,17,18,2,2,2,2,19,20,21,4,22,23,24,25,26,27,28,4,29,30,31,32,33,34,35,4,2,36,37,37,38,39,40,4,4,4,41,42,43,44,45,46,2,47,3,48,49,50,2,51,52,53,54,55,56,57,58,59,2,60,2,61,4,4,62,63,2,64,65,66,67,68,4,4,3,4,69,70,71,72,73,74,75,76,77,65,4,78,4,79,80,81,82,4,83,84,85,86,4,4,4,87,88,89,90,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,27,4,2,91,2,2,2,92,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,93,94,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,95,96,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,2,2,2,2,2,2,2,2,2,68,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,97,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,2,2,2,2,2,2,2,2,65,98,75,99,19,100,101,4,4,4,4,4,4,102,4,4,4,2,103,104,2,105,106,107,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,108,24,4,2,37,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,109,2,2,2,2,110,111,2,2,2,2,2,112,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,2,113,114,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,115,4,4,4,4,4,4,4,4,116,68,4,4,4,4,4,4,4,117,118,4,4,119,4,4,4,4,4,4,2,120,121,122,123,124,2,2,2,2,125,126,127,128,129,130,4,4,4,4,4,4,4,4,131,132,133,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,134,4,4,4,135,136,137,4,138,139,4,4,4,4,140,97,4,4,4,4,4,4,4,141,4,4,4,142,4,4,4,143,4,4,4,144,2,2,2,145,2,146,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,147,148,149,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,115,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,150,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,11,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,116,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,151,2,2,2,2,2,2,2,2,2,152,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,2,2,2,2,2,2,2,2,152,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,2,2,2,2,2,2,2,2,2,2,2,2,2,153,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,97,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,2,2,2,95,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4),
|
|
19
|
+
r6: Uint32Array.of(4294963199,3087007615,1073692671,0,4294967295,4294967295,4294967295,134217727,0,0,4294967295,2097151,0,536870912,536870911,4294967295,131071,1,4294967295,4294959104,4294903807,134217727,1073741823,4294967295,4128527,0,1073741823,4294902783,4279238655,268435455,4294967295,4294902015,4294967295,4160684047,4290246655,469499899,4294967295,1048575,4294967295,8388607,4194303,255,4294967231,134086655,4294966591,2445279231,4194303,8388607,2147483647,0,0,3670015,4194303,67108863,67108863,0,4294967295,3238002687,4277137519,2269118463,0,536870911,536870911,0,4294967039,127,4294967295,4194303,4194303,524287,262143,0,511,0,4294967295,524287,4294967295,67043583,4294967295,4294950463,63,0,4294967295,203775,252,4227858432,536870911,4294901888,131071,4294901760,63,4294901760,31,8388607,127,2151677888,4294901764,67043839,4294967295,4292870143,4294902000,5242879,402644511,0,4294705151,3238002687,3,0,3221208447,4294902271,4294967295,67045375,4294549487,4226678271,3766565279,2039759,4294921215,4290772991,1046437,6,3288270847,3,67043519,0,4294967295,4282384383,1056964609,0,67043345,0,4294967295,33554431,4294902783,15,3892314111,67047423,127,0,0,4294967295,4294967295,2147484671,4285526655,4190109695,67043343,0,0,4294966527,4244635647,27,4294967295,2147483647,4294901888,4294967295,603979775,4294901760,0,255,4294967295,67043329,4294966783,4286578687,67043329,4294705152,4294770687,8388351,4294966143,3028287487,67043583,4294966719,33259519,4294902783,268435455,1023,0,8388607,4294836223,3355443199,134152199,0,0,65536,4294967295,32767,15,0,4294901760,4294967295,4294967295,131071,4294967295,65535,4194303,4294967295,4294967295,67108863,2147483647,4294902783,4294902783,2047999,67043343,3774873592,65535,0,4294967295,67051519,0,4194303999,1048575,0,4294936575,4294967295,4294934783,0,0,8323099,4194303,2147483648,0,1877934080,4294967295,262151,2555904,4294902000,4294967295,268435455,4294967295,536807423,1677656575,0,0,67043328,4294967295,4294918143,0,4161266656,4071,15360,28,0,4292870143,4294967295,3758096383,3959414372,4294967279,4294967295,3755993023,2080374783,4294835295,4294967295,4294967295,4294967103,4160749565,4160749567,4292870143,4292870143,4294934527,4294934527,4294966783,4294966783,4294954999,4294967295,4294967295,4169138175,4294967295,2105343,4160749584,65534,2147483647,2016,4194303871,4294903771,4294967295,16383,32768,0,4294967295,1073684479,17407,0,4294901760,32767,4294901760,67108863,4294901760,134217727,2147483647,3225419775,0,2147446655,8323103,0,67047423,0,4294967279,184024726,2862017156,1593309078,268434431,268434414,4294967295,0,4294967295,4294901761,1073741823,0,4294903807,4294967295),
|
|
20
|
+
};
|
|
194
21
|
|
|
195
|
-
/** @param {
|
|
196
|
-
function lookup(
|
|
197
|
-
let
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
else if (code > table[mid * 2 + 1]) lo = mid + 1;
|
|
203
|
-
else return true;
|
|
204
|
-
}
|
|
205
|
-
return false;
|
|
22
|
+
/** @param {typeof ID_START} t @param {number} c */
|
|
23
|
+
function lookup(t, c) {
|
|
24
|
+
let chunk;
|
|
25
|
+
if (c < 0x800) chunk = c >> 6;
|
|
26
|
+
else if (c < 0x10000) return bit(t.r3, t.r2[(c >> 6) - 32], c);
|
|
27
|
+
else return bit(t.r6, t.r5[(t.r4[(c >> 12) - 16] << 6) | ((c >> 6) & 63)], c);
|
|
28
|
+
return bit(t.r1, chunk, c);
|
|
206
29
|
}
|
|
30
|
+
/** @param {Uint32Array} chunks @param {number} chunk @param {number} c */
|
|
31
|
+
const bit = (chunks, chunk, c) => ((chunks[chunk * 2 + ((c >> 5) & 1)] >>> (c & 31)) & 1) === 1;
|
|
207
32
|
|
|
208
33
|
/** Whether a code point can start an identifier. @param {number} code */
|
|
209
34
|
export function isIdentifierStart(code) {
|
|
35
|
+
// compares, not a table: V8 inlines these and a typed-array load measured twice as slow
|
|
210
36
|
if (code < 128) return (code >= 65 && code <= 90) || (code >= 97 && code <= 122) || code === 36 || code === 95;
|
|
211
37
|
return lookup(ID_START, code);
|
|
212
38
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teasel/parser",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.8",
|
|
4
4
|
"description": "A JavaScript and TypeScript parser in Rust. It answers in ESTree.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -17,46 +17,52 @@
|
|
|
17
17
|
"default": "./index.js"
|
|
18
18
|
},
|
|
19
19
|
"default": {
|
|
20
|
-
"types": "./
|
|
20
|
+
"types": "./index.d.ts",
|
|
21
21
|
"default": "./wasm.js"
|
|
22
22
|
}
|
|
23
23
|
},
|
|
24
24
|
"./wasm": {
|
|
25
|
-
"types": "./
|
|
25
|
+
"types": "./index.d.ts",
|
|
26
26
|
"default": "./wasm.js"
|
|
27
27
|
},
|
|
28
|
-
"./teasel.wasm": "./teasel.wasm"
|
|
28
|
+
"./teasel.wasm": "./teasel.wasm",
|
|
29
|
+
"./plan": {
|
|
30
|
+
"types": "./plan.d.ts",
|
|
31
|
+
"default": "./plan.js"
|
|
32
|
+
}
|
|
29
33
|
},
|
|
30
34
|
"files": [
|
|
31
35
|
"index.js",
|
|
32
36
|
"index.d.ts",
|
|
33
37
|
"wasm.js",
|
|
34
|
-
"wasm.d.ts",
|
|
35
38
|
"native.js",
|
|
36
39
|
"api.js",
|
|
37
40
|
"decode.js",
|
|
38
41
|
"identifier.js",
|
|
42
|
+
"plan.js",
|
|
43
|
+
"plan.d.ts",
|
|
39
44
|
"teasel.wasm"
|
|
40
45
|
],
|
|
41
46
|
"scripts": {
|
|
42
|
-
"build": "
|
|
47
|
+
"build": "npm run build:plan && node addon.js",
|
|
48
|
+
"build:plan": "tsc --ignoreConfig plan.ts --declaration --strict --target es2022 --module esnext --moduleResolution bundler --skipLibCheck",
|
|
43
49
|
"build:wasm": "cargo build --release -p teasel-wasm --target wasm32-unknown-unknown && cp ../target/wasm32-unknown-unknown/release/teasel_wasm.wasm teasel.wasm",
|
|
44
|
-
"test": "
|
|
50
|
+
"test": "node test.js && node test.js interpret",
|
|
51
|
+
"types": "tsc -p tsconfig.json",
|
|
45
52
|
"check": "node check.js",
|
|
46
|
-
"
|
|
53
|
+
"prepublishOnly": "npm run build:plan"
|
|
47
54
|
},
|
|
48
55
|
"dependencies": {
|
|
49
56
|
"@types/estree": "^1.0.6"
|
|
50
57
|
},
|
|
51
58
|
"devDependencies": {
|
|
52
|
-
"@
|
|
53
|
-
"@changesets/cli": "^3.0.1"
|
|
59
|
+
"@types/node": "^26.0.0"
|
|
54
60
|
},
|
|
55
61
|
"optionalDependencies": {
|
|
56
|
-
"@teasel/parser-linux-x64-gnu": "0.0.
|
|
57
|
-
"@teasel/parser-linux-arm64-gnu": "0.0.
|
|
58
|
-
"@teasel/parser-darwin-x64": "0.0.
|
|
59
|
-
"@teasel/parser-darwin-arm64": "0.0.
|
|
60
|
-
"@teasel/parser-win32-x64-msvc": "0.0.
|
|
62
|
+
"@teasel/parser-linux-x64-gnu": "0.0.8",
|
|
63
|
+
"@teasel/parser-linux-arm64-gnu": "0.0.8",
|
|
64
|
+
"@teasel/parser-darwin-x64": "0.0.8",
|
|
65
|
+
"@teasel/parser-darwin-arm64": "0.0.8",
|
|
66
|
+
"@teasel/parser-win32-x64-msvc": "0.0.8"
|
|
61
67
|
}
|
|
62
68
|
}
|
package/plan.d.ts
ADDED
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
declare const out: unique symbol;
|
|
2
|
+
export type JSONValue = null | boolean | number | string | JSONValue[] | {
|
|
3
|
+
[key: string]: JSONValue;
|
|
4
|
+
};
|
|
5
|
+
export type JS = 'expression' | 'assignmentExpression' | 'pattern' | 'bindingIdentifier' | 'identifierReference' | 'params' | 'typeParameters' | 'statement' | 'program';
|
|
6
|
+
export type Mode = 'normal' | 'raw' | 'rcdata' | 'verbatim';
|
|
7
|
+
export type Stop = {
|
|
8
|
+
prefixes: string[];
|
|
9
|
+
} | {
|
|
10
|
+
matchingElement: true;
|
|
11
|
+
} | {
|
|
12
|
+
documentEnd: true;
|
|
13
|
+
};
|
|
14
|
+
export type Reader = {
|
|
15
|
+
kind: 'token';
|
|
16
|
+
text: string;
|
|
17
|
+
gap: 'space*' | 'none';
|
|
18
|
+
word: boolean;
|
|
19
|
+
} | {
|
|
20
|
+
kind: 'space';
|
|
21
|
+
min: number;
|
|
22
|
+
} | {
|
|
23
|
+
kind: 'test';
|
|
24
|
+
value: V<boolean>;
|
|
25
|
+
} | {
|
|
26
|
+
kind: 'rule';
|
|
27
|
+
name: string;
|
|
28
|
+
} | {
|
|
29
|
+
kind: 'javascript';
|
|
30
|
+
entry: JS;
|
|
31
|
+
boundary?: 'last-shared-word';
|
|
32
|
+
} | {
|
|
33
|
+
kind: 'html-single';
|
|
34
|
+
entry: JS;
|
|
35
|
+
} | {
|
|
36
|
+
kind: 'html-attributes';
|
|
37
|
+
mode: 'normal' | 'static';
|
|
38
|
+
} | {
|
|
39
|
+
kind: 'html-attribute-parts';
|
|
40
|
+
} | {
|
|
41
|
+
kind: 'html-children';
|
|
42
|
+
mode: Mode;
|
|
43
|
+
stop: Stop;
|
|
44
|
+
} | {
|
|
45
|
+
kind: 'css-stylesheet';
|
|
46
|
+
};
|
|
47
|
+
export interface V<out T = unknown> {
|
|
48
|
+
readonly [out]: T;
|
|
49
|
+
}
|
|
50
|
+
export type Expr = V & {
|
|
51
|
+
readonly name?: never;
|
|
52
|
+
};
|
|
53
|
+
export interface Slot<out N extends string> extends V<any> {
|
|
54
|
+
readonly name: N;
|
|
55
|
+
}
|
|
56
|
+
export type Schema = Record<string, 'null' | 'omit'>;
|
|
57
|
+
type Names<S extends Schema, L extends readonly string[]> = (keyof S & string) | L[number];
|
|
58
|
+
type Slots<S extends Schema, L extends readonly string[]> = {
|
|
59
|
+
readonly [N in Names<S, L>]: Slot<N>;
|
|
60
|
+
};
|
|
61
|
+
export interface Form<out W = unknown> {
|
|
62
|
+
readonly [out]: W;
|
|
63
|
+
}
|
|
64
|
+
export type Write<N extends string, K extends string> = {
|
|
65
|
+
into: N;
|
|
66
|
+
kind: K;
|
|
67
|
+
};
|
|
68
|
+
type Wrote<Fs extends readonly Form[]> = Form<Fs[number][typeof out]>;
|
|
69
|
+
type Kind<R extends Reader> = R extends {
|
|
70
|
+
kind: 'javascript' | 'html-single';
|
|
71
|
+
entry: infer E;
|
|
72
|
+
} ? E : R['kind'];
|
|
73
|
+
type Bindable<W> = W extends Write<infer N, 'pattern' | 'bindingIdentifier' | 'params' | 'value'> ? N : never;
|
|
74
|
+
export interface Region<out Id extends string, out F extends string> {
|
|
75
|
+
readonly id: Id;
|
|
76
|
+
readonly parent: V;
|
|
77
|
+
readonly kind: 'module' | 'script' | 'fragment' | 'block' | 'function';
|
|
78
|
+
readonly covers: V;
|
|
79
|
+
readonly when?: V<boolean>;
|
|
80
|
+
readonly each?: {
|
|
81
|
+
list: V;
|
|
82
|
+
as: string;
|
|
83
|
+
};
|
|
84
|
+
readonly [out]: F;
|
|
85
|
+
}
|
|
86
|
+
export interface Declare<out N extends string, out R extends string | Expr> {
|
|
87
|
+
readonly patterns: V;
|
|
88
|
+
readonly into: V;
|
|
89
|
+
readonly kind: 'pattern' | 'param';
|
|
90
|
+
readonly [out]: [N, R];
|
|
91
|
+
}
|
|
92
|
+
export interface RuleData {
|
|
93
|
+
readonly type: string;
|
|
94
|
+
readonly fields: Schema;
|
|
95
|
+
readonly locals?: readonly string[];
|
|
96
|
+
form: Form;
|
|
97
|
+
regions?: readonly Region<string, string>[];
|
|
98
|
+
declares?: readonly Declare<string, string | Expr>[];
|
|
99
|
+
span?: 'none' | 'through-next-token-start';
|
|
100
|
+
}
|
|
101
|
+
export type Dispatch = {
|
|
102
|
+
when: V<boolean>;
|
|
103
|
+
rule: string;
|
|
104
|
+
type?: string;
|
|
105
|
+
attributes?: 'static';
|
|
106
|
+
content?: Mode;
|
|
107
|
+
};
|
|
108
|
+
export type Plan = {
|
|
109
|
+
version: 1;
|
|
110
|
+
document: string;
|
|
111
|
+
rules: Record<string, {
|
|
112
|
+
toJSON(): RuleData;
|
|
113
|
+
}>;
|
|
114
|
+
html: {
|
|
115
|
+
delimiters: [string, string];
|
|
116
|
+
attributeInterpolations: boolean;
|
|
117
|
+
attributeComments: 'javascript' | 'none';
|
|
118
|
+
autoclose: boolean;
|
|
119
|
+
trimEnd: boolean;
|
|
120
|
+
void: string[];
|
|
121
|
+
text: string;
|
|
122
|
+
comment: string;
|
|
123
|
+
content: {
|
|
124
|
+
prefix: string;
|
|
125
|
+
rule: string;
|
|
126
|
+
}[];
|
|
127
|
+
attribute: {
|
|
128
|
+
prefix: string;
|
|
129
|
+
rule: string;
|
|
130
|
+
}[];
|
|
131
|
+
plainAttribute: {
|
|
132
|
+
type: string;
|
|
133
|
+
name: string;
|
|
134
|
+
value: string;
|
|
135
|
+
text: string;
|
|
136
|
+
expression: string;
|
|
137
|
+
};
|
|
138
|
+
elements: Dispatch[];
|
|
139
|
+
directiveNames: {
|
|
140
|
+
prefix: string;
|
|
141
|
+
argument: string;
|
|
142
|
+
modifier: string;
|
|
143
|
+
requireArgument: boolean;
|
|
144
|
+
dynamic: [string, string] | null;
|
|
145
|
+
unknown: 'plain-attribute' | 'wildcard-rule';
|
|
146
|
+
};
|
|
147
|
+
directives: {
|
|
148
|
+
name: string;
|
|
149
|
+
rule: string;
|
|
150
|
+
}[];
|
|
151
|
+
};
|
|
152
|
+
};
|
|
153
|
+
export declare const constant: <const T extends JSONValue>(value: T) => V<T>;
|
|
154
|
+
export declare const get: (base: string | V, ...path: (string | number)[]) => V<any>;
|
|
155
|
+
export declare const equal: (left: V, right: V) => V<boolean>;
|
|
156
|
+
export declare const less: (left: V, right: V) => V<boolean>;
|
|
157
|
+
export declare const present: (left: V) => V<boolean>;
|
|
158
|
+
export declare const choose: <A, B>(condition: V<boolean>, yes: V<A>, no: V<B>) => V<A | B>;
|
|
159
|
+
export declare const flatMap: (list: V, as: string, body: V) => V<unknown[]>;
|
|
160
|
+
export declare const length: (list: V) => V<number>;
|
|
161
|
+
export declare const at: (list: V, index: number) => V<any>;
|
|
162
|
+
export declare const array: (...items: V[]) => V<unknown[]>;
|
|
163
|
+
export declare const record: (type: string | null, fields: Record<string, V>, span?: V) => V;
|
|
164
|
+
export declare const not: (p: V<boolean>) => V<boolean>;
|
|
165
|
+
export declare const and: (a: V<boolean>, b: V<boolean>) => V<boolean>;
|
|
166
|
+
export declare const or: (a: V<boolean>, b: V<boolean>) => V<boolean>;
|
|
167
|
+
export declare const filter: (list: V, as: string, predicate: V<boolean>) => V<unknown[]>;
|
|
168
|
+
export declare const map: (list: V, as: string, value: V) => V<unknown[]>;
|
|
169
|
+
export declare const any: (list: V) => V<boolean>;
|
|
170
|
+
export declare const member: (value: V, literals: JSONValue[]) => V<boolean>;
|
|
171
|
+
export declare const concat: (...lists: V[]) => V<unknown[]>;
|
|
172
|
+
export declare const scope: (name: string) => V<any>;
|
|
173
|
+
export declare const incoming: V<any>;
|
|
174
|
+
export declare const isType: (value: V, ...types: string[]) => V<boolean>;
|
|
175
|
+
export declare const attributes: (node: V) => V<unknown[]>;
|
|
176
|
+
export declare const attr: (node: V, name: string) => V<unknown[]>;
|
|
177
|
+
export declare const hasAttribute: (node: V, name: string) => V<boolean>;
|
|
178
|
+
export declare const staticAttribute: (node: V, name: string) => V<any>;
|
|
179
|
+
export declare const seq: <Fs extends readonly Form[]>(...items: Fs) => Wrote<Fs>;
|
|
180
|
+
export declare const choice: <Fs extends readonly Form[]>(...alternatives: Fs) => Wrote<Fs>;
|
|
181
|
+
export declare const optional: <F extends Form>(form: F) => F;
|
|
182
|
+
export declare const read: <R extends Reader, N extends string = never>(reader: R, into?: Slot<N>, input?: V) => Form<Write<N, Kind<R>>>;
|
|
183
|
+
export declare const emit: <N extends string>(into: Slot<N>, value: V) => Form<Write<N, 'value'>>;
|
|
184
|
+
export declare const token: (text: string, tight?: boolean) => Form<Write<never, "token">>;
|
|
185
|
+
export declare const space: () => Form<Write<never, "space">>;
|
|
186
|
+
export declare const test: (value: V<boolean>) => Form<Write<never, "test">>;
|
|
187
|
+
export declare const call: <N extends string = never>(name: string, into?: Slot<N>) => Form<Write<N, "rule">>;
|
|
188
|
+
export declare const js: <E extends JS, N extends string = never>(entry: E, into?: Slot<N>, input?: V, boundary?: 'last-shared-word') => Form<Write<N, E>>;
|
|
189
|
+
export declare const repeat: <N extends string>(build: (r: {
|
|
190
|
+
readonly item: Slot<'item'>;
|
|
191
|
+
}) => Form, into: Slot<N>, value?: V, min?: number, max?: number | null) => Form<Write<N, 'repeat'>>;
|
|
192
|
+
export declare const many: <N extends string>(name: string, into: Slot<N>, min: number, max: number | null) => Form<Write<N, "repeat">>;
|
|
193
|
+
export declare const region: <const Id extends string, F extends string>(id: Id, parent: V, covers: readonly (Slot<F> | Expr)[] | Expr, kind?: Region<Id, F>['kind'], when?: V<boolean>) => Region<Id, F>;
|
|
194
|
+
export declare const declare: <N extends string, const R extends string | Expr>(patterns: readonly Slot<N>[] | Expr, into: R, kind?: 'pattern' | 'param') => Declare<N, R>;
|
|
195
|
+
export declare class Rule<Type extends string, S extends Schema, L extends readonly string[], W, R extends string> {
|
|
196
|
+
#private;
|
|
197
|
+
readonly [out]: {
|
|
198
|
+
type: Type;
|
|
199
|
+
fields: S;
|
|
200
|
+
writes: W;
|
|
201
|
+
};
|
|
202
|
+
constructor(type: Type, fields: S, locals: L);
|
|
203
|
+
form<W2 extends Write<Names<S, L>, string>>(build: (f: Slots<S, L>) => Form<W2>): Rule<Type, S, L, W2, R>;
|
|
204
|
+
regions<const Rs extends readonly Region<string, Names<S, L>>[]>(build: (f: Slots<S, L>) => Rs): Rule<Type, S, L, W, R | Rs[number]['id']>;
|
|
205
|
+
declares(build: (f: Slots<S, L>) => readonly Declare<Bindable<W>, R | 'incoming' | Expr>[]): this;
|
|
206
|
+
span(policy: RuleData['span']): this;
|
|
207
|
+
toJSON(): RuleData;
|
|
208
|
+
}
|
|
209
|
+
export declare const rule: <const Type extends string, const S extends Schema, const L extends readonly string[] = []>(type: Type, fields: S, locals?: L) => Rule<Type, S, L, never, never>;
|
|
210
|
+
interface Nodes {
|
|
211
|
+
expression: import('estree').Expression;
|
|
212
|
+
assignmentExpression: import('estree').Expression;
|
|
213
|
+
pattern: import('estree').Pattern;
|
|
214
|
+
bindingIdentifier: import('estree').Identifier;
|
|
215
|
+
identifierReference: import('estree').Identifier;
|
|
216
|
+
params: import('estree').Pattern[];
|
|
217
|
+
statement: import('estree').Statement;
|
|
218
|
+
program: import('estree').Program;
|
|
219
|
+
}
|
|
220
|
+
type Kinds<W, N> = W extends Write<infer M, infer K> ? ([M] extends [never] ? never : M extends N ? K : never) : never;
|
|
221
|
+
type Node<W, N> = Kinds<W, N> extends infer K ? (K extends keyof Nodes ? Nodes[K] : unknown) : never;
|
|
222
|
+
/** The node a rule produces: `null` fields are required and nullable, `omit` fields optional. */
|
|
223
|
+
export type Infer<Rl extends {
|
|
224
|
+
readonly [out]: {
|
|
225
|
+
type: string;
|
|
226
|
+
fields: Schema;
|
|
227
|
+
writes: unknown;
|
|
228
|
+
};
|
|
229
|
+
}> = {
|
|
230
|
+
type: Rl[typeof out]['type'];
|
|
231
|
+
start: number;
|
|
232
|
+
end: number;
|
|
233
|
+
} & {
|
|
234
|
+
[N in keyof Rl[typeof out]['fields'] as Rl[typeof out]['fields'][N] extends 'null' ? N : never]: Node<Rl[typeof out]['writes'], N> | null;
|
|
235
|
+
} & {
|
|
236
|
+
[N in keyof Rl[typeof out]['fields'] as Rl[typeof out]['fields'][N] extends 'omit' ? N : never]?: Node<Rl[typeof out]['writes'], N>;
|
|
237
|
+
};
|
|
238
|
+
export {};
|
package/plan.js
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
// Authoring a host plan: data for `Plan::read` in Rust, typed so that a misuse fails to compile.
|
|
2
|
+
// `plan.js` and `plan.d.ts` are emitted from this file.
|
|
3
|
+
const data = (value) => value;
|
|
4
|
+
// the name rides along for `into`, hidden from JSON because Rust's reader knows only op/base/path
|
|
5
|
+
const slot = (base, name) => data(Object.defineProperty({ op: 'get', base, path: [name] }, 'name', { value: name }));
|
|
6
|
+
const list = (value) => (Array.isArray(value) ? array(...value) : value);
|
|
7
|
+
export const constant = (value) => data({ op: 'constant', value });
|
|
8
|
+
export const get = (base, ...path) => data({ op: 'get', base, path });
|
|
9
|
+
export const equal = (left, right) => data({ op: 'compare', relation: 'equal', left, right });
|
|
10
|
+
export const less = (left, right) => data({ op: 'compare', relation: 'less', left, right });
|
|
11
|
+
export const present = (left) => data({ op: 'compare', relation: 'present', left });
|
|
12
|
+
export const choose = (condition, yes, no) => data({ op: 'choose', condition, yes, no });
|
|
13
|
+
export const flatMap = (list, as, body) => data({ op: 'flatMap', list, as, body });
|
|
14
|
+
export const length = (list) => data({ op: 'length', list });
|
|
15
|
+
export const at = (list, index) => data({ op: 'at', list, index: constant(index) });
|
|
16
|
+
export const array = (...items) => data({ op: 'construct', shape: 'array', items });
|
|
17
|
+
export const record = (type, fields, span = constant(null)) => data({ op: 'construct', shape: 'record', type, fields, span });
|
|
18
|
+
export const not = (p) => choose(p, constant(false), constant(true));
|
|
19
|
+
export const and = (a, b) => choose(a, b, constant(false));
|
|
20
|
+
export const or = (a, b) => choose(a, constant(true), b);
|
|
21
|
+
export const filter = (list, as, predicate) => flatMap(list, as, choose(predicate, array(get(as)), array()));
|
|
22
|
+
export const map = (list, as, value) => flatMap(list, as, array(value));
|
|
23
|
+
export const any = (list) => less(constant(0), length(list));
|
|
24
|
+
export const member = (value, literals) => any(filter(constant(literals), '$candidate', equal(get('$candidate'), value)));
|
|
25
|
+
export const concat = (...lists) => flatMap(array(...lists), '$list', get('$list'));
|
|
26
|
+
export const scope = (name) => get('scopes', name);
|
|
27
|
+
export const incoming = get('incoming');
|
|
28
|
+
export const isType = (value, ...types) => member(get(value, 'type'), types);
|
|
29
|
+
export const attributes = (node) => choose(present(get(node, 'header', 'attributes')), get(node, 'header', 'attributes'), array());
|
|
30
|
+
export const attr = (node, name) => filter(attributes(node), '$attribute', and(equal(get('$attribute', 'kind'), constant('ordinary')), equal(get('$attribute', 'name'), constant(name))));
|
|
31
|
+
export const hasAttribute = (node, name) => any(attr(node, name));
|
|
32
|
+
export const staticAttribute = (node, name) => get(at(attr(node, name), 0), 'staticText');
|
|
33
|
+
export const seq = (...items) => data({ op: 'seq', items });
|
|
34
|
+
export const choice = (...alternatives) => data({ op: 'choice', alternatives });
|
|
35
|
+
export const optional = (form) => data(choice(form, seq()));
|
|
36
|
+
export const read = (reader, into, input) => data({ op: 'read', reader, ...(into && { into: into.name }), ...(input && { input }) });
|
|
37
|
+
export const emit = (into, value) => data({ op: 'emit', into: into.name, value });
|
|
38
|
+
export const token = (text, tight = false) => read({ kind: 'token', text, gap: tight ? 'none' : 'space*', word: /[A-Za-z0-9_]$/.test(text) });
|
|
39
|
+
export const space = () => read({ kind: 'space', min: 1 });
|
|
40
|
+
export const test = (value) => read({ kind: 'test', value });
|
|
41
|
+
export const call = (name, into) => read({ kind: 'rule', name }, into);
|
|
42
|
+
export const js = (entry, into, input, boundary) => read({ kind: 'javascript', entry, ...(boundary && { boundary }) }, into, input);
|
|
43
|
+
const item = slot('iteration', 'item');
|
|
44
|
+
export const repeat = (build, into, value = item, min = 0, max = null) => data({ op: 'repeat', body: build({ item }), min, max, locals: ['item'], yield: value, into: into.name });
|
|
45
|
+
export const many = (name, into, min, max) => repeat((r) => call(name, r.item), into, item, min, max);
|
|
46
|
+
export const region = (id, parent, covers, kind = 'fragment', when) => data({ id, parent, kind, covers: list(covers), ...(when && { when }) });
|
|
47
|
+
export const declare = (patterns, into, kind = 'pattern') => data({
|
|
48
|
+
patterns: list(patterns),
|
|
49
|
+
into: typeof into === 'string' ? (into === 'incoming' ? incoming : scope(into)) : into,
|
|
50
|
+
kind,
|
|
51
|
+
});
|
|
52
|
+
// a chain, not one call with an options object: TypeScript fixes W before a deferred form callback runs
|
|
53
|
+
export class Rule {
|
|
54
|
+
#data;
|
|
55
|
+
#slots;
|
|
56
|
+
constructor(type, fields, locals) {
|
|
57
|
+
this.#data = { type, fields, ...(locals.length && { locals: [...locals] }), form: seq() };
|
|
58
|
+
this.#slots = data(Object.fromEntries([
|
|
59
|
+
...Object.keys(fields).map((name) => [name, slot('record', name)]),
|
|
60
|
+
...locals.map((name) => [name, slot('locals', name)]),
|
|
61
|
+
]));
|
|
62
|
+
}
|
|
63
|
+
form(build) {
|
|
64
|
+
this.#data.form = build(this.#slots);
|
|
65
|
+
return data(this);
|
|
66
|
+
}
|
|
67
|
+
regions(build) {
|
|
68
|
+
this.#data.regions = [...(this.#data.regions ?? []), ...build(this.#slots)];
|
|
69
|
+
return data(this);
|
|
70
|
+
}
|
|
71
|
+
declares(build) {
|
|
72
|
+
this.#data.declares = [...(this.#data.declares ?? []), ...build(this.#slots)];
|
|
73
|
+
return this;
|
|
74
|
+
}
|
|
75
|
+
span(policy) {
|
|
76
|
+
this.#data.span = policy;
|
|
77
|
+
return this;
|
|
78
|
+
}
|
|
79
|
+
toJSON() {
|
|
80
|
+
return this.#data;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
export const rule = (type, fields, locals) => new Rule(type, fields, locals ?? data([]));
|
package/teasel.wasm
CHANGED
|
Binary file
|
package/wasm.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './index.js';
|