summaryrefslogtreecommitdiff
path: root/parse.y
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-04-19 10:18:56 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2010-04-19 10:18:56 +0000
commit04247ab5b46d713941dd092f8ef1b1c7150e5272 (patch)
tree24fe483ad840e801fe9930f3b4a6684b33c03a32 /parse.y
parent312d5bf7f2eb48c83ede97a609ef71cb346b27a4 (diff)
* parse.y (parser_yylex): reduced duplicated conditions.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27399 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y8
1 files changed, 3 insertions, 5 deletions
diff --git a/parse.y b/parse.y
index 77f3e0a4f1..0ba786c939 100644
--- a/parse.y
+++ b/parse.y
@@ -6117,7 +6117,7 @@ arg_ambiguous_gen(struct parser_params *parser)
dispatch0(arg_ambiguous);
#endif
}
-#define arg_ambiguous() arg_ambiguous_gen(parser)
+#define arg_ambiguous() (arg_ambiguous_gen(parser), 1)
static ID
formal_argument_gen(struct parser_params *parser, ID lhs)
@@ -6886,8 +6886,7 @@ parser_yylex(struct parser_params *parser)
lex_state = EXPR_BEG;
return tOP_ASGN;
}
- if (IS_BEG() || IS_SPCARG(c)) {
- if (!IS_BEG()) arg_ambiguous();
+ if (IS_BEG() || (IS_SPCARG(c) && arg_ambiguous())) {
lex_state = EXPR_BEG;
pushback(c);
if (c != -1 && ISDIGIT(c)) {
@@ -6919,8 +6918,7 @@ parser_yylex(struct parser_params *parser)
lex_state = EXPR_ARG;
return tLAMBDA;
}
- if (IS_BEG() || IS_SPCARG(c)) {
- if (!IS_BEG()) arg_ambiguous();
+ if (IS_BEG() || (IS_SPCARG(c) && arg_ambiguous())) {
lex_state = EXPR_BEG;
pushback(c);
if (c != -1 && ISDIGIT(c)) {