Improve syntax error reporting
This commit is contained in:
@@ -9,7 +9,8 @@ namespace Token
|
||||
type(_type),
|
||||
valueType(TokenValueType::None),
|
||||
isValid(validness),
|
||||
data(0)
|
||||
data(0),
|
||||
errorMessage()
|
||||
{
|
||||
}
|
||||
|
||||
@@ -19,7 +20,8 @@ namespace Token
|
||||
type(_type),
|
||||
valueType(TokenValueType::String),
|
||||
isValid(validness),
|
||||
data(string)
|
||||
data(string),
|
||||
errorMessage()
|
||||
{
|
||||
}
|
||||
|
||||
@@ -29,7 +31,8 @@ namespace Token
|
||||
type(_type),
|
||||
valueType(TokenValueType::Integer),
|
||||
isValid(validness),
|
||||
data(value)
|
||||
data(value),
|
||||
errorMessage()
|
||||
{
|
||||
}
|
||||
|
||||
@@ -39,7 +42,8 @@ namespace Token
|
||||
type(_type),
|
||||
valueType(TokenValueType::Register),
|
||||
isValid(validness),
|
||||
data(registerType)
|
||||
data(registerType),
|
||||
errorMessage()
|
||||
{
|
||||
}
|
||||
|
||||
@@ -49,7 +53,8 @@ namespace Token
|
||||
type(_type),
|
||||
valueType(TokenValueType::Operand),
|
||||
isValid(validness),
|
||||
data(operandType)
|
||||
data(operandType),
|
||||
errorMessage()
|
||||
{
|
||||
}
|
||||
|
||||
@@ -59,28 +64,36 @@ namespace Token
|
||||
type(other.type),
|
||||
valueType(other.valueType),
|
||||
isValid(other.isValid),
|
||||
data(other.data)
|
||||
data(other.data),
|
||||
errorMessage(other.errorMessage)
|
||||
{
|
||||
}
|
||||
|
||||
Token Token::CreateUnknownToken(int const lineNumber, int const lineColumn)
|
||||
Token Token::CreateEmptyToken(int const lineNumber, int const lineColumn)
|
||||
{
|
||||
return Token(TokenType::Unknown, false, lineNumber, lineColumn);
|
||||
}
|
||||
|
||||
Token Token::CreateErrorToken(std::string const & message, TokenType const type, int const lineNumber, int const lineColumn)
|
||||
{
|
||||
Token token(type, false, lineNumber, lineColumn);
|
||||
token.errorMessage = message;
|
||||
return token;
|
||||
}
|
||||
|
||||
Token Token::CreateStatementEndToken(int const lineNumber, int const lineColumn)
|
||||
{
|
||||
return Token(TokenType::StatementEnd, true, lineNumber, lineColumn);
|
||||
}
|
||||
|
||||
Token Token::CreateLabelToken(std::string const & string, bool isValid, int const lineNumber, int const lineColumn)
|
||||
Token Token::CreateLabelToken(std::string const & string, int const lineNumber, int const lineColumn)
|
||||
{
|
||||
return Token(TokenType::Label, string, isValid, lineNumber, lineColumn);
|
||||
return Token(TokenType::Label, string, true, lineNumber, lineColumn);
|
||||
}
|
||||
|
||||
Token Token::CreateImmediateValueToken(int const value, bool isValid, int const lineNumber, int const lineColumn)
|
||||
Token Token::CreateImmediateValueToken(int const value, int const lineNumber, int const lineColumn)
|
||||
{
|
||||
return Token(TokenType::ImmediateInteger, value, isValid, lineNumber, lineColumn);
|
||||
return Token(TokenType::ImmediateInteger, value, true, lineNumber, lineColumn);
|
||||
}
|
||||
|
||||
Token Token::CreateRegisterToken(RegisterType const registerType, int const lineNumber, int const lineColumn)
|
||||
@@ -98,9 +111,9 @@ namespace Token
|
||||
return Token(TokenType::Memory, registerType, registerType != RegisterType::Unknown, lineNumber, lineColumn);
|
||||
}
|
||||
|
||||
Token Token::CreateMemoryToken(int const value, bool isValid, int const lineNumber, int const lineColumn)
|
||||
Token Token::CreateMemoryToken(int const value, int const lineNumber, int const lineColumn)
|
||||
{
|
||||
return Token(TokenType::Memory, value, isValid, lineNumber, lineColumn);
|
||||
return Token(TokenType::Memory, value, true, lineNumber, lineColumn);
|
||||
}
|
||||
|
||||
void Token::DebugPrint() const
|
||||
|
||||
Reference in New Issue
Block a user