1#ifndef INC_MismatchedCharException_hpp__ 2#define INC_MismatchedCharException_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/MismatchedCharException.hpp#2 $ 9 */ 10 11#include <antlr/config.hpp> 12#include <antlr/RecognitionException.hpp> 13#include <antlr/BitSet.hpp> 14 15#ifdef ANTLR_CXX_SUPPORTS_NAMESPACE 16namespace antlr { 17#endif 18 19class CharScanner; 20 21class ANTLR_API MismatchedCharException : public RecognitionException { 22public: 23 // Types of chars 24#ifndef NO_STATIC_CONSTS 25 static const int CHAR = 1; 26 static const int NOT_CHAR = 2; 27 static const int RANGE = 3; 28 static const int NOT_RANGE = 4; 29 static const int SET = 5; 30 static const int NOT_SET = 6; 31#else 32 enum { 33 CHAR = 1, 34 NOT_CHAR = 2, 35 RANGE = 3, 36 NOT_RANGE = 4, 37 SET = 5, 38 NOT_SET = 6 39 }; 40#endif 41 42public: 43 // One of the above 44 int mismatchType; 45 46 // what was found on the input stream 47 int foundChar; 48 49 // For CHAR/NOT_CHAR and RANGE/NOT_RANGE 50 int expecting; 51 52 // For RANGE/NOT_RANGE (expecting is lower bound of range) 53 int upper; 54 55 // For SET/NOT_SET 56 BitSet set; 57 58protected: 59 // who knows...they may want to ask scanner questions 60 CharScanner* scanner; 61 62public: 63 MismatchedCharException(); 64 65 // Expected range / not range 66 MismatchedCharException( 67 int c, 68 int lower, 69 int upper_, 70 bool matchNot, 71 CharScanner* scanner_ 72 ); 73 74 // Expected token / not token 75 MismatchedCharException( 76 int c, 77 int expecting_, 78 bool matchNot, 79 CharScanner* scanner_ 80 ); 81 82 // Expected BitSet / not BitSet 83 MismatchedCharException( 84 int c, 85 BitSet set_, 86 bool matchNot, 87 CharScanner* scanner_ 88 ); 89 90 ~MismatchedCharException() throw() {} 91 92 /** 93 * Returns a clean error message (no line number/column information) 94 */ 95 ANTLR_USE_NAMESPACE(std)string getMessage() const; 96}; 97 98#ifdef ANTLR_CXX_SUPPORTS_NAMESPACE 99} 100#endif 101 102#endif //INC_MismatchedCharException_hpp__ 103