void readEvalPrintLoop()
  {
    LispValue input, code, value, myprompt;
    boolean   validInput;
//    LispValue oldPackageSymbolValue = PACKAGE;

    // Need to allow *TOP-LEVEL-PROMPT* to change this.
    myprompt = makeString("Jatha >");

    System.out.println("Run (EXIT) to stop.");

    input = NIL;

    while (true)
    {
      System.out.println();
      myprompt.princ();
      System.out.flush();

      // READ
      validInput = true;
      try { input = PARSER.parse(); }
      catch (EOFException e) {
        validInput = false;
        System.err.println("Incomplete input.");
      }

      if (validInput)
      {
        try {
          code  = COMPILER.compile(MACHINE, input, NIL);  // No globals for now
        } catch (Exception e) {
          System.out.println("Unable to compile " + input + "\n  " + e);
          continue;
        }

        // EVAL

        try
        {
          value = MACHINE.Execute(code, NIL);
        } catch (Exception e2) {
          System.out.println("Unable to evaluate " + input + "\n  " + e2);
          continue;
        }

        // PRINT
        value.prin1();
      }
    }
  }