astn 0.110.18 → 0.110.20

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 (167) hide show
  1. package/dist/bin/convert_to_json.js +10 -20
  2. package/dist/bin/validate_astn.js +9 -19
  3. package/dist/generated/{interface/schemas/target/resolved.d.ts → generic/astn_target.d.ts} +1 -1
  4. package/dist/generated/generic/astn_target.js +3 -0
  5. package/dist/generated/generic/resolve.d.ts +2 -2
  6. package/dist/generated/generic/resolve.js +14 -22
  7. package/dist/generated/implementation/generic/resolve.d.ts +81 -0
  8. package/dist/generated/implementation/generic/resolve.js +251 -0
  9. package/dist/generated/implementation/generic/unmarshall.d.ts +37 -0
  10. package/dist/generated/implementation/generic/unmarshall.js +168 -0
  11. package/dist/generated/implementation/schemas/ast/marshall.d.ts +7 -0
  12. package/dist/generated/implementation/schemas/ast/marshall.js +227 -0
  13. package/dist/generated/implementation/schemas/ast/serializer.d.ts +14 -0
  14. package/dist/generated/implementation/schemas/ast/serializer.js +328 -0
  15. package/dist/generated/implementation/schemas/ast/unmarshall.d.ts +7 -0
  16. package/dist/generated/implementation/schemas/ast/unmarshall.js +239 -0
  17. package/dist/generated/implementation/schemas/ide/marshall.d.ts +4 -0
  18. package/dist/generated/implementation/schemas/ide/marshall.js +81 -0
  19. package/dist/generated/implementation/schemas/ide/serializer.d.ts +3 -0
  20. package/dist/generated/implementation/schemas/ide/serializer.js +72 -0
  21. package/dist/generated/implementation/schemas/ide/unmarshall.d.ts +4 -0
  22. package/dist/generated/implementation/schemas/ide/unmarshall.js +79 -0
  23. package/dist/generated/implementation/schemas/parse_result/marshall.d.ts +3 -0
  24. package/dist/generated/implementation/schemas/parse_result/marshall.js +184 -0
  25. package/dist/generated/implementation/schemas/parse_result/serializer.d.ts +6 -0
  26. package/dist/generated/implementation/schemas/parse_result/serializer.js +288 -0
  27. package/dist/generated/implementation/schemas/parse_result/unmarshall.d.ts +3 -0
  28. package/dist/generated/implementation/schemas/parse_result/unmarshall.js +103 -0
  29. package/dist/generated/implementation/schemas/target/marshall.d.ts +3 -0
  30. package/dist/generated/implementation/schemas/target/marshall.js +122 -0
  31. package/dist/generated/implementation/schemas/target/serializer.d.ts +3 -0
  32. package/dist/generated/implementation/schemas/target/serializer.js +122 -0
  33. package/dist/generated/implementation/schemas/target/unmarshall.d.ts +3 -0
  34. package/dist/generated/implementation/schemas/target/unmarshall.js +81 -0
  35. package/dist/generated/implementation/schemas/token/marshall.d.ts +11 -0
  36. package/dist/generated/implementation/schemas/token/marshall.js +230 -0
  37. package/dist/generated/implementation/schemas/token/unmarshall.d.ts +11 -0
  38. package/dist/generated/implementation/schemas/token/unmarshall.js +180 -0
  39. package/dist/generated/interface/core/astn_source.d.ts +116 -0
  40. package/dist/generated/interface/core/astn_source.js +3 -0
  41. package/dist/generated/interface/{schemas/target/unresolved.d.ts → core/astn_target.d.ts} +27 -27
  42. package/dist/generated/interface/core/astn_target.js +3 -0
  43. package/dist/generated/interface/core/resolve.d.ts +11 -0
  44. package/dist/generated/interface/core/resolve.js +3 -0
  45. package/dist/generated/interface/core/unconstrained.d.ts +19 -0
  46. package/dist/generated/interface/core/unconstrained.js +3 -0
  47. package/dist/generated/interface/core/unresolved.d.ts +162 -13
  48. package/dist/generated/interface/generic/resolve.d.ts +11 -0
  49. package/dist/generated/interface/generic/resolve.js +3 -0
  50. package/dist/generated/interface/schemas/ast/marshall.d.ts +226 -0
  51. package/dist/generated/interface/schemas/{ide/resolved.js → ast/marshall.js} +1 -1
  52. package/dist/generated/interface/schemas/ast/migrate_boilerplate.d.ts +134 -0
  53. package/dist/generated/interface/schemas/ast/migrate_boilerplate.js +3 -0
  54. package/dist/generated/interface/schemas/ast/serializer.d.ts +436 -0
  55. package/dist/generated/interface/schemas/ast/{unresolved.js → serializer.js} +1 -1
  56. package/dist/generated/interface/schemas/ast/unconstrained.d.ts +20 -210
  57. package/dist/generated/interface/schemas/ast/unmarshall.d.ts +134 -0
  58. package/dist/generated/interface/schemas/{ide/unresolved.js → ast/unmarshall.js} +1 -1
  59. package/dist/generated/interface/schemas/ide/marshall.d.ts +136 -0
  60. package/dist/generated/interface/schemas/{ast/resolved.js → ide/marshall.js} +1 -1
  61. package/dist/generated/interface/schemas/ide/migrate_boilerplate.d.ts +68 -0
  62. package/dist/generated/interface/schemas/ide/migrate_boilerplate.js +3 -0
  63. package/dist/generated/interface/schemas/ide/serializer.d.ts +106 -0
  64. package/dist/generated/interface/schemas/{target/unresolved.js → ide/serializer.js} +1 -1
  65. package/dist/generated/interface/schemas/ide/unconstrained.d.ts +50 -29
  66. package/dist/generated/interface/schemas/ide/unmarshall.d.ts +68 -0
  67. package/dist/generated/interface/schemas/{parse_result/unresolved.js → ide/unmarshall.js} +1 -1
  68. package/dist/generated/interface/schemas/parse_result/marshall.d.ts +106 -0
  69. package/dist/generated/interface/schemas/parse_result/{resolved.js → marshall.js} +1 -1
  70. package/dist/generated/interface/schemas/parse_result/migrate_boilerplate.d.ts +46 -0
  71. package/dist/generated/interface/schemas/parse_result/migrate_boilerplate.js +3 -0
  72. package/dist/generated/interface/schemas/parse_result/serializer.d.ts +196 -0
  73. package/dist/generated/interface/schemas/parse_result/serializer.js +3 -0
  74. package/dist/generated/interface/schemas/parse_result/unconstrained.d.ts +20 -168
  75. package/dist/generated/interface/schemas/parse_result/unmarshall.d.ts +46 -0
  76. package/dist/generated/interface/schemas/parse_result/unmarshall.js +3 -0
  77. package/dist/generated/interface/schemas/target/marshall.d.ts +126 -0
  78. package/dist/generated/interface/schemas/target/{resolved.js → marshall.js} +1 -1
  79. package/dist/generated/interface/schemas/target/migrate_boilerplate.d.ts +46 -0
  80. package/dist/generated/interface/schemas/target/migrate_boilerplate.js +3 -0
  81. package/dist/generated/interface/schemas/target/serializer.d.ts +126 -0
  82. package/dist/generated/interface/schemas/target/serializer.js +3 -0
  83. package/dist/generated/interface/schemas/target/unconstrained.d.ts +1 -1
  84. package/dist/generated/interface/schemas/target/unmarshall.d.ts +46 -0
  85. package/dist/generated/interface/schemas/target/unmarshall.js +3 -0
  86. package/dist/generated/interface/schemas/target_json/unconstrained.d.ts +1 -1
  87. package/dist/generated/interface/schemas/token/marshall.d.ts +346 -0
  88. package/dist/generated/interface/schemas/token/marshall.js +3 -0
  89. package/dist/generated/interface/schemas/token/migrate_boilerplate.d.ts +222 -0
  90. package/dist/generated/interface/schemas/token/migrate_boilerplate.js +3 -0
  91. package/dist/generated/interface/schemas/token/unconstrained.d.ts +326 -0
  92. package/dist/generated/interface/schemas/token/unconstrained.js +3 -0
  93. package/dist/generated/interface/schemas/token/unmarshall.d.ts +222 -0
  94. package/dist/generated/interface/schemas/token/unmarshall.js +3 -0
  95. package/dist/index.js +8 -18
  96. package/dist/parse/ast.d.ts +10 -0
  97. package/dist/parse/ast.js +227 -0
  98. package/dist/parse/astn_parse_generic.d.ts +8 -0
  99. package/dist/parse/astn_parse_generic.js +65 -0
  100. package/dist/parse/parse.d.ts +3 -10
  101. package/dist/parse/parse.js +19 -226
  102. package/dist/parse/parse_generic.d.ts +7 -42
  103. package/dist/parse/parse_generic.js +14 -605
  104. package/dist/{transformations/parse_generic.d.ts → parse/string_iterator.d.ts} +19 -15
  105. package/dist/parse/string_iterator.js +139 -0
  106. package/dist/parse/token.d.ts +9 -0
  107. package/dist/parse/token.js +506 -0
  108. package/dist/parse/tokenize.d.ts +8 -0
  109. package/dist/parse/tokenize.js +483 -0
  110. package/dist/serializers/json.js +8 -18
  111. package/dist/serializers/parse_result.js +8 -18
  112. package/dist/transformations/ast/ide.d.ts +3 -2
  113. package/dist/transformations/ast/ide.js +8 -18
  114. package/dist/transformations/ast/json_target.d.ts +1 -1
  115. package/dist/transformations/ast/json_target.js +8 -18
  116. package/dist/transformations/target/fountain_pen_block.js +10 -20
  117. package/dist/transformations/target_json/fountain_pen_block.js +8 -18
  118. package/package.json +5 -7
  119. package/dist/generated/interface/schemas/ast/poormans_parser.d.ts +0 -1108
  120. package/dist/generated/interface/schemas/ast/poormans_parser.js +0 -3
  121. package/dist/generated/interface/schemas/ast/resolved.d.ts +0 -1108
  122. package/dist/generated/interface/schemas/ast/unresolved.d.ts +0 -1108
  123. package/dist/generated/interface/schemas/ide/poormans_parser.d.ts +0 -161
  124. package/dist/generated/interface/schemas/ide/poormans_parser.js +0 -3
  125. package/dist/generated/interface/schemas/ide/resolved.d.ts +0 -161
  126. package/dist/generated/interface/schemas/ide/unresolved.d.ts +0 -161
  127. package/dist/generated/interface/schemas/parse_result/poormans_parser.d.ts +0 -416
  128. package/dist/generated/interface/schemas/parse_result/poormans_parser.js +0 -3
  129. package/dist/generated/interface/schemas/parse_result/resolved.d.ts +0 -416
  130. package/dist/generated/interface/schemas/parse_result/unresolved.d.ts +0 -416
  131. package/dist/generated/interface/schemas/target/poormans_parser.d.ts +0 -186
  132. package/dist/generated/interface/schemas/target/poormans_parser.js +0 -3
  133. package/dist/generated/interface/schemas/target_json/poormans_parser.d.ts +0 -169
  134. package/dist/generated/interface/schemas/target_json/poormans_parser.js +0 -3
  135. package/dist/generated/interface/schemas/target_json/resolved.d.ts +0 -169
  136. package/dist/generated/interface/schemas/target_json/resolved.js +0 -3
  137. package/dist/generated/interface/schemas/target_json/unresolved.d.ts +0 -169
  138. package/dist/generated/interface/schemas/target_json/unresolved.js +0 -3
  139. package/dist/lib/globals.d.ts +0 -24
  140. package/dist/lib/globals.js +0 -2
  141. package/dist/lib/transformations/create_error_message.d.ts +0 -5
  142. package/dist/lib/transformations/create_error_message.js +0 -89
  143. package/dist/lib/transformations/format.d.ts +0 -42
  144. package/dist/lib/transformations/format.js +0 -166
  145. package/dist/lib/transformations/fountain_pen/astn.d.ts +0 -11
  146. package/dist/lib/transformations/fountain_pen/astn.js +0 -156
  147. package/dist/lib/transformations/fountain_pen/json.d.ts +0 -4
  148. package/dist/lib/transformations/fountain_pen/json.js +0 -113
  149. package/dist/lib/transformations/parse.d.ts +0 -11
  150. package/dist/lib/transformations/parse.js +0 -257
  151. package/dist/lib/transformations/parse_generic.d.ts +0 -43
  152. package/dist/lib/transformations/parse_generic.js +0 -644
  153. package/dist/transformations/create_error_message.d.ts +0 -5
  154. package/dist/transformations/create_error_message.js +0 -89
  155. package/dist/transformations/format.d.ts +0 -42
  156. package/dist/transformations/format.js +0 -166
  157. package/dist/transformations/fountain_pen/astn.d.ts +0 -11
  158. package/dist/transformations/fountain_pen/astn.js +0 -166
  159. package/dist/transformations/fountain_pen/json.d.ts +0 -4
  160. package/dist/transformations/fountain_pen/json.js +0 -123
  161. package/dist/transformations/parse.d.ts +0 -11
  162. package/dist/transformations/parse.js +0 -257
  163. package/dist/transformations/parse_generic.js +0 -644
  164. package/dist/transformations/target/fountain_pen/astn.d.ts +0 -11
  165. package/dist/transformations/target/fountain_pen/astn.js +0 -156
  166. package/dist/transformations/target/fountain_pen/json.d.ts +0 -4
  167. package/dist/transformations/target/fountain_pen/json.js +0 -113
