xref: /aosp_15_r20/external/antlr/runtime/C/include/antlr3defs.h (revision 16467b971bd3e2009fad32dd79016f2c7e421deb)
1*16467b97STreehugger Robot /** \file
2*16467b97STreehugger Robot  * Basic type and constant definitions for ANTLR3 Runtime.
3*16467b97STreehugger Robot  */
4*16467b97STreehugger Robot #ifndef	_ANTLR3DEFS_H
5*16467b97STreehugger Robot #define	_ANTLR3DEFS_H
6*16467b97STreehugger Robot 
7*16467b97STreehugger Robot // [The "BSD licence"]
8*16467b97STreehugger Robot // Copyright (c) 2005-2009 Jim Idle, Temporal Wave LLC
9*16467b97STreehugger Robot // http://www.temporal-wave.com
10*16467b97STreehugger Robot // http://www.linkedin.com/in/jimidle
11*16467b97STreehugger Robot //
12*16467b97STreehugger Robot // All rights reserved.
13*16467b97STreehugger Robot //
14*16467b97STreehugger Robot // Redistribution and use in source and binary forms, with or without
15*16467b97STreehugger Robot // modification, are permitted provided that the following conditions
16*16467b97STreehugger Robot // are met:
17*16467b97STreehugger Robot // 1. Redistributions of source code must retain the above copyright
18*16467b97STreehugger Robot //    notice, this list of conditions and the following disclaimer.
19*16467b97STreehugger Robot // 2. Redistributions in binary form must reproduce the above copyright
20*16467b97STreehugger Robot //    notice, this list of conditions and the following disclaimer in the
21*16467b97STreehugger Robot //    documentation and/or other materials provided with the distribution.
22*16467b97STreehugger Robot // 3. The name of the author may not be used to endorse or promote products
23*16467b97STreehugger Robot //    derived from this software without specific prior written permission.
24*16467b97STreehugger Robot //
25*16467b97STreehugger Robot // THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
26*16467b97STreehugger Robot // IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
27*16467b97STreehugger Robot // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
28*16467b97STreehugger Robot // IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
29*16467b97STreehugger Robot // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
30*16467b97STreehugger Robot // NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
31*16467b97STreehugger Robot // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
32*16467b97STreehugger Robot // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
33*16467b97STreehugger Robot // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
34*16467b97STreehugger Robot // THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35*16467b97STreehugger Robot 
36*16467b97STreehugger Robot /* Following are for generated code, they are not referenced internally!!!
37*16467b97STreehugger Robot  */
38*16467b97STreehugger Robot #if !defined(ANTLR3_HUGE) && !defined(ANTLR3_AVERAGE) && !defined(ANTLR3_SMALL)
39*16467b97STreehugger Robot #define	ANTLR3_AVERAGE
40*16467b97STreehugger Robot #endif
41*16467b97STreehugger Robot 
42*16467b97STreehugger Robot #ifdef	ANTLR3_HUGE
43*16467b97STreehugger Robot #ifndef	ANTLR3_SIZE_HINT
44*16467b97STreehugger Robot #define	ANTLR3_SIZE_HINT        2049
45*16467b97STreehugger Robot #endif
46*16467b97STreehugger Robot #ifndef	ANTLR3_LIST_SIZE_HINT
47*16467b97STreehugger Robot #define	ANTLR3_LIST_SIZE_HINT   127
48*16467b97STreehugger Robot #endif
49*16467b97STreehugger Robot #endif
50*16467b97STreehugger Robot 
51*16467b97STreehugger Robot #ifdef	ANTLR3_AVERAGE
52*16467b97STreehugger Robot #ifndef	ANTLR3_SIZE_HINT
53*16467b97STreehugger Robot #define	ANTLR3_SIZE_HINT        1025
54*16467b97STreehugger Robot #define	ANTLR3_LIST_SIZE_HINT   63
55*16467b97STreehugger Robot #endif
56*16467b97STreehugger Robot #endif
57*16467b97STreehugger Robot 
58*16467b97STreehugger Robot #ifdef	ANTLR3_SMALL
59*16467b97STreehugger Robot #ifndef	ANTLR3_SIZE_HINT
60*16467b97STreehugger Robot #define	ANTLR3_SIZE_HINT        211
61*16467b97STreehugger Robot #define	ANTLR3_LIST_SIZE_HINT   31
62*16467b97STreehugger Robot #endif
63*16467b97STreehugger Robot #endif
64*16467b97STreehugger Robot 
65*16467b97STreehugger Robot // Definitions that indicate the encoding scheme character streams and strings etc
66*16467b97STreehugger Robot //
67*16467b97STreehugger Robot /// Indicates Big Endian for encodings where this makes sense
68*16467b97STreehugger Robot ///
69*16467b97STreehugger Robot #define ANTLR3_BE           1
70*16467b97STreehugger Robot 
71*16467b97STreehugger Robot /// Indicates Little Endian for encoidngs where this makes sense
72*16467b97STreehugger Robot ///
73*16467b97STreehugger Robot #define ANTLR3_LE           2
74*16467b97STreehugger Robot 
75*16467b97STreehugger Robot /// General latin-1 or other 8 bit encoding scheme such as straight ASCII
76*16467b97STreehugger Robot ///
77*16467b97STreehugger Robot #define ANTLR3_ENC_8BIT     4
78*16467b97STreehugger Robot 
79*16467b97STreehugger Robot /// UTF-8 encoding scheme
80*16467b97STreehugger Robot ///
81*16467b97STreehugger Robot #define ANTLR3_ENC_UTF8     8
82*16467b97STreehugger Robot 
83*16467b97STreehugger Robot /// UTF-16 encoding scheme (which also covers UCS2 as that does not have surrogates)
84*16467b97STreehugger Robot ///
85*16467b97STreehugger Robot #define ANTLR3_ENC_UTF16        16
86*16467b97STreehugger Robot #define ANTLR3_ENC_UTF16BE      16 + ANTLR3_BE
87*16467b97STreehugger Robot #define ANTLR3_ENC_UTF16LE      16 + ANTLR3_LE
88*16467b97STreehugger Robot 
89*16467b97STreehugger Robot /// UTF-32 encoding scheme (basically straight 32 bit)
90*16467b97STreehugger Robot ///
91*16467b97STreehugger Robot #define ANTLR3_ENC_UTF32        32
92*16467b97STreehugger Robot #define ANTLR3_ENC_UTF32BE      32 + ANTLR3_BE
93*16467b97STreehugger Robot #define ANTLR3_ENC_UTF32LE      32 + ANTLR3_LE
94*16467b97STreehugger Robot 
95*16467b97STreehugger Robot /// Input is 8 bit EBCDIC (which we convert to 8 bit ASCII on the fly
96*16467b97STreehugger Robot ///
97*16467b97STreehugger Robot #define ANTLR3_ENC_EBCDIC       64
98*16467b97STreehugger Robot 
99*16467b97STreehugger Robot /* Common definitions come first
100*16467b97STreehugger Robot  */
101*16467b97STreehugger Robot #include    <antlr3errors.h>
102*16467b97STreehugger Robot 
103*16467b97STreehugger Robot /* Work out what operating system/compiler this is. We just do this once
104*16467b97STreehugger Robot  * here and use an internal symbol after this.
105*16467b97STreehugger Robot  */
106*16467b97STreehugger Robot #ifdef	_WIN64
107*16467b97STreehugger Robot 
108*16467b97STreehugger Robot # ifndef	ANTLR3_WINDOWS
109*16467b97STreehugger Robot #   define	ANTLR3_WINDOWS
110*16467b97STreehugger Robot # endif
111*16467b97STreehugger Robot # define	ANTLR3_WIN64
112*16467b97STreehugger Robot # define	ANTLR3_USE_64BIT
113*16467b97STreehugger Robot 
114*16467b97STreehugger Robot #elif __LP64__
115*16467b97STreehugger Robot 
116*16467b97STreehugger Robot # define ANTLR3_USE_64BIT
117*16467b97STreehugger Robot 
118*16467b97STreehugger Robot #else
119*16467b97STreehugger Robot 
120*16467b97STreehugger Robot #ifdef	_WIN32
121*16467b97STreehugger Robot # ifndef	ANTLR3_WINDOWS
122*16467b97STreehugger Robot #  define	ANTLR3_WINDOWS
123*16467b97STreehugger Robot # endif
124*16467b97STreehugger Robot 
125*16467b97STreehugger Robot #define	ANTLR3_WIN32
126*16467b97STreehugger Robot #endif
127*16467b97STreehugger Robot 
128*16467b97STreehugger Robot #endif
129*16467b97STreehugger Robot 
130*16467b97STreehugger Robot #ifdef	ANTLR3_WINDOWS
131*16467b97STreehugger Robot 
132*16467b97STreehugger Robot #ifndef WIN32_LEAN_AND_MEAN
133*16467b97STreehugger Robot #define	WIN32_LEAN_AND_MEAN
134*16467b97STreehugger Robot #endif
135*16467b97STreehugger Robot 
136*16467b97STreehugger Robot /* Allow VC 8 (vs2005) and above to use 'secure' versions of various functions such as sprintf
137*16467b97STreehugger Robot  */
138*16467b97STreehugger Robot #ifndef	_CRT_SECURE_NO_DEPRECATE
139*16467b97STreehugger Robot #define	_CRT_SECURE_NO_DEPRECATE
140*16467b97STreehugger Robot #endif
141*16467b97STreehugger Robot 
142*16467b97STreehugger Robot #include    <windows.h>
143*16467b97STreehugger Robot #include    <stdlib.h>
144*16467b97STreehugger Robot #include    <winsock.h>
145*16467b97STreehugger Robot #include    <stdio.h>
146*16467b97STreehugger Robot #include    <sys/types.h>
147*16467b97STreehugger Robot #include    <sys/stat.h>
148*16467b97STreehugger Robot #include    <stdarg.h>
149*16467b97STreehugger Robot 
150*16467b97STreehugger Robot #define	ANTLR3_API      __declspec(dllexport)
151*16467b97STreehugger Robot #define	ANTLR3_CDECL    __cdecl
152*16467b97STreehugger Robot #define ANTLR3_FASTCALL __fastcall
153*16467b97STreehugger Robot 
154*16467b97STreehugger Robot #ifdef __cplusplus
155*16467b97STreehugger Robot extern "C" {
156*16467b97STreehugger Robot #endif
157*16467b97STreehugger Robot 
158*16467b97STreehugger Robot #ifndef __MINGW32__
159*16467b97STreehugger Robot // Standard Windows types
160*16467b97STreehugger Robot //
161*16467b97STreehugger Robot typedef	INT32	ANTLR3_CHAR,	*pANTLR3_CHAR;
162*16467b97STreehugger Robot typedef	UINT32	ANTLR3_UCHAR,	*pANTLR3_UCHAR;
163*16467b97STreehugger Robot 
164*16467b97STreehugger Robot typedef	INT8	ANTLR3_INT8,	*pANTLR3_INT8;
165*16467b97STreehugger Robot typedef	INT16	ANTLR3_INT16,	*pANTLR3_INT16;
166*16467b97STreehugger Robot typedef	INT32	ANTLR3_INT32,	*pANTLR3_INT32;
167*16467b97STreehugger Robot typedef	INT64	ANTLR3_INT64,	*pANTLR3_INT64;
168*16467b97STreehugger Robot typedef	UINT8	ANTLR3_UINT8,	*pANTLR3_UINT8;
169*16467b97STreehugger Robot typedef	UINT16	ANTLR3_UINT16,	*pANTLR3_UINT16;
170*16467b97STreehugger Robot typedef	UINT32	ANTLR3_UINT32,	*pANTLR3_UINT32;
171*16467b97STreehugger Robot typedef	UINT64	ANTLR3_UINT64,	*pANTLR3_UINT64;
172*16467b97STreehugger Robot typedef UINT64  ANTLR3_BITWORD, *pANTLR3_BITWORD;
173*16467b97STreehugger Robot typedef	UINT8	ANTLR3_BOOLEAN, *pANTLR3_BOOLEAN;
174*16467b97STreehugger Robot 
175*16467b97STreehugger Robot #else
176*16467b97STreehugger Robot // Mingw uses stdint.h and fails to define standard Microsoft typedefs
177*16467b97STreehugger Robot // such as UINT16, hence we must use stdint.h for Mingw.
178*16467b97STreehugger Robot //
179*16467b97STreehugger Robot #include <stdint.h>
180*16467b97STreehugger Robot typedef int32_t     ANTLR3_CHAR,    *pANTLR3_CHAR;
181*16467b97STreehugger Robot typedef uint32_t    ANTLR3_UCHAR,   *pANTLR3_UCHAR;
182*16467b97STreehugger Robot 
183*16467b97STreehugger Robot typedef int8_t	    ANTLR3_INT8,    *pANTLR3_INT8;
184*16467b97STreehugger Robot typedef int16_t	    ANTLR3_INT16,   *pANTLR3_INT16;
185*16467b97STreehugger Robot typedef int32_t	    ANTLR3_INT32,   *pANTLR3_INT32;
186*16467b97STreehugger Robot typedef int64_t	    ANTLR3_INT64,   *pANTLR3_INT64;
187*16467b97STreehugger Robot 
188*16467b97STreehugger Robot typedef uint8_t	    ANTLR3_UINT8,   *pANTLR3_UINT8;
189*16467b97STreehugger Robot typedef uint16_t    ANTLR3_UINT16,  *pANTLR3_UINT16;
190*16467b97STreehugger Robot typedef uint32_t    ANTLR3_UINT32,  *pANTLR3_UINT32;
191*16467b97STreehugger Robot typedef uint64_t    ANTLR3_UINT64,  *pANTLR3_UINT64;
192*16467b97STreehugger Robot typedef uint64_t    ANTLR3_BITWORD, *pANTLR3_BITWORD;
193*16467b97STreehugger Robot 
194*16467b97STreehugger Robot typedef	uint8_t	    ANTLR3_BOOLEAN, *pANTLR3_BOOLEAN;
195*16467b97STreehugger Robot 
196*16467b97STreehugger Robot #endif
197*16467b97STreehugger Robot 
198*16467b97STreehugger Robot 
199*16467b97STreehugger Robot 
200*16467b97STreehugger Robot #define	ANTLR3_UINT64_LIT(lit)  lit##ULL
201*16467b97STreehugger Robot 
202*16467b97STreehugger Robot #define	ANTLR3_INLINE	        __inline
203*16467b97STreehugger Robot 
204*16467b97STreehugger Robot typedef FILE *	    ANTLR3_FDSC;
205*16467b97STreehugger Robot typedef	struct stat ANTLR3_FSTAT_STRUCT;
206*16467b97STreehugger Robot 
207*16467b97STreehugger Robot #ifdef	ANTLR3_USE_64BIT
208*16467b97STreehugger Robot #define	ANTLR3_FUNC_PTR(ptr)	(void *)((ANTLR3_UINT64)(ptr))
209*16467b97STreehugger Robot #define ANTLR3_UINT64_CAST(ptr) (ANTLR3_UINT64)(ptr))
210*16467b97STreehugger Robot #define	ANTLR3_UINT32_CAST(ptr)	(ANTLR3_UINT32)((ANTLR3_UINT64)(ptr))
211*16467b97STreehugger Robot typedef ANTLR3_INT64		ANTLR3_MARKER;
212*16467b97STreehugger Robot typedef ANTLR3_UINT64		ANTLR3_INTKEY;
213*16467b97STreehugger Robot #else
214*16467b97STreehugger Robot #define	ANTLR3_FUNC_PTR(ptr)	(void *)((ANTLR3_UINT32)(ptr))
215*16467b97STreehugger Robot #define ANTLR3_UINT64_CAST(ptr) (ANTLR3_UINT64)((ANTLR3_UINT32)(ptr))
216*16467b97STreehugger Robot #define	ANTLR3_UINT32_CAST(ptr)	(ANTLR3_UINT32)(ptr)
217*16467b97STreehugger Robot typedef	ANTLR3_INT32		ANTLR3_MARKER;
218*16467b97STreehugger Robot typedef ANTLR3_UINT32		ANTLR3_INTKEY;
219*16467b97STreehugger Robot #endif
220*16467b97STreehugger Robot 
221*16467b97STreehugger Robot #ifdef	ANTLR3_WIN32
222*16467b97STreehugger Robot #endif
223*16467b97STreehugger Robot 
224*16467b97STreehugger Robot #ifdef	ANTLR3_WIN64
225*16467b97STreehugger Robot #endif
226*16467b97STreehugger Robot 
227*16467b97STreehugger Robot 
228*16467b97STreehugger Robot typedef	int			ANTLR3_SALENT;								// Type used for size of accept structure
229*16467b97STreehugger Robot typedef struct sockaddr_in	ANTLR3_SOCKADDRT, * pANTLR3_SOCKADDRT;	// Type used for socket address declaration
230*16467b97STreehugger Robot typedef struct sockaddr		ANTLR3_SOCKADDRC, * pANTLR3_SOCKADDRC;	// Type used for cast on accept()
231*16467b97STreehugger Robot 
232*16467b97STreehugger Robot #define	ANTLR3_CLOSESOCKET	closesocket
233*16467b97STreehugger Robot 
234*16467b97STreehugger Robot #ifdef __cplusplus
235*16467b97STreehugger Robot }
236*16467b97STreehugger Robot #endif
237*16467b97STreehugger Robot 
238*16467b97STreehugger Robot /* Warnings that are over-zealous such as complaining about strdup, we
239*16467b97STreehugger Robot  * can turn off.
240*16467b97STreehugger Robot  */
241*16467b97STreehugger Robot 
242*16467b97STreehugger Robot /* Don't complain about "deprecated" functions such as strdup
243*16467b97STreehugger Robot  */
244*16467b97STreehugger Robot #pragma warning( disable : 4996 )
245*16467b97STreehugger Robot 
246*16467b97STreehugger Robot #else
247*16467b97STreehugger Robot 
248*16467b97STreehugger Robot /* Include configure generated header file
249*16467b97STreehugger Robot  */
250*16467b97STreehugger Robot #include	<antlr3config.h>
251*16467b97STreehugger Robot 
252*16467b97STreehugger Robot #include <stdio.h>
253*16467b97STreehugger Robot 
254*16467b97STreehugger Robot #if HAVE_STDINT_H
255*16467b97STreehugger Robot # include <stdint.h>
256*16467b97STreehugger Robot #endif
257*16467b97STreehugger Robot 
258*16467b97STreehugger Robot #if HAVE_SYS_TYPES_H
259*16467b97STreehugger Robot # include <sys/types.h>
260*16467b97STreehugger Robot #endif
261*16467b97STreehugger Robot 
262*16467b97STreehugger Robot #if HAVE_SYS_STAT_H
263*16467b97STreehugger Robot # include <sys/stat.h>
264*16467b97STreehugger Robot #endif
265*16467b97STreehugger Robot 
266*16467b97STreehugger Robot #if STDC_HEADERS
267*16467b97STreehugger Robot # include   <stdlib.h>
268*16467b97STreehugger Robot # include   <stddef.h>
269*16467b97STreehugger Robot # include   <stdarg.h>
270*16467b97STreehugger Robot #else
271*16467b97STreehugger Robot # if HAVE_STDLIB_H
272*16467b97STreehugger Robot #  include  <stdlib.h>
273*16467b97STreehugger Robot # endif
274*16467b97STreehugger Robot # if HAVE_STDARG_H
275*16467b97STreehugger Robot #  include  <stdarg.h>
276*16467b97STreehugger Robot # endif
277*16467b97STreehugger Robot #endif
278*16467b97STreehugger Robot 
279*16467b97STreehugger Robot #if HAVE_STRING_H
280*16467b97STreehugger Robot # if !STDC_HEADERS && HAVE_MEMORY_H
281*16467b97STreehugger Robot #  include <memory.h>
282*16467b97STreehugger Robot # endif
283*16467b97STreehugger Robot # include <string.h>
284*16467b97STreehugger Robot #endif
285*16467b97STreehugger Robot 
286*16467b97STreehugger Robot #if HAVE_STRINGS_H
287*16467b97STreehugger Robot # include <strings.h>
288*16467b97STreehugger Robot #endif
289*16467b97STreehugger Robot 
290*16467b97STreehugger Robot #if HAVE_INTTYPES_H
291*16467b97STreehugger Robot # include <inttypes.h>
292*16467b97STreehugger Robot #endif
293*16467b97STreehugger Robot 
294*16467b97STreehugger Robot #if HAVE_UNISTD_H
295*16467b97STreehugger Robot # include <unistd.h>
296*16467b97STreehugger Robot #endif
297*16467b97STreehugger Robot 
298*16467b97STreehugger Robot #ifdef HAVE_NETINET_IN_H
299*16467b97STreehugger Robot #include	<netinet/in.h>
300*16467b97STreehugger Robot #endif
301*16467b97STreehugger Robot 
302*16467b97STreehugger Robot #ifdef HAVE_SOCKET_H
303*16467b97STreehugger Robot # include	<socket.h>
304*16467b97STreehugger Robot #else
305*16467b97STreehugger Robot # if HAVE_SYS_SOCKET_H
306*16467b97STreehugger Robot #  include	<sys/socket.h>
307*16467b97STreehugger Robot # endif
308*16467b97STreehugger Robot #endif
309*16467b97STreehugger Robot 
310*16467b97STreehugger Robot #ifdef HAVE_NETINET_TCP_H
311*16467b97STreehugger Robot #include	<netinet/tcp.h>
312*16467b97STreehugger Robot #endif
313*16467b97STreehugger Robot 
314*16467b97STreehugger Robot #ifdef HAVE_ARPA_NAMESER_H
315*16467b97STreehugger Robot #include <arpa/nameser.h> /* DNS HEADER struct */
316*16467b97STreehugger Robot #endif
317*16467b97STreehugger Robot 
318*16467b97STreehugger Robot #ifdef HAVE_NETDB_H
319*16467b97STreehugger Robot #include <netdb.h>
320*16467b97STreehugger Robot #endif
321*16467b97STreehugger Robot 
322*16467b97STreehugger Robot 
323*16467b97STreehugger Robot #ifdef HAVE_SYS_RESOLVE_H
324*16467b97STreehugger Robot #include	<sys/resolv.h>
325*16467b97STreehugger Robot #endif
326*16467b97STreehugger Robot 
327*16467b97STreehugger Robot #ifdef HAVE_RESOLVE_H
328*16467b97STreehugger Robot #include	<resolv.h>
329*16467b97STreehugger Robot #endif
330*16467b97STreehugger Robot 
331*16467b97STreehugger Robot 
332*16467b97STreehugger Robot #ifdef	HAVE_MALLOC_H
333*16467b97STreehugger Robot # include    <malloc.h>
334*16467b97STreehugger Robot #else
335*16467b97STreehugger Robot # ifdef	HAVE_SYS_MALLOC_H
336*16467b97STreehugger Robot #  include    <sys/malloc.h>
337*16467b97STreehugger Robot # endif
338*16467b97STreehugger Robot #endif
339*16467b97STreehugger Robot 
340*16467b97STreehugger Robot #ifdef  HAVE_CTYPE_H
341*16467b97STreehugger Robot # include   <ctype.h>
342*16467b97STreehugger Robot #endif
343*16467b97STreehugger Robot 
344*16467b97STreehugger Robot /* Some platforms define a macro, index() in string.h. AIX is
345*16467b97STreehugger Robot  * one of these for instance. We must get rid of that definition
346*16467b97STreehugger Robot  * as we use ->index all over the place. defining macros like this in system header
347*16467b97STreehugger Robot  * files is a really bad idea, but I doubt that IBM will listen to me ;-)
348*16467b97STreehugger Robot  */
349*16467b97STreehugger Robot #ifdef	index
350*16467b97STreehugger Robot #undef	index
351*16467b97STreehugger Robot #endif
352*16467b97STreehugger Robot 
353*16467b97STreehugger Robot #define _stat   stat
354*16467b97STreehugger Robot 
355*16467b97STreehugger Robot // SOCKET not defined on Unix
356*16467b97STreehugger Robot //
357*16467b97STreehugger Robot typedef	int	SOCKET;
358*16467b97STreehugger Robot 
359*16467b97STreehugger Robot #define ANTLR3_API
360*16467b97STreehugger Robot #define	ANTLR3_CDECL
361*16467b97STreehugger Robot #define ANTLR3_FASTCALL
362*16467b97STreehugger Robot 
363*16467b97STreehugger Robot #ifdef	__hpux
364*16467b97STreehugger Robot 
365*16467b97STreehugger Robot  // HPUX is always different usually for no good reason. Tru64 should have kicked it
366*16467b97STreehugger Robot  // into touch and everyone knows it ;-)
367*16467b97STreehugger Robot  //
368*16467b97STreehugger Robot  typedef struct sockaddr_in ANTLR3_SOCKADDRT, * pANTLR3_SOCKADDRT;	// Type used for socket address declaration
369*16467b97STreehugger Robot  typedef void *		    pANTLR3_SOCKADDRC;				// Type used for cast on accept()
370*16467b97STreehugger Robot  typedef int		    ANTLR3_SALENT;
371*16467b97STreehugger Robot 
372*16467b97STreehugger Robot #else
373*16467b97STreehugger Robot 
374*16467b97STreehugger Robot # if defined(_AIX) || __GNUC__ > 3
375*16467b97STreehugger Robot 
376*16467b97STreehugger Robot    typedef  socklen_t   ANTLR3_SALENT;
377*16467b97STreehugger Robot 
378*16467b97STreehugger Robot # else
379*16467b97STreehugger Robot 
380*16467b97STreehugger Robot    typedef  size_t	ANTLR3_SALENT;
381*16467b97STreehugger Robot 
382*16467b97STreehugger Robot # endif
383*16467b97STreehugger Robot 
384*16467b97STreehugger Robot    typedef struct sockaddr_in   ANTLR3_SOCKADDRT, * pANTLR3_SOCKADDRT;	// Type used for socket address declaration
385*16467b97STreehugger Robot    typedef struct sockaddr	* pANTLR3_SOCKADDRC;                    // Type used for cast on accept()
386*16467b97STreehugger Robot 
387*16467b97STreehugger Robot #endif
388*16467b97STreehugger Robot 
389*16467b97STreehugger Robot #define INVALID_SOCKET      ((SOCKET)-1)
390*16467b97STreehugger Robot #define	ANTLR3_CLOSESOCKET  close
391*16467b97STreehugger Robot 
392*16467b97STreehugger Robot #ifdef __cplusplus
393*16467b97STreehugger Robot extern "C" {
394*16467b97STreehugger Robot #endif
395*16467b97STreehugger Robot 
396*16467b97STreehugger Robot /* Inherit type definitions for autoconf
397*16467b97STreehugger Robot  */
398*16467b97STreehugger Robot typedef int32_t	    ANTLR3_CHAR,    *pANTLR3_CHAR;
399*16467b97STreehugger Robot typedef uint32_t    ANTLR3_UCHAR,   *pANTLR3_UCHAR;
400*16467b97STreehugger Robot 
401*16467b97STreehugger Robot typedef int8_t	    ANTLR3_INT8,    *pANTLR3_INT8;
402*16467b97STreehugger Robot typedef int16_t	    ANTLR3_INT16,   *pANTLR3_INT16;
403*16467b97STreehugger Robot typedef int32_t	    ANTLR3_INT32,   *pANTLR3_INT32;
404*16467b97STreehugger Robot typedef int64_t	    ANTLR3_INT64,   *pANTLR3_INT64;
405*16467b97STreehugger Robot 
406*16467b97STreehugger Robot typedef uint8_t	    ANTLR3_UINT8,   *pANTLR3_UINT8;
407*16467b97STreehugger Robot typedef uint16_t    ANTLR3_UINT16,  *pANTLR3_UINT16;
408*16467b97STreehugger Robot typedef uint32_t    ANTLR3_UINT32,  *pANTLR3_UINT32;
409*16467b97STreehugger Robot typedef uint64_t    ANTLR3_UINT64,  *pANTLR3_UINT64;
410*16467b97STreehugger Robot typedef uint64_t    ANTLR3_BITWORD, *pANTLR3_BITWORD;
411*16467b97STreehugger Robot 
412*16467b97STreehugger Robot typedef uint32_t    ANTLR3_BOOLEAN, *pANTLR3_BOOLEAN;
413*16467b97STreehugger Robot 
414*16467b97STreehugger Robot #define ANTLR3_INLINE   inline
415*16467b97STreehugger Robot #define	ANTLR3_API
416*16467b97STreehugger Robot 
417*16467b97STreehugger Robot typedef FILE *	    ANTLR3_FDSC;
418*16467b97STreehugger Robot typedef	struct stat ANTLR3_FSTAT_STRUCT;
419*16467b97STreehugger Robot 
420*16467b97STreehugger Robot #ifdef	ANTLR3_USE_64BIT
421*16467b97STreehugger Robot #define	ANTLR3_FUNC_PTR(ptr)    (void *)((ANTLR3_UINT64)(ptr))
422*16467b97STreehugger Robot #define ANTLR3_UINT64_CAST(ptr)	(ANTLR3_UINT64)(ptr))
423*16467b97STreehugger Robot #define	ANTLR3_UINT32_CAST(ptr) (ANTLR3_UINT32)((ANTLR3_UINT64)(ptr))
424*16467b97STreehugger Robot typedef ANTLR3_INT64		ANTLR3_MARKER;
425*16467b97STreehugger Robot typedef ANTLR3_UINT64		ANTLR3_INTKEY;
426*16467b97STreehugger Robot #else
427*16467b97STreehugger Robot #define	ANTLR3_FUNC_PTR(ptr)	(void *)((ANTLR3_UINT32)(ptr))
428*16467b97STreehugger Robot #define ANTLR3_UINT64_CAST(ptr) (ANTLR3_UINT64)((ANTLR3_UINT32)(ptr))
429*16467b97STreehugger Robot #define	ANTLR3_UINT32_CAST(ptr)	(ANTLR3_UINT32)(ptr)
430*16467b97STreehugger Robot typedef	ANTLR3_INT32		ANTLR3_MARKER;
431*16467b97STreehugger Robot typedef ANTLR3_UINT32		ANTLR3_INTKEY;
432*16467b97STreehugger Robot #endif
433*16467b97STreehugger Robot #define	ANTLR3_UINT64_LIT(lit)	lit##ULL
434*16467b97STreehugger Robot 
435*16467b97STreehugger Robot #ifdef __cplusplus
436*16467b97STreehugger Robot }
437*16467b97STreehugger Robot #endif
438*16467b97STreehugger Robot 
439*16467b97STreehugger Robot #endif
440*16467b97STreehugger Robot 
441*16467b97STreehugger Robot #ifdef ANTLR3_USE_64BIT
442*16467b97STreehugger Robot #define ANTLR3_TRIE_DEPTH 63
443*16467b97STreehugger Robot #else
444*16467b97STreehugger Robot #define ANTLR3_TRIE_DEPTH 31
445*16467b97STreehugger Robot #endif
446*16467b97STreehugger Robot /* Pre declare the typedefs for all the interfaces, then
447*16467b97STreehugger Robot  * they can be inter-dependant and we will let the linker
448*16467b97STreehugger Robot  * sort it out for us.
449*16467b97STreehugger Robot  */
450*16467b97STreehugger Robot #include    <antlr3interfaces.h>
451*16467b97STreehugger Robot 
452*16467b97STreehugger Robot // Include the unicode.org conversion library header.
453*16467b97STreehugger Robot //
454*16467b97STreehugger Robot #include    <antlr3convertutf.h>
455*16467b97STreehugger Robot 
456*16467b97STreehugger Robot /* Prototypes
457*16467b97STreehugger Robot  */
458*16467b97STreehugger Robot #ifndef ANTLR3_MALLOC
459*16467b97STreehugger Robot /// Default definition of ANTLR3_MALLOC. You can override this before including
460*16467b97STreehugger Robot /// antlr3.h if you wish to use your own implementation.
461*16467b97STreehugger Robot ///
462*16467b97STreehugger Robot #define	ANTLR3_MALLOC(request)          malloc  ((size_t)(request))
463*16467b97STreehugger Robot #endif
464*16467b97STreehugger Robot 
465*16467b97STreehugger Robot #ifndef ANTLR3_CALLOC
466*16467b97STreehugger Robot /// Default definition of ANTLR3_CALLOC. You can override this before including
467*16467b97STreehugger Robot /// antlr3.h if you wish to use your own implementation.
468*16467b97STreehugger Robot ///
469*16467b97STreehugger Robot #define	ANTLR3_CALLOC(numEl, elSize)    calloc  (numEl, (size_t)(elSize))
470*16467b97STreehugger Robot #endif
471*16467b97STreehugger Robot 
472*16467b97STreehugger Robot #ifndef ANTLR3_REALLOC
473*16467b97STreehugger Robot /// Default definition of ANTLR3_REALLOC. You can override this before including
474*16467b97STreehugger Robot /// antlr3.h if you wish to use your own implementation.
475*16467b97STreehugger Robot ///
476*16467b97STreehugger Robot #define ANTLR3_REALLOC(current, request)    realloc ((void *)(current), (size_t)(request))
477*16467b97STreehugger Robot #endif
478*16467b97STreehugger Robot #ifndef ANTLR3_FREE
479*16467b97STreehugger Robot /// Default definition of ANTLR3_FREE. You can override this before including
480*16467b97STreehugger Robot /// antlr3.h if you wish to use your own implementation.
481*16467b97STreehugger Robot ///
482*16467b97STreehugger Robot #define	ANTLR3_FREE(ptr)		free    ((void *)(ptr))
483*16467b97STreehugger Robot #endif
484*16467b97STreehugger Robot #ifndef ANTLR3_FREE_FUNC
485*16467b97STreehugger Robot /// Default definition of ANTLR3_FREE_FUNC. You can override this before including
486*16467b97STreehugger Robot /// antlr3.h if you wish to use your own implementation.
487*16467b97STreehugger Robot ///
488*16467b97STreehugger Robot #define	ANTLR3_FREE_FUNC		free
489*16467b97STreehugger Robot #endif
490*16467b97STreehugger Robot #ifndef ANTLR3_STRDUP
491*16467b97STreehugger Robot /// Default definition of ANTLR3_STRDUP. You can override this before including
492*16467b97STreehugger Robot /// antlr3.h if you wish to use your own implementation.
493*16467b97STreehugger Robot ///
494*16467b97STreehugger Robot #define	ANTLR3_STRDUP(instr)		(pANTLR3_UINT8)(strdup  ((const char *)(instr)))
495*16467b97STreehugger Robot #endif
496*16467b97STreehugger Robot #ifndef ANTLR3_MEMCPY
497*16467b97STreehugger Robot /// Default definition of ANTLR3_MEMCPY. You can override this before including
498*16467b97STreehugger Robot /// antlr3.h if you wish to use your own implementation.
499*16467b97STreehugger Robot ///
500*16467b97STreehugger Robot #define	ANTLR3_MEMCPY(target, source, size) memcpy((void *)(target), (const void *)(source), (size_t)(size))
501*16467b97STreehugger Robot #endif
502*16467b97STreehugger Robot #ifndef ANTLR3_MEMMOVE
503*16467b97STreehugger Robot /// Default definition of ANTLR3_MEMMOVE. You can override this before including
504*16467b97STreehugger Robot /// antlr3.h if you wish to use your own implementation.
505*16467b97STreehugger Robot ///
506*16467b97STreehugger Robot #define	ANTLR3_MEMMOVE(target, source, size)    memmove((void *)(target), (const void *)(source), (size_t)(size))
507*16467b97STreehugger Robot #endif
508*16467b97STreehugger Robot #ifndef ANTLR3_MEMSET
509*16467b97STreehugger Robot /// Default definition of ANTLR3_MEMSET. You can override this before including
510*16467b97STreehugger Robot /// antlr3.h if you wish to use your own implementation.
511*16467b97STreehugger Robot ///
512*16467b97STreehugger Robot #define	ANTLR3_MEMSET(target, byte, size)   memset((void *)(target), (int)(byte), (size_t)(size))
513*16467b97STreehugger Robot #endif
514*16467b97STreehugger Robot 
515*16467b97STreehugger Robot #ifndef	ANTLR3_PRINTF
516*16467b97STreehugger Robot /// Default definition of printf, set this to something other than printf before including antlr3.h
517*16467b97STreehugger Robot /// if your system does not have a printf. Note that you can define this to be <code>//</code>
518*16467b97STreehugger Robot /// without harming the runtime.
519*16467b97STreehugger Robot ///
520*16467b97STreehugger Robot #define	ANTLR3_PRINTF   printf
521*16467b97STreehugger Robot #endif
522*16467b97STreehugger Robot 
523*16467b97STreehugger Robot #ifndef	ANTLR3_FPRINTF
524*16467b97STreehugger Robot /// Default definition of fprintf, set this to something other than fprintf before including antlr3.h
525*16467b97STreehugger Robot /// if your system does not have a fprintf. Note that you can define this to be <code>//</code>
526*16467b97STreehugger Robot /// without harming the runtime.
527*16467b97STreehugger Robot ///
528*16467b97STreehugger Robot #define	ANTLR3_FPRINTF	fprintf
529*16467b97STreehugger Robot #endif
530*16467b97STreehugger Robot 
531*16467b97STreehugger Robot #ifdef __cplusplus
532*16467b97STreehugger Robot extern "C" {
533*16467b97STreehugger Robot #endif
534*16467b97STreehugger Robot 
535*16467b97STreehugger Robot ANTLR3_API pANTLR3_INT_TRIE antlr3IntTrieNew    (ANTLR3_UINT32 depth);
536*16467b97STreehugger Robot 
537*16467b97STreehugger Robot ANTLR3_API pANTLR3_BITSET   antlr3BitsetNew	(ANTLR3_UINT32 numBits);
538*16467b97STreehugger Robot ANTLR3_API pANTLR3_BITSET   antlr3BitsetOf	(ANTLR3_INT32 bit, ...);
539*16467b97STreehugger Robot ANTLR3_API pANTLR3_BITSET   antlr3BitsetList	(pANTLR3_HASH_TABLE list);
540*16467b97STreehugger Robot ANTLR3_API pANTLR3_BITSET   antlr3BitsetCopy	(pANTLR3_BITSET_LIST blist);
541*16467b97STreehugger Robot ANTLR3_API pANTLR3_BITSET   antlr3BitsetLoad    (pANTLR3_BITSET_LIST blist);
542*16467b97STreehugger Robot ANTLR3_API void             antlr3BitsetSetAPI  (pANTLR3_BITSET bitset);
543*16467b97STreehugger Robot 
544*16467b97STreehugger Robot 
545*16467b97STreehugger Robot ANTLR3_API pANTLR3_BASE_RECOGNIZER  antlr3BaseRecognizerNew                     (ANTLR3_UINT32 type, ANTLR3_UINT32 sizeHint, pANTLR3_RECOGNIZER_SHARED_STATE state);
546*16467b97STreehugger Robot ANTLR3_API void			    antlr3RecognitionExceptionNew               (pANTLR3_BASE_RECOGNIZER recognizer);
547*16467b97STreehugger Robot ANTLR3_API void			    antlr3MTExceptionNew                        (pANTLR3_BASE_RECOGNIZER recognizer);
548*16467b97STreehugger Robot ANTLR3_API void			    antlr3MTNExceptionNew                       (pANTLR3_BASE_RECOGNIZER recognizer);
549*16467b97STreehugger Robot ANTLR3_API pANTLR3_HASH_TABLE	    antlr3HashTableNew                          (ANTLR3_UINT32 sizeHint);
550*16467b97STreehugger Robot ANTLR3_API ANTLR3_UINT32	    antlr3Hash                                  (void * key, ANTLR3_UINT32 keylen);
551*16467b97STreehugger Robot ANTLR3_API pANTLR3_HASH_ENUM	    antlr3EnumNew                               (pANTLR3_HASH_TABLE table);
552*16467b97STreehugger Robot ANTLR3_API pANTLR3_LIST		    antlr3ListNew                               (ANTLR3_UINT32 sizeHint);
553*16467b97STreehugger Robot ANTLR3_API pANTLR3_VECTOR_FACTORY   antlr3VectorFactoryNew                      (ANTLR3_UINT32 sizeHint);
554*16467b97STreehugger Robot ANTLR3_API pANTLR3_VECTOR	    antlr3VectorNew                             (ANTLR3_UINT32 sizeHint);
555*16467b97STreehugger Robot ANTLR3_API pANTLR3_STACK	    antlr3StackNew                              (ANTLR3_UINT32 sizeHint);
556*16467b97STreehugger Robot ANTLR3_API void                     antlr3SetVectorApi                          (pANTLR3_VECTOR vector, ANTLR3_UINT32 sizeHint);
557*16467b97STreehugger Robot ANTLR3_API ANTLR3_UCHAR		    antlr3c8toAntlrc                            (ANTLR3_INT8 inc);
558*16467b97STreehugger Robot ANTLR3_API pANTLR3_TOPO             antlr3TopoNew();
559*16467b97STreehugger Robot 
560*16467b97STreehugger Robot ANTLR3_API pANTLR3_EXCEPTION	    antlr3ExceptionNew                          (ANTLR3_UINT32 exception, void * name, void * message, ANTLR3_BOOLEAN freeMessage);
561*16467b97STreehugger Robot 
562*16467b97STreehugger Robot 
563*16467b97STreehugger Robot ANTLR3_API pANTLR3_INPUT_STREAM     antlr3FileStreamNew                         (pANTLR3_UINT8 fileName, ANTLR3_UINT32 encoding);
564*16467b97STreehugger Robot ANTLR3_API pANTLR3_INPUT_STREAM     antlr3StringStreamNew                       (pANTLR3_UINT8 data, ANTLR3_UINT32 encoding, ANTLR3_UINT32 size, pANTLR3_UINT8 name);
565*16467b97STreehugger Robot 
566*16467b97STreehugger Robot ANTLR3_API pANTLR3_INT_STREAM	    antlr3IntStreamNew                          (void);
567*16467b97STreehugger Robot 
568*16467b97STreehugger Robot ANTLR3_API pANTLR3_STRING_FACTORY   antlr3StringFactoryNew                      (ANTLR3_UINT32 encoding);
569*16467b97STreehugger Robot 
570*16467b97STreehugger Robot ANTLR3_API pANTLR3_COMMON_TOKEN	    antlr3CommonTokenNew                        (ANTLR3_UINT32 ttype);
571*16467b97STreehugger Robot ANTLR3_API pANTLR3_TOKEN_FACTORY    antlr3TokenFactoryNew                       (pANTLR3_INPUT_STREAM input);
572*16467b97STreehugger Robot ANTLR3_API void			    antlr3SetTokenAPI                           (pANTLR3_COMMON_TOKEN token);
573*16467b97STreehugger Robot 
574*16467b97STreehugger Robot ANTLR3_API pANTLR3_LEXER	    antlr3LexerNewStream                        (ANTLR3_UINT32 sizeHint, pANTLR3_INPUT_STREAM input, pANTLR3_RECOGNIZER_SHARED_STATE state);
575*16467b97STreehugger Robot ANTLR3_API pANTLR3_LEXER	    antlr3LexerNew                              (ANTLR3_UINT32 sizeHint, pANTLR3_RECOGNIZER_SHARED_STATE state);
576*16467b97STreehugger Robot ANTLR3_API pANTLR3_PARSER	    antlr3ParserNewStreamDbg                    (ANTLR3_UINT32 sizeHint, pANTLR3_TOKEN_STREAM tstream, pANTLR3_DEBUG_EVENT_LISTENER dbg, pANTLR3_RECOGNIZER_SHARED_STATE state);
577*16467b97STreehugger Robot ANTLR3_API pANTLR3_PARSER	    antlr3ParserNewStream                       (ANTLR3_UINT32 sizeHint, pANTLR3_TOKEN_STREAM tstream, pANTLR3_RECOGNIZER_SHARED_STATE state);
578*16467b97STreehugger Robot ANTLR3_API pANTLR3_PARSER           antlr3ParserNew                             (ANTLR3_UINT32 sizeHint, pANTLR3_RECOGNIZER_SHARED_STATE state);
579*16467b97STreehugger Robot 
580*16467b97STreehugger Robot ANTLR3_API pANTLR3_COMMON_TOKEN_STREAM  antlr3CommonTokenStreamSourceNew        (ANTLR3_UINT32 hint, pANTLR3_TOKEN_SOURCE source);
581*16467b97STreehugger Robot ANTLR3_API pANTLR3_COMMON_TOKEN_STREAM	antlr3CommonTokenStreamNew              (ANTLR3_UINT32 hint);
582*16467b97STreehugger Robot ANTLR3_API pANTLR3_COMMON_TOKEN_STREAM	antlr3CommonTokenDebugStreamSourceNew   (ANTLR3_UINT32 hint, pANTLR3_TOKEN_SOURCE source, pANTLR3_DEBUG_EVENT_LISTENER debugger);
583*16467b97STreehugger Robot 
584*16467b97STreehugger Robot ANTLR3_API pANTLR3_BASE_TREE_ADAPTOR	ANTLR3_TREE_ADAPTORNew                  (pANTLR3_STRING_FACTORY strFactory);
585*16467b97STreehugger Robot ANTLR3_API pANTLR3_BASE_TREE_ADAPTOR	ANTLR3_TREE_ADAPTORDebugNew             (pANTLR3_STRING_FACTORY strFactory, pANTLR3_DEBUG_EVENT_LISTENER	debugger);
586*16467b97STreehugger Robot ANTLR3_API pANTLR3_COMMON_TREE		antlr3CommonTreeNew                     (void);
587*16467b97STreehugger Robot ANTLR3_API pANTLR3_COMMON_TREE		antlr3CommonTreeNewFromTree             (pANTLR3_COMMON_TREE tree);
588*16467b97STreehugger Robot ANTLR3_API pANTLR3_COMMON_TREE		antlr3CommonTreeNewFromToken            (pANTLR3_COMMON_TOKEN tree);
589*16467b97STreehugger Robot ANTLR3_API pANTLR3_ARBORETUM		antlr3ArboretumNew                      (pANTLR3_STRING_FACTORY factory);
590*16467b97STreehugger Robot ANTLR3_API void				antlr3SetCTAPI                          (pANTLR3_COMMON_TREE tree);
591*16467b97STreehugger Robot ANTLR3_API pANTLR3_BASE_TREE		antlr3BaseTreeNew                       (pANTLR3_BASE_TREE tree);
592*16467b97STreehugger Robot 
593*16467b97STreehugger Robot ANTLR3_API void				antlr3BaseTreeAdaptorInit               (pANTLR3_BASE_TREE_ADAPTOR adaptor, pANTLR3_DEBUG_EVENT_LISTENER debugger);
594*16467b97STreehugger Robot 
595*16467b97STreehugger Robot ANTLR3_API pANTLR3_TREE_PARSER		antlr3TreeParserNewStream               (ANTLR3_UINT32 sizeHint, pANTLR3_COMMON_TREE_NODE_STREAM ctnstream, pANTLR3_RECOGNIZER_SHARED_STATE state);
596*16467b97STreehugger Robot 
597*16467b97STreehugger Robot ANTLR3_API ANTLR3_INT32			antlr3dfaspecialTransition              (void * ctx, pANTLR3_BASE_RECOGNIZER rec, pANTLR3_INT_STREAM is, pANTLR3_CYCLIC_DFA dfa, ANTLR3_INT32 s);
598*16467b97STreehugger Robot ANTLR3_API ANTLR3_INT32			antlr3dfaspecialStateTransition         (void * ctx, pANTLR3_BASE_RECOGNIZER rec, pANTLR3_INT_STREAM is, pANTLR3_CYCLIC_DFA dfa, ANTLR3_INT32 s);
599*16467b97STreehugger Robot ANTLR3_API ANTLR3_INT32			antlr3dfapredict                        (void * ctx, pANTLR3_BASE_RECOGNIZER rec, pANTLR3_INT_STREAM is, pANTLR3_CYCLIC_DFA cdfa);
600*16467b97STreehugger Robot 
601*16467b97STreehugger Robot ANTLR3_API pANTLR3_COMMON_TREE_NODE_STREAM  antlr3CommonTreeNodeStreamNewTree   (pANTLR3_BASE_TREE tree, ANTLR3_UINT32 hint);
602*16467b97STreehugger Robot ANTLR3_API pANTLR3_COMMON_TREE_NODE_STREAM  antlr3CommonTreeNodeStreamNew       (pANTLR3_STRING_FACTORY strFactory, ANTLR3_UINT32 hint);
603*16467b97STreehugger Robot ANTLR3_API pANTLR3_COMMON_TREE_NODE_STREAM  antlr3UnbufTreeNodeStreamNewTree    (pANTLR3_BASE_TREE tree, ANTLR3_UINT32 hint);
604*16467b97STreehugger Robot ANTLR3_API pANTLR3_COMMON_TREE_NODE_STREAM  antlr3UnbufTreeNodeStreamNew        (pANTLR3_STRING_FACTORY strFactory, ANTLR3_UINT32 hint);
605*16467b97STreehugger Robot ANTLR3_API pANTLR3_COMMON_TREE_NODE_STREAM  antlr3CommonTreeNodeStreamNewStream (pANTLR3_COMMON_TREE_NODE_STREAM inStream);
606*16467b97STreehugger Robot ANTLR3_API pANTLR3_TREE_NODE_STREAM         antlr3TreeNodeStreamNew             ();
607*16467b97STreehugger Robot ANTLR3_API void				    fillBufferExt                       (pANTLR3_COMMON_TOKEN_STREAM tokenStream);
608*16467b97STreehugger Robot 
609*16467b97STreehugger Robot ANTLR3_API pANTLR3_REWRITE_RULE_TOKEN_STREAM
610*16467b97STreehugger Robot     antlr3RewriteRuleTOKENStreamNewAE	(pANTLR3_BASE_TREE_ADAPTOR adaptor, pANTLR3_BASE_RECOGNIZER rec, pANTLR3_UINT8 description);
611*16467b97STreehugger Robot ANTLR3_API pANTLR3_REWRITE_RULE_TOKEN_STREAM
612*16467b97STreehugger Robot     antlr3RewriteRuleTOKENStreamNewAEE	(pANTLR3_BASE_TREE_ADAPTOR adaptor, pANTLR3_BASE_RECOGNIZER rec, pANTLR3_UINT8 description, void * oneElement);
613*16467b97STreehugger Robot ANTLR3_API pANTLR3_REWRITE_RULE_TOKEN_STREAM
614*16467b97STreehugger Robot     antlr3RewriteRuleTOKENStreamNewAEV	(pANTLR3_BASE_TREE_ADAPTOR adaptor, pANTLR3_BASE_RECOGNIZER rec, pANTLR3_UINT8 description, pANTLR3_VECTOR vector);
615*16467b97STreehugger Robot 
616*16467b97STreehugger Robot ANTLR3_API pANTLR3_REWRITE_RULE_NODE_STREAM
617*16467b97STreehugger Robot     antlr3RewriteRuleNODEStreamNewAE	(pANTLR3_BASE_TREE_ADAPTOR adaptor, pANTLR3_BASE_RECOGNIZER rec, pANTLR3_UINT8 description);
618*16467b97STreehugger Robot ANTLR3_API pANTLR3_REWRITE_RULE_NODE_STREAM
619*16467b97STreehugger Robot     antlr3RewriteRuleNODEStreamNewAEE	(pANTLR3_BASE_TREE_ADAPTOR adaptor, pANTLR3_BASE_RECOGNIZER rec, pANTLR3_UINT8 description, void * oneElement);
620*16467b97STreehugger Robot ANTLR3_API pANTLR3_REWRITE_RULE_NODE_STREAM
621*16467b97STreehugger Robot     antlr3RewriteRuleNODEStreamNewAEV	(pANTLR3_BASE_TREE_ADAPTOR adaptor, pANTLR3_BASE_RECOGNIZER rec, pANTLR3_UINT8 description, pANTLR3_VECTOR vector);
622*16467b97STreehugger Robot 
623*16467b97STreehugger Robot ANTLR3_API pANTLR3_REWRITE_RULE_SUBTREE_STREAM
624*16467b97STreehugger Robot     antlr3RewriteRuleSubtreeStreamNewAE	(pANTLR3_BASE_TREE_ADAPTOR adaptor, pANTLR3_BASE_RECOGNIZER rec, pANTLR3_UINT8 description);
625*16467b97STreehugger Robot ANTLR3_API pANTLR3_REWRITE_RULE_SUBTREE_STREAM
626*16467b97STreehugger Robot     antlr3RewriteRuleSubtreeStreamNewAEE(pANTLR3_BASE_TREE_ADAPTOR adaptor, pANTLR3_BASE_RECOGNIZER rec, pANTLR3_UINT8 description, void * oneElement);
627*16467b97STreehugger Robot ANTLR3_API pANTLR3_REWRITE_RULE_SUBTREE_STREAM
628*16467b97STreehugger Robot     antlr3RewriteRuleSubtreeStreamNewAEV(pANTLR3_BASE_TREE_ADAPTOR adaptor, pANTLR3_BASE_RECOGNIZER rec, pANTLR3_UINT8 description, pANTLR3_VECTOR vector);
629*16467b97STreehugger Robot 
630*16467b97STreehugger Robot ANTLR3_API pANTLR3_DEBUG_EVENT_LISTENER antlr3DebugListenerNew();
631*16467b97STreehugger Robot 
632*16467b97STreehugger Robot #ifdef __cplusplus
633*16467b97STreehugger Robot }
634*16467b97STreehugger Robot #endif
635*16467b97STreehugger Robot 
636*16467b97STreehugger Robot #endif	/* _ANTLR3DEFS_H	*/
637