5 // implement these methods and register the extension
6 // object with BuildCode. BuildCode will then invoke the
7 // methods below at the extension points.
9 public interface BuildCodeExtension {
11 public void printExtraArrayFields(PrintWriter outclassdefs);
12 public void outputTransCode(PrintWriter output);
13 public void buildCodeSetup();
14 public void generateSizeArrayExtensions(PrintWriter outclassdefs);
16 public void preCodeGenInitialization();
17 public void postCodeGenCleanUp();
19 public void additionalCodeGen(PrintWriter outmethodheader,
20 PrintWriter outstructs,
21 PrintWriter outmethod);
23 public void additionalIncludesMethodsHeader(PrintWriter outmethodheader);
24 public void additionalIncludesMethodsImplementation(PrintWriter outmethod);
25 public void additionalIncludesStructsHeader(PrintWriter outstructs);
27 public void additionalClassObjectFields(PrintWriter outclassdefs);
29 public void additionalCodeAtTopOfMain(PrintWriter outmethod);
30 public void additionalCodeForCommandLineArgs(PrintWriter outmethod, String argsVar);
31 public void additionalCodeAtBottomOfMain(PrintWriter outmethod);
32 public void additionalCodeAtTopMethodsImplementation(PrintWriter outmethod);
33 public void additionalCodeAtTopFlatMethodBody(PrintWriter output, FlatMethod fm);
34 public void additionalCodePreNode(FlatMethod fm, FlatNode fn, PrintWriter output);
35 public void additionalCodePostNode(FlatMethod fm, FlatNode fn, PrintWriter output);
36 public void additionalCodeNewObject(PrintWriter outmethod, String dstVar, FlatNew flatNew);
37 public void additionalCodeNewStringLiteral(PrintWriter output, String dstVar);