1324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/** \file
2324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * Basic type and constant definitions for ANTLR3 Runtime.
3324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver */
4324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifndef	_ANTLR3DEFS_H
5324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define	_ANTLR3DEFS_H
6324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
7324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// [The "BSD licence"]
8324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// Copyright (c) 2005-2009 Jim Idle, Temporal Wave LLC
9324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// http://www.temporal-wave.com
10324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// http://www.linkedin.com/in/jimidle
11324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver//
12324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// All rights reserved.
13324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver//
14324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// Redistribution and use in source and binary forms, with or without
15324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// modification, are permitted provided that the following conditions
16324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// are met:
17324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// 1. Redistributions of source code must retain the above copyright
18324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver//    notice, this list of conditions and the following disclaimer.
19324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// 2. Redistributions in binary form must reproduce the above copyright
20324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver//    notice, this list of conditions and the following disclaimer in the
21324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver//    documentation and/or other materials provided with the distribution.
22324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// 3. The name of the author may not be used to endorse or promote products
23324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver//    derived from this software without specific prior written permission.
24324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver//
25324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
26324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
27324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
28324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
29324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
30324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
31324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
32324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
33324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
34324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
36324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* Following are for generated code, they are not referenced internally!!!
37324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver */
38324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#if !defined(ANTLR3_HUGE) && !defined(ANTLR3_AVERAGE) && !defined(ANTLR3_SMALL)
39324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define	ANTLR3_AVERAGE
40324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
41324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
42324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifdef	ANTLR3_HUGE
43324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifndef	ANTLR3_SIZE_HINT
44324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define	ANTLR3_SIZE_HINT        2049
45324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
46324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifndef	ANTLR3_LIST_SIZE_HINT
47324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define	ANTLR3_LIST_SIZE_HINT   127
48324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
49324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
50324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
51324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifdef	ANTLR3_AVERAGE
52324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifndef	ANTLR3_SIZE_HINT
53324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define	ANTLR3_SIZE_HINT        1025
54324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define	ANTLR3_LIST_SIZE_HINT   63
55324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
56324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
57324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
58324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifdef	ANTLR3_SMALL
59324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifndef	ANTLR3_SIZE_HINT
60324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define	ANTLR3_SIZE_HINT        211
61324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define	ANTLR3_LIST_SIZE_HINT   31
62324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
63324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
64324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
65324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// Definitions that indicate the encoding scheme character streams and strings etc
66324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver//
67324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/// Indicates Big Endian for encodings where this makes sense
68324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver///
69324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define ANTLR3_BE           1
70324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
71324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/// Indicates Little Endian for encoidngs where this makes sense
72324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver///
73324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define ANTLR3_LE           2
74324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
75324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/// General latin-1 or other 8 bit encoding scheme such as straight ASCII
76324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver///
77324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define ANTLR3_ENC_8BIT     4
78324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
79324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/// UTF-8 encoding scheme
80324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver///
81324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define ANTLR3_ENC_UTF8     8
82324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
83324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/// UTF-16 encoding scheme (which also covers UCS2 as that does not have surrogates)
84324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver///
85324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define ANTLR3_ENC_UTF16        16
86324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define ANTLR3_ENC_UTF16BE      16 + ANTLR3_BE
87324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define ANTLR3_ENC_UTF16LE      16 + ANTLR3_LE
88324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
89324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/// UTF-32 encoding scheme (basically straight 32 bit)
90324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver///
91324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define ANTLR3_ENC_UTF32        32
92324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define ANTLR3_ENC_UTF32BE      32 + ANTLR3_BE
93324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define ANTLR3_ENC_UTF32LE      32 + ANTLR3_LE
94324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
95324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/// Input is 8 bit EBCDIC (which we convert to 8 bit ASCII on the fly
96324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver///
97324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define ANTLR3_ENC_EBCDIC       64
98324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
99324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* Common definitions come first
100324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver */
101324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#include    <antlr3errors.h>
102324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
103324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* Work out what operating system/compiler this is. We just do this once
104324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * here and use an internal symbol after this.
105324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver */
106324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifdef	_WIN64
107324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
108324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver# ifndef	ANTLR3_WINDOWS
109324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#   define	ANTLR3_WINDOWS
110324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver# endif
111324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver# define	ANTLR3_WIN64
112324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver# define	ANTLR3_USE_64BIT
113324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
114324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#else
115324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
116324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifdef	_WIN32
117324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver# ifndef	ANTLR3_WINDOWS
118324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#  define	ANTLR3_WINDOWS
119324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver# endif
120324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
121324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define	ANTLR3_WIN32
122324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
123324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
124324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
125324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
126324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifdef	ANTLR3_WINDOWS
127324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
128324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifndef WIN32_LEAN_AND_MEAN
129324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define	WIN32_LEAN_AND_MEAN
130324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
131324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
132324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* Allow VC 8 (vs2005) and above to use 'secure' versions of various functions such as sprintf
133324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver */
134324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifndef	_CRT_SECURE_NO_DEPRECATE
135324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define	_CRT_SECURE_NO_DEPRECATE
136324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
137324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
138324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#include    <windows.h>
139324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#include    <stdlib.h>
140324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#include    <winsock.h>
141324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#include    <stdio.h>
142324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#include    <sys/types.h>
143324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#include    <sys/stat.h>
144324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#include    <stdarg.h>
145324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
146324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define	ANTLR3_API      __declspec(dllexport)
147324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define	ANTLR3_CDECL    __cdecl
148324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define ANTLR3_FASTCALL __fastcall
149324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
150324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifdef __cplusplus
151324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverextern "C" {
152324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
153324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
154324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifndef __MINGW32__
155324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// Standard Windows types
156324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver//
157324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef	INT32	ANTLR3_CHAR,	*pANTLR3_CHAR;
158324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef	UINT32	ANTLR3_UCHAR,	*pANTLR3_UCHAR;
159324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
160324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef	INT8	ANTLR3_INT8,	*pANTLR3_INT8;
161324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef	INT16	ANTLR3_INT16,	*pANTLR3_INT16;
162324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef	INT32	ANTLR3_INT32,	*pANTLR3_INT32;
163324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef	INT64	ANTLR3_INT64,	*pANTLR3_INT64;
164324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef	UINT8	ANTLR3_UINT8,	*pANTLR3_UINT8;
165324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef	UINT16	ANTLR3_UINT16,	*pANTLR3_UINT16;
166324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef	UINT32	ANTLR3_UINT32,	*pANTLR3_UINT32;
167324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef	UINT64	ANTLR3_UINT64,	*pANTLR3_UINT64;
168324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef UINT64  ANTLR3_BITWORD, *pANTLR3_BITWORD;
169324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef	UINT8	ANTLR3_BOOLEAN, *pANTLR3_BOOLEAN;
170324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
171324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#else
172324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// Mingw uses stdint.h and fails to define standard Microsoft typedefs
173324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// such as UINT16, hence we must use stdint.h for Mingw.
174324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver//
175324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#include <stdint.h>
176324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef int32_t     ANTLR3_CHAR,    *pANTLR3_CHAR;
177324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef uint32_t    ANTLR3_UCHAR,   *pANTLR3_UCHAR;
178324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
179324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef int8_t	    ANTLR3_INT8,    *pANTLR3_INT8;
180324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef int16_t	    ANTLR3_INT16,   *pANTLR3_INT16;
181324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef int32_t	    ANTLR3_INT32,   *pANTLR3_INT32;
182324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef int64_t	    ANTLR3_INT64,   *pANTLR3_INT64;
183324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
184324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef uint8_t	    ANTLR3_UINT8,   *pANTLR3_UINT8;
185324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef uint16_t    ANTLR3_UINT16,  *pANTLR3_UINT16;
186324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef uint32_t    ANTLR3_UINT32,  *pANTLR3_UINT32;
187324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef uint64_t    ANTLR3_UINT64,  *pANTLR3_UINT64;
188324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef uint64_t    ANTLR3_BITWORD, *pANTLR3_BITWORD;
189324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
190324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef	uint8_t	    ANTLR3_BOOLEAN, *pANTLR3_BOOLEAN;
191324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
192324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
193324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
194324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
195324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
196324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define	ANTLR3_UINT64_LIT(lit)  lit##ULL
197324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
198324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define	ANTLR3_INLINE	        __inline
199324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
200324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef FILE *	    ANTLR3_FDSC;
201324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef	struct stat ANTLR3_FSTAT_STRUCT;
202324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
203324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifdef	ANTLR3_USE_64BIT
204324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define	ANTLR3_FUNC_PTR(ptr)	(void *)((ANTLR3_UINT64)(ptr))
205324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define ANTLR3_UINT64_CAST(ptr) (ANTLR3_UINT64)(ptr))
206324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define	ANTLR3_UINT32_CAST(ptr)	(ANTLR3_UINT32)((ANTLR3_UINT64)(ptr))
207324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef ANTLR3_INT64		ANTLR3_MARKER;
208324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef ANTLR3_UINT64		ANTLR3_INTKEY;
209324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#else
210324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define	ANTLR3_FUNC_PTR(ptr)	(void *)((ANTLR3_UINT32)(ptr))
211324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define ANTLR3_UINT64_CAST(ptr) (ANTLR3_UINT64)((ANTLR3_UINT32)(ptr))
212324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define	ANTLR3_UINT32_CAST(ptr)	(ANTLR3_UINT32)(ptr)
213324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef	ANTLR3_INT32		ANTLR3_MARKER;
214324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef ANTLR3_UINT32		ANTLR3_INTKEY;
215324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
216324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
217324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifdef	ANTLR3_WIN32
218324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
219324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
220324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifdef	ANTLR3_WIN64
221324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
222324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
223324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
224324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef	int			ANTLR3_SALENT;								// Type used for size of accept structure
225324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef struct sockaddr_in	ANTLR3_SOCKADDRT, * pANTLR3_SOCKADDRT;	// Type used for socket address declaration
226324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef struct sockaddr		ANTLR3_SOCKADDRC, * pANTLR3_SOCKADDRC;	// Type used for cast on accept()
227324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
228324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define	ANTLR3_CLOSESOCKET	closesocket
229324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
230324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifdef __cplusplus
231324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver}
232324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
233324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
234324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* Warnings that are over-zealous such as complaining about strdup, we
235324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * can turn off.
236324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver */
237324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
238324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* Don't complain about "deprecated" functions such as strdup
239324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver */
240324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#pragma warning( disable : 4996 )
241324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
242324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#else
243324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
244324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* Include configure generated header file
245324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver */
246324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#include	<antlr3config.h>
247324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
248324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#include <stdio.h>
249324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
250324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#if HAVE_STDINT_H
251324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver# include <stdint.h>
252324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
253324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
254324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#if HAVE_SYS_TYPES_H
255324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver# include <sys/types.h>
256324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
257324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
258324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#if HAVE_SYS_STAT_H
259324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver# include <sys/stat.h>
260324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
261324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
262324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#if STDC_HEADERS
263324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver# include   <stdlib.h>
264324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver# include   <stddef.h>
265324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver# include   <stdarg.h>
266324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#else
267324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver# if HAVE_STDLIB_H
268324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#  include  <stdlib.h>
269324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver# endif
270324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver# if HAVE_STDARG_H
271324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#  include  <stdarg.h>
272324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver# endif
273324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
274324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
275324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#if HAVE_STRING_H
276324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver# if !STDC_HEADERS && HAVE_MEMORY_H
277324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#  include <memory.h>
278324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver# endif
279324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver# include <string.h>
280324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
281324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
282324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#if HAVE_STRINGS_H
283324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver# include <strings.h>
284324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
285324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
286324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#if HAVE_INTTYPES_H
287324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver# include <inttypes.h>
288324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
289324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
290324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#if HAVE_UNISTD_H
291324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver# include <unistd.h>
292324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
293324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
294324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifdef HAVE_NETINET_IN_H
295324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#include	<netinet/in.h>
296324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
297324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
298324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifdef HAVE_SOCKET_H
299324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver# include	<socket.h>
300324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#else
301324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver# if HAVE_SYS_SOCKET_H
302324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#  include	<sys/socket.h>
303324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver# endif
304324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
305324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
306324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifdef HAVE_NETINET_TCP_H
307324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#include	<netinet/tcp.h>
308324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
309324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
310324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifdef HAVE_ARPA_NAMESER_H
311324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#include <arpa/nameser.h> /* DNS HEADER struct */
312324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
313324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
314324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifdef HAVE_NETDB_H
315324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#include <netdb.h>
316324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
317324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
318324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
319324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifdef HAVE_SYS_RESOLVE_H
320324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#include	<sys/resolv.h>
321324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
322324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
323324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifdef HAVE_RESOLVE_H
324324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#include	<resolv.h>
325324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
326324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
327324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
328324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifdef	HAVE_MALLOC_H
329324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver# include    <malloc.h>
330324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#else
331324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver# ifdef	HAVE_SYS_MALLOC_H
332324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#  include    <sys/malloc.h>
333324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver# endif
334324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
335324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
336324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifdef  HAVE_CTYPE_H
337324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver# include   <ctype.h>
338324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
339324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
340324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* Some platforms define a macro, index() in string.h. AIX is
341324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * one of these for instance. We must get rid of that definition
342324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * as we use ->index all over the place. defining macros like this in system header
343324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * files is a really bad idea, but I doubt that IBM will listen to me ;-)
344324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver */
345324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifdef	index
346324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#undef	index
347324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
348324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
349324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define _stat   stat
350324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
351324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// SOCKET not defined on Unix
352324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver//
353324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef	int	SOCKET;
354324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
355324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define ANTLR3_API
356324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define	ANTLR3_CDECL
357324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define ANTLR3_FASTCALL
358324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
359324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifdef	__hpux
360324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
361324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver // HPUX is always different usually for no good reason. Tru64 should have kicked it
362324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver // into touch and everyone knows it ;-)
363324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver //
364324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver typedef struct sockaddr_in ANTLR3_SOCKADDRT, * pANTLR3_SOCKADDRT;	// Type used for socket address declaration
365324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver typedef void *		    pANTLR3_SOCKADDRC;				// Type used for cast on accept()
366324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver typedef int		    ANTLR3_SALENT;
367324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
368324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#else
369324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
370324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver# if defined(_AIX) || __GNUC__ > 3
371324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
372324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver   typedef  socklen_t   ANTLR3_SALENT;
373324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
374324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver# else
375324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
376324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver   typedef  size_t	ANTLR3_SALENT;
377324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
378324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver# endif
379324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
380324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver   typedef struct sockaddr_in   ANTLR3_SOCKADDRT, * pANTLR3_SOCKADDRT;	// Type used for socket address declaration
381324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver   typedef struct sockaddr	* pANTLR3_SOCKADDRC;                    // Type used for cast on accept()
382324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
383324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
384324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
385324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define INVALID_SOCKET      ((SOCKET)-1)
386324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define	ANTLR3_CLOSESOCKET  close
387324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
388324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifdef __cplusplus
389324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverextern "C" {
390324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
391324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
392324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* Inherit type definitions for autoconf
393324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver */
394324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef int32_t	    ANTLR3_CHAR,    *pANTLR3_CHAR;
395324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef uint32_t    ANTLR3_UCHAR,   *pANTLR3_UCHAR;
396324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
397324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef int8_t	    ANTLR3_INT8,    *pANTLR3_INT8;
398324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef int16_t	    ANTLR3_INT16,   *pANTLR3_INT16;
399324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef int32_t	    ANTLR3_INT32,   *pANTLR3_INT32;
400324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef int64_t	    ANTLR3_INT64,   *pANTLR3_INT64;
401324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
402324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef uint8_t	    ANTLR3_UINT8,   *pANTLR3_UINT8;
403324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef uint16_t    ANTLR3_UINT16,  *pANTLR3_UINT16;
404324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef uint32_t    ANTLR3_UINT32,  *pANTLR3_UINT32;
405324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef uint64_t    ANTLR3_UINT64,  *pANTLR3_UINT64;
406324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef uint64_t    ANTLR3_BITWORD, *pANTLR3_BITWORD;
407324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
408324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef uint32_t    ANTLR3_BOOLEAN, *pANTLR3_BOOLEAN;
409324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
410324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define ANTLR3_INLINE   inline
411324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define	ANTLR3_API
412324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
413324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef FILE *	    ANTLR3_FDSC;
414324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef	struct stat ANTLR3_FSTAT_STRUCT;
415324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
416324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifdef	ANTLR3_USE_64BIT
417324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define	ANTLR3_FUNC_PTR(ptr)    (void *)((ANTLR3_UINT64)(ptr))
418324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define ANTLR3_UINT64_CAST(ptr)	(ANTLR3_UINT64)(ptr))
419324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define	ANTLR3_UINT32_CAST(ptr) (ANTLR3_UINT32)((ANTLR3_UINT64)(ptr))
420324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef ANTLR3_INT64		ANTLR3_MARKER;
421324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef ANTLR3_UINT64		ANTLR3_INTKEY;
422324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#else
423324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define	ANTLR3_FUNC_PTR(ptr)	(void *)((ANTLR3_UINT32)(ptr))
424324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define ANTLR3_UINT64_CAST(ptr) (ANTLR3_UINT64)((ANTLR3_UINT32)(ptr))
425324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define	ANTLR3_UINT32_CAST(ptr)	(ANTLR3_UINT32)(ptr)
426324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef	ANTLR3_INT32		ANTLR3_MARKER;
427324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruvertypedef ANTLR3_UINT32		ANTLR3_INTKEY;
428324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
429324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define	ANTLR3_UINT64_LIT(lit)	lit##ULL
430324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
431324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifdef __cplusplus
432324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver}
433324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
434324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
435324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
436324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
437324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifdef ANTLR3_USE_64BIT
438324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define ANTLR3_TRIE_DEPTH 63
439324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#else
440324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define ANTLR3_TRIE_DEPTH 31
441324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
442324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* Pre declare the typedefs for all the interfaces, then
443324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * they can be inter-dependant and we will let the linker
444324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver * sort it out for us.
445324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver */
446324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#include    <antlr3interfaces.h>
447324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
448324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver// Include the unicode.org conversion library header.
449324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver//
450324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#include    <antlr3convertutf.h>
451324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
452324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/* Prototypes
453324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver */
454324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifndef ANTLR3_MALLOC
455324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/// Default definition of ANTLR3_MALLOC. You can override this before including
456324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/// antlr3.h if you wish to use your own implementation.
457324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver///
458324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define	ANTLR3_MALLOC(request)          malloc  ((size_t)(request))
459324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
460324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
461324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifndef ANTLR3_CALLOC
462324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/// Default definition of ANTLR3_CALLOC. You can override this before including
463324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/// antlr3.h if you wish to use your own implementation.
464324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver///
465324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define	ANTLR3_CALLOC(numEl, elSize)    calloc  (numEl, (size_t)(elSize))
466324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
467324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
468324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifndef ANTLR3_REALLOC
469324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/// Default definition of ANTLR3_REALLOC. You can override this before including
470324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/// antlr3.h if you wish to use your own implementation.
471324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver///
472324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define ANTLR3_REALLOC(current, request)    realloc ((void *)(current), (size_t)(request))
473324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
474324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifndef ANTLR3_FREE
475324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/// Default definition of ANTLR3_FREE. You can override this before including
476324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/// antlr3.h if you wish to use your own implementation.
477324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver///
478324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define	ANTLR3_FREE(ptr)		free    ((void *)(ptr))
479324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
480324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifndef ANTLR3_FREE_FUNC
481324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/// Default definition of ANTLR3_FREE_FUNC. You can override this before including
482324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/// antlr3.h if you wish to use your own implementation.
483324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver///
484324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define	ANTLR3_FREE_FUNC		free
485324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
486324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifndef ANTLR3_STRDUP
487324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/// Default definition of ANTLR3_STRDUP. You can override this before including
488324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/// antlr3.h if you wish to use your own implementation.
489324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver///
490324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define	ANTLR3_STRDUP(instr)		(pANTLR3_UINT8)(strdup  ((const char *)(instr)))
491324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
492324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifndef ANTLR3_MEMCPY
493324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/// Default definition of ANTLR3_MEMCPY. You can override this before including
494324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/// antlr3.h if you wish to use your own implementation.
495324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver///
496324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define	ANTLR3_MEMCPY(target, source, size) memcpy((void *)(target), (const void *)(source), (size_t)(size))
497324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
498324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifndef ANTLR3_MEMMOVE
499324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/// Default definition of ANTLR3_MEMMOVE. You can override this before including
500324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/// antlr3.h if you wish to use your own implementation.
501324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver///
502324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define	ANTLR3_MEMMOVE(target, source, size)    memmove((void *)(target), (const void *)(source), (size_t)(size))
503324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
504324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifndef ANTLR3_MEMSET
505324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/// Default definition of ANTLR3_MEMSET. You can override this before including
506324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/// antlr3.h if you wish to use your own implementation.
507324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver///
508324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define	ANTLR3_MEMSET(target, byte, size)   memset((void *)(target), (int)(byte), (size_t)(size))
509324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
510324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
511324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifndef	ANTLR3_PRINTF
512324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/// Default definition of printf, set this to something other than printf before including antlr3.h
513324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/// if your system does not have a printf. Note that you can define this to be <code>//</code>
514324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/// without harming the runtime.
515324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver///
516324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define	ANTLR3_PRINTF   printf
517324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
518324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
519324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifndef	ANTLR3_FPRINTF
520324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/// Default definition of fprintf, set this to something other than fprintf before including antlr3.h
521324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/// if your system does not have a fprintf. Note that you can define this to be <code>//</code>
522324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver/// without harming the runtime.
523324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver///
524324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#define	ANTLR3_FPRINTF	fprintf
525324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
526324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
527324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifdef __cplusplus
528324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruverextern "C" {
529324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
530324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
531324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_INT_TRIE antlr3IntTrieNew    (ANTLR3_UINT32 depth);
532324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
533324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_BITSET   antlr3BitsetNew	(ANTLR3_UINT32 numBits);
534324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_BITSET   antlr3BitsetOf	(ANTLR3_INT32 bit, ...);
535324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_BITSET   antlr3BitsetList	(pANTLR3_HASH_TABLE list);
536324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_BITSET   antlr3BitsetCopy	(pANTLR3_BITSET_LIST blist);
537324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_BITSET   antlr3BitsetLoad    (pANTLR3_BITSET_LIST blist);
538324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API void             antlr3BitsetSetAPI  (pANTLR3_BITSET bitset);
539324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
540324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
541324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_BASE_RECOGNIZER  antlr3BaseRecognizerNew                     (ANTLR3_UINT32 type, ANTLR3_UINT32 sizeHint, pANTLR3_RECOGNIZER_SHARED_STATE state);
542324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API void			    antlr3RecognitionExceptionNew               (pANTLR3_BASE_RECOGNIZER recognizer);
543324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API void			    antlr3MTExceptionNew                        (pANTLR3_BASE_RECOGNIZER recognizer);
544324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API void			    antlr3MTNExceptionNew                       (pANTLR3_BASE_RECOGNIZER recognizer);
545324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_HASH_TABLE	    antlr3HashTableNew                          (ANTLR3_UINT32 sizeHint);
546324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API ANTLR3_UINT32	    antlr3Hash                                  (void * key, ANTLR3_UINT32 keylen);
547324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_HASH_ENUM	    antlr3EnumNew                               (pANTLR3_HASH_TABLE table);
548324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_LIST		    antlr3ListNew                               (ANTLR3_UINT32 sizeHint);
549324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_VECTOR_FACTORY   antlr3VectorFactoryNew                      (ANTLR3_UINT32 sizeHint);
550324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_VECTOR	    antlr3VectorNew                             (ANTLR3_UINT32 sizeHint);
551324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_STACK	    antlr3StackNew                              (ANTLR3_UINT32 sizeHint);
552324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API void                     antlr3SetVectorApi                          (pANTLR3_VECTOR vector, ANTLR3_UINT32 sizeHint);
553324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API ANTLR3_UCHAR		    antlr3c8toAntlrc                            (ANTLR3_INT8 inc);
554324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_TOPO             antlr3TopoNew();
555324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
556324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_EXCEPTION	    antlr3ExceptionNew                          (ANTLR3_UINT32 exception, void * name, void * message, ANTLR3_BOOLEAN freeMessage);
557324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
558324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
559324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_INPUT_STREAM     antlr3FileStreamNew                         (pANTLR3_UINT8 fileName, ANTLR3_UINT32 encoding);
560324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_INPUT_STREAM     antlr3StringStreamNew                       (pANTLR3_UINT8 data, ANTLR3_UINT32 encoding, ANTLR3_UINT32 size, pANTLR3_UINT8 name);
561324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
562324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_INT_STREAM	    antlr3IntStreamNew                          (void);
563324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
564324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_STRING_FACTORY   antlr3StringFactoryNew                      (ANTLR3_UINT32 encoding);
565324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
566324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_COMMON_TOKEN	    antlr3CommonTokenNew                        (ANTLR3_UINT32 ttype);
567324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_TOKEN_FACTORY    antlr3TokenFactoryNew                       (pANTLR3_INPUT_STREAM input);
568324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API void			    antlr3SetTokenAPI                           (pANTLR3_COMMON_TOKEN token);
569324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
570324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_LEXER	    antlr3LexerNewStream                        (ANTLR3_UINT32 sizeHint, pANTLR3_INPUT_STREAM input, pANTLR3_RECOGNIZER_SHARED_STATE state);
571324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_LEXER	    antlr3LexerNew                              (ANTLR3_UINT32 sizeHint, pANTLR3_RECOGNIZER_SHARED_STATE state);
572324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_PARSER	    antlr3ParserNewStreamDbg                    (ANTLR3_UINT32 sizeHint, pANTLR3_TOKEN_STREAM tstream, pANTLR3_DEBUG_EVENT_LISTENER dbg, pANTLR3_RECOGNIZER_SHARED_STATE state);
573324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_PARSER	    antlr3ParserNewStream                       (ANTLR3_UINT32 sizeHint, pANTLR3_TOKEN_STREAM tstream, pANTLR3_RECOGNIZER_SHARED_STATE state);
574324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_PARSER           antlr3ParserNew                             (ANTLR3_UINT32 sizeHint, pANTLR3_RECOGNIZER_SHARED_STATE state);
575324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
576324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_COMMON_TOKEN_STREAM  antlr3CommonTokenStreamSourceNew        (ANTLR3_UINT32 hint, pANTLR3_TOKEN_SOURCE source);
577324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_COMMON_TOKEN_STREAM	antlr3CommonTokenStreamNew              (ANTLR3_UINT32 hint);
578324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_COMMON_TOKEN_STREAM	antlr3CommonTokenDebugStreamSourceNew   (ANTLR3_UINT32 hint, pANTLR3_TOKEN_SOURCE source, pANTLR3_DEBUG_EVENT_LISTENER debugger);
579324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
580324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_BASE_TREE_ADAPTOR	ANTLR3_TREE_ADAPTORNew                  (pANTLR3_STRING_FACTORY strFactory);
581324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_BASE_TREE_ADAPTOR	ANTLR3_TREE_ADAPTORDebugNew             (pANTLR3_STRING_FACTORY strFactory, pANTLR3_DEBUG_EVENT_LISTENER	debugger);
582324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_COMMON_TREE		antlr3CommonTreeNew                     (void);
583324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_COMMON_TREE		antlr3CommonTreeNewFromTree             (pANTLR3_COMMON_TREE tree);
584324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_COMMON_TREE		antlr3CommonTreeNewFromToken            (pANTLR3_COMMON_TOKEN tree);
585324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_ARBORETUM		antlr3ArboretumNew                      (pANTLR3_STRING_FACTORY factory);
586324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API void				antlr3SetCTAPI                          (pANTLR3_COMMON_TREE tree);
587324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_BASE_TREE		antlr3BaseTreeNew                       (pANTLR3_BASE_TREE tree);
588324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
589324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API void				antlr3BaseTreeAdaptorInit               (pANTLR3_BASE_TREE_ADAPTOR adaptor, pANTLR3_DEBUG_EVENT_LISTENER debugger);
590324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
591324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_TREE_PARSER		antlr3TreeParserNewStream               (ANTLR3_UINT32 sizeHint, pANTLR3_COMMON_TREE_NODE_STREAM ctnstream, pANTLR3_RECOGNIZER_SHARED_STATE state);
592324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
593324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API ANTLR3_INT32			antlr3dfaspecialTransition              (void * ctx, pANTLR3_BASE_RECOGNIZER rec, pANTLR3_INT_STREAM is, pANTLR3_CYCLIC_DFA dfa, ANTLR3_INT32 s);
594324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API ANTLR3_INT32			antlr3dfaspecialStateTransition         (void * ctx, pANTLR3_BASE_RECOGNIZER rec, pANTLR3_INT_STREAM is, pANTLR3_CYCLIC_DFA dfa, ANTLR3_INT32 s);
595324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API ANTLR3_INT32			antlr3dfapredict                        (void * ctx, pANTLR3_BASE_RECOGNIZER rec, pANTLR3_INT_STREAM is, pANTLR3_CYCLIC_DFA cdfa);
596324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
597324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_COMMON_TREE_NODE_STREAM  antlr3CommonTreeNodeStreamNewTree   (pANTLR3_BASE_TREE tree, ANTLR3_UINT32 hint);
598324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_COMMON_TREE_NODE_STREAM  antlr3CommonTreeNodeStreamNew       (pANTLR3_STRING_FACTORY strFactory, ANTLR3_UINT32 hint);
599324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_COMMON_TREE_NODE_STREAM  antlr3UnbufTreeNodeStreamNewTree    (pANTLR3_BASE_TREE tree, ANTLR3_UINT32 hint);
600324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_COMMON_TREE_NODE_STREAM  antlr3UnbufTreeNodeStreamNew        (pANTLR3_STRING_FACTORY strFactory, ANTLR3_UINT32 hint);
601324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_COMMON_TREE_NODE_STREAM  antlr3CommonTreeNodeStreamNewStream (pANTLR3_COMMON_TREE_NODE_STREAM inStream);
602324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_TREE_NODE_STREAM         antlr3TreeNodeStreamNew             ();
603324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API void				    fillBufferExt                       (pANTLR3_COMMON_TOKEN_STREAM tokenStream);
604324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
605324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_REWRITE_RULE_TOKEN_STREAM
606324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    antlr3RewriteRuleTOKENStreamNewAE	(pANTLR3_BASE_TREE_ADAPTOR adaptor, pANTLR3_BASE_RECOGNIZER rec, pANTLR3_UINT8 description);
607324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_REWRITE_RULE_TOKEN_STREAM
608324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    antlr3RewriteRuleTOKENStreamNewAEE	(pANTLR3_BASE_TREE_ADAPTOR adaptor, pANTLR3_BASE_RECOGNIZER rec, pANTLR3_UINT8 description, void * oneElement);
609324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_REWRITE_RULE_TOKEN_STREAM
610324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    antlr3RewriteRuleTOKENStreamNewAEV	(pANTLR3_BASE_TREE_ADAPTOR adaptor, pANTLR3_BASE_RECOGNIZER rec, pANTLR3_UINT8 description, pANTLR3_VECTOR vector);
611324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
612324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_REWRITE_RULE_NODE_STREAM
613324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    antlr3RewriteRuleNODEStreamNewAE	(pANTLR3_BASE_TREE_ADAPTOR adaptor, pANTLR3_BASE_RECOGNIZER rec, pANTLR3_UINT8 description);
614324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_REWRITE_RULE_NODE_STREAM
615324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    antlr3RewriteRuleNODEStreamNewAEE	(pANTLR3_BASE_TREE_ADAPTOR adaptor, pANTLR3_BASE_RECOGNIZER rec, pANTLR3_UINT8 description, void * oneElement);
616324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_REWRITE_RULE_NODE_STREAM
617324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    antlr3RewriteRuleNODEStreamNewAEV	(pANTLR3_BASE_TREE_ADAPTOR adaptor, pANTLR3_BASE_RECOGNIZER rec, pANTLR3_UINT8 description, pANTLR3_VECTOR vector);
618324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
619324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_REWRITE_RULE_SUBTREE_STREAM
620324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    antlr3RewriteRuleSubtreeStreamNewAE	(pANTLR3_BASE_TREE_ADAPTOR adaptor, pANTLR3_BASE_RECOGNIZER rec, pANTLR3_UINT8 description);
621324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_REWRITE_RULE_SUBTREE_STREAM
622324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    antlr3RewriteRuleSubtreeStreamNewAEE(pANTLR3_BASE_TREE_ADAPTOR adaptor, pANTLR3_BASE_RECOGNIZER rec, pANTLR3_UINT8 description, void * oneElement);
623324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_REWRITE_RULE_SUBTREE_STREAM
624324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver    antlr3RewriteRuleSubtreeStreamNewAEV(pANTLR3_BASE_TREE_ADAPTOR adaptor, pANTLR3_BASE_RECOGNIZER rec, pANTLR3_UINT8 description, pANTLR3_VECTOR vector);
625324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
626324c4644fee44b9898524c09511bd33c3f12e2dfBen GruverANTLR3_API pANTLR3_DEBUG_EVENT_LISTENER antlr3DebugListenerNew();
627324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
628324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#ifdef __cplusplus
629324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver}
630324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif
631324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver
632324c4644fee44b9898524c09511bd33c3f12e2dfBen Gruver#endif	/* _ANTLR3DEFS_H	*/
633