Eval
Value = Eval ( Expression AS String [ , Context AS Collection ] ) AS Variant
Evaluates an expression and returns its value. This expression can use almost all the operators and subroutines of Gambas.
The optional context is a collection that must contain the value of each undefined symbol of
Expression.
Examples
DIM Context AS New Collection
Context["X"] = 2
Context["Y"] = "Gambas"
PRINT Eval("X * Len(Y)", Context)
Assignments
By starting the expression with the
LET keyword, you can evaluate an assignment. In that case, the assigned value is returned.
The assignment expression can use any assignment operators, but cannot use the instructions that return something, like
OPEN,
NEW...
This assigned expression can use almost all operators and subroutines of Gambas.
Examples
Dim Context AS New Collection
Context["X"] = "Liberation Serif"
Print Application.Font.ToString()
Print Eval("Let Application.Font = Font[X]", Context)
Print Application.Font.ToString()
Sans,10
(Font 0x8fae9e8)
Liberation Serif,10
Multiple expressions
Since 3.19
The
Expression argument can contain several different expressions, provided that they are separated by a newline.
The value of the last expression is returned then.
It is faster to evaluate all expressions at once than to call
Eval
for each expression independently.
See also