xref: /aosp_15_r20/external/antlr/runtime/C/doxygen/doxygengroups.dox (revision 16467b971bd3e2009fad32dd79016f2c7e421deb)
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