OpenMW
|
00001 00002 #ifndef COMPILER_ERRORHANDLER_H_INCLUDED 00003 #define COMPILER_ERRORHANDLER_H_INCLUDED 00004 00005 #include <string> 00006 00007 namespace Compiler 00008 { 00009 struct TokenLoc; 00010 00014 00015 class ErrorHandler 00016 { 00017 int mWarnings; 00018 int mErrors; 00019 00020 protected: 00021 00022 enum Type 00023 { 00024 WarningMessage, ErrorMessage 00025 }; 00026 00027 private: 00028 00029 // mutators 00030 00031 virtual void report (const std::string& message, const TokenLoc& loc, Type type) = 0; 00033 00034 virtual void report (const std::string& message, Type type) = 0; 00036 00037 public: 00038 00039 ErrorHandler(); 00041 00042 virtual ~ErrorHandler(); 00044 00045 bool isGood() const; 00047 00048 int countErrors() const; 00050 00051 int countWarnings() const; 00053 00054 void warning (const std::string& message, const TokenLoc& loc); 00056 00057 void error (const std::string& message, const TokenLoc& loc); 00059 00060 void endOfFile(); 00062 00063 virtual void reset(); 00065 }; 00066 } 00067 00068 #endif