frontend: compile: add colour-coding to token list

This commit is contained in:
2024-11-16 23:03:16 +00:00
parent e01798db2f
commit 412e9abf05

View File

@@ -44,11 +44,47 @@ static int compile_file(const char *path)
break;
}
switch (tok->t_type) {
case IVY_TOK_KEYWORD:
b_fputs("[magenta]", stdout);
break;
case IVY_TOK_SYMBOL:
b_fputs("[blue]", stdout);
break;
case IVY_TOK_ATOM:
b_fputs("[yellow]", stdout);
break;
case IVY_TOK_NUMBER:
b_fputs("[yellow]", stdout);
break;
case IVY_TOK_LABEL:
b_fputs("[red]", stdout);
break;
case IVY_TOK_IDENT:
b_fputs("[cyan]", stdout);
break;
case IVY_TOK_STRING:
b_fputs("[green]", stdout);
break;
case IVY_TOK_STR_START:
b_fputs("[green]", stdout);
break;
case IVY_TOK_STR_END:
b_fputs("[green]", stdout);
break;
case IVY_TOK_LINEFEED:
b_fputs("[bright,black]", stdout);
break;
default:
break;
}
printf("%s", ivy_lex_token_type_to_string(tok->t_type));
switch (tok->t_type) {
case IVY_TOK_IDENT:
case IVY_TOK_LABEL:
case IVY_TOK_STRING:
printf("(%s)", tok->t_str);
break;
case IVY_TOK_SYMBOL:
@@ -61,7 +97,7 @@ static int compile_file(const char *path)
break;
}
printf("\n");
b_fputs("[reset]\n", stdout);
}
int r = (lex.lex_status == IVY_OK || lex.lex_status == IVY_ERR_EOF) ? 0