You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

8958 lines
206 KiB

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