1#ifndef INC_ANTLRException_hpp__ 2#define INC_ANTLRException_hpp__ 3 4/* ANTLR Translator Generator 5 * Project led by Terence Parr at http://www.jGuru.com 6 * Software rights: http://www.antlr.org/license.html 7 * 8 * $Id: //depot/code/org.antlr/release/antlr-2.7.7/lib/cpp/antlr/ANTLRException.hpp#2 $ 9 */ 10 11#include <antlr/config.hpp> 12#include <string> 13 14#ifdef ANTLR_CXX_SUPPORTS_NAMESPACE 15namespace antlr { 16#endif 17 18class ANTLR_API ANTLRException 19{ 20public: 21 /// Create ANTLR base exception without error message 22 ANTLRException() : text("") 23 { 24 } 25 /// Create ANTLR base exception with error message 26 ANTLRException(const ANTLR_USE_NAMESPACE(std)string& s) 27 : text(s) 28 { 29 } 30 virtual ~ANTLRException() throw() 31 { 32 } 33 34 /** Return complete error message with line/column number info (if present) 35 * @note for your own exceptions override this one. Call getMessage from 36 * here to get the 'clean' error message stored in the text attribute. 37 */ 38 virtual ANTLR_USE_NAMESPACE(std)string toString() const 39 { 40 return text; 41 } 42 43 /** Return error message without additional info (if present) 44 * @note when making your own exceptions classes override toString 45 * and call in toString getMessage which relays the text attribute 46 * from here. 47 */ 48 virtual ANTLR_USE_NAMESPACE(std)string getMessage() const 49 { 50 return text; 51 } 52private: 53 ANTLR_USE_NAMESPACE(std)string text; 54}; 55#ifdef ANTLR_CXX_SUPPORTS_NAMESPACE 56} 57#endif 58 59#endif //INC_ANTLRException_hpp__ 60