//
// Generated by JTB 1.3.2
//
package st4tic.visitor;
import st4tic.syntaxtree.*;
import java.util.*;
/**
* Provides default methods which visit each node in the tree in depth-first
* order. Your visitors may extend this class.
*/
public class GJDepthFirst<R,A> implements GJVisitor<R,A> {
//
// Auto class visitors--probably don't need to be overridden.
//
public R visit(NodeList n, A argu) {
R _ret=null;
int _count=0;
for ( Enumeration<Node> e = n.elements(); e.hasMoreElements(); ) {
e.nextElement().accept(this,argu);
_count++;
}
return _ret;
}
public R visit(NodeListOptional n, A argu) {
if ( n.present() ) {
R _ret=null;
int _count=0;
for ( Enumeration<Node> e = n.elements(); e.hasMoreElements(); ) {
e.nextElement().accept(this,argu);
_count++;
}
return _ret;
}
else
return null;
}
public R visit(NodeOptional n, A argu) {
if ( n.present() )
return n.node.accept(this,argu);
else
return null;
}
public R visit(NodeSequence n, A argu) {
R _ret=null;
int _count=0;
for ( Enumeration<Node> e = n.elements(); e.hasMoreElements(); ) {
e.nextElement().accept(this,argu);
_count++;
}
return _ret;
}
public R visit(NodeToken n, A argu) { return null; }
//
// User-generated visitor methods below
//
/**
* f0 -> ( Require() "." )+
* f1 -> ( StatementExpression() )*
*/
public R visit(Start n, A argu) {
R _ret=null;
n.f0.accept(this, argu);
n.f1.accept(this, argu);
return _ret;
}
/**
* f0 -> "require"
* f1 -> ( <IDENTIFIER> )+
*/
public R visit(Require n, A argu) {
R _ret=null;
n.f0.accept(this, argu);
n.f1.accept(this, argu);
return _ret;
}
/**
* f0 -> AdditiveExpression()
*/
public R visit(MathExpression n, A argu) {
R _ret=null;
n.f0.accept(this, argu);
return _ret;
}
/**
* f0 -> MultiplicativeExpression()
* f1 -> ( ( "+" | "-" ) MultiplicativeExpression() )*
*/
public R visit(AdditiveExpression n, A argu) {
R _ret=null;
n.f0.accept(this, argu);
n.f1.accept(this, argu);
return _ret;
}
/**
* f0 -> UnaryExpression()
* f1 -> ( ( "*" | "/" | "%" ) UnaryExpression() )*
*/
public R visit(MultiplicativeExpression n, A argu) {
R _ret=null;
n.f0.accept(this, argu);
n.f1.accept(this, argu);
return _ret;
}
/**
* f0 -> "(" MathExpression() ")"
* | <INTEGER_LITERAL>
* | VariableName()
*/
public R visit(UnaryExpression n, A argu) {
R _ret=null;
n.f0.accept(this, argu);
return _ret;
}
/**
* f0 -> RelationalEqualityExpression()
*/
public R visit(RelationalExprssion n, A argu) {
R _ret=null;
n.f0.accept(this, argu);
return _ret;
}
/**
* f0 -> RelationalGreaterExpression()
* f1 -> [ ( "==" | "!=" ) RelationalGreaterExpression() ]
*/
public R visit(RelationalEqualityExpression n, A argu) {
R _ret=null;
n.f0.accept(this, argu);
n.f1.accept(this, argu);
return _ret;
}
/**
* f0 -> RelationalLessExpression()
* f1 -> [ ( ">" | ">=" ) RelationalLessExpression() ]
*/
public R visit(RelationalGreaterExpression n, A argu) {
R _ret=null;
n.f0.accept(this, argu);
n.f1.accept(this, argu);
return _ret;
}
/**
* f0 -> UnaryRelational()
* f1 -> [ ( "<" | "<=" ) UnaryRelational() ]
*/
public R visit(RelationalLessExpression n, A argu) {
R _ret=null;
n.f0.accept(this, argu);
n.f1.accept(this, argu);
return _ret;
}
/**
* f0 -> MathExpression()
*/
public R visit(UnaryRelational n, A argu) {
R _ret=null;
n.f0.accept(this, argu);
return _ret;
}
/**
* f0 -> "if"
* f1 -> RelationalExprssion()
* f2 -> "do"
* f3 -> ( StatementExpression() )*
* f4 -> "stop"
*/
public R visit(IfExpression n, A argu) {
R _ret=null;
n.f0.accept(this, argu);
n.f1.accept(this, argu);
n.f2.accept(this, argu);
n.f3.accept(this, argu);
n.f4.accept(this, argu);
return _ret;
}
/**
* f0 -> "while"
* f1 -> RelationalExprssion()
* f2 -> "do"
* f3 -> ( StatementExpression() )*
* f4 -> "stop"
*/
public R visit(WhileExpression n, A argu) {
R _ret=null;
n.f0.accept(this, argu);
n.f1.accept(this, argu);
n.f2.accept(this, argu);
n.f3.accept(this, argu);
n.f4.accept(this, argu);
return _ret;
}
/**
* f0 -> "def"
* f1 -> VariableName()
* f2 -> "="
* f3 -> MathExpression()
* f4 -> "."
*/
public R visit(VariableDeclaration n, A argu) {
R _ret=null;
n.f0.accept(this, argu);
n.f1.accept(this, argu);
n.f2.accept(this, argu);
n.f3.accept(this, argu);
n.f4.accept(this, argu);
return _ret;
}
/**
* f0 -> VariableName()
* f1 -> "="
* f2 -> MathExpression()
* f3 -> "."
*/
public R visit(VariableAssign n, A argu) {
R _ret=null;
n.f0.accept(this, argu);
n.f1.accept(this, argu);
n.f2.accept(this, argu);
n.f3.accept(this, argu);
return _ret;
}
/**
* f0 -> <IDENTIFIER>
*/
public R visit(VariableName n, A argu) {
R _ret=null;
n.f0.accept(this, argu);
return _ret;
}
/**
* f0 -> <IDENTIFIER>
* f1 -> ( ":" <IDENTIFIER> )+
* f2 -> "("
* f3 -> MathExpression()
* f4 -> ( "," MathExpression() )*
* f5 -> ")"
* f6 -> "."
*/
public R visit(JavaStaticMethods n, A argu) {
R _ret=null;
n.f0.accept(this, argu);
n.f1.accept(this, argu);
n.f2.accept(this, argu);
n.f3.accept(this, argu);
n.f4.accept(this, argu);
n.f5.accept(this, argu);
n.f6.accept(this, argu);
return _ret;
}
/**
* f0 -> VariableDeclaration()
* | VariableAssign()
* | JavaStaticMethods()
* | IfExpression()
* | WhileExpression()
*/
public R visit(StatementExpression n, A argu) {
R _ret=null;
n.f0.accept(this, argu);
return _ret;
}
}