From 7194267b3bdf68ad75bd6bee8e7c6377f7b0ea2f Mon Sep 17 00:00:00 2001 From: matz Date: Mon, 10 Apr 2000 05:48:43 +0000 Subject: 2000-04-10 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@661 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- parse.y | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'parse.y') diff --git a/parse.y b/parse.y index 63cb9f0f21..73494fc3e4 100644 --- a/parse.y +++ b/parse.y @@ -2573,9 +2573,9 @@ here_document(term, indent) switch (parse_string(term, '\n', '\n')) { case tSTRING: case tXSTRING: - rb_str_cat(yylval.val, "\n", 1); + rb_str_cat2(yylval.val, "\n"); if (!list) { - rb_str_cat(str, RSTRING(yylval.val)->ptr, RSTRING(yylval.val)->len); + rb_str_append(str, yylval.val); } else { list_append(list, NEW_STR(yylval.val)); @@ -3167,11 +3167,8 @@ yylex() lex_state = EXPR_BEG; } else { - if (lex_state == EXPR_ARG) { - if (space_seen) { - arg_ambiguous(); - c = tLPAREN; - } + if (lex_state == EXPR_ARG && space_seen) { + rb_warning("%s (...) interpreted as function", tok()); } lex_state = EXPR_BEG; } @@ -3549,6 +3546,10 @@ str_extend(list, term) case '@': tokadd(c); c = nextc(); + if (c == '@') { + tokadd(c); + c = nextc(); + } while (is_identchar(c)) { tokadd(c); if (ismbchar(c)) { -- cgit v1.2.3