astn-core 0.5.125 → 0.5.126

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.
@@ -6,7 +6,7 @@ import * as d_out from "../../../../interface/generated/liana/schemas/parse_tree
6
6
  import * as d_in from "pareto-fountain-pen/interface/generated/liana/schemas/list_of_characters/data";
7
7
  //dependencies
8
8
  import * as r_annotated_characters from "../annotated_characters/text.js";
9
- import * as r_tokenize from "../../productions/token/annotated_character.js";
9
+ import * as r_tokenize from "../token/annotated_character.js";
10
10
  import * as r_from_tokenizer_result from "./tokenizer_result.js";
11
11
  export const Document = ($, abort, $p) => {
12
12
  const ann_chars = r_annotated_characters.Annotated_Characters($, $p);
@@ -24,4 +24,4 @@ export const Document = ($, abort, $p) => {
24
24
  on_dangling_item: null, //fixme: make this iterate_fully
25
25
  });
26
26
  };
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdF9vZl9jaGFyYWN0ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2ltcGxlbWVudGF0aW9uL21hbnVhbC9yZWZpbmVycy9wYXJzZV90cmVlL2xpc3Rfb2ZfY2hhcmFjdGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssR0FBRyxNQUFNLCtCQUErQixDQUFBO0FBQ3BELE9BQU8sU0FBUyxNQUFNLHFEQUFxRCxDQUFBO0FBRTNFLFlBQVk7QUFDWixPQUFPLEtBQUssVUFBVSxNQUFNLDhFQUE4RSxDQUFBO0FBQzFHLE9BQU8sS0FBSyxLQUFLLE1BQU0sa0VBQWtFLENBQUE7QUFDekYsT0FBTyxLQUFLLElBQUksTUFBTSwrRUFBK0UsQ0FBQTtBQUVyRyxjQUFjO0FBQ2QsT0FBTyxLQUFLLHNCQUFzQixNQUFNLGlDQUFpQyxDQUFBO0FBQ3pFLE9BQU8sS0FBSyxVQUFVLE1BQU0sZ0RBQWdELENBQUE7QUFDNUUsT0FBTyxLQUFLLHVCQUF1QixNQUFNLHVCQUF1QixDQUFBO0FBYWhFLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBd0IsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRyxFQUFFO0lBQzNELE1BQU0sU0FBUyxHQUFHLHNCQUFzQixDQUFDLG9CQUFvQixDQUN6RCxDQUFDLEVBQ0QsRUFBRSxDQUNMLENBQUE7SUFDRCxPQUFPLFNBQVMsQ0FBQztRQUNiLElBQUksRUFBRSxTQUFTLENBQUMsVUFBVTtRQUMxQixRQUFRLEVBQUUsU0FBUyxDQUFDLEdBQUc7UUFDdkIsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsZ0NBQWdDO1FBQ25GLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FDdkIsUUFBUSxFQUNSLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDVCxNQUFNLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZCLENBQUMsRUFDRjtZQUNJLFVBQVUsRUFBRSxTQUFTLENBQUMsR0FBRztTQUM1QixDQUNKLEVBQ0QsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUNULE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7U0FDeEIsQ0FBQyxDQUNMO1FBQ0QsZ0JBQWdCLEVBQUUsSUFBSSxFQUFDLGdDQUFnQztLQUMxRCxDQUFDLENBQUE7QUFDTixDQUFDLENBQUEifQ==
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdF9vZl9jaGFyYWN0ZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2ltcGxlbWVudGF0aW9uL21hbnVhbC9yZWZpbmVycy9wYXJzZV90cmVlL2xpc3Rfb2ZfY2hhcmFjdGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssR0FBRyxNQUFNLCtCQUErQixDQUFBO0FBQ3BELE9BQU8sU0FBUyxNQUFNLHFEQUFxRCxDQUFBO0FBRTNFLFlBQVk7QUFDWixPQUFPLEtBQUssVUFBVSxNQUFNLDhFQUE4RSxDQUFBO0FBQzFHLE9BQU8sS0FBSyxLQUFLLE1BQU0sa0VBQWtFLENBQUE7QUFDekYsT0FBTyxLQUFLLElBQUksTUFBTSwrRUFBK0UsQ0FBQTtBQUVyRyxjQUFjO0FBQ2QsT0FBTyxLQUFLLHNCQUFzQixNQUFNLGlDQUFpQyxDQUFBO0FBQ3pFLE9BQU8sS0FBSyxVQUFVLE1BQU0saUNBQWlDLENBQUE7QUFDN0QsT0FBTyxLQUFLLHVCQUF1QixNQUFNLHVCQUF1QixDQUFBO0FBYWhFLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBd0IsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRyxFQUFFO0lBQzNELE1BQU0sU0FBUyxHQUFHLHNCQUFzQixDQUFDLG9CQUFvQixDQUN6RCxDQUFDLEVBQ0QsRUFBRSxDQUNMLENBQUE7SUFDRCxPQUFPLFNBQVMsQ0FBQztRQUNiLElBQUksRUFBRSxTQUFTLENBQUMsVUFBVTtRQUMxQixRQUFRLEVBQUUsU0FBUyxDQUFDLEdBQUc7UUFDdkIsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsZ0NBQWdDO1FBQ25GLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FDdkIsUUFBUSxFQUNSLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDVCxNQUFNLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZCLENBQUMsRUFDRjtZQUNJLFVBQVUsRUFBRSxTQUFTLENBQUMsR0FBRztTQUM1QixDQUNKLEVBQ0QsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUNULE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7U0FDeEIsQ0FBQyxDQUNMO1FBQ0QsZ0JBQWdCLEVBQUUsSUFBSSxFQUFDLGdDQUFnQztLQUMxRCxDQUFDLENBQUE7QUFDTixDQUFDLENBQUEifQ==
@@ -0,0 +1,42 @@
1
+ import * as p_ti from 'pareto-core/interface/transformer';
2
+ import * as p_i from 'pareto-core/interface/refiner';
3
+ import * as d_out from "../../../../interface/generated/liana/schemas/parse_tree/data.js";
4
+ import * as d_choice from "../../../../interface/generated/liana/schemas/deserialize_parse_tree/data.js";
5
+ import * as d_in from "../../../../interface/generated/liana/schemas/token/data.js";
6
+ import * as d_location from "../../../../interface/generated/liana/schemas/location/data.js";
7
+ export declare namespace interface_ {
8
+ type Document = p_i.Production<d_out.Document, d_choice.Parser_Error, d_in.Annotated_Token, d_location.Location>;
9
+ type Value = p_i.Production<d_out.Value, d_choice.Parser_Error, d_in.Annotated_Token, d_location.Location>;
10
+ type Guaranteed_Structural_Token = p_i.Production_With_Parameter<d_out.Structural_Token, d_choice.Parser_Error, d_in.Annotated_Token, d_location.Location, {
11
+ 'token': d_in.Annotated_Token;
12
+ }>;
13
+ type Possible_Structural_Token = p_i.Production_With_Parameter<d_out.Structural_Token, d_choice.Parser_Error, d_in.Annotated_Token, d_location.Location, {
14
+ 'expected token': d_choice.Expected;
15
+ }>;
16
+ type Text = p_i.Production_With_Parameter<d_out.Text, d_choice.Parser_Error, d_in.Annotated_Token, d_location.Location, {
17
+ 'text': d_in.Annotated_Token.type_.text;
18
+ 'token': d_in.Annotated_Token;
19
+ }>;
20
+ type Items = p_i.Production_With_Parameter<d_out.Items, d_choice.Parser_Error, d_in.Annotated_Token, d_location.Location, {
21
+ 'end token': d_choice.Expected;
22
+ }>;
23
+ type Element = p_i.Production_With_Parameter<d_out.Items, d_choice.Parser_Error, d_in.Annotated_Token, d_location.Location, {
24
+ 'end token': d_choice.Expected;
25
+ }>;
26
+ type ID_Value_Pairs = p_i.Production_With_Parameter<d_out.ID_Value_Pairs, d_choice.Parser_Error, d_in.Annotated_Token, d_location.Location, {
27
+ 'end token': d_choice.Expected;
28
+ }>;
29
+ }
30
+ export declare const create_missing_token: p_ti.Transformer_With_Parameter<d_choice.Parser_Error.expected, d_choice.Parser_Error, {
31
+ 'end location': d_location.Location;
32
+ }>;
33
+ export declare const create_unexpected_token: p_ti.Transformer_With_Parameter<d_choice.Parser_Error.expected, d_choice.Parser_Error, {
34
+ 'found': d_in.Annotated_Token;
35
+ }>;
36
+ export declare const Document: interface_.Document;
37
+ export declare const Value: interface_.Value;
38
+ export declare const Guaranteed_Structural_Token: interface_.Guaranteed_Structural_Token;
39
+ export declare const Possible_Structural_Token: interface_.Possible_Structural_Token;
40
+ export declare const Text: interface_.Text;
41
+ export declare const Items: interface_.Items;
42
+ export declare const ID_Value_Pairs: interface_.ID_Value_Pairs;
@@ -0,0 +1,212 @@
1
+ import * as p_ from 'pareto-core/implementation/refiner';
2
+ import * as p_ti from 'pareto-core/interface/transformer';
3
+ import * as p_i from 'pareto-core/interface/refiner';
4
+ import p_unreachable_code_path from 'pareto-core/implementation/transformer/specials/unreachable_code_path';
5
+ //data types
6
+ import * as d_out from "../../../../interface/generated/liana/schemas/parse_tree/data.js";
7
+ import * as d_choice from "../../../../interface/generated/liana/schemas/deserialize_parse_tree/data.js";
8
+ import * as d_in from "../../../../interface/generated/liana/schemas/token/data.js";
9
+ import * as d_location from "../../../../interface/generated/liana/schemas/location/data.js";
10
+ export const create_missing_token = ($, $p) => ({
11
+ 'expected': $,
12
+ 'cause': ['missing token', {
13
+ 'end': $p['end location'],
14
+ }]
15
+ });
16
+ export const create_unexpected_token = ($, $p) => ({
17
+ 'expected': $,
18
+ 'cause': ['unexpected token', {
19
+ 'found': $p.found,
20
+ }]
21
+ });
22
+ export const Document = (iterator, abort) => ({
23
+ 'header': iterator.peek(($) => p_.literal.not_set(), ($) => $.type[0] === '!' //header token
24
+ ? iterator.consume(() => p_unreachable_code_path("peeked (with 'expected')"), ($) => p_.literal.set({
25
+ '!': Guaranteed_Structural_Token(iterator, abort, { 'token': $ }),
26
+ 'value': Value(iterator, abort)
27
+ }))
28
+ : p_.literal.not_set()),
29
+ 'content': Value(iterator, abort)
30
+ });
31
+ export const Value = (iterator, abort) => ({
32
+ 'type': iterator.peek_with_expectation(p_.literal.list([
33
+ ['any value', null]
34
+ ]), ($, expected) => abort(create_missing_token(expected, { 'end location': $ })), ($, expected) => {
35
+ const token = $;
36
+ return p_.from.state($.type).decide(($) => {
37
+ switch ($[0]) {
38
+ case 'text': return p_.option($, ($) => ['concrete',
39
+ ['text', Text(iterator, abort, { 'token': token, 'text': $ })]
40
+ ]);
41
+ case '{': return p_.option($, ($) => ['concrete', ['dictionary', {
42
+ '{': Guaranteed_Structural_Token(iterator, abort, { 'token': token }),
43
+ 'entries': ID_Value_Pairs(iterator, abort, { 'end token': ['}', null] }),
44
+ '}': Possible_Structural_Token(iterator, abort, { 'expected token': ['}', null] }),
45
+ }]]);
46
+ case '(': return p_.option($, ($) => ['concrete', ['group', ['verbose', {
47
+ '(': Guaranteed_Structural_Token(iterator, abort, { 'token': token }),
48
+ 'properties': ID_Value_Pairs(iterator, abort, { 'end token': [')', null] }),
49
+ ')': Possible_Structural_Token(iterator, abort, { 'expected token': [')', null] })
50
+ }]]]);
51
+ case '[': return p_.option($, ($) => ['concrete', ['list', {
52
+ '[': Guaranteed_Structural_Token(iterator, abort, { 'token': token }),
53
+ 'items': Items(iterator, abort, { 'end token': [']', null] }),
54
+ ']': Possible_Structural_Token(iterator, abort, { 'expected token': [']', null] })
55
+ }]]);
56
+ case '<': return p_.option($, ($) => ['concrete', ['group', ['concise', {
57
+ '<': Guaranteed_Structural_Token(iterator, abort, { 'token': token }),
58
+ 'properties': Items(iterator, abort, { 'end token': ['>', null] }),
59
+ '>': Possible_Structural_Token(iterator, abort, { 'expected token': ['>', null] })
60
+ }]]]);
61
+ case '@': return p_.option($, ($) => ['include', {
62
+ '@': Guaranteed_Structural_Token(iterator, abort, { 'token': token }),
63
+ 'path': iterator.peek_with_expectation(p_.literal.list([
64
+ ['a text value', null]
65
+ ]), (end_info, expected) => abort(create_missing_token(expected, { 'end location': end_info })), ($, expected) => $.type[0] === 'text'
66
+ ? Text(iterator, abort, { 'token': $, 'text': $.type[1] })
67
+ : abort(create_unexpected_token(expected, { 'found': $ })))
68
+ }]);
69
+ case '~': return p_.option($, ($) => ['concrete', ['nothing', {
70
+ '~': Guaranteed_Structural_Token(iterator, abort, { 'token': token }),
71
+ }]]);
72
+ case '|': return p_.option($, ($) => ['concrete', ['state', {
73
+ '|': Guaranteed_Structural_Token(iterator, abort, { 'token': token }),
74
+ 'status': iterator.peek_with_expectation(p_.literal.list([
75
+ ['a text value', null],
76
+ ['#', null]
77
+ ]), ($, expected) => abort(create_missing_token(expected, { 'end location': $ })), ($, expected) => {
78
+ const token = $;
79
+ return p_.from.state($.type).decide(($) => {
80
+ switch ($[0]) {
81
+ case 'text': return p_.option($, ($) => ['set', {
82
+ 'option': Text(iterator, abort, { 'token': token, 'text': $ }),
83
+ 'value': Value(iterator, abort)
84
+ }]);
85
+ case '#': return p_.option($, ($) => ['missing', {
86
+ '#': Guaranteed_Structural_Token(iterator, abort, { 'token': token }),
87
+ }]);
88
+ default: return abort(create_unexpected_token(expected, { 'found': token }));
89
+ }
90
+ });
91
+ })
92
+ }]]);
93
+ case '_': return p_.option($, ($) => ['concrete', ['optional', ['not set', {
94
+ '_': Guaranteed_Structural_Token(iterator, abort, { 'token': token }),
95
+ }]]]);
96
+ case '*': return p_.option($, ($) => ['concrete', ['optional', ['set', {
97
+ '*': Guaranteed_Structural_Token(iterator, abort, { 'token': token }),
98
+ 'value': Value(iterator, abort)
99
+ }]]]);
100
+ case '#': return p_.option($, ($) => ['missing', {
101
+ '#': Guaranteed_Structural_Token(iterator, abort, { 'token': token }),
102
+ }]);
103
+ //unexpected tokens
104
+ // case '!': return p_.option($, ($) => iterator.unexpected_token(token, p_.literal.list([
105
+ // ['any value', null]
106
+ // ])))
107
+ // case ':': return p_.option($, ($) => iterator.unexpected_token(token, p_.literal.list([
108
+ // ['any value', null]
109
+ // ])))
110
+ // case ')': return p_.option($, ($) => iterator.unexpected_token(token, p_.literal.list([
111
+ // ['any value', null]
112
+ // ])))
113
+ // case '>': return p_.option($, ($) => iterator.unexpected_token(token, p_.literal.list([
114
+ // ['any value', null]
115
+ // ])))
116
+ // case ']': return p_.option($, ($) => iterator.unexpected_token(token, p_.literal.list([
117
+ // ['any value', null]
118
+ // ])))
119
+ // case '}': return p_.option($, ($) => iterator.unexpected_token(token, p_.literal.list([
120
+ // ['any value', null]
121
+ // ])))
122
+ default: return abort(create_unexpected_token(expected, { 'found': token }));
123
+ }
124
+ });
125
+ })
126
+ });
127
+ export const Guaranteed_Structural_Token = (iterator, abort, $p) => {
128
+ iterator.consume(() => p_unreachable_code_path("guaranteed"), () => null); //make this a 'discard' operation
129
+ return {
130
+ 'trailing trivia': $p.token['trailing trivia'],
131
+ 'range': {
132
+ 'start': $p.token['start'],
133
+ 'end': $p.token['end']
134
+ }
135
+ };
136
+ };
137
+ export const Possible_Structural_Token = (iterator, abort, $p) => iterator.peek_with_expectation(p_.literal.list([
138
+ $p['expected token']
139
+ ]), ($, expected) => abort(create_missing_token(expected, { 'end location': $ })), ($, expected) => {
140
+ const token = $;
141
+ if ($.type[0] !== $p['expected token'][0]) {
142
+ return abort(create_unexpected_token(expected, { 'found': token }));
143
+ }
144
+ else {
145
+ return iterator.consume(//discard
146
+ () => p_unreachable_code_path("peeked (with 'expected')"), () => ({
147
+ 'trailing trivia': token['trailing trivia'],
148
+ 'range': {
149
+ 'start': token['start'],
150
+ 'end': token['end']
151
+ }
152
+ }));
153
+ }
154
+ });
155
+ export const Text = (iterator, abort, $p) => {
156
+ return iterator.consume(() => p_unreachable_code_path("guaranteed (it has a token as parameter)"), ($) => ({
157
+ 'range': {
158
+ 'start': $['start'],
159
+ 'end': $['end']
160
+ },
161
+ 'token': $p.text,
162
+ 'trailing trivia': $['trailing trivia'],
163
+ }));
164
+ };
165
+ export const Items = (iterator, abort, $p) => iterator.build_list({
166
+ has_more_items: (current_token) => current_token.type[0] !== $p['end token'][0],
167
+ handle: () => iterator.peek(//for the proper error message (any value or end token) we peek instead of processing the token directly
168
+ ($) => abort(create_missing_token(p_.literal.list([
169
+ ['any value', null],
170
+ $p['end token']
171
+ ]), { 'end location': $ })), ($) => ({
172
+ 'value': Value(iterator, abort)
173
+ })),
174
+ on_no_progression: () => p_unreachable_code_path("'handle' is expected to always consume at least one token, so this should never happen"),
175
+ });
176
+ export const ID_Value_Pairs = (iterator, abort, $p) => iterator.build_list({
177
+ has_more_items: ($) => $.type[0] !== $p['end token'][0],
178
+ handle: () => ({
179
+ 'id': iterator.peek(//to get a better error message (a text value or end token) we peek instead of processing the Text token directly
180
+ () => p_unreachable_code_path("has more items is true"), ($) => $.type[0] === 'text'
181
+ ? Text(iterator, abort, {
182
+ 'token': $,
183
+ 'text': $.type[1]
184
+ })
185
+ : abort(create_unexpected_token(p_.literal.list([
186
+ ['a text value', null],
187
+ $p['end token'],
188
+ ]), { 'found': $ }))),
189
+ 'assignment': iterator.peek_with_expectation(p_.literal.list([
190
+ ['a text value', null],
191
+ [':', null],
192
+ $p['end token']
193
+ ]), ($, expected) => abort(create_missing_token(expected, { 'end location': $ })), ($, expected) => {
194
+ const token = $;
195
+ return p_.from.state($.type).decide(($) => {
196
+ switch ($[0]) {
197
+ case 'text': return p_.option($, ($) => p_.literal.not_set());
198
+ case ':': return p_.option($, ($) => p_.literal.set({
199
+ ':': Guaranteed_Structural_Token(iterator, abort, { 'token': token }),
200
+ 'value': p_.literal.set(Value(iterator, abort)) //FIXME determine if it is set... if the next token is a text, we will need to do an extra lookahead if there is a colon
201
+ }));
202
+ default: return $[0] === $p['end token'][0]
203
+ ? p_.literal.not_set()
204
+ : abort(create_unexpected_token(expected, { 'found': token }));
205
+ }
206
+ });
207
+ }),
208
+ // ',': p_.literal.not_set() //FIXME implement optional comma (or keep it as 'whitespace' but then remove this property)
209
+ }),
210
+ on_no_progression: () => p_unreachable_code_path("'handle' is expected to always consume at least one token, so this should never happen"),
211
+ });
212
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvaW1wbGVtZW50YXRpb24vbWFudWFsL3JlZmluZXJzL3BhcnNlX3RyZWUvdG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQTtBQUN4RCxPQUFPLEtBQUssSUFBSSxNQUFNLG1DQUFtQyxDQUFBO0FBQ3pELE9BQU8sS0FBSyxHQUFHLE1BQU0sK0JBQStCLENBQUE7QUFDcEQsT0FBTyx1QkFBdUIsTUFBTSx1RUFBdUUsQ0FBQTtBQUUzRyxZQUFZO0FBQ1osT0FBTyxLQUFLLEtBQUssTUFBTSxrRUFBa0UsQ0FBQTtBQUN6RixPQUFPLEtBQUssUUFBUSxNQUFNLDhFQUE4RSxDQUFBO0FBQ3hHLE9BQU8sS0FBSyxJQUFJLE1BQU0sNkRBQTZELENBQUE7QUFDbkYsT0FBTyxLQUFLLFVBQVUsTUFBTSxnRUFBZ0UsQ0FBQTtBQWtGNUYsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBTTdCLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNaLFVBQVUsRUFBRSxDQUFDO0lBQ2IsT0FBTyxFQUFFLENBQUMsZUFBZSxFQUFFO1lBQ3ZCLEtBQUssRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDO1NBQzVCLENBQUM7Q0FDTCxDQUFDLENBQUE7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FNaEMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1osVUFBVSxFQUFFLENBQUM7SUFDYixPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRTtZQUMxQixPQUFPLEVBQUUsRUFBRSxDQUFDLEtBQUs7U0FDcEIsQ0FBQztDQUNMLENBQUMsQ0FBQTtBQUVGLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBd0IsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxD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
@@ -5,11 +5,11 @@ import * as d_out from "../../../../interface/generated/liana/schemas/parse_tree
5
5
  import * as d_in from "../../../../interface/generated/liana/schemas/token/data.js";
