Nodo asignación. Más...
#include <symbolOpNode.h>
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) |
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.
Construcutor de la clase que asocia los nodos al nodo operación de asignación
| node1 | Nodo sobre el que se realizará la asignación |
| node2 | Nodo que será asignado |
| runNode * asigNode::getLeft | ( | ) |
Obtiene la parte izquierda del operador
| runNode * asigNode::getRight | ( | ) |
Obtiene la parte derecha del operador
|
virtual |
Las asignaciones deben ser ejecutadas cunado se encuentran dentro de una lista.
Reimplementado de runNode.
|
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