kg-lang 0.1.1

Runtime LR(1) parser generator library.
use super::*;

pub mod clr;


//FIXME (jc)
#[derive(Debug)]
pub enum ParserError {
    Unspecified(u32),
}

#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
pub enum Step {
    Accept,
    Shift,
    Reduce(usize),
}

pub trait Parser {
    fn reset(&mut self);

    fn parse(&mut self, token: &Token) -> Result<Step, ParserError>;

    fn channel(&self) -> usize;
}