diff options
author | Nikita Popov <nikic@php.net> | 2015-07-09 22:59:31 +0200 |
---|---|---|
committer | Nikita Popov <nikic@php.net> | 2015-07-09 23:02:21 +0200 |
commit | a49ce7bb91bec02d6f26b3118404371df23242fe (patch) | |
tree | a6b240dd25820ccd6f1b2109a19814f2bf34f488 /Zend/zend_language_scanner.l | |
parent | fc5c7e633b35f76df405471b119984fbf6354b41 (diff) | |
download | php-git-a49ce7bb91bec02d6f26b3118404371df23242fe.tar.gz |
Don't return T_ERROR from token_get_all()
This turned out to be rather inconvenient after all. Instead just
return the same output we did on PHP 5. If people want to have an
error, use TOKEN_PARSE.
Diffstat (limited to 'Zend/zend_language_scanner.l')
-rw-r--r-- | Zend/zend_language_scanner.l | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l index 9b5124f64c..47958b7182 100644 --- a/Zend/zend_language_scanner.l +++ b/Zend/zend_language_scanner.l @@ -1662,7 +1662,7 @@ NEWLINE ("\r"|"\n"|"\r\n") if (end != yytext + yyleng) { zend_throw_exception(zend_ce_parse_error, "Invalid numeric literal", 0); ZVAL_UNDEF(zendlval); - RETURN_TOKEN(T_ERROR); + RETURN_TOKEN(T_LNUMBER); } } else { errno = 0; @@ -1680,7 +1680,7 @@ NEWLINE ("\r"|"\n"|"\r\n") zend_throw_exception(zend_ce_parse_error, "Invalid numeric literal", 0); ZVAL_UNDEF(zendlval); - RETURN_TOKEN(T_ERROR); + RETURN_TOKEN(T_DNUMBER); } ZEND_ASSERT(!errno); RETURN_TOKEN(T_DNUMBER); @@ -1689,7 +1689,7 @@ NEWLINE ("\r"|"\n"|"\r\n") if (end != yytext + yyleng) { zend_throw_exception(zend_ce_parse_error, "Invalid numeric literal", 0); ZVAL_UNDEF(zendlval); - RETURN_TOKEN(T_ERROR); + RETURN_TOKEN(T_DNUMBER); } } ZEND_ASSERT(!errno); @@ -2047,9 +2047,7 @@ inline_char_handler: switch (*YYCURSOR++) { case '"': yyleng = YYCURSOR - SCNG(yy_text); - if (zend_scan_escape_string(zendlval, yytext+bprefix+1, yyleng-bprefix-2, '"') == FAILURE) { - RETURN_TOKEN(T_ERROR); - } + zend_scan_escape_string(zendlval, yytext+bprefix+1, yyleng-bprefix-2, '"'); RETURN_TOKEN(T_CONSTANT_ENCAPSED_STRING); case '$': if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') { @@ -2216,9 +2214,7 @@ inline_char_handler: double_quotes_scan_done: yyleng = YYCURSOR - SCNG(yy_text); - if (zend_scan_escape_string(zendlval, yytext, yyleng, '"') == FAILURE) { - RETURN_TOKEN(T_ERROR); - } + zend_scan_escape_string(zendlval, yytext, yyleng, '"'); RETURN_TOKEN(T_ENCAPSED_AND_WHITESPACE); } @@ -2260,9 +2256,7 @@ double_quotes_scan_done: yyleng = YYCURSOR - SCNG(yy_text); - if (zend_scan_escape_string(zendlval, yytext, yyleng, '`') == FAILURE) { - RETURN_TOKEN(T_ERROR); - } + zend_scan_escape_string(zendlval, yytext, yyleng, '`'); RETURN_TOKEN(T_ENCAPSED_AND_WHITESPACE); } @@ -2336,9 +2330,7 @@ double_quotes_scan_done: heredoc_scan_done: yyleng = YYCURSOR - SCNG(yy_text); - if (zend_scan_escape_string(zendlval, yytext, yyleng - newline, 0) == FAILURE) { - RETURN_TOKEN(T_ERROR); - } + zend_scan_escape_string(zendlval, yytext, yyleng - newline, 0); RETURN_TOKEN(T_ENCAPSED_AND_WHITESPACE); } |