-/* Generated by re2c 0.13.5 on Mon Jan 3 06:07:39 2011 */
+/* Generated by re2c 0.13.5 on Sun Mar 6 15:09:12 2011 */
#line 1 "Zend/zend_language_scanner.l"
/*
+----------------------------------------------------------------------+
BEGIN_EXTERN_C()
+static size_t encoding_filter_script_to_internal(unsigned char **to, size_t *to_length, const unsigned char *from, size_t from_length TSRMLS_DC)
+{
+ const zend_encoding *internal_encoding = zend_multibyte_get_internal_encoding(TSRMLS_C);
+ assert(internal_encoding && zend_multibyte_check_lexer_compatibility(internal_encoding));
+ return zend_multibyte_encoding_converter(to, to_length, from, from_length, internal_encoding, LANG_SCNG(script_encoding) TSRMLS_CC);
+}
+
+static size_t encoding_filter_script_to_intermediate(unsigned char **to, size_t *to_length, const unsigned char *from, size_t from_length TSRMLS_DC)
+{
+ return zend_multibyte_encoding_converter(to, to_length, from, from_length, zend_multibyte_encoding_utf8, LANG_SCNG(script_encoding) TSRMLS_CC);
+}
+
+static size_t encoding_filter_intermediate_to_script(unsigned char **to, size_t *to_length, const unsigned char *from, size_t from_length TSRMLS_DC)
+{
+ return zend_multibyte_encoding_converter(to, to_length, from, from_length,
+LANG_SCNG(script_encoding), zend_multibyte_encoding_utf8 TSRMLS_CC);
+}
+
+static size_t encoding_filter_intermediate_to_internal(unsigned char **to, size_t *to_length, const unsigned char *from, size_t from_length TSRMLS_DC)
+{
+ const zend_encoding *internal_encoding = zend_multibyte_get_internal_encoding(TSRMLS_C);
+ assert(internal_encoding && zend_multibyte_check_lexer_compatibility(internal_encoding));
+ return zend_multibyte_encoding_converter(to, to_length, from, from_length,
+internal_encoding, zend_multibyte_encoding_utf8 TSRMLS_CC);
+}
+
+
static void _yy_push_state(int new_state TSRMLS_DC)
{
zend_stack_push(&SCNG(state_stack), (void *) &YYGETCONDITION(), sizeof(int));
/* remove BOM */
script = (unsigned char*)emalloc(LANG_SCNG(script_org_size)+1-bom_size);
memcpy(script, LANG_SCNG(script_org)+bom_size, LANG_SCNG(script_org_size)+1-bom_size);
- efree(LANG_SCNG(script_org));
LANG_SCNG(script_org) = script;
LANG_SCNG(script_org_size) -= bom_size;
if (!internal_encoding || LANG_SCNG(script_encoding) == internal_encoding) {
if (!zend_multibyte_check_lexer_compatibility(LANG_SCNG(script_encoding))) {
/* and if not, work around w/ script_encoding -> utf-8 -> script_encoding conversion */
- LANG_SCNG(input_filter) = zend_multibyte_script_encoding_filter;
- LANG_SCNG(output_filter) = zend_multibyte_internal_encoding_filter;
+ LANG_SCNG(input_filter) = encoding_filter_script_to_intermediate;
+ LANG_SCNG(output_filter) = encoding_filter_intermediate_to_script;
} else {
LANG_SCNG(input_filter) = NULL;
LANG_SCNG(output_filter) = NULL;
return SUCCESS;
}
- /* both script and internal encodings are incompatible w/ flex */
- LANG_SCNG(input_filter) = zend_multibyte_script_encoding_filter;
- LANG_SCNG(output_filter) = zend_multibyte_internal_encoding_filter;
+ if (zend_multibyte_check_lexer_compatibility(internal_encoding)) {
+ LANG_SCNG(input_filter) = encoding_filter_script_to_internal;
+ LANG_SCNG(output_filter) = NULL;
+ } else if (zend_multibyte_check_lexer_compatibility(LANG_SCNG(script_encoding))) {
+ LANG_SCNG(input_filter) = NULL;
+ LANG_SCNG(output_filter) = encoding_filter_script_to_internal;
+ } else {
+ /* both script and internal encodings are incompatible w/ flex */
+ LANG_SCNG(input_filter) = encoding_filter_script_to_intermediate;
+ LANG_SCNG(output_filter) = encoding_filter_intermediate_to_internal;
+ }
return 0;
}
ZEND_API void zend_multibyte_yyinput_again(zend_encoding_filter old_input_filter, zend_encoding *old_encoding TSRMLS_DC)
{
- size_t original_offset, offset, length;
+ size_t length;
unsigned char *new_yy_start;
- /* calculate current position */
- offset = original_offset = YYCURSOR - SCNG(yy_start);
- if (old_input_filter && offset > 0) {
- const zend_encoding *new_encoding = SCNG(script_encoding);
- zend_encoding_filter new_filter = SCNG(input_filter);
- SCNG(script_encoding) = old_encoding;
- SCNG(input_filter) = old_input_filter;
- offset = zend_get_scanned_file_offset(TSRMLS_C);
- SCNG(script_encoding) = new_encoding;
- SCNG(input_filter) = new_filter;
- }
-
/* convert and set */
if (!SCNG(input_filter)) {
if (SCNG(script_filtered)) {
SCNG(script_filtered) = NULL;
}
SCNG(script_filtered_size) = 0;
- length = SCNG(script_org_size) - offset;
- new_yy_start = SCNG(script_org) + offset;
+ length = SCNG(script_org_size);
+ new_yy_start = SCNG(script_org);
} else {
- if ((size_t)-1 == SCNG(input_filter)(&new_yy_start, &length, SCNG(script_org) + offset, SCNG(script_org_size) - offset TSRMLS_CC)) {
+ if ((size_t)-1 == SCNG(input_filter)(&new_yy_start, &length, SCNG(script_org), SCNG(script_org_size) TSRMLS_CC)) {
zend_error_noreturn(E_COMPILE_ERROR, "Could not convert the script from the detected "
"encoding \"%s\" to a compatible encoding", zend_multibyte_get_encoding_name(LANG_SCNG(script_encoding)));
}
yymore_restart:
-#line 967 "Zend/zend_language_scanner.c"
+#line 989 "Zend/zend_language_scanner.c"
{
YYCTYPE yych;
unsigned int yyaccept = 0;
yy3:
YYDEBUG(3, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1755 "Zend/zend_language_scanner.l"
+#line 1777 "Zend/zend_language_scanner.l"
{
if (YYCURSOR > YYLIMIT) {
return 0;
HANDLE_NEWLINES(yytext, yyleng);
return T_INLINE_HTML;
}
-#line 1126 "Zend/zend_language_scanner.c"
+#line 1148 "Zend/zend_language_scanner.c"
yy4:
YYDEBUG(4, *YYCURSOR);
yych = *++YYCURSOR;
yy6:
YYDEBUG(6, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1743 "Zend/zend_language_scanner.l"
+#line 1765 "Zend/zend_language_scanner.l"
{
if (CG(short_tags)) {
zendlval->value.str.val = yytext; /* no copying - intentional */
goto inline_char_handler;
}
}
-#line 1156 "Zend/zend_language_scanner.c"
+#line 1178 "Zend/zend_language_scanner.c"
yy7:
YYDEBUG(7, *YYCURSOR);
++YYCURSOR;
if ((yych = *YYCURSOR) == '=') goto yy43;
YYDEBUG(8, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1720 "Zend/zend_language_scanner.l"
+#line 1742 "Zend/zend_language_scanner.l"
{
if (CG(asp_tags)) {
zendlval->value.str.val = yytext; /* no copying - intentional */
goto inline_char_handler;
}
}
-#line 1175 "Zend/zend_language_scanner.c"
+#line 1197 "Zend/zend_language_scanner.c"
yy9:
YYDEBUG(9, *YYCURSOR);
yych = *++YYCURSOR;
++YYCURSOR;
YYDEBUG(38, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1676 "Zend/zend_language_scanner.l"
+#line 1698 "Zend/zend_language_scanner.l"
{
YYCTYPE *bracket = zend_memrchr(yytext, '<', yyleng - (sizeof("script language=php>") - 1));
BEGIN(ST_IN_SCRIPTING);
return T_OPEN_TAG;
}
-#line 1378 "Zend/zend_language_scanner.c"
+#line 1400 "Zend/zend_language_scanner.c"
yy39:
YYDEBUG(39, *YYCURSOR);
yych = *++YYCURSOR;
++YYCURSOR;
YYDEBUG(44, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1694 "Zend/zend_language_scanner.l"
+#line 1716 "Zend/zend_language_scanner.l"
{
if (CG(asp_tags)) {
zendlval->value.str.val = yytext; /* no copying - intentional */
goto inline_char_handler;
}
}
-#line 1417 "Zend/zend_language_scanner.c"
+#line 1439 "Zend/zend_language_scanner.c"
yy45:
YYDEBUG(45, *YYCURSOR);
++YYCURSOR;
YYDEBUG(46, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1707 "Zend/zend_language_scanner.l"
+#line 1729 "Zend/zend_language_scanner.l"
{
if (CG(short_tags)) {
zendlval->value.str.val = yytext; /* no copying - intentional */
goto inline_char_handler;
}
}
-#line 1435 "Zend/zend_language_scanner.c"
+#line 1457 "Zend/zend_language_scanner.c"
yy47:
YYDEBUG(47, *YYCURSOR);
yych = *++YYCURSOR;
yy51:
YYDEBUG(51, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1733 "Zend/zend_language_scanner.l"
+#line 1755 "Zend/zend_language_scanner.l"
{
zendlval->value.str.val = yytext; /* no copying - intentional */
zendlval->value.str.len = yyleng;
BEGIN(ST_IN_SCRIPTING);
return T_OPEN_TAG;
}
-#line 1471 "Zend/zend_language_scanner.c"
+#line 1493 "Zend/zend_language_scanner.c"
yy52:
YYDEBUG(52, *YYCURSOR);
++YYCURSOR;
yy56:
YYDEBUG(56, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2206 "Zend/zend_language_scanner.l"
+#line 2228 "Zend/zend_language_scanner.l"
{
if (YYCURSOR > YYLIMIT) {
return 0;
zend_scan_escape_string(zendlval, yytext, yyleng, '`' TSRMLS_CC);
return T_ENCAPSED_AND_WHITESPACE;
}
-#line 1583 "Zend/zend_language_scanner.c"
+#line 1605 "Zend/zend_language_scanner.c"
yy57:
YYDEBUG(57, *YYCURSOR);
yych = *++YYCURSOR;
++YYCURSOR;
YYDEBUG(59, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2150 "Zend/zend_language_scanner.l"
+#line 2172 "Zend/zend_language_scanner.l"
{
BEGIN(ST_IN_SCRIPTING);
return '`';
}
-#line 1599 "Zend/zend_language_scanner.c"
+#line 1621 "Zend/zend_language_scanner.c"
yy60:
YYDEBUG(60, *YYCURSOR);
yych = *++YYCURSOR;
++YYCURSOR;
YYDEBUG(62, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2137 "Zend/zend_language_scanner.l"
+#line 2159 "Zend/zend_language_scanner.l"
{
zendlval->value.lval = (long) '{';
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
yyless(1);
return T_CURLY_OPEN;
}
-#line 1616 "Zend/zend_language_scanner.c"
+#line 1638 "Zend/zend_language_scanner.c"
yy63:
YYDEBUG(63, *YYCURSOR);
yyaccept = 0;
yy65:
YYDEBUG(65, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1837 "Zend/zend_language_scanner.l"
+#line 1859 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, (yytext+1), (yyleng-1));
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 1638 "Zend/zend_language_scanner.c"
+#line 1660 "Zend/zend_language_scanner.c"
yy66:
YYDEBUG(66, *YYCURSOR);
++YYCURSOR;
YYDEBUG(67, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1469 "Zend/zend_language_scanner.l"
+#line 1491 "Zend/zend_language_scanner.l"
{
yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
return T_DOLLAR_OPEN_CURLY_BRACES;
}
-#line 1649 "Zend/zend_language_scanner.c"
+#line 1671 "Zend/zend_language_scanner.c"
yy68:
YYDEBUG(68, *YYCURSOR);
yych = *++YYCURSOR;
++YYCURSOR;
YYDEBUG(71, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1829 "Zend/zend_language_scanner.l"
+#line 1851 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 1);
yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 1671 "Zend/zend_language_scanner.c"
+#line 1693 "Zend/zend_language_scanner.c"
yy72:
YYDEBUG(72, *YYCURSOR);
yych = *++YYCURSOR;
++YYCURSOR;
YYDEBUG(74, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1819 "Zend/zend_language_scanner.l"
+#line 1841 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 3);
yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 1697 "Zend/zend_language_scanner.c"
+#line 1719 "Zend/zend_language_scanner.c"
}
/* *********************************** */
yyc_ST_DOUBLE_QUOTES:
yy78:
YYDEBUG(78, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2156 "Zend/zend_language_scanner.l"
+#line 2178 "Zend/zend_language_scanner.l"
{
if (GET_DOUBLE_QUOTES_SCANNED_LENGTH()) {
YYCURSOR += GET_DOUBLE_QUOTES_SCANNED_LENGTH() - 1;
zend_scan_escape_string(zendlval, yytext, yyleng, '"' TSRMLS_CC);
return T_ENCAPSED_AND_WHITESPACE;
}
-#line 1814 "Zend/zend_language_scanner.c"
+#line 1836 "Zend/zend_language_scanner.c"
yy79:
YYDEBUG(79, *YYCURSOR);
yych = *++YYCURSOR;
++YYCURSOR;
YYDEBUG(81, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2145 "Zend/zend_language_scanner.l"
+#line 2167 "Zend/zend_language_scanner.l"
{
BEGIN(ST_IN_SCRIPTING);
return '"';
}
-#line 1830 "Zend/zend_language_scanner.c"
+#line 1852 "Zend/zend_language_scanner.c"
yy82:
YYDEBUG(82, *YYCURSOR);
yych = *++YYCURSOR;
++YYCURSOR;
YYDEBUG(84, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2137 "Zend/zend_language_scanner.l"
+#line 2159 "Zend/zend_language_scanner.l"
{
zendlval->value.lval = (long) '{';
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
yyless(1);
return T_CURLY_OPEN;
}
-#line 1847 "Zend/zend_language_scanner.c"
+#line 1869 "Zend/zend_language_scanner.c"
yy85:
YYDEBUG(85, *YYCURSOR);
yyaccept = 0;
yy87:
YYDEBUG(87, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1837 "Zend/zend_language_scanner.l"
+#line 1859 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, (yytext+1), (yyleng-1));
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 1869 "Zend/zend_language_scanner.c"
+#line 1891 "Zend/zend_language_scanner.c"
yy88:
YYDEBUG(88, *YYCURSOR);
++YYCURSOR;
YYDEBUG(89, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1469 "Zend/zend_language_scanner.l"
+#line 1491 "Zend/zend_language_scanner.l"
{
yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
return T_DOLLAR_OPEN_CURLY_BRACES;
}
-#line 1880 "Zend/zend_language_scanner.c"
+#line 1902 "Zend/zend_language_scanner.c"
yy90:
YYDEBUG(90, *YYCURSOR);
yych = *++YYCURSOR;
++YYCURSOR;
YYDEBUG(93, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1829 "Zend/zend_language_scanner.l"
+#line 1851 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 1);
yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 1902 "Zend/zend_language_scanner.c"
+#line 1924 "Zend/zend_language_scanner.c"
yy94:
YYDEBUG(94, *YYCURSOR);
yych = *++YYCURSOR;
++YYCURSOR;
YYDEBUG(96, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1819 "Zend/zend_language_scanner.l"
+#line 1841 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 3);
yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 1928 "Zend/zend_language_scanner.c"
+#line 1950 "Zend/zend_language_scanner.c"
}
/* *********************************** */
yyc_ST_END_HEREDOC:
++YYCURSOR;
YYDEBUG(100, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2124 "Zend/zend_language_scanner.l"
+#line 2146 "Zend/zend_language_scanner.l"
{
YYCURSOR += CG(heredoc_len) - 1;
yyleng = CG(heredoc_len);
BEGIN(ST_IN_SCRIPTING);
return T_END_HEREDOC;
}
-#line 1951 "Zend/zend_language_scanner.c"
+#line 1973 "Zend/zend_language_scanner.c"
/* *********************************** */
yyc_ST_HEREDOC:
{
yy104:
YYDEBUG(104, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2248 "Zend/zend_language_scanner.l"
+#line 2270 "Zend/zend_language_scanner.l"
{
int newline = 0;
zend_scan_escape_string(zendlval, yytext, yyleng - newline, 0 TSRMLS_CC);
return T_ENCAPSED_AND_WHITESPACE;
}
-#line 2084 "Zend/zend_language_scanner.c"
+#line 2106 "Zend/zend_language_scanner.c"
yy105:
YYDEBUG(105, *YYCURSOR);
yych = *++YYCURSOR;
++YYCURSOR;
YYDEBUG(108, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2137 "Zend/zend_language_scanner.l"
+#line 2159 "Zend/zend_language_scanner.l"
{
zendlval->value.lval = (long) '{';
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
yyless(1);
return T_CURLY_OPEN;
}
-#line 2106 "Zend/zend_language_scanner.c"
+#line 2128 "Zend/zend_language_scanner.c"
yy109:
YYDEBUG(109, *YYCURSOR);
yyaccept = 0;
yy111:
YYDEBUG(111, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1837 "Zend/zend_language_scanner.l"
+#line 1859 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, (yytext+1), (yyleng-1));
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 2128 "Zend/zend_language_scanner.c"
+#line 2150 "Zend/zend_language_scanner.c"
yy112:
YYDEBUG(112, *YYCURSOR);
++YYCURSOR;
YYDEBUG(113, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1469 "Zend/zend_language_scanner.l"
+#line 1491 "Zend/zend_language_scanner.l"
{
yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
return T_DOLLAR_OPEN_CURLY_BRACES;
}
-#line 2139 "Zend/zend_language_scanner.c"
+#line 2161 "Zend/zend_language_scanner.c"
yy114:
YYDEBUG(114, *YYCURSOR);
yych = *++YYCURSOR;
++YYCURSOR;
YYDEBUG(117, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1829 "Zend/zend_language_scanner.l"
+#line 1851 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 1);
yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 2161 "Zend/zend_language_scanner.c"
+#line 2183 "Zend/zend_language_scanner.c"
yy118:
YYDEBUG(118, *YYCURSOR);
yych = *++YYCURSOR;
++YYCURSOR;
YYDEBUG(120, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1819 "Zend/zend_language_scanner.l"
+#line 1841 "Zend/zend_language_scanner.l"
{
yyless(yyleng - 3);
yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 2187 "Zend/zend_language_scanner.c"
+#line 2209 "Zend/zend_language_scanner.c"
}
/* *********************************** */
yyc_ST_IN_SCRIPTING:
yy124:
YYDEBUG(124, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1860 "Zend/zend_language_scanner.l"
+#line 1882 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, yytext, yyleng);
zendlval->type = IS_STRING;
return T_STRING;
}
-#line 2374 "Zend/zend_language_scanner.c"
+#line 2396 "Zend/zend_language_scanner.c"
yy125:
YYDEBUG(125, *YYCURSOR);
yych = *++YYCURSOR;
yy138:
YYDEBUG(138, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1458 "Zend/zend_language_scanner.l"
+#line 1480 "Zend/zend_language_scanner.l"
{
return yytext[0];
}
-#line 2632 "Zend/zend_language_scanner.c"
+#line 2654 "Zend/zend_language_scanner.c"
yy139:
YYDEBUG(139, *YYCURSOR);
++YYCURSOR;
yy140:
YYDEBUG(140, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1133 "Zend/zend_language_scanner.l"
+#line 1155 "Zend/zend_language_scanner.l"
{
zendlval->value.str.val = yytext; /* no copying - intentional */
zendlval->value.str.len = yyleng;
HANDLE_NEWLINES(yytext, yyleng);
return T_WHITESPACE;
}
-#line 2649 "Zend/zend_language_scanner.c"
+#line 2671 "Zend/zend_language_scanner.c"
yy141:
YYDEBUG(141, *YYCURSOR);
yych = *++YYCURSOR;
++YYCURSOR;
YYDEBUG(143, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1162 "Zend/zend_language_scanner.l"
+#line 1184 "Zend/zend_language_scanner.l"
{
return T_NS_SEPARATOR;
}
-#line 2664 "Zend/zend_language_scanner.c"
+#line 2686 "Zend/zend_language_scanner.c"
yy144:
YYDEBUG(144, *YYCURSOR);
yych = *++YYCURSOR;
++YYCURSOR;
YYDEBUG(168, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1463 "Zend/zend_language_scanner.l"
+#line 1485 "Zend/zend_language_scanner.l"
{
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
return '{';
}
-#line 2923 "Zend/zend_language_scanner.c"
+#line 2945 "Zend/zend_language_scanner.c"
yy169:
YYDEBUG(169, *YYCURSOR);
++YYCURSOR;
YYDEBUG(170, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1475 "Zend/zend_language_scanner.l"
+#line 1497 "Zend/zend_language_scanner.l"
{
RESET_DOC_COMMENT();
if (!zend_stack_is_empty(&SCNG(state_stack))) {
}
return '}';
}
-#line 2937 "Zend/zend_language_scanner.c"
+#line 2959 "Zend/zend_language_scanner.c"
yy171:
YYDEBUG(171, *YYCURSOR);
yyaccept = 2;
yy172:
YYDEBUG(172, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1501 "Zend/zend_language_scanner.l"
+#line 1523 "Zend/zend_language_scanner.l"
{
if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
zendlval->value.lval = strtol(yytext, NULL, 0);
zendlval->type = IS_LONG;
return T_LNUMBER;
}
-#line 2981 "Zend/zend_language_scanner.c"
+#line 3003 "Zend/zend_language_scanner.c"
yy173:
YYDEBUG(173, *YYCURSOR);
yyaccept = 2;
yy176:
YYDEBUG(176, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1867 "Zend/zend_language_scanner.l"
+#line 1889 "Zend/zend_language_scanner.l"
{
while (YYCURSOR < YYLIMIT) {
switch (*YYCURSOR++) {
return T_COMMENT;
}
-#line 3043 "Zend/zend_language_scanner.c"
+#line 3065 "Zend/zend_language_scanner.c"
yy177:
YYDEBUG(177, *YYCURSOR);
++YYCURSOR;
yy178:
YYDEBUG(178, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1958 "Zend/zend_language_scanner.l"
+#line 1980 "Zend/zend_language_scanner.l"
{
register char *s, *t;
char *end;
}
return T_CONSTANT_ENCAPSED_STRING;
}
-#line 3118 "Zend/zend_language_scanner.c"
+#line 3140 "Zend/zend_language_scanner.c"
yy179:
YYDEBUG(179, *YYCURSOR);
++YYCURSOR;
yy180:
YYDEBUG(180, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2027 "Zend/zend_language_scanner.l"
+#line 2049 "Zend/zend_language_scanner.l"
{
int bprefix = (yytext[0] != '"') ? 1 : 0;
BEGIN(ST_DOUBLE_QUOTES);
return '"';
}
-#line 3166 "Zend/zend_language_scanner.c"
+#line 3188 "Zend/zend_language_scanner.c"
yy181:
YYDEBUG(181, *YYCURSOR);
++YYCURSOR;
YYDEBUG(182, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2118 "Zend/zend_language_scanner.l"
+#line 2140 "Zend/zend_language_scanner.l"
{
BEGIN(ST_BACKQUOTE);
return '`';
}
-#line 3177 "Zend/zend_language_scanner.c"
+#line 3199 "Zend/zend_language_scanner.c"
yy183:
YYDEBUG(183, *YYCURSOR);
++YYCURSOR;
YYDEBUG(184, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2376 "Zend/zend_language_scanner.l"
+#line 2398 "Zend/zend_language_scanner.l"
{
if (YYCURSOR > YYLIMIT) {
return 0;
zend_error(E_COMPILE_WARNING,"Unexpected character in input: '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);
goto restart;
}
-#line 3192 "Zend/zend_language_scanner.c"
+#line 3214 "Zend/zend_language_scanner.c"
yy185:
YYDEBUG(185, *YYCURSOR);
++YYCURSOR;
yy189:
YYDEBUG(189, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1562 "Zend/zend_language_scanner.l"
+#line 1584 "Zend/zend_language_scanner.l"
{
zendlval->value.dval = zend_strtod(yytext, NULL);
zendlval->type = IS_DOUBLE;
return T_DNUMBER;
}
-#line 3225 "Zend/zend_language_scanner.c"
+#line 3247 "Zend/zend_language_scanner.c"
yy190:
YYDEBUG(190, *YYCURSOR);
yyaccept = 2;
}
YYDEBUG(200, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1522 "Zend/zend_language_scanner.l"
+#line 1544 "Zend/zend_language_scanner.l"
{
char *hex = yytext + 2; /* Skip "0x" */
int len = yyleng - 2;
return T_DNUMBER;
}
}
-#line 3331 "Zend/zend_language_scanner.c"
+#line 3353 "Zend/zend_language_scanner.c"
yy201:
YYDEBUG(201, *YYCURSOR);
++YYCURSOR;
yy202:
YYDEBUG(202, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1935 "Zend/zend_language_scanner.l"
+#line 1957 "Zend/zend_language_scanner.l"
{
zendlval->value.str.val = yytext; /* no copying - intentional */
zendlval->value.str.len = yyleng;
BEGIN(INITIAL);
return T_CLOSE_TAG; /* implicit ';' at php-end tag */
}
-#line 3348 "Zend/zend_language_scanner.c"
+#line 3370 "Zend/zend_language_scanner.c"
yy203:
YYDEBUG(203, *YYCURSOR);
yych = *++YYCURSOR;
yy207:
YYDEBUG(207, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1837 "Zend/zend_language_scanner.l"
+#line 1859 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, (yytext+1), (yyleng-1));
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 3388 "Zend/zend_language_scanner.c"
+#line 3410 "Zend/zend_language_scanner.c"
yy208:
YYDEBUG(208, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(210, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1446 "Zend/zend_language_scanner.l"
+#line 1468 "Zend/zend_language_scanner.l"
{
return T_LOGICAL_XOR;
}
-#line 3406 "Zend/zend_language_scanner.c"
+#line 3428 "Zend/zend_language_scanner.c"
yy211:
YYDEBUG(211, *YYCURSOR);
++YYCURSOR;
YYDEBUG(212, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1426 "Zend/zend_language_scanner.l"
+#line 1448 "Zend/zend_language_scanner.l"
{
return T_XOR_EQUAL;
}
-#line 3416 "Zend/zend_language_scanner.c"
+#line 3438 "Zend/zend_language_scanner.c"
yy213:
YYDEBUG(213, *YYCURSOR);
++YYCURSOR;
YYDEBUG(214, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1430 "Zend/zend_language_scanner.l"
+#line 1452 "Zend/zend_language_scanner.l"
{
return T_BOOLEAN_OR;
}
-#line 3426 "Zend/zend_language_scanner.c"
+#line 3448 "Zend/zend_language_scanner.c"
yy215:
YYDEBUG(215, *YYCURSOR);
++YYCURSOR;
YYDEBUG(216, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1422 "Zend/zend_language_scanner.l"
+#line 1444 "Zend/zend_language_scanner.l"
{
return T_OR_EQUAL;
}
-#line 3436 "Zend/zend_language_scanner.c"
+#line 3458 "Zend/zend_language_scanner.c"
yy217:
YYDEBUG(217, *YYCURSOR);
++YYCURSOR;
YYDEBUG(218, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1434 "Zend/zend_language_scanner.l"
+#line 1456 "Zend/zend_language_scanner.l"
{
return T_BOOLEAN_AND;
}
-#line 3446 "Zend/zend_language_scanner.c"
+#line 3468 "Zend/zend_language_scanner.c"
yy219:
YYDEBUG(219, *YYCURSOR);
++YYCURSOR;
YYDEBUG(220, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1418 "Zend/zend_language_scanner.l"
+#line 1440 "Zend/zend_language_scanner.l"
{
return T_AND_EQUAL;
}
-#line 3456 "Zend/zend_language_scanner.c"
+#line 3478 "Zend/zend_language_scanner.c"
yy221:
YYDEBUG(221, *YYCURSOR);
++YYCURSOR;
yy222:
YYDEBUG(222, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1944 "Zend/zend_language_scanner.l"
+#line 1966 "Zend/zend_language_scanner.l"
{
if (CG(asp_tags)) {
BEGIN(INITIAL);
return yytext[0];
}
}
-#line 3478 "Zend/zend_language_scanner.c"
+#line 3500 "Zend/zend_language_scanner.c"
yy223:
YYDEBUG(223, *YYCURSOR);
++YYCURSOR;
YYDEBUG(224, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1406 "Zend/zend_language_scanner.l"
+#line 1428 "Zend/zend_language_scanner.l"
{
return T_MOD_EQUAL;
}
-#line 3488 "Zend/zend_language_scanner.c"
+#line 3510 "Zend/zend_language_scanner.c"
yy225:
YYDEBUG(225, *YYCURSOR);
yych = *++YYCURSOR;
++YYCURSOR;
YYDEBUG(230, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1402 "Zend/zend_language_scanner.l"
+#line 1424 "Zend/zend_language_scanner.l"
{
return T_CONCAT_EQUAL;
}
-#line 3523 "Zend/zend_language_scanner.c"
+#line 3545 "Zend/zend_language_scanner.c"
yy231:
YYDEBUG(231, *YYCURSOR);
yyaccept = 4;
yy232:
YYDEBUG(232, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1901 "Zend/zend_language_scanner.l"
+#line 1923 "Zend/zend_language_scanner.l"
{
int doc_com;
return T_COMMENT;
}
-#line 3566 "Zend/zend_language_scanner.c"
+#line 3588 "Zend/zend_language_scanner.c"
yy233:
YYDEBUG(233, *YYCURSOR);
yych = *++YYCURSOR;
++YYCURSOR;
YYDEBUG(235, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1398 "Zend/zend_language_scanner.l"
+#line 1420 "Zend/zend_language_scanner.l"
{
return T_DIV_EQUAL;
}
-#line 3580 "Zend/zend_language_scanner.c"
+#line 3602 "Zend/zend_language_scanner.c"
yy236:
YYDEBUG(236, *YYCURSOR);
yych = *++YYCURSOR;
++YYCURSOR;
YYDEBUG(240, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1394 "Zend/zend_language_scanner.l"
+#line 1416 "Zend/zend_language_scanner.l"
{
return T_MUL_EQUAL;
}
-#line 3607 "Zend/zend_language_scanner.c"
+#line 3629 "Zend/zend_language_scanner.c"
yy241:
YYDEBUG(241, *YYCURSOR);
++YYCURSOR;
if ((yych = *YYCURSOR) == '=') goto yy245;
YYDEBUG(242, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1454 "Zend/zend_language_scanner.l"
+#line 1476 "Zend/zend_language_scanner.l"
{
return T_SR;
}
-#line 3618 "Zend/zend_language_scanner.c"
+#line 3640 "Zend/zend_language_scanner.c"
yy243:
YYDEBUG(243, *YYCURSOR);
++YYCURSOR;
YYDEBUG(244, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1382 "Zend/zend_language_scanner.l"
+#line 1404 "Zend/zend_language_scanner.l"
{
return T_IS_GREATER_OR_EQUAL;
}
-#line 3628 "Zend/zend_language_scanner.c"
+#line 3650 "Zend/zend_language_scanner.c"
yy245:
YYDEBUG(245, *YYCURSOR);
++YYCURSOR;
YYDEBUG(246, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1414 "Zend/zend_language_scanner.l"
+#line 1436 "Zend/zend_language_scanner.l"
{
return T_SR_EQUAL;
}
-#line 3638 "Zend/zend_language_scanner.c"
+#line 3660 "Zend/zend_language_scanner.c"
yy247:
YYDEBUG(247, *YYCURSOR);
yyaccept = 5;
yy248:
YYDEBUG(248, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1450 "Zend/zend_language_scanner.l"
+#line 1472 "Zend/zend_language_scanner.l"
{
return T_SL;
}
-#line 3653 "Zend/zend_language_scanner.c"
+#line 3675 "Zend/zend_language_scanner.c"
yy249:
YYDEBUG(249, *YYCURSOR);
yych = *++YYCURSOR;
++YYCURSOR;
YYDEBUG(251, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1378 "Zend/zend_language_scanner.l"
+#line 1400 "Zend/zend_language_scanner.l"
{
return T_IS_SMALLER_OR_EQUAL;
}
-#line 3669 "Zend/zend_language_scanner.c"
+#line 3691 "Zend/zend_language_scanner.c"
yy252:
YYDEBUG(252, *YYCURSOR);
++YYCURSOR;
yy253:
YYDEBUG(253, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1374 "Zend/zend_language_scanner.l"
+#line 1396 "Zend/zend_language_scanner.l"
{
return T_IS_NOT_EQUAL;
}
-#line 3680 "Zend/zend_language_scanner.c"
+#line 3702 "Zend/zend_language_scanner.c"
yy254:
YYDEBUG(254, *YYCURSOR);
yych = *++YYCURSOR;
++YYCURSOR;
YYDEBUG(262, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1410 "Zend/zend_language_scanner.l"
+#line 1432 "Zend/zend_language_scanner.l"
{
return T_SL_EQUAL;
}
-#line 3735 "Zend/zend_language_scanner.c"
+#line 3757 "Zend/zend_language_scanner.c"
yy263:
YYDEBUG(263, *YYCURSOR);
++YYCURSOR;
yy273:
YYDEBUG(273, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2069 "Zend/zend_language_scanner.l"
+#line 2091 "Zend/zend_language_scanner.l"
{
char *s;
int bprefix = (yytext[0] != '<') ? 1 : 0;
return T_START_HEREDOC;
}
-#line 3888 "Zend/zend_language_scanner.c"
+#line 3910 "Zend/zend_language_scanner.c"
yy274:
YYDEBUG(274, *YYCURSOR);
yych = *++YYCURSOR;
++YYCURSOR;
YYDEBUG(279, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1366 "Zend/zend_language_scanner.l"
+#line 1388 "Zend/zend_language_scanner.l"
{
return T_IS_NOT_IDENTICAL;
}
-#line 3932 "Zend/zend_language_scanner.c"
+#line 3954 "Zend/zend_language_scanner.c"
yy280:
YYDEBUG(280, *YYCURSOR);
++YYCURSOR;
YYDEBUG(281, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1386 "Zend/zend_language_scanner.l"
+#line 1408 "Zend/zend_language_scanner.l"
{
return T_PLUS_EQUAL;
}
-#line 3942 "Zend/zend_language_scanner.c"
+#line 3964 "Zend/zend_language_scanner.c"
yy282:
YYDEBUG(282, *YYCURSOR);
++YYCURSOR;
YYDEBUG(283, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1354 "Zend/zend_language_scanner.l"
+#line 1376 "Zend/zend_language_scanner.l"
{
return T_INC;
}
-#line 3952 "Zend/zend_language_scanner.c"
+#line 3974 "Zend/zend_language_scanner.c"
yy284:
YYDEBUG(284, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(286, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1438 "Zend/zend_language_scanner.l"
+#line 1460 "Zend/zend_language_scanner.l"
{
return T_LOGICAL_OR;
}
-#line 3971 "Zend/zend_language_scanner.c"
+#line 3993 "Zend/zend_language_scanner.c"
yy287:
YYDEBUG(287, *YYCURSOR);
yych = *++YYCURSOR;
++YYCURSOR;
YYDEBUG(296, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1349 "Zend/zend_language_scanner.l"
+#line 1371 "Zend/zend_language_scanner.l"
{
yyless((sizeof("object") - 1));
return T_OBJECT_HINT;
}
-#line 4055 "Zend/zend_language_scanner.c"
+#line 4077 "Zend/zend_language_scanner.c"
yy297:
YYDEBUG(297, *YYCURSOR);
yych = *++YYCURSOR;
++YYCURSOR;
YYDEBUG(306, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1322 "Zend/zend_language_scanner.l"
+#line 1344 "Zend/zend_language_scanner.l"
{
if (yytext[3] == 'e') {
yyless((sizeof("integer") - 1));
}
return T_INT_HINT;
}
-#line 4159 "Zend/zend_language_scanner.c"
+#line 4181 "Zend/zend_language_scanner.c"
yy307:
YYDEBUG(307, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(309, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1290 "Zend/zend_language_scanner.l"
+#line 1312 "Zend/zend_language_scanner.l"
{
return T_LIST;
}
-#line 4177 "Zend/zend_language_scanner.c"
+#line 4199 "Zend/zend_language_scanner.c"
yy310:
YYDEBUG(310, *YYCURSOR);
++YYCURSOR;
if ((yych = *YYCURSOR) == '=') goto yy314;
YYDEBUG(311, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1370 "Zend/zend_language_scanner.l"
+#line 1392 "Zend/zend_language_scanner.l"
{
return T_IS_EQUAL;
}
-#line 4188 "Zend/zend_language_scanner.c"
+#line 4210 "Zend/zend_language_scanner.c"
yy312:
YYDEBUG(312, *YYCURSOR);
++YYCURSOR;
YYDEBUG(313, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1286 "Zend/zend_language_scanner.l"
+#line 1308 "Zend/zend_language_scanner.l"
{
return T_DOUBLE_ARROW;
}
-#line 4198 "Zend/zend_language_scanner.c"
+#line 4220 "Zend/zend_language_scanner.c"
yy314:
YYDEBUG(314, *YYCURSOR);
++YYCURSOR;
YYDEBUG(315, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1362 "Zend/zend_language_scanner.l"
+#line 1384 "Zend/zend_language_scanner.l"
{
return T_IS_IDENTICAL;
}
-#line 4208 "Zend/zend_language_scanner.c"
+#line 4230 "Zend/zend_language_scanner.c"
yy316:
YYDEBUG(316, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(334, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1666 "Zend/zend_language_scanner.l"
+#line 1688 "Zend/zend_language_scanner.l"
{
if (CG(current_namespace)) {
*zendlval = *CG(current_namespace);
}
return T_NS_C;
}
-#line 4340 "Zend/zend_language_scanner.c"
+#line 4362 "Zend/zend_language_scanner.c"
yy335:
YYDEBUG(335, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(339, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1639 "Zend/zend_language_scanner.l"
+#line 1661 "Zend/zend_language_scanner.l"
{
char *filename = zend_get_compiled_filename(TSRMLS_C);
const size_t filename_len = strlen(filename);
zendlval->type = IS_STRING;
return T_DIR;
}
-#line 4387 "Zend/zend_language_scanner.c"
+#line 4409 "Zend/zend_language_scanner.c"
yy340:
YYDEBUG(340, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(345, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1621 "Zend/zend_language_scanner.l"
+#line 1643 "Zend/zend_language_scanner.l"
{
zendlval->value.lval = CG(zend_lineno);
zendlval->type = IS_LONG;
return T_LINE;
}
-#line 4418 "Zend/zend_language_scanner.c"
+#line 4440 "Zend/zend_language_scanner.c"
yy346:
YYDEBUG(346, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(353, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1600 "Zend/zend_language_scanner.l"
+#line 1622 "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;
zendlval->type = IS_STRING;
return T_METHOD_C;
}
-#line 4474 "Zend/zend_language_scanner.c"
+#line 4496 "Zend/zend_language_scanner.c"
yy354:
YYDEBUG(354, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(364, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1584 "Zend/zend_language_scanner.l"
+#line 1606 "Zend/zend_language_scanner.l"
{
char *func_name = NULL;
zendlval->type = IS_STRING;
return T_FUNC_C;
}
-#line 4541 "Zend/zend_language_scanner.c"
+#line 4563 "Zend/zend_language_scanner.c"
yy365:
YYDEBUG(365, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(369, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1627 "Zend/zend_language_scanner.l"
+#line 1649 "Zend/zend_language_scanner.l"
{
char *filename = zend_get_compiled_filename(TSRMLS_C);
zendlval->type = IS_STRING;
return T_FILE;
}
-#line 4573 "Zend/zend_language_scanner.c"
+#line 4595 "Zend/zend_language_scanner.c"
yy370:
YYDEBUG(370, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(376, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1568 "Zend/zend_language_scanner.l"
+#line 1590 "Zend/zend_language_scanner.l"
{
char *class_name = NULL;
zendlval->type = IS_STRING;
return T_CLASS_C;
}
-#line 4619 "Zend/zend_language_scanner.c"
+#line 4641 "Zend/zend_language_scanner.c"
yy377:
YYDEBUG(377, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(389, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1254 "Zend/zend_language_scanner.l"
+#line 1276 "Zend/zend_language_scanner.l"
{
return T_HALT_COMPILER;
}
-#line 4685 "Zend/zend_language_scanner.c"
+#line 4707 "Zend/zend_language_scanner.c"
yy390:
YYDEBUG(390, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(393, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1234 "Zend/zend_language_scanner.l"
+#line 1256 "Zend/zend_language_scanner.l"
{
return T_USE;
}
-#line 4709 "Zend/zend_language_scanner.c"
+#line 4731 "Zend/zend_language_scanner.c"
yy394:
YYDEBUG(394, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(397, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1282 "Zend/zend_language_scanner.l"
+#line 1304 "Zend/zend_language_scanner.l"
{
return T_UNSET;
}
-#line 4732 "Zend/zend_language_scanner.c"
+#line 4754 "Zend/zend_language_scanner.c"
yy398:
YYDEBUG(398, *YYCURSOR);
++YYCURSOR;
++YYCURSOR;
YYDEBUG(415, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1178 "Zend/zend_language_scanner.l"
+#line 1200 "Zend/zend_language_scanner.l"
{
return T_INT_CAST;
}
-#line 4918 "Zend/zend_language_scanner.c"
+#line 4940 "Zend/zend_language_scanner.c"
yy416:
YYDEBUG(416, *YYCURSOR);
yych = *++YYCURSOR;
++YYCURSOR;
YYDEBUG(424, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1182 "Zend/zend_language_scanner.l"
+#line 1204 "Zend/zend_language_scanner.l"
{
return T_DOUBLE_CAST;
}
-#line 4966 "Zend/zend_language_scanner.c"
+#line 4988 "Zend/zend_language_scanner.c"
yy425:
YYDEBUG(425, *YYCURSOR);
yych = *++YYCURSOR;
++YYCURSOR;
YYDEBUG(439, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1190 "Zend/zend_language_scanner.l"
+#line 1212 "Zend/zend_language_scanner.l"
{
return T_SCALAR_CAST;
}
-#line 5046 "Zend/zend_language_scanner.c"
+#line 5068 "Zend/zend_language_scanner.c"
yy440:
YYDEBUG(440, *YYCURSOR);
yych = *++YYCURSOR;
++YYCURSOR;
YYDEBUG(446, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1186 "Zend/zend_language_scanner.l"
+#line 1208 "Zend/zend_language_scanner.l"
{
return T_STRING_CAST;
}
-#line 5083 "Zend/zend_language_scanner.c"
+#line 5105 "Zend/zend_language_scanner.c"
yy447:
YYDEBUG(447, *YYCURSOR);
yych = *++YYCURSOR;
++YYCURSOR;
YYDEBUG(453, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1194 "Zend/zend_language_scanner.l"
+#line 1216 "Zend/zend_language_scanner.l"
{
return T_ARRAY_CAST;
}
-#line 5120 "Zend/zend_language_scanner.c"
+#line 5142 "Zend/zend_language_scanner.c"
yy454:
YYDEBUG(454, *YYCURSOR);
yych = *++YYCURSOR;
++YYCURSOR;
YYDEBUG(461, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1198 "Zend/zend_language_scanner.l"
+#line 1220 "Zend/zend_language_scanner.l"
{
return T_OBJECT_CAST;
}
-#line 5162 "Zend/zend_language_scanner.c"
+#line 5184 "Zend/zend_language_scanner.c"
yy462:
YYDEBUG(462, *YYCURSOR);
yych = *++YYCURSOR;
++YYCURSOR;
YYDEBUG(469, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1202 "Zend/zend_language_scanner.l"
+#line 1224 "Zend/zend_language_scanner.l"
{
return T_BOOL_CAST;
}
-#line 5207 "Zend/zend_language_scanner.c"
+#line 5229 "Zend/zend_language_scanner.c"
yy470:
YYDEBUG(470, *YYCURSOR);
yych = *++YYCURSOR;
++YYCURSOR;
YYDEBUG(481, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1206 "Zend/zend_language_scanner.l"
+#line 1228 "Zend/zend_language_scanner.l"
{
return T_UNSET_CAST;
}
-#line 5271 "Zend/zend_language_scanner.c"
+#line 5293 "Zend/zend_language_scanner.c"
yy482:
YYDEBUG(482, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(484, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1174 "Zend/zend_language_scanner.l"
+#line 1196 "Zend/zend_language_scanner.l"
{
return T_VAR;
}
-#line 5289 "Zend/zend_language_scanner.c"
+#line 5311 "Zend/zend_language_scanner.c"
yy485:
YYDEBUG(485, *YYCURSOR);
yych = *++YYCURSOR;
++YYCURSOR;
YYDEBUG(498, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1317 "Zend/zend_language_scanner.l"
+#line 1339 "Zend/zend_language_scanner.l"
{
yyless(7);
return T_NUMERIC_HINT;
}
-#line 5408 "Zend/zend_language_scanner.c"
+#line 5430 "Zend/zend_language_scanner.c"
yy499:
YYDEBUG(499, *YYCURSOR);
++YYCURSOR;
}
YYDEBUG(500, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1166 "Zend/zend_language_scanner.l"
+#line 1188 "Zend/zend_language_scanner.l"
{
return T_NEW;
}
-#line 5421 "Zend/zend_language_scanner.c"
+#line 5443 "Zend/zend_language_scanner.c"
yy501:
YYDEBUG(501, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(508, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1230 "Zend/zend_language_scanner.l"
+#line 1252 "Zend/zend_language_scanner.l"
{
return T_NAMESPACE;
}
-#line 5464 "Zend/zend_language_scanner.c"
+#line 5486 "Zend/zend_language_scanner.c"
yy509:
YYDEBUG(509, *YYCURSOR);
++YYCURSOR;
YYDEBUG(510, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1158 "Zend/zend_language_scanner.l"
+#line 1180 "Zend/zend_language_scanner.l"
{
return T_PAAMAYIM_NEKUDOTAYIM;
}
-#line 5474 "Zend/zend_language_scanner.c"
+#line 5496 "Zend/zend_language_scanner.c"
yy511:
YYDEBUG(511, *YYCURSOR);
++YYCURSOR;
++YYCURSOR;
YYDEBUG(514, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1390 "Zend/zend_language_scanner.l"
+#line 1412 "Zend/zend_language_scanner.l"
{
return T_MINUS_EQUAL;
}
-#line 5500 "Zend/zend_language_scanner.c"
+#line 5522 "Zend/zend_language_scanner.c"
yy515:
YYDEBUG(515, *YYCURSOR);
++YYCURSOR;
YYDEBUG(516, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1358 "Zend/zend_language_scanner.l"
+#line 1380 "Zend/zend_language_scanner.l"
{
return T_DEC;
}
-#line 5510 "Zend/zend_language_scanner.c"
+#line 5532 "Zend/zend_language_scanner.c"
yy517:
YYDEBUG(517, *YYCURSOR);
++YYCURSOR;
YYDEBUG(518, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1128 "Zend/zend_language_scanner.l"
+#line 1150 "Zend/zend_language_scanner.l"
{
yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
return T_OBJECT_OPERATOR;
}
-#line 5521 "Zend/zend_language_scanner.c"
+#line 5543 "Zend/zend_language_scanner.c"
yy519:
YYDEBUG(519, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(525, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1278 "Zend/zend_language_scanner.l"
+#line 1300 "Zend/zend_language_scanner.l"
{
return T_PUBLIC;
}
-#line 5570 "Zend/zend_language_scanner.c"
+#line 5592 "Zend/zend_language_scanner.c"
yy526:
YYDEBUG(526, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(534, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1274 "Zend/zend_language_scanner.l"
+#line 1296 "Zend/zend_language_scanner.l"
{
return T_PROTECTED;
}
-#line 5629 "Zend/zend_language_scanner.c"
+#line 5651 "Zend/zend_language_scanner.c"
yy535:
YYDEBUG(535, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(540, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1270 "Zend/zend_language_scanner.l"
+#line 1292 "Zend/zend_language_scanner.l"
{
return T_PRIVATE;
}
-#line 5663 "Zend/zend_language_scanner.c"
+#line 5685 "Zend/zend_language_scanner.c"
yy541:
YYDEBUG(541, *YYCURSOR);
++YYCURSOR;
}
YYDEBUG(542, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1104 "Zend/zend_language_scanner.l"
+#line 1126 "Zend/zend_language_scanner.l"
{
return T_PRINT;
}
-#line 5676 "Zend/zend_language_scanner.c"
+#line 5698 "Zend/zend_language_scanner.c"
yy543:
YYDEBUG(543, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(547, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1096 "Zend/zend_language_scanner.l"
+#line 1118 "Zend/zend_language_scanner.l"
{
return T_GOTO;
}
-#line 5705 "Zend/zend_language_scanner.c"
+#line 5727 "Zend/zend_language_scanner.c"
yy548:
YYDEBUG(548, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(552, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1242 "Zend/zend_language_scanner.l"
+#line 1264 "Zend/zend_language_scanner.l"
{
return T_GLOBAL;
}
-#line 5733 "Zend/zend_language_scanner.c"
+#line 5755 "Zend/zend_language_scanner.c"
yy553:
YYDEBUG(553, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(562, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1088 "Zend/zend_language_scanner.l"
+#line 1110 "Zend/zend_language_scanner.l"
{
return T_BREAK;
}
-#line 5786 "Zend/zend_language_scanner.c"
+#line 5808 "Zend/zend_language_scanner.c"
yy563:
YYDEBUG(563, *YYCURSOR);
yych = *++YYCURSOR;
++YYCURSOR;
YYDEBUG(570, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1298 "Zend/zend_language_scanner.l"
+#line 1320 "Zend/zend_language_scanner.l"
{
if (yytext[4] == 'e') {
yyless((sizeof("boolean") - 1));
}
return T_BOOL_HINT;
}
-#line 5900 "Zend/zend_language_scanner.c"
+#line 5922 "Zend/zend_language_scanner.c"
yy571:
YYDEBUG(571, *YYCURSOR);
yych = *++YYCURSOR;
++YYCURSOR;
YYDEBUG(583, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1307 "Zend/zend_language_scanner.l"
+#line 1329 "Zend/zend_language_scanner.l"
{
yyless(6);
return T_STRING_HINT;
}
-#line 6032 "Zend/zend_language_scanner.c"
+#line 6054 "Zend/zend_language_scanner.c"
yy584:
YYDEBUG(584, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(592, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1072 "Zend/zend_language_scanner.l"
+#line 1094 "Zend/zend_language_scanner.l"
{
return T_SWITCH;
}
-#line 6092 "Zend/zend_language_scanner.c"
+#line 6114 "Zend/zend_language_scanner.c"
yy593:
YYDEBUG(593, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(600, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1258 "Zend/zend_language_scanner.l"
+#line 1280 "Zend/zend_language_scanner.l"
{
return T_STATIC;
}
-#line 6137 "Zend/zend_language_scanner.c"
+#line 6159 "Zend/zend_language_scanner.c"
yy601:
YYDEBUG(601, *YYCURSOR);
yych = *++YYCURSOR;
++YYCURSOR;
YYDEBUG(610, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1312 "Zend/zend_language_scanner.l"
+#line 1334 "Zend/zend_language_scanner.l"
{
yyless(6);
return T_SCALAR_HINT;
}
-#line 6234 "Zend/zend_language_scanner.c"
+#line 6256 "Zend/zend_language_scanner.c"
yy611:
YYDEBUG(611, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(615, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1068 "Zend/zend_language_scanner.l"
+#line 1090 "Zend/zend_language_scanner.l"
{
return T_AS;
}
-#line 6265 "Zend/zend_language_scanner.c"
+#line 6287 "Zend/zend_language_scanner.c"
yy616:
YYDEBUG(616, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(619, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1294 "Zend/zend_language_scanner.l"
+#line 1316 "Zend/zend_language_scanner.l"
{
return T_ARRAY;
}
-#line 6288 "Zend/zend_language_scanner.c"
+#line 6310 "Zend/zend_language_scanner.c"
yy620:
YYDEBUG(620, *YYCURSOR);
++YYCURSOR;
}
YYDEBUG(621, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1442 "Zend/zend_language_scanner.l"
+#line 1464 "Zend/zend_language_scanner.l"
{
return T_LOGICAL_AND;
}
-#line 6301 "Zend/zend_language_scanner.c"
+#line 6323 "Zend/zend_language_scanner.c"
yy622:
YYDEBUG(622, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(628, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1262 "Zend/zend_language_scanner.l"
+#line 1284 "Zend/zend_language_scanner.l"
{
return T_ABSTRACT;
}
-#line 6339 "Zend/zend_language_scanner.c"
+#line 6361 "Zend/zend_language_scanner.c"
yy629:
YYDEBUG(629, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(633, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1028 "Zend/zend_language_scanner.l"
+#line 1050 "Zend/zend_language_scanner.l"
{
return T_WHILE;
}
-#line 6367 "Zend/zend_language_scanner.c"
+#line 6389 "Zend/zend_language_scanner.c"
yy634:
YYDEBUG(634, *YYCURSOR);
++YYCURSOR;
}
YYDEBUG(635, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1012 "Zend/zend_language_scanner.l"
+#line 1034 "Zend/zend_language_scanner.l"
{
return T_IF;
}
-#line 6380 "Zend/zend_language_scanner.c"
+#line 6402 "Zend/zend_language_scanner.c"
yy636:
YYDEBUG(636, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(642, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1246 "Zend/zend_language_scanner.l"
+#line 1268 "Zend/zend_language_scanner.l"
{
return T_ISSET;
}
-#line 6436 "Zend/zend_language_scanner.c"
+#line 6458 "Zend/zend_language_scanner.c"
yy643:
YYDEBUG(643, *YYCURSOR);
yych = *++YYCURSOR;
yy650:
YYDEBUG(650, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1214 "Zend/zend_language_scanner.l"
+#line 1236 "Zend/zend_language_scanner.l"
{
return T_INCLUDE;
}
-#line 6536 "Zend/zend_language_scanner.c"
+#line 6558 "Zend/zend_language_scanner.c"
yy651:
YYDEBUG(651, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(656, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1218 "Zend/zend_language_scanner.l"
+#line 1240 "Zend/zend_language_scanner.l"
{
return T_INCLUDE_ONCE;
}
-#line 6569 "Zend/zend_language_scanner.c"
+#line 6591 "Zend/zend_language_scanner.c"
yy657:
YYDEBUG(657, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(665, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1112 "Zend/zend_language_scanner.l"
+#line 1134 "Zend/zend_language_scanner.l"
{
return T_INTERFACE;
}
-#line 6627 "Zend/zend_language_scanner.c"
+#line 6649 "Zend/zend_language_scanner.c"
yy666:
YYDEBUG(666, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(673, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1238 "Zend/zend_language_scanner.l"
+#line 1260 "Zend/zend_language_scanner.l"
{
return T_INSTEADOF;
}
-#line 6681 "Zend/zend_language_scanner.c"
+#line 6703 "Zend/zend_language_scanner.c"
yy674:
YYDEBUG(674, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(679, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1064 "Zend/zend_language_scanner.l"
+#line 1086 "Zend/zend_language_scanner.l"
{
return T_INSTANCEOF;
}
-#line 6714 "Zend/zend_language_scanner.c"
+#line 6736 "Zend/zend_language_scanner.c"
yy680:
YYDEBUG(680, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(688, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1124 "Zend/zend_language_scanner.l"
+#line 1146 "Zend/zend_language_scanner.l"
{
return T_IMPLEMENTS;
}
-#line 6762 "Zend/zend_language_scanner.c"
+#line 6784 "Zend/zend_language_scanner.c"
yy689:
YYDEBUG(689, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(692, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1000 "Zend/zend_language_scanner.l"
+#line 1022 "Zend/zend_language_scanner.l"
{
return T_TRY;
}
-#line 6794 "Zend/zend_language_scanner.c"
+#line 6816 "Zend/zend_language_scanner.c"
yy693:
YYDEBUG(693, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(696, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1116 "Zend/zend_language_scanner.l"
+#line 1138 "Zend/zend_language_scanner.l"
{
return T_TRAIT;
}
-#line 6817 "Zend/zend_language_scanner.c"
+#line 6839 "Zend/zend_language_scanner.c"
yy697:
YYDEBUG(697, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(700, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1008 "Zend/zend_language_scanner.l"
+#line 1030 "Zend/zend_language_scanner.l"
{
return T_THROW;
}
-#line 6840 "Zend/zend_language_scanner.c"
+#line 6862 "Zend/zend_language_scanner.c"
yy701:
YYDEBUG(701, *YYCURSOR);
yych = *++YYCURSOR;
++YYCURSOR;
YYDEBUG(716, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1344 "Zend/zend_language_scanner.l"
+#line 1366 "Zend/zend_language_scanner.l"
{
yyless((sizeof("resource") - 1));
return T_RESOURCE_HINT;
}
-#line 6987 "Zend/zend_language_scanner.c"
+#line 7009 "Zend/zend_language_scanner.c"
yy717:
YYDEBUG(717, *YYCURSOR);
yyaccept = 0;
++YYCURSOR;
YYDEBUG(723, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1333 "Zend/zend_language_scanner.l"
+#line 1355 "Zend/zend_language_scanner.l"
{
if (yytext[4] == 'l') {
yyless((sizeof("double") - 1));
}
return T_DOUBLE_HINT;
}
-#line 7075 "Zend/zend_language_scanner.c"
+#line 7097 "Zend/zend_language_scanner.c"
yy724:
YYDEBUG(724, *YYCURSOR);
yych = *++YYCURSOR;
yy728:
YYDEBUG(728, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1222 "Zend/zend_language_scanner.l"
+#line 1244 "Zend/zend_language_scanner.l"
{
return T_REQUIRE;
}
-#line 7116 "Zend/zend_language_scanner.c"
+#line 7138 "Zend/zend_language_scanner.c"
yy729:
YYDEBUG(729, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(734, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1226 "Zend/zend_language_scanner.l"
+#line 1248 "Zend/zend_language_scanner.l"
{
return T_REQUIRE_ONCE;
}
-#line 7149 "Zend/zend_language_scanner.c"
+#line 7171 "Zend/zend_language_scanner.c"
yy735:
YYDEBUG(735, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(738, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 996 "Zend/zend_language_scanner.l"
+#line 1018 "Zend/zend_language_scanner.l"
{
return T_RETURN;
}
-#line 7172 "Zend/zend_language_scanner.c"
+#line 7194 "Zend/zend_language_scanner.c"
yy739:
YYDEBUG(739, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(749, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1092 "Zend/zend_language_scanner.l"
+#line 1114 "Zend/zend_language_scanner.l"
{
return T_CONTINUE;
}
-#line 7257 "Zend/zend_language_scanner.c"
+#line 7279 "Zend/zend_language_scanner.c"
yy750:
YYDEBUG(750, *YYCURSOR);
++YYCURSOR;
}
YYDEBUG(751, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 992 "Zend/zend_language_scanner.l"
+#line 1014 "Zend/zend_language_scanner.l"
{
return T_CONST;
}
-#line 7270 "Zend/zend_language_scanner.c"
+#line 7292 "Zend/zend_language_scanner.c"
yy752:
YYDEBUG(752, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(756, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1170 "Zend/zend_language_scanner.l"
+#line 1192 "Zend/zend_language_scanner.l"
{
return T_CLONE;
}
-#line 7299 "Zend/zend_language_scanner.c"
+#line 7321 "Zend/zend_language_scanner.c"
yy757:
YYDEBUG(757, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(759, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1108 "Zend/zend_language_scanner.l"
+#line 1130 "Zend/zend_language_scanner.l"
{
return T_CLASS;
}
-#line 7317 "Zend/zend_language_scanner.c"
+#line 7339 "Zend/zend_language_scanner.c"
yy760:
YYDEBUG(760, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(763, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1080 "Zend/zend_language_scanner.l"
+#line 1102 "Zend/zend_language_scanner.l"
{
return T_CASE;
}
-#line 7341 "Zend/zend_language_scanner.c"
+#line 7363 "Zend/zend_language_scanner.c"
yy764:
YYDEBUG(764, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(766, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1004 "Zend/zend_language_scanner.l"
+#line 1026 "Zend/zend_language_scanner.l"
{
return T_CATCH;
}
-#line 7359 "Zend/zend_language_scanner.c"
+#line 7381 "Zend/zend_language_scanner.c"
yy767:
YYDEBUG(767, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(777, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 988 "Zend/zend_language_scanner.l"
+#line 1010 "Zend/zend_language_scanner.l"
{
return T_FUNCTION;
}
-#line 7420 "Zend/zend_language_scanner.c"
+#line 7442 "Zend/zend_language_scanner.c"
yy778:
YYDEBUG(778, *YYCURSOR);
++YYCURSOR;
yy779:
YYDEBUG(779, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1040 "Zend/zend_language_scanner.l"
+#line 1062 "Zend/zend_language_scanner.l"
{
return T_FOR;
}
-#line 7448 "Zend/zend_language_scanner.c"
+#line 7470 "Zend/zend_language_scanner.c"
yy780:
YYDEBUG(780, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(784, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1048 "Zend/zend_language_scanner.l"
+#line 1070 "Zend/zend_language_scanner.l"
{
return T_FOREACH;
}
-#line 7476 "Zend/zend_language_scanner.c"
+#line 7498 "Zend/zend_language_scanner.c"
yy785:
YYDEBUG(785, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(790, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1266 "Zend/zend_language_scanner.l"
+#line 1288 "Zend/zend_language_scanner.l"
{
return T_FINAL;
}
-#line 7510 "Zend/zend_language_scanner.c"
+#line 7532 "Zend/zend_language_scanner.c"
yy791:
YYDEBUG(791, *YYCURSOR);
yych = *++YYCURSOR;
yy794:
YYDEBUG(794, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1036 "Zend/zend_language_scanner.l"
+#line 1058 "Zend/zend_language_scanner.l"
{
return T_DO;
}
-#line 7560 "Zend/zend_language_scanner.c"
+#line 7582 "Zend/zend_language_scanner.c"
yy795:
YYDEBUG(795, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(799, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 984 "Zend/zend_language_scanner.l"
+#line 1006 "Zend/zend_language_scanner.l"
{
return T_EXIT;
}
-#line 7589 "Zend/zend_language_scanner.c"
+#line 7611 "Zend/zend_language_scanner.c"
yy800:
YYDEBUG(800, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(806, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1084 "Zend/zend_language_scanner.l"
+#line 1106 "Zend/zend_language_scanner.l"
{
return T_DEFAULT;
}
-#line 7628 "Zend/zend_language_scanner.c"
+#line 7650 "Zend/zend_language_scanner.c"
yy807:
YYDEBUG(807, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(811, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1056 "Zend/zend_language_scanner.l"
+#line 1078 "Zend/zend_language_scanner.l"
{
return T_DECLARE;
}
-#line 7656 "Zend/zend_language_scanner.c"
+#line 7678 "Zend/zend_language_scanner.c"
yy812:
YYDEBUG(812, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(824, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1120 "Zend/zend_language_scanner.l"
+#line 1142 "Zend/zend_language_scanner.l"
{
return T_EXTENDS;
}
-#line 7740 "Zend/zend_language_scanner.c"
+#line 7762 "Zend/zend_language_scanner.c"
yy825:
YYDEBUG(825, *YYCURSOR);
++YYCURSOR;
}
YYDEBUG(826, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 980 "Zend/zend_language_scanner.l"
+#line 1002 "Zend/zend_language_scanner.l"
{
return T_EXIT;
}
-#line 7753 "Zend/zend_language_scanner.c"
+#line 7775 "Zend/zend_language_scanner.c"
yy827:
YYDEBUG(827, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(829, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1210 "Zend/zend_language_scanner.l"
+#line 1232 "Zend/zend_language_scanner.l"
{
return T_EVAL;
}
-#line 7771 "Zend/zend_language_scanner.c"
+#line 7793 "Zend/zend_language_scanner.c"
yy830:
YYDEBUG(830, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(840, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1032 "Zend/zend_language_scanner.l"
+#line 1054 "Zend/zend_language_scanner.l"
{
return T_ENDWHILE;
}
-#line 7845 "Zend/zend_language_scanner.c"
+#line 7867 "Zend/zend_language_scanner.c"
yy841:
YYDEBUG(841, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(846, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1076 "Zend/zend_language_scanner.l"
+#line 1098 "Zend/zend_language_scanner.l"
{
return T_ENDSWITCH;
}
-#line 7878 "Zend/zend_language_scanner.c"
+#line 7900 "Zend/zend_language_scanner.c"
yy847:
YYDEBUG(847, *YYCURSOR);
++YYCURSOR;
}
YYDEBUG(848, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1020 "Zend/zend_language_scanner.l"
+#line 1042 "Zend/zend_language_scanner.l"
{
return T_ENDIF;
}
-#line 7891 "Zend/zend_language_scanner.c"
+#line 7913 "Zend/zend_language_scanner.c"
yy849:
YYDEBUG(849, *YYCURSOR);
yych = *++YYCURSOR;
yy851:
YYDEBUG(851, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1044 "Zend/zend_language_scanner.l"
+#line 1066 "Zend/zend_language_scanner.l"
{
return T_ENDFOR;
}
-#line 7924 "Zend/zend_language_scanner.c"
+#line 7946 "Zend/zend_language_scanner.c"
yy852:
YYDEBUG(852, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(856, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1052 "Zend/zend_language_scanner.l"
+#line 1074 "Zend/zend_language_scanner.l"
{
return T_ENDFOREACH;
}
-#line 7952 "Zend/zend_language_scanner.c"
+#line 7974 "Zend/zend_language_scanner.c"
yy857:
YYDEBUG(857, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(863, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1060 "Zend/zend_language_scanner.l"
+#line 1082 "Zend/zend_language_scanner.l"
{
return T_ENDDECLARE;
}
-#line 7990 "Zend/zend_language_scanner.c"
+#line 8012 "Zend/zend_language_scanner.c"
yy864:
YYDEBUG(864, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(867, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1250 "Zend/zend_language_scanner.l"
+#line 1272 "Zend/zend_language_scanner.l"
{
return T_EMPTY;
}
-#line 8013 "Zend/zend_language_scanner.c"
+#line 8035 "Zend/zend_language_scanner.c"
yy868:
YYDEBUG(868, *YYCURSOR);
yych = *++YYCURSOR;
yy870:
YYDEBUG(870, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1024 "Zend/zend_language_scanner.l"
+#line 1046 "Zend/zend_language_scanner.l"
{
return T_ELSE;
}
-#line 8046 "Zend/zend_language_scanner.c"
+#line 8068 "Zend/zend_language_scanner.c"
yy871:
YYDEBUG(871, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(873, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1016 "Zend/zend_language_scanner.l"
+#line 1038 "Zend/zend_language_scanner.l"
{
return T_ELSEIF;
}
-#line 8064 "Zend/zend_language_scanner.c"
+#line 8086 "Zend/zend_language_scanner.c"
yy874:
YYDEBUG(874, *YYCURSOR);
yych = *++YYCURSOR;
}
YYDEBUG(876, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1100 "Zend/zend_language_scanner.l"
+#line 1122 "Zend/zend_language_scanner.l"
{
return T_ECHO;
}
-#line 8082 "Zend/zend_language_scanner.c"
+#line 8104 "Zend/zend_language_scanner.c"
}
/* *********************************** */
yyc_ST_LOOKING_FOR_PROPERTY:
yy880:
YYDEBUG(880, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1133 "Zend/zend_language_scanner.l"
+#line 1155 "Zend/zend_language_scanner.l"
{
zendlval->value.str.val = yytext; /* no copying - intentional */
zendlval->value.str.len = yyleng;
HANDLE_NEWLINES(yytext, yyleng);
return T_WHITESPACE;
}
-#line 8163 "Zend/zend_language_scanner.c"
+#line 8185 "Zend/zend_language_scanner.c"
yy881:
YYDEBUG(881, *YYCURSOR);
++YYCURSOR;
yy882:
YYDEBUG(882, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1152 "Zend/zend_language_scanner.l"
+#line 1174 "Zend/zend_language_scanner.l"
{
yyless(0);
yy_pop_state(TSRMLS_C);
goto restart;
}
-#line 8177 "Zend/zend_language_scanner.c"
+#line 8199 "Zend/zend_language_scanner.c"
yy883:
YYDEBUG(883, *YYCURSOR);
++YYCURSOR;
yy884:
YYDEBUG(884, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1145 "Zend/zend_language_scanner.l"
+#line 1167 "Zend/zend_language_scanner.l"
{
yy_pop_state(TSRMLS_C);
zend_copy_value(zendlval, yytext, yyleng);
zendlval->type = IS_STRING;
return T_STRING;
}
-#line 8193 "Zend/zend_language_scanner.c"
+#line 8215 "Zend/zend_language_scanner.c"
yy885:
YYDEBUG(885, *YYCURSOR);
yych = *++YYCURSOR;
++YYCURSOR;
YYDEBUG(889, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1141 "Zend/zend_language_scanner.l"
+#line 1163 "Zend/zend_language_scanner.l"
{
return T_OBJECT_OPERATOR;
}
-#line 8218 "Zend/zend_language_scanner.c"
+#line 8240 "Zend/zend_language_scanner.c"
yy890:
YYDEBUG(890, *YYCURSOR);
++YYCURSOR;
yy895:
YYDEBUG(895, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1484 "Zend/zend_language_scanner.l"
+#line 1506 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, yytext, yyleng);
zendlval->type = IS_STRING;
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
return T_STRING_VARNAME;
}
-#line 8296 "Zend/zend_language_scanner.c"
+#line 8318 "Zend/zend_language_scanner.c"
yy896:
YYDEBUG(896, *YYCURSOR);
++YYCURSOR;
YYDEBUG(897, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1493 "Zend/zend_language_scanner.l"
+#line 1515 "Zend/zend_language_scanner.l"
{
yyless(0);
yy_pop_state(TSRMLS_C);
yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
goto restart;
}
-#line 8309 "Zend/zend_language_scanner.c"
+#line 8331 "Zend/zend_language_scanner.c"
yy898:
YYDEBUG(898, *YYCURSOR);
++YYCURSOR;
++YYCURSOR;
YYDEBUG(903, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2320 "Zend/zend_language_scanner.l"
+#line 2342 "Zend/zend_language_scanner.l"
{
int newline = 0;
HANDLE_NEWLINES(yytext, yyleng - newline);
return T_ENCAPSED_AND_WHITESPACE;
}
-#line 8386 "Zend/zend_language_scanner.c"
+#line 8408 "Zend/zend_language_scanner.c"
/* *********************************** */
yyc_ST_VAR_OFFSET:
{
yy907:
YYDEBUG(907, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1543 "Zend/zend_language_scanner.l"
+#line 1565 "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);
}
return T_NUM_STRING;
}
-#line 8498 "Zend/zend_language_scanner.c"
+#line 8520 "Zend/zend_language_scanner.c"
yy908:
YYDEBUG(908, *YYCURSOR);
yych = *++YYCURSOR;
yy910:
YYDEBUG(910, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1848 "Zend/zend_language_scanner.l"
+#line 1870 "Zend/zend_language_scanner.l"
{
/* Only '[' can be valid, but returning other tokens will allow a more explicit parse error */
return yytext[0];
}
-#line 8523 "Zend/zend_language_scanner.c"
+#line 8545 "Zend/zend_language_scanner.c"
yy911:
YYDEBUG(911, *YYCURSOR);
++YYCURSOR;
YYDEBUG(912, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1843 "Zend/zend_language_scanner.l"
+#line 1865 "Zend/zend_language_scanner.l"
{
yy_pop_state(TSRMLS_C);
return ']';
}
-#line 8534 "Zend/zend_language_scanner.c"
+#line 8556 "Zend/zend_language_scanner.c"
yy913:
YYDEBUG(913, *YYCURSOR);
yych = *++YYCURSOR;
++YYCURSOR;
YYDEBUG(915, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1853 "Zend/zend_language_scanner.l"
+#line 1875 "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 8551 "Zend/zend_language_scanner.c"
+#line 8573 "Zend/zend_language_scanner.c"
yy916:
YYDEBUG(916, *YYCURSOR);
++YYCURSOR;
yy917:
YYDEBUG(917, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1860 "Zend/zend_language_scanner.l"
+#line 1882 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, yytext, yyleng);
zendlval->type = IS_STRING;
return T_STRING;
}
-#line 8566 "Zend/zend_language_scanner.c"
+#line 8588 "Zend/zend_language_scanner.c"
yy918:
YYDEBUG(918, *YYCURSOR);
++YYCURSOR;
YYDEBUG(919, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 2376 "Zend/zend_language_scanner.l"
+#line 2398 "Zend/zend_language_scanner.l"
{
if (YYCURSOR > YYLIMIT) {
return 0;
zend_error(E_COMPILE_WARNING,"Unexpected character in input: '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);
goto restart;
}
-#line 8581 "Zend/zend_language_scanner.c"
+#line 8603 "Zend/zend_language_scanner.c"
yy920:
YYDEBUG(920, *YYCURSOR);
++YYCURSOR;
yy924:
YYDEBUG(924, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1837 "Zend/zend_language_scanner.l"
+#line 1859 "Zend/zend_language_scanner.l"
{
zend_copy_value(zendlval, (yytext+1), (yyleng-1));
zendlval->type = IS_STRING;
return T_VARIABLE;
}
-#line 8623 "Zend/zend_language_scanner.c"
+#line 8645 "Zend/zend_language_scanner.c"
yy925:
YYDEBUG(925, *YYCURSOR);
++YYCURSOR;
yy931:
YYDEBUG(931, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 1555 "Zend/zend_language_scanner.l"
+#line 1577 "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 8662 "Zend/zend_language_scanner.c"
+#line 8684 "Zend/zend_language_scanner.c"
yy932:
YYDEBUG(932, *YYCURSOR);
++YYCURSOR;
goto yy931;
}
}
-#line 2385 "Zend/zend_language_scanner.l"
+#line 2407 "Zend/zend_language_scanner.l"
}
return 0;
}
+static char *php_ap_getword(const zend_encoding *encoding, char **line, char stop TSRMLS_DC);
+static char *php_ap_getword_conf(const zend_encoding *encoding, char *str TSRMLS_DC);
+
static php_rfc1867_encoding_translation_t php_rfc1867_encoding_translation = dummy_encoding_translation;
-static php_rfc1867_encoding_detector_t php_rfc1867_encoding_detector = NULL;
-static php_rfc1867_encoding_converter_t php_rfc1867_encoding_converter = NULL;
-static php_rfc1867_getword_t php_rfc1867_getword = NULL;
+static php_rfc1867_get_detect_order_t php_rfc1867_get_detect_order = NULL;
+static php_rfc1867_set_input_encoding_t php_rfc1867_set_input_encoding = NULL;
+static php_rfc1867_getword_t php_rfc1867_getword = php_ap_getword;
+static php_rfc1867_getword_conf_t php_rfc1867_getword_conf = php_ap_getword_conf;
static php_rfc1867_basename_t php_rfc1867_basename = NULL;
PHPAPI int (*php_rfc1867_callback)(unsigned int event, void *event_data, void **extra TSRMLS_DC) = NULL;
static void safe_php_register_variable(char *var, char *strval, int val_len, zval *track_vars_array, zend_bool override_protection TSRMLS_DC);
-static void php_flush_gpc_variables(int num_vars, char **val_list, int *len_list, zval *array_ptr TSRMLS_DC) /* {{{ */
-{
- int i;
- unsigned int new_val_len;
-
- if (num_vars > 0 &&
- php_rfc1867_encoding_detector(val_list, len_list, num_vars, NULL TSRMLS_CC) == SUCCESS) {
- php_rfc1867_encoding_converter(val_list, len_list, num_vars, NULL, NULL TSRMLS_CC);
- }
- for (i = 0; i<num_vars; i += 2) {
- if (sapi_module.input_filter(PARSE_POST, val_list[i], &val_list[i+1], len_list[i+1], &new_val_len TSRMLS_CC)) {
- if (php_rfc1867_callback != NULL) {
- multipart_event_formdata event_formdata;
- void *event_extra_data = NULL;
-
- event_formdata.post_bytes_processed = SG(read_post_bytes);
- event_formdata.name = val_list[i];
- event_formdata.value = &val_list[i+1];
- event_formdata.length = new_val_len;
- event_formdata.newlength = &new_val_len;
- if (php_rfc1867_callback(MULTIPART_EVENT_FORMDATA, &event_formdata, &event_extra_data TSRMLS_CC) == FAILURE) {
- efree(val_list[i]);
- efree(val_list[i+1]);
- continue;
- }
- }
- safe_php_register_variable(val_list[i], val_list[i+1], new_val_len, array_ptr, 0 TSRMLS_CC);
- }
- efree(val_list[i]);
- efree(val_list[i+1]);
- }
- efree(val_list);
- efree(len_list);
-}
-/* }}} */
-
-static void php_gpc_realloc_buffer(char ***pval_list, int **plen_list, int *num_vars_max, int inc TSRMLS_DC) /* {{{ */
-{
- /* allow only even increments */
- if (inc & 1) {
- inc++;
- }
- (*num_vars_max) += inc;
- *pval_list = (char **)erealloc(*pval_list, (*num_vars_max+2)*sizeof(char *));
- *plen_list = (int *)erealloc(*plen_list, (*num_vars_max+2)*sizeof(int));
-}
-/* }}} */
-
-static void php_gpc_stack_variable(char *param, char *value, char ***pval_list, int **plen_list, int *num_vars, int *num_vars_max TSRMLS_DC) /* {{{ */
-{
- char **val_list = *pval_list;
- int *len_list = *plen_list;
-
- if (*num_vars >= *num_vars_max) {
- php_gpc_realloc_buffer(pval_list, plen_list, num_vars_max, 16 TSRMLS_CC);
- /* in case realloc relocated the buffer */
- val_list = *pval_list;
- len_list = *plen_list;
- }
-
- val_list[*num_vars] = (char *)estrdup(param);
- len_list[*num_vars] = strlen(param);
- (*num_vars)++;
- val_list[*num_vars] = (char *)estrdup(value);
- len_list[*num_vars] = strlen(value);
- (*num_vars)++;
-}
-/* }}} */
-
/* The longest property name we use in an uploaded file array */
#define MAX_SIZE_OF_INDEX sizeof("[tmp_name]")
char *boundary_next;
int boundary_next_len;
+ const zend_encoding *input_encoding;
+ const zend_encoding **detect_order;
+ size_t detect_order_size;
} multipart_buffer;
typedef struct {
}
/* create new multipart_buffer structure */
-static multipart_buffer *multipart_buffer_new(char *boundary, int boundary_len)
+static multipart_buffer *multipart_buffer_new(char *boundary, int boundary_len TSRMLS_DC)
{
multipart_buffer *self = (multipart_buffer *) ecalloc(1, sizeof(multipart_buffer));
self->buf_begin = self->buffer;
self->bytes_in_buffer = 0;
+ if (php_rfc1867_encoding_translation(TSRMLS_C)) {
+ php_rfc1867_get_detect_order(&self->detect_order, &self->detect_order_size TSRMLS_CC);
+ } else {
+ self->detect_order = NULL;
+ self->detect_order_size = 0;
+ }
+
+ self->input_encoding = NULL;
+
return self;
}
char *key = line;
char *value = NULL;
+ if (php_rfc1867_encoding_translation(TSRMLS_C)) {
+ self->input_encoding = zend_multibyte_encoding_detector(line, strlen(line), self->detect_order, self->detect_order_size TSRMLS_CC);
+ }
+
/* space in the beginning means same header */
if (!isspace(line[0])) {
value = strchr(line, ':');
return NULL;
}
-static char *php_ap_getword(char **line, char stop)
+static char *php_ap_getword(const zend_encoding *encoding, char **line, char stop TSRMLS_DC)
{
char *pos = *line, quote;
char *res;
return res;
}
-static char *substring_conf(char *start, int len, char quote TSRMLS_DC)
+static char *substring_conf(char *start, int len, char quote)
{
char *result = emalloc(len + 1);
char *resp = result;
return result;
}
-static char *php_ap_getword_conf(char *str TSRMLS_DC)
+static char *php_ap_getword_conf(const zend_encoding *encoding, char *str TSRMLS_DC)
{
while (*str && isspace(*str)) {
++str;
char quote = *str;
str++;
- return substring_conf(str, strlen(str), quote TSRMLS_CC);
+ return substring_conf(str, strlen(str), quote);
} else {
char *strend = str;
while (*strend && !isspace(*strend)) {
++strend;
}
- return substring_conf(str, strend - str, 0 TSRMLS_CC);
+ return substring_conf(str, strend - str, 0);
}
}
+static char *php_ap_basename(const zend_encoding *encoding, char *path TSRMLS_DC)
+{
+ char *s = strrchr(path, '\\');
+ if (s) {
+ char *tmp = strrchr(path, '/');
+ if (tmp && tmp > s) {
+ s = tmp + 1;
+ } else {
+ s++;
+ }
+ } else {
+ s = path;
+ }
+ return s;
+}
+
/*
* Search for a string in a fixed-length byte string.
* If partial is true, partial matches are allowed at the end of the buffer.
int max_file_size = 0, skip_upload = 0, anonindex = 0, is_anonymous;
zval *http_post_files = NULL;
HashTable *uploaded_files = NULL;
- int str_len = 0, num_vars = 0, num_vars_max = 2*10, *len_list = NULL;
- char **val_list = NULL;
+ int str_len = 0;
multipart_buffer *mbuff;
zval *array_ptr = (zval *) arg;
int fd = -1;
void *event_extra_data = NULL;
unsigned int llen = 0;
int upload_cnt = INI_INT("max_file_uploads");
+ const zend_encoding *internal_encoding = zend_multibyte_get_internal_encoding(TSRMLS_C);
+ php_rfc1867_getword_t getword;
+ php_rfc1867_getword_conf_t getword_conf;
+ php_rfc1867_basename_t _basename;
+
+ if (php_rfc1867_encoding_translation(TSRMLS_C) && internal_encoding) {
+ getword = php_rfc1867_getword;
+ getword_conf = php_rfc1867_getword_conf;
+ _basename = php_rfc1867_basename;
+ } else {
+ getword = php_ap_getword;
+ getword_conf = php_ap_getword_conf;
+ _basename = php_ap_basename;
+ }
if (SG(post_max_size) > 0 && SG(request_info).content_length > SG(post_max_size)) {
sapi_module.sapi_error(E_WARNING, "POST Content-Length of %ld bytes exceeds the limit of %ld bytes", SG(request_info).content_length, SG(post_max_size));
INIT_PZVAL(http_post_files);
PG(http_globals)[TRACK_VARS_FILES] = http_post_files;
- if (php_rfc1867_encoding_translation(TSRMLS_C)) {
- val_list = (char **)ecalloc(num_vars_max+2, sizeof(char *));
- len_list = (int *)ecalloc(num_vars_max+2, sizeof(int));
- }
-
zend_llist_init(&header, sizeof(mime_header_entry), (llist_dtor_func_t) php_free_hdr_entry, 0);
if (php_rfc1867_callback != NULL) {
++cd;
}
- while (*cd && (pair = php_ap_getword(&cd, ';')))
+ while (*cd && (pair = getword(mbuff->input_encoding, &cd, ';' TSRMLS_CC)))
{
char *key = NULL, *word = pair;
}
if (strchr(pair, '=')) {
- key = php_ap_getword(&pair, '=');
+ key = getword(mbuff->input_encoding, &pair, '=' TSRMLS_CC);
if (!strcasecmp(key, "name")) {
if (param) {
efree(param);
}
- if (php_rfc1867_encoding_translation(TSRMLS_C)) {
- if (num_vars >= num_vars_max) {
- php_gpc_realloc_buffer(&val_list, &len_list, &num_vars_max, 1 TSRMLS_CC);
+ param = getword_conf(mbuff->input_encoding, pair TSRMLS_CC);
+ if (mbuff->input_encoding && internal_encoding) {
+ unsigned char *new_param;
+ size_t new_param_len;
+ if ((size_t)-1 != zend_multibyte_encoding_converter(&new_param, &new_param_len, (unsigned char *)param, strlen(param), internal_encoding, mbuff->input_encoding TSRMLS_CC)) {
+ efree(param);
+ param = (char *)new_param;
}
- val_list[num_vars] = pair;
- len_list[num_vars] = strlen(pair);
- num_vars++;
- php_rfc1867_encoding_detector(val_list, len_list, num_vars, NULL TSRMLS_CC);
- num_vars--;
- param = php_rfc1867_getword(pair TSRMLS_CC);
- } else {
- param = php_ap_getword_conf(pair TSRMLS_CC);
}
} else if (!strcasecmp(key, "filename")) {
if (filename) {
efree(filename);
}
- if (php_rfc1867_encoding_translation(TSRMLS_C)) {
- if (num_vars >= num_vars_max) {
- php_gpc_realloc_buffer(&val_list, &len_list, &num_vars_max, 1 TSRMLS_CC);
+ filename = getword_conf(mbuff->input_encoding, pair TSRMLS_CC);
+ if (mbuff->input_encoding && internal_encoding) {
+ unsigned char *new_filename;
+ size_t new_filename_len;
+ if ((size_t)-1 != zend_multibyte_encoding_converter(&new_filename, &new_filename_len, (unsigned char *)filename, strlen(filename), internal_encoding, mbuff->input_encoding TSRMLS_CC)) {
+ efree(filename);
+ filename = (char *)new_filename;
}
- val_list[num_vars] = pair;
- len_list[num_vars] = strlen(pair);
- num_vars++;
- php_rfc1867_encoding_detector(val_list, len_list, num_vars, NULL TSRMLS_CC);
- num_vars--;
- filename = php_rfc1867_getword(pair TSRMLS_CC);
- } else {
- filename = php_ap_getword_conf(pair TSRMLS_CC);
}
}
}
if (!value) {
value = estrdup("");
+ value_len = 0;
}
- if (php_rfc1867_encoding_translation(TSRMLS_C)) {
- /* postpone filtering, callback call and registration */
- php_gpc_stack_variable(param, value, &val_list, &len_list, &num_vars, &num_vars_max TSRMLS_CC);
- } else if (sapi_module.input_filter(PARSE_POST, param, &value, value_len, &new_val_len TSRMLS_CC)) {
+ if (mbuff->input_encoding && internal_encoding) {
+ unsigned char *new_value;
+ size_t new_value_len;
+ if ((size_t)-1 != zend_multibyte_encoding_converter(&new_value, &new_value_len, (unsigned char *)value, value_len, internal_encoding, mbuff->input_encoding TSRMLS_CC)) {
+ efree(value);
+ value = (char *)new_value;
+ value_len = new_value_len;
+ }
+ }
+
+ if (sapi_module.input_filter(PARSE_POST, param, &value, value_len, &new_val_len TSRMLS_CC)) {
if (php_rfc1867_callback != NULL) {
multipart_event_formdata event_formdata;
size_t newlength = new_val_len;
snprintf(lbuf, llen, "%s_name", param);
}
- if (php_rfc1867_encoding_translation(TSRMLS_C)) {
- if (num_vars >= num_vars_max) {
- php_gpc_realloc_buffer(&val_list, &len_list, &num_vars_max, 1 TSRMLS_CC);
- }
- val_list[num_vars] = filename;
- len_list[num_vars] = strlen(filename);
- num_vars++;
- if (php_rfc1867_encoding_detector(val_list, len_list, num_vars, NULL TSRMLS_CC) == SUCCESS) {
- str_len = strlen(filename);
- php_rfc1867_encoding_converter(&filename, &str_len, 1, NULL, NULL TSRMLS_CC);
- }
- s = php_rfc1867_basename(filename TSRMLS_CC);
- num_vars--;
- } else {
- /* The \ check should technically be needed for win32 systems only where
- * it is a valid path separator. However, IE in all it's wisdom always sends
- * the full path of the file on the user's filesystem, which means that unless
- * the user does basename() they get a bogus file name. Until IE's user base drops
- * to nill or problem is fixed this code must remain enabled for all systems. */
- s = strrchr(filename, '\\');
- if ((tmp = strrchr(filename, '/')) > s) {
- s = tmp;
- }
+ /* The \ check should technically be needed for win32 systems only where
+ * it is a valid path separator. However, IE in all it's wisdom always sends
+ * the full path of the file on the user's filesystem, which means that unless
+ * the user does basename() they get a bogus file name. Until IE's user base drops
+ * to nill or problem is fixed this code must remain enabled for all systems. */
+ s = _basename(internal_encoding, filename TSRMLS_CC);
#ifdef PHP_WIN32
- if (PG(magic_quotes_gpc)) {
- s = s ? s : filename;
- tmp = strrchr(s, '\'');
- s = tmp > s ? tmp : s;
- tmp = strrchr(s, '"');
- s = tmp > s ? tmp : s;
- }
+ if (PG(magic_quotes_gpc)) {
+ s = s ? s : filename;
+ tmp = strrchr(s, '\'');
+ s = tmp >= s ? tmp + 1: s;
+ tmp = strrchr(s, '"');
+ s = tmp >= s ? tmp + 1: s;
+ }
#endif
- if (s) {
- s++;
- } else {
- s = filename;
- }
+ if (!s) {
+ s = filename;
}
if (!is_anonymous) {
php_rfc1867_callback(MULTIPART_EVENT_END, &event_end, &event_extra_data TSRMLS_CC);
}
- if (php_rfc1867_encoding_translation(TSRMLS_C)) {
- php_flush_gpc_variables(num_vars, val_list, len_list, array_ptr TSRMLS_CC);
- }
-
if (lbuf) efree(lbuf);
if (abuf) efree(abuf);
if (array_index) efree(array_index);
SAPI_API void php_rfc1867_set_multibyte_callbacks(
php_rfc1867_encoding_translation_t encoding_translation,
- php_rfc1867_encoding_detector_t encoding_detector,
- php_rfc1867_encoding_converter_t encoding_converter,
+ php_rfc1867_get_detect_order_t get_detect_order,
+ php_rfc1867_set_input_encoding_t set_input_encoding,
php_rfc1867_getword_t getword,
+ php_rfc1867_getword_conf_t getword_conf,
php_rfc1867_basename_t basename) /* {{{ */
{
php_rfc1867_encoding_translation = encoding_translation;
- php_rfc1867_encoding_detector = encoding_detector;
- php_rfc1867_encoding_converter = encoding_converter;
+ php_rfc1867_get_detect_order = get_detect_order;
+ php_rfc1867_set_input_encoding = set_input_encoding;
php_rfc1867_getword = getword;
+ php_rfc1867_getword_conf = getword_conf;
php_rfc1867_basename = basename;
}
/* }}} */