File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / Zend / zend_language_scanner.c
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue May 29 12:34:36 2012 UTC (12 years, 1 month ago) by misho
Branches: php, MAIN
CVS tags: v5_4_3elwix, v5_4_17p0, HEAD
php 5.4.3+patches

    1: /* Generated by re2c 0.13.5 on Thu Mar  1 21:27:30 2012 */
    2: #line 1 "Zend/zend_language_scanner.l"
    3: /*
    4:    +----------------------------------------------------------------------+
    5:    | Zend Engine                                                          |
    6:    +----------------------------------------------------------------------+
    7:    | Copyright (c) 1998-2012 Zend Technologies Ltd. (http://www.zend.com) |
    8:    +----------------------------------------------------------------------+
    9:    | This source file is subject to version 2.00 of the Zend license,     |
   10:    | that is bundled with this package in the file LICENSE, and is        |
   11:    | available through the world-wide-web at the following url:           |
   12:    | http://www.zend.com/license/2_00.txt.                                |
   13:    | If you did not receive a copy of the Zend license and are unable to  |
   14:    | obtain it through the world-wide-web, please send a note to          |
   15:    | license@zend.com so we can mail you a copy immediately.              |
   16:    +----------------------------------------------------------------------+
   17:    | Authors: Marcus Boerger <helly@php.net>                              |
   18:    |          Nuno Lopes <nlopess@php.net>                                |
   19:    |          Scott MacVicar <scottmac@php.net>                           |
   20:    | Flex version authors:                                                |
   21:    |          Andi Gutmans <andi@zend.com>                                |
   22:    |          Zeev Suraski <zeev@zend.com>                                |
   23:    +----------------------------------------------------------------------+
   24: */
   25: 
   26: /* $Id: zend_language_scanner.c,v 1.1.1.2 2012/05/29 12:34:36 misho Exp $ */
   27: 
   28: #if 0
   29: # define YYDEBUG(s, c) printf("state: %d char: %c\n", s, c)
   30: #else
   31: # define YYDEBUG(s, c)
   32: #endif
   33: 
   34: #include "zend_language_scanner_defs.h"
   35: 
   36: #include <errno.h>
   37: #include "zend.h"
   38: #include "zend_alloc.h"
   39: #include <zend_language_parser.h>
   40: #include "zend_compile.h"
   41: #include "zend_language_scanner.h"
   42: #include "zend_highlight.h"
   43: #include "zend_constants.h"
   44: #include "zend_variables.h"
   45: #include "zend_operators.h"
   46: #include "zend_API.h"
   47: #include "zend_strtod.h"
   48: #include "zend_exceptions.h"
   49: #include "tsrm_virtual_cwd.h"
   50: #include "tsrm_config_common.h"
   51: 
   52: #define YYCTYPE   unsigned char
   53: #define YYFILL(n) { if ((YYCURSOR + n) >= (YYLIMIT + ZEND_MMAP_AHEAD)) { return 0; } }
   54: #define YYCURSOR  SCNG(yy_cursor)
   55: #define YYLIMIT   SCNG(yy_limit)
   56: #define YYMARKER  SCNG(yy_marker)
   57: 
   58: #define YYGETCONDITION()  SCNG(yy_state)
   59: #define YYSETCONDITION(s) SCNG(yy_state) = s
   60: 
   61: #define STATE(name)  yyc##name
   62: 
   63: /* emulate flex constructs */
   64: #define BEGIN(state) YYSETCONDITION(STATE(state))
   65: #define YYSTATE      YYGETCONDITION()
   66: #define yytext       ((char*)SCNG(yy_text))
   67: #define yyleng       SCNG(yy_leng)
   68: #define yyless(x)    do { YYCURSOR = (unsigned char*)yytext + x; \
   69:                           yyleng   = (unsigned int)x; } while(0)
   70: #define yymore()     goto yymore_restart
   71: 
   72: /* perform sanity check. If this message is triggered you should
   73:    increase the ZEND_MMAP_AHEAD value in the zend_streams.h file */
   74: #define YYMAXFILL 16
   75: #if ZEND_MMAP_AHEAD < YYMAXFILL
   76: # error ZEND_MMAP_AHEAD should be greater than or equal to YYMAXFILL
   77: #endif
   78: 
   79: #ifdef HAVE_STDARG_H
   80: # include <stdarg.h>
   81: #endif
   82: 
   83: #ifdef HAVE_UNISTD_H
   84: # include <unistd.h>
   85: #endif
   86: 
   87: /* Globals Macros */
   88: #define SCNG	LANG_SCNG
   89: #ifdef ZTS
   90: ZEND_API ts_rsrc_id language_scanner_globals_id;
   91: #else
   92: ZEND_API zend_php_scanner_globals language_scanner_globals;
   93: #endif
   94: 
   95: #define HANDLE_NEWLINES(s, l)													\
   96: do {																			\
   97: 	char *p = (s), *boundary = p+(l);											\
   98: 																				\
   99: 	while (p<boundary) {														\
  100: 		if (*p == '\n' || (*p == '\r' && (*(p+1) != '\n'))) {					\
  101: 			CG(zend_lineno)++;													\
  102: 		}																		\
  103: 		p++;																	\
  104: 	}																			\
  105: } while (0)
  106: 
  107: #define HANDLE_NEWLINE(c) \
  108: { \
  109: 	if (c == '\n' || c == '\r') { \
  110: 		CG(zend_lineno)++; \
  111: 	} \
  112: }
  113: 
  114: /* To save initial string length after scanning to first variable, CG(doc_comment_len) can be reused */
  115: #define SET_DOUBLE_QUOTES_SCANNED_LENGTH(len) CG(doc_comment_len) = (len)
  116: #define GET_DOUBLE_QUOTES_SCANNED_LENGTH()    CG(doc_comment_len)
  117: 
  118: #define IS_LABEL_START(c) (((c) >= 'a' && (c) <= 'z') || ((c) >= 'A' && (c) <= 'Z') || (c) == '_' || (c) >= 0x7F)
  119: 
  120: #define ZEND_IS_OCT(c)  ((c)>='0' && (c)<='7')
  121: #define ZEND_IS_HEX(c)  (((c)>='0' && (c)<='9') || ((c)>='a' && (c)<='f') || ((c)>='A' && (c)<='F'))
  122: 
  123: BEGIN_EXTERN_C()
  124: 
  125: 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)
  126: {
  127: 	const zend_encoding *internal_encoding = zend_multibyte_get_internal_encoding(TSRMLS_C);
  128: 	assert(internal_encoding && zend_multibyte_check_lexer_compatibility(internal_encoding));
  129: 	return zend_multibyte_encoding_converter(to, to_length, from, from_length, internal_encoding, LANG_SCNG(script_encoding) TSRMLS_CC);
  130: }
  131: 
  132: 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)
  133: {
  134: 	return zend_multibyte_encoding_converter(to, to_length, from, from_length, zend_multibyte_encoding_utf8, LANG_SCNG(script_encoding) TSRMLS_CC);
  135: }
  136: 
  137: 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)
  138: {
  139: 	return zend_multibyte_encoding_converter(to, to_length, from, from_length,
  140: LANG_SCNG(script_encoding), zend_multibyte_encoding_utf8 TSRMLS_CC);
  141: }
  142: 
  143: 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)
  144: {
  145: 	const zend_encoding *internal_encoding = zend_multibyte_get_internal_encoding(TSRMLS_C);
  146: 	assert(internal_encoding && zend_multibyte_check_lexer_compatibility(internal_encoding));
  147: 	return zend_multibyte_encoding_converter(to, to_length, from, from_length,
  148: internal_encoding, zend_multibyte_encoding_utf8 TSRMLS_CC);
  149: }
  150: 
  151: 
  152: static void _yy_push_state(int new_state TSRMLS_DC)
  153: {
  154: 	zend_stack_push(&SCNG(state_stack), (void *) &YYGETCONDITION(), sizeof(int));
  155: 	YYSETCONDITION(new_state);
  156: }
  157: 
  158: #define yy_push_state(state_and_tsrm) _yy_push_state(yyc##state_and_tsrm)
  159: 
  160: static void yy_pop_state(TSRMLS_D)
  161: {
  162: 	int *stack_state;
  163: 	zend_stack_top(&SCNG(state_stack), (void **) &stack_state);
  164: 	YYSETCONDITION(*stack_state);
  165: 	zend_stack_del_top(&SCNG(state_stack));
  166: }
  167: 
  168: static void yy_scan_buffer(char *str, unsigned int len TSRMLS_DC)
  169: {
  170: 	YYCURSOR       = (YYCTYPE*)str;
  171: 	YYLIMIT        = YYCURSOR + len;
  172: 	if (!SCNG(yy_start)) {
  173: 		SCNG(yy_start) = YYCURSOR;
  174: 	}
  175: }
  176: 
  177: void startup_scanner(TSRMLS_D)
  178: {
  179: 	CG(parse_error) = 0;
  180: 	CG(heredoc) = NULL;
  181: 	CG(heredoc_len) = 0;
  182: 	CG(doc_comment) = NULL;
  183: 	CG(doc_comment_len) = 0;
  184: 	zend_stack_init(&SCNG(state_stack));
  185: }
  186: 
  187: void shutdown_scanner(TSRMLS_D)
  188: {
  189: 	if (CG(heredoc)) {
  190: 		efree(CG(heredoc));
  191: 		CG(heredoc_len)=0;
  192: 	}
  193: 	CG(parse_error) = 0;
  194: 	zend_stack_destroy(&SCNG(state_stack));
  195: 	RESET_DOC_COMMENT();
  196: }
  197: 
  198: ZEND_API void zend_save_lexical_state(zend_lex_state *lex_state TSRMLS_DC)
  199: {
  200: 	lex_state->yy_leng   = SCNG(yy_leng);
  201: 	lex_state->yy_start  = SCNG(yy_start);
  202: 	lex_state->yy_text   = SCNG(yy_text);
  203: 	lex_state->yy_cursor = SCNG(yy_cursor);
  204: 	lex_state->yy_marker = SCNG(yy_marker);
  205: 	lex_state->yy_limit  = SCNG(yy_limit);
  206: 
  207: 	lex_state->state_stack = SCNG(state_stack);
  208: 	zend_stack_init(&SCNG(state_stack));
  209: 
  210: 	lex_state->in = SCNG(yy_in);
  211: 	lex_state->yy_state = YYSTATE;
  212: 	lex_state->filename = zend_get_compiled_filename(TSRMLS_C);
  213: 	lex_state->lineno = CG(zend_lineno);
  214: 
  215: 	lex_state->script_org = SCNG(script_org);
  216: 	lex_state->script_org_size = SCNG(script_org_size);
  217: 	lex_state->script_filtered = SCNG(script_filtered);
  218: 	lex_state->script_filtered_size = SCNG(script_filtered_size);
  219: 	lex_state->input_filter = SCNG(input_filter);
  220: 	lex_state->output_filter = SCNG(output_filter);
  221: 	lex_state->script_encoding = SCNG(script_encoding);
  222: }
  223: 
  224: ZEND_API void zend_restore_lexical_state(zend_lex_state *lex_state TSRMLS_DC)
  225: {
  226: 	SCNG(yy_leng)   = lex_state->yy_leng;
  227: 	SCNG(yy_start)  = lex_state->yy_start;
  228: 	SCNG(yy_text)   = lex_state->yy_text;
  229: 	SCNG(yy_cursor) = lex_state->yy_cursor;
  230: 	SCNG(yy_marker) = lex_state->yy_marker;
  231: 	SCNG(yy_limit)  = lex_state->yy_limit;
  232: 
  233: 	zend_stack_destroy(&SCNG(state_stack));
  234: 	SCNG(state_stack) = lex_state->state_stack;
  235: 
  236: 	SCNG(yy_in) = lex_state->in;
  237: 	YYSETCONDITION(lex_state->yy_state);
  238: 	CG(zend_lineno) = lex_state->lineno;
  239: 	zend_restore_compiled_filename(lex_state->filename TSRMLS_CC);
  240: 
  241: 	if (SCNG(script_filtered)) {
  242: 		efree(SCNG(script_filtered));
  243: 		SCNG(script_filtered) = NULL;
  244: 	}
  245: 	SCNG(script_org) = lex_state->script_org;
  246: 	SCNG(script_org_size) = lex_state->script_org_size;
  247: 	SCNG(script_filtered) = lex_state->script_filtered;
  248: 	SCNG(script_filtered_size) = lex_state->script_filtered_size;
  249: 	SCNG(input_filter) = lex_state->input_filter;
  250: 	SCNG(output_filter) = lex_state->output_filter;
  251: 	SCNG(script_encoding) = lex_state->script_encoding;
  252: 
  253: 	if (CG(heredoc)) {
  254: 		efree(CG(heredoc));
  255: 		CG(heredoc) = NULL;
  256: 		CG(heredoc_len) = 0;
  257: 	}
  258: }
  259: 
  260: ZEND_API void zend_destroy_file_handle(zend_file_handle *file_handle TSRMLS_DC)
  261: {
  262: 	zend_llist_del_element(&CG(open_files), file_handle, (int (*)(void *, void *)) zend_compare_file_handles);
  263: 	/* zend_file_handle_dtor() operates on the copy, so we have to NULLify the original here */
  264: 	file_handle->opened_path = NULL;
  265: 	if (file_handle->free_filename) {
  266: 		file_handle->filename = NULL;
  267: 	}
  268: }
  269: 
  270: #define BOM_UTF32_BE	"\x00\x00\xfe\xff"
  271: #define	BOM_UTF32_LE	"\xff\xfe\x00\x00"
  272: #define	BOM_UTF16_BE	"\xfe\xff"
  273: #define	BOM_UTF16_LE	"\xff\xfe"
  274: #define	BOM_UTF8		"\xef\xbb\xbf"
  275: 
  276: static const zend_encoding *zend_multibyte_detect_utf_encoding(const unsigned char *script, size_t script_size TSRMLS_DC)
  277: {
  278: 	const unsigned char *p;
  279: 	int wchar_size = 2;
  280: 	int le = 0;
  281: 
  282: 	/* utf-16 or utf-32? */
  283: 	p = script;
  284: 	while ((p-script) < script_size) {
  285: 		p = memchr(p, 0, script_size-(p-script)-2);
  286: 		if (!p) {
  287: 			break;
  288: 		}
  289: 		if (*(p+1) == '\0' && *(p+2) == '\0') {
  290: 			wchar_size = 4;
  291: 			break;
  292: 		}
  293: 
  294: 		/* searching for UTF-32 specific byte orders, so this will do */
  295: 		p += 4;
  296: 	}
  297: 
  298: 	/* BE or LE? */
  299: 	p = script;
  300: 	while ((p-script) < script_size) {
  301: 		if (*p == '\0' && *(p+wchar_size-1) != '\0') {
  302: 			/* BE */
  303: 			le = 0;
  304: 			break;
  305: 		} else if (*p != '\0' && *(p+wchar_size-1) == '\0') {
  306: 			/* LE* */
  307: 			le = 1;
  308: 			break;
  309: 		}
  310: 		p += wchar_size;
  311: 	}
  312: 
  313: 	if (wchar_size == 2) {
  314: 		return le ? zend_multibyte_encoding_utf16le : zend_multibyte_encoding_utf16be;
  315: 	} else {
  316: 		return le ? zend_multibyte_encoding_utf32le : zend_multibyte_encoding_utf32be;
  317: 	}
  318: 
  319: 	return NULL;
  320: }
  321: 
  322: static const zend_encoding* zend_multibyte_detect_unicode(TSRMLS_D)
  323: {
  324: 	const zend_encoding *script_encoding = NULL;
  325: 	int bom_size;
  326: 	unsigned char *pos1, *pos2;
  327: 
  328: 	if (LANG_SCNG(script_org_size) < sizeof(BOM_UTF32_LE)-1) {
  329: 		return NULL;
  330: 	}
  331: 
  332: 	/* check out BOM */
  333: 	if (!memcmp(LANG_SCNG(script_org), BOM_UTF32_BE, sizeof(BOM_UTF32_BE)-1)) {
  334: 		script_encoding = zend_multibyte_encoding_utf32be;
  335: 		bom_size = sizeof(BOM_UTF32_BE)-1;
  336: 	} else if (!memcmp(LANG_SCNG(script_org), BOM_UTF32_LE, sizeof(BOM_UTF32_LE)-1)) {
  337: 		script_encoding = zend_multibyte_encoding_utf32le;
  338: 		bom_size = sizeof(BOM_UTF32_LE)-1;
  339: 	} else if (!memcmp(LANG_SCNG(script_org), BOM_UTF16_BE, sizeof(BOM_UTF16_BE)-1)) {
  340: 		script_encoding = zend_multibyte_encoding_utf16be;
  341: 		bom_size = sizeof(BOM_UTF16_BE)-1;
  342: 	} else if (!memcmp(LANG_SCNG(script_org), BOM_UTF16_LE, sizeof(BOM_UTF16_LE)-1)) {
  343: 		script_encoding = zend_multibyte_encoding_utf16le;
  344: 		bom_size = sizeof(BOM_UTF16_LE)-1;
  345: 	} else if (!memcmp(LANG_SCNG(script_org), BOM_UTF8, sizeof(BOM_UTF8)-1)) {
  346: 		script_encoding = zend_multibyte_encoding_utf8;
  347: 		bom_size = sizeof(BOM_UTF8)-1;
  348: 	}
  349: 
  350: 	if (script_encoding) {
  351: 		/* remove BOM */
  352: 		LANG_SCNG(script_org) += bom_size;
  353: 		LANG_SCNG(script_org_size) -= bom_size;
  354: 
  355: 		return script_encoding;
  356: 	}
  357: 
  358: 	/* script contains NULL bytes -> auto-detection */
  359: 	if ((pos1 = memchr(LANG_SCNG(script_org), 0, LANG_SCNG(script_org_size)))) {
  360: 		/* check if the NULL byte is after the __HALT_COMPILER(); */
  361: 		pos2 = LANG_SCNG(script_org);
  362: 
  363: 		while (pos1 - pos2 >= sizeof("__HALT_COMPILER();")-1) {
  364: 			pos2 = memchr(pos2, '_', pos1 - pos2);
  365: 			if (!pos2) break;
  366: 			pos2++;
  367: 			if (strncasecmp((char*)pos2, "_HALT_COMPILER", sizeof("_HALT_COMPILER")-1) == 0) {
  368: 				pos2 += sizeof("_HALT_COMPILER")-1;
  369: 				while (*pos2 == ' '  ||
  370: 					   *pos2 == '\t' ||
  371: 					   *pos2 == '\r' ||
  372: 					   *pos2 == '\n') {
  373: 					pos2++;
  374: 				}
  375: 				if (*pos2 == '(') {
  376: 					pos2++;
  377: 					while (*pos2 == ' '  ||
  378: 						   *pos2 == '\t' ||
  379: 						   *pos2 == '\r' ||
  380: 						   *pos2 == '\n') {
  381: 						pos2++;
  382: 					}
  383: 					if (*pos2 == ')') {
  384: 						pos2++;
  385: 						while (*pos2 == ' '  ||
  386: 							   *pos2 == '\t' ||
  387: 							   *pos2 == '\r' ||
  388: 							   *pos2 == '\n') {
  389: 							pos2++;
  390: 						}
  391: 						if (*pos2 == ';') {
  392: 							return NULL;
  393: 						}
  394: 					}
  395: 				}
  396: 			}
  397: 		}
  398: 		/* make best effort if BOM is missing */
  399: 		return zend_multibyte_detect_utf_encoding(LANG_SCNG(script_org), LANG_SCNG(script_org_size) TSRMLS_CC);
  400: 	}
  401: 
  402: 	return NULL;
  403: }
  404: 
  405: static const zend_encoding* zend_multibyte_find_script_encoding(TSRMLS_D)
  406: {
  407: 	const zend_encoding *script_encoding;
  408: 
  409: 	if (CG(detect_unicode)) {
  410: 		/* check out bom(byte order mark) and see if containing wchars */
  411: 		script_encoding = zend_multibyte_detect_unicode(TSRMLS_C);
  412: 		if (script_encoding != NULL) {
  413: 			/* bom or wchar detection is prior to 'script_encoding' option */
  414: 			return script_encoding;
  415: 		}
  416: 	}
  417: 
  418: 	/* if no script_encoding specified, just leave alone */
  419: 	if (!CG(script_encoding_list) || !CG(script_encoding_list_size)) {
  420: 		return NULL;
  421: 	}
  422: 
  423: 	/* if multiple encodings specified, detect automagically */
  424: 	if (CG(script_encoding_list_size) > 1) {
  425: 		return zend_multibyte_encoding_detector(LANG_SCNG(script_org), LANG_SCNG(script_org_size), CG(script_encoding_list), CG(script_encoding_list_size) TSRMLS_CC);
  426: 	}
  427: 
  428: 	return CG(script_encoding_list)[0];
  429: }
  430: 
  431: ZEND_API int zend_multibyte_set_filter(const zend_encoding *onetime_encoding TSRMLS_DC)
  432: {
  433: 	const zend_encoding *internal_encoding = zend_multibyte_get_internal_encoding(TSRMLS_C);
  434: 	const zend_encoding *script_encoding = onetime_encoding ? onetime_encoding: zend_multibyte_find_script_encoding(TSRMLS_C);
  435: 
  436: 	if (!script_encoding) {
  437: 		return FAILURE;
  438: 	}
  439: 
  440: 	/* judge input/output filter */
  441: 	LANG_SCNG(script_encoding) = script_encoding;
  442: 	LANG_SCNG(input_filter) = NULL;
  443: 	LANG_SCNG(output_filter) = NULL;
  444: 
  445: 	if (!internal_encoding || LANG_SCNG(script_encoding) == internal_encoding) {
  446: 		if (!zend_multibyte_check_lexer_compatibility(LANG_SCNG(script_encoding))) {
  447: 			/* and if not, work around w/ script_encoding -> utf-8 -> script_encoding conversion */
  448: 			LANG_SCNG(input_filter) = encoding_filter_script_to_intermediate;
  449: 			LANG_SCNG(output_filter) = encoding_filter_intermediate_to_script;
  450: 		} else {
  451: 			LANG_SCNG(input_filter) = NULL;
  452: 			LANG_SCNG(output_filter) = NULL;
  453: 		}
  454: 		return SUCCESS;
  455: 	}
  456: 
  457: 	if (zend_multibyte_check_lexer_compatibility(internal_encoding)) {
  458: 		LANG_SCNG(input_filter) = encoding_filter_script_to_internal;
  459: 		LANG_SCNG(output_filter) = NULL;
  460: 	} else if (zend_multibyte_check_lexer_compatibility(LANG_SCNG(script_encoding))) {
  461: 		LANG_SCNG(input_filter) = NULL;
  462: 		LANG_SCNG(output_filter) = encoding_filter_script_to_internal;
  463: 	} else {
  464: 		/* both script and internal encodings are incompatible w/ flex */
  465: 		LANG_SCNG(input_filter) = encoding_filter_script_to_intermediate;
  466: 		LANG_SCNG(output_filter) = encoding_filter_intermediate_to_internal;
  467: 	}
  468: 
  469: 	return 0;
  470: }
  471: 
  472: ZEND_API int open_file_for_scanning(zend_file_handle *file_handle TSRMLS_DC)
  473: {
  474: 	const char *file_path = NULL;
  475: 	char *buf;
  476: 	size_t size, offset = 0;
  477: 
  478: 	/* The shebang line was read, get the current position to obtain the buffer start */
  479: 	if (CG(start_lineno) == 2 && file_handle->type == ZEND_HANDLE_FP && file_handle->handle.fp) {
  480: 		if ((offset = ftell(file_handle->handle.fp)) == -1) {
  481: 			offset = 0;
  482: 		}
  483: 	}
  484: 
  485: 	if (zend_stream_fixup(file_handle, &buf, &size TSRMLS_CC) == FAILURE) {
  486: 		return FAILURE;
  487: 	}
  488: 
  489: 	zend_llist_add_element(&CG(open_files), file_handle);
  490: 	if (file_handle->handle.stream.handle >= (void*)file_handle && file_handle->handle.stream.handle <= (void*)(file_handle+1)) {
  491: 		zend_file_handle *fh = (zend_file_handle*)zend_llist_get_last(&CG(open_files));
  492: 		size_t diff = (char*)file_handle->handle.stream.handle - (char*)file_handle;
  493: 		fh->handle.stream.handle = (void*)(((char*)fh) + diff);
  494: 		file_handle->handle.stream.handle = fh->handle.stream.handle;
  495: 	}
  496: 
  497: 	/* Reset the scanner for scanning the new file */
  498: 	SCNG(yy_in) = file_handle;
  499: 	SCNG(yy_start) = NULL;
  500: 
  501: 	if (size != -1) {
  502: 		if (CG(multibyte)) {
  503: 			SCNG(script_org) = (unsigned char*)buf;
  504: 			SCNG(script_org_size) = size;
  505: 			SCNG(script_filtered) = NULL;
  506: 
  507: 			zend_multibyte_set_filter(NULL TSRMLS_CC);
  508: 
  509: 			if (SCNG(input_filter)) {
  510: 				if ((size_t)-1 == SCNG(input_filter)(&SCNG(script_filtered), &SCNG(script_filtered_size), SCNG(script_org), SCNG(script_org_size) TSRMLS_CC)) {
  511: 					zend_error_noreturn(E_COMPILE_ERROR, "Could not convert the script from the detected "
  512: 							"encoding \"%s\" to a compatible encoding", zend_multibyte_get_encoding_name(LANG_SCNG(script_encoding)));
  513: 				}
  514: 				buf = (char*)SCNG(script_filtered);
  515: 				size = SCNG(script_filtered_size);
  516: 			}
  517: 		}
  518: 		SCNG(yy_start) = (unsigned char *)buf - offset;
  519: 		yy_scan_buffer(buf, size TSRMLS_CC);
  520: 	} else {
  521: 		zend_error_noreturn(E_COMPILE_ERROR, "zend_stream_mmap() failed");
  522: 	}
  523: 
  524: 	BEGIN(INITIAL);
  525: 
  526: 	if (file_handle->opened_path) {
  527: 		file_path = file_handle->opened_path;
  528: 	} else {
  529: 		file_path = file_handle->filename;
  530: 	}
  531: 
  532: 	zend_set_compiled_filename(file_path TSRMLS_CC);
  533: 
  534: 	if (CG(start_lineno)) {
  535: 		CG(zend_lineno) = CG(start_lineno);
  536: 		CG(start_lineno) = 0;
  537: 	} else {
  538: 		CG(zend_lineno) = 1;
  539: 	}
  540: 
  541: 	CG(increment_lineno) = 0;
  542: 	return SUCCESS;
  543: }
  544: END_EXTERN_C()
  545: 
  546: 
  547: ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type TSRMLS_DC)
  548: {
  549: 	zend_lex_state original_lex_state;
  550: 	zend_op_array *op_array = (zend_op_array *) emalloc(sizeof(zend_op_array));
  551: 	zend_op_array *original_active_op_array = CG(active_op_array);
  552: 	zend_op_array *retval=NULL;
  553: 	int compiler_result;
  554: 	zend_bool compilation_successful=0;
  555: 	znode retval_znode;
  556: 	zend_bool original_in_compilation = CG(in_compilation);
  557: 
  558: 	retval_znode.op_type = IS_CONST;
  559: 	retval_znode.u.constant.type = IS_LONG;
  560: 	retval_znode.u.constant.value.lval = 1;
  561: 	Z_UNSET_ISREF(retval_znode.u.constant);
  562: 	Z_SET_REFCOUNT(retval_znode.u.constant, 1);
  563: 
  564: 	zend_save_lexical_state(&original_lex_state TSRMLS_CC);
  565: 
  566: 	retval = op_array; /* success oriented */
  567: 
  568: 	if (open_file_for_scanning(file_handle TSRMLS_CC)==FAILURE) {
  569: 		if (type==ZEND_REQUIRE) {
  570: 			zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, file_handle->filename TSRMLS_CC);
  571: 			zend_bailout();
  572: 		} else {
  573: 			zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, file_handle->filename TSRMLS_CC);
  574: 		}
  575: 		compilation_successful=0;
  576: 	} else {
  577: 		init_op_array(op_array, ZEND_USER_FUNCTION, INITIAL_OP_ARRAY_SIZE TSRMLS_CC);
  578: 		CG(in_compilation) = 1;
  579: 		CG(active_op_array) = op_array;
  580: 		zend_init_compiler_context(TSRMLS_C);
  581: 		compiler_result = zendparse(TSRMLS_C);
  582: 		zend_do_return(&retval_znode, 0 TSRMLS_CC);
  583: 		CG(in_compilation) = original_in_compilation;
  584: 		if (compiler_result==1) { /* parser error */
  585: 			zend_bailout();
  586: 		}
  587: 		compilation_successful=1;
  588: 	}
  589: 
  590: 	if (retval) {
  591: 		CG(active_op_array) = original_active_op_array;
  592: 		if (compilation_successful) {
  593: 			pass_two(op_array TSRMLS_CC);
  594: 			zend_release_labels(TSRMLS_C);
  595: 		} else {
  596: 			efree(op_array);
  597: 			retval = NULL;
  598: 		}
  599: 	}
  600: 	zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
  601: 	return retval;
  602: }
  603: 
  604: 
  605: zend_op_array *compile_filename(int type, zval *filename TSRMLS_DC)
  606: {
  607: 	zend_file_handle file_handle;
  608: 	zval tmp;
  609: 	zend_op_array *retval;
  610: 	char *opened_path = NULL;
  611: 
  612: 	if (filename->type != IS_STRING) {
  613: 		tmp = *filename;
  614: 		zval_copy_ctor(&tmp);
  615: 		convert_to_string(&tmp);
  616: 		filename = &tmp;
  617: 	}
  618: 	file_handle.filename = filename->value.str.val;
  619: 	file_handle.free_filename = 0;
  620: 	file_handle.type = ZEND_HANDLE_FILENAME;
  621: 	file_handle.opened_path = NULL;
  622: 	file_handle.handle.fp = NULL;
  623: 
  624: 	retval = zend_compile_file(&file_handle, type TSRMLS_CC);
  625: 	if (retval && file_handle.handle.stream.handle) {
  626: 		int dummy = 1;
  627: 
  628: 		if (!file_handle.opened_path) {
  629: 			file_handle.opened_path = opened_path = estrndup(filename->value.str.val, filename->value.str.len);
  630: 		}
  631: 
  632: 		zend_hash_add(&EG(included_files), file_handle.opened_path, strlen(file_handle.opened_path)+1, (void *)&dummy, sizeof(int), NULL);
  633: 
  634: 		if (opened_path) {
  635: 			efree(opened_path);
  636: 		}
  637: 	}
  638: 	zend_destroy_file_handle(&file_handle TSRMLS_CC);
  639: 
  640: 	if (filename==&tmp) {
  641: 		zval_dtor(&tmp);
  642: 	}
  643: 	return retval;
  644: }
  645: 
  646: ZEND_API int zend_prepare_string_for_scanning(zval *str, char *filename TSRMLS_DC)
  647: {
  648: 	char *buf;
  649: 	size_t size;
  650: 
  651: 	/* enforce two trailing NULLs for flex... */
  652: 	if (IS_INTERNED(str->value.str.val)) {
  653: 		char *tmp = safe_emalloc(1, str->value.str.len, ZEND_MMAP_AHEAD);
  654: 		memcpy(tmp, str->value.str.val, str->value.str.len + ZEND_MMAP_AHEAD);
  655: 		str->value.str.val = tmp;
  656: 	} else {
  657: 		str->value.str.val = safe_erealloc(str->value.str.val, 1, str->value.str.len, ZEND_MMAP_AHEAD);
  658: 	}
  659: 
  660: 	memset(str->value.str.val + str->value.str.len, 0, ZEND_MMAP_AHEAD);
  661: 
  662: 	SCNG(yy_in) = NULL;
  663: 	SCNG(yy_start) = NULL;
  664: 
  665: 	buf = str->value.str.val;
  666: 	size = str->value.str.len;
  667: 
  668: 	if (CG(multibyte)) {
  669: 		SCNG(script_org) = (unsigned char*)buf;
  670: 		SCNG(script_org_size) = size;
  671: 		SCNG(script_filtered) = NULL;
  672: 
  673: 		zend_multibyte_set_filter(zend_multibyte_get_internal_encoding(TSRMLS_C) TSRMLS_CC);
  674: 
  675: 		if (SCNG(input_filter)) {
  676: 			if ((size_t)-1 == SCNG(input_filter)(&SCNG(script_filtered), &SCNG(script_filtered_size), SCNG(script_org), SCNG(script_org_size) TSRMLS_CC)) {
  677: 				zend_error_noreturn(E_COMPILE_ERROR, "Could not convert the script from the detected "
  678: 						"encoding \"%s\" to a compatible encoding", zend_multibyte_get_encoding_name(LANG_SCNG(script_encoding)));
  679: 			}
  680: 			buf = (char*)SCNG(script_filtered);
  681: 			size = SCNG(script_filtered_size);
  682: 		}
  683: 	}
  684: 
  685: 	yy_scan_buffer(buf, size TSRMLS_CC);
  686: 
  687: 	zend_set_compiled_filename(filename TSRMLS_CC);
  688: 	CG(zend_lineno) = 1;
  689: 	CG(increment_lineno) = 0;
  690: 	return SUCCESS;
  691: }
  692: 
  693: 
  694: ZEND_API size_t zend_get_scanned_file_offset(TSRMLS_D)
  695: {
  696: 	size_t offset = SCNG(yy_cursor) - SCNG(yy_start);
  697: 	if (SCNG(input_filter)) {
  698: 		size_t original_offset = offset, length = 0;
  699: 		do {
  700: 			unsigned char *p = NULL;
  701: 			if ((size_t)-1 == SCNG(input_filter)(&p, &length, SCNG(script_org), offset TSRMLS_CC)) {
  702: 				return (size_t)-1;
  703: 			}
  704: 			efree(p);
  705: 			if (length > original_offset) {
  706: 				offset--;
  707: 			} else if (length < original_offset) {
  708: 				offset++;
  709: 			}
  710: 		} while (original_offset != length);
  711: 	}
  712: 	return offset;
  713: }
  714: 
  715: 
  716: zend_op_array *compile_string(zval *source_string, char *filename TSRMLS_DC)
  717: {
  718: 	zend_lex_state original_lex_state;
  719: 	zend_op_array *op_array = (zend_op_array *) emalloc(sizeof(zend_op_array));
  720: 	zend_op_array *original_active_op_array = CG(active_op_array);
  721: 	zend_op_array *retval;
  722: 	zval tmp;
  723: 	int compiler_result;
  724: 	zend_bool original_in_compilation = CG(in_compilation);
  725: 
  726: 	if (source_string->value.str.len==0) {
  727: 		efree(op_array);
  728: 		return NULL;
  729: 	}
  730: 
  731: 	CG(in_compilation) = 1;
  732: 
  733: 	tmp = *source_string;
  734: 	zval_copy_ctor(&tmp);
  735: 	convert_to_string(&tmp);
  736: 	source_string = &tmp;
  737: 
  738: 	zend_save_lexical_state(&original_lex_state TSRMLS_CC);
  739: 	if (zend_prepare_string_for_scanning(source_string, filename TSRMLS_CC)==FAILURE) {
  740: 		efree(op_array);
  741: 		retval = NULL;
  742: 	} else {
  743: 		zend_bool orig_interactive = CG(interactive);
  744: 
  745: 		CG(interactive) = 0;
  746: 		init_op_array(op_array, ZEND_EVAL_CODE, INITIAL_OP_ARRAY_SIZE TSRMLS_CC);
  747: 		CG(interactive) = orig_interactive;
  748: 		CG(active_op_array) = op_array;
  749: 		zend_init_compiler_context(TSRMLS_C);
  750: 		BEGIN(ST_IN_SCRIPTING);
  751: 		compiler_result = zendparse(TSRMLS_C);
  752: 
  753: 		if (SCNG(script_filtered)) {
  754: 			efree(SCNG(script_filtered));
  755: 			SCNG(script_filtered) = NULL;
  756: 		}
  757: 
  758: 		if (compiler_result==1) {
  759: 			CG(active_op_array) = original_active_op_array;
  760: 			CG(unclean_shutdown)=1;
  761: 			destroy_op_array(op_array TSRMLS_CC);
  762: 			efree(op_array);
  763: 			retval = NULL;
  764: 		} else {
  765: 			zend_do_return(NULL, 0 TSRMLS_CC);
  766: 			CG(active_op_array) = original_active_op_array;
  767: 			pass_two(op_array TSRMLS_CC);
  768: 			zend_release_labels(TSRMLS_C);
  769: 			retval = op_array;
  770: 		}
  771: 	}
  772: 	zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
  773: 	zval_dtor(&tmp);
  774: 	CG(in_compilation) = original_in_compilation;
  775: 	return retval;
  776: }
  777: 
  778: 
  779: BEGIN_EXTERN_C()
  780: int highlight_file(char *filename, zend_syntax_highlighter_ini *syntax_highlighter_ini TSRMLS_DC)
  781: {
  782: 	zend_lex_state original_lex_state;
  783: 	zend_file_handle file_handle;
  784: 
  785: 	file_handle.type = ZEND_HANDLE_FILENAME;
  786: 	file_handle.filename = filename;
  787: 	file_handle.free_filename = 0;
  788: 	file_handle.opened_path = NULL;
  789: 	zend_save_lexical_state(&original_lex_state TSRMLS_CC);
  790: 	if (open_file_for_scanning(&file_handle TSRMLS_CC)==FAILURE) {
  791: 		zend_message_dispatcher(ZMSG_FAILED_HIGHLIGHT_FOPEN, filename TSRMLS_CC);
  792: 		zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
  793: 		return FAILURE;
  794: 	}
  795: 	zend_highlight(syntax_highlighter_ini TSRMLS_CC);
  796: 	if (SCNG(script_filtered)) {
  797: 		efree(SCNG(script_filtered));
  798: 		SCNG(script_filtered) = NULL;
  799: 	}
  800: 	zend_destroy_file_handle(&file_handle TSRMLS_CC);
  801: 	zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
  802: 	return SUCCESS;
  803: }
  804: 
  805: int highlight_string(zval *str, zend_syntax_highlighter_ini *syntax_highlighter_ini, char *str_name TSRMLS_DC)
  806: {
  807: 	zend_lex_state original_lex_state;
  808: 	zval tmp = *str;
  809: 
  810: 	str = &tmp;
  811: 	zval_copy_ctor(str);
  812: 	zend_save_lexical_state(&original_lex_state TSRMLS_CC);
  813: 	if (zend_prepare_string_for_scanning(str, str_name TSRMLS_CC)==FAILURE) {
  814: 		zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
  815: 		return FAILURE;
  816: 	}
  817: 	BEGIN(INITIAL);
  818: 	zend_highlight(syntax_highlighter_ini TSRMLS_CC);
  819: 	if (SCNG(script_filtered)) {
  820: 		efree(SCNG(script_filtered));
  821: 		SCNG(script_filtered) = NULL;
  822: 	}
  823: 	zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
  824: 	zval_dtor(str);
  825: 	return SUCCESS;
  826: }
  827: 
  828: ZEND_API void zend_multibyte_yyinput_again(zend_encoding_filter old_input_filter, const zend_encoding *old_encoding TSRMLS_DC)
  829: {
  830: 	size_t length;
  831: 	unsigned char *new_yy_start;
  832: 
  833: 	/* convert and set */
  834: 	if (!SCNG(input_filter)) {
  835: 		if (SCNG(script_filtered)) {
  836: 			efree(SCNG(script_filtered));
  837: 			SCNG(script_filtered) = NULL;
  838: 		}
  839: 		SCNG(script_filtered_size) = 0;
  840: 		length = SCNG(script_org_size);
  841: 		new_yy_start = SCNG(script_org);
  842: 	} else {
  843: 		if ((size_t)-1 == SCNG(input_filter)(&new_yy_start, &length, SCNG(script_org), SCNG(script_org_size) TSRMLS_CC)) {
  844: 			zend_error_noreturn(E_COMPILE_ERROR, "Could not convert the script from the detected "
  845: 					"encoding \"%s\" to a compatible encoding", zend_multibyte_get_encoding_name(LANG_SCNG(script_encoding)));
  846: 		}
  847: 		SCNG(script_filtered) = new_yy_start;
  848: 		SCNG(script_filtered_size) = length;
  849: 	}
  850: 
  851: 	SCNG(yy_cursor) = new_yy_start + (SCNG(yy_cursor) - SCNG(yy_start));
  852: 	SCNG(yy_marker) = new_yy_start + (SCNG(yy_marker) - SCNG(yy_start));
  853: 	SCNG(yy_text) = new_yy_start + (SCNG(yy_text) - SCNG(yy_start));
  854: 	SCNG(yy_limit) = new_yy_start + (SCNG(yy_limit) - SCNG(yy_start));
  855: 
  856: 	SCNG(yy_start) = new_yy_start;
  857: }
  858: 
  859: 
  860: # define zend_copy_value(zendlval, yytext, yyleng) \
  861: 	if (SCNG(output_filter)) { \
  862: 		size_t sz = 0; \
  863: 		SCNG(output_filter)((unsigned char **)&(zendlval->value.str.val), &sz, (unsigned char *)yytext, (size_t)yyleng TSRMLS_CC); \
  864: 		zendlval->value.str.len = sz; \
  865: 	} else { \
  866: 		zendlval->value.str.val = (char *) estrndup(yytext, yyleng); \
  867: 		zendlval->value.str.len = yyleng; \
  868: 	}
  869: 
  870: static void zend_scan_escape_string(zval *zendlval, char *str, int len, char quote_type TSRMLS_DC)
  871: {
  872: 	register char *s, *t;
  873: 	char *end;
  874: 
  875: 	ZVAL_STRINGL(zendlval, str, len, 1);
  876: 
  877: 	/* convert escape sequences */
  878: 	s = t = zendlval->value.str.val;
  879: 	end = s+zendlval->value.str.len;
  880: 	while (s<end) {
  881: 		if (*s=='\\') {
  882: 			s++;
  883: 			if (s >= end) {
  884: 				*t++ = '\\';
  885: 				break;
  886: 			}
  887: 
  888: 			switch(*s) {
  889: 				case 'n':
  890: 					*t++ = '\n';
  891: 					zendlval->value.str.len--;
  892: 					break;
  893: 				case 'r':
  894: 					*t++ = '\r';
  895: 					zendlval->value.str.len--;
  896: 					break;
  897: 				case 't':
  898: 					*t++ = '\t';
  899: 					zendlval->value.str.len--;
  900: 					break;
  901: 				case 'f':
  902: 					*t++ = '\f';
  903: 					zendlval->value.str.len--;
  904: 					break;
  905: 				case 'v':
  906: 					*t++ = '\v';
  907: 					zendlval->value.str.len--;
  908: 					break;
  909: 				case 'e':
  910: 					*t++ = '\e';
  911: 					zendlval->value.str.len--;
  912: 					break;
  913: 				case '"':
  914: 				case '`':
  915: 					if (*s != quote_type) {
  916: 						*t++ = '\\';
  917: 						*t++ = *s;
  918: 						break;
  919: 					}
  920: 				case '\\':
  921: 				case '$':
  922: 					*t++ = *s;
  923: 					zendlval->value.str.len--;
  924: 					break;
  925: 				case 'x':
  926: 				case 'X':
  927: 					if (ZEND_IS_HEX(*(s+1))) {
  928: 						char hex_buf[3] = { 0, 0, 0 };
  929: 
  930: 						zendlval->value.str.len--; /* for the 'x' */
  931: 
  932: 						hex_buf[0] = *(++s);
  933: 						zendlval->value.str.len--;
  934: 						if (ZEND_IS_HEX(*(s+1))) {
  935: 							hex_buf[1] = *(++s);
  936: 							zendlval->value.str.len--;
  937: 						}
  938: 						*t++ = (char) strtol(hex_buf, NULL, 16);
  939: 					} else {
  940: 						*t++ = '\\';
  941: 						*t++ = *s;
  942: 					}
  943: 					break;
  944: 				default:
  945: 					/* check for an octal */
  946: 					if (ZEND_IS_OCT(*s)) {
  947: 						char octal_buf[4] = { 0, 0, 0, 0 };
  948: 
  949: 						octal_buf[0] = *s;
  950: 						zendlval->value.str.len--;
  951: 						if (ZEND_IS_OCT(*(s+1))) {
  952: 							octal_buf[1] = *(++s);
  953: 							zendlval->value.str.len--;
  954: 							if (ZEND_IS_OCT(*(s+1))) {
  955: 								octal_buf[2] = *(++s);
  956: 								zendlval->value.str.len--;
  957: 							}
  958: 						}
  959: 						*t++ = (char) strtol(octal_buf, NULL, 8);
  960: 					} else {
  961: 						*t++ = '\\';
  962: 						*t++ = *s;
  963: 					}
  964: 					break;
  965: 			}
  966: 		} else {
  967: 			*t++ = *s;
  968: 		}
  969: 
  970: 		if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
  971: 			CG(zend_lineno)++;
  972: 		}
  973: 		s++;
  974: 	}
  975: 	*t = 0;
  976: 	if (SCNG(output_filter)) {
  977: 		size_t sz = 0;
  978: 		s = zendlval->value.str.val;
  979: 		SCNG(output_filter)((unsigned char **)&(zendlval->value.str.val), &sz, (unsigned char *)s, (size_t)zendlval->value.str.len TSRMLS_CC);
  980: 		zendlval->value.str.len = sz;
  981: 		efree(s);
  982: 	}
  983: }
  984: 
  985: 
  986: int lex_scan(zval *zendlval TSRMLS_DC)
  987: {
  988: restart:
  989: 	SCNG(yy_text) = YYCURSOR;
  990: 
  991: yymore_restart:
  992: 
  993: 
  994: #line 995 "Zend/zend_language_scanner.c"
  995: {
  996: 	YYCTYPE yych;
  997: 	unsigned int yyaccept = 0;
  998: 	if (YYGETCONDITION() < 5) {
  999: 		if (YYGETCONDITION() < 2) {
 1000: 			if (YYGETCONDITION() < 1) {
 1001: 				goto yyc_ST_IN_SCRIPTING;
 1002: 			} else {
 1003: 				goto yyc_ST_LOOKING_FOR_PROPERTY;
 1004: 			}
 1005: 		} else {
 1006: 			if (YYGETCONDITION() < 3) {
 1007: 				goto yyc_ST_BACKQUOTE;
 1008: 			} else {
 1009: 				if (YYGETCONDITION() < 4) {
 1010: 					goto yyc_ST_DOUBLE_QUOTES;
 1011: 				} else {
 1012: 					goto yyc_ST_HEREDOC;
 1013: 				}
 1014: 			}
 1015: 		}
 1016: 	} else {
 1017: 		if (YYGETCONDITION() < 7) {
 1018: 			if (YYGETCONDITION() < 6) {
 1019: 				goto yyc_ST_LOOKING_FOR_VARNAME;
 1020: 			} else {
 1021: 				goto yyc_ST_VAR_OFFSET;
 1022: 			}
 1023: 		} else {
 1024: 			if (YYGETCONDITION() < 8) {
 1025: 				goto yyc_INITIAL;
 1026: 			} else {
 1027: 				if (YYGETCONDITION() < 9) {
 1028: 					goto yyc_ST_END_HEREDOC;
 1029: 				} else {
 1030: 					goto yyc_ST_NOWDOC;
 1031: 				}
 1032: 			}
 1033: 		}
 1034: 	}
 1035: /* *********************************** */
 1036: yyc_INITIAL:
 1037: 	{
 1038: 		static const unsigned char yybm[] = {
 1039: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1040: 			  0, 128, 128,   0,   0, 128,   0,   0, 
 1041: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1042: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1043: 			128,   0,   0,   0,   0,   0,   0,   0, 
 1044: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1045: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1046: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1047: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1048: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1049: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1050: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1051: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1052: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1053: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1054: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1055: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1056: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1057: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1058: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1059: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1060: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1061: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1062: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1063: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1064: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1065: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1066: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1067: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1068: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1069: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1070: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1071: 		};
 1072: 
 1073: 		YYDEBUG(0, *YYCURSOR);
 1074: 		YYFILL(8);
 1075: 		yych = *YYCURSOR;
 1076: 		if (yych != '<') goto yy4;
 1077: 		YYDEBUG(2, *YYCURSOR);
 1078: 		yyaccept = 0;
 1079: 		yych = *(YYMARKER = ++YYCURSOR);
 1080: 		if (yych <= '?') {
 1081: 			if (yych == '%') goto yy7;
 1082: 			if (yych >= '?') goto yy5;
 1083: 		} else {
 1084: 			if (yych <= 'S') {
 1085: 				if (yych >= 'S') goto yy9;
 1086: 			} else {
 1087: 				if (yych == 's') goto yy9;
 1088: 			}
 1089: 		}
 1090: yy3:
 1091: 		YYDEBUG(3, *YYCURSOR);
 1092: 		yyleng = YYCURSOR - SCNG(yy_text);
 1093: #line 1783 "Zend/zend_language_scanner.l"
 1094: 		{
 1095: 	if (YYCURSOR > YYLIMIT) {
 1096: 		return 0;
 1097: 	}
 1098: 
 1099: inline_char_handler:
 1100: 
 1101: 	while (1) {
 1102: 		YYCTYPE *ptr = memchr(YYCURSOR, '<', YYLIMIT - YYCURSOR);
 1103: 
 1104: 		YYCURSOR = ptr ? ptr + 1 : YYLIMIT;
 1105: 
 1106: 		if (YYCURSOR < YYLIMIT) {
 1107: 			switch (*YYCURSOR) {
 1108: 				case '?':
 1109: 					if (CG(short_tags) || !strncasecmp((char*)YYCURSOR + 1, "php", 3) || (*(YYCURSOR + 1) == '=')) { /* Assume [ \t\n\r] follows "php" */
 1110: 						break;
 1111: 					}
 1112: 					continue;
 1113: 				case '%':
 1114: 					if (CG(asp_tags)) {
 1115: 						break;
 1116: 					}
 1117: 					continue;
 1118: 				case 's':
 1119: 				case 'S':
 1120: 					/* Probably NOT an opening PHP <script> tag, so don't end the HTML chunk yet
 1121: 					 * If it is, the PHP <script> tag rule checks for any HTML scanned before it */
 1122: 					YYCURSOR--;
 1123: 					yymore();
 1124: 				default:
 1125: 					continue;
 1126: 			}
 1127: 
 1128: 			YYCURSOR--;
 1129: 		}
 1130: 
 1131: 		break;
 1132: 	}
 1133: 
 1134: inline_html:
 1135: 	yyleng = YYCURSOR - SCNG(yy_text);
 1136: 
 1137: 	if (SCNG(output_filter)) {
 1138: 		int readsize;
 1139: 		size_t sz = 0;
 1140: 		readsize = SCNG(output_filter)((unsigned char **)&(zendlval->value.str.val), &sz, (unsigned char *)yytext, (size_t)yyleng TSRMLS_CC);
 1141: 		zendlval->value.str.len = sz;
 1142: 		if (readsize < yyleng) {
 1143: 			yyless(readsize);
 1144: 		}
 1145: 	} else {
 1146: 	  zendlval->value.str.val = (char *) estrndup(yytext, yyleng);
 1147: 	  zendlval->value.str.len = yyleng;
 1148: 	}
 1149: 	zendlval->type = IS_STRING;
 1150: 	HANDLE_NEWLINES(yytext, yyleng);
 1151: 	return T_INLINE_HTML;
 1152: }
 1153: #line 1154 "Zend/zend_language_scanner.c"
 1154: yy4:
 1155: 		YYDEBUG(4, *YYCURSOR);
 1156: 		yych = *++YYCURSOR;
 1157: 		goto yy3;
 1158: yy5:
 1159: 		YYDEBUG(5, *YYCURSOR);
 1160: 		yyaccept = 1;
 1161: 		yych = *(YYMARKER = ++YYCURSOR);
 1162: 		if (yych <= 'O') {
 1163: 			if (yych == '=') goto yy45;
 1164: 		} else {
 1165: 			if (yych <= 'P') goto yy47;
 1166: 			if (yych == 'p') goto yy47;
 1167: 		}
 1168: yy6:
 1169: 		YYDEBUG(6, *YYCURSOR);
 1170: 		yyleng = YYCURSOR - SCNG(yy_text);
 1171: #line 1771 "Zend/zend_language_scanner.l"
 1172: 		{
 1173: 	if (CG(short_tags)) {
 1174: 		zendlval->value.str.val = yytext; /* no copying - intentional */
 1175: 		zendlval->value.str.len = yyleng;
 1176: 		zendlval->type = IS_STRING;
 1177: 		BEGIN(ST_IN_SCRIPTING);
 1178: 		return T_OPEN_TAG;
 1179: 	} else {
 1180: 		goto inline_char_handler;
 1181: 	}
 1182: }
 1183: #line 1184 "Zend/zend_language_scanner.c"
 1184: yy7:
 1185: 		YYDEBUG(7, *YYCURSOR);
 1186: 		++YYCURSOR;
 1187: 		if ((yych = *YYCURSOR) == '=') goto yy43;
 1188: 		YYDEBUG(8, *YYCURSOR);
 1189: 		yyleng = YYCURSOR - SCNG(yy_text);
 1190: #line 1748 "Zend/zend_language_scanner.l"
 1191: 		{
 1192: 	if (CG(asp_tags)) {
 1193: 		zendlval->value.str.val = yytext; /* no copying - intentional */
 1194: 		zendlval->value.str.len = yyleng;
 1195: 		zendlval->type = IS_STRING;
 1196: 		BEGIN(ST_IN_SCRIPTING);
 1197: 		return T_OPEN_TAG;
 1198: 	} else {
 1199: 		goto inline_char_handler;
 1200: 	}
 1201: }
 1202: #line 1203 "Zend/zend_language_scanner.c"
 1203: yy9:
 1204: 		YYDEBUG(9, *YYCURSOR);
 1205: 		yych = *++YYCURSOR;
 1206: 		if (yych == 'C') goto yy11;
 1207: 		if (yych == 'c') goto yy11;
 1208: yy10:
 1209: 		YYDEBUG(10, *YYCURSOR);
 1210: 		YYCURSOR = YYMARKER;
 1211: 		if (yyaccept <= 0) {
 1212: 			goto yy3;
 1213: 		} else {
 1214: 			goto yy6;
 1215: 		}
 1216: yy11:
 1217: 		YYDEBUG(11, *YYCURSOR);
 1218: 		yych = *++YYCURSOR;
 1219: 		if (yych == 'R') goto yy12;
 1220: 		if (yych != 'r') goto yy10;
 1221: yy12:
 1222: 		YYDEBUG(12, *YYCURSOR);
 1223: 		yych = *++YYCURSOR;
 1224: 		if (yych == 'I') goto yy13;
 1225: 		if (yych != 'i') goto yy10;
 1226: yy13:
 1227: 		YYDEBUG(13, *YYCURSOR);
 1228: 		yych = *++YYCURSOR;
 1229: 		if (yych == 'P') goto yy14;
 1230: 		if (yych != 'p') goto yy10;
 1231: yy14:
 1232: 		YYDEBUG(14, *YYCURSOR);
 1233: 		yych = *++YYCURSOR;
 1234: 		if (yych == 'T') goto yy15;
 1235: 		if (yych != 't') goto yy10;
 1236: yy15:
 1237: 		YYDEBUG(15, *YYCURSOR);
 1238: 		yych = *++YYCURSOR;
 1239: 		if (yych == 'L') goto yy10;
 1240: 		if (yych == 'l') goto yy10;
 1241: 		goto yy17;
 1242: yy16:
 1243: 		YYDEBUG(16, *YYCURSOR);
 1244: 		++YYCURSOR;
 1245: 		YYFILL(8);
 1246: 		yych = *YYCURSOR;
 1247: yy17:
 1248: 		YYDEBUG(17, *YYCURSOR);
 1249: 		if (yybm[0+yych] & 128) {
 1250: 			goto yy16;
 1251: 		}
 1252: 		if (yych == 'L') goto yy18;
 1253: 		if (yych != 'l') goto yy10;
 1254: yy18:
 1255: 		YYDEBUG(18, *YYCURSOR);
 1256: 		yych = *++YYCURSOR;
 1257: 		if (yych == 'A') goto yy19;
 1258: 		if (yych != 'a') goto yy10;
 1259: yy19:
 1260: 		YYDEBUG(19, *YYCURSOR);
 1261: 		yych = *++YYCURSOR;
 1262: 		if (yych == 'N') goto yy20;
 1263: 		if (yych != 'n') goto yy10;
 1264: yy20:
 1265: 		YYDEBUG(20, *YYCURSOR);
 1266: 		yych = *++YYCURSOR;
 1267: 		if (yych == 'G') goto yy21;
 1268: 		if (yych != 'g') goto yy10;
 1269: yy21:
 1270: 		YYDEBUG(21, *YYCURSOR);
 1271: 		yych = *++YYCURSOR;
 1272: 		if (yych == 'U') goto yy22;
 1273: 		if (yych != 'u') goto yy10;
 1274: yy22:
 1275: 		YYDEBUG(22, *YYCURSOR);
 1276: 		yych = *++YYCURSOR;
 1277: 		if (yych == 'A') goto yy23;
 1278: 		if (yych != 'a') goto yy10;
 1279: yy23:
 1280: 		YYDEBUG(23, *YYCURSOR);
 1281: 		yych = *++YYCURSOR;
 1282: 		if (yych == 'G') goto yy24;
 1283: 		if (yych != 'g') goto yy10;
 1284: yy24:
 1285: 		YYDEBUG(24, *YYCURSOR);
 1286: 		yych = *++YYCURSOR;
 1287: 		if (yych == 'E') goto yy25;
 1288: 		if (yych != 'e') goto yy10;
 1289: yy25:
 1290: 		YYDEBUG(25, *YYCURSOR);
 1291: 		++YYCURSOR;
 1292: 		YYFILL(1);
 1293: 		yych = *YYCURSOR;
 1294: 		YYDEBUG(26, *YYCURSOR);
 1295: 		if (yych <= '\r') {
 1296: 			if (yych <= 0x08) goto yy10;
 1297: 			if (yych <= '\n') goto yy25;
 1298: 			if (yych <= '\f') goto yy10;
 1299: 			goto yy25;
 1300: 		} else {
 1301: 			if (yych <= ' ') {
 1302: 				if (yych <= 0x1F) goto yy10;
 1303: 				goto yy25;
 1304: 			} else {
 1305: 				if (yych != '=') goto yy10;
 1306: 			}
 1307: 		}
 1308: yy27:
 1309: 		YYDEBUG(27, *YYCURSOR);
 1310: 		++YYCURSOR;
 1311: 		YYFILL(5);
 1312: 		yych = *YYCURSOR;
 1313: 		YYDEBUG(28, *YYCURSOR);
 1314: 		if (yych <= '!') {
 1315: 			if (yych <= '\f') {
 1316: 				if (yych <= 0x08) goto yy10;
 1317: 				if (yych <= '\n') goto yy27;
 1318: 				goto yy10;
 1319: 			} else {
 1320: 				if (yych <= '\r') goto yy27;
 1321: 				if (yych == ' ') goto yy27;
 1322: 				goto yy10;
 1323: 			}
 1324: 		} else {
 1325: 			if (yych <= 'O') {
 1326: 				if (yych <= '"') goto yy30;
 1327: 				if (yych == '\'') goto yy31;
 1328: 				goto yy10;
 1329: 			} else {
 1330: 				if (yych <= 'P') goto yy29;
 1331: 				if (yych != 'p') goto yy10;
 1332: 			}
 1333: 		}
 1334: yy29:
 1335: 		YYDEBUG(29, *YYCURSOR);
 1336: 		yych = *++YYCURSOR;
 1337: 		if (yych == 'H') goto yy42;
 1338: 		if (yych == 'h') goto yy42;
 1339: 		goto yy10;
 1340: yy30:
 1341: 		YYDEBUG(30, *YYCURSOR);
 1342: 		yych = *++YYCURSOR;
 1343: 		if (yych == 'P') goto yy39;
 1344: 		if (yych == 'p') goto yy39;
 1345: 		goto yy10;
 1346: yy31:
 1347: 		YYDEBUG(31, *YYCURSOR);
 1348: 		yych = *++YYCURSOR;
 1349: 		if (yych == 'P') goto yy32;
 1350: 		if (yych != 'p') goto yy10;
 1351: yy32:
 1352: 		YYDEBUG(32, *YYCURSOR);
 1353: 		yych = *++YYCURSOR;
 1354: 		if (yych == 'H') goto yy33;
 1355: 		if (yych != 'h') goto yy10;
 1356: yy33:
 1357: 		YYDEBUG(33, *YYCURSOR);
 1358: 		yych = *++YYCURSOR;
 1359: 		if (yych == 'P') goto yy34;
 1360: 		if (yych != 'p') goto yy10;
 1361: yy34:
 1362: 		YYDEBUG(34, *YYCURSOR);
 1363: 		yych = *++YYCURSOR;
 1364: 		if (yych != '\'') goto yy10;
 1365: yy35:
 1366: 		YYDEBUG(35, *YYCURSOR);
 1367: 		++YYCURSOR;
 1368: 		YYFILL(1);
 1369: 		yych = *YYCURSOR;
 1370: 		YYDEBUG(36, *YYCURSOR);
 1371: 		if (yych <= '\r') {
 1372: 			if (yych <= 0x08) goto yy10;
 1373: 			if (yych <= '\n') goto yy35;
 1374: 			if (yych <= '\f') goto yy10;
 1375: 			goto yy35;
 1376: 		} else {
 1377: 			if (yych <= ' ') {
 1378: 				if (yych <= 0x1F) goto yy10;
 1379: 				goto yy35;
 1380: 			} else {
 1381: 				if (yych != '>') goto yy10;
 1382: 			}
 1383: 		}
 1384: 		YYDEBUG(37, *YYCURSOR);
 1385: 		++YYCURSOR;
 1386: 		YYDEBUG(38, *YYCURSOR);
 1387: 		yyleng = YYCURSOR - SCNG(yy_text);
 1388: #line 1708 "Zend/zend_language_scanner.l"
 1389: 		{
 1390: 	YYCTYPE *bracket = (YYCTYPE*)zend_memrchr(yytext, '<', yyleng - (sizeof("script language=php>") - 1));
 1391: 
 1392: 	if (bracket != SCNG(yy_text)) {
 1393: 		/* Handle previously scanned HTML, as possible <script> tags found are assumed to not be PHP's */
 1394: 		YYCURSOR = bracket;
 1395: 		goto inline_html;
 1396: 	}
 1397: 
 1398: 	HANDLE_NEWLINES(yytext, yyleng);
 1399: 	zendlval->value.str.val = yytext; /* no copying - intentional */
 1400: 	zendlval->value.str.len = yyleng;
 1401: 	zendlval->type = IS_STRING;
 1402: 	BEGIN(ST_IN_SCRIPTING);
 1403: 	return T_OPEN_TAG;
 1404: }
 1405: #line 1406 "Zend/zend_language_scanner.c"
 1406: yy39:
 1407: 		YYDEBUG(39, *YYCURSOR);
 1408: 		yych = *++YYCURSOR;
 1409: 		if (yych == 'H') goto yy40;
 1410: 		if (yych != 'h') goto yy10;
 1411: yy40:
 1412: 		YYDEBUG(40, *YYCURSOR);
 1413: 		yych = *++YYCURSOR;
 1414: 		if (yych == 'P') goto yy41;
 1415: 		if (yych != 'p') goto yy10;
 1416: yy41:
 1417: 		YYDEBUG(41, *YYCURSOR);
 1418: 		yych = *++YYCURSOR;
 1419: 		if (yych == '"') goto yy35;
 1420: 		goto yy10;
 1421: yy42:
 1422: 		YYDEBUG(42, *YYCURSOR);
 1423: 		yych = *++YYCURSOR;
 1424: 		if (yych == 'P') goto yy35;
 1425: 		if (yych == 'p') goto yy35;
 1426: 		goto yy10;
 1427: yy43:
 1428: 		YYDEBUG(43, *YYCURSOR);
 1429: 		++YYCURSOR;
 1430: 		YYDEBUG(44, *YYCURSOR);
 1431: 		yyleng = YYCURSOR - SCNG(yy_text);
 1432: #line 1726 "Zend/zend_language_scanner.l"
 1433: 		{
 1434: 	if (CG(asp_tags)) {
 1435: 		zendlval->value.str.val = yytext; /* no copying - intentional */
 1436: 		zendlval->value.str.len = yyleng;
 1437: 		zendlval->type = IS_STRING;
 1438: 		BEGIN(ST_IN_SCRIPTING);
 1439: 		return T_OPEN_TAG_WITH_ECHO;
 1440: 	} else {
 1441: 		goto inline_char_handler;
 1442: 	}
 1443: }
 1444: #line 1445 "Zend/zend_language_scanner.c"
 1445: yy45:
 1446: 		YYDEBUG(45, *YYCURSOR);
 1447: 		++YYCURSOR;
 1448: 		YYDEBUG(46, *YYCURSOR);
 1449: 		yyleng = YYCURSOR - SCNG(yy_text);
 1450: #line 1739 "Zend/zend_language_scanner.l"
 1451: 		{
 1452: 	zendlval->value.str.val = yytext; /* no copying - intentional */
 1453: 	zendlval->value.str.len = yyleng;
 1454: 	zendlval->type = IS_STRING;
 1455: 	BEGIN(ST_IN_SCRIPTING);
 1456: 	return T_OPEN_TAG_WITH_ECHO;
 1457: }
 1458: #line 1459 "Zend/zend_language_scanner.c"
 1459: yy47:
 1460: 		YYDEBUG(47, *YYCURSOR);
 1461: 		yych = *++YYCURSOR;
 1462: 		if (yych == 'H') goto yy48;
 1463: 		if (yych != 'h') goto yy10;
 1464: yy48:
 1465: 		YYDEBUG(48, *YYCURSOR);
 1466: 		yych = *++YYCURSOR;
 1467: 		if (yych == 'P') goto yy49;
 1468: 		if (yych != 'p') goto yy10;
 1469: yy49:
 1470: 		YYDEBUG(49, *YYCURSOR);
 1471: 		yych = *++YYCURSOR;
 1472: 		if (yych <= '\f') {
 1473: 			if (yych <= 0x08) goto yy10;
 1474: 			if (yych >= '\v') goto yy10;
 1475: 		} else {
 1476: 			if (yych <= '\r') goto yy52;
 1477: 			if (yych != ' ') goto yy10;
 1478: 		}
 1479: yy50:
 1480: 		YYDEBUG(50, *YYCURSOR);
 1481: 		++YYCURSOR;
 1482: yy51:
 1483: 		YYDEBUG(51, *YYCURSOR);
 1484: 		yyleng = YYCURSOR - SCNG(yy_text);
 1485: #line 1761 "Zend/zend_language_scanner.l"
 1486: 		{
 1487: 	zendlval->value.str.val = yytext; /* no copying - intentional */
 1488: 	zendlval->value.str.len = yyleng;
 1489: 	zendlval->type = IS_STRING;
 1490: 	HANDLE_NEWLINE(yytext[yyleng-1]);
 1491: 	BEGIN(ST_IN_SCRIPTING);
 1492: 	return T_OPEN_TAG;
 1493: }
 1494: #line 1495 "Zend/zend_language_scanner.c"
 1495: yy52:
 1496: 		YYDEBUG(52, *YYCURSOR);
 1497: 		++YYCURSOR;
 1498: 		if ((yych = *YYCURSOR) == '\n') goto yy50;
 1499: 		goto yy51;
 1500: 	}
 1501: /* *********************************** */
 1502: yyc_ST_BACKQUOTE:
 1503: 	{
 1504: 		static const unsigned char yybm[] = {
 1505: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1506: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1507: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1508: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1509: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1510: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1511: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1512: 			128, 128,   0,   0,   0,   0,   0,   0, 
 1513: 			  0, 128, 128, 128, 128, 128, 128, 128, 
 1514: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1515: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1516: 			128, 128, 128,   0,   0,   0,   0, 128, 
 1517: 			  0, 128, 128, 128, 128, 128, 128, 128, 
 1518: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1519: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1520: 			128, 128, 128,   0,   0,   0,   0, 128, 
 1521: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1522: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1523: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1524: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1525: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1526: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1527: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1528: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1529: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1530: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1531: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1532: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1533: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1534: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1535: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1536: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1537: 		};
 1538: 		YYDEBUG(53, *YYCURSOR);
 1539: 		YYFILL(2);
 1540: 		yych = *YYCURSOR;
 1541: 		if (yych <= '_') {
 1542: 			if (yych != '$') goto yy60;
 1543: 		} else {
 1544: 			if (yych <= '`') goto yy58;
 1545: 			if (yych == '{') goto yy57;
 1546: 			goto yy60;
 1547: 		}
 1548: 		YYDEBUG(55, *YYCURSOR);
 1549: 		++YYCURSOR;
 1550: 		if ((yych = *YYCURSOR) <= '_') {
 1551: 			if (yych <= '@') goto yy56;
 1552: 			if (yych <= 'Z') goto yy63;
 1553: 			if (yych >= '_') goto yy63;
 1554: 		} else {
 1555: 			if (yych <= 'z') {
 1556: 				if (yych >= 'a') goto yy63;
 1557: 			} else {
 1558: 				if (yych <= '{') goto yy66;
 1559: 				if (yych >= 0x7F) goto yy63;
 1560: 			}
 1561: 		}
 1562: yy56:
 1563: 		YYDEBUG(56, *YYCURSOR);
 1564: 		yyleng = YYCURSOR - SCNG(yy_text);
 1565: #line 2234 "Zend/zend_language_scanner.l"
 1566: 		{
 1567: 	if (YYCURSOR > YYLIMIT) {
 1568: 		return 0;
 1569: 	}
 1570: 	if (yytext[0] == '\\' && YYCURSOR < YYLIMIT) {
 1571: 		YYCURSOR++;
 1572: 	}
 1573: 
 1574: 	while (YYCURSOR < YYLIMIT) {
 1575: 		switch (*YYCURSOR++) {
 1576: 			case '`':
 1577: 				break;
 1578: 			case '$':
 1579: 				if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
 1580: 					break;
 1581: 				}
 1582: 				continue;
 1583: 			case '{':
 1584: 				if (*YYCURSOR == '$') {
 1585: 					break;
 1586: 				}
 1587: 				continue;
 1588: 			case '\\':
 1589: 				if (YYCURSOR < YYLIMIT) {
 1590: 					YYCURSOR++;
 1591: 				}
 1592: 				/* fall through */
 1593: 			default:
 1594: 				continue;
 1595: 		}
 1596: 
 1597: 		YYCURSOR--;
 1598: 		break;
 1599: 	}
 1600: 
 1601: 	yyleng = YYCURSOR - SCNG(yy_text);
 1602: 
 1603: 	zend_scan_escape_string(zendlval, yytext, yyleng, '`' TSRMLS_CC);
 1604: 	return T_ENCAPSED_AND_WHITESPACE;
 1605: }
 1606: #line 1607 "Zend/zend_language_scanner.c"
 1607: yy57:
 1608: 		YYDEBUG(57, *YYCURSOR);
 1609: 		yych = *++YYCURSOR;
 1610: 		if (yych == '$') goto yy61;
 1611: 		goto yy56;
 1612: yy58:
 1613: 		YYDEBUG(58, *YYCURSOR);
 1614: 		++YYCURSOR;
 1615: 		YYDEBUG(59, *YYCURSOR);
 1616: 		yyleng = YYCURSOR - SCNG(yy_text);
 1617: #line 2178 "Zend/zend_language_scanner.l"
 1618: 		{
 1619: 	BEGIN(ST_IN_SCRIPTING);
 1620: 	return '`';
 1621: }
 1622: #line 1623 "Zend/zend_language_scanner.c"
 1623: yy60:
 1624: 		YYDEBUG(60, *YYCURSOR);
 1625: 		yych = *++YYCURSOR;
 1626: 		goto yy56;
 1627: yy61:
 1628: 		YYDEBUG(61, *YYCURSOR);
 1629: 		++YYCURSOR;
 1630: 		YYDEBUG(62, *YYCURSOR);
 1631: 		yyleng = YYCURSOR - SCNG(yy_text);
 1632: #line 2165 "Zend/zend_language_scanner.l"
 1633: 		{
 1634: 	zendlval->value.lval = (long) '{';
 1635: 	yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
 1636: 	yyless(1);
 1637: 	return T_CURLY_OPEN;
 1638: }
 1639: #line 1640 "Zend/zend_language_scanner.c"
 1640: yy63:
 1641: 		YYDEBUG(63, *YYCURSOR);
 1642: 		yyaccept = 0;
 1643: 		YYMARKER = ++YYCURSOR;
 1644: 		YYFILL(3);
 1645: 		yych = *YYCURSOR;
 1646: 		YYDEBUG(64, *YYCURSOR);
 1647: 		if (yybm[0+yych] & 128) {
 1648: 			goto yy63;
 1649: 		}
 1650: 		if (yych == '-') goto yy68;
 1651: 		if (yych == '[') goto yy70;
 1652: yy65:
 1653: 		YYDEBUG(65, *YYCURSOR);
 1654: 		yyleng = YYCURSOR - SCNG(yy_text);
 1655: #line 1865 "Zend/zend_language_scanner.l"
 1656: 		{
 1657: 	zend_copy_value(zendlval, (yytext+1), (yyleng-1));
 1658: 	zendlval->type = IS_STRING;
 1659: 	return T_VARIABLE;
 1660: }
 1661: #line 1662 "Zend/zend_language_scanner.c"
 1662: yy66:
 1663: 		YYDEBUG(66, *YYCURSOR);
 1664: 		++YYCURSOR;
 1665: 		YYDEBUG(67, *YYCURSOR);
 1666: 		yyleng = YYCURSOR - SCNG(yy_text);
 1667: #line 1442 "Zend/zend_language_scanner.l"
 1668: 		{
 1669: 	yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
 1670: 	return T_DOLLAR_OPEN_CURLY_BRACES;
 1671: }
 1672: #line 1673 "Zend/zend_language_scanner.c"
 1673: yy68:
 1674: 		YYDEBUG(68, *YYCURSOR);
 1675: 		yych = *++YYCURSOR;
 1676: 		if (yych == '>') goto yy72;
 1677: yy69:
 1678: 		YYDEBUG(69, *YYCURSOR);
 1679: 		YYCURSOR = YYMARKER;
 1680: 		goto yy65;
 1681: yy70:
 1682: 		YYDEBUG(70, *YYCURSOR);
 1683: 		++YYCURSOR;
 1684: 		YYDEBUG(71, *YYCURSOR);
 1685: 		yyleng = YYCURSOR - SCNG(yy_text);
 1686: #line 1857 "Zend/zend_language_scanner.l"
 1687: 		{
 1688: 	yyless(yyleng - 1);
 1689: 	yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
 1690: 	zend_copy_value(zendlval, (yytext+1), (yyleng-1));
 1691: 	zendlval->type = IS_STRING;
 1692: 	return T_VARIABLE;
 1693: }
 1694: #line 1695 "Zend/zend_language_scanner.c"
 1695: yy72:
 1696: 		YYDEBUG(72, *YYCURSOR);
 1697: 		yych = *++YYCURSOR;
 1698: 		if (yych <= '_') {
 1699: 			if (yych <= '@') goto yy69;
 1700: 			if (yych <= 'Z') goto yy73;
 1701: 			if (yych <= '^') goto yy69;
 1702: 		} else {
 1703: 			if (yych <= '`') goto yy69;
 1704: 			if (yych <= 'z') goto yy73;
 1705: 			if (yych <= '~') goto yy69;
 1706: 		}
 1707: yy73:
 1708: 		YYDEBUG(73, *YYCURSOR);
 1709: 		++YYCURSOR;
 1710: 		YYDEBUG(74, *YYCURSOR);
 1711: 		yyleng = YYCURSOR - SCNG(yy_text);
 1712: #line 1847 "Zend/zend_language_scanner.l"
 1713: 		{
 1714: 	yyless(yyleng - 3);
 1715: 	yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
 1716: 	zend_copy_value(zendlval, (yytext+1), (yyleng-1));
 1717: 	zendlval->type = IS_STRING;
 1718: 	return T_VARIABLE;
 1719: }
 1720: #line 1721 "Zend/zend_language_scanner.c"
 1721: 	}
 1722: /* *********************************** */
 1723: yyc_ST_DOUBLE_QUOTES:
 1724: 	{
 1725: 		static const unsigned char yybm[] = {
 1726: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1727: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1728: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1729: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1730: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1731: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1732: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1733: 			128, 128,   0,   0,   0,   0,   0,   0, 
 1734: 			  0, 128, 128, 128, 128, 128, 128, 128, 
 1735: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1736: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1737: 			128, 128, 128,   0,   0,   0,   0, 128, 
 1738: 			  0, 128, 128, 128, 128, 128, 128, 128, 
 1739: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1740: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1741: 			128, 128, 128,   0,   0,   0,   0, 128, 
 1742: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1743: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1744: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1745: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1746: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1747: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1748: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1749: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1750: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1751: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1752: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1753: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1754: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1755: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1756: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1757: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1758: 		};
 1759: 		YYDEBUG(75, *YYCURSOR);
 1760: 		YYFILL(2);
 1761: 		yych = *YYCURSOR;
 1762: 		if (yych <= '#') {
 1763: 			if (yych == '"') goto yy80;
 1764: 			goto yy82;
 1765: 		} else {
 1766: 			if (yych <= '$') goto yy77;
 1767: 			if (yych == '{') goto yy79;
 1768: 			goto yy82;
 1769: 		}
 1770: yy77:
 1771: 		YYDEBUG(77, *YYCURSOR);
 1772: 		++YYCURSOR;
 1773: 		if ((yych = *YYCURSOR) <= '_') {
 1774: 			if (yych <= '@') goto yy78;
 1775: 			if (yych <= 'Z') goto yy85;
 1776: 			if (yych >= '_') goto yy85;
 1777: 		} else {
 1778: 			if (yych <= 'z') {
 1779: 				if (yych >= 'a') goto yy85;
 1780: 			} else {
 1781: 				if (yych <= '{') goto yy88;
 1782: 				if (yych >= 0x7F) goto yy85;
 1783: 			}
 1784: 		}
 1785: yy78:
 1786: 		YYDEBUG(78, *YYCURSOR);
 1787: 		yyleng = YYCURSOR - SCNG(yy_text);
 1788: #line 2184 "Zend/zend_language_scanner.l"
 1789: 		{
 1790: 	if (GET_DOUBLE_QUOTES_SCANNED_LENGTH()) {
 1791: 		YYCURSOR += GET_DOUBLE_QUOTES_SCANNED_LENGTH() - 1;
 1792: 		SET_DOUBLE_QUOTES_SCANNED_LENGTH(0);
 1793: 
 1794: 		goto double_quotes_scan_done;
 1795: 	}
 1796: 
 1797: 	if (YYCURSOR > YYLIMIT) {
 1798: 		return 0;
 1799: 	}
 1800: 	if (yytext[0] == '\\' && YYCURSOR < YYLIMIT) {
 1801: 		YYCURSOR++;
 1802: 	}
 1803: 
 1804: 	while (YYCURSOR < YYLIMIT) {
 1805: 		switch (*YYCURSOR++) {
 1806: 			case '"':
 1807: 				break;
 1808: 			case '$':
 1809: 				if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
 1810: 					break;
 1811: 				}
 1812: 				continue;
 1813: 			case '{':
 1814: 				if (*YYCURSOR == '$') {
 1815: 					break;
 1816: 				}
 1817: 				continue;
 1818: 			case '\\':
 1819: 				if (YYCURSOR < YYLIMIT) {
 1820: 					YYCURSOR++;
 1821: 				}
 1822: 				/* fall through */
 1823: 			default:
 1824: 				continue;
 1825: 		}
 1826: 
 1827: 		YYCURSOR--;
 1828: 		break;
 1829: 	}
 1830: 
 1831: double_quotes_scan_done:
 1832: 	yyleng = YYCURSOR - SCNG(yy_text);
 1833: 
 1834: 	zend_scan_escape_string(zendlval, yytext, yyleng, '"' TSRMLS_CC);
 1835: 	return T_ENCAPSED_AND_WHITESPACE;
 1836: }
 1837: #line 1838 "Zend/zend_language_scanner.c"
 1838: yy79:
 1839: 		YYDEBUG(79, *YYCURSOR);
 1840: 		yych = *++YYCURSOR;
 1841: 		if (yych == '$') goto yy83;
 1842: 		goto yy78;
 1843: yy80:
 1844: 		YYDEBUG(80, *YYCURSOR);
 1845: 		++YYCURSOR;
 1846: 		YYDEBUG(81, *YYCURSOR);
 1847: 		yyleng = YYCURSOR - SCNG(yy_text);
 1848: #line 2173 "Zend/zend_language_scanner.l"
 1849: 		{
 1850: 	BEGIN(ST_IN_SCRIPTING);
 1851: 	return '"';
 1852: }
 1853: #line 1854 "Zend/zend_language_scanner.c"
 1854: yy82:
 1855: 		YYDEBUG(82, *YYCURSOR);
 1856: 		yych = *++YYCURSOR;
 1857: 		goto yy78;
 1858: yy83:
 1859: 		YYDEBUG(83, *YYCURSOR);
 1860: 		++YYCURSOR;
 1861: 		YYDEBUG(84, *YYCURSOR);
 1862: 		yyleng = YYCURSOR - SCNG(yy_text);
 1863: #line 2165 "Zend/zend_language_scanner.l"
 1864: 		{
 1865: 	zendlval->value.lval = (long) '{';
 1866: 	yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
 1867: 	yyless(1);
 1868: 	return T_CURLY_OPEN;
 1869: }
 1870: #line 1871 "Zend/zend_language_scanner.c"
 1871: yy85:
 1872: 		YYDEBUG(85, *YYCURSOR);
 1873: 		yyaccept = 0;
 1874: 		YYMARKER = ++YYCURSOR;
 1875: 		YYFILL(3);
 1876: 		yych = *YYCURSOR;
 1877: 		YYDEBUG(86, *YYCURSOR);
 1878: 		if (yybm[0+yych] & 128) {
 1879: 			goto yy85;
 1880: 		}
 1881: 		if (yych == '-') goto yy90;
 1882: 		if (yych == '[') goto yy92;
 1883: yy87:
 1884: 		YYDEBUG(87, *YYCURSOR);
 1885: 		yyleng = YYCURSOR - SCNG(yy_text);
 1886: #line 1865 "Zend/zend_language_scanner.l"
 1887: 		{
 1888: 	zend_copy_value(zendlval, (yytext+1), (yyleng-1));
 1889: 	zendlval->type = IS_STRING;
 1890: 	return T_VARIABLE;
 1891: }
 1892: #line 1893 "Zend/zend_language_scanner.c"
 1893: yy88:
 1894: 		YYDEBUG(88, *YYCURSOR);
 1895: 		++YYCURSOR;
 1896: 		YYDEBUG(89, *YYCURSOR);
 1897: 		yyleng = YYCURSOR - SCNG(yy_text);
 1898: #line 1442 "Zend/zend_language_scanner.l"
 1899: 		{
 1900: 	yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
 1901: 	return T_DOLLAR_OPEN_CURLY_BRACES;
 1902: }
 1903: #line 1904 "Zend/zend_language_scanner.c"
 1904: yy90:
 1905: 		YYDEBUG(90, *YYCURSOR);
 1906: 		yych = *++YYCURSOR;
 1907: 		if (yych == '>') goto yy94;
 1908: yy91:
 1909: 		YYDEBUG(91, *YYCURSOR);
 1910: 		YYCURSOR = YYMARKER;
 1911: 		goto yy87;
 1912: yy92:
 1913: 		YYDEBUG(92, *YYCURSOR);
 1914: 		++YYCURSOR;
 1915: 		YYDEBUG(93, *YYCURSOR);
 1916: 		yyleng = YYCURSOR - SCNG(yy_text);
 1917: #line 1857 "Zend/zend_language_scanner.l"
 1918: 		{
 1919: 	yyless(yyleng - 1);
 1920: 	yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
 1921: 	zend_copy_value(zendlval, (yytext+1), (yyleng-1));
 1922: 	zendlval->type = IS_STRING;
 1923: 	return T_VARIABLE;
 1924: }
 1925: #line 1926 "Zend/zend_language_scanner.c"
 1926: yy94:
 1927: 		YYDEBUG(94, *YYCURSOR);
 1928: 		yych = *++YYCURSOR;
 1929: 		if (yych <= '_') {
 1930: 			if (yych <= '@') goto yy91;
 1931: 			if (yych <= 'Z') goto yy95;
 1932: 			if (yych <= '^') goto yy91;
 1933: 		} else {
 1934: 			if (yych <= '`') goto yy91;
 1935: 			if (yych <= 'z') goto yy95;
 1936: 			if (yych <= '~') goto yy91;
 1937: 		}
 1938: yy95:
 1939: 		YYDEBUG(95, *YYCURSOR);
 1940: 		++YYCURSOR;
 1941: 		YYDEBUG(96, *YYCURSOR);
 1942: 		yyleng = YYCURSOR - SCNG(yy_text);
 1943: #line 1847 "Zend/zend_language_scanner.l"
 1944: 		{
 1945: 	yyless(yyleng - 3);
 1946: 	yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
 1947: 	zend_copy_value(zendlval, (yytext+1), (yyleng-1));
 1948: 	zendlval->type = IS_STRING;
 1949: 	return T_VARIABLE;
 1950: }
 1951: #line 1952 "Zend/zend_language_scanner.c"
 1952: 	}
 1953: /* *********************************** */
 1954: yyc_ST_END_HEREDOC:
 1955: 	YYDEBUG(97, *YYCURSOR);
 1956: 	YYFILL(1);
 1957: 	yych = *YYCURSOR;
 1958: 	YYDEBUG(99, *YYCURSOR);
 1959: 	++YYCURSOR;
 1960: 	YYDEBUG(100, *YYCURSOR);
 1961: 	yyleng = YYCURSOR - SCNG(yy_text);
 1962: #line 2152 "Zend/zend_language_scanner.l"
 1963: 	{
 1964: 	YYCURSOR += CG(heredoc_len) - 1;
 1965: 	yyleng = CG(heredoc_len);
 1966: 
 1967: 	Z_STRVAL_P(zendlval) = CG(heredoc);
 1968: 	Z_STRLEN_P(zendlval) = CG(heredoc_len);
 1969: 	CG(heredoc) = NULL;
 1970: 	CG(heredoc_len) = 0;
 1971: 	BEGIN(ST_IN_SCRIPTING);
 1972: 	return T_END_HEREDOC;
 1973: }
 1974: #line 1975 "Zend/zend_language_scanner.c"
 1975: /* *********************************** */
 1976: yyc_ST_HEREDOC:
 1977: 	{
 1978: 		static const unsigned char yybm[] = {
 1979: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1980: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1981: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1982: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1983: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1984: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 1985: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1986: 			128, 128,   0,   0,   0,   0,   0,   0, 
 1987: 			  0, 128, 128, 128, 128, 128, 128, 128, 
 1988: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1989: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1990: 			128, 128, 128,   0,   0,   0,   0, 128, 
 1991: 			  0, 128, 128, 128, 128, 128, 128, 128, 
 1992: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1993: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1994: 			128, 128, 128,   0,   0,   0,   0, 128, 
 1995: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1996: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1997: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1998: 			128, 128, 128, 128, 128, 128, 128, 128, 
 1999: 			128, 128, 128, 128, 128, 128, 128, 128, 
 2000: 			128, 128, 128, 128, 128, 128, 128, 128, 
 2001: 			128, 128, 128, 128, 128, 128, 128, 128, 
 2002: 			128, 128, 128, 128, 128, 128, 128, 128, 
 2003: 			128, 128, 128, 128, 128, 128, 128, 128, 
 2004: 			128, 128, 128, 128, 128, 128, 128, 128, 
 2005: 			128, 128, 128, 128, 128, 128, 128, 128, 
 2006: 			128, 128, 128, 128, 128, 128, 128, 128, 
 2007: 			128, 128, 128, 128, 128, 128, 128, 128, 
 2008: 			128, 128, 128, 128, 128, 128, 128, 128, 
 2009: 			128, 128, 128, 128, 128, 128, 128, 128, 
 2010: 			128, 128, 128, 128, 128, 128, 128, 128, 
 2011: 		};
 2012: 		YYDEBUG(101, *YYCURSOR);
 2013: 		YYFILL(2);
 2014: 		yych = *YYCURSOR;
 2015: 		if (yych == '$') goto yy103;
 2016: 		if (yych == '{') goto yy105;
 2017: 		goto yy106;
 2018: yy103:
 2019: 		YYDEBUG(103, *YYCURSOR);
 2020: 		++YYCURSOR;
 2021: 		if ((yych = *YYCURSOR) <= '_') {
 2022: 			if (yych <= '@') goto yy104;
 2023: 			if (yych <= 'Z') goto yy109;
 2024: 			if (yych >= '_') goto yy109;
 2025: 		} else {
 2026: 			if (yych <= 'z') {
 2027: 				if (yych >= 'a') goto yy109;
 2028: 			} else {
 2029: 				if (yych <= '{') goto yy112;
 2030: 				if (yych >= 0x7F) goto yy109;
 2031: 			}
 2032: 		}
 2033: yy104:
 2034: 		YYDEBUG(104, *YYCURSOR);
 2035: 		yyleng = YYCURSOR - SCNG(yy_text);
 2036: #line 2276 "Zend/zend_language_scanner.l"
 2037: 		{
 2038: 	int newline = 0;
 2039: 
 2040: 	if (YYCURSOR > YYLIMIT) {
 2041: 		return 0;
 2042: 	}
 2043: 
 2044: 	YYCURSOR--;
 2045: 
 2046: 	while (YYCURSOR < YYLIMIT) {
 2047: 		switch (*YYCURSOR++) {
 2048: 			case '\r':
 2049: 				if (*YYCURSOR == '\n') {
 2050: 					YYCURSOR++;
 2051: 				}
 2052: 				/* fall through */
 2053: 			case '\n':
 2054: 				/* Check for ending label on the next line */
 2055: 				if (IS_LABEL_START(*YYCURSOR) && CG(heredoc_len) < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, CG(heredoc), CG(heredoc_len))) {
 2056: 					YYCTYPE *end = YYCURSOR + CG(heredoc_len);
 2057: 
 2058: 					if (*end == ';') {
 2059: 						end++;
 2060: 					}
 2061: 
 2062: 					if (*end == '\n' || *end == '\r') {
 2063: 						/* newline before label will be subtracted from returned text, but
 2064: 						 * yyleng/yytext will include it, for zend_highlight/strip, tokenizer, etc. */
 2065: 						if (YYCURSOR[-2] == '\r' && YYCURSOR[-1] == '\n') {
 2066: 							newline = 2; /* Windows newline */
 2067: 						} else {
 2068: 							newline = 1;
 2069: 						}
 2070: 
 2071: 						CG(increment_lineno) = 1; /* For newline before label */
 2072: 						BEGIN(ST_END_HEREDOC);
 2073: 
 2074: 						goto heredoc_scan_done;
 2075: 					}
 2076: 				}
 2077: 				continue;
 2078: 			case '$':
 2079: 				if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
 2080: 					break;
 2081: 				}
 2082: 				continue;
 2083: 			case '{':
 2084: 				if (*YYCURSOR == '$') {
 2085: 					break;
 2086: 				}
 2087: 				continue;
 2088: 			case '\\':
 2089: 				if (YYCURSOR < YYLIMIT && *YYCURSOR != '\n' && *YYCURSOR != '\r') {
 2090: 					YYCURSOR++;
 2091: 				}
 2092: 				/* fall through */
 2093: 			default:
 2094: 				continue;
 2095: 		}
 2096: 
 2097: 		YYCURSOR--;
 2098: 		break;
 2099: 	}
 2100: 
 2101: heredoc_scan_done:
 2102: 	yyleng = YYCURSOR - SCNG(yy_text);
 2103: 
 2104: 	zend_scan_escape_string(zendlval, yytext, yyleng - newline, 0 TSRMLS_CC);
 2105: 	return T_ENCAPSED_AND_WHITESPACE;
 2106: }
 2107: #line 2108 "Zend/zend_language_scanner.c"
 2108: yy105:
 2109: 		YYDEBUG(105, *YYCURSOR);
 2110: 		yych = *++YYCURSOR;
 2111: 		if (yych == '$') goto yy107;
 2112: 		goto yy104;
 2113: yy106:
 2114: 		YYDEBUG(106, *YYCURSOR);
 2115: 		yych = *++YYCURSOR;
 2116: 		goto yy104;
 2117: yy107:
 2118: 		YYDEBUG(107, *YYCURSOR);
 2119: 		++YYCURSOR;
 2120: 		YYDEBUG(108, *YYCURSOR);
 2121: 		yyleng = YYCURSOR - SCNG(yy_text);
 2122: #line 2165 "Zend/zend_language_scanner.l"
 2123: 		{
 2124: 	zendlval->value.lval = (long) '{';
 2125: 	yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
 2126: 	yyless(1);
 2127: 	return T_CURLY_OPEN;
 2128: }
 2129: #line 2130 "Zend/zend_language_scanner.c"
 2130: yy109:
 2131: 		YYDEBUG(109, *YYCURSOR);
 2132: 		yyaccept = 0;
 2133: 		YYMARKER = ++YYCURSOR;
 2134: 		YYFILL(3);
 2135: 		yych = *YYCURSOR;
 2136: 		YYDEBUG(110, *YYCURSOR);
 2137: 		if (yybm[0+yych] & 128) {
 2138: 			goto yy109;
 2139: 		}
 2140: 		if (yych == '-') goto yy114;
 2141: 		if (yych == '[') goto yy116;
 2142: yy111:
 2143: 		YYDEBUG(111, *YYCURSOR);
 2144: 		yyleng = YYCURSOR - SCNG(yy_text);
 2145: #line 1865 "Zend/zend_language_scanner.l"
 2146: 		{
 2147: 	zend_copy_value(zendlval, (yytext+1), (yyleng-1));
 2148: 	zendlval->type = IS_STRING;
 2149: 	return T_VARIABLE;
 2150: }
 2151: #line 2152 "Zend/zend_language_scanner.c"
 2152: yy112:
 2153: 		YYDEBUG(112, *YYCURSOR);
 2154: 		++YYCURSOR;
 2155: 		YYDEBUG(113, *YYCURSOR);
 2156: 		yyleng = YYCURSOR - SCNG(yy_text);
 2157: #line 1442 "Zend/zend_language_scanner.l"
 2158: 		{
 2159: 	yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
 2160: 	return T_DOLLAR_OPEN_CURLY_BRACES;
 2161: }
 2162: #line 2163 "Zend/zend_language_scanner.c"
 2163: yy114:
 2164: 		YYDEBUG(114, *YYCURSOR);
 2165: 		yych = *++YYCURSOR;
 2166: 		if (yych == '>') goto yy118;
 2167: yy115:
 2168: 		YYDEBUG(115, *YYCURSOR);
 2169: 		YYCURSOR = YYMARKER;
 2170: 		goto yy111;
 2171: yy116:
 2172: 		YYDEBUG(116, *YYCURSOR);
 2173: 		++YYCURSOR;
 2174: 		YYDEBUG(117, *YYCURSOR);
 2175: 		yyleng = YYCURSOR - SCNG(yy_text);
 2176: #line 1857 "Zend/zend_language_scanner.l"
 2177: 		{
 2178: 	yyless(yyleng - 1);
 2179: 	yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
 2180: 	zend_copy_value(zendlval, (yytext+1), (yyleng-1));
 2181: 	zendlval->type = IS_STRING;
 2182: 	return T_VARIABLE;
 2183: }
 2184: #line 2185 "Zend/zend_language_scanner.c"
 2185: yy118:
 2186: 		YYDEBUG(118, *YYCURSOR);
 2187: 		yych = *++YYCURSOR;
 2188: 		if (yych <= '_') {
 2189: 			if (yych <= '@') goto yy115;
 2190: 			if (yych <= 'Z') goto yy119;
 2191: 			if (yych <= '^') goto yy115;
 2192: 		} else {
 2193: 			if (yych <= '`') goto yy115;
 2194: 			if (yych <= 'z') goto yy119;
 2195: 			if (yych <= '~') goto yy115;
 2196: 		}
 2197: yy119:
 2198: 		YYDEBUG(119, *YYCURSOR);
 2199: 		++YYCURSOR;
 2200: 		YYDEBUG(120, *YYCURSOR);
 2201: 		yyleng = YYCURSOR - SCNG(yy_text);
 2202: #line 1847 "Zend/zend_language_scanner.l"
 2203: 		{
 2204: 	yyless(yyleng - 3);
 2205: 	yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
 2206: 	zend_copy_value(zendlval, (yytext+1), (yyleng-1));
 2207: 	zendlval->type = IS_STRING;
 2208: 	return T_VARIABLE;
 2209: }
 2210: #line 2211 "Zend/zend_language_scanner.c"
 2211: 	}
 2212: /* *********************************** */
 2213: yyc_ST_IN_SCRIPTING:
 2214: 	{
 2215: 		static const unsigned char yybm[] = {
 2216: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 2217: 			  0, 192,  64,   0,   0,  64,   0,   0, 
 2218: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 2219: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 2220: 			192,   0,   0,   0,   0,   0,   0,   0, 
 2221: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 2222: 			 60,  60,  44,  44,  44,  44,  44,  44, 
 2223: 			 44,  44,   0,   0,   0,   0,   0,   0, 
 2224: 			  0,  36,  36,  36,  36,  36,  36,   4, 
 2225: 			  4,   4,   4,   4,   4,   4,   4,   4, 
 2226: 			  4,   4,   4,   4,   4,   4,   4,   4, 
 2227: 			  4,   4,   4,   0,   0,   0,   0,   4, 
 2228: 			  0,  36,  36,  36,  36,  36,  36,   4, 
 2229: 			  4,   4,   4,   4,   4,   4,   4,   4, 
 2230: 			  4,   4,   4,   4,   4,   4,   4,   4, 
 2231: 			  4,   4,   4,   0,   0,   0,   0,   4, 
 2232: 			  4,   4,   4,   4,   4,   4,   4,   4, 
 2233: 			  4,   4,   4,   4,   4,   4,   4,   4, 
 2234: 			  4,   4,   4,   4,   4,   4,   4,   4, 
 2235: 			  4,   4,   4,   4,   4,   4,   4,   4, 
 2236: 			  4,   4,   4,   4,   4,   4,   4,   4, 
 2237: 			  4,   4,   4,   4,   4,   4,   4,   4, 
 2238: 			  4,   4,   4,   4,   4,   4,   4,   4, 
 2239: 			  4,   4,   4,   4,   4,   4,   4,   4, 
 2240: 			  4,   4,   4,   4,   4,   4,   4,   4, 
 2241: 			  4,   4,   4,   4,   4,   4,   4,   4, 
 2242: 			  4,   4,   4,   4,   4,   4,   4,   4, 
 2243: 			  4,   4,   4,   4,   4,   4,   4,   4, 
 2244: 			  4,   4,   4,   4,   4,   4,   4,   4, 
 2245: 			  4,   4,   4,   4,   4,   4,   4,   4, 
 2246: 			  4,   4,   4,   4,   4,   4,   4,   4, 
 2247: 			  4,   4,   4,   4,   4,   4,   4,   4, 
 2248: 		};
 2249: 		YYDEBUG(121, *YYCURSOR);
 2250: 		YYFILL(16);
 2251: 		yych = *YYCURSOR;
 2252: 		YYDEBUG(-1, yych);
 2253: 		switch (yych) {
 2254: 		case 0x00:
 2255: 		case 0x01:
 2256: 		case 0x02:
 2257: 		case 0x03:
 2258: 		case 0x04:
 2259: 		case 0x05:
 2260: 		case 0x06:
 2261: 		case 0x07:
 2262: 		case 0x08:
 2263: 		case '\v':
 2264: 		case '\f':
 2265: 		case 0x0E:
 2266: 		case 0x0F:
 2267: 		case 0x10:
 2268: 		case 0x11:
 2269: 		case 0x12:
 2270: 		case 0x13:
 2271: 		case 0x14:
 2272: 		case 0x15:
 2273: 		case 0x16:
 2274: 		case 0x17:
 2275: 		case 0x18:
 2276: 		case 0x19:
 2277: 		case 0x1A:
 2278: 		case 0x1B:
 2279: 		case 0x1C:
 2280: 		case 0x1D:
 2281: 		case 0x1E:
 2282: 		case 0x1F:	goto yy183;
 2283: 		case '\t':
 2284: 		case '\n':
 2285: 		case '\r':
 2286: 		case ' ':	goto yy139;
 2287: 		case '!':	goto yy152;
 2288: 		case '"':	goto yy179;
 2289: 		case '#':	goto yy175;
 2290: 		case '$':	goto yy164;
 2291: 		case '%':	goto yy158;
 2292: 		case '&':	goto yy159;
 2293: 		case '\'':	goto yy177;
 2294: 		case '(':	goto yy146;
 2295: 		case ')':
 2296: 		case ',':
 2297: 		case ';':
 2298: 		case '@':
 2299: 		case '[':
 2300: 		case ']':
 2301: 		case '~':	goto yy165;
 2302: 		case '*':	goto yy155;
 2303: 		case '+':	goto yy151;
 2304: 		case '-':	goto yy137;
 2305: 		case '.':	goto yy157;
 2306: 		case '/':	goto yy156;
 2307: 		case '0':	goto yy171;
 2308: 		case '1':
 2309: 		case '2':
 2310: 		case '3':
 2311: 		case '4':
 2312: 		case '5':
 2313: 		case '6':
 2314: 		case '7':
 2315: 		case '8':
 2316: 		case '9':	goto yy173;
 2317: 		case ':':	goto yy141;
 2318: 		case '<':	goto yy153;
 2319: 		case '=':	goto yy149;
 2320: 		case '>':	goto yy154;
 2321: 		case '?':	goto yy166;
 2322: 		case 'A':
 2323: 		case 'a':	goto yy132;
 2324: 		case 'B':
 2325: 		case 'b':	goto yy134;
 2326: 		case 'C':
 2327: 		case 'c':	goto yy127;
 2328: 		case 'D':
 2329: 		case 'd':	goto yy125;
 2330: 		case 'E':
 2331: 		case 'e':	goto yy123;
 2332: 		case 'F':
 2333: 		case 'f':	goto yy126;
 2334: 		case 'G':
 2335: 		case 'g':	goto yy135;
 2336: 		case 'I':
 2337: 		case 'i':	goto yy130;
 2338: 		case 'L':
 2339: 		case 'l':	goto yy150;
 2340: 		case 'N':
 2341: 		case 'n':	goto yy144;
 2342: 		case 'O':
 2343: 		case 'o':	goto yy162;
 2344: 		case 'P':
 2345: 		case 'p':	goto yy136;
 2346: 		case 'R':
 2347: 		case 'r':	goto yy128;
 2348: 		case 'S':
 2349: 		case 's':	goto yy133;
 2350: 		case 'T':
 2351: 		case 't':	goto yy129;
 2352: 		case 'U':
 2353: 		case 'u':	goto yy147;
 2354: 		case 'V':
 2355: 		case 'v':	goto yy145;
 2356: 		case 'W':
 2357: 		case 'w':	goto yy131;
 2358: 		case 'X':
 2359: 		case 'x':	goto yy163;
 2360: 		case '\\':	goto yy142;
 2361: 		case '^':	goto yy161;
 2362: 		case '_':	goto yy148;
 2363: 		case '`':	goto yy181;
 2364: 		case '{':	goto yy167;
 2365: 		case '|':	goto yy160;
 2366: 		case '}':	goto yy169;
 2367: 		default:	goto yy174;
 2368: 		}
 2369: yy123:
 2370: 		YYDEBUG(123, *YYCURSOR);
 2371: 		++YYCURSOR;
 2372: 		YYDEBUG(-1, yych);
 2373: 		switch ((yych = *YYCURSOR)) {
 2374: 		case 'C':
 2375: 		case 'c':	goto yy726;
 2376: 		case 'L':
 2377: 		case 'l':	goto yy727;
 2378: 		case 'M':
 2379: 		case 'm':	goto yy728;
 2380: 		case 'N':
 2381: 		case 'n':	goto yy729;
 2382: 		case 'V':
 2383: 		case 'v':	goto yy730;
 2384: 		case 'X':
 2385: 		case 'x':	goto yy731;
 2386: 		default:	goto yy186;
 2387: 		}
 2388: yy124:
 2389: 		YYDEBUG(124, *YYCURSOR);
 2390: 		yyleng = YYCURSOR - SCNG(yy_text);
 2391: #line 1888 "Zend/zend_language_scanner.l"
 2392: 		{
 2393: 	zend_copy_value(zendlval, yytext, yyleng);
 2394: 	zendlval->type = IS_STRING;
 2395: 	return T_STRING;
 2396: }
 2397: #line 2398 "Zend/zend_language_scanner.c"
 2398: yy125:
 2399: 		YYDEBUG(125, *YYCURSOR);
 2400: 		yych = *++YYCURSOR;
 2401: 		if (yych <= 'O') {
 2402: 			if (yych <= 'H') {
 2403: 				if (yych == 'E') goto yy708;
 2404: 				goto yy186;
 2405: 			} else {
 2406: 				if (yych <= 'I') goto yy709;
 2407: 				if (yych <= 'N') goto yy186;
 2408: 				goto yy710;
 2409: 			}
 2410: 		} else {
 2411: 			if (yych <= 'h') {
 2412: 				if (yych == 'e') goto yy708;
 2413: 				goto yy186;
 2414: 			} else {
 2415: 				if (yych <= 'i') goto yy709;
 2416: 				if (yych == 'o') goto yy710;
 2417: 				goto yy186;
 2418: 			}
 2419: 		}
 2420: yy126:
 2421: 		YYDEBUG(126, *YYCURSOR);
 2422: 		yych = *++YYCURSOR;
 2423: 		if (yych <= 'U') {
 2424: 			if (yych <= 'N') {
 2425: 				if (yych == 'I') goto yy687;
 2426: 				goto yy186;
 2427: 			} else {
 2428: 				if (yych <= 'O') goto yy688;
 2429: 				if (yych <= 'T') goto yy186;
 2430: 				goto yy689;
 2431: 			}
 2432: 		} else {
 2433: 			if (yych <= 'n') {
 2434: 				if (yych == 'i') goto yy687;
 2435: 				goto yy186;
 2436: 			} else {
 2437: 				if (yych <= 'o') goto yy688;
 2438: 				if (yych == 'u') goto yy689;
 2439: 				goto yy186;
 2440: 			}
 2441: 		}
 2442: yy127:
 2443: 		YYDEBUG(127, *YYCURSOR);
 2444: 		yych = *++YYCURSOR;
 2445: 		if (yych <= 'O') {
 2446: 			if (yych <= 'K') {
 2447: 				if (yych == 'A') goto yy652;
 2448: 				goto yy186;
 2449: 			} else {
 2450: 				if (yych <= 'L') goto yy653;
 2451: 				if (yych <= 'N') goto yy186;
 2452: 				goto yy654;
 2453: 			}
 2454: 		} else {
 2455: 			if (yych <= 'k') {
 2456: 				if (yych == 'a') goto yy652;
 2457: 				goto yy186;
 2458: 			} else {
 2459: 				if (yych <= 'l') goto yy653;
 2460: 				if (yych == 'o') goto yy654;
 2461: 				goto yy186;
 2462: 			}
 2463: 		}
 2464: yy128:
 2465: 		YYDEBUG(128, *YYCURSOR);
 2466: 		yych = *++YYCURSOR;
 2467: 		if (yych == 'E') goto yy634;
 2468: 		if (yych == 'e') goto yy634;
 2469: 		goto yy186;
 2470: yy129:
 2471: 		YYDEBUG(129, *YYCURSOR);
 2472: 		yych = *++YYCURSOR;
 2473: 		if (yych <= 'R') {
 2474: 			if (yych == 'H') goto yy622;
 2475: 			if (yych <= 'Q') goto yy186;
 2476: 			goto yy623;
 2477: 		} else {
 2478: 			if (yych <= 'h') {
 2479: 				if (yych <= 'g') goto yy186;
 2480: 				goto yy622;
 2481: 			} else {
 2482: 				if (yych == 'r') goto yy623;
 2483: 				goto yy186;
 2484: 			}
 2485: 		}
 2486: yy130:
 2487: 		YYDEBUG(130, *YYCURSOR);
 2488: 		yych = *++YYCURSOR;
 2489: 		if (yych <= 'S') {
 2490: 			if (yych <= 'L') {
 2491: 				if (yych == 'F') goto yy569;
 2492: 				goto yy186;
 2493: 			} else {
 2494: 				if (yych <= 'M') goto yy571;
 2495: 				if (yych <= 'N') goto yy572;
 2496: 				if (yych <= 'R') goto yy186;
 2497: 				goto yy573;
 2498: 			}
 2499: 		} else {
 2500: 			if (yych <= 'm') {
 2501: 				if (yych == 'f') goto yy569;
 2502: 				if (yych <= 'l') goto yy186;
 2503: 				goto yy571;
 2504: 			} else {
 2505: 				if (yych <= 'n') goto yy572;
 2506: 				if (yych == 's') goto yy573;
 2507: 				goto yy186;
 2508: 			}
 2509: 		}
 2510: yy131:
 2511: 		YYDEBUG(131, *YYCURSOR);
 2512: 		yych = *++YYCURSOR;
 2513: 		if (yych == 'H') goto yy564;
 2514: 		if (yych == 'h') goto yy564;
 2515: 		goto yy186;
 2516: yy132:
 2517: 		YYDEBUG(132, *YYCURSOR);
 2518: 		yych = *++YYCURSOR;
 2519: 		if (yych <= 'S') {
 2520: 			if (yych <= 'M') {
 2521: 				if (yych == 'B') goto yy546;
 2522: 				goto yy186;
 2523: 			} else {
 2524: 				if (yych <= 'N') goto yy547;
 2525: 				if (yych <= 'Q') goto yy186;
 2526: 				if (yych <= 'R') goto yy548;
 2527: 				goto yy549;
 2528: 			}
 2529: 		} else {
 2530: 			if (yych <= 'n') {
 2531: 				if (yych == 'b') goto yy546;
 2532: 				if (yych <= 'm') goto yy186;
 2533: 				goto yy547;
 2534: 			} else {
 2535: 				if (yych <= 'q') goto yy186;
 2536: 				if (yych <= 'r') goto yy548;
 2537: 				if (yych <= 's') goto yy549;
 2538: 				goto yy186;
 2539: 			}
 2540: 		}
 2541: yy133:
 2542: 		YYDEBUG(133, *YYCURSOR);
 2543: 		yych = *++YYCURSOR;
 2544: 		if (yych <= 'W') {
 2545: 			if (yych == 'T') goto yy534;
 2546: 			if (yych <= 'V') goto yy186;
 2547: 			goto yy535;
 2548: 		} else {
 2549: 			if (yych <= 't') {
 2550: 				if (yych <= 's') goto yy186;
 2551: 				goto yy534;
 2552: 			} else {
 2553: 				if (yych == 'w') goto yy535;
 2554: 				goto yy186;
 2555: 			}
 2556: 		}
 2557: yy134:
 2558: 		YYDEBUG(134, *YYCURSOR);
 2559: 		yyaccept = 0;
 2560: 		yych = *(YYMARKER = ++YYCURSOR);
 2561: 		if (yych <= ';') {
 2562: 			if (yych <= '"') {
 2563: 				if (yych <= '!') goto yy186;
 2564: 				goto yy526;
 2565: 			} else {
 2566: 				if (yych == '\'') goto yy527;
 2567: 				goto yy186;
 2568: 			}
 2569: 		} else {
 2570: 			if (yych <= 'R') {
 2571: 				if (yych <= '<') goto yy525;
 2572: 				if (yych <= 'Q') goto yy186;
 2573: 				goto yy528;
 2574: 			} else {
 2575: 				if (yych == 'r') goto yy528;
 2576: 				goto yy186;
 2577: 			}
 2578: 		}
 2579: yy135:
 2580: 		YYDEBUG(135, *YYCURSOR);
 2581: 		yych = *++YYCURSOR;
 2582: 		if (yych <= 'O') {
 2583: 			if (yych == 'L') goto yy515;
 2584: 			if (yych <= 'N') goto yy186;
 2585: 			goto yy516;
 2586: 		} else {
 2587: 			if (yych <= 'l') {
 2588: 				if (yych <= 'k') goto yy186;
 2589: 				goto yy515;
 2590: 			} else {
 2591: 				if (yych == 'o') goto yy516;
 2592: 				goto yy186;
 2593: 			}
 2594: 		}
 2595: yy136:
 2596: 		YYDEBUG(136, *YYCURSOR);
 2597: 		yych = *++YYCURSOR;
 2598: 		if (yych <= 'U') {
 2599: 			if (yych == 'R') goto yy491;
 2600: 			if (yych <= 'T') goto yy186;
 2601: 			goto yy492;
 2602: 		} else {
 2603: 			if (yych <= 'r') {
 2604: 				if (yych <= 'q') goto yy186;
 2605: 				goto yy491;
 2606: 			} else {
 2607: 				if (yych == 'u') goto yy492;
 2608: 				goto yy186;
 2609: 			}
 2610: 		}
 2611: yy137:
 2612: 		YYDEBUG(137, *YYCURSOR);
 2613: 		++YYCURSOR;
 2614: 		if ((yych = *YYCURSOR) <= '<') {
 2615: 			if (yych == '-') goto yy487;
 2616: 		} else {
 2617: 			if (yych <= '=') goto yy485;
 2618: 			if (yych <= '>') goto yy489;
 2619: 		}
 2620: yy138:
 2621: 		YYDEBUG(138, *YYCURSOR);
 2622: 		yyleng = YYCURSOR - SCNG(yy_text);
 2623: #line 1431 "Zend/zend_language_scanner.l"
 2624: 		{
 2625: 	return yytext[0];
 2626: }
 2627: #line 2628 "Zend/zend_language_scanner.c"
 2628: yy139:
 2629: 		YYDEBUG(139, *YYCURSOR);
 2630: 		++YYCURSOR;
 2631: 		yych = *YYCURSOR;
 2632: 		goto yy484;
 2633: yy140:
 2634: 		YYDEBUG(140, *YYCURSOR);
 2635: 		yyleng = YYCURSOR - SCNG(yy_text);
 2636: #line 1162 "Zend/zend_language_scanner.l"
 2637: 		{
 2638: 	zendlval->value.str.val = yytext; /* no copying - intentional */
 2639: 	zendlval->value.str.len = yyleng;
 2640: 	zendlval->type = IS_STRING;
 2641: 	HANDLE_NEWLINES(yytext, yyleng);
 2642: 	return T_WHITESPACE;
 2643: }
 2644: #line 2645 "Zend/zend_language_scanner.c"
 2645: yy141:
 2646: 		YYDEBUG(141, *YYCURSOR);
 2647: 		yych = *++YYCURSOR;
 2648: 		if (yych == ':') goto yy481;
 2649: 		goto yy138;
 2650: yy142:
 2651: 		YYDEBUG(142, *YYCURSOR);
 2652: 		++YYCURSOR;
 2653: 		YYDEBUG(143, *YYCURSOR);
 2654: 		yyleng = YYCURSOR - SCNG(yy_text);
 2655: #line 1191 "Zend/zend_language_scanner.l"
 2656: 		{
 2657: 	return T_NS_SEPARATOR;
 2658: }
 2659: #line 2660 "Zend/zend_language_scanner.c"
 2660: yy144:
 2661: 		YYDEBUG(144, *YYCURSOR);
 2662: 		yych = *++YYCURSOR;
 2663: 		if (yych <= 'E') {
 2664: 			if (yych == 'A') goto yy469;
 2665: 			if (yych <= 'D') goto yy186;
 2666: 			goto yy470;
 2667: 		} else {
 2668: 			if (yych <= 'a') {
 2669: 				if (yych <= '`') goto yy186;
 2670: 				goto yy469;
 2671: 			} else {
 2672: 				if (yych == 'e') goto yy470;
 2673: 				goto yy186;
 2674: 			}
 2675: 		}
 2676: yy145:
 2677: 		YYDEBUG(145, *YYCURSOR);
 2678: 		yych = *++YYCURSOR;
 2679: 		if (yych == 'A') goto yy466;
 2680: 		if (yych == 'a') goto yy466;
 2681: 		goto yy186;
 2682: yy146:
 2683: 		YYDEBUG(146, *YYCURSOR);
 2684: 		yyaccept = 1;
 2685: 		yych = *(YYMARKER = ++YYCURSOR);
 2686: 		if (yych <= 'S') {
 2687: 			if (yych <= 'D') {
 2688: 				if (yych <= ' ') {
 2689: 					if (yych == '\t') goto yy391;
 2690: 					if (yych <= 0x1F) goto yy138;
 2691: 					goto yy391;
 2692: 				} else {
 2693: 					if (yych <= '@') goto yy138;
 2694: 					if (yych == 'C') goto yy138;
 2695: 					goto yy391;
 2696: 				}
 2697: 			} else {
 2698: 				if (yych <= 'I') {
 2699: 					if (yych == 'F') goto yy391;
 2700: 					if (yych <= 'H') goto yy138;
 2701: 					goto yy391;
 2702: 				} else {
 2703: 					if (yych == 'O') goto yy391;
 2704: 					if (yych <= 'Q') goto yy138;
 2705: 					goto yy391;
 2706: 				}
 2707: 			}
 2708: 		} else {
 2709: 			if (yych <= 'f') {
 2710: 				if (yych <= 'b') {
 2711: 					if (yych == 'U') goto yy391;
 2712: 					if (yych <= '`') goto yy138;
 2713: 					goto yy391;
 2714: 				} else {
 2715: 					if (yych == 'd') goto yy391;
 2716: 					if (yych <= 'e') goto yy138;
 2717: 					goto yy391;
 2718: 				}
 2719: 			} else {
 2720: 				if (yych <= 'o') {
 2721: 					if (yych == 'i') goto yy391;
 2722: 					if (yych <= 'n') goto yy138;
 2723: 					goto yy391;
 2724: 				} else {
 2725: 					if (yych <= 's') {
 2726: 						if (yych <= 'q') goto yy138;
 2727: 						goto yy391;
 2728: 					} else {
 2729: 						if (yych == 'u') goto yy391;
 2730: 						goto yy138;
 2731: 					}
 2732: 				}
 2733: 			}
 2734: 		}
 2735: yy147:
 2736: 		YYDEBUG(147, *YYCURSOR);
 2737: 		yych = *++YYCURSOR;
 2738: 		if (yych <= 'S') {
 2739: 			if (yych == 'N') goto yy382;
 2740: 			if (yych <= 'R') goto yy186;
 2741: 			goto yy383;
 2742: 		} else {
 2743: 			if (yych <= 'n') {
 2744: 				if (yych <= 'm') goto yy186;
 2745: 				goto yy382;
 2746: 			} else {
 2747: 				if (yych == 's') goto yy383;
 2748: 				goto yy186;
 2749: 			}
 2750: 		}
 2751: yy148:
 2752: 		YYDEBUG(148, *YYCURSOR);
 2753: 		yych = *++YYCURSOR;
 2754: 		if (yych == '_') goto yy300;
 2755: 		goto yy186;
 2756: yy149:
 2757: 		YYDEBUG(149, *YYCURSOR);
 2758: 		yych = *++YYCURSOR;
 2759: 		if (yych <= '<') goto yy138;
 2760: 		if (yych <= '=') goto yy294;
 2761: 		if (yych <= '>') goto yy296;
 2762: 		goto yy138;
 2763: yy150:
 2764: 		YYDEBUG(150, *YYCURSOR);
 2765: 		yych = *++YYCURSOR;
 2766: 		if (yych == 'I') goto yy290;
 2767: 		if (yych == 'i') goto yy290;
 2768: 		goto yy186;
 2769: yy151:
 2770: 		YYDEBUG(151, *YYCURSOR);
 2771: 		yych = *++YYCURSOR;
 2772: 		if (yych == '+') goto yy288;
 2773: 		if (yych == '=') goto yy286;
 2774: 		goto yy138;
 2775: yy152:
 2776: 		YYDEBUG(152, *YYCURSOR);
 2777: 		yych = *++YYCURSOR;
 2778: 		if (yych == '=') goto yy283;
 2779: 		goto yy138;
 2780: yy153:
 2781: 		YYDEBUG(153, *YYCURSOR);
 2782: 		yyaccept = 1;
 2783: 		yych = *(YYMARKER = ++YYCURSOR);
 2784: 		if (yych <= ';') {
 2785: 			if (yych == '/') goto yy255;
 2786: 			goto yy138;
 2787: 		} else {
 2788: 			if (yych <= '<') goto yy253;
 2789: 			if (yych <= '=') goto yy256;
 2790: 			if (yych <= '>') goto yy258;
 2791: 			goto yy138;
 2792: 		}
 2793: yy154:
 2794: 		YYDEBUG(154, *YYCURSOR);
 2795: 		yych = *++YYCURSOR;
 2796: 		if (yych <= '<') goto yy138;
 2797: 		if (yych <= '=') goto yy249;
 2798: 		if (yych <= '>') goto yy247;
 2799: 		goto yy138;
 2800: yy155:
 2801: 		YYDEBUG(155, *YYCURSOR);
 2802: 		yych = *++YYCURSOR;
 2803: 		if (yych == '=') goto yy245;
 2804: 		goto yy138;
 2805: yy156:
 2806: 		YYDEBUG(156, *YYCURSOR);
 2807: 		yych = *++YYCURSOR;
 2808: 		if (yych <= '.') {
 2809: 			if (yych == '*') goto yy237;
 2810: 			goto yy138;
 2811: 		} else {
 2812: 			if (yych <= '/') goto yy239;
 2813: 			if (yych == '=') goto yy240;
 2814: 			goto yy138;
 2815: 		}
 2816: yy157:
 2817: 		YYDEBUG(157, *YYCURSOR);
 2818: 		yych = *++YYCURSOR;
 2819: 		if (yych <= '/') goto yy138;
 2820: 		if (yych <= '9') goto yy233;
 2821: 		if (yych == '=') goto yy235;
 2822: 		goto yy138;
 2823: yy158:
 2824: 		YYDEBUG(158, *YYCURSOR);
 2825: 		yych = *++YYCURSOR;
 2826: 		if (yych <= '<') goto yy138;
 2827: 		if (yych <= '=') goto yy229;
 2828: 		if (yych <= '>') goto yy227;
 2829: 		goto yy138;
 2830: yy159:
 2831: 		YYDEBUG(159, *YYCURSOR);
 2832: 		yych = *++YYCURSOR;
 2833: 		if (yych == '&') goto yy223;
 2834: 		if (yych == '=') goto yy225;
 2835: 		goto yy138;
 2836: yy160:
 2837: 		YYDEBUG(160, *YYCURSOR);
 2838: 		yych = *++YYCURSOR;
 2839: 		if (yych == '=') goto yy221;
 2840: 		if (yych == '|') goto yy219;
 2841: 		goto yy138;
 2842: yy161:
 2843: 		YYDEBUG(161, *YYCURSOR);
 2844: 		yych = *++YYCURSOR;
 2845: 		if (yych == '=') goto yy217;
 2846: 		goto yy138;
 2847: yy162:
 2848: 		YYDEBUG(162, *YYCURSOR);
 2849: 		yych = *++YYCURSOR;
 2850: 		if (yych == 'R') goto yy215;
 2851: 		if (yych == 'r') goto yy215;
 2852: 		goto yy186;
 2853: yy163:
 2854: 		YYDEBUG(163, *YYCURSOR);
 2855: 		yych = *++YYCURSOR;
 2856: 		if (yych == 'O') goto yy212;
 2857: 		if (yych == 'o') goto yy212;
 2858: 		goto yy186;
 2859: yy164:
 2860: 		YYDEBUG(164, *YYCURSOR);
 2861: 		yych = *++YYCURSOR;
 2862: 		if (yych <= '_') {
 2863: 			if (yych <= '@') goto yy138;
 2864: 			if (yych <= 'Z') goto yy209;
 2865: 			if (yych <= '^') goto yy138;
 2866: 			goto yy209;
 2867: 		} else {
 2868: 			if (yych <= '`') goto yy138;
 2869: 			if (yych <= 'z') goto yy209;
 2870: 			if (yych <= '~') goto yy138;
 2871: 			goto yy209;
 2872: 		}
 2873: yy165:
 2874: 		YYDEBUG(165, *YYCURSOR);
 2875: 		yych = *++YYCURSOR;
 2876: 		goto yy138;
 2877: yy166:
 2878: 		YYDEBUG(166, *YYCURSOR);
 2879: 		yych = *++YYCURSOR;
 2880: 		if (yych == '>') goto yy205;
 2881: 		goto yy138;
 2882: yy167:
 2883: 		YYDEBUG(167, *YYCURSOR);
 2884: 		++YYCURSOR;
 2885: 		YYDEBUG(168, *YYCURSOR);
 2886: 		yyleng = YYCURSOR - SCNG(yy_text);
 2887: #line 1436 "Zend/zend_language_scanner.l"
 2888: 		{
 2889: 	yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
 2890: 	return '{';
 2891: }
 2892: #line 2893 "Zend/zend_language_scanner.c"
 2893: yy169:
 2894: 		YYDEBUG(169, *YYCURSOR);
 2895: 		++YYCURSOR;
 2896: 		YYDEBUG(170, *YYCURSOR);
 2897: 		yyleng = YYCURSOR - SCNG(yy_text);
 2898: #line 1448 "Zend/zend_language_scanner.l"
 2899: 		{
 2900: 	RESET_DOC_COMMENT();
 2901: 	if (!zend_stack_is_empty(&SCNG(state_stack))) {
 2902: 		yy_pop_state(TSRMLS_C);
 2903: 	}
 2904: 	return '}';
 2905: }
 2906: #line 2907 "Zend/zend_language_scanner.c"
 2907: yy171:
 2908: 		YYDEBUG(171, *YYCURSOR);
 2909: 		yyaccept = 2;
 2910: 		yych = *(YYMARKER = ++YYCURSOR);
 2911: 		if (yych <= 'E') {
 2912: 			if (yych <= '9') {
 2913: 				if (yych == '.') goto yy187;
 2914: 				if (yych >= '0') goto yy190;
 2915: 			} else {
 2916: 				if (yych == 'B') goto yy198;
 2917: 				if (yych >= 'E') goto yy192;
 2918: 			}
 2919: 		} else {
 2920: 			if (yych <= 'b') {
 2921: 				if (yych == 'X') goto yy197;
 2922: 				if (yych >= 'b') goto yy198;
 2923: 			} else {
 2924: 				if (yych <= 'e') {
 2925: 					if (yych >= 'e') goto yy192;
 2926: 				} else {
 2927: 					if (yych == 'x') goto yy197;
 2928: 				}
 2929: 			}
 2930: 		}
 2931: yy172:
 2932: 		YYDEBUG(172, *YYCURSOR);
 2933: 		yyleng = YYCURSOR - SCNG(yy_text);
 2934: #line 1498 "Zend/zend_language_scanner.l"
 2935: 		{
 2936: 	if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
 2937: 		zendlval->value.lval = strtol(yytext, NULL, 0);
 2938: 	} else {
 2939: 		errno = 0;
 2940: 		zendlval->value.lval = strtol(yytext, NULL, 0);
 2941: 		if (errno == ERANGE) { /* Overflow */
 2942: 			if (yytext[0] == '0') { /* octal overflow */
 2943: 				zendlval->value.dval = zend_oct_strtod(yytext, NULL);
 2944: 			} else {
 2945: 				zendlval->value.dval = zend_strtod(yytext, NULL);
 2946: 			}
 2947: 			zendlval->type = IS_DOUBLE;
 2948: 			return T_DNUMBER;
 2949: 		}
 2950: 	}
 2951: 
 2952: 	zendlval->type = IS_LONG;
 2953: 	return T_LNUMBER;
 2954: }
 2955: #line 2956 "Zend/zend_language_scanner.c"
 2956: yy173:
 2957: 		YYDEBUG(173, *YYCURSOR);
 2958: 		yyaccept = 2;
 2959: 		yych = *(YYMARKER = ++YYCURSOR);
 2960: 		if (yych <= '9') {
 2961: 			if (yych == '.') goto yy187;
 2962: 			if (yych <= '/') goto yy172;
 2963: 			goto yy190;
 2964: 		} else {
 2965: 			if (yych <= 'E') {
 2966: 				if (yych <= 'D') goto yy172;
 2967: 				goto yy192;
 2968: 			} else {
 2969: 				if (yych == 'e') goto yy192;
 2970: 				goto yy172;
 2971: 			}
 2972: 		}
 2973: yy174:
 2974: 		YYDEBUG(174, *YYCURSOR);
 2975: 		yych = *++YYCURSOR;
 2976: 		goto yy186;
 2977: yy175:
 2978: 		YYDEBUG(175, *YYCURSOR);
 2979: 		++YYCURSOR;
 2980: yy176:
 2981: 		YYDEBUG(176, *YYCURSOR);
 2982: 		yyleng = YYCURSOR - SCNG(yy_text);
 2983: #line 1895 "Zend/zend_language_scanner.l"
 2984: 		{
 2985: 	while (YYCURSOR < YYLIMIT) {
 2986: 		switch (*YYCURSOR++) {
 2987: 			case '\r':
 2988: 				if (*YYCURSOR == '\n') {
 2989: 					YYCURSOR++;
 2990: 				}
 2991: 				/* fall through */
 2992: 			case '\n':
 2993: 				CG(zend_lineno)++;
 2994: 				break;
 2995: 			case '%':
 2996: 				if (!CG(asp_tags)) {
 2997: 					continue;
 2998: 				}
 2999: 				/* fall through */
 3000: 			case '?':
 3001: 				if (*YYCURSOR == '>') {
 3002: 					YYCURSOR--;
 3003: 					break;
 3004: 				}
 3005: 				/* fall through */
 3006: 			default:
 3007: 				continue;
 3008: 		}
 3009: 
 3010: 		break;
 3011: 	}
 3012: 
 3013: 	yyleng = YYCURSOR - SCNG(yy_text);
 3014: 
 3015: 	return T_COMMENT;
 3016: }
 3017: #line 3018 "Zend/zend_language_scanner.c"
 3018: yy177:
 3019: 		YYDEBUG(177, *YYCURSOR);
 3020: 		++YYCURSOR;
 3021: yy178:
 3022: 		YYDEBUG(178, *YYCURSOR);
 3023: 		yyleng = YYCURSOR - SCNG(yy_text);
 3024: #line 1986 "Zend/zend_language_scanner.l"
 3025: 		{
 3026: 	register char *s, *t;
 3027: 	char *end;
 3028: 	int bprefix = (yytext[0] != '\'') ? 1 : 0;
 3029: 
 3030: 	while (1) {
 3031: 		if (YYCURSOR < YYLIMIT) {
 3032: 			if (*YYCURSOR == '\'') {
 3033: 				YYCURSOR++;
 3034: 				yyleng = YYCURSOR - SCNG(yy_text);
 3035: 
 3036: 				break;
 3037: 			} else if (*YYCURSOR++ == '\\' && YYCURSOR < YYLIMIT) {
 3038: 				YYCURSOR++;
 3039: 			}
 3040: 		} else {
 3041: 			yyleng = YYLIMIT - SCNG(yy_text);
 3042: 
 3043: 			/* Unclosed single quotes; treat similar to double quotes, but without a separate token
 3044: 			 * for ' (unrecognized by parser), instead of old flex fallback to "Unexpected character..."
 3045: 			 * rule, which continued in ST_IN_SCRIPTING state after the quote */
 3046: 			return T_ENCAPSED_AND_WHITESPACE;
 3047: 		}
 3048: 	}
 3049: 
 3050: 	zendlval->value.str.val = estrndup(yytext+bprefix+1, yyleng-bprefix-2);
 3051: 	zendlval->value.str.len = yyleng-bprefix-2;
 3052: 	zendlval->type = IS_STRING;
 3053: 
 3054: 	/* convert escape sequences */
 3055: 	s = t = zendlval->value.str.val;
 3056: 	end = s+zendlval->value.str.len;
 3057: 	while (s<end) {
 3058: 		if (*s=='\\') {
 3059: 			s++;
 3060: 
 3061: 			switch(*s) {
 3062: 				case '\\':
 3063: 				case '\'':
 3064: 					*t++ = *s;
 3065: 					zendlval->value.str.len--;
 3066: 					break;
 3067: 				default:
 3068: 					*t++ = '\\';
 3069: 					*t++ = *s;
 3070: 					break;
 3071: 			}
 3072: 		} else {
 3073: 			*t++ = *s;
 3074: 		}
 3075: 
 3076: 		if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
 3077: 			CG(zend_lineno)++;
 3078: 		}
 3079: 		s++;
 3080: 	}
 3081: 	*t = 0;
 3082: 
 3083: 	if (SCNG(output_filter)) {
 3084: 		size_t sz = 0;
 3085: 		s = zendlval->value.str.val;
 3086: 		SCNG(output_filter)((unsigned char **)&(zendlval->value.str.val), &sz, (unsigned char *)s, (size_t)zendlval->value.str.len TSRMLS_CC);
 3087: 		zendlval->value.str.len = sz;
 3088: 		efree(s);
 3089: 	}
 3090: 	return T_CONSTANT_ENCAPSED_STRING;
 3091: }
 3092: #line 3093 "Zend/zend_language_scanner.c"
 3093: yy179:
 3094: 		YYDEBUG(179, *YYCURSOR);
 3095: 		++YYCURSOR;
 3096: yy180:
 3097: 		YYDEBUG(180, *YYCURSOR);
 3098: 		yyleng = YYCURSOR - SCNG(yy_text);
 3099: #line 2055 "Zend/zend_language_scanner.l"
 3100: 		{
 3101: 	int bprefix = (yytext[0] != '"') ? 1 : 0;
 3102: 
 3103: 	while (YYCURSOR < YYLIMIT) {
 3104: 		switch (*YYCURSOR++) {
 3105: 			case '"':
 3106: 				yyleng = YYCURSOR - SCNG(yy_text);
 3107: 				zend_scan_escape_string(zendlval, yytext+bprefix+1, yyleng-bprefix-2, '"' TSRMLS_CC);
 3108: 				return T_CONSTANT_ENCAPSED_STRING;
 3109: 			case '$':
 3110: 				if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
 3111: 					break;
 3112: 				}
 3113: 				continue;
 3114: 			case '{':
 3115: 				if (*YYCURSOR == '$') {
 3116: 					break;
 3117: 				}
 3118: 				continue;
 3119: 			case '\\':
 3120: 				if (YYCURSOR < YYLIMIT) {
 3121: 					YYCURSOR++;
 3122: 				}
 3123: 				/* fall through */
 3124: 			default:
 3125: 				continue;
 3126: 		}
 3127: 
 3128: 		YYCURSOR--;
 3129: 		break;
 3130: 	}
 3131: 
 3132: 	/* Remember how much was scanned to save rescanning */
 3133: 	SET_DOUBLE_QUOTES_SCANNED_LENGTH(YYCURSOR - SCNG(yy_text) - yyleng);
 3134: 
 3135: 	YYCURSOR = SCNG(yy_text) + yyleng;
 3136: 
 3137: 	BEGIN(ST_DOUBLE_QUOTES);
 3138: 	return '"';
 3139: }
 3140: #line 3141 "Zend/zend_language_scanner.c"
 3141: yy181:
 3142: 		YYDEBUG(181, *YYCURSOR);
 3143: 		++YYCURSOR;
 3144: 		YYDEBUG(182, *YYCURSOR);
 3145: 		yyleng = YYCURSOR - SCNG(yy_text);
 3146: #line 2146 "Zend/zend_language_scanner.l"
 3147: 		{
 3148: 	BEGIN(ST_BACKQUOTE);
 3149: 	return '`';
 3150: }
 3151: #line 3152 "Zend/zend_language_scanner.c"
 3152: yy183:
 3153: 		YYDEBUG(183, *YYCURSOR);
 3154: 		++YYCURSOR;
 3155: 		YYDEBUG(184, *YYCURSOR);
 3156: 		yyleng = YYCURSOR - SCNG(yy_text);
 3157: #line 2404 "Zend/zend_language_scanner.l"
 3158: 		{
 3159: 	if (YYCURSOR > YYLIMIT) {
 3160: 		return 0;
 3161: 	}
 3162: 
 3163: 	zend_error(E_COMPILE_WARNING,"Unexpected character in input:  '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);
 3164: 	goto restart;
 3165: }
 3166: #line 3167 "Zend/zend_language_scanner.c"
 3167: yy185:
 3168: 		YYDEBUG(185, *YYCURSOR);
 3169: 		++YYCURSOR;
 3170: 		YYFILL(1);
 3171: 		yych = *YYCURSOR;
 3172: yy186:
 3173: 		YYDEBUG(186, *YYCURSOR);
 3174: 		if (yybm[0+yych] & 4) {
 3175: 			goto yy185;
 3176: 		}
 3177: 		goto yy124;
 3178: yy187:
 3179: 		YYDEBUG(187, *YYCURSOR);
 3180: 		yyaccept = 3;
 3181: 		YYMARKER = ++YYCURSOR;
 3182: 		YYFILL(3);
 3183: 		yych = *YYCURSOR;
 3184: 		YYDEBUG(188, *YYCURSOR);
 3185: 		if (yybm[0+yych] & 8) {
 3186: 			goto yy187;
 3187: 		}
 3188: 		if (yych == 'E') goto yy192;
 3189: 		if (yych == 'e') goto yy192;
 3190: yy189:
 3191: 		YYDEBUG(189, *YYCURSOR);
 3192: 		yyleng = YYCURSOR - SCNG(yy_text);
 3193: #line 1563 "Zend/zend_language_scanner.l"
 3194: 		{
 3195: 	zendlval->value.dval = zend_strtod(yytext, NULL);
 3196: 	zendlval->type = IS_DOUBLE;
 3197: 	return T_DNUMBER;
 3198: }
 3199: #line 3200 "Zend/zend_language_scanner.c"
 3200: yy190:
 3201: 		YYDEBUG(190, *YYCURSOR);
 3202: 		yyaccept = 2;
 3203: 		YYMARKER = ++YYCURSOR;
 3204: 		YYFILL(3);
 3205: 		yych = *YYCURSOR;
 3206: 		YYDEBUG(191, *YYCURSOR);
 3207: 		if (yych <= '9') {
 3208: 			if (yych == '.') goto yy187;
 3209: 			if (yych <= '/') goto yy172;
 3210: 			goto yy190;
 3211: 		} else {
 3212: 			if (yych <= 'E') {
 3213: 				if (yych <= 'D') goto yy172;
 3214: 			} else {
 3215: 				if (yych != 'e') goto yy172;
 3216: 			}
 3217: 		}
 3218: yy192:
 3219: 		YYDEBUG(192, *YYCURSOR);
 3220: 		yych = *++YYCURSOR;
 3221: 		if (yych <= ',') {
 3222: 			if (yych == '+') goto yy194;
 3223: 		} else {
 3224: 			if (yych <= '-') goto yy194;
 3225: 			if (yych <= '/') goto yy193;
 3226: 			if (yych <= '9') goto yy195;
 3227: 		}
 3228: yy193:
 3229: 		YYDEBUG(193, *YYCURSOR);
 3230: 		YYCURSOR = YYMARKER;
 3231: 		if (yyaccept <= 2) {
 3232: 			if (yyaccept <= 1) {
 3233: 				if (yyaccept <= 0) {
 3234: 					goto yy124;
 3235: 				} else {
 3236: 					goto yy138;
 3237: 				}
 3238: 			} else {
 3239: 				goto yy172;
 3240: 			}
 3241: 		} else {
 3242: 			if (yyaccept <= 4) {
 3243: 				if (yyaccept <= 3) {
 3244: 					goto yy189;
 3245: 				} else {
 3246: 					goto yy238;
 3247: 				}
 3248: 			} else {
 3249: 				goto yy254;
 3250: 			}
 3251: 		}
 3252: yy194:
 3253: 		YYDEBUG(194, *YYCURSOR);
 3254: 		yych = *++YYCURSOR;
 3255: 		if (yych <= '/') goto yy193;
 3256: 		if (yych >= ':') goto yy193;
 3257: yy195:
 3258: 		YYDEBUG(195, *YYCURSOR);
 3259: 		++YYCURSOR;
 3260: 		YYFILL(1);
 3261: 		yych = *YYCURSOR;
 3262: 		YYDEBUG(196, *YYCURSOR);
 3263: 		if (yych <= '/') goto yy189;
 3264: 		if (yych <= '9') goto yy195;
 3265: 		goto yy189;
 3266: yy197:
 3267: 		YYDEBUG(197, *YYCURSOR);
 3268: 		yych = *++YYCURSOR;
 3269: 		if (yybm[0+yych] & 32) {
 3270: 			goto yy202;
 3271: 		}
 3272: 		goto yy193;
 3273: yy198:
 3274: 		YYDEBUG(198, *YYCURSOR);
 3275: 		yych = *++YYCURSOR;
 3276: 		if (yybm[0+yych] & 16) {
 3277: 			goto yy199;
 3278: 		}
 3279: 		goto yy193;
 3280: yy199:
 3281: 		YYDEBUG(199, *YYCURSOR);
 3282: 		++YYCURSOR;
 3283: 		YYFILL(1);
 3284: 		yych = *YYCURSOR;
 3285: 		YYDEBUG(200, *YYCURSOR);
 3286: 		if (yybm[0+yych] & 16) {
 3287: 			goto yy199;
 3288: 		}
 3289: 		YYDEBUG(201, *YYCURSOR);
 3290: 		yyleng = YYCURSOR - SCNG(yy_text);
 3291: #line 1473 "Zend/zend_language_scanner.l"
 3292: 		{
 3293: 	char *bin = yytext + 2; /* Skip "0b" */
 3294: 	int len = yyleng - 2;
 3295: 
 3296: 	/* Skip any leading 0s */
 3297: 	while (*bin == '0') {
 3298: 		++bin;
 3299: 		--len;
 3300: 	}
 3301: 
 3302: 	if (len < SIZEOF_LONG * 8) {
 3303: 		if (len == 0) {
 3304: 			zendlval->value.lval = 0;
 3305: 		} else {
 3306: 			zendlval->value.lval = strtol(bin, NULL, 2);
 3307: 		}
 3308: 		zendlval->type = IS_LONG;
 3309: 		return T_LNUMBER;
 3310: 	} else {
 3311: 		zendlval->value.dval = zend_bin_strtod(bin, NULL);
 3312: 		zendlval->type = IS_DOUBLE;
 3313: 		return T_DNUMBER;
 3314: 	}
 3315: }
 3316: #line 3317 "Zend/zend_language_scanner.c"
 3317: yy202:
 3318: 		YYDEBUG(202, *YYCURSOR);
 3319: 		++YYCURSOR;
 3320: 		YYFILL(1);
 3321: 		yych = *YYCURSOR;
 3322: 		YYDEBUG(203, *YYCURSOR);
 3323: 		if (yybm[0+yych] & 32) {
 3324: 			goto yy202;
 3325: 		}
 3326: 		YYDEBUG(204, *YYCURSOR);
 3327: 		yyleng = YYCURSOR - SCNG(yy_text);
 3328: #line 1519 "Zend/zend_language_scanner.l"
 3329: 		{
 3330: 	char *hex = yytext + 2; /* Skip "0x" */
 3331: 	int len = yyleng - 2;
 3332: 
 3333: 	/* Skip any leading 0s */
 3334: 	while (*hex == '0') {
 3335: 		hex++;
 3336: 		len--;
 3337: 	}
 3338: 
 3339: 	if (len < SIZEOF_LONG * 2 || (len == SIZEOF_LONG * 2 && *hex <= '7')) {
 3340: 		if (len == 0) {
 3341: 			zendlval->value.lval = 0;
 3342: 		} else {
 3343: 			zendlval->value.lval = strtol(hex, NULL, 16);
 3344: 		}
 3345: 		zendlval->type = IS_LONG;
 3346: 		return T_LNUMBER;
 3347: 	} else {
 3348: 		zendlval->value.dval = zend_hex_strtod(hex, NULL);
 3349: 		zendlval->type = IS_DOUBLE;
 3350: 		return T_DNUMBER;
 3351: 	}
 3352: }
 3353: #line 3354 "Zend/zend_language_scanner.c"
 3354: yy205:
 3355: 		YYDEBUG(205, *YYCURSOR);
 3356: 		++YYCURSOR;
 3357: 		if ((yych = *YYCURSOR) == '\n') goto yy207;
 3358: 		if (yych == '\r') goto yy208;
 3359: yy206:
 3360: 		YYDEBUG(206, *YYCURSOR);
 3361: 		yyleng = YYCURSOR - SCNG(yy_text);
 3362: #line 1963 "Zend/zend_language_scanner.l"
 3363: 		{
 3364: 	zendlval->value.str.val = yytext; /* no copying - intentional */
 3365: 	zendlval->value.str.len = yyleng;
 3366: 	zendlval->type = IS_STRING;
 3367: 	BEGIN(INITIAL);
 3368: 	return T_CLOSE_TAG;  /* implicit ';' at php-end tag */
 3369: }
 3370: #line 3371 "Zend/zend_language_scanner.c"
 3371: yy207:
 3372: 		YYDEBUG(207, *YYCURSOR);
 3373: 		yych = *++YYCURSOR;
 3374: 		goto yy206;
 3375: yy208:
 3376: 		YYDEBUG(208, *YYCURSOR);
 3377: 		yych = *++YYCURSOR;
 3378: 		if (yych == '\n') goto yy207;
 3379: 		goto yy206;
 3380: yy209:
 3381: 		YYDEBUG(209, *YYCURSOR);
 3382: 		++YYCURSOR;
 3383: 		YYFILL(1);
 3384: 		yych = *YYCURSOR;
 3385: 		YYDEBUG(210, *YYCURSOR);
 3386: 		if (yych <= '^') {
 3387: 			if (yych <= '9') {
 3388: 				if (yych >= '0') goto yy209;
 3389: 			} else {
 3390: 				if (yych <= '@') goto yy211;
 3391: 				if (yych <= 'Z') goto yy209;
 3392: 			}
 3393: 		} else {
 3394: 			if (yych <= '`') {
 3395: 				if (yych <= '_') goto yy209;
 3396: 			} else {
 3397: 				if (yych <= 'z') goto yy209;
 3398: 				if (yych >= 0x7F) goto yy209;
 3399: 			}
 3400: 		}
 3401: yy211:
 3402: 		YYDEBUG(211, *YYCURSOR);
 3403: 		yyleng = YYCURSOR - SCNG(yy_text);
 3404: #line 1865 "Zend/zend_language_scanner.l"
 3405: 		{
 3406: 	zend_copy_value(zendlval, (yytext+1), (yyleng-1));
 3407: 	zendlval->type = IS_STRING;
 3408: 	return T_VARIABLE;
 3409: }
 3410: #line 3411 "Zend/zend_language_scanner.c"
 3411: yy212:
 3412: 		YYDEBUG(212, *YYCURSOR);
 3413: 		yych = *++YYCURSOR;
 3414: 		if (yych == 'R') goto yy213;
 3415: 		if (yych != 'r') goto yy186;
 3416: yy213:
 3417: 		YYDEBUG(213, *YYCURSOR);
 3418: 		++YYCURSOR;
 3419: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 3420: 			goto yy185;
 3421: 		}
 3422: 		YYDEBUG(214, *YYCURSOR);
 3423: 		yyleng = YYCURSOR - SCNG(yy_text);
 3424: #line 1419 "Zend/zend_language_scanner.l"
 3425: 		{
 3426: 	return T_LOGICAL_XOR;
 3427: }
 3428: #line 3429 "Zend/zend_language_scanner.c"
 3429: yy215:
 3430: 		YYDEBUG(215, *YYCURSOR);
 3431: 		++YYCURSOR;
 3432: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 3433: 			goto yy185;
 3434: 		}
 3435: 		YYDEBUG(216, *YYCURSOR);
 3436: 		yyleng = YYCURSOR - SCNG(yy_text);
 3437: #line 1411 "Zend/zend_language_scanner.l"
 3438: 		{
 3439: 	return T_LOGICAL_OR;
 3440: }
 3441: #line 3442 "Zend/zend_language_scanner.c"
 3442: yy217:
 3443: 		YYDEBUG(217, *YYCURSOR);
 3444: 		++YYCURSOR;
 3445: 		YYDEBUG(218, *YYCURSOR);
 3446: 		yyleng = YYCURSOR - SCNG(yy_text);
 3447: #line 1399 "Zend/zend_language_scanner.l"
 3448: 		{
 3449: 	return T_XOR_EQUAL;
 3450: }
 3451: #line 3452 "Zend/zend_language_scanner.c"
 3452: yy219:
 3453: 		YYDEBUG(219, *YYCURSOR);
 3454: 		++YYCURSOR;
 3455: 		YYDEBUG(220, *YYCURSOR);
 3456: 		yyleng = YYCURSOR - SCNG(yy_text);
 3457: #line 1403 "Zend/zend_language_scanner.l"
 3458: 		{
 3459: 	return T_BOOLEAN_OR;
 3460: }
 3461: #line 3462 "Zend/zend_language_scanner.c"
 3462: yy221:
 3463: 		YYDEBUG(221, *YYCURSOR);
 3464: 		++YYCURSOR;
 3465: 		YYDEBUG(222, *YYCURSOR);
 3466: 		yyleng = YYCURSOR - SCNG(yy_text);
 3467: #line 1395 "Zend/zend_language_scanner.l"
 3468: 		{
 3469: 	return T_OR_EQUAL;
 3470: }
 3471: #line 3472 "Zend/zend_language_scanner.c"
 3472: yy223:
 3473: 		YYDEBUG(223, *YYCURSOR);
 3474: 		++YYCURSOR;
 3475: 		YYDEBUG(224, *YYCURSOR);
 3476: 		yyleng = YYCURSOR - SCNG(yy_text);
 3477: #line 1407 "Zend/zend_language_scanner.l"
 3478: 		{
 3479: 	return T_BOOLEAN_AND;
 3480: }
 3481: #line 3482 "Zend/zend_language_scanner.c"
 3482: yy225:
 3483: 		YYDEBUG(225, *YYCURSOR);
 3484: 		++YYCURSOR;
 3485: 		YYDEBUG(226, *YYCURSOR);
 3486: 		yyleng = YYCURSOR - SCNG(yy_text);
 3487: #line 1391 "Zend/zend_language_scanner.l"
 3488: 		{
 3489: 	return T_AND_EQUAL;
 3490: }
 3491: #line 3492 "Zend/zend_language_scanner.c"
 3492: yy227:
 3493: 		YYDEBUG(227, *YYCURSOR);
 3494: 		++YYCURSOR;
 3495: 		if ((yych = *YYCURSOR) == '\n') goto yy231;
 3496: 		if (yych == '\r') goto yy232;
 3497: yy228:
 3498: 		YYDEBUG(228, *YYCURSOR);
 3499: 		yyleng = YYCURSOR - SCNG(yy_text);
 3500: #line 1972 "Zend/zend_language_scanner.l"
 3501: 		{
 3502: 	if (CG(asp_tags)) {
 3503: 		BEGIN(INITIAL);
 3504: 		zendlval->value.str.len = yyleng;
 3505: 		zendlval->type = IS_STRING;
 3506: 		zendlval->value.str.val = yytext; /* no copying - intentional */
 3507: 		return T_CLOSE_TAG;  /* implicit ';' at php-end tag */
 3508: 	} else {
 3509: 		yyless(1);
 3510: 		return yytext[0];
 3511: 	}
 3512: }
 3513: #line 3514 "Zend/zend_language_scanner.c"
 3514: yy229:
 3515: 		YYDEBUG(229, *YYCURSOR);
 3516: 		++YYCURSOR;
 3517: 		YYDEBUG(230, *YYCURSOR);
 3518: 		yyleng = YYCURSOR - SCNG(yy_text);
 3519: #line 1379 "Zend/zend_language_scanner.l"
 3520: 		{
 3521: 	return T_MOD_EQUAL;
 3522: }
 3523: #line 3524 "Zend/zend_language_scanner.c"
 3524: yy231:
 3525: 		YYDEBUG(231, *YYCURSOR);
 3526: 		yych = *++YYCURSOR;
 3527: 		goto yy228;
 3528: yy232:
 3529: 		YYDEBUG(232, *YYCURSOR);
 3530: 		yych = *++YYCURSOR;
 3531: 		if (yych == '\n') goto yy231;
 3532: 		goto yy228;
 3533: yy233:
 3534: 		YYDEBUG(233, *YYCURSOR);
 3535: 		yyaccept = 3;
 3536: 		YYMARKER = ++YYCURSOR;
 3537: 		YYFILL(3);
 3538: 		yych = *YYCURSOR;
 3539: 		YYDEBUG(234, *YYCURSOR);
 3540: 		if (yych <= 'D') {
 3541: 			if (yych <= '/') goto yy189;
 3542: 			if (yych <= '9') goto yy233;
 3543: 			goto yy189;
 3544: 		} else {
 3545: 			if (yych <= 'E') goto yy192;
 3546: 			if (yych == 'e') goto yy192;
 3547: 			goto yy189;
 3548: 		}
 3549: yy235:
 3550: 		YYDEBUG(235, *YYCURSOR);
 3551: 		++YYCURSOR;
 3552: 		YYDEBUG(236, *YYCURSOR);
 3553: 		yyleng = YYCURSOR - SCNG(yy_text);
 3554: #line 1375 "Zend/zend_language_scanner.l"
 3555: 		{
 3556: 	return T_CONCAT_EQUAL;
 3557: }
 3558: #line 3559 "Zend/zend_language_scanner.c"
 3559: yy237:
 3560: 		YYDEBUG(237, *YYCURSOR);
 3561: 		yyaccept = 4;
 3562: 		yych = *(YYMARKER = ++YYCURSOR);
 3563: 		if (yych == '*') goto yy242;
 3564: yy238:
 3565: 		YYDEBUG(238, *YYCURSOR);
 3566: 		yyleng = YYCURSOR - SCNG(yy_text);
 3567: #line 1929 "Zend/zend_language_scanner.l"
 3568: 		{
 3569: 	int doc_com;
 3570: 
 3571: 	if (yyleng > 2) {
 3572: 		doc_com = 1;
 3573: 		RESET_DOC_COMMENT();
 3574: 	} else {
 3575: 		doc_com = 0;
 3576: 	}
 3577: 
 3578: 	while (YYCURSOR < YYLIMIT) {
 3579: 		if (*YYCURSOR++ == '*' && *YYCURSOR == '/') {
 3580: 			break;
 3581: 		}
 3582: 	}
 3583: 
 3584: 	if (YYCURSOR < YYLIMIT) {
 3585: 		YYCURSOR++;
 3586: 	} else {
 3587: 		zend_error(E_COMPILE_WARNING, "Unterminated comment starting line %d", CG(zend_lineno));
 3588: 	}
 3589: 
 3590: 	yyleng = YYCURSOR - SCNG(yy_text);
 3591: 	HANDLE_NEWLINES(yytext, yyleng);
 3592: 
 3593: 	if (doc_com) {
 3594: 		CG(doc_comment) = estrndup(yytext, yyleng);
 3595: 		CG(doc_comment_len) = yyleng;
 3596: 		return T_DOC_COMMENT;
 3597: 	}
 3598: 
 3599: 	return T_COMMENT;
 3600: }
 3601: #line 3602 "Zend/zend_language_scanner.c"
 3602: yy239:
 3603: 		YYDEBUG(239, *YYCURSOR);
 3604: 		yych = *++YYCURSOR;
 3605: 		goto yy176;
 3606: yy240:
 3607: 		YYDEBUG(240, *YYCURSOR);
 3608: 		++YYCURSOR;
 3609: 		YYDEBUG(241, *YYCURSOR);
 3610: 		yyleng = YYCURSOR - SCNG(yy_text);
 3611: #line 1371 "Zend/zend_language_scanner.l"
 3612: 		{
 3613: 	return T_DIV_EQUAL;
 3614: }
 3615: #line 3616 "Zend/zend_language_scanner.c"
 3616: yy242:
 3617: 		YYDEBUG(242, *YYCURSOR);
 3618: 		yych = *++YYCURSOR;
 3619: 		if (yybm[0+yych] & 64) {
 3620: 			goto yy243;
 3621: 		}
 3622: 		goto yy193;
 3623: yy243:
 3624: 		YYDEBUG(243, *YYCURSOR);
 3625: 		++YYCURSOR;
 3626: 		YYFILL(1);
 3627: 		yych = *YYCURSOR;
 3628: 		YYDEBUG(244, *YYCURSOR);
 3629: 		if (yybm[0+yych] & 64) {
 3630: 			goto yy243;
 3631: 		}
 3632: 		goto yy238;
 3633: yy245:
 3634: 		YYDEBUG(245, *YYCURSOR);
 3635: 		++YYCURSOR;
 3636: 		YYDEBUG(246, *YYCURSOR);
 3637: 		yyleng = YYCURSOR - SCNG(yy_text);
 3638: #line 1367 "Zend/zend_language_scanner.l"
 3639: 		{
 3640: 	return T_MUL_EQUAL;
 3641: }
 3642: #line 3643 "Zend/zend_language_scanner.c"
 3643: yy247:
 3644: 		YYDEBUG(247, *YYCURSOR);
 3645: 		++YYCURSOR;
 3646: 		if ((yych = *YYCURSOR) == '=') goto yy251;
 3647: 		YYDEBUG(248, *YYCURSOR);
 3648: 		yyleng = YYCURSOR - SCNG(yy_text);
 3649: #line 1427 "Zend/zend_language_scanner.l"
 3650: 		{
 3651: 	return T_SR;
 3652: }
 3653: #line 3654 "Zend/zend_language_scanner.c"
 3654: yy249:
 3655: 		YYDEBUG(249, *YYCURSOR);
 3656: 		++YYCURSOR;
 3657: 		YYDEBUG(250, *YYCURSOR);
 3658: 		yyleng = YYCURSOR - SCNG(yy_text);
 3659: #line 1355 "Zend/zend_language_scanner.l"
 3660: 		{
 3661: 	return T_IS_GREATER_OR_EQUAL;
 3662: }
 3663: #line 3664 "Zend/zend_language_scanner.c"
 3664: yy251:
 3665: 		YYDEBUG(251, *YYCURSOR);
 3666: 		++YYCURSOR;
 3667: 		YYDEBUG(252, *YYCURSOR);
 3668: 		yyleng = YYCURSOR - SCNG(yy_text);
 3669: #line 1387 "Zend/zend_language_scanner.l"
 3670: 		{
 3671: 	return T_SR_EQUAL;
 3672: }
 3673: #line 3674 "Zend/zend_language_scanner.c"
 3674: yy253:
 3675: 		YYDEBUG(253, *YYCURSOR);
 3676: 		yyaccept = 5;
 3677: 		yych = *(YYMARKER = ++YYCURSOR);
 3678: 		if (yych <= ';') goto yy254;
 3679: 		if (yych <= '<') goto yy269;
 3680: 		if (yych <= '=') goto yy267;
 3681: yy254:
 3682: 		YYDEBUG(254, *YYCURSOR);
 3683: 		yyleng = YYCURSOR - SCNG(yy_text);
 3684: #line 1423 "Zend/zend_language_scanner.l"
 3685: 		{
 3686: 	return T_SL;
 3687: }
 3688: #line 3689 "Zend/zend_language_scanner.c"
 3689: yy255:
 3690: 		YYDEBUG(255, *YYCURSOR);
 3691: 		yych = *++YYCURSOR;
 3692: 		if (yych == 'S') goto yy260;
 3693: 		if (yych == 's') goto yy260;
 3694: 		goto yy193;
 3695: yy256:
 3696: 		YYDEBUG(256, *YYCURSOR);
 3697: 		++YYCURSOR;
 3698: 		YYDEBUG(257, *YYCURSOR);
 3699: 		yyleng = YYCURSOR - SCNG(yy_text);
 3700: #line 1351 "Zend/zend_language_scanner.l"
 3701: 		{
 3702: 	return T_IS_SMALLER_OR_EQUAL;
 3703: }
 3704: #line 3705 "Zend/zend_language_scanner.c"
 3705: yy258:
 3706: 		YYDEBUG(258, *YYCURSOR);
 3707: 		++YYCURSOR;
 3708: yy259:
 3709: 		YYDEBUG(259, *YYCURSOR);
 3710: 		yyleng = YYCURSOR - SCNG(yy_text);
 3711: #line 1347 "Zend/zend_language_scanner.l"
 3712: 		{
 3713: 	return T_IS_NOT_EQUAL;
 3714: }
 3715: #line 3716 "Zend/zend_language_scanner.c"
 3716: yy260:
 3717: 		YYDEBUG(260, *YYCURSOR);
 3718: 		yych = *++YYCURSOR;
 3719: 		if (yych == 'C') goto yy261;
 3720: 		if (yych != 'c') goto yy193;
 3721: yy261:
 3722: 		YYDEBUG(261, *YYCURSOR);
 3723: 		yych = *++YYCURSOR;
 3724: 		if (yych == 'R') goto yy262;
 3725: 		if (yych != 'r') goto yy193;
 3726: yy262:
 3727: 		YYDEBUG(262, *YYCURSOR);
 3728: 		yych = *++YYCURSOR;
 3729: 		if (yych == 'I') goto yy263;
 3730: 		if (yych != 'i') goto yy193;
 3731: yy263:
 3732: 		YYDEBUG(263, *YYCURSOR);
 3733: 		yych = *++YYCURSOR;
 3734: 		if (yych == 'P') goto yy264;
 3735: 		if (yych != 'p') goto yy193;
 3736: yy264:
 3737: 		YYDEBUG(264, *YYCURSOR);
 3738: 		yych = *++YYCURSOR;
 3739: 		if (yych == 'T') goto yy265;
 3740: 		if (yych != 't') goto yy193;
 3741: yy265:
 3742: 		YYDEBUG(265, *YYCURSOR);
 3743: 		++YYCURSOR;
 3744: 		YYFILL(3);
 3745: 		yych = *YYCURSOR;
 3746: 		YYDEBUG(266, *YYCURSOR);
 3747: 		if (yych <= '\r') {
 3748: 			if (yych <= 0x08) goto yy193;
 3749: 			if (yych <= '\n') goto yy265;
 3750: 			if (yych <= '\f') goto yy193;
 3751: 			goto yy265;
 3752: 		} else {
 3753: 			if (yych <= ' ') {
 3754: 				if (yych <= 0x1F) goto yy193;
 3755: 				goto yy265;
 3756: 			} else {
 3757: 				if (yych == '>') goto yy205;
 3758: 				goto yy193;
 3759: 			}
 3760: 		}
 3761: yy267:
 3762: 		YYDEBUG(267, *YYCURSOR);
 3763: 		++YYCURSOR;
 3764: 		YYDEBUG(268, *YYCURSOR);
 3765: 		yyleng = YYCURSOR - SCNG(yy_text);
 3766: #line 1383 "Zend/zend_language_scanner.l"
 3767: 		{
 3768: 	return T_SL_EQUAL;
 3769: }
 3770: #line 3771 "Zend/zend_language_scanner.c"
 3771: yy269:
 3772: 		YYDEBUG(269, *YYCURSOR);
 3773: 		++YYCURSOR;
 3774: 		YYFILL(2);
 3775: 		yych = *YYCURSOR;
 3776: 		YYDEBUG(270, *YYCURSOR);
 3777: 		if (yybm[0+yych] & 128) {
 3778: 			goto yy269;
 3779: 		}
 3780: 		if (yych <= 'Z') {
 3781: 			if (yych <= '&') {
 3782: 				if (yych == '"') goto yy274;
 3783: 				goto yy193;
 3784: 			} else {
 3785: 				if (yych <= '\'') goto yy273;
 3786: 				if (yych <= '@') goto yy193;
 3787: 			}
 3788: 		} else {
 3789: 			if (yych <= '`') {
 3790: 				if (yych != '_') goto yy193;
 3791: 			} else {
 3792: 				if (yych <= 'z') goto yy271;
 3793: 				if (yych <= '~') goto yy193;
 3794: 			}
 3795: 		}
 3796: yy271:
 3797: 		YYDEBUG(271, *YYCURSOR);
 3798: 		++YYCURSOR;
 3799: 		YYFILL(2);
 3800: 		yych = *YYCURSOR;
 3801: 		YYDEBUG(272, *YYCURSOR);
 3802: 		if (yych <= '@') {
 3803: 			if (yych <= '\f') {
 3804: 				if (yych == '\n') goto yy278;
 3805: 				goto yy193;
 3806: 			} else {
 3807: 				if (yych <= '\r') goto yy280;
 3808: 				if (yych <= '/') goto yy193;
 3809: 				if (yych <= '9') goto yy271;
 3810: 				goto yy193;
 3811: 			}
 3812: 		} else {
 3813: 			if (yych <= '_') {
 3814: 				if (yych <= 'Z') goto yy271;
 3815: 				if (yych <= '^') goto yy193;
 3816: 				goto yy271;
 3817: 			} else {
 3818: 				if (yych <= '`') goto yy193;
 3819: 				if (yych <= 'z') goto yy271;
 3820: 				if (yych <= '~') goto yy193;
 3821: 				goto yy271;
 3822: 			}
 3823: 		}
 3824: yy273:
 3825: 		YYDEBUG(273, *YYCURSOR);
 3826: 		yych = *++YYCURSOR;
 3827: 		if (yych == '\'') goto yy193;
 3828: 		if (yych <= '/') goto yy282;
 3829: 		if (yych <= '9') goto yy193;
 3830: 		goto yy282;
 3831: yy274:
 3832: 		YYDEBUG(274, *YYCURSOR);
 3833: 		yych = *++YYCURSOR;
 3834: 		if (yych == '"') goto yy193;
 3835: 		if (yych <= '/') goto yy276;
 3836: 		if (yych <= '9') goto yy193;
 3837: 		goto yy276;
 3838: yy275:
 3839: 		YYDEBUG(275, *YYCURSOR);
 3840: 		++YYCURSOR;
 3841: 		YYFILL(3);
 3842: 		yych = *YYCURSOR;
 3843: yy276:
 3844: 		YYDEBUG(276, *YYCURSOR);
 3845: 		if (yych <= 'Z') {
 3846: 			if (yych <= '/') {
 3847: 				if (yych != '"') goto yy193;
 3848: 			} else {
 3849: 				if (yych <= '9') goto yy275;
 3850: 				if (yych <= '@') goto yy193;
 3851: 				goto yy275;
 3852: 			}
 3853: 		} else {
 3854: 			if (yych <= '`') {
 3855: 				if (yych == '_') goto yy275;
 3856: 				goto yy193;
 3857: 			} else {
 3858: 				if (yych <= 'z') goto yy275;
 3859: 				if (yych <= '~') goto yy193;
 3860: 				goto yy275;
 3861: 			}
 3862: 		}
 3863: yy277:
 3864: 		YYDEBUG(277, *YYCURSOR);
 3865: 		yych = *++YYCURSOR;
 3866: 		if (yych == '\n') goto yy278;
 3867: 		if (yych == '\r') goto yy280;
 3868: 		goto yy193;
 3869: yy278:
 3870: 		YYDEBUG(278, *YYCURSOR);
 3871: 		++YYCURSOR;
 3872: yy279:
 3873: 		YYDEBUG(279, *YYCURSOR);
 3874: 		yyleng = YYCURSOR - SCNG(yy_text);
 3875: #line 2097 "Zend/zend_language_scanner.l"
 3876: 		{
 3877: 	char *s;
 3878: 	int bprefix = (yytext[0] != '<') ? 1 : 0;
 3879: 
 3880: 	/* save old heredoc label */
 3881: 	Z_STRVAL_P(zendlval) = CG(heredoc);
 3882: 	Z_STRLEN_P(zendlval) = CG(heredoc_len);
 3883: 
 3884: 	CG(zend_lineno)++;
 3885: 	CG(heredoc_len) = yyleng-bprefix-3-1-(yytext[yyleng-2]=='\r'?1:0);
 3886: 	s = yytext+bprefix+3;
 3887: 	while ((*s == ' ') || (*s == '\t')) {
 3888: 		s++;
 3889: 		CG(heredoc_len)--;
 3890: 	}
 3891: 
 3892: 	if (*s == '\'') {
 3893: 		s++;
 3894: 		CG(heredoc_len) -= 2;
 3895: 
 3896: 		BEGIN(ST_NOWDOC);
 3897: 	} else {
 3898: 		if (*s == '"') {
 3899: 			s++;
 3900: 			CG(heredoc_len) -= 2;
 3901: 		}
 3902: 
 3903: 		BEGIN(ST_HEREDOC);
 3904: 	}
 3905: 
 3906: 	CG(heredoc) = estrndup(s, CG(heredoc_len));
 3907: 
 3908: 	/* Check for ending label on the next line */
 3909: 	if (CG(heredoc_len) < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, s, CG(heredoc_len))) {
 3910: 		YYCTYPE *end = YYCURSOR + CG(heredoc_len);
 3911: 
 3912: 		if (*end == ';') {
 3913: 			end++;
 3914: 		}
 3915: 
 3916: 		if (*end == '\n' || *end == '\r') {
 3917: 			BEGIN(ST_END_HEREDOC);
 3918: 		}
 3919: 	}
 3920: 
 3921: 	return T_START_HEREDOC;
 3922: }
 3923: #line 3924 "Zend/zend_language_scanner.c"
 3924: yy280:
 3925: 		YYDEBUG(280, *YYCURSOR);
 3926: 		yych = *++YYCURSOR;
 3927: 		if (yych == '\n') goto yy278;
 3928: 		goto yy279;
 3929: yy281:
 3930: 		YYDEBUG(281, *YYCURSOR);
 3931: 		++YYCURSOR;
 3932: 		YYFILL(3);
 3933: 		yych = *YYCURSOR;
 3934: yy282:
 3935: 		YYDEBUG(282, *YYCURSOR);
 3936: 		if (yych <= 'Z') {
 3937: 			if (yych <= '/') {
 3938: 				if (yych == '\'') goto yy277;
 3939: 				goto yy193;
 3940: 			} else {
 3941: 				if (yych <= '9') goto yy281;
 3942: 				if (yych <= '@') goto yy193;
 3943: 				goto yy281;
 3944: 			}
 3945: 		} else {
 3946: 			if (yych <= '`') {
 3947: 				if (yych == '_') goto yy281;
 3948: 				goto yy193;
 3949: 			} else {
 3950: 				if (yych <= 'z') goto yy281;
 3951: 				if (yych <= '~') goto yy193;
 3952: 				goto yy281;
 3953: 			}
 3954: 		}
 3955: yy283:
 3956: 		YYDEBUG(283, *YYCURSOR);
 3957: 		yych = *++YYCURSOR;
 3958: 		if (yych != '=') goto yy259;
 3959: 		YYDEBUG(284, *YYCURSOR);
 3960: 		++YYCURSOR;
 3961: 		YYDEBUG(285, *YYCURSOR);
 3962: 		yyleng = YYCURSOR - SCNG(yy_text);
 3963: #line 1339 "Zend/zend_language_scanner.l"
 3964: 		{
 3965: 	return T_IS_NOT_IDENTICAL;
 3966: }
 3967: #line 3968 "Zend/zend_language_scanner.c"
 3968: yy286:
 3969: 		YYDEBUG(286, *YYCURSOR);
 3970: 		++YYCURSOR;
 3971: 		YYDEBUG(287, *YYCURSOR);
 3972: 		yyleng = YYCURSOR - SCNG(yy_text);
 3973: #line 1359 "Zend/zend_language_scanner.l"
 3974: 		{
 3975: 	return T_PLUS_EQUAL;
 3976: }
 3977: #line 3978 "Zend/zend_language_scanner.c"
 3978: yy288:
 3979: 		YYDEBUG(288, *YYCURSOR);
 3980: 		++YYCURSOR;
 3981: 		YYDEBUG(289, *YYCURSOR);
 3982: 		yyleng = YYCURSOR - SCNG(yy_text);
 3983: #line 1327 "Zend/zend_language_scanner.l"
 3984: 		{
 3985: 	return T_INC;
 3986: }
 3987: #line 3988 "Zend/zend_language_scanner.c"
 3988: yy290:
 3989: 		YYDEBUG(290, *YYCURSOR);
 3990: 		yych = *++YYCURSOR;
 3991: 		if (yych == 'S') goto yy291;
 3992: 		if (yych != 's') goto yy186;
 3993: yy291:
 3994: 		YYDEBUG(291, *YYCURSOR);
 3995: 		yych = *++YYCURSOR;
 3996: 		if (yych == 'T') goto yy292;
 3997: 		if (yych != 't') goto yy186;
 3998: yy292:
 3999: 		YYDEBUG(292, *YYCURSOR);
 4000: 		++YYCURSOR;
 4001: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 4002: 			goto yy185;
 4003: 		}
 4004: 		YYDEBUG(293, *YYCURSOR);
 4005: 		yyleng = YYCURSOR - SCNG(yy_text);
 4006: #line 1315 "Zend/zend_language_scanner.l"
 4007: 		{
 4008: 	return T_LIST;
 4009: }
 4010: #line 4011 "Zend/zend_language_scanner.c"
 4011: yy294:
 4012: 		YYDEBUG(294, *YYCURSOR);
 4013: 		++YYCURSOR;
 4014: 		if ((yych = *YYCURSOR) == '=') goto yy298;
 4015: 		YYDEBUG(295, *YYCURSOR);
 4016: 		yyleng = YYCURSOR - SCNG(yy_text);
 4017: #line 1343 "Zend/zend_language_scanner.l"
 4018: 		{
 4019: 	return T_IS_EQUAL;
 4020: }
 4021: #line 4022 "Zend/zend_language_scanner.c"
 4022: yy296:
 4023: 		YYDEBUG(296, *YYCURSOR);
 4024: 		++YYCURSOR;
 4025: 		YYDEBUG(297, *YYCURSOR);
 4026: 		yyleng = YYCURSOR - SCNG(yy_text);
 4027: #line 1311 "Zend/zend_language_scanner.l"
 4028: 		{
 4029: 	return T_DOUBLE_ARROW;
 4030: }
 4031: #line 4032 "Zend/zend_language_scanner.c"
 4032: yy298:
 4033: 		YYDEBUG(298, *YYCURSOR);
 4034: 		++YYCURSOR;
 4035: 		YYDEBUG(299, *YYCURSOR);
 4036: 		yyleng = YYCURSOR - SCNG(yy_text);
 4037: #line 1335 "Zend/zend_language_scanner.l"
 4038: 		{
 4039: 	return T_IS_IDENTICAL;
 4040: }
 4041: #line 4042 "Zend/zend_language_scanner.c"
 4042: yy300:
 4043: 		YYDEBUG(300, *YYCURSOR);
 4044: 		yych = *++YYCURSOR;
 4045: 		YYDEBUG(-1, yych);
 4046: 		switch (yych) {
 4047: 		case 'C':
 4048: 		case 'c':	goto yy302;
 4049: 		case 'D':
 4050: 		case 'd':	goto yy307;
 4051: 		case 'F':
 4052: 		case 'f':	goto yy304;
 4053: 		case 'H':
 4054: 		case 'h':	goto yy301;
 4055: 		case 'L':
 4056: 		case 'l':	goto yy306;
 4057: 		case 'M':
 4058: 		case 'm':	goto yy305;
 4059: 		case 'N':
 4060: 		case 'n':	goto yy308;
 4061: 		case 'T':
 4062: 		case 't':	goto yy303;
 4063: 		default:	goto yy186;
 4064: 		}
 4065: yy301:
 4066: 		YYDEBUG(301, *YYCURSOR);
 4067: 		yych = *++YYCURSOR;
 4068: 		if (yych == 'A') goto yy369;
 4069: 		if (yych == 'a') goto yy369;
 4070: 		goto yy186;
 4071: yy302:
 4072: 		YYDEBUG(302, *YYCURSOR);
 4073: 		yych = *++YYCURSOR;
 4074: 		if (yych == 'L') goto yy362;
 4075: 		if (yych == 'l') goto yy362;
 4076: 		goto yy186;
 4077: yy303:
 4078: 		YYDEBUG(303, *YYCURSOR);
 4079: 		yych = *++YYCURSOR;
 4080: 		if (yych == 'R') goto yy355;
 4081: 		if (yych == 'r') goto yy355;
 4082: 		goto yy186;
 4083: yy304:
 4084: 		YYDEBUG(304, *YYCURSOR);
 4085: 		yych = *++YYCURSOR;
 4086: 		if (yych <= 'U') {
 4087: 			if (yych == 'I') goto yy339;
 4088: 			if (yych <= 'T') goto yy186;
 4089: 			goto yy340;
 4090: 		} else {
 4091: 			if (yych <= 'i') {
 4092: 				if (yych <= 'h') goto yy186;
 4093: 				goto yy339;
 4094: 			} else {
 4095: 				if (yych == 'u') goto yy340;
 4096: 				goto yy186;
 4097: 			}
 4098: 		}
 4099: yy305:
 4100: 		YYDEBUG(305, *YYCURSOR);
 4101: 		yych = *++YYCURSOR;
 4102: 		if (yych == 'E') goto yy331;
 4103: 		if (yych == 'e') goto yy331;
 4104: 		goto yy186;
 4105: yy306:
 4106: 		YYDEBUG(306, *YYCURSOR);
 4107: 		yych = *++YYCURSOR;
 4108: 		if (yych == 'I') goto yy325;
 4109: 		if (yych == 'i') goto yy325;
 4110: 		goto yy186;
 4111: yy307:
 4112: 		YYDEBUG(307, *YYCURSOR);
 4113: 		yych = *++YYCURSOR;
 4114: 		if (yych == 'I') goto yy320;
 4115: 		if (yych == 'i') goto yy320;
 4116: 		goto yy186;
 4117: yy308:
 4118: 		YYDEBUG(308, *YYCURSOR);
 4119: 		yych = *++YYCURSOR;
 4120: 		if (yych == 'A') goto yy309;
 4121: 		if (yych != 'a') goto yy186;
 4122: yy309:
 4123: 		YYDEBUG(309, *YYCURSOR);
 4124: 		yych = *++YYCURSOR;
 4125: 		if (yych == 'M') goto yy310;
 4126: 		if (yych != 'm') goto yy186;
 4127: yy310:
 4128: 		YYDEBUG(310, *YYCURSOR);
 4129: 		yych = *++YYCURSOR;
 4130: 		if (yych == 'E') goto yy311;
 4131: 		if (yych != 'e') goto yy186;
 4132: yy311:
 4133: 		YYDEBUG(311, *YYCURSOR);
 4134: 		yych = *++YYCURSOR;
 4135: 		if (yych == 'S') goto yy312;
 4136: 		if (yych != 's') goto yy186;
 4137: yy312:
 4138: 		YYDEBUG(312, *YYCURSOR);
 4139: 		yych = *++YYCURSOR;
 4140: 		if (yych == 'P') goto yy313;
 4141: 		if (yych != 'p') goto yy186;
 4142: yy313:
 4143: 		YYDEBUG(313, *YYCURSOR);
 4144: 		yych = *++YYCURSOR;
 4145: 		if (yych == 'A') goto yy314;
 4146: 		if (yych != 'a') goto yy186;
 4147: yy314:
 4148: 		YYDEBUG(314, *YYCURSOR);
 4149: 		yych = *++YYCURSOR;
 4150: 		if (yych == 'C') goto yy315;
 4151: 		if (yych != 'c') goto yy186;
 4152: yy315:
 4153: 		YYDEBUG(315, *YYCURSOR);
 4154: 		yych = *++YYCURSOR;
 4155: 		if (yych == 'E') goto yy316;
 4156: 		if (yych != 'e') goto yy186;
 4157: yy316:
 4158: 		YYDEBUG(316, *YYCURSOR);
 4159: 		yych = *++YYCURSOR;
 4160: 		if (yych != '_') goto yy186;
 4161: 		YYDEBUG(317, *YYCURSOR);
 4162: 		yych = *++YYCURSOR;
 4163: 		if (yych != '_') goto yy186;
 4164: 		YYDEBUG(318, *YYCURSOR);
 4165: 		++YYCURSOR;
 4166: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 4167: 			goto yy185;
 4168: 		}
 4169: 		YYDEBUG(319, *YYCURSOR);
 4170: 		yyleng = YYCURSOR - SCNG(yy_text);
 4171: #line 1698 "Zend/zend_language_scanner.l"
 4172: 		{
 4173: 	if (CG(current_namespace)) {
 4174: 		*zendlval = *CG(current_namespace);
 4175: 		zval_copy_ctor(zendlval);
 4176: 	} else {
 4177: 		ZVAL_EMPTY_STRING(zendlval);
 4178: 	}
 4179: 	return T_NS_C;
 4180: }
 4181: #line 4182 "Zend/zend_language_scanner.c"
 4182: yy320:
 4183: 		YYDEBUG(320, *YYCURSOR);
 4184: 		yych = *++YYCURSOR;
 4185: 		if (yych == 'R') goto yy321;
 4186: 		if (yych != 'r') goto yy186;
 4187: yy321:
 4188: 		YYDEBUG(321, *YYCURSOR);
 4189: 		yych = *++YYCURSOR;
 4190: 		if (yych != '_') goto yy186;
 4191: 		YYDEBUG(322, *YYCURSOR);
 4192: 		yych = *++YYCURSOR;
 4193: 		if (yych != '_') goto yy186;
 4194: 		YYDEBUG(323, *YYCURSOR);
 4195: 		++YYCURSOR;
 4196: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 4197: 			goto yy185;
 4198: 		}
 4199: 		YYDEBUG(324, *YYCURSOR);
 4200: 		yyleng = YYCURSOR - SCNG(yy_text);
 4201: #line 1671 "Zend/zend_language_scanner.l"
 4202: 		{
 4203: 	char *filename = zend_get_compiled_filename(TSRMLS_C);
 4204: 	const size_t filename_len = strlen(filename);
 4205: 	char *dirname;
 4206: 
 4207: 	if (!filename) {
 4208: 		filename = "";
 4209: 	}
 4210: 
 4211: 	dirname = estrndup(filename, filename_len);
 4212: 	zend_dirname(dirname, filename_len);
 4213: 
 4214: 	if (strcmp(dirname, ".") == 0) {
 4215: 		dirname = erealloc(dirname, MAXPATHLEN);
 4216: #if HAVE_GETCWD
 4217: 		VCWD_GETCWD(dirname, MAXPATHLEN);
 4218: #elif HAVE_GETWD
 4219: 		VCWD_GETWD(dirname);
 4220: #endif
 4221: 	}
 4222: 
 4223: 	zendlval->value.str.len = strlen(dirname);
 4224: 	zendlval->value.str.val = dirname;
 4225: 	zendlval->type = IS_STRING;
 4226: 	return T_DIR;
 4227: }
 4228: #line 4229 "Zend/zend_language_scanner.c"
 4229: yy325:
 4230: 		YYDEBUG(325, *YYCURSOR);
 4231: 		yych = *++YYCURSOR;
 4232: 		if (yych == 'N') goto yy326;
 4233: 		if (yych != 'n') goto yy186;
 4234: yy326:
 4235: 		YYDEBUG(326, *YYCURSOR);
 4236: 		yych = *++YYCURSOR;
 4237: 		if (yych == 'E') goto yy327;
 4238: 		if (yych != 'e') goto yy186;
 4239: yy327:
 4240: 		YYDEBUG(327, *YYCURSOR);
 4241: 		yych = *++YYCURSOR;
 4242: 		if (yych != '_') goto yy186;
 4243: 		YYDEBUG(328, *YYCURSOR);
 4244: 		yych = *++YYCURSOR;
 4245: 		if (yych != '_') goto yy186;
 4246: 		YYDEBUG(329, *YYCURSOR);
 4247: 		++YYCURSOR;
 4248: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 4249: 			goto yy185;
 4250: 		}
 4251: 		YYDEBUG(330, *YYCURSOR);
 4252: 		yyleng = YYCURSOR - SCNG(yy_text);
 4253: #line 1653 "Zend/zend_language_scanner.l"
 4254: 		{
 4255: 	zendlval->value.lval = CG(zend_lineno);
 4256: 	zendlval->type = IS_LONG;
 4257: 	return T_LINE;
 4258: }
 4259: #line 4260 "Zend/zend_language_scanner.c"
 4260: yy331:
 4261: 		YYDEBUG(331, *YYCURSOR);
 4262: 		yych = *++YYCURSOR;
 4263: 		if (yych == 'T') goto yy332;
 4264: 		if (yych != 't') goto yy186;
 4265: yy332:
 4266: 		YYDEBUG(332, *YYCURSOR);
 4267: 		yych = *++YYCURSOR;
 4268: 		if (yych == 'H') goto yy333;
 4269: 		if (yych != 'h') goto yy186;
 4270: yy333:
 4271: 		YYDEBUG(333, *YYCURSOR);
 4272: 		yych = *++YYCURSOR;
 4273: 		if (yych == 'O') goto yy334;
 4274: 		if (yych != 'o') goto yy186;
 4275: yy334:
 4276: 		YYDEBUG(334, *YYCURSOR);
 4277: 		yych = *++YYCURSOR;
 4278: 		if (yych == 'D') goto yy335;
 4279: 		if (yych != 'd') goto yy186;
 4280: yy335:
 4281: 		YYDEBUG(335, *YYCURSOR);
 4282: 		yych = *++YYCURSOR;
 4283: 		if (yych != '_') goto yy186;
 4284: 		YYDEBUG(336, *YYCURSOR);
 4285: 		yych = *++YYCURSOR;
 4286: 		if (yych != '_') goto yy186;
 4287: 		YYDEBUG(337, *YYCURSOR);
 4288: 		++YYCURSOR;
 4289: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 4290: 			goto yy185;
 4291: 		}
 4292: 		YYDEBUG(338, *YYCURSOR);
 4293: 		yyleng = YYCURSOR - SCNG(yy_text);
 4294: #line 1632 "Zend/zend_language_scanner.l"
 4295: 		{
 4296: 	const char *class_name = CG(active_class_entry) ? CG(active_class_entry)->name : NULL;
 4297: 	const char *func_name = CG(active_op_array)? CG(active_op_array)->function_name : NULL;
 4298: 	size_t len = 0;
 4299: 
 4300: 	if (class_name) {
 4301: 		len += strlen(class_name) + 2;
 4302: 	}
 4303: 	if (func_name) {
 4304: 		len += strlen(func_name);
 4305: 	}
 4306: 
 4307: 	zendlval->value.str.len = zend_spprintf(&zendlval->value.str.val, 0, "%s%s%s",
 4308: 		class_name ? class_name : "",
 4309: 		class_name && func_name ? "::" : "",
 4310: 		func_name ? func_name : ""
 4311: 		);
 4312: 	zendlval->type = IS_STRING;
 4313: 	return T_METHOD_C;
 4314: }
 4315: #line 4316 "Zend/zend_language_scanner.c"
 4316: yy339:
 4317: 		YYDEBUG(339, *YYCURSOR);
 4318: 		yych = *++YYCURSOR;
 4319: 		if (yych == 'L') goto yy350;
 4320: 		if (yych == 'l') goto yy350;
 4321: 		goto yy186;
 4322: yy340:
 4323: 		YYDEBUG(340, *YYCURSOR);
 4324: 		yych = *++YYCURSOR;
 4325: 		if (yych == 'N') goto yy341;
 4326: 		if (yych != 'n') goto yy186;
 4327: yy341:
 4328: 		YYDEBUG(341, *YYCURSOR);
 4329: 		yych = *++YYCURSOR;
 4330: 		if (yych == 'C') goto yy342;
 4331: 		if (yych != 'c') goto yy186;
 4332: yy342:
 4333: 		YYDEBUG(342, *YYCURSOR);
 4334: 		yych = *++YYCURSOR;
 4335: 		if (yych == 'T') goto yy343;
 4336: 		if (yych != 't') goto yy186;
 4337: yy343:
 4338: 		YYDEBUG(343, *YYCURSOR);
 4339: 		yych = *++YYCURSOR;
 4340: 		if (yych == 'I') goto yy344;
 4341: 		if (yych != 'i') goto yy186;
 4342: yy344:
 4343: 		YYDEBUG(344, *YYCURSOR);
 4344: 		yych = *++YYCURSOR;
 4345: 		if (yych == 'O') goto yy345;
 4346: 		if (yych != 'o') goto yy186;
 4347: yy345:
 4348: 		YYDEBUG(345, *YYCURSOR);
 4349: 		yych = *++YYCURSOR;
 4350: 		if (yych == 'N') goto yy346;
 4351: 		if (yych != 'n') goto yy186;
 4352: yy346:
 4353: 		YYDEBUG(346, *YYCURSOR);
 4354: 		yych = *++YYCURSOR;
 4355: 		if (yych != '_') goto yy186;
 4356: 		YYDEBUG(347, *YYCURSOR);
 4357: 		yych = *++YYCURSOR;
 4358: 		if (yych != '_') goto yy186;
 4359: 		YYDEBUG(348, *YYCURSOR);
 4360: 		++YYCURSOR;
 4361: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 4362: 			goto yy185;
 4363: 		}
 4364: 		YYDEBUG(349, *YYCURSOR);
 4365: 		yyleng = YYCURSOR - SCNG(yy_text);
 4366: #line 1616 "Zend/zend_language_scanner.l"
 4367: 		{
 4368: 	const char *func_name = NULL;
 4369: 
 4370: 	if (CG(active_op_array)) {
 4371: 		func_name = CG(active_op_array)->function_name;
 4372: 	}
 4373: 
 4374: 	if (!func_name) {
 4375: 		func_name = "";
 4376: 	}
 4377: 	zendlval->value.str.len = strlen(func_name);
 4378: 	zendlval->value.str.val = estrndup(func_name, zendlval->value.str.len);
 4379: 	zendlval->type = IS_STRING;
 4380: 	return T_FUNC_C;
 4381: }
 4382: #line 4383 "Zend/zend_language_scanner.c"
 4383: yy350:
 4384: 		YYDEBUG(350, *YYCURSOR);
 4385: 		yych = *++YYCURSOR;
 4386: 		if (yych == 'E') goto yy351;
 4387: 		if (yych != 'e') goto yy186;
 4388: yy351:
 4389: 		YYDEBUG(351, *YYCURSOR);
 4390: 		yych = *++YYCURSOR;
 4391: 		if (yych != '_') goto yy186;
 4392: 		YYDEBUG(352, *YYCURSOR);
 4393: 		yych = *++YYCURSOR;
 4394: 		if (yych != '_') goto yy186;
 4395: 		YYDEBUG(353, *YYCURSOR);
 4396: 		++YYCURSOR;
 4397: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 4398: 			goto yy185;
 4399: 		}
 4400: 		YYDEBUG(354, *YYCURSOR);
 4401: 		yyleng = YYCURSOR - SCNG(yy_text);
 4402: #line 1659 "Zend/zend_language_scanner.l"
 4403: 		{
 4404: 	char *filename = zend_get_compiled_filename(TSRMLS_C);
 4405: 
 4406: 	if (!filename) {
 4407: 		filename = "";
 4408: 	}
 4409: 	zendlval->value.str.len = strlen(filename);
 4410: 	zendlval->value.str.val = estrndup(filename, zendlval->value.str.len);
 4411: 	zendlval->type = IS_STRING;
 4412: 	return T_FILE;
 4413: }
 4414: #line 4415 "Zend/zend_language_scanner.c"
 4415: yy355:
 4416: 		YYDEBUG(355, *YYCURSOR);
 4417: 		yych = *++YYCURSOR;
 4418: 		if (yych == 'A') goto yy356;
 4419: 		if (yych != 'a') goto yy186;
 4420: yy356:
 4421: 		YYDEBUG(356, *YYCURSOR);
 4422: 		yych = *++YYCURSOR;
 4423: 		if (yych == 'I') goto yy357;
 4424: 		if (yych != 'i') goto yy186;
 4425: yy357:
 4426: 		YYDEBUG(357, *YYCURSOR);
 4427: 		yych = *++YYCURSOR;
 4428: 		if (yych == 'T') goto yy358;
 4429: 		if (yych != 't') goto yy186;
 4430: yy358:
 4431: 		YYDEBUG(358, *YYCURSOR);
 4432: 		yych = *++YYCURSOR;
 4433: 		if (yych != '_') goto yy186;
 4434: 		YYDEBUG(359, *YYCURSOR);
 4435: 		yych = *++YYCURSOR;
 4436: 		if (yych != '_') goto yy186;
 4437: 		YYDEBUG(360, *YYCURSOR);
 4438: 		++YYCURSOR;
 4439: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 4440: 			goto yy185;
 4441: 		}
 4442: 		YYDEBUG(361, *YYCURSOR);
 4443: 		yyleng = YYCURSOR - SCNG(yy_text);
 4444: #line 1596 "Zend/zend_language_scanner.l"
 4445: 		{
 4446: 	const char *trait_name = NULL;
 4447: 	
 4448: 	if (CG(active_class_entry)
 4449: 		&& (ZEND_ACC_TRAIT == 
 4450: 			(CG(active_class_entry)->ce_flags & ZEND_ACC_TRAIT))) {
 4451: 		trait_name = CG(active_class_entry)->name;
 4452: 	}
 4453: 	
 4454: 	if (!trait_name) {
 4455: 		trait_name = "";
 4456: 	}
 4457: 	
 4458: 	zendlval->value.str.len = strlen(trait_name);
 4459: 	zendlval->value.str.val = estrndup(trait_name, zendlval->value.str.len);
 4460: 	zendlval->type = IS_STRING;
 4461: 	
 4462: 	return T_TRAIT_C;
 4463: }
 4464: #line 4465 "Zend/zend_language_scanner.c"
 4465: yy362:
 4466: 		YYDEBUG(362, *YYCURSOR);
 4467: 		yych = *++YYCURSOR;
 4468: 		if (yych == 'A') goto yy363;
 4469: 		if (yych != 'a') goto yy186;
 4470: yy363:
 4471: 		YYDEBUG(363, *YYCURSOR);
 4472: 		yych = *++YYCURSOR;
 4473: 		if (yych == 'S') goto yy364;
 4474: 		if (yych != 's') goto yy186;
 4475: yy364:
 4476: 		YYDEBUG(364, *YYCURSOR);
 4477: 		yych = *++YYCURSOR;
 4478: 		if (yych == 'S') goto yy365;
 4479: 		if (yych != 's') goto yy186;
 4480: yy365:
 4481: 		YYDEBUG(365, *YYCURSOR);
 4482: 		yych = *++YYCURSOR;
 4483: 		if (yych != '_') goto yy186;
 4484: 		YYDEBUG(366, *YYCURSOR);
 4485: 		yych = *++YYCURSOR;
 4486: 		if (yych != '_') goto yy186;
 4487: 		YYDEBUG(367, *YYCURSOR);
 4488: 		++YYCURSOR;
 4489: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 4490: 			goto yy185;
 4491: 		}
 4492: 		YYDEBUG(368, *YYCURSOR);
 4493: 		yyleng = YYCURSOR - SCNG(yy_text);
 4494: #line 1569 "Zend/zend_language_scanner.l"
 4495: 		{
 4496: 	const char *class_name = NULL;
 4497: 	
 4498: 	if (CG(active_class_entry)
 4499: 		&& (ZEND_ACC_TRAIT ==
 4500: 			(CG(active_class_entry)->ce_flags & ZEND_ACC_TRAIT))) {
 4501: 		/* We create a special __CLASS__ constant that is going to be resolved
 4502: 		   at run-time */
 4503: 		zendlval->value.str.len = sizeof("__CLASS__")-1;
 4504: 		zendlval->value.str.val = estrndup("__CLASS__", zendlval->value.str.len);
 4505: 		zendlval->type = IS_CONSTANT;
 4506: 	} else {
 4507: 		if (CG(active_class_entry)) {
 4508: 			class_name = CG(active_class_entry)->name;
 4509: 		}
 4510: 		
 4511: 		if (!class_name) {
 4512: 			class_name = "";
 4513: 		}
 4514: 		
 4515: 		zendlval->value.str.len = strlen(class_name);
 4516: 		zendlval->value.str.val = estrndup(class_name, zendlval->value.str.len);
 4517: 		zendlval->type = IS_STRING;
 4518: 	}
 4519: 	return T_CLASS_C;
 4520: }
 4521: #line 4522 "Zend/zend_language_scanner.c"
 4522: yy369:
 4523: 		YYDEBUG(369, *YYCURSOR);
 4524: 		yych = *++YYCURSOR;
 4525: 		if (yych == 'L') goto yy370;
 4526: 		if (yych != 'l') goto yy186;
 4527: yy370:
 4528: 		YYDEBUG(370, *YYCURSOR);
 4529: 		yych = *++YYCURSOR;
 4530: 		if (yych == 'T') goto yy371;
 4531: 		if (yych != 't') goto yy186;
 4532: yy371:
 4533: 		YYDEBUG(371, *YYCURSOR);
 4534: 		yych = *++YYCURSOR;
 4535: 		if (yych != '_') goto yy186;
 4536: 		YYDEBUG(372, *YYCURSOR);
 4537: 		yych = *++YYCURSOR;
 4538: 		if (yych == 'C') goto yy373;
 4539: 		if (yych != 'c') goto yy186;
 4540: yy373:
 4541: 		YYDEBUG(373, *YYCURSOR);
 4542: 		yych = *++YYCURSOR;
 4543: 		if (yych == 'O') goto yy374;
 4544: 		if (yych != 'o') goto yy186;
 4545: yy374:
 4546: 		YYDEBUG(374, *YYCURSOR);
 4547: 		yych = *++YYCURSOR;
 4548: 		if (yych == 'M') goto yy375;
 4549: 		if (yych != 'm') goto yy186;
 4550: yy375:
 4551: 		YYDEBUG(375, *YYCURSOR);
 4552: 		yych = *++YYCURSOR;
 4553: 		if (yych == 'P') goto yy376;
 4554: 		if (yych != 'p') goto yy186;
 4555: yy376:
 4556: 		YYDEBUG(376, *YYCURSOR);
 4557: 		yych = *++YYCURSOR;
 4558: 		if (yych == 'I') goto yy377;
 4559: 		if (yych != 'i') goto yy186;
 4560: yy377:
 4561: 		YYDEBUG(377, *YYCURSOR);
 4562: 		yych = *++YYCURSOR;
 4563: 		if (yych == 'L') goto yy378;
 4564: 		if (yych != 'l') goto yy186;
 4565: yy378:
 4566: 		YYDEBUG(378, *YYCURSOR);
 4567: 		yych = *++YYCURSOR;
 4568: 		if (yych == 'E') goto yy379;
 4569: 		if (yych != 'e') goto yy186;
 4570: yy379:
 4571: 		YYDEBUG(379, *YYCURSOR);
 4572: 		yych = *++YYCURSOR;
 4573: 		if (yych == 'R') goto yy380;
 4574: 		if (yych != 'r') goto yy186;
 4575: yy380:
 4576: 		YYDEBUG(380, *YYCURSOR);
 4577: 		++YYCURSOR;
 4578: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 4579: 			goto yy185;
 4580: 		}
 4581: 		YYDEBUG(381, *YYCURSOR);
 4582: 		yyleng = YYCURSOR - SCNG(yy_text);
 4583: #line 1279 "Zend/zend_language_scanner.l"
 4584: 		{
 4585: 	return T_HALT_COMPILER;
 4586: }
 4587: #line 4588 "Zend/zend_language_scanner.c"
 4588: yy382:
 4589: 		YYDEBUG(382, *YYCURSOR);
 4590: 		yych = *++YYCURSOR;
 4591: 		if (yych == 'S') goto yy386;
 4592: 		if (yych == 's') goto yy386;
 4593: 		goto yy186;
 4594: yy383:
 4595: 		YYDEBUG(383, *YYCURSOR);
 4596: 		yych = *++YYCURSOR;
 4597: 		if (yych == 'E') goto yy384;
 4598: 		if (yych != 'e') goto yy186;
 4599: yy384:
 4600: 		YYDEBUG(384, *YYCURSOR);
 4601: 		++YYCURSOR;
 4602: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 4603: 			goto yy185;
 4604: 		}
 4605: 		YYDEBUG(385, *YYCURSOR);
 4606: 		yyleng = YYCURSOR - SCNG(yy_text);
 4607: #line 1259 "Zend/zend_language_scanner.l"
 4608: 		{
 4609: 	return T_USE;
 4610: }
 4611: #line 4612 "Zend/zend_language_scanner.c"
 4612: yy386:
 4613: 		YYDEBUG(386, *YYCURSOR);
 4614: 		yych = *++YYCURSOR;
 4615: 		if (yych == 'E') goto yy387;
 4616: 		if (yych != 'e') goto yy186;
 4617: yy387:
 4618: 		YYDEBUG(387, *YYCURSOR);
 4619: 		yych = *++YYCURSOR;
 4620: 		if (yych == 'T') goto yy388;
 4621: 		if (yych != 't') goto yy186;
 4622: yy388:
 4623: 		YYDEBUG(388, *YYCURSOR);
 4624: 		++YYCURSOR;
 4625: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 4626: 			goto yy185;
 4627: 		}
 4628: 		YYDEBUG(389, *YYCURSOR);
 4629: 		yyleng = YYCURSOR - SCNG(yy_text);
 4630: #line 1307 "Zend/zend_language_scanner.l"
 4631: 		{
 4632: 	return T_UNSET;
 4633: }
 4634: #line 4635 "Zend/zend_language_scanner.c"
 4635: yy390:
 4636: 		YYDEBUG(390, *YYCURSOR);
 4637: 		++YYCURSOR;
 4638: 		YYFILL(7);
 4639: 		yych = *YYCURSOR;
 4640: yy391:
 4641: 		YYDEBUG(391, *YYCURSOR);
 4642: 		if (yych <= 'S') {
 4643: 			if (yych <= 'D') {
 4644: 				if (yych <= ' ') {
 4645: 					if (yych == '\t') goto yy390;
 4646: 					if (yych <= 0x1F) goto yy193;
 4647: 					goto yy390;
 4648: 				} else {
 4649: 					if (yych <= 'A') {
 4650: 						if (yych <= '@') goto yy193;
 4651: 						goto yy395;
 4652: 					} else {
 4653: 						if (yych <= 'B') goto yy393;
 4654: 						if (yych <= 'C') goto yy193;
 4655: 						goto yy398;
 4656: 					}
 4657: 				}
 4658: 			} else {
 4659: 				if (yych <= 'I') {
 4660: 					if (yych == 'F') goto yy399;
 4661: 					if (yych <= 'H') goto yy193;
 4662: 					goto yy400;
 4663: 				} else {
 4664: 					if (yych <= 'O') {
 4665: 						if (yych <= 'N') goto yy193;
 4666: 						goto yy394;
 4667: 					} else {
 4668: 						if (yych <= 'Q') goto yy193;
 4669: 						if (yych <= 'R') goto yy397;
 4670: 						goto yy396;
 4671: 					}
 4672: 				}
 4673: 			}
 4674: 		} else {
 4675: 			if (yych <= 'f') {
 4676: 				if (yych <= 'a') {
 4677: 					if (yych == 'U') goto yy392;
 4678: 					if (yych <= '`') goto yy193;
 4679: 					goto yy395;
 4680: 				} else {
 4681: 					if (yych <= 'c') {
 4682: 						if (yych <= 'b') goto yy393;
 4683: 						goto yy193;
 4684: 					} else {
 4685: 						if (yych <= 'd') goto yy398;
 4686: 						if (yych <= 'e') goto yy193;
 4687: 						goto yy399;
 4688: 					}
 4689: 				}
 4690: 			} else {
 4691: 				if (yych <= 'q') {
 4692: 					if (yych <= 'i') {
 4693: 						if (yych <= 'h') goto yy193;
 4694: 						goto yy400;
 4695: 					} else {
 4696: 						if (yych == 'o') goto yy394;
 4697: 						goto yy193;
 4698: 					}
 4699: 				} else {
 4700: 					if (yych <= 's') {
 4701: 						if (yych <= 'r') goto yy397;
 4702: 						goto yy396;
 4703: 					} else {
 4704: 						if (yych != 'u') goto yy193;
 4705: 					}
 4706: 				}
 4707: 			}
 4708: 		}
 4709: yy392:
 4710: 		YYDEBUG(392, *YYCURSOR);
 4711: 		yych = *++YYCURSOR;
 4712: 		if (yych == 'N') goto yy459;
 4713: 		if (yych == 'n') goto yy459;
 4714: 		goto yy193;
 4715: yy393:
 4716: 		YYDEBUG(393, *YYCURSOR);
 4717: 		yych = *++YYCURSOR;
 4718: 		if (yych <= 'O') {
 4719: 			if (yych == 'I') goto yy446;
 4720: 			if (yych <= 'N') goto yy193;
 4721: 			goto yy447;
 4722: 		} else {
 4723: 			if (yych <= 'i') {
 4724: 				if (yych <= 'h') goto yy193;
 4725: 				goto yy446;
 4726: 			} else {
 4727: 				if (yych == 'o') goto yy447;
 4728: 				goto yy193;
 4729: 			}
 4730: 		}
 4731: yy394:
 4732: 		YYDEBUG(394, *YYCURSOR);
 4733: 		yych = *++YYCURSOR;
 4734: 		if (yych == 'B') goto yy438;
 4735: 		if (yych == 'b') goto yy438;
 4736: 		goto yy193;
 4737: yy395:
 4738: 		YYDEBUG(395, *YYCURSOR);
 4739: 		yych = *++YYCURSOR;
 4740: 		if (yych == 'R') goto yy431;
 4741: 		if (yych == 'r') goto yy431;
 4742: 		goto yy193;
 4743: yy396:
 4744: 		YYDEBUG(396, *YYCURSOR);
 4745: 		yych = *++YYCURSOR;
 4746: 		if (yych == 'T') goto yy423;
 4747: 		if (yych == 't') goto yy423;
 4748: 		goto yy193;
 4749: yy397:
 4750: 		YYDEBUG(397, *YYCURSOR);
 4751: 		yych = *++YYCURSOR;
 4752: 		if (yych == 'E') goto yy421;
 4753: 		if (yych == 'e') goto yy421;
 4754: 		goto yy193;
 4755: yy398:
 4756: 		YYDEBUG(398, *YYCURSOR);
 4757: 		yych = *++YYCURSOR;
 4758: 		if (yych == 'O') goto yy417;
 4759: 		if (yych == 'o') goto yy417;
 4760: 		goto yy193;
 4761: yy399:
 4762: 		YYDEBUG(399, *YYCURSOR);
 4763: 		yych = *++YYCURSOR;
 4764: 		if (yych == 'L') goto yy410;
 4765: 		if (yych == 'l') goto yy410;
 4766: 		goto yy193;
 4767: yy400:
 4768: 		YYDEBUG(400, *YYCURSOR);
 4769: 		yych = *++YYCURSOR;
 4770: 		if (yych == 'N') goto yy401;
 4771: 		if (yych != 'n') goto yy193;
 4772: yy401:
 4773: 		YYDEBUG(401, *YYCURSOR);
 4774: 		yych = *++YYCURSOR;
 4775: 		if (yych == 'T') goto yy402;
 4776: 		if (yych != 't') goto yy193;
 4777: yy402:
 4778: 		YYDEBUG(402, *YYCURSOR);
 4779: 		yych = *++YYCURSOR;
 4780: 		if (yych == 'E') goto yy403;
 4781: 		if (yych != 'e') goto yy405;
 4782: yy403:
 4783: 		YYDEBUG(403, *YYCURSOR);
 4784: 		yych = *++YYCURSOR;
 4785: 		if (yych == 'G') goto yy408;
 4786: 		if (yych == 'g') goto yy408;
 4787: 		goto yy193;
 4788: yy404:
 4789: 		YYDEBUG(404, *YYCURSOR);
 4790: 		++YYCURSOR;
 4791: 		YYFILL(1);
 4792: 		yych = *YYCURSOR;
 4793: yy405:
 4794: 		YYDEBUG(405, *YYCURSOR);
 4795: 		if (yych <= 0x1F) {
 4796: 			if (yych == '\t') goto yy404;
 4797: 			goto yy193;
 4798: 		} else {
 4799: 			if (yych <= ' ') goto yy404;
 4800: 			if (yych != ')') goto yy193;
 4801: 		}
 4802: 		YYDEBUG(406, *YYCURSOR);
 4803: 		++YYCURSOR;
 4804: 		YYDEBUG(407, *YYCURSOR);
 4805: 		yyleng = YYCURSOR - SCNG(yy_text);
 4806: #line 1207 "Zend/zend_language_scanner.l"
 4807: 		{
 4808: 	return T_INT_CAST;
 4809: }
 4810: #line 4811 "Zend/zend_language_scanner.c"
 4811: yy408:
 4812: 		YYDEBUG(408, *YYCURSOR);
 4813: 		yych = *++YYCURSOR;
 4814: 		if (yych == 'E') goto yy409;
 4815: 		if (yych != 'e') goto yy193;
 4816: yy409:
 4817: 		YYDEBUG(409, *YYCURSOR);
 4818: 		yych = *++YYCURSOR;
 4819: 		if (yych == 'R') goto yy404;
 4820: 		if (yych == 'r') goto yy404;
 4821: 		goto yy193;
 4822: yy410:
 4823: 		YYDEBUG(410, *YYCURSOR);
 4824: 		yych = *++YYCURSOR;
 4825: 		if (yych == 'O') goto yy411;
 4826: 		if (yych != 'o') goto yy193;
 4827: yy411:
 4828: 		YYDEBUG(411, *YYCURSOR);
 4829: 		yych = *++YYCURSOR;
 4830: 		if (yych == 'A') goto yy412;
 4831: 		if (yych != 'a') goto yy193;
 4832: yy412:
 4833: 		YYDEBUG(412, *YYCURSOR);
 4834: 		yych = *++YYCURSOR;
 4835: 		if (yych == 'T') goto yy413;
 4836: 		if (yych != 't') goto yy193;
 4837: yy413:
 4838: 		YYDEBUG(413, *YYCURSOR);
 4839: 		++YYCURSOR;
 4840: 		YYFILL(1);
 4841: 		yych = *YYCURSOR;
 4842: 		YYDEBUG(414, *YYCURSOR);
 4843: 		if (yych <= 0x1F) {
 4844: 			if (yych == '\t') goto yy413;
 4845: 			goto yy193;
 4846: 		} else {
 4847: 			if (yych <= ' ') goto yy413;
 4848: 			if (yych != ')') goto yy193;
 4849: 		}
 4850: 		YYDEBUG(415, *YYCURSOR);
 4851: 		++YYCURSOR;
 4852: 		YYDEBUG(416, *YYCURSOR);
 4853: 		yyleng = YYCURSOR - SCNG(yy_text);
 4854: #line 1211 "Zend/zend_language_scanner.l"
 4855: 		{
 4856: 	return T_DOUBLE_CAST;
 4857: }
 4858: #line 4859 "Zend/zend_language_scanner.c"
 4859: yy417:
 4860: 		YYDEBUG(417, *YYCURSOR);
 4861: 		yych = *++YYCURSOR;
 4862: 		if (yych == 'U') goto yy418;
 4863: 		if (yych != 'u') goto yy193;
 4864: yy418:
 4865: 		YYDEBUG(418, *YYCURSOR);
 4866: 		yych = *++YYCURSOR;
 4867: 		if (yych == 'B') goto yy419;
 4868: 		if (yych != 'b') goto yy193;
 4869: yy419:
 4870: 		YYDEBUG(419, *YYCURSOR);
 4871: 		yych = *++YYCURSOR;
 4872: 		if (yych == 'L') goto yy420;
 4873: 		if (yych != 'l') goto yy193;
 4874: yy420:
 4875: 		YYDEBUG(420, *YYCURSOR);
 4876: 		yych = *++YYCURSOR;
 4877: 		if (yych == 'E') goto yy413;
 4878: 		if (yych == 'e') goto yy413;
 4879: 		goto yy193;
 4880: yy421:
 4881: 		YYDEBUG(421, *YYCURSOR);
 4882: 		yych = *++YYCURSOR;
 4883: 		if (yych == 'A') goto yy422;
 4884: 		if (yych != 'a') goto yy193;
 4885: yy422:
 4886: 		YYDEBUG(422, *YYCURSOR);
 4887: 		yych = *++YYCURSOR;
 4888: 		if (yych == 'L') goto yy413;
 4889: 		if (yych == 'l') goto yy413;
 4890: 		goto yy193;
 4891: yy423:
 4892: 		YYDEBUG(423, *YYCURSOR);
 4893: 		yych = *++YYCURSOR;
 4894: 		if (yych == 'R') goto yy424;
 4895: 		if (yych != 'r') goto yy193;
 4896: yy424:
 4897: 		YYDEBUG(424, *YYCURSOR);
 4898: 		yych = *++YYCURSOR;
 4899: 		if (yych == 'I') goto yy425;
 4900: 		if (yych != 'i') goto yy193;
 4901: yy425:
 4902: 		YYDEBUG(425, *YYCURSOR);
 4903: 		yych = *++YYCURSOR;
 4904: 		if (yych == 'N') goto yy426;
 4905: 		if (yych != 'n') goto yy193;
 4906: yy426:
 4907: 		YYDEBUG(426, *YYCURSOR);
 4908: 		yych = *++YYCURSOR;
 4909: 		if (yych == 'G') goto yy427;
 4910: 		if (yych != 'g') goto yy193;
 4911: yy427:
 4912: 		YYDEBUG(427, *YYCURSOR);
 4913: 		++YYCURSOR;
 4914: 		YYFILL(1);
 4915: 		yych = *YYCURSOR;
 4916: 		YYDEBUG(428, *YYCURSOR);
 4917: 		if (yych <= 0x1F) {
 4918: 			if (yych == '\t') goto yy427;
 4919: 			goto yy193;
 4920: 		} else {
 4921: 			if (yych <= ' ') goto yy427;
 4922: 			if (yych != ')') goto yy193;
 4923: 		}
 4924: 		YYDEBUG(429, *YYCURSOR);
 4925: 		++YYCURSOR;
 4926: 		YYDEBUG(430, *YYCURSOR);
 4927: 		yyleng = YYCURSOR - SCNG(yy_text);
 4928: #line 1215 "Zend/zend_language_scanner.l"
 4929: 		{
 4930: 	return T_STRING_CAST;
 4931: }
 4932: #line 4933 "Zend/zend_language_scanner.c"
 4933: yy431:
 4934: 		YYDEBUG(431, *YYCURSOR);
 4935: 		yych = *++YYCURSOR;
 4936: 		if (yych == 'R') goto yy432;
 4937: 		if (yych != 'r') goto yy193;
 4938: yy432:
 4939: 		YYDEBUG(432, *YYCURSOR);
 4940: 		yych = *++YYCURSOR;
 4941: 		if (yych == 'A') goto yy433;
 4942: 		if (yych != 'a') goto yy193;
 4943: yy433:
 4944: 		YYDEBUG(433, *YYCURSOR);
 4945: 		yych = *++YYCURSOR;
 4946: 		if (yych == 'Y') goto yy434;
 4947: 		if (yych != 'y') goto yy193;
 4948: yy434:
 4949: 		YYDEBUG(434, *YYCURSOR);
 4950: 		++YYCURSOR;
 4951: 		YYFILL(1);
 4952: 		yych = *YYCURSOR;
 4953: 		YYDEBUG(435, *YYCURSOR);
 4954: 		if (yych <= 0x1F) {
 4955: 			if (yych == '\t') goto yy434;
 4956: 			goto yy193;
 4957: 		} else {
 4958: 			if (yych <= ' ') goto yy434;
 4959: 			if (yych != ')') goto yy193;
 4960: 		}
 4961: 		YYDEBUG(436, *YYCURSOR);
 4962: 		++YYCURSOR;
 4963: 		YYDEBUG(437, *YYCURSOR);
 4964: 		yyleng = YYCURSOR - SCNG(yy_text);
 4965: #line 1219 "Zend/zend_language_scanner.l"
 4966: 		{
 4967: 	return T_ARRAY_CAST;
 4968: }
 4969: #line 4970 "Zend/zend_language_scanner.c"
 4970: yy438:
 4971: 		YYDEBUG(438, *YYCURSOR);
 4972: 		yych = *++YYCURSOR;
 4973: 		if (yych == 'J') goto yy439;
 4974: 		if (yych != 'j') goto yy193;
 4975: yy439:
 4976: 		YYDEBUG(439, *YYCURSOR);
 4977: 		yych = *++YYCURSOR;
 4978: 		if (yych == 'E') goto yy440;
 4979: 		if (yych != 'e') goto yy193;
 4980: yy440:
 4981: 		YYDEBUG(440, *YYCURSOR);
 4982: 		yych = *++YYCURSOR;
 4983: 		if (yych == 'C') goto yy441;
 4984: 		if (yych != 'c') goto yy193;
 4985: yy441:
 4986: 		YYDEBUG(441, *YYCURSOR);
 4987: 		yych = *++YYCURSOR;
 4988: 		if (yych == 'T') goto yy442;
 4989: 		if (yych != 't') goto yy193;
 4990: yy442:
 4991: 		YYDEBUG(442, *YYCURSOR);
 4992: 		++YYCURSOR;
 4993: 		YYFILL(1);
 4994: 		yych = *YYCURSOR;
 4995: 		YYDEBUG(443, *YYCURSOR);
 4996: 		if (yych <= 0x1F) {
 4997: 			if (yych == '\t') goto yy442;
 4998: 			goto yy193;
 4999: 		} else {
 5000: 			if (yych <= ' ') goto yy442;
 5001: 			if (yych != ')') goto yy193;
 5002: 		}
 5003: 		YYDEBUG(444, *YYCURSOR);
 5004: 		++YYCURSOR;
 5005: 		YYDEBUG(445, *YYCURSOR);
 5006: 		yyleng = YYCURSOR - SCNG(yy_text);
 5007: #line 1223 "Zend/zend_language_scanner.l"
 5008: 		{
 5009: 	return T_OBJECT_CAST;
 5010: }
 5011: #line 5012 "Zend/zend_language_scanner.c"
 5012: yy446:
 5013: 		YYDEBUG(446, *YYCURSOR);
 5014: 		yych = *++YYCURSOR;
 5015: 		if (yych == 'N') goto yy456;
 5016: 		if (yych == 'n') goto yy456;
 5017: 		goto yy193;
 5018: yy447:
 5019: 		YYDEBUG(447, *YYCURSOR);
 5020: 		yych = *++YYCURSOR;
 5021: 		if (yych == 'O') goto yy448;
 5022: 		if (yych != 'o') goto yy193;
 5023: yy448:
 5024: 		YYDEBUG(448, *YYCURSOR);
 5025: 		yych = *++YYCURSOR;
 5026: 		if (yych == 'L') goto yy449;
 5027: 		if (yych != 'l') goto yy193;
 5028: yy449:
 5029: 		YYDEBUG(449, *YYCURSOR);
 5030: 		yych = *++YYCURSOR;
 5031: 		if (yych == 'E') goto yy454;
 5032: 		if (yych == 'e') goto yy454;
 5033: 		goto yy451;
 5034: yy450:
 5035: 		YYDEBUG(450, *YYCURSOR);
 5036: 		++YYCURSOR;
 5037: 		YYFILL(1);
 5038: 		yych = *YYCURSOR;
 5039: yy451:
 5040: 		YYDEBUG(451, *YYCURSOR);
 5041: 		if (yych <= 0x1F) {
 5042: 			if (yych == '\t') goto yy450;
 5043: 			goto yy193;
 5044: 		} else {
 5045: 			if (yych <= ' ') goto yy450;
 5046: 			if (yych != ')') goto yy193;
 5047: 		}
 5048: 		YYDEBUG(452, *YYCURSOR);
 5049: 		++YYCURSOR;
 5050: 		YYDEBUG(453, *YYCURSOR);
 5051: 		yyleng = YYCURSOR - SCNG(yy_text);
 5052: #line 1227 "Zend/zend_language_scanner.l"
 5053: 		{
 5054: 	return T_BOOL_CAST;
 5055: }
 5056: #line 5057 "Zend/zend_language_scanner.c"
 5057: yy454:
 5058: 		YYDEBUG(454, *YYCURSOR);
 5059: 		yych = *++YYCURSOR;
 5060: 		if (yych == 'A') goto yy455;
 5061: 		if (yych != 'a') goto yy193;
 5062: yy455:
 5063: 		YYDEBUG(455, *YYCURSOR);
 5064: 		yych = *++YYCURSOR;
 5065: 		if (yych == 'N') goto yy450;
 5066: 		if (yych == 'n') goto yy450;
 5067: 		goto yy193;
 5068: yy456:
 5069: 		YYDEBUG(456, *YYCURSOR);
 5070: 		yych = *++YYCURSOR;
 5071: 		if (yych == 'A') goto yy457;
 5072: 		if (yych != 'a') goto yy193;
 5073: yy457:
 5074: 		YYDEBUG(457, *YYCURSOR);
 5075: 		yych = *++YYCURSOR;
 5076: 		if (yych == 'R') goto yy458;
 5077: 		if (yych != 'r') goto yy193;
 5078: yy458:
 5079: 		YYDEBUG(458, *YYCURSOR);
 5080: 		yych = *++YYCURSOR;
 5081: 		if (yych == 'Y') goto yy427;
 5082: 		if (yych == 'y') goto yy427;
 5083: 		goto yy193;
 5084: yy459:
 5085: 		YYDEBUG(459, *YYCURSOR);
 5086: 		yych = *++YYCURSOR;
 5087: 		if (yych == 'S') goto yy460;
 5088: 		if (yych != 's') goto yy193;
 5089: yy460:
 5090: 		YYDEBUG(460, *YYCURSOR);
 5091: 		yych = *++YYCURSOR;
 5092: 		if (yych == 'E') goto yy461;
 5093: 		if (yych != 'e') goto yy193;
 5094: yy461:
 5095: 		YYDEBUG(461, *YYCURSOR);
 5096: 		yych = *++YYCURSOR;
 5097: 		if (yych == 'T') goto yy462;
 5098: 		if (yych != 't') goto yy193;
 5099: yy462:
 5100: 		YYDEBUG(462, *YYCURSOR);
 5101: 		++YYCURSOR;
 5102: 		YYFILL(1);
 5103: 		yych = *YYCURSOR;
 5104: 		YYDEBUG(463, *YYCURSOR);
 5105: 		if (yych <= 0x1F) {
 5106: 			if (yych == '\t') goto yy462;
 5107: 			goto yy193;
 5108: 		} else {
 5109: 			if (yych <= ' ') goto yy462;
 5110: 			if (yych != ')') goto yy193;
 5111: 		}
 5112: 		YYDEBUG(464, *YYCURSOR);
 5113: 		++YYCURSOR;
 5114: 		YYDEBUG(465, *YYCURSOR);
 5115: 		yyleng = YYCURSOR - SCNG(yy_text);
 5116: #line 1231 "Zend/zend_language_scanner.l"
 5117: 		{
 5118: 	return T_UNSET_CAST;
 5119: }
 5120: #line 5121 "Zend/zend_language_scanner.c"
 5121: yy466:
 5122: 		YYDEBUG(466, *YYCURSOR);
 5123: 		yych = *++YYCURSOR;
 5124: 		if (yych == 'R') goto yy467;
 5125: 		if (yych != 'r') goto yy186;
 5126: yy467:
 5127: 		YYDEBUG(467, *YYCURSOR);
 5128: 		++YYCURSOR;
 5129: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 5130: 			goto yy185;
 5131: 		}
 5132: 		YYDEBUG(468, *YYCURSOR);
 5133: 		yyleng = YYCURSOR - SCNG(yy_text);
 5134: #line 1203 "Zend/zend_language_scanner.l"
 5135: 		{
 5136: 	return T_VAR;
 5137: }
 5138: #line 5139 "Zend/zend_language_scanner.c"
 5139: yy469:
 5140: 		YYDEBUG(469, *YYCURSOR);
 5141: 		yych = *++YYCURSOR;
 5142: 		if (yych == 'M') goto yy473;
 5143: 		if (yych == 'm') goto yy473;
 5144: 		goto yy186;
 5145: yy470:
 5146: 		YYDEBUG(470, *YYCURSOR);
 5147: 		yych = *++YYCURSOR;
 5148: 		if (yych == 'W') goto yy471;
 5149: 		if (yych != 'w') goto yy186;
 5150: yy471:
 5151: 		YYDEBUG(471, *YYCURSOR);
 5152: 		++YYCURSOR;
 5153: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 5154: 			goto yy185;
 5155: 		}
 5156: 		YYDEBUG(472, *YYCURSOR);
 5157: 		yyleng = YYCURSOR - SCNG(yy_text);
 5158: #line 1195 "Zend/zend_language_scanner.l"
 5159: 		{
 5160: 	return T_NEW;
 5161: }
 5162: #line 5163 "Zend/zend_language_scanner.c"
 5163: yy473:
 5164: 		YYDEBUG(473, *YYCURSOR);
 5165: 		yych = *++YYCURSOR;
 5166: 		if (yych == 'E') goto yy474;
 5167: 		if (yych != 'e') goto yy186;
 5168: yy474:
 5169: 		YYDEBUG(474, *YYCURSOR);
 5170: 		yych = *++YYCURSOR;
 5171: 		if (yych == 'S') goto yy475;
 5172: 		if (yych != 's') goto yy186;
 5173: yy475:
 5174: 		YYDEBUG(475, *YYCURSOR);
 5175: 		yych = *++YYCURSOR;
 5176: 		if (yych == 'P') goto yy476;
 5177: 		if (yych != 'p') goto yy186;
 5178: yy476:
 5179: 		YYDEBUG(476, *YYCURSOR);
 5180: 		yych = *++YYCURSOR;
 5181: 		if (yych == 'A') goto yy477;
 5182: 		if (yych != 'a') goto yy186;
 5183: yy477:
 5184: 		YYDEBUG(477, *YYCURSOR);
 5185: 		yych = *++YYCURSOR;
 5186: 		if (yych == 'C') goto yy478;
 5187: 		if (yych != 'c') goto yy186;
 5188: yy478:
 5189: 		YYDEBUG(478, *YYCURSOR);
 5190: 		yych = *++YYCURSOR;
 5191: 		if (yych == 'E') goto yy479;
 5192: 		if (yych != 'e') goto yy186;
 5193: yy479:
 5194: 		YYDEBUG(479, *YYCURSOR);
 5195: 		++YYCURSOR;
 5196: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 5197: 			goto yy185;
 5198: 		}
 5199: 		YYDEBUG(480, *YYCURSOR);
 5200: 		yyleng = YYCURSOR - SCNG(yy_text);
 5201: #line 1255 "Zend/zend_language_scanner.l"
 5202: 		{
 5203: 	return T_NAMESPACE;
 5204: }
 5205: #line 5206 "Zend/zend_language_scanner.c"
 5206: yy481:
 5207: 		YYDEBUG(481, *YYCURSOR);
 5208: 		++YYCURSOR;
 5209: 		YYDEBUG(482, *YYCURSOR);
 5210: 		yyleng = YYCURSOR - SCNG(yy_text);
 5211: #line 1187 "Zend/zend_language_scanner.l"
 5212: 		{
 5213: 	return T_PAAMAYIM_NEKUDOTAYIM;
 5214: }
 5215: #line 5216 "Zend/zend_language_scanner.c"
 5216: yy483:
 5217: 		YYDEBUG(483, *YYCURSOR);
 5218: 		++YYCURSOR;
 5219: 		YYFILL(1);
 5220: 		yych = *YYCURSOR;
 5221: yy484:
 5222: 		YYDEBUG(484, *YYCURSOR);
 5223: 		if (yych <= '\f') {
 5224: 			if (yych <= 0x08) goto yy140;
 5225: 			if (yych <= '\n') goto yy483;
 5226: 			goto yy140;
 5227: 		} else {
 5228: 			if (yych <= '\r') goto yy483;
 5229: 			if (yych == ' ') goto yy483;
 5230: 			goto yy140;
 5231: 		}
 5232: yy485:
 5233: 		YYDEBUG(485, *YYCURSOR);
 5234: 		++YYCURSOR;
 5235: 		YYDEBUG(486, *YYCURSOR);
 5236: 		yyleng = YYCURSOR - SCNG(yy_text);
 5237: #line 1363 "Zend/zend_language_scanner.l"
 5238: 		{
 5239: 	return T_MINUS_EQUAL;
 5240: }
 5241: #line 5242 "Zend/zend_language_scanner.c"
 5242: yy487:
 5243: 		YYDEBUG(487, *YYCURSOR);
 5244: 		++YYCURSOR;
 5245: 		YYDEBUG(488, *YYCURSOR);
 5246: 		yyleng = YYCURSOR - SCNG(yy_text);
 5247: #line 1331 "Zend/zend_language_scanner.l"
 5248: 		{
 5249: 	return T_DEC;
 5250: }
 5251: #line 5252 "Zend/zend_language_scanner.c"
 5252: yy489:
 5253: 		YYDEBUG(489, *YYCURSOR);
 5254: 		++YYCURSOR;
 5255: 		YYDEBUG(490, *YYCURSOR);
 5256: 		yyleng = YYCURSOR - SCNG(yy_text);
 5257: #line 1157 "Zend/zend_language_scanner.l"
 5258: 		{
 5259: 	yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
 5260: 	return T_OBJECT_OPERATOR;
 5261: }
 5262: #line 5263 "Zend/zend_language_scanner.c"
 5263: yy491:
 5264: 		YYDEBUG(491, *YYCURSOR);
 5265: 		yych = *++YYCURSOR;
 5266: 		if (yych <= 'O') {
 5267: 			if (yych == 'I') goto yy498;
 5268: 			if (yych <= 'N') goto yy186;
 5269: 			goto yy499;
 5270: 		} else {
 5271: 			if (yych <= 'i') {
 5272: 				if (yych <= 'h') goto yy186;
 5273: 				goto yy498;
 5274: 			} else {
 5275: 				if (yych == 'o') goto yy499;
 5276: 				goto yy186;
 5277: 			}
 5278: 		}
 5279: yy492:
 5280: 		YYDEBUG(492, *YYCURSOR);
 5281: 		yych = *++YYCURSOR;
 5282: 		if (yych == 'B') goto yy493;
 5283: 		if (yych != 'b') goto yy186;
 5284: yy493:
 5285: 		YYDEBUG(493, *YYCURSOR);
 5286: 		yych = *++YYCURSOR;
 5287: 		if (yych == 'L') goto yy494;
 5288: 		if (yych != 'l') goto yy186;
 5289: yy494:
 5290: 		YYDEBUG(494, *YYCURSOR);
 5291: 		yych = *++YYCURSOR;
 5292: 		if (yych == 'I') goto yy495;
 5293: 		if (yych != 'i') goto yy186;
 5294: yy495:
 5295: 		YYDEBUG(495, *YYCURSOR);
 5296: 		yych = *++YYCURSOR;
 5297: 		if (yych == 'C') goto yy496;
 5298: 		if (yych != 'c') goto yy186;
 5299: yy496:
 5300: 		YYDEBUG(496, *YYCURSOR);
 5301: 		++YYCURSOR;
 5302: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 5303: 			goto yy185;
 5304: 		}
 5305: 		YYDEBUG(497, *YYCURSOR);
 5306: 		yyleng = YYCURSOR - SCNG(yy_text);
 5307: #line 1303 "Zend/zend_language_scanner.l"
 5308: 		{
 5309: 	return T_PUBLIC;
 5310: }
 5311: #line 5312 "Zend/zend_language_scanner.c"
 5312: yy498:
 5313: 		YYDEBUG(498, *YYCURSOR);
 5314: 		yych = *++YYCURSOR;
 5315: 		if (yych <= 'V') {
 5316: 			if (yych == 'N') goto yy507;
 5317: 			if (yych <= 'U') goto yy186;
 5318: 			goto yy508;
 5319: 		} else {
 5320: 			if (yych <= 'n') {
 5321: 				if (yych <= 'm') goto yy186;
 5322: 				goto yy507;
 5323: 			} else {
 5324: 				if (yych == 'v') goto yy508;
 5325: 				goto yy186;
 5326: 			}
 5327: 		}
 5328: yy499:
 5329: 		YYDEBUG(499, *YYCURSOR);
 5330: 		yych = *++YYCURSOR;
 5331: 		if (yych == 'T') goto yy500;
 5332: 		if (yych != 't') goto yy186;
 5333: yy500:
 5334: 		YYDEBUG(500, *YYCURSOR);
 5335: 		yych = *++YYCURSOR;
 5336: 		if (yych == 'E') goto yy501;
 5337: 		if (yych != 'e') goto yy186;
 5338: yy501:
 5339: 		YYDEBUG(501, *YYCURSOR);
 5340: 		yych = *++YYCURSOR;
 5341: 		if (yych == 'C') goto yy502;
 5342: 		if (yych != 'c') goto yy186;
 5343: yy502:
 5344: 		YYDEBUG(502, *YYCURSOR);
 5345: 		yych = *++YYCURSOR;
 5346: 		if (yych == 'T') goto yy503;
 5347: 		if (yych != 't') goto yy186;
 5348: yy503:
 5349: 		YYDEBUG(503, *YYCURSOR);
 5350: 		yych = *++YYCURSOR;
 5351: 		if (yych == 'E') goto yy504;
 5352: 		if (yych != 'e') goto yy186;
 5353: yy504:
 5354: 		YYDEBUG(504, *YYCURSOR);
 5355: 		yych = *++YYCURSOR;
 5356: 		if (yych == 'D') goto yy505;
 5357: 		if (yych != 'd') goto yy186;
 5358: yy505:
 5359: 		YYDEBUG(505, *YYCURSOR);
 5360: 		++YYCURSOR;
 5361: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 5362: 			goto yy185;
 5363: 		}
 5364: 		YYDEBUG(506, *YYCURSOR);
 5365: 		yyleng = YYCURSOR - SCNG(yy_text);
 5366: #line 1299 "Zend/zend_language_scanner.l"
 5367: 		{
 5368: 	return T_PROTECTED;
 5369: }
 5370: #line 5371 "Zend/zend_language_scanner.c"
 5371: yy507:
 5372: 		YYDEBUG(507, *YYCURSOR);
 5373: 		yych = *++YYCURSOR;
 5374: 		if (yych == 'T') goto yy513;
 5375: 		if (yych == 't') goto yy513;
 5376: 		goto yy186;
 5377: yy508:
 5378: 		YYDEBUG(508, *YYCURSOR);
 5379: 		yych = *++YYCURSOR;
 5380: 		if (yych == 'A') goto yy509;
 5381: 		if (yych != 'a') goto yy186;
 5382: yy509:
 5383: 		YYDEBUG(509, *YYCURSOR);
 5384: 		yych = *++YYCURSOR;
 5385: 		if (yych == 'T') goto yy510;
 5386: 		if (yych != 't') goto yy186;
 5387: yy510:
 5388: 		YYDEBUG(510, *YYCURSOR);
 5389: 		yych = *++YYCURSOR;
 5390: 		if (yych == 'E') goto yy511;
 5391: 		if (yych != 'e') goto yy186;
 5392: yy511:
 5393: 		YYDEBUG(511, *YYCURSOR);
 5394: 		++YYCURSOR;
 5395: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 5396: 			goto yy185;
 5397: 		}
 5398: 		YYDEBUG(512, *YYCURSOR);
 5399: 		yyleng = YYCURSOR - SCNG(yy_text);
 5400: #line 1295 "Zend/zend_language_scanner.l"
 5401: 		{
 5402: 	return T_PRIVATE;
 5403: }
 5404: #line 5405 "Zend/zend_language_scanner.c"
 5405: yy513:
 5406: 		YYDEBUG(513, *YYCURSOR);
 5407: 		++YYCURSOR;
 5408: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 5409: 			goto yy185;
 5410: 		}
 5411: 		YYDEBUG(514, *YYCURSOR);
 5412: 		yyleng = YYCURSOR - SCNG(yy_text);
 5413: #line 1133 "Zend/zend_language_scanner.l"
 5414: 		{
 5415: 	return T_PRINT;
 5416: }
 5417: #line 5418 "Zend/zend_language_scanner.c"
 5418: yy515:
 5419: 		YYDEBUG(515, *YYCURSOR);
 5420: 		yych = *++YYCURSOR;
 5421: 		if (yych == 'O') goto yy520;
 5422: 		if (yych == 'o') goto yy520;
 5423: 		goto yy186;
 5424: yy516:
 5425: 		YYDEBUG(516, *YYCURSOR);
 5426: 		yych = *++YYCURSOR;
 5427: 		if (yych == 'T') goto yy517;
 5428: 		if (yych != 't') goto yy186;
 5429: yy517:
 5430: 		YYDEBUG(517, *YYCURSOR);
 5431: 		yych = *++YYCURSOR;
 5432: 		if (yych == 'O') goto yy518;
 5433: 		if (yych != 'o') goto yy186;
 5434: yy518:
 5435: 		YYDEBUG(518, *YYCURSOR);
 5436: 		++YYCURSOR;
 5437: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 5438: 			goto yy185;
 5439: 		}
 5440: 		YYDEBUG(519, *YYCURSOR);
 5441: 		yyleng = YYCURSOR - SCNG(yy_text);
 5442: #line 1125 "Zend/zend_language_scanner.l"
 5443: 		{
 5444: 	return T_GOTO;
 5445: }
 5446: #line 5447 "Zend/zend_language_scanner.c"
 5447: yy520:
 5448: 		YYDEBUG(520, *YYCURSOR);
 5449: 		yych = *++YYCURSOR;
 5450: 		if (yych == 'B') goto yy521;
 5451: 		if (yych != 'b') goto yy186;
 5452: yy521:
 5453: 		YYDEBUG(521, *YYCURSOR);
 5454: 		yych = *++YYCURSOR;
 5455: 		if (yych == 'A') goto yy522;
 5456: 		if (yych != 'a') goto yy186;
 5457: yy522:
 5458: 		YYDEBUG(522, *YYCURSOR);
 5459: 		yych = *++YYCURSOR;
 5460: 		if (yych == 'L') goto yy523;
 5461: 		if (yych != 'l') goto yy186;
 5462: yy523:
 5463: 		YYDEBUG(523, *YYCURSOR);
 5464: 		++YYCURSOR;
 5465: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 5466: 			goto yy185;
 5467: 		}
 5468: 		YYDEBUG(524, *YYCURSOR);
 5469: 		yyleng = YYCURSOR - SCNG(yy_text);
 5470: #line 1267 "Zend/zend_language_scanner.l"
 5471: 		{
 5472: 	return T_GLOBAL;
 5473: }
 5474: #line 5475 "Zend/zend_language_scanner.c"
 5475: yy525:
 5476: 		YYDEBUG(525, *YYCURSOR);
 5477: 		yych = *++YYCURSOR;
 5478: 		if (yych == '<') goto yy533;
 5479: 		goto yy193;
 5480: yy526:
 5481: 		YYDEBUG(526, *YYCURSOR);
 5482: 		yych = *++YYCURSOR;
 5483: 		goto yy180;
 5484: yy527:
 5485: 		YYDEBUG(527, *YYCURSOR);
 5486: 		yych = *++YYCURSOR;
 5487: 		goto yy178;
 5488: yy528:
 5489: 		YYDEBUG(528, *YYCURSOR);
 5490: 		yych = *++YYCURSOR;
 5491: 		if (yych == 'E') goto yy529;
 5492: 		if (yych != 'e') goto yy186;
 5493: yy529:
 5494: 		YYDEBUG(529, *YYCURSOR);
 5495: 		yych = *++YYCURSOR;
 5496: 		if (yych == 'A') goto yy530;
 5497: 		if (yych != 'a') goto yy186;
 5498: yy530:
 5499: 		YYDEBUG(530, *YYCURSOR);
 5500: 		yych = *++YYCURSOR;
 5501: 		if (yych == 'K') goto yy531;
 5502: 		if (yych != 'k') goto yy186;
 5503: yy531:
 5504: 		YYDEBUG(531, *YYCURSOR);
 5505: 		++YYCURSOR;
 5506: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 5507: 			goto yy185;
 5508: 		}
 5509: 		YYDEBUG(532, *YYCURSOR);
 5510: 		yyleng = YYCURSOR - SCNG(yy_text);
 5511: #line 1117 "Zend/zend_language_scanner.l"
 5512: 		{
 5513: 	return T_BREAK;
 5514: }
 5515: #line 5516 "Zend/zend_language_scanner.c"
 5516: yy533:
 5517: 		YYDEBUG(533, *YYCURSOR);
 5518: 		yych = *++YYCURSOR;
 5519: 		if (yych == '<') goto yy269;
 5520: 		goto yy193;
 5521: yy534:
 5522: 		YYDEBUG(534, *YYCURSOR);
 5523: 		yych = *++YYCURSOR;
 5524: 		if (yych == 'A') goto yy541;
 5525: 		if (yych == 'a') goto yy541;
 5526: 		goto yy186;
 5527: yy535:
 5528: 		YYDEBUG(535, *YYCURSOR);
 5529: 		yych = *++YYCURSOR;
 5530: 		if (yych == 'I') goto yy536;
 5531: 		if (yych != 'i') goto yy186;
 5532: yy536:
 5533: 		YYDEBUG(536, *YYCURSOR);
 5534: 		yych = *++YYCURSOR;
 5535: 		if (yych == 'T') goto yy537;
 5536: 		if (yych != 't') goto yy186;
 5537: yy537:
 5538: 		YYDEBUG(537, *YYCURSOR);
 5539: 		yych = *++YYCURSOR;
 5540: 		if (yych == 'C') goto yy538;
 5541: 		if (yych != 'c') goto yy186;
 5542: yy538:
 5543: 		YYDEBUG(538, *YYCURSOR);
 5544: 		yych = *++YYCURSOR;
 5545: 		if (yych == 'H') goto yy539;
 5546: 		if (yych != 'h') goto yy186;
 5547: yy539:
 5548: 		YYDEBUG(539, *YYCURSOR);
 5549: 		++YYCURSOR;
 5550: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 5551: 			goto yy185;
 5552: 		}
 5553: 		YYDEBUG(540, *YYCURSOR);
 5554: 		yyleng = YYCURSOR - SCNG(yy_text);
 5555: #line 1101 "Zend/zend_language_scanner.l"
 5556: 		{
 5557: 	return T_SWITCH;
 5558: }
 5559: #line 5560 "Zend/zend_language_scanner.c"
 5560: yy541:
 5561: 		YYDEBUG(541, *YYCURSOR);
 5562: 		yych = *++YYCURSOR;
 5563: 		if (yych == 'T') goto yy542;
 5564: 		if (yych != 't') goto yy186;
 5565: yy542:
 5566: 		YYDEBUG(542, *YYCURSOR);
 5567: 		yych = *++YYCURSOR;
 5568: 		if (yych == 'I') goto yy543;
 5569: 		if (yych != 'i') goto yy186;
 5570: yy543:
 5571: 		YYDEBUG(543, *YYCURSOR);
 5572: 		yych = *++YYCURSOR;
 5573: 		if (yych == 'C') goto yy544;
 5574: 		if (yych != 'c') goto yy186;
 5575: yy544:
 5576: 		YYDEBUG(544, *YYCURSOR);
 5577: 		++YYCURSOR;
 5578: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 5579: 			goto yy185;
 5580: 		}
 5581: 		YYDEBUG(545, *YYCURSOR);
 5582: 		yyleng = YYCURSOR - SCNG(yy_text);
 5583: #line 1283 "Zend/zend_language_scanner.l"
 5584: 		{
 5585: 	return T_STATIC;
 5586: }
 5587: #line 5588 "Zend/zend_language_scanner.c"
 5588: yy546:
 5589: 		YYDEBUG(546, *YYCURSOR);
 5590: 		yych = *++YYCURSOR;
 5591: 		if (yych == 'S') goto yy557;
 5592: 		if (yych == 's') goto yy557;
 5593: 		goto yy186;
 5594: yy547:
 5595: 		YYDEBUG(547, *YYCURSOR);
 5596: 		yych = *++YYCURSOR;
 5597: 		if (yych == 'D') goto yy555;
 5598: 		if (yych == 'd') goto yy555;
 5599: 		goto yy186;
 5600: yy548:
 5601: 		YYDEBUG(548, *YYCURSOR);
 5602: 		yych = *++YYCURSOR;
 5603: 		if (yych == 'R') goto yy551;
 5604: 		if (yych == 'r') goto yy551;
 5605: 		goto yy186;
 5606: yy549:
 5607: 		YYDEBUG(549, *YYCURSOR);
 5608: 		++YYCURSOR;
 5609: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 5610: 			goto yy185;
 5611: 		}
 5612: 		YYDEBUG(550, *YYCURSOR);
 5613: 		yyleng = YYCURSOR - SCNG(yy_text);
 5614: #line 1097 "Zend/zend_language_scanner.l"
 5615: 		{
 5616: 	return T_AS;
 5617: }
 5618: #line 5619 "Zend/zend_language_scanner.c"
 5619: yy551:
 5620: 		YYDEBUG(551, *YYCURSOR);
 5621: 		yych = *++YYCURSOR;
 5622: 		if (yych == 'A') goto yy552;
 5623: 		if (yych != 'a') goto yy186;
 5624: yy552:
 5625: 		YYDEBUG(552, *YYCURSOR);
 5626: 		yych = *++YYCURSOR;
 5627: 		if (yych == 'Y') goto yy553;
 5628: 		if (yych != 'y') goto yy186;
 5629: yy553:
 5630: 		YYDEBUG(553, *YYCURSOR);
 5631: 		++YYCURSOR;
 5632: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 5633: 			goto yy185;
 5634: 		}
 5635: 		YYDEBUG(554, *YYCURSOR);
 5636: 		yyleng = YYCURSOR - SCNG(yy_text);
 5637: #line 1319 "Zend/zend_language_scanner.l"
 5638: 		{
 5639: 	return T_ARRAY;
 5640: }
 5641: #line 5642 "Zend/zend_language_scanner.c"
 5642: yy555:
 5643: 		YYDEBUG(555, *YYCURSOR);
 5644: 		++YYCURSOR;
 5645: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 5646: 			goto yy185;
 5647: 		}
 5648: 		YYDEBUG(556, *YYCURSOR);
 5649: 		yyleng = YYCURSOR - SCNG(yy_text);
 5650: #line 1415 "Zend/zend_language_scanner.l"
 5651: 		{
 5652: 	return T_LOGICAL_AND;
 5653: }
 5654: #line 5655 "Zend/zend_language_scanner.c"
 5655: yy557:
 5656: 		YYDEBUG(557, *YYCURSOR);
 5657: 		yych = *++YYCURSOR;
 5658: 		if (yych == 'T') goto yy558;
 5659: 		if (yych != 't') goto yy186;
 5660: yy558:
 5661: 		YYDEBUG(558, *YYCURSOR);
 5662: 		yych = *++YYCURSOR;
 5663: 		if (yych == 'R') goto yy559;
 5664: 		if (yych != 'r') goto yy186;
 5665: yy559:
 5666: 		YYDEBUG(559, *YYCURSOR);
 5667: 		yych = *++YYCURSOR;
 5668: 		if (yych == 'A') goto yy560;
 5669: 		if (yych != 'a') goto yy186;
 5670: yy560:
 5671: 		YYDEBUG(560, *YYCURSOR);
 5672: 		yych = *++YYCURSOR;
 5673: 		if (yych == 'C') goto yy561;
 5674: 		if (yych != 'c') goto yy186;
 5675: yy561:
 5676: 		YYDEBUG(561, *YYCURSOR);
 5677: 		yych = *++YYCURSOR;
 5678: 		if (yych == 'T') goto yy562;
 5679: 		if (yych != 't') goto yy186;
 5680: yy562:
 5681: 		YYDEBUG(562, *YYCURSOR);
 5682: 		++YYCURSOR;
 5683: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 5684: 			goto yy185;
 5685: 		}
 5686: 		YYDEBUG(563, *YYCURSOR);
 5687: 		yyleng = YYCURSOR - SCNG(yy_text);
 5688: #line 1287 "Zend/zend_language_scanner.l"
 5689: 		{
 5690: 	return T_ABSTRACT;
 5691: }
 5692: #line 5693 "Zend/zend_language_scanner.c"
 5693: yy564:
 5694: 		YYDEBUG(564, *YYCURSOR);
 5695: 		yych = *++YYCURSOR;
 5696: 		if (yych == 'I') goto yy565;
 5697: 		if (yych != 'i') goto yy186;
 5698: yy565:
 5699: 		YYDEBUG(565, *YYCURSOR);
 5700: 		yych = *++YYCURSOR;
 5701: 		if (yych == 'L') goto yy566;
 5702: 		if (yych != 'l') goto yy186;
 5703: yy566:
 5704: 		YYDEBUG(566, *YYCURSOR);
 5705: 		yych = *++YYCURSOR;
 5706: 		if (yych == 'E') goto yy567;
 5707: 		if (yych != 'e') goto yy186;
 5708: yy567:
 5709: 		YYDEBUG(567, *YYCURSOR);
 5710: 		++YYCURSOR;
 5711: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 5712: 			goto yy185;
 5713: 		}
 5714: 		YYDEBUG(568, *YYCURSOR);
 5715: 		yyleng = YYCURSOR - SCNG(yy_text);
 5716: #line 1057 "Zend/zend_language_scanner.l"
 5717: 		{
 5718: 	return T_WHILE;
 5719: }
 5720: #line 5721 "Zend/zend_language_scanner.c"
 5721: yy569:
 5722: 		YYDEBUG(569, *YYCURSOR);
 5723: 		++YYCURSOR;
 5724: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 5725: 			goto yy185;
 5726: 		}
 5727: 		YYDEBUG(570, *YYCURSOR);
 5728: 		yyleng = YYCURSOR - SCNG(yy_text);
 5729: #line 1041 "Zend/zend_language_scanner.l"
 5730: 		{
 5731: 	return T_IF;
 5732: }
 5733: #line 5734 "Zend/zend_language_scanner.c"
 5734: yy571:
 5735: 		YYDEBUG(571, *YYCURSOR);
 5736: 		yych = *++YYCURSOR;
 5737: 		if (yych == 'P') goto yy613;
 5738: 		if (yych == 'p') goto yy613;
 5739: 		goto yy186;
 5740: yy572:
 5741: 		YYDEBUG(572, *YYCURSOR);
 5742: 		yych = *++YYCURSOR;
 5743: 		if (yych <= 'T') {
 5744: 			if (yych <= 'C') {
 5745: 				if (yych <= 'B') goto yy186;
 5746: 				goto yy580;
 5747: 			} else {
 5748: 				if (yych <= 'R') goto yy186;
 5749: 				if (yych <= 'S') goto yy578;
 5750: 				goto yy579;
 5751: 			}
 5752: 		} else {
 5753: 			if (yych <= 'r') {
 5754: 				if (yych == 'c') goto yy580;
 5755: 				goto yy186;
 5756: 			} else {
 5757: 				if (yych <= 's') goto yy578;
 5758: 				if (yych <= 't') goto yy579;
 5759: 				goto yy186;
 5760: 			}
 5761: 		}
 5762: yy573:
 5763: 		YYDEBUG(573, *YYCURSOR);
 5764: 		yych = *++YYCURSOR;
 5765: 		if (yych == 'S') goto yy574;
 5766: 		if (yych != 's') goto yy186;
 5767: yy574:
 5768: 		YYDEBUG(574, *YYCURSOR);
 5769: 		yych = *++YYCURSOR;
 5770: 		if (yych == 'E') goto yy575;
 5771: 		if (yych != 'e') goto yy186;
 5772: yy575:
 5773: 		YYDEBUG(575, *YYCURSOR);
 5774: 		yych = *++YYCURSOR;
 5775: 		if (yych == 'T') goto yy576;
 5776: 		if (yych != 't') goto yy186;
 5777: yy576:
 5778: 		YYDEBUG(576, *YYCURSOR);
 5779: 		++YYCURSOR;
 5780: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 5781: 			goto yy185;
 5782: 		}
 5783: 		YYDEBUG(577, *YYCURSOR);
 5784: 		yyleng = YYCURSOR - SCNG(yy_text);
 5785: #line 1271 "Zend/zend_language_scanner.l"
 5786: 		{
 5787: 	return T_ISSET;
 5788: }
 5789: #line 5790 "Zend/zend_language_scanner.c"
 5790: yy578:
 5791: 		YYDEBUG(578, *YYCURSOR);
 5792: 		yych = *++YYCURSOR;
 5793: 		if (yych == 'T') goto yy599;
 5794: 		if (yych == 't') goto yy599;
 5795: 		goto yy186;
 5796: yy579:
 5797: 		YYDEBUG(579, *YYCURSOR);
 5798: 		yych = *++YYCURSOR;
 5799: 		if (yych == 'E') goto yy592;
 5800: 		if (yych == 'e') goto yy592;
 5801: 		goto yy186;
 5802: yy580:
 5803: 		YYDEBUG(580, *YYCURSOR);
 5804: 		yych = *++YYCURSOR;
 5805: 		if (yych == 'L') goto yy581;
 5806: 		if (yych != 'l') goto yy186;
 5807: yy581:
 5808: 		YYDEBUG(581, *YYCURSOR);
 5809: 		yych = *++YYCURSOR;
 5810: 		if (yych == 'U') goto yy582;
 5811: 		if (yych != 'u') goto yy186;
 5812: yy582:
 5813: 		YYDEBUG(582, *YYCURSOR);
 5814: 		yych = *++YYCURSOR;
 5815: 		if (yych == 'D') goto yy583;
 5816: 		if (yych != 'd') goto yy186;
 5817: yy583:
 5818: 		YYDEBUG(583, *YYCURSOR);
 5819: 		yych = *++YYCURSOR;
 5820: 		if (yych == 'E') goto yy584;
 5821: 		if (yych != 'e') goto yy186;
 5822: yy584:
 5823: 		YYDEBUG(584, *YYCURSOR);
 5824: 		++YYCURSOR;
 5825: 		if ((yych = *YYCURSOR) <= '^') {
 5826: 			if (yych <= '9') {
 5827: 				if (yych >= '0') goto yy185;
 5828: 			} else {
 5829: 				if (yych <= '@') goto yy585;
 5830: 				if (yych <= 'Z') goto yy185;
 5831: 			}
 5832: 		} else {
 5833: 			if (yych <= '`') {
 5834: 				if (yych <= '_') goto yy586;
 5835: 			} else {
 5836: 				if (yych <= 'z') goto yy185;
 5837: 				if (yych >= 0x7F) goto yy185;
 5838: 			}
 5839: 		}
 5840: yy585:
 5841: 		YYDEBUG(585, *YYCURSOR);
 5842: 		yyleng = YYCURSOR - SCNG(yy_text);
 5843: #line 1239 "Zend/zend_language_scanner.l"
 5844: 		{
 5845: 	return T_INCLUDE;
 5846: }
 5847: #line 5848 "Zend/zend_language_scanner.c"
 5848: yy586:
 5849: 		YYDEBUG(586, *YYCURSOR);
 5850: 		yych = *++YYCURSOR;
 5851: 		if (yych == 'O') goto yy587;
 5852: 		if (yych != 'o') goto yy186;
 5853: yy587:
 5854: 		YYDEBUG(587, *YYCURSOR);
 5855: 		yych = *++YYCURSOR;
 5856: 		if (yych == 'N') goto yy588;
 5857: 		if (yych != 'n') goto yy186;
 5858: yy588:
 5859: 		YYDEBUG(588, *YYCURSOR);
 5860: 		yych = *++YYCURSOR;
 5861: 		if (yych == 'C') goto yy589;
 5862: 		if (yych != 'c') goto yy186;
 5863: yy589:
 5864: 		YYDEBUG(589, *YYCURSOR);
 5865: 		yych = *++YYCURSOR;
 5866: 		if (yych == 'E') goto yy590;
 5867: 		if (yych != 'e') goto yy186;
 5868: yy590:
 5869: 		YYDEBUG(590, *YYCURSOR);
 5870: 		++YYCURSOR;
 5871: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 5872: 			goto yy185;
 5873: 		}
 5874: 		YYDEBUG(591, *YYCURSOR);
 5875: 		yyleng = YYCURSOR - SCNG(yy_text);
 5876: #line 1243 "Zend/zend_language_scanner.l"
 5877: 		{
 5878: 	return T_INCLUDE_ONCE;
 5879: }
 5880: #line 5881 "Zend/zend_language_scanner.c"
 5881: yy592:
 5882: 		YYDEBUG(592, *YYCURSOR);
 5883: 		yych = *++YYCURSOR;
 5884: 		if (yych == 'R') goto yy593;
 5885: 		if (yych != 'r') goto yy186;
 5886: yy593:
 5887: 		YYDEBUG(593, *YYCURSOR);
 5888: 		yych = *++YYCURSOR;
 5889: 		if (yych == 'F') goto yy594;
 5890: 		if (yych != 'f') goto yy186;
 5891: yy594:
 5892: 		YYDEBUG(594, *YYCURSOR);
 5893: 		yych = *++YYCURSOR;
 5894: 		if (yych == 'A') goto yy595;
 5895: 		if (yych != 'a') goto yy186;
 5896: yy595:
 5897: 		YYDEBUG(595, *YYCURSOR);
 5898: 		yych = *++YYCURSOR;
 5899: 		if (yych == 'C') goto yy596;
 5900: 		if (yych != 'c') goto yy186;
 5901: yy596:
 5902: 		YYDEBUG(596, *YYCURSOR);
 5903: 		yych = *++YYCURSOR;
 5904: 		if (yych == 'E') goto yy597;
 5905: 		if (yych != 'e') goto yy186;
 5906: yy597:
 5907: 		YYDEBUG(597, *YYCURSOR);
 5908: 		++YYCURSOR;
 5909: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 5910: 			goto yy185;
 5911: 		}
 5912: 		YYDEBUG(598, *YYCURSOR);
 5913: 		yyleng = YYCURSOR - SCNG(yy_text);
 5914: #line 1141 "Zend/zend_language_scanner.l"
 5915: 		{
 5916: 	return T_INTERFACE;
 5917: }
 5918: #line 5919 "Zend/zend_language_scanner.c"
 5919: yy599:
 5920: 		YYDEBUG(599, *YYCURSOR);
 5921: 		yych = *++YYCURSOR;
 5922: 		if (yych <= 'E') {
 5923: 			if (yych == 'A') goto yy600;
 5924: 			if (yych <= 'D') goto yy186;
 5925: 			goto yy601;
 5926: 		} else {
 5927: 			if (yych <= 'a') {
 5928: 				if (yych <= '`') goto yy186;
 5929: 			} else {
 5930: 				if (yych == 'e') goto yy601;
 5931: 				goto yy186;
 5932: 			}
 5933: 		}
 5934: yy600:
 5935: 		YYDEBUG(600, *YYCURSOR);
 5936: 		yych = *++YYCURSOR;
 5937: 		if (yych == 'N') goto yy607;
 5938: 		if (yych == 'n') goto yy607;
 5939: 		goto yy186;
 5940: yy601:
 5941: 		YYDEBUG(601, *YYCURSOR);
 5942: 		yych = *++YYCURSOR;
 5943: 		if (yych == 'A') goto yy602;
 5944: 		if (yych != 'a') goto yy186;
 5945: yy602:
 5946: 		YYDEBUG(602, *YYCURSOR);
 5947: 		yych = *++YYCURSOR;
 5948: 		if (yych == 'D') goto yy603;
 5949: 		if (yych != 'd') goto yy186;
 5950: yy603:
 5951: 		YYDEBUG(603, *YYCURSOR);
 5952: 		yych = *++YYCURSOR;
 5953: 		if (yych == 'O') goto yy604;
 5954: 		if (yych != 'o') goto yy186;
 5955: yy604:
 5956: 		YYDEBUG(604, *YYCURSOR);
 5957: 		yych = *++YYCURSOR;
 5958: 		if (yych == 'F') goto yy605;
 5959: 		if (yych != 'f') goto yy186;
 5960: yy605:
 5961: 		YYDEBUG(605, *YYCURSOR);
 5962: 		++YYCURSOR;
 5963: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 5964: 			goto yy185;
 5965: 		}
 5966: 		YYDEBUG(606, *YYCURSOR);
 5967: 		yyleng = YYCURSOR - SCNG(yy_text);
 5968: #line 1263 "Zend/zend_language_scanner.l"
 5969: 		{
 5970:         return T_INSTEADOF;
 5971: }
 5972: #line 5973 "Zend/zend_language_scanner.c"
 5973: yy607:
 5974: 		YYDEBUG(607, *YYCURSOR);
 5975: 		yych = *++YYCURSOR;
 5976: 		if (yych == 'C') goto yy608;
 5977: 		if (yych != 'c') goto yy186;
 5978: yy608:
 5979: 		YYDEBUG(608, *YYCURSOR);
 5980: 		yych = *++YYCURSOR;
 5981: 		if (yych == 'E') goto yy609;
 5982: 		if (yych != 'e') goto yy186;
 5983: yy609:
 5984: 		YYDEBUG(609, *YYCURSOR);
 5985: 		yych = *++YYCURSOR;
 5986: 		if (yych == 'O') goto yy610;
 5987: 		if (yych != 'o') goto yy186;
 5988: yy610:
 5989: 		YYDEBUG(610, *YYCURSOR);
 5990: 		yych = *++YYCURSOR;
 5991: 		if (yych == 'F') goto yy611;
 5992: 		if (yych != 'f') goto yy186;
 5993: yy611:
 5994: 		YYDEBUG(611, *YYCURSOR);
 5995: 		++YYCURSOR;
 5996: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 5997: 			goto yy185;
 5998: 		}
 5999: 		YYDEBUG(612, *YYCURSOR);
 6000: 		yyleng = YYCURSOR - SCNG(yy_text);
 6001: #line 1093 "Zend/zend_language_scanner.l"
 6002: 		{
 6003: 	return T_INSTANCEOF;
 6004: }
 6005: #line 6006 "Zend/zend_language_scanner.c"
 6006: yy613:
 6007: 		YYDEBUG(613, *YYCURSOR);
 6008: 		yych = *++YYCURSOR;
 6009: 		if (yych == 'L') goto yy614;
 6010: 		if (yych != 'l') goto yy186;
 6011: yy614:
 6012: 		YYDEBUG(614, *YYCURSOR);
 6013: 		yych = *++YYCURSOR;
 6014: 		if (yych == 'E') goto yy615;
 6015: 		if (yych != 'e') goto yy186;
 6016: yy615:
 6017: 		YYDEBUG(615, *YYCURSOR);
 6018: 		yych = *++YYCURSOR;
 6019: 		if (yych == 'M') goto yy616;
 6020: 		if (yych != 'm') goto yy186;
 6021: yy616:
 6022: 		YYDEBUG(616, *YYCURSOR);
 6023: 		yych = *++YYCURSOR;
 6024: 		if (yych == 'E') goto yy617;
 6025: 		if (yych != 'e') goto yy186;
 6026: yy617:
 6027: 		YYDEBUG(617, *YYCURSOR);
 6028: 		yych = *++YYCURSOR;
 6029: 		if (yych == 'N') goto yy618;
 6030: 		if (yych != 'n') goto yy186;
 6031: yy618:
 6032: 		YYDEBUG(618, *YYCURSOR);
 6033: 		yych = *++YYCURSOR;
 6034: 		if (yych == 'T') goto yy619;
 6035: 		if (yych != 't') goto yy186;
 6036: yy619:
 6037: 		YYDEBUG(619, *YYCURSOR);
 6038: 		yych = *++YYCURSOR;
 6039: 		if (yych == 'S') goto yy620;
 6040: 		if (yych != 's') goto yy186;
 6041: yy620:
 6042: 		YYDEBUG(620, *YYCURSOR);
 6043: 		++YYCURSOR;
 6044: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 6045: 			goto yy185;
 6046: 		}
 6047: 		YYDEBUG(621, *YYCURSOR);
 6048: 		yyleng = YYCURSOR - SCNG(yy_text);
 6049: #line 1153 "Zend/zend_language_scanner.l"
 6050: 		{
 6051: 	return T_IMPLEMENTS;
 6052: }
 6053: #line 6054 "Zend/zend_language_scanner.c"
 6054: yy622:
 6055: 		YYDEBUG(622, *YYCURSOR);
 6056: 		yych = *++YYCURSOR;
 6057: 		if (yych == 'R') goto yy630;
 6058: 		if (yych == 'r') goto yy630;
 6059: 		goto yy186;
 6060: yy623:
 6061: 		YYDEBUG(623, *YYCURSOR);
 6062: 		yych = *++YYCURSOR;
 6063: 		if (yych <= 'Y') {
 6064: 			if (yych == 'A') goto yy626;
 6065: 			if (yych <= 'X') goto yy186;
 6066: 		} else {
 6067: 			if (yych <= 'a') {
 6068: 				if (yych <= '`') goto yy186;
 6069: 				goto yy626;
 6070: 			} else {
 6071: 				if (yych != 'y') goto yy186;
 6072: 			}
 6073: 		}
 6074: 		YYDEBUG(624, *YYCURSOR);
 6075: 		++YYCURSOR;
 6076: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 6077: 			goto yy185;
 6078: 		}
 6079: 		YYDEBUG(625, *YYCURSOR);
 6080: 		yyleng = YYCURSOR - SCNG(yy_text);
 6081: #line 1029 "Zend/zend_language_scanner.l"
 6082: 		{
 6083: 	return T_TRY;
 6084: }
 6085: #line 6086 "Zend/zend_language_scanner.c"
 6086: yy626:
 6087: 		YYDEBUG(626, *YYCURSOR);
 6088: 		yych = *++YYCURSOR;
 6089: 		if (yych == 'I') goto yy627;
 6090: 		if (yych != 'i') goto yy186;
 6091: yy627:
 6092: 		YYDEBUG(627, *YYCURSOR);
 6093: 		yych = *++YYCURSOR;
 6094: 		if (yych == 'T') goto yy628;
 6095: 		if (yych != 't') goto yy186;
 6096: yy628:
 6097: 		YYDEBUG(628, *YYCURSOR);
 6098: 		++YYCURSOR;
 6099: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 6100: 			goto yy185;
 6101: 		}
 6102: 		YYDEBUG(629, *YYCURSOR);
 6103: 		yyleng = YYCURSOR - SCNG(yy_text);
 6104: #line 1145 "Zend/zend_language_scanner.l"
 6105: 		{
 6106: 	return T_TRAIT;
 6107: }
 6108: #line 6109 "Zend/zend_language_scanner.c"
 6109: yy630:
 6110: 		YYDEBUG(630, *YYCURSOR);
 6111: 		yych = *++YYCURSOR;
 6112: 		if (yych == 'O') goto yy631;
 6113: 		if (yych != 'o') goto yy186;
 6114: yy631:
 6115: 		YYDEBUG(631, *YYCURSOR);
 6116: 		yych = *++YYCURSOR;
 6117: 		if (yych == 'W') goto yy632;
 6118: 		if (yych != 'w') goto yy186;
 6119: yy632:
 6120: 		YYDEBUG(632, *YYCURSOR);
 6121: 		++YYCURSOR;
 6122: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 6123: 			goto yy185;
 6124: 		}
 6125: 		YYDEBUG(633, *YYCURSOR);
 6126: 		yyleng = YYCURSOR - SCNG(yy_text);
 6127: #line 1037 "Zend/zend_language_scanner.l"
 6128: 		{
 6129: 	return T_THROW;
 6130: }
 6131: #line 6132 "Zend/zend_language_scanner.c"
 6132: yy634:
 6133: 		YYDEBUG(634, *YYCURSOR);
 6134: 		yych = *++YYCURSOR;
 6135: 		if (yych <= 'T') {
 6136: 			if (yych == 'Q') goto yy636;
 6137: 			if (yych <= 'S') goto yy186;
 6138: 		} else {
 6139: 			if (yych <= 'q') {
 6140: 				if (yych <= 'p') goto yy186;
 6141: 				goto yy636;
 6142: 			} else {
 6143: 				if (yych != 't') goto yy186;
 6144: 			}
 6145: 		}
 6146: 		YYDEBUG(635, *YYCURSOR);
 6147: 		yych = *++YYCURSOR;
 6148: 		if (yych == 'U') goto yy648;
 6149: 		if (yych == 'u') goto yy648;
 6150: 		goto yy186;
 6151: yy636:
 6152: 		YYDEBUG(636, *YYCURSOR);
 6153: 		yych = *++YYCURSOR;
 6154: 		if (yych == 'U') goto yy637;
 6155: 		if (yych != 'u') goto yy186;
 6156: yy637:
 6157: 		YYDEBUG(637, *YYCURSOR);
 6158: 		yych = *++YYCURSOR;
 6159: 		if (yych == 'I') goto yy638;
 6160: 		if (yych != 'i') goto yy186;
 6161: yy638:
 6162: 		YYDEBUG(638, *YYCURSOR);
 6163: 		yych = *++YYCURSOR;
 6164: 		if (yych == 'R') goto yy639;
 6165: 		if (yych != 'r') goto yy186;
 6166: yy639:
 6167: 		YYDEBUG(639, *YYCURSOR);
 6168: 		yych = *++YYCURSOR;
 6169: 		if (yych == 'E') goto yy640;
 6170: 		if (yych != 'e') goto yy186;
 6171: yy640:
 6172: 		YYDEBUG(640, *YYCURSOR);
 6173: 		++YYCURSOR;
 6174: 		if ((yych = *YYCURSOR) <= '^') {
 6175: 			if (yych <= '9') {
 6176: 				if (yych >= '0') goto yy185;
 6177: 			} else {
 6178: 				if (yych <= '@') goto yy641;
 6179: 				if (yych <= 'Z') goto yy185;
 6180: 			}
 6181: 		} else {
 6182: 			if (yych <= '`') {
 6183: 				if (yych <= '_') goto yy642;
 6184: 			} else {
 6185: 				if (yych <= 'z') goto yy185;
 6186: 				if (yych >= 0x7F) goto yy185;
 6187: 			}
 6188: 		}
 6189: yy641:
 6190: 		YYDEBUG(641, *YYCURSOR);
 6191: 		yyleng = YYCURSOR - SCNG(yy_text);
 6192: #line 1247 "Zend/zend_language_scanner.l"
 6193: 		{
 6194: 	return T_REQUIRE;
 6195: }
 6196: #line 6197 "Zend/zend_language_scanner.c"
 6197: yy642:
 6198: 		YYDEBUG(642, *YYCURSOR);
 6199: 		yych = *++YYCURSOR;
 6200: 		if (yych == 'O') goto yy643;
 6201: 		if (yych != 'o') goto yy186;
 6202: yy643:
 6203: 		YYDEBUG(643, *YYCURSOR);
 6204: 		yych = *++YYCURSOR;
 6205: 		if (yych == 'N') goto yy644;
 6206: 		if (yych != 'n') goto yy186;
 6207: yy644:
 6208: 		YYDEBUG(644, *YYCURSOR);
 6209: 		yych = *++YYCURSOR;
 6210: 		if (yych == 'C') goto yy645;
 6211: 		if (yych != 'c') goto yy186;
 6212: yy645:
 6213: 		YYDEBUG(645, *YYCURSOR);
 6214: 		yych = *++YYCURSOR;
 6215: 		if (yych == 'E') goto yy646;
 6216: 		if (yych != 'e') goto yy186;
 6217: yy646:
 6218: 		YYDEBUG(646, *YYCURSOR);
 6219: 		++YYCURSOR;
 6220: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 6221: 			goto yy185;
 6222: 		}
 6223: 		YYDEBUG(647, *YYCURSOR);
 6224: 		yyleng = YYCURSOR - SCNG(yy_text);
 6225: #line 1251 "Zend/zend_language_scanner.l"
 6226: 		{
 6227: 	return T_REQUIRE_ONCE;
 6228: }
 6229: #line 6230 "Zend/zend_language_scanner.c"
 6230: yy648:
 6231: 		YYDEBUG(648, *YYCURSOR);
 6232: 		yych = *++YYCURSOR;
 6233: 		if (yych == 'R') goto yy649;
 6234: 		if (yych != 'r') goto yy186;
 6235: yy649:
 6236: 		YYDEBUG(649, *YYCURSOR);
 6237: 		yych = *++YYCURSOR;
 6238: 		if (yych == 'N') goto yy650;
 6239: 		if (yych != 'n') goto yy186;
 6240: yy650:
 6241: 		YYDEBUG(650, *YYCURSOR);
 6242: 		++YYCURSOR;
 6243: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 6244: 			goto yy185;
 6245: 		}
 6246: 		YYDEBUG(651, *YYCURSOR);
 6247: 		yyleng = YYCURSOR - SCNG(yy_text);
 6248: #line 1025 "Zend/zend_language_scanner.l"
 6249: 		{
 6250: 	return T_RETURN;
 6251: }
 6252: #line 6253 "Zend/zend_language_scanner.c"
 6253: yy652:
 6254: 		YYDEBUG(652, *YYCURSOR);
 6255: 		yych = *++YYCURSOR;
 6256: 		if (yych <= 'T') {
 6257: 			if (yych <= 'L') {
 6258: 				if (yych <= 'K') goto yy186;
 6259: 				goto yy675;
 6260: 			} else {
 6261: 				if (yych <= 'R') goto yy186;
 6262: 				if (yych <= 'S') goto yy674;
 6263: 				goto yy673;
 6264: 			}
 6265: 		} else {
 6266: 			if (yych <= 'r') {
 6267: 				if (yych == 'l') goto yy675;
 6268: 				goto yy186;
 6269: 			} else {
 6270: 				if (yych <= 's') goto yy674;
 6271: 				if (yych <= 't') goto yy673;
 6272: 				goto yy186;
 6273: 			}
 6274: 		}
 6275: yy653:
 6276: 		YYDEBUG(653, *YYCURSOR);
 6277: 		yych = *++YYCURSOR;
 6278: 		if (yych <= 'O') {
 6279: 			if (yych == 'A') goto yy665;
 6280: 			if (yych <= 'N') goto yy186;
 6281: 			goto yy666;
 6282: 		} else {
 6283: 			if (yych <= 'a') {
 6284: 				if (yych <= '`') goto yy186;
 6285: 				goto yy665;
 6286: 			} else {
 6287: 				if (yych == 'o') goto yy666;
 6288: 				goto yy186;
 6289: 			}
 6290: 		}
 6291: yy654:
 6292: 		YYDEBUG(654, *YYCURSOR);
 6293: 		yych = *++YYCURSOR;
 6294: 		if (yych == 'N') goto yy655;
 6295: 		if (yych != 'n') goto yy186;
 6296: yy655:
 6297: 		YYDEBUG(655, *YYCURSOR);
 6298: 		yych = *++YYCURSOR;
 6299: 		if (yych <= 'T') {
 6300: 			if (yych <= 'R') goto yy186;
 6301: 			if (yych >= 'T') goto yy657;
 6302: 		} else {
 6303: 			if (yych <= 'r') goto yy186;
 6304: 			if (yych <= 's') goto yy656;
 6305: 			if (yych <= 't') goto yy657;
 6306: 			goto yy186;
 6307: 		}
 6308: yy656:
 6309: 		YYDEBUG(656, *YYCURSOR);
 6310: 		yych = *++YYCURSOR;
 6311: 		if (yych == 'T') goto yy663;
 6312: 		if (yych == 't') goto yy663;
 6313: 		goto yy186;
 6314: yy657:
 6315: 		YYDEBUG(657, *YYCURSOR);
 6316: 		yych = *++YYCURSOR;
 6317: 		if (yych == 'I') goto yy658;
 6318: 		if (yych != 'i') goto yy186;
 6319: yy658:
 6320: 		YYDEBUG(658, *YYCURSOR);
 6321: 		yych = *++YYCURSOR;
 6322: 		if (yych == 'N') goto yy659;
 6323: 		if (yych != 'n') goto yy186;
 6324: yy659:
 6325: 		YYDEBUG(659, *YYCURSOR);
 6326: 		yych = *++YYCURSOR;
 6327: 		if (yych == 'U') goto yy660;
 6328: 		if (yych != 'u') goto yy186;
 6329: yy660:
 6330: 		YYDEBUG(660, *YYCURSOR);
 6331: 		yych = *++YYCURSOR;
 6332: 		if (yych == 'E') goto yy661;
 6333: 		if (yych != 'e') goto yy186;
 6334: yy661:
 6335: 		YYDEBUG(661, *YYCURSOR);
 6336: 		++YYCURSOR;
 6337: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 6338: 			goto yy185;
 6339: 		}
 6340: 		YYDEBUG(662, *YYCURSOR);
 6341: 		yyleng = YYCURSOR - SCNG(yy_text);
 6342: #line 1121 "Zend/zend_language_scanner.l"
 6343: 		{
 6344: 	return T_CONTINUE;
 6345: }
 6346: #line 6347 "Zend/zend_language_scanner.c"
 6347: yy663:
 6348: 		YYDEBUG(663, *YYCURSOR);
 6349: 		++YYCURSOR;
 6350: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 6351: 			goto yy185;
 6352: 		}
 6353: 		YYDEBUG(664, *YYCURSOR);
 6354: 		yyleng = YYCURSOR - SCNG(yy_text);
 6355: #line 1021 "Zend/zend_language_scanner.l"
 6356: 		{
 6357: 	return T_CONST;
 6358: }
 6359: #line 6360 "Zend/zend_language_scanner.c"
 6360: yy665:
 6361: 		YYDEBUG(665, *YYCURSOR);
 6362: 		yych = *++YYCURSOR;
 6363: 		if (yych == 'S') goto yy670;
 6364: 		if (yych == 's') goto yy670;
 6365: 		goto yy186;
 6366: yy666:
 6367: 		YYDEBUG(666, *YYCURSOR);
 6368: 		yych = *++YYCURSOR;
 6369: 		if (yych == 'N') goto yy667;
 6370: 		if (yych != 'n') goto yy186;
 6371: yy667:
 6372: 		YYDEBUG(667, *YYCURSOR);
 6373: 		yych = *++YYCURSOR;
 6374: 		if (yych == 'E') goto yy668;
 6375: 		if (yych != 'e') goto yy186;
 6376: yy668:
 6377: 		YYDEBUG(668, *YYCURSOR);
 6378: 		++YYCURSOR;
 6379: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 6380: 			goto yy185;
 6381: 		}
 6382: 		YYDEBUG(669, *YYCURSOR);
 6383: 		yyleng = YYCURSOR - SCNG(yy_text);
 6384: #line 1199 "Zend/zend_language_scanner.l"
 6385: 		{
 6386: 	return T_CLONE;
 6387: }
 6388: #line 6389 "Zend/zend_language_scanner.c"
 6389: yy670:
 6390: 		YYDEBUG(670, *YYCURSOR);
 6391: 		yych = *++YYCURSOR;
 6392: 		if (yych == 'S') goto yy671;
 6393: 		if (yych != 's') goto yy186;
 6394: yy671:
 6395: 		YYDEBUG(671, *YYCURSOR);
 6396: 		++YYCURSOR;
 6397: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 6398: 			goto yy185;
 6399: 		}
 6400: 		YYDEBUG(672, *YYCURSOR);
 6401: 		yyleng = YYCURSOR - SCNG(yy_text);
 6402: #line 1137 "Zend/zend_language_scanner.l"
 6403: 		{
 6404: 	return T_CLASS;
 6405: }
 6406: #line 6407 "Zend/zend_language_scanner.c"
 6407: yy673:
 6408: 		YYDEBUG(673, *YYCURSOR);
 6409: 		yych = *++YYCURSOR;
 6410: 		if (yych == 'C') goto yy684;
 6411: 		if (yych == 'c') goto yy684;
 6412: 		goto yy186;
 6413: yy674:
 6414: 		YYDEBUG(674, *YYCURSOR);
 6415: 		yych = *++YYCURSOR;
 6416: 		if (yych == 'E') goto yy682;
 6417: 		if (yych == 'e') goto yy682;
 6418: 		goto yy186;
 6419: yy675:
 6420: 		YYDEBUG(675, *YYCURSOR);
 6421: 		yych = *++YYCURSOR;
 6422: 		if (yych == 'L') goto yy676;
 6423: 		if (yych != 'l') goto yy186;
 6424: yy676:
 6425: 		YYDEBUG(676, *YYCURSOR);
 6426: 		yych = *++YYCURSOR;
 6427: 		if (yych == 'A') goto yy677;
 6428: 		if (yych != 'a') goto yy186;
 6429: yy677:
 6430: 		YYDEBUG(677, *YYCURSOR);
 6431: 		yych = *++YYCURSOR;
 6432: 		if (yych == 'B') goto yy678;
 6433: 		if (yych != 'b') goto yy186;
 6434: yy678:
 6435: 		YYDEBUG(678, *YYCURSOR);
 6436: 		yych = *++YYCURSOR;
 6437: 		if (yych == 'L') goto yy679;
 6438: 		if (yych != 'l') goto yy186;
 6439: yy679:
 6440: 		YYDEBUG(679, *YYCURSOR);
 6441: 		yych = *++YYCURSOR;
 6442: 		if (yych == 'E') goto yy680;
 6443: 		if (yych != 'e') goto yy186;
 6444: yy680:
 6445: 		YYDEBUG(680, *YYCURSOR);
 6446: 		++YYCURSOR;
 6447: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 6448: 			goto yy185;
 6449: 		}
 6450: 		YYDEBUG(681, *YYCURSOR);
 6451: 		yyleng = YYCURSOR - SCNG(yy_text);
 6452: #line 1323 "Zend/zend_language_scanner.l"
 6453: 		{
 6454:  return T_CALLABLE;
 6455: }
 6456: #line 6457 "Zend/zend_language_scanner.c"
 6457: yy682:
 6458: 		YYDEBUG(682, *YYCURSOR);
 6459: 		++YYCURSOR;
 6460: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 6461: 			goto yy185;
 6462: 		}
 6463: 		YYDEBUG(683, *YYCURSOR);
 6464: 		yyleng = YYCURSOR - SCNG(yy_text);
 6465: #line 1109 "Zend/zend_language_scanner.l"
 6466: 		{
 6467: 	return T_CASE;
 6468: }
 6469: #line 6470 "Zend/zend_language_scanner.c"
 6470: yy684:
 6471: 		YYDEBUG(684, *YYCURSOR);
 6472: 		yych = *++YYCURSOR;
 6473: 		if (yych == 'H') goto yy685;
 6474: 		if (yych != 'h') goto yy186;
 6475: yy685:
 6476: 		YYDEBUG(685, *YYCURSOR);
 6477: 		++YYCURSOR;
 6478: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 6479: 			goto yy185;
 6480: 		}
 6481: 		YYDEBUG(686, *YYCURSOR);
 6482: 		yyleng = YYCURSOR - SCNG(yy_text);
 6483: #line 1033 "Zend/zend_language_scanner.l"
 6484: 		{
 6485: 	return T_CATCH;
 6486: }
 6487: #line 6488 "Zend/zend_language_scanner.c"
 6488: yy687:
 6489: 		YYDEBUG(687, *YYCURSOR);
 6490: 		yych = *++YYCURSOR;
 6491: 		if (yych == 'N') goto yy704;
 6492: 		if (yych == 'n') goto yy704;
 6493: 		goto yy186;
 6494: yy688:
 6495: 		YYDEBUG(688, *YYCURSOR);
 6496: 		yych = *++YYCURSOR;
 6497: 		if (yych == 'R') goto yy697;
 6498: 		if (yych == 'r') goto yy697;
 6499: 		goto yy186;
 6500: yy689:
 6501: 		YYDEBUG(689, *YYCURSOR);
 6502: 		yych = *++YYCURSOR;
 6503: 		if (yych == 'N') goto yy690;
 6504: 		if (yych != 'n') goto yy186;
 6505: yy690:
 6506: 		YYDEBUG(690, *YYCURSOR);
 6507: 		yych = *++YYCURSOR;
 6508: 		if (yych == 'C') goto yy691;
 6509: 		if (yych != 'c') goto yy186;
 6510: yy691:
 6511: 		YYDEBUG(691, *YYCURSOR);
 6512: 		yych = *++YYCURSOR;
 6513: 		if (yych == 'T') goto yy692;
 6514: 		if (yych != 't') goto yy186;
 6515: yy692:
 6516: 		YYDEBUG(692, *YYCURSOR);
 6517: 		yych = *++YYCURSOR;
 6518: 		if (yych == 'I') goto yy693;
 6519: 		if (yych != 'i') goto yy186;
 6520: yy693:
 6521: 		YYDEBUG(693, *YYCURSOR);
 6522: 		yych = *++YYCURSOR;
 6523: 		if (yych == 'O') goto yy694;
 6524: 		if (yych != 'o') goto yy186;
 6525: yy694:
 6526: 		YYDEBUG(694, *YYCURSOR);
 6527: 		yych = *++YYCURSOR;
 6528: 		if (yych == 'N') goto yy695;
 6529: 		if (yych != 'n') goto yy186;
 6530: yy695:
 6531: 		YYDEBUG(695, *YYCURSOR);
 6532: 		++YYCURSOR;
 6533: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 6534: 			goto yy185;
 6535: 		}
 6536: 		YYDEBUG(696, *YYCURSOR);
 6537: 		yyleng = YYCURSOR - SCNG(yy_text);
 6538: #line 1017 "Zend/zend_language_scanner.l"
 6539: 		{
 6540: 	return T_FUNCTION;
 6541: }
 6542: #line 6543 "Zend/zend_language_scanner.c"
 6543: yy697:
 6544: 		YYDEBUG(697, *YYCURSOR);
 6545: 		++YYCURSOR;
 6546: 		if ((yych = *YYCURSOR) <= '^') {
 6547: 			if (yych <= '@') {
 6548: 				if (yych <= '/') goto yy698;
 6549: 				if (yych <= '9') goto yy185;
 6550: 			} else {
 6551: 				if (yych == 'E') goto yy699;
 6552: 				if (yych <= 'Z') goto yy185;
 6553: 			}
 6554: 		} else {
 6555: 			if (yych <= 'd') {
 6556: 				if (yych != '`') goto yy185;
 6557: 			} else {
 6558: 				if (yych <= 'e') goto yy699;
 6559: 				if (yych <= 'z') goto yy185;
 6560: 				if (yych >= 0x7F) goto yy185;
 6561: 			}
 6562: 		}
 6563: yy698:
 6564: 		YYDEBUG(698, *YYCURSOR);
 6565: 		yyleng = YYCURSOR - SCNG(yy_text);
 6566: #line 1069 "Zend/zend_language_scanner.l"
 6567: 		{
 6568: 	return T_FOR;
 6569: }
 6570: #line 6571 "Zend/zend_language_scanner.c"
 6571: yy699:
 6572: 		YYDEBUG(699, *YYCURSOR);
 6573: 		yych = *++YYCURSOR;
 6574: 		if (yych == 'A') goto yy700;
 6575: 		if (yych != 'a') goto yy186;
 6576: yy700:
 6577: 		YYDEBUG(700, *YYCURSOR);
 6578: 		yych = *++YYCURSOR;
 6579: 		if (yych == 'C') goto yy701;
 6580: 		if (yych != 'c') goto yy186;
 6581: yy701:
 6582: 		YYDEBUG(701, *YYCURSOR);
 6583: 		yych = *++YYCURSOR;
 6584: 		if (yych == 'H') goto yy702;
 6585: 		if (yych != 'h') goto yy186;
 6586: yy702:
 6587: 		YYDEBUG(702, *YYCURSOR);
 6588: 		++YYCURSOR;
 6589: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 6590: 			goto yy185;
 6591: 		}
 6592: 		YYDEBUG(703, *YYCURSOR);
 6593: 		yyleng = YYCURSOR - SCNG(yy_text);
 6594: #line 1077 "Zend/zend_language_scanner.l"
 6595: 		{
 6596: 	return T_FOREACH;
 6597: }
 6598: #line 6599 "Zend/zend_language_scanner.c"
 6599: yy704:
 6600: 		YYDEBUG(704, *YYCURSOR);
 6601: 		yych = *++YYCURSOR;
 6602: 		if (yych == 'A') goto yy705;
 6603: 		if (yych != 'a') goto yy186;
 6604: yy705:
 6605: 		YYDEBUG(705, *YYCURSOR);
 6606: 		yych = *++YYCURSOR;
 6607: 		if (yych == 'L') goto yy706;
 6608: 		if (yych != 'l') goto yy186;
 6609: yy706:
 6610: 		YYDEBUG(706, *YYCURSOR);
 6611: 		++YYCURSOR;
 6612: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 6613: 			goto yy185;
 6614: 		}
 6615: 		YYDEBUG(707, *YYCURSOR);
 6616: 		yyleng = YYCURSOR - SCNG(yy_text);
 6617: #line 1291 "Zend/zend_language_scanner.l"
 6618: 		{
 6619: 	return T_FINAL;
 6620: }
 6621: #line 6622 "Zend/zend_language_scanner.c"
 6622: yy708:
 6623: 		YYDEBUG(708, *YYCURSOR);
 6624: 		yych = *++YYCURSOR;
 6625: 		if (yych <= 'F') {
 6626: 			if (yych == 'C') goto yy714;
 6627: 			if (yych <= 'E') goto yy186;
 6628: 			goto yy715;
 6629: 		} else {
 6630: 			if (yych <= 'c') {
 6631: 				if (yych <= 'b') goto yy186;
 6632: 				goto yy714;
 6633: 			} else {
 6634: 				if (yych == 'f') goto yy715;
 6635: 				goto yy186;
 6636: 			}
 6637: 		}
 6638: yy709:
 6639: 		YYDEBUG(709, *YYCURSOR);
 6640: 		yych = *++YYCURSOR;
 6641: 		if (yych == 'E') goto yy712;
 6642: 		if (yych == 'e') goto yy712;
 6643: 		goto yy186;
 6644: yy710:
 6645: 		YYDEBUG(710, *YYCURSOR);
 6646: 		++YYCURSOR;
 6647: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 6648: 			goto yy185;
 6649: 		}
 6650: 		YYDEBUG(711, *YYCURSOR);
 6651: 		yyleng = YYCURSOR - SCNG(yy_text);
 6652: #line 1065 "Zend/zend_language_scanner.l"
 6653: 		{
 6654: 	return T_DO;
 6655: }
 6656: #line 6657 "Zend/zend_language_scanner.c"
 6657: yy712:
 6658: 		YYDEBUG(712, *YYCURSOR);
 6659: 		++YYCURSOR;
 6660: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 6661: 			goto yy185;
 6662: 		}
 6663: 		YYDEBUG(713, *YYCURSOR);
 6664: 		yyleng = YYCURSOR - SCNG(yy_text);
 6665: #line 1013 "Zend/zend_language_scanner.l"
 6666: 		{
 6667: 	return T_EXIT;
 6668: }
 6669: #line 6670 "Zend/zend_language_scanner.c"
 6670: yy714:
 6671: 		YYDEBUG(714, *YYCURSOR);
 6672: 		yych = *++YYCURSOR;
 6673: 		if (yych == 'L') goto yy721;
 6674: 		if (yych == 'l') goto yy721;
 6675: 		goto yy186;
 6676: yy715:
 6677: 		YYDEBUG(715, *YYCURSOR);
 6678: 		yych = *++YYCURSOR;
 6679: 		if (yych == 'A') goto yy716;
 6680: 		if (yych != 'a') goto yy186;
 6681: yy716:
 6682: 		YYDEBUG(716, *YYCURSOR);
 6683: 		yych = *++YYCURSOR;
 6684: 		if (yych == 'U') goto yy717;
 6685: 		if (yych != 'u') goto yy186;
 6686: yy717:
 6687: 		YYDEBUG(717, *YYCURSOR);
 6688: 		yych = *++YYCURSOR;
 6689: 		if (yych == 'L') goto yy718;
 6690: 		if (yych != 'l') goto yy186;
 6691: yy718:
 6692: 		YYDEBUG(718, *YYCURSOR);
 6693: 		yych = *++YYCURSOR;
 6694: 		if (yych == 'T') goto yy719;
 6695: 		if (yych != 't') goto yy186;
 6696: yy719:
 6697: 		YYDEBUG(719, *YYCURSOR);
 6698: 		++YYCURSOR;
 6699: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 6700: 			goto yy185;
 6701: 		}
 6702: 		YYDEBUG(720, *YYCURSOR);
 6703: 		yyleng = YYCURSOR - SCNG(yy_text);
 6704: #line 1113 "Zend/zend_language_scanner.l"
 6705: 		{
 6706: 	return T_DEFAULT;
 6707: }
 6708: #line 6709 "Zend/zend_language_scanner.c"
 6709: yy721:
 6710: 		YYDEBUG(721, *YYCURSOR);
 6711: 		yych = *++YYCURSOR;
 6712: 		if (yych == 'A') goto yy722;
 6713: 		if (yych != 'a') goto yy186;
 6714: yy722:
 6715: 		YYDEBUG(722, *YYCURSOR);
 6716: 		yych = *++YYCURSOR;
 6717: 		if (yych == 'R') goto yy723;
 6718: 		if (yych != 'r') goto yy186;
 6719: yy723:
 6720: 		YYDEBUG(723, *YYCURSOR);
 6721: 		yych = *++YYCURSOR;
 6722: 		if (yych == 'E') goto yy724;
 6723: 		if (yych != 'e') goto yy186;
 6724: yy724:
 6725: 		YYDEBUG(724, *YYCURSOR);
 6726: 		++YYCURSOR;
 6727: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 6728: 			goto yy185;
 6729: 		}
 6730: 		YYDEBUG(725, *YYCURSOR);
 6731: 		yyleng = YYCURSOR - SCNG(yy_text);
 6732: #line 1085 "Zend/zend_language_scanner.l"
 6733: 		{
 6734: 	return T_DECLARE;
 6735: }
 6736: #line 6737 "Zend/zend_language_scanner.c"
 6737: yy726:
 6738: 		YYDEBUG(726, *YYCURSOR);
 6739: 		yych = *++YYCURSOR;
 6740: 		if (yych == 'H') goto yy788;
 6741: 		if (yych == 'h') goto yy788;
 6742: 		goto yy186;
 6743: yy727:
 6744: 		YYDEBUG(727, *YYCURSOR);
 6745: 		yych = *++YYCURSOR;
 6746: 		if (yych == 'S') goto yy782;
 6747: 		if (yych == 's') goto yy782;
 6748: 		goto yy186;
 6749: yy728:
 6750: 		YYDEBUG(728, *YYCURSOR);
 6751: 		yych = *++YYCURSOR;
 6752: 		if (yych == 'P') goto yy778;
 6753: 		if (yych == 'p') goto yy778;
 6754: 		goto yy186;
 6755: yy729:
 6756: 		YYDEBUG(729, *YYCURSOR);
 6757: 		yych = *++YYCURSOR;
 6758: 		if (yych == 'D') goto yy744;
 6759: 		if (yych == 'd') goto yy744;
 6760: 		goto yy186;
 6761: yy730:
 6762: 		YYDEBUG(730, *YYCURSOR);
 6763: 		yych = *++YYCURSOR;
 6764: 		if (yych == 'A') goto yy741;
 6765: 		if (yych == 'a') goto yy741;
 6766: 		goto yy186;
 6767: yy731:
 6768: 		YYDEBUG(731, *YYCURSOR);
 6769: 		yych = *++YYCURSOR;
 6770: 		if (yych <= 'T') {
 6771: 			if (yych == 'I') goto yy732;
 6772: 			if (yych <= 'S') goto yy186;
 6773: 			goto yy733;
 6774: 		} else {
 6775: 			if (yych <= 'i') {
 6776: 				if (yych <= 'h') goto yy186;
 6777: 			} else {
 6778: 				if (yych == 't') goto yy733;
 6779: 				goto yy186;
 6780: 			}
 6781: 		}
 6782: yy732:
 6783: 		YYDEBUG(732, *YYCURSOR);
 6784: 		yych = *++YYCURSOR;
 6785: 		if (yych == 'T') goto yy739;
 6786: 		if (yych == 't') goto yy739;
 6787: 		goto yy186;
 6788: yy733:
 6789: 		YYDEBUG(733, *YYCURSOR);
 6790: 		yych = *++YYCURSOR;
 6791: 		if (yych == 'E') goto yy734;
 6792: 		if (yych != 'e') goto yy186;
 6793: yy734:
 6794: 		YYDEBUG(734, *YYCURSOR);
 6795: 		yych = *++YYCURSOR;
 6796: 		if (yych == 'N') goto yy735;
 6797: 		if (yych != 'n') goto yy186;
 6798: yy735:
 6799: 		YYDEBUG(735, *YYCURSOR);
 6800: 		yych = *++YYCURSOR;
 6801: 		if (yych == 'D') goto yy736;
 6802: 		if (yych != 'd') goto yy186;
 6803: yy736:
 6804: 		YYDEBUG(736, *YYCURSOR);
 6805: 		yych = *++YYCURSOR;
 6806: 		if (yych == 'S') goto yy737;
 6807: 		if (yych != 's') goto yy186;
 6808: yy737:
 6809: 		YYDEBUG(737, *YYCURSOR);
 6810: 		++YYCURSOR;
 6811: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 6812: 			goto yy185;
 6813: 		}
 6814: 		YYDEBUG(738, *YYCURSOR);
 6815: 		yyleng = YYCURSOR - SCNG(yy_text);
 6816: #line 1149 "Zend/zend_language_scanner.l"
 6817: 		{
 6818: 	return T_EXTENDS;
 6819: }
 6820: #line 6821 "Zend/zend_language_scanner.c"
 6821: yy739:
 6822: 		YYDEBUG(739, *YYCURSOR);
 6823: 		++YYCURSOR;
 6824: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 6825: 			goto yy185;
 6826: 		}
 6827: 		YYDEBUG(740, *YYCURSOR);
 6828: 		yyleng = YYCURSOR - SCNG(yy_text);
 6829: #line 1009 "Zend/zend_language_scanner.l"
 6830: 		{
 6831: 	return T_EXIT;
 6832: }
 6833: #line 6834 "Zend/zend_language_scanner.c"
 6834: yy741:
 6835: 		YYDEBUG(741, *YYCURSOR);
 6836: 		yych = *++YYCURSOR;
 6837: 		if (yych == 'L') goto yy742;
 6838: 		if (yych != 'l') goto yy186;
 6839: yy742:
 6840: 		YYDEBUG(742, *YYCURSOR);
 6841: 		++YYCURSOR;
 6842: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 6843: 			goto yy185;
 6844: 		}
 6845: 		YYDEBUG(743, *YYCURSOR);
 6846: 		yyleng = YYCURSOR - SCNG(yy_text);
 6847: #line 1235 "Zend/zend_language_scanner.l"
 6848: 		{
 6849: 	return T_EVAL;
 6850: }
 6851: #line 6852 "Zend/zend_language_scanner.c"
 6852: yy744:
 6853: 		YYDEBUG(744, *YYCURSOR);
 6854: 		yych = *++YYCURSOR;
 6855: 		YYDEBUG(-1, yych);
 6856: 		switch (yych) {
 6857: 		case 'D':
 6858: 		case 'd':	goto yy745;
 6859: 		case 'F':
 6860: 		case 'f':	goto yy746;
 6861: 		case 'I':
 6862: 		case 'i':	goto yy747;
 6863: 		case 'S':
 6864: 		case 's':	goto yy748;
 6865: 		case 'W':
 6866: 		case 'w':	goto yy749;
 6867: 		default:	goto yy186;
 6868: 		}
 6869: yy745:
 6870: 		YYDEBUG(745, *YYCURSOR);
 6871: 		yych = *++YYCURSOR;
 6872: 		if (yych == 'E') goto yy771;
 6873: 		if (yych == 'e') goto yy771;
 6874: 		goto yy186;
 6875: yy746:
 6876: 		YYDEBUG(746, *YYCURSOR);
 6877: 		yych = *++YYCURSOR;
 6878: 		if (yych == 'O') goto yy763;
 6879: 		if (yych == 'o') goto yy763;
 6880: 		goto yy186;
 6881: yy747:
 6882: 		YYDEBUG(747, *YYCURSOR);
 6883: 		yych = *++YYCURSOR;
 6884: 		if (yych == 'F') goto yy761;
 6885: 		if (yych == 'f') goto yy761;
 6886: 		goto yy186;
 6887: yy748:
 6888: 		YYDEBUG(748, *YYCURSOR);
 6889: 		yych = *++YYCURSOR;
 6890: 		if (yych == 'W') goto yy755;
 6891: 		if (yych == 'w') goto yy755;
 6892: 		goto yy186;
 6893: yy749:
 6894: 		YYDEBUG(749, *YYCURSOR);
 6895: 		yych = *++YYCURSOR;
 6896: 		if (yych == 'H') goto yy750;
 6897: 		if (yych != 'h') goto yy186;
 6898: yy750:
 6899: 		YYDEBUG(750, *YYCURSOR);
 6900: 		yych = *++YYCURSOR;
 6901: 		if (yych == 'I') goto yy751;
 6902: 		if (yych != 'i') goto yy186;
 6903: yy751:
 6904: 		YYDEBUG(751, *YYCURSOR);
 6905: 		yych = *++YYCURSOR;
 6906: 		if (yych == 'L') goto yy752;
 6907: 		if (yych != 'l') goto yy186;
 6908: yy752:
 6909: 		YYDEBUG(752, *YYCURSOR);
 6910: 		yych = *++YYCURSOR;
 6911: 		if (yych == 'E') goto yy753;
 6912: 		if (yych != 'e') goto yy186;
 6913: yy753:
 6914: 		YYDEBUG(753, *YYCURSOR);
 6915: 		++YYCURSOR;
 6916: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 6917: 			goto yy185;
 6918: 		}
 6919: 		YYDEBUG(754, *YYCURSOR);
 6920: 		yyleng = YYCURSOR - SCNG(yy_text);
 6921: #line 1061 "Zend/zend_language_scanner.l"
 6922: 		{
 6923: 	return T_ENDWHILE;
 6924: }
 6925: #line 6926 "Zend/zend_language_scanner.c"
 6926: yy755:
 6927: 		YYDEBUG(755, *YYCURSOR);
 6928: 		yych = *++YYCURSOR;
 6929: 		if (yych == 'I') goto yy756;
 6930: 		if (yych != 'i') goto yy186;
 6931: yy756:
 6932: 		YYDEBUG(756, *YYCURSOR);
 6933: 		yych = *++YYCURSOR;
 6934: 		if (yych == 'T') goto yy757;
 6935: 		if (yych != 't') goto yy186;
 6936: yy757:
 6937: 		YYDEBUG(757, *YYCURSOR);
 6938: 		yych = *++YYCURSOR;
 6939: 		if (yych == 'C') goto yy758;
 6940: 		if (yych != 'c') goto yy186;
 6941: yy758:
 6942: 		YYDEBUG(758, *YYCURSOR);
 6943: 		yych = *++YYCURSOR;
 6944: 		if (yych == 'H') goto yy759;
 6945: 		if (yych != 'h') goto yy186;
 6946: yy759:
 6947: 		YYDEBUG(759, *YYCURSOR);
 6948: 		++YYCURSOR;
 6949: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 6950: 			goto yy185;
 6951: 		}
 6952: 		YYDEBUG(760, *YYCURSOR);
 6953: 		yyleng = YYCURSOR - SCNG(yy_text);
 6954: #line 1105 "Zend/zend_language_scanner.l"
 6955: 		{
 6956: 	return T_ENDSWITCH;
 6957: }
 6958: #line 6959 "Zend/zend_language_scanner.c"
 6959: yy761:
 6960: 		YYDEBUG(761, *YYCURSOR);
 6961: 		++YYCURSOR;
 6962: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 6963: 			goto yy185;
 6964: 		}
 6965: 		YYDEBUG(762, *YYCURSOR);
 6966: 		yyleng = YYCURSOR - SCNG(yy_text);
 6967: #line 1049 "Zend/zend_language_scanner.l"
 6968: 		{
 6969: 	return T_ENDIF;
 6970: }
 6971: #line 6972 "Zend/zend_language_scanner.c"
 6972: yy763:
 6973: 		YYDEBUG(763, *YYCURSOR);
 6974: 		yych = *++YYCURSOR;
 6975: 		if (yych == 'R') goto yy764;
 6976: 		if (yych != 'r') goto yy186;
 6977: yy764:
 6978: 		YYDEBUG(764, *YYCURSOR);
 6979: 		++YYCURSOR;
 6980: 		if ((yych = *YYCURSOR) <= '^') {
 6981: 			if (yych <= '@') {
 6982: 				if (yych <= '/') goto yy765;
 6983: 				if (yych <= '9') goto yy185;
 6984: 			} else {
 6985: 				if (yych == 'E') goto yy766;
 6986: 				if (yych <= 'Z') goto yy185;
 6987: 			}
 6988: 		} else {
 6989: 			if (yych <= 'd') {
 6990: 				if (yych != '`') goto yy185;
 6991: 			} else {
 6992: 				if (yych <= 'e') goto yy766;
 6993: 				if (yych <= 'z') goto yy185;
 6994: 				if (yych >= 0x7F) goto yy185;
 6995: 			}
 6996: 		}
 6997: yy765:
 6998: 		YYDEBUG(765, *YYCURSOR);
 6999: 		yyleng = YYCURSOR - SCNG(yy_text);
 7000: #line 1073 "Zend/zend_language_scanner.l"
 7001: 		{
 7002: 	return T_ENDFOR;
 7003: }
 7004: #line 7005 "Zend/zend_language_scanner.c"
 7005: yy766:
 7006: 		YYDEBUG(766, *YYCURSOR);
 7007: 		yych = *++YYCURSOR;
 7008: 		if (yych == 'A') goto yy767;
 7009: 		if (yych != 'a') goto yy186;
 7010: yy767:
 7011: 		YYDEBUG(767, *YYCURSOR);
 7012: 		yych = *++YYCURSOR;
 7013: 		if (yych == 'C') goto yy768;
 7014: 		if (yych != 'c') goto yy186;
 7015: yy768:
 7016: 		YYDEBUG(768, *YYCURSOR);
 7017: 		yych = *++YYCURSOR;
 7018: 		if (yych == 'H') goto yy769;
 7019: 		if (yych != 'h') goto yy186;
 7020: yy769:
 7021: 		YYDEBUG(769, *YYCURSOR);
 7022: 		++YYCURSOR;
 7023: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 7024: 			goto yy185;
 7025: 		}
 7026: 		YYDEBUG(770, *YYCURSOR);
 7027: 		yyleng = YYCURSOR - SCNG(yy_text);
 7028: #line 1081 "Zend/zend_language_scanner.l"
 7029: 		{
 7030: 	return T_ENDFOREACH;
 7031: }
 7032: #line 7033 "Zend/zend_language_scanner.c"
 7033: yy771:
 7034: 		YYDEBUG(771, *YYCURSOR);
 7035: 		yych = *++YYCURSOR;
 7036: 		if (yych == 'C') goto yy772;
 7037: 		if (yych != 'c') goto yy186;
 7038: yy772:
 7039: 		YYDEBUG(772, *YYCURSOR);
 7040: 		yych = *++YYCURSOR;
 7041: 		if (yych == 'L') goto yy773;
 7042: 		if (yych != 'l') goto yy186;
 7043: yy773:
 7044: 		YYDEBUG(773, *YYCURSOR);
 7045: 		yych = *++YYCURSOR;
 7046: 		if (yych == 'A') goto yy774;
 7047: 		if (yych != 'a') goto yy186;
 7048: yy774:
 7049: 		YYDEBUG(774, *YYCURSOR);
 7050: 		yych = *++YYCURSOR;
 7051: 		if (yych == 'R') goto yy775;
 7052: 		if (yych != 'r') goto yy186;
 7053: yy775:
 7054: 		YYDEBUG(775, *YYCURSOR);
 7055: 		yych = *++YYCURSOR;
 7056: 		if (yych == 'E') goto yy776;
 7057: 		if (yych != 'e') goto yy186;
 7058: yy776:
 7059: 		YYDEBUG(776, *YYCURSOR);
 7060: 		++YYCURSOR;
 7061: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 7062: 			goto yy185;
 7063: 		}
 7064: 		YYDEBUG(777, *YYCURSOR);
 7065: 		yyleng = YYCURSOR - SCNG(yy_text);
 7066: #line 1089 "Zend/zend_language_scanner.l"
 7067: 		{
 7068: 	return T_ENDDECLARE;
 7069: }
 7070: #line 7071 "Zend/zend_language_scanner.c"
 7071: yy778:
 7072: 		YYDEBUG(778, *YYCURSOR);
 7073: 		yych = *++YYCURSOR;
 7074: 		if (yych == 'T') goto yy779;
 7075: 		if (yych != 't') goto yy186;
 7076: yy779:
 7077: 		YYDEBUG(779, *YYCURSOR);
 7078: 		yych = *++YYCURSOR;
 7079: 		if (yych == 'Y') goto yy780;
 7080: 		if (yych != 'y') goto yy186;
 7081: yy780:
 7082: 		YYDEBUG(780, *YYCURSOR);
 7083: 		++YYCURSOR;
 7084: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 7085: 			goto yy185;
 7086: 		}
 7087: 		YYDEBUG(781, *YYCURSOR);
 7088: 		yyleng = YYCURSOR - SCNG(yy_text);
 7089: #line 1275 "Zend/zend_language_scanner.l"
 7090: 		{
 7091: 	return T_EMPTY;
 7092: }
 7093: #line 7094 "Zend/zend_language_scanner.c"
 7094: yy782:
 7095: 		YYDEBUG(782, *YYCURSOR);
 7096: 		yych = *++YYCURSOR;
 7097: 		if (yych == 'E') goto yy783;
 7098: 		if (yych != 'e') goto yy186;
 7099: yy783:
 7100: 		YYDEBUG(783, *YYCURSOR);
 7101: 		++YYCURSOR;
 7102: 		if ((yych = *YYCURSOR) <= '^') {
 7103: 			if (yych <= '@') {
 7104: 				if (yych <= '/') goto yy784;
 7105: 				if (yych <= '9') goto yy185;
 7106: 			} else {
 7107: 				if (yych == 'I') goto yy785;
 7108: 				if (yych <= 'Z') goto yy185;
 7109: 			}
 7110: 		} else {
 7111: 			if (yych <= 'h') {
 7112: 				if (yych != '`') goto yy185;
 7113: 			} else {
 7114: 				if (yych <= 'i') goto yy785;
 7115: 				if (yych <= 'z') goto yy185;
 7116: 				if (yych >= 0x7F) goto yy185;
 7117: 			}
 7118: 		}
 7119: yy784:
 7120: 		YYDEBUG(784, *YYCURSOR);
 7121: 		yyleng = YYCURSOR - SCNG(yy_text);
 7122: #line 1053 "Zend/zend_language_scanner.l"
 7123: 		{
 7124: 	return T_ELSE;
 7125: }
 7126: #line 7127 "Zend/zend_language_scanner.c"
 7127: yy785:
 7128: 		YYDEBUG(785, *YYCURSOR);
 7129: 		yych = *++YYCURSOR;
 7130: 		if (yych == 'F') goto yy786;
 7131: 		if (yych != 'f') goto yy186;
 7132: yy786:
 7133: 		YYDEBUG(786, *YYCURSOR);
 7134: 		++YYCURSOR;
 7135: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 7136: 			goto yy185;
 7137: 		}
 7138: 		YYDEBUG(787, *YYCURSOR);
 7139: 		yyleng = YYCURSOR - SCNG(yy_text);
 7140: #line 1045 "Zend/zend_language_scanner.l"
 7141: 		{
 7142: 	return T_ELSEIF;
 7143: }
 7144: #line 7145 "Zend/zend_language_scanner.c"
 7145: yy788:
 7146: 		YYDEBUG(788, *YYCURSOR);
 7147: 		yych = *++YYCURSOR;
 7148: 		if (yych == 'O') goto yy789;
 7149: 		if (yych != 'o') goto yy186;
 7150: yy789:
 7151: 		YYDEBUG(789, *YYCURSOR);
 7152: 		++YYCURSOR;
 7153: 		if (yybm[0+(yych = *YYCURSOR)] & 4) {
 7154: 			goto yy185;
 7155: 		}
 7156: 		YYDEBUG(790, *YYCURSOR);
 7157: 		yyleng = YYCURSOR - SCNG(yy_text);
 7158: #line 1129 "Zend/zend_language_scanner.l"
 7159: 		{
 7160: 	return T_ECHO;
 7161: }
 7162: #line 7163 "Zend/zend_language_scanner.c"
 7163: 	}
 7164: /* *********************************** */
 7165: yyc_ST_LOOKING_FOR_PROPERTY:
 7166: 	{
 7167: 		static const unsigned char yybm[] = {
 7168: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 7169: 			  0, 128, 128,   0,   0, 128,   0,   0, 
 7170: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 7171: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 7172: 			128,   0,   0,   0,   0,   0,   0,   0, 
 7173: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 7174: 			 64,  64,  64,  64,  64,  64,  64,  64, 
 7175: 			 64,  64,   0,   0,   0,   0,   0,   0, 
 7176: 			  0,  64,  64,  64,  64,  64,  64,  64, 
 7177: 			 64,  64,  64,  64,  64,  64,  64,  64, 
 7178: 			 64,  64,  64,  64,  64,  64,  64,  64, 
 7179: 			 64,  64,  64,   0,   0,   0,   0,  64, 
 7180: 			  0,  64,  64,  64,  64,  64,  64,  64, 
 7181: 			 64,  64,  64,  64,  64,  64,  64,  64, 
 7182: 			 64,  64,  64,  64,  64,  64,  64,  64, 
 7183: 			 64,  64,  64,   0,   0,   0,   0,  64, 
 7184: 			 64,  64,  64,  64,  64,  64,  64,  64, 
 7185: 			 64,  64,  64,  64,  64,  64,  64,  64, 
 7186: 			 64,  64,  64,  64,  64,  64,  64,  64, 
 7187: 			 64,  64,  64,  64,  64,  64,  64,  64, 
 7188: 			 64,  64,  64,  64,  64,  64,  64,  64, 
 7189: 			 64,  64,  64,  64,  64,  64,  64,  64, 
 7190: 			 64,  64,  64,  64,  64,  64,  64,  64, 
 7191: 			 64,  64,  64,  64,  64,  64,  64,  64, 
 7192: 			 64,  64,  64,  64,  64,  64,  64,  64, 
 7193: 			 64,  64,  64,  64,  64,  64,  64,  64, 
 7194: 			 64,  64,  64,  64,  64,  64,  64,  64, 
 7195: 			 64,  64,  64,  64,  64,  64,  64,  64, 
 7196: 			 64,  64,  64,  64,  64,  64,  64,  64, 
 7197: 			 64,  64,  64,  64,  64,  64,  64,  64, 
 7198: 			 64,  64,  64,  64,  64,  64,  64,  64, 
 7199: 			 64,  64,  64,  64,  64,  64,  64,  64, 
 7200: 		};
 7201: 		YYDEBUG(791, *YYCURSOR);
 7202: 		YYFILL(2);
 7203: 		yych = *YYCURSOR;
 7204: 		if (yych <= '-') {
 7205: 			if (yych <= '\r') {
 7206: 				if (yych <= 0x08) goto yy799;
 7207: 				if (yych <= '\n') goto yy793;
 7208: 				if (yych <= '\f') goto yy799;
 7209: 			} else {
 7210: 				if (yych == ' ') goto yy793;
 7211: 				if (yych <= ',') goto yy799;
 7212: 				goto yy795;
 7213: 			}
 7214: 		} else {
 7215: 			if (yych <= '_') {
 7216: 				if (yych <= '@') goto yy799;
 7217: 				if (yych <= 'Z') goto yy797;
 7218: 				if (yych <= '^') goto yy799;
 7219: 				goto yy797;
 7220: 			} else {
 7221: 				if (yych <= '`') goto yy799;
 7222: 				if (yych <= 'z') goto yy797;
 7223: 				if (yych <= '~') goto yy799;
 7224: 				goto yy797;
 7225: 			}
 7226: 		}
 7227: yy793:
 7228: 		YYDEBUG(793, *YYCURSOR);
 7229: 		++YYCURSOR;
 7230: 		yych = *YYCURSOR;
 7231: 		goto yy805;
 7232: yy794:
 7233: 		YYDEBUG(794, *YYCURSOR);
 7234: 		yyleng = YYCURSOR - SCNG(yy_text);
 7235: #line 1162 "Zend/zend_language_scanner.l"
 7236: 		{
 7237: 	zendlval->value.str.val = yytext; /* no copying - intentional */
 7238: 	zendlval->value.str.len = yyleng;
 7239: 	zendlval->type = IS_STRING;
 7240: 	HANDLE_NEWLINES(yytext, yyleng);
 7241: 	return T_WHITESPACE;
 7242: }
 7243: #line 7244 "Zend/zend_language_scanner.c"
 7244: yy795:
 7245: 		YYDEBUG(795, *YYCURSOR);
 7246: 		++YYCURSOR;
 7247: 		if ((yych = *YYCURSOR) == '>') goto yy802;
 7248: yy796:
 7249: 		YYDEBUG(796, *YYCURSOR);
 7250: 		yyleng = YYCURSOR - SCNG(yy_text);
 7251: #line 1181 "Zend/zend_language_scanner.l"
 7252: 		{
 7253: 	yyless(0);
 7254: 	yy_pop_state(TSRMLS_C);
 7255: 	goto restart;
 7256: }
 7257: #line 7258 "Zend/zend_language_scanner.c"
 7258: yy797:
 7259: 		YYDEBUG(797, *YYCURSOR);
 7260: 		++YYCURSOR;
 7261: 		yych = *YYCURSOR;
 7262: 		goto yy801;
 7263: yy798:
 7264: 		YYDEBUG(798, *YYCURSOR);
 7265: 		yyleng = YYCURSOR - SCNG(yy_text);
 7266: #line 1174 "Zend/zend_language_scanner.l"
 7267: 		{
 7268: 	yy_pop_state(TSRMLS_C);
 7269: 	zend_copy_value(zendlval, yytext, yyleng);
 7270: 	zendlval->type = IS_STRING;
 7271: 	return T_STRING;
 7272: }
 7273: #line 7274 "Zend/zend_language_scanner.c"
 7274: yy799:
 7275: 		YYDEBUG(799, *YYCURSOR);
 7276: 		yych = *++YYCURSOR;
 7277: 		goto yy796;
 7278: yy800:
 7279: 		YYDEBUG(800, *YYCURSOR);
 7280: 		++YYCURSOR;
 7281: 		YYFILL(1);
 7282: 		yych = *YYCURSOR;
 7283: yy801:
 7284: 		YYDEBUG(801, *YYCURSOR);
 7285: 		if (yybm[0+yych] & 64) {
 7286: 			goto yy800;
 7287: 		}
 7288: 		goto yy798;
 7289: yy802:
 7290: 		YYDEBUG(802, *YYCURSOR);
 7291: 		++YYCURSOR;
 7292: 		YYDEBUG(803, *YYCURSOR);
 7293: 		yyleng = YYCURSOR - SCNG(yy_text);
 7294: #line 1170 "Zend/zend_language_scanner.l"
 7295: 		{
 7296: 	return T_OBJECT_OPERATOR;
 7297: }
 7298: #line 7299 "Zend/zend_language_scanner.c"
 7299: yy804:
 7300: 		YYDEBUG(804, *YYCURSOR);
 7301: 		++YYCURSOR;
 7302: 		YYFILL(1);
 7303: 		yych = *YYCURSOR;
 7304: yy805:
 7305: 		YYDEBUG(805, *YYCURSOR);
 7306: 		if (yybm[0+yych] & 128) {
 7307: 			goto yy804;
 7308: 		}
 7309: 		goto yy794;
 7310: 	}
 7311: /* *********************************** */
 7312: yyc_ST_LOOKING_FOR_VARNAME:
 7313: 	{
 7314: 		static const unsigned char yybm[] = {
 7315: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 7316: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 7317: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 7318: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 7319: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 7320: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 7321: 			128, 128, 128, 128, 128, 128, 128, 128, 
 7322: 			128, 128,   0,   0,   0,   0,   0,   0, 
 7323: 			  0, 128, 128, 128, 128, 128, 128, 128, 
 7324: 			128, 128, 128, 128, 128, 128, 128, 128, 
 7325: 			128, 128, 128, 128, 128, 128, 128, 128, 
 7326: 			128, 128, 128,   0,   0,   0,   0, 128, 
 7327: 			  0, 128, 128, 128, 128, 128, 128, 128, 
 7328: 			128, 128, 128, 128, 128, 128, 128, 128, 
 7329: 			128, 128, 128, 128, 128, 128, 128, 128, 
 7330: 			128, 128, 128,   0,   0,   0,   0, 128, 
 7331: 			128, 128, 128, 128, 128, 128, 128, 128, 
 7332: 			128, 128, 128, 128, 128, 128, 128, 128, 
 7333: 			128, 128, 128, 128, 128, 128, 128, 128, 
 7334: 			128, 128, 128, 128, 128, 128, 128, 128, 
 7335: 			128, 128, 128, 128, 128, 128, 128, 128, 
 7336: 			128, 128, 128, 128, 128, 128, 128, 128, 
 7337: 			128, 128, 128, 128, 128, 128, 128, 128, 
 7338: 			128, 128, 128, 128, 128, 128, 128, 128, 
 7339: 			128, 128, 128, 128, 128, 128, 128, 128, 
 7340: 			128, 128, 128, 128, 128, 128, 128, 128, 
 7341: 			128, 128, 128, 128, 128, 128, 128, 128, 
 7342: 			128, 128, 128, 128, 128, 128, 128, 128, 
 7343: 			128, 128, 128, 128, 128, 128, 128, 128, 
 7344: 			128, 128, 128, 128, 128, 128, 128, 128, 
 7345: 			128, 128, 128, 128, 128, 128, 128, 128, 
 7346: 			128, 128, 128, 128, 128, 128, 128, 128, 
 7347: 		};
 7348: 		YYDEBUG(806, *YYCURSOR);
 7349: 		YYFILL(2);
 7350: 		yych = *YYCURSOR;
 7351: 		if (yych <= '_') {
 7352: 			if (yych <= '@') goto yy810;
 7353: 			if (yych <= 'Z') goto yy808;
 7354: 			if (yych <= '^') goto yy810;
 7355: 		} else {
 7356: 			if (yych <= '`') goto yy810;
 7357: 			if (yych <= 'z') goto yy808;
 7358: 			if (yych <= '~') goto yy810;
 7359: 		}
 7360: yy808:
 7361: 		YYDEBUG(808, *YYCURSOR);
 7362: 		++YYCURSOR;
 7363: 		yych = *YYCURSOR;
 7364: 		goto yy813;
 7365: yy809:
 7366: 		YYDEBUG(809, *YYCURSOR);
 7367: 		yyleng = YYCURSOR - SCNG(yy_text);
 7368: #line 1457 "Zend/zend_language_scanner.l"
 7369: 		{
 7370: 	zend_copy_value(zendlval, yytext, yyleng);
 7371: 	zendlval->type = IS_STRING;
 7372: 	yy_pop_state(TSRMLS_C);
 7373: 	yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
 7374: 	return T_STRING_VARNAME;
 7375: }
 7376: #line 7377 "Zend/zend_language_scanner.c"
 7377: yy810:
 7378: 		YYDEBUG(810, *YYCURSOR);
 7379: 		++YYCURSOR;
 7380: 		YYDEBUG(811, *YYCURSOR);
 7381: 		yyleng = YYCURSOR - SCNG(yy_text);
 7382: #line 1466 "Zend/zend_language_scanner.l"
 7383: 		{
 7384: 	yyless(0);
 7385: 	yy_pop_state(TSRMLS_C);
 7386: 	yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
 7387: 	goto restart;
 7388: }
 7389: #line 7390 "Zend/zend_language_scanner.c"
 7390: yy812:
 7391: 		YYDEBUG(812, *YYCURSOR);
 7392: 		++YYCURSOR;
 7393: 		YYFILL(1);
 7394: 		yych = *YYCURSOR;
 7395: yy813:
 7396: 		YYDEBUG(813, *YYCURSOR);
 7397: 		if (yybm[0+yych] & 128) {
 7398: 			goto yy812;
 7399: 		}
 7400: 		goto yy809;
 7401: 	}
 7402: /* *********************************** */
 7403: yyc_ST_NOWDOC:
 7404: 	YYDEBUG(814, *YYCURSOR);
 7405: 	YYFILL(1);
 7406: 	yych = *YYCURSOR;
 7407: 	YYDEBUG(816, *YYCURSOR);
 7408: 	++YYCURSOR;
 7409: 	YYDEBUG(817, *YYCURSOR);
 7410: 	yyleng = YYCURSOR - SCNG(yy_text);
 7411: #line 2348 "Zend/zend_language_scanner.l"
 7412: 	{
 7413: 	int newline = 0;
 7414: 
 7415: 	if (YYCURSOR > YYLIMIT) {
 7416: 		return 0;
 7417: 	}
 7418: 
 7419: 	YYCURSOR--;
 7420: 
 7421: 	while (YYCURSOR < YYLIMIT) {
 7422: 		switch (*YYCURSOR++) {
 7423: 			case '\r':
 7424: 				if (*YYCURSOR == '\n') {
 7425: 					YYCURSOR++;
 7426: 				}
 7427: 				/* fall through */
 7428: 			case '\n':
 7429: 				/* Check for ending label on the next line */
 7430: 				if (IS_LABEL_START(*YYCURSOR) && CG(heredoc_len) < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, CG(heredoc), CG(heredoc_len))) {
 7431: 					YYCTYPE *end = YYCURSOR + CG(heredoc_len);
 7432: 
 7433: 					if (*end == ';') {
 7434: 						end++;
 7435: 					}
 7436: 
 7437: 					if (*end == '\n' || *end == '\r') {
 7438: 						/* newline before label will be subtracted from returned text, but
 7439: 						 * yyleng/yytext will include it, for zend_highlight/strip, tokenizer, etc. */
 7440: 						if (YYCURSOR[-2] == '\r' && YYCURSOR[-1] == '\n') {
 7441: 							newline = 2; /* Windows newline */
 7442: 						} else {
 7443: 							newline = 1;
 7444: 						}
 7445: 
 7446: 						CG(increment_lineno) = 1; /* For newline before label */
 7447: 						BEGIN(ST_END_HEREDOC);
 7448: 
 7449: 						goto nowdoc_scan_done;
 7450: 					}
 7451: 				}
 7452: 				/* fall through */
 7453: 			default:
 7454: 				continue;
 7455: 		}
 7456: 	}
 7457: 
 7458: nowdoc_scan_done:
 7459: 	yyleng = YYCURSOR - SCNG(yy_text);
 7460: 
 7461: 	zend_copy_value(zendlval, yytext, yyleng - newline);
 7462: 	zendlval->type = IS_STRING;
 7463: 	HANDLE_NEWLINES(yytext, yyleng - newline);
 7464: 	return T_ENCAPSED_AND_WHITESPACE;
 7465: }
 7466: #line 7467 "Zend/zend_language_scanner.c"
 7467: /* *********************************** */
 7468: yyc_ST_VAR_OFFSET:
 7469: 	{
 7470: 		static const unsigned char yybm[] = {
 7471: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 7472: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 7473: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 7474: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 7475: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 7476: 			  0,   0,   0,   0,   0,   0,   0,   0, 
 7477: 			240, 240, 112, 112, 112, 112, 112, 112, 
 7478: 			112, 112,   0,   0,   0,   0,   0,   0, 
 7479: 			  0,  80,  80,  80,  80,  80,  80,  16, 
 7480: 			 16,  16,  16,  16,  16,  16,  16,  16, 
 7481: 			 16,  16,  16,  16,  16,  16,  16,  16, 
 7482: 			 16,  16,  16,   0,   0,   0,   0,  16, 
 7483: 			  0,  80,  80,  80,  80,  80,  80,  16, 
 7484: 			 16,  16,  16,  16,  16,  16,  16,  16, 
 7485: 			 16,  16,  16,  16,  16,  16,  16,  16, 
 7486: 			 16,  16,  16,   0,   0,   0,   0,  16, 
 7487: 			 16,  16,  16,  16,  16,  16,  16,  16, 
 7488: 			 16,  16,  16,  16,  16,  16,  16,  16, 
 7489: 			 16,  16,  16,  16,  16,  16,  16,  16, 
 7490: 			 16,  16,  16,  16,  16,  16,  16,  16, 
 7491: 			 16,  16,  16,  16,  16,  16,  16,  16, 
 7492: 			 16,  16,  16,  16,  16,  16,  16,  16, 
 7493: 			 16,  16,  16,  16,  16,  16,  16,  16, 
 7494: 			 16,  16,  16,  16,  16,  16,  16,  16, 
 7495: 			 16,  16,  16,  16,  16,  16,  16,  16, 
 7496: 			 16,  16,  16,  16,  16,  16,  16,  16, 
 7497: 			 16,  16,  16,  16,  16,  16,  16,  16, 
 7498: 			 16,  16,  16,  16,  16,  16,  16,  16, 
 7499: 			 16,  16,  16,  16,  16,  16,  16,  16, 
 7500: 			 16,  16,  16,  16,  16,  16,  16,  16, 
 7501: 			 16,  16,  16,  16,  16,  16,  16,  16, 
 7502: 			 16,  16,  16,  16,  16,  16,  16,  16, 
 7503: 		};
 7504: 		YYDEBUG(818, *YYCURSOR);
 7505: 		YYFILL(3);
 7506: 		yych = *YYCURSOR;
 7507: 		if (yych <= '/') {
 7508: 			if (yych <= ' ') {
 7509: 				if (yych <= '\f') {
 7510: 					if (yych <= 0x08) goto yy832;
 7511: 					if (yych <= '\n') goto yy828;
 7512: 					goto yy832;
 7513: 				} else {
 7514: 					if (yych <= '\r') goto yy828;
 7515: 					if (yych <= 0x1F) goto yy832;
 7516: 					goto yy828;
 7517: 				}
 7518: 			} else {
 7519: 				if (yych <= '$') {
 7520: 					if (yych <= '"') goto yy827;
 7521: 					if (yych <= '#') goto yy828;
 7522: 					goto yy823;
 7523: 				} else {
 7524: 					if (yych == '\'') goto yy828;
 7525: 					goto yy827;
 7526: 				}
 7527: 			}
 7528: 		} else {
 7529: 			if (yych <= '\\') {
 7530: 				if (yych <= '@') {
 7531: 					if (yych <= '0') goto yy820;
 7532: 					if (yych <= '9') goto yy822;
 7533: 					goto yy827;
 7534: 				} else {
 7535: 					if (yych <= 'Z') goto yy830;
 7536: 					if (yych <= '[') goto yy827;
 7537: 					goto yy828;
 7538: 				}
 7539: 			} else {
 7540: 				if (yych <= '_') {
 7541: 					if (yych <= ']') goto yy825;
 7542: 					if (yych <= '^') goto yy827;
 7543: 					goto yy830;
 7544: 				} else {
 7545: 					if (yych <= '`') goto yy827;
 7546: 					if (yych <= 'z') goto yy830;
 7547: 					if (yych <= '~') goto yy827;
 7548: 					goto yy830;
 7549: 				}
 7550: 			}
 7551: 		}
 7552: yy820:
 7553: 		YYDEBUG(820, *YYCURSOR);
 7554: 		yyaccept = 0;
 7555: 		yych = *(YYMARKER = ++YYCURSOR);
 7556: 		if (yych <= 'W') {
 7557: 			if (yych <= '9') {
 7558: 				if (yych >= '0') goto yy844;
 7559: 			} else {
 7560: 				if (yych == 'B') goto yy841;
 7561: 			}
 7562: 		} else {
 7563: 			if (yych <= 'b') {
 7564: 				if (yych <= 'X') goto yy843;
 7565: 				if (yych >= 'b') goto yy841;
 7566: 			} else {
 7567: 				if (yych == 'x') goto yy843;
 7568: 			}
 7569: 		}
 7570: yy821:
 7571: 		YYDEBUG(821, *YYCURSOR);
 7572: 		yyleng = YYCURSOR - SCNG(yy_text);
 7573: #line 1544 "Zend/zend_language_scanner.l"
 7574: 		{ /* Offset could be treated as a long */
 7575: 	if (yyleng < MAX_LENGTH_OF_LONG - 1 || (yyleng == MAX_LENGTH_OF_LONG - 1 && strcmp(yytext, long_min_digits) < 0)) {
 7576: 		zendlval->value.lval = strtol(yytext, NULL, 10);
 7577: 		zendlval->type = IS_LONG;
 7578: 	} else {
 7579: 		zendlval->value.str.val = (char *)estrndup(yytext, yyleng);
 7580: 		zendlval->value.str.len = yyleng;
 7581: 		zendlval->type = IS_STRING;
 7582: 	}
 7583: 	return T_NUM_STRING;
 7584: }
 7585: #line 7586 "Zend/zend_language_scanner.c"
 7586: yy822:
 7587: 		YYDEBUG(822, *YYCURSOR);
 7588: 		yych = *++YYCURSOR;
 7589: 		goto yy840;
 7590: yy823:
 7591: 		YYDEBUG(823, *YYCURSOR);
 7592: 		++YYCURSOR;
 7593: 		if ((yych = *YYCURSOR) <= '_') {
 7594: 			if (yych <= '@') goto yy824;
 7595: 			if (yych <= 'Z') goto yy836;
 7596: 			if (yych >= '_') goto yy836;
 7597: 		} else {
 7598: 			if (yych <= '`') goto yy824;
 7599: 			if (yych <= 'z') goto yy836;
 7600: 			if (yych >= 0x7F) goto yy836;
 7601: 		}
 7602: yy824:
 7603: 		YYDEBUG(824, *YYCURSOR);
 7604: 		yyleng = YYCURSOR - SCNG(yy_text);
 7605: #line 1876 "Zend/zend_language_scanner.l"
 7606: 		{
 7607: 	/* Only '[' can be valid, but returning other tokens will allow a more explicit parse error */
 7608: 	return yytext[0];
 7609: }
 7610: #line 7611 "Zend/zend_language_scanner.c"
 7611: yy825:
 7612: 		YYDEBUG(825, *YYCURSOR);
 7613: 		++YYCURSOR;
 7614: 		YYDEBUG(826, *YYCURSOR);
 7615: 		yyleng = YYCURSOR - SCNG(yy_text);
 7616: #line 1871 "Zend/zend_language_scanner.l"
 7617: 		{
 7618: 	yy_pop_state(TSRMLS_C);
 7619: 	return ']';
 7620: }
 7621: #line 7622 "Zend/zend_language_scanner.c"
 7622: yy827:
 7623: 		YYDEBUG(827, *YYCURSOR);
 7624: 		yych = *++YYCURSOR;
 7625: 		goto yy824;
 7626: yy828:
 7627: 		YYDEBUG(828, *YYCURSOR);
 7628: 		++YYCURSOR;
 7629: 		YYDEBUG(829, *YYCURSOR);
 7630: 		yyleng = YYCURSOR - SCNG(yy_text);
 7631: #line 1881 "Zend/zend_language_scanner.l"
 7632: 		{
 7633: 	/* Invalid rule to return a more explicit parse error with proper line number */
 7634: 	yyless(0);
 7635: 	yy_pop_state(TSRMLS_C);
 7636: 	return T_ENCAPSED_AND_WHITESPACE;
 7637: }
 7638: #line 7639 "Zend/zend_language_scanner.c"
 7639: yy830:
 7640: 		YYDEBUG(830, *YYCURSOR);
 7641: 		++YYCURSOR;
 7642: 		yych = *YYCURSOR;
 7643: 		goto yy835;
 7644: yy831:
 7645: 		YYDEBUG(831, *YYCURSOR);
 7646: 		yyleng = YYCURSOR - SCNG(yy_text);
 7647: #line 1888 "Zend/zend_language_scanner.l"
 7648: 		{
 7649: 	zend_copy_value(zendlval, yytext, yyleng);
 7650: 	zendlval->type = IS_STRING;
 7651: 	return T_STRING;
 7652: }
 7653: #line 7654 "Zend/zend_language_scanner.c"
 7654: yy832:
 7655: 		YYDEBUG(832, *YYCURSOR);
 7656: 		++YYCURSOR;
 7657: 		YYDEBUG(833, *YYCURSOR);
 7658: 		yyleng = YYCURSOR - SCNG(yy_text);
 7659: #line 2404 "Zend/zend_language_scanner.l"
 7660: 		{
 7661: 	if (YYCURSOR > YYLIMIT) {
 7662: 		return 0;
 7663: 	}
 7664: 
 7665: 	zend_error(E_COMPILE_WARNING,"Unexpected character in input:  '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);
 7666: 	goto restart;
 7667: }
 7668: #line 7669 "Zend/zend_language_scanner.c"
 7669: yy834:
 7670: 		YYDEBUG(834, *YYCURSOR);
 7671: 		++YYCURSOR;
 7672: 		YYFILL(1);
 7673: 		yych = *YYCURSOR;
 7674: yy835:
 7675: 		YYDEBUG(835, *YYCURSOR);
 7676: 		if (yybm[0+yych] & 16) {
 7677: 			goto yy834;
 7678: 		}
 7679: 		goto yy831;
 7680: yy836:
 7681: 		YYDEBUG(836, *YYCURSOR);
 7682: 		++YYCURSOR;
 7683: 		YYFILL(1);
 7684: 		yych = *YYCURSOR;
 7685: 		YYDEBUG(837, *YYCURSOR);
 7686: 		if (yych <= '^') {
 7687: 			if (yych <= '9') {
 7688: 				if (yych >= '0') goto yy836;
 7689: 			} else {
 7690: 				if (yych <= '@') goto yy838;
 7691: 				if (yych <= 'Z') goto yy836;
 7692: 			}
 7693: 		} else {
 7694: 			if (yych <= '`') {
 7695: 				if (yych <= '_') goto yy836;
 7696: 			} else {
 7697: 				if (yych <= 'z') goto yy836;
 7698: 				if (yych >= 0x7F) goto yy836;
 7699: 			}
 7700: 		}
 7701: yy838:
 7702: 		YYDEBUG(838, *YYCURSOR);
 7703: 		yyleng = YYCURSOR - SCNG(yy_text);
 7704: #line 1865 "Zend/zend_language_scanner.l"
 7705: 		{
 7706: 	zend_copy_value(zendlval, (yytext+1), (yyleng-1));
 7707: 	zendlval->type = IS_STRING;
 7708: 	return T_VARIABLE;
 7709: }
 7710: #line 7711 "Zend/zend_language_scanner.c"
 7711: yy839:
 7712: 		YYDEBUG(839, *YYCURSOR);
 7713: 		++YYCURSOR;
 7714: 		YYFILL(1);
 7715: 		yych = *YYCURSOR;
 7716: yy840:
 7717: 		YYDEBUG(840, *YYCURSOR);
 7718: 		if (yybm[0+yych] & 32) {
 7719: 			goto yy839;
 7720: 		}
 7721: 		goto yy821;
 7722: yy841:
 7723: 		YYDEBUG(841, *YYCURSOR);
 7724: 		yych = *++YYCURSOR;
 7725: 		if (yybm[0+yych] & 128) {
 7726: 			goto yy849;
 7727: 		}
 7728: yy842:
 7729: 		YYDEBUG(842, *YYCURSOR);
 7730: 		YYCURSOR = YYMARKER;
 7731: 		goto yy821;
 7732: yy843:
 7733: 		YYDEBUG(843, *YYCURSOR);
 7734: 		yych = *++YYCURSOR;
 7735: 		if (yybm[0+yych] & 64) {
 7736: 			goto yy847;
 7737: 		}
 7738: 		goto yy842;
 7739: yy844:
 7740: 		YYDEBUG(844, *YYCURSOR);
 7741: 		++YYCURSOR;
 7742: 		YYFILL(1);
 7743: 		yych = *YYCURSOR;
 7744: 		YYDEBUG(845, *YYCURSOR);
 7745: 		if (yych <= '/') goto yy846;
 7746: 		if (yych <= '9') goto yy844;
 7747: yy846:
 7748: 		YYDEBUG(846, *YYCURSOR);
 7749: 		yyleng = YYCURSOR - SCNG(yy_text);
 7750: #line 1556 "Zend/zend_language_scanner.l"
 7751: 		{ /* Offset must be treated as a string */
 7752: 	zendlval->value.str.val = (char *)estrndup(yytext, yyleng);
 7753: 	zendlval->value.str.len = yyleng;
 7754: 	zendlval->type = IS_STRING;
 7755: 	return T_NUM_STRING;
 7756: }
 7757: #line 7758 "Zend/zend_language_scanner.c"
 7758: yy847:
 7759: 		YYDEBUG(847, *YYCURSOR);
 7760: 		++YYCURSOR;
 7761: 		YYFILL(1);
 7762: 		yych = *YYCURSOR;
 7763: 		YYDEBUG(848, *YYCURSOR);
 7764: 		if (yybm[0+yych] & 64) {
 7765: 			goto yy847;
 7766: 		}
 7767: 		goto yy846;
 7768: yy849:
 7769: 		YYDEBUG(849, *YYCURSOR);
 7770: 		++YYCURSOR;
 7771: 		YYFILL(1);
 7772: 		yych = *YYCURSOR;
 7773: 		YYDEBUG(850, *YYCURSOR);
 7774: 		if (yybm[0+yych] & 128) {
 7775: 			goto yy849;
 7776: 		}
 7777: 		goto yy846;
 7778: 	}
 7779: }
 7780: #line 2413 "Zend/zend_language_scanner.l"
 7781: 
 7782: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>