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)
12

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