@renovatebot/good-enough-parser 1.1.24 → 1.2.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 (166) 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/python.d.ts +6 -6
  9. package/dist/cjs/lang/python.js +73 -73
  10. package/dist/cjs/lang/scala.d.ts +6 -6
  11. package/dist/cjs/lang/scala.js +71 -71
  12. package/dist/cjs/lang/starlark.d.ts +6 -6
  13. package/dist/cjs/lang/starlark.js +58 -58
  14. package/dist/cjs/lang/types.d.ts +6 -6
  15. package/dist/cjs/lang/types.js +2 -2
  16. package/dist/cjs/lexer/bracket.d.ts +6 -6
  17. package/dist/cjs/lexer/bracket.js +57 -57
  18. package/dist/cjs/lexer/comment.d.ts +3 -3
  19. package/dist/cjs/lexer/comment.js +44 -44
  20. package/dist/cjs/lexer/index.d.ts +5 -5
  21. package/dist/cjs/lexer/index.js +155 -155
  22. package/dist/cjs/lexer/number.d.ts +2 -2
  23. package/dist/cjs/lexer/number.js +18 -18
  24. package/dist/cjs/lexer/operator.d.ts +2 -2
  25. package/dist/cjs/lexer/operator.js +24 -24
  26. package/dist/cjs/lexer/rules.d.ts +4 -4
  27. package/dist/cjs/lexer/rules.js +74 -74
  28. package/dist/cjs/lexer/string.d.ts +2 -2
  29. package/dist/cjs/lexer/string.js +181 -181
  30. package/dist/cjs/lexer/symbol.d.ts +2 -2
  31. package/dist/cjs/lexer/symbol.js +18 -18
  32. package/dist/cjs/lexer/token.d.ts +3 -3
  33. package/dist/cjs/lexer/token.js +64 -64
  34. package/dist/cjs/lexer/types.d.ts +142 -142
  35. package/dist/cjs/lexer/types.js +2 -2
  36. package/dist/cjs/parser/cursor.d.ts +2 -2
  37. package/dist/cjs/parser/cursor.js +13 -13
  38. package/dist/cjs/parser/index.d.ts +3 -3
  39. package/dist/cjs/parser/index.js +19 -19
  40. package/dist/cjs/parser/tree.d.ts +4 -4
  41. package/dist/cjs/parser/tree.js +246 -246
  42. package/dist/cjs/parser/types.d.ts +33 -33
  43. package/dist/cjs/parser/types.js +2 -2
  44. package/dist/cjs/query/builder.d.ts +144 -144
  45. package/dist/cjs/query/builder.js +332 -332
  46. package/dist/cjs/query/handler.d.ts +2 -2
  47. package/dist/cjs/query/handler.js +10 -10
  48. package/dist/cjs/query/index.d.ts +2 -2
  49. package/dist/cjs/query/index.js +32 -32
  50. package/dist/cjs/query/matchers/abstract-matcher.d.ts +9 -9
  51. package/dist/cjs/query/matchers/abstract-matcher.js +36 -36
  52. package/dist/cjs/query/matchers/alt-matcher.d.ts +10 -10
  53. package/dist/cjs/query/matchers/alt-matcher.js +33 -33
  54. package/dist/cjs/query/matchers/anchor-matcher.d.ts +17 -17
  55. package/dist/cjs/query/matchers/anchor-matcher.js +50 -50
  56. package/dist/cjs/query/matchers/comment-matcher.d.ts +10 -10
  57. package/dist/cjs/query/matchers/comment-matcher.js +39 -39
  58. package/dist/cjs/query/matchers/index.d.ts +6 -6
  59. package/dist/cjs/query/matchers/index.js +22 -22
  60. package/dist/cjs/query/matchers/many-matcher.d.ts +13 -13
  61. package/dist/cjs/query/matchers/many-matcher.js +61 -61
  62. package/dist/cjs/query/matchers/num-matcher.d.ts +8 -8
  63. package/dist/cjs/query/matchers/num-matcher.js +34 -34
  64. package/dist/cjs/query/matchers/op-matcher.d.ts +8 -8
  65. package/dist/cjs/query/matchers/op-matcher.js +34 -34
  66. package/dist/cjs/query/matchers/seq-matcher.d.ts +14 -14
  67. package/dist/cjs/query/matchers/seq-matcher.js +76 -76
  68. package/dist/cjs/query/matchers/str-matcher.d.ts +38 -38
  69. package/dist/cjs/query/matchers/str-matcher.js +108 -108
  70. package/dist/cjs/query/matchers/sym-matcher.d.ts +8 -8
  71. package/dist/cjs/query/matchers/sym-matcher.js +34 -34
  72. package/dist/cjs/query/matchers/tree-matcher.d.ts +23 -23
  73. package/dist/cjs/query/matchers/tree-matcher.js +121 -121
  74. package/dist/cjs/query/options.d.ts +10 -10
  75. package/dist/cjs/query/options.js +149 -149
  76. package/dist/cjs/query/regex.d.ts +1 -1
  77. package/dist/cjs/query/regex.js +13 -13
  78. package/dist/cjs/query/types.d.ts +100 -100
  79. package/dist/cjs/query/types.js +2 -2
  80. package/dist/cjs/util/clone.d.ts +1 -1
  81. package/dist/cjs/util/clone.js +5 -5
  82. package/dist/cjs/util/regex.d.ts +1 -1
  83. package/dist/cjs/util/regex.js +7 -7
  84. package/dist/esm/index.d.ts +4 -4
  85. package/dist/esm/index.js +8 -8
  86. package/dist/esm/lang/groovy.d.ts +6 -6
  87. package/dist/esm/lang/groovy.js +80 -80
  88. package/dist/esm/lang/index.d.ts +20 -20
  89. package/dist/esm/lang/index.js +37 -37
  90. package/dist/esm/lang/python.d.ts +6 -6
  91. package/dist/esm/lang/python.js +70 -70
  92. package/dist/esm/lang/scala.d.ts +6 -6
  93. package/dist/esm/lang/scala.js +68 -68
  94. package/dist/esm/lang/starlark.d.ts +6 -6
  95. package/dist/esm/lang/starlark.js +55 -55
  96. package/dist/esm/lang/types.d.ts +6 -6
  97. package/dist/esm/lang/types.js +1 -1
  98. package/dist/esm/lexer/bracket.d.ts +6 -6
  99. package/dist/esm/lexer/bracket.js +49 -49
  100. package/dist/esm/lexer/comment.d.ts +3 -3
  101. package/dist/esm/lexer/comment.js +39 -39
  102. package/dist/esm/lexer/index.d.ts +5 -5
  103. package/dist/esm/lexer/index.js +136 -136
  104. package/dist/esm/lexer/number.d.ts +2 -2
  105. package/dist/esm/lexer/number.js +14 -14
  106. package/dist/esm/lexer/operator.d.ts +2 -2
  107. package/dist/esm/lexer/operator.js +20 -20
  108. package/dist/esm/lexer/rules.d.ts +4 -4
  109. package/dist/esm/lexer/rules.js +69 -69
  110. package/dist/esm/lexer/string.d.ts +2 -2
  111. package/dist/esm/lexer/string.js +177 -177
  112. package/dist/esm/lexer/symbol.d.ts +2 -2
  113. package/dist/esm/lexer/symbol.js +14 -14
  114. package/dist/esm/lexer/token.d.ts +3 -3
  115. package/dist/esm/lexer/token.js +60 -60
  116. package/dist/esm/lexer/types.d.ts +142 -142
  117. package/dist/esm/lexer/types.js +1 -1
  118. package/dist/esm/parser/cursor.d.ts +2 -2
  119. package/dist/esm/parser/cursor.js +9 -9
  120. package/dist/esm/parser/index.d.ts +3 -3
  121. package/dist/esm/parser/index.js +3 -3
  122. package/dist/esm/parser/tree.d.ts +4 -4
  123. package/dist/esm/parser/tree.js +241 -241
  124. package/dist/esm/parser/types.d.ts +33 -33
  125. package/dist/esm/parser/types.js +1 -1
  126. package/dist/esm/query/builder.d.ts +144 -144
  127. package/dist/esm/query/builder.js +304 -304
  128. package/dist/esm/query/handler.d.ts +2 -2
  129. package/dist/esm/query/handler.js +6 -6
  130. package/dist/esm/query/index.d.ts +2 -2
  131. package/dist/esm/query/index.js +2 -2
  132. package/dist/esm/query/matchers/abstract-matcher.d.ts +9 -9
  133. package/dist/esm/query/matchers/abstract-matcher.js +32 -32
  134. package/dist/esm/query/matchers/alt-matcher.d.ts +10 -10
  135. package/dist/esm/query/matchers/alt-matcher.js +29 -29
  136. package/dist/esm/query/matchers/anchor-matcher.d.ts +17 -17
  137. package/dist/esm/query/matchers/anchor-matcher.js +44 -44
  138. package/dist/esm/query/matchers/comment-matcher.d.ts +10 -10
  139. package/dist/esm/query/matchers/comment-matcher.js +35 -35
  140. package/dist/esm/query/matchers/index.d.ts +6 -6
  141. package/dist/esm/query/matchers/index.js +6 -6
  142. package/dist/esm/query/matchers/many-matcher.d.ts +13 -13
  143. package/dist/esm/query/matchers/many-matcher.js +57 -57
  144. package/dist/esm/query/matchers/num-matcher.d.ts +8 -8
  145. package/dist/esm/query/matchers/num-matcher.js +30 -30
  146. package/dist/esm/query/matchers/op-matcher.d.ts +8 -8
  147. package/dist/esm/query/matchers/op-matcher.js +30 -30
  148. package/dist/esm/query/matchers/seq-matcher.d.ts +14 -14
  149. package/dist/esm/query/matchers/seq-matcher.js +72 -72
  150. package/dist/esm/query/matchers/str-matcher.d.ts +38 -38
  151. package/dist/esm/query/matchers/str-matcher.js +102 -102
  152. package/dist/esm/query/matchers/sym-matcher.d.ts +8 -8
  153. package/dist/esm/query/matchers/sym-matcher.js +30 -30
  154. package/dist/esm/query/matchers/tree-matcher.d.ts +23 -23
  155. package/dist/esm/query/matchers/tree-matcher.js +117 -117
  156. package/dist/esm/query/options.d.ts +10 -10
  157. package/dist/esm/query/options.js +139 -139
  158. package/dist/esm/query/regex.d.ts +1 -1
  159. package/dist/esm/query/regex.js +9 -9
  160. package/dist/esm/query/types.d.ts +100 -100
  161. package/dist/esm/query/types.js +1 -1
  162. package/dist/esm/util/clone.d.ts +1 -1
  163. package/dist/esm/util/clone.js +1 -1
  164. package/dist/esm/util/regex.d.ts +1 -1
  165. package/dist/esm/util/regex.js +3 -3
  166. package/package.json +3 -3
