summaryrefslogtreecommitdiff
path: root/parse.y
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-08-26 15:07:51 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-08-26 15:07:51 +0000
commit49b884941ac7b9accde698ff5191f2a6d17211bf (patch)
treea086c5a863c542b57c7c4bb58b2485ded3bfc3e4 /parse.y
parent504908996c6eec59f920a9da532a3004cf789568 (diff)
parse.y: parser_string_term
* parse.y (parser_string_term): return the token of string or regexp literal terminator. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56014 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y14
1 files changed, 10 insertions, 4 deletions
diff --git a/parse.y b/parse.y
index d46ae7e578..9f5bfeb171 100644
--- a/parse.y
+++ b/parse.y
@@ -6331,6 +6331,15 @@ parser_peek_variable_name(struct parser_params *parser)
return 0;
}
+static inline int
+parser_string_term(struct parser_params *parser, int func)
+{
+ if (!(func & STR_FUNC_REGEXP)) return tSTRING_END;
+ set_yylval_num(regx_options());
+ dispatch_scan_event(tREGEXP_END);
+ return tREGEXP_END;
+}
+
static int
parser_parse_string(struct parser_params *parser, NODE *quote)
{
@@ -6351,10 +6360,7 @@ parser_parse_string(struct parser_params *parser, NODE *quote)
quote->nd_func = -1;
return ' ';
}
- if (!(func & STR_FUNC_REGEXP)) return tSTRING_END;
- set_yylval_num(regx_options());
- dispatch_scan_event(tREGEXP_END);
- return tREGEXP_END;
+ return parser_string_term(parser, func);
}
if (space) {
pushback(c);