@renovatebot/good-enough-parser 1.1.24 → 2.0.0

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 (219) hide show
  1. package/README.md +6 -6
  2. package/dist/cjs/index.d.ts +4 -4
  3. package/dist/cjs/index.js +7 -7
  4. package/dist/cjs/lang/groovy.d.ts +6 -6
  5. package/dist/cjs/lang/groovy.js +83 -83
  6. package/dist/cjs/lang/index.d.ts +20 -20
  7. package/dist/cjs/lang/index.js +56 -56
  8. package/dist/cjs/lang/index.js.map +1 -1
  9. package/dist/cjs/lang/python.d.ts +6 -6
  10. package/dist/cjs/lang/python.js +73 -73
  11. package/dist/cjs/lang/scala.d.ts +6 -6
  12. package/dist/cjs/lang/scala.js +71 -71
  13. package/dist/cjs/lang/starlark.d.ts +6 -6
  14. package/dist/cjs/lang/starlark.js +58 -58
  15. package/dist/cjs/lang/types.d.ts +6 -6
  16. package/dist/cjs/lang/types.js +2 -2
  17. package/dist/cjs/lexer/bracket.d.ts +6 -6
  18. package/dist/cjs/lexer/bracket.js +56 -57
  19. package/dist/cjs/lexer/bracket.js.map +1 -1
  20. package/dist/cjs/lexer/comment.d.ts +3 -3
  21. package/dist/cjs/lexer/comment.js +43 -44
  22. package/dist/cjs/lexer/comment.js.map +1 -1
  23. package/dist/cjs/lexer/index.d.ts +5 -5
  24. package/dist/cjs/lexer/index.js +154 -155
  25. package/dist/cjs/lexer/index.js.map +1 -1
  26. package/dist/cjs/lexer/number.d.ts +2 -2
  27. package/dist/cjs/lexer/number.js +17 -18
  28. package/dist/cjs/lexer/number.js.map +1 -1
  29. package/dist/cjs/lexer/operator.d.ts +2 -2
  30. package/dist/cjs/lexer/operator.js +23 -24
  31. package/dist/cjs/lexer/operator.js.map +1 -1
  32. package/dist/cjs/lexer/rules.d.ts +4 -4
  33. package/dist/cjs/lexer/rules.js +74 -74
  34. package/dist/cjs/lexer/rules.js.map +1 -1
  35. package/dist/cjs/lexer/string.d.ts +2 -2
  36. package/dist/cjs/lexer/string.js +180 -181
  37. package/dist/cjs/lexer/string.js.map +1 -1
  38. package/dist/cjs/lexer/symbol.d.ts +2 -2
  39. package/dist/cjs/lexer/symbol.js +17 -18
  40. package/dist/cjs/lexer/symbol.js.map +1 -1
  41. package/dist/cjs/lexer/token.d.ts +3 -3
  42. package/dist/cjs/lexer/token.js +63 -64
  43. package/dist/cjs/lexer/token.js.map +1 -1
  44. package/dist/cjs/lexer/types.d.ts +142 -142
  45. package/dist/cjs/lexer/types.js +2 -2
  46. package/dist/cjs/parser/cursor.d.ts +2 -2
  47. package/dist/cjs/parser/cursor.js +12 -13
  48. package/dist/cjs/parser/cursor.js.map +1 -1
  49. package/dist/cjs/parser/index.d.ts +3 -3
  50. package/dist/cjs/parser/index.js +19 -19
  51. package/dist/cjs/parser/tree.d.ts +4 -4
  52. package/dist/cjs/parser/tree.js +245 -246
  53. package/dist/cjs/parser/tree.js.map +1 -1
  54. package/dist/cjs/parser/types.d.ts +33 -33
  55. package/dist/cjs/parser/types.js +2 -2
  56. package/dist/cjs/query/builder.d.ts +144 -144
  57. package/dist/cjs/query/builder.d.ts.map +1 -1
  58. package/dist/cjs/query/builder.js +333 -332
  59. package/dist/cjs/query/builder.js.map +1 -1
  60. package/dist/cjs/query/handler.d.ts +2 -2
  61. package/dist/cjs/query/handler.js +9 -10
  62. package/dist/cjs/query/handler.js.map +1 -1
  63. package/dist/cjs/query/index.d.ts +2 -2
  64. package/dist/cjs/query/index.js +32 -32
  65. package/dist/cjs/query/matchers/abstract-matcher.d.ts +9 -9
  66. package/dist/cjs/query/matchers/abstract-matcher.js +36 -36
  67. package/dist/cjs/query/matchers/abstract-matcher.js.map +1 -1
  68. package/dist/cjs/query/matchers/alt-matcher.d.ts +10 -10
  69. package/dist/cjs/query/matchers/alt-matcher.js +33 -33
  70. package/dist/cjs/query/matchers/alt-matcher.js.map +1 -1
  71. package/dist/cjs/query/matchers/anchor-matcher.d.ts +17 -17
  72. package/dist/cjs/query/matchers/anchor-matcher.js +50 -50
  73. package/dist/cjs/query/matchers/anchor-matcher.js.map +1 -1
  74. package/dist/cjs/query/matchers/comment-matcher.d.ts +10 -10
  75. package/dist/cjs/query/matchers/comment-matcher.js +39 -39
  76. package/dist/cjs/query/matchers/comment-matcher.js.map +1 -1
  77. package/dist/cjs/query/matchers/index.d.ts +6 -6
  78. package/dist/cjs/query/matchers/index.js +22 -22
  79. package/dist/cjs/query/matchers/many-matcher.d.ts +13 -13
  80. package/dist/cjs/query/matchers/many-matcher.js +61 -61
  81. package/dist/cjs/query/matchers/many-matcher.js.map +1 -1
  82. package/dist/cjs/query/matchers/num-matcher.d.ts +8 -8
  83. package/dist/cjs/query/matchers/num-matcher.js +34 -34
  84. package/dist/cjs/query/matchers/num-matcher.js.map +1 -1
  85. package/dist/cjs/query/matchers/op-matcher.d.ts +8 -8
  86. package/dist/cjs/query/matchers/op-matcher.js +34 -34
  87. package/dist/cjs/query/matchers/op-matcher.js.map +1 -1
  88. package/dist/cjs/query/matchers/seq-matcher.d.ts +14 -14
  89. package/dist/cjs/query/matchers/seq-matcher.js +76 -76
  90. package/dist/cjs/query/matchers/seq-matcher.js.map +1 -1
  91. package/dist/cjs/query/matchers/str-matcher.d.ts +38 -38
  92. package/dist/cjs/query/matchers/str-matcher.js +108 -108
  93. package/dist/cjs/query/matchers/str-matcher.js.map +1 -1
  94. package/dist/cjs/query/matchers/sym-matcher.d.ts +8 -8
  95. package/dist/cjs/query/matchers/sym-matcher.js +34 -34
  96. package/dist/cjs/query/matchers/sym-matcher.js.map +1 -1
  97. package/dist/cjs/query/matchers/tree-matcher.d.ts +23 -23
  98. package/dist/cjs/query/matchers/tree-matcher.js +121 -121
  99. package/dist/cjs/query/matchers/tree-matcher.js.map +1 -1
  100. package/dist/cjs/query/options.d.ts +10 -10
  101. package/dist/cjs/query/options.js +148 -149
  102. package/dist/cjs/query/options.js.map +1 -1
  103. package/dist/cjs/query/regex.d.ts +1 -1
  104. package/dist/cjs/query/regex.js +12 -13
  105. package/dist/cjs/query/regex.js.map +1 -1
  106. package/dist/cjs/query/types.d.ts +100 -100
  107. package/dist/cjs/query/types.d.ts.map +1 -1
  108. package/dist/cjs/query/types.js +2 -2
  109. package/dist/cjs/util/clone.d.ts +1 -1
  110. package/dist/cjs/util/clone.js +5 -5
  111. package/dist/cjs/util/regex.d.ts +1 -1
  112. package/dist/cjs/util/regex.js +6 -7
  113. package/dist/cjs/util/regex.js.map +1 -1
  114. package/dist/esm/index.d.ts +4 -4
  115. package/dist/esm/index.js +8 -8
  116. package/dist/esm/lang/groovy.d.ts +6 -6
  117. package/dist/esm/lang/groovy.js +80 -80
  118. package/dist/esm/lang/index.d.ts +20 -20
  119. package/dist/esm/lang/index.js +37 -37
  120. package/dist/esm/lang/python.d.ts +6 -6
  121. package/dist/esm/lang/python.js +70 -70
  122. package/dist/esm/lang/scala.d.ts +6 -6
  123. package/dist/esm/lang/scala.js +68 -68
  124. package/dist/esm/lang/starlark.d.ts +6 -6
  125. package/dist/esm/lang/starlark.js +55 -55
  126. package/dist/esm/lang/types.d.ts +6 -6
  127. package/dist/esm/lang/types.js +1 -1
  128. package/dist/esm/lexer/bracket.d.ts +6 -6
  129. package/dist/esm/lexer/bracket.js +49 -49
  130. package/dist/esm/lexer/bracket.js.map +1 -1
  131. package/dist/esm/lexer/comment.d.ts +3 -3
  132. package/dist/esm/lexer/comment.js +39 -39
  133. package/dist/esm/lexer/comment.js.map +1 -1
  134. package/dist/esm/lexer/index.d.ts +5 -5
  135. package/dist/esm/lexer/index.js +136 -136
  136. package/dist/esm/lexer/index.js.map +1 -1
  137. package/dist/esm/lexer/number.d.ts +2 -2
  138. package/dist/esm/lexer/number.js +14 -14
  139. package/dist/esm/lexer/operator.d.ts +2 -2
  140. package/dist/esm/lexer/operator.js +20 -20
  141. package/dist/esm/lexer/rules.d.ts +4 -4
  142. package/dist/esm/lexer/rules.js +69 -69
  143. package/dist/esm/lexer/rules.js.map +1 -1
  144. package/dist/esm/lexer/string.d.ts +2 -2
  145. package/dist/esm/lexer/string.js +177 -177
  146. package/dist/esm/lexer/string.js.map +1 -1
  147. package/dist/esm/lexer/symbol.d.ts +2 -2
  148. package/dist/esm/lexer/symbol.js +14 -14
  149. package/dist/esm/lexer/token.d.ts +3 -3
  150. package/dist/esm/lexer/token.js +60 -60
  151. package/dist/esm/lexer/token.js.map +1 -1
  152. package/dist/esm/lexer/types.d.ts +142 -142
  153. package/dist/esm/lexer/types.js +1 -1
  154. package/dist/esm/parser/cursor.d.ts +2 -2
  155. package/dist/esm/parser/cursor.js +9 -9
  156. package/dist/esm/parser/index.d.ts +3 -3
  157. package/dist/esm/parser/index.js +3 -3
  158. package/dist/esm/parser/tree.d.ts +4 -4
  159. package/dist/esm/parser/tree.js +241 -241
  160. package/dist/esm/parser/tree.js.map +1 -1
  161. package/dist/esm/parser/types.d.ts +33 -33
  162. package/dist/esm/parser/types.js +1 -1
  163. package/dist/esm/query/builder.d.ts +144 -144
  164. package/dist/esm/query/builder.d.ts.map +1 -1
  165. package/dist/esm/query/builder.js +305 -304
  166. package/dist/esm/query/builder.js.map +1 -1
  167. package/dist/esm/query/handler.d.ts +2 -2
  168. package/dist/esm/query/handler.js +6 -6
  169. package/dist/esm/query/index.d.ts +2 -2
  170. package/dist/esm/query/index.js +2 -2
  171. package/dist/esm/query/matchers/abstract-matcher.d.ts +9 -9
  172. package/dist/esm/query/matchers/abstract-matcher.js +32 -32
  173. package/dist/esm/query/matchers/abstract-matcher.js.map +1 -1
  174. package/dist/esm/query/matchers/alt-matcher.d.ts +10 -10
  175. package/dist/esm/query/matchers/alt-matcher.js +29 -29
  176. package/dist/esm/query/matchers/alt-matcher.js.map +1 -1
  177. package/dist/esm/query/matchers/anchor-matcher.d.ts +17 -17
  178. package/dist/esm/query/matchers/anchor-matcher.js +44 -44
  179. package/dist/esm/query/matchers/anchor-matcher.js.map +1 -1
  180. package/dist/esm/query/matchers/comment-matcher.d.ts +10 -10
  181. package/dist/esm/query/matchers/comment-matcher.js +35 -35
  182. package/dist/esm/query/matchers/comment-matcher.js.map +1 -1
  183. package/dist/esm/query/matchers/index.d.ts +6 -6
  184. package/dist/esm/query/matchers/index.js +6 -6
  185. package/dist/esm/query/matchers/many-matcher.d.ts +13 -13
  186. package/dist/esm/query/matchers/many-matcher.js +57 -57
  187. package/dist/esm/query/matchers/many-matcher.js.map +1 -1
  188. package/dist/esm/query/matchers/num-matcher.d.ts +8 -8
  189. package/dist/esm/query/matchers/num-matcher.js +30 -30
  190. package/dist/esm/query/matchers/num-matcher.js.map +1 -1
  191. package/dist/esm/query/matchers/op-matcher.d.ts +8 -8
  192. package/dist/esm/query/matchers/op-matcher.js +30 -30
  193. package/dist/esm/query/matchers/op-matcher.js.map +1 -1
  194. package/dist/esm/query/matchers/seq-matcher.d.ts +14 -14
  195. package/dist/esm/query/matchers/seq-matcher.js +72 -72
  196. package/dist/esm/query/matchers/seq-matcher.js.map +1 -1
  197. package/dist/esm/query/matchers/str-matcher.d.ts +38 -38
  198. package/dist/esm/query/matchers/str-matcher.js +102 -102
  199. package/dist/esm/query/matchers/str-matcher.js.map +1 -1
  200. package/dist/esm/query/matchers/sym-matcher.d.ts +8 -8
  201. package/dist/esm/query/matchers/sym-matcher.js +30 -30
  202. package/dist/esm/query/matchers/sym-matcher.js.map +1 -1
  203. package/dist/esm/query/matchers/tree-matcher.d.ts +23 -23
  204. package/dist/esm/query/matchers/tree-matcher.js +117 -117
  205. package/dist/esm/query/matchers/tree-matcher.js.map +1 -1
  206. package/dist/esm/query/options.d.ts +10 -10
  207. package/dist/esm/query/options.js +139 -139
  208. package/dist/esm/query/options.js.map +1 -1
  209. package/dist/esm/query/regex.d.ts +1 -1
  210. package/dist/esm/query/regex.js +9 -9
  211. package/dist/esm/query/regex.js.map +1 -1
  212. package/dist/esm/query/types.d.ts +100 -100
  213. package/dist/esm/query/types.d.ts.map +1 -1
  214. package/dist/esm/query/types.js +1 -1
  215. package/dist/esm/util/clone.d.ts +1 -1
  216. package/dist/esm/util/clone.js +1 -1
  217. package/dist/esm/util/regex.d.ts +1 -1
  218. package/dist/esm/util/regex.js +3 -3
  219. package/package.json +42 -46
