astn-core 0.5.87 → 0.5.89

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.
@@ -36,47 +36,36 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
36
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.Tokenizer_Result = exports.Delimited_Text = exports.Annotated_Token = exports.Trivia = exports.Whitespace = exports.is_control_character = void 0;
39
+ exports.Tokenizer_Result = exports.Delimited_Text = exports.Trivia = exports.Whitespace = exports.is_control_character = void 0;
40
40
  const _p = __importStar(require("pareto-core/dist/assign"));
41
41
  const _p_unreachable_code_path_1 = __importDefault(require("pareto-core/dist/_p_unreachable_code_path"));
42
42
  const _p_list_build_deprecated_1 = __importDefault(require("pareto-core/dist/_p_list_build_deprecated"));
43
43
  const _p_text_from_list_1 = __importDefault(require("pareto-core/dist/_p_text_from_list"));
44
- const temp_get_current_character_or_null = (iterator) => {
45
- const next = iterator.old.look();
46
- if (next === null) {
47
- return null;
48
- }
49
- else {
50
- return next[0];
51
- }
52
- };
53
- const WhitespaceChars = {
54
- tab: 0x09, // \t
55
- line_feed: 0x0A, // \n
56
- carriage_return: 0x0D, // \r
57
- space: 0x20, //
58
- comma: 0x2C // ,
59
- };
44
+ //dependencies
45
+ const create_error = (element, expected) => element.__decide(($) => ({
46
+ 'range': {
47
+ 'start': $.location,
48
+ 'end': {
49
+ 'absolute': $.location.absolute + 1,
50
+ 'relative': {
51
+ 'line': $.location.relative.line,
52
+ 'column': $.location.relative.column + 1,
53
+ }
54
+ }
55
+ },
56
+ 'type': ['unexpected', {
57
+ 'expected': expected
58
+ }]
59
+ }), () => (0, _p_unreachable_code_path_1.default)("implement me"));
60
60
  const is_control_character = ($) => $.code < 0x20
61
- && $.code !== WhitespaceChars.tab
62
- && $.code !== WhitespaceChars.line_feed
63
- && $.code !== WhitespaceChars.carriage_return;
61
+ && $.code !== 0x09 // \t
62
+ && $.code !== 0x0A // \n
63
+ && $.code !== 0x0D; // \r
64
64
  exports.is_control_character = is_control_character;
