Referencia de la Clase asigNode

Nodo asignación. Más...

#include <symbolOpNode.h>

Diagrama de herencias de asigNode
nexpNode expNode objectTypeNode printableNode runNode

Métodos públicos

 asigNode (runNode *node1, runNode *node2)
 
void run ()
 
void runLevel ()
 
void setValue (runNode *node)
 
runNode * getLeft ()
 
runNode * getRight ()
 
bool is_runlist () const
 
- Métodos públicos heredados desde nexpNode
virtual refNode * ref ()
 
virtual void noderef (runNode *node)
 
virtual runNode * nodeval () const
 
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_string () const
 
string getPtrString ()
 

Otros miembros heredados

- 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 asignación.

Asigna el valor de un nodo a otro. La asignación se debe realizar sobre una expresión de tipo no definido, modificándose la referencia interna de este al nodo asignado.

Si el nodo que es asignado es constante será clonado y se asignará la copia. Si el nodo es dinámico se asigna el propio nodo aumentaándose el número de referencias del mismo.

La asignación es en si misma una expresión de tipo no definido cuyo valor tras la ejecución será el nodo asignado.

Documentación del constructor y destructor

asigNode::asigNode ( runNode *  node1,
runNode *  node2 
)

Construcutor de la clase que asocia los nodos al nodo operación de asignación

Parámetros
node1Nodo sobre el que se realizará la asignación
node2Nodo que será asignado

Documentación de las funciones miembro

runNode * asigNode::getLeft ( )

Obtiene la parte izquierda del operador

Devuelve
Nodo de la parte izquierda del operador
runNode * asigNode::getRight ( )

Obtiene la parte derecha del operador

Devuelve
Nodo de la parte derecha del operador
bool asigNode::is_runlist ( ) const
virtual

Las asignaciones deben ser ejecutadas cunado se encuentran dentro de una lista.

Reimplementado de runNode.

void asigNode::run ( )
virtual

Método que ejecuta el nodo. Se lleva a cabo la asignación, para ello se procesa el lado derecho de la asignación. Luego este valor es asignado a como referencia del lado izquierdo.

Tras la ejecución se toma como valor el nodo asignado

Implementa runNode.

void asigNode::runLevel ( )

Método que ejecuta el nodo entre niveles de la tabla de símbolos. Se lleva a cabo la asignación, para ello se procesa el lado derecho de la asignación en el nivel anterior de la tabla de símbolos. Luego este valor es asignado a como referencia del lado izquierdo en el nivel actual de la tabla de símbolos.

Generalmente el lado izquierdo de la expresión será un identificador.

Tras la ejecución se toma como valor el nodo asignado

void asigNode::setValue ( runNode *  node)

Asigna el valor de un nodo dado al referencia del nodo del lado izquierdo del operador


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