exupery 0.1.9 → 0.1.11

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