首頁 › Tree-sitter AST 抽取
Tree-sitter AST 抽取(19 種語言)
Graphify 的第一階段是對所有程式碼檔做確定性 Tree-sitter 解析。無 LLM、無向量、無網路呼叫,直接把 AST 轉為圖節點與關係邊。
為什麼是 Tree-sitter
- 原始碼不離開本機。 AST 階段完全本地執行。
- 速度快。 解析成本近似 O(檔案大小)。
- 輸出統一。 各語言可轉為一致節點/邊形狀,便於後續 Leiden 分群。
支援語言
| 類別 | 語言 |
|---|---|
| 腳本 | Python, JavaScript, TypeScript, Ruby, PHP, Lua, PowerShell |
| 系統 | Go, Rust, C, C++, Zig, Swift, Objective-C |
| JVM / .NET | Java, Kotlin, Scala, C# |
| BEAM | Elixir |
AST 會抽出哪些資訊
- 結構節點:類別、函式、方法、模組、介面等。
- 呼叫邊:
calls(EXTRACTED, 信心1.0)。 - 匯入邊:
imports。 - 動機節點:docstring 與
# WHY:/# NOTE:等註解,掛到rationale_for。
確定性抽取與語意推斷
AST 階段輸出為 EXTRACTED。語意階段補 INFERRED 與信心分數,不確定項標記 AMBIGUOUS,並保留在 graph.json 供審查。