Added builder error

This commit is contained in:
Rafał Grodziński
2025-07-05 21:58:11 +09:00
parent 1e7ecaf801
commit 48f27169d0
6 changed files with 38 additions and 10 deletions

View File

@@ -10,7 +10,8 @@ using namespace std;
enum class ErrorKind {
LEXER_ERROR,
PARSER_ERROR
PARSER_ERROR,
BUILDER_ERROR
};
class Error {
@@ -19,21 +20,24 @@ private:
int line;
int column;
string lexme;
optional<string> lexme;
shared_ptr<Token> actualToken;
optional<TokenKind> expectedTokenKind;
optional<string> message;
public:
static shared_ptr<Error> builderError(int line, int column, string message);
Error(int line, int column, string lexme);
Error(shared_ptr<Token> actualToken, optional<TokenKind> expectedTokenKind, optional<string> message);
Error(ErrorKind kind, int line, int column, optional<string> lexme, shared_ptr<Token> actualToken, optional<TokenKind> expectedTokenKind, optional<string> message);
ErrorKind getKind();
int getLine();
int getColumn();
string getLexme();
optional<string> getLexme();
shared_ptr<Token> getActualToken();
optional<TokenKind> getExpectedTokenKind();