Ruby  3.4.0dev (2024-11-05 revision e440268d51fe02b303e3817a7a733a0dac1c5091)
Data Fields
pm_scope_node Struct Reference

Data Fields

pm_node_t base
 
struct pm_scope_nodeprevious
 
pm_node_tast_node
 
pm_node_tparameters
 
pm_node_tbody
 
pm_constant_id_list_t locals
 
const pm_parser_tparser
 
rb_encodingencoding
 
VALUEscript_lines
 This is a pointer to the list of script lines for the ISEQs that will be associated with this scope node. More...
 
rb_encodingfilepath_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. More...
 
int local_table_for_iseq_size
 
IDconstants
 
st_tableindex_lookup_table
 
int coverage_enabled
 
struct iseq_link_anchorpre_execution_anchor
 This will only be set on the top-level scope node. More...
 

Detailed Description

Definition at line 21 of file prism_compile.h.

Field Documentation

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

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

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