001 //
002 // Generated by JTB 1.1.2
003 //
004
005 package jtb.cparser.visitor;
006 import jtb.cparser.syntaxtree.*;
007 import java.util.*;
008
009 /**
010 * All visitors must implement this interface.
011 */
012 public interface Visitor {
013 //
014 // Auto class visitors
015 //
016 public void visit(NodeList n);
017 public void visit(NodeListOptional n);
018 public void visit(NodeOptional n);
019 public void visit(NodeSequence n);
020 public void visit(NodeToken n);
021
022 //
023 // User-generated visitor methods below
024 //
025
026 /**
027 * f0 -> ( ExternalDeclaration() )+
028 */
029 public void visit(TranslationUnit n);
030
031 /**
032 * f0 -> ( FunctionDefinition() | Declaration() )
033 */
034 public void visit(ExternalDeclaration n);
035
036 /**
037 * f0 -> [ DeclarationSpecifiers() ]
038 * f1 -> Declarator()
039 * f2 -> [ DeclarationList() ]
040 * f3 -> CompoundStatement()
041 */
042 public void visit(FunctionDefinition n);
043
044 /**
045 * f0 -> DeclarationSpecifiers()
046 * f1 -> [ InitDeclaratorList() ]
047 * f2 -> ";"
048 */
049 public void visit(Declaration n);
050
051 /**
052 * f0 -> ( Declaration() )+
053 */
054 public void visit(DeclarationList n);
055
056 /**
057 * f0 -> StorageClassSpecifier() [ DeclarationSpecifiers() ]
058 * | TypeSpecifier() [ DeclarationSpecifiers() ]
059 * | TypeQualifier() [ DeclarationSpecifiers() ]
060 */
061 public void visit(DeclarationSpecifiers n);
062
063 /**
064 * f0 -> ( < AUTO > | <REGISTER> | <STATIC> | <EXTERN> | <TYPEDEF> )
065 */
066 public void visit(StorageClassSpecifier n);
067
068 /**
069 * f0 -> ( <VOID> | <CHAR> | <SHORT> | <INT> | <LONG> | <FLOAT> | <DOUBLE> | <SIGNED> | <UNSIGNED> | StructOrUnionSpecifier() | EnumSpecifier() | TypedefName() )
070 */
071 public void visit(TypeSpecifier n);
072
073 /**
074 * f0 -> ( <CONST> | <VOLATILE> )
075 */
076 public void visit(TypeQualifier n);
077
078 /**
079
080 * f0 -> StructOrUnion()
081 * f1 -> ( [ <IDENTIFIER> ] "{" StructDeclarationList() "}" | <IDENTIFIER> )
082 */
083 public void visit(StructOrUnionSpecifier n);
084
085 /**
086 * f0 -> ( <STRUCT> | <UNION> )
087 */
088 public void visit(StructOrUnion n);
089
090 /**
091 * f0 -> ( StructDeclaration() )+
092 */
093 public void visit(StructDeclarationList n);
094
095 /**
096 * f0 -> InitDeclarator()
097 * f1 -> ( "," InitDeclarator() )*
098 */
099 public void visit(InitDeclaratorList n);
100
101 /**
102 * f0 -> Declarator()
103 * f1 -> [ "=" Initializer() ]
104 */
105 public void visit(InitDeclarator n);
106
107 /**
108 * f0 -> SpecifierQualifierList()
109 * f1 -> StructDeclaratorList()
110 * f2 -> ";"
111 */
112 public void visit(StructDeclaration n);
113
114 /**
115 * f0 -> TypeSpecifier() [ SpecifierQualifierList() ]
116 * | TypeQualifier() [ SpecifierQualifierList() ]
117 */
118 public void visit(SpecifierQualifierList n);
119
120 /**
121 * f0 -> StructDeclarator()
122 * f1 -> ( "," StructDeclarator() )*
123 */
124 public void visit(StructDeclaratorList n);
125
126 /**
127 * f0 -> ( Declarator() | [ Declarator() ] ":" ConstantExpression() )
128 */
129 public void visit(StructDeclarator n);
130
131 /**
132 * f0 -> <ENUM>
133 * f1 -> ( [ <IDENTIFIER> ] "{" EnumeratorList() "}" | <IDENTIFIER> )
134 */
135 public void visit(EnumSpecifier n);
136
137 /**
138 * f0 -> Enumerator()
139 * f1 -> ( "," Enumerator() )*
140 */
141 public void visit(EnumeratorList n);
142
143 /**
144 * f0 -> <IDENTIFIER>
145 * f1 -> [ "=" ConstantExpression() ]
146 */
147 public void visit(Enumerator n);
148
149 /**
150 * f0 -> [ Pointer() ]
151 * f1 -> DirectDeclarator()
152 */
153 public void visit(Declarator n);
154
155 /**
156 * f0 -> ( t=<IDENTIFIER> | "(" Declarator() ")" )
157 * f1 -> ( "[" [ ConstantExpression() ] "]" | "(" ParameterTypeList() ")" | "(" [ IdentifierList() ] ")" )*
158 */
159 public void visit(DirectDeclarator n);
160
161 /**
162 * f0 -> "*"
163 * f1 -> [ TypeQualifierList() ]
164 * f2 -> [ Pointer() ]
165 */
166 public void visit(Pointer n);
167
168 /**
169 * f0 -> ( TypeQualifier() )+
170 */
171 public void visit(TypeQualifierList n);
172
173 /**
174 * f0 -> ParameterList()
175 * f1 -> [ "," "..." ]
176 */
177 public void visit(ParameterTypeList n);
178
179 /**
180 * f0 -> ParameterDeclaration()
181 * f1 -> ( "," ParameterDeclaration() )*
182 */
183 public void visit(ParameterList n);
184
185 /**
186 * f0 -> DeclarationSpecifiers()
187 * f1 -> ( Declarator() | [ AbstractDeclarator() ] )
188 */
189 public void visit(ParameterDeclaration n);
190
191 /**
192 * f0 -> <IDENTIFIER>
193 * f1 -> ( "," <IDENTIFIER> )*
194 */
195 public void visit(IdentifierList n);
196
197 /**
198 * f0 -> ( AssignmentExpression() | "{" InitializerList() [ "," ] "}" )
199 */
200 public void visit(Initializer n);
201
202 /**
203 * f0 -> Initializer()
204 * f1 -> ( "," Initializer() )*
205 */
206 public void visit(InitializerList n);
207
208 /**
209 * f0 -> SpecifierQualifierList()
210 * f1 -> [ AbstractDeclarator() ]
211 */
212 public void visit(TypeName n);
213
214 /**
215 * f0 -> ( Pointer() | [ Pointer() ] DirectAbstractDeclarator() )
216 */
217 public void visit(AbstractDeclarator n);
218
219 /**
220 * f0 -> ( "(" AbstractDeclarator() ")" | "[" [ ConstantExpression() ] "]" | "(" [ ParameterTypeList() ] ")" )
221 * f1 -> ( "[" [ ConstantExpression() ] "]" | "(" [ ParameterTypeList() ] ")" )*
222 */
223 public void visit(DirectAbstractDeclarator n);
224
225 /**
226 * f0 -> <IDENTIFIER>
227 */
228 public void visit(TypedefName n);
229
230 /**
231 * f0 -> ( LabeledStatement() | ExpressionStatement() | CompoundStatement() | SelectionStatement() | IterationStatement() | JumpStatement() )
232 */
233 public void visit(Statement n);
234
235 /**
236 * f0 -> ( <IDENTIFIER> ":" Statement() | <CASE> ConstantExpression() ":" Statement() | <DFLT> ":" Statement() )
237 */
238 public void visit(LabeledStatement n);
239
240 /**
241 * f0 -> [ Expression() ]
242 * f1 -> ";"
243 */
244 public void visit(ExpressionStatement n);
245
246 /**
247 * f0 -> "{"
248 * f1 -> [ DeclarationList() ]
249 * f2 -> [ StatementList() ]
250 * f3 -> "}"
251 */
252 public void visit(CompoundStatement n);
253
254 /**
255 * f0 -> ( Statement() )+
256 */
257 public void visit(StatementList n);
258
259 /**
260 * f0 -> ( <IF> "(" Expression() ")" Statement() [ <ELSE> Statement() ] | <SWITCH> "(" Expression() ")" Statement() )
261 */
262 public void visit(SelectionStatement n);
263
264 /**
265 * f0 -> ( <WHILE> "(" Expression() ")" Statement() | <DO> Statement() <WHILE> "(" Expression() ")" ";" | <FOR> "(" [ Expression() ] ";" [ Expression() ] ";" [ Expression() ] ")" Statement() )
266 */
267 public void visit(IterationStatement n);
268
269 /**
270 * f0 -> ( <GOTO> <IDENTIFIER> ";" | <CONTINUE> ";" | <BREAK> ";" | <RETURN> [ Expression() ] ";" )
271 */
272 public void visit(JumpStatement n);
273
274 /**
275 * f0 -> AssignmentExpression()
276 * f1 -> ( "," AssignmentExpression() )*
277 */
278 public void visit(Expression n);
279
280 /**
281 * f0 -> UnaryExpression() AssignmentOperator() AssignmentExpression()
282 * | ConditionalExpression()
283 */
284 public void visit(AssignmentExpression n);
285
286 /**
287 * f0 -> ( "=" | "*=" | "/=" | "%=" | "+=" | "-=" | "<<=" | ">>=" | "&=" | "^=" | "|=" )
288 */
289 public void visit(AssignmentOperator n);
290
291 /**
292 * f0 -> LogicalORExpression()
293 * f1 -> [ "?" Expression() ":" ConditionalExpression() ]
294 */
295 public void visit(ConditionalExpression n);
296
297 /**
298 * f0 -> ConditionalExpression()
299 */
300 public void visit(ConstantExpression n);
301
302 /**
303 * f0 -> LogicalANDExpression()
304 * f1 -> [ "||" LogicalORExpression() ]
305 */
306 public void visit(LogicalORExpression n);
307
308 /**
309 * f0 -> InclusiveORExpression()
310 * f1 -> [ "&&" LogicalANDExpression() ]
311 */
312 public void visit(LogicalANDExpression n);
313
314 /**
315 * f0 -> ExclusiveORExpression()
316 * f1 -> [ "|" InclusiveORExpression() ]
317 */
318 public void visit(InclusiveORExpression n);
319
320 /**
321 * f0 -> ANDExpression()
322 * f1 -> [ "^" ExclusiveORExpression() ]
323 */
324 public void visit(ExclusiveORExpression n);
325
326 /**
327 * f0 -> EqualityExpression()
328 * f1 -> [ "&" ANDExpression() ]
329 */
330 public void visit(ANDExpression n);
331
332 /**
333 * f0 -> RelationalExpression()
334 * f1 -> [ ( "==" | "!=" ) EqualityExpression() ]
335 */
336 public void visit(EqualityExpression n);
337
338 /**
339 * f0 -> ShiftExpression()
340 * f1 -> [ ( "<" | ">" | "<=" | ">=" ) RelationalExpression() ]
341 */
342 public void visit(RelationalExpression n);
343
344 /**
345 * f0 -> AdditiveExpression()
346 * f1 -> [ ( "<<" | ">>" ) ShiftExpression() ]
347 */
348 public void visit(ShiftExpression n);
349
350 /**
351 * f0 -> MultiplicativeExpression()
352 * f1 -> [ ( "+" | "-" ) AdditiveExpression() ]
353 */
354 public void visit(AdditiveExpression n);
355
356 /**
357 * f0 -> CastExpression()
358 * f1 -> [ ( "*" | "/" | "%" ) MultiplicativeExpression() ]
359 */
360 public void visit(MultiplicativeExpression n);
361
362 /**
363 * f0 -> ( "(" TypeName() ")" CastExpression() | UnaryExpression() )
364 */
365 public void visit(CastExpression n);
366
367 /**
368 * f0 -> ( PostfixExpression() | "++" UnaryExpression() | "--" UnaryExpression() | UnaryOperator() CastExpression() | <SIZEOF> ( UnaryExpression() | "(" TypeName() ")" ) )
369 */
370 public void visit(UnaryExpression n);
371
372 /**
373 * f0 -> ( "&" | "*" | "+" | "-" | "~" | "!" )
374 */
375 public void visit(UnaryOperator n);
376
377 /**
378 * f0 -> PrimaryExpression()
379 * f1 -> ( "[" Expression() "]" | "(" [ ArgumentExpressionList() ] ")" | "." <IDENTIFIER> | "->" <IDENTIFIER> | "++" | "--" )*
380 */
381 public void visit(PostfixExpression n);
382
383 /**
384 * f0 -> ( <IDENTIFIER> | Constant() | "(" Expression() ")" )
385 */
386 public void visit(PrimaryExpression n);
387
388 /**
389 * f0 -> AssignmentExpression()
390 * f1 -> ( "," AssignmentExpression() )*
391 */
392 public void visit(ArgumentExpressionList n);
393
394 /**
395 * f0 -> <INTEGER_LITERAL>
396 * | <FLOATING_POINT_LITERAL>
397 * | <CHARACTER_LITERAL>
398 * | <STRING_LITERAL>
399 */
400 public void visit(Constant n);
401
402 }