Ruby
3.4.0dev (2024-11-05 revision e440268d51fe02b303e3817a7a733a0dac1c5091)
|
IfNode. More...
#include <ast.h>
Data Fields | |
pm_node_t | base |
The embedded base node. More... | |
pm_location_t | if_keyword_loc |
IfNode::if_keyword_loc. More... | |
struct pm_node * | predicate |
IfNode::predicate. More... | |
pm_location_t | then_keyword_loc |
IfNode::then_keyword_loc. More... | |
struct pm_statements_node * | statements |
IfNode::statements. More... | |
struct pm_node * | subsequent |
IfNode::subsequent. More... | |
pm_location_t | end_keyword_loc |
IfNode::end_keyword_loc. More... | |
Data Fields inherited from pm_node | |
pm_node_type_t | type |
This represents the type of the node. More... | |
pm_node_flags_t | flags |
This represents any flags on the node. More... | |
uint32_t | node_id |
The unique identifier for this node, which is deterministic based on the source. More... | |
pm_location_t | location |
This is the location of the node in the source. More... | |
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 4039 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 3963 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 3981 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 4008 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 4027 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 3994 of file ast.h.
Referenced by pm_dump_json().