@untangle-code/parser-registry 0.0.0-stage → 0.1.1

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 (345) hide show
  1. package/LICENSE +661 -0
  2. package/NOTICE +90 -0
  3. package/README.md +352 -2
  4. package/THIRD_PARTY_LICENSES.md +91 -0
  5. package/dist/boundaries/expression.d.ts +10 -0
  6. package/dist/boundaries/expression.d.ts.map +1 -0
  7. package/dist/boundaries/expression.js +95 -0
  8. package/dist/boundaries/expression.js.map +1 -0
  9. package/dist/boundaries/extract.d.ts +12 -0
  10. package/dist/boundaries/extract.d.ts.map +1 -0
  11. package/dist/boundaries/extract.js +259 -0
  12. package/dist/boundaries/extract.js.map +1 -0
  13. package/dist/boundaries/python.d.ts +6 -0
  14. package/dist/boundaries/python.d.ts.map +1 -0
  15. package/dist/boundaries/python.js +154 -0
  16. package/dist/boundaries/python.js.map +1 -0
  17. package/dist/index.d.ts +26 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +19 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/languages/astgrep-backend/adapter.d.ts +101 -0
  22. package/dist/languages/astgrep-backend/adapter.d.ts.map +1 -0
  23. package/dist/languages/astgrep-backend/adapter.js +130 -0
  24. package/dist/languages/astgrep-backend/adapter.js.map +1 -0
  25. package/dist/languages/astgrep-backend/index.d.ts +29 -0
  26. package/dist/languages/astgrep-backend/index.d.ts.map +1 -0
  27. package/dist/languages/astgrep-backend/index.js +28 -0
  28. package/dist/languages/astgrep-backend/index.js.map +1 -0
  29. package/dist/languages/astgrep-backend/lang/bash.d.ts +38 -0
  30. package/dist/languages/astgrep-backend/lang/bash.d.ts.map +1 -0
  31. package/dist/languages/astgrep-backend/lang/bash.js +42 -0
  32. package/dist/languages/astgrep-backend/lang/bash.js.map +1 -0
  33. package/dist/languages/astgrep-backend/lang/c.d.ts +33 -0
  34. package/dist/languages/astgrep-backend/lang/c.d.ts.map +1 -0
  35. package/dist/languages/astgrep-backend/lang/c.js +85 -0
  36. package/dist/languages/astgrep-backend/lang/c.js.map +1 -0
  37. package/dist/languages/astgrep-backend/lang/cpp.d.ts +27 -0
  38. package/dist/languages/astgrep-backend/lang/cpp.d.ts.map +1 -0
  39. package/dist/languages/astgrep-backend/lang/cpp.js +38 -0
  40. package/dist/languages/astgrep-backend/lang/cpp.js.map +1 -0
  41. package/dist/languages/astgrep-backend/lang/csharp.d.ts +24 -0
  42. package/dist/languages/astgrep-backend/lang/csharp.d.ts.map +1 -0
  43. package/dist/languages/astgrep-backend/lang/csharp.js +102 -0
  44. package/dist/languages/astgrep-backend/lang/csharp.js.map +1 -0
  45. package/dist/languages/astgrep-backend/lang/index.d.ts +29 -0
  46. package/dist/languages/astgrep-backend/lang/index.d.ts.map +1 -0
  47. package/dist/languages/astgrep-backend/lang/index.js +22 -0
  48. package/dist/languages/astgrep-backend/lang/index.js.map +1 -0
  49. package/dist/languages/astgrep-backend/lang/java.d.ts +26 -0
  50. package/dist/languages/astgrep-backend/lang/java.d.ts.map +1 -0
  51. package/dist/languages/astgrep-backend/lang/java.js +89 -0
  52. package/dist/languages/astgrep-backend/lang/java.js.map +1 -0
  53. package/dist/languages/astgrep-backend/lang/kotlin.d.ts +44 -0
  54. package/dist/languages/astgrep-backend/lang/kotlin.d.ts.map +1 -0
  55. package/dist/languages/astgrep-backend/lang/kotlin.js +94 -0
  56. package/dist/languages/astgrep-backend/lang/kotlin.js.map +1 -0
  57. package/dist/languages/astgrep-backend/lang/php.d.ts +23 -0
  58. package/dist/languages/astgrep-backend/lang/php.d.ts.map +1 -0
  59. package/dist/languages/astgrep-backend/lang/php.js +80 -0
  60. package/dist/languages/astgrep-backend/lang/php.js.map +1 -0
  61. package/dist/languages/astgrep-backend/lang/ruby.d.ts +37 -0
  62. package/dist/languages/astgrep-backend/lang/ruby.d.ts.map +1 -0
  63. package/dist/languages/astgrep-backend/lang/ruby.js +70 -0
  64. package/dist/languages/astgrep-backend/lang/ruby.js.map +1 -0
  65. package/dist/languages/astgrep-backend/lang/swift.d.ts +34 -0
  66. package/dist/languages/astgrep-backend/lang/swift.d.ts.map +1 -0
  67. package/dist/languages/astgrep-backend/lang/swift.js +86 -0
  68. package/dist/languages/astgrep-backend/lang/swift.js.map +1 -0
  69. package/dist/languages/astgrep-backend/languages.d.ts +55 -0
  70. package/dist/languages/astgrep-backend/languages.d.ts.map +1 -0
  71. package/dist/languages/astgrep-backend/languages.js +214 -0
  72. package/dist/languages/astgrep-backend/languages.js.map +1 -0
  73. package/dist/languages/astgrep-backend/napi.d.ts +71 -0
  74. package/dist/languages/astgrep-backend/napi.d.ts.map +1 -0
  75. package/dist/languages/astgrep-backend/napi.js +176 -0
  76. package/dist/languages/astgrep-backend/napi.js.map +1 -0
  77. package/dist/languages/astgrep-backend/syntax.d.ts +88 -0
  78. package/dist/languages/astgrep-backend/syntax.d.ts.map +1 -0
  79. package/dist/languages/astgrep-backend/syntax.js +180 -0
  80. package/dist/languages/astgrep-backend/syntax.js.map +1 -0
  81. package/dist/languages/index.d.ts +14 -0
  82. package/dist/languages/index.d.ts.map +1 -0
  83. package/dist/languages/index.js +37 -0
  84. package/dist/languages/index.js.map +1 -0
  85. package/dist/languages/javascript/index.d.ts +4 -0
  86. package/dist/languages/javascript/index.d.ts.map +1 -0
  87. package/dist/languages/javascript/index.js +7 -0
  88. package/dist/languages/javascript/index.js.map +1 -0
  89. package/dist/languages/jsx/index.d.ts +4 -0
  90. package/dist/languages/jsx/index.d.ts.map +1 -0
  91. package/dist/languages/jsx/index.js +7 -0
  92. package/dist/languages/jsx/index.js.map +1 -0
  93. package/dist/languages/prose/index.d.ts +53 -0
  94. package/dist/languages/prose/index.d.ts.map +1 -0
  95. package/dist/languages/prose/index.js +172 -0
  96. package/dist/languages/prose/index.js.map +1 -0
  97. package/dist/languages/prose/line-bytes.d.ts +31 -0
  98. package/dist/languages/prose/line-bytes.d.ts.map +1 -0
  99. package/dist/languages/prose/line-bytes.js +39 -0
  100. package/dist/languages/prose/line-bytes.js.map +1 -0
  101. package/dist/languages/python/create-adapter.d.ts +20 -0
  102. package/dist/languages/python/create-adapter.d.ts.map +1 -0
  103. package/dist/languages/python/create-adapter.js +9 -0
  104. package/dist/languages/python/create-adapter.js.map +1 -0
  105. package/dist/languages/python/index.d.ts +4 -0
  106. package/dist/languages/python/index.d.ts.map +1 -0
  107. package/dist/languages/python/index.js +6 -0
  108. package/dist/languages/python/index.js.map +1 -0
  109. package/dist/languages/python/profile.d.ts +36 -0
  110. package/dist/languages/python/profile.d.ts.map +1 -0
  111. package/dist/languages/python/profile.js +282 -0
  112. package/dist/languages/python/profile.js.map +1 -0
  113. package/dist/languages/python/signature.d.ts +53 -0
  114. package/dist/languages/python/signature.d.ts.map +1 -0
  115. package/dist/languages/python/signature.js +188 -0
  116. package/dist/languages/python/signature.js.map +1 -0
  117. package/dist/languages/python/table.d.ts +46 -0
  118. package/dist/languages/python/table.d.ts.map +1 -0
  119. package/dist/languages/python/table.js +88 -0
  120. package/dist/languages/python/table.js.map +1 -0
  121. package/dist/languages/shared/call-detection.d.ts +17 -0
  122. package/dist/languages/shared/call-detection.d.ts.map +1 -0
  123. package/dist/languages/shared/call-detection.js +86 -0
  124. package/dist/languages/shared/call-detection.js.map +1 -0
  125. package/dist/languages/shared/chunks.d.ts +28 -0
  126. package/dist/languages/shared/chunks.d.ts.map +1 -0
  127. package/dist/languages/shared/chunks.js +181 -0
  128. package/dist/languages/shared/chunks.js.map +1 -0
  129. package/dist/languages/shared/create-adapter.d.ts +11 -0
  130. package/dist/languages/shared/create-adapter.d.ts.map +1 -0
  131. package/dist/languages/shared/create-adapter.js +90 -0
  132. package/dist/languages/shared/create-adapter.js.map +1 -0
  133. package/dist/languages/shared/decisions.d.ts +45 -0
  134. package/dist/languages/shared/decisions.d.ts.map +1 -0
  135. package/dist/languages/shared/decisions.js +141 -0
  136. package/dist/languages/shared/decisions.js.map +1 -0
  137. package/dist/languages/shared/dialect.d.ts +18 -0
  138. package/dist/languages/shared/dialect.d.ts.map +1 -0
  139. package/dist/languages/shared/dialect.js +37 -0
  140. package/dist/languages/shared/dialect.js.map +1 -0
  141. package/dist/languages/shared/doc-binding.d.ts +26 -0
  142. package/dist/languages/shared/doc-binding.d.ts.map +1 -0
  143. package/dist/languages/shared/doc-binding.js +50 -0
  144. package/dist/languages/shared/doc-binding.js.map +1 -0
  145. package/dist/languages/shared/engine.d.ts +49 -0
  146. package/dist/languages/shared/engine.d.ts.map +1 -0
  147. package/dist/languages/shared/engine.js +317 -0
  148. package/dist/languages/shared/engine.js.map +1 -0
  149. package/dist/languages/shared/extract-symbols.d.ts +5 -0
  150. package/dist/languages/shared/extract-symbols.d.ts.map +1 -0
  151. package/dist/languages/shared/extract-symbols.js +31 -0
  152. package/dist/languages/shared/extract-symbols.js.map +1 -0
  153. package/dist/languages/shared/fingerprint.d.ts +7 -0
  154. package/dist/languages/shared/fingerprint.d.ts.map +1 -0
  155. package/dist/languages/shared/fingerprint.js +95 -0
  156. package/dist/languages/shared/fingerprint.js.map +1 -0
  157. package/dist/languages/shared/grammar-loader.d.ts +15 -0
  158. package/dist/languages/shared/grammar-loader.d.ts.map +1 -0
  159. package/dist/languages/shared/grammar-loader.js +48 -0
  160. package/dist/languages/shared/grammar-loader.js.map +1 -0
  161. package/dist/languages/shared/import-detection.d.ts +24 -0
  162. package/dist/languages/shared/import-detection.d.ts.map +1 -0
  163. package/dist/languages/shared/import-detection.js +138 -0
  164. package/dist/languages/shared/import-detection.js.map +1 -0
  165. package/dist/languages/shared/js-family-profile.d.ts +5 -0
  166. package/dist/languages/shared/js-family-profile.d.ts.map +1 -0
  167. package/dist/languages/shared/js-family-profile.js +179 -0
  168. package/dist/languages/shared/js-family-profile.js.map +1 -0
  169. package/dist/languages/shared/node-kinds.d.ts +78 -0
  170. package/dist/languages/shared/node-kinds.d.ts.map +1 -0
  171. package/dist/languages/shared/node-kinds.js +141 -0
  172. package/dist/languages/shared/node-kinds.js.map +1 -0
  173. package/dist/languages/shared/node-utils.d.ts +31 -0
  174. package/dist/languages/shared/node-utils.d.ts.map +1 -0
  175. package/dist/languages/shared/node-utils.js +89 -0
  176. package/dist/languages/shared/node-utils.js.map +1 -0
  177. package/dist/languages/shared/parse-diagnostics.d.ts +44 -0
  178. package/dist/languages/shared/parse-diagnostics.d.ts.map +1 -0
  179. package/dist/languages/shared/parse-diagnostics.js +64 -0
  180. package/dist/languages/shared/parse-diagnostics.js.map +1 -0
  181. package/dist/languages/shared/parse-limits.d.ts +24 -0
  182. package/dist/languages/shared/parse-limits.d.ts.map +1 -0
  183. package/dist/languages/shared/parse-limits.js +134 -0
  184. package/dist/languages/shared/parse-limits.js.map +1 -0
  185. package/dist/languages/shared/profile.d.ts +149 -0
  186. package/dist/languages/shared/profile.d.ts.map +1 -0
  187. package/dist/languages/shared/profile.js +9 -0
  188. package/dist/languages/shared/profile.js.map +1 -0
  189. package/dist/languages/shared/scope-model.d.ts +32 -0
  190. package/dist/languages/shared/scope-model.d.ts.map +1 -0
  191. package/dist/languages/shared/scope-model.js +2 -0
  192. package/dist/languages/shared/scope-model.js.map +1 -0
  193. package/dist/languages/shared/scope-naming.d.ts +20 -0
  194. package/dist/languages/shared/scope-naming.d.ts.map +1 -0
  195. package/dist/languages/shared/scope-naming.js +118 -0
  196. package/dist/languages/shared/scope-naming.js.map +1 -0
  197. package/dist/languages/shared/scope-signature.d.ts +14 -0
  198. package/dist/languages/shared/scope-signature.d.ts.map +1 -0
  199. package/dist/languages/shared/scope-signature.js +82 -0
  200. package/dist/languages/shared/scope-signature.js.map +1 -0
  201. package/dist/languages/shared/signature.d.ts +55 -0
  202. package/dist/languages/shared/signature.d.ts.map +1 -0
  203. package/dist/languages/shared/signature.js +147 -0
  204. package/dist/languages/shared/signature.js.map +1 -0
  205. package/dist/languages/shared/syntax.d.ts +115 -0
  206. package/dist/languages/shared/syntax.d.ts.map +1 -0
  207. package/dist/languages/shared/syntax.js +2 -0
  208. package/dist/languages/shared/syntax.js.map +1 -0
  209. package/dist/languages/shared/table-profile-decisions.d.ts +54 -0
  210. package/dist/languages/shared/table-profile-decisions.d.ts.map +1 -0
  211. package/dist/languages/shared/table-profile-decisions.js +245 -0
  212. package/dist/languages/shared/table-profile-decisions.js.map +1 -0
  213. package/dist/languages/shared/table-profile-module-facts.d.ts +29 -0
  214. package/dist/languages/shared/table-profile-module-facts.d.ts.map +1 -0
  215. package/dist/languages/shared/table-profile-module-facts.js +139 -0
  216. package/dist/languages/shared/table-profile-module-facts.js.map +1 -0
  217. package/dist/languages/shared/table-profile-queries.d.ts +27 -0
  218. package/dist/languages/shared/table-profile-queries.d.ts.map +1 -0
  219. package/dist/languages/shared/table-profile-queries.js +70 -0
  220. package/dist/languages/shared/table-profile-queries.js.map +1 -0
  221. package/dist/languages/shared/table-profile-scopes.d.ts +46 -0
  222. package/dist/languages/shared/table-profile-scopes.d.ts.map +1 -0
  223. package/dist/languages/shared/table-profile-scopes.js +180 -0
  224. package/dist/languages/shared/table-profile-scopes.js.map +1 -0
  225. package/dist/languages/shared/table-profile.d.ts +302 -0
  226. package/dist/languages/shared/table-profile.d.ts.map +1 -0
  227. package/dist/languages/shared/table-profile.js +125 -0
  228. package/dist/languages/shared/table-profile.js.map +1 -0
  229. package/dist/languages/shared/tree-sitter-types.d.ts +44 -0
  230. package/dist/languages/shared/tree-sitter-types.d.ts.map +1 -0
  231. package/dist/languages/shared/tree-sitter-types.js +2 -0
  232. package/dist/languages/shared/tree-sitter-types.js.map +1 -0
  233. package/dist/languages/structured-text/index.d.ts +48 -0
  234. package/dist/languages/structured-text/index.d.ts.map +1 -0
  235. package/dist/languages/structured-text/index.js +120 -0
  236. package/dist/languages/structured-text/index.js.map +1 -0
  237. package/dist/languages/tsx/index.d.ts +4 -0
  238. package/dist/languages/tsx/index.d.ts.map +1 -0
  239. package/dist/languages/tsx/index.js +7 -0
  240. package/dist/languages/tsx/index.js.map +1 -0
  241. package/dist/languages/typescript/index.d.ts +4 -0
  242. package/dist/languages/typescript/index.d.ts.map +1 -0
  243. package/dist/languages/typescript/index.js +7 -0
  244. package/dist/languages/typescript/index.js.map +1 -0
  245. package/dist/languages/vue/index.d.ts +21 -0
  246. package/dist/languages/vue/index.d.ts.map +1 -0
  247. package/dist/languages/vue/index.js +234 -0
  248. package/dist/languages/vue/index.js.map +1 -0
  249. package/dist/languages/vue/mapping.d.ts +11 -0
  250. package/dist/languages/vue/mapping.d.ts.map +1 -0
  251. package/dist/languages/vue/mapping.js +77 -0
  252. package/dist/languages/vue/mapping.js.map +1 -0
  253. package/dist/registry.d.ts +24 -0
  254. package/dist/registry.d.ts.map +1 -0
  255. package/dist/registry.js +42 -0
  256. package/dist/registry.js.map +1 -0
  257. package/dist/text/byte-offset-table.d.ts +27 -0
  258. package/dist/text/byte-offset-table.d.ts.map +1 -0
  259. package/dist/text/byte-offset-table.js +39 -0
  260. package/dist/text/byte-offset-table.js.map +1 -0
  261. package/package.json +125 -3
  262. package/src/boundaries/expression.ts +95 -0
  263. package/src/boundaries/extract.ts +307 -0
  264. package/src/boundaries/python.ts +181 -0
  265. package/src/index.ts +51 -0
  266. package/src/languages/__golden__/javascript-basic.json +32 -0
  267. package/src/languages/__golden__/tsx-basic.json +19 -0
  268. package/src/languages/__golden__/typescript-basic.json +37 -0
  269. package/src/languages/astgrep-backend/GRAMMARS.md +86 -0
  270. package/src/languages/astgrep-backend/README.md +112 -0
  271. package/src/languages/astgrep-backend/__golden__/bash-basic.sh +53 -0
  272. package/src/languages/astgrep-backend/__golden__/c-basic.c +64 -0
  273. package/src/languages/astgrep-backend/__golden__/cpp-basic.cpp +65 -0
  274. package/src/languages/astgrep-backend/__golden__/csharp-basic.cs +73 -0
  275. package/src/languages/astgrep-backend/__golden__/go-basic.go +93 -0
  276. package/src/languages/astgrep-backend/__golden__/java-basic.java +62 -0
  277. package/src/languages/astgrep-backend/__golden__/kotlin-basic.kt +58 -0
  278. package/src/languages/astgrep-backend/__golden__/php-basic.php +72 -0
  279. package/src/languages/astgrep-backend/__golden__/ruby-basic.rb +62 -0
  280. package/src/languages/astgrep-backend/__golden__/rust-basic.rs +82 -0
  281. package/src/languages/astgrep-backend/__golden__/swift-basic.swift +73 -0
  282. package/src/languages/astgrep-backend/adapter.ts +240 -0
  283. package/src/languages/astgrep-backend/index.ts +44 -0
  284. package/src/languages/astgrep-backend/lang/README.md +115 -0
  285. package/src/languages/astgrep-backend/lang/bash.ts +78 -0
  286. package/src/languages/astgrep-backend/lang/c.ts +119 -0
  287. package/src/languages/astgrep-backend/lang/cpp.ts +65 -0
  288. package/src/languages/astgrep-backend/lang/csharp.ts +125 -0
  289. package/src/languages/astgrep-backend/lang/index.ts +61 -0
  290. package/src/languages/astgrep-backend/lang/java.ts +115 -0
  291. package/src/languages/astgrep-backend/lang/kotlin.ts +136 -0
  292. package/src/languages/astgrep-backend/lang/php.ts +105 -0
  293. package/src/languages/astgrep-backend/lang/ruby.ts +105 -0
  294. package/src/languages/astgrep-backend/lang/swift.ts +118 -0
  295. package/src/languages/astgrep-backend/languages.ts +238 -0
  296. package/src/languages/astgrep-backend/napi.ts +261 -0
  297. package/src/languages/astgrep-backend/syntax.ts +242 -0
  298. package/src/languages/index.ts +53 -0
  299. package/src/languages/javascript/index.ts +9 -0
  300. package/src/languages/jsx/index.ts +9 -0
  301. package/src/languages/prose/index.ts +270 -0
  302. package/src/languages/prose/line-bytes.ts +52 -0
  303. package/src/languages/python/README.md +246 -0
  304. package/src/languages/python/__golden__/python-basic.json +44 -0
  305. package/src/languages/python/create-adapter.ts +29 -0
  306. package/src/languages/python/index.ts +8 -0
  307. package/src/languages/python/profile.ts +341 -0
  308. package/src/languages/python/signature.ts +183 -0
  309. package/src/languages/python/table.ts +135 -0
  310. package/src/languages/shared/__fixtures__/large-over-32kib.ts.txt +1207 -0
  311. package/src/languages/shared/call-detection.ts +112 -0
  312. package/src/languages/shared/chunks.ts +255 -0
  313. package/src/languages/shared/create-adapter.ts +136 -0
  314. package/src/languages/shared/decisions.ts +204 -0
  315. package/src/languages/shared/dialect.ts +55 -0
  316. package/src/languages/shared/doc-binding.ts +78 -0
  317. package/src/languages/shared/engine.ts +461 -0
  318. package/src/languages/shared/extract-symbols.ts +35 -0
  319. package/src/languages/shared/fingerprint.ts +99 -0
  320. package/src/languages/shared/grammar-loader.ts +67 -0
  321. package/src/languages/shared/import-detection.ts +154 -0
  322. package/src/languages/shared/js-family-profile.ts +246 -0
  323. package/src/languages/shared/node-kinds.ts +153 -0
  324. package/src/languages/shared/node-utils.ts +120 -0
  325. package/src/languages/shared/parse-diagnostics.ts +125 -0
  326. package/src/languages/shared/parse-limits.ts +147 -0
  327. package/src/languages/shared/profile.ts +184 -0
  328. package/src/languages/shared/scope-model.ts +43 -0
  329. package/src/languages/shared/scope-naming.ts +124 -0
  330. package/src/languages/shared/scope-signature.ts +108 -0
  331. package/src/languages/shared/signature.ts +149 -0
  332. package/src/languages/shared/syntax.ts +116 -0
  333. package/src/languages/shared/table-profile-decisions.ts +251 -0
  334. package/src/languages/shared/table-profile-module-facts.ts +177 -0
  335. package/src/languages/shared/table-profile-queries.ts +85 -0
  336. package/src/languages/shared/table-profile-scopes.ts +198 -0
  337. package/src/languages/shared/table-profile.ts +427 -0
  338. package/src/languages/shared/tree-sitter-types.ts +46 -0
  339. package/src/languages/structured-text/index.ts +192 -0
  340. package/src/languages/tsx/index.ts +9 -0
  341. package/src/languages/typescript/index.ts +9 -0
  342. package/src/languages/vue/index.ts +312 -0
  343. package/src/languages/vue/mapping.ts +93 -0
  344. package/src/registry.ts +61 -0
  345. package/src/text/byte-offset-table.ts +63 -0
