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