6
6
  import * as d_location from "../../../../interface/generated/liana/schemas/location/data.js";
7
7
  //dependencies
8
- import * as pr_authoring_parse_tree from "../../productions/parse_tree/token.js";
8
+ import * as pr_authoring_parse_tree from "./token.js";
9
9
  export const Document = ($, abort) => p_iterate({
10
10
  list: $.tokens,
11
11
  end_info: $.end,
12
12
  assign: (iterator) => pr_authoring_parse_tree.Document(iterator, abort),
13
13
  on_dangling_item: null, //FIX enable checking for too many tokens
14
14
  });
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5pemVyX3Jlc3VsdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9pbXBsZW1lbnRhdGlvbi9tYW51YWwvcmVmaW5lcnMvcGFyc2VfdHJlZS90b2tlbml6ZXJfcmVzdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxHQUFHLE1BQU0sK0JBQStCLENBQUE7QUFDcEQsT0FBTyxTQUFTLE1BQU0scURBQXFELENBQUE7QUFLM0UsT0FBTyxLQUFLLFVBQVUsTUFBTSw4RUFBOEUsQ0FBQTtBQUMxRyxPQUFPLEtBQUssS0FBSyxNQUFNLGtFQUFrRSxDQUFBO0FBQ3pGLE9BQU8sS0FBSyxJQUFJLE1BQU0sNkRBQTZELENBQUE7QUFDbkYsT0FBTyxLQUFLLFVBQVUsTUFBTSxnRUFBZ0UsQ0FBQTtBQUc1RixjQUFjO0FBQ2QsT0FBTyxLQUFLLHVCQUF1QixNQUFNLHVDQUF1QyxDQUFBO0FBY2hGLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBd0IsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBS2xFO0lBQ0UsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNO0lBQ2QsUUFBUSxFQUFFLENBQUMsQ0FBQyxHQUFHO0lBQ2YsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLENBQ2xELFFBQVEsRUFDUixLQUFLLENBQ1I7SUFDRCxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUseUNBQXlDO0NBQ3BFLENBQUMsQ0FBQSJ9
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5pemVyX3Jlc3VsdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9pbXBsZW1lbnRhdGlvbi9tYW51YWwvcmVmaW5lcnMvcGFyc2VfdHJlZS90b2tlbml6ZXJfcmVzdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxHQUFHLE1BQU0sK0JBQStCLENBQUE7QUFDcEQsT0FBTyxTQUFTLE1BQU0scURBQXFELENBQUE7QUFLM0UsT0FBTyxLQUFLLFVBQVUsTUFBTSw4RUFBOEUsQ0FBQTtBQUMxRyxPQUFPLEtBQUssS0FBSyxNQUFNLGtFQUFrRSxDQUFBO0FBQ3pGLE9BQU8sS0FBSyxJQUFJLE1BQU0sNkRBQTZELENBQUE7QUFDbkYsT0FBTyxLQUFLLFVBQVUsTUFBTSxnRUFBZ0UsQ0FBQTtBQUc1RixjQUFjO0FBQ2QsT0FBTyxLQUFLLHVCQUF1QixNQUFNLFlBQVksQ0FBQTtBQWNyRCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQXdCLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsU0FBUyxDQUtsRTtJQUNFLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTTtJQUNkLFFBQVEsRUFBRSxDQUFDLENBQUMsR0FBRztJQUNmLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUNsRCxRQUFRLEVBQ1IsS0FBSyxDQUNSO0lBQ0QsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLHlDQUF5QztDQUNwRSxDQUFDLENBQUEifQ==
@@ -0,0 +1,15 @@
1
+ import * as p_i from 'pareto-core/interface/refiner';
2
+ import * as d_in from "../../../../interface/data/annotated_characters.js";
3
+ import * as d_out from "../../../../interface/generated/liana/schemas/token/data.js";
4
+ import * as d_function from "../../../../interface/generated/liana/schemas/deserialize_parse_tree/data.js";
5
+ import * as d_location from "../../../../interface/generated/liana/schemas/location/data.js";
6
+ export declare const Whitespace: p_i.Production_Without_Error<d_out.Whitespace, d_in.Annotated_Character, d_location.Location>;
7
+ export declare const Trivia: p_i.Production<d_out.Trivia, d_function.Lexer_Error, d_in.Annotated_Character, d_location.Location>;
8
+ export declare const Delimited_Text: p_i.Production_With_Parameter<string, d_function.Lexer_Error, d_in.Annotated_Character, d_location.Location, {
9
+ 'allow newlines': boolean;
10
+ 'end character': number;
11
+ 'start character': d_in.Annotated_Character;
12
+ }>;
13
+ export declare const Tokenizer_Result: p_i.Production_With_Parameter<d_out.Tokenizer_Result, d_function.Lexer_Error, d_in.Annotated_Character, d_location.Location, {
14
+ 'end info': d_location.Location;
15
+ }>;
@@ -0,0 +1,410 @@
1
+ import * as p_ from 'pareto-core/implementation/refiner';
2
+ import * as p_i from 'pareto-core/interface/refiner';
3
+ import * as p_t from 'pareto-core/implementation/transformer';
4
+ import p_unreachable_code_path from 'pareto-core/implementation/transformer/specials/unreachable_code_path';
5
+ import p_variables from 'pareto-core/implementation/transformer/specials/variables';
6
+ import p_text_from_list from 'pareto-core/implementation/transformer/specials/text_from_list';
7
+ //data types
8
+ import * as d_in from "../../../../interface/data/annotated_characters.js";
9
+ import * as d_out from "../../../../interface/generated/liana/schemas/token/data.js";
10
+ import * as d_function from "../../../../interface/generated/liana/schemas/deserialize_parse_tree/data.js";
11
+ import * as d_location from "../../../../interface/generated/liana/schemas/location/data.js";
12
+ import * as d_temp_location from "../../../../interface/generated/liana/schemas/location/data.js";
13
+ import * as d_loc from "pareto-fountain-pen/interface/generated/liana/schemas/list_of_characters/data";
14
+ //dependencies
15
+ const create_range = (iterator, $p) => ({
16
+ 'start': $p['start character'].location,
17
+ 'end': iterator.peek(($) => $, ($) => $.location)
18
+ });
19
+ export const Whitespace = (iterator) => {
20
+ const is_whitespace_character = ($) => {
21
+ switch ($.code) {
22
+ case 0x09: // \t
23
+ return true;
24
+ case 0x0A: // \n
25
+ return true;
26
+ case 0x0D: // \r
27
+ return true;
28
+ case 0x20: // space
29
+ return true;
30
+ case 0x2C: // ,
31
+ return true;
32
+ default:
33
+ return false;
34
+ }
35
+ };
36
+ return iterator.peek(() => p_.literal.not_set(), ($) => {
37
+ if (!is_whitespace_character($)) {
38
+ return p_.literal.not_set();
39
+ }
40
+ else {
41
+ const start_character = $;
42
+ return p_.literal.set({
43
+ 'value': p_text_from_list(iterator.build_list({
44
+ has_more_items: ($) => is_whitespace_character($),
45
+ handle: () => iterator.consume(() => p_unreachable_code_path("we checked that there is a next character, so this should never happen"), ($) => $.code),
46
+ on_no_progression: () => p_unreachable_code_path("'handle' directly consumes the next character, so this should never happen"),
47
+ }), ($) => $),
48
+ 'range': create_range(iterator, {
49
+ 'start character': start_character
50
+ }),
51
+ });
52
+ }
53
+ });
54
+ };
55
+ export const Trivia = (iterator, abort) => ({
56
+ 'leading whitespace': Whitespace(iterator),
57
+ 'comments': iterator.build_list({
58
+ has_more_items: (current) => {
59
+ // slash followed by either slash or asterisk
60
+ return current.code === 0x2F
61
+ && iterator.peek_ahead(1, () => false, ($) => $.code === 0x2F || $.code === 0x2A);
62
+ },
63
+ handle: () => {
64
+ return iterator.consume(// discard the first slash
65
+ () => p_unreachable_code_path("has_more_items -> true"), ($) => iterator.peek(() => p_unreachable_code_path("has_more_items -> true"), ($) => {
66
+ switch ($.code) {
67
+ case 0x2F: // /
68
+ return iterator.consume(// discard the second /
69
+ () => p_unreachable_code_path("has_more_items -> true"), () => ({
70
+ 'type': ['line', null],
71
+ 'content': p_text_from_list(iterator.build_list({
72
+ has_more_items: ($) => $.code !== 0x0A && $.code !== 0x0D, // not a line feed or carriage return
73
+ handle: () => iterator.consume(() => p_unreachable_code_path("has_more_items -> true"), ($) => $.code),
74
+ on_no_progression: () => p_unreachable_code_path("'handle' directly consumes the next character, so this should never happen"),
75
+ }), ($) => $),
76
+ 'range': create_range(iterator, { 'start character': $ }),
77
+ 'trailing whitespace': Whitespace(iterator)
78
+ }));
79
+ case 0x2A: { // *
80
+ return iterator.consume(// discard the asterisk
81
+ () => p_unreachable_code_path("has_more_items -> true"), () => ({
82
+ 'type': ['block', null],
83
+ 'content': p_variables(() => {
84
+ const $p_temp_content = p_text_from_list(iterator.build_list({
85
+ has_more_items: ($) => {
86
+ // not an asterisk followed by a solidus (end of block comment)
87
+ return $.code !== 0x2A
88
+ || iterator.peek_ahead(1, () => true, // the asterisk needs to be processed, so, yes, there are more items
89
+ ($) => $.code !== 0x2F);
90
+ },
91
+ handle: () => iterator.consume(() => p_unreachable_code_path("has_more_items -> true"), ($) => $.code),
92
+ on_no_progression: () => p_unreachable_code_path("'handle' directly consumes the next character, so this should never happen"),
93
+ }), ($) => $);
94
+ iterator.consume(// discard the asterisk
95
+ ($) => abort({
96
+ 'expected': ['block comment termination', null],
97
+ 'range': {
98
+ 'start': $,
99
+ 'end': $,
100
+ }
101
+ }), ($) => $.code === 0x2A
102
+ ? null
103
+ : abort({
104
+ 'expected': ['block comment termination', null],
105
+ 'range': {
106
+ 'start': $.location,
107
+ 'end': $.location,
108
+ }
109
+ }));
110
+ iterator.consume(// discard the solidus
111
+ ($) => abort({
112
+ 'expected': ['block comment termination', null],
113
+ 'range': {
114
+ 'start': $,
115
+ 'end': $,
116
+ }
117
+ }), ($) => $.code === 0x2F
118
+ ? null
119
+ : abort({
120
+ 'expected': ['block comment termination', null],
121
+ 'range': {
122
+ 'start': $.location,
123
+ 'end': $.location,
124
+ }
125
+ }));
126
+ return $p_temp_content;
127
+ }),
128
+ 'range': create_range(iterator, { 'start character': $ }),
129
+ 'trailing whitespace': Whitespace(iterator)
130
+ }));
131
+ }
132
+ default: return p_unreachable_code_path("we checked in has_more_items that the next character is either a * or a /, so this should never happen");
133
+ }
134
+ }));
135
+ },
136
+ on_no_progression: () => p_unreachable_code_path("'handle' directly consumes the next character, so this should never happen"),
137
+ }),
138
+ });
139
+ export const Delimited_Text = (iterator, abort, $p) => {
140
+ const $p_content = p_text_from_list(iterator.build_list({
141
+ has_more_items: ($) => $.code !== $p['end character'],
142
+ handle: () => iterator.consume(() => p_unreachable_code_path("has_more_items -> true"), ($) => {
143
+ const Character = {
144
+ backspace: 0x08, // \b
145
+ form_feed: 0x0C, // \f
146
+ tab: 0x09, // \t
147
+ line_feed: 0x0A, // \n
148
+ carriage_return: 0x0D, // \r
149
+ quotation_mark: 0x22, // "
150
+ backtick: 0x60, // `
151
+ apostrophe: 0x27, // '
152
+ reverse_solidus: 0x5C, // \
153
+ solidus: 0x2F, // /
154
+ a: 0x61, // a
155
+ b: 0x62, // b
156
+ f: 0x66, // f
157
+ n: 0x6E, // n
158
+ r: 0x72, // r
159
+ t: 0x74, // t
160
+ u: 0x75, // u
161
+ A: 0x41, // A
162
+ F: 0x46, // F
163
+ };
164
+ switch ($.code) {
165
+ case Character.line_feed: return $p['allow newlines']
166
+ ? $.code
167
+ : abort({
168
+ 'expected': ['no end of line in text', null],
169
+ 'range': create_range(iterator, { 'start character': $p['start character'] }),
170
+ });
171
+ case Character.carriage_return: return $p['allow newlines']
172
+ ? $.code
173
+ : abort({
174
+ 'expected': ['no end of line in text', null],
175
+ 'range': create_range(iterator, { 'start character': $p['start character'] }),
176
+ });
177
+ case Character.reverse_solidus: return iterator.consume(($) => abort({
178
+ 'range': create_range(iterator, { 'start character': $p['start character'] }),
179
+ 'expected': ['escape character', { 'found': p_.literal.not_set() }]
180
+ }), ($) => {
181
+ switch ($.code) {
182
+ case Character.quotation_mark: return Character.quotation_mark;
183
+ case Character.apostrophe: return Character.apostrophe;
184
+ case Character.backtick: return Character.backtick;
185
+ case Character.reverse_solidus: return Character.reverse_solidus;
186
+ case Character.solidus: return Character.solidus;
187
+ case Character.b: return Character.backspace;
188
+ case Character.f: return Character.form_feed;
189
+ case Character.n: return Character.line_feed;
190
+ case Character.r: return Character.carriage_return;
191
+ case Character.t: return Character.tab;
192
+ case Character.u:
193
+ const r_hexadecimal = ($, abort) => {
194
+ const characters = $;
195
+ let result = 0;
196
+ let isNegative = false;
197
+ let startIndex = 0;
198
+ // Check for empty string
199
+ if (p_t.from.list(characters).amount_of_items() === 0) {
200
+ abort("empty string is not a valid hexadecimal number");
201
+ }
202
+ const get_character_at = (index) => {
203
+ return characters.__deprecated_get_item_at(index, {
204
+ out_of_bounds: () => p_unreachable_code_path("this function is only called with valid indices, so this should never happen"),
205
+ });
206
+ };
207
+ // Check for negative sign
208
+ if (p_t.from.list(characters).amount_of_items() > 0 && get_character_at(0) === 45) { // '-'
209
+ isNegative = true;
210
+ startIndex = 1;
211
+ }
212
+ // Check for "0x" prefix - REQUIRE it for hex
213
+ if (p_t.from.list(characters).amount_of_items() <= startIndex + 1 ||
214
+ get_character_at(startIndex) !== 48 || // '0'
215
+ get_character_at(startIndex + 1) !== 120) { // 'x'
216
+ abort("Hexadecimal number must have '0x' prefix");
217
+ }
218
+ startIndex += 2;
219
+ // Check if there are digits after the prefix
220
+ if (startIndex >= p_t.from.list(characters).amount_of_items()) {
221
+ abort("Hexadecimal number must have digits after '0x' prefix");
222
+ }
223
+ // Parse hex digits from left to right
224
+ for (let i = startIndex; i < p_t.from.list(characters).amount_of_items(); i++) {
225
+ const charCode = get_character_at(i);
226
+ let digit;
227
+ // Check if character is a hex digit
228
+ if (charCode >= 48 && charCode <= 57) { // '0'-'9'
229
+ digit = charCode - 48;
230
+ }
231
+ else if (charCode >= 65 && charCode <= 70) { // 'A'-'F'
232
+ digit = charCode - 65 + 10;
233
+ }
234
+ else if (charCode >= 97 && charCode <= 102) { // 'a'-'f'
235
+ digit = charCode - 97 + 10;
236
+ }
237
+ else {
238
+ // Invalid character
239
+ return abort("Invalid character in hexadecimal string");
240
+ }
241
+ result = result * 16 + digit;
242
+ }
243
+ return isNegative ? -result : result;
244
+ };
245
+ const consume_char = () => iterator.consume(($) => abort({
246
+ 'range': create_range(iterator, { 'start character': $p['start character'] }),
247
+ 'expected': ['unicode character', { 'found': p_.literal.not_set() }]
248
+ }), ($) => $.code);
249
+ return r_hexadecimal(p_.literal.list([
250
+ consume_char(),
251
+ consume_char(),
252
+ consume_char(),
253
+ consume_char()
254
+ ]), ($) => abort({
255
+ 'range': create_range(iterator, { 'start character': $p['start character'] }),
256
+ 'expected': ['unicode character', { 'found': p_.literal.set(42) }] //FIXME: should be unicode *value*
257
+ }));
258
+ default: return abort({
259
+ 'range': create_range(iterator, { 'start character': $p['start character'] }),
260
+ 'expected': ['escape character', {
261
+ 'found': p_.literal.set($.code)
262
+ }]
263
+ });
264
+ }
265
+ });
266
+ default: return $.code;
267
+ }
268
+ }),
269
+ on_no_progression: () => p_unreachable_code_path("'handle' directly consumes the next character, so this should never happen"),
270
+ }), ($) => $);
271
+ iterator.consume(//discard the end character
272
+ () => abort({
273
+ 'expected': ['text termination', null],
274
+ 'range': create_range(iterator, { 'start character': $p['start character'] }),
275
+ }), () => null);
276
+ return $p_content;
277
+ };
278
+ export const Tokenizer_Result = (iterator, abort, $p) => ({
279
+ 'leading trivia': Trivia(iterator, abort),
280
+ 'tokens': iterator.build_list({
281
+ has_more_items: ($) => true,
282
+ handle: () => {
283
+ const $p_start = iterator.peek(() => p_unreachable_code_path("has_more_items -> true"), ($) => $);
284
+ return ({
285
+ 'start': $p_start.location,
286
+ 'type': iterator.peek(() => p_unreachable_code_path("has_more_items -> true"), ($) => {
287
+ const Character = {
288
+ open_angle_bracket: 0x3C, // <
289
+ open_brace: 0x7B, // {
290
+ open_bracket: 0x5B, // [
291
+ open_paren: 0x28, // (
292
+ close_angle_bracket: 0x3E, // >
293
+ close_brace: 0x7D, // }
294
+ close_bracket: 0x5D, // ]
295
+ close_paren: 0x29, // )
296
+ apostrophe: 0x27, // '
297
+ asterisk: 0x2A, // *
298
+ at: 0x40, // @
299
+ backtick: 0x60, // `
300
+ bang: 0x21,
301
+ colon: 0x3A, // :
302
+ pipe: 0x7C, // |
303
+ quotation_mark: 0x22, // "
304
+ slash: 0x2F, // /
305
+ underscore: 0x5F, // _
306
+ tilde: 0x7E, // ~
307
+ hash: 0x23, // #
308
+ space: 0x20, // space
309
+ tab: 0x09, // \t
310
+ };
311
+ switch ($.code) {
312
+ case Character.open_brace: return iterator.consume(() => p_unreachable_code_path("peeked"), ($) => ['{', null]);
313
+ case Character.open_bracket: return iterator.consume(() => p_unreachable_code_path("peeked"), ($) => ['[', null]);
314
+ case Character.open_angle_bracket: return iterator.consume(() => p_unreachable_code_path("peeked"), ($) => ['<', null]);
315
+ case Character.open_paren: return iterator.consume(() => p_unreachable_code_path("peeked"), ($) => ['(', null]);
316
+ case Character.close_brace: return iterator.consume(() => p_unreachable_code_path("peeked"), ($) => ['}', null]);
317
+ case Character.close_bracket: return iterator.consume(() => p_unreachable_code_path("peeked"), ($) => [']', null]);
318
+ case Character.close_angle_bracket: return iterator.consume(() => p_unreachable_code_path("peeked"), ($) => ['>', null]);
319
+ case Character.close_paren: return iterator.consume(() => p_unreachable_code_path("peeked"), ($) => [')', null]);
320
+ //individuals
321
+ case Character.hash: return iterator.consume(() => p_unreachable_code_path("peeked"), ($) => ['#', null] // missing data token
322
+ );
323
+ case Character.pipe: return iterator.consume(() => p_unreachable_code_path("peeked"), ($) => ['|', null] // state value token
324
+ );
325
+ case Character.underscore: return iterator.consume(() => p_unreachable_code_path("peeked"), ($) => ['_', null] // unset value token
326
+ );
327
+ case Character.tilde: return iterator.consume(() => p_unreachable_code_path("peeked"), ($) => ['~', null] // unset value token
328
+ );
329
+ case Character.asterisk: return iterator.consume(() => p_unreachable_code_path("peeked"), ($) => ['*', null] // set value token
330
+ );
331
+ case Character.at: return iterator.consume(() => p_unreachable_code_path("peeked"), ($) => ['@', null] // include token
332
+ );
333
+ case Character.bang: return iterator.consume(() => p_unreachable_code_path("peeked"), ($) => ['!', null] // header token
334
+ );
335
+ case Character.colon: return iterator.consume(() => p_unreachable_code_path("peeked"), ($) => [':', null] // structural token
336
+ );
337
+ case Character.quotation_mark: return iterator.consume(() => p_unreachable_code_path("peeked"), ($) => ['text', {
338
+ 'value': Delimited_Text(iterator, abort, {
339
+ 'start character': $,
340
+ 'end character': Character.quotation_mark,
341
+ 'allow newlines': true,
342
+ }),
343
+ 'type': ['quoted', null],
344
+ }]);
345
+ case Character.backtick: return iterator.consume(() => p_unreachable_code_path("peeked"), ($) => ['text', {
346
+ 'value': Delimited_Text(iterator, abort, {
347
+ 'start character': $,
348
+ 'end character': Character.backtick,
349
+ 'allow newlines': false,
350
+ }),
351
+ 'type': ['backticked', null],
352
+ }]);
353
+ case Character.apostrophe: return iterator.consume(() => p_unreachable_code_path("peeked"), ($) => ['text', {
354
+ 'value': Delimited_Text(iterator, abort, {
355
+ 'start character': $,
356
+ 'end character': Character.apostrophe,
357
+ 'allow newlines': false,
358
+ }),
359
+ 'type': ['apostrophed', null],
360
+ }]);
361
+ default: return ['text', {
362
+ 'type': ['undelimited', null],
363
+ 'value': p_text_from_list(iterator.build_list({
364
+ has_more_items: ($) => {
365
+ const WhitespaceChars = {
366
+ tab: 0x09, // \t
367
+ line_feed: 0x0A, // \n
368
+ carriage_return: 0x0D, // \r
369
+ space: 0x20, //
370
+ comma: 0x2C, // ,
371
+ };
372
+ return $.code !== Character.open_brace &&
373
+ $.code !== Character.close_brace &&
374
+ $.code !== Character.open_bracket &&
375
+ $.code !== Character.close_bracket &&
376
+ $.code !== Character.open_angle_bracket &&
377
+ $.code !== Character.close_angle_bracket &&
378
+ $.code !== Character.open_paren &&
379
+ $.code !== Character.close_paren &&
380
+ $.code !== Character.apostrophe &&
381
+ $.code !== Character.asterisk &&
382
+ $.code !== Character.at &&
383
+ $.code !== Character.backtick &&
384
+ $.code !== Character.bang &&
385
+ $.code !== Character.colon &&
386
+ $.code !== Character.pipe &&
387
+ $.code !== Character.quotation_mark &&
388
+ $.code !== Character.slash &&
389
+ $.code !== Character.tilde &&
390
+ $.code !== WhitespaceChars.comma &&
391
+ $.code !== WhitespaceChars.space &&
392
+ $.code !== WhitespaceChars.tab &&
393
+ $.code !== WhitespaceChars.line_feed &&
394
+ $.code !== WhitespaceChars.carriage_return;
395
+ },
396
+ handle: () => iterator.consume(() => p_unreachable_code_path("has_more_items -> true"), ($) => $.code),
397
+ on_no_progression: () => p_unreachable_code_path("handle consumes directly"),
398
+ }), ($) => $)
399
+ }];
400
+ }
401
+ }),
402
+ 'end': create_range(iterator, { 'start character': $p_start }).end,
403
+ 'trailing trivia': Trivia(iterator, abort),
404
+ });
405
+ },
406
+ on_no_progression: () => p_unreachable_code_path("handle is expected to always consume at least one character, so this should never happen"),
407
+ }),
408
+ 'end': $p['end info']
409
+ });
410
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ub3RhdGVkX2NoYXJhY3Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9pbXBsZW1lbnRhdGlvbi9tYW51YWwvcmVmaW5lcnMvdG9rZW4vYW5ub3RhdGVkX2NoYXJhY3Rlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxNQUFNLG9DQUFvQyxDQUFBO0FBQ3hELE9BQU8sS0FBSyxHQUFHLE1BQU0sK0JBQStCLENBQUE7QUFDcEQsT0FBTyxLQUFLLEdBQUcsTUFBTSx3Q0FBd0MsQ0FBQTtBQUM3RCxPQUFPLHVCQUF1QixNQUFNLHVFQUF1RSxDQUFBO0FBQzNHLE9BQU8sV0FBVyxNQUFNLDJEQUEyRCxDQUFBO0FBQ25GLE9BQU8sZ0JBQWdCLE1BQU0sZ0VBQWdFLENBQUE7QUFFN0YsWUFBWTtBQUNaLE9BQU8sS0FBSyxJQUFJLE1BQU0sb0RBQW9ELENBQUE7QUFDMUUsT0FBTyxLQUFLLEtBQUssTUFBTSw2REFBNkQsQ0FBQTtBQUNwRixPQUFPLEtBQUssVUFBVSxNQUFNLDhFQUE4RSxDQUFBO0FBQzFHLE9BQU8sS0FBSyxVQUFVLE1BQU0sZ0VBQWdFLENBQUE7QUFFNUYsT0FBTyxLQUFLLGVBQWUsTUFBTSxnRUFBZ0UsQ0FBQTtBQUNqRyxPQUFPLEtBQUssS0FBSyxNQUFNLCtFQUErRSxDQUFBO0FBRXRHLGNBQWM7QUFJZCxNQUFNLFlBQVksR0FPZCxDQUNBLFFBQVEsRUFDUixFQUFFLEVBQ21CLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLE9BQU8sRUFBRSxFQUFFLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxRQUFRO0lBQ3ZDLEtBQUssRUFBRSxRQUFRLENBQUMsSUFBSSxDQUNoQixDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUNSLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUNwQjtDQUNKLENBQUMsQ0FBQTtBQUdGLE1BQU0sQ0FBQyxN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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "astn-core",
3
- "version": "0.5.125",
3
+ "version": "0.5.126",
4
4
  "author": "Corno",
5
5
  "license": "Apache-2.0",
6
6
  "description": "The TypeScript library for parsing and formatting ASTN (Abstract Syntax Tree Notation) - a human-editable data format for structured content",