/*
 * $Id: eval.txt,v 1.1.1.1 2001/12/21 10:49:25 ronpinkas Exp $
 */

/*
 * Las siguientes partes son derechos adquiridos de sus autores individuales.
 * www - http://www.harbour-project.org
 *
 * Copyright 2000 Alejandro de Grate <alex_degarate@hotmail.com>
 *    Documentacin en Espaol de: EVAL()
 *
 * Copyright 2000 Luiz Rafael Culik <culik@sl.conex.net>
 *    Documentacin en Ingls de: EVAL()
 *
 * Vea doc/license.txt por los trminos de la licencia.
 *
 */


/*  $DOC$
 *  $FUNCNAME$
 *      EVAL()
 *  $CATEGORY$
 *      Bloque de cdigo
 *  $ONELINER$
 *      Evala un bloque de cdigo (codeblock)
 *  $SYNTAX$
 *      EVAL( <bBloque> [, <xVal> [,...]])   --> xExpresion
 *  $ARGUMENTS$
 *      <bBloque>  Bloque de cdigo a ser evaluado.
 *
 *      <xVal>     Argumento para ser pasado al bloque de cdigo.
 *
 *      <xVal...>  Lista de argumentos para ser pasados al bloque de cdigo.
 *  $RETURNS$
 *      EVAL() retorna <xExpresion>, el valor de la ltima expresin dentro
 *      del bloque. El valor devuelto puede ser de cualquier tipo vlido.
 *  $DESCRIPTION$
 *      Esta funcin evala el bloque de cdigo expresado como <bBloque> al
 *      ejecutarlo y pasarle los parmetros como argumentos ,luego retorna su
 *      valor evaluado. Si hay mltiples expresiones dentro del bloque de
 *      cdigo, la ltima expresin ser el valor de esta funcin.
 *
 *      Si el bloque de cdigo requiere parmetros para ser pasados a ste,
 *      ellos son especificados en la lista de parmetros <xVal>.
 *      Cada parmetro es separado por una coma dentro de la lista de
 *      parmetros y cada expresin es separada por comas dentro de la lista
 *      de expresiones.
 *
 *      Nota: Un bloque de cdigo es un valor de datos especial que hace
 *            referencia a cdigo de programa compilado (contiene cdigo
 *            ejecutable), puede incluso contener funciones y el hecho que
 *            permite exportar variables estticas y locales dentro de l,
 *            la da una gran versatilidad.
 *            Aunque las macros y los bloques de cdigo son similares, las
 *            Las macros son cadenas de caracteres que se compilan durante
 *            la ejecucin de un programa y se ejecutan a continuacin.
 *            Los bloques de cdigo se compilan junto con los otros PRG
 *            durante la compilacin del programa. Por esto son ms rpidos,
 *            Es posible compilar un bloque de cdigo en tiempo de ejecucin
 *            desde una cadena de caracteres usando el operador de macros (&).
 *            Un bloque de cdigo esta compuesto por:
 *            { |<lista argumentos>| <lista expresiones> }
 *            Los separadores verticales deben estar presentes aunque no el
 *            bloque no reciba argumentos.
 *  $EXAMPLES$
 *       bBloque = {|arg1, arg2| QOUT( arg1+arg2) }
 *       EVAL( bBloque, "Harbour", " es fabuloso")
 *  $TESTS$
 *      Ver ejemplos.
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      Esta funcin es 100 % compatible con CA-Clipper.
 *  $PLATFORMS$
 *      Todas
 *  $FILES$
 *      La librera es vm
 *  $SEEALSO$
 *      AEVAL(),DBEVAL()
 *  $END$
 */
