[PRISM] Move scope_node itself to CRuby, create prism_compile.h
This commit is contained in:
parent
0abf2d86b9
commit
8f71a5c530
@ -3415,6 +3415,7 @@ compile.$(OBJEXT): {$(VPATH)}prism/ast.h
|
||||
compile.$(OBJEXT): {$(VPATH)}prism/prism.h
|
||||
compile.$(OBJEXT): {$(VPATH)}prism/version.h
|
||||
compile.$(OBJEXT): {$(VPATH)}prism_compile.c
|
||||
compile.$(OBJEXT): {$(VPATH)}prism_compile.h
|
||||
compile.$(OBJEXT): {$(VPATH)}re.h
|
||||
compile.$(OBJEXT): {$(VPATH)}regex.h
|
||||
compile.$(OBJEXT): {$(VPATH)}ruby_assert.h
|
||||
@ -8461,6 +8462,7 @@ iseq.$(OBJEXT): {$(VPATH)}oniguruma.h
|
||||
iseq.$(OBJEXT): {$(VPATH)}prism/ast.h
|
||||
iseq.$(OBJEXT): {$(VPATH)}prism/prism.h
|
||||
iseq.$(OBJEXT): {$(VPATH)}prism/version.h
|
||||
iseq.$(OBJEXT): {$(VPATH)}prism_compile.h
|
||||
iseq.$(OBJEXT): {$(VPATH)}ractor.h
|
||||
iseq.$(OBJEXT): {$(VPATH)}rjit.h
|
||||
iseq.$(OBJEXT): {$(VPATH)}ruby_assert.h
|
||||
@ -15496,6 +15498,7 @@ ruby.$(OBJEXT): {$(VPATH)}onigmo.h
|
||||
ruby.$(OBJEXT): {$(VPATH)}oniguruma.h
|
||||
ruby.$(OBJEXT): {$(VPATH)}prism/ast.h
|
||||
ruby.$(OBJEXT): {$(VPATH)}prism/version.h
|
||||
ruby.$(OBJEXT): {$(VPATH)}prism_compile.h
|
||||
ruby.$(OBJEXT): {$(VPATH)}rjit.h
|
||||
ruby.$(OBJEXT): {$(VPATH)}ruby.c
|
||||
ruby.$(OBJEXT): {$(VPATH)}ruby_assert.h
|
||||
|
@ -44,7 +44,7 @@
|
||||
#include "builtin.h"
|
||||
#include "insns.inc"
|
||||
#include "insns_info.inc"
|
||||
#include "prism/prism.h"
|
||||
#include "prism_compile.h"
|
||||
|
||||
#undef RUBY_UNTYPED_DATA_WARNING
|
||||
#define RUBY_UNTYPED_DATA_WARNING 0
|
||||
|
4
iseq.c
4
iseq.c
@ -43,7 +43,7 @@
|
||||
#include "builtin.h"
|
||||
#include "insns.inc"
|
||||
#include "insns_info.inc"
|
||||
#include "prism/prism.h"
|
||||
#include "prism_compile.h"
|
||||
|
||||
VALUE rb_cISeq;
|
||||
static VALUE iseqw_new(const rb_iseq_t *iseq);
|
||||
@ -1391,8 +1391,6 @@ iseqw_s_compile(int argc, VALUE *argv, VALUE self)
|
||||
return iseqw_new(rb_iseq_compile_with_option(src, file, path, line, opt));
|
||||
}
|
||||
|
||||
void pm_scope_node_init(const pm_node_t *node, pm_scope_node_t *scope, pm_scope_node_t *previous, pm_parser_t *parser);
|
||||
|
||||
static VALUE
|
||||
iseqw_s_compile_prism(int argc, VALUE *argv, VALUE self)
|
||||
{
|
||||
|
17
prism/node.h
17
prism/node.h
@ -29,21 +29,4 @@ PRISM_EXPORTED_FUNCTION const char * pm_node_type_to_str(pm_node_type_t node_typ
|
||||
|
||||
#define PM_EMPTY_NODE_LIST ((pm_node_list_t) { .nodes = NULL, .size = 0, .capacity = 0 })
|
||||
|
||||
// ScopeNodes are helper nodes, and will never be part of the AST. We manually
|
||||
// declare them here to avoid generating them.
|
||||
typedef struct pm_scope_node {
|
||||
pm_node_t base;
|
||||
struct pm_scope_node *previous;
|
||||
pm_node_t *ast_node;
|
||||
struct pm_parameters_node *parameters;
|
||||
pm_node_t *body;
|
||||
pm_constant_id_list_t locals;
|
||||
pm_parser_t *parser;
|
||||
|
||||
// We don't have the CRuby types ID and st_table within Prism
|
||||
// so we use void *
|
||||
void *constants; // ID *constants
|
||||
void *index_lookup_table; // st_table *index_lookup_table
|
||||
} pm_scope_node_t;
|
||||
|
||||
#endif // PRISM_NODE_H
|
||||
|
20
prism_compile.h
Normal file
20
prism_compile.h
Normal file
@ -0,0 +1,20 @@
|
||||
#include "prism/prism.h"
|
||||
|
||||
// ScopeNodes are helper nodes, and will never be part of the AST. We manually
|
||||
// declare them here to avoid generating them.
|
||||
typedef struct pm_scope_node {
|
||||
pm_node_t base;
|
||||
struct pm_scope_node *previous;
|
||||
pm_node_t *ast_node;
|
||||
struct pm_parameters_node *parameters;
|
||||
pm_node_t *body;
|
||||
pm_constant_id_list_t locals;
|
||||
pm_parser_t *parser;
|
||||
|
||||
// We don't have the CRuby types ID and st_table within Prism
|
||||
// so we use void *
|
||||
void *constants; // ID *constants
|
||||
void *index_lookup_table; // st_table *index_lookup_table
|
||||
} pm_scope_node_t;
|
||||
|
||||
void pm_scope_node_init(const pm_node_t *node, pm_scope_node_t *scope, pm_scope_node_t *previous, pm_parser_t *parser);
|
Loading…
x
Reference in New Issue
Block a user