@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,40 +1,40 @@
1
- export function esc(input) {
2
- return input.replace(/[.*+\-?^${}()|[\]\\]/g, '\\$&');
3
- }
4
- export function configComments(states, opts) {
5
- const commentRules = {};
6
- opts.forEach((option, idx) => {
7
- const tokenName = `comment$${idx}`;
8
- const start = esc(option.startsWith);
9
- if (option.type === 'line-comment') {
10
- const anyChars = '.*?';
11
- const rule = {
12
- t: 'regex',
13
- type: tokenName,
14
- match: new RegExp(`${start}${anyChars}$`),
15
- chunk: option.startsWith,
16
- };
17
- commentRules[tokenName] = rule;
18
- }
19
- else if (option.type === 'multiline-comment') {
20
- const anyChars = '[^]*?';
21
- const end = esc(option.endsWith);
22
- const rule = {
23
- t: 'regex',
24
- type: tokenName,
25
- match: new RegExp(`${start}${anyChars}${end}`),
26
- lineBreaks: true,
27
- chunk: option.startsWith,
28
- };
29
- commentRules[tokenName] = rule;
30
- }
31
- });
32
- return {
33
- ...states,
34
- $: {
35
- ...states.$,
36
- ...commentRules,
37
- },
38
- };
39
- }
1
+ export function esc(input) {
2
+ return input.replace(/[.*+\-?^${}()|[\]\\]/g, '\\$&');
3
+ }
4
+ export function configComments(states, opts) {
5
+ const commentRules = {};
6
+ opts.forEach((option, idx) => {
7
+ const tokenName = `comment$${idx}`;
8
+ const start = esc(option.startsWith);
9
+ if (option.type === 'line-comment') {
10
+ const anyChars = '.*?';
11
+ const rule = {
12
+ t: 'regex',
13
+ type: tokenName,
14
+ match: new RegExp(`${start}${anyChars}$`),
15
+ chunk: option.startsWith,
16
+ };
17
+ commentRules[tokenName] = rule;
18
+ }
19
+ else if (option.type === 'multiline-comment') {
20
+ const anyChars = '[^]*?';
21
+ const end = esc(option.endsWith);
22
+ const rule = {
23
+ t: 'regex',
24
+ type: tokenName,
25
+ match: new RegExp(`${start}${anyChars}${end}`),
26
+ lineBreaks: true,
27
+ chunk: option.startsWith,
28
+ };
29
+ commentRules[tokenName] = rule;
30
+ }
31
+ });
32
+ return {
33
+ ...states,
34
+ $: {
35
+ ...states.$,
36
+ ...commentRules,
37
+ },
38
+ };
39
+ }
40
40
  //# sourceMappingURL=comment.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"comment.js","sourceRoot":"","sources":["../../../lib/lexer/comment.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,GAAG,CAAC,KAAa;IAC/B,OAAO,KAAK,CAAC,OAAO,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,MAAiB,EACjB,IAAqB;IAErB,MAAM,YAAY,GAAoB,EAAE,CAAC;IACzC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QAC3B,MAAM,SAAS,GAAG,WAAW,GAAG,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACrC,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,EAAE;YAClC,MAAM,QAAQ,GAAG,KAAK,CAAC;YACvB,MAAM,IAAI,GAAc;gBACtB,CAAC,EAAE,OAAO;gBACV,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,IAAI,MAAM,CAAC,GAAG,KAAK,GAAG,QAAQ,GAAG,CAAC;gBACzC,KAAK,EAAE,MAAM,CAAC,UAAU;aACzB,CAAC;YACF,YAAY,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;SAChC;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,mBAAmB,EAAE;YAC9C,MAAM,QAAQ,GAAG,OAAO,CAAC;YACzB,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACjC,MAAM,IAAI,GAAc;gBACtB,CAAC,EAAE,OAAO;gBACV,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,IAAI,MAAM,CAAC,GAAG,KAAK,GAAG,QAAQ,GAAG,GAAG,EAAE,CAAC;gBAC9C,UAAU,EAAE,IAAI;gBAChB,KAAK,EAAE,MAAM,CAAC,UAAU;aACzB,CAAC;YACF,YAAY,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;SAChC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,GAAG,MAAM;QACT,CAAC,EAAE;YACD,GAAG,MAAM,CAAC,CAAC;YACX,GAAG,YAAY;SAChB;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"comment.js","sourceRoot":"","sources":["../../../lib/lexer/comment.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,GAAG,CAAC,KAAa;IAC/B,OAAO,KAAK,CAAC,OAAO,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,MAAiB,EACjB,IAAqB;IAErB,MAAM,YAAY,GAAoB,EAAE,CAAC;IACzC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QAC3B,MAAM,SAAS,GAAG,WAAW,GAAG,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACrC,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YACnC,MAAM,QAAQ,GAAG,KAAK,CAAC;YACvB,MAAM,IAAI,GAAc;gBACtB,CAAC,EAAE,OAAO;gBACV,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,IAAI,MAAM,CAAC,GAAG,KAAK,GAAG,QAAQ,GAAG,CAAC;gBACzC,KAAK,EAAE,MAAM,CAAC,UAAU;aACzB,CAAC;YACF,YAAY,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;QACjC,CAAC;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;YAC/C,MAAM,QAAQ,GAAG,OAAO,CAAC;YACzB,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACjC,MAAM,IAAI,GAAc;gBACtB,CAAC,EAAE,OAAO;gBACV,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,IAAI,MAAM,CAAC,GAAG,KAAK,GAAG,QAAQ,GAAG,GAAG,EAAE,CAAC;gBAC9C,UAAU,EAAE,IAAI;gBAChB,KAAK,EAAE,MAAM,CAAC,UAAU;aACzB,CAAC;YACF,YAAY,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;QACjC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,GAAG,MAAM;QACT,CAAC,EAAE;YACD,GAAG,MAAM,CAAC,CAAC;YACX,GAAG,YAAY;SAChB;KACF,CAAC;AACJ,CAAC"}
