diff options
author | Dmitry Stogov <dmitry@zend.com> | 2014-03-07 01:34:03 +0400 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2014-03-07 01:34:03 +0400 |
commit | 85a5712955b5637b1d33d8c19e27133970e3e2b4 (patch) | |
tree | a50bdb287dcb38c3a27469f3eaa6ba7bac3c4c60 | |
parent | 6b303a6bd6fe336ee96d99f3e8912fe86aa7cf1a (diff) | |
download | php-git-85a5712955b5637b1d33d8c19e27133970e3e2b4.tar.gz |
Fixed __FILE__ and __METHOD__ constants
-rw-r--r-- | Zend/zend_language_scanner.c | 299 | ||||
-rw-r--r-- | Zend/zend_language_scanner.l | 9 |
2 files changed, 155 insertions, 153 deletions
diff --git a/Zend/zend_language_scanner.c b/Zend/zend_language_scanner.c index c873af11de..4c8dc9735d 100644 --- a/Zend/zend_language_scanner.c +++ b/Zend/zend_language_scanner.c @@ -1097,7 +1097,7 @@ yyc_INITIAL: yy3: YYDEBUG(3, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1763 "Zend/zend_language_scanner.l" +#line 1764 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { return 0; @@ -1174,7 +1174,7 @@ yy5: yy6: YYDEBUG(6, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1752 "Zend/zend_language_scanner.l" +#line 1753 "Zend/zend_language_scanner.l" { if (CG(short_tags)) { //??? ZVAL_STRINGL(zendlval, yytext, yyleng); @@ -1192,7 +1192,7 @@ yy7: if ((yych = *YYCURSOR) == '=') goto yy43; YYDEBUG(8, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1731 "Zend/zend_language_scanner.l" +#line 1732 "Zend/zend_language_scanner.l" { if (CG(asp_tags)) { //??? ZVAL_STRINGL(zendlval, yytext, yyleng); @@ -1389,7 +1389,7 @@ yy35: ++YYCURSOR; YYDEBUG(38, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1694 "Zend/zend_language_scanner.l" +#line 1695 "Zend/zend_language_scanner.l" { YYCTYPE *bracket = (YYCTYPE*)zend_memrchr(yytext, '<', yyleng - (sizeof("script language=php>") - 1)); @@ -1432,7 +1432,7 @@ yy43: ++YYCURSOR; YYDEBUG(44, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1711 "Zend/zend_language_scanner.l" +#line 1712 "Zend/zend_language_scanner.l" { if (CG(asp_tags)) { //??? ZVAL_STRINGL(zendlval, yytext, yyleng); @@ -1449,7 +1449,7 @@ yy45: ++YYCURSOR; YYDEBUG(46, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1723 "Zend/zend_language_scanner.l" +#line 1724 "Zend/zend_language_scanner.l" { //??? ZVAL_STRINGL(zendlval, yytext, yyleng); ZVAL_STR(zendlval, STR_EMPTY_ALLOC()); /* tricky way to no copying - intentional */ @@ -1483,7 +1483,7 @@ yy50: yy51: YYDEBUG(51, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1743 "Zend/zend_language_scanner.l" +#line 1744 "Zend/zend_language_scanner.l" { //??? ZVAL_STRINGL(zendlval, yytext, yyleng); ZVAL_STR(zendlval, STR_EMPTY_ALLOC()); /* tricky way, no copying intentional */ @@ -1562,7 +1562,7 @@ yyc_ST_BACKQUOTE: yy56: YYDEBUG(56, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2204 "Zend/zend_language_scanner.l" +#line 2205 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { return 0; @@ -1614,7 +1614,7 @@ yy58: ++YYCURSOR; YYDEBUG(59, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2148 "Zend/zend_language_scanner.l" +#line 2149 "Zend/zend_language_scanner.l" { BEGIN(ST_IN_SCRIPTING); return '`'; @@ -1629,7 +1629,7 @@ yy61: ++YYCURSOR; YYDEBUG(62, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2135 "Zend/zend_language_scanner.l" +#line 2136 "Zend/zend_language_scanner.l" { Z_LVAL_P(zendlval) = (long) '{'; yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); @@ -1652,7 +1652,7 @@ yy63: yy65: YYDEBUG(65, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1842 "Zend/zend_language_scanner.l" +#line 1843 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); return T_VARIABLE; @@ -1682,7 +1682,7 @@ yy70: ++YYCURSOR; YYDEBUG(71, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1835 "Zend/zend_language_scanner.l" +#line 1836 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); yy_push_state(ST_VAR_OFFSET TSRMLS_CC); @@ -1707,7 +1707,7 @@ yy73: ++YYCURSOR; YYDEBUG(74, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1826 "Zend/zend_language_scanner.l" +#line 1827 "Zend/zend_language_scanner.l" { yyless(yyleng - 3); yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC); @@ -1782,7 +1782,7 @@ yy77: yy78: YYDEBUG(78, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2154 "Zend/zend_language_scanner.l" +#line 2155 "Zend/zend_language_scanner.l" { if (GET_DOUBLE_QUOTES_SCANNED_LENGTH()) { YYCURSOR += GET_DOUBLE_QUOTES_SCANNED_LENGTH() - 1; @@ -1842,7 +1842,7 @@ yy80: ++YYCURSOR; YYDEBUG(81, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2143 "Zend/zend_language_scanner.l" +#line 2144 "Zend/zend_language_scanner.l" { BEGIN(ST_IN_SCRIPTING); return '"'; @@ -1857,7 +1857,7 @@ yy83: ++YYCURSOR; YYDEBUG(84, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2135 "Zend/zend_language_scanner.l" +#line 2136 "Zend/zend_language_scanner.l" { Z_LVAL_P(zendlval) = (long) '{'; yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); @@ -1880,7 +1880,7 @@ yy85: yy87: YYDEBUG(87, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1842 "Zend/zend_language_scanner.l" +#line 1843 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); return T_VARIABLE; @@ -1910,7 +1910,7 @@ yy92: ++YYCURSOR; YYDEBUG(93, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1835 "Zend/zend_language_scanner.l" +#line 1836 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); yy_push_state(ST_VAR_OFFSET TSRMLS_CC); @@ -1935,7 +1935,7 @@ yy95: ++YYCURSOR; YYDEBUG(96, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1826 "Zend/zend_language_scanner.l" +#line 1827 "Zend/zend_language_scanner.l" { yyless(yyleng - 3); yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC); @@ -1953,7 +1953,7 @@ yyc_ST_END_HEREDOC: ++YYCURSOR; YYDEBUG(100, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2121 "Zend/zend_language_scanner.l" +#line 2122 "Zend/zend_language_scanner.l" { zend_heredoc_label *heredoc_label = zend_ptr_stack_pop(&SCNG(heredoc_label_stack)); @@ -2028,7 +2028,7 @@ yy103: yy104: YYDEBUG(104, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2246 "Zend/zend_language_scanner.l" +#line 2247 "Zend/zend_language_scanner.l" { int newline = 0; @@ -2116,7 +2116,7 @@ yy107: ++YYCURSOR; YYDEBUG(108, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2135 "Zend/zend_language_scanner.l" +#line 2136 "Zend/zend_language_scanner.l" { Z_LVAL_P(zendlval) = (long) '{'; yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); @@ -2139,7 +2139,7 @@ yy109: yy111: YYDEBUG(111, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1842 "Zend/zend_language_scanner.l" +#line 1843 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); return T_VARIABLE; @@ -2169,7 +2169,7 @@ yy116: ++YYCURSOR; YYDEBUG(117, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1835 "Zend/zend_language_scanner.l" +#line 1836 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); yy_push_state(ST_VAR_OFFSET TSRMLS_CC); @@ -2194,7 +2194,7 @@ yy119: ++YYCURSOR; YYDEBUG(120, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1826 "Zend/zend_language_scanner.l" +#line 1827 "Zend/zend_language_scanner.l" { yyless(yyleng - 3); yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC); @@ -2384,7 +2384,7 @@ yy123: yy124: YYDEBUG(124, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1864 "Zend/zend_language_scanner.l" +#line 1865 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, yytext, yyleng); return T_STRING; @@ -2985,7 +2985,7 @@ yy176: yy177: YYDEBUG(177, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1870 "Zend/zend_language_scanner.l" +#line 1871 "Zend/zend_language_scanner.l" { while (YYCURSOR < YYLIMIT) { switch (*YYCURSOR++) { @@ -3026,7 +3026,7 @@ yy178: yy179: YYDEBUG(179, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1958 "Zend/zend_language_scanner.l" +#line 1959 "Zend/zend_language_scanner.l" { register char *s, *t; char *end; @@ -3099,7 +3099,7 @@ yy180: yy181: YYDEBUG(181, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2025 "Zend/zend_language_scanner.l" +#line 2026 "Zend/zend_language_scanner.l" { int bprefix = (yytext[0] != '"') ? 1 : 0; @@ -3146,7 +3146,7 @@ yy182: ++YYCURSOR; YYDEBUG(183, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2115 "Zend/zend_language_scanner.l" +#line 2116 "Zend/zend_language_scanner.l" { BEGIN(ST_BACKQUOTE); return '`'; @@ -3157,7 +3157,7 @@ yy184: ++YYCURSOR; YYDEBUG(185, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2377 "Zend/zend_language_scanner.l" +#line 2378 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { return 0; @@ -3359,7 +3359,7 @@ yy206: yy207: YYDEBUG(207, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1937 "Zend/zend_language_scanner.l" +#line 1938 "Zend/zend_language_scanner.l" { //??? ZVAL_STRINGL(zendlval, yytext, yyleng); ZVAL_STR(zendlval, STR_EMPTY_ALLOC()); /* tricky way to no copying - intentional */ @@ -3400,7 +3400,7 @@ yy210: yy212: YYDEBUG(212, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1842 "Zend/zend_language_scanner.l" +#line 1843 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); return T_VARIABLE; @@ -3495,7 +3495,7 @@ yy228: yy229: YYDEBUG(229, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1945 "Zend/zend_language_scanner.l" +#line 1946 "Zend/zend_language_scanner.l" { if (CG(asp_tags)) { BEGIN(INITIAL); @@ -3535,7 +3535,7 @@ yy234: yy235: YYDEBUG(235, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1904 "Zend/zend_language_scanner.l" +#line 1905 "Zend/zend_language_scanner.l" { int doc_com; @@ -3842,7 +3842,7 @@ yy275: yy276: YYDEBUG(276, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2067 "Zend/zend_language_scanner.l" +#line 2068 "Zend/zend_language_scanner.l" { char *s; int bprefix = (yytext[0] != '<') ? 1 : 0; @@ -4137,7 +4137,7 @@ yy313: } YYDEBUG(316, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1685 "Zend/zend_language_scanner.l" +#line 1686 "Zend/zend_language_scanner.l" { if (Z_TYPE(CG(current_namespace)) != IS_UNDEF) { ZVAL_DUP(zendlval, &CG(current_namespace)); @@ -4166,7 +4166,7 @@ yy318: } YYDEBUG(321, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1660 "Zend/zend_language_scanner.l" +#line 1661 "Zend/zend_language_scanner.l" { zend_string *filename = zend_get_compiled_filename(TSRMLS_C); zend_string *dirname; @@ -4216,7 +4216,7 @@ yy324: } YYDEBUG(327, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1645 "Zend/zend_language_scanner.l" +#line 1646 "Zend/zend_language_scanner.l" { ZVAL_LONG(zendlval, CG(zend_lineno)); return T_LINE; @@ -4259,12 +4259,13 @@ yy332: #line 1614 "Zend/zend_language_scanner.l" { if (CG(active_class_entry)) { - int len = 2; + int len = 0; if (CG(active_class_entry)->name) { len += CG(active_class_entry)->name->len; } if (CG(active_op_array) && CG(active_op_array)->function_name) { + len += sizeof("::")-1; len += CG(active_op_array)->function_name->len; } ZVAL_STR(zendlval, STR_ALLOC(len, 0)); @@ -4273,9 +4274,9 @@ yy332: memcpy(Z_STRVAL_P(zendlval), CG(active_class_entry)->name->val, CG(active_class_entry)->name->len); len += CG(active_class_entry)->name->len; } - memcpy(Z_STRVAL_P(zendlval) + len, "::", sizeof("::")-1); - len += sizeof("::")-1; if (CG(active_op_array) && CG(active_op_array)->function_name) { + memcpy(Z_STRVAL_P(zendlval) + len, "::", sizeof("::")-1); + len += sizeof("::")-1; memcpy(Z_STRVAL_P(zendlval) + len, CG(active_op_array)->function_name->val, CG(active_op_array)->function_name->len); len += CG(active_op_array)->function_name->len; } @@ -4287,7 +4288,7 @@ yy332: } return T_METHOD_C; } -#line 4291 "Zend/zend_language_scanner.c" +#line 4292 "Zend/zend_language_scanner.c" yy336: YYDEBUG(336, *YYCURSOR); yych = *++YYCURSOR; @@ -4348,7 +4349,7 @@ yy343: } return T_FUNC_C; } -#line 4352 "Zend/zend_language_scanner.c" +#line 4353 "Zend/zend_language_scanner.c" yy347: YYDEBUG(347, *YYCURSOR); yych = *++YYCURSOR; @@ -4368,17 +4369,17 @@ yy348: } YYDEBUG(351, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1650 "Zend/zend_language_scanner.l" +#line 1651 "Zend/zend_language_scanner.l" { zend_string *filename = zend_get_compiled_filename(TSRMLS_C); if (!filename) { filename = STR_EMPTY_ALLOC(); } - ZVAL_STR(zendlval, filename); + ZVAL_STR(zendlval, STR_COPY(filename)); return T_FILE; } -#line 4382 "Zend/zend_language_scanner.c" +#line 4383 "Zend/zend_language_scanner.c" yy352: YYDEBUG(352, *YYCURSOR); yych = *++YYCURSOR; @@ -4418,7 +4419,7 @@ yy355: } return T_TRAIT_C; } -#line 4422 "Zend/zend_language_scanner.c" +#line 4423 "Zend/zend_language_scanner.c" yy359: YYDEBUG(359, *YYCURSOR); yych = *++YYCURSOR; @@ -4465,7 +4466,7 @@ yy362: } return T_CLASS_C; } -#line 4469 "Zend/zend_language_scanner.c" +#line 4470 "Zend/zend_language_scanner.c" yy366: YYDEBUG(366, *YYCURSOR); yych = *++YYCURSOR; @@ -4531,7 +4532,7 @@ yy377: { return T_HALT_COMPILER; } -#line 4535 "Zend/zend_language_scanner.c" +#line 4536 "Zend/zend_language_scanner.c" yy379: YYDEBUG(379, *YYCURSOR); yych = *++YYCURSOR; @@ -4555,7 +4556,7 @@ yy381: { return T_USE; } -#line 4559 "Zend/zend_language_scanner.c" +#line 4560 "Zend/zend_language_scanner.c" yy383: YYDEBUG(383, *YYCURSOR); yych = *++YYCURSOR; @@ -4578,7 +4579,7 @@ yy385: { return T_UNSET; } -#line 4582 "Zend/zend_language_scanner.c" +#line 4583 "Zend/zend_language_scanner.c" yy387: YYDEBUG(387, *YYCURSOR); ++YYCURSOR; @@ -4754,7 +4755,7 @@ yy402: { return T_INT_CAST; } -#line 4758 "Zend/zend_language_scanner.c" +#line 4759 "Zend/zend_language_scanner.c" yy405: YYDEBUG(405, *YYCURSOR); yych = *++YYCURSOR; @@ -4802,7 +4803,7 @@ yy410: { return T_DOUBLE_CAST; } -#line 4806 "Zend/zend_language_scanner.c" +#line 4807 "Zend/zend_language_scanner.c" yy414: YYDEBUG(414, *YYCURSOR); yych = *++YYCURSOR; @@ -4876,7 +4877,7 @@ yy424: { return T_STRING_CAST; } -#line 4880 "Zend/zend_language_scanner.c" +#line 4881 "Zend/zend_language_scanner.c" yy428: YYDEBUG(428, *YYCURSOR); yych = *++YYCURSOR; @@ -4913,7 +4914,7 @@ yy431: { return T_ARRAY_CAST; } -#line 4917 "Zend/zend_language_scanner.c" +#line 4918 "Zend/zend_language_scanner.c" yy435: YYDEBUG(435, *YYCURSOR); yych = *++YYCURSOR; @@ -4955,7 +4956,7 @@ yy439: { return T_OBJECT_CAST; } -#line 4959 "Zend/zend_language_scanner.c" +#line 4960 "Zend/zend_language_scanner.c" yy443: YYDEBUG(443, *YYCURSOR); yych = *++YYCURSOR; @@ -5000,7 +5001,7 @@ yy448: { return T_BOOL_CAST; } -#line 5004 "Zend/zend_language_scanner.c" +#line 5005 "Zend/zend_language_scanner.c" yy451: YYDEBUG(451, *YYCURSOR); yych = *++YYCURSOR; @@ -5064,7 +5065,7 @@ yy459: { return T_UNSET_CAST; } -#line 5068 "Zend/zend_language_scanner.c" +#line 5069 "Zend/zend_language_scanner.c" yy463: YYDEBUG(463, *YYCURSOR); yych = *++YYCURSOR; @@ -5082,7 +5083,7 @@ yy464: { return T_VAR; } -#line 5086 "Zend/zend_language_scanner.c" +#line 5087 "Zend/zend_language_scanner.c" yy466: YYDEBUG(466, *YYCURSOR); yych = *++YYCURSOR; @@ -5106,7 +5107,7 @@ yy468: { return T_NEW; } -#line 5110 "Zend/zend_language_scanner.c" +#line 5111 "Zend/zend_language_scanner.c" yy470: YYDEBUG(470, *YYCURSOR); yych = *++YYCURSOR; @@ -5149,7 +5150,7 @@ yy476: { return T_NAMESPACE; } -#line 5153 "Zend/zend_language_scanner.c" +#line 5154 "Zend/zend_language_scanner.c" yy478: YYDEBUG(478, *YYCURSOR); yyaccept = 3; @@ -5175,7 +5176,7 @@ yy480: { return T_CONCAT_EQUAL; } -#line 5179 "Zend/zend_language_scanner.c" +#line 5180 "Zend/zend_language_scanner.c" yy482: YYDEBUG(482, *YYCURSOR); yych = *++YYCURSOR; @@ -5188,7 +5189,7 @@ yy482: { return T_ELLIPSIS; } -#line 5192 "Zend/zend_language_scanner.c" +#line 5193 "Zend/zend_language_scanner.c" yy485: YYDEBUG(485, *YYCURSOR); ++YYCURSOR; @@ -5198,7 +5199,7 @@ yy485: { return T_PAAMAYIM_NEKUDOTAYIM; } -#line 5202 "Zend/zend_language_scanner.c" +#line 5203 "Zend/zend_language_scanner.c" yy487: YYDEBUG(487, *YYCURSOR); ++YYCURSOR; @@ -5224,7 +5225,7 @@ yy489: { return T_MINUS_EQUAL; } -#line 5228 "Zend/zend_language_scanner.c" +#line 5229 "Zend/zend_language_scanner.c" yy491: YYDEBUG(491, *YYCURSOR); ++YYCURSOR; @@ -5234,7 +5235,7 @@ yy491: { return T_DEC; } -#line 5238 "Zend/zend_language_scanner.c" +#line 5239 "Zend/zend_language_scanner.c" yy493: YYDEBUG(493, *YYCURSOR); ++YYCURSOR; @@ -5245,7 +5246,7 @@ yy493: yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC); return T_OBJECT_OPERATOR; } -#line 5249 "Zend/zend_language_scanner.c" +#line 5250 "Zend/zend_language_scanner.c" yy495: YYDEBUG(495, *YYCURSOR); yych = *++YYCURSOR; @@ -5294,7 +5295,7 @@ yy500: { return T_PUBLIC; } -#line 5298 "Zend/zend_language_scanner.c" +#line 5299 "Zend/zend_language_scanner.c" yy502: YYDEBUG(502, *YYCURSOR); yych = *++YYCURSOR; @@ -5353,7 +5354,7 @@ yy509: { return T_PROTECTED; } -#line 5357 "Zend/zend_language_scanner.c" +#line 5358 "Zend/zend_language_scanner.c" yy511: YYDEBUG(511, *YYCURSOR); yych = *++YYCURSOR; @@ -5387,7 +5388,7 @@ yy515: { return T_PRIVATE; } -#line 5391 "Zend/zend_language_scanner.c" +#line 5392 "Zend/zend_language_scanner.c" yy517: YYDEBUG(517, *YYCURSOR); ++YYCURSOR; @@ -5400,7 +5401,7 @@ yy517: { return T_PRINT; } -#line 5404 "Zend/zend_language_scanner.c" +#line 5405 "Zend/zend_language_scanner.c" yy519: YYDEBUG(519, *YYCURSOR); yych = *++YYCURSOR; @@ -5429,7 +5430,7 @@ yy522: { return T_GOTO; } -#line 5433 "Zend/zend_language_scanner.c" +#line 5434 "Zend/zend_language_scanner.c" yy524: YYDEBUG(524, *YYCURSOR); yych = *++YYCURSOR; @@ -5457,7 +5458,7 @@ yy527: { return T_GLOBAL; } -#line 5461 "Zend/zend_language_scanner.c" +#line 5462 "Zend/zend_language_scanner.c" yy529: YYDEBUG(529, *YYCURSOR); yych = *++YYCURSOR; @@ -5498,7 +5499,7 @@ yy535: { return T_BREAK; } -#line 5502 "Zend/zend_language_scanner.c" +#line 5503 "Zend/zend_language_scanner.c" yy537: YYDEBUG(537, *YYCURSOR); yych = *++YYCURSOR; @@ -5542,7 +5543,7 @@ yy543: { return T_SWITCH; } -#line 5546 "Zend/zend_language_scanner.c" +#line 5547 "Zend/zend_language_scanner.c" yy545: YYDEBUG(545, *YYCURSOR); yych = *++YYCURSOR; @@ -5570,7 +5571,7 @@ yy548: { return T_STATIC; } -#line 5574 "Zend/zend_language_scanner.c" +#line 5575 "Zend/zend_language_scanner.c" yy550: YYDEBUG(550, *YYCURSOR); yych = *++YYCURSOR; @@ -5601,7 +5602,7 @@ yy553: { return T_AS; } -#line 5605 "Zend/zend_language_scanner.c" +#line 5606 "Zend/zend_language_scanner.c" yy555: YYDEBUG(555, *YYCURSOR); yych = *++YYCURSOR; @@ -5624,7 +5625,7 @@ yy557: { return T_ARRAY; } -#line 5628 "Zend/zend_language_scanner.c" +#line 5629 "Zend/zend_language_scanner.c" yy559: YYDEBUG(559, *YYCURSOR); ++YYCURSOR; @@ -5637,7 +5638,7 @@ yy559: { return T_LOGICAL_AND; } -#line 5641 "Zend/zend_language_scanner.c" +#line 5642 "Zend/zend_language_scanner.c" yy561: YYDEBUG(561, *YYCURSOR); yych = *++YYCURSOR; @@ -5675,7 +5676,7 @@ yy566: { return T_ABSTRACT; } -#line 5679 "Zend/zend_language_scanner.c" +#line 5680 "Zend/zend_language_scanner.c" yy568: YYDEBUG(568, *YYCURSOR); yych = *++YYCURSOR; @@ -5703,7 +5704,7 @@ yy571: { return T_WHILE; } -#line 5707 "Zend/zend_language_scanner.c" +#line 5708 "Zend/zend_language_scanner.c" yy573: YYDEBUG(573, *YYCURSOR); ++YYCURSOR; @@ -5716,7 +5717,7 @@ yy573: { return T_IF; } -#line 5720 "Zend/zend_language_scanner.c" +#line 5721 "Zend/zend_language_scanner.c" yy575: YYDEBUG(575, *YYCURSOR); yych = *++YYCURSOR; @@ -5772,7 +5773,7 @@ yy580: { return T_ISSET; } -#line 5776 "Zend/zend_language_scanner.c" +#line 5777 "Zend/zend_language_scanner.c" yy582: YYDEBUG(582, *YYCURSOR); yych = *++YYCURSOR; @@ -5830,7 +5831,7 @@ yy589: { return T_INCLUDE; } -#line 5834 "Zend/zend_language_scanner.c" +#line 5835 "Zend/zend_language_scanner.c" yy590: YYDEBUG(590, *YYCURSOR); yych = *++YYCURSOR; @@ -5863,7 +5864,7 @@ yy594: { return T_INCLUDE_ONCE; } -#line 5867 "Zend/zend_language_scanner.c" +#line 5868 "Zend/zend_language_scanner.c" yy596: YYDEBUG(596, *YYCURSOR); yych = *++YYCURSOR; @@ -5901,7 +5902,7 @@ yy601: { return T_INTERFACE; } -#line 5905 "Zend/zend_language_scanner.c" +#line 5906 "Zend/zend_language_scanner.c" yy603: YYDEBUG(603, *YYCURSOR); yych = *++YYCURSOR; @@ -5955,7 +5956,7 @@ yy609: { return T_INSTEADOF; } -#line 5959 "Zend/zend_language_scanner.c" +#line 5960 "Zend/zend_language_scanner.c" yy611: YYDEBUG(611, *YYCURSOR); yych = *++YYCURSOR; @@ -5988,7 +5989,7 @@ yy615: { return T_INSTANCEOF; } -#line 5992 "Zend/zend_language_scanner.c" +#line 5993 "Zend/zend_language_scanner.c" yy617: YYDEBUG(617, *YYCURSOR); yych = *++YYCURSOR; @@ -6036,7 +6037,7 @@ yy624: { return T_IMPLEMENTS; } -#line 6040 "Zend/zend_language_scanner.c" +#line 6041 "Zend/zend_language_scanner.c" yy626: YYDEBUG(626, *YYCURSOR); yych = *++YYCURSOR; @@ -6068,7 +6069,7 @@ yy627: { return T_TRY; } -#line 6072 "Zend/zend_language_scanner.c" +#line 6073 "Zend/zend_language_scanner.c" yy630: YYDEBUG(630, *YYCURSOR); yych = *++YYCURSOR; @@ -6091,7 +6092,7 @@ yy632: { return T_TRAIT; } -#line 6095 "Zend/zend_language_scanner.c" +#line 6096 "Zend/zend_language_scanner.c" yy634: YYDEBUG(634, *YYCURSOR); yych = *++YYCURSOR; @@ -6114,7 +6115,7 @@ yy636: { return T_THROW; } -#line 6118 "Zend/zend_language_scanner.c" +#line 6119 "Zend/zend_language_scanner.c" yy638: YYDEBUG(638, *YYCURSOR); yych = *++YYCURSOR; @@ -6142,7 +6143,7 @@ yy641: { return T_YIELD; } -#line 6146 "Zend/zend_language_scanner.c" +#line 6147 "Zend/zend_language_scanner.c" yy643: YYDEBUG(643, *YYCURSOR); yych = *++YYCURSOR; @@ -6207,7 +6208,7 @@ yy650: { return T_REQUIRE; } -#line 6211 "Zend/zend_language_scanner.c" +#line 6212 "Zend/zend_language_scanner.c" yy651: YYDEBUG(651, *YYCURSOR); yych = *++YYCURSOR; @@ -6240,7 +6241,7 @@ yy655: { return T_REQUIRE_ONCE; } -#line 6244 "Zend/zend_language_scanner.c" +#line 6245 "Zend/zend_language_scanner.c" yy657: YYDEBUG(657, *YYCURSOR); yych = *++YYCURSOR; @@ -6263,7 +6264,7 @@ yy659: { return T_RETURN; } -#line 6267 "Zend/zend_language_scanner.c" +#line 6268 "Zend/zend_language_scanner.c" yy661: YYDEBUG(661, *YYCURSOR); yych = *++YYCURSOR; @@ -6357,7 +6358,7 @@ yy670: { return T_CONTINUE; } -#line 6361 "Zend/zend_language_scanner.c" +#line 6362 "Zend/zend_language_scanner.c" yy672: YYDEBUG(672, *YYCURSOR); ++YYCURSOR; @@ -6370,7 +6371,7 @@ yy672: { return T_CONST; } -#line 6374 "Zend/zend_language_scanner.c" +#line 6375 "Zend/zend_language_scanner.c" yy674: YYDEBUG(674, *YYCURSOR); yych = *++YYCURSOR; @@ -6399,7 +6400,7 @@ yy677: { return T_CLONE; } -#line 6403 "Zend/zend_language_scanner.c" +#line 6404 "Zend/zend_language_scanner.c" yy679: YYDEBUG(679, *YYCURSOR); yych = *++YYCURSOR; @@ -6417,7 +6418,7 @@ yy680: { return T_CLASS; } -#line 6421 "Zend/zend_language_scanner.c" +#line 6422 "Zend/zend_language_scanner.c" yy682: YYDEBUG(682, *YYCURSOR); yych = *++YYCURSOR; @@ -6467,7 +6468,7 @@ yy689: { return T_CALLABLE; } -#line 6471 "Zend/zend_language_scanner.c" +#line 6472 "Zend/zend_language_scanner.c" yy691: YYDEBUG(691, *YYCURSOR); ++YYCURSOR; @@ -6480,7 +6481,7 @@ yy691: { return T_CASE; } -#line 6484 "Zend/zend_language_scanner.c" +#line 6485 "Zend/zend_language_scanner.c" yy693: YYDEBUG(693, *YYCURSOR); yych = *++YYCURSOR; @@ -6498,7 +6499,7 @@ yy694: { return T_CATCH; } -#line 6502 "Zend/zend_language_scanner.c" +#line 6503 "Zend/zend_language_scanner.c" yy696: YYDEBUG(696, *YYCURSOR); yych = *++YYCURSOR; @@ -6553,7 +6554,7 @@ yy704: { return T_FUNCTION; } -#line 6557 "Zend/zend_language_scanner.c" +#line 6558 "Zend/zend_language_scanner.c" yy706: YYDEBUG(706, *YYCURSOR); ++YYCURSOR; @@ -6581,7 +6582,7 @@ yy707: { return T_FOR; } -#line 6585 "Zend/zend_language_scanner.c" +#line 6586 "Zend/zend_language_scanner.c" yy708: YYDEBUG(708, *YYCURSOR); yych = *++YYCURSOR; @@ -6609,7 +6610,7 @@ yy711: { return T_FOREACH; } -#line 6613 "Zend/zend_language_scanner.c" +#line 6614 "Zend/zend_language_scanner.c" yy713: YYDEBUG(713, *YYCURSOR); yych = *++YYCURSOR; @@ -6647,7 +6648,7 @@ yy716: { return T_FINAL; } -#line 6651 "Zend/zend_language_scanner.c" +#line 6652 "Zend/zend_language_scanner.c" yy717: YYDEBUG(717, *YYCURSOR); yych = *++YYCURSOR; @@ -6665,7 +6666,7 @@ yy718: { return T_FINALLY; } -#line 6669 "Zend/zend_language_scanner.c" +#line 6670 "Zend/zend_language_scanner.c" yy720: YYDEBUG(720, *YYCURSOR); yych = *++YYCURSOR; @@ -6700,7 +6701,7 @@ yy722: { return T_DO; } -#line 6704 "Zend/zend_language_scanner.c" +#line 6705 "Zend/zend_language_scanner.c" yy724: YYDEBUG(724, *YYCURSOR); ++YYCURSOR; @@ -6713,7 +6714,7 @@ yy724: { return T_EXIT; } -#line 6717 "Zend/zend_language_scanner.c" +#line 6718 "Zend/zend_language_scanner.c" yy726: YYDEBUG(726, *YYCURSOR); yych = *++YYCURSOR; @@ -6752,7 +6753,7 @@ yy731: { return T_DEFAULT; } -#line 6756 "Zend/zend_language_scanner.c" +#line 6757 "Zend/zend_language_scanner.c" yy733: YYDEBUG(733, *YYCURSOR); yych = *++YYCURSOR; @@ -6780,7 +6781,7 @@ yy736: { return T_DECLARE; } -#line 6784 "Zend/zend_language_scanner.c" +#line 6785 "Zend/zend_language_scanner.c" yy738: YYDEBUG(738, *YYCURSOR); yych = *++YYCURSOR; @@ -6864,7 +6865,7 @@ yy749: { return T_EXTENDS; } -#line 6868 "Zend/zend_language_scanner.c" +#line 6869 "Zend/zend_language_scanner.c" yy751: YYDEBUG(751, *YYCURSOR); ++YYCURSOR; @@ -6877,7 +6878,7 @@ yy751: { return T_EXIT; } -#line 6881 "Zend/zend_language_scanner.c" +#line 6882 "Zend/zend_language_scanner.c" yy753: YYDEBUG(753, *YYCURSOR); yych = *++YYCURSOR; @@ -6895,7 +6896,7 @@ yy754: { return T_EVAL; } -#line 6899 "Zend/zend_language_scanner.c" +#line 6900 "Zend/zend_language_scanner.c" yy756: YYDEBUG(756, *YYCURSOR); yych = *++YYCURSOR; @@ -6969,7 +6970,7 @@ yy765: { return T_ENDWHILE; } -#line 6973 "Zend/zend_language_scanner.c" +#line 6974 "Zend/zend_language_scanner.c" yy767: YYDEBUG(767, *YYCURSOR); yych = *++YYCURSOR; @@ -7002,7 +7003,7 @@ yy771: { return T_ENDSWITCH; } -#line 7006 "Zend/zend_language_scanner.c" +#line 7007 "Zend/zend_language_scanner.c" yy773: YYDEBUG(773, *YYCURSOR); ++YYCURSOR; @@ -7015,7 +7016,7 @@ yy773: { return T_ENDIF; } -#line 7019 "Zend/zend_language_scanner.c" +#line 7020 "Zend/zend_language_scanner.c" yy775: YYDEBUG(775, *YYCURSOR); yych = *++YYCURSOR; @@ -7048,7 +7049,7 @@ yy777: { return T_ENDFOR; } -#line 7052 "Zend/zend_language_scanner.c" +#line 7053 "Zend/zend_language_scanner.c" yy778: YYDEBUG(778, *YYCURSOR); yych = *++YYCURSOR; @@ -7076,7 +7077,7 @@ yy781: { return T_ENDFOREACH; } -#line 7080 "Zend/zend_language_scanner.c" +#line 7081 "Zend/zend_language_scanner.c" yy783: YYDEBUG(783, *YYCURSOR); yych = *++YYCURSOR; @@ -7114,7 +7115,7 @@ yy788: { return T_ENDDECLARE; } -#line 7118 "Zend/zend_language_scanner.c" +#line 7119 "Zend/zend_language_scanner.c" yy790: YYDEBUG(790, *YYCURSOR); yych = *++YYCURSOR; @@ -7137,7 +7138,7 @@ yy792: { return T_EMPTY; } -#line 7141 "Zend/zend_language_scanner.c" +#line 7142 "Zend/zend_language_scanner.c" yy794: YYDEBUG(794, *YYCURSOR); yych = *++YYCURSOR; @@ -7170,7 +7171,7 @@ yy796: { return T_ELSE; } -#line 7174 "Zend/zend_language_scanner.c" +#line 7175 "Zend/zend_language_scanner.c" yy797: YYDEBUG(797, *YYCURSOR); yych = *++YYCURSOR; @@ -7188,7 +7189,7 @@ yy798: { return T_ELSEIF; } -#line 7192 "Zend/zend_language_scanner.c" +#line 7193 "Zend/zend_language_scanner.c" yy800: YYDEBUG(800, *YYCURSOR); yych = *++YYCURSOR; @@ -7206,7 +7207,7 @@ yy801: { return T_ECHO; } -#line 7210 "Zend/zend_language_scanner.c" +#line 7211 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_LOOKING_FOR_PROPERTY: @@ -7286,7 +7287,7 @@ yy806: HANDLE_NEWLINES(yytext, yyleng); return T_WHITESPACE; } -#line 7290 "Zend/zend_language_scanner.c" +#line 7291 "Zend/zend_language_scanner.c" yy807: YYDEBUG(807, *YYCURSOR); ++YYCURSOR; @@ -7300,7 +7301,7 @@ yy808: yy_pop_state(TSRMLS_C); goto restart; } -#line 7304 "Zend/zend_language_scanner.c" +#line 7305 "Zend/zend_language_scanner.c" yy809: YYDEBUG(809, *YYCURSOR); ++YYCURSOR; @@ -7315,7 +7316,7 @@ yy810: zend_copy_value(zendlval, yytext, yyleng); return T_STRING; } -#line 7319 "Zend/zend_language_scanner.c" +#line 7320 "Zend/zend_language_scanner.c" yy811: YYDEBUG(811, *YYCURSOR); yych = *++YYCURSOR; @@ -7340,7 +7341,7 @@ yy814: { return T_OBJECT_OPERATOR; } -#line 7344 "Zend/zend_language_scanner.c" +#line 7345 "Zend/zend_language_scanner.c" yy816: YYDEBUG(816, *YYCURSOR); ++YYCURSOR; @@ -7432,7 +7433,7 @@ yy821: yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); goto restart; } -#line 7436 "Zend/zend_language_scanner.c" +#line 7437 "Zend/zend_language_scanner.c" yy822: YYDEBUG(822, *YYCURSOR); yych = *++YYCURSOR; @@ -7465,7 +7466,7 @@ yy826: yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); return T_STRING_VARNAME; } -#line 7469 "Zend/zend_language_scanner.c" +#line 7470 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_NOWDOC: @@ -7476,7 +7477,7 @@ yyc_ST_NOWDOC: ++YYCURSOR; YYDEBUG(831, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2320 "Zend/zend_language_scanner.l" +#line 2321 "Zend/zend_language_scanner.l" { int newline = 0; @@ -7532,7 +7533,7 @@ nowdoc_scan_done: HANDLE_NEWLINES(yytext, yyleng - newline); return T_ENCAPSED_AND_WHITESPACE; } -#line 7536 "Zend/zend_language_scanner.c" +#line 7537 "Zend/zend_language_scanner.c" /* *********************************** */ yyc_ST_VAR_OFFSET: { @@ -7648,7 +7649,7 @@ yy835: } return T_NUM_STRING; } -#line 7652 "Zend/zend_language_scanner.c" +#line 7653 "Zend/zend_language_scanner.c" yy836: YYDEBUG(836, *YYCURSOR); yych = *++YYCURSOR; @@ -7668,23 +7669,23 @@ yy837: yy838: YYDEBUG(838, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1852 "Zend/zend_language_scanner.l" +#line 1853 "Zend/zend_language_scanner.l" { /* Only '[' can be valid, but returning other tokens will allow a more explicit parse error */ return yytext[0]; } -#line 7677 "Zend/zend_language_scanner.c" +#line 7678 "Zend/zend_language_scanner.c" yy839: YYDEBUG(839, *YYCURSOR); ++YYCURSOR; YYDEBUG(840, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1847 "Zend/zend_language_scanner.l" +#line 1848 "Zend/zend_language_scanner.l" { yy_pop_state(TSRMLS_C); return ']'; } -#line 7688 "Zend/zend_language_scanner.c" +#line 7689 "Zend/zend_language_scanner.c" yy841: YYDEBUG(841, *YYCURSOR); yych = *++YYCURSOR; @@ -7694,14 +7695,14 @@ yy842: ++YYCURSOR; YYDEBUG(843, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1857 "Zend/zend_language_scanner.l" +#line 1858 "Zend/zend_language_scanner.l" { /* Invalid rule to return a more explicit parse error with proper line number */ yyless(0); yy_pop_state(TSRMLS_C); return T_ENCAPSED_AND_WHITESPACE; } -#line 7705 "Zend/zend_language_scanner.c" +#line 7706 "Zend/zend_language_scanner.c" yy844: YYDEBUG(844, *YYCURSOR); ++YYCURSOR; @@ -7710,18 +7711,18 @@ yy844: yy845: YYDEBUG(845, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1864 "Zend/zend_language_scanner.l" +#line 1865 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, yytext, yyleng); return T_STRING; } -#line 7719 "Zend/zend_language_scanner.c" +#line 7720 "Zend/zend_language_scanner.c" yy846: YYDEBUG(846, *YYCURSOR); ++YYCURSOR; YYDEBUG(847, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2377 "Zend/zend_language_scanner.l" +#line 2378 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { return 0; @@ -7730,7 +7731,7 @@ yy846: zend_error(E_COMPILE_WARNING,"Unexpected character in input: '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE); goto restart; } -#line 7734 "Zend/zend_language_scanner.c" +#line 7735 "Zend/zend_language_scanner.c" yy848: YYDEBUG(848, *YYCURSOR); ++YYCURSOR; @@ -7766,12 +7767,12 @@ yy850: yy852: YYDEBUG(852, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1842 "Zend/zend_language_scanner.l" +#line 1843 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); return T_VARIABLE; } -#line 7775 "Zend/zend_language_scanner.c" +#line 7776 "Zend/zend_language_scanner.c" yy853: YYDEBUG(853, *YYCURSOR); ++YYCURSOR; @@ -7816,7 +7817,7 @@ yy860: ZVAL_STRINGL(zendlval, yytext, yyleng); return T_NUM_STRING; } -#line 7820 "Zend/zend_language_scanner.c" +#line 7821 "Zend/zend_language_scanner.c" yy861: YYDEBUG(861, *YYCURSOR); ++YYCURSOR; @@ -7839,6 +7840,6 @@ yy863: goto yy860; } } -#line 2386 "Zend/zend_language_scanner.l" +#line 2387 "Zend/zend_language_scanner.l" } diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l index 8855c0e06a..98c7552b73 100644 --- a/Zend/zend_language_scanner.l +++ b/Zend/zend_language_scanner.l @@ -1613,12 +1613,13 @@ NEWLINE ("\r"|"\n"|"\r\n") <ST_IN_SCRIPTING>"__METHOD__" { if (CG(active_class_entry)) { - int len = 2; + int len = 0; if (CG(active_class_entry)->name) { len += CG(active_class_entry)->name->len; } if (CG(active_op_array) && CG(active_op_array)->function_name) { + len += sizeof("::")-1; len += CG(active_op_array)->function_name->len; } ZVAL_STR(zendlval, STR_ALLOC(len, 0)); @@ -1627,9 +1628,9 @@ NEWLINE ("\r"|"\n"|"\r\n") memcpy(Z_STRVAL_P(zendlval), CG(active_class_entry)->name->val, CG(active_class_entry)->name->len); len += CG(active_class_entry)->name->len; } - memcpy(Z_STRVAL_P(zendlval) + len, "::", sizeof("::")-1); - len += sizeof("::")-1; if (CG(active_op_array) && CG(active_op_array)->function_name) { + memcpy(Z_STRVAL_P(zendlval) + len, "::", sizeof("::")-1); + len += sizeof("::")-1; memcpy(Z_STRVAL_P(zendlval) + len, CG(active_op_array)->function_name->val, CG(active_op_array)->function_name->len); len += CG(active_op_array)->function_name->len; } @@ -1653,7 +1654,7 @@ NEWLINE ("\r"|"\n"|"\r\n") if (!filename) { filename = STR_EMPTY_ALLOC(); } - ZVAL_STR(zendlval, filename); + ZVAL_STR(zendlval, STR_COPY(filename)); return T_FILE; } |