lang_2023/include/error_handling.hpp

30 lines
657 B
C++
Raw Normal View History

2023-04-07 12:13:31 +03:00
#include <iostream>
enum class ErrorVisitor {
BuildVisitor,
PrintVisitor,
FindSymbolsVisitor,
// ...
};
// TODO
inline void handle_error(std::string message, ErrorVisitor visitor) { // TODO: add place in code
std::string visitor_str;
switch (visitor) {
case ErrorVisitor::BuildVisitor:
visitor_str = "Build Visitor";
break;
case ErrorVisitor::PrintVisitor:
visitor_str = "Print Visitor";
break;
case ErrorVisitor::FindSymbolsVisitor:
visitor_str = "Find Symbols Visitor";
break;
// ...
default:
break;
}
std::cerr << "Error: " << message << " in " << visitor_str;
exit(1);
}