summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNobuyoshi Nakada <[email protected]>2024-06-11 10:50:19 +0900
committerNobuyoshi Nakada <[email protected]>2024-06-12 11:49:33 +0900
commit206465e84d7c258194b8e682d794a95e8416ff3b (patch)
treee3246ac451159dd850e4f05e5c27bd63e5322958
parent1271ff72d5b627854c6812baefe796a2976cd793 (diff)
ripper: Unify `dispatch_end`
-rw-r--r--parse.y21
1 files changed, 5 insertions, 16 deletions
diff --git a/parse.y b/parse.y
index 4cae4b8165..486df5cd3c 100644
--- a/parse.y
+++ b/parse.y
@@ -9085,21 +9085,6 @@ set_number_literal(struct parser_params *p, enum yytokentype type, int suffix, i
return type;
}
-#ifdef RIPPER
-static void
-dispatch_heredoc_end(struct parser_params *p)
-{
- VALUE str;
- if (has_delayed_token(p))
- dispatch_delayed_token(p, tSTRING_CONTENT);
- str = STR_NEW(p->lex.ptok, p->lex.pend - p->lex.ptok);
- ripper_dispatch1(p, ripper_token2eventid(tHEREDOC_END), str);
- RUBY_SET_YYLLOC_FROM_STRTERM_HEREDOC(*p->yylloc);
- lex_goto_eol(p);
- token_flush(p);
-}
-
-#else
#define dispatch_heredoc_end(p) parser_dispatch_heredoc_end(p, __LINE__)
static void
parser_dispatch_heredoc_end(struct parser_params *p, int line)
@@ -9107,17 +9092,21 @@ parser_dispatch_heredoc_end(struct parser_params *p, int line)
if (has_delayed_token(p))
dispatch_delayed_token(p, tSTRING_CONTENT);
+#ifdef RIPPER
+ VALUE str = STR_NEW(p->lex.ptok, p->lex.pend - p->lex.ptok);
+ ripper_dispatch1(p, ripper_token2eventid(tHEREDOC_END), str);
+#else
if (p->keep_tokens) {
rb_parser_string_t *str = rb_parser_encoding_string_new(p, p->lex.ptok, p->lex.pend - p->lex.ptok, p->enc);
RUBY_SET_YYLLOC_OF_HEREDOC_END(*p->yylloc);
parser_append_tokens(p, str, tHEREDOC_END, line);
}
+#endif
RUBY_SET_YYLLOC_FROM_STRTERM_HEREDOC(*p->yylloc);
lex_goto_eol(p);
token_flush(p);
}
-#endif
static enum yytokentype
here_document(struct parser_params *p, rb_strterm_heredoc_t *here)