CustomRuleContext

Trait CustomRuleContext 

Source
pub trait CustomRuleContext<'input> {
    type TF: TokenFactory<'input> + 'input;
    type Ctx: ParserNodeType<'input, TF = Self::TF>;

    // Required method
    fn get_rule_index(&self) -> usize;

    // Provided methods
    fn get_alt_number(&self) -> isize { ... }
    fn set_alt_number(&self, _alt_number: isize) { ... }
    fn get_node_text(&self, rule_names: &[&str]) -> String { ... }
}
Expand description

Implemented by generated parser for context extension for particular rule

Required Associated Types§

Source

type TF: TokenFactory<'input> + 'input

Source

type Ctx: ParserNodeType<'input, TF = Self::TF>

Type that describes type of context nodes, stored in this context

Required Methods§

Source

fn get_rule_index(&self) -> usize

Rule index that corresponds to this context type

Provided Methods§

Source

fn get_alt_number(&self) -> isize

Source

fn set_alt_number(&self, _alt_number: isize)

Source

fn get_node_text(&self, rule_names: &[&str]) -> String

Returns text representation of current node type, rule name for context nodes and token text for terminal nodes

Implementors§

Source§

impl<'input, Ctx: CustomRuleContext<'input>> CustomRuleContext<'input> for BaseParserRuleContext<'input, Ctx>

Source§

type TF = <Ctx as CustomRuleContext<'input>>::TF

Source§

type Ctx = <Ctx as CustomRuleContext<'input>>::Ctx

Source§

impl<'input, ExtCtx: CustomRuleContext<'input>> CustomRuleContext<'input> for BaseRuleContext<'input, ExtCtx>

Source§

type TF = <ExtCtx as CustomRuleContext<'input>>::TF

Source§

type Ctx = <ExtCtx as CustomRuleContext<'input>>::Ctx

Source§

impl<'input, Node: ParserNodeType<'input>, T: 'static> CustomRuleContext<'input> for LeafNode<'input, Node, T>

Source§

type TF = <Node as ParserNodeType<'input>>::TF

Source§

type Ctx = Node

Source§

impl<'input, T, I> CustomRuleContext<'input> for T
where T: DerefSeal<Target = I> + 'input + Debug + Tid<'input>, I: ParserRuleContext<'input> + 'input + ?Sized,

Source§

type TF = <I as CustomRuleContext<'input>>::TF

Source§

type Ctx = <I as CustomRuleContext<'input>>::Ctx