diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1999-04-12 09:59:33 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1999-04-12 09:59:33 +0000 |
commit | 83627b120c902e79bbb8994a0679712d31695878 (patch) | |
tree | 56603e4c5e15a49065ba5d3a8f915ca9d183eafb /parse.y | |
parent | 32e799db485107ba9d47fb4fb4cd44c9d6f57b8a (diff) |
*** empty log message ***
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_3@416 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r-- | parse.y | 21 |
1 files changed, 9 insertions, 12 deletions
@@ -245,7 +245,8 @@ program : { } compstmt { - if ($2) { /* last expression is void */ + if ($2 && !compile_for_eval) { + /* last expression should not be void */ if (nd_type($2) != NODE_BLOCK) void_expr($2); else { NODE *node = $2; @@ -1712,28 +1713,27 @@ lex_get_str(s) } NODE* -rb_compile_string(f, s) +rb_compile_string(f, s, line) const char *f; VALUE s; + int line; { lex_gets = lex_get_str; lex_gets_ptr = 0; lex_input = s; lex_pbeg = lex_p = lex_pend = 0; - if (!ruby_sourcefile || strcmp(f, ruby_sourcefile)) /* not in eval() */ - ruby_sourceline = 0; - else /* in eval() */ - compile_for_eval = 1; + ruby_sourceline = line; + compile_for_eval = 1; return yycompile(f); } NODE* -rb_compile_cstr(f, s, len) +rb_compile_cstr(f, s, len, line) const char *f, *s; - int len; + int len, line; { - return rb_compile_string(f, rb_str_new(s, len)); + return rb_compile_string(f, rb_str_new(s, len), line); } NODE* @@ -3798,10 +3798,7 @@ void_expr(node) case '<': case tLEQ: case tEQ: - case tEQQ: case tNEQ: - case tMATCH: - case tNMATCH: case tAREF: case tRSHFT: case tCOLON2: |