|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--SymbolTable
Classe que implementa la taula de simbols.
En cada entrada hi ha una llista de TNode, per implementar la sobrecarrega de funcions.
En un TNode hi ha desada tota la informacio del simbol tractat
Els ambits s'implementen representant el nom de l'entrada en la taula com un String amb el seguent format: ambit1::subambit1::subsubambit1:: ... ::identificador
Buscar entre els ambits consisteix nomes en tractar aquest String. Aixo permet desar-ho tot en una unica taula hash
A mes, independentment de les entrades a la TS, hi ha una llista amb els metodes publics declarats en la classe que es tracta, per a saber si han estat o no implementats.
Field Summary | |
java.util.LinkedList |
listFunctions
Llista enllazada dels metodes publics declarats en la classe. |
private java.util.Vector |
scopeStack
Emmagatzema la pila d'ambits |
private java.lang.String |
superClass
Nom de la superclasse de la classe que estem tractant. |
private java.util.Hashtable |
symTable
Taula hash en la qual estan definits tots els simbols. |
private int |
typeOfScope
Tipus de l'ambit actual: classe,metode, constructor... |
Constructor Summary | |
SymbolTable()
Constructor per defecte |
Method Summary | |
java.util.LinkedList |
add(java.lang.String name,
java.util.LinkedList list)
Afegeix un note a la taula de simbols, amb una llista associada per permetre el polimorfisme en funcions. |
java.util.LinkedList |
addClassInterface(java.lang.String name,
java.util.LinkedList list)
Afegeix la definicio de la classe en el primer ambit, per a que sigui accesible des dels altres subambits (metodes,funcions,...) |
java.lang.String |
addCurrentScopeToName(java.lang.String name)
Afegeix l'ambit actual al nom d'un simbol |
java.lang.String |
addScopeToName(java.lang.String scope,
java.lang.String name)
Afegeix l'ambit al nom d'un simbol |
java.lang.String |
currentScopeAsString()
Retorna l'ambit actual com un String |
java.lang.String |
getParentScopeName()
Retorna el nom del primer ambit. |
java.lang.String |
getSuperClassName()
Retorna el nom de la superClase de la classe que s'esta tractant |
java.util.Hashtable |
getSymTable()
Retorna la taula hash de simbols |
int |
getTypeOfScope()
Retorna el tipus d'ambit actual |
java.util.LinkedList |
lookupNameInCurrentScope2(java.lang.String name)
Busca un simbol en la taula, afegint a davant tot l'ambit. |
void |
popScope()
Desempila l'ultim ambit de la pila d'ambits |
void |
pushScope(java.lang.String s)
Empila un nou ambit a la pila d'ambits |
java.lang.String |
removeOneLevelScope(java.lang.String scopeName)
Elimina un ambit de la pila d'ambits passada i retorna el resultat |
void |
setSuperClassName(java.lang.String className)
Especifica el nom de la superClasse de la classe que s'esta tractant |
void |
setTypeOfScope(int val)
Especifica el tipus d'ambit actual |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
private java.util.Vector scopeStack
private java.util.Hashtable symTable
private java.lang.String superClass
private int typeOfScope
public java.util.LinkedList listFunctions
Constructor Detail |
public SymbolTable()
Method Detail |
public java.lang.String getParentScopeName()
public java.util.Hashtable getSymTable()
public void setSuperClassName(java.lang.String className)
public java.lang.String getSuperClassName()
public void setTypeOfScope(int val)
public int getTypeOfScope()
public java.util.LinkedList addClassInterface(java.lang.String name, java.util.LinkedList list)
public void pushScope(java.lang.String s)
public void popScope()
public java.lang.String currentScopeAsString()
public java.lang.String addCurrentScopeToName(java.lang.String name)
public java.lang.String addScopeToName(java.lang.String scope, java.lang.String name)
public java.lang.String removeOneLevelScope(java.lang.String scopeName)
public java.util.LinkedList add(java.lang.String name, java.util.LinkedList list)
public java.util.LinkedList lookupNameInCurrentScope2(java.lang.String name)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |