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
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
Stringinput_names
PackedStringArray