package se.chalmers.cs.gf.GFCC.Absyn; // Java Package generated by the BNF Converter.

public class Grm extends Grammar {
  public final Header header_;
  public final Abstract abstract_;
  public final ListConcrete listconcrete_;

  public Grm(Header p1, Abstract p2, ListConcrete p3) { header_ = p1; abstract_ = p2; listconcrete_ = p3; }

  public <R,A> R accept(se.chalmers.cs.gf.GFCC.Absyn.Grammar.Visitor<R,A> v, A arg) { return v.visit(this, arg); }

  public boolean equals(Object o) {
    if (this == o) return true;
    if (o instanceof se.chalmers.cs.gf.GFCC.Absyn.Grm) {
      se.chalmers.cs.gf.GFCC.Absyn.Grm x = (se.chalmers.cs.gf.GFCC.Absyn.Grm)o;
      return this.header_.equals(x.header_) && this.abstract_.equals(x.abstract_) && this.listconcrete_.equals(x.listconcrete_);
    }
    return false;
  }

  public int hashCode() {
    return 37*(37*(this.header_.hashCode())+this.abstract_.hashCode())+this.listconcrete_.hashCode();
  }


}