diff options
author | aamine <aamine@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-12-29 20:41:04 +0000 |
---|---|---|
committer | aamine <aamine@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-12-29 20:41:04 +0000 |
commit | 77a0c515453c64a03fcc60f63637970d09adb9d0 (patch) | |
tree | 49641d5129ff221438661ad4fd36a5f0ce722c2a | |
parent | 4d81be859b3f6211e89ef4f08ffb4fe35dd540f5 (diff) | |
download | ruby-77a0c515453c64a03fcc60f63637970d09adb9d0.tar.gz |
* parse.y: eliminate unused members in struct parser_params. [ruby-dev:25258] (again)
* parse.y: make parser_new() static.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@7687 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | parse.y | 88 |
2 files changed, 59 insertions, 36 deletions
@@ -1,3 +1,10 @@ +Thu Dec 30 05:39:35 2004 Minero Aoki <aamine@loveruby.net> + + * parse.y: eliminate unused members in struct parser_params. + [ruby-dev:25258] (again) + + * parse.y: make parser_new() static. + Wed Dec 29 11:07:07 2004 Dave Thomas <dave@pragprog.com> * lib/rdoc/generators/template/html/kilmer.rb: Update to use new @@ -115,17 +115,9 @@ struct local_vars { token */ struct parser_params { - VALUE value; - VALUE result; - VALUE parsing_thread; - int toplevel_p; union tmpyystype *parser_yylval; /* YYSTYPE not defined yet */ VALUE eofp; -#ifndef RIPPER - NODE *parser_eval_tree_begin; - NODE *parser_eval_tree; -#endif NODE *parser_lex_strterm; enum lex_state_e parser_lex_state; stack_type parser_cond_stack; @@ -149,7 +141,12 @@ struct parser_params { int parser_lex_gets_ptr; VALUE (*parser_lex_gets) _((struct parser_params*,VALUE)); struct local_vars *parser_lvtbl; -#ifdef RIPPER +#ifndef RIPPER + /* Ruby core only */ + NODE *parser_eval_tree_begin; + NODE *parser_eval_tree; +#else + /* Ripper only */ int parser_ruby__end__seen; int parser_ruby_sourceline; VALUE parser_ruby_sourcefile; @@ -157,6 +154,11 @@ struct parser_params { VALUE delayed; int delayed_line; int delayed_col; + + VALUE value; + VALUE result; + VALUE parsing_thread; + int toplevel_p; #endif }; @@ -4185,7 +4187,7 @@ none : /* none */ # define yylval (*((YYSTYPE*)(parser->parser_yylval))) #ifndef RIPPER -static struct parser_params* parser_new _((void)); +static VALUE rb_parser_s_new _((void)); #endif static int parser_regx_options _((struct parser_params*)); static int parser_tokadd_string _((struct parser_params*,int,int,int,long*)); @@ -4432,9 +4434,10 @@ rb_compile_string(f, s, line) VALUE s; int line; { - struct parser_params *parser = parser_new(); - volatile VALUE p = parser->value; - + VALUE volatile vparser = rb_parser_s_new(); + struct parser_params *parser; + + Data_Get_Struct(vparser, struct parser_params, parser); lex_gets = lex_get_str; lex_gets_ptr = 0; lex_input = s; @@ -4467,9 +4470,10 @@ rb_compile_file(f, file, start) VALUE file; int start; { - struct parser_params *parser = parser_new(); - volatile VALUE p = parser->value; - + VALUE volatile vparser = rb_parser_s_new(); + struct parser_params *parser; + + Data_Get_Struct(vparser, struct parser_params, parser); lex_gets = lex_io_gets; lex_input = file; lex_pbeg = lex_p = lex_pend = 0; @@ -8096,10 +8100,11 @@ special_local_set(c, val) char c; VALUE val; { + VALUE volatile vparser = rb_parser_s_new(); + struct parser_params *parser; int cnt; - struct parser_params *parser = parser_new(); - volatile VALUE p = parser->value; - + + Data_Get_Struct(vparser, struct parser_params, parser); top_local_init(); cnt = local_cnt(c); top_local_setup(); @@ -8157,14 +8162,8 @@ static void parser_initialize(parser) struct parser_params *parser; { - parser->result = Qnil; - parser->toplevel_p = Qtrue; - parser->parsing_thread = Qnil; + parser->eofp = Qfalse; -#ifndef RIPPER - parser->parser_eval_tree_begin = 0; - parser->parser_eval_tree = 0; -#endif parser->parser_lex_strterm = 0; parser->parser_cond_stack = 0; parser->parser_cmdarg_stack = 0; @@ -8183,9 +8182,16 @@ parser_initialize(parser) parser->parser_lex_p = 0; parser->parser_lex_pend = 0; parser->parser_lvtbl = 0; -#ifdef RIPPER +#ifndef RIPPER + parser->parser_eval_tree_begin = 0; + parser->parser_eval_tree = 0; +#else parser->parser_ruby_sourcefile = Qnil; parser->delayed = Qnil; + + parser->result = Qnil; + parser->parsing_thread = Qnil; + parser->toplevel_p = Qtrue; #endif } @@ -8195,18 +8201,17 @@ parser_mark(ptr) { struct parser_params *p = (struct parser_params*)ptr; - rb_gc_mark(p->result); - rb_gc_mark(p->parsing_thread); rb_gc_mark((VALUE)p->parser_lex_strterm); - /*rb_gc_mark(p->parser_cur_mid);*/ rb_gc_mark(p->parser_lex_input); rb_gc_mark(p->parser_lex_lastline); -#ifdef RIPPER - rb_gc_mark(p->parser_ruby_sourcefile); - rb_gc_mark(p->delayed); -#else +#ifndef RIPPER rb_gc_mark((VALUE)p->parser_eval_tree_begin) ; rb_gc_mark((VALUE)p->parser_eval_tree) ; +#else + rb_gc_mark(p->parser_ruby_sourcefile); + rb_gc_mark(p->delayed); + rb_gc_mark(p->result); + rb_gc_mark(p->parsing_thread); #endif } @@ -8230,17 +8235,26 @@ parser_free(ptr) } #ifndef RIPPER -struct parser_params * +static struct parser_params * parser_new() { struct parser_params *p; p = ALLOC_N(struct parser_params, 1); MEMZERO(p, struct parser_params, 1); - p->value = Data_Wrap_Struct(rb_cData, parser_mark, parser_free, p); parser_initialize(p); return p; } + +static VALUE +rb_parser_s_new() +{ + struct parser_params *p = parser_new(); + + /* Object class is a dummy */ + return Data_Make_Struct(rb_cObject, struct parser_params, + parser_mark, parser_free, p); +} #endif #ifdef RIPPER @@ -8518,6 +8532,7 @@ ripper_warning0(parser, fmt) } static VALUE ripper_lex_get_generic _((struct parser_params *, VALUE)); + static VALUE ripper_lex_get_generic(parser, src) struct parser_params *parser; @@ -8527,6 +8542,7 @@ ripper_lex_get_generic(parser, src) } static VALUE ripper_s_allocate _((VALUE)); + static VALUE ripper_s_allocate(klass) VALUE klass; |