001//
002// Generated by JTB 1.3.2
003//
004
005package jtb.syntaxtree;
006
007// Grammar production:
008// f0 -> "try"
009// f1 -> Block()
010// f2 -> ( "catch" "(" FormalParameter() ")" Block() )*
011// f3 -> [ "finally" Block() ]
012public class TryStatement 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 Block f1;
019   public NodeListOptional f2;
020   public NodeOptional f3;
021
022   public TryStatement(NodeToken n0, Block n1, NodeListOptional n2, NodeOptional 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 TryStatement(Block n0, NodeListOptional n1, NodeOptional n2) {
034      f0 = new NodeToken("try");
035      if ( f0 != null ) f0.setParent(this);
036      f1 = n0;
037      if ( f1 != null ) f1.setParent(this);
038      f2 = n1;
039      if ( f2 != null ) f2.setParent(this);
040      f3 = n2;
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