pacc 4.7.0 → 4.7.2
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 +5 -0
- package/package.json +1 -1
- package/src/tokens.mjs +45 -26
package/README.md
CHANGED
|
@@ -68,6 +68,7 @@ const result = getAttribute({ a: [0,{ b: 4 }]}, "a[1].b");
|
|
|
68
68
|
* [integer\_attribute\_writable](#integer_attribute_writable)
|
|
69
69
|
* [object\_attribute](#object_attribute)
|
|
70
70
|
* [url\_attribute](#url_attribute)
|
|
71
|
+
* [url\_attribute\_writble](#url_attribute_writble)
|
|
71
72
|
* [hostname\_attribute](#hostname_attribute)
|
|
72
73
|
* [port\_attribute](#port_attribute)
|
|
73
74
|
* [id\_attribute](#id_attribute)
|
|
@@ -309,6 +310,10 @@ Type: [AttributeDefinition](#attributedefinition)
|
|
|
309
310
|
|
|
310
311
|
Type: [AttributeDefinition](#attributedefinition)
|
|
311
312
|
|
|
313
|
+
## url\_attribute\_writble
|
|
314
|
+
|
|
315
|
+
Type: [AttributeDefinition](#attributedefinition)
|
|
316
|
+
|
|
312
317
|
## hostname\_attribute
|
|
313
318
|
|
|
314
319
|
Type: [AttributeDefinition](#attributedefinition)
|
package/package.json
CHANGED
package/src/tokens.mjs
CHANGED
|
@@ -53,7 +53,7 @@ export /** @type {Token} */ const DOUBLE_BAR = createToken("||");
|
|
|
53
53
|
* @yields {Token}
|
|
54
54
|
*/
|
|
55
55
|
export function* tokens(string) {
|
|
56
|
-
let state,
|
|
56
|
+
let state, value, hex, divider;
|
|
57
57
|
|
|
58
58
|
for (const c of string) {
|
|
59
59
|
switch (state) {
|
|
@@ -62,7 +62,7 @@ export function* tokens(string) {
|
|
|
62
62
|
// @ts-ignore
|
|
63
63
|
if (hex.length === 4) {
|
|
64
64
|
// @ts-ignore
|
|
65
|
-
|
|
65
|
+
value += String.fromCharCode(parseInt(hex, 16));
|
|
66
66
|
state = "string";
|
|
67
67
|
}
|
|
68
68
|
continue;
|
|
@@ -78,7 +78,7 @@ export function* tokens(string) {
|
|
|
78
78
|
r: "\r",
|
|
79
79
|
t: "\t"
|
|
80
80
|
};
|
|
81
|
-
|
|
81
|
+
value += esc[c] || c;
|
|
82
82
|
state = "string";
|
|
83
83
|
}
|
|
84
84
|
continue;
|
|
@@ -91,12 +91,13 @@ export function* tokens(string) {
|
|
|
91
91
|
case undefined:
|
|
92
92
|
break;
|
|
93
93
|
case "string":
|
|
94
|
-
|
|
94
|
+
value += c;
|
|
95
95
|
break;
|
|
96
|
+
case "number-fraction":
|
|
96
97
|
case "number":
|
|
97
98
|
case "identifier":
|
|
98
|
-
yield
|
|
99
|
-
|
|
99
|
+
yield value;
|
|
100
|
+
value = undefined;
|
|
100
101
|
state = undefined;
|
|
101
102
|
break;
|
|
102
103
|
default:
|
|
@@ -116,22 +117,23 @@ export function* tokens(string) {
|
|
|
116
117
|
case "'":
|
|
117
118
|
switch (state) {
|
|
118
119
|
case undefined:
|
|
119
|
-
|
|
120
|
+
value = "";
|
|
120
121
|
state = "string";
|
|
121
122
|
break;
|
|
122
123
|
case "string":
|
|
123
|
-
yield
|
|
124
|
+
yield value;
|
|
124
125
|
state = undefined;
|
|
125
126
|
break;
|
|
127
|
+
case "number-fraction":
|
|
126
128
|
case "number":
|
|
127
129
|
case "identifier":
|
|
128
|
-
yield
|
|
129
|
-
|
|
130
|
+
yield value;
|
|
131
|
+
value = "";
|
|
130
132
|
state = "string";
|
|
131
133
|
break;
|
|
132
134
|
default:
|
|
133
135
|
yield lookup[state];
|
|
134
|
-
|
|
136
|
+
value = "";
|
|
135
137
|
state = "string";
|
|
136
138
|
}
|
|
137
139
|
break;
|
|
@@ -156,11 +158,13 @@ export function* tokens(string) {
|
|
|
156
158
|
state = c;
|
|
157
159
|
break;
|
|
158
160
|
case "string":
|
|
159
|
-
|
|
161
|
+
value += c;
|
|
160
162
|
break;
|
|
163
|
+
|
|
164
|
+
case "number-fraction":
|
|
161
165
|
case "number":
|
|
162
166
|
case "identifier":
|
|
163
|
-
yield
|
|
167
|
+
yield value;
|
|
164
168
|
state = c;
|
|
165
169
|
break;
|
|
166
170
|
default:
|
|
@@ -175,21 +179,27 @@ export function* tokens(string) {
|
|
|
175
179
|
state = c;
|
|
176
180
|
break;
|
|
177
181
|
case "string":
|
|
178
|
-
|
|
182
|
+
value += c;
|
|
179
183
|
break;
|
|
184
|
+
case "number-fraction":
|
|
180
185
|
case "number":
|
|
181
186
|
case "identifier":
|
|
182
|
-
yield
|
|
187
|
+
yield value;
|
|
183
188
|
state = c;
|
|
184
189
|
break;
|
|
185
190
|
default:
|
|
186
191
|
state += c;
|
|
187
192
|
}
|
|
188
193
|
break;
|
|
194
|
+
case ".":
|
|
195
|
+
if (state === "number") {
|
|
196
|
+
state = "number-fraction";
|
|
197
|
+
divider = 10;
|
|
198
|
+
break;
|
|
199
|
+
}
|
|
189
200
|
case ":":
|
|
190
201
|
case ";":
|
|
191
202
|
case ",":
|
|
192
|
-
case ".":
|
|
193
203
|
case "+":
|
|
194
204
|
case "-":
|
|
195
205
|
case "*":
|
|
@@ -205,11 +215,12 @@ export function* tokens(string) {
|
|
|
205
215
|
state = c;
|
|
206
216
|
break;
|
|
207
217
|
case "string":
|
|
208
|
-
|
|
218
|
+
value += c;
|
|
209
219
|
break;
|
|
210
220
|
case "number":
|
|
221
|
+
case "number-fraction":
|
|
211
222
|
case "identifier":
|
|
212
|
-
yield
|
|
223
|
+
yield value;
|
|
213
224
|
state = c;
|
|
214
225
|
break;
|
|
215
226
|
default:
|
|
@@ -217,7 +228,6 @@ export function* tokens(string) {
|
|
|
217
228
|
state = c;
|
|
218
229
|
}
|
|
219
230
|
break;
|
|
220
|
-
|
|
221
231
|
case "0":
|
|
222
232
|
case "1":
|
|
223
233
|
case "2":
|
|
@@ -232,16 +242,24 @@ export function* tokens(string) {
|
|
|
232
242
|
default:
|
|
233
243
|
yield lookup[state];
|
|
234
244
|
case undefined:
|
|
235
|
-
|
|
245
|
+
value = c.charCodeAt(0) - 48;
|
|
236
246
|
state = "number";
|
|
237
247
|
break;
|
|
248
|
+
case '.':
|
|
249
|
+
state = "number-fraction";
|
|
250
|
+
value = 0;
|
|
251
|
+
divider = 10;
|
|
252
|
+
case "number-fraction":
|
|
253
|
+
value = value + (c.charCodeAt(0) - 48) / divider;
|
|
254
|
+
divider *= 10;
|
|
255
|
+
break;
|
|
238
256
|
case "number":
|
|
239
257
|
// @ts-ignore
|
|
240
|
-
|
|
258
|
+
value = value * 10 + c.charCodeAt(0) - 48;
|
|
241
259
|
break;
|
|
242
260
|
case "string":
|
|
243
261
|
case "identifier":
|
|
244
|
-
|
|
262
|
+
value += c;
|
|
245
263
|
break;
|
|
246
264
|
}
|
|
247
265
|
break;
|
|
@@ -249,17 +267,17 @@ export function* tokens(string) {
|
|
|
249
267
|
default:
|
|
250
268
|
switch (state) {
|
|
251
269
|
case undefined:
|
|
252
|
-
|
|
270
|
+
value = c;
|
|
253
271
|
state = "identifier";
|
|
254
272
|
break;
|
|
255
273
|
case "string":
|
|
256
274
|
case "identifier":
|
|
257
|
-
|
|
275
|
+
value += c;
|
|
258
276
|
break;
|
|
259
277
|
default:
|
|
260
278
|
yield lookup[state];
|
|
261
279
|
state = "identifier";
|
|
262
|
-
|
|
280
|
+
value = c;
|
|
263
281
|
}
|
|
264
282
|
}
|
|
265
283
|
}
|
|
@@ -272,9 +290,10 @@ export function* tokens(string) {
|
|
|
272
290
|
// @ts-ignore
|
|
273
291
|
error.expression = string;
|
|
274
292
|
throw error;
|
|
293
|
+
case "number-fraction":
|
|
275
294
|
case "number":
|
|
276
295
|
case "identifier":
|
|
277
|
-
yield
|
|
296
|
+
yield value;
|
|
278
297
|
break;
|
|
279
298
|
default:
|
|
280
299
|
yield lookup[state];
|