Nodo identificador. Más...

#include <idNode.h>

Diagrama de herencias de idNode
nexpNode expNode objectTypeNode printableNode runNode idgetNode

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)
 

Descripción detallada

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.

Documentación del constructor y destructor

idNode::idNode ( string  id)

Constructor del nodo.

Parámetros
idNombre del identificador.

Documentación de las funciones miembro

void idNode::clear ( )

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

bool idNode::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 existía .

Reimplementado en idgetNode.

bool idNode::existc ( ) const
inline

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 clase existía .
bool idNode::existf ( ) const
inline

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 existía .
bool idNode::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 en idgetNode.

refNode * idNode::getRef ( ) const

Obtiene la referencia en la tabla de símbolos de variables.

Devuelve
Referencia en la tabla de símbolos de variables.
refNode * idNode::getRefc ( ) const

Obtiene la referencia en la tabla de símbolos de clases.

Devuelve
Referencia en la tabla de símbolos de clases.
refNode * idNode::getReff ( ) const

Obtiene la referencia en la tabla de símbolos de funciones.

Devuelve
Referencia en la tabla de símbolos de funciones.
string idNode::name ( ) const
inline

Obtiene el nombre del id

Devuelve
Nombre
void idNode::noderef ( runNode *  node)
virtual

Cambia el valor que tiene la referencia con la clave correspondiente al identificador en el nivel actual la tabla de variables.

Parámetros
nodeNodo 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.

Parámetros
nodeNodo 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.

Parámetros
nodeNodo valor de la referencia.
runNode* idNode::nodeval ( ) const
inlinevirtual

Obtiene el nodo al que apunta la referencia que el nodo tiene como valor.

Devuelve
Valor del id en el nivel actual de la tabla de variables.

Reimplementado de nexpNode.

runNode* idNode::nodevalc ( ) const
inline

Obtiene el elemento referenciado por el par (clave, referencia) de la tabla de clases

Devuelve
Valor del id en la tabla de clases.
runNode* idNode::nodevalf ( ) const
inline

Obtiene el elemento referenciado por el par (clave, referencia) de la tabla de funciones

Devuelve
Valor del id en la tabla de funciones.
refNode* idNode::ref ( )
inlinevirtual

Obtiene el valor referencia tomado por el nodo en la tabla de variables.

Devuelve
Referencia de la tabla de variables tomada como valor.

Reimplementado de nexpNode.

refNode* idNode::refc ( )
inline

Obtiene el valor referencia tomado por el nodo en la tabla de clases.

Devuelve
Referencia de la tabla de funciones tomada como valor.
refNode* idNode::reff ( )
inline

Obtiene el valor referencia tomado por el nodo en la tabla de funciones.

Devuelve
Referencia de la tabla de funciones tomada como valor.
runNode * idNode::resolved ( runNode *&  id,
runNode *  default_val = NULL,
bool  check_privat = false,
sTable *  check_table = NULL 
)
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. .

Parámetros
idNodo ejecutable que será tratado como el nodo identificador. Si no es identificador no se lleva a cabo ninguna acción.
default_valValor por defecto que devolverá si no existe.
check_privateComprueba si tiene acceso privado
check_tableEntorno de tablas de símbolos que se usará.
runNode * idNode::resolvedAsStr ( runNode *&  id,
bool  isfunc = true,
bool  check_private = false,
sTable *  check_table = NULL,
bool  force_str = false 
)
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.

Parámetros
idNodo ejecutable que será tratado como el nodo identificador. Si no es identificador no se lleva a cabo ninguna acción.
isfuncComprueba en la tabla de símbolos de funciones.
check_privateComprueba si tiene acceso privado.
check_tableEntorno de tablas de símbolos que se usará.
force_strConvierte el nodo en un nodo cadena si no encuentra la referencia.
void idNode::run ( )
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.

void idNode::run ( bool  resolvkey)
virtual

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 en idgetNode.

void idNode::runc ( )
virtual

Accede a la tabla de símbolos de clases y toma como valor la referencia correspondiente al nombre.

Reimplementado en idgetNode.

void idNode::runf ( )
virtual

Accede a la tabla de símbolos de funciones y toma como valor la referencia correspondiente al nombre.

Reimplementado en idgetNode.

void idNode::setName ( string  name)
inline

Establece el nombre del identificador.

Parámetros
nameNombre

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