@@ -1,6 +1,6 @@
1
- import type { Lexer, LexerConfig, OrderedStatesMap } from './types';
2
- export * from './token';
3
- export * from './types';
4
- export declare function configureLexerRules(lexerConfig: LexerConfig): OrderedStatesMap;
5
- export declare function createLexer(options: LexerConfig): Lexer;
1
+ import type { Lexer, LexerConfig, OrderedStatesMap } from './types';
2
+ export * from './token';
3
+ export * from './types';
4
+ export declare function configureLexerRules(lexerConfig: LexerConfig): OrderedStatesMap;
5
+ export declare function createLexer(options: LexerConfig): Lexer;
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1,137 +1,137 @@
1
- import { compile as mooCompile, states as mooStates, } from 'moo';
2
- import { configBrackets } from './bracket';
3
- import { configComments } from './comment';
4
- import { configNumbers } from './number';
5
- import { configOperators } from './operator';
6
- import { createOrderedStateMap, fallbackRule } from './rules';
7
- import { configStrings } from './string';
8
- import { configSymbols } from './symbol';
9
- import { coerceToken } from './token';
10
- export * from './token';
11
- export * from './types';
12
- export function configureLexerRules(lexerConfig) {
13
- const whitespace = lexerConfig.joinLines
14
- ? {
15
- t: 'regex',
16
- type: 'whitespace',
17
- match: new RegExp(`(?:${lexerConfig.joinLines}\\r?\\n|[ \\t\\r])+`),
18
- lineBreaks: true,
19
- chunk: null,
20
- }
21
- : {
22
- t: 'regex',
23
- type: 'whitespace',
24
- match: /[ \t\r]+/,
25
- chunk: null,
26
- };
27
- let result = {
28
- $: {
29
- whitespace,
30
- newline: {
31
- t: 'regex',
32
- type: 'newline',
33
- match: /\r?\n/,
34
- chunk: null,
35
- lineBreaks: true,
36
- },
37
- _: { ...fallbackRule, type: '_' },
38
- },
39
- };
40
- const { comments, symbols, operators, brackets, strings, numbers } = lexerConfig;
41
- result = configComments(result, comments);
42
- result = configSymbols(result, { match: symbols });
43
- result = configOperators(result, operators);
44
- result = configBrackets(result, brackets);
45
- result = configStrings(result, strings);
46
- result = configNumbers(result, { match: numbers });
47
- const orderedResult = createOrderedStateMap(result);
48
- return orderedResult;
49
- }
50
- function isVarToken(key) {
51
- return typeof key === 'string' && /^str\$\d+\$tpl\$\d+\$token$/.test(key);
52
- }
53
- function getVarEndToken({ type, value, offset, line, col, lineBreaks, }) {
54
- return {
55
- type: type === null || type === void 0 ? void 0 : type.replace(/\$[^$]+$/, '$end'),
56
- value: '',
57
- text: '',
58
- offset: offset + value.length,
59
- line: line + lineBreaks,
60
- col: col + value.length,
61
- lineBreaks: 0,
62
- };
63
- }
64
- function getSubLexers(states) {
65
- const result = {};
66
- for (const [key, rules] of Object.entries(states)) {
67
- if (isVarToken(key)) {
68
- result[key] = mooCompile(rules);
69
- }
70
- }
71
- return result;
72
- }
73
- export function createLexer(options) {
74
- const rules = configureLexerRules(options);
75
- const subLexers = getSubLexers(rules);
76
- const mainLexer = mooStates(rules);
77
- let subLexer;
78
- let subLexerToken;
79
- const result = {
80
- reset(input) {
81
- Object.values(subLexers).forEach((subLexer) => subLexer.reset());
82
- subLexer = undefined;
83
- subLexerToken = undefined;
84
- if (typeof input === 'undefined' || input === null) {
85
- mainLexer.reset();
86
- }
87
- else {
88
- mainLexer.reset(input);
89
- }
90
- return result;
91
- },
92
- [Symbol.iterator]() {
93
- const next = () => {
94
- const mooLexer = subLexer !== null && subLexer !== void 0 ? subLexer : mainLexer;
95
- const mooIter = mooLexer[Symbol.iterator]();
96
- const nextElem = mooIter.next();
97
- if (nextElem.done) {
98
- if (subLexer && subLexerToken) {
99
- const subLexerType = subLexerToken.type;
100
- mooLexer.reset();
101
- if (isVarToken(subLexerType)) {
102
- const x = getVarEndToken(subLexerToken);
103
- const value = coerceToken(x);
104
- subLexer = undefined;
105
- subLexerToken = undefined;
106
- return { done: false, value };
107
- }
108
- else {
109
- subLexer = undefined;
110
- subLexerToken = undefined;
111
- return next();
112
- }
113
- }
114
- else {
115
- return { done: true, value: null };
116
- }
117
- }
118
- const mooToken = nextElem.value;
119
- if (!subLexer) {
120
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
121
- const mooTokenType = mooToken.type;
122
- subLexer = subLexers[mooTokenType];
123
- if (subLexer) {
124
- subLexerToken = mooToken;
125
- subLexer.reset(mooToken.value);
126
- return next();
127
- }
128
- }
129
- const value = coerceToken(mooToken, subLexerToken);
130
- return { done: false, value };
131
- };
132
- return { next };
133
- },
134
- };
135
- return result;
136
- }
1
+ import { compile as mooCompile, states as mooStates, } from 'moo';
2
+ import { configBrackets } from './bracket';
3
+ import { configComments } from './comment';
4
+ import { configNumbers } from './number';
5
+ import { configOperators } from './operator';
6
+ import { createOrderedStateMap, fallbackRule } from './rules';
7
+ import { configStrings } from './string';
8
+ import { configSymbols } from './symbol';
9
+ import { coerceToken } from './token';
10
+ export * from './token';
11
+ export * from './types';
12
+ export function configureLexerRules(lexerConfig) {
13
+ const whitespace = lexerConfig.joinLines
14
+ ? {
15
+ t: 'regex',
16
+ type: 'whitespace',
17
+ match: new RegExp(`(?:${lexerConfig.joinLines}\\r?\\n|[ \\t\\r])+`),
18
+ lineBreaks: true,
19
+ chunk: null,
20
+ }
21
+ : {
22
+ t: 'regex',
23
+ type: 'whitespace',
24
+ match: /[ \t\r]+/,
25
+ chunk: null,
26
+ };
27
+ let result = {
28
+ $: {
29
+ whitespace,
30
+ newline: {
31
+ t: 'regex',
32
+ type: 'newline',
33
+ match: /\r?\n/,
34
+ chunk: null,
35
+ lineBreaks: true,
36
+ },
37
+ _: { ...fallbackRule, type: '_' },
38
+ },
39
+ };
40
+ const { comments, symbols, operators, brackets, strings, numbers } = lexerConfig;
41
+ result = configComments(result, comments);
42
+ result = configSymbols(result, { match: symbols });
43
+ result = configOperators(result, operators);
44
+ result = configBrackets(result, brackets);
45
+ result = configStrings(result, strings);
46
+ result = configNumbers(result, { match: numbers });
47
+ const orderedResult = createOrderedStateMap(result);
48
+ return orderedResult;
49
+ }
50
+ function isVarToken(key) {
51
+ return typeof key === 'string' && /^str\$\d+\$tpl\$\d+\$token$/.test(key);
52
+ }
53
+ function getVarEndToken({ type, value, offset, line, col, lineBreaks, }) {
54
+ return {
55
+ type: type === null || type === void 0 ? void 0 : type.replace(/\$[^$]+$/, '$end'),
56
+ value: '',
57
+ text: '',
58
+ offset: offset + value.length,
59
+ line: line + lineBreaks,
60
+ col: col + value.length,
61
+ lineBreaks: 0,
62
+ };
63
+ }
64
+ function getSubLexers(states) {
65
+ const result = {};
66
+ for (const [key, rules] of Object.entries(states)) {
67
+ if (isVarToken(key)) {
68
+ result[key] = mooCompile(rules);
69
+ }
70
+ }
71
+ return result;
72
+ }
73
+ export function createLexer(options) {
74
+ const rules = configureLexerRules(options);
75
+ const subLexers = getSubLexers(rules);
76
+ const mainLexer = mooStates(rules);
77
+ let subLexer;
78
+ let subLexerToken;
79
+ const result = {
80
+ reset(input) {
81
+ Object.values(subLexers).forEach((subLexer) => subLexer.reset());
82
+ subLexer = undefined;
83
+ subLexerToken = undefined;
84
+ if (typeof input === 'undefined' || input === null) {
85
+ mainLexer.reset();
86
+ }
87
+ else {
88
+ mainLexer.reset(input);
89
+ }
90
+ return result;
91
+ },
92
+ [Symbol.iterator]() {
93
+ const next = () => {
94
+ const mooLexer = subLexer !== null && subLexer !== void 0 ? subLexer : mainLexer;
95
+ const mooIter = mooLexer[Symbol.iterator]();
96
+ const nextElem = mooIter.next();
97
+ if (nextElem.done) {
98
+ if (subLexer && subLexerToken) {
99
+ const subLexerType = subLexerToken.type;
100
+ mooLexer.reset();
101
+ if (isVarToken(subLexerType)) {
102
+ const x = getVarEndToken(subLexerToken);
103
+ const value = coerceToken(x);
104
+ subLexer = undefined;
105
+ subLexerToken = undefined;
106
+ return { done: false, value };
107
+ }
108
+ else {
109
+ subLexer = undefined;
110
+ subLexerToken = undefined;
111
+ return next();
112
+ }
113
+ }
114
+ else {
115
+ return { done: true, value: null };
116
+ }
117
+ }
118
+ const mooToken = nextElem.value;
119
+ if (!subLexer) {
120
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
121
+ const mooTokenType = mooToken.type;
122
+ subLexer = subLexers[mooTokenType];
123
+ if (subLexer) {
124
+ subLexerToken = mooToken;
125
+ subLexer.reset(mooToken.value);
126
+ return next();
127
+ }
128
+ }
129
+ const value = coerceToken(mooToken, subLexerToken);
130
+ return { done: false, value };
131
+ };
132
+ return { next };
133
+ },
134
+ };
135
+ return result;
136
+ }
137
137
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/lexer/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/lexer/index.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import type { NumberOption, StatesMap } from './types';
2
- export declare function configNumbers(states: StatesMap, { match }: NumberOption): StatesMap;
1
+ import type { NumberOption, StatesMap } from './types';
2
+ export declare function configNumbers(states: StatesMap, { match }: NumberOption): StatesMap;
3
3
  //# sourceMappingURL=number.d.ts.map
