|
Ruby 3.4.1p0 (2024-12-25 revision 48d4efcb85000e1ebae42004e963b5d0cedddcf2)
|
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().