1
2
3
4
5
6
7
8
9
10
11
12
13
use crate::glr::State;
use crate::ProductionRule;

/// Parser trait for GLR parser
pub trait Parser {
    type Term;
    type NonTerm;

    /// get list of production rules
    fn get_rules(&self) -> &[ProductionRule<Self::Term, Self::NonTerm>];
    /// get list of states
    fn get_states(&self) -> &[State<Self::Term, Self::NonTerm>];
}