exupery 0.3.13 → 0.3.14

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 (29) hide show
  1. package/dist/implementation/generated/pareto/generic/parse/token.js +2 -2
  2. package/dist/implementation/generated/pareto/generic/resolve.js +1 -1
  3. package/dist/implementation/manual/primitives/text/serializers/apostrophed_string.js +12 -0
  4. package/dist/implementation/manual/primitives/text/serializers/backticked_string.js +12 -0
  5. package/dist/implementation/{serializers/primitives/text → manual/primitives/text/serializers}/filename.js +1 -1
  6. package/dist/implementation/{serializers/primitives/text → manual/primitives/text/serializers}/identifier.js +3 -3
  7. package/dist/implementation/{serializers/primitives/text/apostrophed_string.js → manual/primitives/text/serializers/quoted_string.js} +5 -5
  8. package/dist/implementation/{transformers/schemas/implementation → manual/schemas/implementation/transformers}/typescript_light.d.ts +2 -2
  9. package/dist/implementation/manual/schemas/implementation/transformers/typescript_light.js +570 -0
  10. package/dist/implementation/{transformers/schemas/interface → manual/schemas/interface/transformers}/typescript_light.d.ts +3 -3
  11. package/dist/implementation/manual/schemas/interface/transformers/typescript_light.js +525 -0
  12. package/dist/implementation/manual/schemas/library/transformers/typescript_light.d.ts +10 -0
  13. package/dist/implementation/{transformers/schemas/library → manual/schemas/library/transformers}/typescript_light.js +3 -3
  14. package/dist/implementation/{transformers/schemas/typescript_light → manual/schemas/typescript_light/transformers}/fountain_pen_block.d.ts +1 -1
  15. package/dist/implementation/manual/schemas/typescript_light/transformers/fountain_pen_block.js +309 -0
  16. package/dist/shorthands/interface.d.ts +29 -29
  17. package/dist/shorthands/interface.js +1 -1
  18. package/package.json +2 -2
  19. package/dist/implementation/serializers/primitives/text/backticked_string.js +0 -12
  20. package/dist/implementation/serializers/primitives/text/quoted_string.js +0 -12
  21. package/dist/implementation/transformers/schemas/implementation/typescript_light.js +0 -570
  22. package/dist/implementation/transformers/schemas/interface/typescript_light.js +0 -524
  23. package/dist/implementation/transformers/schemas/library/typescript_light.d.ts +0 -10
  24. package/dist/implementation/transformers/schemas/typescript_light/fountain_pen_block.js +0 -309
  25. /package/dist/implementation/{serializers/primitives/text → manual/primitives/text/serializers}/apostrophed_string.d.ts +0 -0
  26. /package/dist/implementation/{serializers/primitives/text → manual/primitives/text/serializers}/backticked_string.d.ts +0 -0
  27. /package/dist/implementation/{serializers/primitives/text → manual/primitives/text/serializers}/filename.d.ts +0 -0
  28. /package/dist/implementation/{serializers/primitives/text → manual/primitives/text/serializers}/identifier.d.ts +0 -0
  29. /package/dist/implementation/{serializers/primitives/text → manual/primitives/text/serializers}/quoted_string.d.ts +0 -0
