pareto 0.80.49 → 0.80.51

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 (19) hide show
  1. package/dist/implementation/generated/liana/schemas/implementation/resolved/refiners/unresolved.js +135 -135
  2. package/dist/implementation/generated/liana/schemas/implementation/resolved/transformers/astn_sealed_target.js +135 -135
  3. package/dist/implementation/generated/liana/schemas/implementation/resolved/transformers/fountain_pen.js +2 -2
  4. package/dist/implementation/generated/liana/schemas/interface/resolved/refiners/unresolved.js +35 -35
  5. package/dist/implementation/generated/liana/schemas/interface/resolved/transformers/astn_sealed_target.js +35 -35
  6. package/dist/implementation/generated/liana/schemas/interface/resolved/transformers/fountain_pen.js +2 -2
  7. package/dist/implementation/generated/liana/schemas/typescript_light/transformers/astn_sealed_target.js +65 -65
  8. package/dist/implementation/generated/liana/schemas/typescript_light/transformers/boilerplate_for_migrate.js +65 -65
  9. package/dist/implementation/generated/liana/schemas/typescript_light/transformers/fountain_pen.js +2 -2
  10. package/dist/implementation/manual/transformers/implementation/serialized_typescript.js +4 -4
  11. package/dist/implementation/manual/transformers/implementation/typescript.js +151 -151
  12. package/dist/implementation/manual/transformers/interface/serialized_typescript.js +4 -4
  13. package/dist/implementation/manual/transformers/interface/typescript.d.ts +6 -0
  14. package/dist/implementation/manual/transformers/interface/typescript.js +49 -49
  15. package/dist/modules/typescript_light/implementation/manual/transformers/text/identifier.js +4 -4
  16. package/dist/modules/typescript_light/implementation/manual/transformers/typescript_light/{fountain_pen.d.ts → prose.d.ts} +1 -1
  17. package/dist/modules/typescript_light/implementation/manual/transformers/typescript_light/prose.js +799 -0
  18. package/package.json +1 -1
  19. package/dist/modules/typescript_light/implementation/manual/transformers/typescript_light/fountain_pen.js +0 -733
