/* Generated by JTB 1.5.1 */
package grammars.y.visitor;

import static grammars.y.syntaxtree.NodeConstants.*;
import grammars.y.Token;
import grammars.y.syntaxtree.*;
import grammars.y.visitor.signature.NodeFieldsSignature;

@SuppressWarnings("javadoc")
public class DepthFirstVoidVisitor implements IVoidVisitor {


  @Override
  public void visit(final NodeChoice n) {
    n.choice.accept(this);
    return;
  }

  @Override
  public void visit(final NodeList n) {
    for (INode e : n.nodes) {
      e.accept(this);
    }
    return;
  }

  @Override
  public void visit(final NodeListOptional n) {
    if (n.present()) {
      for (INode e : n.nodes) {
        e.accept(this);
      }
      return;
    }
    return;
  }

  @Override
  public void visit(final NodeOptional n) {
    if (n.present()) {
      n.node.accept(this);
      return;
    }
    return;
  }

  @Override
  public void visit(final NodeSequence n) {
    for (INode e : n.nodes) {
      e.accept(this);
    }
    return;
  }

  @Override
  public void visit(final Token n) {
    @SuppressWarnings("unused")
    final String tkIm = n.image;
    return;
  }

  @Override
  @NodeFieldsSignature({ 0, JTB_SIG_CLASSDECLARATION, JTB_USER_CLASSDECLARATION })
  public void visit(final classDeclaration n) {
    n.f0.accept(this);
    n.f1.accept(this);
    n.f2.accept(this);
    n.f3.accept(this);
    n.f4.accept(this);
    n.f5.accept(this);
    n.f6.accept(this);
    n.f7.accept(this);
  }

  @Override
  @NodeFieldsSignature({ 0, JTB_SIG_CLASSNAME, JTB_USER_CLASSNAME })
  public void visit(final className n) {
    n.f0.accept(this);
  }

  @Override
  @NodeFieldsSignature({ 0, JTB_SIG_METHOD, JTB_USER_METHOD })
  public void visit(final method n) {
    n.f0.accept(this);
    n.f1.accept(this);
    n.f2.accept(this);
    n.f3.accept(this);
  }

  @Override
  @NodeFieldsSignature({ 0, JTB_SIG_METHODNAME, JTB_USER_METHODNAME })
  public void visit(final methodName n) {
    n.f0.accept(this);
  }

  @Override
  @NodeFieldsSignature({ 0, JTB_SIG_INSTRUCTION, JTB_USER_INSTRUCTION })
  public void visit(final instruction n) {
    n.f0.accept(this);
  }

  @Override
  @NodeFieldsSignature({ 0, JTB_SIG_BP_JUAL, JTB_USER_BP_JUAL })
  public void visit(final bp_jual n) {
    n.f0.accept(this);
  }

  @Override
  @NodeFieldsSignature({ 0, JTB_SIG_BP_HM, JTB_USER_BP_HM })
  public void visit(final bp_hm n) {
    n.f0.accept(this);
  }

  @SuppressWarnings("unused")
  @Override
  @NodeFieldsSignature({ 0, JTB_SIG_JC_0, JTB_USER_JC_0 })
  public void visit(final jc_0 n) {
    /* empty node, nothing that can be generated so far */
  }

}
