@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,101 +1,101 @@
1
- import type { CommentToken, MinorToken, NumberToken, OperatorToken, SymbolToken } from '../lexer/types';
2
- import type { Cursor, Node, StringTree, TemplateTree, Tree, TreeType } from '../parser/types';
3
- import type { StrContentMatcherHandler } from './matchers/str-matcher';
4
- export interface Checkpoint<Ctx> {
5
- cursor: Cursor;
6
- context: Ctx;
7
- }
8
- export type NodeHandler<Ctx, T extends Node> = (ctx: Ctx, tree: T) => Ctx;
9
- export type SymMatcherValue = string | RegExp | null;
10
- export type SymMatcherHandler<Ctx> = NodeHandler<Ctx, SymbolToken>;
11
- export interface SymMatcherOptions<Ctx> {
12
- value: SymMatcherValue;
13
- handler: SymMatcherHandler<Ctx> | null;
14
- }
15
- export type OpMatcherValue = string | RegExp | null;
16
- export type OpMatcherHandler<Ctx> = NodeHandler<Ctx, OperatorToken>;
17
- export interface OpMatcherOptions<Ctx> {
18
- value: OpMatcherValue;
19
- handler: OpMatcherHandler<Ctx> | null;
20
- }
21
- export type CommentMatcherValue = string | RegExp | null;
22
- export type CommentMatcherHandler<Ctx> = NodeHandler<Ctx, CommentToken>;
23
- export interface CommentMatcherOptions<Ctx> {
24
- value: CommentMatcherValue;
25
- handler: CommentMatcherHandler<Ctx> | null;
26
- }
27
- export type NumMatcherValue = string | RegExp | null;
28
- export type NumMatcherHandler<Ctx> = NodeHandler<Ctx, NumberToken>;
29
- export interface NumMatcherOptions<Ctx> {
30
- value: NumMatcherValue;
31
- handler: NumMatcherHandler<Ctx> | null;
32
- }
33
- export interface SeqMatcherOptions<Ctx> {
34
- matchers: Matcher<Ctx>[];
35
- }
36
- export type TreeMatcherType = TreeType | null;
37
- export type TreeMatcherHandler<Ctx> = NodeHandler<Ctx, Tree>;
38
- export interface TreeOptionsBase<Ctx> {
39
- type?: TreeMatcherType;
40
- startsWith?: string | null;
41
- endsWith?: string | null;
42
- maxDepth?: number | null;
43
- maxMatches?: number | null;
44
- preHandler?: TreeMatcherHandler<Ctx>;
45
- postHandler?: TreeMatcherHandler<Ctx>;
46
- }
47
- export interface Matcher<Ctx> {
48
- seekNext(cursor: Cursor): Cursor;
49
- match(checkpoint: Checkpoint<Ctx>): Checkpoint<Ctx> | null;
50
- nextMatch(): Checkpoint<Ctx> | null;
51
- readonly preventSkipping?: MinorToken['type'];
52
- }
53
- export interface ManyBuilderOpts<Ctx> {
54
- builder: QueryBuilder<Ctx, Node>;
55
- min: number;
56
- max: number | null;
57
- }
58
- export interface ManyMatcherOptions<Ctx> {
59
- matcher: Matcher<Ctx>;
60
- min: number;
61
- max: number | null;
62
- }
63
- export interface TreeBuilderOptions<Ctx> extends TreeOptionsBase<Ctx> {
64
- search?: QueryBuilder<Ctx, Node> | null;
65
- }
66
- export interface AltMatcherOptions<Ctx> {
67
- matchers: Matcher<Ctx>[];
68
- }
69
- export type StrTreeHandler<Ctx> = NodeHandler<Ctx, StringTree>;
70
- export interface StrTreeOptionsBase<Ctx> {
71
- preHandler?: StrTreeHandler<Ctx> | null;
72
- postHandler?: StrTreeHandler<Ctx> | null;
73
- }
74
- type StrTplHandler<Ctx> = NodeHandler<Ctx, TemplateTree>;
75
- export interface StrTplOptionsBase<Ctx> {
76
- preHandler?: StrTplHandler<Ctx> | null;
77
- postHandler?: StrTplHandler<Ctx> | null;
78
- }
79
- export interface StrContentBuilderOptionsBase<Ctx> {
80
- match?: string | RegExp | null;
81
- handler?: StrContentMatcherHandler<Ctx> | null;
82
- }
83
- export interface StrTreeBuilderOptionsBase<Ctx> {
84
- match?: (string | RegExp | QueryBuilder<Ctx, Node>)[] | null;
85
- preHandler?: NodeHandler<Ctx, StringTree> | null;
86
- postHandler?: NodeHandler<Ctx, StringTree> | null;
87
- }
88
- export type StrBuilderOptionsBase<Ctx> = StrContentBuilderOptionsBase<Ctx> | StrTreeBuilderOptionsBase<Ctx>;
89
- export interface StrContentBuilderOptions<Ctx> extends StrContentBuilderOptionsBase<Ctx> {
90
- type: 'str-content';
91
- }
92
- export interface StrTreeBuilderOptions<Ctx> extends StrTreeBuilderOptionsBase<Ctx> {
93
- type: 'str-tree';
94
- }
95
- export type StrBuilderOptions<Ctx> = StrContentBuilderOptions<Ctx> | StrTreeBuilderOptions<Ctx>;
96
- export interface QueryBuilder<Ctx, T extends Node> {
97
- handler(fn: (ctx: Ctx, t: T) => Ctx): QueryBuilder<Ctx, T>;
98
- build(): Matcher<Ctx>;
99
- }
100
- export {};
1
+ import type { CommentToken, MinorToken, NumberToken, OperatorToken, SymbolToken } from '../lexer/types';
2
+ import type { Cursor, Node, StringTree, TemplateTree, Tree, TreeType } from '../parser/types';
3
+ import type { StrContentMatcherHandler } from './matchers/str-matcher';
4
+ export interface Checkpoint<Ctx> {
5
+ cursor: Cursor;
6
+ context: Ctx;
7
+ }
8
+ export type NodeHandler<Ctx, T extends Node> = (ctx: Ctx, tree: T) => Ctx;
9
+ export type SymMatcherValue = string | RegExp | null;
10
+ export type SymMatcherHandler<Ctx> = NodeHandler<Ctx, SymbolToken>;
11
+ export interface SymMatcherOptions<Ctx> {
12
+ value: SymMatcherValue;
13
+ handler: SymMatcherHandler<Ctx> | null;
14
+ }
15
+ export type OpMatcherValue = string | RegExp | null;
16
+ export type OpMatcherHandler<Ctx> = NodeHandler<Ctx, OperatorToken>;
17
+ export interface OpMatcherOptions<Ctx> {
18
+ value: OpMatcherValue;
19
+ handler: OpMatcherHandler<Ctx> | null;
20
+ }
21
+ export type CommentMatcherValue = string | RegExp | null;
22
+ export type CommentMatcherHandler<Ctx> = NodeHandler<Ctx, CommentToken>;
23
+ export interface CommentMatcherOptions<Ctx> {
24
+ value: CommentMatcherValue;
25
+ handler: CommentMatcherHandler<Ctx> | null;
26
+ }
27
+ export type NumMatcherValue = string | RegExp | null;
28
+ export type NumMatcherHandler<Ctx> = NodeHandler<Ctx, NumberToken>;
29
+ export interface NumMatcherOptions<Ctx> {
30
+ value: NumMatcherValue;
31
+ handler: NumMatcherHandler<Ctx> | null;
32
+ }
33
+ export interface SeqMatcherOptions<Ctx> {
34
+ matchers: Matcher<Ctx>[];
35
+ }
36
+ export type TreeMatcherType = TreeType | null;
37
+ export type TreeMatcherHandler<Ctx> = NodeHandler<Ctx, Tree>;
38
+ export interface TreeOptionsBase<Ctx> {
39
+ type?: TreeMatcherType;
40
+ startsWith?: string | null;
41
+ endsWith?: string | null;
42
+ maxDepth?: number | null;
43
+ maxMatches?: number | null;
44
+ preHandler?: TreeMatcherHandler<Ctx>;
45
+ postHandler?: TreeMatcherHandler<Ctx>;
46
+ }
47
+ export interface Matcher<Ctx> {
48
+ seekNext(cursor: Cursor): Cursor;
49
+ match(checkpoint: Checkpoint<Ctx>): Checkpoint<Ctx> | null;
50
+ nextMatch(): Checkpoint<Ctx> | null;
51
+ readonly preventSkipping?: MinorToken['type'];
52
+ }
53
+ export interface ManyBuilderOpts<Ctx> {
54
+ builder: QueryBuilder<Ctx, Node>;
55
+ min: number;
56
+ max: number | null;
57
+ }
58
+ export interface ManyMatcherOptions<Ctx> {
59
+ matcher: Matcher<Ctx>;
60
+ min: number;
61
+ max: number | null;
62
+ }
63
+ export interface TreeBuilderOptions<Ctx> extends TreeOptionsBase<Ctx> {
64
+ search?: QueryBuilder<Ctx, Node> | null;
65
+ }
66
+ export interface AltMatcherOptions<Ctx> {
67
+ matchers: Matcher<Ctx>[];
68
+ }
69
+ export type StrTreeHandler<Ctx> = NodeHandler<Ctx, StringTree>;
70
+ export interface StrTreeOptionsBase<Ctx> {
71
+ preHandler?: StrTreeHandler<Ctx> | null;
72
+ postHandler?: StrTreeHandler<Ctx> | null;
73
+ }
74
+ type StrTplHandler<Ctx> = NodeHandler<Ctx, TemplateTree>;
75
+ export interface StrTplOptionsBase<Ctx> {
76
+ preHandler?: StrTplHandler<Ctx> | null;
77
+ postHandler?: StrTplHandler<Ctx> | null;
78
+ }
79
+ export interface StrContentBuilderOptionsBase<Ctx> {
80
+ match?: string | RegExp | null;
81
+ handler?: StrContentMatcherHandler<Ctx> | null;
82
+ }
83
+ export interface StrTreeBuilderOptionsBase<Ctx> {
84
+ match?: (string | RegExp | QueryBuilder<Ctx, Node>)[] | null;
85
+ preHandler?: NodeHandler<Ctx, StringTree> | null;
86
+ postHandler?: NodeHandler<Ctx, StringTree> | null;
87
+ }
88
+ export type StrBuilderOptionsBase<Ctx> = StrContentBuilderOptionsBase<Ctx> | StrTreeBuilderOptionsBase<Ctx>;
89
+ export interface StrContentBuilderOptions<Ctx> extends StrContentBuilderOptionsBase<Ctx> {
90
+ type: 'str-content';
91
+ }
92
+ export interface StrTreeBuilderOptions<Ctx> extends StrTreeBuilderOptionsBase<Ctx> {
93
+ type: 'str-tree';
94
+ }
95
+ export type StrBuilderOptions<Ctx> = StrContentBuilderOptions<Ctx> | StrTreeBuilderOptions<Ctx>;
96
+ export interface QueryBuilder<Ctx, T extends Node> {
97
+ handler(fn: (ctx: Ctx, t: T) => Ctx): QueryBuilder<Ctx, T>;
98
+ build(): Matcher<Ctx>;
99
+ }
100
+ export {};
101
101
  //# sourceMappingURL=types.d.ts.map
