1*16467b97STreehugger Robot// Definitions of documentation groups so we can organize the API and 2*16467b97STreehugger Robot// usage documentation nicely. 3*16467b97STreehugger Robot 4*16467b97STreehugger Robot/// \defgroup apiclasses API Classes 5*16467b97STreehugger Robot/// 6*16467b97STreehugger Robot/// The API classes are divided into the typdefs (and their underlying structs) 7*16467b97STreehugger Robot/// that are the containers for each 'object' within the ANTLR3C runtime, and 8*16467b97STreehugger Robot/// their implementations (the functions that are installed by default in to 9*16467b97STreehugger Robot/// these structures when you create them.) 10*16467b97STreehugger Robot/// 11*16467b97STreehugger Robot/// The typedefs contain data and function pointers, which together define 12*16467b97STreehugger Robot/// the object. The implementation functions are the default implementations 13*16467b97STreehugger Robot/// of the 'methds' encapsulated by the typdef structures.You may override 14*16467b97STreehugger Robot/// any of the methods once their objects are created by installing a pointer to 15*16467b97STreehugger Robot/// your own function. Some of these methods create other 'objects' (instances of 16*16467b97STreehugger Robot/// typedef structures), which allows you install your own method and create your 17*16467b97STreehugger Robot/// own implementation of these. 18*16467b97STreehugger Robot/// 19*16467b97STreehugger Robot 20*16467b97STreehugger Robot /// \defgroup apistructures API Typedefs and Structs 21*16467b97STreehugger Robot /// \ingroup apiclasses 22*16467b97STreehugger Robot /// 23*16467b97STreehugger Robot /// These structures (and the typedefs that you use to reference them 24*16467b97STreehugger Robot /// and their pointers) are the C equivalent of objects. They correspond 25*16467b97STreehugger Robot /// (roughly) to the Java runtime system classes and contain all the 26*16467b97STreehugger Robot /// data elements for a particular interface as well as all the pointers 27*16467b97STreehugger Robot /// to functions that implement these interfaces. 28*16467b97STreehugger Robot /// 29*16467b97STreehugger Robot /// There are constructor functions exported from the C runtime, which you 30*16467b97STreehugger Robot /// use to create a default implementation of one of these 'classes'. You can 31*16467b97STreehugger Robot /// then override any part of the implementation by installing your own 32*16467b97STreehugger Robot /// function pointers, before using the interface 'object' you have created. 33*16467b97STreehugger Robot /// 34*16467b97STreehugger Robot /// For instance, you can override the default error message reporting function 35*16467b97STreehugger Robot /// by replacing the standard (example) implementation of this function with 36*16467b97STreehugger Robot /// your own. In your grammar, you would place the following 37*16467b97STreehugger Robot /// 38*16467b97STreehugger Robot /// \code 39*16467b97STreehugger Robot /// @parser::apifuncs 40*16467b97STreehugger Robot /// { 41*16467b97STreehugger Robot /// // Install custom error message display 42*16467b97STreehugger Robot /// // 43*16467b97STreehugger Robot /// RECOGNIZER->displayRecognitionError = produceError; 44*16467b97STreehugger Robot /// } 45*16467b97STreehugger Robot /// \endcode 46*16467b97STreehugger Robot /// 47*16467b97STreehugger Robot /// The special section @parser::apiFuncs is guaranteed to be generated after 48*16467b97STreehugger Robot /// the RECONGIZER 'object' has already be created and initialized, so you may 49*16467b97STreehugger Robot /// install your own implementations of the #ANTLR3_BASE_RECOGNIZER interface 50*16467b97STreehugger Robot /// functions. The error display function is likely to be the only one you are 51*16467b97STreehugger Robot /// interested in replacing. 52*16467b97STreehugger Robot /// 53*16467b97STreehugger Robot /// Some typedef structures contain either pointers to 'inherited' objects (usual) 54*16467b97STreehugger Robot /// or embedded structures/typedefs (unusual). In some cases, the pointers passed 55*16467b97STreehugger Robot /// around by the paresr or tree parser are actually the pointers to these embedded 56*16467b97STreehugger Robot /// structures (such as #pANTLR3_BASE_TREE), and these embedded 'objects' contain 57*16467b97STreehugger Robot /// pointers to their encapsulating objects. This is the equivalent of passing 58*16467b97STreehugger Robot /// interface objects around in object oriented languages. 59*16467b97STreehugger Robot /// 60*16467b97STreehugger Robot 61*16467b97STreehugger Robot /// \defgroup ANTLR3_BASE_RECOGNIZER ANTLR3_BASE_RECOGNIZER - Base Recognizer Class Definition 62*16467b97STreehugger Robot /// \ingroup apistructures 63*16467b97STreehugger Robot /// 64*16467b97STreehugger Robot /// This is the definition of the base recognizer interface, instantiations 65*16467b97STreehugger Robot /// of which are referred to via #pANTLR3_BASE_RECOGNIZER. 66*16467b97STreehugger Robot /// 67*16467b97STreehugger Robot /// In general you will not refer to one of these structures directly as a 68*16467b97STreehugger Robot /// a #pANTLR3_BASE_RECOGNIZER will be embedded within a higher level 69*16467b97STreehugger Robot /// object such as #pANTLR3_PARSER 70*16467b97STreehugger Robot /// 71*16467b97STreehugger Robot /// \defgroup ANTLR3_RECOGNIZER_SHARED_STATE ANTLR3_RECOGNIZER_SHARED_STATE Recognizer Shared State Class Definition 72*16467b97STreehugger Robot /// \ingroup apistructures 73*16467b97STreehugger Robot /// \defgroup ANTLR3_BITSET ANTLR3_BITSET - Bitset Class Definition 74*16467b97STreehugger Robot /// \ingroup apistructures 75*16467b97STreehugger Robot /// \defgroup ANTLR3_TOKEN_FACTORY ANTLR3_TOKEN_FACTORY - Token Factory Class Definition 76*16467b97STreehugger Robot /// \ingroup apistructures 77*16467b97STreehugger Robot /// \defgroup ANTLR3_COMMON_TOKEN ANTLR3_COMMON_TOKEN - Common Token Class Definition 78*16467b97STreehugger Robot /// \ingroup apistructures 79*16467b97STreehugger Robot /// \defgroup ANTLR3_EXCEPTION ANTLR3_EXCEPTION - Exception Class Definition 80*16467b97STreehugger Robot /// \ingroup apistructures 81*16467b97STreehugger Robot /// \defgroup ANTLR3_HASH_BUCKET ANTLR3_HASH_BUCKET - Hash Table Bucket Class Definition 82*16467b97STreehugger Robot /// \ingroup apistructures 83*16467b97STreehugger Robot /// \defgroup ANTLR3_HASH_ENTRY ANTLR3_HASH_ENTRY - Hash Table Entry Class Definition 84*16467b97STreehugger Robot /// \ingroup apistructures 85*16467b97STreehugger Robot /// \defgroup ANTLR3_HASH_ENUM ANTLR3_HASH_ENUM - Hash Table Enumerator Class Definition 86*16467b97STreehugger Robot /// \ingroup apistructures 87*16467b97STreehugger Robot /// \defgroup ANTLR3_HASH_TABLE ANTLR3_HASH_TABLE - Hash Table Class Definition 88*16467b97STreehugger Robot /// \ingroup apistructures 89*16467b97STreehugger Robot /// \defgroup ANTLR3_LIST ANTLR3_LIST - List Class Definition 90*16467b97STreehugger Robot /// \ingroup apistructures 91*16467b97STreehugger Robot /// \defgroup ANTLR3_VECTOR_FACTORY ANTLR3_VECTOR_FACTORY - Vector Factory Class Definition 92*16467b97STreehugger Robot /// \ingroup apistructures 93*16467b97STreehugger Robot /// \defgroup ANTLR3_VECTOR ANTLR3_VECTOR - Vector Class Definition 94*16467b97STreehugger Robot /// \ingroup apistructures 95*16467b97STreehugger Robot /// \defgroup ANTLR3_STACK ANTLR3_STACK - Stack Class Definition 96*16467b97STreehugger Robot /// \ingroup apistructures 97*16467b97STreehugger Robot /// \defgroup ANTLR3_INPUT_STREAM ANTLR3_INPUT_STREAM - Input Stream Class Definition 98*16467b97STreehugger Robot /// \ingroup apistructures 99*16467b97STreehugger Robot /// \defgroup ANTLR3_LEX_STATE ANTLR3_LEX_STATE - Lexer State Class Definition 100*16467b97STreehugger Robot /// \ingroup apistructures 101*16467b97STreehugger Robot /// \defgroup ANTLR3_STRING_FACTORY ANTLR3_STRING_FACTORY - String Factory Class Definition 102*16467b97STreehugger Robot /// \ingroup apistructures 103*16467b97STreehugger Robot /// \defgroup ANTLR3_STRING ANTLR3_STRING - String Class Definition 104*16467b97STreehugger Robot /// \ingroup apistructures 105*16467b97STreehugger Robot /// \defgroup ANTLR3_TOKEN_SOURCE ANTLR3_TOKEN_SOURCE - Token Source Class Definition 106*16467b97STreehugger Robot /// \ingroup apistructures 107*16467b97STreehugger Robot /// \defgroup ANTLR3_TOKEN_STREAM ANTLR3_TOKEN_STREAM - Token Stream Class Definition 108*16467b97STreehugger Robot /// \ingroup apistructures 109*16467b97STreehugger Robot /// \defgroup ANTLR3_COMMON_TOKEN_STREAM ANTLR3_COMMON_TOKEN_STREAM - Common Token Stream Class Definition 110*16467b97STreehugger Robot /// \ingroup apistructures 111*16467b97STreehugger Robot /// \defgroup ANTLR3_CYCLIC_DFA ANTLR3_CYCLIC_DFA - Cyclic DFA Class Definition 112*16467b97STreehugger Robot /// \ingroup apistructures 113*16467b97STreehugger Robot /// \defgroup ANTLR3_LEXER ANTLR3_LEXER - Lexer Class Definition 114*16467b97STreehugger Robot /// \ingroup apistructures 115*16467b97STreehugger Robot /// \defgroup ANTLR3_PARSER ANTLR3_PARSER - Parser Class Definition 116*16467b97STreehugger Robot /// \ingroup apistructures 117*16467b97STreehugger Robot /// \defgroup ANTLR3_BASE_TREE ANTLR3_BASE_TREE - Base Tree Class Definition 118*16467b97STreehugger Robot /// \ingroup apistructures 119*16467b97STreehugger Robot /// \defgroup ANTLR3_COMMON_TREE ANTLR3_COMMON_TREE - Common Tree Class Definition 120*16467b97STreehugger Robot /// \ingroup apistructures 121*16467b97STreehugger Robot /// \defgroup ANTLR3_ARBORETUM ANTLR3_ARBORETUM - Tree Factory Class Definition 122*16467b97STreehugger Robot /// \ingroup apistructures 123*16467b97STreehugger Robot /// \defgroup ANTLR3_PARSE_TREE ANTLR3_PARSE_TREE - Parse Tree Class Definition 124*16467b97STreehugger Robot /// \ingroup apistructures 125*16467b97STreehugger Robot /// \defgroup ANTLR3_TREE_NODE_STREAM ANTLR3_TREE_NODE_STREAM - Tree Node Class Definition 126*16467b97STreehugger Robot /// \ingroup apistructures 127*16467b97STreehugger Robot /// \defgroup ANTLR3_COMMON_TREE_NODE_STREAM ANTLR3_COMMON_TREE_NODE_STREAM - Common Tree Node Class Definition 128*16467b97STreehugger Robot /// \ingroup apistructures 129*16467b97STreehugger Robot /// \defgroup ANTLR3_TREE_WALK_STATE ANTLR3_TREE_WALK_STATE - Tree Walk State Class Definition 130*16467b97STreehugger Robot /// \ingroup apistructures 131*16467b97STreehugger Robot /// \defgroup ANTLR3_BASE_TREE_ADAPTOR ANTLR3_BASE_TREE_ADAPTOR - Base Tree Class Definition 132*16467b97STreehugger Robot /// \ingroup apistructures 133*16467b97STreehugger Robot /// \defgroup ANTLR3_COMMON_TREE_ADAPTOR ANTLR3_COMMON_TREE_ADAPTOR - Common Tree Adaptor Class Definition 134*16467b97STreehugger Robot /// \ingroup apistructures 135*16467b97STreehugger Robot /// \defgroup ANTLR3_TREE_PARSER ANTLR3_TREE_PARSER - Tree Parser Class Definition 136*16467b97STreehugger Robot /// \ingroup apistructures 137*16467b97STreehugger Robot /// \defgroup ANTLR3_INT_TRIE ANTLR3_INT_TRIE - Trie Class Definition 138*16467b97STreehugger Robot /// \ingroup apistructures 139*16467b97STreehugger Robot /// \defgroup ANTLR3_REWRITE_RULE_ELEMENT_STREAM ANTLR3_REWRITE_RULE_ELEMENT_STREAM - Token Rewrite Stream Class Definition 140*16467b97STreehugger Robot /// \ingroup apistructures 141*16467b97STreehugger Robot /// \defgroup ANTLR3_DEBUG_EVENT_LISTENER ANTLR3_DEBUG_EVENT_LISTENER - Debugger Class Definition 142*16467b97STreehugger Robot /// \ingroup apistructures 143*16467b97STreehugger Robot 144*16467b97STreehugger Robot /// \defgroup apiimplementations API Implementation functions 145*16467b97STreehugger Robot /// \ingroup apiclasses 146*16467b97STreehugger Robot /// 147*16467b97STreehugger Robot /// API implementation functions are the default implementation of each of the 148*16467b97STreehugger Robot /// methods in a particular typedef structure. 149*16467b97STreehugger Robot /// 150*16467b97STreehugger Robot /// They are generally grouped together in the same source code file. 151*16467b97STreehugger Robot /// For instance the default implementations of the 152*16467b97STreehugger Robot /// methods contained by a #pANTLR3_BASE_RECOGNIZER will be found in the file 153*16467b97STreehugger Robot /// antlr3baserecognizer.c 154*16467b97STreehugger Robot /// 155*16467b97STreehugger Robot /// A source file that provides the default implementations of functions will usually 156*16467b97STreehugger Robot /// also supply the public (exported from the .DLL or code library) 'constructor' functions 157*16467b97STreehugger Robot /// that create and initialize the typedef structure that they implement. For instance, 158*16467b97STreehugger Robot /// in the antlr3baserecognizer.c file, you will find the function antlr3BaseRecognizerNew() 159*16467b97STreehugger Robot /// 160*16467b97STreehugger Robot 161*16467b97STreehugger Robot /// \defgroup pANTLR3_BASE_RECOGNIZER pANTLR3_BASE_RECOGNIZER Base Recognizer Implementation 162*16467b97STreehugger Robot /// \ingroup apiimplementations 163*16467b97STreehugger Robot /// 164*16467b97STreehugger Robot /// The base recognizer interface is implemented by all higher level recognizers 165*16467b97STreehugger Robot /// such as #pANTLR3_PARSER and provides methods common to all recognizers. 166*16467b97STreehugger Robot /// 167*16467b97STreehugger Robot /// \defgroup pANTLR3_RECOGNIZER_SHARED_STATE pANTLR3_RECOGNIZER_SHARED_STATE - Recognizer Shared State Implementation 168*16467b97STreehugger Robot /// \ingroup apiimplementations 169*16467b97STreehugger Robot /// 170*16467b97STreehugger Robot /// The recognizer shared state class does not have an implementation because it contains only 171*16467b97STreehugger Robot /// data fields, documented at #ANTLR3_RECOGNIZER_SHARED_STATE 172*16467b97STreehugger Robot /// 173*16467b97STreehugger Robot /// \defgroup pANTLR3_BITSET pANTLR3_BITSET - Bitset Implementation 174*16467b97STreehugger Robot /// \ingroup apiimplementations 175*16467b97STreehugger Robot /// \defgroup pANTLR3_TOKEN_FACTORY pANTLR3_TOKEN_FACTORY - Token Factory Implementation 176*16467b97STreehugger Robot /// \ingroup apiimplementations 177*16467b97STreehugger Robot /// \defgroup pANTLR3_COMMON_TOKEN pANTLR3_COMMON_TOKEN - Common Token Implementation 178*16467b97STreehugger Robot /// \ingroup apiimplementations 179*16467b97STreehugger Robot /// \defgroup pANTLR3_EXCEPTION pANTLR3_EXCEPTION - Exception Implementation 180*16467b97STreehugger Robot /// \ingroup apiimplementations 181*16467b97STreehugger Robot /// \defgroup pANTLR3_HASH_BUCKET pANTLR3_HASH_BUCKET - Hash Table Bucket Implementation 182*16467b97STreehugger Robot /// \ingroup apiimplementations 183*16467b97STreehugger Robot /// \defgroup pANTLR3_HASH_ENTRY pANTLR3_HASH_ENTRY - Hash Table Entry Implementation 184*16467b97STreehugger Robot /// \ingroup apiimplementations 185*16467b97STreehugger Robot /// \defgroup pANTLR3_HASH_ENUM pANTLR3_HASH_ENUM - Hash Table Enumerator Implementation 186*16467b97STreehugger Robot /// \ingroup apiimplementations 187*16467b97STreehugger Robot /// \defgroup pANTLR3_HASH_TABLE pANTLR3_HASH_TABLE - Hash Table Implementation 188*16467b97STreehugger Robot /// \ingroup apiimplementations 189*16467b97STreehugger Robot /// \defgroup pANTLR3_LIST pANTLR3_LIST - List Implementation 190*16467b97STreehugger Robot /// \ingroup apiimplementations 191*16467b97STreehugger Robot /// \defgroup pANTLR3_VECTOR_FACTORY pANTLR3_VECTOR_FACTORY - Vector Factory Implementation 192*16467b97STreehugger Robot /// \ingroup apiimplementations 193*16467b97STreehugger Robot /// \defgroup pANTLR3_VECTOR pANTLR3_VECTOR - Vector Implementation 194*16467b97STreehugger Robot /// \ingroup apiimplementations 195*16467b97STreehugger Robot /// \defgroup pANTLR3_STACK pANTLR3_STACK - Stack Implementation 196*16467b97STreehugger Robot /// \ingroup apiimplementations 197*16467b97STreehugger Robot /// \defgroup pANTLR3_INPUT_STREAM pANTLR3_INPUT_STREAM - Input Stream Implementation 198*16467b97STreehugger Robot /// \ingroup apiimplementations 199*16467b97STreehugger Robot /// \defgroup pANTLR3_LEX_STATE pANTLR3_LEX_STATE - Lexer State Implementation 200*16467b97STreehugger Robot /// \ingroup apiimplementations 201*16467b97STreehugger Robot /// \defgroup pANTLR3_STRING_FACTORY pANTLR3_STRING_FACTORY - String Factory Implementation 202*16467b97STreehugger Robot /// \ingroup apiimplementations 203*16467b97STreehugger Robot /// \defgroup pANTLR3_STRING pANTLR3_STRING - String Implementation 204*16467b97STreehugger Robot /// \ingroup apiimplementations 205*16467b97STreehugger Robot /// \defgroup pANTLR3_TOKEN_SOURCE pANTLR3_TOKEN_SOURCE - Token Source Implementation 206*16467b97STreehugger Robot /// \ingroup apiimplementations 207*16467b97STreehugger Robot /// \defgroup pANTLR3_TOKEN_STREAM pANTLR3_TOKEN_STREAM - Token Stream Implementation 208*16467b97STreehugger Robot /// \ingroup apiimplementations 209*16467b97STreehugger Robot /// \defgroup pANTLR3_COMMON_TOKEN_STREAM pANTLR3_COMMON_TOKEN_STREAM - Common Token Implementation 210*16467b97STreehugger Robot /// \ingroup apiimplementations 211*16467b97STreehugger Robot /// \defgroup pANTLR3_CYCLIC_DFA pANTLR3_CYCLIC_DFA - Cyclic DFA Implementation 212*16467b97STreehugger Robot /// \ingroup apiimplementations 213*16467b97STreehugger Robot /// \defgroup pANTLR3_LEXER pANTLR3_LEXER - Lexer Implementation 214*16467b97STreehugger Robot /// \ingroup apiimplementations 215*16467b97STreehugger Robot /// \defgroup pANTLR3_PARSER pANTLR3_PARSER - Parser Implementation 216*16467b97STreehugger Robot /// \ingroup apiimplementations 217*16467b97STreehugger Robot /// \defgroup pANTLR3_BASE_TREE pANTLR3_BASE_TREE - Base Tree Implementation 218*16467b97STreehugger Robot /// \ingroup apiimplementations 219*16467b97STreehugger Robot /// \defgroup pANTLR3_COMMON_TREE pANTLR3_COMMON_TREE - Common Tree Implementation 220*16467b97STreehugger Robot /// \ingroup apiimplementations 221*16467b97STreehugger Robot /// \defgroup pANTLR3_ARBORETUM pANTLR3_ARBORETUM - Tree Factory Implementation 222*16467b97STreehugger Robot /// \ingroup apiimplementations 223*16467b97STreehugger Robot /// \defgroup pANTLR3_PARSE_TREE pANTLR3_PARSE_TREE - Parse Tree Implementation 224*16467b97STreehugger Robot /// \ingroup apiimplementations 225*16467b97STreehugger Robot /// \defgroup pANTLR3_TREE_NODE_STREAM pANTLR3_TREE_NODE_STREAM - Tree Node Stream Implementation 226*16467b97STreehugger Robot /// \ingroup apiimplementations 227*16467b97STreehugger Robot /// \defgroup pANTLR3_COMMON_TREE_NODE_STREAM pANTLR3_COMMON_TREE_NODE_STREAM - Common Tree Node Stream Implementation 228*16467b97STreehugger Robot /// \ingroup apiimplementations 229*16467b97STreehugger Robot /// \defgroup pANTLR3_TREE_WALK_STATE pANTLR3_TREE_WALK_STATE - Tree Walk State Implementation 230*16467b97STreehugger Robot /// \ingroup apiimplementations 231*16467b97STreehugger Robot /// \defgroup pANTLR3_BASE_TREE_ADAPTOR pANTLR3_BASE_TREE_ADAPTOR - Base Tree Adaptor Implementation 232*16467b97STreehugger Robot /// \ingroup apiimplementations 233*16467b97STreehugger Robot /// \defgroup pANTLR3_COMMON_TREE_ADAPTOR pANTLR3_COMMON_TREE_ADAPTOR - Common Tree Adaptor Implementation 234*16467b97STreehugger Robot /// \ingroup apiimplementations 235*16467b97STreehugger Robot /// \defgroup pANTLR3_TREE_PARSER pANTLR3_TREE_PARSER - Tree ParserImplementation 236*16467b97STreehugger Robot /// \ingroup apiimplementations 237*16467b97STreehugger Robot /// \defgroup pANTLR3_INT_TRIE pANTLR3_INT_TRIE - Trie Implementation 238*16467b97STreehugger Robot /// \ingroup apiimplementations 239*16467b97STreehugger Robot /// \defgroup pANTLR3_REWRITE_RULE_ELEMENT_STREAM pANTLR3_REWRITE_RULE_ELEMENT_STREAM - Token Rewrite Stream Implementation 240*16467b97STreehugger Robot /// \ingroup apiimplementations 241*16467b97STreehugger Robot /// \defgroup pANTLR3_DEBUG_EVENT_LISTENER pANTLR3_DEBUG_EVENT_LISTENER - Debugger Implementation 242*16467b97STreehugger Robot /// \ingroup apiimplementations 243*16467b97STreehugger Robot