@@ -0,0 +1,102 @@
1
+ export const CSHARP_SOURCE = {
2
+ languageName: "csharp",
3
+ moduleName: "@ast-grep/lang-csharp",
4
+ };
5
+ export const CSHARP_TABLE = {
6
+ languageId: "csharp",
7
+ extensions: [".cs"],
8
+ supportLevel: "deep",
9
+ commentKinds: ["comment"],
10
+ stringContainerKinds: [
11
+ "string_literal",
12
+ "verbatim_string_literal",
13
+ "raw_string_literal",
14
+ "character_literal",
15
+ "interpolated_string_expression",
16
+ ],
17
+ identifierLeafKinds: ["identifier", "predefined_type", "this", "base"],
18
+ numberLeafKinds: ["integer_literal", "real_literal"],
19
+ booleanLeafKinds: ["boolean_literal"],
20
+ nullLeafKinds: ["null_literal"],
21
+ scopes: [
22
+ {
23
+ kinds: ["namespace_declaration", "file_scoped_namespace_declaration"],
24
+ scopeKind: "namespace",
25
+ },
26
+ {
27
+ kinds: ["class_declaration", "struct_declaration", "record_declaration"],
28
+ scopeKind: "class",
29
+ },
30
+ { kinds: ["interface_declaration"], scopeKind: "interface" },
31
+ { kinds: ["enum_declaration"], scopeKind: "enum" },
32
+ { kinds: ["method_declaration"], scopeKind: "method" },
33
+ { kinds: ["constructor_declaration"], scopeKind: "constructor" },
34
+ { kinds: ["property_declaration"], scopeKind: "property" },
35
+ // `field_declaration` hat kein Namensfeld: der Name steht unter
36
+ // `variable_declaration` -> `variable_declarator`.
37
+ {
38
+ kinds: ["field_declaration"],
39
+ scopeKind: "property",
40
+ // `field_declaration > variable_declaration > variable_declarator.name`
41
+ nameKindPath: ["variable_declaration", "variable_declarator"],
42
+ },
43
+ ],
44
+ decisions: {
45
+ ifKinds: ["if_statement"],
46
+ elseIfParentKinds: ["if_statement"],
47
+ loopKinds: ["for_statement", "foreach_statement", "while_statement", "do_statement"],
48
+ catchKinds: ["catch_clause"],
49
+ ternaryKinds: ["conditional_expression"],
50
+ switchKinds: ["switch_statement", "switch_expression"],
51
+ // Die C#-Grammatik gibt der Marke KEINE eigene Knotenart: `case "a":` und
52
+ // `default:` sind beide ein `switch_section`, unterschieden nur durch das
53
+ // Schluesselwortkind. Nachgesehen am Baum von `__golden__/csharp-basic.cs`.
54
+ caseKinds: ["switch_section", "switch_expression_arm"],
55
+ caseExcludeChildKinds: ["default"],
56
+ binaryKinds: ["binary_expression"],
57
+ operatorField: "operator",
58
+ logicalAndOperators: ["&&"],
59
+ logicalOrOperators: ["||"],
60
+ shortCircuitOperators: ["??"],
61
+ jumpKinds: ["return_statement", "throw_statement", "break_statement", "continue_statement"],
62
+ blockKinds: ["block"],
63
+ consequenceField: "consequence",
64
+ alternativeField: "alternative",
65
+ },
66
+ imports: {
67
+ kinds: ["using_directive"],
68
+ // NICHT `name_equals`: bei `using Sys = System.Text;` steht dort der
69
+ // ALIAS, nicht der Pfad — der Pfad ist der `qualified_name` daneben.
70
+ pathKinds: ["qualified_name", "identifier"],
71
+ aliasField: "name",
72
+ },
73
+ calls: {
74
+ kinds: ["invocation_expression"],
75
+ functionField: "function",
76
+ argumentsField: "arguments",
77
+ memberKinds: ["member_access_expression", "qualified_name"],
78
+ constructionKinds: ["object_creation_expression"],
79
+ constructedTypeField: "type",
80
+ },
81
+ declarationParentKinds: [
82
+ "class_declaration",
83
+ "struct_declaration",
84
+ "record_declaration",
85
+ "interface_declaration",
86
+ "enum_declaration",
87
+ "method_declaration",
88
+ "constructor_declaration",
89
+ "property_declaration",
90
+ "variable_declarator",
91
+ "parameter",
92
+ "type_parameter",
93
+ "catch_declaration",
94
+ "enum_member_declaration",
95
+ ],
96
+ visibilityKinds: ["modifier"],
97
+ visibilityWords: ["public", "protected", "private", "internal"],
98
+ bodyField: "body",
99
+ isExported: (_name, node) => node.children.some((child) => child.type === "modifier" && child.text === "public"),
100
+ fieldNames: ["name"],
101
+ };
102
+ //# sourceMappingURL=csharp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csharp.js","sourceRoot":"","sources":["../../../../src/languages/astgrep-backend/lang/csharp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Die Sprachen aus WP-86: je EINE Tabelle, kein Motor (vision.md §1b).
3
+ *
4
+ * WIE VIEL EINE SPRACHE GEKOSTET HAT, steht in `README.md` neben diesem
5
+ * Verzeichnis — Zeile fuer Zeile nachgezaehlt. Das ist die Gegenprobe zur
6
+ * Ratsche: eine Sprache, die 800 Zeilen kostet, waere kein Gewinn gewesen.
7
+ *
8
+ * REIHENFOLGE = VERBREITUNG. Sie ist zugleich die Reihenfolge, in der die
9
+ * Grammatiken registriert werden (`napi.ts`: EIN Aufruf fuer alle).
10
+ */
11
+ import type { LanguageKindTable } from "../../shared/table-profile.js";
12
+ import type { AstGrepLanguageSource } from "../adapter.js";
13
+ import { BASH_SOURCE, BASH_TABLE } from "./bash.js";
14
+ import { C_SOURCE, C_TABLE } from "./c.js";
15
+ import { CPP_SOURCE, CPP_TABLE } from "./cpp.js";
16
+ import { CSHARP_SOURCE, CSHARP_TABLE } from "./csharp.js";
17
+ import { JAVA_SOURCE, JAVA_TABLE } from "./java.js";
18
+ import { KOTLIN_SOURCE, KOTLIN_TABLE } from "./kotlin.js";
19
+ import { PHP_SOURCE, PHP_TABLE } from "./php.js";
20
+ import { RUBY_SOURCE, RUBY_TABLE } from "./ruby.js";
21
+ import { SWIFT_SOURCE, SWIFT_TABLE } from "./swift.js";
22
+ /** Eine Sprache: ihre Tabelle und das Paket, aus dem ihre Grammatik kommt. */
23
+ export interface AstGrepLanguage {
24
+ table: LanguageKindTable;
25
+ source: AstGrepLanguageSource;
26
+ }
27
+ export declare const AST_GREP_LANGUAGES: readonly AstGrepLanguage[];
28
+ export { BASH_SOURCE, BASH_TABLE, CPP_SOURCE, CPP_TABLE, CSHARP_SOURCE, CSHARP_TABLE, C_SOURCE, C_TABLE, JAVA_SOURCE, JAVA_TABLE, KOTLIN_SOURCE, KOTLIN_TABLE, PHP_SOURCE, PHP_TABLE, RUBY_SOURCE, RUBY_TABLE, SWIFT_SOURCE, SWIFT_TABLE, };
29
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/languages/astgrep-backend/lang/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAE3D,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEvD,8EAA8E;AAC9E,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,iBAAiB,CAAC;IACzB,MAAM,EAAE,qBAAqB,CAAC;CAC/B;AAED,eAAO,MAAM,kBAAkB,EAAE,SAAS,eAAe,EAUxD,CAAC;AAEF,OAAO,EACL,WAAW,EACX,UAAU,EACV,UAAU,EACV,SAAS,EACT,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,WAAW,EACX,UAAU,EACV,aAAa,EACb,YAAY,EACZ,UAAU,EACV,SAAS,EACT,WAAW,EACX,UAAU,EACV,YAAY,EACZ,WAAW,GACZ,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { BASH_SOURCE, BASH_TABLE } from "./bash.js";
2
+ import { C_SOURCE, C_TABLE } from "./c.js";
3
+ import { CPP_SOURCE, CPP_TABLE } from "./cpp.js";
4
+ import { CSHARP_SOURCE, CSHARP_TABLE } from "./csharp.js";
5
+ import { JAVA_SOURCE, JAVA_TABLE } from "./java.js";
6
+ import { KOTLIN_SOURCE, KOTLIN_TABLE } from "./kotlin.js";
7
+ import { PHP_SOURCE, PHP_TABLE } from "./php.js";
8
+ import { RUBY_SOURCE, RUBY_TABLE } from "./ruby.js";
9
+ import { SWIFT_SOURCE, SWIFT_TABLE } from "./swift.js";
10
+ export const AST_GREP_LANGUAGES = [
11
+ { table: JAVA_TABLE, source: JAVA_SOURCE },
12
+ { table: CSHARP_TABLE, source: CSHARP_SOURCE },
13
+ { table: RUBY_TABLE, source: RUBY_SOURCE },
14
+ { table: PHP_TABLE, source: PHP_SOURCE },
15
+ { table: KOTLIN_TABLE, source: KOTLIN_SOURCE },
16
+ { table: C_TABLE, source: C_SOURCE },
17
+ { table: CPP_TABLE, source: CPP_SOURCE },
18
+ { table: SWIFT_TABLE, source: SWIFT_SOURCE },
19
+ { table: BASH_TABLE, source: BASH_SOURCE },
20
+ ];
21
+ export { BASH_SOURCE, BASH_TABLE, CPP_SOURCE, CPP_TABLE, CSHARP_SOURCE, CSHARP_TABLE, C_SOURCE, C_TABLE, JAVA_SOURCE, JAVA_TABLE, KOTLIN_SOURCE, KOTLIN_TABLE, PHP_SOURCE, PHP_TABLE, RUBY_SOURCE, RUBY_TABLE, SWIFT_SOURCE, SWIFT_TABLE, };
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/languages/astgrep-backend/lang/index.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAQvD,MAAM,CAAC,MAAM,kBAAkB,GAA+B;IAC5D,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE;IAC1C,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE;IAC9C,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE;IAC1C,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE;IACxC,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE;IAC9C,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE;IACpC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE;IACxC,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE;IAC5C,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE;CAC3C,CAAC;AAEF,OAAO,EACL,WAAW,EACX,UAAU,EACV,UAAU,EACV,SAAS,EACT,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,WAAW,EACX,UAAU,EACV,aAAa,EACb,YAAY,EACZ,UAAU,EACV,SAAS,EACT,WAAW,EACX,UAAU,EACV,YAAY,EACZ,WAAW,GACZ,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Java (WP-86).
3
+ *
4
+ * ABBILDUNGEN auf die Symbolarten aus `shared/scope-model.ts`:
5
+ * `record` -> `class` (ein benannter Verbund mit Feldern; `ChunkKind` kennt
6
+ * kein "record"), `@interface` -> `interface`.
7
+ *
8
+ * ENTSCHEIDUNGSPUNKTE — die Auslegung, ausdruecklich (spec.md §16.2/§16.3):
9
+ * - `switch_label` traegt in DERSELBEN Knotenart sowohl `case X:` als auch
10
+ * `default:`. Nur die `case`-Form zaehlt (`caseExcludeChildKinds`). Ein
11
+ * `switch` mit drei `case` und einem `default` hat DREI Entscheidungen —
12
+ * der Auffangzweig eroeffnet keinen zusaetzlichen unabhaengigen Pfad.
13
+ * - `catch_clause` zaehlt als `catch`. `finally_clause` NICHT: es laeuft
14
+ * immer und verzweigt nichts.
15
+ * - `&&`/`||` zaehlen nur ERWEITERT (§16.3), nie klassisch.
16
+ * - `else if` ist in Java ein `if_statement` DIREKT unter einem
17
+ * `if_statement` (kein `else_clause`) — `elseIfParentKinds` sagt das.
18
+ *
19
+ * NACHGESEHEN, NICHT GERATEN: jede Knotenart hier stammt aus dem Baum von
20
+ * `__golden__/java-basic.java`, und `golden.test.ts` erzeugt ihn wieder.
21
+ */
22
+ import type { LanguageKindTable } from "../../shared/table-profile.js";
23
+ import type { AstGrepLanguageSource } from "../adapter.js";
24
+ export declare const JAVA_SOURCE: AstGrepLanguageSource;
25
+ export declare const JAVA_TABLE: LanguageKindTable;
26
+ //# sourceMappingURL=java.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"java.d.ts","sourceRoot":"","sources":["../../../../src/languages/astgrep-backend/lang/java.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAE3D,eAAO,MAAM,WAAW,EAAE,qBAGzB,CAAC;AAIF,eAAO,MAAM,UAAU,EAAE,iBAmFxB,CAAC"}
@@ -0,0 +1,89 @@
1
+ export const JAVA_SOURCE = {
2
+ languageName: "java",
3
+ moduleName: "@ast-grep/lang-java",
4
+ };
5
+ const VISIBILITY_WORDS = ["public", "protected", "private"];
6
+ export const JAVA_TABLE = {
7
+ languageId: "java",
8
+ extensions: [".java"],
9
+ supportLevel: "deep",
10
+ commentKinds: ["line_comment", "block_comment"],
11
+ stringContainerKinds: ["string_literal", "character_literal", "text_block"],
12
+ identifierLeafKinds: ["identifier", "type_identifier", "this", "super"],
13
+ numberLeafKinds: [
14
+ "decimal_integer_literal",
15
+ "hex_integer_literal",
16
+ "octal_integer_literal",
17
+ "binary_integer_literal",
18
+ "decimal_floating_point_literal",
19
+ "hex_floating_point_literal",
20
+ ],
21
+ booleanLeafKinds: ["true", "false"],
22
+ nullLeafKinds: ["null_literal"],
23
+ scopes: [
24
+ { kinds: ["class_declaration", "record_declaration"], scopeKind: "class" },
25
+ {
26
+ kinds: ["interface_declaration", "annotation_type_declaration"],
27
+ scopeKind: "interface",
28
+ },
29
+ { kinds: ["enum_declaration"], scopeKind: "enum" },
30
+ { kinds: ["method_declaration"], scopeKind: "method" },
31
+ { kinds: ["constructor_declaration"], scopeKind: "constructor" },
32
+ // Der Name eines Feldes steht zwei Ebenen tief:
33
+ // `field_declaration.declarator` -> `variable_declarator.name`.
34
+ { kinds: ["field_declaration"], scopeKind: "property", nameField: "declarator.name" },
35
+ ],
36
+ decisions: {
37
+ ifKinds: ["if_statement"],
38
+ elseIfParentKinds: ["if_statement"],
39
+ loopKinds: ["for_statement", "enhanced_for_statement", "while_statement", "do_statement"],
40
+ catchKinds: ["catch_clause"],
41
+ ternaryKinds: ["ternary_expression"],
42
+ switchKinds: ["switch_statement", "switch_expression"],
43
+ caseKinds: ["switch_label"],
44
+ caseExcludeChildKinds: ["default"],
45
+ binaryKinds: ["binary_expression"],
46
+ operatorField: "operator",
47
+ logicalAndOperators: ["&&"],
48
+ logicalOrOperators: ["||"],
49
+ jumpKinds: ["return_statement", "throw_statement", "break_statement", "continue_statement"],
50
+ blockKinds: ["block"],
51
+ consequenceField: "consequence",
52
+ alternativeField: "alternative",
53
+ },
54
+ imports: {
55
+ kinds: ["import_declaration"],
56
+ // `import_declaration` vergibt keine Feldnamen; der Pfad ist der
57
+ // `scoped_identifier` darin (bei `import a.*` ein `asterisk` daneben).
58
+ pathKinds: ["scoped_identifier", "identifier"],
59
+ },
60
+ calls: {
61
+ kinds: ["method_invocation"],
62
+ functionField: "name",
63
+ receiverField: "object",
64
+ argumentsField: "arguments",
65
+ constructionKinds: ["object_creation_expression"],
66
+ constructedTypeField: "type",
67
+ },
68
+ declarationParentKinds: [
69
+ "class_declaration",
70
+ "record_declaration",
71
+ "interface_declaration",
72
+ "annotation_type_declaration",
73
+ "enum_declaration",
74
+ "method_declaration",
75
+ "constructor_declaration",
76
+ "variable_declarator",
77
+ "formal_parameter",
78
+ "catch_formal_parameter",
79
+ "type_parameter",
80
+ "enum_constant",
81
+ ],
82
+ visibilityKinds: ["modifiers"],
83
+ visibilityWords: [...VISIBILITY_WORDS],
84
+ bodyField: "body",
85
+ // Java sagt es mit einem Schluesselwort: `public` in den Modifikatoren.
86
+ isExported: (_name, node) => node.children.some((child) => child.type === "modifiers" && /\bpublic\b/.test(child.text)),
87
+ fieldNames: ["name", "declarator"],
88
+ };
89
+ //# sourceMappingURL=java.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"java.js","sourceRoot":"","sources":["../../../../src/languages/astgrep-backend/lang/java.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Kotlin (WP-86).
3
+ *
4
+ * DIE BESONDERHEIT, und der Grund fuer jede Eigenart dieser Tabelle: die
5
+ * Kotlin-Grammatik VERGIBT KEINE FELDNAMEN. Kein `name`, kein `body`, kein
6
+ * `condition` — nachgesehen an einer echten Datei mit Klasse, Objekt,
7
+ * Companion, `when`, `try` und Lambda: `node.field(...)` liefert durchweg
8
+ * `null`. Alles laeuft deshalb ueber `nameKinds`, also ueber die ART des
9
+ * ersten passenden Kindes.
10
+ *
11
+ * ZWEI FOLGEN, die in der Ausgabe sichtbar sind und deshalb hier stehen:
12
+ *
13
+ * 1. `normalizedSignature` ist die ERSTE ZEILE des Knotens, nicht der Kopf
14
+ * bis zum Rumpf: ohne `body`-Feld gibt es keinen Punkt, an dem der Rumpf
15
+ * beginnt (`table-profile.ts#scopeSignature` faellt genau darauf zurueck).
16
+ * 2. `IdentifierFact.role` ist IMMER `reference`. Die Rolle haengt am
17
+ * Feldnamen `name` (`identifierRole`), und den gibt es hier nicht. Eine
18
+ * Deklaration von einem Verweis zu unterscheiden waere also geraten —
19
+ * lieber eine ehrlich schwaechere Angabe als eine erfundene.
20
+ *
21
+ * ABBILDUNGEN: `class_declaration` traegt in Kotlin AUCH `interface`,
22
+ * `enum class` und `data class`; unterschieden wird ueber das
23
+ * Schluesselwortkind (`refine`). `object` und `companion object` ->
24
+ * `namespace` (benannte Singletons, keine Typen).
25
+ *
26
+ * ENTSCHEIDUNGSPUNKTE (spec.md §16.2/§16.3):
27
+ * - `if_expression` ist Verzweigung UND Ausdruck (Kotlin hat keinen
28
+ * Ternaeroperator). Gezaehlt als `if` — dieselbe Zahl unabhaengiger Pfade.
29
+ * - `when_entry` ist ein `case`; der `else`-Arm zaehlt nicht
30
+ * (`caseExcludeChildKinds: ["else"]`).
31
+ * - `catch_block` zaehlt, `finally_block` nicht.
32
+ * - `conjunction_expression`/`disjunction_expression` tragen den Operator
33
+ * als anonymes Kind statt in einem Feld — `anonymousOperatorKinds`.
34
+ * - `elvis_expression` (`a ?: b`) zaehlt als `short_circuit`, nur erweitert.
35
+ * - `else if` liegt unter einem `control_structure_body`. Dessen unmittelbar
36
+ * vorangehendes anonymes `else`-Geschwister unterscheidet die Fortsetzung
37
+ * von einem ungekammerten `if` im Dann-Rumpf (WP-243). Damit bekommt eine
38
+ * Kotlin-Kette dieselbe kognitive Verschachtelung wie Java.
39
+ */
40
+ import type { LanguageKindTable } from "../../shared/table-profile.js";
41
+ import type { AstGrepLanguageSource } from "../adapter.js";
42
+ export declare const KOTLIN_SOURCE: AstGrepLanguageSource;
43
+ export declare const KOTLIN_TABLE: LanguageKindTable;
44
+ //# sourceMappingURL=kotlin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kotlin.d.ts","sourceRoot":"","sources":["../../../../src/languages/astgrep-backend/lang/kotlin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAE3D,eAAO,MAAM,aAAa,EAAE,qBAG3B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,iBAwF1B,CAAC"}
@@ -0,0 +1,94 @@
1
+ export const KOTLIN_SOURCE = {
2
+ languageName: "kotlin",
3
+ moduleName: "@ast-grep/lang-kotlin",
4
+ };
5
+ export const KOTLIN_TABLE = {
6
+ languageId: "kotlin",
7
+ extensions: [".kt", ".kts"],
8
+ supportLevel: "deep",
9
+ commentKinds: ["line_comment", "multiline_comment"],
10
+ stringContainerKinds: ["string_literal", "character_literal"],
11
+ identifierLeafKinds: ["simple_identifier", "type_identifier", "this", "super"],
12
+ numberLeafKinds: [
13
+ "integer_literal",
14
+ "real_literal",
15
+ "hex_literal",
16
+ "bin_literal",
17
+ "long_literal",
18
+ ],
19
+ booleanLeafKinds: ["boolean_literal"],
20
+ nullLeafKinds: ["null"],
21
+ scopes: [
22
+ {
23
+ kinds: ["class_declaration"],
24
+ scopeKind: "class",
25
+ nameKinds: ["type_identifier", "simple_identifier"],
26
+ refine: [
27
+ // Reihenfolge zaehlt: `enum class` traegt BEIDE Schluesselwoerter.
28
+ { childKinds: ["enum"], scopeKind: "enum" },
29
+ { childKinds: ["interface"], scopeKind: "interface" },
30
+ ],
31
+ },
32
+ {
33
+ kinds: ["object_declaration"],
34
+ scopeKind: "namespace",
35
+ nameKinds: ["type_identifier", "simple_identifier"],
36
+ },
37
+ {
38
+ kinds: ["function_declaration"],
39
+ scopeKind: "function",
40
+ nameKinds: ["simple_identifier"],
41
+ },
42
+ {
43
+ kinds: ["property_declaration"],
44
+ scopeKind: "property",
45
+ // `property_declaration > variable_declaration > simple_identifier`;
46
+ // ohne den letzten Schritt stuende `name: String` (mit Typangabe) im
47
+ // Namen.
48
+ nameKindPath: ["variable_declaration"],
49
+ nameKinds: ["simple_identifier"],
50
+ // NUR auf Klassen-/Dateiebene: `var i = 0` in einem Funktionsrumpf ist
51
+ // eine lokale Variable und kein Symbol.
52
+ parentKinds: ["class_body", "enum_class_body", "source_file"],
53
+ },
54
+ ],
55
+ decisions: {
56
+ ifKinds: ["if_expression"],
57
+ elseIfWrapperKinds: ["control_structure_body"],
58
+ // kotlin-tree-sitter 0.0.7 zerlegt ausgerechnet
59
+ // `else /* Blockkommentar */ if` in Geschwister und verliert das anonyme
60
+ // `else` aus dem Baum. Der Detektor prueft dafuer den exakt begrenzten
61
+ // Token-Spalt zwischen diesen Geschwistern; andere Sprachen bleiben aus.
62
+ recoverDetachedElseIfAfterComments: true,
63
+ loopKinds: ["for_statement", "while_statement", "do_while_statement"],
64
+ catchKinds: ["catch_block"],
65
+ switchKinds: ["when_expression"],
66
+ caseKinds: ["when_entry"],
67
+ caseExcludeChildKinds: ["else"],
68
+ anonymousOperatorKinds: [
69
+ "conjunction_expression",
70
+ "disjunction_expression",
71
+ "elvis_expression",
72
+ ],
73
+ logicalAndOperators: ["&&"],
74
+ logicalOrOperators: ["||"],
75
+ shortCircuitOperators: ["?:"],
76
+ jumpKinds: ["jump_expression"],
77
+ blockKinds: ["control_structure_body", "statements"],
78
+ },
79
+ // Kotlin: `import kotlin.math.max` / `import a.b.C as D`. Der Pfad ist das
80
+ // `identifier`-Kind; der Alias steht in einem `import_alias` daneben.
81
+ imports: {
82
+ kinds: ["import_header"],
83
+ pathKinds: ["identifier"],
84
+ },
85
+ calls: {
86
+ kinds: ["call_expression"],
87
+ memberKinds: ["navigation_expression"],
88
+ },
89
+ declarationParentKinds: [],
90
+ visibilityKinds: ["modifiers"],
91
+ visibilityWords: ["public", "internal", "protected", "private"],
92
+ fieldNames: ["name"],
93
+ };
94
+ //# sourceMappingURL=kotlin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kotlin.js","sourceRoot":"","sources":["../../../../src/languages/astgrep-backend/lang/kotlin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * PHP (WP-86).
3
+ *
4
+ * ABBILDUNGEN: `trait` -> `interface` (ein benannter, wiederverwendbarer Satz
5
+ * von Methoden ohne eigene Instanz — naeher an einer Schnittstelle als an
6
+ * einer Klasse), `namespace` -> `namespace`.
7
+ *
8
+ * ENTSCHEIDUNGSPUNKTE (spec.md §16.2/§16.3):
9
+ * - `else_if_clause` (`elseif`) ist eine EIGENE Knotenart und damit direkt
10
+ * ein `else_if`.
11
+ * - `case_statement` zaehlt; `default_statement` ist eine eigene Knotenart
12
+ * und steht nicht in `caseKinds`.
13
+ * - `match_conditional_expression` (PHP 8 `match`) zaehlt als `case`;
14
+ * `match_default_expression` nicht.
15
+ * - `catch_clause` zaehlt, `finally_clause` nicht.
16
+ * - `??` zaehlt als `short_circuit`, nur erweitert. `and`/`or` (die
17
+ * niedrigpriorisierten Wortformen) zaehlen wie `&&`/`||`.
18
+ */
19
+ import type { LanguageKindTable } from "../../shared/table-profile.js";
20
+ import type { AstGrepLanguageSource } from "../adapter.js";
21
+ export declare const PHP_SOURCE: AstGrepLanguageSource;
22
+ export declare const PHP_TABLE: LanguageKindTable;
23
+ //# sourceMappingURL=php.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"php.d.ts","sourceRoot":"","sources":["../../../../src/languages/astgrep-backend/lang/php.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAE3D,eAAO,MAAM,UAAU,EAAE,qBAGxB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,iBA8EvB,CAAC"}
@@ -0,0 +1,80 @@
1
+ export const PHP_SOURCE = {
2
+ languageName: "php",
3
+ moduleName: "@ast-grep/lang-php",
4
+ };
5
+ export const PHP_TABLE = {
6
+ languageId: "php",
7
+ extensions: [".php", ".phtml"],
8
+ supportLevel: "deep",
9
+ commentKinds: ["comment"],
10
+ stringContainerKinds: ["string", "encapsed_string", "heredoc", "nowdoc"],
11
+ identifierLeafKinds: ["name", "variable_name", "qualified_name", "self", "parent"],
12
+ numberLeafKinds: ["integer", "float"],
13
+ booleanLeafKinds: ["boolean"],
14
+ nullLeafKinds: ["null"],
15
+ scopes: [
16
+ { kinds: ["namespace_definition"], scopeKind: "namespace" },
17
+ { kinds: ["class_declaration"], scopeKind: "class" },
18
+ { kinds: ["interface_declaration", "trait_declaration"], scopeKind: "interface" },
19
+ { kinds: ["enum_declaration"], scopeKind: "enum" },
20
+ {
21
+ kinds: ["method_declaration"],
22
+ scopeKind: "method",
23
+ constructorNames: ["__construct"],
24
+ },
25
+ { kinds: ["function_definition"], scopeKind: "function" },
26
+ {
27
+ kinds: ["property_declaration"],
28
+ scopeKind: "property",
29
+ // `property_declaration > property_element.name`
30
+ nameKindPath: ["property_element"],
31
+ },
32
+ ],
33
+ decisions: {
34
+ ifKinds: ["if_statement"],
35
+ elseIfKinds: ["else_if_clause"],
36
+ loopKinds: ["for_statement", "foreach_statement", "while_statement", "do_statement"],
37
+ catchKinds: ["catch_clause"],
38
+ ternaryKinds: ["conditional_expression"],
39
+ switchKinds: ["switch_statement", "match_expression"],
40
+ caseKinds: ["case_statement", "match_conditional_expression"],
41
+ binaryKinds: ["binary_expression"],
42
+ operatorField: "operator",
43
+ logicalAndOperators: ["&&", "and"],
44
+ logicalOrOperators: ["||", "or"],
45
+ shortCircuitOperators: ["??"],
46
+ jumpKinds: ["return_statement", "break_statement", "continue_statement", "throw_expression"],
47
+ blockKinds: ["compound_statement"],
48
+ consequenceField: "body",
49
+ alternativeField: "alternative",
50
+ },
51
+ imports: {
52
+ kinds: ["namespace_use_declaration"],
53
+ specKinds: ["namespace_use_clause"],
54
+ pathKinds: ["qualified_name", "name"],
55
+ },
56
+ calls: {
57
+ kinds: ["function_call_expression", "member_call_expression", "scoped_call_expression"],
58
+ functionField: "name",
59
+ receiverField: "object",
60
+ argumentsField: "arguments",
61
+ constructionKinds: ["object_creation_expression"],
62
+ },
63
+ declarationParentKinds: [
64
+ "class_declaration",
65
+ "interface_declaration",
66
+ "trait_declaration",
67
+ "enum_declaration",
68
+ "method_declaration",
69
+ "function_definition",
70
+ "simple_parameter",
71
+ "property_element",
72
+ "const_element",
73
+ ],
74
+ visibilityKinds: ["visibility_modifier"],
75
+ bodyField: "body",
76
+ isExported: (_name, node) => !node.children.some((child) => child.type === "visibility_modifier" &&
77
+ (child.text === "private" || child.text === "protected")),
78
+ fieldNames: ["name"],
79
+ };
80
+ //# sourceMappingURL=php.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"php.js","sourceRoot":"","sources":["../../../../src/languages/astgrep-backend/lang/php.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Ruby (WP-86).
3
+ *
4
+ * ABBILDUNGEN: `module` -> `namespace`, `class` -> `class`, `def` und
5
+ * `def self.x` -> `method`.
6
+ *
7
+ * KEINE SICHTBARKEIT. Rubys `private`/`public` sind AUFRUFE, die den Rest des
8
+ * Klassenrumpfes umschalten — sie stehen nicht am Symbol. Ohne Datenflussblick
9
+ * ist die Sichtbarkeit eines `def` aus dem Syntaxbaum nicht ablesbar, also
10
+ * meldet dieser Adapter KEINE statt einer geratenen. Dasselbe gilt fuer
11
+ * `exportedNames`.
12
+ *
13
+ * ENTSCHEIDUNGSPUNKTE (spec.md §16.2/§16.3):
14
+ * - Die NACHSTELLFORMEN zaehlen mit: `return x if y` (`if_modifier`) hat
15
+ * genau die zwei Pfade, die `if y then return x end` auch haette. Ebenso
16
+ * `unless_modifier`, `while_modifier`, `until_modifier`.
17
+ * - `elsif` ist eine EIGENE Knotenart und damit direkt ein `else_if`
18
+ * (Fortsetzung, kein voller Nesting-Zuwachs).
19
+ * - `when` und `in_clause` (Ruby 3 `case/in`) sind `case`-Zweige. Der
20
+ * `else`-Zweig eines `case` ist die Knotenart `else` und steht nicht in
21
+ * `caseKinds` — er zaehlt also nicht.
22
+ * - `rescue` zaehlt als `catch`; `ensure` nicht (laeuft immer).
23
+ * - `and`/`or` sind Rubys Wortformen und zaehlen wie `&&`/`||`.
24
+ * - `&.` zaehlt NICHT: es ist das `operator`-Feld eines gewoehnlichen
25
+ * `call`, und jede Kette wuerde sonst zur Verzweigung.
26
+ *
27
+ * IMPORTE: Ruby hat keine. `require`/`require_relative` sind gewoehnliche
28
+ * Methodenaufrufe — hier NICHT als Import gemeldet, weil die Tabelle sie nicht
29
+ * vom gleichnamigen Aufruf einer eigenen Methode unterscheiden koennte. Die
30
+ * Datei meldet also KEINE Importe statt moeglicherweise falscher. Wer sie
31
+ * braucht, sieht sie in `extractCalls` als Aufrufe von `require`.
32
+ */
33
+ import type { LanguageKindTable } from "../../shared/table-profile.js";
34
+ import type { AstGrepLanguageSource } from "../adapter.js";
35
+ export declare const RUBY_SOURCE: AstGrepLanguageSource;
36
+ export declare const RUBY_TABLE: LanguageKindTable;
37
+ //# sourceMappingURL=ruby.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ruby.d.ts","sourceRoot":"","sources":["../../../../src/languages/astgrep-backend/lang/ruby.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAE3D,eAAO,MAAM,WAAW,EAAE,qBAGzB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,iBAgExB,CAAC"}