Nodo identificador obtenido. Más...
#include <idNode.h>
Métodos públicos | |
| idgetNode (runNode *exp) | |
| void | run () |
| void | run (bool resolvkey) |
| virtual void | runf () |
| void | runc () |
| void | clear () |
| bool | exist (bool func=true) |
| bool | existf () const |
| bool | existc () const |
| string | name () const |
| bool | existfunction () |
| idNode * | getId () |
Métodos públicos heredados desde idNode | |
| idNode (string id) | |
| 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) |
| bool | existf () const |
| bool | existc () const |
| 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 () |
Otros miembros heredados | |
Métodos públicos estáticos heredados desde idNode | |
| 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 obtenido.
Este nodo es un nodo identificador tal que su nombre es obtenido mediante la evaluación de un nodo ejecutable.
Su ejecución implica obtener el nombre del identificador, para luego acceder a una la tabla de símbolos del contexto actual para obtener la clave, y por tanto el valor, que se corresponde al nombre obtenido.
| idgetNode::idgetNode | ( | runNode * | exp | ) |
Constructor del nodo.
| exp | Nodo ejecutable correspondiente, cuya ejecución determina el nombre del identificador. |
| void idgetNode::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 de idNode.
| bool idgetNode::existc | ( | ) | const |
Tras la ejecución del nodo devuelve si existía la referencia en la tabla de símbolos de clases.
| bool idgetNode::existf | ( | ) | const |
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 de idNode.
| idNode * idgetNode::getId | ( | ) |
Obtiene el Identificador relativo al nombre calculado en la ejecución del nodo.
| string idgetNode::name | ( | ) | const |
Obtiene el nombre calculado en la ejecución del nodo.
|
virtual |
Ejecuta el nodo asociado como expresión para obtener el nombre del identificador.
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.
Reimplementado de idNode.
|
virtual |
Ejecuta el nodo asociado como expresión para obtener el nombre del identificador.
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 de idNode.
|
virtual |
Ejecuta el nodo asociado como expresión para obtener el nombre del identificador.
Accede a la tabla de símbolos de clases y toma como valor la referencia correspondiente al nombre.
Reimplementado de idNode.
|
virtual |
Ejecuta el nodo asociado como expresión para obtener el nombre del identificador.
Accede a la tabla de símbolos de funciones y toma como valor la referencia correspondiente al nombre.
Reimplementado de idNode.