@@ -1,145 +1,145 @@
1
- import type { CommentToken, EndToken, NumberToken, OperatorToken, StartToken, SymbolToken } from '../lexer';
2
- import type { Node, StringTree, Tree, TreeType } from '../parser/types';
3
- import { AltMatcher, ManyMatcher, OpMatcher, SeqMatcher, SymMatcher } from './matchers';
4
- import { BeginMatcher, VoidMatcher } from './matchers/anchor-matcher';
5
- import { CommentMatcher } from './matchers/comment-matcher';
6
- import { NumMatcher } from './matchers/num-matcher';
7
- import { StrContentMatcherHandler, StrNodeMatcher } from './matchers/str-matcher';
8
- import { TreeMatcher } from './matchers/tree-matcher';
9
- import type { CommentMatcherHandler, CommentMatcherOptions, CommentMatcherValue, ManyBuilderOpts, Matcher, NumMatcherHandler, NumMatcherOptions, NumMatcherValue, OpMatcherHandler, OpMatcherOptions, OpMatcherValue, QueryBuilder, StrBuilderOptions, StrTreeBuilderOptions, StrTreeBuilderOptionsBase, SymMatcherHandler, SymMatcherOptions, SymMatcherValue, TreeBuilderOptions } from './types';
10
- declare abstract class TerminalBuilder<Ctx, T extends Node> implements QueryBuilder<Ctx, T> {
11
- abstract build(): Matcher<Ctx>;
12
- handler(fn: (context: Ctx, t: T) => Ctx): SeqBuilder<Ctx, T>;
13
- }
14
- declare abstract class AbstractBuilder<Ctx, T extends Node> extends TerminalBuilder<Ctx, T> {
15
- sym(): SeqBuilder<Ctx, SymbolToken>;
16
- sym(value: SymMatcherValue): SeqBuilder<Ctx, SymbolToken>;
17
- sym(handler: SymMatcherHandler<Ctx>): SeqBuilder<Ctx, SymbolToken>;
18
- sym(value: SymMatcherValue, handler: SymMatcherHandler<Ctx>): SeqBuilder<Ctx, SymbolToken>;
19
- sym(opts: SymMatcherOptions<Ctx>): SeqBuilder<Ctx, SymbolToken>;
20
- op(): SeqBuilder<Ctx, OperatorToken>;
21
- op(value: OpMatcherValue): SeqBuilder<Ctx, OperatorToken>;
22
- op(handler: OpMatcherHandler<Ctx>): SeqBuilder<Ctx, OperatorToken>;
23
- op(value: OpMatcherValue, handler: OpMatcherHandler<Ctx>): SeqBuilder<Ctx, OperatorToken>;
24
- op(opts: OpMatcherOptions<Ctx>): SeqBuilder<Ctx, OperatorToken>;
25
- comment(): SeqBuilder<Ctx, CommentToken>;
26
- comment(value: CommentMatcherValue): SeqBuilder<Ctx, CommentToken>;
27
- comment(handler: CommentMatcherHandler<Ctx>): SeqBuilder<Ctx, CommentToken>;
28
- comment(value: CommentMatcherValue, handler: CommentMatcherHandler<Ctx>): SeqBuilder<Ctx, CommentToken>;
29
- comment(opts: CommentMatcherOptions<Ctx>): SeqBuilder<Ctx, CommentToken>;
30
- num(): SeqBuilder<Ctx, NumberToken>;
31
- num(value: NumMatcherValue): SeqBuilder<Ctx, NumberToken>;
32
- num(handler: NumMatcherHandler<Ctx>): SeqBuilder<Ctx, NumberToken>;
33
- num(value: NumMatcherValue, handler: NumMatcherHandler<Ctx>): SeqBuilder<Ctx, NumberToken>;
34
- num(opts: NumMatcherOptions<Ctx>): SeqBuilder<Ctx, NumberToken>;
35
- many(builder: QueryBuilder<Ctx, Node>): SeqBuilder<Ctx, Node>;
36
- many(builder: QueryBuilder<Ctx, Node>, min: number, max: number): SeqBuilder<Ctx, Node>;
37
- opt(innerBuilder: QueryBuilder<Ctx, Node>): SeqBuilder<Ctx, Node>;
38
- alt(...alts: QueryBuilder<Ctx, Node>[]): SeqBuilder<Ctx, Node>;
39
- tree(): SeqBuilder<Ctx, Tree>;
40
- tree(type: TreeType): SeqBuilder<Ctx, Tree>;
41
- tree(opts: TreeBuilderOptions<Ctx>): SeqBuilder<Ctx, Tree>;
42
- str(): SeqBuilder<Ctx, StringTree>;
43
- str(handler: StrContentMatcherHandler<Ctx>): SeqBuilder<Ctx, StringTree>;
44
- str(exact: string, handler?: StrContentMatcherHandler<Ctx>): SeqBuilder<Ctx, StringTree>;
45
- str(pattern: RegExp, handler?: StrContentMatcherHandler<Ctx>): SeqBuilder<Ctx, StringTree>;
46
- str(opts: StrTreeBuilderOptions<Ctx>): SeqBuilder<Ctx, StringTree>;
47
- end(): EndBuilder<Ctx, T>;
48
- join<U extends Node>(other: QueryBuilder<Ctx, U>): SeqBuilder<Ctx, U>;
49
- }
50
- export declare class BeginBuilder<Ctx, T extends Node> extends AbstractBuilder<Ctx, T> {
51
- build(): BeginMatcher<Ctx>;
52
- }
53
- export declare class EndBuilder<Ctx, T extends Node> extends TerminalBuilder<Ctx, EndToken> {
54
- private readonly builder;
55
- constructor(builder: QueryBuilder<Ctx, T>);
56
- build(): SeqMatcher<Ctx>;
57
- }
58
- export declare function begin<Ctx>(): BeginBuilder<Ctx, StartToken>;
59
- export declare class VoidBuilder<Ctx, T extends Node> extends AbstractBuilder<Ctx, T> {
60
- private readonly fn;
61
- constructor(fn: (context: Ctx, t: T) => Ctx);
62
- build(): VoidMatcher<Ctx, T>;
63
- }
64
- export declare function handler<Ctx>(fn: (context: Ctx, t: Node) => Ctx): VoidBuilder<Ctx, Node>;
65
- export declare class SeqBuilder<Ctx, T extends Node> extends AbstractBuilder<Ctx, T> {
66
- private readonly builders;
67
- constructor(prev: QueryBuilder<Ctx, Node>, next: QueryBuilder<Ctx, T>);
68
- build(): SeqMatcher<Ctx>;
69
- }
70
- export declare function join<Ctx>(first: QueryBuilder<Ctx, Node>, second: QueryBuilder<Ctx, Node>, ...others: QueryBuilder<Ctx, Node>[]): SeqBuilder<Ctx, Node>;
71
- export declare class SymBuilder<Ctx> extends AbstractBuilder<Ctx, SymbolToken> {
72
- private opts;
73
- constructor(opts: SymMatcherOptions<Ctx>);
74
- build(): SymMatcher<Ctx>;
75
- }
76
- export declare function sym<Ctx>(): SymBuilder<Ctx>;
77
- export declare function sym<Ctx>(value: SymMatcherValue): SymBuilder<Ctx>;
78
- export declare function sym<Ctx>(handler: SymMatcherHandler<Ctx>): SymBuilder<Ctx>;
79
- export declare function sym<Ctx>(value: SymMatcherValue, handler: SymMatcherHandler<Ctx>): SymBuilder<Ctx>;
80
- export declare function sym<Ctx>(opts: SymMatcherOptions<Ctx>): SymBuilder<Ctx>;
81
- export declare class OpBuilder<Ctx> extends AbstractBuilder<Ctx, OperatorToken> {
82
- private opts;
83
- constructor(opts: OpMatcherOptions<Ctx>);
84
- build(): OpMatcher<Ctx>;
85
- }
86
- export declare function op<Ctx>(): OpBuilder<Ctx>;
87
- export declare function op<Ctx>(value: OpMatcherValue): OpBuilder<Ctx>;
88
- export declare function op<Ctx>(handler: OpMatcherHandler<Ctx>): OpBuilder<Ctx>;
89
- export declare function op<Ctx>(value: OpMatcherValue, handler: OpMatcherHandler<Ctx>): OpBuilder<Ctx>;
90
- export declare function op<Ctx>(opts: OpMatcherOptions<Ctx>): OpBuilder<Ctx>;
91
- export declare class CommentBuilder<Ctx> extends AbstractBuilder<Ctx, CommentToken> {
92
- private opts;
93
- constructor(opts: CommentMatcherOptions<Ctx>);
94
- build(): CommentMatcher<Ctx>;
95
- }
96
- export declare function comment<Ctx>(): CommentBuilder<Ctx>;
97
- export declare function comment<Ctx>(value: CommentMatcherValue): CommentBuilder<Ctx>;
98
- export declare function comment<Ctx>(handler: CommentMatcherHandler<Ctx>): CommentBuilder<Ctx>;
99
- export declare function comment<Ctx>(value: CommentMatcherValue, handler: CommentMatcherHandler<Ctx>): CommentBuilder<Ctx>;
100
- export declare function comment<Ctx>(opts: CommentMatcherOptions<Ctx>): CommentBuilder<Ctx>;
101
- export declare class NumBuilder<Ctx> extends AbstractBuilder<Ctx, NumberToken> {
102
- private opts;
103
- constructor(opts: NumMatcherOptions<Ctx>);
104
- build(): NumMatcher<Ctx>;
105
- }
106
- export declare function num<Ctx>(): NumBuilder<Ctx>;
107
- export declare function num<Ctx>(value: NumMatcherValue): NumBuilder<Ctx>;
108
- export declare function num<Ctx>(handler: NumMatcherHandler<Ctx>): NumBuilder<Ctx>;
109
- export declare function num<Ctx>(value: NumMatcherValue, handler: NumMatcherHandler<Ctx>): NumBuilder<Ctx>;
110
- export declare function num<Ctx>(opts: NumMatcherOptions<Ctx>): NumBuilder<Ctx>;
111
- export declare class ManyBuilder<Ctx> extends AbstractBuilder<Ctx, Node> {
112
- private opts;
113
- constructor(opts: ManyBuilderOpts<Ctx>);
114
- build(): ManyMatcher<Ctx>;
115
- }
116
- export declare function many<Ctx>(builder: QueryBuilder<Ctx, Node>): ManyBuilder<Ctx>;
117
- export declare function many<Ctx>(builder: QueryBuilder<Ctx, Node>, min: number, max: number): ManyBuilder<Ctx>;
118
- export declare function opt<Ctx>(builder: QueryBuilder<Ctx, Node>): ManyBuilder<Ctx>;
119
- export declare class AltBuilder<Ctx> extends AbstractBuilder<Ctx, Node> {
120
- private builders;
121
- constructor(builders: QueryBuilder<Ctx, Node>[]);
122
- build(): AltMatcher<Ctx>;
123
- }
124
- export declare function alt<Ctx>(...builders: QueryBuilder<Ctx, Node>[]): AltBuilder<Ctx>;
125
- export declare class TreeBuilder<Ctx> extends AbstractBuilder<Ctx, Tree> {
126
- private opts;
127
- constructor(opts: TreeBuilderOptions<Ctx>);
128
- build(): TreeMatcher<Ctx>;
129
- }
130
- export declare function tree<Ctx>(): TreeBuilder<Ctx>;
131
- export declare function tree<Ctx>(type: TreeType): TreeBuilder<Ctx>;
132
- export declare function tree<Ctx>(opts: TreeBuilderOptions<Ctx>): TreeBuilder<Ctx>;
133
- export declare class StrBuilder<Ctx> extends AbstractBuilder<Ctx, StringTree> {
134
- private opts;
135
- constructor(opts: StrBuilderOptions<Ctx>);
136
- build(): StrNodeMatcher<Ctx>;
137
- }
138
- export declare function str<Ctx>(): StrBuilder<Ctx>;
139
- export declare function str<Ctx>(handler: StrContentMatcherHandler<Ctx>): StrBuilder<Ctx>;
140
- export declare function str<Ctx>(exact: string, handler?: StrContentMatcherHandler<Ctx>): StrBuilder<Ctx>;
141
- export declare function str<Ctx>(pattern: RegExp, handler?: StrContentMatcherHandler<Ctx>): StrBuilder<Ctx>;
142
- export declare function str<Ctx>(opts: StrTreeBuilderOptionsBase<Ctx>): StrBuilder<Ctx>;
143
- export declare function buildRoot<Ctx>(builder: QueryBuilder<Ctx, Node>): Matcher<Ctx>;
144
- export {};
1
+ import type { CommentToken, EndToken, NumberToken, OperatorToken, StartToken, SymbolToken } from '../lexer';
2
+ import type { Node, StringTree, Tree, TreeType } from '../parser/types';
3
+ import { AltMatcher, ManyMatcher, OpMatcher, SeqMatcher, SymMatcher } from './matchers';
4
+ import { BeginMatcher, VoidMatcher } from './matchers/anchor-matcher';
5
+ import { CommentMatcher } from './matchers/comment-matcher';
6
+ import { NumMatcher } from './matchers/num-matcher';
7
+ import { StrContentMatcherHandler, StrNodeMatcher } from './matchers/str-matcher';
8
+ import { TreeMatcher } from './matchers/tree-matcher';
9
+ import type { CommentMatcherHandler, CommentMatcherOptions, CommentMatcherValue, ManyBuilderOpts, Matcher, NumMatcherHandler, NumMatcherOptions, NumMatcherValue, OpMatcherHandler, OpMatcherOptions, OpMatcherValue, QueryBuilder, StrBuilderOptions, StrTreeBuilderOptions, StrTreeBuilderOptionsBase, SymMatcherHandler, SymMatcherOptions, SymMatcherValue, TreeBuilderOptions } from './types';
10
+ declare abstract class TerminalBuilder<Ctx, T extends Node> implements QueryBuilder<Ctx, T> {
11
+ abstract build(): Matcher<Ctx>;
12
+ handler(fn: (context: Ctx, t: T) => Ctx): SeqBuilder<Ctx, T>;
13
+ }
14
+ declare abstract class AbstractBuilder<Ctx, T extends Node> extends TerminalBuilder<Ctx, T> {
15
+ sym(): SeqBuilder<Ctx, SymbolToken>;
16
+ sym(value: SymMatcherValue): SeqBuilder<Ctx, SymbolToken>;
17
+ sym(handler: SymMatcherHandler<Ctx>): SeqBuilder<Ctx, SymbolToken>;
18
+ sym(value: SymMatcherValue, handler: SymMatcherHandler<Ctx>): SeqBuilder<Ctx, SymbolToken>;
19
+ sym(opts: SymMatcherOptions<Ctx>): SeqBuilder<Ctx, SymbolToken>;
20
+ op(): SeqBuilder<Ctx, OperatorToken>;
21
+ op(value: OpMatcherValue): SeqBuilder<Ctx, OperatorToken>;
22
+ op(handler: OpMatcherHandler<Ctx>): SeqBuilder<Ctx, OperatorToken>;
23
+ op(value: OpMatcherValue, handler: OpMatcherHandler<Ctx>): SeqBuilder<Ctx, OperatorToken>;
24
+ op(opts: OpMatcherOptions<Ctx>): SeqBuilder<Ctx, OperatorToken>;
25
+ comment(): SeqBuilder<Ctx, CommentToken>;
26
+ comment(value: CommentMatcherValue): SeqBuilder<Ctx, CommentToken>;
27
+ comment(handler: CommentMatcherHandler<Ctx>): SeqBuilder<Ctx, CommentToken>;
28
+ comment(value: CommentMatcherValue, handler: CommentMatcherHandler<Ctx>): SeqBuilder<Ctx, CommentToken>;
29
+ comment(opts: CommentMatcherOptions<Ctx>): SeqBuilder<Ctx, CommentToken>;
30
+ num(): SeqBuilder<Ctx, NumberToken>;
31
+ num(value: NumMatcherValue): SeqBuilder<Ctx, NumberToken>;
32
+ num(handler: NumMatcherHandler<Ctx>): SeqBuilder<Ctx, NumberToken>;
33
+ num(value: NumMatcherValue, handler: NumMatcherHandler<Ctx>): SeqBuilder<Ctx, NumberToken>;
34
+ num(opts: NumMatcherOptions<Ctx>): SeqBuilder<Ctx, NumberToken>;
35
+ many(builder: QueryBuilder<Ctx, Node>): SeqBuilder<Ctx, Node>;
36
+ many(builder: QueryBuilder<Ctx, Node>, min: number, max: number): SeqBuilder<Ctx, Node>;
37
+ opt(innerBuilder: QueryBuilder<Ctx, Node>): SeqBuilder<Ctx, Node>;
38
+ alt(...alts: QueryBuilder<Ctx, Node>[]): SeqBuilder<Ctx, Node>;
39
+ tree(): SeqBuilder<Ctx, Tree>;
40
+ tree(type: TreeType): SeqBuilder<Ctx, Tree>;
41
+ tree(opts: TreeBuilderOptions<Ctx>): SeqBuilder<Ctx, Tree>;
42
+ str(): SeqBuilder<Ctx, StringTree>;
43
+ str(handler: StrContentMatcherHandler<Ctx>): SeqBuilder<Ctx, StringTree>;
44
+ str(exact: string, handler?: StrContentMatcherHandler<Ctx>): SeqBuilder<Ctx, StringTree>;
45
+ str(pattern: RegExp, handler?: StrContentMatcherHandler<Ctx>): SeqBuilder<Ctx, StringTree>;
46
+ str(opts: StrTreeBuilderOptions<Ctx>): SeqBuilder<Ctx, StringTree>;
47
+ end(): EndBuilder<Ctx, T>;
48
+ join<U extends Node>(other: QueryBuilder<Ctx, U>): SeqBuilder<Ctx, U>;
49
+ }
50
+ export declare class BeginBuilder<Ctx, T extends Node> extends AbstractBuilder<Ctx, T> {
51
+ build(): BeginMatcher<Ctx>;
52
+ }
53
+ export declare class EndBuilder<Ctx, T extends Node> extends TerminalBuilder<Ctx, EndToken> {
54
+ private readonly builder;
55
+ constructor(builder: QueryBuilder<Ctx, T>);
56
+ build(): SeqMatcher<Ctx>;
57
+ }
58
+ export declare function begin<Ctx>(): BeginBuilder<Ctx, StartToken>;
59
+ export declare class VoidBuilder<Ctx, T extends Node> extends AbstractBuilder<Ctx, T> {
60
+ private readonly fn;
61
+ constructor(fn: (context: Ctx, t: T) => Ctx);
62
+ build(): VoidMatcher<Ctx, T>;
63
+ }
64
+ export declare function handler<Ctx>(fn: (context: Ctx, t: Node) => Ctx): VoidBuilder<Ctx, Node>;
65
+ export declare class SeqBuilder<Ctx, T extends Node> extends AbstractBuilder<Ctx, T> {
66
+ private readonly builders;
67
+ constructor(prev: QueryBuilder<Ctx, Node>, next: QueryBuilder<Ctx, T>);
68
+ build(): SeqMatcher<Ctx>;
69
+ }
70
+ export declare function join<Ctx>(first: QueryBuilder<Ctx, Node>, second: QueryBuilder<Ctx, Node>, ...others: QueryBuilder<Ctx, Node>[]): SeqBuilder<Ctx, Node>;
71
+ export declare class SymBuilder<Ctx> extends AbstractBuilder<Ctx, SymbolToken> {
72
+ private opts;
73
+ constructor(opts: SymMatcherOptions<Ctx>);
74
+ build(): SymMatcher<Ctx>;
75
+ }
76
+ export declare function sym<Ctx>(): SymBuilder<Ctx>;
77
+ export declare function sym<Ctx>(value: SymMatcherValue): SymBuilder<Ctx>;
78
+ export declare function sym<Ctx>(handler: SymMatcherHandler<Ctx>): SymBuilder<Ctx>;
79
+ export declare function sym<Ctx>(value: SymMatcherValue, handler: SymMatcherHandler<Ctx>): SymBuilder<Ctx>;
80
+ export declare function sym<Ctx>(opts: SymMatcherOptions<Ctx>): SymBuilder<Ctx>;
81
+ export declare class OpBuilder<Ctx> extends AbstractBuilder<Ctx, OperatorToken> {
82
+ private opts;
83
+ constructor(opts: OpMatcherOptions<Ctx>);
84
+ build(): OpMatcher<Ctx>;
85
+ }
86
+ export declare function op<Ctx>(): OpBuilder<Ctx>;
87
+ export declare function op<Ctx>(value: OpMatcherValue): OpBuilder<Ctx>;
88
+ export declare function op<Ctx>(handler: OpMatcherHandler<Ctx>): OpBuilder<Ctx>;
89
+ export declare function op<Ctx>(value: OpMatcherValue, handler: OpMatcherHandler<Ctx>): OpBuilder<Ctx>;
90
+ export declare function op<Ctx>(opts: OpMatcherOptions<Ctx>): OpBuilder<Ctx>;
91
+ export declare class CommentBuilder<Ctx> extends AbstractBuilder<Ctx, CommentToken> {
92
+ private opts;
93
+ constructor(opts: CommentMatcherOptions<Ctx>);
94
+ build(): CommentMatcher<Ctx>;
95
+ }
96
+ export declare function comment<Ctx>(): CommentBuilder<Ctx>;
97
+ export declare function comment<Ctx>(value: CommentMatcherValue): CommentBuilder<Ctx>;
98
+ export declare function comment<Ctx>(handler: CommentMatcherHandler<Ctx>): CommentBuilder<Ctx>;
99
+ export declare function comment<Ctx>(value: CommentMatcherValue, handler: CommentMatcherHandler<Ctx>): CommentBuilder<Ctx>;
100
+ export declare function comment<Ctx>(opts: CommentMatcherOptions<Ctx>): CommentBuilder<Ctx>;
101
+ export declare class NumBuilder<Ctx> extends AbstractBuilder<Ctx, NumberToken> {
102
+ private opts;
103
+ constructor(opts: NumMatcherOptions<Ctx>);
104
+ build(): NumMatcher<Ctx>;
105
+ }
106
+ export declare function num<Ctx>(): NumBuilder<Ctx>;
107
+ export declare function num<Ctx>(value: NumMatcherValue): NumBuilder<Ctx>;
108
+ export declare function num<Ctx>(handler: NumMatcherHandler<Ctx>): NumBuilder<Ctx>;
109
+ export declare function num<Ctx>(value: NumMatcherValue, handler: NumMatcherHandler<Ctx>): NumBuilder<Ctx>;
110
+ export declare function num<Ctx>(opts: NumMatcherOptions<Ctx>): NumBuilder<Ctx>;
111
+ export declare class ManyBuilder<Ctx> extends AbstractBuilder<Ctx, Node> {
112
+ private opts;
113
+ constructor(opts: ManyBuilderOpts<Ctx>);
114
+ build(): ManyMatcher<Ctx>;
115
+ }
116
+ export declare function many<Ctx>(builder: QueryBuilder<Ctx, Node>): ManyBuilder<Ctx>;
117
+ export declare function many<Ctx>(builder: QueryBuilder<Ctx, Node>, min: number, max: number): ManyBuilder<Ctx>;
118
+ export declare function opt<Ctx>(builder: QueryBuilder<Ctx, Node>): ManyBuilder<Ctx>;
119
+ export declare class AltBuilder<Ctx> extends AbstractBuilder<Ctx, Node> {
120
+ private builders;
121
+ constructor(builders: QueryBuilder<Ctx, Node>[]);
122
+ build(): AltMatcher<Ctx>;
123
+ }
124
+ export declare function alt<Ctx>(...builders: QueryBuilder<Ctx, Node>[]): AltBuilder<Ctx>;
125
+ export declare class TreeBuilder<Ctx> extends AbstractBuilder<Ctx, Tree> {
126
+ private opts;
127
+ constructor(opts: TreeBuilderOptions<Ctx>);
128
+ build(): TreeMatcher<Ctx>;
129
+ }
130
+ export declare function tree<Ctx>(): TreeBuilder<Ctx>;
131
+ export declare function tree<Ctx>(type: TreeType): TreeBuilder<Ctx>;
132
+ export declare function tree<Ctx>(opts: TreeBuilderOptions<Ctx>): TreeBuilder<Ctx>;
133
+ export declare class StrBuilder<Ctx> extends AbstractBuilder<Ctx, StringTree> {
134
+ private opts;
135
+ constructor(opts: StrBuilderOptions<Ctx>);
136
+ build(): StrNodeMatcher<Ctx>;
137
+ }
138
+ export declare function str<Ctx>(): StrBuilder<Ctx>;
139
+ export declare function str<Ctx>(handler: StrContentMatcherHandler<Ctx>): StrBuilder<Ctx>;
140
+ export declare function str<Ctx>(exact: string, handler?: StrContentMatcherHandler<Ctx>): StrBuilder<Ctx>;
141
+ export declare function str<Ctx>(pattern: RegExp, handler?: StrContentMatcherHandler<Ctx>): StrBuilder<Ctx>;
142
+ export declare function str<Ctx>(opts: StrTreeBuilderOptionsBase<Ctx>): StrBuilder<Ctx>;
143
+ export declare function buildRoot<Ctx>(builder: QueryBuilder<Ctx, Node>): Matcher<Ctx>;
144
+ export {};
145
145
  //# sourceMappingURL=builder.d.ts.map