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,144 +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.Type = exports.String_Literal = exports.Statements = exports.Expression = void 0;
27
- const _pa = __importStar(require("exupery-core-alg"));
28
- const Expression = ($) => _pa.cc($, ($) => {
29
- switch ($[0]) {
30
- case 'array literal': return _pa.ss($, ($) => ['array literal', $.map(($) => (0, exports.Expression)($, null))]);
31
- case 'arrow function': return _pa.ss($, ($) => ['arrow function', ({
32
- 'parameters': _pa.cc($['parameters'], ($) => $.map(($) => ({
33
- 'name': _pa.cc($['name'], ($) => $),
34
- 'type': _pa.cc($['type'], ($) => $.map(($) => (0, exports.Type)($, null))),
35
- }))),
36
- 'return type': _pa.cc($['return type'], ($) => $.map(($) => (0, exports.Type)($, null))),
37
- 'type': _pa.cc($['type'], ($) => _pa.cc($, ($) => {
38
- switch ($[0]) {
39
- case 'block': return _pa.ss($, ($) => ['block', (0, exports.Statements)($, null)]);
40
- case 'expression': return _pa.ss($, ($) => ['expression', (0, exports.Expression)($, null)]);
41
- default: return _pa.au($[0]);
42
- }
43
- })),
44
- })]);
45
- case 'call': return _pa.ss($, ($) => ['call', ({
46
- 'arguments': _pa.cc($['arguments'], ($) => $.map(($) => (0, exports.Expression)($, null))),
47
- 'function selection': _pa.cc($['function selection'], ($) => (0, exports.Expression)($, null)),
48
- })]);
49
- case 'false': return _pa.ss($, ($) => ['false', null]);
50
- case 'null': return _pa.ss($, ($) => ['null', null]);
51
- case 'number literal': return _pa.ss($, ($) => ['number literal', $]);
52
- case 'object literal': return _pa.ss($, ($) => ['object literal', ({
53
- 'properties': _pa.cc($['properties'], ($) => $.map(($) => (0, exports.Expression)($, null))),
54
- })]);
55
- case 'string literal': return _pa.ss($, ($) => ['string literal', (0, exports.String_Literal)($, null)]);
56
- case 'true': return _pa.ss($, ($) => ['true', null]);
57
- default: return _pa.au($[0]);
58
- }
59
- });
60
- exports.Expression = Expression;
61
- const Statements = ($) => $.map(($) => _pa.cc($, ($) => {
62
- switch ($[0]) {
63
- case 'import': return _pa.ss($, ($) => ['import', ({
64
- 'from': _pa.cc($['from'], ($) => $),
65
- 'type': _pa.cc($['type'], ($) => _pa.cc($, ($) => {
66
- switch ($[0]) {
67
- case 'named': return _pa.ss($, ($) => ['named', ({
68
- 'specifiers': _pa.cc($['specifiers'], ($) => $.map(($) => $)),
69
- })]);
70
- case 'namespace': return _pa.ss($, ($) => ['namespace', $]);
71
- default: return _pa.au($[0]);
72
- }
73
- })),
74
- })]);
75
- case 'module declaration': return _pa.ss($, ($) => ['module declaration', ({
76
- 'block': _pa.cc($['block'], ($) => (0, exports.Statements)($, null)),
77
- 'export': _pa.cc($['export'], ($) => $),
78
- 'name': _pa.cc($['name'], ($) => $),
79
- })]);
80
- case 'type alias declaration': return _pa.ss($, ($) => ['type alias declaration', ({
81
- 'export': _pa.cc($['export'], ($) => $),
82
- 'name': _pa.cc($['name'], ($) => $),
83
- 'parameters': _pa.cc($['parameters'], ($) => $.map(($) => $)),
84
- 'type': _pa.cc($['type'], ($) => (0, exports.Type)($, null)),
85
- })]);
86
- case 'variable': return _pa.ss($, ($) => ['variable', ({
87
- 'const': _pa.cc($['const'], ($) => $),
88
- 'export': _pa.cc($['export'], ($) => $),
89
- 'expression': _pa.cc($['expression'], ($) => $.map(($) => (0, exports.Expression)($, null))),
90
- 'name': _pa.cc($['name'], ($) => $),
91
- 'type': _pa.cc($['type'], ($) => $.map(($) => (0, exports.Type)($, null))),
92
- })]);
93
- default: return _pa.au($[0]);
94
- }
95
- }));
96
- exports.Statements = Statements;
97
- const String_Literal = ($) => ({
98
- 'delimiter': _pa.cc($['delimiter'], ($) => _pa.cc($, ($) => {
99
- switch ($[0]) {
100
- case 'apostrophe': return _pa.ss($, ($) => ['apostrophe', null]);
101
- case 'quote': return _pa.ss($, ($) => ['quote', null]);
102
- default: return _pa.au($[0]);
103
- }
104
- })),
105
- 'value': _pa.cc($['value'], ($) => $),
106
- });
107
- exports.String_Literal = String_Literal;
108
- const Type = ($) => _pa.cc($, ($) => {
109
- switch ($[0]) {
110
- case 'boolean': return _pa.ss($, ($) => ['boolean', null]);
111
- case 'function': return _pa.ss($, ($) => ['function', ({
112
- 'parameters': _pa.cc($['parameters'], ($) => $.map(($) => ({
113
- 'name': _pa.cc($['name'], ($) => $),
114
- 'type': _pa.cc($['type'], ($) => $.map(($) => (0, exports.Type)($, null))),
115
- }))),
116
- 'return': _pa.cc($['return'], ($) => (0, exports.Type)($, null)),
117
- 'type parameters': _pa.cc($['type parameters'], ($) => $.map(($) => $)),
118
- })]);
119
- case 'literal type': return _pa.ss($, ($) => ['literal type', (0, exports.String_Literal)($, null)]);
120
- case 'null': return _pa.ss($, ($) => ['null', null]);
121
- case 'number': return _pa.ss($, ($) => ['number', null]);
122
- case 'string': return _pa.ss($, ($) => ['string', null]);
123
- case 'tuple': return _pa.ss($, ($) => ['tuple', ({
124
- 'elements': _pa.cc($['elements'], ($) => $.map(($) => (0, exports.Type)($, null))),
125
- 'readonly': _pa.cc($['readonly'], ($) => $),
126
- })]);
127
- case 'type literal': return _pa.ss($, ($) => ['type literal', ({
128
- 'properties': _pa.cc($['properties'], ($) => $.map(($) => ({
129
- 'readonly': _pa.cc($['readonly'], ($) => $),
130
- 'type': _pa.cc($['type'], ($) => (0, exports.Type)($, null)),
131
- }))),
132
- })]);
133
- case 'type reference': return _pa.ss($, ($) => ['type reference', ({
134
- 'start': _pa.cc($['start'], ($) => $),
135
- 'tail': _pa.cc($['tail'], ($) => $.map(($) => $)),
136
- 'type arguments': _pa.cc($['type arguments'], ($) => $.map(($) => (0, exports.Type)($, null))),
137
- })]);
138
- case 'union': return _pa.ss($, ($) => ['union', $.map(($) => (0, exports.Type)($, null))]);
139
- case 'void': return _pa.ss($, ($) => ['void', null]);
140
- default: return _pa.au($[0]);
141
- }
142
- });
143
- exports.Type = Type;
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlncmF0aW9uX2JvaWxlcnBsYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2dlbmVyYXRlZC9pbXBsZW1lbnRhdGlvbi9zY2hlbWFzL3R5cGVzY3JpcHRfbGlnaHQvbWlncmF0aW9uX2JvaWxlcnBsYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsc0RBQXVDO0FBT2hDLE1BQU0sVUFBVSxHQUFnQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQXdCLEVBQUU7SUFDaEcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNYLEtBQUssZUFBZSxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBQSxrQkFBVSxFQUNuRixDQUFDLEVBQ0QsSUFBSSxDQUNQLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDSixLQUFLLGdCQUFnQixDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUMvRCxZQUFZLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQ3ZELE1BQU0sRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFF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
@@ -1,409 +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.Type = exports.String_Literal = exports.Statements = exports.Lines = exports.Line_Part = exports.Line = exports.Expression = exports.Directory = exports.Block_Part = exports.Block = void 0;
27
- const _pa = __importStar(require("exupery-core-alg"));
28
- const Block = ($) => ['list', $.map(($) => (0, exports.Block_Part)($, null))];
29
- exports.Block = Block;
30
- const Block_Part = ($) => ['state', _pa.cc($, ($) => {
31
- switch ($[0]) {
32
- case 'line': return _pa.ss($, ($) => ({
33
- 'state': "line",
34
- 'value': ['text', ({
35
- 'delimiter': ['quote', null],
36
- 'value': "FIXME TEXT",
37
- })],
38
- }));
39
- case 'nested line': return _pa.ss($, ($) => ({
40
- 'state': "nested line",
41
- 'value': (0, exports.Line)($, null),
42
- }));
43
- case 'nothing': return _pa.ss($, ($) => ({
44
- 'state': "nothing",
45
- 'value': ['text', ({
46
- 'delimiter': ['quote', null],
47
- 'value': "FIXME NOTHING",
48
- })],
49
- }));
50
- case 'sub block': return _pa.ss($, ($) => ({
51
- 'state': "sub block",
52
- 'value': (0, exports.Block)($, null),
53
- }));
54
- default: return _pa.au($[0]);
55
- }
56
- })];
57
- exports.Block_Part = Block_Part;
58
- const Directory = ($) => ['dictionary', $.map(($) => ['state', _pa.cc($, ($) => {
59
- switch ($[0]) {
60
- case 'directory': return _pa.ss($, ($) => ({
61
- 'state': "directory",
62
- 'value': (0, exports.Directory)($, null),
63
- }));
64
- case 'file': return _pa.ss($, ($) => ({
65
- 'state': "file",
66
- 'value': (0, exports.Block)($, null),
67
- }));
68
- default: return _pa.au($[0]);
69
- }
70
- })])];
71
- exports.Directory = Directory;
72
- const Expression = ($) => ['state', _pa.cc($, ($) => {
73
- switch ($[0]) {
74
- case 'array literal': return _pa.ss($, ($) => ({
75
- 'state': "array literal",
76
- 'value': ['list', $.map(($) => (0, exports.Expression)($, null))],
77
- }));
78
- case 'arrow function': return _pa.ss($, ($) => ({
79
- 'state': "arrow function",
80
- 'value': ['verbose group', _pa.dictionary_literal({
81
- 'parameters': _pa.cc($['parameters'], ($) => ['list', $.map(($) => ['verbose group', _pa.dictionary_literal({
82
- 'name': _pa.cc($['name'], ($) => ['text', ({
83
- 'delimiter': ['quote', null],
84
- 'value': "FIXME TEXT",
85
- })]),
86
- 'type': _pa.cc($['type'], ($) => ['optional', $.transform(($) => ['set', (0, exports.Type)($, null)], () => ['not set', null])]),
87
- })])]),
88
- 'return type': _pa.cc($['return type'], ($) => ['optional', $.transform(($) => ['set', (0, exports.Type)($, null)], () => ['not set', null])]),
89
- 'type': _pa.cc($['type'], ($) => ['state', _pa.cc($, ($) => {
90
- switch ($[0]) {
91
- case 'block': return _pa.ss($, ($) => ({
92
- 'state': "block",
93
- 'value': (0, exports.Statements)($, null),
94
- }));
95
- case 'expression': return _pa.ss($, ($) => ({
96
- 'state': "expression",
97
- 'value': (0, exports.Expression)($, null),
98
- }));
99
- default: return _pa.au($[0]);
100
- }
101
- })]),
102
- })],
103
- }));
104
- case 'call': return _pa.ss($, ($) => ({
105
- 'state': "call",
106
- 'value': ['verbose group', _pa.dictionary_literal({
107
- 'arguments': _pa.cc($['arguments'], ($) => ['list', $.map(($) => (0, exports.Expression)($, null))]),
108
- 'function selection': _pa.cc($['function selection'], ($) => (0, exports.Expression)($, null)),
109
- })],
110
- }));
111
- case 'false': return _pa.ss($, ($) => ({
112
- 'state': "false",
113
- 'value': ['text', ({
114
- 'delimiter': ['quote', null],
115
- 'value': "FIXME NOTHING",
116
- })],
117
- }));
118
- case 'null': return _pa.ss($, ($) => ({
119
- 'state': "null",
120
- 'value': ['text', ({
121
- 'delimiter': ['quote', null],
122
- 'value': "FIXME NOTHING",
123
- })],
124
- }));
125
- case 'number literal': return _pa.ss($, ($) => ({
126
- 'state': "number literal",
127
- 'value': ['text', ({
128
- 'delimiter': ['quote', null],
129
- 'value': "FIXME NUMBER",
130
- })],
131
- }));
132
- case 'object literal': return _pa.ss($, ($) => ({
133
- 'state': "object literal",
134
- 'value': ['verbose group', _pa.dictionary_literal({
135
- 'properties': _pa.cc($['properties'], ($) => ['dictionary', $.map(($) => (0, exports.Expression)($, null))]),
136
- })],
137
- }));
138
- case 'string literal': return _pa.ss($, ($) => ({
139
- 'state': "string literal",
140
- 'value': (0, exports.String_Literal)($, null),
141
- }));
142
- case 'true': return _pa.ss($, ($) => ({
143
- 'state': "true",
144
- 'value': ['text', ({
145
- 'delimiter': ['quote', null],
146
- 'value': "FIXME NOTHING",
147
- })],
148
- }));
149
- default: return _pa.au($[0]);
150
- }
151
- })];
152
- exports.Expression = Expression;
153
- const Line = ($) => ['list', $.map(($) => (0, exports.Line_Part)($, null))];
154
- exports.Line = Line;
155
- const Line_Part = ($) => ['state', _pa.cc($, ($) => {
156
- switch ($[0]) {
157
- case 'indent': return _pa.ss($, ($) => ({
158
- 'state': "indent",
159
- 'value': (0, exports.Block)($, null),
160
- }));
161
- case 'nothing': return _pa.ss($, ($) => ({
162
- 'state': "nothing",
163
- 'value': ['text', ({
164
- 'delimiter': ['quote', null],
165
- 'value': "FIXME NOTHING",
166
- })],
167
- }));
168
- case 'snippet': return _pa.ss($, ($) => ({
169
- 'state': "snippet",
170
- 'value': ['text', ({
171
- 'delimiter': ['quote', null],
172
- 'value': "FIXME TEXT",
173
- })],
174
- }));
175
- case 'sub line': return _pa.ss($, ($) => ({
176
- 'state': "sub line",
177
- 'value': (0, exports.Line)($, null),
178
- }));
179
- default: return _pa.au($[0]);
180
- }
181
- })];
182
- exports.Line_Part = Line_Part;
183
- const Lines = ($) => ['list', $.map(($) => ['verbose group', _pa.dictionary_literal({
184
- 'indentation': _pa.cc($['indentation'], ($) => ['text', ({
185
- 'delimiter': ['quote', null],
186
- 'value': "FIXME NUMBER",
187
- })]),
188
- 'text': _pa.cc($['text'], ($) => ['text', ({
189
- 'delimiter': ['quote', null],
190
- 'value': "FIXME TEXT",
191
- })]),
192
- })])];
193
- exports.Lines = Lines;
194
- const Statements = ($) => ['list', $.map(($) => ['state', _pa.cc($, ($) => {
195
- switch ($[0]) {
196
- case 'import': return _pa.ss($, ($) => ({
197
- 'state': "import",
198
- 'value': ['verbose group', _pa.dictionary_literal({
199
- 'from': _pa.cc($['from'], ($) => ['text', ({
200
- 'delimiter': ['quote', null],
201
- 'value': "FIXME TEXT",
202
- })]),
203
- 'type': _pa.cc($['type'], ($) => ['state', _pa.cc($, ($) => {
204
- switch ($[0]) {
205
- case 'named': return _pa.ss($, ($) => ({
206
- 'state': "named",
207
- 'value': ['verbose group', _pa.dictionary_literal({
208
- 'specifiers': _pa.cc($['specifiers'], ($) => ['dictionary', $.map(($) => ['text', ({
209
- 'delimiter': ['quote', null],
210
- 'value': "FIXME TEXT",
211
- })])]),
212
- })],
213
- }));
214
- case 'namespace': return _pa.ss($, ($) => ({
215
- 'state': "namespace",
216
- 'value': ['text', ({
217
- 'delimiter': ['quote', null],
218
- 'value': "FIXME TEXT",
219
- })],
220
- }));
221
- default: return _pa.au($[0]);
222
- }
223
- })]),
224
- })],
225
- }));
226
- case 'module declaration': return _pa.ss($, ($) => ({
227
- 'state': "module declaration",
228
- 'value': ['verbose group', _pa.dictionary_literal({
229
- 'block': _pa.cc($['block'], ($) => (0, exports.Statements)($, null)),
230
- 'export': _pa.cc($['export'], ($) => ['text', ({
231
- 'delimiter': ['quote', null],
232
- 'value': "FIXME BOOLEAN",
233
- })]),
234
- 'name': _pa.cc($['name'], ($) => ['text', ({
235
- 'delimiter': ['quote', null],
236
- 'value': "FIXME TEXT",
237
- })]),
238
- })],
239
- }));
240
- case 'type alias declaration': return _pa.ss($, ($) => ({
241
- 'state': "type alias declaration",
242
- 'value': ['verbose group', _pa.dictionary_literal({
243
- 'export': _pa.cc($['export'], ($) => ['text', ({
244
- 'delimiter': ['quote', null],
245
- 'value': "FIXME BOOLEAN",
246
- })]),
247
- 'name': _pa.cc($['name'], ($) => ['text', ({
248
- 'delimiter': ['quote', null],
249
- 'value': "FIXME TEXT",
250
- })]),
251
- 'parameters': _pa.cc($['parameters'], ($) => ['list', $.map(($) => ['text', ({
252
- 'delimiter': ['quote', null],
253
- 'value': "FIXME TEXT",
254
- })])]),
255
- 'type': _pa.cc($['type'], ($) => (0, exports.Type)($, null)),
256
- })],
257
- }));
258
- case 'variable': return _pa.ss($, ($) => ({
259
- 'state': "variable",
260
- 'value': ['verbose group', _pa.dictionary_literal({
261
- 'const': _pa.cc($['const'], ($) => ['text', ({
262
- 'delimiter': ['quote', null],
263
- 'value': "FIXME BOOLEAN",
264
- })]),
265
- 'export': _pa.cc($['export'], ($) => ['text', ({
266
- 'delimiter': ['quote', null],
267
- 'value': "FIXME BOOLEAN",
268
- })]),
269
- 'expression': _pa.cc($['expression'], ($) => ['optional', $.transform(($) => ['set', (0, exports.Expression)($, null)], () => ['not set', null])]),
270
- 'name': _pa.cc($['name'], ($) => ['text', ({
271
- 'delimiter': ['quote', null],
272
- 'value': "FIXME TEXT",
273
- })]),
274
- 'type': _pa.cc($['type'], ($) => ['optional', $.transform(($) => ['set', (0, exports.Type)($, null)], () => ['not set', null])]),
275
- })],
276
- }));
277
- default: return _pa.au($[0]);
278
- }
279
- })])];
280
- exports.Statements = Statements;
281
- const String_Literal = ($) => ['verbose group', _pa.dictionary_literal({
282
- 'delimiter': _pa.cc($['delimiter'], ($) => ['state', _pa.cc($, ($) => {
283
- switch ($[0]) {
284
- case 'apostrophe': return _pa.ss($, ($) => ({
285
- 'state': "apostrophe",
286
- 'value': ['text', ({
287
- 'delimiter': ['quote', null],
288
- 'value': "FIXME NOTHING",
289
- })],
290
- }));
291
- case 'quote': return _pa.ss($, ($) => ({
292
- 'state': "quote",
293
- 'value': ['text', ({
294
- 'delimiter': ['quote', null],
295
- 'value': "FIXME NOTHING",
296
- })],
297
- }));
298
- default: return _pa.au($[0]);
299
- }
300
- })]),
301
- 'value': _pa.cc($['value'], ($) => ['text', ({
302
- 'delimiter': ['quote', null],
303
- 'value': "FIXME TEXT",
304
- })]),
305
- })];
306
- exports.String_Literal = String_Literal;
307
- const Type = ($) => ['state', _pa.cc($, ($) => {
308
- switch ($[0]) {
309
- case 'boolean': return _pa.ss($, ($) => ({
310
- 'state': "boolean",
311
- 'value': ['text', ({
312
- 'delimiter': ['quote', null],
313
- 'value': "FIXME NOTHING",
314
- })],
315
- }));
316
- case 'function': return _pa.ss($, ($) => ({
317
- 'state': "function",
318
- 'value': ['verbose group', _pa.dictionary_literal({
319
- 'parameters': _pa.cc($['parameters'], ($) => ['list', $.map(($) => ['verbose group', _pa.dictionary_literal({
320
- 'name': _pa.cc($['name'], ($) => ['text', ({
321
- 'delimiter': ['quote', null],
322
- 'value': "FIXME TEXT",
323
- })]),
324
- 'type': _pa.cc($['type'], ($) => ['optional', $.transform(($) => ['set', (0, exports.Type)($, null)], () => ['not set', null])]),
325
- })])]),
326
- 'return': _pa.cc($['return'], ($) => (0, exports.Type)($, null)),
327
- 'type parameters': _pa.cc($['type parameters'], ($) => ['list', $.map(($) => ['text', ({
328
- 'delimiter': ['quote', null],
329
- 'value': "FIXME TEXT",
330
- })])]),
331
- })],
332
- }));
333
- case 'literal type': return _pa.ss($, ($) => ({
334
- 'state': "literal type",
335
- 'value': (0, exports.String_Literal)($, null),
336
- }));
337
- case 'null': return _pa.ss($, ($) => ({
338
- 'state': "null",
339
- 'value': ['text', ({
340
- 'delimiter': ['quote', null],
341
- 'value': "FIXME NOTHING",
342
- })],
343
- }));
344
- case 'number': return _pa.ss($, ($) => ({
345
- 'state': "number",
346
- 'value': ['text', ({
347
- 'delimiter': ['quote', null],
348
- 'value': "FIXME NOTHING",
349
- })],
350
- }));
351
- case 'string': return _pa.ss($, ($) => ({
352
- 'state': "string",
353
- 'value': ['text', ({
354
- 'delimiter': ['quote', null],
355
- 'value': "FIXME NOTHING",
356
- })],
357
- }));
358
- case 'tuple': return _pa.ss($, ($) => ({
359
- 'state': "tuple",
360
- 'value': ['verbose group', _pa.dictionary_literal({
361
- 'elements': _pa.cc($['elements'], ($) => ['list', $.map(($) => (0, exports.Type)($, null))]),
362
- 'readonly': _pa.cc($['readonly'], ($) => ['text', ({
363
- 'delimiter': ['quote', null],
364
- 'value': "FIXME BOOLEAN",
365
- })]),
366
- })],
367
- }));
368
- case 'type literal': return _pa.ss($, ($) => ({
369
- 'state': "type literal",
370
- 'value': ['verbose group', _pa.dictionary_literal({
371
- 'properties': _pa.cc($['properties'], ($) => ['dictionary', $.map(($) => ['verbose group', _pa.dictionary_literal({
372
- 'readonly': _pa.cc($['readonly'], ($) => ['text', ({
373
- 'delimiter': ['quote', null],
374
- 'value': "FIXME BOOLEAN",
375
- })]),
376
- 'type': _pa.cc($['type'], ($) => (0, exports.Type)($, null)),
377
- })])]),
378
- })],
379
- }));
380
- case 'type reference': return _pa.ss($, ($) => ({
381
- 'state': "type reference",
382
- 'value': ['verbose group', _pa.dictionary_literal({
383
- 'start': _pa.cc($['start'], ($) => ['text', ({
384
- 'delimiter': ['quote', null],
385
- 'value': "FIXME TEXT",
386
- })]),
387
- 'tail': _pa.cc($['tail'], ($) => ['list', $.map(($) => ['text', ({
388
- 'delimiter': ['quote', null],
389
- 'value': "FIXME TEXT",
390
- })])]),
391
- 'type arguments': _pa.cc($['type arguments'], ($) => ['list', $.map(($) => (0, exports.Type)($, null))]),
392
- })],
393
- }));
394
- case 'union': return _pa.ss($, ($) => ({
395
- 'state': "union",
396
- 'value': ['list', $.map(($) => (0, exports.Type)($, null))],
397
- }));
398
- case 'void': return _pa.ss($, ($) => ({
399
- 'state': "void",
400
- 'value': ['text', ({
401
- 'delimiter': ['quote', null],
402
- 'value': "FIXME NOTHING",
403
- })],
404
- }));
405
- default: return _pa.au($[0]);
406
- }
407
- })];
408
- exports.Type = Type;
409
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9nZW5lcmF0ZWQvaW1wbGVtZW50YXRpb24vc2NoZW1hcy90eXBlc2NyaXB0X2xpZ2h0L3NlcmlhbGl6ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxzREFBdUM7QUFPaEMsTUFBTSxLQUFLLEdBQTJCLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFBLGtCQUFVLEVBQ2hGLENBQUMsRUFDRCxJQUFJLENBQ1AsQ0FBQyxDQUFDLENBQUE7QUFIVSxRQUFBLEtBQUssU0FHZjtBQUNJLE1BQU0sVUFBVSxHQUFnQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQTRCLEVBQUU7UUFDOUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNYLEtBQUssTUFBTSxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDbEMsT0FBTyxFQUFFLE1BQU07Z0JBQ2YsT0FBTyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7d0JBQ2YsV0FBVyxFQUFFLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQzt3QkFDNUIsT0FBTyxFQUFFLFlBQVk7cUJBQ3hCLENBQUMsQ0FBQzthQUNOLENBQUMsQ0FBQyxDQUFBO1lBQ0gsS0FBSyxhQUFhLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUN6QyxPQUFPLEVBQUUsYUFB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