/* * $Id$ */ /* * Las siguientes partes son derechos adquiridos de sus autores individuales. * www - http://www.harbour-project.org * * Copyright 2000 Alejandro de G rate * Documentaci¢n en Espa¤ol de: EVAL() * * Copyright 2000 Luiz Rafael Culik * Documentaci¢n en Ingl‚s de: EVAL() * * Vea doc/license.txt por los t‚rminos de la licencia. * */ /* $DOC$ * $FUNCNAME$ * EVAL() * $CATEGORY$ * Bloque de c¢digo * $ONELINER$ * Eval£a un bloque de c¢digo (codeblock) * $SYNTAX$ * EVAL( [, [,...]]) --> xExpresion * $ARGUMENTS$ * Bloque de c¢digo a ser evaluado. * * Argumento para ser pasado al bloque de c¢digo. * * Lista de argumentos para ser pasados al bloque de c¢digo. * $RETURNS$ * EVAL() retorna , el valor de la £ltima expresi¢n dentro * del bloque. El valor devuelto puede ser de cualquier tipo v lido. * $DESCRIPTION$ * Esta funci¢n eval£a el bloque de c¢digo expresado como al * ejecutarlo y pasarle los par metros como argumentos ,luego retorna su * valor evaluado. Si hay m£ltiples expresiones dentro del bloque de * c¢digo, la £ltima expresi¢n ser  el valor de esta funci¢n. * * Si el bloque de c¢digo requiere par metros para ser pasados a ‚ste, * ellos son especificados en la lista de par metros . * Cada par metro es separado por una coma dentro de la lista de * par metros y cada expresi¢n es separada por comas dentro de la lista * de expresiones. * * Nota: Un bloque de c¢digo es un valor de datos especial que hace * referencia a c¢digo de programa compilado (contiene c¢digo * ejecutable), puede incluso contener funciones y el hecho que * permite exportar variables est ticas y locales dentro de ‚l, * la da una gran versatilidad. * Aunque las macros y los bloques de c¢digo son similares, las * Las macros son cadenas de caracteres que se compilan durante * la ejecuci¢n de un programa y se ejecutan a continuaci¢n. * Los bloques de c¢digo se compilan junto con los otros PRG * durante la compilaci¢n del programa. Por esto son m s r pidos, * Es posible compilar un bloque de c¢digo en tiempo de ejecuci¢n * desde una cadena de caracteres usando el operador de macros (&). * Un bloque de c¢digo esta compuesto por: * { || } * Los separadores verticales deben estar presentes aunque el * bloque no reciba argumentos. * $EXAMPLES$ * bBloque = {|arg1, arg2| QOUT( arg1+arg2) } * EVAL( bBloque, "Harbour", " es fabuloso") * $TESTS$ * Ver ejemplos. * $STATUS$ * R * $COMPLIANCE$ * Esta funci¢n es 100 % compatible con CA-Clipper. * $PLATFORMS$ * Todas * $FILES$ * La librer¡a es vm * $SEEALSO$ * AEVAL(),DBEVAL() * $END$ */