Cleaned up the TokenStringify function a bit (ignore the returning of a local variable) and updated the tokenizer to better handle new lines.

This commit is contained in:
2025-01-08 02:40:05 -06:00
parent 6d3f90183e
commit 428d674f54
3 changed files with 43 additions and 27 deletions
+11 -25
View File
@@ -13,43 +13,29 @@ struct _token* TokenCreate(TokenType type, int lineNumber, int columnNumber, boo
char* TokenStringify(const struct _token* token, bool valueOnly) {
if (!token) return NULL;
char type[32];
char number[32];
int length = StringifyTokenType(token->Type, type);
char* result = calloc(512, sizeof(char));
#ifdef DEBUG
#endif
char buffer[32];
switch(token->Type) {
case Empty:
snprintf(result, length + 1, "%s ", type);
break;
return "<>";
case String:
snprintf(result, 511, "%s \"%s\" ", type, token->Value.String);
break;
case Number:
snprintf(number, 32, "%d", token->Value.Number);
snprintf(result, 511, "%s %s", type, number);
break;
case Symbol:
snprintf(result, 511, "%s %s", type, token->Value.String);
return token->Value.String;
case Number:
sprintf(buffer, "%d", token->Value.Number);
break;
case LineEnd:
snprintf(result, 511, "%s\n", type);
break;
return "\n";
case FileEnd:
snprintf(result, length + 1, "%s ", type);
break;
return NULL;
default:
snprintf(result, length + 2, "%s %c", type, token->Value.Operator[0]);
//snprintf(buffer, length, "<%c>", type);
strncpy(buffer, token->Value.Operator, 8);
break;
}
return result;
return buffer;
}
int StringifyTokenType(TokenType type, char buffer[32]) {