1/* ANTLR Translator Generator 2 * Project led by Terence Parr at http://www.jGuru.com 3 * Software rights: http://www.antlr.org/license.html 4 * 5 * $Id: //depot/code/org.antlr/release/antlr-2.7.7/lib/cpp/src/RecognitionException.cpp#2 $ 6 */ 7 8#include "antlr/RecognitionException.hpp" 9#include "antlr/String.hpp" 10 11#ifdef ANTLR_CXX_SUPPORTS_NAMESPACE 12namespace antlr { 13#endif 14 15RecognitionException::RecognitionException() 16: ANTLRException("parsing error") 17, line(-1) 18, column(-1) 19{ 20} 21 22RecognitionException::RecognitionException(const ANTLR_USE_NAMESPACE(std)string& s) 23: ANTLRException(s) 24, line(-1) 25, column(-1) 26{ 27} 28 29RecognitionException::RecognitionException(const ANTLR_USE_NAMESPACE(std)string& s, 30 const ANTLR_USE_NAMESPACE(std)string& fileName_, 31 int line_,int column_) 32: ANTLRException(s) 33, fileName(fileName_) 34, line(line_) 35, column(column_) 36{ 37} 38 39ANTLR_USE_NAMESPACE(std)string RecognitionException::getFileLineColumnString() const 40{ 41 ANTLR_USE_NAMESPACE(std)string fileLineColumnString; 42 43 if ( fileName.length() > 0 ) 44 fileLineColumnString = fileName + ":"; 45 46 if ( line != -1 ) 47 { 48 if ( fileName.length() == 0 ) 49 fileLineColumnString = fileLineColumnString + "line "; 50 51 fileLineColumnString = fileLineColumnString + line; 52 53 if ( column != -1 ) 54 fileLineColumnString = fileLineColumnString + ":" + column; 55 56 fileLineColumnString = fileLineColumnString + ":"; 57 } 58 59 fileLineColumnString = fileLineColumnString + " "; 60 61 return fileLineColumnString; 62} 63 64ANTLR_USE_NAMESPACE(std)string RecognitionException::toString() const 65{ 66 return getFileLineColumnString()+getMessage(); 67} 68 69#ifdef ANTLR_CXX_SUPPORTS_NAMESPACE 70} 71#endif 72