diff --git a/bin/test.wasm b/bin/test.wasm index 4bfa8e4..89f992a 100644 --- a/bin/test.wasm +++ b/bin/test.wasm @@ -1,4 +1,4 @@ -DECLARE MEMORY_SIZE $4096; +#DECLARE MEMORY_SIZE $4096; addi $10 $-5 %A; subi %A $2 %B; diff --git a/include/token/operandtype.hpp b/include/token/operandtype.hpp index e3a9f49..3bdea6e 100644 --- a/include/token/operandtype.hpp +++ b/include/token/operandtype.hpp @@ -21,7 +21,6 @@ namespace Token EqualInteger, SetInteger, Interrupt, - Declaration, PushInteger, PopInteger }; diff --git a/include/token/token.hpp b/include/token/token.hpp index 87ce211..8d71b5a 100644 --- a/include/token/token.hpp +++ b/include/token/token.hpp @@ -43,7 +43,6 @@ namespace Token static Token CreateOperandToken(OperandType const operandType, int const lineNumber, int const lineColumn); static Token CreateMemoryToken(RegisterType const registerType, int const lineNumber, int const lineColumn); static Token CreateMemoryToken(int const value, bool isValid, int const lineNumber, int const lineColumn); - static Token CreateStringLiteralToken(std::string const & value, int const lineNumber, int const lineColumn); void DebugPrint() const; }; diff --git a/include/token/tokentype.hpp b/include/token/tokentype.hpp index 5d03f2b..5ee79fb 100644 --- a/include/token/tokentype.hpp +++ b/include/token/tokentype.hpp @@ -10,7 +10,6 @@ namespace Token Register, StatementEnd, Label, - String, Memory }; } \ No newline at end of file diff --git a/src/interpret/interpreter.cpp b/src/interpret/interpreter.cpp index dff659a..5a59332 100644 --- a/src/interpret/interpreter.cpp +++ b/src/interpret/interpreter.cpp @@ -76,19 +76,7 @@ namespace Interpret } else { - switch(std::get(tokens[operatorTokenIndex].data)) - { - case Token::OperandType::Declaration: - { - auto const tuple = ExtractDeclaration(operatorTokenIndex, tokens); - code.declarations[std::get<0>(tuple)] = std::get<1>(tuple); - } - break; - - default: - code.statements.emplace_back(ExtractStatement(operatorTokenIndex, tokens)); - break; - } + code.statements.emplace_back(ExtractStatement(operatorTokenIndex, tokens)); state = InterpreterState::FindOperand; } break; diff --git a/src/interpret/operanddefinitions.cpp b/src/interpret/operanddefinitions.cpp index 6bd1e22..e09b13c 100644 --- a/src/interpret/operanddefinitions.cpp +++ b/src/interpret/operanddefinitions.cpp @@ -308,7 +308,6 @@ namespace Interpret case Token::OperandType::GreaterThanInteger: case Token::OperandType::EqualInteger: case Token::OperandType::SetInteger: - case Token::OperandType::Declaration: return 2; case Token::OperandType::Jump: diff --git a/src/token/operandtype.cpp b/src/token/operandtype.cpp index 9341bbb..0b94cb0 100644 --- a/src/token/operandtype.cpp +++ b/src/token/operandtype.cpp @@ -22,7 +22,6 @@ namespace Token { "eqi", OperandType::EqualInteger }, { "seti", OperandType::SetInteger }, { "int", OperandType::Interrupt }, - { "DECLARE", OperandType::Declaration }, { "pushi", OperandType::PushInteger}, { "popi", OperandType::PopInteger}, }; diff --git a/src/token/token.cpp b/src/token/token.cpp index b08a4e9..e3b29fa 100644 --- a/src/token/token.cpp +++ b/src/token/token.cpp @@ -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(data).c_str()); - break; - case TokenType::Unknown: default: std::printf("UNKNOWN_TOKEN"); diff --git a/src/token/tokenizer.cpp b/src/token/tokenizer.cpp index af39eac..70b8681 100644 --- a/src/token/tokenizer.cpp +++ b/src/token/tokenizer.cpp @@ -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;