/*
 * $Id: eval.txt 9312 2008-09-05 00:08:34Z vszakats $
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 2000 Luiz Rafael Culik <culik@sl.conex.net>
 *    Documentation for: EVAL()
 *
 * See doc/license.txt for licensing terms.
 *
 */

/*  $DOC$
 *  $FUNCNAME$
 *      EVAL()
 *  $CATEGORY$
 *      Code Block
 *  $ONELINER$
 *      Evaluate a code block
 *  $SYNTAX$
 *      EVAL( <bBlock> [, <xVal> [,...]])   --> xExpression
 *  $ARGUMENTS$
 *      <bBlock>   Code block expression to be evaluated
 *
 *      <xVal>     Argument to be passed to the code block expression
 *
 *      <xVal...>  Argument list to be passed to the code block expression
 *  $RETURNS$
 *      <xExpression>  The result of the evaluated code block
 *  $DESCRIPTION$
 *      This function evaluates the code bloc expressed as <bBlock> and
 *      returns its evaluated value. If their are multiple expressions within
 *      the code block, the last expression will be value of this function.
 *
 *      If the code block requires parameters to be passed to it,they are
 *      specified in the parameter list <xVal> and following. Each parameter
 *      is separated by a comma within the expression list.
 *  $EXAMPLES$
 *      FUNC MAIN
 *      LOCAL    sbBlock   := {|| NIL }
 *      ?  Eval( 1 )
 *      ?  Eval( @sbBlock )
 *
 *      ? Eval( {|p1| p1 },"A","B")
 *      ? Eval( {|p1,p2| p1+p2 },"A","B")
 *      ? Eval( {|p1,p2,p3| p1 },"A","B")
 *      Return Nil
 *  $TESTS$
 *      See examples
 *  $STATUS$
 *      R
 *  $COMPLIANCE$
 *      This function is CA-Cl*pper compliant
 *  $PLATFORMS$
 *      All
 *  $FILES$
 *      Library is vm
 *  $SEEALSO$
 *      AEVAL(),DBEVAL()
 *  $END$
 */
