Files
bits-runner-builder/src/Error.h
Rafał Grodziński 48f27169d0 Added builder error
2025-07-05 21:58:11 +09:00

47 lines
1.0 KiB
C++

#ifndef ERROR_H
#define ERROR_H
#include <iostream>
class Token;
enum class TokenKind;
using namespace std;
enum class ErrorKind {
LEXER_ERROR,
PARSER_ERROR,
BUILDER_ERROR
};
class Error {
private:
ErrorKind kind;
int line;
int column;
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();
optional<string> getLexme();
shared_ptr<Token> getActualToken();
optional<TokenKind> getExpectedTokenKind();
optional<string> getMessage();
};
#endif