astn-core 0.5.150 → 0.5.151

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 (98) hide show
  1. package/dist/api.js +61 -49
  2. package/dist/interface/api.d.ts +48 -36
  3. package/dist/{_implementation → modules/deserialization/implementation}/refiners/annotated_characters/list_of_characters.d.ts +3 -3
  4. package/dist/modules/deserialization/implementation/refiners/annotated_characters/list_of_characters.js +68 -0
  5. package/dist/{_implementation → modules/deserialization/implementation}/refiners/parse_tree/list_of_characters.d.ts +3 -3
  6. package/dist/modules/deserialization/implementation/refiners/parse_tree/list_of_characters.js +23 -0
  7. package/dist/{_implementation → modules/deserialization/implementation}/refiners/parse_tree/tokenizer_result.d.ts +5 -5
  8. package/dist/modules/deserialization/implementation/refiners/parse_tree/tokenizer_result.js +211 -0
  9. package/dist/{_implementation → modules/deserialization/implementation}/refiners/token/annotated_character.d.ts +4 -4
  10. package/dist/{_implementation → modules/deserialization/implementation}/refiners/token/annotated_character.js +1 -1
  11. package/dist/{_implementation → modules/deserialization/implementation}/serializers/location.d.ts +2 -2
  12. package/dist/modules/deserialization/implementation/serializers/location.js +33 -0
  13. package/dist/{_implementation → modules/deserialization/implementation}/serializers/parse_tree_deserialization.d.ts +1 -1
  14. package/dist/modules/deserialization/implementation/serializers/parse_tree_deserialization.js +63 -0
  15. package/dist/{_implementation → modules/deserialization/implementation}/transformers/parse_tree/full_value_range.d.ts +2 -2
  16. package/dist/modules/deserialization/implementation/transformers/parse_tree/full_value_range.js +70 -0
  17. package/dist/{_implementation → modules/deserialization/implementation}/transformers/parse_tree/start_token_range.d.ts +2 -2
  18. package/dist/modules/deserialization/implementation/transformers/parse_tree/start_token_range.js +34 -0
  19. package/dist/{_implementation/transformers/unmarshalling_deprecated → modules/deserialization/implementation/transformers/parse_tree_deserialization}/location.d.ts +2 -2
  20. package/dist/modules/deserialization/implementation/transformers/parse_tree_deserialization/location.js +20 -0
  21. package/dist/{private_schemas → modules/deserialization/schemas}/annotated_characters.d.ts +1 -1
  22. package/dist/modules/deserialization/schemas/annotated_characters.js +2 -0
  23. package/dist/modules/deserialization/schemas/full_value_range.js +2 -0
  24. package/dist/modules/deserialization/schemas/list_of_characters.js +2 -0
  25. package/dist/{interface → modules/deserialization}/schemas/location.js +1 -1
  26. package/dist/modules/deserialization/schemas/location_serialization.js +2 -0
  27. package/dist/{interface → modules/deserialization}/schemas/parse_tree.js +1 -1
  28. package/dist/modules/deserialization/schemas/parse_tree_deserialization.js +4 -0
  29. package/dist/modules/deserialization/schemas/start_token_range.js +2 -0
  30. package/dist/{interface → modules/deserialization}/schemas/token.js +1 -1
  31. package/dist/{_implementation → modules/serialization/implementation}/serializers/primitives.d.ts +1 -1
  32. package/dist/modules/serialization/implementation/serializers/primitives.js +87 -0
  33. package/dist/{_implementation → modules/serialization/implementation}/transformers/sealed_target/paragraph.d.ts +2 -2
  34. package/dist/modules/serialization/implementation/transformers/sealed_target/paragraph.js +88 -0
  35. package/dist/{_implementation → modules/serialization/implementation}/transformers/sealed_target/serialized_paragraph.d.ts +2 -2
  36. package/dist/modules/serialization/implementation/transformers/sealed_target/serialized_paragraph.js +6 -0
  37. package/dist/{interface → modules/serialization}/schemas/paragraph.js +1 -1
  38. package/dist/{interface → modules/serialization}/schemas/paragraph_serialization.js +1 -1
  39. package/dist/{private_schemas → modules/serialization/schemas}/primitives.js +1 -1
  40. package/dist/{interface → modules/serialization}/schemas/sealed_target.js +1 -1
  41. package/dist/{interface → modules/serialization}/schemas/serialized_paragraph.js +1 -1
  42. package/dist/{_implementation → modules/unmarshalling/implementation}/refiners/unmarshalled/parse_tree.d.ts +3 -3
  43. package/dist/modules/unmarshalling/implementation/refiners/unmarshalled/parse_tree.js +253 -0
  44. package/dist/{_implementation → modules/unmarshalling/implementation}/serializers/unmarshalling_deprecated.d.ts +1 -1
  45. package/dist/modules/unmarshalling/implementation/serializers/unmarshalling_deprecated.js +12 -0
  46. package/dist/{_implementation → modules/unmarshalling/implementation}/serializers/value_unmarshalling.d.ts +1 -1
  47. package/dist/modules/unmarshalling/implementation/serializers/value_unmarshalling.js +74 -0
  48. package/dist/{_implementation/transformers/parse_tree_deserialization → modules/unmarshalling/implementation/transformers/unmarshalling_deprecated}/location.d.ts +2 -2
  49. package/dist/modules/unmarshalling/implementation/transformers/unmarshalling_deprecated/location.js +12 -0
  50. package/dist/{_implementation → modules/unmarshalling/implementation}/transformers/value_unmarshalling/location.d.ts +2 -2
  51. package/dist/modules/unmarshalling/implementation/transformers/value_unmarshalling/location.js +3 -0
  52. package/dist/modules/unmarshalling/schemas/parse_tree.d.ts +1 -0
  53. package/dist/modules/unmarshalling/schemas/parse_tree.js +2 -0
  54. package/dist/{interface → modules/unmarshalling}/schemas/unmarshalled_value.d.ts +1 -1
  55. package/dist/modules/unmarshalling/schemas/unmarshalled_value.js +2 -0
  56. package/dist/{interface → modules/unmarshalling}/schemas/unmarshalling_deprecated.d.ts +1 -1
  57. package/dist/modules/unmarshalling/schemas/unmarshalling_deprecated.js +2 -0
  58. package/dist/{interface → modules/unmarshalling}/schemas/value_unmarshalling.d.ts +1 -1
  59. package/dist/modules/unmarshalling/schemas/value_unmarshalling.js +2 -0
  60. package/package.json +1 -1
  61. package/dist/_implementation/refiners/annotated_characters/list_of_characters.js +0 -68
  62. package/dist/_implementation/refiners/parse_tree/list_of_characters.js +0 -23
  63. package/dist/_implementation/refiners/parse_tree/tokenizer_result.js +0 -211
  64. package/dist/_implementation/refiners/unmarshalled/parse_tree.js +0 -253
  65. package/dist/_implementation/serializers/location.js +0 -33
  66. package/dist/_implementation/serializers/parse_tree_deserialization.js +0 -63
  67. package/dist/_implementation/serializers/primitives.js +0 -87
  68. package/dist/_implementation/serializers/unmarshalling_deprecated.js +0 -12
  69. package/dist/_implementation/serializers/value_unmarshalling.js +0 -74
  70. package/dist/_implementation/transformers/parse_tree/full_value_range.js +0 -70
  71. package/dist/_implementation/transformers/parse_tree/start_token_range.js +0 -34
  72. package/dist/_implementation/transformers/parse_tree_deserialization/location.js +0 -20
  73. package/dist/_implementation/transformers/sealed_target/paragraph.js +0 -88
  74. package/dist/_implementation/transformers/sealed_target/serialized_paragraph.js +0 -6
  75. package/dist/_implementation/transformers/unmarshalling_deprecated/location.js +0 -12
  76. package/dist/_implementation/transformers/value_unmarshalling/location.js +0 -3
  77. package/dist/interface/schemas/full_value_range.js +0 -2
  78. package/dist/interface/schemas/list_of_characters.js +0 -2
  79. package/dist/interface/schemas/location_serialization.js +0 -2
  80. package/dist/interface/schemas/parse_tree_deserialization.js +0 -4
  81. package/dist/interface/schemas/start_token_range.js +0 -2
  82. package/dist/interface/schemas/unmarshalled_value.js +0 -2
  83. package/dist/interface/schemas/unmarshalling_deprecated.js +0 -2
  84. package/dist/interface/schemas/value_unmarshalling.js +0 -2
  85. package/dist/private_schemas/annotated_characters.js +0 -2
  86. /package/dist/{interface → modules/deserialization}/schemas/full_value_range.d.ts +0 -0
  87. /package/dist/{interface → modules/deserialization}/schemas/list_of_characters.d.ts +0 -0
  88. /package/dist/{interface → modules/deserialization}/schemas/location.d.ts +0 -0
  89. /package/dist/{interface → modules/deserialization}/schemas/location_serialization.d.ts +0 -0
  90. /package/dist/{interface → modules/deserialization}/schemas/parse_tree.d.ts +0 -0
  91. /package/dist/{interface → modules/deserialization}/schemas/parse_tree_deserialization.d.ts +0 -0
  92. /package/dist/{interface → modules/deserialization}/schemas/start_token_range.d.ts +0 -0
  93. /package/dist/{interface → modules/deserialization}/schemas/token.d.ts +0 -0
  94. /package/dist/{interface → modules/serialization}/schemas/paragraph.d.ts +0 -0
  95. /package/dist/{interface → modules/serialization}/schemas/paragraph_serialization.d.ts +0 -0
  96. /package/dist/{private_schemas → modules/serialization/schemas}/primitives.d.ts +0 -0
  97. /package/dist/{interface → modules/serialization}/schemas/sealed_target.d.ts +0 -0
  98. /package/dist/{interface → modules/serialization}/schemas/serialized_paragraph.d.ts +0 -0
