public static void compile(String input, OutputStream os) throws CompilerException, IOException {
Lexer lexer = new Lexer(input);
Parser parser = new Parser(lexer);
Program program = parser.parseProgram();
if (Config.DEBUG_SOURCE) {
Writer w = new OutputStreamWriter(System.out);
new RoundtripVisitor(w).visit(program);
w.flush();