Tabla de símbolos. Más...
#include <symbols.h>
Métodos públicos | |
| symbolsTable () | |
| symbolsTable (const symbolsTable *table) | |
| symbolsTable (symbolsTable *table) | |
| refNode *& | push_back (refNode *node) |
| void | pop_back () |
| isymTable | begin () |
| isymTable | end () |
| isymTable | begin () const |
| isymTable | end () const |
| isymTable | find (runNode *node) |
| refNode * | findRef (runNode *node, runNode *default_node=NULL) |
| void | clear () |
| void | clearRef () |
| bool | empty () |
| int | size () const |
| runNode *& | operator[] (const string key) |
| runNode * | findKey (string key) const |
| runNode *& | operator[] (refNode *key) |
| runNode *& | operator[] (runNode *key) |
| runNode *& | operator[] (int val) |
| refNode *& | getRef (int val) |
| void | erase (runNode *key) |
| void | erase_position (unsigned int i) |
| void | print () |
| refNode * | last () |
| refNode * | first () |
| void | insert (isymTable i, refNode *element) |
| void | insert (int pos, refNode *element) |
Métodos públicos estáticos | |
| static symbolsTable | copyRef (symbolsTable *sym) |
Tabla de símbolos.
Una tabla de símbolos es una estructura de datos que guarda una serie de referencias que apunta a otros nodos. Generalmente los nodos referenciados por la tabla de símbolos serán creados de forma dinámica, fruto de la ejecución del árbol sintáctico.
Las tablas de símbolos pueden contener nodos que guarden cierta relación. Por ejemplo se puede utilizar una tabla para las variables, otras paras las funciones...
| symbolsTable::symbolsTable | ( | ) |
Constructor de la clase. Crea una tabla de símbolos vacía.
| symbolsTable::symbolsTable | ( | const symbolsTable * | table | ) |
Constructor de la clase. Crea una tabla de símbolos a partir de otra con el atributo de constante.
| table | Tabla de símbolos constante. |
| symbolsTable::symbolsTable | ( | symbolsTable * | table | ) |
Constructor de la clase. Crea una tabla de símbolos a partir de otra.
| table | Tabla de símbolos. |
| isymTable symbolsTable::begin | ( | ) |
Obtiene un iterador de tabla de símbolos a la primera referencia.
| isymTable symbolsTable::begin | ( | ) | const |
Obtiene un iterador de tabla de símbolos a la primera referencia.
| void symbolsTable::clear | ( | ) |
Vacia la tabla de símbolos eliminado las referencias.
| void symbolsTable::clearRef | ( | ) |
Vacia la tabla de símbolo sin eliminar las referencias.
|
static |
Crea y devuelve una tabla de símbolos cuyas referencias han sido copiadas a partir de otras.
| sym | Tabla de símbolos base. |
| bool symbolsTable::empty | ( | ) |
Determina si la tabla de símbolos está vacía.
| isymTable symbolsTable::end | ( | ) |
Obtiene un iterador de tabla de símbolos al final de la tabla
| isymTable symbolsTable::end | ( | ) | const |
Obtiene un iterador de tabla de símbolos al final de la tabla.
| void symbolsTable::erase | ( | runNode * | key | ) |
Elimina la referencia determinada por un nodo que hace de clave. Si no existe no se lleva a cabo ninguna acción.
| key | Nodo que hace de clave. |
| void symbolsTable::erase_position | ( | unsigned int | i | ) |
Elimina la referencia que ocupa una determinada posición de la tabla de símbolos. Si está fuera de rango no se lleva a cabo ninguna acción.
| i | Posición. |
Busca y devuelve un iterador posicionado en el elemento de la tabla de símbolos que apunta al nodo dado, según la función de comparación de nodos.
| node | Nodo a buscar. |
| runNode * symbolsTable::findKey | ( | string | key | ) | const |
Permite acceder a una referencia de la tabla de símbolos a partir de una clave. Si la clave no es encontrada devuelve un nodo nulo.
| key | Clave correspondiente a la referencia a buscar. |
Busca y devuelve la referencia de la tabla que apunta a un nodo dado, según la función de comparación de nodos. Si no es encontrado se crea una referencia en la tabla cuyo valor es el nodo por defecto. Si es encontrado el nodo por defecto es liberado.
| node | Nodo a buscar. |
| default_node | Valor por defecto si no es encontrado. |
| refNode * symbolsTable::first | ( | ) |
Obtiene la primera referencia de la tabla de símbolos.
| refNode *& symbolsTable::getRef | ( | int | val | ) |
Obtiene la referencia de la tabla de símbolos en la posición dada. Si está fuera de rango se devuelve NULL.
| val | Posición. |
Inserta una referencia tras un iterador dado.
| i | Iterador tras el cual se realizará la operación. |
| element | Referencia a insertar. |
| void symbolsTable::insert | ( | int | pos, |
| refNode * | element | ||
| ) |
Inserta una referencia en una posición dada.
| pos | Posición en la cual se realizará la operación. |
| element | Referencia a insertar. |
| refNode * symbolsTable::last | ( | ) |
Obtiene al última referencia de la tabla de símbolos.
| runNode *& symbolsTable::operator[] | ( | const string | key | ) |
Sobrecarga el operador de acceso. Permite acceder a una referencia de la tabla de símbolos a partir de una clave. Si la clave no es encontrada devuelve un nodo nulo.
| key | Clave correspondiente a la referencia a buscar. |
Sobrecarga el operador de acceso. Permite acceder a una referencia de la tabla de símbolos a partir otra referencia, comparándose las claves. Si no es encontrada devuelve un nodo nulo.
| key | Clave correspodiente a la referencia a buscar. |
Sobrecarga el operador de acceso. Permite acceder a una referencia de la tabla de símbolos a partir un nodo que hará de referencia, comparándose las claves. Si no es encontrada devuelve un nodo nulo.
| key | Referencia a buscar. |
| runNode *& symbolsTable::operator[] | ( | int | val | ) |
Sobrecarga el operador de acceso. Permite acceder a una referencia de la tabla de símbolos a partir una posición. Si no es encontrada devuelve un nodo nulo.
| key | Nodo que representa la referencia a buscar. |
| void symbolsTable::pop_back | ( | ) |
Elimina de la tabla de símbolos la última referencia .
| void symbolsTable::print | ( | ) |
Imprime la tabla de símbolos por la salida estándar.
Añade una referencia al final de la tabla de símbolos.
| node | Referencia. |
| int symbolsTable::size | ( | ) | const |
Obtiene el tamaño de la tabla de símbolos.