import java.io.*;      // plc/Wren/FinalDriver.java

public class FinalDriver
{
   public static void main(String [] args)
   {
      BufferedReader br = new BufferedReader(
                             new InputStreamReader(System.in));
      System.out.print("Enter name of a Wren file: ");
      try
      {    String file = br.readLine();
           FileReader fr = new FileReader(file);
           ScanWren sw = new ScanWren(fr);
           ParseWren pw = new ParseWren(sw);
           Program p = pw.program();
           p.show(0);
           System.out.println();
           Check check = new Check();
           boolean okay = check.validate(p);
           System.out.println();
           if (okay)
              System.out.println("Program is type correct.");
           else
              System.out.println("Program has at least one type error.");
           System.out.println();
           if (okay)
           {
              Semantics sem = new Semantics(br);
              sem.meaning(p);
           }
           System.out.println();
           br.close();
      }
      catch (IOException e)
      {   System.out.println("IO Error");  }
   }
}

