astn 0.113.7 → 0.113.9

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.
Files changed (38) hide show
  1. package/dist/implementation/algorithms/productions/authoring_parse_tree/token.d.ts +11 -0
  2. package/dist/implementation/algorithms/productions/authoring_parse_tree/token.js +287 -0
  3. package/dist/implementation/algorithms/{refiners/token/text/refiners.d.ts → productions/token/annotated_character.d.ts} +6 -3
  4. package/dist/implementation/algorithms/productions/token/annotated_character.js +546 -0
  5. package/dist/implementation/algorithms/refiners/authoring_parse_tree/text/refiners.js +7 -9
  6. package/dist/{implementation/algorithms/refiners/token/iterator.d.ts → temp_core/annotate_characters.d.ts} +11 -5
  7. package/dist/temp_core/annotate_characters.js +94 -0
  8. package/package.json +6 -6
  9. package/dist/core/iterator.d.ts +0 -7
  10. package/dist/core/iterator.js +0 -3
  11. package/dist/exceptional/authoring_parse/iterator.d.ts +0 -7
  12. package/dist/exceptional/authoring_parse/iterator.js +0 -3
  13. package/dist/exceptional/authoring_parse/parse.d.ts +0 -6
  14. package/dist/exceptional/authoring_parse/parse.js +0 -47
  15. package/dist/implementation/algorithms/refiners/authoring_parse_tree/context.d.ts +0 -11
  16. package/dist/implementation/algorithms/refiners/authoring_parse_tree/context.js +0 -43
  17. package/dist/implementation/algorithms/refiners/authoring_parse_tree/iterator.d.ts +0 -9
  18. package/dist/implementation/algorithms/refiners/authoring_parse_tree/iterator.js +0 -29
  19. package/dist/implementation/algorithms/refiners/authoring_parse_tree/refiners.d.ts +0 -10
  20. package/dist/implementation/algorithms/refiners/authoring_parse_tree/refiners.js +0 -266
  21. package/dist/implementation/algorithms/refiners/authoring_parse_tree/token/context.d.ts +0 -11
  22. package/dist/implementation/algorithms/refiners/authoring_parse_tree/token/context.js +0 -43
  23. package/dist/implementation/algorithms/refiners/authoring_parse_tree/token/iterator.d.ts +0 -9
  24. package/dist/implementation/algorithms/refiners/authoring_parse_tree/token/iterator.js +0 -29
  25. package/dist/implementation/algorithms/refiners/authoring_parse_tree/token/refiners.d.ts +0 -10
  26. package/dist/implementation/algorithms/refiners/authoring_parse_tree/token/refiners.js +0 -266
  27. package/dist/implementation/algorithms/refiners/token/context.d.ts +0 -9
  28. package/dist/implementation/algorithms/refiners/token/context.js +0 -37
  29. package/dist/implementation/algorithms/refiners/token/iterator.js +0 -107
  30. package/dist/implementation/algorithms/refiners/token/refiners.d.ts +0 -7
  31. package/dist/implementation/algorithms/refiners/token/refiners.js +0 -521
  32. package/dist/implementation/algorithms/refiners/token/text/context.d.ts +0 -1
  33. package/dist/implementation/algorithms/refiners/token/text/context.js +0 -24
  34. package/dist/implementation/algorithms/refiners/token/text/iterator.d.ts +0 -27
  35. package/dist/implementation/algorithms/refiners/token/text/iterator.js +0 -107
  36. package/dist/implementation/algorithms/refiners/token/text/refiners.js +0 -522
  37. package/dist/refiners/authoring_parse/iterator.d.ts +0 -7
  38. package/dist/refiners/authoring_parse/iterator.js +0 -3
