// $Id: EOPLParsing.scala,v 1.1 2005/10/28 20:46:16 leavens Exp leavens $
package interp;

/** Parsing helpers. */
object EOPLParsing {

  /** Parse a program text, returning an AST for the program. */
  def parseProgram(code: String): Program = {
    val parser = new EOPLParsers with EOPLLexers(code);
    parser.program(parser.input) match {
      case None => error("Parse error");
      case Some(Pair(prog, _)) => prog;
     }
  }
  
  /** Testing of parseProgram. */
  def main(args: Array[String]): Unit = {
    Console.println("parseProgram(342) = " + parseProgram("342"));
    Console.println("parseProgram(i) = " + parseProgram("i"));
    Console.println("parseProgram(add1(i)) = " + parseProgram("add1(i)"));
    Console.println("parseProgram(add1(+(i,342))) = " + parseProgram("add1(+(i,342))"));
  }
}
