168 lines
3.7 KiB
C
168 lines
3.7 KiB
C
// auto generated by meta.c
|
|
typedef enum {
|
|
TOK_EOF,
|
|
TOK_ERROR,
|
|
TOK_IDENT,
|
|
TOK_KEYWORD,
|
|
TOK_INT,
|
|
TOK_FLOAT,
|
|
TOK_CHAR,
|
|
TOK_STRING,
|
|
TOK_LPAREN,
|
|
TOK_RPAREN,
|
|
TOK_LBRACKET,
|
|
TOK_RBRACKET,
|
|
TOK_LBRACE,
|
|
TOK_RBRACE,
|
|
TOK_COMMA,
|
|
TOK_DOT,
|
|
TOK_ARROW,
|
|
TOK_ELLIPSIS,
|
|
TOK_COLON,
|
|
TOK_SEMICOLON,
|
|
TOK_QUESTION,
|
|
TOK_HASH,
|
|
TOK_HASHHASH,
|
|
TOK_PLUS,
|
|
TOK_MINUS,
|
|
TOK_STAR,
|
|
TOK_SLASH,
|
|
TOK_PERCENT,
|
|
TOK_INC,
|
|
TOK_DEC,
|
|
TOK_ASSIGN,
|
|
TOK_PLUS_ASSIGN,
|
|
TOK_MINUS_ASSIGN,
|
|
TOK_MUL_ASSIGN,
|
|
TOK_DIV_ASSIGN,
|
|
TOK_MOD_ASSIGN,
|
|
TOK_LSHIFT_ASSIGN,
|
|
TOK_RSHIFT_ASSIGN,
|
|
TOK_AND_ASSIGN,
|
|
TOK_XOR_ASSIGN,
|
|
TOK_OR_ASSIGN,
|
|
TOK_EQ,
|
|
TOK_NEQ,
|
|
TOK_LT,
|
|
TOK_LEQ,
|
|
TOK_GT,
|
|
TOK_GEQ,
|
|
TOK_NOT,
|
|
TOK_BITNOT,
|
|
TOK_BITAND,
|
|
TOK_BITOR,
|
|
TOK_BITXOR,
|
|
TOK_AND,
|
|
TOK_OR,
|
|
TOK_LSHIFT,
|
|
TOK_RSHIFT,
|
|
} Token_Kind;
|
|
char *token_to_op[] = {
|
|
[TOK_LPAREN] = "(",
|
|
[TOK_RPAREN] = ")",
|
|
[TOK_LBRACKET] = "[",
|
|
[TOK_RBRACKET] = "]",
|
|
[TOK_LBRACE] = "{",
|
|
[TOK_RBRACE] = "}",
|
|
[TOK_COMMA] = ",",
|
|
[TOK_DOT] = ".",
|
|
[TOK_ARROW] = "->",
|
|
[TOK_ELLIPSIS] = "...",
|
|
[TOK_COLON] = ":",
|
|
[TOK_SEMICOLON] = ";",
|
|
[TOK_QUESTION] = "?",
|
|
[TOK_HASH] = "#",
|
|
[TOK_HASHHASH] = "##",
|
|
[TOK_PLUS] = "+",
|
|
[TOK_MINUS] = "-",
|
|
[TOK_STAR] = "*",
|
|
[TOK_SLASH] = "/",
|
|
[TOK_PERCENT] = "%",
|
|
[TOK_INC] = "++",
|
|
[TOK_DEC] = "--",
|
|
[TOK_ASSIGN] = "=",
|
|
[TOK_PLUS_ASSIGN] = "+=",
|
|
[TOK_MINUS_ASSIGN] = "-=",
|
|
[TOK_MUL_ASSIGN] = "*=",
|
|
[TOK_DIV_ASSIGN] = "/=",
|
|
[TOK_MOD_ASSIGN] = "%=",
|
|
[TOK_LSHIFT_ASSIGN] = "<<=",
|
|
[TOK_RSHIFT_ASSIGN] = ">>=",
|
|
[TOK_AND_ASSIGN] = "&=",
|
|
[TOK_XOR_ASSIGN] = "^=",
|
|
[TOK_OR_ASSIGN] = "|=",
|
|
[TOK_EQ] = "==",
|
|
[TOK_NEQ] = "!=",
|
|
[TOK_LT] = "<",
|
|
[TOK_LEQ] = "<=",
|
|
[TOK_GT] = ">",
|
|
[TOK_GEQ] = ">=",
|
|
[TOK_NOT] = "!",
|
|
[TOK_BITNOT] = "~",
|
|
[TOK_BITAND] = "&",
|
|
[TOK_BITOR] = "|",
|
|
[TOK_BITXOR] = "^",
|
|
[TOK_AND] = "&&",
|
|
[TOK_OR] = "||",
|
|
[TOK_LSHIFT] = "<<",
|
|
[TOK_RSHIFT] = ">>",
|
|
};
|
|
char *token_to_name[] = {
|
|
[TOK_EOF] = "EOF",
|
|
[TOK_ERROR] = "ERROR",
|
|
[TOK_IDENT] = "IDENT",
|
|
[TOK_KEYWORD] = "KEYWORD",
|
|
[TOK_INT] = "INT",
|
|
[TOK_FLOAT] = "FLOAT",
|
|
[TOK_CHAR] = "CHAR",
|
|
[TOK_STRING] = "STRING",
|
|
[TOK_LPAREN] = "LPAREN",
|
|
[TOK_RPAREN] = "RPAREN",
|
|
[TOK_LBRACKET] = "LBRACKET",
|
|
[TOK_RBRACKET] = "RBRACKET",
|
|
[TOK_LBRACE] = "LBRACE",
|
|
[TOK_RBRACE] = "RBRACE",
|
|
[TOK_COMMA] = "COMMA",
|
|
[TOK_DOT] = "DOT",
|
|
[TOK_ARROW] = "ARROW",
|
|
[TOK_ELLIPSIS] = "ELLIPSIS",
|
|
[TOK_COLON] = "COLON",
|
|
[TOK_SEMICOLON] = "SEMICOLON",
|
|
[TOK_QUESTION] = "QUESTION",
|
|
[TOK_HASH] = "HASH",
|
|
[TOK_HASHHASH] = "HASHHASH",
|
|
[TOK_PLUS] = "PLUS",
|
|
[TOK_MINUS] = "MINUS",
|
|
[TOK_STAR] = "STAR",
|
|
[TOK_SLASH] = "SLASH",
|
|
[TOK_PERCENT] = "PERCENT",
|
|
[TOK_INC] = "INC",
|
|
[TOK_DEC] = "DEC",
|
|
[TOK_ASSIGN] = "ASSIGN",
|
|
[TOK_PLUS_ASSIGN] = "PLUS_ASSIGN",
|
|
[TOK_MINUS_ASSIGN] = "MINUS_ASSIGN",
|
|
[TOK_MUL_ASSIGN] = "MUL_ASSIGN",
|
|
[TOK_DIV_ASSIGN] = "DIV_ASSIGN",
|
|
[TOK_MOD_ASSIGN] = "MOD_ASSIGN",
|
|
[TOK_LSHIFT_ASSIGN] = "LSHIFT_ASSIGN",
|
|
[TOK_RSHIFT_ASSIGN] = "RSHIFT_ASSIGN",
|
|
[TOK_AND_ASSIGN] = "AND_ASSIGN",
|
|
[TOK_XOR_ASSIGN] = "XOR_ASSIGN",
|
|
[TOK_OR_ASSIGN] = "OR_ASSIGN",
|
|
[TOK_EQ] = "EQ",
|
|
[TOK_NEQ] = "NEQ",
|
|
[TOK_LT] = "LT",
|
|
[TOK_LEQ] = "LEQ",
|
|
[TOK_GT] = "GT",
|
|
[TOK_GEQ] = "GEQ",
|
|
[TOK_NOT] = "NOT",
|
|
[TOK_BITNOT] = "BITNOT",
|
|
[TOK_BITAND] = "BITAND",
|
|
[TOK_BITOR] = "BITOR",
|
|
[TOK_BITXOR] = "BITXOR",
|
|
[TOK_AND] = "AND",
|
|
[TOK_OR] = "OR",
|
|
[TOK_LSHIFT] = "LSHIFT",
|
|
[TOK_RSHIFT] = "RSHIFT",
|
|
};
|