@@ -0,0 +1,546 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.Tokenizer_Result = exports.Delimited_String = exports.Annotated_Token = exports.Trivia = exports.Whitespace = exports.is_control_character = void 0;
27
+ const _ea = __importStar(require("exupery-core-alg"));
28
+ const from_character_list_1 = require("pareto-standard-operations/dist/implementation/algorithms/operations/impure/text/from_character_list");
29
+ const deserializer_1 = require("pareto-standard-operations/dist/implementation/algorithms/integer/hexadecimal/deserializer");
30
+ //this file contains the tokenizer functionality, each function return a type from the 'token' schema
31
+ const sh = __importStar(require("../../../../shorthands/parse_result"));
32
+ const temp_get_current_character_or_null = (iterator) => {
33
+ return iterator['get current']().transform(($) => $, () => null);
34
+ };
35
+ const WhitespaceChars = {
36
+ tab: 0x09, // \t
37
+ line_feed: 0x0A, // \n
38
+ carriage_return: 0x0D, // \r
39
+ space: 0x20, //
40
+ };
41
+ const is_control_character = ($) => {
42
+ return ($.code < 0x20 && $.code !== WhitespaceChars.tab && $.code !== WhitespaceChars.line_feed && $.code !== WhitespaceChars.carriage_return);
43
+ };
44
+ exports.is_control_character = is_control_character;
45
+ const temp_get_current_location = (iterator) => {
46
+ return iterator['get current']().transform(($) => ({
47
+ 'absolute': iterator['get position'](),
48
+ 'relative': {
49
+ 'line': $.location.line,
50
+ 'column': $.location.column,
51
+ }
52
+ }), () => ({
53
+ 'absolute': iterator['get position'](),
54
+ 'relative': {
55
+ 'line': -1,
56
+ 'column': -1,
57
+ }
58
+ }));
59
+ };
60
+ const Whitespace = (iterator, abort) => {
61
+ const start_location = temp_get_current_location(iterator);
62
+ return {
63
+ 'value': (0, from_character_list_1.$$)(_ea.build_list(($i) => {
64
+ while (true) {
65
+ {
66
+ const $ = temp_get_current_character_or_null(iterator);
67
+ if ($ === null) {
68
+ return;
69
+ }
70
+ if ((0, exports.is_control_character)($)) {
71
+ return abort(sh.lexer_error(['unexpected control character', $.code], {
72
+ 'start': start_location,
73
+ 'end': temp_get_current_location(iterator),
74
+ }));
75
+ }
76
+ switch ($.code) {
77
+ case 0x09: // \t
78
+ iterator['consume']();
79
+ $i['add element']($.code);
80
+ break;
81
+ case 0x0A: // \n
82
+ iterator['consume']();
83
+ $i['add element']($.code);
84
+ break;
85
+ case 0x0D: // \r
86
+ iterator['consume']();
87
+ $i['add element']($.code);
88
+ break;
89
+ case 0x20: // space
90
+ iterator['consume']();
91
+ $i['add element']($.code);
92
+ break;
93
+ case 0x2C: // ,
94
+ iterator['consume']();
95
+ $i['add element']($.code);
96
+ break;
97
+ default:
98
+ return;
99
+ }
100
+ }
101
+ }
102
+ })),
103
+ 'range': {
104
+ 'start': start_location,
105
+ 'end': temp_get_current_location(iterator),
106
+ }
107
+ };
108
+ };
109
+ exports.Whitespace = Whitespace;
110
+ const Trivia = (iterator, abort) => {
111
+ return {
112
+ 'leading whitespace': (0, exports.Whitespace)(iterator, abort),
113
+ 'comments': _ea.build_list(($i) => {
114
+ while (true) {
115
+ const $ = temp_get_current_character_or_null(iterator);
116
+ if ($ === null) {
117
+ return; //normal end of input
118
+ }
119
+ switch ($.code) {
120
+ case 0x2F: // /
121
+ const start = temp_get_current_location(iterator);
122
+ const next_char = iterator['look ahead'](1).transform(($) => $, () => null);
123
+ if (next_char === null) {
124
+ const start = temp_get_current_location(iterator);
125
+ iterator['consume']();
126
+ const end = temp_get_current_location(iterator);
127
+ return abort(sh.lexer_error(['dangling slash', null], {
128
+ 'start': start,
129
+ 'end': end
130
+ }));
131
+ }
132
+ switch (next_char.code) {
133
+ case 0x2F: // /
134
+ iterator['consume'](); // consume the first /
135
+ iterator['consume'](); // consume the second /
136
+ const Character = {
137
+ line_feed: 0x0A, // \n
138
+ carriage_return: 0x0D, // \r
139
+ solidus: 0x2F, // /
140
+ };
141
+ $i['add element']({
142
+ 'type': ['line', null],
143
+ 'content': (0, from_character_list_1.$$)(_ea.build_list(($i) => {
144
+ while (true) {
145
+ const $ = temp_get_current_character_or_null(iterator);
146
+ if ($ === null) {
147
+ return;
148
+ }
149
+ switch ($.code) {
150
+ case Character.line_feed:
151
+ return;
152
+ case Character.carriage_return:
153
+ return;
154
+ default:
155
+ iterator['consume']();
156
+ $i['add element']($.code);
157
+ }
158
+ }
159
+ })),
160
+ 'range': {
161
+ 'start': start,
162
+ 'end': temp_get_current_location(iterator),
163
+ },
164
+ 'trailing whitespace': (0, exports.Whitespace)(iterator, abort)
165
+ });
166
+ break;
167
+ case 0x2A: { // *
168
+ iterator['consume'](); // consume the first /
169
+ iterator['consume'](); // consume the asterisk
170
+ $i['add element']({
171
+ 'type': ['block', null],
172
+ 'content': (0, from_character_list_1.$$)(_ea.build_list(($i) => {
173
+ let found_asterisk = false;
174
+ const Character = {
175
+ solidus: 0x2F, // /
176
+ asterisk: 0x2A, // *
177
+ };
178
+ while (true) {
179
+ const $ = temp_get_current_character_or_null(iterator);
180
+ if ($ === null) {
181
+ return abort(sh.lexer_error(['unterminated block comment', null], {
182
+ 'start': start,
183
+ 'end': temp_get_current_location(iterator)
184
+ }));
185
+ }
186
+ if ($.code === Character.solidus && found_asterisk) {
187
+ iterator['consume'](); // consume the solidus
188
+ //found asterisk before solidus, so this is the end of the comment
189
+ return;
190
+ }
191
+ //not a solidus, so this is part of the comment
192
+ if (found_asterisk) {
193
+ $i['add element'](Character.asterisk); // add the asterisk that was found before but was not part of the end delimiter
194
+ }
195
+ if ($.code === Character.asterisk) {
196
+ found_asterisk = true;
197
+ }
198
+ else {
199
+ $i['add element']($.code);
200
+ }
201
+ iterator['consume']();
202
+ }
203
+ })),
204
+ 'range': {
205
+ 'start': start,
206
+ 'end': temp_get_current_location(iterator),
207
+ },
208
+ 'trailing whitespace': (0, exports.Whitespace)(iterator, abort)
209
+ });
210
+ break;
211
+ }
212
+ default:
213
+ return abort(sh.lexer_error(['dangling slash', null], {
214
+ 'start': start,
215
+ 'end': temp_get_current_location(iterator)
216
+ }));
217
+ }
218
+ break;
219
+ default:
220
+ return;
221
+ }
222
+ }
223
+ })
224
+ };
225
+ };
226
+ exports.Trivia = Trivia;
227
+ const Annotated_Token = (iterator, abort) => {
228
+ const WhitespaceChars = {
229
+ tab: 0x09, // \t
230
+ line_feed: 0x0A, // \n
231
+ carriage_return: 0x0D, // \r
232
+ space: 0x20, //
233
+ comma: 0x2C, // ,
234
+ };
235
+ const $ = temp_get_current_character_or_null(iterator);
236
+ if ($ === null) {
237
+ return abort(sh.lexer_error(['unexpected end of input', null], {
238
+ 'start': temp_get_current_location(iterator),
239
+ 'end': temp_get_current_location(iterator),
240
+ }));
241
+ }
242
+ return {
243
+ 'start': temp_get_current_location(iterator),
244
+ 'type': _ea.block(() => {
245
+ const Character = {
246
+ open_angle_bracket: 0x3C, // <
247
+ open_brace: 0x7B, // {
248
+ open_bracket: 0x5B, // [
249
+ open_paren: 0x28, // (
250
+ close_angle_bracket: 0x3E, // >
251
+ close_brace: 0x7D, // }
252
+ close_bracket: 0x5D, // ]
253
+ close_paren: 0x29, // )
254
+ apostrophe: 0x27, // '
255
+ asterisk: 0x2A, // *
256
+ at: 0x40, // @
257
+ backtick: 0x60, // `
258
+ bang: 0x21,
259
+ colon: 0x3A, // :
260
+ pipe: 0x7C, // |
261
+ quotation_mark: 0x22, // "
262
+ slash: 0x2F, // /
263
+ tilde: 0x7E, // ~
264
+ hash: 0x23, // #
265
+ space: 0x20, // space
266
+ tab: 0x09, // \t
267
+ };
268
+ switch ($.code) {
269
+ case Character.open_brace:
270
+ iterator['consume']();
271
+ return ['{', null];
272
+ case Character.open_bracket:
273
+ iterator['consume']();
274
+ return ['[', null];
275
+ case Character.open_angle_bracket:
276
+ iterator['consume']();
277
+ return ['<', null];
278
+ case Character.open_paren:
279
+ iterator['consume']();
280
+ return ['(', null];
281
+ case Character.close_brace:
282
+ iterator['consume']();
283
+ return ['}', null];
284
+ case Character.close_bracket:
285
+ iterator['consume']();
286
+ return [']', null];
287
+ case Character.close_angle_bracket:
288
+ iterator['consume']();
289
+ return ['>', null];
290
+ case Character.close_paren:
291
+ iterator['consume']();
292
+ return [')', null];
293
+ //individuals
294
+ case Character.hash:
295
+ iterator['consume']();
296
+ return ['#', null]; // missing data token
297
+ case Character.pipe:
298
+ iterator['consume']();
299
+ return ['|', null]; // state value token
300
+ case Character.tilde:
301
+ iterator['consume']();
302
+ return ['~', null]; // unset value token
303
+ case Character.asterisk:
304
+ iterator['consume']();
305
+ return ['*', null]; // set value token
306
+ case Character.at:
307
+ iterator['consume']();
308
+ return ['@', null]; // include token
309
+ case Character.bang:
310
+ iterator['consume']();
311
+ return ['!', null]; // header token
312
+ case Character.colon:
313
+ iterator['consume']();
314
+ return [':', null];
315
+ case Character.quotation_mark:
316
+ iterator['consume']();
317
+ return ['string', {
318
+ 'value': (0, exports.Delimited_String)(($) => $ === Character.quotation_mark, true, iterator, abort),
319
+ 'type': ['quoted', null],
320
+ }];
321
+ case Character.backtick:
322
+ iterator['consume']();
323
+ return ['string', {
324
+ 'value': (0, exports.Delimited_String)(($) => $ === Character.backtick, false, iterator, abort),
325
+ 'type': ['backticked', null],
326
+ }];
327
+ case Character.apostrophe:
328
+ iterator['consume']();
329
+ return ['string', {
330
+ 'value': (0, exports.Delimited_String)(($) => $ === Character.apostrophe, false, iterator, abort),
331
+ 'type': ['apostrophed', null],
332
+ }];
333
+ default:
334
+ return ['string', {
335
+ 'type': ['undelimited', null],
336
+ 'value': (0, from_character_list_1.$$)(_ea.build_list(($i) => {
337
+ while (true) {
338
+ const $ = temp_get_current_character_or_null(iterator);
339
+ if ($ === null) {
340
+ return;
341
+ }
342
+ if ((0, exports.is_control_character)($)) {
343
+ return abort(sh.lexer_error(['unexpected control character', $.code], {
344
+ 'start': temp_get_current_location(iterator),
345
+ 'end': temp_get_current_location(iterator),
346
+ }));
347
+ }
348
+ if ($.code === Character.open_brace ||
349
+ $.code === Character.close_brace ||
350
+ $.code === Character.open_bracket ||
351
+ $.code === Character.close_bracket ||
352
+ $.code === Character.open_angle_bracket ||
353
+ $.code === Character.close_angle_bracket ||
354
+ $.code === Character.open_paren ||
355
+ $.code === Character.close_paren ||
356
+ $.code === Character.apostrophe ||
357
+ $.code === Character.asterisk ||
358
+ $.code === Character.at ||
359
+ $.code === Character.backtick ||
360
+ $.code === Character.bang ||
361
+ $.code === Character.colon ||
362
+ $.code === Character.pipe ||
363
+ $.code === Character.quotation_mark ||
364
+ $.code === Character.slash ||
365
+ $.code === Character.tilde ||
366
+ $.code === WhitespaceChars.comma ||
367
+ $.code === WhitespaceChars.space ||
368
+ $.code === WhitespaceChars.tab ||
369
+ $.code === WhitespaceChars.line_feed ||
370
+ $.code === WhitespaceChars.carriage_return) {
371
+ return;
372
+ }
373
+ iterator['consume']();
374
+ $i['add element']($.code);
375
+ }
376
+ })),
377
+ }];
378
+ }
379
+ }),
380
+ 'end': temp_get_current_location(iterator),
381
+ 'trailing trivia': (0, exports.Trivia)(iterator, abort),
382
+ };
383
+ };
384
+ exports.Annotated_Token = Annotated_Token;
385
+ const Delimited_String = (is_end_character, allow_newlines, iterator, abort) => {
386
+ const Character = {
387
+ backspace: 0x08, // \b
388
+ form_feed: 0x0C, // \f
389
+ tab: 0x09, // \t
390
+ line_feed: 0x0A, // \n
391
+ carriage_return: 0x0D, // \r
392
+ quotation_mark: 0x22, // "
393
+ backtick: 0x60, // `
394
+ apostrophe: 0x27, // '
395
+ reverse_solidus: 0x5C, // \
396
+ solidus: 0x2F, // /
397
+ a: 0x61, // a
398
+ b: 0x62, // b
399
+ f: 0x66, // f
400
+ n: 0x6E, // n
401
+ r: 0x72, // r
402
+ t: 0x74, // t
403
+ u: 0x75, // u
404
+ A: 0x41, // A
405
+ F: 0x46, // F
406
+ };
407
+ const start = temp_get_current_location(iterator);
408
+ const txt = (0, from_character_list_1.$$)(_ea.build_list(($i) => {
409
+ while (true) {
410
+ const $ = temp_get_current_character_or_null(iterator);
411
+ if ($ === null) {
412
+ return abort(sh.lexer_error(['unterminated string', null], {
413
+ 'start': start,
414
+ 'end': temp_get_current_location(iterator)
415
+ }));
416
+ }
417
+ if ((0, exports.is_control_character)($)) {
418
+ return abort(sh.lexer_error(['unexpected control character', $.code], {
419
+ 'start': temp_get_current_location(iterator),
420
+ 'end': temp_get_current_location(iterator),
421
+ }));
422
+ }
423
+ if (is_end_character($.code)) {
424
+ iterator['consume'](); // consume the end character
425
+ return;
426
+ }
427
+ switch ($.code) {
428
+ case Character.line_feed:
429
+ case Character.carriage_return:
430
+ if (!allow_newlines) {
431
+ return abort(sh.lexer_error(['unexpected end of line in delimited string', null], {
432
+ 'start': start,
433
+ 'end': temp_get_current_location(iterator)
434
+ }));
435
+ }
436
+ iterator['consume']();
437
+ $i['add element']($.code);
438
+ break;
439
+ case Character.reverse_solidus: // \ (escape)
440
+ iterator['consume']();
441
+ {
442
+ const $ = temp_get_current_character_or_null(iterator);
443
+ if ($ === null) {
444
+ return abort(sh.lexer_error(['missing character after escape', null], {
445
+ 'start': start,
446
+ 'end': temp_get_current_location(iterator)
447
+ }));
448
+ }
449
+ switch ($.code) {
450
+ case Character.quotation_mark:
451
+ iterator['consume']();
452
+ $i['add element'](Character.quotation_mark);
453
+ break;
454
+ case Character.apostrophe:
455
+ iterator['consume']();
456
+ $i['add element'](Character.apostrophe);
457
+ break;
458
+ case Character.backtick:
459
+ iterator['consume']();
460
+ $i['add element'](Character.backtick);
461
+ break;
462
+ case Character.reverse_solidus:
463
+ iterator['consume']();
464
+ $i['add element'](Character.reverse_solidus);
465
+ break;
466
+ case Character.solidus:
467
+ iterator['consume']();
468
+ $i['add element'](Character.solidus);
469
+ break;
470
+ case Character.b:
471
+ iterator['consume']();
472
+ $i['add element'](Character.backspace);
473
+ break;
474
+ case Character.f:
475
+ iterator['consume']();
476
+ $i['add element'](Character.form_feed);
477
+ break;
478
+ case Character.n:
479
+ iterator['consume']();
480
+ $i['add element'](Character.line_feed);
481
+ break;
482
+ case Character.r:
483
+ iterator['consume']();
484
+ $i['add element'](Character.carriage_return);
485
+ break;
486
+ case Character.t:
487
+ iterator['consume']();
488
+ $i['add element'](Character.tab);
489
+ break;
490
+ case Character.u:
491
+ iterator['consume']();
492
+ $i['add element']((0, deserializer_1.$$)((0, from_character_list_1.$$)((_ea.build_list(($i) => {
493
+ const get_char = () => {
494
+ const char = temp_get_current_character_or_null(iterator);
495
+ if (char === null) {
496
+ return abort(sh.lexer_error(['unterminated unicode escape sequence', null], {
497
+ 'start': start,
498
+ 'end': temp_get_current_location(iterator)
499
+ }));
500
+ }
501
+ if (char.code < Character.a || (char.code > Character.f && char.code < Character.A) || char.code > Character.F || char.code < 0x30 || char.code > 0x39) {
502
+ return abort(sh.lexer_error(['invalid unicode escape sequence', null], {
503
+ 'start': start,
504
+ 'end': temp_get_current_location(iterator)
505
+ }));
506
+ }
507
+ iterator['consume']();
508
+ return char.code;
509
+ };
510
+ $i['add element'](get_char());
511
+ $i['add element'](get_char());
512
+ $i['add element'](get_char());
513
+ $i['add element'](get_char());
514
+ }))), () => _ea.deprecated_panic("IMPLEMENT ME")));
515
+ break;
516
+ default:
517
+ return abort(sh.lexer_error(['unknown escape character', null], {
518
+ 'start': start,
519
+ 'end': temp_get_current_location(iterator)
520
+ }));
521
+ }
522
+ }
523
+ break;
524
+ default:
525
+ iterator['consume']();
526
+ $i['add element']($.code);
527
+ }
528
+ }
529
+ }));
530
+ return txt;
531
+ };
532
+ exports.Delimited_String = Delimited_String;
533
+ const Tokenizer_Result = (iterator, abort) => {
534
+ return {
535
+ 'leading trivia': (0, exports.Trivia)(iterator, abort),
536
+ 'tokens': _ea.build_list($i => {
537
+ while (temp_get_current_character_or_null(iterator) !== null) {
538
+ const token = (0, exports.Annotated_Token)(iterator, abort);
539
+ $i['add element'](token);
540
+ }
541
+ }),
542
+ 'end': temp_get_current_location(iterator)
543
+ };
544
+ };
545
+ exports.Tokenizer_Result = Tokenizer_Result;
546
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ub3RhdGVkX2NoYXJhY3Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9pbXBsZW1lbnRhdGlvbi9hbGdvcml0aG1zL3Byb2R1Y3Rpb25zL3Rva2VuL2Fubm90YXRlZF9jaGFyYWN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxzREFBdUM7QUFXdkMsOElBQW1KO0FBQ25KLDZIQUF1STtBQUV2SSxxR0FBcUc7QUFFckcsd0VBQXlEO0FBRXpELE1BQU0sa0NBQWtDLEdBQUcsQ0FBQyxRQUE2QixFQUE4QixFQUFFO0lBQ3JHLE9BQU8sUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUN0QyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUNSLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FDYixDQUFBO0FBQ0wsQ0FBQyxDQUFBO0FBRUQsTUFBTSxlQUFlLEdBQUc7SUFDcEIsR0FBRyxFQUFFLElBQUksRUFBbUIsS0FBSztJQUNqQyxTQUFTLEVBQUUsSUFBSSxFQUFhLEtBQUs7SUFDakMsZUFBZSxFQUFFLElBQUksRUFBTyxLQUFLO0lBQ2pDLEtBQUssRUFBRSxJQUFJLEVBQWlCLEVBQUU7Q0FDakMsQ0FBQTtBQUVNLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxDQUFzQixFQUFXLEVBQUU7SUFDcEUsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssZUFBZSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLGVBQWUsQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxlQUFlLENBQUMsZUFBZSxDQUFDLENBQUE7QUFDbEosQ0FBQyxDQUFBO0FBRlksUUFBQSxvQkFBb0Isd0JBRWhDO0FBRUQsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLFFBQTZCLEVBQWlC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
@@ -25,20 +25,18 @@ var __importStar = (this && this.__importStar) || function (mod) {
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.parse = void 0;
27
27
  const _ea = __importStar(require("exupery-core-alg"));
28
- const d_ast = __importStar(require("../token/refiners"));
29
- const ai = __importStar(require("../token/iterator"));
30
- const ti = __importStar(require("../../token/text/iterator"));
31
- const tokenize = __importStar(require("../../token/text/refiners"));
32
- const context_1 = require("../token/context");
28
+ const d_ast = __importStar(require("../../../productions/authoring_parse_tree/token"));
29
+ const ti = __importStar(require("../../../../../temp_core/annotate_characters"));
30
+ const tokenize = __importStar(require("../../../productions/token/annotated_character"));
33
31
  const parse = ($, $p) => {
34
32
  return _ea.create_refinement_context(($) => $, (abort) => {
35
- const iter = ti.create_iterator($, {
33
+ const iter = _ea.create_iterator(ti.annotate_characters($, {
36
34
  'tab size': $p['tab size']
37
- });
35
+ }));
38
36
  return tokenize.Tokenizer_Result(iter, abort);
39
37
  }).refine(($) => _ea.create_refinement_context(($) => $, (abort) => {
40
- return d_ast.Document((0, context_1.create_context)(ai.create_iterator($.tokens, $.end), abort));
38
+ return d_ast.Document(_ea.create_iterator($.tokens), abort);
41
39
  }), ($) => $);
42
40
  };
43
41
  exports.parse = parse;
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmaW5lcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvaW1wbGVtZW50YXRpb24vYWxnb3JpdGhtcy9yZWZpbmVycy9hdXRob3JpbmdfcGFyc2VfdHJlZS90ZXh0L3JlZmluZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsc0RBQXVDO0FBSXZDLHlEQUEwQztBQUsxQyxzREFBdUM7QUFDdkMsOERBQStDO0FBRS9DLG9FQUFxRDtBQUNyRCw4Q0FBdUU7QUFFaEUsTUFBTSxLQUFLLEdBQUcsQ0FDakIsQ0FBUyxFQUNULEVBRUMsRUFDK0QsRUFBRTtJQUNsRSxPQUFPLEdBQUcsQ0FBQyx5QkFBeUIsQ0FDaEMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDUixDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ04sTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQyxDQUFDLEVBQUU7WUFDL0IsVUFBVSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUM7U0FDN0IsQ0FBQyxDQUFBO1FBQ0YsT0FBTyxRQUFRLENBQUMsZ0JBQWdCLENBQzVCLElBQUksRUFDSixLQUFLLENBQ1IsQ0FBQTtJQUNMLENBQUMsQ0FDSixDQUFDLE1BQU0sQ0FDSixDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUNoQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUNSLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFDTixPQUFPLEtBQUssQ0FBQyxRQUFRLENBQ2pCLElBQUEsd0JBQWtCLEVBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FDakUsQ0FBQTtJQUNMLENBQUMsQ0FDSixFQUNELENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQ1gsQ0FBQTtBQUNMLENBQUMsQ0FBQTtBQTVCWSxRQUFBLEtBQUssU0E0QmpCIn0=
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmaW5lcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvaW1wbGVtZW50YXRpb24vYWxnb3JpdGhtcy9yZWZpbmVycy9hdXRob3JpbmdfcGFyc2VfdHJlZS90ZXh0L3JlZmluZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsc0RBQXVDO0FBSXZDLHVGQUF3RTtBQUt4RSxpRkFBa0U7QUFFbEUseUZBQTBFO0FBRW5FLE1BQU0sS0FBSyxHQUFHLENBQ2pCLENBQVMsRUFDVCxFQUVDLEVBQytELEVBQUU7SUFDbEUsT0FBTyxHQUFHLENBQUMseUJBQXlCLENBQ2hDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQ1IsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUNOLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLENBQUMsRUFBRTtZQUN2RCxVQUFVLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQztTQUM3QixDQUFDLENBQUMsQ0FBQTtRQUNILE9BQU8sUUFBUSxDQUFDLGdCQUFnQixDQUM1QixJQUFJLEVBQ0osS0FBSyxDQUNSLENBQUE7SUFDTCxDQUFDLENBQ0osQ0FBQyxNQUFNLENBQ0osQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsQ0FDaEMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDUixDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ04sT0FBTyxLQUFLLENBQUMsUUFBUSxDQUNqQixHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFDN0IsS0FBSyxDQUNSLENBQUE7SUFDTCxDQUFDLENBQ0osRUFDRCxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUNYLENBQUE7QUFDTCxDQUFDLENBQUE7QUE3QlksUUFBQSxLQUFLLFNBNkJqQiJ9
@@ -1,4 +1,4 @@
1
- import { Iterator } from '../../../../exceptional/authoring_parse/iterator';
1
+ import * as _et from 'exupery-core-types';
2
2
  export type Iterator_Location = {
3
3
  'absolute': number;
4
4
  'relative': {
@@ -16,12 +16,18 @@ export type Token_Iterator_State = {
16
16
  */
17
17
  'line indentation': number;
18
18
  };
19
- export type Characters_Iterator = Iterator<number, Token_Iterator_State>;
20
- export declare const is_control_character: ($: number) => boolean;
21
19
  /**
22
20
  * Creates a string iterator that allows iterating over characters in a string,
23
21
  * while keeping track of line numbers, columns, and line indentation.
24
22
  */
25
- export declare const create_iterator: ($: string, $p: {
23
+ export type Annotated_Character = {
24
+ 'code': number;
25
+ 'location': {
26
+ 'line': number;
27
+ 'column': number;
28
+ };
29
+ 'line indentation': number;
30
+ };
31
+ export declare const annotate_characters: ($: string, $p: {
26
32
  "tab size": number;
27
- }) => Characters_Iterator;
33
+ }) => _et.List<Annotated_Character>;