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 MyCompilerAPI
public void parse(java.io.File file) throws java.io.FileNotFoundException, java.io.IOException, JavaParser.yyException
parse
in interface MyCompilerAPI
file
- 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 MyCompilerAPI
srcCode
- 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 MyCompilerAPI
java.lang.NullPointerException
- Wenn noch kein abstrakter Syntaxbaum vorhanden
ist. @throws CTypeReconstructionException Wenn ein Fehler bei der
Typrekonstruktion auftritt.CTypeReconstructionException
public SourceFile getSyntaxTree() throws java.lang.NullPointerException
getSyntaxTree
in interface MyCompilerAPI
java.lang.NullPointerException
- Wenn noch keine Syntaxb�ume berechnet worden sind.public void codeGeneration() throws java.lang.NullPointerException, JVMCodeException
codeGeneration
in interface MyCompilerAPI
java.lang.NullPointerException
- Wenn noch kein abstrakter Syntaxbaum vorhanden
ist.JVMCodeException
public static void main(java.lang.String[] args)
args
- Klassendateipublic void setOutputDir(java.lang.String dir)
MyCompilerAPI
setOutputDir
in interface MyCompilerAPI
public java.lang.String getOutputDir()
MyCompilerAPI
getOutputDir
in interface MyCompilerAPI
public 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 MyCompilerAPI
filenames
- - Eine Liste von Quellcodedateien, welche gseparst werden sollen