pub trait Parser: Send + Sync {
// Required methods
fn parse<'a>(
&self,
tokens: &[Token<'a>],
) -> Result<Vec<AstNode<'a>>, AamlError>;
fn parse_with_recovery<'a>(&self, tokens: &[Token<'a>]) -> ParseOutput<'a>;
fn generate_parse_tasks<'a>(
&self,
ast: &[AstNode<'a>],
) -> Vec<ParseTask<'a>>;
fn generate_execution_tasks<'a>(
&self,
ast: &[AstNode<'a>],
) -> Vec<ExecutionTask<'a>>;
}Expand description
Trait for parsing tokens into an AST.
Required Methods§
Sourcefn parse<'a>(&self, tokens: &[Token<'a>]) -> Result<Vec<AstNode<'a>>, AamlError>
fn parse<'a>(&self, tokens: &[Token<'a>]) -> Result<Vec<AstNode<'a>>, AamlError>
Parses a token stream into an AST.
§Errors
Returns AamlError::ParseError if the token stream is malformed.
Sourcefn parse_with_recovery<'a>(&self, tokens: &[Token<'a>]) -> ParseOutput<'a>
fn parse_with_recovery<'a>(&self, tokens: &[Token<'a>]) -> ParseOutput<'a>
Parses with recovery and returns both partial AST and all parse errors.
Sourcefn generate_parse_tasks<'a>(&self, ast: &[AstNode<'a>]) -> Vec<ParseTask<'a>>
fn generate_parse_tasks<'a>(&self, ast: &[AstNode<'a>]) -> Vec<ParseTask<'a>>
Generates parse tasks from an AST
Sourcefn generate_execution_tasks<'a>(
&self,
ast: &[AstNode<'a>],
) -> Vec<ExecutionTask<'a>>
fn generate_execution_tasks<'a>( &self, ast: &[AstNode<'a>], ) -> Vec<ExecutionTask<'a>>
Generates execution tasks from an AST
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".