@@ -0,0 +1,570 @@
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.Literal = exports.Variables = exports.Initialization = exports.Selection = exports.String_Literal = exports.line_dictionary = exports.Module_Set = void 0;
27
+ const _pt = __importStar(require("pareto-core-transformer"));
28
+ const t_inf_2_tl = __importStar(require("../../interface/transformers/typescript_light"));
29
+ const t_tl_2_fp = __importStar(require("../../typescript_light/transformers/fountain_pen_block"));
30
+ const sh = __importStar(require("../../../../../shorthands/typescript_light"));
31
+ const list_of_texts_1 = require("pareto-standard-operations/dist/implementation/temp_serializers/schemas/list_of_texts");
32
+ const apostrophed_string_1 = require("../../../primitives/text/serializers/apostrophed_string");
33
+ const quoted_string_1 = require("../../../primitives/text/serializers/quoted_string");
34
+ const backticked_string_1 = require("../../../primitives/text/serializers/backticked_string");
35
+ const repeated_1 = require("pareto-standard-operations/dist/implementation/manual/primitives/text/serializers/repeated");
36
+ const filename_1 = require("../../../primitives/text/serializers/filename");
37
+ const identifier_1 = require("../../../primitives/text/serializers/identifier");
38
+ const scientific_notation_1 = require("pareto-standard-operations/dist/implementation/manual/primitives/approximate_number/serializers/scientific_notation");
39
+ const decimal_1 = require("pareto-standard-operations/dist/implementation/manual/primitives/integer/serializers/decimal");
40
+ const Module_Set = ($, $p) => {
41
+ return $.map(($, key) => _pt.cc($, ($) => {
42
+ switch ($[0]) {
43
+ case 'module': return _pt.ss($, ($) => {
44
+ const type_imports = $['type imports'];
45
+ const valid_file_name = ($) => {
46
+ return (0, filename_1.$$)($);
47
+ };
48
+ const x = sh.group([
49
+ sh.g.simple_line("import * as _pa from 'pareto-core-transformer'"),
50
+ $p.phase === 'development' ? sh.g.simple_line("import * as _pdev from 'pareto-core-dev'") : sh.g.nothing(),
51
+ sh.g.simple_line(""),
52
+ sh.g.sub($['type imports'].to_list(($, key) => sh.g.sub([
53
+ sh.g.nested_block([
54
+ sh.b.snippet("import * as "),
55
+ sh.b.snippet((0, identifier_1.$$)([" i ", key])),
56
+ sh.b.snippet(" from "),
57
+ (0, exports.String_Literal)(_pt.cc($.type, ($) => {
58
+ switch ($[0]) {
59
+ case 'external': return _pt.ss($, ($) => valid_file_name($));
60
+ case 'ancestor': return _pt.ss($, ($) => `${(0, repeated_1.$$)("../", { 'count': $['number of steps'] })}${valid_file_name($.dependency)}`);
61
+ case 'sibling': return _pt.ss($, ($) => `./${valid_file_name($)}`);
62
+ default: return _pt.au($[0]);
63
+ }
64
+ })
65
+ + (0, list_of_texts_1.$$)($.tail.map(($) => `/${valid_file_name($)}`)), {
66
+ 'delimiter': "quote"
67
+ }),
68
+ ])
69
+ ]))),
70
+ sh.g.simple_line(""),
71
+ sh.g.sub($['variable imports'].to_list(($, key) => sh.g.sub([
72
+ sh.g.nested_block([
73
+ sh.b.snippet("import * as "),
74
+ sh.b.snippet((0, identifier_1.$$)([" i var ", key])),
75
+ sh.b.snippet(" from "),
76
+ (0, exports.String_Literal)(_pt.cc($.type, ($) => {
77
+ switch ($[0]) {
78
+ case 'external': return _pt.ss($, ($) => valid_file_name($));
79
+ case 'ancestor': return _pt.ss($, ($) => `${(0, repeated_1.$$)("../", { 'count': $['number of steps'] })}${valid_file_name($.dependency)}`);
80
+ case 'sibling': return _pt.ss($, ($) => `./${valid_file_name($)}`);
81
+ default: return _pt.au($[0]);
82
+ }
83
+ })
84
+ + (0, list_of_texts_1.$$)($.tail.map(($) => `/${valid_file_name($)}`)), {
85
+ 'delimiter': "quote"
86
+ }),
87
+ ])
88
+ ]))),
89
+ sh.g.simple_line(""),
90
+ (0, exports.Variables)($.variables, {
91
+ 'type imports': type_imports,
92
+ 'export': true,
93
+ }),
94
+ ]);
95
+ return ['file', x];
96
+ });
97
+ case 'set': return _pt.ss($, ($) => ['directory', (0, exports.Module_Set)($, $p)]);
98
+ default: return _pt.au($[0]);
99
+ }
100
+ }));
101
+ };
102
+ exports.Module_Set = Module_Set;
103
+ const line_dictionary = ($, if_empty, prefix, suffix, add_commas) => {
104
+ let is_empty = true;
105
+ $.map(($) => {
106
+ is_empty = false;
107
+ });
108
+ if (is_empty) {
109
+ return if_empty;
110
+ }
111
+ else {
112
+ let is_first = true;
113
+ const x = sh.b.sub([
114
+ prefix,
115
+ sh.b.sub($.to_list(($) => {
116
+ const out = sh.b.sub([
117
+ is_first ?
118
+ sh.b.nothing()
119
+ : add_commas
120
+ ? sh.b.snippet(", ")
121
+ : sh.b.nothing(),
122
+ $,
123
+ ]);
124
+ is_first = false;
125
+ return out;
126
+ })),
127
+ suffix,
128
+ ]);
129
+ return x;
130
+ }
131
+ };
132
+ exports.line_dictionary = line_dictionary;
133
+ const String_Literal = ($, $p) => {
134
+ return sh.b.snippet($p.delimiter === "quote" ? (0, quoted_string_1.$$)($) : (0, apostrophed_string_1.$$)($));
135
+ };
136
+ exports.String_Literal = String_Literal;
137
+ const Selection = ($, $p) => {
138
+ return sh.b.sub([
139
+ _pt.cc($.start, ($) => {
140
+ switch ($[0]) {
141
+ case 'abort': return _pt.ss($, ($) => sh.b.snippet("_pa.panic('ABORT SELECTION')"));
142
+ case 'transform optional value': return _pt.ss($, ($) => sh.b.sub([
143
+ (0, exports.Selection)($.source, $p),
144
+ sh.b.snippet(".transform("),
145
+ sh.b.indent([
146
+ sh.g.nested_block([
147
+ sh.b.snippet("($) => "),
148
+ (0, exports.Selection)($['if set'], $p),
149
+ sh.b.snippet(","),
150
+ ]),
151
+ sh.g.nested_block([
152
+ sh.b.snippet("() => "),
153
+ (0, exports.Selection)($['if not set'], $p),
154
+ ]),
155
+ ]),
156
+ sh.b.snippet(")"),
157
+ ]));
158
+ case 'call': return _pt.ss($, ($) => sh.b.sub([
159
+ (0, exports.Selection)($.source, $p),
160
+ sh.b.snippet("("),
161
+ sh.b.indent([
162
+ sh.g.nested_block([
163
+ (0, exports.Selection)($.context, $p), $.arguments.transform(($) => sh.b.snippet(","), () => sh.b.nothing()),
164
+ ]),
165
+ $.arguments.transform(($) => sh.g.nested_block([
166
+ $.is_empty()
167
+ ? sh.b.snippet("null")
168
+ : sh.b.sub([
169
+ sh.b.snippet("{"),
170
+ sh.b.indent([
171
+ sh.g.sub($.to_list(($, key) => sh.g.sub([
172
+ sh.g.nested_block([
173
+ (0, exports.String_Literal)(key, { 'delimiter': "apostrophe" }),
174
+ sh.b.snippet(": "),
175
+ (0, exports.Initialization)($, $p),
176
+ sh.b.snippet(","),
177
+ ]),
178
+ ]))),
179
+ ]),
180
+ sh.b.snippet("}")
181
+ ]),
182
+ ]), () => sh.g.nothing()),
183
+ ]),
184
+ sh.b.snippet(")"),
185
+ ]));
186
+ case 'implement me': return _pt.ss($, ($) => sh.b.snippet("_pdev.implement_me(\"marker tbd\")"));
187
+ case 'argument': return _pt.ss($, ($) => sh.b.snippet((0, identifier_1.$$)(["FOOO FIX ARGUMENT"])));
188
+ case 'context': return _pt.ss($, ($) => sh.b.snippet("$"));
189
+ case 'variable': return _pt.ss($, ($) => sh.b.snippet((0, identifier_1.$$)([$])));
190
+ case 'parameter': return _pt.ss($, ($) => sh.b.sub([
191
+ sh.b.snippet("$p["),
192
+ (0, exports.String_Literal)($, { 'delimiter': "apostrophe" }),
193
+ sh.b.snippet("]"),
194
+ ]));
195
+ case 'imported variable': return _pt.ss($, ($) => sh.b.sub([
196
+ sh.b.snippet((0, identifier_1.$$)([$.import])),
197
+ sh.b.snippet("."),
198
+ sh.b.snippet((0, identifier_1.$$)([$.variable])),
199
+ ]));
200
+ default: return _pt.au($[0]);
201
+ }
202
+ }),
203
+ sh.b.sub($.tail.map(($) => sh.b.sub([
204
+ sh.b.snippet("["),
205
+ (0, exports.String_Literal)($, { 'delimiter': "apostrophe" }),
206
+ sh.b.snippet("]"),
207
+ ]))),
208
+ ]);
209
+ };
210
+ exports.Selection = Selection;
211
+ const Initialization = ($, $p) => {
212
+ return _pt.cc($, ($) => {
213
+ switch ($[0]) {
214
+ case 'block': return _pt.ss($, ($) => sh.b.sub([
215
+ sh.b.snippet("_pa.block("),
216
+ sh.b.snippet("() => {"),
217
+ sh.b.indent([
218
+ //temp variables
219
+ sh.g.sub($['temp ordered variables'].map(($) => sh.g.nested_block([
220
+ sh.b.snippet("const "),
221
+ sh.b.snippet((0, identifier_1.$$)([$.name])),
222
+ $.type.transform(($) => sh.b.sub([
223
+ sh.b.snippet(": "),
224
+ t_tl_2_fp.Type(t_inf_2_tl.Type_to_Type($, {
225
+ 'module parameters': _pt.not_set(),
226
+ 'temp imports': _pt.set($p['temp imports']),
227
+ }), {
228
+ 'replace empty type literals by null': true
229
+ }),
230
+ ]), () => sh.b.nothing()),
231
+ sh.b.snippet(" = "),
232
+ (0, exports.Initialization)($.initialization, {
233
+ 'temp imports': $p['temp imports']
234
+ })
235
+ ]))),
236
+ (0, exports.Variables)($.variables, {
237
+ 'type imports': $p['temp imports'],
238
+ 'export': false,
239
+ }),
240
+ sh.g.nested_block([
241
+ sh.b.snippet("return "),
242
+ (0, exports.Initialization)($.initialization, $p),
243
+ ])
244
+ ]),
245
+ sh.b.snippet("})"),
246
+ ]));
247
+ case 'change context': return _pt.ss($, ($) => sh.b.sub([
248
+ sh.b.snippet("_pa.cc("),
249
+ (0, exports.Selection)($['new context'], $p),
250
+ sh.b.snippet(", ($) => "),
251
+ (0, exports.Initialization)($.initialization, $p),
252
+ sh.b.snippet(")"),
253
+ ]));
254
+ case 'literal': return _pt.ss($, ($) => (0, exports.Literal)($.value, $p));
255
+ case 'selection': return _pt.ss($, ($) => (0, exports.Selection)($, $p));
256
+ case 'transformation': return _pt.ss($, ($) => {
257
+ const p_source = $.source;
258
+ return sh.b.sub([
259
+ _pt.cc($.type, ($) => {
260
+ switch ($[0]) {
261
+ case 'array': return _pt.ss($, ($) => _pt.cc($, ($) => {
262
+ switch ($[0]) {
263
+ case 'map': return _pt.ss($, ($) => sh.b.sub([
264
+ (0, exports.Selection)(p_source, $p),
265
+ sh.b.snippet(".map(($) => "),
266
+ (0, exports.Initialization)($, $p),
267
+ sh.b.snippet(")"),
268
+ ]));
269
+ default: return _pt.au($[0]);
270
+ }
271
+ }));
272
+ case 'boolean': return _pt.ss($, ($) => _pt.cc($, ($) => {
273
+ switch ($[0]) {
274
+ case 'not': return _pt.ss($, ($) => sh.b.sub([sh.b.snippet("FIXME BOOLEAN NOT")]));
275
+ case 'transform': return _pt.ss($, ($) => sh.b.sub([
276
+ (0, exports.Selection)(p_source, $p),
277
+ sh.b.indent([
278
+ sh.g.nested_block([
279
+ sh.b.snippet("? "),
280
+ (0, exports.Initialization)($['if true'], $p),
281
+ ]),
282
+ sh.g.nested_block([
283
+ sh.b.snippet(": "),
284
+ (0, exports.Initialization)($['if false'], $p),
285
+ ]),
286
+ ])
287
+ ]));
288
+ default: return _pt.au($[0]);
289
+ }
290
+ }));
291
+ case 'dictionary': return _pt.ss($, ($) => _pt.cc($, ($) => {
292
+ switch ($[0]) {
293
+ case 'map': return _pt.ss($, ($) => sh.b.sub([
294
+ (0, exports.Selection)(p_source, $p),
295
+ sh.b.snippet(".map(($) => "),
296
+ (0, exports.Initialization)($, $p),
297
+ sh.b.snippet(")"),
298
+ ]));
299
+ default: return _pt.au($[0]);
300
+ }
301
+ }));
302
+ case 'function': return _pt.ss($, ($) => _pt.cc($, ($) => {
303
+ switch ($[0]) {
304
+ case 'call': return _pt.ss($, ($) => sh.b.sub([
305
+ (0, exports.Selection)(p_source, $p),
306
+ sh.b.snippet("("),
307
+ sh.b.indent([
308
+ sh.g.nested_block([
309
+ (0, exports.Initialization)($.context, $p), $.arguments.transform(($) => sh.b.snippet(","), () => sh.b.nothing()),
310
+ ]),
311
+ $.arguments.transform(($) => sh.g.nested_block([
312
+ $.is_empty()
313
+ ? sh.b.snippet("null")
314
+ : sh.b.sub([
315
+ sh.b.snippet("{"),
316
+ sh.b.indent([
317
+ sh.g.sub($.to_list(($, key) => sh.g.sub([
318
+ sh.g.nested_block([
319
+ (0, exports.String_Literal)(key, { 'delimiter': "apostrophe" }),
320
+ sh.b.snippet(": "),
321
+ (0, exports.Initialization)($, $p),
322
+ sh.b.snippet(","),
323
+ ]),
324
+ ]))),
325
+ ]),
326
+ sh.b.snippet("}")
327
+ ]),
328
+ ]), () => sh.g.nothing()),
329
+ ]),
330
+ sh.b.snippet(")"),
331
+ ]));
332
+ default: return _pt.au($[0]);
333
+ }
334
+ }));
335
+ case 'optional': return _pt.ss($, ($) => _pt.cc($, ($) => {
336
+ switch ($[0]) {
337
+ case 'map': return _pt.ss($, ($) => sh.b.sub([
338
+ (0, exports.Selection)(p_source, $p),
339
+ sh.b.snippet(".map(($) => "),
340
+ (0, exports.Initialization)($, $p),
341
+ sh.b.snippet(")"),
342
+ ]));
343
+ case 'transform': return _pt.ss($, ($) => sh.b.sub([
344
+ (0, exports.Selection)(p_source, $p),
345
+ sh.b.snippet(".transform("),
346
+ sh.b.indent([
347
+ sh.g.nested_block([
348
+ sh.b.snippet("($)"),
349
+ $['temp resulting node'].transform(($) => sh.b.sub([
350
+ sh.b.snippet(": "),
351
+ t_tl_2_fp.Type(t_inf_2_tl.Type_to_Type($, {
352
+ 'module parameters': _pt.not_set(),
353
+ 'temp imports': _pt.set($p['temp imports']),
354
+ }), {
355
+ 'replace empty type literals by null': true
356
+ }),
357
+ ]), () => sh.b.nothing()),
358
+ sh.b.snippet(" => "),
359
+ (0, exports.Initialization)($['if set'], $p),
360
+ sh.b.snippet(","),
361
+ ]),
362
+ sh.g.nested_block([
363
+ sh.b.snippet("() => "),
364
+ (0, exports.Initialization)($['if not set'], $p),
365
+ ]),
366
+ ]),
367
+ sh.b.snippet(")"),
368
+ ]));
369
+ default: return _pt.au($[0]);
370
+ }
371
+ }));
372
+ case 'tagged union': return _pt.ss($, ($) => _pt.cc($, ($) => {
373
+ switch ($[0]) {
374
+ case 'switch': return _pt.ss($, ($) => sh.b.sub([
375
+ sh.b.snippet("_pa.cc("),
376
+ (0, exports.Selection)(p_source, $p),
377
+ sh.b.snippet(", ($)"),
378
+ $['temp resulting node'].transform(($) => sh.b.sub([
379
+ sh.b.snippet(": "),
380
+ t_tl_2_fp.Type(t_inf_2_tl.Type_to_Type($, {
381
+ 'module parameters': _pt.not_set(),
382
+ 'temp imports': _pt.set($p['temp imports']),
383
+ }), {
384
+ 'replace empty type literals by null': true
385
+ }),
386
+ ]), () => sh.b.nothing()),
387
+ sh.b.snippet(" => {"),
388
+ sh.b.indent([
389
+ sh.g.nested_block([
390
+ _pt.cc($.type, ($) => {
391
+ switch ($[0]) {
392
+ case 'full': return _pt.ss($, ($) => sh.b.sub([
393
+ sh.b.snippet("switch ($[0]) {"),
394
+ sh.b.indent([
395
+ sh.g.sub($.cases.to_list(($, key) => sh.g.sub([
396
+ sh.g.nested_block([
397
+ sh.b.snippet("case "),
398
+ (0, exports.String_Literal)(key, { 'delimiter': "apostrophe" }),
399
+ sh.b.snippet(": return _pa.ss($, ($) => "),
400
+ (0, exports.Initialization)($, $p),
401
+ sh.b.snippet(")"),
402
+ ])
403
+ ]))),
404
+ sh.g.simple_line("default: return _pa.au($[0])")
405
+ ]),
406
+ sh.b.snippet("}"),
407
+ ]));
408
+ case 'partial': return _pt.ss($, ($) => sh.b.sub([
409
+ sh.b.snippet("switch ($[0]) {"),
410
+ sh.b.indent([
411
+ sh.g.sub($.cases.to_list(($, key) => sh.g.sub([
412
+ sh.g.nested_block([
413
+ sh.b.snippet("case "),
414
+ (0, exports.String_Literal)(key, { 'delimiter': "apostrophe" }),
415
+ sh.b.snippet(": return _pa.ss($, ($) => "),
416
+ (0, exports.Initialization)($, $p),
417
+ sh.b.snippet(")"),
418
+ ])
419
+ ]))),
420
+ sh.g.nested_block([
421
+ sh.b.snippet("default: return "),
422
+ //Expression($.default, $p),
423
+ ])
424
+ ]),
425
+ sh.b.snippet("}"),
426
+ ]));
427
+ default: return _pt.au($[0]);
428
+ }
429
+ }),
430
+ ]),
431
+ ]),
432
+ sh.b.snippet("})"),
433
+ ]));
434
+ default: return _pt.au($[0]);
435
+ }
436
+ }));
437
+ default: return _pt.au($[0]);
438
+ }
439
+ })
440
+ ]);
441
+ });
442
+ default: return _pt.au($[0]);
443
+ }
444
+ });
445
+ };
446
+ exports.Initialization = Initialization;
447
+ const Variables = ($, $p) => {
448
+ return sh.g.sub($.to_list(($, key) => sh.g.sub([
449
+ sh.g.nested_block([
450
+ $p.export ? sh.b.snippet("export ") : sh.b.nothing(),
451
+ sh.b.snippet("const "),
452
+ sh.b.snippet((0, identifier_1.$$)([key])),
453
+ $.type.transform(($) => sh.b.sub([
454
+ sh.b.snippet(": "),
455
+ t_tl_2_fp.Type(t_inf_2_tl.Type_to_Type($, {
456
+ 'module parameters': _pt.not_set(),
457
+ 'temp imports': _pt.set($p['type imports']),
458
+ }), {
459
+ 'replace empty type literals by null': true
460
+ }),
461
+ ]), () => sh.b.nothing()),
462
+ sh.b.snippet(" = "),
463
+ (0, exports.Initialization)($.initialization, {
464
+ 'temp imports': $p['type imports']
465
+ })
466
+ ])
467
+ ])));
468
+ };
469
+ exports.Variables = Variables;
470
+ const Literal = ($, $p) => {
471
+ return sh.b.sub([
472
+ _pt.cc($, ($) => {
473
+ switch ($[0]) {
474
+ case 'boolean': return _pt.ss($, ($) => _pt.cc($, ($) => {
475
+ switch ($[0]) {
476
+ case 'true': return sh.b.snippet("true");
477
+ case 'false': return sh.b.snippet("false");
478
+ default: return _pt.au($[0]);
479
+ }
480
+ }));
481
+ case 'dictionary': return _pt.ss($, ($) => sh.b.sub([
482
+ sh.b.snippet("_pa.dictionary_literal({"),
483
+ sh.b.indent([
484
+ sh.g.sub($.to_list(($, key) => sh.g.nested_block([
485
+ (0, exports.String_Literal)(key, { 'delimiter': "apostrophe" }),
486
+ sh.b.snippet(": "),
487
+ (0, exports.Initialization)($, $p),
488
+ sh.b.snippet(","),
489
+ ]))),
490
+ ]),
491
+ sh.b.snippet("})"),
492
+ ]));
493
+ case 'function': return _pt.ss($, ($) => sh.b.sub([
494
+ sh.b.snippet("($"),
495
+ $['temp has parameters'] ? sh.b.snippet(", $p") : sh.b.nothing(),
496
+ sh.b.snippet(")"),
497
+ $['temp resulting node'].transform(($) => sh.b.sub([
498
+ sh.b.snippet(": "),
499
+ t_tl_2_fp.Type(t_inf_2_tl.Type_to_Type($, {
500
+ 'module parameters': _pt.not_set(),
501
+ 'temp imports': _pt.set($p['temp imports']),
502
+ }), {
503
+ 'replace empty type literals by null': true
504
+ }),
505
+ ]), () => sh.b.nothing()),
506
+ sh.b.snippet(" => "),
507
+ (0, exports.Initialization)($.initialization, $p),
508
+ ]));
509
+ case 'group': return _pt.ss($, ($) => (0, exports.line_dictionary)($.map(($, key) => sh.b.indent([
510
+ sh.g.nested_block([
511
+ (0, exports.String_Literal)(key, { 'delimiter': "apostrophe" }),
512
+ sh.b.snippet(": "),
513
+ (0, exports.Initialization)($, $p),
514
+ sh.b.snippet(","),
515
+ ])
516
+ ])), sh.b.snippet("null"), sh.b.snippet("({"), sh.b.snippet("})"), false));
517
+ case 'array': return _pt.ss($, ($) => sh.b.sub([
518
+ sh.b.snippet("_pa.list_literal(["),
519
+ sh.b.indent([
520
+ sh.g.sub($.map(($) => sh.g.nested_block([
521
+ (0, exports.Initialization)($, $p),
522
+ sh.b.snippet(","),
523
+ ]))),
524
+ ]),
525
+ sh.b.snippet("])"),
526
+ ]));
527
+ case 'null': return _pt.ss($, ($) => sh.b.snippet("null"));
528
+ case 'number': return _pt.ss($, ($) => _pt.cc($, ($) => {
529
+ switch ($[0]) {
530
+ case 'floting point': return _pt.ss($, ($) => sh.b.snippet((0, scientific_notation_1.$$)($, { 'digits': 10 })));
531
+ case 'integer': return _pt.ss($, ($) => sh.b.snippet((0, decimal_1.$$)($)));
532
+ case 'signed integer': return _pt.ss($, ($) => sh.b.snippet((0, decimal_1.$$)($)));
533
+ default: return _pt.au($[0]);
534
+ }
535
+ }));
536
+ case 'optional': return _pt.ss($, ($) => _pt.cc($, ($) => {
537
+ switch ($[0]) {
538
+ case 'not set': return sh.b.snippet("_pa.not_set()");
539
+ case 'set': return _pt.ss($, ($) => sh.b.sub([
540
+ sh.b.snippet("_pa.set("),
541
+ (0, exports.Initialization)($, $p),
542
+ sh.b.snippet(")"),
543
+ ]));
544
+ default: return _pt.au($[0]);
545
+ }
546
+ }));
547
+ case 'tagged union': return _pt.ss($, ($) => sh.b.sub([
548
+ sh.b.snippet("["),
549
+ (0, exports.String_Literal)($.case, { 'delimiter': "apostrophe" }),
550
+ sh.b.snippet(", "),
551
+ (0, exports.Initialization)($.value, $p),
552
+ sh.b.snippet("]"),
553
+ ]));
554
+ case 'string': return _pt.ss($, ($) => {
555
+ const value = $.value;
556
+ return _pt.cc($.delimiter, ($) => {
557
+ switch ($[0]) {
558
+ case 'quote': return _pt.ss($, ($) => (0, exports.String_Literal)(value, { 'delimiter': "quote" }));
559
+ case 'backtick': return _pt.ss($, ($) => sh.b.snippet((0, backticked_string_1.$$)(value)));
560
+ default: return _pt.au($[0]);
561
+ }
562
+ });
563
+ });
564
+ default: return _pt.au($[0]);
565
+ }
566
+ })
567
+ ]);
568
+ };
569
+ exports.Literal = Literal;
570
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdF9saWdodC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9pbXBsZW1lbnRhdGlvbi9tYW51YWwvc2NoZW1hcy9pbXBsZW1lbnRhdGlvbi90cmFuc2Zvcm1lcnMvdHlwZXNjcmlwdF9saWdodC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZEQUE4QztBQVE5QywwRkFBMkU7QUFDM0Usa0dBQW1GO0FBR25GLCtFQUFnRTtBQUVoRSx5SEFBNkg7QUFDN0gsZ0dBQTZGO0FBQzdGLHNGQUFtRjtBQUNuRiw4RkFBMkY7QUFFM0YseUhBQTZIO0FBQzdILDRFQUFpRjtBQUNqRixnRkFBb0Y7QUFDcEYsNkpBQWlLO0FBQ2pLLDBIQUE4SDtBQUV2SCxNQUFNLFVBQVUsR0FBRyxDQUN0QixDQUFrQixFQUNsQixFQUVDLEVBQ2MsRUFBRTtJQUNqQixPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ3JDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDWCxLQUFLLFFBQVEsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQXFCLEVBQUU7Z0JBQ3JELE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQTtnQkFDdEMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxDQUFTLEVBQVUsRUFBRTtvQkFDMUMsT0FBTyxJQUFBLGFBQVcsRUFBQyxDQUFDLENBQUMsQ0FBQTtnQkFDekIsQ0FBQyxDQUFBO2dCQUNELE1BQU0sQ0FBQyxHQUFnQixFQUFFLENBQUMsS0FBSyxDQUFDO29CQUM1QixFQUFFLENBQUMsQ0FBQyxDQUFDLFdB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