@@ -1,242 +1,242 @@
1
- function specialToken(type, prevToken, nextToken) {
2
- const lineBreaks = 0;
3
- if (nextToken) {
4
- return {
5
- type,
6
- value: '',
7
- offset: nextToken.offset,
8
- line: nextToken.line,
9
- col: nextToken.col,
10
- lineBreaks,
11
- };
12
- }
13
- if (prevToken) {
14
- return {
15
- type,
16
- value: '',
17
- offset: prevToken.offset + prevToken.value.length,
18
- line: prevToken.line + prevToken.lineBreaks,
19
- col: prevToken.value.length - prevToken.value.lastIndexOf('\n'),
20
- lineBreaks,
21
- };
22
- }
23
- return { type, value: '', offset: 0, line: 1, col: 1, lineBreaks };
24
- }
25
- export function createTree(lexer, config) {
26
- const stack = [];
27
- let prevToken = specialToken('_start');
28
- let currentTree = { type: 'root-tree', children: [prevToken] };
29
- const { useIndentBlocks } = config;
30
- let indentMode = 'on';
31
- let currIndent = '';
32
- const indents = [];
33
- let indentSpaces = [];
34
- let nestingCounter = 0;
35
- const lex = [...lexer];
36
- for (const token of lex) {
37
- if (!currentTree.children.length) {
38
- currentTree.children.push(specialToken('_start', prevToken, token));
39
- }
40
- if (useIndentBlocks && nestingCounter === 0) {
41
- if (token.type === 'newline') {
42
- currIndent = '';
43
- indentMode = 'on';
44
- }
45
- else if (indentMode === 'on') {
46
- if (token.type === 'whitespace') {
47
- currIndent += token.value;
48
- indentSpaces.push(token);
49
- prevToken = token;
50
- continue;
51
- }
52
- else {
53
- let prevIndent = indents.pop();
54
- if (prevIndent
55
- ? prevIndent !== currIndent && currIndent.startsWith(prevIndent)
56
- : currIndent) {
57
- if (prevIndent) {
58
- indents.push(prevIndent);
59
- }
60
- indents.push(currIndent);
61
- stack.push(currentTree);
62
- currentTree = {
63
- type: 'block-tree',
64
- children: [
65
- specialToken('_start', prevToken, token),
66
- ...indentSpaces,
67
- ],
68
- };
69
- }
70
- else if (currentTree.type === 'block-tree') {
71
- while (prevIndent &&
72
- prevIndent !== currIndent &&
73
- prevIndent.startsWith(currIndent)) {
74
- const prevTree = stack.pop();
75
- if (prevTree) {
76
- currentTree.children.push(specialToken('_end', prevToken, token));
77
- prevTree.children.push(currentTree);
78
- currentTree = prevTree;
79
- }
80
- prevIndent = indents.pop();
81
- }
82
- indents.push(currIndent);
83
- currentTree.children.push(...indentSpaces);
84
- }
85
- indentMode = 'off';
86
- indentSpaces = [];
87
- }
88
- }
89
- }
90
- if (token.type === 'string-value' && prevToken.type === 'string-value') {
91
- prevToken.value += token.value;
92
- prevToken.lineBreaks += token.lineBreaks;
93
- continue;
94
- }
95
- if (token.type === 'bracket-left') {
96
- stack.push(currentTree);
97
- currentTree = {
98
- type: 'wrapped-tree',
99
- startsWith: token,
100
- endsWith: { ...token, type: 'bracket-right' },
101
- children: [],
102
- };
103
- nestingCounter += 1;
104
- }
105
- else if (token.type === 'bracket-right' &&
106
- currentTree.type === 'wrapped-tree') {
107
- currentTree.children.push(specialToken('_end', prevToken, token));
108
- currentTree.endsWith = token;
109
- const prevTree = stack.pop();
110
- if (prevTree) {
111
- prevTree.children.push(currentTree);
112
- currentTree = prevTree;
113
- }
114
- nestingCounter -= 1;
115
- }
116
- else if (token.type === 'string-start') {
117
- stack.push(currentTree);
118
- currentTree = {
119
- type: 'string-tree',
120
- startsWith: token,
121
- endsWith: { ...token, type: 'string-end' },
122
- children: [],
123
- };
124
- nestingCounter += 1;
125
- }
126
- else if (token.type === 'string-end' &&
127
- currentTree.type === 'string-tree') {
128
- currentTree.children.push(specialToken('_end', prevToken, token));
129
- currentTree.endsWith = token;
130
- const prevTree = stack.pop();
131
- if (prevTree) {
132
- prevTree.children.push(currentTree);
133
- currentTree = prevTree;
134
- }
135
- nestingCounter -= 1;
136
- }
137
- else if (token.type === 'template-start' &&
138
- currentTree.type === 'string-tree') {
139
- stack.push(currentTree);
140
- currentTree = {
141
- type: 'template-tree',
142
- startsWith: token,
143
- endsWith: { ...token, type: 'template-end' },
144
- children: [],
145
- };
146
- nestingCounter += 1;
147
- }
148
- else if (token.type === 'template-end' &&
149
- currentTree.type === 'template-tree') {
150
- currentTree.children.push(specialToken('_end', prevToken, token));
151
- currentTree.endsWith = token;
152
- const prevTree = stack.pop();
153
- if (prevTree) {
154
- prevTree.children.push(currentTree);
155
- currentTree = prevTree;
156
- }
157
- nestingCounter -= 1;
158
- }
159
- else if (token.type === 'string-value' &&
160
- currentTree.type === 'template-tree') {
161
- const tplTree = currentTree;
162
- const tplEndToken = specialToken('_end', prevToken, token);
163
- tplTree.children.push(tplEndToken);
164
- tplTree.endsWith = { ...tplEndToken, type: 'template-end' };
165
- const upperTree = stack.pop();
166
- if (upperTree) {
167
- upperTree.children.push(tplTree);
168
- upperTree.children.push(token);
169
- currentTree = upperTree;
170
- nestingCounter -= 1;
171
- }
172
- }
173
- else if (token.type === 'string-end' &&
174
- currentTree.type === 'template-tree') {
175
- const tplTree = currentTree;
176
- const tplEndToken = specialToken('_end', prevToken, token);
177
- tplTree.children.push(tplEndToken);
178
- tplTree.endsWith = { ...tplEndToken, type: 'template-end' };
179
- const strTree = stack.pop();
180
- if ((strTree === null || strTree === void 0 ? void 0 : strTree.type) === 'string-tree') {
181
- strTree.children.push(tplTree);
182
- const strEndToken = specialToken('_end', prevToken, token);
183
- strTree.children.push(strEndToken);
184
- strTree.endsWith = token;
185
- currentTree = strTree;
186
- nestingCounter -= 1;
187
- const upperTree = stack.pop();
188
- if (upperTree) {
189
- upperTree.children.push(strTree);
190
- currentTree = upperTree;
191
- nestingCounter -= 1;
192
- }
193
- }
194
- }
195
- else if (token.type === 'template-start' &&
196
- currentTree.type === 'template-tree') {
197
- const tplTree = currentTree;
198
- const tplEndToken = specialToken('_end', prevToken, token);
199
- tplTree.children.push(tplEndToken);
200
- tplTree.endsWith = { ...tplEndToken, type: 'template-end' };
201
- const strTree = stack.pop();
202
- if ((strTree === null || strTree === void 0 ? void 0 : strTree.type) === 'string-tree') {
203
- strTree.children.push(tplTree);
204
- stack.push(strTree);
205
- currentTree = {
206
- type: 'template-tree',
207
- startsWith: token,
208
- endsWith: { ...token, type: 'template-end' },
209
- children: [],
210
- };
211
- }
212
- }
213
- else {
214
- currentTree.children.push(token);
215
- }
216
- prevToken = token;
217
- }
218
- const closingToken = specialToken('_end', prevToken);
219
- while (currentTree.type !== 'root-tree') {
220
- currentTree.children.push({ ...closingToken });
221
- const prevTree = stack.pop();
222
- if (prevTree) {
223
- prevTree.children.push(currentTree);
224
- currentTree = prevTree;
225
- }
226
- else {
227
- throw new Error('Parsing error');
228
- }
229
- }
230
- currentTree.children.push({ ...closingToken });
231
- return currentTree;
232
- }
233
- export function isTree(node) {
234
- return [
235
- 'root-tree',
236
- 'wrapped-tree',
237
- 'string-tree',
238
- 'template-tree',
239
- 'block-tree',
240
- ].includes(node === null || node === void 0 ? void 0 : node.type);
241
- }
1
+ function specialToken(type, prevToken, nextToken) {
2
+ const lineBreaks = 0;
3
+ if (nextToken) {
4
+ return {
5
+ type,
6
+ value: '',
7
+ offset: nextToken.offset,
8
+ line: nextToken.line,
9
+ col: nextToken.col,
10
+ lineBreaks,
11
+ };
12
+ }
13
+ if (prevToken) {
14
+ return {
15
+ type,
16
+ value: '',
17
+ offset: prevToken.offset + prevToken.value.length,
18
+ line: prevToken.line + prevToken.lineBreaks,
19
+ col: prevToken.value.length - prevToken.value.lastIndexOf('\n'),
20
+ lineBreaks,
21
+ };
22
+ }
23
+ return { type, value: '', offset: 0, line: 1, col: 1, lineBreaks };
24
+ }
25
+ export function createTree(lexer, config) {
26
+ const stack = [];
27
+ let prevToken = specialToken('_start');
28
+ let currentTree = { type: 'root-tree', children: [prevToken] };
29
+ const { useIndentBlocks } = config;
30
+ let indentMode = 'on';
31
+ let currIndent = '';
32
+ const indents = [];
33
+ let indentSpaces = [];
34
+ let nestingCounter = 0;
35
+ const lex = [...lexer];
36
+ for (const token of lex) {
37
+ if (!currentTree.children.length) {
38
+ currentTree.children.push(specialToken('_start', prevToken, token));
39
+ }
40
+ if (useIndentBlocks && nestingCounter === 0) {
41
+ if (token.type === 'newline') {
42
+ currIndent = '';
43
+ indentMode = 'on';
44
+ }
45
+ else if (indentMode === 'on') {
46
+ if (token.type === 'whitespace') {
47
+ currIndent += token.value;
48
+ indentSpaces.push(token);
49
+ prevToken = token;
50
+ continue;
51
+ }
52
+ else {
53
+ let prevIndent = indents.pop();
54
+ if (prevIndent
55
+ ? prevIndent !== currIndent && currIndent.startsWith(prevIndent)
56
+ : currIndent) {
57
+ if (prevIndent) {
58
+ indents.push(prevIndent);
59
+ }
60
+ indents.push(currIndent);
61
+ stack.push(currentTree);
62
+ currentTree = {
63
+ type: 'block-tree',
64
+ children: [
65
+ specialToken('_start', prevToken, token),
66
+ ...indentSpaces,
67
+ ],
68
+ };
69
+ }
70
+ else if (currentTree.type === 'block-tree') {
71
+ while (prevIndent &&
72
+ prevIndent !== currIndent &&
73
+ prevIndent.startsWith(currIndent)) {
74
+ const prevTree = stack.pop();
75
+ if (prevTree) {
76
+ currentTree.children.push(specialToken('_end', prevToken, token));
77
+ prevTree.children.push(currentTree);
78
+ currentTree = prevTree;
79
+ }
80
+ prevIndent = indents.pop();
81
+ }
82
+ indents.push(currIndent);
83
+ currentTree.children.push(...indentSpaces);
84
+ }
85
+ indentMode = 'off';
86
+ indentSpaces = [];
87
+ }
88
+ }
89
+ }
90
+ if (token.type === 'string-value' && prevToken.type === 'string-value') {
91
+ prevToken.value += token.value;
92
+ prevToken.lineBreaks += token.lineBreaks;
93
+ continue;
94
+ }
95
+ if (token.type === 'bracket-left') {
96
+ stack.push(currentTree);
97
+ currentTree = {
98
+ type: 'wrapped-tree',
99
+ startsWith: token,
100
+ endsWith: { ...token, type: 'bracket-right' },
101
+ children: [],
102
+ };
103
+ nestingCounter += 1;
104
+ }
105
+ else if (token.type === 'bracket-right' &&
106
+ currentTree.type === 'wrapped-tree') {
107
+ currentTree.children.push(specialToken('_end', prevToken, token));
108
+ currentTree.endsWith = token;
109
+ const prevTree = stack.pop();
110
+ if (prevTree) {
111
+ prevTree.children.push(currentTree);
112
+ currentTree = prevTree;
113
+ }
114
+ nestingCounter -= 1;
115
+ }
116
+ else if (token.type === 'string-start') {
117
+ stack.push(currentTree);
118
+ currentTree = {
119
+ type: 'string-tree',
120
+ startsWith: token,
121
+ endsWith: { ...token, type: 'string-end' },
122
+ children: [],
123
+ };
124
+ nestingCounter += 1;
125
+ }
126
+ else if (token.type === 'string-end' &&
127
+ currentTree.type === 'string-tree') {
128
+ currentTree.children.push(specialToken('_end', prevToken, token));
129
+ currentTree.endsWith = token;
130
+ const prevTree = stack.pop();
131
+ if (prevTree) {
132
+ prevTree.children.push(currentTree);
133
+ currentTree = prevTree;
134
+ }
135
+ nestingCounter -= 1;
136
+ }
137
+ else if (token.type === 'template-start' &&
138
+ currentTree.type === 'string-tree') {
139
+ stack.push(currentTree);
140
+ currentTree = {
141
+ type: 'template-tree',
142
+ startsWith: token,
143
+ endsWith: { ...token, type: 'template-end' },
144
+ children: [],
145
+ };
146
+ nestingCounter += 1;
147
+ }
148
+ else if (token.type === 'template-end' &&
149
+ currentTree.type === 'template-tree') {
150
+ currentTree.children.push(specialToken('_end', prevToken, token));
151
+ currentTree.endsWith = token;
152
+ const prevTree = stack.pop();
153
+ if (prevTree) {
154
+ prevTree.children.push(currentTree);
155
+ currentTree = prevTree;
156
+ }
157
+ nestingCounter -= 1;
158
+ }
159
+ else if (token.type === 'string-value' &&
160
+ currentTree.type === 'template-tree') {
161
+ const tplTree = currentTree;
162
+ const tplEndToken = specialToken('_end', prevToken, token);
163
+ tplTree.children.push(tplEndToken);
164
+ tplTree.endsWith = { ...tplEndToken, type: 'template-end' };
165
+ const upperTree = stack.pop();
166
+ if (upperTree) {
167
+ upperTree.children.push(tplTree);
168
+ upperTree.children.push(token);
169
+ currentTree = upperTree;
170
+ nestingCounter -= 1;
171
+ }
172
+ }
173
+ else if (token.type === 'string-end' &&
174
+ currentTree.type === 'template-tree') {
175
+ const tplTree = currentTree;
176
+ const tplEndToken = specialToken('_end', prevToken, token);
177
+ tplTree.children.push(tplEndToken);
178
+ tplTree.endsWith = { ...tplEndToken, type: 'template-end' };
179
+ const strTree = stack.pop();
180
+ if ((strTree === null || strTree === void 0 ? void 0 : strTree.type) === 'string-tree') {
181
+ strTree.children.push(tplTree);
182
+ const strEndToken = specialToken('_end', prevToken, token);
183
+ strTree.children.push(strEndToken);
184
+ strTree.endsWith = token;
185
+ currentTree = strTree;
186
+ nestingCounter -= 1;
187
+ const upperTree = stack.pop();
188
+ if (upperTree) {
189
+ upperTree.children.push(strTree);
190
+ currentTree = upperTree;
191
+ nestingCounter -= 1;
192
+ }
193
+ }
194
+ }
195
+ else if (token.type === 'template-start' &&
196
+ currentTree.type === 'template-tree') {
197
+ const tplTree = currentTree;
198
+ const tplEndToken = specialToken('_end', prevToken, token);
199
+ tplTree.children.push(tplEndToken);
200
+ tplTree.endsWith = { ...tplEndToken, type: 'template-end' };
201
+ const strTree = stack.pop();
202
+ if ((strTree === null || strTree === void 0 ? void 0 : strTree.type) === 'string-tree') {
203
+ strTree.children.push(tplTree);
204
+ stack.push(strTree);
205
+ currentTree = {
206
+ type: 'template-tree',
207
+ startsWith: token,
208
+ endsWith: { ...token, type: 'template-end' },
209
+ children: [],
210
+ };
211
+ }
212
+ }
213
+ else {
214
+ currentTree.children.push(token);
215
+ }
216
+ prevToken = token;
217
+ }
218
+ const closingToken = specialToken('_end', prevToken);
219
+ while (currentTree.type !== 'root-tree') {
220
+ currentTree.children.push({ ...closingToken });
221
+ const prevTree = stack.pop();
222
+ if (prevTree) {
223
+ prevTree.children.push(currentTree);
224
+ currentTree = prevTree;
225
+ }
226
+ else {
227
+ throw new Error('Parsing error');
228
+ }
229
+ }
230
+ currentTree.children.push({ ...closingToken });
231
+ return currentTree;
232
+ }
233
+ export function isTree(node) {
234
+ return [
235
+ 'root-tree',
236
+ 'wrapped-tree',
237
+ 'string-tree',
238
+ 'template-tree',
239
+ 'block-tree',
240
+ ].includes(node === null || node === void 0 ? void 0 : node.type);
241
+ }
242
242
  //# sourceMappingURL=tree.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tree.js","sourceRoot":"","sources":["../../../lib/parser/tree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tree.js","sourceRoot":"","sources":["../../../lib/parser/tree.ts"],"names":[],"mappings":"AAWA,SAAS,YAAY,CACnB,IAAuB,EACvB,SAAiB,EACjB,SAAiB;IAEjB,MAAM,UAAU,GAAG,CAAC,CAAC;IAErB,IAAI,SAAS,EAAE,CAAC;QACd,OAAO;YACL,IAAI;YACJ,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,GAAG,EAAE,SAAS,CAAC,GAAG;YAClB,UAAU;SACX,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACd,OAAO;YACL,IAAI;YACJ,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM;YACjD,IAAI,EAAE,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,UAAU;YAC3C,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC;YAC/D,UAAU;SACX,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC;AACrE,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAY,EAAE,MAAoB;IAC3D,MAAM,KAAK,GAAW,EAAE,CAAC;IACzB,IAAI,SAAS,GAAU,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC9C,IAAI,WAAW,GAAS,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;IAErE,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC;IACnC,IAAI,UAAU,GAAe,IAAI,CAAC;IAClC,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,IAAI,YAAY,GAAsB,EAAE,CAAC;IAEzC,IAAI,cAAc,GAAG,CAAC,CAAC;IAEvB,MAAM,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IACvB,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACjC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,eAAe,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;YAC5C,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC7B,UAAU,GAAG,EAAE,CAAC;gBAChB,UAAU,GAAG,IAAI,CAAC;YACpB,CAAC;iBAAM,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBAC/B,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBAChC,UAAU,IAAI,KAAK,CAAC,KAAK,CAAC;oBAC1B,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACzB,SAAS,GAAG,KAAK,CAAC;oBAClB,SAAS;gBACX,CAAC;qBAAM,CAAC;oBACN,IAAI,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;oBAC/B,IACE,UAAU;wBACR,CAAC,CAAC,UAAU,KAAK,UAAU,IAAI,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC;wBAChE,CAAC,CAAC,UAAU,EACd,CAAC;wBACD,IAAI,UAAU,EAAE,CAAC;4BACf,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;wBAC3B,CAAC;wBACD,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;wBACzB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;wBACxB,WAAW,GAAG;4BACZ,IAAI,EAAE,YAAY;4BAClB,QAAQ,EAAE;gCACR,YAAY,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC;gCACxC,GAAG,YAAY;6BAChB;yBACF,CAAC;oBACJ,CAAC;yBAAM,IAAI,WAAW,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;wBAC7C,OACE,UAAU;4BACV,UAAU,KAAK,UAAU;4BACzB,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,EACjC,CAAC;4BACD,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;4BAC7B,IAAI,QAAQ,EAAE,CAAC;gCACb,WAAW,CAAC,QAAQ,CAAC,IAAI,CACvB,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CACvC,CAAC;gCACF,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gCACpC,WAAW,GAAG,QAAQ,CAAC;4BACzB,CAAC;4BACD,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;wBAC7B,CAAC;wBACD,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;wBACzB,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;oBAC7C,CAAC;oBAED,UAAU,GAAG,KAAK,CAAC;oBACnB,YAAY,GAAG,EAAE,CAAC;gBACpB,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,IAAI,SAAS,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YACvE,SAAS,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC;YAC/B,SAAS,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC;YACzC,SAAS;QACX,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACxB,WAAW,GAAG;gBACZ,IAAI,EAAE,cAAc;gBACpB,UAAU,EAAE,KAAK;gBACjB,QAAQ,EAAE,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE;gBAC7C,QAAQ,EAAE,EAAE;aACb,CAAC;YACF,cAAc,IAAI,CAAC,CAAC;QACtB,CAAC;aAAM,IACL,KAAK,CAAC,IAAI,KAAK,eAAe;YAC9B,WAAW,CAAC,IAAI,KAAK,cAAc,EACnC,CAAC;YACD,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;YAClE,WAAW,CAAC,QAAQ,GAAG,KAAK,CAAC;YAC7B,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YAC7B,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACpC,WAAW,GAAG,QAAQ,CAAC;YACzB,CAAC;YACD,cAAc,IAAI,CAAC,CAAC;QACtB,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YACzC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACxB,WAAW,GAAG;gBACZ,IAAI,EAAE,aAAa;gBACnB,UAAU,EAAE,KAAK;gBACjB,QAAQ,EAAE,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE;gBAC1C,QAAQ,EAAE,EAAE;aACb,CAAC;YACF,cAAc,IAAI,CAAC,CAAC;QACtB,CAAC;aAAM,IACL,KAAK,CAAC,IAAI,KAAK,YAAY;YAC3B,WAAW,CAAC,IAAI,KAAK,aAAa,EAClC,CAAC;YACD,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;YAClE,WAAW,CAAC,QAAQ,GAAG,KAAK,CAAC;YAC7B,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YAC7B,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACpC,WAAW,GAAG,QAAQ,CAAC;YACzB,CAAC;YACD,cAAc,IAAI,CAAC,CAAC;QACtB,CAAC;aAAM,IACL,KAAK,CAAC,IAAI,KAAK,gBAAgB;YAC/B,WAAW,CAAC,IAAI,KAAK,aAAa,EAClC,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACxB,WAAW,GAAG;gBACZ,IAAI,EAAE,eAAe;gBACrB,UAAU,EAAE,KAAK;gBACjB,QAAQ,EAAE,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE;gBAC5C,QAAQ,EAAE,EAAE;aACb,CAAC;YACF,cAAc,IAAI,CAAC,CAAC;QACtB,CAAC;aAAM,IACL,KAAK,CAAC,IAAI,KAAK,cAAc;YAC7B,WAAW,CAAC,IAAI,KAAK,eAAe,EACpC,CAAC;YACD,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;YAClE,WAAW,CAAC,QAAQ,GAAG,KAAK,CAAC;YAC7B,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YAC7B,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACpC,WAAW,GAAG,QAAQ,CAAC;YACzB,CAAC;YACD,cAAc,IAAI,CAAC,CAAC;QACtB,CAAC;aAAM,IACL,KAAK,CAAC,IAAI,KAAK,cAAc;YAC7B,WAAW,CAAC,IAAI,KAAK,eAAe,EACpC,CAAC;YACD,MAAM,OAAO,GAAiB,WAAW,CAAC;YAE1C,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;YAC3D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACnC,OAAO,CAAC,QAAQ,GAAG,EAAE,GAAG,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;YAE5D,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YAC9B,IAAI,SAAS,EAAE,CAAC;gBACd,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACjC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC/B,WAAW,GAAG,SAAS,CAAC;gBACxB,cAAc,IAAI,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;aAAM,IACL,KAAK,CAAC,IAAI,KAAK,YAAY;YAC3B,WAAW,CAAC,IAAI,KAAK,eAAe,EACpC,CAAC;YACD,MAAM,OAAO,GAAiB,WAAW,CAAC;YAE1C,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;YAC3D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACnC,OAAO,CAAC,QAAQ,GAAG,EAAE,GAAG,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;YAE5D,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,MAAK,aAAa,EAAE,CAAC;gBACpC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAE/B,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;gBAC3D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBACnC,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC;gBAEzB,WAAW,GAAG,OAAO,CAAC;gBACtB,cAAc,IAAI,CAAC,CAAC;gBAEpB,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;gBAC9B,IAAI,SAAS,EAAE,CAAC;oBACd,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACjC,WAAW,GAAG,SAAS,CAAC;oBACxB,cAAc,IAAI,CAAC,CAAC;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IACL,KAAK,CAAC,IAAI,KAAK,gBAAgB;YAC/B,WAAW,CAAC,IAAI,KAAK,eAAe,EACpC,CAAC;YACD,MAAM,OAAO,GAAiB,WAAW,CAAC;YAE1C,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;YAC3D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACnC,OAAO,CAAC,QAAQ,GAAG,EAAE,GAAG,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;YAE5D,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,MAAK,aAAa,EAAE,CAAC;gBACpC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC/B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACpB,WAAW,GAAG;oBACZ,IAAI,EAAE,eAAe;oBACrB,UAAU,EAAE,KAAK;oBACjB,QAAQ,EAAE,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE;oBAC5C,QAAQ,EAAE,EAAE;iBACb,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;QAED,SAAS,GAAG,KAAK,CAAC;IACpB,CAAC;IAED,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACrD,OAAO,WAAW,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACxC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,YAAY,EAAE,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACpC,WAAW,GAAG,QAAQ,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IACD,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,YAAY,EAAE,CAAC,CAAC;IAE/C,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,IAAU;IAC/B,OAAO;QACL,WAAW;QACX,cAAc;QACd,aAAa;QACb,eAAe;QACf,YAAY;KACb,CAAC,QAAQ,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,CAAC,CAAC;AACzB,CAAC"}
