Coverage Report

Created: 2026-01-18 06:46

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/php-src/Zend/zend_language_scanner.c
Line
Count
Source
1
/* Generated by re2c 1.3 */
2
#line 1 "Zend/zend_language_scanner.l"
3
/*
4
   +----------------------------------------------------------------------+
5
   | Zend Engine                                                          |
6
   +----------------------------------------------------------------------+
7
   | Copyright (c) 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@php.net>                                 |
22
   |          Zeev Suraski <zeev@php.net>                                 |
23
   +----------------------------------------------------------------------+
24
*/
25
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
32
#include "zend_language_scanner_defs.h"
33
34
#include <errno.h>
35
#include <stdint.h>
36
#include "zend.h"
37
#ifdef ZEND_WIN32
38
# include <Winuser.h>
39
#endif
40
#include "zend_alloc.h"
41
#include <zend_language_parser.h>
42
#include "zend_compile.h"
43
#include "zend_language_scanner.h"
44
#include "zend_highlight.h"
45
#include "zend_constants.h"
46
#include "zend_variables.h"
47
#include "zend_operators.h"
48
#include "zend_API.h"
49
#include "zend_strtod.h"
50
#include "zend_exceptions.h"
51
#include "zend_virtual_cwd.h"
52
53
0
#define YYCTYPE   unsigned char
54
0
#define YYFILL(n) { if ((YYCURSOR + n) >= (YYLIMIT + ZEND_MMAP_AHEAD)) { return 0; } }
55
0
#define YYCURSOR  SCNG(yy_cursor)
56
0
#define YYLIMIT   SCNG(yy_limit)
57
0
#define YYMARKER  SCNG(yy_marker)
58
59
0
#define YYGETCONDITION()  SCNG(yy_state)
60
0
#define YYSETCONDITION(s) SCNG(yy_state) = s
61
62
#define STATE(name)  yyc##name
63
64
/* emulate flex constructs */
65
0
#define BEGIN(state) YYSETCONDITION(STATE(state))
66
0
#define YYSTATE      YYGETCONDITION()
67
0
#define yytext       ((char*)SCNG(yy_text))
68
0
#define yyleng       SCNG(yy_leng)
69
0
#define yyless(x)    do { YYCURSOR = (unsigned char*)yytext + x; \
70
0
                          yyleng   = (unsigned int)x; } while(0)
71
#define yymore()     goto yymore_restart
72
73
/* perform sanity check. If this message is triggered you should
74
   increase the ZEND_MMAP_AHEAD value in the zend_streams.h file */
75
#define YYMAXFILL 16
76
77
#if ZEND_MMAP_AHEAD < YYMAXFILL
78
# error ZEND_MMAP_AHEAD should be greater than or equal to YYMAXFILL
79
#endif
80
81
#include <stdarg.h>
82
83
#ifdef HAVE_UNISTD_H
84
# include <unistd.h>
85
#endif
86
87
/* Globals Macros */
88
19.1k
#define SCNG  LANG_SCNG
89
#ifdef ZTS
90
ZEND_API ts_rsrc_id language_scanner_globals_id;
91
ZEND_API size_t language_scanner_globals_offset;
92
#else
93
ZEND_API zend_php_scanner_globals language_scanner_globals;
94
#endif
95
96
0
#define HANDLE_NEWLINES(s, l)                         \
97
0
do {                                     \
98
0
  char *p = (s), *boundary = p+(l);                     \
99
0
                                        \
100
0
  while (p<boundary) {                           \
101
0
    if (*p == '\n' || (*p == '\r' && (*(p+1) != '\n'))) {         \
102
0
      CG(zend_lineno)++;                          \
103
0
    }                                   \
104
0
    p++;                                  \
105
0
  }                                     \
106
0
} while (0)
107
108
0
#define HANDLE_NEWLINE(c) \
109
0
{ \
110
0
  if (c == '\n' || c == '\r') { \
111
0
    CG(zend_lineno)++; \
112
0
  } \
113
0
}
114
115
/* To save initial string length after scanning to first variable */
116
0
#define SET_DOUBLE_QUOTES_SCANNED_LENGTH(len) SCNG(scanned_string_len) = (len)
117
0
#define GET_DOUBLE_QUOTES_SCANNED_LENGTH()    SCNG(scanned_string_len)
118
119
0
#define IS_LABEL_START(c) (((c) >= 'a' && (c) <= 'z') || ((c) >= 'A' && (c) <= 'Z') || (c) == '_' || (c) >= 0x80)
120
0
#define IS_LABEL_SUCCESSOR(c) (((c) >= 'a' && (c) <= 'z') || ((c) >= 'A' && (c) <= 'Z') || ((c) >= '0' && (c) <= '9') || (c) == '_' || (c) >= 0x80)
121
122
0
#define ZEND_IS_OCT(c)  ((c)>='0' && (c)<='7')
123
0
#define ZEND_IS_HEX(c)  (((c)>='0' && (c)<='9') || ((c)>='a' && (c)<='f') || ((c)>='A' && (c)<='F'))
124
125
126
static void strip_underscores(char *str, size_t *len)
127
0
{
128
0
  char *src = str, *dest = str;
129
0
  while (*src != '\0') {
130
0
    if (*src != '_') {
131
0
      *dest = *src;
132
0
      dest++;
133
0
    } else {
134
0
      --(*len);
135
0
    }
136
0
    src++;
137
0
  }
138
0
  *dest = '\0';
139
0
}
140
141
static size_t encoding_filter_script_to_internal(unsigned char **to, size_t *to_length, const unsigned char *from, size_t from_length)
142
0
{
143
0
  const zend_encoding *internal_encoding = zend_multibyte_get_internal_encoding();
144
0
  ZEND_ASSERT(internal_encoding);
145
0
  return zend_multibyte_encoding_converter(to, to_length, from, from_length, internal_encoding, LANG_SCNG(script_encoding));
146
0
}
147
148
static size_t encoding_filter_script_to_intermediate(unsigned char **to, size_t *to_length, const unsigned char *from, size_t from_length)
149
0
{
150
0
  return zend_multibyte_encoding_converter(to, to_length, from, from_length, zend_multibyte_encoding_utf8, LANG_SCNG(script_encoding));
151
0
}
152
153
static size_t encoding_filter_intermediate_to_script(unsigned char **to, size_t *to_length, const unsigned char *from, size_t from_length)
154
0
{
155
0
  return zend_multibyte_encoding_converter(to, to_length, from, from_length,
156
0
LANG_SCNG(script_encoding), zend_multibyte_encoding_utf8);
157
0
}
158
159
static size_t encoding_filter_intermediate_to_internal(unsigned char **to, size_t *to_length, const unsigned char *from, size_t from_length)
160
0
{
161
0
  const zend_encoding *internal_encoding = zend_multibyte_get_internal_encoding();
162
0
  ZEND_ASSERT(internal_encoding);
163
0
  return zend_multibyte_encoding_converter(to, to_length, from, from_length,
164
0
internal_encoding, zend_multibyte_encoding_utf8);
165
0
}
166
167
168
static void _yy_push_state(int new_state)
169
0
{
170
0
  zend_stack_push(&SCNG(state_stack), (void *) &YYGETCONDITION());
171
0
  YYSETCONDITION(new_state);
172
0
}
173
174
0
#define yy_push_state(state_and_tsrm) _yy_push_state(yyc##state_and_tsrm)
175
176
static void yy_pop_state(void)
177
0
{
178
0
  int *stack_state = zend_stack_top(&SCNG(state_stack));
179
0
  YYSETCONDITION(*stack_state);
180
0
  zend_stack_del_top(&SCNG(state_stack));
181
0
}
182
183
static void yy_scan_buffer(char *str, size_t len)
184
0
{
185
0
  YYCURSOR       = (YYCTYPE*)str;
186
0
  YYLIMIT        = YYCURSOR + len;
187
0
  if (!SCNG(yy_start)) {
188
0
    SCNG(yy_start) = YYCURSOR;
189
0
  }
190
0
}
191
192
void startup_scanner(void)
193
1.74k
{
194
1.74k
  CG(parse_error) = 0;
195
1.74k
  CG(doc_comment) = NULL;
196
1.74k
  CG(extra_fn_flags) = 0;
197
1.74k
  zend_stack_init(&SCNG(state_stack), sizeof(int));
198
1.74k
  zend_stack_init(&SCNG(nest_location_stack), sizeof(zend_nest_location));
199
1.74k
  zend_ptr_stack_init(&SCNG(heredoc_label_stack));
200
1.74k
  SCNG(heredoc_scan_ahead) = 0;
201
1.74k
}
202
203
0
static void heredoc_label_dtor(zend_heredoc_label *heredoc_label) {
204
0
    efree(heredoc_label->label);
205
0
}
206
207
void shutdown_scanner(void)
208
1.74k
{
209
1.74k
  CG(parse_error) = 0;
210
1.74k
  RESET_DOC_COMMENT();
211
1.74k
  zend_stack_destroy(&SCNG(state_stack));
212
1.74k
  zend_stack_destroy(&SCNG(nest_location_stack));
213
1.74k
  zend_ptr_stack_clean(&SCNG(heredoc_label_stack), (void (*)(void *)) &heredoc_label_dtor, 1);
214
1.74k
  zend_ptr_stack_destroy(&SCNG(heredoc_label_stack));
215
1.74k
  SCNG(heredoc_scan_ahead) = 0;
216
1.74k
  SCNG(on_event) = NULL;
217
1.74k
  SCNG(on_event_context) = NULL;
218
1.74k
}
219
220
ZEND_API void zend_save_lexical_state(zend_lex_state *lex_state)
221
0
{
222
0
  lex_state->yy_leng   = SCNG(yy_leng);
223
0
  lex_state->yy_start  = SCNG(yy_start);
224
0
  lex_state->yy_text   = SCNG(yy_text);
225
0
  lex_state->yy_cursor = SCNG(yy_cursor);
226
0
  lex_state->yy_marker = SCNG(yy_marker);
227
0
  lex_state->yy_limit  = SCNG(yy_limit);
228
229
0
  lex_state->state_stack = SCNG(state_stack);
230
0
  zend_stack_init(&SCNG(state_stack), sizeof(int));
231
232
0
  lex_state->nest_location_stack = SCNG(nest_location_stack);
233
0
  zend_stack_init(&SCNG(nest_location_stack), sizeof(zend_nest_location));
234
235
0
  lex_state->heredoc_label_stack = SCNG(heredoc_label_stack);
236
0
  zend_ptr_stack_init(&SCNG(heredoc_label_stack));
237
238
0
  lex_state->in = SCNG(yy_in);
239
0
  lex_state->yy_state = YYSTATE;
240
0
  lex_state->filename = CG(compiled_filename);
241
0
  lex_state->lineno = CG(zend_lineno);
242
0
  CG(compiled_filename) = NULL;
243
244
0
  lex_state->script_org = SCNG(script_org);
245
0
  lex_state->script_org_size = SCNG(script_org_size);
246
0
  lex_state->script_filtered = SCNG(script_filtered);
247
0
  lex_state->script_filtered_size = SCNG(script_filtered_size);
248
0
  lex_state->input_filter = SCNG(input_filter);
249
0
  lex_state->output_filter = SCNG(output_filter);
250
0
  lex_state->script_encoding = SCNG(script_encoding);
251
252
0
  lex_state->on_event = SCNG(on_event);
253
0
  lex_state->on_event_context = SCNG(on_event_context);
254
255
0
  lex_state->ast = CG(ast);
256
0
  lex_state->ast_arena = CG(ast_arena);
257
0
}
258
259
ZEND_API void zend_restore_lexical_state(zend_lex_state *lex_state)
260
0
{
261
0
  SCNG(yy_leng)   = lex_state->yy_leng;
262
0
  SCNG(yy_start)  = lex_state->yy_start;
263
0
  SCNG(yy_text)   = lex_state->yy_text;
264
0
  SCNG(yy_cursor) = lex_state->yy_cursor;
265
0
  SCNG(yy_marker) = lex_state->yy_marker;
266
0
  SCNG(yy_limit)  = lex_state->yy_limit;
267
268
0
  zend_stack_destroy(&SCNG(state_stack));
269
0
  SCNG(state_stack) = lex_state->state_stack;
270
271
0
  zend_stack_destroy(&SCNG(nest_location_stack));
272
0
  SCNG(nest_location_stack) = lex_state->nest_location_stack;
273
274
0
  zend_ptr_stack_clean(&SCNG(heredoc_label_stack), (void (*)(void *)) &heredoc_label_dtor, 1);
275
0
  zend_ptr_stack_destroy(&SCNG(heredoc_label_stack));
276
0
  SCNG(heredoc_label_stack) = lex_state->heredoc_label_stack;
277
278
0
  SCNG(yy_in) = lex_state->in;
279
0
  YYSETCONDITION(lex_state->yy_state);
280
0
  CG(zend_lineno) = lex_state->lineno;
281
0
  zend_restore_compiled_filename(lex_state->filename);
282
283
0
  if (SCNG(script_filtered) && SCNG(script_filtered) != lex_state->script_filtered) {
284
0
    efree(SCNG(script_filtered));
285
0
    SCNG(script_filtered) = NULL;
286
0
  }
287
0
  SCNG(script_org) = lex_state->script_org;
288
0
  SCNG(script_org_size) = lex_state->script_org_size;
289
0
  SCNG(script_filtered) = lex_state->script_filtered;
290
0
  SCNG(script_filtered_size) = lex_state->script_filtered_size;
291
0
  SCNG(input_filter) = lex_state->input_filter;
292
0
  SCNG(output_filter) = lex_state->output_filter;
293
0
  SCNG(script_encoding) = lex_state->script_encoding;
294
295
0
  SCNG(on_event) = lex_state->on_event;
296
0
  SCNG(on_event_context) = lex_state->on_event_context;
297
298
0
  CG(ast) = lex_state->ast;
299
0
  CG(ast_arena) = lex_state->ast_arena;
300
301
0
  RESET_DOC_COMMENT();
302
0
}
303
304
ZEND_API zend_result zend_lex_tstring(zval *zv, unsigned char *ident)
305
0
{
306
0
  unsigned char *end = ident;
307
0
  while ((*end >= 'a' && *end <= 'z') || (*end >= 'A' && *end <= 'Z') || *end == '_') {
308
0
    end++;
309
0
  }
310
311
0
  size_t length = end - ident;
312
0
  if (length == 0) {
313
0
    ZEND_ASSERT(ident[0] == '<' && ident[1] == '?' && ident[2] == '=');
314
0
    zend_throw_exception(zend_ce_parse_error, "Cannot use \"<?=\" as an identifier", 0);
315
0
    return FAILURE;
316
0
  }
317
318
0
  if (SCNG(on_event)) {
319
0
    SCNG(on_event)(ON_FEEDBACK, T_STRING, 0, (char *) ident, length, SCNG(on_event_context));
320
0
  }
321
322
0
  ZVAL_STRINGL(zv, (char *) ident, length);
323
0
  return SUCCESS;
324
0
}
325
326
0
#define BOM_UTF32_BE  "\x00\x00\xfe\xff"
327
0
#define BOM_UTF32_LE  "\xff\xfe\x00\x00"
328
0
#define BOM_UTF16_BE  "\xfe\xff"
329
0
#define BOM_UTF16_LE  "\xff\xfe"
330
0
#define BOM_UTF8    "\xef\xbb\xbf"
331
332
static const zend_encoding *zend_multibyte_detect_utf_encoding(const unsigned char *script, size_t script_size)
333
0
{
334
0
  const unsigned char *p;
335
0
  int wchar_size = 2;
336
0
  int le = 0;
337
338
  /* utf-16 or utf-32? */
339
0
  p = script;
340
0
  assert(p >= script);
341
0
  while ((size_t)(p-script) < script_size) {
342
0
    p = memchr(p, 0, script_size-(p-script)-2);
343
0
    if (!p) {
344
0
      break;
345
0
    }
346
0
    if (*(p+1) == '\0' && *(p+2) == '\0') {
347
0
      wchar_size = 4;
348
0
      break;
349
0
    }
350
351
    /* searching for UTF-32 specific byte orders, so this will do */
352
0
    p += 4;
353
0
  }
354
355
  /* BE or LE? */
356
0
  p = script;
357
0
  assert(p >= script);
358
0
  while ((size_t)(p-script) < script_size) {
359
0
    if (*p == '\0' && *(p+wchar_size-1) != '\0') {
360
      /* BE */
361
0
      le = 0;
362
0
      break;
363
0
    } else if (*p != '\0' && *(p+wchar_size-1) == '\0') {
364
      /* LE* */
365
0
      le = 1;
366
0
      break;
367
0
    }
368
0
    p += wchar_size;
369
0
  }
370
371
0
  if (wchar_size == 2) {
372
0
    return le ? zend_multibyte_encoding_utf16le : zend_multibyte_encoding_utf16be;
373
0
  } else {
374
0
    return le ? zend_multibyte_encoding_utf32le : zend_multibyte_encoding_utf32be;
375
0
  }
376
377
0
  return NULL;
378
0
}
379
380
static const zend_encoding* zend_multibyte_detect_unicode(void)
381
0
{
382
0
  const zend_encoding *script_encoding = NULL;
383
0
  int bom_size;
384
0
  unsigned char *pos1, *pos2;
385
386
0
  if (LANG_SCNG(script_org_size) < sizeof(BOM_UTF32_LE)-1) {
387
0
    return NULL;
388
0
  }
389
390
  /* check out BOM */
391
0
  if (!memcmp(LANG_SCNG(script_org), BOM_UTF32_BE, sizeof(BOM_UTF32_BE)-1)) {
392
0
    script_encoding = zend_multibyte_encoding_utf32be;
393
0
    bom_size = sizeof(BOM_UTF32_BE)-1;
394
0
  } else if (!memcmp(LANG_SCNG(script_org), BOM_UTF32_LE, sizeof(BOM_UTF32_LE)-1)) {
395
0
    script_encoding = zend_multibyte_encoding_utf32le;
396
0
    bom_size = sizeof(BOM_UTF32_LE)-1;
397
0
  } else if (!memcmp(LANG_SCNG(script_org), BOM_UTF16_BE, sizeof(BOM_UTF16_BE)-1)) {
398
0
    script_encoding = zend_multibyte_encoding_utf16be;
399
0
    bom_size = sizeof(BOM_UTF16_BE)-1;
400
0
  } else if (!memcmp(LANG_SCNG(script_org), BOM_UTF16_LE, sizeof(BOM_UTF16_LE)-1)) {
401
0
    script_encoding = zend_multibyte_encoding_utf16le;
402
0
    bom_size = sizeof(BOM_UTF16_LE)-1;
403
0
  } else if (!memcmp(LANG_SCNG(script_org), BOM_UTF8, sizeof(BOM_UTF8)-1)) {
404
0
    script_encoding = zend_multibyte_encoding_utf8;
405
0
    bom_size = sizeof(BOM_UTF8)-1;
406
0
  }
407
408
0
  if (script_encoding) {
409
    /* remove BOM */
410
0
    LANG_SCNG(script_org) += bom_size;
411
0
    LANG_SCNG(script_org_size) -= bom_size;
412
413
0
    return script_encoding;
414
0
  }
415
416
  /* script contains NULL bytes -> auto-detection */
417
0
  if ((pos1 = memchr(LANG_SCNG(script_org), 0, LANG_SCNG(script_org_size)))) {
418
    /* check if the NULL byte is after the __HALT_COMPILER(); */
419
0
    pos2 = LANG_SCNG(script_org);
420
421
0
    while ((size_t)(pos1 - pos2) >= sizeof("__HALT_COMPILER();")-1) {
422
0
      pos2 = memchr(pos2, '_', pos1 - pos2);
423
0
      if (!pos2) break;
424
0
      pos2++;
425
0
      if (strncasecmp((char*)pos2, "_HALT_COMPILER", sizeof("_HALT_COMPILER")-1) == 0) {
426
0
        pos2 += sizeof("_HALT_COMPILER")-1;
427
0
        while (*pos2 == ' '  ||
428
0
             *pos2 == '\t' ||
429
0
             *pos2 == '\r' ||
430
0
             *pos2 == '\n') {
431
0
          pos2++;
432
0
        }
433
0
        if (*pos2 == '(') {
434
0
          pos2++;
435
0
          while (*pos2 == ' '  ||
436
0
               *pos2 == '\t' ||
437
0
               *pos2 == '\r' ||
438
0
               *pos2 == '\n') {
439
0
            pos2++;
440
0
          }
441
0
          if (*pos2 == ')') {
442
0
            pos2++;
443
0
            while (*pos2 == ' '  ||
444
0
                 *pos2 == '\t' ||
445
0
                 *pos2 == '\r' ||
446
0
                 *pos2 == '\n') {
447
0
              pos2++;
448
0
            }
449
0
            if (*pos2 == ';') {
450
0
              return NULL;
451
0
            }
452
0
          }
453
0
        }
454
0
      }
455
0
    }
456
    /* make best effort if BOM is missing */
457
0
    return zend_multibyte_detect_utf_encoding(LANG_SCNG(script_org), LANG_SCNG(script_org_size));
458
0
  }
459
460
0
  return NULL;
461
0
}
462
463
static const zend_encoding* zend_multibyte_find_script_encoding(void)
464
0
{
465
0
  const zend_encoding *script_encoding;
466
467
0
  if (CG(detect_unicode)) {
468
    /* check out bom(byte order mark) and see if containing wchars */
469
0
    script_encoding = zend_multibyte_detect_unicode();
470
0
    if (script_encoding != NULL) {
471
      /* bom or wchar detection is prior to 'script_encoding' option */
472
0
      return script_encoding;
473
0
    }
474
0
  }
475
476
  /* if no script_encoding specified, just leave alone */
477
0
  if (!CG(script_encoding_list) || !CG(script_encoding_list_size)) {
478
0
    return NULL;
479
0
  }
480
481
  /* if multiple encodings specified, detect automagically */
482
0
  if (CG(script_encoding_list_size) > 1) {
483
0
    return zend_multibyte_encoding_detector(LANG_SCNG(script_org), LANG_SCNG(script_org_size), CG(script_encoding_list), CG(script_encoding_list_size));
484
0
  }
485
486
0
  return CG(script_encoding_list)[0];
487
0
}
488
489
ZEND_API zend_result zend_multibyte_set_filter(const zend_encoding *onetime_encoding)
490
0
{
491
0
  const zend_encoding *internal_encoding = zend_multibyte_get_internal_encoding();
492
0
  const zend_encoding *script_encoding = onetime_encoding ? onetime_encoding: zend_multibyte_find_script_encoding();
493
494
0
  if (!script_encoding) {
495
0
    return FAILURE;
496
0
  }
497
498
  /* judge input/output filter */
499
0
  LANG_SCNG(script_encoding) = script_encoding;
500
0
  LANG_SCNG(input_filter) = NULL;
501
0
  LANG_SCNG(output_filter) = NULL;
502
503
0
  if (!internal_encoding || LANG_SCNG(script_encoding) == internal_encoding) {
504
0
    if (!zend_multibyte_check_lexer_compatibility(LANG_SCNG(script_encoding))) {
505
      /* and if not, work around w/ script_encoding -> utf-8 -> script_encoding conversion */
506
0
      LANG_SCNG(input_filter) = encoding_filter_script_to_intermediate;
507
0
      LANG_SCNG(output_filter) = encoding_filter_intermediate_to_script;
508
0
    } else {
509
0
      LANG_SCNG(input_filter) = NULL;
510
0
      LANG_SCNG(output_filter) = NULL;
511
0
    }
512
0
    return SUCCESS;
513
0
  }
514
515
0
  if (zend_multibyte_check_lexer_compatibility(internal_encoding)) {
516
0
    LANG_SCNG(input_filter) = encoding_filter_script_to_internal;
517
0
    LANG_SCNG(output_filter) = NULL;
518
0
  } else if (zend_multibyte_check_lexer_compatibility(LANG_SCNG(script_encoding))) {
519
0
    LANG_SCNG(input_filter) = NULL;
520
0
    LANG_SCNG(output_filter) = encoding_filter_script_to_internal;
521
0
  } else {
522
    /* both script and internal encodings are incompatible w/ flex */
523
0
    LANG_SCNG(input_filter) = encoding_filter_script_to_intermediate;
524
0
    LANG_SCNG(output_filter) = encoding_filter_intermediate_to_internal;
525
0
  }
526
527
0
  return SUCCESS;
528
0
}
529
530
ZEND_API zend_result open_file_for_scanning(zend_file_handle *file_handle)
531
0
{
532
0
  char *buf;
533
0
  size_t size;
534
0
  zend_string *compiled_filename;
535
536
0
  if (zend_stream_fixup(file_handle, &buf, &size) == FAILURE) {
537
    /* Still add it to open_files to make destroy_file_handle work */
538
0
    zend_llist_add_element(&CG(open_files), file_handle);
539
0
    file_handle->in_list = 1;
540
0
    return FAILURE;
541
0
  }
542
543
0
  ZEND_ASSERT(!EG(exception) && "stream_fixup() should have failed");
544
0
  zend_llist_add_element(&CG(open_files), file_handle);
545
0
  file_handle->in_list = 1;
546
547
  /* Reset the scanner for scanning the new file */
548
0
  SCNG(yy_in) = file_handle;
549
0
  SCNG(yy_start) = NULL;
550
551
0
  if (size != (size_t)-1) {
552
0
    if (CG(multibyte)) {
553
0
      SCNG(script_org) = (unsigned char*)buf;
554
0
      SCNG(script_org_size) = size;
555
0
      SCNG(script_filtered) = NULL;
556
557
0
      zend_multibyte_set_filter(NULL);
558
559
0
      if (SCNG(input_filter)) {
560
0
        if ((size_t)-1 == SCNG(input_filter)(&SCNG(script_filtered), &SCNG(script_filtered_size), SCNG(script_org), SCNG(script_org_size))) {
561
0
          zend_error_noreturn(E_COMPILE_ERROR, "Could not convert the script from the detected "
562
0
              "encoding \"%s\" to a compatible encoding", zend_multibyte_get_encoding_name(LANG_SCNG(script_encoding)));
563
0
        }
564
0
        buf = (char*)SCNG(script_filtered);
565
0
        size = SCNG(script_filtered_size);
566
0
      }
567
0
    }
568
0
    SCNG(yy_start) = (unsigned char *)buf;
569
0
    yy_scan_buffer(buf, size);
570
0
  } else {
571
0
    zend_error_noreturn(E_COMPILE_ERROR, "zend_stream_mmap() failed");
572
0
  }
573
574
0
  if (CG(skip_shebang)) {
575
0
    BEGIN(SHEBANG);
576
0
  } else {
577
0
    BEGIN(INITIAL);
578
0
  }
579
580
0
  if (file_handle->opened_path) {
581
0
    compiled_filename = zend_string_copy(file_handle->opened_path);
582
0
  } else {
583
0
    compiled_filename = zend_string_copy(file_handle->filename);
584
0
  }
585
586
0
  zend_set_compiled_filename(compiled_filename);
587
0
  zend_string_release_ex(compiled_filename, 0);
588
589
0
  SCNG(on_event) = NULL;
590
0
  SCNG(on_event_context) = NULL;
591
0
  RESET_DOC_COMMENT();
592
0
  CG(zend_lineno) = 1;
593
0
  CG(increment_lineno) = 0;
594
0
  return SUCCESS;
595
0
}
596
597
static zend_op_array *zend_compile(int type)
598
0
{
599
0
  zend_op_array *op_array = NULL;
600
0
  bool original_in_compilation = CG(in_compilation);
601
602
0
  CG(in_compilation) = 1;
603
0
  CG(ast) = NULL;
604
0
  CG(ast_arena) = zend_arena_create(1024 * 32);
605
606
0
  if (!zendparse()) {
607
0
    uint32_t last_lineno = CG(zend_lineno);
608
0
    zend_file_context original_file_context;
609
0
    zend_oparray_context original_oparray_context;
610
0
    zend_op_array *original_active_op_array = CG(active_op_array);
611
612
0
    op_array = emalloc(sizeof(zend_op_array));
613
0
    init_op_array(op_array, type, INITIAL_OP_ARRAY_SIZE);
614
0
    CG(active_op_array) = op_array;
615
616
    /* Use heap to not waste arena memory */
617
0
    op_array->fn_flags |= ZEND_ACC_HEAP_RT_CACHE;
618
619
0
    if (zend_ast_process) {
620
0
      zend_ast_process(CG(ast));
621
0
    }
622
623
0
    zend_file_context_begin(&original_file_context);
624
0
    zend_oparray_context_begin(&original_oparray_context, op_array);
625
0
    zend_compile_top_stmt(CG(ast));
626
0
    CG(zend_lineno) = last_lineno;
627
0
    zend_emit_final_return(type == ZEND_USER_FUNCTION);
628
0
    op_array->line_start = 1;
629
0
    op_array->line_end = last_lineno;
630
0
    pass_two(op_array);
631
0
    zend_oparray_context_end(&original_oparray_context);
632
0
    zend_file_context_end(&original_file_context);
633
634
0
    CG(active_op_array) = original_active_op_array;
635
0
  }
636
637
0
  zend_ast_destroy(CG(ast));
638
0
  zend_arena_destroy(CG(ast_arena));
639
640
0
  CG(in_compilation) = original_in_compilation;
641
642
0
  return op_array;
643
0
}
644
645
ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type)
646
0
{
647
0
  zend_lex_state original_lex_state;
648
0
  zend_op_array *op_array = NULL;
649
0
  zend_save_lexical_state(&original_lex_state);
650
651
0
  if (open_file_for_scanning(file_handle)==FAILURE) {
652
0
    if (!EG(exception)) {
653
0
      if (type==ZEND_REQUIRE) {
654
0
        zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, ZSTR_VAL(file_handle->filename));
655
0
      } else {
656
0
        zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, ZSTR_VAL(file_handle->filename));
657
0
      }
658
0
    }
659
0
  } else {
660
0
    bool orig_record_errors = EG(record_errors);
661
0
    if (!orig_record_errors) {
662
0
      zend_begin_record_errors();
663
0
    }
664
665
0
    op_array = zend_compile(ZEND_USER_FUNCTION);
666
667
0
    if (!orig_record_errors) {
668
0
      zend_emit_recorded_errors();
669
0
      zend_free_recorded_errors();
670
0
    }
671
0
  }
672
673
0
  zend_restore_lexical_state(&original_lex_state);
674
0
  return op_array;
675
0
}
676
677
ZEND_API zend_ast *zend_compile_string_to_ast(
678
0
    zend_string *code, zend_arena **ast_arena, zend_string *filename) {
679
0
  zval code_zv;
680
0
  bool original_in_compilation;
681
0
  zend_lex_state original_lex_state;
682
0
  zend_ast *ast;
683
684
0
  ZVAL_STR_COPY(&code_zv, code);
685
686
0
  original_in_compilation = CG(in_compilation);
687
0
  CG(in_compilation) = 1;
688
689
0
  zend_save_lexical_state(&original_lex_state);
690
0
  zend_prepare_string_for_scanning(&code_zv, filename);
691
0
  CG(ast) = NULL;
692
0
  CG(ast_arena) = zend_arena_create(1024 * 32);
693
0
  LANG_SCNG(yy_state) = yycINITIAL;
694
695
0
  if (zendparse() != 0) {
696
0
    zend_ast_destroy(CG(ast));
697
0
    zend_arena_destroy(CG(ast_arena));
698
0
    CG(ast) = NULL;
699
0
  }
700
701
  /* restore_lexical_state changes CG(ast) and CG(ast_arena) */
702
0
  ast = CG(ast);
703
0
  *ast_arena = CG(ast_arena);
704
705
0
  zend_restore_lexical_state(&original_lex_state);
706
0
  CG(in_compilation) = original_in_compilation;
707
708
0
  zval_ptr_dtor_str(&code_zv);
709
710
0
  return ast;
711
0
}
712
713
zend_op_array *compile_filename(int type, zend_string *filename)
714
0
{
715
0
  zend_file_handle file_handle;
716
0
  zend_op_array *retval;
717
0
  zend_string *opened_path = NULL;
718
719
0
  zend_stream_init_filename_ex(&file_handle, filename);
720
721
0
  retval = zend_compile_file(&file_handle, type);
722
0
  if (retval && file_handle.handle.stream.handle) {
723
0
    if (!file_handle.opened_path) {
724
0
      file_handle.opened_path = opened_path = zend_string_copy(filename);
725
0
    }
726
727
0
    zend_hash_add_empty_element(&EG(included_files), file_handle.opened_path);
728
729
0
    if (opened_path) {
730
0
      zend_string_release_ex(opened_path, 0);
731
0
    }
732
0
  }
733
0
  zend_destroy_file_handle(&file_handle);
734
735
0
  return retval;
736
0
}
737
738
ZEND_API void zend_prepare_string_for_scanning(zval *str, zend_string *filename)
739
0
{
740
0
  char *buf;
741
0
  size_t size, old_len;
742
743
  /* enforce ZEND_MMAP_AHEAD trailing NULLs for flex... */
744
0
  old_len = Z_STRLEN_P(str);
745
0
  Z_STR_P(str) = zend_string_extend(Z_STR_P(str), old_len + ZEND_MMAP_AHEAD, 0);
746
0
  Z_TYPE_INFO_P(str) = IS_STRING_EX;
747
0
  memset(Z_STRVAL_P(str) + old_len, 0, ZEND_MMAP_AHEAD + 1);
748
749
0
  SCNG(yy_in) = NULL;
750
0
  SCNG(yy_start) = NULL;
751
752
0
  buf = Z_STRVAL_P(str);
753
0
  size = old_len;
754
755
0
  if (CG(multibyte)) {
756
0
    SCNG(script_org) = (unsigned char*)buf;
757
0
    SCNG(script_org_size) = size;
758
0
    SCNG(script_filtered) = NULL;
759
760
0
    zend_multibyte_set_filter(zend_multibyte_get_internal_encoding());
761
762
0
    if (SCNG(input_filter)) {
763
0
      if ((size_t)-1 == SCNG(input_filter)(&SCNG(script_filtered), &SCNG(script_filtered_size), SCNG(script_org), SCNG(script_org_size))) {
764
0
        zend_error_noreturn(E_COMPILE_ERROR, "Could not convert the script from the detected "
765
0
            "encoding \"%s\" to a compatible encoding", zend_multibyte_get_encoding_name(LANG_SCNG(script_encoding)));
766
0
      }
767
0
      buf = (char*)SCNG(script_filtered);
768
0
      size = SCNG(script_filtered_size);
769
0
    }
770
0
  }
771
772
0
  yy_scan_buffer(buf, size);
773
0
  zend_set_compiled_filename(filename);
774
0
  CG(zend_lineno) = 1;
775
0
  CG(increment_lineno) = 0;
776
0
  SCNG(on_event) = NULL;
777
0
  SCNG(on_event_context) = NULL;
778
0
  RESET_DOC_COMMENT();
779
0
}
780
781
782
ZEND_API size_t zend_get_scanned_file_offset(void)
783
0
{
784
0
  size_t offset = SCNG(yy_cursor) - SCNG(yy_start);
785
0
  if (SCNG(input_filter)) {
786
0
    size_t original_offset = offset, length = 0;
787
0
    do {
788
0
      unsigned char *p = NULL;
789
0
      if ((size_t)-1 == SCNG(input_filter)(&p, &length, SCNG(script_org), offset)) {
790
0
        return (size_t)-1;
791
0
      }
792
0
      efree(p);
793
0
      if (length > original_offset) {
794
0
        offset--;
795
0
      } else if (length < original_offset) {
796
0
        offset++;
797
0
      }
798
0
    } while (original_offset != length);
799
0
  }
800
0
  return offset;
801
0
}
802
803
zend_op_array *compile_string(zend_string *source_string, const char *filename, zend_compile_position position)
804
0
{
805
0
  zend_lex_state original_lex_state;
806
0
  zend_op_array *op_array = NULL;
807
0
  zval tmp;
808
0
  zend_string *filename_str;
809
810
0
  if (ZSTR_LEN(source_string) == 0) {
811
0
    return NULL;
812
0
  }
813
814
0
  ZVAL_STR_COPY(&tmp, source_string);
815
816
0
  zend_save_lexical_state(&original_lex_state);
817
0
  filename_str = zend_string_init(filename, strlen(filename), 0);
818
0
  zend_prepare_string_for_scanning(&tmp, filename_str);
819
0
  zend_string_release(filename_str);
820
821
0
  switch (position) {
822
0
    case ZEND_COMPILE_POSITION_AT_SHEBANG:
823
0
      BEGIN(SHEBANG);
824
0
      break;
825
0
    case ZEND_COMPILE_POSITION_AT_OPEN_TAG:
826
0
      BEGIN(INITIAL);
827
0
      break;
828
0
    case ZEND_COMPILE_POSITION_AFTER_OPEN_TAG:
829
0
      BEGIN(ST_IN_SCRIPTING);
830
0
      break;
831
0
  }
832
833
0
  op_array = zend_compile(ZEND_EVAL_CODE);
834
835
0
  zend_restore_lexical_state(&original_lex_state);
836
0
  zval_ptr_dtor(&tmp);
837
838
0
  return op_array;
839
0
}
840
841
842
zend_result highlight_file(const char *filename, zend_syntax_highlighter_ini *syntax_highlighter_ini)
843
0
{
844
0
  zend_lex_state original_lex_state;
845
0
  zend_file_handle file_handle;
846
847
0
  zend_stream_init_filename(&file_handle, filename);
848
0
  zend_save_lexical_state(&original_lex_state);
849
0
  if (open_file_for_scanning(&file_handle)==FAILURE) {
850
0
    zend_message_dispatcher(ZMSG_FAILED_HIGHLIGHT_FOPEN, filename);
851
0
    zend_destroy_file_handle(&file_handle);
852
0
    zend_restore_lexical_state(&original_lex_state);
853
0
    return FAILURE;
854
0
  }
855
0
  zend_highlight(syntax_highlighter_ini);
856
0
  if (SCNG(script_filtered)) {
857
0
    efree(SCNG(script_filtered));
858
0
    SCNG(script_filtered) = NULL;
859
0
  }
860
0
  zend_destroy_file_handle(&file_handle);
861
0
  zend_restore_lexical_state(&original_lex_state);
862
0
  return SUCCESS;
863
0
}
864
865
void highlight_string(zend_string *str, zend_syntax_highlighter_ini *syntax_highlighter_ini, const char *filename)
866
0
{
867
0
  zend_lex_state original_lex_state;
868
0
  zval str_zv;
869
0
  zend_string *filename_str = zend_string_init(filename, strlen(filename), 0);
870
0
  ZVAL_STR_COPY(&str_zv, str);
871
0
  zend_save_lexical_state(&original_lex_state);
872
0
  zend_prepare_string_for_scanning(&str_zv, filename_str);
873
0
  zend_string_release(filename_str);
874
0
  BEGIN(INITIAL);
875
0
  zend_highlight(syntax_highlighter_ini);
876
0
  if (SCNG(script_filtered)) {
877
0
    efree(SCNG(script_filtered));
878
0
    SCNG(script_filtered) = NULL;
879
0
  }
880
0
  zend_restore_lexical_state(&original_lex_state);
881
0
  zval_ptr_dtor(&str_zv);
882
0
}
883
884
ZEND_API void zend_multibyte_yyinput_again(zend_encoding_filter old_input_filter, const zend_encoding *old_encoding)
885
0
{
886
0
  size_t length;
887
0
  unsigned char *new_yy_start;
888
889
  /* convert and set */
890
0
  if (!SCNG(input_filter)) {
891
0
    if (SCNG(script_filtered)) {
892
0
      efree(SCNG(script_filtered));
893
0
      SCNG(script_filtered) = NULL;
894
0
    }
895
0
    SCNG(script_filtered_size) = 0;
896
0
    length = SCNG(script_org_size);
897
0
    new_yy_start = SCNG(script_org);
898
0
  } else {
899
0
    if ((size_t)-1 == SCNG(input_filter)(&new_yy_start, &length, SCNG(script_org), SCNG(script_org_size))) {
900
0
      zend_error_noreturn(E_COMPILE_ERROR, "Could not convert the script from the detected "
901
0
          "encoding \"%s\" to a compatible encoding", zend_multibyte_get_encoding_name(LANG_SCNG(script_encoding)));
902
0
    }
903
0
    if (SCNG(script_filtered)) {
904
0
      efree(SCNG(script_filtered));
905
0
    }
906
0
    SCNG(script_filtered) = new_yy_start;
907
0
    SCNG(script_filtered_size) = length;
908
0
  }
909
910
0
  SCNG(yy_cursor) = new_yy_start + (SCNG(yy_cursor) - SCNG(yy_start));
911
0
  SCNG(yy_marker) = new_yy_start + (SCNG(yy_marker) - SCNG(yy_start));
912
0
  SCNG(yy_text) = new_yy_start + (SCNG(yy_text) - SCNG(yy_start));
913
0
  SCNG(yy_limit) = new_yy_start + length;
914
915
0
  SCNG(yy_start) = new_yy_start;
916
0
}
917
918
919
// TODO: avoid reallocation ???
920
# define zend_copy_value(zendlval, yytext, yyleng) \
921
0
  if (SCNG(output_filter)) { \
922
0
    size_t sz = 0; \
923
0
    char *s = NULL; \
924
0
    SCNG(output_filter)((unsigned char **)&s, &sz, (unsigned char *)yytext, (size_t)yyleng); \
925
0
    ZVAL_STRINGL(zendlval, s, sz); \
926
0
    efree(s); \
927
0
  } else if (yyleng == 1) { \
928
0
    ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR((zend_uchar)*(yytext))); \
929
0
  } else { \
930
0
    ZVAL_STRINGL(zendlval, yytext, yyleng); \
931
0
  }
932
933
static zend_result zend_scan_escape_string(zval *zendlval, char *str, size_t len, char quote_type)
934
0
{
935
0
  char *s, *t;
936
0
  char *end;
937
938
0
  if (len <= 1) {
939
0
    if (len < 1) {
940
0
      ZVAL_EMPTY_STRING(zendlval);
941
0
    } else {
942
0
      zend_uchar c = (zend_uchar)*str;
943
0
      HANDLE_NEWLINE(c);
944
0
      ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR(c));
945
0
    }
946
0
    goto skip_escape_conversion;
947
0
  }
948
949
0
  ZVAL_STRINGL(zendlval, str, len);
950
951
  /* convert escape sequences */
952
0
  s = Z_STRVAL_P(zendlval);
953
0
  end = s+Z_STRLEN_P(zendlval);
954
0
  while (1) {
955
0
    if (UNEXPECTED(*s=='\\')) {
956
0
      break;
957
0
    }
958
0
    if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
959
0
      CG(zend_lineno)++;
960
0
    }
961
0
    s++;
962
0
    if (s == end) {
963
0
      goto skip_escape_conversion;
964
0
    }
965
0
  }
966
967
0
  t = s;
968
0
  while (s<end) {
969
0
    if (*s=='\\') {
970
0
      s++;
971
0
      if (s >= end) {
972
0
        *t++ = '\\';
973
0
        break;
974
0
      }
975
976
0
      switch(*s) {
977
0
        case 'n':
978
0
          *t++ = '\n';
979
0
          break;
980
0
        case 'r':
981
0
          *t++ = '\r';
982
0
          break;
983
0
        case 't':
984
0
          *t++ = '\t';
985
0
          break;
986
0
        case 'f':
987
0
          *t++ = '\f';
988
0
          break;
989
0
        case 'v':
990
0
          *t++ = '\v';
991
0
          break;
992
0
        case 'e':
993
#ifdef ZEND_WIN32
994
          *t++ = VK_ESCAPE;
995
#else
996
0
          *t++ = '\e';
997
0
#endif
998
0
          break;
999
0
        case '"':
1000
0
        case '`':
1001
0
          if (*s != quote_type) {
1002
0
            *t++ = '\\';
1003
0
            *t++ = *s;
1004
0
            break;
1005
0
          }
1006
0
          ZEND_FALLTHROUGH;
1007
0
        case '\\':
1008
0
        case '$':
1009
0
          *t++ = *s;
1010
0
          break;
1011
0
        case 'x':
1012
0
        case 'X':
1013
0
          if (ZEND_IS_HEX(*(s+1))) {
1014
0
            char hex_buf[3] = { 0, 0, 0 };
1015
1016
0
            hex_buf[0] = *(++s);
1017
0
            if (ZEND_IS_HEX(*(s+1))) {
1018
0
              hex_buf[1] = *(++s);
1019
0
            }
1020
0
            *t++ = (char) ZEND_STRTOL(hex_buf, NULL, 16);
1021
0
          } else {
1022
0
            *t++ = '\\';
1023
0
            *t++ = *s;
1024
0
          }
1025
0
          break;
1026
        /* UTF-8 codepoint escape, format: /\\u\{\x+\}/ */
1027
0
        case 'u':
1028
0
          {
1029
            /* cache where we started so we can parse after validating */
1030
0
            char *start = s + 1;
1031
0
            size_t len = 0;
1032
0
            bool valid = 1;
1033
0
            unsigned long codepoint;
1034
1035
0
            if (*start != '{') {
1036
              /* we silently let this pass to avoid breaking code
1037
               * with JSON in string literals (e.g. "\"\u202e\""
1038
               */
1039
0
              *t++ = '\\';
1040
0
              *t++ = 'u';
1041
0
              break;
1042
0
            } else {
1043
              /* on the other hand, invalid \u{blah} errors */
1044
0
              s++;
1045
0
              len++;
1046
0
              s++;
1047
0
              while (*s != '}') {
1048
0
                if (!ZEND_IS_HEX(*s)) {
1049
0
                  valid = 0;
1050
0
                  break;
1051
0
                } else {
1052
0
                  len++;
1053
0
                }
1054
0
                s++;
1055
0
              }
1056
0
              if (*s == '}') {
1057
0
                valid = 1;
1058
0
                len++;
1059
0
              }
1060
0
            }
1061
1062
            /* \u{} is invalid */
1063
0
            if (len <= 2) {
1064
0
              valid = 0;
1065
0
            }
1066
1067
0
            if (!valid) {
1068
0
              zend_throw_exception(zend_ce_parse_error,
1069
0
                "Invalid UTF-8 codepoint escape sequence", 0);
1070
0
              zval_ptr_dtor(zendlval);
1071
0
              ZVAL_UNDEF(zendlval);
1072
0
              return FAILURE;
1073
0
            }
1074
1075
0
            errno = 0;
1076
0
            codepoint = strtoul(start + 1, NULL, 16);
1077
1078
            /* per RFC 3629, UTF-8 can only represent 21 bits */
1079
0
            if (codepoint > 0x10FFFF || errno) {
1080
0
              zend_throw_exception(zend_ce_parse_error,
1081
0
                "Invalid UTF-8 codepoint escape sequence: Codepoint too large", 0);
1082
0
              zval_ptr_dtor(zendlval);
1083
0
              ZVAL_UNDEF(zendlval);
1084
0
              return FAILURE;
1085
0
            }
1086
1087
            /* based on https://en.wikipedia.org/wiki/UTF-8#Sample_code */
1088
0
            if (codepoint < 0x80) {
1089
0
              *t++ = codepoint;
1090
0
            } else if (codepoint <= 0x7FF) {
1091
0
              *t++ = (codepoint >> 6) + 0xC0;
1092
0
              *t++ = (codepoint & 0x3F) + 0x80;
1093
0
            } else if (codepoint <= 0xFFFF) {
1094
0
              *t++ = (codepoint >> 12) + 0xE0;
1095
0
              *t++ = ((codepoint >> 6) & 0x3F) + 0x80;
1096
0
              *t++ = (codepoint & 0x3F) + 0x80;
1097
0
            } else if (codepoint <= 0x10FFFF) {
1098
0
              *t++ = (codepoint >> 18) + 0xF0;
1099
0
              *t++ = ((codepoint >> 12) & 0x3F) + 0x80;
1100
0
              *t++ = ((codepoint >> 6) & 0x3F) + 0x80;
1101
0
              *t++ = (codepoint & 0x3F) + 0x80;
1102
0
            }
1103
0
          }
1104
0
          break;
1105
0
        default:
1106
          /* check for an octal */
1107
0
          if (ZEND_IS_OCT(*s)) {
1108
0
            char octal_buf[4] = { 0, 0, 0, 0 };
1109
1110
0
            octal_buf[0] = *s;
1111
0
            if (ZEND_IS_OCT(*(s+1))) {
1112
0
              octal_buf[1] = *(++s);
1113
0
              if (ZEND_IS_OCT(*(s+1))) {
1114
0
                octal_buf[2] = *(++s);
1115
0
              }
1116
0
            }
1117
0
            if (octal_buf[2] && (octal_buf[0] > '3') && !SCNG(heredoc_scan_ahead)) {
1118
              /* 3 octit values must not overflow 0xFF (\377) */
1119
0
              zend_error(E_COMPILE_WARNING, "Octal escape sequence overflow \\%s is greater than \\377", octal_buf);
1120
0
            }
1121
1122
0
            *t++ = (char) ZEND_STRTOL(octal_buf, NULL, 8);
1123
0
          } else {
1124
0
            *t++ = '\\';
1125
0
            *t++ = *s;
1126
0
          }
1127
0
          break;
1128
0
      }
1129
0
    } else {
1130
0
      *t++ = *s;
1131
0
    }
1132
1133
0
    if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
1134
0
      CG(zend_lineno)++;
1135
0
    }
1136
0
    s++;
1137
0
  }
1138
0
  *t = 0;
1139
0
  Z_STRLEN_P(zendlval) = t - Z_STRVAL_P(zendlval);
1140
1141
0
skip_escape_conversion:
1142
0
  if (SCNG(output_filter)) {
1143
0
    size_t sz = 0;
1144
0
    unsigned char *str;
1145
    // TODO: avoid realocation ???
1146
0
    s = Z_STRVAL_P(zendlval);
1147
0
    SCNG(output_filter)(&str, &sz, (unsigned char *)s, Z_STRLEN_P(zendlval));
1148
0
    zval_ptr_dtor(zendlval);
1149
0
    ZVAL_STRINGL(zendlval, (char *) str, sz);
1150
0
    efree(str);
1151
0
  }
1152
0
  return SUCCESS;
1153
0
}
1154
1155
0
#define HEREDOC_USING_SPACES 1
1156
0
#define HEREDOC_USING_TABS 2
1157
1158
0
static const char *next_newline(const char *str, const char *end, size_t *newline_len) {
1159
0
  for (; str < end; str++) {
1160
0
    if (*str == '\r') {
1161
0
      *newline_len = str + 1 < end && *(str + 1) == '\n' ? 2 : 1;
1162
0
      return str;
1163
0
    } else if (*str == '\n') {
1164
0
      *newline_len = 1;
1165
0
      return str;
1166
0
    }
1167
0
  }
1168
0
  *newline_len = 0;
1169
0
  return NULL;
1170
0
}
1171
1172
static bool strip_multiline_string_indentation(
1173
  zval *zendlval, int indentation, bool using_spaces,
1174
  bool newline_at_start, bool newline_at_end)
1175
0
{
1176
0
  const char *str = Z_STRVAL_P(zendlval), *end = str + Z_STRLEN_P(zendlval);
1177
0
  char *copy = Z_STRVAL_P(zendlval);
1178
1179
0
  uint32_t newline_count = 0;
1180
0
  size_t newline_len;
1181
0
  const char *nl;
1182
1183
0
  if (!newline_at_start) {
1184
0
    nl = next_newline(str, end, &newline_len);
1185
0
    if (!nl) {
1186
0
      return 1;
1187
0
    }
1188
1189
0
    str = nl + newline_len;
1190
0
    copy = (char *) nl + newline_len;
1191
0
    newline_count++;
1192
0
  } else {
1193
0
    nl = str;
1194
0
  }
1195
1196
  /* <= intentional */
1197
0
  while (str <= end && nl) {
1198
0
    size_t skip;
1199
0
    nl = next_newline(str, end, &newline_len);
1200
0
    if (!nl && newline_at_end) {
1201
0
      nl = end;
1202
0
    }
1203
1204
    /* Try to skip indentation */
1205
0
    for (skip = 0; skip < indentation; skip++, str++) {
1206
0
      if (str == nl) {
1207
        /* Don't require full indentation on whitespace-only lines */
1208
0
        break;
1209
0
      }
1210
1211
0
      if (str == end || (*str != ' ' && *str != '\t')) {
1212
0
        CG(zend_lineno) += newline_count;
1213
0
        zend_throw_exception_ex(zend_ce_parse_error, 0,
1214
0
          "Invalid body indentation level (expecting an indentation level of at least %d)", indentation);
1215
0
        goto error;
1216
0
      }
1217
1218
0
      if ((!using_spaces && *str == ' ') || (using_spaces && *str == '\t')) {
1219
0
        CG(zend_lineno) += newline_count;
1220
0
        zend_throw_exception(zend_ce_parse_error,
1221
0
          "Invalid indentation - tabs and spaces cannot be mixed", 0);
1222
0
        goto error;
1223
0
      }
1224
0
    }
1225
1226
0
    if (str == end) {
1227
0
      break;
1228
0
    }
1229
1230
0
    size_t len = nl ? (nl - str + newline_len) : (end - str);
1231
0
    memmove(copy, str, len);
1232
0
    str += len;
1233
0
    copy += len;
1234
0
    newline_count++;
1235
0
  }
1236
1237
0
  *copy = '\0';
1238
0
  Z_STRLEN_P(zendlval) = copy - Z_STRVAL_P(zendlval);
1239
0
  return 1;
1240
1241
0
error:
1242
0
  zval_ptr_dtor_str(zendlval);
1243
0
  ZVAL_UNDEF(zendlval);
1244
1245
0
  return 0;
1246
0
}
1247
1248
static void copy_heredoc_label_stack(void *void_heredoc_label)
1249
0
{
1250
0
  zend_heredoc_label *heredoc_label = void_heredoc_label;
1251
0
  zend_heredoc_label *new_heredoc_label = emalloc(sizeof(zend_heredoc_label));
1252
1253
0
  *new_heredoc_label = *heredoc_label;
1254
0
  new_heredoc_label->label = estrndup(heredoc_label->label, heredoc_label->length);
1255
1256
0
  zend_ptr_stack_push(&SCNG(heredoc_label_stack), (void *) new_heredoc_label);
1257
0
}
1258
1259
/* Check that { }, [ ], ( ) are nested correctly */
1260
static void report_bad_nesting(char opening, uint32_t opening_lineno, char closing)
1261
0
{
1262
0
  char   buf[256];
1263
0
  size_t used = 0;
1264
1265
0
  used = snprintf(buf, sizeof(buf), "Unclosed '%c'", opening);
1266
1267
0
  if (opening_lineno != CG(zend_lineno)) {
1268
0
    used += snprintf(buf + used, sizeof(buf) - used, " on line %d", opening_lineno);
1269
0
  }
1270
1271
0
  if (closing) {   /* 'closing' will be 0 if at end of file */
1272
0
    used += snprintf(buf + used, sizeof(buf) - used, " does not match '%c'", closing);
1273
0
  }
1274
1275
0
  zend_throw_exception(zend_ce_parse_error, buf, 0);
1276
0
}
1277
1278
static void enter_nesting(char opening)
1279
0
{
1280
0
  zend_nest_location nest_loc = {opening, CG(zend_lineno)};
1281
0
  zend_stack_push(&SCNG(nest_location_stack), &nest_loc);
1282
0
}
1283
1284
static zend_result exit_nesting(char closing)
1285
0
{
1286
0
  if (zend_stack_is_empty(&SCNG(nest_location_stack))) {
1287
0
    zend_throw_exception_ex(zend_ce_parse_error, 0, "Unmatched '%c'", closing);
1288
0
    return FAILURE;
1289
0
  }
1290
1291
0
  zend_nest_location *nest_loc = zend_stack_top(&SCNG(nest_location_stack));
1292
0
  char opening = nest_loc->text;
1293
1294
0
  if ((opening == '{' && closing != '}') ||
1295
0
      (opening == '[' && closing != ']') ||
1296
0
      (opening == '(' && closing != ')')) {
1297
0
    report_bad_nesting(opening, nest_loc->lineno, closing);
1298
0
    return FAILURE;
1299
0
  }
1300
1301
0
  zend_stack_del_top(&SCNG(nest_location_stack));
1302
0
  return SUCCESS;
1303
0
}
1304
1305
static zend_result check_nesting_at_end(void)
1306
0
{
1307
0
  if (!zend_stack_is_empty(&SCNG(nest_location_stack))) {
1308
0
    zend_nest_location *nest_loc = zend_stack_top(&SCNG(nest_location_stack));
1309
0
    report_bad_nesting(nest_loc->text, nest_loc->lineno, 0);
1310
0
    return FAILURE;
1311
0
  }
1312
1313
0
  return SUCCESS;
1314
0
}
1315
1316
#define PARSER_MODE() \
1317
0
  EXPECTED(elem != NULL)
1318
1319
0
#define RETURN_TOKEN(_token) do { \
1320
0
    token = _token; \
1321
0
    goto emit_token; \
1322
0
  } while (0)
1323
1324
0
#define RETURN_TOKEN_WITH_VAL(_token) do { \
1325
0
    token = _token; \
1326
0
    goto emit_token_with_val; \
1327
0
  } while (0)
1328
1329
0
#define RETURN_TOKEN_WITH_STR(_token, _offset) do { \
1330
0
    token = _token; \
1331
0
    offset = _offset; \
1332
0
    goto emit_token_with_str; \
1333
0
  } while (0)
1334
1335
0
#define RETURN_TOKEN_WITH_IDENT(_token) do { \
1336
0
    token = _token; \
1337
0
    goto emit_token_with_ident; \
1338
0
  } while (0)
1339
1340
0
#define RETURN_OR_SKIP_TOKEN(_token) do { \
1341
0
    token = _token; \
1342
0
    if (PARSER_MODE()) { \
1343
0
      goto skip_token; \
1344
0
    } \
1345
0
    goto emit_token; \
1346
0
  } while (0)
1347
1348
0
#define RETURN_EXIT_NESTING_TOKEN(_token) do { \
1349
0
    if (exit_nesting(_token) != SUCCESS && PARSER_MODE()) { \
1350
0
      RETURN_TOKEN(T_ERROR); \
1351
0
    } else { \
1352
0
      RETURN_TOKEN(_token); \
1353
0
    } \
1354
0
  } while(0)
1355
1356
0
#define RETURN_END_TOKEN do { \
1357
0
    if (check_nesting_at_end() != SUCCESS && PARSER_MODE()) { \
1358
0
      RETURN_TOKEN(T_ERROR); \
1359
0
    } else { \
1360
0
      RETURN_TOKEN(END); \
1361
0
    } \
1362
0
  } while (0)
1363
1364
int ZEND_FASTCALL lex_scan(zval *zendlval, zend_parser_stack_elem *elem)
1365
0
{
1366
0
int token;
1367
0
int offset;
1368
0
uint32_t start_line = CG(zend_lineno);
1369
1370
0
  ZVAL_UNDEF(zendlval);
1371
0
restart:
1372
0
  SCNG(yy_text) = YYCURSOR;
1373
1374
1375
0
#line 1376 "Zend/zend_language_scanner.c"
1376
0
{
1377
0
  YYCTYPE yych;
1378
0
  unsigned int yyaccept = 0;
1379
0
  if (YYGETCONDITION() < 5) {
1380
0
    if (YYGETCONDITION() < 2) {
1381
0
      if (YYGETCONDITION() < 1) {
1382
0
        goto yyc_ST_IN_SCRIPTING;
1383
0
      } else {
1384
0
        goto yyc_ST_LOOKING_FOR_PROPERTY;
1385
0
      }
1386
0
    } else {
1387
0
      if (YYGETCONDITION() < 3) {
1388
0
        goto yyc_ST_BACKQUOTE;
1389
0
      } else {
1390
0
        if (YYGETCONDITION() < 4) {
1391
0
          goto yyc_ST_DOUBLE_QUOTES;
1392
0
        } else {
1393
0
          goto yyc_ST_HEREDOC;
1394
0
        }
1395
0
      }
1396
0
    }
1397
0
  } else {
1398
0
    if (YYGETCONDITION() < 8) {
1399
0
      if (YYGETCONDITION() < 6) {
1400
0
        goto yyc_ST_LOOKING_FOR_VARNAME;
1401
0
      } else {
1402
0
        if (YYGETCONDITION() < 7) {
1403
0
          goto yyc_ST_VAR_OFFSET;
1404
0
        } else {
1405
0
          goto yyc_SHEBANG;
1406
0
        }
1407
0
      }
1408
0
    } else {
1409
0
      if (YYGETCONDITION() < 9) {
1410
0
        goto yyc_INITIAL;
1411
0
      } else {
1412
0
        if (YYGETCONDITION() < 10) {
1413
0
          goto yyc_ST_END_HEREDOC;
1414
0
        } else {
1415
0
          goto yyc_ST_NOWDOC;
1416
0
        }
1417
0
      }
1418
0
    }
1419
0
  }
1420
/* *********************************** */
1421
0
yyc_ST_IN_SCRIPTING:
1422
0
  {
1423
0
    static const unsigned char yybm[] = {
1424
      /* table 1 .. 8: 0 */
1425
0
        0, 134, 134, 134, 134, 134, 134, 134, 
1426
0
      134, 135,   4, 134, 134,   4, 134, 134, 
1427
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1428
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1429
0
      135, 134, 134, 134, 134, 134, 134, 134, 
1430
0
      134, 134,  66, 134, 134, 134, 134, 134, 
1431
0
      190, 190, 182, 182, 182, 182, 182, 182, 
1432
0
      166, 166, 134, 134, 134, 134, 134, 134, 
1433
0
      134, 166, 166, 166, 166, 166, 166, 134, 
1434
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1435
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1436
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1437
0
      134, 166, 166, 166, 166, 166, 166, 134, 
1438
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1439
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1440
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1441
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1442
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1443
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1444
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1445
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1446
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1447
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1448
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1449
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1450
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1451
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1452
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1453
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1454
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1455
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1456
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1457
      /* table 9 .. 11: 256 */
1458
0
        0,   0,   0,   0,   0,   0,   0,   0, 
1459
0
        0,  32,  32,   0,   0,  32,   0,   0, 
1460
0
        0,   0,   0,   0,   0,   0,   0,   0, 
1461
0
        0,   0,   0,   0,   0,   0,   0,   0, 
1462
0
       32,   0,   0,   0,   0,   0,   0,   0, 
1463
0
        0,   0,   0,   0,   0,   0,   0,   0, 
1464
0
      192, 192, 192, 192, 192, 192, 192, 192, 
1465
0
      192, 192,   0,   0,   0,   0,   0,   0, 
1466
0
        0, 128, 128, 128, 128, 128, 128, 128, 
1467
0
      128, 128, 128, 128, 128, 128, 128, 128, 
1468
0
      128, 128, 128, 128, 128, 128, 128, 128, 
1469
0
      128, 128, 128,   0,   0,   0,   0, 128, 
1470
0
        0, 128, 128, 128, 128, 128, 128, 128, 
1471
0
      128, 128, 128, 128, 128, 128, 128, 128, 
1472
0
      128, 128, 128, 128, 128, 128, 128, 128, 
1473
0
      128, 128, 128,   0,   0,   0,   0,   0, 
1474
0
      128, 128, 128, 128, 128, 128, 128, 128, 
1475
0
      128, 128, 128, 128, 128, 128, 128, 128, 
1476
0
      128, 128, 128, 128, 128, 128, 128, 128, 
1477
0
      128, 128, 128, 128, 128, 128, 128, 128, 
1478
0
      128, 128, 128, 128, 128, 128, 128, 128, 
1479
0
      128, 128, 128, 128, 128, 128, 128, 128, 
1480
0
      128, 128, 128, 128, 128, 128, 128, 128, 
1481
0
      128, 128, 128, 128, 128, 128, 128, 128, 
1482
0
      128, 128, 128, 128, 128, 128, 128, 128, 
1483
0
      128, 128, 128, 128, 128, 128, 128, 128, 
1484
0
      128, 128, 128, 128, 128, 128, 128, 128, 
1485
0
      128, 128, 128, 128, 128, 128, 128, 128, 
1486
0
      128, 128, 128, 128, 128, 128, 128, 128, 
1487
0
      128, 128, 128, 128, 128, 128, 128, 128, 
1488
0
      128, 128, 128, 128, 128, 128, 128, 128, 
1489
0
      128, 128, 128, 128, 128, 128, 128, 128, 
1490
0
    };
1491
0
    YYDEBUG(1, *YYCURSOR);
1492
0
    YYFILL(16);
1493
0
    yych = *YYCURSOR;
1494
0
    if (yybm[256+yych] & 32) {
1495
0
      goto yy5;
1496
0
    }
1497
0
    switch (yych) {
1498
0
    case 0x00:
1499
0
    case 0x01:
1500
0
    case 0x02:
1501
0
    case 0x03:
1502
0
    case 0x04:
1503
0
    case 0x05:
1504
0
    case 0x06:
1505
0
    case 0x07:
1506
0
    case 0x08:
1507
0
    case '\t':
1508
0
    case '\n':
1509
0
    case '\v':
1510
0
    case '\f':
1511
0
    case '\r':
1512
0
    case 0x0E:
1513
0
    case 0x0F:
1514
0
    case 0x10:
1515
0
    case 0x11:
1516
0
    case 0x12:
1517
0
    case 0x13:
1518
0
    case 0x14:
1519
0
    case 0x15:
1520
0
    case 0x16:
1521
0
    case 0x17:
1522
0
    case 0x18:
1523
0
    case 0x19:
1524
0
    case 0x1A:
1525
0
    case 0x1B:
1526
0
    case 0x1C:
1527
0
    case 0x1D:
1528
0
    case 0x1E:
1529
0
    case 0x1F:
1530
0
    case 0x7F:  goto yy3;
1531
0
    case ' ':
1532
0
    case '!': goto yy8;
1533
0
    case '"': goto yy10;
1534
0
    case '#': goto yy12;
1535
0
    case '$': goto yy14;
1536
0
    case '%': goto yy15;
1537
0
    case '&': goto yy16;
1538
0
    case '\'':  goto yy18;
1539
0
    case '(': goto yy20;
1540
0
    case ')':
1541
0
    case ']': goto yy22;
1542
0
    case '*': goto yy24;
1543
0
    case '+': goto yy25;
1544
0
    case ',':
1545
0
    case ';':
1546
0
    case '@':
1547
0
    case '~': goto yy26;
1548
0
    case '-': goto yy27;
1549
0
    case '.': goto yy28;
1550
0
    case '/': goto yy29;
1551
0
    case '0': goto yy30;
1552
0
    case '1':
1553
0
    case '2':
1554
0
    case '3':
1555
0
    case '4':
1556
0
    case '5':
1557
0
    case '6':
1558
0
    case '7':
1559
0
    case '8':
1560
0
    case '9': goto yy32;
1561
0
    case ':': goto yy34;
1562
0
    case '<': goto yy35;
1563
0
    case '=': goto yy36;
1564
0
    case '>': goto yy37;
1565
0
    case '?': goto yy38;
1566
0
    case 'A':
1567
0
    case 'a': goto yy39;
1568
0
    case 'B':
1569
0
    case 'b': goto yy41;
1570
0
    case 'C':
1571
0
    case 'c': goto yy42;
1572
0
    case 'D':
1573
0
    case 'd': goto yy43;
1574
0
    case 'E':
1575
0
    case 'e': goto yy44;
1576
0
    case 'F':
1577
0
    case 'f': goto yy45;
1578
0
    case 'G':
1579
0
    case 'g': goto yy46;
1580
0
    case 'I':
1581
0
    case 'i': goto yy49;
1582
0
    case 'L':
1583
0
    case 'l': goto yy50;
1584
0
    case 'M':
1585
0
    case 'm': goto yy51;
1586
0
    case 'N':
1587
0
    case 'n': goto yy52;
1588
0
    case 'O':
1589
0
    case 'o': goto yy53;
1590
0
    case 'P':
1591
0
    case 'p': goto yy54;
1592
0
    case 'R':
1593
0
    case 'r': goto yy55;
1594
0
    case 'S':
1595
0
    case 's': goto yy56;
1596
0
    case 'T':
1597
0
    case 't': goto yy57;
1598
0
    case 'U':
1599
0
    case 'u': goto yy58;
1600
0
    case 'V':
1601
0
    case 'v': goto yy59;
1602
0
    case 'W':
1603
0
    case 'w': goto yy60;
1604
0
    case 'X':
1605
0
    case 'x': goto yy61;
1606
0
    case 'Y':
1607
0
    case 'y': goto yy62;
1608
0
    case '[': goto yy63;
1609
0
    case '\\':  goto yy64;
1610
0
    case '^': goto yy66;
1611
0
    case '_': goto yy67;
1612
0
    case '`': goto yy68;
1613
0
    case '{': goto yy70;
1614
0
    case '|': goto yy72;
1615
0
    case '}': goto yy73;
1616
0
    default:  goto yy47;
1617
0
    }
1618
0
yy3:
1619
0
    YYDEBUG(3, *YYCURSOR);
1620
0
    ++YYCURSOR;
1621
0
    YYDEBUG(4, *YYCURSOR);
1622
0
    yyleng = YYCURSOR - SCNG(yy_text);
1623
0
#line 3180 "Zend/zend_language_scanner.l"
1624
0
    {
1625
0
  if (YYCURSOR > YYLIMIT) {
1626
0
    RETURN_END_TOKEN;
1627
0
  }
1628
1629
0
  RETURN_TOKEN(T_BAD_CHARACTER);
1630
0
}
1631
0
#line 1632 "Zend/zend_language_scanner.c"
1632
0
yy5:
1633
0
    YYDEBUG(5, *YYCURSOR);
1634
0
    ++YYCURSOR;
1635
0
    YYFILL(1);
1636
0
    yych = *YYCURSOR;
1637
0
    YYDEBUG(6, *YYCURSOR);
1638
0
    if (yybm[256+yych] & 32) {
1639
0
      goto yy5;
1640
0
    }
1641
0
    YYDEBUG(7, *YYCURSOR);
1642
0
    yyleng = YYCURSOR - SCNG(yy_text);
1643
0
#line 1597 "Zend/zend_language_scanner.l"
1644
0
    {
1645
0
  goto return_whitespace;
1646
0
}
1647
0
#line 1648 "Zend/zend_language_scanner.c"
1648
0
yy8:
1649
0
    YYDEBUG(8, *YYCURSOR);
1650
0
    yych = *++YYCURSOR;
1651
0
    if (yych == '=') goto yy75;
1652
0
yy9:
1653
0
    YYDEBUG(9, *YYCURSOR);
1654
0
    yyleng = YYCURSOR - SCNG(yy_text);
1655
0
#line 1969 "Zend/zend_language_scanner.l"
1656
0
    {
1657
0
  RETURN_TOKEN(yytext[0]);
1658
0
}
1659
0
#line 1660 "Zend/zend_language_scanner.c"
1660
0
yy10:
1661
0
    YYDEBUG(10, *YYCURSOR);
1662
0
    ++YYCURSOR;
1663
0
    YYDEBUG(11, *YYCURSOR);
1664
0
    yyleng = YYCURSOR - SCNG(yy_text);
1665
0
#line 2632 "Zend/zend_language_scanner.l"
1666
0
    {
1667
0
  int bprefix = (yytext[0] != '"') ? 1 : 0;
1668
1669
0
  while (YYCURSOR < YYLIMIT) {
1670
0
    switch (*YYCURSOR++) {
1671
0
      case '"':
1672
0
        yyleng = YYCURSOR - SCNG(yy_text);
1673
0
        if (EXPECTED(zend_scan_escape_string(zendlval, yytext+bprefix+1, yyleng-bprefix-2, '"') == SUCCESS)
1674
0
         || !PARSER_MODE()) {
1675
0
          RETURN_TOKEN_WITH_VAL(T_CONSTANT_ENCAPSED_STRING);
1676
0
        } else {
1677
0
          RETURN_TOKEN(T_ERROR);
1678
0
        }
1679
0
      case '$':
1680
0
        if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
1681
0
          break;
1682
0
        }
1683
0
        continue;
1684
0
      case '{':
1685
0
        if (*YYCURSOR == '$') {
1686
0
          break;
1687
0
        }
1688
0
        continue;
1689
0
      case '\\':
1690
0
        if (YYCURSOR < YYLIMIT) {
1691
0
          YYCURSOR++;
1692
0
        }
1693
0
        ZEND_FALLTHROUGH;
1694
0
      default:
1695
0
        continue;
1696
0
    }
1697
1698
0
    YYCURSOR--;
1699
0
    break;
1700
0
  }
1701
1702
  /* Remember how much was scanned to save rescanning */
1703
0
  SET_DOUBLE_QUOTES_SCANNED_LENGTH(YYCURSOR - SCNG(yy_text) - yyleng);
1704
1705
0
  YYCURSOR = SCNG(yy_text) + yyleng;
1706
1707
0
  BEGIN(ST_DOUBLE_QUOTES);
1708
0
  RETURN_TOKEN('"');
1709
0
}
1710
0
#line 1711 "Zend/zend_language_scanner.c"
1711
0
yy12:
1712
0
    YYDEBUG(12, *YYCURSOR);
1713
0
    yych = *++YYCURSOR;
1714
0
    if (yych == '[') goto yy77;
1715
0
yy13:
1716
0
    YYDEBUG(13, *YYCURSOR);
1717
0
    yyleng = YYCURSOR - SCNG(yy_text);
1718
0
#line 2460 "Zend/zend_language_scanner.l"
1719
0
    {
1720
0
  while (YYCURSOR < YYLIMIT) {
1721
0
    switch (*YYCURSOR++) {
1722
0
      case '\r':
1723
0
      case '\n':
1724
0
        YYCURSOR--;
1725
0
        break;
1726
0
      case '?':
1727
0
        if (*YYCURSOR == '>') {
1728
0
          YYCURSOR--;
1729
0
          break;
1730
0
        }
1731
0
        ZEND_FALLTHROUGH;
1732
0
      default:
1733
0
        continue;
1734
0
    }
1735
1736
0
    break;
1737
0
  }
1738
1739
0
  yyleng = YYCURSOR - SCNG(yy_text);
1740
0
  RETURN_OR_SKIP_TOKEN(T_COMMENT);
1741
0
}
1742
0
#line 1743 "Zend/zend_language_scanner.c"
1743
0
yy14:
1744
0
    YYDEBUG(14, *YYCURSOR);
1745
0
    yych = *++YYCURSOR;
1746
0
    if (yych <= '_') {
1747
0
      if (yych <= '@') goto yy9;
1748
0
      if (yych <= 'Z') goto yy79;
1749
0
      if (yych <= '^') goto yy9;
1750
0
      goto yy79;
1751
0
    } else {
1752
0
      if (yych <= '`') goto yy9;
1753
0
      if (yych <= 'z') goto yy79;
1754
0
      if (yych <= 0x7F) goto yy9;
1755
0
      goto yy79;
1756
0
    }
1757
0
yy15:
1758
0
    YYDEBUG(15, *YYCURSOR);
1759
0
    yych = *++YYCURSOR;
1760
0
    if (yych == '=') goto yy82;
1761
0
    goto yy9;
1762
0
yy16:
1763
0
    YYDEBUG(16, *YYCURSOR);
1764
0
    yyaccept = 0;
1765
0
    yych = *(YYMARKER = ++YYCURSOR);
1766
0
    if (yych <= '"') {
1767
0
      if (yych <= '\f') {
1768
0
        if (yych <= 0x08) goto yy17;
1769
0
        if (yych <= '\n') goto yy85;
1770
0
      } else {
1771
0
        if (yych <= '\r') goto yy85;
1772
0
        if (yych == ' ') goto yy85;
1773
0
      }
1774
0
    } else {
1775
0
      if (yych <= '-') {
1776
0
        if (yych <= '$') goto yy85;
1777
0
        if (yych == '&') goto yy90;
1778
0
      } else {
1779
0
        if (yych <= '/') goto yy85;
1780
0
        if (yych == '=') goto yy94;
1781
0
      }
1782
0
    }
1783
0
yy17:
1784
0
    YYDEBUG(17, *YYCURSOR);
1785
0
    yyleng = YYCURSOR - SCNG(yy_text);
1786
0
#line 1955 "Zend/zend_language_scanner.l"
1787
0
    {
1788
0
  RETURN_TOKEN(T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG);
1789
0
}
1790
0
#line 1791 "Zend/zend_language_scanner.c"
1791
0
yy18:
1792
0
    YYDEBUG(18, *YYCURSOR);
1793
0
    ++YYCURSOR;
1794
0
    YYDEBUG(19, *YYCURSOR);
1795
0
    yyleng = YYCURSOR - SCNG(yy_text);
1796
0
#line 2538 "Zend/zend_language_scanner.l"
1797
0
    {
1798
0
  char *s, *t;
1799
0
  char *end;
1800
0
  int bprefix = (yytext[0] != '\'') ? 1 : 0;
1801
1802
0
  while (1) {
1803
0
    if (YYCURSOR < YYLIMIT) {
1804
0
      if (*YYCURSOR == '\'') {
1805
0
        YYCURSOR++;
1806
0
        yyleng = YYCURSOR - SCNG(yy_text);
1807
1808
0
        break;
1809
0
      } else if (*YYCURSOR++ == '\\' && YYCURSOR < YYLIMIT) {
1810
0
        YYCURSOR++;
1811
0
      }
1812
0
    } else {
1813
0
      yyleng = YYLIMIT - SCNG(yy_text);
1814
1815
      /* Unclosed single quotes; treat similar to double quotes, but without a separate token
1816
       * for ' (unrecognized by parser), instead of old flex fallback to "Unexpected character..."
1817
       * rule, which continued in ST_IN_SCRIPTING state after the quote */
1818
0
      ZVAL_NULL(zendlval);
1819
0
      RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
1820
0
    }
1821
0
  }
1822
1823
0
  if (yyleng-bprefix-2 <= 1) {
1824
0
    if (yyleng-bprefix-2 < 1) {
1825
0
      ZVAL_EMPTY_STRING(zendlval);
1826
0
    } else {
1827
0
      zend_uchar c = (zend_uchar)*(yytext+bprefix+1);
1828
0
      HANDLE_NEWLINE(c);
1829
0
      ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR(c));
1830
0
    }
1831
0
    goto skip_escape_conversion;
1832
0
  }
1833
0
  ZVAL_STRINGL(zendlval, yytext+bprefix+1, yyleng-bprefix-2);
1834
1835
  /* convert escape sequences */
1836
0
  s = Z_STRVAL_P(zendlval);
1837
0
  end = s+Z_STRLEN_P(zendlval);
1838
0
  while (1) {
1839
0
    if (UNEXPECTED(*s=='\\')) {
1840
0
      break;
1841
0
    }
1842
0
    if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
1843
0
      CG(zend_lineno)++;
1844
0
    }
1845
0
    s++;
1846
0
    if (s == end) {
1847
0
      goto skip_escape_conversion;
1848
0
    }
1849
0
  }
1850
1851
0
  t = s;
1852
0
  while (s<end) {
1853
0
    if (*s=='\\') {
1854
0
      s++;
1855
0
      if (*s == '\\' || *s == '\'') {
1856
0
        *t++ = *s;
1857
0
      } else {
1858
0
        *t++ = '\\';
1859
0
        *t++ = *s;
1860
0
      }
1861
0
    } else {
1862
0
      *t++ = *s;
1863
0
    }
1864
0
    if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
1865
0
      CG(zend_lineno)++;
1866
0
    }
1867
0
    s++;
1868
0
  }
1869
0
  *t = 0;
1870
0
  Z_STRLEN_P(zendlval) = t - Z_STRVAL_P(zendlval);
1871
1872
0
skip_escape_conversion:
1873
0
  if (SCNG(output_filter)) {
1874
0
    size_t sz = 0;
1875
0
    char *str = NULL;
1876
0
    zend_string *new_str;
1877
0
    s = Z_STRVAL_P(zendlval);
1878
    // TODO: avoid reallocation ???
1879
0
    SCNG(output_filter)((unsigned char **)&str, &sz, (unsigned char *)s, Z_STRLEN_P(zendlval));
1880
0
    new_str = zend_string_init(str, sz, 0);
1881
0
    if (str != s) {
1882
0
      efree(str);
1883
0
    }
1884
0
    zend_string_release_ex(Z_STR_P(zendlval), 0);
1885
0
    ZVAL_STR(zendlval, new_str);
1886
0
  }
1887
0
  RETURN_TOKEN_WITH_VAL(T_CONSTANT_ENCAPSED_STRING);
1888
0
}
1889
0
#line 1890 "Zend/zend_language_scanner.c"
1890
0
yy20:
1891
0
    YYDEBUG(20, *YYCURSOR);
1892
0
    yyaccept = 1;
1893
0
    yych = *(YYMARKER = ++YYCURSOR);
1894
0
    if (yych <= 'S') {
1895
0
      if (yych <= 'D') {
1896
0
        if (yych <= ' ') {
1897
0
          if (yych == '\t') goto yy97;
1898
0
          if (yych >= ' ') goto yy97;
1899
0
        } else {
1900
0
          if (yych <= '@') goto yy21;
1901
0
          if (yych != 'C') goto yy97;
1902
0
        }
1903
0
      } else {
1904
0
        if (yych <= 'I') {
1905
0
          if (yych == 'F') goto yy97;
1906
0
          if (yych >= 'I') goto yy97;
1907
0
        } else {
1908
0
          if (yych == 'O') goto yy97;
1909
0
          if (yych >= 'R') goto yy97;
1910
0
        }
1911
0
      }
1912
0
    } else {
1913
0
      if (yych <= 'f') {
1914
0
        if (yych <= 'b') {
1915
0
          if (yych <= 'T') goto yy21;
1916
0
          if (yych <= 'V') goto yy97;
1917
0
          if (yych >= 'a') goto yy97;
1918
0
        } else {
1919
0
          if (yych == 'd') goto yy97;
1920
0
          if (yych >= 'f') goto yy97;
1921
0
        }
1922
0
      } else {
1923
0
        if (yych <= 'o') {
1924
0
          if (yych == 'i') goto yy97;
1925
0
          if (yych >= 'o') goto yy97;
1926
0
        } else {
1927
0
          if (yych <= 's') {
1928
0
            if (yych >= 'r') goto yy97;
1929
0
          } else {
1930
0
            if (yych <= 't') goto yy21;
1931
0
            if (yych <= 'v') goto yy97;
1932
0
          }
1933
0
        }
1934
0
      }
1935
0
    }
1936
0
yy21:
1937
0
    YYDEBUG(21, *YYCURSOR);
1938
0
    yyleng = YYCURSOR - SCNG(yy_text);
1939
0
#line 1964 "Zend/zend_language_scanner.l"
1940
0
    {
1941
0
  enter_nesting(yytext[0]);
1942
0
  RETURN_TOKEN(yytext[0]);
1943
0
}
1944
0
#line 1945 "Zend/zend_language_scanner.c"
1945
0
yy22:
1946
0
    YYDEBUG(22, *YYCURSOR);
1947
0
    ++YYCURSOR;
1948
0
    YYDEBUG(23, *YYCURSOR);
1949
0
    yyleng = YYCURSOR - SCNG(yy_text);
1950
0
#line 1959 "Zend/zend_language_scanner.l"
1951
0
    {
1952
  /* Check that ] and ) match up properly with a preceding [ or ( */
1953
0
  RETURN_EXIT_NESTING_TOKEN(yytext[0]);
1954
0
}
1955
0
#line 1956 "Zend/zend_language_scanner.c"
1956
0
yy24:
1957
0
    YYDEBUG(24, *YYCURSOR);
1958
0
    yych = *++YYCURSOR;
1959
0
    if (yych == '*') goto yy108;
1960
0
    if (yych == '=') goto yy110;
1961
0
    goto yy9;
1962
0
yy25:
1963
0
    YYDEBUG(25, *YYCURSOR);
1964
0
    yych = *++YYCURSOR;
1965
0
    if (yych == '+') goto yy112;
1966
0
    if (yych == '=') goto yy114;
1967
0
    goto yy9;
1968
0
yy26:
1969
0
    YYDEBUG(26, *YYCURSOR);
1970
0
    ++YYCURSOR;
1971
0
    goto yy9;
1972
0
yy27:
1973
0
    YYDEBUG(27, *YYCURSOR);
1974
0
    yych = *++YYCURSOR;
1975
0
    if (yych <= '<') {
1976
0
      if (yych == '-') goto yy116;
1977
0
      goto yy9;
1978
0
    } else {
1979
0
      if (yych <= '=') goto yy118;
1980
0
      if (yych <= '>') goto yy120;
1981
0
      goto yy9;
1982
0
    }
1983
0
yy28:
1984
0
    YYDEBUG(28, *YYCURSOR);
1985
0
    yyaccept = 2;
1986
0
    yych = *(YYMARKER = ++YYCURSOR);
1987
0
    if (yych <= '/') {
1988
0
      if (yych == '.') goto yy122;
1989
0
      goto yy9;
1990
0
    } else {
1991
0
      if (yych <= '9') goto yy123;
1992
0
      if (yych == '=') goto yy126;
1993
0
      goto yy9;
1994
0
    }
1995
0
yy29:
1996
0
    YYDEBUG(29, *YYCURSOR);
1997
0
    yych = *++YYCURSOR;
1998
0
    if (yych <= '.') {
1999
0
      if (yych == '*') goto yy128;
2000
0
      goto yy9;
2001
0
    } else {
2002
0
      if (yych <= '/') goto yy130;
2003
0
      if (yych == '=') goto yy131;
2004
0
      goto yy9;
2005
0
    }
2006
0
yy30:
2007
0
    YYDEBUG(30, *YYCURSOR);
2008
0
    yyaccept = 3;
2009
0
    yych = *(YYMARKER = ++YYCURSOR);
2010
0
    if (yych <= 'X') {
2011
0
      if (yych <= 'N') {
2012
0
        if (yych == 'B') goto yy134;
2013
0
        goto yy33;
2014
0
      } else {
2015
0
        if (yych <= 'O') goto yy136;
2016
0
        if (yych <= 'W') goto yy33;
2017
0
        goto yy137;
2018
0
      }
2019
0
    } else {
2020
0
      if (yych <= 'n') {
2021
0
        if (yych == 'b') goto yy134;
2022
0
        goto yy33;
2023
0
      } else {
2024
0
        if (yych <= 'o') goto yy136;
2025
0
        if (yych == 'x') goto yy137;
2026
0
        goto yy33;
2027
0
      }
2028
0
    }
2029
0
yy31:
2030
0
    YYDEBUG(31, *YYCURSOR);
2031
0
    yyleng = YYCURSOR - SCNG(yy_text);
2032
0
#line 2103 "Zend/zend_language_scanner.l"
2033
0
    {
2034
0
  size_t len = yyleng;
2035
0
  char *end, *lnum = yytext;
2036
0
  bool is_octal = lnum[0] == '0';
2037
0
  bool contains_underscores = (memchr(lnum, '_', len) != NULL);
2038
2039
0
  if (contains_underscores) {
2040
0
    lnum = estrndup(lnum, len);
2041
0
    strip_underscores(lnum, &len);
2042
0
  }
2043
2044
  /* Digits 8 and 9 are illegal in octal literals. */
2045
0
  if (is_octal) {
2046
0
    size_t i;
2047
0
    for (i = 0; i < len; i++) {
2048
0
      if (lnum[i] == '8' || lnum[i] == '9') {
2049
0
        zend_throw_exception(zend_ce_parse_error, "Invalid numeric literal", 0);
2050
0
        if (PARSER_MODE()) {
2051
0
          if (contains_underscores) {
2052
0
            efree(lnum);
2053
0
          }
2054
0
          ZVAL_UNDEF(zendlval);
2055
0
          RETURN_TOKEN(T_ERROR);
2056
0
        }
2057
2058
        /* Continue in order to determine if this is T_LNUMBER or T_DNUMBER. */
2059
0
        len = i;
2060
0
        break;
2061
0
      }
2062
0
    }
2063
0
  }
2064
2065
2066
0
  if (len < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
2067
0
    errno = 0;
2068
    /* base must be passed explicitly for correct parse error on Windows */
2069
0
    ZVAL_LONG(zendlval, ZEND_STRTOL(lnum, &end, is_octal ? 8 : 10));
2070
0
    ZEND_ASSERT(end == lnum + len);
2071
0
  } else {
2072
0
    errno = 0;
2073
0
    ZVAL_LONG(zendlval, ZEND_STRTOL(lnum, &end, 0));
2074
0
    if (errno == ERANGE) { /* Overflow */
2075
0
      errno = 0;
2076
0
      if (is_octal) { /* octal overflow */
2077
0
        ZVAL_DOUBLE(zendlval, zend_oct_strtod(lnum, (const char **)&end));
2078
0
      } else {
2079
0
        ZVAL_DOUBLE(zendlval, zend_strtod(lnum, (const char **)&end));
2080
0
      }
2081
0
      ZEND_ASSERT(end == lnum + len);
2082
0
      if (contains_underscores) {
2083
0
        efree(lnum);
2084
0
      }
2085
0
      RETURN_TOKEN_WITH_VAL(T_DNUMBER);
2086
0
    }
2087
0
    ZEND_ASSERT(end == lnum + len);
2088
0
  }
2089
0
  ZEND_ASSERT(!errno);
2090
0
  if (contains_underscores) {
2091
0
    efree(lnum);
2092
0
  }
2093
0
  RETURN_TOKEN_WITH_VAL(T_LNUMBER);
2094
0
}
2095
0
#line 2096 "Zend/zend_language_scanner.c"
2096
0
yy32:
2097
0
    YYDEBUG(32, *YYCURSOR);
2098
0
    yyaccept = 3;
2099
0
    YYMARKER = ++YYCURSOR;
2100
0
    YYFILL(3);
2101
0
    yych = *YYCURSOR;
2102
0
yy33:
2103
0
    YYDEBUG(33, *YYCURSOR);
2104
0
    if (yybm[256+yych] & 64) {
2105
0
      goto yy32;
2106
0
    }
2107
0
    if (yych <= 'E') {
2108
0
      if (yych == '.') goto yy133;
2109
0
      if (yych <= 'D') goto yy31;
2110
0
      goto yy135;
2111
0
    } else {
2112
0
      if (yych <= '_') {
2113
0
        if (yych <= '^') goto yy31;
2114
0
        goto yy138;
2115
0
      } else {
2116
0
        if (yych == 'e') goto yy135;
2117
0
        goto yy31;
2118
0
      }
2119
0
    }
2120
0
yy34:
2121
0
    YYDEBUG(34, *YYCURSOR);
2122
0
    yych = *++YYCURSOR;
2123
0
    if (yych == ':') goto yy139;
2124
0
    goto yy9;
2125
0
yy35:
2126
0
    YYDEBUG(35, *YYCURSOR);
2127
0
    yych = *++YYCURSOR;
2128
0
    if (yych <= ';') goto yy9;
2129
0
    if (yych <= '<') goto yy141;
2130
0
    if (yych <= '=') goto yy143;
2131
0
    if (yych <= '>') goto yy145;
2132
0
    goto yy9;
2133
0
yy36:
2134
0
    YYDEBUG(36, *YYCURSOR);
2135
0
    yych = *++YYCURSOR;
2136
0
    if (yych <= '<') goto yy9;
2137
0
    if (yych <= '=') goto yy146;
2138
0
    if (yych <= '>') goto yy148;
2139
0
    goto yy9;
2140
0
yy37:
2141
0
    YYDEBUG(37, *YYCURSOR);
2142
0
    yych = *++YYCURSOR;
2143
0
    if (yych <= '<') goto yy9;
2144
0
    if (yych <= '=') goto yy150;
2145
0
    if (yych <= '>') goto yy152;
2146
0
    goto yy9;
2147
0
yy38:
2148
0
    YYDEBUG(38, *YYCURSOR);
2149
0
    yyaccept = 2;
2150
0
    yych = *(YYMARKER = ++YYCURSOR);
2151
0
    if (yych <= '=') {
2152
0
      if (yych == '-') goto yy154;
2153
0
      goto yy9;
2154
0
    } else {
2155
0
      if (yych <= '>') goto yy155;
2156
0
      if (yych <= '?') goto yy157;
2157
0
      goto yy9;
2158
0
    }
2159
0
yy39:
2160
0
    YYDEBUG(39, *YYCURSOR);
2161
0
    yyaccept = 4;
2162
0
    yych = *(YYMARKER = ++YYCURSOR);
2163
0
    if (yych <= 'S') {
2164
0
      if (yych <= 'M') {
2165
0
        if (yych == 'B') goto yy159;
2166
0
        goto yy48;
2167
0
      } else {
2168
0
        if (yych <= 'N') goto yy160;
2169
0
        if (yych <= 'Q') goto yy48;
2170
0
        if (yych <= 'R') goto yy161;
2171
0
        goto yy162;
2172
0
      }
2173
0
    } else {
2174
0
      if (yych <= 'n') {
2175
0
        if (yych == 'b') goto yy159;
2176
0
        if (yych <= 'm') goto yy48;
2177
0
        goto yy160;
2178
0
      } else {
2179
0
        if (yych <= 'q') goto yy48;
2180
0
        if (yych <= 'r') goto yy161;
2181
0
        if (yych <= 's') goto yy162;
2182
0
        goto yy48;
2183
0
      }
2184
0
    }
2185
0
yy40:
2186
0
    YYDEBUG(40, *YYCURSOR);
2187
0
    yyleng = YYCURSOR - SCNG(yy_text);
2188
0
#line 2455 "Zend/zend_language_scanner.l"
2189
0
    {
2190
0
  RETURN_TOKEN_WITH_STR(T_STRING, 0);
2191
0
}
2192
0
#line 2193 "Zend/zend_language_scanner.c"
2193
0
yy41:
2194
0
    YYDEBUG(41, *YYCURSOR);
2195
0
    yyaccept = 4;
2196
0
    yych = *(YYMARKER = ++YYCURSOR);
2197
0
    if (yych <= ';') {
2198
0
      if (yych <= '"') {
2199
0
        if (yych <= '!') goto yy48;
2200
0
        goto yy10;
2201
0
      } else {
2202
0
        if (yych == '\'') goto yy18;
2203
0
        goto yy48;
2204
0
      }
2205
0
    } else {
2206
0
      if (yych <= 'R') {
2207
0
        if (yych <= '<') goto yy165;
2208
0
        if (yych <= 'Q') goto yy48;
2209
0
        goto yy166;
2210
0
      } else {
2211
0
        if (yych == 'r') goto yy166;
2212
0
        goto yy48;
2213
0
      }
2214
0
    }
2215
0
yy42:
2216
0
    YYDEBUG(42, *YYCURSOR);
2217
0
    yyaccept = 4;
2218
0
    yych = *(YYMARKER = ++YYCURSOR);
2219
0
    if (yych <= 'O') {
2220
0
      if (yych <= 'K') {
2221
0
        if (yych == 'A') goto yy167;
2222
0
        goto yy48;
2223
0
      } else {
2224
0
        if (yych <= 'L') goto yy168;
2225
0
        if (yych <= 'N') goto yy48;
2226
0
        goto yy169;
2227
0
      }
2228
0
    } else {
2229
0
      if (yych <= 'k') {
2230
0
        if (yych == 'a') goto yy167;
2231
0
        goto yy48;
2232
0
      } else {
2233
0
        if (yych <= 'l') goto yy168;
2234
0
        if (yych == 'o') goto yy169;
2235
0
        goto yy48;
2236
0
      }
2237
0
    }
2238
0
yy43:
2239
0
    YYDEBUG(43, *YYCURSOR);
2240
0
    yyaccept = 4;
2241
0
    yych = *(YYMARKER = ++YYCURSOR);
2242
0
    if (yych <= 'O') {
2243
0
      if (yych <= 'H') {
2244
0
        if (yych == 'E') goto yy170;
2245
0
        goto yy48;
2246
0
      } else {
2247
0
        if (yych <= 'I') goto yy171;
2248
0
        if (yych <= 'N') goto yy48;
2249
0
        goto yy172;
2250
0
      }
2251
0
    } else {
2252
0
      if (yych <= 'h') {
2253
0
        if (yych == 'e') goto yy170;
2254
0
        goto yy48;
2255
0
      } else {
2256
0
        if (yych <= 'i') goto yy171;
2257
0
        if (yych == 'o') goto yy172;
2258
0
        goto yy48;
2259
0
      }
2260
0
    }
2261
0
yy44:
2262
0
    YYDEBUG(44, *YYCURSOR);
2263
0
    yyaccept = 4;
2264
0
    yych = *(YYMARKER = ++YYCURSOR);
2265
0
    switch (yych) {
2266
0
    case 'C':
2267
0
    case 'c': goto yy174;
2268
0
    case 'L':
2269
0
    case 'l': goto yy175;
2270
0
    case 'M':
2271
0
    case 'm': goto yy176;
2272
0
    case 'N':
2273
0
    case 'n': goto yy177;
2274
0
    case 'V':
2275
0
    case 'v': goto yy178;
2276
0
    case 'X':
2277
0
    case 'x': goto yy179;
2278
0
    default:  goto yy48;
2279
0
    }
2280
0
yy45:
2281
0
    YYDEBUG(45, *YYCURSOR);
2282
0
    yyaccept = 4;
2283
0
    yych = *(YYMARKER = ++YYCURSOR);
2284
0
    if (yych <= 'U') {
2285
0
      if (yych <= 'M') {
2286
0
        if (yych == 'I') goto yy180;
2287
0
        goto yy48;
2288
0
      } else {
2289
0
        if (yych <= 'N') goto yy181;
2290
0
        if (yych <= 'O') goto yy183;
2291
0
        if (yych <= 'T') goto yy48;
2292
0
        goto yy184;
2293
0
      }
2294
0
    } else {
2295
0
      if (yych <= 'n') {
2296
0
        if (yych == 'i') goto yy180;
2297
0
        if (yych <= 'm') goto yy48;
2298
0
        goto yy181;
2299
0
      } else {
2300
0
        if (yych <= 'o') goto yy183;
2301
0
        if (yych == 'u') goto yy184;
2302
0
        goto yy48;
2303
0
      }
2304
0
    }
2305
0
yy46:
2306
0
    YYDEBUG(46, *YYCURSOR);
2307
0
    yyaccept = 4;
2308
0
    yych = *(YYMARKER = ++YYCURSOR);
2309
0
    if (yych <= 'O') {
2310
0
      if (yych == 'L') goto yy185;
2311
0
      if (yych <= 'N') goto yy48;
2312
0
      goto yy186;
2313
0
    } else {
2314
0
      if (yych <= 'l') {
2315
0
        if (yych <= 'k') goto yy48;
2316
0
        goto yy185;
2317
0
      } else {
2318
0
        if (yych == 'o') goto yy186;
2319
0
        goto yy48;
2320
0
      }
2321
0
    }
2322
0
yy47:
2323
0
    YYDEBUG(47, *YYCURSOR);
2324
0
    yyaccept = 4;
2325
0
    YYMARKER = ++YYCURSOR;
2326
0
    YYFILL(1);
2327
0
    yych = *YYCURSOR;
2328
0
yy48:
2329
0
    YYDEBUG(48, *YYCURSOR);
2330
0
    if (yybm[256+yych] & 128) {
2331
0
      goto yy47;
2332
0
    }
2333
0
    if (yych == '\\') goto yy164;
2334
0
    goto yy40;
2335
0
yy49:
2336
0
    YYDEBUG(49, *YYCURSOR);
2337
0
    yyaccept = 4;
2338
0
    yych = *(YYMARKER = ++YYCURSOR);
2339
0
    if (yych <= 'S') {
2340
0
      if (yych <= 'L') {
2341
0
        if (yych == 'F') goto yy187;
2342
0
        goto yy48;
2343
0
      } else {
2344
0
        if (yych <= 'M') goto yy189;
2345
0
        if (yych <= 'N') goto yy190;
2346
0
        if (yych <= 'R') goto yy48;
2347
0
        goto yy191;
2348
0
      }
2349
0
    } else {
2350
0
      if (yych <= 'm') {
2351
0
        if (yych == 'f') goto yy187;
2352
0
        if (yych <= 'l') goto yy48;
2353
0
        goto yy189;
2354
0
      } else {
2355
0
        if (yych <= 'n') goto yy190;
2356
0
        if (yych == 's') goto yy191;
2357
0
        goto yy48;
2358
0
      }
2359
0
    }
2360
0
yy50:
2361
0
    YYDEBUG(50, *YYCURSOR);
2362
0
    yyaccept = 4;
2363
0
    yych = *(YYMARKER = ++YYCURSOR);
2364
0
    if (yych == 'I') goto yy192;
2365
0
    if (yych == 'i') goto yy192;
2366
0
    goto yy48;
2367
0
yy51:
2368
0
    YYDEBUG(51, *YYCURSOR);
2369
0
    yyaccept = 4;
2370
0
    yych = *(YYMARKER = ++YYCURSOR);
2371
0
    if (yych == 'A') goto yy193;
2372
0
    if (yych == 'a') goto yy193;
2373
0
    goto yy48;
2374
0
yy52:
2375
0
    YYDEBUG(52, *YYCURSOR);
2376
0
    yyaccept = 4;
2377
0
    yych = *(YYMARKER = ++YYCURSOR);
2378
0
    if (yych <= 'E') {
2379
0
      if (yych == 'A') goto yy194;
2380
0
      if (yych <= 'D') goto yy48;
2381
0
      goto yy195;
2382
0
    } else {
2383
0
      if (yych <= 'a') {
2384
0
        if (yych <= '`') goto yy48;
2385
0
        goto yy194;
2386
0
      } else {
2387
0
        if (yych == 'e') goto yy195;
2388
0
        goto yy48;
2389
0
      }
2390
0
    }
2391
0
yy53:
2392
0
    YYDEBUG(53, *YYCURSOR);
2393
0
    yyaccept = 4;
2394
0
    yych = *(YYMARKER = ++YYCURSOR);
2395
0
    if (yych == 'R') goto yy196;
2396
0
    if (yych == 'r') goto yy196;
2397
0
    goto yy48;
2398
0
yy54:
2399
0
    YYDEBUG(54, *YYCURSOR);
2400
0
    yyaccept = 4;
2401
0
    yych = *(YYMARKER = ++YYCURSOR);
2402
0
    if (yych <= 'U') {
2403
0
      if (yych == 'R') goto yy198;
2404
0
      if (yych <= 'T') goto yy48;
2405
0
      goto yy199;
2406
0
    } else {
2407
0
      if (yych <= 'r') {
2408
0
        if (yych <= 'q') goto yy48;
2409
0
        goto yy198;
2410
0
      } else {
2411
0
        if (yych == 'u') goto yy199;
2412
0
        goto yy48;
2413
0
      }
2414
0
    }
2415
0
yy55:
2416
0
    YYDEBUG(55, *YYCURSOR);
2417
0
    yyaccept = 4;
2418
0
    yych = *(YYMARKER = ++YYCURSOR);
2419
0
    if (yych == 'E') goto yy200;
2420
0
    if (yych == 'e') goto yy200;
2421
0
    goto yy48;
2422
0
yy56:
2423
0
    YYDEBUG(56, *YYCURSOR);
2424
0
    yyaccept = 4;
2425
0
    yych = *(YYMARKER = ++YYCURSOR);
2426
0
    if (yych <= 'W') {
2427
0
      if (yych == 'T') goto yy201;
2428
0
      if (yych <= 'V') goto yy48;
2429
0
      goto yy202;
2430
0
    } else {
2431
0
      if (yych <= 't') {
2432
0
        if (yych <= 's') goto yy48;
2433
0
        goto yy201;
2434
0
      } else {
2435
0
        if (yych == 'w') goto yy202;
2436
0
        goto yy48;
2437
0
      }
2438
0
    }
2439
0
yy57:
2440
0
    YYDEBUG(57, *YYCURSOR);
2441
0
    yyaccept = 4;
2442
0
    yych = *(YYMARKER = ++YYCURSOR);
2443
0
    if (yych <= 'R') {
2444
0
      if (yych == 'H') goto yy203;
2445
0
      if (yych <= 'Q') goto yy48;
2446
0
      goto yy204;
2447
0
    } else {
2448
0
      if (yych <= 'h') {
2449
0
        if (yych <= 'g') goto yy48;
2450
0
        goto yy203;
2451
0
      } else {
2452
0
        if (yych == 'r') goto yy204;
2453
0
        goto yy48;
2454
0
      }
2455
0
    }
2456
0
yy58:
2457
0
    YYDEBUG(58, *YYCURSOR);
2458
0
    yyaccept = 4;
2459
0
    yych = *(YYMARKER = ++YYCURSOR);
2460
0
    if (yych <= 'S') {
2461
0
      if (yych == 'N') goto yy205;
2462
0
      if (yych <= 'R') goto yy48;
2463
0
      goto yy206;
2464
0
    } else {
2465
0
      if (yych <= 'n') {
2466
0
        if (yych <= 'm') goto yy48;
2467
0
        goto yy205;
2468
0
      } else {
2469
0
        if (yych == 's') goto yy206;
2470
0
        goto yy48;
2471
0
      }
2472
0
    }
2473
0
yy59:
2474
0
    YYDEBUG(59, *YYCURSOR);
2475
0
    yyaccept = 4;
2476
0
    yych = *(YYMARKER = ++YYCURSOR);
2477
0
    if (yych == 'A') goto yy207;
2478
0
    if (yych == 'a') goto yy207;
2479
0
    goto yy48;
2480
0
yy60:
2481
0
    YYDEBUG(60, *YYCURSOR);
2482
0
    yyaccept = 4;
2483
0
    yych = *(YYMARKER = ++YYCURSOR);
2484
0
    if (yych == 'H') goto yy208;
2485
0
    if (yych == 'h') goto yy208;
2486
0
    goto yy48;
2487
0
yy61:
2488
0
    YYDEBUG(61, *YYCURSOR);
2489
0
    yyaccept = 4;
2490
0
    yych = *(YYMARKER = ++YYCURSOR);
2491
0
    if (yych == 'O') goto yy209;
2492
0
    if (yych == 'o') goto yy209;
2493
0
    goto yy48;
2494
0
yy62:
2495
0
    YYDEBUG(62, *YYCURSOR);
2496
0
    yyaccept = 4;
2497
0
    yych = *(YYMARKER = ++YYCURSOR);
2498
0
    if (yych == 'I') goto yy210;
2499
0
    if (yych == 'i') goto yy210;
2500
0
    goto yy48;
2501
0
yy63:
2502
0
    YYDEBUG(63, *YYCURSOR);
2503
0
    ++YYCURSOR;
2504
0
    goto yy21;
2505
0
yy64:
2506
0
    YYDEBUG(64, *YYCURSOR);
2507
0
    yych = *++YYCURSOR;
2508
0
    if (yych <= '_') {
2509
0
      if (yych <= '@') goto yy65;
2510
0
      if (yych <= 'Z') goto yy211;
2511
0
      if (yych >= '_') goto yy211;
2512
0
    } else {
2513
0
      if (yych <= '`') goto yy65;
2514
0
      if (yych <= 'z') goto yy211;
2515
0
      if (yych >= 0x80) goto yy211;
2516
0
    }
2517
0
yy65:
2518
0
    YYDEBUG(65, *YYCURSOR);
2519
0
    yyleng = YYCURSOR - SCNG(yy_text);
2520
0
#line 2451 "Zend/zend_language_scanner.l"
2521
0
    {
2522
0
  RETURN_TOKEN(T_NS_SEPARATOR);
2523
0
}
2524
0
#line 2525 "Zend/zend_language_scanner.c"
2525
0
yy66:
2526
0
    YYDEBUG(66, *YYCURSOR);
2527
0
    yych = *++YYCURSOR;
2528
0
    if (yych == '=') goto yy214;
2529
0
    goto yy9;
2530
0
yy67:
2531
0
    YYDEBUG(67, *YYCURSOR);
2532
0
    yyaccept = 4;
2533
0
    yych = *(YYMARKER = ++YYCURSOR);
2534
0
    if (yych == '_') goto yy216;
2535
0
    goto yy48;
2536
0
yy68:
2537
0
    YYDEBUG(68, *YYCURSOR);
2538
0
    ++YYCURSOR;
2539
0
    YYDEBUG(69, *YYCURSOR);
2540
0
    yyleng = YYCURSOR - SCNG(yy_text);
2541
0
#line 2826 "Zend/zend_language_scanner.l"
2542
0
    {
2543
0
  BEGIN(ST_BACKQUOTE);
2544
0
  RETURN_TOKEN('`');
2545
0
}
2546
0
#line 2547 "Zend/zend_language_scanner.c"
2547
0
yy70:
2548
0
    YYDEBUG(70, *YYCURSOR);
2549
0
    ++YYCURSOR;
2550
0
    YYDEBUG(71, *YYCURSOR);
2551
0
    yyleng = YYCURSOR - SCNG(yy_text);
2552
0
#line 1974 "Zend/zend_language_scanner.l"
2553
0
    {
2554
0
  yy_push_state(ST_IN_SCRIPTING);
2555
0
  enter_nesting('{');
2556
0
  RETURN_TOKEN('{');
2557
0
}
2558
0
#line 2559 "Zend/zend_language_scanner.c"
2559
0
yy72:
2560
0
    YYDEBUG(72, *YYCURSOR);
2561
0
    yych = *++YYCURSOR;
2562
0
    if (yych <= '>') {
2563
0
      if (yych <= '<') goto yy9;
2564
0
      if (yych <= '=') goto yy217;
2565
0
      goto yy219;
2566
0
    } else {
2567
0
      if (yych == '|') goto yy221;
2568
0
      goto yy9;
2569
0
    }
2570
0
yy73:
2571
0
    YYDEBUG(73, *YYCURSOR);
2572
0
    ++YYCURSOR;
2573
0
    YYDEBUG(74, *YYCURSOR);
2574
0
    yyleng = YYCURSOR - SCNG(yy_text);
2575
0
#line 1987 "Zend/zend_language_scanner.l"
2576
0
    {
2577
0
  RESET_DOC_COMMENT();
2578
0
  if (!zend_stack_is_empty(&SCNG(state_stack))) {
2579
0
    yy_pop_state();
2580
0
  }
2581
0
  RETURN_EXIT_NESTING_TOKEN('}');
2582
0
}
2583
0
#line 2584 "Zend/zend_language_scanner.c"
2584
0
yy75:
2585
0
    YYDEBUG(75, *YYCURSOR);
2586
0
    yych = *++YYCURSOR;
2587
0
    if (yych == '=') goto yy223;
2588
0
yy76:
2589
0
    YYDEBUG(76, *YYCURSOR);
2590
0
    yyleng = YYCURSOR - SCNG(yy_text);
2591
0
#line 1846 "Zend/zend_language_scanner.l"
2592
0
    {
2593
0
  RETURN_TOKEN(T_IS_NOT_EQUAL);
2594
0
}
2595
0
#line 2596 "Zend/zend_language_scanner.c"
2596
0
yy77:
2597
0
    YYDEBUG(77, *YYCURSOR);
2598
0
    ++YYCURSOR;
2599
0
    YYDEBUG(78, *YYCURSOR);
2600
0
    yyleng = YYCURSOR - SCNG(yy_text);
2601
0
#line 1423 "Zend/zend_language_scanner.l"
2602
0
    {
2603
0
  enter_nesting('[');
2604
0
  RETURN_TOKEN(T_ATTRIBUTE);
2605
0
}
2606
0
#line 2607 "Zend/zend_language_scanner.c"
2607
0
yy79:
2608
0
    YYDEBUG(79, *YYCURSOR);
2609
0
    ++YYCURSOR;
2610
0
    YYFILL(1);
2611
0
    yych = *YYCURSOR;
2612
0
    YYDEBUG(80, *YYCURSOR);
2613
0
    if (yych <= '^') {
2614
0
      if (yych <= '9') {
2615
0
        if (yych >= '0') goto yy79;
2616
0
      } else {
2617
0
        if (yych <= '@') goto yy81;
2618
0
        if (yych <= 'Z') goto yy79;
2619
0
      }
2620
0
    } else {
2621
0
      if (yych <= '`') {
2622
0
        if (yych <= '_') goto yy79;
2623
0
      } else {
2624
0
        if (yych <= 'z') goto yy79;
2625
0
        if (yych >= 0x80) goto yy79;
2626
0
      }
2627
0
    }
2628
0
yy81:
2629
0
    YYDEBUG(81, *YYCURSOR);
2630
0
    yyleng = YYCURSOR - SCNG(yy_text);
2631
0
#line 2417 "Zend/zend_language_scanner.l"
2632
0
    {
2633
0
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
2634
0
}
2635
0
#line 2636 "Zend/zend_language_scanner.c"
2636
0
yy82:
2637
0
    YYDEBUG(82, *YYCURSOR);
2638
0
    ++YYCURSOR;
2639
0
    YYDEBUG(83, *YYCURSOR);
2640
0
    yyleng = YYCURSOR - SCNG(yy_text);
2641
0
#line 1890 "Zend/zend_language_scanner.l"
2642
0
    {
2643
0
  RETURN_TOKEN(T_MOD_EQUAL);
2644
0
}
2645
0
#line 2646 "Zend/zend_language_scanner.c"
2646
0
yy84:
2647
0
    YYDEBUG(84, *YYCURSOR);
2648
0
    ++YYCURSOR;
2649
0
    YYFILL(3);
2650
0
    yych = *YYCURSOR;
2651
0
yy85:
2652
0
    YYDEBUG(85, *YYCURSOR);
2653
0
    if (yych <= ' ') {
2654
0
      if (yych <= '\f') {
2655
0
        if (yych <= 0x08) goto yy86;
2656
0
        if (yych <= '\n') goto yy84;
2657
0
      } else {
2658
0
        if (yych <= '\r') goto yy84;
2659
0
        if (yych >= ' ') goto yy84;
2660
0
      }
2661
0
    } else {
2662
0
      if (yych <= '$') {
2663
0
        if (yych <= '"') goto yy86;
2664
0
        if (yych <= '#') goto yy87;
2665
0
        goto yy88;
2666
0
      } else {
2667
0
        if (yych <= '-') goto yy86;
2668
0
        if (yych <= '.') goto yy92;
2669
0
        if (yych <= '/') goto yy93;
2670
0
      }
2671
0
    }
2672
0
yy86:
2673
0
    YYDEBUG(86, *YYCURSOR);
2674
0
    YYCURSOR = YYMARKER;
2675
0
    if (yyaccept <= 48) {
2676
0
      if (yyaccept <= 24) {
2677
0
        if (yyaccept <= 12) {
2678
0
          if (yyaccept <= 6) {
2679
0
            if (yyaccept <= 3) {
2680
0
              if (yyaccept <= 1) {
2681
0
                if (yyaccept == 0) {
2682
0
                  goto yy17;
2683
0
                } else {
2684
0
                  goto yy21;
2685
0
                }
2686
0
              } else {
2687
0
                if (yyaccept == 2) {
2688
0
                  goto yy9;
2689
0
                } else {
2690
0
                  goto yy31;
2691
0
                }
2692
0
              }
2693
0
            } else {
2694
0
              if (yyaccept <= 5) {
2695
0
                if (yyaccept == 4) {
2696
0
                  goto yy40;
2697
0
                } else {
2698
0
                  goto yy125;
2699
0
                }
2700
0
              } else {
2701
0
                goto yy129;
2702
0
              }
2703
0
            }
2704
0
          } else {
2705
0
            if (yyaccept <= 9) {
2706
0
              if (yyaccept <= 8) {
2707
0
                if (yyaccept == 7) {
2708
0
                  goto yy142;
2709
0
                } else {
2710
0
                  goto yy163;
2711
0
                }
2712
0
              } else {
2713
0
                goto yy173;
2714
0
              }
2715
0
            } else {
2716
0
              if (yyaccept <= 11) {
2717
0
                if (yyaccept == 10) {
2718
0
                  goto yy182;
2719
0
                } else {
2720
0
                  goto yy188;
2721
0
                }
2722
0
              } else {
2723
0
                goto yy197;
2724
0
              }
2725
0
            }
2726
0
          }
2727
0
        } else {
2728
0
          if (yyaccept <= 18) {
2729
0
            if (yyaccept <= 15) {
2730
0
              if (yyaccept <= 14) {
2731
0
                if (yyaccept == 13) {
2732
0
                  goto yy213;
2733
0
                } else {
2734
0
                  goto yy251;
2735
0
                }
2736
0
              } else {
2737
0
                goto yy257;
2738
0
              }
2739
0
            } else {
2740
0
              if (yyaccept <= 17) {
2741
0
                if (yyaccept == 16) {
2742
0
                  goto yy260;
2743
0
                } else {
2744
0
                  goto yy279;
2745
0
                }
2746
0
              } else {
2747
0
                goto yy283;
2748
0
              }
2749
0
            }
2750
0
          } else {
2751
0
            if (yyaccept <= 21) {
2752
0
              if (yyaccept <= 20) {
2753
0
                if (yyaccept == 19) {
2754
0
                  goto yy295;
2755
0
                } else {
2756
0
                  goto yy306;
2757
0
                }
2758
0
              } else {
2759
0
                goto yy319;
2760
0
              }
2761
0
            } else {
2762
0
              if (yyaccept <= 23) {
2763
0
                if (yyaccept == 22) {
2764
0
                  goto yy331;
2765
0
                } else {
2766
0
                  goto yy334;
2767
0
                }
2768
0
              } else {
2769
0
                goto yy336;
2770
0
              }
2771
0
            }
2772
0
          }
2773
0
        }
2774
0
      } else {
2775
0
        if (yyaccept <= 36) {
2776
0
          if (yyaccept <= 30) {
2777
0
            if (yyaccept <= 27) {
2778
0
              if (yyaccept <= 26) {
2779
0
                if (yyaccept == 25) {
2780
0
                  goto yy339;
2781
0
                } else {
2782
0
                  goto yy89;
2783
0
                }
2784
0
              } else {
2785
0
                goto yy379;
2786
0
              }
2787
0
            } else {
2788
0
              if (yyaccept <= 29) {
2789
0
                if (yyaccept == 28) {
2790
0
                  goto yy388;
2791
0
                } else {
2792
0
                  goto yy390;
2793
0
                }
2794
0
              } else {
2795
0
                goto yy399;
2796
0
              }
2797
0
            }
2798
0
          } else {
2799
0
            if (yyaccept <= 33) {
2800
0
              if (yyaccept <= 32) {
2801
0
                if (yyaccept == 31) {
2802
0
                  goto yy401;
2803
0
                } else {
2804
0
                  goto yy408;
2805
0
                }
2806
0
              } else {
2807
0
                goto yy415;
2808
0
              }
2809
0
            } else {
2810
0
              if (yyaccept <= 35) {
2811
0
                if (yyaccept == 34) {
2812
0
                  goto yy471;
2813
0
                } else {
2814
0
                  goto yy473;
2815
0
                }
2816
0
              } else {
2817
0
                goto yy476;
2818
0
              }
2819
0
            }
2820
0
          }
2821
0
        } else {
2822
0
          if (yyaccept <= 42) {
2823
0
            if (yyaccept <= 39) {
2824
0
              if (yyaccept <= 38) {
2825
0
                if (yyaccept == 37) {
2826
0
                  goto yy478;
2827
0
                } else {
2828
0
                  goto yy480;
2829
0
                }
2830
0
              } else {
2831
0
                goto yy482;
2832
0
              }
2833
0
            } else {
2834
0
              if (yyaccept <= 41) {
2835
0
                if (yyaccept == 40) {
2836
0
                  goto yy488;
2837
0
                } else {
2838
0
                  goto yy492;
2839
0
                }
2840
0
              } else {
2841
0
                goto yy501;
2842
0
              }
2843
0
            }
2844
0
          } else {
2845
0
            if (yyaccept <= 45) {
2846
0
              if (yyaccept <= 44) {
2847
0
                if (yyaccept == 43) {
2848
0
                  goto yy511;
2849
0
                } else {
2850
0
                  goto yy513;
2851
0
                }
2852
0
              } else {
2853
0
                goto yy516;
2854
0
              }
2855
0
            } else {
2856
0
              if (yyaccept <= 47) {
2857
0
                if (yyaccept == 46) {
2858
0
                  goto yy526;
2859
0
                } else {
2860
0
                  goto yy528;
2861
0
                }
2862
0
              } else {
2863
0
                goto yy530;
2864
0
              }
2865
0
            }
2866
0
          }
2867
0
        }
2868
0
      }
2869
0
    } else {
2870
0
      if (yyaccept <= 72) {
2871
0
        if (yyaccept <= 60) {
2872
0
          if (yyaccept <= 54) {
2873
0
            if (yyaccept <= 51) {
2874
0
              if (yyaccept <= 50) {
2875
0
                if (yyaccept == 49) {
2876
0
                  goto yy532;
2877
0
                } else {
2878
0
                  goto yy534;
2879
0
                }
2880
0
              } else {
2881
0
                goto yy576;
2882
0
              }
2883
0
            } else {
2884
0
              if (yyaccept <= 53) {
2885
0
                if (yyaccept == 52) {
2886
0
                  goto yy579;
2887
0
                } else {
2888
0
                  goto yy583;
2889
0
                }
2890
0
              } else {
2891
0
                goto yy597;
2892
0
              }
2893
0
            }
2894
0
          } else {
2895
0
            if (yyaccept <= 57) {
2896
0
              if (yyaccept <= 56) {
2897
0
                if (yyaccept == 55) {
2898
0
                  goto yy607;
2899
0
                } else {
2900
0
                  goto yy611;
2901
0
                }
2902
0
              } else {
2903
0
                goto yy613;
2904
0
              }
2905
0
            } else {
2906
0
              if (yyaccept <= 59) {
2907
0
                if (yyaccept == 58) {
2908
0
                  goto yy615;
2909
0
                } else {
2910
0
                  goto yy654;
2911
0
                }
2912
0
              } else {
2913
0
                goto yy656;
2914
0
              }
2915
0
            }
2916
0
          }
2917
0
        } else {
2918
0
          if (yyaccept <= 66) {
2919
0
            if (yyaccept <= 63) {
2920
0
              if (yyaccept <= 62) {
2921
0
                if (yyaccept == 61) {
2922
0
                  goto yy671;
2923
0
                } else {
2924
0
                  goto yy673;
2925
0
                }
2926
0
              } else {
2927
0
                goto yy675;
2928
0
              }
2929
0
            } else {
2930
0
              if (yyaccept <= 65) {
2931
0
                if (yyaccept == 64) {
2932
0
                  goto yy679;
2933
0
                } else {
2934
0
                  goto yy685;
2935
0
                }
2936
0
              } else {
2937
0
                goto yy690;
2938
0
              }
2939
0
            }
2940
0
          } else {
2941
0
            if (yyaccept <= 69) {
2942
0
              if (yyaccept <= 68) {
2943
0
                if (yyaccept == 67) {
2944
0
                  goto yy700;
2945
0
                } else {
2946
0
                  goto yy726;
2947
0
                }
2948
0
              } else {
2949
0
                goto yy728;
2950
0
              }
2951
0
            } else {
2952
0
              if (yyaccept <= 71) {
2953
0
                if (yyaccept == 70) {
2954
0
                  goto yy730;
2955
0
                } else {
2956
0
                  goto yy735;
2957
0
                }
2958
0
              } else {
2959
0
                goto yy743;
2960
0
              }
2961
0
            }
2962
0
          }
2963
0
        }
2964
0
      } else {
2965
0
        if (yyaccept <= 84) {
2966
0
          if (yyaccept <= 78) {
2967
0
            if (yyaccept <= 75) {
2968
0
              if (yyaccept <= 74) {
2969
0
                if (yyaccept == 73) {
2970
0
                  goto yy754;
2971
0
                } else {
2972
0
                  goto yy764;
2973
0
                }
2974
0
              } else {
2975
0
                goto yy768;
2976
0
              }
2977
0
            } else {
2978
0
              if (yyaccept <= 77) {
2979
0
                if (yyaccept == 76) {
2980
0
                  goto yy784;
2981
0
                } else {
2982
0
                  goto yy797;
2983
0
                }
2984
0
              } else {
2985
0
                goto yy799;
2986
0
              }
2987
0
            }
2988
0
          } else {
2989
0
            if (yyaccept <= 81) {
2990
0
              if (yyaccept <= 80) {
2991
0
                if (yyaccept == 79) {
2992
0
                  goto yy801;
2993
0
                } else {
2994
0
                  goto yy804;
2995
0
                }
2996
0
              } else {
2997
0
                goto yy812;
2998
0
              }
2999
0
            } else {
3000
0
              if (yyaccept <= 83) {
3001
0
                if (yyaccept == 82) {
3002
0
                  goto yy819;
3003
0
                } else {
3004
0
                  goto yy823;
3005
0
                }
3006
0
              } else {
3007
0
                goto yy825;
3008
0
              }
3009
0
            }
3010
0
          }
3011
0
        } else {
3012
0
          if (yyaccept <= 90) {
3013
0
            if (yyaccept <= 87) {
3014
0
              if (yyaccept <= 86) {
3015
0
                if (yyaccept == 85) {
3016
0
                  goto yy836;
3017
0
                } else {
3018
0
                  goto yy839;
3019
0
                }
3020
0
              } else {
3021
0
                goto yy854;
3022
0
              }
3023
0
            } else {
3024
0
              if (yyaccept <= 89) {
3025
0
                if (yyaccept == 88) {
3026
0
                  goto yy869;
3027
0
                } else {
3028
0
                  goto yy898;
3029
0
                }
3030
0
              } else {
3031
0
                goto yy903;
3032
0
              }
3033
0
            }
3034
0
          } else {
3035
0
            if (yyaccept <= 93) {
3036
0
              if (yyaccept <= 92) {
3037
0
                if (yyaccept == 91) {
3038
0
                  goto yy876;
3039
0
                } else {
3040
0
                  goto yy911;
3041
0
                }
3042
0
              } else {
3043
0
                goto yy915;
3044
0
              }
3045
0
            } else {
3046
0
              if (yyaccept <= 95) {
3047
0
                if (yyaccept == 94) {
3048
0
                  goto yy886;
3049
0
                } else {
3050
0
                  goto yy931;
3051
0
                }
3052
0
              } else {
3053
0
                goto yy951;
3054
0
              }
3055
0
            }
3056
0
          }
3057
0
        }
3058
0
      }
3059
0
    }
3060
0
yy87:
3061
0
    YYDEBUG(87, *YYCURSOR);
3062
0
    ++YYCURSOR;
3063
0
    YYFILL(1);
3064
0
    yych = *YYCURSOR;
3065
0
    if (yych <= '\f') {
3066
0
      if (yych <= 0x00) goto yy86;
3067
0
      if (yych == '\n') goto yy227;
3068
0
      goto yy225;
3069
0
    } else {
3070
0
      if (yych <= '\r') goto yy227;
3071
0
      if (yych == '[') goto yy86;
3072
0
      goto yy225;
3073
0
    }
3074
0
yy88:
3075
0
    YYDEBUG(88, *YYCURSOR);
3076
0
    ++YYCURSOR;
3077
0
yy89:
3078
0
    YYDEBUG(89, *YYCURSOR);
3079
0
    yyleng = YYCURSOR - SCNG(yy_text);
3080
0
#line 1950 "Zend/zend_language_scanner.l"
3081
0
    {
3082
0
  yyless(1);
3083
0
  RETURN_TOKEN(T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG);
3084
0
}
3085
0
#line 3086 "Zend/zend_language_scanner.c"
3086
0
yy90:
3087
0
    YYDEBUG(90, *YYCURSOR);
3088
0
    ++YYCURSOR;
3089
0
    YYDEBUG(91, *YYCURSOR);
3090
0
    yyleng = YYCURSOR - SCNG(yy_text);
3091
0
#line 1926 "Zend/zend_language_scanner.l"
3092
0
    {
3093
0
  RETURN_TOKEN(T_BOOLEAN_AND);
3094
0
}
3095
0
#line 3096 "Zend/zend_language_scanner.c"
3096
0
yy92:
3097
0
    YYDEBUG(92, *YYCURSOR);
3098
0
    yych = *++YYCURSOR;
3099
0
    if (yych == '.') goto yy229;
3100
0
    goto yy86;
3101
0
yy93:
3102
0
    YYDEBUG(93, *YYCURSOR);
3103
0
    ++YYCURSOR;
3104
0
    YYFILL(1);
3105
0
    yych = *YYCURSOR;
3106
0
    if (yych == '*') goto yy230;
3107
0
    if (yych == '/') goto yy225;
3108
0
    goto yy86;
3109
0
yy94:
3110
0
    YYDEBUG(94, *YYCURSOR);
3111
0
    ++YYCURSOR;
3112
0
    YYDEBUG(95, *YYCURSOR);
3113
0
    yyleng = YYCURSOR - SCNG(yy_text);
3114
0
#line 1902 "Zend/zend_language_scanner.l"
3115
0
    {
3116
0
  RETURN_TOKEN(T_AND_EQUAL);
3117
0
}
3118
0
#line 3119 "Zend/zend_language_scanner.c"
3119
0
yy96:
3120
0
    YYDEBUG(96, *YYCURSOR);
3121
0
    ++YYCURSOR;
3122
0
    YYFILL(7);
3123
0
    yych = *YYCURSOR;
3124
0
yy97:
3125
0
    YYDEBUG(97, *YYCURSOR);
3126
0
    if (yybm[0+yych] & 1) {
3127
0
      goto yy96;
3128
0
    }
3129
0
    switch (yych) {
3130
0
    case 'A':
3131
0
    case 'a': goto yy98;
3132
0
    case 'B':
3133
0
    case 'b': goto yy99;
3134
0
    case 'D':
3135
0
    case 'd': goto yy100;
3136
0
    case 'F':
3137
0
    case 'f': goto yy101;
3138
0
    case 'I':
3139
0
    case 'i': goto yy102;
3140
0
    case 'O':
3141
0
    case 'o': goto yy103;
3142
0
    case 'R':
3143
0
    case 'r': goto yy104;
3144
0
    case 'S':
3145
0
    case 's': goto yy105;
3146
0
    case 'U':
3147
0
    case 'u': goto yy106;
3148
0
    case 'V':
3149
0
    case 'v': goto yy107;
3150
0
    default:  goto yy86;
3151
0
    }
3152
0
yy98:
3153
0
    YYDEBUG(98, *YYCURSOR);
3154
0
    yych = *++YYCURSOR;
3155
0
    if (yych == 'R') goto yy232;
3156
0
    if (yych == 'r') goto yy232;
3157
0
    goto yy86;
3158
0
yy99:
3159
0
    YYDEBUG(99, *YYCURSOR);
3160
0
    yych = *++YYCURSOR;
3161
0
    if (yych <= 'O') {
3162
0
      if (yych == 'I') goto yy233;
3163
0
      if (yych <= 'N') goto yy86;
3164
0
      goto yy234;
3165
0
    } else {
3166
0
      if (yych <= 'i') {
3167
0
        if (yych <= 'h') goto yy86;
3168
0
        goto yy233;
3169
0
      } else {
3170
0
        if (yych == 'o') goto yy234;
3171
0
        goto yy86;
3172
0
      }
3173
0
    }
3174
0
yy100:
3175
0
    YYDEBUG(100, *YYCURSOR);
3176
0
    yych = *++YYCURSOR;
3177
0
    if (yych == 'O') goto yy235;
3178
0
    if (yych == 'o') goto yy235;
3179
0
    goto yy86;
3180
0
yy101:
3181
0
    YYDEBUG(101, *YYCURSOR);
3182
0
    yych = *++YYCURSOR;
3183
0
    if (yych == 'L') goto yy236;
3184
0
    if (yych == 'l') goto yy236;
3185
0
    goto yy86;
3186
0
yy102:
3187
0
    YYDEBUG(102, *YYCURSOR);
3188
0
    yych = *++YYCURSOR;
3189
0
    if (yych == 'N') goto yy237;
3190
0
    if (yych == 'n') goto yy237;
3191
0
    goto yy86;
3192
0
yy103:
3193
0
    YYDEBUG(103, *YYCURSOR);
3194
0
    yych = *++YYCURSOR;
3195
0
    if (yych == 'B') goto yy238;
3196
0
    if (yych == 'b') goto yy238;
3197
0
    goto yy86;
3198
0
yy104:
3199
0
    YYDEBUG(104, *YYCURSOR);
3200
0
    yych = *++YYCURSOR;
3201
0
    if (yych == 'E') goto yy239;
3202
0
    if (yych == 'e') goto yy239;
3203
0
    goto yy86;
3204
0
yy105:
3205
0
    YYDEBUG(105, *YYCURSOR);
3206
0
    yych = *++YYCURSOR;
3207
0
    if (yych == 'T') goto yy240;
3208
0
    if (yych == 't') goto yy240;
3209
0
    goto yy86;
3210
0
yy106:
3211
0
    YYDEBUG(106, *YYCURSOR);
3212
0
    yych = *++YYCURSOR;
3213
0
    if (yych == 'N') goto yy241;
3214
0
    if (yych == 'n') goto yy241;
3215
0
    goto yy86;
3216
0
yy107:
3217
0
    YYDEBUG(107, *YYCURSOR);
3218
0
    yych = *++YYCURSOR;
3219
0
    if (yych == 'O') goto yy242;
3220
0
    if (yych == 'o') goto yy242;
3221
0
    goto yy86;
3222
0
yy108:
3223
0
    YYDEBUG(108, *YYCURSOR);
3224
0
    yych = *++YYCURSOR;
3225
0
    if (yych == '=') goto yy243;
3226
0
    YYDEBUG(109, *YYCURSOR);
3227
0
    yyleng = YYCURSOR - SCNG(yy_text);
3228
0
#line 1874 "Zend/zend_language_scanner.l"
3229
0
    {
3230
0
  RETURN_TOKEN(T_POW);
3231
0
}
3232
0
#line 3233 "Zend/zend_language_scanner.c"
3233
0
yy110:
3234
0
    YYDEBUG(110, *YYCURSOR);
3235
0
    ++YYCURSOR;
3236
0
    YYDEBUG(111, *YYCURSOR);
3237
0
    yyleng = YYCURSOR - SCNG(yy_text);
3238
0
#line 1870 "Zend/zend_language_scanner.l"
3239
0
    {
3240
0
  RETURN_TOKEN(T_MUL_EQUAL);
3241
0
}
3242
0
#line 3243 "Zend/zend_language_scanner.c"
3243
0
yy112:
3244
0
    YYDEBUG(112, *YYCURSOR);
3245
0
    ++YYCURSOR;
3246
0
    YYDEBUG(113, *YYCURSOR);
3247
0
    yyleng = YYCURSOR - SCNG(yy_text);
3248
0
#line 1826 "Zend/zend_language_scanner.l"
3249
0
    {
3250
0
  RETURN_TOKEN(T_INC);
3251
0
}
3252
0
#line 3253 "Zend/zend_language_scanner.c"
3253
0
yy114:
3254
0
    YYDEBUG(114, *YYCURSOR);
3255
0
    ++YYCURSOR;
3256
0
    YYDEBUG(115, *YYCURSOR);
3257
0
    yyleng = YYCURSOR - SCNG(yy_text);
3258
0
#line 1862 "Zend/zend_language_scanner.l"
3259
0
    {
3260
0
  RETURN_TOKEN(T_PLUS_EQUAL);
3261
0
}
3262
0
#line 3263 "Zend/zend_language_scanner.c"
3263
0
yy116:
3264
0
    YYDEBUG(116, *YYCURSOR);
3265
0
    ++YYCURSOR;
3266
0
    YYDEBUG(117, *YYCURSOR);
3267
0
    yyleng = YYCURSOR - SCNG(yy_text);
3268
0
#line 1830 "Zend/zend_language_scanner.l"
3269
0
    {
3270
0
  RETURN_TOKEN(T_DEC);
3271
0
}
3272
0
#line 3273 "Zend/zend_language_scanner.c"
3273
0
yy118:
3274
0
    YYDEBUG(118, *YYCURSOR);
3275
0
    ++YYCURSOR;
3276
0
    YYDEBUG(119, *YYCURSOR);
3277
0
    yyleng = YYCURSOR - SCNG(yy_text);
3278
0
#line 1866 "Zend/zend_language_scanner.l"
3279
0
    {
3280
0
  RETURN_TOKEN(T_MINUS_EQUAL);
3281
0
}
3282
0
#line 3283 "Zend/zend_language_scanner.c"
3283
0
yy120:
3284
0
    YYDEBUG(120, *YYCURSOR);
3285
0
    ++YYCURSOR;
3286
0
    YYDEBUG(121, *YYCURSOR);
3287
0
    yyleng = YYCURSOR - SCNG(yy_text);
3288
0
#line 1587 "Zend/zend_language_scanner.l"
3289
0
    {
3290
0
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
3291
0
  RETURN_TOKEN(T_OBJECT_OPERATOR);
3292
0
}
3293
0
#line 3294 "Zend/zend_language_scanner.c"
3294
0
yy122:
3295
0
    YYDEBUG(122, *YYCURSOR);
3296
0
    yych = *++YYCURSOR;
3297
0
    if (yych == '.') goto yy245;
3298
0
    goto yy86;
3299
0
yy123:
3300
0
    YYDEBUG(123, *YYCURSOR);
3301
0
    yyaccept = 5;
3302
0
    YYMARKER = ++YYCURSOR;
3303
0
    YYFILL(2);
3304
0
    yych = *YYCURSOR;
3305
0
yy124:
3306
0
    YYDEBUG(124, *YYCURSOR);
3307
0
    if (yych <= 'E') {
3308
0
      if (yych <= '/') goto yy125;
3309
0
      if (yych <= '9') goto yy123;
3310
0
      if (yych >= 'E') goto yy135;
3311
0
    } else {
3312
0
      if (yych <= '_') {
3313
0
        if (yych >= '_') goto yy247;
3314
0
      } else {
3315
0
        if (yych == 'e') goto yy135;
3316
0
      }
3317
0
    }
3318
0
yy125:
3319
0
    YYDEBUG(125, *YYCURSOR);
3320
0
    yyleng = YYCURSOR - SCNG(yy_text);
3321
0
#line 2233 "Zend/zend_language_scanner.l"
3322
0
    {
3323
0
  const char *end;
3324
0
  size_t len = yyleng;
3325
0
  char *dnum = yytext;
3326
0
  bool contains_underscores = (memchr(dnum, '_', len) != NULL);
3327
3328
0
  if (contains_underscores) {
3329
0
    dnum = estrndup(dnum, len);
3330
0
    strip_underscores(dnum, &len);
3331
0
  }
3332
3333
0
  ZVAL_DOUBLE(zendlval, zend_strtod(dnum, &end));
3334
  /* errno isn't checked since we allow HUGE_VAL/INF overflow */
3335
0
  ZEND_ASSERT(end == dnum + len);
3336
0
  if (contains_underscores) {
3337
0
    efree(dnum);
3338
0
  }
3339
0
  RETURN_TOKEN_WITH_VAL(T_DNUMBER);
3340
0
}
3341
0
#line 3342 "Zend/zend_language_scanner.c"
3342
0
yy126:
3343
0
    YYDEBUG(126, *YYCURSOR);
3344
0
    ++YYCURSOR;
3345
0
    YYDEBUG(127, *YYCURSOR);
3346
0
    yyleng = YYCURSOR - SCNG(yy_text);
3347
0
#line 1886 "Zend/zend_language_scanner.l"
3348
0
    {
3349
0
  RETURN_TOKEN(T_CONCAT_EQUAL);
3350
0
}
3351
0
#line 3352 "Zend/zend_language_scanner.c"
3352
0
yy128:
3353
0
    YYDEBUG(128, *YYCURSOR);
3354
0
    yyaccept = 6;
3355
0
    yych = *(YYMARKER = ++YYCURSOR);
3356
0
    if (yych == '*') goto yy248;
3357
0
yy129:
3358
0
    YYDEBUG(129, *YYCURSOR);
3359
0
    yyleng = YYCURSOR - SCNG(yy_text);
3360
0
#line 2484 "Zend/zend_language_scanner.l"
3361
0
    {
3362
0
  int doc_com;
3363
3364
0
  if (yyleng > 2) {
3365
0
    doc_com = 1;
3366
0
    RESET_DOC_COMMENT();
3367
0
  } else {
3368
0
    doc_com = 0;
3369
0
  }
3370
3371
0
  while (YYCURSOR < YYLIMIT) {
3372
0
    if (*YYCURSOR++ == '*' && *YYCURSOR == '/') {
3373
0
      break;
3374
0
    }
3375
0
  }
3376
3377
0
  if (YYCURSOR < YYLIMIT) {
3378
0
    YYCURSOR++;
3379
0
  } else {
3380
0
    zend_throw_exception_ex(zend_ce_parse_error, 0, "Unterminated comment starting line %" PRIu32, CG(zend_lineno));
3381
0
    if (PARSER_MODE()) {
3382
0
      RETURN_TOKEN(T_ERROR);
3383
0
    }
3384
0
  }
3385
3386
0
  yyleng = YYCURSOR - SCNG(yy_text);
3387
0
  HANDLE_NEWLINES(yytext, yyleng);
3388
3389
0
  if (doc_com) {
3390
0
    CG(doc_comment) = zend_string_init(yytext, yyleng, 0);
3391
0
    RETURN_OR_SKIP_TOKEN(T_DOC_COMMENT);
3392
0
  }
3393
3394
0
  RETURN_OR_SKIP_TOKEN(T_COMMENT);
3395
0
}
3396
0
#line 3397 "Zend/zend_language_scanner.c"
3397
0
yy130:
3398
0
    YYDEBUG(130, *YYCURSOR);
3399
0
    ++YYCURSOR;
3400
0
    goto yy13;
3401
0
yy131:
3402
0
    YYDEBUG(131, *YYCURSOR);
3403
0
    ++YYCURSOR;
3404
0
    YYDEBUG(132, *YYCURSOR);
3405
0
    yyleng = YYCURSOR - SCNG(yy_text);
3406
0
#line 1882 "Zend/zend_language_scanner.l"
3407
0
    {
3408
0
  RETURN_TOKEN(T_DIV_EQUAL);
3409
0
}
3410
0
#line 3411 "Zend/zend_language_scanner.c"
3411
0
yy133:
3412
0
    YYDEBUG(133, *YYCURSOR);
3413
0
    yyaccept = 5;
3414
0
    yych = *(YYMARKER = ++YYCURSOR);
3415
0
    if (yych == '_') goto yy125;
3416
0
    goto yy124;
3417
0
yy134:
3418
0
    YYDEBUG(134, *YYCURSOR);
3419
0
    ++YYCURSOR;
3420
0
    YYFILL(1);
3421
0
    yych = *YYCURSOR;
3422
0
    if (yybm[0+yych] & 8) {
3423
0
      goto yy249;
3424
0
    }
3425
0
    goto yy86;
3426
0
yy135:
3427
0
    YYDEBUG(135, *YYCURSOR);
3428
0
    yych = *++YYCURSOR;
3429
0
    if (yych <= ',') {
3430
0
      if (yych == '+') goto yy252;
3431
0
      goto yy86;
3432
0
    } else {
3433
0
      if (yych <= '-') goto yy252;
3434
0
      if (yych <= '/') goto yy86;
3435
0
      if (yych <= '9') goto yy253;
3436
0
      goto yy86;
3437
0
    }
3438
0
yy136:
3439
0
    YYDEBUG(136, *YYCURSOR);
3440
0
    ++YYCURSOR;
3441
0
    YYFILL(1);
3442
0
    yych = *YYCURSOR;
3443
0
    if (yybm[0+yych] & 16) {
3444
0
      goto yy255;
3445
0
    }
3446
0
    goto yy86;
3447
0
yy137:
3448
0
    YYDEBUG(137, *YYCURSOR);
3449
0
    ++YYCURSOR;
3450
0
    YYFILL(1);
3451
0
    yych = *YYCURSOR;
3452
0
    if (yybm[0+yych] & 32) {
3453
0
      goto yy258;
3454
0
    }
3455
0
    goto yy86;
3456
0
yy138:
3457
0
    YYDEBUG(138, *YYCURSOR);
3458
0
    ++YYCURSOR;
3459
0
    YYFILL(1);
3460
0
    yych = *YYCURSOR;
3461
0
    if (yybm[256+yych] & 64) {
3462
0
      goto yy32;
3463
0
    }
3464
0
    goto yy86;
3465
0
yy139:
3466
0
    YYDEBUG(139, *YYCURSOR);
3467
0
    ++YYCURSOR;
3468
0
    YYDEBUG(140, *YYCURSOR);
3469
0
    yyleng = YYCURSOR - SCNG(yy_text);
3470
0
#line 1614 "Zend/zend_language_scanner.l"
3471
0
    {
3472
0
  RETURN_TOKEN(T_PAAMAYIM_NEKUDOTAYIM);
3473
0
}
3474
0
#line 3475 "Zend/zend_language_scanner.c"
3475
0
yy141:
3476
0
    YYDEBUG(141, *YYCURSOR);
3477
0
    yyaccept = 7;
3478
0
    yych = *(YYMARKER = ++YYCURSOR);
3479
0
    if (yych <= ';') goto yy142;
3480
0
    if (yych <= '<') goto yy261;
3481
0
    if (yych <= '=') goto yy263;
3482
0
yy142:
3483
0
    YYDEBUG(142, *YYCURSOR);
3484
0
    yyleng = YYCURSOR - SCNG(yy_text);
3485
0
#line 1942 "Zend/zend_language_scanner.l"
3486
0
    {
3487
0
  RETURN_TOKEN(T_SL);
3488
0
}
3489
0
#line 3490 "Zend/zend_language_scanner.c"
3490
0
yy143:
3491
0
    YYDEBUG(143, *YYCURSOR);
3492
0
    yych = *++YYCURSOR;
3493
0
    if (yych == '>') goto yy265;
3494
0
    YYDEBUG(144, *YYCURSOR);
3495
0
    yyleng = YYCURSOR - SCNG(yy_text);
3496
0
#line 1854 "Zend/zend_language_scanner.l"
3497
0
    {
3498
0
  RETURN_TOKEN(T_IS_SMALLER_OR_EQUAL);
3499
0
}
3500
0
#line 3501 "Zend/zend_language_scanner.c"
3501
0
yy145:
3502
0
    YYDEBUG(145, *YYCURSOR);
3503
0
    ++YYCURSOR;
3504
0
    goto yy76;
3505
0
yy146:
3506
0
    YYDEBUG(146, *YYCURSOR);
3507
0
    yych = *++YYCURSOR;
3508
0
    if (yych == '=') goto yy267;
3509
0
    YYDEBUG(147, *YYCURSOR);
3510
0
    yyleng = YYCURSOR - SCNG(yy_text);
3511
0
#line 1842 "Zend/zend_language_scanner.l"
3512
0
    {
3513
0
  RETURN_TOKEN(T_IS_EQUAL);
3514
0
}
3515
0
#line 3516 "Zend/zend_language_scanner.c"
3516
0
yy148:
3517
0
    YYDEBUG(148, *YYCURSOR);
3518
0
    ++YYCURSOR;
3519
0
    YYDEBUG(149, *YYCURSOR);
3520
0
    yyleng = YYCURSOR - SCNG(yy_text);
3521
0
#line 1810 "Zend/zend_language_scanner.l"
3522
0
    {
3523
0
  RETURN_TOKEN(T_DOUBLE_ARROW);
3524
0
}
3525
0
#line 3526 "Zend/zend_language_scanner.c"
3526
0
yy150:
3527
0
    YYDEBUG(150, *YYCURSOR);
3528
0
    ++YYCURSOR;
3529
0
    YYDEBUG(151, *YYCURSOR);
3530
0
    yyleng = YYCURSOR - SCNG(yy_text);
3531
0
#line 1858 "Zend/zend_language_scanner.l"
3532
0
    {
3533
0
  RETURN_TOKEN(T_IS_GREATER_OR_EQUAL);
3534
0
}
3535
0
#line 3536 "Zend/zend_language_scanner.c"
3536
0
yy152:
3537
0
    YYDEBUG(152, *YYCURSOR);
3538
0
    yych = *++YYCURSOR;
3539
0
    if (yych == '=') goto yy269;
3540
0
    YYDEBUG(153, *YYCURSOR);
3541
0
    yyleng = YYCURSOR - SCNG(yy_text);
3542
0
#line 1946 "Zend/zend_language_scanner.l"
3543
0
    {
3544
0
  RETURN_TOKEN(T_SR);
3545
0
}
3546
0
#line 3547 "Zend/zend_language_scanner.c"
3547
0
yy154:
3548
0
    YYDEBUG(154, *YYCURSOR);
3549
0
    yych = *++YYCURSOR;
3550
0
    if (yych == '>') goto yy271;
3551
0
    goto yy86;
3552
0
yy155:
3553
0
    YYDEBUG(155, *YYCURSOR);
3554
0
    yych = *++YYCURSOR;
3555
0
    if (yych == '\n') goto yy273;
3556
0
    if (yych == '\r') goto yy274;
3557
0
yy156:
3558
0
    YYDEBUG(156, *YYCURSOR);
3559
0
    yyleng = YYCURSOR - SCNG(yy_text);
3560
0
#line 2526 "Zend/zend_language_scanner.l"
3561
0
    {
3562
0
  BEGIN(INITIAL);
3563
0
  if (yytext[yyleng-1] != '>') {
3564
0
    CG(increment_lineno) = 1;
3565
0
  }
3566
0
  if (PARSER_MODE()) {
3567
0
    RETURN_TOKEN(';');  /* implicit ';' at php-end tag */
3568
0
  }
3569
0
  RETURN_TOKEN(T_CLOSE_TAG);
3570
0
}
3571
0
#line 3572 "Zend/zend_language_scanner.c"
3572
0
yy157:
3573
0
    YYDEBUG(157, *YYCURSOR);
3574
0
    yych = *++YYCURSOR;
3575
0
    if (yych == '=') goto yy275;
3576
0
    YYDEBUG(158, *YYCURSOR);
3577
0
    yyleng = YYCURSOR - SCNG(yy_text);
3578
0
#line 1622 "Zend/zend_language_scanner.l"
3579
0
    {
3580
0
  RETURN_TOKEN(T_COALESCE);
3581
0
}
3582
0
#line 3583 "Zend/zend_language_scanner.c"
3583
0
yy159:
3584
0
    YYDEBUG(159, *YYCURSOR);
3585
0
    yyaccept = 4;
3586
0
    yych = *(YYMARKER = ++YYCURSOR);
3587
0
    if (yych == 'S') goto yy277;
3588
0
    if (yych == 's') goto yy277;
3589
0
    goto yy48;
3590
0
yy160:
3591
0
    YYDEBUG(160, *YYCURSOR);
3592
0
    yyaccept = 4;
3593
0
    yych = *(YYMARKER = ++YYCURSOR);
3594
0
    if (yych == 'D') goto yy278;
3595
0
    if (yych == 'd') goto yy278;
3596
0
    goto yy48;
3597
0
yy161:
3598
0
    YYDEBUG(161, *YYCURSOR);
3599
0
    yyaccept = 4;
3600
0
    yych = *(YYMARKER = ++YYCURSOR);
3601
0
    if (yych == 'R') goto yy280;
3602
0
    if (yych == 'r') goto yy280;
3603
0
    goto yy48;
3604
0
yy162:
3605
0
    YYDEBUG(162, *YYCURSOR);
3606
0
    yyaccept = 8;
3607
0
    yych = *(YYMARKER = ++YYCURSOR);
3608
0
    if (yybm[256+yych] & 128) {
3609
0
      goto yy47;
3610
0
    }
3611
0
    if (yych == '\\') goto yy164;
3612
0
yy163:
3613
0
    YYDEBUG(163, *YYCURSOR);
3614
0
    yyleng = YYCURSOR - SCNG(yy_text);
3615
0
#line 1510 "Zend/zend_language_scanner.l"
3616
0
    {
3617
0
  RETURN_TOKEN_WITH_IDENT(T_AS);
3618
0
}
3619
0
#line 3620 "Zend/zend_language_scanner.c"
3620
0
yy164:
3621
0
    YYDEBUG(164, *YYCURSOR);
3622
0
    ++YYCURSOR;
3623
0
    YYFILL(1);
3624
0
    yych = *YYCURSOR;
3625
0
    if (yych <= '_') {
3626
0
      if (yych <= '@') goto yy86;
3627
0
      if (yych <= 'Z') goto yy281;
3628
0
      if (yych <= '^') goto yy86;
3629
0
      goto yy281;
3630
0
    } else {
3631
0
      if (yych <= '`') goto yy86;
3632
0
      if (yych <= 'z') goto yy281;
3633
0
      if (yych <= 0x7F) goto yy86;
3634
0
      goto yy281;
3635
0
    }
3636
0
yy165:
3637
0
    YYDEBUG(165, *YYCURSOR);
3638
0
    yych = *++YYCURSOR;
3639
0
    if (yych == '<') goto yy284;
3640
0
    goto yy86;
3641
0
yy166:
3642
0
    YYDEBUG(166, *YYCURSOR);
3643
0
    yyaccept = 4;
3644
0
    yych = *(YYMARKER = ++YYCURSOR);
3645
0
    if (yych == 'E') goto yy285;
3646
0
    if (yych == 'e') goto yy285;
3647
0
    goto yy48;
3648
0
yy167:
3649
0
    YYDEBUG(167, *YYCURSOR);
3650
0
    yyaccept = 4;
3651
0
    yych = *(YYMARKER = ++YYCURSOR);
3652
0
    if (yych <= 'T') {
3653
0
      if (yych <= 'L') {
3654
0
        if (yych <= 'K') goto yy48;
3655
0
        goto yy286;
3656
0
      } else {
3657
0
        if (yych <= 'R') goto yy48;
3658
0
        if (yych <= 'S') goto yy287;
3659
0
        goto yy288;
3660
0
      }
3661
0
    } else {
3662
0
      if (yych <= 'r') {
3663
0
        if (yych == 'l') goto yy286;
3664
0
        goto yy48;
3665
0
      } else {
3666
0
        if (yych <= 's') goto yy287;
3667
0
        if (yych <= 't') goto yy288;
3668
0
        goto yy48;
3669
0
      }
3670
0
    }
3671
0
yy168:
3672
0
    YYDEBUG(168, *YYCURSOR);
3673
0
    yyaccept = 4;
3674
0
    yych = *(YYMARKER = ++YYCURSOR);
3675
0
    if (yych <= 'O') {
3676
0
      if (yych == 'A') goto yy289;
3677
0
      if (yych <= 'N') goto yy48;
3678
0
      goto yy290;
3679
0
    } else {
3680
0
      if (yych <= 'a') {
3681
0
        if (yych <= '`') goto yy48;
3682
0
        goto yy289;
3683
0
      } else {
3684
0
        if (yych == 'o') goto yy290;
3685
0
        goto yy48;
3686
0
      }
3687
0
    }
3688
0
yy169:
3689
0
    YYDEBUG(169, *YYCURSOR);
3690
0
    yyaccept = 4;
3691
0
    yych = *(YYMARKER = ++YYCURSOR);
3692
0
    if (yych == 'N') goto yy291;
3693
0
    if (yych == 'n') goto yy291;
3694
0
    goto yy48;
3695
0
yy170:
3696
0
    YYDEBUG(170, *YYCURSOR);
3697
0
    yyaccept = 4;
3698
0
    yych = *(YYMARKER = ++YYCURSOR);
3699
0
    if (yych <= 'F') {
3700
0
      if (yych == 'C') goto yy292;
3701
0
      if (yych <= 'E') goto yy48;
3702
0
      goto yy293;
3703
0
    } else {
3704
0
      if (yych <= 'c') {
3705
0
        if (yych <= 'b') goto yy48;
3706
0
        goto yy292;
3707
0
      } else {
3708
0
        if (yych == 'f') goto yy293;
3709
0
        goto yy48;
3710
0
      }
3711
0
    }
3712
0
yy171:
3713
0
    YYDEBUG(171, *YYCURSOR);
3714
0
    yyaccept = 4;
3715
0
    yych = *(YYMARKER = ++YYCURSOR);
3716
0
    if (yych == 'E') goto yy294;
3717
0
    if (yych == 'e') goto yy294;
3718
0
    goto yy48;
3719
0
yy172:
3720
0
    YYDEBUG(172, *YYCURSOR);
3721
0
    yyaccept = 9;
3722
0
    yych = *(YYMARKER = ++YYCURSOR);
3723
0
    if (yybm[256+yych] & 128) {
3724
0
      goto yy47;
3725
0
    }
3726
0
    if (yych == '\\') goto yy164;
3727
0
yy173:
3728
0
    YYDEBUG(173, *YYCURSOR);
3729
0
    yyleng = YYCURSOR - SCNG(yy_text);
3730
0
#line 1478 "Zend/zend_language_scanner.l"
3731
0
    {
3732
0
  RETURN_TOKEN_WITH_IDENT(T_DO);
3733
0
}
3734
0
#line 3735 "Zend/zend_language_scanner.c"
3735
0
yy174:
3736
0
    YYDEBUG(174, *YYCURSOR);
3737
0
    yyaccept = 4;
3738
0
    yych = *(YYMARKER = ++YYCURSOR);
3739
0
    if (yych == 'H') goto yy296;
3740
0
    if (yych == 'h') goto yy296;
3741
0
    goto yy48;
3742
0
yy175:
3743
0
    YYDEBUG(175, *YYCURSOR);
3744
0
    yyaccept = 4;
3745
0
    yych = *(YYMARKER = ++YYCURSOR);
3746
0
    if (yych == 'S') goto yy297;
3747
0
    if (yych == 's') goto yy297;
3748
0
    goto yy48;
3749
0
yy176:
3750
0
    YYDEBUG(176, *YYCURSOR);
3751
0
    yyaccept = 4;
3752
0
    yych = *(YYMARKER = ++YYCURSOR);
3753
0
    if (yych == 'P') goto yy298;
3754
0
    if (yych == 'p') goto yy298;
3755
0
    goto yy48;
3756
0
yy177:
3757
0
    YYDEBUG(177, *YYCURSOR);
3758
0
    yyaccept = 4;
3759
0
    yych = *(YYMARKER = ++YYCURSOR);
3760
0
    if (yych <= 'U') {
3761
0
      if (yych == 'D') goto yy299;
3762
0
      if (yych <= 'T') goto yy48;
3763
0
      goto yy300;
3764
0
    } else {
3765
0
      if (yych <= 'd') {
3766
0
        if (yych <= 'c') goto yy48;
3767
0
        goto yy299;
3768
0
      } else {
3769
0
        if (yych == 'u') goto yy300;
3770
0
        goto yy48;
3771
0
      }
3772
0
    }
3773
0
yy178:
3774
0
    YYDEBUG(178, *YYCURSOR);
3775
0
    yyaccept = 4;
3776
0
    yych = *(YYMARKER = ++YYCURSOR);
3777
0
    if (yych == 'A') goto yy301;
3778
0
    if (yych == 'a') goto yy301;
3779
0
    goto yy48;
3780
0
yy179:
3781
0
    YYDEBUG(179, *YYCURSOR);
3782
0
    yyaccept = 4;
3783
0
    yych = *(YYMARKER = ++YYCURSOR);
3784
0
    if (yych <= 'T') {
3785
0
      if (yych == 'I') goto yy302;
3786
0
      if (yych <= 'S') goto yy48;
3787
0
      goto yy303;
3788
0
    } else {
3789
0
      if (yych <= 'i') {
3790
0
        if (yych <= 'h') goto yy48;
3791
0
        goto yy302;
3792
0
      } else {
3793
0
        if (yych == 't') goto yy303;
3794
0
        goto yy48;
3795
0
      }
3796
0
    }
3797
0
yy180:
3798
0
    YYDEBUG(180, *YYCURSOR);
3799
0
    yyaccept = 4;
3800
0
    yych = *(YYMARKER = ++YYCURSOR);
3801
0
    if (yych == 'N') goto yy304;
3802
0
    if (yych == 'n') goto yy304;
3803
0
    goto yy48;
3804
0
yy181:
3805
0
    YYDEBUG(181, *YYCURSOR);
3806
0
    yyaccept = 10;
3807
0
    yych = *(YYMARKER = ++YYCURSOR);
3808
0
    if (yybm[256+yych] & 128) {
3809
0
      goto yy47;
3810
0
    }
3811
0
    if (yych == '\\') goto yy164;
3812
0
yy182:
3813
0
    YYDEBUG(182, *YYCURSOR);
3814
0
    yyleng = YYCURSOR - SCNG(yy_text);
3815
0
#line 1407 "Zend/zend_language_scanner.l"
3816
0
    {
3817
0
  RETURN_TOKEN_WITH_IDENT(T_FN);
3818
0
}
3819
0
#line 3820 "Zend/zend_language_scanner.c"
3820
0
yy183:
3821
0
    YYDEBUG(183, *YYCURSOR);
3822
0
    yyaccept = 4;
3823
0
    yych = *(YYMARKER = ++YYCURSOR);
3824
0
    if (yych == 'R') goto yy305;
3825
0
    if (yych == 'r') goto yy305;
3826
0
    goto yy48;
3827
0
yy184:
3828
0
    YYDEBUG(184, *YYCURSOR);
3829
0
    yyaccept = 4;
3830
0
    yych = *(YYMARKER = ++YYCURSOR);
3831
0
    if (yych == 'N') goto yy307;
3832
0
    if (yych == 'n') goto yy307;
3833
0
    goto yy48;
3834
0
yy185:
3835
0
    YYDEBUG(185, *YYCURSOR);
3836
0
    yyaccept = 4;
3837
0
    yych = *(YYMARKER = ++YYCURSOR);
3838
0
    if (yych == 'O') goto yy308;
3839
0
    if (yych == 'o') goto yy308;
3840
0
    goto yy48;
3841
0
yy186:
3842
0
    YYDEBUG(186, *YYCURSOR);
3843
0
    yyaccept = 4;
3844
0
    yych = *(YYMARKER = ++YYCURSOR);
3845
0
    if (yych == 'T') goto yy309;
3846
0
    if (yych == 't') goto yy309;
3847
0
    goto yy48;
3848
0
yy187:
3849
0
    YYDEBUG(187, *YYCURSOR);
3850
0
    yyaccept = 11;
3851
0
    yych = *(YYMARKER = ++YYCURSOR);
3852
0
    if (yybm[256+yych] & 128) {
3853
0
      goto yy47;
3854
0
    }
3855
0
    if (yych == '\\') goto yy164;
3856
0
yy188:
3857
0
    YYDEBUG(188, *YYCURSOR);
3858
0
    yyleng = YYCURSOR - SCNG(yy_text);
3859
0
#line 1454 "Zend/zend_language_scanner.l"
3860
0
    {
3861
0
  RETURN_TOKEN_WITH_IDENT(T_IF);
3862
0
}
3863
0
#line 3864 "Zend/zend_language_scanner.c"
3864
0
yy189:
3865
0
    YYDEBUG(189, *YYCURSOR);
3866
0
    yyaccept = 4;
3867
0
    yych = *(YYMARKER = ++YYCURSOR);
3868
0
    if (yych == 'P') goto yy310;
3869
0
    if (yych == 'p') goto yy310;
3870
0
    goto yy48;
3871
0
yy190:
3872
0
    YYDEBUG(190, *YYCURSOR);
3873
0
    yyaccept = 4;
3874
0
    yych = *(YYMARKER = ++YYCURSOR);
3875
0
    if (yych <= 'T') {
3876
0
      if (yych <= 'C') {
3877
0
        if (yych <= 'B') goto yy48;
3878
0
        goto yy311;
3879
0
      } else {
3880
0
        if (yych <= 'R') goto yy48;
3881
0
        if (yych <= 'S') goto yy312;
3882
0
        goto yy313;
3883
0
      }
3884
0
    } else {
3885
0
      if (yych <= 'r') {
3886
0
        if (yych == 'c') goto yy311;
3887
0
        goto yy48;
3888
0
      } else {
3889
0
        if (yych <= 's') goto yy312;
3890
0
        if (yych <= 't') goto yy313;
3891
0
        goto yy48;
3892
0
      }
3893
0
    }
3894
0
yy191:
3895
0
    YYDEBUG(191, *YYCURSOR);
3896
0
    yyaccept = 4;
3897
0
    yych = *(YYMARKER = ++YYCURSOR);
3898
0
    if (yych == 'S') goto yy314;
3899
0
    if (yych == 's') goto yy314;
3900
0
    goto yy48;
3901
0
yy192:
3902
0
    YYDEBUG(192, *YYCURSOR);
3903
0
    yyaccept = 4;
3904
0
    yych = *(YYMARKER = ++YYCURSOR);
3905
0
    if (yych == 'S') goto yy315;
3906
0
    if (yych == 's') goto yy315;
3907
0
    goto yy48;
3908
0
yy193:
3909
0
    YYDEBUG(193, *YYCURSOR);
3910
0
    yyaccept = 4;
3911
0
    yych = *(YYMARKER = ++YYCURSOR);
3912
0
    if (yych == 'T') goto yy316;
3913
0
    if (yych == 't') goto yy316;
3914
0
    goto yy48;
3915
0
yy194:
3916
0
    YYDEBUG(194, *YYCURSOR);
3917
0
    yyaccept = 4;
3918
0
    yych = *(YYMARKER = ++YYCURSOR);
3919
0
    if (yych == 'M') goto yy317;
3920
0
    if (yych == 'm') goto yy317;
3921
0
    goto yy48;
3922
0
yy195:
3923
0
    YYDEBUG(195, *YYCURSOR);
3924
0
    yyaccept = 4;
3925
0
    yych = *(YYMARKER = ++YYCURSOR);
3926
0
    if (yych == 'W') goto yy318;
3927
0
    if (yych == 'w') goto yy318;
3928
0
    goto yy48;
3929
0
yy196:
3930
0
    YYDEBUG(196, *YYCURSOR);
3931
0
    yyaccept = 12;
3932
0
    yych = *(YYMARKER = ++YYCURSOR);
3933
0
    if (yybm[256+yych] & 128) {
3934
0
      goto yy47;
3935
0
    }
3936
0
    if (yych == '\\') goto yy164;
3937
0
yy197:
3938
0
    YYDEBUG(197, *YYCURSOR);
3939
0
    yyleng = YYCURSOR - SCNG(yy_text);
3940
0
#line 1930 "Zend/zend_language_scanner.l"
3941
0
    {
3942
0
  RETURN_TOKEN_WITH_IDENT(T_LOGICAL_OR);
3943
0
}
3944
0
#line 3945 "Zend/zend_language_scanner.c"
3945
0
yy198:
3946
0
    YYDEBUG(198, *YYCURSOR);
3947
0
    yyaccept = 4;
3948
0
    yych = *(YYMARKER = ++YYCURSOR);
3949
0
    if (yych <= 'O') {
3950
0
      if (yych == 'I') goto yy320;
3951
0
      if (yych <= 'N') goto yy48;
3952
0
      goto yy321;
3953
0
    } else {
3954
0
      if (yych <= 'i') {
3955
0
        if (yych <= 'h') goto yy48;
3956
0
        goto yy320;
3957
0
      } else {
3958
0
        if (yych == 'o') goto yy321;
3959
0
        goto yy48;
3960
0
      }
3961
0
    }
3962
0
yy199:
3963
0
    YYDEBUG(199, *YYCURSOR);
3964
0
    yyaccept = 4;
3965
0
    yych = *(YYMARKER = ++YYCURSOR);
3966
0
    if (yych == 'B') goto yy322;
3967
0
    if (yych == 'b') goto yy322;
3968
0
    goto yy48;
3969
0
yy200:
3970
0
    YYDEBUG(200, *YYCURSOR);
3971
0
    yyaccept = 4;
3972
0
    yych = *(YYMARKER = ++YYCURSOR);
3973
0
    if (yych <= 'T') {
3974
0
      if (yych <= 'P') {
3975
0
        if (yych == 'A') goto yy323;
3976
0
        goto yy48;
3977
0
      } else {
3978
0
        if (yych <= 'Q') goto yy324;
3979
0
        if (yych <= 'S') goto yy48;
3980
0
        goto yy325;
3981
0
      }
3982
0
    } else {
3983
0
      if (yych <= 'p') {
3984
0
        if (yych == 'a') goto yy323;
3985
0
        goto yy48;
3986
0
      } else {
3987
0
        if (yych <= 'q') goto yy324;
3988
0
        if (yych == 't') goto yy325;
3989
0
        goto yy48;
3990
0
      }
3991
0
    }
3992
0
yy201:
3993
0
    YYDEBUG(201, *YYCURSOR);
3994
0
    yyaccept = 4;
3995
0
    yych = *(YYMARKER = ++YYCURSOR);
3996
0
    if (yych == 'A') goto yy326;
3997
0
    if (yych == 'a') goto yy326;
3998
0
    goto yy48;
3999
0
yy202:
4000
0
    YYDEBUG(202, *YYCURSOR);
4001
0
    yyaccept = 4;
4002
0
    yych = *(YYMARKER = ++YYCURSOR);
4003
0
    if (yych == 'I') goto yy327;
4004
0
    if (yych == 'i') goto yy327;
4005
0
    goto yy48;
4006
0
yy203:
4007
0
    YYDEBUG(203, *YYCURSOR);
4008
0
    yyaccept = 4;
4009
0
    yych = *(YYMARKER = ++YYCURSOR);
4010
0
    if (yych == 'R') goto yy328;
4011
0
    if (yych == 'r') goto yy328;
4012
0
    goto yy48;
4013
0
yy204:
4014
0
    YYDEBUG(204, *YYCURSOR);
4015
0
    yyaccept = 4;
4016
0
    yych = *(YYMARKER = ++YYCURSOR);
4017
0
    if (yych <= 'Y') {
4018
0
      if (yych == 'A') goto yy329;
4019
0
      if (yych <= 'X') goto yy48;
4020
0
      goto yy330;
4021
0
    } else {
4022
0
      if (yych <= 'a') {
4023
0
        if (yych <= '`') goto yy48;
4024
0
        goto yy329;
4025
0
      } else {
4026
0
        if (yych == 'y') goto yy330;
4027
0
        goto yy48;
4028
0
      }
4029
0
    }
4030
0
yy205:
4031
0
    YYDEBUG(205, *YYCURSOR);
4032
0
    yyaccept = 4;
4033
0
    yych = *(YYMARKER = ++YYCURSOR);
4034
0
    if (yych == 'S') goto yy332;
4035
0
    if (yych == 's') goto yy332;
4036
0
    goto yy48;
4037
0
yy206:
4038
0
    YYDEBUG(206, *YYCURSOR);
4039
0
    yyaccept = 4;
4040
0
    yych = *(YYMARKER = ++YYCURSOR);
4041
0
    if (yych == 'E') goto yy333;
4042
0
    if (yych == 'e') goto yy333;
4043
0
    goto yy48;
4044
0
yy207:
4045
0
    YYDEBUG(207, *YYCURSOR);
4046
0
    yyaccept = 4;
4047
0
    yych = *(YYMARKER = ++YYCURSOR);
4048
0
    if (yych == 'R') goto yy335;
4049
0
    if (yych == 'r') goto yy335;
4050
0
    goto yy48;
4051
0
yy208:
4052
0
    YYDEBUG(208, *YYCURSOR);
4053
0
    yyaccept = 4;
4054
0
    yych = *(YYMARKER = ++YYCURSOR);
4055
0
    if (yych == 'I') goto yy337;
4056
0
    if (yych == 'i') goto yy337;
4057
0
    goto yy48;
4058
0
yy209:
4059
0
    YYDEBUG(209, *YYCURSOR);
4060
0
    yyaccept = 4;
4061
0
    yych = *(YYMARKER = ++YYCURSOR);
4062
0
    if (yych == 'R') goto yy338;
4063
0
    if (yych == 'r') goto yy338;
4064
0
    goto yy48;
4065
0
yy210:
4066
0
    YYDEBUG(210, *YYCURSOR);
4067
0
    yyaccept = 4;
4068
0
    yych = *(YYMARKER = ++YYCURSOR);
4069
0
    if (yych == 'E') goto yy340;
4070
0
    if (yych == 'e') goto yy340;
4071
0
    goto yy48;
4072
0
yy211:
4073
0
    YYDEBUG(211, *YYCURSOR);
4074
0
    yyaccept = 13;
4075
0
    YYMARKER = ++YYCURSOR;
4076
0
    YYFILL(1);
4077
0
    yych = *YYCURSOR;
4078
0
    YYDEBUG(212, *YYCURSOR);
4079
0
    if (yych <= '\\') {
4080
0
      if (yych <= '@') {
4081
0
        if (yych <= '/') goto yy213;
4082
0
        if (yych <= '9') goto yy211;
4083
0
      } else {
4084
0
        if (yych <= 'Z') goto yy211;
4085
0
        if (yych >= '\\') goto yy341;
4086
0
      }
4087
0
    } else {
4088
0
      if (yych <= '`') {
4089
0
        if (yych == '_') goto yy211;
4090
0
      } else {
4091
0
        if (yych <= 'z') goto yy211;
4092
0
        if (yych >= 0x80) goto yy211;
4093
0
      }
4094
0
    }
4095
0
yy213:
4096
0
    YYDEBUG(213, *YYCURSOR);
4097
0
    yyleng = YYCURSOR - SCNG(yy_text);
4098
0
#line 2447 "Zend/zend_language_scanner.l"
4099
0
    {
4100
0
  RETURN_TOKEN_WITH_STR(T_NAME_FULLY_QUALIFIED, 1);
4101
0
}
4102
0
#line 4103 "Zend/zend_language_scanner.c"
4103
0
yy214:
4104
0
    YYDEBUG(214, *YYCURSOR);
4105
0
    ++YYCURSOR;
4106
0
    YYDEBUG(215, *YYCURSOR);
4107
0
    yyleng = YYCURSOR - SCNG(yy_text);
4108
0
#line 1910 "Zend/zend_language_scanner.l"
4109
0
    {
4110
0
  RETURN_TOKEN(T_XOR_EQUAL);
4111
0
}
4112
0
#line 4113 "Zend/zend_language_scanner.c"
4113
0
yy216:
4114
0
    YYDEBUG(216, *YYCURSOR);
4115
0
    yyaccept = 4;
4116
0
    yych = *(YYMARKER = ++YYCURSOR);
4117
0
    switch (yych) {
4118
0
    case 'C':
4119
0
    case 'c': goto yy342;
4120
0
    case 'D':
4121
0
    case 'd': goto yy343;
4122
0
    case 'F':
4123
0
    case 'f': goto yy344;
4124
0
    case 'H':
4125
0
    case 'h': goto yy345;
4126
0
    case 'L':
4127
0
    case 'l': goto yy346;
4128
0
    case 'M':
4129
0
    case 'm': goto yy347;
4130
0
    case 'N':
4131
0
    case 'n': goto yy348;
4132
0
    case 'P':
4133
0
    case 'p': goto yy349;
4134
0
    case 'T':
4135
0
    case 't': goto yy350;
4136
0
    default:  goto yy48;
4137
0
    }
4138
0
yy217:
4139
0
    YYDEBUG(217, *YYCURSOR);
4140
0
    ++YYCURSOR;
4141
0
    YYDEBUG(218, *YYCURSOR);
4142
0
    yyleng = YYCURSOR - SCNG(yy_text);
4143
0
#line 1906 "Zend/zend_language_scanner.l"
4144
0
    {
4145
0
  RETURN_TOKEN(T_OR_EQUAL);
4146
0
}
4147
0
#line 4148 "Zend/zend_language_scanner.c"
4148
0
yy219:
4149
0
    YYDEBUG(219, *YYCURSOR);
4150
0
    ++YYCURSOR;
4151
0
    YYDEBUG(220, *YYCURSOR);
4152
0
    yyleng = YYCURSOR - SCNG(yy_text);
4153
0
#line 1918 "Zend/zend_language_scanner.l"
4154
0
    {
4155
0
  RETURN_TOKEN(T_PIPE);
4156
0
}
4157
0
#line 4158 "Zend/zend_language_scanner.c"
4158
0
yy221:
4159
0
    YYDEBUG(221, *YYCURSOR);
4160
0
    ++YYCURSOR;
4161
0
    YYDEBUG(222, *YYCURSOR);
4162
0
    yyleng = YYCURSOR - SCNG(yy_text);
4163
0
#line 1922 "Zend/zend_language_scanner.l"
4164
0
    {
4165
0
  RETURN_TOKEN(T_BOOLEAN_OR);
4166
0
}
4167
0
#line 4168 "Zend/zend_language_scanner.c"
4168
0
yy223:
4169
0
    YYDEBUG(223, *YYCURSOR);
4170
0
    ++YYCURSOR;
4171
0
    YYDEBUG(224, *YYCURSOR);
4172
0
    yyleng = YYCURSOR - SCNG(yy_text);
4173
0
#line 1838 "Zend/zend_language_scanner.l"
4174
0
    {
4175
0
  RETURN_TOKEN(T_IS_NOT_IDENTICAL);
4176
0
}
4177
0
#line 4178 "Zend/zend_language_scanner.c"
4178
0
yy225:
4179
0
    YYDEBUG(225, *YYCURSOR);
4180
0
    ++YYCURSOR;
4181
0
    YYFILL(1);
4182
0
    yych = *YYCURSOR;
4183
0
    YYDEBUG(226, *YYCURSOR);
4184
0
    if (yybm[0+yych] & 2) {
4185
0
      goto yy225;
4186
0
    }
4187
0
    if (yych <= 0x00) goto yy86;
4188
0
    goto yy84;
4189
0
yy227:
4190
0
    YYDEBUG(227, *YYCURSOR);
4191
0
    ++YYCURSOR;
4192
0
    YYFILL(1);
4193
0
    yych = *YYCURSOR;
4194
0
    YYDEBUG(228, *YYCURSOR);
4195
0
    if (yych <= 0x1F) {
4196
0
      if (yych <= '\t') {
4197
0
        if (yych <= 0x00) goto yy86;
4198
0
        if (yych <= 0x08) goto yy225;
4199
0
        goto yy227;
4200
0
      } else {
4201
0
        if (yych <= '\n') goto yy84;
4202
0
        if (yych == '\r') goto yy84;
4203
0
        goto yy225;
4204
0
      }
4205
0
    } else {
4206
0
      if (yych <= '$') {
4207
0
        if (yych <= ' ') goto yy227;
4208
0
        if (yych <= '"') goto yy225;
4209
0
        if (yych <= '#') goto yy351;
4210
0
        goto yy352;
4211
0
      } else {
4212
0
        if (yych <= '-') goto yy225;
4213
0
        if (yych <= '.') goto yy353;
4214
0
        if (yych <= '/') goto yy354;
4215
0
        goto yy225;
4216
0
      }
4217
0
    }
4218
0
yy229:
4219
0
    YYDEBUG(229, *YYCURSOR);
4220
0
    yych = *++YYCURSOR;
4221
0
    if (yych == '.') goto yy88;
4222
0
    goto yy86;
4223
0
yy230:
4224
0
    YYDEBUG(230, *YYCURSOR);
4225
0
    ++YYCURSOR;
4226
0
    YYFILL(1);
4227
0
    yych = *YYCURSOR;
4228
0
    YYDEBUG(231, *YYCURSOR);
4229
0
    if (yybm[0+yych] & 4) {
4230
0
      goto yy230;
4231
0
    }
4232
0
    if (yych <= 0x00) goto yy86;
4233
0
    goto yy355;
4234
0
yy232:
4235
0
    YYDEBUG(232, *YYCURSOR);
4236
0
    yych = *++YYCURSOR;
4237
0
    if (yych == 'R') goto yy357;
4238
0
    if (yych == 'r') goto yy357;
4239
0
    goto yy86;
4240
0
yy233:
4241
0
    YYDEBUG(233, *YYCURSOR);
4242
0
    yych = *++YYCURSOR;
4243
0
    if (yych == 'N') goto yy358;
4244
0
    if (yych == 'n') goto yy358;
4245
0
    goto yy86;
4246
0
yy234:
4247
0
    YYDEBUG(234, *YYCURSOR);
4248
0
    yych = *++YYCURSOR;
4249
0
    if (yych == 'O') goto yy359;
4250
0
    if (yych == 'o') goto yy359;
4251
0
    goto yy86;
4252
0
yy235:
4253
0
    YYDEBUG(235, *YYCURSOR);
4254
0
    yych = *++YYCURSOR;
4255
0
    if (yych == 'U') goto yy360;
4256
0
    if (yych == 'u') goto yy360;
4257
0
    goto yy86;
4258
0
yy236:
4259
0
    YYDEBUG(236, *YYCURSOR);
4260
0
    yych = *++YYCURSOR;
4261
0
    if (yych == 'O') goto yy361;
4262
0
    if (yych == 'o') goto yy361;
4263
0
    goto yy86;
4264
0
yy237:
4265
0
    YYDEBUG(237, *YYCURSOR);
4266
0
    yych = *++YYCURSOR;
4267
0
    if (yych == 'T') goto yy362;
4268
0
    if (yych == 't') goto yy362;
4269
0
    goto yy86;
4270
0
yy238:
4271
0
    YYDEBUG(238, *YYCURSOR);
4272
0
    yych = *++YYCURSOR;
4273
0
    if (yych == 'J') goto yy363;
4274
0
    if (yych == 'j') goto yy363;
4275
0
    goto yy86;
4276
0
yy239:
4277
0
    YYDEBUG(239, *YYCURSOR);
4278
0
    yych = *++YYCURSOR;
4279
0
    if (yych == 'A') goto yy364;
4280
0
    if (yych == 'a') goto yy364;
4281
0
    goto yy86;
4282
0
yy240:
4283
0
    YYDEBUG(240, *YYCURSOR);
4284
0
    yych = *++YYCURSOR;
4285
0
    if (yych == 'R') goto yy365;
4286
0
    if (yych == 'r') goto yy365;
4287
0
    goto yy86;
4288
0
yy241:
4289
0
    YYDEBUG(241, *YYCURSOR);
4290
0
    yych = *++YYCURSOR;
4291
0
    if (yych == 'S') goto yy366;
4292
0
    if (yych == 's') goto yy366;
4293
0
    goto yy86;
4294
0
yy242:
4295
0
    YYDEBUG(242, *YYCURSOR);
4296
0
    yych = *++YYCURSOR;
4297
0
    if (yych == 'I') goto yy367;
4298
0
    if (yych == 'i') goto yy367;
4299
0
    goto yy86;
4300
0
yy243:
4301
0
    YYDEBUG(243, *YYCURSOR);
4302
0
    ++YYCURSOR;
4303
0
    YYDEBUG(244, *YYCURSOR);
4304
0
    yyleng = YYCURSOR - SCNG(yy_text);
4305
0
#line 1878 "Zend/zend_language_scanner.l"
4306
0
    {
4307
0
  RETURN_TOKEN(T_POW_EQUAL);
4308
0
}
4309
0
#line 4310 "Zend/zend_language_scanner.c"
4310
0
yy245:
4311
0
    YYDEBUG(245, *YYCURSOR);
4312
0
    ++YYCURSOR;
4313
0
    YYDEBUG(246, *YYCURSOR);
4314
0
    yyleng = YYCURSOR - SCNG(yy_text);
4315
0
#line 1618 "Zend/zend_language_scanner.l"
4316
0
    {
4317
0
  RETURN_TOKEN(T_ELLIPSIS);
4318
0
}
4319
0
#line 4320 "Zend/zend_language_scanner.c"
4320
0
yy247:
4321
0
    YYDEBUG(247, *YYCURSOR);
4322
0
    ++YYCURSOR;
4323
0
    YYFILL(1);
4324
0
    yych = *YYCURSOR;
4325
0
    if (yych <= '/') goto yy86;
4326
0
    if (yych <= '9') goto yy123;
4327
0
    goto yy86;
4328
0
yy248:
4329
0
    YYDEBUG(248, *YYCURSOR);
4330
0
    yych = *++YYCURSOR;
4331
0
    if (yych <= '\f') {
4332
0
      if (yych <= 0x08) goto yy86;
4333
0
      if (yych <= '\n') goto yy368;
4334
0
      goto yy86;
4335
0
    } else {
4336
0
      if (yych <= '\r') goto yy368;
4337
0
      if (yych == ' ') goto yy368;
4338
0
      goto yy86;
4339
0
    }
4340
0
yy249:
4341
0
    YYDEBUG(249, *YYCURSOR);
4342
0
    yyaccept = 14;
4343
0
    YYMARKER = ++YYCURSOR;
4344
0
    YYFILL(1);
4345
0
    yych = *YYCURSOR;
4346
0
    YYDEBUG(250, *YYCURSOR);
4347
0
    if (yybm[0+yych] & 8) {
4348
0
      goto yy249;
4349
0
    }
4350
0
    if (yych == '_') goto yy134;
4351
0
yy251:
4352
0
    YYDEBUG(251, *YYCURSOR);
4353
0
    yyleng = YYCURSOR - SCNG(yy_text);
4354
0
#line 2011 "Zend/zend_language_scanner.l"
4355
0
    {
4356
  /* The +/- 2 skips "0b" */
4357
0
  size_t len = yyleng - 2;
4358
0
  char *end, *bin = yytext + 2;
4359
0
  bool contains_underscores;
4360
4361
  /* Skip any leading 0s */
4362
0
  while (len > 0 && (*bin == '0' || *bin == '_')) {
4363
0
    ++bin;
4364
0
    --len;
4365
0
  }
4366
4367
0
  contains_underscores = (memchr(bin, '_', len) != NULL);
4368
4369
0
  if (contains_underscores) {
4370
0
    bin = estrndup(bin, len);
4371
0
    strip_underscores(bin, &len);
4372
0
  }
4373
4374
0
  if (len < SIZEOF_ZEND_LONG * 8) {
4375
0
    if (len == 0) {
4376
0
      ZVAL_LONG(zendlval, 0);
4377
0
    } else {
4378
0
      errno = 0;
4379
0
      ZVAL_LONG(zendlval, ZEND_STRTOL(bin, &end, 2));
4380
0
      ZEND_ASSERT(!errno && end == bin + len);
4381
0
    }
4382
0
    if (contains_underscores) {
4383
0
      efree(bin);
4384
0
    }
4385
0
    RETURN_TOKEN_WITH_VAL(T_LNUMBER);
4386
0
  } else {
4387
0
    ZVAL_DOUBLE(zendlval, zend_bin_strtod(bin, (const char **)&end));
4388
    /* errno isn't checked since we allow HUGE_VAL/INF overflow */
4389
0
    ZEND_ASSERT(end == bin + len);
4390
0
    if (contains_underscores) {
4391
0
      efree(bin);
4392
0
    }
4393
0
    RETURN_TOKEN_WITH_VAL(T_DNUMBER);
4394
0
  }
4395
0
}
4396
0
#line 4397 "Zend/zend_language_scanner.c"
4397
0
yy252:
4398
0
    YYDEBUG(252, *YYCURSOR);
4399
0
    ++YYCURSOR;
4400
0
    YYFILL(1);
4401
0
    yych = *YYCURSOR;
4402
0
    if (yych <= '/') goto yy86;
4403
0
    if (yych >= ':') goto yy86;
4404
0
yy253:
4405
0
    YYDEBUG(253, *YYCURSOR);
4406
0
    yyaccept = 5;
4407
0
    YYMARKER = ++YYCURSOR;
4408
0
    YYFILL(1);
4409
0
    yych = *YYCURSOR;
4410
0
    YYDEBUG(254, *YYCURSOR);
4411
0
    if (yych <= '/') goto yy125;
4412
0
    if (yych <= '9') goto yy253;
4413
0
    if (yych == '_') goto yy252;
4414
0
    goto yy125;
4415
0
yy255:
4416
0
    YYDEBUG(255, *YYCURSOR);
4417
0
    yyaccept = 15;
4418
0
    YYMARKER = ++YYCURSOR;
4419
0
    YYFILL(1);
4420
0
    yych = *YYCURSOR;
4421
0
    YYDEBUG(256, *YYCURSOR);
4422
0
    if (yybm[0+yych] & 16) {
4423
0
      goto yy255;
4424
0
    }
4425
0
    if (yych == '_') goto yy136;
4426
0
yy257:
4427
0
    YYDEBUG(257, *YYCURSOR);
4428
0
    yyleng = YYCURSOR - SCNG(yy_text);
4429
0
#line 2053 "Zend/zend_language_scanner.l"
4430
0
    {
4431
  /* The +/- 2 skips "0o" */
4432
0
  size_t len = yyleng - 2;
4433
0
  char *end, *octal = yytext + 2;
4434
0
  bool contains_underscores = (memchr(octal, '_', len) != NULL);
4435
4436
  /* Skip any leading 0s */
4437
0
  while (len > 0 && (*octal == '0' || *octal == '_')) {
4438
0
    ++octal;
4439
0
    --len;
4440
0
  }
4441
4442
0
  if (len == 0) {
4443
0
    ZVAL_LONG(zendlval, 0);
4444
0
    RETURN_TOKEN_WITH_VAL(T_LNUMBER);
4445
0
  }
4446
4447
0
  if (contains_underscores) {
4448
0
    octal = estrndup(octal, len);
4449
0
    strip_underscores(octal, &len);
4450
0
  }
4451
4452
0
  errno = 0;
4453
4454
0
  ZVAL_LONG(zendlval, ZEND_STRTOL(octal, &end, 8));
4455
4456
0
  ZEND_ASSERT(end == octal + len);
4457
4458
0
  if (!errno) {
4459
0
    if (contains_underscores) {
4460
0
      efree(octal);
4461
0
    }
4462
0
    RETURN_TOKEN_WITH_VAL(T_LNUMBER);
4463
0
  }
4464
4465
  /* Overflow */
4466
0
  ZEND_ASSERT(errno == ERANGE);
4467
  /* Reset errno */
4468
0
  errno = 0;
4469
4470
  /* zend_oct_strtod skips leading '0' */
4471
0
  ZVAL_DOUBLE(zendlval, zend_oct_strtod(octal, (const char **)&end));
4472
0
  ZEND_ASSERT(!errno);
4473
0
  ZEND_ASSERT(end == octal + len);
4474
0
  if (contains_underscores) {
4475
0
    efree(octal);
4476
0
  }
4477
0
  RETURN_TOKEN_WITH_VAL(T_DNUMBER);
4478
0
}
4479
0
#line 4480 "Zend/zend_language_scanner.c"
4480
0
yy258:
4481
0
    YYDEBUG(258, *YYCURSOR);
4482
0
    yyaccept = 16;
4483
0
    YYMARKER = ++YYCURSOR;
4484
0
    YYFILL(1);
4485
0
    yych = *YYCURSOR;
4486
0
    YYDEBUG(259, *YYCURSOR);
4487
0
    if (yybm[0+yych] & 32) {
4488
0
      goto yy258;
4489
0
    }
4490
0
    if (yych == '_') goto yy137;
4491
0
yy260:
4492
0
    YYDEBUG(260, *YYCURSOR);
4493
0
    yyleng = YYCURSOR - SCNG(yy_text);
4494
0
#line 2166 "Zend/zend_language_scanner.l"
4495
0
    {
4496
  /* The +/- 2 skips "0x" */
4497
0
  size_t len = yyleng - 2;
4498
0
  char *end, *hex = yytext + 2;
4499
0
  bool contains_underscores;
4500
4501
  /* Skip any leading 0s */
4502
0
  while (len > 0 && (*hex == '0' || *hex == '_')) {
4503
0
    ++hex;
4504
0
    --len;
4505
0
  }
4506
4507
0
  contains_underscores = (memchr(hex, '_', len) != NULL);
4508
4509
0
  if (contains_underscores) {
4510
0
    hex = estrndup(hex, len);
4511
0
    strip_underscores(hex, &len);
4512
0
  }
4513
4514
0
  if (len < SIZEOF_ZEND_LONG * 2 || (len == SIZEOF_ZEND_LONG * 2 && *hex <= '7')) {
4515
0
    if (len == 0) {
4516
0
      ZVAL_LONG(zendlval, 0);
4517
0
    } else {
4518
0
      errno = 0;
4519
0
      ZVAL_LONG(zendlval, ZEND_STRTOL(hex, &end, 16));
4520
0
      ZEND_ASSERT(!errno && end == hex + len);
4521
0
    }
4522
0
    if (contains_underscores) {
4523
0
      efree(hex);
4524
0
    }
4525
0
    RETURN_TOKEN_WITH_VAL(T_LNUMBER);
4526
0
  } else {
4527
0
    ZVAL_DOUBLE(zendlval, zend_hex_strtod(hex, (const char **)&end));
4528
    /* errno isn't checked since we allow HUGE_VAL/INF overflow */
4529
0
    ZEND_ASSERT(end == hex + len);
4530
0
    if (contains_underscores) {
4531
0
      efree(hex);
4532
0
    }
4533
0
    RETURN_TOKEN_WITH_VAL(T_DNUMBER);
4534
0
  }
4535
0
}
4536
0
#line 4537 "Zend/zend_language_scanner.c"
4537
0
yy261:
4538
0
    YYDEBUG(261, *YYCURSOR);
4539
0
    ++YYCURSOR;
4540
0
    YYFILL(2);
4541
0
    yych = *YYCURSOR;
4542
0
    YYDEBUG(262, *YYCURSOR);
4543
0
    if (yych <= '\'') {
4544
0
      if (yych <= ' ') {
4545
0
        if (yych == '\t') goto yy261;
4546
0
        if (yych <= 0x1F) goto yy86;
4547
0
        goto yy261;
4548
0
      } else {
4549
0
        if (yych == '"') goto yy370;
4550
0
        if (yych <= '&') goto yy86;
4551
0
        goto yy371;
4552
0
      }
4553
0
    } else {
4554
0
      if (yych <= '_') {
4555
0
        if (yych <= '@') goto yy86;
4556
0
        if (yych <= 'Z') goto yy372;
4557
0
        if (yych <= '^') goto yy86;
4558
0
        goto yy372;
4559
0
      } else {
4560
0
        if (yych <= '`') goto yy86;
4561
0
        if (yych <= 'z') goto yy372;
4562
0
        if (yych <= 0x7F) goto yy86;
4563
0
        goto yy372;
4564
0
      }
4565
0
    }
4566
0
yy263:
4567
0
    YYDEBUG(263, *YYCURSOR);
4568
0
    ++YYCURSOR;
4569
0
    YYDEBUG(264, *YYCURSOR);
4570
0
    yyleng = YYCURSOR - SCNG(yy_text);
4571
0
#line 1894 "Zend/zend_language_scanner.l"
4572
0
    {
4573
0
  RETURN_TOKEN(T_SL_EQUAL);
4574
0
}
4575
0
#line 4576 "Zend/zend_language_scanner.c"
4576
0
yy265:
4577
0
    YYDEBUG(265, *YYCURSOR);
4578
0
    ++YYCURSOR;
4579
0
    YYDEBUG(266, *YYCURSOR);
4580
0
    yyleng = YYCURSOR - SCNG(yy_text);
4581
0
#line 1850 "Zend/zend_language_scanner.l"
4582
0
    {
4583
0
  RETURN_TOKEN(T_SPACESHIP);
4584
0
}
4585
0
#line 4586 "Zend/zend_language_scanner.c"
4586
0
yy267:
4587
0
    YYDEBUG(267, *YYCURSOR);
4588
0
    ++YYCURSOR;
4589
0
    YYDEBUG(268, *YYCURSOR);
4590
0
    yyleng = YYCURSOR - SCNG(yy_text);
4591
0
#line 1834 "Zend/zend_language_scanner.l"
4592
0
    {
4593
0
  RETURN_TOKEN(T_IS_IDENTICAL);
4594
0
}
4595
0
#line 4596 "Zend/zend_language_scanner.c"
4596
0
yy269:
4597
0
    YYDEBUG(269, *YYCURSOR);
4598
0
    ++YYCURSOR;
4599
0
    YYDEBUG(270, *YYCURSOR);
4600
0
    yyleng = YYCURSOR - SCNG(yy_text);
4601
0
#line 1898 "Zend/zend_language_scanner.l"
4602
0
    {
4603
0
  RETURN_TOKEN(T_SR_EQUAL);
4604
0
}
4605
0
#line 4606 "Zend/zend_language_scanner.c"
4606
0
yy271:
4607
0
    YYDEBUG(271, *YYCURSOR);
4608
0
    ++YYCURSOR;
4609
0
    YYDEBUG(272, *YYCURSOR);
4610
0
    yyleng = YYCURSOR - SCNG(yy_text);
4611
0
#line 1592 "Zend/zend_language_scanner.l"
4612
0
    {
4613
0
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
4614
0
  RETURN_TOKEN(T_NULLSAFE_OBJECT_OPERATOR);
4615
0
}
4616
0
#line 4617 "Zend/zend_language_scanner.c"
4617
0
yy273:
4618
0
    YYDEBUG(273, *YYCURSOR);
4619
0
    ++YYCURSOR;
4620
0
    goto yy156;
4621
0
yy274:
4622
0
    YYDEBUG(274, *YYCURSOR);
4623
0
    yych = *++YYCURSOR;
4624
0
    if (yych == '\n') goto yy273;
4625
0
    goto yy156;
4626
0
yy275:
4627
0
    YYDEBUG(275, *YYCURSOR);
4628
0
    ++YYCURSOR;
4629
0
    YYDEBUG(276, *YYCURSOR);
4630
0
    yyleng = YYCURSOR - SCNG(yy_text);
4631
0
#line 1914 "Zend/zend_language_scanner.l"
4632
0
    {
4633
0
  RETURN_TOKEN(T_COALESCE_EQUAL);
4634
0
}
4635
0
#line 4636 "Zend/zend_language_scanner.c"
4636
0
yy277:
4637
0
    YYDEBUG(277, *YYCURSOR);
4638
0
    yyaccept = 4;
4639
0
    yych = *(YYMARKER = ++YYCURSOR);
4640
0
    if (yych == 'T') goto yy374;
4641
0
    if (yych == 't') goto yy374;
4642
0
    goto yy48;
4643
0
yy278:
4644
0
    YYDEBUG(278, *YYCURSOR);
4645
0
    yyaccept = 17;
4646
0
    yych = *(YYMARKER = ++YYCURSOR);
4647
0
    if (yybm[256+yych] & 128) {
4648
0
      goto yy47;
4649
0
    }
4650
0
    if (yych == '\\') goto yy164;
4651
0
yy279:
4652
0
    YYDEBUG(279, *YYCURSOR);
4653
0
    yyleng = YYCURSOR - SCNG(yy_text);
4654
0
#line 1934 "Zend/zend_language_scanner.l"
4655
0
    {
4656
0
  RETURN_TOKEN_WITH_IDENT(T_LOGICAL_AND);
4657
0
}
4658
0
#line 4659 "Zend/zend_language_scanner.c"
4659
0
yy280:
4660
0
    YYDEBUG(280, *YYCURSOR);
4661
0
    yyaccept = 4;
4662
0
    yych = *(YYMARKER = ++YYCURSOR);
4663
0
    if (yych == 'A') goto yy375;
4664
0
    if (yych == 'a') goto yy375;
4665
0
    goto yy48;
4666
0
yy281:
4667
0
    YYDEBUG(281, *YYCURSOR);
4668
0
    yyaccept = 18;
4669
0
    YYMARKER = ++YYCURSOR;
4670
0
    YYFILL(1);
4671
0
    yych = *YYCURSOR;
4672
0
    YYDEBUG(282, *YYCURSOR);
4673
0
    if (yych <= '\\') {
4674
0
      if (yych <= '@') {
4675
0
        if (yych <= '/') goto yy283;
4676
0
        if (yych <= '9') goto yy281;
4677
0
      } else {
4678
0
        if (yych <= 'Z') goto yy281;
4679
0
        if (yych >= '\\') goto yy164;
4680
0
      }
4681
0
    } else {
4682
0
      if (yych <= '`') {
4683
0
        if (yych == '_') goto yy281;
4684
0
      } else {
4685
0
        if (yych <= 'z') goto yy281;
4686
0
        if (yych >= 0x80) goto yy281;
4687
0
      }
4688
0
    }
4689
0
yy283:
4690
0
    YYDEBUG(283, *YYCURSOR);
4691
0
    yyleng = YYCURSOR - SCNG(yy_text);
4692
0
#line 2443 "Zend/zend_language_scanner.l"
4693
0
    {
4694
0
  RETURN_TOKEN_WITH_STR(T_NAME_QUALIFIED, 0);
4695
0
}
4696
0
#line 4697 "Zend/zend_language_scanner.c"
4697
0
yy284:
4698
0
    YYDEBUG(284, *YYCURSOR);
4699
0
    yych = *++YYCURSOR;
4700
0
    if (yych == '<') goto yy261;
4701
0
    goto yy86;
4702
0
yy285:
4703
0
    YYDEBUG(285, *YYCURSOR);
4704
0
    yyaccept = 4;
4705
0
    yych = *(YYMARKER = ++YYCURSOR);
4706
0
    if (yych == 'A') goto yy376;
4707
0
    if (yych == 'a') goto yy376;
4708
0
    goto yy48;
4709
0
yy286:
4710
0
    YYDEBUG(286, *YYCURSOR);
4711
0
    yyaccept = 4;
4712
0
    yych = *(YYMARKER = ++YYCURSOR);
4713
0
    if (yych == 'L') goto yy377;
4714
0
    if (yych == 'l') goto yy377;
4715
0
    goto yy48;
4716
0
yy287:
4717
0
    YYDEBUG(287, *YYCURSOR);
4718
0
    yyaccept = 4;
4719
0
    yych = *(YYMARKER = ++YYCURSOR);
4720
0
    if (yych == 'E') goto yy378;
4721
0
    if (yych == 'e') goto yy378;
4722
0
    goto yy48;
4723
0
yy288:
4724
0
    YYDEBUG(288, *YYCURSOR);
4725
0
    yyaccept = 4;
4726
0
    yych = *(YYMARKER = ++YYCURSOR);
4727
0
    if (yych == 'C') goto yy380;
4728
0
    if (yych == 'c') goto yy380;
4729
0
    goto yy48;
4730
0
yy289:
4731
0
    YYDEBUG(289, *YYCURSOR);
4732
0
    yyaccept = 4;
4733
0
    yych = *(YYMARKER = ++YYCURSOR);
4734
0
    if (yych == 'S') goto yy381;
4735
0
    if (yych == 's') goto yy381;
4736
0
    goto yy48;
4737
0
yy290:
4738
0
    YYDEBUG(290, *YYCURSOR);
4739
0
    yyaccept = 4;
4740
0
    yych = *(YYMARKER = ++YYCURSOR);
4741
0
    if (yych == 'N') goto yy382;
4742
0
    if (yych == 'n') goto yy382;
4743
0
    goto yy48;
4744
0
yy291:
4745
0
    YYDEBUG(291, *YYCURSOR);
4746
0
    yyaccept = 4;
4747
0
    yych = *(YYMARKER = ++YYCURSOR);
4748
0
    if (yych <= 'T') {
4749
0
      if (yych <= 'R') goto yy48;
4750
0
      if (yych <= 'S') goto yy383;
4751
0
      goto yy384;
4752
0
    } else {
4753
0
      if (yych <= 'r') goto yy48;
4754
0
      if (yych <= 's') goto yy383;
4755
0
      if (yych <= 't') goto yy384;
4756
0
      goto yy48;
4757
0
    }
4758
0
yy292:
4759
0
    YYDEBUG(292, *YYCURSOR);
4760
0
    yyaccept = 4;
4761
0
    yych = *(YYMARKER = ++YYCURSOR);
4762
0
    if (yych == 'L') goto yy385;
4763
0
    if (yych == 'l') goto yy385;
4764
0
    goto yy48;
4765
0
yy293:
4766
0
    YYDEBUG(293, *YYCURSOR);
4767
0
    yyaccept = 4;
4768
0
    yych = *(YYMARKER = ++YYCURSOR);
4769
0
    if (yych == 'A') goto yy386;
4770
0
    if (yych == 'a') goto yy386;
4771
0
    goto yy48;
4772
0
yy294:
4773
0
    YYDEBUG(294, *YYCURSOR);
4774
0
    yyaccept = 19;
4775
0
    yych = *(YYMARKER = ++YYCURSOR);
4776
0
    if (yybm[256+yych] & 128) {
4777
0
      goto yy47;
4778
0
    }
4779
0
    if (yych == '\\') goto yy164;
4780
0
yy295:
4781
0
    YYDEBUG(295, *YYCURSOR);
4782
0
    yyleng = YYCURSOR - SCNG(yy_text);
4783
0
#line 1403 "Zend/zend_language_scanner.l"
4784
0
    {
4785
0
  RETURN_TOKEN_WITH_IDENT(T_EXIT);
4786
0
}
4787
0
#line 4788 "Zend/zend_language_scanner.c"
4788
0
yy296:
4789
0
    YYDEBUG(296, *YYCURSOR);
4790
0
    yyaccept = 4;
4791
0
    yych = *(YYMARKER = ++YYCURSOR);
4792
0
    if (yych == 'O') goto yy387;
4793
0
    if (yych == 'o') goto yy387;
4794
0
    goto yy48;
4795
0
yy297:
4796
0
    YYDEBUG(297, *YYCURSOR);
4797
0
    yyaccept = 4;
4798
0
    yych = *(YYMARKER = ++YYCURSOR);
4799
0
    if (yych == 'E') goto yy389;
4800
0
    if (yych == 'e') goto yy389;
4801
0
    goto yy48;
4802
0
yy298:
4803
0
    YYDEBUG(298, *YYCURSOR);
4804
0
    yyaccept = 4;
4805
0
    yych = *(YYMARKER = ++YYCURSOR);
4806
0
    if (yych == 'T') goto yy391;
4807
0
    if (yych == 't') goto yy391;
4808
0
    goto yy48;
4809
0
yy299:
4810
0
    YYDEBUG(299, *YYCURSOR);
4811
0
    yyaccept = 4;
4812
0
    yych = *(YYMARKER = ++YYCURSOR);
4813
0
    switch (yych) {
4814
0
    case 'D':
4815
0
    case 'd': goto yy392;
4816
0
    case 'F':
4817
0
    case 'f': goto yy393;
4818
0
    case 'I':
4819
0
    case 'i': goto yy394;
4820
0
    case 'S':
4821
0
    case 's': goto yy395;
4822
0
    case 'W':
4823
0
    case 'w': goto yy396;
4824
0
    default:  goto yy48;
4825
0
    }
4826
0
yy300:
4827
0
    YYDEBUG(300, *YYCURSOR);
4828
0
    yyaccept = 4;
4829
0
    yych = *(YYMARKER = ++YYCURSOR);
4830
0
    if (yych == 'M') goto yy397;
4831
0
    if (yych == 'm') goto yy397;
4832
0
    goto yy48;
4833
0
yy301:
4834
0
    YYDEBUG(301, *YYCURSOR);
4835
0
    yyaccept = 4;
4836
0
    yych = *(YYMARKER = ++YYCURSOR);
4837
0
    if (yych == 'L') goto yy398;
4838
0
    if (yych == 'l') goto yy398;
4839
0
    goto yy48;
4840
0
yy302:
4841
0
    YYDEBUG(302, *YYCURSOR);
4842
0
    yyaccept = 4;
4843
0
    yych = *(YYMARKER = ++YYCURSOR);
4844
0
    if (yych == 'T') goto yy400;
4845
0
    if (yych == 't') goto yy400;
4846
0
    goto yy48;
4847
0
yy303:
4848
0
    YYDEBUG(303, *YYCURSOR);
4849
0
    yyaccept = 4;
4850
0
    yych = *(YYMARKER = ++YYCURSOR);
4851
0
    if (yych == 'E') goto yy402;
4852
0
    if (yych == 'e') goto yy402;
4853
0
    goto yy48;
4854
0
yy304:
4855
0
    YYDEBUG(304, *YYCURSOR);
4856
0
    yyaccept = 4;
4857
0
    yych = *(YYMARKER = ++YYCURSOR);
4858
0
    if (yych == 'A') goto yy403;
4859
0
    if (yych == 'a') goto yy403;
4860
0
    goto yy48;
4861
0
yy305:
4862
0
    YYDEBUG(305, *YYCURSOR);
4863
0
    yyaccept = 20;
4864
0
    yych = *(YYMARKER = ++YYCURSOR);
4865
0
    if (yych <= '\\') {
4866
0
      if (yych <= 'D') {
4867
0
        if (yych <= '/') goto yy306;
4868
0
        if (yych <= '9') goto yy47;
4869
0
        if (yych >= 'A') goto yy47;
4870
0
      } else {
4871
0
        if (yych <= 'E') goto yy404;
4872
0
        if (yych <= 'Z') goto yy47;
4873
0
        if (yych >= '\\') goto yy164;
4874
0
      }
4875
0
    } else {
4876
0
      if (yych <= 'd') {
4877
0
        if (yych == '_') goto yy47;
4878
0
        if (yych >= 'a') goto yy47;
4879
0
      } else {
4880
0
        if (yych <= 'e') goto yy404;
4881
0
        if (yych <= 'z') goto yy47;
4882
0
        if (yych >= 0x80) goto yy47;
4883
0
      }
4884
0
    }
4885
0
yy306:
4886
0
    YYDEBUG(306, *YYCURSOR);
4887
0
    yyleng = YYCURSOR - SCNG(yy_text);
4888
0
#line 1482 "Zend/zend_language_scanner.l"
4889
0
    {
4890
0
  RETURN_TOKEN_WITH_IDENT(T_FOR);
4891
0
}
4892
0
#line 4893 "Zend/zend_language_scanner.c"
4893
0
yy307:
4894
0
    YYDEBUG(307, *YYCURSOR);
4895
0
    yyaccept = 4;
4896
0
    yych = *(YYMARKER = ++YYCURSOR);
4897
0
    if (yych == 'C') goto yy405;
4898
0
    if (yych == 'c') goto yy405;
4899
0
    goto yy48;
4900
0
yy308:
4901
0
    YYDEBUG(308, *YYCURSOR);
4902
0
    yyaccept = 4;
4903
0
    yych = *(YYMARKER = ++YYCURSOR);
4904
0
    if (yych == 'B') goto yy406;
4905
0
    if (yych == 'b') goto yy406;
4906
0
    goto yy48;
4907
0
yy309:
4908
0
    YYDEBUG(309, *YYCURSOR);
4909
0
    yyaccept = 4;
4910
0
    yych = *(YYMARKER = ++YYCURSOR);
4911
0
    if (yych == 'O') goto yy407;
4912
0
    if (yych == 'o') goto yy407;
4913
0
    goto yy48;
4914
0
yy310:
4915
0
    YYDEBUG(310, *YYCURSOR);
4916
0
    yyaccept = 4;
4917
0
    yych = *(YYMARKER = ++YYCURSOR);
4918
0
    if (yych == 'L') goto yy409;
4919
0
    if (yych == 'l') goto yy409;
4920
0
    goto yy48;
4921
0
yy311:
4922
0
    YYDEBUG(311, *YYCURSOR);
4923
0
    yyaccept = 4;
4924
0
    yych = *(YYMARKER = ++YYCURSOR);
4925
0
    if (yych == 'L') goto yy410;
4926
0
    if (yych == 'l') goto yy410;
4927
0
    goto yy48;
4928
0
yy312:
4929
0
    YYDEBUG(312, *YYCURSOR);
4930
0
    yyaccept = 4;
4931
0
    yych = *(YYMARKER = ++YYCURSOR);
4932
0
    if (yych == 'T') goto yy411;
4933
0
    if (yych == 't') goto yy411;
4934
0
    goto yy48;
4935
0
yy313:
4936
0
    YYDEBUG(313, *YYCURSOR);
4937
0
    yyaccept = 4;
4938
0
    yych = *(YYMARKER = ++YYCURSOR);
4939
0
    if (yych == 'E') goto yy412;
4940
0
    if (yych == 'e') goto yy412;
4941
0
    goto yy48;
4942
0
yy314:
4943
0
    YYDEBUG(314, *YYCURSOR);
4944
0
    yyaccept = 4;
4945
0
    yych = *(YYMARKER = ++YYCURSOR);
4946
0
    if (yych == 'E') goto yy413;
4947
0
    if (yych == 'e') goto yy413;
4948
0
    goto yy48;
4949
0
yy315:
4950
0
    YYDEBUG(315, *YYCURSOR);
4951
0
    yyaccept = 4;
4952
0
    yych = *(YYMARKER = ++YYCURSOR);
4953
0
    if (yych == 'T') goto yy414;
4954
0
    if (yych == 't') goto yy414;
4955
0
    goto yy48;
4956
0
yy316:
4957
0
    YYDEBUG(316, *YYCURSOR);
4958
0
    yyaccept = 4;
4959
0
    yych = *(YYMARKER = ++YYCURSOR);
4960
0
    if (yych == 'C') goto yy416;
4961
0
    if (yych == 'c') goto yy416;
4962
0
    goto yy48;
4963
0
yy317:
4964
0
    YYDEBUG(317, *YYCURSOR);
4965
0
    yyaccept = 4;
4966
0
    yych = *(YYMARKER = ++YYCURSOR);
4967
0
    if (yych == 'E') goto yy417;
4968
0
    if (yych == 'e') goto yy417;
4969
0
    goto yy48;
4970
0
yy318:
4971
0
    YYDEBUG(318, *YYCURSOR);
4972
0
    yyaccept = 21;
4973
0
    yych = *(YYMARKER = ++YYCURSOR);
4974
0
    if (yybm[256+yych] & 128) {
4975
0
      goto yy47;
4976
0
    }
4977
0
    if (yych == '\\') goto yy164;
4978
0
yy319:
4979
0
    YYDEBUG(319, *YYCURSOR);
4980
0
    yyleng = YYCURSOR - SCNG(yy_text);
4981
0
#line 1626 "Zend/zend_language_scanner.l"
4982
0
    {
4983
0
  RETURN_TOKEN_WITH_IDENT(T_NEW);
4984
0
}
4985
0
#line 4986 "Zend/zend_language_scanner.c"
4986
0
yy320:
4987
0
    YYDEBUG(320, *YYCURSOR);
4988
0
    yyaccept = 4;
4989
0
    yych = *(YYMARKER = ++YYCURSOR);
4990
0
    if (yych <= 'V') {
4991
0
      if (yych == 'N') goto yy418;
4992
0
      if (yych <= 'U') goto yy48;
4993
0
      goto yy419;
4994
0
    } else {
4995
0
      if (yych <= 'n') {
4996
0
        if (yych <= 'm') goto yy48;
4997
0
        goto yy418;
4998
0
      } else {
4999
0
        if (yych == 'v') goto yy419;
5000
0
        goto yy48;
5001
0
      }
5002
0
    }
5003
0
yy321:
5004
0
    YYDEBUG(321, *YYCURSOR);
5005
0
    yyaccept = 4;
5006
0
    yych = *(YYMARKER = ++YYCURSOR);
5007
0
    if (yych == 'T') goto yy420;
5008
0
    if (yych == 't') goto yy420;
5009
0
    goto yy48;
5010
0
yy322:
5011
0
    YYDEBUG(322, *YYCURSOR);
5012
0
    yyaccept = 4;
5013
0
    yych = *(YYMARKER = ++YYCURSOR);
5014
0
    if (yych == 'L') goto yy421;
5015
0
    if (yych == 'l') goto yy421;
5016
0
    goto yy48;
5017
0
yy323:
5018
0
    YYDEBUG(323, *YYCURSOR);
5019
0
    yyaccept = 4;
5020
0
    yych = *(YYMARKER = ++YYCURSOR);
5021
0
    if (yych == 'D') goto yy422;
5022
0
    if (yych == 'd') goto yy422;
5023
0
    goto yy48;
5024
0
yy324:
5025
0
    YYDEBUG(324, *YYCURSOR);
5026
0
    yyaccept = 4;
5027
0
    yych = *(YYMARKER = ++YYCURSOR);
5028
0
    if (yych == 'U') goto yy423;
5029
0
    if (yych == 'u') goto yy423;
5030
0
    goto yy48;
5031
0
yy325:
5032
0
    YYDEBUG(325, *YYCURSOR);
5033
0
    yyaccept = 4;
5034
0
    yych = *(YYMARKER = ++YYCURSOR);
5035
0
    if (yych == 'U') goto yy424;
5036
0
    if (yych == 'u') goto yy424;
5037
0
    goto yy48;
5038
0
yy326:
5039
0
    YYDEBUG(326, *YYCURSOR);
5040
0
    yyaccept = 4;
5041
0
    yych = *(YYMARKER = ++YYCURSOR);
5042
0
    if (yych == 'T') goto yy425;
5043
0
    if (yych == 't') goto yy425;
5044
0
    goto yy48;
5045
0
yy327:
5046
0
    YYDEBUG(327, *YYCURSOR);
5047
0
    yyaccept = 4;
5048
0
    yych = *(YYMARKER = ++YYCURSOR);
5049
0
    if (yych == 'T') goto yy426;
5050
0
    if (yych == 't') goto yy426;
5051
0
    goto yy48;
5052
0
yy328:
5053
0
    YYDEBUG(328, *YYCURSOR);
5054
0
    yyaccept = 4;
5055
0
    yych = *(YYMARKER = ++YYCURSOR);
5056
0
    if (yych == 'O') goto yy427;
5057
0
    if (yych == 'o') goto yy427;
5058
0
    goto yy48;
5059
0
yy329:
5060
0
    YYDEBUG(329, *YYCURSOR);
5061
0
    yyaccept = 4;
5062
0
    yych = *(YYMARKER = ++YYCURSOR);
5063
0
    if (yych == 'I') goto yy428;
5064
0
    if (yych == 'i') goto yy428;
5065
0
    goto yy48;
5066
0
yy330:
5067
0
    YYDEBUG(330, *YYCURSOR);
5068
0
    yyaccept = 22;
5069
0
    yych = *(YYMARKER = ++YYCURSOR);
5070
0
    if (yybm[256+yych] & 128) {
5071
0
      goto yy47;
5072
0
    }
5073
0
    if (yych == '\\') goto yy164;
5074
0
yy331:
5075
0
    YYDEBUG(331, *YYCURSOR);
5076
0
    yyleng = YYCURSOR - SCNG(yy_text);
5077
0
#line 1438 "Zend/zend_language_scanner.l"
5078
0
    {
5079
0
  RETURN_TOKEN_WITH_IDENT(T_TRY);
5080
0
}
5081
0
#line 5082 "Zend/zend_language_scanner.c"
5082
0
yy332:
5083
0
    YYDEBUG(332, *YYCURSOR);
5084
0
    yyaccept = 4;
5085
0
    yych = *(YYMARKER = ++YYCURSOR);
5086
0
    if (yych == 'E') goto yy429;
5087
0
    if (yych == 'e') goto yy429;
5088
0
    goto yy48;
5089
0
yy333:
5090
0
    YYDEBUG(333, *YYCURSOR);
5091
0
    yyaccept = 23;
5092
0
    yych = *(YYMARKER = ++YYCURSOR);
5093
0
    if (yybm[256+yych] & 128) {
5094
0
      goto yy47;
5095
0
    }
5096
0
    if (yych == '\\') goto yy164;
5097
0
yy334:
5098
0
    YYDEBUG(334, *YYCURSOR);
5099
0
    yyleng = YYCURSOR - SCNG(yy_text);
5100
0
#line 1742 "Zend/zend_language_scanner.l"
5101
0
    {
5102
0
  RETURN_TOKEN_WITH_IDENT(T_USE);
5103
0
}
5104
0
#line 5105 "Zend/zend_language_scanner.c"
5105
0
yy335:
5106
0
    YYDEBUG(335, *YYCURSOR);
5107
0
    yyaccept = 24;
5108
0
    yych = *(YYMARKER = ++YYCURSOR);
5109
0
    if (yybm[256+yych] & 128) {
5110
0
      goto yy47;
5111
0
    }
5112
0
    if (yych == '\\') goto yy164;
5113
0
yy336:
5114
0
    YYDEBUG(336, *YYCURSOR);
5115
0
    yyleng = YYCURSOR - SCNG(yy_text);
5116
0
#line 1634 "Zend/zend_language_scanner.l"
5117
0
    {
5118
0
  RETURN_TOKEN_WITH_IDENT(T_VAR);
5119
0
}
5120
0
#line 5121 "Zend/zend_language_scanner.c"
5121
0
yy337:
5122
0
    YYDEBUG(337, *YYCURSOR);
5123
0
    yyaccept = 4;
5124
0
    yych = *(YYMARKER = ++YYCURSOR);
5125
0
    if (yych == 'L') goto yy430;
5126
0
    if (yych == 'l') goto yy430;
5127
0
    goto yy48;
5128
0
yy338:
5129
0
    YYDEBUG(338, *YYCURSOR);
5130
0
    yyaccept = 25;
5131
0
    yych = *(YYMARKER = ++YYCURSOR);
5132
0
    if (yybm[256+yych] & 128) {
5133
0
      goto yy47;
5134
0
    }
5135
0
    if (yych == '\\') goto yy164;
5136
0
yy339:
5137
0
    YYDEBUG(339, *YYCURSOR);
5138
0
    yyleng = YYCURSOR - SCNG(yy_text);
5139
0
#line 1938 "Zend/zend_language_scanner.l"
5140
0
    {
5141
0
  RETURN_TOKEN_WITH_IDENT(T_LOGICAL_XOR);
5142
0
}
5143
0
#line 5144 "Zend/zend_language_scanner.c"
5144
0
yy340:
5145
0
    YYDEBUG(340, *YYCURSOR);
5146
0
    yyaccept = 4;
5147
0
    yych = *(YYMARKER = ++YYCURSOR);
5148
0
    if (yych == 'L') goto yy431;
5149
0
    if (yych == 'l') goto yy431;
5150
0
    goto yy48;
5151
0
yy341:
5152
0
    YYDEBUG(341, *YYCURSOR);
5153
0
    ++YYCURSOR;
5154
0
    YYFILL(1);
5155
0
    yych = *YYCURSOR;
5156
0
    if (yych <= '_') {
5157
0
      if (yych <= '@') goto yy86;
5158
0
      if (yych <= 'Z') goto yy211;
5159
0
      if (yych <= '^') goto yy86;
5160
0
      goto yy211;
5161
0
    } else {
5162
0
      if (yych <= '`') goto yy86;
5163
0
      if (yych <= 'z') goto yy211;
5164
0
      if (yych <= 0x7F) goto yy86;
5165
0
      goto yy211;
5166
0
    }
5167
0
yy342:
5168
0
    YYDEBUG(342, *YYCURSOR);
5169
0
    yyaccept = 4;
5170
0
    yych = *(YYMARKER = ++YYCURSOR);
5171
0
    if (yych == 'L') goto yy432;
5172
0
    if (yych == 'l') goto yy432;
5173
0
    goto yy48;
5174
0
yy343:
5175
0
    YYDEBUG(343, *YYCURSOR);
5176
0
    yyaccept = 4;
5177
0
    yych = *(YYMARKER = ++YYCURSOR);
5178
0
    if (yych == 'I') goto yy433;
5179
0
    if (yych == 'i') goto yy433;
5180
0
    goto yy48;
5181
0
yy344:
5182
0
    YYDEBUG(344, *YYCURSOR);
5183
0
    yyaccept = 4;
5184
0
    yych = *(YYMARKER = ++YYCURSOR);
5185
0
    if (yych <= 'U') {
5186
0
      if (yych == 'I') goto yy434;
5187
0
      if (yych <= 'T') goto yy48;
5188
0
      goto yy435;
5189
0
    } else {
5190
0
      if (yych <= 'i') {
5191
0
        if (yych <= 'h') goto yy48;
5192
0
        goto yy434;
5193
0
      } else {
5194
0
        if (yych == 'u') goto yy435;
5195
0
        goto yy48;
5196
0
      }
5197
0
    }
5198
0
yy345:
5199
0
    YYDEBUG(345, *YYCURSOR);
5200
0
    yyaccept = 4;
5201
0
    yych = *(YYMARKER = ++YYCURSOR);
5202
0
    if (yych == 'A') goto yy436;
5203
0
    if (yych == 'a') goto yy436;
5204
0
    goto yy48;
5205
0
yy346:
5206
0
    YYDEBUG(346, *YYCURSOR);
5207
0
    yyaccept = 4;
5208
0
    yych = *(YYMARKER = ++YYCURSOR);
5209
0
    if (yych == 'I') goto yy437;
5210
0
    if (yych == 'i') goto yy437;
5211
0
    goto yy48;
5212
0
yy347:
5213
0
    YYDEBUG(347, *YYCURSOR);
5214
0
    yyaccept = 4;
5215
0
    yych = *(YYMARKER = ++YYCURSOR);
5216
0
    if (yych == 'E') goto yy438;
5217
0
    if (yych == 'e') goto yy438;
5218
0
    goto yy48;
5219
0
yy348:
5220
0
    YYDEBUG(348, *YYCURSOR);
5221
0
    yyaccept = 4;
5222
0
    yych = *(YYMARKER = ++YYCURSOR);
5223
0
    if (yych == 'A') goto yy439;
5224
0
    if (yych == 'a') goto yy439;
5225
0
    goto yy48;
5226
0
yy349:
5227
0
    YYDEBUG(349, *YYCURSOR);
5228
0
    yyaccept = 4;
5229
0
    yych = *(YYMARKER = ++YYCURSOR);
5230
0
    if (yych == 'R') goto yy440;
5231
0
    if (yych == 'r') goto yy440;
5232
0
    goto yy48;
5233
0
yy350:
5234
0
    YYDEBUG(350, *YYCURSOR);
5235
0
    yyaccept = 4;
5236
0
    yych = *(YYMARKER = ++YYCURSOR);
5237
0
    if (yych == 'R') goto yy441;
5238
0
    if (yych == 'r') goto yy441;
5239
0
    goto yy48;
5240
0
yy351:
5241
0
    YYDEBUG(351, *YYCURSOR);
5242
0
    ++YYCURSOR;
5243
0
    YYFILL(1);
5244
0
    yych = *YYCURSOR;
5245
0
    if (yybm[0+yych] & 2) {
5246
0
      goto yy225;
5247
0
    }
5248
0
    if (yych <= 0x00) goto yy86;
5249
0
    goto yy227;
5250
0
yy352:
5251
0
    YYDEBUG(352, *YYCURSOR);
5252
0
    yyaccept = 26;
5253
0
    YYMARKER = ++YYCURSOR;
5254
0
    YYFILL(1);
5255
0
    yych = *YYCURSOR;
5256
0
    if (yybm[0+yych] & 2) {
5257
0
      goto yy225;
5258
0
    }
5259
0
    if (yych <= 0x00) goto yy89;
5260
0
    goto yy84;
5261
0
yy353:
5262
0
    YYDEBUG(353, *YYCURSOR);
5263
0
    ++YYCURSOR;
5264
0
    YYFILL(1);
5265
0
    yych = *YYCURSOR;
5266
0
    if (yych <= '\f') {
5267
0
      if (yych <= 0x00) goto yy86;
5268
0
      if (yych == '\n') goto yy84;
5269
0
      goto yy225;
5270
0
    } else {
5271
0
      if (yych <= '\r') goto yy84;
5272
0
      if (yych == '.') goto yy442;
5273
0
      goto yy225;
5274
0
    }
5275
0
yy354:
5276
0
    YYDEBUG(354, *YYCURSOR);
5277
0
    ++YYCURSOR;
5278
0
    YYFILL(1);
5279
0
    yych = *YYCURSOR;
5280
0
    if (yych <= '\f') {
5281
0
      if (yych <= 0x00) goto yy86;
5282
0
      if (yych == '\n') goto yy84;
5283
0
      goto yy225;
5284
0
    } else {
5285
0
      if (yych <= '\r') goto yy84;
5286
0
      if (yych == '*') goto yy443;
5287
0
      goto yy225;
5288
0
    }
5289
0
yy355:
5290
0
    YYDEBUG(355, *YYCURSOR);
5291
0
    ++YYCURSOR;
5292
0
    YYFILL(1);
5293
0
    yych = *YYCURSOR;
5294
0
    YYDEBUG(356, *YYCURSOR);
5295
0
    if (yybm[0+yych] & 64) {
5296
0
      goto yy355;
5297
0
    }
5298
0
    if (yych <= 0x00) goto yy86;
5299
0
    if (yych == '/') goto yy84;
5300
0
    goto yy230;
5301
0
yy357:
5302
0
    YYDEBUG(357, *YYCURSOR);
5303
0
    yych = *++YYCURSOR;
5304
0
    if (yych == 'A') goto yy445;
5305
0
    if (yych == 'a') goto yy445;
5306
0
    goto yy86;
5307
0
yy358:
5308
0
    YYDEBUG(358, *YYCURSOR);
5309
0
    yych = *++YYCURSOR;
5310
0
    if (yych == 'A') goto yy446;
5311
0
    if (yych == 'a') goto yy446;
5312
0
    goto yy86;
5313
0
yy359:
5314
0
    YYDEBUG(359, *YYCURSOR);
5315
0
    yych = *++YYCURSOR;
5316
0
    if (yych == 'L') goto yy447;
5317
0
    if (yych == 'l') goto yy447;
5318
0
    goto yy86;
5319
0
yy360:
5320
0
    YYDEBUG(360, *YYCURSOR);
5321
0
    yych = *++YYCURSOR;
5322
0
    if (yych == 'B') goto yy448;
5323
0
    if (yych == 'b') goto yy448;
5324
0
    goto yy86;
5325
0
yy361:
5326
0
    YYDEBUG(361, *YYCURSOR);
5327
0
    yych = *++YYCURSOR;
5328
0
    if (yych == 'A') goto yy449;
5329
0
    if (yych == 'a') goto yy449;
5330
0
    goto yy86;
5331
0
yy362:
5332
0
    YYDEBUG(362, *YYCURSOR);
5333
0
    yych = *++YYCURSOR;
5334
0
    if (yych == 'E') goto yy454;
5335
0
    if (yych == 'e') goto yy454;
5336
0
    goto yy451;
5337
0
yy363:
5338
0
    YYDEBUG(363, *YYCURSOR);
5339
0
    yych = *++YYCURSOR;
5340
0
    if (yych == 'E') goto yy455;
5341
0
    if (yych == 'e') goto yy455;
5342
0
    goto yy86;
5343
0
yy364:
5344
0
    YYDEBUG(364, *YYCURSOR);
5345
0
    yych = *++YYCURSOR;
5346
0
    if (yych == 'L') goto yy456;
5347
0
    if (yych == 'l') goto yy456;
5348
0
    goto yy86;
5349
0
yy365:
5350
0
    YYDEBUG(365, *YYCURSOR);
5351
0
    yych = *++YYCURSOR;
5352
0
    if (yych == 'I') goto yy458;
5353
0
    if (yych == 'i') goto yy458;
5354
0
    goto yy86;
5355
0
yy366:
5356
0
    YYDEBUG(366, *YYCURSOR);
5357
0
    yych = *++YYCURSOR;
5358
0
    if (yych == 'E') goto yy459;
5359
0
    if (yych == 'e') goto yy459;
5360
0
    goto yy86;
5361
0
yy367:
5362
0
    YYDEBUG(367, *YYCURSOR);
5363
0
    yych = *++YYCURSOR;
5364
0
    if (yych == 'D') goto yy460;
5365
0
    if (yych == 'd') goto yy460;
5366
0
    goto yy86;
5367
0
yy368:
5368
0
    YYDEBUG(368, *YYCURSOR);
5369
0
    ++YYCURSOR;
5370
0
    YYFILL(1);
5371
0
    yych = *YYCURSOR;
5372
0
    YYDEBUG(369, *YYCURSOR);
5373
0
    if (yych <= '\f') {
5374
0
      if (yych <= 0x08) goto yy129;
5375
0
      if (yych <= '\n') goto yy368;
5376
0
      goto yy129;
5377
0
    } else {
5378
0
      if (yych <= '\r') goto yy368;
5379
0
      if (yych == ' ') goto yy368;
5380
0
      goto yy129;
5381
0
    }
5382
0
yy370:
5383
0
    YYDEBUG(370, *YYCURSOR);
5384
0
    yych = *++YYCURSOR;
5385
0
    if (yych == '"') goto yy86;
5386
0
    if (yych <= '/') goto yy463;
5387
0
    if (yych <= '9') goto yy86;
5388
0
    goto yy463;
5389
0
yy371:
5390
0
    YYDEBUG(371, *YYCURSOR);
5391
0
    yych = *++YYCURSOR;
5392
0
    if (yych == '\'') goto yy86;
5393
0
    if (yych <= '/') goto yy465;
5394
0
    if (yych <= '9') goto yy86;
5395
0
    goto yy465;
5396
0
yy372:
5397
0
    YYDEBUG(372, *YYCURSOR);
5398
0
    ++YYCURSOR;
5399
0
    YYFILL(2);
5400
0
    yych = *YYCURSOR;
5401
0
    YYDEBUG(373, *YYCURSOR);
5402
0
    if (yych <= '@') {
5403
0
      if (yych <= '\f') {
5404
0
        if (yych == '\n') goto yy466;
5405
0
        goto yy86;
5406
0
      } else {
5407
0
        if (yych <= '\r') goto yy468;
5408
0
        if (yych <= '/') goto yy86;
5409
0
        if (yych <= '9') goto yy372;
5410
0
        goto yy86;
5411
0
      }
5412
0
    } else {
5413
0
      if (yych <= '_') {
5414
0
        if (yych <= 'Z') goto yy372;
5415
0
        if (yych <= '^') goto yy86;
5416
0
        goto yy372;
5417
0
      } else {
5418
0
        if (yych <= '`') goto yy86;
5419
0
        if (yych <= 'z') goto yy372;
5420
0
        if (yych <= 0x7F) goto yy86;
5421
0
        goto yy372;
5422
0
      }
5423
0
    }
5424
0
yy374:
5425
0
    YYDEBUG(374, *YYCURSOR);
5426
0
    yyaccept = 4;
5427
0
    yych = *(YYMARKER = ++YYCURSOR);
5428
0
    if (yych == 'R') goto yy469;
5429
0
    if (yych == 'r') goto yy469;
5430
0
    goto yy48;
5431
0
yy375:
5432
0
    YYDEBUG(375, *YYCURSOR);
5433
0
    yyaccept = 4;
5434
0
    yych = *(YYMARKER = ++YYCURSOR);
5435
0
    if (yych == 'Y') goto yy470;
5436
0
    if (yych == 'y') goto yy470;
5437
0
    goto yy48;
5438
0
yy376:
5439
0
    YYDEBUG(376, *YYCURSOR);
5440
0
    yyaccept = 4;
5441
0
    yych = *(YYMARKER = ++YYCURSOR);
5442
0
    if (yych == 'K') goto yy472;
5443
0
    if (yych == 'k') goto yy472;
5444
0
    goto yy48;
5445
0
yy377:
5446
0
    YYDEBUG(377, *YYCURSOR);
5447
0
    yyaccept = 4;
5448
0
    yych = *(YYMARKER = ++YYCURSOR);
5449
0
    if (yych == 'A') goto yy474;
5450
0
    if (yych == 'a') goto yy474;
5451
0
    goto yy48;
5452
0
yy378:
5453
0
    YYDEBUG(378, *YYCURSOR);
5454
0
    yyaccept = 27;
5455
0
    yych = *(YYMARKER = ++YYCURSOR);
5456
0
    if (yybm[256+yych] & 128) {
5457
0
      goto yy47;
5458
0
    }
5459
0
    if (yych == '\\') goto yy164;
5460
0
yy379:
5461
0
    YYDEBUG(379, *YYCURSOR);
5462
0
    yyleng = YYCURSOR - SCNG(yy_text);
5463
0
#line 1526 "Zend/zend_language_scanner.l"
5464
0
    {
5465
0
  RETURN_TOKEN_WITH_IDENT(T_CASE);
5466
0
}
5467
0
#line 5468 "Zend/zend_language_scanner.c"
5468
0
yy380:
5469
0
    YYDEBUG(380, *YYCURSOR);
5470
0
    yyaccept = 4;
5471
0
    yych = *(YYMARKER = ++YYCURSOR);
5472
0
    if (yych == 'H') goto yy475;
5473
0
    if (yych == 'h') goto yy475;
5474
0
    goto yy48;
5475
0
yy381:
5476
0
    YYDEBUG(381, *YYCURSOR);
5477
0
    yyaccept = 4;
5478
0
    yych = *(YYMARKER = ++YYCURSOR);
5479
0
    if (yych == 'S') goto yy477;
5480
0
    if (yych == 's') goto yy477;
5481
0
    goto yy48;
5482
0
yy382:
5483
0
    YYDEBUG(382, *YYCURSOR);
5484
0
    yyaccept = 4;
5485
0
    yych = *(YYMARKER = ++YYCURSOR);
5486
0
    if (yych == 'E') goto yy479;
5487
0
    if (yych == 'e') goto yy479;
5488
0
    goto yy48;
5489
0
yy383:
5490
0
    YYDEBUG(383, *YYCURSOR);
5491
0
    yyaccept = 4;
5492
0
    yych = *(YYMARKER = ++YYCURSOR);
5493
0
    if (yych == 'T') goto yy481;
5494
0
    if (yych == 't') goto yy481;
5495
0
    goto yy48;
5496
0
yy384:
5497
0
    YYDEBUG(384, *YYCURSOR);
5498
0
    yyaccept = 4;
5499
0
    yych = *(YYMARKER = ++YYCURSOR);
5500
0
    if (yych == 'I') goto yy483;
5501
0
    if (yych == 'i') goto yy483;
5502
0
    goto yy48;
5503
0
yy385:
5504
0
    YYDEBUG(385, *YYCURSOR);
5505
0
    yyaccept = 4;
5506
0
    yych = *(YYMARKER = ++YYCURSOR);
5507
0
    if (yych == 'A') goto yy484;
5508
0
    if (yych == 'a') goto yy484;
5509
0
    goto yy48;
5510
0
yy386:
5511
0
    YYDEBUG(386, *YYCURSOR);
5512
0
    yyaccept = 4;
5513
0
    yych = *(YYMARKER = ++YYCURSOR);
5514
0
    if (yych == 'U') goto yy485;
5515
0
    if (yych == 'u') goto yy485;
5516
0
    goto yy48;
5517
0
yy387:
5518
0
    YYDEBUG(387, *YYCURSOR);
5519
0
    yyaccept = 28;
5520
0
    yych = *(YYMARKER = ++YYCURSOR);
5521
0
    if (yybm[256+yych] & 128) {
5522
0
      goto yy47;
5523
0
    }
5524
0
    if (yych == '\\') goto yy164;
5525
0
yy388:
5526
0
    YYDEBUG(388, *YYCURSOR);
5527
0
    yyleng = YYCURSOR - SCNG(yy_text);
5528
0
#line 1546 "Zend/zend_language_scanner.l"
5529
0
    {
5530
0
  RETURN_TOKEN_WITH_IDENT(T_ECHO);
5531
0
}
5532
0
#line 5533 "Zend/zend_language_scanner.c"
5533
0
yy389:
5534
0
    YYDEBUG(389, *YYCURSOR);
5535
0
    yyaccept = 29;
5536
0
    yych = *(YYMARKER = ++YYCURSOR);
5537
0
    if (yych <= '\\') {
5538
0
      if (yych <= 'H') {
5539
0
        if (yych <= '/') goto yy390;
5540
0
        if (yych <= '9') goto yy47;
5541
0
        if (yych >= 'A') goto yy47;
5542
0
      } else {
5543
0
        if (yych <= 'I') goto yy486;
5544
0
        if (yych <= 'Z') goto yy47;
5545
0
        if (yych >= '\\') goto yy164;
5546
0
      }
5547
0
    } else {
5548
0
      if (yych <= 'h') {
5549
0
        if (yych == '_') goto yy47;
5550
0
        if (yych >= 'a') goto yy47;
5551
0
      } else {
5552
0
        if (yych <= 'i') goto yy486;
5553
0
        if (yych <= 'z') goto yy47;
5554
0
        if (yych >= 0x80) goto yy47;
5555
0
      }
5556
0
    }
5557
0
yy390:
5558
0
    YYDEBUG(390, *YYCURSOR);
5559
0
    yyleng = YYCURSOR - SCNG(yy_text);
5560
0
#line 1466 "Zend/zend_language_scanner.l"
5561
0
    {
5562
0
  RETURN_TOKEN_WITH_IDENT(T_ELSE);
5563
0
}
5564
0
#line 5565 "Zend/zend_language_scanner.c"
5565
0
yy391:
5566
0
    YYDEBUG(391, *YYCURSOR);
5567
0
    yyaccept = 4;
5568
0
    yych = *(YYMARKER = ++YYCURSOR);
5569
0
    if (yych == 'Y') goto yy487;
5570
0
    if (yych == 'y') goto yy487;
5571
0
    goto yy48;
5572
0
yy392:
5573
0
    YYDEBUG(392, *YYCURSOR);
5574
0
    yyaccept = 4;
5575
0
    yych = *(YYMARKER = ++YYCURSOR);
5576
0
    if (yych == 'E') goto yy489;
5577
0
    if (yych == 'e') goto yy489;
5578
0
    goto yy48;
5579
0
yy393:
5580
0
    YYDEBUG(393, *YYCURSOR);
5581
0
    yyaccept = 4;
5582
0
    yych = *(YYMARKER = ++YYCURSOR);
5583
0
    if (yych == 'O') goto yy490;
5584
0
    if (yych == 'o') goto yy490;
5585
0
    goto yy48;
5586
0
yy394:
5587
0
    YYDEBUG(394, *YYCURSOR);
5588
0
    yyaccept = 4;
5589
0
    yych = *(YYMARKER = ++YYCURSOR);
5590
0
    if (yych == 'F') goto yy491;
5591
0
    if (yych == 'f') goto yy491;
5592
0
    goto yy48;
5593
0
yy395:
5594
0
    YYDEBUG(395, *YYCURSOR);
5595
0
    yyaccept = 4;
5596
0
    yych = *(YYMARKER = ++YYCURSOR);
5597
0
    if (yych == 'W') goto yy493;
5598
0
    if (yych == 'w') goto yy493;
5599
0
    goto yy48;
5600
0
yy396:
5601
0
    YYDEBUG(396, *YYCURSOR);
5602
0
    yyaccept = 4;
5603
0
    yych = *(YYMARKER = ++YYCURSOR);
5604
0
    if (yych == 'H') goto yy494;
5605
0
    if (yych == 'h') goto yy494;
5606
0
    goto yy48;
5607
0
yy397:
5608
0
    YYDEBUG(397, *YYCURSOR);
5609
0
    yyaccept = 4;
5610
0
    yych = *(YYMARKER = ++YYCURSOR);
5611
0
    if (yych <= 0x1F) {
5612
0
      if (yych <= '\n') {
5613
0
        if (yych <= 0x08) goto yy48;
5614
0
        goto yy495;
5615
0
      } else {
5616
0
        if (yych == '\r') goto yy495;
5617
0
        goto yy48;
5618
0
      }
5619
0
    } else {
5620
0
      if (yych <= '#') {
5621
0
        if (yych <= ' ') goto yy495;
5622
0
        if (yych <= '"') goto yy48;
5623
0
        goto yy497;
5624
0
      } else {
5625
0
        if (yych == '/') goto yy498;
5626
0
        goto yy48;
5627
0
      }
5628
0
    }
5629
0
yy398:
5630
0
    YYDEBUG(398, *YYCURSOR);
5631
0
    yyaccept = 30;
5632
0
    yych = *(YYMARKER = ++YYCURSOR);
5633
0
    if (yybm[256+yych] & 128) {
5634
0
      goto yy47;
5635
0
    }
5636
0
    if (yych == '\\') goto yy164;
5637
0
yy399:
5638
0
    YYDEBUG(399, *YYCURSOR);
5639
0
    yyleng = YYCURSOR - SCNG(yy_text);
5640
0
#line 1718 "Zend/zend_language_scanner.l"
5641
0
    {
5642
0
  RETURN_TOKEN_WITH_IDENT(T_EVAL);
5643
0
}
5644
0
#line 5645 "Zend/zend_language_scanner.c"
5645
0
yy400:
5646
0
    YYDEBUG(400, *YYCURSOR);
5647
0
    yyaccept = 31;
5648
0
    yych = *(YYMARKER = ++YYCURSOR);
5649
0
    if (yybm[256+yych] & 128) {
5650
0
      goto yy47;
5651
0
    }
5652
0
    if (yych == '\\') goto yy164;
5653
0
yy401:
5654
0
    YYDEBUG(401, *YYCURSOR);
5655
0
    yyleng = YYCURSOR - SCNG(yy_text);
5656
0
#line 1399 "Zend/zend_language_scanner.l"
5657
0
    {
5658
0
  RETURN_TOKEN_WITH_IDENT(T_EXIT);
5659
0
}
5660
0
#line 5661 "Zend/zend_language_scanner.c"
5661
0
yy402:
5662
0
    YYDEBUG(402, *YYCURSOR);
5663
0
    yyaccept = 4;
5664
0
    yych = *(YYMARKER = ++YYCURSOR);
5665
0
    if (yych == 'N') goto yy499;
5666
0
    if (yych == 'n') goto yy499;
5667
0
    goto yy48;
5668
0
yy403:
5669
0
    YYDEBUG(403, *YYCURSOR);
5670
0
    yyaccept = 4;
5671
0
    yych = *(YYMARKER = ++YYCURSOR);
5672
0
    if (yych == 'L') goto yy500;
5673
0
    if (yych == 'l') goto yy500;
5674
0
    goto yy48;
5675
0
yy404:
5676
0
    YYDEBUG(404, *YYCURSOR);
5677
0
    yyaccept = 4;
5678
0
    yych = *(YYMARKER = ++YYCURSOR);
5679
0
    if (yych == 'A') goto yy502;
5680
0
    if (yych == 'a') goto yy502;
5681
0
    goto yy48;
5682
0
yy405:
5683
0
    YYDEBUG(405, *YYCURSOR);
5684
0
    yyaccept = 4;
5685
0
    yych = *(YYMARKER = ++YYCURSOR);
5686
0
    if (yych == 'T') goto yy503;
5687
0
    if (yych == 't') goto yy503;
5688
0
    goto yy48;
5689
0
yy406:
5690
0
    YYDEBUG(406, *YYCURSOR);
5691
0
    yyaccept = 4;
5692
0
    yych = *(YYMARKER = ++YYCURSOR);
5693
0
    if (yych == 'A') goto yy504;
5694
0
    if (yych == 'a') goto yy504;
5695
0
    goto yy48;
5696
0
yy407:
5697
0
    YYDEBUG(407, *YYCURSOR);
5698
0
    yyaccept = 32;
5699
0
    yych = *(YYMARKER = ++YYCURSOR);
5700
0
    if (yybm[256+yych] & 128) {
5701
0
      goto yy47;
5702
0
    }
5703
0
    if (yych == '\\') goto yy164;
5704
0
yy408:
5705
0
    YYDEBUG(408, *YYCURSOR);
5706
0
    yyleng = YYCURSOR - SCNG(yy_text);
5707
0
#line 1542 "Zend/zend_language_scanner.l"
5708
0
    {
5709
0
  RETURN_TOKEN_WITH_IDENT(T_GOTO);
5710
0
}
5711
0
#line 5712 "Zend/zend_language_scanner.c"
5712
0
yy409:
5713
0
    YYDEBUG(409, *YYCURSOR);
5714
0
    yyaccept = 4;
5715
0
    yych = *(YYMARKER = ++YYCURSOR);
5716
0
    if (yych == 'E') goto yy505;
5717
0
    if (yych == 'e') goto yy505;
5718
0
    goto yy48;
5719
0
yy410:
5720
0
    YYDEBUG(410, *YYCURSOR);
5721
0
    yyaccept = 4;
5722
0
    yych = *(YYMARKER = ++YYCURSOR);
5723
0
    if (yych == 'U') goto yy506;
5724
0
    if (yych == 'u') goto yy506;
5725
0
    goto yy48;
5726
0
yy411:
5727
0
    YYDEBUG(411, *YYCURSOR);
5728
0
    yyaccept = 4;
5729
0
    yych = *(YYMARKER = ++YYCURSOR);
5730
0
    if (yych <= 'E') {
5731
0
      if (yych == 'A') goto yy507;
5732
0
      if (yych <= 'D') goto yy48;
5733
0
      goto yy508;
5734
0
    } else {
5735
0
      if (yych <= 'a') {
5736
0
        if (yych <= '`') goto yy48;
5737
0
        goto yy507;
5738
0
      } else {
5739
0
        if (yych == 'e') goto yy508;
5740
0
        goto yy48;
5741
0
      }
5742
0
    }
5743
0
yy412:
5744
0
    YYDEBUG(412, *YYCURSOR);
5745
0
    yyaccept = 4;
5746
0
    yych = *(YYMARKER = ++YYCURSOR);
5747
0
    if (yych == 'R') goto yy509;
5748
0
    if (yych == 'r') goto yy509;
5749
0
    goto yy48;
5750
0
yy413:
5751
0
    YYDEBUG(413, *YYCURSOR);
5752
0
    yyaccept = 4;
5753
0
    yych = *(YYMARKER = ++YYCURSOR);
5754
0
    if (yych == 'T') goto yy510;
5755
0
    if (yych == 't') goto yy510;
5756
0
    goto yy48;
5757
0
yy414:
5758
0
    YYDEBUG(414, *YYCURSOR);
5759
0
    yyaccept = 33;
5760
0
    yych = *(YYMARKER = ++YYCURSOR);
5761
0
    if (yybm[256+yych] & 128) {
5762
0
      goto yy47;
5763
0
    }
5764
0
    if (yych == '\\') goto yy164;
5765
0
yy415:
5766
0
    YYDEBUG(415, *YYCURSOR);
5767
0
    yyleng = YYCURSOR - SCNG(yy_text);
5768
0
#line 1814 "Zend/zend_language_scanner.l"
5769
0
    {
5770
0
  RETURN_TOKEN_WITH_IDENT(T_LIST);
5771
0
}
5772
0
#line 5773 "Zend/zend_language_scanner.c"
5773
0
yy416:
5774
0
    YYDEBUG(416, *YYCURSOR);
5775
0
    yyaccept = 4;
5776
0
    yych = *(YYMARKER = ++YYCURSOR);
5777
0
    if (yych == 'H') goto yy512;
5778
0
    if (yych == 'h') goto yy512;
5779
0
    goto yy48;
5780
0
yy417:
5781
0
    YYDEBUG(417, *YYCURSOR);
5782
0
    yyaccept = 4;
5783
0
    yych = *(YYMARKER = ++YYCURSOR);
5784
0
    if (yych == 'S') goto yy514;
5785
0
    if (yych == 's') goto yy514;
5786
0
    goto yy48;
5787
0
yy418:
5788
0
    YYDEBUG(418, *YYCURSOR);
5789
0
    yyaccept = 4;
5790
0
    yych = *(YYMARKER = ++YYCURSOR);
5791
0
    if (yych == 'T') goto yy515;
5792
0
    if (yych == 't') goto yy515;
5793
0
    goto yy48;
5794
0
yy419:
5795
0
    YYDEBUG(419, *YYCURSOR);
5796
0
    yyaccept = 4;
5797
0
    yych = *(YYMARKER = ++YYCURSOR);
5798
0
    if (yych == 'A') goto yy517;
5799
0
    if (yych == 'a') goto yy517;
5800
0
    goto yy48;
5801
0
yy420:
5802
0
    YYDEBUG(420, *YYCURSOR);
5803
0
    yyaccept = 4;
5804
0
    yych = *(YYMARKER = ++YYCURSOR);
5805
0
    if (yych == 'E') goto yy518;
5806
0
    if (yych == 'e') goto yy518;
5807
0
    goto yy48;
5808
0
yy421:
5809
0
    YYDEBUG(421, *YYCURSOR);
5810
0
    yyaccept = 4;
5811
0
    yych = *(YYMARKER = ++YYCURSOR);
5812
0
    if (yych == 'I') goto yy519;
5813
0
    if (yych == 'i') goto yy519;
5814
0
    goto yy48;
5815
0
yy422:
5816
0
    YYDEBUG(422, *YYCURSOR);
5817
0
    yyaccept = 4;
5818
0
    yych = *(YYMARKER = ++YYCURSOR);
5819
0
    if (yych == 'O') goto yy520;
5820
0
    if (yych == 'o') goto yy520;
5821
0
    goto yy48;
5822
0
yy423:
5823
0
    YYDEBUG(423, *YYCURSOR);
5824
0
    yyaccept = 4;
5825
0
    yych = *(YYMARKER = ++YYCURSOR);
5826
0
    if (yych == 'I') goto yy521;
5827
0
    if (yych == 'i') goto yy521;
5828
0
    goto yy48;
5829
0
yy424:
5830
0
    YYDEBUG(424, *YYCURSOR);
5831
0
    yyaccept = 4;
5832
0
    yych = *(YYMARKER = ++YYCURSOR);
5833
0
    if (yych == 'R') goto yy522;
5834
0
    if (yych == 'r') goto yy522;
5835
0
    goto yy48;
5836
0
yy425:
5837
0
    YYDEBUG(425, *YYCURSOR);
5838
0
    yyaccept = 4;
5839
0
    yych = *(YYMARKER = ++YYCURSOR);
5840
0
    if (yych == 'I') goto yy523;
5841
0
    if (yych == 'i') goto yy523;
5842
0
    goto yy48;
5843
0
yy426:
5844
0
    YYDEBUG(426, *YYCURSOR);
5845
0
    yyaccept = 4;
5846
0
    yych = *(YYMARKER = ++YYCURSOR);
5847
0
    if (yych == 'C') goto yy524;
5848
0
    if (yych == 'c') goto yy524;
5849
0
    goto yy48;
5850
0
yy427:
5851
0
    YYDEBUG(427, *YYCURSOR);
5852
0
    yyaccept = 4;
5853
0
    yych = *(YYMARKER = ++YYCURSOR);
5854
0
    if (yych == 'W') goto yy525;
5855
0
    if (yych == 'w') goto yy525;
5856
0
    goto yy48;
5857
0
yy428:
5858
0
    YYDEBUG(428, *YYCURSOR);
5859
0
    yyaccept = 4;
5860
0
    yych = *(YYMARKER = ++YYCURSOR);
5861
0
    if (yych == 'T') goto yy527;
5862
0
    if (yych == 't') goto yy527;
5863
0
    goto yy48;
5864
0
yy429:
5865
0
    YYDEBUG(429, *YYCURSOR);
5866
0
    yyaccept = 4;
5867
0
    yych = *(YYMARKER = ++YYCURSOR);
5868
0
    if (yych == 'T') goto yy529;
5869
0
    if (yych == 't') goto yy529;
5870
0
    goto yy48;
5871
0
yy430:
5872
0
    YYDEBUG(430, *YYCURSOR);
5873
0
    yyaccept = 4;
5874
0
    yych = *(YYMARKER = ++YYCURSOR);
5875
0
    if (yych == 'E') goto yy531;
5876
0
    if (yych == 'e') goto yy531;
5877
0
    goto yy48;
5878
0
yy431:
5879
0
    YYDEBUG(431, *YYCURSOR);
5880
0
    yyaccept = 4;
5881
0
    yych = *(YYMARKER = ++YYCURSOR);
5882
0
    if (yych == 'D') goto yy533;
5883
0
    if (yych == 'd') goto yy533;
5884
0
    goto yy48;
5885
0
yy432:
5886
0
    YYDEBUG(432, *YYCURSOR);
5887
0
    yyaccept = 4;
5888
0
    yych = *(YYMARKER = ++YYCURSOR);
5889
0
    if (yych == 'A') goto yy535;
5890
0
    if (yych == 'a') goto yy535;
5891
0
    goto yy48;
5892
0
yy433:
5893
0
    YYDEBUG(433, *YYCURSOR);
5894
0
    yyaccept = 4;
5895
0
    yych = *(YYMARKER = ++YYCURSOR);
5896
0
    if (yych == 'R') goto yy536;
5897
0
    if (yych == 'r') goto yy536;
5898
0
    goto yy48;
5899
0
yy434:
5900
0
    YYDEBUG(434, *YYCURSOR);
5901
0
    yyaccept = 4;
5902
0
    yych = *(YYMARKER = ++YYCURSOR);
5903
0
    if (yych == 'L') goto yy537;
5904
0
    if (yych == 'l') goto yy537;
5905
0
    goto yy48;
5906
0
yy435:
5907
0
    YYDEBUG(435, *YYCURSOR);
5908
0
    yyaccept = 4;
5909
0
    yych = *(YYMARKER = ++YYCURSOR);
5910
0
    if (yych == 'N') goto yy538;
5911
0
    if (yych == 'n') goto yy538;
5912
0
    goto yy48;
5913
0
yy436:
5914
0
    YYDEBUG(436, *YYCURSOR);
5915
0
    yyaccept = 4;
5916
0
    yych = *(YYMARKER = ++YYCURSOR);
5917
0
    if (yych == 'L') goto yy539;
5918
0
    if (yych == 'l') goto yy539;
5919
0
    goto yy48;
5920
0
yy437:
5921
0
    YYDEBUG(437, *YYCURSOR);
5922
0
    yyaccept = 4;
5923
0
    yych = *(YYMARKER = ++YYCURSOR);
5924
0
    if (yych == 'N') goto yy540;
5925
0
    if (yych == 'n') goto yy540;
5926
0
    goto yy48;
5927
0
yy438:
5928
0
    YYDEBUG(438, *YYCURSOR);
5929
0
    yyaccept = 4;
5930
0
    yych = *(YYMARKER = ++YYCURSOR);
5931
0
    if (yych == 'T') goto yy541;
5932
0
    if (yych == 't') goto yy541;
5933
0
    goto yy48;
5934
0
yy439:
5935
0
    YYDEBUG(439, *YYCURSOR);
5936
0
    yyaccept = 4;
5937
0
    yych = *(YYMARKER = ++YYCURSOR);
5938
0
    if (yych == 'M') goto yy542;
5939
0
    if (yych == 'm') goto yy542;
5940
0
    goto yy48;
5941
0
yy440:
5942
0
    YYDEBUG(440, *YYCURSOR);
5943
0
    yyaccept = 4;
5944
0
    yych = *(YYMARKER = ++YYCURSOR);
5945
0
    if (yych == 'O') goto yy543;
5946
0
    if (yych == 'o') goto yy543;
5947
0
    goto yy48;
5948
0
yy441:
5949
0
    YYDEBUG(441, *YYCURSOR);
5950
0
    yyaccept = 4;
5951
0
    yych = *(YYMARKER = ++YYCURSOR);
5952
0
    if (yych == 'A') goto yy544;
5953
0
    if (yych == 'a') goto yy544;
5954
0
    goto yy48;
5955
0
yy442:
5956
0
    YYDEBUG(442, *YYCURSOR);
5957
0
    ++YYCURSOR;
5958
0
    YYFILL(1);
5959
0
    yych = *YYCURSOR;
5960
0
    if (yych <= '\f') {
5961
0
      if (yych <= 0x00) goto yy86;
5962
0
      if (yych == '\n') goto yy84;
5963
0
      goto yy225;
5964
0
    } else {
5965
0
      if (yych <= '\r') goto yy84;
5966
0
      if (yych == '.') goto yy352;
5967
0
      goto yy225;
5968
0
    }
5969
0
yy443:
5970
0
    YYDEBUG(443, *YYCURSOR);
5971
0
    ++YYCURSOR;
5972
0
    YYFILL(1);
5973
0
    yych = *YYCURSOR;
5974
0
    YYDEBUG(444, *YYCURSOR);
5975
0
    if (yybm[0+yych] & 128) {
5976
0
      goto yy443;
5977
0
    }
5978
0
    if (yych <= 0x00) goto yy86;
5979
0
    if (yych <= '\r') goto yy545;
5980
0
    goto yy547;
5981
0
yy445:
5982
0
    YYDEBUG(445, *YYCURSOR);
5983
0
    yych = *++YYCURSOR;
5984
0
    if (yych == 'Y') goto yy549;
5985
0
    if (yych == 'y') goto yy549;
5986
0
    goto yy86;
5987
0
yy446:
5988
0
    YYDEBUG(446, *YYCURSOR);
5989
0
    yych = *++YYCURSOR;
5990
0
    if (yych == 'R') goto yy551;
5991
0
    if (yych == 'r') goto yy551;
5992
0
    goto yy86;
5993
0
yy447:
5994
0
    YYDEBUG(447, *YYCURSOR);
5995
0
    yych = *++YYCURSOR;
5996
0
    if (yych == 'E') goto yy556;
5997
0
    if (yych == 'e') goto yy556;
5998
0
    goto yy553;
5999
0
yy448:
6000
0
    YYDEBUG(448, *YYCURSOR);
6001
0
    yych = *++YYCURSOR;
6002
0
    if (yych == 'L') goto yy557;
6003
0
    if (yych == 'l') goto yy557;
6004
0
    goto yy86;
6005
0
yy449:
6006
0
    YYDEBUG(449, *YYCURSOR);
6007
0
    yych = *++YYCURSOR;
6008
0
    if (yych == 'T') goto yy558;
6009
0
    if (yych == 't') goto yy558;
6010
0
    goto yy86;
6011
0
yy450:
6012
0
    YYDEBUG(450, *YYCURSOR);
6013
0
    ++YYCURSOR;
6014
0
    YYFILL(1);
6015
0
    yych = *YYCURSOR;
6016
0
yy451:
6017
0
    YYDEBUG(451, *YYCURSOR);
6018
0
    if (yych <= 0x1F) {
6019
0
      if (yych == '\t') goto yy450;
6020
0
      goto yy86;
6021
0
    } else {
6022
0
      if (yych <= ' ') goto yy450;
6023
0
      if (yych != ')') goto yy86;
6024
0
    }
6025
0
    YYDEBUG(452, *YYCURSOR);
6026
0
    ++YYCURSOR;
6027
0
    YYDEBUG(453, *YYCURSOR);
6028
0
    yyleng = YYCURSOR - SCNG(yy_text);
6029
0
#line 1638 "Zend/zend_language_scanner.l"
6030
0
    {
6031
0
  RETURN_TOKEN(T_INT_CAST);
6032
0
}
6033
0
#line 6034 "Zend/zend_language_scanner.c"
6034
0
yy454:
6035
0
    YYDEBUG(454, *YYCURSOR);
6036
0
    yych = *++YYCURSOR;
6037
0
    if (yych == 'G') goto yy560;
6038
0
    if (yych == 'g') goto yy560;
6039
0
    goto yy86;
6040
0
yy455:
6041
0
    YYDEBUG(455, *YYCURSOR);
6042
0
    yych = *++YYCURSOR;
6043
0
    if (yych == 'C') goto yy561;
6044
0
    if (yych == 'c') goto yy561;
6045
0
    goto yy86;
6046
0
yy456:
6047
0
    YYDEBUG(456, *YYCURSOR);
6048
0
    ++YYCURSOR;
6049
0
    YYFILL(1);
6050
0
    yych = *YYCURSOR;
6051
0
    YYDEBUG(457, *YYCURSOR);
6052
0
    if (yych <= 0x1F) {
6053
0
      if (yych == '\t') goto yy456;
6054
0
      goto yy86;
6055
0
    } else {
6056
0
      if (yych <= ' ') goto yy456;
6057
0
      if (yych == ')') goto yy562;
6058
0
      goto yy86;
6059
0
    }
6060
0
yy458:
6061
0
    YYDEBUG(458, *YYCURSOR);
6062
0
    yych = *++YYCURSOR;
6063
0
    if (yych == 'N') goto yy564;
6064
0
    if (yych == 'n') goto yy564;
6065
0
    goto yy86;
6066
0
yy459:
6067
0
    YYDEBUG(459, *YYCURSOR);
6068
0
    yych = *++YYCURSOR;
6069
0
    if (yych == 'T') goto yy565;
6070
0
    if (yych == 't') goto yy565;
6071
0
    goto yy86;
6072
0
yy460:
6073
0
    YYDEBUG(460, *YYCURSOR);
6074
0
    ++YYCURSOR;
6075
0
    YYFILL(1);
6076
0
    yych = *YYCURSOR;
6077
0
    YYDEBUG(461, *YYCURSOR);
6078
0
    if (yych <= 0x1F) {
6079
0
      if (yych == '\t') goto yy460;
6080
0
      goto yy86;
6081
0
    } else {
6082
0
      if (yych <= ' ') goto yy460;
6083
0
      if (yych == ')') goto yy567;
6084
0
      goto yy86;
6085
0
    }
6086
0
yy462:
6087
0
    YYDEBUG(462, *YYCURSOR);
6088
0
    ++YYCURSOR;
6089
0
    YYFILL(3);
6090
0
    yych = *YYCURSOR;
6091
0
yy463:
6092
0
    YYDEBUG(463, *YYCURSOR);
6093
0
    if (yych <= 'Z') {
6094
0
      if (yych <= '/') {
6095
0
        if (yych == '"') goto yy569;
6096
0
        goto yy86;
6097
0
      } else {
6098
0
        if (yych <= '9') goto yy462;
6099
0
        if (yych <= '@') goto yy86;
6100
0
        goto yy462;
6101
0
      }
6102
0
    } else {
6103
0
      if (yych <= '`') {
6104
0
        if (yych == '_') goto yy462;
6105
0
        goto yy86;
6106
0
      } else {
6107
0
        if (yych <= 'z') goto yy462;
6108
0
        if (yych <= 0x7F) goto yy86;
6109
0
        goto yy462;
6110
0
      }
6111
0
    }
6112
0
yy464:
6113
0
    YYDEBUG(464, *YYCURSOR);
6114
0
    ++YYCURSOR;
6115
0
    YYFILL(3);
6116
0
    yych = *YYCURSOR;
6117
0
yy465:
6118
0
    YYDEBUG(465, *YYCURSOR);
6119
0
    if (yych <= 'Z') {
6120
0
      if (yych <= '/') {
6121
0
        if (yych == '\'') goto yy569;
6122
0
        goto yy86;
6123
0
      } else {
6124
0
        if (yych <= '9') goto yy464;
6125
0
        if (yych <= '@') goto yy86;
6126
0
        goto yy464;
6127
0
      }
6128
0
    } else {
6129
0
      if (yych <= '`') {
6130
0
        if (yych == '_') goto yy464;
6131
0
        goto yy86;
6132
0
      } else {
6133
0
        if (yych <= 'z') goto yy464;
6134
0
        if (yych <= 0x7F) goto yy86;
6135
0
        goto yy464;
6136
0
      }
6137
0
    }
6138
0
yy466:
6139
0
    YYDEBUG(466, *YYCURSOR);
6140
0
    ++YYCURSOR;
6141
0
yy467:
6142
0
    YYDEBUG(467, *YYCURSOR);
6143
0
    yyleng = YYCURSOR - SCNG(yy_text);
6144
0
#line 2678 "Zend/zend_language_scanner.l"
6145
0
    {
6146
0
  char *s;
6147
0
  unsigned char *saved_cursor;
6148
0
  int bprefix = (yytext[0] != '<') ? 1 : 0, spacing = 0, indentation = 0;
6149
0
  zend_heredoc_label *heredoc_label = emalloc(sizeof(zend_heredoc_label));
6150
0
  bool is_heredoc = 1;
6151
6152
0
  CG(zend_lineno)++;
6153
0
  heredoc_label->length = yyleng-bprefix-3-1-(yytext[yyleng-2]=='\r'?1:0);
6154
0
  s = yytext+bprefix+3;
6155
0
  while ((*s == ' ') || (*s == '\t')) {
6156
0
    s++;
6157
0
    heredoc_label->length--;
6158
0
  }
6159
6160
0
  if (*s == '\'') {
6161
0
    s++;
6162
0
    heredoc_label->length -= 2;
6163
0
    is_heredoc = 0;
6164
6165
0
    BEGIN(ST_NOWDOC);
6166
0
  } else {
6167
0
    if (*s == '"') {
6168
0
      s++;
6169
0
      heredoc_label->length -= 2;
6170
0
    }
6171
6172
0
    BEGIN(ST_HEREDOC);
6173
0
  }
6174
6175
0
  heredoc_label->label = estrndup(s, heredoc_label->length);
6176
0
  heredoc_label->indentation_uses_spaces = 0;
6177
0
  heredoc_label->indentation = 0;
6178
0
  saved_cursor = YYCURSOR;
6179
6180
0
  zend_ptr_stack_push(&SCNG(heredoc_label_stack), (void *) heredoc_label);
6181
6182
0
  while (YYCURSOR < YYLIMIT && (*YYCURSOR == ' ' || *YYCURSOR == '\t')) {
6183
0
    if (*YYCURSOR == '\t') {
6184
0
      spacing |= HEREDOC_USING_TABS;
6185
0
    } else {
6186
0
      spacing |= HEREDOC_USING_SPACES;
6187
0
    }
6188
0
    ++YYCURSOR;
6189
0
    ++indentation;
6190
0
  }
6191
6192
0
  if (YYCURSOR == YYLIMIT) {
6193
0
    YYCURSOR = saved_cursor;
6194
0
    RETURN_TOKEN(T_START_HEREDOC);
6195
0
  }
6196
6197
  /* Check for ending label on the next line */
6198
0
  if (heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, s, heredoc_label->length)) {
6199
0
    if (!IS_LABEL_SUCCESSOR(YYCURSOR[heredoc_label->length])) {
6200
0
      if (spacing == (HEREDOC_USING_SPACES | HEREDOC_USING_TABS)) {
6201
0
        zend_throw_exception(zend_ce_parse_error, "Invalid indentation - tabs and spaces cannot be mixed", 0);
6202
0
        if (PARSER_MODE()) {
6203
0
          RETURN_TOKEN(T_ERROR);
6204
0
        }
6205
0
      }
6206
6207
0
      YYCURSOR = saved_cursor;
6208
0
      heredoc_label->indentation = indentation;
6209
6210
0
      BEGIN(ST_END_HEREDOC);
6211
0
      RETURN_TOKEN(T_START_HEREDOC);
6212
0
    }
6213
0
  }
6214
6215
0
  YYCURSOR = saved_cursor;
6216
6217
0
  if (is_heredoc && !SCNG(heredoc_scan_ahead)) {
6218
0
    zend_lex_state current_state;
6219
0
    zend_string *saved_doc_comment = CG(doc_comment);
6220
0
    int heredoc_nesting_level = 1;
6221
0
    int first_token = 0;
6222
0
    int error = 0;
6223
6224
0
    zend_save_lexical_state(&current_state);
6225
6226
0
    SCNG(heredoc_scan_ahead) = 1;
6227
0
    SCNG(heredoc_indentation) = 0;
6228
0
    SCNG(heredoc_indentation_uses_spaces) = 0;
6229
0
    SCNG(on_event_context) = NULL;
6230
0
    LANG_SCNG(on_event) = NULL;
6231
0
    CG(doc_comment) = NULL;
6232
6233
0
    zend_ptr_stack_reverse_apply(&current_state.heredoc_label_stack, copy_heredoc_label_stack);
6234
6235
0
    zend_object *prev_exception = EG(exception);
6236
0
    EG(exception) = NULL;
6237
0
    while (heredoc_nesting_level) {
6238
0
      zval zv;
6239
0
      int retval;
6240
6241
0
      ZVAL_UNDEF(&zv);
6242
0
      retval = lex_scan(&zv, NULL);
6243
0
      zval_ptr_dtor_nogc(&zv);
6244
6245
0
      if (EG(exception)) {
6246
0
        zend_clear_exception();
6247
0
        break;
6248
0
      }
6249
6250
0
      if (!first_token) {
6251
0
        first_token = retval;
6252
0
      }
6253
6254
0
      switch (retval) {
6255
0
        case T_START_HEREDOC:
6256
0
          ++heredoc_nesting_level;
6257
0
          break;
6258
0
        case T_END_HEREDOC:
6259
0
          --heredoc_nesting_level;
6260
0
          break;
6261
0
        case END:
6262
0
          heredoc_nesting_level = 0;
6263
0
      }
6264
0
    }
6265
0
    EG(exception) = prev_exception;
6266
6267
0
    if (
6268
0
        (first_token == T_VARIABLE
6269
0
         || first_token == T_DOLLAR_OPEN_CURLY_BRACES
6270
0
         || first_token == T_CURLY_OPEN
6271
0
        ) && SCNG(heredoc_indentation)) {
6272
0
      zend_throw_exception_ex(zend_ce_parse_error, 0, "Invalid body indentation level (expecting an indentation level of at least %d)", SCNG(heredoc_indentation));
6273
0
      error = 1;
6274
0
    }
6275
6276
0
    heredoc_label->indentation = SCNG(heredoc_indentation);
6277
0
    heredoc_label->indentation_uses_spaces = SCNG(heredoc_indentation_uses_spaces);
6278
6279
0
    zend_restore_lexical_state(&current_state);
6280
0
    SCNG(heredoc_scan_ahead) = 0;
6281
0
    CG(increment_lineno) = 0;
6282
0
    CG(doc_comment) = saved_doc_comment;
6283
6284
0
    if (PARSER_MODE() && error) {
6285
0
      RETURN_TOKEN(T_ERROR);
6286
0
    }
6287
0
  }
6288
6289
0
  RETURN_TOKEN(T_START_HEREDOC);
6290
0
}
6291
0
#line 6292 "Zend/zend_language_scanner.c"
6292
0
yy468:
6293
0
    YYDEBUG(468, *YYCURSOR);
6294
0
    yych = *++YYCURSOR;
6295
0
    if (yych == '\n') goto yy466;
6296
0
    goto yy467;
6297
0
yy469:
6298
0
    YYDEBUG(469, *YYCURSOR);
6299
0
    yyaccept = 4;
6300
0
    yych = *(YYMARKER = ++YYCURSOR);
6301
0
    if (yych == 'A') goto yy570;
6302
0
    if (yych == 'a') goto yy570;
6303
0
    goto yy48;
6304
0
yy470:
6305
0
    YYDEBUG(470, *YYCURSOR);
6306
0
    yyaccept = 34;
6307
0
    yych = *(YYMARKER = ++YYCURSOR);
6308
0
    if (yybm[256+yych] & 128) {
6309
0
      goto yy47;
6310
0
    }
6311
0
    if (yych == '\\') goto yy164;
6312
0
yy471:
6313
0
    YYDEBUG(471, *YYCURSOR);
6314
0
    yyleng = YYCURSOR - SCNG(yy_text);
6315
0
#line 1818 "Zend/zend_language_scanner.l"
6316
0
    {
6317
0
  RETURN_TOKEN_WITH_IDENT(T_ARRAY);
6318
0
}
6319
0
#line 6320 "Zend/zend_language_scanner.c"
6320
0
yy472:
6321
0
    YYDEBUG(472, *YYCURSOR);
6322
0
    yyaccept = 35;
6323
0
    yych = *(YYMARKER = ++YYCURSOR);
6324
0
    if (yybm[256+yych] & 128) {
6325
0
      goto yy47;
6326
0
    }
6327
0
    if (yych == '\\') goto yy164;
6328
0
yy473:
6329
0
    YYDEBUG(473, *YYCURSOR);
6330
0
    yyleng = YYCURSOR - SCNG(yy_text);
6331
0
#line 1534 "Zend/zend_language_scanner.l"
6332
0
    {
6333
0
  RETURN_TOKEN_WITH_IDENT(T_BREAK);
6334
0
}
6335
0
#line 6336 "Zend/zend_language_scanner.c"
6336
0
yy474:
6337
0
    YYDEBUG(474, *YYCURSOR);
6338
0
    yyaccept = 4;
6339
0
    yych = *(YYMARKER = ++YYCURSOR);
6340
0
    if (yych == 'B') goto yy571;
6341
0
    if (yych == 'b') goto yy571;
6342
0
    goto yy48;
6343
0
yy475:
6344
0
    YYDEBUG(475, *YYCURSOR);
6345
0
    yyaccept = 36;
6346
0
    yych = *(YYMARKER = ++YYCURSOR);
6347
0
    if (yybm[256+yych] & 128) {
6348
0
      goto yy47;
6349
0
    }
6350
0
    if (yych == '\\') goto yy164;
6351
0
yy476:
6352
0
    YYDEBUG(476, *YYCURSOR);
6353
0
    yyleng = YYCURSOR - SCNG(yy_text);
6354
0
#line 1442 "Zend/zend_language_scanner.l"
6355
0
    {
6356
0
  RETURN_TOKEN_WITH_IDENT(T_CATCH);
6357
0
}
6358
0
#line 6359 "Zend/zend_language_scanner.c"
6359
0
yy477:
6360
0
    YYDEBUG(477, *YYCURSOR);
6361
0
    yyaccept = 37;
6362
0
    yych = *(YYMARKER = ++YYCURSOR);
6363
0
    if (yybm[256+yych] & 128) {
6364
0
      goto yy47;
6365
0
    }
6366
0
    if (yych == '\\') goto yy164;
6367
0
yy478:
6368
0
    YYDEBUG(478, *YYCURSOR);
6369
0
    yyleng = YYCURSOR - SCNG(yy_text);
6370
0
#line 1554 "Zend/zend_language_scanner.l"
6371
0
    {
6372
0
  RETURN_TOKEN_WITH_IDENT(T_CLASS);
6373
0
}
6374
0
#line 6375 "Zend/zend_language_scanner.c"
6375
0
yy479:
6376
0
    YYDEBUG(479, *YYCURSOR);
6377
0
    yyaccept = 38;
6378
0
    yych = *(YYMARKER = ++YYCURSOR);
6379
0
    if (yybm[256+yych] & 128) {
6380
0
      goto yy47;
6381
0
    }
6382
0
    if (yych == '\\') goto yy164;
6383
0
yy480:
6384
0
    YYDEBUG(480, *YYCURSOR);
6385
0
    yyleng = YYCURSOR - SCNG(yy_text);
6386
0
#line 1630 "Zend/zend_language_scanner.l"
6387
0
    {
6388
0
  RETURN_TOKEN_WITH_IDENT(T_CLONE);
6389
0
}
6390
0
#line 6391 "Zend/zend_language_scanner.c"
6391
0
yy481:
6392
0
    YYDEBUG(481, *YYCURSOR);
6393
0
    yyaccept = 39;
6394
0
    yych = *(YYMARKER = ++YYCURSOR);
6395
0
    if (yybm[256+yych] & 128) {
6396
0
      goto yy47;
6397
0
    }
6398
0
    if (yych == '\\') goto yy164;
6399
0
yy482:
6400
0
    YYDEBUG(482, *YYCURSOR);
6401
0
    yyleng = YYCURSOR - SCNG(yy_text);
6402
0
#line 1415 "Zend/zend_language_scanner.l"
6403
0
    {
6404
0
  RETURN_TOKEN_WITH_IDENT(T_CONST);
6405
0
}
6406
0
#line 6407 "Zend/zend_language_scanner.c"
6407
0
yy483:
6408
0
    YYDEBUG(483, *YYCURSOR);
6409
0
    yyaccept = 4;
6410
0
    yych = *(YYMARKER = ++YYCURSOR);
6411
0
    if (yych == 'N') goto yy572;
6412
0
    if (yych == 'n') goto yy572;
6413
0
    goto yy48;
6414
0
yy484:
6415
0
    YYDEBUG(484, *YYCURSOR);
6416
0
    yyaccept = 4;
6417
0
    yych = *(YYMARKER = ++YYCURSOR);
6418
0
    if (yych == 'R') goto yy573;
6419
0
    if (yych == 'r') goto yy573;
6420
0
    goto yy48;
6421
0
yy485:
6422
0
    YYDEBUG(485, *YYCURSOR);
6423
0
    yyaccept = 4;
6424
0
    yych = *(YYMARKER = ++YYCURSOR);
6425
0
    if (yych == 'L') goto yy574;
6426
0
    if (yych == 'l') goto yy574;
6427
0
    goto yy48;
6428
0
yy486:
6429
0
    YYDEBUG(486, *YYCURSOR);
6430
0
    yyaccept = 4;
6431
0
    yych = *(YYMARKER = ++YYCURSOR);
6432
0
    if (yych == 'F') goto yy575;
6433
0
    if (yych == 'f') goto yy575;
6434
0
    goto yy48;
6435
0
yy487:
6436
0
    YYDEBUG(487, *YYCURSOR);
6437
0
    yyaccept = 40;
6438
0
    yych = *(YYMARKER = ++YYCURSOR);
6439
0
    if (yybm[256+yych] & 128) {
6440
0
      goto yy47;
6441
0
    }
6442
0
    if (yych == '\\') goto yy164;
6443
0
yy488:
6444
0
    YYDEBUG(488, *YYCURSOR);
6445
0
    yyleng = YYCURSOR - SCNG(yy_text);
6446
0
#line 1758 "Zend/zend_language_scanner.l"
6447
0
    {
6448
0
  RETURN_TOKEN_WITH_IDENT(T_EMPTY);
6449
0
}
6450
0
#line 6451 "Zend/zend_language_scanner.c"
6451
0
yy489:
6452
0
    YYDEBUG(489, *YYCURSOR);
6453
0
    yyaccept = 4;
6454
0
    yych = *(YYMARKER = ++YYCURSOR);
6455
0
    if (yych == 'C') goto yy577;
6456
0
    if (yych == 'c') goto yy577;
6457
0
    goto yy48;
6458
0
yy490:
6459
0
    YYDEBUG(490, *YYCURSOR);
6460
0
    yyaccept = 4;
6461
0
    yych = *(YYMARKER = ++YYCURSOR);
6462
0
    if (yych == 'R') goto yy578;
6463
0
    if (yych == 'r') goto yy578;
6464
0
    goto yy48;
6465
0
yy491:
6466
0
    YYDEBUG(491, *YYCURSOR);
6467
0
    yyaccept = 41;
6468
0
    yych = *(YYMARKER = ++YYCURSOR);
6469
0
    if (yybm[256+yych] & 128) {
6470
0
      goto yy47;
6471
0
    }
6472
0
    if (yych == '\\') goto yy164;
6473
0
yy492:
6474
0
    YYDEBUG(492, *YYCURSOR);
6475
0
    yyleng = YYCURSOR - SCNG(yy_text);
6476
0
#line 1462 "Zend/zend_language_scanner.l"
6477
0
    {
6478
0
  RETURN_TOKEN_WITH_IDENT(T_ENDIF);
6479
0
}
6480
0
#line 6481 "Zend/zend_language_scanner.c"
6481
0
yy493:
6482
0
    YYDEBUG(493, *YYCURSOR);
6483
0
    yyaccept = 4;
6484
0
    yych = *(YYMARKER = ++YYCURSOR);
6485
0
    if (yych == 'I') goto yy580;
6486
0
    if (yych == 'i') goto yy580;
6487
0
    goto yy48;
6488
0
yy494:
6489
0
    YYDEBUG(494, *YYCURSOR);
6490
0
    yyaccept = 4;
6491
0
    yych = *(YYMARKER = ++YYCURSOR);
6492
0
    if (yych == 'I') goto yy581;
6493
0
    if (yych == 'i') goto yy581;
6494
0
    goto yy48;
6495
0
yy495:
6496
0
    YYDEBUG(495, *YYCURSOR);
6497
0
    ++YYCURSOR;
6498
0
    YYFILL(10);
6499
0
    yych = *YYCURSOR;
6500
0
    YYDEBUG(496, *YYCURSOR);
6501
0
    if (yych <= 'E') {
6502
0
      if (yych <= ' ') {
6503
0
        if (yych <= '\f') {
6504
0
          if (yych <= 0x08) goto yy86;
6505
0
          if (yych <= '\n') goto yy495;
6506
0
          goto yy86;
6507
0
        } else {
6508
0
          if (yych <= '\r') goto yy495;
6509
0
          if (yych <= 0x1F) goto yy86;
6510
0
          goto yy495;
6511
0
        }
6512
0
      } else {
6513
0
        if (yych <= '.') {
6514
0
          if (yych != '#') goto yy86;
6515
0
        } else {
6516
0
          if (yych <= '/') goto yy498;
6517
0
          if (yych <= '@') goto yy86;
6518
0
          if (yych <= 'D') goto yy582;
6519
0
          goto yy584;
6520
0
        }
6521
0
      }
6522
0
    } else {
6523
0
      if (yych <= '`') {
6524
0
        if (yych <= 'Z') {
6525
0
          if (yych == 'I') goto yy585;
6526
0
          goto yy582;
6527
0
        } else {
6528
0
          if (yych == '_') goto yy582;
6529
0
          goto yy86;
6530
0
        }
6531
0
      } else {
6532
0
        if (yych <= 'h') {
6533
0
          if (yych == 'e') goto yy584;
6534
0
          goto yy582;
6535
0
        } else {
6536
0
          if (yych <= 'i') goto yy585;
6537
0
          if (yych <= 'z') goto yy582;
6538
0
          if (yych <= 0x7F) goto yy86;
6539
0
          goto yy582;
6540
0
        }
6541
0
      }
6542
0
    }
6543
0
yy497:
6544
0
    YYDEBUG(497, *YYCURSOR);
6545
0
    ++YYCURSOR;
6546
0
    YYFILL(1);
6547
0
    yych = *YYCURSOR;
6548
0
    if (yych <= '\f') {
6549
0
      if (yych <= 0x00) goto yy86;
6550
0
      if (yych == '\n') goto yy588;
6551
0
      goto yy586;
6552
0
    } else {
6553
0
      if (yych <= '\r') goto yy588;
6554
0
      if (yych == '[') goto yy86;
6555
0
      goto yy586;
6556
0
    }
6557
0
yy498:
6558
0
    YYDEBUG(498, *YYCURSOR);
6559
0
    ++YYCURSOR;
6560
0
    YYFILL(1);
6561
0
    yych = *YYCURSOR;
6562
0
    if (yych == '*') goto yy590;
6563
0
    if (yych == '/') goto yy586;
6564
0
    goto yy86;
6565
0
yy499:
6566
0
    YYDEBUG(499, *YYCURSOR);
6567
0
    yyaccept = 4;
6568
0
    yych = *(YYMARKER = ++YYCURSOR);
6569
0
    if (yych == 'D') goto yy592;
6570
0
    if (yych == 'd') goto yy592;
6571
0
    goto yy48;
6572
0
yy500:
6573
0
    YYDEBUG(500, *YYCURSOR);
6574
0
    yyaccept = 42;
6575
0
    yych = *(YYMARKER = ++YYCURSOR);
6576
0
    if (yych <= '\\') {
6577
0
      if (yych <= 'K') {
6578
0
        if (yych <= '/') goto yy501;
6579
0
        if (yych <= '9') goto yy47;
6580
0
        if (yych >= 'A') goto yy47;
6581
0
      } else {
6582
0
        if (yych <= 'L') goto yy593;
6583
0
        if (yych <= 'Z') goto yy47;
6584
0
        if (yych >= '\\') goto yy164;
6585
0
      }
6586
0
    } else {
6587
0
      if (yych <= 'k') {
6588
0
        if (yych == '_') goto yy47;
6589
0
        if (yych >= 'a') goto yy47;
6590
0
      } else {
6591
0
        if (yych <= 'l') goto yy593;
6592
0
        if (yych <= 'z') goto yy47;
6593
0
        if (yych >= 0x80) goto yy47;
6594
0
      }
6595
0
    }
6596
0
yy501:
6597
0
    YYDEBUG(501, *YYCURSOR);
6598
0
    yyleng = YYCURSOR - SCNG(yy_text);
6599
0
#line 1774 "Zend/zend_language_scanner.l"
6600
0
    {
6601
0
  RETURN_TOKEN_WITH_IDENT(T_FINAL);
6602
0
}
6603
0
#line 6604 "Zend/zend_language_scanner.c"
6604
0
yy502:
6605
0
    YYDEBUG(502, *YYCURSOR);
6606
0
    yyaccept = 4;
6607
0
    yych = *(YYMARKER = ++YYCURSOR);
6608
0
    if (yych == 'C') goto yy594;
6609
0
    if (yych == 'c') goto yy594;
6610
0
    goto yy48;
6611
0
yy503:
6612
0
    YYDEBUG(503, *YYCURSOR);
6613
0
    yyaccept = 4;
6614
0
    yych = *(YYMARKER = ++YYCURSOR);
6615
0
    if (yych == 'I') goto yy595;
6616
0
    if (yych == 'i') goto yy595;
6617
0
    goto yy48;
6618
0
yy504:
6619
0
    YYDEBUG(504, *YYCURSOR);
6620
0
    yyaccept = 4;
6621
0
    yych = *(YYMARKER = ++YYCURSOR);
6622
0
    if (yych == 'L') goto yy596;
6623
0
    if (yych == 'l') goto yy596;
6624
0
    goto yy48;
6625
0
yy505:
6626
0
    YYDEBUG(505, *YYCURSOR);
6627
0
    yyaccept = 4;
6628
0
    yych = *(YYMARKER = ++YYCURSOR);
6629
0
    if (yych == 'M') goto yy598;
6630
0
    if (yych == 'm') goto yy598;
6631
0
    goto yy48;
6632
0
yy506:
6633
0
    YYDEBUG(506, *YYCURSOR);
6634
0
    yyaccept = 4;
6635
0
    yych = *(YYMARKER = ++YYCURSOR);
6636
0
    if (yych == 'D') goto yy599;
6637
0
    if (yych == 'd') goto yy599;
6638
0
    goto yy48;
6639
0
yy507:
6640
0
    YYDEBUG(507, *YYCURSOR);
6641
0
    yyaccept = 4;
6642
0
    yych = *(YYMARKER = ++YYCURSOR);
6643
0
    if (yych == 'N') goto yy600;
6644
0
    if (yych == 'n') goto yy600;
6645
0
    goto yy48;
6646
0
yy508:
6647
0
    YYDEBUG(508, *YYCURSOR);
6648
0
    yyaccept = 4;
6649
0
    yych = *(YYMARKER = ++YYCURSOR);
6650
0
    if (yych == 'A') goto yy601;
6651
0
    if (yych == 'a') goto yy601;
6652
0
    goto yy48;
6653
0
yy509:
6654
0
    YYDEBUG(509, *YYCURSOR);
6655
0
    yyaccept = 4;
6656
0
    yych = *(YYMARKER = ++YYCURSOR);
6657
0
    if (yych == 'F') goto yy602;
6658
0
    if (yych == 'f') goto yy602;
6659
0
    goto yy48;
6660
0
yy510:
6661
0
    YYDEBUG(510, *YYCURSOR);
6662
0
    yyaccept = 43;
6663
0
    yych = *(YYMARKER = ++YYCURSOR);
6664
0
    if (yybm[256+yych] & 128) {
6665
0
      goto yy47;
6666
0
    }
6667
0
    if (yych == '\\') goto yy164;
6668
0
yy511:
6669
0
    YYDEBUG(511, *YYCURSOR);
6670
0
    yyleng = YYCURSOR - SCNG(yy_text);
6671
0
#line 1754 "Zend/zend_language_scanner.l"
6672
0
    {
6673
0
  RETURN_TOKEN_WITH_IDENT(T_ISSET);
6674
0
}
6675
0
#line 6676 "Zend/zend_language_scanner.c"
6676
0
yy512:
6677
0
    YYDEBUG(512, *YYCURSOR);
6678
0
    yyaccept = 44;
6679
0
    yych = *(YYMARKER = ++YYCURSOR);
6680
0
    if (yybm[256+yych] & 128) {
6681
0
      goto yy47;
6682
0
    }
6683
0
    if (yych == '\\') goto yy164;
6684
0
yy513:
6685
0
    YYDEBUG(513, *YYCURSOR);
6686
0
    yyleng = YYCURSOR - SCNG(yy_text);
6687
0
#line 1518 "Zend/zend_language_scanner.l"
6688
0
    {
6689
0
  RETURN_TOKEN_WITH_IDENT(T_MATCH);
6690
0
}
6691
0
#line 6692 "Zend/zend_language_scanner.c"
6692
0
yy514:
6693
0
    YYDEBUG(514, *YYCURSOR);
6694
0
    yyaccept = 4;
6695
0
    yych = *(YYMARKER = ++YYCURSOR);
6696
0
    if (yych == 'P') goto yy603;
6697
0
    if (yych == 'p') goto yy603;
6698
0
    goto yy48;
6699
0
yy515:
6700
0
    YYDEBUG(515, *YYCURSOR);
6701
0
    yyaccept = 45;
6702
0
    yych = *(YYMARKER = ++YYCURSOR);
6703
0
    if (yybm[256+yych] & 128) {
6704
0
      goto yy47;
6705
0
    }
6706
0
    if (yych == '\\') goto yy164;
6707
0
yy516:
6708
0
    YYDEBUG(516, *YYCURSOR);
6709
0
    yyleng = YYCURSOR - SCNG(yy_text);
6710
0
#line 1550 "Zend/zend_language_scanner.l"
6711
0
    {
6712
0
  RETURN_TOKEN_WITH_IDENT(T_PRINT);
6713
0
}
6714
0
#line 6715 "Zend/zend_language_scanner.c"
6715
0
yy517:
6716
0
    YYDEBUG(517, *YYCURSOR);
6717
0
    yyaccept = 4;
6718
0
    yych = *(YYMARKER = ++YYCURSOR);
6719
0
    if (yych == 'T') goto yy604;
6720
0
    if (yych == 't') goto yy604;
6721
0
    goto yy48;
6722
0
yy518:
6723
0
    YYDEBUG(518, *YYCURSOR);
6724
0
    yyaccept = 4;
6725
0
    yych = *(YYMARKER = ++YYCURSOR);
6726
0
    if (yych == 'C') goto yy605;
6727
0
    if (yych == 'c') goto yy605;
6728
0
    goto yy48;
6729
0
yy519:
6730
0
    YYDEBUG(519, *YYCURSOR);
6731
0
    yyaccept = 4;
6732
0
    yych = *(YYMARKER = ++YYCURSOR);
6733
0
    if (yych == 'C') goto yy606;
6734
0
    if (yych == 'c') goto yy606;
6735
0
    goto yy48;
6736
0
yy520:
6737
0
    YYDEBUG(520, *YYCURSOR);
6738
0
    yyaccept = 4;
6739
0
    yych = *(YYMARKER = ++YYCURSOR);
6740
0
    if (yych == 'N') goto yy608;
6741
0
    if (yych == 'n') goto yy608;
6742
0
    goto yy48;
6743
0
yy521:
6744
0
    YYDEBUG(521, *YYCURSOR);
6745
0
    yyaccept = 4;
6746
0
    yych = *(YYMARKER = ++YYCURSOR);
6747
0
    if (yych == 'R') goto yy609;
6748
0
    if (yych == 'r') goto yy609;
6749
0
    goto yy48;
6750
0
yy522:
6751
0
    YYDEBUG(522, *YYCURSOR);
6752
0
    yyaccept = 4;
6753
0
    yych = *(YYMARKER = ++YYCURSOR);
6754
0
    if (yych == 'N') goto yy610;
6755
0
    if (yych == 'n') goto yy610;
6756
0
    goto yy48;
6757
0
yy523:
6758
0
    YYDEBUG(523, *YYCURSOR);
6759
0
    yyaccept = 4;
6760
0
    yych = *(YYMARKER = ++YYCURSOR);
6761
0
    if (yych == 'C') goto yy612;
6762
0
    if (yych == 'c') goto yy612;
6763
0
    goto yy48;
6764
0
yy524:
6765
0
    YYDEBUG(524, *YYCURSOR);
6766
0
    yyaccept = 4;
6767
0
    yych = *(YYMARKER = ++YYCURSOR);
6768
0
    if (yych == 'H') goto yy614;
6769
0
    if (yych == 'h') goto yy614;
6770
0
    goto yy48;
6771
0
yy525:
6772
0
    YYDEBUG(525, *YYCURSOR);
6773
0
    yyaccept = 46;
6774
0
    yych = *(YYMARKER = ++YYCURSOR);
6775
0
    if (yybm[256+yych] & 128) {
6776
0
      goto yy47;
6777
0
    }
6778
0
    if (yych == '\\') goto yy164;
6779
0
yy526:
6780
0
    YYDEBUG(526, *YYCURSOR);
6781
0
    yyleng = YYCURSOR - SCNG(yy_text);
6782
0
#line 1450 "Zend/zend_language_scanner.l"
6783
0
    {
6784
0
  RETURN_TOKEN_WITH_IDENT(T_THROW);
6785
0
}
6786
0
#line 6787 "Zend/zend_language_scanner.c"
6787
0
yy527:
6788
0
    YYDEBUG(527, *YYCURSOR);
6789
0
    yyaccept = 47;
6790
0
    yych = *(YYMARKER = ++YYCURSOR);
6791
0
    if (yybm[256+yych] & 128) {
6792
0
      goto yy47;
6793
0
    }
6794
0
    if (yych == '\\') goto yy164;
6795
0
yy528:
6796
0
    YYDEBUG(528, *YYCURSOR);
6797
0
    yyleng = YYCURSOR - SCNG(yy_text);
6798
0
#line 1562 "Zend/zend_language_scanner.l"
6799
0
    {
6800
0
  RETURN_TOKEN_WITH_IDENT(T_TRAIT);
6801
0
}
6802
0
#line 6803 "Zend/zend_language_scanner.c"
6803
0
yy529:
6804
0
    YYDEBUG(529, *YYCURSOR);
6805
0
    yyaccept = 48;
6806
0
    yych = *(YYMARKER = ++YYCURSOR);
6807
0
    if (yybm[256+yych] & 128) {
6808
0
      goto yy47;
6809
0
    }
6810
0
    if (yych == '\\') goto yy164;
6811
0
yy530:
6812
0
    YYDEBUG(530, *YYCURSOR);
6813
0
    yyleng = YYCURSOR - SCNG(yy_text);
6814
0
#line 1806 "Zend/zend_language_scanner.l"
6815
0
    {
6816
0
  RETURN_TOKEN_WITH_IDENT(T_UNSET);
6817
0
}
6818
0
#line 6819 "Zend/zend_language_scanner.c"
6819
0
yy531:
6820
0
    YYDEBUG(531, *YYCURSOR);
6821
0
    yyaccept = 49;
6822
0
    yych = *(YYMARKER = ++YYCURSOR);
6823
0
    if (yybm[256+yych] & 128) {
6824
0
      goto yy47;
6825
0
    }
6826
0
    if (yych == '\\') goto yy164;
6827
0
yy532:
6828
0
    YYDEBUG(532, *YYCURSOR);
6829
0
    yyleng = YYCURSOR - SCNG(yy_text);
6830
0
#line 1470 "Zend/zend_language_scanner.l"
6831
0
    {
6832
0
  RETURN_TOKEN_WITH_IDENT(T_WHILE);
6833
0
}
6834
0
#line 6835 "Zend/zend_language_scanner.c"
6835
0
yy533:
6836
0
    YYDEBUG(533, *YYCURSOR);
6837
0
    yyaccept = 50;
6838
0
    yych = *(YYMARKER = ++YYCURSOR);
6839
0
    if (yybm[256+yych] & 128) {
6840
0
      goto yy47;
6841
0
    }
6842
0
    if (yych <= ' ') {
6843
0
      if (yych <= '\f') {
6844
0
        if (yych <= 0x08) goto yy534;
6845
0
        if (yych <= '\n') goto yy616;
6846
0
      } else {
6847
0
        if (yych <= '\r') goto yy616;
6848
0
        if (yych >= ' ') goto yy616;
6849
0
      }
6850
0
    } else {
6851
0
      if (yych <= '.') {
6852
0
        if (yych == '#') goto yy618;
6853
0
      } else {
6854
0
        if (yych <= '/') goto yy619;
6855
0
        if (yych == '\\') goto yy164;
6856
0
      }
6857
0
    }
6858
0
yy534:
6859
0
    YYDEBUG(534, *YYCURSOR);
6860
0
    yyleng = YYCURSOR - SCNG(yy_text);
6861
0
#line 1434 "Zend/zend_language_scanner.l"
6862
0
    {
6863
0
  RETURN_TOKEN_WITH_IDENT(T_YIELD);
6864
0
}
6865
0
#line 6866 "Zend/zend_language_scanner.c"
6866
0
yy535:
6867
0
    YYDEBUG(535, *YYCURSOR);
6868
0
    yyaccept = 4;
6869
0
    yych = *(YYMARKER = ++YYCURSOR);
6870
0
    if (yych == 'S') goto yy620;
6871
0
    if (yych == 's') goto yy620;
6872
0
    goto yy48;
6873
0
yy536:
6874
0
    YYDEBUG(536, *YYCURSOR);
6875
0
    yyaccept = 4;
6876
0
    yych = *(YYMARKER = ++YYCURSOR);
6877
0
    if (yych == '_') goto yy621;
6878
0
    goto yy48;
6879
0
yy537:
6880
0
    YYDEBUG(537, *YYCURSOR);
6881
0
    yyaccept = 4;
6882
0
    yych = *(YYMARKER = ++YYCURSOR);
6883
0
    if (yych == 'E') goto yy622;
6884
0
    if (yych == 'e') goto yy622;
6885
0
    goto yy48;
6886
0
yy538:
6887
0
    YYDEBUG(538, *YYCURSOR);
6888
0
    yyaccept = 4;
6889
0
    yych = *(YYMARKER = ++YYCURSOR);
6890
0
    if (yych == 'C') goto yy623;
6891
0
    if (yych == 'c') goto yy623;
6892
0
    goto yy48;
6893
0
yy539:
6894
0
    YYDEBUG(539, *YYCURSOR);
6895
0
    yyaccept = 4;
6896
0
    yych = *(YYMARKER = ++YYCURSOR);
6897
0
    if (yych == 'T') goto yy624;
6898
0
    if (yych == 't') goto yy624;
6899
0
    goto yy48;
6900
0
yy540:
6901
0
    YYDEBUG(540, *YYCURSOR);
6902
0
    yyaccept = 4;
6903
0
    yych = *(YYMARKER = ++YYCURSOR);
6904
0
    if (yych == 'E') goto yy625;
6905
0
    if (yych == 'e') goto yy625;
6906
0
    goto yy48;
6907
0
yy541:
6908
0
    YYDEBUG(541, *YYCURSOR);
6909
0
    yyaccept = 4;
6910
0
    yych = *(YYMARKER = ++YYCURSOR);
6911
0
    if (yych == 'H') goto yy626;
6912
0
    if (yych == 'h') goto yy626;
6913
0
    goto yy48;
6914
0
yy542:
6915
0
    YYDEBUG(542, *YYCURSOR);
6916
0
    yyaccept = 4;
6917
0
    yych = *(YYMARKER = ++YYCURSOR);
6918
0
    if (yych == 'E') goto yy627;
6919
0
    if (yych == 'e') goto yy627;
6920
0
    goto yy48;
6921
0
yy543:
6922
0
    YYDEBUG(543, *YYCURSOR);
6923
0
    yyaccept = 4;
6924
0
    yych = *(YYMARKER = ++YYCURSOR);
6925
0
    if (yych == 'P') goto yy628;
6926
0
    if (yych == 'p') goto yy628;
6927
0
    goto yy48;
6928
0
yy544:
6929
0
    YYDEBUG(544, *YYCURSOR);
6930
0
    yyaccept = 4;
6931
0
    yych = *(YYMARKER = ++YYCURSOR);
6932
0
    if (yych == 'I') goto yy629;
6933
0
    if (yych == 'i') goto yy629;
6934
0
    goto yy48;
6935
0
yy545:
6936
0
    YYDEBUG(545, *YYCURSOR);
6937
0
    ++YYCURSOR;
6938
0
    YYFILL(1);
6939
0
    yych = *YYCURSOR;
6940
0
    YYDEBUG(546, *YYCURSOR);
6941
0
    if (yybm[0+yych] & 64) {
6942
0
      goto yy355;
6943
0
    }
6944
0
    if (yych <= ' ') {
6945
0
      if (yych <= '\n') {
6946
0
        if (yych <= 0x00) goto yy86;
6947
0
        if (yych <= 0x08) goto yy230;
6948
0
        goto yy545;
6949
0
      } else {
6950
0
        if (yych == '\r') goto yy545;
6951
0
        if (yych <= 0x1F) goto yy230;
6952
0
        goto yy545;
6953
0
      }
6954
0
    } else {
6955
0
      if (yych <= '$') {
6956
0
        if (yych <= '"') goto yy230;
6957
0
        if (yych <= '#') goto yy630;
6958
0
        goto yy631;
6959
0
      } else {
6960
0
        if (yych <= '-') goto yy230;
6961
0
        if (yych <= '.') goto yy632;
6962
0
        if (yych <= '/') goto yy633;
6963
0
        goto yy230;
6964
0
      }
6965
0
    }
6966
0
yy547:
6967
0
    YYDEBUG(547, *YYCURSOR);
6968
0
    ++YYCURSOR;
6969
0
    YYFILL(1);
6970
0
    yych = *YYCURSOR;
6971
0
    YYDEBUG(548, *YYCURSOR);
6972
0
    if (yych <= '\r') {
6973
0
      if (yych <= '\t') {
6974
0
        if (yych <= 0x00) goto yy86;
6975
0
        goto yy443;
6976
0
      } else {
6977
0
        if (yych <= '\n') goto yy545;
6978
0
        if (yych <= '\f') goto yy443;
6979
0
        goto yy545;
6980
0
      }
6981
0
    } else {
6982
0
      if (yych <= '*') {
6983
0
        if (yych <= ')') goto yy443;
6984
0
        goto yy547;
6985
0
      } else {
6986
0
        if (yych == '/') goto yy227;
6987
0
        goto yy443;
6988
0
      }
6989
0
    }
6990
0
yy549:
6991
0
    YYDEBUG(549, *YYCURSOR);
6992
0
    ++YYCURSOR;
6993
0
    YYFILL(1);
6994
0
    yych = *YYCURSOR;
6995
0
    YYDEBUG(550, *YYCURSOR);
6996
0
    if (yych <= 0x1F) {
6997
0
      if (yych == '\t') goto yy549;
6998
0
      goto yy86;
6999
0
    } else {
7000
0
      if (yych <= ' ') goto yy549;
7001
0
      if (yych == ')') goto yy634;
7002
0
      goto yy86;
7003
0
    }
7004
0
yy551:
7005
0
    YYDEBUG(551, *YYCURSOR);
7006
0
    yych = *++YYCURSOR;
7007
0
    if (yych == 'Y') goto yy636;
7008
0
    if (yych == 'y') goto yy636;
7009
0
    goto yy86;
7010
0
yy552:
7011
0
    YYDEBUG(552, *YYCURSOR);
7012
0
    ++YYCURSOR;
7013
0
    YYFILL(1);
7014
0
    yych = *YYCURSOR;
7015
0
yy553:
7016
0
    YYDEBUG(553, *YYCURSOR);
7017
0
    if (yych <= 0x1F) {
7018
0
      if (yych == '\t') goto yy552;
7019
0
      goto yy86;
7020
0
    } else {
7021
0
      if (yych <= ' ') goto yy552;
7022
0
      if (yych != ')') goto yy86;
7023
0
    }
7024
0
    YYDEBUG(554, *YYCURSOR);
7025
0
    ++YYCURSOR;
7026
0
    YYDEBUG(555, *YYCURSOR);
7027
0
    yyleng = YYCURSOR - SCNG(yy_text);
7028
0
#line 1696 "Zend/zend_language_scanner.l"
7029
0
    {
7030
0
  RETURN_TOKEN(T_BOOL_CAST);
7031
0
}
7032
0
#line 7033 "Zend/zend_language_scanner.c"
7033
0
yy556:
7034
0
    YYDEBUG(556, *YYCURSOR);
7035
0
    yych = *++YYCURSOR;
7036
0
    if (yych == 'A') goto yy638;
7037
0
    if (yych == 'a') goto yy638;
7038
0
    goto yy86;
7039
0
yy557:
7040
0
    YYDEBUG(557, *YYCURSOR);
7041
0
    yych = *++YYCURSOR;
7042
0
    if (yych == 'E') goto yy639;
7043
0
    if (yych == 'e') goto yy639;
7044
0
    goto yy86;
7045
0
yy558:
7046
0
    YYDEBUG(558, *YYCURSOR);
7047
0
    ++YYCURSOR;
7048
0
    YYFILL(1);
7049
0
    yych = *YYCURSOR;
7050
0
    YYDEBUG(559, *YYCURSOR);
7051
0
    if (yych <= 0x1F) {
7052
0
      if (yych == '\t') goto yy558;
7053
0
      goto yy86;
7054
0
    } else {
7055
0
      if (yych <= ' ') goto yy558;
7056
0
      if (yych == ')') goto yy641;
7057
0
      goto yy86;
7058
0
    }
7059
0
yy560:
7060
0
    YYDEBUG(560, *YYCURSOR);
7061
0
    yych = *++YYCURSOR;
7062
0
    if (yych == 'E') goto yy643;
7063
0
    if (yych == 'e') goto yy643;
7064
0
    goto yy86;
7065
0
yy561:
7066
0
    YYDEBUG(561, *YYCURSOR);
7067
0
    yych = *++YYCURSOR;
7068
0
    if (yych == 'T') goto yy644;
7069
0
    if (yych == 't') goto yy644;
7070
0
    goto yy86;
7071
0
yy562:
7072
0
    YYDEBUG(562, *YYCURSOR);
7073
0
    ++YYCURSOR;
7074
0
    YYDEBUG(563, *YYCURSOR);
7075
0
    yyleng = YYCURSOR - SCNG(yy_text);
7076
0
#line 1666 "Zend/zend_language_scanner.l"
7077
0
    {
7078
0
  if (PARSER_MODE()) {
7079
0
    zend_throw_exception(zend_ce_parse_error, "The (real) cast has been removed, use (float) instead", 0);
7080
0
    RETURN_TOKEN(T_ERROR);
7081
0
  }
7082
0
  RETURN_TOKEN(T_DOUBLE_CAST);
7083
0
}
7084
0
#line 7085 "Zend/zend_language_scanner.c"
7085
0
yy564:
7086
0
    YYDEBUG(564, *YYCURSOR);
7087
0
    yych = *++YYCURSOR;
7088
0
    if (yych == 'G') goto yy646;
7089
0
    if (yych == 'g') goto yy646;
7090
0
    goto yy86;
7091
0
yy565:
7092
0
    YYDEBUG(565, *YYCURSOR);
7093
0
    ++YYCURSOR;
7094
0
    YYFILL(1);
7095
0
    yych = *YYCURSOR;
7096
0
    YYDEBUG(566, *YYCURSOR);
7097
0
    if (yych <= 0x1F) {
7098
0
      if (yych == '\t') goto yy565;
7099
0
      goto yy86;
7100
0
    } else {
7101
0
      if (yych <= ' ') goto yy565;
7102
0
      if (yych == ')') goto yy648;
7103
0
      goto yy86;
7104
0
    }
7105
0
yy567:
7106
0
    YYDEBUG(567, *YYCURSOR);
7107
0
    ++YYCURSOR;
7108
0
    YYDEBUG(568, *YYCURSOR);
7109
0
    yyleng = YYCURSOR - SCNG(yy_text);
7110
0
#line 1714 "Zend/zend_language_scanner.l"
7111
0
    {
7112
0
  RETURN_TOKEN(T_VOID_CAST);
7113
0
}
7114
0
#line 7115 "Zend/zend_language_scanner.c"
7115
0
yy569:
7116
0
    YYDEBUG(569, *YYCURSOR);
7117
0
    yych = *++YYCURSOR;
7118
0
    if (yych == '\n') goto yy466;
7119
0
    if (yych == '\r') goto yy468;
7120
0
    goto yy86;
7121
0
yy570:
7122
0
    YYDEBUG(570, *YYCURSOR);
7123
0
    yyaccept = 4;
7124
0
    yych = *(YYMARKER = ++YYCURSOR);
7125
0
    if (yych == 'C') goto yy650;
7126
0
    if (yych == 'c') goto yy650;
7127
0
    goto yy48;
7128
0
yy571:
7129
0
    YYDEBUG(571, *YYCURSOR);
7130
0
    yyaccept = 4;
7131
0
    yych = *(YYMARKER = ++YYCURSOR);
7132
0
    if (yych == 'L') goto yy651;
7133
0
    if (yych == 'l') goto yy651;
7134
0
    goto yy48;
7135
0
yy572:
7136
0
    YYDEBUG(572, *YYCURSOR);
7137
0
    yyaccept = 4;
7138
0
    yych = *(YYMARKER = ++YYCURSOR);
7139
0
    if (yych == 'U') goto yy652;
7140
0
    if (yych == 'u') goto yy652;
7141
0
    goto yy48;
7142
0
yy573:
7143
0
    YYDEBUG(573, *YYCURSOR);
7144
0
    yyaccept = 4;
7145
0
    yych = *(YYMARKER = ++YYCURSOR);
7146
0
    if (yych == 'E') goto yy653;
7147
0
    if (yych == 'e') goto yy653;
7148
0
    goto yy48;
7149
0
yy574:
7150
0
    YYDEBUG(574, *YYCURSOR);
7151
0
    yyaccept = 4;
7152
0
    yych = *(YYMARKER = ++YYCURSOR);
7153
0
    if (yych == 'T') goto yy655;
7154
0
    if (yych == 't') goto yy655;
7155
0
    goto yy48;
7156
0
yy575:
7157
0
    YYDEBUG(575, *YYCURSOR);
7158
0
    yyaccept = 51;
7159
0
    yych = *(YYMARKER = ++YYCURSOR);
7160
0
    if (yybm[256+yych] & 128) {
7161
0
      goto yy47;
7162
0
    }
7163
0
    if (yych == '\\') goto yy164;
7164
0
yy576:
7165
0
    YYDEBUG(576, *YYCURSOR);
7166
0
    yyleng = YYCURSOR - SCNG(yy_text);
7167
0
#line 1458 "Zend/zend_language_scanner.l"
7168
0
    {
7169
0
  RETURN_TOKEN_WITH_IDENT(T_ELSEIF);
7170
0
}
7171
0
#line 7172 "Zend/zend_language_scanner.c"
7172
0
yy577:
7173
0
    YYDEBUG(577, *YYCURSOR);
7174
0
    yyaccept = 4;
7175
0
    yych = *(YYMARKER = ++YYCURSOR);
7176
0
    if (yych == 'L') goto yy657;
7177
0
    if (yych == 'l') goto yy657;
7178
0
    goto yy48;
7179
0
yy578:
7180
0
    YYDEBUG(578, *YYCURSOR);
7181
0
    yyaccept = 52;
7182
0
    yych = *(YYMARKER = ++YYCURSOR);
7183
0
    if (yych <= '\\') {
7184
0
      if (yych <= 'D') {
7185
0
        if (yych <= '/') goto yy579;
7186
0
        if (yych <= '9') goto yy47;
7187
0
        if (yych >= 'A') goto yy47;
7188
0
      } else {
7189
0
        if (yych <= 'E') goto yy658;
7190
0
        if (yych <= 'Z') goto yy47;
7191
0
        if (yych >= '\\') goto yy164;
7192
0
      }
7193
0
    } else {
7194
0
      if (yych <= 'd') {
7195
0
        if (yych == '_') goto yy47;
7196
0
        if (yych >= 'a') goto yy47;
7197
0
      } else {
7198
0
        if (yych <= 'e') goto yy658;
7199
0
        if (yych <= 'z') goto yy47;
7200
0
        if (yych >= 0x80) goto yy47;
7201
0
      }
7202
0
    }
7203
0
yy579:
7204
0
    YYDEBUG(579, *YYCURSOR);
7205
0
    yyleng = YYCURSOR - SCNG(yy_text);
7206
0
#line 1486 "Zend/zend_language_scanner.l"
7207
0
    {
7208
0
  RETURN_TOKEN_WITH_IDENT(T_ENDFOR);
7209
0
}
7210
0
#line 7211 "Zend/zend_language_scanner.c"
7211
0
yy580:
7212
0
    YYDEBUG(580, *YYCURSOR);
7213
0
    yyaccept = 4;
7214
0
    yych = *(YYMARKER = ++YYCURSOR);
7215
0
    if (yych == 'T') goto yy659;
7216
0
    if (yych == 't') goto yy659;
7217
0
    goto yy48;
7218
0
yy581:
7219
0
    YYDEBUG(581, *YYCURSOR);
7220
0
    yyaccept = 4;
7221
0
    yych = *(YYMARKER = ++YYCURSOR);
7222
0
    if (yych == 'L') goto yy660;
7223
0
    if (yych == 'l') goto yy660;
7224
0
    goto yy48;
7225
0
yy582:
7226
0
    YYDEBUG(582, *YYCURSOR);
7227
0
    ++YYCURSOR;
7228
0
yy583:
7229
0
    YYDEBUG(583, *YYCURSOR);
7230
0
    yyleng = YYCURSOR - SCNG(yy_text);
7231
0
#line 1574 "Zend/zend_language_scanner.l"
7232
0
    {
7233
0
  yyless(4);
7234
0
  RETURN_TOKEN_WITH_IDENT(T_ENUM);
7235
0
}
7236
0
#line 7237 "Zend/zend_language_scanner.c"
7237
0
yy584:
7238
0
    YYDEBUG(584, *YYCURSOR);
7239
0
    yyaccept = 53;
7240
0
    yych = *(YYMARKER = ++YYCURSOR);
7241
0
    if (yych == 'X') goto yy661;
7242
0
    if (yych == 'x') goto yy661;
7243
0
    goto yy583;
7244
0
yy585:
7245
0
    YYDEBUG(585, *YYCURSOR);
7246
0
    yyaccept = 53;
7247
0
    yych = *(YYMARKER = ++YYCURSOR);
7248
0
    if (yych == 'M') goto yy662;
7249
0
    if (yych == 'm') goto yy662;
7250
0
    goto yy583;
7251
0
yy586:
7252
0
    YYDEBUG(586, *YYCURSOR);
7253
0
    ++YYCURSOR;
7254
0
    YYFILL(1);
7255
0
    yych = *YYCURSOR;
7256
0
    YYDEBUG(587, *YYCURSOR);
7257
0
    if (yych <= '\n') {
7258
0
      if (yych <= 0x00) goto yy86;
7259
0
      if (yych <= '\t') goto yy586;
7260
0
      goto yy495;
7261
0
    } else {
7262
0
      if (yych == '\r') goto yy495;
7263
0
      goto yy586;
7264
0
    }
7265
0
yy588:
7266
0
    YYDEBUG(588, *YYCURSOR);
7267
0
    ++YYCURSOR;
7268
0
    YYFILL(1);
7269
0
    yych = *YYCURSOR;
7270
0
    YYDEBUG(589, *YYCURSOR);
7271
0
    if (yych <= 'D') {
7272
0
      if (yych <= 0x1F) {
7273
0
        if (yych <= '\t') {
7274
0
          if (yych <= 0x00) goto yy86;
7275
0
          if (yych <= 0x08) goto yy586;
7276
0
          goto yy588;
7277
0
        } else {
7278
0
          if (yych <= '\n') goto yy495;
7279
0
          if (yych == '\r') goto yy495;
7280
0
          goto yy586;
7281
0
        }
7282
0
      } else {
7283
0
        if (yych <= '#') {
7284
0
          if (yych <= ' ') goto yy588;
7285
0
          if (yych <= '"') goto yy586;
7286
0
          goto yy663;
7287
0
        } else {
7288
0
          if (yych == '/') goto yy664;
7289
0
          if (yych <= '@') goto yy586;
7290
0
          goto yy665;
7291
0
        }
7292
0
      }
7293
0
    } else {
7294
0
      if (yych <= '`') {
7295
0
        if (yych <= 'I') {
7296
0
          if (yych <= 'E') goto yy666;
7297
0
          if (yych <= 'H') goto yy665;
7298
0
          goto yy667;
7299
0
        } else {
7300
0
          if (yych <= 'Z') goto yy665;
7301
0
          if (yych == '_') goto yy665;
7302
0
          goto yy586;
7303
0
        }
7304
0
      } else {
7305
0
        if (yych <= 'h') {
7306
0
          if (yych == 'e') goto yy666;
7307
0
          goto yy665;
7308
0
        } else {
7309
0
          if (yych <= 'i') goto yy667;
7310
0
          if (yych <= 'z') goto yy665;
7311
0
          if (yych <= 0x7F) goto yy586;
7312
0
          goto yy665;
7313
0
        }
7314
0
      }
7315
0
    }
7316
0
yy590:
7317
0
    YYDEBUG(590, *YYCURSOR);
7318
0
    ++YYCURSOR;
7319
0
    YYFILL(1);
7320
0
    yych = *YYCURSOR;
7321
0
    YYDEBUG(591, *YYCURSOR);
7322
0
    if (yych <= 0x00) goto yy86;
7323
0
    if (yych == '*') goto yy668;
7324
0
    goto yy590;
7325
0
yy592:
7326
0
    YYDEBUG(592, *YYCURSOR);
7327
0
    yyaccept = 4;
7328
0
    yych = *(YYMARKER = ++YYCURSOR);
7329
0
    if (yych == 'S') goto yy670;
7330
0
    if (yych == 's') goto yy670;
7331
0
    goto yy48;
7332
0
yy593:
7333
0
    YYDEBUG(593, *YYCURSOR);
7334
0
    yyaccept = 4;
7335
0
    yych = *(YYMARKER = ++YYCURSOR);
7336
0
    if (yych == 'Y') goto yy672;
7337
0
    if (yych == 'y') goto yy672;
7338
0
    goto yy48;
7339
0
yy594:
7340
0
    YYDEBUG(594, *YYCURSOR);
7341
0
    yyaccept = 4;
7342
0
    yych = *(YYMARKER = ++YYCURSOR);
7343
0
    if (yych == 'H') goto yy674;
7344
0
    if (yych == 'h') goto yy674;
7345
0
    goto yy48;
7346
0
yy595:
7347
0
    YYDEBUG(595, *YYCURSOR);
7348
0
    yyaccept = 4;
7349
0
    yych = *(YYMARKER = ++YYCURSOR);
7350
0
    if (yych == 'O') goto yy676;
7351
0
    if (yych == 'o') goto yy676;
7352
0
    goto yy48;
7353
0
yy596:
7354
0
    YYDEBUG(596, *YYCURSOR);
7355
0
    yyaccept = 54;
7356
0
    yych = *(YYMARKER = ++YYCURSOR);
7357
0
    if (yybm[256+yych] & 128) {
7358
0
      goto yy47;
7359
0
    }
7360
0
    if (yych == '\\') goto yy164;
7361
0
yy597:
7362
0
    YYDEBUG(597, *YYCURSOR);
7363
0
    yyleng = YYCURSOR - SCNG(yy_text);
7364
0
#line 1750 "Zend/zend_language_scanner.l"
7365
0
    {
7366
0
  RETURN_TOKEN_WITH_IDENT(T_GLOBAL);
7367
0
}
7368
0
#line 7369 "Zend/zend_language_scanner.c"
7369
0
yy598:
7370
0
    YYDEBUG(598, *YYCURSOR);
7371
0
    yyaccept = 4;
7372
0
    yych = *(YYMARKER = ++YYCURSOR);
7373
0
    if (yych == 'E') goto yy677;
7374
0
    if (yych == 'e') goto yy677;
7375
0
    goto yy48;
7376
0
yy599:
7377
0
    YYDEBUG(599, *YYCURSOR);
7378
0
    yyaccept = 4;
7379
0
    yych = *(YYMARKER = ++YYCURSOR);
7380
0
    if (yych == 'E') goto yy678;
7381
0
    if (yych == 'e') goto yy678;
7382
0
    goto yy48;
7383
0
yy600:
7384
0
    YYDEBUG(600, *YYCURSOR);
7385
0
    yyaccept = 4;
7386
0
    yych = *(YYMARKER = ++YYCURSOR);
7387
0
    if (yych == 'C') goto yy680;
7388
0
    if (yych == 'c') goto yy680;
7389
0
    goto yy48;
7390
0
yy601:
7391
0
    YYDEBUG(601, *YYCURSOR);
7392
0
    yyaccept = 4;
7393
0
    yych = *(YYMARKER = ++YYCURSOR);
7394
0
    if (yych == 'D') goto yy681;
7395
0
    if (yych == 'd') goto yy681;
7396
0
    goto yy48;
7397
0
yy602:
7398
0
    YYDEBUG(602, *YYCURSOR);
7399
0
    yyaccept = 4;
7400
0
    yych = *(YYMARKER = ++YYCURSOR);
7401
0
    if (yych == 'A') goto yy682;
7402
0
    if (yych == 'a') goto yy682;
7403
0
    goto yy48;
7404
0
yy603:
7405
0
    YYDEBUG(603, *YYCURSOR);
7406
0
    yyaccept = 4;
7407
0
    yych = *(YYMARKER = ++YYCURSOR);
7408
0
    if (yych == 'A') goto yy683;
7409
0
    if (yych == 'a') goto yy683;
7410
0
    goto yy48;
7411
0
yy604:
7412
0
    YYDEBUG(604, *YYCURSOR);
7413
0
    yyaccept = 4;
7414
0
    yych = *(YYMARKER = ++YYCURSOR);
7415
0
    if (yych == 'E') goto yy684;
7416
0
    if (yych == 'e') goto yy684;
7417
0
    goto yy48;
7418
0
yy605:
7419
0
    YYDEBUG(605, *YYCURSOR);
7420
0
    yyaccept = 4;
7421
0
    yych = *(YYMARKER = ++YYCURSOR);
7422
0
    if (yych == 'T') goto yy686;
7423
0
    if (yych == 't') goto yy686;
7424
0
    goto yy48;
7425
0
yy606:
7426
0
    YYDEBUG(606, *YYCURSOR);
7427
0
    yyaccept = 55;
7428
0
    yych = *(YYMARKER = ++YYCURSOR);
7429
0
    if (yybm[256+yych] & 128) {
7430
0
      goto yy47;
7431
0
    }
7432
0
    if (yych == '(') goto yy687;
7433
0
    if (yych == '\\') goto yy164;
7434
0
yy607:
7435
0
    YYDEBUG(607, *YYCURSOR);
7436
0
    yyleng = YYCURSOR - SCNG(yy_text);
7437
0
#line 1798 "Zend/zend_language_scanner.l"
7438
0
    {
7439
0
  RETURN_TOKEN_WITH_IDENT(T_PUBLIC);
7440
0
}
7441
0
#line 7442 "Zend/zend_language_scanner.c"
7442
0
yy608:
7443
0
    YYDEBUG(608, *YYCURSOR);
7444
0
    yyaccept = 4;
7445
0
    yych = *(YYMARKER = ++YYCURSOR);
7446
0
    if (yych == 'L') goto yy688;
7447
0
    if (yych == 'l') goto yy688;
7448
0
    goto yy48;
7449
0
yy609:
7450
0
    YYDEBUG(609, *YYCURSOR);
7451
0
    yyaccept = 4;
7452
0
    yych = *(YYMARKER = ++YYCURSOR);
7453
0
    if (yych == 'E') goto yy689;
7454
0
    if (yych == 'e') goto yy689;
7455
0
    goto yy48;
7456
0
yy610:
7457
0
    YYDEBUG(610, *YYCURSOR);
7458
0
    yyaccept = 56;
7459
0
    yych = *(YYMARKER = ++YYCURSOR);
7460
0
    if (yybm[256+yych] & 128) {
7461
0
      goto yy47;
7462
0
    }
7463
0
    if (yych == '\\') goto yy164;
7464
0
yy611:
7465
0
    YYDEBUG(611, *YYCURSOR);
7466
0
    yyleng = YYCURSOR - SCNG(yy_text);
7467
0
#line 1419 "Zend/zend_language_scanner.l"
7468
0
    {
7469
0
  RETURN_TOKEN_WITH_IDENT(T_RETURN);
7470
0
}
7471
0
#line 7472 "Zend/zend_language_scanner.c"
7472
0
yy612:
7473
0
    YYDEBUG(612, *YYCURSOR);
7474
0
    yyaccept = 57;
7475
0
    yych = *(YYMARKER = ++YYCURSOR);
7476
0
    if (yybm[256+yych] & 128) {
7477
0
      goto yy47;
7478
0
    }
7479
0
    if (yych == '\\') goto yy164;
7480
0
yy613:
7481
0
    YYDEBUG(613, *YYCURSOR);
7482
0
    yyleng = YYCURSOR - SCNG(yy_text);
7483
0
#line 1766 "Zend/zend_language_scanner.l"
7484
0
    {
7485
0
  RETURN_TOKEN_WITH_IDENT(T_STATIC);
7486
0
}
7487
0
#line 7488 "Zend/zend_language_scanner.c"
7488
0
yy614:
7489
0
    YYDEBUG(614, *YYCURSOR);
7490
0
    yyaccept = 58;
7491
0
    yych = *(YYMARKER = ++YYCURSOR);
7492
0
    if (yybm[256+yych] & 128) {
7493
0
      goto yy47;
7494
0
    }
7495
0
    if (yych == '\\') goto yy164;
7496
0
yy615:
7497
0
    YYDEBUG(615, *YYCURSOR);
7498
0
    yyleng = YYCURSOR - SCNG(yy_text);
7499
0
#line 1514 "Zend/zend_language_scanner.l"
7500
0
    {
7501
0
  RETURN_TOKEN_WITH_IDENT(T_SWITCH);
7502
0
}
7503
0
#line 7504 "Zend/zend_language_scanner.c"
7504
0
yy616:
7505
0
    YYDEBUG(616, *YYCURSOR);
7506
0
    ++YYCURSOR;
7507
0
    YYFILL(5);
7508
0
    yych = *YYCURSOR;
7509
0
    YYDEBUG(617, *YYCURSOR);
7510
0
    if (yych <= '"') {
7511
0
      if (yych <= '\f') {
7512
0
        if (yych <= 0x08) goto yy86;
7513
0
        if (yych <= '\n') goto yy616;
7514
0
        goto yy86;
7515
0
      } else {
7516
0
        if (yych <= '\r') goto yy616;
7517
0
        if (yych == ' ') goto yy616;
7518
0
        goto yy86;
7519
0
      }
7520
0
    } else {
7521
0
      if (yych <= 'E') {
7522
0
        if (yych <= '#') goto yy618;
7523
0
        if (yych == '/') goto yy619;
7524
0
        goto yy86;
7525
0
      } else {
7526
0
        if (yych <= 'F') goto yy691;
7527
0
        if (yych == 'f') goto yy691;
7528
0
        goto yy86;
7529
0
      }
7530
0
    }
7531
0
yy618:
7532
0
    YYDEBUG(618, *YYCURSOR);
7533
0
    ++YYCURSOR;
7534
0
    YYFILL(1);
7535
0
    yych = *YYCURSOR;
7536
0
    if (yych <= '\f') {
7537
0
      if (yych <= 0x00) goto yy86;
7538
0
      if (yych == '\n') goto yy694;
7539
0
      goto yy692;
7540
0
    } else {
7541
0
      if (yych <= '\r') goto yy694;
7542
0
      if (yych == '[') goto yy86;
7543
0
      goto yy692;
7544
0
    }
7545
0
yy619:
7546
0
    YYDEBUG(619, *YYCURSOR);
7547
0
    ++YYCURSOR;
7548
0
    YYFILL(1);
7549
0
    yych = *YYCURSOR;
7550
0
    if (yych == '*') goto yy696;
7551
0
    if (yych == '/') goto yy692;
7552
0
    goto yy86;
7553
0
yy620:
7554
0
    YYDEBUG(620, *YYCURSOR);
7555
0
    yyaccept = 4;
7556
0
    yych = *(YYMARKER = ++YYCURSOR);
7557
0
    if (yych == 'S') goto yy698;
7558
0
    if (yych == 's') goto yy698;
7559
0
    goto yy48;
7560
0
yy621:
7561
0
    YYDEBUG(621, *YYCURSOR);
7562
0
    yyaccept = 4;
7563
0
    yych = *(YYMARKER = ++YYCURSOR);
7564
0
    if (yych == '_') goto yy699;
7565
0
    goto yy48;
7566
0
yy622:
7567
0
    YYDEBUG(622, *YYCURSOR);
7568
0
    yyaccept = 4;
7569
0
    yych = *(YYMARKER = ++YYCURSOR);
7570
0
    if (yych == '_') goto yy701;
7571
0
    goto yy48;
7572
0
yy623:
7573
0
    YYDEBUG(623, *YYCURSOR);
7574
0
    yyaccept = 4;
7575
0
    yych = *(YYMARKER = ++YYCURSOR);
7576
0
    if (yych == 'T') goto yy702;
7577
0
    if (yych == 't') goto yy702;
7578
0
    goto yy48;
7579
0
yy624:
7580
0
    YYDEBUG(624, *YYCURSOR);
7581
0
    yyaccept = 4;
7582
0
    yych = *(YYMARKER = ++YYCURSOR);
7583
0
    if (yych == '_') goto yy703;
7584
0
    goto yy48;
7585
0
yy625:
7586
0
    YYDEBUG(625, *YYCURSOR);
7587
0
    yyaccept = 4;
7588
0
    yych = *(YYMARKER = ++YYCURSOR);
7589
0
    if (yych == '_') goto yy704;
7590
0
    goto yy48;
7591
0
yy626:
7592
0
    YYDEBUG(626, *YYCURSOR);
7593
0
    yyaccept = 4;
7594
0
    yych = *(YYMARKER = ++YYCURSOR);
7595
0
    if (yych == 'O') goto yy705;
7596
0
    if (yych == 'o') goto yy705;
7597
0
    goto yy48;
7598
0
yy627:
7599
0
    YYDEBUG(627, *YYCURSOR);
7600
0
    yyaccept = 4;
7601
0
    yych = *(YYMARKER = ++YYCURSOR);
7602
0
    if (yych == 'S') goto yy706;
7603
0
    if (yych == 's') goto yy706;
7604
0
    goto yy48;
7605
0
yy628:
7606
0
    YYDEBUG(628, *YYCURSOR);
7607
0
    yyaccept = 4;
7608
0
    yych = *(YYMARKER = ++YYCURSOR);
7609
0
    if (yych == 'E') goto yy707;
7610
0
    if (yych == 'e') goto yy707;
7611
0
    goto yy48;
7612
0
yy629:
7613
0
    YYDEBUG(629, *YYCURSOR);
7614
0
    yyaccept = 4;
7615
0
    yych = *(YYMARKER = ++YYCURSOR);
7616
0
    if (yych == 'T') goto yy708;
7617
0
    if (yych == 't') goto yy708;
7618
0
    goto yy48;
7619
0
yy630:
7620
0
    YYDEBUG(630, *YYCURSOR);
7621
0
    ++YYCURSOR;
7622
0
    YYFILL(1);
7623
0
    yych = *YYCURSOR;
7624
0
    if (yych <= '\r') {
7625
0
      if (yych <= '\t') {
7626
0
        if (yych <= 0x00) goto yy86;
7627
0
        goto yy443;
7628
0
      } else {
7629
0
        if (yych <= '\n') goto yy709;
7630
0
        if (yych <= '\f') goto yy443;
7631
0
        goto yy709;
7632
0
      }
7633
0
    } else {
7634
0
      if (yych <= '*') {
7635
0
        if (yych <= ')') goto yy443;
7636
0
        goto yy547;
7637
0
      } else {
7638
0
        if (yych == '[') goto yy230;
7639
0
        goto yy443;
7640
0
      }
7641
0
    }
7642
0
yy631:
7643
0
    YYDEBUG(631, *YYCURSOR);
7644
0
    yyaccept = 26;
7645
0
    YYMARKER = ++YYCURSOR;
7646
0
    YYFILL(1);
7647
0
    yych = *YYCURSOR;
7648
0
    if (yybm[0+yych] & 4) {
7649
0
      goto yy230;
7650
0
    }
7651
0
    if (yych <= 0x00) goto yy89;
7652
0
    goto yy355;
7653
0
yy632:
7654
0
    YYDEBUG(632, *YYCURSOR);
7655
0
    ++YYCURSOR;
7656
0
    YYFILL(1);
7657
0
    yych = *YYCURSOR;
7658
0
    if (yybm[0+yych] & 64) {
7659
0
      goto yy355;
7660
0
    }
7661
0
    if (yych <= 0x00) goto yy86;
7662
0
    if (yych == '.') goto yy711;
7663
0
    goto yy230;
7664
0
yy633:
7665
0
    YYDEBUG(633, *YYCURSOR);
7666
0
    ++YYCURSOR;
7667
0
    YYFILL(1);
7668
0
    yych = *YYCURSOR;
7669
0
    if (yych <= '*') {
7670
0
      if (yych <= 0x00) goto yy86;
7671
0
      if (yych <= ')') goto yy230;
7672
0
      goto yy712;
7673
0
    } else {
7674
0
      if (yych == '/') goto yy443;
7675
0
      goto yy230;
7676
0
    }
7677
0
yy634:
7678
0
    YYDEBUG(634, *YYCURSOR);
7679
0
    ++YYCURSOR;
7680
0
    YYDEBUG(635, *YYCURSOR);
7681
0
    yyleng = YYCURSOR - SCNG(yy_text);
7682
0
#line 1688 "Zend/zend_language_scanner.l"
7683
0
    {
7684
0
  RETURN_TOKEN(T_ARRAY_CAST);
7685
0
}
7686
0
#line 7687 "Zend/zend_language_scanner.c"
7687
0
yy636:
7688
0
    YYDEBUG(636, *YYCURSOR);
7689
0
    ++YYCURSOR;
7690
0
    YYFILL(1);
7691
0
    yych = *YYCURSOR;
7692
0
    YYDEBUG(637, *YYCURSOR);
7693
0
    if (yych <= 0x1F) {
7694
0
      if (yych == '\t') goto yy636;
7695
0
      goto yy86;
7696
0
    } else {
7697
0
      if (yych <= ' ') goto yy636;
7698
0
      if (yych == ')') goto yy713;
7699
0
      goto yy86;
7700
0
    }
7701
0
yy638:
7702
0
    YYDEBUG(638, *YYCURSOR);
7703
0
    yych = *++YYCURSOR;
7704
0
    if (yych == 'N') goto yy715;
7705
0
    if (yych == 'n') goto yy715;
7706
0
    goto yy86;
7707
0
yy639:
7708
0
    YYDEBUG(639, *YYCURSOR);
7709
0
    ++YYCURSOR;
7710
0
    YYFILL(1);
7711
0
    yych = *YYCURSOR;
7712
0
    YYDEBUG(640, *YYCURSOR);
7713
0
    if (yych <= 0x1F) {
7714
0
      if (yych == '\t') goto yy639;
7715
0
      goto yy86;
7716
0
    } else {
7717
0
      if (yych <= ' ') goto yy639;
7718
0
      if (yych == ')') goto yy717;
7719
0
      goto yy86;
7720
0
    }
7721
0
yy641:
7722
0
    YYDEBUG(641, *YYCURSOR);
7723
0
    ++YYCURSOR;
7724
0
    YYDEBUG(642, *YYCURSOR);
7725
0
    yyleng = YYCURSOR - SCNG(yy_text);
7726
0
#line 1652 "Zend/zend_language_scanner.l"
7727
0
    {
7728
0
  RETURN_TOKEN(T_DOUBLE_CAST);
7729
0
}
7730
0
#line 7731 "Zend/zend_language_scanner.c"
7731
0
yy643:
7732
0
    YYDEBUG(643, *YYCURSOR);
7733
0
    yych = *++YYCURSOR;
7734
0
    if (yych == 'R') goto yy719;
7735
0
    if (yych == 'r') goto yy719;
7736
0
    goto yy86;
7737
0
yy644:
7738
0
    YYDEBUG(644, *YYCURSOR);
7739
0
    ++YYCURSOR;
7740
0
    YYFILL(1);
7741
0
    yych = *YYCURSOR;
7742
0
    YYDEBUG(645, *YYCURSOR);
7743
0
    if (yych <= 0x1F) {
7744
0
      if (yych == '\t') goto yy644;
7745
0
      goto yy86;
7746
0
    } else {
7747
0
      if (yych <= ' ') goto yy644;
7748
0
      if (yych == ')') goto yy721;
7749
0
      goto yy86;
7750
0
    }
7751
0
yy646:
7752
0
    YYDEBUG(646, *YYCURSOR);
7753
0
    ++YYCURSOR;
7754
0
    YYFILL(1);
7755
0
    yych = *YYCURSOR;
7756
0
    YYDEBUG(647, *YYCURSOR);
7757
0
    if (yych <= 0x1F) {
7758
0
      if (yych == '\t') goto yy646;
7759
0
      goto yy86;
7760
0
    } else {
7761
0
      if (yych <= ' ') goto yy646;
7762
0
      if (yych == ')') goto yy723;
7763
0
      goto yy86;
7764
0
    }
7765
0
yy648:
7766
0
    YYDEBUG(648, *YYCURSOR);
7767
0
    ++YYCURSOR;
7768
0
    YYDEBUG(649, *YYCURSOR);
7769
0
    yyleng = YYCURSOR - SCNG(yy_text);
7770
0
#line 1710 "Zend/zend_language_scanner.l"
7771
0
    {
7772
0
  RETURN_TOKEN(T_UNSET_CAST);
7773
0
}
7774
0
#line 7775 "Zend/zend_language_scanner.c"
7775
0
yy650:
7776
0
    YYDEBUG(650, *YYCURSOR);
7777
0
    yyaccept = 4;
7778
0
    yych = *(YYMARKER = ++YYCURSOR);
7779
0
    if (yych == 'T') goto yy725;
7780
0
    if (yych == 't') goto yy725;
7781
0
    goto yy48;
7782
0
yy651:
7783
0
    YYDEBUG(651, *YYCURSOR);
7784
0
    yyaccept = 4;
7785
0
    yych = *(YYMARKER = ++YYCURSOR);
7786
0
    if (yych == 'E') goto yy727;
7787
0
    if (yych == 'e') goto yy727;
7788
0
    goto yy48;
7789
0
yy652:
7790
0
    YYDEBUG(652, *YYCURSOR);
7791
0
    yyaccept = 4;
7792
0
    yych = *(YYMARKER = ++YYCURSOR);
7793
0
    if (yych == 'E') goto yy729;
7794
0
    if (yych == 'e') goto yy729;
7795
0
    goto yy48;
7796
0
yy653:
7797
0
    YYDEBUG(653, *YYCURSOR);
7798
0
    yyaccept = 59;
7799
0
    yych = *(YYMARKER = ++YYCURSOR);
7800
0
    if (yybm[256+yych] & 128) {
7801
0
      goto yy47;
7802
0
    }
7803
0
    if (yych == '\\') goto yy164;
7804
0
yy654:
7805
0
    YYDEBUG(654, *YYCURSOR);
7806
0
    yyleng = YYCURSOR - SCNG(yy_text);
7807
0
#line 1498 "Zend/zend_language_scanner.l"
7808
0
    {
7809
0
  RETURN_TOKEN_WITH_IDENT(T_DECLARE);
7810
0
}
7811
0
#line 7812 "Zend/zend_language_scanner.c"
7812
0
yy655:
7813
0
    YYDEBUG(655, *YYCURSOR);
7814
0
    yyaccept = 60;
7815
0
    yych = *(YYMARKER = ++YYCURSOR);
7816
0
    if (yybm[256+yych] & 128) {
7817
0
      goto yy47;
7818
0
    }
7819
0
    if (yych == '\\') goto yy164;
7820
0
yy656:
7821
0
    YYDEBUG(656, *YYCURSOR);
7822
0
    yyleng = YYCURSOR - SCNG(yy_text);
7823
0
#line 1530 "Zend/zend_language_scanner.l"
7824
0
    {
7825
0
  RETURN_TOKEN_WITH_IDENT(T_DEFAULT);
7826
0
}
7827
0
#line 7828 "Zend/zend_language_scanner.c"
7828
0
yy657:
7829
0
    YYDEBUG(657, *YYCURSOR);
7830
0
    yyaccept = 4;
7831
0
    yych = *(YYMARKER = ++YYCURSOR);
7832
0
    if (yych == 'A') goto yy731;
7833
0
    if (yych == 'a') goto yy731;
7834
0
    goto yy48;
7835
0
yy658:
7836
0
    YYDEBUG(658, *YYCURSOR);
7837
0
    yyaccept = 4;
7838
0
    yych = *(YYMARKER = ++YYCURSOR);
7839
0
    if (yych == 'A') goto yy732;
7840
0
    if (yych == 'a') goto yy732;
7841
0
    goto yy48;
7842
0
yy659:
7843
0
    YYDEBUG(659, *YYCURSOR);
7844
0
    yyaccept = 4;
7845
0
    yych = *(YYMARKER = ++YYCURSOR);
7846
0
    if (yych == 'C') goto yy733;
7847
0
    if (yych == 'c') goto yy733;
7848
0
    goto yy48;
7849
0
yy660:
7850
0
    YYDEBUG(660, *YYCURSOR);
7851
0
    yyaccept = 4;
7852
0
    yych = *(YYMARKER = ++YYCURSOR);
7853
0
    if (yych == 'E') goto yy734;
7854
0
    if (yych == 'e') goto yy734;
7855
0
    goto yy48;
7856
0
yy661:
7857
0
    YYDEBUG(661, *YYCURSOR);
7858
0
    yych = *++YYCURSOR;
7859
0
    if (yych == 'T') goto yy736;
7860
0
    if (yych == 't') goto yy736;
7861
0
    goto yy86;
7862
0
yy662:
7863
0
    YYDEBUG(662, *YYCURSOR);
7864
0
    yych = *++YYCURSOR;
7865
0
    if (yych == 'P') goto yy737;
7866
0
    if (yych == 'p') goto yy737;
7867
0
    goto yy86;
7868
0
yy663:
7869
0
    YYDEBUG(663, *YYCURSOR);
7870
0
    ++YYCURSOR;
7871
0
    YYFILL(1);
7872
0
    yych = *YYCURSOR;
7873
0
    if (yych <= '\n') {
7874
0
      if (yych <= 0x00) goto yy86;
7875
0
      if (yych <= '\t') goto yy586;
7876
0
      goto yy588;
7877
0
    } else {
7878
0
      if (yych == '\r') goto yy588;
7879
0
      goto yy586;
7880
0
    }
7881
0
yy664:
7882
0
    YYDEBUG(664, *YYCURSOR);
7883
0
    ++YYCURSOR;
7884
0
    YYFILL(1);
7885
0
    yych = *YYCURSOR;
7886
0
    if (yych <= '\f') {
7887
0
      if (yych <= 0x00) goto yy86;
7888
0
      if (yych == '\n') goto yy495;
7889
0
      goto yy586;
7890
0
    } else {
7891
0
      if (yych <= '\r') goto yy495;
7892
0
      if (yych == '*') goto yy738;
7893
0
      goto yy586;
7894
0
    }
7895
0
yy665:
7896
0
    YYDEBUG(665, *YYCURSOR);
7897
0
    yyaccept = 53;
7898
0
    YYMARKER = ++YYCURSOR;
7899
0
    YYFILL(1);
7900
0
    yych = *YYCURSOR;
7901
0
    if (yych <= '\n') {
7902
0
      if (yych <= 0x00) goto yy583;
7903
0
      if (yych <= '\t') goto yy586;
7904
0
      goto yy495;
7905
0
    } else {
7906
0
      if (yych == '\r') goto yy495;
7907
0
      goto yy586;
7908
0
    }
7909
0
yy666:
7910
0
    YYDEBUG(666, *YYCURSOR);
7911
0
    yyaccept = 53;
7912
0
    YYMARKER = ++YYCURSOR;
7913
0
    YYFILL(1);
7914
0
    yych = *YYCURSOR;
7915
0
    if (yych <= '\r') {
7916
0
      if (yych <= '\t') {
7917
0
        if (yych <= 0x00) goto yy583;
7918
0
        goto yy586;
7919
0
      } else {
7920
0
        if (yych <= '\n') goto yy495;
7921
0
        if (yych <= '\f') goto yy586;
7922
0
        goto yy495;
7923
0
      }
7924
0
    } else {
7925
0
      if (yych <= 'X') {
7926
0
        if (yych <= 'W') goto yy586;
7927
0
        goto yy740;
7928
0
      } else {
7929
0
        if (yych == 'x') goto yy740;
7930
0
        goto yy586;
7931
0
      }
7932
0
    }
7933
0
yy667:
7934
0
    YYDEBUG(667, *YYCURSOR);
7935
0
    yyaccept = 53;
7936
0
    YYMARKER = ++YYCURSOR;
7937
0
    YYFILL(1);
7938
0
    yych = *YYCURSOR;
7939
0
    if (yych <= '\r') {
7940
0
      if (yych <= '\t') {
7941
0
        if (yych <= 0x00) goto yy583;
7942
0
        goto yy586;
7943
0
      } else {
7944
0
        if (yych <= '\n') goto yy495;
7945
0
        if (yych <= '\f') goto yy586;
7946
0
        goto yy495;
7947
0
      }
7948
0
    } else {
7949
0
      if (yych <= 'M') {
7950
0
        if (yych <= 'L') goto yy586;
7951
0
        goto yy741;
7952
0
      } else {
7953
0
        if (yych == 'm') goto yy741;
7954
0
        goto yy586;
7955
0
      }
7956
0
    }
7957
0
yy668:
7958
0
    YYDEBUG(668, *YYCURSOR);
7959
0
    ++YYCURSOR;
7960
0
    YYFILL(1);
7961
0
    yych = *YYCURSOR;
7962
0
    YYDEBUG(669, *YYCURSOR);
7963
0
    if (yych <= '*') {
7964
0
      if (yych <= 0x00) goto yy86;
7965
0
      if (yych <= ')') goto yy590;
7966
0
      goto yy668;
7967
0
    } else {
7968
0
      if (yych == '/') goto yy495;
7969
0
      goto yy590;
7970
0
    }
7971
0
yy670:
7972
0
    YYDEBUG(670, *YYCURSOR);
7973
0
    yyaccept = 61;
7974
0
    yych = *(YYMARKER = ++YYCURSOR);
7975
0
    if (yybm[256+yych] & 128) {
7976
0
      goto yy47;
7977
0
    }
7978
0
    if (yych == '\\') goto yy164;
7979
0
yy671:
7980
0
    YYDEBUG(671, *YYCURSOR);
7981
0
    yyleng = YYCURSOR - SCNG(yy_text);
7982
0
#line 1579 "Zend/zend_language_scanner.l"
7983
0
    {
7984
0
  RETURN_TOKEN_WITH_IDENT(T_EXTENDS);
7985
0
}
7986
0
#line 7987 "Zend/zend_language_scanner.c"
7987
0
yy672:
7988
0
    YYDEBUG(672, *YYCURSOR);
7989
0
    yyaccept = 62;
7990
0
    yych = *(YYMARKER = ++YYCURSOR);
7991
0
    if (yybm[256+yych] & 128) {
7992
0
      goto yy47;
7993
0
    }
7994
0
    if (yych == '\\') goto yy164;
7995
0
yy673:
7996
0
    YYDEBUG(673, *YYCURSOR);
7997
0
    yyleng = YYCURSOR - SCNG(yy_text);
7998
0
#line 1446 "Zend/zend_language_scanner.l"
7999
0
    {
8000
0
  RETURN_TOKEN_WITH_IDENT(T_FINALLY);
8001
0
}
8002
0
#line 8003 "Zend/zend_language_scanner.c"
8003
0
yy674:
8004
0
    YYDEBUG(674, *YYCURSOR);
8005
0
    yyaccept = 63;
8006
0
    yych = *(YYMARKER = ++YYCURSOR);
8007
0
    if (yybm[256+yych] & 128) {
8008
0
      goto yy47;
8009
0
    }
8010
0
    if (yych == '\\') goto yy164;
8011
0
yy675:
8012
0
    YYDEBUG(675, *YYCURSOR);
8013
0
    yyleng = YYCURSOR - SCNG(yy_text);
8014
0
#line 1490 "Zend/zend_language_scanner.l"
8015
0
    {
8016
0
  RETURN_TOKEN_WITH_IDENT(T_FOREACH);
8017
0
}
8018
0
#line 8019 "Zend/zend_language_scanner.c"
8019
0
yy676:
8020
0
    YYDEBUG(676, *YYCURSOR);
8021
0
    yyaccept = 4;
8022
0
    yych = *(YYMARKER = ++YYCURSOR);
8023
0
    if (yych == 'N') goto yy742;
8024
0
    if (yych == 'n') goto yy742;
8025
0
    goto yy48;
8026
0
yy677:
8027
0
    YYDEBUG(677, *YYCURSOR);
8028
0
    yyaccept = 4;
8029
0
    yych = *(YYMARKER = ++YYCURSOR);
8030
0
    if (yych == 'N') goto yy744;
8031
0
    if (yych == 'n') goto yy744;
8032
0
    goto yy48;
8033
0
yy678:
8034
0
    YYDEBUG(678, *YYCURSOR);
8035
0
    yyaccept = 64;
8036
0
    yych = *(YYMARKER = ++YYCURSOR);
8037
0
    if (yych <= '\\') {
8038
0
      if (yych <= '@') {
8039
0
        if (yych <= '/') goto yy679;
8040
0
        if (yych <= '9') goto yy47;
8041
0
      } else {
8042
0
        if (yych <= 'Z') goto yy47;
8043
0
        if (yych >= '\\') goto yy164;
8044
0
      }
8045
0
    } else {
8046
0
      if (yych <= '`') {
8047
0
        if (yych == '_') goto yy745;
8048
0
      } else {
8049
0
        if (yych <= 'z') goto yy47;
8050
0
        if (yych >= 0x80) goto yy47;
8051
0
      }
8052
0
    }
8053
0
yy679:
8054
0
    YYDEBUG(679, *YYCURSOR);
8055
0
    yyleng = YYCURSOR - SCNG(yy_text);
8056
0
#line 1722 "Zend/zend_language_scanner.l"
8057
0
    {
8058
0
  RETURN_TOKEN_WITH_IDENT(T_INCLUDE);
8059
0
}
8060
0
#line 8061 "Zend/zend_language_scanner.c"
8061
0
yy680:
8062
0
    YYDEBUG(680, *YYCURSOR);
8063
0
    yyaccept = 4;
8064
0
    yych = *(YYMARKER = ++YYCURSOR);
8065
0
    if (yych == 'E') goto yy746;
8066
0
    if (yych == 'e') goto yy746;
8067
0
    goto yy48;
8068
0
yy681:
8069
0
    YYDEBUG(681, *YYCURSOR);
8070
0
    yyaccept = 4;
8071
0
    yych = *(YYMARKER = ++YYCURSOR);
8072
0
    if (yych == 'O') goto yy747;
8073
0
    if (yych == 'o') goto yy747;
8074
0
    goto yy48;
8075
0
yy682:
8076
0
    YYDEBUG(682, *YYCURSOR);
8077
0
    yyaccept = 4;
8078
0
    yych = *(YYMARKER = ++YYCURSOR);
8079
0
    if (yych == 'C') goto yy748;
8080
0
    if (yych == 'c') goto yy748;
8081
0
    goto yy48;
8082
0
yy683:
8083
0
    YYDEBUG(683, *YYCURSOR);
8084
0
    yyaccept = 4;
8085
0
    yych = *(YYMARKER = ++YYCURSOR);
8086
0
    if (yych == 'C') goto yy749;
8087
0
    if (yych == 'c') goto yy749;
8088
0
    goto yy48;
8089
0
yy684:
8090
0
    YYDEBUG(684, *YYCURSOR);
8091
0
    yyaccept = 65;
8092
0
    yych = *(YYMARKER = ++YYCURSOR);
8093
0
    if (yybm[256+yych] & 128) {
8094
0
      goto yy47;
8095
0
    }
8096
0
    if (yych == '(') goto yy750;
8097
0
    if (yych == '\\') goto yy164;
8098
0
yy685:
8099
0
    YYDEBUG(685, *YYCURSOR);
8100
0
    yyleng = YYCURSOR - SCNG(yy_text);
8101
0
#line 1778 "Zend/zend_language_scanner.l"
8102
0
    {
8103
0
  RETURN_TOKEN_WITH_IDENT(T_PRIVATE);
8104
0
}
8105
0
#line 8106 "Zend/zend_language_scanner.c"
8106
0
yy686:
8107
0
    YYDEBUG(686, *YYCURSOR);
8108
0
    yyaccept = 4;
8109
0
    yych = *(YYMARKER = ++YYCURSOR);
8110
0
    if (yych == 'E') goto yy751;
8111
0
    if (yych == 'e') goto yy751;
8112
0
    goto yy48;
8113
0
yy687:
8114
0
    YYDEBUG(687, *YYCURSOR);
8115
0
    yych = *++YYCURSOR;
8116
0
    if (yych == 'S') goto yy752;
8117
0
    if (yych == 's') goto yy752;
8118
0
    goto yy86;
8119
0
yy688:
8120
0
    YYDEBUG(688, *YYCURSOR);
8121
0
    yyaccept = 4;
8122
0
    yych = *(YYMARKER = ++YYCURSOR);
8123
0
    if (yych == 'Y') goto yy753;
8124
0
    if (yych == 'y') goto yy753;
8125
0
    goto yy48;
8126
0
yy689:
8127
0
    YYDEBUG(689, *YYCURSOR);
8128
0
    yyaccept = 66;
8129
0
    yych = *(YYMARKER = ++YYCURSOR);
8130
0
    if (yych <= '\\') {
8131
0
      if (yych <= '@') {
8132
0
        if (yych <= '/') goto yy690;
8133
0
        if (yych <= '9') goto yy47;
8134
0
      } else {
8135
0
        if (yych <= 'Z') goto yy47;
8136
0
        if (yych >= '\\') goto yy164;
8137
0
      }
8138
0
    } else {
8139
0
      if (yych <= '`') {
8140
0
        if (yych == '_') goto yy755;
8141
0
      } else {
8142
0
        if (yych <= 'z') goto yy47;
8143
0
        if (yych >= 0x80) goto yy47;
8144
0
      }
8145
0
    }
8146
0
yy690:
8147
0
    YYDEBUG(690, *YYCURSOR);
8148
0
    yyleng = YYCURSOR - SCNG(yy_text);
8149
0
#line 1730 "Zend/zend_language_scanner.l"
8150
0
    {
8151
0
  RETURN_TOKEN_WITH_IDENT(T_REQUIRE);
8152
0
}
8153
0
#line 8154 "Zend/zend_language_scanner.c"
8154
0
yy691:
8155
0
    YYDEBUG(691, *YYCURSOR);
8156
0
    yych = *++YYCURSOR;
8157
0
    if (yych == 'R') goto yy756;
8158
0
    if (yych == 'r') goto yy756;
8159
0
    goto yy86;
8160
0
yy692:
8161
0
    YYDEBUG(692, *YYCURSOR);
8162
0
    ++YYCURSOR;
8163
0
    YYFILL(1);
8164
0
    yych = *YYCURSOR;
8165
0
    YYDEBUG(693, *YYCURSOR);
8166
0
    if (yych <= '\n') {
8167
0
      if (yych <= 0x00) goto yy86;
8168
0
      if (yych <= '\t') goto yy692;
8169
0
      goto yy616;
8170
0
    } else {
8171
0
      if (yych == '\r') goto yy616;
8172
0
      goto yy692;
8173
0
    }
8174
0
yy694:
8175
0
    YYDEBUG(694, *YYCURSOR);
8176
0
    ++YYCURSOR;
8177
0
    YYFILL(1);
8178
0
    yych = *YYCURSOR;
8179
0
    YYDEBUG(695, *YYCURSOR);
8180
0
    if (yych <= ' ') {
8181
0
      if (yych <= '\n') {
8182
0
        if (yych <= 0x00) goto yy86;
8183
0
        if (yych <= 0x08) goto yy692;
8184
0
        if (yych <= '\t') goto yy694;
8185
0
        goto yy616;
8186
0
      } else {
8187
0
        if (yych == '\r') goto yy616;
8188
0
        if (yych <= 0x1F) goto yy692;
8189
0
        goto yy694;
8190
0
      }
8191
0
    } else {
8192
0
      if (yych <= '/') {
8193
0
        if (yych == '#') goto yy757;
8194
0
        if (yych <= '.') goto yy692;
8195
0
        goto yy758;
8196
0
      } else {
8197
0
        if (yych <= 'F') {
8198
0
          if (yych <= 'E') goto yy692;
8199
0
          goto yy759;
8200
0
        } else {
8201
0
          if (yych == 'f') goto yy759;
8202
0
          goto yy692;
8203
0
        }
8204
0
      }
8205
0
    }
8206
0
yy696:
8207
0
    YYDEBUG(696, *YYCURSOR);
8208
0
    ++YYCURSOR;
8209
0
    YYFILL(1);
8210
0
    yych = *YYCURSOR;
8211
0
    YYDEBUG(697, *YYCURSOR);
8212
0
    if (yych <= 0x00) goto yy86;
8213
0
    if (yych == '*') goto yy760;
8214
0
    goto yy696;
8215
0
yy698:
8216
0
    YYDEBUG(698, *YYCURSOR);
8217
0
    yyaccept = 4;
8218
0
    yych = *(YYMARKER = ++YYCURSOR);
8219
0
    if (yych == '_') goto yy762;
8220
0
    goto yy48;
8221
0
yy699:
8222
0
    YYDEBUG(699, *YYCURSOR);
8223
0
    yyaccept = 67;
8224
0
    yych = *(YYMARKER = ++YYCURSOR);
8225
0
    if (yybm[256+yych] & 128) {
8226
0
      goto yy47;
8227
0
    }
8228
0
    if (yych == '\\') goto yy164;
8229
0
yy700:
8230
0
    YYDEBUG(700, *YYCURSOR);
8231
0
    yyleng = YYCURSOR - SCNG(yy_text);
8232
0
#line 2281 "Zend/zend_language_scanner.l"
8233
0
    {
8234
0
  RETURN_TOKEN_WITH_IDENT(T_DIR);
8235
0
}
8236
0
#line 8237 "Zend/zend_language_scanner.c"
8237
0
yy701:
8238
0
    YYDEBUG(701, *YYCURSOR);
8239
0
    yyaccept = 4;
8240
0
    yych = *(YYMARKER = ++YYCURSOR);
8241
0
    if (yych == '_') goto yy763;
8242
0
    goto yy48;
8243
0
yy702:
8244
0
    YYDEBUG(702, *YYCURSOR);
8245
0
    yyaccept = 4;
8246
0
    yych = *(YYMARKER = ++YYCURSOR);
8247
0
    if (yych == 'I') goto yy765;
8248
0
    if (yych == 'i') goto yy765;
8249
0
    goto yy48;
8250
0
yy703:
8251
0
    YYDEBUG(703, *YYCURSOR);
8252
0
    yyaccept = 4;
8253
0
    yych = *(YYMARKER = ++YYCURSOR);
8254
0
    if (yych == 'C') goto yy766;
8255
0
    if (yych == 'c') goto yy766;
8256
0
    goto yy48;
8257
0
yy704:
8258
0
    YYDEBUG(704, *YYCURSOR);
8259
0
    yyaccept = 4;
8260
0
    yych = *(YYMARKER = ++YYCURSOR);
8261
0
    if (yych == '_') goto yy767;
8262
0
    goto yy48;
8263
0
yy705:
8264
0
    YYDEBUG(705, *YYCURSOR);
8265
0
    yyaccept = 4;
8266
0
    yych = *(YYMARKER = ++YYCURSOR);
8267
0
    if (yych == 'D') goto yy769;
8268
0
    if (yych == 'd') goto yy769;
8269
0
    goto yy48;
8270
0
yy706:
8271
0
    YYDEBUG(706, *YYCURSOR);
8272
0
    yyaccept = 4;
8273
0
    yych = *(YYMARKER = ++YYCURSOR);
8274
0
    if (yych == 'P') goto yy770;
8275
0
    if (yych == 'p') goto yy770;
8276
0
    goto yy48;
8277
0
yy707:
8278
0
    YYDEBUG(707, *YYCURSOR);
8279
0
    yyaccept = 4;
8280
0
    yych = *(YYMARKER = ++YYCURSOR);
8281
0
    if (yych == 'R') goto yy771;
8282
0
    if (yych == 'r') goto yy771;
8283
0
    goto yy48;
8284
0
yy708:
8285
0
    YYDEBUG(708, *YYCURSOR);
8286
0
    yyaccept = 4;
8287
0
    yych = *(YYMARKER = ++YYCURSOR);
8288
0
    if (yych == '_') goto yy772;
8289
0
    goto yy48;
8290
0
yy709:
8291
0
    YYDEBUG(709, *YYCURSOR);
8292
0
    ++YYCURSOR;
8293
0
    YYFILL(1);
8294
0
    yych = *YYCURSOR;
8295
0
    YYDEBUG(710, *YYCURSOR);
8296
0
    if (yych <= ' ') {
8297
0
      if (yych <= '\n') {
8298
0
        if (yych <= 0x00) goto yy86;
8299
0
        if (yych <= 0x08) goto yy443;
8300
0
        if (yych <= '\t') goto yy709;
8301
0
        goto yy545;
8302
0
      } else {
8303
0
        if (yych == '\r') goto yy545;
8304
0
        if (yych <= 0x1F) goto yy443;
8305
0
        goto yy709;
8306
0
      }
8307
0
    } else {
8308
0
      if (yych <= ')') {
8309
0
        if (yych <= '"') goto yy443;
8310
0
        if (yych <= '#') goto yy773;
8311
0
        if (yych <= '$') goto yy774;
8312
0
        goto yy443;
8313
0
      } else {
8314
0
        if (yych <= '-') {
8315
0
          if (yych <= '*') goto yy547;
8316
0
          goto yy443;
8317
0
        } else {
8318
0
          if (yych <= '.') goto yy775;
8319
0
          if (yych <= '/') goto yy776;
8320
0
          goto yy443;
8321
0
        }
8322
0
      }
8323
0
    }
8324
0
yy711:
8325
0
    YYDEBUG(711, *YYCURSOR);
8326
0
    ++YYCURSOR;
8327
0
    YYFILL(1);
8328
0
    yych = *YYCURSOR;
8329
0
    if (yybm[0+yych] & 64) {
8330
0
      goto yy355;
8331
0
    }
8332
0
    if (yych <= 0x00) goto yy86;
8333
0
    if (yych == '.') goto yy631;
8334
0
    goto yy230;
8335
0
yy712:
8336
0
    YYDEBUG(712, *YYCURSOR);
8337
0
    ++YYCURSOR;
8338
0
    YYFILL(1);
8339
0
    yych = *YYCURSOR;
8340
0
    if (yybm[0+yych] & 64) {
8341
0
      goto yy355;
8342
0
    }
8343
0
    if (yych <= 0x00) goto yy86;
8344
0
    if (yych == '/') goto yy545;
8345
0
    goto yy230;
8346
0
yy713:
8347
0
    YYDEBUG(713, *YYCURSOR);
8348
0
    ++YYCURSOR;
8349
0
    YYDEBUG(714, *YYCURSOR);
8350
0
    yyleng = YYCURSOR - SCNG(yy_text);
8351
0
#line 1678 "Zend/zend_language_scanner.l"
8352
0
    {
8353
0
  if (PARSER_MODE()) {
8354
0
    zend_error(E_DEPRECATED, "Non-canonical cast (binary) is deprecated, use the (string) cast instead");
8355
0
    if (EG(exception)) {
8356
0
      RETURN_TOKEN(T_ERROR);
8357
0
    }
8358
0
  }
8359
0
  RETURN_TOKEN(T_STRING_CAST);
8360
0
}
8361
0
#line 8362 "Zend/zend_language_scanner.c"
8362
0
yy715:
8363
0
    YYDEBUG(715, *YYCURSOR);
8364
0
    ++YYCURSOR;
8365
0
    YYFILL(1);
8366
0
    yych = *YYCURSOR;
8367
0
    YYDEBUG(716, *YYCURSOR);
8368
0
    if (yych <= 0x1F) {
8369
0
      if (yych == '\t') goto yy715;
8370
0
      goto yy86;
8371
0
    } else {
8372
0
      if (yych <= ' ') goto yy715;
8373
0
      if (yych == ')') goto yy777;
8374
0
      goto yy86;
8375
0
    }
8376
0
yy717:
8377
0
    YYDEBUG(717, *YYCURSOR);
8378
0
    ++YYCURSOR;
8379
0
    YYDEBUG(718, *YYCURSOR);
8380
0
    yyleng = YYCURSOR - SCNG(yy_text);
8381
0
#line 1656 "Zend/zend_language_scanner.l"
8382
0
    {
8383
0
  if (PARSER_MODE()) {
8384
0
    zend_error(E_DEPRECATED, "Non-canonical cast (double) is deprecated, use the (float) cast instead");
8385
0
    if (EG(exception)) {
8386
0
      RETURN_TOKEN(T_ERROR);
8387
0
    }
8388
0
  }
8389
0
  RETURN_TOKEN(T_DOUBLE_CAST);
8390
0
}
8391
0
#line 8392 "Zend/zend_language_scanner.c"
8392
0
yy719:
8393
0
    YYDEBUG(719, *YYCURSOR);
8394
0
    ++YYCURSOR;
8395
0
    YYFILL(1);
8396
0
    yych = *YYCURSOR;
8397
0
    YYDEBUG(720, *YYCURSOR);
8398
0
    if (yych <= 0x1F) {
8399
0
      if (yych == '\t') goto yy719;
8400
0
      goto yy86;
8401
0
    } else {
8402
0
      if (yych <= ' ') goto yy719;
8403
0
      if (yych == ')') goto yy779;
8404
0
      goto yy86;
8405
0
    }
8406
0
yy721:
8407
0
    YYDEBUG(721, *YYCURSOR);
8408
0
    ++YYCURSOR;
8409
0
    YYDEBUG(722, *YYCURSOR);
8410
0
    yyleng = YYCURSOR - SCNG(yy_text);
8411
0
#line 1692 "Zend/zend_language_scanner.l"
8412
0
    {
8413
0
  RETURN_TOKEN(T_OBJECT_CAST);
8414
0
}
8415
0
#line 8416 "Zend/zend_language_scanner.c"
8416
0
yy723:
8417
0
    YYDEBUG(723, *YYCURSOR);
8418
0
    ++YYCURSOR;
8419
0
    YYDEBUG(724, *YYCURSOR);
8420
0
    yyleng = YYCURSOR - SCNG(yy_text);
8421
0
#line 1674 "Zend/zend_language_scanner.l"
8422
0
    {
8423
0
  RETURN_TOKEN(T_STRING_CAST);
8424
0
}
8425
0
#line 8426 "Zend/zend_language_scanner.c"
8426
0
yy725:
8427
0
    YYDEBUG(725, *YYCURSOR);
8428
0
    yyaccept = 68;
8429
0
    yych = *(YYMARKER = ++YYCURSOR);
8430
0
    if (yybm[256+yych] & 128) {
8431
0
      goto yy47;
8432
0
    }
8433
0
    if (yych == '\\') goto yy164;
8434
0
yy726:
8435
0
    YYDEBUG(726, *YYCURSOR);
8436
0
    yyleng = YYCURSOR - SCNG(yy_text);
8437
0
#line 1770 "Zend/zend_language_scanner.l"
8438
0
    {
8439
0
  RETURN_TOKEN_WITH_IDENT(T_ABSTRACT);
8440
0
}
8441
0
#line 8442 "Zend/zend_language_scanner.c"
8442
0
yy727:
8443
0
    YYDEBUG(727, *YYCURSOR);
8444
0
    yyaccept = 69;
8445
0
    yych = *(YYMARKER = ++YYCURSOR);
8446
0
    if (yybm[256+yych] & 128) {
8447
0
      goto yy47;
8448
0
    }
8449
0
    if (yych == '\\') goto yy164;
8450
0
yy728:
8451
0
    YYDEBUG(728, *YYCURSOR);
8452
0
    yyleng = YYCURSOR - SCNG(yy_text);
8453
0
#line 1822 "Zend/zend_language_scanner.l"
8454
0
    {
8455
0
  RETURN_TOKEN_WITH_IDENT(T_CALLABLE);
8456
0
}
8457
0
#line 8458 "Zend/zend_language_scanner.c"
8458
0
yy729:
8459
0
    YYDEBUG(729, *YYCURSOR);
8460
0
    yyaccept = 70;
8461
0
    yych = *(YYMARKER = ++YYCURSOR);
8462
0
    if (yybm[256+yych] & 128) {
8463
0
      goto yy47;
8464
0
    }
8465
0
    if (yych == '\\') goto yy164;
8466
0
yy730:
8467
0
    YYDEBUG(730, *YYCURSOR);
8468
0
    yyleng = YYCURSOR - SCNG(yy_text);
8469
0
#line 1538 "Zend/zend_language_scanner.l"
8470
0
    {
8471
0
  RETURN_TOKEN_WITH_IDENT(T_CONTINUE);
8472
0
}
8473
0
#line 8474 "Zend/zend_language_scanner.c"
8474
0
yy731:
8475
0
    YYDEBUG(731, *YYCURSOR);
8476
0
    yyaccept = 4;
8477
0
    yych = *(YYMARKER = ++YYCURSOR);
8478
0
    if (yych == 'R') goto yy781;
8479
0
    if (yych == 'r') goto yy781;
8480
0
    goto yy48;
8481
0
yy732:
8482
0
    YYDEBUG(732, *YYCURSOR);
8483
0
    yyaccept = 4;
8484
0
    yych = *(YYMARKER = ++YYCURSOR);
8485
0
    if (yych == 'C') goto yy782;
8486
0
    if (yych == 'c') goto yy782;
8487
0
    goto yy48;
8488
0
yy733:
8489
0
    YYDEBUG(733, *YYCURSOR);
8490
0
    yyaccept = 4;
8491
0
    yych = *(YYMARKER = ++YYCURSOR);
8492
0
    if (yych == 'H') goto yy783;
8493
0
    if (yych == 'h') goto yy783;
8494
0
    goto yy48;
8495
0
yy734:
8496
0
    YYDEBUG(734, *YYCURSOR);
8497
0
    yyaccept = 71;
8498
0
    yych = *(YYMARKER = ++YYCURSOR);
8499
0
    if (yybm[256+yych] & 128) {
8500
0
      goto yy47;
8501
0
    }
8502
0
    if (yych == '\\') goto yy164;
8503
0
yy735:
8504
0
    YYDEBUG(735, *YYCURSOR);
8505
0
    yyleng = YYCURSOR - SCNG(yy_text);
8506
0
#line 1474 "Zend/zend_language_scanner.l"
8507
0
    {
8508
0
  RETURN_TOKEN_WITH_IDENT(T_ENDWHILE);
8509
0
}
8510
0
#line 8511 "Zend/zend_language_scanner.c"
8511
0
yy736:
8512
0
    YYDEBUG(736, *YYCURSOR);
8513
0
    yych = *++YYCURSOR;
8514
0
    if (yych == 'E') goto yy785;
8515
0
    if (yych == 'e') goto yy785;
8516
0
    goto yy86;
8517
0
yy737:
8518
0
    YYDEBUG(737, *YYCURSOR);
8519
0
    yych = *++YYCURSOR;
8520
0
    if (yych == 'L') goto yy786;
8521
0
    if (yych == 'l') goto yy786;
8522
0
    goto yy86;
8523
0
yy738:
8524
0
    YYDEBUG(738, *YYCURSOR);
8525
0
    ++YYCURSOR;
8526
0
    YYFILL(1);
8527
0
    yych = *YYCURSOR;
8528
0
    YYDEBUG(739, *YYCURSOR);
8529
0
    if (yych <= '\f') {
8530
0
      if (yych <= 0x00) goto yy86;
8531
0
      if (yych == '\n') goto yy787;
8532
0
      goto yy738;
8533
0
    } else {
8534
0
      if (yych <= '\r') goto yy787;
8535
0
      if (yych == '*') goto yy789;
8536
0
      goto yy738;
8537
0
    }
8538
0
yy740:
8539
0
    YYDEBUG(740, *YYCURSOR);
8540
0
    ++YYCURSOR;
8541
0
    YYFILL(1);
8542
0
    yych = *YYCURSOR;
8543
0
    if (yych <= '\r') {
8544
0
      if (yych <= '\t') {
8545
0
        if (yych <= 0x00) goto yy86;
8546
0
        goto yy586;
8547
0
      } else {
8548
0
        if (yych <= '\n') goto yy495;
8549
0
        if (yych <= '\f') goto yy586;
8550
0
        goto yy495;
8551
0
      }
8552
0
    } else {
8553
0
      if (yych <= 'T') {
8554
0
        if (yych <= 'S') goto yy586;
8555
0
        goto yy791;
8556
0
      } else {
8557
0
        if (yych == 't') goto yy791;
8558
0
        goto yy586;
8559
0
      }
8560
0
    }
8561
0
yy741:
8562
0
    YYDEBUG(741, *YYCURSOR);
8563
0
    ++YYCURSOR;
8564
0
    YYFILL(1);
8565
0
    yych = *YYCURSOR;
8566
0
    if (yych <= '\r') {
8567
0
      if (yych <= '\t') {
8568
0
        if (yych <= 0x00) goto yy86;
8569
0
        goto yy586;
8570
0
      } else {
8571
0
        if (yych <= '\n') goto yy495;
8572
0
        if (yych <= '\f') goto yy586;
8573
0
        goto yy495;
8574
0
      }
8575
0
    } else {
8576
0
      if (yych <= 'P') {
8577
0
        if (yych <= 'O') goto yy586;
8578
0
        goto yy792;
8579
0
      } else {
8580
0
        if (yych == 'p') goto yy792;
8581
0
        goto yy586;
8582
0
      }
8583
0
    }
8584
0
yy742:
8585
0
    YYDEBUG(742, *YYCURSOR);
8586
0
    yyaccept = 72;
8587
0
    yych = *(YYMARKER = ++YYCURSOR);
8588
0
    if (yybm[256+yych] & 128) {
8589
0
      goto yy47;
8590
0
    }
8591
0
    if (yych == '\\') goto yy164;
8592
0
yy743:
8593
0
    YYDEBUG(743, *YYCURSOR);
8594
0
    yyleng = YYCURSOR - SCNG(yy_text);
8595
0
#line 1411 "Zend/zend_language_scanner.l"
8596
0
    {
8597
0
  RETURN_TOKEN_WITH_IDENT(T_FUNCTION);
8598
0
}
8599
0
#line 8600 "Zend/zend_language_scanner.c"
8600
0
yy744:
8601
0
    YYDEBUG(744, *YYCURSOR);
8602
0
    yyaccept = 4;
8603
0
    yych = *(YYMARKER = ++YYCURSOR);
8604
0
    if (yych == 'T') goto yy793;
8605
0
    if (yych == 't') goto yy793;
8606
0
    goto yy48;
8607
0
yy745:
8608
0
    YYDEBUG(745, *YYCURSOR);
8609
0
    yyaccept = 4;
8610
0
    yych = *(YYMARKER = ++YYCURSOR);
8611
0
    if (yych == 'O') goto yy794;
8612
0
    if (yych == 'o') goto yy794;
8613
0
    goto yy48;
8614
0
yy746:
8615
0
    YYDEBUG(746, *YYCURSOR);
8616
0
    yyaccept = 4;
8617
0
    yych = *(YYMARKER = ++YYCURSOR);
8618
0
    if (yych == 'O') goto yy795;
8619
0
    if (yych == 'o') goto yy795;
8620
0
    goto yy48;
8621
0
yy747:
8622
0
    YYDEBUG(747, *YYCURSOR);
8623
0
    yyaccept = 4;
8624
0
    yych = *(YYMARKER = ++YYCURSOR);
8625
0
    if (yych == 'F') goto yy796;
8626
0
    if (yych == 'f') goto yy796;
8627
0
    goto yy48;
8628
0
yy748:
8629
0
    YYDEBUG(748, *YYCURSOR);
8630
0
    yyaccept = 4;
8631
0
    yych = *(YYMARKER = ++YYCURSOR);
8632
0
    if (yych == 'E') goto yy798;
8633
0
    if (yych == 'e') goto yy798;
8634
0
    goto yy48;
8635
0
yy749:
8636
0
    YYDEBUG(749, *YYCURSOR);
8637
0
    yyaccept = 4;
8638
0
    yych = *(YYMARKER = ++YYCURSOR);
8639
0
    if (yych == 'E') goto yy800;
8640
0
    if (yych == 'e') goto yy800;
8641
0
    goto yy48;
8642
0
yy750:
8643
0
    YYDEBUG(750, *YYCURSOR);
8644
0
    yych = *++YYCURSOR;
8645
0
    if (yych == 'S') goto yy802;
8646
0
    if (yych == 's') goto yy802;
8647
0
    goto yy86;
8648
0
yy751:
8649
0
    YYDEBUG(751, *YYCURSOR);
8650
0
    yyaccept = 4;
8651
0
    yych = *(YYMARKER = ++YYCURSOR);
8652
0
    if (yych == 'D') goto yy803;
8653
0
    if (yych == 'd') goto yy803;
8654
0
    goto yy48;
8655
0
yy752:
8656
0
    YYDEBUG(752, *YYCURSOR);
8657
0
    yych = *++YYCURSOR;
8658
0
    if (yych == 'E') goto yy805;
8659
0
    if (yych == 'e') goto yy805;
8660
0
    goto yy86;
8661
0
yy753:
8662
0
    YYDEBUG(753, *YYCURSOR);
8663
0
    yyaccept = 73;
8664
0
    yych = *(YYMARKER = ++YYCURSOR);
8665
0
    if (yybm[256+yych] & 128) {
8666
0
      goto yy47;
8667
0
    }
8668
0
    if (yych == '\\') goto yy164;
8669
0
yy754:
8670
0
    YYDEBUG(754, *YYCURSOR);
8671
0
    yyleng = YYCURSOR - SCNG(yy_text);
8672
0
#line 1802 "Zend/zend_language_scanner.l"
8673
0
    {
8674
0
  RETURN_TOKEN_WITH_IDENT(T_READONLY);
8675
0
}
8676
0
#line 8677 "Zend/zend_language_scanner.c"
8677
0
yy755:
8678
0
    YYDEBUG(755, *YYCURSOR);
8679
0
    yyaccept = 4;
8680
0
    yych = *(YYMARKER = ++YYCURSOR);
8681
0
    if (yych == 'O') goto yy806;
8682
0
    if (yych == 'o') goto yy806;
8683
0
    goto yy48;
8684
0
yy756:
8685
0
    YYDEBUG(756, *YYCURSOR);
8686
0
    yych = *++YYCURSOR;
8687
0
    if (yych == 'O') goto yy807;
8688
0
    if (yych == 'o') goto yy807;
8689
0
    goto yy86;
8690
0
yy757:
8691
0
    YYDEBUG(757, *YYCURSOR);
8692
0
    ++YYCURSOR;
8693
0
    YYFILL(1);
8694
0
    yych = *YYCURSOR;
8695
0
    if (yych <= '\n') {
8696
0
      if (yych <= 0x00) goto yy86;
8697
0
      if (yych <= '\t') goto yy692;
8698
0
      goto yy694;
8699
0
    } else {
8700
0
      if (yych == '\r') goto yy694;
8701
0
      goto yy692;
8702
0
    }
8703
0
yy758:
8704
0
    YYDEBUG(758, *YYCURSOR);
8705
0
    ++YYCURSOR;
8706
0
    YYFILL(1);
8707
0
    yych = *YYCURSOR;
8708
0
    if (yych <= '\f') {
8709
0
      if (yych <= 0x00) goto yy86;
8710
0
      if (yych == '\n') goto yy616;
8711
0
      goto yy692;
8712
0
    } else {
8713
0
      if (yych <= '\r') goto yy616;
8714
0
      if (yych == '*') goto yy808;
8715
0
      goto yy692;
8716
0
    }
8717
0
yy759:
8718
0
    YYDEBUG(759, *YYCURSOR);
8719
0
    ++YYCURSOR;
8720
0
    YYFILL(1);
8721
0
    yych = *YYCURSOR;
8722
0
    if (yych <= '\r') {
8723
0
      if (yych <= '\t') {
8724
0
        if (yych <= 0x00) goto yy86;
8725
0
        goto yy692;
8726
0
      } else {
8727
0
        if (yych <= '\n') goto yy616;
8728
0
        if (yych <= '\f') goto yy692;
8729
0
        goto yy616;
8730
0
      }
8731
0
    } else {
8732
0
      if (yych <= 'R') {
8733
0
        if (yych <= 'Q') goto yy692;
8734
0
        goto yy810;
8735
0
      } else {
8736
0
        if (yych == 'r') goto yy810;
8737
0
        goto yy692;
8738
0
      }
8739
0
    }
8740
0
yy760:
8741
0
    YYDEBUG(760, *YYCURSOR);
8742
0
    ++YYCURSOR;
8743
0
    YYFILL(1);
8744
0
    yych = *YYCURSOR;
8745
0
    YYDEBUG(761, *YYCURSOR);
8746
0
    if (yych <= '*') {
8747
0
      if (yych <= 0x00) goto yy86;
8748
0
      if (yych <= ')') goto yy696;
8749
0
      goto yy760;
8750
0
    } else {
8751
0
      if (yych == '/') goto yy616;
8752
0
      goto yy696;
8753
0
    }
8754
0
yy762:
8755
0
    YYDEBUG(762, *YYCURSOR);
8756
0
    yyaccept = 4;
8757
0
    yych = *(YYMARKER = ++YYCURSOR);
8758
0
    if (yych == '_') goto yy811;
8759
0
    goto yy48;
8760
0
yy763:
8761
0
    YYDEBUG(763, *YYCURSOR);
8762
0
    yyaccept = 74;
8763
0
    yych = *(YYMARKER = ++YYCURSOR);
8764
0
    if (yybm[256+yych] & 128) {
8765
0
      goto yy47;
8766
0
    }
8767
0
    if (yych == '\\') goto yy164;
8768
0
yy764:
8769
0
    YYDEBUG(764, *YYCURSOR);
8770
0
    yyleng = YYCURSOR - SCNG(yy_text);
8771
0
#line 2277 "Zend/zend_language_scanner.l"
8772
0
    {
8773
0
  RETURN_TOKEN_WITH_IDENT(T_FILE);
8774
0
}
8775
0
#line 8776 "Zend/zend_language_scanner.c"
8776
0
yy765:
8777
0
    YYDEBUG(765, *YYCURSOR);
8778
0
    yyaccept = 4;
8779
0
    yych = *(YYMARKER = ++YYCURSOR);
8780
0
    if (yych == 'O') goto yy813;
8781
0
    if (yych == 'o') goto yy813;
8782
0
    goto yy48;
8783
0
yy766:
8784
0
    YYDEBUG(766, *YYCURSOR);
8785
0
    yyaccept = 4;
8786
0
    yych = *(YYMARKER = ++YYCURSOR);
8787
0
    if (yych == 'O') goto yy814;
8788
0
    if (yych == 'o') goto yy814;
8789
0
    goto yy48;
8790
0
yy767:
8791
0
    YYDEBUG(767, *YYCURSOR);
8792
0
    yyaccept = 75;
8793
0
    yych = *(YYMARKER = ++YYCURSOR);
8794
0
    if (yybm[256+yych] & 128) {
8795
0
      goto yy47;
8796
0
    }
8797
0
    if (yych == '\\') goto yy164;
8798
0
yy768:
8799
0
    YYDEBUG(768, *YYCURSOR);
8800
0
    yyleng = YYCURSOR - SCNG(yy_text);
8801
0
#line 2273 "Zend/zend_language_scanner.l"
8802
0
    {
8803
0
  RETURN_TOKEN_WITH_IDENT(T_LINE);
8804
0
}
8805
0
#line 8806 "Zend/zend_language_scanner.c"
8806
0
yy769:
8807
0
    YYDEBUG(769, *YYCURSOR);
8808
0
    yyaccept = 4;
8809
0
    yych = *(YYMARKER = ++YYCURSOR);
8810
0
    if (yych == '_') goto yy815;
8811
0
    goto yy48;
8812
0
yy770:
8813
0
    YYDEBUG(770, *YYCURSOR);
8814
0
    yyaccept = 4;
8815
0
    yych = *(YYMARKER = ++YYCURSOR);
8816
0
    if (yych == 'A') goto yy816;
8817
0
    if (yych == 'a') goto yy816;
8818
0
    goto yy48;
8819
0
yy771:
8820
0
    YYDEBUG(771, *YYCURSOR);
8821
0
    yyaccept = 4;
8822
0
    yych = *(YYMARKER = ++YYCURSOR);
8823
0
    if (yych == 'T') goto yy817;
8824
0
    if (yych == 't') goto yy817;
8825
0
    goto yy48;
8826
0
yy772:
8827
0
    YYDEBUG(772, *YYCURSOR);
8828
0
    yyaccept = 4;
8829
0
    yych = *(YYMARKER = ++YYCURSOR);
8830
0
    if (yych == '_') goto yy818;
8831
0
    goto yy48;
8832
0
yy773:
8833
0
    YYDEBUG(773, *YYCURSOR);
8834
0
    ++YYCURSOR;
8835
0
    YYFILL(1);
8836
0
    yych = *YYCURSOR;
8837
0
    if (yybm[0+yych] & 128) {
8838
0
      goto yy443;
8839
0
    }
8840
0
    if (yych <= 0x00) goto yy86;
8841
0
    if (yych <= '\r') goto yy709;
8842
0
    goto yy547;
8843
0
yy774:
8844
0
    YYDEBUG(774, *YYCURSOR);
8845
0
    yyaccept = 26;
8846
0
    YYMARKER = ++YYCURSOR;
8847
0
    YYFILL(1);
8848
0
    yych = *YYCURSOR;
8849
0
    if (yybm[0+yych] & 128) {
8850
0
      goto yy443;
8851
0
    }
8852
0
    if (yych <= 0x00) goto yy89;
8853
0
    if (yych <= '\r') goto yy545;
8854
0
    goto yy547;
8855
0
yy775:
8856
0
    YYDEBUG(775, *YYCURSOR);
8857
0
    ++YYCURSOR;
8858
0
    YYFILL(1);
8859
0
    yych = *YYCURSOR;
8860
0
    if (yych <= '\r') {
8861
0
      if (yych <= '\t') {
8862
0
        if (yych <= 0x00) goto yy86;
8863
0
        goto yy443;
8864
0
      } else {
8865
0
        if (yych <= '\n') goto yy545;
8866
0
        if (yych <= '\f') goto yy443;
8867
0
        goto yy545;
8868
0
      }
8869
0
    } else {
8870
0
      if (yych <= '*') {
8871
0
        if (yych <= ')') goto yy443;
8872
0
        goto yy547;
8873
0
      } else {
8874
0
        if (yych == '.') goto yy820;
8875
0
        goto yy443;
8876
0
      }
8877
0
    }
8878
0
yy776:
8879
0
    YYDEBUG(776, *YYCURSOR);
8880
0
    ++YYCURSOR;
8881
0
    YYFILL(1);
8882
0
    yych = *YYCURSOR;
8883
0
    if (yybm[0+yych] & 128) {
8884
0
      goto yy443;
8885
0
    }
8886
0
    if (yych <= 0x00) goto yy86;
8887
0
    if (yych <= '\r') goto yy545;
8888
0
    goto yy821;
8889
0
yy777:
8890
0
    YYDEBUG(777, *YYCURSOR);
8891
0
    ++YYCURSOR;
8892
0
    YYDEBUG(778, *YYCURSOR);
8893
0
    yyleng = YYCURSOR - SCNG(yy_text);
8894
0
#line 1700 "Zend/zend_language_scanner.l"
8895
0
    {
8896
0
  if (PARSER_MODE()) {
8897
0
    zend_error(E_DEPRECATED, "Non-canonical cast (boolean) is deprecated, use the (bool) cast instead");
8898
0
    if (EG(exception)) {
8899
0
      RETURN_TOKEN(T_ERROR);
8900
0
    }
8901
0
  }
8902
0
  RETURN_TOKEN(T_BOOL_CAST);
8903
0
}
8904
0
#line 8905 "Zend/zend_language_scanner.c"
8905
0
yy779:
8906
0
    YYDEBUG(779, *YYCURSOR);
8907
0
    ++YYCURSOR;
8908
0
    YYDEBUG(780, *YYCURSOR);
8909
0
    yyleng = YYCURSOR - SCNG(yy_text);
8910
0
#line 1642 "Zend/zend_language_scanner.l"
8911
0
    {
8912
0
  if (PARSER_MODE()) {
8913
0
    zend_error(E_DEPRECATED, "Non-canonical cast (integer) is deprecated, use the (int) cast instead");
8914
0
    if (EG(exception)) {
8915
0
      RETURN_TOKEN(T_ERROR);
8916
0
    }
8917
0
  }
8918
0
  RETURN_TOKEN(T_INT_CAST);
8919
0
}
8920
0
#line 8921 "Zend/zend_language_scanner.c"
8921
0
yy781:
8922
0
    YYDEBUG(781, *YYCURSOR);
8923
0
    yyaccept = 4;
8924
0
    yych = *(YYMARKER = ++YYCURSOR);
8925
0
    if (yych == 'E') goto yy822;
8926
0
    if (yych == 'e') goto yy822;
8927
0
    goto yy48;
8928
0
yy782:
8929
0
    YYDEBUG(782, *YYCURSOR);
8930
0
    yyaccept = 4;
8931
0
    yych = *(YYMARKER = ++YYCURSOR);
8932
0
    if (yych == 'H') goto yy824;
8933
0
    if (yych == 'h') goto yy824;
8934
0
    goto yy48;
8935
0
yy783:
8936
0
    YYDEBUG(783, *YYCURSOR);
8937
0
    yyaccept = 76;
8938
0
    yych = *(YYMARKER = ++YYCURSOR);
8939
0
    if (yybm[256+yych] & 128) {
8940
0
      goto yy47;
8941
0
    }
8942
0
    if (yych == '\\') goto yy164;
8943
0
yy784:
8944
0
    YYDEBUG(784, *YYCURSOR);
8945
0
    yyleng = YYCURSOR - SCNG(yy_text);
8946
0
#line 1522 "Zend/zend_language_scanner.l"
8947
0
    {
8948
0
  RETURN_TOKEN_WITH_IDENT(T_ENDSWITCH);
8949
0
}
8950
0
#line 8951 "Zend/zend_language_scanner.c"
8951
0
yy785:
8952
0
    YYDEBUG(785, *YYCURSOR);
8953
0
    yych = *++YYCURSOR;
8954
0
    if (yych == 'N') goto yy826;
8955
0
    if (yych == 'n') goto yy826;
8956
0
    goto yy86;
8957
0
yy786:
8958
0
    YYDEBUG(786, *YYCURSOR);
8959
0
    yych = *++YYCURSOR;
8960
0
    if (yych == 'E') goto yy827;
8961
0
    if (yych == 'e') goto yy827;
8962
0
    goto yy86;
8963
0
yy787:
8964
0
    YYDEBUG(787, *YYCURSOR);
8965
0
    ++YYCURSOR;
8966
0
    YYFILL(1);
8967
0
    yych = *YYCURSOR;
8968
0
    YYDEBUG(788, *YYCURSOR);
8969
0
    if (yych <= '@') {
8970
0
      if (yych <= ' ') {
8971
0
        if (yych <= '\n') {
8972
0
          if (yych <= 0x00) goto yy86;
8973
0
          if (yych <= 0x08) goto yy590;
8974
0
          goto yy787;
8975
0
        } else {
8976
0
          if (yych == '\r') goto yy787;
8977
0
          if (yych <= 0x1F) goto yy590;
8978
0
          goto yy787;
8979
0
        }
8980
0
      } else {
8981
0
        if (yych <= ')') {
8982
0
          if (yych == '#') goto yy828;
8983
0
          goto yy590;
8984
0
        } else {
8985
0
          if (yych <= '*') goto yy668;
8986
0
          if (yych == '/') goto yy829;
8987
0
          goto yy590;
8988
0
        }
8989
0
      }
8990
0
    } else {
8991
0
      if (yych <= '_') {
8992
0
        if (yych <= 'H') {
8993
0
          if (yych == 'E') goto yy831;
8994
0
          goto yy830;
8995
0
        } else {
8996
0
          if (yych <= 'I') goto yy832;
8997
0
          if (yych <= 'Z') goto yy830;
8998
0
          if (yych <= '^') goto yy590;
8999
0
          goto yy830;
9000
0
        }
9001
0
      } else {
9002
0
        if (yych <= 'h') {
9003
0
          if (yych <= '`') goto yy590;
9004
0
          if (yych == 'e') goto yy831;
9005
0
          goto yy830;
9006
0
        } else {
9007
0
          if (yych <= 'i') goto yy832;
9008
0
          if (yych <= 'z') goto yy830;
9009
0
          if (yych <= 0x7F) goto yy590;
9010
0
          goto yy830;
9011
0
        }
9012
0
      }
9013
0
    }
9014
0
yy789:
9015
0
    YYDEBUG(789, *YYCURSOR);
9016
0
    ++YYCURSOR;
9017
0
    YYFILL(1);
9018
0
    yych = *YYCURSOR;
9019
0
    YYDEBUG(790, *YYCURSOR);
9020
0
    if (yych <= '\r') {
9021
0
      if (yych <= '\t') {
9022
0
        if (yych <= 0x00) goto yy86;
9023
0
        goto yy738;
9024
0
      } else {
9025
0
        if (yych <= '\n') goto yy787;
9026
0
        if (yych <= '\f') goto yy738;
9027
0
        goto yy787;
9028
0
      }
9029
0
    } else {
9030
0
      if (yych <= '*') {
9031
0
        if (yych <= ')') goto yy738;
9032
0
        goto yy789;
9033
0
      } else {
9034
0
        if (yych == '/') goto yy588;
9035
0
        goto yy738;
9036
0
      }
9037
0
    }
9038
0
yy791:
9039
0
    YYDEBUG(791, *YYCURSOR);
9040
0
    ++YYCURSOR;
9041
0
    YYFILL(1);
9042
0
    yych = *YYCURSOR;
9043
0
    if (yych <= '\r') {
9044
0
      if (yych <= '\t') {
9045
0
        if (yych <= 0x00) goto yy86;
9046
0
        goto yy586;
9047
0
      } else {
9048
0
        if (yych <= '\n') goto yy495;
9049
0
        if (yych <= '\f') goto yy586;
9050
0
        goto yy495;
9051
0
      }
9052
0
    } else {
9053
0
      if (yych <= 'E') {
9054
0
        if (yych <= 'D') goto yy586;
9055
0
        goto yy833;
9056
0
      } else {
9057
0
        if (yych == 'e') goto yy833;
9058
0
        goto yy586;
9059
0
      }
9060
0
    }
9061
0
yy792:
9062
0
    YYDEBUG(792, *YYCURSOR);
9063
0
    ++YYCURSOR;
9064
0
    YYFILL(1);
9065
0
    yych = *YYCURSOR;
9066
0
    if (yych <= '\r') {
9067
0
      if (yych <= '\t') {
9068
0
        if (yych <= 0x00) goto yy86;
9069
0
        goto yy586;
9070
0
      } else {
9071
0
        if (yych <= '\n') goto yy495;
9072
0
        if (yych <= '\f') goto yy586;
9073
0
        goto yy495;
9074
0
      }
9075
0
    } else {
9076
0
      if (yych <= 'L') {
9077
0
        if (yych <= 'K') goto yy586;
9078
0
        goto yy834;
9079
0
      } else {
9080
0
        if (yych == 'l') goto yy834;
9081
0
        goto yy586;
9082
0
      }
9083
0
    }
9084
0
yy793:
9085
0
    YYDEBUG(793, *YYCURSOR);
9086
0
    yyaccept = 4;
9087
0
    yych = *(YYMARKER = ++YYCURSOR);
9088
0
    if (yych == 'S') goto yy835;
9089
0
    if (yych == 's') goto yy835;
9090
0
    goto yy48;
9091
0
yy794:
9092
0
    YYDEBUG(794, *YYCURSOR);
9093
0
    yyaccept = 4;
9094
0
    yych = *(YYMARKER = ++YYCURSOR);
9095
0
    if (yych == 'N') goto yy837;
9096
0
    if (yych == 'n') goto yy837;
9097
0
    goto yy48;
9098
0
yy795:
9099
0
    YYDEBUG(795, *YYCURSOR);
9100
0
    yyaccept = 4;
9101
0
    yych = *(YYMARKER = ++YYCURSOR);
9102
0
    if (yych == 'F') goto yy838;
9103
0
    if (yych == 'f') goto yy838;
9104
0
    goto yy48;
9105
0
yy796:
9106
0
    YYDEBUG(796, *YYCURSOR);
9107
0
    yyaccept = 77;
9108
0
    yych = *(YYMARKER = ++YYCURSOR);
9109
0
    if (yybm[256+yych] & 128) {
9110
0
      goto yy47;
9111
0
    }
9112
0
    if (yych == '\\') goto yy164;
9113
0
yy797:
9114
0
    YYDEBUG(797, *YYCURSOR);
9115
0
    yyleng = YYCURSOR - SCNG(yy_text);
9116
0
#line 1746 "Zend/zend_language_scanner.l"
9117
0
    {
9118
0
    RETURN_TOKEN_WITH_IDENT(T_INSTEADOF);
9119
0
}
9120
0
#line 9121 "Zend/zend_language_scanner.c"
9121
0
yy798:
9122
0
    YYDEBUG(798, *YYCURSOR);
9123
0
    yyaccept = 78;
9124
0
    yych = *(YYMARKER = ++YYCURSOR);
9125
0
    if (yybm[256+yych] & 128) {
9126
0
      goto yy47;
9127
0
    }
9128
0
    if (yych == '\\') goto yy164;
9129
0
yy799:
9130
0
    YYDEBUG(799, *YYCURSOR);
9131
0
    yyleng = YYCURSOR - SCNG(yy_text);
9132
0
#line 1558 "Zend/zend_language_scanner.l"
9133
0
    {
9134
0
  RETURN_TOKEN_WITH_IDENT(T_INTERFACE);
9135
0
}
9136
0
#line 9137 "Zend/zend_language_scanner.c"
9137
0
yy800:
9138
0
    YYDEBUG(800, *YYCURSOR);
9139
0
    yyaccept = 79;
9140
0
    yych = *(YYMARKER = ++YYCURSOR);
9141
0
    if (yybm[256+yych] & 128) {
9142
0
      goto yy47;
9143
0
    }
9144
0
    if (yych == '\\') goto yy840;
9145
0
yy801:
9146
0
    YYDEBUG(801, *YYCURSOR);
9147
0
    yyleng = YYCURSOR - SCNG(yy_text);
9148
0
#line 1738 "Zend/zend_language_scanner.l"
9149
0
    {
9150
0
  RETURN_TOKEN_WITH_IDENT(T_NAMESPACE);
9151
0
}
9152
0
#line 9153 "Zend/zend_language_scanner.c"
9153
0
yy802:
9154
0
    YYDEBUG(802, *YYCURSOR);
9155
0
    yych = *++YYCURSOR;
9156
0
    if (yych == 'E') goto yy841;
9157
0
    if (yych == 'e') goto yy841;
9158
0
    goto yy86;
9159
0
yy803:
9160
0
    YYDEBUG(803, *YYCURSOR);
9161
0
    yyaccept = 80;
9162
0
    yych = *(YYMARKER = ++YYCURSOR);
9163
0
    if (yybm[256+yych] & 128) {
9164
0
      goto yy47;
9165
0
    }
9166
0
    if (yych == '(') goto yy842;
9167
0
    if (yych == '\\') goto yy164;
9168
0
yy804:
9169
0
    YYDEBUG(804, *YYCURSOR);
9170
0
    yyleng = YYCURSOR - SCNG(yy_text);
9171
0
#line 1782 "Zend/zend_language_scanner.l"
9172
0
    {
9173
0
  RETURN_TOKEN_WITH_IDENT(T_PROTECTED);
9174
0
}
9175
0
#line 9176 "Zend/zend_language_scanner.c"
9176
0
yy805:
9177
0
    YYDEBUG(805, *YYCURSOR);
9178
0
    yych = *++YYCURSOR;
9179
0
    if (yych == 'T') goto yy843;
9180
0
    if (yych == 't') goto yy843;
9181
0
    goto yy86;
9182
0
yy806:
9183
0
    YYDEBUG(806, *YYCURSOR);
9184
0
    yyaccept = 4;
9185
0
    yych = *(YYMARKER = ++YYCURSOR);
9186
0
    if (yych == 'N') goto yy844;
9187
0
    if (yych == 'n') goto yy844;
9188
0
    goto yy48;
9189
0
yy807:
9190
0
    YYDEBUG(807, *YYCURSOR);
9191
0
    yych = *++YYCURSOR;
9192
0
    if (yych == 'M') goto yy845;
9193
0
    if (yych == 'm') goto yy845;
9194
0
    goto yy86;
9195
0
yy808:
9196
0
    YYDEBUG(808, *YYCURSOR);
9197
0
    ++YYCURSOR;
9198
0
    YYFILL(1);
9199
0
    yych = *YYCURSOR;
9200
0
    YYDEBUG(809, *YYCURSOR);
9201
0
    if (yych <= '\f') {
9202
0
      if (yych <= 0x00) goto yy86;
9203
0
      if (yych == '\n') goto yy846;
9204
0
      goto yy808;
9205
0
    } else {
9206
0
      if (yych <= '\r') goto yy846;
9207
0
      if (yych == '*') goto yy848;
9208
0
      goto yy808;
9209
0
    }
9210
0
yy810:
9211
0
    YYDEBUG(810, *YYCURSOR);
9212
0
    ++YYCURSOR;
9213
0
    YYFILL(1);
9214
0
    yych = *YYCURSOR;
9215
0
    if (yych <= '\r') {
9216
0
      if (yych <= '\t') {
9217
0
        if (yych <= 0x00) goto yy86;
9218
0
        goto yy692;
9219
0
      } else {
9220
0
        if (yych <= '\n') goto yy616;
9221
0
        if (yych <= '\f') goto yy692;
9222
0
        goto yy616;
9223
0
      }
9224
0
    } else {
9225
0
      if (yych <= 'O') {
9226
0
        if (yych <= 'N') goto yy692;
9227
0
        goto yy850;
9228
0
      } else {
9229
0
        if (yych == 'o') goto yy850;
9230
0
        goto yy692;
9231
0
      }
9232
0
    }
9233
0
yy811:
9234
0
    YYDEBUG(811, *YYCURSOR);
9235
0
    yyaccept = 81;
9236
0
    yych = *(YYMARKER = ++YYCURSOR);
9237
0
    if (yybm[256+yych] & 128) {
9238
0
      goto yy47;
9239
0
    }
9240
0
    if (yych == '\\') goto yy164;
9241
0
yy812:
9242
0
    YYDEBUG(812, *YYCURSOR);
9243
0
    yyleng = YYCURSOR - SCNG(yy_text);
9244
0
#line 2253 "Zend/zend_language_scanner.l"
9245
0
    {
9246
0
  RETURN_TOKEN_WITH_IDENT(T_CLASS_C);
9247
0
}
9248
0
#line 9249 "Zend/zend_language_scanner.c"
9249
0
yy813:
9250
0
    YYDEBUG(813, *YYCURSOR);
9251
0
    yyaccept = 4;
9252
0
    yych = *(YYMARKER = ++YYCURSOR);
9253
0
    if (yych == 'N') goto yy851;
9254
0
    if (yych == 'n') goto yy851;
9255
0
    goto yy48;
9256
0
yy814:
9257
0
    YYDEBUG(814, *YYCURSOR);
9258
0
    yyaccept = 4;
9259
0
    yych = *(YYMARKER = ++YYCURSOR);
9260
0
    if (yych == 'M') goto yy852;
9261
0
    if (yych == 'm') goto yy852;
9262
0
    goto yy48;
9263
0
yy815:
9264
0
    YYDEBUG(815, *YYCURSOR);
9265
0
    yyaccept = 4;
9266
0
    yych = *(YYMARKER = ++YYCURSOR);
9267
0
    if (yych == '_') goto yy853;
9268
0
    goto yy48;
9269
0
yy816:
9270
0
    YYDEBUG(816, *YYCURSOR);
9271
0
    yyaccept = 4;
9272
0
    yych = *(YYMARKER = ++YYCURSOR);
9273
0
    if (yych == 'C') goto yy855;
9274
0
    if (yych == 'c') goto yy855;
9275
0
    goto yy48;
9276
0
yy817:
9277
0
    YYDEBUG(817, *YYCURSOR);
9278
0
    yyaccept = 4;
9279
0
    yych = *(YYMARKER = ++YYCURSOR);
9280
0
    if (yych == 'Y') goto yy856;
9281
0
    if (yych == 'y') goto yy856;
9282
0
    goto yy48;
9283
0
yy818:
9284
0
    YYDEBUG(818, *YYCURSOR);
9285
0
    yyaccept = 82;
9286
0
    yych = *(YYMARKER = ++YYCURSOR);
9287
0
    if (yybm[256+yych] & 128) {
9288
0
      goto yy47;
9289
0
    }
9290
0
    if (yych == '\\') goto yy164;
9291
0
yy819:
9292
0
    YYDEBUG(819, *YYCURSOR);
9293
0
    yyleng = YYCURSOR - SCNG(yy_text);
9294
0
#line 2257 "Zend/zend_language_scanner.l"
9295
0
    {
9296
0
  RETURN_TOKEN_WITH_IDENT(T_TRAIT_C);
9297
0
}
9298
0
#line 9299 "Zend/zend_language_scanner.c"
9299
0
yy820:
9300
0
    YYDEBUG(820, *YYCURSOR);
9301
0
    ++YYCURSOR;
9302
0
    YYFILL(1);
9303
0
    yych = *YYCURSOR;
9304
0
    if (yych <= '\r') {
9305
0
      if (yych <= '\t') {
9306
0
        if (yych <= 0x00) goto yy86;
9307
0
        goto yy443;
9308
0
      } else {
9309
0
        if (yych <= '\n') goto yy545;
9310
0
        if (yych <= '\f') goto yy443;
9311
0
        goto yy545;
9312
0
      }
9313
0
    } else {
9314
0
      if (yych <= '*') {
9315
0
        if (yych <= ')') goto yy443;
9316
0
        goto yy547;
9317
0
      } else {
9318
0
        if (yych == '.') goto yy774;
9319
0
        goto yy443;
9320
0
      }
9321
0
    }
9322
0
yy821:
9323
0
    YYDEBUG(821, *YYCURSOR);
9324
0
    ++YYCURSOR;
9325
0
    YYFILL(1);
9326
0
    yych = *YYCURSOR;
9327
0
    if (yych <= '\r') {
9328
0
      if (yych <= '\t') {
9329
0
        if (yych <= 0x00) goto yy86;
9330
0
        goto yy443;
9331
0
      } else {
9332
0
        if (yych <= '\n') goto yy545;
9333
0
        if (yych <= '\f') goto yy443;
9334
0
        goto yy545;
9335
0
      }
9336
0
    } else {
9337
0
      if (yych <= '*') {
9338
0
        if (yych <= ')') goto yy443;
9339
0
        goto yy547;
9340
0
      } else {
9341
0
        if (yych == '/') goto yy709;
9342
0
        goto yy443;
9343
0
      }
9344
0
    }
9345
0
yy822:
9346
0
    YYDEBUG(822, *YYCURSOR);
9347
0
    yyaccept = 83;
9348
0
    yych = *(YYMARKER = ++YYCURSOR);
9349
0
    if (yybm[256+yych] & 128) {
9350
0
      goto yy47;
9351
0
    }
9352
0
    if (yych == '\\') goto yy164;
9353
0
yy823:
9354
0
    YYDEBUG(823, *YYCURSOR);
9355
0
    yyleng = YYCURSOR - SCNG(yy_text);
9356
0
#line 1502 "Zend/zend_language_scanner.l"
9357
0
    {
9358
0
  RETURN_TOKEN_WITH_IDENT(T_ENDDECLARE);
9359
0
}
9360
0
#line 9361 "Zend/zend_language_scanner.c"
9361
0
yy824:
9362
0
    YYDEBUG(824, *YYCURSOR);
9363
0
    yyaccept = 84;
9364
0
    yych = *(YYMARKER = ++YYCURSOR);
9365
0
    if (yybm[256+yych] & 128) {
9366
0
      goto yy47;
9367
0
    }
9368
0
    if (yych == '\\') goto yy164;
9369
0
yy825:
9370
0
    YYDEBUG(825, *YYCURSOR);
9371
0
    yyleng = YYCURSOR - SCNG(yy_text);
9372
0
#line 1494 "Zend/zend_language_scanner.l"
9373
0
    {
9374
0
  RETURN_TOKEN_WITH_IDENT(T_ENDFOREACH);
9375
0
}
9376
0
#line 9377 "Zend/zend_language_scanner.c"
9377
0
yy826:
9378
0
    YYDEBUG(826, *YYCURSOR);
9379
0
    yych = *++YYCURSOR;
9380
0
    if (yych == 'D') goto yy857;
9381
0
    if (yych == 'd') goto yy857;
9382
0
    goto yy86;
9383
0
yy827:
9384
0
    YYDEBUG(827, *YYCURSOR);
9385
0
    yych = *++YYCURSOR;
9386
0
    if (yych == 'M') goto yy858;
9387
0
    if (yych == 'm') goto yy858;
9388
0
    goto yy86;
9389
0
yy828:
9390
0
    YYDEBUG(828, *YYCURSOR);
9391
0
    ++YYCURSOR;
9392
0
    YYFILL(1);
9393
0
    yych = *YYCURSOR;
9394
0
    if (yych <= '\r') {
9395
0
      if (yych <= '\t') {
9396
0
        if (yych <= 0x00) goto yy86;
9397
0
        goto yy738;
9398
0
      } else {
9399
0
        if (yych <= '\n') goto yy859;
9400
0
        if (yych <= '\f') goto yy738;
9401
0
        goto yy859;
9402
0
      }
9403
0
    } else {
9404
0
      if (yych <= '*') {
9405
0
        if (yych <= ')') goto yy738;
9406
0
        goto yy789;
9407
0
      } else {
9408
0
        if (yych == '[') goto yy590;
9409
0
        goto yy738;
9410
0
      }
9411
0
    }
9412
0
yy829:
9413
0
    YYDEBUG(829, *YYCURSOR);
9414
0
    ++YYCURSOR;
9415
0
    YYFILL(1);
9416
0
    yych = *YYCURSOR;
9417
0
    if (yych <= '*') {
9418
0
      if (yych <= 0x00) goto yy86;
9419
0
      if (yych <= ')') goto yy590;
9420
0
      goto yy861;
9421
0
    } else {
9422
0
      if (yych == '/') goto yy738;
9423
0
      goto yy590;
9424
0
    }
9425
0
yy830:
9426
0
    YYDEBUG(830, *YYCURSOR);
9427
0
    yyaccept = 53;
9428
0
    YYMARKER = ++YYCURSOR;
9429
0
    YYFILL(1);
9430
0
    yych = *YYCURSOR;
9431
0
    if (yych <= 0x00) goto yy583;
9432
0
    if (yych == '*') goto yy668;
9433
0
    goto yy590;
9434
0
yy831:
9435
0
    YYDEBUG(831, *YYCURSOR);
9436
0
    yyaccept = 53;
9437
0
    YYMARKER = ++YYCURSOR;
9438
0
    YYFILL(1);
9439
0
    yych = *YYCURSOR;
9440
0
    if (yych <= 'W') {
9441
0
      if (yych <= 0x00) goto yy583;
9442
0
      if (yych == '*') goto yy668;
9443
0
      goto yy590;
9444
0
    } else {
9445
0
      if (yych <= 'X') goto yy862;
9446
0
      if (yych == 'x') goto yy862;
9447
0
      goto yy590;
9448
0
    }
9449
0
yy832:
9450
0
    YYDEBUG(832, *YYCURSOR);
9451
0
    yyaccept = 53;
9452
0
    YYMARKER = ++YYCURSOR;
9453
0
    YYFILL(1);
9454
0
    yych = *YYCURSOR;
9455
0
    if (yych <= 'L') {
9456
0
      if (yych <= 0x00) goto yy583;
9457
0
      if (yych == '*') goto yy668;
9458
0
      goto yy590;
9459
0
    } else {
9460
0
      if (yych <= 'M') goto yy863;
9461
0
      if (yych == 'm') goto yy863;
9462
0
      goto yy590;
9463
0
    }
9464
0
yy833:
9465
0
    YYDEBUG(833, *YYCURSOR);
9466
0
    ++YYCURSOR;
9467
0
    YYFILL(1);
9468
0
    yych = *YYCURSOR;
9469
0
    if (yych <= '\r') {
9470
0
      if (yych <= '\t') {
9471
0
        if (yych <= 0x00) goto yy86;
9472
0
        goto yy586;
9473
0
      } else {
9474
0
        if (yych <= '\n') goto yy495;
9475
0
        if (yych <= '\f') goto yy586;
9476
0
        goto yy495;
9477
0
      }
9478
0
    } else {
9479
0
      if (yych <= 'N') {
9480
0
        if (yych <= 'M') goto yy586;
9481
0
        goto yy864;
9482
0
      } else {
9483
0
        if (yych == 'n') goto yy864;
9484
0
        goto yy586;
9485
0
      }
9486
0
    }
9487
0
yy834:
9488
0
    YYDEBUG(834, *YYCURSOR);
9489
0
    ++YYCURSOR;
9490
0
    YYFILL(1);
9491
0
    yych = *YYCURSOR;
9492
0
    if (yych <= '\r') {
9493
0
      if (yych <= '\t') {
9494
0
        if (yych <= 0x00) goto yy86;
9495
0
        goto yy586;
9496
0
      } else {
9497
0
        if (yych <= '\n') goto yy495;
9498
0
        if (yych <= '\f') goto yy586;
9499
0
        goto yy495;
9500
0
      }
9501
0
    } else {
9502
0
      if (yych <= 'E') {
9503
0
        if (yych <= 'D') goto yy586;
9504
0
        goto yy865;
9505
0
      } else {
9506
0
        if (yych == 'e') goto yy865;
9507
0
        goto yy586;
9508
0
      }
9509
0
    }
9510
0
yy835:
9511
0
    YYDEBUG(835, *YYCURSOR);
9512
0
    yyaccept = 85;
9513
0
    yych = *(YYMARKER = ++YYCURSOR);
9514
0
    if (yybm[256+yych] & 128) {
9515
0
      goto yy47;
9516
0
    }
9517
0
    if (yych == '\\') goto yy164;
9518
0
yy836:
9519
0
    YYDEBUG(836, *YYCURSOR);
9520
0
    yyleng = YYCURSOR - SCNG(yy_text);
9521
0
#line 1583 "Zend/zend_language_scanner.l"
9522
0
    {
9523
0
  RETURN_TOKEN_WITH_IDENT(T_IMPLEMENTS);
9524
0
}
9525
0
#line 9526 "Zend/zend_language_scanner.c"
9526
0
yy837:
9527
0
    YYDEBUG(837, *YYCURSOR);
9528
0
    yyaccept = 4;
9529
0
    yych = *(YYMARKER = ++YYCURSOR);
9530
0
    if (yych == 'C') goto yy866;
9531
0
    if (yych == 'c') goto yy866;
9532
0
    goto yy48;
9533
0
yy838:
9534
0
    YYDEBUG(838, *YYCURSOR);
9535
0
    yyaccept = 86;
9536
0
    yych = *(YYMARKER = ++YYCURSOR);
9537
0
    if (yybm[256+yych] & 128) {
9538
0
      goto yy47;
9539
0
    }
9540
0
    if (yych == '\\') goto yy164;
9541
0
yy839:
9542
0
    YYDEBUG(839, *YYCURSOR);
9543
0
    yyleng = YYCURSOR - SCNG(yy_text);
9544
0
#line 1506 "Zend/zend_language_scanner.l"
9545
0
    {
9546
0
  RETURN_TOKEN_WITH_IDENT(T_INSTANCEOF);
9547
0
}
9548
0
#line 9549 "Zend/zend_language_scanner.c"
9549
0
yy840:
9550
0
    YYDEBUG(840, *YYCURSOR);
9551
0
    ++YYCURSOR;
9552
0
    YYFILL(1);
9553
0
    yych = *YYCURSOR;
9554
0
    if (yych <= '_') {
9555
0
      if (yych <= '@') goto yy86;
9556
0
      if (yych <= 'Z') goto yy867;
9557
0
      if (yych <= '^') goto yy86;
9558
0
      goto yy867;
9559
0
    } else {
9560
0
      if (yych <= '`') goto yy86;
9561
0
      if (yych <= 'z') goto yy867;
9562
0
      if (yych <= 0x7F) goto yy86;
9563
0
      goto yy867;
9564
0
    }
9565
0
yy841:
9566
0
    YYDEBUG(841, *YYCURSOR);
9567
0
    yych = *++YYCURSOR;
9568
0
    if (yych == 'T') goto yy870;
9569
0
    if (yych == 't') goto yy870;
9570
0
    goto yy86;
9571
0
yy842:
9572
0
    YYDEBUG(842, *YYCURSOR);
9573
0
    yych = *++YYCURSOR;
9574
0
    if (yych == 'S') goto yy871;
9575
0
    if (yych == 's') goto yy871;
9576
0
    goto yy86;
9577
0
yy843:
9578
0
    YYDEBUG(843, *YYCURSOR);
9579
0
    yych = *++YYCURSOR;
9580
0
    if (yych == ')') goto yy872;
9581
0
    goto yy86;
9582
0
yy844:
9583
0
    YYDEBUG(844, *YYCURSOR);
9584
0
    yyaccept = 4;
9585
0
    yych = *(YYMARKER = ++YYCURSOR);
9586
0
    if (yych == 'C') goto yy874;
9587
0
    if (yych == 'c') goto yy874;
9588
0
    goto yy48;
9589
0
yy845:
9590
0
    YYDEBUG(845, *YYCURSOR);
9591
0
    yych = *++YYCURSOR;
9592
0
    if (yych <= '^') {
9593
0
      if (yych <= '9') {
9594
0
        if (yych <= '/') goto yy875;
9595
0
        goto yy86;
9596
0
      } else {
9597
0
        if (yych <= '@') goto yy875;
9598
0
        if (yych <= 'Z') goto yy86;
9599
0
        goto yy875;
9600
0
      }
9601
0
    } else {
9602
0
      if (yych <= '`') {
9603
0
        if (yych <= '_') goto yy86;
9604
0
        goto yy875;
9605
0
      } else {
9606
0
        if (yych <= 'z') goto yy86;
9607
0
        if (yych <= 0x7F) goto yy875;
9608
0
        goto yy86;
9609
0
      }
9610
0
    }
9611
0
yy846:
9612
0
    YYDEBUG(846, *YYCURSOR);
9613
0
    ++YYCURSOR;
9614
0
    YYFILL(1);
9615
0
    yych = *YYCURSOR;
9616
0
    YYDEBUG(847, *YYCURSOR);
9617
0
    if (yych <= '#') {
9618
0
      if (yych <= '\f') {
9619
0
        if (yych <= 0x00) goto yy86;
9620
0
        if (yych <= 0x08) goto yy696;
9621
0
        if (yych <= '\n') goto yy846;
9622
0
        goto yy696;
9623
0
      } else {
9624
0
        if (yych <= 0x1F) {
9625
0
          if (yych <= '\r') goto yy846;
9626
0
          goto yy696;
9627
0
        } else {
9628
0
          if (yych <= ' ') goto yy846;
9629
0
          if (yych <= '"') goto yy696;
9630
0
          goto yy877;
9631
0
        }
9632
0
      }
9633
0
    } else {
9634
0
      if (yych <= '/') {
9635
0
        if (yych == '*') goto yy760;
9636
0
        if (yych <= '.') goto yy696;
9637
0
        goto yy878;
9638
0
      } else {
9639
0
        if (yych <= 'F') {
9640
0
          if (yych <= 'E') goto yy696;
9641
0
          goto yy879;
9642
0
        } else {
9643
0
          if (yych == 'f') goto yy879;
9644
0
          goto yy696;
9645
0
        }
9646
0
      }
9647
0
    }
9648
0
yy848:
9649
0
    YYDEBUG(848, *YYCURSOR);
9650
0
    ++YYCURSOR;
9651
0
    YYFILL(1);
9652
0
    yych = *YYCURSOR;
9653
0
    YYDEBUG(849, *YYCURSOR);
9654
0
    if (yych <= '\r') {
9655
0
      if (yych <= '\t') {
9656
0
        if (yych <= 0x00) goto yy86;
9657
0
        goto yy808;
9658
0
      } else {
9659
0
        if (yych <= '\n') goto yy846;
9660
0
        if (yych <= '\f') goto yy808;
9661
0
        goto yy846;
9662
0
      }
9663
0
    } else {
9664
0
      if (yych <= '*') {
9665
0
        if (yych <= ')') goto yy808;
9666
0
        goto yy848;
9667
0
      } else {
9668
0
        if (yych == '/') goto yy694;
9669
0
        goto yy808;
9670
0
      }
9671
0
    }
9672
0
yy850:
9673
0
    YYDEBUG(850, *YYCURSOR);
9674
0
    ++YYCURSOR;
9675
0
    YYFILL(1);
9676
0
    yych = *YYCURSOR;
9677
0
    if (yych <= '\r') {
9678
0
      if (yych <= '\t') {
9679
0
        if (yych <= 0x00) goto yy86;
9680
0
        goto yy692;
9681
0
      } else {
9682
0
        if (yych <= '\n') goto yy616;
9683
0
        if (yych <= '\f') goto yy692;
9684
0
        goto yy616;
9685
0
      }
9686
0
    } else {
9687
0
      if (yych <= 'M') {
9688
0
        if (yych <= 'L') goto yy692;
9689
0
        goto yy880;
9690
0
      } else {
9691
0
        if (yych == 'm') goto yy880;
9692
0
        goto yy692;
9693
0
      }
9694
0
    }
9695
0
yy851:
9696
0
    YYDEBUG(851, *YYCURSOR);
9697
0
    yyaccept = 4;
9698
0
    yych = *(YYMARKER = ++YYCURSOR);
9699
0
    if (yych == '_') goto yy881;
9700
0
    goto yy48;
9701
0
yy852:
9702
0
    YYDEBUG(852, *YYCURSOR);
9703
0
    yyaccept = 4;
9704
0
    yych = *(YYMARKER = ++YYCURSOR);
9705
0
    if (yych == 'P') goto yy882;
9706
0
    if (yych == 'p') goto yy882;
9707
0
    goto yy48;
9708
0
yy853:
9709
0
    YYDEBUG(853, *YYCURSOR);
9710
0
    yyaccept = 87;
9711
0
    yych = *(YYMARKER = ++YYCURSOR);
9712
0
    if (yybm[256+yych] & 128) {
9713
0
      goto yy47;
9714
0
    }
9715
0
    if (yych == '\\') goto yy164;
9716
0
yy854:
9717
0
    YYDEBUG(854, *YYCURSOR);
9718
0
    yyleng = YYCURSOR - SCNG(yy_text);
9719
0
#line 2269 "Zend/zend_language_scanner.l"
9720
0
    {
9721
0
  RETURN_TOKEN_WITH_IDENT(T_METHOD_C);
9722
0
}
9723
0
#line 9724 "Zend/zend_language_scanner.c"
9724
0
yy855:
9725
0
    YYDEBUG(855, *YYCURSOR);
9726
0
    yyaccept = 4;
9727
0
    yych = *(YYMARKER = ++YYCURSOR);
9728
0
    if (yych == 'E') goto yy883;
9729
0
    if (yych == 'e') goto yy883;
9730
0
    goto yy48;
9731
0
yy856:
9732
0
    YYDEBUG(856, *YYCURSOR);
9733
0
    yyaccept = 4;
9734
0
    yych = *(YYMARKER = ++YYCURSOR);
9735
0
    if (yych == '_') goto yy884;
9736
0
    goto yy48;
9737
0
yy857:
9738
0
    YYDEBUG(857, *YYCURSOR);
9739
0
    yych = *++YYCURSOR;
9740
0
    if (yych == 'S') goto yy885;
9741
0
    if (yych == 's') goto yy885;
9742
0
    goto yy86;
9743
0
yy858:
9744
0
    YYDEBUG(858, *YYCURSOR);
9745
0
    yych = *++YYCURSOR;
9746
0
    if (yych == 'E') goto yy887;
9747
0
    if (yych == 'e') goto yy887;
9748
0
    goto yy86;
9749
0
yy859:
9750
0
    YYDEBUG(859, *YYCURSOR);
9751
0
    ++YYCURSOR;
9752
0
    YYFILL(1);
9753
0
    yych = *YYCURSOR;
9754
0
    YYDEBUG(860, *YYCURSOR);
9755
0
    if (yych <= '@') {
9756
0
      if (yych <= 0x1F) {
9757
0
        if (yych <= '\t') {
9758
0
          if (yych <= 0x00) goto yy86;
9759
0
          if (yych <= 0x08) goto yy738;
9760
0
          goto yy859;
9761
0
        } else {
9762
0
          if (yych <= '\n') goto yy787;
9763
0
          if (yych == '\r') goto yy787;
9764
0
          goto yy738;
9765
0
        }
9766
0
      } else {
9767
0
        if (yych <= ')') {
9768
0
          if (yych <= ' ') goto yy859;
9769
0
          if (yych == '#') goto yy888;
9770
0
          goto yy738;
9771
0
        } else {
9772
0
          if (yych <= '*') goto yy789;
9773
0
          if (yych == '/') goto yy889;
9774
0
          goto yy738;
9775
0
        }
9776
0
      }
9777
0
    } else {
9778
0
      if (yych <= '_') {
9779
0
        if (yych <= 'H') {
9780
0
          if (yych == 'E') goto yy891;
9781
0
          goto yy890;
9782
0
        } else {
9783
0
          if (yych <= 'I') goto yy892;
9784
0
          if (yych <= 'Z') goto yy890;
9785
0
          if (yych <= '^') goto yy738;
9786
0
          goto yy890;
9787
0
        }
9788
0
      } else {
9789
0
        if (yych <= 'h') {
9790
0
          if (yych <= '`') goto yy738;
9791
0
          if (yych == 'e') goto yy891;
9792
0
          goto yy890;
9793
0
        } else {
9794
0
          if (yych <= 'i') goto yy892;
9795
0
          if (yych <= 'z') goto yy890;
9796
0
          if (yych <= 0x7F) goto yy738;
9797
0
          goto yy890;
9798
0
        }
9799
0
      }
9800
0
    }
9801
0
yy861:
9802
0
    YYDEBUG(861, *YYCURSOR);
9803
0
    ++YYCURSOR;
9804
0
    YYFILL(1);
9805
0
    yych = *YYCURSOR;
9806
0
    if (yych <= '*') {
9807
0
      if (yych <= 0x00) goto yy86;
9808
0
      if (yych <= ')') goto yy590;
9809
0
      goto yy668;
9810
0
    } else {
9811
0
      if (yych == '/') goto yy787;
9812
0
      goto yy590;
9813
0
    }
9814
0
yy862:
9815
0
    YYDEBUG(862, *YYCURSOR);
9816
0
    ++YYCURSOR;
9817
0
    YYFILL(1);
9818
0
    yych = *YYCURSOR;
9819
0
    if (yych <= 'S') {
9820
0
      if (yych <= 0x00) goto yy86;
9821
0
      if (yych == '*') goto yy668;
9822
0
      goto yy590;
9823
0
    } else {
9824
0
      if (yych <= 'T') goto yy893;
9825
0
      if (yych == 't') goto yy893;
9826
0
      goto yy590;
9827
0
    }
9828
0
yy863:
9829
0
    YYDEBUG(863, *YYCURSOR);
9830
0
    ++YYCURSOR;
9831
0
    YYFILL(1);
9832
0
    yych = *YYCURSOR;
9833
0
    if (yych <= 'O') {
9834
0
      if (yych <= 0x00) goto yy86;
9835
0
      if (yych == '*') goto yy668;
9836
0
      goto yy590;
9837
0
    } else {
9838
0
      if (yych <= 'P') goto yy894;
9839
0
      if (yych == 'p') goto yy894;
9840
0
      goto yy590;
9841
0
    }
9842
0
yy864:
9843
0
    YYDEBUG(864, *YYCURSOR);
9844
0
    ++YYCURSOR;
9845
0
    YYFILL(1);
9846
0
    yych = *YYCURSOR;
9847
0
    if (yych <= '\r') {
9848
0
      if (yych <= '\t') {
9849
0
        if (yych <= 0x00) goto yy86;
9850
0
        goto yy586;
9851
0
      } else {
9852
0
        if (yych <= '\n') goto yy495;
9853
0
        if (yych <= '\f') goto yy586;
9854
0
        goto yy495;
9855
0
      }
9856
0
    } else {
9857
0
      if (yych <= 'D') {
9858
0
        if (yych <= 'C') goto yy586;
9859
0
        goto yy895;
9860
0
      } else {
9861
0
        if (yych == 'd') goto yy895;
9862
0
        goto yy586;
9863
0
      }
9864
0
    }
9865
0
yy865:
9866
0
    YYDEBUG(865, *YYCURSOR);
9867
0
    ++YYCURSOR;
9868
0
    YYFILL(1);
9869
0
    yych = *YYCURSOR;
9870
0
    if (yych <= '\r') {
9871
0
      if (yych <= '\t') {
9872
0
        if (yych <= 0x00) goto yy86;
9873
0
        goto yy586;
9874
0
      } else {
9875
0
        if (yych <= '\n') goto yy495;
9876
0
        if (yych <= '\f') goto yy586;
9877
0
        goto yy495;
9878
0
      }
9879
0
    } else {
9880
0
      if (yych <= 'M') {
9881
0
        if (yych <= 'L') goto yy586;
9882
0
        goto yy896;
9883
0
      } else {
9884
0
        if (yych == 'm') goto yy896;
9885
0
        goto yy586;
9886
0
      }
9887
0
    }
9888
0
yy866:
9889
0
    YYDEBUG(866, *YYCURSOR);
9890
0
    yyaccept = 4;
9891
0
    yych = *(YYMARKER = ++YYCURSOR);
9892
0
    if (yych == 'E') goto yy897;
9893
0
    if (yych == 'e') goto yy897;
9894
0
    goto yy48;
9895
0
yy867:
9896
0
    YYDEBUG(867, *YYCURSOR);
9897
0
    yyaccept = 88;
9898
0
    YYMARKER = ++YYCURSOR;
9899
0
    YYFILL(1);
9900
0
    yych = *YYCURSOR;
9901
0
    YYDEBUG(868, *YYCURSOR);
9902
0
    if (yych <= '\\') {
9903
0
      if (yych <= '@') {
9904
0
        if (yych <= '/') goto yy869;
9905
0
        if (yych <= '9') goto yy867;
9906
0
      } else {
9907
0
        if (yych <= 'Z') goto yy867;
9908
0
        if (yych >= '\\') goto yy840;
9909
0
      }
9910
0
    } else {
9911
0
      if (yych <= '`') {
9912
0
        if (yych == '_') goto yy867;
9913
0
      } else {
9914
0
        if (yych <= 'z') goto yy867;
9915
0
        if (yych >= 0x80) goto yy867;
9916
0
      }
9917
0
    }
9918
0
yy869:
9919
0
    YYDEBUG(869, *YYCURSOR);
9920
0
    yyleng = YYCURSOR - SCNG(yy_text);
9921
0
#line 2439 "Zend/zend_language_scanner.l"
9922
0
    {
9923
0
  RETURN_TOKEN_WITH_STR(T_NAME_RELATIVE, sizeof("namespace\\") - 1);
9924
0
}
9925
0
#line 9926 "Zend/zend_language_scanner.c"
9926
0
yy870:
9927
0
    YYDEBUG(870, *YYCURSOR);
9928
0
    yych = *++YYCURSOR;
9929
0
    if (yych == ')') goto yy899;
9930
0
    goto yy86;
9931
0
yy871:
9932
0
    YYDEBUG(871, *YYCURSOR);
9933
0
    yych = *++YYCURSOR;
9934
0
    if (yych == 'E') goto yy901;
9935
0
    if (yych == 'e') goto yy901;
9936
0
    goto yy86;
9937
0
yy872:
9938
0
    YYDEBUG(872, *YYCURSOR);
9939
0
    ++YYCURSOR;
9940
0
    YYDEBUG(873, *YYCURSOR);
9941
0
    yyleng = YYCURSOR - SCNG(yy_text);
9942
0
#line 1786 "Zend/zend_language_scanner.l"
9943
0
    {
9944
0
  RETURN_TOKEN_WITH_IDENT(T_PUBLIC_SET);
9945
0
}
9946
0
#line 9947 "Zend/zend_language_scanner.c"
9947
0
yy874:
9948
0
    YYDEBUG(874, *YYCURSOR);
9949
0
    yyaccept = 4;
9950
0
    yych = *(YYMARKER = ++YYCURSOR);
9951
0
    if (yych == 'E') goto yy902;
9952
0
    if (yych == 'e') goto yy902;
9953
0
    goto yy48;
9954
0
yy875:
9955
0
    YYDEBUG(875, *YYCURSOR);
9956
0
    ++YYCURSOR;
9957
0
yy876:
9958
0
    YYDEBUG(876, *YYCURSOR);
9959
0
    yyleng = YYCURSOR - SCNG(yy_text);
9960
0
#line 1428 "Zend/zend_language_scanner.l"
9961
0
    {
9962
0
  yyless(yyleng - 1);
9963
0
  HANDLE_NEWLINES(yytext, yyleng);
9964
0
  RETURN_TOKEN_WITH_IDENT(T_YIELD_FROM);
9965
0
}
9966
0
#line 9967 "Zend/zend_language_scanner.c"
9967
0
yy877:
9968
0
    YYDEBUG(877, *YYCURSOR);
9969
0
    ++YYCURSOR;
9970
0
    YYFILL(1);
9971
0
    yych = *YYCURSOR;
9972
0
    if (yych <= '\r') {
9973
0
      if (yych <= '\t') {
9974
0
        if (yych <= 0x00) goto yy86;
9975
0
        goto yy808;
9976
0
      } else {
9977
0
        if (yych <= '\n') goto yy904;
9978
0
        if (yych <= '\f') goto yy808;
9979
0
        goto yy904;
9980
0
      }
9981
0
    } else {
9982
0
      if (yych <= '*') {
9983
0
        if (yych <= ')') goto yy808;
9984
0
        goto yy848;
9985
0
      } else {
9986
0
        if (yych == '[') goto yy696;
9987
0
        goto yy808;
9988
0
      }
9989
0
    }
9990
0
yy878:
9991
0
    YYDEBUG(878, *YYCURSOR);
9992
0
    ++YYCURSOR;
9993
0
    YYFILL(1);
9994
0
    yych = *YYCURSOR;
9995
0
    if (yych <= '*') {
9996
0
      if (yych <= 0x00) goto yy86;
9997
0
      if (yych <= ')') goto yy696;
9998
0
      goto yy906;
9999
0
    } else {
10000
0
      if (yych == '/') goto yy808;
10001
0
      goto yy696;
10002
0
    }
10003
0
yy879:
10004
0
    YYDEBUG(879, *YYCURSOR);
10005
0
    ++YYCURSOR;
10006
0
    YYFILL(1);
10007
0
    yych = *YYCURSOR;
10008
0
    if (yych <= 'Q') {
10009
0
      if (yych <= 0x00) goto yy86;
10010
0
      if (yych == '*') goto yy760;
10011
0
      goto yy696;
10012
0
    } else {
10013
0
      if (yych <= 'R') goto yy907;
10014
0
      if (yych == 'r') goto yy907;
10015
0
      goto yy696;
10016
0
    }
10017
0
yy880:
10018
0
    YYDEBUG(880, *YYCURSOR);
10019
0
    ++YYCURSOR;
10020
0
    YYFILL(1);
10021
0
    yych = *YYCURSOR;
10022
0
    if (yych <= '9') {
10023
0
      if (yych <= '\n') {
10024
0
        if (yych <= 0x00) goto yy875;
10025
0
        if (yych <= '\t') goto yy908;
10026
0
        goto yy909;
10027
0
      } else {
10028
0
        if (yych == '\r') goto yy909;
10029
0
        if (yych <= '/') goto yy908;
10030
0
        goto yy692;
10031
0
      }
10032
0
    } else {
10033
0
      if (yych <= '_') {
10034
0
        if (yych <= '@') goto yy908;
10035
0
        if (yych <= 'Z') goto yy692;
10036
0
        if (yych <= '^') goto yy908;
10037
0
        goto yy692;
10038
0
      } else {
10039
0
        if (yych <= '`') goto yy908;
10040
0
        if (yych <= 'z') goto yy692;
10041
0
        if (yych <= 0x7F) goto yy908;
10042
0
        goto yy692;
10043
0
      }
10044
0
    }
10045
0
yy881:
10046
0
    YYDEBUG(881, *YYCURSOR);
10047
0
    yyaccept = 4;
10048
0
    yych = *(YYMARKER = ++YYCURSOR);
10049
0
    if (yych == '_') goto yy910;
10050
0
    goto yy48;
10051
0
yy882:
10052
0
    YYDEBUG(882, *YYCURSOR);
10053
0
    yyaccept = 4;
10054
0
    yych = *(YYMARKER = ++YYCURSOR);
10055
0
    if (yych == 'I') goto yy912;
10056
0
    if (yych == 'i') goto yy912;
10057
0
    goto yy48;
10058
0
yy883:
10059
0
    YYDEBUG(883, *YYCURSOR);
10060
0
    yyaccept = 4;
10061
0
    yych = *(YYMARKER = ++YYCURSOR);
10062
0
    if (yych == '_') goto yy913;
10063
0
    goto yy48;
10064
0
yy884:
10065
0
    YYDEBUG(884, *YYCURSOR);
10066
0
    yyaccept = 4;
10067
0
    yych = *(YYMARKER = ++YYCURSOR);
10068
0
    if (yych == '_') goto yy914;
10069
0
    goto yy48;
10070
0
yy885:
10071
0
    YYDEBUG(885, *YYCURSOR);
10072
0
    ++YYCURSOR;
10073
0
yy886:
10074
0
    YYDEBUG(886, *YYCURSOR);
10075
0
    yyleng = YYCURSOR - SCNG(yy_text);
10076
0
#line 1570 "Zend/zend_language_scanner.l"
10077
0
    {
10078
0
  yyless(4);
10079
0
  RETURN_TOKEN_WITH_STR(T_STRING, 0);
10080
0
}
10081
0
#line 10082 "Zend/zend_language_scanner.c"
10082
0
yy887:
10083
0
    YYDEBUG(887, *YYCURSOR);
10084
0
    yych = *++YYCURSOR;
10085
0
    if (yych == 'N') goto yy916;
10086
0
    if (yych == 'n') goto yy916;
10087
0
    goto yy86;
10088
0
yy888:
10089
0
    YYDEBUG(888, *YYCURSOR);
10090
0
    ++YYCURSOR;
10091
0
    YYFILL(1);
10092
0
    yych = *YYCURSOR;
10093
0
    if (yych <= '\f') {
10094
0
      if (yych <= 0x00) goto yy86;
10095
0
      if (yych == '\n') goto yy859;
10096
0
      goto yy738;
10097
0
    } else {
10098
0
      if (yych <= '\r') goto yy859;
10099
0
      if (yych == '*') goto yy789;
10100
0
      goto yy738;
10101
0
    }
10102
0
yy889:
10103
0
    YYDEBUG(889, *YYCURSOR);
10104
0
    ++YYCURSOR;
10105
0
    YYFILL(1);
10106
0
    yych = *YYCURSOR;
10107
0
    if (yych <= '\f') {
10108
0
      if (yych <= 0x00) goto yy86;
10109
0
      if (yych == '\n') goto yy787;
10110
0
      goto yy738;
10111
0
    } else {
10112
0
      if (yych <= '\r') goto yy787;
10113
0
      if (yych == '*') goto yy917;
10114
0
      goto yy738;
10115
0
    }
10116
0
yy890:
10117
0
    YYDEBUG(890, *YYCURSOR);
10118
0
    yyaccept = 53;
10119
0
    YYMARKER = ++YYCURSOR;
10120
0
    YYFILL(1);
10121
0
    yych = *YYCURSOR;
10122
0
    if (yych <= '\f') {
10123
0
      if (yych <= 0x00) goto yy583;
10124
0
      if (yych == '\n') goto yy787;
10125
0
      goto yy738;
10126
0
    } else {
10127
0
      if (yych <= '\r') goto yy787;
10128
0
      if (yych == '*') goto yy789;
10129
0
      goto yy738;
10130
0
    }
10131
0
yy891:
10132
0
    YYDEBUG(891, *YYCURSOR);
10133
0
    yyaccept = 53;
10134
0
    YYMARKER = ++YYCURSOR;
10135
0
    YYFILL(1);
10136
0
    yych = *YYCURSOR;
10137
0
    if (yych <= ')') {
10138
0
      if (yych <= '\n') {
10139
0
        if (yych <= 0x00) goto yy583;
10140
0
        if (yych <= '\t') goto yy738;
10141
0
        goto yy787;
10142
0
      } else {
10143
0
        if (yych == '\r') goto yy787;
10144
0
        goto yy738;
10145
0
      }
10146
0
    } else {
10147
0
      if (yych <= 'X') {
10148
0
        if (yych <= '*') goto yy789;
10149
0
        if (yych <= 'W') goto yy738;
10150
0
        goto yy918;
10151
0
      } else {
10152
0
        if (yych == 'x') goto yy918;
10153
0
        goto yy738;
10154
0
      }
10155
0
    }
10156
0
yy892:
10157
0
    YYDEBUG(892, *YYCURSOR);
10158
0
    yyaccept = 53;
10159
0
    YYMARKER = ++YYCURSOR;
10160
0
    YYFILL(1);
10161
0
    yych = *YYCURSOR;
10162
0
    if (yych <= ')') {
10163
0
      if (yych <= '\n') {
10164
0
        if (yych <= 0x00) goto yy583;
10165
0
        if (yych <= '\t') goto yy738;
10166
0
        goto yy787;
10167
0
      } else {
10168
0
        if (yych == '\r') goto yy787;
10169
0
        goto yy738;
10170
0
      }
10171
0
    } else {
10172
0
      if (yych <= 'M') {
10173
0
        if (yych <= '*') goto yy789;
10174
0
        if (yych <= 'L') goto yy738;
10175
0
        goto yy919;
10176
0
      } else {
10177
0
        if (yych == 'm') goto yy919;
10178
0
        goto yy738;
10179
0
      }
10180
0
    }
10181
0
yy893:
10182
0
    YYDEBUG(893, *YYCURSOR);
10183
0
    ++YYCURSOR;
10184
0
    YYFILL(1);
10185
0
    yych = *YYCURSOR;
10186
0
    if (yych <= 'D') {
10187
0
      if (yych <= 0x00) goto yy86;
10188
0
      if (yych == '*') goto yy668;
10189
0
      goto yy590;
10190
0
    } else {
10191
0
      if (yych <= 'E') goto yy920;
10192
0
      if (yych == 'e') goto yy920;
10193
0
      goto yy590;
10194
0
    }
10195
0
yy894:
10196
0
    YYDEBUG(894, *YYCURSOR);
10197
0
    ++YYCURSOR;
10198
0
    YYFILL(1);
10199
0
    yych = *YYCURSOR;
10200
0
    if (yych <= 'K') {
10201
0
      if (yych <= 0x00) goto yy86;
10202
0
      if (yych == '*') goto yy668;
10203
0
      goto yy590;
10204
0
    } else {
10205
0
      if (yych <= 'L') goto yy921;
10206
0
      if (yych == 'l') goto yy921;
10207
0
      goto yy590;
10208
0
    }
10209
0
yy895:
10210
0
    YYDEBUG(895, *YYCURSOR);
10211
0
    ++YYCURSOR;
10212
0
    YYFILL(1);
10213
0
    yych = *YYCURSOR;
10214
0
    if (yych <= '\r') {
10215
0
      if (yych <= '\t') {
10216
0
        if (yych <= 0x00) goto yy86;
10217
0
        goto yy586;
10218
0
      } else {
10219
0
        if (yych <= '\n') goto yy495;
10220
0
        if (yych <= '\f') goto yy586;
10221
0
        goto yy495;
10222
0
      }
10223
0
    } else {
10224
0
      if (yych <= 'S') {
10225
0
        if (yych <= 'R') goto yy586;
10226
0
        goto yy922;
10227
0
      } else {
10228
0
        if (yych == 's') goto yy922;
10229
0
        goto yy586;
10230
0
      }
10231
0
    }
10232
0
yy896:
10233
0
    YYDEBUG(896, *YYCURSOR);
10234
0
    ++YYCURSOR;
10235
0
    YYFILL(1);
10236
0
    yych = *YYCURSOR;
10237
0
    if (yych <= '\r') {
10238
0
      if (yych <= '\t') {
10239
0
        if (yych <= 0x00) goto yy86;
10240
0
        goto yy586;
10241
0
      } else {
10242
0
        if (yych <= '\n') goto yy495;
10243
0
        if (yych <= '\f') goto yy586;
10244
0
        goto yy495;
10245
0
      }
10246
0
    } else {
10247
0
      if (yych <= 'E') {
10248
0
        if (yych <= 'D') goto yy586;
10249
0
        goto yy923;
10250
0
      } else {
10251
0
        if (yych == 'e') goto yy923;
10252
0
        goto yy586;
10253
0
      }
10254
0
    }
10255
0
yy897:
10256
0
    YYDEBUG(897, *YYCURSOR);
10257
0
    yyaccept = 89;
10258
0
    yych = *(YYMARKER = ++YYCURSOR);
10259
0
    if (yybm[256+yych] & 128) {
10260
0
      goto yy47;
10261
0
    }
10262
0
    if (yych == '\\') goto yy164;
10263
0
yy898:
10264
0
    YYDEBUG(898, *YYCURSOR);
10265
0
    yyleng = YYCURSOR - SCNG(yy_text);
10266
0
#line 1726 "Zend/zend_language_scanner.l"
10267
0
    {
10268
0
  RETURN_TOKEN_WITH_IDENT(T_INCLUDE_ONCE);
10269
0
}
10270
0
#line 10271 "Zend/zend_language_scanner.c"
10271
0
yy899:
10272
0
    YYDEBUG(899, *YYCURSOR);
10273
0
    ++YYCURSOR;
10274
0
    YYDEBUG(900, *YYCURSOR);
10275
0
    yyleng = YYCURSOR - SCNG(yy_text);
10276
0
#line 1794 "Zend/zend_language_scanner.l"
10277
0
    {
10278
0
  RETURN_TOKEN_WITH_IDENT(T_PRIVATE_SET);
10279
0
}
10280
0
#line 10281 "Zend/zend_language_scanner.c"
10281
0
yy901:
10282
0
    YYDEBUG(901, *YYCURSOR);
10283
0
    yych = *++YYCURSOR;
10284
0
    if (yych == 'T') goto yy924;
10285
0
    if (yych == 't') goto yy924;
10286
0
    goto yy86;
10287
0
yy902:
10288
0
    YYDEBUG(902, *YYCURSOR);
10289
0
    yyaccept = 90;
10290
0
    yych = *(YYMARKER = ++YYCURSOR);
10291
0
    if (yybm[256+yych] & 128) {
10292
0
      goto yy47;
10293
0
    }
10294
0
    if (yych == '\\') goto yy164;
10295
0
yy903:
10296
0
    YYDEBUG(903, *YYCURSOR);
10297
0
    yyleng = YYCURSOR - SCNG(yy_text);
10298
0
#line 1734 "Zend/zend_language_scanner.l"
10299
0
    {
10300
0
  RETURN_TOKEN_WITH_IDENT(T_REQUIRE_ONCE);
10301
0
}
10302
0
#line 10303 "Zend/zend_language_scanner.c"
10303
0
yy904:
10304
0
    YYDEBUG(904, *YYCURSOR);
10305
0
    ++YYCURSOR;
10306
0
    YYFILL(1);
10307
0
    yych = *YYCURSOR;
10308
0
    YYDEBUG(905, *YYCURSOR);
10309
0
    if (yych <= '"') {
10310
0
      if (yych <= '\n') {
10311
0
        if (yych <= 0x00) goto yy86;
10312
0
        if (yych <= 0x08) goto yy808;
10313
0
        if (yych <= '\t') goto yy904;
10314
0
        goto yy846;
10315
0
      } else {
10316
0
        if (yych <= '\r') {
10317
0
          if (yych <= '\f') goto yy808;
10318
0
          goto yy846;
10319
0
        } else {
10320
0
          if (yych == ' ') goto yy904;
10321
0
          goto yy808;
10322
0
        }
10323
0
      }
10324
0
    } else {
10325
0
      if (yych <= '/') {
10326
0
        if (yych <= ')') {
10327
0
          if (yych <= '#') goto yy925;
10328
0
          goto yy808;
10329
0
        } else {
10330
0
          if (yych <= '*') goto yy848;
10331
0
          if (yych <= '.') goto yy808;
10332
0
          goto yy926;
10333
0
        }
10334
0
      } else {
10335
0
        if (yych <= 'F') {
10336
0
          if (yych <= 'E') goto yy808;
10337
0
          goto yy927;
10338
0
        } else {
10339
0
          if (yych == 'f') goto yy927;
10340
0
          goto yy808;
10341
0
        }
10342
0
      }
10343
0
    }
10344
0
yy906:
10345
0
    YYDEBUG(906, *YYCURSOR);
10346
0
    ++YYCURSOR;
10347
0
    YYFILL(1);
10348
0
    yych = *YYCURSOR;
10349
0
    if (yych <= '*') {
10350
0
      if (yych <= 0x00) goto yy86;
10351
0
      if (yych <= ')') goto yy696;
10352
0
      goto yy760;
10353
0
    } else {
10354
0
      if (yych == '/') goto yy846;
10355
0
      goto yy696;
10356
0
    }
10357
0
yy907:
10358
0
    YYDEBUG(907, *YYCURSOR);
10359
0
    ++YYCURSOR;
10360
0
    YYFILL(1);
10361
0
    yych = *YYCURSOR;
10362
0
    if (yych <= 'N') {
10363
0
      if (yych <= 0x00) goto yy86;
10364
0
      if (yych == '*') goto yy760;
10365
0
      goto yy696;
10366
0
    } else {
10367
0
      if (yych <= 'O') goto yy928;
10368
0
      if (yych == 'o') goto yy928;
10369
0
      goto yy696;
10370
0
    }
10371
0
yy908:
10372
0
    YYDEBUG(908, *YYCURSOR);
10373
0
    yyaccept = 91;
10374
0
    YYMARKER = ++YYCURSOR;
10375
0
    YYFILL(1);
10376
0
    yych = *YYCURSOR;
10377
0
    if (yych <= '\n') {
10378
0
      if (yych <= 0x00) goto yy876;
10379
0
      if (yych <= '\t') goto yy692;
10380
0
      goto yy616;
10381
0
    } else {
10382
0
      if (yych == '\r') goto yy616;
10383
0
      goto yy692;
10384
0
    }
10385
0
yy909:
10386
0
    YYDEBUG(909, *YYCURSOR);
10387
0
    yyaccept = 91;
10388
0
    YYMARKER = ++YYCURSOR;
10389
0
    YYFILL(5);
10390
0
    yych = *YYCURSOR;
10391
0
    if (yych <= '"') {
10392
0
      if (yych <= '\f') {
10393
0
        if (yych <= 0x08) goto yy876;
10394
0
        if (yych <= '\n') goto yy616;
10395
0
        goto yy876;
10396
0
      } else {
10397
0
        if (yych <= '\r') goto yy616;
10398
0
        if (yych == ' ') goto yy616;
10399
0
        goto yy876;
10400
0
      }
10401
0
    } else {
10402
0
      if (yych <= 'E') {
10403
0
        if (yych <= '#') goto yy618;
10404
0
        if (yych == '/') goto yy619;
10405
0
        goto yy876;
10406
0
      } else {
10407
0
        if (yych <= 'F') goto yy691;
10408
0
        if (yych == 'f') goto yy691;
10409
0
        goto yy876;
10410
0
      }
10411
0
    }
10412
0
yy910:
10413
0
    YYDEBUG(910, *YYCURSOR);
10414
0
    yyaccept = 92;
10415
0
    yych = *(YYMARKER = ++YYCURSOR);
10416
0
    if (yybm[256+yych] & 128) {
10417
0
      goto yy47;
10418
0
    }
10419
0
    if (yych == '\\') goto yy164;
10420
0
yy911:
10421
0
    YYDEBUG(911, *YYCURSOR);
10422
0
    yyleng = YYCURSOR - SCNG(yy_text);
10423
0
#line 2261 "Zend/zend_language_scanner.l"
10424
0
    {
10425
0
  RETURN_TOKEN_WITH_IDENT(T_FUNC_C);
10426
0
}
10427
0
#line 10428 "Zend/zend_language_scanner.c"
10428
0
yy912:
10429
0
    YYDEBUG(912, *YYCURSOR);
10430
0
    yyaccept = 4;
10431
0
    yych = *(YYMARKER = ++YYCURSOR);
10432
0
    if (yych == 'L') goto yy929;
10433
0
    if (yych == 'l') goto yy929;
10434
0
    goto yy48;
10435
0
yy913:
10436
0
    YYDEBUG(913, *YYCURSOR);
10437
0
    yyaccept = 4;
10438
0
    yych = *(YYMARKER = ++YYCURSOR);
10439
0
    if (yych == '_') goto yy930;
10440
0
    goto yy48;
10441
0
yy914:
10442
0
    YYDEBUG(914, *YYCURSOR);
10443
0
    yyaccept = 93;
10444
0
    yych = *(YYMARKER = ++YYCURSOR);
10445
0
    if (yybm[256+yych] & 128) {
10446
0
      goto yy47;
10447
0
    }
10448
0
    if (yych == '\\') goto yy164;
10449
0
yy915:
10450
0
    YYDEBUG(915, *YYCURSOR);
10451
0
    yyleng = YYCURSOR - SCNG(yy_text);
10452
0
#line 2265 "Zend/zend_language_scanner.l"
10453
0
    {
10454
0
  RETURN_TOKEN_WITH_IDENT(T_PROPERTY_C);
10455
0
}
10456
0
#line 10457 "Zend/zend_language_scanner.c"
10457
0
yy916:
10458
0
    YYDEBUG(916, *YYCURSOR);
10459
0
    yych = *++YYCURSOR;
10460
0
    if (yych == 'T') goto yy857;
10461
0
    if (yych == 't') goto yy857;
10462
0
    goto yy86;
10463
0
yy917:
10464
0
    YYDEBUG(917, *YYCURSOR);
10465
0
    ++YYCURSOR;
10466
0
    YYFILL(1);
10467
0
    yych = *YYCURSOR;
10468
0
    if (yych <= '\r') {
10469
0
      if (yych <= '\t') {
10470
0
        if (yych <= 0x00) goto yy86;
10471
0
        goto yy738;
10472
0
      } else {
10473
0
        if (yych <= '\n') goto yy787;
10474
0
        if (yych <= '\f') goto yy738;
10475
0
        goto yy787;
10476
0
      }
10477
0
    } else {
10478
0
      if (yych <= '*') {
10479
0
        if (yych <= ')') goto yy738;
10480
0
        goto yy789;
10481
0
      } else {
10482
0
        if (yych == '/') goto yy859;
10483
0
        goto yy738;
10484
0
      }
10485
0
    }
10486
0
yy918:
10487
0
    YYDEBUG(918, *YYCURSOR);
10488
0
    ++YYCURSOR;
10489
0
    YYFILL(1);
10490
0
    yych = *YYCURSOR;
10491
0
    if (yych <= ')') {
10492
0
      if (yych <= '\n') {
10493
0
        if (yych <= 0x00) goto yy86;
10494
0
        if (yych <= '\t') goto yy738;
10495
0
        goto yy787;
10496
0
      } else {
10497
0
        if (yych == '\r') goto yy787;
10498
0
        goto yy738;
10499
0
      }
10500
0
    } else {
10501
0
      if (yych <= 'T') {
10502
0
        if (yych <= '*') goto yy789;
10503
0
        if (yych <= 'S') goto yy738;
10504
0
        goto yy932;
10505
0
      } else {
10506
0
        if (yych == 't') goto yy932;
10507
0
        goto yy738;
10508
0
      }
10509
0
    }
10510
0
yy919:
10511
0
    YYDEBUG(919, *YYCURSOR);
10512
0
    ++YYCURSOR;
10513
0
    YYFILL(1);
10514
0
    yych = *YYCURSOR;
10515
0
    if (yych <= ')') {
10516
0
      if (yych <= '\n') {
10517
0
        if (yych <= 0x00) goto yy86;
10518
0
        if (yych <= '\t') goto yy738;
10519
0
        goto yy787;
10520
0
      } else {
10521
0
        if (yych == '\r') goto yy787;
10522
0
        goto yy738;
10523
0
      }
10524
0
    } else {
10525
0
      if (yych <= 'P') {
10526
0
        if (yych <= '*') goto yy789;
10527
0
        if (yych <= 'O') goto yy738;
10528
0
        goto yy933;
10529
0
      } else {
10530
0
        if (yych == 'p') goto yy933;
10531
0
        goto yy738;
10532
0
      }
10533
0
    }
10534
0
yy920:
10535
0
    YYDEBUG(920, *YYCURSOR);
10536
0
    ++YYCURSOR;
10537
0
    YYFILL(1);
10538
0
    yych = *YYCURSOR;
10539
0
    if (yych <= 'M') {
10540
0
      if (yych <= 0x00) goto yy86;
10541
0
      if (yych == '*') goto yy668;
10542
0
      goto yy590;
10543
0
    } else {
10544
0
      if (yych <= 'N') goto yy934;
10545
0
      if (yych == 'n') goto yy934;
10546
0
      goto yy590;
10547
0
    }
10548
0
yy921:
10549
0
    YYDEBUG(921, *YYCURSOR);
10550
0
    ++YYCURSOR;
10551
0
    YYFILL(1);
10552
0
    yych = *YYCURSOR;
10553
0
    if (yych <= 'D') {
10554
0
      if (yych <= 0x00) goto yy86;
10555
0
      if (yych == '*') goto yy668;
10556
0
      goto yy590;
10557
0
    } else {
10558
0
      if (yych <= 'E') goto yy935;
10559
0
      if (yych == 'e') goto yy935;
10560
0
      goto yy590;
10561
0
    }
10562
0
yy922:
10563
0
    YYDEBUG(922, *YYCURSOR);
10564
0
    yyaccept = 94;
10565
0
    YYMARKER = ++YYCURSOR;
10566
0
    YYFILL(1);
10567
0
    yych = *YYCURSOR;
10568
0
    if (yych <= '\n') {
10569
0
      if (yych <= 0x00) goto yy886;
10570
0
      if (yych <= '\t') goto yy586;
10571
0
      goto yy495;
10572
0
    } else {
10573
0
      if (yych == '\r') goto yy495;
10574
0
      goto yy586;
10575
0
    }
10576
0
yy923:
10577
0
    YYDEBUG(923, *YYCURSOR);
10578
0
    ++YYCURSOR;
10579
0
    YYFILL(1);
10580
0
    yych = *YYCURSOR;
10581
0
    if (yych <= '\r') {
10582
0
      if (yych <= '\t') {
10583
0
        if (yych <= 0x00) goto yy86;
10584
0
        goto yy586;
10585
0
      } else {
10586
0
        if (yych <= '\n') goto yy495;
10587
0
        if (yych <= '\f') goto yy586;
10588
0
        goto yy495;
10589
0
      }
10590
0
    } else {
10591
0
      if (yych <= 'N') {
10592
0
        if (yych <= 'M') goto yy586;
10593
0
        goto yy936;
10594
0
      } else {
10595
0
        if (yych == 'n') goto yy936;
10596
0
        goto yy586;
10597
0
      }
10598
0
    }
10599
0
yy924:
10600
0
    YYDEBUG(924, *YYCURSOR);
10601
0
    yych = *++YYCURSOR;
10602
0
    if (yych == ')') goto yy937;
10603
0
    goto yy86;
10604
0
yy925:
10605
0
    YYDEBUG(925, *YYCURSOR);
10606
0
    ++YYCURSOR;
10607
0
    YYFILL(1);
10608
0
    yych = *YYCURSOR;
10609
0
    if (yych <= '\f') {
10610
0
      if (yych <= 0x00) goto yy86;
10611
0
      if (yych == '\n') goto yy904;
10612
0
      goto yy808;
10613
0
    } else {
10614
0
      if (yych <= '\r') goto yy904;
10615
0
      if (yych == '*') goto yy848;
10616
0
      goto yy808;
10617
0
    }
10618
0
yy926:
10619
0
    YYDEBUG(926, *YYCURSOR);
10620
0
    ++YYCURSOR;
10621
0
    YYFILL(1);
10622
0
    yych = *YYCURSOR;
10623
0
    if (yych <= '\f') {
10624
0
      if (yych <= 0x00) goto yy86;
10625
0
      if (yych == '\n') goto yy846;
10626
0
      goto yy808;
10627
0
    } else {
10628
0
      if (yych <= '\r') goto yy846;
10629
0
      if (yych == '*') goto yy939;
10630
0
      goto yy808;
10631
0
    }
10632
0
yy927:
10633
0
    YYDEBUG(927, *YYCURSOR);
10634
0
    ++YYCURSOR;
10635
0
    YYFILL(1);
10636
0
    yych = *YYCURSOR;
10637
0
    if (yych <= ')') {
10638
0
      if (yych <= '\n') {
10639
0
        if (yych <= 0x00) goto yy86;
10640
0
        if (yych <= '\t') goto yy808;
10641
0
        goto yy846;
10642
0
      } else {
10643
0
        if (yych == '\r') goto yy846;
10644
0
        goto yy808;
10645
0
      }
10646
0
    } else {
10647
0
      if (yych <= 'R') {
10648
0
        if (yych <= '*') goto yy848;
10649
0
        if (yych <= 'Q') goto yy808;
10650
0
        goto yy940;
10651
0
      } else {
10652
0
        if (yych == 'r') goto yy940;
10653
0
        goto yy808;
10654
0
      }
10655
0
    }
10656
0
yy928:
10657
0
    YYDEBUG(928, *YYCURSOR);
10658
0
    ++YYCURSOR;
10659
0
    YYFILL(1);
10660
0
    yych = *YYCURSOR;
10661
0
    if (yych <= 'L') {
10662
0
      if (yych <= 0x00) goto yy86;
10663
0
      if (yych == '*') goto yy760;
10664
0
      goto yy696;
10665
0
    } else {
10666
0
      if (yych <= 'M') goto yy941;
10667
0
      if (yych == 'm') goto yy941;
10668
0
      goto yy696;
10669
0
    }
10670
0
yy929:
10671
0
    YYDEBUG(929, *YYCURSOR);
10672
0
    yyaccept = 4;
10673
0
    yych = *(YYMARKER = ++YYCURSOR);
10674
0
    if (yych == 'E') goto yy942;
10675
0
    if (yych == 'e') goto yy942;
10676
0
    goto yy48;
10677
0
yy930:
10678
0
    YYDEBUG(930, *YYCURSOR);
10679
0
    yyaccept = 95;
10680
0
    yych = *(YYMARKER = ++YYCURSOR);
10681
0
    if (yybm[256+yych] & 128) {
10682
0
      goto yy47;
10683
0
    }
10684
0
    if (yych == '\\') goto yy164;
10685
0
yy931:
10686
0
    YYDEBUG(931, *YYCURSOR);
10687
0
    yyleng = YYCURSOR - SCNG(yy_text);
10688
0
#line 2285 "Zend/zend_language_scanner.l"
10689
0
    {
10690
0
  RETURN_TOKEN_WITH_IDENT(T_NS_C);
10691
0
}
10692
0
#line 10693 "Zend/zend_language_scanner.c"
10693
0
yy932:
10694
0
    YYDEBUG(932, *YYCURSOR);
10695
0
    ++YYCURSOR;
10696
0
    YYFILL(1);
10697
0
    yych = *YYCURSOR;
10698
0
    if (yych <= ')') {
10699
0
      if (yych <= '\n') {
10700
0
        if (yych <= 0x00) goto yy86;
10701
0
        if (yych <= '\t') goto yy738;
10702
0
        goto yy787;
10703
0
      } else {
10704
0
        if (yych == '\r') goto yy787;
10705
0
        goto yy738;
10706
0
      }
10707
0
    } else {
10708
0
      if (yych <= 'E') {
10709
0
        if (yych <= '*') goto yy789;
10710
0
        if (yych <= 'D') goto yy738;
10711
0
        goto yy943;
10712
0
      } else {
10713
0
        if (yych == 'e') goto yy943;
10714
0
        goto yy738;
10715
0
      }
10716
0
    }
10717
0
yy933:
10718
0
    YYDEBUG(933, *YYCURSOR);
10719
0
    ++YYCURSOR;
10720
0
    YYFILL(1);
10721
0
    yych = *YYCURSOR;
10722
0
    if (yych <= ')') {
10723
0
      if (yych <= '\n') {
10724
0
        if (yych <= 0x00) goto yy86;
10725
0
        if (yych <= '\t') goto yy738;
10726
0
        goto yy787;
10727
0
      } else {
10728
0
        if (yych == '\r') goto yy787;
10729
0
        goto yy738;
10730
0
      }
10731
0
    } else {
10732
0
      if (yych <= 'L') {
10733
0
        if (yych <= '*') goto yy789;
10734
0
        if (yych <= 'K') goto yy738;
10735
0
        goto yy944;
10736
0
      } else {
10737
0
        if (yych == 'l') goto yy944;
10738
0
        goto yy738;
10739
0
      }
10740
0
    }
10741
0
yy934:
10742
0
    YYDEBUG(934, *YYCURSOR);
10743
0
    ++YYCURSOR;
10744
0
    YYFILL(1);
10745
0
    yych = *YYCURSOR;
10746
0
    if (yych <= 'C') {
10747
0
      if (yych <= 0x00) goto yy86;
10748
0
      if (yych == '*') goto yy668;
10749
0
      goto yy590;
10750
0
    } else {
10751
0
      if (yych <= 'D') goto yy945;
10752
0
      if (yych == 'd') goto yy945;
10753
0
      goto yy590;
10754
0
    }
10755
0
yy935:
10756
0
    YYDEBUG(935, *YYCURSOR);
10757
0
    ++YYCURSOR;
10758
0
    YYFILL(1);
10759
0
    yych = *YYCURSOR;
10760
0
    if (yych <= 'L') {
10761
0
      if (yych <= 0x00) goto yy86;
10762
0
      if (yych == '*') goto yy668;
10763
0
      goto yy590;
10764
0
    } else {
10765
0
      if (yych <= 'M') goto yy946;
10766
0
      if (yych == 'm') goto yy946;
10767
0
      goto yy590;
10768
0
    }
10769
0
yy936:
10770
0
    YYDEBUG(936, *YYCURSOR);
10771
0
    ++YYCURSOR;
10772
0
    YYFILL(1);
10773
0
    yych = *YYCURSOR;
10774
0
    if (yych <= '\r') {
10775
0
      if (yych <= '\t') {
10776
0
        if (yych <= 0x00) goto yy86;
10777
0
        goto yy586;
10778
0
      } else {
10779
0
        if (yych <= '\n') goto yy495;
10780
0
        if (yych <= '\f') goto yy586;
10781
0
        goto yy495;
10782
0
      }
10783
0
    } else {
10784
0
      if (yych <= 'T') {
10785
0
        if (yych <= 'S') goto yy586;
10786
0
        goto yy895;
10787
0
      } else {
10788
0
        if (yych == 't') goto yy895;
10789
0
        goto yy586;
10790
0
      }
10791
0
    }
10792
0
yy937:
10793
0
    YYDEBUG(937, *YYCURSOR);
10794
0
    ++YYCURSOR;
10795
0
    YYDEBUG(938, *YYCURSOR);
10796
0
    yyleng = YYCURSOR - SCNG(yy_text);
10797
0
#line 1790 "Zend/zend_language_scanner.l"
10798
0
    {
10799
0
  RETURN_TOKEN_WITH_IDENT(T_PROTECTED_SET);
10800
0
}
10801
0
#line 10802 "Zend/zend_language_scanner.c"
10802
0
yy939:
10803
0
    YYDEBUG(939, *YYCURSOR);
10804
0
    ++YYCURSOR;
10805
0
    YYFILL(1);
10806
0
    yych = *YYCURSOR;
10807
0
    if (yych <= '\r') {
10808
0
      if (yych <= '\t') {
10809
0
        if (yych <= 0x00) goto yy86;
10810
0
        goto yy808;
10811
0
      } else {
10812
0
        if (yych <= '\n') goto yy846;
10813
0
        if (yych <= '\f') goto yy808;
10814
0
        goto yy846;
10815
0
      }
10816
0
    } else {
10817
0
      if (yych <= '*') {
10818
0
        if (yych <= ')') goto yy808;
10819
0
        goto yy848;
10820
0
      } else {
10821
0
        if (yych == '/') goto yy904;
10822
0
        goto yy808;
10823
0
      }
10824
0
    }
10825
0
yy940:
10826
0
    YYDEBUG(940, *YYCURSOR);
10827
0
    ++YYCURSOR;
10828
0
    YYFILL(1);
10829
0
    yych = *YYCURSOR;
10830
0
    if (yych <= ')') {
10831
0
      if (yych <= '\n') {
10832
0
        if (yych <= 0x00) goto yy86;
10833
0
        if (yych <= '\t') goto yy808;
10834
0
        goto yy846;
10835
0
      } else {
10836
0
        if (yych == '\r') goto yy846;
10837
0
        goto yy808;
10838
0
      }
10839
0
    } else {
10840
0
      if (yych <= 'O') {
10841
0
        if (yych <= '*') goto yy848;
10842
0
        if (yych <= 'N') goto yy808;
10843
0
        goto yy947;
10844
0
      } else {
10845
0
        if (yych == 'o') goto yy947;
10846
0
        goto yy808;
10847
0
      }
10848
0
    }
10849
0
yy941:
10850
0
    YYDEBUG(941, *YYCURSOR);
10851
0
    ++YYCURSOR;
10852
0
    YYFILL(1);
10853
0
    yych = *YYCURSOR;
10854
0
    if (yych <= '@') {
10855
0
      if (yych <= '*') {
10856
0
        if (yych <= 0x00) goto yy875;
10857
0
        if (yych <= ')') goto yy948;
10858
0
        goto yy949;
10859
0
      } else {
10860
0
        if (yych <= '/') goto yy948;
10861
0
        if (yych <= '9') goto yy696;
10862
0
        goto yy948;
10863
0
      }
10864
0
    } else {
10865
0
      if (yych <= '_') {
10866
0
        if (yych <= 'Z') goto yy696;
10867
0
        if (yych <= '^') goto yy948;
10868
0
        goto yy696;
10869
0
      } else {
10870
0
        if (yych <= '`') goto yy948;
10871
0
        if (yych <= 'z') goto yy696;
10872
0
        if (yych <= 0x7F) goto yy948;
10873
0
        goto yy696;
10874
0
      }
10875
0
    }
10876
0
yy942:
10877
0
    YYDEBUG(942, *YYCURSOR);
10878
0
    yyaccept = 4;
10879
0
    yych = *(YYMARKER = ++YYCURSOR);
10880
0
    if (yych == 'R') goto yy950;
10881
0
    if (yych == 'r') goto yy950;
10882
0
    goto yy48;
10883
0
yy943:
10884
0
    YYDEBUG(943, *YYCURSOR);
10885
0
    ++YYCURSOR;
10886
0
    YYFILL(1);
10887
0
    yych = *YYCURSOR;
10888
0
    if (yych <= ')') {
10889
0
      if (yych <= '\n') {
10890
0
        if (yych <= 0x00) goto yy86;
10891
0
        if (yych <= '\t') goto yy738;
10892
0
        goto yy787;
10893
0
      } else {
10894
0
        if (yych == '\r') goto yy787;
10895
0
        goto yy738;
10896
0
      }
10897
0
    } else {
10898
0
      if (yych <= 'N') {
10899
0
        if (yych <= '*') goto yy789;
10900
0
        if (yych <= 'M') goto yy738;
10901
0
        goto yy952;
10902
0
      } else {
10903
0
        if (yych == 'n') goto yy952;
10904
0
        goto yy738;
10905
0
      }
10906
0
    }
10907
0
yy944:
10908
0
    YYDEBUG(944, *YYCURSOR);
10909
0
    ++YYCURSOR;
10910
0
    YYFILL(1);
10911
0
    yych = *YYCURSOR;
10912
0
    if (yych <= ')') {
10913
0
      if (yych <= '\n') {
10914
0
        if (yych <= 0x00) goto yy86;
10915
0
        if (yych <= '\t') goto yy738;
10916
0
        goto yy787;
10917
0
      } else {
10918
0
        if (yych == '\r') goto yy787;
10919
0
        goto yy738;
10920
0
      }
10921
0
    } else {
10922
0
      if (yych <= 'E') {
10923
0
        if (yych <= '*') goto yy789;
10924
0
        if (yych <= 'D') goto yy738;
10925
0
        goto yy953;
10926
0
      } else {
10927
0
        if (yych == 'e') goto yy953;
10928
0
        goto yy738;
10929
0
      }
10930
0
    }
10931
0
yy945:
10932
0
    YYDEBUG(945, *YYCURSOR);
10933
0
    ++YYCURSOR;
10934
0
    YYFILL(1);
10935
0
    yych = *YYCURSOR;
10936
0
    if (yych <= 'R') {
10937
0
      if (yych <= 0x00) goto yy86;
10938
0
      if (yych == '*') goto yy668;
10939
0
      goto yy590;
10940
0
    } else {
10941
0
      if (yych <= 'S') goto yy954;
10942
0
      if (yych == 's') goto yy954;
10943
0
      goto yy590;
10944
0
    }
10945
0
yy946:
10946
0
    YYDEBUG(946, *YYCURSOR);
10947
0
    ++YYCURSOR;
10948
0
    YYFILL(1);
10949
0
    yych = *YYCURSOR;
10950
0
    if (yych <= 'D') {
10951
0
      if (yych <= 0x00) goto yy86;
10952
0
      if (yych == '*') goto yy668;
10953
0
      goto yy590;
10954
0
    } else {
10955
0
      if (yych <= 'E') goto yy955;
10956
0
      if (yych == 'e') goto yy955;
10957
0
      goto yy590;
10958
0
    }
10959
0
yy947:
10960
0
    YYDEBUG(947, *YYCURSOR);
10961
0
    ++YYCURSOR;
10962
0
    YYFILL(1);
10963
0
    yych = *YYCURSOR;
10964
0
    if (yych <= ')') {
10965
0
      if (yych <= '\n') {
10966
0
        if (yych <= 0x00) goto yy86;
10967
0
        if (yych <= '\t') goto yy808;
10968
0
        goto yy846;
10969
0
      } else {
10970
0
        if (yych == '\r') goto yy846;
10971
0
        goto yy808;
10972
0
      }
10973
0
    } else {
10974
0
      if (yych <= 'M') {
10975
0
        if (yych <= '*') goto yy848;
10976
0
        if (yych <= 'L') goto yy808;
10977
0
        goto yy956;
10978
0
      } else {
10979
0
        if (yych == 'm') goto yy956;
10980
0
        goto yy808;
10981
0
      }
10982
0
    }
10983
0
yy948:
10984
0
    YYDEBUG(948, *YYCURSOR);
10985
0
    yyaccept = 91;
10986
0
    YYMARKER = ++YYCURSOR;
10987
0
    YYFILL(1);
10988
0
    yych = *YYCURSOR;
10989
0
    if (yych <= 0x00) goto yy876;
10990
0
    if (yych == '*') goto yy760;
10991
0
    goto yy696;
10992
0
yy949:
10993
0
    YYDEBUG(949, *YYCURSOR);
10994
0
    yyaccept = 91;
10995
0
    YYMARKER = ++YYCURSOR;
10996
0
    YYFILL(1);
10997
0
    yych = *YYCURSOR;
10998
0
    if (yych <= '*') {
10999
0
      if (yych <= 0x00) goto yy876;
11000
0
      if (yych <= ')') goto yy696;
11001
0
      goto yy760;
11002
0
    } else {
11003
0
      if (yych == '/') goto yy616;
11004
0
      goto yy696;
11005
0
    }
11006
0
yy950:
11007
0
    YYDEBUG(950, *YYCURSOR);
11008
0
    yyaccept = 96;
11009
0
    yych = *(YYMARKER = ++YYCURSOR);
11010
0
    if (yybm[256+yych] & 128) {
11011
0
      goto yy47;
11012
0
    }
11013
0
    if (yych == '\\') goto yy164;
11014
0
yy951:
11015
0
    YYDEBUG(951, *YYCURSOR);
11016
0
    yyleng = YYCURSOR - SCNG(yy_text);
11017
0
#line 1762 "Zend/zend_language_scanner.l"
11018
0
    {
11019
0
  RETURN_TOKEN_WITH_IDENT(T_HALT_COMPILER);
11020
0
}
11021
0
#line 11022 "Zend/zend_language_scanner.c"
11022
0
yy952:
11023
0
    YYDEBUG(952, *YYCURSOR);
11024
0
    ++YYCURSOR;
11025
0
    YYFILL(1);
11026
0
    yych = *YYCURSOR;
11027
0
    if (yych <= ')') {
11028
0
      if (yych <= '\n') {
11029
0
        if (yych <= 0x00) goto yy86;
11030
0
        if (yych <= '\t') goto yy738;
11031
0
        goto yy787;
11032
0
      } else {
11033
0
        if (yych == '\r') goto yy787;
11034
0
        goto yy738;
11035
0
      }
11036
0
    } else {
11037
0
      if (yych <= 'D') {
11038
0
        if (yych <= '*') goto yy789;
11039
0
        if (yych <= 'C') goto yy738;
11040
0
        goto yy957;
11041
0
      } else {
11042
0
        if (yych == 'd') goto yy957;
11043
0
        goto yy738;
11044
0
      }
11045
0
    }
11046
0
yy953:
11047
0
    YYDEBUG(953, *YYCURSOR);
11048
0
    ++YYCURSOR;
11049
0
    YYFILL(1);
11050
0
    yych = *YYCURSOR;
11051
0
    if (yych <= ')') {
11052
0
      if (yych <= '\n') {
11053
0
        if (yych <= 0x00) goto yy86;
11054
0
        if (yych <= '\t') goto yy738;
11055
0
        goto yy787;
11056
0
      } else {
11057
0
        if (yych == '\r') goto yy787;
11058
0
        goto yy738;
11059
0
      }
11060
0
    } else {
11061
0
      if (yych <= 'M') {
11062
0
        if (yych <= '*') goto yy789;
11063
0
        if (yych <= 'L') goto yy738;
11064
0
        goto yy958;
11065
0
      } else {
11066
0
        if (yych == 'm') goto yy958;
11067
0
        goto yy738;
11068
0
      }
11069
0
    }
11070
0
yy954:
11071
0
    YYDEBUG(954, *YYCURSOR);
11072
0
    yyaccept = 94;
11073
0
    YYMARKER = ++YYCURSOR;
11074
0
    YYFILL(1);
11075
0
    yych = *YYCURSOR;
11076
0
    if (yych <= 0x00) goto yy886;
11077
0
    if (yych == '*') goto yy668;
11078
0
    goto yy590;
11079
0
yy955:
11080
0
    YYDEBUG(955, *YYCURSOR);
11081
0
    ++YYCURSOR;
11082
0
    YYFILL(1);
11083
0
    yych = *YYCURSOR;
11084
0
    if (yych <= 'M') {
11085
0
      if (yych <= 0x00) goto yy86;
11086
0
      if (yych == '*') goto yy668;
11087
0
      goto yy590;
11088
0
    } else {
11089
0
      if (yych <= 'N') goto yy959;
11090
0
      if (yych == 'n') goto yy959;
11091
0
      goto yy590;
11092
0
    }
11093
0
yy956:
11094
0
    YYDEBUG(956, *YYCURSOR);
11095
0
    ++YYCURSOR;
11096
0
    YYFILL(1);
11097
0
    yych = *YYCURSOR;
11098
0
    if (yych <= '/') {
11099
0
      if (yych <= '\f') {
11100
0
        if (yych <= 0x00) goto yy875;
11101
0
        if (yych == '\n') goto yy961;
11102
0
        goto yy960;
11103
0
      } else {
11104
0
        if (yych <= '\r') goto yy961;
11105
0
        if (yych == '*') goto yy962;
11106
0
        goto yy960;
11107
0
      }
11108
0
    } else {
11109
0
      if (yych <= '^') {
11110
0
        if (yych <= '9') goto yy808;
11111
0
        if (yych <= '@') goto yy960;
11112
0
        if (yych <= 'Z') goto yy808;
11113
0
        goto yy960;
11114
0
      } else {
11115
0
        if (yych <= '`') {
11116
0
          if (yych <= '_') goto yy808;
11117
0
          goto yy960;
11118
0
        } else {
11119
0
          if (yych <= 'z') goto yy808;
11120
0
          if (yych <= 0x7F) goto yy960;
11121
0
          goto yy808;
11122
0
        }
11123
0
      }
11124
0
    }
11125
0
yy957:
11126
0
    YYDEBUG(957, *YYCURSOR);
11127
0
    ++YYCURSOR;
11128
0
    YYFILL(1);
11129
0
    yych = *YYCURSOR;
11130
0
    if (yych <= ')') {
11131
0
      if (yych <= '\n') {
11132
0
        if (yych <= 0x00) goto yy86;
11133
0
        if (yych <= '\t') goto yy738;
11134
0
        goto yy787;
11135
0
      } else {
11136
0
        if (yych == '\r') goto yy787;
11137
0
        goto yy738;
11138
0
      }
11139
0
    } else {
11140
0
      if (yych <= 'S') {
11141
0
        if (yych <= '*') goto yy789;
11142
0
        if (yych <= 'R') goto yy738;
11143
0
        goto yy963;
11144
0
      } else {
11145
0
        if (yych == 's') goto yy963;
11146
0
        goto yy738;
11147
0
      }
11148
0
    }
11149
0
yy958:
11150
0
    YYDEBUG(958, *YYCURSOR);
11151
0
    ++YYCURSOR;
11152
0
    YYFILL(1);
11153
0
    yych = *YYCURSOR;
11154
0
    if (yych <= ')') {
11155
0
      if (yych <= '\n') {
11156
0
        if (yych <= 0x00) goto yy86;
11157
0
        if (yych <= '\t') goto yy738;
11158
0
        goto yy787;
11159
0
      } else {
11160
0
        if (yych == '\r') goto yy787;
11161
0
        goto yy738;
11162
0
      }
11163
0
    } else {
11164
0
      if (yych <= 'E') {
11165
0
        if (yych <= '*') goto yy789;
11166
0
        if (yych <= 'D') goto yy738;
11167
0
        goto yy964;
11168
0
      } else {
11169
0
        if (yych == 'e') goto yy964;
11170
0
        goto yy738;
11171
0
      }
11172
0
    }
11173
0
yy959:
11174
0
    YYDEBUG(959, *YYCURSOR);
11175
0
    ++YYCURSOR;
11176
0
    YYFILL(1);
11177
0
    yych = *YYCURSOR;
11178
0
    if (yych <= 'S') {
11179
0
      if (yych <= 0x00) goto yy86;
11180
0
      if (yych == '*') goto yy668;
11181
0
      goto yy590;
11182
0
    } else {
11183
0
      if (yych <= 'T') goto yy945;
11184
0
      if (yych == 't') goto yy945;
11185
0
      goto yy590;
11186
0
    }
11187
0
yy960:
11188
0
    YYDEBUG(960, *YYCURSOR);
11189
0
    yyaccept = 91;
11190
0
    YYMARKER = ++YYCURSOR;
11191
0
    YYFILL(1);
11192
0
    yych = *YYCURSOR;
11193
0
    if (yych <= '\f') {
11194
0
      if (yych <= 0x00) goto yy876;
11195
0
      if (yych == '\n') goto yy846;
11196
0
      goto yy808;
11197
0
    } else {
11198
0
      if (yych <= '\r') goto yy846;
11199
0
      if (yych == '*') goto yy848;
11200
0
      goto yy808;
11201
0
    }
11202
0
yy961:
11203
0
    YYDEBUG(961, *YYCURSOR);
11204
0
    yyaccept = 91;
11205
0
    YYMARKER = ++YYCURSOR;
11206
0
    YYFILL(1);
11207
0
    yych = *YYCURSOR;
11208
0
    if (yych <= '#') {
11209
0
      if (yych <= '\f') {
11210
0
        if (yych <= 0x00) goto yy876;
11211
0
        if (yych <= 0x08) goto yy696;
11212
0
        if (yych <= '\n') goto yy846;
11213
0
        goto yy696;
11214
0
      } else {
11215
0
        if (yych <= 0x1F) {
11216
0
          if (yych <= '\r') goto yy846;
11217
0
          goto yy696;
11218
0
        } else {
11219
0
          if (yych <= ' ') goto yy846;
11220
0
          if (yych <= '"') goto yy696;
11221
0
          goto yy877;
11222
0
        }
11223
0
      }
11224
0
    } else {
11225
0
      if (yych <= '/') {
11226
0
        if (yych == '*') goto yy760;
11227
0
        if (yych <= '.') goto yy696;
11228
0
        goto yy878;
11229
0
      } else {
11230
0
        if (yych <= 'F') {
11231
0
          if (yych <= 'E') goto yy696;
11232
0
          goto yy879;
11233
0
        } else {
11234
0
          if (yych == 'f') goto yy879;
11235
0
          goto yy696;
11236
0
        }
11237
0
      }
11238
0
    }
11239
0
yy962:
11240
0
    YYDEBUG(962, *YYCURSOR);
11241
0
    yyaccept = 91;
11242
0
    YYMARKER = ++YYCURSOR;
11243
0
    YYFILL(1);
11244
0
    yych = *YYCURSOR;
11245
0
    if (yych <= '\r') {
11246
0
      if (yych <= '\t') {
11247
0
        if (yych <= 0x00) goto yy876;
11248
0
        goto yy808;
11249
0
      } else {
11250
0
        if (yych <= '\n') goto yy846;
11251
0
        if (yych <= '\f') goto yy808;
11252
0
        goto yy846;
11253
0
      }
11254
0
    } else {
11255
0
      if (yych <= '*') {
11256
0
        if (yych <= ')') goto yy808;
11257
0
        goto yy848;
11258
0
      } else {
11259
0
        if (yych == '/') goto yy694;
11260
0
        goto yy808;
11261
0
      }
11262
0
    }
11263
0
yy963:
11264
0
    YYDEBUG(963, *YYCURSOR);
11265
0
    yyaccept = 94;
11266
0
    YYMARKER = ++YYCURSOR;
11267
0
    YYFILL(1);
11268
0
    yych = *YYCURSOR;
11269
0
    if (yych <= '\f') {
11270
0
      if (yych <= 0x00) goto yy886;
11271
0
      if (yych == '\n') goto yy787;
11272
0
      goto yy738;
11273
0
    } else {
11274
0
      if (yych <= '\r') goto yy787;
11275
0
      if (yych == '*') goto yy789;
11276
0
      goto yy738;
11277
0
    }
11278
0
yy964:
11279
0
    YYDEBUG(964, *YYCURSOR);
11280
0
    ++YYCURSOR;
11281
0
    YYFILL(1);
11282
0
    yych = *YYCURSOR;
11283
0
    if (yych <= ')') {
11284
0
      if (yych <= '\n') {
11285
0
        if (yych <= 0x00) goto yy86;
11286
0
        if (yych <= '\t') goto yy738;
11287
0
        goto yy787;
11288
0
      } else {
11289
0
        if (yych == '\r') goto yy787;
11290
0
        goto yy738;
11291
0
      }
11292
0
    } else {
11293
0
      if (yych <= 'N') {
11294
0
        if (yych <= '*') goto yy789;
11295
0
        if (yych <= 'M') goto yy738;
11296
0
      } else {
11297
0
        if (yych != 'n') goto yy738;
11298
0
      }
11299
0
    }
11300
0
    YYDEBUG(965, *YYCURSOR);
11301
0
    ++YYCURSOR;
11302
0
    YYFILL(1);
11303
0
    yych = *YYCURSOR;
11304
0
    if (yych <= ')') {
11305
0
      if (yych <= '\n') {
11306
0
        if (yych <= 0x00) goto yy86;
11307
0
        if (yych <= '\t') goto yy738;
11308
0
        goto yy787;
11309
0
      } else {
11310
0
        if (yych == '\r') goto yy787;
11311
0
        goto yy738;
11312
0
      }
11313
0
    } else {
11314
0
      if (yych <= 'T') {
11315
0
        if (yych <= '*') goto yy789;
11316
0
        if (yych <= 'S') goto yy738;
11317
0
        goto yy957;
11318
0
      } else {
11319
0
        if (yych == 't') goto yy957;
11320
0
        goto yy738;
11321
0
      }
11322
0
    }
11323
0
  }
11324
/* *********************************** */
11325
0
yyc_ST_LOOKING_FOR_PROPERTY:
11326
0
  {
11327
0
    static const unsigned char yybm[] = {
11328
0
        0,   0,   0,   0,   0,   0,   0,   0, 
11329
0
        0,  64,  64,   0,   0,  64,   0,   0, 
11330
0
        0,   0,   0,   0,   0,   0,   0,   0, 
11331
0
        0,   0,   0,   0,   0,   0,   0,   0, 
11332
0
       64,   0,   0,   0,   0,   0,   0,   0, 
11333
0
        0,   0,   0,   0,   0,   0,   0,   0, 
11334
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11335
0
      128, 128,   0,   0,   0,   0,   0,   0, 
11336
0
        0, 128, 128, 128, 128, 128, 128, 128, 
11337
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11338
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11339
0
      128, 128, 128,   0,   0,   0,   0, 128, 
11340
0
        0, 128, 128, 128, 128, 128, 128, 128, 
11341
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11342
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11343
0
      128, 128, 128,   0,   0,   0,   0,   0, 
11344
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11345
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11346
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11347
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11348
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11349
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11350
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11351
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11352
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11353
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11354
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11355
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11356
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11357
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11358
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11359
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11360
0
    };
11361
0
    YYDEBUG(966, *YYCURSOR);
11362
0
    YYFILL(4);
11363
0
    yych = *YYCURSOR;
11364
0
    if (yybm[0+yych] & 64) {
11365
0
      goto yy970;
11366
0
    }
11367
0
    if (yych <= '?') {
11368
0
      if (yych <= '-') {
11369
0
        if (yych == '#') goto yy973;
11370
0
        if (yych >= '-') goto yy975;
11371
0
      } else {
11372
0
        if (yych == '/') goto yy976;
11373
0
        if (yych >= '?') goto yy977;
11374
0
      }
11375
0
    } else {
11376
0
      if (yych <= '_') {
11377
0
        if (yych <= '@') goto yy968;
11378
0
        if (yych <= 'Z') goto yy978;
11379
0
        if (yych >= '_') goto yy978;
11380
0
      } else {
11381
0
        if (yych <= '`') goto yy968;
11382
0
        if (yych <= 'z') goto yy978;
11383
0
        if (yych >= 0x80) goto yy978;
11384
0
      }
11385
0
    }
11386
0
yy968:
11387
0
    YYDEBUG(968, *YYCURSOR);
11388
0
    ++YYCURSOR;
11389
0
yy969:
11390
0
    YYDEBUG(969, *YYCURSOR);
11391
0
    yyleng = YYCURSOR - SCNG(yy_text);
11392
0
#line 2520 "Zend/zend_language_scanner.l"
11393
0
    {
11394
0
  yyless(0);
11395
0
  yy_pop_state();
11396
0
  goto restart;
11397
0
}
11398
0
#line 11399 "Zend/zend_language_scanner.c"
11399
0
yy970:
11400
0
    YYDEBUG(970, *YYCURSOR);
11401
0
    ++YYCURSOR;
11402
0
    YYFILL(1);
11403
0
    yych = *YYCURSOR;
11404
0
    YYDEBUG(971, *YYCURSOR);
11405
0
    if (yybm[0+yych] & 64) {
11406
0
      goto yy970;
11407
0
    }
11408
0
    YYDEBUG(972, *YYCURSOR);
11409
0
    yyleng = YYCURSOR - SCNG(yy_text);
11410
0
#line 1597 "Zend/zend_language_scanner.l"
11411
0
    {
11412
0
  goto return_whitespace;
11413
0
}
11414
0
#line 11415 "Zend/zend_language_scanner.c"
11415
0
yy973:
11416
0
    YYDEBUG(973, *YYCURSOR);
11417
0
    ++YYCURSOR;
11418
0
    YYDEBUG(974, *YYCURSOR);
11419
0
    yyleng = YYCURSOR - SCNG(yy_text);
11420
0
#line 2460 "Zend/zend_language_scanner.l"
11421
0
    {
11422
0
  while (YYCURSOR < YYLIMIT) {
11423
0
    switch (*YYCURSOR++) {
11424
0
      case '\r':
11425
0
      case '\n':
11426
0
        YYCURSOR--;
11427
0
        break;
11428
0
      case '?':
11429
0
        if (*YYCURSOR == '>') {
11430
0
          YYCURSOR--;
11431
0
          break;
11432
0
        }
11433
0
        ZEND_FALLTHROUGH;
11434
0
      default:
11435
0
        continue;
11436
0
    }
11437
11438
0
    break;
11439
0
  }
11440
11441
0
  yyleng = YYCURSOR - SCNG(yy_text);
11442
0
  RETURN_OR_SKIP_TOKEN(T_COMMENT);
11443
0
}
11444
0
#line 11445 "Zend/zend_language_scanner.c"
11445
0
yy975:
11446
0
    YYDEBUG(975, *YYCURSOR);
11447
0
    yych = *++YYCURSOR;
11448
0
    if (yych == '>') goto yy981;
11449
0
    goto yy969;
11450
0
yy976:
11451
0
    YYDEBUG(976, *YYCURSOR);
11452
0
    yych = *++YYCURSOR;
11453
0
    if (yych == '*') goto yy983;
11454
0
    if (yych == '/') goto yy973;
11455
0
    goto yy969;
11456
0
yy977:
11457
0
    YYDEBUG(977, *YYCURSOR);
11458
0
    yyaccept = 0;
11459
0
    yych = *(YYMARKER = ++YYCURSOR);
11460
0
    if (yych == '-') goto yy985;
11461
0
    goto yy969;
11462
0
yy978:
11463
0
    YYDEBUG(978, *YYCURSOR);
11464
0
    ++YYCURSOR;
11465
0
    YYFILL(1);
11466
0
    yych = *YYCURSOR;
11467
0
    YYDEBUG(979, *YYCURSOR);
11468
0
    if (yybm[0+yych] & 128) {
11469
0
      goto yy978;
11470
0
    }
11471
0
    YYDEBUG(980, *YYCURSOR);
11472
0
    yyleng = YYCURSOR - SCNG(yy_text);
11473
0
#line 1609 "Zend/zend_language_scanner.l"
11474
0
    {
11475
0
  yy_pop_state();
11476
0
  RETURN_TOKEN_WITH_STR(T_STRING, 0);
11477
0
}
11478
0
#line 11479 "Zend/zend_language_scanner.c"
11479
0
yy981:
11480
0
    YYDEBUG(981, *YYCURSOR);
11481
0
    ++YYCURSOR;
11482
0
    YYDEBUG(982, *YYCURSOR);
11483
0
    yyleng = YYCURSOR - SCNG(yy_text);
11484
0
#line 1601 "Zend/zend_language_scanner.l"
11485
0
    {
11486
0
  RETURN_TOKEN(T_OBJECT_OPERATOR);
11487
0
}
11488
0
#line 11489 "Zend/zend_language_scanner.c"
11489
0
yy983:
11490
0
    YYDEBUG(983, *YYCURSOR);
11491
0
    yyaccept = 1;
11492
0
    yych = *(YYMARKER = ++YYCURSOR);
11493
0
    if (yych == '*') goto yy987;
11494
0
yy984:
11495
0
    YYDEBUG(984, *YYCURSOR);
11496
0
    yyleng = YYCURSOR - SCNG(yy_text);
11497
0
#line 2484 "Zend/zend_language_scanner.l"
11498
0
    {
11499
0
  int doc_com;
11500
11501
0
  if (yyleng > 2) {
11502
0
    doc_com = 1;
11503
0
    RESET_DOC_COMMENT();
11504
0
  } else {
11505
0
    doc_com = 0;
11506
0
  }
11507
11508
0
  while (YYCURSOR < YYLIMIT) {
11509
0
    if (*YYCURSOR++ == '*' && *YYCURSOR == '/') {
11510
0
      break;
11511
0
    }
11512
0
  }
11513
11514
0
  if (YYCURSOR < YYLIMIT) {
11515
0
    YYCURSOR++;
11516
0
  } else {
11517
0
    zend_throw_exception_ex(zend_ce_parse_error, 0, "Unterminated comment starting line %" PRIu32, CG(zend_lineno));
11518
0
    if (PARSER_MODE()) {
11519
0
      RETURN_TOKEN(T_ERROR);
11520
0
    }
11521
0
  }
11522
11523
0
  yyleng = YYCURSOR - SCNG(yy_text);
11524
0
  HANDLE_NEWLINES(yytext, yyleng);
11525
11526
0
  if (doc_com) {
11527
0
    CG(doc_comment) = zend_string_init(yytext, yyleng, 0);
11528
0
    RETURN_OR_SKIP_TOKEN(T_DOC_COMMENT);
11529
0
  }
11530
11531
0
  RETURN_OR_SKIP_TOKEN(T_COMMENT);
11532
0
}
11533
0
#line 11534 "Zend/zend_language_scanner.c"
11534
0
yy985:
11535
0
    YYDEBUG(985, *YYCURSOR);
11536
0
    yych = *++YYCURSOR;
11537
0
    if (yych == '>') goto yy988;
11538
0
yy986:
11539
0
    YYDEBUG(986, *YYCURSOR);
11540
0
    YYCURSOR = YYMARKER;
11541
0
    if (yyaccept == 0) {
11542
0
      goto yy969;
11543
0
    } else {
11544
0
      goto yy984;
11545
0
    }
11546
0
yy987:
11547
0
    YYDEBUG(987, *YYCURSOR);
11548
0
    yych = *++YYCURSOR;
11549
0
    if (yych <= '\f') {
11550
0
      if (yych <= 0x08) goto yy986;
11551
0
      if (yych <= '\n') goto yy990;
11552
0
      goto yy986;
11553
0
    } else {
11554
0
      if (yych <= '\r') goto yy990;
11555
0
      if (yych == ' ') goto yy990;
11556
0
      goto yy986;
11557
0
    }
11558
0
yy988:
11559
0
    YYDEBUG(988, *YYCURSOR);
11560
0
    ++YYCURSOR;
11561
0
    YYDEBUG(989, *YYCURSOR);
11562
0
    yyleng = YYCURSOR - SCNG(yy_text);
11563
0
#line 1605 "Zend/zend_language_scanner.l"
11564
0
    {
11565
0
  RETURN_TOKEN(T_NULLSAFE_OBJECT_OPERATOR);
11566
0
}
11567
0
#line 11568 "Zend/zend_language_scanner.c"
11568
0
yy990:
11569
0
    YYDEBUG(990, *YYCURSOR);
11570
0
    ++YYCURSOR;
11571
0
    YYFILL(1);
11572
0
    yych = *YYCURSOR;
11573
0
    YYDEBUG(991, *YYCURSOR);
11574
0
    if (yych <= '\f') {
11575
0
      if (yych <= 0x08) goto yy984;
11576
0
      if (yych <= '\n') goto yy990;
11577
0
      goto yy984;
11578
0
    } else {
11579
0
      if (yych <= '\r') goto yy990;
11580
0
      if (yych == ' ') goto yy990;
11581
0
      goto yy984;
11582
0
    }
11583
0
  }
11584
/* *********************************** */
11585
0
yyc_ST_BACKQUOTE:
11586
0
  {
11587
0
    static const unsigned char yybm[] = {
11588
0
        0,   0,   0,   0,   0,   0,   0,   0, 
11589
0
        0,   0,   0,   0,   0,   0,   0,   0, 
11590
0
        0,   0,   0,   0,   0,   0,   0,   0, 
11591
0
        0,   0,   0,   0,   0,   0,   0,   0, 
11592
0
        0,   0,   0,   0,   0,   0,   0,   0, 
11593
0
        0,   0,   0,   0,   0,   0,   0,   0, 
11594
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11595
0
      128, 128,   0,   0,   0,   0,   0,   0, 
11596
0
        0, 128, 128, 128, 128, 128, 128, 128, 
11597
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11598
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11599
0
      128, 128, 128,   0,   0,   0,   0, 128, 
11600
0
        0, 128, 128, 128, 128, 128, 128, 128, 
11601
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11602
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11603
0
      128, 128, 128,   0,   0,   0,   0,   0, 
11604
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11605
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11606
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11607
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11608
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11609
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11610
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11611
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11612
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11613
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11614
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11615
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11616
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11617
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11618
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11619
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11620
0
    };
11621
0
    YYDEBUG(992, *YYCURSOR);
11622
0
    YYFILL(2);
11623
0
    yych = *YYCURSOR;
11624
0
    if (yych <= '_') {
11625
0
      if (yych == '$') goto yy996;
11626
0
    } else {
11627
0
      if (yych <= '`') goto yy997;
11628
0
      if (yych == '{') goto yy999;
11629
0
    }
11630
0
    YYDEBUG(994, *YYCURSOR);
11631
0
    ++YYCURSOR;
11632
0
yy995:
11633
0
    YYDEBUG(995, *YYCURSOR);
11634
0
    yyleng = YYCURSOR - SCNG(yy_text);
11635
0
#line 2919 "Zend/zend_language_scanner.l"
11636
0
    {
11637
0
  if (YYCURSOR > YYLIMIT) {
11638
0
    RETURN_END_TOKEN;
11639
0
  }
11640
0
  if (yytext[0] == '\\' && YYCURSOR < YYLIMIT) {
11641
0
    YYCURSOR++;
11642
0
  }
11643
11644
0
  while (YYCURSOR < YYLIMIT) {
11645
0
    switch (*YYCURSOR++) {
11646
0
      case '`':
11647
0
        break;
11648
0
      case '$':
11649
0
        if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
11650
0
          break;
11651
0
        }
11652
0
        continue;
11653
0
      case '{':
11654
0
        if (*YYCURSOR == '$') {
11655
0
          break;
11656
0
        }
11657
0
        continue;
11658
0
      case '\\':
11659
0
        if (YYCURSOR < YYLIMIT) {
11660
0
          YYCURSOR++;
11661
0
        }
11662
0
        ZEND_FALLTHROUGH;
11663
0
      default:
11664
0
        continue;
11665
0
    }
11666
11667
0
    YYCURSOR--;
11668
0
    break;
11669
0
  }
11670
11671
0
  yyleng = YYCURSOR - SCNG(yy_text);
11672
11673
0
  if (EXPECTED(zend_scan_escape_string(zendlval, yytext, yyleng, '`') == SUCCESS)
11674
0
   || !PARSER_MODE()) {
11675
0
    RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
11676
0
  } else {
11677
0
    RETURN_TOKEN(T_ERROR);
11678
0
  }
11679
0
}
11680
0
#line 11681 "Zend/zend_language_scanner.c"
11681
0
yy996:
11682
0
    YYDEBUG(996, *YYCURSOR);
11683
0
    yych = *++YYCURSOR;
11684
0
    if (yych <= '_') {
11685
0
      if (yych <= '@') goto yy995;
11686
0
      if (yych <= 'Z') goto yy1000;
11687
0
      if (yych <= '^') goto yy995;
11688
0
      goto yy1000;
11689
0
    } else {
11690
0
      if (yych <= 'z') {
11691
0
        if (yych <= '`') goto yy995;
11692
0
        goto yy1000;
11693
0
      } else {
11694
0
        if (yych <= '{') goto yy1003;
11695
0
        if (yych <= 0x7F) goto yy995;
11696
0
        goto yy1000;
11697
0
      }
11698
0
    }
11699
0
yy997:
11700
0
    YYDEBUG(997, *YYCURSOR);
11701
0
    ++YYCURSOR;
11702
0
    YYDEBUG(998, *YYCURSOR);
11703
0
    yyleng = YYCURSOR - SCNG(yy_text);
11704
0
#line 2859 "Zend/zend_language_scanner.l"
11705
0
    {
11706
0
  BEGIN(ST_IN_SCRIPTING);
11707
0
  RETURN_TOKEN('`');
11708
0
}
11709
0
#line 11710 "Zend/zend_language_scanner.c"
11710
0
yy999:
11711
0
    YYDEBUG(999, *YYCURSOR);
11712
0
    yych = *++YYCURSOR;
11713
0
    if (yych == '$') goto yy1005;
11714
0
    goto yy995;
11715
0
yy1000:
11716
0
    YYDEBUG(1000, *YYCURSOR);
11717
0
    YYMARKER = ++YYCURSOR;
11718
0
    YYFILL(4);
11719
0
    yych = *YYCURSOR;
11720
0
    YYDEBUG(1001, *YYCURSOR);
11721
0
    if (yybm[0+yych] & 128) {
11722
0
      goto yy1000;
11723
0
    }
11724
0
    if (yych <= '>') {
11725
0
      if (yych == '-') goto yy1007;
11726
0
    } else {
11727
0
      if (yych <= '?') goto yy1009;
11728
0
      if (yych <= '@') goto yy1002;
11729
0
      if (yych <= '[') goto yy1010;
11730
0
    }
11731
0
yy1002:
11732
0
    YYDEBUG(1002, *YYCURSOR);
11733
0
    yyleng = YYCURSOR - SCNG(yy_text);
11734
0
#line 2417 "Zend/zend_language_scanner.l"
11735
0
    {
11736
0
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
11737
0
}
11738
0
#line 11739 "Zend/zend_language_scanner.c"
11739
0
yy1003:
11740
0
    YYDEBUG(1003, *YYCURSOR);
11741
0
    ++YYCURSOR;
11742
0
    YYDEBUG(1004, *YYCURSOR);
11743
0
    yyleng = YYCURSOR - SCNG(yy_text);
11744
0
#line 1981 "Zend/zend_language_scanner.l"
11745
0
    {
11746
0
  yy_push_state(ST_LOOKING_FOR_VARNAME);
11747
0
  enter_nesting('{');
11748
0
  RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES);
11749
0
}
11750
0
#line 11751 "Zend/zend_language_scanner.c"
11751
0
yy1005:
11752
0
    YYDEBUG(1005, *YYCURSOR);
11753
0
    ++YYCURSOR;
11754
0
    YYDEBUG(1006, *YYCURSOR);
11755
0
    yyleng = YYCURSOR - SCNG(yy_text);
11756
0
#line 2846 "Zend/zend_language_scanner.l"
11757
0
    {
11758
0
  yy_push_state(ST_IN_SCRIPTING);
11759
0
  yyless(1);
11760
0
  enter_nesting('{');
11761
0
  RETURN_TOKEN(T_CURLY_OPEN);
11762
0
}
11763
0
#line 11764 "Zend/zend_language_scanner.c"
11764
0
yy1007:
11765
0
    YYDEBUG(1007, *YYCURSOR);
11766
0
    yych = *++YYCURSOR;
11767
0
    if (yych == '>') goto yy1012;
11768
0
yy1008:
11769
0
    YYDEBUG(1008, *YYCURSOR);
11770
0
    YYCURSOR = YYMARKER;
11771
0
    goto yy1002;
11772
0
yy1009:
11773
0
    YYDEBUG(1009, *YYCURSOR);
11774
0
    yych = *++YYCURSOR;
11775
0
    if (yych == '-') goto yy1013;
11776
0
    goto yy1008;
11777
0
yy1010:
11778
0
    YYDEBUG(1010, *YYCURSOR);
11779
0
    ++YYCURSOR;
11780
0
    YYDEBUG(1011, *YYCURSOR);
11781
0
    yyleng = YYCURSOR - SCNG(yy_text);
11782
0
#line 2411 "Zend/zend_language_scanner.l"
11783
0
    {
11784
0
  yyless(yyleng - 1);
11785
0
  yy_push_state(ST_VAR_OFFSET);
11786
0
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
11787
0
}
11788
0
#line 11789 "Zend/zend_language_scanner.c"
11789
0
yy1012:
11790
0
    YYDEBUG(1012, *YYCURSOR);
11791
0
    yych = *++YYCURSOR;
11792
0
    if (yych <= '_') {
11793
0
      if (yych <= '@') goto yy1008;
11794
0
      if (yych <= 'Z') goto yy1014;
11795
0
      if (yych <= '^') goto yy1008;
11796
0
      goto yy1014;
11797
0
    } else {
11798
0
      if (yych <= '`') goto yy1008;
11799
0
      if (yych <= 'z') goto yy1014;
11800
0
      if (yych <= 0x7F) goto yy1008;
11801
0
      goto yy1014;
11802
0
    }
11803
0
yy1013:
11804
0
    YYDEBUG(1013, *YYCURSOR);
11805
0
    yych = *++YYCURSOR;
11806
0
    if (yych == '>') goto yy1016;
11807
0
    goto yy1008;
11808
0
yy1014:
11809
0
    YYDEBUG(1014, *YYCURSOR);
11810
0
    ++YYCURSOR;
11811
0
    YYDEBUG(1015, *YYCURSOR);
11812
0
    yyleng = YYCURSOR - SCNG(yy_text);
11813
0
#line 2397 "Zend/zend_language_scanner.l"
11814
0
    {
11815
0
  yyless(yyleng - 3);
11816
0
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
11817
0
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
11818
0
}
11819
0
#line 11820 "Zend/zend_language_scanner.c"
11820
0
yy1016:
11821
0
    YYDEBUG(1016, *YYCURSOR);
11822
0
    yych = *++YYCURSOR;
11823
0
    if (yych <= '_') {
11824
0
      if (yych <= '@') goto yy1008;
11825
0
      if (yych <= 'Z') goto yy1017;
11826
0
      if (yych <= '^') goto yy1008;
11827
0
    } else {
11828
0
      if (yych <= '`') goto yy1008;
11829
0
      if (yych <= 'z') goto yy1017;
11830
0
      if (yych <= 0x7F) goto yy1008;
11831
0
    }
11832
0
yy1017:
11833
0
    YYDEBUG(1017, *YYCURSOR);
11834
0
    ++YYCURSOR;
11835
0
    YYDEBUG(1018, *YYCURSOR);
11836
0
    yyleng = YYCURSOR - SCNG(yy_text);
11837
0
#line 2403 "Zend/zend_language_scanner.l"
11838
0
    {
11839
0
  yyless(yyleng - 4);
11840
0
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
11841
0
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
11842
0
}
11843
0
#line 11844 "Zend/zend_language_scanner.c"
11844
0
  }
11845
/* *********************************** */
11846
0
yyc_ST_DOUBLE_QUOTES:
11847
0
  {
11848
0
    static const unsigned char yybm[] = {
11849
0
        0,   0,   0,   0,   0,   0,   0,   0, 
11850
0
        0,   0,   0,   0,   0,   0,   0,   0, 
11851
0
        0,   0,   0,   0,   0,   0,   0,   0, 
11852
0
        0,   0,   0,   0,   0,   0,   0,   0, 
11853
0
        0,   0,   0,   0,   0,   0,   0,   0, 
11854
0
        0,   0,   0,   0,   0,   0,   0,   0, 
11855
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11856
0
      128, 128,   0,   0,   0,   0,   0,   0, 
11857
0
        0, 128, 128, 128, 128, 128, 128, 128, 
11858
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11859
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11860
0
      128, 128, 128,   0,   0,   0,   0, 128, 
11861
0
        0, 128, 128, 128, 128, 128, 128, 128, 
11862
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11863
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11864
0
      128, 128, 128,   0,   0,   0,   0,   0, 
11865
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11866
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11867
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11868
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11869
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11870
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11871
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11872
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11873
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11874
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11875
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11876
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11877
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11878
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11879
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11880
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11881
0
    };
11882
0
    YYDEBUG(1019, *YYCURSOR);
11883
0
    YYFILL(2);
11884
0
    yych = *YYCURSOR;
11885
0
    if (yych <= '#') {
11886
0
      if (yych == '"') goto yy1023;
11887
0
    } else {
11888
0
      if (yych <= '$') goto yy1025;
11889
0
      if (yych == '{') goto yy1026;
11890
0
    }
11891
0
    YYDEBUG(1021, *YYCURSOR);
11892
0
    ++YYCURSOR;
11893
0
yy1022:
11894
0
    YYDEBUG(1022, *YYCURSOR);
11895
0
    yyleng = YYCURSOR - SCNG(yy_text);
11896
0
#line 2865 "Zend/zend_language_scanner.l"
11897
0
    {
11898
0
  if (GET_DOUBLE_QUOTES_SCANNED_LENGTH()) {
11899
0
    YYCURSOR += GET_DOUBLE_QUOTES_SCANNED_LENGTH() - 1;
11900
0
    SET_DOUBLE_QUOTES_SCANNED_LENGTH(0);
11901
11902
0
    goto double_quotes_scan_done;
11903
0
  }
11904
11905
0
  if (YYCURSOR > YYLIMIT) {
11906
0
    RETURN_END_TOKEN;
11907
0
  }
11908
0
  if (yytext[0] == '\\' && YYCURSOR < YYLIMIT) {
11909
0
    YYCURSOR++;
11910
0
  }
11911
11912
0
  while (YYCURSOR < YYLIMIT) {
11913
0
    switch (*YYCURSOR++) {
11914
0
      case '"':
11915
0
        break;
11916
0
      case '$':
11917
0
        if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
11918
0
          break;
11919
0
        }
11920
0
        continue;
11921
0
      case '{':
11922
0
        if (*YYCURSOR == '$') {
11923
0
          break;
11924
0
        }
11925
0
        continue;
11926
0
      case '\\':
11927
0
        if (YYCURSOR < YYLIMIT) {
11928
0
          YYCURSOR++;
11929
0
        }
11930
0
        ZEND_FALLTHROUGH;
11931
0
      default:
11932
0
        continue;
11933
0
    }
11934
11935
0
    YYCURSOR--;
11936
0
    break;
11937
0
  }
11938
11939
0
double_quotes_scan_done:
11940
0
  yyleng = YYCURSOR - SCNG(yy_text);
11941
11942
0
  if (EXPECTED(zend_scan_escape_string(zendlval, yytext, yyleng, '"') == SUCCESS)
11943
0
   || !PARSER_MODE()) {
11944
0
    RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
11945
0
  } else {
11946
0
    RETURN_TOKEN(T_ERROR);
11947
0
  }
11948
0
}
11949
0
#line 11950 "Zend/zend_language_scanner.c"
11950
0
yy1023:
11951
0
    YYDEBUG(1023, *YYCURSOR);
11952
0
    ++YYCURSOR;
11953
0
    YYDEBUG(1024, *YYCURSOR);
11954
0
    yyleng = YYCURSOR - SCNG(yy_text);
11955
0
#line 2854 "Zend/zend_language_scanner.l"
11956
0
    {
11957
0
  BEGIN(ST_IN_SCRIPTING);
11958
0
  RETURN_TOKEN('"');
11959
0
}
11960
0
#line 11961 "Zend/zend_language_scanner.c"
11961
0
yy1025:
11962
0
    YYDEBUG(1025, *YYCURSOR);
11963
0
    yych = *++YYCURSOR;
11964
0
    if (yych <= '_') {
11965
0
      if (yych <= '@') goto yy1022;
11966
0
      if (yych <= 'Z') goto yy1027;
11967
0
      if (yych <= '^') goto yy1022;
11968
0
      goto yy1027;
11969
0
    } else {
11970
0
      if (yych <= 'z') {
11971
0
        if (yych <= '`') goto yy1022;
11972
0
        goto yy1027;
11973
0
      } else {
11974
0
        if (yych <= '{') goto yy1030;
11975
0
        if (yych <= 0x7F) goto yy1022;
11976
0
        goto yy1027;
11977
0
      }
11978
0
    }
11979
0
yy1026:
11980
0
    YYDEBUG(1026, *YYCURSOR);
11981
0
    yych = *++YYCURSOR;
11982
0
    if (yych == '$') goto yy1032;
11983
0
    goto yy1022;
11984
0
yy1027:
11985
0
    YYDEBUG(1027, *YYCURSOR);
11986
0
    YYMARKER = ++YYCURSOR;
11987
0
    YYFILL(4);
11988
0
    yych = *YYCURSOR;
11989
0
    YYDEBUG(1028, *YYCURSOR);
11990
0
    if (yybm[0+yych] & 128) {
11991
0
      goto yy1027;
11992
0
    }
11993
0
    if (yych <= '>') {
11994
0
      if (yych == '-') goto yy1034;
11995
0
    } else {
11996
0
      if (yych <= '?') goto yy1036;
11997
0
      if (yych <= '@') goto yy1029;
11998
0
      if (yych <= '[') goto yy1037;
11999
0
    }
12000
0
yy1029:
12001
0
    YYDEBUG(1029, *YYCURSOR);
12002
0
    yyleng = YYCURSOR - SCNG(yy_text);
12003
0
#line 2417 "Zend/zend_language_scanner.l"
12004
0
    {
12005
0
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12006
0
}
12007
0
#line 12008 "Zend/zend_language_scanner.c"
12008
0
yy1030:
12009
0
    YYDEBUG(1030, *YYCURSOR);
12010
0
    ++YYCURSOR;
12011
0
    YYDEBUG(1031, *YYCURSOR);
12012
0
    yyleng = YYCURSOR - SCNG(yy_text);
12013
0
#line 1981 "Zend/zend_language_scanner.l"
12014
0
    {
12015
0
  yy_push_state(ST_LOOKING_FOR_VARNAME);
12016
0
  enter_nesting('{');
12017
0
  RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES);
12018
0
}
12019
0
#line 12020 "Zend/zend_language_scanner.c"
12020
0
yy1032:
12021
0
    YYDEBUG(1032, *YYCURSOR);
12022
0
    ++YYCURSOR;
12023
0
    YYDEBUG(1033, *YYCURSOR);
12024
0
    yyleng = YYCURSOR - SCNG(yy_text);
12025
0
#line 2846 "Zend/zend_language_scanner.l"
12026
0
    {
12027
0
  yy_push_state(ST_IN_SCRIPTING);
12028
0
  yyless(1);
12029
0
  enter_nesting('{');
12030
0
  RETURN_TOKEN(T_CURLY_OPEN);
12031
0
}
12032
0
#line 12033 "Zend/zend_language_scanner.c"
12033
0
yy1034:
12034
0
    YYDEBUG(1034, *YYCURSOR);
12035
0
    yych = *++YYCURSOR;
12036
0
    if (yych == '>') goto yy1039;
12037
0
yy1035:
12038
0
    YYDEBUG(1035, *YYCURSOR);
12039
0
    YYCURSOR = YYMARKER;
12040
0
    goto yy1029;
12041
0
yy1036:
12042
0
    YYDEBUG(1036, *YYCURSOR);
12043
0
    yych = *++YYCURSOR;
12044
0
    if (yych == '-') goto yy1040;
12045
0
    goto yy1035;
12046
0
yy1037:
12047
0
    YYDEBUG(1037, *YYCURSOR);
12048
0
    ++YYCURSOR;
12049
0
    YYDEBUG(1038, *YYCURSOR);
12050
0
    yyleng = YYCURSOR - SCNG(yy_text);
12051
0
#line 2411 "Zend/zend_language_scanner.l"
12052
0
    {
12053
0
  yyless(yyleng - 1);
12054
0
  yy_push_state(ST_VAR_OFFSET);
12055
0
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12056
0
}
12057
0
#line 12058 "Zend/zend_language_scanner.c"
12058
0
yy1039:
12059
0
    YYDEBUG(1039, *YYCURSOR);
12060
0
    yych = *++YYCURSOR;
12061
0
    if (yych <= '_') {
12062
0
      if (yych <= '@') goto yy1035;
12063
0
      if (yych <= 'Z') goto yy1041;
12064
0
      if (yych <= '^') goto yy1035;
12065
0
      goto yy1041;
12066
0
    } else {
12067
0
      if (yych <= '`') goto yy1035;
12068
0
      if (yych <= 'z') goto yy1041;
12069
0
      if (yych <= 0x7F) goto yy1035;
12070
0
      goto yy1041;
12071
0
    }
12072
0
yy1040:
12073
0
    YYDEBUG(1040, *YYCURSOR);
12074
0
    yych = *++YYCURSOR;
12075
0
    if (yych == '>') goto yy1043;
12076
0
    goto yy1035;
12077
0
yy1041:
12078
0
    YYDEBUG(1041, *YYCURSOR);
12079
0
    ++YYCURSOR;
12080
0
    YYDEBUG(1042, *YYCURSOR);
12081
0
    yyleng = YYCURSOR - SCNG(yy_text);
12082
0
#line 2397 "Zend/zend_language_scanner.l"
12083
0
    {
12084
0
  yyless(yyleng - 3);
12085
0
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
12086
0
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12087
0
}
12088
0
#line 12089 "Zend/zend_language_scanner.c"
12089
0
yy1043:
12090
0
    YYDEBUG(1043, *YYCURSOR);
12091
0
    yych = *++YYCURSOR;
12092
0
    if (yych <= '_') {
12093
0
      if (yych <= '@') goto yy1035;
12094
0
      if (yych <= 'Z') goto yy1044;
12095
0
      if (yych <= '^') goto yy1035;
12096
0
    } else {
12097
0
      if (yych <= '`') goto yy1035;
12098
0
      if (yych <= 'z') goto yy1044;
12099
0
      if (yych <= 0x7F) goto yy1035;
12100
0
    }
12101
0
yy1044:
12102
0
    YYDEBUG(1044, *YYCURSOR);
12103
0
    ++YYCURSOR;
12104
0
    YYDEBUG(1045, *YYCURSOR);
12105
0
    yyleng = YYCURSOR - SCNG(yy_text);
12106
0
#line 2403 "Zend/zend_language_scanner.l"
12107
0
    {
12108
0
  yyless(yyleng - 4);
12109
0
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
12110
0
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12111
0
}
12112
0
#line 12113 "Zend/zend_language_scanner.c"
12113
0
  }
12114
/* *********************************** */
12115
0
yyc_ST_HEREDOC:
12116
0
  {
12117
0
    static const unsigned char yybm[] = {
12118
0
        0,   0,   0,   0,   0,   0,   0,   0, 
12119
0
        0,   0,   0,   0,   0,   0,   0,   0, 
12120
0
        0,   0,   0,   0,   0,   0,   0,   0, 
12121
0
        0,   0,   0,   0,   0,   0,   0,   0, 
12122
0
        0,   0,   0,   0,   0,   0,   0,   0, 
12123
0
        0,   0,   0,   0,   0,   0,   0,   0, 
12124
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12125
0
      128, 128,   0,   0,   0,   0,   0,   0, 
12126
0
        0, 128, 128, 128, 128, 128, 128, 128, 
12127
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12128
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12129
0
      128, 128, 128,   0,   0,   0,   0, 128, 
12130
0
        0, 128, 128, 128, 128, 128, 128, 128, 
12131
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12132
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12133
0
      128, 128, 128,   0,   0,   0,   0,   0, 
12134
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12135
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12136
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12137
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12138
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12139
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12140
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12141
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12142
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12143
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12144
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12145
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12146
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12147
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12148
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12149
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12150
0
    };
12151
0
    YYDEBUG(1046, *YYCURSOR);
12152
0
    YYFILL(2);
12153
0
    yych = *YYCURSOR;
12154
0
    if (yych == '$') goto yy1050;
12155
0
    if (yych == '{') goto yy1051;
12156
0
    YYDEBUG(1048, *YYCURSOR);
12157
0
    ++YYCURSOR;
12158
0
yy1049:
12159
0
    YYDEBUG(1049, *YYCURSOR);
12160
0
    yyleng = YYCURSOR - SCNG(yy_text);
12161
0
#line 2965 "Zend/zend_language_scanner.l"
12162
0
    {
12163
0
  zend_heredoc_label *heredoc_label = zend_ptr_stack_top(&SCNG(heredoc_label_stack));
12164
0
  int newline = 0, indentation = 0, spacing = 0;
12165
12166
0
  if (YYCURSOR > YYLIMIT) {
12167
0
    RETURN_END_TOKEN;
12168
0
  }
12169
12170
0
  YYCURSOR--;
12171
12172
0
  while (YYCURSOR < YYLIMIT) {
12173
0
    switch (*YYCURSOR++) {
12174
0
      case '\r':
12175
0
        if (*YYCURSOR == '\n') {
12176
0
          YYCURSOR++;
12177
0
        }
12178
0
        ZEND_FALLTHROUGH;
12179
0
      case '\n':
12180
0
        indentation = spacing = 0;
12181
12182
0
        while (YYCURSOR < YYLIMIT && (*YYCURSOR == ' ' || *YYCURSOR == '\t')) {
12183
0
          if (*YYCURSOR == '\t') {
12184
0
            spacing |= HEREDOC_USING_TABS;
12185
0
          } else {
12186
0
            spacing |= HEREDOC_USING_SPACES;
12187
0
          }
12188
0
          ++YYCURSOR;
12189
0
          ++indentation;
12190
0
        }
12191
12192
0
        if (YYCURSOR == YYLIMIT) {
12193
0
          yyleng = YYCURSOR - SCNG(yy_text);
12194
0
          HANDLE_NEWLINES(yytext, yyleng);
12195
0
          ZVAL_NULL(zendlval);
12196
0
          RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
12197
0
        }
12198
12199
        /* Check for ending label on the next line */
12200
0
        if (IS_LABEL_START(*YYCURSOR) && heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, heredoc_label->label, heredoc_label->length)) {
12201
0
          if (IS_LABEL_SUCCESSOR(YYCURSOR[heredoc_label->length])) {
12202
0
            continue;
12203
0
          }
12204
12205
0
          if (spacing == (HEREDOC_USING_SPACES | HEREDOC_USING_TABS)) {
12206
0
            zend_throw_exception(zend_ce_parse_error, "Invalid indentation - tabs and spaces cannot be mixed", 0);
12207
0
            if (PARSER_MODE()) {
12208
0
              RETURN_TOKEN(T_ERROR);
12209
0
            }
12210
0
          }
12211
12212
          /* newline before label will be subtracted from returned text, but
12213
           * yyleng/yytext will include it, for zend_highlight/strip, tokenizer, etc. */
12214
0
          if (YYCURSOR[-indentation - 2] == '\r' && YYCURSOR[-indentation - 1] == '\n') {
12215
0
            newline = 2; /* Windows newline */
12216
0
          } else {
12217
0
            newline = 1;
12218
0
          }
12219
12220
0
          CG(increment_lineno) = 1; /* For newline before label */
12221
12222
0
          if (SCNG(heredoc_scan_ahead)) {
12223
0
            SCNG(heredoc_indentation) = indentation;
12224
0
            SCNG(heredoc_indentation_uses_spaces) = (spacing == HEREDOC_USING_SPACES);
12225
0
          } else {
12226
0
            YYCURSOR -= indentation;
12227
0
          }
12228
12229
0
          BEGIN(ST_END_HEREDOC);
12230
12231
0
          goto heredoc_scan_done;
12232
0
        }
12233
0
        continue;
12234
0
      case '$':
12235
0
        if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
12236
0
          break;
12237
0
        }
12238
0
        continue;
12239
0
      case '{':
12240
0
        if (*YYCURSOR == '$') {
12241
0
          break;
12242
0
        }
12243
0
        continue;
12244
0
      case '\\':
12245
0
        if (YYCURSOR < YYLIMIT && *YYCURSOR != '\n' && *YYCURSOR != '\r') {
12246
0
          YYCURSOR++;
12247
0
        }
12248
0
        ZEND_FALLTHROUGH;
12249
0
      default:
12250
0
        continue;
12251
0
    }
12252
12253
0
    YYCURSOR--;
12254
0
    break;
12255
0
  }
12256
12257
0
heredoc_scan_done:
12258
12259
0
  yyleng = YYCURSOR - SCNG(yy_text);
12260
0
  ZVAL_STRINGL(zendlval, yytext, yyleng - newline);
12261
12262
0
  if (!SCNG(heredoc_scan_ahead) && !EG(exception) && PARSER_MODE()) {
12263
0
    bool newline_at_start = *(yytext - 1) == '\n' || *(yytext - 1) == '\r';
12264
0
    zend_string *copy = Z_STR_P(zendlval);
12265
12266
0
    if (!strip_multiline_string_indentation(
12267
0
        zendlval, heredoc_label->indentation, heredoc_label->indentation_uses_spaces,
12268
0
        newline_at_start, newline != 0)) {
12269
0
      RETURN_TOKEN(T_ERROR);
12270
0
    }
12271
12272
0
    if (UNEXPECTED(zend_scan_escape_string(zendlval, ZSTR_VAL(copy), ZSTR_LEN(copy), 0) != SUCCESS)) {
12273
0
      zend_string_efree(copy);
12274
0
      RETURN_TOKEN(T_ERROR);
12275
0
    }
12276
12277
0
    zend_string_efree(copy);
12278
0
  } else {
12279
0
    HANDLE_NEWLINES(yytext, yyleng - newline);
12280
0
  }
12281
12282
0
  RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
12283
0
}
12284
0
#line 12285 "Zend/zend_language_scanner.c"
12285
0
yy1050:
12286
0
    YYDEBUG(1050, *YYCURSOR);
12287
0
    yych = *++YYCURSOR;
12288
0
    if (yych <= '_') {
12289
0
      if (yych <= '@') goto yy1049;
12290
0
      if (yych <= 'Z') goto yy1052;
12291
0
      if (yych <= '^') goto yy1049;
12292
0
      goto yy1052;
12293
0
    } else {
12294
0
      if (yych <= 'z') {
12295
0
        if (yych <= '`') goto yy1049;
12296
0
        goto yy1052;
12297
0
      } else {
12298
0
        if (yych <= '{') goto yy1055;
12299
0
        if (yych <= 0x7F) goto yy1049;
12300
0
        goto yy1052;
12301
0
      }
12302
0
    }
12303
0
yy1051:
12304
0
    YYDEBUG(1051, *YYCURSOR);
12305
0
    yych = *++YYCURSOR;
12306
0
    if (yych == '$') goto yy1057;
12307
0
    goto yy1049;
12308
0
yy1052:
12309
0
    YYDEBUG(1052, *YYCURSOR);
12310
0
    YYMARKER = ++YYCURSOR;
12311
0
    YYFILL(4);
12312
0
    yych = *YYCURSOR;
12313
0
    YYDEBUG(1053, *YYCURSOR);
12314
0
    if (yybm[0+yych] & 128) {
12315
0
      goto yy1052;
12316
0
    }
12317
0
    if (yych <= '>') {
12318
0
      if (yych == '-') goto yy1059;
12319
0
    } else {
12320
0
      if (yych <= '?') goto yy1061;
12321
0
      if (yych <= '@') goto yy1054;
12322
0
      if (yych <= '[') goto yy1062;
12323
0
    }
12324
0
yy1054:
12325
0
    YYDEBUG(1054, *YYCURSOR);
12326
0
    yyleng = YYCURSOR - SCNG(yy_text);
12327
0
#line 2417 "Zend/zend_language_scanner.l"
12328
0
    {
12329
0
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12330
0
}
12331
0
#line 12332 "Zend/zend_language_scanner.c"
12332
0
yy1055:
12333
0
    YYDEBUG(1055, *YYCURSOR);
12334
0
    ++YYCURSOR;
12335
0
    YYDEBUG(1056, *YYCURSOR);
12336
0
    yyleng = YYCURSOR - SCNG(yy_text);
12337
0
#line 1981 "Zend/zend_language_scanner.l"
12338
0
    {
12339
0
  yy_push_state(ST_LOOKING_FOR_VARNAME);
12340
0
  enter_nesting('{');
12341
0
  RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES);
12342
0
}
12343
0
#line 12344 "Zend/zend_language_scanner.c"
12344
0
yy1057:
12345
0
    YYDEBUG(1057, *YYCURSOR);
12346
0
    ++YYCURSOR;
12347
0
    YYDEBUG(1058, *YYCURSOR);
12348
0
    yyleng = YYCURSOR - SCNG(yy_text);
12349
0
#line 2846 "Zend/zend_language_scanner.l"
12350
0
    {
12351
0
  yy_push_state(ST_IN_SCRIPTING);
12352
0
  yyless(1);
12353
0
  enter_nesting('{');
12354
0
  RETURN_TOKEN(T_CURLY_OPEN);
12355
0
}
12356
0
#line 12357 "Zend/zend_language_scanner.c"
12357
0
yy1059:
12358
0
    YYDEBUG(1059, *YYCURSOR);
12359
0
    yych = *++YYCURSOR;
12360
0
    if (yych == '>') goto yy1064;
12361
0
yy1060:
12362
0
    YYDEBUG(1060, *YYCURSOR);
12363
0
    YYCURSOR = YYMARKER;
12364
0
    goto yy1054;
12365
0
yy1061:
12366
0
    YYDEBUG(1061, *YYCURSOR);
12367
0
    yych = *++YYCURSOR;
12368
0
    if (yych == '-') goto yy1065;
12369
0
    goto yy1060;
12370
0
yy1062:
12371
0
    YYDEBUG(1062, *YYCURSOR);
12372
0
    ++YYCURSOR;
12373
0
    YYDEBUG(1063, *YYCURSOR);
12374
0
    yyleng = YYCURSOR - SCNG(yy_text);
12375
0
#line 2411 "Zend/zend_language_scanner.l"
12376
0
    {
12377
0
  yyless(yyleng - 1);
12378
0
  yy_push_state(ST_VAR_OFFSET);
12379
0
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12380
0
}
12381
0
#line 12382 "Zend/zend_language_scanner.c"
12382
0
yy1064:
12383
0
    YYDEBUG(1064, *YYCURSOR);
12384
0
    yych = *++YYCURSOR;
12385
0
    if (yych <= '_') {
12386
0
      if (yych <= '@') goto yy1060;
12387
0
      if (yych <= 'Z') goto yy1066;
12388
0
      if (yych <= '^') goto yy1060;
12389
0
      goto yy1066;
12390
0
    } else {
12391
0
      if (yych <= '`') goto yy1060;
12392
0
      if (yych <= 'z') goto yy1066;
12393
0
      if (yych <= 0x7F) goto yy1060;
12394
0
      goto yy1066;
12395
0
    }
12396
0
yy1065:
12397
0
    YYDEBUG(1065, *YYCURSOR);
12398
0
    yych = *++YYCURSOR;
12399
0
    if (yych == '>') goto yy1068;
12400
0
    goto yy1060;
12401
0
yy1066:
12402
0
    YYDEBUG(1066, *YYCURSOR);
12403
0
    ++YYCURSOR;
12404
0
    YYDEBUG(1067, *YYCURSOR);
12405
0
    yyleng = YYCURSOR - SCNG(yy_text);
12406
0
#line 2397 "Zend/zend_language_scanner.l"
12407
0
    {
12408
0
  yyless(yyleng - 3);
12409
0
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
12410
0
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12411
0
}
12412
0
#line 12413 "Zend/zend_language_scanner.c"
12413
0
yy1068:
12414
0
    YYDEBUG(1068, *YYCURSOR);
12415
0
    yych = *++YYCURSOR;
12416
0
    if (yych <= '_') {
12417
0
      if (yych <= '@') goto yy1060;
12418
0
      if (yych <= 'Z') goto yy1069;
12419
0
      if (yych <= '^') goto yy1060;
12420
0
    } else {
12421
0
      if (yych <= '`') goto yy1060;
12422
0
      if (yych <= 'z') goto yy1069;
12423
0
      if (yych <= 0x7F) goto yy1060;
12424
0
    }
12425
0
yy1069:
12426
0
    YYDEBUG(1069, *YYCURSOR);
12427
0
    ++YYCURSOR;
12428
0
    YYDEBUG(1070, *YYCURSOR);
12429
0
    yyleng = YYCURSOR - SCNG(yy_text);
12430
0
#line 2403 "Zend/zend_language_scanner.l"
12431
0
    {
12432
0
  yyless(yyleng - 4);
12433
0
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
12434
0
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12435
0
}
12436
0
#line 12437 "Zend/zend_language_scanner.c"
12437
0
  }
12438
/* *********************************** */
12439
0
yyc_ST_LOOKING_FOR_VARNAME:
12440
0
  {
12441
0
    static const unsigned char yybm[] = {
12442
0
        0,   0,   0,   0,   0,   0,   0,   0, 
12443
0
        0,   0,   0,   0,   0,   0,   0,   0, 
12444
0
        0,   0,   0,   0,   0,   0,   0,   0, 
12445
0
        0,   0,   0,   0,   0,   0,   0,   0, 
12446
0
        0,   0,   0,   0,   0,   0,   0,   0, 
12447
0
        0,   0,   0,   0,   0,   0,   0,   0, 
12448
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12449
0
      128, 128,   0,   0,   0,   0,   0,   0, 
12450
0
        0, 128, 128, 128, 128, 128, 128, 128, 
12451
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12452
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12453
0
      128, 128, 128,   0,   0,   0,   0, 128, 
12454
0
        0, 128, 128, 128, 128, 128, 128, 128, 
12455
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12456
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12457
0
      128, 128, 128,   0,   0,   0,   0,   0, 
12458
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12459
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12460
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12461
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12462
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12463
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12464
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12465
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12466
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12467
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12468
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12469
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12470
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12471
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12472
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12473
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12474
0
    };
12475
0
    YYDEBUG(1071, *YYCURSOR);
12476
0
    YYFILL(2);
12477
0
    yych = *YYCURSOR;
12478
0
    if (yych <= '_') {
12479
0
      if (yych <= '@') goto yy1073;
12480
0
      if (yych <= 'Z') goto yy1075;
12481
0
      if (yych >= '_') goto yy1075;
12482
0
    } else {
12483
0
      if (yych <= '`') goto yy1073;
12484
0
      if (yych <= 'z') goto yy1075;
12485
0
      if (yych >= 0x80) goto yy1075;
12486
0
    }
12487
0
yy1073:
12488
0
    YYDEBUG(1073, *YYCURSOR);
12489
0
    ++YYCURSOR;
12490
0
yy1074:
12491
0
    YYDEBUG(1074, *YYCURSOR);
12492
0
    yyleng = YYCURSOR - SCNG(yy_text);
12493
0
#line 2004 "Zend/zend_language_scanner.l"
12494
0
    {
12495
0
  yyless(0);
12496
0
  yy_pop_state();
12497
0
  yy_push_state(ST_IN_SCRIPTING);
12498
0
  goto restart;
12499
0
}
12500
0
#line 12501 "Zend/zend_language_scanner.c"
12501
0
yy1075:
12502
0
    YYDEBUG(1075, *YYCURSOR);
12503
0
    yych = *(YYMARKER = ++YYCURSOR);
12504
0
    if (yych <= '_') {
12505
0
      if (yych <= '@') {
12506
0
        if (yych <= '/') goto yy1074;
12507
0
        if (yych <= '9') goto yy1077;
12508
0
        goto yy1074;
12509
0
      } else {
12510
0
        if (yych <= '[') goto yy1077;
12511
0
        if (yych <= '^') goto yy1074;
12512
0
        goto yy1077;
12513
0
      }
12514
0
    } else {
12515
0
      if (yych <= '|') {
12516
0
        if (yych <= '`') goto yy1074;
12517
0
        if (yych <= 'z') goto yy1077;
12518
0
        goto yy1074;
12519
0
      } else {
12520
0
        if (yych <= '}') goto yy1077;
12521
0
        if (yych <= 0x7F) goto yy1074;
12522
0
        goto yy1077;
12523
0
      }
12524
0
    }
12525
0
yy1076:
12526
0
    YYDEBUG(1076, *YYCURSOR);
12527
0
    ++YYCURSOR;
12528
0
    YYFILL(1);
12529
0
    yych = *YYCURSOR;
12530
0
yy1077:
12531
0
    YYDEBUG(1077, *YYCURSOR);
12532
0
    if (yybm[0+yych] & 128) {
12533
0
      goto yy1076;
12534
0
    }
12535
0
    if (yych <= '@') goto yy1078;
12536
0
    if (yych <= '[') goto yy1079;
12537
0
    if (yych == '}') goto yy1079;
12538
0
yy1078:
12539
0
    YYDEBUG(1078, *YYCURSOR);
12540
0
    YYCURSOR = YYMARKER;
12541
0
    goto yy1074;
12542
0
yy1079:
12543
0
    YYDEBUG(1079, *YYCURSOR);
12544
0
    ++YYCURSOR;
12545
0
    YYDEBUG(1080, *YYCURSOR);
12546
0
    yyleng = YYCURSOR - SCNG(yy_text);
12547
0
#line 1996 "Zend/zend_language_scanner.l"
12548
0
    {
12549
0
  yyless(yyleng - 1);
12550
0
  yy_pop_state();
12551
0
  yy_push_state(ST_IN_SCRIPTING);
12552
0
  RETURN_TOKEN_WITH_STR(T_STRING_VARNAME, 0);
12553
0
}
12554
0
#line 12555 "Zend/zend_language_scanner.c"
12555
0
  }
12556
/* *********************************** */
12557
0
yyc_ST_VAR_OFFSET:
12558
0
  {
12559
0
    static const unsigned char yybm[] = {
12560
0
        0,   0,   0,   0,   0,   0,   0,   0, 
12561
0
        0,   0,   0,   0,   0,   0,   0,   0, 
12562
0
        0,   0,   0,   0,   0,   0,   0,   0, 
12563
0
        0,   0,   0,   0,   0,   0,   0,   0, 
12564
0
        0,   0,   0,   0,   0,   0,   0,   0, 
12565
0
        0,   0,   0,   0,   0,   0,   0,   0, 
12566
0
      248, 248, 216, 216, 216, 216, 216, 216, 
12567
0
      152, 152,   0,   0,   0,   0,   0,   0, 
12568
0
        0, 144, 144, 144, 144, 144, 144,  16, 
12569
0
       16,  16,  16,  16,  16,  16,  16,  16, 
12570
0
       16,  16,  16,  16,  16,  16,  16,  16, 
12571
0
       16,  16,  16,   0,   0,   0,   0,  16, 
12572
0
        0, 144, 144, 144, 144, 144, 144,  16, 
12573
0
       16,  16,  16,  16,  16,  16,  16,  16, 
12574
0
       16,  16,  16,  16,  16,  16,  16,  16, 
12575
0
       16,  16,  16,   0,   0,   0,   0,   0, 
12576
0
       16,  16,  16,  16,  16,  16,  16,  16, 
12577
0
       16,  16,  16,  16,  16,  16,  16,  16, 
12578
0
       16,  16,  16,  16,  16,  16,  16,  16, 
12579
0
       16,  16,  16,  16,  16,  16,  16,  16, 
12580
0
       16,  16,  16,  16,  16,  16,  16,  16, 
12581
0
       16,  16,  16,  16,  16,  16,  16,  16, 
12582
0
       16,  16,  16,  16,  16,  16,  16,  16, 
12583
0
       16,  16,  16,  16,  16,  16,  16,  16, 
12584
0
       16,  16,  16,  16,  16,  16,  16,  16, 
12585
0
       16,  16,  16,  16,  16,  16,  16,  16, 
12586
0
       16,  16,  16,  16,  16,  16,  16,  16, 
12587
0
       16,  16,  16,  16,  16,  16,  16,  16, 
12588
0
       16,  16,  16,  16,  16,  16,  16,  16, 
12589
0
       16,  16,  16,  16,  16,  16,  16,  16, 
12590
0
       16,  16,  16,  16,  16,  16,  16,  16, 
12591
0
       16,  16,  16,  16,  16,  16,  16,  16, 
12592
0
    };
12593
0
    YYDEBUG(1081, *YYCURSOR);
12594
0
    YYFILL(2);
12595
0
    yych = *YYCURSOR;
12596
0
    if (yych <= '0') {
12597
0
      if (yych <= ' ') {
12598
0
        if (yych <= '\f') {
12599
0
          if (yych <= 0x08) goto yy1083;
12600
0
          if (yych <= '\n') goto yy1085;
12601
0
        } else {
12602
0
          if (yych <= '\r') goto yy1085;
12603
0
          if (yych >= ' ') goto yy1085;
12604
0
        }
12605
0
      } else {
12606
0
        if (yych <= '$') {
12607
0
          if (yych <= '"') goto yy1087;
12608
0
          if (yych <= '#') goto yy1085;
12609
0
          goto yy1089;
12610
0
        } else {
12611
0
          if (yych == '\'') goto yy1085;
12612
0
          if (yych <= '/') goto yy1087;
12613
0
          goto yy1090;
12614
0
        }
12615
0
      }
12616
0
    } else {
12617
0
      if (yych <= ']') {
12618
0
        if (yych <= 'Z') {
12619
0
          if (yych <= '9') goto yy1092;
12620
0
          if (yych <= '@') goto yy1087;
12621
0
          goto yy1094;
12622
0
        } else {
12623
0
          if (yych <= '[') goto yy1087;
12624
0
          if (yych <= '\\') goto yy1085;
12625
0
          goto yy1097;
12626
0
        }
12627
0
      } else {
12628
0
        if (yych <= '`') {
12629
0
          if (yych == '_') goto yy1094;
12630
0
          goto yy1087;
12631
0
        } else {
12632
0
          if (yych <= 'z') goto yy1094;
12633
0
          if (yych <= '~') goto yy1087;
12634
0
          if (yych >= 0x80) goto yy1094;
12635
0
        }
12636
0
      }
12637
0
    }
12638
0
yy1083:
12639
0
    YYDEBUG(1083, *YYCURSOR);
12640
0
    ++YYCURSOR;
12641
0
    YYDEBUG(1084, *YYCURSOR);
12642
0
    yyleng = YYCURSOR - SCNG(yy_text);
12643
0
#line 3180 "Zend/zend_language_scanner.l"
12644
0
    {
12645
0
  if (YYCURSOR > YYLIMIT) {
12646
0
    RETURN_END_TOKEN;
12647
0
  }
12648
12649
0
  RETURN_TOKEN(T_BAD_CHARACTER);
12650
0
}
12651
0
#line 12652 "Zend/zend_language_scanner.c"
12652
0
yy1085:
12653
0
    YYDEBUG(1085, *YYCURSOR);
12654
0
    ++YYCURSOR;
12655
0
    YYDEBUG(1086, *YYCURSOR);
12656
0
    yyleng = YYCURSOR - SCNG(yy_text);
12657
0
#line 2431 "Zend/zend_language_scanner.l"
12658
0
    {
12659
  /* Invalid rule to return a more explicit parse error with proper line number */
12660
0
  yyless(0);
12661
0
  yy_pop_state();
12662
0
  ZVAL_NULL(zendlval);
12663
0
  RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
12664
0
}
12665
0
#line 12666 "Zend/zend_language_scanner.c"
12666
0
yy1087:
12667
0
    YYDEBUG(1087, *YYCURSOR);
12668
0
    ++YYCURSOR;
12669
0
yy1088:
12670
0
    YYDEBUG(1088, *YYCURSOR);
12671
0
    yyleng = YYCURSOR - SCNG(yy_text);
12672
0
#line 2426 "Zend/zend_language_scanner.l"
12673
0
    {
12674
  /* Only '[' or '-' can be valid, but returning other tokens will allow a more explicit parse error */
12675
0
  RETURN_TOKEN(yytext[0]);
12676
0
}
12677
0
#line 12678 "Zend/zend_language_scanner.c"
12678
0
yy1089:
12679
0
    YYDEBUG(1089, *YYCURSOR);
12680
0
    yych = *++YYCURSOR;
12681
0
    if (yych <= '_') {
12682
0
      if (yych <= '@') goto yy1088;
12683
0
      if (yych <= 'Z') goto yy1099;
12684
0
      if (yych <= '^') goto yy1088;
12685
0
      goto yy1099;
12686
0
    } else {
12687
0
      if (yych <= '`') goto yy1088;
12688
0
      if (yych <= 'z') goto yy1099;
12689
0
      if (yych <= 0x7F) goto yy1088;
12690
0
      goto yy1099;
12691
0
    }
12692
0
yy1090:
12693
0
    YYDEBUG(1090, *YYCURSOR);
12694
0
    yyaccept = 0;
12695
0
    yych = *(YYMARKER = ++YYCURSOR);
12696
0
    if (yych <= 'X') {
12697
0
      if (yych <= 'B') {
12698
0
        if (yych <= '/') goto yy1091;
12699
0
        if (yych <= '9') goto yy1102;
12700
0
        if (yych >= 'B') goto yy1105;
12701
0
      } else {
12702
0
        if (yych == 'O') goto yy1107;
12703
0
        if (yych >= 'X') goto yy1108;
12704
0
      }
12705
0
    } else {
12706
0
      if (yych <= 'b') {
12707
0
        if (yych == '_') goto yy1109;
12708
0
        if (yych >= 'b') goto yy1105;
12709
0
      } else {
12710
0
        if (yych <= 'o') {
12711
0
          if (yych >= 'o') goto yy1107;
12712
0
        } else {
12713
0
          if (yych == 'x') goto yy1108;
12714
0
        }
12715
0
      }
12716
0
    }
12717
0
yy1091:
12718
0
    YYDEBUG(1091, *YYCURSOR);
12719
0
    yyleng = YYCURSOR - SCNG(yy_text);
12720
0
#line 2208 "Zend/zend_language_scanner.l"
12721
0
    { /* Offset could be treated as a long */
12722
0
  if (yyleng < MAX_LENGTH_OF_LONG - 1 || (yyleng == MAX_LENGTH_OF_LONG - 1 && strcmp(yytext, long_min_digits) < 0)) {
12723
0
    char *end;
12724
0
    errno = 0;
12725
0
    ZVAL_LONG(zendlval, ZEND_STRTOL(yytext, &end, 10));
12726
0
    if (errno == ERANGE) {
12727
0
      goto string;
12728
0
    }
12729
0
    ZEND_ASSERT(end == yytext + yyleng);
12730
0
  } else {
12731
0
string:
12732
0
    ZVAL_STRINGL(zendlval, yytext, yyleng);
12733
0
  }
12734
0
  RETURN_TOKEN_WITH_VAL(T_NUM_STRING);
12735
0
}
12736
0
#line 12737 "Zend/zend_language_scanner.c"
12737
0
yy1092:
12738
0
    YYDEBUG(1092, *YYCURSOR);
12739
0
    yyaccept = 0;
12740
0
    YYMARKER = ++YYCURSOR;
12741
0
    YYFILL(1);
12742
0
    yych = *YYCURSOR;
12743
0
    YYDEBUG(1093, *YYCURSOR);
12744
0
    if (yybm[0+yych] & 8) {
12745
0
      goto yy1092;
12746
0
    }
12747
0
    if (yych == '_') goto yy1109;
12748
0
    goto yy1091;
12749
0
yy1094:
12750
0
    YYDEBUG(1094, *YYCURSOR);
12751
0
    ++YYCURSOR;
12752
0
    YYFILL(1);
12753
0
    yych = *YYCURSOR;
12754
0
    YYDEBUG(1095, *YYCURSOR);
12755
0
    if (yybm[0+yych] & 16) {
12756
0
      goto yy1094;
12757
0
    }
12758
0
    YYDEBUG(1096, *YYCURSOR);
12759
0
    yyleng = YYCURSOR - SCNG(yy_text);
12760
0
#line 2455 "Zend/zend_language_scanner.l"
12761
0
    {
12762
0
  RETURN_TOKEN_WITH_STR(T_STRING, 0);
12763
0
}
12764
0
#line 12765 "Zend/zend_language_scanner.c"
12765
0
yy1097:
12766
0
    YYDEBUG(1097, *YYCURSOR);
12767
0
    ++YYCURSOR;
12768
0
    YYDEBUG(1098, *YYCURSOR);
12769
0
    yyleng = YYCURSOR - SCNG(yy_text);
12770
0
#line 2421 "Zend/zend_language_scanner.l"
12771
0
    {
12772
0
  yy_pop_state();
12773
0
  RETURN_TOKEN(']');
12774
0
}
12775
0
#line 12776 "Zend/zend_language_scanner.c"
12776
0
yy1099:
12777
0
    YYDEBUG(1099, *YYCURSOR);
12778
0
    ++YYCURSOR;
12779
0
    YYFILL(1);
12780
0
    yych = *YYCURSOR;
12781
0
    YYDEBUG(1100, *YYCURSOR);
12782
0
    if (yych <= '^') {
12783
0
      if (yych <= '9') {
12784
0
        if (yych >= '0') goto yy1099;
12785
0
      } else {
12786
0
        if (yych <= '@') goto yy1101;
12787
0
        if (yych <= 'Z') goto yy1099;
12788
0
      }
12789
0
    } else {
12790
0
      if (yych <= '`') {
12791
0
        if (yych <= '_') goto yy1099;
12792
0
      } else {
12793
0
        if (yych <= 'z') goto yy1099;
12794
0
        if (yych >= 0x80) goto yy1099;
12795
0
      }
12796
0
    }
12797
0
yy1101:
12798
0
    YYDEBUG(1101, *YYCURSOR);
12799
0
    yyleng = YYCURSOR - SCNG(yy_text);
12800
0
#line 2417 "Zend/zend_language_scanner.l"
12801
0
    {
12802
0
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12803
0
}
12804
0
#line 12805 "Zend/zend_language_scanner.c"
12805
0
yy1102:
12806
0
    YYDEBUG(1102, *YYCURSOR);
12807
0
    yyaccept = 1;
12808
0
    YYMARKER = ++YYCURSOR;
12809
0
    YYFILL(1);
12810
0
    yych = *YYCURSOR;
12811
0
    YYDEBUG(1103, *YYCURSOR);
12812
0
    if (yych <= '/') goto yy1104;
12813
0
    if (yych <= '9') goto yy1102;
12814
0
    if (yych == '_') goto yy1109;
12815
0
yy1104:
12816
0
    YYDEBUG(1104, *YYCURSOR);
12817
0
    yyleng = YYCURSOR - SCNG(yy_text);
12818
0
#line 2224 "Zend/zend_language_scanner.l"
12819
0
    { /* Offset must be treated as a string */
12820
0
  if (yyleng == 1) {
12821
0
    ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR((zend_uchar)*(yytext)));
12822
0
  } else {
12823
0
    ZVAL_STRINGL(zendlval, yytext, yyleng);
12824
0
  }
12825
0
  RETURN_TOKEN_WITH_VAL(T_NUM_STRING);
12826
0
}
12827
0
#line 12828 "Zend/zend_language_scanner.c"
12828
0
yy1105:
12829
0
    YYDEBUG(1105, *YYCURSOR);
12830
0
    ++YYCURSOR;
12831
0
    YYFILL(1);
12832
0
    yych = *YYCURSOR;
12833
0
    if (yybm[0+yych] & 32) {
12834
0
      goto yy1110;
12835
0
    }
12836
0
yy1106:
12837
0
    YYDEBUG(1106, *YYCURSOR);
12838
0
    YYCURSOR = YYMARKER;
12839
0
    if (yyaccept == 0) {
12840
0
      goto yy1091;
12841
0
    } else {
12842
0
      goto yy1104;
12843
0
    }
12844
0
yy1107:
12845
0
    YYDEBUG(1107, *YYCURSOR);
12846
0
    ++YYCURSOR;
12847
0
    YYFILL(1);
12848
0
    yych = *YYCURSOR;
12849
0
    if (yybm[0+yych] & 64) {
12850
0
      goto yy1112;
12851
0
    }
12852
0
    goto yy1106;
12853
0
yy1108:
12854
0
    YYDEBUG(1108, *YYCURSOR);
12855
0
    ++YYCURSOR;
12856
0
    YYFILL(1);
12857
0
    yych = *YYCURSOR;
12858
0
    if (yybm[0+yych] & 128) {
12859
0
      goto yy1114;
12860
0
    }
12861
0
    goto yy1106;
12862
0
yy1109:
12863
0
    YYDEBUG(1109, *YYCURSOR);
12864
0
    ++YYCURSOR;
12865
0
    YYFILL(1);
12866
0
    yych = *YYCURSOR;
12867
0
    if (yych <= '/') goto yy1106;
12868
0
    if (yych <= '9') goto yy1102;
12869
0
    goto yy1106;
12870
0
yy1110:
12871
0
    YYDEBUG(1110, *YYCURSOR);
12872
0
    yyaccept = 1;
12873
0
    YYMARKER = ++YYCURSOR;
12874
0
    YYFILL(1);
12875
0
    yych = *YYCURSOR;
12876
0
    YYDEBUG(1111, *YYCURSOR);
12877
0
    if (yybm[0+yych] & 32) {
12878
0
      goto yy1110;
12879
0
    }
12880
0
    if (yych == '_') goto yy1105;
12881
0
    goto yy1104;
12882
0
yy1112:
12883
0
    YYDEBUG(1112, *YYCURSOR);
12884
0
    yyaccept = 1;
12885
0
    YYMARKER = ++YYCURSOR;
12886
0
    YYFILL(1);
12887
0
    yych = *YYCURSOR;
12888
0
    YYDEBUG(1113, *YYCURSOR);
12889
0
    if (yybm[0+yych] & 64) {
12890
0
      goto yy1112;
12891
0
    }
12892
0
    if (yych == '_') goto yy1107;
12893
0
    goto yy1104;
12894
0
yy1114:
12895
0
    YYDEBUG(1114, *YYCURSOR);
12896
0
    yyaccept = 1;
12897
0
    YYMARKER = ++YYCURSOR;
12898
0
    YYFILL(1);
12899
0
    yych = *YYCURSOR;
12900
0
    YYDEBUG(1115, *YYCURSOR);
12901
0
    if (yybm[0+yych] & 128) {
12902
0
      goto yy1114;
12903
0
    }
12904
0
    if (yych == '_') goto yy1108;
12905
0
    goto yy1104;
12906
0
  }
12907
/* *********************************** */
12908
0
yyc_SHEBANG:
12909
0
  {
12910
0
    static const unsigned char yybm[] = {
12911
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12912
0
      128, 128,   0, 128, 128, 128, 128, 128, 
12913
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12914
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12915
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12916
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12917
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12918
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12919
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12920
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12921
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12922
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12923
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12924
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12925
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12926
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12927
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12928
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12929
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12930
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12931
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12932
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12933
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12934
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12935
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12936
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12937
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12938
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12939
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12940
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12941
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12942
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12943
0
    };
12944
0
    YYDEBUG(1116, *YYCURSOR);
12945
0
    YYFILL(2);
12946
0
    yych = *YYCURSOR;
12947
0
    if (yych == '#') goto yy1120;
12948
0
    YYDEBUG(1118, *YYCURSOR);
12949
0
    ++YYCURSOR;
12950
0
yy1119:
12951
0
    YYDEBUG(1119, *YYCURSOR);
12952
0
    yyleng = YYCURSOR - SCNG(yy_text);
12953
0
#line 2295 "Zend/zend_language_scanner.l"
12954
0
    {
12955
0
  yyless(0);
12956
0
  BEGIN(INITIAL);
12957
0
  goto restart;
12958
0
}
12959
0
#line 12960 "Zend/zend_language_scanner.c"
12960
0
yy1120:
12961
0
    YYDEBUG(1120, *YYCURSOR);
12962
0
    yych = *++YYCURSOR;
12963
0
    if (yych != '!') goto yy1119;
12964
0
yy1121:
12965
0
    YYDEBUG(1121, *YYCURSOR);
12966
0
    ++YYCURSOR;
12967
0
    YYFILL(1);
12968
0
    yych = *YYCURSOR;
12969
0
    YYDEBUG(1122, *YYCURSOR);
12970
0
    if (yybm[0+yych] & 128) {
12971
0
      goto yy1121;
12972
0
    }
12973
0
    YYDEBUG(1123, *YYCURSOR);
12974
0
    ++YYCURSOR;
12975
0
    YYDEBUG(1124, *YYCURSOR);
12976
0
    yyleng = YYCURSOR - SCNG(yy_text);
12977
0
#line 2289 "Zend/zend_language_scanner.l"
12978
0
    {
12979
0
  CG(zend_lineno)++;
12980
0
  BEGIN(INITIAL);
12981
0
  goto restart;
12982
0
}
12983
0
#line 12984 "Zend/zend_language_scanner.c"
12984
0
  }
12985
/* *********************************** */
12986
0
yyc_INITIAL:
12987
0
  YYDEBUG(1125, *YYCURSOR);
12988
0
  YYFILL(7);
12989
0
  yych = *YYCURSOR;
12990
0
  if (yych == '<') goto yy1129;
12991
0
  YYDEBUG(1127, *YYCURSOR);
12992
0
  ++YYCURSOR;
12993
0
yy1128:
12994
0
  YYDEBUG(1128, *YYCURSOR);
12995
0
  yyleng = YYCURSOR - SCNG(yy_text);
12996
0
#line 2341 "Zend/zend_language_scanner.l"
12997
0
  {
12998
0
  if (YYCURSOR > YYLIMIT) {
12999
0
    RETURN_END_TOKEN;
13000
0
  }
13001
13002
0
inline_char_handler:
13003
13004
0
  while (1) {
13005
0
    YYCTYPE *ptr = memchr(YYCURSOR, '<', YYLIMIT - YYCURSOR);
13006
13007
0
    YYCURSOR = ptr ? ptr + 1 : YYLIMIT;
13008
13009
0
    if (YYCURSOR >= YYLIMIT) {
13010
0
      break;
13011
0
    }
13012
13013
0
    if (*YYCURSOR == '?') {
13014
0
      if (CG(short_tags) /* <? */
13015
0
        || (*(YYCURSOR + 1) == '=') /* <?= */
13016
0
        || (!strncasecmp((char*)YYCURSOR + 1, "php", 3) && /* <?php[ \t\r\n] */
13017
0
          (YYCURSOR + 4 == YYLIMIT ||
13018
0
          YYCURSOR[4] == ' ' || YYCURSOR[4] == '\t' ||
13019
0
          YYCURSOR[4] == '\n' || YYCURSOR[4] == '\r'))
13020
0
      ) {
13021
0
        YYCURSOR--;
13022
0
        break;
13023
0
      }
13024
0
    }
13025
0
  }
13026
13027
0
  yyleng = YYCURSOR - SCNG(yy_text);
13028
13029
0
  if (SCNG(output_filter)) {
13030
0
    size_t readsize;
13031
0
    char *s = NULL;
13032
0
    size_t sz = 0;
13033
    // TODO: avoid reallocation ???
13034
0
    readsize = SCNG(output_filter)((unsigned char **)&s, &sz, (unsigned char *)yytext, (size_t)yyleng);
13035
0
    ZVAL_STRINGL(zendlval, s, sz);
13036
0
    efree(s);
13037
0
    if (readsize < yyleng) {
13038
0
      yyless(readsize);
13039
0
    }
13040
0
  } else if (yyleng == 1) {
13041
0
    ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR((zend_uchar)*yytext));
13042
0
  } else {
13043
0
    ZVAL_STRINGL(zendlval, yytext, yyleng);
13044
0
  }
13045
0
  HANDLE_NEWLINES(yytext, yyleng);
13046
0
  RETURN_TOKEN_WITH_VAL(T_INLINE_HTML);
13047
0
}
13048
0
#line 13049 "Zend/zend_language_scanner.c"
13049
0
yy1129:
13050
0
  YYDEBUG(1129, *YYCURSOR);
13051
0
  yych = *++YYCURSOR;
13052
0
  if (yych != '?') goto yy1128;
13053
0
  YYDEBUG(1130, *YYCURSOR);
13054
0
  yych = *(YYMARKER = ++YYCURSOR);
13055
0
  if (yych <= 'O') {
13056
0
    if (yych == '=') goto yy1132;
13057
0
  } else {
13058
0
    if (yych <= 'P') goto yy1134;
13059
0
    if (yych == 'p') goto yy1134;
13060
0
  }
13061
0
yy1131:
13062
0
  YYDEBUG(1131, *YYCURSOR);
13063
0
  yyleng = YYCURSOR - SCNG(yy_text);
13064
0
#line 2332 "Zend/zend_language_scanner.l"
13065
0
  {
13066
0
  if (CG(short_tags)) {
13067
0
    BEGIN(ST_IN_SCRIPTING);
13068
0
    RETURN_OR_SKIP_TOKEN(T_OPEN_TAG);
13069
0
  } else {
13070
0
    goto inline_char_handler;
13071
0
  }
13072
0
}
13073
0
#line 13074 "Zend/zend_language_scanner.c"
13074
0
yy1132:
13075
0
  YYDEBUG(1132, *YYCURSOR);
13076
0
  ++YYCURSOR;
13077
0
  YYDEBUG(1133, *YYCURSOR);
13078
0
  yyleng = YYCURSOR - SCNG(yy_text);
13079
0
#line 2301 "Zend/zend_language_scanner.l"
13080
0
  {
13081
0
  BEGIN(ST_IN_SCRIPTING);
13082
0
  if (PARSER_MODE()) {
13083
    /* We'll reject this as an identifier in zend_lex_tstring. */
13084
0
    RETURN_TOKEN_WITH_IDENT(T_ECHO);
13085
0
  }
13086
0
  RETURN_TOKEN(T_OPEN_TAG_WITH_ECHO);
13087
0
}
13088
0
#line 13089 "Zend/zend_language_scanner.c"
13089
0
yy1134:
13090
0
  YYDEBUG(1134, *YYCURSOR);
13091
0
  yych = *++YYCURSOR;
13092
0
  if (yych == 'H') goto yy1136;
13093
0
  if (yych == 'h') goto yy1136;
13094
0
yy1135:
13095
0
  YYDEBUG(1135, *YYCURSOR);
13096
0
  YYCURSOR = YYMARKER;
13097
0
  goto yy1131;
13098
0
yy1136:
13099
0
  YYDEBUG(1136, *YYCURSOR);
13100
0
  yych = *++YYCURSOR;
13101
0
  if (yych == 'P') goto yy1137;
13102
0
  if (yych != 'p') goto yy1135;
13103
0
yy1137:
13104
0
  YYDEBUG(1137, *YYCURSOR);
13105
0
  yych = *++YYCURSOR;
13106
0
  if (yych <= '\f') {
13107
0
    if (yych <= 0x08) goto yy1138;
13108
0
    if (yych <= '\n') goto yy1139;
13109
0
  } else {
13110
0
    if (yych <= '\r') goto yy1141;
13111
0
    if (yych == ' ') goto yy1139;
13112
0
  }
13113
0
yy1138:
13114
0
  YYDEBUG(1138, *YYCURSOR);
13115
0
  yyleng = YYCURSOR - SCNG(yy_text);
13116
0
#line 2317 "Zend/zend_language_scanner.l"
13117
0
  {
13118
  /* Allow <?php followed by end of file. */
13119
0
  if (YYCURSOR == YYLIMIT) {
13120
0
    BEGIN(ST_IN_SCRIPTING);
13121
0
    RETURN_OR_SKIP_TOKEN(T_OPEN_TAG);
13122
0
  }
13123
  /* Degenerate case: <?phpX is interpreted as <? phpX with short tags. */
13124
0
  if (CG(short_tags)) {
13125
0
    yyless(2);
13126
0
    BEGIN(ST_IN_SCRIPTING);
13127
0
    RETURN_OR_SKIP_TOKEN(T_OPEN_TAG);
13128
0
  }
13129
0
  goto inline_char_handler;
13130
0
}
13131
0
#line 13132 "Zend/zend_language_scanner.c"
13132
0
yy1139:
13133
0
  YYDEBUG(1139, *YYCURSOR);
13134
0
  ++YYCURSOR;
13135
0
yy1140:
13136
0
  YYDEBUG(1140, *YYCURSOR);
13137
0
  yyleng = YYCURSOR - SCNG(yy_text);
13138
0
#line 2311 "Zend/zend_language_scanner.l"
13139
0
  {
13140
0
  HANDLE_NEWLINE(yytext[yyleng-1]);
13141
0
  BEGIN(ST_IN_SCRIPTING);
13142
0
  RETURN_OR_SKIP_TOKEN(T_OPEN_TAG);
13143
0
}
13144
0
#line 13145 "Zend/zend_language_scanner.c"
13145
0
yy1141:
13146
0
  YYDEBUG(1141, *YYCURSOR);
13147
0
  yych = *++YYCURSOR;
13148
0
  if (yych == '\n') goto yy1139;
13149
0
  goto yy1140;
13150
/* *********************************** */
13151
0
yyc_ST_END_HEREDOC:
13152
0
  YYDEBUG(1142, *YYCURSOR);
13153
0
  YYFILL(1);
13154
0
  yych = *YYCURSOR;
13155
0
  YYDEBUG(1144, *YYCURSOR);
13156
0
  ++YYCURSOR;
13157
0
  YYDEBUG(1145, *YYCURSOR);
13158
0
  yyleng = YYCURSOR - SCNG(yy_text);
13159
0
#line 2832 "Zend/zend_language_scanner.l"
13160
0
  {
13161
0
  zend_heredoc_label *heredoc_label = zend_ptr_stack_pop(&SCNG(heredoc_label_stack));
13162
13163
0
  yyleng = heredoc_label->indentation + heredoc_label->length;
13164
0
  YYCURSOR += yyleng - 1;
13165
13166
0
  heredoc_label_dtor(heredoc_label);
13167
0
  efree(heredoc_label);
13168
13169
0
  BEGIN(ST_IN_SCRIPTING);
13170
0
  RETURN_TOKEN(T_END_HEREDOC);
13171
0
}
13172
0
#line 13173 "Zend/zend_language_scanner.c"
13173
/* *********************************** */
13174
0
yyc_ST_NOWDOC:
13175
0
  YYDEBUG(1146, *YYCURSOR);
13176
0
  YYFILL(1);
13177
0
  yych = *YYCURSOR;
13178
0
  YYDEBUG(1148, *YYCURSOR);
13179
0
  ++YYCURSOR;
13180
0
  YYDEBUG(1149, *YYCURSOR);
13181
0
  yyleng = YYCURSOR - SCNG(yy_text);
13182
0
#line 3089 "Zend/zend_language_scanner.l"
13183
0
  {
13184
0
  zend_heredoc_label *heredoc_label = zend_ptr_stack_top(&SCNG(heredoc_label_stack));
13185
0
  int newline = 0, indentation = 0, spacing = -1;
13186
13187
0
  if (YYCURSOR > YYLIMIT) {
13188
0
    RETURN_END_TOKEN;
13189
0
  }
13190
13191
0
  YYCURSOR--;
13192
13193
0
  while (YYCURSOR < YYLIMIT) {
13194
0
    switch (*YYCURSOR++) {
13195
0
      case '\r':
13196
0
        if (*YYCURSOR == '\n') {
13197
0
          YYCURSOR++;
13198
0
        }
13199
0
        ZEND_FALLTHROUGH;
13200
0
      case '\n':
13201
0
        indentation = spacing = 0;
13202
13203
0
        while (YYCURSOR < YYLIMIT && (*YYCURSOR == ' ' || *YYCURSOR == '\t')) {
13204
0
          if (*YYCURSOR == '\t') {
13205
0
            spacing |= HEREDOC_USING_TABS;
13206
0
          } else {
13207
0
            spacing |= HEREDOC_USING_SPACES;
13208
0
          }
13209
0
          ++YYCURSOR;
13210
0
          ++indentation;
13211
0
        }
13212
13213
0
        if (YYCURSOR == YYLIMIT) {
13214
0
          yyleng = YYCURSOR - SCNG(yy_text);
13215
0
          HANDLE_NEWLINES(yytext, yyleng);
13216
0
          ZVAL_NULL(zendlval);
13217
0
          RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
13218
0
        }
13219
13220
        /* Check for ending label on the next line */
13221
0
        if (IS_LABEL_START(*YYCURSOR) && heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, heredoc_label->label, heredoc_label->length)) {
13222
0
          if (IS_LABEL_SUCCESSOR(YYCURSOR[heredoc_label->length])) {
13223
0
            continue;
13224
0
          }
13225
13226
0
          if (spacing == (HEREDOC_USING_SPACES | HEREDOC_USING_TABS)) {
13227
0
            zend_throw_exception(zend_ce_parse_error, "Invalid indentation - tabs and spaces cannot be mixed", 0);
13228
0
            if (PARSER_MODE()) {
13229
0
              RETURN_TOKEN(T_ERROR);
13230
0
            }
13231
0
          }
13232
13233
          /* newline before label will be subtracted from returned text, but
13234
           * yyleng/yytext will include it, for zend_highlight/strip, tokenizer, etc. */
13235
0
          if (YYCURSOR[-indentation - 2] == '\r' && YYCURSOR[-indentation - 1] == '\n') {
13236
0
            newline = 2; /* Windows newline */
13237
0
          } else {
13238
0
            newline = 1;
13239
0
          }
13240
13241
0
          CG(increment_lineno) = 1; /* For newline before label */
13242
13243
0
          YYCURSOR -= indentation;
13244
0
          heredoc_label->indentation = indentation;
13245
13246
0
          BEGIN(ST_END_HEREDOC);
13247
13248
0
          goto nowdoc_scan_done;
13249
0
        }
13250
0
        ZEND_FALLTHROUGH;
13251
0
      default:
13252
0
        continue;
13253
0
    }
13254
0
  }
13255
13256
0
nowdoc_scan_done:
13257
0
  yyleng = YYCURSOR - SCNG(yy_text);
13258
0
  ZVAL_STRINGL(zendlval, yytext, yyleng - newline);
13259
13260
0
  if (!EG(exception) && spacing != -1 && PARSER_MODE()) {
13261
0
    bool newline_at_start = *(yytext - 1) == '\n' || *(yytext - 1) == '\r';
13262
0
    if (!strip_multiline_string_indentation(
13263
0
        zendlval, indentation, spacing == HEREDOC_USING_SPACES,
13264
0
        newline_at_start, newline != 0)) {
13265
0
      RETURN_TOKEN(T_ERROR);
13266
0
    }
13267
0
  }
13268
13269
0
  HANDLE_NEWLINES(yytext, yyleng - newline);
13270
0
  RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
13271
0
}
13272
0
#line 13273 "Zend/zend_language_scanner.c"
13273
0
}
13274
0
#line 3188 "Zend/zend_language_scanner.l"
13275
13276
13277
0
emit_token_with_str:
13278
0
  zend_copy_value(zendlval, (yytext + offset), (yyleng - offset));
13279
13280
0
emit_token_with_val:
13281
0
  if (PARSER_MODE()) {
13282
0
    ZEND_ASSERT(Z_TYPE_P(zendlval) != IS_UNDEF);
13283
0
    elem->ast = zend_ast_create_zval_with_lineno(zendlval, start_line);
13284
0
  }
13285
13286
0
emit_token:
13287
0
  if (SCNG(on_event)) {
13288
0
    SCNG(on_event)(ON_TOKEN, token, start_line, yytext, yyleng, SCNG(on_event_context));
13289
0
  }
13290
0
  return token;
13291
13292
0
emit_token_with_ident:
13293
0
  if (PARSER_MODE()) {
13294
0
    elem->ident = SCNG(yy_text);
13295
0
  }
13296
0
  if (SCNG(on_event)) {
13297
0
    SCNG(on_event)(ON_TOKEN, token, start_line, yytext, yyleng, SCNG(on_event_context));
13298
0
  }
13299
0
  return token;
13300
13301
0
return_whitespace:
13302
0
  HANDLE_NEWLINES(yytext, yyleng);
13303
0
  if (SCNG(on_event)) {
13304
0
    SCNG(on_event)(ON_TOKEN, T_WHITESPACE, start_line, yytext, yyleng, SCNG(on_event_context));
13305
0
  }
13306
0
  if (PARSER_MODE()) {
13307
0
    start_line = CG(zend_lineno);
13308
0
    goto restart;
13309
0
  } else {
13310
0
    return T_WHITESPACE;
13311
0
  }
13312
13313
0
skip_token:
13314
0
  if (SCNG(on_event)) {
13315
0
    SCNG(on_event)(ON_TOKEN, token, start_line, yytext, yyleng, SCNG(on_event_context));
13316
0
  }
13317
0
  start_line = CG(zend_lineno);
13318
0
  goto restart;
13319
0
}