JavaPatternMatching/src/de/dhbwstuttgart/core/MyCompilerAPI.java
2015-05-12 14:57:12 +02:00

141 lines
4.8 KiB
Java
Executable File

// ino.module.MyCompilerAPI.8570.package
package de.dhbwstuttgart.core;
// ino.end
// ino.module.MyCompilerAPI.8570.import
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import de.dhbwstuttgart.typeinference.Menge;
import de.dhbwstuttgart.bytecode.ClassFile;
import de.dhbwstuttgart.myexception.CTypeReconstructionException;
import de.dhbwstuttgart.myexception.JVMCodeException;
import de.dhbwstuttgart.parser.JavaParser;
import de.dhbwstuttgart.syntaxtree.SourceFile;
import de.dhbwstuttgart.typeinference.ResultSet;
import de.dhbwstuttgart.typeinference.TypeinferenceResultSet;
import de.dhbwstuttgart.typeinference.exceptions.ParserError;
import de.dhbwstuttgart.typeinference.exceptions.TypeinferenceException;
// ino.class.MyCompilerAPI.21328.description type=javadoc
/**
* Schnittstellen-Klasse zum Compiler. Diese Klasse soll der
* IDE als Compiler-API zum Kompilieren einer Quellcode-Datei
* dienen und stellt somit die Schnittstelle zur Studienarbeit
* von Markus Melzer (Eclipse-Plugin) dar.
* @author Jörg Bäuerle
* @version $Date: 2013/09/09 11:04:24 $
*/
// ino.end
// ino.class.MyCompilerAPI.21328.declaration
public interface MyCompilerAPI
// ino.end
// ino.class.MyCompilerAPI.21328.body
{
// ino.method.init.21331.decldescription type=javadoc
/**
* Author: Jörg Bäuerle<br/>
* Initialisiert den Compiler
*/
// ino.end
// ino.method.init.21331.declaration
public void init();
// ino.end
// ino.method.parse.21334.decldescription type=javadoc
/**
* Author: Jörg Bäuerle<br/>
* Parst eine Quellcodedatei und baut den abstrakten Syntaxbaum auf.
* @param file Die Quellcode-Datei
* @throws FileNotFoundException Wenn die Quellcode-Datei nicht existiert.
* @throws IOException Wenn was schief läuft.
* @throws JavaParser.yyException Wenn ein Fehler beim Parsen auftritt.
*/
// ino.end
// ino.method.parse.21334.declaration
public SourceFile parse(File file)
throws FileNotFoundException, IOException, JavaParser.yyException;
// ino.end
// ino.method.parse.21337.decldescription type=javadoc
/**
* Author: Jörg Bäuerle<br/>
* Parst einen String und baut den abstrakten Syntaxbaum auf.
* @param srcCode Der zu parsende Quellcode
* @throws IOException Wenn was schief läuft.
* @throws JavaParser.yyException Wenn ein Fehler beim Parsen auftritt.
// ino.end
// ino.method.parse.21337.declaration
public void parse(String srcCode)
throws IOException, JavaParser.yyException;
// ino.end
*/
// ino.method.typeReconstruction.21340.decldescription type=javadoc
/**
* Author: Jörg Bäuerle<br/>
* Ruft den Typrekonstruktionsalgorithmus auf.
* @return Die Menge aller möglichen Typkombinationen
* @throws NullPointerException Wenn noch kein abstrakter Syntaxbaum vorhanden
* ist. @throws CTypeReconstructionException Wenn ein Fehler bei der
* Typrekonstruktion auftritt.
*/
// ino.end
// ino.method.typeReconstruction.21340.declaration
public Menge<TypeinferenceResultSet> typeReconstruction()
throws NullPointerException, TypeinferenceException;
// ino.end
// ino.method.codeGeneration.21346.decldescription type=javadoc
/**
* Author: Jörg Bäuerle<br/>
* Generiert den Bytecode und das Class-File für den Syntaxbaum.
* @param syntaxTree Der Syntaxbaum
* @throws NullPointerException Wenn noch kein abstrakter Syntaxbaum vorhanden
* ist. @throws JVMCodeException
*/
// ino.end
// ino.method.codeGeneration.21346.declaration
public Menge<ClassFile> codeGeneration(ResultSet result)
throws NullPointerException, JVMCodeException;
// ino.end
// ino.method.setOutputDir.21349.decldescription type=javadoc
/**
* Author: Juergen Schmiing <br>
* Legt das Ausgabeverzeichnis fuer die class-Files fest.
*/
// ino.end
// ino.method.setOutputDir.21349.declaration
public void setOutputDir(String dir);
// ino.end
// ino.method.getOutputDir.21352.decldescription type=javadoc
/**
* Author: Juergen Schmiing <br>
* Gibt das Ausgabeverzeichnis fuer die class-Files zurueck.
*/
// ino.end
// ino.method.getOutputDir.21352.declaration
public String getOutputDir();
// ino.end
/**
* Parst zusammenhängende JavaKlassen in verschiedenen Dateien.
* @param filenames - Eine Liste von Quellcodedateien, welche gseparst werden sollen
*/
public void parse(Menge<String> filenames) throws ParserError;
/**
* Parst den SourceCode einer Datei.
* @param sourceCode - SourceCode einer Java-Quellcodedatei
* @return den aus dem sourceCode generierten Syntaxbaum
*/
public SourceFile parse(String sourceCode) throws ParserError;
}
// ino.end