|
Prism Ruby parser
|
LocalVariableWriteNode. More...
#include <ast.h>


Data Fields | |
| pm_node_t | base |
| The embedded base node. | |
| pm_constant_id_t | name |
| LocalVariableWriteNode::name. | |
| uint32_t | depth |
| LocalVariableWriteNode::depth. | |
| pm_location_t | name_loc |
| LocalVariableWriteNode::name_loc. | |
| struct pm_node * | value |
| LocalVariableWriteNode::value. | |
| pm_location_t | operator_loc |
| LocalVariableWriteNode::operator_loc. | |
Data Fields inherited from pm_node | |
| pm_node_type_t | type |
| This represents the type of the node. | |
| pm_node_flags_t | flags |
| This represents any flags on the node. | |
| uint32_t | node_id |
| The unique identifier for this node, which is deterministic based on the source. | |
| pm_location_t | location |
| This is the location of the node in the source. | |
LocalVariableWriteNode.
Represents writing to a local variable.
foo = 1 ^^^^^^^
| pm_constant_id_t pm_local_variable_write_node::name |
LocalVariableWriteNode::name.
The name of the local variable, which is an identifier.
foo = :bar # name `:foo` abc = 123 # name `:abc`
| uint32_t pm_local_variable_write_node::depth |
LocalVariableWriteNode::depth.
The number of semantic scopes we have to traverse to find the declaration of this variable.
foo = 1 # depth 0
tap { foo = 1 } # depth 1
The specific rules for calculating the depth may differ from individual Ruby implementations, as they are not specified by the language. For more information, see the Prism documentation.
| pm_location_t pm_local_variable_write_node::name_loc |
LocalVariableWriteNode::name_loc.
The location of the variable name.
foo = :bar ^^^
| struct pm_node* pm_local_variable_write_node::value |
LocalVariableWriteNode::value.
The value to write to the local variable. It can be any non-void expression.
foo = :bar
^^^^
abc = 1234
^^^^
Note that since the name of a local variable is known before the value is parsed, it is valid for a local variable to appear within the value of its own write.
foo = foo
| pm_location_t pm_local_variable_write_node::operator_loc |
LocalVariableWriteNode::operator_loc.
The location of the = operator.
x = :y ^