Ruby 3.4.5p51 (2025-07-16 revision 20cda200d3ce092571d0b5d342dadca69636cb0f)
|
IfNode. More...
#include <ast.h>
Data Fields | |
pm_node_t | base |
The embedded base node. | |
pm_location_t | if_keyword_loc |
IfNode#if_keyword_loc. | |
struct pm_node * | predicate |
IfNode#predicate. | |
pm_location_t | then_keyword_loc |
IfNode#then_keyword_loc. | |
struct pm_statements_node * | statements |
IfNode#statements. | |
struct pm_node * | subsequent |
IfNode#subsequent. | |
pm_location_t | end_keyword_loc |
IfNode#end_keyword_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. |
IfNode.
Represents the use of the if keyword, either in the block form or the modifier form, or a ternary expression.
bar if foo ^^^^^^^^^^ if foo then bar end ^^^^^^^^^^^^^^^^^^^ foo ? bar : baz ^^^^^^^^^^^^^^^
Type: PM_IF_NODE
pm_node_t pm_if_node::base |
pm_location_t pm_if_node::end_keyword_loc |
IfNode#end_keyword_loc.
The location of the end keyword if present, nil otherwise.
if foo bar end ^^^
Definition at line 4453 of file ast.h.
Referenced by pm_dump_json().
pm_location_t pm_if_node::if_keyword_loc |
IfNode#if_keyword_loc.
The location of the if keyword if present.
bar if foo ^^
The if_keyword_loc field will be nil when the IfNode represents a ternary expression.
Definition at line 4377 of file ast.h.
Referenced by pm_dump_json().
struct pm_node* pm_if_node::predicate |
IfNode#predicate.
The node for the condition the IfNode is testing.
if foo ^^^ bar end bar if foo ^^^ foo ? bar : baz ^^^
Definition at line 4395 of file ast.h.
Referenced by pm_dump_json(), pm_node_destroy(), and pm_visit_child_nodes().
struct pm_statements_node* pm_if_node::statements |
IfNode#statements.
Represents the body of statements that will be executed when the predicate is evaluated as truthy. Will be nil when no body is provided.
if foo bar ^^^ baz ^^^ end
Definition at line 4422 of file ast.h.
Referenced by pm_dump_json(), pm_node_destroy(), and pm_visit_child_nodes().
struct pm_node* pm_if_node::subsequent |
IfNode#subsequent.
Represents an ElseNode or an IfNode when there is an else or an elsif in the if statement.
if foo bar elsif baz ^^^^^^^^^ qux ^^^ end ^^^ if foo then bar else baz end ^^^^^^^^^^^^
Definition at line 4441 of file ast.h.
Referenced by pm_dump_json(), pm_node_destroy(), and pm_visit_child_nodes().
pm_location_t pm_if_node::then_keyword_loc |
IfNode#then_keyword_loc.
The location of the then keyword (if present) or the ? in a ternary expression, nil otherwise.
if foo then bar end ^^^^ a ? b : c ^
Definition at line 4408 of file ast.h.
Referenced by pm_dump_json().