// 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", };