@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,39 +1,39 @@
1
- import type { StringValueToken } from '../../lexer/types';
2
- import type { TemplateTree } from '../../parser/types';
3
- import type { Checkpoint, Matcher, NodeHandler, StrTplOptionsBase, StrTreeHandler, StrTreeOptionsBase } from '../types';
4
- import { AbstractMatcher } from './abstract-matcher';
5
- export type StrContentMatcherValue = string | RegExp | null;
6
- export type StrContentMatcherHandler<Ctx> = (ctx: Ctx, token: StringValueToken) => Ctx;
7
- export interface StrContentMatcherOptions<Ctx> {
8
- value: StrContentMatcherValue;
9
- handler: StrContentMatcherHandler<Ctx> | null;
10
- }
11
- export declare class StrContentMatcher<Ctx> extends AbstractMatcher<Ctx> {
12
- readonly content: StrContentMatcherValue;
13
- readonly handler: StrContentMatcherHandler<Ctx>;
14
- constructor({ value, handler }: StrContentMatcherOptions<Ctx>);
15
- match(checkpoint: Checkpoint<Ctx>): Checkpoint<Ctx> | null;
16
- }
17
- interface StrTplMatcherOptions<Ctx> extends StrTplOptionsBase<Ctx> {
18
- matcher: Matcher<Ctx>;
19
- }
20
- export declare class StrTplMatcher<Ctx> extends AbstractMatcher<Ctx> {
21
- readonly matcher: Matcher<Ctx>;
22
- readonly preHandler: NodeHandler<Ctx, TemplateTree>;
23
- readonly postHandler: NodeHandler<Ctx, TemplateTree>;
24
- constructor(config: StrTplMatcherOptions<Ctx>);
25
- match(checkpoint: Checkpoint<Ctx>): Checkpoint<Ctx> | null;
26
- }
27
- export type StrNodeChildMatcher<Ctx> = StrContentMatcher<Ctx> | StrTplMatcher<Ctx>;
28
- export interface StrMatcherOptions<Ctx> extends StrTreeOptionsBase<Ctx> {
29
- matchers: StrNodeChildMatcher<Ctx>[] | null;
30
- }
31
- export declare class StrNodeMatcher<Ctx> extends AbstractMatcher<Ctx> {
32
- matchers: StrNodeChildMatcher<Ctx>[] | null;
33
- readonly preHandler: StrTreeHandler<Ctx>;
34
- readonly postHandler: StrTreeHandler<Ctx>;
35
- constructor(opts: StrMatcherOptions<Ctx>);
36
- match(checkpoint: Checkpoint<Ctx>): Checkpoint<Ctx> | null;
37
- }
38
- export {};
1
+ import type { StringValueToken } from '../../lexer/types';
2
+ import type { TemplateTree } from '../../parser/types';
3
+ import type { Checkpoint, Matcher, NodeHandler, StrTplOptionsBase, StrTreeHandler, StrTreeOptionsBase } from '../types';
4
+ import { AbstractMatcher } from './abstract-matcher';
5
+ export type StrContentMatcherValue = string | RegExp | null;
6
+ export type StrContentMatcherHandler<Ctx> = (ctx: Ctx, token: StringValueToken) => Ctx;
7
+ export interface StrContentMatcherOptions<Ctx> {
8
+ value: StrContentMatcherValue;
9
+ handler: StrContentMatcherHandler<Ctx> | null;
10
+ }
11
+ export declare class StrContentMatcher<Ctx> extends AbstractMatcher<Ctx> {
12
+ readonly content: StrContentMatcherValue;
13
+ readonly handler: StrContentMatcherHandler<Ctx>;
14
+ constructor({ value, handler }: StrContentMatcherOptions<Ctx>);
15
+ match(checkpoint: Checkpoint<Ctx>): Checkpoint<Ctx> | null;
16
+ }
17
+ interface StrTplMatcherOptions<Ctx> extends StrTplOptionsBase<Ctx> {
18
+ matcher: Matcher<Ctx>;
19
+ }
20
+ export declare class StrTplMatcher<Ctx> extends AbstractMatcher<Ctx> {
21
+ readonly matcher: Matcher<Ctx>;
22
+ readonly preHandler: NodeHandler<Ctx, TemplateTree>;
23
+ readonly postHandler: NodeHandler<Ctx, TemplateTree>;
24
+ constructor(config: StrTplMatcherOptions<Ctx>);
25
+ match(checkpoint: Checkpoint<Ctx>): Checkpoint<Ctx> | null;
26
+ }
27
+ export type StrNodeChildMatcher<Ctx> = StrContentMatcher<Ctx> | StrTplMatcher<Ctx>;
28
+ export interface StrMatcherOptions<Ctx> extends StrTreeOptionsBase<Ctx> {
29
+ matchers: StrNodeChildMatcher<Ctx>[] | null;
30
+ }
31
+ export declare class StrNodeMatcher<Ctx> extends AbstractMatcher<Ctx> {
32
+ matchers: StrNodeChildMatcher<Ctx>[] | null;
33
+ readonly preHandler: StrTreeHandler<Ctx>;
34
+ readonly postHandler: StrTreeHandler<Ctx>;
35
+ constructor(opts: StrMatcherOptions<Ctx>);
36
+ match(checkpoint: Checkpoint<Ctx>): Checkpoint<Ctx> | null;
37
+ }
38
+ export {};
39
39
  //# sourceMappingURL=str-matcher.d.ts.map
