Parse source code into a tree-sitter AST.
(source: &str)
| 124 | |
| 125 | /// Parse source code into a tree-sitter AST. |
| 126 | fn parse_source(source: &str) -> Result<Tree, String> { |
| 127 | let mut parser = Parser::new(); |
| 128 | let language = crate::extraction::ts_provider::try_language("nix")?; |
| 129 | parser |
| 130 | .set_language(&language) |
| 131 | .map_err(|e| format!("failed to load Nix grammar: {e}"))?; |
| 132 | parser |
| 133 | .parse(source, None) |
| 134 | .ok_or_else(|| "tree-sitter parse returned None".to_string()) |
| 135 | } |
| 136 | |
| 137 | /// Visit all children of a node. |
| 138 | fn visit_children(state: &mut ExtractionState, node: TsNode<'_>) { |
nothing calls this directly
no test coverage detected