Nodo de llamada a función. Más...
#include <funcNode.h>
Métodos públicos | |
| functioncallNode (runNode *id, runNode *params) | |
| void | run (bool excep, runNode *obj=NULL, classNode *parent=NULL, sTable *context=NULL) |
| 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 () |
Otros miembros heredados | |
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) |
Nodo de llamada a función.
Este nodo representa una llamada a función. Parte de un identificador y una lista de valores que hacen de parámetros.
Su ejecución consiste en, haciendo uso del identificador, obtener la función de la tabla de símbolos y ejecutar el cuerpo de esta pasándole la lista de valores como parámetros.
Una llamada a función es un nodo de tipo expresión no definida, que referencia el valor devuelto por la ejecución.
Constructor de la clase.
| id | Identificador de la función. |
| params | lista de valores para los parámetros. |
| void functioncallNode::run | ( | bool | excep, |
| runNode * | obj = NULL, |
||
| classNode * | parent = NULL, |
||
| sTable * | context = NULL |
||
| ) |
Ejecución del nodo. Haciendo uso del identificador obtiene la función de la tabla de símbolos y llama al método call de la misma pasándole la lista de valores como parámetros, lo que significa que se llevará a cabo la ejecución de la función. Como valor se obtiene un nodo ejecutable creado a partir de una excepción return durante la ejecución. En caso de no suceder dicha excepción se toma como valor nulo
| excep | Determina si se lanza una excepción en el caso de que no exista una función con el identificador dado. |
| obj | Objeto que se asociará a la función para que sea ejecutada como método. |
| parent | Clase que se usará como padre en la llamada a función. |
| context | Contexto del cual se obtendrán las tablas de símbolos. |
|
virtual |
Ejecución del nodo. Haciendo uso del identificador para obtener la función de la tabla de símbolos. Luego llama al método call de la misma, pasándole la lista de valores como parámetros, lo que significa que se llevará a cabo la ejecución de la función. Como valor se obtiene un nodo ejecutable creado a partir de una exepción return durante la ejecución. En caso de no suceder dicha excepción se toma como valor nulo.
Implementa runNode.