many changes towards classpath...
[IRC.git] / Robust / src / IR / Flat / BuildCodeExtension.java
1 package IR.Flat;
2
3 import java.io.*;
4
5 // implement these methods and register the extension
6 // object with BuildCode.  BuildCode will then invoke the
7 // methods below at the extension points.
8
9 public interface BuildCodeExtension {
10
11   public void printExtraArrayFields(PrintWriter outclassdefs);  
12   public void outputTransCode(PrintWriter output);
13   public void buildCodeSetup();
14   public void generateSizeArrayExtensions(PrintWriter outclassdefs);
15
16   public void preCodeGenInitialization();
17   public void postCodeGenCleanUp();
18
19   public void additionalCodeGen(PrintWriter outmethodheader,
20                          PrintWriter outstructs,
21                          PrintWriter outmethod);
22
23   public void additionalIncludesMethodsHeader(PrintWriter outmethodheader);
24   public void additionalIncludesMethodsImplementation(PrintWriter outmethod);
25   public void additionalIncludesStructsHeader(PrintWriter outstructs);
26
27   public void additionalClassObjectFields(PrintWriter outclassdefs);
28
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);
38 }