/** \file
* Basic type and constant definitions for ANTLR3 Runtime.
*/
#ifndef _ANTLR3DEFS_H
#define _ANTLR3DEFS_H
// [The "BSD licence"]
// Copyright (c) 2005-2009 Jim Idle, Temporal Wave LLC
// http://www.temporal-wave.com
// http://www.linkedin.com/in/jimidle
//
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions
// are met:
// 1. Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// 2. Redistributions in binary form must reproduce the above copyright
// notice, this list of conditions and the following disclaimer in the
// documentation and/or other materials provided with the distribution.
// 3. The name of the author may not be used to endorse or promote products
// derived from this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
/* Following are for generated code, they are not referenced internally!!!
*/
#if !defined(ANTLR3_HUGE) && !defined(ANTLR3_AVERAGE) && !defined(ANTLR3_SMALL)
#define ANTLR3_AVERAGE
#endif
#ifdef ANTLR3_HUGE
#ifndef ANTLR3_SIZE_HINT
#define ANTLR3_SIZE_HINT 2049
#endif
#ifndef ANTLR3_LIST_SIZE_HINT
#define ANTLR3_LIST_SIZE_HINT 127
#endif
#endif
#ifdef ANTLR3_AVERAGE
#ifndef ANTLR3_SIZE_HINT
#define ANTLR3_SIZE_HINT 1025
#define ANTLR3_LIST_SIZE_HINT 63
#endif
#endif
#ifdef ANTLR3_SMALL
#ifndef ANTLR3_SIZE_HINT
#define ANTLR3_SIZE_HINT 211
#define ANTLR3_LIST_SIZE_HINT 31
#endif
#endif
// Definitions that indicate the encoding scheme character streams and strings etc
//
/// Indicates Big Endian for encodings where this makes sense
///
#define ANTLR3_BE 1
/// Indicates Little Endian for encoidngs where this makes sense
///
#define ANTLR3_LE 2
/// General latin-1 or other 8 bit encoding scheme such as straight ASCII
///
#define ANTLR3_ENC_8BIT 4
/// UTF-8 encoding scheme
///
#define ANTLR3_ENC_UTF8 8
/// UTF-16 encoding scheme (which also covers UCS2 as that does not have surrogates)
///
#define ANTLR3_ENC_UTF16 16
#define ANTLR3_ENC_UTF16BE 16 + ANTLR3_BE
#define ANTLR3_ENC_UTF16LE 16 + ANTLR3_LE
/// UTF-32 encoding scheme (basically straight 32 bit)
///
#define ANTLR3_ENC_UTF32 32
#define ANTLR3_ENC_UTF32BE 32 + ANTLR3_BE
#define ANTLR3_ENC_UTF32LE 32 + ANTLR3_LE
/// Input is 8 bit EBCDIC (which we convert to 8 bit ASCII on the fly
///
#define ANTLR3_ENC_EBCDIC 64
/* Common definitions come first
*/
#include <antlr3errors.h>
/* Work out what operating system/compiler this is. We just do this once
* here and use an internal symbol after this.
*/
#ifdef _WIN64
# ifndef ANTLR3_WINDOWS
# define ANTLR3_WINDOWS
# endif
# define ANTLR3_WIN64
# define ANTLR3_USE_64BIT
#elif __LP64__
# define ANTLR3_USE_64BIT
#else
#ifdef _WIN32
# ifndef ANTLR3_WINDOWS
# define ANTLR3_WINDOWS
# endif
#define ANTLR3_WIN32
#endif
#endif
#ifdef ANTLR3_WINDOWS
#ifndef WIN32_LEAN_AND_MEAN
#define WIN32_LEAN_AND_MEAN
#endif
/* Allow VC 8 (vs2005) and above to use 'secure' versions of various functions such as sprintf
*/
#ifndef _CRT_SECURE_NO_DEPRECATE
#define _CRT_SECURE_NO_DEPRECATE
#endif
#include <windows.h>
#include <stdlib.h>
#include <winsock.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdarg.h>
#define ANTLR3_API __declspec(dllexport)
#define ANTLR3_CDECL __cdecl
#define ANTLR3_FASTCALL __fastcall
#ifdef __cplusplus
extern "C" {
#endif
#ifndef __MINGW32__
// Standard Windows types
//
typedef INT32 ANTLR3_CHAR, *pANTLR3_CHAR;
typedef UINT32 ANTLR3_UCHAR, *pANTLR3_UCHAR;
typedef INT8 ANTLR3_INT8, *pANTLR3_INT8;
typedef INT16 ANTLR3_INT16, *pANTLR3_INT16;
typedef INT32 ANTLR3_INT32, *pANTLR3_INT32;
typedef INT64 ANTLR3_INT64, *pANTLR3_INT64;
typedef UINT8 ANTLR3_UINT8, *pANTLR3_UINT8;
typedef UINT16 ANTLR3_UINT16, *pANTLR3_UINT16;
typedef UINT32 ANTLR3_UINT32, *pANTLR3_UINT32;
typedef UINT64 ANTLR3_UINT64, *pANTLR3_UINT64;
typedef UINT64 ANTLR3_BITWORD, *pANTLR3_BITWORD;
typedef UINT8 ANTLR3_BOOLEAN, *pANTLR3_BOOLEAN;
#else
// Mingw uses stdint.h and fails to define standard Microsoft typedefs
// such as UINT16, hence we must use stdint.h for Mingw.
//
#include <stdint.h>
typedef int32_t ANTLR3_CHAR, *pANTLR3_CHAR;
typedef uint32_t ANTLR3_UCHAR, *pANTLR3_UCHAR;
typedef int8_t ANTLR3_INT8, *pANTLR3_INT8;
typedef int16_t ANTLR3_INT16, *pANTLR3_INT16;
typedef int32_t ANTLR3_INT32, *pANTLR3_INT32;
typedef int64_t ANTLR3_INT64, *pANTLR3_INT64;
typedef uint8_t ANTLR3_UINT8, *pANTLR3_UINT8;
typedef uint16_t ANTLR3_UINT16, *pANTLR3_UINT16;
typedef uint32_t ANTLR3_UINT32, *pANTLR3_UINT32;
typedef uint64_t ANTLR3_UINT64, *pANTLR3_UINT64;
typedef uint64_t ANTLR3_BITWORD, *pANTLR3_BITWORD;
typedef uint8_t ANTLR3_BOOLEAN, *pANTLR3_BOOLEAN;
#endif
#define ANTLR3_UINT64_LIT(lit) lit##ULL
#define ANTLR3_INLINE __inline
typedef FILE * ANTLR3_FDSC;
typedef struct stat ANTLR3_FSTAT_STRUCT;
#ifdef ANTLR3_USE_64BIT
#define ANTLR3_FUNC_PTR(ptr) (void *)((ANTLR3_UINT64)(ptr))
#define ANTLR3_UINT64_CAST(ptr) (ANTLR3_UINT64)(ptr))
#define ANTLR3_UINT32_CAST(ptr) (ANTLR3_UINT32)((ANTLR3_UINT64)(ptr))
typedef ANTLR3_INT64 ANTLR3_MARKER;
typedef ANTLR3_UINT64 ANTLR3_INTKEY;
#else
#define ANTLR3_FUNC_PTR(ptr) (void *)((ANTLR3_UINT32)(ptr))
#define ANTLR3_UINT64_CAST(ptr) (ANTLR3_UINT64)((ANTLR3_UINT32)(ptr))
#define ANTLR3_UINT32_CAST(ptr) (ANTLR3_UINT32)(ptr)
typedef ANTLR3_INT32 ANTLR3_MARKER;
typedef ANTLR3_UINT32 ANTLR3_INTKEY;
#endif
#ifdef ANTLR3_WIN32
#endif
#ifdef ANTLR3_WIN64
#endif
typedef int ANTLR3_SALENT; // Type used for size of accept structure
typedef struct sockaddr_in ANTLR3_SOCKADDRT, * pANTLR3_SOCKADDRT; // Type used for socket address declaration
typedef struct sockaddr ANTLR3_SOCKADDRC, * pANTLR3_SOCKADDRC; // Type used for cast on accept()
#define ANTLR3_CLOSESOCKET closesocket
#ifdef __cplusplus
}
#endif
/* Warnings that are over-zealous such as complaining about strdup, we
* can turn off.
*/
/* Don't complain about "deprecated" functions such as strdup
*/
#pragma warning( disable : 4996 )
#else
/* Include configure generated header file
*/
#include <antlr3config.h>
#include <stdio.h>
#if HAVE_STDINT_H
# include <stdint.h>
#endif
#if HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#if HAVE_SYS_STAT_H
# include <sys/stat.h>
#endif
#if STDC_HEADERS
# include <stdlib.h>
# include <stddef.h>
# include <stdarg.h>
#else
# if HAVE_STDLIB_H
# include <stdlib.h>
# endif
# if HAVE_STDARG_H
# include <stdarg.h>
# endif
#endif
#if HAVE_STRING_H
# if !STDC_HEADERS && HAVE_MEMORY_H
# include <memory.h>
# endif
# include <string.h>
#endif
#if HAVE_STRINGS_H
# include <strings.h>
#endif
#if HAVE_INTTYPES_H
# include <inttypes.h>
#endif
#if HAVE_UNISTD_H
# include <unistd.h>
#endif
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
#endif
#ifdef HAVE_SOCKET_H
# include <socket.h>
#else
# if HAVE_SYS_SOCKET_H
# include <sys/socket.h>
# endif
#endif
#ifdef HAVE_NETINET_TCP_H
#include <netinet/tcp.h>
#endif
#ifdef HAVE_ARPA_NAMESER_H
#include <arpa/nameser.h> /* DNS HEADER struct */
#endif
#ifdef HAVE_NETDB_H
#include <netdb.h>
#endif
#ifdef HAVE_SYS_RESOLVE_H
#include <sys/resolv.h>
#endif
#ifdef HAVE_RESOLVE_H
#include <resolv.h>
#endif
#ifdef HAVE_MALLOC_H
# include <malloc.h>
#else
# ifdef HAVE_SYS_MALLOC_H
# include <sys/malloc.h>
# endif
#endif
#ifdef HAVE_CTYPE_H
# include <ctype.h>
#endif
/* Some platforms define a macro, index() in string.h. AIX is
* one of these for instance. We must get rid of that definition
* as we use ->index all over the place. defining macros like this in system header
* files is a really bad idea, but I doubt that IBM will listen to me ;-)
*/
#ifdef index
#undef index
#endif
#define _stat stat
// SOCKET not defined on Unix
//
typedef int SOCKET;
#define ANTLR3_API
#define ANTLR3_CDECL
#define ANTLR3_FASTCALL
#ifdef __hpux
// HPUX is always different usually for no good reason. Tru64 should have kicked it
// into touch and everyone knows it ;-)
//
typedef struct sockaddr_in ANTLR3_SOCKADDRT, * pANTLR3_SOCKADDRT; // Type used for socket address declaration
typedef void * pANTLR3_SOCKADDRC; // Type used for cast on accept()
typedef int ANTLR3_SALENT;
#else
# if defined(_AIX) || __GNUC__ > 3
typedef socklen_t ANTLR3_SALENT;
# else
typedef size_t ANTLR3_SALENT;
# endif
typedef struct sockaddr_in ANTLR3_SOCKADDRT, * pANTLR3_SOCKADDRT; // Type used for socket address declaration
typedef struct sockaddr * pANTLR3_SOCKADDRC; // Type used for cast on accept()
#endif
#define INVALID_SOCKET ((SOCKET)-1)
#define ANTLR3_CLOSESOCKET close
#ifdef __cplusplus
extern "C" {
#endif
/* Inherit type definitions for autoconf
*/
typedef int32_t ANTLR3_CHAR, *pANTLR3_CHAR;
typedef uint32_t ANTLR3_UCHAR, *pANTLR3_UCHAR;
typedef int8_t ANTLR3_INT8, *pANTLR3_INT8;
typedef int16_t ANTLR3_INT16, *pANTLR3_INT16;
typedef int32_t ANTLR3_INT32, *pANTLR3_INT32;
typedef int64_t ANTLR3_INT64, *pANTLR3_INT64;
typedef uint8_t ANTLR3_UINT8, *pANTLR3_UINT8;
typedef uint16_t ANTLR3_UINT16, *pANTLR3_UINT16;
typedef uint32_t ANTLR3_UINT32, *pANTLR3_UINT32;
typedef uint64_t ANTLR3_UINT64, *pANTLR3_UINT64;
typedef uint64_t ANTLR3_BITWORD, *pANTLR3_BITWORD;
typedef uint32_t ANTLR3_BOOLEAN, *pANTLR3_BOOLEAN;
#define ANTLR3_INLINE inline
#define ANTLR3_API
typedef FILE * ANTLR3_FDSC;
typedef struct stat ANTLR3_FSTAT_STRUCT;
#ifdef ANTLR3_USE_64BIT
#define ANTLR3_FUNC_PTR(ptr) (void *)((ANTLR3_UINT64)(ptr))
#define ANTLR3_UINT64_CAST(ptr) (ANTLR3_UINT64)(ptr))
#define ANTLR3_UINT32_CAST(ptr) (ANTLR3_UINT32)((ANTLR3_UINT64)(ptr))
typedef ANTLR3_INT64 ANTLR3_MARKER;
typedef ANTLR3_UINT64 ANTLR3_INTKEY;
#else
#define ANTLR3_FUNC_PTR(ptr) (void *)((ANTLR3_UINT32)(ptr))
#define ANTLR3_UINT64_CAST(ptr) (ANTLR3_UINT64)((ANTLR3_UINT32)(ptr))
#define ANTLR3_UINT32_CAST(ptr) (ANTLR3_UINT32)(ptr)
typedef ANTLR3_INT32 ANTLR3_MARKER;
typedef ANTLR3_UINT32 ANTLR3_INTKEY;
#endif
#define ANTLR3_UINT64_LIT(lit) lit##ULL
#ifdef __cplusplus
}
#endif
#endif
#ifdef ANTLR3_USE_64BIT
#define ANTLR3_TRIE_DEPTH 63
#else
#define ANTLR3_TRIE_DEPTH 31
#endif
/* Pre declare the typedefs for all the interfaces, then
* they can be inter-dependant and we will let the linker
* sort it out for us.
*/
#include <antlr3interfaces.h>
// Include the unicode.org conversion library header.
//
#include <antlr3convertutf.h>
/* Prototypes
*/
#ifndef ANTLR3_MALLOC
/// Default definition of ANTLR3_MALLOC. You can override this before including
/// antlr3.h if you wish to use your own implementation.
///
#define ANTLR3_MALLOC(request) malloc ((size_t)(request))
#endif
#ifndef ANTLR3_CALLOC
/// Default definition of ANTLR3_CALLOC. You can override this before including
/// antlr3.h if you wish to use your own implementation.
///
#define ANTLR3_CALLOC(numEl, elSize) calloc (numEl, (size_t)(elSize))
#endif
#ifndef ANTLR3_REALLOC
/// Default definition of ANTLR3_REALLOC. You can override this before including
/// antlr3.h if you wish to use your own implementation.
///
#define ANTLR3_REALLOC(current, request) realloc ((void *)(current), (size_t)(request))
#endif
#ifndef ANTLR3_FREE
/// Default definition of ANTLR3_FREE. You can override this before including
/// antlr3.h if you wish to use your own implementation.
///
#define ANTLR3_FREE(ptr) free ((void *)(ptr))
#endif
#ifndef ANTLR3_FREE_FUNC
/// Default definition of ANTLR3_FREE_FUNC. You can override this before including
/// antlr3.h if you wish to use your own implementation.
///
#define ANTLR3_FREE_FUNC free
#endif
#ifndef ANTLR3_STRDUP
/// Default definition of ANTLR3_STRDUP. You can override this before including
/// antlr3.h if you wish to use your own implementation.
///
#define ANTLR3_STRDUP(instr) (pANTLR3_UINT8)(strdup ((const char *)(instr)))
#endif
#ifndef ANTLR3_MEMCPY
/// Default definition of ANTLR3_MEMCPY. You can override this before including
/// antlr3.h if you wish to use your own implementation.
///
#define ANTLR3_MEMCPY(target, source, size) memcpy((void *)(target), (const void *)(source), (size_t)(size))
#endif
#ifndef ANTLR3_MEMMOVE
/// Default definition of ANTLR3_MEMMOVE. You can override this before including
/// antlr3.h if you wish to use your own implementation.
///
#define ANTLR3_MEMMOVE(target, source, size) memmove((void *)(target), (const void *)(source), (size_t)(size))
#endif
#ifndef ANTLR3_MEMSET
/// Default definition of ANTLR3_MEMSET. You can override this before including
/// antlr3.h if you wish to use your own implementation.
///
#define ANTLR3_MEMSET(target, byte, size) memset((void *)(target), (int)(byte), (size_t)(size))
#endif
#ifndef ANTLR3_PRINTF
/// Default definition of printf, set this to something other than printf before including antlr3.h
/// if your system does not have a printf. Note that you can define this to be <code>//</code>
/// without harming the runtime.
///
#define ANTLR3_PRINTF printf
#endif
#ifndef ANTLR3_FPRINTF
/// Default definition of fprintf, set this to something other than fprintf before including antlr3.h
/// if your system does not have a fprintf. Note that you can define this to be <code>//</code>
/// without harming the runtime.
///
#define ANTLR3_FPRINTF fprintf
#endif
#ifdef __cplusplus
extern "C" {
#endif
ANTLR3_API pANTLR3_INT_TRIE antlr3IntTrieNew (ANTLR3_UINT32 depth);
ANTLR3_API pANTLR3_BITSET antlr3BitsetNew (ANTLR3_UINT32 numBits);
ANTLR3_API pANTLR3_BITSET antlr3BitsetOf (ANTLR3_INT32 bit, ...);
ANTLR3_API pANTLR3_BITSET antlr3BitsetList (pANTLR3_HASH_TABLE list);
ANTLR3_API pANTLR3_BITSET antlr3BitsetCopy (pANTLR3_BITSET_LIST blist);
ANTLR3_API pANTLR3_BITSET antlr3BitsetLoad (pANTLR3_BITSET_LIST blist);
ANTLR3_API void antlr3BitsetSetAPI (pANTLR3_BITSET bitset);
ANTLR3_API pANTLR3_BASE_RECOGNIZER antlr3BaseRecognizerNew (ANTLR3_UINT32 type, ANTLR3_UINT32 sizeHint, pANTLR3_RECOGNIZER_SHARED_STATE state);
ANTLR3_API void antlr3RecognitionExceptionNew (pANTLR3_BASE_RECOGNIZER recognizer);
ANTLR3_API void antlr3MTExceptionNew (pANTLR3_BASE_RECOGNIZER recognizer);
ANTLR3_API void antlr3MTNExceptionNew (pANTLR3_BASE_RECOGNIZER recognizer);
ANTLR3_API pANTLR3_HASH_TABLE antlr3HashTableNew (ANTLR3_UINT32 sizeHint);
ANTLR3_API ANTLR3_UINT32 antlr3Hash (void * key, ANTLR3_UINT32 keylen);
ANTLR3_API pANTLR3_HASH_ENUM antlr3EnumNew (pANTLR3_HASH_TABLE table);
ANTLR3_API pANTLR3_LIST antlr3ListNew (ANTLR3_UINT32 sizeHint);
ANTLR3_API pANTLR3_VECTOR_FACTORY antlr3VectorFactoryNew (ANTLR3_UINT32 sizeHint);
ANTLR3_API pANTLR3_VECTOR antlr3VectorNew (ANTLR3_UINT32 sizeHint);
ANTLR3_API pANTLR3_STACK antlr3StackNew (ANTLR3_UINT32 sizeHint);
ANTLR3_API void antlr3SetVectorApi (pANTLR3_VECTOR vector, ANTLR3_UINT32 sizeHint);
ANTLR3_API ANTLR3_UCHAR antlr3c8toAntlrc (ANTLR3_INT8 inc);
ANTLR3_API pANTLR3_TOPO antlr3TopoNew();
ANTLR3_API pANTLR3_EXCEPTION antlr3ExceptionNew (ANTLR3_UINT32 exception, void * name, void * message, ANTLR3_BOOLEAN freeMessage);
ANTLR3_API pANTLR3_INPUT_STREAM antlr3FileStreamNew (pANTLR3_UINT8 fileName, ANTLR3_UINT32 encoding);
ANTLR3_API pANTLR3_INPUT_STREAM antlr3StringStreamNew (pANTLR3_UINT8 data, ANTLR3_UINT32 encoding, ANTLR3_UINT32 size, pANTLR3_UINT8 name);
ANTLR3_API pANTLR3_INT_STREAM antlr3IntStreamNew (void);
ANTLR3_API pANTLR3_STRING_FACTORY antlr3StringFactoryNew (ANTLR3_UINT32 encoding);
ANTLR3_API pANTLR3_COMMON_TOKEN antlr3CommonTokenNew (ANTLR3_UINT32 ttype);
ANTLR3_API pANTLR3_TOKEN_FACTORY antlr3TokenFactoryNew (pANTLR3_INPUT_STREAM input);
ANTLR3_API void antlr3SetTokenAPI (pANTLR3_COMMON_TOKEN token);
ANTLR3_API pANTLR3_LEXER antlr3LexerNewStream (ANTLR3_UINT32 sizeHint, pANTLR3_INPUT_STREAM input, pANTLR3_RECOGNIZER_SHARED_STATE state);
ANTLR3_API pANTLR3_LEXER antlr3LexerNew (ANTLR3_UINT32 sizeHint, pANTLR3_RECOGNIZER_SHARED_STATE state);
ANTLR3_API pANTLR3_PARSER antlr3ParserNewStreamDbg (ANTLR3_UINT32 sizeHint, pANTLR3_TOKEN_STREAM tstream, pANTLR3_DEBUG_EVENT_LISTENER dbg, pANTLR3_RECOGNIZER_SHARED_STATE state);
ANTLR3_API pANTLR3_PARSER antlr3ParserNewStream (ANTLR3_UINT32 sizeHint, pANTLR3_TOKEN_STREAM tstream, pANTLR3_RECOGNIZER_SHARED_STATE state);
ANTLR3_API pANTLR3_PARSER antlr3ParserNew (ANTLR3_UINT32 sizeHint, pANTLR3_RECOGNIZER_SHARED_STATE state);
ANTLR3_API pANTLR3_COMMON_TOKEN_STREAM antlr3CommonTokenStreamSourceNew (ANTLR3_UINT32 hint, pANTLR3_TOKEN_SOURCE source);
ANTLR3_API pANTLR3_COMMON_TOKEN_STREAM antlr3CommonTokenStreamNew (ANTLR3_UINT32 hint);
ANTLR3_API pANTLR3_COMMON_TOKEN_STREAM antlr3CommonTokenDebugStreamSourceNew (ANTLR3_UINT32 hint, pANTLR3_TOKEN_SOURCE source, pANTLR3_DEBUG_EVENT_LISTENER debugger);
ANTLR3_API pANTLR3_BASE_TREE_ADAPTOR ANTLR3_TREE_ADAPTORNew (pANTLR3_STRING_FACTORY strFactory);
ANTLR3_API pANTLR3_BASE_TREE_ADAPTOR ANTLR3_TREE_ADAPTORDebugNew (pANTLR3_STRING_FACTORY strFactory, pANTLR3_DEBUG_EVENT_LISTENER debugger);
ANTLR3_API pANTLR3_COMMON_TREE antlr3CommonTreeNew (void);
ANTLR3_API pANTLR3_COMMON_TREE antlr3CommonTreeNewFromTree (pANTLR3_COMMON_TREE tree);
ANTLR3_API pANTLR3_COMMON_TREE antlr3CommonTreeNewFromToken (pANTLR3_COMMON_TOKEN tree);
ANTLR3_API pANTLR3_ARBORETUM antlr3ArboretumNew (pANTLR3_STRING_FACTORY factory);
ANTLR3_API void antlr3SetCTAPI (pANTLR3_COMMON_TREE tree);
ANTLR3_API pANTLR3_BASE_TREE antlr3BaseTreeNew (pANTLR3_BASE_TREE tree);
ANTLR3_API void antlr3BaseTreeAdaptorInit (pANTLR3_BASE_TREE_ADAPTOR adaptor, pANTLR3_DEBUG_EVENT_LISTENER debugger);
ANTLR3_API pANTLR3_TREE_PARSER antlr3TreeParserNewStream (ANTLR3_UINT32 sizeHint, pANTLR3_COMMON_TREE_NODE_STREAM ctnstream, pANTLR3_RECOGNIZER_SHARED_STATE state);
ANTLR3_API ANTLR3_INT32 antlr3dfaspecialTransition (void * ctx, pANTLR3_BASE_RECOGNIZER rec, pANTLR3_INT_STREAM is, pANTLR3_CYCLIC_DFA dfa, ANTLR3_INT32 s);
ANTLR3_API ANTLR3_INT32 antlr3dfaspecialStateTransition (void * ctx, pANTLR3_BASE_RECOGNIZER rec, pANTLR3_INT_STREAM is, pANTLR3_CYCLIC_DFA dfa, ANTLR3_INT32 s);
ANTLR3_API ANTLR3_INT32 antlr3dfapredict (void * ctx, pANTLR3_BASE_RECOGNIZER rec, pANTLR3_INT_STREAM is, pANTLR3_CYCLIC_DFA cdfa);
ANTLR3_API pANTLR3_COMMON_TREE_NODE_STREAM antlr3CommonTreeNodeStreamNewTree (pANTLR3_BASE_TREE tree, ANTLR3_UINT32 hint);
ANTLR3_API pANTLR3_COMMON_TREE_NODE_STREAM antlr3CommonTreeNodeStreamNew (pANTLR3_STRING_FACTORY strFactory, ANTLR3_UINT32 hint);
ANTLR3_API pANTLR3_COMMON_TREE_NODE_STREAM antlr3UnbufTreeNodeStreamNewTree (pANTLR3_BASE_TREE tree, ANTLR3_UINT32 hint);
ANTLR3_API pANTLR3_COMMON_TREE_NODE_STREAM antlr3UnbufTreeNodeStreamNew (pANTLR3_STRING_FACTORY strFactory, ANTLR3_UINT32 hint);
ANTLR3_API pANTLR3_COMMON_TREE_NODE_STREAM antlr3CommonTreeNodeStreamNewStream (pANTLR3_COMMON_TREE_NODE_STREAM inStream);
ANTLR3_API pANTLR3_TREE_NODE_STREAM antlr3TreeNodeStreamNew ();
ANTLR3_API void fillBufferExt (pANTLR3_COMMON_TOKEN_STREAM tokenStream);
ANTLR3_API pANTLR3_REWRITE_RULE_TOKEN_STREAM
antlr3RewriteRuleTOKENStreamNewAE (pANTLR3_BASE_TREE_ADAPTOR adaptor, pANTLR3_BASE_RECOGNIZER rec, pANTLR3_UINT8 description);
ANTLR3_API pANTLR3_REWRITE_RULE_TOKEN_STREAM
antlr3RewriteRuleTOKENStreamNewAEE (pANTLR3_BASE_TREE_ADAPTOR adaptor, pANTLR3_BASE_RECOGNIZER rec, pANTLR3_UINT8 description, void * oneElement);
ANTLR3_API pANTLR3_REWRITE_RULE_TOKEN_STREAM
antlr3RewriteRuleTOKENStreamNewAEV (pANTLR3_BASE_TREE_ADAPTOR adaptor, pANTLR3_BASE_RECOGNIZER rec, pANTLR3_UINT8 description, pANTLR3_VECTOR vector);
ANTLR3_API pANTLR3_REWRITE_RULE_NODE_STREAM
antlr3RewriteRuleNODEStreamNewAE (pANTLR3_BASE_TREE_ADAPTOR adaptor, pANTLR3_BASE_RECOGNIZER rec, pANTLR3_UINT8 description);
ANTLR3_API pANTLR3_REWRITE_RULE_NODE_STREAM
antlr3RewriteRuleNODEStreamNewAEE (pANTLR3_BASE_TREE_ADAPTOR adaptor, pANTLR3_BASE_RECOGNIZER rec, pANTLR3_UINT8 description, void * oneElement);
ANTLR3_API pANTLR3_REWRITE_RULE_NODE_STREAM
antlr3RewriteRuleNODEStreamNewAEV (pANTLR3_BASE_TREE_ADAPTOR adaptor, pANTLR3_BASE_RECOGNIZER rec, pANTLR3_UINT8 description, pANTLR3_VECTOR vector);
ANTLR3_API pANTLR3_REWRITE_RULE_SUBTREE_STREAM
antlr3RewriteRuleSubtreeStreamNewAE (pANTLR3_BASE_TREE_ADAPTOR adaptor, pANTLR3_BASE_RECOGNIZER rec, pANTLR3_UINT8 description);
ANTLR3_API pANTLR3_REWRITE_RULE_SUBTREE_STREAM
antlr3RewriteRuleSubtreeStreamNewAEE(pANTLR3_BASE_TREE_ADAPTOR adaptor, pANTLR3_BASE_RECOGNIZER rec, pANTLR3_UINT8 description, void * oneElement);
ANTLR3_API pANTLR3_REWRITE_RULE_SUBTREE_STREAM
antlr3RewriteRuleSubtreeStreamNewAEV(pANTLR3_BASE_TREE_ADAPTOR adaptor, pANTLR3_BASE_RECOGNIZER rec, pANTLR3_UINT8 description, pANTLR3_VECTOR vector);
ANTLR3_API pANTLR3_DEBUG_EVENT_LISTENER antlr3DebugListenerNew();
#ifdef __cplusplus
}
#endif
#endif /* _ANTLR3DEFS_H */