001//
002// Generated by JTB 1.3.2
003//
004
005package jtb.syntaxtree;
006
007// Grammar production:
008// f0 -> Modifiers()
009// f1 -> "package"
010// f2 -> Name()
011// f3 -> ";"
012public class PackageDeclaration implements Node {
013   // This was added after running jtb to remove serializable warning.
014   static final long serialVersionUID = 20150406L;
015
016   private Node parent;
017   public Modifiers f0;
018   public NodeToken f1;
019   public Name f2;
020   public NodeToken f3;
021
022   public PackageDeclaration(Modifiers n0, NodeToken n1, Name n2, NodeToken n3) {
023      f0 = n0;
024      if ( f0 != null ) f0.setParent(this);
025      f1 = n1;
026      if ( f1 != null ) f1.setParent(this);
027      f2 = n2;
028      if ( f2 != null ) f2.setParent(this);
029      f3 = n3;
030      if ( f3 != null ) f3.setParent(this);
031   }
032
033   public PackageDeclaration(Modifiers n0, Name n1) {
034      f0 = n0;
035      if ( f0 != null ) f0.setParent(this);
036      f1 = new NodeToken("package");
037      if ( f1 != null ) f1.setParent(this);
038      f2 = n1;
039      if ( f2 != null ) f2.setParent(this);
040      f3 = new NodeToken(";");
041      if ( f3 != null ) f3.setParent(this);
042   }
043
044   public void accept(jtb.visitor.Visitor v) {
045      v.visit(this);
046   }
047   public <R,A> R accept(jtb.visitor.GJVisitor<R,A> v, A argu) {
048      return v.visit(this,argu);
049   }
050   public <R> R accept(jtb.visitor.GJNoArguVisitor<R> v) {
051      return v.visit(this);
052   }
053   public <A> void accept(jtb.visitor.GJVoidVisitor<A> v, A argu) {
054      v.visit(this,argu);
055   }
056   public void setParent(Node n) { parent = n; }
057   public Node getParent()       { return parent; }
058}
059