astn 0.110.15 → 1.20.5

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 (185) hide show
  1. package/.eslintignore +5 -0
  2. package/.eslintrc.js +20 -0
  3. package/.vscode/extensions.json +9 -0
  4. package/.vscode/launch.json +39 -0
  5. package/.vscode/settings.json +8 -0
  6. package/.vscode/tasks.json +33 -0
  7. package/.vscodeignore +15 -0
  8. package/LICENSE.md +204 -0
  9. package/README.md +3 -410
  10. package/backend/package-lock.json +123 -0
  11. package/backend/package.json +6 -0
  12. package/backend/src/index.ts +133 -0
  13. package/backend/tsconfig.json +16 -0
  14. package/client/package-lock.json +581 -0
  15. package/client/package.json +23 -0
  16. package/client/src/extension.ts +249 -0
  17. package/client/src/test/completion.test.ts +43 -0
  18. package/client/src/test/diagnostics.test.ts +41 -0
  19. package/client/src/test/helper.ts +47 -0
  20. package/client/src/test/index.ts +43 -0
  21. package/client/src/test/runTest.ts +27 -0
  22. package/client/testFixture/diagnostics.txt +1 -0
  23. package/client/tsconfig.json +12 -0
  24. package/client/tsconfig.tsbuildinfo +1 -0
  25. package/development.md +12 -0
  26. package/images/icon.png +0 -0
  27. package/language-configuration.json +36 -0
  28. package/package.json +102 -58
  29. package/scripts/e2e.sh +6 -0
  30. package/server/package-lock.json +127 -0
  31. package/server/package.json +22 -0
  32. package/server/src/backend.ts +53 -0
  33. package/server/src/backendapi.ts +66 -0
  34. package/server/src/server.ts +296 -0
  35. package/server/tsconfig.json +14 -0
  36. package/server/tsconfig.tsbuildinfo +1 -0
  37. package/syntaxes/astn.tmLanguage.json +320 -0
  38. package/tsconfig.json +21 -0
  39. package/LICENSE +0 -17
  40. package/dist/bin/convert_to_json.d.ts +0 -2
  41. package/dist/bin/convert_to_json.js +0 -63
  42. package/dist/bin/validate_astn.d.ts +0 -2
  43. package/dist/bin/validate_astn.js +0 -58
  44. package/dist/generated/generic/resolve.d.ts +0 -90
  45. package/dist/generated/generic/resolve.js +0 -259
  46. package/dist/generated/implementation/schemas/ast/migration_boilerplate.d.ts +0 -13
  47. package/dist/generated/implementation/schemas/ast/migration_boilerplate.js +0 -174
  48. package/dist/generated/implementation/schemas/ide/migration_boilerplate.d.ts +0 -2
  49. package/dist/generated/implementation/schemas/ide/migration_boilerplate.js +0 -56
  50. package/dist/generated/implementation/schemas/parse_result/migration_boilerplate.d.ts +0 -6
  51. package/dist/generated/implementation/schemas/parse_result/migration_boilerplate.js +0 -136
  52. package/dist/generated/implementation/schemas/target/migration_boilerplate.d.ts +0 -3
  53. package/dist/generated/implementation/schemas/target/migration_boilerplate.js +0 -73
  54. package/dist/generated/implementation/schemas/target_json/migration_boilerplate.d.ts +0 -3
  55. package/dist/generated/implementation/schemas/target_json/migration_boilerplate.js +0 -67
  56. package/dist/generated/interface/core/poormans_parser.d.ts +0 -184
  57. package/dist/generated/interface/core/poormans_parser.js +0 -3
  58. package/dist/generated/interface/core/resolved.d.ts +0 -100
  59. package/dist/generated/interface/core/resolved.js +0 -3
  60. package/dist/generated/interface/core/unresolved.d.ts +0 -35
  61. package/dist/generated/interface/core/unresolved.js +0 -3
  62. package/dist/generated/interface/schemas/ast/migration_boilerplate.d.ts +0 -266
  63. package/dist/generated/interface/schemas/ast/migration_boilerplate.js +0 -3
  64. package/dist/generated/interface/schemas/ast/poormans_parser.d.ts +0 -1087
  65. package/dist/generated/interface/schemas/ast/poormans_parser.js +0 -3
  66. package/dist/generated/interface/schemas/ast/resolved.d.ts +0 -1087
  67. package/dist/generated/interface/schemas/ast/resolved.js +0 -3
  68. package/dist/generated/interface/schemas/ast/unresolved.d.ts +0 -1087
  69. package/dist/generated/interface/schemas/ast/unresolved.js +0 -3
  70. package/dist/generated/interface/schemas/ide/migration_boilerplate.d.ts +0 -24
  71. package/dist/generated/interface/schemas/ide/migration_boilerplate.js +0 -3
  72. package/dist/generated/interface/schemas/ide/poormans_parser.d.ts +0 -161
  73. package/dist/generated/interface/schemas/ide/poormans_parser.js +0 -3
  74. package/dist/generated/interface/schemas/ide/resolved.d.ts +0 -161
  75. package/dist/generated/interface/schemas/ide/resolved.js +0 -3
  76. package/dist/generated/interface/schemas/ide/unresolved.d.ts +0 -161
  77. package/dist/generated/interface/schemas/ide/unresolved.js +0 -3
  78. package/dist/generated/interface/schemas/parse_result/migration_boilerplate.d.ts +0 -112
  79. package/dist/generated/interface/schemas/parse_result/migration_boilerplate.js +0 -3
  80. package/dist/generated/interface/schemas/parse_result/poormans_parser.d.ts +0 -416
  81. package/dist/generated/interface/schemas/parse_result/poormans_parser.js +0 -3
  82. package/dist/generated/interface/schemas/parse_result/resolved.d.ts +0 -416
  83. package/dist/generated/interface/schemas/parse_result/resolved.js +0 -3
  84. package/dist/generated/interface/schemas/parse_result/unresolved.d.ts +0 -416
  85. package/dist/generated/interface/schemas/parse_result/unresolved.js +0 -3
  86. package/dist/generated/interface/schemas/target/migration_boilerplate.d.ts +0 -46
  87. package/dist/generated/interface/schemas/target/migration_boilerplate.js +0 -3
  88. package/dist/generated/interface/schemas/target/poormans_parser.d.ts +0 -186
  89. package/dist/generated/interface/schemas/target/poormans_parser.js +0 -3
  90. package/dist/generated/interface/schemas/target/resolved.d.ts +0 -186
  91. package/dist/generated/interface/schemas/target/resolved.js +0 -3
  92. package/dist/generated/interface/schemas/target/unresolved.d.ts +0 -186
  93. package/dist/generated/interface/schemas/target/unresolved.js +0 -3
  94. package/dist/generated/interface/schemas/target_json/migration_boilerplate.d.ts +0 -46
  95. package/dist/generated/interface/schemas/target_json/migration_boilerplate.js +0 -3
  96. package/dist/generated/interface/schemas/target_json/poormans_parser.d.ts +0 -169
  97. package/dist/generated/interface/schemas/target_json/poormans_parser.js +0 -3
  98. package/dist/generated/interface/schemas/target_json/resolved.d.ts +0 -169
  99. package/dist/generated/interface/schemas/target_json/resolved.js +0 -3
  100. package/dist/generated/interface/schemas/target_json/unresolved.d.ts +0 -169
  101. package/dist/generated/interface/schemas/target_json/unresolved.js +0 -3
  102. package/dist/globals.d.ts +0 -24
  103. package/dist/globals.js +0 -2
  104. package/dist/index.d.ts +0 -6
  105. package/dist/index.js +0 -43
  106. package/dist/lib/globals.d.ts +0 -24
  107. package/dist/lib/globals.js +0 -2
  108. package/dist/lib/transformations/create_error_message.d.ts +0 -5
  109. package/dist/lib/transformations/create_error_message.js +0 -89
  110. package/dist/lib/transformations/format.d.ts +0 -42
  111. package/dist/lib/transformations/format.js +0 -166
  112. package/dist/lib/transformations/fountain_pen/astn.d.ts +0 -11
  113. package/dist/lib/transformations/fountain_pen/astn.js +0 -156
  114. package/dist/lib/transformations/fountain_pen/json.d.ts +0 -4
  115. package/dist/lib/transformations/fountain_pen/json.js +0 -113
  116. package/dist/lib/transformations/parse.d.ts +0 -11
  117. package/dist/lib/transformations/parse.js +0 -257
  118. package/dist/lib/transformations/parse_generic.d.ts +0 -43
  119. package/dist/lib/transformations/parse_generic.js +0 -644
  120. package/dist/parse/parse.d.ts +0 -11
  121. package/dist/parse/parse.js +0 -267
  122. package/dist/parse/parse_generic.d.ts +0 -43
  123. package/dist/parse/parse_generic.js +0 -656
  124. package/dist/serializers/astn.js +0 -28
  125. package/dist/serializers/json.d.ts +0 -5
  126. package/dist/serializers/json.js +0 -46
  127. package/dist/serializers/parse_result.d.ts +0 -5
  128. package/dist/serializers/parse_result.js +0 -99
  129. package/dist/transformations/ast/ide.d.ts +0 -42
  130. package/dist/transformations/ast/ide.js +0 -176
  131. package/dist/transformations/ast/json_target.d.ts +0 -6
  132. package/dist/transformations/ast/json_target.js +0 -88
  133. package/dist/transformations/create_error_message.d.ts +0 -5
  134. package/dist/transformations/create_error_message.js +0 -89
  135. package/dist/transformations/format.d.ts +0 -42
  136. package/dist/transformations/format.js +0 -166
  137. package/dist/transformations/fountain_pen/astn.d.ts +0 -11
  138. package/dist/transformations/fountain_pen/astn.js +0 -166
  139. package/dist/transformations/fountain_pen/json.d.ts +0 -4
  140. package/dist/transformations/fountain_pen/json.js +0 -123
  141. package/dist/transformations/parse.d.ts +0 -11
  142. package/dist/transformations/parse.js +0 -257
  143. package/dist/transformations/parse_generic.d.ts +0 -43
  144. package/dist/transformations/parse_generic.js +0 -644
  145. package/dist/transformations/target/fountain_pen/astn.d.ts +0 -11
  146. package/dist/transformations/target/fountain_pen/astn.js +0 -156
  147. package/dist/transformations/target/fountain_pen/json.d.ts +0 -4
  148. package/dist/transformations/target/fountain_pen/json.js +0 -113
  149. package/dist/transformations/target/fountain_pen_block.d.ts +0 -11
  150. package/dist/transformations/target/fountain_pen_block.js +0 -166
  151. package/dist/transformations/target_json/fountain_pen_block.d.ts +0 -4
  152. package/dist/transformations/target_json/fountain_pen_block.js +0 -101
  153. package/documentation/railroad_diagram/diagram/apostrophed_string.png +0 -0
  154. package/documentation/railroad_diagram/diagram/astn_document.png +0 -0
  155. package/documentation/railroad_diagram/diagram/backticked_string.png +0 -0
  156. package/documentation/railroad_diagram/diagram/comment.png +0 -0
  157. package/documentation/railroad_diagram/diagram/concise_group.png +0 -0
  158. package/documentation/railroad_diagram/diagram/content.png +0 -0
  159. package/documentation/railroad_diagram/diagram/dictionary.png +0 -0
  160. package/documentation/railroad_diagram/diagram/elements.png +0 -0
  161. package/documentation/railroad_diagram/diagram/escaped_character.png +0 -0
  162. package/documentation/railroad_diagram/diagram/four_hexadecimal_digits.png +0 -0
  163. package/documentation/railroad_diagram/diagram/header.png +0 -0
  164. package/documentation/railroad_diagram/diagram/hexadecimal_digit.png +0 -0
  165. package/documentation/railroad_diagram/diagram/ignorable.png +0 -0
  166. package/documentation/railroad_diagram/diagram/include.png +0 -0
  167. package/documentation/railroad_diagram/diagram/key_value_pairs.png +0 -0
  168. package/documentation/railroad_diagram/diagram/line_comment.png +0 -0
  169. package/documentation/railroad_diagram/diagram/list.png +0 -0
  170. package/documentation/railroad_diagram/diagram/newline_character.png +0 -0
  171. package/documentation/railroad_diagram/diagram/normal_character.png +0 -0
  172. package/documentation/railroad_diagram/diagram/normal_or_newline_character.png +0 -0
  173. package/documentation/railroad_diagram/diagram/quoted_string.png +0 -0
  174. package/documentation/railroad_diagram/diagram/rr-2.5.png +0 -0
  175. package/documentation/railroad_diagram/diagram/set_optional_value.png +0 -0
  176. package/documentation/railroad_diagram/diagram/string.png +0 -0
  177. package/documentation/railroad_diagram/diagram/string_content_character.png +0 -0
  178. package/documentation/railroad_diagram/diagram/tagged_value.png +0 -0
  179. package/documentation/railroad_diagram/diagram/traditional_comment.png +0 -0
  180. package/documentation/railroad_diagram/diagram/undelimited_string.png +0 -0
  181. package/documentation/railroad_diagram/diagram/value.png +0 -0
  182. package/documentation/railroad_diagram/diagram/verbose_group.png +0 -0
  183. package/documentation/railroad_diagram/diagram/whitespace.png +0 -0
  184. package/documentation/railroad_diagram/index.md +0 -425
  185. /package/{dist/serializers/astn.d.ts → client/testFixture/completion.txt} +0 -0
