Remove declare and string types to prepare for preprocessor
This commit is contained in:
@@ -22,7 +22,6 @@ namespace Token
|
||||
{ "eqi", OperandType::EqualInteger },
|
||||
{ "seti", OperandType::SetInteger },
|
||||
{ "int", OperandType::Interrupt },
|
||||
{ "DECLARE", OperandType::Declaration },
|
||||
{ "pushi", OperandType::PushInteger},
|
||||
{ "popi", OperandType::PopInteger},
|
||||
};
|
||||
|
||||
@@ -103,11 +103,6 @@ namespace Token
|
||||
return Token(TokenType::Memory, value, isValid, lineNumber, lineColumn);
|
||||
}
|
||||
|
||||
Token Token::CreateStringLiteralToken(std::string const & value, int const lineNumber, int const lineColumn)
|
||||
{
|
||||
return Token(TokenType::String, value.substr(1, value.size() - 2), true, lineNumber, lineColumn);
|
||||
}
|
||||
|
||||
void Token::DebugPrint() const
|
||||
{
|
||||
std::putc(' ', stdout);
|
||||
@@ -193,10 +188,6 @@ namespace Token
|
||||
}
|
||||
break;
|
||||
|
||||
case TokenType::String:
|
||||
std::printf("STRING=\"%s\"", std::get<std::string>(data).c_str());
|
||||
break;
|
||||
|
||||
case TokenType::Unknown:
|
||||
default:
|
||||
std::printf("UNKNOWN_TOKEN");
|
||||
|
||||
@@ -100,7 +100,6 @@ namespace Token
|
||||
enum class TokenizerState
|
||||
{
|
||||
LookForNextToken,
|
||||
LookForStringEnd,
|
||||
LookForTokenEnd,
|
||||
};
|
||||
|
||||
@@ -123,10 +122,6 @@ namespace Token
|
||||
|
||||
switch(line[column])
|
||||
{
|
||||
case '"':
|
||||
state = TokenizerState::LookForStringEnd;
|
||||
break;
|
||||
|
||||
case ';':
|
||||
tokens.push_back(ExtractToken(line.substr(column, 1), lineNumber, column));
|
||||
break;
|
||||
@@ -150,13 +145,9 @@ namespace Token
|
||||
}
|
||||
break;
|
||||
|
||||
case TokenizerState::LookForStringEnd:
|
||||
if (line[column] == '"' && line[column - 1] != '\\')
|
||||
{
|
||||
tokens.push_back(
|
||||
Token::CreateStringLiteralToken(line.substr(columnTokenStart, column - columnTokenStart), lineNumber, columnTokenStart));
|
||||
state = TokenizerState::LookForNextToken;
|
||||
}
|
||||
default:
|
||||
std::puts("DEBUG: Unhandled TokenizerState value");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -166,9 +157,6 @@ namespace Token
|
||||
tokens.push_back(ExtractToken(line.substr(columnTokenStart, line.size()), lineNumber, columnTokenStart));
|
||||
break;
|
||||
|
||||
case TokenizerState::LookForStringEnd:
|
||||
throw MissingEndOfString(ExtractToken(line.substr(columnTokenStart, line.size()), lineNumber, columnTokenStart));
|
||||
|
||||
case TokenizerState::LookForNextToken:
|
||||
default:
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user