ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-2.0/src/antlr/MismatchedCharException.hpp
Revision: 2469
Committed: Fri Dec 2 15:38:03 2005 UTC (18 years, 7 months ago) by tim
File size: 1959 byte(s)
Log Message:
End of the Link --> List
Return of the Oject-Oriented
replace yacc/lex parser with antlr parser

File Contents

# User Rev Content
1 tim 2469 #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: MismatchedCharException.hpp,v 1.1 2005-12-02 15:38:02 tim Exp $
9     */
10    
11     #include <antlr/config.hpp>
12     #include <antlr/RecognitionException.hpp>
13     #include <antlr/BitSet.hpp>
14    
15     #ifdef ANTLR_CXX_SUPPORTS_NAMESPACE
16     namespace antlr {
17     #endif
18    
19     class CharScanner;
20    
21     class ANTLR_API MismatchedCharException : public RecognitionException {
22     public:
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    
42     public:
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    
58     protected:
59     // who knows...they may want to ask scanner questions
60     CharScanner* scanner;
61    
62     public:
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__