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 ^