lalrproc 0.0.8

Procedural macro built on LALRPOP
Documentation
use crate::span::Span;
use proc_macro::Literal;

pub use proc_macro::Ident;

#[derive(Debug)]
pub enum Type {
    Path(Path),
    Reference(Reference),
}

#[derive(Debug)]
pub struct Path {
    pub segments: Vec<Ident>,
}

#[derive(Debug)]
pub struct Reference {
    pub lifetime: Option<Lifetime>,
    pub mutable: bool,
    pub elem: Box<Type>,
}

#[derive(Debug)]
pub enum Expr {
    Path(Path),
    Lit(Literal),
    Binary(Box<Expr>, BinOp, Box<Expr>),
}

#[derive(Debug)]
pub enum BinOp {
    Add,
    Sub,
    Mul,
    Div,
}

#[derive(Debug)]
pub struct Lifetime {
    pub ident: Ident,
    pub span: Span,
}