@@ -1,34 +1,34 @@
1
- import type { Location as ZipperLocation } from '@thi.ng/zipper';
2
- import type { BracketLeftToken, BracketRightToken, StringEndToken, StringStartToken, TemplateEndToken, TemplateStartToken, Token } from '../lexer/types';
3
- export interface TreeBase {
4
- children: Node[];
5
- }
6
- export interface RootTree extends TreeBase {
7
- type: 'root-tree';
8
- }
9
- export interface WrappedTree extends TreeBase {
10
- type: 'wrapped-tree';
11
- startsWith: BracketLeftToken;
12
- endsWith: BracketRightToken;
13
- }
14
- export interface StringTree extends TreeBase {
15
- type: 'string-tree';
16
- startsWith: StringStartToken;
17
- endsWith: StringEndToken;
18
- }
19
- export interface TemplateTree extends TreeBase {
20
- type: 'template-tree';
21
- startsWith: TemplateStartToken;
22
- endsWith: TemplateEndToken;
23
- }
24
- export interface BlockTree extends TreeBase {
25
- type: 'block-tree';
26
- }
27
- export type TreeType = 'root-tree' | 'wrapped-tree' | 'string-tree' | 'template-tree' | 'block-tree';
28
- export type Tree = RootTree | WrappedTree | StringTree | TemplateTree | BlockTree;
29
- export type Node = Tree | Token;
30
- export type Cursor = ZipperLocation<Node>;
31
- export interface ParserConfig {
32
- useIndentBlocks: boolean;
33
- }
1
+ import type { Location as ZipperLocation } from '@thi.ng/zipper';
2
+ import type { BracketLeftToken, BracketRightToken, StringEndToken, StringStartToken, TemplateEndToken, TemplateStartToken, Token } from '../lexer/types';
3
+ export interface TreeBase {
4
+ children: Node[];
5
+ }
6
+ export interface RootTree extends TreeBase {
7
+ type: 'root-tree';
8
+ }
9
+ export interface WrappedTree extends TreeBase {
10
+ type: 'wrapped-tree';
11
+ startsWith: BracketLeftToken;
12
+ endsWith: BracketRightToken;
13
+ }
14
+ export interface StringTree extends TreeBase {
15
+ type: 'string-tree';
16
+ startsWith: StringStartToken;
17
+ endsWith: StringEndToken;
18
+ }
19
+ export interface TemplateTree extends TreeBase {
20
+ type: 'template-tree';
21
+ startsWith: TemplateStartToken;
22
+ endsWith: TemplateEndToken;
23
+ }
24
+ export interface BlockTree extends TreeBase {
25
+ type: 'block-tree';
26
+ }
27
+ export type TreeType = 'root-tree' | 'wrapped-tree' | 'string-tree' | 'template-tree' | 'block-tree';
28
+ export type Tree = RootTree | WrappedTree | StringTree | TemplateTree | BlockTree;
29
+ export type Node = Tree | Token;
30
+ export type Cursor = ZipperLocation<Node>;
31
+ export interface ParserConfig {
32
+ useIndentBlocks: boolean;
33
+ }
34
34
  //# sourceMappingURL=types.d.ts.map
@@ -1,2 +1,2 @@
1
- export {};
1
+ export {};
2
2
  //# sourceMappingURL=types.js.map