@@ -0,0 +1,799 @@
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 () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.Type = exports.Expression = exports.Statements = exports.String_Literal = exports.String_Literal_pseudo = exports.Identifier = exports.Directory = exports.float = exports.decimal = exports.quoted_text = exports.backticked_text = exports.apostrophed_text = exports.escaped_text = void 0;
40
+ const p_ = __importStar(require("pareto-core/dist/implementation/transformer"));
41
+ const list_from_text_1 = __importDefault(require("pareto-core/dist/implementation/refiner/specials/list_from_text"));
42
+ const list_build_deprecated_1 = __importDefault(require("pareto-core/dist/implementation/refiner/specials/list_build_deprecated"));
43
+ const unreachable_code_path_1 = __importDefault(require("pareto-core/dist/implementation/transformer/specials/unreachable_code_path"));
44
+ //shorthands
45
+ const sh = __importStar(require("pareto-fountain-pen/dist/shorthands/prose/deprecated"));
46
+ const escaped_text = ($) => p_.from.list((0, list_from_text_1.default)($, ($) => $)).flatten(($) => {
47
+ switch ($) {
48
+ // case 0x2F: // slash (\/)
49
+ // return p_.literal.list([
50
+ // 0x5c, // \
51
+ // 0x2f, // /
52
+ // ])
53
+ case 0x22: // " (\")
54
+ return p_.literal.list([
55
+ 0x5C, // \
56
+ 0x22, // "
57
+ ]);
58
+ case 0x5C: // \ (\\)
59
+ return p_.literal.list([
60
+ 0x5C, // \
61
+ 0x5C, // \
62
+ ]);
63
+ case 0x08: // backspace (\b)
64
+ return p_.literal.list([
65
+ 0x5C, // \
66
+ 0x62, // b
67
+ ]);
68
+ case 0x0C: // form feed (\f)
69
+ return p_.literal.list([
70
+ 0x5C, // \
71
+ 0x66, // f
72
+ ]);
73
+ case 0x0A: // line feed (\n)
74
+ return p_.literal.list([
75
+ 0x5C, // \
76
+ 0x6E, // n
77
+ ]);
78
+ case 0x0D: // carriage return (\r)
79
+ return p_.literal.list([
80
+ 0x5C, // \
81
+ 0x72, // r
82
+ ]);
83
+ case 0x09: // horizontal tab (\t)
84
+ return p_.literal.list([
85
+ 0x5C, // \
86
+ 0x74, // t
87
+ ]);
88
+ case 0x0B: // vertical tab (\v)
89
+ return p_.literal.list([
90
+ 0x5C, // \
91
+ 0x76, // v
92
+ ]);
93
+ default: {
94
+ return p_.literal.list([
95
+ $,
96
+ ]);
97
+ }
98
+ }
99
+ });
100
+ exports.escaped_text = escaped_text;
101
+ const apostrophed_text = ($) => p_.literal.segmented_list([
102
+ p_.literal.list([
103
+ 0x27, // '
104
+ ]),
105
+ (0, exports.escaped_text)($),
106
+ p_.literal.list([
107
+ 0x27, // '
108
+ ])
109
+ ]);
110
+ exports.apostrophed_text = apostrophed_text;
111
+ const backticked_text = ($) => p_.literal.segmented_list([
112
+ p_.literal.list([
113
+ 0x60, // `
114
+ ]),
115
+ (0, exports.escaped_text)($),
116
+ p_.literal.list([
117
+ 0x60, // `
118
+ ])
119
+ ]);
120
+ exports.backticked_text = backticked_text;
121
+ const quoted_text = ($) => p_.literal.segmented_list([
122
+ p_.literal.list([
123
+ 0x22, // "
124
+ ]),
125
+ (0, exports.escaped_text)($),
126
+ p_.literal.list([
127
+ 0x22, // "
128
+ ])
129
+ ]);
130
+ exports.quoted_text = quoted_text;
131
+ const decimal = ($) => (0, list_build_deprecated_1.default)(($i) => {
132
+ if ($ < 0) {
133
+ $i['add item'](45); // '-'
134
+ $ = -$;
135
+ }
136
+ const digits = (0, list_build_deprecated_1.default)(($i) => {
137
+ do {
138
+ const digit = $ % 10;
139
+ $i['add item'](digit);
140
+ $ = p_.from.number($).divide(10, ['towards zero', null], {
141
+ divided_by_zero: () => (0, unreachable_code_path_1.default)("the divisor is hardcoded to 10"),
142
+ });
143
+ } while ($ > 0);
144
+ });
145
+ for (let j = p_.from.list(digits).amount_of_items() - 1; j >= 0; j--) {
146
+ $i['add item'](48 + p_.from.optional(digits.__deprecated_get_possible_item_at(j)).decide(($) => $, () => (0, unreachable_code_path_1.default)("index cannot be out of bounds")));
147
+ }
148
+ });
149
+ exports.decimal = decimal;
150
+ const float = ($) => {
151
+ return (0, list_build_deprecated_1.default)(($i) => {
152
+ // Handle special case for zero
153
+ if ($ === 0) {
154
+ $i['add item'](48); // '0'
155
+ return;
156
+ }
157
+ // Handle negative numbers
158
+ if ($ < 0) {
159
+ $i['add item'](45); // '-'
160
+ $ = -$;
161
+ }
162
+ // Calculate exponent (power of 10)
163
+ let exponent = 0;
164
+ let mantissa = $;
165
+ // Normalize to range [1, 10)
166
+ if (mantissa >= 10) {
167
+ while (mantissa >= 10) {
168
+ mantissa = mantissa / 10;
169
+ exponent++;
170
+ }
171
+ }
172
+ else if (mantissa < 1) {
173
+ while (mantissa < 1) {
174
+ mantissa = mantissa * 10;
175
+ exponent--;
176
+ }
177
+ }
178
+ // Use exponential notation only if exponent < -6 or >= 21
179
+ const use_exponential = exponent < -6 || exponent >= 21;
180
+ const fixme_digits = 16;
181
+ // Create scale factor
182
+ let scale_factor = 1;
183
+ for (let i = 0; i < fixme_digits - 1; i++) {
184
+ scale_factor = scale_factor * 10;
185
+ }
186
+ const mantissa_scaled = p_.from.number(mantissa * scale_factor + 0.5).divide(1, ['towards zero', null], {
187
+ divided_by_zero: () => (0, unreachable_code_path_1.default)("the divisor is hardcoded to 1"),
188
+ });
189
+ // Extract all digits
190
+ const digits = (0, list_build_deprecated_1.default)(($i) => {
191
+ let $v_t = mantissa_scaled;
192
+ do {
193
+ const digit = $v_t % 10;
194
+ $i['add item'](digit);
195
+ $v_t = p_.from.number($v_t).divide(10, ['towards zero', null], {
196
+ divided_by_zero: () => (0, unreachable_code_path_1.default)("the divisor is hardcoded to 10"),
197
+ });
198
+ } while ($v_t > 0);
199
+ });
200
+ if (use_exponential) {
201
+ // OUTPUT IN EXPONENTIAL NOTATION
202
+ const first_digit = p_.from.optional(digits.__deprecated_get_possible_item_at(p_.from.list(digits).amount_of_items() - 1)).decide(($) => $, () => (0, unreachable_code_path_1.default)("index cannot be out of bounds"));
203
+ $i['add item'](48 + first_digit);
204
+ // Find first non-zero digit in fractional part
205
+ let first_nonzero_index = -1;
206
+ if (p_.from.list(digits).amount_of_items() > 1) {
207
+ for (let j = 0; j < p_.from.list(digits).amount_of_items() - 1; j++) {
208
+ const digit = p_.from.optional(digits.__deprecated_get_possible_item_at(j)).decide(($) => $, () => (0, unreachable_code_path_1.default)("index cannot be out of bounds"));
209
+ if (digit !== 0) {
210
+ if (first_nonzero_index === -1) {
211
+ first_nonzero_index = j;
212
+ }
213
+ }
214
+ }
215
+ }
216
+ if (first_nonzero_index >= 0) {
217
+ $i['add item'](46); // '.'
218
+ for (let j = p_.from.list(digits).amount_of_items() - 2; j >= first_nonzero_index; j--) {
219
+ const digit = p_.from.optional(digits.__deprecated_get_possible_item_at(j)).decide(($) => $, () => (0, unreachable_code_path_1.default)("index cannot be out of bounds"));
220
+ $i['add item'](48 + digit);
221
+ }
222
+ }
223
+ // Add exponent
224
+ $i['add item'](101); // 'e'
225
+ let exp = exponent;
226
+ if (exp < 0) {
227
+ $i['add item'](45); // '-'
228
+ exp = -exp;
229
+ }
230
+ else {
231
+ $i['add item'](43); // '+'
232
+ }
233
+ const exp_digits = (0, list_build_deprecated_1.default)(($i) => {
234
+ if (exp === 0) {
235
+ $i['add item'](0);
236
+ }
237
+ else {
238
+ do {
239
+ const digit = exp % 10;
240
+ $i['add item'](digit);
241
+ exp = p_.from.number(exp).divide(10, ['towards zero', null], {
242
+ divided_by_zero: () => (0, unreachable_code_path_1.default)("hardcoded 10"),
243
+ });
244
+ } while (exp > 0);
245
+ }
246
+ });
247
+ for (let j = p_.from.list(exp_digits).amount_of_items() - 1; j >= 0; j--) {
248
+ const digit = p_.from.optional(exp_digits.__deprecated_get_possible_item_at(j)).decide(($) => $, () => (0, unreachable_code_path_1.default)("index cannot be out of bounds"));
249
+ $i['add item'](48 + digit);
250
+ }
251
+ }
252
+ else {
253
+ // OUTPUT IN FIXED-POINT NOTATION
254
+ let digit_count = p_.from.list(digits).amount_of_items();
255
+ // Find first (lowest index) nonzero digit to know when to stop
256
+ let first_nonzero = digit_count; // Initialize beyond range
257
+ for (let j = 0; j < digit_count; j++) {
258
+ const d = p_.from.optional(digits.__deprecated_get_possible_item_at(j)).decide(($) => $, () => (0, unreachable_code_path_1.default)("index cannot be out of bounds"));
259
+ if (d !== 0) {
260
+ first_nonzero = j;
261
+ break;
262
+ }
263
+ }
264
+ const decimal_pos = exponent + 1; // Number of digits to the left of decimal
265
+ if (first_nonzero === digit_count) {
266
+ // All zeros
267
+ $i['add item'](48); // '0'
268
+ }
269
+ else if (decimal_pos <= 0) {
270
+ // Like 0.00123 - need leading zeros
271
+ $i['add item'](48); // '0'
272
+ $i['add item'](46); // '.'
273
+ for (let z = 0; z < -decimal_pos; z++) {
274
+ $i['add item'](48);
275
+ }
276
+ // Output digits from highest to first_nonzero
277
+ for (let i = digit_count - 1; i >= first_nonzero; i--) {
278
+ const d = p_.from.optional(digits.__deprecated_get_possible_item_at(i)).decide(($) => $, () => (0, unreachable_code_path_1.default)("index cannot be out of bounds"));
279
+ $i['add item'](48 + d);
280
+ }
281
+ }
282
+ else {
283
+ // Like 123 or 123.45
284
+ let digits_output = 0;
285
+ // Output all digits from highest, but ensure we output at least decimal_pos digits before decimal
286
+ // let min_digits_needed = decimal_pos
287
+ for (let i = digit_count - 1; i >= 0; i--) {
288
+ // Stop after we've output all significant fractional digits
289
+ if (i < first_nonzero && digits_output >= decimal_pos) {
290
+ break;
291
+ }
292
+ const d = p_.from.optional(digits.__deprecated_get_possible_item_at(i)).decide(($) => $, () => (0, unreachable_code_path_1.default)("index cannot be out of bounds"));
293
+ // Check if we need to insert decimal before this digit
294
+ if (digits_output === decimal_pos && digits_output > 0) {
295
+ $i['add item'](46); // '.'
296
+ }
297
+ $i['add item'](48 + d);
298
+ digits_output++;
299
+ }
300
+ }
301
+ }
302
+ });
303
+ };
304
+ exports.float = float;
305
+ const Directory = ($) => {
306
+ return p_.from.dictionary($).map(($, id) => p_.from.state($).decide(($) => {
307
+ switch ($[0]) {
308
+ case 'file': return p_.option($, ($) => ['file', (0, exports.Statements)($['statements'], { 'replace empty type literals by symbol': true })]);
309
+ case 'directory': return p_.option($, ($) => ['directory', (0, exports.Directory)($)]);
310
+ default: return p_.au($[0]);
311
+ }
312
+ }));
313
+ };
314
+ exports.Directory = Directory;
315
+ const Identifier = ($) => {
316
+ return sh.ph.literal($.value);
317
+ };
318
+ exports.Identifier = Identifier;
319
+ const String_Literal_pseudo = ($, $p) => {
320
+ return sh.ph.serialize($p.delimiter === "quote" ? (0, exports.quoted_text)($) : (0, exports.apostrophed_text)($));
321
+ };
322
+ exports.String_Literal_pseudo = String_Literal_pseudo;
323
+ const String_Literal = ($) => {
324
+ return sh.ph.serialize($.delimiter[0] === "quote" ? (0, exports.quoted_text)($.value) : (0, exports.apostrophed_text)($.value));
325
+ };
326
+ exports.String_Literal = String_Literal;
327
+ const Statements = ($, $p) => sh.pg.composed(p_.from.list($).map(($) => p_.from.state($).decide(($) => {
328
+ switch ($[0]) {
329
+ case 'block': return p_.option($, ($) => sh.pg.sentences([
330
+ sh.sentence([]),
331
+ sh.sentence([
332
+ sh.ph.literal("{"),
333
+ sh.ph.indent((0, exports.Statements)($, $p)),
334
+ sh.ph.literal("}"),
335
+ ])
336
+ ]));
337
+ case 'export': return p_.option($, ($) => sh.pg.sentences([
338
+ sh.sentence([]),
339
+ sh.sentence([
340
+ sh.ph.literal("export "),
341
+ p_.from.state($.type).decide(($) => {
342
+ switch ($[0]) {
343
+ case 'named exports': return p_.option($, ($) => sh.ph.composed([
344
+ sh.ph.literal("{ "),
345
+ sh.ph.indent(sh.pg.sentences(p_.from.list($.specifiers).map(($) => sh.sentence([
346
+ (0, exports.Identifier)($.name),
347
+ p_.from.optional($.as).decide(($) => sh.ph.composed([
348
+ sh.ph.literal(" as "),
349
+ (0, exports.Identifier)($),
350
+ ]), () => sh.ph.nothing()),
351
+ sh.ph.literal(", ")
352
+ ])))),
353
+ sh.ph.literal("}"),
354
+ p_.from.optional($.from).decide(($) => sh.ph.composed([
355
+ sh.ph.literal(" from "),
356
+ (0, exports.String_Literal)($),
357
+ ]), () => sh.ph.nothing())
358
+ ]));
359
+ default: return p_.au($[0]);
360
+ }
361
+ }),
362
+ ])
363
+ ]));
364
+ case 'expression': return p_.option($, ($) => sh.pg.sentences([
365
+ sh.sentence((0, exports.Expression)($, {
366
+ 'replace empty type literals by symbol': $p['replace empty type literals by symbol'],
367
+ 'object literal needs parentheses': true,
368
+ }))
369
+ ]));
370
+ case 'import': return p_.option($, ($) => sh.pg.sentences([
371
+ sh.sentence([]),
372
+ sh.sentence([
373
+ sh.ph.literal("import "),
374
+ p_.from.state($.type).decide(($) => {
375
+ switch ($[0]) {
376
+ case 'default': return p_.option($, ($) => sh.ph.composed([
377
+ (0, exports.Identifier)($),
378
+ ]));
379
+ case 'named': return p_.option($, ($) => sh.ph.composed([
380
+ sh.ph.literal("{"),
381
+ sh.ph.indent(sh.pg.sentences(p_.from.list($.specifiers).map(($) => sh.sentence([
382
+ (0, exports.Identifier)($.name),
383
+ p_.from.optional($.as).decide(($) => sh.ph.composed([
384
+ sh.ph.literal(" as "),
385
+ (0, exports.Identifier)($),
386
+ ]), () => sh.ph.nothing()),
387
+ sh.ph.literal(",")
388
+ ])))),
389
+ sh.ph.literal("}"),
390
+ ]));
391
+ case 'namespace': return p_.option($, ($) => sh.ph.composed([
392
+ sh.ph.literal("* as "),
393
+ (0, exports.Identifier)($),
394
+ ]));
395
+ default: return p_.au($[0]);
396
+ }
397
+ }),
398
+ sh.ph.literal(" from "),
399
+ (0, exports.String_Literal)($.from),
400
+ ])
401
+ ]));
402
+ case 'module declaration': return p_.option($, ($) => sh.pg.sentences([
403
+ sh.sentence([]),
404
+ sh.sentence([
405
+ $.export ? sh.ph.literal("export ") : sh.ph.nothing(),
406
+ sh.ph.literal("namespace "),
407
+ (0, exports.Identifier)($['name']),
408
+ sh.ph.literal(" "),
409
+ sh.ph.composed([
410
+ sh.ph.literal("{"),
411
+ sh.ph.indent(sh.pg.composed([
412
+ (0, exports.Statements)($.block, $p),
413
+ sh.pg.sentences([
414
+ sh.sentence([]),
415
+ ])
416
+ ])),
417
+ sh.ph.literal("}"),
418
+ ])
419
+ ])
420
+ ]));
421
+ case 'return': return p_.option($, ($) => sh.pg.sentences([
422
+ sh.sentence(p_.literal.segmented_list([
423
+ p_.literal.list([
424
+ sh.ph.literal("return "),
425
+ ]),
426
+ p_.from.optional($).decide(($) => (0, exports.Expression)($, {
427
+ 'replace empty type literals by symbol': $p['replace empty type literals by symbol'],
428
+ 'object literal needs parentheses': false,
429
+ }), () => p_.literal.list([]))
430
+ ])),
431
+ ]));
432
+ case 'switch': return p_.option($, ($) => sh.pg.sentences([
433
+ sh.sentence(p_.literal.segmented_list([
434
+ p_.literal.list([
435
+ sh.ph.literal("switch ("),
436
+ ]),
437
+ (0, exports.Expression)($.expression, {
438
+ 'replace empty type literals by symbol': $p['replace empty type literals by symbol'],
439
+ 'object literal needs parentheses': false,
440
+ }),
441
+ p_.literal.list([
442
+ sh.ph.literal(") {"),
443
+ sh.ph.indent(sh.pg.sentences(p_.from.list($.clauses).map(($) => sh.sentence(p_.literal.segmented_list([
444
+ p_.from.state($.type).decide(($) => {
445
+ switch ($[0]) {
446
+ case 'case': return p_.option($, ($) => p_.literal.segmented_list([
447
+ p_.literal.list([
448
+ sh.ph.literal("case "),
449
+ ]),
450
+ (0, exports.Expression)($, {
451
+ 'replace empty type literals by symbol': $p['replace empty type literals by symbol'],
452
+ 'object literal needs parentheses': true,
453
+ }),
454
+ p_.literal.list([
455
+ sh.ph.literal(":"),
456
+ ]),
457
+ ]));
458
+ case 'default': return p_.option($, ($) => p_.literal.list([
459
+ sh.ph.literal("default:")
460
+ ]));
461
+ default: return p_.au($[0]);
462
+ }
463
+ }),
464
+ p_.literal.list([
465
+ sh.ph.indent((0, exports.Statements)($.statements, $p))
466
+ ]),
467
+ ]))))),
468
+ sh.ph.literal("}"),
469
+ ])
470
+ ])),
471
+ ]));
472
+ case 'type alias declaration': return p_.option($, ($) => sh.pg.sentences([
473
+ sh.sentence([]),
474
+ sh.sentence([
475
+ $.export ? sh.ph.literal("export ") : sh.ph.nothing(),
476
+ sh.ph.literal("type "),
477
+ (0, exports.Identifier)($['name']),
478
+ sh.ph.rich(p_.from.list($['parameters']).map(($) => (0, exports.Identifier)($)), sh.ph.nothing(), sh.ph.literal("<"), sh.ph.literal(", "), sh.ph.literal(">")),
479
+ sh.ph.literal(" = "),
480
+ (0, exports.Type)($['type'], $p),
481
+ ])
482
+ ]));
483
+ case 'variable': return p_.option($, ($) => sh.pg.sentences([
484
+ sh.sentence([]),
485
+ sh.sentence([
486
+ $.export ? sh.ph.literal("export ") : sh.ph.nothing(),
487
+ $.const ? sh.ph.literal("const ") : sh.ph.literal("let "),
488
+ (0, exports.Identifier)($['name']),
489
+ p_.from.optional($.type).decide(($) => sh.ph.composed([
490
+ sh.ph.literal(": "),
491
+ (0, exports.Type)($, $p)
492
+ ]), () => sh.ph.nothing()),
493
+ sh.ph.composed(p_.from.optional($.expression).decide(($) => p_.literal.segmented_list([
494
+ p_.literal.list([
495
+ sh.ph.literal(" = "),
496
+ ]),
497
+ (0, exports.Expression)($, {
498
+ 'replace empty type literals by symbol': $p['replace empty type literals by symbol'],
499
+ 'object literal needs parentheses': false,
500
+ })
501
+ ]), () => p_.literal.list([]))),
502
+ ])
503
+ ]));
504
+ default: return p_.au($[0]);
505
+ }
506
+ })));
507
+ exports.Statements = Statements;
508
+ const Expression = ($, $p) => p_.from.state($).decide(($) => {
509
+ switch ($[0]) {
510
+ case 'assignment': return p_.option($, ($) => p_.literal.segmented_list([
511
+ (0, exports.Expression)($.left, $p),
512
+ p_.literal.list([
513
+ sh.ph.literal(" = "),
514
+ ]),
515
+ (0, exports.Expression)($.right, {
516
+ 'object literal needs parentheses': false,
517
+ 'replace empty type literals by symbol': $p['replace empty type literals by symbol'],
518
+ }),
519
+ ]));
520
+ case 'array literal': return p_.option($, ($) => p_.literal.segmented_list([
521
+ p_.literal.list([
522
+ sh.ph.literal("["),
523
+ sh.ph.rich(p_.from.list($).flatten(($) => (0, exports.Expression)($, {
524
+ 'object literal needs parentheses': false,
525
+ 'replace empty type literals by symbol': $p['replace empty type literals by symbol'],
526
+ })), sh.ph.nothing(), sh.ph.nothing(), sh.ph.literal(", "), sh.ph.nothing())
527
+ ]),
528
+ p_.literal.list([
529
+ sh.ph.literal("]"),
530
+ ]),
531
+ ]));
532
+ case 'arrow function': return p_.option($, ($) => p_.literal.segmented_list([
533
+ p_.literal.list([
534
+ sh.ph.literal("("),
535
+ sh.ph.rich(p_.from.list($.parameters).map(($) => sh.ph.composed([
536
+ (0, exports.Identifier)($.name),
537
+ p_.from.optional($.type).decide(($) => sh.ph.composed([
538
+ sh.ph.literal(": "),
539
+ (0, exports.Type)($, $p)
540
+ ]), () => sh.ph.nothing()),
541
+ ])), sh.ph.nothing(), sh.ph.nothing(), sh.ph.literal(", "), sh.ph.nothing()),
542
+ sh.ph.literal(")"),
543
+ ]),
544
+ p_.from.optional($['return type']).decide(($) => p_.literal.segmented_list([
545
+ p_.literal.list([
546
+ sh.ph.literal(": "),
547
+ ]),
548
+ p_.literal.list([
549
+ (0, exports.Type)($, $p)
550
+ ])
551
+ ]), () => p_.literal.list([])),
552
+ p_.literal.list([
553
+ sh.ph.literal(" => "),
554
+ ]),
555
+ p_.from.state($.body).decide(($) => {
556
+ switch ($[0]) {
557
+ case 'block': return p_.option($, ($) => p_.literal.list([
558
+ sh.ph.literal("{"),
559
+ sh.ph.indent((0, exports.Statements)($, $p)),
560
+ sh.ph.literal("}"),
561
+ ]));
562
+ case 'expression': return p_.option($, ($) => (0, exports.Expression)($, {
563
+ 'object literal needs parentheses': true,
564
+ 'replace empty type literals by symbol': $p['replace empty type literals by symbol'],
565
+ }));
566
+ default: return p_.au($[0]);
567
+ }
568
+ }),
569
+ ]));
570
+ case 'call': return p_.option($, ($) => p_.literal.segmented_list([
571
+ (0, exports.Expression)($['function selection'], $p),
572
+ p_.literal.list([
573
+ sh.ph.literal("("),
574
+ sh.ph.indent(sh.pg.sentences(p_.from.list($['arguments']).map(($) => sh.sentence(p_.literal.segmented_list([
575
+ (0, exports.Expression)($, {
576
+ 'object literal needs parentheses': false,
577
+ 'replace empty type literals by symbol': $p['replace empty type literals by symbol'],
578
+ }),
579
+ p_.literal.list([
580
+ sh.ph.literal(",")
581
+ ]),
582
+ ]))))),
583
+ sh.ph.literal(")"),
584
+ ])
585
+ ]));
586
+ case 'compare': return p_.option($, ($) => p_.literal.segmented_list([
587
+ (0, exports.Expression)($.left, $p),
588
+ p_.literal.list([
589
+ sh.ph.literal(" "),
590
+ p_.from.state($.operator).decide(($) => {
591
+ switch ($[0]) {
592
+ case 'loosely equal': return p_.option($, ($) => sh.ph.literal("=="));
593
+ case 'strictly equal': return p_.option($, ($) => sh.ph.literal("==="));
594
+ case 'loosely not equal': return p_.option($, ($) => sh.ph.literal("!="));
595
+ case 'strictly not equal': return p_.option($, ($) => sh.ph.literal("!=="));
596
+ case 'smaller than': return p_.option($, ($) => sh.ph.literal("<"));
597
+ case 'smaller than or equal': return p_.option($, ($) => sh.ph.literal("<="));
598
+ case 'greater than': return p_.option($, ($) => sh.ph.literal(">"));
599
+ case 'greater than or equal': return p_.option($, ($) => sh.ph.literal(">="));
600
+ default: return p_.au($[0]);
601
+ }
602
+ }),
603
+ sh.ph.literal(" "),
604
+ ]),
605
+ (0, exports.Expression)($.right, {
606
+ 'object literal needs parentheses': false,
607
+ 'replace empty type literals by symbol': $p['replace empty type literals by symbol'],
608
+ }),
609
+ ]));
610
+ case 'conditional': return p_.option($, ($) => p_.literal.segmented_list([
611
+ (0, exports.Expression)($.condition, $p),
612
+ p_.literal.list([
613
+ sh.ph.indent(sh.pg.sentences(p_.literal.list([
614
+ sh.sentence(p_.literal.segmented_list([
615
+ p_.literal.list([
616
+ sh.ph.literal("? "),
617
+ ]),
618
+ (0, exports.Expression)($['if true'], {
619
+ 'replace empty type literals by symbol': $p['replace empty type literals by symbol'],
620
+ 'object literal needs parentheses': false,
621
+ }),
622
+ ])),
623
+ sh.sentence(p_.literal.segmented_list([
624
+ p_.literal.list([
625
+ sh.ph.literal(": "),
626
+ ]),
627
+ (0, exports.Expression)($['if false'], {
628
+ 'replace empty type literals by symbol': $p['replace empty type literals by symbol'],
629
+ 'object literal needs parentheses': false,
630
+ }),
631
+ ])),
632
+ ]))),
633
+ ])
634
+ ]));
635
+ case 'element access': return p_.option($, ($) => p_.literal.segmented_list([
636
+ (0, exports.Expression)($.collection, $p),
637
+ p_.literal.list([
638
+ sh.ph.literal("["),
639
+ ]),
640
+ (0, exports.Expression)($.index, $p),
641
+ p_.literal.list([
642
+ sh.ph.literal("]"),
643
+ ])
644
+ ]));
645
+ case 'false': return p_.option($, ($) => p_.literal.list([
646
+ sh.ph.literal("false")
647
+ ]));
648
+ case 'identifier': return p_.option($, ($) => p_.literal.list([
649
+ (0, exports.Identifier)($)
650
+ ]));
651
+ case 'null': return p_.option($, ($) => p_.literal.list([
652
+ sh.ph.literal("null")
653
+ ]));
654
+ case 'number literal': return p_.option($, ($) => p_.literal.list([
655
+ sh.ph.serialize((0, exports.float)($))
656
+ ]));
657
+ case 'object literal': return p_.option($, ($) => p_.literal.list([
658
+ $p['object literal needs parentheses']
659
+ ? sh.ph.literal("(")
660
+ : sh.ph.nothing(),
661
+ sh.ph.literal("{"),
662
+ sh.ph.indent(sh.pg.sentences(p_.from.list($.properties).map(($) => sh.sentence(p_.literal.segmented_list([
663
+ p_.literal.list([
664
+ p_.from.state($.key).decide(($) => {
665
+ switch ($[0]) {
666
+ case 'identifier': return p_.option($, ($) => (0, exports.Identifier)($));
667
+ case 'string literal': return p_.option($, ($) => (0, exports.String_Literal)($));
668
+ default: return p_.au($[0]);
669
+ }
670
+ }),
671
+ sh.ph.literal(": ")
672
+ ]),
673
+ (0, exports.Expression)($.value, {
674
+ 'object literal needs parentheses': false,
675
+ 'replace empty type literals by symbol': $p['replace empty type literals by symbol'],
676
+ }),
677
+ p_.literal.list([
678
+ sh.ph.literal(",")
679
+ ])
680
+ ]))))),
681
+ sh.ph.literal("}"),
682
+ $p['object literal needs parentheses']
683
+ ? sh.ph.literal(")")
684
+ : sh.ph.nothing(),
685
+ ]));
686
+ case 'parenthesized': return p_.option($, ($) => p_.literal.segmented_list([
687
+ p_.literal.list([
688
+ sh.ph.literal("("),
689
+ ]),
690
+ (0, exports.Expression)($, {
691
+ 'replace empty type literals by symbol': $p['replace empty type literals by symbol'],
692
+ 'object literal needs parentheses': false,
693
+ }),
694
+ p_.literal.list([
695
+ sh.ph.literal(")"),
696
+ ])
697
+ ]));
698
+ case 'property access': return p_.option($, ($) => p_.literal.segmented_list([
699
+ (0, exports.Expression)($.object, $p),
700
+ p_.literal.list([
701
+ sh.ph.literal("."),
702
+ (0, exports.Identifier)($.property),
703
+ ])
704
+ ]));
705
+ case 'string literal': return p_.option($, ($) => p_.literal.list([
706
+ sh.ph.serialize($['delimiter'][0] === "quote" ? (0, exports.quoted_text)($['value']) : (0, exports.apostrophed_text)($['value']))
707
+ ]));
708
+ case 'true': return p_.option($, ($) => p_.literal.list([
709
+ sh.ph.literal("true")
710
+ ]));
711
+ case 'unary operation': return p_.option($, ($) => {
712
+ const operand = $.operand;
713
+ return p_.literal.segmented_list([
714
+ p_.literal.list([
715
+ p_.from.state($.operator).decide(($) => {
716
+ switch ($[0]) {
717
+ case 'negation': return p_.option($, ($) => sh.ph.literal("-"));
718
+ case 'logical not': return p_.option($, ($) => sh.ph.literal("!"));
719
+ default: return p_.au($[0]);
720
+ }
721
+ })
722
+ ]),
723
+ (0, exports.Expression)(operand, $p)
724
+ ]);
725
+ });
726
+ default: return p_.au($[0]);
727
+ }
728
+ });
729
+ exports.Expression = Expression;
730
+ const Type = ($, $p) => p_.from.state($).decide(($) => {
731
+ switch ($[0]) {
732
+ case 'boolean': return p_.option($, ($) => sh.ph.literal("boolean"));
733
+ case 'function': return p_.option($, ($) => sh.ph.composed([
734
+ sh.ph.rich(p_.from.list($['type parameters']).map(($) => (0, exports.Type)($, $p)), sh.ph.nothing(), sh.ph.literal("<"), sh.ph.literal(", "), sh.ph.literal(">")),
735
+ sh.ph.literal("("),
736
+ sh.ph.indent(sh.pg.sentences(p_.from.list($['parameters']).map(($) => sh.sentence(p_.literal.list([
737
+ (0, exports.Identifier)($.name),
738
+ p_.from.optional($.type).decide(($) => sh.ph.composed([
739
+ sh.ph.literal(": "),
740
+ (0, exports.Type)($, $p)
741
+ ]), () => sh.ph.nothing()),
742
+ sh.ph.literal(",")
743
+ ]))))),
744
+ sh.ph.literal(") => "),
745
+ (0, exports.Type)($['return'], $p)
746
+ ]));
747
+ case 'literal type': return p_.option($, ($) => (0, exports.String_Literal)($)); //FIX, implement a switch for the delimiter
748
+ case 'never': return p_.option($, ($) => sh.ph.literal("never"));
749
+ case 'null': return p_.option($, ($) => sh.ph.literal("null"));
750
+ case 'number': return p_.option($, ($) => sh.ph.literal("number"));
751
+ case 'string': return p_.option($, ($) => sh.ph.literal("string"));
752
+ case 'tuple': return p_.option($, ($) => sh.ph.composed([
753
+ $.readonly ? sh.ph.literal("readonly ") : sh.ph.nothing(),
754
+ sh.ph.literal("["),
755
+ sh.ph.rich(p_.from.list($.elements).map(($) => (0, exports.Type)($, $p)), sh.ph.nothing(), sh.ph.nothing(), sh.ph.literal(", "), sh.ph.nothing()),
756
+ sh.ph.literal("]"),
757
+ ]));
758
+ case 'type literal': return p_.option($, ($) => $p['replace empty type literals by symbol'] && p_.from.list($.properties).on_has_items(() => true, () => false)
759
+ ? sh.ph.literal("symbol")
760
+ : sh.ph.composed([
761
+ sh.ph.literal("{"),
762
+ sh.ph.indent(sh.pg.sentences(p_.from.list($.properties).map(($) => sh.sentence([
763
+ sh.ph.composed([
764
+ $['readonly'] ? sh.ph.literal("readonly ") : sh.ph.nothing(),
765
+ p_.from.state($.key).decide(($) => {
766
+ switch ($[0]) {
767
+ case 'identifier': return p_.option($, ($) => (0, exports.Identifier)($));
768
+ case 'string literal': return p_.option($, ($) => (0, exports.String_Literal)($));
769
+ default: return p_.au($[0]);
770
+ }
771
+ }),
772
+ sh.ph.literal(": "),
773
+ (0, exports.Type)($.type, $p),
774
+ ])
775
+ ])))),
776
+ sh.ph.literal("}")
777
+ ]));
778
+ case 'type reference': return p_.option($, ($) => sh.ph.composed([
779
+ (0, exports.Identifier)($['start']),
780
+ sh.ph.composed(p_.from.list($['tail']).map(($) => sh.ph.composed([
781
+ sh.ph.literal("."),
782
+ (0, exports.Identifier)($),
783
+ ]))),
784
+ p_.from.list($['type arguments']).on_has_items(($) => sh.ph.composed([
785
+ sh.ph.literal("<"),
786
+ sh.ph.rich(p_.from.list($).map(($) => (0, exports.Type)($, $p)), sh.ph.nothing(), sh.ph.nothing(), sh.ph.literal(", "), sh.ph.nothing()),
787
+ sh.ph.literal(">"),
788
+ ]), () => sh.ph.nothing()),
789
+ ]));
790
+ case 'union': return p_.option($, ($) => sh.ph.indent(sh.pg.sentences(p_.from.list($).map(($) => sh.sentence(p_.literal.list([
791
+ sh.ph.literal("| "),
792
+ (0, exports.Type)($, $p),
793
+ ]))))));
794
+ case 'void': return p_.option($, ($) => sh.ph.literal("void"));
795
+ default: return p_.au($[0]);
796
+ }
797
+ });
798
+ exports.Type = Type;
799
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy90eXBlc2NyaXB0X2xpZ2h0L2ltcGxlbWVudGF0aW9uL21hbnVhbC90cmFuc2Zvcm1lcnMvdHlwZXNjcmlwdF9saWdodC9wcm9zZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxnRkFBaUU7QUFHakUscUhBQThGO0FBQzlGLG1JQUE0RztBQUM1Ryx1SUFBZ0g7QUFRaEgsWUFBWTtBQUNaLHlGQUEwRTtBQW9GbkUsTUFBTSxZQUFZLEdBQTRCLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFBLHdCQUFnQixFQUNyRixDQUFDLEVBQ0QsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FDWCxDQUNBLENBQUMsT0FBTyxDQUNMLENBQUMsQ0FBQyxFQUFxQixFQUFFO0lBQ3JCLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDUiwyQkFBMkI7UUFDM0IsK0JBQStCO1FBQy9CLHFCQUFxQjtRQUNyQixxQkFBcUI7UUFDckIsU0FBUztRQUNULEtBQUssSUFBSSxFQUFFLFNBQVM7WUFDaEIsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDbkIsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsSUFBSSxFQUFFLElBQUk7YUFDYixDQUFDLENBQUE7UUFDTixLQUFLLElBQUksRUFBRSxTQUFTO1lBQ2hCLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBQ25CLElBQUksRUFBRSxJQUFJO2dCQUNWLElBQUksRUFBRSxJQUFJO2FBQ2IsQ0FBQyxDQUFBO1FBQ04sS0FBSyxJQUFJLEVBQUUsaUJBQWlCO1lBQ3hCLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBQ25C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d0JBQ3ZFLEtBQUssbUJBQW1CLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBO3dCQUN6RSxLQUFLLG9CQUFvQixDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTt3QkFDM0UsS0FBSyxjQUFjLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO3dCQUNuRSxLQUFLLHVCQUF1QixDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTt3QkFDN0UsS0FBSyxjQUFjLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO3dCQUNuRSxLQUFLLHVCQUF1QixDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQTt3QkFDN0UsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FB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