mirror of
https://codeberg.org/ProgramSnail/lang_2023.git
synced 2025-12-06 15:08:45 +00:00
30 lines
657 B
C++
30 lines
657 B
C++
|
|
#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);
|
||
|
|
}
|