Prism Ruby parser
|
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. 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_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.
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 ^^^
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 ^
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
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 ^^^^^^^^^^^^
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 ^^^