Nodo identificador. Más...
#include <idNode.h>
Métodos públicos | |
| idNode (string id) | |
| void | run () |
| virtual void | run (bool resolvkey) |
| virtual void | runf () |
| virtual void | runc () |
| refNode * | ref () |
| refNode * | reff () |
| refNode * | refc () |
| runNode * | nodeval () const |
| runNode * | nodevalf () const |
| runNode * | nodevalc () const |
| void | clear () |
| void | noderef (runNode *node) |
| void | nodereff (runNode *node) |
| void | noderefc (runNode *node) |
| virtual bool | exist (bool func=true) |
| bool | existf () const |
| bool | existc () const |
| virtual bool | existfunction () |
| string | name () const |
| void | setName (string name) |
| refNode * | getRef () const |
| refNode * | getReff () const |
| refNode * | getRefc () const |
Métodos públicos heredados desde nexpNode | |
| virtual void | setRef (refNode *node) |
| virtual refNode * | getRef () |
| void | asig (runNode *&node, bool run=true) |
| void | setVal (runNode *node) |
| string | print () const |
Métodos públicos heredados desde expNode | |
| virtual void | setNodeValue (runNode *node) |
Métodos públicos heredados desde objectTypeNode | |
| objectTypeNode () | |
| runNode * | getMethod (runNode *key) |
| refNode * | getMethodRef (runNode *key) |
| virtual runNode * | getClass () |
| virtual void | setClass (runNode *c) |
Métodos públicos heredados desde runNode | |
| runNode (string str) | |
| runNode () | |
| virtual void | addRef () |
| virtual void | rmRef () |
| virtual bool | is_print () const |
| virtual bool | is_runlist () const |
| virtual bool | is_string () const |
| string | getPtrString () |
Métodos públicos estáticos | |
| static runNode * | resolved (runNode *&id, runNode *default_val=NULL, bool check_privat=false, sTable *check_table=NULL) |
| static runNode * | resolvedAsStr (runNode *&id, bool isfunc=true, bool check_private=false, sTable *check_table=NULL, bool force_str=false) |
Métodos públicos estáticos heredados desde nexpNode | |
| static runNode * | resolved (runNode *&node) |
| static runNode * | resolvedRef (runNode *&node) |
| static runNode * | resolved (runNode *&node, runNode *&ref) |
| static runNode * | resolvedAsFunction (runNode *&node) |
| static runNode * | resolvedAsFunction (runNode *&node, runNode *&ref) |
| static runNode * | resolv (runNode *node) |
Métodos públicos estáticos heredados desde expNode | |
| static runNode * | clone (runNode *node) |
Métodos públicos estáticos heredados desde runNode | |
| static bool | compare (runNode *node1, runNode *node2, int op=0) |
Nodo identificador.
Guarda una referencia a una clave de la tabla de símbolos.
Su ejecución consiste en el acceso a la tabla de símbolos del contexto actual para obtener la clave, y por tanto el valor, que se corresponde al nombre del identificador.
Presenta un método run para el acceso a cada tabla de símbolos.
idNode es un nodo de tipo expresión no definida, por lo que toma como valor una referencia a un nodo.
| idNode::idNode | ( | string | id | ) |
Constructor del nodo.
| id | Nombre del identificador. |
| void idNode::clear | ( | ) |
Limpia el valor de la referencia, borrándola de la tabla de variables.
|
virtual |
Tras la ejecución del nodo devuelve si existía la referencia en el nivel actual de la tabla de símbolos de variables.
| func | Comprueba además si existe como función. |
Reimplementado en idgetNode.
|
inline |
Tras la ejecución del nodo devuelve si existía la referencia en la tabla de símbolos de funciones.
|
inline |
Tras la ejecución del nodo devuelve si existía la referencia en la tabla de símbolos de funciones.
|
virtual |
Comprueba si existe la referencia correspondiente al nodo en la tabla de funciones. No necesita ejecutar el nodo.
Reimplementado en idgetNode.
| refNode * idNode::getRef | ( | ) | const |
Obtiene la referencia en la tabla de símbolos de variables.
| refNode * idNode::getRefc | ( | ) | const |
Obtiene la referencia en la tabla de símbolos de clases.
| refNode * idNode::getReff | ( | ) | const |
Obtiene la referencia en la tabla de símbolos de funciones.
|
inline |
Obtiene el nombre del id
|
virtual |
Cambia el valor que tiene la referencia con la clave correspondiente al identificador en el nivel actual la tabla de variables.
| node | Nodo valor de la referencia. |
Reimplementado de nexpNode.
| void idNode::noderefc | ( | runNode * | node | ) |
Cambia el valor que tiene la referencia con la clave correspondiente al identificador en la tabla de clases.
| node | Nodo valor de la referencia. |
| void idNode::nodereff | ( | runNode * | node | ) |
Cambia el valor que tiene la referencia con la clave correspondiente al identificador en la tabla de funciones.
| node | Nodo valor de la referencia. |
|
inlinevirtual |
Obtiene el nodo al que apunta la referencia que el nodo tiene como valor.
Reimplementado de nexpNode.
|
inline |
Obtiene el elemento referenciado por el par (clave, referencia) de la tabla de clases
|
inline |
Obtiene el elemento referenciado por el par (clave, referencia) de la tabla de funciones
|
inlinevirtual |
Obtiene el valor referencia tomado por el nodo en la tabla de variables.
Reimplementado de nexpNode.
|
inline |
Obtiene el valor referencia tomado por el nodo en la tabla de clases.
|
inline |
Obtiene el valor referencia tomado por el nodo en la tabla de funciones.
|
static |
Resuelve la referencia correspondiente al nombre del nodo id en la tablas de símbolos del contexto indicado y la asigna como valor de id. .
| id | Nodo ejecutable que será tratado como el nodo identificador. Si no es identificador no se lleva a cabo ninguna acción. |
| default_val | Valor por defecto que devolverá si no existe. |
| check_private | Comprueba si tiene acceso privado |
| check_table | Entorno de tablas de símbolos que se usará. |
|
static |
Resuelve la referencia correspondiente al nombre del nodo id en la tablas de símbolos del contexto indicado y la asigna como valor de id. Si esta no existe asignará como valor un nodo cadena correspondiente al nombre del identificador.
| id | Nodo ejecutable que será tratado como el nodo identificador. Si no es identificador no se lleva a cabo ninguna acción. |
| isfunc | Comprueba en la tabla de símbolos de funciones. |
| check_private | Comprueba si tiene acceso privado. |
| check_table | Entorno de tablas de símbolos que se usará. |
| force_str | Convierte el nodo en un nodo cadena si no encuentra la referencia. |
|
virtual |
Accede a la tabla de símbolos de variables en el nivel actual y toma como valor la referencia correspondiente al nombre.
Si no existe una referencia en la tabla de símbolos correspondiente al nombre del identificador esta es creada y apuntada a un nodo de tipo nulo.
Si la referencia tomada como valor es otra referencia, toma esta última como valor, procediendo de la misma forma hasta que la referencia tomada como valor no apunte ha otra referencia. Este proceso se denomina resolver la referencia o clave.
Implementa runNode.
Reimplementado en idgetNode.
|
virtual |
Accede a la tabla de símbolos de variables en el nivel actual y toma como valor la referencia correspondiente al nombre.
| resolvkey | Si es verdadero resuelve la referencia. |
Reimplementado en idgetNode.
|
virtual |
Accede a la tabla de símbolos de clases y toma como valor la referencia correspondiente al nombre.
Reimplementado en idgetNode.
|
virtual |
Accede a la tabla de símbolos de funciones y toma como valor la referencia correspondiente al nombre.
Reimplementado en idgetNode.
|
inline |
Establece el nombre del identificador.
| name | Nombre |