Nodo función búsqueda estructurada. Más...

#include <regexpOpNode.h>

Diagrama de herencias de searchNode
nexpNode expNode objectTypeNode printableNode runNode

Métodos públicos

 searchNode (runNode *str, runNode *regexp)
 
 searchNode (runNode *str, runNode *regexp, runNode *keys)
 
void run ()
 
- 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_runlist () const
 
virtual bool is_string () const
 
string getPtrString ()
 

Métodos públicos estáticos

static runNode * asMethod ()
 
- 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)
 

Descripción detallada

Nodo función búsqueda estructurada.

Este nodo realiza una búsqueda estructurada, es decir, obtiene una estructura de datos condicionada por los patrones de búsqueda y el elemento sobre el que se realiza.

En el caso básico de ejección de este nodo operará buscando en una cadena de texto subcadenas que pertenezcan al conjunto definido por una expresión regular, introduciendo cada subcadena en un array.

Adicionalmente la expresión regular puede estar formada por subexpresiones delimitadas por "()". En dicho caso se buscará en la cadena principal subcadenas que pertenezcan al conjunto delimitado por la expresión regular. Por cada subcadena encontrada se creará un array con las correspondencias de cada subexpresión. Cada uno de los arrays resultantes se guardan en otro que será el que tome como valor interno el nodo.

Si se utiliza una expresión regular formada por subexpresiones los arrays correspondientes a cada subcadena tendrán índices numéricos. Es posible, sin embargo, especificar una lista ordenada de claves para crear un array asociativo.

También es posible ampliar la búsqueda sobre un array de cadenas. En este caso se aplicará el algoritmo de búsqueda recursivamente en cada elemento del array

Documentación del constructor y destructor

searchNode::searchNode ( runNode *  str,
runNode *  regexp 
)

Constructor inicializa el nodo de búsqueda estructurada a partir de una cadena o array de cadenas y una expresión regular

Parámetros
strCadena de texto o array de cadenas
regexpExpresión regular.
searchNode::searchNode ( runNode *  str,
runNode *  regexp,
runNode *  keys 
)

Constructor que inicializa el nodo de búsqueda estructurada a partir de una cadena o array de cadenas, una expresión regular y una lista de claves que serán utilizado par crear un array asociativo

Parámetros
strCadena de texto o array de cadenas
regexpExpresión regular
keysLista de claves para el array asociativo

Documentación de las funciones miembro

runNode * searchNode::asMethod ( )
static

Devuelve un nodo search como cuerpo de un nodo función, siendo un nodo this la cadena.

Devuelve
Método search.
void searchNode::run ( )
virtual

Lleva a cabo la búsqueda estructura. Tras la ejecución del nodo este toma como valor interno el array resultado.

Implementa runNode.


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