diff options
| author | Dmitry Stogov <dmitry@zend.com> | 2018-03-14 01:08:03 +0300 |
|---|---|---|
| committer | Dmitry Stogov <dmitry@zend.com> | 2018-03-14 01:08:03 +0300 |
| commit | d1585a9e3f7c6e3da7177f07c68b250543d8fbf2 (patch) | |
| tree | 8eed5fe2058e82b66cb3447f12fd119a1117f123 /Zend/zend_compile.c | |
| parent | 0d6da03f5c3e49b92cf6817ba8a7f8d6f60ee1aa (diff) | |
| download | php-git-d1585a9e3f7c6e3da7177f07c68b250543d8fbf2.tar.gz | |
Revert "Handle scanner error in first place (don't hide them from ext/tokenizer) and cheaper whitespace handlig."
This reverts commit 0d6da03f5c3e49b92cf6817ba8a7f8d6f60ee1aa.
Diffstat (limited to 'Zend/zend_compile.c')
| -rw-r--r-- | Zend/zend_compile.c | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index 873b963a15..ed90929249 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -1690,16 +1690,25 @@ again: ZVAL_UNDEF(&zv); start_lineno = CG(zend_lineno); retval = lex_scan(&zv); + if (EG(exception)) { + return T_ERROR; + } - if (retval >= T_WHITESPACE) { - if (EXPECTED(retval < T_OPEN_TAG_WITH_ECHO)) { + switch (retval) { + case T_COMMENT: + case T_DOC_COMMENT: + case T_OPEN_TAG: + case T_WHITESPACE: goto again; - } else if (retval == T_OPEN_TAG_WITH_ECHO) { - retval = T_ECHO; - } else if (retval == T_CLOSE_TAG) { + + case T_CLOSE_TAG: retval = ';'; /* implicit ; */ - } - } else if (Z_TYPE(zv) != IS_UNDEF) { + break; + case T_OPEN_TAG_WITH_ECHO: + retval = T_ECHO; + break; + } + if (Z_TYPE(zv) != IS_UNDEF) { elem->ast = zend_ast_create_zval_with_lineno(&zv, 0, start_lineno); } |