@@ -1,109 +1,109 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StrNodeMatcher = exports.StrTplMatcher = exports.StrContentMatcher = void 0;
4
- const handler_1 = require("../handler");
5
- const regex_1 = require("../regex");
6
- const abstract_matcher_1 = require("./abstract-matcher");
7
- class StrContentMatcher extends abstract_matcher_1.AbstractMatcher {
8
- constructor({ value, handler }) {
9
- super();
10
- this.content = value !== null && value !== void 0 ? value : null;
11
- this.handler = (0, handler_1.safeHandler)(handler);
12
- }
13
- match(checkpoint) {
14
- let { cursor, context } = checkpoint;
15
- const node = cursor.node;
16
- if ((node === null || node === void 0 ? void 0 : node.type) === 'string-value') {
17
- let isMatched = true;
18
- if (typeof this.content === 'string') {
19
- isMatched = this.content === node.value;
20
- }
21
- else if ((0, regex_1.isRegex)(this.content)) {
22
- isMatched = this.content.test(node.value);
23
- }
24
- if (isMatched) {
25
- context = this.handler(context, node);
26
- cursor = this.moveRight(cursor);
27
- return { cursor, context };
28
- }
29
- }
30
- return null;
31
- }
32
- }
33
- exports.StrContentMatcher = StrContentMatcher;
34
- class StrTplMatcher extends abstract_matcher_1.AbstractMatcher {
35
- constructor(config) {
36
- super();
37
- this.matcher = config.matcher;
38
- this.preHandler = (0, handler_1.safeHandler)(config.preHandler);
39
- this.postHandler = (0, handler_1.safeHandler)(config.postHandler);
40
- }
41
- match(checkpoint) {
42
- var _a;
43
- const { cursor: tplCursor, context: tplContext } = checkpoint;
44
- const rootNode = tplCursor.node;
45
- if ((rootNode === null || rootNode === void 0 ? void 0 : rootNode.type) === 'template-tree') {
46
- let cursor = checkpoint.cursor.down;
47
- if (cursor && cursor.node) {
48
- let context = this.preHandler(tplContext, rootNode);
49
- cursor = this.matcher.seekNext(cursor);
50
- const match = this.matcher.match({ context, cursor });
51
- if (match) {
52
- ({ cursor, context } = match);
53
- cursor = this.seekNext(cursor);
54
- if (((_a = cursor.node) === null || _a === void 0 ? void 0 : _a.type) === '_end') {
55
- context = this.postHandler(context, rootNode);
56
- cursor = this.moveRight(tplCursor);
57
- return { context, cursor };
58
- }
59
- }
60
- }
61
- }
62
- return null;
63
- }
64
- }
65
- exports.StrTplMatcher = StrTplMatcher;
66
- class StrNodeMatcher extends abstract_matcher_1.AbstractMatcher {
67
- constructor(opts) {
68
- var _a;
69
- super();
70
- this.matchers = (_a = opts.matchers) !== null && _a !== void 0 ? _a : null;
71
- this.preHandler = (0, handler_1.safeHandler)(opts.preHandler);
72
- this.postHandler = (0, handler_1.safeHandler)(opts.postHandler);
73
- }
74
- match(checkpoint) {
75
- var _a;
76
- const rootCursor = this.seekNext(checkpoint.cursor);
77
- const rootNode = rootCursor.node;
78
- if ((rootNode === null || rootNode === void 0 ? void 0 : rootNode.type) === 'string-tree') {
79
- let context = this.preHandler(checkpoint.context, rootNode);
80
- let cursor = rootCursor;
81
- if (this.matchers) {
82
- const tokensCount = cursor.children.length - 2;
83
- if (tokensCount !== this.matchers.length) {
84
- return null;
85
- }
86
- if (tokensCount > 0) {
87
- cursor = this.moveRight(cursor.down);
88
- for (const matcher of this.matchers) {
89
- const match = matcher.match({ context, cursor });
90
- if (!match) {
91
- return null;
92
- }
93
- ({ cursor, context } = match);
94
- }
95
- }
96
- }
97
- context = this.postHandler(context, rootNode);
98
- cursor = this.moveRight(rootCursor);
99
- return { context, cursor };
100
- }
101
- else if ((rootNode === null || rootNode === void 0 ? void 0 : rootNode.type) === 'string-value' && ((_a = this.matchers) === null || _a === void 0 ? void 0 : _a.length)) {
102
- const matcher = this.matchers[0];
103
- return matcher.match({ context: checkpoint.context, cursor: rootCursor });
104
- }
105
- return null;
106
- }
107
- }
108
- exports.StrNodeMatcher = StrNodeMatcher;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StrNodeMatcher = exports.StrTplMatcher = exports.StrContentMatcher = void 0;
4
+ const handler_1 = require("../handler");
5
+ const regex_1 = require("../regex");
6
+ const abstract_matcher_1 = require("./abstract-matcher");
7
+ class StrContentMatcher extends abstract_matcher_1.AbstractMatcher {
8
+ constructor({ value, handler }) {
9
+ super();
10
+ this.content = value !== null && value !== void 0 ? value : null;
11
+ this.handler = (0, handler_1.safeHandler)(handler);
12
+ }
13
+ match(checkpoint) {
14
+ let { cursor, context } = checkpoint;
15
+ const node = cursor.node;
16
+ if ((node === null || node === void 0 ? void 0 : node.type) === 'string-value') {
17
+ let isMatched = true;
18
+ if (typeof this.content === 'string') {
19
+ isMatched = this.content === node.value;
20
+ }
21
+ else if ((0, regex_1.isRegex)(this.content)) {
22
+ isMatched = this.content.test(node.value);
23
+ }
24
+ if (isMatched) {
25
+ context = this.handler(context, node);
26
+ cursor = this.moveRight(cursor);
27
+ return { cursor, context };
28
+ }
29
+ }
30
+ return null;
31
+ }
32
+ }
33
+ exports.StrContentMatcher = StrContentMatcher;
34
+ class StrTplMatcher extends abstract_matcher_1.AbstractMatcher {
35
+ constructor(config) {
36
+ super();
37
+ this.matcher = config.matcher;
38
+ this.preHandler = (0, handler_1.safeHandler)(config.preHandler);
39
+ this.postHandler = (0, handler_1.safeHandler)(config.postHandler);
40
+ }
41
+ match(checkpoint) {
42
+ var _a;
43
+ const { cursor: tplCursor, context: tplContext } = checkpoint;
44
+ const rootNode = tplCursor.node;
45
+ if ((rootNode === null || rootNode === void 0 ? void 0 : rootNode.type) === 'template-tree') {
46
+ let cursor = checkpoint.cursor.down;
47
+ if (cursor && cursor.node) {
48
+ let context = this.preHandler(tplContext, rootNode);
49
+ cursor = this.matcher.seekNext(cursor);
50
+ const match = this.matcher.match({ context, cursor });
51
+ if (match) {
52
+ ({ cursor, context } = match);
53
+ cursor = this.seekNext(cursor);
54
+ if (((_a = cursor.node) === null || _a === void 0 ? void 0 : _a.type) === '_end') {
55
+ context = this.postHandler(context, rootNode);
56
+ cursor = this.moveRight(tplCursor);
57
+ return { context, cursor };
58
+ }
59
+ }
60
+ }
61
+ }
62
+ return null;
63
+ }
64
+ }
65
+ exports.StrTplMatcher = StrTplMatcher;
66
+ class StrNodeMatcher extends abstract_matcher_1.AbstractMatcher {
67
+ constructor(opts) {
68
+ var _a;
69
+ super();
70
+ this.matchers = (_a = opts.matchers) !== null && _a !== void 0 ? _a : null;
71
+ this.preHandler = (0, handler_1.safeHandler)(opts.preHandler);
72
+ this.postHandler = (0, handler_1.safeHandler)(opts.postHandler);
73
+ }
74
+ match(checkpoint) {
75
+ var _a;
76
+ const rootCursor = this.seekNext(checkpoint.cursor);
77
+ const rootNode = rootCursor.node;
78
+ if ((rootNode === null || rootNode === void 0 ? void 0 : rootNode.type) === 'string-tree') {
79
+ let context = this.preHandler(checkpoint.context, rootNode);
80
+ let cursor = rootCursor;
81
+ if (this.matchers) {
82
+ const tokensCount = cursor.children.length - 2;
83
+ if (tokensCount !== this.matchers.length) {
84
+ return null;
85
+ }
86
+ if (tokensCount > 0) {
87
+ cursor = this.moveRight(cursor.down);
88
+ for (const matcher of this.matchers) {
89
+ const match = matcher.match({ context, cursor });
90
+ if (!match) {
91
+ return null;
92
+ }
93
+ ({ cursor, context } = match);
94
+ }
95
+ }
96
+ }
97
+ context = this.postHandler(context, rootNode);
98
+ cursor = this.moveRight(rootCursor);
99
+ return { context, cursor };
100
+ }
101
+ else if ((rootNode === null || rootNode === void 0 ? void 0 : rootNode.type) === 'string-value' && ((_a = this.matchers) === null || _a === void 0 ? void 0 : _a.length)) {
102
+ const matcher = this.matchers[0];
103
+ return matcher.match({ context: checkpoint.context, cursor: rootCursor });
104
+ }
105
+ return null;
106
+ }
107
+ }
108
+ exports.StrNodeMatcher = StrNodeMatcher;
109
109
  //# sourceMappingURL=str-matcher.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"str-matcher.js","sourceRoot":"","sources":["../../../../lib/query/matchers/str-matcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"str-matcher.js","sourceRoot":"","sources":["../../../../lib/query/matchers/str-matcher.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
