.BG
.FN eval
.TL
Evaluate an Expression
.CS
eval(expression, local, parent)
.AG expression
any S expression
.AG local
the frame in which to do the evaluation;
by default, the frame of the caller of `eval'.
If `local' is `FALSE', evaluation is done in the global frame.
Otherwise, `local' can be either a numeric value, interpreted as one of the
frames of the evaluator, or it can be an explicit list, with the named elements
of the list defining the bindings for the names occurring in the expression.
A typical numeric choice of `local' would be `sys.parent(1)', meaning the routine
that called the routine calling `eval'.
.AG parent
the frame to use as the parent of the evaluation frame.
Only needs to be supplied when unevaluated arguments are to be handled
by a special arrangement (as required by `browser').
.RT
the value of `expression'.
.EX
# a function that can simulate the S program
# from inside a function: see section 7.4.3
try.S \(<- function()
	print(eval(parse(),F))
.KW programming
.WR
