Trait LanguageParser

Source
pub trait LanguageParser: Send + Sync {
    // Required methods
    fn parse(
        &mut self,
        source: &str,
        filename: &str,
    ) -> Result<Rc<TreeNode>, Box<dyn Error + Send + Sync>>;
    fn extract_functions(
        &mut self,
        source: &str,
        filename: &str,
    ) -> Result<Vec<GenericFunctionDef>, Box<dyn Error + Send + Sync>>;
    fn extract_types(
        &mut self,
        source: &str,
        filename: &str,
    ) -> Result<Vec<GenericTypeDef>, Box<dyn Error + Send + Sync>>;
    fn language(&self) -> Language;
}
Expand description

Trait for language-specific parsers

Required Methods§

Source

fn parse( &mut self, source: &str, filename: &str, ) -> Result<Rc<TreeNode>, Box<dyn Error + Send + Sync>>

Parse source code into a TreeNode structure

Source

fn extract_functions( &mut self, source: &str, filename: &str, ) -> Result<Vec<GenericFunctionDef>, Box<dyn Error + Send + Sync>>

Extract function definitions from source code

Source

fn extract_types( &mut self, source: &str, filename: &str, ) -> Result<Vec<GenericTypeDef>, Box<dyn Error + Send + Sync>>

Extract type definitions from source code

Source

fn language(&self) -> Language

Get the language this parser handles

Implementors§