28 lines
1.2 KiB
C++
28 lines
1.2 KiB
C++
#pragma once
|
|
#include <string>
|
|
#include <token/token.hpp>
|
|
|
|
namespace Compile
|
|
{
|
|
class CompilationError
|
|
{
|
|
public:
|
|
Token::Token errorToken;
|
|
|
|
CompilationError(std::string const & message, Token::Token const & token);
|
|
|
|
static CompilationError CreateExpectedArgumentError(Token::Token const & token);
|
|
static CompilationError CreateExpectedLabelError(Token::Token const & token);
|
|
static CompilationError CreateExpectedImmediateError(Token::Token const & token);
|
|
static CompilationError CreateExpectedImmediateOrRegisterOrMemory(Token::Token const & token);
|
|
static CompilationError CreateExpectedRegisterError(Token::Token const & token);
|
|
static CompilationError CreateExpectedRegisterOrMemoryError(Token::Token const & token);
|
|
|
|
static CompilationError CreateExpectedOperandError(Token::Token const & token);
|
|
static CompilationError CreateTooManyArgumentsError(Token::Token const & token);
|
|
static CompilationError CreateTooFewArgumentsError(Token::Token const & token);
|
|
static CompilationError CreateExpectedEndOfStatementError(Token::Token const & token);
|
|
static CompilationError CreateDuplicateLabelError(Token::Token const & token);
|
|
static CompilationError CreateNonExistingLabelError(Token::Token const & token);
|
|
};
|
|
} |