@@ -1,15 +1,15 @@
1
- export function configNumbers(states, { match }) {
2
- return {
3
- ...states,
4
- $: {
5
- ...states.$,
6
- number: {
7
- t: 'regex',
8
- type: 'number',
9
- match,
10
- chunk: null,
11
- },
12
- },
13
- };
14
- }
1
+ export function configNumbers(states, { match }) {
2
+ return {
3
+ ...states,
4
+ $: {
5
+ ...states.$,
6
+ number: {
7
+ t: 'regex',
8
+ type: 'number',
9
+ match,
10
+ chunk: null,
11
+ },
12
+ },
13
+ };
14
+ }
15
15
  //# sourceMappingURL=number.js.map
@@ -1,3 +1,3 @@
1
- import type { OperatorOption, StatesMap } from './types';
2
- export declare function configOperators(states: StatesMap, operators: OperatorOption[]): StatesMap;
1
+ import type { OperatorOption, StatesMap } from './types';
2
+ export declare function configOperators(states: StatesMap, operators: OperatorOption[]): StatesMap;
3
3
  //# sourceMappingURL=operator.d.ts.map
@@ -1,21 +1,21 @@
1
- export function configOperators(states, operators) {
2
- const operatorRules = {};
3
- operators.map((op, idx) => {
4
- const tokenName = `op$${idx}`;
5
- const tokenRule = {
6
- t: 'string',
7
- type: tokenName,
8
- match: op,
9
- chunk: op,
10
- };
11
- operatorRules[tokenName] = tokenRule;
12
- });
13
- return {
14
- ...states,
15
- $: {
16
- ...states.$,
17
- ...operatorRules,
18
- },
19
- };
20
- }
1
+ export function configOperators(states, operators) {
2
+ const operatorRules = {};
3
+ operators.map((op, idx) => {
4
+ const tokenName = `op$${idx}`;
5
+ const tokenRule = {
6
+ t: 'string',
7
+ type: tokenName,
8
+ match: op,
9
+ chunk: op,
10
+ };
11
+ operatorRules[tokenName] = tokenRule;
12
+ });
13
+ return {
14
+ ...states,
15
+ $: {
16
+ ...states.$,
17
+ ...operatorRules,
18
+ },
19
+ };
20
+ }
21
21
  //# sourceMappingURL=operator.js.map