@@ -1,2 +1,2 @@
1
- export {};
1
+ export {};
2
2
  //# sourceMappingURL=types.js.map
@@ -1,2 +1,2 @@
1
- export { klona as clone } from 'klona/lite';
1
+ export { klona as clone } from 'klona/lite';
2
2
  //# sourceMappingURL=clone.d.ts.map
@@ -1,2 +1,2 @@
1
- export { klona as clone } from 'klona/lite';
1
+ export { klona as clone } from 'klona/lite';
2
2
  //# sourceMappingURL=clone.js.map
@@ -1,2 +1,2 @@
1
- export declare function escape(input: string): string;
1
+ export declare function escape(input: string): string;
2
2
  //# sourceMappingURL=regex.d.ts.map
@@ -1,4 +1,4 @@
1
- export function escape(input) {
2
- return input.replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&');
3
- }
1
+ export function escape(input) {
2
+ return input.replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&');
3
+ }
4
4
  //# sourceMappingURL=regex.js.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@renovatebot/good-enough-parser",
3
3
  "description": "Parse and query computer programs source code",
4
- "version": "1.1.24",
4
+ "version": "1.2.0",
5
5
  "repository": "https://github.com/renovatebot/good-enough-parser.git",
6
6
  "author": "Sergei Zharinov",
7
7
  "contributors": [
@@ -39,7 +39,7 @@
39
39
  },
40
40
  "dependencies": {
41
41
  "@thi.ng/zipper": "1.0.3",
42
- "@types/moo": "0.5.5",
42
+ "@types/moo": "0.5.10",
43
43
  "klona": "2.0.6",
44
44
  "moo": "0.5.2"
45
45
  },
@@ -60,7 +60,7 @@
60
60
  "jest-watch-select-projects": "2.0.0",
61
61
  "jest-watch-suspend": "1.1.2",
62
62
  "jest-watch-typeahead": "2.2.2",
63
- "npm-run-all": "4.1.5",
63
+ "npm-run-all2": "5.0.0",
64
64
  "prettier": "2.8.8",
65
65
  "pretty-quick": "3.1.3",
66
66
  "release-it": "15.11.0",