1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
use crate::thin::{Rule, Symbol, TokValue}; #[derive(Debug)] pub enum Step { Rule(Rule, i32, i32), Token(Symbol, i32, TokValue), NullingSymbol(Symbol, i32), Inactive, Initial, } impl Step { pub fn rule(ruleid: Rule, loc: i32, last: i32) -> Step { Step::Rule(ruleid, loc, last) } pub fn token(symid: Symbol, loc: i32, value: TokValue) -> Step { Step::Token(symid, loc, value) } pub fn nulling_symbol(symid: Symbol, loc: i32) -> Step { Step::NullingSymbol(symid, loc) } }