- import type { Checkpoint, SymMatcherHandler, SymMatcherOptions, SymMatcherValue } from '../types';
2
- import { AbstractMatcher } from './abstract-matcher';
3
- export declare class SymMatcher<Ctx> extends AbstractMatcher<Ctx> {
4
- readonly sym: SymMatcherValue;
5
- readonly handler: SymMatcherHandler<Ctx>;
6
- constructor({ value, handler }: SymMatcherOptions<Ctx>);
7
- match(checkpoint: Checkpoint<Ctx>): Checkpoint<Ctx> | null;
8
- }
1
+ import type { Checkpoint, SymMatcherHandler, SymMatcherOptions, SymMatcherValue } from '../types';
2
+ import { AbstractMatcher } from './abstract-matcher';
3
+ export declare class SymMatcher<Ctx> extends AbstractMatcher<Ctx> {
4
+ readonly sym: SymMatcherValue;
5
+ readonly handler: SymMatcherHandler<Ctx>;
6
+ constructor({ value, handler }: SymMatcherOptions<Ctx>);
7
+ match(checkpoint: Checkpoint<Ctx>): Checkpoint<Ctx> | null;
8
+ }
9
9
  //# sourceMappingURL=sym-matcher.d.ts.map
@@ -1,35 +1,35 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SymMatcher = void 0;
4
- const handler_1 = require("../handler");
5
- const regex_1 = require("../regex");
6
- const abstract_matcher_1 = require("./abstract-matcher");
7
- class SymMatcher extends abstract_matcher_1.AbstractMatcher {
8
- constructor({ value, handler }) {
9
- super();
10
- this.sym = value;
11
- this.handler = (0, handler_1.safeHandler)(handler);
12
- }
13
- match(checkpoint) {
14
- let context = checkpoint.context;
15
- let cursor = this.seekNext(checkpoint.cursor);
16
- const node = cursor.node;
17
- if ((node === null || node === void 0 ? void 0 : node.type) === 'symbol') {
18
- let isMatched = true;
19
- if (typeof this.sym === 'string') {
20
- isMatched = this.sym === node.value;
21
- }
22
- else if ((0, regex_1.isRegex)(this.sym)) {
23
- isMatched = this.sym.test(node.value);
24
- }
25
- if (isMatched) {
26
- context = this.handler(context, node);
27
- cursor = this.moveRight(cursor);
28
- return { cursor, context };
29
- }
30
- }
31
- return null;
32
- }
33
- }
34
- exports.SymMatcher = SymMatcher;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SymMatcher = void 0;
4
+ const handler_1 = require("../handler");
5
+ const regex_1 = require("../regex");
6
+ const abstract_matcher_1 = require("./abstract-matcher");
7
+ class SymMatcher extends abstract_matcher_1.AbstractMatcher {
8
+ constructor({ value, handler }) {
9
+ super();
10
+ this.sym = value;
11
+ this.handler = (0, handler_1.safeHandler)(handler);
12
+ }
13
+ match(checkpoint) {
14
+ let context = checkpoint.context;
15
+ let cursor = this.seekNext(checkpoint.cursor);
16
+ const node = cursor.node;
17
+ if ((node === null || node === void 0 ? void 0 : node.type) === 'symbol') {
18
+ let isMatched = true;
19
+ if (typeof this.sym === 'string') {
20
+ isMatched = this.sym === node.value;
21
+ }
22
+ else if ((0, regex_1.isRegex)(this.sym)) {
23
+ isMatched = this.sym.test(node.value);
24
+ }
25
+ if (isMatched) {
26
+ context = this.handler(context, node);
27
+ cursor = this.moveRight(cursor);
28
+ return { cursor, context };
29
+ }
30
+ }
31
+ return null;
32
+ }
33
+ }
34
+ exports.SymMatcher = SymMatcher;
35
35
  //# sourceMappingURL=sym-matcher.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sym-matcher.js","sourceRoot":"","sources":["../../../../lib/query/matchers/sym-matcher.ts"],"names":[],"mappings":";;;AACA,wCAAyC;AACzC,oCAAmC;AAOnC,yDAAqD;AAErD,MAAa,UAAgB,SAAQ,kCAAoB;IAIvD,YAAY,EAAE,KAAK,EAAE,OAAO,EAA0B;QACpD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,IAAA,qBAAW,EAAmB,OAAO,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,UAA2B;QAC/B,IAAI,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QACjC,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACzB,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,MAAK,QAAQ,EAAE;YAC3B,IAAI,SAAS,GAAG,IAAI,CAAC;YACrB,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,EAAE;gBAChC,SAAS,GAAG,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,KAAK,CAAC;aACrC;iBAAM,IAAI,IAAA,eAAO,EAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBAC5B,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACvC;YACD,IAAI,SAAS,EAAE;gBACb,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBACtC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAChC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;aAC5B;SACF;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AA9BD,gCA8BC"}
