Nodo lista de elementos. Más...
#include <typeNode.h>
Métodos públicos | |
| listNode (runNode *ele1, runNode *ele2=NULL) | |
| void | run () |
| int | size () |
| vector< runNode * > | listvalue () const |
| bool | isAsigList () |
| listNode * | quitAsig () |
| bool | is_runlist () const |
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 runNode | |
| static bool | compare (runNode *node1, runNode *node2, int op=0) |
Nodo lista de elementos.
Una lista de elementos se representa mediante un vector de nodos ejecutables.
Un nodo lista se enlaza con otros dos nodos ejecutables. En la práctica uno de estos nodos será otro nodo lista o NULL, mientras que él otro será de cualquier otro tipo, formándose así una lista de nodos. Cada nodo en la lista ocupará una posición en función de los nodos listas anidados.
Tras la ejecución de una lista de nodos de este tipo, cada nodo guarda un vector con los valores de los nodos hijos y el suyo mismo. Así el primero de la lista guardará un vector con todos los valores de la lista. Esto hace posible que cada nodo hijo se libere tras la ejecución del padre ya que este ya hará referencia a los elementos que guardaban su hijos. Gracias ha esto la ejecución de un nodo lista sólo se lleva a cabo una vez.
Método constructor.
| ele1 | Nodo primer elemento . |
| ele2 | Nodo segundo elemento. |
|
virtual |
Sobre carga este método para que la lista sea ejecutada de forma recursiva.
Reimplementado de runNode.
| bool listNode::isAsigList | ( | ) |
Comprueba si algunos de los elementos de la lista es una asignación.
| vector< runNode * > listNode::listvalue | ( | ) | const |
Obtiene el valor de la lista como un vector de nodos ejecutables.
| listNode * listNode::quitAsig | ( | ) |
Devuelve el nodo lista donde los nodos asignaciones presentes son el valor asignado en los mismos.
|
virtual |
Ejecuta el nodo, para ello ejecuta sus hijos. Luego, en el caso de que alguno sea otro nodo lista guarda el contenido del vector de este en el suyo propio, luego elimina el nodo lista. En el caso contrario introduce el nodo en su propio vector.
Implementa runNode.
| int listNode::size | ( | ) |
Devuelve el número de elementos del nodo lista una vez ejecutado.