:github_url: hide .. DO NOT EDIT THIS FILE!!! .. Generated automatically from Godot engine sources. .. Generator: https://github.com/godotengine/godot/tree/3.6/doc/tools/make_rst.py. .. XML source: https://github.com/godotengine/godot/tree/3.6/doc/classes/Expression.xml. .. _class_Expression: Expression ========== **Inherits:** :ref:`Reference` **<** :ref:`Object` A class that stores an expression you can execute. .. rst-class:: classref-introduction-group Description ----------- 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 :ref:`LineEdit` node to write our expression and show the result. :: onready var expression = Expression.new() func _ready(): $LineEdit.connect("text_entered", self, "_on_text_entered") func _on_text_entered(command): var error = expression.parse(command, []) if error != OK: print(expression.get_error_text()) return var result = expression.execute([], null, true) if not expression.has_execute_failed(): $LineEdit.text = str(result) .. rst-class:: classref-reftable-group Methods ------- .. table:: :widths: auto +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Variant` | :ref:`execute` **(** :ref:`Array` inputs=[ ], :ref:`Object` base_instance=null, :ref:`bool` show_error=true **)** | +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`String` | :ref:`get_error_text` **(** **)** |const| | +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`has_execute_failed` **(** **)** |const| | +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Error` | :ref:`parse` **(** :ref:`String` expression, :ref:`PoolStringArray` input_names=PoolStringArray( ) **)** | +---------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Method Descriptions ------------------- .. _class_Expression_method_execute: .. rst-class:: classref-method :ref:`Variant` **execute** **(** :ref:`Array` inputs=[ ], :ref:`Object` base_instance=null, :ref:`bool` show_error=true **)** Executes the expression that was previously parsed by :ref:`parse` and returns the result. Before you use the returned object, you should check if the method failed by calling :ref:`has_execute_failed`. If you defined input variables in :ref:`parse`, you can specify their values in the inputs array, in the same order. .. rst-class:: classref-item-separator ---- .. _class_Expression_method_get_error_text: .. rst-class:: classref-method :ref:`String` **get_error_text** **(** **)** |const| Returns the error text if :ref:`parse` has failed. .. rst-class:: classref-item-separator ---- .. _class_Expression_method_has_execute_failed: .. rst-class:: classref-method :ref:`bool` **has_execute_failed** **(** **)** |const| Returns ``true`` if :ref:`execute` has failed. .. rst-class:: classref-item-separator ---- .. _class_Expression_method_parse: .. rst-class:: classref-method :ref:`Error` **parse** **(** :ref:`String` expression, :ref:`PoolStringArray` input_names=PoolStringArray( ) **)** Parses the expression and returns an :ref:`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. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)` .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)` .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)` .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`