Hormiga 1.0

Function Class Reference

#include <function.h>

Inheritance diagram for Function:

List of all members.

Public Member Functions

virtual T_MAGNITUDE eval (T_FUNCTION_ARGUMENTS *argv)=0
virtual T_STRING getName ()=0
virtual int paramsCount ()=0
virtual ~Function ()

Detailed Description

NOTAS:

  • Pasaje de parametros: para el pasaje de parametros se debe implementar una clase 'VirtualVar' heredada de 'Operand'. Esta clase tendra un puntero a la lista de parametros [reales] de la funcion a la que pertenece (parent). En la definicion de la funcion se crean variables de este tipo y se agregan al alcance local de la funcion (local SymbolTable). Al acceder desde el cuerpo de la funcion a una de estas variables ('VirtualVar'), estas actuaran como proxy y reenviaran las peticiones al 'Operand' pasado por parametro. Este mecanismo permite ademas implementar pasaje de parametros 'por copia' y 'por referencia'. En un principio se implementara pasaje 'por copia'; para esto se agregara en el 'VirtualVar' un puntero a 'Seteable' interno que sera inicializado (se creara el objeto) bajo demanda (en la primer asignacion) y las posteriores consultas ( getValue() ) se retornaran directamente. Este objeto debe ser eliminado al terminar la ejecucion de la funcion (o al comenzar una nueva ejecucion) Sera necesario de algua manera asociar el nombre de la variable a la posicion en la que fue declarada. Esto sera necesario para acceder al vector de parametros reales. Function

Definition at line 76 of file function.h.


Constructor & Destructor Documentation

virtual Function::~Function ( ) [inline, virtual]

Definition at line 82 of file function.h.


Member Function Documentation

virtual T_MAGNITUDE Function::eval ( T_FUNCTION_ARGUMENTS *  argv) [pure virtual]

Implemented in FunctionFloor, FunctionCeil, FunctionPow, FunctionSqrt, FunctionAbs, FunctionLn, FunctionLog, FunctionSin, FunctionCos, FunctionTan, and UserFunction.

Here is the caller graph for this function:

virtual T_STRING Function::getName ( ) [pure virtual]

Implemented in FunctionFloor, FunctionCeil, FunctionPow, FunctionSqrt, FunctionAbs, FunctionLn, FunctionLog, FunctionSin, FunctionCos, FunctionTan, and UserFunction.

Here is the caller graph for this function:

virtual int Function::paramsCount ( ) [pure virtual]

The documentation for this class was generated from the following file: