import java.io.*;
import java.util.*;

class SparcGenDriver {

  public static void main (String argv[]) throws Exception {
    try {
      IR.Body program = (IR.Body) (new parser(new Yylex(System.in)).parse().value);
      IRCheck.checkProgram(program);
      SparcGen.genProgram(program);
    } catch (ParseError exn) {
      System.err.println (exn.getMessage());
    } catch (IRCheck.IRCheckException exn) {
      System.err.println ("Error checking IR: " + exn.getMessage());
    } catch (SparcGen.SparcGenException exn) {
      System.err.println ("Error generating Sparc code:" + exn.getMessage());
    }
  }
}