@@ -1,5 +1,5 @@
1
- import type { FallbackRule, LexerRule, OrderedStatesMap, StatesMap } from './types';
2
- export declare const fallbackRule: Omit<FallbackRule, 'type'>;
3
- export declare function sortLexerRules(state: LexerRule[]): LexerRule[];
4
- export declare function createOrderedStateMap(statesMap: StatesMap): OrderedStatesMap;
1
+ import type { FallbackRule, LexerRule, OrderedStatesMap, StatesMap } from './types';
2
+ export declare const fallbackRule: Omit<FallbackRule, 'type'>;
3
+ export declare function sortLexerRules(state: LexerRule[]): LexerRule[];
4
+ export declare function createOrderedStateMap(statesMap: StatesMap): OrderedStatesMap;
5
5
  //# sourceMappingURL=rules.d.ts.map
@@ -1,70 +1,70 @@
1
- import { fallback as mooFallback } from 'moo';
2
- export const fallbackRule = {
3
- ...mooFallback,
4
- t: 'fallback',
5
- chunk: null,
6
- };
7
- function compareChunksByValue(x, y) {
8
- if (typeof x.chunk === 'string' && typeof y.chunk === 'string') {
9
- const xChunk = x.chunk;
10
- const yChunk = y.chunk;
11
- if (yChunk < xChunk) {
12
- return 1;
13
- }
14
- else if (xChunk < yChunk) {
15
- return -1;
16
- }
17
- }
18
- return 0;
19
- }
20
- function compareChunksByInclusion(x, y) {
21
- if (typeof x.chunk === 'string' && typeof y.chunk === 'string') {
22
- const xChunk = x.chunk;
23
- const yChunk = y.chunk;
24
- if (yChunk.startsWith(xChunk)) {
25
- return 1;
26
- }
27
- else if (xChunk.startsWith(yChunk)) {
28
- return -1;
29
- }
30
- }
31
- return 0;
32
- }
33
- export function sortLexerRules(state) {
34
- const values = Object.values(state);
35
- if (values.length < 2) {
36
- return state;
37
- }
38
- const fallbackRules = [];
39
- const numberRules = [];
40
- const chunkRules = [];
41
- const otherRules = [];
42
- for (const rule of values) {
43
- if (rule.t === 'fallback') {
44
- fallbackRules.push(rule);
45
- }
46
- else if (rule.type === 'number') {
47
- numberRules.push(rule);
48
- }
49
- else if (typeof rule.chunk === 'string') {
50
- chunkRules.push(rule);
51
- }
52
- else {
53
- otherRules.push(rule);
54
- }
55
- }
56
- chunkRules.sort((x, y) => compareChunksByValue(x, y));
57
- chunkRules.sort((x, y) => compareChunksByInclusion(x, y));
58
- const res = [...numberRules, ...chunkRules, ...otherRules, ...fallbackRules];
59
- return res;
60
- }
61
- export function createOrderedStateMap(statesMap) {
62
- const result = { $: [] };
63
- for (const [stateName, state] of Object.entries(statesMap)) {
64
- const stateValues = Object.values(state);
65
- const orderedStateValues = sortLexerRules(stateValues);
66
- result[stateName] = orderedStateValues;
67
- }
68
- return result;
69
- }
1
+ import { fallback as mooFallback } from 'moo';
2
+ export const fallbackRule = {
3
+ ...mooFallback,
4
+ t: 'fallback',
5
+ chunk: null,
6
+ };
7
+ function compareChunksByValue(x, y) {
8
+ if (typeof x.chunk === 'string' && typeof y.chunk === 'string') {
9
+ const xChunk = x.chunk;
10
+ const yChunk = y.chunk;
11
+ if (yChunk < xChunk) {
12
+ return 1;
13
+ }
14
+ else if (xChunk < yChunk) {
15
+ return -1;
16
+ }
17
+ }
18
+ return 0;
19
+ }
20
+ function compareChunksByInclusion(x, y) {
21
+ if (typeof x.chunk === 'string' && typeof y.chunk === 'string') {
22
+ const xChunk = x.chunk;
23
+ const yChunk = y.chunk;
24
+ if (yChunk.startsWith(xChunk)) {
25
+ return 1;
26
+ }
27
+ else if (xChunk.startsWith(yChunk)) {
28
+ return -1;
29
+ }
30
+ }
31
+ return 0;
32
+ }
33
+ export function sortLexerRules(state) {
34
+ const values = Object.values(state);
35
+ if (values.length < 2) {
36
+ return state;
37
+ }
38
+ const fallbackRules = [];
39
+ const numberRules = [];
40
+ const chunkRules = [];
41
+ const otherRules = [];
42
+ for (const rule of values) {
43
+ if (rule.t === 'fallback') {
44
+ fallbackRules.push(rule);
45
+ }
46
+ else if (rule.type === 'number') {
47
+ numberRules.push(rule);
48
+ }
49
+ else if (typeof rule.chunk === 'string') {
50
+ chunkRules.push(rule);
51
+ }
52
+ else {
53
+ otherRules.push(rule);
54
+ }
55
+ }
56
+ chunkRules.sort((x, y) => compareChunksByValue(x, y));
57
+ chunkRules.sort((x, y) => compareChunksByInclusion(x, y));
58
+ const res = [...numberRules, ...chunkRules, ...otherRules, ...fallbackRules];
59
+ return res;
60
+ }
61
+ export function createOrderedStateMap(statesMap) {
62
+ const result = { $: [] };
63
+ for (const [stateName, state] of Object.entries(statesMap)) {
64
+ const stateValues = Object.values(state);
65
+ const orderedStateValues = sortLexerRules(stateValues);
66
+ result[stateName] = orderedStateValues;
67
+ }
68
+ return result;
69
+ }
70
70
  //# sourceMappingURL=rules.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../../lib/lexer/rules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../../lib/lexer/rules.ts"],"names":[],"mappings":"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"}