## mycompiler
Class MyCompiler

    java.lang.Object
      mycompiler.MyCompiler

All Implemented Interfaces:
  MyCompilerAPI

    public class MyCompiler

extends java.lang.Object
implements MyCompilerAPI

Field Summary
`static int` `ALL_INFO`
`static int` `DebugLevel`
`static int` `GENERAL_INFO`
`static int` `NO_INFO`
`static int` `NO_LINENUMBER`
`static int` `PARSER_INFO`
`static int` `SCANNER_INFO`
`static int` `SEMANTIC_INFO`
`static int` `TYPE_ANALYSIS_INFO`
`static int` `UNIFICATION_INFO`

Method Summary
`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.
`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)` Author: J�rg B�uerle Die Main-Funktion, �ber die der Compiler auch per Konsole gestartet werden kann.
`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.
`static void` `printDebugInfo(java.lang.String str1, int nLevel)` Author: J�rg B�uerle Von meinen Vorg�ngern eingesetzte Methode zur Ausgabe von diferenzierten Debug-Ausgaben.
`void` `semanticCheck()` Author: J�rg B�uerle Ruft �ber `SourceFile.sc_check(false)` den alten Semantik-Check ohne Typrekonstruktion auf.
`boolean` `setDebugLevel(int debugLevel)` Author: J�rg B�uerle Setzt den Debug-Level
`de.dhbwstuttgart.typeinference.Menge<CTypeReconstructionResult>` `typeReconstruction()` Author: J�rg B�uerle Ruft den Typrekonstruktionsalgorithmus auf.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### NO_INFO

    public static final int NO_INFO

See Also:
  Constant Field Values

### ALL_INFO

    public static final int ALL_INFO

See Also:
  Constant Field Values

### GENERAL_INFO

    public static final int GENERAL_INFO

See Also:
  Constant Field Values

### SCANNER_INFO

    public static final int SCANNER_INFO

See Also:
  Constant Field Values

### PARSER_INFO

    public static final int PARSER_INFO

See Also:
  Constant Field Values

### SEMANTIC_INFO

    public static final int SEMANTIC_INFO

See Also:
  Constant Field Values

### TYPE_ANALYSIS_INFO

    public static final int TYPE_ANALYSIS_INFO

See Also:
  Constant Field Values

### UNIFICATION_INFO

    public static final int UNIFICATION_INFO

See Also:
  Constant Field Values

### NO_LINENUMBER

    public static final int NO_LINENUMBER

See Also:
  Constant Field Values

### DebugLevel

    public static int DebugLevel

Method Detail

### getAPI

    public static MyCompilerAPI getAPI()

  Author: J�rg B�uerle
  Stellt eine neue Instanz der CompilerAPI zur Verf�gung. Diese Methode sollte von der IDE aus aufgerufen werden, um eine Quellcode-Datei zu kompilieren.

  Returns:
    Die Compiler-API

### printDebugInfo

    public static void printDebugInfo(java.lang.String str1,
                                      int nLevel)

  Author: J�rg B�uerle
  Von meinen Vorg�ngern eingesetzte Methode zur Ausgabe von diferenzierten Debug-Ausgaben.

  Parameters:
    `str1` - Die Debug-Ausgabe
    `nLevel` - Der DebugLevel

### init

    public void init()

  Author: J�rg B�uerle
  Initialisiert den Compiler

  Specified by:
    `init` in interface `MyCompilerAPI`

### setDebugLevel

    public boolean setDebugLevel(int debugLevel)

  Author: J�rg B�uerle
  Setzt den Debug-Level

  Specified by:
    `setDebugLevel` in interface `MyCompilerAPI`
  Parameters:
    `debugLevel` - Debug-Level
  Returns:
    `true` wenn ein korrekter Wert �bergeben worden ist, `false` sonst.

### parse

    public void parse(java.io.File file)
               throws java.io.FileNotFoundException,
                      java.io.IOException,
                      JavaParser.yyException

  Author: J�rg B�uerle
  Ruft die Parse-Methode.

  Specified by:
    `parse` in interface `MyCompilerAPI`
  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

    public void parse(java.lang.String srcCode)
               throws java.io.IOException,
                      JavaParser.yyException

  Author: J�rg B�uerle
  Ruft die Parse-Methode.

  Specified by:
    `parse` in interface `MyCompilerAPI`
  Parameters:
    `srcCode` - Der zu parsende Quellcode
  Throws:
    `java.io.IOException` - Wenn was schief l�uft.
    `JavaParser.yyException` - Wenn ein Fehler beim Parsen auftritt.

### semanticCheck

    public void semanticCheck()
                       throws java.lang.NullPointerException,
                              SCException

  Author: J�rg B�uerle
  Ruft �ber `SourceFile.sc_check(false)` den alten Semantik-Check ohne Typrekonstruktion auf.

  Specified by:
    `semanticCheck` in interface `MyCompilerAPI`
  Throws:
    `java.lang.NullPointerException` - Wenn noch kein abstrakter Syntaxbaum vorhanden ist.
    `SCException` - Wenn ein Fehler beim Semantik-Check auftritt.

### typeReconstruction

    public de.dhbwstuttgart.typeinference.Menge<CTypeReconstructionResult> typeReconstruction()
                                                                   throws java.lang.NullPointerException,
                                                                          CTypeReconstructionException

  Author: J�rg B�uerle
  Ruft den Typrekonstruktionsalgorithmus auf.

  Specified by:
    `typeReconstruction` in interface `MyCompilerAPI`
  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

    public SourceFile getSyntaxTree()
                             throws java.lang.NullPointerException

  Author: J�rg B�uerle
  Liefert den geparsten Syntaxbaume zur�ck.

  Specified by:
    `getSyntaxTree` in interface `MyCompilerAPI`
  Returns:
    Die Syntaxb�ume
  Throws:
    `java.lang.NullPointerException` - Wenn noch keine Syntaxb�ume berechnet worden sind.

### codeGeneration

    public void codeGeneration()
                        throws java.lang.NullPointerException

  Author: J�rg B�uerle
  Generiert den Bytecode und das Class-File f�r den Syntaxbaum.

  Specified by:
    `codeGeneration` in interface `MyCompilerAPI`
  Throws:
    `java.lang.NullPointerException` - Wenn noch kein abstrakter Syntaxbaum vorhanden ist.

### main

    public static void main(java.lang.String[] args)

  Author: J�rg B�uerle
  Die Main-Funktion, �ber die der Compiler auch per Konsole gestartet werden kann.

  Parameters:
    `args` - Die Konsolen-Parameter