2 // Generated by JTB 1.3.2
5 package org.gnunet.seaspider.parser.visitors;
6 import org.gnunet.seaspider.parser.nodes.*;
11 * Provides default methods which visit each node in the tree in depth-first
12 * order. Your visitors may extend this class.
14 public class GJVoidDepthFirst<A> implements GJVoidVisitor<A> {
16 // Auto class visitors--probably don't need to be overridden.
18 public void visit(NodeList n, A argu) {
20 for ( Enumeration<Node> e = n.elements(); e.hasMoreElements(); ) {
21 e.nextElement().accept(this,argu);
26 public void visit(NodeListOptional n, A argu) {
29 for ( Enumeration<Node> e = n.elements(); e.hasMoreElements(); ) {
30 e.nextElement().accept(this,argu);
36 public void visit(NodeOptional n, A argu) {
38 n.node.accept(this,argu);
41 public void visit(NodeSequence n, A argu) {
43 for ( Enumeration<Node> e = n.elements(); e.hasMoreElements(); ) {
44 e.nextElement().accept(this,argu);
49 public void visit(NodeToken n, A argu) {}
52 // User-generated visitor methods below
57 * f0 -> ( ExternalDeclaration() )+
60 public void visit(TranslationUnit n, A argu) {
61 n.f0.accept(this, argu);
66 * f0 -> ( StorageClassSpecifier() )*
67 * f1 -> ( FunctionDeclaration() | StructOrUnionSpecifier() | VariableDeclaration() | TypeDeclaration() )
70 public void visit(ExternalDeclaration n, A argu) {
71 n.f0.accept(this, argu);
72 n.f1.accept(this, argu);
77 * f0 -> TypeSpecifier()
78 * f1 -> <IDENTIFIER>
80 * f3 -> [ ParameterList() ]
82 * f5 -> ( ";" | CompoundStatement() )
85 public void visit(FunctionDeclaration n, A argu) {
86 n.f0.accept(this, argu);
87 n.f1.accept(this, argu);
88 n.f2.accept(this, argu);
89 n.f3.accept(this, argu);
90 n.f4.accept(this, argu);
91 n.f5.accept(this, argu);
96 * f0 -> ( <STATIC> | <EXTERN> )
99 public void visit(StorageClassSpecifier n, A argu) {
100 n.f0.accept(this, argu);
105 * f0 -> <TYPEDEF>
106 * f1 -> ( DataType() | FunctionType() )
110 public void visit(TypeDeclaration n, A argu) {
111 n.f0.accept(this, argu);
112 n.f1.accept(this, argu);
113 n.f2.accept(this, argu);
118 * f0 -> StructOrUnionSpecifier()
119 * f1 -> <IDENTIFIER>
122 public void visit(DataType n, A argu) {
123 n.f0.accept(this, argu);
124 n.f1.accept(this, argu);
129 * f0 -> TypeSpecifier()
132 * f3 -> <IDENTIFIER>
135 * f6 -> [ ParameterList() ]
139 public void visit(FunctionType n, A argu) {
140 n.f0.accept(this, argu);
141 n.f1.accept(this, argu);
142 n.f2.accept(this, argu);
143 n.f3.accept(this, argu);
144 n.f4.accept(this, argu);
145 n.f5.accept(this, argu);
146 n.f6.accept(this, argu);
147 n.f7.accept(this, argu);
152 * f0 -> ParameterDeclaration()
153 * f1 -> ( "," ParameterDeclaration() )*
154 * f2 -> [ "," "..." ]
157 public void visit(ParameterList n, A argu) {
158 n.f0.accept(this, argu);
159 n.f1.accept(this, argu);
160 n.f2.accept(this, argu);
165 * f0 -> TypeSpecifier()
166 * f1 -> <IDENTIFIER>
170 public void visit(ParameterDeclaration n, A argu) {
171 n.f0.accept(this, argu);
172 n.f1.accept(this, argu);
173 n.f2.accept(this, argu);
178 * f0 -> VariableClassSpecifier()
179 * f1 -> TypeSpecifier()
180 * f2 -> InitDeclaratorList()
184 public void visit(VariableDeclaration n, A argu) {
185 n.f0.accept(this, argu);
186 n.f1.accept(this, argu);
187 n.f2.accept(this, argu);
188 n.f3.accept(this, argu);
193 * f0 -> [ <STATIC> ]
194 * f1 -> VariableDeclaration()
197 public void visit(LocalVariableDeclaration n, A argu) {
198 n.f0.accept(this, argu);
199 n.f1.accept(this, argu);
204 * f0 -> ( <AUTO> | <REGISTER> )*
207 public void visit(VariableClassSpecifier n, A argu) {
208 n.f0.accept(this, argu);
213 * f0 -> [ <CONST> ]
214 * f1 -> ( <VOID> | <CHAR> | <SHORT> [ <INT> ] | <INT> | <LONG> [ <LONG> ] | <FLOAT> | <DOUBLE> | ( <SIGNED> | <UNSIGNED> ) [ <CHAR> | <SHORT> [ <INT> ] | <INT> | <LONG> [ <LONG> ] ] | StructOrUnionSpecifier() | EnumSpecifier() | <IDENTIFIER> )
215 * f2 -> [ Pointer() ]
219 public void visit(TypeSpecifier n, A argu) {
220 n.f0.accept(this, argu);
221 n.f1.accept(this, argu);
222 n.f2.accept(this, argu);
223 n.f3.accept(this, argu);
228 * f0 -> [ <CONST> ]
229 * f1 -> ( <VOID> | <CHAR> | <SHORT> [ <INT> ] | <INT> | <LONG> [ <LONG> ] | <FLOAT> | <DOUBLE> | ( <SIGNED> | <UNSIGNED> ) [ <CHAR> | <SHORT> [ <INT> ] | <INT> | <LONG> [ <LONG> ] ] | StructOrUnionSpecifier() | EnumSpecifier() )
230 * f2 -> [ Pointer() ]
234 public void visit(NoIdentifierTypeSpecifier n, A argu) {
235 n.f0.accept(this, argu);
236 n.f1.accept(this, argu);
237 n.f2.accept(this, argu);
238 n.f3.accept(this, argu);
243 * f0 -> StructOrUnion() [ <IDENTIFIER> ] "{" StructDeclarationList() "}"
244 * | StructOrUnion() <IDENTIFIER>
247 public void visit(StructOrUnionSpecifier n, A argu) {
248 n.f0.accept(this, argu);
253 * f0 -> ( <STRUCT> | <UNION> )
256 public void visit(StructOrUnion n, A argu) {
257 n.f0.accept(this, argu);
262 * f0 -> ( StructDeclaration() )+
265 public void visit(StructDeclarationList n, A argu) {
266 n.f0.accept(this, argu);
271 * f0 -> InitDeclarator()
272 * f1 -> ( "," InitDeclarator() )*
275 public void visit(InitDeclaratorList n, A argu) {
276 n.f0.accept(this, argu);
277 n.f1.accept(this, argu);
282 * f0 -> <IDENTIFIER>
284 * f2 -> [ "=" Initializer() ]
287 public void visit(InitDeclarator n, A argu) {
288 n.f0.accept(this, argu);
289 n.f1.accept(this, argu);
290 n.f2.accept(this, argu);
295 * f0 -> TypeSpecifier()
296 * f1 -> <IDENTIFIER>
297 * f2 -> [ Array() | ":" ConstantExpression() ]
298 * f3 -> [ <IDENTIFIER> ]
302 public void visit(StructDeclaration n, A argu) {
303 n.f0.accept(this, argu);
304 n.f1.accept(this, argu);
305 n.f2.accept(this, argu);
306 n.f3.accept(this, argu);
307 n.f4.accept(this, argu);
313 * f1 -> ( [ <IDENTIFIER> ] "{" EnumeratorList() "}" | <IDENTIFIER> )
316 public void visit(EnumSpecifier n, A argu) {
317 n.f0.accept(this, argu);
318 n.f1.accept(this, argu);
324 * f1 -> ( "," Enumerator() )*
327 public void visit(EnumeratorList n, A argu) {
328 n.f0.accept(this, argu);
329 n.f1.accept(this, argu);
334 * f0 -> <IDENTIFIER>
335 * f1 -> [ "=" ConstantExpression() ]
338 public void visit(Enumerator n, A argu) {
339 n.f0.accept(this, argu);
340 n.f1.accept(this, argu);
346 * f1 -> [ <CONST> ]
347 * f2 -> [ Pointer() ]
350 public void visit(Pointer n, A argu) {
351 n.f0.accept(this, argu);
352 n.f1.accept(this, argu);
353 n.f2.accept(this, argu);
358 * f0 -> <IDENTIFIER>
359 * f1 -> ( "," <IDENTIFIER> )*
362 public void visit(IdentifierList n, A argu) {
363 n.f0.accept(this, argu);
364 n.f1.accept(this, argu);
369 * f0 -> ( AssignmentExpression() | "{" InitializerList() [ "," ] "}" )
372 public void visit(Initializer n, A argu) {
373 n.f0.accept(this, argu);
378 * f0 -> Initializer()
379 * f1 -> ( "," Initializer() )*
382 public void visit(InitializerList n, A argu) {
383 n.f0.accept(this, argu);
384 n.f1.accept(this, argu);
390 * f1 -> [ ConstantExpression() ]
394 public void visit(Array n, A argu) {
395 n.f0.accept(this, argu);
396 n.f1.accept(this, argu);
397 n.f2.accept(this, argu);
402 * f0 -> ( LabeledStatement() | ExpressionStatement() | CompoundStatement() | SelectionStatement() | IterationStatement() | JumpStatement() )
405 public void visit(Statement n, A argu) {
406 n.f0.accept(this, argu);
411 * f0 -> ( <IDENTIFIER> ":" Statement() | <CASE> ConstantExpression() ":" Statement() | <DFLT> ":" Statement() )
414 public void visit(LabeledStatement n, A argu) {
415 n.f0.accept(this, argu);
420 * f0 -> [ Expression() ]
424 public void visit(ExpressionStatement n, A argu) {
425 n.f0.accept(this, argu);
426 n.f1.accept(this, argu);
432 * f1 -> ( LocalVariableDeclaration() | Statement() )*
436 public void visit(CompoundStatement n, A argu) {
437 n.f0.accept(this, argu);
438 n.f1.accept(this, argu);
439 n.f2.accept(this, argu);
444 * f0 -> ( <IF> "(" Expression() ")" Statement() [ <ELSE> Statement() ] | <SWITCH> "(" Expression() ")" Statement() )
447 public void visit(SelectionStatement n, A argu) {
448 n.f0.accept(this, argu);
453 * f0 -> ( <WHILE> "(" Expression() ")" Statement() | <DO> Statement() <WHILE> "(" Expression() ")" ";" | <FOR> "(" [ Expression() ] ";" [ Expression() ] ";" [ Expression() ] ")" Statement() )
456 public void visit(IterationStatement n, A argu) {
457 n.f0.accept(this, argu);
462 * f0 -> ( <GOTO> <IDENTIFIER> ";" | <CONTINUE> ";" | <BREAK> ";" | <RETURN> [ Expression() ] ";" )
465 public void visit(JumpStatement n, A argu) {
466 n.f0.accept(this, argu);
471 * f0 -> AssignmentExpression()
472 * f1 -> ( "," AssignmentExpression() )*
475 public void visit(Expression n, A argu) {
476 n.f0.accept(this, argu);
477 n.f1.accept(this, argu);
482 * f0 -> UnaryExpression() AssignmentOperator() AssignmentExpression()
483 * | ConditionalExpression()
486 public void visit(AssignmentExpression n, A argu) {
487 n.f0.accept(this, argu);
492 * f0 -> ( "=" | "*=" | "/=" | "%=" | "+=" | "-=" | "<<=" | ">>=" | "&=" | "^=" | "|=" )
495 public void visit(AssignmentOperator n, A argu) {
496 n.f0.accept(this, argu);
501 * f0 -> LogicalORExpression()
502 * f1 -> [ "?" Expression() ":" ConditionalExpression() ]
505 public void visit(ConditionalExpression n, A argu) {
506 n.f0.accept(this, argu);
507 n.f1.accept(this, argu);
512 * f0 -> ConditionalExpression()
515 public void visit(ConstantExpression n, A argu) {
516 n.f0.accept(this, argu);
521 * f0 -> LogicalANDExpression()
522 * f1 -> [ "||" LogicalORExpression() ]
525 public void visit(LogicalORExpression n, A argu) {
526 n.f0.accept(this, argu);
527 n.f1.accept(this, argu);
532 * f0 -> InclusiveORExpression()
533 * f1 -> [ "&&" LogicalANDExpression() ]
536 public void visit(LogicalANDExpression n, A argu) {
537 n.f0.accept(this, argu);
538 n.f1.accept(this, argu);
543 * f0 -> ExclusiveORExpression()
544 * f1 -> [ "|" InclusiveORExpression() ]
547 public void visit(InclusiveORExpression n, A argu) {
548 n.f0.accept(this, argu);
549 n.f1.accept(this, argu);
554 * f0 -> ANDExpression()
555 * f1 -> [ "^" ExclusiveORExpression() ]
558 public void visit(ExclusiveORExpression n, A argu) {
559 n.f0.accept(this, argu);
560 n.f1.accept(this, argu);
565 * f0 -> EqualityExpression()
566 * f1 -> [ "&" ANDExpression() ]
569 public void visit(ANDExpression n, A argu) {
570 n.f0.accept(this, argu);
571 n.f1.accept(this, argu);
576 * f0 -> RelationalExpression()
577 * f1 -> [ ( "==" | "!=" ) EqualityExpression() ]
580 public void visit(EqualityExpression n, A argu) {
581 n.f0.accept(this, argu);
582 n.f1.accept(this, argu);
587 * f0 -> ShiftExpression()
588 * f1 -> [ ( "<" | ">" | "<=" | ">=" ) RelationalExpression() ]
591 public void visit(RelationalExpression n, A argu) {
592 n.f0.accept(this, argu);
593 n.f1.accept(this, argu);
598 * f0 -> AdditiveExpression()
599 * f1 -> [ ( "<<" | ">>" ) ShiftExpression() ]
602 public void visit(ShiftExpression n, A argu) {
603 n.f0.accept(this, argu);
604 n.f1.accept(this, argu);
609 * f0 -> MultiplicativeExpression()
610 * f1 -> [ ( "+" | "-" ) AdditiveExpression() ]
613 public void visit(AdditiveExpression n, A argu) {
614 n.f0.accept(this, argu);
615 n.f1.accept(this, argu);
620 * f0 -> CastExpression()
621 * f1 -> [ ( "*" | "/" | "%" ) MultiplicativeExpression() ]
624 public void visit(MultiplicativeExpression n, A argu) {
625 n.f0.accept(this, argu);
626 n.f1.accept(this, argu);
631 * f0 -> ( "(" TypeSpecifier() ")" CastExpression() | UnaryExpression() )
634 public void visit(CastExpression n, A argu) {
635 n.f0.accept(this, argu);
640 * f0 -> ( PostfixExpression() | "++" UnaryExpression() | "--" UnaryExpression() | UnaryOperator() CastExpression() | <SIZEOF> ( UnaryExpression() | "(" TypeSpecifier() ")" ) )
643 public void visit(UnaryExpression n, A argu) {
644 n.f0.accept(this, argu);
649 * f0 -> ( "&" | "*" | "+" | "-" | "~" | "!" )
652 public void visit(UnaryOperator n, A argu) {
653 n.f0.accept(this, argu);
658 * f0 -> PrimaryExpression()
659 * f1 -> ( "[" Expression() "]" | "(" [ ArgumentExpressionList() ] ")" | "." <IDENTIFIER> | "->" <IDENTIFIER> | "++" | "--" )*
662 public void visit(PostfixExpression n, A argu) {
663 n.f0.accept(this, argu);
664 n.f1.accept(this, argu);
669 * f0 -> <IDENTIFIER>
671 * | "(" Expression() ")"
674 public void visit(PrimaryExpression n, A argu) {
675 n.f0.accept(this, argu);
680 * f0 -> AssignmentOrTypeExpression()
681 * f1 -> ( "," AssignmentOrTypeExpression() )*
684 public void visit(ArgumentExpressionList n, A argu) {
685 n.f0.accept(this, argu);
686 n.f1.accept(this, argu);
691 * f0 -> NoIdentifierTypeSpecifier()
692 * | AssignmentExpression()
695 public void visit(AssignmentOrTypeExpression n, A argu) {
696 n.f0.accept(this, argu);
701 * f0 -> <INTEGER_LITERAL>
702 * | <FLOATING_POINT_LITERAL>
703 * | <CHARACTER_LITERAL>
704 * | <STRING_LITERAL>
707 public void visit(Constant n, A argu) {
708 n.f0.accept(this, argu);