|
Prism Ruby parser
|
HashPatternNode. More...
#include <ast.h>


Data Fields | |
| pm_node_t | base |
| The embedded base node. | |
| struct pm_node * | constant |
| HashPatternNode::constant. | |
| struct pm_node_list | elements |
| HashPatternNode::elements. | |
| struct pm_node * | rest |
| HashPatternNode::rest. | |
| pm_location_t | opening_loc |
| HashPatternNode::opening_loc. | |
| pm_location_t | closing_loc |
| HashPatternNode::closing_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. | |
HashPatternNode.
Represents a hash pattern in pattern matching.
foo => { a: 1, b: 2 }
^^^^^^^^^^^^^^
foo => { a: 1, b: 2, **c }
^^^^^^^^^^^^^^^^^^^
foo => Bar[a: 1, b: 2]
^^^^^^^^^^^^^^^
foo in { a: 1, b: 2 }
^^^^^^^^^^^^^^
Type: PM_HASH_PATTERN_NODE
| struct pm_node* pm_hash_pattern_node::constant |
HashPatternNode::constant.
Represents the optional constant preceding the Hash.
foo => Bar[a: 1, b: 2]
^^^
foo => Bar::Baz[a: 1, b: 2]
^^^^^^^^
| struct pm_node_list pm_hash_pattern_node::elements |
HashPatternNode::elements.
Represents the explicit named hash keys and values.
foo => { a: 1, b:, ** }
^^^^^^^^
| struct pm_node* pm_hash_pattern_node::rest |
HashPatternNode::rest.
Represents the rest of the Hash keys and values. This can be named, unnamed, or explicitly forbidden via **nil, this last one results in a NoKeywordsParameterNode.
foo => { a: 1, b:, **c }
^^^
foo => { a: 1, b:, ** }
^^
foo => { a: 1, b:, **nil }
^^^^^
| pm_location_t pm_hash_pattern_node::opening_loc |
HashPatternNode::opening_loc.
The location of the opening brace.
foo => { a: 1 }
^
foo => Bar[a: 1]
^
| pm_location_t pm_hash_pattern_node::closing_loc |
HashPatternNode::closing_loc.
The location of the closing brace.
foo => { a: 1 }
^
foo => Bar[a: 1]
^