Ruby  3.4.0dev (2024-11-22 revision 0989400a925cd201defdca9eb28eb87200b30785)
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. 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...
 

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 1069 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 1080 of file ast.h.

◆ location

pm_location_t pm_node::location

This is the location of the node in the source.

It's a range of bytes containing a start and an end.

Definition at line 1092 of file ast.h.

Referenced by pm_dump_json().

◆ 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.

Definition at line 1086 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's not a 1:1 mapping.

Definition at line 1074 of file ast.h.


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