summaryrefslogtreecommitdiff
path: root/parse.y
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2000-04-10 05:48:43 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2000-04-10 05:48:43 +0000
commit7194267b3bdf68ad75bd6bee8e7c6377f7b0ea2f (patch)
tree6dcd08ef584fc777cf34517136d5ce3948840e45 /parse.y
parentbe72d9a5da9be284d2bdb8047e50f14e014b7835 (diff)
2000-04-10
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@661 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y15
1 files changed, 8 insertions, 7 deletions
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)) {