OpenMW
components/compiler/errorhandler.hpp
Go to the documentation of this file.
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