/* zweic -- a compiler for Zwei * * Stephane Micheloud & LAMP * * $Id$ */ package zweic; /** * usage: scala zweic.GeneratorTest <file.zwei> [ <file.risc> ] */ object GeneratorTest { import java.io._; def main(args: Array[String]) = { if (args.length == 0) { Console.println("usage: scala zweic.GeneratorTest <file.zwei> [ <file.risc> ]"); System.exit(1) } try { val in = new FileInputStream(args(0)); val tree = new Parser(in).parse; in.close(); if (Report.errors > 0) System.err.println(Report.errors + " errors found."); else { val analyzer = new Analyzer(); analyzer.analyzeProgram(tree); if (Report.errors > 0) System.err.println(Report.errors + " errors found."); else { val out = if (args.length < 2) new PrintWriter(System.out) else new PrintWriter(new FileWriter(args(1))); val generator = new Generator(analyzer); generator.gen(tree); generator.code.write(out) } } System.exit(if (Report.errors > 0) 1 else 0) } catch { case e: IOException => Report.fail(e.getMessage()); } } }