Skip to main content

ParserCallbacks

Trait ParserCallbacks 

Source
pub trait ParserCallbacks<'a> {
    type Diagnostic;
    type Context;

Show 34 methods // Required methods fn create_tokens( context: &mut Self::Context, source: &'a str, diags: &mut Vec<Self::Diagnostic>, ) -> (Vec<Token>, Vec<Span>); fn create_diagnostic(&self, span: Span, message: String) -> Self::Diagnostic; fn predicate_decl_1(&self) -> bool; // Provided methods fn predicate_skip(&self, _token: Token) -> bool { ... } fn create_node_action( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, ) { ... } fn create_node_alternation( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, ) { ... } fn create_node_assertion( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, ) { ... } fn create_node_commit( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, ) { ... } fn create_node_concat( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, ) { ... } fn create_node_decl( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, ) { ... } fn create_node_error( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, ) { ... } fn create_node_file( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, ) { ... } fn create_node_name( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, ) { ... } fn create_node_node_creation( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, ) { ... } fn create_node_node_elision( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, ) { ... } fn create_node_node_marker( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, ) { ... } fn create_node_node_rename( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, ) { ... } fn create_node_optional( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, ) { ... } fn create_node_ordered_choice( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, ) { ... } fn create_node_paren( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, ) { ... } fn create_node_part_decl( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, ) { ... } fn create_node_plus( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, ) { ... } fn create_node_postfix( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, ) { ... } fn create_node_predicate( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, ) { ... } fn create_node_regex( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, ) { ... } fn create_node_return( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, ) { ... } fn create_node_right_decl( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, ) { ... } fn create_node_rule_decl( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, ) { ... } fn create_node_skip_decl( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, ) { ... } fn create_node_star( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, ) { ... } fn create_node_start_decl( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, ) { ... } fn create_node_symbol( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, ) { ... } fn create_node_token_decl( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, ) { ... } fn create_node_token_list( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, ) { ... }
}

Required Associated Types§

Required Methods§

Source

fn create_tokens( context: &mut Self::Context, source: &'a str, diags: &mut Vec<Self::Diagnostic>, ) -> (Vec<Token>, Vec<Span>)

Called at the start of the parse to generate all tokens and corresponding spans.

Source

fn create_diagnostic(&self, span: Span, message: String) -> Self::Diagnostic

Called when diagnostic is created.

Source

fn predicate_decl_1(&self) -> bool

Called when semantic predicate ?1 in rule decl is visited.

Provided Methods§

Source

fn predicate_skip(&self, _token: Token) -> bool

This predicate can be used to skip normal tokens.

Source

fn create_node_action( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, )

Called when action node is created.

Source

fn create_node_alternation( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, )

Called when alternation node is created.

Source

fn create_node_assertion( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, )

Called when assertion node is created.

Source

fn create_node_commit( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, )

Called when commit node is created.

Source

fn create_node_concat( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, )

Called when concat node is created.

Source

fn create_node_decl( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, )

Called when decl node is created.

Source

fn create_node_error( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, )

Called when error node is created.

Source

fn create_node_file( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, )

Called when file node is created.

Source

fn create_node_name( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, )

Called when name node is created.

Source

fn create_node_node_creation( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, )

Called when node_creation node is created.

Source

fn create_node_node_elision( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, )

Called when node_elision node is created.

Source

fn create_node_node_marker( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, )

Called when node_marker node is created.

Source

fn create_node_node_rename( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, )

Called when node_rename node is created.

Source

fn create_node_optional( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, )

Called when optional node is created.

Source

fn create_node_ordered_choice( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, )

Called when ordered_choice node is created.

Source

fn create_node_paren( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, )

Called when paren node is created.

Source

fn create_node_part_decl( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, )

Called when part_decl node is created.

Source

fn create_node_plus( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, )

Called when plus node is created.

Source

fn create_node_postfix( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, )

Called when postfix node is created.

Source

fn create_node_predicate( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, )

Called when predicate node is created.

Source

fn create_node_regex( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, )

Called when regex node is created.

Source

fn create_node_return( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, )

Called when return node is created.

Source

fn create_node_right_decl( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, )

Called when right_decl node is created.

Source

fn create_node_rule_decl( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, )

Called when rule_decl node is created.

Source

fn create_node_skip_decl( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, )

Called when skip_decl node is created.

Source

fn create_node_star( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, )

Called when star node is created.

Source

fn create_node_start_decl( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, )

Called when start_decl node is created.

Source

fn create_node_symbol( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, )

Called when symbol node is created.

Source

fn create_node_token_decl( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, )

Called when token_decl node is created.

Source

fn create_node_token_list( &mut self, _node_ref: NodeRef, _diags: &mut Vec<Self::Diagnostic>, )

Called when token_list node is created.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§