Referencia de la Clase foreachGeneratorNode

Nodo para la lista por compresión. Más...

#include <loopStmtNode.h>

Diagrama de herencias de foreachGeneratorNode
arrayNode dexpNode expNode objectTypeNode printableNode runNode

Métodos públicos

 foreachGeneratorNode (runNode *elem, runNode *val, runNode *exp, runNode *rb, runNode *key=NULL, runNode *if_cond=NULL, runNode *elem_key=NULL)
 
void run ()
 
- Métodos públicos heredados desde arrayNode
 arrayNode (listNode *list)
 
 arrayNode ()
 
 arrayNode (arrayNode *array)
 
 arrayNode (arrayNode *array, refNode *&refSearch)
 
void run ()
 
string print () const
 
symbolsgetArray ()
 
void insert (runNode *key, runNode *val, bool str=false)
 
void del (runNode *key, bool str=false, bool force_position=false)
 
runNodeget (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 runNodecopyArray (arrayNode *a)
 
runNodegetClass ()
 
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 ()
 
runNodegetMethod (runNode *key)
 
refNodegetMethodRef (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 ()
 

Otros miembros heredados

- Métodos públicos estáticos heredados desde arrayNode
static void generateClass ()
 
- Métodos públicos estáticos heredados desde expNode
static runNodeclone (runNode *node)
 
- Métodos públicos estáticos heredados desde runNode
static bool compare (runNode *node1, runNode *node2, int op=0)
 
- Métodos protegidos heredados desde arrayNode
string printLevel (short int level) const
 

Descripción detallada

Nodo para la lista por compresión.

Representa una expresión cuyo valor es obtenido a partir de una sentencia iterativa.

La forma más simple de crear una lista por compresión es mediante una expresión de generación y una variable que iterará sobre una expresión conjunto. En cada iteración la variable iteradora tomará un valor del conjunto. Para cada elemento se calculará el valor de la expresión generadora, la cual normalmente contendrá la variable iteradora, y será introducido en un array que será tomado como valor.

El conjunto sobre el que se itera dependerá del tipo de dato obtenido al evaluar la expresión conjunto:

  • Booleano: Se itera hasta que se evalúa como falso. En cada iteración se asigna el entero correspondiente al número de la misma.
  • Numérico: Si es positivo se itera desde cero hasta el valor sin incluirlo. Si es negativo no se itera.
  • Cadena de caracteres: Se itera por cada carácter en la cadena.
  • Array: Se itera por cada elemento en el array.

Es posible filtrar los datos que serán incluidos en el array, añadiendo una condición que se deba cumplir.

También se puede especificar una identificador que guarde la clave de la referencia del elemento iterado.

El array resultado puede ser generado mediante la expresión de generación y otra expresión que se corresponda con la clave del elemento creado.

Antes de generar el elemento del array que se tomará como valor es posible ejecutar un bloque de sentencias.

Documentación del constructor y destructor

foreachGeneratorNode::foreachGeneratorNode ( runNode elem,
runNode val,
runNode exp,
runNode rb,
runNode key = NULL,
runNode if_cond = NULL,
runNode elem_key = NULL 
)

Constructor de la clase.

Parámetros
elemNodo que representa el conjunto de elementos.
valNodo que hace de identificador para el valor de cada iteración.
expNodo que hace de expresión generadora.
rbNodo que representa el bloque de sentencias que será ejecutada en cada iteración.
keyNodo que hace de identificador para la clave de cada itereación.
if_condNodo que hace de condición para que se lleve a cabo la insercción de los elementos de la iteración.
elem_keyNodo que representa la expresión generadora de la clave del elemento en la iteración.

Documentación de las funciones miembro

void foreachGeneratorNode::run ( )
virtual

Método que lleva a cabo la ejecución del modo. Toma como valor el array generado de forma iterativa.

Implementa runNode.


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