Ruby 4.1.0dev (2026-10-30 revision 7704181e64db25a20de9d5e89ff9661af4fd1820)
Data Fields
pm_node Struct Reference

This is the base structure that represents a node in the syntax tree. More...

#include <ast.h>

Data Fields

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

This is the base structure that represents a node in the syntax tree.

It is embedded into every node type.

Definition at line 1090 of file ast.h.

Field Documentation

◆ flags

pm_node_flags_t pm_node::flags

This represents any flags on the node.

Some are common to all nodes, and some are specific to the type of node.

Definition at line 1101 of file ast.h.

◆ location

pm_location_t pm_node::location

This is the location of the node in the source.

It is a range of bytes containing a start and an end.

Definition at line 1115 of file ast.h.

◆ node_id

uint32_t pm_node::node_id

The unique identifier for this node, which is deterministic based on the source.

It is used to identify unique nodes across parses. Nodes created outside of parsing have no position in the source and can use 0, which no parsed node uses.

Definition at line 1109 of file ast.h.

◆ type

pm_node_type_t pm_node::type

This represents the type of the node.

It somewhat maps to the nodes that existed in the original grammar and ripper, but it is not a 1:1 mapping.

Definition at line 1095 of file ast.h.


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