@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,302 @@
1
+ /**
2
+ * Das TABELLENGETRIEBENE Sprachprofil: eine Sprache kostet eine Tabelle,
3
+ * keinen Motor.
4
+ *
5
+ * Wofuer es da ist (WP-220): fuer jede Sprache, fuer die wir KEINE eigene
6
+ * Grammatik und keine handgeschriebenen Detektoren pflegen wollen. Der
7
+ * vereinheitlichte Walk (`engine.ts`) bleibt derselbe; nur die Bedeutung der
8
+ * Knotenarten kommt aus {@link LanguageKindTable} statt aus Fallunterscheidungen
9
+ * im Motor.
10
+ *
11
+ * WAS DIESE FASSUNG LEISTET — und was nicht. Sie deckt Symbole, Kommentare,
12
+ * Entscheidungen, Nesting, Halstead-Token, Importe und Aufrufe ab. Sie ist
13
+ * damit ausdruecklich SCHWAECHER als die handgeschriebene JS/TS-Fassung
14
+ * (`js-family-profile.ts`), und das steht hier, damit es niemand aus der
15
+ * Ausgabe erraten muss:
16
+ *
17
+ * - Importbindungen (`RawImport.bindings`) liefert sie nur, wo die Tabelle
18
+ * ein Aliasfeld nennt. Sonst FEHLT das Feld, statt eine Zuordnung zu
19
+ * erfinden — der Vertrag in domain `analysis.ts` sagt ausdruecklich, dass
20
+ * ein fehlendes Feld "unbekannt" heisst und Namensgleichheit kein Beweis ist.
21
+ * - Der Aufrufqualifizierer kommt aus der Form des Aufrufziels, nicht aus
22
+ * einer Namensaufloesung. `a.b.c()` liefert Qualifizierer `a.b`.
23
+ * - `normalizedSignature` ist der Kopf bis zum Rumpf, mit den
24
+ * Leerraumregeln aus `signature.ts`. Vorgabewerte werden NICHT entfernt
25
+ * (das ist eine JS/TS-Regel und waere anderswo geraten).
26
+ *
27
+ * Wer eine dieser Grenzen fuer eine Sprache nicht hinnehmen will, schreibt fuer
28
+ * sie ein eigenes Profil — der Vertrag dafuer ist `profile.ts`, und der Motor
29
+ * merkt den Unterschied nicht.
30
+ */
31
+ import type { SupportLevel } from "@untangle-code/domain";
32
+ import type { LanguageProfile } from "./profile.js";
33
+ import type { ScopeNode } from "./scope-model.js";
34
+ import type { SyntaxNode } from "./syntax.js";
35
+ /** Wie eine Knotenart zu einem Symbolscope wird. */
36
+ export interface ScopeRule {
37
+ /** Knotenarten, die diesen Scope oeffnen. */
38
+ kinds: readonly string[];
39
+ scopeKind: ScopeNode["kind"];
40
+ /**
41
+ * Feld, das den Namen traegt (Vorgabe: `name`). Ein PUNKT trennt einen
42
+ * Feldpfad: Javas `field_declaration` fuehrt seinen Namen unter
43
+ * `declarator.name`, nicht unter `name`.
44
+ */
45
+ nameField?: string;
46
+ /**
47
+ * Feld mit dem TRAEGER, wenn die Sprache ihn nicht als Elternknoten fuehrt
48
+ * (WP-237). Gos `method_declaration` traegt `(a *A)` unter `receiver`; ohne
49
+ * diesen Zusatz heissen `(*A).Run` und `(*B).Run` beide `Run`.
50
+ */
51
+ qualifierField?: string;
52
+ /**
53
+ * Knotenarten, die im Traegerfeld den eigentlichen Namen tragen. Der erste
54
+ * Treffer in Quelltextreihenfolge gewinnt. Go nennt den Typ eines
55
+ * Empfaengers `type_identifier`; so bleibt auch `Pair[A, B]` strukturell
56
+ * `Pair`, ohne den Quelltext an Leerzeichen oder Klammern zu zerlegen.
57
+ */
58
+ qualifierNameKinds?: readonly string[];
59
+ /**
60
+ * Dem Namensfeld so lange weiter folgen, wie es weiterfuehrt. C schreibt
61
+ * `ring_t *ring_new(size_t)` als
62
+ * `function_definition.declarator -> pointer_declarator.declarator ->
63
+ * function_declarator.declarator -> identifier`; ohne diesen Abstieg hiesse
64
+ * jede zeigerwertige Funktion `*ring_new(...)`.
65
+ */
66
+ nameDescend?: boolean;
67
+ /**
68
+ * Kette von KINDKNOTENARTEN, die vor der Namenssuche abgestiegen wird.
69
+ * C# schreibt ein Feld als `field_declaration > variable_declaration >
70
+ * variable_declarator.name`, PHP als `property_declaration >
71
+ * property_element.name`. Ohne den Abstieg stuende der ganze Text im
72
+ * Namen (`"Dictionary<string, string> _items = new()"`).
73
+ */
74
+ nameKindPath?: readonly string[];
75
+ /** Ersatzweise: Kindknotenarten, deren Text der Name ist (erste Fundstelle). */
76
+ nameKinds?: readonly string[];
77
+ /**
78
+ * Nur dann ein Scope, wenn der ELTERNKNOTEN von dieser Art ist.
79
+ *
80
+ * WOFUER: Kotlin und Swift benutzen `property_declaration` sowohl fuer ein
81
+ * Klassenfeld als auch fuer eine LOKALE Variable in einem Funktionsrumpf.
82
+ * Ohne diese Schranke wuerde `var i = 0` mitten in einer Methode als Symbol
83
+ * gemeldet — eine falsche Aussage ueber die Datei, die in Hotspots,
84
+ * Ratsche und Risikobewertung einflosse.
85
+ */
86
+ parentKinds?: readonly string[];
87
+ /**
88
+ * Mindestens ein VORFAHRE muss von einer dieser Arten sein. Das grenzt
89
+ * syntaktisch identische Deklarationen nach ihrem Kontext ab: Rust verwendet
90
+ * `function_signature_item` sowohl in Traits als auch in `extern`-Bloecken,
91
+ * aber nur die Trait-Signatur ist eine Methode des analysierten Codes.
92
+ */
93
+ ancestorKinds?: readonly string[];
94
+ /**
95
+ * Namen, die diesen Scope zu einem Konstruktor machen (Java `<init>`,
96
+ * Rust `new`, ...). Leer heisst: nie ein Konstruktor.
97
+ */
98
+ constructorNames?: readonly string[];
99
+ /**
100
+ * Verfeinerung nach einem Kindknoten. Go kennt nur `type_spec`; ob daraus
101
+ * eine Klasse (`struct_type`), eine Schnittstelle (`interface_type`) oder ein
102
+ * Typalias wird, steht erst im Kind. Ohne diese Regel muesste die Tabelle
103
+ * luegen oder alles zu `type` einebnen.
104
+ */
105
+ refine?: readonly {
106
+ childKinds: readonly string[];
107
+ scopeKind: ScopeNode["kind"];
108
+ }[];
109
+ }
110
+ /** Entscheidungs- und Nesting-Regeln (spec.md §16.2–§16.4). */
111
+ export interface DecisionRules {
112
+ ifKinds: readonly string[];
113
+ /**
114
+ * Elternknotenarten, die ein `if` zu einem `else if` machen (JS/Rust:
115
+ * `else_clause`, Go: `if_statement` selbst). Ohne Eintrag gibt es kein
116
+ * `else_if` — und die Zaehlung sagt das dann auch nicht.
117
+ */
118
+ elseIfParentKinds?: readonly string[];
119
+ /**
120
+ * Huellen, unter denen ein `if` nur dann eine Fortsetzung ist, wenn die
121
+ * Huelle unmittelbar auf ein anonymes `else`-Geschwister folgt. Kotlin
122
+ * bildet `else if` als `else > control_structure_body > if_expression` ab;
123
+ * ein `if` im Dann-Rumpf hat dieselbe Huelle, aber kein `else` davor.
124
+ */
125
+ elseIfWrapperKinds?: readonly string[];
126
+ /**
127
+ * Bereichssichere Korrektur fuer Grammatiken, die ein gueltiges
128
+ * `else /* Kommentar *\/ if` in Geschwister zerlegen und dabei das anonyme
129
+ * `else`-Token aus dem Baum verlieren. Aktiviert wird sie nur fuer die
130
+ * betroffene Sprache; erkannt wird ausschliesslich ein exaktes `else` im
131
+ * begrenzten Quelltextspalt zwischen zwei AST-Geschwistern.
132
+ */
133
+ recoverDetachedElseIfAfterComments?: boolean;
134
+ /**
135
+ * Knotenarten, die SELBST ein `else if` sind (Ruby `elsif`, PHP
136
+ * `else_if_clause`, Bash `elif_clause`). Anders als
137
+ * {@link DecisionRules.elseIfParentKinds} braucht es dafuer keinen Blick auf
138
+ * den Elternknoten — die Grammatik sagt es schon.
139
+ */
140
+ elseIfKinds?: readonly string[];
141
+ loopKinds: readonly string[];
142
+ catchKinds?: readonly string[];
143
+ /**
144
+ * Knotenarten, die eine vorzeitige Rueckkehr SIND (Swift `guard`). Die
145
+ * Guard-Erkennung ueber `consequenceField`/`jumpKinds` findet nur die
146
+ * `if`-Form; wo die Sprache ein eigenes Schluesselwort hat, steht es hier.
147
+ */
148
+ guardKinds?: readonly string[];
149
+ /**
150
+ * Musteralternativen (`Some(1) | Some(2)` in Rust) — `DecisionKind`
151
+ * `pattern_alternative`.
152
+ */
153
+ patternAlternativeKinds?: readonly string[];
154
+ /**
155
+ * Knotenarten, die einen KURZSCHLUSS darstellen, ohne ein Operatorfeld zu
156
+ * haben: Rusts `try_expression` (der `?`-Operator). Sie zaehlen wie ein
157
+ * logischer Operator NUR erweitert (spec.md §16.3), nie klassisch.
158
+ */
159
+ shortCircuitKinds?: readonly string[];
160
+ ternaryKinds?: readonly string[];
161
+ switchKinds?: readonly string[];
162
+ caseKinds?: readonly string[];
163
+ /**
164
+ * Ein `case`-Knoten mit einem DIREKTEN Kind dieser Art ist der
165
+ * Auffangzweig (`default:`) und zaehlt NICHT. Java und C fuehren `case X:`
166
+ * und `default:` unter DERSELBEN Knotenart; ohne diese Ausnahme bekaeme
167
+ * jeder `switch` eine Entscheidung zu viel.
168
+ */
169
+ caseExcludeChildKinds?: readonly string[];
170
+ /** Dasselbe ueber den Text des ersten Kindes (Bashs Auffangmuster `*)`). */
171
+ caseExcludeFirstChildText?: string;
172
+ /** Binaerausdruecke, deren Operator ueber `operatorField` erreichbar ist. */
173
+ binaryKinds?: readonly string[];
174
+ /**
175
+ * Knotenarten, deren Operator KEIN Feld ist, sondern das erste anonyme Kind.
176
+ * Kotlin (`conjunction_expression`), Swift (`disjunction_expression`) und
177
+ * Bash (`list` mit `&&`/`||`) vergeben dort keine Feldnamen.
178
+ */
179
+ anonymousOperatorKinds?: readonly string[];
180
+ operatorField?: string;
181
+ logicalAndOperators?: readonly string[];
182
+ logicalOrOperators?: readonly string[];
183
+ shortCircuitOperators?: readonly string[];
184
+ /** Sprunganweisungen fuer die Guard-Clause-Erkennung. */
185
+ jumpKinds?: readonly string[];
186
+ /** Rumpfhuellen, die fuer die Guard-Erkennung durchsichtig sind (Go: `block`+`statement_list`). */
187
+ blockKinds?: readonly string[];
188
+ consequenceField?: string;
189
+ alternativeField?: string;
190
+ }
191
+ /** Importregeln. */
192
+ export interface ImportRules {
193
+ /** Anweisungsarten, die einen Import darstellen. */
194
+ kinds: readonly string[];
195
+ /** Untereintraege innerhalb der Anweisung (Go: `import_spec`). Leer: die Anweisung selbst. */
196
+ specKinds?: readonly string[];
197
+ /** Feld mit dem Pfad/Ziel (Go `path`, Rust `argument`). */
198
+ pathField?: string;
199
+ /** Ersatzweise: Knotenarten, deren Text der Pfad ist. */
200
+ pathKinds?: readonly string[];
201
+ /** Feld mit dem lokalen Namen (Alias), wenn die Sprache eines hat. */
202
+ aliasField?: string;
203
+ /**
204
+ * Auspacken zusammengesetzter Ziele. Rust schreibt
205
+ * `use a::b as c` (`use_as_clause`) und `use a::{b, c}` (`scoped_use_list`);
206
+ * ohne diese Regel stuende der ganze Ausdruck als "Pfad" im Ergebnis.
207
+ */
208
+ unwrap?: readonly {
209
+ kinds: readonly string[];
210
+ pathField: string;
211
+ aliasField?: string;
212
+ /** Feld mit der Namensliste; ihre BENANNTEN Kinder werden zu `importedNames`. */
213
+ namesField?: string;
214
+ }[];
215
+ }
216
+ /** Aufrufregeln. */
217
+ export interface CallRules {
218
+ kinds: readonly string[];
219
+ /** Feld mit dem Aufrufziel (Vorgabe: `function`). */
220
+ functionField?: string;
221
+ /** Feld mit der Argumentliste (Vorgabe: `arguments`). */
222
+ argumentsField?: string;
223
+ /** Zugriffsformen `a.b` / `a::b`, aus denen Qualifizierer und Name entstehen. */
224
+ memberKinds?: readonly string[];
225
+ /**
226
+ * Feld mit dem EMPFAENGER, wenn die Sprache ihn getrennt fuehrt statt in
227
+ * einem Zugriffsknoten: Javas `method_invocation` hat `object` und `name`
228
+ * nebeneinander, Rubys `call` hat `receiver` und `method`. Ohne dieses Feld
229
+ * ginge der Qualifizierer dort verloren.
230
+ */
231
+ receiverField?: string;
232
+ /** Konstruktoraufrufe (`new X()`), falls die Sprache eine eigene Knotenart hat. */
233
+ constructionKinds?: readonly string[];
234
+ /** Feld mit dem Typ eines Konstruktoraufrufs. */
235
+ constructedTypeField?: string;
236
+ /**
237
+ * Zusaetzliche Bedingung, die ein Kandidat erfuellen muss.
238
+ *
239
+ * WOFUER: Swift benutzt `call_expression` AUCH fuer Indexzugriffe
240
+ * (`items["a"]`). Ohne Filter meldete der Adapter `items` als Aufrufziel —
241
+ * ein Aufruf, den es nicht gibt.
242
+ */
243
+ acceptCall?: (node: SyntaxNode) => boolean;
244
+ }
245
+ /** Die vollstaendige Tabelle einer Sprache. */
246
+ export interface LanguageKindTable {
247
+ languageId: string;
248
+ extensions: readonly string[];
249
+ supportLevel: SupportLevel;
250
+ commentKinds: readonly string[];
251
+ /** Knoten, deren Teilbaum EIN Operand ist (Zeichenkettenliterale). */
252
+ stringContainerKinds: readonly string[];
253
+ identifierLeafKinds: readonly string[];
254
+ numberLeafKinds?: readonly string[];
255
+ booleanLeafKinds?: readonly string[];
256
+ nullLeafKinds?: readonly string[];
257
+ /** Satzzeichen, die weder Operator noch Operand sind (Vorgabe: {@link DEFAULT_PUNCTUATION}). */
258
+ punctuationKinds?: readonly string[];
259
+ scopes: readonly ScopeRule[];
260
+ decisions: DecisionRules;
261
+ imports: ImportRules;
262
+ calls: CallRules;
263
+ /** Elternknotenarten, in denen ein Bezeichner im Namensfeld eine Deklaration ist. */
264
+ declarationParentKinds: readonly string[];
265
+ /** Knotenarten, deren Text die Sichtbarkeit angibt (Rust `visibility_modifier`). */
266
+ visibilityKinds?: readonly string[];
267
+ /**
268
+ * Wenn der Sichtbarkeitsknoten ein SACK von Modifikatoren ist (Javas
269
+ * `modifiers` traegt `private final static` in EINEM Knoten): das erste
270
+ * Wort daraus, das in dieser Liste steht, ist die Sichtbarkeit. Ohne die
271
+ * Liste stuende `"private final"` im Ergebnis — eine Angabe, die kein
272
+ * Verbraucher vergleichen kann.
273
+ */
274
+ visibilityWords?: readonly string[];
275
+ /** Feld mit dem Rumpf — alles davor ist die Signatur (Vorgabe: `body`). */
276
+ bodyField?: string;
277
+ /**
278
+ * Ist dieser Name aus der Datei heraus sichtbar? Go entscheidet das am
279
+ * Grossbuchstaben, Rust am `pub`. Fehlt der Haken, meldet das Profil KEINE
280
+ * exportierten Namen — lieber nichts als eine erfundene Sichtbarkeit.
281
+ */
282
+ isExported?: (name: string, node: SyntaxNode) => boolean;
283
+ /**
284
+ * Feldnamen, die der ast-grep-Cursor am Elternknoten abfragen darf, um
285
+ * `currentFieldName` zu bestimmen (ast-grep kennt keine Umkehrrichtung,
286
+ * siehe `languages/astgrep-backend/syntax.ts`). Vorgabe: `["name"]`.
287
+ */
288
+ fieldNames?: readonly string[];
289
+ }
290
+ /** Satzzeichen, die in fast jeder Sprache reine Struktur sind. */
291
+ export declare const DEFAULT_PUNCTUATION: readonly string[];
292
+ /**
293
+ * Baut ein Profil aus vier kompilierten, unabhaengigen Verantwortungen.
294
+ *
295
+ * WP-239: Diese Funktion verdrahtet nur noch Tokens, Scopes, Entscheidungen
296
+ * und Modul-Fakten. Die jeweiligen Regeln leben in kleinen Resolvern mit
297
+ * eigener Zustandsmenge; der vorherige 500-Zeilen-Abschluss ist verschwunden.
298
+ */
299
+ export declare function createTableProfile(table: LanguageKindTable): LanguageProfile;
300
+ /** Die Feldnamen, die ein Backend ohne Feldnamen-Rueckrichtung abfragen muss. */
301
+ export declare function fieldNamesOf(table: LanguageKindTable): readonly string[];
302
+ //# sourceMappingURL=table-profile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-profile.d.ts","sourceRoot":"","sources":["../../../src/languages/shared/table-profile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,125 @@
1
+ import { TableDecisionDetector } from "./table-profile-decisions.js";
2
+ import { TableModuleFactCollector } from "./table-profile-module-facts.js";
3
+ import { setOf } from "./table-profile-queries.js";
4
+ import { TableScopeResolver } from "./table-profile-scopes.js";
5
+ /** Satzzeichen, die in fast jeder Sprache reine Struktur sind. */
6
+ export const DEFAULT_PUNCTUATION = [
7
+ "(",
8
+ ")",
9
+ "{",
10
+ "}",
11
+ "[",
12
+ "]",
13
+ ",",
14
+ ";",
15
+ ".",
16
+ ":",
17
+ ];
18
+ /**
19
+ * Die Blattklassifikation ist eine eigene Verantwortung: Sie kennt weder
20
+ * Scopes noch Kontrollfluss, Importe oder Aufrufe.
21
+ */
22
+ class TableTokenClassifier {
23
+ commentKinds;
24
+ literalContainerKinds;
25
+ identifierLeafKinds;
26
+ simpleLiteralLeafKinds;
27
+ punctuationKinds;
28
+ numberKinds;
29
+ booleanKinds;
30
+ nullKinds;
31
+ declarationParentKinds;
32
+ constructor(table) {
33
+ this.commentKinds = setOf(table.commentKinds);
34
+ this.literalContainerKinds = setOf(table.stringContainerKinds);
35
+ this.identifierLeafKinds = setOf(table.identifierLeafKinds);
36
+ this.numberKinds = setOf(table.numberLeafKinds);
37
+ this.booleanKinds = setOf(table.booleanLeafKinds);
38
+ this.nullKinds = setOf(table.nullLeafKinds);
39
+ this.simpleLiteralLeafKinds = new Set([
40
+ ...this.numberKinds,
41
+ ...this.booleanKinds,
42
+ ...this.nullKinds,
43
+ ]);
44
+ this.punctuationKinds = setOf(table.punctuationKinds ?? DEFAULT_PUNCTUATION);
45
+ this.declarationParentKinds = setOf(table.declarationParentKinds);
46
+ }
47
+ literalKindOf(kind) {
48
+ if (this.numberKinds.has(kind))
49
+ return "number";
50
+ if (this.booleanKinds.has(kind))
51
+ return "boolean";
52
+ if (this.nullKinds.has(kind))
53
+ return "null";
54
+ return "other";
55
+ }
56
+ identifierRoleOf(fieldName, parentKind) {
57
+ return fieldName === "name" && this.declarationParentKinds.has(parentKind)
58
+ ? "declaration"
59
+ : "reference";
60
+ }
61
+ }
62
+ function stringLiteralKind() {
63
+ return "string";
64
+ }
65
+ function neverSuppressScope() {
66
+ return false;
67
+ }
68
+ function noMemberRegions() {
69
+ return [];
70
+ }
71
+ /**
72
+ * Baut ein Profil aus vier kompilierten, unabhaengigen Verantwortungen.
73
+ *
74
+ * WP-239: Diese Funktion verdrahtet nur noch Tokens, Scopes, Entscheidungen
75
+ * und Modul-Fakten. Die jeweiligen Regeln leben in kleinen Resolvern mit
76
+ * eigener Zustandsmenge; der vorherige 500-Zeilen-Abschluss ist verschwunden.
77
+ */
78
+ export function createTableProfile(table) {
79
+ const tokens = new TableTokenClassifier(table);
80
+ const scopes = new TableScopeResolver(table, tokens.commentKinds);
81
+ const decisions = new TableDecisionDetector(table.decisions, tokens.commentKinds);
82
+ const moduleFacts = new TableModuleFactCollector(table.imports, table.calls);
83
+ const needsNodeKinds = new Set([
84
+ ...scopes.nodeKinds,
85
+ ...decisions.nodeKinds,
86
+ ...moduleFacts.nodeKinds,
87
+ ]);
88
+ return {
89
+ languageId: table.languageId,
90
+ extensions: table.extensions,
91
+ supportLevel: table.supportLevel,
92
+ commentKinds: tokens.commentKinds,
93
+ literalContainerKinds: tokens.literalContainerKinds,
94
+ identifierLeafKinds: tokens.identifierLeafKinds,
95
+ simpleLiteralLeafKinds: tokens.simpleLiteralLeafKinds,
96
+ templateTextLeafKinds: new Set(),
97
+ ignoredPunctuationKinds: tokens.punctuationKinds,
98
+ typeKeywordParentKinds: new Set(),
99
+ functionLikeKinds: scopes.functionLikeKinds,
100
+ exportWrapperKinds: new Set(),
101
+ containerLiteralKind: stringLiteralKind,
102
+ simpleLiteralKind: tokens.literalKindOf.bind(tokens),
103
+ identifierRole: tokens.identifierRoleOf.bind(tokens),
104
+ needsNode: needsNodeKinds.has.bind(needsNodeKinds),
105
+ scopeKindOf: scopes.kindOf.bind(scopes),
106
+ suppressesScope: neverSuppressScope,
107
+ scopeName: scopes.nameOf.bind(scopes),
108
+ scopeQualifier: scopes.qualifierOf.bind(scopes),
109
+ scopeSignature: scopes.signatureOf.bind(scopes),
110
+ docRange: scopes.docRangeOf.bind(scopes),
111
+ visibility: scopes.visibilityOf.bind(scopes),
112
+ exportedNames: scopes.exportedNamesOf.bind(scopes),
113
+ detectDecisionAndNesting: decisions.detect.bind(decisions),
114
+ collectModuleFacts: moduleFacts.collect.bind(moduleFacts),
115
+ memberRegions: noMemberRegions,
116
+ };
117
+ }
118
+ /** Die Feldnamen, die ein Backend ohne Feldnamen-Rueckrichtung abfragen muss. */
119
+ export function fieldNamesOf(table) {
120
+ const names = new Set(table.fieldNames ?? ["name"]);
121
+ for (const rule of table.scopes)
122
+ names.add(rule.nameField ?? "name");
123
+ return [...names];
124
+ }
125
+ //# sourceMappingURL=table-profile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-profile.js","sourceRoot":"","sources":["../../../src/languages/shared/table-profile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Thin type-only surface over the `tree-sitter` native binding.
3
+ *
4
+ * We import only types here (`import type`) — the actual native module is
5
+ * loaded lazily and dynamically at runtime via `grammar-loader.ts` using
6
+ * `createRequire`, never through a static `import` statement. That is what
7
+ * makes grammar loading lazy: requiring this file costs nothing at the
8
+ * native-addon level, only `loadGrammar()` does, and only for languages
9
+ * actually used.
10
+ */
11
+ import type Parser from "tree-sitter";
12
+ import type { SyntaxCursor, SyntaxNode } from "./syntax.js";
13
+ export type TsSyntaxNode = Parser.SyntaxNode;
14
+ /** Eine Parserinstanz mit gesetzter Grammatik (siehe `parse-limits.ts#parseWithBuffer`). */
15
+ export type TsParser = Parser;
16
+ export type TsTree = Parser.Tree;
17
+ /**
18
+ * Der native Baumcursor (`tree.walk()` / `node.walk()`). Er haelt die
19
+ * Position IN der nativen Bibliothek; `gotoFirstChild`/`gotoNextSibling`/
20
+ * `gotoParent` verschieben sie, ohne je einen JS-Knotenwrapper zu bauen.
21
+ * Genau darum ist er der Traversierungsweg dieses Pakets (WP-95) — `.children`
22
+ * materialisiert je Knoten ein Array aus Wrappern.
23
+ */
24
+ export type TsTreeCursor = Parser.TreeCursor;
25
+ export type TsPoint = Parser.Point;
26
+ export type TsParserCtor = typeof Parser;
27
+ /** Opaque tree-sitter `Language` handle, as accepted by `Parser#setLanguage`. */
28
+ export type TsLanguage = unknown;
29
+ /**
30
+ * Die Zusage aus `syntax.ts`, hier festgenagelt: die NATIVEN tree-sitter-Formen
31
+ * erfuellen den backend-neutralen Baumvertrag STRUKTURELL. Kein Wrapper, kein
32
+ * Adapterobjekt, keine zusaetzliche Grenzueberquerung je Knoten — der Weg, den
33
+ * WP-95 saniert hat, bleibt genau so teuer wie vorher.
34
+ *
35
+ * Diese beiden Zuweisungen sind reine Typaussagen (`never` zur Laufzeit
36
+ * unbenutzt). Bricht eine kuenftige Aenderung an `syntax.ts` die Vertraglichkeit,
37
+ * scheitert der Typcheck HIER — und nicht erst an der Aufrufstelle, an der
38
+ * jemand versucht waere, sie mit einer Umtypung zu erschlagen.
39
+ */
40
+ type AssertAssignable<Target, Source extends Target> = [Target, Source];
41
+ export type TreeSitterSatisfiesSyntaxNode = AssertAssignable<SyntaxNode, TsSyntaxNode>;
42
+ export type TreeSitterSatisfiesSyntaxCursor = AssertAssignable<SyntaxCursor, TsTreeCursor>;
43
+ export {};
44
+ //# sourceMappingURL=tree-sitter-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-sitter-types.d.ts","sourceRoot":"","sources":["../../../src/languages/shared/tree-sitter-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAEtC,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE5D,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC;AAC7C,4FAA4F;AAC5F,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAC9B,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;AACjC;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC;AAC7C,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC;AACnC,MAAM,MAAM,YAAY,GAAG,OAAO,MAAM,CAAC;AAEzC,iFAAiF;AACjF,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC;AAEjC;;;;;;;;;;GAUG;AACH,KAAK,gBAAgB,CAAC,MAAM,EAAE,MAAM,SAAS,MAAM,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACxE,MAAM,MAAM,6BAA6B,GAAG,gBAAgB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;AACvF,MAAM,MAAM,+BAA+B,GAAG,gBAAgB,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tree-sitter-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-sitter-types.js","sourceRoot":"","sources":["../../../src/languages/shared/tree-sitter-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * `LanguageAdapter` fuer strukturierte, verfasste Daten — JSON, YAML, TOML,
3
+ * XML (vision.md §1c, spec.md §7.1/§7.2, WP-217).
4
+ *
5
+ * DIE ENTSCHEIDUNG, DIE HIER GETROFFEN IST
6
+ *
7
+ * Bei der Selbstanalyse fielen 80 JSON-, 6 TOML-, 4 YAML- und 2 XML-Dateien
8
+ * unter `unsupported_language`. Dieser Grund war falsch: die Formate SIND
9
+ * unterstuetzt, sie haben nur keinen Graphen und keinen Kontrollfluss. Nach
10
+ * spec.md §7.2 gehoeren sie ausdruecklich in die Stufe `text`.
11
+ *
12
+ * Sie bekommen deshalb hier `text` — mit voller Suche und sicheren
13
+ * Textchunks. Eine `package.json`, eine `untangle.toml`, ein Manifest
14
+ * beantworten echte Fragen; sie aus dem Index zu halten waere ein Verlust.
15
+ *
16
+ * WAS SIE NICHT BEKOMMEN, UND WARUM DAS KEINE ABSTUFUNG IST
17
+ *
18
+ * - Keine Symbole und keine `symbolScopes`: ein Schluessel in einer
19
+ * `package.json` ist kein Symbol mit Signatur, Callern und Callees. Ein
20
+ * erfundenes Symbol waere schlimmer als keins.
21
+ * - Keine Komplexitaetszahlen: es gibt keine Entscheidungspunkte. Wer diese
22
+ * Dateien in einer Metrikauswertung uebergeht, benennt das mit dem Grund
23
+ * `no_metric_defined` (domain `skip-ledger.ts`) — nicht mit
24
+ * `unsupported_language`, denn verstanden sind sie.
25
+ * - Auch KEINE Prosa-Metriken: eine YAML-Datei hat keine Abschnittstiefe im
26
+ * Sinne von Ueberschriften und keine Verweisdichte im Sinne von
27
+ * Querverweisen. Die Prosa-Familie ist fuer Prosa.
28
+ *
29
+ * WIE GESCHNITTEN WIRD
30
+ *
31
+ * Nur an Grenzen, die im Format EXAKT und ohne Parser bestimmbar sind:
32
+ *
33
+ * - TOML: eine Zeile, die (nach Leerraum) mit `[` beginnt, eroeffnet eine
34
+ * neue Tabelle — das ist die Gliederung des Formats.
35
+ * - YAML: `---` trennt Dokumente in einem Strom.
36
+ *
37
+ * Fuer JSON und XML gibt es keine solche Grenze ohne echten Parser. Sie
38
+ * bekommen EINEN Bereich ueber die ganze Datei, den der Chunker bei Bedarf
39
+ * am Tokenbudget teilt. Das ist die ehrliche Antwort und ausdruecklich
40
+ * KEINE ueberschriftenbewusste Gliederung, wie Markdown sie bekommt — sie
41
+ * zu behaupten, wo das Format sie nicht hergibt, waere die Sorte
42
+ * Beschoenigung, die E4 verbietet.
43
+ */
44
+ import type { LanguageAdapter } from "@untangle-code/domain";
45
+ /** Sprachkennung dieses Adapters. Bewusst formatuebergreifend: die Behandlung ist dieselbe. */
46
+ export declare const STRUCTURED_TEXT_LANGUAGE_ID = "structured-text";
47
+ export declare function createStructuredTextAdapter(): LanguageAdapter;
48
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/languages/structured-text/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,OAAO,KAAK,EAKV,eAAe,EAOhB,MAAM,uBAAuB,CAAC;AAK/B,+FAA+F;AAC/F,eAAO,MAAM,2BAA2B,oBAAoB,CAAC;AAyC7D,wBAAgB,2BAA2B,IAAI,eAAe,CAyF7D"}