summaryrefslogtreecommitdiff
path: root/Token.c
diff options
context:
space:
mode:
Diffstat (limited to 'Token.c')
-rw-r--r--Token.c35
1 files changed, 32 insertions, 3 deletions
diff --git a/Token.c b/Token.c
index 84eae84..85d65cf 100644
--- a/Token.c
+++ b/Token.c
@@ -5,7 +5,7 @@
void token_free(Token *tok)
{
switch (tok->type) {
- case TOK_KEYWORD:
+ case TOK_WORD:
if (tok != NULL && tok->v.s != NULL)
free(tok->v.s);
default:
@@ -15,9 +15,9 @@ void token_free(Token *tok)
void token_print(const Token *tok)
{
- printf("%d ", tok->line);
+ printf("%u:%u\t", tok->line, tok->column);
switch (tok->type) {
- case TOK_KEYWORD: printf("TOK_KEYWORD %s\n", tok->v.s); break;
+ case TOK_WORD: printf("TOK_WORD %s\n", tok->v.s); break;
case TOK_STRING: printf("TOK_STRING \"%s\"\n", tok->v.s); break;
case TOK_INTEGER: printf("TOK_INTEGER %d\n", tok->v.i); break;
case TOK_PAREN_OPEN: printf("TOK_PAREN_OPEN\n"); break;
@@ -39,3 +39,32 @@ void token_print(const Token *tok)
default: printf("token_print TODO: type %d\n", tok->type); break;
}
}
+
+const char *token_type_str(unsigned int type)
+{
+ switch (type) {
+ case TOK_WORD: return "TOK_WORD";
+ case TOK_STRING: return "TOK_STRING";
+ case TOK_INTEGER: return "TOK_INTEGER";
+ case TOK_PAREN_OPEN: return "TOK_PAREN_OPEN";
+ case TOK_PAREN_CLOS: return "TOK_PAREN_CLOS";
+ case TOK_CURL_OPEN: return "TOK_CURL_OPEN";
+ case TOK_CURL_CLOS: return "TOK_CURL_CLOS";
+ case TOK_SQUAR_OPEN: return "TOK_SQUAR_OPEN";
+ case TOK_SQUAR_CLOS: return "TOK_SQUAR_CLOS";
+ case TOK_COLON: return "TOK_COLON";
+ case TOK_SEMICOLON: return "TOK_SEMICOLON";
+ case TOK_ASSIGN: return "TOK_ASSIGN";
+ case TOK_COMMA: return "TOK_COMMA";
+ case TOK_COMP_LESS: return "TOK_COMP_LESS";
+ case TOK_MODULO: return "TOK_MODULO";
+ case TOK_STAR: return "TOK_STAR";
+ case TOK_INCREMENT: return "TOK_INCREMENT";
+ case TOK_COMP_EQ: return "TOK_COMP_EQ";
+ case TOK_COMP_NEQ: return "TOK_COMP_NEQ";
+ case TOK_KW_CONST: return "TOK_KW_CONST";
+ case TOK_KW_VAR: return "TOK_KW_VAR";
+ case TOK_KW_FN: return "TOK_KW_FN";
+ default: return "TOK_?";
+ }
+}