1*16467b97STreehugger Robot /** \file 2*16467b97STreehugger Robot * Declarations for all the antlr3 C runtime interfaces/classes. This 3*16467b97STreehugger Robot * allows the structures that define the interfaces to contain pointers to 4*16467b97STreehugger Robot * each other without trying to sort out the cyclic interdependencies that 5*16467b97STreehugger Robot * would otherwise result. 6*16467b97STreehugger Robot */ 7*16467b97STreehugger Robot #ifndef _ANTLR3_INTERFACES_H 8*16467b97STreehugger Robot #define _ANTLR3_INTERFACES_H 9*16467b97STreehugger Robot 10*16467b97STreehugger Robot // [The "BSD licence"] 11*16467b97STreehugger Robot // Copyright (c) 2005-2009 Jim Idle, Temporal Wave LLC 12*16467b97STreehugger Robot // http://www.temporal-wave.com 13*16467b97STreehugger Robot // http://www.linkedin.com/in/jimidle 14*16467b97STreehugger Robot // 15*16467b97STreehugger Robot // All rights reserved. 16*16467b97STreehugger Robot // 17*16467b97STreehugger Robot // Redistribution and use in source and binary forms, with or without 18*16467b97STreehugger Robot // modification, are permitted provided that the following conditions 19*16467b97STreehugger Robot // are met: 20*16467b97STreehugger Robot // 1. Redistributions of source code must retain the above copyright 21*16467b97STreehugger Robot // notice, this list of conditions and the following disclaimer. 22*16467b97STreehugger Robot // 2. Redistributions in binary form must reproduce the above copyright 23*16467b97STreehugger Robot // notice, this list of conditions and the following disclaimer in the 24*16467b97STreehugger Robot // documentation and/or other materials provided with the distribution. 25*16467b97STreehugger Robot // 3. The name of the author may not be used to endorse or promote products 26*16467b97STreehugger Robot // derived from this software without specific prior written permission. 27*16467b97STreehugger Robot // 28*16467b97STreehugger Robot // THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 29*16467b97STreehugger Robot // IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 30*16467b97STreehugger Robot // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 31*16467b97STreehugger Robot // IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 32*16467b97STreehugger Robot // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 33*16467b97STreehugger Robot // NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 34*16467b97STreehugger Robot // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 35*16467b97STreehugger Robot // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 36*16467b97STreehugger Robot // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 37*16467b97STreehugger Robot // THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 38*16467b97STreehugger Robot 39*16467b97STreehugger Robot #ifdef __cplusplus 40*16467b97STreehugger Robot extern "C" { 41*16467b97STreehugger Robot #endif 42*16467b97STreehugger Robot 43*16467b97STreehugger Robot typedef struct ANTLR3_INT_STREAM_struct *pANTLR3_INT_STREAM; 44*16467b97STreehugger Robot 45*16467b97STreehugger Robot /// Pointer to an instantiation of the 'class' #ANTLR3_BASE_RECOGNIZER 46*16467b97STreehugger Robot /// \ingroup ANTLR3_BASE_RECOGNIZER 47*16467b97STreehugger Robot /// 48*16467b97STreehugger Robot typedef struct ANTLR3_BASE_RECOGNIZER_struct *pANTLR3_BASE_RECOGNIZER; 49*16467b97STreehugger Robot /// Pointer to an instantiation of 'class' #ANTLR3_RECOGNIZER_SHARED_STATE 50*16467b97STreehugger Robot /// \ingroup ANTLR3_RECOGNIZER_SHARED_STATE 51*16467b97STreehugger Robot /// 52*16467b97STreehugger Robot typedef struct ANTLR3_RECOGNIZER_SHARED_STATE_struct *pANTLR3_RECOGNIZER_SHARED_STATE; 53*16467b97STreehugger Robot 54*16467b97STreehugger Robot /// Pointer to an instantiation of 'class' #ANTLR3_BITSET_LIST 55*16467b97STreehugger Robot /// \ingroup ANTLR3_BITSET_LIST 56*16467b97STreehugger Robot /// 57*16467b97STreehugger Robot typedef struct ANTLR3_BITSET_LIST_struct *pANTLR3_BITSET_LIST; 58*16467b97STreehugger Robot 59*16467b97STreehugger Robot /// Pointer to an instantiation of 'class' #ANTLR3_BITSET 60*16467b97STreehugger Robot /// \ingroup ANTLR3_BITSET 61*16467b97STreehugger Robot /// 62*16467b97STreehugger Robot typedef struct ANTLR3_BITSET_struct *pANTLR3_BITSET; 63*16467b97STreehugger Robot 64*16467b97STreehugger Robot /// Pointer to an instantiation of 'class' #ANTLR3_TOKEN_FACTORY 65*16467b97STreehugger Robot /// \ingroup ANTLR3_TOKEN_FACTORY 66*16467b97STreehugger Robot /// 67*16467b97STreehugger Robot typedef struct ANTLR3_TOKEN_FACTORY_struct *pANTLR3_TOKEN_FACTORY; 68*16467b97STreehugger Robot /// Pointer to an instantiation of 'class' #ANTLR3_COMMON_TOKEN 69*16467b97STreehugger Robot /// \ingroup ANTLR3_COMMON_TOKEN 70*16467b97STreehugger Robot /// 71*16467b97STreehugger Robot typedef struct ANTLR3_COMMON_TOKEN_struct *pANTLR3_COMMON_TOKEN; 72*16467b97STreehugger Robot 73*16467b97STreehugger Robot /// Pointer to an instantiation of 'class' #ANTLR3_EXCEPTION 74*16467b97STreehugger Robot /// \ingroup ANTLR3_EXCEPTION 75*16467b97STreehugger Robot /// 76*16467b97STreehugger Robot typedef struct ANTLR3_EXCEPTION_struct *pANTLR3_EXCEPTION; 77*16467b97STreehugger Robot 78*16467b97STreehugger Robot /// Pointer to an instantiation of 'class' #ANTLR3_HASH_BUCKET 79*16467b97STreehugger Robot /// \ingroup ANTLR3_HASH_BUCKET 80*16467b97STreehugger Robot /// 81*16467b97STreehugger Robot typedef struct ANTLR3_HASH_BUCKET_struct *pANTLR3_HASH_BUCKET; 82*16467b97STreehugger Robot /// Pointer to an instantiation of 'class' #ANTLR3_HASH_ENTRY 83*16467b97STreehugger Robot /// \ingroup ANTLR3_HASH_ENTRY 84*16467b97STreehugger Robot /// 85*16467b97STreehugger Robot typedef struct ANTLR3_HASH_ENTRY_struct *pANTLR3_HASH_ENTRY; 86*16467b97STreehugger Robot /// Pointer to an instantiation of 'class' #ANTLR3_HASH_ENUM 87*16467b97STreehugger Robot /// \ingroup ANTLR3_HASH_ENUM 88*16467b97STreehugger Robot /// 89*16467b97STreehugger Robot typedef struct ANTLR3_HASH_ENUM_struct *pANTLR3_HASH_ENUM; 90*16467b97STreehugger Robot /// Pointer to an instantiation of 'class' #ANTLR3_HASH_TABLE 91*16467b97STreehugger Robot /// \ingroup ANTLR3_HASH_TABLE 92*16467b97STreehugger Robot /// 93*16467b97STreehugger Robot typedef struct ANTLR3_HASH_TABLE_struct *pANTLR3_HASH_TABLE; 94*16467b97STreehugger Robot 95*16467b97STreehugger Robot /// Pointer to an instantiation of 'class' #ANTLR3_LIST 96*16467b97STreehugger Robot /// \ingroup ANTLR3_LIST 97*16467b97STreehugger Robot /// 98*16467b97STreehugger Robot typedef struct ANTLR3_LIST_struct *pANTLR3_LIST; 99*16467b97STreehugger Robot /// Pointer to an instantiation of 'class' #ANTLR3_VECTOR_FACTORY 100*16467b97STreehugger Robot /// \ingroup ANTLR3_VECTOR_FACTORY 101*16467b97STreehugger Robot /// 102*16467b97STreehugger Robot typedef struct ANTLR3_VECTOR_FACTORY_struct *pANTLR3_VECTOR_FACTORY; 103*16467b97STreehugger Robot /// Pointer to an instantiation of 'class' #ANTLR3_VECTOR 104*16467b97STreehugger Robot /// \ingroup ANTLR3_VECTOR 105*16467b97STreehugger Robot /// 106*16467b97STreehugger Robot typedef struct ANTLR3_VECTOR_struct *pANTLR3_VECTOR; 107*16467b97STreehugger Robot /// Pointer to an instantiation of 'class' #ANTLR3_STACK 108*16467b97STreehugger Robot /// \ingroup ANTLR3_STACK 109*16467b97STreehugger Robot /// 110*16467b97STreehugger Robot typedef struct ANTLR3_STACK_struct *pANTLR3_STACK; 111*16467b97STreehugger Robot 112*16467b97STreehugger Robot /// Pointer to an instantiation of 'class' #ANTLR3_TOPO 113*16467b97STreehugger Robot /// \ingroup ANTLR3_TOPO 114*16467b97STreehugger Robot /// 115*16467b97STreehugger Robot typedef struct ANTLR3_TOPO_struct *pANTLR3_TOPO; 116*16467b97STreehugger Robot 117*16467b97STreehugger Robot /// Pointer to an instantiation of 'class' #ANTLR3_INPUT_STREAM 118*16467b97STreehugger Robot /// \ingroup ANTLR3_INPUT_STREAM 119*16467b97STreehugger Robot /// 120*16467b97STreehugger Robot typedef struct ANTLR3_INPUT_STREAM_struct *pANTLR3_INPUT_STREAM; 121*16467b97STreehugger Robot /// Pointer to an instantiation of 'class' #ANTLR3_LEX_STATE 122*16467b97STreehugger Robot /// \ingroup ANTLR3_LEX_STATE 123*16467b97STreehugger Robot /// 124*16467b97STreehugger Robot typedef struct ANTLR3_LEX_STATE_struct *pANTLR3_LEX_STATE; 125*16467b97STreehugger Robot 126*16467b97STreehugger Robot /// Pointer to an instantiation of 'class' #ANTLR3_STRING_FACTORY 127*16467b97STreehugger Robot /// \ingroup ANTLR3_STRING_FACTORY 128*16467b97STreehugger Robot /// 129*16467b97STreehugger Robot typedef struct ANTLR3_STRING_FACTORY_struct *pANTLR3_STRING_FACTORY; 130*16467b97STreehugger Robot /// Pointer to an instantiation of 'class' #ANTLR3_STRING 131*16467b97STreehugger Robot /// \ingroup ANTLR3_STRING 132*16467b97STreehugger Robot /// 133*16467b97STreehugger Robot typedef struct ANTLR3_STRING_struct *pANTLR3_STRING; 134*16467b97STreehugger Robot 135*16467b97STreehugger Robot /// Pointer to an instantiation of 'class' #ANTLR3_TOKEN_SOURCE 136*16467b97STreehugger Robot /// \ingroup ANTLR3_TOKEN_SOURCE 137*16467b97STreehugger Robot /// 138*16467b97STreehugger Robot typedef struct ANTLR3_TOKEN_SOURCE_struct *pANTLR3_TOKEN_SOURCE; 139*16467b97STreehugger Robot /// Pointer to an instantiation of 'class' #ANTLR3_TOKEN_STREAM 140*16467b97STreehugger Robot /// \ingroup ANTLR3_TOKEN_STREAM 141*16467b97STreehugger Robot /// 142*16467b97STreehugger Robot typedef struct ANTLR3_TOKEN_STREAM_struct *pANTLR3_TOKEN_STREAM; 143*16467b97STreehugger Robot /// Pointer to an instantiation of 'class' #ANTLR3_COMMON_TOKEN_STREAM 144*16467b97STreehugger Robot /// \ingroup ANTLR3_COMMON_TOKEN_STREAM 145*16467b97STreehugger Robot /// 146*16467b97STreehugger Robot typedef struct ANTLR3_COMMON_TOKEN_STREAM_struct *pANTLR3_COMMON_TOKEN_STREAM; 147*16467b97STreehugger Robot 148*16467b97STreehugger Robot /// Pointer to an instantiation of 'class' #ANTLR3_CYCLIC_DFA 149*16467b97STreehugger Robot /// \ingroup ANTLR3_CYCLIC_DFA 150*16467b97STreehugger Robot /// 151*16467b97STreehugger Robot typedef struct ANTLR3_CYCLIC_DFA_struct *pANTLR3_CYCLIC_DFA; 152*16467b97STreehugger Robot 153*16467b97STreehugger Robot /// Pointer to an instantiation of 'class' #ANTLR3_LEXER 154*16467b97STreehugger Robot /// \ingroup ANTLR3_LEXER 155*16467b97STreehugger Robot /// 156*16467b97STreehugger Robot typedef struct ANTLR3_LEXER_struct *pANTLR3_LEXER; 157*16467b97STreehugger Robot /// Pointer to an instantiation of 'class' #ANTLR3_PARSER 158*16467b97STreehugger Robot /// \ingroup ANTLR3_PARSER 159*16467b97STreehugger Robot /// 160*16467b97STreehugger Robot typedef struct ANTLR3_PARSER_struct *pANTLR3_PARSER; 161*16467b97STreehugger Robot 162*16467b97STreehugger Robot /// Pointer to an instantiation of 'class' #ANTLR3_BASE_TREE 163*16467b97STreehugger Robot /// \ingroup ANTLR3_BASE_TREE 164*16467b97STreehugger Robot /// 165*16467b97STreehugger Robot typedef struct ANTLR3_BASE_TREE_struct *pANTLR3_BASE_TREE; 166*16467b97STreehugger Robot /// Pointer to an instantiation of 'class' #ANTLR3_COMMON_TREE 167*16467b97STreehugger Robot /// \ingroup ANTLR3_COMMON_TREE 168*16467b97STreehugger Robot /// 169*16467b97STreehugger Robot typedef struct ANTLR3_COMMON_TREE_struct *pANTLR3_COMMON_TREE; 170*16467b97STreehugger Robot /// Pointer to an instantiation of 'class' #ANTLR3_ARBORETUM 171*16467b97STreehugger Robot /// \ingroup ANTLR3_ARBORETUM 172*16467b97STreehugger Robot /// 173*16467b97STreehugger Robot typedef struct ANTLR3_ARBORETUM_struct *pANTLR3_ARBORETUM; 174*16467b97STreehugger Robot /// Pointer to an instantiation of 'class' #ANTLR3_PARSE_TREE 175*16467b97STreehugger Robot /// \ingroup ANTLR3_PARSE_TREE 176*16467b97STreehugger Robot /// 177*16467b97STreehugger Robot typedef struct ANTLR3_PARSE_TREE_struct *pANTLR3_PARSE_TREE; 178*16467b97STreehugger Robot 179*16467b97STreehugger Robot /// Pointer to an instantiation of 'class' #ANTLR3_TREE_NODE_STREAM 180*16467b97STreehugger Robot /// \ingroup ANTLR3_TREE_NODE_STREAM 181*16467b97STreehugger Robot /// 182*16467b97STreehugger Robot typedef struct ANTLR3_TREE_NODE_STREAM_struct *pANTLR3_TREE_NODE_STREAM; 183*16467b97STreehugger Robot /// Pointer to an instantiation of 'class' #ANTLR3_COMMON_TREE_NODE_STREAM 184*16467b97STreehugger Robot /// \ingroup ANTLR3_COMMON_TREE_NODE_STREAM 185*16467b97STreehugger Robot /// 186*16467b97STreehugger Robot typedef struct ANTLR3_COMMON_TREE_NODE_STREAM_struct *pANTLR3_COMMON_TREE_NODE_STREAM; 187*16467b97STreehugger Robot /// Pointer to an instantiation of 'class' #ANTLR3_TREE_WALK_STATE 188*16467b97STreehugger Robot /// \ingroup ANTLR3_TREE_WALK_STATE 189*16467b97STreehugger Robot /// 190*16467b97STreehugger Robot typedef struct ANTLR3_TREE_WALK_STATE_struct *pANTLR3_TREE_WALK_STATE; 191*16467b97STreehugger Robot 192*16467b97STreehugger Robot /// Pointer to an instantiation of 'class' #ANTLR3_BASE_TREE_ADAPTOR 193*16467b97STreehugger Robot /// \ingroup ANTLR3_BASE_TREE_ADAPTOR 194*16467b97STreehugger Robot /// 195*16467b97STreehugger Robot typedef struct ANTLR3_BASE_TREE_ADAPTOR_struct *pANTLR3_BASE_TREE_ADAPTOR; 196*16467b97STreehugger Robot /// Pointer to an instantiation of 'class' #ANTLR3_COMMON_TREE_ADAPTOR 197*16467b97STreehugger Robot /// \ingroup ANTLR3_COMMON_TREE_ADAPTOR 198*16467b97STreehugger Robot /// 199*16467b97STreehugger Robot typedef struct ANTLR3_COMMON_TREE_ADAPTOR_struct *pANTLR3_COMMON_TREE_ADAPTOR; 200*16467b97STreehugger Robot 201*16467b97STreehugger Robot /// Pointer to an instantiation of 'class' #ANTLR3_TREE_PARSER 202*16467b97STreehugger Robot /// \ingroup ANTLR3_TREE_PARSER 203*16467b97STreehugger Robot /// 204*16467b97STreehugger Robot typedef struct ANTLR3_TREE_PARSER_struct *pANTLR3_TREE_PARSER; 205*16467b97STreehugger Robot 206*16467b97STreehugger Robot /// Pointer to an instantiation of 'class' #ANTLR3_INT_TRIE 207*16467b97STreehugger Robot /// \ingroup ANTLR3_INT_TRIE 208*16467b97STreehugger Robot /// 209*16467b97STreehugger Robot typedef struct ANTLR3_INT_TRIE_struct *pANTLR3_INT_TRIE; 210*16467b97STreehugger Robot 211*16467b97STreehugger Robot /// Pointer to an instantiation of 'class' #ANTLR3_REWRITE_RULE_ELEMENT_STREAM 212*16467b97STreehugger Robot /// \ingroup ANTLR3_REWRITE_RULE_ELEMENT_STREAM 213*16467b97STreehugger Robot /// 214*16467b97STreehugger Robot typedef struct ANTLR3_REWRITE_RULE_ELEMENT_STREAM_struct *pANTLR3_REWRITE_RULE_ELEMENT_STREAM; 215*16467b97STreehugger Robot /// Pointer to an instantiation of 'class' #ANTLR3_REWRITE_RULE_ELEMENT_STREAM 216*16467b97STreehugger Robot /// \ingroup ANTLR3_REWRITE_RULE_ELEMENT_STREAM 217*16467b97STreehugger Robot /// 218*16467b97STreehugger Robot typedef struct ANTLR3_REWRITE_RULE_ELEMENT_STREAM_struct *pANTLR3_REWRITE_RULE_TOKEN_STREAM; 219*16467b97STreehugger Robot 220*16467b97STreehugger Robot /// Pointer to an instantiation of 'class' #ANTLR3_REWRITE_RULE_SUBSTREE_STREAM 221*16467b97STreehugger Robot /// \ingroup ANTLR3_REWRITE_RULE_SUBTREE_STREAM 222*16467b97STreehugger Robot /// 223*16467b97STreehugger Robot typedef struct ANTLR3_REWRITE_RULE_ELEMENT_STREAM_struct *pANTLR3_REWRITE_RULE_SUBTREE_STREAM; 224*16467b97STreehugger Robot 225*16467b97STreehugger Robot /// Pointer to an instantiation of 'class' #ANTLR3_REWRITE_RULE_NODE_STREAM 226*16467b97STreehugger Robot /// \ingroup ANTLR3_REWRITE_RULE_NODE_STREAM 227*16467b97STreehugger Robot /// 228*16467b97STreehugger Robot typedef struct ANTLR3_REWRITE_RULE_ELEMENT_STREAM_struct *pANTLR3_REWRITE_RULE_NODE_STREAM; 229*16467b97STreehugger Robot 230*16467b97STreehugger Robot /// Pointer to an instantiation of 'class' #ANTLR3_DEBUG_EVENT_LISTENER 231*16467b97STreehugger Robot /// \ingroup ANTLR3_DEBUG_EVENT_LISTENER 232*16467b97STreehugger Robot /// 233*16467b97STreehugger Robot typedef struct ANTLR3_DEBUG_EVENT_LISTENER_struct *pANTLR3_DEBUG_EVENT_LISTENER; 234*16467b97STreehugger Robot 235*16467b97STreehugger Robot #ifdef __cplusplus 236*16467b97STreehugger Robot } 237*16467b97STreehugger Robot #endif 238*16467b97STreehugger Robot 239*16467b97STreehugger Robot #endif 240