parse.y: simplify

* parse.y (parser_yylex): reduce RIPPER ifdefs.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52547 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2015-11-12 05:16:03 +00:00
parent a2ba489e2e
commit 88edab89f4

33
parse.y
View File

@ -5232,6 +5232,8 @@ ripper_yylval_id(ID x)
#ifndef RIPPER #ifndef RIPPER
#define ripper_flush(p) (void)(p) #define ripper_flush(p) (void)(p)
#define dispatch_scan_event(t) ((void)0)
#define dispatch_delayed_token(t) ((void)0)
#else #else
#define ripper_flush(p) ((p)->tokp = (p)->lex.pcur) #define ripper_flush(p) ((p)->tokp = (p)->lex.pcur)
@ -5274,6 +5276,7 @@ ripper_dispatch_ignored_scan_event(struct parser_params *parser, int t)
if (!ripper_has_scan_event(parser)) return; if (!ripper_has_scan_event(parser)) return;
(void)ripper_scan_event_val(parser, t); (void)ripper_scan_event_val(parser, t);
} }
#define dispatch_scan_event(t) ripper_dispatch_ignored_scan_event(parser, t)
static void static void
ripper_dispatch_delayed_token(struct parser_params *parser, int t) ripper_dispatch_delayed_token(struct parser_params *parser, int t)
@ -5288,6 +5291,7 @@ ripper_dispatch_delayed_token(struct parser_params *parser, int t)
ruby_sourceline = saved_line; ruby_sourceline = saved_line;
parser->tokp = saved_tokp; parser->tokp = saved_tokp;
} }
#define dispatch_delayed_token(t) ripper_dispatch_delayed_token(parser, t)
#endif /* RIPPER */ #endif /* RIPPER */
#include "ruby/regex.h" #include "ruby/regex.h"
@ -8031,15 +8035,10 @@ parser_yylex(struct parser_params *parser)
space_seen = 1; space_seen = 1;
break; break;
case '.': { case '.': {
#ifdef RIPPER dispatch_delayed_token(tIGNORED_NL);
ripper_dispatch_delayed_token(parser, tIGNORED_NL); if (!peek('.')) {
#endif
if ((c = nextc()) != '.') {
pushback(c); pushback(c);
pushback('.'); dispatch_scan_event(tSP);
#ifdef RIPPER
ripper_dispatch_scan_event(parser, tSP);
#endif
goto retry; goto retry;
} }
} }
@ -8127,35 +8126,29 @@ parser_yylex(struct parser_params *parser)
if (was_bol()) { if (was_bol()) {
/* skip embedded rd document */ /* skip embedded rd document */
if (strncmp(lex_p, "begin", 5) == 0 && ISSPACE(lex_p[5])) { if (strncmp(lex_p, "begin", 5) == 0 && ISSPACE(lex_p[5])) {
#ifdef RIPPER
int first_p = TRUE; int first_p = TRUE;
lex_goto_eol(parser); lex_goto_eol(parser);
ripper_dispatch_scan_event(parser, tEMBDOC_BEG); dispatch_scan_event(tEMBDOC_BEG);
#endif
for (;;) { for (;;) {
lex_goto_eol(parser); lex_goto_eol(parser);
#ifdef RIPPER
if (!first_p) { if (!first_p) {
ripper_dispatch_scan_event(parser, tEMBDOC); dispatch_scan_event(tEMBDOC);
} }
first_p = FALSE; first_p = FALSE;
#endif
c = nextc(); c = nextc();
if (c == -1) { if (c == -1) {
compile_error(PARSER_ARG "embedded document meets end of file"); compile_error(PARSER_ARG "embedded document meets end of file");
return 0; return 0;
} }
if (c != '=') continue; if (c != '=') continue;
if (strncmp(lex_p, "end", 3) == 0 && if (c == '=' && strncmp(lex_p, "end", 3) == 0 &&
(lex_p + 3 == lex_pend || ISSPACE(lex_p[3]))) { (lex_p + 3 == lex_pend || ISSPACE(lex_p[3]))) {
break; break;
} }
} }
lex_goto_eol(parser); lex_goto_eol(parser);
#ifdef RIPPER dispatch_scan_event(tEMBDOC_END);
ripper_dispatch_scan_event(parser, tEMBDOC_END);
#endif
goto retry; goto retry;
} }
} }
@ -8559,9 +8552,7 @@ parser_yylex(struct parser_params *parser)
c = nextc(); c = nextc();
if (c == '\n') { if (c == '\n') {
space_seen = 1; space_seen = 1;
#ifdef RIPPER dispatch_scan_event(tSP);
ripper_dispatch_scan_event(parser, tSP);
#endif
goto retry; /* skip \\n */ goto retry; /* skip \\n */
} }
pushback(c); pushback(c);