73 lines
1.7 KiB
C
73 lines
1.7 KiB
C
#include <mie/parse/token.h>
|
|
|
|
void mie_token_destroy(struct mie_token *tok)
|
|
{
|
|
switch (tok->tok_value_type) {
|
|
case MIE_TOK_V_STRING:
|
|
free(tok->tok_str);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
free(tok);
|
|
}
|
|
|
|
#define ENUM_STR(x) \
|
|
case x: \
|
|
return #x
|
|
|
|
const char *mie_token_type_to_string(enum mie_token_type type)
|
|
{
|
|
switch (type) {
|
|
ENUM_STR(MIE_TOK_NONE);
|
|
ENUM_STR(MIE_TOK_LINEFEED);
|
|
ENUM_STR(MIE_TOK_INT);
|
|
ENUM_STR(MIE_TOK_FLOAT);
|
|
ENUM_STR(MIE_TOK_SYMBOL);
|
|
ENUM_STR(MIE_TOK_WORD);
|
|
ENUM_STR(MIE_TOK_NAME);
|
|
ENUM_STR(MIE_TOK_OPNAME);
|
|
ENUM_STR(MIE_TOK_INSTNAME);
|
|
ENUM_STR(MIE_TOK_GRAPHNAME);
|
|
ENUM_STR(MIE_TOK_VREGNAME);
|
|
ENUM_STR(MIE_TOK_MREGNAME);
|
|
ENUM_STR(MIE_TOK_BLOCKNAME);
|
|
ENUM_STR(MIE_TOK_TYPENAME);
|
|
ENUM_STR(MIE_TOK_SYMNAME);
|
|
ENUM_STR(MIE_TOK_STRING);
|
|
default:
|
|
return "";
|
|
}
|
|
}
|
|
|
|
const char *mie_token_symbol_to_string(enum mie_token_symbol sym)
|
|
{
|
|
switch (sym) {
|
|
ENUM_STR(MIE_SYM_NONE);
|
|
ENUM_STR(MIE_SYM_COLON);
|
|
ENUM_STR(MIE_SYM_EQUAL);
|
|
ENUM_STR(MIE_SYM_COMMA);
|
|
ENUM_STR(MIE_SYM_HYPHEN);
|
|
ENUM_STR(MIE_SYM_ASTERISK);
|
|
ENUM_STR(MIE_SYM_PLUS);
|
|
ENUM_STR(MIE_SYM_PERCENT);
|
|
ENUM_STR(MIE_SYM_DOLLAR);
|
|
ENUM_STR(MIE_SYM_CARET);
|
|
ENUM_STR(MIE_SYM_HASH);
|
|
ENUM_STR(MIE_SYM_ATSIGN);
|
|
ENUM_STR(MIE_SYM_LEFT_BRACE);
|
|
ENUM_STR(MIE_SYM_RIGHT_BRACE);
|
|
ENUM_STR(MIE_SYM_LEFT_BRACKET);
|
|
ENUM_STR(MIE_SYM_RIGHT_BRACKET);
|
|
ENUM_STR(MIE_SYM_LEFT_PAREN);
|
|
ENUM_STR(MIE_SYM_RIGHT_PAREN);
|
|
ENUM_STR(MIE_SYM_LEFT_ANGLE);
|
|
ENUM_STR(MIE_SYM_RIGHT_ANGLE);
|
|
ENUM_STR(MIE_SYM_HYPHEN_RIGHT_ANGLE);
|
|
ENUM_STR(MIE_SYM_OTHER);
|
|
default:
|
|
return "";
|
|
}
|
|
}
|