From 794fb410993c0c2ef7a1eb398f0f3e263ca7d1c9 Mon Sep 17 00:00:00 2001 From: nobu Date: Mon, 30 Nov 2015 08:11:17 +0000 Subject: parse.y: dispatch heredoc end * parse.y (ripper_dispatch_heredoc_end): at the end of here document, the terminator always should present. has_scan_event is true. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52794 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- parse.y | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) (limited to 'parse.y') diff --git a/parse.y b/parse.y index 86824f9199..3cebf0a03c 100644 --- a/parse.y +++ b/parse.y @@ -5223,7 +5223,6 @@ ripper_yylval_id(ID x) #ifndef RIPPER #define ripper_flush(p) (void)(p) #define dispatch_scan_event(t) ((void)0) -#define dispatch_ignored_scan_event(t) ((void)0) #define dispatch_delayed_token(t) ((void)0) #define has_delayed_token() (0) #else @@ -5263,14 +5262,6 @@ ripper_dispatch_scan_event(struct parser_params *parser, int t) } #define dispatch_scan_event(t) ripper_dispatch_scan_event(parser, t) -static void -ripper_dispatch_ignored_scan_event(struct parser_params *parser, int t) -{ - if (!ripper_has_scan_event(parser)) return; - (void)ripper_scan_event_val(parser, t); -} -#define dispatch_ignored_scan_event(t) ripper_dispatch_ignored_scan_event(parser, t) - static void ripper_dispatch_delayed_token(struct parser_params *parser, int t) { @@ -6627,10 +6618,13 @@ parser_set_integer_literal(struct parser_params *parser, VALUE v, int suffix) static void ripper_dispatch_heredoc_end(struct parser_params *parser) { + VALUE str; if (has_delayed_token()) dispatch_delayed_token(tSTRING_CONTENT); + str = STR_NEW(parser->tokp, lex_pend - parser->tokp); + ripper_dispatch1(parser, ripper_token2eventid(tHEREDOC_END), str); lex_goto_eol(parser); - dispatch_ignored_scan_event(tHEREDOC_END); + ripper_flush(parser); } #define dispatch_heredoc_end() ripper_dispatch_heredoc_end(parser) -- cgit v1.2.3