@@ -1,211 +0,0 @@
1
- import * as p_ from 'pareto-core/implementation/refiner';
2
- import p_iterate from 'pareto-core/implementation/refiner/specials/iterate';
3
- import p_unreachable_code_path from 'pareto-core/implementation/transformer/specials/unreachable_code_path';
4
- export const create_missing_token = ($, $p) => ({
5
- 'expected': $,
6
- 'cause': ['missing token', {
7
- 'end': $p['end location'],
8
- }]
9
- });
10
- export const create_unexpected_token = ($, $p) => ({
11
- 'expected': $,
12
- 'cause': ['unexpected token', {
13
- 'found': $p.found,
14
- }]
15
- });
16
- export const Value = (iterator, abort) => ({
17
- 'type': iterator.peek_with_expectation(p_.literal.list([
18
- ['any value', null]
19
- ]), ($, expected) => abort(create_missing_token(expected, { 'end location': $ })), ($, expected) => {
20
- const token = $;
21
- return p_.from.state($.type).decide(($) => {
22
- switch ($[0]) {
23
- case 'text': return p_.option($, ($) => ['concrete',
24
- ['text', Text(iterator, abort, { 'token': token, 'text': $ })]
25
- ]);
26
- case '{': return p_.option($, ($) => ['concrete', ['dictionary', {
27
- '{': Guaranteed_Structural_Token(iterator, abort, { 'token': token }),
28
- 'entries': ID_Value_Pairs(iterator, abort, { 'end token': ['}', null] }),
29
- '}': Possible_Structural_Token(iterator, abort, { 'expected token': ['}', null] }),
30
- }]]);
31
- case '(': return p_.option($, ($) => ['concrete', ['group', ['verbose', {
32
- '(': Guaranteed_Structural_Token(iterator, abort, { 'token': token }),
33
- 'properties': ID_Value_Pairs(iterator, abort, { 'end token': [')', null] }),
34
- ')': Possible_Structural_Token(iterator, abort, { 'expected token': [')', null] })
35
- }]]]);
36
- case '[': return p_.option($, ($) => ['concrete', ['list', {
37
- '[': Guaranteed_Structural_Token(iterator, abort, { 'token': token }),
38
- 'items': Items(iterator, abort, { 'end token': [']', null] }),
39
- ']': Possible_Structural_Token(iterator, abort, { 'expected token': [']', null] })
40
- }]]);
41
- case '<': return p_.option($, ($) => ['concrete', ['group', ['concise', {
42
- '<': Guaranteed_Structural_Token(iterator, abort, { 'token': token }),
43
- 'properties': Items(iterator, abort, { 'end token': ['>', null] }),
44
- '>': Possible_Structural_Token(iterator, abort, { 'expected token': ['>', null] })
45
- }]]]);
46
- case '@': return p_.option($, ($) => ['include', {
47
- '@': Guaranteed_Structural_Token(iterator, abort, { 'token': token }),
48
- 'path': iterator.peek_with_expectation(p_.literal.list([
49
- ['a text value', null]
50
- ]), (end_info, expected) => abort(create_missing_token(expected, { 'end location': end_info })), ($, expected) => $.type[0] === 'text'
51
- ? Text(iterator, abort, { 'token': $, 'text': $.type[1] })
52
- : abort(create_unexpected_token(expected, { 'found': $ })))
53
- }]);
54
- case '~': return p_.option($, ($) => ['concrete', ['nothing', {
55
- '~': Guaranteed_Structural_Token(iterator, abort, { 'token': token }),
56
- }]]);
57
- case '|': return p_.option($, ($) => ['concrete', ['state', {
58
- '|': Guaranteed_Structural_Token(iterator, abort, { 'token': token }),
59
- 'status': iterator.peek_with_expectation(p_.literal.list([
60
- ['a text value', null],
61
- ['#', null]
62
- ]), ($, expected) => abort(create_missing_token(expected, { 'end location': $ })), ($, expected) => {
63
- const token = $;
64
- return p_.from.state($.type).decide(($) => {
65
- switch ($[0]) {
66
- case 'text': return p_.option($, ($) => ['set', {
67
- 'option': Text(iterator, abort, { 'token': token, 'text': $ }),
68
- 'value': Value(iterator, abort)
69
- }]);
70
- case '#': return p_.option($, ($) => ['missing', {
71
- '#': Guaranteed_Structural_Token(iterator, abort, { 'token': token }),
72
- }]);
73
- default: return abort(create_unexpected_token(expected, { 'found': token }));
74
- }
75
- });
76
- })
77
- }]]);
78
- case '_': return p_.option($, ($) => ['concrete', ['optional', ['not set', {
79
- '_': Guaranteed_Structural_Token(iterator, abort, { 'token': token }),
80
- }]]]);
81
- case '*': return p_.option($, ($) => ['concrete', ['optional', ['set', {
82
- '*': Guaranteed_Structural_Token(iterator, abort, { 'token': token }),
83
- 'value': Value(iterator, abort)
84
- }]]]);
85
- case '#': return p_.option($, ($) => ['missing', {
86
- '#': Guaranteed_Structural_Token(iterator, abort, { 'token': token }),
87
- }]);
88
- //unexpected tokens
89
- // case '!': return p_.option($, ($) => iterator.unexpected_token(token, p_.literal.list([
90
- // ['any value', null]
91
- // ])))
92
- // case ':': return p_.option($, ($) => iterator.unexpected_token(token, p_.literal.list([
93
- // ['any value', null]
94
- // ])))
95
- // case ')': return p_.option($, ($) => iterator.unexpected_token(token, p_.literal.list([
96
- // ['any value', null]
97
- // ])))
98
- // case '>': return p_.option($, ($) => iterator.unexpected_token(token, p_.literal.list([
99
- // ['any value', null]
100
- // ])))
101
- // case ']': return p_.option($, ($) => iterator.unexpected_token(token, p_.literal.list([
102
- // ['any value', null]
103
- // ])))
104
- // case '}': return p_.option($, ($) => iterator.unexpected_token(token, p_.literal.list([
105
- // ['any value', null]
106
- // ])))
107
- default: return abort(create_unexpected_token(expected, { 'found': token }));
108
- }
109
- });
110
- })
111
- });
112
- export const Guaranteed_Structural_Token = (iterator, abort, $p) => {
113
- iterator.consume(() => p_unreachable_code_path("guaranteed"), () => null); //make this a 'discard' operation
114
- return {
115
- 'trailing trivia': $p.token['trailing trivia'],
116
- 'range': {
117
- 'start': $p.token['start'],
118
- 'end': $p.token['end']
119
- }
120
- };
121
- };
122
- export const Possible_Structural_Token = (iterator, abort, $p) => iterator.peek_with_expectation(p_.literal.list([
123
- $p['expected token']
124
- ]), ($, expected) => abort(create_missing_token(expected, { 'end location': $ })), ($, expected) => {
125
- const token = $;
126
- if ($.type[0] !== $p['expected token'][0]) {
127
- return abort(create_unexpected_token(expected, { 'found': token }));
128
- }
129
- else {
130
- return iterator.consume(//discard
131
- () => p_unreachable_code_path("peeked (with 'expected')"), () => ({
132
- 'trailing trivia': token['trailing trivia'],
133
- 'range': {
134
- 'start': token['start'],
135
- 'end': token['end']
136
- }
137
- }));
138
- }
139
- });
140
- export const Text = (iterator, abort, $p) => {
141
- return iterator.consume(() => p_unreachable_code_path("guaranteed (it has a token as parameter)"), ($) => ({
142
- 'range': {
143
- 'start': $['start'],
144
- 'end': $['end']
145
- },
146
- 'token': $p.text,
147
- 'trailing trivia': $['trailing trivia'],
148
- }));
149
- };
150
- export const Items = (iterator, abort, $p) => iterator.build_list({
151
- has_more_items: (current_token) => current_token.type[0] !== $p['end token'][0],
152
- handle: () => iterator.peek(//for the proper error message (any value or end token) we peek instead of processing the token directly
153
- ($) => abort(create_missing_token(p_.literal.list([
154
- ['any value', null],
155
- $p['end token']
156
- ]), { 'end location': $ })), ($) => ({
157
- 'value': Value(iterator, abort)
158
- })),
159
- on_no_progression: () => p_unreachable_code_path("'handle' is expected to always consume at least one token, so this should never happen"),
160
- });
161
- export const ID_Value_Pairs = (iterator, abort, $p) => iterator.build_list({
162
- has_more_items: ($) => $.type[0] !== $p['end token'][0],
163
- handle: () => ({
164
- 'id': iterator.peek(//to get a better error message (a text value or end token) we peek instead of processing the Text token directly
165
- () => p_unreachable_code_path("has more items is true"), ($) => $.type[0] === 'text'
166
- ? Text(iterator, abort, {
167
- 'token': $,
168
- 'text': $.type[1]
169
- })
170
- : abort(create_unexpected_token(p_.literal.list([
171
- ['a text value', null],
172
- $p['end token'],
173
- ]), { 'found': $ }))),
174
- 'assignment': iterator.peek_with_expectation(p_.literal.list([
175
- ['a text value', null],
176
- [':', null],
177
- $p['end token']
178
- ]), ($, expected) => abort(create_missing_token(expected, { 'end location': $ })), ($, expected) => {
179
- const token = $;
180
- return p_.from.state($.type).decide(($) => {
181
- switch ($[0]) {
182
- case 'text': return p_.option($, ($) => p_.literal.not_set());
183
- case ':': return p_.option($, ($) => p_.literal.set({
184
- ':': Guaranteed_Structural_Token(iterator, abort, { 'token': token }),
185
- 'value': p_.literal.set(Value(iterator, abort)) //FIXME determine if it is set... if the next token is a text, we will need to do an extra lookahead if there is a colon
186
- }));
187
- default: return $[0] === $p['end token'][0]
188
- ? p_.literal.not_set()
189
- : abort(create_unexpected_token(expected, { 'found': token }));
190
- }
191
- });
192
- }),
193
- // ',': p_.literal.not_set() //FIXME implement optional comma (or keep it as 'whitespace' but then remove this property)
194
- }),
195
- on_no_progression: () => p_unreachable_code_path("'handle' is expected to always consume at least one token, so this should never happen"),
196
- });
197
- export const Document = ($, abort) => p_iterate({
198
- list: $.tokens,
199
- end_info: $.end,
200
- assign: (iterator) => ({
201
- 'header': iterator.peek(($) => p_.literal.not_set(), ($) => $.type[0] === '!' //header token
202
- ? iterator.consume(() => p_unreachable_code_path("peeked (with 'expected')"), ($) => p_.literal.set({
203
- '!': Guaranteed_Structural_Token(iterator, abort, { 'token': $ }),
204
- 'value': Value(iterator, abort)
205
- }))
206
- : p_.literal.not_set()),
207
- 'content': Value(iterator, abort)
208
- }),
209
- on_dangling_item: null, //FIX enable checking for too many tokens
210
- });
211
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5pemVyX3Jlc3VsdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9faW1wbGVtZW50YXRpb24vcmVmaW5lcnMvcGFyc2VfdHJlZS90b2tlbml6ZXJfcmVzdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLE1BQU0sb0NBQW9DLENBQUE7QUFFeEQsT0FBTyxTQUFTLE1BQU0scURBQXFELENBQUE7QUFDM0UsT0FBTyx1QkFBdUIsTUFBTSx1RUFBdUUsQ0FBQTtBQXdGM0csTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBTTdCLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNaLFVBQVUsRUFBRSxDQUFDO0lBQ2IsT0FBTyxFQUFFLENBQUMsZUFBZSxFQUFFO1lBQ3ZCLEtBQUssRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDO1NBQzVCLENBQUM7Q0FDTCxDQUFDLENBQUE7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FNaEMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1osVUFBVSxFQUFFLENBQUM7SUFDYixPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRTtZQUMxQixPQUFPLEVBQUUsRUFBRSxDQUFDLEtBQUs7U0FDcEIsQ0FBQztDQUNMLENBQUMsQ0FBQTtBQUVGLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBdUIsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzNELE1BQU0sRUFBRSxRQUFRLENBQUMscUJBQXFCLENBQ2xDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFvQjtRQUMvQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUM7S0FDdEIsQ0FBQyxFQUNGLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLFFBQVEsRUFBRSxFQUFF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
@@ -1,253 +0,0 @@
1
- import * as p_ from 'pareto-core/implementation/refiner';
2
- import * as p_t from 'pareto-core/implementation/transformer';
3
- import p_assert from 'pareto-core/implementation/refiner/specials/assert';
4
- //dependencies
5
- import * as t_parse_tree_to_location from "../../transformers/parse_tree/start_token_range.js";
6
- export const Dictionary = ($, abort) => {
7
- const value = $;
8
- return p_.from.state($.type).decide(($) => {
9
- switch ($[0]) {
10
- case 'concrete': return p_.option($, ($) => p_.from.state($).decide(($) => {
11
- switch ($[0]) {
12
- case 'dictionary': return p_.option($, ($) => ({
13
- 'value': value,
14
- 'entries': p_.from.list($.entries).convert_to_dictionary(($) => $.id.token.value, ($) => $, {
15
- duplicate_id: ($) => abort({
16
- 'type': ['dictionary', ['duplicate entry', $]],
17
- 'range': t_parse_tree_to_location.Value(value),
18
- })
19
- })
20
- }));
21
- default: return abort({
22
- 'type': ['wrong value type', {
23
- 'expected': ['dictionary', null],
24
- }],
25
- 'range': t_parse_tree_to_location.Value(value),
26
- });
27
- }
28
- }));
29
- default: return abort({
30
- 'type': ['wrong value type', {
31
- 'expected': ['dictionary', null],
32
- }],
33
- 'range': t_parse_tree_to_location.Value(value),
34
- });
35
- }
36
- });
37
- };
38
- export const List = ($, abort) => {
39
- const value = $;
40
- return p_.from.state($.type).decide(($) => {
41
- switch ($[0]) {
42
- case 'concrete': return p_.option($, ($) => p_.from.state($).decide(($) => {
43
- switch ($[0]) {
44
- case 'list': return p_.option($, ($) => ({
45
- 'value': value,
46
- 'items': $.items
47
- }));
48
- default: return abort({
49
- 'type': ['wrong value type', {
50
- 'expected': ['list', null],
51
- }],
52
- 'range': t_parse_tree_to_location.Value(value),
53
- });
54
- }
55
- }));
56
- default: return abort({
57
- 'type': ['wrong value type', {
58
- 'expected': ['list', null],
59
- }],
60
- 'range': t_parse_tree_to_location.Value(value),
61
- });
62
- }
63
- });
64
- };
65
- export const Nothing = ($, abort) => {
66
- const value = $;
67
- return p_.from.state($.type).decide(($) => {
68
- switch ($[0]) {
69
- case 'concrete': return p_.option($, ($) => p_.from.state($).decide(($) => {
70
- switch ($[0]) {
71
- case 'nothing': return p_.option($, ($) => ({
72
- 'value': value,
73
- 'null': null
74
- }));
75
- default: return abort({
76
- 'type': ['wrong value type', {
77
- 'expected': ['nothing', null],
78
- }],
79
- 'range': t_parse_tree_to_location.Value(value),
80
- });
81
- }
82
- }));
83
- default: return abort({
84
- 'type': ['wrong value type', {
85
- 'expected': ['nothing', null],
86
- }],
87
- 'range': t_parse_tree_to_location.Value(value),
88
- });
89
- }
90
- });
91
- };
92
- export const Optional = ($, abort) => {
93
- const value = $;
94
- return p_.from.state($.type).decide(($) => {
95
- switch ($[0]) {
96
- case 'concrete': return p_.option($, ($) => p_.from.state($).decide(($) => {
97
- switch ($[0]) {
98
- case 'optional': return p_.option($, ($) => p_.from.state($).decide(($) => {
99
- switch ($[0]) {
100
- case 'set': return p_.option($, ($) => ({
101
- 'value': value,
102
- 'optional': p_.literal.set($.value)
103
- }));
104
- case 'not set': return p_.option($, ($) => ({
105
- 'value': value,
106
- 'optional': p_.literal.not_set()
107
- }));
108
- default: return abort({
109
- 'type': ['wrong value type', {
110
- 'expected': ['optional', null],
111
- }],
112
- 'range': t_parse_tree_to_location.Value(value),
113
- });
114
- }
115
- }));
116
- default: return abort({
117
- 'type': ['wrong value type', {
118
- 'expected': ['optional', null],
119
- }],
120
- 'range': t_parse_tree_to_location.Value(value),
121
- });
122
- }
123
- }));
124
- default: return abort({
125
- 'type': ['wrong value type', {
126
- 'expected': ['optional', null],
127
- }],
128
- 'range': t_parse_tree_to_location.Value(value),
129
- });
130
- }
131
- });
132
- };
133
- export const Property = ($, abort, $p) => {
134
- return p_.from.dictionary($.properties).get_entry($p.id, {
135
- no_such_entry: () => abort({
136
- 'range': t_parse_tree_to_location.Value($.value),
137
- 'type': ['type', ['missing property', $p.id]]
138
- })
139
- });
140
- };
141
- export const State = ($, abort) => {
142
- const value = $;
143
- return p_.from.state($.type).decide(($) => {
144
- switch ($[0]) {
145
- case 'concrete': return p_.option($, ($) => p_.from.state($).decide(($) => {
146
- switch ($[0]) {
147
- case 'state': return p_.option($, ($) => p_.from.state($.status).decide(($) => {
148
- switch ($[0]) {
149
- case 'set': return p_.option($, ($) => $);
150
- default: return abort({
151
- 'type': ['wrong value type', {
152
- 'expected': ['state', null],
153
- }],
154
- 'range': t_parse_tree_to_location.Value(value),
155
- });
156
- }
157
- }));
158
- default: return abort({
159
- 'type': ['wrong value type', {
160
- 'expected': ['state', null],
161
- }],
162
- 'range': t_parse_tree_to_location.Value(value),
163
- });
164
- }
165
- }));
166
- default: return abort({
167
- 'type': ['wrong value type', {
168
- 'expected': ['state', null],
169
- }],
170
- 'range': t_parse_tree_to_location.Value(value),
171
- });
172
- }
173
- });
174
- };
175
- export const Text = ($, abort) => {
176
- const value = $;
177
- return p_.from.state($.type).decide(($) => {
178
- switch ($[0]) {
179
- case 'concrete': return p_.option($, ($) => p_.from.state($).decide(($) => {
180
- switch ($[0]) {
181
- case 'text': return p_.option($, ($) => $);
182
- default: return abort({
183
- 'type': ['wrong value type', {
184
- 'expected': ['text', null],
185
- }],
186
- 'range': t_parse_tree_to_location.Value(value),
187
- });
188
- }
189
- }));
190
- default: return abort({
191
- 'type': ['wrong value type', {
192
- 'expected': ['text', null],
193
- }],
194
- 'range': t_parse_tree_to_location.Value(value),
195
- });
196
- }
197
- });
198
- };
199
- export const Verbose_Group = ($, abort, $p) => {
200
- const value = $;
201
- return {
202
- 'value': $,
203
- 'properties': p_.from.state($.type).decide(($) => {
204
- switch ($[0]) {
205
- case 'concrete': return p_.option($, ($) => p_.from.state($).decide(($) => {
206
- switch ($[0]) {
207
- case 'group': return p_.option($, ($) => p_.from.state($).decide(($) => {
208
- switch ($[0]) {
209
- // case 'concise':
210
- case 'verbose': return p_.option($, ($) => {
211
- const xxx = p_.from.list($.properties).convert_to_dictionary(($) => $.id.token.value, ($) => $, {
212
- duplicate_id: ($) => abort({
213
- 'type': ['type', ['duplicate property', $]],
214
- 'range': t_parse_tree_to_location.Value(value),
215
- })
216
- });
217
- return p_assert(abort, () => {
218
- return p_t.from.dictionary(p_t.from.dictionary(p_t.from.dictionary(xxx).join($p['expected properties'], ($, other, id) => p_t.from.optional(other).decide(($) => p_.literal.not_set(), () => p_.literal.set($.id.range)))).map_optionally(($) => $)).on_has_entries(($) => p_.literal.set({
219
- 'range': t_parse_tree_to_location.Value(value),
220
- 'type': ['type', ['unexpected properties', {
221
- 'found': $,
222
- 'expected': $p['expected properties'],
223
- }]]
224
- }), () => p_.literal.not_set());
225
- }, () => xxx);
226
- });
227
- default: return abort({
228
- 'type': ['wrong value type', {
229
- 'expected': ['verbose group', null],
230
- }],
231
- 'range': t_parse_tree_to_location.Value(value),
232
- });
233
- }
234
- }));
235
- default: return abort({
236
- 'type': ['wrong value type', {
237
- 'expected': ['verbose group', null],
238
- }],
239
- 'range': t_parse_tree_to_location.Value(value),
240
- });
241
- }
242
- }));
243
- default: return abort({
244
- 'type': ['wrong value type', {
245
- 'expected': ['verbose group', null],
246
- }],
247
- 'range': t_parse_tree_to_location.Value(value),
248
- });
249
- }
250
- })
251
- };
252
- };
253
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VfdHJlZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9faW1wbGVtZW50YXRpb24vcmVmaW5lcnMvdW5tYXJzaGFsbGVkL3BhcnNlX3RyZWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQTtBQUN4RCxPQUFPLEtBQUssR0FBRyxNQUFNLHdDQUF3QyxDQUFBO0FBRTdELE9BQU8sUUFBUSxNQUFNLG9EQUFvRCxDQUFBO0FBaUV6RSxjQUFjO0FBQ2QsT0FBTyxLQUFLLHdCQUF3QixNQUFNLG9EQUFvRCxDQUFBO0FBRTlGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBNEIsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUU7SUFDNUQsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFBO0lBQ2YsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUMvQixDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ0YsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNYLEtBQUssVUFBVSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUMvRCxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNGLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ1gsS0FBSyxZQUFZLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFvQixFQUFFLENBQUMsQ0FBQzt3QkFDN0QsT0FBTyxFQUFFLEtBQUs7d0JBQ2QsU0FBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFB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
@@ -1,33 +0,0 @@
1
- import * as p_ from 'pareto-core/implementation/serializer';
2
- import p_list_from_text from 'pareto-core/implementation/refiner/specials/list_from_text';
3
- //shorthands
4
- import * as sh from "pareto-fountain-pen/shorthands/rich_phrase/deprecated";
5
- //dependencies
6
- import * as ser_rich_phrase from "pareto-fountain-pen/_implementation/serializers/rich_phrase";
7
- const temp_serialize_number = (n) => {
8
- return `${n}`;
9
- };
10
- export const Range = ($, $p) => ser_rich_phrase.Phrase(sh.ph.composed([
11
- sh.ph.text(temp_serialize_number($.start.relative.line + p_.from.state($p['character location reporting']).decide(($) => ($[0] === 'zero based' ? 0 : 1)))),
12
- sh.ph.text(":"),
13
- sh.ph.text(temp_serialize_number($.start.relative.column + p_.from.state($p['character location reporting']).decide(($) => ($[0] === 'zero based' ? 0 : 1)))),
14
- sh.ph.text("-"),
15
- sh.ph.text(temp_serialize_number($.end.relative.line + p_.from.state($p['character location reporting']).decide(($) => ($[0] === 'zero based' ? 0 : 1)))),
16
- sh.ph.text(":"),
17
- sh.ph.text(temp_serialize_number($.end.relative.column + p_.from.state($p['character location reporting']).decide(($) => ($[0] === 'zero based' ? 0 : 1))))
18
- ]));
19
- export const Possible_Range = ($, $p) => p_.from.state($).decide(($) => {
20
- switch ($[0]) {
21
- case 'range': return p_.option($, ($) => Range($, $p));
22
- case 'end of document': return p_.option($, ($) => Location($.end, $p));
23
- default: return p_.exhaustive($[0]);
24
- }
25
- });
26
- export const Location = ($, $p) => {
27
- return ser_rich_phrase.Phrase(sh.ph.composed([
28
- sh.ph.text(temp_serialize_number($.relative.line + p_.from.state($p['character location reporting']).decide(($) => ($[0] === 'zero based' ? 0 : 1)))),
29
- sh.ph.text(":"),
30
- sh.ph.text(temp_serialize_number($.relative.column + p_.from.state($p['character location reporting']).decide(($) => ($[0] === 'zero based' ? 0 : 1)))),
31
- ]));
32
- };
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvX2ltcGxlbWVudGF0aW9uL3NlcmlhbGl6ZXJzL2xvY2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLE1BQU0sdUNBQXVDLENBQUE7QUFDM0QsT0FBTyxnQkFBZ0IsTUFBTSw0REFBNEQsQ0FBQTtBQXNCekYsWUFBWTtBQUNaLE9BQU8sS0FBSyxFQUFFLE1BQU0sdURBQXVELENBQUE7QUFFM0UsY0FBYztBQUNkLE9BQU8sS0FBSyxlQUFlLE1BQU0sNkRBQTZELENBQUE7QUFFOUYsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLENBQVMsRUFBVSxFQUFFO0lBQ2hELE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQTtBQUNqQixDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQXVCLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQztJQUN0RixFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLDhCQUE4QixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQzdHLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNmLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxL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
@@ -1,63 +0,0 @@
1
- import * as p_ from 'pareto-core/implementation/serializer';
2
- import p_text_from_list from 'pareto-core/implementation/transformer/specials/text_from_list';
3
- //schemas
4
- import * as s_out from "pareto-fountain-pen/interface/schemas/rich_phrase";
5
- //shorthands
6
- import * as sh from "pareto-fountain-pen/shorthands/rich_phrase/deprecated";
7
- import * as ser_rich_phrase from "pareto-fountain-pen/_implementation/serializers/rich_phrase";
8
- export const Error = ($) => {
9
- const Parse_Error_Type = ($) => p_.from.state($).decide(($) => {
10
- switch ($[0]) {
11
- case 'lexer': return p_.option($, ($) => p_.from.state($.expected).decide(($) => {
12
- switch ($[0]) {
13
- case 'unicode character': return sh.ph.text("found invalid unicode escape sequence");
14
- case 'no end of line in text': return p_.option($, ($) => sh.ph.text("no end of line in text"));
15
- case 'escape character': return p_.option($, ($) => sh.ph.composed([
16
- sh.ph.text("escape character (), but found "),
17
- p_.from.optional($.found).decide(($) => sh.ph.text(p_text_from_list(p_.literal.list([$]), ($) => $)), () => sh.ph.text("nothing")),
18
- ]));
19
- case 'block comment termination': return p_.option($, ($) => sh.ph.text("block comment termination: */"));
20
- case 'text termination': return p_.option($, ($) => sh.ph.text("text delimiter: \" or ' or `"));
21
- default: return p_.exhaustive($[0]);
22
- }
23
- }));
24
- case 'parser': return p_.option($, ($) => sh.ph.composed([
25
- sh.ph.text("expected "),
26
- sh.ph.rich_phrase(p_.from.list($.expected).map(($) => sh.ph.text(p_.from.state($).decide(($) => {
27
- switch ($[0]) {
28
- case '!': return "'!'";
29
- case ')': return "')'";
30
- case ',': return "','";
31
- case ':': return "':'";
32
- case '>': return "'>'";
33
- case '@': return "'@'";
34
- case ']': return "']'";
35
- case 'a text value': return "a text value";
36
- case 'any value': return "any value";
37
- case '}': return "'}'";
38
- case '#': return "'#'";
39
- default: return p_.exhaustive($[0]);
40
- }
41
- }))), sh.ph.text("something"), null, sh.ph.text(" or "), null),
42
- sh.ph.text(", found "),
43
- p_.from.state($.cause).decide(($) => {
44
- switch ($[0]) {
45
- case 'unexpected token': return p_.option($, ($) => sh.ph.composed([
46
- sh.ph.text("'"),
47
- sh.ph.text($.found.type[0]),
48
- sh.ph.text("'")
49
- ]));
50
- case 'missing token': return p_.option($, ($) => sh.ph.text("nothing"));
51
- default: return p_.exhaustive($[0]);
52
- }
53
- })
54
- ]));
55
- default: return p_.exhaustive($[0]);
56
- }
57
- });
58
- return ser_rich_phrase.Phrase(sh.ph.composed([
59
- sh.ph.text("failed to parse ASTN: "),
60
- Parse_Error_Type($['type']),
61
- ]));
62
- };
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VfdHJlZV9kZXNlcmlhbGl6YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvX2ltcGxlbWVudGF0aW9uL3NlcmlhbGl6ZXJzL3BhcnNlX3RyZWVfZGVzZXJpYWxpemF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLE1BQU0sdUNBQXVDLENBQUE7QUFDM0QsT0FBTyxnQkFBZ0IsTUFBTSxnRUFBZ0UsQ0FBQTtBQUU3RixTQUFTO0FBQ1QsT0FBTyxLQUFLLEtBQUssTUFBTSxtREFBbUQsQ0FBQTtBQVUxRSxZQUFZO0FBQ1osT0FBTyxLQUFLLEVBQUUsTUFBTSx1REFBdUQsQ0FBQTtBQUUzRSxPQUFPLEtBQUssZUFBZSxNQUFNLDZEQUE2RCxDQUFBO0FBRTlGLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBdUIsQ0FBQyxDQUFDLEVBQUUsRUFBRTtJQUMzQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBbUIsRUFBZ0IsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FDbkYsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUNGLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDWCxLQUFLLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQ3JFLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ0YsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDWCxLQUFLLG1CQUFtQixDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFBO29CQUNwRixLQUFLLHdCQUF3QixDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFBO29CQUMvRixLQUFLLGtCQUFrQixDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUM7d0JBQy9ELEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGlDQUFpQyxDQUFDO3dCQUM3QyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUM1QixDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQ2IsZ0JBQWdCLENBQ1osRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNwQixDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUNYLENBRUosRUFDRCxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDOUI7cUJBQ0osQ0FBQyxDQUFDLENBQUE7b0JBQ0gsS0FBSywyQkFBMkIsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLCtCQUErQixDQUFDLENBQUMsQ0FBQTtvQkFDekcsS0FBSyxrQkFBa0IsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLDhCQUE4QixDQUFDLENBQUMsQ0FBQTtvQkFFL0YsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO2dCQUN2QyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUNQLEtBQUssUUFBUSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBQ3JELEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztnQkFDdkIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQ2IsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FDeEIsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUNiLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FDbkIsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDRixRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO3dCQUNYLEtBQUssR0FBRyxDQUFDLENBQUMsT0FBTyxLQUFLLENBQUE7d0JBQ3RCLEtBQUssR0FBRyxDQUFDLENBQUMsT0FBTyxLQUFLLENBQUE7d0JBQ3RCLEtBQUssR0FBRyxDQUFDLENBQUMsT0FBTyxLQUFLLENBQUE7d0JBQ3RCLEtBQUssR0FBRyxDQUFDLENBQUMsT0FBTyxLQUFLLENBQUE7d0JBQ3RCLEtBQUssR0FBRyxDQUFDLENBQUMsT0FBTyxLQUFLLENBQUE7d0JBQ3RCLEtBQUssR0FBRyxDQUFDLENBQUMsT0FBTyxLQUFLLENBQUE7d0JBQ3RCLEtBQUssR0FBRyxDQUFDLENBQUMsT0FBTyxLQUFLLENBQUE7d0JBQ3RCLEtBQUssY0FBYyxDQUFDLENBQUMsT0FBTyxjQUFjLENBQUE7d0JBQzFDLEtBQUssV0FBVyxDQUFDLENBQUMsT0FBTyxXQUFXLENBQUE7d0JBQ3BDLEtBQUssR0FBRyxDQUFDLENBQUMsT0FBTyxLQUFLLENBQUE7d0JBQ3RCLEtBQUssR0FBRyxDQUFDLENBQUMsT0FBTyxLQUFLLENBQUE7d0JBQ3RCLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtvQkFDdkMsQ0FBQztnQkFDTCxDQUFDLENBQUMsQ0FDVCxDQUNKLEVBQ0QsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQ3ZCLElBQUksRUFDSixFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFDbEIsSUFBSSxDQUNQO2dCQUNELEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztnQkFDdEIsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FDekIsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDRixRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO3dCQUNYLEtBQUssa0JBQWtCLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQzs0QkFDL0QsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDOzRCQUNmLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDOzRCQUMzQixFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7eUJBQ2xCLENBQUMsQ0FBQyxDQUFBO3dCQUNILEtBQUssZUFBZSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQTt3QkFDdkUsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO29CQUN2QyxDQUFDO2dCQUNMLENBQUMsQ0FBQzthQUNULENBQUMsQ0FBQyxDQUFBO1lBQ0gsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQ3ZDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQTtJQUNOLE9BQU8sZUFBZSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQztRQUN6QyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQztRQUNwQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDOUIsQ0FBQyxDQUFDLENBQUE7QUFDUCxDQUFDLENBQUEifQ==