sota.lang.java.ast.util
Class JavaSymbolTable

java.lang.Object
  extended by sota.lang.java.ast.util.JavaSymbolTable

 class JavaSymbolTable
extends java.lang.Object

Verwaltet die Symboltabelle (momentan ungenutzt) und den aktuellen Scope.


Field Summary
protected  java.lang.String currPackage
           
protected  java.lang.String currScope
           
protected  java.util.Stack<java.lang.Object> dataStack
           
private  java.util.HashMap<java.lang.String,java.lang.String> extensionTable
           
private  java.util.HashMap<java.lang.String,java.lang.String> idTable
           
private  java.util.ArrayList<java.lang.String> listOfClassPaths
           
private static boolean PRINT_ERROR
           
private  java.util.HashSet<java.lang.String> setOfImportedClasses
           
private  java.util.HashSet<java.lang.String> setOfImportedPackages
           
protected  java.util.HashSet<java.lang.String> setOfTypeParsedClasses
           
private  int unnamedScopeId
           
private static boolean VERBOSE
           
private static boolean VERBOSE2
           
 
Constructor Summary
JavaSymbolTable()
           
 
Method Summary
 void addImportedClass(java.lang.String importedClass)
          fügt Importierte Pakete hinzu
 void addImportedPackage(java.lang.String importedPackage)
          fügt Importierte Pakete hinzu
 void addImports(java.util.HashSet<java.lang.String> _setOfImportedPackages, java.util.HashSet<java.lang.String> _setOfImportedClasses)
          fügt Importierte Pakete und Klassen hinzu
 java.lang.String checkType(java.lang.String _type)
          testet, ob t Type ist und gibt vollqualifizierten Type von t zurück
 boolean closeScope()
          schließt aktuellen Scope und kehr in den darüberliegenden zurück
 java.lang.String getCurrPackage()
           
 java.lang.String getCurrScope()
          gibt aktuellen Scope zurück
 void init()
          initialisiert Symboltabelle mit Standardtypen
 java.lang.String lookUp(java.lang.String _name)
          liefert den Typen der Id
 java.lang.String lookUpFullyQualifiedId(java.lang.String _name)
          liefert den Type einer vollqualifizierten Id
 void openPackage(java.lang.String _name)
          öffnet ein Packet
 void openScope()
          öffnet unbenannten Scope
 void openScope(java.lang.String _name)
          öffnet benannten Scope
 void print()
          gibt Symboltabelle aus
 void putExtension(java.lang.String _class, java.lang.String _superClass)
          hinzufügen einer Superklassenbeziehung
 void putFullyQualifiedType(java.lang.String _type)
          fügt vollqualifizierten Typ ein
 void putId(java.lang.String _name, java.lang.String _type)
           
 void putType(java.lang.String _name)
          fügt Type in aktuellen Scope ein
 void putType(java.lang.String _package, java.lang.String _name)
          fügt Type eines Packages ein
 void reset()
          dateilokaler Reset; vor dem Parsen einer neuen Datei notwendig
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

currPackage

protected java.lang.String currPackage

currScope

protected java.lang.String currScope

dataStack

protected java.util.Stack<java.lang.Object> dataStack

extensionTable

private java.util.HashMap<java.lang.String,java.lang.String> extensionTable

idTable

private java.util.HashMap<java.lang.String,java.lang.String> idTable

listOfClassPaths

private java.util.ArrayList<java.lang.String> listOfClassPaths

PRINT_ERROR

private static boolean PRINT_ERROR

setOfImportedClasses

private java.util.HashSet<java.lang.String> setOfImportedClasses

setOfImportedPackages

private java.util.HashSet<java.lang.String> setOfImportedPackages

setOfTypeParsedClasses

protected java.util.HashSet<java.lang.String> setOfTypeParsedClasses

unnamedScopeId

private int unnamedScopeId

VERBOSE

private static boolean VERBOSE

VERBOSE2

private static boolean VERBOSE2
Constructor Detail

JavaSymbolTable

public JavaSymbolTable()
Method Detail

addImportedClass

public void addImportedClass(java.lang.String importedClass)
fügt Importierte Pakete hinzu


addImportedPackage

public void addImportedPackage(java.lang.String importedPackage)
fügt Importierte Pakete hinzu


addImports

public void addImports(java.util.HashSet<java.lang.String> _setOfImportedPackages,
                       java.util.HashSet<java.lang.String> _setOfImportedClasses)
fügt Importierte Pakete und Klassen hinzu


checkType

public java.lang.String checkType(java.lang.String _type)
testet, ob t Type ist und gibt vollqualifizierten Type von t zurück


closeScope

public boolean closeScope()
schließt aktuellen Scope und kehr in den darüberliegenden zurück


getCurrPackage

public java.lang.String getCurrPackage()

getCurrScope

public java.lang.String getCurrScope()
gibt aktuellen Scope zurück


init

public void init()
initialisiert Symboltabelle mit Standardtypen


lookUp

public java.lang.String lookUp(java.lang.String _name)
liefert den Typen der Id


lookUpFullyQualifiedId

public java.lang.String lookUpFullyQualifiedId(java.lang.String _name)
liefert den Type einer vollqualifizierten Id


openPackage

public void openPackage(java.lang.String _name)
öffnet ein Packet


openScope

public void openScope()
öffnet unbenannten Scope


openScope

public void openScope(java.lang.String _name)
öffnet benannten Scope


print

public void print()
gibt Symboltabelle aus


putExtension

public void putExtension(java.lang.String _class,
                         java.lang.String _superClass)
hinzufügen einer Superklassenbeziehung


putFullyQualifiedType

public void putFullyQualifiedType(java.lang.String _type)
fügt vollqualifizierten Typ ein


putId

public void putId(java.lang.String _name,
                  java.lang.String _type)

putType

public void putType(java.lang.String _name)
fügt Type in aktuellen Scope ein


putType

public void putType(java.lang.String _package,
                    java.lang.String _name)
fügt Type eines Packages ein


reset

public void reset()
dateilokaler Reset; vor dem Parsen einer neuen Datei notwendig