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.

8721 lines
200 KiB

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