001//
002// Generated by JTB 1.3.2
003//
004
005package jtb.syntaxtree;
006
007// Grammar production:
008// f0 -> "@"
009// f1 -> "interface"
010// f2 -> <IDENTIFIER>
011// f3 -> AnnotationTypeBody()
012public class AnnotationTypeDeclaration 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 NodeToken f0;
018   public NodeToken f1;
019   public NodeToken f2;
020   public AnnotationTypeBody f3;
021
022   public AnnotationTypeDeclaration(NodeToken n0, NodeToken n1, NodeToken n2, AnnotationTypeBody 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 AnnotationTypeDeclaration(NodeToken n0, AnnotationTypeBody n1) {
034      f0 = new NodeToken("@");
035      if ( f0 != null ) f0.setParent(this);
036      f1 = new NodeToken("interface");
037      if ( f1 != null ) f1.setParent(this);
038      f2 = n0;
039      if ( f2 != null ) f2.setParent(this);
040      f3 = n1;
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