mini-c-parser 0.12.2

minimal C language lexer & parser & virtual executer from scratch
#[derive(Debug, PartialEq, Clone)]
pub enum Token {
    Others(char), // any other character that failed to parse;
    Identifier(String),
    ConstantCharacter(i8),
    ConstantInteger(i32),
    ConstantLong(i64),
    ConstantUnsignedInteger(u32),
    ConstantUnsignedLong(u64),
    ConstantFloat(f32),
    ConstantDouble(f64),
    StringLiteral(String),
    PreprocessorDefine,
    PreprocessorIfDef,
    PreprocessorIfNDef,
    PreprocessorEndIf,
    PreprocessorElIf,
    PreprocessorUndef,
    PreprocessorElse,
    PreprocessorPlaceholder(usize), // for function-like macro
    PreprocessorIf,
    PreprocessorInclude,
    NewLine,
    Auto,
    Break,
    Case,
    Char,
    Const,
    Continue,
    Default,
    Do,
    Double,
    Else,
    Enum,
    Extern,
    Float,
    For,
    Goto,
    If,
    Int,
    Long,
    Register,
    Return,
    Short,
    Signed,
    Sizeof,
    Static,
    Struct,
    Switch,
    Typedef,
    Union,
    Unsigned,
    Void,
    Volatile,
    While,
    Ellipsis, // ...
    RightAssign,
    LeftAssign,
    AddAssign,
    SubAssign,
    MulAssign,
    DivAssign,
    ModAssign,
    AndAssign,
    XorAssign,
    OrAssign,
    RightOp,
    LeftOp,
    IncOp,
    DecOp,
    PtrOp,
    AndOp,
    OrOp,
    LeOp,
    GeOp,
    EqOp,
    NeOp,
    SemiColon,
    LeftBrace,
    RightBrace,
    Comma,
    Colon,
    Equal,
    LeftParen,
    RightParen,
    LeftBracket,
    RightBracket,
    Dot,
    Ampersand,
    Exclamation,
    Tilde,
    Minus,
    Plus,
    Star,
    Slash,
    Percent,
    LessThan,
    GreaterThan,
    Caret,
    Pipe,
    Question,
    Whitespace, // one or more whitespaces
}

use rusty_parser as rp;

pub type DynParser = rp::DynBoxChars<(Token,)>;