Add seti and int operators

This commit is contained in:
2019-11-23 12:21:14 +01:00
parent f0e00ff018
commit 99f616e1e4
16 changed files with 153 additions and 66 deletions

View File

@@ -70,32 +70,32 @@ namespace Token
LookForTokenEnd,
};
TokenizerState state = TokenizerState::LookForNextToken;
unsigned tokenStart = 0;
for(unsigned i = 0u; i < line.size(); ++i)
unsigned columnTokenStart = 0;
for(unsigned column = 0u; column < line.size(); ++column)
{
switch(state)
{
case TokenizerState::LookForNextToken:
if (!IsWhiteSpace(line[i]))
if (!IsWhiteSpace(line[column]))
{
if (line[i] == '#')
if (line[column] == '#')
{
// Ignore comments
return;
}
tokenStart = i;
columnTokenStart = column;
state = TokenizerState::LookForTokenEnd;
}
break;
case TokenizerState::LookForTokenEnd:
if (IsWhiteSpace(line[i]) || line[i] == ';')
if (IsWhiteSpace(line[column]) || line[column] == ';')
{
tokens.push_back(ExtractToken(line.substr(tokenStart, i - tokenStart), lineNumber, tokenStart));
if (line[i] == ';')
tokens.push_back(ExtractToken(line.substr(columnTokenStart, column - columnTokenStart), lineNumber, columnTokenStart));
if (line[column] == ';')
{
tokens.push_back(ExtractToken(line.substr(i, 1), lineNumber, tokenStart));
tokens.push_back(ExtractToken(line.substr(column, 1), lineNumber, column));
}
state = TokenizerState::LookForNextToken;
}
@@ -104,7 +104,7 @@ namespace Token
}
if (state == TokenizerState::LookForTokenEnd)
{
tokens.push_back(ExtractToken(line.substr(tokenStart, line.size()), lineNumber, tokenStart));
tokens.push_back(ExtractToken(line.substr(columnTokenStart, line.size()), lineNumber, columnTokenStart));
}
}
}