vyre-libs 0.6.2

vyre Category A library ecosystem - pure-IR compositions over vyre-ops hardware primitives
Documentation
use super::action::{pack_accept, pack_error, pack_reduce, pack_shift};
use super::{LrTables, Production};

/// Identifier token id.
pub const TOK_ID: u32 = 0;
/// Numeric literal token id.
pub const TOK_NUM: u32 = 1;
/// `+` token id.
pub const TOK_PLUS: u32 = 2;
/// `-` token id.
pub const TOK_MINUS: u32 = 3;
/// `*` token id.
pub const TOK_STAR: u32 = 4;
/// `/` token id.
pub const TOK_SLASH: u32 = 5;
/// `(` token id.
pub const TOK_LPAREN: u32 = 6;
/// `)` token id.
pub const TOK_RPAREN: u32 = 7;
/// End-of-file token id.
pub const TOK_EOF: u32 = 8;

/// Expression nonterminal id.
pub const NT_E: u32 = 0;
/// Term nonterminal id.
pub const NT_T: u32 = 1;
/// Factor nonterminal id.
pub const NT_F: u32 = 2;

/// Precomputed action table: 17 states x 9 tokens.
pub static ACTION_TABLE: &[u32] = &[
    pack_shift(4),
    pack_shift(5),
    pack_error(),
    pack_error(),
    pack_error(),
    pack_error(),
    pack_shift(6),
    pack_error(),
    pack_error(),
    pack_error(),
    pack_error(),
    pack_shift(7),
    pack_shift(8),
    pack_error(),
    pack_error(),
    pack_error(),
    pack_error(),
    pack_accept(),
    pack_error(),
    pack_error(),
    pack_reduce(3),
    pack_reduce(3),
    pack_shift(9),
    pack_shift(10),
    pack_error(),
    pack_reduce(3),
    pack_reduce(3),
    pack_error(),
    pack_error(),
    pack_reduce(6),
    pack_reduce(6),
    pack_reduce(6),
    pack_reduce(6),
    pack_error(),
    pack_reduce(6),
    pack_reduce(6),
    pack_error(),
    pack_error(),
    pack_reduce(8),
    pack_reduce(8),
    pack_reduce(8),
    pack_reduce(8),
    pack_error(),
    pack_reduce(8),
    pack_reduce(8),
    pack_error(),
    pack_error(),
    pack_reduce(9),
    pack_reduce(9),
    pack_reduce(9),
    pack_reduce(9),
    pack_error(),
    pack_reduce(9),
    pack_reduce(9),
    pack_shift(4),
    pack_shift(5),
    pack_error(),
    pack_error(),
    pack_error(),
    pack_error(),
    pack_shift(6),
    pack_error(),
    pack_error(),
    pack_shift(4),
    pack_shift(5),
    pack_error(),
    pack_error(),
    pack_error(),
    pack_error(),
    pack_shift(6),
    pack_error(),
    pack_error(),
    pack_shift(4),
    pack_shift(5),
    pack_error(),
    pack_error(),
    pack_error(),
    pack_error(),
    pack_shift(6),
    pack_error(),
    pack_error(),
    pack_shift(4),
    pack_shift(5),
    pack_error(),
    pack_error(),
    pack_error(),
    pack_error(),
    pack_shift(6),
    pack_error(),
    pack_error(),
    pack_shift(4),
    pack_shift(5),
    pack_error(),
    pack_error(),
    pack_error(),
    pack_error(),
    pack_shift(6),
    pack_error(),
    pack_error(),
    pack_error(),
    pack_error(),
    pack_shift(7),
    pack_shift(8),
    pack_error(),
    pack_error(),
    pack_error(),
    pack_shift(16),
    pack_error(),
    pack_error(),
    pack_error(),
    pack_reduce(1),
    pack_reduce(1),
    pack_shift(9),
    pack_shift(10),
    pack_error(),
    pack_reduce(1),
    pack_reduce(1),
    pack_error(),
    pack_error(),
    pack_reduce(2),
    pack_reduce(2),
    pack_shift(9),
    pack_shift(10),
    pack_error(),
    pack_reduce(2),
    pack_reduce(2),
    pack_error(),
    pack_error(),
    pack_reduce(4),
    pack_reduce(4),
    pack_reduce(4),
    pack_reduce(4),
    pack_error(),
    pack_reduce(4),
    pack_reduce(4),
    pack_error(),
    pack_error(),
    pack_reduce(5),
    pack_reduce(5),
    pack_reduce(5),
    pack_reduce(5),
    pack_error(),
    pack_reduce(5),
    pack_reduce(5),
    pack_error(),
    pack_error(),
    pack_reduce(7),
    pack_reduce(7),
    pack_reduce(7),
    pack_reduce(7),
    pack_error(),
    pack_reduce(7),
    pack_reduce(7),
];

/// Precomputed goto table: 17 states x 3 nonterminals.
pub static GOTO_TABLE: &[u32] = &[
    1,
    2,
    3,
    u32::MAX,
    u32::MAX,
    u32::MAX,
    u32::MAX,
    u32::MAX,
    u32::MAX,
    u32::MAX,
    u32::MAX,
    u32::MAX,
    u32::MAX,
    u32::MAX,
    u32::MAX,
    u32::MAX,
    u32::MAX,
    u32::MAX,
    11,
    2,
    3,
    u32::MAX,
    12,
    3,
    u32::MAX,
    13,
    3,
    u32::MAX,
    u32::MAX,
    14,
    u32::MAX,
    u32::MAX,
    15,
    u32::MAX,
    u32::MAX,
    u32::MAX,
    u32::MAX,
    u32::MAX,
    u32::MAX,
    u32::MAX,
    u32::MAX,
    u32::MAX,
    u32::MAX,
    u32::MAX,
    u32::MAX,
    u32::MAX,
    u32::MAX,
    u32::MAX,
    u32::MAX,
    u32::MAX,
    u32::MAX,
];

/// Production rules for the C expression grammar.
pub static PRODUCTIONS: &[Production] = &[
    Production {
        lhs: NT_E,
        rhs_len: 1,
    },
    Production {
        lhs: NT_E,
        rhs_len: 3,
    },
    Production {
        lhs: NT_E,
        rhs_len: 3,
    },
    Production {
        lhs: NT_E,
        rhs_len: 1,
    },
    Production {
        lhs: NT_T,
        rhs_len: 3,
    },
    Production {
        lhs: NT_T,
        rhs_len: 3,
    },
    Production {
        lhs: NT_T,
        rhs_len: 1,
    },
    Production {
        lhs: NT_F,
        rhs_len: 3,
    },
    Production {
        lhs: NT_F,
        rhs_len: 1,
    },
    Production {
        lhs: NT_F,
        rhs_len: 1,
    },
];

/// Static precomputed tables for the C expression grammar.
pub static C11_EXPR: LrTables = LrTables {
    num_states: 17,
    num_tokens: 9,
    num_nonterminals: 3,
    action: ACTION_TABLE,
    goto: GOTO_TABLE,
    productions: PRODUCTIONS,
};