JClassDeclaration flat = Flattener.flatten(stream, k2s.getInterfaces(), k2s.getInterfaceTables(), k2s.getStructures()); System.out.println("*/");  System.out.println("#include \"streamit.h\""); System.out.println("#include <stdio.h>"); System.out.println("#include <stdlib.h>"); System.out.println("#include <math.h>"); LIRToC l2c = new LIRToC(); flat.accept(l2c); l2c.close(); System.out.println(l2c.getString());
Flattener.flatten(stream, k2s.getInterfaces(), k2s.getInterfaceTables(), k2s.getStructures());
    public static void compile(JCompilationUnit[] app) {	System.out.println("/*");	Kopi2SIR k2s = new Kopi2SIR(app);	SIRStream stream = null;	for (int i = 0; i < app.length; i++) {	    SIRStream top = (SIRStream)app[i].accept(k2s);	    if (top != null)		stream = top;	}	SemanticChecker.doCheck(stream);		if (StreamItOptions.rawRows != -1) {	    System.out.println("*/");		    /* Compiling for raw */	    RawBackend.run(stream, 			   k2s.getInterfaces(),			   k2s.getInterfaceTables());	    	}	else {	    /* Compiling for uniprocessor */	    JClassDeclaration flat = Flattener.flatten(stream, 						       k2s.getInterfaces(),						       k2s.getInterfaceTables(),                                                       k2s.getStructures());	    System.out.println("*/");		    System.out.println("#include \"streamit.h\"");	    System.out.println("#include <stdio.h>");	    System.out.println("#include <stdlib.h>");	    System.out.println("#include <math.h>");	    LIRToC l2c = new LIRToC();	    flat.accept(l2c);	    l2c.close();	    System.out.println(l2c.getString());	}    }