Referencia de la Clase idgetNode

Nodo identificador obtenido. Más...

#include <idNode.h>

Diagrama de herencias de idgetNode
idNode nexpNode expNode objectTypeNode printableNode runNode

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)
 

Descripción detallada

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.

Documentación del constructor y destructor

idgetNode::idgetNode ( runNode *  exp)

Constructor del nodo.

Parámetros
expNodo ejecutable correspondiente, cuya ejecución determina el nombre del identificador.

Documentación de las funciones miembro

void idgetNode::clear ( )

Limpia el valor de la referencia, borrándola de la tabla de variables.

bool idgetNode::exist ( bool  func = true)
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.

Parámetros
funcComprueba además si existe como función.
Devuelve
Booleano que indica si la variable existe.

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.

Devuelve
Booleano que indica si la clase existe.
bool idgetNode::existf ( ) const

Tras la ejecución del nodo devuelve si existía la referencia en la tabla de símbolos de funciones.

Devuelve
Booleano que indica si la función existe.
bool idgetNode::existfunction ( )
virtual

Comprueba si existe la referencia correspondiente al nodo en la tabla de funciones. No necesita ejecutar el nodo.

Devuelve
Booleano que indica si la función existe.

Reimplementado de idNode.

idNode * idgetNode::getId ( )

Obtiene el Identificador relativo al nombre calculado en la ejecución del nodo.

Devuelve
Nodo identificador.
string idgetNode::name ( ) const

Obtiene el nombre calculado en la ejecución del nodo.

Devuelve
Nombre
void idgetNode::run ( )
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.

void idgetNode::run ( bool  resolvkey)
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.

Parámetros
resolvkeySi es verdadero resuelve la referencia.

Reimplementado de idNode.

void idgetNode::runc ( )
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.

void idgetNode::runf ( )
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.


La documentación para esta clase fue generada a partir de los siguientes ficheros:
  • trunk/src/run/table/idNode.h
  • trunk/src/run/table/idNode.cpp