|
|
@@ -49,6 +49,7 @@ struct token TOKEN_ILLEGAL = {{TT_ILLEGAL, "TT_ILLEGAL"}, STR_EMPTY};
|
|
|
|
|
|
struct token token_create(enum token_type_enum tte, struct str lit);
|
|
|
struct token_type token_type_create(enum token_type_enum tte);
|
|
|
+const char *token_type_enum_2_cstr(enum token_type_enum tte);
|
|
|
|
|
|
#if defined(IMP) | defined(TOKEN_IMP)
|
|
|
|
|
|
@@ -68,39 +69,46 @@ token_type_create(enum token_type_enum tte)
|
|
|
struct token_type tt = {0};
|
|
|
|
|
|
tt.code = tte;
|
|
|
+ tt.name = token_type_enum_2_cstr(tte);
|
|
|
+
|
|
|
+ return tt;
|
|
|
+}
|
|
|
+
|
|
|
+const char *
|
|
|
+token_type_enum_2_cstr(enum token_type_enum tte)
|
|
|
+{
|
|
|
switch ( tte ) {
|
|
|
- case TT_EOF: tt.name = "TT_EOF"; break;
|
|
|
- case TT_ILLEGAL: tt.name = "TT_ILLEGAL"; break;
|
|
|
+ case TT_EOF: return "TT_EOF"; break;
|
|
|
+ case TT_ILLEGAL: return "TT_ILLEGAL"; break;
|
|
|
|
|
|
- case TT_IDENT: tt.name = "TT_IDENT"; break;
|
|
|
- case TT_INT_LIT: tt.name = "TT_INT_LIT"; break;
|
|
|
+ case TT_IDENT: return "TT_IDENT"; break;
|
|
|
+ case TT_INT_LIT: return "TT_INT_LIT"; break;
|
|
|
|
|
|
- case TT_ASSIGN: tt.name = "TT_ASSIGN"; break;
|
|
|
- case TT_PLUS: tt.name = "TT_PLUS"; break;
|
|
|
+ case TT_ASSIGN: return "TT_ASSIGN"; break;
|
|
|
+ case TT_PLUS: return "TT_PLUS"; break;
|
|
|
|
|
|
- case TT_COMMA: tt.name = "TT_COMMA"; break;
|
|
|
- case TT_SEMICOLON: tt.name = "TT_SEMICOLON"; break;
|
|
|
+ case TT_COMMA: return "TT_COMMA"; break;
|
|
|
+ case TT_SEMICOLON: return "TT_SEMICOLON"; break;
|
|
|
|
|
|
- case TT_LPAREN: tt.name = "TT_LPAREN"; break;
|
|
|
- case TT_RPAREN: tt.name = "TT_RPAREN"; break;
|
|
|
- case TT_LBRACE: tt.name = "TT_LBRACE"; break;
|
|
|
- case TT_RBRACE: tt.name = "TT_RBRACE"; break;
|
|
|
- case TT_LABRACKET: tt.name = "TT_LABRACKET"; break;
|
|
|
- case TT_RABRACKET: tt.name = "TT_RABRACKET"; break;
|
|
|
+ case TT_LPAREN: return "TT_LPAREN"; break;
|
|
|
+ case TT_RPAREN: return "TT_RPAREN"; break;
|
|
|
+ case TT_LBRACE: return "TT_LBRACE"; break;
|
|
|
+ case TT_RBRACE: return "TT_RBRACE"; break;
|
|
|
+ case TT_LABRACKET: return "TT_LABRACKET"; break;
|
|
|
+ case TT_RABRACKET: return "TT_RABRACKET"; break;
|
|
|
|
|
|
- case TT_FUNCION: tt.name = "TT_FUNCION"; break;
|
|
|
- case TT_INCLUDE: tt.name = "TT_INCLUDE"; break;
|
|
|
- case TT_RETURN: tt.name = "TT_RETURN"; break;
|
|
|
- case TT_CONST: tt.name = "TT_CONST"; break;
|
|
|
- case TT_TYPE: tt.name = "TT_TYPE"; break;
|
|
|
+ case TT_FUNCION: return "TT_FUNCION"; break;
|
|
|
+ case TT_INCLUDE: return "TT_INCLUDE"; break;
|
|
|
+ case TT_RETURN: return "TT_RETURN"; break;
|
|
|
+ case TT_CONST: return "TT_CONST"; break;
|
|
|
+ case TT_TYPE: return "TT_TYPE"; break;
|
|
|
|
|
|
- case TT_SQUOTE: tt.name = "TT_SQUOTE"; break;
|
|
|
- case TT_DQUOTE: tt.name = "TT_DQUOTE"; break;
|
|
|
+ case TT_SQUOTE: return "TT_SQUOTE"; break;
|
|
|
+ case TT_DQUOTE: return "TT_DQUOTE"; break;
|
|
|
|
|
|
- case TT_TOTAL: tt.name = "TT_TOTAL"; break;
|
|
|
+ case TT_TOTAL: return "TT_TOTAL"; break;
|
|
|
}
|
|
|
-
|
|
|
- return tt;
|
|
|
+ return "UNKNOWN TOKEN";
|
|
|
}
|
|
|
|
|
|
#endif /* defined(IMP) | defined(TOKEN_IMP) */
|