GJVoidDepthFirst.java

//
// Generated by JTB 1.3.2
//

package net.metanotion.simpletemplate.parser.visitor;
import net.metanotion.simpletemplate.parser.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 GJVoidDepthFirst<A> implements GJVoidVisitor<A> {
   //
   // Auto class visitors--probably don't need to be overridden.
   //
   public void visit(NodeList n, A argu) {
      int _count=0;
      for ( Enumeration<Node> e = n.elements(); e.hasMoreElements(); ) {
         e.nextElement().accept(this,argu);
         _count++;
      }
   }

   public void visit(NodeListOptional n, A argu) {
      if ( n.present() ) {
         int _count=0;
         for ( Enumeration<Node> e = n.elements(); e.hasMoreElements(); ) {
            e.nextElement().accept(this,argu);
            _count++;
         }
      }
   }

   public void visit(NodeOptional n, A argu) {
      if ( n.present() )
         n.node.accept(this,argu);
   }

   public void visit(NodeSequence n, A argu) {
      int _count=0;
      for ( Enumeration<Node> e = n.elements(); e.hasMoreElements(); ) {
         e.nextElement().accept(this,argu);
         _count++;
      }
   }

   public void visit(NodeToken n, A argu) {}

   //
   // User-generated visitor methods below
   //

   /**
    * <PRE>
    * f0 -> ( HtmlBlock() )*
    * f1 -> &lt;EOF&gt;
    * </PRE>
    */
   public void visit(Template n, A argu) {
      n.f0.accept(this, argu);
      n.f1.accept(this, argu);
   }

   /**
    * <PRE>
    * f0 -> &lt;HTML&gt;
    *       | &lt;HTML_OTHER&gt;
    *       | ES()
    *       | &lt;BEGIN_SSI&gt; SSD() &lt;END_SSI&gt;
    * </PRE>
    */
   public void visit(HtmlBlock n, A argu) {
      n.f0.accept(this, argu);
   }

   /**
    * <PRE>
    * f0 -> &lt;BEGIN_CALL&gt;
    * f1 -> [ ExprSeq() ]
    * f2 -> &lt;END_CALL&gt;
    * </PRE>
    */
   public void visit(ES n, A argu) {
      n.f0.accept(this, argu);
      n.f1.accept(this, argu);
      n.f2.accept(this, argu);
   }

   /**
    * <PRE>
    * f0 -> Expression()
    * f1 -> ( &lt;OP_SEMI&gt; Expression() )*
    * </PRE>
    */
   public void visit(ExprSeq n, A argu) {
      n.f0.accept(this, argu);
      n.f1.accept(this, argu);
   }

   /**
    * <PRE>
    * f0 -> Apply()
    *       | JSObj()
    *       | JSArr()
    *       | Tuple()
    *       | Lambda()
    *       | Let()
    *       | Literal()
    *       | Lift()
    * </PRE>
    */
   public void visit(Expression n, A argu) {
      n.f0.accept(this, argu);
   }

   /**
    * <PRE>
    * f0 -> &lt;ID&gt;
    * f1 -> ( &lt;OP_DOT&gt; &lt;ID&gt; )*
    * f2 -> [ Expression() ]
    * </PRE>
    */
   public void visit(Apply n, A argu) {
      n.f0.accept(this, argu);
      n.f1.accept(this, argu);
      n.f2.accept(this, argu);
   }

   /**
    * <PRE>
    * f0 -> &lt;L_CURLY&gt;
    * f1 -> [ WithParams() ]
    * f2 -> &lt;R_CURLY&gt;
    * </PRE>
    */
   public void visit(JSObj n, A argu) {
      n.f0.accept(this, argu);
      n.f1.accept(this, argu);
      n.f2.accept(this, argu);
   }

   /**
    * <PRE>
    * f0 -> &lt;L_BRACE&gt;
    * f1 -> [ Params() ]
    * f2 -> &lt;R_BRACE&gt;
    * </PRE>
    */
   public void visit(JSArr n, A argu) {
      n.f0.accept(this, argu);
      n.f1.accept(this, argu);
      n.f2.accept(this, argu);
   }

   /**
    * <PRE>
    * f0 -> &lt;L_PAREN&gt;
    * f1 -> [ Params() ]
    * f2 -> &lt;R_PAREN&gt;
    * f3 -> [ Expression() ]
    * </PRE>
    */
   public void visit(Tuple n, A argu) {
      n.f0.accept(this, argu);
      n.f1.accept(this, argu);
      n.f2.accept(this, argu);
      n.f3.accept(this, argu);
   }

   /**
    * <PRE>
    * f0 -> &lt;OP_LAMBDA&gt;
    * f1 -> &lt;L_PAREN&gt;
    * f2 -> ExprSeq()
    * f3 -> &lt;R_PAREN&gt;
    * f4 -> [ Expression() ]
    * </PRE>
    */
   public void visit(Lambda n, A argu) {
      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);
   }

   /**
    * <PRE>
    * f0 -> &lt;KW_LET&gt;
    * f1 -> JSObj()
    * f2 -> &lt;L_PAREN&gt;
    * f3 -> ExprSeq()
    * f4 -> &lt;R_PAREN&gt;
    * f5 -> [ Expression() ]
    * </PRE>
    */
   public void visit(Let n, A argu) {
      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);
   }

   /**
    * <PRE>
    * f0 -> &lt;OP_LIFT&gt;
    * f1 -> [ Expression() ]
    * </PRE>
    */
   public void visit(Lift n, A argu) {
      n.f0.accept(this, argu);
      n.f1.accept(this, argu);
   }

   /**
    * <PRE>
    * f0 -> &lt;DECIMAL_LITERAL&gt;
    *       | &lt;HEX_LITERAL&gt;
    *       | &lt;FLOAT_LITERAL&gt;
    *       | &lt;STRING_LITERAL&gt;
    *       | &lt;SQSTRING_LITERAL&gt;
    *       | &lt;BOOLEAN_LITERAL&gt;
    * </PRE>
    */
   public void visit(Literal n, A argu) {
      n.f0.accept(this, argu);
   }

   /**
    * <PRE>
    * f0 -> Expression()
    * f1 -> ( &lt;OP_COMMA&gt; Expression() )*
    * </PRE>
    */
   public void visit(Params n, A argu) {
      n.f0.accept(this, argu);
      n.f1.accept(this, argu);
   }

   /**
    * <PRE>
    * f0 -> WithParam()
    * f1 -> ( &lt;OP_COMMA&gt; WithParam() )*
    * </PRE>
    */
   public void visit(WithParams n, A argu) {
      n.f0.accept(this, argu);
      n.f1.accept(this, argu);
   }

   /**
    * <PRE>
    * f0 -> &lt;ID&gt;
    *       | &lt;STRING_LITERAL&gt;
    *       | &lt;SQSTRING_LITERAL&gt;
    * </PRE>
    */
   public void visit(Key n, A argu) {
      n.f0.accept(this, argu);
   }

   /**
    * <PRE>
    * f0 -> Key()
    * f1 -> &lt;OP_WITH&gt;
    * f2 -> Expression()
    * </PRE>
    */
   public void visit(WithParam n, A argu) {
      n.f0.accept(this, argu);
      n.f1.accept(this, argu);
      n.f2.accept(this, argu);
   }

   /**
    * <PRE>
    * f0 -> Directive()
    * f1 -> &lt;SSIID&gt;
    * f2 -> &lt;SOP_EQ&gt;
    * f3 -> &lt;SSI_STRING_LITERAL&gt;
    * </PRE>
    */
   public void visit(SSD n, A argu) {
      n.f0.accept(this, argu);
      n.f1.accept(this, argu);
      n.f2.accept(this, argu);
      n.f3.accept(this, argu);
   }

   /**
    * <PRE>
    * f0 -> &lt;KW_INC&gt;
    *       | &lt;KW_ECHO&gt;
    *       | &lt;KW_CONFIG&gt;
    *       | &lt;KW_EXEC&gt;
    *       | &lt;KW_SET&gt;
    *       | &lt;KW_IF&gt;
    *       | &lt;KW_ELIF&gt;
    *       | &lt;KW_ELSE&gt;
    *       | &lt;KW_ENDIF&gt;
    * </PRE>
    */
   public void visit(Directive n, A argu) {
      n.f0.accept(this, argu);
   }

}