ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-3.0/src/antlr/config.hpp
Revision: 2469
Committed: Fri Dec 2 15:38:03 2005 UTC (18 years, 7 months ago) by tim
File size: 8306 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_config_hpp__
2     #define INC_config_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: config.hpp,v 1.1 2005-12-02 15:38:02 tim Exp $
9     */
10    
11     /*
12     * Just a simple configuration file to differentiate between the
13     * various compilers used and reconfigure stuff for any oddities of the
14     * compiler in question.
15     *
16     * These are the defaults. Per compiler these are amended.
17     */
18     #define ANTLR_USE_NAMESPACE(_x_) _x_::
19     #define ANTLR_USING_NAMESPACE(_x_) using namespace _x_;
20     #define ANTLR_CXX_SUPPORTS_NAMESPACE 1
21     #define ANTLR_C_USING(_x_)
22     #define ANTLR_API
23     #ifndef CUSTOM_API
24     # define CUSTOM_API
25     #endif
26     #define ANTLR_IOS_BASE ios_base
27     /** define if cctype functions/macros need a std:: prefix. A lot of compilers
28     * define these as macros, in which case something barfs.
29     */
30     #define ANTLR_CCTYPE_NEEDS_STD
31    
32     /// Define if C++ compiler supports std::uncaught_exception
33     #define ANTLR_CXX_SUPPORTS_UNCAUGHT_EXCEPTION
34    
35     #define ANTLR_ATOI_IN_STD
36    
37     /******************************************************************************/
38     /*{{{ Microsoft Visual C++ */
39     // NOTE: If you provide patches for a specific MSVC version guard them for
40     // the specific version!!!!
41     // _MSC_VER == 1100 for Microsoft Visual C++ 5.0
42     // _MSC_VER == 1200 for Microsoft Visual C++ 6.0
43     // _MSC_VER == 1300 for Microsoft Visual C++ 7.0
44     #if defined(_MSC_VER)
45    
46     // This warning really gets on my nerves.
47     // It's the one about symbol longer than 256 chars, and it happens
48     // all the time with STL.
49     # pragma warning( disable : 4786 4231 )
50     // this shuts up some DLL interface warnings for STL
51     # pragma warning( disable : 4251 )
52    
53     # ifdef ANTLR_CXX_USE_STLPORT
54     # undef ANTLR_CXX_SUPPORTS_UNCAUGHT_EXCEPTION
55     # endif
56    
57     # if ( _MSC_VER < 1300 ) && ( defined(ANTLR_EXPORTS) || defined(ANTLR_IMPORTS) )
58     # error "DLL Build not supported on these MSVC versions."
59     // see comment in lib/cpp/src/dll.cpp
60     # endif
61    
62     // For the DLL support originally contributed by Stephen Naughton
63     // If you are building statically leave ANTLR_EXPORTS/ANTLR_IMPORTS undefined
64     // If you are building the DLL define ANTLR_EXPORTS
65     // If you are compiling code to be used with the DLL define ANTLR_IMPORTS
66     # ifdef ANTLR_EXPORTS
67     # undef ANTLR_API
68     # define ANTLR_API __declspec(dllexport)
69     # endif
70    
71     # ifdef ANTLR_IMPORTS
72     # undef ANTLR_API
73     # define ANTLR_API __declspec(dllimport)
74     # endif
75    
76     // VC6
77     # if ( _MSC_VER == 1200 )
78     # undef ANTLR_ATOI_IN_STD
79     # endif
80    
81     // These should be verified for newer MSVC's
82     // Not allowed to put 'static const int XXX=20;' in a class definition
83     # define NO_STATIC_CONSTS
84     // Using vector<XXX> requires operator<(X,X) to be defined
85     # define NEEDS_OPERATOR_LESS_THAN
86     // No strcasecmp in the C library (so use stricmp instead)
87     // - Anyone know which is in which standard?
88     # define NO_STRCASECMP
89     # undef ANTLR_CCTYPE_NEEDS_STD
90    
91     // needed for CharScannerLiteralsLess
92     # define NO_TEMPLATE_PARTS
93    
94     #endif // End of Microsoft Visual C++
95    
96     /*}}}*/
97     /******************************************************************************/
98     /*{{{ SunPro Compiler (Using OBJECTSPACE STL)
99     *****************************************************************************/
100     #ifdef __SUNPRO_CC
101    
102     # if (__SUNPRO_CC >= 0x500)
103    
104     # define NEEDS_OPERATOR_LESS_THAN
105     # define NO_TEMPLATE_PARTS
106    
107     # else
108    
109     # undef namespace
110     # define namespace
111    
112     # if (__SUNPRO_CC == 0x420)
113    
114     /* This code is specif to SunWspro Compiler 4.2, and will compile with
115     the objectspace 2.1 toolkit for Solaris2.6 */
116     # define HAS_NOT_CASSERT_H
117     # define HAS_NOT_CSTRING_H
118     # define HAS_NOT_CCTYPE_H
119     # define HAS_NOT_CSTDIO_H
120     # define HAS_OSTREAM_H
121    
122     /* #define OS_SOLARIS_2_6
123     #define OS_NO_WSTRING
124     #define OS_NO_ALLOCATORS
125     #define OS_MULTI_THREADED
126     #define OS_SOLARIS_NATIVE
127     #define OS_REALTIME
128     #define __OSVERSION__=5
129     #define SVR4
130     */
131    
132     // ObjectSpace + some specific templates constructions with stl.
133     /* #define OS_NO_ALLOCATOR */
134    
135     // This great compiler does not have the namespace feature.
136     # undef ANTLR_USE_NAMESPACE
137     # define ANTLR_USE_NAMESPACE(_x_)
138     # undef ANTLR_USING_NAMESPACE
139     # define ANTLR_USING_NAMESPACE(_x_)
140     # undef ANTLR_CXX_SUPPORTS_NAMESPACE
141     # endif // End __SUNPRO_CC == 0x420
142    
143     # undef explicit
144     # define explicit
145    
146     # define exception os_exception
147     # define bad_exception os_bad_exception
148    
149     // Not allowed to put 'static const int XXX=20;' in a class definition
150     # define NO_STATIC_CONSTS
151     // Using vector<XXX> requires operator<(X,X) to be defined
152     # define NEEDS_OPERATOR_LESS_THAN
153    
154     # endif
155    
156     # undef ANTLR_CCTYPE_NEEDS_STD
157    
158     #endif // end __SUNPRO_CC
159     /*}}}*/
160     /*****************************************************************************/
161     /*{{{ Inprise C++ Builder 3.0
162     *****************************************************************************/
163     #ifdef __BCPLUSPLUS__
164     # define NO_TEMPLATE_PARTS
165     # define NO_STRCASECMP
166     # undef ANTLR_CCTYPE_NEEDS_STD
167     #endif // End of C++ Builder 3.0
168     /*}}}*/
169     /*****************************************************************************/
170     /*{{{ IBM VisualAge C++ ( which includes the Dinkumware C++ Library )
171     *****************************************************************************/
172     #ifdef __IBMCPP__
173    
174     // No strcasecmp in the C library (so use stricmp instead)
175     // - Anyone know which is in which standard?
176     # define NO_STRCASECMP
177     # undef ANTLR_CCTYPE_NEEDS_STD
178    
179     #endif // end IBM VisualAge C++
180     /*}}}*/
181     /*****************************************************************************/
182     /*{{{ Metrowerks Codewarrior
183     *****************************************************************************/
184     #ifdef __MWERKS__
185     # if (__MWERKS__ <= 0x2201)
186     # define NO_TEMPLATE_PARTS
187     # endif
188    
189     // CW 6.0 and 7.0 still do not have it.
190     # define ANTLR_REALLY_NO_STRCASECMP
191    
192     # undef ANTLR_C_USING
193     # define ANTLR_C_USING(_x_) using std:: ## _x_;
194    
195     # define ANTLR_CCTYPE_NEEDS_STD
196     # undef ANTLR_CXX_SUPPORTS_UNCAUGHT_EXCEPTION
197    
198     #endif // End of Metrowerks Codewarrior
199     /*}}}*/
200     /*****************************************************************************/
201     /*{{{ SGI Irix 6.5.10 MIPSPro compiler
202     *****************************************************************************/
203     // (contributed by Anna Winkler)
204     // Note: you can't compile ANTLR with the MIPSPro compiler on
205     // anything < 6.5.10 because SGI just fixed a big bug dealing with
206     // namespaces in that release.
207     #ifdef __sgi
208     # define HAS_NOT_CCTYPE_H
209     # define HAS_NOT_CSTRING_H
210     # define HAS_NOT_CSTDIO_H
211     # undef ANTLR_CCTYPE_NEEDS_STD
212     #endif // End IRIX MIPSPro
213     /*}}}*/
214     /*****************************************************************************/
215     /*{{{ G++ in various incarnations
216     *****************************************************************************/
217     // With the gcc-2.95 and 3.0 being in the near future we should start handling
218     // incompatabilities between the various libstdc++'s.
219     #if defined(__GNUC__) || defined(__GNUG__)
220     // gcc 2 branch..
221     # if (__GNUC__ == 2 )
222     # if (__GNUC_MINOR__ <= 8 )
223     # undef ANTLR_USE_NAMESPACE
224     # define ANTLR_USE_NAMESPACE(_x_)
225     # undef ANTLR_USING_NAMESPACE
226     # define ANTLR_USING_NAMESPACE(_x_)
227     # undef ANTLR_CXX_SUPPORTS_NAMESPACE
228     # endif
229     # if (__GNUC_MINOR__ > 8 && __GNUC_MINOR__ <= 95 )
230     # undef ANTLR_IOS_BASE
231     # define ANTLR_IOS_BASE ios
232     # undef ANTLR_CCTYPE_NEEDS_STD
233     // compiling with -ansi ?
234     # ifdef __STRICT_ANSI__
235     # undef ANTLR_REALLY_NO_STRCASECMP
236     # define ANTLR_REALLY_NO_STRCASECMP
237     # endif
238     # else
239     // experimental .96 .97 branches..
240     # undef ANTLR_CCTYPE_NEEDS_STD
241     # endif
242     # endif
243     #endif // ! __GNUC__
244     /*}}}*/
245     /*****************************************************************************/
246     /*{{{ Digital CXX (Tru64)
247     *****************************************************************************/
248     #ifdef __DECCXX
249     #define __USE_STD_IOSTREAM
250     #endif
251     /*}}}*/
252     /*****************************************************************************/
253     #ifdef __BORLANDC__
254     #if __BORLANDC__ >= 560
255     #include <ctype>
256     #include <stdlib>
257     #define ANTLR_CCTYPE_NEEDS_STD
258     #else
259     #error "sorry, compiler is too old - consider an update."
260     #endif
261     #endif
262    
263     // Redefine these for backwards compatability..
264     #undef ANTLR_BEGIN_NAMESPACE
265     #undef ANTLR_END_NAMESPACE
266    
267     #if ANTLR_CXX_SUPPORTS_NAMESPACE == 1
268     # define ANTLR_BEGIN_NAMESPACE(_x_) namespace _x_ {
269     # define ANTLR_END_NAMESPACE }
270     #else
271     # define ANTLR_BEGIN_NAMESPACE(_x_)
272     # define ANTLR_END_NAMESPACE
273     #endif
274    
275     #endif //INC_config_hpp__