@Override
  public Type getType() {
    // left and right must be the same type
    if (oper == Symbol.EQ || oper == Symbol.NEQ || oper == Symbol.LE || oper == Symbol.LT
            || oper == Symbol.GE || oper == Symbol.GT) {
      return Type.booleanType;
    } else if (oper == Symbol.AND || oper == Symbol.OR) {
      return Type.booleanType;
    } else {
      return Type.intType;
    }
  }