Cleaned up the list implementation so as to NOT copy items into a new buffer.

This commit is contained in:
2022-10-07 20:46:55 +00:00
parent bdb4d2b241
commit 4b08707e67
4 changed files with 21 additions and 34 deletions
+7 -7
View File
@@ -54,7 +54,7 @@ List* GenerateTokenList(const char* source) {
token = CreateToken(Line, PunctuationClass);
token->Value.Punctuation = NewLine;
AddListItem(token, sizeof(Token), tokens);
AddListItem(token, tokens);
AdvanceScanner();
Line++;
break;
@@ -69,28 +69,28 @@ List* GenerateTokenList(const char* source) {
break;
case '.': //directive like ".org" or ".db"
token = ParseDirective();
if (token) AddListItem(token, sizeof(Token), tokens);
if (token) AddListItem(token, tokens);
break;
case '"':
token = ParseString();
if (token) AddListItem(token, sizeof(Token), tokens);
if (token) AddListItem(token, tokens);
break;
default:
if (isdigit(c)) {
AddListItem(ParseNumber(), sizeof(Token), tokens);
AddListItem(ParseNumber(), tokens);
break;
}
if (IsPunctuation(c)) {
AdvanceScanner();
AddListItem(ParsePunctuation(c), sizeof(Token), tokens);
AddListItem(ParsePunctuation(c), tokens);
break;
}
token = ParseIdentifier();
if (token) AddListItem(token, sizeof(Token), tokens);
if (token) AddListItem(token, tokens);
break;
}
@@ -111,7 +111,7 @@ List* GenerateTokenList(const char* source) {
token->EndOfFile = 1;
AddListItem(token, sizeof(Token), tokens);
AddListItem(token, tokens);
return tokens;
}