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 DepthFirstVisitor implements Visitor {
16 // Auto class visitors--probably don't need to be overridden.
18 public void visit(NodeList n) {
19 for ( Enumeration<Node> e = n.elements(); e.hasMoreElements(); )
20 e.nextElement().accept(this);
23 public void visit(NodeListOptional n) {
25 for ( Enumeration<Node> e = n.elements(); e.hasMoreElements(); )
26 e.nextElement().accept(this);
29 public void visit(NodeOptional n) {
34 public void visit(NodeSequence n) {
35 for ( Enumeration<Node> e = n.elements(); e.hasMoreElements(); )
36 e.nextElement().accept(this);
39 public void visit(NodeToken n) { }
42 // User-generated visitor methods below
47 * f0 -> ( ExternalDeclaration() )+
50 public void visit(TranslationUnit n) {
56 * f0 -> ( StorageClassSpecifier() )*
57 * f1 -> ( FunctionDeclaration() | StructOrUnionSpecifier() | VariableDeclaration() | TypeDeclaration() )
60 public void visit(ExternalDeclaration n) {
67 * f0 -> TypeSpecifier()
68 * f1 -> <IDENTIFIER>
70 * f3 -> [ ParameterList() ]
72 * f5 -> ( ";" | CompoundStatement() )
75 public void visit(FunctionDeclaration n) {
86 * f0 -> ( <STATIC> | <EXTERN> )
89 public void visit(StorageClassSpecifier n) {
95 * f0 -> <TYPEDEF>
96 * f1 -> ( DataType() | FunctionType() )
100 public void visit(TypeDeclaration n) {
108 * f0 -> StructOrUnionSpecifier()
109 * f1 -> <IDENTIFIER>
112 public void visit(DataType n) {
119 * f0 -> TypeSpecifier()
122 * f3 -> <IDENTIFIER>
125 * f6 -> [ ParameterList() ]
129 public void visit(FunctionType n) {
142 * f0 -> ParameterDeclaration()
143 * f1 -> ( "," ParameterDeclaration() )*
144 * f2 -> [ "," "..." ]
147 public void visit(ParameterList n) {
155 * f0 -> TypeSpecifier()
156 * f1 -> <IDENTIFIER>
160 public void visit(ParameterDeclaration n) {
168 * f0 -> VariableClassSpecifier()
169 * f1 -> TypeSpecifier()
170 * f2 -> InitDeclaratorList()
174 public void visit(VariableDeclaration n) {
183 * f0 -> [ <STATIC> ]
184 * f1 -> VariableDeclaration()
187 public void visit(LocalVariableDeclaration n) {
194 * f0 -> ( <AUTO> | <REGISTER> )*
197 public void visit(VariableClassSpecifier n) {
203 * f0 -> [ <CONST> ]
204 * f1 -> ( <VOID> | <CHAR> | <SHORT> [ <INT> ] | <INT> | <LONG> [ <LONG> ] | <FLOAT> | <DOUBLE> | ( <SIGNED> | <UNSIGNED> ) [ <CHAR> | <SHORT> [ <INT> ] | <INT> | <LONG> [ <LONG> ] ] | StructOrUnionSpecifier() | EnumSpecifier() | <IDENTIFIER> )
205 * f2 -> [ Pointer() ]
209 public void visit(TypeSpecifier n) {
218 * f0 -> [ <CONST> ]
219 * f1 -> ( <VOID> | <CHAR> | <SHORT> [ <INT> ] | <INT> | <LONG> [ <LONG> ] | <FLOAT> | <DOUBLE> | ( <SIGNED> | <UNSIGNED> ) [ <CHAR> | <SHORT> [ <INT> ] | <INT> | <LONG> [ <LONG> ] ] | StructOrUnionSpecifier() | EnumSpecifier() )
220 * f2 -> [ Pointer() ]
224 public void visit(NoIdentifierTypeSpecifier n) {
233 * f0 -> StructOrUnion() [ <IDENTIFIER> ] "{" StructDeclarationList() "}"
234 * | StructOrUnion() <IDENTIFIER>
237 public void visit(StructOrUnionSpecifier n) {
243 * f0 -> ( <STRUCT> | <UNION> )
246 public void visit(StructOrUnion n) {
252 * f0 -> ( StructDeclaration() )+
255 public void visit(StructDeclarationList n) {
261 * f0 -> InitDeclarator()
262 * f1 -> ( "," InitDeclarator() )*
265 public void visit(InitDeclaratorList n) {
272 * f0 -> <IDENTIFIER>
274 * f2 -> [ "=" Initializer() ]
277 public void visit(InitDeclarator n) {
285 * f0 -> TypeSpecifier()
286 * f1 -> <IDENTIFIER>
287 * f2 -> [ Array() | ":" ConstantExpression() ]
288 * f3 -> [ <IDENTIFIER> ]
292 public void visit(StructDeclaration n) {
303 * f1 -> ( [ <IDENTIFIER> ] "{" EnumeratorList() "}" | <IDENTIFIER> )
306 public void visit(EnumSpecifier n) {
314 * f1 -> ( "," Enumerator() )*
317 public void visit(EnumeratorList n) {
324 * f0 -> <IDENTIFIER>
325 * f1 -> [ "=" ConstantExpression() ]
328 public void visit(Enumerator n) {
336 * f1 -> [ <CONST> ]
337 * f2 -> [ Pointer() ]
340 public void visit(Pointer n) {
348 * f0 -> <IDENTIFIER>
349 * f1 -> ( "," <IDENTIFIER> )*
352 public void visit(IdentifierList n) {
359 * f0 -> ( AssignmentExpression() | "{" InitializerList() [ "," ] "}" )
362 public void visit(Initializer n) {
368 * f0 -> Initializer()
369 * f1 -> ( "," Initializer() )*
372 public void visit(InitializerList n) {
380 * f1 -> [ ConstantExpression() ]
384 public void visit(Array n) {
392 * f0 -> ( LabeledStatement() | ExpressionStatement() | CompoundStatement() | SelectionStatement() | IterationStatement() | JumpStatement() )
395 public void visit(Statement n) {
401 * f0 -> ( <IDENTIFIER> ":" Statement() | <CASE> ConstantExpression() ":" Statement() | <DFLT> ":" Statement() )
404 public void visit(LabeledStatement n) {
410 * f0 -> [ Expression() ]
414 public void visit(ExpressionStatement n) {
422 * f1 -> ( LocalVariableDeclaration() | Statement() )*
426 public void visit(CompoundStatement n) {
434 * f0 -> ( <IF> "(" Expression() ")" Statement() [ <ELSE> Statement() ] | <SWITCH> "(" Expression() ")" Statement() )
437 public void visit(SelectionStatement n) {
443 * f0 -> ( <WHILE> "(" Expression() ")" Statement() | <DO> Statement() <WHILE> "(" Expression() ")" ";" | <FOR> "(" [ Expression() ] ";" [ Expression() ] ";" [ Expression() ] ")" Statement() )
446 public void visit(IterationStatement n) {
452 * f0 -> ( <GOTO> <IDENTIFIER> ";" | <CONTINUE> ";" | <BREAK> ";" | <RETURN> [ Expression() ] ";" )
455 public void visit(JumpStatement n) {
461 * f0 -> AssignmentExpression()
462 * f1 -> ( "," AssignmentExpression() )*
465 public void visit(Expression n) {
472 * f0 -> UnaryExpression() AssignmentOperator() AssignmentExpression()
473 * | ConditionalExpression()
476 public void visit(AssignmentExpression n) {
482 * f0 -> ( "=" | "*=" | "/=" | "%=" | "+=" | "-=" | "<<=" | ">>=" | "&=" | "^=" | "|=" )
485 public void visit(AssignmentOperator n) {
491 * f0 -> LogicalORExpression()
492 * f1 -> [ "?" Expression() ":" ConditionalExpression() ]
495 public void visit(ConditionalExpression n) {
502 * f0 -> ConditionalExpression()
505 public void visit(ConstantExpression n) {
511 * f0 -> LogicalANDExpression()
512 * f1 -> [ "||" LogicalORExpression() ]
515 public void visit(LogicalORExpression n) {
522 * f0 -> InclusiveORExpression()
523 * f1 -> [ "&&" LogicalANDExpression() ]
526 public void visit(LogicalANDExpression n) {
533 * f0 -> ExclusiveORExpression()
534 * f1 -> [ "|" InclusiveORExpression() ]
537 public void visit(InclusiveORExpression n) {
544 * f0 -> ANDExpression()
545 * f1 -> [ "^" ExclusiveORExpression() ]
548 public void visit(ExclusiveORExpression n) {
555 * f0 -> EqualityExpression()
556 * f1 -> [ "&" ANDExpression() ]
559 public void visit(ANDExpression n) {
566 * f0 -> RelationalExpression()
567 * f1 -> [ ( "==" | "!=" ) EqualityExpression() ]
570 public void visit(EqualityExpression n) {
577 * f0 -> ShiftExpression()
578 * f1 -> [ ( "<" | ">" | "<=" | ">=" ) RelationalExpression() ]
581 public void visit(RelationalExpression n) {
588 * f0 -> AdditiveExpression()
589 * f1 -> [ ( "<<" | ">>" ) ShiftExpression() ]
592 public void visit(ShiftExpression n) {
599 * f0 -> MultiplicativeExpression()
600 * f1 -> [ ( "+" | "-" ) AdditiveExpression() ]
603 public void visit(AdditiveExpression n) {
610 * f0 -> CastExpression()
611 * f1 -> [ ( "*" | "/" | "%" ) MultiplicativeExpression() ]
614 public void visit(MultiplicativeExpression n) {
621 * f0 -> ( "(" TypeSpecifier() ")" CastExpression() | UnaryExpression() )
624 public void visit(CastExpression n) {
630 * f0 -> ( PostfixExpression() | "++" UnaryExpression() | "--" UnaryExpression() | UnaryOperator() CastExpression() | <SIZEOF> ( UnaryExpression() | "(" TypeSpecifier() ")" ) )
633 public void visit(UnaryExpression n) {
639 * f0 -> ( "&" | "*" | "+" | "-" | "~" | "!" )
642 public void visit(UnaryOperator n) {
648 * f0 -> PrimaryExpression()
649 * f1 -> ( "[" Expression() "]" | "(" [ ArgumentExpressionList() ] ")" | "." <IDENTIFIER> | "->" <IDENTIFIER> | "++" | "--" )*
652 public void visit(PostfixExpression n) {
659 * f0 -> <IDENTIFIER>
661 * | "(" Expression() ")"
664 public void visit(PrimaryExpression n) {
670 * f0 -> AssignmentOrTypeExpression()
671 * f1 -> ( "," AssignmentOrTypeExpression() )*
674 public void visit(ArgumentExpressionList n) {
681 * f0 -> NoIdentifierTypeSpecifier()
682 * | AssignmentExpression()
685 public void visit(AssignmentOrTypeExpression n) {
691 * f0 -> <INTEGER_LITERAL>
692 * | <FLOATING_POINT_LITERAL>
693 * | <CHARACTER_LITERAL>
694 * | <STRING_LITERAL>
697 public void visit(Constant n) {