@@ -1,257 +0,0 @@
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.Parse_Result = exports.Value = exports.Key_Value_Pairs = exports.Elements = exports.Document = exports.String = void 0;
27
- const _ea = __importStar(require("exupery-core-alg"));
28
- const pg = __importStar(require("./parse_generic"));
29
- /**
30
- * to get from a Annotated_Token to a Structural_Token, the type should be omitted.
31
- * but it is parsd in between the 'start' and 'end' properties, so a little post-processing is needed.
32
- */
33
- const make_structural_token = (token) => {
34
- return {
35
- 'trailing trivia': token['trailing trivia'],
36
- 'range': {
37
- 'start': token['start'],
38
- 'end': token['end']
39
- }
40
- };
41
- };
42
- const String = (token_iterator) => {
43
- const token = token_iterator['get required token'](_ea.array_literal([['a string', null]]));
44
- if (token.type[0] !== 'string') {
45
- return pg.throw_unexpected_token(token, _ea.array_literal([['a string', null]]));
46
- }
47
- token_iterator['consume token']();
48
- return {
49
- 'range': {
50
- 'start': token['start'],
51
- 'end': token['end']
52
- },
53
- 'value': token.type[1].value,
54
- 'type': token.type[1].type,
55
- 'trailing trivia': token['trailing trivia'],
56
- };
57
- };
58
- exports.String = String;
59
- const Document = (token_iterator) => {
60
- return {
61
- 'header': _ea.block(() => {
62
- const token = token_iterator['get required token'](_ea.array_literal([['!', null], ['a value', null]]));
63
- if (token.type[0] !== '!') {
64
- return _ea.not_set();
65
- }
66
- token_iterator['consume token']();
67
- return _ea.set({
68
- '!': make_structural_token(token),
69
- 'value': (0, exports.Value)(token_iterator)
70
- });
71
- }),
72
- 'content': (0, exports.Value)(token_iterator)
73
- };
74
- };
75
- exports.Document = Document;
76
- const Elements = (token_iterator, end_reached, end_token) => {
77
- return _ea.pure.list.build(($i) => {
78
- while (true) {
79
- const current_token = token_iterator['get required token'](_ea.array_literal([end_token, ['a value', null]]));
80
- if (end_reached(current_token.type)) {
81
- return;
82
- }
83
- $i['add element']({
84
- 'value': (0, exports.Value)(token_iterator),
85
- ',': _ea.block(() => {
86
- const current_token = token_iterator['get required token'](_ea.array_literal([end_token, [',', null], ['a value', null]]));
87
- if (current_token.type[0] !== ',') {
88
- return _ea.not_set();
89
- }
90
- token_iterator['consume token']();
91
- return _ea.set(make_structural_token(current_token));
92
- })
93
- });
94
- }
95
- });
96
- };
97
- exports.Elements = Elements;
98
- const Key_Value_Pairs = (token_iterator, end_reached, end_token) => {
99
- return _ea.pure.list.build(($i) => {
100
- while (true) {
101
- const current_token = token_iterator['get required token'](_ea.array_literal([end_token, ['a string', null]]));
102
- if (end_reached(current_token.type)) {
103
- return;
104
- }
105
- $i['add element']({
106
- 'key': (0, exports.String)(token_iterator),
107
- 'value': _ea.block(() => {
108
- const candidate_colon = token_iterator['get required token'](_ea.array_literal([['a string', null], [':', null], end_token]));
109
- if (candidate_colon.type[0] !== ':') {
110
- return _ea.not_set();
111
- }
112
- token_iterator['consume token']();
113
- return _ea.set({
114
- ':': make_structural_token(candidate_colon),
115
- 'value': (0, exports.Value)(token_iterator)
116
- });
117
- }),
118
- ',': _ea.block(() => {
119
- const current_token = token_iterator['get required token'](_ea.array_literal([['a string', null], [',', null], end_token]));
120
- if (current_token.type[0] !== ',') {
121
- return _ea.not_set();
122
- }
123
- token_iterator['consume token']();
124
- return _ea.set(make_structural_token(current_token));
125
- })
126
- });
127
- }
128
- });
129
- };
130
- exports.Key_Value_Pairs = Key_Value_Pairs;
131
- const Value = (token_iterator) => {
132
- const token = token_iterator['get required token'](_ea.array_literal([['a value', null]]));
133
- return {
134
- 'range': {
135
- 'start': token.start,
136
- 'end': token.end
137
- },
138
- 'type': _ea.cc(token.type, ($) => {
139
- switch ($[0]) {
140
- case 'string': return _ea.ss($, ($) => {
141
- return ['string', (0, exports.String)(token_iterator)];
142
- });
143
- case '{': return _ea.ss($, ($) => {
144
- token_iterator['consume token']();
145
- return ['indexed collection', ['dictionary', {
146
- '{': make_structural_token(token),
147
- 'entries': (0, exports.Key_Value_Pairs)(token_iterator, ($) => $[0] === '}', ['}', null]),
148
- '}': _ea.block(() => {
149
- const current_token = token_iterator['get required token'](_ea.array_literal([['}', null]]));
150
- token_iterator['consume token']();
151
- return make_structural_token(current_token);
152
- })
153
- }]];
154
- });
155
- case '(': return _ea.ss($, ($) => {
156
- token_iterator['consume token']();
157
- return ['indexed collection', ['verbose group', {
158
- '(': make_structural_token(token),
159
- 'entries': (0, exports.Key_Value_Pairs)(token_iterator, ($) => $[0] === ')', [')', null]),
160
- ')': _ea.block(() => {
161
- const current_token = token_iterator['get required token'](_ea.array_literal([[')', null]]));
162
- token_iterator['consume token']();
163
- return make_structural_token(current_token);
164
- })
165
- }]];
166
- });
167
- case '[': return _ea.ss($, ($) => {
168
- token_iterator['consume token']();
169
- return ['ordered collection', ['list', {
170
- '[': make_structural_token(token),
171
- 'elements': (0, exports.Elements)(token_iterator, ($) => $[0] === ']', [']', null]),
172
- ']': _ea.block(() => {
173
- const current_token = token_iterator['get required token'](_ea.array_literal([[']', null]]));
174
- token_iterator['consume token']();
175
- return make_structural_token(current_token);
176
- }),
177
- }]];
178
- });
179
- case '<': return _ea.ss($, ($) => {
180
- token_iterator['consume token']();
181
- return ['ordered collection', ['concise group', {
182
- '<': make_structural_token(token),
183
- 'elements': (0, exports.Elements)(token_iterator, ($) => $[0] === '>', ['>', null]),
184
- '>': _ea.block(() => {
185
- const current_token = token_iterator['get required token'](_ea.array_literal([['>', null]]));
186
- token_iterator['consume token']();
187
- return make_structural_token(current_token);
188
- }),
189
- }]];
190
- });
191
- case '@': return _ea.ss($, ($) => {
192
- token_iterator['consume token']();
193
- return ['include', {
194
- '@': make_structural_token(token),
195
- 'path': (0, exports.String)(token_iterator)
196
- }];
197
- });
198
- case '~': return _ea.ss($, ($) => {
199
- token_iterator['consume token']();
200
- return ['not set', {
201
- '~': make_structural_token(token),
202
- }];
203
- });
204
- case '|': return _ea.ss($, ($) => {
205
- token_iterator['consume token']();
206
- return ['tagged value', {
207
- '|': make_structural_token(token),
208
- 'state': (0, exports.String)(token_iterator),
209
- 'value': (0, exports.Value)(token_iterator)
210
- }];
211
- });
212
- case '*': return _ea.ss($, ($) => {
213
- token_iterator['consume token']();
214
- return ['set optional value', {
215
- '*': make_structural_token(token),
216
- 'value': (0, exports.Value)(token_iterator)
217
- }];
218
- });
219
- default:
220
- //unexpected token
221
- return pg.throw_unexpected_token(token, _ea.array_literal([
222
- ['a value', null]
223
- ]));
224
- }
225
- })
226
- };
227
- };
228
- exports.Value = Value;
229
- const Parse_Result = ($, $p) => {
230
- try {
231
- const string_iterator = pg.create_string_iterator($, {
232
- 'tab size': $p['tab size']
233
- });
234
- const tokenizer_result = pg.Tokenizer_Result(null, {
235
- 'string iterator': string_iterator
236
- });
237
- // tokenizer_result.tokens.__for_each(($) => {
238
- // pdev.log_debug_message(`token: ${_ea.cc($.type, ($) => {
239
- // switch ($[0]) {
240
- // case 'string': return _ea.ss($, ($) => `string: ${$.value.value}`)
241
- // default: return `structural: ${$[0]}`
242
- // }
243
- // })}`)
244
- // })
245
- const token_iterator = pg.create_token_iterator(tokenizer_result);
246
- return ['success', (0, exports.Document)(token_iterator)];
247
- }
248
- catch (error) {
249
- if (error instanceof _ea.Error) {
250
- const parse_error = error.type; //this has to be the case
251
- return ['failure', parse_error];
252
- }
253
- return _ea.panic("unknown error thrown");
254
- }
255
- };
256
- exports.Parse_Result = Parse_Result;
257
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHJhbnNmb3JtYXRpb25zL3BhcnNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsc0RBQXVDO0FBTXZDLG9EQUFxQztBQUlyQzs7O0dBR0c7QUFDSCxNQUFNLHFCQUFxQixHQUFHLENBQUMsS0FBbUMsRUFBd0IsRUFBRTtJQUN4RixPQUFPO1FBQ0gsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixDQUFDO1FBQzNDLE9BQU8sRUFBRTtZQUNMLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ3ZCLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDO1NBQ3RCO0tBQ0osQ0FBQTtBQUNMLENBQUMsQ0FBQTtBQUVNLE1BQU0sTUFBTSxHQUFHLENBQUMsY0FBaUMsRUFBYyxFQUFFO0lBQ3BFLE1BQU0sS0FBSyxHQUFHLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUMzRixJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDN0IsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNwRixDQUFDO0lBQ0QsY0FBYyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUE7SUFDakMsT0FBTztRQUNILE9BQU8sRUFBRTtZQUNMLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ3ZCLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDO1NBQ3RCO1FBQ0QsT0FBTyxFQUFFLEtBQUssQ0FB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
@@ -1,43 +0,0 @@
1
- import * as _et from 'exupery-core-types';
2
- import * as ast from "../generated/interface/schemas/ast/resolved";
3
- import * as parse_result from "../generated/interface/schemas/parse_result/resolved";
4
- export declare const throw_parse_error: (type: parse_result.Parse_Error._type, range: ast.Range) => never;
5
- export declare const throw_unexpected_token: (found: parse_result.Annotated_Token, expected: _et.Array<parse_result.Parse_Error._type.SG.parser.expected.L>) => never;
6
- type String_Iterator = {
7
- 'consume character': () => void;
8
- 'consume string': ($: string) => void;
9
- /**
10
- * returns the current character, or null if the end of the string has been reached.
11
- * equivalent to `look ahead(0)`
12
- */
13
- 'get current character': () => number | null;
14
- 'look ahead': ($: number) => number | null;
15
- 'create offset location info': (subtract: number) => ast.Location;
16
- 'create location info': () => ast.Location;
17
- 'create location info string': () => string;
18
- /**
19
- * if no non-whitespace character has been found yet on the current line,
20
- * this will return the current column,
21
- * otherwise it will return the offset of that first non-whitespace character
22
- * (which is the indentation of the line)
23
- */
24
- 'get line indentation': () => number;
25
- 'starts with': ($: string) => boolean;
26
- };
27
- /**
28
- * Creates a string iterator that allows iterating over characters in a string,
29
- * while keeping track of line numbers, columns, and line indentation.
30
- */
31
- export declare const create_string_iterator: ($: string, $p: {
32
- "tab size": number;
33
- }) => String_Iterator;
34
- export declare const Annotated_Token: (st: String_Iterator) => parse_result.Annotated_Token;
35
- export declare const Tokenizer_Result: ($: null, $p: {
36
- "string iterator": String_Iterator;
37
- }) => parse_result.Tokenizer_Result;
38
- export type Token_Iterator = {
39
- 'get required token': (expected: _et.Array<parse_result.Parse_Error._type.SG.parser.expected.L>) => parse_result.Annotated_Token;
40
- 'consume token': () => void;
41
- };
42
- export declare const create_token_iterator: ($: parse_result.Tokenizer_Result) => Token_Iterator;
43
- export {};