public class MyCompiler extends java.lang.Object implements MyCompilerAPI
| Modifier and Type | Field and Description |
|---|---|
static int |
NO_LINENUMBER |
java.util.Vector<Pair> |
testPair |
| Modifier and Type | Method and Description |
|---|---|
void |
codeGeneration()
Author: J�rg B�uerle
Generiert den Bytecode und das Class-File f�r den Syntaxbaum. |
static MyCompilerAPI |
getAPI()
Author: J�rg B�uerle
Stellt eine neue Instanz der CompilerAPI zur Verf�gung. |
static java.lang.String |
getFullyQualifiedNameFromClassname(java.lang.String typ,
ImportDeclarations declarations) |
java.lang.String |
getOutputDir()
Author: Juergen Schmiing
Gibt das Ausgabeverzeichnis fuer die class-Files zurueck. |
SourceFile |
getSyntaxTree()
Author: J�rg B�uerle
Liefert den geparsten Syntaxbaume zur�ck. |
void |
init()
Author: J�rg B�uerle
Initialisiert den Compiler |
static void |
main(java.lang.String[] args)
Die Main-Funktion, �ber die der Compiler auch per Konsole gestartet
werden kann.
|
static Type |
makeGenericTypeVars2TypePlaceHolders(Type T) |
static void |
makeRefTypesFullyQualified(java.util.Vector<Type> containedTypes,
ImportDeclarations declarations) |
void |
parse(java.io.File file)
Author: J�rg B�uerle
Ruft die Parse-Methode. |
void |
parse(java.lang.String srcCode)
Author: J�rg B�uerle
Ruft die Parse-Methode. |
void |
parse(java.util.Vector<java.lang.String> filenames)
Alle �bergebenen Dateien werden zu einem String zusammengef�gt und gemeinsam in einer SourceFile geparst.
|
void |
setOutputDir(java.lang.String dir)
Author: Juergen Schmiing
Legt das Ausgabeverzeichnis fuer die class-Files fest. |
java.util.Vector<CTypeReconstructionResult> |
typeReconstruction()
Author: J�rg B�uerle
Ruft den Typrekonstruktionsalgorithmus auf. |
static void |
wandleGeneric2RefType(java.util.Vector<Type> Parameter,
java.util.Vector<Class> KlassenVektor)
Author: Thomas Ott
Ersetzt in der Superklassenparameterliste einer Klasse, diejenigen GenericTypeVars, zu denen es eine Klasse gibt, die gleich hei�t. |
public static final int NO_LINENUMBER
public java.util.Vector<Pair> testPair
public static MyCompilerAPI getAPI()
public static void wandleGeneric2RefType(java.util.Vector<Type> Parameter, java.util.Vector<Class> KlassenVektor)
GenericTypeVars, zu denen es eine Klasse gibt, die gleich hei�t.
Beim Parsen werden n�mlich vom Jay nur GenericTypeVars erzeugt und keine
RefTypes. Dies wird durch diese Methode nachgeholt.className - Klassenname der aktuell betrachteten KlasseParameter - Parameter der SuperklasseKlassenVektor - public void init()
init in interface MyCompilerAPIpublic void parse(java.io.File file)
throws java.io.FileNotFoundException,
java.io.IOException,
JavaParser.yyException
parse in interface MyCompilerAPIfile - Die Quellcode-Dateijava.io.FileNotFoundException - Wenn die Quellcode-Datei nicht existiert.java.io.IOException - Wenn was schief l�uft.JavaParser.yyException - Wenn ein Fehler beim Parsen auftritt.public void parse(java.lang.String srcCode)
throws java.io.IOException,
JavaParser.yyException
parse in interface MyCompilerAPIsrcCode - Der zu parsende Quellcodejava.io.IOException - Wenn was schief l�uft.JavaParser.yyException - Wenn ein Fehler beim Parsen auftritt.public java.util.Vector<CTypeReconstructionResult> typeReconstruction() throws java.lang.NullPointerException, CTypeReconstructionException
typeReconstruction in interface MyCompilerAPIjava.lang.NullPointerException - Wenn noch kein abstrakter Syntaxbaum vorhanden
ist. @throws CTypeReconstructionException Wenn ein Fehler bei der
Typrekonstruktion auftritt.CTypeReconstructionExceptionpublic SourceFile getSyntaxTree() throws java.lang.NullPointerException
getSyntaxTree in interface MyCompilerAPIjava.lang.NullPointerException - Wenn noch keine Syntaxb�ume berechnet worden sind.public void codeGeneration()
throws java.lang.NullPointerException,
JVMCodeException
codeGeneration in interface MyCompilerAPIjava.lang.NullPointerException - Wenn noch kein abstrakter Syntaxbaum vorhanden
ist.JVMCodeExceptionpublic static void main(java.lang.String[] args)
args - Klassendateipublic void setOutputDir(java.lang.String dir)
MyCompilerAPIsetOutputDir in interface MyCompilerAPIpublic java.lang.String getOutputDir()
MyCompilerAPIgetOutputDir in interface MyCompilerAPIpublic static java.lang.String getFullyQualifiedNameFromClassname(java.lang.String typ,
ImportDeclarations declarations)
public static void makeRefTypesFullyQualified(java.util.Vector<Type> containedTypes, ImportDeclarations declarations)
containedTypes - Alle Typen, die die Klasse beinhaltetname - Alle Klassen, die es in den BasicAssumptions und im
AbstractSyntaxTree gibt @param declarations Alle Import-Declarationspublic static Type makeGenericTypeVars2TypePlaceHolders(Type T)
T - - Typ, bei welchem die GTVs ersetzt werden sollen.public void parse(java.util.Vector<java.lang.String> filenames)
parse in interface MyCompilerAPIfilenames - - Eine Liste von Quellcodedateien, welche gseparst werden sollen