Table of Contents

Class Expression

A class that stores an expression you can execute.

Inheritance
Expression

Remarks

An expression can be made of any arithmetic operation, built-in math function call, method call of a passed instance, or built-in type construction call.

An example expression text using the built-in math functions could be sqrt(pow(3, 2) + pow(4, 2)).

In the following example we use a LineEdit node to write our expression and show the result.

var expression = Expression.new()

func _ready():
    $LineEdit.text_submitted.connect(self._on_text_submitted)

func _on_text_submitted(command):
    var error = expression.parse(command)
    if error != OK:
        print(expression.get_error_text())
        return
    var result = expression.execute()
    if not expression.has_execute_failed():
        $LineEdit.text = str(result)

See Also

Methods

execute(Array, Object, bool, bool)

Executes the expression that was previously parsed by Expression.parse and returns the result. Before you use the returned object, you should check if the method failed by calling has_execute_failed.

If you defined input variables in Expression.parse, you can specify their values in the inputs array, in the same order.

Variant execute(Array inputs, Object base_instance, bool show_error, bool const_calls_only)

Parameters

inputs Array
base_instance Object
show_error bool
const_calls_only bool

get_error_text

Qualifiers: const

Returns the error text if Expression.parse or Expression.execute has failed.

String get_error_text

has_execute_failed

Qualifiers: const

Returns true if Expression.execute has failed.

bool has_execute_failed

parse(String, PackedStringArray)

Parses the expression and returns an Error code.

You can optionally specify names of variables that may appear in the expression with input_names, so that you can bind them when it gets executed.

int parse(String expression, PackedStringArray input_names)

Parameters

expression String
input_names PackedStringArray