Annotation of embedaddon/php/Zend/zend_language_scanner.c, revision 1.1.1.2
1.1.1.2 ! misho 1: /* Generated by re2c 0.13.5 on Thu Mar 1 21:27:30 2012 */
1.1 misho 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:
1.1.1.2 ! misho 26: /* $Id$ */
1.1 misho 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:
1.1.1.2 ! misho 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:
1.1 misho 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: {
1.1.1.2 ! misho 179: CG(parse_error) = 0;
1.1 misho 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: }
1.1.1.2 ! misho 193: CG(parse_error) = 0;
1.1 misho 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);
1.1.1.2 ! misho 240:
1.1 misho 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:
1.1.1.2 ! misho 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: }
1.1 misho 471:
472: ZEND_API int open_file_for_scanning(zend_file_handle *file_handle TSRMLS_DC)
473: {
1.1.1.2 ! misho 474: const char *file_path = NULL;
! 475: char *buf;
1.1 misho 476: size_t size, offset = 0;
1.1.1.2 ! misho 477:
1.1 misho 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) {
1.1.1.2 ! misho 502: if (CG(multibyte)) {
! 503: SCNG(script_org) = (unsigned char*)buf;
! 504: SCNG(script_org_size) = size;
! 505: SCNG(script_filtered) = NULL;
1.1 misho 506:
1.1.1.2 ! misho 507: zend_multibyte_set_filter(NULL TSRMLS_CC);
1.1 misho 508:
1.1.1.2 ! misho 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);
1.1 misho 516: }
517: }
1.1.1.2 ! misho 518: SCNG(yy_start) = (unsigned char *)buf - offset;
1.1 misho 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;
1.1.1.2 ! misho 580: zend_init_compiler_context(TSRMLS_C);
1.1 misho 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: {
1.1.1.2 ! misho 648: char *buf;
! 649: size_t size;
! 650:
1.1 misho 651: /* enforce two trailing NULLs for flex... */
1.1.1.2 ! misho 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: }
1.1 misho 659:
660: memset(str->value.str.val + str->value.str.len, 0, ZEND_MMAP_AHEAD);
661:
1.1.1.2 ! misho 662: SCNG(yy_in) = NULL;
1.1 misho 663: SCNG(yy_start) = NULL;
664:
1.1.1.2 ! misho 665: buf = str->value.str.val;
! 666: size = str->value.str.len;
1.1 misho 667:
1.1.1.2 ! misho 668: if (CG(multibyte)) {
! 669: SCNG(script_org) = (unsigned char*)buf;
! 670: SCNG(script_org_size) = size;
! 671: SCNG(script_filtered) = NULL;
1.1 misho 672:
1.1.1.2 ! misho 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: }
1.1 misho 683: }
684:
1.1.1.2 ! misho 685: yy_scan_buffer(buf, size TSRMLS_CC);
1.1 misho 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)) {
1.1.1.2 ! misho 698: size_t original_offset = offset, length = 0;
! 699: do {
1.1 misho 700: unsigned char *p = NULL;
1.1.1.2 ! misho 701: if ((size_t)-1 == SCNG(input_filter)(&p, &length, SCNG(script_org), offset TSRMLS_CC)) {
! 702: return (size_t)-1;
1.1 misho 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;
1.1.1.2 ! misho 749: zend_init_compiler_context(TSRMLS_C);
1.1 misho 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:
1.1.1.2 ! misho 828: ZEND_API void zend_multibyte_yyinput_again(zend_encoding_filter old_input_filter, const zend_encoding *old_encoding TSRMLS_DC)
1.1 misho 829: {
1.1.1.2 ! misho 830: size_t length;
! 831: unsigned char *new_yy_start;
1.1 misho 832:
833: /* convert and set */
834: if (!SCNG(input_filter)) {
1.1.1.2 ! misho 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);
1.1 misho 842: } else {
1.1.1.2 ! misho 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)));
1.1 misho 846: }
1.1.1.2 ! misho 847: SCNG(script_filtered) = new_yy_start;
! 848: SCNG(script_filtered_size) = length;
1.1 misho 849: }
850:
1.1.1.2 ! misho 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));
1.1 misho 855:
1.1.1.2 ! misho 856: SCNG(yy_start) = new_yy_start;
1.1 misho 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;
1.1.1.2 ! misho 909: case 'e':
! 910: *t++ = '\e';
! 911: zendlval->value.str.len--;
! 912: break;
1.1 misho 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:
1.1.1.2 ! misho 994: #line 995 "Zend/zend_language_scanner.c"
1.1 misho 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);
1.1.1.2 ! misho 1093: #line 1783 "Zend/zend_language_scanner.l"
1.1 misho 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 '?':
1.1.1.2 ! misho 1109: if (CG(short_tags) || !strncasecmp((char*)YYCURSOR + 1, "php", 3) || (*(YYCURSOR + 1) == '=')) { /* Assume [ \t\n\r] follows "php" */
1.1 misho 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: }
1.1.1.2 ! misho 1153: #line 1154 "Zend/zend_language_scanner.c"
1.1 misho 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);
1.1.1.2 ! misho 1171: #line 1771 "Zend/zend_language_scanner.l"
1.1 misho 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: }
1.1.1.2 ! misho 1183: #line 1184 "Zend/zend_language_scanner.c"
1.1 misho 1184: yy7:
1185: YYDEBUG(7, *YYCURSOR);
1186: ++YYCURSOR;
1187: if ((yych = *YYCURSOR) == '=') goto yy43;
1188: YYDEBUG(8, *YYCURSOR);
1189: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 1190: #line 1748 "Zend/zend_language_scanner.l"
1.1 misho 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: }
1.1.1.2 ! misho 1202: #line 1203 "Zend/zend_language_scanner.c"
1.1 misho 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);
1.1.1.2 ! misho 1388: #line 1708 "Zend/zend_language_scanner.l"
1.1 misho 1389: {
1.1.1.2 ! misho 1390: YYCTYPE *bracket = (YYCTYPE*)zend_memrchr(yytext, '<', yyleng - (sizeof("script language=php>") - 1));
1.1 misho 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: }
1.1.1.2 ! misho 1405: #line 1406 "Zend/zend_language_scanner.c"
1.1 misho 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);
1.1.1.2 ! misho 1432: #line 1726 "Zend/zend_language_scanner.l"
1.1 misho 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: }
1.1.1.2 ! misho 1444: #line 1445 "Zend/zend_language_scanner.c"
1.1 misho 1445: yy45:
1446: YYDEBUG(45, *YYCURSOR);
1447: ++YYCURSOR;
1448: YYDEBUG(46, *YYCURSOR);
1449: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 1450: #line 1739 "Zend/zend_language_scanner.l"
1.1 misho 1451: {
1.1.1.2 ! misho 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;
1.1 misho 1457: }
1.1.1.2 ! misho 1458: #line 1459 "Zend/zend_language_scanner.c"
1.1 misho 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);
1.1.1.2 ! misho 1485: #line 1761 "Zend/zend_language_scanner.l"
1.1 misho 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: }
1.1.1.2 ! misho 1494: #line 1495 "Zend/zend_language_scanner.c"
1.1 misho 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);
1.1.1.2 ! misho 1565: #line 2234 "Zend/zend_language_scanner.l"
1.1 misho 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: }
1.1.1.2 ! misho 1606: #line 1607 "Zend/zend_language_scanner.c"
1.1 misho 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);
1.1.1.2 ! misho 1617: #line 2178 "Zend/zend_language_scanner.l"
1.1 misho 1618: {
1619: BEGIN(ST_IN_SCRIPTING);
1620: return '`';
1621: }
1.1.1.2 ! misho 1622: #line 1623 "Zend/zend_language_scanner.c"
1.1 misho 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);
1.1.1.2 ! misho 1632: #line 2165 "Zend/zend_language_scanner.l"
1.1 misho 1633: {
1634: zendlval->value.lval = (long) '{';
1635: yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
1636: yyless(1);
1637: return T_CURLY_OPEN;
1638: }
1.1.1.2 ! misho 1639: #line 1640 "Zend/zend_language_scanner.c"
1.1 misho 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);
1.1.1.2 ! misho 1655: #line 1865 "Zend/zend_language_scanner.l"
1.1 misho 1656: {
1657: zend_copy_value(zendlval, (yytext+1), (yyleng-1));
1658: zendlval->type = IS_STRING;
1659: return T_VARIABLE;
1660: }
1.1.1.2 ! misho 1661: #line 1662 "Zend/zend_language_scanner.c"
1.1 misho 1662: yy66:
1663: YYDEBUG(66, *YYCURSOR);
1664: ++YYCURSOR;
1665: YYDEBUG(67, *YYCURSOR);
1666: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 1667: #line 1442 "Zend/zend_language_scanner.l"
1.1 misho 1668: {
1669: yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
1670: return T_DOLLAR_OPEN_CURLY_BRACES;
1671: }
1.1.1.2 ! misho 1672: #line 1673 "Zend/zend_language_scanner.c"
1.1 misho 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);
1.1.1.2 ! misho 1686: #line 1857 "Zend/zend_language_scanner.l"
1.1 misho 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: }
1.1.1.2 ! misho 1694: #line 1695 "Zend/zend_language_scanner.c"
1.1 misho 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);
1.1.1.2 ! misho 1712: #line 1847 "Zend/zend_language_scanner.l"
1.1 misho 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: }
1.1.1.2 ! misho 1720: #line 1721 "Zend/zend_language_scanner.c"
1.1 misho 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);
1.1.1.2 ! misho 1788: #line 2184 "Zend/zend_language_scanner.l"
1.1 misho 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: }
1.1.1.2 ! misho 1837: #line 1838 "Zend/zend_language_scanner.c"
1.1 misho 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);
1.1.1.2 ! misho 1848: #line 2173 "Zend/zend_language_scanner.l"
1.1 misho 1849: {
1850: BEGIN(ST_IN_SCRIPTING);
1851: return '"';
1852: }
1.1.1.2 ! misho 1853: #line 1854 "Zend/zend_language_scanner.c"
1.1 misho 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);
1.1.1.2 ! misho 1863: #line 2165 "Zend/zend_language_scanner.l"
1.1 misho 1864: {
1865: zendlval->value.lval = (long) '{';
1866: yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
1867: yyless(1);
1868: return T_CURLY_OPEN;
1869: }
1.1.1.2 ! misho 1870: #line 1871 "Zend/zend_language_scanner.c"
1.1 misho 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);
1.1.1.2 ! misho 1886: #line 1865 "Zend/zend_language_scanner.l"
1.1 misho 1887: {
1888: zend_copy_value(zendlval, (yytext+1), (yyleng-1));
1889: zendlval->type = IS_STRING;
1890: return T_VARIABLE;
1891: }
1.1.1.2 ! misho 1892: #line 1893 "Zend/zend_language_scanner.c"
1.1 misho 1893: yy88:
1894: YYDEBUG(88, *YYCURSOR);
1895: ++YYCURSOR;
1896: YYDEBUG(89, *YYCURSOR);
1897: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 1898: #line 1442 "Zend/zend_language_scanner.l"
1.1 misho 1899: {
1900: yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
1901: return T_DOLLAR_OPEN_CURLY_BRACES;
1902: }
1.1.1.2 ! misho 1903: #line 1904 "Zend/zend_language_scanner.c"
1.1 misho 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);
1.1.1.2 ! misho 1917: #line 1857 "Zend/zend_language_scanner.l"
1.1 misho 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: }
1.1.1.2 ! misho 1925: #line 1926 "Zend/zend_language_scanner.c"
1.1 misho 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);
1.1.1.2 ! misho 1943: #line 1847 "Zend/zend_language_scanner.l"
1.1 misho 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: }
1.1.1.2 ! misho 1951: #line 1952 "Zend/zend_language_scanner.c"
1.1 misho 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);
1.1.1.2 ! misho 1962: #line 2152 "Zend/zend_language_scanner.l"
1.1 misho 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: }
1.1.1.2 ! misho 1974: #line 1975 "Zend/zend_language_scanner.c"
1.1 misho 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);
1.1.1.2 ! misho 2036: #line 2276 "Zend/zend_language_scanner.l"
1.1 misho 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: }
1.1.1.2 ! misho 2107: #line 2108 "Zend/zend_language_scanner.c"
1.1 misho 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);
1.1.1.2 ! misho 2122: #line 2165 "Zend/zend_language_scanner.l"
1.1 misho 2123: {
2124: zendlval->value.lval = (long) '{';
2125: yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
2126: yyless(1);
2127: return T_CURLY_OPEN;
2128: }
1.1.1.2 ! misho 2129: #line 2130 "Zend/zend_language_scanner.c"
1.1 misho 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);
1.1.1.2 ! misho 2145: #line 1865 "Zend/zend_language_scanner.l"
1.1 misho 2146: {
2147: zend_copy_value(zendlval, (yytext+1), (yyleng-1));
2148: zendlval->type = IS_STRING;
2149: return T_VARIABLE;
2150: }
1.1.1.2 ! misho 2151: #line 2152 "Zend/zend_language_scanner.c"
1.1 misho 2152: yy112:
2153: YYDEBUG(112, *YYCURSOR);
2154: ++YYCURSOR;
2155: YYDEBUG(113, *YYCURSOR);
2156: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 2157: #line 1442 "Zend/zend_language_scanner.l"
1.1 misho 2158: {
2159: yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
2160: return T_DOLLAR_OPEN_CURLY_BRACES;
2161: }
1.1.1.2 ! misho 2162: #line 2163 "Zend/zend_language_scanner.c"
1.1 misho 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);
1.1.1.2 ! misho 2176: #line 1857 "Zend/zend_language_scanner.l"
1.1 misho 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: }
1.1.1.2 ! misho 2184: #line 2185 "Zend/zend_language_scanner.c"
1.1 misho 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);
1.1.1.2 ! misho 2202: #line 1847 "Zend/zend_language_scanner.l"
1.1 misho 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: }
1.1.1.2 ! misho 2210: #line 2211 "Zend/zend_language_scanner.c"
1.1 misho 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,
1.1.1.2 ! misho 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,
1.1 misho 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':
1.1.1.2 ! misho 2375: case 'c': goto yy726;
1.1 misho 2376: case 'L':
1.1.1.2 ! misho 2377: case 'l': goto yy727;
1.1 misho 2378: case 'M':
1.1.1.2 ! misho 2379: case 'm': goto yy728;
1.1 misho 2380: case 'N':
1.1.1.2 ! misho 2381: case 'n': goto yy729;
1.1 misho 2382: case 'V':
1.1.1.2 ! misho 2383: case 'v': goto yy730;
1.1 misho 2384: case 'X':
1.1.1.2 ! misho 2385: case 'x': goto yy731;
1.1 misho 2386: default: goto yy186;
2387: }
2388: yy124:
2389: YYDEBUG(124, *YYCURSOR);
2390: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 2391: #line 1888 "Zend/zend_language_scanner.l"
1.1 misho 2392: {
2393: zend_copy_value(zendlval, yytext, yyleng);
2394: zendlval->type = IS_STRING;
2395: return T_STRING;
2396: }
1.1.1.2 ! misho 2397: #line 2398 "Zend/zend_language_scanner.c"
1.1 misho 2398: yy125:
2399: YYDEBUG(125, *YYCURSOR);
2400: yych = *++YYCURSOR;
2401: if (yych <= 'O') {
2402: if (yych <= 'H') {
1.1.1.2 ! misho 2403: if (yych == 'E') goto yy708;
1.1 misho 2404: goto yy186;
2405: } else {
1.1.1.2 ! misho 2406: if (yych <= 'I') goto yy709;
1.1 misho 2407: if (yych <= 'N') goto yy186;
1.1.1.2 ! misho 2408: goto yy710;
1.1 misho 2409: }
2410: } else {
2411: if (yych <= 'h') {
1.1.1.2 ! misho 2412: if (yych == 'e') goto yy708;
1.1 misho 2413: goto yy186;
2414: } else {
1.1.1.2 ! misho 2415: if (yych <= 'i') goto yy709;
! 2416: if (yych == 'o') goto yy710;
1.1 misho 2417: goto yy186;
2418: }
2419: }
2420: yy126:
2421: YYDEBUG(126, *YYCURSOR);
2422: yych = *++YYCURSOR;
2423: if (yych <= 'U') {
2424: if (yych <= 'N') {
1.1.1.2 ! misho 2425: if (yych == 'I') goto yy687;
1.1 misho 2426: goto yy186;
2427: } else {
1.1.1.2 ! misho 2428: if (yych <= 'O') goto yy688;
1.1 misho 2429: if (yych <= 'T') goto yy186;
1.1.1.2 ! misho 2430: goto yy689;
1.1 misho 2431: }
2432: } else {
2433: if (yych <= 'n') {
1.1.1.2 ! misho 2434: if (yych == 'i') goto yy687;
1.1 misho 2435: goto yy186;
2436: } else {
1.1.1.2 ! misho 2437: if (yych <= 'o') goto yy688;
! 2438: if (yych == 'u') goto yy689;
1.1 misho 2439: goto yy186;
2440: }
2441: }
2442: yy127:
2443: YYDEBUG(127, *YYCURSOR);
2444: yych = *++YYCURSOR;
2445: if (yych <= 'O') {
2446: if (yych <= 'K') {
1.1.1.2 ! misho 2447: if (yych == 'A') goto yy652;
1.1 misho 2448: goto yy186;
2449: } else {
1.1.1.2 ! misho 2450: if (yych <= 'L') goto yy653;
1.1 misho 2451: if (yych <= 'N') goto yy186;
1.1.1.2 ! misho 2452: goto yy654;
1.1 misho 2453: }
2454: } else {
2455: if (yych <= 'k') {
1.1.1.2 ! misho 2456: if (yych == 'a') goto yy652;
1.1 misho 2457: goto yy186;
2458: } else {
1.1.1.2 ! misho 2459: if (yych <= 'l') goto yy653;
! 2460: if (yych == 'o') goto yy654;
1.1 misho 2461: goto yy186;
2462: }
2463: }
2464: yy128:
2465: YYDEBUG(128, *YYCURSOR);
2466: yych = *++YYCURSOR;
1.1.1.2 ! misho 2467: if (yych == 'E') goto yy634;
! 2468: if (yych == 'e') goto yy634;
1.1 misho 2469: goto yy186;
2470: yy129:
2471: YYDEBUG(129, *YYCURSOR);
2472: yych = *++YYCURSOR;
2473: if (yych <= 'R') {
1.1.1.2 ! misho 2474: if (yych == 'H') goto yy622;
1.1 misho 2475: if (yych <= 'Q') goto yy186;
1.1.1.2 ! misho 2476: goto yy623;
1.1 misho 2477: } else {
2478: if (yych <= 'h') {
2479: if (yych <= 'g') goto yy186;
1.1.1.2 ! misho 2480: goto yy622;
1.1 misho 2481: } else {
1.1.1.2 ! misho 2482: if (yych == 'r') goto yy623;
1.1 misho 2483: goto yy186;
2484: }
2485: }
2486: yy130:
2487: YYDEBUG(130, *YYCURSOR);
2488: yych = *++YYCURSOR;
2489: if (yych <= 'S') {
2490: if (yych <= 'L') {
1.1.1.2 ! misho 2491: if (yych == 'F') goto yy569;
1.1 misho 2492: goto yy186;
2493: } else {
1.1.1.2 ! misho 2494: if (yych <= 'M') goto yy571;
! 2495: if (yych <= 'N') goto yy572;
1.1 misho 2496: if (yych <= 'R') goto yy186;
1.1.1.2 ! misho 2497: goto yy573;
1.1 misho 2498: }
2499: } else {
2500: if (yych <= 'm') {
1.1.1.2 ! misho 2501: if (yych == 'f') goto yy569;
1.1 misho 2502: if (yych <= 'l') goto yy186;
1.1.1.2 ! misho 2503: goto yy571;
1.1 misho 2504: } else {
1.1.1.2 ! misho 2505: if (yych <= 'n') goto yy572;
! 2506: if (yych == 's') goto yy573;
1.1 misho 2507: goto yy186;
2508: }
2509: }
2510: yy131:
2511: YYDEBUG(131, *YYCURSOR);
2512: yych = *++YYCURSOR;
1.1.1.2 ! misho 2513: if (yych == 'H') goto yy564;
! 2514: if (yych == 'h') goto yy564;
1.1 misho 2515: goto yy186;
2516: yy132:
2517: YYDEBUG(132, *YYCURSOR);
2518: yych = *++YYCURSOR;
2519: if (yych <= 'S') {
2520: if (yych <= 'M') {
1.1.1.2 ! misho 2521: if (yych == 'B') goto yy546;
1.1 misho 2522: goto yy186;
2523: } else {
1.1.1.2 ! misho 2524: if (yych <= 'N') goto yy547;
1.1 misho 2525: if (yych <= 'Q') goto yy186;
1.1.1.2 ! misho 2526: if (yych <= 'R') goto yy548;
! 2527: goto yy549;
1.1 misho 2528: }
2529: } else {
2530: if (yych <= 'n') {
1.1.1.2 ! misho 2531: if (yych == 'b') goto yy546;
1.1 misho 2532: if (yych <= 'm') goto yy186;
1.1.1.2 ! misho 2533: goto yy547;
1.1 misho 2534: } else {
2535: if (yych <= 'q') goto yy186;
1.1.1.2 ! misho 2536: if (yych <= 'r') goto yy548;
! 2537: if (yych <= 's') goto yy549;
1.1 misho 2538: goto yy186;
2539: }
2540: }
2541: yy133:
2542: YYDEBUG(133, *YYCURSOR);
2543: yych = *++YYCURSOR;
2544: if (yych <= 'W') {
1.1.1.2 ! misho 2545: if (yych == 'T') goto yy534;
1.1 misho 2546: if (yych <= 'V') goto yy186;
1.1.1.2 ! misho 2547: goto yy535;
1.1 misho 2548: } else {
2549: if (yych <= 't') {
2550: if (yych <= 's') goto yy186;
1.1.1.2 ! misho 2551: goto yy534;
1.1 misho 2552: } else {
1.1.1.2 ! misho 2553: if (yych == 'w') goto yy535;
1.1 misho 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;
1.1.1.2 ! misho 2564: goto yy526;
1.1 misho 2565: } else {
1.1.1.2 ! misho 2566: if (yych == '\'') goto yy527;
1.1 misho 2567: goto yy186;
2568: }
2569: } else {
2570: if (yych <= 'R') {
1.1.1.2 ! misho 2571: if (yych <= '<') goto yy525;
1.1 misho 2572: if (yych <= 'Q') goto yy186;
1.1.1.2 ! misho 2573: goto yy528;
1.1 misho 2574: } else {
1.1.1.2 ! misho 2575: if (yych == 'r') goto yy528;
1.1 misho 2576: goto yy186;
2577: }
2578: }
2579: yy135:
2580: YYDEBUG(135, *YYCURSOR);
2581: yych = *++YYCURSOR;
2582: if (yych <= 'O') {
1.1.1.2 ! misho 2583: if (yych == 'L') goto yy515;
1.1 misho 2584: if (yych <= 'N') goto yy186;
1.1.1.2 ! misho 2585: goto yy516;
1.1 misho 2586: } else {
2587: if (yych <= 'l') {
2588: if (yych <= 'k') goto yy186;
1.1.1.2 ! misho 2589: goto yy515;
1.1 misho 2590: } else {
1.1.1.2 ! misho 2591: if (yych == 'o') goto yy516;
1.1 misho 2592: goto yy186;
2593: }
2594: }
2595: yy136:
2596: YYDEBUG(136, *YYCURSOR);
2597: yych = *++YYCURSOR;
2598: if (yych <= 'U') {
1.1.1.2 ! misho 2599: if (yych == 'R') goto yy491;
1.1 misho 2600: if (yych <= 'T') goto yy186;
1.1.1.2 ! misho 2601: goto yy492;
1.1 misho 2602: } else {
2603: if (yych <= 'r') {
2604: if (yych <= 'q') goto yy186;
1.1.1.2 ! misho 2605: goto yy491;
1.1 misho 2606: } else {
1.1.1.2 ! misho 2607: if (yych == 'u') goto yy492;
1.1 misho 2608: goto yy186;
2609: }
2610: }
2611: yy137:
2612: YYDEBUG(137, *YYCURSOR);
2613: ++YYCURSOR;
2614: if ((yych = *YYCURSOR) <= '<') {
1.1.1.2 ! misho 2615: if (yych == '-') goto yy487;
1.1 misho 2616: } else {
1.1.1.2 ! misho 2617: if (yych <= '=') goto yy485;
! 2618: if (yych <= '>') goto yy489;
1.1 misho 2619: }
2620: yy138:
2621: YYDEBUG(138, *YYCURSOR);
2622: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 2623: #line 1431 "Zend/zend_language_scanner.l"
1.1 misho 2624: {
2625: return yytext[0];
2626: }
1.1.1.2 ! misho 2627: #line 2628 "Zend/zend_language_scanner.c"
1.1 misho 2628: yy139:
2629: YYDEBUG(139, *YYCURSOR);
2630: ++YYCURSOR;
2631: yych = *YYCURSOR;
1.1.1.2 ! misho 2632: goto yy484;
1.1 misho 2633: yy140:
2634: YYDEBUG(140, *YYCURSOR);
2635: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 2636: #line 1162 "Zend/zend_language_scanner.l"
1.1 misho 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: }
1.1.1.2 ! misho 2644: #line 2645 "Zend/zend_language_scanner.c"
1.1 misho 2645: yy141:
2646: YYDEBUG(141, *YYCURSOR);
2647: yych = *++YYCURSOR;
1.1.1.2 ! misho 2648: if (yych == ':') goto yy481;
1.1 misho 2649: goto yy138;
2650: yy142:
2651: YYDEBUG(142, *YYCURSOR);
2652: ++YYCURSOR;
2653: YYDEBUG(143, *YYCURSOR);
2654: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 2655: #line 1191 "Zend/zend_language_scanner.l"
1.1 misho 2656: {
2657: return T_NS_SEPARATOR;
2658: }
1.1.1.2 ! misho 2659: #line 2660 "Zend/zend_language_scanner.c"
1.1 misho 2660: yy144:
2661: YYDEBUG(144, *YYCURSOR);
2662: yych = *++YYCURSOR;
2663: if (yych <= 'E') {
1.1.1.2 ! misho 2664: if (yych == 'A') goto yy469;
1.1 misho 2665: if (yych <= 'D') goto yy186;
1.1.1.2 ! misho 2666: goto yy470;
1.1 misho 2667: } else {
2668: if (yych <= 'a') {
2669: if (yych <= '`') goto yy186;
1.1.1.2 ! misho 2670: goto yy469;
1.1 misho 2671: } else {
1.1.1.2 ! misho 2672: if (yych == 'e') goto yy470;
1.1 misho 2673: goto yy186;
2674: }
2675: }
2676: yy145:
2677: YYDEBUG(145, *YYCURSOR);
2678: yych = *++YYCURSOR;
1.1.1.2 ! misho 2679: if (yych == 'A') goto yy466;
! 2680: if (yych == 'a') goto yy466;
1.1 misho 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 <= ' ') {
1.1.1.2 ! misho 2689: if (yych == '\t') goto yy391;
1.1 misho 2690: if (yych <= 0x1F) goto yy138;
1.1.1.2 ! misho 2691: goto yy391;
1.1 misho 2692: } else {
2693: if (yych <= '@') goto yy138;
2694: if (yych == 'C') goto yy138;
1.1.1.2 ! misho 2695: goto yy391;
1.1 misho 2696: }
2697: } else {
2698: if (yych <= 'I') {
1.1.1.2 ! misho 2699: if (yych == 'F') goto yy391;
1.1 misho 2700: if (yych <= 'H') goto yy138;
1.1.1.2 ! misho 2701: goto yy391;
1.1 misho 2702: } else {
1.1.1.2 ! misho 2703: if (yych == 'O') goto yy391;
1.1 misho 2704: if (yych <= 'Q') goto yy138;
1.1.1.2 ! misho 2705: goto yy391;
1.1 misho 2706: }
2707: }
2708: } else {
2709: if (yych <= 'f') {
2710: if (yych <= 'b') {
1.1.1.2 ! misho 2711: if (yych == 'U') goto yy391;
1.1 misho 2712: if (yych <= '`') goto yy138;
1.1.1.2 ! misho 2713: goto yy391;
1.1 misho 2714: } else {
1.1.1.2 ! misho 2715: if (yych == 'd') goto yy391;
1.1 misho 2716: if (yych <= 'e') goto yy138;
1.1.1.2 ! misho 2717: goto yy391;
1.1 misho 2718: }
2719: } else {
2720: if (yych <= 'o') {
1.1.1.2 ! misho 2721: if (yych == 'i') goto yy391;
1.1 misho 2722: if (yych <= 'n') goto yy138;
1.1.1.2 ! misho 2723: goto yy391;
1.1 misho 2724: } else {
2725: if (yych <= 's') {
2726: if (yych <= 'q') goto yy138;
1.1.1.2 ! misho 2727: goto yy391;
1.1 misho 2728: } else {
1.1.1.2 ! misho 2729: if (yych == 'u') goto yy391;
1.1 misho 2730: goto yy138;
2731: }
2732: }
2733: }
2734: }
2735: yy147:
2736: YYDEBUG(147, *YYCURSOR);
2737: yych = *++YYCURSOR;
2738: if (yych <= 'S') {
1.1.1.2 ! misho 2739: if (yych == 'N') goto yy382;
1.1 misho 2740: if (yych <= 'R') goto yy186;
1.1.1.2 ! misho 2741: goto yy383;
1.1 misho 2742: } else {
2743: if (yych <= 'n') {
2744: if (yych <= 'm') goto yy186;
1.1.1.2 ! misho 2745: goto yy382;
1.1 misho 2746: } else {
1.1.1.2 ! misho 2747: if (yych == 's') goto yy383;
1.1 misho 2748: goto yy186;
2749: }
2750: }
2751: yy148:
2752: YYDEBUG(148, *YYCURSOR);
2753: yych = *++YYCURSOR;
1.1.1.2 ! misho 2754: if (yych == '_') goto yy300;
1.1 misho 2755: goto yy186;
2756: yy149:
2757: YYDEBUG(149, *YYCURSOR);
2758: yych = *++YYCURSOR;
2759: if (yych <= '<') goto yy138;
1.1.1.2 ! misho 2760: if (yych <= '=') goto yy294;
! 2761: if (yych <= '>') goto yy296;
1.1 misho 2762: goto yy138;
2763: yy150:
2764: YYDEBUG(150, *YYCURSOR);
2765: yych = *++YYCURSOR;
1.1.1.2 ! misho 2766: if (yych == 'I') goto yy290;
! 2767: if (yych == 'i') goto yy290;
1.1 misho 2768: goto yy186;
2769: yy151:
2770: YYDEBUG(151, *YYCURSOR);
2771: yych = *++YYCURSOR;
1.1.1.2 ! misho 2772: if (yych == '+') goto yy288;
! 2773: if (yych == '=') goto yy286;
1.1 misho 2774: goto yy138;
2775: yy152:
2776: YYDEBUG(152, *YYCURSOR);
2777: yych = *++YYCURSOR;
1.1.1.2 ! misho 2778: if (yych == '=') goto yy283;
1.1 misho 2779: goto yy138;
2780: yy153:
2781: YYDEBUG(153, *YYCURSOR);
2782: yyaccept = 1;
2783: yych = *(YYMARKER = ++YYCURSOR);
2784: if (yych <= ';') {
1.1.1.2 ! misho 2785: if (yych == '/') goto yy255;
1.1 misho 2786: goto yy138;
2787: } else {
1.1.1.2 ! misho 2788: if (yych <= '<') goto yy253;
! 2789: if (yych <= '=') goto yy256;
! 2790: if (yych <= '>') goto yy258;
1.1 misho 2791: goto yy138;
2792: }
2793: yy154:
2794: YYDEBUG(154, *YYCURSOR);
2795: yych = *++YYCURSOR;
2796: if (yych <= '<') goto yy138;
1.1.1.2 ! misho 2797: if (yych <= '=') goto yy249;
! 2798: if (yych <= '>') goto yy247;
1.1 misho 2799: goto yy138;
2800: yy155:
2801: YYDEBUG(155, *YYCURSOR);
2802: yych = *++YYCURSOR;
1.1.1.2 ! misho 2803: if (yych == '=') goto yy245;
1.1 misho 2804: goto yy138;
2805: yy156:
2806: YYDEBUG(156, *YYCURSOR);
2807: yych = *++YYCURSOR;
2808: if (yych <= '.') {
1.1.1.2 ! misho 2809: if (yych == '*') goto yy237;
1.1 misho 2810: goto yy138;
2811: } else {
1.1.1.2 ! misho 2812: if (yych <= '/') goto yy239;
! 2813: if (yych == '=') goto yy240;
1.1 misho 2814: goto yy138;
2815: }
2816: yy157:
2817: YYDEBUG(157, *YYCURSOR);
2818: yych = *++YYCURSOR;
2819: if (yych <= '/') goto yy138;
1.1.1.2 ! misho 2820: if (yych <= '9') goto yy233;
! 2821: if (yych == '=') goto yy235;
1.1 misho 2822: goto yy138;
2823: yy158:
2824: YYDEBUG(158, *YYCURSOR);
2825: yych = *++YYCURSOR;
2826: if (yych <= '<') goto yy138;
1.1.1.2 ! misho 2827: if (yych <= '=') goto yy229;
! 2828: if (yych <= '>') goto yy227;
1.1 misho 2829: goto yy138;
2830: yy159:
2831: YYDEBUG(159, *YYCURSOR);
2832: yych = *++YYCURSOR;
1.1.1.2 ! misho 2833: if (yych == '&') goto yy223;
! 2834: if (yych == '=') goto yy225;
1.1 misho 2835: goto yy138;
2836: yy160:
2837: YYDEBUG(160, *YYCURSOR);
2838: yych = *++YYCURSOR;
1.1.1.2 ! misho 2839: if (yych == '=') goto yy221;
! 2840: if (yych == '|') goto yy219;
1.1 misho 2841: goto yy138;
2842: yy161:
2843: YYDEBUG(161, *YYCURSOR);
2844: yych = *++YYCURSOR;
1.1.1.2 ! misho 2845: if (yych == '=') goto yy217;
1.1 misho 2846: goto yy138;
2847: yy162:
2848: YYDEBUG(162, *YYCURSOR);
2849: yych = *++YYCURSOR;
1.1.1.2 ! misho 2850: if (yych == 'R') goto yy215;
! 2851: if (yych == 'r') goto yy215;
1.1 misho 2852: goto yy186;
2853: yy163:
2854: YYDEBUG(163, *YYCURSOR);
2855: yych = *++YYCURSOR;
1.1.1.2 ! misho 2856: if (yych == 'O') goto yy212;
! 2857: if (yych == 'o') goto yy212;
1.1 misho 2858: goto yy186;
2859: yy164:
2860: YYDEBUG(164, *YYCURSOR);
2861: yych = *++YYCURSOR;
2862: if (yych <= '_') {
2863: if (yych <= '@') goto yy138;
1.1.1.2 ! misho 2864: if (yych <= 'Z') goto yy209;
1.1 misho 2865: if (yych <= '^') goto yy138;
1.1.1.2 ! misho 2866: goto yy209;
1.1 misho 2867: } else {
2868: if (yych <= '`') goto yy138;
1.1.1.2 ! misho 2869: if (yych <= 'z') goto yy209;
1.1 misho 2870: if (yych <= '~') goto yy138;
1.1.1.2 ! misho 2871: goto yy209;
1.1 misho 2872: }
2873: yy165:
2874: YYDEBUG(165, *YYCURSOR);
2875: yych = *++YYCURSOR;
2876: goto yy138;
2877: yy166:
2878: YYDEBUG(166, *YYCURSOR);
2879: yych = *++YYCURSOR;
1.1.1.2 ! misho 2880: if (yych == '>') goto yy205;
1.1 misho 2881: goto yy138;
2882: yy167:
2883: YYDEBUG(167, *YYCURSOR);
2884: ++YYCURSOR;
2885: YYDEBUG(168, *YYCURSOR);
2886: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 2887: #line 1436 "Zend/zend_language_scanner.l"
1.1 misho 2888: {
2889: yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
2890: return '{';
2891: }
1.1.1.2 ! misho 2892: #line 2893 "Zend/zend_language_scanner.c"
1.1 misho 2893: yy169:
2894: YYDEBUG(169, *YYCURSOR);
2895: ++YYCURSOR;
2896: YYDEBUG(170, *YYCURSOR);
2897: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 2898: #line 1448 "Zend/zend_language_scanner.l"
1.1 misho 2899: {
2900: RESET_DOC_COMMENT();
2901: if (!zend_stack_is_empty(&SCNG(state_stack))) {
2902: yy_pop_state(TSRMLS_C);
2903: }
2904: return '}';
2905: }
1.1.1.2 ! misho 2906: #line 2907 "Zend/zend_language_scanner.c"
1.1 misho 2907: yy171:
2908: YYDEBUG(171, *YYCURSOR);
2909: yyaccept = 2;
2910: yych = *(YYMARKER = ++YYCURSOR);
2911: if (yych <= 'E') {
1.1.1.2 ! misho 2912: if (yych <= '9') {
1.1 misho 2913: if (yych == '.') goto yy187;
1.1.1.2 ! misho 2914: if (yych >= '0') goto yy190;
1.1 misho 2915: } else {
1.1.1.2 ! misho 2916: if (yych == 'B') goto yy198;
1.1 misho 2917: if (yych >= 'E') goto yy192;
2918: }
2919: } else {
1.1.1.2 ! misho 2920: if (yych <= 'b') {
1.1 misho 2921: if (yych == 'X') goto yy197;
1.1.1.2 ! misho 2922: if (yych >= 'b') goto yy198;
1.1 misho 2923: } else {
1.1.1.2 ! misho 2924: if (yych <= 'e') {
! 2925: if (yych >= 'e') goto yy192;
! 2926: } else {
! 2927: if (yych == 'x') goto yy197;
! 2928: }
1.1 misho 2929: }
2930: }
2931: yy172:
2932: YYDEBUG(172, *YYCURSOR);
2933: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 2934: #line 1498 "Zend/zend_language_scanner.l"
1.1 misho 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: }
1.1.1.2 ! misho 2955: #line 2956 "Zend/zend_language_scanner.c"
1.1 misho 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);
1.1.1.2 ! misho 2983: #line 1895 "Zend/zend_language_scanner.l"
1.1 misho 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: }
1.1.1.2 ! misho 3017: #line 3018 "Zend/zend_language_scanner.c"
1.1 misho 3018: yy177:
3019: YYDEBUG(177, *YYCURSOR);
3020: ++YYCURSOR;
3021: yy178:
3022: YYDEBUG(178, *YYCURSOR);
3023: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 3024: #line 1986 "Zend/zend_language_scanner.l"
1.1 misho 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: }
1.1.1.2 ! misho 3092: #line 3093 "Zend/zend_language_scanner.c"
1.1 misho 3093: yy179:
3094: YYDEBUG(179, *YYCURSOR);
3095: ++YYCURSOR;
3096: yy180:
3097: YYDEBUG(180, *YYCURSOR);
3098: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 3099: #line 2055 "Zend/zend_language_scanner.l"
1.1 misho 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: }
1.1.1.2 ! misho 3140: #line 3141 "Zend/zend_language_scanner.c"
1.1 misho 3141: yy181:
3142: YYDEBUG(181, *YYCURSOR);
3143: ++YYCURSOR;
3144: YYDEBUG(182, *YYCURSOR);
3145: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 3146: #line 2146 "Zend/zend_language_scanner.l"
1.1 misho 3147: {
3148: BEGIN(ST_BACKQUOTE);
3149: return '`';
3150: }
1.1.1.2 ! misho 3151: #line 3152 "Zend/zend_language_scanner.c"
1.1 misho 3152: yy183:
3153: YYDEBUG(183, *YYCURSOR);
3154: ++YYCURSOR;
3155: YYDEBUG(184, *YYCURSOR);
3156: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 3157: #line 2404 "Zend/zend_language_scanner.l"
1.1 misho 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: }
1.1.1.2 ! misho 3166: #line 3167 "Zend/zend_language_scanner.c"
1.1 misho 3167: yy185:
3168: YYDEBUG(185, *YYCURSOR);
3169: ++YYCURSOR;
3170: YYFILL(1);
3171: yych = *YYCURSOR;
3172: yy186:
3173: YYDEBUG(186, *YYCURSOR);
1.1.1.2 ! misho 3174: if (yybm[0+yych] & 4) {
1.1 misho 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);
1.1.1.2 ! misho 3185: if (yybm[0+yych] & 8) {
1.1 misho 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);
1.1.1.2 ! misho 3193: #line 1563 "Zend/zend_language_scanner.l"
1.1 misho 3194: {
3195: zendlval->value.dval = zend_strtod(yytext, NULL);
3196: zendlval->type = IS_DOUBLE;
3197: return T_DNUMBER;
3198: }
1.1.1.2 ! misho 3199: #line 3200 "Zend/zend_language_scanner.c"
1.1 misho 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 {
1.1.1.2 ! misho 3246: goto yy238;
1.1 misho 3247: }
3248: } else {
1.1.1.2 ! misho 3249: goto yy254;
1.1 misho 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) {
1.1.1.2 ! misho 3270: goto yy202;
1.1 misho 3271: }
3272: goto yy193;
3273: yy198:
3274: YYDEBUG(198, *YYCURSOR);
1.1.1.2 ! misho 3275: yych = *++YYCURSOR;
! 3276: if (yybm[0+yych] & 16) {
! 3277: goto yy199;
! 3278: }
! 3279: goto yy193;
! 3280: yy199:
! 3281: YYDEBUG(199, *YYCURSOR);
1.1 misho 3282: ++YYCURSOR;
3283: YYFILL(1);
3284: yych = *YYCURSOR;
1.1.1.2 ! misho 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);
1.1 misho 3323: if (yybm[0+yych] & 32) {
1.1.1.2 ! misho 3324: goto yy202;
1.1 misho 3325: }
1.1.1.2 ! misho 3326: YYDEBUG(204, *YYCURSOR);
1.1 misho 3327: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 3328: #line 1519 "Zend/zend_language_scanner.l"
1.1 misho 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')) {
1.1.1.2 ! misho 3340: if (len == 0) {
! 3341: zendlval->value.lval = 0;
! 3342: } else {
! 3343: zendlval->value.lval = strtol(hex, NULL, 16);
! 3344: }
1.1 misho 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: }
1.1.1.2 ! misho 3353: #line 3354 "Zend/zend_language_scanner.c"
! 3354: yy205:
! 3355: YYDEBUG(205, *YYCURSOR);
1.1 misho 3356: ++YYCURSOR;
1.1.1.2 ! misho 3357: if ((yych = *YYCURSOR) == '\n') goto yy207;
! 3358: if (yych == '\r') goto yy208;
! 3359: yy206:
! 3360: YYDEBUG(206, *YYCURSOR);
1.1 misho 3361: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 3362: #line 1963 "Zend/zend_language_scanner.l"
1.1 misho 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: }
1.1.1.2 ! misho 3370: #line 3371 "Zend/zend_language_scanner.c"
! 3371: yy207:
! 3372: YYDEBUG(207, *YYCURSOR);
1.1 misho 3373: yych = *++YYCURSOR;
1.1.1.2 ! misho 3374: goto yy206;
! 3375: yy208:
! 3376: YYDEBUG(208, *YYCURSOR);
1.1 misho 3377: yych = *++YYCURSOR;
1.1.1.2 ! misho 3378: if (yych == '\n') goto yy207;
! 3379: goto yy206;
! 3380: yy209:
! 3381: YYDEBUG(209, *YYCURSOR);
1.1 misho 3382: ++YYCURSOR;
3383: YYFILL(1);
3384: yych = *YYCURSOR;
1.1.1.2 ! misho 3385: YYDEBUG(210, *YYCURSOR);
1.1 misho 3386: if (yych <= '^') {
3387: if (yych <= '9') {
1.1.1.2 ! misho 3388: if (yych >= '0') goto yy209;
1.1 misho 3389: } else {
1.1.1.2 ! misho 3390: if (yych <= '@') goto yy211;
! 3391: if (yych <= 'Z') goto yy209;
1.1 misho 3392: }
3393: } else {
3394: if (yych <= '`') {
1.1.1.2 ! misho 3395: if (yych <= '_') goto yy209;
1.1 misho 3396: } else {
1.1.1.2 ! misho 3397: if (yych <= 'z') goto yy209;
! 3398: if (yych >= 0x7F) goto yy209;
1.1 misho 3399: }
3400: }
1.1.1.2 ! misho 3401: yy211:
! 3402: YYDEBUG(211, *YYCURSOR);
1.1 misho 3403: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 3404: #line 1865 "Zend/zend_language_scanner.l"
1.1 misho 3405: {
3406: zend_copy_value(zendlval, (yytext+1), (yyleng-1));
3407: zendlval->type = IS_STRING;
3408: return T_VARIABLE;
3409: }
1.1.1.2 ! misho 3410: #line 3411 "Zend/zend_language_scanner.c"
! 3411: yy212:
! 3412: YYDEBUG(212, *YYCURSOR);
1.1 misho 3413: yych = *++YYCURSOR;
1.1.1.2 ! misho 3414: if (yych == 'R') goto yy213;
1.1 misho 3415: if (yych != 'r') goto yy186;
1.1.1.2 ! misho 3416: yy213:
! 3417: YYDEBUG(213, *YYCURSOR);
1.1 misho 3418: ++YYCURSOR;
1.1.1.2 ! misho 3419: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 3420: goto yy185;
3421: }
1.1.1.2 ! misho 3422: YYDEBUG(214, *YYCURSOR);
1.1 misho 3423: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 3424: #line 1419 "Zend/zend_language_scanner.l"
1.1 misho 3425: {
3426: return T_LOGICAL_XOR;
3427: }
1.1.1.2 ! misho 3428: #line 3429 "Zend/zend_language_scanner.c"
! 3429: yy215:
! 3430: YYDEBUG(215, *YYCURSOR);
1.1 misho 3431: ++YYCURSOR;
1.1.1.2 ! misho 3432: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 3433: goto yy185;
3434: }
1.1.1.2 ! misho 3435: YYDEBUG(216, *YYCURSOR);
1.1 misho 3436: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 3437: #line 1411 "Zend/zend_language_scanner.l"
1.1 misho 3438: {
3439: return T_LOGICAL_OR;
3440: }
1.1.1.2 ! misho 3441: #line 3442 "Zend/zend_language_scanner.c"
! 3442: yy217:
! 3443: YYDEBUG(217, *YYCURSOR);
1.1 misho 3444: ++YYCURSOR;
1.1.1.2 ! misho 3445: YYDEBUG(218, *YYCURSOR);
1.1 misho 3446: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 3447: #line 1399 "Zend/zend_language_scanner.l"
1.1 misho 3448: {
3449: return T_XOR_EQUAL;
3450: }
1.1.1.2 ! misho 3451: #line 3452 "Zend/zend_language_scanner.c"
! 3452: yy219:
! 3453: YYDEBUG(219, *YYCURSOR);
1.1 misho 3454: ++YYCURSOR;
1.1.1.2 ! misho 3455: YYDEBUG(220, *YYCURSOR);
1.1 misho 3456: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 3457: #line 1403 "Zend/zend_language_scanner.l"
1.1 misho 3458: {
3459: return T_BOOLEAN_OR;
3460: }
1.1.1.2 ! misho 3461: #line 3462 "Zend/zend_language_scanner.c"
! 3462: yy221:
! 3463: YYDEBUG(221, *YYCURSOR);
1.1 misho 3464: ++YYCURSOR;
1.1.1.2 ! misho 3465: YYDEBUG(222, *YYCURSOR);
1.1 misho 3466: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 3467: #line 1395 "Zend/zend_language_scanner.l"
1.1 misho 3468: {
3469: return T_OR_EQUAL;
3470: }
1.1.1.2 ! misho 3471: #line 3472 "Zend/zend_language_scanner.c"
! 3472: yy223:
! 3473: YYDEBUG(223, *YYCURSOR);
1.1 misho 3474: ++YYCURSOR;
1.1.1.2 ! misho 3475: YYDEBUG(224, *YYCURSOR);
1.1 misho 3476: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 3477: #line 1407 "Zend/zend_language_scanner.l"
1.1 misho 3478: {
3479: return T_BOOLEAN_AND;
3480: }
1.1.1.2 ! misho 3481: #line 3482 "Zend/zend_language_scanner.c"
! 3482: yy225:
! 3483: YYDEBUG(225, *YYCURSOR);
1.1 misho 3484: ++YYCURSOR;
1.1.1.2 ! misho 3485: YYDEBUG(226, *YYCURSOR);
1.1 misho 3486: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 3487: #line 1391 "Zend/zend_language_scanner.l"
1.1 misho 3488: {
3489: return T_AND_EQUAL;
3490: }
1.1.1.2 ! misho 3491: #line 3492 "Zend/zend_language_scanner.c"
! 3492: yy227:
! 3493: YYDEBUG(227, *YYCURSOR);
1.1 misho 3494: ++YYCURSOR;
1.1.1.2 ! misho 3495: if ((yych = *YYCURSOR) == '\n') goto yy231;
! 3496: if (yych == '\r') goto yy232;
! 3497: yy228:
! 3498: YYDEBUG(228, *YYCURSOR);
1.1 misho 3499: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 3500: #line 1972 "Zend/zend_language_scanner.l"
1.1 misho 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: }
1.1.1.2 ! misho 3513: #line 3514 "Zend/zend_language_scanner.c"
! 3514: yy229:
! 3515: YYDEBUG(229, *YYCURSOR);
1.1 misho 3516: ++YYCURSOR;
1.1.1.2 ! misho 3517: YYDEBUG(230, *YYCURSOR);
1.1 misho 3518: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 3519: #line 1379 "Zend/zend_language_scanner.l"
1.1 misho 3520: {
3521: return T_MOD_EQUAL;
3522: }
1.1.1.2 ! misho 3523: #line 3524 "Zend/zend_language_scanner.c"
! 3524: yy231:
! 3525: YYDEBUG(231, *YYCURSOR);
1.1 misho 3526: yych = *++YYCURSOR;
1.1.1.2 ! misho 3527: goto yy228;
! 3528: yy232:
! 3529: YYDEBUG(232, *YYCURSOR);
1.1 misho 3530: yych = *++YYCURSOR;
1.1.1.2 ! misho 3531: if (yych == '\n') goto yy231;
! 3532: goto yy228;
! 3533: yy233:
! 3534: YYDEBUG(233, *YYCURSOR);
1.1 misho 3535: yyaccept = 3;
3536: YYMARKER = ++YYCURSOR;
3537: YYFILL(3);
3538: yych = *YYCURSOR;
1.1.1.2 ! misho 3539: YYDEBUG(234, *YYCURSOR);
1.1 misho 3540: if (yych <= 'D') {
3541: if (yych <= '/') goto yy189;
1.1.1.2 ! misho 3542: if (yych <= '9') goto yy233;
1.1 misho 3543: goto yy189;
3544: } else {
3545: if (yych <= 'E') goto yy192;
3546: if (yych == 'e') goto yy192;
3547: goto yy189;
3548: }
1.1.1.2 ! misho 3549: yy235:
! 3550: YYDEBUG(235, *YYCURSOR);
1.1 misho 3551: ++YYCURSOR;
1.1.1.2 ! misho 3552: YYDEBUG(236, *YYCURSOR);
1.1 misho 3553: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 3554: #line 1375 "Zend/zend_language_scanner.l"
1.1 misho 3555: {
3556: return T_CONCAT_EQUAL;
3557: }
1.1.1.2 ! misho 3558: #line 3559 "Zend/zend_language_scanner.c"
! 3559: yy237:
! 3560: YYDEBUG(237, *YYCURSOR);
1.1 misho 3561: yyaccept = 4;
3562: yych = *(YYMARKER = ++YYCURSOR);
1.1.1.2 ! misho 3563: if (yych == '*') goto yy242;
! 3564: yy238:
! 3565: YYDEBUG(238, *YYCURSOR);
1.1 misho 3566: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 3567: #line 1929 "Zend/zend_language_scanner.l"
1.1 misho 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: }
1.1.1.2 ! misho 3601: #line 3602 "Zend/zend_language_scanner.c"
! 3602: yy239:
! 3603: YYDEBUG(239, *YYCURSOR);
1.1 misho 3604: yych = *++YYCURSOR;
3605: goto yy176;
1.1.1.2 ! misho 3606: yy240:
! 3607: YYDEBUG(240, *YYCURSOR);
1.1 misho 3608: ++YYCURSOR;
1.1.1.2 ! misho 3609: YYDEBUG(241, *YYCURSOR);
1.1 misho 3610: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 3611: #line 1371 "Zend/zend_language_scanner.l"
1.1 misho 3612: {
3613: return T_DIV_EQUAL;
3614: }
1.1.1.2 ! misho 3615: #line 3616 "Zend/zend_language_scanner.c"
! 3616: yy242:
! 3617: YYDEBUG(242, *YYCURSOR);
1.1 misho 3618: yych = *++YYCURSOR;
3619: if (yybm[0+yych] & 64) {
1.1.1.2 ! misho 3620: goto yy243;
1.1 misho 3621: }
3622: goto yy193;
1.1.1.2 ! misho 3623: yy243:
! 3624: YYDEBUG(243, *YYCURSOR);
1.1 misho 3625: ++YYCURSOR;
3626: YYFILL(1);
3627: yych = *YYCURSOR;
1.1.1.2 ! misho 3628: YYDEBUG(244, *YYCURSOR);
1.1 misho 3629: if (yybm[0+yych] & 64) {
1.1.1.2 ! misho 3630: goto yy243;
1.1 misho 3631: }
1.1.1.2 ! misho 3632: goto yy238;
! 3633: yy245:
! 3634: YYDEBUG(245, *YYCURSOR);
1.1 misho 3635: ++YYCURSOR;
1.1.1.2 ! misho 3636: YYDEBUG(246, *YYCURSOR);
1.1 misho 3637: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 3638: #line 1367 "Zend/zend_language_scanner.l"
1.1 misho 3639: {
3640: return T_MUL_EQUAL;
3641: }
1.1.1.2 ! misho 3642: #line 3643 "Zend/zend_language_scanner.c"
! 3643: yy247:
! 3644: YYDEBUG(247, *YYCURSOR);
1.1 misho 3645: ++YYCURSOR;
1.1.1.2 ! misho 3646: if ((yych = *YYCURSOR) == '=') goto yy251;
! 3647: YYDEBUG(248, *YYCURSOR);
1.1 misho 3648: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 3649: #line 1427 "Zend/zend_language_scanner.l"
1.1 misho 3650: {
3651: return T_SR;
3652: }
1.1.1.2 ! misho 3653: #line 3654 "Zend/zend_language_scanner.c"
! 3654: yy249:
! 3655: YYDEBUG(249, *YYCURSOR);
1.1 misho 3656: ++YYCURSOR;
1.1.1.2 ! misho 3657: YYDEBUG(250, *YYCURSOR);
1.1 misho 3658: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 3659: #line 1355 "Zend/zend_language_scanner.l"
1.1 misho 3660: {
3661: return T_IS_GREATER_OR_EQUAL;
3662: }
1.1.1.2 ! misho 3663: #line 3664 "Zend/zend_language_scanner.c"
! 3664: yy251:
! 3665: YYDEBUG(251, *YYCURSOR);
1.1 misho 3666: ++YYCURSOR;
1.1.1.2 ! misho 3667: YYDEBUG(252, *YYCURSOR);
1.1 misho 3668: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 3669: #line 1387 "Zend/zend_language_scanner.l"
1.1 misho 3670: {
3671: return T_SR_EQUAL;
3672: }
1.1.1.2 ! misho 3673: #line 3674 "Zend/zend_language_scanner.c"
! 3674: yy253:
! 3675: YYDEBUG(253, *YYCURSOR);
1.1 misho 3676: yyaccept = 5;
3677: yych = *(YYMARKER = ++YYCURSOR);
1.1.1.2 ! misho 3678: if (yych <= ';') goto yy254;
! 3679: if (yych <= '<') goto yy269;
! 3680: if (yych <= '=') goto yy267;
! 3681: yy254:
! 3682: YYDEBUG(254, *YYCURSOR);
1.1 misho 3683: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 3684: #line 1423 "Zend/zend_language_scanner.l"
1.1 misho 3685: {
3686: return T_SL;
3687: }
1.1.1.2 ! misho 3688: #line 3689 "Zend/zend_language_scanner.c"
! 3689: yy255:
! 3690: YYDEBUG(255, *YYCURSOR);
1.1 misho 3691: yych = *++YYCURSOR;
1.1.1.2 ! misho 3692: if (yych == 'S') goto yy260;
! 3693: if (yych == 's') goto yy260;
1.1 misho 3694: goto yy193;
1.1.1.2 ! misho 3695: yy256:
! 3696: YYDEBUG(256, *YYCURSOR);
1.1 misho 3697: ++YYCURSOR;
1.1.1.2 ! misho 3698: YYDEBUG(257, *YYCURSOR);
1.1 misho 3699: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 3700: #line 1351 "Zend/zend_language_scanner.l"
1.1 misho 3701: {
3702: return T_IS_SMALLER_OR_EQUAL;
3703: }
1.1.1.2 ! misho 3704: #line 3705 "Zend/zend_language_scanner.c"
! 3705: yy258:
! 3706: YYDEBUG(258, *YYCURSOR);
1.1 misho 3707: ++YYCURSOR;
1.1.1.2 ! misho 3708: yy259:
! 3709: YYDEBUG(259, *YYCURSOR);
1.1 misho 3710: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 3711: #line 1347 "Zend/zend_language_scanner.l"
1.1 misho 3712: {
3713: return T_IS_NOT_EQUAL;
3714: }
1.1.1.2 ! misho 3715: #line 3716 "Zend/zend_language_scanner.c"
! 3716: yy260:
! 3717: YYDEBUG(260, *YYCURSOR);
1.1 misho 3718: yych = *++YYCURSOR;
1.1.1.2 ! misho 3719: if (yych == 'C') goto yy261;
1.1 misho 3720: if (yych != 'c') goto yy193;
1.1.1.2 ! misho 3721: yy261:
! 3722: YYDEBUG(261, *YYCURSOR);
1.1 misho 3723: yych = *++YYCURSOR;
1.1.1.2 ! misho 3724: if (yych == 'R') goto yy262;
1.1 misho 3725: if (yych != 'r') goto yy193;
1.1.1.2 ! misho 3726: yy262:
! 3727: YYDEBUG(262, *YYCURSOR);
1.1 misho 3728: yych = *++YYCURSOR;
1.1.1.2 ! misho 3729: if (yych == 'I') goto yy263;
1.1 misho 3730: if (yych != 'i') goto yy193;
1.1.1.2 ! misho 3731: yy263:
! 3732: YYDEBUG(263, *YYCURSOR);
1.1 misho 3733: yych = *++YYCURSOR;
1.1.1.2 ! misho 3734: if (yych == 'P') goto yy264;
1.1 misho 3735: if (yych != 'p') goto yy193;
1.1.1.2 ! misho 3736: yy264:
! 3737: YYDEBUG(264, *YYCURSOR);
1.1 misho 3738: yych = *++YYCURSOR;
1.1.1.2 ! misho 3739: if (yych == 'T') goto yy265;
1.1 misho 3740: if (yych != 't') goto yy193;
1.1.1.2 ! misho 3741: yy265:
! 3742: YYDEBUG(265, *YYCURSOR);
1.1 misho 3743: ++YYCURSOR;
3744: YYFILL(3);
3745: yych = *YYCURSOR;
1.1.1.2 ! misho 3746: YYDEBUG(266, *YYCURSOR);
1.1 misho 3747: if (yych <= '\r') {
3748: if (yych <= 0x08) goto yy193;
1.1.1.2 ! misho 3749: if (yych <= '\n') goto yy265;
1.1 misho 3750: if (yych <= '\f') goto yy193;
1.1.1.2 ! misho 3751: goto yy265;
1.1 misho 3752: } else {
3753: if (yych <= ' ') {
3754: if (yych <= 0x1F) goto yy193;
1.1.1.2 ! misho 3755: goto yy265;
1.1 misho 3756: } else {
1.1.1.2 ! misho 3757: if (yych == '>') goto yy205;
1.1 misho 3758: goto yy193;
3759: }
3760: }
1.1.1.2 ! misho 3761: yy267:
! 3762: YYDEBUG(267, *YYCURSOR);
1.1 misho 3763: ++YYCURSOR;
1.1.1.2 ! misho 3764: YYDEBUG(268, *YYCURSOR);
1.1 misho 3765: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 3766: #line 1383 "Zend/zend_language_scanner.l"
1.1 misho 3767: {
3768: return T_SL_EQUAL;
3769: }
1.1.1.2 ! misho 3770: #line 3771 "Zend/zend_language_scanner.c"
! 3771: yy269:
! 3772: YYDEBUG(269, *YYCURSOR);
1.1 misho 3773: ++YYCURSOR;
3774: YYFILL(2);
3775: yych = *YYCURSOR;
1.1.1.2 ! misho 3776: YYDEBUG(270, *YYCURSOR);
1.1 misho 3777: if (yybm[0+yych] & 128) {
1.1.1.2 ! misho 3778: goto yy269;
1.1 misho 3779: }
3780: if (yych <= 'Z') {
3781: if (yych <= '&') {
1.1.1.2 ! misho 3782: if (yych == '"') goto yy274;
1.1 misho 3783: goto yy193;
3784: } else {
1.1.1.2 ! misho 3785: if (yych <= '\'') goto yy273;
1.1 misho 3786: if (yych <= '@') goto yy193;
3787: }
3788: } else {
3789: if (yych <= '`') {
3790: if (yych != '_') goto yy193;
3791: } else {
1.1.1.2 ! misho 3792: if (yych <= 'z') goto yy271;
1.1 misho 3793: if (yych <= '~') goto yy193;
3794: }
3795: }
1.1.1.2 ! misho 3796: yy271:
! 3797: YYDEBUG(271, *YYCURSOR);
1.1 misho 3798: ++YYCURSOR;
3799: YYFILL(2);
3800: yych = *YYCURSOR;
1.1.1.2 ! misho 3801: YYDEBUG(272, *YYCURSOR);
1.1 misho 3802: if (yych <= '@') {
3803: if (yych <= '\f') {
1.1.1.2 ! misho 3804: if (yych == '\n') goto yy278;
1.1 misho 3805: goto yy193;
3806: } else {
1.1.1.2 ! misho 3807: if (yych <= '\r') goto yy280;
1.1 misho 3808: if (yych <= '/') goto yy193;
1.1.1.2 ! misho 3809: if (yych <= '9') goto yy271;
1.1 misho 3810: goto yy193;
3811: }
3812: } else {
3813: if (yych <= '_') {
1.1.1.2 ! misho 3814: if (yych <= 'Z') goto yy271;
1.1 misho 3815: if (yych <= '^') goto yy193;
1.1.1.2 ! misho 3816: goto yy271;
1.1 misho 3817: } else {
3818: if (yych <= '`') goto yy193;
1.1.1.2 ! misho 3819: if (yych <= 'z') goto yy271;
1.1 misho 3820: if (yych <= '~') goto yy193;
1.1.1.2 ! misho 3821: goto yy271;
1.1 misho 3822: }
3823: }
1.1.1.2 ! misho 3824: yy273:
! 3825: YYDEBUG(273, *YYCURSOR);
1.1 misho 3826: yych = *++YYCURSOR;
3827: if (yych == '\'') goto yy193;
1.1.1.2 ! misho 3828: if (yych <= '/') goto yy282;
1.1 misho 3829: if (yych <= '9') goto yy193;
1.1.1.2 ! misho 3830: goto yy282;
! 3831: yy274:
! 3832: YYDEBUG(274, *YYCURSOR);
1.1 misho 3833: yych = *++YYCURSOR;
3834: if (yych == '"') goto yy193;
1.1.1.2 ! misho 3835: if (yych <= '/') goto yy276;
1.1 misho 3836: if (yych <= '9') goto yy193;
1.1.1.2 ! misho 3837: goto yy276;
! 3838: yy275:
! 3839: YYDEBUG(275, *YYCURSOR);
1.1 misho 3840: ++YYCURSOR;
3841: YYFILL(3);
3842: yych = *YYCURSOR;
1.1.1.2 ! misho 3843: yy276:
! 3844: YYDEBUG(276, *YYCURSOR);
1.1 misho 3845: if (yych <= 'Z') {
3846: if (yych <= '/') {
3847: if (yych != '"') goto yy193;
3848: } else {
1.1.1.2 ! misho 3849: if (yych <= '9') goto yy275;
1.1 misho 3850: if (yych <= '@') goto yy193;
1.1.1.2 ! misho 3851: goto yy275;
1.1 misho 3852: }
3853: } else {
3854: if (yych <= '`') {
1.1.1.2 ! misho 3855: if (yych == '_') goto yy275;
1.1 misho 3856: goto yy193;
3857: } else {
1.1.1.2 ! misho 3858: if (yych <= 'z') goto yy275;
1.1 misho 3859: if (yych <= '~') goto yy193;
1.1.1.2 ! misho 3860: goto yy275;
1.1 misho 3861: }
3862: }
1.1.1.2 ! misho 3863: yy277:
! 3864: YYDEBUG(277, *YYCURSOR);
1.1 misho 3865: yych = *++YYCURSOR;
1.1.1.2 ! misho 3866: if (yych == '\n') goto yy278;
! 3867: if (yych == '\r') goto yy280;
1.1 misho 3868: goto yy193;
1.1.1.2 ! misho 3869: yy278:
! 3870: YYDEBUG(278, *YYCURSOR);
1.1 misho 3871: ++YYCURSOR;
1.1.1.2 ! misho 3872: yy279:
! 3873: YYDEBUG(279, *YYCURSOR);
1.1 misho 3874: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 3875: #line 2097 "Zend/zend_language_scanner.l"
1.1 misho 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: }
1.1.1.2 ! misho 3923: #line 3924 "Zend/zend_language_scanner.c"
! 3924: yy280:
! 3925: YYDEBUG(280, *YYCURSOR);
1.1 misho 3926: yych = *++YYCURSOR;
1.1.1.2 ! misho 3927: if (yych == '\n') goto yy278;
! 3928: goto yy279;
! 3929: yy281:
! 3930: YYDEBUG(281, *YYCURSOR);
1.1 misho 3931: ++YYCURSOR;
3932: YYFILL(3);
3933: yych = *YYCURSOR;
1.1.1.2 ! misho 3934: yy282:
! 3935: YYDEBUG(282, *YYCURSOR);
1.1 misho 3936: if (yych <= 'Z') {
3937: if (yych <= '/') {
1.1.1.2 ! misho 3938: if (yych == '\'') goto yy277;
1.1 misho 3939: goto yy193;
3940: } else {
1.1.1.2 ! misho 3941: if (yych <= '9') goto yy281;
1.1 misho 3942: if (yych <= '@') goto yy193;
1.1.1.2 ! misho 3943: goto yy281;
1.1 misho 3944: }
3945: } else {
3946: if (yych <= '`') {
1.1.1.2 ! misho 3947: if (yych == '_') goto yy281;
1.1 misho 3948: goto yy193;
3949: } else {
1.1.1.2 ! misho 3950: if (yych <= 'z') goto yy281;
1.1 misho 3951: if (yych <= '~') goto yy193;
1.1.1.2 ! misho 3952: goto yy281;
1.1 misho 3953: }
3954: }
1.1.1.2 ! misho 3955: yy283:
! 3956: YYDEBUG(283, *YYCURSOR);
1.1 misho 3957: yych = *++YYCURSOR;
1.1.1.2 ! misho 3958: if (yych != '=') goto yy259;
! 3959: YYDEBUG(284, *YYCURSOR);
1.1 misho 3960: ++YYCURSOR;
1.1.1.2 ! misho 3961: YYDEBUG(285, *YYCURSOR);
1.1 misho 3962: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 3963: #line 1339 "Zend/zend_language_scanner.l"
1.1 misho 3964: {
3965: return T_IS_NOT_IDENTICAL;
3966: }
1.1.1.2 ! misho 3967: #line 3968 "Zend/zend_language_scanner.c"
! 3968: yy286:
! 3969: YYDEBUG(286, *YYCURSOR);
1.1 misho 3970: ++YYCURSOR;
1.1.1.2 ! misho 3971: YYDEBUG(287, *YYCURSOR);
1.1 misho 3972: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 3973: #line 1359 "Zend/zend_language_scanner.l"
1.1 misho 3974: {
3975: return T_PLUS_EQUAL;
3976: }
1.1.1.2 ! misho 3977: #line 3978 "Zend/zend_language_scanner.c"
! 3978: yy288:
! 3979: YYDEBUG(288, *YYCURSOR);
1.1 misho 3980: ++YYCURSOR;
1.1.1.2 ! misho 3981: YYDEBUG(289, *YYCURSOR);
1.1 misho 3982: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 3983: #line 1327 "Zend/zend_language_scanner.l"
1.1 misho 3984: {
3985: return T_INC;
3986: }
1.1.1.2 ! misho 3987: #line 3988 "Zend/zend_language_scanner.c"
! 3988: yy290:
! 3989: YYDEBUG(290, *YYCURSOR);
1.1 misho 3990: yych = *++YYCURSOR;
1.1.1.2 ! misho 3991: if (yych == 'S') goto yy291;
1.1 misho 3992: if (yych != 's') goto yy186;
1.1.1.2 ! misho 3993: yy291:
! 3994: YYDEBUG(291, *YYCURSOR);
1.1 misho 3995: yych = *++YYCURSOR;
1.1.1.2 ! misho 3996: if (yych == 'T') goto yy292;
1.1 misho 3997: if (yych != 't') goto yy186;
1.1.1.2 ! misho 3998: yy292:
! 3999: YYDEBUG(292, *YYCURSOR);
1.1 misho 4000: ++YYCURSOR;
1.1.1.2 ! misho 4001: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 4002: goto yy185;
4003: }
1.1.1.2 ! misho 4004: YYDEBUG(293, *YYCURSOR);
1.1 misho 4005: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 4006: #line 1315 "Zend/zend_language_scanner.l"
1.1 misho 4007: {
4008: return T_LIST;
4009: }
1.1.1.2 ! misho 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);
1.1 misho 4016: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 4017: #line 1343 "Zend/zend_language_scanner.l"
1.1 misho 4018: {
4019: return T_IS_EQUAL;
4020: }
1.1.1.2 ! misho 4021: #line 4022 "Zend/zend_language_scanner.c"
! 4022: yy296:
! 4023: YYDEBUG(296, *YYCURSOR);
1.1 misho 4024: ++YYCURSOR;
1.1.1.2 ! misho 4025: YYDEBUG(297, *YYCURSOR);
1.1 misho 4026: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 4027: #line 1311 "Zend/zend_language_scanner.l"
1.1 misho 4028: {
4029: return T_DOUBLE_ARROW;
4030: }
1.1.1.2 ! misho 4031: #line 4032 "Zend/zend_language_scanner.c"
! 4032: yy298:
! 4033: YYDEBUG(298, *YYCURSOR);
1.1 misho 4034: ++YYCURSOR;
1.1.1.2 ! misho 4035: YYDEBUG(299, *YYCURSOR);
1.1 misho 4036: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 4037: #line 1335 "Zend/zend_language_scanner.l"
1.1 misho 4038: {
4039: return T_IS_IDENTICAL;
4040: }
1.1.1.2 ! misho 4041: #line 4042 "Zend/zend_language_scanner.c"
! 4042: yy300:
! 4043: YYDEBUG(300, *YYCURSOR);
1.1 misho 4044: yych = *++YYCURSOR;
4045: YYDEBUG(-1, yych);
4046: switch (yych) {
4047: case 'C':
1.1.1.2 ! misho 4048: case 'c': goto yy302;
1.1 misho 4049: case 'D':
1.1.1.2 ! misho 4050: case 'd': goto yy307;
1.1 misho 4051: case 'F':
1.1.1.2 ! misho 4052: case 'f': goto yy304;
1.1 misho 4053: case 'H':
1.1.1.2 ! misho 4054: case 'h': goto yy301;
1.1 misho 4055: case 'L':
1.1.1.2 ! misho 4056: case 'l': goto yy306;
1.1 misho 4057: case 'M':
1.1.1.2 ! misho 4058: case 'm': goto yy305;
1.1 misho 4059: case 'N':
1.1.1.2 ! misho 4060: case 'n': goto yy308;
! 4061: case 'T':
! 4062: case 't': goto yy303;
1.1 misho 4063: default: goto yy186;
4064: }
4065: yy301:
4066: YYDEBUG(301, *YYCURSOR);
4067: yych = *++YYCURSOR;
1.1.1.2 ! misho 4068: if (yych == 'A') goto yy369;
! 4069: if (yych == 'a') goto yy369;
1.1 misho 4070: goto yy186;
4071: yy302:
4072: YYDEBUG(302, *YYCURSOR);
4073: yych = *++YYCURSOR;
1.1.1.2 ! misho 4074: if (yych == 'L') goto yy362;
! 4075: if (yych == 'l') goto yy362;
1.1 misho 4076: goto yy186;
4077: yy303:
4078: YYDEBUG(303, *YYCURSOR);
4079: yych = *++YYCURSOR;
1.1.1.2 ! misho 4080: if (yych == 'R') goto yy355;
! 4081: if (yych == 'r') goto yy355;
! 4082: goto yy186;
1.1 misho 4083: yy304:
4084: YYDEBUG(304, *YYCURSOR);
4085: yych = *++YYCURSOR;
1.1.1.2 ! misho 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: }
1.1 misho 4099: yy305:
4100: YYDEBUG(305, *YYCURSOR);
4101: yych = *++YYCURSOR;
1.1.1.2 ! misho 4102: if (yych == 'E') goto yy331;
! 4103: if (yych == 'e') goto yy331;
! 4104: goto yy186;
1.1 misho 4105: yy306:
4106: YYDEBUG(306, *YYCURSOR);
4107: yych = *++YYCURSOR;
1.1.1.2 ! misho 4108: if (yych == 'I') goto yy325;
! 4109: if (yych == 'i') goto yy325;
! 4110: goto yy186;
1.1 misho 4111: yy307:
4112: YYDEBUG(307, *YYCURSOR);
4113: yych = *++YYCURSOR;
1.1.1.2 ! misho 4114: if (yych == 'I') goto yy320;
! 4115: if (yych == 'i') goto yy320;
! 4116: goto yy186;
1.1 misho 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;
1.1.1.2 ! misho 4125: if (yych == 'M') goto yy310;
! 4126: if (yych != 'm') goto yy186;
1.1 misho 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;
1.1.1.2 ! misho 4135: if (yych == 'S') goto yy312;
! 4136: if (yych != 's') goto yy186;
! 4137: yy312:
1.1 misho 4138: YYDEBUG(312, *YYCURSOR);
4139: yych = *++YYCURSOR;
1.1.1.2 ! misho 4140: if (yych == 'P') goto yy313;
! 4141: if (yych != 'p') goto yy186;
! 4142: yy313:
1.1 misho 4143: YYDEBUG(313, *YYCURSOR);
1.1.1.2 ! misho 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);
1.1 misho 4165: ++YYCURSOR;
1.1.1.2 ! misho 4166: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 4167: goto yy185;
4168: }
1.1.1.2 ! misho 4169: YYDEBUG(319, *YYCURSOR);
1.1 misho 4170: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 4171: #line 1698 "Zend/zend_language_scanner.l"
1.1 misho 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: }
1.1.1.2 ! misho 4181: #line 4182 "Zend/zend_language_scanner.c"
! 4182: yy320:
! 4183: YYDEBUG(320, *YYCURSOR);
1.1 misho 4184: yych = *++YYCURSOR;
1.1.1.2 ! misho 4185: if (yych == 'R') goto yy321;
1.1 misho 4186: if (yych != 'r') goto yy186;
1.1.1.2 ! misho 4187: yy321:
! 4188: YYDEBUG(321, *YYCURSOR);
1.1 misho 4189: yych = *++YYCURSOR;
4190: if (yych != '_') goto yy186;
1.1.1.2 ! misho 4191: YYDEBUG(322, *YYCURSOR);
1.1 misho 4192: yych = *++YYCURSOR;
4193: if (yych != '_') goto yy186;
1.1.1.2 ! misho 4194: YYDEBUG(323, *YYCURSOR);
1.1 misho 4195: ++YYCURSOR;
1.1.1.2 ! misho 4196: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 4197: goto yy185;
4198: }
1.1.1.2 ! misho 4199: YYDEBUG(324, *YYCURSOR);
1.1 misho 4200: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 4201: #line 1671 "Zend/zend_language_scanner.l"
1.1 misho 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: }
1.1.1.2 ! misho 4228: #line 4229 "Zend/zend_language_scanner.c"
! 4229: yy325:
! 4230: YYDEBUG(325, *YYCURSOR);
1.1 misho 4231: yych = *++YYCURSOR;
1.1.1.2 ! misho 4232: if (yych == 'N') goto yy326;
1.1 misho 4233: if (yych != 'n') goto yy186;
1.1.1.2 ! misho 4234: yy326:
! 4235: YYDEBUG(326, *YYCURSOR);
1.1 misho 4236: yych = *++YYCURSOR;
1.1.1.2 ! misho 4237: if (yych == 'E') goto yy327;
1.1 misho 4238: if (yych != 'e') goto yy186;
1.1.1.2 ! misho 4239: yy327:
! 4240: YYDEBUG(327, *YYCURSOR);
1.1 misho 4241: yych = *++YYCURSOR;
4242: if (yych != '_') goto yy186;
1.1.1.2 ! misho 4243: YYDEBUG(328, *YYCURSOR);
1.1 misho 4244: yych = *++YYCURSOR;
4245: if (yych != '_') goto yy186;
1.1.1.2 ! misho 4246: YYDEBUG(329, *YYCURSOR);
1.1 misho 4247: ++YYCURSOR;
1.1.1.2 ! misho 4248: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 4249: goto yy185;
4250: }
1.1.1.2 ! misho 4251: YYDEBUG(330, *YYCURSOR);
1.1 misho 4252: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 4253: #line 1653 "Zend/zend_language_scanner.l"
1.1 misho 4254: {
4255: zendlval->value.lval = CG(zend_lineno);
4256: zendlval->type = IS_LONG;
4257: return T_LINE;
4258: }
1.1.1.2 ! misho 4259: #line 4260 "Zend/zend_language_scanner.c"
! 4260: yy331:
! 4261: YYDEBUG(331, *YYCURSOR);
1.1 misho 4262: yych = *++YYCURSOR;
1.1.1.2 ! misho 4263: if (yych == 'T') goto yy332;
1.1 misho 4264: if (yych != 't') goto yy186;
1.1.1.2 ! misho 4265: yy332:
! 4266: YYDEBUG(332, *YYCURSOR);
1.1 misho 4267: yych = *++YYCURSOR;
1.1.1.2 ! misho 4268: if (yych == 'H') goto yy333;
1.1 misho 4269: if (yych != 'h') goto yy186;
1.1.1.2 ! misho 4270: yy333:
! 4271: YYDEBUG(333, *YYCURSOR);
1.1 misho 4272: yych = *++YYCURSOR;
1.1.1.2 ! misho 4273: if (yych == 'O') goto yy334;
1.1 misho 4274: if (yych != 'o') goto yy186;
1.1.1.2 ! misho 4275: yy334:
! 4276: YYDEBUG(334, *YYCURSOR);
1.1 misho 4277: yych = *++YYCURSOR;
1.1.1.2 ! misho 4278: if (yych == 'D') goto yy335;
1.1 misho 4279: if (yych != 'd') goto yy186;
1.1.1.2 ! misho 4280: yy335:
! 4281: YYDEBUG(335, *YYCURSOR);
1.1 misho 4282: yych = *++YYCURSOR;
4283: if (yych != '_') goto yy186;
1.1.1.2 ! misho 4284: YYDEBUG(336, *YYCURSOR);
1.1 misho 4285: yych = *++YYCURSOR;
4286: if (yych != '_') goto yy186;
1.1.1.2 ! misho 4287: YYDEBUG(337, *YYCURSOR);
1.1 misho 4288: ++YYCURSOR;
1.1.1.2 ! misho 4289: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 4290: goto yy185;
4291: }
1.1.1.2 ! misho 4292: YYDEBUG(338, *YYCURSOR);
1.1 misho 4293: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 4294: #line 1632 "Zend/zend_language_scanner.l"
1.1 misho 4295: {
1.1.1.2 ! misho 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;
1.1 misho 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:
1.1.1.2 ! misho 4307: zendlval->value.str.len = zend_spprintf(&zendlval->value.str.val, 0, "%s%s%s",
1.1 misho 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: }
1.1.1.2 ! misho 4315: #line 4316 "Zend/zend_language_scanner.c"
! 4316: yy339:
! 4317: YYDEBUG(339, *YYCURSOR);
1.1 misho 4318: yych = *++YYCURSOR;
1.1.1.2 ! misho 4319: if (yych == 'L') goto yy350;
! 4320: if (yych == 'l') goto yy350;
1.1 misho 4321: goto yy186;
1.1.1.2 ! misho 4322: yy340:
! 4323: YYDEBUG(340, *YYCURSOR);
1.1 misho 4324: yych = *++YYCURSOR;
1.1.1.2 ! misho 4325: if (yych == 'N') goto yy341;
1.1 misho 4326: if (yych != 'n') goto yy186;
1.1.1.2 ! misho 4327: yy341:
! 4328: YYDEBUG(341, *YYCURSOR);
1.1 misho 4329: yych = *++YYCURSOR;
1.1.1.2 ! misho 4330: if (yych == 'C') goto yy342;
1.1 misho 4331: if (yych != 'c') goto yy186;
1.1.1.2 ! misho 4332: yy342:
! 4333: YYDEBUG(342, *YYCURSOR);
1.1 misho 4334: yych = *++YYCURSOR;
1.1.1.2 ! misho 4335: if (yych == 'T') goto yy343;
1.1 misho 4336: if (yych != 't') goto yy186;
1.1.1.2 ! misho 4337: yy343:
! 4338: YYDEBUG(343, *YYCURSOR);
1.1 misho 4339: yych = *++YYCURSOR;
1.1.1.2 ! misho 4340: if (yych == 'I') goto yy344;
1.1 misho 4341: if (yych != 'i') goto yy186;
1.1.1.2 ! misho 4342: yy344:
! 4343: YYDEBUG(344, *YYCURSOR);
1.1 misho 4344: yych = *++YYCURSOR;
1.1.1.2 ! misho 4345: if (yych == 'O') goto yy345;
1.1 misho 4346: if (yych != 'o') goto yy186;
1.1.1.2 ! misho 4347: yy345:
! 4348: YYDEBUG(345, *YYCURSOR);
1.1 misho 4349: yych = *++YYCURSOR;
1.1.1.2 ! misho 4350: if (yych == 'N') goto yy346;
1.1 misho 4351: if (yych != 'n') goto yy186;
1.1.1.2 ! misho 4352: yy346:
! 4353: YYDEBUG(346, *YYCURSOR);
1.1 misho 4354: yych = *++YYCURSOR;
4355: if (yych != '_') goto yy186;
1.1.1.2 ! misho 4356: YYDEBUG(347, *YYCURSOR);
1.1 misho 4357: yych = *++YYCURSOR;
4358: if (yych != '_') goto yy186;
1.1.1.2 ! misho 4359: YYDEBUG(348, *YYCURSOR);
1.1 misho 4360: ++YYCURSOR;
1.1.1.2 ! misho 4361: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 4362: goto yy185;
4363: }
1.1.1.2 ! misho 4364: YYDEBUG(349, *YYCURSOR);
1.1 misho 4365: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 4366: #line 1616 "Zend/zend_language_scanner.l"
1.1 misho 4367: {
1.1.1.2 ! misho 4368: const char *func_name = NULL;
1.1 misho 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: }
1.1.1.2 ! misho 4382: #line 4383 "Zend/zend_language_scanner.c"
! 4383: yy350:
! 4384: YYDEBUG(350, *YYCURSOR);
1.1 misho 4385: yych = *++YYCURSOR;
1.1.1.2 ! misho 4386: if (yych == 'E') goto yy351;
1.1 misho 4387: if (yych != 'e') goto yy186;
1.1.1.2 ! misho 4388: yy351:
! 4389: YYDEBUG(351, *YYCURSOR);
1.1 misho 4390: yych = *++YYCURSOR;
4391: if (yych != '_') goto yy186;
1.1.1.2 ! misho 4392: YYDEBUG(352, *YYCURSOR);
1.1 misho 4393: yych = *++YYCURSOR;
4394: if (yych != '_') goto yy186;
1.1.1.2 ! misho 4395: YYDEBUG(353, *YYCURSOR);
1.1 misho 4396: ++YYCURSOR;
1.1.1.2 ! misho 4397: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 4398: goto yy185;
4399: }
1.1.1.2 ! misho 4400: YYDEBUG(354, *YYCURSOR);
1.1 misho 4401: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 4402: #line 1659 "Zend/zend_language_scanner.l"
1.1 misho 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: }
1.1.1.2 ! misho 4414: #line 4415 "Zend/zend_language_scanner.c"
! 4415: yy355:
! 4416: YYDEBUG(355, *YYCURSOR);
1.1 misho 4417: yych = *++YYCURSOR;
1.1.1.2 ! misho 4418: if (yych == 'A') goto yy356;
1.1 misho 4419: if (yych != 'a') goto yy186;
1.1.1.2 ! misho 4420: yy356:
! 4421: YYDEBUG(356, *YYCURSOR);
1.1 misho 4422: yych = *++YYCURSOR;
1.1.1.2 ! misho 4423: if (yych == 'I') goto yy357;
! 4424: if (yych != 'i') goto yy186;
! 4425: yy357:
! 4426: YYDEBUG(357, *YYCURSOR);
1.1 misho 4427: yych = *++YYCURSOR;
1.1.1.2 ! misho 4428: if (yych == 'T') goto yy358;
! 4429: if (yych != 't') goto yy186;
! 4430: yy358:
! 4431: YYDEBUG(358, *YYCURSOR);
1.1 misho 4432: yych = *++YYCURSOR;
4433: if (yych != '_') goto yy186;
1.1.1.2 ! misho 4434: YYDEBUG(359, *YYCURSOR);
1.1 misho 4435: yych = *++YYCURSOR;
4436: if (yych != '_') goto yy186;
1.1.1.2 ! misho 4437: YYDEBUG(360, *YYCURSOR);
1.1 misho 4438: ++YYCURSOR;
1.1.1.2 ! misho 4439: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 4440: goto yy185;
4441: }
1.1.1.2 ! misho 4442: YYDEBUG(361, *YYCURSOR);
1.1 misho 4443: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 4444: #line 1596 "Zend/zend_language_scanner.l"
1.1 misho 4445: {
1.1.1.2 ! misho 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;
1.1 misho 4452: }
1.1.1.2 ! misho 4453:
! 4454: if (!trait_name) {
! 4455: trait_name = "";
1.1 misho 4456: }
1.1.1.2 ! misho 4457:
! 4458: zendlval->value.str.len = strlen(trait_name);
! 4459: zendlval->value.str.val = estrndup(trait_name, zendlval->value.str.len);
1.1 misho 4460: zendlval->type = IS_STRING;
1.1.1.2 ! misho 4461:
! 4462: return T_TRAIT_C;
1.1 misho 4463: }
1.1.1.2 ! misho 4464: #line 4465 "Zend/zend_language_scanner.c"
1.1 misho 4465: yy362:
4466: YYDEBUG(362, *YYCURSOR);
4467: yych = *++YYCURSOR;
1.1.1.2 ! misho 4468: if (yych == 'A') goto yy363;
! 4469: if (yych != 'a') goto yy186;
1.1 misho 4470: yy363:
4471: YYDEBUG(363, *YYCURSOR);
4472: yych = *++YYCURSOR;
1.1.1.2 ! misho 4473: if (yych == 'S') goto yy364;
! 4474: if (yych != 's') goto yy186;
1.1 misho 4475: yy364:
4476: YYDEBUG(364, *YYCURSOR);
4477: yych = *++YYCURSOR;
1.1.1.2 ! misho 4478: if (yych == 'S') goto yy365;
! 4479: if (yych != 's') goto yy186;
1.1 misho 4480: yy365:
4481: YYDEBUG(365, *YYCURSOR);
4482: yych = *++YYCURSOR;
1.1.1.2 ! misho 4483: if (yych != '_') goto yy186;
1.1 misho 4484: YYDEBUG(366, *YYCURSOR);
4485: yych = *++YYCURSOR;
1.1.1.2 ! misho 4486: if (yych != '_') goto yy186;
1.1 misho 4487: YYDEBUG(367, *YYCURSOR);
4488: ++YYCURSOR;
1.1.1.2 ! misho 4489: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 4490: goto yy185;
4491: }
1.1.1.2 ! misho 4492: YYDEBUG(368, *YYCURSOR);
1.1 misho 4493: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 4494: #line 1569 "Zend/zend_language_scanner.l"
1.1 misho 4495: {
1.1.1.2 ! misho 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;
1.1 misho 4520: }
1.1.1.2 ! misho 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;
1.1 misho 4527: yy370:
4528: YYDEBUG(370, *YYCURSOR);
4529: yych = *++YYCURSOR;
1.1.1.2 ! misho 4530: if (yych == 'T') goto yy371;
! 4531: if (yych != 't') goto yy186;
1.1 misho 4532: yy371:
4533: YYDEBUG(371, *YYCURSOR);
4534: yych = *++YYCURSOR;
1.1.1.2 ! misho 4535: if (yych != '_') goto yy186;
1.1 misho 4536: YYDEBUG(372, *YYCURSOR);
1.1.1.2 ! misho 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);
1.1 misho 4577: ++YYCURSOR;
1.1.1.2 ! misho 4578: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 4579: goto yy185;
4580: }
1.1.1.2 ! misho 4581: YYDEBUG(381, *YYCURSOR);
1.1 misho 4582: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 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"
1.1 misho 4608: {
4609: return T_USE;
4610: }
1.1.1.2 ! misho 4611: #line 4612 "Zend/zend_language_scanner.c"
! 4612: yy386:
! 4613: YYDEBUG(386, *YYCURSOR);
1.1 misho 4614: yych = *++YYCURSOR;
1.1.1.2 ! misho 4615: if (yych == 'E') goto yy387;
1.1 misho 4616: if (yych != 'e') goto yy186;
1.1.1.2 ! misho 4617: yy387:
! 4618: YYDEBUG(387, *YYCURSOR);
1.1 misho 4619: yych = *++YYCURSOR;
1.1.1.2 ! misho 4620: if (yych == 'T') goto yy388;
1.1 misho 4621: if (yych != 't') goto yy186;
1.1.1.2 ! misho 4622: yy388:
! 4623: YYDEBUG(388, *YYCURSOR);
1.1 misho 4624: ++YYCURSOR;
1.1.1.2 ! misho 4625: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 4626: goto yy185;
4627: }
1.1.1.2 ! misho 4628: YYDEBUG(389, *YYCURSOR);
1.1 misho 4629: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 4630: #line 1307 "Zend/zend_language_scanner.l"
1.1 misho 4631: {
4632: return T_UNSET;
4633: }
1.1.1.2 ! misho 4634: #line 4635 "Zend/zend_language_scanner.c"
! 4635: yy390:
! 4636: YYDEBUG(390, *YYCURSOR);
1.1 misho 4637: ++YYCURSOR;
4638: YYFILL(7);
4639: yych = *YYCURSOR;
1.1.1.2 ! misho 4640: yy391:
! 4641: YYDEBUG(391, *YYCURSOR);
1.1 misho 4642: if (yych <= 'S') {
4643: if (yych <= 'D') {
4644: if (yych <= ' ') {
1.1.1.2 ! misho 4645: if (yych == '\t') goto yy390;
1.1 misho 4646: if (yych <= 0x1F) goto yy193;
1.1.1.2 ! misho 4647: goto yy390;
1.1 misho 4648: } else {
4649: if (yych <= 'A') {
4650: if (yych <= '@') goto yy193;
1.1.1.2 ! misho 4651: goto yy395;
1.1 misho 4652: } else {
1.1.1.2 ! misho 4653: if (yych <= 'B') goto yy393;
1.1 misho 4654: if (yych <= 'C') goto yy193;
1.1.1.2 ! misho 4655: goto yy398;
1.1 misho 4656: }
4657: }
4658: } else {
4659: if (yych <= 'I') {
1.1.1.2 ! misho 4660: if (yych == 'F') goto yy399;
1.1 misho 4661: if (yych <= 'H') goto yy193;
1.1.1.2 ! misho 4662: goto yy400;
1.1 misho 4663: } else {
4664: if (yych <= 'O') {
4665: if (yych <= 'N') goto yy193;
1.1.1.2 ! misho 4666: goto yy394;
1.1 misho 4667: } else {
4668: if (yych <= 'Q') goto yy193;
1.1.1.2 ! misho 4669: if (yych <= 'R') goto yy397;
! 4670: goto yy396;
1.1 misho 4671: }
4672: }
4673: }
4674: } else {
4675: if (yych <= 'f') {
4676: if (yych <= 'a') {
1.1.1.2 ! misho 4677: if (yych == 'U') goto yy392;
1.1 misho 4678: if (yych <= '`') goto yy193;
1.1.1.2 ! misho 4679: goto yy395;
1.1 misho 4680: } else {
4681: if (yych <= 'c') {
1.1.1.2 ! misho 4682: if (yych <= 'b') goto yy393;
1.1 misho 4683: goto yy193;
4684: } else {
1.1.1.2 ! misho 4685: if (yych <= 'd') goto yy398;
1.1 misho 4686: if (yych <= 'e') goto yy193;
1.1.1.2 ! misho 4687: goto yy399;
1.1 misho 4688: }
4689: }
4690: } else {
4691: if (yych <= 'q') {
4692: if (yych <= 'i') {
4693: if (yych <= 'h') goto yy193;
1.1.1.2 ! misho 4694: goto yy400;
1.1 misho 4695: } else {
1.1.1.2 ! misho 4696: if (yych == 'o') goto yy394;
1.1 misho 4697: goto yy193;
4698: }
4699: } else {
4700: if (yych <= 's') {
1.1.1.2 ! misho 4701: if (yych <= 'r') goto yy397;
! 4702: goto yy396;
1.1 misho 4703: } else {
4704: if (yych != 'u') goto yy193;
4705: }
4706: }
4707: }
4708: }
1.1.1.2 ! misho 4709: yy392:
! 4710: YYDEBUG(392, *YYCURSOR);
1.1 misho 4711: yych = *++YYCURSOR;
1.1.1.2 ! misho 4712: if (yych == 'N') goto yy459;
! 4713: if (yych == 'n') goto yy459;
1.1 misho 4714: goto yy193;
1.1.1.2 ! misho 4715: yy393:
! 4716: YYDEBUG(393, *YYCURSOR);
1.1 misho 4717: yych = *++YYCURSOR;
4718: if (yych <= 'O') {
1.1.1.2 ! misho 4719: if (yych == 'I') goto yy446;
1.1 misho 4720: if (yych <= 'N') goto yy193;
1.1.1.2 ! misho 4721: goto yy447;
1.1 misho 4722: } else {
4723: if (yych <= 'i') {
4724: if (yych <= 'h') goto yy193;
1.1.1.2 ! misho 4725: goto yy446;
1.1 misho 4726: } else {
1.1.1.2 ! misho 4727: if (yych == 'o') goto yy447;
1.1 misho 4728: goto yy193;
4729: }
4730: }
1.1.1.2 ! misho 4731: yy394:
! 4732: YYDEBUG(394, *YYCURSOR);
1.1 misho 4733: yych = *++YYCURSOR;
1.1.1.2 ! misho 4734: if (yych == 'B') goto yy438;
! 4735: if (yych == 'b') goto yy438;
1.1 misho 4736: goto yy193;
1.1.1.2 ! misho 4737: yy395:
! 4738: YYDEBUG(395, *YYCURSOR);
1.1 misho 4739: yych = *++YYCURSOR;
1.1.1.2 ! misho 4740: if (yych == 'R') goto yy431;
! 4741: if (yych == 'r') goto yy431;
1.1 misho 4742: goto yy193;
1.1.1.2 ! misho 4743: yy396:
! 4744: YYDEBUG(396, *YYCURSOR);
1.1 misho 4745: yych = *++YYCURSOR;
1.1.1.2 ! misho 4746: if (yych == 'T') goto yy423;
! 4747: if (yych == 't') goto yy423;
1.1 misho 4748: goto yy193;
1.1.1.2 ! misho 4749: yy397:
! 4750: YYDEBUG(397, *YYCURSOR);
1.1 misho 4751: yych = *++YYCURSOR;
1.1.1.2 ! misho 4752: if (yych == 'E') goto yy421;
! 4753: if (yych == 'e') goto yy421;
1.1 misho 4754: goto yy193;
1.1.1.2 ! misho 4755: yy398:
! 4756: YYDEBUG(398, *YYCURSOR);
1.1 misho 4757: yych = *++YYCURSOR;
1.1.1.2 ! misho 4758: if (yych == 'O') goto yy417;
! 4759: if (yych == 'o') goto yy417;
1.1 misho 4760: goto yy193;
1.1.1.2 ! misho 4761: yy399:
! 4762: YYDEBUG(399, *YYCURSOR);
1.1 misho 4763: yych = *++YYCURSOR;
1.1.1.2 ! misho 4764: if (yych == 'L') goto yy410;
! 4765: if (yych == 'l') goto yy410;
1.1 misho 4766: goto yy193;
1.1.1.2 ! misho 4767: yy400:
! 4768: YYDEBUG(400, *YYCURSOR);
1.1 misho 4769: yych = *++YYCURSOR;
1.1.1.2 ! misho 4770: if (yych == 'N') goto yy401;
1.1 misho 4771: if (yych != 'n') goto yy193;
1.1.1.2 ! misho 4772: yy401:
! 4773: YYDEBUG(401, *YYCURSOR);
1.1 misho 4774: yych = *++YYCURSOR;
1.1.1.2 ! misho 4775: if (yych == 'T') goto yy402;
1.1 misho 4776: if (yych != 't') goto yy193;
1.1.1.2 ! misho 4777: yy402:
! 4778: YYDEBUG(402, *YYCURSOR);
1.1 misho 4779: yych = *++YYCURSOR;
1.1.1.2 ! misho 4780: if (yych == 'E') goto yy403;
! 4781: if (yych != 'e') goto yy405;
! 4782: yy403:
! 4783: YYDEBUG(403, *YYCURSOR);
1.1 misho 4784: yych = *++YYCURSOR;
1.1.1.2 ! misho 4785: if (yych == 'G') goto yy408;
! 4786: if (yych == 'g') goto yy408;
1.1 misho 4787: goto yy193;
1.1.1.2 ! misho 4788: yy404:
! 4789: YYDEBUG(404, *YYCURSOR);
1.1 misho 4790: ++YYCURSOR;
4791: YYFILL(1);
4792: yych = *YYCURSOR;
1.1.1.2 ! misho 4793: yy405:
! 4794: YYDEBUG(405, *YYCURSOR);
1.1 misho 4795: if (yych <= 0x1F) {
1.1.1.2 ! misho 4796: if (yych == '\t') goto yy404;
1.1 misho 4797: goto yy193;
4798: } else {
1.1.1.2 ! misho 4799: if (yych <= ' ') goto yy404;
1.1 misho 4800: if (yych != ')') goto yy193;
4801: }
1.1.1.2 ! misho 4802: YYDEBUG(406, *YYCURSOR);
1.1 misho 4803: ++YYCURSOR;
1.1.1.2 ! misho 4804: YYDEBUG(407, *YYCURSOR);
1.1 misho 4805: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 4806: #line 1207 "Zend/zend_language_scanner.l"
1.1 misho 4807: {
4808: return T_INT_CAST;
4809: }
1.1.1.2 ! misho 4810: #line 4811 "Zend/zend_language_scanner.c"
! 4811: yy408:
! 4812: YYDEBUG(408, *YYCURSOR);
1.1 misho 4813: yych = *++YYCURSOR;
1.1.1.2 ! misho 4814: if (yych == 'E') goto yy409;
1.1 misho 4815: if (yych != 'e') goto yy193;
1.1.1.2 ! misho 4816: yy409:
! 4817: YYDEBUG(409, *YYCURSOR);
1.1 misho 4818: yych = *++YYCURSOR;
1.1.1.2 ! misho 4819: if (yych == 'R') goto yy404;
! 4820: if (yych == 'r') goto yy404;
1.1 misho 4821: goto yy193;
1.1.1.2 ! misho 4822: yy410:
! 4823: YYDEBUG(410, *YYCURSOR);
1.1 misho 4824: yych = *++YYCURSOR;
1.1.1.2 ! misho 4825: if (yych == 'O') goto yy411;
1.1 misho 4826: if (yych != 'o') goto yy193;
1.1.1.2 ! misho 4827: yy411:
! 4828: YYDEBUG(411, *YYCURSOR);
1.1 misho 4829: yych = *++YYCURSOR;
1.1.1.2 ! misho 4830: if (yych == 'A') goto yy412;
1.1 misho 4831: if (yych != 'a') goto yy193;
1.1.1.2 ! misho 4832: yy412:
! 4833: YYDEBUG(412, *YYCURSOR);
1.1 misho 4834: yych = *++YYCURSOR;
1.1.1.2 ! misho 4835: if (yych == 'T') goto yy413;
1.1 misho 4836: if (yych != 't') goto yy193;
1.1.1.2 ! misho 4837: yy413:
! 4838: YYDEBUG(413, *YYCURSOR);
1.1 misho 4839: ++YYCURSOR;
4840: YYFILL(1);
4841: yych = *YYCURSOR;
1.1.1.2 ! misho 4842: YYDEBUG(414, *YYCURSOR);
1.1 misho 4843: if (yych <= 0x1F) {
1.1.1.2 ! misho 4844: if (yych == '\t') goto yy413;
1.1 misho 4845: goto yy193;
4846: } else {
1.1.1.2 ! misho 4847: if (yych <= ' ') goto yy413;
1.1 misho 4848: if (yych != ')') goto yy193;
4849: }
1.1.1.2 ! misho 4850: YYDEBUG(415, *YYCURSOR);
1.1 misho 4851: ++YYCURSOR;
1.1.1.2 ! misho 4852: YYDEBUG(416, *YYCURSOR);
1.1 misho 4853: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 4854: #line 1211 "Zend/zend_language_scanner.l"
1.1 misho 4855: {
4856: return T_DOUBLE_CAST;
4857: }
1.1.1.2 ! misho 4858: #line 4859 "Zend/zend_language_scanner.c"
! 4859: yy417:
! 4860: YYDEBUG(417, *YYCURSOR);
1.1 misho 4861: yych = *++YYCURSOR;
1.1.1.2 ! misho 4862: if (yych == 'U') goto yy418;
1.1 misho 4863: if (yych != 'u') goto yy193;
1.1.1.2 ! misho 4864: yy418:
! 4865: YYDEBUG(418, *YYCURSOR);
1.1 misho 4866: yych = *++YYCURSOR;
1.1.1.2 ! misho 4867: if (yych == 'B') goto yy419;
1.1 misho 4868: if (yych != 'b') goto yy193;
1.1.1.2 ! misho 4869: yy419:
! 4870: YYDEBUG(419, *YYCURSOR);
1.1 misho 4871: yych = *++YYCURSOR;
1.1.1.2 ! misho 4872: if (yych == 'L') goto yy420;
1.1 misho 4873: if (yych != 'l') goto yy193;
1.1.1.2 ! misho 4874: yy420:
! 4875: YYDEBUG(420, *YYCURSOR);
1.1 misho 4876: yych = *++YYCURSOR;
1.1.1.2 ! misho 4877: if (yych == 'E') goto yy413;
! 4878: if (yych == 'e') goto yy413;
1.1 misho 4879: goto yy193;
1.1.1.2 ! misho 4880: yy421:
! 4881: YYDEBUG(421, *YYCURSOR);
1.1 misho 4882: yych = *++YYCURSOR;
1.1.1.2 ! misho 4883: if (yych == 'A') goto yy422;
1.1 misho 4884: if (yych != 'a') goto yy193;
1.1.1.2 ! misho 4885: yy422:
! 4886: YYDEBUG(422, *YYCURSOR);
1.1 misho 4887: yych = *++YYCURSOR;
1.1.1.2 ! misho 4888: if (yych == 'L') goto yy413;
! 4889: if (yych == 'l') goto yy413;
1.1 misho 4890: goto yy193;
1.1.1.2 ! misho 4891: yy423:
! 4892: YYDEBUG(423, *YYCURSOR);
1.1 misho 4893: yych = *++YYCURSOR;
1.1.1.2 ! misho 4894: if (yych == 'R') goto yy424;
1.1 misho 4895: if (yych != 'r') goto yy193;
1.1.1.2 ! misho 4896: yy424:
! 4897: YYDEBUG(424, *YYCURSOR);
1.1 misho 4898: yych = *++YYCURSOR;
1.1.1.2 ! misho 4899: if (yych == 'I') goto yy425;
1.1 misho 4900: if (yych != 'i') goto yy193;
1.1.1.2 ! misho 4901: yy425:
! 4902: YYDEBUG(425, *YYCURSOR);
1.1 misho 4903: yych = *++YYCURSOR;
1.1.1.2 ! misho 4904: if (yych == 'N') goto yy426;
1.1 misho 4905: if (yych != 'n') goto yy193;
1.1.1.2 ! misho 4906: yy426:
! 4907: YYDEBUG(426, *YYCURSOR);
1.1 misho 4908: yych = *++YYCURSOR;
1.1.1.2 ! misho 4909: if (yych == 'G') goto yy427;
1.1 misho 4910: if (yych != 'g') goto yy193;
1.1.1.2 ! misho 4911: yy427:
! 4912: YYDEBUG(427, *YYCURSOR);
1.1 misho 4913: ++YYCURSOR;
4914: YYFILL(1);
4915: yych = *YYCURSOR;
1.1.1.2 ! misho 4916: YYDEBUG(428, *YYCURSOR);
1.1 misho 4917: if (yych <= 0x1F) {
1.1.1.2 ! misho 4918: if (yych == '\t') goto yy427;
1.1 misho 4919: goto yy193;
4920: } else {
1.1.1.2 ! misho 4921: if (yych <= ' ') goto yy427;
1.1 misho 4922: if (yych != ')') goto yy193;
4923: }
1.1.1.2 ! misho 4924: YYDEBUG(429, *YYCURSOR);
1.1 misho 4925: ++YYCURSOR;
1.1.1.2 ! misho 4926: YYDEBUG(430, *YYCURSOR);
1.1 misho 4927: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 4928: #line 1215 "Zend/zend_language_scanner.l"
1.1 misho 4929: {
4930: return T_STRING_CAST;
4931: }
1.1.1.2 ! misho 4932: #line 4933 "Zend/zend_language_scanner.c"
! 4933: yy431:
! 4934: YYDEBUG(431, *YYCURSOR);
1.1 misho 4935: yych = *++YYCURSOR;
1.1.1.2 ! misho 4936: if (yych == 'R') goto yy432;
1.1 misho 4937: if (yych != 'r') goto yy193;
1.1.1.2 ! misho 4938: yy432:
! 4939: YYDEBUG(432, *YYCURSOR);
1.1 misho 4940: yych = *++YYCURSOR;
1.1.1.2 ! misho 4941: if (yych == 'A') goto yy433;
1.1 misho 4942: if (yych != 'a') goto yy193;
1.1.1.2 ! misho 4943: yy433:
! 4944: YYDEBUG(433, *YYCURSOR);
1.1 misho 4945: yych = *++YYCURSOR;
1.1.1.2 ! misho 4946: if (yych == 'Y') goto yy434;
1.1 misho 4947: if (yych != 'y') goto yy193;
1.1.1.2 ! misho 4948: yy434:
! 4949: YYDEBUG(434, *YYCURSOR);
1.1 misho 4950: ++YYCURSOR;
4951: YYFILL(1);
4952: yych = *YYCURSOR;
1.1.1.2 ! misho 4953: YYDEBUG(435, *YYCURSOR);
1.1 misho 4954: if (yych <= 0x1F) {
1.1.1.2 ! misho 4955: if (yych == '\t') goto yy434;
1.1 misho 4956: goto yy193;
4957: } else {
1.1.1.2 ! misho 4958: if (yych <= ' ') goto yy434;
1.1 misho 4959: if (yych != ')') goto yy193;
4960: }
1.1.1.2 ! misho 4961: YYDEBUG(436, *YYCURSOR);
1.1 misho 4962: ++YYCURSOR;
1.1.1.2 ! misho 4963: YYDEBUG(437, *YYCURSOR);
1.1 misho 4964: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 4965: #line 1219 "Zend/zend_language_scanner.l"
1.1 misho 4966: {
4967: return T_ARRAY_CAST;
4968: }
1.1.1.2 ! misho 4969: #line 4970 "Zend/zend_language_scanner.c"
! 4970: yy438:
! 4971: YYDEBUG(438, *YYCURSOR);
1.1 misho 4972: yych = *++YYCURSOR;
1.1.1.2 ! misho 4973: if (yych == 'J') goto yy439;
1.1 misho 4974: if (yych != 'j') goto yy193;
1.1.1.2 ! misho 4975: yy439:
! 4976: YYDEBUG(439, *YYCURSOR);
1.1 misho 4977: yych = *++YYCURSOR;
1.1.1.2 ! misho 4978: if (yych == 'E') goto yy440;
1.1 misho 4979: if (yych != 'e') goto yy193;
1.1.1.2 ! misho 4980: yy440:
! 4981: YYDEBUG(440, *YYCURSOR);
1.1 misho 4982: yych = *++YYCURSOR;
1.1.1.2 ! misho 4983: if (yych == 'C') goto yy441;
1.1 misho 4984: if (yych != 'c') goto yy193;
1.1.1.2 ! misho 4985: yy441:
! 4986: YYDEBUG(441, *YYCURSOR);
1.1 misho 4987: yych = *++YYCURSOR;
1.1.1.2 ! misho 4988: if (yych == 'T') goto yy442;
1.1 misho 4989: if (yych != 't') goto yy193;
1.1.1.2 ! misho 4990: yy442:
! 4991: YYDEBUG(442, *YYCURSOR);
1.1 misho 4992: ++YYCURSOR;
4993: YYFILL(1);
4994: yych = *YYCURSOR;
1.1.1.2 ! misho 4995: YYDEBUG(443, *YYCURSOR);
1.1 misho 4996: if (yych <= 0x1F) {
1.1.1.2 ! misho 4997: if (yych == '\t') goto yy442;
1.1 misho 4998: goto yy193;
4999: } else {
1.1.1.2 ! misho 5000: if (yych <= ' ') goto yy442;
1.1 misho 5001: if (yych != ')') goto yy193;
5002: }
1.1.1.2 ! misho 5003: YYDEBUG(444, *YYCURSOR);
1.1 misho 5004: ++YYCURSOR;
1.1.1.2 ! misho 5005: YYDEBUG(445, *YYCURSOR);
1.1 misho 5006: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 5007: #line 1223 "Zend/zend_language_scanner.l"
1.1 misho 5008: {
5009: return T_OBJECT_CAST;
5010: }
1.1.1.2 ! misho 5011: #line 5012 "Zend/zend_language_scanner.c"
! 5012: yy446:
! 5013: YYDEBUG(446, *YYCURSOR);
1.1 misho 5014: yych = *++YYCURSOR;
1.1.1.2 ! misho 5015: if (yych == 'N') goto yy456;
! 5016: if (yych == 'n') goto yy456;
1.1 misho 5017: goto yy193;
1.1.1.2 ! misho 5018: yy447:
! 5019: YYDEBUG(447, *YYCURSOR);
1.1 misho 5020: yych = *++YYCURSOR;
1.1.1.2 ! misho 5021: if (yych == 'O') goto yy448;
1.1 misho 5022: if (yych != 'o') goto yy193;
1.1.1.2 ! misho 5023: yy448:
! 5024: YYDEBUG(448, *YYCURSOR);
1.1 misho 5025: yych = *++YYCURSOR;
1.1.1.2 ! misho 5026: if (yych == 'L') goto yy449;
1.1 misho 5027: if (yych != 'l') goto yy193;
1.1.1.2 ! misho 5028: yy449:
! 5029: YYDEBUG(449, *YYCURSOR);
1.1 misho 5030: yych = *++YYCURSOR;
1.1.1.2 ! misho 5031: if (yych == 'E') goto yy454;
! 5032: if (yych == 'e') goto yy454;
! 5033: goto yy451;
! 5034: yy450:
! 5035: YYDEBUG(450, *YYCURSOR);
1.1 misho 5036: ++YYCURSOR;
5037: YYFILL(1);
5038: yych = *YYCURSOR;
1.1.1.2 ! misho 5039: yy451:
! 5040: YYDEBUG(451, *YYCURSOR);
1.1 misho 5041: if (yych <= 0x1F) {
1.1.1.2 ! misho 5042: if (yych == '\t') goto yy450;
1.1 misho 5043: goto yy193;
5044: } else {
1.1.1.2 ! misho 5045: if (yych <= ' ') goto yy450;
1.1 misho 5046: if (yych != ')') goto yy193;
5047: }
1.1.1.2 ! misho 5048: YYDEBUG(452, *YYCURSOR);
1.1 misho 5049: ++YYCURSOR;
1.1.1.2 ! misho 5050: YYDEBUG(453, *YYCURSOR);
1.1 misho 5051: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 5052: #line 1227 "Zend/zend_language_scanner.l"
1.1 misho 5053: {
5054: return T_BOOL_CAST;
5055: }
1.1.1.2 ! misho 5056: #line 5057 "Zend/zend_language_scanner.c"
! 5057: yy454:
! 5058: YYDEBUG(454, *YYCURSOR);
1.1 misho 5059: yych = *++YYCURSOR;
1.1.1.2 ! misho 5060: if (yych == 'A') goto yy455;
1.1 misho 5061: if (yych != 'a') goto yy193;
1.1.1.2 ! misho 5062: yy455:
! 5063: YYDEBUG(455, *YYCURSOR);
1.1 misho 5064: yych = *++YYCURSOR;
1.1.1.2 ! misho 5065: if (yych == 'N') goto yy450;
! 5066: if (yych == 'n') goto yy450;
1.1 misho 5067: goto yy193;
1.1.1.2 ! misho 5068: yy456:
! 5069: YYDEBUG(456, *YYCURSOR);
1.1 misho 5070: yych = *++YYCURSOR;
1.1.1.2 ! misho 5071: if (yych == 'A') goto yy457;
1.1 misho 5072: if (yych != 'a') goto yy193;
1.1.1.2 ! misho 5073: yy457:
! 5074: YYDEBUG(457, *YYCURSOR);
1.1 misho 5075: yych = *++YYCURSOR;
1.1.1.2 ! misho 5076: if (yych == 'R') goto yy458;
1.1 misho 5077: if (yych != 'r') goto yy193;
1.1.1.2 ! misho 5078: yy458:
! 5079: YYDEBUG(458, *YYCURSOR);
1.1 misho 5080: yych = *++YYCURSOR;
1.1.1.2 ! misho 5081: if (yych == 'Y') goto yy427;
! 5082: if (yych == 'y') goto yy427;
! 5083: goto yy193;
! 5084: yy459:
! 5085: YYDEBUG(459, *YYCURSOR);
1.1 misho 5086: yych = *++YYCURSOR;
1.1.1.2 ! misho 5087: if (yych == 'S') goto yy460;
1.1 misho 5088: if (yych != 's') goto yy193;
1.1.1.2 ! misho 5089: yy460:
! 5090: YYDEBUG(460, *YYCURSOR);
1.1 misho 5091: yych = *++YYCURSOR;
1.1.1.2 ! misho 5092: if (yych == 'E') goto yy461;
1.1 misho 5093: if (yych != 'e') goto yy193;
1.1.1.2 ! misho 5094: yy461:
! 5095: YYDEBUG(461, *YYCURSOR);
1.1 misho 5096: yych = *++YYCURSOR;
1.1.1.2 ! misho 5097: if (yych == 'T') goto yy462;
1.1 misho 5098: if (yych != 't') goto yy193;
1.1.1.2 ! misho 5099: yy462:
! 5100: YYDEBUG(462, *YYCURSOR);
1.1 misho 5101: ++YYCURSOR;
5102: YYFILL(1);
5103: yych = *YYCURSOR;
1.1.1.2 ! misho 5104: YYDEBUG(463, *YYCURSOR);
1.1 misho 5105: if (yych <= 0x1F) {
1.1.1.2 ! misho 5106: if (yych == '\t') goto yy462;
1.1 misho 5107: goto yy193;
5108: } else {
1.1.1.2 ! misho 5109: if (yych <= ' ') goto yy462;
1.1 misho 5110: if (yych != ')') goto yy193;
5111: }
1.1.1.2 ! misho 5112: YYDEBUG(464, *YYCURSOR);
1.1 misho 5113: ++YYCURSOR;
1.1.1.2 ! misho 5114: YYDEBUG(465, *YYCURSOR);
1.1 misho 5115: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 5116: #line 1231 "Zend/zend_language_scanner.l"
1.1 misho 5117: {
5118: return T_UNSET_CAST;
5119: }
1.1.1.2 ! misho 5120: #line 5121 "Zend/zend_language_scanner.c"
! 5121: yy466:
! 5122: YYDEBUG(466, *YYCURSOR);
1.1 misho 5123: yych = *++YYCURSOR;
1.1.1.2 ! misho 5124: if (yych == 'R') goto yy467;
1.1 misho 5125: if (yych != 'r') goto yy186;
1.1.1.2 ! misho 5126: yy467:
! 5127: YYDEBUG(467, *YYCURSOR);
1.1 misho 5128: ++YYCURSOR;
1.1.1.2 ! misho 5129: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 5130: goto yy185;
5131: }
1.1.1.2 ! misho 5132: YYDEBUG(468, *YYCURSOR);
1.1 misho 5133: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 5134: #line 1203 "Zend/zend_language_scanner.l"
1.1 misho 5135: {
5136: return T_VAR;
5137: }
1.1.1.2 ! misho 5138: #line 5139 "Zend/zend_language_scanner.c"
! 5139: yy469:
! 5140: YYDEBUG(469, *YYCURSOR);
1.1 misho 5141: yych = *++YYCURSOR;
1.1.1.2 ! misho 5142: if (yych == 'M') goto yy473;
! 5143: if (yych == 'm') goto yy473;
1.1 misho 5144: goto yy186;
1.1.1.2 ! misho 5145: yy470:
! 5146: YYDEBUG(470, *YYCURSOR);
1.1 misho 5147: yych = *++YYCURSOR;
1.1.1.2 ! misho 5148: if (yych == 'W') goto yy471;
1.1 misho 5149: if (yych != 'w') goto yy186;
1.1.1.2 ! misho 5150: yy471:
! 5151: YYDEBUG(471, *YYCURSOR);
1.1 misho 5152: ++YYCURSOR;
1.1.1.2 ! misho 5153: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 5154: goto yy185;
5155: }
1.1.1.2 ! misho 5156: YYDEBUG(472, *YYCURSOR);
1.1 misho 5157: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 5158: #line 1195 "Zend/zend_language_scanner.l"
1.1 misho 5159: {
5160: return T_NEW;
5161: }
1.1.1.2 ! misho 5162: #line 5163 "Zend/zend_language_scanner.c"
! 5163: yy473:
! 5164: YYDEBUG(473, *YYCURSOR);
1.1 misho 5165: yych = *++YYCURSOR;
1.1.1.2 ! misho 5166: if (yych == 'E') goto yy474;
1.1 misho 5167: if (yych != 'e') goto yy186;
1.1.1.2 ! misho 5168: yy474:
! 5169: YYDEBUG(474, *YYCURSOR);
1.1 misho 5170: yych = *++YYCURSOR;
1.1.1.2 ! misho 5171: if (yych == 'S') goto yy475;
1.1 misho 5172: if (yych != 's') goto yy186;
1.1.1.2 ! misho 5173: yy475:
! 5174: YYDEBUG(475, *YYCURSOR);
1.1 misho 5175: yych = *++YYCURSOR;
1.1.1.2 ! misho 5176: if (yych == 'P') goto yy476;
1.1 misho 5177: if (yych != 'p') goto yy186;
1.1.1.2 ! misho 5178: yy476:
! 5179: YYDEBUG(476, *YYCURSOR);
1.1 misho 5180: yych = *++YYCURSOR;
1.1.1.2 ! misho 5181: if (yych == 'A') goto yy477;
1.1 misho 5182: if (yych != 'a') goto yy186;
1.1.1.2 ! misho 5183: yy477:
! 5184: YYDEBUG(477, *YYCURSOR);
1.1 misho 5185: yych = *++YYCURSOR;
1.1.1.2 ! misho 5186: if (yych == 'C') goto yy478;
1.1 misho 5187: if (yych != 'c') goto yy186;
1.1.1.2 ! misho 5188: yy478:
! 5189: YYDEBUG(478, *YYCURSOR);
1.1 misho 5190: yych = *++YYCURSOR;
1.1.1.2 ! misho 5191: if (yych == 'E') goto yy479;
1.1 misho 5192: if (yych != 'e') goto yy186;
1.1.1.2 ! misho 5193: yy479:
! 5194: YYDEBUG(479, *YYCURSOR);
1.1 misho 5195: ++YYCURSOR;
1.1.1.2 ! misho 5196: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 5197: goto yy185;
5198: }
1.1.1.2 ! misho 5199: YYDEBUG(480, *YYCURSOR);
1.1 misho 5200: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 5201: #line 1255 "Zend/zend_language_scanner.l"
1.1 misho 5202: {
5203: return T_NAMESPACE;
5204: }
1.1.1.2 ! misho 5205: #line 5206 "Zend/zend_language_scanner.c"
! 5206: yy481:
! 5207: YYDEBUG(481, *YYCURSOR);
1.1 misho 5208: ++YYCURSOR;
1.1.1.2 ! misho 5209: YYDEBUG(482, *YYCURSOR);
1.1 misho 5210: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 5211: #line 1187 "Zend/zend_language_scanner.l"
1.1 misho 5212: {
5213: return T_PAAMAYIM_NEKUDOTAYIM;
5214: }
1.1.1.2 ! misho 5215: #line 5216 "Zend/zend_language_scanner.c"
! 5216: yy483:
! 5217: YYDEBUG(483, *YYCURSOR);
1.1 misho 5218: ++YYCURSOR;
5219: YYFILL(1);
5220: yych = *YYCURSOR;
1.1.1.2 ! misho 5221: yy484:
! 5222: YYDEBUG(484, *YYCURSOR);
1.1 misho 5223: if (yych <= '\f') {
5224: if (yych <= 0x08) goto yy140;
1.1.1.2 ! misho 5225: if (yych <= '\n') goto yy483;
1.1 misho 5226: goto yy140;
5227: } else {
1.1.1.2 ! misho 5228: if (yych <= '\r') goto yy483;
! 5229: if (yych == ' ') goto yy483;
1.1 misho 5230: goto yy140;
5231: }
1.1.1.2 ! misho 5232: yy485:
! 5233: YYDEBUG(485, *YYCURSOR);
1.1 misho 5234: ++YYCURSOR;
1.1.1.2 ! misho 5235: YYDEBUG(486, *YYCURSOR);
1.1 misho 5236: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 5237: #line 1363 "Zend/zend_language_scanner.l"
1.1 misho 5238: {
5239: return T_MINUS_EQUAL;
5240: }
1.1.1.2 ! misho 5241: #line 5242 "Zend/zend_language_scanner.c"
! 5242: yy487:
! 5243: YYDEBUG(487, *YYCURSOR);
1.1 misho 5244: ++YYCURSOR;
1.1.1.2 ! misho 5245: YYDEBUG(488, *YYCURSOR);
1.1 misho 5246: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 5247: #line 1331 "Zend/zend_language_scanner.l"
1.1 misho 5248: {
5249: return T_DEC;
5250: }
1.1.1.2 ! misho 5251: #line 5252 "Zend/zend_language_scanner.c"
! 5252: yy489:
! 5253: YYDEBUG(489, *YYCURSOR);
1.1 misho 5254: ++YYCURSOR;
1.1.1.2 ! misho 5255: YYDEBUG(490, *YYCURSOR);
1.1 misho 5256: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 5257: #line 1157 "Zend/zend_language_scanner.l"
1.1 misho 5258: {
5259: yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
5260: return T_OBJECT_OPERATOR;
5261: }
1.1.1.2 ! misho 5262: #line 5263 "Zend/zend_language_scanner.c"
! 5263: yy491:
! 5264: YYDEBUG(491, *YYCURSOR);
1.1 misho 5265: yych = *++YYCURSOR;
5266: if (yych <= 'O') {
1.1.1.2 ! misho 5267: if (yych == 'I') goto yy498;
1.1 misho 5268: if (yych <= 'N') goto yy186;
1.1.1.2 ! misho 5269: goto yy499;
1.1 misho 5270: } else {
5271: if (yych <= 'i') {
5272: if (yych <= 'h') goto yy186;
1.1.1.2 ! misho 5273: goto yy498;
1.1 misho 5274: } else {
1.1.1.2 ! misho 5275: if (yych == 'o') goto yy499;
1.1 misho 5276: goto yy186;
5277: }
5278: }
1.1.1.2 ! misho 5279: yy492:
! 5280: YYDEBUG(492, *YYCURSOR);
1.1 misho 5281: yych = *++YYCURSOR;
1.1.1.2 ! misho 5282: if (yych == 'B') goto yy493;
1.1 misho 5283: if (yych != 'b') goto yy186;
1.1.1.2 ! misho 5284: yy493:
! 5285: YYDEBUG(493, *YYCURSOR);
1.1 misho 5286: yych = *++YYCURSOR;
1.1.1.2 ! misho 5287: if (yych == 'L') goto yy494;
1.1 misho 5288: if (yych != 'l') goto yy186;
1.1.1.2 ! misho 5289: yy494:
! 5290: YYDEBUG(494, *YYCURSOR);
1.1 misho 5291: yych = *++YYCURSOR;
1.1.1.2 ! misho 5292: if (yych == 'I') goto yy495;
1.1 misho 5293: if (yych != 'i') goto yy186;
1.1.1.2 ! misho 5294: yy495:
! 5295: YYDEBUG(495, *YYCURSOR);
1.1 misho 5296: yych = *++YYCURSOR;
1.1.1.2 ! misho 5297: if (yych == 'C') goto yy496;
1.1 misho 5298: if (yych != 'c') goto yy186;
1.1.1.2 ! misho 5299: yy496:
! 5300: YYDEBUG(496, *YYCURSOR);
1.1 misho 5301: ++YYCURSOR;
1.1.1.2 ! misho 5302: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 5303: goto yy185;
5304: }
1.1.1.2 ! misho 5305: YYDEBUG(497, *YYCURSOR);
1.1 misho 5306: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 5307: #line 1303 "Zend/zend_language_scanner.l"
1.1 misho 5308: {
5309: return T_PUBLIC;
5310: }
1.1.1.2 ! misho 5311: #line 5312 "Zend/zend_language_scanner.c"
! 5312: yy498:
! 5313: YYDEBUG(498, *YYCURSOR);
1.1 misho 5314: yych = *++YYCURSOR;
5315: if (yych <= 'V') {
1.1.1.2 ! misho 5316: if (yych == 'N') goto yy507;
1.1 misho 5317: if (yych <= 'U') goto yy186;
1.1.1.2 ! misho 5318: goto yy508;
1.1 misho 5319: } else {
5320: if (yych <= 'n') {
5321: if (yych <= 'm') goto yy186;
1.1.1.2 ! misho 5322: goto yy507;
1.1 misho 5323: } else {
1.1.1.2 ! misho 5324: if (yych == 'v') goto yy508;
1.1 misho 5325: goto yy186;
5326: }
5327: }
1.1.1.2 ! misho 5328: yy499:
! 5329: YYDEBUG(499, *YYCURSOR);
1.1 misho 5330: yych = *++YYCURSOR;
1.1.1.2 ! misho 5331: if (yych == 'T') goto yy500;
1.1 misho 5332: if (yych != 't') goto yy186;
1.1.1.2 ! misho 5333: yy500:
! 5334: YYDEBUG(500, *YYCURSOR);
1.1 misho 5335: yych = *++YYCURSOR;
1.1.1.2 ! misho 5336: if (yych == 'E') goto yy501;
1.1 misho 5337: if (yych != 'e') goto yy186;
1.1.1.2 ! misho 5338: yy501:
! 5339: YYDEBUG(501, *YYCURSOR);
1.1 misho 5340: yych = *++YYCURSOR;
1.1.1.2 ! misho 5341: if (yych == 'C') goto yy502;
1.1 misho 5342: if (yych != 'c') goto yy186;
1.1.1.2 ! misho 5343: yy502:
! 5344: YYDEBUG(502, *YYCURSOR);
1.1 misho 5345: yych = *++YYCURSOR;
1.1.1.2 ! misho 5346: if (yych == 'T') goto yy503;
1.1 misho 5347: if (yych != 't') goto yy186;
1.1.1.2 ! misho 5348: yy503:
! 5349: YYDEBUG(503, *YYCURSOR);
1.1 misho 5350: yych = *++YYCURSOR;
1.1.1.2 ! misho 5351: if (yych == 'E') goto yy504;
1.1 misho 5352: if (yych != 'e') goto yy186;
1.1.1.2 ! misho 5353: yy504:
! 5354: YYDEBUG(504, *YYCURSOR);
1.1 misho 5355: yych = *++YYCURSOR;
1.1.1.2 ! misho 5356: if (yych == 'D') goto yy505;
1.1 misho 5357: if (yych != 'd') goto yy186;
1.1.1.2 ! misho 5358: yy505:
! 5359: YYDEBUG(505, *YYCURSOR);
1.1 misho 5360: ++YYCURSOR;
1.1.1.2 ! misho 5361: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 5362: goto yy185;
5363: }
1.1.1.2 ! misho 5364: YYDEBUG(506, *YYCURSOR);
1.1 misho 5365: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 5366: #line 1299 "Zend/zend_language_scanner.l"
1.1 misho 5367: {
5368: return T_PROTECTED;
5369: }
1.1.1.2 ! misho 5370: #line 5371 "Zend/zend_language_scanner.c"
! 5371: yy507:
! 5372: YYDEBUG(507, *YYCURSOR);
1.1 misho 5373: yych = *++YYCURSOR;
1.1.1.2 ! misho 5374: if (yych == 'T') goto yy513;
! 5375: if (yych == 't') goto yy513;
1.1 misho 5376: goto yy186;
1.1.1.2 ! misho 5377: yy508:
! 5378: YYDEBUG(508, *YYCURSOR);
1.1 misho 5379: yych = *++YYCURSOR;
1.1.1.2 ! misho 5380: if (yych == 'A') goto yy509;
1.1 misho 5381: if (yych != 'a') goto yy186;
1.1.1.2 ! misho 5382: yy509:
! 5383: YYDEBUG(509, *YYCURSOR);
1.1 misho 5384: yych = *++YYCURSOR;
1.1.1.2 ! misho 5385: if (yych == 'T') goto yy510;
1.1 misho 5386: if (yych != 't') goto yy186;
1.1.1.2 ! misho 5387: yy510:
! 5388: YYDEBUG(510, *YYCURSOR);
1.1 misho 5389: yych = *++YYCURSOR;
1.1.1.2 ! misho 5390: if (yych == 'E') goto yy511;
1.1 misho 5391: if (yych != 'e') goto yy186;
1.1.1.2 ! misho 5392: yy511:
! 5393: YYDEBUG(511, *YYCURSOR);
1.1 misho 5394: ++YYCURSOR;
1.1.1.2 ! misho 5395: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 5396: goto yy185;
5397: }
1.1.1.2 ! misho 5398: YYDEBUG(512, *YYCURSOR);
1.1 misho 5399: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 5400: #line 1295 "Zend/zend_language_scanner.l"
1.1 misho 5401: {
5402: return T_PRIVATE;
5403: }
1.1.1.2 ! misho 5404: #line 5405 "Zend/zend_language_scanner.c"
! 5405: yy513:
! 5406: YYDEBUG(513, *YYCURSOR);
1.1 misho 5407: ++YYCURSOR;
1.1.1.2 ! misho 5408: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 5409: goto yy185;
5410: }
1.1.1.2 ! misho 5411: YYDEBUG(514, *YYCURSOR);
1.1 misho 5412: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 5413: #line 1133 "Zend/zend_language_scanner.l"
1.1 misho 5414: {
5415: return T_PRINT;
5416: }
1.1.1.2 ! misho 5417: #line 5418 "Zend/zend_language_scanner.c"
! 5418: yy515:
! 5419: YYDEBUG(515, *YYCURSOR);
1.1 misho 5420: yych = *++YYCURSOR;
1.1.1.2 ! misho 5421: if (yych == 'O') goto yy520;
! 5422: if (yych == 'o') goto yy520;
1.1 misho 5423: goto yy186;
1.1.1.2 ! misho 5424: yy516:
! 5425: YYDEBUG(516, *YYCURSOR);
1.1 misho 5426: yych = *++YYCURSOR;
1.1.1.2 ! misho 5427: if (yych == 'T') goto yy517;
1.1 misho 5428: if (yych != 't') goto yy186;
1.1.1.2 ! misho 5429: yy517:
! 5430: YYDEBUG(517, *YYCURSOR);
1.1 misho 5431: yych = *++YYCURSOR;
1.1.1.2 ! misho 5432: if (yych == 'O') goto yy518;
1.1 misho 5433: if (yych != 'o') goto yy186;
1.1.1.2 ! misho 5434: yy518:
! 5435: YYDEBUG(518, *YYCURSOR);
1.1 misho 5436: ++YYCURSOR;
1.1.1.2 ! misho 5437: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 5438: goto yy185;
5439: }
1.1.1.2 ! misho 5440: YYDEBUG(519, *YYCURSOR);
1.1 misho 5441: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 5442: #line 1125 "Zend/zend_language_scanner.l"
1.1 misho 5443: {
5444: return T_GOTO;
5445: }
1.1.1.2 ! misho 5446: #line 5447 "Zend/zend_language_scanner.c"
1.1 misho 5447: yy520:
5448: YYDEBUG(520, *YYCURSOR);
5449: yych = *++YYCURSOR;
1.1.1.2 ! misho 5450: if (yych == 'B') goto yy521;
! 5451: if (yych != 'b') goto yy186;
1.1 misho 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;
1.1.1.2 ! misho 5460: if (yych == 'L') goto yy523;
! 5461: if (yych != 'l') goto yy186;
1.1 misho 5462: yy523:
5463: YYDEBUG(523, *YYCURSOR);
5464: ++YYCURSOR;
1.1.1.2 ! misho 5465: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 5466: goto yy185;
5467: }
5468: YYDEBUG(524, *YYCURSOR);
5469: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 5470: #line 1267 "Zend/zend_language_scanner.l"
1.1 misho 5471: {
1.1.1.2 ! misho 5472: return T_GLOBAL;
1.1 misho 5473: }
1.1.1.2 ! misho 5474: #line 5475 "Zend/zend_language_scanner.c"
1.1 misho 5475: yy525:
5476: YYDEBUG(525, *YYCURSOR);
5477: yych = *++YYCURSOR;
1.1.1.2 ! misho 5478: if (yych == '<') goto yy533;
1.1 misho 5479: goto yy193;
5480: yy526:
5481: YYDEBUG(526, *YYCURSOR);
5482: yych = *++YYCURSOR;
1.1.1.2 ! misho 5483: goto yy180;
1.1 misho 5484: yy527:
5485: YYDEBUG(527, *YYCURSOR);
5486: yych = *++YYCURSOR;
1.1.1.2 ! misho 5487: goto yy178;
1.1 misho 5488: yy528:
5489: YYDEBUG(528, *YYCURSOR);
5490: yych = *++YYCURSOR;
1.1.1.2 ! misho 5491: if (yych == 'E') goto yy529;
! 5492: if (yych != 'e') goto yy186;
1.1 misho 5493: yy529:
5494: YYDEBUG(529, *YYCURSOR);
5495: yych = *++YYCURSOR;
1.1.1.2 ! misho 5496: if (yych == 'A') goto yy530;
! 5497: if (yych != 'a') goto yy186;
1.1 misho 5498: yy530:
5499: YYDEBUG(530, *YYCURSOR);
5500: yych = *++YYCURSOR;
1.1.1.2 ! misho 5501: if (yych == 'K') goto yy531;
! 5502: if (yych != 'k') goto yy186;
1.1 misho 5503: yy531:
5504: YYDEBUG(531, *YYCURSOR);
5505: ++YYCURSOR;
1.1.1.2 ! misho 5506: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 5507: goto yy185;
5508: }
5509: YYDEBUG(532, *YYCURSOR);
5510: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 5511: #line 1117 "Zend/zend_language_scanner.l"
1.1 misho 5512: {
1.1.1.2 ! misho 5513: return T_BREAK;
1.1 misho 5514: }
1.1.1.2 ! misho 5515: #line 5516 "Zend/zend_language_scanner.c"
1.1 misho 5516: yy533:
5517: YYDEBUG(533, *YYCURSOR);
5518: yych = *++YYCURSOR;
1.1.1.2 ! misho 5519: if (yych == '<') goto yy269;
! 5520: goto yy193;
1.1 misho 5521: yy534:
5522: YYDEBUG(534, *YYCURSOR);
5523: yych = *++YYCURSOR;
1.1.1.2 ! misho 5524: if (yych == 'A') goto yy541;
! 5525: if (yych == 'a') goto yy541;
! 5526: goto yy186;
1.1 misho 5527: yy535:
5528: YYDEBUG(535, *YYCURSOR);
5529: yych = *++YYCURSOR;
1.1.1.2 ! misho 5530: if (yych == 'I') goto yy536;
! 5531: if (yych != 'i') goto yy186;
1.1 misho 5532: yy536:
5533: YYDEBUG(536, *YYCURSOR);
1.1.1.2 ! misho 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);
1.1 misho 5549: ++YYCURSOR;
1.1.1.2 ! misho 5550: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 5551: goto yy185;
5552: }
1.1.1.2 ! misho 5553: YYDEBUG(540, *YYCURSOR);
1.1 misho 5554: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 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"
1.1 misho 5584: {
5585: return T_STATIC;
5586: }
1.1.1.2 ! misho 5587: #line 5588 "Zend/zend_language_scanner.c"
! 5588: yy546:
! 5589: YYDEBUG(546, *YYCURSOR);
1.1 misho 5590: yych = *++YYCURSOR;
1.1.1.2 ! misho 5591: if (yych == 'S') goto yy557;
! 5592: if (yych == 's') goto yy557;
1.1 misho 5593: goto yy186;
1.1.1.2 ! misho 5594: yy547:
! 5595: YYDEBUG(547, *YYCURSOR);
1.1 misho 5596: yych = *++YYCURSOR;
1.1.1.2 ! misho 5597: if (yych == 'D') goto yy555;
! 5598: if (yych == 'd') goto yy555;
1.1 misho 5599: goto yy186;
1.1.1.2 ! misho 5600: yy548:
! 5601: YYDEBUG(548, *YYCURSOR);
1.1 misho 5602: yych = *++YYCURSOR;
1.1.1.2 ! misho 5603: if (yych == 'R') goto yy551;
! 5604: if (yych == 'r') goto yy551;
1.1 misho 5605: goto yy186;
1.1.1.2 ! misho 5606: yy549:
! 5607: YYDEBUG(549, *YYCURSOR);
1.1 misho 5608: ++YYCURSOR;
1.1.1.2 ! misho 5609: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 5610: goto yy185;
5611: }
1.1.1.2 ! misho 5612: YYDEBUG(550, *YYCURSOR);
1.1 misho 5613: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 5614: #line 1097 "Zend/zend_language_scanner.l"
1.1 misho 5615: {
5616: return T_AS;
5617: }
1.1.1.2 ! misho 5618: #line 5619 "Zend/zend_language_scanner.c"
! 5619: yy551:
! 5620: YYDEBUG(551, *YYCURSOR);
1.1 misho 5621: yych = *++YYCURSOR;
1.1.1.2 ! misho 5622: if (yych == 'A') goto yy552;
1.1 misho 5623: if (yych != 'a') goto yy186;
1.1.1.2 ! misho 5624: yy552:
! 5625: YYDEBUG(552, *YYCURSOR);
1.1 misho 5626: yych = *++YYCURSOR;
1.1.1.2 ! misho 5627: if (yych == 'Y') goto yy553;
1.1 misho 5628: if (yych != 'y') goto yy186;
1.1.1.2 ! misho 5629: yy553:
! 5630: YYDEBUG(553, *YYCURSOR);
1.1 misho 5631: ++YYCURSOR;
1.1.1.2 ! misho 5632: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 5633: goto yy185;
5634: }
1.1.1.2 ! misho 5635: YYDEBUG(554, *YYCURSOR);
1.1 misho 5636: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 5637: #line 1319 "Zend/zend_language_scanner.l"
1.1 misho 5638: {
5639: return T_ARRAY;
5640: }
1.1.1.2 ! misho 5641: #line 5642 "Zend/zend_language_scanner.c"
! 5642: yy555:
! 5643: YYDEBUG(555, *YYCURSOR);
1.1 misho 5644: ++YYCURSOR;
1.1.1.2 ! misho 5645: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 5646: goto yy185;
5647: }
1.1.1.2 ! misho 5648: YYDEBUG(556, *YYCURSOR);
1.1 misho 5649: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 5650: #line 1415 "Zend/zend_language_scanner.l"
1.1 misho 5651: {
5652: return T_LOGICAL_AND;
5653: }
1.1.1.2 ! misho 5654: #line 5655 "Zend/zend_language_scanner.c"
! 5655: yy557:
! 5656: YYDEBUG(557, *YYCURSOR);
1.1 misho 5657: yych = *++YYCURSOR;
1.1.1.2 ! misho 5658: if (yych == 'T') goto yy558;
1.1 misho 5659: if (yych != 't') goto yy186;
1.1.1.2 ! misho 5660: yy558:
! 5661: YYDEBUG(558, *YYCURSOR);
1.1 misho 5662: yych = *++YYCURSOR;
1.1.1.2 ! misho 5663: if (yych == 'R') goto yy559;
1.1 misho 5664: if (yych != 'r') goto yy186;
1.1.1.2 ! misho 5665: yy559:
! 5666: YYDEBUG(559, *YYCURSOR);
1.1 misho 5667: yych = *++YYCURSOR;
1.1.1.2 ! misho 5668: if (yych == 'A') goto yy560;
1.1 misho 5669: if (yych != 'a') goto yy186;
1.1.1.2 ! misho 5670: yy560:
! 5671: YYDEBUG(560, *YYCURSOR);
1.1 misho 5672: yych = *++YYCURSOR;
1.1.1.2 ! misho 5673: if (yych == 'C') goto yy561;
1.1 misho 5674: if (yych != 'c') goto yy186;
1.1.1.2 ! misho 5675: yy561:
! 5676: YYDEBUG(561, *YYCURSOR);
1.1 misho 5677: yych = *++YYCURSOR;
1.1.1.2 ! misho 5678: if (yych == 'T') goto yy562;
1.1 misho 5679: if (yych != 't') goto yy186;
1.1.1.2 ! misho 5680: yy562:
! 5681: YYDEBUG(562, *YYCURSOR);
1.1 misho 5682: ++YYCURSOR;
1.1.1.2 ! misho 5683: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 5684: goto yy185;
5685: }
1.1.1.2 ! misho 5686: YYDEBUG(563, *YYCURSOR);
1.1 misho 5687: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 5688: #line 1287 "Zend/zend_language_scanner.l"
1.1 misho 5689: {
5690: return T_ABSTRACT;
5691: }
1.1.1.2 ! misho 5692: #line 5693 "Zend/zend_language_scanner.c"
! 5693: yy564:
! 5694: YYDEBUG(564, *YYCURSOR);
1.1 misho 5695: yych = *++YYCURSOR;
1.1.1.2 ! misho 5696: if (yych == 'I') goto yy565;
1.1 misho 5697: if (yych != 'i') goto yy186;
1.1.1.2 ! misho 5698: yy565:
! 5699: YYDEBUG(565, *YYCURSOR);
1.1 misho 5700: yych = *++YYCURSOR;
1.1.1.2 ! misho 5701: if (yych == 'L') goto yy566;
1.1 misho 5702: if (yych != 'l') goto yy186;
1.1.1.2 ! misho 5703: yy566:
! 5704: YYDEBUG(566, *YYCURSOR);
1.1 misho 5705: yych = *++YYCURSOR;
1.1.1.2 ! misho 5706: if (yych == 'E') goto yy567;
1.1 misho 5707: if (yych != 'e') goto yy186;
1.1.1.2 ! misho 5708: yy567:
! 5709: YYDEBUG(567, *YYCURSOR);
1.1 misho 5710: ++YYCURSOR;
1.1.1.2 ! misho 5711: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 5712: goto yy185;
5713: }
1.1.1.2 ! misho 5714: YYDEBUG(568, *YYCURSOR);
1.1 misho 5715: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 5716: #line 1057 "Zend/zend_language_scanner.l"
1.1 misho 5717: {
5718: return T_WHILE;
5719: }
1.1.1.2 ! misho 5720: #line 5721 "Zend/zend_language_scanner.c"
! 5721: yy569:
! 5722: YYDEBUG(569, *YYCURSOR);
1.1 misho 5723: ++YYCURSOR;
1.1.1.2 ! misho 5724: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 5725: goto yy185;
5726: }
1.1.1.2 ! misho 5727: YYDEBUG(570, *YYCURSOR);
1.1 misho 5728: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 5729: #line 1041 "Zend/zend_language_scanner.l"
1.1 misho 5730: {
5731: return T_IF;
5732: }
1.1.1.2 ! misho 5733: #line 5734 "Zend/zend_language_scanner.c"
! 5734: yy571:
! 5735: YYDEBUG(571, *YYCURSOR);
1.1 misho 5736: yych = *++YYCURSOR;
1.1.1.2 ! misho 5737: if (yych == 'P') goto yy613;
! 5738: if (yych == 'p') goto yy613;
1.1 misho 5739: goto yy186;
1.1.1.2 ! misho 5740: yy572:
! 5741: YYDEBUG(572, *YYCURSOR);
1.1 misho 5742: yych = *++YYCURSOR;
5743: if (yych <= 'T') {
5744: if (yych <= 'C') {
5745: if (yych <= 'B') goto yy186;
1.1.1.2 ! misho 5746: goto yy580;
1.1 misho 5747: } else {
5748: if (yych <= 'R') goto yy186;
1.1.1.2 ! misho 5749: if (yych <= 'S') goto yy578;
! 5750: goto yy579;
1.1 misho 5751: }
5752: } else {
5753: if (yych <= 'r') {
1.1.1.2 ! misho 5754: if (yych == 'c') goto yy580;
1.1 misho 5755: goto yy186;
5756: } else {
1.1.1.2 ! misho 5757: if (yych <= 's') goto yy578;
! 5758: if (yych <= 't') goto yy579;
1.1 misho 5759: goto yy186;
5760: }
5761: }
1.1.1.2 ! misho 5762: yy573:
! 5763: YYDEBUG(573, *YYCURSOR);
1.1 misho 5764: yych = *++YYCURSOR;
1.1.1.2 ! misho 5765: if (yych == 'S') goto yy574;
1.1 misho 5766: if (yych != 's') goto yy186;
1.1.1.2 ! misho 5767: yy574:
! 5768: YYDEBUG(574, *YYCURSOR);
1.1 misho 5769: yych = *++YYCURSOR;
1.1.1.2 ! misho 5770: if (yych == 'E') goto yy575;
1.1 misho 5771: if (yych != 'e') goto yy186;
1.1.1.2 ! misho 5772: yy575:
! 5773: YYDEBUG(575, *YYCURSOR);
1.1 misho 5774: yych = *++YYCURSOR;
1.1.1.2 ! misho 5775: if (yych == 'T') goto yy576;
1.1 misho 5776: if (yych != 't') goto yy186;
1.1.1.2 ! misho 5777: yy576:
! 5778: YYDEBUG(576, *YYCURSOR);
1.1 misho 5779: ++YYCURSOR;
1.1.1.2 ! misho 5780: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 5781: goto yy185;
5782: }
1.1.1.2 ! misho 5783: YYDEBUG(577, *YYCURSOR);
1.1 misho 5784: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 5785: #line 1271 "Zend/zend_language_scanner.l"
1.1 misho 5786: {
5787: return T_ISSET;
5788: }
1.1.1.2 ! misho 5789: #line 5790 "Zend/zend_language_scanner.c"
! 5790: yy578:
! 5791: YYDEBUG(578, *YYCURSOR);
1.1 misho 5792: yych = *++YYCURSOR;
1.1.1.2 ! misho 5793: if (yych == 'T') goto yy599;
! 5794: if (yych == 't') goto yy599;
1.1 misho 5795: goto yy186;
1.1.1.2 ! misho 5796: yy579:
! 5797: YYDEBUG(579, *YYCURSOR);
1.1 misho 5798: yych = *++YYCURSOR;
1.1.1.2 ! misho 5799: if (yych == 'E') goto yy592;
! 5800: if (yych == 'e') goto yy592;
1.1 misho 5801: goto yy186;
1.1.1.2 ! misho 5802: yy580:
! 5803: YYDEBUG(580, *YYCURSOR);
1.1 misho 5804: yych = *++YYCURSOR;
1.1.1.2 ! misho 5805: if (yych == 'L') goto yy581;
1.1 misho 5806: if (yych != 'l') goto yy186;
1.1.1.2 ! misho 5807: yy581:
! 5808: YYDEBUG(581, *YYCURSOR);
1.1 misho 5809: yych = *++YYCURSOR;
1.1.1.2 ! misho 5810: if (yych == 'U') goto yy582;
1.1 misho 5811: if (yych != 'u') goto yy186;
1.1.1.2 ! misho 5812: yy582:
! 5813: YYDEBUG(582, *YYCURSOR);
1.1 misho 5814: yych = *++YYCURSOR;
1.1.1.2 ! misho 5815: if (yych == 'D') goto yy583;
1.1 misho 5816: if (yych != 'd') goto yy186;
1.1.1.2 ! misho 5817: yy583:
! 5818: YYDEBUG(583, *YYCURSOR);
1.1 misho 5819: yych = *++YYCURSOR;
1.1.1.2 ! misho 5820: if (yych == 'E') goto yy584;
1.1 misho 5821: if (yych != 'e') goto yy186;
1.1.1.2 ! misho 5822: yy584:
! 5823: YYDEBUG(584, *YYCURSOR);
1.1 misho 5824: ++YYCURSOR;
5825: if ((yych = *YYCURSOR) <= '^') {
5826: if (yych <= '9') {
5827: if (yych >= '0') goto yy185;
5828: } else {
1.1.1.2 ! misho 5829: if (yych <= '@') goto yy585;
1.1 misho 5830: if (yych <= 'Z') goto yy185;
5831: }
5832: } else {
5833: if (yych <= '`') {
1.1.1.2 ! misho 5834: if (yych <= '_') goto yy586;
1.1 misho 5835: } else {
5836: if (yych <= 'z') goto yy185;
5837: if (yych >= 0x7F) goto yy185;
5838: }
5839: }
1.1.1.2 ! misho 5840: yy585:
! 5841: YYDEBUG(585, *YYCURSOR);
1.1 misho 5842: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 5843: #line 1239 "Zend/zend_language_scanner.l"
1.1 misho 5844: {
5845: return T_INCLUDE;
5846: }
1.1.1.2 ! misho 5847: #line 5848 "Zend/zend_language_scanner.c"
1.1 misho 5848: yy586:
5849: YYDEBUG(586, *YYCURSOR);
5850: yych = *++YYCURSOR;
1.1.1.2 ! misho 5851: if (yych == 'O') goto yy587;
! 5852: if (yych != 'o') goto yy186;
1.1 misho 5853: yy587:
5854: YYDEBUG(587, *YYCURSOR);
5855: yych = *++YYCURSOR;
1.1.1.2 ! misho 5856: if (yych == 'N') goto yy588;
! 5857: if (yych != 'n') goto yy186;
1.1 misho 5858: yy588:
5859: YYDEBUG(588, *YYCURSOR);
5860: yych = *++YYCURSOR;
1.1.1.2 ! misho 5861: if (yych == 'C') goto yy589;
! 5862: if (yych != 'c') goto yy186;
1.1 misho 5863: yy589:
5864: YYDEBUG(589, *YYCURSOR);
1.1.1.2 ! misho 5865: yych = *++YYCURSOR;
! 5866: if (yych == 'E') goto yy590;
! 5867: if (yych != 'e') goto yy186;
! 5868: yy590:
! 5869: YYDEBUG(590, *YYCURSOR);
1.1 misho 5870: ++YYCURSOR;
1.1.1.2 ! misho 5871: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 5872: goto yy185;
5873: }
1.1.1.2 ! misho 5874: YYDEBUG(591, *YYCURSOR);
1.1 misho 5875: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 5876: #line 1243 "Zend/zend_language_scanner.l"
1.1 misho 5877: {
1.1.1.2 ! misho 5878: return T_INCLUDE_ONCE;
1.1 misho 5879: }
1.1.1.2 ! misho 5880: #line 5881 "Zend/zend_language_scanner.c"
1.1 misho 5881: yy592:
5882: YYDEBUG(592, *YYCURSOR);
5883: yych = *++YYCURSOR;
1.1.1.2 ! misho 5884: if (yych == 'R') goto yy593;
! 5885: if (yych != 'r') goto yy186;
1.1 misho 5886: yy593:
5887: YYDEBUG(593, *YYCURSOR);
5888: yych = *++YYCURSOR;
1.1.1.2 ! misho 5889: if (yych == 'F') goto yy594;
! 5890: if (yych != 'f') goto yy186;
1.1 misho 5891: yy594:
5892: YYDEBUG(594, *YYCURSOR);
5893: yych = *++YYCURSOR;
1.1.1.2 ! misho 5894: if (yych == 'A') goto yy595;
! 5895: if (yych != 'a') goto yy186;
1.1 misho 5896: yy595:
5897: YYDEBUG(595, *YYCURSOR);
5898: yych = *++YYCURSOR;
1.1.1.2 ! misho 5899: if (yych == 'C') goto yy596;
! 5900: if (yych != 'c') goto yy186;
1.1 misho 5901: yy596:
5902: YYDEBUG(596, *YYCURSOR);
5903: yych = *++YYCURSOR;
1.1.1.2 ! misho 5904: if (yych == 'E') goto yy597;
! 5905: if (yych != 'e') goto yy186;
1.1 misho 5906: yy597:
5907: YYDEBUG(597, *YYCURSOR);
5908: ++YYCURSOR;
1.1.1.2 ! misho 5909: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 5910: goto yy185;
5911: }
5912: YYDEBUG(598, *YYCURSOR);
5913: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 5914: #line 1141 "Zend/zend_language_scanner.l"
1.1 misho 5915: {
1.1.1.2 ! misho 5916: return T_INTERFACE;
1.1 misho 5917: }
1.1.1.2 ! misho 5918: #line 5919 "Zend/zend_language_scanner.c"
1.1 misho 5919: yy599:
5920: YYDEBUG(599, *YYCURSOR);
5921: yych = *++YYCURSOR;
1.1.1.2 ! misho 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: }
1.1 misho 5934: yy600:
5935: YYDEBUG(600, *YYCURSOR);
5936: yych = *++YYCURSOR;
1.1.1.2 ! misho 5937: if (yych == 'N') goto yy607;
! 5938: if (yych == 'n') goto yy607;
! 5939: goto yy186;
1.1 misho 5940: yy601:
5941: YYDEBUG(601, *YYCURSOR);
5942: yych = *++YYCURSOR;
1.1.1.2 ! misho 5943: if (yych == 'A') goto yy602;
! 5944: if (yych != 'a') goto yy186;
1.1 misho 5945: yy602:
5946: YYDEBUG(602, *YYCURSOR);
5947: yych = *++YYCURSOR;
1.1.1.2 ! misho 5948: if (yych == 'D') goto yy603;
! 5949: if (yych != 'd') goto yy186;
1.1 misho 5950: yy603:
5951: YYDEBUG(603, *YYCURSOR);
5952: yych = *++YYCURSOR;
1.1.1.2 ! misho 5953: if (yych == 'O') goto yy604;
! 5954: if (yych != 'o') goto yy186;
1.1 misho 5955: yy604:
5956: YYDEBUG(604, *YYCURSOR);
5957: yych = *++YYCURSOR;
1.1.1.2 ! misho 5958: if (yych == 'F') goto yy605;
! 5959: if (yych != 'f') goto yy186;
1.1 misho 5960: yy605:
5961: YYDEBUG(605, *YYCURSOR);
5962: ++YYCURSOR;
1.1.1.2 ! misho 5963: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 5964: goto yy185;
5965: }
1.1.1.2 ! misho 5966: YYDEBUG(606, *YYCURSOR);
1.1 misho 5967: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 5968: #line 1263 "Zend/zend_language_scanner.l"
1.1 misho 5969: {
1.1.1.2 ! misho 5970: return T_INSTEADOF;
1.1 misho 5971: }
1.1.1.2 ! misho 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;
1.1 misho 5978: yy608:
5979: YYDEBUG(608, *YYCURSOR);
5980: yych = *++YYCURSOR;
1.1.1.2 ! misho 5981: if (yych == 'E') goto yy609;
! 5982: if (yych != 'e') goto yy186;
1.1 misho 5983: yy609:
5984: YYDEBUG(609, *YYCURSOR);
5985: yych = *++YYCURSOR;
1.1.1.2 ! misho 5986: if (yych == 'O') goto yy610;
! 5987: if (yych != 'o') goto yy186;
1.1 misho 5988: yy610:
5989: YYDEBUG(610, *YYCURSOR);
1.1.1.2 ! misho 5990: yych = *++YYCURSOR;
! 5991: if (yych == 'F') goto yy611;
! 5992: if (yych != 'f') goto yy186;
! 5993: yy611:
! 5994: YYDEBUG(611, *YYCURSOR);
1.1 misho 5995: ++YYCURSOR;
1.1.1.2 ! misho 5996: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 5997: goto yy185;
5998: }
1.1.1.2 ! misho 5999: YYDEBUG(612, *YYCURSOR);
1.1 misho 6000: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 6001: #line 1093 "Zend/zend_language_scanner.l"
1.1 misho 6002: {
1.1.1.2 ! misho 6003: return T_INSTANCEOF;
1.1 misho 6004: }
1.1.1.2 ! misho 6005: #line 6006 "Zend/zend_language_scanner.c"
1.1 misho 6006: yy613:
6007: YYDEBUG(613, *YYCURSOR);
6008: yych = *++YYCURSOR;
1.1.1.2 ! misho 6009: if (yych == 'L') goto yy614;
! 6010: if (yych != 'l') goto yy186;
1.1 misho 6011: yy614:
6012: YYDEBUG(614, *YYCURSOR);
1.1.1.2 ! misho 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);
1.1 misho 6043: ++YYCURSOR;
1.1.1.2 ! misho 6044: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 6045: goto yy185;
6046: }
1.1.1.2 ! misho 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);
1.1 misho 6126: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 6127: #line 1037 "Zend/zend_language_scanner.l"
1.1 misho 6128: {
6129: return T_THROW;
6130: }
1.1.1.2 ! misho 6131: #line 6132 "Zend/zend_language_scanner.c"
! 6132: yy634:
! 6133: YYDEBUG(634, *YYCURSOR);
1.1 misho 6134: yych = *++YYCURSOR;
6135: if (yych <= 'T') {
1.1.1.2 ! misho 6136: if (yych == 'Q') goto yy636;
1.1 misho 6137: if (yych <= 'S') goto yy186;
6138: } else {
6139: if (yych <= 'q') {
6140: if (yych <= 'p') goto yy186;
1.1.1.2 ! misho 6141: goto yy636;
1.1 misho 6142: } else {
6143: if (yych != 't') goto yy186;
6144: }
6145: }
1.1.1.2 ! misho 6146: YYDEBUG(635, *YYCURSOR);
1.1 misho 6147: yych = *++YYCURSOR;
1.1.1.2 ! misho 6148: if (yych == 'U') goto yy648;
! 6149: if (yych == 'u') goto yy648;
1.1 misho 6150: goto yy186;
1.1.1.2 ! misho 6151: yy636:
! 6152: YYDEBUG(636, *YYCURSOR);
1.1 misho 6153: yych = *++YYCURSOR;
1.1.1.2 ! misho 6154: if (yych == 'U') goto yy637;
1.1 misho 6155: if (yych != 'u') goto yy186;
1.1.1.2 ! misho 6156: yy637:
! 6157: YYDEBUG(637, *YYCURSOR);
1.1 misho 6158: yych = *++YYCURSOR;
1.1.1.2 ! misho 6159: if (yych == 'I') goto yy638;
1.1 misho 6160: if (yych != 'i') goto yy186;
1.1.1.2 ! misho 6161: yy638:
! 6162: YYDEBUG(638, *YYCURSOR);
1.1 misho 6163: yych = *++YYCURSOR;
1.1.1.2 ! misho 6164: if (yych == 'R') goto yy639;
1.1 misho 6165: if (yych != 'r') goto yy186;
1.1.1.2 ! misho 6166: yy639:
! 6167: YYDEBUG(639, *YYCURSOR);
1.1 misho 6168: yych = *++YYCURSOR;
1.1.1.2 ! misho 6169: if (yych == 'E') goto yy640;
1.1 misho 6170: if (yych != 'e') goto yy186;
1.1.1.2 ! misho 6171: yy640:
! 6172: YYDEBUG(640, *YYCURSOR);
1.1 misho 6173: ++YYCURSOR;
6174: if ((yych = *YYCURSOR) <= '^') {
6175: if (yych <= '9') {
6176: if (yych >= '0') goto yy185;
6177: } else {
1.1.1.2 ! misho 6178: if (yych <= '@') goto yy641;
1.1 misho 6179: if (yych <= 'Z') goto yy185;
6180: }
6181: } else {
6182: if (yych <= '`') {
1.1.1.2 ! misho 6183: if (yych <= '_') goto yy642;
1.1 misho 6184: } else {
6185: if (yych <= 'z') goto yy185;
6186: if (yych >= 0x7F) goto yy185;
6187: }
6188: }
1.1.1.2 ! misho 6189: yy641:
! 6190: YYDEBUG(641, *YYCURSOR);
1.1 misho 6191: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 6192: #line 1247 "Zend/zend_language_scanner.l"
1.1 misho 6193: {
6194: return T_REQUIRE;
6195: }
1.1.1.2 ! misho 6196: #line 6197 "Zend/zend_language_scanner.c"
! 6197: yy642:
! 6198: YYDEBUG(642, *YYCURSOR);
1.1 misho 6199: yych = *++YYCURSOR;
1.1.1.2 ! misho 6200: if (yych == 'O') goto yy643;
1.1 misho 6201: if (yych != 'o') goto yy186;
1.1.1.2 ! misho 6202: yy643:
! 6203: YYDEBUG(643, *YYCURSOR);
1.1 misho 6204: yych = *++YYCURSOR;
1.1.1.2 ! misho 6205: if (yych == 'N') goto yy644;
1.1 misho 6206: if (yych != 'n') goto yy186;
1.1.1.2 ! misho 6207: yy644:
! 6208: YYDEBUG(644, *YYCURSOR);
1.1 misho 6209: yych = *++YYCURSOR;
1.1.1.2 ! misho 6210: if (yych == 'C') goto yy645;
1.1 misho 6211: if (yych != 'c') goto yy186;
1.1.1.2 ! misho 6212: yy645:
! 6213: YYDEBUG(645, *YYCURSOR);
1.1 misho 6214: yych = *++YYCURSOR;
1.1.1.2 ! misho 6215: if (yych == 'E') goto yy646;
1.1 misho 6216: if (yych != 'e') goto yy186;
1.1.1.2 ! misho 6217: yy646:
! 6218: YYDEBUG(646, *YYCURSOR);
1.1 misho 6219: ++YYCURSOR;
1.1.1.2 ! misho 6220: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 6221: goto yy185;
6222: }
1.1.1.2 ! misho 6223: YYDEBUG(647, *YYCURSOR);
1.1 misho 6224: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 6225: #line 1251 "Zend/zend_language_scanner.l"
1.1 misho 6226: {
6227: return T_REQUIRE_ONCE;
6228: }
1.1.1.2 ! misho 6229: #line 6230 "Zend/zend_language_scanner.c"
! 6230: yy648:
! 6231: YYDEBUG(648, *YYCURSOR);
1.1 misho 6232: yych = *++YYCURSOR;
1.1.1.2 ! misho 6233: if (yych == 'R') goto yy649;
1.1 misho 6234: if (yych != 'r') goto yy186;
1.1.1.2 ! misho 6235: yy649:
! 6236: YYDEBUG(649, *YYCURSOR);
1.1 misho 6237: yych = *++YYCURSOR;
1.1.1.2 ! misho 6238: if (yych == 'N') goto yy650;
1.1 misho 6239: if (yych != 'n') goto yy186;
1.1.1.2 ! misho 6240: yy650:
! 6241: YYDEBUG(650, *YYCURSOR);
1.1 misho 6242: ++YYCURSOR;
1.1.1.2 ! misho 6243: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 6244: goto yy185;
6245: }
1.1.1.2 ! misho 6246: YYDEBUG(651, *YYCURSOR);
1.1 misho 6247: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 6248: #line 1025 "Zend/zend_language_scanner.l"
1.1 misho 6249: {
6250: return T_RETURN;
6251: }
1.1.1.2 ! misho 6252: #line 6253 "Zend/zend_language_scanner.c"
! 6253: yy652:
! 6254: YYDEBUG(652, *YYCURSOR);
1.1 misho 6255: yych = *++YYCURSOR;
6256: if (yych <= 'T') {
1.1.1.2 ! misho 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: }
1.1 misho 6265: } else {
1.1.1.2 ! misho 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: }
1.1 misho 6274: }
1.1.1.2 ! misho 6275: yy653:
! 6276: YYDEBUG(653, *YYCURSOR);
1.1 misho 6277: yych = *++YYCURSOR;
6278: if (yych <= 'O') {
1.1.1.2 ! misho 6279: if (yych == 'A') goto yy665;
1.1 misho 6280: if (yych <= 'N') goto yy186;
1.1.1.2 ! misho 6281: goto yy666;
1.1 misho 6282: } else {
6283: if (yych <= 'a') {
6284: if (yych <= '`') goto yy186;
1.1.1.2 ! misho 6285: goto yy665;
1.1 misho 6286: } else {
1.1.1.2 ! misho 6287: if (yych == 'o') goto yy666;
1.1 misho 6288: goto yy186;
6289: }
6290: }
1.1.1.2 ! misho 6291: yy654:
! 6292: YYDEBUG(654, *YYCURSOR);
1.1 misho 6293: yych = *++YYCURSOR;
1.1.1.2 ! misho 6294: if (yych == 'N') goto yy655;
1.1 misho 6295: if (yych != 'n') goto yy186;
1.1.1.2 ! misho 6296: yy655:
! 6297: YYDEBUG(655, *YYCURSOR);
1.1 misho 6298: yych = *++YYCURSOR;
6299: if (yych <= 'T') {
6300: if (yych <= 'R') goto yy186;
1.1.1.2 ! misho 6301: if (yych >= 'T') goto yy657;
1.1 misho 6302: } else {
6303: if (yych <= 'r') goto yy186;
1.1.1.2 ! misho 6304: if (yych <= 's') goto yy656;
! 6305: if (yych <= 't') goto yy657;
1.1 misho 6306: goto yy186;
6307: }
1.1.1.2 ! misho 6308: yy656:
! 6309: YYDEBUG(656, *YYCURSOR);
1.1 misho 6310: yych = *++YYCURSOR;
1.1.1.2 ! misho 6311: if (yych == 'T') goto yy663;
! 6312: if (yych == 't') goto yy663;
1.1 misho 6313: goto yy186;
1.1.1.2 ! misho 6314: yy657:
! 6315: YYDEBUG(657, *YYCURSOR);
1.1 misho 6316: yych = *++YYCURSOR;
1.1.1.2 ! misho 6317: if (yych == 'I') goto yy658;
1.1 misho 6318: if (yych != 'i') goto yy186;
1.1.1.2 ! misho 6319: yy658:
! 6320: YYDEBUG(658, *YYCURSOR);
1.1 misho 6321: yych = *++YYCURSOR;
1.1.1.2 ! misho 6322: if (yych == 'N') goto yy659;
1.1 misho 6323: if (yych != 'n') goto yy186;
1.1.1.2 ! misho 6324: yy659:
! 6325: YYDEBUG(659, *YYCURSOR);
1.1 misho 6326: yych = *++YYCURSOR;
1.1.1.2 ! misho 6327: if (yych == 'U') goto yy660;
1.1 misho 6328: if (yych != 'u') goto yy186;
1.1.1.2 ! misho 6329: yy660:
! 6330: YYDEBUG(660, *YYCURSOR);
1.1 misho 6331: yych = *++YYCURSOR;
1.1.1.2 ! misho 6332: if (yych == 'E') goto yy661;
1.1 misho 6333: if (yych != 'e') goto yy186;
1.1.1.2 ! misho 6334: yy661:
! 6335: YYDEBUG(661, *YYCURSOR);
1.1 misho 6336: ++YYCURSOR;
1.1.1.2 ! misho 6337: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 6338: goto yy185;
6339: }
1.1.1.2 ! misho 6340: YYDEBUG(662, *YYCURSOR);
1.1 misho 6341: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 6342: #line 1121 "Zend/zend_language_scanner.l"
1.1 misho 6343: {
6344: return T_CONTINUE;
6345: }
1.1.1.2 ! misho 6346: #line 6347 "Zend/zend_language_scanner.c"
! 6347: yy663:
! 6348: YYDEBUG(663, *YYCURSOR);
1.1 misho 6349: ++YYCURSOR;
1.1.1.2 ! misho 6350: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 6351: goto yy185;
6352: }
1.1.1.2 ! misho 6353: YYDEBUG(664, *YYCURSOR);
1.1 misho 6354: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 6355: #line 1021 "Zend/zend_language_scanner.l"
1.1 misho 6356: {
6357: return T_CONST;
6358: }
1.1.1.2 ! misho 6359: #line 6360 "Zend/zend_language_scanner.c"
! 6360: yy665:
! 6361: YYDEBUG(665, *YYCURSOR);
1.1 misho 6362: yych = *++YYCURSOR;
1.1.1.2 ! misho 6363: if (yych == 'S') goto yy670;
! 6364: if (yych == 's') goto yy670;
1.1 misho 6365: goto yy186;
1.1.1.2 ! misho 6366: yy666:
! 6367: YYDEBUG(666, *YYCURSOR);
1.1 misho 6368: yych = *++YYCURSOR;
1.1.1.2 ! misho 6369: if (yych == 'N') goto yy667;
1.1 misho 6370: if (yych != 'n') goto yy186;
1.1.1.2 ! misho 6371: yy667:
! 6372: YYDEBUG(667, *YYCURSOR);
1.1 misho 6373: yych = *++YYCURSOR;
1.1.1.2 ! misho 6374: if (yych == 'E') goto yy668;
1.1 misho 6375: if (yych != 'e') goto yy186;
1.1.1.2 ! misho 6376: yy668:
! 6377: YYDEBUG(668, *YYCURSOR);
1.1 misho 6378: ++YYCURSOR;
1.1.1.2 ! misho 6379: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 6380: goto yy185;
6381: }
1.1.1.2 ! misho 6382: YYDEBUG(669, *YYCURSOR);
1.1 misho 6383: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 6384: #line 1199 "Zend/zend_language_scanner.l"
1.1 misho 6385: {
6386: return T_CLONE;
6387: }
1.1.1.2 ! misho 6388: #line 6389 "Zend/zend_language_scanner.c"
! 6389: yy670:
! 6390: YYDEBUG(670, *YYCURSOR);
1.1 misho 6391: yych = *++YYCURSOR;
1.1.1.2 ! misho 6392: if (yych == 'S') goto yy671;
1.1 misho 6393: if (yych != 's') goto yy186;
1.1.1.2 ! misho 6394: yy671:
! 6395: YYDEBUG(671, *YYCURSOR);
1.1 misho 6396: ++YYCURSOR;
1.1.1.2 ! misho 6397: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 6398: goto yy185;
6399: }
1.1.1.2 ! misho 6400: YYDEBUG(672, *YYCURSOR);
1.1 misho 6401: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 6402: #line 1137 "Zend/zend_language_scanner.l"
1.1 misho 6403: {
6404: return T_CLASS;
6405: }
1.1.1.2 ! misho 6406: #line 6407 "Zend/zend_language_scanner.c"
! 6407: yy673:
! 6408: YYDEBUG(673, *YYCURSOR);
1.1 misho 6409: yych = *++YYCURSOR;
1.1.1.2 ! misho 6410: if (yych == 'C') goto yy684;
! 6411: if (yych == 'c') goto yy684;
1.1 misho 6412: goto yy186;
1.1.1.2 ! misho 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);
1.1 misho 6426: yych = *++YYCURSOR;
1.1.1.2 ! misho 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;
1.1 misho 6443: if (yych != 'e') goto yy186;
1.1.1.2 ! misho 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);
1.1 misho 6459: ++YYCURSOR;
1.1.1.2 ! misho 6460: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 6461: goto yy185;
6462: }
1.1.1.2 ! misho 6463: YYDEBUG(683, *YYCURSOR);
1.1 misho 6464: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 6465: #line 1109 "Zend/zend_language_scanner.l"
1.1 misho 6466: {
6467: return T_CASE;
6468: }
1.1.1.2 ! misho 6469: #line 6470 "Zend/zend_language_scanner.c"
! 6470: yy684:
! 6471: YYDEBUG(684, *YYCURSOR);
1.1 misho 6472: yych = *++YYCURSOR;
1.1.1.2 ! misho 6473: if (yych == 'H') goto yy685;
1.1 misho 6474: if (yych != 'h') goto yy186;
1.1.1.2 ! misho 6475: yy685:
! 6476: YYDEBUG(685, *YYCURSOR);
1.1 misho 6477: ++YYCURSOR;
1.1.1.2 ! misho 6478: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 6479: goto yy185;
6480: }
1.1.1.2 ! misho 6481: YYDEBUG(686, *YYCURSOR);
1.1 misho 6482: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 6483: #line 1033 "Zend/zend_language_scanner.l"
1.1 misho 6484: {
6485: return T_CATCH;
6486: }
1.1.1.2 ! misho 6487: #line 6488 "Zend/zend_language_scanner.c"
! 6488: yy687:
! 6489: YYDEBUG(687, *YYCURSOR);
1.1 misho 6490: yych = *++YYCURSOR;
1.1.1.2 ! misho 6491: if (yych == 'N') goto yy704;
! 6492: if (yych == 'n') goto yy704;
1.1 misho 6493: goto yy186;
1.1.1.2 ! misho 6494: yy688:
! 6495: YYDEBUG(688, *YYCURSOR);
1.1 misho 6496: yych = *++YYCURSOR;
1.1.1.2 ! misho 6497: if (yych == 'R') goto yy697;
! 6498: if (yych == 'r') goto yy697;
1.1 misho 6499: goto yy186;
1.1.1.2 ! misho 6500: yy689:
! 6501: YYDEBUG(689, *YYCURSOR);
1.1 misho 6502: yych = *++YYCURSOR;
1.1.1.2 ! misho 6503: if (yych == 'N') goto yy690;
1.1 misho 6504: if (yych != 'n') goto yy186;
1.1.1.2 ! misho 6505: yy690:
! 6506: YYDEBUG(690, *YYCURSOR);
1.1 misho 6507: yych = *++YYCURSOR;
1.1.1.2 ! misho 6508: if (yych == 'C') goto yy691;
1.1 misho 6509: if (yych != 'c') goto yy186;
1.1.1.2 ! misho 6510: yy691:
! 6511: YYDEBUG(691, *YYCURSOR);
1.1 misho 6512: yych = *++YYCURSOR;
1.1.1.2 ! misho 6513: if (yych == 'T') goto yy692;
1.1 misho 6514: if (yych != 't') goto yy186;
1.1.1.2 ! misho 6515: yy692:
! 6516: YYDEBUG(692, *YYCURSOR);
1.1 misho 6517: yych = *++YYCURSOR;
1.1.1.2 ! misho 6518: if (yych == 'I') goto yy693;
1.1 misho 6519: if (yych != 'i') goto yy186;
1.1.1.2 ! misho 6520: yy693:
! 6521: YYDEBUG(693, *YYCURSOR);
1.1 misho 6522: yych = *++YYCURSOR;
1.1.1.2 ! misho 6523: if (yych == 'O') goto yy694;
1.1 misho 6524: if (yych != 'o') goto yy186;
1.1.1.2 ! misho 6525: yy694:
! 6526: YYDEBUG(694, *YYCURSOR);
1.1 misho 6527: yych = *++YYCURSOR;
1.1.1.2 ! misho 6528: if (yych == 'N') goto yy695;
1.1 misho 6529: if (yych != 'n') goto yy186;
1.1.1.2 ! misho 6530: yy695:
! 6531: YYDEBUG(695, *YYCURSOR);
1.1 misho 6532: ++YYCURSOR;
1.1.1.2 ! misho 6533: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 6534: goto yy185;
6535: }
1.1.1.2 ! misho 6536: YYDEBUG(696, *YYCURSOR);
1.1 misho 6537: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 6538: #line 1017 "Zend/zend_language_scanner.l"
1.1 misho 6539: {
6540: return T_FUNCTION;
6541: }
1.1.1.2 ! misho 6542: #line 6543 "Zend/zend_language_scanner.c"
! 6543: yy697:
! 6544: YYDEBUG(697, *YYCURSOR);
1.1 misho 6545: ++YYCURSOR;
6546: if ((yych = *YYCURSOR) <= '^') {
6547: if (yych <= '@') {
1.1.1.2 ! misho 6548: if (yych <= '/') goto yy698;
1.1 misho 6549: if (yych <= '9') goto yy185;
6550: } else {
1.1.1.2 ! misho 6551: if (yych == 'E') goto yy699;
1.1 misho 6552: if (yych <= 'Z') goto yy185;
6553: }
6554: } else {
6555: if (yych <= 'd') {
6556: if (yych != '`') goto yy185;
6557: } else {
1.1.1.2 ! misho 6558: if (yych <= 'e') goto yy699;
1.1 misho 6559: if (yych <= 'z') goto yy185;
6560: if (yych >= 0x7F) goto yy185;
6561: }
6562: }
1.1.1.2 ! misho 6563: yy698:
! 6564: YYDEBUG(698, *YYCURSOR);
1.1 misho 6565: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 6566: #line 1069 "Zend/zend_language_scanner.l"
1.1 misho 6567: {
6568: return T_FOR;
6569: }
1.1.1.2 ! misho 6570: #line 6571 "Zend/zend_language_scanner.c"
! 6571: yy699:
! 6572: YYDEBUG(699, *YYCURSOR);
1.1 misho 6573: yych = *++YYCURSOR;
1.1.1.2 ! misho 6574: if (yych == 'A') goto yy700;
1.1 misho 6575: if (yych != 'a') goto yy186;
1.1.1.2 ! misho 6576: yy700:
! 6577: YYDEBUG(700, *YYCURSOR);
1.1 misho 6578: yych = *++YYCURSOR;
1.1.1.2 ! misho 6579: if (yych == 'C') goto yy701;
1.1 misho 6580: if (yych != 'c') goto yy186;
1.1.1.2 ! misho 6581: yy701:
! 6582: YYDEBUG(701, *YYCURSOR);
1.1 misho 6583: yych = *++YYCURSOR;
1.1.1.2 ! misho 6584: if (yych == 'H') goto yy702;
1.1 misho 6585: if (yych != 'h') goto yy186;
1.1.1.2 ! misho 6586: yy702:
! 6587: YYDEBUG(702, *YYCURSOR);
1.1 misho 6588: ++YYCURSOR;
1.1.1.2 ! misho 6589: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 6590: goto yy185;
6591: }
1.1.1.2 ! misho 6592: YYDEBUG(703, *YYCURSOR);
1.1 misho 6593: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 6594: #line 1077 "Zend/zend_language_scanner.l"
1.1 misho 6595: {
6596: return T_FOREACH;
6597: }
1.1.1.2 ! misho 6598: #line 6599 "Zend/zend_language_scanner.c"
! 6599: yy704:
! 6600: YYDEBUG(704, *YYCURSOR);
1.1 misho 6601: yych = *++YYCURSOR;
1.1.1.2 ! misho 6602: if (yych == 'A') goto yy705;
1.1 misho 6603: if (yych != 'a') goto yy186;
1.1.1.2 ! misho 6604: yy705:
! 6605: YYDEBUG(705, *YYCURSOR);
1.1 misho 6606: yych = *++YYCURSOR;
1.1.1.2 ! misho 6607: if (yych == 'L') goto yy706;
1.1 misho 6608: if (yych != 'l') goto yy186;
1.1.1.2 ! misho 6609: yy706:
! 6610: YYDEBUG(706, *YYCURSOR);
1.1 misho 6611: ++YYCURSOR;
1.1.1.2 ! misho 6612: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 6613: goto yy185;
6614: }
1.1.1.2 ! misho 6615: YYDEBUG(707, *YYCURSOR);
1.1 misho 6616: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 6617: #line 1291 "Zend/zend_language_scanner.l"
1.1 misho 6618: {
6619: return T_FINAL;
6620: }
1.1.1.2 ! misho 6621: #line 6622 "Zend/zend_language_scanner.c"
! 6622: yy708:
! 6623: YYDEBUG(708, *YYCURSOR);
1.1 misho 6624: yych = *++YYCURSOR;
6625: if (yych <= 'F') {
1.1.1.2 ! misho 6626: if (yych == 'C') goto yy714;
1.1 misho 6627: if (yych <= 'E') goto yy186;
1.1.1.2 ! misho 6628: goto yy715;
1.1 misho 6629: } else {
6630: if (yych <= 'c') {
6631: if (yych <= 'b') goto yy186;
1.1.1.2 ! misho 6632: goto yy714;
1.1 misho 6633: } else {
1.1.1.2 ! misho 6634: if (yych == 'f') goto yy715;
1.1 misho 6635: goto yy186;
6636: }
6637: }
1.1.1.2 ! misho 6638: yy709:
! 6639: YYDEBUG(709, *YYCURSOR);
1.1 misho 6640: yych = *++YYCURSOR;
1.1.1.2 ! misho 6641: if (yych == 'E') goto yy712;
! 6642: if (yych == 'e') goto yy712;
1.1 misho 6643: goto yy186;
1.1.1.2 ! misho 6644: yy710:
! 6645: YYDEBUG(710, *YYCURSOR);
1.1 misho 6646: ++YYCURSOR;
1.1.1.2 ! misho 6647: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 6648: goto yy185;
6649: }
1.1.1.2 ! misho 6650: YYDEBUG(711, *YYCURSOR);
1.1 misho 6651: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 6652: #line 1065 "Zend/zend_language_scanner.l"
1.1 misho 6653: {
6654: return T_DO;
6655: }
1.1.1.2 ! misho 6656: #line 6657 "Zend/zend_language_scanner.c"
! 6657: yy712:
! 6658: YYDEBUG(712, *YYCURSOR);
1.1 misho 6659: ++YYCURSOR;
1.1.1.2 ! misho 6660: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 6661: goto yy185;
6662: }
1.1.1.2 ! misho 6663: YYDEBUG(713, *YYCURSOR);
1.1 misho 6664: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 6665: #line 1013 "Zend/zend_language_scanner.l"
1.1 misho 6666: {
6667: return T_EXIT;
6668: }
1.1.1.2 ! misho 6669: #line 6670 "Zend/zend_language_scanner.c"
! 6670: yy714:
! 6671: YYDEBUG(714, *YYCURSOR);
1.1 misho 6672: yych = *++YYCURSOR;
1.1.1.2 ! misho 6673: if (yych == 'L') goto yy721;
! 6674: if (yych == 'l') goto yy721;
1.1 misho 6675: goto yy186;
1.1.1.2 ! misho 6676: yy715:
! 6677: YYDEBUG(715, *YYCURSOR);
1.1 misho 6678: yych = *++YYCURSOR;
1.1.1.2 ! misho 6679: if (yych == 'A') goto yy716;
1.1 misho 6680: if (yych != 'a') goto yy186;
1.1.1.2 ! misho 6681: yy716:
! 6682: YYDEBUG(716, *YYCURSOR);
1.1 misho 6683: yych = *++YYCURSOR;
1.1.1.2 ! misho 6684: if (yych == 'U') goto yy717;
1.1 misho 6685: if (yych != 'u') goto yy186;
1.1.1.2 ! misho 6686: yy717:
! 6687: YYDEBUG(717, *YYCURSOR);
1.1 misho 6688: yych = *++YYCURSOR;
1.1.1.2 ! misho 6689: if (yych == 'L') goto yy718;
1.1 misho 6690: if (yych != 'l') goto yy186;
1.1.1.2 ! misho 6691: yy718:
! 6692: YYDEBUG(718, *YYCURSOR);
1.1 misho 6693: yych = *++YYCURSOR;
1.1.1.2 ! misho 6694: if (yych == 'T') goto yy719;
1.1 misho 6695: if (yych != 't') goto yy186;
1.1.1.2 ! misho 6696: yy719:
! 6697: YYDEBUG(719, *YYCURSOR);
1.1 misho 6698: ++YYCURSOR;
1.1.1.2 ! misho 6699: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 6700: goto yy185;
6701: }
1.1.1.2 ! misho 6702: YYDEBUG(720, *YYCURSOR);
1.1 misho 6703: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 6704: #line 1113 "Zend/zend_language_scanner.l"
1.1 misho 6705: {
6706: return T_DEFAULT;
6707: }
1.1.1.2 ! misho 6708: #line 6709 "Zend/zend_language_scanner.c"
! 6709: yy721:
! 6710: YYDEBUG(721, *YYCURSOR);
1.1 misho 6711: yych = *++YYCURSOR;
1.1.1.2 ! misho 6712: if (yych == 'A') goto yy722;
1.1 misho 6713: if (yych != 'a') goto yy186;
1.1.1.2 ! misho 6714: yy722:
! 6715: YYDEBUG(722, *YYCURSOR);
1.1 misho 6716: yych = *++YYCURSOR;
1.1.1.2 ! misho 6717: if (yych == 'R') goto yy723;
1.1 misho 6718: if (yych != 'r') goto yy186;
1.1.1.2 ! misho 6719: yy723:
! 6720: YYDEBUG(723, *YYCURSOR);
1.1 misho 6721: yych = *++YYCURSOR;
1.1.1.2 ! misho 6722: if (yych == 'E') goto yy724;
1.1 misho 6723: if (yych != 'e') goto yy186;
1.1.1.2 ! misho 6724: yy724:
! 6725: YYDEBUG(724, *YYCURSOR);
1.1 misho 6726: ++YYCURSOR;
1.1.1.2 ! misho 6727: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 6728: goto yy185;
6729: }
1.1.1.2 ! misho 6730: YYDEBUG(725, *YYCURSOR);
1.1 misho 6731: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 6732: #line 1085 "Zend/zend_language_scanner.l"
1.1 misho 6733: {
6734: return T_DECLARE;
6735: }
1.1.1.2 ! misho 6736: #line 6737 "Zend/zend_language_scanner.c"
! 6737: yy726:
! 6738: YYDEBUG(726, *YYCURSOR);
1.1 misho 6739: yych = *++YYCURSOR;
1.1.1.2 ! misho 6740: if (yych == 'H') goto yy788;
! 6741: if (yych == 'h') goto yy788;
1.1 misho 6742: goto yy186;
1.1.1.2 ! misho 6743: yy727:
! 6744: YYDEBUG(727, *YYCURSOR);
1.1 misho 6745: yych = *++YYCURSOR;
1.1.1.2 ! misho 6746: if (yych == 'S') goto yy782;
! 6747: if (yych == 's') goto yy782;
1.1 misho 6748: goto yy186;
1.1.1.2 ! misho 6749: yy728:
! 6750: YYDEBUG(728, *YYCURSOR);
1.1 misho 6751: yych = *++YYCURSOR;
1.1.1.2 ! misho 6752: if (yych == 'P') goto yy778;
! 6753: if (yych == 'p') goto yy778;
1.1 misho 6754: goto yy186;
1.1.1.2 ! misho 6755: yy729:
! 6756: YYDEBUG(729, *YYCURSOR);
1.1 misho 6757: yych = *++YYCURSOR;
1.1.1.2 ! misho 6758: if (yych == 'D') goto yy744;
! 6759: if (yych == 'd') goto yy744;
1.1 misho 6760: goto yy186;
1.1.1.2 ! misho 6761: yy730:
! 6762: YYDEBUG(730, *YYCURSOR);
1.1 misho 6763: yych = *++YYCURSOR;
1.1.1.2 ! misho 6764: if (yych == 'A') goto yy741;
! 6765: if (yych == 'a') goto yy741;
1.1 misho 6766: goto yy186;
1.1.1.2 ! misho 6767: yy731:
! 6768: YYDEBUG(731, *YYCURSOR);
1.1 misho 6769: yych = *++YYCURSOR;
6770: if (yych <= 'T') {
1.1.1.2 ! misho 6771: if (yych == 'I') goto yy732;
1.1 misho 6772: if (yych <= 'S') goto yy186;
1.1.1.2 ! misho 6773: goto yy733;
1.1 misho 6774: } else {
6775: if (yych <= 'i') {
6776: if (yych <= 'h') goto yy186;
6777: } else {
1.1.1.2 ! misho 6778: if (yych == 't') goto yy733;
1.1 misho 6779: goto yy186;
6780: }
6781: }
1.1.1.2 ! misho 6782: yy732:
! 6783: YYDEBUG(732, *YYCURSOR);
1.1 misho 6784: yych = *++YYCURSOR;
1.1.1.2 ! misho 6785: if (yych == 'T') goto yy739;
! 6786: if (yych == 't') goto yy739;
1.1 misho 6787: goto yy186;
1.1.1.2 ! misho 6788: yy733:
! 6789: YYDEBUG(733, *YYCURSOR);
1.1 misho 6790: yych = *++YYCURSOR;
1.1.1.2 ! misho 6791: if (yych == 'E') goto yy734;
1.1 misho 6792: if (yych != 'e') goto yy186;
1.1.1.2 ! misho 6793: yy734:
! 6794: YYDEBUG(734, *YYCURSOR);
1.1 misho 6795: yych = *++YYCURSOR;
1.1.1.2 ! misho 6796: if (yych == 'N') goto yy735;
1.1 misho 6797: if (yych != 'n') goto yy186;
1.1.1.2 ! misho 6798: yy735:
! 6799: YYDEBUG(735, *YYCURSOR);
1.1 misho 6800: yych = *++YYCURSOR;
1.1.1.2 ! misho 6801: if (yych == 'D') goto yy736;
1.1 misho 6802: if (yych != 'd') goto yy186;
1.1.1.2 ! misho 6803: yy736:
! 6804: YYDEBUG(736, *YYCURSOR);
1.1 misho 6805: yych = *++YYCURSOR;
1.1.1.2 ! misho 6806: if (yych == 'S') goto yy737;
1.1 misho 6807: if (yych != 's') goto yy186;
1.1.1.2 ! misho 6808: yy737:
! 6809: YYDEBUG(737, *YYCURSOR);
1.1 misho 6810: ++YYCURSOR;
1.1.1.2 ! misho 6811: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 6812: goto yy185;
6813: }
1.1.1.2 ! misho 6814: YYDEBUG(738, *YYCURSOR);
1.1 misho 6815: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 6816: #line 1149 "Zend/zend_language_scanner.l"
1.1 misho 6817: {
6818: return T_EXTENDS;
6819: }
1.1.1.2 ! misho 6820: #line 6821 "Zend/zend_language_scanner.c"
! 6821: yy739:
! 6822: YYDEBUG(739, *YYCURSOR);
1.1 misho 6823: ++YYCURSOR;
1.1.1.2 ! misho 6824: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 6825: goto yy185;
6826: }
1.1.1.2 ! misho 6827: YYDEBUG(740, *YYCURSOR);
1.1 misho 6828: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 6829: #line 1009 "Zend/zend_language_scanner.l"
1.1 misho 6830: {
6831: return T_EXIT;
6832: }
1.1.1.2 ! misho 6833: #line 6834 "Zend/zend_language_scanner.c"
! 6834: yy741:
! 6835: YYDEBUG(741, *YYCURSOR);
1.1 misho 6836: yych = *++YYCURSOR;
1.1.1.2 ! misho 6837: if (yych == 'L') goto yy742;
1.1 misho 6838: if (yych != 'l') goto yy186;
1.1.1.2 ! misho 6839: yy742:
! 6840: YYDEBUG(742, *YYCURSOR);
1.1 misho 6841: ++YYCURSOR;
1.1.1.2 ! misho 6842: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 6843: goto yy185;
6844: }
1.1.1.2 ! misho 6845: YYDEBUG(743, *YYCURSOR);
1.1 misho 6846: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 6847: #line 1235 "Zend/zend_language_scanner.l"
1.1 misho 6848: {
6849: return T_EVAL;
6850: }
1.1.1.2 ! misho 6851: #line 6852 "Zend/zend_language_scanner.c"
! 6852: yy744:
! 6853: YYDEBUG(744, *YYCURSOR);
1.1 misho 6854: yych = *++YYCURSOR;
6855: YYDEBUG(-1, yych);
6856: switch (yych) {
6857: case 'D':
1.1.1.2 ! misho 6858: case 'd': goto yy745;
1.1 misho 6859: case 'F':
1.1.1.2 ! misho 6860: case 'f': goto yy746;
1.1 misho 6861: case 'I':
1.1.1.2 ! misho 6862: case 'i': goto yy747;
1.1 misho 6863: case 'S':
1.1.1.2 ! misho 6864: case 's': goto yy748;
1.1 misho 6865: case 'W':
1.1.1.2 ! misho 6866: case 'w': goto yy749;
1.1 misho 6867: default: goto yy186;
6868: }
1.1.1.2 ! misho 6869: yy745:
! 6870: YYDEBUG(745, *YYCURSOR);
1.1 misho 6871: yych = *++YYCURSOR;
1.1.1.2 ! misho 6872: if (yych == 'E') goto yy771;
! 6873: if (yych == 'e') goto yy771;
1.1 misho 6874: goto yy186;
1.1.1.2 ! misho 6875: yy746:
! 6876: YYDEBUG(746, *YYCURSOR);
1.1 misho 6877: yych = *++YYCURSOR;
1.1.1.2 ! misho 6878: if (yych == 'O') goto yy763;
! 6879: if (yych == 'o') goto yy763;
1.1 misho 6880: goto yy186;
1.1.1.2 ! misho 6881: yy747:
! 6882: YYDEBUG(747, *YYCURSOR);
1.1 misho 6883: yych = *++YYCURSOR;
1.1.1.2 ! misho 6884: if (yych == 'F') goto yy761;
! 6885: if (yych == 'f') goto yy761;
1.1 misho 6886: goto yy186;
1.1.1.2 ! misho 6887: yy748:
! 6888: YYDEBUG(748, *YYCURSOR);
1.1 misho 6889: yych = *++YYCURSOR;
1.1.1.2 ! misho 6890: if (yych == 'W') goto yy755;
! 6891: if (yych == 'w') goto yy755;
1.1 misho 6892: goto yy186;
1.1.1.2 ! misho 6893: yy749:
! 6894: YYDEBUG(749, *YYCURSOR);
1.1 misho 6895: yych = *++YYCURSOR;
1.1.1.2 ! misho 6896: if (yych == 'H') goto yy750;
1.1 misho 6897: if (yych != 'h') goto yy186;
1.1.1.2 ! misho 6898: yy750:
! 6899: YYDEBUG(750, *YYCURSOR);
1.1 misho 6900: yych = *++YYCURSOR;
1.1.1.2 ! misho 6901: if (yych == 'I') goto yy751;
1.1 misho 6902: if (yych != 'i') goto yy186;
1.1.1.2 ! misho 6903: yy751:
! 6904: YYDEBUG(751, *YYCURSOR);
1.1 misho 6905: yych = *++YYCURSOR;
1.1.1.2 ! misho 6906: if (yych == 'L') goto yy752;
1.1 misho 6907: if (yych != 'l') goto yy186;
1.1.1.2 ! misho 6908: yy752:
! 6909: YYDEBUG(752, *YYCURSOR);
1.1 misho 6910: yych = *++YYCURSOR;
1.1.1.2 ! misho 6911: if (yych == 'E') goto yy753;
1.1 misho 6912: if (yych != 'e') goto yy186;
1.1.1.2 ! misho 6913: yy753:
! 6914: YYDEBUG(753, *YYCURSOR);
1.1 misho 6915: ++YYCURSOR;
1.1.1.2 ! misho 6916: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 6917: goto yy185;
6918: }
1.1.1.2 ! misho 6919: YYDEBUG(754, *YYCURSOR);
1.1 misho 6920: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 6921: #line 1061 "Zend/zend_language_scanner.l"
1.1 misho 6922: {
6923: return T_ENDWHILE;
6924: }
1.1.1.2 ! misho 6925: #line 6926 "Zend/zend_language_scanner.c"
! 6926: yy755:
! 6927: YYDEBUG(755, *YYCURSOR);
1.1 misho 6928: yych = *++YYCURSOR;
1.1.1.2 ! misho 6929: if (yych == 'I') goto yy756;
1.1 misho 6930: if (yych != 'i') goto yy186;
1.1.1.2 ! misho 6931: yy756:
! 6932: YYDEBUG(756, *YYCURSOR);
1.1 misho 6933: yych = *++YYCURSOR;
1.1.1.2 ! misho 6934: if (yych == 'T') goto yy757;
1.1 misho 6935: if (yych != 't') goto yy186;
1.1.1.2 ! misho 6936: yy757:
! 6937: YYDEBUG(757, *YYCURSOR);
1.1 misho 6938: yych = *++YYCURSOR;
1.1.1.2 ! misho 6939: if (yych == 'C') goto yy758;
1.1 misho 6940: if (yych != 'c') goto yy186;
1.1.1.2 ! misho 6941: yy758:
! 6942: YYDEBUG(758, *YYCURSOR);
1.1 misho 6943: yych = *++YYCURSOR;
1.1.1.2 ! misho 6944: if (yych == 'H') goto yy759;
1.1 misho 6945: if (yych != 'h') goto yy186;
1.1.1.2 ! misho 6946: yy759:
! 6947: YYDEBUG(759, *YYCURSOR);
1.1 misho 6948: ++YYCURSOR;
1.1.1.2 ! misho 6949: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 6950: goto yy185;
6951: }
1.1.1.2 ! misho 6952: YYDEBUG(760, *YYCURSOR);
1.1 misho 6953: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 6954: #line 1105 "Zend/zend_language_scanner.l"
1.1 misho 6955: {
6956: return T_ENDSWITCH;
6957: }
1.1.1.2 ! misho 6958: #line 6959 "Zend/zend_language_scanner.c"
! 6959: yy761:
! 6960: YYDEBUG(761, *YYCURSOR);
1.1 misho 6961: ++YYCURSOR;
1.1.1.2 ! misho 6962: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 6963: goto yy185;
6964: }
1.1.1.2 ! misho 6965: YYDEBUG(762, *YYCURSOR);
1.1 misho 6966: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 6967: #line 1049 "Zend/zend_language_scanner.l"
1.1 misho 6968: {
6969: return T_ENDIF;
6970: }
1.1.1.2 ! misho 6971: #line 6972 "Zend/zend_language_scanner.c"
! 6972: yy763:
! 6973: YYDEBUG(763, *YYCURSOR);
1.1 misho 6974: yych = *++YYCURSOR;
1.1.1.2 ! misho 6975: if (yych == 'R') goto yy764;
1.1 misho 6976: if (yych != 'r') goto yy186;
1.1.1.2 ! misho 6977: yy764:
! 6978: YYDEBUG(764, *YYCURSOR);
1.1 misho 6979: ++YYCURSOR;
6980: if ((yych = *YYCURSOR) <= '^') {
6981: if (yych <= '@') {
1.1.1.2 ! misho 6982: if (yych <= '/') goto yy765;
1.1 misho 6983: if (yych <= '9') goto yy185;
6984: } else {
1.1.1.2 ! misho 6985: if (yych == 'E') goto yy766;
1.1 misho 6986: if (yych <= 'Z') goto yy185;
6987: }
6988: } else {
6989: if (yych <= 'd') {
6990: if (yych != '`') goto yy185;
6991: } else {
1.1.1.2 ! misho 6992: if (yych <= 'e') goto yy766;
1.1 misho 6993: if (yych <= 'z') goto yy185;
6994: if (yych >= 0x7F) goto yy185;
6995: }
6996: }
1.1.1.2 ! misho 6997: yy765:
! 6998: YYDEBUG(765, *YYCURSOR);
1.1 misho 6999: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 7000: #line 1073 "Zend/zend_language_scanner.l"
1.1 misho 7001: {
7002: return T_ENDFOR;
7003: }
1.1.1.2 ! misho 7004: #line 7005 "Zend/zend_language_scanner.c"
! 7005: yy766:
! 7006: YYDEBUG(766, *YYCURSOR);
1.1 misho 7007: yych = *++YYCURSOR;
1.1.1.2 ! misho 7008: if (yych == 'A') goto yy767;
1.1 misho 7009: if (yych != 'a') goto yy186;
1.1.1.2 ! misho 7010: yy767:
! 7011: YYDEBUG(767, *YYCURSOR);
1.1 misho 7012: yych = *++YYCURSOR;
1.1.1.2 ! misho 7013: if (yych == 'C') goto yy768;
1.1 misho 7014: if (yych != 'c') goto yy186;
1.1.1.2 ! misho 7015: yy768:
! 7016: YYDEBUG(768, *YYCURSOR);
1.1 misho 7017: yych = *++YYCURSOR;
1.1.1.2 ! misho 7018: if (yych == 'H') goto yy769;
1.1 misho 7019: if (yych != 'h') goto yy186;
1.1.1.2 ! misho 7020: yy769:
! 7021: YYDEBUG(769, *YYCURSOR);
1.1 misho 7022: ++YYCURSOR;
1.1.1.2 ! misho 7023: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 7024: goto yy185;
7025: }
1.1.1.2 ! misho 7026: YYDEBUG(770, *YYCURSOR);
1.1 misho 7027: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 7028: #line 1081 "Zend/zend_language_scanner.l"
1.1 misho 7029: {
7030: return T_ENDFOREACH;
7031: }
1.1.1.2 ! misho 7032: #line 7033 "Zend/zend_language_scanner.c"
! 7033: yy771:
! 7034: YYDEBUG(771, *YYCURSOR);
1.1 misho 7035: yych = *++YYCURSOR;
1.1.1.2 ! misho 7036: if (yych == 'C') goto yy772;
1.1 misho 7037: if (yych != 'c') goto yy186;
1.1.1.2 ! misho 7038: yy772:
! 7039: YYDEBUG(772, *YYCURSOR);
1.1 misho 7040: yych = *++YYCURSOR;
1.1.1.2 ! misho 7041: if (yych == 'L') goto yy773;
1.1 misho 7042: if (yych != 'l') goto yy186;
1.1.1.2 ! misho 7043: yy773:
! 7044: YYDEBUG(773, *YYCURSOR);
1.1 misho 7045: yych = *++YYCURSOR;
1.1.1.2 ! misho 7046: if (yych == 'A') goto yy774;
1.1 misho 7047: if (yych != 'a') goto yy186;
1.1.1.2 ! misho 7048: yy774:
! 7049: YYDEBUG(774, *YYCURSOR);
1.1 misho 7050: yych = *++YYCURSOR;
1.1.1.2 ! misho 7051: if (yych == 'R') goto yy775;
1.1 misho 7052: if (yych != 'r') goto yy186;
1.1.1.2 ! misho 7053: yy775:
! 7054: YYDEBUG(775, *YYCURSOR);
1.1 misho 7055: yych = *++YYCURSOR;
1.1.1.2 ! misho 7056: if (yych == 'E') goto yy776;
1.1 misho 7057: if (yych != 'e') goto yy186;
1.1.1.2 ! misho 7058: yy776:
! 7059: YYDEBUG(776, *YYCURSOR);
1.1 misho 7060: ++YYCURSOR;
1.1.1.2 ! misho 7061: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 7062: goto yy185;
7063: }
1.1.1.2 ! misho 7064: YYDEBUG(777, *YYCURSOR);
1.1 misho 7065: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 7066: #line 1089 "Zend/zend_language_scanner.l"
1.1 misho 7067: {
7068: return T_ENDDECLARE;
7069: }
1.1.1.2 ! misho 7070: #line 7071 "Zend/zend_language_scanner.c"
! 7071: yy778:
! 7072: YYDEBUG(778, *YYCURSOR);
1.1 misho 7073: yych = *++YYCURSOR;
1.1.1.2 ! misho 7074: if (yych == 'T') goto yy779;
1.1 misho 7075: if (yych != 't') goto yy186;
1.1.1.2 ! misho 7076: yy779:
! 7077: YYDEBUG(779, *YYCURSOR);
1.1 misho 7078: yych = *++YYCURSOR;
1.1.1.2 ! misho 7079: if (yych == 'Y') goto yy780;
1.1 misho 7080: if (yych != 'y') goto yy186;
1.1.1.2 ! misho 7081: yy780:
! 7082: YYDEBUG(780, *YYCURSOR);
1.1 misho 7083: ++YYCURSOR;
1.1.1.2 ! misho 7084: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 7085: goto yy185;
7086: }
1.1.1.2 ! misho 7087: YYDEBUG(781, *YYCURSOR);
1.1 misho 7088: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 7089: #line 1275 "Zend/zend_language_scanner.l"
1.1 misho 7090: {
7091: return T_EMPTY;
7092: }
1.1.1.2 ! misho 7093: #line 7094 "Zend/zend_language_scanner.c"
! 7094: yy782:
! 7095: YYDEBUG(782, *YYCURSOR);
1.1 misho 7096: yych = *++YYCURSOR;
1.1.1.2 ! misho 7097: if (yych == 'E') goto yy783;
1.1 misho 7098: if (yych != 'e') goto yy186;
1.1.1.2 ! misho 7099: yy783:
! 7100: YYDEBUG(783, *YYCURSOR);
1.1 misho 7101: ++YYCURSOR;
7102: if ((yych = *YYCURSOR) <= '^') {
7103: if (yych <= '@') {
1.1.1.2 ! misho 7104: if (yych <= '/') goto yy784;
1.1 misho 7105: if (yych <= '9') goto yy185;
7106: } else {
1.1.1.2 ! misho 7107: if (yych == 'I') goto yy785;
1.1 misho 7108: if (yych <= 'Z') goto yy185;
7109: }
7110: } else {
7111: if (yych <= 'h') {
7112: if (yych != '`') goto yy185;
7113: } else {
1.1.1.2 ! misho 7114: if (yych <= 'i') goto yy785;
1.1 misho 7115: if (yych <= 'z') goto yy185;
7116: if (yych >= 0x7F) goto yy185;
7117: }
7118: }
1.1.1.2 ! misho 7119: yy784:
! 7120: YYDEBUG(784, *YYCURSOR);
1.1 misho 7121: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 7122: #line 1053 "Zend/zend_language_scanner.l"
1.1 misho 7123: {
7124: return T_ELSE;
7125: }
1.1.1.2 ! misho 7126: #line 7127 "Zend/zend_language_scanner.c"
! 7127: yy785:
! 7128: YYDEBUG(785, *YYCURSOR);
1.1 misho 7129: yych = *++YYCURSOR;
1.1.1.2 ! misho 7130: if (yych == 'F') goto yy786;
1.1 misho 7131: if (yych != 'f') goto yy186;
1.1.1.2 ! misho 7132: yy786:
! 7133: YYDEBUG(786, *YYCURSOR);
1.1 misho 7134: ++YYCURSOR;
1.1.1.2 ! misho 7135: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 7136: goto yy185;
7137: }
1.1.1.2 ! misho 7138: YYDEBUG(787, *YYCURSOR);
1.1 misho 7139: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 7140: #line 1045 "Zend/zend_language_scanner.l"
1.1 misho 7141: {
7142: return T_ELSEIF;
7143: }
1.1.1.2 ! misho 7144: #line 7145 "Zend/zend_language_scanner.c"
! 7145: yy788:
! 7146: YYDEBUG(788, *YYCURSOR);
1.1 misho 7147: yych = *++YYCURSOR;
1.1.1.2 ! misho 7148: if (yych == 'O') goto yy789;
1.1 misho 7149: if (yych != 'o') goto yy186;
1.1.1.2 ! misho 7150: yy789:
! 7151: YYDEBUG(789, *YYCURSOR);
1.1 misho 7152: ++YYCURSOR;
1.1.1.2 ! misho 7153: if (yybm[0+(yych = *YYCURSOR)] & 4) {
1.1 misho 7154: goto yy185;
7155: }
1.1.1.2 ! misho 7156: YYDEBUG(790, *YYCURSOR);
1.1 misho 7157: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 7158: #line 1129 "Zend/zend_language_scanner.l"
1.1 misho 7159: {
7160: return T_ECHO;
7161: }
1.1.1.2 ! misho 7162: #line 7163 "Zend/zend_language_scanner.c"
1.1 misho 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: };
1.1.1.2 ! misho 7201: YYDEBUG(791, *YYCURSOR);
1.1 misho 7202: YYFILL(2);
7203: yych = *YYCURSOR;
7204: if (yych <= '-') {
7205: if (yych <= '\r') {
1.1.1.2 ! misho 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;
1.1 misho 7213: }
7214: } else {
7215: if (yych <= '_') {
1.1.1.2 ! misho 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;
1.1 misho 7225: }
7226: }
1.1.1.2 ! misho 7227: yy793:
! 7228: YYDEBUG(793, *YYCURSOR);
1.1 misho 7229: ++YYCURSOR;
7230: yych = *YYCURSOR;
1.1.1.2 ! misho 7231: goto yy805;
! 7232: yy794:
! 7233: YYDEBUG(794, *YYCURSOR);
1.1 misho 7234: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 7235: #line 1162 "Zend/zend_language_scanner.l"
1.1 misho 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: }
1.1.1.2 ! misho 7243: #line 7244 "Zend/zend_language_scanner.c"
! 7244: yy795:
! 7245: YYDEBUG(795, *YYCURSOR);
1.1 misho 7246: ++YYCURSOR;
1.1.1.2 ! misho 7247: if ((yych = *YYCURSOR) == '>') goto yy802;
! 7248: yy796:
! 7249: YYDEBUG(796, *YYCURSOR);
1.1 misho 7250: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 7251: #line 1181 "Zend/zend_language_scanner.l"
1.1 misho 7252: {
7253: yyless(0);
7254: yy_pop_state(TSRMLS_C);
7255: goto restart;
7256: }
1.1.1.2 ! misho 7257: #line 7258 "Zend/zend_language_scanner.c"
! 7258: yy797:
! 7259: YYDEBUG(797, *YYCURSOR);
1.1 misho 7260: ++YYCURSOR;
7261: yych = *YYCURSOR;
1.1.1.2 ! misho 7262: goto yy801;
! 7263: yy798:
! 7264: YYDEBUG(798, *YYCURSOR);
1.1 misho 7265: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 7266: #line 1174 "Zend/zend_language_scanner.l"
1.1 misho 7267: {
7268: yy_pop_state(TSRMLS_C);
7269: zend_copy_value(zendlval, yytext, yyleng);
7270: zendlval->type = IS_STRING;
7271: return T_STRING;
7272: }
1.1.1.2 ! misho 7273: #line 7274 "Zend/zend_language_scanner.c"
! 7274: yy799:
! 7275: YYDEBUG(799, *YYCURSOR);
1.1 misho 7276: yych = *++YYCURSOR;
1.1.1.2 ! misho 7277: goto yy796;
! 7278: yy800:
! 7279: YYDEBUG(800, *YYCURSOR);
1.1 misho 7280: ++YYCURSOR;
7281: YYFILL(1);
7282: yych = *YYCURSOR;
1.1.1.2 ! misho 7283: yy801:
! 7284: YYDEBUG(801, *YYCURSOR);
1.1 misho 7285: if (yybm[0+yych] & 64) {
1.1.1.2 ! misho 7286: goto yy800;
1.1 misho 7287: }
1.1.1.2 ! misho 7288: goto yy798;
! 7289: yy802:
! 7290: YYDEBUG(802, *YYCURSOR);
1.1 misho 7291: ++YYCURSOR;
1.1.1.2 ! misho 7292: YYDEBUG(803, *YYCURSOR);
1.1 misho 7293: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 7294: #line 1170 "Zend/zend_language_scanner.l"
1.1 misho 7295: {
7296: return T_OBJECT_OPERATOR;
7297: }
1.1.1.2 ! misho 7298: #line 7299 "Zend/zend_language_scanner.c"
! 7299: yy804:
! 7300: YYDEBUG(804, *YYCURSOR);
1.1 misho 7301: ++YYCURSOR;
7302: YYFILL(1);
7303: yych = *YYCURSOR;
1.1.1.2 ! misho 7304: yy805:
! 7305: YYDEBUG(805, *YYCURSOR);
1.1 misho 7306: if (yybm[0+yych] & 128) {
1.1.1.2 ! misho 7307: goto yy804;
1.1 misho 7308: }
1.1.1.2 ! misho 7309: goto yy794;
1.1 misho 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: };
1.1.1.2 ! misho 7348: YYDEBUG(806, *YYCURSOR);
1.1 misho 7349: YYFILL(2);
7350: yych = *YYCURSOR;
7351: if (yych <= '_') {
1.1.1.2 ! misho 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;
1.1 misho 7359: }
1.1.1.2 ! misho 7360: yy808:
! 7361: YYDEBUG(808, *YYCURSOR);
1.1 misho 7362: ++YYCURSOR;
7363: yych = *YYCURSOR;
1.1.1.2 ! misho 7364: goto yy813;
! 7365: yy809:
! 7366: YYDEBUG(809, *YYCURSOR);
1.1 misho 7367: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 7368: #line 1457 "Zend/zend_language_scanner.l"
1.1 misho 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: }
1.1.1.2 ! misho 7376: #line 7377 "Zend/zend_language_scanner.c"
! 7377: yy810:
! 7378: YYDEBUG(810, *YYCURSOR);
1.1 misho 7379: ++YYCURSOR;
1.1.1.2 ! misho 7380: YYDEBUG(811, *YYCURSOR);
1.1 misho 7381: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 7382: #line 1466 "Zend/zend_language_scanner.l"
1.1 misho 7383: {
7384: yyless(0);
7385: yy_pop_state(TSRMLS_C);
7386: yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
7387: goto restart;
7388: }
1.1.1.2 ! misho 7389: #line 7390 "Zend/zend_language_scanner.c"
! 7390: yy812:
! 7391: YYDEBUG(812, *YYCURSOR);
1.1 misho 7392: ++YYCURSOR;
7393: YYFILL(1);
7394: yych = *YYCURSOR;
1.1.1.2 ! misho 7395: yy813:
! 7396: YYDEBUG(813, *YYCURSOR);
1.1 misho 7397: if (yybm[0+yych] & 128) {
1.1.1.2 ! misho 7398: goto yy812;
1.1 misho 7399: }
1.1.1.2 ! misho 7400: goto yy809;
1.1 misho 7401: }
7402: /* *********************************** */
7403: yyc_ST_NOWDOC:
1.1.1.2 ! misho 7404: YYDEBUG(814, *YYCURSOR);
1.1 misho 7405: YYFILL(1);
7406: yych = *YYCURSOR;
1.1.1.2 ! misho 7407: YYDEBUG(816, *YYCURSOR);
1.1 misho 7408: ++YYCURSOR;
1.1.1.2 ! misho 7409: YYDEBUG(817, *YYCURSOR);
1.1 misho 7410: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 7411: #line 2348 "Zend/zend_language_scanner.l"
1.1 misho 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: }
1.1.1.2 ! misho 7466: #line 7467 "Zend/zend_language_scanner.c"
1.1 misho 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,
1.1.1.2 ! misho 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,
1.1 misho 7503: };
1.1.1.2 ! misho 7504: YYDEBUG(818, *YYCURSOR);
1.1 misho 7505: YYFILL(3);
7506: yych = *YYCURSOR;
7507: if (yych <= '/') {
7508: if (yych <= ' ') {
7509: if (yych <= '\f') {
1.1.1.2 ! misho 7510: if (yych <= 0x08) goto yy832;
! 7511: if (yych <= '\n') goto yy828;
! 7512: goto yy832;
1.1 misho 7513: } else {
1.1.1.2 ! misho 7514: if (yych <= '\r') goto yy828;
! 7515: if (yych <= 0x1F) goto yy832;
! 7516: goto yy828;
1.1 misho 7517: }
7518: } else {
7519: if (yych <= '$') {
1.1.1.2 ! misho 7520: if (yych <= '"') goto yy827;
! 7521: if (yych <= '#') goto yy828;
! 7522: goto yy823;
1.1 misho 7523: } else {
1.1.1.2 ! misho 7524: if (yych == '\'') goto yy828;
! 7525: goto yy827;
1.1 misho 7526: }
7527: }
7528: } else {
7529: if (yych <= '\\') {
7530: if (yych <= '@') {
1.1.1.2 ! misho 7531: if (yych <= '0') goto yy820;
! 7532: if (yych <= '9') goto yy822;
! 7533: goto yy827;
1.1 misho 7534: } else {
1.1.1.2 ! misho 7535: if (yych <= 'Z') goto yy830;
! 7536: if (yych <= '[') goto yy827;
! 7537: goto yy828;
1.1 misho 7538: }
7539: } else {
7540: if (yych <= '_') {
1.1.1.2 ! misho 7541: if (yych <= ']') goto yy825;
! 7542: if (yych <= '^') goto yy827;
! 7543: goto yy830;
1.1 misho 7544: } else {
1.1.1.2 ! misho 7545: if (yych <= '`') goto yy827;
! 7546: if (yych <= 'z') goto yy830;
! 7547: if (yych <= '~') goto yy827;
! 7548: goto yy830;
1.1 misho 7549: }
7550: }
7551: }
1.1.1.2 ! misho 7552: yy820:
! 7553: YYDEBUG(820, *YYCURSOR);
1.1 misho 7554: yyaccept = 0;
7555: yych = *(YYMARKER = ++YYCURSOR);
7556: if (yych <= 'W') {
1.1.1.2 ! misho 7557: if (yych <= '9') {
! 7558: if (yych >= '0') goto yy844;
! 7559: } else {
! 7560: if (yych == 'B') goto yy841;
! 7561: }
1.1 misho 7562: } else {
1.1.1.2 ! misho 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: }
1.1 misho 7569: }
1.1.1.2 ! misho 7570: yy821:
! 7571: YYDEBUG(821, *YYCURSOR);
1.1 misho 7572: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 7573: #line 1544 "Zend/zend_language_scanner.l"
1.1 misho 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: }
1.1.1.2 ! misho 7585: #line 7586 "Zend/zend_language_scanner.c"
! 7586: yy822:
! 7587: YYDEBUG(822, *YYCURSOR);
1.1 misho 7588: yych = *++YYCURSOR;
1.1.1.2 ! misho 7589: goto yy840;
! 7590: yy823:
! 7591: YYDEBUG(823, *YYCURSOR);
1.1 misho 7592: ++YYCURSOR;
7593: if ((yych = *YYCURSOR) <= '_') {
1.1.1.2 ! misho 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;
1.1 misho 7601: }
1.1.1.2 ! misho 7602: yy824:
! 7603: YYDEBUG(824, *YYCURSOR);
1.1 misho 7604: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 7605: #line 1876 "Zend/zend_language_scanner.l"
1.1 misho 7606: {
7607: /* Only '[' can be valid, but returning other tokens will allow a more explicit parse error */
7608: return yytext[0];
7609: }
1.1.1.2 ! misho 7610: #line 7611 "Zend/zend_language_scanner.c"
! 7611: yy825:
! 7612: YYDEBUG(825, *YYCURSOR);
1.1 misho 7613: ++YYCURSOR;
1.1.1.2 ! misho 7614: YYDEBUG(826, *YYCURSOR);
1.1 misho 7615: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 7616: #line 1871 "Zend/zend_language_scanner.l"
1.1 misho 7617: {
7618: yy_pop_state(TSRMLS_C);
7619: return ']';
7620: }
1.1.1.2 ! misho 7621: #line 7622 "Zend/zend_language_scanner.c"
! 7622: yy827:
! 7623: YYDEBUG(827, *YYCURSOR);
1.1 misho 7624: yych = *++YYCURSOR;
1.1.1.2 ! misho 7625: goto yy824;
! 7626: yy828:
! 7627: YYDEBUG(828, *YYCURSOR);
1.1 misho 7628: ++YYCURSOR;
1.1.1.2 ! misho 7629: YYDEBUG(829, *YYCURSOR);
1.1 misho 7630: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 7631: #line 1881 "Zend/zend_language_scanner.l"
1.1 misho 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: }
1.1.1.2 ! misho 7638: #line 7639 "Zend/zend_language_scanner.c"
! 7639: yy830:
! 7640: YYDEBUG(830, *YYCURSOR);
1.1 misho 7641: ++YYCURSOR;
7642: yych = *YYCURSOR;
1.1.1.2 ! misho 7643: goto yy835;
! 7644: yy831:
! 7645: YYDEBUG(831, *YYCURSOR);
1.1 misho 7646: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 7647: #line 1888 "Zend/zend_language_scanner.l"
1.1 misho 7648: {
7649: zend_copy_value(zendlval, yytext, yyleng);
7650: zendlval->type = IS_STRING;
7651: return T_STRING;
7652: }
1.1.1.2 ! misho 7653: #line 7654 "Zend/zend_language_scanner.c"
! 7654: yy832:
! 7655: YYDEBUG(832, *YYCURSOR);
1.1 misho 7656: ++YYCURSOR;
1.1.1.2 ! misho 7657: YYDEBUG(833, *YYCURSOR);
1.1 misho 7658: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 7659: #line 2404 "Zend/zend_language_scanner.l"
1.1 misho 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: }
1.1.1.2 ! misho 7668: #line 7669 "Zend/zend_language_scanner.c"
! 7669: yy834:
! 7670: YYDEBUG(834, *YYCURSOR);
1.1 misho 7671: ++YYCURSOR;
7672: YYFILL(1);
7673: yych = *YYCURSOR;
1.1.1.2 ! misho 7674: yy835:
! 7675: YYDEBUG(835, *YYCURSOR);
! 7676: if (yybm[0+yych] & 16) {
! 7677: goto yy834;
1.1 misho 7678: }
1.1.1.2 ! misho 7679: goto yy831;
! 7680: yy836:
! 7681: YYDEBUG(836, *YYCURSOR);
1.1 misho 7682: ++YYCURSOR;
7683: YYFILL(1);
7684: yych = *YYCURSOR;
1.1.1.2 ! misho 7685: YYDEBUG(837, *YYCURSOR);
1.1 misho 7686: if (yych <= '^') {
7687: if (yych <= '9') {
1.1.1.2 ! misho 7688: if (yych >= '0') goto yy836;
1.1 misho 7689: } else {
1.1.1.2 ! misho 7690: if (yych <= '@') goto yy838;
! 7691: if (yych <= 'Z') goto yy836;
1.1 misho 7692: }
7693: } else {
7694: if (yych <= '`') {
1.1.1.2 ! misho 7695: if (yych <= '_') goto yy836;
1.1 misho 7696: } else {
1.1.1.2 ! misho 7697: if (yych <= 'z') goto yy836;
! 7698: if (yych >= 0x7F) goto yy836;
1.1 misho 7699: }
7700: }
1.1.1.2 ! misho 7701: yy838:
! 7702: YYDEBUG(838, *YYCURSOR);
1.1 misho 7703: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 7704: #line 1865 "Zend/zend_language_scanner.l"
1.1 misho 7705: {
7706: zend_copy_value(zendlval, (yytext+1), (yyleng-1));
7707: zendlval->type = IS_STRING;
7708: return T_VARIABLE;
7709: }
1.1.1.2 ! misho 7710: #line 7711 "Zend/zend_language_scanner.c"
! 7711: yy839:
! 7712: YYDEBUG(839, *YYCURSOR);
1.1 misho 7713: ++YYCURSOR;
7714: YYFILL(1);
7715: yych = *YYCURSOR;
1.1.1.2 ! misho 7716: yy840:
! 7717: YYDEBUG(840, *YYCURSOR);
! 7718: if (yybm[0+yych] & 32) {
! 7719: goto yy839;
1.1 misho 7720: }
1.1.1.2 ! misho 7721: goto yy821;
! 7722: yy841:
! 7723: YYDEBUG(841, *YYCURSOR);
1.1 misho 7724: yych = *++YYCURSOR;
7725: if (yybm[0+yych] & 128) {
1.1.1.2 ! misho 7726: goto yy849;
1.1 misho 7727: }
1.1.1.2 ! misho 7728: yy842:
! 7729: YYDEBUG(842, *YYCURSOR);
1.1 misho 7730: YYCURSOR = YYMARKER;
1.1.1.2 ! misho 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);
1.1 misho 7741: ++YYCURSOR;
7742: YYFILL(1);
7743: yych = *YYCURSOR;
1.1.1.2 ! misho 7744: YYDEBUG(845, *YYCURSOR);
! 7745: if (yych <= '/') goto yy846;
! 7746: if (yych <= '9') goto yy844;
! 7747: yy846:
! 7748: YYDEBUG(846, *YYCURSOR);
1.1 misho 7749: yyleng = YYCURSOR - SCNG(yy_text);
1.1.1.2 ! misho 7750: #line 1556 "Zend/zend_language_scanner.l"
1.1 misho 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: }
1.1.1.2 ! misho 7757: #line 7758 "Zend/zend_language_scanner.c"
! 7758: yy847:
! 7759: YYDEBUG(847, *YYCURSOR);
1.1 misho 7760: ++YYCURSOR;
7761: YYFILL(1);
7762: yych = *YYCURSOR;
1.1.1.2 ! misho 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);
1.1 misho 7774: if (yybm[0+yych] & 128) {
1.1.1.2 ! misho 7775: goto yy849;
1.1 misho 7776: }
1.1.1.2 ! misho 7777: goto yy846;
1.1 misho 7778: }
7779: }
1.1.1.2 ! misho 7780: #line 2413 "Zend/zend_language_scanner.l"
1.1 misho 7781:
7782: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>