1
+ {"version":3,"file":"sym-matcher.js","sourceRoot":"","sources":["../../../../lib/query/matchers/sym-matcher.ts"],"names":[],"mappings":";;;AACA,wCAAyC;AACzC,oCAAmC;AAOnC,yDAAqD;AAErD,MAAa,UAAgB,SAAQ,kCAAoB;IAIvD,YAAY,EAAE,KAAK,EAAE,OAAO,EAA0B;QACpD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,IAAA,qBAAW,EAAmB,OAAO,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,UAA2B;QAC/B,IAAI,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QACjC,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACzB,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,MAAK,QAAQ,EAAE,CAAC;YAC5B,IAAI,SAAS,GAAG,IAAI,CAAC;YACrB,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;gBACjC,SAAS,GAAG,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,KAAK,CAAC;YACtC,CAAC;iBAAM,IAAI,IAAA,eAAO,EAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7B,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxC,CAAC;YACD,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBACtC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAChC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AA9BD,gCA8BC"}
@@ -1,24 +1,24 @@
1
- import type { Cursor } from '../../parser/types';
2
- import type { Checkpoint, Matcher, TreeMatcherHandler, TreeMatcherType, TreeOptionsBase } from '../types';
3
- import { AbstractMatcher } from './abstract-matcher';
4
- interface TreeMatcherOptions<Ctx> extends TreeOptionsBase<Ctx> {
5
- matcher: Matcher<Ctx> | null;
6
- }
7
- export declare class TreeMatcher<Ctx> extends AbstractMatcher<Ctx> {
8
- readonly type: TreeMatcherType | null;
9
- readonly startsWithValue: string | null;
10
- readonly endsWithValue: string | null;
11
- readonly matcher: Matcher<Ctx> | null;
12
- readonly maxDepth: number;
13
- readonly maxMatches: number;
14
- readonly preHandler: TreeMatcherHandler<Ctx>;
15
- readonly postHandler: TreeMatcherHandler<Ctx>;
16
- private walkDepth;
17
- private matchCount;
18
- constructor(config: TreeMatcherOptions<Ctx>);
19
- walkToNextSignificantNode(cursor: Cursor): Cursor | undefined;
20
- walkToNextMatch(context: Ctx, cursor: Cursor | undefined): Checkpoint<Ctx> | undefined;
21
- match(checkpoint: Checkpoint<Ctx>): Checkpoint<Ctx> | null;
22
- }
23
- export {};
1
+ import type { Cursor } from '../../parser/types';
2
+ import type { Checkpoint, Matcher, TreeMatcherHandler, TreeMatcherType, TreeOptionsBase } from '../types';
3
+ import { AbstractMatcher } from './abstract-matcher';
4
+ interface TreeMatcherOptions<Ctx> extends TreeOptionsBase<Ctx> {
5
+ matcher: Matcher<Ctx> | null;
6
+ }
7
+ export declare class TreeMatcher<Ctx> extends AbstractMatcher<Ctx> {
8
+ readonly type: TreeMatcherType | null;
9
+ readonly startsWithValue: string | null;
10
+ readonly endsWithValue: string | null;
11
+ readonly matcher: Matcher<Ctx> | null;
12
+ readonly maxDepth: number;
13
+ readonly maxMatches: number;
14
+ readonly preHandler: TreeMatcherHandler<Ctx>;
15
+ readonly postHandler: TreeMatcherHandler<Ctx>;
16
+ private walkDepth;
17
+ private matchCount;
18
+ constructor(config: TreeMatcherOptions<Ctx>);
19
+ walkToNextSignificantNode(cursor: Cursor): Cursor | undefined;
20
+ walkToNextMatch(context: Ctx, cursor: Cursor | undefined): Checkpoint<Ctx> | undefined;
21
+ match(checkpoint: Checkpoint<Ctx>): Checkpoint<Ctx> | null;
22
+ }
23
+ export {};
24
24
  //# sourceMappingURL=tree-matcher.d.ts.map