mycompiler
Interface MyCompilerAPI

All Known Implementing Classes:
MyCompiler

public interface MyCompilerAPI

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.

Version:
$Date: 2005/06/28 19:19:09 $
Author:
Jörg Bäuerle

Method Summary
 void codeGeneration()
          Author: Jörg Bäuerle
Generiert den Bytecode und das Class-File für den Syntaxbaum.
 SourceFile getSyntaxTree()
          Author: Jörg Bäuerle
Liefert den geparsten Syntaxbaum zurück.
 void init()
          Author: Jörg Bäuerle
Initialisiert den Compiler
 void parse(java.io.File file)
          Author: Jörg Bäuerle
Parst eine Quellcodedatei und baut den abstrakten Syntaxbaum auf.
 void parse(java.lang.String srcCode)
          Author: Jörg Bäuerle
Parst einen String und baut den abstrakten Syntaxbaum auf.
 void semanticCheck()
          Author: Jörg Bäuerle
Ruft den Semantik-Check ohne Typrekonstruktion auf.
 boolean setDebugLevel(int debugLevel)
          Author: Jörg Bäuerle
Setzt den Debug-Level
 java.util.Vector<CTypeReconstructionResult> typeReconstruction()
          Author: Jörg Bäuerle
Ruft den Typrekonstruktionsalgorithmus auf.
 

Method Detail

init

void init()
Author: Jörg Bäuerle
Initialisiert den Compiler


setDebugLevel

boolean setDebugLevel(int debugLevel)
Author: Jörg Bäuerle
Setzt den Debug-Level

Parameters:
debugLevel - Debug-Level
Returns:
true wenn ein korrekter Wert übergeben worden ist, false sonst.

parse

void parse(java.io.File file)
           throws java.io.FileNotFoundException,
                  java.io.IOException,
                  JavaParser.yyException
Author: Jörg Bäuerle
Parst eine Quellcodedatei und baut den abstrakten Syntaxbaum auf.

Parameters:
file - Die Quellcode-Datei
Throws:
java.io.FileNotFoundException - Wenn die Quellcode-Datei nicht existiert.
java.io.IOException - Wenn was schief läuft.
JavaParser.yyException - Wenn ein Fehler beim Parsen auftritt.

parse

void parse(java.lang.String srcCode)
           throws java.io.IOException,
                  JavaParser.yyException
Author: Jörg Bäuerle
Parst einen String und baut den abstrakten Syntaxbaum auf.

Parameters:
srcCode - Der zu parsende Quellcode
Throws:
java.io.IOException - Wenn was schief läuft.
JavaParser.yyException - Wenn ein Fehler beim Parsen auftritt.

semanticCheck

void semanticCheck()
                   throws java.lang.NullPointerException,
                          SCException
Author: Jörg Bäuerle
Ruft den Semantik-Check ohne Typrekonstruktion auf. Diese Methode sollte nicht mehr verwendet werden. Es wird nicht gewährleistet, dass sie korrekt arbeitet.
Stattdessen sollte besser die Methode \code{typeReconstruction()} verwendet werden.

Throws:
java.lang.NullPointerException - Wenn noch kein abstrakter Syntaxbaum vorhanden ist.
SCException - Wenn ein Fehler beim Semantik-Check auftritt.

typeReconstruction

java.util.Vector<CTypeReconstructionResult> typeReconstruction()
                                                               throws java.lang.NullPointerException,
                                                                      CTypeReconstructionException
Author: Jörg Bäuerle
Ruft den Typrekonstruktionsalgorithmus auf.

Returns:
Die Menge aller möglichen Typkombinationen
Throws:
java.lang.NullPointerException - Wenn noch kein abstrakter Syntaxbaum vorhanden ist.
CTypeReconstructionException - Wenn ein Fehler bei der Typrekonstruktion auftritt.

getSyntaxTree

SourceFile getSyntaxTree()
                         throws java.lang.NullPointerException
Author: Jörg Bäuerle
Liefert den geparsten Syntaxbaum zurück.

Returns:
Die Syntaxbäume
Throws:
java.lang.NullPointerException - Wenn noch kein Syntaxbaum berechnet worden ist.

codeGeneration

void codeGeneration()
                    throws java.lang.NullPointerException
Author: Jörg Bäuerle
Generiert den Bytecode und das Class-File für den Syntaxbaum.

Parameters:
syntaxTree - Der Syntaxbaum
Throws:
java.lang.NullPointerException - Wenn noch kein abstrakter Syntaxbaum vorhanden ist.