Nodo array. Más...
#include <typeNode.h>
Métodos públicos | |
| arrayNode (listNode *list) | |
| arrayNode () | |
| arrayNode (arrayNode *array) | |
| arrayNode (arrayNode *array, refNode *&refSearch) | |
| void | run () |
| string | print () const |
| symbols * | getArray () |
| void | insert (runNode *key, runNode *val, bool str=false) |
| void | del (runNode *key, bool str=false, bool force_position=false) |
| runNode * | get (runNode *key, bool str=false) |
| int | size () const |
| bool | compare (runNode *node, int op=0) |
| int | getCount () const |
| void | cAll (runNode *node_search, runNode *node_new) |
| bool | isref (runNode *node) |
| void | clear () |
| void | clearRef () |
| void | setArray (symbols array) |
| void | push (runNode *node) |
| virtual runNode * | copyArray (arrayNode *a) |
| runNode * | getClass () |
| bool | boolvalue () const |
| num | numvalue () const |
| string | strvalue () const |
| ~arrayNode () | |
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 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 void | generateClass () |
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) |
Métodos protegidos | |
| string | printLevel (short int level) const |
Nodo array.
Representa un vector de elementos. Los array son nodos que presenta una tabla de símbolos interna en la que almacena referencias a cada uno de los elementos en el array.
En la inicialización del árbol de ejecución el nodo array se asocia con una lista de nodos de listas (listNode).
En la ejecución del nodo array los valores de la lista son guardados en la tabla de símbolos del array. En el caso de que los valores sean nodos asociativos (
Todo nodo array tiene asociado un nodo clase "arrayClass".
| arrayNode::arrayNode | ( | listNode * | list | ) |
Constructor de clase.
| list | Nodo lista. |
| arrayNode::arrayNode | ( | ) |
Constructor de array vacío.
| arrayNode::arrayNode | ( | arrayNode * | array | ) |
Constructor copia.
| array | Nodo array para la copia. |
Constructor copia. Durante la creación del objeto busca una referencia en el nodo copiado que toma el valor de la nueva referencia en el nodo.
| array | Nodo array para la copia. |
| refSearch | Valor que será buscado. |
| arrayNode::~arrayNode | ( | ) |
Método destructor del array. El cual consiste en la eliminación de los elementos en la tabla de símbolos.
|
virtual |
Obtiene el valor booleano del array. El cual indica si este es vacío.
Reimplementado de dexpNode.
Busca en los elementos del array toda referencia al nodo node_search y la cambia por una referencia a node_new.
Si algún elemento es otro array se busca de igual forma en el mismo.
| node_search | Nodo a buscar. |
| node_new | Nodo nuevo. |
| void arrayNode::clear | ( | ) |
Elimina todos los elementos del array.
| void arrayNode::clearRef | ( | ) |
Elimina únicamente las referencias en el array.
| bool arrayNode::compare | ( | runNode * | node, |
| int | op = 0 |
||
| ) |
Compara elemento a elemento el nodo array con el nodo pasado como parámetro.
| node | Nodo a comparar. |
| op. | Operador a aplicar case 0: == case 1: != case 2: > case 3: < case 4: >= case 5: <= case 6: === |
Copia el contenido de un array en otro nuevo.
| a | Array a copiar. |
| void arrayNode::del | ( | runNode * | key, |
| bool | str = false, |
||
| bool | force_position = false |
||
| ) |
Elimina un elemento del array.
| key | Nodo clave. |
| str | Determina si las clave será forzada a tomarse como cadena. |
| force_position | Fuerza a que la clave sea tomada como posición numérica. |
|
static |
Genera la clase "arrayClass" asociada a todo array.
Obtiene un elemento a partir de una clave.
| key | Nodo clave. |
| str | Determina si las clave será forzada a tomarse como cadena. |
| symbols * arrayNode::getArray | ( | ) |
Obtiene la tabla de símbolos interna del nodo.
| Tabla | de símbolos interna. |
|
virtual |
Obtiene el nodo clase asociado a la clase.
Reimplementado de objectTypeNode.
Reimplementado en objectNode.
| int arrayNode::getCount | ( | ) | const |
Obtiene el índice numérico actual.
Inserta un elemento en el array.
| key | Nodo clave del elemento. |
| val | Nodo valor del elemento. |
| str | Determina si las clave será forzada a tomarse como cadena. |
| bool arrayNode::isref | ( | runNode * | node | ) |
Dado un nodo ejecutable devuelve un booleano que indica si en el array se encuentra alguna referencia a dicho nodo.
Si algún elemento es otro array se busca de igual forma en el mismo.
| node | Nodo a buscar. |
|
virtual |
Obtiene el valor numérico del array el cual es 0.
Reimplementado de dexpNode.
|
virtual |
Determina cómo se imprime un nodo array.
Implementa printableNode.
Reimplementado en objectNode.
|
protected |
Imprime un objeto JSON correspondiente a la tabla de símbolos del array.
| void arrayNode::push | ( | runNode * | node | ) |
Añade un nodo al final del array con el siguiente índice numérico.
| node | Nodo que será añadido. |
|
virtual |
La ejecución de un array consiste en recorrer la lista de elementos asociadas al mismo y guardarlos en la tabla de símbolos.
Implementa runNode.
Reimplementado en arrayConstNode.
| void arrayNode::setArray | ( | symbols | array | ) |
Establece una tabla de símbolos como la tabla del array.
| array | Tabla de símbolos . |
| int arrayNode::size | ( | ) | const |
Obtiene el número de elementos del array.
|
virtual |
Obtiene el valor cadena de caracteres del array.
Reimplementado de dexpNode.