Improve syntax error reporting

This commit is contained in:
2020-08-28 20:51:02 +02:00
parent 593506a907
commit aebc1dd86d
5 changed files with 80 additions and 45 deletions

View File

@@ -32,17 +32,19 @@ namespace Token
TokenValueType const valueType;
bool isValid;
std::variant<OperandType, RegisterType, int, std::string> data;
std::string errorMessage;
Token(Token const & other);
static Token CreateUnknownToken(int const lineNumber, int const lineColumn);
static Token CreateEmptyToken(int const lineNumber, int const lineColumn);
static Token CreateErrorToken(std::string const & message, TokenType const type, int const lineNumber, int const lineColumn);
static Token CreateStatementEndToken(int const lineNumber, int const lineColumn);
static Token CreateLabelToken(std::string const & string, bool isValid, int const lineNumber, int const lineColumn);
static Token CreateImmediateValueToken(int const value, bool isValid, int const lineNumber, int const lineColumn);
static Token CreateLabelToken(std::string const & string, int const lineNumber, int const lineColumn);
static Token CreateImmediateValueToken(int const value, int const lineNumber, int const lineColumn);
static Token CreateRegisterToken(RegisterType const registerType, int const lineNumber, int const lineColumn);
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 CreateMemoryToken(int const value, int const lineNumber, int const lineColumn);
void DebugPrint() const;
};