/* Generated By:JJTree: Do not edit this line. ASTRelationalExpression.java */

package org.eclipse.jst.jsp.core.internal.java.jspel;

public class ASTRelationalExpression extends ASTOperatorExpression {
  public ASTRelationalExpression(int id) {
    super(id);
  }

  public ASTRelationalExpression(JSPELParser p, int id) {
    super(p, id);
  }


  /** Accept the visitor. **/
  public Object jjtAccept(JSPELParserVisitor visitor, Object data) {
    return visitor.visit(this, data);
  }
}
