From: Felipe Pena Date: Thu, 23 Jun 2011 23:00:53 +0000 (+0000) Subject: - Improved parse error messages X-Git-Tag: php-5.4.0alpha2~101 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0372e6ad80afbd07fc789a8f2b7a15f34b156d5c;p=php - Improved parse error messages --- diff --git a/NEWS b/NEWS index 49e029237b..17e06ed4ee 100644 --- a/NEWS +++ b/NEWS @@ -91,6 +91,7 @@ PHP NEWS . Changed $GLOBALS into a JIT autoglobal, so it's initialized only if used. (this may affect opcode caches!) . Improved performance of @ (silence) operator. + . Improved parse error messages. (Felipe) . Simplified string offset reading. $str[1][0] is now a legal construct. . Added caches to eliminate repeatable run-time bindings of functions, classes, constants, methods and properties. diff --git a/Zend/tests/bug48693.phpt b/Zend/tests/bug48693.phpt index e574346029..7eabe00542 100644 --- a/Zend/tests/bug48693.phpt +++ b/Zend/tests/bug48693.phpt @@ -20,7 +20,7 @@ var_dump( --EXPECTF-- Parse error: syntax error, unexpected '}' in %s(%d) : runtime-created function on line 1 -Parse error: syntax error, unexpected $end in %s(%d) : runtime-created function on line 1 +Parse error: syntax error, unexpected end of file in %s(%d) : runtime-created function on line 1 bool(false) int(2) bool(false) diff --git a/Zend/tests/function_arguments_001.phpt b/Zend/tests/function_arguments_001.phpt index bf0cd4a206..747bd25766 100644 --- a/Zend/tests/function_arguments_001.phpt +++ b/Zend/tests/function_arguments_001.phpt @@ -5,5 +5,5 @@ Argument parsing error #001 function foo($arg1 string) {} ?> --EXPECTF-- -Parse error: syntax error, unexpected T_STRING, expecting ')' in %sfunction_arguments_001.php on line %d +Parse error: syntax error, unexpected 'string' (T_STRING), expecting ')' in %sfunction_arguments_001.php on line %d diff --git a/Zend/zend_globals.h b/Zend/zend_globals.h index b88fe83604..7a89a0e960 100644 --- a/Zend/zend_globals.h +++ b/Zend/zend_globals.h @@ -101,6 +101,7 @@ struct _zend_compiler_globals { HashTable *auto_globals; + zend_bool parse_error; zend_bool in_compilation; zend_bool short_tags; zend_bool asp_tags; diff --git a/Zend/zend_language_parser.y b/Zend/zend_language_parser.y index e3d079c551..e6f49a1595 100644 --- a/Zend/zend_language_parser.y +++ b/Zend/zend_language_parser.y @@ -35,6 +35,9 @@ #include "zend_API.h" #include "zend_constants.h" +#define YYSIZE_T size_t +#define yytnamerr zend_yytnamerr +static YYSIZE_T zend_yytnamerr(char*, const char*); #define YYERROR_VERBOSE #define YYSTYPE znode @@ -49,107 +52,160 @@ %pure_parser %expect 2 +%token END 0 "end of file" %left T_INCLUDE T_INCLUDE_ONCE T_EVAL T_REQUIRE T_REQUIRE_ONCE +%token T_INCLUDE "include (T_INCLUDE)" +%token T_INCLUDE_ONCE "include_once (T_INCLUDE_ONCE)" +%token T_EVAL "eval (T_EVAL)" +%token T_REQUIRE "require (T_REQUIRE)" +%token T_REQUIRE_ONCE "require_once (T_REQUIRE_ONCE)" %left ',' %left T_LOGICAL_OR +%token T_LOGICAL_OR "or (T_LOGICAL_OR)" %left T_LOGICAL_XOR +%token T_LOGICAL_XOR "xor (T_LOGICAL_XOR)" %left T_LOGICAL_AND +%token T_LOGICAL_AND "and (T_LOGICAL_AND)" %right T_PRINT +%token T_PRINT "print (T_PRINT)" %left '=' T_PLUS_EQUAL T_MINUS_EQUAL T_MUL_EQUAL T_DIV_EQUAL T_CONCAT_EQUAL T_MOD_EQUAL T_AND_EQUAL T_OR_EQUAL T_XOR_EQUAL T_SL_EQUAL T_SR_EQUAL +%token T_PLUS_EQUAL "+= (T_PLUS_EQUAL)" +%token T_MINUS_EQUAL "-= (T_MINUS_EQUAL)" +%token T_MUL_EQUAL "*= (T_MUL_EQUAL)" +%token T_DIV_EQUAL "/= (T_DIV_EQUAL)" +%token T_CONCAT_EQUAL ".= (T_CONCAT_EQUAL)" +%token T_MOD_EQUAL "%= (T_MOD_EQUAL)" +%token T_AND_EQUAL "&= (T_AND_EQUAL)" +%token T_OR_EQUAL "|= (T_OR_EQUAL)" +%token T_XOR_EQUAL "^= (T_XOR_EQUAL)" +%token T_SL_EQUAL "<<= (T_SL_EQUAL)" +%token T_SR_EQUAL ">>= (T_SR_EQUAL)" %left '?' ':' %left T_BOOLEAN_OR -%left T_BOOLEAN_AND +%token T_BOOLEAN_OR "|| (T_BOOLEAN_OR)" +%left T_BOOLEAN_AND +%token T_BOOLEAN_AND "&& (T_BOOLEAN_AND)" %left '|' %left '^' %left '&' %nonassoc T_IS_EQUAL T_IS_NOT_EQUAL T_IS_IDENTICAL T_IS_NOT_IDENTICAL +%token T_IS_EQUAL "== (T_IS_EQUAL)" +%token T_IS_NOT_EQUAL "!= (T_IS_NOT_EQUAL)" +%token T_IS_IDENTICAL "=== (T_IS_IDENTICAL)" +%token T_IS_NOT_IDENTICAL "!== (T_IS_NOT_IDENTICAL)" %nonassoc '<' T_IS_SMALLER_OR_EQUAL '>' T_IS_GREATER_OR_EQUAL +%token T_IS_SMALLER_OR_EQUAL "<= (T_IS_SMALLER_OR_EQUAL)" +%token T_IS_GREATER_OR_EQUAL ">= (T_IS_GREATER_OR_EQUAL)" %left T_SL T_SR +%token T_SL "<< (T_SL)" +%token T_SR ">> (T_SR)" %left '+' '-' '.' %left '*' '/' '%' %right '!' %nonassoc T_INSTANCEOF +%token T_INSTANCEOF "instanceof (T_INSTANCEOF)" %right '~' T_INC T_DEC T_INT_CAST T_DOUBLE_CAST T_STRING_CAST T_ARRAY_CAST T_OBJECT_CAST T_BOOL_CAST T_UNSET_CAST '@' +%token T_INC "++ (T_INC)" +%token T_DEC "-- (T_DEC)" +%token T_INT_CAST "(int) (T_INT_CAST)" +%token T_SCALAR_CAST "(scalar) (T_SCALAR_CAST)" +%token T_DOUBLE_CAST "(double) (T_DOUBLE_CAST)" +%token T_STRING_CAST "(string) (T_STRING_CAST)" +%token T_ARRAY_CAST "(array) (T_ARRAY_CAST)" +%token T_OBJECT_CAST "(object) (T_OBJECT_CAST)" +%token T_BOOL_CAST "(bool) (T_BOOL_CAST)" +%token T_UNSET_CAST "(unset) (T_UNSET_CAST)" %right '[' %nonassoc T_NEW T_CLONE -%token T_EXIT -%token T_IF +%token T_NEW "new (T_NEW)" +%token T_CLONE "clone (T_CLONE)" +%token T_EXIT "exit (T_EXIT)" +%token T_IF "if (T_IF)" %left T_ELSEIF -%left T_ELSE -%left T_ENDIF -%token T_LNUMBER -%token T_DNUMBER -%token T_STRING -%token T_STRING_VARNAME -%token T_VARIABLE -%token T_NUM_STRING +%token T_ELSEIF "elseif (T_ELSEIF)" +%left T_ELSE +%token T_ELSE "else (T_ELSE)" +%left T_ENDIF +%token T_ENDIF "endif (T_ENDIF)" +%token T_LNUMBER "integer number (T_LNUMBER)" +%token T_DNUMBER "floating-point number (T_DNUMBER)" +%token T_STRING "identifier (T_STRING)" +%token T_STRING_VARNAME "variable name (T_STRING_VARNAME)" +%token T_VARIABLE "variable (T_VARIABLE)" +%token T_NUM_STRING "number (T_NUM_STRING)" %token T_INLINE_HTML %token T_CHARACTER %token T_BAD_CHARACTER -%token T_ENCAPSED_AND_WHITESPACE -%token T_CONSTANT_ENCAPSED_STRING -%token T_ECHO -%token T_DO -%token T_WHILE -%token T_ENDWHILE -%token T_FOR -%token T_ENDFOR -%token T_FOREACH -%token T_ENDFOREACH -%token T_DECLARE -%token T_ENDDECLARE -%token T_AS -%token T_SWITCH -%token T_ENDSWITCH -%token T_CASE -%token T_DEFAULT -%token T_BREAK -%token T_CONTINUE -%token T_GOTO -%token T_FUNCTION -%token T_CONST -%token T_RETURN -%token T_TRY -%token T_CATCH -%token T_THROW -%token T_USE -%token T_INSTEADOF -%token T_GLOBAL +%token T_ENCAPSED_AND_WHITESPACE "quoted-string and whitespace (T_ENCAPSED_AND_WHITESPACE)" +%token T_CONSTANT_ENCAPSED_STRING "quoted-string (T_CONSTANT_ENCAPSED_STRING)" +%token T_ECHO "echo (T_ECHO)" +%token T_DO "do (T_DO)" +%token T_WHILE "while (T_WHILE)" +%token T_ENDWHILE "endwhile (T_ENDWHILE)" +%token T_FOR "for (T_FOR)" +%token T_ENDFOR "endfor (T_ENDFOR)" +%token T_FOREACH "foreach (T_FOREACH)" +%token T_ENDFOREACH "endforeach (T_ENDFOREACH)" +%token T_DECLARE "declare (T_DECLARE)" +%token T_ENDDECLARE "enddeclare (T_ENDDECLARE)" +%token T_AS "as (T_AS)" +%token T_SWITCH "switch (T_SWITCH)" +%token T_ENDSWITCH "endswitch (T_ENDSWITCH)" +%token T_CASE "case (T_CASE)" +%token T_DEFAULT "default (T_DEFAULT)" +%token T_BREAK "break (T_BREAK)" +%token T_CONTINUE "continue (T_CONTINUE)" +%token T_GOTO "goto (T_GOTO)" +%token T_FUNCTION "function (T_FUNCTION)" +%token T_CONST "const (T_CONST)" +%token T_RETURN "return (T_RETURN)" +%token T_TRY "try (T_TRY)" +%token T_CATCH "catch (T_CATCH)" +%token T_THROW "throw (T_THROW)" +%token T_USE "use (T_USE)" +%token T_INSTEADOF "insteadof (T_INSTEADOF)" +%token T_GLOBAL "global (T_GLOBAL)" %right T_STATIC T_ABSTRACT T_FINAL T_PRIVATE T_PROTECTED T_PUBLIC -%token T_VAR -%token T_UNSET -%token T_ISSET -%token T_EMPTY -%token T_HALT_COMPILER -%token T_CLASS -%token T_TRAIT -%token T_INTERFACE -%token T_EXTENDS -%token T_IMPLEMENTS -%token T_OBJECT_OPERATOR -%token T_DOUBLE_ARROW -%token T_LIST -%token T_ARRAY -%token T_CLASS_C -%token T_METHOD_C -%token T_FUNC_C -%token T_LINE -%token T_FILE -%token T_COMMENT -%token T_DOC_COMMENT -%token T_OPEN_TAG -%token T_OPEN_TAG_WITH_ECHO -%token T_CLOSE_TAG -%token T_WHITESPACE -%token T_START_HEREDOC -%token T_END_HEREDOC -%token T_DOLLAR_OPEN_CURLY_BRACES -%token T_CURLY_OPEN -%token T_PAAMAYIM_NEKUDOTAYIM -%token T_NAMESPACE -%token T_NS_C -%token T_DIR -%token T_NS_SEPARATOR +%token T_STATIC "static (T_STATIC)" +%token T_ABSTRACT "abstract (T_ABSTRACT)" +%token T_FINAL "final (T_FINAL)" +%token T_PRIVATE "private (T_PRIVATE)" +%token T_PROTECTED "protected (T_PROTECTED)" +%token T_PUBLIC "public (T_PUBLIC)" +%token T_VAR "var (T_VAR)" +%token T_UNSET "unset (T_UNSET)" +%token T_ISSET "isset (T_ISSET)" +%token T_EMPTY "empty (T_EMPTY)" +%token T_HALT_COMPILER "__halt_compiler (T_HALT_COMPILER)" +%token T_CLASS "class (T_CLASS)" +%token T_TRAIT "trait (T_TRAIT)" +%token T_INTERFACE "interface (T_INTERFACE)" +%token T_EXTENDS "extends (T_EXTENDS)" +%token T_IMPLEMENTS "implements (T_IMPLEMENTS)" +%token T_OBJECT_OPERATOR "-> (T_OBJECT_OPERATOR)" +%token T_DOUBLE_ARROW "=> (T_DOUBLE_ARROW)" +%token T_LIST "list (T_LIST)" +%token T_ARRAY "array (T_ARRAY)" +%token T_CLASS_C "__CLASS__ (T_CLASS_C)" +%token T_METHOD_C "__METHOD__ (T_METHOD_C)" +%token T_FUNC_C "__FUNCTION__ (T_FUNC_C)" +%token T_LINE "__LINE__ (T_LINE)" +%token T_FILE "__FILE__ (T_FILE)" +%token T_COMMENT "comment (T_COMMENT)" +%token T_DOC_COMMENT "doc comment (T_DOC_COMMENT)" +%token T_OPEN_TAG "open tag (T_OPEN_TAG)" +%token T_OPEN_TAG_WITH_ECHO "open tag with echo (T_OPEN_TAG_WITH_ECHO)" +%token T_CLOSE_TAG "close tag (T_CLOSE_TAG)" +%token T_WHITESPACE "whitespace (T_WHITESPACE)" +%token T_START_HEREDOC "heredoc start (T_START_HEREDOC)" +%token T_END_HEREDOC "heredoc end (T_END_HEREDOC)" +%token T_DOLLAR_OPEN_CURLY_BRACES "${ (T_DOLLAR_OPEN_CURLY_BRACES)" +%token T_CURLY_OPEN "{$ (T_CURLY_OPEN)" +%token T_PAAMAYIM_NEKUDOTAYIM ":: (T_PAAMAYIM_NEKUDOTAYIM)" +%token T_NAMESPACE "namespace (T_NAMESPACE)" +%token T_NS_C "__NAMESPACE__ (T_NS_C)" +%token T_DIR "__DIR__ (T_DIR)" +%token T_NS_SEPARATOR "\\ (T_NS_SEPARATOR)" %% /* Rules */ @@ -1079,6 +1135,70 @@ class_constant: %% +/* Copy to YYRES the contents of YYSTR after stripping away unnecessary + quotes and backslashes, so that it's suitable for yyerror. The + heuristic is that double-quoting is unnecessary unless the string + contains an apostrophe, a comma, or backslash (other than + backslash-backslash). YYSTR is taken from yytname. If YYRES is + null, do not copy; instead, return the length of what the result + would have been. */ +static YYSIZE_T zend_yytnamerr(char *yyres, const char *yystr) +{ + if (!yyres) { + return yystrlen(yystr); + } + { + TSRMLS_FETCH(); + if (CG(parse_error) == 0) { + char buffer[120], *end, *str, *tok1 = NULL, *tok2 = NULL; + unsigned int len = 0, toklen = 0, yystr_len; + + CG(parse_error) = 1; + + if (LANG_SCNG(yy_text)[0] == 0 && + LANG_SCNG(yy_leng) == 1 && + memcmp(yystr, ZEND_STRL("\"end of file\"")) == 0) { + return yystpcpy(yyres, "end of file") - yyres; + } + + str = LANG_SCNG(yy_text); + end = memchr(str, '\n', LANG_SCNG(yy_leng)); + yystr_len = yystrlen(yystr); + + if ((tok1 = memchr(yystr, '(', yystr_len)) != NULL + && (tok2 = zend_memrchr(yystr, ')', yystr_len)) != NULL) { + toklen = (tok2 - tok1) + 1; + } else { + tok1 = tok2 = NULL; + toklen = 0; + } + + if (end == NULL) { + len = LANG_SCNG(yy_leng) > 30 ? 30 : LANG_SCNG(yy_leng); + } else { + len = (end - str) > 30 ? 30 : (end - str); + } + if (toklen) { + snprintf(buffer, sizeof(buffer), "'%.*s' %.*s", len, str, toklen, tok1); + } else { + snprintf(buffer, sizeof(buffer), "'%.*s'", len, str); + } + return yystpcpy(yyres, buffer) - yyres; + } + } + if (*yystr == '"') { + YYSIZE_T yyn = 0; + const char *yyp = yystr; + + for (; *++yyp != '"'; ++yyn) { + yyres[yyn] = *yyp; + } + yyres[yyn] = '\0'; + return yyn; + } + return yystpcpy(yyres, yystr) - yyres; +} + /* * Local variables: * tab-width: 4 diff --git a/Zend/zend_language_scanner.c b/Zend/zend_language_scanner.c index 8de4c438da..9b7ddd3c10 100644 --- a/Zend/zend_language_scanner.c +++ b/Zend/zend_language_scanner.c @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.5 on Thu Jun 2 17:34:19 2011 */ +/* Generated by re2c 0.13.5 on Thu Jun 23 19:47:38 2011 */ #line 1 "Zend/zend_language_scanner.l" /* +----------------------------------------------------------------------+ @@ -176,6 +176,7 @@ static void yy_scan_buffer(char *str, unsigned int len TSRMLS_DC) void startup_scanner(TSRMLS_D) { + CG(parse_error) = 0; CG(heredoc) = NULL; CG(heredoc_len) = 0; CG(doc_comment) = NULL; @@ -189,6 +190,7 @@ void shutdown_scanner(TSRMLS_D) efree(CG(heredoc)); CG(heredoc_len)=0; } + CG(parse_error) = 0; zend_stack_destroy(&SCNG(state_stack)); RESET_DOC_COMMENT(); } @@ -982,7 +984,7 @@ restart: yymore_restart: -#line 986 "Zend/zend_language_scanner.c" +#line 988 "Zend/zend_language_scanner.c" { YYCTYPE yych; unsigned int yyaccept = 0; @@ -1081,7 +1083,7 @@ yyc_INITIAL: yy3: YYDEBUG(3, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1710 "Zend/zend_language_scanner.l" +#line 1712 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { return 0; @@ -1141,7 +1143,7 @@ inline_html: HANDLE_NEWLINES(yytext, yyleng); return T_INLINE_HTML; } -#line 1145 "Zend/zend_language_scanner.c" +#line 1147 "Zend/zend_language_scanner.c" yy4: YYDEBUG(4, *YYCURSOR); yych = *++YYCURSOR; @@ -1159,7 +1161,7 @@ yy5: yy6: YYDEBUG(6, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1698 "Zend/zend_language_scanner.l" +#line 1700 "Zend/zend_language_scanner.l" { if (CG(short_tags)) { zendlval->value.str.val = yytext; /* no copying - intentional */ @@ -1171,14 +1173,14 @@ yy6: goto inline_char_handler; } } -#line 1175 "Zend/zend_language_scanner.c" +#line 1177 "Zend/zend_language_scanner.c" yy7: YYDEBUG(7, *YYCURSOR); ++YYCURSOR; if ((yych = *YYCURSOR) == '=') goto yy43; YYDEBUG(8, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1675 "Zend/zend_language_scanner.l" +#line 1677 "Zend/zend_language_scanner.l" { if (CG(asp_tags)) { zendlval->value.str.val = yytext; /* no copying - intentional */ @@ -1190,7 +1192,7 @@ yy7: goto inline_char_handler; } } -#line 1194 "Zend/zend_language_scanner.c" +#line 1196 "Zend/zend_language_scanner.c" yy9: YYDEBUG(9, *YYCURSOR); yych = *++YYCURSOR; @@ -1376,7 +1378,7 @@ yy35: ++YYCURSOR; YYDEBUG(38, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1635 "Zend/zend_language_scanner.l" +#line 1637 "Zend/zend_language_scanner.l" { YYCTYPE *bracket = zend_memrchr(yytext, '<', yyleng - (sizeof("script language=php>") - 1)); @@ -1393,7 +1395,7 @@ yy35: BEGIN(ST_IN_SCRIPTING); return T_OPEN_TAG; } -#line 1397 "Zend/zend_language_scanner.c" +#line 1399 "Zend/zend_language_scanner.c" yy39: YYDEBUG(39, *YYCURSOR); yych = *++YYCURSOR; @@ -1420,7 +1422,7 @@ yy43: ++YYCURSOR; YYDEBUG(44, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1653 "Zend/zend_language_scanner.l" +#line 1655 "Zend/zend_language_scanner.l" { if (CG(asp_tags)) { zendlval->value.str.val = yytext; /* no copying - intentional */ @@ -1432,13 +1434,13 @@ yy43: goto inline_char_handler; } } -#line 1436 "Zend/zend_language_scanner.c" +#line 1438 "Zend/zend_language_scanner.c" yy45: YYDEBUG(45, *YYCURSOR); ++YYCURSOR; YYDEBUG(46, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1666 "Zend/zend_language_scanner.l" +#line 1668 "Zend/zend_language_scanner.l" { zendlval->value.str.val = yytext; /* no copying - intentional */ zendlval->value.str.len = yyleng; @@ -1446,7 +1448,7 @@ yy45: BEGIN(ST_IN_SCRIPTING); return T_OPEN_TAG_WITH_ECHO; } -#line 1450 "Zend/zend_language_scanner.c" +#line 1452 "Zend/zend_language_scanner.c" yy47: YYDEBUG(47, *YYCURSOR); yych = *++YYCURSOR; @@ -1473,7 +1475,7 @@ yy50: yy51: YYDEBUG(51, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1688 "Zend/zend_language_scanner.l" +#line 1690 "Zend/zend_language_scanner.l" { zendlval->value.str.val = yytext; /* no copying - intentional */ zendlval->value.str.len = yyleng; @@ -1482,7 +1484,7 @@ yy51: BEGIN(ST_IN_SCRIPTING); return T_OPEN_TAG; } -#line 1486 "Zend/zend_language_scanner.c" +#line 1488 "Zend/zend_language_scanner.c" yy52: YYDEBUG(52, *YYCURSOR); ++YYCURSOR; @@ -1553,7 +1555,7 @@ yyc_ST_BACKQUOTE: yy56: YYDEBUG(56, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2161 "Zend/zend_language_scanner.l" +#line 2163 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { return 0; @@ -1594,7 +1596,7 @@ yy56: zend_scan_escape_string(zendlval, yytext, yyleng, '`' TSRMLS_CC); return T_ENCAPSED_AND_WHITESPACE; } -#line 1598 "Zend/zend_language_scanner.c" +#line 1600 "Zend/zend_language_scanner.c" yy57: YYDEBUG(57, *YYCURSOR); yych = *++YYCURSOR; @@ -1605,12 +1607,12 @@ yy58: ++YYCURSOR; YYDEBUG(59, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2105 "Zend/zend_language_scanner.l" +#line 2107 "Zend/zend_language_scanner.l" { BEGIN(ST_IN_SCRIPTING); return '`'; } -#line 1614 "Zend/zend_language_scanner.c" +#line 1616 "Zend/zend_language_scanner.c" yy60: YYDEBUG(60, *YYCURSOR); yych = *++YYCURSOR; @@ -1620,14 +1622,14 @@ yy61: ++YYCURSOR; YYDEBUG(62, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2092 "Zend/zend_language_scanner.l" +#line 2094 "Zend/zend_language_scanner.l" { zendlval->value.lval = (long) '{'; yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); yyless(1); return T_CURLY_OPEN; } -#line 1631 "Zend/zend_language_scanner.c" +#line 1633 "Zend/zend_language_scanner.c" yy63: YYDEBUG(63, *YYCURSOR); yyaccept = 0; @@ -1643,24 +1645,24 @@ yy63: yy65: YYDEBUG(65, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1792 "Zend/zend_language_scanner.l" +#line 1794 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); zendlval->type = IS_STRING; return T_VARIABLE; } -#line 1653 "Zend/zend_language_scanner.c" +#line 1655 "Zend/zend_language_scanner.c" yy66: YYDEBUG(66, *YYCURSOR); ++YYCURSOR; YYDEBUG(67, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1428 "Zend/zend_language_scanner.l" +#line 1430 "Zend/zend_language_scanner.l" { yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC); return T_DOLLAR_OPEN_CURLY_BRACES; } -#line 1664 "Zend/zend_language_scanner.c" +#line 1666 "Zend/zend_language_scanner.c" yy68: YYDEBUG(68, *YYCURSOR); yych = *++YYCURSOR; @@ -1674,7 +1676,7 @@ yy70: ++YYCURSOR; YYDEBUG(71, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1784 "Zend/zend_language_scanner.l" +#line 1786 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); yy_push_state(ST_VAR_OFFSET TSRMLS_CC); @@ -1682,7 +1684,7 @@ yy70: zendlval->type = IS_STRING; return T_VARIABLE; } -#line 1686 "Zend/zend_language_scanner.c" +#line 1688 "Zend/zend_language_scanner.c" yy72: YYDEBUG(72, *YYCURSOR); yych = *++YYCURSOR; @@ -1700,7 +1702,7 @@ yy73: ++YYCURSOR; YYDEBUG(74, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1774 "Zend/zend_language_scanner.l" +#line 1776 "Zend/zend_language_scanner.l" { yyless(yyleng - 3); yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC); @@ -1708,7 +1710,7 @@ yy73: zendlval->type = IS_STRING; return T_VARIABLE; } -#line 1712 "Zend/zend_language_scanner.c" +#line 1714 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_DOUBLE_QUOTES: @@ -1776,7 +1778,7 @@ yy77: yy78: YYDEBUG(78, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2111 "Zend/zend_language_scanner.l" +#line 2113 "Zend/zend_language_scanner.l" { if (GET_DOUBLE_QUOTES_SCANNED_LENGTH()) { YYCURSOR += GET_DOUBLE_QUOTES_SCANNED_LENGTH() - 1; @@ -1825,7 +1827,7 @@ double_quotes_scan_done: zend_scan_escape_string(zendlval, yytext, yyleng, '"' TSRMLS_CC); return T_ENCAPSED_AND_WHITESPACE; } -#line 1829 "Zend/zend_language_scanner.c" +#line 1831 "Zend/zend_language_scanner.c" yy79: YYDEBUG(79, *YYCURSOR); yych = *++YYCURSOR; @@ -1836,12 +1838,12 @@ yy80: ++YYCURSOR; YYDEBUG(81, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2100 "Zend/zend_language_scanner.l" +#line 2102 "Zend/zend_language_scanner.l" { BEGIN(ST_IN_SCRIPTING); return '"'; } -#line 1845 "Zend/zend_language_scanner.c" +#line 1847 "Zend/zend_language_scanner.c" yy82: YYDEBUG(82, *YYCURSOR); yych = *++YYCURSOR; @@ -1851,14 +1853,14 @@ yy83: ++YYCURSOR; YYDEBUG(84, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2092 "Zend/zend_language_scanner.l" +#line 2094 "Zend/zend_language_scanner.l" { zendlval->value.lval = (long) '{'; yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); yyless(1); return T_CURLY_OPEN; } -#line 1862 "Zend/zend_language_scanner.c" +#line 1864 "Zend/zend_language_scanner.c" yy85: YYDEBUG(85, *YYCURSOR); yyaccept = 0; @@ -1874,24 +1876,24 @@ yy85: yy87: YYDEBUG(87, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1792 "Zend/zend_language_scanner.l" +#line 1794 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); zendlval->type = IS_STRING; return T_VARIABLE; } -#line 1884 "Zend/zend_language_scanner.c" +#line 1886 "Zend/zend_language_scanner.c" yy88: YYDEBUG(88, *YYCURSOR); ++YYCURSOR; YYDEBUG(89, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1428 "Zend/zend_language_scanner.l" +#line 1430 "Zend/zend_language_scanner.l" { yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC); return T_DOLLAR_OPEN_CURLY_BRACES; } -#line 1895 "Zend/zend_language_scanner.c" +#line 1897 "Zend/zend_language_scanner.c" yy90: YYDEBUG(90, *YYCURSOR); yych = *++YYCURSOR; @@ -1905,7 +1907,7 @@ yy92: ++YYCURSOR; YYDEBUG(93, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1784 "Zend/zend_language_scanner.l" +#line 1786 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); yy_push_state(ST_VAR_OFFSET TSRMLS_CC); @@ -1913,7 +1915,7 @@ yy92: zendlval->type = IS_STRING; return T_VARIABLE; } -#line 1917 "Zend/zend_language_scanner.c" +#line 1919 "Zend/zend_language_scanner.c" yy94: YYDEBUG(94, *YYCURSOR); yych = *++YYCURSOR; @@ -1931,7 +1933,7 @@ yy95: ++YYCURSOR; YYDEBUG(96, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1774 "Zend/zend_language_scanner.l" +#line 1776 "Zend/zend_language_scanner.l" { yyless(yyleng - 3); yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC); @@ -1939,7 +1941,7 @@ yy95: zendlval->type = IS_STRING; return T_VARIABLE; } -#line 1943 "Zend/zend_language_scanner.c" +#line 1945 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_END_HEREDOC: @@ -1950,7 +1952,7 @@ yyc_ST_END_HEREDOC: ++YYCURSOR; YYDEBUG(100, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2079 "Zend/zend_language_scanner.l" +#line 2081 "Zend/zend_language_scanner.l" { YYCURSOR += CG(heredoc_len) - 1; yyleng = CG(heredoc_len); @@ -1962,7 +1964,7 @@ yyc_ST_END_HEREDOC: BEGIN(ST_IN_SCRIPTING); return T_END_HEREDOC; } -#line 1966 "Zend/zend_language_scanner.c" +#line 1968 "Zend/zend_language_scanner.c" /* *********************************** */ yyc_ST_HEREDOC: { @@ -2024,7 +2026,7 @@ yy103: yy104: YYDEBUG(104, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2203 "Zend/zend_language_scanner.l" +#line 2205 "Zend/zend_language_scanner.l" { int newline = 0; @@ -2095,7 +2097,7 @@ heredoc_scan_done: zend_scan_escape_string(zendlval, yytext, yyleng - newline, 0 TSRMLS_CC); return T_ENCAPSED_AND_WHITESPACE; } -#line 2099 "Zend/zend_language_scanner.c" +#line 2101 "Zend/zend_language_scanner.c" yy105: YYDEBUG(105, *YYCURSOR); yych = *++YYCURSOR; @@ -2110,14 +2112,14 @@ yy107: ++YYCURSOR; YYDEBUG(108, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2092 "Zend/zend_language_scanner.l" +#line 2094 "Zend/zend_language_scanner.l" { zendlval->value.lval = (long) '{'; yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); yyless(1); return T_CURLY_OPEN; } -#line 2121 "Zend/zend_language_scanner.c" +#line 2123 "Zend/zend_language_scanner.c" yy109: YYDEBUG(109, *YYCURSOR); yyaccept = 0; @@ -2133,24 +2135,24 @@ yy109: yy111: YYDEBUG(111, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1792 "Zend/zend_language_scanner.l" +#line 1794 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); zendlval->type = IS_STRING; return T_VARIABLE; } -#line 2143 "Zend/zend_language_scanner.c" +#line 2145 "Zend/zend_language_scanner.c" yy112: YYDEBUG(112, *YYCURSOR); ++YYCURSOR; YYDEBUG(113, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1428 "Zend/zend_language_scanner.l" +#line 1430 "Zend/zend_language_scanner.l" { yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC); return T_DOLLAR_OPEN_CURLY_BRACES; } -#line 2154 "Zend/zend_language_scanner.c" +#line 2156 "Zend/zend_language_scanner.c" yy114: YYDEBUG(114, *YYCURSOR); yych = *++YYCURSOR; @@ -2164,7 +2166,7 @@ yy116: ++YYCURSOR; YYDEBUG(117, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1784 "Zend/zend_language_scanner.l" +#line 1786 "Zend/zend_language_scanner.l" { yyless(yyleng - 1); yy_push_state(ST_VAR_OFFSET TSRMLS_CC); @@ -2172,7 +2174,7 @@ yy116: zendlval->type = IS_STRING; return T_VARIABLE; } -#line 2176 "Zend/zend_language_scanner.c" +#line 2178 "Zend/zend_language_scanner.c" yy118: YYDEBUG(118, *YYCURSOR); yych = *++YYCURSOR; @@ -2190,7 +2192,7 @@ yy119: ++YYCURSOR; YYDEBUG(120, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1774 "Zend/zend_language_scanner.l" +#line 1776 "Zend/zend_language_scanner.l" { yyless(yyleng - 3); yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC); @@ -2198,7 +2200,7 @@ yy119: zendlval->type = IS_STRING; return T_VARIABLE; } -#line 2202 "Zend/zend_language_scanner.c" +#line 2204 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_IN_SCRIPTING: @@ -2379,13 +2381,13 @@ yy123: yy124: YYDEBUG(124, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1815 "Zend/zend_language_scanner.l" +#line 1817 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, yytext, yyleng); zendlval->type = IS_STRING; return T_STRING; } -#line 2389 "Zend/zend_language_scanner.c" +#line 2391 "Zend/zend_language_scanner.c" yy125: YYDEBUG(125, *YYCURSOR); yych = *++YYCURSOR; @@ -2611,11 +2613,11 @@ yy137: yy138: YYDEBUG(138, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1417 "Zend/zend_language_scanner.l" +#line 1419 "Zend/zend_language_scanner.l" { return yytext[0]; } -#line 2619 "Zend/zend_language_scanner.c" +#line 2621 "Zend/zend_language_scanner.c" yy139: YYDEBUG(139, *YYCURSOR); ++YYCURSOR; @@ -2624,7 +2626,7 @@ yy139: yy140: YYDEBUG(140, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1152 "Zend/zend_language_scanner.l" +#line 1154 "Zend/zend_language_scanner.l" { zendlval->value.str.val = yytext; /* no copying - intentional */ zendlval->value.str.len = yyleng; @@ -2632,7 +2634,7 @@ yy140: HANDLE_NEWLINES(yytext, yyleng); return T_WHITESPACE; } -#line 2636 "Zend/zend_language_scanner.c" +#line 2638 "Zend/zend_language_scanner.c" yy141: YYDEBUG(141, *YYCURSOR); yych = *++YYCURSOR; @@ -2643,11 +2645,11 @@ yy142: ++YYCURSOR; YYDEBUG(143, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1181 "Zend/zend_language_scanner.l" +#line 1183 "Zend/zend_language_scanner.l" { return T_NS_SEPARATOR; } -#line 2651 "Zend/zend_language_scanner.c" +#line 2653 "Zend/zend_language_scanner.c" yy144: YYDEBUG(144, *YYCURSOR); yych = *++YYCURSOR; @@ -2875,18 +2877,18 @@ yy167: ++YYCURSOR; YYDEBUG(168, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1422 "Zend/zend_language_scanner.l" +#line 1424 "Zend/zend_language_scanner.l" { yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); return '{'; } -#line 2884 "Zend/zend_language_scanner.c" +#line 2886 "Zend/zend_language_scanner.c" yy169: YYDEBUG(169, *YYCURSOR); ++YYCURSOR; YYDEBUG(170, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1434 "Zend/zend_language_scanner.l" +#line 1436 "Zend/zend_language_scanner.l" { RESET_DOC_COMMENT(); if (!zend_stack_is_empty(&SCNG(state_stack))) { @@ -2894,7 +2896,7 @@ yy169: } return '}'; } -#line 2898 "Zend/zend_language_scanner.c" +#line 2900 "Zend/zend_language_scanner.c" yy171: YYDEBUG(171, *YYCURSOR); yyaccept = 2; @@ -2917,7 +2919,7 @@ yy171: yy172: YYDEBUG(172, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1460 "Zend/zend_language_scanner.l" +#line 1462 "Zend/zend_language_scanner.l" { if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */ zendlval->value.lval = strtol(yytext, NULL, 0); @@ -2938,7 +2940,7 @@ yy172: zendlval->type = IS_LONG; return T_LNUMBER; } -#line 2942 "Zend/zend_language_scanner.c" +#line 2944 "Zend/zend_language_scanner.c" yy173: YYDEBUG(173, *YYCURSOR); yyaccept = 2; @@ -2966,7 +2968,7 @@ yy175: yy176: YYDEBUG(176, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1822 "Zend/zend_language_scanner.l" +#line 1824 "Zend/zend_language_scanner.l" { while (YYCURSOR < YYLIMIT) { switch (*YYCURSOR++) { @@ -3000,14 +3002,14 @@ yy176: return T_COMMENT; } -#line 3004 "Zend/zend_language_scanner.c" +#line 3006 "Zend/zend_language_scanner.c" yy177: YYDEBUG(177, *YYCURSOR); ++YYCURSOR; yy178: YYDEBUG(178, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1913 "Zend/zend_language_scanner.l" +#line 1915 "Zend/zend_language_scanner.l" { register char *s, *t; char *end; @@ -3075,14 +3077,14 @@ yy178: } return T_CONSTANT_ENCAPSED_STRING; } -#line 3079 "Zend/zend_language_scanner.c" +#line 3081 "Zend/zend_language_scanner.c" yy179: YYDEBUG(179, *YYCURSOR); ++YYCURSOR; yy180: YYDEBUG(180, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1982 "Zend/zend_language_scanner.l" +#line 1984 "Zend/zend_language_scanner.l" { int bprefix = (yytext[0] != '"') ? 1 : 0; @@ -3123,24 +3125,24 @@ yy180: BEGIN(ST_DOUBLE_QUOTES); return '"'; } -#line 3127 "Zend/zend_language_scanner.c" +#line 3129 "Zend/zend_language_scanner.c" yy181: YYDEBUG(181, *YYCURSOR); ++YYCURSOR; YYDEBUG(182, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2073 "Zend/zend_language_scanner.l" +#line 2075 "Zend/zend_language_scanner.l" { BEGIN(ST_BACKQUOTE); return '`'; } -#line 3138 "Zend/zend_language_scanner.c" +#line 3140 "Zend/zend_language_scanner.c" yy183: YYDEBUG(183, *YYCURSOR); ++YYCURSOR; YYDEBUG(184, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2331 "Zend/zend_language_scanner.l" +#line 2333 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { return 0; @@ -3149,7 +3151,7 @@ yy183: zend_error(E_COMPILE_WARNING,"Unexpected character in input: '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE); goto restart; } -#line 3153 "Zend/zend_language_scanner.c" +#line 3155 "Zend/zend_language_scanner.c" yy185: YYDEBUG(185, *YYCURSOR); ++YYCURSOR; @@ -3176,13 +3178,13 @@ yy187: yy189: YYDEBUG(189, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1521 "Zend/zend_language_scanner.l" +#line 1523 "Zend/zend_language_scanner.l" { zendlval->value.dval = zend_strtod(yytext, NULL); zendlval->type = IS_DOUBLE; return T_DNUMBER; } -#line 3186 "Zend/zend_language_scanner.c" +#line 3188 "Zend/zend_language_scanner.c" yy190: YYDEBUG(190, *YYCURSOR); yyaccept = 2; @@ -3267,7 +3269,7 @@ yy198: } YYDEBUG(200, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1481 "Zend/zend_language_scanner.l" +#line 1483 "Zend/zend_language_scanner.l" { char *hex = yytext + 2; /* Skip "0x" */ int len = yyleng - 2; @@ -3288,7 +3290,7 @@ yy198: return T_DNUMBER; } } -#line 3292 "Zend/zend_language_scanner.c" +#line 3294 "Zend/zend_language_scanner.c" yy201: YYDEBUG(201, *YYCURSOR); ++YYCURSOR; @@ -3297,7 +3299,7 @@ yy201: yy202: YYDEBUG(202, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1890 "Zend/zend_language_scanner.l" +#line 1892 "Zend/zend_language_scanner.l" { zendlval->value.str.val = yytext; /* no copying - intentional */ zendlval->value.str.len = yyleng; @@ -3305,7 +3307,7 @@ yy202: BEGIN(INITIAL); return T_CLOSE_TAG; /* implicit ';' at php-end tag */ } -#line 3309 "Zend/zend_language_scanner.c" +#line 3311 "Zend/zend_language_scanner.c" yy203: YYDEBUG(203, *YYCURSOR); yych = *++YYCURSOR; @@ -3339,13 +3341,13 @@ yy205: yy207: YYDEBUG(207, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1792 "Zend/zend_language_scanner.l" +#line 1794 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); zendlval->type = IS_STRING; return T_VARIABLE; } -#line 3349 "Zend/zend_language_scanner.c" +#line 3351 "Zend/zend_language_scanner.c" yy208: YYDEBUG(208, *YYCURSOR); yych = *++YYCURSOR; @@ -3359,11 +3361,11 @@ yy209: } YYDEBUG(210, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1405 "Zend/zend_language_scanner.l" +#line 1407 "Zend/zend_language_scanner.l" { return T_LOGICAL_XOR; } -#line 3367 "Zend/zend_language_scanner.c" +#line 3369 "Zend/zend_language_scanner.c" yy211: YYDEBUG(211, *YYCURSOR); ++YYCURSOR; @@ -3372,61 +3374,61 @@ yy211: } YYDEBUG(212, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1397 "Zend/zend_language_scanner.l" +#line 1399 "Zend/zend_language_scanner.l" { return T_LOGICAL_OR; } -#line 3380 "Zend/zend_language_scanner.c" +#line 3382 "Zend/zend_language_scanner.c" yy213: YYDEBUG(213, *YYCURSOR); ++YYCURSOR; YYDEBUG(214, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1385 "Zend/zend_language_scanner.l" +#line 1387 "Zend/zend_language_scanner.l" { return T_XOR_EQUAL; } -#line 3390 "Zend/zend_language_scanner.c" +#line 3392 "Zend/zend_language_scanner.c" yy215: YYDEBUG(215, *YYCURSOR); ++YYCURSOR; YYDEBUG(216, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1389 "Zend/zend_language_scanner.l" +#line 1391 "Zend/zend_language_scanner.l" { return T_BOOLEAN_OR; } -#line 3400 "Zend/zend_language_scanner.c" +#line 3402 "Zend/zend_language_scanner.c" yy217: YYDEBUG(217, *YYCURSOR); ++YYCURSOR; YYDEBUG(218, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1381 "Zend/zend_language_scanner.l" +#line 1383 "Zend/zend_language_scanner.l" { return T_OR_EQUAL; } -#line 3410 "Zend/zend_language_scanner.c" +#line 3412 "Zend/zend_language_scanner.c" yy219: YYDEBUG(219, *YYCURSOR); ++YYCURSOR; YYDEBUG(220, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1393 "Zend/zend_language_scanner.l" +#line 1395 "Zend/zend_language_scanner.l" { return T_BOOLEAN_AND; } -#line 3420 "Zend/zend_language_scanner.c" +#line 3422 "Zend/zend_language_scanner.c" yy221: YYDEBUG(221, *YYCURSOR); ++YYCURSOR; YYDEBUG(222, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1377 "Zend/zend_language_scanner.l" +#line 1379 "Zend/zend_language_scanner.l" { return T_AND_EQUAL; } -#line 3430 "Zend/zend_language_scanner.c" +#line 3432 "Zend/zend_language_scanner.c" yy223: YYDEBUG(223, *YYCURSOR); ++YYCURSOR; @@ -3435,7 +3437,7 @@ yy223: yy224: YYDEBUG(224, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1899 "Zend/zend_language_scanner.l" +#line 1901 "Zend/zend_language_scanner.l" { if (CG(asp_tags)) { BEGIN(INITIAL); @@ -3448,17 +3450,17 @@ yy224: return yytext[0]; } } -#line 3452 "Zend/zend_language_scanner.c" +#line 3454 "Zend/zend_language_scanner.c" yy225: YYDEBUG(225, *YYCURSOR); ++YYCURSOR; YYDEBUG(226, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1365 "Zend/zend_language_scanner.l" +#line 1367 "Zend/zend_language_scanner.l" { return T_MOD_EQUAL; } -#line 3462 "Zend/zend_language_scanner.c" +#line 3464 "Zend/zend_language_scanner.c" yy227: YYDEBUG(227, *YYCURSOR); yych = *++YYCURSOR; @@ -3489,11 +3491,11 @@ yy231: ++YYCURSOR; YYDEBUG(232, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1361 "Zend/zend_language_scanner.l" +#line 1363 "Zend/zend_language_scanner.l" { return T_CONCAT_EQUAL; } -#line 3497 "Zend/zend_language_scanner.c" +#line 3499 "Zend/zend_language_scanner.c" yy233: YYDEBUG(233, *YYCURSOR); yyaccept = 4; @@ -3502,7 +3504,7 @@ yy233: yy234: YYDEBUG(234, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1856 "Zend/zend_language_scanner.l" +#line 1858 "Zend/zend_language_scanner.l" { int doc_com; @@ -3536,7 +3538,7 @@ yy234: return T_COMMENT; } -#line 3540 "Zend/zend_language_scanner.c" +#line 3542 "Zend/zend_language_scanner.c" yy235: YYDEBUG(235, *YYCURSOR); yych = *++YYCURSOR; @@ -3546,11 +3548,11 @@ yy236: ++YYCURSOR; YYDEBUG(237, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1357 "Zend/zend_language_scanner.l" +#line 1359 "Zend/zend_language_scanner.l" { return T_DIV_EQUAL; } -#line 3554 "Zend/zend_language_scanner.c" +#line 3556 "Zend/zend_language_scanner.c" yy238: YYDEBUG(238, *YYCURSOR); yych = *++YYCURSOR; @@ -3573,42 +3575,42 @@ yy241: ++YYCURSOR; YYDEBUG(242, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1353 "Zend/zend_language_scanner.l" +#line 1355 "Zend/zend_language_scanner.l" { return T_MUL_EQUAL; } -#line 3581 "Zend/zend_language_scanner.c" +#line 3583 "Zend/zend_language_scanner.c" yy243: YYDEBUG(243, *YYCURSOR); ++YYCURSOR; if ((yych = *YYCURSOR) == '=') goto yy247; YYDEBUG(244, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1413 "Zend/zend_language_scanner.l" +#line 1415 "Zend/zend_language_scanner.l" { return T_SR; } -#line 3592 "Zend/zend_language_scanner.c" +#line 3594 "Zend/zend_language_scanner.c" yy245: YYDEBUG(245, *YYCURSOR); ++YYCURSOR; YYDEBUG(246, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1341 "Zend/zend_language_scanner.l" +#line 1343 "Zend/zend_language_scanner.l" { return T_IS_GREATER_OR_EQUAL; } -#line 3602 "Zend/zend_language_scanner.c" +#line 3604 "Zend/zend_language_scanner.c" yy247: YYDEBUG(247, *YYCURSOR); ++YYCURSOR; YYDEBUG(248, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1373 "Zend/zend_language_scanner.l" +#line 1375 "Zend/zend_language_scanner.l" { return T_SR_EQUAL; } -#line 3612 "Zend/zend_language_scanner.c" +#line 3614 "Zend/zend_language_scanner.c" yy249: YYDEBUG(249, *YYCURSOR); yyaccept = 5; @@ -3619,11 +3621,11 @@ yy249: yy250: YYDEBUG(250, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1409 "Zend/zend_language_scanner.l" +#line 1411 "Zend/zend_language_scanner.l" { return T_SL; } -#line 3627 "Zend/zend_language_scanner.c" +#line 3629 "Zend/zend_language_scanner.c" yy251: YYDEBUG(251, *YYCURSOR); yych = *++YYCURSOR; @@ -3635,22 +3637,22 @@ yy252: ++YYCURSOR; YYDEBUG(253, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1337 "Zend/zend_language_scanner.l" +#line 1339 "Zend/zend_language_scanner.l" { return T_IS_SMALLER_OR_EQUAL; } -#line 3643 "Zend/zend_language_scanner.c" +#line 3645 "Zend/zend_language_scanner.c" yy254: YYDEBUG(254, *YYCURSOR); ++YYCURSOR; yy255: YYDEBUG(255, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1333 "Zend/zend_language_scanner.l" +#line 1335 "Zend/zend_language_scanner.l" { return T_IS_NOT_EQUAL; } -#line 3654 "Zend/zend_language_scanner.c" +#line 3656 "Zend/zend_language_scanner.c" yy256: YYDEBUG(256, *YYCURSOR); yych = *++YYCURSOR; @@ -3701,11 +3703,11 @@ yy263: ++YYCURSOR; YYDEBUG(264, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1369 "Zend/zend_language_scanner.l" +#line 1371 "Zend/zend_language_scanner.l" { return T_SL_EQUAL; } -#line 3709 "Zend/zend_language_scanner.c" +#line 3711 "Zend/zend_language_scanner.c" yy265: YYDEBUG(265, *YYCURSOR); ++YYCURSOR; @@ -3810,7 +3812,7 @@ yy274: yy275: YYDEBUG(275, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2024 "Zend/zend_language_scanner.l" +#line 2026 "Zend/zend_language_scanner.l" { char *s; int bprefix = (yytext[0] != '<') ? 1 : 0; @@ -3858,7 +3860,7 @@ yy275: return T_START_HEREDOC; } -#line 3862 "Zend/zend_language_scanner.c" +#line 3864 "Zend/zend_language_scanner.c" yy276: YYDEBUG(276, *YYCURSOR); yych = *++YYCURSOR; @@ -3898,31 +3900,31 @@ yy279: ++YYCURSOR; YYDEBUG(281, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1325 "Zend/zend_language_scanner.l" +#line 1327 "Zend/zend_language_scanner.l" { return T_IS_NOT_IDENTICAL; } -#line 3906 "Zend/zend_language_scanner.c" +#line 3908 "Zend/zend_language_scanner.c" yy282: YYDEBUG(282, *YYCURSOR); ++YYCURSOR; YYDEBUG(283, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1345 "Zend/zend_language_scanner.l" +#line 1347 "Zend/zend_language_scanner.l" { return T_PLUS_EQUAL; } -#line 3916 "Zend/zend_language_scanner.c" +#line 3918 "Zend/zend_language_scanner.c" yy284: YYDEBUG(284, *YYCURSOR); ++YYCURSOR; YYDEBUG(285, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1313 "Zend/zend_language_scanner.l" +#line 1315 "Zend/zend_language_scanner.l" { return T_INC; } -#line 3926 "Zend/zend_language_scanner.c" +#line 3928 "Zend/zend_language_scanner.c" yy286: YYDEBUG(286, *YYCURSOR); yych = *++YYCURSOR; @@ -3941,42 +3943,42 @@ yy288: } YYDEBUG(289, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1305 "Zend/zend_language_scanner.l" +#line 1307 "Zend/zend_language_scanner.l" { return T_LIST; } -#line 3949 "Zend/zend_language_scanner.c" +#line 3951 "Zend/zend_language_scanner.c" yy290: YYDEBUG(290, *YYCURSOR); ++YYCURSOR; if ((yych = *YYCURSOR) == '=') goto yy294; YYDEBUG(291, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1329 "Zend/zend_language_scanner.l" +#line 1331 "Zend/zend_language_scanner.l" { return T_IS_EQUAL; } -#line 3960 "Zend/zend_language_scanner.c" +#line 3962 "Zend/zend_language_scanner.c" yy292: YYDEBUG(292, *YYCURSOR); ++YYCURSOR; YYDEBUG(293, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1301 "Zend/zend_language_scanner.l" +#line 1303 "Zend/zend_language_scanner.l" { return T_DOUBLE_ARROW; } -#line 3970 "Zend/zend_language_scanner.c" +#line 3972 "Zend/zend_language_scanner.c" yy294: YYDEBUG(294, *YYCURSOR); ++YYCURSOR; YYDEBUG(295, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1321 "Zend/zend_language_scanner.l" +#line 1323 "Zend/zend_language_scanner.l" { return T_IS_IDENTICAL; } -#line 3980 "Zend/zend_language_scanner.c" +#line 3982 "Zend/zend_language_scanner.c" yy296: YYDEBUG(296, *YYCURSOR); yych = *++YYCURSOR; @@ -4098,7 +4100,7 @@ yy311: } YYDEBUG(314, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1625 "Zend/zend_language_scanner.l" +#line 1627 "Zend/zend_language_scanner.l" { if (CG(current_namespace)) { *zendlval = *CG(current_namespace); @@ -4108,7 +4110,7 @@ yy311: } return T_NS_C; } -#line 4112 "Zend/zend_language_scanner.c" +#line 4114 "Zend/zend_language_scanner.c" yy315: YYDEBUG(315, *YYCURSOR); yych = *++YYCURSOR; @@ -4128,7 +4130,7 @@ yy316: } YYDEBUG(319, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1598 "Zend/zend_language_scanner.l" +#line 1600 "Zend/zend_language_scanner.l" { char *filename = zend_get_compiled_filename(TSRMLS_C); const size_t filename_len = strlen(filename); @@ -4155,7 +4157,7 @@ yy316: zendlval->type = IS_STRING; return T_DIR; } -#line 4159 "Zend/zend_language_scanner.c" +#line 4161 "Zend/zend_language_scanner.c" yy320: YYDEBUG(320, *YYCURSOR); yych = *++YYCURSOR; @@ -4180,13 +4182,13 @@ yy322: } YYDEBUG(325, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1580 "Zend/zend_language_scanner.l" +#line 1582 "Zend/zend_language_scanner.l" { zendlval->value.lval = CG(zend_lineno); zendlval->type = IS_LONG; return T_LINE; } -#line 4190 "Zend/zend_language_scanner.c" +#line 4192 "Zend/zend_language_scanner.c" yy326: YYDEBUG(326, *YYCURSOR); yych = *++YYCURSOR; @@ -4221,7 +4223,7 @@ yy330: } YYDEBUG(333, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1559 "Zend/zend_language_scanner.l" +#line 1561 "Zend/zend_language_scanner.l" { char *class_name = CG(active_class_entry) ? CG(active_class_entry)->name : NULL; char *func_name = CG(active_op_array)? CG(active_op_array)->function_name : NULL; @@ -4242,7 +4244,7 @@ yy330: zendlval->type = IS_STRING; return T_METHOD_C; } -#line 4246 "Zend/zend_language_scanner.c" +#line 4248 "Zend/zend_language_scanner.c" yy334: YYDEBUG(334, *YYCURSOR); yych = *++YYCURSOR; @@ -4293,7 +4295,7 @@ yy341: } YYDEBUG(344, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1543 "Zend/zend_language_scanner.l" +#line 1545 "Zend/zend_language_scanner.l" { char *func_name = NULL; @@ -4309,7 +4311,7 @@ yy341: zendlval->type = IS_STRING; return T_FUNC_C; } -#line 4313 "Zend/zend_language_scanner.c" +#line 4315 "Zend/zend_language_scanner.c" yy345: YYDEBUG(345, *YYCURSOR); yych = *++YYCURSOR; @@ -4329,7 +4331,7 @@ yy346: } YYDEBUG(349, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1586 "Zend/zend_language_scanner.l" +#line 1588 "Zend/zend_language_scanner.l" { char *filename = zend_get_compiled_filename(TSRMLS_C); @@ -4341,7 +4343,7 @@ yy346: zendlval->type = IS_STRING; return T_FILE; } -#line 4345 "Zend/zend_language_scanner.c" +#line 4347 "Zend/zend_language_scanner.c" yy350: YYDEBUG(350, *YYCURSOR); yych = *++YYCURSOR; @@ -4371,7 +4373,7 @@ yy353: } YYDEBUG(356, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1527 "Zend/zend_language_scanner.l" +#line 1529 "Zend/zend_language_scanner.l" { char *class_name = NULL; @@ -4387,7 +4389,7 @@ yy353: zendlval->type = IS_STRING; return T_CLASS_C; } -#line 4391 "Zend/zend_language_scanner.c" +#line 4393 "Zend/zend_language_scanner.c" yy357: YYDEBUG(357, *YYCURSOR); yych = *++YYCURSOR; @@ -4449,11 +4451,11 @@ yy368: } YYDEBUG(369, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1269 "Zend/zend_language_scanner.l" +#line 1271 "Zend/zend_language_scanner.l" { return T_HALT_COMPILER; } -#line 4457 "Zend/zend_language_scanner.c" +#line 4459 "Zend/zend_language_scanner.c" yy370: YYDEBUG(370, *YYCURSOR); yych = *++YYCURSOR; @@ -4473,11 +4475,11 @@ yy372: } YYDEBUG(373, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1249 "Zend/zend_language_scanner.l" +#line 1251 "Zend/zend_language_scanner.l" { return T_USE; } -#line 4481 "Zend/zend_language_scanner.c" +#line 4483 "Zend/zend_language_scanner.c" yy374: YYDEBUG(374, *YYCURSOR); yych = *++YYCURSOR; @@ -4496,11 +4498,11 @@ yy376: } YYDEBUG(377, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1297 "Zend/zend_language_scanner.l" +#line 1299 "Zend/zend_language_scanner.l" { return T_UNSET; } -#line 4504 "Zend/zend_language_scanner.c" +#line 4506 "Zend/zend_language_scanner.c" yy378: YYDEBUG(378, *YYCURSOR); ++YYCURSOR; @@ -4672,11 +4674,11 @@ yy393: ++YYCURSOR; YYDEBUG(395, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1197 "Zend/zend_language_scanner.l" +#line 1199 "Zend/zend_language_scanner.l" { return T_INT_CAST; } -#line 4680 "Zend/zend_language_scanner.c" +#line 4682 "Zend/zend_language_scanner.c" yy396: YYDEBUG(396, *YYCURSOR); yych = *++YYCURSOR; @@ -4720,11 +4722,11 @@ yy401: ++YYCURSOR; YYDEBUG(404, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1201 "Zend/zend_language_scanner.l" +#line 1203 "Zend/zend_language_scanner.l" { return T_DOUBLE_CAST; } -#line 4728 "Zend/zend_language_scanner.c" +#line 4730 "Zend/zend_language_scanner.c" yy405: YYDEBUG(405, *YYCURSOR); yych = *++YYCURSOR; @@ -4794,11 +4796,11 @@ yy415: ++YYCURSOR; YYDEBUG(418, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1205 "Zend/zend_language_scanner.l" +#line 1207 "Zend/zend_language_scanner.l" { return T_STRING_CAST; } -#line 4802 "Zend/zend_language_scanner.c" +#line 4804 "Zend/zend_language_scanner.c" yy419: YYDEBUG(419, *YYCURSOR); yych = *++YYCURSOR; @@ -4831,11 +4833,11 @@ yy422: ++YYCURSOR; YYDEBUG(425, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1209 "Zend/zend_language_scanner.l" +#line 1211 "Zend/zend_language_scanner.l" { return T_ARRAY_CAST; } -#line 4839 "Zend/zend_language_scanner.c" +#line 4841 "Zend/zend_language_scanner.c" yy426: YYDEBUG(426, *YYCURSOR); yych = *++YYCURSOR; @@ -4873,11 +4875,11 @@ yy430: ++YYCURSOR; YYDEBUG(433, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1213 "Zend/zend_language_scanner.l" +#line 1215 "Zend/zend_language_scanner.l" { return T_OBJECT_CAST; } -#line 4881 "Zend/zend_language_scanner.c" +#line 4883 "Zend/zend_language_scanner.c" yy434: YYDEBUG(434, *YYCURSOR); yych = *++YYCURSOR; @@ -4918,11 +4920,11 @@ yy439: ++YYCURSOR; YYDEBUG(441, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1217 "Zend/zend_language_scanner.l" +#line 1219 "Zend/zend_language_scanner.l" { return T_BOOL_CAST; } -#line 4926 "Zend/zend_language_scanner.c" +#line 4928 "Zend/zend_language_scanner.c" yy442: YYDEBUG(442, *YYCURSOR); yych = *++YYCURSOR; @@ -4982,11 +4984,11 @@ yy450: ++YYCURSOR; YYDEBUG(453, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1221 "Zend/zend_language_scanner.l" +#line 1223 "Zend/zend_language_scanner.l" { return T_UNSET_CAST; } -#line 4990 "Zend/zend_language_scanner.c" +#line 4992 "Zend/zend_language_scanner.c" yy454: YYDEBUG(454, *YYCURSOR); yych = *++YYCURSOR; @@ -5000,11 +5002,11 @@ yy455: } YYDEBUG(456, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1193 "Zend/zend_language_scanner.l" +#line 1195 "Zend/zend_language_scanner.l" { return T_VAR; } -#line 5008 "Zend/zend_language_scanner.c" +#line 5010 "Zend/zend_language_scanner.c" yy457: YYDEBUG(457, *YYCURSOR); yych = *++YYCURSOR; @@ -5024,11 +5026,11 @@ yy459: } YYDEBUG(460, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1185 "Zend/zend_language_scanner.l" +#line 1187 "Zend/zend_language_scanner.l" { return T_NEW; } -#line 5032 "Zend/zend_language_scanner.c" +#line 5034 "Zend/zend_language_scanner.c" yy461: YYDEBUG(461, *YYCURSOR); yych = *++YYCURSOR; @@ -5067,21 +5069,21 @@ yy467: } YYDEBUG(468, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1245 "Zend/zend_language_scanner.l" +#line 1247 "Zend/zend_language_scanner.l" { return T_NAMESPACE; } -#line 5075 "Zend/zend_language_scanner.c" +#line 5077 "Zend/zend_language_scanner.c" yy469: YYDEBUG(469, *YYCURSOR); ++YYCURSOR; YYDEBUG(470, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1177 "Zend/zend_language_scanner.l" +#line 1179 "Zend/zend_language_scanner.l" { return T_PAAMAYIM_NEKUDOTAYIM; } -#line 5085 "Zend/zend_language_scanner.c" +#line 5087 "Zend/zend_language_scanner.c" yy471: YYDEBUG(471, *YYCURSOR); ++YYCURSOR; @@ -5103,32 +5105,32 @@ yy473: ++YYCURSOR; YYDEBUG(474, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1349 "Zend/zend_language_scanner.l" +#line 1351 "Zend/zend_language_scanner.l" { return T_MINUS_EQUAL; } -#line 5111 "Zend/zend_language_scanner.c" +#line 5113 "Zend/zend_language_scanner.c" yy475: YYDEBUG(475, *YYCURSOR); ++YYCURSOR; YYDEBUG(476, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1317 "Zend/zend_language_scanner.l" +#line 1319 "Zend/zend_language_scanner.l" { return T_DEC; } -#line 5121 "Zend/zend_language_scanner.c" +#line 5123 "Zend/zend_language_scanner.c" yy477: YYDEBUG(477, *YYCURSOR); ++YYCURSOR; YYDEBUG(478, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1147 "Zend/zend_language_scanner.l" +#line 1149 "Zend/zend_language_scanner.l" { yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC); return T_OBJECT_OPERATOR; } -#line 5132 "Zend/zend_language_scanner.c" +#line 5134 "Zend/zend_language_scanner.c" yy479: YYDEBUG(479, *YYCURSOR); yych = *++YYCURSOR; @@ -5173,11 +5175,11 @@ yy484: } YYDEBUG(485, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1293 "Zend/zend_language_scanner.l" +#line 1295 "Zend/zend_language_scanner.l" { return T_PUBLIC; } -#line 5181 "Zend/zend_language_scanner.c" +#line 5183 "Zend/zend_language_scanner.c" yy486: YYDEBUG(486, *YYCURSOR); yych = *++YYCURSOR; @@ -5232,11 +5234,11 @@ yy493: } YYDEBUG(494, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1289 "Zend/zend_language_scanner.l" +#line 1291 "Zend/zend_language_scanner.l" { return T_PROTECTED; } -#line 5240 "Zend/zend_language_scanner.c" +#line 5242 "Zend/zend_language_scanner.c" yy495: YYDEBUG(495, *YYCURSOR); yych = *++YYCURSOR; @@ -5266,11 +5268,11 @@ yy499: } YYDEBUG(500, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1285 "Zend/zend_language_scanner.l" +#line 1287 "Zend/zend_language_scanner.l" { return T_PRIVATE; } -#line 5274 "Zend/zend_language_scanner.c" +#line 5276 "Zend/zend_language_scanner.c" yy501: YYDEBUG(501, *YYCURSOR); ++YYCURSOR; @@ -5279,11 +5281,11 @@ yy501: } YYDEBUG(502, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1123 "Zend/zend_language_scanner.l" +#line 1125 "Zend/zend_language_scanner.l" { return T_PRINT; } -#line 5287 "Zend/zend_language_scanner.c" +#line 5289 "Zend/zend_language_scanner.c" yy503: YYDEBUG(503, *YYCURSOR); yych = *++YYCURSOR; @@ -5308,11 +5310,11 @@ yy506: } YYDEBUG(507, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1115 "Zend/zend_language_scanner.l" +#line 1117 "Zend/zend_language_scanner.l" { return T_GOTO; } -#line 5316 "Zend/zend_language_scanner.c" +#line 5318 "Zend/zend_language_scanner.c" yy508: YYDEBUG(508, *YYCURSOR); yych = *++YYCURSOR; @@ -5336,11 +5338,11 @@ yy511: } YYDEBUG(512, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1257 "Zend/zend_language_scanner.l" +#line 1259 "Zend/zend_language_scanner.l" { return T_GLOBAL; } -#line 5344 "Zend/zend_language_scanner.c" +#line 5346 "Zend/zend_language_scanner.c" yy513: YYDEBUG(513, *YYCURSOR); yych = *++YYCURSOR; @@ -5377,11 +5379,11 @@ yy519: } YYDEBUG(520, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1107 "Zend/zend_language_scanner.l" +#line 1109 "Zend/zend_language_scanner.l" { return T_BREAK; } -#line 5385 "Zend/zend_language_scanner.c" +#line 5387 "Zend/zend_language_scanner.c" yy521: YYDEBUG(521, *YYCURSOR); yych = *++YYCURSOR; @@ -5421,11 +5423,11 @@ yy527: } YYDEBUG(528, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1091 "Zend/zend_language_scanner.l" +#line 1093 "Zend/zend_language_scanner.l" { return T_SWITCH; } -#line 5429 "Zend/zend_language_scanner.c" +#line 5431 "Zend/zend_language_scanner.c" yy529: YYDEBUG(529, *YYCURSOR); yych = *++YYCURSOR; @@ -5449,11 +5451,11 @@ yy532: } YYDEBUG(533, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1273 "Zend/zend_language_scanner.l" +#line 1275 "Zend/zend_language_scanner.l" { return T_STATIC; } -#line 5457 "Zend/zend_language_scanner.c" +#line 5459 "Zend/zend_language_scanner.c" yy534: YYDEBUG(534, *YYCURSOR); yych = *++YYCURSOR; @@ -5480,11 +5482,11 @@ yy537: } YYDEBUG(538, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1087 "Zend/zend_language_scanner.l" +#line 1089 "Zend/zend_language_scanner.l" { return T_AS; } -#line 5488 "Zend/zend_language_scanner.c" +#line 5490 "Zend/zend_language_scanner.c" yy539: YYDEBUG(539, *YYCURSOR); yych = *++YYCURSOR; @@ -5503,11 +5505,11 @@ yy541: } YYDEBUG(542, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1309 "Zend/zend_language_scanner.l" +#line 1311 "Zend/zend_language_scanner.l" { return T_ARRAY; } -#line 5511 "Zend/zend_language_scanner.c" +#line 5513 "Zend/zend_language_scanner.c" yy543: YYDEBUG(543, *YYCURSOR); ++YYCURSOR; @@ -5516,11 +5518,11 @@ yy543: } YYDEBUG(544, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1401 "Zend/zend_language_scanner.l" +#line 1403 "Zend/zend_language_scanner.l" { return T_LOGICAL_AND; } -#line 5524 "Zend/zend_language_scanner.c" +#line 5526 "Zend/zend_language_scanner.c" yy545: YYDEBUG(545, *YYCURSOR); yych = *++YYCURSOR; @@ -5554,11 +5556,11 @@ yy550: } YYDEBUG(551, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1277 "Zend/zend_language_scanner.l" +#line 1279 "Zend/zend_language_scanner.l" { return T_ABSTRACT; } -#line 5562 "Zend/zend_language_scanner.c" +#line 5564 "Zend/zend_language_scanner.c" yy552: YYDEBUG(552, *YYCURSOR); yych = *++YYCURSOR; @@ -5582,11 +5584,11 @@ yy555: } YYDEBUG(556, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1047 "Zend/zend_language_scanner.l" +#line 1049 "Zend/zend_language_scanner.l" { return T_WHILE; } -#line 5590 "Zend/zend_language_scanner.c" +#line 5592 "Zend/zend_language_scanner.c" yy557: YYDEBUG(557, *YYCURSOR); ++YYCURSOR; @@ -5595,11 +5597,11 @@ yy557: } YYDEBUG(558, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1031 "Zend/zend_language_scanner.l" +#line 1033 "Zend/zend_language_scanner.l" { return T_IF; } -#line 5603 "Zend/zend_language_scanner.c" +#line 5605 "Zend/zend_language_scanner.c" yy559: YYDEBUG(559, *YYCURSOR); yych = *++YYCURSOR; @@ -5651,11 +5653,11 @@ yy564: } YYDEBUG(565, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1261 "Zend/zend_language_scanner.l" +#line 1263 "Zend/zend_language_scanner.l" { return T_ISSET; } -#line 5659 "Zend/zend_language_scanner.c" +#line 5661 "Zend/zend_language_scanner.c" yy566: YYDEBUG(566, *YYCURSOR); yych = *++YYCURSOR; @@ -5709,11 +5711,11 @@ yy572: yy573: YYDEBUG(573, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1229 "Zend/zend_language_scanner.l" +#line 1231 "Zend/zend_language_scanner.l" { return T_INCLUDE; } -#line 5717 "Zend/zend_language_scanner.c" +#line 5719 "Zend/zend_language_scanner.c" yy574: YYDEBUG(574, *YYCURSOR); yych = *++YYCURSOR; @@ -5742,11 +5744,11 @@ yy578: } YYDEBUG(579, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1233 "Zend/zend_language_scanner.l" +#line 1235 "Zend/zend_language_scanner.l" { return T_INCLUDE_ONCE; } -#line 5750 "Zend/zend_language_scanner.c" +#line 5752 "Zend/zend_language_scanner.c" yy580: YYDEBUG(580, *YYCURSOR); yych = *++YYCURSOR; @@ -5780,11 +5782,11 @@ yy585: } YYDEBUG(586, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1131 "Zend/zend_language_scanner.l" +#line 1133 "Zend/zend_language_scanner.l" { return T_INTERFACE; } -#line 5788 "Zend/zend_language_scanner.c" +#line 5790 "Zend/zend_language_scanner.c" yy587: YYDEBUG(587, *YYCURSOR); yych = *++YYCURSOR; @@ -5834,11 +5836,11 @@ yy593: } YYDEBUG(594, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1253 "Zend/zend_language_scanner.l" +#line 1255 "Zend/zend_language_scanner.l" { return T_INSTEADOF; } -#line 5842 "Zend/zend_language_scanner.c" +#line 5844 "Zend/zend_language_scanner.c" yy595: YYDEBUG(595, *YYCURSOR); yych = *++YYCURSOR; @@ -5867,11 +5869,11 @@ yy599: } YYDEBUG(600, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1083 "Zend/zend_language_scanner.l" +#line 1085 "Zend/zend_language_scanner.l" { return T_INSTANCEOF; } -#line 5875 "Zend/zend_language_scanner.c" +#line 5877 "Zend/zend_language_scanner.c" yy601: YYDEBUG(601, *YYCURSOR); yych = *++YYCURSOR; @@ -5915,11 +5917,11 @@ yy608: } YYDEBUG(609, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1143 "Zend/zend_language_scanner.l" +#line 1145 "Zend/zend_language_scanner.l" { return T_IMPLEMENTS; } -#line 5923 "Zend/zend_language_scanner.c" +#line 5925 "Zend/zend_language_scanner.c" yy610: YYDEBUG(610, *YYCURSOR); yych = *++YYCURSOR; @@ -5947,11 +5949,11 @@ yy611: } YYDEBUG(613, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1019 "Zend/zend_language_scanner.l" +#line 1021 "Zend/zend_language_scanner.l" { return T_TRY; } -#line 5955 "Zend/zend_language_scanner.c" +#line 5957 "Zend/zend_language_scanner.c" yy614: YYDEBUG(614, *YYCURSOR); yych = *++YYCURSOR; @@ -5970,11 +5972,11 @@ yy616: } YYDEBUG(617, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1135 "Zend/zend_language_scanner.l" +#line 1137 "Zend/zend_language_scanner.l" { return T_TRAIT; } -#line 5978 "Zend/zend_language_scanner.c" +#line 5980 "Zend/zend_language_scanner.c" yy618: YYDEBUG(618, *YYCURSOR); yych = *++YYCURSOR; @@ -5993,11 +5995,11 @@ yy620: } YYDEBUG(621, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1027 "Zend/zend_language_scanner.l" +#line 1029 "Zend/zend_language_scanner.l" { return T_THROW; } -#line 6001 "Zend/zend_language_scanner.c" +#line 6003 "Zend/zend_language_scanner.c" yy622: YYDEBUG(622, *YYCURSOR); yych = *++YYCURSOR; @@ -6058,11 +6060,11 @@ yy628: yy629: YYDEBUG(629, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1237 "Zend/zend_language_scanner.l" +#line 1239 "Zend/zend_language_scanner.l" { return T_REQUIRE; } -#line 6066 "Zend/zend_language_scanner.c" +#line 6068 "Zend/zend_language_scanner.c" yy630: YYDEBUG(630, *YYCURSOR); yych = *++YYCURSOR; @@ -6091,11 +6093,11 @@ yy634: } YYDEBUG(635, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1241 "Zend/zend_language_scanner.l" +#line 1243 "Zend/zend_language_scanner.l" { return T_REQUIRE_ONCE; } -#line 6099 "Zend/zend_language_scanner.c" +#line 6101 "Zend/zend_language_scanner.c" yy636: YYDEBUG(636, *YYCURSOR); yych = *++YYCURSOR; @@ -6114,11 +6116,11 @@ yy638: } YYDEBUG(639, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1015 "Zend/zend_language_scanner.l" +#line 1017 "Zend/zend_language_scanner.l" { return T_RETURN; } -#line 6122 "Zend/zend_language_scanner.c" +#line 6124 "Zend/zend_language_scanner.c" yy640: YYDEBUG(640, *YYCURSOR); yych = *++YYCURSOR; @@ -6199,11 +6201,11 @@ yy649: } YYDEBUG(650, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1111 "Zend/zend_language_scanner.l" +#line 1113 "Zend/zend_language_scanner.l" { return T_CONTINUE; } -#line 6207 "Zend/zend_language_scanner.c" +#line 6209 "Zend/zend_language_scanner.c" yy651: YYDEBUG(651, *YYCURSOR); ++YYCURSOR; @@ -6212,11 +6214,11 @@ yy651: } YYDEBUG(652, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1011 "Zend/zend_language_scanner.l" +#line 1013 "Zend/zend_language_scanner.l" { return T_CONST; } -#line 6220 "Zend/zend_language_scanner.c" +#line 6222 "Zend/zend_language_scanner.c" yy653: YYDEBUG(653, *YYCURSOR); yych = *++YYCURSOR; @@ -6241,11 +6243,11 @@ yy656: } YYDEBUG(657, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1189 "Zend/zend_language_scanner.l" +#line 1191 "Zend/zend_language_scanner.l" { return T_CLONE; } -#line 6249 "Zend/zend_language_scanner.c" +#line 6251 "Zend/zend_language_scanner.c" yy658: YYDEBUG(658, *YYCURSOR); yych = *++YYCURSOR; @@ -6259,11 +6261,11 @@ yy659: } YYDEBUG(660, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1127 "Zend/zend_language_scanner.l" +#line 1129 "Zend/zend_language_scanner.l" { return T_CLASS; } -#line 6267 "Zend/zend_language_scanner.c" +#line 6269 "Zend/zend_language_scanner.c" yy661: YYDEBUG(661, *YYCURSOR); yych = *++YYCURSOR; @@ -6283,11 +6285,11 @@ yy663: } YYDEBUG(664, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1099 "Zend/zend_language_scanner.l" +#line 1101 "Zend/zend_language_scanner.l" { return T_CASE; } -#line 6291 "Zend/zend_language_scanner.c" +#line 6293 "Zend/zend_language_scanner.c" yy665: YYDEBUG(665, *YYCURSOR); yych = *++YYCURSOR; @@ -6301,11 +6303,11 @@ yy666: } YYDEBUG(667, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1023 "Zend/zend_language_scanner.l" +#line 1025 "Zend/zend_language_scanner.l" { return T_CATCH; } -#line 6309 "Zend/zend_language_scanner.c" +#line 6311 "Zend/zend_language_scanner.c" yy668: YYDEBUG(668, *YYCURSOR); yych = *++YYCURSOR; @@ -6356,11 +6358,11 @@ yy676: } YYDEBUG(677, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1007 "Zend/zend_language_scanner.l" +#line 1009 "Zend/zend_language_scanner.l" { return T_FUNCTION; } -#line 6364 "Zend/zend_language_scanner.c" +#line 6366 "Zend/zend_language_scanner.c" yy678: YYDEBUG(678, *YYCURSOR); ++YYCURSOR; @@ -6384,11 +6386,11 @@ yy678: yy679: YYDEBUG(679, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1059 "Zend/zend_language_scanner.l" +#line 1061 "Zend/zend_language_scanner.l" { return T_FOR; } -#line 6392 "Zend/zend_language_scanner.c" +#line 6394 "Zend/zend_language_scanner.c" yy680: YYDEBUG(680, *YYCURSOR); yych = *++YYCURSOR; @@ -6412,11 +6414,11 @@ yy683: } YYDEBUG(684, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1067 "Zend/zend_language_scanner.l" +#line 1069 "Zend/zend_language_scanner.l" { return T_FOREACH; } -#line 6420 "Zend/zend_language_scanner.c" +#line 6422 "Zend/zend_language_scanner.c" yy685: YYDEBUG(685, *YYCURSOR); yych = *++YYCURSOR; @@ -6435,11 +6437,11 @@ yy687: } YYDEBUG(688, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1281 "Zend/zend_language_scanner.l" +#line 1283 "Zend/zend_language_scanner.l" { return T_FINAL; } -#line 6443 "Zend/zend_language_scanner.c" +#line 6445 "Zend/zend_language_scanner.c" yy689: YYDEBUG(689, *YYCURSOR); yych = *++YYCURSOR; @@ -6470,11 +6472,11 @@ yy691: } YYDEBUG(692, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1055 "Zend/zend_language_scanner.l" +#line 1057 "Zend/zend_language_scanner.l" { return T_DO; } -#line 6478 "Zend/zend_language_scanner.c" +#line 6480 "Zend/zend_language_scanner.c" yy693: YYDEBUG(693, *YYCURSOR); ++YYCURSOR; @@ -6483,11 +6485,11 @@ yy693: } YYDEBUG(694, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1003 "Zend/zend_language_scanner.l" +#line 1005 "Zend/zend_language_scanner.l" { return T_EXIT; } -#line 6491 "Zend/zend_language_scanner.c" +#line 6493 "Zend/zend_language_scanner.c" yy695: YYDEBUG(695, *YYCURSOR); yych = *++YYCURSOR; @@ -6522,11 +6524,11 @@ yy700: } YYDEBUG(701, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1103 "Zend/zend_language_scanner.l" +#line 1105 "Zend/zend_language_scanner.l" { return T_DEFAULT; } -#line 6530 "Zend/zend_language_scanner.c" +#line 6532 "Zend/zend_language_scanner.c" yy702: YYDEBUG(702, *YYCURSOR); yych = *++YYCURSOR; @@ -6550,11 +6552,11 @@ yy705: } YYDEBUG(706, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1075 "Zend/zend_language_scanner.l" +#line 1077 "Zend/zend_language_scanner.l" { return T_DECLARE; } -#line 6558 "Zend/zend_language_scanner.c" +#line 6560 "Zend/zend_language_scanner.c" yy707: YYDEBUG(707, *YYCURSOR); yych = *++YYCURSOR; @@ -6634,11 +6636,11 @@ yy718: } YYDEBUG(719, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1139 "Zend/zend_language_scanner.l" +#line 1141 "Zend/zend_language_scanner.l" { return T_EXTENDS; } -#line 6642 "Zend/zend_language_scanner.c" +#line 6644 "Zend/zend_language_scanner.c" yy720: YYDEBUG(720, *YYCURSOR); ++YYCURSOR; @@ -6647,11 +6649,11 @@ yy720: } YYDEBUG(721, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 999 "Zend/zend_language_scanner.l" +#line 1001 "Zend/zend_language_scanner.l" { return T_EXIT; } -#line 6655 "Zend/zend_language_scanner.c" +#line 6657 "Zend/zend_language_scanner.c" yy722: YYDEBUG(722, *YYCURSOR); yych = *++YYCURSOR; @@ -6665,11 +6667,11 @@ yy723: } YYDEBUG(724, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1225 "Zend/zend_language_scanner.l" +#line 1227 "Zend/zend_language_scanner.l" { return T_EVAL; } -#line 6673 "Zend/zend_language_scanner.c" +#line 6675 "Zend/zend_language_scanner.c" yy725: YYDEBUG(725, *YYCURSOR); yych = *++YYCURSOR; @@ -6739,11 +6741,11 @@ yy734: } YYDEBUG(735, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1051 "Zend/zend_language_scanner.l" +#line 1053 "Zend/zend_language_scanner.l" { return T_ENDWHILE; } -#line 6747 "Zend/zend_language_scanner.c" +#line 6749 "Zend/zend_language_scanner.c" yy736: YYDEBUG(736, *YYCURSOR); yych = *++YYCURSOR; @@ -6772,11 +6774,11 @@ yy740: } YYDEBUG(741, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1095 "Zend/zend_language_scanner.l" +#line 1097 "Zend/zend_language_scanner.l" { return T_ENDSWITCH; } -#line 6780 "Zend/zend_language_scanner.c" +#line 6782 "Zend/zend_language_scanner.c" yy742: YYDEBUG(742, *YYCURSOR); ++YYCURSOR; @@ -6785,11 +6787,11 @@ yy742: } YYDEBUG(743, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1039 "Zend/zend_language_scanner.l" +#line 1041 "Zend/zend_language_scanner.l" { return T_ENDIF; } -#line 6793 "Zend/zend_language_scanner.c" +#line 6795 "Zend/zend_language_scanner.c" yy744: YYDEBUG(744, *YYCURSOR); yych = *++YYCURSOR; @@ -6818,11 +6820,11 @@ yy745: yy746: YYDEBUG(746, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1063 "Zend/zend_language_scanner.l" +#line 1065 "Zend/zend_language_scanner.l" { return T_ENDFOR; } -#line 6826 "Zend/zend_language_scanner.c" +#line 6828 "Zend/zend_language_scanner.c" yy747: YYDEBUG(747, *YYCURSOR); yych = *++YYCURSOR; @@ -6846,11 +6848,11 @@ yy750: } YYDEBUG(751, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1071 "Zend/zend_language_scanner.l" +#line 1073 "Zend/zend_language_scanner.l" { return T_ENDFOREACH; } -#line 6854 "Zend/zend_language_scanner.c" +#line 6856 "Zend/zend_language_scanner.c" yy752: YYDEBUG(752, *YYCURSOR); yych = *++YYCURSOR; @@ -6884,11 +6886,11 @@ yy757: } YYDEBUG(758, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1079 "Zend/zend_language_scanner.l" +#line 1081 "Zend/zend_language_scanner.l" { return T_ENDDECLARE; } -#line 6892 "Zend/zend_language_scanner.c" +#line 6894 "Zend/zend_language_scanner.c" yy759: YYDEBUG(759, *YYCURSOR); yych = *++YYCURSOR; @@ -6907,11 +6909,11 @@ yy761: } YYDEBUG(762, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1265 "Zend/zend_language_scanner.l" +#line 1267 "Zend/zend_language_scanner.l" { return T_EMPTY; } -#line 6915 "Zend/zend_language_scanner.c" +#line 6917 "Zend/zend_language_scanner.c" yy763: YYDEBUG(763, *YYCURSOR); yych = *++YYCURSOR; @@ -6940,11 +6942,11 @@ yy764: yy765: YYDEBUG(765, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1043 "Zend/zend_language_scanner.l" +#line 1045 "Zend/zend_language_scanner.l" { return T_ELSE; } -#line 6948 "Zend/zend_language_scanner.c" +#line 6950 "Zend/zend_language_scanner.c" yy766: YYDEBUG(766, *YYCURSOR); yych = *++YYCURSOR; @@ -6958,11 +6960,11 @@ yy767: } YYDEBUG(768, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1035 "Zend/zend_language_scanner.l" +#line 1037 "Zend/zend_language_scanner.l" { return T_ELSEIF; } -#line 6966 "Zend/zend_language_scanner.c" +#line 6968 "Zend/zend_language_scanner.c" yy769: YYDEBUG(769, *YYCURSOR); yych = *++YYCURSOR; @@ -6976,11 +6978,11 @@ yy770: } YYDEBUG(771, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1119 "Zend/zend_language_scanner.l" +#line 1121 "Zend/zend_language_scanner.l" { return T_ECHO; } -#line 6984 "Zend/zend_language_scanner.c" +#line 6986 "Zend/zend_language_scanner.c" } /* *********************************** */ yyc_ST_LOOKING_FOR_PROPERTY: @@ -7053,7 +7055,7 @@ yy774: yy775: YYDEBUG(775, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1152 "Zend/zend_language_scanner.l" +#line 1154 "Zend/zend_language_scanner.l" { zendlval->value.str.val = yytext; /* no copying - intentional */ zendlval->value.str.len = yyleng; @@ -7061,7 +7063,7 @@ yy775: HANDLE_NEWLINES(yytext, yyleng); return T_WHITESPACE; } -#line 7065 "Zend/zend_language_scanner.c" +#line 7067 "Zend/zend_language_scanner.c" yy776: YYDEBUG(776, *YYCURSOR); ++YYCURSOR; @@ -7069,13 +7071,13 @@ yy776: yy777: YYDEBUG(777, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1171 "Zend/zend_language_scanner.l" +#line 1173 "Zend/zend_language_scanner.l" { yyless(0); yy_pop_state(TSRMLS_C); goto restart; } -#line 7079 "Zend/zend_language_scanner.c" +#line 7081 "Zend/zend_language_scanner.c" yy778: YYDEBUG(778, *YYCURSOR); ++YYCURSOR; @@ -7084,14 +7086,14 @@ yy778: yy779: YYDEBUG(779, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1164 "Zend/zend_language_scanner.l" +#line 1166 "Zend/zend_language_scanner.l" { yy_pop_state(TSRMLS_C); zend_copy_value(zendlval, yytext, yyleng); zendlval->type = IS_STRING; return T_STRING; } -#line 7095 "Zend/zend_language_scanner.c" +#line 7097 "Zend/zend_language_scanner.c" yy780: YYDEBUG(780, *YYCURSOR); yych = *++YYCURSOR; @@ -7112,11 +7114,11 @@ yy783: ++YYCURSOR; YYDEBUG(784, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1160 "Zend/zend_language_scanner.l" +#line 1162 "Zend/zend_language_scanner.l" { return T_OBJECT_OPERATOR; } -#line 7120 "Zend/zend_language_scanner.c" +#line 7122 "Zend/zend_language_scanner.c" yy785: YYDEBUG(785, *YYCURSOR); ++YYCURSOR; @@ -7186,7 +7188,7 @@ yy789: yy790: YYDEBUG(790, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1443 "Zend/zend_language_scanner.l" +#line 1445 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, yytext, yyleng); zendlval->type = IS_STRING; @@ -7194,20 +7196,20 @@ yy790: yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); return T_STRING_VARNAME; } -#line 7198 "Zend/zend_language_scanner.c" +#line 7200 "Zend/zend_language_scanner.c" yy791: YYDEBUG(791, *YYCURSOR); ++YYCURSOR; YYDEBUG(792, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1452 "Zend/zend_language_scanner.l" +#line 1454 "Zend/zend_language_scanner.l" { yyless(0); yy_pop_state(TSRMLS_C); yy_push_state(ST_IN_SCRIPTING TSRMLS_CC); goto restart; } -#line 7211 "Zend/zend_language_scanner.c" +#line 7213 "Zend/zend_language_scanner.c" yy793: YYDEBUG(793, *YYCURSOR); ++YYCURSOR; @@ -7229,7 +7231,7 @@ yyc_ST_NOWDOC: ++YYCURSOR; YYDEBUG(798, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2275 "Zend/zend_language_scanner.l" +#line 2277 "Zend/zend_language_scanner.l" { int newline = 0; @@ -7284,7 +7286,7 @@ nowdoc_scan_done: HANDLE_NEWLINES(yytext, yyleng - newline); return T_ENCAPSED_AND_WHITESPACE; } -#line 7288 "Zend/zend_language_scanner.c" +#line 7290 "Zend/zend_language_scanner.c" /* *********************************** */ yyc_ST_VAR_OFFSET: { @@ -7384,7 +7386,7 @@ yy801: yy802: YYDEBUG(802, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1502 "Zend/zend_language_scanner.l" +#line 1504 "Zend/zend_language_scanner.l" { /* Offset could be treated as a long */ if (yyleng < MAX_LENGTH_OF_LONG - 1 || (yyleng == MAX_LENGTH_OF_LONG - 1 && strcmp(yytext, long_min_digits) < 0)) { zendlval->value.lval = strtol(yytext, NULL, 10); @@ -7396,7 +7398,7 @@ yy802: } return T_NUM_STRING; } -#line 7400 "Zend/zend_language_scanner.c" +#line 7402 "Zend/zend_language_scanner.c" yy803: YYDEBUG(803, *YYCURSOR); yych = *++YYCURSOR; @@ -7416,23 +7418,23 @@ yy804: yy805: YYDEBUG(805, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1803 "Zend/zend_language_scanner.l" +#line 1805 "Zend/zend_language_scanner.l" { /* Only '[' can be valid, but returning other tokens will allow a more explicit parse error */ return yytext[0]; } -#line 7425 "Zend/zend_language_scanner.c" +#line 7427 "Zend/zend_language_scanner.c" yy806: YYDEBUG(806, *YYCURSOR); ++YYCURSOR; YYDEBUG(807, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1798 "Zend/zend_language_scanner.l" +#line 1800 "Zend/zend_language_scanner.l" { yy_pop_state(TSRMLS_C); return ']'; } -#line 7436 "Zend/zend_language_scanner.c" +#line 7438 "Zend/zend_language_scanner.c" yy808: YYDEBUG(808, *YYCURSOR); yych = *++YYCURSOR; @@ -7442,14 +7444,14 @@ yy809: ++YYCURSOR; YYDEBUG(810, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1808 "Zend/zend_language_scanner.l" +#line 1810 "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 7453 "Zend/zend_language_scanner.c" +#line 7455 "Zend/zend_language_scanner.c" yy811: YYDEBUG(811, *YYCURSOR); ++YYCURSOR; @@ -7458,19 +7460,19 @@ yy811: yy812: YYDEBUG(812, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1815 "Zend/zend_language_scanner.l" +#line 1817 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, yytext, yyleng); zendlval->type = IS_STRING; return T_STRING; } -#line 7468 "Zend/zend_language_scanner.c" +#line 7470 "Zend/zend_language_scanner.c" yy813: YYDEBUG(813, *YYCURSOR); ++YYCURSOR; YYDEBUG(814, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 2331 "Zend/zend_language_scanner.l" +#line 2333 "Zend/zend_language_scanner.l" { if (YYCURSOR > YYLIMIT) { return 0; @@ -7479,7 +7481,7 @@ yy813: zend_error(E_COMPILE_WARNING,"Unexpected character in input: '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE); goto restart; } -#line 7483 "Zend/zend_language_scanner.c" +#line 7485 "Zend/zend_language_scanner.c" yy815: YYDEBUG(815, *YYCURSOR); ++YYCURSOR; @@ -7515,13 +7517,13 @@ yy817: yy819: YYDEBUG(819, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1792 "Zend/zend_language_scanner.l" +#line 1794 "Zend/zend_language_scanner.l" { zend_copy_value(zendlval, (yytext+1), (yyleng-1)); zendlval->type = IS_STRING; return T_VARIABLE; } -#line 7525 "Zend/zend_language_scanner.c" +#line 7527 "Zend/zend_language_scanner.c" yy820: YYDEBUG(820, *YYCURSOR); ++YYCURSOR; @@ -7553,14 +7555,14 @@ yy824: yy826: YYDEBUG(826, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 1514 "Zend/zend_language_scanner.l" +#line 1516 "Zend/zend_language_scanner.l" { /* Offset must be treated as a string */ zendlval->value.str.val = (char *)estrndup(yytext, yyleng); zendlval->value.str.len = yyleng; zendlval->type = IS_STRING; return T_NUM_STRING; } -#line 7564 "Zend/zend_language_scanner.c" +#line 7566 "Zend/zend_language_scanner.c" yy827: YYDEBUG(827, *YYCURSOR); ++YYCURSOR; @@ -7573,6 +7575,6 @@ yy827: goto yy826; } } -#line 2340 "Zend/zend_language_scanner.l" +#line 2342 "Zend/zend_language_scanner.l" } diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l index cd329c61f9..8c04cf7602 100644 --- a/Zend/zend_language_scanner.l +++ b/Zend/zend_language_scanner.l @@ -174,6 +174,7 @@ static void yy_scan_buffer(char *str, unsigned int len TSRMLS_DC) void startup_scanner(TSRMLS_D) { + CG(parse_error) = 0; CG(heredoc) = NULL; CG(heredoc_len) = 0; CG(doc_comment) = NULL; @@ -187,6 +188,7 @@ void shutdown_scanner(TSRMLS_D) efree(CG(heredoc)); CG(heredoc_len)=0; } + CG(parse_error) = 0; zend_stack_destroy(&SCNG(state_stack)); RESET_DOC_COMMENT(); } diff --git a/Zend/zend_language_scanner_defs.h b/Zend/zend_language_scanner_defs.h index d620cf6237..cd44289e7a 100644 --- a/Zend/zend_language_scanner_defs.h +++ b/Zend/zend_language_scanner_defs.h @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.5 on Thu Jun 2 17:34:19 2011 */ +/* Generated by re2c 0.13.5 on Thu Jun 23 19:47:38 2011 */ #line 3 "Zend/zend_language_scanner_defs.h" enum YYCONDTYPE { diff --git a/main/main.c b/main/main.c index f4a70cb113..e52853397f 100644 --- a/main/main.c +++ b/main/main.c @@ -990,7 +990,7 @@ static void php_error_cb(int type, const char *error_filename, const uint error_ char *append_string = INI_STR("error_append_string"); if (PG(html_errors)) { - if (type == E_ERROR) { + if (type == E_ERROR || type == E_PARSE) { size_t len; char *buf = php_escape_html_entities(buffer, buffer_len, &len, 0, ENT_COMPAT, NULL TSRMLS_CC); php_printf("%s
\n%s: %s in %s on line %d
\n%s", STR_PRINT(prepend_string), error_type_str, buf, error_filename, error_lineno, STR_PRINT(append_string)); @@ -1061,7 +1061,9 @@ static void php_error_cb(int type, const char *error_filename, const uint error_ sapi_header_op(SAPI_HEADER_REPLACE, &ctr TSRMLS_CC); } /* the parser would return 1 (failure), we can bail out nicely */ - if (type != E_PARSE) { + if (type == E_PARSE) { + CG(parse_error) = 0; + } else { /* restore memory limit */ zend_set_memory_limit(PG(memory_limit)); efree(buffer);