pub const EOF: u16 = 0;
pub const LITERAL_INT: u16 = 1;
pub const LITERAL_BOOL: u16 = 2;
pub const IDENT: u16 = 10;
pub const KW_FN: u16 = 20;
pub const KW_LET: u16 = 21;
pub const KW_MUT: u16 = 22;
pub const KW_IF: u16 = 23;
pub const KW_ELSE: u16 = 24;
pub const KW_RETURN: u16 = 25;
pub const KW_WHILE: u16 = 26;
pub const KW_I32: u16 = 30;
pub const KW_BOOL: u16 = 31;
pub const PLUS: u16 = 40;
pub const MINUS: u16 = 41;
pub const STAR: u16 = 42;
pub const SLASH: u16 = 43;
pub const EQ: u16 = 44;
pub const LT: u16 = 45;
pub const ASSIGN: u16 = 46;
pub const SEMI: u16 = 47;
pub const COLON: u16 = 48;
pub const COMMA: u16 = 49;
pub const ARROW: u16 = 50;
pub const AMP: u16 = 51;
pub const AMP_MUT: u16 = 52;
pub const BANG: u16 = 53;
pub const PERCENT: u16 = 54;
pub const GT: u16 = 55;
pub const LE: u16 = 56;
pub const GE: u16 = 57;
pub const NE: u16 = 58;
pub const LPAREN: u16 = 60;
pub const RPAREN: u16 = 61;
pub const LBRACE: u16 = 62;
pub const RBRACE: u16 = 63;
pub const ANDAND: u16 = 64;
pub const OROR: u16 = 65;
pub const ERROR: u16 = 0xFFFE;
pub const UNSUPPORTED: u16 = 0xFFFF;
pub const fn is_literal(tok: u16) -> bool {
matches!(tok, LITERAL_INT | LITERAL_BOOL)
}
pub const fn is_binop(tok: u16) -> bool {
matches!(tok, PLUS | MINUS | STAR | SLASH | EQ | LT | PERCENT | GT | LE | GE | NE)
}