65
- const create_range = (iterator, $p) => {
66
- const next = iterator.old.look();
67
- if (next === null) {
68
- return {
69
- 'start': $p['start character'].location,
70
- 'end': iterator.new.get_end_info()
71
- };
72
- }
73
- else {
74
- return {
75
- 'start': $p['start character'].location,
76
- 'end': next[0].location,
77
- };
78
- }
79
- };
65
+ const create_range = (iterator, $p) => ({
66
+ 'start': $p['start character'].location,
67
+ 'end': iterator.look((next) => next.location, (end_info) => end_info)
68
+ });
80
69
  const Whitespace = (iterator, abort) => {
81
70
  const is_whitespace_character = ($) => {
82
71
  switch ($.code) {
@@ -94,254 +83,119 @@ const Whitespace = (iterator, abort) => {
94
83
  return false;
95
84
  }
96
85
  };
97
- const next = iterator.old.look();
86
+ const next = iterator.look_raw();
98
87
  if (next === null) {
99
88
  return _p.optional.literal.not_set();
100
89
  }
101
- if (!is_whitespace_character(next[0])) {
102
- return _p.optional.literal.not_set();
90
+ else {
91
+ if (!is_whitespace_character(next[0])) {
92
+ return _p.optional.literal.not_set();
93
+ }
94
+ else {
95
+ const start_character = next[0];
96
+ return _p.optional.literal.set({
97
+ 'value': (0, _p_text_from_list_1.default)(iterator.list({
98
+ has_more_items: ($) => is_whitespace_character($),
99
+ handle: ($) => {
100
+ if ((0, exports.is_control_character)($)) {
101
+ iterator.discard(() => null);
102
+ return abort({
103
+ 'range': create_range(iterator, { 'start character': $ }),
104
+ 'type': ['unexpected control character', {
105
+ 'character': $.code,
106
+ }]
107
+ });
108
+ }
109
+ else {
110
+ iterator.discard(() => null); // discard the character
111
+ return $.code;
112
+ }
113
+ },
114
+ }), ($) => $),
115
+ 'range': create_range(iterator, { 'start character': start_character }),
116
+ });
117
+ }
103
118
  }
104
- const start_character = next[0];
105
- return _p.optional.literal.set({
106
- 'value': (0, _p_text_from_list_1.default)(iterator.new.list(($) => is_whitespace_character($), ($) => {
107
- if ((0, exports.is_control_character)($)) {
108
- iterator.old.discard(() => null);
109
- return abort({
110
- 'range': create_range(iterator, { 'start character': $ }),
111
- 'type': ['unexpected control character', {
112
- 'character': $.code,
113
- }]
114
- });
115
- }
116
- iterator.old.discard(() => null); // discard the character
117
- return $.code;
118
- }, ($) => $), ($) => $),
119
- 'range': create_range(iterator, { 'start character': start_character }),
120
- });
121
119
  };
122
120
  exports.Whitespace = Whitespace;
123
121
  const Trivia = (iterator, abort) => ({
124
122
  'leading whitespace': (0, exports.Whitespace)(iterator, abort),
125
- 'comments': iterator.new.list((current) => current.code === 0x2F, // /
126
- (slash_character) => {
127
- const next_char = iterator.old.look_ahead(1);
128
- if (next_char === null) {
129
- return abort({
130
- 'range': create_range(iterator, { 'start character': slash_character }),
131
- 'type': ['dangling slash', {
132
- 'at end of input': true,
133
- }]
134
- });
135
- }
136
- switch (next_char[0].code) {
137
- case 0x2F: // /
138
- iterator.old.discard(() => null); // discard the second /
139
- const Character = {
140
- line_feed: 0x0A, // \n
141
- carriage_return: 0x0D, // \r
142
- // solidus: 0x2F, // /
143
- };
144
- return ({
145
- 'type': ['line', null],
146
- 'content': (0, _p_text_from_list_1.default)(iterator.new.list(($) => $.code !== Character.line_feed && $.code !== Character.carriage_return, ($) => {
147
- iterator.old.discard(() => null); // discard the character
148
- return $.code;
149
- }, ($) => $), ($) => $),
150
- 'range': create_range(iterator, { 'start character': slash_character }),
151
- 'trailing whitespace': (0, exports.Whitespace)(iterator, abort)
152
- });
153
- break;
154
- case 0x2A: { // *
155
- iterator.old.discard(() => null); // discard the asterisk
156
- return ({
157
- 'type': ['block', null],
158
- 'content': (0, _p_text_from_list_1.default)(iterator.new.list(($) => {
159
- const next_char = iterator.old.look_ahead(1);
160
- return $.code !== 0x2A || (next_char === null || next_char[0].code !== 0x2A); // not a solidus followed by an asterisk (end of block comment)
161
- }, ($) => {
162
- iterator.old.discard(() => null); // discard the character
163
- return $.code;
164
- }, ($) => {
165
- const asterisk = iterator.new.expect([
166
- ['end of block comment', null]
167
- ], ($, abort) => $.code === 0x2A
168
- ? $
169
- : abort());
170
- const solidus = iterator.new.expect([
171
- ['end of block comment', null]
172
- ], ($, abort) => $.code === 0x2A
173
- ? $
174
- : abort());
175
- return $;
176
- }), ($) => $),
177
- 'range': create_range(iterator, { 'start character': slash_character }),
178
- 'trailing whitespace': (0, exports.Whitespace)(iterator, abort)
179
- });
123
+ 'comments': iterator.list({
124
+ has_more_items: (current) => {
125
+ const next = iterator.look_ahead_raw(1);
126
+ return current.code === 0x2F
127
+ && next !== null && (next[0].code === 0x2F || next[0].code === 0x2A); // slash followed by either slash or asterisk
128
+ },
129
+ handle: (slash_character) => {
130
+ iterator.discard(() => null); // discard the first slash
131
+ const next_char = iterator.look_ahead_raw(1);
132
+ if (next_char === null) {
133
+ return (0, _p_unreachable_code_path_1.default)("we check for the presence of the next character in has_more_items, so this should never happen");
180
134
  }
181
- default:
182
- return abort({
183
- 'range': create_range(iterator, { 'start character': slash_character }),
184
- 'type': ['dangling slash', {
185
- 'at end of input': false,
186
- }]
187
- });
188
- }
189
- }, ($) => $),
190
- });
191
- exports.Trivia = Trivia;
192
- const Annotated_Token = (iterator, abort, $p) => {
193
- const WhitespaceChars = {
194
- tab: 0x09, // \t
195
- line_feed: 0x0A, // \n
196
- carriage_return: 0x0D, // \r
197
- space: 0x20, //
198
- comma: 0x2C, // ,
199
- };
200
- return {
201
- 'type': _p.state.block(() => {
202
- const Character = {
203
- open_angle_bracket: 0x3C, // <
204
- open_brace: 0x7B, // {
205
- open_bracket: 0x5B, // [
206
- open_paren: 0x28, // (
207
- close_angle_bracket: 0x3E, // >
208
- close_brace: 0x7D, // }
209
- close_bracket: 0x5D, // ]
210
- close_paren: 0x29, // )
211
- apostrophe: 0x27, // '
212
- asterisk: 0x2A, // *
213
- at: 0x40, // @
214
- backtick: 0x60, // `
215
- bang: 0x21,
216
- colon: 0x3A, // :
217
- pipe: 0x7C, // |
218
- quotation_mark: 0x22, // "
219
- slash: 0x2F, // /
220
- underscore: 0x5F, // _
221
- tilde: 0x7E, // ~
222
- hash: 0x23, // #
223
- space: 0x20, // space
224
- tab: 0x09, // \t
225
- };
226
- switch ($p.character.code) {
227
- case Character.open_brace:
228
- iterator.old.discard(() => null);
229
- return ['{', null];
230
- case Character.open_bracket:
231
- iterator.old.discard(() => null);
232
- return ['[', null];
233
- case Character.open_angle_bracket:
234
- iterator.old.discard(() => null);
235
- return ['<', null];
236
- case Character.open_paren:
237
- iterator.old.discard(() => null);
238
- return ['(', null];
239
- case Character.close_brace:
240
- iterator.old.discard(() => null);
241
- return ['}', null];
242
- case Character.close_bracket:
243
- iterator.old.discard(() => null);
244
- return [']', null];
245
- case Character.close_angle_bracket:
246
- iterator.old.discard(() => null);
247
- return ['>', null];
248
- case Character.close_paren:
249
- iterator.old.discard(() => null);
250
- return [')', null];
251
- //individuals
252
- case Character.hash:
253
- iterator.old.discard(() => null);
254
- return ['#', null]; // missing data token
255
- case Character.pipe:
256
- iterator.old.discard(() => null);
257
- return ['|', null]; // state value token
258
- case Character.underscore:
259
- iterator.old.discard(() => null);
260
- return ['_', null]; // unset value token
261
- case Character.tilde:
262
- iterator.old.discard(() => null);
263
- return ['~', null]; // unset value token
264
- case Character.asterisk:
265
- iterator.old.discard(() => null);
266
- return ['*', null]; // set value token
267
- case Character.at:
268
- iterator.old.discard(() => null);
269
- return ['@', null]; // include token
270
- case Character.bang:
271
- iterator.old.discard(() => null);
272
- return ['!', null]; // header token
273
- case Character.colon:
274
- iterator.old.discard(() => null);
275
- return [':', null]; // structural token
276
- case Character.quotation_mark:
277
- iterator.old.discard(() => null);
278
- return ['text', {
279
- 'value': (0, exports.Delimited_Text)(($) => $ === Character.quotation_mark, true, iterator, abort, { 'start character': $p.character }),
280
- 'type': ['quoted', null],
281
- }];
282
- case Character.backtick:
283
- iterator.old.discard(() => null);
284
- return ['text', {
285
- 'value': (0, exports.Delimited_Text)(($) => $ === Character.backtick, false, iterator, abort, { 'start character': $p.character }),
286
- 'type': ['backticked', null],
287
- }];
288
- case Character.apostrophe:
289
- iterator.old.discard(() => null);
290
- return ['text', {
291
- 'value': (0, exports.Delimited_Text)(($) => $ === Character.apostrophe, false, iterator, abort, { 'start character': $p.character }),
292
- 'type': ['apostrophed', null],
293
- }];
294
- default:
295
- return ['text', {
296
- 'type': ['undelimited', null],
297
- 'value': (0, _p_text_from_list_1.default)(iterator.new.list(($) => {
298
- return $.code !== Character.open_brace &&
299
- $.code !== Character.close_brace &&
300
- $.code !== Character.open_bracket &&
301
- $.code !== Character.close_bracket &&
302
- $.code !== Character.open_angle_bracket &&
303
- $.code !== Character.close_angle_bracket &&
304
- $.code !== Character.open_paren &&
305
- $.code !== Character.close_paren &&
306
- $.code !== Character.apostrophe &&
307
- $.code !== Character.asterisk &&
308
- $.code !== Character.at &&
309
- $.code !== Character.backtick &&
310
- $.code !== Character.bang &&
311
- $.code !== Character.colon &&
312
- $.code !== Character.pipe &&
313
- $.code !== Character.quotation_mark &&
314
- $.code !== Character.slash &&
315
- $.code !== Character.tilde &&
316
- $.code !== WhitespaceChars.comma &&
317
- $.code !== WhitespaceChars.space &&
318
- $.code !== WhitespaceChars.tab &&
319
- $.code !== WhitespaceChars.line_feed &&
320
- $.code !== WhitespaceChars.carriage_return;
321
- }, ($) => {
322
- if ((0, exports.is_control_character)($)) {
323
- iterator.old.discard(() => null);
324
- return abort({
325
- 'range': create_range(iterator, { 'start character': $ }),
326
- 'type': ['unexpected control character in text', {
327
- 'character': $.code,
328
- }]
329
- });
330
- }
331
- iterator.old.discard(() => null); // discard the character
135
+ switch (next_char[0].code) {
136
+ case 0x2F: // /
137
+ iterator.discard(() => null); // discard the second /
138
+ return ({
139
+ 'type': ['line', null],
140
+ 'content': (0, _p_text_from_list_1.default)(iterator.list({
141
+ has_more_items: ($) => $.code !== 0x0A && $.code !== 0x0D, // not a line feed or carriage return
142
+ handle: ($) => {
143
+ iterator.discard(() => null); // discard the character
332
144
  return $.code;
333
- }, ($) => {
334
- return $;
335
- }), ($) => $)
336
- }];
145
+ },
146
+ }), ($) => $),
147
+ 'range': create_range(iterator, { 'start character': slash_character }),
148
+ 'trailing whitespace': (0, exports.Whitespace)(iterator, abort)
149
+ });
150
+ case 0x2A: { // *
151
+ iterator.discard(() => null); // discard the asterisk
152
+ return ({
153
+ 'type': ['block', null],
154
+ 'content': iterator.wrap_up(() => (0, _p_text_from_list_1.default)(iterator.list({
155
+ has_more_items: ($) => {
156
+ const next_char = iterator.look_ahead_raw(1);
157
+ return $.code !== 0x2A || (next_char === null || next_char[0].code !== 0x2F); // not an asterisk followed by a solidus (end of block comment)
158
+ },
159
+ handle: ($) => {
160
+ iterator.discard(() => null); // discard the character
161
+ return $.code;
162
+ },
163
+ }), ($) => $), () => ({
164
+ 'asterisk': iterator.expect({
165
+ abort: abort,
166
+ get_error: ($) => create_error($, _p.list.literal([
167
+ ['end of block comment', null]
168
+ ])),
169
+ item: ($, abort) => $.code === 0x2A
170
+ ? $
171
+ : abort(),
172
+ }),
173
+ 'solidus': iterator.expect({
174
+ abort: abort,
175
+ get_error: ($) => create_error($, _p.list.literal([
176
+ ['end of block comment', null]
177
+ ])),
178
+ item: ($, abort) => $.code === 0x2F
179
+ ? $
180
+ : abort(),
181
+ }),
182
+ })),
183
+ 'range': create_range(iterator, { 'start character': slash_character }),
184
+ 'trailing whitespace': (0, exports.Whitespace)(iterator, abort)
185
+ });
186
+ }
187
+ default:
188
+ return abort({
189
+ 'range': create_range(iterator, { 'start character': slash_character }),
190
+ 'type': ['dangling slash', {
191
+ 'at end of input': false,
192
+ }]
193
+ });
337
194
  }
338
- }),
339
- 'start': $p.character.location,
340
- 'end': create_range(iterator, { 'start character': $p.character }).end,
341
- 'trailing trivia': (0, exports.Trivia)(iterator, abort),
342
- };
343
- };
344
- exports.Annotated_Token = Annotated_Token;
195
+ },
196
+ }),
197
+ });
198
+ exports.Trivia = Trivia;
345
199
  const Delimited_Text = (is_end_character, allow_newlines, iterator, abort, $p) => {
346
200
  const Character = {
347
201
  backspace: 0x08, // \b
@@ -366,26 +220,26 @@ const Delimited_Text = (is_end_character, allow_newlines, iterator, abort, $p) =
366
220
  };
367
221
  const txt = (0, _p_text_from_list_1.default)((0, _p_list_build_deprecated_1.default)(($i) => {
368
222
  while (true) {
369
- const $ = temp_get_current_character_or_null(iterator);
223
+ const $ = iterator.look_raw();
370
224
  if ($ === null) {
371
225
  return abort({
372
226
  'range': create_range(iterator, { 'start character': $p['start character'] }),
373
227
  'type': ['unterminated text', null]
374
228
  });
375
229
  }
376
- if ((0, exports.is_control_character)($)) {
230
+ if ((0, exports.is_control_character)($[0])) {
377
231
  return abort({
378
232
  'range': create_range(iterator, { 'start character': $p['start character'] }),
379
233
  'type': ['unexpected control character in text', {
380
- 'character': $.code,
234
+ 'character': $[0].code,
381
235
  }]
382
236
  });
383
237
  }
384
- if (is_end_character($.code)) {
385
- iterator.old.discard(() => null); // discard the end character
238
+ if (is_end_character($[0].code)) {
239
+ iterator.discard(() => null); // discard the end character
386
240
  return;
387
241
  }
388
- switch ($.code) {
242
+ switch ($[0].code) {
389
243
  case Character.line_feed:
390
244
  case Character.carriage_return:
391
245
  if (!allow_newlines) {
@@ -394,62 +248,62 @@ const Delimited_Text = (is_end_character, allow_newlines, iterator, abort, $p) =
394
248
  'range': create_range(iterator, { 'start character': $p['start character'] }),
395
249
  });
396
250
  }
397
- iterator.old.discard(() => null);
398
- $i['add item']($.code);
251
+ iterator.discard(() => null);
252
+ $i['add item']($[0].code);
399
253
  break;
400
254
  case Character.reverse_solidus: // \ (escape)
401
- iterator.old.discard(() => null);
255
+ iterator.discard(() => null);
402
256
  {
403
- const $ = temp_get_current_character_or_null(iterator);
257
+ const $ = iterator.look_raw();
404
258
  if ($ === null) {
405
259
  return abort({
406
260
  'range': create_range(iterator, { 'start character': $p['start character'] }),
407
261
  'type': ['missing character after escape', null]
408
262
  });
409
263
  }
410
- switch ($.code) {
264
+ switch ($[0].code) {
411
265
  case Character.quotation_mark:
412
- iterator.old.discard(() => null);
266
+ iterator.discard(() => null);
413
267
  $i['add item'](Character.quotation_mark);
414
268
  break;
415
269
  case Character.apostrophe:
416
- iterator.old.discard(() => null);
270
+ iterator.discard(() => null);
417
271
  $i['add item'](Character.apostrophe);
418
272
  break;
419
273
  case Character.backtick:
420
- iterator.old.discard(() => null);
274
+ iterator.discard(() => null);
421
275
  $i['add item'](Character.backtick);
422
276
  break;
423
277
  case Character.reverse_solidus:
424
- iterator.old.discard(() => null);
278
+ iterator.discard(() => null);
425
279
  $i['add item'](Character.reverse_solidus);
426
280
  break;
427
281
  case Character.solidus:
428
- iterator.old.discard(() => null);
282
+ iterator.discard(() => null);
429
283
  $i['add item'](Character.solidus);
430
284
  break;
431
285
  case Character.b:
432
- iterator.old.discard(() => null);
286
+ iterator.discard(() => null);
433
287
  $i['add item'](Character.backspace);
434
288
  break;
435
289
  case Character.f:
436
- iterator.old.discard(() => null);
290
+ iterator.discard(() => null);
437
291
  $i['add item'](Character.form_feed);
438
292
  break;
439
293
  case Character.n:
440
- iterator.old.discard(() => null);
294
+ iterator.discard(() => null);
441
295
  $i['add item'](Character.line_feed);
442
296
  break;
443
297
  case Character.r:
444
- iterator.old.discard(() => null);
298
+ iterator.discard(() => null);
445
299
  $i['add item'](Character.carriage_return);
446
300
  break;
447
301
  case Character.t:
448
- iterator.old.discard(() => null);
302
+ iterator.discard(() => null);
449
303
  $i['add item'](Character.tab);
450
304
  break;
451
305
  case Character.u:
452
- iterator.old.discard(() => null);
306
+ iterator.discard(() => null);
453
307
  const ds_hexadecimal = ($, abort) => {
454
308
  const characters = $;
455
309
  let result = 0;
@@ -504,21 +358,21 @@ const Delimited_Text = (is_end_character, allow_newlines, iterator, abort, $p) =
504
358
  };
505
359
  $i['add item'](ds_hexadecimal((0, _p_list_build_deprecated_1.default)(($i) => {
506
360
  const get_char = () => {
507
- const char = temp_get_current_character_or_null(iterator);
361
+ const char = iterator.look_raw();
508
362
  if (char === null) {
509
363
  return abort({
510
364
  'range': create_range(iterator, { 'start character': $p['start character'] }),
511
365
  'type': ['unterminated unicode escape sequence', null]
512
366
  });
513
367
  }
514
- if (char.code < Character.a || (char.code > Character.f && char.code < Character.A) || char.code > Character.F || char.code < 0x30 || char.code > 0x39) {
368
+ if (char[0].code < Character.a || (char[0].code > Character.f && char[0].code < Character.A) || char[0].code > Character.F || char[0].code < 0x30 || char[0].code > 0x39) {
515
369
  return abort({
516
370
  'range': create_range(iterator, { 'start character': $p['start character'] }),
517
371
  'type': ['invalid unicode escape sequence', null]
518
372
  });
519
373
  }
520
- iterator.old.discard(() => null);
521
- return char.code;
374
+ iterator.discard(() => null);
375
+ return char[0].code;
522
376
  };
523
377
  $i['add item'](get_char());
524
378
  $i['add item'](get_char());
@@ -530,15 +384,15 @@ const Delimited_Text = (is_end_character, allow_newlines, iterator, abort, $p) =
530
384
  return abort({
531
385
  'range': create_range(iterator, { 'start character': $p['start character'] }),
532
386
  'type': ['unknown escape character', {
533
- 'character': $.code
387
+ 'character': $[0].code
534
388
  }]
535
389
  });
536
390
  }
537
391
  }
538
392
  break;
539
393
  default:
540
- iterator.old.discard(() => null);
541
- $i['add item']($.code);
394
+ iterator.discard(() => null);
395
+ $i['add item']($[0].code);
542
396
  }
543
397
  }
544
398
  }), ($) => $);
@@ -547,8 +401,161 @@ const Delimited_Text = (is_end_character, allow_newlines, iterator, abort, $p) =
547
401
  exports.Delimited_Text = Delimited_Text;
548
402
  const Tokenizer_Result = (iterator, abort) => ({
549
403
  'leading trivia': (0, exports.Trivia)(iterator, abort),
550
- 'tokens': iterator.new.list(($) => true, ($) => (0, exports.Annotated_Token)(iterator, abort, { 'character': $ }), ($) => $),
551
- 'end': iterator.new.get_end_info()
404
+ 'tokens': iterator.list({
405
+ has_more_items: ($) => true,
406
+ handle: ($) => ({
407
+ 'type': _p.state.block(() => {
408
+ const Character = {
409
+ open_angle_bracket: 0x3C, // <
410
+ open_brace: 0x7B, // {
411
+ open_bracket: 0x5B, // [
412
+ open_paren: 0x28, // (
413
+ close_angle_bracket: 0x3E, // >
414
+ close_brace: 0x7D, // }
415
+ close_bracket: 0x5D, // ]
416
+ close_paren: 0x29, // )
417
+ apostrophe: 0x27, // '
418
+ asterisk: 0x2A, // *
419
+ at: 0x40, // @
420
+ backtick: 0x60, // `
421
+ bang: 0x21,
422
+ colon: 0x3A, // :
423
+ pipe: 0x7C, // |
424
+ quotation_mark: 0x22, // "
425
+ slash: 0x2F, // /
426
+ underscore: 0x5F, // _
427
+ tilde: 0x7E, // ~
428
+ hash: 0x23, // #
429
+ space: 0x20, // space
430
+ tab: 0x09, // \t
431
+ };
432
+ switch ($.code) {
433
+ case Character.open_brace:
434
+ iterator.discard(() => null);
435
+ return ['{', null];
436
+ case Character.open_bracket:
437
+ iterator.discard(() => null);
438
+ return ['[', null];
439
+ case Character.open_angle_bracket:
440
+ iterator.discard(() => null);
441
+ return ['<', null];
442
+ case Character.open_paren:
443
+ iterator.discard(() => null);
444
+ return ['(', null];
445
+ case Character.close_brace:
446
+ iterator.discard(() => null);
447
+ return ['}', null];
448
+ case Character.close_bracket:
449
+ iterator.discard(() => null);
450
+ return [']', null];
451
+ case Character.close_angle_bracket:
452
+ iterator.discard(() => null);
453
+ return ['>', null];
454
+ case Character.close_paren:
455
+ iterator.discard(() => null);
456
+ return [')', null];
457
+ //individuals
458
+ case Character.hash:
459
+ iterator.discard(() => null);
460
+ return ['#', null]; // missing data token
461
+ case Character.pipe:
462
+ iterator.discard(() => null);
463
+ return ['|', null]; // state value token
464
+ case Character.underscore:
465
+ iterator.discard(() => null);
466
+ return ['_', null]; // unset value token
467
+ case Character.tilde:
468
+ iterator.discard(() => null);
469
+ return ['~', null]; // unset value token
470
+ case Character.asterisk:
471
+ iterator.discard(() => null);
472
+ return ['*', null]; // set value token
473
+ case Character.at:
474
+ iterator.discard(() => null);
475
+ return ['@', null]; // include token
476
+ case Character.bang:
477
+ iterator.discard(() => null);
478
+ return ['!', null]; // header token
479
+ case Character.colon:
480
+ iterator.discard(() => null);
481
+ return [':', null]; // structural token
482
+ case Character.quotation_mark:
483
+ iterator.discard(() => null);
484
+ return ['text', {
485
+ 'value': (0, exports.Delimited_Text)(($) => $ === Character.quotation_mark, true, iterator, abort, { 'start character': $ }),
486
+ 'type': ['quoted', null],
487
+ }];
488
+ case Character.backtick:
489
+ iterator.discard(() => null);
490
+ return ['text', {
491
+ 'value': (0, exports.Delimited_Text)(($) => $ === Character.backtick, false, iterator, abort, { 'start character': $ }),
492
+ 'type': ['backticked', null],
493
+ }];
494
+ case Character.apostrophe:
495
+ iterator.discard(() => null);
496
+ return ['text', {
497
+ 'value': (0, exports.Delimited_Text)(($) => $ === Character.apostrophe, false, iterator, abort, { 'start character': $ }),
498
+ 'type': ['apostrophed', null],
499
+ }];
500
+ default:
501
+ return ['text', {
502
+ 'type': ['undelimited', null],
503
+ 'value': (0, _p_text_from_list_1.default)(iterator.list({
504
+ has_more_items: ($) => {
505
+ const WhitespaceChars = {
506
+ tab: 0x09, // \t
507
+ line_feed: 0x0A, // \n
508
+ carriage_return: 0x0D, // \r
509
+ space: 0x20, //
510
+ comma: 0x2C, // ,
511
+ };
512
+ return $.code !== Character.open_brace &&
513
+ $.code !== Character.close_brace &&
514
+ $.code !== Character.open_bracket &&
515
+ $.code !== Character.close_bracket &&
516
+ $.code !== Character.open_angle_bracket &&
517
+ $.code !== Character.close_angle_bracket &&
518
+ $.code !== Character.open_paren &&
519
+ $.code !== Character.close_paren &&
520
+ $.code !== Character.apostrophe &&
521
+ $.code !== Character.asterisk &&
522
+ $.code !== Character.at &&
523
+ $.code !== Character.backtick &&
524
+ $.code !== Character.bang &&
525
+ $.code !== Character.colon &&
526
+ $.code !== Character.pipe &&
527
+ $.code !== Character.quotation_mark &&
528
+ $.code !== Character.slash &&
529
+ $.code !== Character.tilde &&
530
+ $.code !== WhitespaceChars.comma &&
531
+ $.code !== WhitespaceChars.space &&
532
+ $.code !== WhitespaceChars.tab &&
533
+ $.code !== WhitespaceChars.line_feed &&
534
+ $.code !== WhitespaceChars.carriage_return;
535
+ },
536
+ handle: ($) => {
537
+ if ((0, exports.is_control_character)($)) {
538
+ iterator.discard(() => null);
539
+ return abort({
540
+ 'range': create_range(iterator, { 'start character': $ }),
541
+ 'type': ['unexpected control character in text', {
542
+ 'character': $.code,
543
+ }]
544
+ });
545
+ }
546
+ iterator.discard(() => null); // discard the character
547
+ return $.code;
548
+ },
549
+ }), ($) => $)
550
+ }];
551
+ }
552
+ }),
553
+ 'start': $.location,
554
+ 'end': create_range(iterator, { 'start character': $ }).end,
555
+ 'trailing trivia': (0, exports.Trivia)(iterator, abort),
556
+ }),
557
+ }),
558
+ 'end': iterator.get_end_info()
552
559
  });
553
560
  exports.Tokenizer_Result = Tokenizer_Result;
554
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ub3RhdGVkX2NoYXJhY3Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9pbXBsZW1lbnRhdGlvbi9tYW51YWwvcmVmaW5lcnMvdG9rZW4vYW5ub3RhdGVkX2NoYXJhY3Rlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw0REFBNkM7QUFHN0MseUdBQWdGO0FBQ2hGLHlHQUFnRjtBQUNoRiwyRkFBa0U7QUFvQmxFLE1BQU0sa0NBQWtDLEdBQUcsQ0FBQyxRQUFzRSxFQUFtQyxFQUFFO0lBQ25KLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDaEMsSUFBSSxJQUFJLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDaEIsT0FBTyxJQUFJLENBQUE7SUFDZixDQUFDO1NBQU0sQ0FBQztRQUNKLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ2xCLENBQUM7QUFDTCxDQUFDLENBQUE7QUFFRCxNQUFNLGVBQWUsR0FBRztJQUNwQixHQUFHLEVBQUUsSUFBSSxFQUFtQixLQUFLO0lBQ2pDLFNBQVMsRUFBRSxJQUFJLEVBQWEsS0FBSztJQUNqQyxlQUFlLEVBQUUsSUFBSSxFQUFPLEtBQUs7SUFDakMsS0FBSyxFQUFFLElBQUksRUFBaUIsRUFBRTtJQUM5QixLQUFLLEVBQUUsSUFBSSxDQUFpQixJQUFJO0NBQ25DLENBQUE7QUFFTSxNQUFNLG9CQUFvQixHQUFHLENBQUMsQ0FBMkIsRUFBVyxFQUFFLENBQ3pFLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSTtPQUNWLENBQUMsQ0FBQyxJQUFJLEtBQUssZUFBZSxDQUFDLEdBQUc7T0FDOUIsQ0FBQyxDQUFDLElBQUksS0FBSyxlQUFlLENBQUMsU0FBUztPQUNwQyxDQUFDLENBQUMsSUFBSSxLQUFLLGVBQWUsQ0FBQyxlQUFlLENBQUE7QUFK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
561
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ub3RhdGVkX2NoYXJhY3Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9pbXBsZW1lbnRhdGlvbi9tYW51YWwvcmVmaW5lcnMvdG9rZW4vYW5ub3RhdGVkX2NoYXJhY3Rlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw0REFBNkM7QUFFN0MseUdBQWdGO0FBQ2hGLHlHQUFnRjtBQUNoRiwyRkFBa0U7QUFVbEUsY0FBYztBQUdkLE1BQU0sWUFBWSxHQUFHLENBQ2pCLE9BQXFELEVBQ3JELFFBQTBELEVBRXBDLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUN6QyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNKLE9BQU8sRUFBRTtRQUNMLE9BQU8sRUFBRSxDQUFDLENBQUMsUUFBUTtRQUNuQixLQUFLLEVBQUU7WUFDSCxVQUFVLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEdBQUcsQ0FBQztZQUNuQyxVQUFVLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUk7Z0JBQ2hDLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQzthQUMzQztTQUNKO0tBQ0o7SUFDRCxNQUFNLEVBQUUsQ0FBQyxZQUFZLEVBQUU7WUFDbkIsVUFBVSxFQUFFLFFBQVE7U0FDdkIsQ0FBQztDQUNMLENBQUMsRUFDRixHQUFHLEVBQUUsQ0FBQyxJQUFBLGtDQUF3QixFQUFDLGNBQWMsQ0FBQyxDQUNqRCxDQUFBO0FBRU0sTUFBTSxvQkFBb0IsR0FBRyxDQUFDLENBQTJCLEVBQVcsRUFBRSxDQUN6RSxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUk7T0FDVixDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxLQUFLO09BQ3JCLENBQUMs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