From b5e16cebda52b25f651b97c9b9da830ee7e46138 Mon Sep 17 00:00:00 2001 From: Bob Weinand Date: Mon, 3 Aug 2015 20:27:46 +0200 Subject: [PATCH] Fix a few valgrind errors in phpdbg --- run-tests.php | 4 +- sapi/phpdbg/phpdbg_cmd.c | 20 +- sapi/phpdbg/phpdbg_lexer.c | 1406 +++++++++++++++++------------------- sapi/phpdbg/phpdbg_lexer.l | 12 +- 4 files changed, 673 insertions(+), 769 deletions(-) diff --git a/run-tests.php b/run-tests.php index ba44ce5464..ae39fe4c71 100755 --- a/run-tests.php +++ b/run-tests.php @@ -1878,7 +1878,7 @@ TEST $file if (version_compare($valgrind_version, '3.3.0', '>=')) { /* valgrind 3.3.0+ doesn't have --log-file-exactly option */ - $cmd = "valgrind -q --tool=memcheck --trace-children=yes --log-file=$memcheck_filename $cmd"; + $cmd = "valgrind -q --tool=memcheck --trace-children=yes --show-leak-kinds=definite,indirect --log-file=$memcheck_filename $cmd"; } else { $cmd = "valgrind -q --tool=memcheck --trace-children=yes --log-file-exactly=$memcheck_filename $cmd"; } @@ -1933,7 +1933,7 @@ COMMAND $cmd $passed = false; if ($leak_check) { // leak check - $leaked = filesize($memcheck_filename) > 0; + $leaked = filesize($memcheck_filename) > 367; if (!$leaked) { @unlink($memcheck_filename); diff --git a/sapi/phpdbg/phpdbg_cmd.c b/sapi/phpdbg/phpdbg_cmd.c index f01f765045..71a27f5dec 100644 --- a/sapi/phpdbg/phpdbg_cmd.c +++ b/sapi/phpdbg/phpdbg_cmd.c @@ -385,23 +385,27 @@ PHPDBG_API void phpdbg_stack_free(phpdbg_param_t *stack) { switch (remove->type) { case NUMERIC_METHOD_PARAM: case METHOD_PARAM: - if (remove->method.class) - free(remove->method.class); - if (remove->method.name) - free(remove->method.name); + if (remove->method.class) { + efree(remove->method.class); + } + if (remove->method.name) { + efree(remove->method.name); + } break; case NUMERIC_FUNCTION_PARAM: case STR_PARAM: case OP_PARAM: - if (remove->str) - free(remove->str); + if (remove->str) { + efree(remove->str); + } break; case NUMERIC_FILE_PARAM: case FILE_PARAM: - if (remove->file.name) - free(remove->file.name); + if (remove->file.name) { + efree(remove->file.name); + } break; default: { diff --git a/sapi/phpdbg/phpdbg_lexer.c b/sapi/phpdbg/phpdbg_lexer.c index 1e4193b72f..05b6cc9e8c 100644 --- a/sapi/phpdbg/phpdbg_lexer.c +++ b/sapi/phpdbg/phpdbg_lexer.c @@ -67,10 +67,10 @@ yyc_INITIAL: { static const unsigned char yybm[] = { 0, 0, 0, 0, 0, 0, 0, 0, - 0, 192, 96, 0, 0, 192, 0, 0, + 0, 128, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 192, 0, 0, 0, 0, 0, 0, 0, + 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -103,49 +103,46 @@ yyc_INITIAL: YYDEBUG(0, *YYCURSOR); YYFILL(4); yych = *YYCURSOR; - if (yybm[0+yych] & 32) { - goto yy4; - } - if (yych <= 'E') { - if (yych <= '\f') { - if (yych <= 0x00) goto yy7; - if (yych != '\t') goto yy12; + if (yych <= 'D') { + if (yych <= '\n') { + if (yych <= 0x00) goto yy4; + if (yych <= 0x08) goto yy11; + if (yych >= '\n') goto yy5; } else { - if (yych <= 0x1F) { - if (yych >= 0x0E) goto yy12; + if (yych <= '\r') { + if (yych <= '\f') goto yy11; } else { - if (yych <= ' ') goto yy2; - if (yych <= 'D') goto yy12; - goto yy8; + if (yych != ' ') goto yy11; } } } else { if (yych <= 'd') { - if (yych <= 'Q') goto yy12; - if (yych <= 'R') goto yy11; - if (yych <= 'S') goto yy9; - goto yy12; + if (yych <= 'Q') { + if (yych <= 'E') goto yy7; + goto yy11; + } else { + if (yych <= 'R') goto yy10; + if (yych <= 'S') goto yy8; + goto yy11; + } } else { if (yych <= 'q') { - if (yych <= 'e') goto yy8; - goto yy12; + if (yych <= 'e') goto yy7; + goto yy11; } else { - if (yych <= 'r') goto yy10; - if (yych <= 's') goto yy9; - goto yy12; + if (yych <= 'r') goto yy9; + if (yych <= 's') goto yy8; + goto yy11; } } } -yy2: YYDEBUG(2, *YYCURSOR); ++YYCURSOR; if ((yych = *YYCURSOR) <= '\f') { - if (yych <= 0x00) goto yy29; - if (yych <= 0x08) goto yy3; - if (yych <= '\n') goto yy29; + if (yych == '\t') goto yy26; } else { - if (yych <= '\r') goto yy29; - if (yych == ' ') goto yy29; + if (yych <= '\r') goto yy26; + if (yych == ' ') goto yy26; } yy3: YYDEBUG(3, *YYCURSOR); @@ -157,91 +154,82 @@ yy3: YYCURSOR = LEX(text); goto restart; } -#line 161 "sapi/phpdbg/phpdbg_lexer.c" +#line 158 "sapi/phpdbg/phpdbg_lexer.c" yy4: YYDEBUG(4, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; + yych = *++YYCURSOR; + goto yy3; +yy5: YYDEBUG(5, *YYCURSOR); - if (yybm[0+yych] & 128) { - goto yy28; - } - if (yych <= 0x00) goto yy27; - if (yych == '\n') goto yy4; -yy6: + ++YYCURSOR; YYDEBUG(6, *YYCURSOR); yyleng = (size_t) YYCURSOR - (size_t) yytext; #line 70 "sapi/phpdbg/phpdbg_lexer.l" { return 0; } -#line 180 "sapi/phpdbg/phpdbg_lexer.c" +#line 172 "sapi/phpdbg/phpdbg_lexer.c" yy7: YYDEBUG(7, *YYCURSOR); - yych = *++YYCURSOR; + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == 'V') goto yy22; + if (yych == 'v') goto yy22; goto yy3; yy8: YYDEBUG(8, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'V') goto yy23; - if (yych == 'v') goto yy23; + if (yych == 'H') goto yy18; + if (yych == 'h') goto yy18; goto yy3; yy9: YYDEBUG(9, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'H') goto yy19; - if (yych == 'h') goto yy19; + if (yybm[0+yych] & 128) { + goto yy15; + } + if (yych == 'U') goto yy12; + if (yych == 'u') goto yy12; goto yy3; yy10: YYDEBUG(10, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yybm[0+yych] & 64) { - goto yy16; - } - if (yych == 'U') goto yy13; - if (yych == 'u') goto yy13; + if (yych == 'U') goto yy12; + if (yych == 'u') goto yy12; goto yy3; yy11: YYDEBUG(11, *YYCURSOR); - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'U') goto yy13; - if (yych == 'u') goto yy13; + yych = *++YYCURSOR; goto yy3; yy12: YYDEBUG(12, *YYCURSOR); yych = *++YYCURSOR; - goto yy3; + if (yych == 'N') goto yy14; + if (yych == 'n') goto yy14; yy13: YYDEBUG(13, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'N') goto yy15; - if (yych == 'n') goto yy15; -yy14: - YYDEBUG(14, *YYCURSOR); YYCURSOR = YYMARKER; goto yy3; -yy15: - YYDEBUG(15, *YYCURSOR); +yy14: + YYDEBUG(14, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 64) { - goto yy16; + if (yybm[0+yych] & 128) { + goto yy15; } - goto yy14; -yy16: - YYDEBUG(16, *YYCURSOR); + goto yy13; +yy15: + YYDEBUG(15, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(17, *YYCURSOR); - if (yybm[0+yych] & 64) { - goto yy16; + YYDEBUG(16, *YYCURSOR); + if (yybm[0+yych] & 128) { + goto yy15; } - YYDEBUG(18, *YYCURSOR); + YYDEBUG(17, *YYCURSOR); yyleng = (size_t) YYCURSOR - (size_t) yytext; #line 165 "sapi/phpdbg/phpdbg_lexer.l" { @@ -249,32 +237,29 @@ yy16: phpdbg_init_param(yylval, EMPTY_PARAM); return T_RUN; } -#line 253 "sapi/phpdbg/phpdbg_lexer.c" -yy19: - YYDEBUG(19, *YYCURSOR); +#line 241 "sapi/phpdbg/phpdbg_lexer.c" +yy18: + YYDEBUG(18, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '\f') { - if (yych <= 0x08) goto yy14; - if (yych >= '\v') goto yy14; + if (yych != '\t') goto yy13; } else { - if (yych <= '\r') goto yy20; - if (yych != ' ') goto yy14; + if (yych <= '\r') goto yy19; + if (yych != ' ') goto yy13; } -yy20: - YYDEBUG(20, *YYCURSOR); +yy19: + YYDEBUG(19, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(21, *YYCURSOR); + YYDEBUG(20, *YYCURSOR); if (yych <= '\f') { - if (yych <= 0x08) goto yy22; - if (yych <= '\n') goto yy20; + if (yych == '\t') goto yy19; } else { - if (yych <= '\r') goto yy20; - if (yych == ' ') goto yy20; + if (yych <= '\r') goto yy19; + if (yych == ' ') goto yy19; } -yy22: - YYDEBUG(22, *YYCURSOR); + YYDEBUG(21, *YYCURSOR); yyleng = (size_t) YYCURSOR - (size_t) yytext; #line 160 "sapi/phpdbg/phpdbg_lexer.l" { @@ -282,32 +267,29 @@ yy22: phpdbg_init_param(yylval, EMPTY_PARAM); return T_SHELL; } -#line 286 "sapi/phpdbg/phpdbg_lexer.c" -yy23: - YYDEBUG(23, *YYCURSOR); +#line 271 "sapi/phpdbg/phpdbg_lexer.c" +yy22: + YYDEBUG(22, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '\f') { - if (yych <= 0x08) goto yy14; - if (yych >= '\v') goto yy14; + if (yych != '\t') goto yy13; } else { - if (yych <= '\r') goto yy24; - if (yych != ' ') goto yy14; + if (yych <= '\r') goto yy23; + if (yych != ' ') goto yy13; } -yy24: - YYDEBUG(24, *YYCURSOR); +yy23: + YYDEBUG(23, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(25, *YYCURSOR); + YYDEBUG(24, *YYCURSOR); if (yych <= '\f') { - if (yych <= 0x08) goto yy26; - if (yych <= '\n') goto yy24; + if (yych == '\t') goto yy23; } else { - if (yych <= '\r') goto yy24; - if (yych == ' ') goto yy24; + if (yych <= '\r') goto yy23; + if (yych == ' ') goto yy23; } -yy26: - YYDEBUG(26, *YYCURSOR); + YYDEBUG(25, *YYCURSOR); yyleng = (size_t) YYCURSOR - (size_t) yytext; #line 155 "sapi/phpdbg/phpdbg_lexer.l" { @@ -315,24 +297,20 @@ yy26: phpdbg_init_param(yylval, EMPTY_PARAM); return T_EVAL; } -#line 319 "sapi/phpdbg/phpdbg_lexer.c" -yy27: - YYDEBUG(27, *YYCURSOR); - yych = *++YYCURSOR; - goto yy6; -yy28: - YYDEBUG(28, *YYCURSOR); +#line 301 "sapi/phpdbg/phpdbg_lexer.c" +yy26: + YYDEBUG(26, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy29: - YYDEBUG(29, *YYCURSOR); - if (yybm[0+yych] & 128) { - goto yy28; + YYDEBUG(27, *YYCURSOR); + if (yych <= '\f') { + if (yych == '\t') goto yy26; + } else { + if (yych <= '\r') goto yy26; + if (yych == ' ') goto yy26; } - if (yych <= 0x00) goto yy27; - if (yych == '\n') goto yy4; - YYDEBUG(30, *YYCURSOR); + YYDEBUG(28, *YYCURSOR); yyleng = (size_t) YYCURSOR - (size_t) yytext; #line 149 "sapi/phpdbg/phpdbg_lexer.l" { @@ -340,90 +318,90 @@ yy29: goto restart; } -#line 344 "sapi/phpdbg/phpdbg_lexer.c" +#line 322 "sapi/phpdbg/phpdbg_lexer.c" } /* *********************************** */ yyc_NORMAL: { static const unsigned char yybm[] = { - 0, 8, 8, 8, 8, 8, 8, 8, - 8, 66, 68, 8, 8, 66, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 66, 8, 8, 0, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 24, 8, - 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 0, 8, 8, 8, 8, 8, - 8, 168, 168, 168, 168, 168, 168, 40, - 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 8, 8, 8, 8, 8, - 8, 168, 168, 168, 168, 168, 168, 40, - 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, + 0, 16, 16, 16, 16, 16, 16, 16, + 16, 8, 0, 16, 16, 8, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 8, 16, 16, 0, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 48, 16, + 176, 176, 176, 176, 176, 176, 176, 176, + 176, 176, 0, 16, 16, 16, 16, 16, + 16, 208, 208, 208, 208, 208, 208, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 16, 16, 16, 16, 16, + 16, 208, 208, 208, 208, 208, 208, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, }; - YYDEBUG(31, *YYCURSOR); + YYDEBUG(29, *YYCURSOR); YYFILL(11); yych = *YYCURSOR; - if (yybm[0+yych] & 2) { - goto yy33; + if (yybm[0+yych] & 8) { + goto yy31; } if (yych <= 'N') { if (yych <= '0') { if (yych <= '#') { if (yych <= '\t') { - if (yych <= 0x00) goto yy39; - goto yy46; + if (yych <= 0x00) goto yy34; + goto yy42; } else { - if (yych <= '\n') goto yy36; - if (yych <= '"') goto yy46; - goto yy43; + if (yych <= '\n') goto yy34; + if (yych <= '"') goto yy42; + goto yy39; } } else { if (yych <= '-') { - if (yych <= ',') goto yy46; - goto yy40; + if (yych <= ',') goto yy42; + goto yy36; } else { - if (yych <= '.') goto yy48; - if (yych <= '/') goto yy46; - goto yy51; + if (yych <= '.') goto yy44; + if (yych <= '/') goto yy42; + goto yy47; } } } else { if (yych <= 'E') { if (yych <= ':') { - if (yych <= '9') goto yy48; - goto yy45; + if (yych <= '9') goto yy44; + goto yy41; } else { - if (yych <= 'C') goto yy46; - if (yych <= 'D') goto yy52; - goto yy53; + if (yych <= 'C') goto yy42; + if (yych <= 'D') goto yy48; + goto yy49; } } else { if (yych <= 'H') { - if (yych <= 'F') goto yy54; - goto yy46; + if (yych <= 'F') goto yy50; + goto yy42; } else { - if (yych <= 'I') goto yy42; - if (yych <= 'M') goto yy46; - goto yy55; + if (yych <= 'I') goto yy38; + if (yych <= 'M') goto yy42; + goto yy51; } } } @@ -431,57 +409,55 @@ yyc_NORMAL: if (yych <= 'f') { if (yych <= 'Y') { if (yych <= 'S') { - if (yych <= 'O') goto yy56; - goto yy46; + if (yych <= 'O') goto yy52; + goto yy42; } else { - if (yych <= 'T') goto yy57; - if (yych <= 'X') goto yy46; - goto yy58; + if (yych <= 'T') goto yy53; + if (yych <= 'X') goto yy42; + goto yy54; } } else { if (yych <= 'c') { - if (yych <= 'Z') goto yy59; - goto yy46; + if (yych <= 'Z') goto yy55; + goto yy42; } else { - if (yych <= 'd') goto yy52; - if (yych <= 'e') goto yy53; - goto yy54; + if (yych <= 'd') goto yy48; + if (yych <= 'e') goto yy49; + goto yy50; } } } else { if (yych <= 'o') { if (yych <= 'i') { - if (yych <= 'h') goto yy46; - goto yy42; + if (yych <= 'h') goto yy42; + goto yy38; } else { - if (yych <= 'm') goto yy46; - if (yych <= 'n') goto yy55; - goto yy56; + if (yych <= 'm') goto yy42; + if (yych <= 'n') goto yy51; + goto yy52; } } else { if (yych <= 'x') { - if (yych == 't') goto yy57; - goto yy46; + if (yych == 't') goto yy53; + goto yy42; } else { - if (yych <= 'y') goto yy58; - if (yych <= 'z') goto yy60; - goto yy46; + if (yych <= 'y') goto yy54; + if (yych <= 'z') goto yy56; + goto yy42; } } } } -yy33: - YYDEBUG(33, *YYCURSOR); +yy31: + YYDEBUG(31, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(34, *YYCURSOR); - if (yybm[0+yych] & 2) { - goto yy33; + YYDEBUG(32, *YYCURSOR); + if (yybm[0+yych] & 8) { + goto yy31; } - if (yych <= 0x00) goto yy39; - if (yych == '\n') goto yy36; - YYDEBUG(35, *YYCURSOR); + YYDEBUG(33, *YYCURSOR); yyleng = (size_t) YYCURSOR - (size_t) yytext; #line 149 "sapi/phpdbg/phpdbg_lexer.l" { @@ -489,115 +465,102 @@ yy33: goto restart; } -#line 493 "sapi/phpdbg/phpdbg_lexer.c" -yy36: - YYDEBUG(36, *YYCURSOR); +#line 469 "sapi/phpdbg/phpdbg_lexer.c" +yy34: + YYDEBUG(34, *YYCURSOR); ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(37, *YYCURSOR); - if (yybm[0+yych] & 2) { - goto yy33; - } - if (yych <= 0x00) goto yy39; - if (yych == '\n') goto yy36; -yy38: - YYDEBUG(38, *YYCURSOR); + YYDEBUG(35, *YYCURSOR); yyleng = (size_t) YYCURSOR - (size_t) yytext; #line 70 "sapi/phpdbg/phpdbg_lexer.l" { return 0; } -#line 512 "sapi/phpdbg/phpdbg_lexer.c" -yy39: - YYDEBUG(39, *YYCURSOR); - yych = *++YYCURSOR; - goto yy38; -yy40: - YYDEBUG(40, *YYCURSOR); +#line 479 "sapi/phpdbg/phpdbg_lexer.c" +yy36: + YYDEBUG(36, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yybm[0+yych] & 16) { - goto yy48; + if (yybm[0+yych] & 32) { + goto yy44; } - if (yych == 'r') goto yy117; - goto yy47; -yy41: - YYDEBUG(41, *YYCURSOR); + if (yych == 'r') goto yy113; + goto yy43; +yy37: + YYDEBUG(37, *YYCURSOR); yyleng = (size_t) YYCURSOR - (size_t) yytext; #line 135 "sapi/phpdbg/phpdbg_lexer.l" { phpdbg_init_param(yylval, STR_PARAM); - yylval->str = zend_strndup(yytext, yyleng); + yylval->str = estrndup(yytext, yyleng); yylval->len = yyleng; return T_ID; } -#line 536 "sapi/phpdbg/phpdbg_lexer.c" -yy42: - YYDEBUG(42, *YYCURSOR); +#line 499 "sapi/phpdbg/phpdbg_lexer.c" +yy38: + YYDEBUG(38, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'F') goto yy113; - if (yych == 'f') goto yy113; - goto yy47; -yy43: - YYDEBUG(43, *YYCURSOR); + if (yych == 'F') goto yy109; + if (yych == 'f') goto yy109; + goto yy43; +yy39: + YYDEBUG(39, *YYCURSOR); ++YYCURSOR; - YYDEBUG(44, *YYCURSOR); + YYDEBUG(40, *YYCURSOR); yyleng = (size_t) YYCURSOR - (size_t) yytext; #line 87 "sapi/phpdbg/phpdbg_lexer.l" { return T_POUND; } -#line 553 "sapi/phpdbg/phpdbg_lexer.c" -yy45: - YYDEBUG(45, *YYCURSOR); +#line 516 "sapi/phpdbg/phpdbg_lexer.c" +yy41: + YYDEBUG(41, *YYCURSOR); YYCTXMARKER = YYCURSOR + 1; yych = *++YYCURSOR; - if (yych == ':') goto yy111; - if (yych == '\\') goto yy65; - goto yy109; -yy46: - YYDEBUG(46, *YYCURSOR); + if (yych == ':') goto yy107; + if (yych == '\\') goto yy61; + goto yy105; +yy42: + YYDEBUG(42, *YYCURSOR); yyaccept = 0; YYMARKER = ++YYCURSOR; YYFILL(3); yych = *YYCURSOR; -yy47: - YYDEBUG(47, *YYCURSOR); - if (yybm[0+yych] & 8) { - goto yy46; +yy43: + YYDEBUG(43, *YYCURSOR); + if (yybm[0+yych] & 16) { + goto yy42; } - if (yych <= '9') goto yy41; - goto yy62; -yy48: - YYDEBUG(48, *YYCURSOR); + if (yych <= '9') goto yy37; + goto yy58; +yy44: + YYDEBUG(44, *YYCURSOR); yyaccept = 1; YYMARKER = ++YYCURSOR; YYFILL(3); yych = *YYCURSOR; - YYDEBUG(49, *YYCURSOR); - if (yybm[0+yych] & 16) { - goto yy48; + YYDEBUG(45, *YYCURSOR); + if (yybm[0+yych] & 32) { + goto yy44; } if (yych <= 0x1F) { if (yych <= '\n') { - if (yych <= 0x00) goto yy50; - if (yych <= 0x08) goto yy46; + if (yych <= 0x00) goto yy46; + if (yych <= 0x08) goto yy42; } else { - if (yych != '\r') goto yy46; + if (yych != '\r') goto yy42; } } else { if (yych <= '#') { - if (yych <= ' ') goto yy50; - if (yych <= '"') goto yy46; + if (yych <= ' ') goto yy46; + if (yych <= '"') goto yy42; } else { - if (yych == ':') goto yy62; - goto yy46; + if (yych == ':') goto yy58; + goto yy42; } } -yy50: - YYDEBUG(50, *YYCURSOR); +yy46: + YYDEBUG(46, *YYCURSOR); yyleng = (size_t) YYCURSOR - (size_t) yytext; #line 116 "sapi/phpdbg/phpdbg_lexer.l" { @@ -605,274 +568,279 @@ yy50: yylval->num = atoi(yytext); return T_DIGITS; } -#line 609 "sapi/phpdbg/phpdbg_lexer.c" -yy51: - YYDEBUG(51, *YYCURSOR); +#line 572 "sapi/phpdbg/phpdbg_lexer.c" +yy47: + YYDEBUG(47, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); - if (yybm[0+yych] & 16) { - goto yy48; + if (yybm[0+yych] & 32) { + goto yy44; } if (yych <= 0x1F) { if (yych <= '\n') { - if (yych <= 0x00) goto yy50; - if (yych <= 0x08) goto yy47; - goto yy50; + if (yych <= 0x00) goto yy46; + if (yych <= 0x08) goto yy43; + goto yy46; } else { - if (yych == '\r') goto yy50; - goto yy47; + if (yych == '\r') goto yy46; + goto yy43; } } else { if (yych <= '#') { - if (yych <= ' ') goto yy50; - if (yych <= '"') goto yy47; - goto yy50; + if (yych <= ' ') goto yy46; + if (yych <= '"') goto yy43; + goto yy46; } else { - if (yych == 'x') goto yy105; - goto yy47; + if (yych == 'x') goto yy101; + goto yy43; } } -yy52: - YYDEBUG(52, *YYCURSOR); +yy48: + YYDEBUG(48, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'I') goto yy99; - if (yych == 'i') goto yy99; - goto yy47; -yy53: - YYDEBUG(53, *YYCURSOR); + if (yych == 'I') goto yy95; + if (yych == 'i') goto yy95; + goto yy43; +yy49: + YYDEBUG(49, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'N') goto yy94; - if (yych == 'n') goto yy94; - goto yy47; -yy54: - YYDEBUG(54, *YYCURSOR); + if (yych == 'N') goto yy90; + if (yych == 'n') goto yy90; + goto yy43; +yy50: + YYDEBUG(50, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'A') goto yy91; - if (yych == 'a') goto yy91; - goto yy47; -yy55: - YYDEBUG(55, *YYCURSOR); + if (yych == 'A') goto yy87; + if (yych == 'a') goto yy87; + goto yy43; +yy51: + YYDEBUG(51, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'O') goto yy87; - if (yych == 'o') goto yy87; - goto yy47; -yy56: - YYDEBUG(56, *YYCURSOR); + if (yych == 'O') goto yy83; + if (yych == 'o') goto yy83; + goto yy43; +yy52: + YYDEBUG(52, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'N') { - if (yych == 'F') goto yy86; - if (yych <= 'M') goto yy47; - goto yy80; + if (yych == 'F') goto yy82; + if (yych <= 'M') goto yy43; + goto yy76; } else { if (yych <= 'f') { - if (yych <= 'e') goto yy47; - goto yy86; + if (yych <= 'e') goto yy43; + goto yy82; } else { - if (yych == 'n') goto yy80; - goto yy47; + if (yych == 'n') goto yy76; + goto yy43; } } -yy57: - YYDEBUG(57, *YYCURSOR); +yy53: + YYDEBUG(53, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'R') goto yy84; - if (yych == 'r') goto yy84; - goto yy47; -yy58: - YYDEBUG(58, *YYCURSOR); + if (yych == 'R') goto yy80; + if (yych == 'r') goto yy80; + goto yy43; +yy54: + YYDEBUG(54, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'E') goto yy79; - if (yych == 'e') goto yy79; - goto yy47; -yy59: - YYDEBUG(59, *YYCURSOR); + if (yych == 'E') goto yy75; + if (yych == 'e') goto yy75; + goto yy43; +yy55: + YYDEBUG(55, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'E') goto yy76; - goto yy47; -yy60: - YYDEBUG(60, *YYCURSOR); + if (yych == 'E') goto yy72; + goto yy43; +yy56: + YYDEBUG(56, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych != 'e') goto yy47; - YYDEBUG(61, *YYCURSOR); + if (yych != 'e') goto yy43; + YYDEBUG(57, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'n') goto yy70; - goto yy47; -yy62: - YYDEBUG(62, *YYCURSOR); + if (yych == 'n') goto yy66; + goto yy43; +yy58: + YYDEBUG(58, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '/') goto yy64; - if (yych == '\\') goto yy65; -yy63: - YYDEBUG(63, *YYCURSOR); + if (yych == '/') goto yy60; + if (yych == '\\') goto yy61; +yy59: + YYDEBUG(59, *YYCURSOR); YYCURSOR = YYMARKER; if (yyaccept <= 2) { if (yyaccept <= 1) { if (yyaccept <= 0) { - goto yy41; + goto yy37; } else { - goto yy50; + goto yy46; } } else { - goto yy75; + goto yy71; } } else { if (yyaccept <= 3) { - goto yy108; + goto yy104; } else { - goto yy123; + goto yy119; } } -yy64: - YYDEBUG(64, *YYCURSOR); +yy60: + YYDEBUG(60, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '/') goto yy68; - goto yy63; -yy65: - YYDEBUG(65, *YYCURSOR); + if (yych == '/') goto yy64; + goto yy59; +yy61: + YYDEBUG(61, *YYCURSOR); yyaccept = 0; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(66, *YYCURSOR); + YYDEBUG(62, *YYCURSOR); if (yych <= 0x1F) { if (yych <= '\n') { - if (yych <= 0x00) goto yy41; - if (yych <= 0x08) goto yy65; - goto yy41; + if (yych <= 0x00) goto yy37; + if (yych <= 0x08) goto yy61; + goto yy37; } else { - if (yych == '\r') goto yy41; - goto yy65; + if (yych == '\r') goto yy37; + goto yy61; } } else { if (yych <= '#') { - if (yych <= ' ') goto yy41; - if (yych <= '"') goto yy65; - goto yy41; + if (yych <= ' ') goto yy37; + if (yych <= '"') goto yy61; + goto yy37; } else { - if (yych != ':') goto yy65; + if (yych != ':') goto yy61; } } - YYDEBUG(67, *YYCURSOR); + YYDEBUG(63, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - if (yych == '\\') goto yy65; - goto yy63; -yy68: - YYDEBUG(68, *YYCURSOR); + if (yych == '\\') goto yy61; + goto yy59; +yy64: + YYDEBUG(64, *YYCURSOR); ++YYCURSOR; - YYDEBUG(69, *YYCURSOR); + YYDEBUG(65, *YYCURSOR); yyleng = (size_t) YYCURSOR - (size_t) yytext; #line 97 "sapi/phpdbg/phpdbg_lexer.l" { phpdbg_init_param(yylval, STR_PARAM); - yylval->str = zend_strndup(yytext, yyleng); + yylval->str = estrndup(yytext, yyleng); yylval->len = yyleng; return T_PROTO; } -#line 784 "sapi/phpdbg/phpdbg_lexer.c" -yy70: - YYDEBUG(70, *YYCURSOR); +#line 747 "sapi/phpdbg/phpdbg_lexer.c" +yy66: + YYDEBUG(66, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych != 'd') goto yy47; - YYDEBUG(71, *YYCURSOR); + if (yych != 'd') goto yy43; + YYDEBUG(67, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych != '_') goto yy47; -yy72: - YYDEBUG(72, *YYCURSOR); + if (yych != '_') goto yy43; +yy68: + YYDEBUG(68, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yybm[0+yych] & 32) { - goto yy73; + if (yybm[0+yych] & 64) { + goto yy69; } - goto yy47; -yy73: - YYDEBUG(73, *YYCURSOR); + goto yy43; +yy69: + YYDEBUG(69, *YYCURSOR); yyaccept = 2; YYMARKER = ++YYCURSOR; YYFILL(3); yych = *YYCURSOR; - YYDEBUG(74, *YYCURSOR); - if (yybm[0+yych] & 32) { - goto yy73; + YYDEBUG(70, *YYCURSOR); + if (yybm[0+yych] & 64) { + goto yy69; } if (yych <= 0x1F) { if (yych <= '\n') { - if (yych <= 0x00) goto yy75; - if (yych <= 0x08) goto yy46; + if (yych <= 0x00) goto yy71; + if (yych <= 0x08) goto yy42; } else { - if (yych != '\r') goto yy46; + if (yych != '\r') goto yy42; } } else { if (yych <= '#') { - if (yych <= ' ') goto yy75; - if (yych <= '"') goto yy46; + if (yych <= ' ') goto yy71; + if (yych <= '"') goto yy42; } else { - if (yych == ':') goto yy62; - goto yy46; + if (yych == ':') goto yy58; + goto yy42; } } -yy75: - YYDEBUG(75, *YYCURSOR); +yy71: + YYDEBUG(71, *YYCURSOR); yyleng = (size_t) YYCURSOR - (size_t) yytext; #line 128 "sapi/phpdbg/phpdbg_lexer.l" { phpdbg_init_param(yylval, OP_PARAM); - yylval->str = zend_strndup(yytext, yyleng); + yylval->str = estrndup(yytext, yyleng); yylval->len = yyleng; return T_OPCODE; } -#line 838 "sapi/phpdbg/phpdbg_lexer.c" -yy76: - YYDEBUG(76, *YYCURSOR); +#line 801 "sapi/phpdbg/phpdbg_lexer.c" +yy72: + YYDEBUG(72, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych != 'N') goto yy47; - YYDEBUG(77, *YYCURSOR); + if (yych != 'N') goto yy43; + YYDEBUG(73, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych != 'D') goto yy47; - YYDEBUG(78, *YYCURSOR); + if (yych != 'D') goto yy43; + YYDEBUG(74, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych == '_') goto yy72; - goto yy47; -yy79: - YYDEBUG(79, *YYCURSOR); + if (yych == '_') goto yy68; + goto yy43; +yy75: + YYDEBUG(75, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'S') goto yy80; - if (yych != 's') goto yy47; -yy80: - YYDEBUG(80, *YYCURSOR); + if (yych == 'S') goto yy76; + if (yych != 's') goto yy43; +yy76: + YYDEBUG(76, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yybm[0+yych] & 64) { - goto yy81; + if (yych <= '\f') { + if (yych != '\t') goto yy43; + } else { + if (yych <= '\r') goto yy77; + if (yych != ' ') goto yy43; } - goto yy47; -yy81: - YYDEBUG(81, *YYCURSOR); +yy77: + YYDEBUG(77, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(82, *YYCURSOR); - if (yybm[0+yych] & 64) { - goto yy81; + YYDEBUG(78, *YYCURSOR); + if (yych <= '\f') { + if (yych == '\t') goto yy77; + } else { + if (yych <= '\r') goto yy77; + if (yych == ' ') goto yy77; } - YYDEBUG(83, *YYCURSOR); + YYDEBUG(79, *YYCURSOR); yyleng = (size_t) YYCURSOR - (size_t) yytext; #line 104 "sapi/phpdbg/phpdbg_lexer.l" { @@ -880,52 +848,49 @@ yy81: yylval->num = 1; return T_TRUTHY; } -#line 884 "sapi/phpdbg/phpdbg_lexer.c" -yy84: - YYDEBUG(84, *YYCURSOR); +#line 852 "sapi/phpdbg/phpdbg_lexer.c" +yy80: + YYDEBUG(80, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'U') goto yy85; - if (yych != 'u') goto yy47; -yy85: - YYDEBUG(85, *YYCURSOR); + if (yych == 'U') goto yy81; + if (yych != 'u') goto yy43; +yy81: + YYDEBUG(81, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'E') goto yy80; - if (yych == 'e') goto yy80; - goto yy47; -yy86: - YYDEBUG(86, *YYCURSOR); + if (yych == 'E') goto yy76; + if (yych == 'e') goto yy76; + goto yy43; +yy82: + YYDEBUG(82, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'F') goto yy87; - if (yych != 'f') goto yy47; -yy87: - YYDEBUG(87, *YYCURSOR); + if (yych == 'F') goto yy83; + if (yych != 'f') goto yy43; +yy83: + YYDEBUG(83, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '\f') { - if (yych <= 0x08) goto yy47; - if (yych >= '\v') goto yy47; + if (yych != '\t') goto yy43; } else { - if (yych <= '\r') goto yy88; - if (yych != ' ') goto yy47; + if (yych <= '\r') goto yy84; + if (yych != ' ') goto yy43; } -yy88: - YYDEBUG(88, *YYCURSOR); +yy84: + YYDEBUG(84, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(89, *YYCURSOR); + YYDEBUG(85, *YYCURSOR); if (yych <= '\f') { - if (yych <= 0x08) goto yy90; - if (yych <= '\n') goto yy88; + if (yych == '\t') goto yy84; } else { - if (yych <= '\r') goto yy88; - if (yych == ' ') goto yy88; + if (yych <= '\r') goto yy84; + if (yych == ' ') goto yy84; } -yy90: - YYDEBUG(90, *YYCURSOR); + YYDEBUG(86, *YYCURSOR); yyleng = (size_t) YYCURSOR - (size_t) yytext; #line 110 "sapi/phpdbg/phpdbg_lexer.l" { @@ -933,130 +898,130 @@ yy90: yylval->num = 0; return T_FALSY; } -#line 937 "sapi/phpdbg/phpdbg_lexer.c" +#line 902 "sapi/phpdbg/phpdbg_lexer.c" +yy87: + YYDEBUG(87, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == 'L') goto yy88; + if (yych != 'l') goto yy43; +yy88: + YYDEBUG(88, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == 'S') goto yy89; + if (yych != 's') goto yy43; +yy89: + YYDEBUG(89, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == 'E') goto yy83; + if (yych == 'e') goto yy83; + goto yy43; +yy90: + YYDEBUG(90, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych == 'A') goto yy91; + if (yych != 'a') goto yy43; yy91: YYDEBUG(91, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'L') goto yy92; - if (yych != 'l') goto yy47; + if (yych == 'B') goto yy92; + if (yych != 'b') goto yy43; yy92: YYDEBUG(92, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'S') goto yy93; - if (yych != 's') goto yy47; + if (yych == 'L') goto yy93; + if (yych != 'l') goto yy43; yy93: YYDEBUG(93, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'E') goto yy87; - if (yych == 'e') goto yy87; - goto yy47; + if (yych == 'E') goto yy94; + if (yych != 'e') goto yy43; yy94: YYDEBUG(94, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'A') goto yy95; - if (yych != 'a') goto yy47; + if (yych == 'D') goto yy76; + if (yych == 'd') goto yy76; + goto yy43; yy95: YYDEBUG(95, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'B') goto yy96; - if (yych != 'b') goto yy47; + if (yych == 'S') goto yy96; + if (yych != 's') goto yy43; yy96: YYDEBUG(96, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'L') goto yy97; - if (yych != 'l') goto yy47; + if (yych == 'A') goto yy97; + if (yych != 'a') goto yy43; yy97: YYDEBUG(97, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'E') goto yy98; - if (yych != 'e') goto yy47; + if (yych == 'B') goto yy98; + if (yych != 'b') goto yy43; yy98: YYDEBUG(98, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'D') goto yy80; - if (yych == 'd') goto yy80; - goto yy47; + if (yych == 'L') goto yy99; + if (yych != 'l') goto yy43; yy99: YYDEBUG(99, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'S') goto yy100; - if (yych != 's') goto yy47; + if (yych == 'E') goto yy100; + if (yych != 'e') goto yy43; yy100: YYDEBUG(100, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'A') goto yy101; - if (yych != 'a') goto yy47; + if (yych == 'D') goto yy83; + if (yych == 'd') goto yy83; + goto yy43; yy101: YYDEBUG(101, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'B') goto yy102; - if (yych != 'b') goto yy47; -yy102: - YYDEBUG(102, *YYCURSOR); - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'L') goto yy103; - if (yych != 'l') goto yy47; -yy103: - YYDEBUG(103, *YYCURSOR); - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'E') goto yy104; - if (yych != 'e') goto yy47; -yy104: - YYDEBUG(104, *YYCURSOR); - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'D') goto yy87; - if (yych == 'd') goto yy87; - goto yy47; -yy105: - YYDEBUG(105, *YYCURSOR); - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 128) { - goto yy106; + goto yy102; } - goto yy47; -yy106: - YYDEBUG(106, *YYCURSOR); + goto yy43; +yy102: + YYDEBUG(102, *YYCURSOR); yyaccept = 3; YYMARKER = ++YYCURSOR; YYFILL(3); yych = *YYCURSOR; - YYDEBUG(107, *YYCURSOR); + YYDEBUG(103, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy106; + goto yy102; } if (yych <= 0x1F) { if (yych <= '\n') { - if (yych <= 0x00) goto yy108; - if (yych <= 0x08) goto yy46; + if (yych <= 0x00) goto yy104; + if (yych <= 0x08) goto yy42; } else { - if (yych != '\r') goto yy46; + if (yych != '\r') goto yy42; } } else { if (yych <= '#') { - if (yych <= ' ') goto yy108; - if (yych <= '"') goto yy46; + if (yych <= ' ') goto yy104; + if (yych <= '"') goto yy42; } else { - if (yych == ':') goto yy62; - goto yy46; + if (yych == ':') goto yy58; + goto yy42; } } -yy108: - YYDEBUG(108, *YYCURSOR); +yy104: + YYDEBUG(104, *YYCURSOR); yyleng = (size_t) YYCURSOR - (size_t) yytext; #line 122 "sapi/phpdbg/phpdbg_lexer.l" { @@ -1064,54 +1029,51 @@ yy108: yylval->addr = strtoul(yytext, 0, 16); return T_ADDR; } -#line 1068 "sapi/phpdbg/phpdbg_lexer.c" -yy109: - YYDEBUG(109, *YYCURSOR); +#line 1033 "sapi/phpdbg/phpdbg_lexer.c" +yy105: + YYDEBUG(105, *YYCURSOR); ++YYCURSOR; - YYDEBUG(110, *YYCURSOR); + YYDEBUG(106, *YYCURSOR); YYCURSOR = YYCTXMARKER; yyleng = (size_t) YYCURSOR - (size_t) yytext; #line 93 "sapi/phpdbg/phpdbg_lexer.l" { return T_COLON; } -#line 1079 "sapi/phpdbg/phpdbg_lexer.c" -yy111: - YYDEBUG(111, *YYCURSOR); +#line 1044 "sapi/phpdbg/phpdbg_lexer.c" +yy107: + YYDEBUG(107, *YYCURSOR); ++YYCURSOR; - YYDEBUG(112, *YYCURSOR); + YYDEBUG(108, *YYCURSOR); yyleng = (size_t) YYCURSOR - (size_t) yytext; #line 90 "sapi/phpdbg/phpdbg_lexer.l" { return T_DCOLON; } -#line 1089 "sapi/phpdbg/phpdbg_lexer.c" -yy113: - YYDEBUG(113, *YYCURSOR); +#line 1054 "sapi/phpdbg/phpdbg_lexer.c" +yy109: + YYDEBUG(109, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '\f') { - if (yych <= 0x08) goto yy47; - if (yych >= '\v') goto yy47; + if (yych != '\t') goto yy43; } else { - if (yych <= '\r') goto yy114; - if (yych != ' ') goto yy47; + if (yych <= '\r') goto yy110; + if (yych != ' ') goto yy43; } -yy114: - YYDEBUG(114, *YYCURSOR); +yy110: + YYDEBUG(110, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(115, *YYCURSOR); + YYDEBUG(111, *YYCURSOR); if (yych <= '\f') { - if (yych <= 0x08) goto yy116; - if (yych <= '\n') goto yy114; + if (yych == '\t') goto yy110; } else { - if (yych <= '\r') goto yy114; - if (yych == ' ') goto yy114; + if (yych <= '\r') goto yy110; + if (yych == ' ') goto yy110; } -yy116: - YYDEBUG(116, *YYCURSOR); + YYDEBUG(112, *YYCURSOR); yyleng = (size_t) YYCURSOR - (size_t) yytext; #line 81 "sapi/phpdbg/phpdbg_lexer.l" { @@ -1119,93 +1081,91 @@ yy116: phpdbg_init_param(yylval, EMPTY_PARAM); return T_IF; } -#line 1123 "sapi/phpdbg/phpdbg_lexer.c" -yy117: - YYDEBUG(117, *YYCURSOR); +#line 1085 "sapi/phpdbg/phpdbg_lexer.c" +yy113: + YYDEBUG(113, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= ' ') { if (yych <= '\f') { - if (yych <= 0x08) goto yy47; - if (yych >= '\v') goto yy47; + if (yych != '\t') goto yy43; } else { - if (yych <= '\r') goto yy118; - if (yych <= 0x1F) goto yy47; + if (yych <= '\r') goto yy114; + if (yych <= 0x1F) goto yy43; } } else { if (yych <= '.') { - if (yych <= ',') goto yy47; - if (yych <= '-') goto yy120; - goto yy121; + if (yych <= ',') goto yy43; + if (yych <= '-') goto yy116; + goto yy117; } else { - if (yych <= '/') goto yy47; - if (yych <= '9') goto yy121; - goto yy47; + if (yych <= '/') goto yy43; + if (yych <= '9') goto yy117; + goto yy43; } } -yy118: - YYDEBUG(118, *YYCURSOR); +yy114: + YYDEBUG(114, *YYCURSOR); ++YYCURSOR; YYFILL(2); yych = *YYCURSOR; - YYDEBUG(119, *YYCURSOR); + YYDEBUG(115, *YYCURSOR); if (yych <= ' ') { if (yych <= '\f') { - if (yych <= 0x08) goto yy63; - if (yych <= '\n') goto yy118; - goto yy63; + if (yych == '\t') goto yy114; + goto yy59; } else { - if (yych <= '\r') goto yy118; - if (yych <= 0x1F) goto yy63; - goto yy118; + if (yych <= '\r') goto yy114; + if (yych <= 0x1F) goto yy59; + goto yy114; } } else { if (yych <= '.') { - if (yych <= ',') goto yy63; - if (yych <= '-') goto yy124; - goto yy125; + if (yych <= ',') goto yy59; + if (yych <= '-') goto yy120; + goto yy121; } else { - if (yych <= '/') goto yy63; - if (yych <= '9') goto yy125; - goto yy63; + if (yych <= '/') goto yy59; + if (yych <= '9') goto yy121; + goto yy59; } } -yy120: - YYDEBUG(120, *YYCURSOR); +yy116: + YYDEBUG(116, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych == '.') goto yy121; - if (yych <= '/') goto yy47; - if (yych >= ':') goto yy47; -yy121: - YYDEBUG(121, *YYCURSOR); + if (yych == '.') goto yy117; + if (yych <= '/') goto yy43; + if (yych >= ':') goto yy43; +yy117: + YYDEBUG(117, *YYCURSOR); yyaccept = 4; YYMARKER = ++YYCURSOR; YYFILL(3); yych = *YYCURSOR; - YYDEBUG(122, *YYCURSOR); + YYDEBUG(118, *YYCURSOR); if (yych <= ' ') { if (yych <= '\n') { - if (yych <= 0x00) goto yy123; - if (yych <= 0x08) goto yy46; + if (yych <= 0x00) goto yy119; + if (yych <= 0x08) goto yy42; } else { - if (yych == '\r') goto yy123; - if (yych <= 0x1F) goto yy46; + if (yych == '\r') goto yy119; + if (yych <= 0x1F) goto yy42; } } else { if (yych <= '.') { - if (yych == '#') goto yy123; - if (yych <= '-') goto yy46; - goto yy121; + if (yych == '#') goto yy119; + if (yych <= '-') goto yy42; + goto yy117; } else { - if (yych <= '/') goto yy46; - if (yych <= '9') goto yy121; - if (yych <= ':') goto yy62; - goto yy46; + if (yych <= '/') goto yy42; + if (yych <= '9') goto yy117; + if (yych <= ':') goto yy58; + goto yy42; } } -yy123: - YYDEBUG(123, *YYCURSOR); +yy119: + YYDEBUG(119, *YYCURSOR); yyleng = (size_t) YYCURSOR - (size_t) yytext; #line 74 "sapi/phpdbg/phpdbg_lexer.l" { @@ -1214,36 +1174,36 @@ yy123: yylval->num = atoi(text); return T_REQ_ID; } -#line 1218 "sapi/phpdbg/phpdbg_lexer.c" -yy124: - YYDEBUG(124, *YYCURSOR); +#line 1178 "sapi/phpdbg/phpdbg_lexer.c" +yy120: + YYDEBUG(120, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '.') goto yy125; - if (yych <= '/') goto yy63; - if (yych >= ':') goto yy63; -yy125: - YYDEBUG(125, *YYCURSOR); + if (yych == '.') goto yy121; + if (yych <= '/') goto yy59; + if (yych >= ':') goto yy59; +yy121: + YYDEBUG(121, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(126, *YYCURSOR); - if (yych == '.') goto yy125; - if (yych <= '/') goto yy123; - if (yych <= '9') goto yy125; - goto yy123; + YYDEBUG(122, *YYCURSOR); + if (yych == '.') goto yy121; + if (yych <= '/') goto yy119; + if (yych <= '9') goto yy121; + goto yy119; } /* *********************************** */ yyc_PRE_RAW: { static const unsigned char yybm[] = { 0, 0, 0, 0, 0, 0, 0, 0, - 0, 160, 48, 0, 0, 160, 0, 0, + 0, 64, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 160, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 64, 0, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 0, 0, 0, 0, 0, 0, + 64, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 128, 0, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1269,41 +1229,38 @@ yyc_PRE_RAW: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; - YYDEBUG(127, *YYCURSOR); + YYDEBUG(123, *YYCURSOR); YYFILL(2); yych = *YYCURSOR; - if (yybm[0+yych] & 16) { - goto yy131; - } - if (yych <= '\r') { + if (yych <= '\f') { if (yych <= 0x08) { - if (yych <= 0x00) goto yy134; - goto yy136; + if (yych <= 0x00) goto yy127; + goto yy131; } else { - if (yych <= '\t') goto yy129; - if (yych <= '\f') goto yy136; + if (yych <= '\t') goto yy125; + if (yych <= '\n') goto yy128; + goto yy131; } } else { if (yych <= ' ') { - if (yych <= 0x1F) goto yy136; + if (yych <= '\r') goto yy125; + if (yych <= 0x1F) goto yy131; } else { - if (yych == '-') goto yy135; - goto yy136; + if (yych == '-') goto yy130; + goto yy131; } } -yy129: - YYDEBUG(129, *YYCURSOR); +yy125: + YYDEBUG(125, *YYCURSOR); ++YYCURSOR; if ((yych = *YYCURSOR) <= '\f') { - if (yych <= 0x00) goto yy146; - if (yych <= 0x08) goto yy130; - if (yych <= '\n') goto yy146; + if (yych == '\t') goto yy139; } else { - if (yych <= '\r') goto yy146; - if (yych == ' ') goto yy146; + if (yych <= '\r') goto yy139; + if (yych == ' ') goto yy139; } -yy130: - YYDEBUG(130, *YYCURSOR); +yy126: + YYDEBUG(126, *YYCURSOR); yyleng = (size_t) YYCURSOR - (size_t) yytext; #line 171 "sapi/phpdbg/phpdbg_lexer.l" { @@ -1312,78 +1269,69 @@ yy130: YYCURSOR = LEX(text); goto restart; } -#line 1316 "sapi/phpdbg/phpdbg_lexer.c" -yy131: - YYDEBUG(131, *YYCURSOR); +#line 1273 "sapi/phpdbg/phpdbg_lexer.c" +yy127: + YYDEBUG(127, *YYCURSOR); + yych = *++YYCURSOR; + goto yy126; +yy128: + YYDEBUG(128, *YYCURSOR); ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(132, *YYCURSOR); - if (yybm[0+yych] & 128) { - goto yy145; - } - if (yych <= 0x00) goto yy144; - if (yych == '\n') goto yy131; -yy133: - YYDEBUG(133, *YYCURSOR); + YYDEBUG(129, *YYCURSOR); yyleng = (size_t) YYCURSOR - (size_t) yytext; #line 70 "sapi/phpdbg/phpdbg_lexer.l" { return 0; } -#line 1335 "sapi/phpdbg/phpdbg_lexer.c" -yy134: - YYDEBUG(134, *YYCURSOR); - yych = *++YYCURSOR; - goto yy130; -yy135: - YYDEBUG(135, *YYCURSOR); +#line 1287 "sapi/phpdbg/phpdbg_lexer.c" +yy130: + YYDEBUG(130, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'r') goto yy137; - goto yy130; -yy136: - YYDEBUG(136, *YYCURSOR); + if (yych == 'r') goto yy132; + goto yy126; +yy131: + YYDEBUG(131, *YYCURSOR); yych = *++YYCURSOR; - goto yy130; -yy137: - YYDEBUG(137, *YYCURSOR); + goto yy126; +yy132: + YYDEBUG(132, *YYCURSOR); ++YYCURSOR; YYFILL(2); yych = *YYCURSOR; - YYDEBUG(138, *YYCURSOR); - if (yybm[0+yych] & 32) { - goto yy137; + YYDEBUG(133, *YYCURSOR); + if (yybm[0+yych] & 64) { + goto yy132; } if (yych <= '.') { - if (yych <= ',') goto yy139; - if (yych <= '-') goto yy140; - goto yy141; + if (yych <= ',') goto yy134; + if (yych <= '-') goto yy135; + goto yy136; } else { - if (yych <= '/') goto yy139; - if (yych <= '9') goto yy141; + if (yych <= '/') goto yy134; + if (yych <= '9') goto yy136; } -yy139: - YYDEBUG(139, *YYCURSOR); +yy134: + YYDEBUG(134, *YYCURSOR); YYCURSOR = YYMARKER; - goto yy130; -yy140: - YYDEBUG(140, *YYCURSOR); + goto yy126; +yy135: + YYDEBUG(135, *YYCURSOR); yych = *++YYCURSOR; - if (yybm[0+yych] & 64) { - goto yy141; + if (yybm[0+yych] & 128) { + goto yy136; } - goto yy139; -yy141: - YYDEBUG(141, *YYCURSOR); + goto yy134; +yy136: + YYDEBUG(136, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(142, *YYCURSOR); - if (yybm[0+yych] & 64) { - goto yy141; + YYDEBUG(137, *YYCURSOR); + if (yybm[0+yych] & 128) { + goto yy136; } - YYDEBUG(143, *YYCURSOR); + YYDEBUG(138, *YYCURSOR); yyleng = (size_t) YYCURSOR - (size_t) yytext; #line 74 "sapi/phpdbg/phpdbg_lexer.l" { @@ -1392,24 +1340,20 @@ yy141: yylval->num = atoi(text); return T_REQ_ID; } -#line 1396 "sapi/phpdbg/phpdbg_lexer.c" -yy144: - YYDEBUG(144, *YYCURSOR); - yych = *++YYCURSOR; - goto yy133; -yy145: - YYDEBUG(145, *YYCURSOR); +#line 1344 "sapi/phpdbg/phpdbg_lexer.c" +yy139: + YYDEBUG(139, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy146: - YYDEBUG(146, *YYCURSOR); - if (yybm[0+yych] & 128) { - goto yy145; + YYDEBUG(140, *YYCURSOR); + if (yych <= '\f') { + if (yych == '\t') goto yy139; + } else { + if (yych <= '\r') goto yy139; + if (yych == ' ') goto yy139; } - if (yych <= 0x00) goto yy144; - if (yych == '\n') goto yy131; - YYDEBUG(147, *YYCURSOR); + YYDEBUG(141, *YYCURSOR); yyleng = (size_t) YYCURSOR - (size_t) yytext; #line 149 "sapi/phpdbg/phpdbg_lexer.l" { @@ -1417,17 +1361,17 @@ yy146: goto restart; } -#line 1421 "sapi/phpdbg/phpdbg_lexer.c" +#line 1365 "sapi/phpdbg/phpdbg_lexer.c" } /* *********************************** */ yyc_RAW: { static const unsigned char yybm[] = { 0, 128, 128, 128, 128, 128, 128, 128, - 128, 160, 64, 128, 128, 160, 128, 128, + 128, 192, 0, 128, 128, 192, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 160, 128, 128, 128, 128, 128, 128, 128, + 192, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, @@ -1456,101 +1400,57 @@ yyc_RAW: 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, }; - YYDEBUG(148, *YYCURSOR); + YYDEBUG(142, *YYCURSOR); YYFILL(1); yych = *YYCURSOR; - if (yybm[0+yych] & 32) { - goto yy150; + if (yybm[0+yych] & 64) { + goto yy144; } - if (yych <= 0x00) goto yy156; - if (yych == '\n') goto yy153; - goto yy157; -yy150: - YYDEBUG(150, *YYCURSOR); + if (yych <= 0x00) goto yy147; + if (yych == '\n') goto yy147; + goto yy149; +yy144: + YYDEBUG(144, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(151, *YYCURSOR); - if (yybm[0+yych] & 32) { - goto yy150; + YYDEBUG(145, *YYCURSOR); + if (yybm[0+yych] & 64) { + goto yy144; } - if (yych <= 0x00) goto yy156; - if (yych == '\n') goto yy153; - goto yy157; -yy152: - YYDEBUG(152, *YYCURSOR); + if (yych <= 0x00) goto yy146; + if (yych != '\n') goto yy149; +yy146: + YYDEBUG(146, *YYCURSOR); yyleng = (size_t) YYCURSOR - (size_t) yytext; #line 142 "sapi/phpdbg/phpdbg_lexer.l" { phpdbg_init_param(yylval, STR_PARAM); - yylval->str = zend_strndup(yytext, yyleng); + yylval->str = estrndup(yytext, yyleng); yylval->len = yyleng; return T_INPUT; } -#line 1491 "sapi/phpdbg/phpdbg_lexer.c" -yy153: - YYDEBUG(153, *YYCURSOR); +#line 1434 "sapi/phpdbg/phpdbg_lexer.c" +yy147: + YYDEBUG(147, *YYCURSOR); ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(154, *YYCURSOR); - if (yybm[0+yych] & 64) { - goto yy153; - } - if (yych <= '\f') { - if (yych <= 0x00) goto yy156; - if (yych == '\t') goto yy159; - } else { - if (yych <= '\r') goto yy159; - if (yych == ' ') goto yy159; - } -yy155: - YYDEBUG(155, *YYCURSOR); + YYDEBUG(148, *YYCURSOR); yyleng = (size_t) YYCURSOR - (size_t) yytext; #line 70 "sapi/phpdbg/phpdbg_lexer.l" { return 0; } -#line 1515 "sapi/phpdbg/phpdbg_lexer.c" -yy156: - YYDEBUG(156, *YYCURSOR); - yych = *++YYCURSOR; - goto yy155; -yy157: - YYDEBUG(157, *YYCURSOR); +#line 1444 "sapi/phpdbg/phpdbg_lexer.c" +yy149: + YYDEBUG(149, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(158, *YYCURSOR); + YYDEBUG(150, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy157; + goto yy149; } - goto yy152; -yy159: - YYDEBUG(159, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(160, *YYCURSOR); - if (yybm[0+yych] & 64) { - goto yy153; - } - if (yych <= '\f') { - if (yych <= 0x00) goto yy156; - if (yych == '\t') goto yy159; - } else { - if (yych <= '\r') goto yy159; - if (yych == ' ') goto yy159; - } - YYDEBUG(161, *YYCURSOR); - yyleng = (size_t) YYCURSOR - (size_t) yytext; -#line 149 "sapi/phpdbg/phpdbg_lexer.l" - { - /* ignore whitespace */ - - goto restart; -} -#line 1554 "sapi/phpdbg/phpdbg_lexer.c" + goto yy146; } } #line 185 "sapi/phpdbg/phpdbg_lexer.l" diff --git a/sapi/phpdbg/phpdbg_lexer.l b/sapi/phpdbg/phpdbg_lexer.l index 35ca744400..197773e2c6 100644 --- a/sapi/phpdbg/phpdbg_lexer.l +++ b/sapi/phpdbg/phpdbg_lexer.l @@ -57,7 +57,7 @@ T_SHELL 'sh' T_IF 'if' T_RUN 'run' T_RUN_SHORT "r" -WS [ \r\n\t]+ +WS [ \r\t]+ DIGITS [-]?[0-9\.]+ ID [^ \r\n\t:#\000]+ GENERIC_ID ([^ \r\n\t:#\000]|":\\")+ @@ -67,7 +67,7 @@ INPUT [^\n\000]+ := yyleng = (size_t) YYCURSOR - (size_t) yytext; -<*>{WS}?[\n\000] { +<*>[\n\000] { return 0; } @@ -96,7 +96,7 @@ INPUT [^\n\000]+ {ID}"://" { phpdbg_init_param(yylval, STR_PARAM); - yylval->str = zend_strndup(yytext, yyleng); + yylval->str = estrndup(yytext, yyleng); yylval->len = yyleng; return T_PROTO; } @@ -127,21 +127,21 @@ INPUT [^\n\000]+ {OPCODE} { phpdbg_init_param(yylval, OP_PARAM); - yylval->str = zend_strndup(yytext, yyleng); + yylval->str = estrndup(yytext, yyleng); yylval->len = yyleng; return T_OPCODE; } {GENERIC_ID} { phpdbg_init_param(yylval, STR_PARAM); - yylval->str = zend_strndup(yytext, yyleng); + yylval->str = estrndup(yytext, yyleng); yylval->len = yyleng; return T_ID; } {INPUT} { phpdbg_init_param(yylval, STR_PARAM); - yylval->str = zend_strndup(yytext, yyleng); + yylval->str = estrndup(yytext, yyleng); yylval->len = yyleng; return T_INPUT; } -- 2.40.0