1#ifndef INC_RecognitionException_hpp__
2# define INC_RecognitionException_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/RecognitionException.hpp#2 $
9 */
10
11# include <antlr/config.hpp>
12# include <antlr/ANTLRException.hpp>
13
14# ifdef ANTLR_CXX_SUPPORTS_NAMESPACE
15namespace antlr
16{
17# endif
18	class ANTLR_API RecognitionException : public ANTLRException
19	{
20	public:
21		RecognitionException();
22		RecognitionException(const ANTLR_USE_NAMESPACE(std)string& s);
23		RecognitionException(const ANTLR_USE_NAMESPACE(std)string& s,
24									const ANTLR_USE_NAMESPACE(std)string& fileName,
25									int line, int column );
26
27		virtual ~RecognitionException() throw()
28		{
29		}
30
31		/// Return file where mishap occurred.
32		virtual ANTLR_USE_NAMESPACE(std)string getFilename() const throw()
33		{
34			return fileName;
35		}
36		/**
37		 * @return the line number that this exception happened on.
38		 */
39		virtual int getLine() const throw()
40		{
41			return line;
42		}
43		/**
44		 * @return the column number that this exception happened on.
45		 */
46		virtual int getColumn() const throw()
47		{
48			return column;
49		}
50
51		/// Return complete error message with line/column number info (if present)
52		virtual ANTLR_USE_NAMESPACE(std)string toString() const;
53
54		/// See what file/line/column info is present and return it as a string
55		virtual ANTLR_USE_NAMESPACE(std)string getFileLineColumnString() const;
56	protected:
57		ANTLR_USE_NAMESPACE(std)string fileName; // not used by treeparsers
58		int line;    // not used by treeparsers
59		int column;  // not used by treeparsers
60	};
61
62# ifdef ANTLR_CXX_SUPPORTS_NAMESPACE
63}
64# endif
65
66#endif //INC_RecognitionException_hpp__
67