Ruby: pm_find_pattern_node Struct Reference

Ruby 3.4.8p72 (2025-12-17 revision 995b59f66677d44767ce9faac6957e5543617ff9)

Data Fields
pm_find_pattern_node Struct Reference

FindPatternNode. More...

`#include <ast.h>`

## Data Fields
pm_node_t | base
| The embedded base node.
struct pm_node * | constant
| FindPatternNode::constant.
struct pm_splat_node * | left
| FindPatternNode::left.
struct pm_node_list | requireds
| FindPatternNode::requireds.
struct pm_node * | right
| FindPatternNode::right.
pm_location_t | opening_loc
| FindPatternNode::opening_loc.
pm_location_t | closing_loc
| FindPatternNode::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.

## Detailed Description

FindPatternNode.

Represents a find pattern in pattern matching.

    foo in *bar, baz, *qux
           ^^^^^^^^^^^^^^^

    foo in [*bar, baz, *qux]
           ^^^^^^^^^^^^^^^^^

    foo in Foo(*bar, baz, *qux)
           ^^^^^^^^^^^^^^^^^^^^

    foo => *bar, baz, *qux
           ^^^^^^^^^^^^^^^

Type: PM_FIND_PATTERN_NODE

Definition at line 3808 of file ast.h.

## Field Documentation

## ◆ base

pm_node_t pm_find_pattern_node::base

The embedded base node.

Definition at line 3810 of file ast.h.

Referenced by pm_dump_json().

## ◆ closing_loc

pm_location_t pm_find_pattern_node::closing_loc

FindPatternNode::closing_loc.

The location of the closing brace.

    foo in [*bar, baz, *qux]
                           ^

    foo in Foo(*bar, baz, *qux)
                              ^

Definition at line 3886 of file ast.h.

Referenced by pm_dump_json().

## ◆ constant

struct pm_node* pm_find_pattern_node::constant

FindPatternNode::constant.

Represents the optional constant preceding the pattern

    foo in Foo(*bar, baz, *qux)
           ^^^

Definition at line 3821 of file ast.h.

Referenced by pm_dump_json(), pm_node_destroy(), and pm_visit_child_nodes().

## ◆ left

struct pm_splat_node* pm_find_pattern_node::left

FindPatternNode::left.

Represents the first wildcard node in the pattern.

    foo in *bar, baz, *qux
           ^^^^

    foo in Foo(*bar, baz, *qux)
               ^^^^

Definition at line 3834 of file ast.h.

Referenced by pm_dump_json(), pm_node_destroy(), and pm_visit_child_nodes().

## ◆ opening_loc

pm_location_t pm_find_pattern_node::opening_loc

FindPatternNode::opening_loc.

The location of the opening brace.

    foo in [*bar, baz, *qux]
           ^

    foo in Foo(*bar, baz, *qux)
              ^

Definition at line 3873 of file ast.h.

Referenced by pm_dump_json().

## ◆ requireds

struct pm_node_list pm_find_pattern_node::requireds

FindPatternNode::requireds.

Represents the nodes in between the wildcards.

    foo in *bar, baz, *qux
                 ^^^

    foo in Foo(*bar, baz, 1, *qux)
                     ^^^^^^

Definition at line 3847 of file ast.h.

Referenced by pm_dump_json(), pm_node_destroy(), and pm_visit_child_nodes().

## ◆ right

struct pm_node* pm_find_pattern_node::right

FindPatternNode::right.

Represents the second wildcard node in the pattern.

    foo in *bar, baz, *qux
                      ^^^^

    foo in Foo(*bar, baz, *qux)
                          ^^^^

Definition at line 3860 of file ast.h.

Referenced by pm_dump_json(), pm_node_destroy(), and pm_visit_child_nodes().

The documentation for this struct was generated from the following file:

- prism/ast.h