Nodo casos switch. Más...
#include <condStmtNode.h>
Métodos públicos | |
| caseNode (runNode *exp, runNode *cb, runNode *cases) | |
| void | run (runNode *eval) |
| void | run () |
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 runNode | |
| static bool | compare (runNode *node1, runNode *node2, int op=0) |
Nodo casos switch.
Este nodo representa una lista de casos switch. Un caso switch se define mediante una expresión para la comparación, un bloque de sentencias y un enlace al siguiente caso.
Para que el caso sea evaluado se ha de facilitar una expresión a evaluar. Se comprobará si la esta es igual a la expresión de comparación. Si lo es se ejecuta el bloque de sentencias de el caso y todos los casos siguientes. Si la evaluación dio un resultado negativo se comprueba el siguiente caso.
Constructor de la clase.
| exp | Nodo que representa la expresión de comparación. |
| cb | Nodo que representa el bloque de sentencias del caso. |
| cases | Nodo que representa el siguiente caso. |
| void caseNode::run | ( | runNode * | eval | ) |
Método de ejecución del nodo. Evalúa un nodo dado como parámetro comparándolo con la expresión de comparación. Si el resultado es positivo se ejecuta el bloque de sentencias y los bloques de los casos siguientes. Si el resultado es falso se ejecuta la evaluación del caso siguiente.
| eval | Nodo que representa la expresión que será comparada con la expresión del caso. |
|
virtual |
Método de ejecución. Ejecuta el caso sin llevar a cabo la evaluación, lo que conlleva la ejecución del bloque de sentencias y el caso siguiente.
Implementa runNode.