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

package Mini;

public interface MiniParserTreeConstants
{
  public int JJTPROGRAM = 0;
  public int JJTFUNDECL = 1;
  public int JJTEXPR = 2;
  public int JJTIFEXPR = 3;
  public int JJTLETEXPR = 4;
  public int JJTFUNAPPL = 5;
  public int JJTTERM = 6;
  public int JJTFACTOR = 7;
  public int JJTVOID = 8;
  public int JJTINTEGER = 9;
  public int JJTIDENT = 10;


  public String[] jjtNodeName = {
    "Program",
    "FunDecl",
    "Expr",
    "IfExpr",
    "LetExpr",
    "FunAppl",
    "Term",
    "Factor",
    "void",
    "Integer",
    "Ident",
  };
}
