AST.of -e script
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65654 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
6e610f5ea7
commit
f53bd45d6f
5
ast.c
5
ast.c
@ -184,6 +184,8 @@ node_find(VALUE self, const int node_id)
|
|||||||
return Qnil;
|
return Qnil;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern VALUE rb_e_script;
|
||||||
|
|
||||||
static VALUE
|
static VALUE
|
||||||
script_lines(VALUE path)
|
script_lines(VALUE path)
|
||||||
{
|
{
|
||||||
@ -223,6 +225,9 @@ rb_ast_s_of(VALUE module, VALUE body)
|
|||||||
if (!NIL_P(lines = script_lines(path))) {
|
if (!NIL_P(lines = script_lines(path))) {
|
||||||
node = rb_ast_parse_array(lines);
|
node = rb_ast_parse_array(lines);
|
||||||
}
|
}
|
||||||
|
else if (RSTRING_LEN(path) == 2 && memcmp(RSTRING_PTR(path), "-e", 2) == 0) {
|
||||||
|
node = rb_ast_parse_str(rb_e_script);
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
node = rb_ast_parse_file(path);
|
node = rb_ast_parse_file(path);
|
||||||
}
|
}
|
||||||
|
5
ruby.c
5
ruby.c
@ -1429,6 +1429,7 @@ opt_enc_index(VALUE enc_name)
|
|||||||
#define rb_progname (GET_VM()->progname)
|
#define rb_progname (GET_VM()->progname)
|
||||||
#define rb_orig_progname (GET_VM()->orig_progname)
|
#define rb_orig_progname (GET_VM()->orig_progname)
|
||||||
VALUE rb_argv0;
|
VALUE rb_argv0;
|
||||||
|
VALUE rb_e_script;
|
||||||
|
|
||||||
static VALUE
|
static VALUE
|
||||||
false_value(void)
|
false_value(void)
|
||||||
@ -1856,6 +1857,10 @@ process_options(int argc, char **argv, ruby_cmdline_options_t *opt)
|
|||||||
rb_define_readonly_boolean("$-l", opt->do_line);
|
rb_define_readonly_boolean("$-l", opt->do_line);
|
||||||
rb_define_readonly_boolean("$-a", opt->do_split);
|
rb_define_readonly_boolean("$-a", opt->do_split);
|
||||||
|
|
||||||
|
if ((rb_e_script = opt->e_script) != 0) {
|
||||||
|
rb_gc_register_mark_object(opt->e_script);
|
||||||
|
}
|
||||||
|
|
||||||
rb_set_safe_level(opt->safe_level);
|
rb_set_safe_level(opt->safe_level);
|
||||||
|
|
||||||
return (VALUE)iseq;
|
return (VALUE)iseq;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user