@@ -1,123 +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 () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.Document = exports.Value = void 0;
37
- const pa = __importStar(require("exupery-core-alg"));
38
- const block_1 = require("pareto-fountain-pen/dist/shorthands/block");
39
- const pareto_standard_operations_1 = require("pareto-standard-operations");
40
- const op = {
41
- 'enrich list elements with position information': pareto_standard_operations_1.impure.list['enrich with position information'],
42
- 'serialize with quote delimiter': pareto_standard_operations_1.impure.text['serialize with quote delimiter'],
43
- 'dictionary to list': pareto_standard_operations_1.impure.dictionary['to list, sorted by code point']
44
- };
45
- const String = ($ //FIX should have been a schema type
46
- ) => block_1.l.snippet(op['serialize with quote delimiter']($));
47
- const Value = ($) => {
48
- return pa.cc($, ($) => {
49
- switch ($[0]) {
50
- case 'verbose group': return pa.ss($, ($) => block_1.l.sub([
51
- block_1.l.snippet("{"),
52
- block_1.l.indent([
53
- block_1.b.sub_decorated(op['enrich list elements with position information'](op['dictionary to list']($)).map(($) => block_1.b.nested_line([
54
- String($.value.key),
55
- block_1.l.snippet(": "),
56
- (0, exports.Value)($.value.value),
57
- $['is last'] ? block_1.l.nothing() : block_1.l.snippet(","),
58
- ]))),
59
- ]),
60
- block_1.l.snippet("}"),
61
- ]));
62
- case 'dictionary': return pa.ss($, ($) => block_1.l.sub([
63
- block_1.l.snippet("{"),
64
- block_1.l.indent([
65
- block_1.b.sub_decorated(op['enrich list elements with position information'](op['dictionary to list']($)).map(($) => block_1.b.nested_line([
66
- String($.value.key),
67
- block_1.l.snippet(": "),
68
- (0, exports.Value)($.value.value),
69
- $['is last'] ? block_1.l.nothing() : block_1.l.snippet(","),
70
- ]))),
71
- ]),
72
- block_1.l.snippet("}"),
73
- ]));
74
- case 'list': return pa.ss($, ($) => pa.cc($, ($) => block_1.l.sub([
75
- block_1.l.snippet("["),
76
- block_1.l.sub_decorated(op['enrich list elements with position information']($).map(($) => block_1.l.sub([
77
- (0, exports.Value)($.value),
78
- $['is last'] ? block_1.l.nothing() : block_1.l.snippet(", "),
79
- ]))),
80
- block_1.l.snippet("]"),
81
- ])));
82
- case 'concise group': return pa.ss($, ($) => pa.cc($, ($) => block_1.l.sub([
83
- block_1.l.snippet("["),
84
- block_1.l.sub_decorated(op['enrich list elements with position information']($).map(($) => block_1.l.sub([
85
- (0, exports.Value)($.value),
86
- $['is last'] ? block_1.l.nothing() : block_1.l.snippet(", "),
87
- ]))),
88
- block_1.l.snippet("]"),
89
- ])));
90
- case 'state': return pa.ss($, ($) => block_1.l.sub([
91
- block_1.l.snippet("["),
92
- String($.state),
93
- block_1.l.snippet(", "),
94
- (0, exports.Value)($.value),
95
- block_1.l.snippet("]"),
96
- ]));
97
- case 'optional': return pa.ss($, ($) => pa.cc($, ($) => {
98
- switch ($[0]) {
99
- case 'not set': return pa.ss($, ($) => block_1.l.snippet("[false]"));
100
- case 'set': return pa.ss($, ($) => block_1.l.sub([
101
- block_1.l.snippet("[true, "),
102
- (0, exports.Value)($),
103
- block_1.l.snippet("]"),
104
- ]));
105
- default: return pa.au($[0]);
106
- }
107
- }));
108
- case 'nothing': return pa.ss($, ($) => block_1.l.snippet("null"));
109
- case 'text': return pa.ss($, ($) => {
110
- return $.delimiter[0] === 'none'
111
- ? block_1.l.snippet($.value)
112
- : String($.value);
113
- });
114
- default: return pa.au($[0]);
115
- }
116
- });
117
- };
118
- exports.Value = Value;
119
- const Document = ($) => (0, block_1.block)([block_1.b.nested_line([
120
- (0, exports.Value)($),
121
- ])]);
122
- exports.Document = Document;
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1hdGlvbnMvZm91bnRhaW5fcGVuL2pzb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscURBQXNDO0FBS3RDLHFFQUVrRDtBQUdsRCwyRUFBbUQ7QUFFbkQsTUFBTSxFQUFFLEdBQUc7SUFDUCxnREFBZ0QsRUFBRSxtQ0FBTSxDQUFDLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQztJQUNqRyxnQ0FBZ0MsRUFBRSxtQ0FBTSxDQUFDLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQztJQUMvRSxvQkFBb0IsRUFBRSxtQ0FBTSxDQUFDLFVBQVUsQ0FBQywrQkFBK0IsQ0FBQztDQUMzRSxDQUFBO0FBR0QsTUFBTSxNQUFNLEdBQUcsQ0FDWCxDQUFTLENBQUMsb0NBQW9DO0VBQy9CLEVBQUUsQ0FBQyxTQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFHakUsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFhLEVBQW1CLEVBQUU7SUFDcEQsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ2xCLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDWCxLQUFLLGVBQWUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFNBQUMsQ0FBQyxHQUFHLENBQUM7Z0JBQy9DLFNBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO2dCQUNkLFNBQUMsQ0FBQyxNQUFNLENBQUM7b0JBQ0wsU0FBQyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsZ0RBQWdELENBQUMsQ0FBQyxFQUFFLENBQUMsb0JBQW9CLENB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
@@ -1,11 +0,0 @@
1
- import * as ast from "../generated/interface/schemas/ast/resolved";
2
- import * as parse_result from "../generated/interface/schemas/parse_result/resolved";
3
- import * as pg from "./parse_generic";
4
- export declare const String: (token_iterator: pg.Token_Iterator) => ast.String;
5
- export declare const Document: (token_iterator: pg.Token_Iterator) => ast.Document;
6
- export declare const Elements: (token_iterator: pg.Token_Iterator, end_reached: ($: parse_result.Token_Type) => boolean, end_token: parse_result.Parse_Error._type.SG.parser.expected.L) => ast.Elements;
7
- export declare const Key_Value_Pairs: (token_iterator: pg.Token_Iterator, end_reached: ($: parse_result.Token_Type) => boolean, end_token: parse_result.Parse_Error._type.SG.parser.expected.L) => ast.Key_Value_Pairs;
8
- export declare const Value: (token_iterator: pg.Token_Iterator) => ast.Value;
9
- export declare const Parse_Result: ($: string, $p: {
10
- "tab size": number;
11
- }) => parse_result.Parse_Result;
@@ -1,257 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.Parse_Result = exports.Value = exports.Key_Value_Pairs = exports.Elements = exports.Document = exports.String = void 0;
27
- const _ea = __importStar(require("exupery-core-alg"));
28
- const pg = __importStar(require("./parse_generic"));
29
- /**
30
- * to get from a Annotated_Token to a Structural_Token, the type should be omitted.
31
- * but it is parsd in between the 'start' and 'end' properties, so a little post-processing is needed.
32
- */
33
- const make_structural_token = (token) => {
34
- return {
35
- 'trailing trivia': token['trailing trivia'],
36
- 'range': {
37
- 'start': token['start'],
38
- 'end': token['end']
39
- }
40
- };
41
- };
42
- const String = (token_iterator) => {
43
- const token = token_iterator['get required token'](_ea.array_literal([['a string', null]]));
44
- if (token.type[0] !== 'string') {
45
- return pg.throw_unexpected_token(token, _ea.array_literal([['a string', null]]));
46
- }
47
- token_iterator['consume token']();
48
- return {
49
- 'range': {
50
- 'start': token['start'],
51
- 'end': token['end']
52
- },
53
- 'value': token.type[1].value,
54
- 'type': token.type[1].type,
55
- 'trailing trivia': token['trailing trivia'],
56
- };
57
- };
58
- exports.String = String;
59
- const Document = (token_iterator) => {
60
- return {
61
- 'header': _ea.block(() => {
62
- const token = token_iterator['get required token'](_ea.array_literal([['!', null], ['a value', null]]));
63
- if (token.type[0] !== '!') {
64
- return _ea.not_set();
65
- }
66
- token_iterator['consume token']();
67
- return _ea.set({
68
- '!': make_structural_token(token),
69
- 'value': (0, exports.Value)(token_iterator)
70
- });
71
- }),
72
- 'content': (0, exports.Value)(token_iterator)
73
- };
74
- };
75
- exports.Document = Document;
76
- const Elements = (token_iterator, end_reached, end_token) => {
77
- return _ea.pure.list.build(($i) => {
78
- while (true) {
79
- const current_token = token_iterator['get required token'](_ea.array_literal([end_token, ['a value', null]]));
80
- if (end_reached(current_token.type)) {
81
- return;
82
- }
83
- $i['add element']({
84
- 'value': (0, exports.Value)(token_iterator),
85
- ',': _ea.block(() => {
86
- const current_token = token_iterator['get required token'](_ea.array_literal([end_token, [',', null], ['a value', null]]));
87
- if (current_token.type[0] !== ',') {
88
- return _ea.not_set();
89
- }
90
- token_iterator['consume token']();
91
- return _ea.set(make_structural_token(current_token));
92
- })
93
- });
94
- }
95
- });
96
- };
97
- exports.Elements = Elements;
98
- const Key_Value_Pairs = (token_iterator, end_reached, end_token) => {
99
- return _ea.pure.list.build(($i) => {
100
- while (true) {
101
- const current_token = token_iterator['get required token'](_ea.array_literal([end_token, ['a string', null]]));
102
- if (end_reached(current_token.type)) {
103
- return;
104
- }
105
- $i['add element']({
106
- 'key': (0, exports.String)(token_iterator),
107
- 'value': _ea.block(() => {
108
- const candidate_colon = token_iterator['get required token'](_ea.array_literal([['a string', null], [':', null], end_token]));
109
- if (candidate_colon.type[0] !== ':') {
110
- return _ea.not_set();
111
- }
112
- token_iterator['consume token']();
113
- return _ea.set({
114
- ':': make_structural_token(candidate_colon),
115
- 'value': (0, exports.Value)(token_iterator)
116
- });
117
- }),
118
- ',': _ea.block(() => {
119
- const current_token = token_iterator['get required token'](_ea.array_literal([['a string', null], [',', null], end_token]));
120
- if (current_token.type[0] !== ',') {
121
- return _ea.not_set();
122
- }
123
- token_iterator['consume token']();
124
- return _ea.set(make_structural_token(current_token));
125
- })
126
- });
127
- }
128
- });
129
- };
130
- exports.Key_Value_Pairs = Key_Value_Pairs;
131
- const Value = (token_iterator) => {
132
- const token = token_iterator['get required token'](_ea.array_literal([['a value', null]]));
133
- return {
134
- 'range': {
135
- 'start': token.start,
136
- 'end': token.end
137
- },
138
- 'type': _ea.cc(token.type, ($) => {
139
- switch ($[0]) {
140
- case 'string': return _ea.ss($, ($) => {
141
- return ['string', (0, exports.String)(token_iterator)];
142
- });
143
- case '{': return _ea.ss($, ($) => {
144
- token_iterator['consume token']();
145
- return ['indexed collection', ['dictionary', {
146
- '{': make_structural_token(token),
147
- 'entries': (0, exports.Key_Value_Pairs)(token_iterator, ($) => $[0] === '}', ['}', null]),
148
- '}': _ea.block(() => {
149
- const current_token = token_iterator['get required token'](_ea.array_literal([['}', null]]));
150
- token_iterator['consume token']();
151
- return make_structural_token(current_token);
152
- })
153
- }]];
154
- });
155
- case '(': return _ea.ss($, ($) => {
156
- token_iterator['consume token']();
157
- return ['indexed collection', ['verbose group', {
158
- '(': make_structural_token(token),
159
- 'entries': (0, exports.Key_Value_Pairs)(token_iterator, ($) => $[0] === ')', [')', null]),
160
- ')': _ea.block(() => {
161
- const current_token = token_iterator['get required token'](_ea.array_literal([[')', null]]));
162
- token_iterator['consume token']();
163
- return make_structural_token(current_token);
164
- })
165
- }]];
166
- });
167
- case '[': return _ea.ss($, ($) => {
168
- token_iterator['consume token']();
169
- return ['ordered collection', ['list', {
170
- '[': make_structural_token(token),
171
- 'elements': (0, exports.Elements)(token_iterator, ($) => $[0] === ']', [']', null]),
172
- ']': _ea.block(() => {
173
- const current_token = token_iterator['get required token'](_ea.array_literal([[']', null]]));
174
- token_iterator['consume token']();
175
- return make_structural_token(current_token);
176
- }),
177
- }]];
178
- });
179
- case '<': return _ea.ss($, ($) => {
180
- token_iterator['consume token']();
181
- return ['ordered collection', ['concise group', {
182
- '<': make_structural_token(token),
183
- 'elements': (0, exports.Elements)(token_iterator, ($) => $[0] === '>', ['>', null]),
184
- '>': _ea.block(() => {
185
- const current_token = token_iterator['get required token'](_ea.array_literal([['>', null]]));
186
- token_iterator['consume token']();
187
- return make_structural_token(current_token);
188
- }),
189
- }]];
190
- });
191
- case '@': return _ea.ss($, ($) => {
192
- token_iterator['consume token']();
193
- return ['include', {
194
- '@': make_structural_token(token),
195
- 'path': (0, exports.String)(token_iterator)
196
- }];
197
- });
198
- case '~': return _ea.ss($, ($) => {
199
- token_iterator['consume token']();
200
- return ['not set', {
201
- '~': make_structural_token(token),
202
- }];
203
- });
204
- case '|': return _ea.ss($, ($) => {
205
- token_iterator['consume token']();
206
- return ['tagged value', {
207
- '|': make_structural_token(token),
208
- 'state': (0, exports.String)(token_iterator),
209
- 'value': (0, exports.Value)(token_iterator)
210
- }];
211
- });
212
- case '*': return _ea.ss($, ($) => {
213
- token_iterator['consume token']();
214
- return ['set optional value', {
215
- '*': make_structural_token(token),
216
- 'value': (0, exports.Value)(token_iterator)
217
- }];
218
- });
219
- default:
220
- //unexpected token
221
- return pg.throw_unexpected_token(token, _ea.array_literal([
222
- ['a value', null]
223
- ]));
224
- }
225
- })
226
- };
227
- };
228
- exports.Value = Value;
229
- const Parse_Result = ($, $p) => {
230
- try {
231
- const string_iterator = pg.create_string_iterator($, {
232
- 'tab size': $p['tab size']
233
- });
234
- const tokenizer_result = pg.Tokenizer_Result(null, {
235
- 'string iterator': string_iterator
236
- });
237
- // tokenizer_result.tokens.__for_each(($) => {
238
- // pdev.log_debug_message(`token: ${_ea.cc($.type, ($) => {
239
- // switch ($[0]) {
240
- // case 'string': return _ea.ss($, ($) => `string: ${$.value.value}`)
241
- // default: return `structural: ${$[0]}`
242
- // }
243
- // })}`)
244
- // })
245
- const token_iterator = pg.create_token_iterator(tokenizer_result);
246
- return ['success', (0, exports.Document)(token_iterator)];
247
- }
248
- catch (error) {
249
- if (error instanceof _ea.Error) {
250
- const parse_error = error.type; //this has to be the case
251
- return ['failure', parse_error];
252
- }
253
- return _ea.panic("unknown error thrown");
254
- }
255
- };
256
- exports.Parse_Result = Parse_Result;
257
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHJhbnNmb3JtYXRpb25zL3BhcnNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsc0RBQXVDO0FBTXZDLG9EQUFxQztBQUlyQzs7O0dBR0c7QUFDSCxNQUFNLHFCQUFxQixHQUFHLENBQUMsS0FBbUMsRUFBd0IsRUFBRTtJQUN4RixPQUFPO1FBQ0gsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixDQUFDO1FBQzNDLE9BQU8sRUFBRTtZQUNMLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ3ZCLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDO1NBQ3RCO0tBQ0osQ0FBQTtBQUNMLENBQUMsQ0FBQTtBQUVNLE1BQU0sTUFBTSxHQUFHLENBQUMsY0FBaUMsRUFBYyxFQUFFO0lBQ3BFLE1BQU0sS0FBSyxHQUFHLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUMzRixJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDN0IsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNwRixDQUFDO0lBQ0QsY0FBYyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUE7SUFDakMsT0FBTztRQUNILE9BQU8sRUFBRTtZQUNMLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ3ZCLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDO1NBQ3RCO1FBQ0QsT0FBTyxFQUFFLEtBQUssQ0FB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