Ruby: pm_scope_node Struct Reference

Ruby 3.4.6p54 (2025-09-16 revision dbd83256b1cec76c69756ecb8758b9e1079833de)

Data Fields
pm_scope_node Struct Reference

## Data Fields
pm_node_t | base
struct pm_scope_node * | previous
pm_node_t * | ast_node
pm_node_t * | parameters
pm_node_t * | body
pm_constant_id_list_t | locals
const pm_parser_t * | parser
rb_encoding * | encoding
VALUE * | script_lines
| This is a pointer to the list of script lines for the ISEQs that will be associated with this scope node.
rb_encoding * | filepath_encoding
| This is the encoding of the actual filepath object that will be used when a FILE node is compiled or when the path has to be set on a syntax error.
int | local_table_for_iseq_size
ID * | constants
st_table * | index_lookup_table
int | coverage_enabled
struct iseq_link_anchor * | pre_execution_anchor
| This will only be set on the top-level scope node.

## Detailed Description

Definition at line 21 of file prism_compile.h.

## Field Documentation

## ◆ ast_node

pm_node_t* pm_scope_node::ast_node

Definition at line 24 of file prism_compile.h.

## ◆ base

pm_node_t pm_scope_node::base

Definition at line 22 of file prism_compile.h.

## ◆ body

pm_node_t* pm_scope_node::body

Definition at line 26 of file prism_compile.h.

## ◆ constants

ID* pm_scope_node::constants

Definition at line 53 of file prism_compile.h.

## ◆ coverage_enabled

int pm_scope_node::coverage_enabled

Definition at line 57 of file prism_compile.h.

## ◆ encoding

rb_encoding* pm_scope_node::encoding

Definition at line 30 of file prism_compile.h.

## ◆ filepath_encoding

rb_encoding* pm_scope_node::filepath_encoding

This is the encoding of the actual filepath object that will be used when a FILE node is compiled or when the path has to be set on a syntax error.

Definition at line 47 of file prism_compile.h.

## ◆ index_lookup_table

st_table* pm_scope_node::index_lookup_table

Definition at line 54 of file prism_compile.h.

## ◆ local_table_for_iseq_size

int pm_scope_node::local_table_for_iseq_size

Definition at line 51 of file prism_compile.h.

## ◆ locals

pm_constant_id_list_t pm_scope_node::locals

Definition at line 27 of file prism_compile.h.

## ◆ parameters

pm_node_t* pm_scope_node::parameters

Definition at line 25 of file prism_compile.h.

## ◆ parser

const pm_parser_t* pm_scope_node::parser

Definition at line 29 of file prism_compile.h.

## ◆ pre_execution_anchor

struct iseq_link_anchor* pm_scope_node::pre_execution_anchor

This will only be set on the top-level scope node.

It will contain all of the instructions pertaining to BEGIN{} nodes.

Definition at line 63 of file prism_compile.h.

## ◆ previous

struct pm_scope_node* pm_scope_node::previous

Definition at line 23 of file prism_compile.h.

## ◆ script_lines

VALUE* pm_scope_node::script_lines

This is a pointer to the list of script lines for the ISEQs that will be associated with this scope node.

It is only set if RubyVM.keep_script_lines is true. If it is set, it will be set to a pointer to an array that is always stack allocated (so no GC marking is needed by this struct). If it is not set, it will be NULL. It is inherited by all child scopes.

Definition at line 40 of file prism_compile.h.

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

- prism_compile.h