Updated the structure of symbols and tokens to hopefully help make computing symbol values easier.

This commit is contained in:
2023-08-07 01:18:01 -05:00
parent 65383cded2
commit 4af2527806
11 changed files with 128 additions and 140 deletions
+9 -9
View File
@@ -21,8 +21,8 @@ Token* ParseNumber(void);
Token* ParsePunctuation(char);
void IgnoreLine(void);
List* GenerateTokenList(const char* source) {
List* tokens = CreateList();
TokenList* GenerateTokenList(const char* source) {
TokenList* tokens = CreateTokenList();
Token* token = NULL;
if (!tokens) return NULL;
@@ -54,7 +54,7 @@ List* GenerateTokenList(const char* source) {
token = CreateToken(Line, PunctuationClass);
token->Value.Punctuation = NewLine;
AddListItem(token, tokens);
AddToken(token, tokens);
AdvanceScanner();
Line++;
break;
@@ -69,28 +69,28 @@ List* GenerateTokenList(const char* source) {
break;
case '.': //directive like ".include" or ".db"
token = ParseDirective();
if (token) AddListItem(token, tokens);
if (token) AddToken(token, tokens);
break;
case '"':
token = ParseString();
if (token) AddListItem(token, tokens);
if (token) AddToken(token, tokens);
break;
default:
if (isdigit(c)) {
AddListItem(ParseNumber(), tokens);
AddToken(ParseNumber(), tokens);
break;
}
if (IsPunctuation(c)) {
AdvanceScanner();
AddListItem(ParsePunctuation(c), tokens);
AddToken(ParsePunctuation(c), tokens);
break;
}
token = ParseIdentifier();
if (token) AddListItem(token, tokens);
if (token) AddToken(token, tokens);
break;
}
@@ -111,7 +111,7 @@ List* GenerateTokenList(const char* source) {
token->EndOfFile = 1;
AddListItem(token, tokens);
AddToken(token, tokens);
return tokens;
}