00001 #ifndef DECLEXCEPTION_H_ 00002 #define DECLEXCEPTION_H_ 00003 00004 #include <string> 00005 #include "Token.h" 00006 #include "TokenSource.h" 00007 00008 00009 00010 class DeclException 00011 { 00012 std::string msg; 00013 int lineNum; 00014 int colNum; 00015 00016 public: 00017 DeclException(char* msgIn) 00018 { 00019 msg = msgIn; 00020 00021 lineNum = 0; 00022 colNum = 0; 00023 } 00024 DeclException(Token* inToken,char* msgIn) 00025 { 00026 msg = msgIn; 00027 00028 lineNum = inToken->getLineNo(); 00029 colNum = inToken->getColNo(); 00030 } 00031 DeclException(TokenIterator& inToken,char* msgIn) 00032 { 00033 msg = msgIn; 00034 00035 lineNum = inToken->getLineNo(); 00036 colNum = inToken->getColNo(); 00037 } 00038 00039 char* toString() 00040 { 00041 static char outStr[200]; 00042 sprintf(outStr,"(%d,%d) %s",lineNum,colNum,msg.c_str()); 00043 00044 return outStr; 00045 } 00046 }; 00047 00048 #endif