pub trait LanguageParser: Send + Sync {
// Required methods
fn extensions(&self) -> &[&str];
fn extract_symbols(
&self,
source: &[u8],
file_path: &Path,
) -> Result<Vec<Symbol>>;
fn extract_calls(
&self,
source: &[u8],
file_path: &Path,
) -> Result<Vec<RawCallEdge>>;
fn extract_types(
&self,
source: &[u8],
file_path: &Path,
) -> Result<Vec<TypeInfo>>;
fn extract_imports(
&self,
source: &[u8],
file_path: &Path,
) -> Result<Vec<Import>>;
// Provided method
fn parse_file(
&self,
source: &[u8],
file_path: &Path,
) -> Result<FileAnalysis> { ... }
}Expand description
Trait implemented by each language-specific parser.
Stub parsers return empty results; real tree-sitter implementations will be added in Tasks 5-7.
Required Methods§
Sourcefn extensions(&self) -> &[&str]
fn extensions(&self) -> &[&str]
File extensions this parser handles (without leading dot).
Sourcefn extract_symbols(
&self,
source: &[u8],
file_path: &Path,
) -> Result<Vec<Symbol>>
fn extract_symbols( &self, source: &[u8], file_path: &Path, ) -> Result<Vec<Symbol>>
Extract all symbols from source code.
Sourcefn extract_calls(
&self,
source: &[u8],
file_path: &Path,
) -> Result<Vec<RawCallEdge>>
fn extract_calls( &self, source: &[u8], file_path: &Path, ) -> Result<Vec<RawCallEdge>>
Extract raw call edges (unresolved names).
Provided Methods§
Sourcefn parse_file(&self, source: &[u8], file_path: &Path) -> Result<FileAnalysis>
fn parse_file(&self, source: &[u8], file_path: &Path) -> Result<FileAnalysis>
Parse a file and return all extracted data.
Default implementation delegates to the four individual extract methods.