Prism Ruby parser
|
LocalVariableReadNode. More...
#include <ast.h>
Data Fields | |
pm_node_t | base |
The embedded base node. | |
pm_constant_id_t | name |
LocalVariableReadNode::name. | |
uint32_t | depth |
LocalVariableReadNode::depth. | |
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. | |
LocalVariableReadNode.
Represents reading a local variable. Note that this requires that a local variable of the same name has already been written to in the same scope, otherwise it is parsed as a method call.
foo ^^^
pm_constant_id_t pm_local_variable_read_node::name |
LocalVariableReadNode::name.
The name of the local variable, which is an identifier.
x # name `:x` _Test # name `:_Test`
Note that this can also be an underscore followed by a number for the default block parameters.
_1 # name `:_1`
uint32_t pm_local_variable_read_node::depth |
LocalVariableReadNode::depth.
The number of visible scopes that should be searched to find the origin of this local variable.
foo = 1; foo # depth 0 bar = 2; tap { bar } # 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.