/* Value.java */

/** A class representing an integer or String constant. */
public abstract class Value extends Expression {
  public int arity() { 
    return 0; 
  }

  public Value eval() { 
    return this; 
  }

  public static Value make(int x) { 
    /* Fill in for part 1. */ 
  }

  public static Value make(String x) { 
    /* Fill in for part 1. */ 
  }

  public int intValue() { 
    throw new Error(); 
  }

  public String stringValue() { 
    throw new Error(); 
  }
}