Nodo array. Más...

#include <typeNode.h>

Diagrama de herencias de arrayNode
dexpNode expNode objectTypeNode printableNode runNode arrayConstNode foreachGeneratorNode objectNode

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
 

Descripción detallada

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 (

Ver también
mapNode) se establece la clave como referencia. En caso contrario se utiliza como referencia un entero correspondiente a la posición del elemento en la lista.

Todo nodo array tiene asociado un nodo clase "arrayClass".

Documentación del constructor y destructor

arrayNode::arrayNode ( listNode *  list)

Constructor de clase.

Parámetros
listNodo lista.
arrayNode::arrayNode ( )

Constructor de array vacío.

arrayNode::arrayNode ( arrayNode *  array)

Constructor copia.

Parámetros
arrayNodo array para la copia.
arrayNode::arrayNode ( arrayNode *  array,
refNode *&  refSearch 
)

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.

Parámetros
arrayNodo array para la copia.
refSearchValor 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.

Documentación de las funciones miembro

bool arrayNode::boolvalue ( ) const
virtual

Obtiene el valor booleano del array. El cual indica si este es vacío.

Devuelve
Valor booleano del array.

Reimplementado de dexpNode.

void arrayNode::cAll ( runNode *  node_search,
runNode *  node_new 
)

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.

Parámetros
node_searchNodo a buscar.
node_newNodo 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.

Parámetros
nodeNodo a comparar.
op.Operador a aplicar case 0: == case 1: != case 2: > case 3: < case 4: >= case 5: <= case 6: ===
Devuelve
Booleano resultado de la operación.
runNode * arrayNode::copyArray ( arrayNode *  a)
virtual

Copia el contenido de un array en otro nuevo.

Parámetros
aArray a copiar.
Devuelve
Array resultado de la copia.
void arrayNode::del ( runNode *  key,
bool  str = false,
bool  force_position = false 
)

Elimina un elemento del array.

Parámetros
keyNodo clave.
strDetermina si las clave será forzada a tomarse como cadena.
force_positionFuerza a que la clave sea tomada como posición numérica.
void arrayNode::generateClass ( )
static

Genera la clase "arrayClass" asociada a todo array.

runNode * arrayNode::get ( runNode *  key,
bool  str = false 
)

Obtiene un elemento a partir de una clave.

Parámetros
keyNodo clave.
strDetermina si las clave será forzada a tomarse como cadena.
Devuelve
Nodo correspondiente a la clave. NULL si no existe.
symbols * arrayNode::getArray ( )

Obtiene la tabla de símbolos interna del nodo.

Parámetros
Tablade símbolos interna.
runNode * arrayNode::getClass ( )
virtual

Obtiene el nodo clase asociado a la clase.

Devuelve
Nodo clase.

Reimplementado de objectTypeNode.

Reimplementado en objectNode.

int arrayNode::getCount ( ) const

Obtiene el índice numérico actual.

Devuelve
Numérico que indica el índice mayor.
void arrayNode::insert ( runNode *  key,
runNode *  val,
bool  str = false 
)

Inserta un elemento en el array.

Parámetros
keyNodo clave del elemento.
valNodo valor del elemento.
strDetermina 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.

Parámetros
nodeNodo a buscar.
Devuelve
Booleano que indica si el array mantiene alguna referencia.
num arrayNode::numvalue ( ) const
virtual

Obtiene el valor numérico del array el cual es 0.

Devuelve
Valor numérico del array.

Reimplementado de dexpNode.

string arrayNode::print ( ) const
virtual

Determina cómo se imprime un nodo array.

Devuelve
Valor cadena del array.

Implementa printableNode.

Reimplementado en objectNode.

string arrayNode::printLevel ( short int  level) const
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.

Parámetros
nodeNodo que será añadido.
void arrayNode::run ( )
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.

Parámetros
arrayTabla de símbolos .
int arrayNode::size ( ) const

Obtiene el número de elementos del array.

Devuelve
Tamaño del array.
string arrayNode::strvalue ( ) const
virtual

Obtiene el valor cadena de caracteres del array.

Devuelve
Valor cadena del array.

Reimplementado de dexpNode.


La documentación para esta clase fue generada a partir de los siguientes ficheros: