summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-06-18 15:53:57 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-06-18 15:53:57 +0000
commit772f420a18ba30a5e7a0cf03827fc958cf25db95 (patch)
tree25e20e400c4824bedb79af06f22b93494d811a92
parentde9251e2c752c9a7bab11615cc54ebab3648b0c8 (diff)
* parse.y (yylex): ? followed by successive word charaters is
ternary operator not numeric literal. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2583 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--parse.y4
2 files changed, 8 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index ac3869fe25..bbfb8c09c0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,7 @@
-Wed Jun 19 00:39:52 2002 Nobuyoshi Nakada <nobu.nokada@softhome.net>
+Wed Jun 19 00:50:50 2002 Nobuyoshi Nakada <nobu.nokada@softhome.net>
+
+ * parse.y (yylex): ? followed by successive word charaters is
+ ternary operator not numeric literal.
* parse.y (yylex): commands after break/next/rescue can take
arguments. (ruby-bugs-ja:PR#265)
diff --git a/parse.y b/parse.y
index 7d1d81f9ef..885b5d312e 100644
--- a/parse.y
+++ b/parse.y
@@ -3300,10 +3300,14 @@ yylex()
rb_warn("invalid character syntax; use ?\\%c", c);
}
}
+ ternary:
pushback(c);
lex_state = EXPR_BEG;
return '?';
}
+ if ((ISALNUM(c) || c == '_') && lex_p < lex_pend && is_identchar(*lex_p)) {
+ goto ternary;
+ }
else if (c == '\\') {
c = read_escape();
}