Coverage Report

Created: 2025-12-14 06:09

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
20.6M
#define YYCTYPE   unsigned char
54
53.2M
#define YYFILL(n) { if ((YYCURSOR + n) >= (YYLIMIT + ZEND_MMAP_AHEAD)) { return 0; } }
55
380M
#define YYCURSOR  SCNG(yy_cursor)
56
126M
#define YYLIMIT   SCNG(yy_limit)
57
19.6M
#define YYMARKER  SCNG(yy_marker)
58
59
68.1M
#define YYGETCONDITION()  SCNG(yy_state)
60
6.58M
#define YYSETCONDITION(s) SCNG(yy_state) = s
61
62
#define STATE(name)  yyc##name
63
64
/* emulate flex constructs */
65
1.54M
#define BEGIN(state) YYSETCONDITION(STATE(state))
66
106k
#define YYSTATE      YYGETCONDITION()
67
6.82M
#define yytext       ((char*)SCNG(yy_text))
68
27.1M
#define yyleng       SCNG(yy_leng)
69
1.49M
#define yyless(x)    do { YYCURSOR = (unsigned char*)yytext + x; \
70
1.49M
                          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
724M
#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
3.86M
#define HANDLE_NEWLINES(s, l)                         \
97
3.86M
do {                                     \
98
3.86M
  char *p = (s), *boundary = p+(l);                     \
99
3.86M
                                        \
100
38.9M
  while (p<boundary) {                           \
101
35.0M
    if (*p == '\n' || (*p == '\r' && (*(p+1) != '\n'))) {         \
102
3.50M
      CG(zend_lineno)++;                          \
103
3.50M
    }                                    \
104
35.0M
    p++;                                  \
105
35.0M
  }                                      \
106
3.86M
} while (0)
107
108
167k
#define HANDLE_NEWLINE(c) \
109
167k
{ \
110
167k
  if (c == '\n' || c == '\r') { \
111
40.8k
    CG(zend_lineno)++; \
112
40.8k
  } \
113
167k
}
114
115
/* To save initial string length after scanning to first variable */
116
111k
#define SET_DOUBLE_QUOTES_SCANNED_LENGTH(len) SCNG(scanned_string_len) = (len)
117
279k
#define GET_DOUBLE_QUOTES_SCANNED_LENGTH()    SCNG(scanned_string_len)
118
119
6.15M
#define IS_LABEL_START(c) (((c) >= 'a' && (c) <= 'z') || ((c) >= 'A' && (c) <= 'Z') || (c) == '_' || (c) >= 0x80)
120
23.3k
#define IS_LABEL_SUCCESSOR(c) (((c) >= 'a' && (c) <= 'z') || ((c) >= 'A' && (c) <= 'Z') || ((c) >= '0' && (c) <= '9') || (c) == '_' || (c) >= 0x80)
121
122
65.7k
#define ZEND_IS_OCT(c)  ((c)>='0' && (c)<='7')
123
4.28k
#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
718
{
128
718
  char *src = str, *dest = str;
129
7.21k
  while (*src != '\0') {
130
6.49k
    if (*src != '_') {
131
5.66k
      *dest = *src;
132
5.66k
      dest++;
133
5.66k
    } else {
134
830
      --(*len);
135
830
    }
136
6.49k
    src++;
137
6.49k
  }
138
718
  *dest = '\0';
139
718
}
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
3.27M
{
170
3.27M
  zend_stack_push(&SCNG(state_stack), (void *) &YYGETCONDITION());
171
3.27M
  YYSETCONDITION(new_state);
172
3.27M
}
173
174
3.27M
#define yy_push_state(state_and_tsrm) _yy_push_state(yyc##state_and_tsrm)
175
176
static void yy_pop_state(void)
177
1.65M
{
178
1.65M
  int *stack_state = zend_stack_top(&SCNG(state_stack));
179
1.65M
  YYSETCONDITION(*stack_state);
180
1.65M
  zend_stack_del_top(&SCNG(state_stack));
181
1.65M
}
182
183
static void yy_scan_buffer(char *str, size_t len)
184
51.6k
{
185
51.6k
  YYCURSOR       = (YYCTYPE*)str;
186
51.6k
  YYLIMIT        = YYCURSOR + len;
187
51.6k
  if (!SCNG(yy_start)) {
188
6.49k
    SCNG(yy_start) = YYCURSOR;
189
6.49k
  }
190
51.6k
}
191
192
void startup_scanner(void)
193
57.8k
{
194
57.8k
  CG(parse_error) = 0;
195
57.8k
  CG(doc_comment) = NULL;
196
57.8k
  CG(extra_fn_flags) = 0;
197
57.8k
  zend_stack_init(&SCNG(state_stack), sizeof(int));
198
57.8k
  zend_stack_init(&SCNG(nest_location_stack), sizeof(zend_nest_location));
199
57.8k
  zend_ptr_stack_init(&SCNG(heredoc_label_stack));
200
57.8k
  SCNG(heredoc_scan_ahead) = 0;
201
57.8k
}
202
203
1.99M
static void heredoc_label_dtor(zend_heredoc_label *heredoc_label) {
204
1.99M
    efree(heredoc_label->label);
205
1.99M
}
206
207
void shutdown_scanner(void)
208
57.8k
{
209
57.8k
  CG(parse_error) = 0;
210
57.8k
  RESET_DOC_COMMENT();
211
57.8k
  zend_stack_destroy(&SCNG(state_stack));
212
57.8k
  zend_stack_destroy(&SCNG(nest_location_stack));
213
57.8k
  zend_ptr_stack_clean(&SCNG(heredoc_label_stack), (void (*)(void *)) &heredoc_label_dtor, 1);
214
57.8k
  zend_ptr_stack_destroy(&SCNG(heredoc_label_stack));
215
57.8k
  SCNG(heredoc_scan_ahead) = 0;
216
57.8k
  SCNG(on_event) = NULL;
217
57.8k
  SCNG(on_event_context) = NULL;
218
57.8k
}
219
220
ZEND_API void zend_save_lexical_state(zend_lex_state *lex_state)
221
106k
{
222
106k
  lex_state->yy_leng   = SCNG(yy_leng);
223
106k
  lex_state->yy_start  = SCNG(yy_start);
224
106k
  lex_state->yy_text   = SCNG(yy_text);
225
106k
  lex_state->yy_cursor = SCNG(yy_cursor);
226
106k
  lex_state->yy_marker = SCNG(yy_marker);
227
106k
  lex_state->yy_limit  = SCNG(yy_limit);
228
229
106k
  lex_state->state_stack = SCNG(state_stack);
230
106k
  zend_stack_init(&SCNG(state_stack), sizeof(int));
231
232
106k
  lex_state->nest_location_stack = SCNG(nest_location_stack);
233
106k
  zend_stack_init(&SCNG(nest_location_stack), sizeof(zend_nest_location));
234
235
106k
  lex_state->heredoc_label_stack = SCNG(heredoc_label_stack);
236
106k
  zend_ptr_stack_init(&SCNG(heredoc_label_stack));
237
238
106k
  lex_state->in = SCNG(yy_in);
239
106k
  lex_state->yy_state = YYSTATE;
240
106k
  lex_state->filename = CG(compiled_filename);
241
106k
  lex_state->lineno = CG(zend_lineno);
242
106k
  CG(compiled_filename) = NULL;
243
244
106k
  lex_state->script_org = SCNG(script_org);
245
106k
  lex_state->script_org_size = SCNG(script_org_size);
246
106k
  lex_state->script_filtered = SCNG(script_filtered);
247
106k
  lex_state->script_filtered_size = SCNG(script_filtered_size);
248
106k
  lex_state->input_filter = SCNG(input_filter);
249
106k
  lex_state->output_filter = SCNG(output_filter);
250
106k
  lex_state->script_encoding = SCNG(script_encoding);
251
252
106k
  lex_state->on_event = SCNG(on_event);
253
106k
  lex_state->on_event_context = SCNG(on_event_context);
254
255
106k
  lex_state->ast = CG(ast);
256
106k
  lex_state->ast_arena = CG(ast_arena);
257
106k
}
258
259
ZEND_API void zend_restore_lexical_state(zend_lex_state *lex_state)
260
104k
{
261
104k
  SCNG(yy_leng)   = lex_state->yy_leng;
262
104k
  SCNG(yy_start)  = lex_state->yy_start;
263
104k
  SCNG(yy_text)   = lex_state->yy_text;
264
104k
  SCNG(yy_cursor) = lex_state->yy_cursor;
265
104k
  SCNG(yy_marker) = lex_state->yy_marker;
266
104k
  SCNG(yy_limit)  = lex_state->yy_limit;
267
268
104k
  zend_stack_destroy(&SCNG(state_stack));
269
104k
  SCNG(state_stack) = lex_state->state_stack;
270
271
104k
  zend_stack_destroy(&SCNG(nest_location_stack));
272
104k
  SCNG(nest_location_stack) = lex_state->nest_location_stack;
273
274
104k
  zend_ptr_stack_clean(&SCNG(heredoc_label_stack), (void (*)(void *)) &heredoc_label_dtor, 1);
275
104k
  zend_ptr_stack_destroy(&SCNG(heredoc_label_stack));
276
104k
  SCNG(heredoc_label_stack) = lex_state->heredoc_label_stack;
277
278
104k
  SCNG(yy_in) = lex_state->in;
279
104k
  YYSETCONDITION(lex_state->yy_state);
280
104k
  CG(zend_lineno) = lex_state->lineno;
281
104k
  zend_restore_compiled_filename(lex_state->filename);
282
283
104k
  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
104k
  SCNG(script_org) = lex_state->script_org;
288
104k
  SCNG(script_org_size) = lex_state->script_org_size;
289
104k
  SCNG(script_filtered) = lex_state->script_filtered;
290
104k
  SCNG(script_filtered_size) = lex_state->script_filtered_size;
291
104k
  SCNG(input_filter) = lex_state->input_filter;
292
104k
  SCNG(output_filter) = lex_state->output_filter;
293
104k
  SCNG(script_encoding) = lex_state->script_encoding;
294
295
104k
  SCNG(on_event) = lex_state->on_event;
296
104k
  SCNG(on_event_context) = lex_state->on_event_context;
297
298
104k
  CG(ast) = lex_state->ast;
299
104k
  CG(ast_arena) = lex_state->ast_arena;
300
301
104k
  RESET_DOC_COMMENT();
302
104k
}
303
304
ZEND_API zend_result zend_lex_tstring(zval *zv, unsigned char *ident)
305
6.26k
{
306
6.26k
  unsigned char *end = ident;
307
42.0k
  while ((*end >= 'a' && *end <= 'z') || (*end >= 'A' && *end <= 'Z') || *end == '_') {
308
35.7k
    end++;
309
35.7k
  }
310
311
6.26k
  size_t length = end - ident;
312
6.26k
  if (length == 0) {
313
3
    ZEND_ASSERT(ident[0] == '<' && ident[1] == '?' && ident[2] == '=');
314
3
    zend_throw_exception(zend_ce_parse_error, "Cannot use \"<?=\" as an identifier", 0);
315
3
    return FAILURE;
316
3
  }
317
318
6.25k
  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
6.25k
  ZVAL_STRINGL(zv, (char *) ident, length);
323
6.25k
  return SUCCESS;
324
6.26k
}
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
45.1k
{
532
45.1k
  char *buf;
533
45.1k
  size_t size;
534
45.1k
  zend_string *compiled_filename;
535
536
45.1k
  if (zend_stream_fixup(file_handle, &buf, &size) == FAILURE) {
537
    /* Still add it to open_files to make destroy_file_handle work */
538
36
    zend_llist_add_element(&CG(open_files), file_handle);
539
36
    file_handle->in_list = 1;
540
36
    return FAILURE;
541
36
  }
542
543
45.1k
  ZEND_ASSERT(!EG(exception) && "stream_fixup() should have failed");
544
45.1k
  zend_llist_add_element(&CG(open_files), file_handle);
545
45.1k
  file_handle->in_list = 1;
546
547
  /* Reset the scanner for scanning the new file */
548
45.1k
  SCNG(yy_in) = file_handle;
549
45.1k
  SCNG(yy_start) = NULL;
550
551
45.1k
  if (size != (size_t)-1) {
552
45.1k
    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
45.1k
    SCNG(yy_start) = (unsigned char *)buf;
569
45.1k
    yy_scan_buffer(buf, size);
570
45.1k
  } else {
571
0
    zend_error_noreturn(E_COMPILE_ERROR, "zend_stream_mmap() failed");
572
0
  }
573
574
45.1k
  if (CG(skip_shebang)) {
575
0
    BEGIN(SHEBANG);
576
45.1k
  } else {
577
45.1k
    BEGIN(INITIAL);
578
45.1k
  }
579
580
45.1k
  if (file_handle->opened_path) {
581
15
    compiled_filename = zend_string_copy(file_handle->opened_path);
582
45.1k
  } else {
583
45.1k
    compiled_filename = zend_string_copy(file_handle->filename);
584
45.1k
  }
585
586
45.1k
  zend_set_compiled_filename(compiled_filename);
587
45.1k
  zend_string_release_ex(compiled_filename, 0);
588
589
45.1k
  SCNG(on_event) = NULL;
590
45.1k
  SCNG(on_event_context) = NULL;
591
45.1k
  RESET_DOC_COMMENT();
592
45.1k
  CG(zend_lineno) = 1;
593
45.1k
  CG(increment_lineno) = 0;
594
45.1k
  return SUCCESS;
595
45.1k
}
596
597
static zend_op_array *zend_compile(int type)
598
47.4k
{
599
47.4k
  zend_op_array *op_array = NULL;
600
47.4k
  bool original_in_compilation = CG(in_compilation);
601
602
47.4k
  CG(in_compilation) = 1;
603
47.4k
  CG(ast) = NULL;
604
47.4k
  CG(ast_arena) = zend_arena_create(1024 * 32);
605
606
47.4k
  if (!zendparse()) {
607
34.8k
    uint32_t last_lineno = CG(zend_lineno);
608
34.8k
    zend_file_context original_file_context;
609
34.8k
    zend_oparray_context original_oparray_context;
610
34.8k
    zend_op_array *original_active_op_array = CG(active_op_array);
611
612
34.8k
    op_array = emalloc(sizeof(zend_op_array));
613
34.8k
    init_op_array(op_array, type, INITIAL_OP_ARRAY_SIZE);
614
34.8k
    CG(active_op_array) = op_array;
615
616
    /* Use heap to not waste arena memory */
617
34.8k
    op_array->fn_flags |= ZEND_ACC_HEAP_RT_CACHE;
618
619
34.8k
    if (zend_ast_process) {
620
0
      zend_ast_process(CG(ast));
621
0
    }
622
623
34.8k
    zend_file_context_begin(&original_file_context);
624
34.8k
    zend_oparray_context_begin(&original_oparray_context, op_array);
625
34.8k
    zend_compile_top_stmt(CG(ast));
626
34.8k
    CG(zend_lineno) = last_lineno;
627
34.8k
    zend_emit_final_return(type == ZEND_USER_FUNCTION);
628
34.8k
    op_array->line_start = 1;
629
34.8k
    op_array->line_end = last_lineno;
630
34.8k
    pass_two(op_array);
631
34.8k
    zend_oparray_context_end(&original_oparray_context);
632
34.8k
    zend_file_context_end(&original_file_context);
633
634
34.8k
    CG(active_op_array) = original_active_op_array;
635
34.8k
  }
636
637
47.4k
  zend_ast_destroy(CG(ast));
638
47.4k
  zend_arena_destroy(CG(ast_arena));
639
640
47.4k
  CG(in_compilation) = original_in_compilation;
641
642
47.4k
  return op_array;
643
47.4k
}
644
645
ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type)
646
45.1k
{
647
45.1k
  zend_lex_state original_lex_state;
648
45.1k
  zend_op_array *op_array = NULL;
649
45.1k
  zend_save_lexical_state(&original_lex_state);
650
651
45.1k
  if (open_file_for_scanning(file_handle)==FAILURE) {
652
36
    if (!EG(exception)) {
653
21
      if (type==ZEND_REQUIRE) {
654
12
        zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, ZSTR_VAL(file_handle->filename));
655
12
      } else {
656
9
        zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, ZSTR_VAL(file_handle->filename));
657
9
      }
658
21
    }
659
45.1k
  } else {
660
45.1k
    bool orig_record_errors = EG(record_errors);
661
45.1k
    if (!orig_record_errors) {
662
18
      zend_begin_record_errors();
663
18
    }
664
665
45.1k
    op_array = zend_compile(ZEND_USER_FUNCTION);
666
667
45.1k
    if (!orig_record_errors) {
668
18
      zend_emit_recorded_errors();
669
18
      zend_free_recorded_errors();
670
18
    }
671
45.1k
  }
672
673
45.1k
  zend_restore_lexical_state(&original_lex_state);
674
45.1k
  return op_array;
675
45.1k
}
676
677
ZEND_API zend_ast *zend_compile_string_to_ast(
678
3
    zend_string *code, zend_arena **ast_arena, zend_string *filename) {
679
3
  zval code_zv;
680
3
  bool original_in_compilation;
681
3
  zend_lex_state original_lex_state;
682
3
  zend_ast *ast;
683
684
3
  ZVAL_STR_COPY(&code_zv, code);
685
686
3
  original_in_compilation = CG(in_compilation);
687
3
  CG(in_compilation) = 1;
688
689
3
  zend_save_lexical_state(&original_lex_state);
690
3
  zend_prepare_string_for_scanning(&code_zv, filename);
691
3
  CG(ast) = NULL;
692
3
  CG(ast_arena) = zend_arena_create(1024 * 32);
693
3
  LANG_SCNG(yy_state) = yycINITIAL;
694
695
3
  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
3
  ast = CG(ast);
703
3
  *ast_arena = CG(ast_arena);
704
705
3
  zend_restore_lexical_state(&original_lex_state);
706
3
  CG(in_compilation) = original_in_compilation;
707
708
3
  zval_ptr_dtor_str(&code_zv);
709
710
3
  return ast;
711
3
}
712
713
zend_op_array *compile_filename(int type, zend_string *filename)
714
31.0k
{
715
31.0k
  zend_file_handle file_handle;
716
31.0k
  zend_op_array *retval;
717
31.0k
  zend_string *opened_path = NULL;
718
719
31.0k
  zend_stream_init_filename_ex(&file_handle, filename);
720
721
31.0k
  retval = zend_compile_file(&file_handle, type);
722
31.0k
  if (retval && file_handle.handle.stream.handle) {
723
15
    if (!file_handle.opened_path) {
724
0
      file_handle.opened_path = opened_path = zend_string_copy(filename);
725
0
    }
726
727
15
    zend_hash_add_empty_element(&EG(included_files), file_handle.opened_path);
728
729
15
    if (opened_path) {
730
0
      zend_string_release_ex(opened_path, 0);
731
0
    }
732
15
  }
733
31.0k
  zend_destroy_file_handle(&file_handle);
734
735
31.0k
  return retval;
736
31.0k
}
737
738
ZEND_API void zend_prepare_string_for_scanning(zval *str, zend_string *filename)
739
6.49k
{
740
6.49k
  char *buf;
741
6.49k
  size_t size, old_len;
742
743
  /* enforce ZEND_MMAP_AHEAD trailing NULLs for flex... */
744
6.49k
  old_len = Z_STRLEN_P(str);
745
6.49k
  Z_STR_P(str) = zend_string_extend(Z_STR_P(str), old_len + ZEND_MMAP_AHEAD, 0);
746
6.49k
  Z_TYPE_INFO_P(str) = IS_STRING_EX;
747
6.49k
  memset(Z_STRVAL_P(str) + old_len, 0, ZEND_MMAP_AHEAD + 1);
748
749
6.49k
  SCNG(yy_in) = NULL;
750
6.49k
  SCNG(yy_start) = NULL;
751
752
6.49k
  buf = Z_STRVAL_P(str);
753
6.49k
  size = old_len;
754
755
6.49k
  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
6.49k
  yy_scan_buffer(buf, size);
773
6.49k
  zend_set_compiled_filename(filename);
774
6.49k
  CG(zend_lineno) = 1;
775
6.49k
  CG(increment_lineno) = 0;
776
6.49k
  SCNG(on_event) = NULL;
777
6.49k
  SCNG(on_event_context) = NULL;
778
6.49k
  RESET_DOC_COMMENT();
779
6.49k
}
780
781
782
ZEND_API size_t zend_get_scanned_file_offset(void)
783
27
{
784
27
  size_t offset = SCNG(yy_cursor) - SCNG(yy_start);
785
27
  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
27
  return offset;
801
27
}
802
803
zend_op_array *compile_string(zend_string *source_string, const char *filename, zend_compile_position position)
804
2.27k
{
805
2.27k
  zend_lex_state original_lex_state;
806
2.27k
  zend_op_array *op_array = NULL;
807
2.27k
  zval tmp;
808
2.27k
  zend_string *filename_str;
809
810
2.27k
  if (ZSTR_LEN(source_string) == 0) {
811
0
    return NULL;
812
0
  }
813
814
2.27k
  ZVAL_STR_COPY(&tmp, source_string);
815
816
2.27k
  zend_save_lexical_state(&original_lex_state);
817
2.27k
  filename_str = zend_string_init(filename, strlen(filename), 0);
818
2.27k
  zend_prepare_string_for_scanning(&tmp, filename_str);
819
2.27k
  zend_string_release(filename_str);
820
821
2.27k
  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
2.27k
    case ZEND_COMPILE_POSITION_AFTER_OPEN_TAG:
829
2.27k
      BEGIN(ST_IN_SCRIPTING);
830
2.27k
      break;
831
2.27k
  }
832
833
2.27k
  op_array = zend_compile(ZEND_EVAL_CODE);
834
835
2.27k
  zend_restore_lexical_state(&original_lex_state);
836
2.27k
  zval_ptr_dtor(&tmp);
837
838
2.27k
  return op_array;
839
2.27k
}
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
4.22k
{
867
4.22k
  zend_lex_state original_lex_state;
868
4.22k
  zval str_zv;
869
4.22k
  zend_string *filename_str = zend_string_init(filename, strlen(filename), 0);
870
4.22k
  ZVAL_STR_COPY(&str_zv, str);
871
4.22k
  zend_save_lexical_state(&original_lex_state);
872
4.22k
  zend_prepare_string_for_scanning(&str_zv, filename_str);
873
4.22k
  zend_string_release(filename_str);
874
4.22k
  BEGIN(INITIAL);
875
4.22k
  zend_highlight(syntax_highlighter_ini);
876
4.22k
  if (SCNG(script_filtered)) {
877
0
    efree(SCNG(script_filtered));
878
0
    SCNG(script_filtered) = NULL;
879
0
  }
880
4.22k
  zend_restore_lexical_state(&original_lex_state);
881
4.22k
  zval_ptr_dtor(&str_zv);
882
4.22k
}
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
3.14M
  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
3.14M
  } else if (yyleng == 1) { \
928
1.02M
    ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR((zend_uchar)*(yytext))); \
929
2.11M
  } else { \
930
2.11M
    ZVAL_STRINGL(zendlval, yytext, yyleng); \
931
2.11M
  }
932
933
static zend_result zend_scan_escape_string(zval *zendlval, char *str, size_t len, char quote_type)
934
438k
{
935
438k
  char *s, *t;
936
438k
  char *end;
937
938
438k
  if (len <= 1) {
939
126k
    if (len < 1) {
940
12.2k
      ZVAL_EMPTY_STRING(zendlval);
941
114k
    } else {
942
114k
      zend_uchar c = (zend_uchar)*str;
943
114k
      HANDLE_NEWLINE(c);
944
114k
      ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR(c));
945
114k
    }
946
126k
    goto skip_escape_conversion;
947
126k
  }
948
949
312k
  ZVAL_STRINGL(zendlval, str, len);
950
951
  /* convert escape sequences */
952
312k
  s = Z_STRVAL_P(zendlval);
953
312k
  end = s+Z_STRLEN_P(zendlval);
954
8.86M
  while (1) {
955
8.86M
    if (UNEXPECTED(*s=='\\')) {
956
67.8k
      break;
957
67.8k
    }
958
8.79M
    if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
959
296k
      CG(zend_lineno)++;
960
296k
    }
961
8.79M
    s++;
962
8.79M
    if (s == end) {
963
244k
      goto skip_escape_conversion;
964
244k
    }
965
8.79M
  }
966
967
67.8k
  t = s;
968
1.96M
  while (s<end) {
969
1.89M
    if (*s=='\\') {
970
135k
      s++;
971
135k
      if (s >= end) {
972
159
        *t++ = '\\';
973
159
        break;
974
159
      }
975
976
134k
      switch(*s) {
977
32.2k
        case 'n':
978
32.2k
          *t++ = '\n';
979
32.2k
          break;
980
761
        case 'r':
981
761
          *t++ = '\r';
982
761
          break;
983
923
        case 't':
984
923
          *t++ = '\t';
985
923
          break;
986
675
        case 'f':
987
675
          *t++ = '\f';
988
675
          break;
989
940
        case 'v':
990
940
          *t++ = '\v';
991
940
          break;
992
86
        case 'e':
993
#ifdef ZEND_WIN32
994
          *t++ = VK_ESCAPE;
995
#else
996
86
          *t++ = '\e';
997
86
#endif
998
86
          break;
999
378
        case '"':
1000
470
        case '`':
1001
470
          if (*s != quote_type) {
1002
123
            *t++ = '\\';
1003
123
            *t++ = *s;
1004
123
            break;
1005
123
          }
1006
347
          ZEND_FALLTHROUGH;
1007
45.6k
        case '\\':
1008
46.0k
        case '$':
1009
46.0k
          *t++ = *s;
1010
46.0k
          break;
1011
2.19k
        case 'x':
1012
2.59k
        case 'X':
1013
2.59k
          if (ZEND_IS_HEX(*(s+1))) {
1014
1.68k
            char hex_buf[3] = { 0, 0, 0 };
1015
1016
1.68k
            hex_buf[0] = *(++s);
1017
1.68k
            if (ZEND_IS_HEX(*(s+1))) {
1018
1.24k
              hex_buf[1] = *(++s);
1019
1.24k
            }
1020
1.68k
            *t++ = (char) ZEND_STRTOL(hex_buf, NULL, 16);
1021
1.68k
          } else {
1022
914
            *t++ = '\\';
1023
914
            *t++ = *s;
1024
914
          }
1025
2.59k
          break;
1026
        /* UTF-8 codepoint escape, format: /\\u\{\x+\}/ */
1027
115
        case 'u':
1028
115
          {
1029
            /* cache where we started so we can parse after validating */
1030
115
            char *start = s + 1;
1031
115
            size_t len = 0;
1032
115
            bool valid = 1;
1033
115
            unsigned long codepoint;
1034
1035
115
            if (*start != '{') {
1036
              /* we silently let this pass to avoid breaking code
1037
               * with JSON in string literals (e.g. "\"\u202e\""
1038
               */
1039
115
              *t++ = '\\';
1040
115
              *t++ = 'u';
1041
115
              break;
1042
115
            } 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
50.4k
        default:
1106
          /* check for an octal */
1107
50.4k
          if (ZEND_IS_OCT(*s)) {
1108
12.7k
            char octal_buf[4] = { 0, 0, 0, 0 };
1109
1110
12.7k
            octal_buf[0] = *s;
1111
12.7k
            if (ZEND_IS_OCT(*(s+1))) {
1112
2.49k
              octal_buf[1] = *(++s);
1113
2.49k
              if (ZEND_IS_OCT(*(s+1))) {
1114
437
                octal_buf[2] = *(++s);
1115
437
              }
1116
2.49k
            }
1117
12.7k
            if (octal_buf[2] && (octal_buf[0] > '3') && !SCNG(heredoc_scan_ahead)) {
1118
              /* 3 octit values must not overflow 0xFF (\377) */
1119
81
              zend_error(E_COMPILE_WARNING, "Octal escape sequence overflow \\%s is greater than \\377", octal_buf);
1120
81
            }
1121
1122
12.7k
            *t++ = (char) ZEND_STRTOL(octal_buf, NULL, 8);
1123
37.7k
          } else {
1124
37.7k
            *t++ = '\\';
1125
37.7k
            *t++ = *s;
1126
37.7k
          }
1127
50.4k
          break;
1128
134k
      }
1129
1.75M
    } else {
1130
1.75M
      *t++ = *s;
1131
1.75M
    }
1132
1133
1.89M
    if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
1134
66.2k
      CG(zend_lineno)++;
1135
66.2k
    }
1136
1.89M
    s++;
1137
1.89M
  }
1138
67.8k
  *t = 0;
1139
67.8k
  Z_STRLEN_P(zendlval) = t - Z_STRVAL_P(zendlval);
1140
1141
438k
skip_escape_conversion:
1142
438k
  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
438k
  return SUCCESS;
1153
67.8k
}
1154
1155
496k
#define HEREDOC_USING_SPACES 1
1156
19.5k
#define HEREDOC_USING_TABS 2
1157
1158
151k
static const char *next_newline(const char *str, const char *end, size_t *newline_len) {
1159
1.87M
  for (; str < end; str++) {
1160
1.82M
    if (*str == '\r') {
1161
11.6k
      *newline_len = str + 1 < end && *(str + 1) == '\n' ? 2 : 1;
1162
11.6k
      return str;
1163
1.81M
    } else if (*str == '\n') {
1164
83.9k
      *newline_len = 1;
1165
83.9k
      return str;
1166
83.9k
    }
1167
1.82M
  }
1168
55.4k
  *newline_len = 0;
1169
55.4k
  return NULL;
1170
151k
}
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
53.4k
{
1176
53.4k
  const char *str = Z_STRVAL_P(zendlval), *end = str + Z_STRLEN_P(zendlval);
1177
53.4k
  char *copy = Z_STRVAL_P(zendlval);
1178
1179
53.4k
  uint32_t newline_count = 0;
1180
53.4k
  size_t newline_len;
1181
53.4k
  const char *nl;
1182
1183
53.4k
  if (!newline_at_start) {
1184
33.6k
    nl = next_newline(str, end, &newline_len);
1185
33.6k
    if (!nl) {
1186
17.4k
      return 1;
1187
17.4k
    }
1188
1189
16.2k
    str = nl + newline_len;
1190
16.2k
    copy = (char *) nl + newline_len;
1191
16.2k
    newline_count++;
1192
19.7k
  } else {
1193
19.7k
    nl = str;
1194
19.7k
  }
1195
1196
  /* <= intentional */
1197
133k
  while (str <= end && nl) {
1198
117k
    size_t skip;
1199
117k
    nl = next_newline(str, end, &newline_len);
1200
117k
    if (!nl && newline_at_end) {
1201
4.04k
      nl = end;
1202
4.04k
    }
1203
1204
    /* Try to skip indentation */
1205
118k
    for (skip = 0; skip < indentation; skip++, str++) {
1206
1.39k
      if (str == nl) {
1207
        /* Don't require full indentation on whitespace-only lines */
1208
222
        break;
1209
222
      }
1210
1211
1.17k
      if (str == end || (*str != ' ' && *str != '\t')) {
1212
36
        CG(zend_lineno) += newline_count;
1213
36
        zend_throw_exception_ex(zend_ce_parse_error, 0,
1214
36
          "Invalid body indentation level (expecting an indentation level of at least %d)", indentation);
1215
36
        goto error;
1216
36
      }
1217
1218
1.13k
      if ((!using_spaces && *str == ' ') || (using_spaces && *str == '\t')) {
1219
9
        CG(zend_lineno) += newline_count;
1220
9
        zend_throw_exception(zend_ce_parse_error,
1221
9
          "Invalid indentation - tabs and spaces cannot be mixed", 0);
1222
9
        goto error;
1223
9
      }
1224
1.13k
    }
1225
1226
117k
    if (str == end) {
1227
19.9k
      break;
1228
19.9k
    }
1229
1230
97.3k
    size_t len = nl ? (nl - str + newline_len) : (end - str);
1231
97.3k
    memmove(copy, str, len);
1232
97.3k
    str += len;
1233
97.3k
    copy += len;
1234
97.3k
    newline_count++;
1235
97.3k
  }
1236
1237
35.9k
  *copy = '\0';
1238
35.9k
  Z_STRLEN_P(zendlval) = copy - Z_STRVAL_P(zendlval);
1239
35.9k
  return 1;
1240
1241
45
error:
1242
45
  zval_ptr_dtor_str(zendlval);
1243
45
  ZVAL_UNDEF(zendlval);
1244
1245
45
  return 0;
1246
35.9k
}
1247
1248
static void copy_heredoc_label_stack(void *void_heredoc_label)
1249
752k
{
1250
752k
  zend_heredoc_label *heredoc_label = void_heredoc_label;
1251
752k
  zend_heredoc_label *new_heredoc_label = emalloc(sizeof(zend_heredoc_label));
1252
1253
752k
  *new_heredoc_label = *heredoc_label;
1254
752k
  new_heredoc_label->label = estrndup(heredoc_label->label, heredoc_label->length);
1255
1256
752k
  zend_ptr_stack_push(&SCNG(heredoc_label_stack), (void *) new_heredoc_label);
1257
752k
}
1258
1259
/* Check that { }, [ ], ( ) are nested correctly */
1260
static void report_bad_nesting(char opening, uint32_t opening_lineno, char closing)
1261
96.8k
{
1262
96.8k
  char   buf[256];
1263
96.8k
  size_t used = 0;
1264
1265
96.8k
  used = snprintf(buf, sizeof(buf), "Unclosed '%c'", opening);
1266
1267
96.8k
  if (opening_lineno != CG(zend_lineno)) {
1268
53.7k
    used += snprintf(buf + used, sizeof(buf) - used, " on line %d", opening_lineno);
1269
53.7k
  }
1270
1271
96.8k
  if (closing) {   /* 'closing' will be 0 if at end of file */
1272
54.3k
    used += snprintf(buf + used, sizeof(buf) - used, " does not match '%c'", closing);
1273
54.3k
  }
1274
1275
96.8k
  zend_throw_exception(zend_ce_parse_error, buf, 0);
1276
96.8k
}
1277
1278
static void enter_nesting(char opening)
1279
2.33M
{
1280
2.33M
  zend_nest_location nest_loc = {opening, CG(zend_lineno)};
1281
2.33M
  zend_stack_push(&SCNG(nest_location_stack), &nest_loc);
1282
2.33M
}
1283
1284
static zend_result exit_nesting(char closing)
1285
602k
{
1286
602k
  if (zend_stack_is_empty(&SCNG(nest_location_stack))) {
1287
4.11k
    zend_throw_exception_ex(zend_ce_parse_error, 0, "Unmatched '%c'", closing);
1288
4.11k
    return FAILURE;
1289
4.11k
  }
1290
1291
598k
  zend_nest_location *nest_loc = zend_stack_top(&SCNG(nest_location_stack));
1292
598k
  char opening = nest_loc->text;
1293
1294
598k
  if ((opening == '{' && closing != '}') ||
1295
560k
      (opening == '[' && closing != ']') ||
1296
555k
      (opening == '(' && closing != ')')) {
1297
54.3k
    report_bad_nesting(opening, nest_loc->lineno, closing);
1298
54.3k
    return FAILURE;
1299
54.3k
  }
1300
1301
543k
  zend_stack_del_top(&SCNG(nest_location_stack));
1302
543k
  return SUCCESS;
1303
598k
}
1304
1305
static zend_result check_nesting_at_end(void)
1306
80.8k
{
1307
80.8k
  if (!zend_stack_is_empty(&SCNG(nest_location_stack))) {
1308
42.5k
    zend_nest_location *nest_loc = zend_stack_top(&SCNG(nest_location_stack));
1309
42.5k
    report_bad_nesting(nest_loc->text, nest_loc->lineno, 0);
1310
42.5k
    return FAILURE;
1311
42.5k
  }
1312
1313
38.2k
  return SUCCESS;
1314
80.8k
}
1315
1316
#define PARSER_MODE() \
1317
9.21M
  EXPECTED(elem != NULL)
1318
1319
10.2M
#define RETURN_TOKEN(_token) do { \
1320
10.2M
    token = _token; \
1321
10.2M
    goto emit_token; \
1322
10.2M
  } while (0)
1323
1324
1.80M
#define RETURN_TOKEN_WITH_VAL(_token) do { \
1325
1.80M
    token = _token; \
1326
1.80M
    goto emit_token_with_val; \
1327
1.80M
  } while (0)
1328
1329
3.14M
#define RETURN_TOKEN_WITH_STR(_token, _offset) do { \
1330
3.14M
    token = _token; \
1331
3.14M
    offset = _offset; \
1332
3.14M
    goto emit_token_with_str; \
1333
3.14M
  } while (0)
1334
1335
504k
#define RETURN_TOKEN_WITH_IDENT(_token) do { \
1336
504k
    token = _token; \
1337
504k
    goto emit_token_with_ident; \
1338
504k
  } while (0)
1339
1340
519k
#define RETURN_OR_SKIP_TOKEN(_token) do { \
1341
519k
    token = _token; \
1342
519k
    if (PARSER_MODE()) { \
1343
98.8k
      goto skip_token; \
1344
98.8k
    } \
1345
519k
    goto emit_token; \
1346
519k
  } while (0)
1347
1348
602k
#define RETURN_EXIT_NESTING_TOKEN(_token) do { \
1349
602k
    if (exit_nesting(_token) != SUCCESS && PARSER_MODE()) { \
1350
129
      RETURN_TOKEN(T_ERROR); \
1351
602k
    } else { \
1352
602k
      RETURN_TOKEN(_token); \
1353
602k
    } \
1354
602k
  } while(0)
1355
1356
80.8k
#define RETURN_END_TOKEN do { \
1357
80.8k
    if (check_nesting_at_end() != SUCCESS && PARSER_MODE()) { \
1358
1.19k
      RETURN_TOKEN(T_ERROR); \
1359
79.6k
    } else { \
1360
79.6k
      RETURN_TOKEN(END); \
1361
79.6k
    } \
1362
80.8k
  } while (0)
1363
1364
int ZEND_FASTCALL lex_scan(zval *zendlval, zend_parser_stack_elem *elem)
1365
17.9M
{
1366
17.9M
int token;
1367
17.9M
int offset;
1368
17.9M
uint32_t start_line = CG(zend_lineno);
1369
1370
17.9M
  ZVAL_UNDEF(zendlval);
1371
20.5M
restart:
1372
20.5M
  SCNG(yy_text) = YYCURSOR;
1373
1374
1375
20.5M
#line 1376 "Zend/zend_language_scanner.c"
1376
20.5M
{
1377
20.5M
  YYCTYPE yych;
1378
20.5M
  unsigned int yyaccept = 0;
1379
20.5M
  if (YYGETCONDITION() < 5) {
1380
18.8M
    if (YYGETCONDITION() < 2) {
1381
15.6M
      if (YYGETCONDITION() < 1) {
1382
15.4M
        goto yyc_ST_IN_SCRIPTING;
1383
15.4M
      } else {
1384
251k
        goto yyc_ST_LOOKING_FOR_PROPERTY;
1385
251k
      }
1386
15.6M
    } else {
1387
3.15M
      if (YYGETCONDITION() < 3) {
1388
115k
        goto yyc_ST_BACKQUOTE;
1389
3.03M
      } else {
1390
3.03M
        if (YYGETCONDITION() < 4) {
1391
453k
          goto yyc_ST_DOUBLE_QUOTES;
1392
2.58M
        } else {
1393
2.58M
          goto yyc_ST_HEREDOC;
1394
2.58M
        }
1395
3.03M
      }
1396
3.15M
    }
1397
18.8M
  } else {
1398
1.66M
    if (YYGETCONDITION() < 8) {
1399
1.52M
      if (YYGETCONDITION() < 6) {
1400
1.29M
        goto yyc_ST_LOOKING_FOR_VARNAME;
1401
1.29M
      } else {
1402
227k
        if (YYGETCONDITION() < 7) {
1403
227k
          goto yyc_ST_VAR_OFFSET;
1404
227k
        } else {
1405
0
          goto yyc_SHEBANG;
1406
0
        }
1407
227k
      }
1408
1.52M
    } else {
1409
145k
      if (YYGETCONDITION() < 9) {
1410
122k
        goto yyc_INITIAL;
1411
122k
      } else {
1412
22.3k
        if (YYGETCONDITION() < 10) {
1413
15.0k
          goto yyc_ST_END_HEREDOC;
1414
15.0k
        } else {
1415
7.29k
          goto yyc_ST_NOWDOC;
1416
7.29k
        }
1417
22.3k
      }
1418
145k
    }
1419
1.66M
  }
1420
/* *********************************** */
1421
15.4M
yyc_ST_IN_SCRIPTING:
1422
15.4M
  {
1423
15.4M
    static const unsigned char yybm[] = {
1424
      /* table 1 .. 8: 0 */
1425
15.4M
        0, 134, 134, 134, 134, 134, 134, 134, 
1426
15.4M
      134, 135,   4, 134, 134,   4, 134, 134, 
1427
15.4M
      134, 134, 134, 134, 134, 134, 134, 134, 
1428
15.4M
      134, 134, 134, 134, 134, 134, 134, 134, 
1429
15.4M
      135, 134, 134, 134, 134, 134, 134, 134, 
1430
15.4M
      134, 134,  66, 134, 134, 134, 134, 134, 
1431
15.4M
      190, 190, 182, 182, 182, 182, 182, 182, 
1432
15.4M
      166, 166, 134, 134, 134, 134, 134, 134, 
1433
15.4M
      134, 166, 166, 166, 166, 166, 166, 134, 
1434
15.4M
      134, 134, 134, 134, 134, 134, 134, 134, 
1435
15.4M
      134, 134, 134, 134, 134, 134, 134, 134, 
1436
15.4M
      134, 134, 134, 134, 134, 134, 134, 134, 
1437
15.4M
      134, 166, 166, 166, 166, 166, 166, 134, 
1438
15.4M
      134, 134, 134, 134, 134, 134, 134, 134, 
1439
15.4M
      134, 134, 134, 134, 134, 134, 134, 134, 
1440
15.4M
      134, 134, 134, 134, 134, 134, 134, 134, 
1441
15.4M
      134, 134, 134, 134, 134, 134, 134, 134, 
1442
15.4M
      134, 134, 134, 134, 134, 134, 134, 134, 
1443
15.4M
      134, 134, 134, 134, 134, 134, 134, 134, 
1444
15.4M
      134, 134, 134, 134, 134, 134, 134, 134, 
1445
15.4M
      134, 134, 134, 134, 134, 134, 134, 134, 
1446
15.4M
      134, 134, 134, 134, 134, 134, 134, 134, 
1447
15.4M
      134, 134, 134, 134, 134, 134, 134, 134, 
1448
15.4M
      134, 134, 134, 134, 134, 134, 134, 134, 
1449
15.4M
      134, 134, 134, 134, 134, 134, 134, 134, 
1450
15.4M
      134, 134, 134, 134, 134, 134, 134, 134, 
1451
15.4M
      134, 134, 134, 134, 134, 134, 134, 134, 
1452
15.4M
      134, 134, 134, 134, 134, 134, 134, 134, 
1453
15.4M
      134, 134, 134, 134, 134, 134, 134, 134, 
1454
15.4M
      134, 134, 134, 134, 134, 134, 134, 134, 
1455
15.4M
      134, 134, 134, 134, 134, 134, 134, 134, 
1456
15.4M
      134, 134, 134, 134, 134, 134, 134, 134, 
1457
      /* table 9 .. 11: 256 */
1458
15.4M
        0,   0,   0,   0,   0,   0,   0,   0, 
1459
15.4M
        0,  32,  32,   0,   0,  32,   0,   0, 
1460
15.4M
        0,   0,   0,   0,   0,   0,   0,   0, 
1461
15.4M
        0,   0,   0,   0,   0,   0,   0,   0, 
1462
15.4M
       32,   0,   0,   0,   0,   0,   0,   0, 
1463
15.4M
        0,   0,   0,   0,   0,   0,   0,   0, 
1464
15.4M
      192, 192, 192, 192, 192, 192, 192, 192, 
1465
15.4M
      192, 192,   0,   0,   0,   0,   0,   0, 
1466
15.4M
        0, 128, 128, 128, 128, 128, 128, 128, 
1467
15.4M
      128, 128, 128, 128, 128, 128, 128, 128, 
1468
15.4M
      128, 128, 128, 128, 128, 128, 128, 128, 
1469
15.4M
      128, 128, 128,   0,   0,   0,   0, 128, 
1470
15.4M
        0, 128, 128, 128, 128, 128, 128, 128, 
1471
15.4M
      128, 128, 128, 128, 128, 128, 128, 128, 
1472
15.4M
      128, 128, 128, 128, 128, 128, 128, 128, 
1473
15.4M
      128, 128, 128,   0,   0,   0,   0,   0, 
1474
15.4M
      128, 128, 128, 128, 128, 128, 128, 128, 
1475
15.4M
      128, 128, 128, 128, 128, 128, 128, 128, 
1476
15.4M
      128, 128, 128, 128, 128, 128, 128, 128, 
1477
15.4M
      128, 128, 128, 128, 128, 128, 128, 128, 
1478
15.4M
      128, 128, 128, 128, 128, 128, 128, 128, 
1479
15.4M
      128, 128, 128, 128, 128, 128, 128, 128, 
1480
15.4M
      128, 128, 128, 128, 128, 128, 128, 128, 
1481
15.4M
      128, 128, 128, 128, 128, 128, 128, 128, 
1482
15.4M
      128, 128, 128, 128, 128, 128, 128, 128, 
1483
15.4M
      128, 128, 128, 128, 128, 128, 128, 128, 
1484
15.4M
      128, 128, 128, 128, 128, 128, 128, 128, 
1485
15.4M
      128, 128, 128, 128, 128, 128, 128, 128, 
1486
15.4M
      128, 128, 128, 128, 128, 128, 128, 128, 
1487
15.4M
      128, 128, 128, 128, 128, 128, 128, 128, 
1488
15.4M
      128, 128, 128, 128, 128, 128, 128, 128, 
1489
15.4M
      128, 128, 128, 128, 128, 128, 128, 128, 
1490
15.4M
    };
1491
15.4M
    YYDEBUG(1, *YYCURSOR);
1492
15.4M
    YYFILL(16);
1493
15.4M
    yych = *YYCURSOR;
1494
15.4M
    if (yybm[256+yych] & 32) {
1495
2.97M
      goto yy5;
1496
2.97M
    }
1497
12.4M
    switch (yych) {
1498
1.66M
    case 0x00:
1499
1.73M
    case 0x01:
1500
1.75M
    case 0x02:
1501
1.77M
    case 0x03:
1502
1.88M
    case 0x04:
1503
1.91M
    case 0x05:
1504
1.92M
    case 0x06:
1505
1.94M
    case 0x07:
1506
1.95M
    case 0x08:
1507
1.95M
    case '\t':
1508
1.95M
    case '\n':
1509
1.97M
    case '\v':
1510
1.99M
    case '\f':
1511
1.99M
    case '\r':
1512
2.00M
    case 0x0E:
1513
2.02M
    case 0x0F:
1514
2.03M
    case 0x10:
1515
2.07M
    case 0x11:
1516
2.08M
    case 0x12:
1517
2.09M
    case 0x13:
1518
2.10M
    case 0x14:
1519
2.10M
    case 0x15:
1520
2.11M
    case 0x16:
1521
2.12M
    case 0x17:
1522
2.12M
    case 0x18:
1523
2.12M
    case 0x19:
1524
2.13M
    case 0x1A:
1525
2.13M
    case 0x1B:
1526
2.54M
    case 0x1C:
1527
2.57M
    case 0x1D:
1528
2.58M
    case 0x1E:
1529
2.58M
    case 0x1F:
1530
2.59M
    case 0x7F:  goto yy3;
1531
0
    case ' ':
1532
72.9k
    case '!': goto yy8;
1533
169k
    case '"': goto yy10;
1534
354k
    case '#': goto yy12;
1535
971k
    case '$': goto yy14;
1536
30.9k
    case '%': goto yy15;
1537
59.0k
    case '&': goto yy16;
1538
159k
    case '\'':  goto yy18;
1539
453k
    case '(': goto yy20;
1540
352k
    case ')':
1541
409k
    case ']': goto yy22;
1542
36.4k
    case '*': goto yy24;
1543
54.2k
    case '+': goto yy25;
1544
265k
    case ',':
1545
689k
    case ';':
1546
764k
    case '@':
1547
801k
    case '~': goto yy26;
1548
133k
    case '-': goto yy27;
1549
146k
    case '.': goto yy28;
1550
160k
    case '/': goto yy29;
1551
86.0k
    case '0': goto yy30;
1552
71.9k
    case '1':
1553
121k
    case '2':
1554
157k
    case '3':
1555
205k
    case '4':
1556
227k
    case '5':
1557
245k
    case '6':
1558
263k
    case '7':
1559
282k
    case '8':
1560
289k
    case '9': goto yy32;
1561
69.2k
    case ':': goto yy34;
1562
1.86M
    case '<': goto yy35;
1563
267k
    case '=': goto yy36;
1564
19.2k
    case '>': goto yy37;
1565
155k
    case '?': goto yy38;
1566
26.5k
    case 'A':
1567
79.0k
    case 'a': goto yy39;
1568
26.3k
    case 'B':
1569
41.8k
    case 'b': goto yy41;
1570
25.1k
    case 'C':
1571
156k
    case 'c': goto yy42;
1572
30.5k
    case 'D':
1573
49.6k
    case 'd': goto yy43;
1574
40.4k
    case 'E':
1575
222k
    case 'e': goto yy44;
1576
23.6k
    case 'F':
1577
150k
    case 'f': goto yy45;
1578
3.21k
    case 'G':
1579
19.0k
    case 'g': goto yy46;
1580
25.6k
    case 'I':
1581
128k
    case 'i': goto yy49;
1582
4.90k
    case 'L':
1583
33.6k
    case 'l': goto yy50;
1584
7.01k
    case 'M':
1585
39.1k
    case 'm': goto yy51;
1586
12.4k
    case 'N':
1587
82.9k
    case 'n': goto yy52;
1588
10.2k
    case 'O':
1589
38.1k
    case 'o': goto yy53;
1590
21.3k
    case 'P':
1591
270k
    case 'p': goto yy54;
1592
5.80k
    case 'R':
1593
52.8k
    case 'r': goto yy55;
1594
5.78k
    case 'S':
1595
88.7k
    case 's': goto yy56;
1596
25.9k
    case 'T':
1597
121k
    case 't': goto yy57;
1598
1.84k
    case 'U':
1599
31.1k
    case 'u': goto yy58;
1600
11.0k
    case 'V':
1601
68.5k
    case 'v': goto yy59;
1602
10.1k
    case 'W':
1603
15.7k
    case 'w': goto yy60;
1604
10.4k
    case 'X':
1605
18.1k
    case 'x': goto yy61;
1606
6.97k
    case 'Y':
1607
54.1k
    case 'y': goto yy62;
1608
74.3k
    case '[': goto yy63;
1609
45.2k
    case '\\':  goto yy64;
1610
42.9k
    case '^': goto yy66;
1611
62.3k
    case '_': goto yy67;
1612
23.2k
    case '`': goto yy68;
1613
484k
    case '{': goto yy70;
1614
40.4k
    case '|': goto yy72;
1615
193k
    case '}': goto yy73;
1616
352k
    default:  goto yy47;
1617
12.4M
    }
1618
2.59M
yy3:
1619
2.59M
    YYDEBUG(3, *YYCURSOR);
1620
2.59M
    ++YYCURSOR;
1621
2.59M
    YYDEBUG(4, *YYCURSOR);
1622
2.59M
    yyleng = YYCURSOR - SCNG(yy_text);
1623
2.59M
#line 3179 "Zend/zend_language_scanner.l"
1624
2.59M
    {
1625
2.59M
  if (YYCURSOR > YYLIMIT) {
1626
39.1k
    RETURN_END_TOKEN;
1627
39.1k
  }
1628
1629
2.55M
  RETURN_TOKEN(T_BAD_CHARACTER);
1630
2.55M
}
1631
0
#line 1632 "Zend/zend_language_scanner.c"
1632
4.56M
yy5:
1633
4.56M
    YYDEBUG(5, *YYCURSOR);
1634
4.56M
    ++YYCURSOR;
1635
4.56M
    YYFILL(1);
1636
4.56M
    yych = *YYCURSOR;
1637
4.56M
    YYDEBUG(6, *YYCURSOR);
1638
4.56M
    if (yybm[256+yych] & 32) {
1639
1.58M
      goto yy5;
1640
1.58M
    }
1641
2.97M
    YYDEBUG(7, *YYCURSOR);
1642
2.97M
    yyleng = YYCURSOR - SCNG(yy_text);
1643
2.97M
#line 1597 "Zend/zend_language_scanner.l"
1644
2.97M
    {
1645
2.97M
  goto return_whitespace;
1646
4.56M
}
1647
0
#line 1648 "Zend/zend_language_scanner.c"
1648
72.9k
yy8:
1649
72.9k
    YYDEBUG(8, *YYCURSOR);
1650
72.9k
    yych = *++YYCURSOR;
1651
72.9k
    if (yych == '=') goto yy75;
1652
2.36M
yy9:
1653
2.36M
    YYDEBUG(9, *YYCURSOR);
1654
2.36M
    yyleng = YYCURSOR - SCNG(yy_text);
1655
2.36M
#line 1969 "Zend/zend_language_scanner.l"
1656
2.36M
    {
1657
2.36M
  RETURN_TOKEN(yytext[0]);
1658
2.36M
}
1659
0
#line 1660 "Zend/zend_language_scanner.c"
1660
170k
yy10:
1661
170k
    YYDEBUG(10, *YYCURSOR);
1662
170k
    ++YYCURSOR;
1663
170k
    YYDEBUG(11, *YYCURSOR);
1664
170k
    yyleng = YYCURSOR - SCNG(yy_text);
1665
170k
#line 2632 "Zend/zend_language_scanner.l"
1666
170k
    {
1667
170k
  int bprefix = (yytext[0] != '"') ? 1 : 0;
1668
1669
3.98M
  while (YYCURSOR < YYLIMIT) {
1670
3.98M
    switch (*YYCURSOR++) {
1671
112k
      case '"':
1672
112k
        yyleng = YYCURSOR - SCNG(yy_text);
1673
112k
        if (EXPECTED(zend_scan_escape_string(zendlval, yytext+bprefix+1, yyleng-bprefix-2, '"') == SUCCESS)
1674
112k
         || !PARSER_MODE()) {
1675
112k
          RETURN_TOKEN_WITH_VAL(T_CONSTANT_ENCAPSED_STRING);
1676
112k
        } else {
1677
0
          RETURN_TOKEN(T_ERROR);
1678
0
        }
1679
88.9k
      case '$':
1680
88.9k
        if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
1681
53.8k
          break;
1682
53.8k
        }
1683
35.1k
        continue;
1684
35.1k
      case '{':
1685
15.7k
        if (*YYCURSOR == '$') {
1686
1.59k
          break;
1687
1.59k
        }
1688
14.1k
        continue;
1689
99.7k
      case '\\':
1690
99.7k
        if (YYCURSOR < YYLIMIT) {
1691
99.6k
          YYCURSOR++;
1692
99.6k
        }
1693
99.7k
        ZEND_FALLTHROUGH;
1694
3.76M
      default:
1695
3.76M
        continue;
1696
3.98M
    }
1697
1698
55.3k
    YYCURSOR--;
1699
55.3k
    break;
1700
3.98M
  }
1701
1702
  /* Remember how much was scanned to save rescanning */
1703
170k
  SET_DOUBLE_QUOTES_SCANNED_LENGTH(YYCURSOR - SCNG(yy_text) - yyleng);
1704
1705
57.9k
  YYCURSOR = SCNG(yy_text) + yyleng;
1706
1707
57.9k
  BEGIN(ST_DOUBLE_QUOTES);
1708
57.9k
  RETURN_TOKEN('"');
1709
57.9k
}
1710
0
#line 1711 "Zend/zend_language_scanner.c"
1711
354k
yy12:
1712
354k
    YYDEBUG(12, *YYCURSOR);
1713
354k
    yych = *++YYCURSOR;
1714
354k
    if (yych == '[') goto yy77;
1715
392k
yy13:
1716
392k
    YYDEBUG(13, *YYCURSOR);
1717
392k
    yyleng = YYCURSOR - SCNG(yy_text);
1718
392k
#line 2460 "Zend/zend_language_scanner.l"
1719
392k
    {
1720
4.53M
  while (YYCURSOR < YYLIMIT) {
1721
4.53M
    switch (*YYCURSOR++) {
1722
79.6k
      case '\r':
1723
390k
      case '\n':
1724
390k
        YYCURSOR--;
1725
390k
        break;
1726
11.2k
      case '?':
1727
11.2k
        if (*YYCURSOR == '>') {
1728
503
          YYCURSOR--;
1729
503
          break;
1730
503
        }
1731
10.7k
        ZEND_FALLTHROUGH;
1732
4.14M
      default:
1733
4.14M
        continue;
1734
4.53M
    }
1735
1736
390k
    break;
1737
4.53M
  }
1738
1739
392k
  yyleng = YYCURSOR - SCNG(yy_text);
1740
392k
  RETURN_OR_SKIP_TOKEN(T_COMMENT);
1741
392k
}
1742
0
#line 1743 "Zend/zend_language_scanner.c"
1743
971k
yy14:
1744
971k
    YYDEBUG(14, *YYCURSOR);
1745
971k
    yych = *++YYCURSOR;
1746
971k
    if (yych <= '_') {
1747
227k
      if (yych <= '@') goto yy9;
1748
14.4k
      if (yych <= 'Z') goto yy79;
1749
1.89k
      if (yych <= '^') goto yy9;
1750
1.13k
      goto yy79;
1751
743k
    } else {
1752
743k
      if (yych <= '`') goto yy9;
1753
742k
      if (yych <= 'z') goto yy79;
1754
205k
      if (yych <= 0x7F) goto yy9;
1755
35.3k
      goto yy79;
1756
205k
    }
1757
30.9k
yy15:
1758
30.9k
    YYDEBUG(15, *YYCURSOR);
1759
30.9k
    yych = *++YYCURSOR;
1760
30.9k
    if (yych == '=') goto yy82;
1761
27.8k
    goto yy9;
1762
59.0k
yy16:
1763
59.0k
    YYDEBUG(16, *YYCURSOR);
1764
59.0k
    yyaccept = 0;
1765
59.0k
    yych = *(YYMARKER = ++YYCURSOR);
1766
59.0k
    if (yych <= '"') {
1767
17.2k
      if (yych <= '\f') {
1768
11.8k
        if (yych <= 0x08) goto yy17;
1769
10.7k
        if (yych <= '\n') goto yy85;
1770
10.7k
      } else {
1771
5.43k
        if (yych <= '\r') goto yy85;
1772
5.30k
        if (yych == ' ') goto yy85;
1773
5.30k
      }
1774
41.7k
    } else {
1775
41.7k
      if (yych <= '-') {
1776
15.6k
        if (yych <= '$') goto yy85;
1777
9.54k
        if (yych == '&') goto yy90;
1778
26.0k
      } else {
1779
26.0k
        if (yych <= '/') goto yy85;
1780
25.3k
        if (yych == '=') goto yy94;
1781
25.3k
      }
1782
41.7k
    }
1783
28.6k
yy17:
1784
28.6k
    YYDEBUG(17, *YYCURSOR);
1785
28.6k
    yyleng = YYCURSOR - SCNG(yy_text);
1786
28.6k
#line 1955 "Zend/zend_language_scanner.l"
1787
28.6k
    {
1788
28.6k
  RETURN_TOKEN(T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG);
1789
28.6k
}
1790
0
#line 1791 "Zend/zend_language_scanner.c"
1791
159k
yy18:
1792
159k
    YYDEBUG(18, *YYCURSOR);
1793
159k
    ++YYCURSOR;
1794
159k
    YYDEBUG(19, *YYCURSOR);
1795
159k
    yyleng = YYCURSOR - SCNG(yy_text);
1796
159k
#line 2538 "Zend/zend_language_scanner.l"
1797
159k
    {
1798
159k
  char *s, *t;
1799
159k
  char *end;
1800
159k
  int bprefix = (yytext[0] != '\'') ? 1 : 0;
1801
1802
21.4M
  while (1) {
1803
21.4M
    if (YYCURSOR < YYLIMIT) {
1804
21.4M
      if (*YYCURSOR == '\'') {
1805
153k
        YYCURSOR++;
1806
153k
        yyleng = YYCURSOR - SCNG(yy_text);
1807
1808
153k
        break;
1809
21.2M
      } else if (*YYCURSOR++ == '\\' && YYCURSOR < YYLIMIT) {
1810
52.9k
        YYCURSOR++;
1811
52.9k
      }
1812
21.4M
    } else {
1813
6.27k
      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
6.27k
      ZVAL_NULL(zendlval);
1819
6.27k
      RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
1820
6.27k
    }
1821
21.4M
  }
1822
1823
153k
  if (yyleng-bprefix-2 <= 1) {
1824
16.3k
    if (yyleng-bprefix-2 < 1) {
1825
2.51k
      ZVAL_EMPTY_STRING(zendlval);
1826
13.8k
    } else {
1827
13.8k
      zend_uchar c = (zend_uchar)*(yytext+bprefix+1);
1828
13.8k
      HANDLE_NEWLINE(c);
1829
13.8k
      ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR(c));
1830
13.8k
    }
1831
16.3k
    goto skip_escape_conversion;
1832
16.3k
  }
1833
136k
  ZVAL_STRINGL(zendlval, yytext+bprefix+1, yyleng-bprefix-2);
1834
1835
  /* convert escape sequences */
1836
136k
  s = Z_STRVAL_P(zendlval);
1837
136k
  end = s+Z_STRLEN_P(zendlval);
1838
15.7M
  while (1) {
1839
15.7M
    if (UNEXPECTED(*s=='\\')) {
1840
21.6k
      break;
1841
21.6k
    }
1842
15.7M
    if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
1843
291k
      CG(zend_lineno)++;
1844
291k
    }
1845
15.7M
    s++;
1846
15.7M
    if (s == end) {
1847
115k
      goto skip_escape_conversion;
1848
115k
    }
1849
15.7M
  }
1850
1851
21.6k
  t = s;
1852
5.22M
  while (s<end) {
1853
5.20M
    if (*s=='\\') {
1854
52.4k
      s++;
1855
52.4k
      if (*s == '\\' || *s == '\'') {
1856
16.1k
        *t++ = *s;
1857
36.2k
      } else {
1858
36.2k
        *t++ = '\\';
1859
36.2k
        *t++ = *s;
1860
36.2k
      }
1861
5.15M
    } else {
1862
5.15M
      *t++ = *s;
1863
5.15M
    }
1864
5.20M
    if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
1865
108k
      CG(zend_lineno)++;
1866
108k
    }
1867
5.20M
    s++;
1868
5.20M
  }
1869
21.6k
  *t = 0;
1870
21.6k
  Z_STRLEN_P(zendlval) = t - Z_STRVAL_P(zendlval);
1871
1872
153k
skip_escape_conversion:
1873
153k
  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
153k
  RETURN_TOKEN_WITH_VAL(T_CONSTANT_ENCAPSED_STRING);
1888
153k
}
1889
0
#line 1890 "Zend/zend_language_scanner.c"
1890
453k
yy20:
1891
453k
    YYDEBUG(20, *YYCURSOR);
1892
453k
    yyaccept = 1;
1893
453k
    yych = *(YYMARKER = ++YYCURSOR);
1894
453k
    if (yych <= 'S') {
1895
351k
      if (yych <= 'D') {
1896
326k
        if (yych <= ' ') {
1897
30.5k
          if (yych == '\t') goto yy97;
1898
29.3k
          if (yych >= ' ') goto yy97;
1899
295k
        } else {
1900
295k
          if (yych <= '@') goto yy21;
1901
6.34k
          if (yych != 'C') goto yy97;
1902
6.34k
        }
1903
326k
      } else {
1904
25.5k
        if (yych <= 'I') {
1905
24.1k
          if (yych == 'F') goto yy97;
1906
23.2k
          if (yych >= 'I') goto yy97;
1907
23.2k
        } else {
1908
1.36k
          if (yych == 'O') goto yy97;
1909
1.25k
          if (yych >= 'R') goto yy97;
1910
1.25k
        }
1911
25.5k
      }
1912
351k
    } else {
1913
101k
      if (yych <= 'f') {
1914
45.6k
        if (yych <= 'b') {
1915
28.7k
          if (yych <= 'T') goto yy21;
1916
22.3k
          if (yych <= 'V') goto yy97;
1917
21.9k
          if (yych >= 'a') goto yy97;
1918
21.9k
        } else {
1919
16.9k
          if (yych == 'd') goto yy97;
1920
15.6k
          if (yych >= 'f') goto yy97;
1921
15.6k
        }
1922
56.1k
      } else {
1923
56.1k
        if (yych <= 'o') {
1924
23.8k
          if (yych == 'i') goto yy97;
1925
15.7k
          if (yych >= 'o') goto yy97;
1926
32.2k
        } else {
1927
32.2k
          if (yych <= 's') {
1928
22.2k
            if (yych >= 'r') goto yy97;
1929
22.2k
          } else {
1930
9.98k
            if (yych <= 't') goto yy21;
1931
8.92k
            if (yych <= 'v') goto yy97;
1932
8.92k
          }
1933
32.2k
        }
1934
56.1k
      }
1935
101k
    }
1936
525k
yy21:
1937
525k
    YYDEBUG(21, *YYCURSOR);
1938
525k
    yyleng = YYCURSOR - SCNG(yy_text);
1939
525k
#line 1964 "Zend/zend_language_scanner.l"
1940
525k
    {
1941
525k
  enter_nesting(yytext[0]);
1942
525k
  RETURN_TOKEN(yytext[0]);
1943
525k
}
1944
0
#line 1945 "Zend/zend_language_scanner.c"
1945
409k
yy22:
1946
409k
    YYDEBUG(22, *YYCURSOR);
1947
409k
    ++YYCURSOR;
1948
409k
    YYDEBUG(23, *YYCURSOR);
1949
409k
    yyleng = YYCURSOR - SCNG(yy_text);
1950
409k
#line 1959 "Zend/zend_language_scanner.l"
1951
409k
    {
1952
  /* Check that ] and ) match up properly with a preceding [ or ( */
1953
409k
  RETURN_EXIT_NESTING_TOKEN(yytext[0]);
1954
409k
}
1955
0
#line 1956 "Zend/zend_language_scanner.c"
1956
36.4k
yy24:
1957
36.4k
    YYDEBUG(24, *YYCURSOR);
1958
36.4k
    yych = *++YYCURSOR;
1959
36.4k
    if (yych == '*') goto yy108;
1960
31.0k
    if (yych == '=') goto yy110;
1961
27.1k
    goto yy9;
1962
54.2k
yy25:
1963
54.2k
    YYDEBUG(25, *YYCURSOR);
1964
54.2k
    yych = *++YYCURSOR;
1965
54.2k
    if (yych == '+') goto yy112;
1966
44.9k
    if (yych == '=') goto yy114;
1967
41.5k
    goto yy9;
1968
801k
yy26:
1969
801k
    YYDEBUG(26, *YYCURSOR);
1970
801k
    ++YYCURSOR;
1971
801k
    goto yy9;
1972
133k
yy27:
1973
133k
    YYDEBUG(27, *YYCURSOR);
1974
133k
    yych = *++YYCURSOR;
1975
133k
    if (yych <= '<') {
1976
50.8k
      if (yych == '-') goto yy116;
1977
47.0k
      goto yy9;
1978
82.9k
    } else {
1979
82.9k
      if (yych <= '=') goto yy118;
1980
81.0k
      if (yych <= '>') goto yy120;
1981
25.3k
      goto yy9;
1982
81.0k
    }
1983
146k
yy28:
1984
146k
    YYDEBUG(28, *YYCURSOR);
1985
146k
    yyaccept = 2;
1986
146k
    yych = *(YYMARKER = ++YYCURSOR);
1987
146k
    if (yych <= '/') {
1988
55.6k
      if (yych == '.') goto yy122;
1989
52.3k
      goto yy9;
1990
91.1k
    } else {
1991
91.1k
      if (yych <= '9') goto yy123;
1992
85.8k
      if (yych == '=') goto yy126;
1993
18.5k
      goto yy9;
1994
85.8k
    }
1995
160k
yy29:
1996
160k
    YYDEBUG(29, *YYCURSOR);
1997
160k
    yych = *++YYCURSOR;
1998
160k
    if (yych <= '.') {
1999
88.8k
      if (yych == '*') goto yy128;
2000
22.3k
      goto yy9;
2001
88.8k
    } else {
2002
71.8k
      if (yych <= '/') goto yy130;
2003
30.3k
      if (yych == '=') goto yy131;
2004
30.0k
      goto yy9;
2005
30.3k
    }
2006
86.0k
yy30:
2007
86.0k
    YYDEBUG(30, *YYCURSOR);
2008
86.0k
    yyaccept = 3;
2009
86.0k
    yych = *(YYMARKER = ++YYCURSOR);
2010
86.0k
    if (yych <= 'X') {
2011
66.1k
      if (yych <= 'N') {
2012
64.8k
        if (yych == 'B') goto yy134;
2013
64.6k
        goto yy33;
2014
64.8k
      } else {
2015
1.28k
        if (yych <= 'O') goto yy136;
2016
1.10k
        if (yych <= 'W') goto yy33;
2017
648
        goto yy137;
2018
1.10k
      }
2019
66.1k
    } else {
2020
19.8k
      if (yych <= 'n') {
2021
11.4k
        if (yych == 'b') goto yy134;
2022
10.6k
        goto yy33;
2023
11.4k
      } else {
2024
8.47k
        if (yych <= 'o') goto yy136;
2025
8.09k
        if (yych == 'x') goto yy137;
2026
6.11k
        goto yy33;
2027
8.09k
      }
2028
19.8k
    }
2029
352k
yy31:
2030
352k
    YYDEBUG(31, *YYCURSOR);
2031
352k
    yyleng = YYCURSOR - SCNG(yy_text);
2032
352k
#line 2103 "Zend/zend_language_scanner.l"
2033
352k
    {
2034
352k
  size_t len = yyleng;
2035
352k
  char *end, *lnum = yytext;
2036
352k
  bool is_octal = lnum[0] == '0';
2037
352k
  bool contains_underscores = (memchr(lnum, '_', len) != NULL);
2038
2039
352k
  if (contains_underscores) {
2040
444
    lnum = estrndup(lnum, len);
2041
444
    strip_underscores(lnum, &len);
2042
444
  }
2043
2044
  /* Digits 8 and 9 are illegal in octal literals. */
2045
352k
  if (is_octal) {
2046
73.3k
    size_t i;
2047
213k
    for (i = 0; i < len; i++) {
2048
141k
      if (lnum[i] == '8' || lnum[i] == '9') {
2049
1.24k
        zend_throw_exception(zend_ce_parse_error, "Invalid numeric literal", 0);
2050
1.24k
        if (PARSER_MODE()) {
2051
21
          if (contains_underscores) {
2052
9
            efree(lnum);
2053
9
          }
2054
21
          ZVAL_UNDEF(zendlval);
2055
21
          RETURN_TOKEN(T_ERROR);
2056
21
        }
2057
2058
        /* Continue in order to determine if this is T_LNUMBER or T_DNUMBER. */
2059
1.21k
        len = i;
2060
1.21k
        break;
2061
1.24k
      }
2062
141k
    }
2063
73.3k
  }
2064
2065
2066
352k
  if (len < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
2067
338k
    errno = 0;
2068
    /* base must be passed explicitly for correct parse error on Windows */
2069
338k
    ZVAL_LONG(zendlval, ZEND_STRTOL(lnum, &end, is_octal ? 8 : 10));
2070
338k
    ZEND_ASSERT(end == lnum + len);
2071
338k
  } else {
2072
13.4k
    errno = 0;
2073
13.4k
    ZVAL_LONG(zendlval, ZEND_STRTOL(lnum, &end, 0));
2074
13.4k
    if (errno == ERANGE) { /* Overflow */
2075
11.5k
      errno = 0;
2076
11.5k
      if (is_octal) { /* octal overflow */
2077
143
        ZVAL_DOUBLE(zendlval, zend_oct_strtod(lnum, (const char **)&end));
2078
11.3k
      } else {
2079
11.3k
        ZVAL_DOUBLE(zendlval, zend_strtod(lnum, (const char **)&end));
2080
11.3k
      }
2081
11.5k
      ZEND_ASSERT(end == lnum + len);
2082
11.5k
      if (contains_underscores) {
2083
47
        efree(lnum);
2084
47
      }
2085
11.5k
      RETURN_TOKEN_WITH_VAL(T_DNUMBER);
2086
11.5k
    }
2087
1.91k
    ZEND_ASSERT(end == lnum + len);
2088
1.91k
  }
2089
340k
  ZEND_ASSERT(!errno);
2090
340k
  if (contains_underscores) {
2091
388
    efree(lnum);
2092
388
  }
2093
340k
  RETURN_TOKEN_WITH_VAL(T_LNUMBER);
2094
340k
}
2095
0
#line 2096 "Zend/zend_language_scanner.c"
2096
1.27M
yy32:
2097
1.27M
    YYDEBUG(32, *YYCURSOR);
2098
1.27M
    yyaccept = 3;
2099
1.27M
    YYMARKER = ++YYCURSOR;
2100
1.27M
    YYFILL(3);
2101
1.27M
    yych = *YYCURSOR;
2102
1.36M
yy33:
2103
1.36M
    YYDEBUG(33, *YYCURSOR);
2104
1.36M
    if (yybm[256+yych] & 64) {
2105
988k
      goto yy32;
2106
988k
    }
2107
371k
    if (yych <= 'E') {
2108
301k
      if (yych == '.') goto yy133;
2109
284k
      if (yych <= 'D') goto yy31;
2110
2.46k
      goto yy135;
2111
284k
    } else {
2112
70.6k
      if (yych <= '_') {
2113
29.3k
        if (yych <= '^') goto yy31;
2114
1.09k
        goto yy138;
2115
41.3k
      } else {
2116
41.3k
        if (yych == 'e') goto yy135;
2117
39.2k
        goto yy31;
2118
41.3k
      }
2119
70.6k
    }
2120
69.2k
yy34:
2121
69.2k
    YYDEBUG(34, *YYCURSOR);
2122
69.2k
    yych = *++YYCURSOR;
2123
69.2k
    if (yych == ':') goto yy139;
2124
43.5k
    goto yy9;
2125
1.86M
yy35:
2126
1.86M
    YYDEBUG(35, *YYCURSOR);
2127
1.86M
    yych = *++YYCURSOR;
2128
1.86M
    if (yych <= ';') goto yy9;
2129
1.77M
    if (yych <= '<') goto yy141;
2130
271k
    if (yych <= '=') goto yy143;
2131
269k
    if (yych <= '>') goto yy145;
2132
266k
    goto yy9;
2133
267k
yy36:
2134
267k
    YYDEBUG(36, *YYCURSOR);
2135
267k
    yych = *++YYCURSOR;
2136
267k
    if (yych <= '<') goto yy9;
2137
48.9k
    if (yych <= '=') goto yy146;
2138
25.6k
    if (yych <= '>') goto yy148;
2139
10.5k
    goto yy9;
2140
19.2k
yy37:
2141
19.2k
    YYDEBUG(37, *YYCURSOR);
2142
19.2k
    yych = *++YYCURSOR;
2143
19.2k
    if (yych <= '<') goto yy9;
2144
11.1k
    if (yych <= '=') goto yy150;
2145
10.4k
    if (yych <= '>') goto yy152;
2146
7.43k
    goto yy9;
2147
155k
yy38:
2148
155k
    YYDEBUG(38, *YYCURSOR);
2149
155k
    yyaccept = 2;
2150
155k
    yych = *(YYMARKER = ++YYCURSOR);
2151
155k
    if (yych <= '=') {
2152
63.8k
      if (yych == '-') goto yy154;
2153
50.7k
      goto yy9;
2154
91.4k
    } else {
2155
91.4k
      if (yych <= '>') goto yy155;
2156
54.9k
      if (yych <= '?') goto yy157;
2157
50.0k
      goto yy9;
2158
54.9k
    }
2159
79.0k
yy39:
2160
79.0k
    YYDEBUG(39, *YYCURSOR);
2161
79.0k
    yyaccept = 4;
2162
79.0k
    yych = *(YYMARKER = ++YYCURSOR);
2163
79.0k
    if (yych <= 'S') {
2164
29.8k
      if (yych <= 'M') {
2165
27.9k
        if (yych == 'B') goto yy159;
2166
27.6k
        goto yy48;
2167
27.9k
      } else {
2168
1.93k
        if (yych <= 'N') goto yy160;
2169
1.21k
        if (yych <= 'Q') goto yy48;
2170
986
        if (yych <= 'R') goto yy161;
2171
510
        goto yy162;
2172
986
      }
2173
49.1k
    } else {
2174
49.1k
      if (yych <= 'n') {
2175
11.8k
        if (yych == 'b') goto yy159;
2176
8.70k
        if (yych <= 'm') goto yy48;
2177
4.21k
        goto yy160;
2178
37.3k
      } else {
2179
37.3k
        if (yych <= 'q') goto yy48;
2180
36.8k
        if (yych <= 'r') goto yy161;
2181
21.5k
        if (yych <= 's') goto yy162;
2182
6.48k
        goto yy48;
2183
21.5k
      }
2184
49.1k
    }
2185
1.65M
yy40:
2186
1.65M
    YYDEBUG(40, *YYCURSOR);
2187
1.65M
    yyleng = YYCURSOR - SCNG(yy_text);
2188
1.65M
#line 2455 "Zend/zend_language_scanner.l"
2189
1.65M
    {
2190
1.65M
  RETURN_TOKEN_WITH_STR(T_STRING, 0);
2191
1.65M
}
2192
0
#line 2193 "Zend/zend_language_scanner.c"
2193
41.8k
yy41:
2194
41.8k
    YYDEBUG(41, *YYCURSOR);
2195
41.8k
    yyaccept = 4;
2196
41.8k
    yych = *(YYMARKER = ++YYCURSOR);
2197
41.8k
    if (yych <= ';') {
2198
13.3k
      if (yych <= '"') {
2199
8.02k
        if (yych <= '!') goto yy48;
2200
794
        goto yy10;
2201
8.02k
      } else {
2202
5.33k
        if (yych == '\'') goto yy18;
2203
5.03k
        goto yy48;
2204
5.33k
      }
2205
28.4k
    } else {
2206
28.4k
      if (yych <= 'R') {
2207
8.59k
        if (yych <= '<') goto yy165;
2208
5.39k
        if (yych <= 'Q') goto yy48;
2209
115
        goto yy166;
2210
19.8k
      } else {
2211
19.8k
        if (yych == 'r') goto yy166;
2212
18.5k
        goto yy48;
2213
19.8k
      }
2214
28.4k
    }
2215
156k
yy42:
2216
156k
    YYDEBUG(42, *YYCURSOR);
2217
156k
    yyaccept = 4;
2218
156k
    yych = *(YYMARKER = ++YYCURSOR);
2219
156k
    if (yych <= 'O') {
2220
33.8k
      if (yych <= 'K') {
2221
29.9k
        if (yych == 'A') goto yy167;
2222
29.5k
        goto yy48;
2223
29.9k
      } else {
2224
3.93k
        if (yych <= 'L') goto yy168;
2225
2.16k
        if (yych <= 'N') goto yy48;
2226
1.92k
        goto yy169;
2227
2.16k
      }
2228
122k
    } else {
2229
122k
      if (yych <= 'k') {
2230
54.5k
        if (yych == 'a') goto yy167;
2231
15.6k
        goto yy48;
2232
67.8k
      } else {
2233
67.8k
        if (yych <= 'l') goto yy168;
2234
33.5k
        if (yych == 'o') goto yy169;
2235
5.41k
        goto yy48;
2236
33.5k
      }
2237
122k
    }
2238
49.6k
yy43:
2239
49.6k
    YYDEBUG(43, *YYCURSOR);
2240
49.6k
    yyaccept = 4;
2241
49.6k
    yych = *(YYMARKER = ++YYCURSOR);
2242
49.6k
    if (yych <= 'O') {
2243
12.8k
      if (yych <= 'H') {
2244
8.97k
        if (yych == 'E') goto yy170;
2245
7.21k
        goto yy48;
2246
8.97k
      } else {
2247
3.87k
        if (yych <= 'I') goto yy171;
2248
3.66k
        if (yych <= 'N') goto yy48;
2249
2.98k
        goto yy172;
2250
3.66k
      }
2251
36.7k
    } else {
2252
36.7k
      if (yych <= 'h') {
2253
26.3k
        if (yych == 'e') goto yy170;
2254
21.3k
        goto yy48;
2255
26.3k
      } else {
2256
10.3k
        if (yych <= 'i') goto yy171;
2257
9.25k
        if (yych == 'o') goto yy172;
2258
8.00k
        goto yy48;
2259
9.25k
      }
2260
36.7k
    }
2261
222k
yy44:
2262
222k
    YYDEBUG(44, *YYCURSOR);
2263
222k
    yyaccept = 4;
2264
222k
    yych = *(YYMARKER = ++YYCURSOR);
2265
222k
    switch (yych) {
2266
429
    case 'C':
2267
41.2k
    case 'c': goto yy174;
2268
341
    case 'L':
2269
3.71k
    case 'l': goto yy175;
2270
478
    case 'M':
2271
2.59k
    case 'm': goto yy176;
2272
41.8k
    case 'N':
2273
101k
    case 'n': goto yy177;
2274
152
    case 'V':
2275
1.36k
    case 'v': goto yy178;
2276
1.58k
    case 'X':
2277
29.9k
    case 'x': goto yy179;
2278
41.4k
    default:  goto yy48;
2279
222k
    }
2280
150k
yy45:
2281
150k
    YYDEBUG(45, *YYCURSOR);
2282
150k
    yyaccept = 4;
2283
150k
    yych = *(YYMARKER = ++YYCURSOR);
2284
150k
    if (yych <= 'U') {
2285
17.9k
      if (yych <= 'M') {
2286
10.3k
        if (yych == 'I') goto yy180;
2287
10.0k
        goto yy48;
2288
10.3k
      } else {
2289
7.56k
        if (yych <= 'N') goto yy181;
2290
7.33k
        if (yych <= 'O') goto yy183;
2291
4.00k
        if (yych <= 'T') goto yy48;
2292
647
        goto yy184;
2293
4.00k
      }
2294
132k
    } else {
2295
132k
      if (yych <= 'n') {
2296
23.2k
        if (yych == 'i') goto yy180;
2297
14.4k
        if (yych <= 'm') goto yy48;
2298
3.94k
        goto yy181;
2299
109k
      } else {
2300
109k
        if (yych <= 'o') goto yy183;
2301
61.1k
        if (yych == 'u') goto yy184;
2302
6.76k
        goto yy48;
2303
61.1k
      }
2304
132k
    }
2305
19.0k
yy46:
2306
19.0k
    YYDEBUG(46, *YYCURSOR);
2307
19.0k
    yyaccept = 4;
2308
19.0k
    yych = *(YYMARKER = ++YYCURSOR);
2309
19.0k
    if (yych <= 'O') {
2310
4.63k
      if (yych == 'L') goto yy185;
2311
3.88k
      if (yych <= 'N') goto yy48;
2312
701
      goto yy186;
2313
14.3k
    } else {
2314
14.3k
      if (yych <= 'l') {
2315
11.4k
        if (yych <= 'k') goto yy48;
2316
1.59k
        goto yy185;
2317
11.4k
      } else {
2318
2.94k
        if (yych == 'o') goto yy186;
2319
1.72k
        goto yy48;
2320
2.94k
      }
2321
14.3k
    }
2322
7.75M
yy47:
2323
7.75M
    YYDEBUG(47, *YYCURSOR);
2324
7.75M
    yyaccept = 4;
2325
7.75M
    YYMARKER = ++YYCURSOR;
2326
7.75M
    YYFILL(1);
2327
7.75M
    yych = *YYCURSOR;
2328
8.96M
yy48:
2329
8.96M
    YYDEBUG(48, *YYCURSOR);
2330
8.96M
    if (yybm[256+yych] & 128) {
2331
7.31M
      goto yy47;
2332
7.31M
    }
2333
1.65M
    if (yych == '\\') goto yy164;
2334
1.63M
    goto yy40;
2335
1.63M
yy49:
2336
128k
    YYDEBUG(49, *YYCURSOR);
2337
128k
    yyaccept = 4;
2338
128k
    yych = *(YYMARKER = ++YYCURSOR);
2339
128k
    if (yych <= 'S') {
2340
28.1k
      if (yych <= 'L') {
2341
19.4k
        if (yych == 'F') goto yy187;
2342
19.1k
        goto yy48;
2343
19.4k
      } else {
2344
8.76k
        if (yych <= 'M') goto yy189;
2345
8.40k
        if (yych <= 'N') goto yy190;
2346
854
        if (yych <= 'R') goto yy48;
2347
160
        goto yy191;
2348
854
      }
2349
100k
    } else {
2350
100k
      if (yych <= 'm') {
2351
52.7k
        if (yych == 'f') goto yy187;
2352
44.2k
        if (yych <= 'l') goto yy48;
2353
30.3k
        goto yy189;
2354
47.8k
      } else {
2355
47.8k
        if (yych <= 'n') goto yy190;
2356
18.2k
        if (yych == 's') goto yy191;
2357
6.84k
        goto yy48;
2358
18.2k
      }
2359
100k
    }
2360
33.6k
yy50:
2361
33.6k
    YYDEBUG(50, *YYCURSOR);
2362
33.6k
    yyaccept = 4;
2363
33.6k
    yych = *(YYMARKER = ++YYCURSOR);
2364
33.6k
    if (yych == 'I') goto yy192;
2365
33.0k
    if (yych == 'i') goto yy192;
2366
31.3k
    goto yy48;
2367
39.1k
yy51:
2368
39.1k
    YYDEBUG(51, *YYCURSOR);
2369
39.1k
    yyaccept = 4;
2370
39.1k
    yych = *(YYMARKER = ++YYCURSOR);
2371
39.1k
    if (yych == 'A') goto yy193;
2372
37.2k
    if (yych == 'a') goto yy193;
2373
36.0k
    goto yy48;
2374
82.9k
yy52:
2375
82.9k
    YYDEBUG(52, *YYCURSOR);
2376
82.9k
    yyaccept = 4;
2377
82.9k
    yych = *(YYMARKER = ++YYCURSOR);
2378
82.9k
    if (yych <= 'E') {
2379
10.9k
      if (yych == 'A') goto yy194;
2380
9.68k
      if (yych <= 'D') goto yy48;
2381
5.24k
      goto yy195;
2382
72.0k
    } else {
2383
72.0k
      if (yych <= 'a') {
2384
8.00k
        if (yych <= '`') goto yy48;
2385
6.33k
        goto yy194;
2386
64.0k
      } else {
2387
64.0k
        if (yych == 'e') goto yy195;
2388
21.8k
        goto yy48;
2389
64.0k
      }
2390
72.0k
    }
2391
38.1k
yy53:
2392
38.1k
    YYDEBUG(53, *YYCURSOR);
2393
38.1k
    yyaccept = 4;
2394
38.1k
    yych = *(YYMARKER = ++YYCURSOR);
2395
38.1k
    if (yych == 'R') goto yy196;
2396
37.1k
    if (yych == 'r') goto yy196;
2397
34.6k
    goto yy48;
2398
270k
yy54:
2399
270k
    YYDEBUG(54, *YYCURSOR);
2400
270k
    yyaccept = 4;
2401
270k
    yych = *(YYMARKER = ++YYCURSOR);
2402
270k
    if (yych <= 'U') {
2403
133k
      if (yych == 'R') goto yy198;
2404
132k
      if (yych <= 'T') goto yy48;
2405
307
      goto yy199;
2406
137k
    } else {
2407
137k
      if (yych <= 'r') {
2408
92.6k
        if (yych <= 'q') goto yy48;
2409
13.9k
        goto yy198;
2410
92.6k
      } else {
2411
44.6k
        if (yych == 'u') goto yy199;
2412
14.4k
        goto yy48;
2413
44.6k
      }
2414
137k
    }
2415
52.8k
yy55:
2416
52.8k
    YYDEBUG(55, *YYCURSOR);
2417
52.8k
    yyaccept = 4;
2418
52.8k
    yych = *(YYMARKER = ++YYCURSOR);
2419
52.8k
    if (yych == 'E') goto yy200;
2420
52.1k
    if (yych == 'e') goto yy200;
2421
15.9k
    goto yy48;
2422
88.7k
yy56:
2423
88.7k
    YYDEBUG(56, *YYCURSOR);
2424
88.7k
    yyaccept = 4;
2425
88.7k
    yych = *(YYMARKER = ++YYCURSOR);
2426
88.7k
    if (yych <= 'W') {
2427
27.6k
      if (yych == 'T') goto yy201;
2428
27.1k
      if (yych <= 'V') goto yy48;
2429
314
      goto yy202;
2430
61.1k
    } else {
2431
61.1k
      if (yych <= 't') {
2432
55.2k
        if (yych <= 's') goto yy48;
2433
28.0k
        goto yy201;
2434
55.2k
      } else {
2435
5.88k
        if (yych == 'w') goto yy202;
2436
2.14k
        goto yy48;
2437
5.88k
      }
2438
61.1k
    }
2439
121k
yy57:
2440
121k
    YYDEBUG(57, *YYCURSOR);
2441
121k
    yyaccept = 4;
2442
121k
    yych = *(YYMARKER = ++YYCURSOR);
2443
121k
    if (yych <= 'R') {
2444
15.8k
      if (yych == 'H') goto yy203;
2445
14.7k
      if (yych <= 'Q') goto yy48;
2446
2.27k
      goto yy204;
2447
105k
    } else {
2448
105k
      if (yych <= 'h') {
2449
50.3k
        if (yych <= 'g') goto yy48;
2450
9.62k
        goto yy203;
2451
55.2k
      } else {
2452
55.2k
        if (yych == 'r') goto yy204;
2453
14.1k
        goto yy48;
2454
55.2k
      }
2455
105k
    }
2456
31.1k
yy58:
2457
31.1k
    YYDEBUG(58, *YYCURSOR);
2458
31.1k
    yyaccept = 4;
2459
31.1k
    yych = *(YYMARKER = ++YYCURSOR);
2460
31.1k
    if (yych <= 'S') {
2461
8.56k
      if (yych == 'N') goto yy205;
2462
8.41k
      if (yych <= 'R') goto yy48;
2463
266
      goto yy206;
2464
22.6k
    } else {
2465
22.6k
      if (yych <= 'n') {
2466
14.4k
        if (yych <= 'm') goto yy48;
2467
6.49k
        goto yy205;
2468
14.4k
      } else {
2469
8.15k
        if (yych == 's') goto yy206;
2470
2.85k
        goto yy48;
2471
8.15k
      }
2472
22.6k
    }
2473
68.5k
yy59:
2474
68.5k
    YYDEBUG(59, *YYCURSOR);
2475
68.5k
    yyaccept = 4;
2476
68.5k
    yych = *(YYMARKER = ++YYCURSOR);
2477
68.5k
    if (yych == 'A') goto yy207;
2478
68.2k
    if (yych == 'a') goto yy207;
2479
16.5k
    goto yy48;
2480
16.5k
yy60:
2481
15.7k
    YYDEBUG(60, *YYCURSOR);
2482
15.7k
    yyaccept = 4;
2483
15.7k
    yych = *(YYMARKER = ++YYCURSOR);
2484
15.7k
    if (yych == 'H') goto yy208;
2485
15.7k
    if (yych == 'h') goto yy208;
2486
15.0k
    goto yy48;
2487
18.1k
yy61:
2488
18.1k
    YYDEBUG(61, *YYCURSOR);
2489
18.1k
    yyaccept = 4;
2490
18.1k
    yych = *(YYMARKER = ++YYCURSOR);
2491
18.1k
    if (yych == 'O') goto yy209;
2492
17.7k
    if (yych == 'o') goto yy209;
2493
15.8k
    goto yy48;
2494
54.1k
yy62:
2495
54.1k
    YYDEBUG(62, *YYCURSOR);
2496
54.1k
    yyaccept = 4;
2497
54.1k
    yych = *(YYMARKER = ++YYCURSOR);
2498
54.1k
    if (yych == 'I') goto yy210;
2499
53.8k
    if (yych == 'i') goto yy210;
2500
28.7k
    goto yy48;
2501
74.3k
yy63:
2502
74.3k
    YYDEBUG(63, *YYCURSOR);
2503
74.3k
    ++YYCURSOR;
2504
74.3k
    goto yy21;
2505
45.2k
yy64:
2506
45.2k
    YYDEBUG(64, *YYCURSOR);
2507
45.2k
    yych = *++YYCURSOR;
2508
45.2k
    if (yych <= '_') {
2509
36.2k
      if (yych <= '@') goto yy65;
2510
27.0k
      if (yych <= 'Z') goto yy211;
2511
21.3k
      if (yych >= '_') goto yy211;
2512
21.3k
    } else {
2513
9.07k
      if (yych <= '`') goto yy65;
2514
8.67k
      if (yych <= 'z') goto yy211;
2515
4.32k
      if (yych >= 0x80) goto yy211;
2516
4.32k
    }
2517
33.2k
yy65:
2518
33.2k
    YYDEBUG(65, *YYCURSOR);
2519
33.2k
    yyleng = YYCURSOR - SCNG(yy_text);
2520
33.2k
#line 2451 "Zend/zend_language_scanner.l"
2521
33.2k
    {
2522
33.2k
  RETURN_TOKEN(T_NS_SEPARATOR);
2523
33.2k
}
2524
0
#line 2525 "Zend/zend_language_scanner.c"
2525
42.9k
yy66:
2526
42.9k
    YYDEBUG(66, *YYCURSOR);
2527
42.9k
    yych = *++YYCURSOR;
2528
42.9k
    if (yych == '=') goto yy214;
2529
42.8k
    goto yy9;
2530
62.3k
yy67:
2531
62.3k
    YYDEBUG(67, *YYCURSOR);
2532
62.3k
    yyaccept = 4;
2533
62.3k
    yych = *(YYMARKER = ++YYCURSOR);
2534
62.3k
    if (yych == '_') goto yy216;
2535
15.3k
    goto yy48;
2536
23.2k
yy68:
2537
23.2k
    YYDEBUG(68, *YYCURSOR);
2538
23.2k
    ++YYCURSOR;
2539
23.2k
    YYDEBUG(69, *YYCURSOR);
2540
23.2k
    yyleng = YYCURSOR - SCNG(yy_text);
2541
23.2k
#line 2825 "Zend/zend_language_scanner.l"
2542
23.2k
    {
2543
23.2k
  BEGIN(ST_BACKQUOTE);
2544
23.2k
  RETURN_TOKEN('`');
2545
23.2k
}
2546
0
#line 2547 "Zend/zend_language_scanner.c"
2547
484k
yy70:
2548
484k
    YYDEBUG(70, *YYCURSOR);
2549
484k
    ++YYCURSOR;
2550
484k
    YYDEBUG(71, *YYCURSOR);
2551
484k
    yyleng = YYCURSOR - SCNG(yy_text);
2552
484k
#line 1974 "Zend/zend_language_scanner.l"
2553
484k
    {
2554
484k
  yy_push_state(ST_IN_SCRIPTING);
2555
484k
  enter_nesting('{');
2556
484k
  RETURN_TOKEN('{');
2557
484k
}
2558
0
#line 2559 "Zend/zend_language_scanner.c"
2559
40.4k
yy72:
2560
40.4k
    YYDEBUG(72, *YYCURSOR);
2561
40.4k
    yych = *++YYCURSOR;
2562
40.4k
    if (yych <= '>') {
2563
18.5k
      if (yych <= '<') goto yy9;
2564
2.10k
      if (yych <= '=') goto yy217;
2565
1.03k
      goto yy219;
2566
21.8k
    } else {
2567
21.8k
      if (yych == '|') goto yy221;
2568
7.41k
      goto yy9;
2569
21.8k
    }
2570
193k
yy73:
2571
193k
    YYDEBUG(73, *YYCURSOR);
2572
193k
    ++YYCURSOR;
2573
193k
    YYDEBUG(74, *YYCURSOR);
2574
193k
    yyleng = YYCURSOR - SCNG(yy_text);
2575
193k
#line 1987 "Zend/zend_language_scanner.l"
2576
193k
    {
2577
193k
  RESET_DOC_COMMENT();
2578
193k
  if (!zend_stack_is_empty(&SCNG(state_stack))) {
2579
184k
    yy_pop_state();
2580
184k
  }
2581
193k
  RETURN_EXIT_NESTING_TOKEN('}');
2582
193k
}
2583
0
#line 2584 "Zend/zend_language_scanner.c"
2584
3.30k
yy75:
2585
3.30k
    YYDEBUG(75, *YYCURSOR);
2586
3.30k
    yych = *++YYCURSOR;
2587
3.30k
    if (yych == '=') goto yy223;
2588
5.89k
yy76:
2589
5.89k
    YYDEBUG(76, *YYCURSOR);
2590
5.89k
    yyleng = YYCURSOR - SCNG(yy_text);
2591
5.89k
#line 1846 "Zend/zend_language_scanner.l"
2592
5.89k
    {
2593
5.89k
  RETURN_TOKEN(T_IS_NOT_EQUAL);
2594
5.89k
}
2595
0
#line 2596 "Zend/zend_language_scanner.c"
2596
3.22k
yy77:
2597
3.22k
    YYDEBUG(77, *YYCURSOR);
2598
3.22k
    ++YYCURSOR;
2599
3.22k
    YYDEBUG(78, *YYCURSOR);
2600
3.22k
    yyleng = YYCURSOR - SCNG(yy_text);
2601
3.22k
#line 1423 "Zend/zend_language_scanner.l"
2602
3.22k
    {
2603
3.22k
  enter_nesting('[');
2604
3.22k
  RETURN_TOKEN(T_ATTRIBUTE);
2605
3.22k
}
2606
0
#line 2607 "Zend/zend_language_scanner.c"
2607
2.46M
yy79:
2608
2.46M
    YYDEBUG(79, *YYCURSOR);
2609
2.46M
    ++YYCURSOR;
2610
2.46M
    YYFILL(1);
2611
2.46M
    yych = *YYCURSOR;
2612
2.46M
    YYDEBUG(80, *YYCURSOR);
2613
2.46M
    if (yych <= '^') {
2614
708k
      if (yych <= '9') {
2615
516k
        if (yych >= '0') goto yy79;
2616
516k
      } else {
2617
191k
        if (yych <= '@') goto yy81;
2618
116k
        if (yych <= 'Z') goto yy79;
2619
116k
      }
2620
1.75M
    } else {
2621
1.75M
      if (yych <= '`') {
2622
5.37k
        if (yych <= '_') goto yy79;
2623
1.75M
      } else {
2624
1.75M
        if (yych <= 'z') goto yy79;
2625
501k
        if (yych >= 0x80) goto yy79;
2626
501k
      }
2627
1.75M
    }
2628
586k
yy81:
2629
586k
    YYDEBUG(81, *YYCURSOR);
2630
586k
    yyleng = YYCURSOR - SCNG(yy_text);
2631
586k
#line 2417 "Zend/zend_language_scanner.l"
2632
586k
    {
2633
586k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
2634
586k
}
2635
0
#line 2636 "Zend/zend_language_scanner.c"
2636
3.16k
yy82:
2637
3.16k
    YYDEBUG(82, *YYCURSOR);
2638
3.16k
    ++YYCURSOR;
2639
3.16k
    YYDEBUG(83, *YYCURSOR);
2640
3.16k
    yyleng = YYCURSOR - SCNG(yy_text);
2641
3.16k
#line 1890 "Zend/zend_language_scanner.l"
2642
3.16k
    {
2643
3.16k
  RETURN_TOKEN(T_MOD_EQUAL);
2644
3.16k
}
2645
0
#line 2646 "Zend/zend_language_scanner.c"
2646
71.7k
yy84:
2647
71.7k
    YYDEBUG(84, *YYCURSOR);
2648
71.7k
    ++YYCURSOR;
2649
71.7k
    YYFILL(3);
2650
71.7k
    yych = *YYCURSOR;
2651
93.7k
yy85:
2652
93.7k
    YYDEBUG(85, *YYCURSOR);
2653
93.7k
    if (yych <= ' ') {
2654
30.1k
      if (yych <= '\f') {
2655
22.4k
        if (yych <= 0x08) goto yy86;
2656
21.7k
        if (yych <= '\n') goto yy84;
2657
21.7k
      } else {
2658
7.63k
        if (yych <= '\r') goto yy84;
2659
6.52k
        if (yych >= ' ') goto yy84;
2660
6.52k
      }
2661
63.6k
    } else {
2662
63.6k
      if (yych <= '$') {
2663
56.1k
        if (yych <= '"') goto yy86;
2664
56.0k
        if (yych <= '#') goto yy87;
2665
8.68k
        goto yy88;
2666
56.0k
      } else {
2667
7.48k
        if (yych <= '-') goto yy86;
2668
6.99k
        if (yych <= '.') goto yy92;
2669
4.78k
        if (yych <= '/') goto yy93;
2670
4.78k
      }
2671
63.6k
    }
2672
285k
yy86:
2673
285k
    YYDEBUG(86, *YYCURSOR);
2674
285k
    YYCURSOR = YYMARKER;
2675
285k
    if (yyaccept <= 48) {
2676
236k
      if (yyaccept <= 24) {
2677
231k
        if (yyaccept <= 12) {
2678
229k
          if (yyaccept <= 6) {
2679
95.1k
            if (yyaccept <= 3) {
2680
72.8k
              if (yyaccept <= 1) {
2681
68.7k
                if (yyaccept == 0) {
2682
8.42k
                  goto yy17;
2683
60.3k
                } else {
2684
60.3k
                  goto yy21;
2685
60.3k
                }
2686
68.7k
              } else {
2687
4.06k
                if (yyaccept == 2) {
2688
1.70k
                  goto yy9;
2689
2.35k
                } else {
2690
2.35k
                  goto yy31;
2691
2.35k
                }
2692
4.06k
              }
2693
72.8k
            } else {
2694
22.3k
              if (yyaccept <= 5) {
2695
22.0k
                if (yyaccept == 4) {
2696
21.1k
                  goto yy40;
2697
21.1k
                } else {
2698
957
                  goto yy125;
2699
957
                }
2700
22.0k
              } else {
2701
285
                goto yy129;
2702
285
              }
2703
22.3k
            }
2704
134k
          } else {
2705
134k
            if (yyaccept <= 9) {
2706
134k
              if (yyaccept <= 8) {
2707
134k
                if (yyaccept == 7) {
2708
134k
                  goto yy142;
2709
134k
                } else {
2710
0
                  goto yy163;
2711
0
                }
2712
134k
              } else {
2713
0
                goto yy173;
2714
0
              }
2715
134k
            } else {
2716
33
              if (yyaccept <= 11) {
2717
33
                if (yyaccept == 10) {
2718
0
                  goto yy182;
2719
33
                } else {
2720
33
                  goto yy188;
2721
33
                }
2722
33
              } else {
2723
0
                goto yy197;
2724
0
              }
2725
33
            }
2726
134k
          }
2727
229k
        } else {
2728
2.56k
          if (yyaccept <= 18) {
2729
2.45k
            if (yyaccept <= 15) {
2730
1.41k
              if (yyaccept <= 14) {
2731
1.41k
                if (yyaccept == 13) {
2732
1.39k
                  goto yy213;
2733
1.39k
                } else {
2734
12
                  goto yy251;
2735
12
                }
2736
1.41k
              } else {
2737
0
                goto yy257;
2738
0
              }
2739
1.41k
            } else {
2740
1.04k
              if (yyaccept <= 17) {
2741
18
                if (yyaccept == 16) {
2742
18
                  goto yy260;
2743
18
                } else {
2744
0
                  goto yy279;
2745
0
                }
2746
1.02k
              } else {
2747
1.02k
                goto yy283;
2748
1.02k
              }
2749
1.04k
            }
2750
2.45k
          } else {
2751
114
            if (yyaccept <= 21) {
2752
12
              if (yyaccept <= 20) {
2753
0
                if (yyaccept == 19) {
2754
0
                  goto yy295;
2755
0
                } else {
2756
0
                  goto yy306;
2757
0
                }
2758
12
              } else {
2759
12
                goto yy319;
2760
12
              }
2761
102
            } else {
2762
102
              if (yyaccept <= 23) {
2763
102
                if (yyaccept == 22) {
2764
0
                  goto yy331;
2765
102
                } else {
2766
102
                  goto yy334;
2767
102
                }
2768
102
              } else {
2769
0
                goto yy336;
2770
0
              }
2771
102
            }
2772
114
          }
2773
2.56k
        }
2774
231k
      } else {
2775
4.59k
        if (yyaccept <= 36) {
2776
4.59k
          if (yyaccept <= 30) {
2777
4.59k
            if (yyaccept <= 27) {
2778
4.59k
              if (yyaccept <= 26) {
2779
4.59k
                if (yyaccept == 25) {
2780
0
                  goto yy339;
2781
4.59k
                } else {
2782
4.59k
                  goto yy89;
2783
4.59k
                }
2784
4.59k
              } else {
2785
0
                goto yy379;
2786
0
              }
2787
4.59k
            } else {
2788
3
              if (yyaccept <= 29) {
2789
3
                if (yyaccept == 28) {
2790
3
                  goto yy388;
2791
3
                } else {
2792
0
                  goto yy390;
2793
0
                }
2794
3
              } else {
2795
0
                goto yy399;
2796
0
              }
2797
3
            }
2798
4.59k
          } else {
2799
3
            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
3
            } else {
2810
3
              if (yyaccept <= 35) {
2811
0
                if (yyaccept == 34) {
2812
0
                  goto yy471;
2813
0
                } else {
2814
0
                  goto yy473;
2815
0
                }
2816
3
              } else {
2817
3
                goto yy476;
2818
3
              }
2819
3
            }
2820
3
          }
2821
4.59k
        } 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
4.59k
      }
2869
236k
    } else {
2870
48.9k
      if (yyaccept <= 72) {
2871
48.0k
        if (yyaccept <= 60) {
2872
47.9k
          if (yyaccept <= 54) {
2873
47.7k
            if (yyaccept <= 51) {
2874
17.2k
              if (yyaccept <= 50) {
2875
17.2k
                if (yyaccept == 49) {
2876
0
                  goto yy532;
2877
17.2k
                } else {
2878
17.2k
                  goto yy534;
2879
17.2k
                }
2880
17.2k
              } else {
2881
0
                goto yy576;
2882
0
              }
2883
30.5k
            } else {
2884
30.5k
              if (yyaccept <= 53) {
2885
30.5k
                if (yyaccept == 52) {
2886
0
                  goto yy579;
2887
30.5k
                } else {
2888
30.5k
                  goto yy583;
2889
30.5k
                }
2890
30.5k
              } else {
2891
0
                goto yy597;
2892
0
              }
2893
30.5k
            }
2894
47.7k
          } else {
2895
125
            if (yyaccept <= 57) {
2896
125
              if (yyaccept <= 56) {
2897
125
                if (yyaccept == 55) {
2898
125
                  goto yy607;
2899
125
                } else {
2900
0
                  goto yy611;
2901
0
                }
2902
125
              } else {
2903
0
                goto yy613;
2904
0
              }
2905
125
            } 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
125
          }
2917
47.9k
        } else {
2918
188
          if (yyaccept <= 66) {
2919
134
            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
134
            } else {
2930
134
              if (yyaccept <= 65) {
2931
134
                if (yyaccept == 64) {
2932
0
                  goto yy679;
2933
134
                } else {
2934
134
                  goto yy685;
2935
134
                }
2936
134
              } else {
2937
0
                goto yy690;
2938
0
              }
2939
134
            }
2940
134
          } else {
2941
54
            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
54
            } else {
2952
54
              if (yyaccept <= 71) {
2953
0
                if (yyaccept == 70) {
2954
0
                  goto yy730;
2955
0
                } else {
2956
0
                  goto yy735;
2957
0
                }
2958
54
              } else {
2959
54
                goto yy743;
2960
54
              }
2961
54
            }
2962
54
          }
2963
188
        }
2964
48.0k
      } else {
2965
874
        if (yyaccept <= 84) {
2966
317
          if (yyaccept <= 78) {
2967
3
            if (yyaccept <= 75) {
2968
3
              if (yyaccept <= 74) {
2969
0
                if (yyaccept == 73) {
2970
0
                  goto yy754;
2971
0
                } else {
2972
0
                  goto yy764;
2973
0
                }
2974
3
              } else {
2975
3
                goto yy768;
2976
3
              }
2977
3
            } 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
314
          } else {
2989
314
            if (yyaccept <= 81) {
2990
314
              if (yyaccept <= 80) {
2991
314
                if (yyaccept == 79) {
2992
282
                  goto yy801;
2993
282
                } else {
2994
32
                  goto yy804;
2995
32
                }
2996
314
              } else {
2997
0
                goto yy812;
2998
0
              }
2999
314
            } 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
314
          }
3011
557
        } else {
3012
557
          if (yyaccept <= 90) {
3013
21
            if (yyaccept <= 87) {
3014
15
              if (yyaccept <= 86) {
3015
0
                if (yyaccept == 85) {
3016
0
                  goto yy836;
3017
0
                } else {
3018
0
                  goto yy839;
3019
0
                }
3020
15
              } else {
3021
15
                goto yy854;
3022
15
              }
3023
15
            } else {
3024
6
              if (yyaccept <= 89) {
3025
6
                if (yyaccept == 88) {
3026
6
                  goto yy869;
3027
6
                } else {
3028
0
                  goto yy898;
3029
0
                }
3030
6
              } else {
3031
0
                goto yy903;
3032
0
              }
3033
6
            }
3034
536
          } else {
3035
536
            if (yyaccept <= 93) {
3036
426
              if (yyaccept <= 92) {
3037
426
                if (yyaccept == 91) {
3038
426
                  goto yy876;
3039
426
                } else {
3040
0
                  goto yy911;
3041
0
                }
3042
426
              } else {
3043
0
                goto yy915;
3044
0
              }
3045
426
            } else {
3046
110
              if (yyaccept <= 95) {
3047
110
                if (yyaccept == 94) {
3048
110
                  goto yy886;
3049
110
                } else {
3050
0
                  goto yy931;
3051
0
                }
3052
110
              } else {
3053
0
                goto yy951;
3054
0
              }
3055
110
            }
3056
536
          }
3057
557
        }
3058
874
      }
3059
48.9k
    }
3060
47.3k
yy87:
3061
47.3k
    YYDEBUG(87, *YYCURSOR);
3062
47.3k
    ++YYCURSOR;
3063
47.3k
    YYFILL(1);
3064
47.3k
    yych = *YYCURSOR;
3065
47.3k
    if (yych <= '\f') {
3066
19.8k
      if (yych <= 0x00) goto yy86;
3067
19.8k
      if (yych == '\n') goto yy227;
3068
97
      goto yy225;
3069
27.5k
    } else {
3070
27.5k
      if (yych <= '\r') goto yy227;
3071
4.94k
      if (yych == '[') goto yy86;
3072
4.94k
      goto yy225;
3073
4.94k
    }
3074
8.82k
yy88:
3075
8.82k
    YYDEBUG(88, *YYCURSOR);
3076
8.82k
    ++YYCURSOR;
3077
13.5k
yy89:
3078
13.5k
    YYDEBUG(89, *YYCURSOR);
3079
13.5k
    yyleng = YYCURSOR - SCNG(yy_text);
3080
13.5k
#line 1950 "Zend/zend_language_scanner.l"
3081
13.5k
    {
3082
13.5k
  yyless(1);
3083
13.5k
  RETURN_TOKEN(T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG);
3084
13.5k
}
3085
0
#line 3086 "Zend/zend_language_scanner.c"
3086
6.90k
yy90:
3087
6.90k
    YYDEBUG(90, *YYCURSOR);
3088
6.90k
    ++YYCURSOR;
3089
6.90k
    YYDEBUG(91, *YYCURSOR);
3090
6.90k
    yyleng = YYCURSOR - SCNG(yy_text);
3091
6.90k
#line 1926 "Zend/zend_language_scanner.l"
3092
6.90k
    {
3093
6.90k
  RETURN_TOKEN(T_BOOLEAN_AND);
3094
6.90k
}
3095
0
#line 3096 "Zend/zend_language_scanner.c"
3096
2.20k
yy92:
3097
2.20k
    YYDEBUG(92, *YYCURSOR);
3098
2.20k
    yych = *++YYCURSOR;
3099
2.20k
    if (yych == '.') goto yy229;
3100
1.80k
    goto yy86;
3101
2.20k
yy93:
3102
2.20k
    YYDEBUG(93, *YYCURSOR);
3103
2.20k
    ++YYCURSOR;
3104
2.20k
    YYFILL(1);
3105
2.20k
    yych = *YYCURSOR;
3106
2.20k
    if (yych == '*') goto yy230;
3107
465
    if (yych == '/') goto yy225;
3108
221
    goto yy86;
3109
9.91k
yy94:
3110
9.91k
    YYDEBUG(94, *YYCURSOR);
3111
9.91k
    ++YYCURSOR;
3112
9.91k
    YYDEBUG(95, *YYCURSOR);
3113
9.91k
    yyleng = YYCURSOR - SCNG(yy_text);
3114
9.91k
#line 1902 "Zend/zend_language_scanner.l"
3115
9.91k
    {
3116
9.91k
  RETURN_TOKEN(T_AND_EQUAL);
3117
9.91k
}
3118
0
#line 3119 "Zend/zend_language_scanner.c"
3119
33.6k
yy96:
3120
33.6k
    YYDEBUG(96, *YYCURSOR);
3121
33.6k
    ++YYCURSOR;
3122
33.6k
    YYFILL(7);
3123
33.6k
    yych = *YYCURSOR;
3124
96.9k
yy97:
3125
96.9k
    YYDEBUG(97, *YYCURSOR);
3126
96.9k
    if (yybm[0+yych] & 1) {
3127
33.6k
      goto yy96;
3128
33.6k
    }
3129
63.2k
    switch (yych) {
3130
1.27k
    case 'A':
3131
8.78k
    case 'a': goto yy98;
3132
3.31k
    case 'B':
3133
4.81k
    case 'b': goto yy99;
3134
219
    case 'D':
3135
1.69k
    case 'd': goto yy100;
3136
916
    case 'F':
3137
10.1k
    case 'f': goto yy101;
3138
519
    case 'I':
3139
8.70k
    case 'i': goto yy102;
3140
154
    case 'O':
3141
1.33k
    case 'o': goto yy103;
3142
418
    case 'R':
3143
2.24k
    case 'r': goto yy104;
3144
290
    case 'S':
3145
12.6k
    case 's': goto yy105;
3146
164
    case 'U':
3147
674
    case 'u': goto yy106;
3148
262
    case 'V':
3149
548
    case 'v': goto yy107;
3150
11.7k
    default:  goto yy86;
3151
63.2k
    }
3152
8.78k
yy98:
3153
8.78k
    YYDEBUG(98, *YYCURSOR);
3154
8.78k
    yych = *++YYCURSOR;
3155
8.78k
    if (yych == 'R') goto yy232;
3156
8.77k
    if (yych == 'r') goto yy232;
3157
2.18k
    goto yy86;
3158
4.81k
yy99:
3159
4.81k
    YYDEBUG(99, *YYCURSOR);
3160
4.81k
    yych = *++YYCURSOR;
3161
4.81k
    if (yych <= 'O') {
3162
3.34k
      if (yych == 'I') goto yy233;
3163
3.25k
      if (yych <= 'N') goto yy86;
3164
89
      goto yy234;
3165
3.25k
    } else {
3166
1.47k
      if (yych <= 'i') {
3167
966
        if (yych <= 'h') goto yy86;
3168
367
        goto yy233;
3169
966
      } else {
3170
511
        if (yych == 'o') goto yy234;
3171
166
        goto yy86;
3172
511
      }
3173
1.47k
    }
3174
1.69k
yy100:
3175
1.69k
    YYDEBUG(100, *YYCURSOR);
3176
1.69k
    yych = *++YYCURSOR;
3177
1.69k
    if (yych == 'O') goto yy235;
3178
1.69k
    if (yych == 'o') goto yy235;
3179
1.50k
    goto yy86;
3180
10.1k
yy101:
3181
10.1k
    YYDEBUG(101, *YYCURSOR);
3182
10.1k
    yych = *++YYCURSOR;
3183
10.1k
    if (yych == 'L') goto yy236;
3184
10.1k
    if (yych == 'l') goto yy236;
3185
9.64k
    goto yy86;
3186
9.64k
yy102:
3187
8.70k
    YYDEBUG(102, *YYCURSOR);
3188
8.70k
    yych = *++YYCURSOR;
3189
8.70k
    if (yych == 'N') goto yy237;
3190
8.51k
    if (yych == 'n') goto yy237;
3191
4.00k
    goto yy86;
3192
4.00k
yy103:
3193
1.33k
    YYDEBUG(103, *YYCURSOR);
3194
1.33k
    yych = *++YYCURSOR;
3195
1.33k
    if (yych == 'B') goto yy238;
3196
1.32k
    if (yych == 'b') goto yy238;
3197
706
    goto yy86;
3198
2.24k
yy104:
3199
2.24k
    YYDEBUG(104, *YYCURSOR);
3200
2.24k
    yych = *++YYCURSOR;
3201
2.24k
    if (yych == 'E') goto yy239;
3202
2.19k
    if (yych == 'e') goto yy239;
3203
1.48k
    goto yy86;
3204
12.6k
yy105:
3205
12.6k
    YYDEBUG(105, *YYCURSOR);
3206
12.6k
    yych = *++YYCURSOR;
3207
12.6k
    if (yych == 'T') goto yy240;
3208
12.5k
    if (yych == 't') goto yy240;
3209
7.18k
    goto yy86;
3210
7.18k
yy106:
3211
674
    YYDEBUG(106, *YYCURSOR);
3212
674
    yych = *++YYCURSOR;
3213
674
    if (yych == 'N') goto yy241;
3214
665
    if (yych == 'n') goto yy241;
3215
253
    goto yy86;
3216
548
yy107:
3217
548
    YYDEBUG(107, *YYCURSOR);
3218
548
    yych = *++YYCURSOR;
3219
548
    if (yych == 'O') goto yy242;
3220
542
    if (yych == 'o') goto yy242;
3221
465
    goto yy86;
3222
5.35k
yy108:
3223
5.35k
    YYDEBUG(108, *YYCURSOR);
3224
5.35k
    yych = *++YYCURSOR;
3225
5.35k
    if (yych == '=') goto yy243;
3226
5.23k
    YYDEBUG(109, *YYCURSOR);
3227
5.23k
    yyleng = YYCURSOR - SCNG(yy_text);
3228
5.23k
#line 1874 "Zend/zend_language_scanner.l"
3229
5.23k
    {
3230
5.23k
  RETURN_TOKEN(T_POW);
3231
5.23k
}
3232
0
#line 3233 "Zend/zend_language_scanner.c"
3233
3.86k
yy110:
3234
3.86k
    YYDEBUG(110, *YYCURSOR);
3235
3.86k
    ++YYCURSOR;
3236
3.86k
    YYDEBUG(111, *YYCURSOR);
3237
3.86k
    yyleng = YYCURSOR - SCNG(yy_text);
3238
3.86k
#line 1870 "Zend/zend_language_scanner.l"
3239
3.86k
    {
3240
3.86k
  RETURN_TOKEN(T_MUL_EQUAL);
3241
3.86k
}
3242
0
#line 3243 "Zend/zend_language_scanner.c"
3243
9.26k
yy112:
3244
9.26k
    YYDEBUG(112, *YYCURSOR);
3245
9.26k
    ++YYCURSOR;
3246
9.26k
    YYDEBUG(113, *YYCURSOR);
3247
9.26k
    yyleng = YYCURSOR - SCNG(yy_text);
3248
9.26k
#line 1826 "Zend/zend_language_scanner.l"
3249
9.26k
    {
3250
9.26k
  RETURN_TOKEN(T_INC);
3251
9.26k
}
3252
0
#line 3253 "Zend/zend_language_scanner.c"
3253
3.47k
yy114:
3254
3.47k
    YYDEBUG(114, *YYCURSOR);
3255
3.47k
    ++YYCURSOR;
3256
3.47k
    YYDEBUG(115, *YYCURSOR);
3257
3.47k
    yyleng = YYCURSOR - SCNG(yy_text);
3258
3.47k
#line 1862 "Zend/zend_language_scanner.l"
3259
3.47k
    {
3260
3.47k
  RETURN_TOKEN(T_PLUS_EQUAL);
3261
3.47k
}
3262
0
#line 3263 "Zend/zend_language_scanner.c"
3263
3.85k
yy116:
3264
3.85k
    YYDEBUG(116, *YYCURSOR);
3265
3.85k
    ++YYCURSOR;
3266
3.85k
    YYDEBUG(117, *YYCURSOR);
3267
3.85k
    yyleng = YYCURSOR - SCNG(yy_text);
3268
3.85k
#line 1830 "Zend/zend_language_scanner.l"
3269
3.85k
    {
3270
3.85k
  RETURN_TOKEN(T_DEC);
3271
3.85k
}
3272
0
#line 3273 "Zend/zend_language_scanner.c"
3273
1.90k
yy118:
3274
1.90k
    YYDEBUG(118, *YYCURSOR);
3275
1.90k
    ++YYCURSOR;
3276
1.90k
    YYDEBUG(119, *YYCURSOR);
3277
1.90k
    yyleng = YYCURSOR - SCNG(yy_text);
3278
1.90k
#line 1866 "Zend/zend_language_scanner.l"
3279
1.90k
    {
3280
1.90k
  RETURN_TOKEN(T_MINUS_EQUAL);
3281
1.90k
}
3282
0
#line 3283 "Zend/zend_language_scanner.c"
3283
55.6k
yy120:
3284
55.6k
    YYDEBUG(120, *YYCURSOR);
3285
55.6k
    ++YYCURSOR;
3286
55.6k
    YYDEBUG(121, *YYCURSOR);
3287
55.6k
    yyleng = YYCURSOR - SCNG(yy_text);
3288
55.6k
#line 1587 "Zend/zend_language_scanner.l"
3289
55.6k
    {
3290
55.6k
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
3291
55.6k
  RETURN_TOKEN(T_OBJECT_OPERATOR);
3292
55.6k
}
3293
0
#line 3294 "Zend/zend_language_scanner.c"
3294
3.37k
yy122:
3295
3.37k
    YYDEBUG(122, *YYCURSOR);
3296
3.37k
    yych = *++YYCURSOR;
3297
3.37k
    if (yych == '.') goto yy245;
3298
968
    goto yy86;
3299
90.7k
yy123:
3300
90.7k
    YYDEBUG(123, *YYCURSOR);
3301
90.7k
    yyaccept = 5;
3302
90.7k
    YYMARKER = ++YYCURSOR;
3303
90.7k
    YYFILL(2);
3304
90.7k
    yych = *YYCURSOR;
3305
107k
yy124:
3306
107k
    YYDEBUG(124, *YYCURSOR);
3307
107k
    if (yych <= 'E') {
3308
101k
      if (yych <= '/') goto yy125;
3309
89.8k
      if (yych <= '9') goto yy123;
3310
4.54k
      if (yych >= 'E') goto yy135;
3311
5.69k
    } else {
3312
5.69k
      if (yych <= '_') {
3313
2.80k
        if (yych >= '_') goto yy247;
3314
2.88k
      } else {
3315
2.88k
        if (yych == 'e') goto yy135;
3316
2.88k
      }
3317
5.69k
    }
3318
25.1k
yy125:
3319
25.1k
    YYDEBUG(125, *YYCURSOR);
3320
25.1k
    yyleng = YYCURSOR - SCNG(yy_text);
3321
25.1k
#line 2233 "Zend/zend_language_scanner.l"
3322
25.1k
    {
3323
25.1k
  const char *end;
3324
25.1k
  size_t len = yyleng;
3325
25.1k
  char *dnum = yytext;
3326
25.1k
  bool contains_underscores = (memchr(dnum, '_', len) != NULL);
3327
3328
25.1k
  if (contains_underscores) {
3329
143
    dnum = estrndup(dnum, len);
3330
143
    strip_underscores(dnum, &len);
3331
143
  }
3332
3333
25.1k
  ZVAL_DOUBLE(zendlval, zend_strtod(dnum, &end));
3334
  /* errno isn't checked since we allow HUGE_VAL/INF overflow */
3335
25.1k
  ZEND_ASSERT(end == dnum + len);
3336
25.1k
  if (contains_underscores) {
3337
143
    efree(dnum);
3338
143
  }
3339
25.1k
  RETURN_TOKEN_WITH_VAL(T_DNUMBER);
3340
25.1k
}
3341
0
#line 3342 "Zend/zend_language_scanner.c"
3342
67.2k
yy126:
3343
67.2k
    YYDEBUG(126, *YYCURSOR);
3344
67.2k
    ++YYCURSOR;
3345
67.2k
    YYDEBUG(127, *YYCURSOR);
3346
67.2k
    yyleng = YYCURSOR - SCNG(yy_text);
3347
67.2k
#line 1886 "Zend/zend_language_scanner.l"
3348
67.2k
    {
3349
67.2k
  RETURN_TOKEN(T_CONCAT_EQUAL);
3350
67.2k
}
3351
0
#line 3352 "Zend/zend_language_scanner.c"
3352
66.5k
yy128:
3353
66.5k
    YYDEBUG(128, *YYCURSOR);
3354
66.5k
    yyaccept = 6;
3355
66.5k
    yych = *(YYMARKER = ++YYCURSOR);
3356
66.5k
    if (yych == '*') goto yy248;
3357
66.5k
yy129:
3358
66.5k
    YYDEBUG(129, *YYCURSOR);
3359
66.5k
    yyleng = YYCURSOR - SCNG(yy_text);
3360
66.5k
#line 2484 "Zend/zend_language_scanner.l"
3361
66.5k
    {
3362
66.5k
  int doc_com;
3363
3364
66.5k
  if (yyleng > 2) {
3365
695
    doc_com = 1;
3366
695
    RESET_DOC_COMMENT();
3367
65.8k
  } else {
3368
65.8k
    doc_com = 0;
3369
65.8k
  }
3370
3371
6.98M
  while (YYCURSOR < YYLIMIT) {
3372
6.97M
    if (*YYCURSOR++ == '*' && *YYCURSOR == '/') {
3373
60.1k
      break;
3374
60.1k
    }
3375
6.97M
  }
3376
3377
66.5k
  if (YYCURSOR < YYLIMIT) {
3378
60.1k
    YYCURSOR++;
3379
60.1k
  } else {
3380
6.35k
    zend_throw_exception_ex(zend_ce_parse_error, 0, "Unterminated comment starting line %" PRIu32, CG(zend_lineno));
3381
6.35k
    if (PARSER_MODE()) {
3382
75
      RETURN_TOKEN(T_ERROR);
3383
75
    }
3384
6.35k
  }
3385
3386
66.4k
  yyleng = YYCURSOR - SCNG(yy_text);
3387
66.4k
  HANDLE_NEWLINES(yytext, yyleng);
3388
3389
66.4k
  if (doc_com) {
3390
686
    CG(doc_comment) = zend_string_init(yytext, yyleng, 0);
3391
686
    RETURN_OR_SKIP_TOKEN(T_DOC_COMMENT);
3392
686
  }
3393
3394
65.7k
  RETURN_OR_SKIP_TOKEN(T_COMMENT);
3395
65.7k
}
3396
0
#line 3397 "Zend/zend_language_scanner.c"
3397
41.5k
yy130:
3398
41.5k
    YYDEBUG(130, *YYCURSOR);
3399
41.5k
    ++YYCURSOR;
3400
41.5k
    goto yy13;
3401
253
yy131:
3402
253
    YYDEBUG(131, *YYCURSOR);
3403
253
    ++YYCURSOR;
3404
253
    YYDEBUG(132, *YYCURSOR);
3405
253
    yyleng = YYCURSOR - SCNG(yy_text);
3406
253
#line 1882 "Zend/zend_language_scanner.l"
3407
253
    {
3408
253
  RETURN_TOKEN(T_DIV_EQUAL);
3409
253
}
3410
0
#line 3411 "Zend/zend_language_scanner.c"
3411
16.6k
yy133:
3412
16.6k
    YYDEBUG(133, *YYCURSOR);
3413
16.6k
    yyaccept = 5;
3414
16.6k
    yych = *(YYMARKER = ++YYCURSOR);
3415
16.6k
    if (yych == '_') goto yy125;
3416
16.6k
    goto yy124;
3417
16.6k
yy134:
3418
1.08k
    YYDEBUG(134, *YYCURSOR);
3419
1.08k
    ++YYCURSOR;
3420
1.08k
    YYFILL(1);
3421
1.08k
    yych = *YYCURSOR;
3422
1.08k
    if (yybm[0+yych] & 8) {
3423
821
      goto yy249;
3424
821
    }
3425
260
    goto yy86;
3426
4.98k
yy135:
3427
4.98k
    YYDEBUG(135, *YYCURSOR);
3428
4.98k
    yych = *++YYCURSOR;
3429
4.98k
    if (yych <= ',') {
3430
240
      if (yych == '+') goto yy252;
3431
224
      goto yy86;
3432
4.74k
    } else {
3433
4.74k
      if (yych <= '-') goto yy252;
3434
2.51k
      if (yych <= '/') goto yy86;
3435
2.49k
      if (yych <= '9') goto yy253;
3436
1.24k
      goto yy86;
3437
2.49k
    }
3438
555
yy136:
3439
555
    YYDEBUG(136, *YYCURSOR);
3440
555
    ++YYCURSOR;
3441
555
    YYFILL(1);
3442
555
    yych = *YYCURSOR;
3443
555
    if (yybm[0+yych] & 16) {
3444
360
      goto yy255;
3445
360
    }
3446
195
    goto yy86;
3447
2.76k
yy137:
3448
2.76k
    YYDEBUG(137, *YYCURSOR);
3449
2.76k
    ++YYCURSOR;
3450
2.76k
    YYFILL(1);
3451
2.76k
    yych = *YYCURSOR;
3452
2.76k
    if (yybm[0+yych] & 32) {
3453
2.70k
      goto yy258;
3454
2.70k
    }
3455
67
    goto yy86;
3456
1.09k
yy138:
3457
1.09k
    YYDEBUG(138, *YYCURSOR);
3458
1.09k
    ++YYCURSOR;
3459
1.09k
    YYFILL(1);
3460
1.09k
    yych = *YYCURSOR;
3461
1.09k
    if (yybm[256+yych] & 64) {
3462
577
      goto yy32;
3463
577
    }
3464
516
    goto yy86;
3465
25.6k
yy139:
3466
25.6k
    YYDEBUG(139, *YYCURSOR);
3467
25.6k
    ++YYCURSOR;
3468
25.6k
    YYDEBUG(140, *YYCURSOR);
3469
25.6k
    yyleng = YYCURSOR - SCNG(yy_text);
3470
25.6k
#line 1614 "Zend/zend_language_scanner.l"
3471
25.6k
    {
3472
25.6k
  RETURN_TOKEN(T_PAAMAYIM_NEKUDOTAYIM);
3473
25.6k
}
3474
0
#line 3475 "Zend/zend_language_scanner.c"
3475
1.50M
yy141:
3476
1.50M
    YYDEBUG(141, *YYCURSOR);
3477
1.50M
    yyaccept = 7;
3478
1.50M
    yych = *(YYMARKER = ++YYCURSOR);
3479
1.50M
    if (yych <= ';') goto yy142;
3480
1.46M
    if (yych <= '<') goto yy261;
3481
90.5k
    if (yych <= '=') goto yy263;
3482
259k
yy142:
3483
259k
    YYDEBUG(142, *YYCURSOR);
3484
259k
    yyleng = YYCURSOR - SCNG(yy_text);
3485
259k
#line 1942 "Zend/zend_language_scanner.l"
3486
259k
    {
3487
259k
  RETURN_TOKEN(T_SL);
3488
259k
}
3489
0
#line 3490 "Zend/zend_language_scanner.c"
3490
1.74k
yy143:
3491
1.74k
    YYDEBUG(143, *YYCURSOR);
3492
1.74k
    yych = *++YYCURSOR;
3493
1.74k
    if (yych == '>') goto yy265;
3494
1.70k
    YYDEBUG(144, *YYCURSOR);
3495
1.70k
    yyleng = YYCURSOR - SCNG(yy_text);
3496
1.70k
#line 1854 "Zend/zend_language_scanner.l"
3497
1.70k
    {
3498
1.70k
  RETURN_TOKEN(T_IS_SMALLER_OR_EQUAL);
3499
1.70k
}
3500
0
#line 3501 "Zend/zend_language_scanner.c"
3501
3.15k
yy145:
3502
3.15k
    YYDEBUG(145, *YYCURSOR);
3503
3.15k
    ++YYCURSOR;
3504
3.15k
    goto yy76;
3505
23.3k
yy146:
3506
23.3k
    YYDEBUG(146, *YYCURSOR);
3507
23.3k
    yych = *++YYCURSOR;
3508
23.3k
    if (yych == '=') goto yy267;
3509
9.24k
    YYDEBUG(147, *YYCURSOR);
3510
9.24k
    yyleng = YYCURSOR - SCNG(yy_text);
3511
9.24k
#line 1842 "Zend/zend_language_scanner.l"
3512
9.24k
    {
3513
9.24k
  RETURN_TOKEN(T_IS_EQUAL);
3514
9.24k
}
3515
0
#line 3516 "Zend/zend_language_scanner.c"
3516
15.1k
yy148:
3517
15.1k
    YYDEBUG(148, *YYCURSOR);
3518
15.1k
    ++YYCURSOR;
3519
15.1k
    YYDEBUG(149, *YYCURSOR);
3520
15.1k
    yyleng = YYCURSOR - SCNG(yy_text);
3521
15.1k
#line 1810 "Zend/zend_language_scanner.l"
3522
15.1k
    {
3523
15.1k
  RETURN_TOKEN(T_DOUBLE_ARROW);
3524
15.1k
}
3525
0
#line 3526 "Zend/zend_language_scanner.c"
3526
626
yy150:
3527
626
    YYDEBUG(150, *YYCURSOR);
3528
626
    ++YYCURSOR;
3529
626
    YYDEBUG(151, *YYCURSOR);
3530
626
    yyleng = YYCURSOR - SCNG(yy_text);
3531
626
#line 1858 "Zend/zend_language_scanner.l"
3532
626
    {
3533
626
  RETURN_TOKEN(T_IS_GREATER_OR_EQUAL);
3534
626
}
3535
0
#line 3536 "Zend/zend_language_scanner.c"
3536
3.04k
yy152:
3537
3.04k
    YYDEBUG(152, *YYCURSOR);
3538
3.04k
    yych = *++YYCURSOR;
3539
3.04k
    if (yych == '=') goto yy269;
3540
1.94k
    YYDEBUG(153, *YYCURSOR);
3541
1.94k
    yyleng = YYCURSOR - SCNG(yy_text);
3542
1.94k
#line 1946 "Zend/zend_language_scanner.l"
3543
1.94k
    {
3544
1.94k
  RETURN_TOKEN(T_SR);
3545
1.94k
}
3546
0
#line 3547 "Zend/zend_language_scanner.c"
3547
13.0k
yy154:
3548
13.0k
    YYDEBUG(154, *YYCURSOR);
3549
13.0k
    yych = *++YYCURSOR;
3550
13.0k
    if (yych == '>') goto yy271;
3551
735
    goto yy86;
3552
36.5k
yy155:
3553
36.5k
    YYDEBUG(155, *YYCURSOR);
3554
36.5k
    yych = *++YYCURSOR;
3555
36.5k
    if (yych == '\n') goto yy273;
3556
33.7k
    if (yych == '\r') goto yy274;
3557
36.5k
yy156:
3558
36.5k
    YYDEBUG(156, *YYCURSOR);
3559
36.5k
    yyleng = YYCURSOR - SCNG(yy_text);
3560
36.5k
#line 2526 "Zend/zend_language_scanner.l"
3561
36.5k
    {
3562
36.5k
  BEGIN(INITIAL);
3563
36.5k
  if (yytext[yyleng-1] != '>') {
3564
2.94k
    CG(increment_lineno) = 1;
3565
2.94k
  }
3566
36.5k
  if (PARSER_MODE()) {
3567
32.0k
    RETURN_TOKEN(';');  /* implicit ';' at php-end tag */
3568
32.0k
  }
3569
4.50k
  RETURN_TOKEN(T_CLOSE_TAG);
3570
4.50k
}
3571
0
#line 3572 "Zend/zend_language_scanner.c"
3572
4.88k
yy157:
3573
4.88k
    YYDEBUG(157, *YYCURSOR);
3574
4.88k
    yych = *++YYCURSOR;
3575
4.88k
    if (yych == '=') goto yy275;
3576
4.02k
    YYDEBUG(158, *YYCURSOR);
3577
4.02k
    yyleng = YYCURSOR - SCNG(yy_text);
3578
4.02k
#line 1622 "Zend/zend_language_scanner.l"
3579
4.02k
    {
3580
4.02k
  RETURN_TOKEN(T_COALESCE);
3581
4.02k
}
3582
0
#line 3583 "Zend/zend_language_scanner.c"
3583
3.43k
yy159:
3584
3.43k
    YYDEBUG(159, *YYCURSOR);
3585
3.43k
    yyaccept = 4;
3586
3.43k
    yych = *(YYMARKER = ++YYCURSOR);
3587
3.43k
    if (yych == 'S') goto yy277;
3588
3.22k
    if (yych == 's') goto yy277;
3589
1.71k
    goto yy48;
3590
4.93k
yy160:
3591
4.93k
    YYDEBUG(160, *YYCURSOR);
3592
4.93k
    yyaccept = 4;
3593
4.93k
    yych = *(YYMARKER = ++YYCURSOR);
3594
4.93k
    if (yych == 'D') goto yy278;
3595
4.54k
    if (yych == 'd') goto yy278;
3596
811
    goto yy48;
3597
15.6k
yy161:
3598
15.6k
    YYDEBUG(161, *YYCURSOR);
3599
15.6k
    yyaccept = 4;
3600
15.6k
    yych = *(YYMARKER = ++YYCURSOR);
3601
15.6k
    if (yych == 'R') goto yy280;
3602
15.4k
    if (yych == 'r') goto yy280;
3603
3.40k
    goto yy48;
3604
15.6k
yy162:
3605
15.6k
    YYDEBUG(162, *YYCURSOR);
3606
15.6k
    yyaccept = 8;
3607
15.6k
    yych = *(YYMARKER = ++YYCURSOR);
3608
15.6k
    if (yybm[256+yych] & 128) {
3609
4.70k
      goto yy47;
3610
4.70k
    }
3611
10.9k
    if (yych == '\\') goto yy164;
3612
10.9k
yy163:
3613
10.9k
    YYDEBUG(163, *YYCURSOR);
3614
10.9k
    yyleng = YYCURSOR - SCNG(yy_text);
3615
10.9k
#line 1510 "Zend/zend_language_scanner.l"
3616
10.9k
    {
3617
10.9k
  RETURN_TOKEN_WITH_IDENT(T_AS);
3618
10.9k
}
3619
0
#line 3620 "Zend/zend_language_scanner.c"
3620
18.6k
yy164:
3621
18.6k
    YYDEBUG(164, *YYCURSOR);
3622
18.6k
    ++YYCURSOR;
3623
18.6k
    YYFILL(1);
3624
18.6k
    yych = *YYCURSOR;
3625
18.6k
    if (yych <= '_') {
3626
10.2k
      if (yych <= '@') goto yy86;
3627
8.99k
      if (yych <= 'Z') goto yy281;
3628
1.96k
      if (yych <= '^') goto yy86;
3629
231
      goto yy281;
3630
8.38k
    } else {
3631
8.38k
      if (yych <= '`') goto yy86;
3632
8.34k
      if (yych <= 'z') goto yy281;
3633
3.16k
      if (yych <= 0x7F) goto yy86;
3634
1.20k
      goto yy281;
3635
3.16k
    }
3636
3.20k
yy165:
3637
3.20k
    YYDEBUG(165, *YYCURSOR);
3638
3.20k
    yych = *++YYCURSOR;
3639
3.20k
    if (yych == '<') goto yy284;
3640
530
    goto yy86;
3641
1.41k
yy166:
3642
1.41k
    YYDEBUG(166, *YYCURSOR);
3643
1.41k
    yyaccept = 4;
3644
1.41k
    yych = *(YYMARKER = ++YYCURSOR);
3645
1.41k
    if (yych == 'E') goto yy285;
3646
1.31k
    if (yych == 'e') goto yy285;
3647
244
    goto yy48;
3648
39.2k
yy167:
3649
39.2k
    YYDEBUG(167, *YYCURSOR);
3650
39.2k
    yyaccept = 4;
3651
39.2k
    yych = *(YYMARKER = ++YYCURSOR);
3652
39.2k
    if (yych <= 'T') {
3653
821
      if (yych <= 'L') {
3654
711
        if (yych <= 'K') goto yy48;
3655
108
        goto yy286;
3656
711
      } else {
3657
110
        if (yych <= 'R') goto yy48;
3658
68
        if (yych <= 'S') goto yy287;
3659
31
        goto yy288;
3660
68
      }
3661
38.4k
    } else {
3662
38.4k
      if (yych <= 'r') {
3663
5.62k
        if (yych == 'l') goto yy286;
3664
166
        goto yy48;
3665
32.8k
      } else {
3666
32.8k
        if (yych <= 's') goto yy287;
3667
30.1k
        if (yych <= 't') goto yy288;
3668
212
        goto yy48;
3669
30.1k
      }
3670
38.4k
    }
3671
36.1k
yy168:
3672
36.1k
    YYDEBUG(168, *YYCURSOR);
3673
36.1k
    yyaccept = 4;
3674
36.1k
    yych = *(YYMARKER = ++YYCURSOR);
3675
36.1k
    if (yych <= 'O') {
3676
2.50k
      if (yych == 'A') goto yy289;
3677
1.06k
      if (yych <= 'N') goto yy48;
3678
386
      goto yy290;
3679
33.6k
    } else {
3680
33.6k
      if (yych <= 'a') {
3681
30.9k
        if (yych <= '`') goto yy48;
3682
30.8k
        goto yy289;
3683
30.9k
      } else {
3684
2.69k
        if (yych == 'o') goto yy290;
3685
557
        goto yy48;
3686
2.69k
      }
3687
33.6k
    }
3688
30.0k
yy169:
3689
30.0k
    YYDEBUG(169, *YYCURSOR);
3690
30.0k
    yyaccept = 4;
3691
30.0k
    yych = *(YYMARKER = ++YYCURSOR);
3692
30.0k
    if (yych == 'N') goto yy291;
3693
28.1k
    if (yych == 'n') goto yy291;
3694
3.00k
    goto yy48;
3695
6.74k
yy170:
3696
6.74k
    YYDEBUG(170, *YYCURSOR);
3697
6.74k
    yyaccept = 4;
3698
6.74k
    yych = *(YYMARKER = ++YYCURSOR);
3699
6.74k
    if (yych <= 'F') {
3700
1.09k
      if (yych == 'C') goto yy292;
3701
992
      if (yych <= 'E') goto yy48;
3702
360
      goto yy293;
3703
5.65k
    } else {
3704
5.65k
      if (yych <= 'c') {
3705
2.26k
        if (yych <= 'b') goto yy48;
3706
576
        goto yy292;
3707
3.38k
      } else {
3708
3.38k
        if (yych == 'f') goto yy293;
3709
1.83k
        goto yy48;
3710
3.38k
      }
3711
5.65k
    }
3712
1.33k
yy171:
3713
1.33k
    YYDEBUG(171, *YYCURSOR);
3714
1.33k
    yyaccept = 4;
3715
1.33k
    yych = *(YYMARKER = ++YYCURSOR);
3716
1.33k
    if (yych == 'E') goto yy294;
3717
1.29k
    if (yych == 'e') goto yy294;
3718
599
    goto yy48;
3719
4.24k
yy172:
3720
4.24k
    YYDEBUG(172, *YYCURSOR);
3721
4.24k
    yyaccept = 9;
3722
4.24k
    yych = *(YYMARKER = ++YYCURSOR);
3723
4.24k
    if (yybm[256+yych] & 128) {
3724
3.53k
      goto yy47;
3725
3.53k
    }
3726
703
    if (yych == '\\') goto yy164;
3727
703
yy173:
3728
703
    YYDEBUG(173, *YYCURSOR);
3729
703
    yyleng = YYCURSOR - SCNG(yy_text);
3730
703
#line 1478 "Zend/zend_language_scanner.l"
3731
703
    {
3732
703
  RETURN_TOKEN_WITH_IDENT(T_DO);
3733
703
}
3734
0
#line 3735 "Zend/zend_language_scanner.c"
3735
41.2k
yy174:
3736
41.2k
    YYDEBUG(174, *YYCURSOR);
3737
41.2k
    yyaccept = 4;
3738
41.2k
    yych = *(YYMARKER = ++YYCURSOR);
3739
41.2k
    if (yych == 'H') goto yy296;
3740
41.0k
    if (yych == 'h') goto yy296;
3741
1.32k
    goto yy48;
3742
3.71k
yy175:
3743
3.71k
    YYDEBUG(175, *YYCURSOR);
3744
3.71k
    yyaccept = 4;
3745
3.71k
    yych = *(YYMARKER = ++YYCURSOR);
3746
3.71k
    if (yych == 'S') goto yy297;
3747
3.33k
    if (yych == 's') goto yy297;
3748
1.10k
    goto yy48;
3749
2.59k
yy176:
3750
2.59k
    YYDEBUG(176, *YYCURSOR);
3751
2.59k
    yyaccept = 4;
3752
2.59k
    yych = *(YYMARKER = ++YYCURSOR);
3753
2.59k
    if (yych == 'P') goto yy298;
3754
2.45k
    if (yych == 'p') goto yy298;
3755
1.54k
    goto yy48;
3756
101k
yy177:
3757
101k
    YYDEBUG(177, *YYCURSOR);
3758
101k
    yyaccept = 4;
3759
101k
    yych = *(YYMARKER = ++YYCURSOR);
3760
101k
    if (yych <= 'U') {
3761
10.7k
      if (yych == 'D') goto yy299;
3762
1.06k
      if (yych <= 'T') goto yy48;
3763
33
      goto yy300;
3764
91.0k
    } else {
3765
91.0k
      if (yych <= 'd') {
3766
8.95k
        if (yych <= 'c') goto yy48;
3767
8.38k
        goto yy299;
3768
82.0k
      } else {
3769
82.0k
        if (yych == 'u') goto yy300;
3770
2.75k
        goto yy48;
3771
82.0k
      }
3772
91.0k
    }
3773
1.36k
yy178:
3774
1.36k
    YYDEBUG(178, *YYCURSOR);
3775
1.36k
    yyaccept = 4;
3776
1.36k
    yych = *(YYMARKER = ++YYCURSOR);
3777
1.36k
    if (yych == 'A') goto yy301;
3778
1.24k
    if (yych == 'a') goto yy301;
3779
175
    goto yy48;
3780
29.9k
yy179:
3781
29.9k
    YYDEBUG(179, *YYCURSOR);
3782
29.9k
    yyaccept = 4;
3783
29.9k
    yych = *(YYMARKER = ++YYCURSOR);
3784
29.9k
    if (yych <= 'T') {
3785
6.99k
      if (yych == 'I') goto yy302;
3786
6.75k
      if (yych <= 'S') goto yy48;
3787
230
      goto yy303;
3788
22.9k
    } else {
3789
22.9k
      if (yych <= 'i') {
3790
14.5k
        if (yych <= 'h') goto yy48;
3791
325
        goto yy302;
3792
14.5k
      } else {
3793
8.42k
        if (yych == 't') goto yy303;
3794
816
        goto yy48;
3795
8.42k
      }
3796
22.9k
    }
3797
9.09k
yy180:
3798
9.09k
    YYDEBUG(180, *YYCURSOR);
3799
9.09k
    yyaccept = 4;
3800
9.09k
    yych = *(YYMARKER = ++YYCURSOR);
3801
9.09k
    if (yych == 'N') goto yy304;
3802
8.88k
    if (yych == 'n') goto yy304;
3803
4.70k
    goto yy48;
3804
4.70k
yy181:
3805
4.17k
    YYDEBUG(181, *YYCURSOR);
3806
4.17k
    yyaccept = 10;
3807
4.17k
    yych = *(YYMARKER = ++YYCURSOR);
3808
4.17k
    if (yybm[256+yych] & 128) {
3809
676
      goto yy47;
3810
676
    }
3811
3.49k
    if (yych == '\\') goto yy164;
3812
3.48k
yy182:
3813
3.48k
    YYDEBUG(182, *YYCURSOR);
3814
3.48k
    yyleng = YYCURSOR - SCNG(yy_text);
3815
3.48k
#line 1407 "Zend/zend_language_scanner.l"
3816
3.48k
    {
3817
3.48k
  RETURN_TOKEN_WITH_IDENT(T_FN);
3818
3.48k
}
3819
0
#line 3820 "Zend/zend_language_scanner.c"
3820
51.5k
yy183:
3821
51.5k
    YYDEBUG(183, *YYCURSOR);
3822
51.5k
    yyaccept = 4;
3823
51.5k
    yych = *(YYMARKER = ++YYCURSOR);
3824
51.5k
    if (yych == 'R') goto yy305;
3825
51.3k
    if (yych == 'r') goto yy305;
3826
28.4k
    goto yy48;
3827
55.0k
yy184:
3828
55.0k
    YYDEBUG(184, *YYCURSOR);
3829
55.0k
    yyaccept = 4;
3830
55.0k
    yych = *(YYMARKER = ++YYCURSOR);
3831
55.0k
    if (yych == 'N') goto yy307;
3832
54.4k
    if (yych == 'n') goto yy307;
3833
1.26k
    goto yy48;
3834
2.34k
yy185:
3835
2.34k
    YYDEBUG(185, *YYCURSOR);
3836
2.34k
    yyaccept = 4;
3837
2.34k
    yych = *(YYMARKER = ++YYCURSOR);
3838
2.34k
    if (yych == 'O') goto yy308;
3839
1.62k
    if (yych == 'o') goto yy308;
3840
304
    goto yy48;
3841
1.93k
yy186:
3842
1.93k
    YYDEBUG(186, *YYCURSOR);
3843
1.93k
    yyaccept = 4;
3844
1.93k
    yych = *(YYMARKER = ++YYCURSOR);
3845
1.93k
    if (yych == 'T') goto yy309;
3846
1.80k
    if (yych == 't') goto yy309;
3847
731
    goto yy48;
3848
8.85k
yy187:
3849
8.85k
    YYDEBUG(187, *YYCURSOR);
3850
8.85k
    yyaccept = 11;
3851
8.85k
    yych = *(YYMARKER = ++YYCURSOR);
3852
8.85k
    if (yybm[256+yych] & 128) {
3853
273
      goto yy47;
3854
273
    }
3855
8.58k
    if (yych == '\\') goto yy164;
3856
8.57k
yy188:
3857
8.57k
    YYDEBUG(188, *YYCURSOR);
3858
8.57k
    yyleng = YYCURSOR - SCNG(yy_text);
3859
8.57k
#line 1454 "Zend/zend_language_scanner.l"
3860
8.57k
    {
3861
8.57k
  RETURN_TOKEN_WITH_IDENT(T_IF);
3862
8.57k
}
3863
0
#line 3864 "Zend/zend_language_scanner.c"
3864
30.7k
yy189:
3865
30.7k
    YYDEBUG(189, *YYCURSOR);
3866
30.7k
    yyaccept = 4;
3867
30.7k
    yych = *(YYMARKER = ++YYCURSOR);
3868
30.7k
    if (yych == 'P') goto yy310;
3869
30.1k
    if (yych == 'p') goto yy310;
3870
7.87k
    goto yy48;
3871
37.1k
yy190:
3872
37.1k
    YYDEBUG(190, *YYCURSOR);
3873
37.1k
    yyaccept = 4;
3874
37.1k
    yych = *(YYMARKER = ++YYCURSOR);
3875
37.1k
    if (yych <= 'T') {
3876
11.2k
      if (yych <= 'C') {
3877
4.62k
        if (yych <= 'B') goto yy48;
3878
506
        goto yy311;
3879
6.61k
      } else {
3880
6.61k
        if (yych <= 'R') goto yy48;
3881
1.97k
        if (yych <= 'S') goto yy312;
3882
371
        goto yy313;
3883
1.97k
      }
3884
25.9k
    } else {
3885
25.9k
      if (yych <= 'r') {
3886
6.52k
        if (yych == 'c') goto yy311;
3887
4.72k
        goto yy48;
3888
19.3k
      } else {
3889
19.3k
        if (yych <= 's') goto yy312;
3890
16.8k
        if (yych <= 't') goto yy313;
3891
1.47k
        goto yy48;
3892
16.8k
      }
3893
25.9k
    }
3894
11.5k
yy191:
3895
11.5k
    YYDEBUG(191, *YYCURSOR);
3896
11.5k
    yyaccept = 4;
3897
11.5k
    yych = *(YYMARKER = ++YYCURSOR);
3898
11.5k
    if (yych == 'S') goto yy314;
3899
11.5k
    if (yych == 's') goto yy314;
3900
8.58k
    goto yy48;
3901
8.58k
yy192:
3902
2.29k
    YYDEBUG(192, *YYCURSOR);
3903
2.29k
    yyaccept = 4;
3904
2.29k
    yych = *(YYMARKER = ++YYCURSOR);
3905
2.29k
    if (yych == 'S') goto yy315;
3906
2.05k
    if (yych == 's') goto yy315;
3907
1.24k
    goto yy48;
3908
3.01k
yy193:
3909
3.01k
    YYDEBUG(193, *YYCURSOR);
3910
3.01k
    yyaccept = 4;
3911
3.01k
    yych = *(YYMARKER = ++YYCURSOR);
3912
3.01k
    if (yych == 'T') goto yy316;
3913
3.01k
    if (yych == 't') goto yy316;
3914
2.43k
    goto yy48;
3915
7.59k
yy194:
3916
7.59k
    YYDEBUG(194, *YYCURSOR);
3917
7.59k
    yyaccept = 4;
3918
7.59k
    yych = *(YYMARKER = ++YYCURSOR);
3919
7.59k
    if (yych == 'M') goto yy317;
3920
6.42k
    if (yych == 'm') goto yy317;
3921
266
    goto yy48;
3922
47.4k
yy195:
3923
47.4k
    YYDEBUG(195, *YYCURSOR);
3924
47.4k
    yyaccept = 4;
3925
47.4k
    yych = *(YYMARKER = ++YYCURSOR);
3926
47.4k
    if (yych == 'W') goto yy318;
3927
47.2k
    if (yych == 'w') goto yy318;
3928
4.61k
    goto yy48;
3929
4.61k
yy196:
3930
3.47k
    YYDEBUG(196, *YYCURSOR);
3931
3.47k
    yyaccept = 12;
3932
3.47k
    yych = *(YYMARKER = ++YYCURSOR);
3933
3.47k
    if (yybm[256+yych] & 128) {
3934
350
      goto yy47;
3935
350
    }
3936
3.12k
    if (yych == '\\') goto yy164;
3937
3.12k
yy197:
3938
3.12k
    YYDEBUG(197, *YYCURSOR);
3939
3.12k
    yyleng = YYCURSOR - SCNG(yy_text);
3940
3.12k
#line 1930 "Zend/zend_language_scanner.l"
3941
3.12k
    {
3942
3.12k
  RETURN_TOKEN_WITH_IDENT(T_LOGICAL_OR);
3943
3.12k
}
3944
0
#line 3945 "Zend/zend_language_scanner.c"
3945
14.8k
yy198:
3946
14.8k
    YYDEBUG(198, *YYCURSOR);
3947
14.8k
    yyaccept = 4;
3948
14.8k
    yych = *(YYMARKER = ++YYCURSOR);
3949
14.8k
    if (yych <= 'O') {
3950
868
      if (yych == 'I') goto yy320;
3951
420
      if (yych <= 'N') goto yy48;
3952
200
      goto yy321;
3953
13.9k
    } else {
3954
13.9k
      if (yych <= 'i') {
3955
10.6k
        if (yych <= 'h') goto yy48;
3956
8.30k
        goto yy320;
3957
10.6k
      } else {
3958
3.33k
        if (yych == 'o') goto yy321;
3959
182
        goto yy48;
3960
3.33k
      }
3961
13.9k
    }
3962
30.5k
yy199:
3963
30.5k
    YYDEBUG(199, *YYCURSOR);
3964
30.5k
    yyaccept = 4;
3965
30.5k
    yych = *(YYMARKER = ++YYCURSOR);
3966
30.5k
    if (yych == 'B') goto yy322;
3967
30.2k
    if (yych == 'b') goto yy322;
3968
3.66k
    goto yy48;
3969
36.8k
yy200:
3970
36.8k
    YYDEBUG(200, *YYCURSOR);
3971
36.8k
    yyaccept = 4;
3972
36.8k
    yych = *(YYMARKER = ++YYCURSOR);
3973
36.8k
    if (yych <= 'T') {
3974
1.21k
      if (yych <= 'P') {
3975
597
        if (yych == 'A') goto yy323;
3976
571
        goto yy48;
3977
616
      } else {
3978
616
        if (yych <= 'Q') goto yy324;
3979
242
        if (yych <= 'S') goto yy48;
3980
145
        goto yy325;
3981
242
      }
3982
35.6k
    } else {
3983
35.6k
      if (yych <= 'p') {
3984
3.67k
        if (yych == 'a') goto yy323;
3985
2.28k
        goto yy48;
3986
31.9k
      } else {
3987
31.9k
        if (yych <= 'q') goto yy324;
3988
16.9k
        if (yych == 't') goto yy325;
3989
4.50k
        goto yy48;
3990
16.9k
      }
3991
35.6k
    }
3992
28.5k
yy201:
3993
28.5k
    YYDEBUG(201, *YYCURSOR);
3994
28.5k
    yyaccept = 4;
3995
28.5k
    yych = *(YYMARKER = ++YYCURSOR);
3996
28.5k
    if (yych == 'A') goto yy326;
3997
28.3k
    if (yych == 'a') goto yy326;
3998
19.5k
    goto yy48;
3999
19.5k
yy202:
4000
4.05k
    YYDEBUG(202, *YYCURSOR);
4001
4.05k
    yyaccept = 4;
4002
4.05k
    yych = *(YYMARKER = ++YYCURSOR);
4003
4.05k
    if (yych == 'I') goto yy327;
4004
3.75k
    if (yych == 'i') goto yy327;
4005
430
    goto yy48;
4006
10.7k
yy203:
4007
10.7k
    YYDEBUG(203, *YYCURSOR);
4008
10.7k
    yyaccept = 4;
4009
10.7k
    yych = *(YYMARKER = ++YYCURSOR);
4010
10.7k
    if (yych == 'R') goto yy328;
4011
10.5k
    if (yych == 'r') goto yy328;
4012
1.93k
    goto yy48;
4013
43.3k
yy204:
4014
43.3k
    YYDEBUG(204, *YYCURSOR);
4015
43.3k
    yyaccept = 4;
4016
43.3k
    yych = *(YYMARKER = ++YYCURSOR);
4017
43.3k
    if (yych <= 'Y') {
4018
2.65k
      if (yych == 'A') goto yy329;
4019
1.35k
      if (yych <= 'X') goto yy48;
4020
174
      goto yy330;
4021
40.7k
    } else {
4022
40.7k
      if (yych <= 'a') {
4023
2.90k
        if (yych <= '`') goto yy48;
4024
2.82k
        goto yy329;
4025
37.8k
      } else {
4026
37.8k
        if (yych == 'y') goto yy330;
4027
3.27k
        goto yy48;
4028
37.8k
      }
4029
40.7k
    }
4030
6.64k
yy205:
4031
6.64k
    YYDEBUG(205, *YYCURSOR);
4032
6.64k
    yyaccept = 4;
4033
6.64k
    yych = *(YYMARKER = ++YYCURSOR);
4034
6.64k
    if (yych == 'S') goto yy332;
4035
6.61k
    if (yych == 's') goto yy332;
4036
1.26k
    goto yy48;
4037
5.56k
yy206:
4038
5.56k
    YYDEBUG(206, *YYCURSOR);
4039
5.56k
    yyaccept = 4;
4040
5.56k
    yych = *(YYMARKER = ++YYCURSOR);
4041
5.56k
    if (yych == 'E') goto yy333;
4042
5.30k
    if (yych == 'e') goto yy333;
4043
387
    goto yy48;
4044
52.0k
yy207:
4045
52.0k
    YYDEBUG(207, *YYCURSOR);
4046
52.0k
    yyaccept = 4;
4047
52.0k
    yych = *(YYMARKER = ++YYCURSOR);
4048
52.0k
    if (yych == 'R') goto yy335;
4049
51.7k
    if (yych == 'r') goto yy335;
4050
1.81k
    goto yy48;
4051
1.81k
yy208:
4052
732
    YYDEBUG(208, *YYCURSOR);
4053
732
    yyaccept = 4;
4054
732
    yych = *(YYMARKER = ++YYCURSOR);
4055
732
    if (yych == 'I') goto yy337;
4056
692
    if (yych == 'i') goto yy337;
4057
124
    goto yy48;
4058
2.31k
yy209:
4059
2.31k
    YYDEBUG(209, *YYCURSOR);
4060
2.31k
    yyaccept = 4;
4061
2.31k
    yych = *(YYMARKER = ++YYCURSOR);
4062
2.31k
    if (yych == 'R') goto yy338;
4063
2.17k
    if (yych == 'r') goto yy338;
4064
553
    goto yy48;
4065
25.3k
yy210:
4066
25.3k
    YYDEBUG(210, *YYCURSOR);
4067
25.3k
    yyaccept = 4;
4068
25.3k
    yych = *(YYMARKER = ++YYCURSOR);
4069
25.3k
    if (yych == 'E') goto yy340;
4070
22.1k
    if (yych == 'e') goto yy340;
4071
1.18k
    goto yy48;
4072
76.6k
yy211:
4073
76.6k
    YYDEBUG(211, *YYCURSOR);
4074
76.6k
    yyaccept = 13;
4075
76.6k
    YYMARKER = ++YYCURSOR;
4076
76.6k
    YYFILL(1);
4077
76.6k
    yych = *YYCURSOR;
4078
76.6k
    YYDEBUG(212, *YYCURSOR);
4079
76.6k
    if (yych <= '\\') {
4080
31.2k
      if (yych <= '@') {
4081
14.3k
        if (yych <= '/') goto yy213;
4082
7.05k
        if (yych <= '9') goto yy211;
4083
16.9k
      } else {
4084
16.9k
        if (yych <= 'Z') goto yy211;
4085
4.14k
        if (yych >= '\\') goto yy341;
4086
4.14k
      }
4087
45.3k
    } else {
4088
45.3k
      if (yych <= '`') {
4089
2.01k
        if (yych == '_') goto yy211;
4090
43.3k
      } else {
4091
43.3k
        if (yych <= 'z') goto yy211;
4092
5.67k
        if (yych >= 0x80) goto yy211;
4093
5.67k
      }
4094
45.3k
    }
4095
12.0k
yy213:
4096
12.0k
    YYDEBUG(213, *YYCURSOR);
4097
12.0k
    yyleng = YYCURSOR - SCNG(yy_text);
4098
12.0k
#line 2447 "Zend/zend_language_scanner.l"
4099
12.0k
    {
4100
12.0k
  RETURN_TOKEN_WITH_STR(T_NAME_FULLY_QUALIFIED, 1);
4101
12.0k
}
4102
0
#line 4103 "Zend/zend_language_scanner.c"
4103
65
yy214:
4104
65
    YYDEBUG(214, *YYCURSOR);
4105
65
    ++YYCURSOR;
4106
65
    YYDEBUG(215, *YYCURSOR);
4107
65
    yyleng = YYCURSOR - SCNG(yy_text);
4108
65
#line 1910 "Zend/zend_language_scanner.l"
4109
65
    {
4110
65
  RETURN_TOKEN(T_XOR_EQUAL);
4111
65
}
4112
0
#line 4113 "Zend/zend_language_scanner.c"
4113
47.0k
yy216:
4114
47.0k
    YYDEBUG(216, *YYCURSOR);
4115
47.0k
    yyaccept = 4;
4116
47.0k
    yych = *(YYMARKER = ++YYCURSOR);
4117
47.0k
    switch (yych) {
4118
906
    case 'C':
4119
6.91k
    case 'c': goto yy342;
4120
2.89k
    case 'D':
4121
4.28k
    case 'd': goto yy343;
4122
5.66k
    case 'F':
4123
6.06k
    case 'f': goto yy344;
4124
98
    case 'H':
4125
453
    case 'h': goto yy345;
4126
2.26k
    case 'L':
4127
2.28k
    case 'l': goto yy346;
4128
8.37k
    case 'M':
4129
8.71k
    case 'm': goto yy347;
4130
3.60k
    case 'N':
4131
3.67k
    case 'n': goto yy348;
4132
523
    case 'P':
4133
637
    case 'p': goto yy349;
4134
331
    case 'T':
4135
766
    case 't': goto yy350;
4136
13.2k
    default:  goto yy48;
4137
47.0k
    }
4138
1.07k
yy217:
4139
1.07k
    YYDEBUG(217, *YYCURSOR);
4140
1.07k
    ++YYCURSOR;
4141
1.07k
    YYDEBUG(218, *YYCURSOR);
4142
1.07k
    yyleng = YYCURSOR - SCNG(yy_text);
4143
1.07k
#line 1906 "Zend/zend_language_scanner.l"
4144
1.07k
    {
4145
1.07k
  RETURN_TOKEN(T_OR_EQUAL);
4146
1.07k
}
4147
0
#line 4148 "Zend/zend_language_scanner.c"
4148
1.03k
yy219:
4149
1.03k
    YYDEBUG(219, *YYCURSOR);
4150
1.03k
    ++YYCURSOR;
4151
1.03k
    YYDEBUG(220, *YYCURSOR);
4152
1.03k
    yyleng = YYCURSOR - SCNG(yy_text);
4153
1.03k
#line 1918 "Zend/zend_language_scanner.l"
4154
1.03k
    {
4155
1.03k
  RETURN_TOKEN(T_PIPE);
4156
1.03k
}
4157
0
#line 4158 "Zend/zend_language_scanner.c"
4158
14.4k
yy221:
4159
14.4k
    YYDEBUG(221, *YYCURSOR);
4160
14.4k
    ++YYCURSOR;
4161
14.4k
    YYDEBUG(222, *YYCURSOR);
4162
14.4k
    yyleng = YYCURSOR - SCNG(yy_text);
4163
14.4k
#line 1922 "Zend/zend_language_scanner.l"
4164
14.4k
    {
4165
14.4k
  RETURN_TOKEN(T_BOOLEAN_OR);
4166
14.4k
}
4167
0
#line 4168 "Zend/zend_language_scanner.c"
4168
574
yy223:
4169
574
    YYDEBUG(223, *YYCURSOR);
4170
574
    ++YYCURSOR;
4171
574
    YYDEBUG(224, *YYCURSOR);
4172
574
    yyleng = YYCURSOR - SCNG(yy_text);
4173
574
#line 1838 "Zend/zend_language_scanner.l"
4174
574
    {
4175
574
  RETURN_TOKEN(T_IS_NOT_IDENTICAL);
4176
574
}
4177
0
#line 4178 "Zend/zend_language_scanner.c"
4178
209k
yy225:
4179
209k
    YYDEBUG(225, *YYCURSOR);
4180
209k
    ++YYCURSOR;
4181
209k
    YYFILL(1);
4182
209k
    yych = *YYCURSOR;
4183
209k
    YYDEBUG(226, *YYCURSOR);
4184
209k
    if (yybm[0+yych] & 2) {
4185
175k
      goto yy225;
4186
175k
    }
4187
34.4k
    if (yych <= 0x00) goto yy86;
4188
30.6k
    goto yy84;
4189
55.0k
yy227:
4190
55.0k
    YYDEBUG(227, *YYCURSOR);
4191
55.0k
    ++YYCURSOR;
4192
55.0k
    YYFILL(1);
4193
55.0k
    yych = *YYCURSOR;
4194
55.0k
    YYDEBUG(228, *YYCURSOR);
4195
55.0k
    if (yych <= 0x1F) {
4196
1.13k
      if (yych <= '\t') {
4197
633
        if (yych <= 0x00) goto yy86;
4198
525
        if (yych <= 0x08) goto yy225;
4199
6
        goto yy227;
4200
525
      } else {
4201
502
        if (yych <= '\n') goto yy84;
4202
451
        if (yych == '\r') goto yy84;
4203
54
        goto yy225;
4204
451
      }
4205
53.9k
    } else {
4206
53.9k
      if (yych <= '$') {
4207
19.1k
        if (yych <= ' ') goto yy227;
4208
18.6k
        if (yych <= '"') goto yy225;
4209
18.5k
        if (yych <= '#') goto yy351;
4210
6.89k
        goto yy352;
4211
34.7k
      } else {
4212
34.7k
        if (yych <= '-') goto yy225;
4213
27.1k
        if (yych <= '.') goto yy353;
4214
17.3k
        if (yych <= '/') goto yy354;
4215
12.8k
        goto yy225;
4216
17.3k
      }
4217
53.9k
    }
4218
402
yy229:
4219
402
    YYDEBUG(229, *YYCURSOR);
4220
402
    yych = *++YYCURSOR;
4221
402
    if (yych == '.') goto yy88;
4222
263
    goto yy86;
4223
104k
yy230:
4224
104k
    YYDEBUG(230, *YYCURSOR);
4225
104k
    ++YYCURSOR;
4226
104k
    YYFILL(1);
4227
104k
    yych = *YYCURSOR;
4228
104k
    YYDEBUG(231, *YYCURSOR);
4229
104k
    if (yybm[0+yych] & 4) {
4230
100k
      goto yy230;
4231
100k
    }
4232
4.10k
    if (yych <= 0x00) goto yy86;
4233
3.20k
    goto yy355;
4234
6.60k
yy232:
4235
6.60k
    YYDEBUG(232, *YYCURSOR);
4236
6.60k
    yych = *++YYCURSOR;
4237
6.60k
    if (yych == 'R') goto yy357;
4238
6.59k
    if (yych == 'r') goto yy357;
4239
877
    goto yy86;
4240
877
yy233:
4241
448
    YYDEBUG(233, *YYCURSOR);
4242
448
    yych = *++YYCURSOR;
4243
448
    if (yych == 'N') goto yy358;
4244
436
    if (yych == 'n') goto yy358;
4245
209
    goto yy86;
4246
434
yy234:
4247
434
    YYDEBUG(234, *YYCURSOR);
4248
434
    yych = *++YYCURSOR;
4249
434
    if (yych == 'O') goto yy359;
4250
429
    if (yych == 'o') goto yy359;
4251
93
    goto yy86;
4252
187
yy235:
4253
187
    YYDEBUG(235, *YYCURSOR);
4254
187
    yych = *++YYCURSOR;
4255
187
    if (yych == 'U') goto yy360;
4256
187
    if (yych == 'u') goto yy360;
4257
12
    goto yy86;
4258
497
yy236:
4259
497
    YYDEBUG(236, *YYCURSOR);
4260
497
    yych = *++YYCURSOR;
4261
497
    if (yych == 'O') goto yy361;
4262
497
    if (yych == 'o') goto yy361;
4263
28
    goto yy86;
4264
4.69k
yy237:
4265
4.69k
    YYDEBUG(237, *YYCURSOR);
4266
4.69k
    yych = *++YYCURSOR;
4267
4.69k
    if (yych == 'T') goto yy362;
4268
4.68k
    if (yych == 't') goto yy362;
4269
2.18k
    goto yy86;
4270
2.18k
yy238:
4271
631
    YYDEBUG(238, *YYCURSOR);
4272
631
    yych = *++YYCURSOR;
4273
631
    if (yych == 'J') goto yy363;
4274
631
    if (yych == 'j') goto yy363;
4275
87
    goto yy86;
4276
765
yy239:
4277
765
    YYDEBUG(239, *YYCURSOR);
4278
765
    yych = *++YYCURSOR;
4279
765
    if (yych == 'A') goto yy364;
4280
765
    if (yych == 'a') goto yy364;
4281
683
    goto yy86;
4282
5.43k
yy240:
4283
5.43k
    YYDEBUG(240, *YYCURSOR);
4284
5.43k
    yych = *++YYCURSOR;
4285
5.43k
    if (yych == 'R') goto yy365;
4286
5.43k
    if (yych == 'r') goto yy365;
4287
313
    goto yy86;
4288
421
yy241:
4289
421
    YYDEBUG(241, *YYCURSOR);
4290
421
    yych = *++YYCURSOR;
4291
421
    if (yych == 'S') goto yy366;
4292
421
    if (yych == 's') goto yy366;
4293
136
    goto yy86;
4294
136
yy242:
4295
83
    YYDEBUG(242, *YYCURSOR);
4296
83
    yych = *++YYCURSOR;
4297
83
    if (yych == 'I') goto yy367;
4298
83
    if (yych == 'i') goto yy367;
4299
6
    goto yy86;
4300
121
yy243:
4301
121
    YYDEBUG(243, *YYCURSOR);
4302
121
    ++YYCURSOR;
4303
121
    YYDEBUG(244, *YYCURSOR);
4304
121
    yyleng = YYCURSOR - SCNG(yy_text);
4305
121
#line 1878 "Zend/zend_language_scanner.l"
4306
121
    {
4307
121
  RETURN_TOKEN(T_POW_EQUAL);
4308
121
}
4309
0
#line 4310 "Zend/zend_language_scanner.c"
4310
2.41k
yy245:
4311
2.41k
    YYDEBUG(245, *YYCURSOR);
4312
2.41k
    ++YYCURSOR;
4313
2.41k
    YYDEBUG(246, *YYCURSOR);
4314
2.41k
    yyleng = YYCURSOR - SCNG(yy_text);
4315
2.41k
#line 1618 "Zend/zend_language_scanner.l"
4316
2.41k
    {
4317
2.41k
  RETURN_TOKEN(T_ELLIPSIS);
4318
2.41k
}
4319
0
#line 4320 "Zend/zend_language_scanner.c"
4320
197
yy247:
4321
197
    YYDEBUG(247, *YYCURSOR);
4322
197
    ++YYCURSOR;
4323
197
    YYFILL(1);
4324
197
    yych = *YYCURSOR;
4325
197
    if (yych <= '/') goto yy86;
4326
164
    if (yych <= '9') goto yy123;
4327
60
    goto yy86;
4328
980
yy248:
4329
980
    YYDEBUG(248, *YYCURSOR);
4330
980
    yych = *++YYCURSOR;
4331
980
    if (yych <= '\f') {
4332
536
      if (yych <= 0x08) goto yy86;
4333
492
      if (yych <= '\n') goto yy368;
4334
0
      goto yy86;
4335
492
    } else {
4336
444
      if (yych <= '\r') goto yy368;
4337
417
      if (yych == ' ') goto yy368;
4338
241
      goto yy86;
4339
417
    }
4340
19.3k
yy249:
4341
19.3k
    YYDEBUG(249, *YYCURSOR);
4342
19.3k
    yyaccept = 14;
4343
19.3k
    YYMARKER = ++YYCURSOR;
4344
19.3k
    YYFILL(1);
4345
19.3k
    yych = *YYCURSOR;
4346
19.3k
    YYDEBUG(250, *YYCURSOR);
4347
19.3k
    if (yybm[0+yych] & 8) {
4348
18.5k
      goto yy249;
4349
18.5k
    }
4350
821
    if (yych == '_') goto yy134;
4351
787
yy251:
4352
787
    YYDEBUG(251, *YYCURSOR);
4353
787
    yyleng = YYCURSOR - SCNG(yy_text);
4354
787
#line 2011 "Zend/zend_language_scanner.l"
4355
787
    {
4356
  /* The +/- 2 skips "0b" */
4357
787
  size_t len = yyleng - 2;
4358
787
  char *end, *bin = yytext + 2;
4359
787
  bool contains_underscores;
4360
4361
  /* Skip any leading 0s */
4362
944
  while (len > 0 && (*bin == '0' || *bin == '_')) {
4363
157
    ++bin;
4364
157
    --len;
4365
157
  }
4366
4367
787
  contains_underscores = (memchr(bin, '_', len) != NULL);
4368
4369
787
  if (contains_underscores) {
4370
24
    bin = estrndup(bin, len);
4371
24
    strip_underscores(bin, &len);
4372
24
  }
4373
4374
787
  if (len < SIZEOF_ZEND_LONG * 8) {
4375
770
    if (len == 0) {
4376
59
      ZVAL_LONG(zendlval, 0);
4377
711
    } else {
4378
711
      errno = 0;
4379
711
      ZVAL_LONG(zendlval, ZEND_STRTOL(bin, &end, 2));
4380
711
      ZEND_ASSERT(!errno && end == bin + len);
4381
711
    }
4382
770
    if (contains_underscores) {
4383
24
      efree(bin);
4384
24
    }
4385
770
    RETURN_TOKEN_WITH_VAL(T_LNUMBER);
4386
770
  } else {
4387
17
    ZVAL_DOUBLE(zendlval, zend_bin_strtod(bin, (const char **)&end));
4388
    /* errno isn't checked since we allow HUGE_VAL/INF overflow */
4389
17
    ZEND_ASSERT(end == bin + len);
4390
17
    if (contains_underscores) {
4391
0
      efree(bin);
4392
0
    }
4393
17
    RETURN_TOKEN_WITH_VAL(T_DNUMBER);
4394
17
  }
4395
787
}
4396
0
#line 4397 "Zend/zend_language_scanner.c"
4397
2.83k
yy252:
4398
2.83k
    YYDEBUG(252, *YYCURSOR);
4399
2.83k
    ++YYCURSOR;
4400
2.83k
    YYFILL(1);
4401
2.83k
    yych = *YYCURSOR;
4402
2.83k
    if (yych <= '/') goto yy86;
4403
2.69k
    if (yych >= ':') goto yy86;
4404
10.1k
yy253:
4405
10.1k
    YYDEBUG(253, *YYCURSOR);
4406
10.1k
    yyaccept = 5;
4407
10.1k
    YYMARKER = ++YYCURSOR;
4408
10.1k
    YYFILL(1);
4409
10.1k
    yych = *YYCURSOR;
4410
10.1k
    YYDEBUG(254, *YYCURSOR);
4411
10.1k
    if (yych <= '/') goto yy125;
4412
8.27k
    if (yych <= '9') goto yy253;
4413
1.49k
    if (yych == '_') goto yy252;
4414
910
    goto yy125;
4415
1.02k
yy255:
4416
1.02k
    YYDEBUG(255, *YYCURSOR);
4417
1.02k
    yyaccept = 15;
4418
1.02k
    YYMARKER = ++YYCURSOR;
4419
1.02k
    YYFILL(1);
4420
1.02k
    yych = *YYCURSOR;
4421
1.02k
    YYDEBUG(256, *YYCURSOR);
4422
1.02k
    if (yybm[0+yych] & 16) {
4423
663
      goto yy255;
4424
663
    }
4425
360
    if (yych == '_') goto yy136;
4426
360
yy257:
4427
360
    YYDEBUG(257, *YYCURSOR);
4428
360
    yyleng = YYCURSOR - SCNG(yy_text);
4429
360
#line 2053 "Zend/zend_language_scanner.l"
4430
360
    {
4431
  /* The +/- 2 skips "0o" */
4432
360
  size_t len = yyleng - 2;
4433
360
  char *end, *octal = yytext + 2;
4434
360
  bool contains_underscores = (memchr(octal, '_', len) != NULL);
4435
4436
  /* Skip any leading 0s */
4437
1.11k
  while (len > 0 && (*octal == '0' || *octal == '_')) {
4438
756
    ++octal;
4439
756
    --len;
4440
756
  }
4441
4442
360
  if (len == 0) {
4443
300
    ZVAL_LONG(zendlval, 0);
4444
300
    RETURN_TOKEN_WITH_VAL(T_LNUMBER);
4445
300
  }
4446
4447
60
  if (contains_underscores) {
4448
0
    octal = estrndup(octal, len);
4449
0
    strip_underscores(octal, &len);
4450
0
  }
4451
4452
60
  errno = 0;
4453
4454
60
  ZVAL_LONG(zendlval, ZEND_STRTOL(octal, &end, 8));
4455
4456
60
  ZEND_ASSERT(end == octal + len);
4457
4458
60
  if (!errno) {
4459
60
    if (contains_underscores) {
4460
0
      efree(octal);
4461
0
    }
4462
60
    RETURN_TOKEN_WITH_VAL(T_LNUMBER);
4463
60
  }
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
22.7k
yy258:
4481
22.7k
    YYDEBUG(258, *YYCURSOR);
4482
22.7k
    yyaccept = 16;
4483
22.7k
    YYMARKER = ++YYCURSOR;
4484
22.7k
    YYFILL(1);
4485
22.7k
    yych = *YYCURSOR;
4486
22.7k
    YYDEBUG(259, *YYCURSOR);
4487
22.7k
    if (yybm[0+yych] & 32) {
4488
20.0k
      goto yy258;
4489
20.0k
    }
4490
2.70k
    if (yych == '_') goto yy137;
4491
2.58k
yy260:
4492
2.58k
    YYDEBUG(260, *YYCURSOR);
4493
2.58k
    yyleng = YYCURSOR - SCNG(yy_text);
4494
2.58k
#line 2166 "Zend/zend_language_scanner.l"
4495
2.58k
    {
4496
  /* The +/- 2 skips "0x" */
4497
2.58k
  size_t len = yyleng - 2;
4498
2.58k
  char *end, *hex = yytext + 2;
4499
2.58k
  bool contains_underscores;
4500
4501
  /* Skip any leading 0s */
4502
3.86k
  while (len > 0 && (*hex == '0' || *hex == '_')) {
4503
1.28k
    ++hex;
4504
1.28k
    --len;
4505
1.28k
  }
4506
4507
2.58k
  contains_underscores = (memchr(hex, '_', len) != NULL);
4508
4509
2.58k
  if (contains_underscores) {
4510
107
    hex = estrndup(hex, len);
4511
107
    strip_underscores(hex, &len);
4512
107
  }
4513
4514
2.58k
  if (len < SIZEOF_ZEND_LONG * 2 || (len == SIZEOF_ZEND_LONG * 2 && *hex <= '7')) {
4515
2.04k
    if (len == 0) {
4516
668
      ZVAL_LONG(zendlval, 0);
4517
1.37k
    } else {
4518
1.37k
      errno = 0;
4519
1.37k
      ZVAL_LONG(zendlval, ZEND_STRTOL(hex, &end, 16));
4520
1.37k
      ZEND_ASSERT(!errno && end == hex + len);
4521
1.37k
    }
4522
2.04k
    if (contains_underscores) {
4523
107
      efree(hex);
4524
107
    }
4525
2.04k
    RETURN_TOKEN_WITH_VAL(T_LNUMBER);
4526
2.04k
  } else {
4527
537
    ZVAL_DOUBLE(zendlval, zend_hex_strtod(hex, (const char **)&end));
4528
    /* errno isn't checked since we allow HUGE_VAL/INF overflow */
4529
537
    ZEND_ASSERT(end == hex + len);
4530
537
    if (contains_underscores) {
4531
0
      efree(hex);
4532
0
    }
4533
537
    RETURN_TOKEN_WITH_VAL(T_DNUMBER);
4534
537
  }
4535
2.58k
}
4536
0
#line 4537 "Zend/zend_language_scanner.c"
4537
1.39M
yy261:
4538
1.39M
    YYDEBUG(261, *YYCURSOR);
4539
1.39M
    ++YYCURSOR;
4540
1.39M
    YYFILL(2);
4541
1.39M
    yych = *YYCURSOR;
4542
1.39M
    YYDEBUG(262, *YYCURSOR);
4543
1.39M
    if (yych <= '\'') {
4544
34.8k
      if (yych <= ' ') {
4545
19.3k
        if (yych == '\t') goto yy261;
4546
18.6k
        if (yych <= 0x1F) goto yy86;
4547
7.71k
        goto yy261;
4548
18.6k
      } else {
4549
15.5k
        if (yych == '"') goto yy370;
4550
13.0k
        if (yych <= '&') goto yy86;
4551
8.83k
        goto yy371;
4552
13.0k
      }
4553
1.35M
    } else {
4554
1.35M
      if (yych <= '_') {
4555
77.5k
        if (yych <= '@') goto yy86;
4556
40.3k
        if (yych <= 'Z') goto yy372;
4557
1.31k
        if (yych <= '^') goto yy86;
4558
883
        goto yy372;
4559
1.27M
      } else {
4560
1.27M
        if (yych <= '`') goto yy86;
4561
1.27M
        if (yych <= 'z') goto yy372;
4562
24.8k
        if (yych <= 0x7F) goto yy86;
4563
23.5k
        goto yy372;
4564
24.8k
      }
4565
1.35M
    }
4566
1.24k
yy263:
4567
1.24k
    YYDEBUG(263, *YYCURSOR);
4568
1.24k
    ++YYCURSOR;
4569
1.24k
    YYDEBUG(264, *YYCURSOR);
4570
1.24k
    yyleng = YYCURSOR - SCNG(yy_text);
4571
1.24k
#line 1894 "Zend/zend_language_scanner.l"
4572
1.24k
    {
4573
1.24k
  RETURN_TOKEN(T_SL_EQUAL);
4574
1.24k
}
4575
0
#line 4576 "Zend/zend_language_scanner.c"
4576
37
yy265:
4577
37
    YYDEBUG(265, *YYCURSOR);
4578
37
    ++YYCURSOR;
4579
37
    YYDEBUG(266, *YYCURSOR);
4580
37
    yyleng = YYCURSOR - SCNG(yy_text);
4581
37
#line 1850 "Zend/zend_language_scanner.l"
4582
37
    {
4583
37
  RETURN_TOKEN(T_SPACESHIP);
4584
37
}
4585
0
#line 4586 "Zend/zend_language_scanner.c"
4586
14.1k
yy267:
4587
14.1k
    YYDEBUG(267, *YYCURSOR);
4588
14.1k
    ++YYCURSOR;
4589
14.1k
    YYDEBUG(268, *YYCURSOR);
4590
14.1k
    yyleng = YYCURSOR - SCNG(yy_text);
4591
14.1k
#line 1834 "Zend/zend_language_scanner.l"
4592
14.1k
    {
4593
14.1k
  RETURN_TOKEN(T_IS_IDENTICAL);
4594
14.1k
}
4595
0
#line 4596 "Zend/zend_language_scanner.c"
4596
1.10k
yy269:
4597
1.10k
    YYDEBUG(269, *YYCURSOR);
4598
1.10k
    ++YYCURSOR;
4599
1.10k
    YYDEBUG(270, *YYCURSOR);
4600
1.10k
    yyleng = YYCURSOR - SCNG(yy_text);
4601
1.10k
#line 1898 "Zend/zend_language_scanner.l"
4602
1.10k
    {
4603
1.10k
  RETURN_TOKEN(T_SR_EQUAL);
4604
1.10k
}
4605
0
#line 4606 "Zend/zend_language_scanner.c"
4606
12.3k
yy271:
4607
12.3k
    YYDEBUG(271, *YYCURSOR);
4608
12.3k
    ++YYCURSOR;
4609
12.3k
    YYDEBUG(272, *YYCURSOR);
4610
12.3k
    yyleng = YYCURSOR - SCNG(yy_text);
4611
12.3k
#line 1592 "Zend/zend_language_scanner.l"
4612
12.3k
    {
4613
12.3k
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
4614
12.3k
  RETURN_TOKEN(T_NULLSAFE_OBJECT_OPERATOR);
4615
12.3k
}
4616
0
#line 4617 "Zend/zend_language_scanner.c"
4617
2.88k
yy273:
4618
2.88k
    YYDEBUG(273, *YYCURSOR);
4619
2.88k
    ++YYCURSOR;
4620
2.88k
    goto yy156;
4621
168
yy274:
4622
168
    YYDEBUG(274, *YYCURSOR);
4623
168
    yych = *++YYCURSOR;
4624
168
    if (yych == '\n') goto yy273;
4625
59
    goto yy156;
4626
855
yy275:
4627
855
    YYDEBUG(275, *YYCURSOR);
4628
855
    ++YYCURSOR;
4629
855
    YYDEBUG(276, *YYCURSOR);
4630
855
    yyleng = YYCURSOR - SCNG(yy_text);
4631
855
#line 1914 "Zend/zend_language_scanner.l"
4632
855
    {
4633
855
  RETURN_TOKEN(T_COALESCE_EQUAL);
4634
855
}
4635
0
#line 4636 "Zend/zend_language_scanner.c"
4636
1.72k
yy277:
4637
1.72k
    YYDEBUG(277, *YYCURSOR);
4638
1.72k
    yyaccept = 4;
4639
1.72k
    yych = *(YYMARKER = ++YYCURSOR);
4640
1.72k
    if (yych == 'T') goto yy374;
4641
1.46k
    if (yych == 't') goto yy374;
4642
123
    goto yy48;
4643
4.12k
yy278:
4644
4.12k
    YYDEBUG(278, *YYCURSOR);
4645
4.12k
    yyaccept = 17;
4646
4.12k
    yych = *(YYMARKER = ++YYCURSOR);
4647
4.12k
    if (yybm[256+yych] & 128) {
4648
9
      goto yy47;
4649
9
    }
4650
4.11k
    if (yych == '\\') goto yy164;
4651
4.11k
yy279:
4652
4.11k
    YYDEBUG(279, *YYCURSOR);
4653
4.11k
    yyleng = YYCURSOR - SCNG(yy_text);
4654
4.11k
#line 1934 "Zend/zend_language_scanner.l"
4655
4.11k
    {
4656
4.11k
  RETURN_TOKEN_WITH_IDENT(T_LOGICAL_AND);
4657
4.11k
}
4658
0
#line 4659 "Zend/zend_language_scanner.c"
4659
12.2k
yy280:
4660
12.2k
    YYDEBUG(280, *YYCURSOR);
4661
12.2k
    yyaccept = 4;
4662
12.2k
    yych = *(YYMARKER = ++YYCURSOR);
4663
12.2k
    if (yych == 'A') goto yy375;
4664
12.0k
    if (yych == 'a') goto yy375;
4665
1.54k
    goto yy48;
4666
56.4k
yy281:
4667
56.4k
    YYDEBUG(281, *YYCURSOR);
4668
56.4k
    yyaccept = 18;
4669
56.4k
    YYMARKER = ++YYCURSOR;
4670
56.4k
    YYFILL(1);
4671
56.4k
    yych = *YYCURSOR;
4672
56.4k
    YYDEBUG(282, *YYCURSOR);
4673
56.4k
    if (yych <= '\\') {
4674
23.4k
      if (yych <= '@') {
4675
14.1k
        if (yych <= '/') goto yy283;
4676
5.75k
        if (yych <= '9') goto yy281;
4677
9.29k
      } else {
4678
9.29k
        if (yych <= 'Z') goto yy281;
4679
2.91k
        if (yych >= '\\') goto yy164;
4680
2.91k
      }
4681
32.9k
    } else {
4682
32.9k
      if (yych <= '`') {
4683
195
        if (yych == '_') goto yy281;
4684
32.7k
      } else {
4685
32.7k
        if (yych <= 'z') goto yy281;
4686
14.6k
        if (yych >= 0x80) goto yy281;
4687
14.6k
      }
4688
32.9k
    }
4689
11.8k
yy283:
4690
11.8k
    YYDEBUG(283, *YYCURSOR);
4691
11.8k
    yyleng = YYCURSOR - SCNG(yy_text);
4692
11.8k
#line 2443 "Zend/zend_language_scanner.l"
4693
11.8k
    {
4694
11.8k
  RETURN_TOKEN_WITH_STR(T_NAME_QUALIFIED, 0);
4695
11.8k
}
4696
0
#line 4697 "Zend/zend_language_scanner.c"
4697
2.67k
yy284:
4698
2.67k
    YYDEBUG(284, *YYCURSOR);
4699
2.67k
    yych = *++YYCURSOR;
4700
2.67k
    if (yych == '<') goto yy261;
4701
361
    goto yy86;
4702
1.16k
yy285:
4703
1.16k
    YYDEBUG(285, *YYCURSOR);
4704
1.16k
    yyaccept = 4;
4705
1.16k
    yych = *(YYMARKER = ++YYCURSOR);
4706
1.16k
    if (yych == 'A') goto yy376;
4707
1.06k
    if (yych == 'a') goto yy376;
4708
314
    goto yy48;
4709
5.56k
yy286:
4710
5.56k
    YYDEBUG(286, *YYCURSOR);
4711
5.56k
    yyaccept = 4;
4712
5.56k
    yych = *(YYMARKER = ++YYCURSOR);
4713
5.56k
    if (yych == 'L') goto yy377;
4714
5.45k
    if (yych == 'l') goto yy377;
4715
378
    goto yy48;
4716
2.68k
yy287:
4717
2.68k
    YYDEBUG(287, *YYCURSOR);
4718
2.68k
    yyaccept = 4;
4719
2.68k
    yych = *(YYMARKER = ++YYCURSOR);
4720
2.68k
    if (yych == 'E') goto yy378;
4721
2.65k
    if (yych == 'e') goto yy378;
4722
329
    goto yy48;
4723
29.9k
yy288:
4724
29.9k
    YYDEBUG(288, *YYCURSOR);
4725
29.9k
    yyaccept = 4;
4726
29.9k
    yych = *(YYMARKER = ++YYCURSOR);
4727
29.9k
    if (yych == 'C') goto yy380;
4728
29.9k
    if (yych == 'c') goto yy380;
4729
595
    goto yy48;
4730
32.2k
yy289:
4731
32.2k
    YYDEBUG(289, *YYCURSOR);
4732
32.2k
    yyaccept = 4;
4733
32.2k
    yych = *(YYMARKER = ++YYCURSOR);
4734
32.2k
    if (yych == 'S') goto yy381;
4735
30.9k
    if (yych == 's') goto yy381;
4736
490
    goto yy48;
4737
2.52k
yy290:
4738
2.52k
    YYDEBUG(290, *YYCURSOR);
4739
2.52k
    yyaccept = 4;
4740
2.52k
    yych = *(YYMARKER = ++YYCURSOR);
4741
2.52k
    if (yych == 'N') goto yy382;
4742
2.17k
    if (yych == 'n') goto yy382;
4743
1.47k
    goto yy48;
4744
27.0k
yy291:
4745
27.0k
    YYDEBUG(291, *YYCURSOR);
4746
27.0k
    yyaccept = 4;
4747
27.0k
    yych = *(YYMARKER = ++YYCURSOR);
4748
27.0k
    if (yych <= 'T') {
4749
3.13k
      if (yych <= 'R') goto yy48;
4750
1.77k
      if (yych <= 'S') goto yy383;
4751
225
      goto yy384;
4752
23.8k
    } else {
4753
23.8k
      if (yych <= 'r') goto yy48;
4754
23.7k
      if (yych <= 's') goto yy383;
4755
1.67k
      if (yych <= 't') goto yy384;
4756
220
      goto yy48;
4757
1.67k
    }
4758
681
yy292:
4759
681
    YYDEBUG(292, *YYCURSOR);
4760
681
    yyaccept = 4;
4761
681
    yych = *(YYMARKER = ++YYCURSOR);
4762
681
    if (yych == 'L') goto yy385;
4763
636
    if (yych == 'l') goto yy385;
4764
128
    goto yy48;
4765
1.91k
yy293:
4766
1.91k
    YYDEBUG(293, *YYCURSOR);
4767
1.91k
    yyaccept = 4;
4768
1.91k
    yych = *(YYMARKER = ++YYCURSOR);
4769
1.91k
    if (yych == 'A') goto yy386;
4770
1.81k
    if (yych == 'a') goto yy386;
4771
1.06k
    goto yy48;
4772
1.06k
yy294:
4773
738
    YYDEBUG(294, *YYCURSOR);
4774
738
    yyaccept = 19;
4775
738
    yych = *(YYMARKER = ++YYCURSOR);
4776
738
    if (yybm[256+yych] & 128) {
4777
419
      goto yy47;
4778
419
    }
4779
319
    if (yych == '\\') goto yy164;
4780
319
yy295:
4781
319
    YYDEBUG(295, *YYCURSOR);
4782
319
    yyleng = YYCURSOR - SCNG(yy_text);
4783
319
#line 1403 "Zend/zend_language_scanner.l"
4784
319
    {
4785
319
  RETURN_TOKEN_WITH_IDENT(T_EXIT);
4786
319
}
4787
0
#line 4788 "Zend/zend_language_scanner.c"
4788
39.8k
yy296:
4789
39.8k
    YYDEBUG(296, *YYCURSOR);
4790
39.8k
    yyaccept = 4;
4791
39.8k
    yych = *(YYMARKER = ++YYCURSOR);
4792
39.8k
    if (yych == 'O') goto yy387;
4793
39.7k
    if (yych == 'o') goto yy387;
4794
404
    goto yy48;
4795
2.61k
yy297:
4796
2.61k
    YYDEBUG(297, *YYCURSOR);
4797
2.61k
    yyaccept = 4;
4798
2.61k
    yych = *(YYMARKER = ++YYCURSOR);
4799
2.61k
    if (yych == 'E') goto yy389;
4800
2.39k
    if (yych == 'e') goto yy389;
4801
187
    goto yy48;
4802
1.05k
yy298:
4803
1.05k
    YYDEBUG(298, *YYCURSOR);
4804
1.05k
    yyaccept = 4;
4805
1.05k
    yych = *(YYMARKER = ++YYCURSOR);
4806
1.05k
    if (yych == 'T') goto yy391;
4807
921
    if (yych == 't') goto yy391;
4808
43
    goto yy48;
4809
18.1k
yy299:
4810
18.1k
    YYDEBUG(299, *YYCURSOR);
4811
18.1k
    yyaccept = 4;
4812
18.1k
    yych = *(YYMARKER = ++YYCURSOR);
4813
18.1k
    switch (yych) {
4814
235
    case 'D':
4815
1.06k
    case 'd': goto yy392;
4816
2.60k
    case 'F':
4817
4.24k
    case 'f': goto yy393;
4818
2.61k
    case 'I':
4819
4.14k
    case 'i': goto yy394;
4820
104
    case 'S':
4821
659
    case 's': goto yy395;
4822
605
    case 'W':
4823
4.20k
    case 'w': goto yy396;
4824
3.79k
    default:  goto yy48;
4825
18.1k
    }
4826
79.3k
yy300:
4827
79.3k
    YYDEBUG(300, *YYCURSOR);
4828
79.3k
    yyaccept = 4;
4829
79.3k
    yych = *(YYMARKER = ++YYCURSOR);
4830
79.3k
    if (yych == 'M') goto yy397;
4831
73.2k
    if (yych == 'm') goto yy397;
4832
15.2k
    goto yy48;
4833
15.2k
yy301:
4834
1.18k
    YYDEBUG(301, *YYCURSOR);
4835
1.18k
    yyaccept = 4;
4836
1.18k
    yych = *(YYMARKER = ++YYCURSOR);
4837
1.18k
    if (yych == 'L') goto yy398;
4838
1.06k
    if (yych == 'l') goto yy398;
4839
104
    goto yy48;
4840
565
yy302:
4841
565
    YYDEBUG(302, *YYCURSOR);
4842
565
    yyaccept = 4;
4843
565
    yych = *(YYMARKER = ++YYCURSOR);
4844
565
    if (yych == 'T') goto yy400;
4845
326
    if (yych == 't') goto yy400;
4846
46
    goto yy48;
4847
7.84k
yy303:
4848
7.84k
    YYDEBUG(303, *YYCURSOR);
4849
7.84k
    yyaccept = 4;
4850
7.84k
    yych = *(YYMARKER = ++YYCURSOR);
4851
7.84k
    if (yych == 'E') goto yy402;
4852
7.63k
    if (yych == 'e') goto yy402;
4853
909
    goto yy48;
4854
4.39k
yy304:
4855
4.39k
    YYDEBUG(304, *YYCURSOR);
4856
4.39k
    yyaccept = 4;
4857
4.39k
    yych = *(YYMARKER = ++YYCURSOR);
4858
4.39k
    if (yych == 'A') goto yy403;
4859
4.21k
    if (yych == 'a') goto yy403;
4860
452
    goto yy48;
4861
23.0k
yy305:
4862
23.0k
    YYDEBUG(305, *YYCURSOR);
4863
23.0k
    yyaccept = 20;
4864
23.0k
    yych = *(YYMARKER = ++YYCURSOR);
4865
23.0k
    if (yych <= '\\') {
4866
11.4k
      if (yych <= 'D') {
4867
11.1k
        if (yych <= '/') goto yy306;
4868
622
        if (yych <= '9') goto yy47;
4869
585
        if (yych >= 'A') goto yy47;
4870
585
      } else {
4871
288
        if (yych <= 'E') goto yy404;
4872
141
        if (yych <= 'Z') goto yy47;
4873
3
        if (yych >= '\\') goto yy164;
4874
3
      }
4875
11.5k
    } else {
4876
11.5k
      if (yych <= 'd') {
4877
114
        if (yych == '_') goto yy47;
4878
24
        if (yych >= 'a') goto yy47;
4879
11.4k
      } else {
4880
11.4k
        if (yych <= 'e') goto yy404;
4881
460
        if (yych <= 'z') goto yy47;
4882
253
        if (yych >= 0x80) goto yy47;
4883
253
      }
4884
11.5k
    }
4885
10.7k
yy306:
4886
10.7k
    YYDEBUG(306, *YYCURSOR);
4887
10.7k
    yyleng = YYCURSOR - SCNG(yy_text);
4888
10.7k
#line 1482 "Zend/zend_language_scanner.l"
4889
10.7k
    {
4890
10.7k
  RETURN_TOKEN_WITH_IDENT(T_FOR);
4891
10.7k
}
4892
0
#line 4893 "Zend/zend_language_scanner.c"
4893
53.8k
yy307:
4894
53.8k
    YYDEBUG(307, *YYCURSOR);
4895
53.8k
    yyaccept = 4;
4896
53.8k
    yych = *(YYMARKER = ++YYCURSOR);
4897
53.8k
    if (yych == 'C') goto yy405;
4898
53.1k
    if (yych == 'c') goto yy405;
4899
580
    goto yy48;
4900
2.04k
yy308:
4901
2.04k
    YYDEBUG(308, *YYCURSOR);
4902
2.04k
    yyaccept = 4;
4903
2.04k
    yych = *(YYMARKER = ++YYCURSOR);
4904
2.04k
    if (yych == 'B') goto yy406;
4905
1.44k
    if (yych == 'b') goto yy406;
4906
767
    goto yy48;
4907
1.19k
yy309:
4908
1.19k
    YYDEBUG(309, *YYCURSOR);
4909
1.19k
    yyaccept = 4;
4910
1.19k
    yych = *(YYMARKER = ++YYCURSOR);
4911
1.19k
    if (yych == 'O') goto yy407;
4912
1.07k
    if (yych == 'o') goto yy407;
4913
143
    goto yy48;
4914
22.8k
yy310:
4915
22.8k
    YYDEBUG(310, *YYCURSOR);
4916
22.8k
    yyaccept = 4;
4917
22.8k
    yych = *(YYMARKER = ++YYCURSOR);
4918
22.8k
    if (yych == 'L') goto yy409;
4919
22.5k
    if (yych == 'l') goto yy409;
4920
1.78k
    goto yy48;
4921
2.30k
yy311:
4922
2.30k
    YYDEBUG(311, *YYCURSOR);
4923
2.30k
    yyaccept = 4;
4924
2.30k
    yych = *(YYMARKER = ++YYCURSOR);
4925
2.30k
    if (yych == 'L') goto yy410;
4926
1.83k
    if (yych == 'l') goto yy410;
4927
733
    goto yy48;
4928
4.17k
yy312:
4929
4.17k
    YYDEBUG(312, *YYCURSOR);
4930
4.17k
    yyaccept = 4;
4931
4.17k
    yych = *(YYMARKER = ++YYCURSOR);
4932
4.17k
    if (yych == 'T') goto yy411;
4933
2.63k
    if (yych == 't') goto yy411;
4934
114
    goto yy48;
4935
15.7k
yy313:
4936
15.7k
    YYDEBUG(313, *YYCURSOR);
4937
15.7k
    yyaccept = 4;
4938
15.7k
    yych = *(YYMARKER = ++YYCURSOR);
4939
15.7k
    if (yych == 'E') goto yy412;
4940
15.4k
    if (yych == 'e') goto yy412;
4941
5.86k
    goto yy48;
4942
5.86k
yy314:
4943
2.98k
    YYDEBUG(314, *YYCURSOR);
4944
2.98k
    yyaccept = 4;
4945
2.98k
    yych = *(YYMARKER = ++YYCURSOR);
4946
2.98k
    if (yych == 'E') goto yy413;
4947
2.94k
    if (yych == 'e') goto yy413;
4948
875
    goto yy48;
4949
1.05k
yy315:
4950
1.05k
    YYDEBUG(315, *YYCURSOR);
4951
1.05k
    yyaccept = 4;
4952
1.05k
    yych = *(YYMARKER = ++YYCURSOR);
4953
1.05k
    if (yych == 'T') goto yy414;
4954
812
    if (yych == 't') goto yy414;
4955
11
    goto yy48;
4956
579
yy316:
4957
579
    YYDEBUG(316, *YYCURSOR);
4958
579
    yyaccept = 4;
4959
579
    yych = *(YYMARKER = ++YYCURSOR);
4960
579
    if (yych == 'C') goto yy416;
4961
576
    if (yych == 'c') goto yy416;
4962
157
    goto yy48;
4963
7.32k
yy317:
4964
7.32k
    YYDEBUG(317, *YYCURSOR);
4965
7.32k
    yyaccept = 4;
4966
7.32k
    yych = *(YYMARKER = ++YYCURSOR);
4967
7.32k
    if (yych == 'E') goto yy417;
4968
6.16k
    if (yych == 'e') goto yy417;
4969
131
    goto yy48;
4970
42.8k
yy318:
4971
42.8k
    YYDEBUG(318, *YYCURSOR);
4972
42.8k
    yyaccept = 21;
4973
42.8k
    yych = *(YYMARKER = ++YYCURSOR);
4974
42.8k
    if (yybm[256+yych] & 128) {
4975
137
      goto yy47;
4976
137
    }
4977
42.6k
    if (yych == '\\') goto yy164;
4978
42.6k
yy319:
4979
42.6k
    YYDEBUG(319, *YYCURSOR);
4980
42.6k
    yyleng = YYCURSOR - SCNG(yy_text);
4981
42.6k
#line 1626 "Zend/zend_language_scanner.l"
4982
42.6k
    {
4983
42.6k
  RETURN_TOKEN_WITH_IDENT(T_NEW);
4984
42.6k
}
4985
0
#line 4986 "Zend/zend_language_scanner.c"
4986
8.75k
yy320:
4987
8.75k
    YYDEBUG(320, *YYCURSOR);
4988
8.75k
    yyaccept = 4;
4989
8.75k
    yych = *(YYMARKER = ++YYCURSOR);
4990
8.75k
    if (yych <= 'V') {
4991
521
      if (yych == 'N') goto yy418;
4992
325
      if (yych <= 'U') goto yy48;
4993
228
      goto yy419;
4994
8.23k
    } else {
4995
8.23k
      if (yych <= 'n') {
4996
4.82k
        if (yych <= 'm') goto yy48;
4997
4.73k
        goto yy418;
4998
4.82k
      } else {
4999
3.41k
        if (yych == 'v') goto yy419;
5000
20
        goto yy48;
5001
3.41k
      }
5002
8.23k
    }
5003
3.35k
yy321:
5004
3.35k
    YYDEBUG(321, *YYCURSOR);
5005
3.35k
    yyaccept = 4;
5006
3.35k
    yych = *(YYMARKER = ++YYCURSOR);
5007
3.35k
    if (yych == 'T') goto yy420;
5008
3.15k
    if (yych == 't') goto yy420;
5009
556
    goto yy48;
5010
26.8k
yy322:
5011
26.8k
    YYDEBUG(322, *YYCURSOR);
5012
26.8k
    yyaccept = 4;
5013
26.8k
    yych = *(YYMARKER = ++YYCURSOR);
5014
26.8k
    if (yych == 'L') goto yy421;
5015
26.5k
    if (yych == 'l') goto yy421;
5016
489
    goto yy48;
5017
1.41k
yy323:
5018
1.41k
    YYDEBUG(323, *YYCURSOR);
5019
1.41k
    yyaccept = 4;
5020
1.41k
    yych = *(YYMARKER = ++YYCURSOR);
5021
1.41k
    if (yych == 'D') goto yy422;
5022
1.41k
    if (yych == 'd') goto yy422;
5023
626
    goto yy48;
5024
15.4k
yy324:
5025
15.4k
    YYDEBUG(324, *YYCURSOR);
5026
15.4k
    yyaccept = 4;
5027
15.4k
    yych = *(YYMARKER = ++YYCURSOR);
5028
15.4k
    if (yych == 'U') goto yy423;
5029
15.0k
    if (yych == 'u') goto yy423;
5030
3.94k
    goto yy48;
5031
12.5k
yy325:
5032
12.5k
    YYDEBUG(325, *YYCURSOR);
5033
12.5k
    yyaccept = 4;
5034
12.5k
    yych = *(YYMARKER = ++YYCURSOR);
5035
12.5k
    if (yych == 'U') goto yy424;
5036
12.4k
    if (yych == 'u') goto yy424;
5037
142
    goto yy48;
5038
8.98k
yy326:
5039
8.98k
    YYDEBUG(326, *YYCURSOR);
5040
8.98k
    yyaccept = 4;
5041
8.98k
    yych = *(YYMARKER = ++YYCURSOR);
5042
8.98k
    if (yych == 'T') goto yy425;
5043
8.77k
    if (yych == 't') goto yy425;
5044
362
    goto yy48;
5045
3.62k
yy327:
5046
3.62k
    YYDEBUG(327, *YYCURSOR);
5047
3.62k
    yyaccept = 4;
5048
3.62k
    yych = *(YYMARKER = ++YYCURSOR);
5049
3.62k
    if (yych == 'T') goto yy426;
5050
3.47k
    if (yych == 't') goto yy426;
5051
155
    goto yy48;
5052
8.82k
yy328:
5053
8.82k
    YYDEBUG(328, *YYCURSOR);
5054
8.82k
    yyaccept = 4;
5055
8.82k
    yych = *(YYMARKER = ++YYCURSOR);
5056
8.82k
    if (yych == 'O') goto yy427;
5057
8.62k
    if (yych == 'o') goto yy427;
5058
134
    goto yy48;
5059
4.12k
yy329:
5060
4.12k
    YYDEBUG(329, *YYCURSOR);
5061
4.12k
    yyaccept = 4;
5062
4.12k
    yych = *(YYMARKER = ++YYCURSOR);
5063
4.12k
    if (yych == 'I') goto yy428;
5064
2.87k
    if (yych == 'i') goto yy428;
5065
440
    goto yy48;
5066
34.7k
yy330:
5067
34.7k
    YYDEBUG(330, *YYCURSOR);
5068
34.7k
    yyaccept = 22;
5069
34.7k
    yych = *(YYMARKER = ++YYCURSOR);
5070
34.7k
    if (yybm[256+yych] & 128) {
5071
584
      goto yy47;
5072
584
    }
5073
34.1k
    if (yych == '\\') goto yy164;
5074
34.1k
yy331:
5075
34.1k
    YYDEBUG(331, *YYCURSOR);
5076
34.1k
    yyleng = YYCURSOR - SCNG(yy_text);
5077
34.1k
#line 1438 "Zend/zend_language_scanner.l"
5078
34.1k
    {
5079
34.1k
  RETURN_TOKEN_WITH_IDENT(T_TRY);
5080
34.1k
}
5081
0
#line 5082 "Zend/zend_language_scanner.c"
5082
5.38k
yy332:
5083
5.38k
    YYDEBUG(332, *YYCURSOR);
5084
5.38k
    yyaccept = 4;
5085
5.38k
    yych = *(YYMARKER = ++YYCURSOR);
5086
5.38k
    if (yych == 'E') goto yy429;
5087
5.30k
    if (yych == 'e') goto yy429;
5088
320
    goto yy48;
5089
5.17k
yy333:
5090
5.17k
    YYDEBUG(333, *YYCURSOR);
5091
5.17k
    yyaccept = 23;
5092
5.17k
    yych = *(YYMARKER = ++YYCURSOR);
5093
5.17k
    if (yybm[256+yych] & 128) {
5094
163
      goto yy47;
5095
163
    }
5096
5.01k
    if (yych == '\\') goto yy164;
5097
5.01k
yy334:
5098
5.01k
    YYDEBUG(334, *YYCURSOR);
5099
5.01k
    yyleng = YYCURSOR - SCNG(yy_text);
5100
5.01k
#line 1742 "Zend/zend_language_scanner.l"
5101
5.01k
    {
5102
5.01k
  RETURN_TOKEN_WITH_IDENT(T_USE);
5103
5.01k
}
5104
0
#line 5105 "Zend/zend_language_scanner.c"
5105
50.2k
yy335:
5106
50.2k
    YYDEBUG(335, *YYCURSOR);
5107
50.2k
    yyaccept = 24;
5108
50.2k
    yych = *(YYMARKER = ++YYCURSOR);
5109
50.2k
    if (yybm[256+yych] & 128) {
5110
49.1k
      goto yy47;
5111
49.1k
    }
5112
1.04k
    if (yych == '\\') goto yy164;
5113
968
yy336:
5114
968
    YYDEBUG(336, *YYCURSOR);
5115
968
    yyleng = YYCURSOR - SCNG(yy_text);
5116
968
#line 1634 "Zend/zend_language_scanner.l"
5117
968
    {
5118
968
  RETURN_TOKEN_WITH_IDENT(T_VAR);
5119
968
}
5120
0
#line 5121 "Zend/zend_language_scanner.c"
5121
608
yy337:
5122
608
    YYDEBUG(337, *YYCURSOR);
5123
608
    yyaccept = 4;
5124
608
    yych = *(YYMARKER = ++YYCURSOR);
5125
608
    if (yych == 'L') goto yy430;
5126
567
    if (yych == 'l') goto yy430;
5127
21
    goto yy48;
5128
1.75k
yy338:
5129
1.75k
    YYDEBUG(338, *YYCURSOR);
5130
1.75k
    yyaccept = 25;
5131
1.75k
    yych = *(YYMARKER = ++YYCURSOR);
5132
1.75k
    if (yybm[256+yych] & 128) {
5133
75
      goto yy47;
5134
75
    }
5135
1.68k
    if (yych == '\\') goto yy164;
5136
1.68k
yy339:
5137
1.68k
    YYDEBUG(339, *YYCURSOR);
5138
1.68k
    yyleng = YYCURSOR - SCNG(yy_text);
5139
1.68k
#line 1938 "Zend/zend_language_scanner.l"
5140
1.68k
    {
5141
1.68k
  RETURN_TOKEN_WITH_IDENT(T_LOGICAL_XOR);
5142
1.68k
}
5143
0
#line 5144 "Zend/zend_language_scanner.c"
5144
24.1k
yy340:
5145
24.1k
    YYDEBUG(340, *YYCURSOR);
5146
24.1k
    yyaccept = 4;
5147
24.1k
    yych = *(YYMARKER = ++YYCURSOR);
5148
24.1k
    if (yych == 'L') goto yy431;
5149
22.1k
    if (yych == 'l') goto yy431;
5150
1.53k
    goto yy48;
5151
3.94k
yy341:
5152
3.94k
    YYDEBUG(341, *YYCURSOR);
5153
3.94k
    ++YYCURSOR;
5154
3.94k
    YYFILL(1);
5155
3.94k
    yych = *YYCURSOR;
5156
3.94k
    if (yych <= '_') {
5157
2.05k
      if (yych <= '@') goto yy86;
5158
2.00k
      if (yych <= 'Z') goto yy211;
5159
1.58k
      if (yych <= '^') goto yy86;
5160
332
      goto yy211;
5161
1.88k
    } else {
5162
1.88k
      if (yych <= '`') goto yy86;
5163
1.88k
      if (yych <= 'z') goto yy211;
5164
129
      if (yych <= 0x7F) goto yy86;
5165
39
      goto yy211;
5166
129
    }
5167
6.91k
yy342:
5168
6.91k
    YYDEBUG(342, *YYCURSOR);
5169
6.91k
    yyaccept = 4;
5170
6.91k
    yych = *(YYMARKER = ++YYCURSOR);
5171
6.91k
    if (yych == 'L') goto yy432;
5172
6.12k
    if (yych == 'l') goto yy432;
5173
5.92k
    goto yy48;
5174
5.92k
yy343:
5175
4.28k
    YYDEBUG(343, *YYCURSOR);
5176
4.28k
    yyaccept = 4;
5177
4.28k
    yych = *(YYMARKER = ++YYCURSOR);
5178
4.28k
    if (yych == 'I') goto yy433;
5179
1.49k
    if (yych == 'i') goto yy433;
5180
1.44k
    goto yy48;
5181
6.06k
yy344:
5182
6.06k
    YYDEBUG(344, *YYCURSOR);
5183
6.06k
    yyaccept = 4;
5184
6.06k
    yych = *(YYMARKER = ++YYCURSOR);
5185
6.06k
    if (yych <= 'U') {
5186
5.75k
      if (yych == 'I') goto yy434;
5187
3.16k
      if (yych <= 'T') goto yy48;
5188
3.07k
      goto yy435;
5189
3.16k
    } else {
5190
313
      if (yych <= 'i') {
5191
104
        if (yych <= 'h') goto yy48;
5192
66
        goto yy434;
5193
209
      } else {
5194
209
        if (yych == 'u') goto yy435;
5195
189
        goto yy48;
5196
209
      }
5197
313
    }
5198
453
yy345:
5199
453
    YYDEBUG(345, *YYCURSOR);
5200
453
    yyaccept = 4;
5201
453
    yych = *(YYMARKER = ++YYCURSOR);
5202
453
    if (yych == 'A') goto yy436;
5203
357
    if (yych == 'a') goto yy436;
5204
107
    goto yy48;
5205
2.28k
yy346:
5206
2.28k
    YYDEBUG(346, *YYCURSOR);
5207
2.28k
    yyaccept = 4;
5208
2.28k
    yych = *(YYMARKER = ++YYCURSOR);
5209
2.28k
    if (yych == 'I') goto yy437;
5210
595
    if (yych == 'i') goto yy437;
5211
593
    goto yy48;
5212
8.71k
yy347:
5213
8.71k
    YYDEBUG(347, *YYCURSOR);
5214
8.71k
    yyaccept = 4;
5215
8.71k
    yych = *(YYMARKER = ++YYCURSOR);
5216
8.71k
    if (yych == 'E') goto yy438;
5217
258
    if (yych == 'e') goto yy438;
5218
232
    goto yy48;
5219
3.67k
yy348:
5220
3.67k
    YYDEBUG(348, *YYCURSOR);
5221
3.67k
    yyaccept = 4;
5222
3.67k
    yych = *(YYMARKER = ++YYCURSOR);
5223
3.67k
    if (yych == 'A') goto yy439;
5224
1.11k
    if (yych == 'a') goto yy439;
5225
1.04k
    goto yy48;
5226
1.04k
yy349:
5227
637
    YYDEBUG(349, *YYCURSOR);
5228
637
    yyaccept = 4;
5229
637
    yych = *(YYMARKER = ++YYCURSOR);
5230
637
    if (yych == 'R') goto yy440;
5231
162
    if (yych == 'r') goto yy440;
5232
153
    goto yy48;
5233
766
yy350:
5234
766
    YYDEBUG(350, *YYCURSOR);
5235
766
    yyaccept = 4;
5236
766
    yych = *(YYMARKER = ++YYCURSOR);
5237
766
    if (yych == 'R') goto yy441;
5238
540
    if (yych == 'r') goto yy441;
5239
483
    goto yy48;
5240
11.6k
yy351:
5241
11.6k
    YYDEBUG(351, *YYCURSOR);
5242
11.6k
    ++YYCURSOR;
5243
11.6k
    YYFILL(1);
5244
11.6k
    yych = *YYCURSOR;
5245
11.6k
    if (yybm[0+yych] & 2) {
5246
493
      goto yy225;
5247
493
    }
5248
11.1k
    if (yych <= 0x00) goto yy86;
5249
11.0k
    goto yy227;
5250
11.0k
yy352:
5251
6.90k
    YYDEBUG(352, *YYCURSOR);
5252
6.90k
    yyaccept = 26;
5253
6.90k
    YYMARKER = ++YYCURSOR;
5254
6.90k
    YYFILL(1);
5255
6.90k
    yych = *YYCURSOR;
5256
6.90k
    if (yybm[0+yych] & 2) {
5257
6.72k
      goto yy225;
5258
6.72k
    }
5259
180
    if (yych <= 0x00) goto yy89;
5260
54
    goto yy84;
5261
9.77k
yy353:
5262
9.77k
    YYDEBUG(353, *YYCURSOR);
5263
9.77k
    ++YYCURSOR;
5264
9.77k
    YYFILL(1);
5265
9.77k
    yych = *YYCURSOR;
5266
9.77k
    if (yych <= '\f') {
5267
6
      if (yych <= 0x00) goto yy86;
5268
3
      if (yych == '\n') goto yy84;
5269
3
      goto yy225;
5270
9.77k
    } else {
5271
9.77k
      if (yych <= '\r') goto yy84;
5272
204
      if (yych == '.') goto yy442;
5273
180
      goto yy225;
5274
204
    }
5275
4.55k
yy354:
5276
4.55k
    YYDEBUG(354, *YYCURSOR);
5277
4.55k
    ++YYCURSOR;
5278
4.55k
    YYFILL(1);
5279
4.55k
    yych = *YYCURSOR;
5280
4.55k
    if (yych <= '\f') {
5281
246
      if (yych <= 0x00) goto yy86;
5282
210
      if (yych == '\n') goto yy84;
5283
108
      goto yy225;
5284
4.30k
    } else {
5285
4.30k
      if (yych <= '\r') goto yy84;
5286
4.17k
      if (yych == '*') goto yy443;
5287
488
      goto yy225;
5288
4.17k
    }
5289
3.81k
yy355:
5290
3.81k
    YYDEBUG(355, *YYCURSOR);
5291
3.81k
    ++YYCURSOR;
5292
3.81k
    YYFILL(1);
5293
3.81k
    yych = *YYCURSOR;
5294
3.81k
    YYDEBUG(356, *YYCURSOR);
5295
3.81k
    if (yybm[0+yych] & 64) {
5296
611
      goto yy355;
5297
611
    }
5298
3.20k
    if (yych <= 0x00) goto yy86;
5299
3.20k
    if (yych == '/') goto yy84;
5300
984
    goto yy230;
5301
5.72k
yy357:
5302
5.72k
    YYDEBUG(357, *YYCURSOR);
5303
5.72k
    yych = *++YYCURSOR;
5304
5.72k
    if (yych == 'A') goto yy445;
5305
5.71k
    if (yych == 'a') goto yy445;
5306
1.43k
    goto yy86;
5307
1.43k
yy358:
5308
239
    YYDEBUG(358, *YYCURSOR);
5309
239
    yych = *++YYCURSOR;
5310
239
    if (yych == 'A') goto yy446;
5311
227
    if (yych == 'a') goto yy446;
5312
15
    goto yy86;
5313
341
yy359:
5314
341
    YYDEBUG(359, *YYCURSOR);
5315
341
    yych = *++YYCURSOR;
5316
341
    if (yych == 'L') goto yy447;
5317
341
    if (yych == 'l') goto yy447;
5318
7
    goto yy86;
5319
175
yy360:
5320
175
    YYDEBUG(360, *YYCURSOR);
5321
175
    yych = *++YYCURSOR;
5322
175
    if (yych == 'B') goto yy448;
5323
175
    if (yych == 'b') goto yy448;
5324
63
    goto yy86;
5325
469
yy361:
5326
469
    YYDEBUG(361, *YYCURSOR);
5327
469
    yych = *++YYCURSOR;
5328
469
    if (yych == 'A') goto yy449;
5329
451
    if (yych == 'a') goto yy449;
5330
5
    goto yy86;
5331
2.50k
yy362:
5332
2.50k
    YYDEBUG(362, *YYCURSOR);
5333
2.50k
    yych = *++YYCURSOR;
5334
2.50k
    if (yych == 'E') goto yy454;
5335
2.49k
    if (yych == 'e') goto yy454;
5336
2.38k
    goto yy451;
5337
2.38k
yy363:
5338
544
    YYDEBUG(363, *YYCURSOR);
5339
544
    yych = *++YYCURSOR;
5340
544
    if (yych == 'E') goto yy455;
5341
542
    if (yych == 'e') goto yy455;
5342
13
    goto yy86;
5343
82
yy364:
5344
82
    YYDEBUG(364, *YYCURSOR);
5345
82
    yych = *++YYCURSOR;
5346
82
    if (yych == 'L') goto yy456;
5347
82
    if (yych == 'l') goto yy456;
5348
30
    goto yy86;
5349
5.11k
yy365:
5350
5.11k
    YYDEBUG(365, *YYCURSOR);
5351
5.11k
    yych = *++YYCURSOR;
5352
5.11k
    if (yych == 'I') goto yy458;
5353
5.10k
    if (yych == 'i') goto yy458;
5354
846
    goto yy86;
5355
846
yy366:
5356
285
    YYDEBUG(366, *YYCURSOR);
5357
285
    yych = *++YYCURSOR;
5358
285
    if (yych == 'E') goto yy459;
5359
232
    if (yych == 'e') goto yy459;
5360
112
    goto yy86;
5361
112
yy367:
5362
77
    YYDEBUG(367, *YYCURSOR);
5363
77
    yych = *++YYCURSOR;
5364
77
    if (yych == 'D') goto yy460;
5365
77
    if (yych == 'd') goto yy460;
5366
0
    goto yy86;
5367
2.17k
yy368:
5368
2.17k
    YYDEBUG(368, *YYCURSOR);
5369
2.17k
    ++YYCURSOR;
5370
2.17k
    YYFILL(1);
5371
2.17k
    yych = *YYCURSOR;
5372
2.17k
    YYDEBUG(369, *YYCURSOR);
5373
2.17k
    if (yych <= '\f') {
5374
198
      if (yych <= 0x08) goto yy129;
5375
179
      if (yych <= '\n') goto yy368;
5376
0
      goto yy129;
5377
1.97k
    } else {
5378
1.97k
      if (yych <= '\r') goto yy368;
5379
1.97k
      if (yych == ' ') goto yy368;
5380
676
      goto yy129;
5381
1.97k
    }
5382
2.42k
yy370:
5383
2.42k
    YYDEBUG(370, *YYCURSOR);
5384
2.42k
    yych = *++YYCURSOR;
5385
2.42k
    if (yych == '"') goto yy86;
5386
2.40k
    if (yych <= '/') goto yy463;
5387
1.92k
    if (yych <= '9') goto yy86;
5388
1.88k
    goto yy463;
5389
8.83k
yy371:
5390
8.83k
    YYDEBUG(371, *YYCURSOR);
5391
8.83k
    yych = *++YYCURSOR;
5392
8.83k
    if (yych == '\'') goto yy86;
5393
8.75k
    if (yych <= '/') goto yy465;
5394
8.64k
    if (yych <= '9') goto yy86;
5395
8.64k
    goto yy465;
5396
2.12M
yy372:
5397
2.12M
    YYDEBUG(372, *YYCURSOR);
5398
2.12M
    ++YYCURSOR;
5399
2.12M
    YYFILL(2);
5400
2.12M
    yych = *YYCURSOR;
5401
2.12M
    YYDEBUG(373, *YYCURSOR);
5402
2.12M
    if (yych <= '@') {
5403
1.34M
      if (yych <= '\f') {
5404
1.23M
        if (yych == '\n') goto yy466;
5405
17.1k
        goto yy86;
5406
1.23M
      } else {
5407
101k
        if (yych <= '\r') goto yy468;
5408
84.4k
        if (yych <= '/') goto yy86;
5409
49.6k
        if (yych <= '9') goto yy372;
5410
18.5k
        goto yy86;
5411
49.6k
      }
5412
1.34M
    } else {
5413
787k
      if (yych <= '_') {
5414
172k
        if (yych <= 'Z') goto yy372;
5415
100k
        if (yych <= '^') goto yy86;
5416
97.7k
        goto yy372;
5417
614k
      } else {
5418
614k
        if (yych <= '`') goto yy86;
5419
613k
        if (yych <= 'z') goto yy372;
5420
421k
        if (yych <= 0x7F) goto yy86;
5421
418k
        goto yy372;
5422
421k
      }
5423
787k
    }
5424
1.60k
yy374:
5425
1.60k
    YYDEBUG(374, *YYCURSOR);
5426
1.60k
    yyaccept = 4;
5427
1.60k
    yych = *(YYMARKER = ++YYCURSOR);
5428
1.60k
    if (yych == 'R') goto yy469;
5429
1.38k
    if (yych == 'r') goto yy469;
5430
14
    goto yy48;
5431
10.7k
yy375:
5432
10.7k
    YYDEBUG(375, *YYCURSOR);
5433
10.7k
    yyaccept = 4;
5434
10.7k
    yych = *(YYMARKER = ++YYCURSOR);
5435
10.7k
    if (yych == 'Y') goto yy470;
5436
10.2k
    if (yych == 'y') goto yy470;
5437
108
    goto yy48;
5438
852
yy376:
5439
852
    YYDEBUG(376, *YYCURSOR);
5440
852
    yyaccept = 4;
5441
852
    yych = *(YYMARKER = ++YYCURSOR);
5442
852
    if (yych == 'K') goto yy472;
5443
754
    if (yych == 'k') goto yy472;
5444
16
    goto yy48;
5445
5.18k
yy377:
5446
5.18k
    YYDEBUG(377, *YYCURSOR);
5447
5.18k
    yyaccept = 4;
5448
5.18k
    yych = *(YYMARKER = ++YYCURSOR);
5449
5.18k
    if (yych == 'A') goto yy474;
5450
5.07k
    if (yych == 'a') goto yy474;
5451
4.23k
    goto yy48;
5452
4.23k
yy378:
5453
2.35k
    YYDEBUG(378, *YYCURSOR);
5454
2.35k
    yyaccept = 27;
5455
2.35k
    yych = *(YYMARKER = ++YYCURSOR);
5456
2.35k
    if (yybm[256+yych] & 128) {
5457
55
      goto yy47;
5458
55
    }
5459
2.29k
    if (yych == '\\') goto yy164;
5460
2.29k
yy379:
5461
2.29k
    YYDEBUG(379, *YYCURSOR);
5462
2.29k
    yyleng = YYCURSOR - SCNG(yy_text);
5463
2.29k
#line 1526 "Zend/zend_language_scanner.l"
5464
2.29k
    {
5465
2.29k
  RETURN_TOKEN_WITH_IDENT(T_CASE);
5466
2.29k
}
5467
0
#line 5468 "Zend/zend_language_scanner.c"
5468
29.4k
yy380:
5469
29.4k
    YYDEBUG(380, *YYCURSOR);
5470
29.4k
    yyaccept = 4;
5471
29.4k
    yych = *(YYMARKER = ++YYCURSOR);
5472
29.4k
    if (yych == 'H') goto yy475;
5473
29.2k
    if (yych == 'h') goto yy475;
5474
297
    goto yy48;
5475
31.7k
yy381:
5476
31.7k
    YYDEBUG(381, *YYCURSOR);
5477
31.7k
    yyaccept = 4;
5478
31.7k
    yych = *(YYMARKER = ++YYCURSOR);
5479
31.7k
    if (yych == 'S') goto yy477;
5480
30.3k
    if (yych == 's') goto yy477;
5481
241
    goto yy48;
5482
1.04k
yy382:
5483
1.04k
    YYDEBUG(382, *YYCURSOR);
5484
1.04k
    yyaccept = 4;
5485
1.04k
    yych = *(YYMARKER = ++YYCURSOR);
5486
1.04k
    if (yych == 'E') goto yy479;
5487
703
    if (yych == 'e') goto yy479;
5488
79
    goto yy48;
5489
23.6k
yy383:
5490
23.6k
    YYDEBUG(383, *YYCURSOR);
5491
23.6k
    yyaccept = 4;
5492
23.6k
    yych = *(YYMARKER = ++YYCURSOR);
5493
23.6k
    if (yych == 'T') goto yy481;
5494
22.1k
    if (yych == 't') goto yy481;
5495
506
    goto yy48;
5496
1.68k
yy384:
5497
1.68k
    YYDEBUG(384, *YYCURSOR);
5498
1.68k
    yyaccept = 4;
5499
1.68k
    yych = *(YYMARKER = ++YYCURSOR);
5500
1.68k
    if (yych == 'I') goto yy483;
5501
1.37k
    if (yych == 'i') goto yy483;
5502
1.06k
    goto yy48;
5503
1.06k
yy385:
5504
553
    YYDEBUG(385, *YYCURSOR);
5505
553
    yyaccept = 4;
5506
553
    yych = *(YYMARKER = ++YYCURSOR);
5507
553
    if (yych == 'A') goto yy484;
5508
508
    if (yych == 'a') goto yy484;
5509
17
    goto yy48;
5510
843
yy386:
5511
843
    YYDEBUG(386, *YYCURSOR);
5512
843
    yyaccept = 4;
5513
843
    yych = *(YYMARKER = ++YYCURSOR);
5514
843
    if (yych == 'U') goto yy485;
5515
742
    if (yych == 'u') goto yy485;
5516
138
    goto yy48;
5517
39.4k
yy387:
5518
39.4k
    YYDEBUG(387, *YYCURSOR);
5519
39.4k
    yyaccept = 28;
5520
39.4k
    yych = *(YYMARKER = ++YYCURSOR);
5521
39.4k
    if (yybm[256+yych] & 128) {
5522
124
      goto yy47;
5523
124
    }
5524
39.3k
    if (yych == '\\') goto yy164;
5525
39.2k
yy388:
5526
39.2k
    YYDEBUG(388, *YYCURSOR);
5527
39.2k
    yyleng = YYCURSOR - SCNG(yy_text);
5528
39.2k
#line 1546 "Zend/zend_language_scanner.l"
5529
39.2k
    {
5530
39.2k
  RETURN_TOKEN_WITH_IDENT(T_ECHO);
5531
39.2k
}
5532
0
#line 5533 "Zend/zend_language_scanner.c"
5533
2.42k
yy389:
5534
2.42k
    YYDEBUG(389, *YYCURSOR);
5535
2.42k
    yyaccept = 29;
5536
2.42k
    yych = *(YYMARKER = ++YYCURSOR);
5537
2.42k
    if (yych <= '\\') {
5538
1.24k
      if (yych <= 'H') {
5539
1.07k
        if (yych <= '/') goto yy390;
5540
36
        if (yych <= '9') goto yy47;
5541
33
        if (yych >= 'A') goto yy47;
5542
170
      } else {
5543
170
        if (yych <= 'I') goto yy486;
5544
78
        if (yych <= 'Z') goto yy47;
5545
12
        if (yych >= '\\') goto yy164;
5546
12
      }
5547
1.24k
    } else {
5548
1.18k
      if (yych <= 'h') {
5549
9
        if (yych == '_') goto yy47;
5550
9
        if (yych >= 'a') goto yy47;
5551
1.17k
      } else {
5552
1.17k
        if (yych <= 'i') goto yy486;
5553
38
        if (yych <= 'z') goto yy47;
5554
8
        if (yych >= 0x80) goto yy47;
5555
8
      }
5556
1.18k
    }
5557
1.08k
yy390:
5558
1.08k
    YYDEBUG(390, *YYCURSOR);
5559
1.08k
    yyleng = YYCURSOR - SCNG(yy_text);
5560
1.08k
#line 1466 "Zend/zend_language_scanner.l"
5561
1.08k
    {
5562
1.08k
  RETURN_TOKEN_WITH_IDENT(T_ELSE);
5563
1.08k
}
5564
0
#line 5565 "Zend/zend_language_scanner.c"
5565
1.00k
yy391:
5566
1.00k
    YYDEBUG(391, *YYCURSOR);
5567
1.00k
    yyaccept = 4;
5568
1.00k
    yych = *(YYMARKER = ++YYCURSOR);
5569
1.00k
    if (yych == 'Y') goto yy487;
5570
878
    if (yych == 'y') goto yy487;
5571
21
    goto yy48;
5572
1.06k
yy392:
5573
1.06k
    YYDEBUG(392, *YYCURSOR);
5574
1.06k
    yyaccept = 4;
5575
1.06k
    yych = *(YYMARKER = ++YYCURSOR);
5576
1.06k
    if (yych == 'E') goto yy489;
5577
885
    if (yych == 'e') goto yy489;
5578
81
    goto yy48;
5579
4.24k
yy393:
5580
4.24k
    YYDEBUG(393, *YYCURSOR);
5581
4.24k
    yyaccept = 4;
5582
4.24k
    yych = *(YYMARKER = ++YYCURSOR);
5583
4.24k
    if (yych == 'O') goto yy490;
5584
1.86k
    if (yych == 'o') goto yy490;
5585
399
    goto yy48;
5586
4.14k
yy394:
5587
4.14k
    YYDEBUG(394, *YYCURSOR);
5588
4.14k
    yyaccept = 4;
5589
4.14k
    yych = *(YYMARKER = ++YYCURSOR);
5590
4.14k
    if (yych == 'F') goto yy491;
5591
1.56k
    if (yych == 'f') goto yy491;
5592
62
    goto yy48;
5593
659
yy395:
5594
659
    YYDEBUG(395, *YYCURSOR);
5595
659
    yyaccept = 4;
5596
659
    yych = *(YYMARKER = ++YYCURSOR);
5597
659
    if (yych == 'W') goto yy493;
5598
555
    if (yych == 'w') goto yy493;
5599
34
    goto yy48;
5600
4.20k
yy396:
5601
4.20k
    YYDEBUG(396, *YYCURSOR);
5602
4.20k
    yyaccept = 4;
5603
4.20k
    yych = *(YYMARKER = ++YYCURSOR);
5604
4.20k
    if (yych == 'H') goto yy494;
5605
3.60k
    if (yych == 'h') goto yy494;
5606
191
    goto yy48;
5607
64.1k
yy397:
5608
64.1k
    YYDEBUG(397, *YYCURSOR);
5609
64.1k
    yyaccept = 4;
5610
64.1k
    yych = *(YYMARKER = ++YYCURSOR);
5611
64.1k
    if (yych <= 0x1F) {
5612
54.1k
      if (yych <= '\n') {
5613
416
        if (yych <= 0x08) goto yy48;
5614
123
        goto yy495;
5615
53.7k
      } else {
5616
53.7k
        if (yych == '\r') goto yy495;
5617
114
        goto yy48;
5618
53.7k
      }
5619
54.1k
    } else {
5620
9.94k
      if (yych <= '#') {
5621
2.01k
        if (yych <= ' ') goto yy495;
5622
517
        if (yych <= '"') goto yy48;
5623
426
        goto yy497;
5624
7.93k
      } else {
5625
7.93k
        if (yych == '/') goto yy498;
5626
7.58k
        goto yy48;
5627
7.93k
      }
5628
9.94k
    }
5629
1.08k
yy398:
5630
1.08k
    YYDEBUG(398, *YYCURSOR);
5631
1.08k
    yyaccept = 30;
5632
1.08k
    yych = *(YYMARKER = ++YYCURSOR);
5633
1.08k
    if (yybm[256+yych] & 128) {
5634
76
      goto yy47;
5635
76
    }
5636
1.00k
    if (yych == '\\') goto yy164;
5637
1.00k
yy399:
5638
1.00k
    YYDEBUG(399, *YYCURSOR);
5639
1.00k
    yyleng = YYCURSOR - SCNG(yy_text);
5640
1.00k
#line 1718 "Zend/zend_language_scanner.l"
5641
1.00k
    {
5642
1.00k
  RETURN_TOKEN_WITH_IDENT(T_EVAL);
5643
1.00k
}
5644
0
#line 5645 "Zend/zend_language_scanner.c"
5645
519
yy400:
5646
519
    YYDEBUG(400, *YYCURSOR);
5647
519
    yyaccept = 31;
5648
519
    yych = *(YYMARKER = ++YYCURSOR);
5649
519
    if (yybm[256+yych] & 128) {
5650
5
      goto yy47;
5651
5
    }
5652
514
    if (yych == '\\') goto yy164;
5653
511
yy401:
5654
511
    YYDEBUG(401, *YYCURSOR);
5655
511
    yyleng = YYCURSOR - SCNG(yy_text);
5656
511
#line 1399 "Zend/zend_language_scanner.l"
5657
511
    {
5658
511
  RETURN_TOKEN_WITH_IDENT(T_EXIT);
5659
511
}
5660
0
#line 5661 "Zend/zend_language_scanner.c"
5661
6.93k
yy402:
5662
6.93k
    YYDEBUG(402, *YYCURSOR);
5663
6.93k
    yyaccept = 4;
5664
6.93k
    yych = *(YYMARKER = ++YYCURSOR);
5665
6.93k
    if (yych == 'N') goto yy499;
5666
6.74k
    if (yych == 'n') goto yy499;
5667
274
    goto yy48;
5668
3.93k
yy403:
5669
3.93k
    YYDEBUG(403, *YYCURSOR);
5670
3.93k
    yyaccept = 4;
5671
3.93k
    yych = *(YYMARKER = ++YYCURSOR);
5672
3.93k
    if (yych == 'L') goto yy500;
5673
3.78k
    if (yych == 'l') goto yy500;
5674
160
    goto yy48;
5675
11.1k
yy404:
5676
11.1k
    YYDEBUG(404, *YYCURSOR);
5677
11.1k
    yyaccept = 4;
5678
11.1k
    yych = *(YYMARKER = ++YYCURSOR);
5679
11.1k
    if (yych == 'A') goto yy502;
5680
11.0k
    if (yych == 'a') goto yy502;
5681
448
    goto yy48;
5682
53.2k
yy405:
5683
53.2k
    YYDEBUG(405, *YYCURSOR);
5684
53.2k
    yyaccept = 4;
5685
53.2k
    yych = *(YYMARKER = ++YYCURSOR);
5686
53.2k
    if (yych == 'T') goto yy503;
5687
52.3k
    if (yych == 't') goto yy503;
5688
1.30k
    goto yy48;
5689
1.30k
yy406:
5690
1.27k
    YYDEBUG(406, *YYCURSOR);
5691
1.27k
    yyaccept = 4;
5692
1.27k
    yych = *(YYMARKER = ++YYCURSOR);
5693
1.27k
    if (yych == 'A') goto yy504;
5694
685
    if (yych == 'a') goto yy504;
5695
145
    goto yy48;
5696
1.05k
yy407:
5697
1.05k
    YYDEBUG(407, *YYCURSOR);
5698
1.05k
    yyaccept = 32;
5699
1.05k
    yych = *(YYMARKER = ++YYCURSOR);
5700
1.05k
    if (yybm[256+yych] & 128) {
5701
17
      goto yy47;
5702
17
    }
5703
1.03k
    if (yych == '\\') goto yy164;
5704
1.03k
yy408:
5705
1.03k
    YYDEBUG(408, *YYCURSOR);
5706
1.03k
    yyleng = YYCURSOR - SCNG(yy_text);
5707
1.03k
#line 1542 "Zend/zend_language_scanner.l"
5708
1.03k
    {
5709
1.03k
  RETURN_TOKEN_WITH_IDENT(T_GOTO);
5710
1.03k
}
5711
0
#line 5712 "Zend/zend_language_scanner.c"
5712
21.0k
yy409:
5713
21.0k
    YYDEBUG(409, *YYCURSOR);
5714
21.0k
    yyaccept = 4;
5715
21.0k
    yych = *(YYMARKER = ++YYCURSOR);
5716
21.0k
    if (yych == 'E') goto yy505;
5717
20.4k
    if (yych == 'e') goto yy505;
5718
1.16k
    goto yy48;
5719
1.56k
yy410:
5720
1.56k
    YYDEBUG(410, *YYCURSOR);
5721
1.56k
    yyaccept = 4;
5722
1.56k
    yych = *(YYMARKER = ++YYCURSOR);
5723
1.56k
    if (yych == 'U') goto yy506;
5724
1.14k
    if (yych == 'u') goto yy506;
5725
131
    goto yy48;
5726
4.05k
yy411:
5727
4.05k
    YYDEBUG(411, *YYCURSOR);
5728
4.05k
    yyaccept = 4;
5729
4.05k
    yych = *(YYMARKER = ++YYCURSOR);
5730
4.05k
    if (yych <= 'E') {
5731
1.50k
      if (yych == 'A') goto yy507;
5732
696
      if (yych <= 'D') goto yy48;
5733
512
      goto yy508;
5734
2.55k
    } else {
5735
2.55k
      if (yych <= 'a') {
5736
1.38k
        if (yych <= '`') goto yy48;
5737
1.34k
        goto yy507;
5738
1.38k
      } else {
5739
1.16k
        if (yych == 'e') goto yy508;
5740
78
        goto yy48;
5741
1.16k
      }
5742
2.55k
    }
5743
9.83k
yy412:
5744
9.83k
    YYDEBUG(412, *YYCURSOR);
5745
9.83k
    yyaccept = 4;
5746
9.83k
    yych = *(YYMARKER = ++YYCURSOR);
5747
9.83k
    if (yych == 'R') goto yy509;
5748
9.51k
    if (yych == 'r') goto yy509;
5749
511
    goto yy48;
5750
2.10k
yy413:
5751
2.10k
    YYDEBUG(413, *YYCURSOR);
5752
2.10k
    yyaccept = 4;
5753
2.10k
    yych = *(YYMARKER = ++YYCURSOR);
5754
2.10k
    if (yych == 'T') goto yy510;
5755
2.07k
    if (yych == 't') goto yy510;
5756
19
    goto yy48;
5757
1.04k
yy414:
5758
1.04k
    YYDEBUG(414, *YYCURSOR);
5759
1.04k
    yyaccept = 33;
5760
1.04k
    yych = *(YYMARKER = ++YYCURSOR);
5761
1.04k
    if (yybm[256+yych] & 128) {
5762
29
      goto yy47;
5763
29
    }
5764
1.01k
    if (yych == '\\') goto yy164;
5765
1.01k
yy415:
5766
1.01k
    YYDEBUG(415, *YYCURSOR);
5767
1.01k
    yyleng = YYCURSOR - SCNG(yy_text);
5768
1.01k
#line 1814 "Zend/zend_language_scanner.l"
5769
1.01k
    {
5770
1.01k
  RETURN_TOKEN_WITH_IDENT(T_LIST);
5771
1.01k
}
5772
0
#line 5773 "Zend/zend_language_scanner.c"
5773
422
yy416:
5774
422
    YYDEBUG(416, *YYCURSOR);
5775
422
    yyaccept = 4;
5776
422
    yych = *(YYMARKER = ++YYCURSOR);
5777
422
    if (yych == 'H') goto yy512;
5778
422
    if (yych == 'h') goto yy512;
5779
20
    goto yy48;
5780
7.19k
yy417:
5781
7.19k
    YYDEBUG(417, *YYCURSOR);
5782
7.19k
    yyaccept = 4;
5783
7.19k
    yych = *(YYMARKER = ++YYCURSOR);
5784
7.19k
    if (yych == 'S') goto yy514;
5785
6.08k
    if (yych == 's') goto yy514;
5786
206
    goto yy48;
5787
4.93k
yy418:
5788
4.93k
    YYDEBUG(418, *YYCURSOR);
5789
4.93k
    yyaccept = 4;
5790
4.93k
    yych = *(YYMARKER = ++YYCURSOR);
5791
4.93k
    if (yych == 'T') goto yy515;
5792
4.74k
    if (yych == 't') goto yy515;
5793
40
    goto yy48;
5794
3.61k
yy419:
5795
3.61k
    YYDEBUG(419, *YYCURSOR);
5796
3.61k
    yyaccept = 4;
5797
3.61k
    yych = *(YYMARKER = ++YYCURSOR);
5798
3.61k
    if (yych == 'A') goto yy517;
5799
3.39k
    if (yych == 'a') goto yy517;
5800
124
    goto yy48;
5801
2.79k
yy420:
5802
2.79k
    YYDEBUG(420, *YYCURSOR);
5803
2.79k
    yyaccept = 4;
5804
2.79k
    yych = *(YYMARKER = ++YYCURSOR);
5805
2.79k
    if (yych == 'E') goto yy518;
5806
2.59k
    if (yych == 'e') goto yy518;
5807
326
    goto yy48;
5808
26.3k
yy421:
5809
26.3k
    YYDEBUG(421, *YYCURSOR);
5810
26.3k
    yyaccept = 4;
5811
26.3k
    yych = *(YYMARKER = ++YYCURSOR);
5812
26.3k
    if (yych == 'I') goto yy519;
5813
26.1k
    if (yych == 'i') goto yy519;
5814
123
    goto yy48;
5815
793
yy422:
5816
793
    YYDEBUG(422, *YYCURSOR);
5817
793
    yyaccept = 4;
5818
793
    yych = *(YYMARKER = ++YYCURSOR);
5819
793
    if (yych == 'O') goto yy520;
5820
788
    if (yych == 'o') goto yy520;
5821
74
    goto yy48;
5822
11.4k
yy423:
5823
11.4k
    YYDEBUG(423, *YYCURSOR);
5824
11.4k
    yyaccept = 4;
5825
11.4k
    yych = *(YYMARKER = ++YYCURSOR);
5826
11.4k
    if (yych == 'I') goto yy521;
5827
11.1k
    if (yych == 'i') goto yy521;
5828
243
    goto yy48;
5829
12.4k
yy424:
5830
12.4k
    YYDEBUG(424, *YYCURSOR);
5831
12.4k
    yyaccept = 4;
5832
12.4k
    yych = *(YYMARKER = ++YYCURSOR);
5833
12.4k
    if (yych == 'R') goto yy522;
5834
12.3k
    if (yych == 'r') goto yy522;
5835
507
    goto yy48;
5836
8.62k
yy425:
5837
8.62k
    YYDEBUG(425, *YYCURSOR);
5838
8.62k
    yyaccept = 4;
5839
8.62k
    yych = *(YYMARKER = ++YYCURSOR);
5840
8.62k
    if (yych == 'I') goto yy523;
5841
8.37k
    if (yych == 'i') goto yy523;
5842
255
    goto yy48;
5843
3.47k
yy426:
5844
3.47k
    YYDEBUG(426, *YYCURSOR);
5845
3.47k
    yyaccept = 4;
5846
3.47k
    yych = *(YYMARKER = ++YYCURSOR);
5847
3.47k
    if (yych == 'C') goto yy524;
5848
3.35k
    if (yych == 'c') goto yy524;
5849
218
    goto yy48;
5850
8.69k
yy427:
5851
8.69k
    YYDEBUG(427, *YYCURSOR);
5852
8.69k
    yyaccept = 4;
5853
8.69k
    yych = *(YYMARKER = ++YYCURSOR);
5854
8.69k
    if (yych == 'W') goto yy525;
5855
8.51k
    if (yych == 'w') goto yy525;
5856
272
    goto yy48;
5857
3.68k
yy428:
5858
3.68k
    YYDEBUG(428, *YYCURSOR);
5859
3.68k
    yyaccept = 4;
5860
3.68k
    yych = *(YYMARKER = ++YYCURSOR);
5861
3.68k
    if (yych == 'T') goto yy527;
5862
3.57k
    if (yych == 't') goto yy527;
5863
1.15k
    goto yy48;
5864
5.06k
yy429:
5865
5.06k
    YYDEBUG(429, *YYCURSOR);
5866
5.06k
    yyaccept = 4;
5867
5.06k
    yych = *(YYMARKER = ++YYCURSOR);
5868
5.06k
    if (yych == 'T') goto yy529;
5869
5.03k
    if (yych == 't') goto yy529;
5870
1.87k
    goto yy48;
5871
1.87k
yy430:
5872
587
    YYDEBUG(430, *YYCURSOR);
5873
587
    yyaccept = 4;
5874
587
    yych = *(YYMARKER = ++YYCURSOR);
5875
587
    if (yych == 'E') goto yy531;
5876
549
    if (yych == 'e') goto yy531;
5877
11
    goto yy48;
5878
22.6k
yy431:
5879
22.6k
    YYDEBUG(431, *YYCURSOR);
5880
22.6k
    yyaccept = 4;
5881
22.6k
    yych = *(YYMARKER = ++YYCURSOR);
5882
22.6k
    if (yych == 'D') goto yy533;
5883
22.5k
    if (yych == 'd') goto yy533;
5884
1.10k
    goto yy48;
5885
1.10k
yy432:
5886
987
    YYDEBUG(432, *YYCURSOR);
5887
987
    yyaccept = 4;
5888
987
    yych = *(YYMARKER = ++YYCURSOR);
5889
987
    if (yych == 'A') goto yy535;
5890
195
    if (yych == 'a') goto yy535;
5891
111
    goto yy48;
5892
2.83k
yy433:
5893
2.83k
    YYDEBUG(433, *YYCURSOR);
5894
2.83k
    yyaccept = 4;
5895
2.83k
    yych = *(YYMARKER = ++YYCURSOR);
5896
2.83k
    if (yych == 'R') goto yy536;
5897
419
    if (yych == 'r') goto yy536;
5898
417
    goto yy48;
5899
2.65k
yy434:
5900
2.65k
    YYDEBUG(434, *YYCURSOR);
5901
2.65k
    yyaccept = 4;
5902
2.65k
    yych = *(YYMARKER = ++YYCURSOR);
5903
2.65k
    if (yych == 'L') goto yy537;
5904
230
    if (yych == 'l') goto yy537;
5905
205
    goto yy48;
5906
3.09k
yy435:
5907
3.09k
    YYDEBUG(435, *YYCURSOR);
5908
3.09k
    yyaccept = 4;
5909
3.09k
    yych = *(YYMARKER = ++YYCURSOR);
5910
3.09k
    if (yych == 'N') goto yy538;
5911
139
    if (yych == 'n') goto yy538;
5912
89
    goto yy48;
5913
346
yy436:
5914
346
    YYDEBUG(436, *YYCURSOR);
5915
346
    yyaccept = 4;
5916
346
    yych = *(YYMARKER = ++YYCURSOR);
5917
346
    if (yych == 'L') goto yy539;
5918
250
    if (yych == 'l') goto yy539;
5919
77
    goto yy48;
5920
1.69k
yy437:
5921
1.69k
    YYDEBUG(437, *YYCURSOR);
5922
1.69k
    yyaccept = 4;
5923
1.69k
    yych = *(YYMARKER = ++YYCURSOR);
5924
1.69k
    if (yych == 'N') goto yy540;
5925
257
    if (yych == 'n') goto yy540;
5926
255
    goto yy48;
5927
8.48k
yy438:
5928
8.48k
    YYDEBUG(438, *YYCURSOR);
5929
8.48k
    yyaccept = 4;
5930
8.48k
    yych = *(YYMARKER = ++YYCURSOR);
5931
8.48k
    if (yych == 'T') goto yy541;
5932
518
    if (yych == 't') goto yy541;
5933
495
    goto yy48;
5934
2.63k
yy439:
5935
2.63k
    YYDEBUG(439, *YYCURSOR);
5936
2.63k
    yyaccept = 4;
5937
2.63k
    yych = *(YYMARKER = ++YYCURSOR);
5938
2.63k
    if (yych == 'M') goto yy542;
5939
95
    if (yych == 'm') goto yy542;
5940
24
    goto yy48;
5941
484
yy440:
5942
484
    YYDEBUG(440, *YYCURSOR);
5943
484
    yyaccept = 4;
5944
484
    yych = *(YYMARKER = ++YYCURSOR);
5945
484
    if (yych == 'O') goto yy543;
5946
29
    if (yych == 'o') goto yy543;
5947
26
    goto yy48;
5948
283
yy441:
5949
283
    YYDEBUG(441, *YYCURSOR);
5950
283
    yyaccept = 4;
5951
283
    yych = *(YYMARKER = ++YYCURSOR);
5952
283
    if (yych == 'A') goto yy544;
5953
57
    if (yych == 'a') goto yy544;
5954
24
    goto yy48;
5955
24
yy442:
5956
24
    YYDEBUG(442, *YYCURSOR);
5957
24
    ++YYCURSOR;
5958
24
    YYFILL(1);
5959
24
    yych = *YYCURSOR;
5960
24
    if (yych <= '\f') {
5961
0
      if (yych <= 0x00) goto yy86;
5962
0
      if (yych == '\n') goto yy84;
5963
0
      goto yy225;
5964
24
    } else {
5965
24
      if (yych <= '\r') goto yy84;
5966
24
      if (yych == '.') goto yy352;
5967
15
      goto yy225;
5968
24
    }
5969
92.4k
yy443:
5970
92.4k
    YYDEBUG(443, *YYCURSOR);
5971
92.4k
    ++YYCURSOR;
5972
92.4k
    YYFILL(1);
5973
92.4k
    yych = *YYCURSOR;
5974
92.4k
    YYDEBUG(444, *YYCURSOR);
5975
92.4k
    if (yybm[0+yych] & 128) {
5976
81.0k
      goto yy443;
5977
81.0k
    }
5978
11.4k
    if (yych <= 0x00) goto yy86;
5979
10.7k
    if (yych <= '\r') goto yy545;
5980
1.99k
    goto yy547;
5981
4.28k
yy445:
5982
4.28k
    YYDEBUG(445, *YYCURSOR);
5983
4.28k
    yych = *++YYCURSOR;
5984
4.28k
    if (yych == 'Y') goto yy549;
5985
4.28k
    if (yych == 'y') goto yy549;
5986
71
    goto yy86;
5987
224
yy446:
5988
224
    YYDEBUG(446, *YYCURSOR);
5989
224
    yych = *++YYCURSOR;
5990
224
    if (yych == 'R') goto yy551;
5991
212
    if (yych == 'r') goto yy551;
5992
207
    goto yy86;
5993
334
yy447:
5994
334
    YYDEBUG(447, *YYCURSOR);
5995
334
    yych = *++YYCURSOR;
5996
334
    if (yych == 'E') goto yy556;
5997
334
    if (yych == 'e') goto yy556;
5998
281
    goto yy553;
5999
281
yy448:
6000
112
    YYDEBUG(448, *YYCURSOR);
6001
112
    yych = *++YYCURSOR;
6002
112
    if (yych == 'L') goto yy557;
6003
112
    if (yych == 'l') goto yy557;
6004
39
    goto yy86;
6005
464
yy449:
6006
464
    YYDEBUG(449, *YYCURSOR);
6007
464
    yych = *++YYCURSOR;
6008
464
    if (yych == 'T') goto yy558;
6009
459
    if (yych == 't') goto yy558;
6010
5
    goto yy86;
6011
1.03k
yy450:
6012
1.03k
    YYDEBUG(450, *YYCURSOR);
6013
1.03k
    ++YYCURSOR;
6014
1.03k
    YYFILL(1);
6015
1.03k
    yych = *YYCURSOR;
6016
3.41k
yy451:
6017
3.41k
    YYDEBUG(451, *YYCURSOR);
6018
3.41k
    if (yych <= 0x1F) {
6019
9
      if (yych == '\t') goto yy450;
6020
9
      goto yy86;
6021
3.41k
    } else {
6022
3.41k
      if (yych <= ' ') goto yy450;
6023
2.37k
      if (yych != ')') goto yy86;
6024
2.37k
    }
6025
1.38k
    YYDEBUG(452, *YYCURSOR);
6026
1.38k
    ++YYCURSOR;
6027
1.38k
    YYDEBUG(453, *YYCURSOR);
6028
1.38k
    yyleng = YYCURSOR - SCNG(yy_text);
6029
1.38k
#line 1638 "Zend/zend_language_scanner.l"
6030
1.38k
    {
6031
1.38k
  RETURN_TOKEN(T_INT_CAST);
6032
1.38k
}
6033
0
#line 6034 "Zend/zend_language_scanner.c"
6034
122
yy454:
6035
122
    YYDEBUG(454, *YYCURSOR);
6036
122
    yych = *++YYCURSOR;
6037
122
    if (yych == 'G') goto yy560;
6038
119
    if (yych == 'g') goto yy560;
6039
83
    goto yy86;
6040
531
yy455:
6041
531
    YYDEBUG(455, *YYCURSOR);
6042
531
    yych = *++YYCURSOR;
6043
531
    if (yych == 'C') goto yy561;
6044
517
    if (yych == 'c') goto yy561;
6045
128
    goto yy86;
6046
128
yy456:
6047
52
    YYDEBUG(456, *YYCURSOR);
6048
52
    ++YYCURSOR;
6049
52
    YYFILL(1);
6050
52
    yych = *YYCURSOR;
6051
52
    YYDEBUG(457, *YYCURSOR);
6052
52
    if (yych <= 0x1F) {
6053
3
      if (yych == '\t') goto yy456;
6054
3
      goto yy86;
6055
49
    } else {
6056
49
      if (yych <= ' ') goto yy456;
6057
49
      if (yych == ')') goto yy562;
6058
43
      goto yy86;
6059
49
    }
6060
4.27k
yy458:
6061
4.27k
    YYDEBUG(458, *YYCURSOR);
6062
4.27k
    yych = *++YYCURSOR;
6063
4.27k
    if (yych == 'N') goto yy564;
6064
4.27k
    if (yych == 'n') goto yy564;
6065
765
    goto yy86;
6066
765
yy459:
6067
173
    YYDEBUG(459, *YYCURSOR);
6068
173
    yych = *++YYCURSOR;
6069
173
    if (yych == 'T') goto yy565;
6070
173
    if (yych == 't') goto yy565;
6071
167
    goto yy86;
6072
167
yy460:
6073
83
    YYDEBUG(460, *YYCURSOR);
6074
83
    ++YYCURSOR;
6075
83
    YYFILL(1);
6076
83
    yych = *YYCURSOR;
6077
83
    YYDEBUG(461, *YYCURSOR);
6078
83
    if (yych <= 0x1F) {
6079
0
      if (yych == '\t') goto yy460;
6080
0
      goto yy86;
6081
83
    } else {
6082
83
      if (yych <= ' ') goto yy460;
6083
77
      if (yych == ')') goto yy567;
6084
6
      goto yy86;
6085
77
    }
6086
26.4k
yy462:
6087
26.4k
    YYDEBUG(462, *YYCURSOR);
6088
26.4k
    ++YYCURSOR;
6089
26.4k
    YYFILL(3);
6090
26.4k
    yych = *YYCURSOR;
6091
28.8k
yy463:
6092
28.8k
    YYDEBUG(463, *YYCURSOR);
6093
28.8k
    if (yych <= 'Z') {
6094
18.1k
      if (yych <= '/') {
6095
1.00k
        if (yych == '"') goto yy569;
6096
843
        goto yy86;
6097
17.1k
      } else {
6098
17.1k
        if (yych <= '9') goto yy462;
6099
2.78k
        if (yych <= '@') goto yy86;
6100
2.14k
        goto yy462;
6101
2.78k
      }
6102
18.1k
    } else {
6103
10.6k
      if (yych <= '`') {
6104
2.38k
        if (yych == '_') goto yy462;
6105
177
        goto yy86;
6106
8.30k
      } else {
6107
8.30k
        if (yych <= 'z') goto yy462;
6108
1.35k
        if (yych <= 0x7F) goto yy86;
6109
813
        goto yy462;
6110
1.35k
      }
6111
10.6k
    }
6112
26.8k
yy464:
6113
26.8k
    YYDEBUG(464, *YYCURSOR);
6114
26.8k
    ++YYCURSOR;
6115
26.8k
    YYFILL(3);
6116
26.8k
    yych = *YYCURSOR;
6117
35.5k
yy465:
6118
35.5k
    YYDEBUG(465, *YYCURSOR);
6119
35.5k
    if (yych <= 'Z') {
6120
11.1k
      if (yych <= '/') {
6121
7.62k
        if (yych == '\'') goto yy569;
6122
246
        goto yy86;
6123
7.62k
      } else {
6124
3.49k
        if (yych <= '9') goto yy464;
6125
3.47k
        if (yych <= '@') goto yy86;
6126
2.74k
        goto yy464;
6127
3.47k
      }
6128
24.4k
    } else {
6129
24.4k
      if (yych <= '`') {
6130
285
        if (yych == '_') goto yy464;
6131
78
        goto yy86;
6132
24.1k
      } else {
6133
24.1k
        if (yych <= 'z') goto yy464;
6134
1.78k
        if (yych <= 0x7F) goto yy86;
6135
1.47k
        goto yy464;
6136
1.78k
      }
6137
24.4k
    }
6138
1.22M
yy466:
6139
1.22M
    YYDEBUG(466, *YYCURSOR);
6140
1.22M
    ++YYCURSOR;
6141
1.24M
yy467:
6142
1.24M
    YYDEBUG(467, *YYCURSOR);
6143
1.24M
    yyleng = YYCURSOR - SCNG(yy_text);
6144
1.24M
#line 2678 "Zend/zend_language_scanner.l"
6145
1.24M
    {
6146
1.24M
  char *s;
6147
1.24M
  unsigned char *saved_cursor;
6148
1.24M
  int bprefix = (yytext[0] != '<') ? 1 : 0, spacing = 0, indentation = 0;
6149
1.24M
  zend_heredoc_label *heredoc_label = emalloc(sizeof(zend_heredoc_label));
6150
1.24M
  bool is_heredoc = 1;
6151
6152
1.24M
  CG(zend_lineno)++;
6153
1.24M
  heredoc_label->length = yyleng-bprefix-3-1-(yytext[yyleng-2]=='\r'?1:0);
6154
1.24M
  s = yytext+bprefix+3;
6155
1.24M
  while ((*s == ' ') || (*s == '\t')) {
6156
3.77k
    s++;
6157
3.77k
    heredoc_label->length--;
6158
3.77k
  }
6159
6160
1.24M
  if (*s == '\'') {
6161
6.94k
    s++;
6162
6.94k
    heredoc_label->length -= 2;
6163
6.94k
    is_heredoc = 0;
6164
6165
6.94k
    BEGIN(ST_NOWDOC);
6166
1.23M
  } else {
6167
1.23M
    if (*s == '"') {
6168
59
      s++;
6169
59
      heredoc_label->length -= 2;
6170
59
    }
6171
6172
1.23M
    BEGIN(ST_HEREDOC);
6173
1.23M
  }
6174
6175
1.24M
  heredoc_label->label = estrndup(s, heredoc_label->length);
6176
1.24M
  heredoc_label->indentation_uses_spaces = 0;
6177
1.24M
  heredoc_label->indentation = 0;
6178
1.24M
  saved_cursor = YYCURSOR;
6179
6180
1.24M
  zend_ptr_stack_push(&SCNG(heredoc_label_stack), (void *) heredoc_label);
6181
6182
1.28M
  while (YYCURSOR < YYLIMIT && (*YYCURSOR == ' ' || *YYCURSOR == '\t')) {
6183
40.5k
    if (*YYCURSOR == '\t') {
6184
1.59k
      spacing |= HEREDOC_USING_TABS;
6185
38.9k
    } else {
6186
38.9k
      spacing |= HEREDOC_USING_SPACES;
6187
38.9k
    }
6188
40.5k
    ++YYCURSOR;
6189
40.5k
    ++indentation;
6190
40.5k
  }
6191
6192
1.24M
  if (YYCURSOR == YYLIMIT) {
6193
147
    YYCURSOR = saved_cursor;
6194
147
    RETURN_TOKEN(T_START_HEREDOC);
6195
147
  }
6196
6197
  /* Check for ending label on the next line */
6198
1.24M
  if (heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, s, heredoc_label->length)) {
6199
3.17k
    if (!IS_LABEL_SUCCESSOR(YYCURSOR[heredoc_label->length])) {
6200
1.33k
      if (spacing == (HEREDOC_USING_SPACES | HEREDOC_USING_TABS)) {
6201
3
        zend_throw_exception(zend_ce_parse_error, "Invalid indentation - tabs and spaces cannot be mixed", 0);
6202
3
        if (PARSER_MODE()) {
6203
3
          RETURN_TOKEN(T_ERROR);
6204
3
        }
6205
3
      }
6206
6207
1.33k
      YYCURSOR = saved_cursor;
6208
1.33k
      heredoc_label->indentation = indentation;
6209
6210
1.33k
      BEGIN(ST_END_HEREDOC);
6211
1.33k
      RETURN_TOKEN(T_START_HEREDOC);
6212
1.33k
    }
6213
3.17k
  }
6214
6215
1.24M
  YYCURSOR = saved_cursor;
6216
6217
1.24M
  if (is_heredoc && !SCNG(heredoc_scan_ahead)) {
6218
54.9k
    zend_lex_state current_state;
6219
54.9k
    zend_string *saved_doc_comment = CG(doc_comment);
6220
54.9k
    int heredoc_nesting_level = 1;
6221
54.9k
    int first_token = 0;
6222
54.9k
    int error = 0;
6223
6224
54.9k
    zend_save_lexical_state(&current_state);
6225
6226
54.9k
    SCNG(heredoc_scan_ahead) = 1;
6227
54.9k
    SCNG(heredoc_indentation) = 0;
6228
54.9k
    SCNG(heredoc_indentation_uses_spaces) = 0;
6229
54.9k
    SCNG(on_event_context) = NULL;
6230
54.9k
    LANG_SCNG(on_event) = NULL;
6231
54.9k
    CG(doc_comment) = NULL;
6232
6233
54.9k
    zend_ptr_stack_reverse_apply(&current_state.heredoc_label_stack, copy_heredoc_label_stack);
6234
6235
54.9k
    zend_exception_save();
6236
12.7M
    while (heredoc_nesting_level) {
6237
12.7M
      zval zv;
6238
12.7M
      int retval;
6239
6240
12.7M
      ZVAL_UNDEF(&zv);
6241
12.7M
      retval = lex_scan(&zv, NULL);
6242
12.7M
      zval_ptr_dtor_nogc(&zv);
6243
6244
12.7M
      if (EG(exception)) {
6245
52.3k
        zend_clear_exception();
6246
52.3k
        break;
6247
52.3k
      }
6248
6249
12.6M
      if (!first_token) {
6250
54.9k
        first_token = retval;
6251
54.9k
      }
6252
6253
12.6M
      switch (retval) {
6254
1.18M
        case T_START_HEREDOC:
6255
1.18M
          ++heredoc_nesting_level;
6256
1.18M
          break;
6257
12.2k
        case T_END_HEREDOC:
6258
12.2k
          --heredoc_nesting_level;
6259
12.2k
          break;
6260
873
        case END:
6261
873
          heredoc_nesting_level = 0;
6262
12.6M
      }
6263
12.6M
    }
6264
54.9k
    zend_exception_restore();
6265
6266
54.9k
    if (
6267
54.9k
        (first_token == T_VARIABLE
6268
52.4k
         || first_token == T_DOLLAR_OPEN_CURLY_BRACES
6269
21.8k
         || first_token == T_CURLY_OPEN
6270
54.9k
        ) && SCNG(heredoc_indentation)) {
6271
3
      zend_throw_exception_ex(zend_ce_parse_error, 0, "Invalid body indentation level (expecting an indentation level of at least %d)", SCNG(heredoc_indentation));
6272
3
      error = 1;
6273
3
    }
6274
6275
54.9k
    heredoc_label->indentation = SCNG(heredoc_indentation);
6276
54.9k
    heredoc_label->indentation_uses_spaces = SCNG(heredoc_indentation_uses_spaces);
6277
6278
54.9k
    zend_restore_lexical_state(&current_state);
6279
54.9k
    SCNG(heredoc_scan_ahead) = 0;
6280
54.9k
    CG(increment_lineno) = 0;
6281
54.9k
    CG(doc_comment) = saved_doc_comment;
6282
6283
54.9k
    if (PARSER_MODE() && error) {
6284
3
      RETURN_TOKEN(T_ERROR);
6285
3
    }
6286
54.9k
  }
6287
6288
1.24M
  RETURN_TOKEN(T_START_HEREDOC);
6289
1.24M
}
6290
0
#line 6291 "Zend/zend_language_scanner.c"
6291
17.5k
yy468:
6292
17.5k
    YYDEBUG(468, *YYCURSOR);
6293
17.5k
    yych = *++YYCURSOR;
6294
17.5k
    if (yych == '\n') goto yy466;
6295
17.4k
    goto yy467;
6296
17.4k
yy469:
6297
1.58k
    YYDEBUG(469, *YYCURSOR);
6298
1.58k
    yyaccept = 4;
6299
1.58k
    yych = *(YYMARKER = ++YYCURSOR);
6300
1.58k
    if (yych == 'A') goto yy570;
6301
1.38k
    if (yych == 'a') goto yy570;
6302
32
    goto yy48;
6303
10.6k
yy470:
6304
10.6k
    YYDEBUG(470, *YYCURSOR);
6305
10.6k
    yyaccept = 34;
6306
10.6k
    yych = *(YYMARKER = ++YYCURSOR);
6307
10.6k
    if (yybm[256+yych] & 128) {
6308
2.49k
      goto yy47;
6309
2.49k
    }
6310
8.13k
    if (yych == '\\') goto yy164;
6311
8.12k
yy471:
6312
8.12k
    YYDEBUG(471, *YYCURSOR);
6313
8.12k
    yyleng = YYCURSOR - SCNG(yy_text);
6314
8.12k
#line 1818 "Zend/zend_language_scanner.l"
6315
8.12k
    {
6316
8.12k
  RETURN_TOKEN_WITH_IDENT(T_ARRAY);
6317
8.12k
}
6318
0
#line 6319 "Zend/zend_language_scanner.c"
6319
836
yy472:
6320
836
    YYDEBUG(472, *YYCURSOR);
6321
836
    yyaccept = 35;
6322
836
    yych = *(YYMARKER = ++YYCURSOR);
6323
836
    if (yybm[256+yych] & 128) {
6324
9
      goto yy47;
6325
9
    }
6326
827
    if (yych == '\\') goto yy164;
6327
827
yy473:
6328
827
    YYDEBUG(473, *YYCURSOR);
6329
827
    yyleng = YYCURSOR - SCNG(yy_text);
6330
827
#line 1534 "Zend/zend_language_scanner.l"
6331
827
    {
6332
827
  RETURN_TOKEN_WITH_IDENT(T_BREAK);
6333
827
}
6334
0
#line 6335 "Zend/zend_language_scanner.c"
6335
947
yy474:
6336
947
    YYDEBUG(474, *YYCURSOR);
6337
947
    yyaccept = 4;
6338
947
    yych = *(YYMARKER = ++YYCURSOR);
6339
947
    if (yych == 'B') goto yy571;
6340
839
    if (yych == 'b') goto yy571;
6341
21
    goto yy48;
6342
29.1k
yy475:
6343
29.1k
    YYDEBUG(475, *YYCURSOR);
6344
29.1k
    yyaccept = 36;
6345
29.1k
    yych = *(YYMARKER = ++YYCURSOR);
6346
29.1k
    if (yybm[256+yych] & 128) {
6347
90
      goto yy47;
6348
90
    }
6349
29.0k
    if (yych == '\\') goto yy164;
6350
29.0k
yy476:
6351
29.0k
    YYDEBUG(476, *YYCURSOR);
6352
29.0k
    yyleng = YYCURSOR - SCNG(yy_text);
6353
29.0k
#line 1442 "Zend/zend_language_scanner.l"
6354
29.0k
    {
6355
29.0k
  RETURN_TOKEN_WITH_IDENT(T_CATCH);
6356
29.0k
}
6357
0
#line 6358 "Zend/zend_language_scanner.c"
6358
31.5k
yy477:
6359
31.5k
    YYDEBUG(477, *YYCURSOR);
6360
31.5k
    yyaccept = 37;
6361
31.5k
    yych = *(YYMARKER = ++YYCURSOR);
6362
31.5k
    if (yybm[256+yych] & 128) {
6363
2.38k
      goto yy47;
6364
2.38k
    }
6365
29.1k
    if (yych == '\\') goto yy164;
6366
29.1k
yy478:
6367
29.1k
    YYDEBUG(478, *YYCURSOR);
6368
29.1k
    yyleng = YYCURSOR - SCNG(yy_text);
6369
29.1k
#line 1554 "Zend/zend_language_scanner.l"
6370
29.1k
    {
6371
29.1k
  RETURN_TOKEN_WITH_IDENT(T_CLASS);
6372
29.1k
}
6373
0
#line 6374 "Zend/zend_language_scanner.c"
6374
968
yy479:
6375
968
    YYDEBUG(479, *YYCURSOR);
6376
968
    yyaccept = 38;
6377
968
    yych = *(YYMARKER = ++YYCURSOR);
6378
968
    if (yybm[256+yych] & 128) {
6379
25
      goto yy47;
6380
25
    }
6381
943
    if (yych == '\\') goto yy164;
6382
943
yy480:
6383
943
    YYDEBUG(480, *YYCURSOR);
6384
943
    yyleng = YYCURSOR - SCNG(yy_text);
6385
943
#line 1630 "Zend/zend_language_scanner.l"
6386
943
    {
6387
943
  RETURN_TOKEN_WITH_IDENT(T_CLONE);
6388
943
}
6389
0
#line 6390 "Zend/zend_language_scanner.c"
6390
23.1k
yy481:
6391
23.1k
    YYDEBUG(481, *YYCURSOR);
6392
23.1k
    yyaccept = 39;
6393
23.1k
    yych = *(YYMARKER = ++YYCURSOR);
6394
23.1k
    if (yybm[256+yych] & 128) {
6395
2.32k
      goto yy47;
6396
2.32k
    }
6397
20.8k
    if (yych == '\\') goto yy164;
6398
20.8k
yy482:
6399
20.8k
    YYDEBUG(482, *YYCURSOR);
6400
20.8k
    yyleng = YYCURSOR - SCNG(yy_text);
6401
20.8k
#line 1415 "Zend/zend_language_scanner.l"
6402
20.8k
    {
6403
20.8k
  RETURN_TOKEN_WITH_IDENT(T_CONST);
6404
20.8k
}
6405
0
#line 6406 "Zend/zend_language_scanner.c"
6406
618
yy483:
6407
618
    YYDEBUG(483, *YYCURSOR);
6408
618
    yyaccept = 4;
6409
618
    yych = *(YYMARKER = ++YYCURSOR);
6410
618
    if (yych == 'N') goto yy572;
6411
396
    if (yych == 'n') goto yy572;
6412
98
    goto yy48;
6413
536
yy484:
6414
536
    YYDEBUG(484, *YYCURSOR);
6415
536
    yyaccept = 4;
6416
536
    yych = *(YYMARKER = ++YYCURSOR);
6417
536
    if (yych == 'R') goto yy573;
6418
491
    if (yych == 'r') goto yy573;
6419
63
    goto yy48;
6420
705
yy485:
6421
705
    YYDEBUG(485, *YYCURSOR);
6422
705
    yyaccept = 4;
6423
705
    yych = *(YYMARKER = ++YYCURSOR);
6424
705
    if (yych == 'L') goto yy574;
6425
607
    if (yych == 'l') goto yy574;
6426
30
    goto yy48;
6427
1.22k
yy486:
6428
1.22k
    YYDEBUG(486, *YYCURSOR);
6429
1.22k
    yyaccept = 4;
6430
1.22k
    yych = *(YYMARKER = ++YYCURSOR);
6431
1.22k
    if (yych == 'F') goto yy575;
6432
1.13k
    if (yych == 'f') goto yy575;
6433
1.00k
    goto yy48;
6434
1.00k
yy487:
6435
988
    YYDEBUG(487, *YYCURSOR);
6436
988
    yyaccept = 40;
6437
988
    yych = *(YYMARKER = ++YYCURSOR);
6438
988
    if (yybm[256+yych] & 128) {
6439
25
      goto yy47;
6440
25
    }
6441
963
    if (yych == '\\') goto yy164;
6442
963
yy488:
6443
963
    YYDEBUG(488, *YYCURSOR);
6444
963
    yyleng = YYCURSOR - SCNG(yy_text);
6445
963
#line 1758 "Zend/zend_language_scanner.l"
6446
963
    {
6447
963
  RETURN_TOKEN_WITH_IDENT(T_EMPTY);
6448
963
}
6449
0
#line 6450 "Zend/zend_language_scanner.c"
6450
988
yy489:
6451
988
    YYDEBUG(489, *YYCURSOR);
6452
988
    yyaccept = 4;
6453
988
    yych = *(YYMARKER = ++YYCURSOR);
6454
988
    if (yych == 'C') goto yy577;
6455
804
    if (yych == 'c') goto yy577;
6456
0
    goto yy48;
6457
3.84k
yy490:
6458
3.84k
    YYDEBUG(490, *YYCURSOR);
6459
3.84k
    yyaccept = 4;
6460
3.84k
    yych = *(YYMARKER = ++YYCURSOR);
6461
3.84k
    if (yych == 'R') goto yy578;
6462
1.71k
    if (yych == 'r') goto yy578;
6463
246
    goto yy48;
6464
4.07k
yy491:
6465
4.07k
    YYDEBUG(491, *YYCURSOR);
6466
4.07k
    yyaccept = 41;
6467
4.07k
    yych = *(YYMARKER = ++YYCURSOR);
6468
4.07k
    if (yybm[256+yych] & 128) {
6469
12
      goto yy47;
6470
12
    }
6471
4.06k
    if (yych == '\\') goto yy164;
6472
4.06k
yy492:
6473
4.06k
    YYDEBUG(492, *YYCURSOR);
6474
4.06k
    yyleng = YYCURSOR - SCNG(yy_text);
6475
4.06k
#line 1462 "Zend/zend_language_scanner.l"
6476
4.06k
    {
6477
4.06k
  RETURN_TOKEN_WITH_IDENT(T_ENDIF);
6478
4.06k
}
6479
0
#line 6480 "Zend/zend_language_scanner.c"
6480
625
yy493:
6481
625
    YYDEBUG(493, *YYCURSOR);
6482
625
    yyaccept = 4;
6483
625
    yych = *(YYMARKER = ++YYCURSOR);
6484
625
    if (yych == 'I') goto yy580;
6485
536
    if (yych == 'i') goto yy580;
6486
21
    goto yy48;
6487
4.01k
yy494:
6488
4.01k
    YYDEBUG(494, *YYCURSOR);
6489
4.01k
    yyaccept = 4;
6490
4.01k
    yych = *(YYMARKER = ++YYCURSOR);
6491
4.01k
    if (yych == 'I') goto yy581;
6492
3.41k
    if (yych == 'i') goto yy581;
6493
39
    goto yy48;
6494
167k
yy495:
6495
167k
    YYDEBUG(495, *YYCURSOR);
6496
167k
    ++YYCURSOR;
6497
167k
    YYFILL(10);
6498
167k
    yych = *YYCURSOR;
6499
167k
    YYDEBUG(496, *YYCURSOR);
6500
167k
    if (yych <= 'E') {
6501
153k
      if (yych <= ' ') {
6502
13.5k
        if (yych <= '\f') {
6503
5.04k
          if (yych <= 0x08) goto yy86;
6504
4.70k
          if (yych <= '\n') goto yy495;
6505
1.30k
          goto yy86;
6506
8.46k
        } else {
6507
8.46k
          if (yych <= '\r') goto yy495;
6508
4.70k
          if (yych <= 0x1F) goto yy86;
6509
4.55k
          goto yy495;
6510
4.70k
        }
6511
139k
      } else {
6512
139k
        if (yych <= '.') {
6513
131k
          if (yych != '#') goto yy86;
6514
131k
        } else {
6515
8.09k
          if (yych <= '/') goto yy498;
6516
2.07k
          if (yych <= '@') goto yy86;
6517
471
          if (yych <= 'D') goto yy582;
6518
62
          goto yy584;
6519
471
        }
6520
139k
      }
6521
153k
    } else {
6522
13.6k
      if (yych <= '`') {
6523
2.70k
        if (yych <= 'Z') {
6524
1.41k
          if (yych == 'I') goto yy585;
6525
1.22k
          goto yy582;
6526
1.41k
        } else {
6527
1.28k
          if (yych == '_') goto yy582;
6528
1.03k
          goto yy86;
6529
1.28k
        }
6530
10.9k
      } else {
6531
10.9k
        if (yych <= 'h') {
6532
4.51k
          if (yych == 'e') goto yy584;
6533
2.55k
          goto yy582;
6534
6.41k
        } else {
6535
6.41k
          if (yych <= 'i') goto yy585;
6536
4.36k
          if (yych <= 'z') goto yy582;
6537
3.38k
          if (yych <= 0x7F) goto yy86;
6538
2.29k
          goto yy582;
6539
3.38k
        }
6540
10.9k
      }
6541
13.6k
    }
6542
127k
yy497:
6543
127k
    YYDEBUG(497, *YYCURSOR);
6544
127k
    ++YYCURSOR;
6545
127k
    YYFILL(1);
6546
127k
    yych = *YYCURSOR;
6547
127k
    if (yych <= '\f') {
6548
78.6k
      if (yych <= 0x00) goto yy86;
6549
78.4k
      if (yych == '\n') goto yy588;
6550
1.41k
      goto yy586;
6551
78.4k
    } else {
6552
48.9k
      if (yych <= '\r') goto yy588;
6553
16.9k
      if (yych == '[') goto yy86;
6554
16.7k
      goto yy586;
6555
16.9k
    }
6556
6.36k
yy498:
6557
6.36k
    YYDEBUG(498, *YYCURSOR);
6558
6.36k
    ++YYCURSOR;
6559
6.36k
    YYFILL(1);
6560
6.36k
    yych = *YYCURSOR;
6561
6.36k
    if (yych == '*') goto yy590;
6562
1.24k
    if (yych == '/') goto yy586;
6563
693
    goto yy86;
6564
6.65k
yy499:
6565
6.65k
    YYDEBUG(499, *YYCURSOR);
6566
6.65k
    yyaccept = 4;
6567
6.65k
    yych = *(YYMARKER = ++YYCURSOR);
6568
6.65k
    if (yych == 'D') goto yy592;
6569
6.47k
    if (yych == 'd') goto yy592;
6570
2.02k
    goto yy48;
6571
3.77k
yy500:
6572
3.77k
    YYDEBUG(500, *YYCURSOR);
6573
3.77k
    yyaccept = 42;
6574
3.77k
    yych = *(YYMARKER = ++YYCURSOR);
6575
3.77k
    if (yych <= '\\') {
6576
2.69k
      if (yych <= 'K') {
6577
2.49k
        if (yych <= '/') goto yy501;
6578
337
        if (yych <= '9') goto yy47;
6579
225
        if (yych >= 'A') goto yy47;
6580
225
      } else {
6581
198
        if (yych <= 'L') goto yy593;
6582
27
        if (yych <= 'Z') goto yy47;
6583
0
        if (yych >= '\\') goto yy164;
6584
0
      }
6585
2.69k
    } else {
6586
1.08k
      if (yych <= 'k') {
6587
6
        if (yych == '_') goto yy47;
6588
6
        if (yych >= 'a') goto yy47;
6589
1.08k
      } else {
6590
1.08k
        if (yych <= 'l') goto yy593;
6591
26
        if (yych <= 'z') goto yy47;
6592
23
        if (yych >= 0x80) goto yy47;
6593
23
      }
6594
1.08k
    }
6595
2.38k
yy501:
6596
2.38k
    YYDEBUG(501, *YYCURSOR);
6597
2.38k
    yyleng = YYCURSOR - SCNG(yy_text);
6598
2.38k
#line 1774 "Zend/zend_language_scanner.l"
6599
2.38k
    {
6600
2.38k
  RETURN_TOKEN_WITH_IDENT(T_FINAL);
6601
2.38k
}
6602
0
#line 6603 "Zend/zend_language_scanner.c"
6603
10.6k
yy502:
6604
10.6k
    YYDEBUG(502, *YYCURSOR);
6605
10.6k
    yyaccept = 4;
6606
10.6k
    yych = *(YYMARKER = ++YYCURSOR);
6607
10.6k
    if (yych == 'C') goto yy594;
6608
10.4k
    if (yych == 'c') goto yy594;
6609
1.62k
    goto yy48;
6610
51.9k
yy503:
6611
51.9k
    YYDEBUG(503, *YYCURSOR);
6612
51.9k
    yyaccept = 4;
6613
51.9k
    yych = *(YYMARKER = ++YYCURSOR);
6614
51.9k
    if (yych == 'I') goto yy595;
6615
51.2k
    if (yych == 'i') goto yy595;
6616
838
    goto yy48;
6617
1.13k
yy504:
6618
1.13k
    YYDEBUG(504, *YYCURSOR);
6619
1.13k
    yyaccept = 4;
6620
1.13k
    yych = *(YYMARKER = ++YYCURSOR);
6621
1.13k
    if (yych == 'L') goto yy596;
6622
582
    if (yych == 'l') goto yy596;
6623
42
    goto yy48;
6624
19.9k
yy505:
6625
19.9k
    YYDEBUG(505, *YYCURSOR);
6626
19.9k
    yyaccept = 4;
6627
19.9k
    yych = *(YYMARKER = ++YYCURSOR);
6628
19.9k
    if (yych == 'M') goto yy598;
6629
13.8k
    if (yych == 'm') goto yy598;
6630
9.14k
    goto yy48;
6631
9.14k
yy506:
6632
1.43k
    YYDEBUG(506, *YYCURSOR);
6633
1.43k
    yyaccept = 4;
6634
1.43k
    yych = *(YYMARKER = ++YYCURSOR);
6635
1.43k
    if (yych == 'D') goto yy599;
6636
1.03k
    if (yych == 'd') goto yy599;
6637
35
    goto yy48;
6638
2.15k
yy507:
6639
2.15k
    YYDEBUG(507, *YYCURSOR);
6640
2.15k
    yyaccept = 4;
6641
2.15k
    yych = *(YYMARKER = ++YYCURSOR);
6642
2.15k
    if (yych == 'N') goto yy600;
6643
1.39k
    if (yych == 'n') goto yy600;
6644
54
    goto yy48;
6645
1.59k
yy508:
6646
1.59k
    YYDEBUG(508, *YYCURSOR);
6647
1.59k
    yyaccept = 4;
6648
1.59k
    yych = *(YYMARKER = ++YYCURSOR);
6649
1.59k
    if (yych == 'A') goto yy601;
6650
1.08k
    if (yych == 'a') goto yy601;
6651
279
    goto yy48;
6652
9.32k
yy509:
6653
9.32k
    YYDEBUG(509, *YYCURSOR);
6654
9.32k
    yyaccept = 4;
6655
9.32k
    yych = *(YYMARKER = ++YYCURSOR);
6656
9.32k
    if (yych == 'F') goto yy602;
6657
9.09k
    if (yych == 'f') goto yy602;
6658
726
    goto yy48;
6659
2.08k
yy510:
6660
2.08k
    YYDEBUG(510, *YYCURSOR);
6661
2.08k
    yyaccept = 43;
6662
2.08k
    yych = *(YYMARKER = ++YYCURSOR);
6663
2.08k
    if (yybm[256+yych] & 128) {
6664
35
      goto yy47;
6665
35
    }
6666
2.05k
    if (yych == '\\') goto yy164;
6667
2.05k
yy511:
6668
2.05k
    YYDEBUG(511, *YYCURSOR);
6669
2.05k
    yyleng = YYCURSOR - SCNG(yy_text);
6670
2.05k
#line 1754 "Zend/zend_language_scanner.l"
6671
2.05k
    {
6672
2.05k
  RETURN_TOKEN_WITH_IDENT(T_ISSET);
6673
2.05k
}
6674
0
#line 6675 "Zend/zend_language_scanner.c"
6675
402
yy512:
6676
402
    YYDEBUG(512, *YYCURSOR);
6677
402
    yyaccept = 44;
6678
402
    yych = *(YYMARKER = ++YYCURSOR);
6679
402
    if (yybm[256+yych] & 128) {
6680
3
      goto yy47;
6681
3
    }
6682
399
    if (yych == '\\') goto yy164;
6683
399
yy513:
6684
399
    YYDEBUG(513, *YYCURSOR);
6685
399
    yyleng = YYCURSOR - SCNG(yy_text);
6686
399
#line 1518 "Zend/zend_language_scanner.l"
6687
399
    {
6688
399
  RETURN_TOKEN_WITH_IDENT(T_MATCH);
6689
399
}
6690
0
#line 6691 "Zend/zend_language_scanner.c"
6691
6.98k
yy514:
6692
6.98k
    YYDEBUG(514, *YYCURSOR);
6693
6.98k
    yyaccept = 4;
6694
6.98k
    yych = *(YYMARKER = ++YYCURSOR);
6695
6.98k
    if (yych == 'P') goto yy603;
6696
5.92k
    if (yych == 'p') goto yy603;
6697
254
    goto yy48;
6698
4.89k
yy515:
6699
4.89k
    YYDEBUG(515, *YYCURSOR);
6700
4.89k
    yyaccept = 45;
6701
4.89k
    yych = *(YYMARKER = ++YYCURSOR);
6702
4.89k
    if (yybm[256+yych] & 128) {
6703
2.14k
      goto yy47;
6704
2.14k
    }
6705
2.75k
    if (yych == '\\') goto yy164;
6706
2.75k
yy516:
6707
2.75k
    YYDEBUG(516, *YYCURSOR);
6708
2.75k
    yyleng = YYCURSOR - SCNG(yy_text);
6709
2.75k
#line 1550 "Zend/zend_language_scanner.l"
6710
2.75k
    {
6711
2.75k
  RETURN_TOKEN_WITH_IDENT(T_PRINT);
6712
2.75k
}
6713
0
#line 6714 "Zend/zend_language_scanner.c"
6714
3.49k
yy517:
6715
3.49k
    YYDEBUG(517, *YYCURSOR);
6716
3.49k
    yyaccept = 4;
6717
3.49k
    yych = *(YYMARKER = ++YYCURSOR);
6718
3.49k
    if (yych == 'T') goto yy604;
6719
3.26k
    if (yych == 't') goto yy604;
6720
213
    goto yy48;
6721
2.46k
yy518:
6722
2.46k
    YYDEBUG(518, *YYCURSOR);
6723
2.46k
    yyaccept = 4;
6724
2.46k
    yych = *(YYMARKER = ++YYCURSOR);
6725
2.46k
    if (yych == 'C') goto yy605;
6726
2.27k
    if (yych == 'c') goto yy605;
6727
27
    goto yy48;
6728
26.2k
yy519:
6729
26.2k
    YYDEBUG(519, *YYCURSOR);
6730
26.2k
    yyaccept = 4;
6731
26.2k
    yych = *(YYMARKER = ++YYCURSOR);
6732
26.2k
    if (yych == 'C') goto yy606;
6733
25.9k
    if (yych == 'c') goto yy606;
6734
406
    goto yy48;
6735
719
yy520:
6736
719
    YYDEBUG(520, *YYCURSOR);
6737
719
    yyaccept = 4;
6738
719
    yych = *(YYMARKER = ++YYCURSOR);
6739
719
    if (yych == 'N') goto yy608;
6740
719
    if (yych == 'n') goto yy608;
6741
54
    goto yy48;
6742
11.2k
yy521:
6743
11.2k
    YYDEBUG(521, *YYCURSOR);
6744
11.2k
    yyaccept = 4;
6745
11.2k
    yych = *(YYMARKER = ++YYCURSOR);
6746
11.2k
    if (yych == 'R') goto yy609;
6747
10.8k
    if (yych == 'r') goto yy609;
6748
428
    goto yy48;
6749
11.9k
yy522:
6750
11.9k
    YYDEBUG(522, *YYCURSOR);
6751
11.9k
    yyaccept = 4;
6752
11.9k
    yych = *(YYMARKER = ++YYCURSOR);
6753
11.9k
    if (yych == 'N') goto yy610;
6754
11.6k
    if (yych == 'n') goto yy610;
6755
995
    goto yy48;
6756
8.37k
yy523:
6757
8.37k
    YYDEBUG(523, *YYCURSOR);
6758
8.37k
    yyaccept = 4;
6759
8.37k
    yych = *(YYMARKER = ++YYCURSOR);
6760
8.37k
    if (yych == 'C') goto yy612;
6761
8.16k
    if (yych == 'c') goto yy612;
6762
542
    goto yy48;
6763
3.25k
yy524:
6764
3.25k
    YYDEBUG(524, *YYCURSOR);
6765
3.25k
    yyaccept = 4;
6766
3.25k
    yych = *(YYMARKER = ++YYCURSOR);
6767
3.25k
    if (yych == 'H') goto yy614;
6768
3.14k
    if (yych == 'h') goto yy614;
6769
1.27k
    goto yy48;
6770
8.42k
yy525:
6771
8.42k
    YYDEBUG(525, *YYCURSOR);
6772
8.42k
    yyaccept = 46;
6773
8.42k
    yych = *(YYMARKER = ++YYCURSOR);
6774
8.42k
    if (yybm[256+yych] & 128) {
6775
5.71k
      goto yy47;
6776
5.71k
    }
6777
2.70k
    if (yych == '\\') goto yy164;
6778
2.70k
yy526:
6779
2.70k
    YYDEBUG(526, *YYCURSOR);
6780
2.70k
    yyleng = YYCURSOR - SCNG(yy_text);
6781
2.70k
#line 1450 "Zend/zend_language_scanner.l"
6782
2.70k
    {
6783
2.70k
  RETURN_TOKEN_WITH_IDENT(T_THROW);
6784
2.70k
}
6785
0
#line 6786 "Zend/zend_language_scanner.c"
6786
2.53k
yy527:
6787
2.53k
    YYDEBUG(527, *YYCURSOR);
6788
2.53k
    yyaccept = 47;
6789
2.53k
    yych = *(YYMARKER = ++YYCURSOR);
6790
2.53k
    if (yybm[256+yych] & 128) {
6791
601
      goto yy47;
6792
601
    }
6793
1.93k
    if (yych == '\\') goto yy164;
6794
1.93k
yy528:
6795
1.93k
    YYDEBUG(528, *YYCURSOR);
6796
1.93k
    yyleng = YYCURSOR - SCNG(yy_text);
6797
1.93k
#line 1562 "Zend/zend_language_scanner.l"
6798
1.93k
    {
6799
1.93k
  RETURN_TOKEN_WITH_IDENT(T_TRAIT);
6800
1.93k
}
6801
0
#line 6802 "Zend/zend_language_scanner.c"
6802
3.18k
yy529:
6803
3.18k
    YYDEBUG(529, *YYCURSOR);
6804
3.18k
    yyaccept = 48;
6805
3.18k
    yych = *(YYMARKER = ++YYCURSOR);
6806
3.18k
    if (yybm[256+yych] & 128) {
6807
124
      goto yy47;
6808
124
    }
6809
3.06k
    if (yych == '\\') goto yy164;
6810
3.06k
yy530:
6811
3.06k
    YYDEBUG(530, *YYCURSOR);
6812
3.06k
    yyleng = YYCURSOR - SCNG(yy_text);
6813
3.06k
#line 1806 "Zend/zend_language_scanner.l"
6814
3.06k
    {
6815
3.06k
  RETURN_TOKEN_WITH_IDENT(T_UNSET);
6816
3.06k
}
6817
0
#line 6818 "Zend/zend_language_scanner.c"
6818
576
yy531:
6819
576
    YYDEBUG(531, *YYCURSOR);
6820
576
    yyaccept = 49;
6821
576
    yych = *(YYMARKER = ++YYCURSOR);
6822
576
    if (yybm[256+yych] & 128) {
6823
3
      goto yy47;
6824
3
    }
6825
573
    if (yych == '\\') goto yy164;
6826
573
yy532:
6827
573
    YYDEBUG(532, *YYCURSOR);
6828
573
    yyleng = YYCURSOR - SCNG(yy_text);
6829
573
#line 1470 "Zend/zend_language_scanner.l"
6830
573
    {
6831
573
  RETURN_TOKEN_WITH_IDENT(T_WHILE);
6832
573
}
6833
0
#line 6834 "Zend/zend_language_scanner.c"
6834
21.5k
yy533:
6835
21.5k
    YYDEBUG(533, *YYCURSOR);
6836
21.5k
    yyaccept = 50;
6837
21.5k
    yych = *(YYMARKER = ++YYCURSOR);
6838
21.5k
    if (yybm[256+yych] & 128) {
6839
123
      goto yy47;
6840
123
    }
6841
21.4k
    if (yych <= ' ') {
6842
6.62k
      if (yych <= '\f') {
6843
3.46k
        if (yych <= 0x08) goto yy534;
6844
2.56k
        if (yych <= '\n') goto yy616;
6845
3.15k
      } else {
6846
3.15k
        if (yych <= '\r') goto yy616;
6847
3.03k
        if (yych >= ' ') goto yy616;
6848
3.03k
      }
6849
14.8k
    } else {
6850
14.8k
      if (yych <= '.') {
6851
14.0k
        if (yych == '#') goto yy618;
6852
14.0k
      } else {
6853
768
        if (yych <= '/') goto yy619;
6854
750
        if (yych == '\\') goto yy164;
6855
750
      }
6856
14.8k
    }
6857
19.2k
yy534:
6858
19.2k
    YYDEBUG(534, *YYCURSOR);
6859
19.2k
    yyleng = YYCURSOR - SCNG(yy_text);
6860
19.2k
#line 1434 "Zend/zend_language_scanner.l"
6861
19.2k
    {
6862
19.2k
  RETURN_TOKEN_WITH_IDENT(T_YIELD);
6863
19.2k
}
6864
0
#line 6865 "Zend/zend_language_scanner.c"
6865
876
yy535:
6866
876
    YYDEBUG(535, *YYCURSOR);
6867
876
    yyaccept = 4;
6868
876
    yych = *(YYMARKER = ++YYCURSOR);
6869
876
    if (yych == 'S') goto yy620;
6870
144
    if (yych == 's') goto yy620;
6871
72
    goto yy48;
6872
2.42k
yy536:
6873
2.42k
    YYDEBUG(536, *YYCURSOR);
6874
2.42k
    yyaccept = 4;
6875
2.42k
    yych = *(YYMARKER = ++YYCURSOR);
6876
2.42k
    if (yych == '_') goto yy621;
6877
120
    goto yy48;
6878
2.45k
yy537:
6879
2.45k
    YYDEBUG(537, *YYCURSOR);
6880
2.45k
    yyaccept = 4;
6881
2.45k
    yych = *(YYMARKER = ++YYCURSOR);
6882
2.45k
    if (yych == 'E') goto yy622;
6883
80
    if (yych == 'e') goto yy622;
6884
60
    goto yy48;
6885
3.00k
yy538:
6886
3.00k
    YYDEBUG(538, *YYCURSOR);
6887
3.00k
    yyaccept = 4;
6888
3.00k
    yych = *(YYMARKER = ++YYCURSOR);
6889
3.00k
    if (yych == 'C') goto yy623;
6890
95
    if (yych == 'c') goto yy623;
6891
75
    goto yy48;
6892
269
yy539:
6893
269
    YYDEBUG(539, *YYCURSOR);
6894
269
    yyaccept = 4;
6895
269
    yych = *(YYMARKER = ++YYCURSOR);
6896
269
    if (yych == 'T') goto yy624;
6897
173
    if (yych == 't') goto yy624;
6898
38
    goto yy48;
6899
1.44k
yy540:
6900
1.44k
    YYDEBUG(540, *YYCURSOR);
6901
1.44k
    yyaccept = 4;
6902
1.44k
    yych = *(YYMARKER = ++YYCURSOR);
6903
1.44k
    if (yych == 'E') goto yy625;
6904
31
    if (yych == 'e') goto yy625;
6905
29
    goto yy48;
6906
7.98k
yy541:
6907
7.98k
    YYDEBUG(541, *YYCURSOR);
6908
7.98k
    yyaccept = 4;
6909
7.98k
    yych = *(YYMARKER = ++YYCURSOR);
6910
7.98k
    if (yych == 'H') goto yy626;
6911
616
    if (yych == 'h') goto yy626;
6912
593
    goto yy48;
6913
2.61k
yy542:
6914
2.61k
    YYDEBUG(542, *YYCURSOR);
6915
2.61k
    yyaccept = 4;
6916
2.61k
    yych = *(YYMARKER = ++YYCURSOR);
6917
2.61k
    if (yych == 'E') goto yy627;
6918
1.22k
    if (yych == 'e') goto yy627;
6919
1.16k
    goto yy48;
6920
1.16k
yy543:
6921
458
    YYDEBUG(543, *YYCURSOR);
6922
458
    yyaccept = 4;
6923
458
    yych = *(YYMARKER = ++YYCURSOR);
6924
458
    if (yych == 'P') goto yy628;
6925
48
    if (yych == 'p') goto yy628;
6926
45
    goto yy48;
6927
259
yy544:
6928
259
    YYDEBUG(544, *YYCURSOR);
6929
259
    yyaccept = 4;
6930
259
    yych = *(YYMARKER = ++YYCURSOR);
6931
259
    if (yych == 'I') goto yy629;
6932
45
    if (yych == 'i') goto yy629;
6933
24
    goto yy48;
6934
11.5k
yy545:
6935
11.5k
    YYDEBUG(545, *YYCURSOR);
6936
11.5k
    ++YYCURSOR;
6937
11.5k
    YYFILL(1);
6938
11.5k
    yych = *YYCURSOR;
6939
11.5k
    YYDEBUG(546, *YYCURSOR);
6940
11.5k
    if (yybm[0+yych] & 64) {
6941
3
      goto yy355;
6942
3
    }
6943
11.5k
    if (yych <= ' ') {
6944
1.95k
      if (yych <= '\n') {
6945
540
        if (yych <= 0x00) goto yy86;
6946
186
        if (yych <= 0x08) goto yy230;
6947
84
        goto yy545;
6948
1.41k
      } else {
6949
1.41k
        if (yych == '\r') goto yy545;
6950
883
        if (yych <= 0x1F) goto yy230;
6951
865
        goto yy545;
6952
883
      }
6953
9.55k
    } else {
6954
9.55k
      if (yych <= '$') {
6955
7.74k
        if (yych <= '"') goto yy230;
6956
7.74k
        if (yych <= '#') goto yy630;
6957
342
        goto yy631;
6958
7.74k
      } else {
6959
1.80k
        if (yych <= '-') goto yy230;
6960
1.38k
        if (yych <= '.') goto yy632;
6961
1.36k
        if (yych <= '/') goto yy633;
6962
267
        goto yy230;
6963
1.36k
      }
6964
9.55k
    }
6965
2.21k
yy547:
6966
2.21k
    YYDEBUG(547, *YYCURSOR);
6967
2.21k
    ++YYCURSOR;
6968
2.21k
    YYFILL(1);
6969
2.21k
    yych = *YYCURSOR;
6970
2.21k
    YYDEBUG(548, *YYCURSOR);
6971
2.21k
    if (yych <= '\r') {
6972
90
      if (yych <= '\t') {
6973
9
        if (yych <= 0x00) goto yy86;
6974
9
        goto yy443;
6975
81
      } else {
6976
81
        if (yych <= '\n') goto yy545;
6977
24
        if (yych <= '\f') goto yy443;
6978
6
        goto yy545;
6979
24
      }
6980
2.12k
    } else {
6981
2.12k
      if (yych <= '*') {
6982
492
        if (yych <= ')') goto yy443;
6983
123
        goto yy547;
6984
1.62k
      } else {
6985
1.62k
        if (yych == '/') goto yy227;
6986
408
        goto yy443;
6987
1.62k
      }
6988
2.12k
    }
6989
7.46k
yy549:
6990
7.46k
    YYDEBUG(549, *YYCURSOR);
6991
7.46k
    ++YYCURSOR;
6992
7.46k
    YYFILL(1);
6993
7.46k
    yych = *YYCURSOR;
6994
7.46k
    YYDEBUG(550, *YYCURSOR);
6995
7.46k
    if (yych <= 0x1F) {
6996
78
      if (yych == '\t') goto yy549;
6997
78
      goto yy86;
6998
7.38k
    } else {
6999
7.38k
      if (yych <= ' ') goto yy549;
7000
4.13k
      if (yych == ')') goto yy634;
7001
3.69k
      goto yy86;
7002
4.13k
    }
7003
17
yy551:
7004
17
    YYDEBUG(551, *YYCURSOR);
7005
17
    yych = *++YYCURSOR;
7006
17
    if (yych == 'Y') goto yy636;
7007
5
    if (yych == 'y') goto yy636;
7008
0
    goto yy86;
7009
137
yy552:
7010
137
    YYDEBUG(552, *YYCURSOR);
7011
137
    ++YYCURSOR;
7012
137
    YYFILL(1);
7013
137
    yych = *YYCURSOR;
7014
418
yy553:
7015
418
    YYDEBUG(553, *YYCURSOR);
7016
418
    if (yych <= 0x1F) {
7017
3
      if (yych == '\t') goto yy552;
7018
3
      goto yy86;
7019
415
    } else {
7020
415
      if (yych <= ' ') goto yy552;
7021
278
      if (yych != ')') goto yy86;
7022
278
    }
7023
115
    YYDEBUG(554, *YYCURSOR);
7024
115
    ++YYCURSOR;
7025
115
    YYDEBUG(555, *YYCURSOR);
7026
115
    yyleng = YYCURSOR - SCNG(yy_text);
7027
115
#line 1696 "Zend/zend_language_scanner.l"
7028
115
    {
7029
115
  RETURN_TOKEN(T_BOOL_CAST);
7030
115
}
7031
0
#line 7032 "Zend/zend_language_scanner.c"
7032
53
yy556:
7033
53
    YYDEBUG(556, *YYCURSOR);
7034
53
    yych = *++YYCURSOR;
7035
53
    if (yych == 'A') goto yy638;
7036
53
    if (yych == 'a') goto yy638;
7037
0
    goto yy86;
7038
73
yy557:
7039
73
    YYDEBUG(557, *YYCURSOR);
7040
73
    yych = *++YYCURSOR;
7041
73
    if (yych == 'E') goto yy639;
7042
31
    if (yych == 'e') goto yy639;
7043
0
    goto yy86;
7044
615
yy558:
7045
615
    YYDEBUG(558, *YYCURSOR);
7046
615
    ++YYCURSOR;
7047
615
    YYFILL(1);
7048
615
    yych = *YYCURSOR;
7049
615
    YYDEBUG(559, *YYCURSOR);
7050
615
    if (yych <= 0x1F) {
7051
0
      if (yych == '\t') goto yy558;
7052
0
      goto yy86;
7053
615
    } else {
7054
615
      if (yych <= ' ') goto yy558;
7055
459
      if (yych == ')') goto yy641;
7056
331
      goto yy86;
7057
459
    }
7058
39
yy560:
7059
39
    YYDEBUG(560, *YYCURSOR);
7060
39
    yych = *++YYCURSOR;
7061
39
    if (yych == 'E') goto yy643;
7062
36
    if (yych == 'e') goto yy643;
7063
3
    goto yy86;
7064
403
yy561:
7065
403
    YYDEBUG(561, *YYCURSOR);
7066
403
    yych = *++YYCURSOR;
7067
403
    if (yych == 'T') goto yy644;
7068
401
    if (yych == 't') goto yy644;
7069
9
    goto yy86;
7070
9
yy562:
7071
6
    YYDEBUG(562, *YYCURSOR);
7072
6
    ++YYCURSOR;
7073
6
    YYDEBUG(563, *YYCURSOR);
7074
6
    yyleng = YYCURSOR - SCNG(yy_text);
7075
6
#line 1666 "Zend/zend_language_scanner.l"
7076
6
    {
7077
6
  if (PARSER_MODE()) {
7078
3
    zend_throw_exception(zend_ce_parse_error, "The (real) cast has been removed, use (float) instead", 0);
7079
3
    RETURN_TOKEN(T_ERROR);
7080
3
  }
7081
3
  RETURN_TOKEN(T_DOUBLE_CAST);
7082
3
}
7083
0
#line 7084 "Zend/zend_language_scanner.c"
7084
3.50k
yy564:
7085
3.50k
    YYDEBUG(564, *YYCURSOR);
7086
3.50k
    yych = *++YYCURSOR;
7087
3.50k
    if (yych == 'G') goto yy646;
7088
3.50k
    if (yych == 'g') goto yy646;
7089
27
    goto yy86;
7090
27
yy565:
7091
6
    YYDEBUG(565, *YYCURSOR);
7092
6
    ++YYCURSOR;
7093
6
    YYFILL(1);
7094
6
    yych = *YYCURSOR;
7095
6
    YYDEBUG(566, *YYCURSOR);
7096
6
    if (yych <= 0x1F) {
7097
0
      if (yych == '\t') goto yy565;
7098
0
      goto yy86;
7099
6
    } else {
7100
6
      if (yych <= ' ') goto yy565;
7101
6
      if (yych == ')') goto yy648;
7102
3
      goto yy86;
7103
6
    }
7104
71
yy567:
7105
71
    YYDEBUG(567, *YYCURSOR);
7106
71
    ++YYCURSOR;
7107
71
    YYDEBUG(568, *YYCURSOR);
7108
71
    yyleng = YYCURSOR - SCNG(yy_text);
7109
71
#line 1714 "Zend/zend_language_scanner.l"
7110
71
    {
7111
71
  RETURN_TOKEN(T_VOID_CAST);
7112
71
}
7113
0
#line 7114 "Zend/zend_language_scanner.c"
7114
7.54k
yy569:
7115
7.54k
    YYDEBUG(569, *YYCURSOR);
7116
7.54k
    yych = *++YYCURSOR;
7117
7.54k
    if (yych == '\n') goto yy466;
7118
550
    if (yych == '\r') goto yy468;
7119
540
    goto yy86;
7120
1.55k
yy570:
7121
1.55k
    YYDEBUG(570, *YYCURSOR);
7122
1.55k
    yyaccept = 4;
7123
1.55k
    yych = *(YYMARKER = ++YYCURSOR);
7124
1.55k
    if (yych == 'C') goto yy650;
7125
1.35k
    if (yych == 'c') goto yy650;
7126
33
    goto yy48;
7127
926
yy571:
7128
926
    YYDEBUG(571, *YYCURSOR);
7129
926
    yyaccept = 4;
7130
926
    yych = *(YYMARKER = ++YYCURSOR);
7131
926
    if (yych == 'L') goto yy651;
7132
818
    if (yych == 'l') goto yy651;
7133
44
    goto yy48;
7134
520
yy572:
7135
520
    YYDEBUG(572, *YYCURSOR);
7136
520
    yyaccept = 4;
7137
520
    yych = *(YYMARKER = ++YYCURSOR);
7138
520
    if (yych == 'U') goto yy652;
7139
298
    if (yych == 'u') goto yy652;
7140
3
    goto yy48;
7141
473
yy573:
7142
473
    YYDEBUG(573, *YYCURSOR);
7143
473
    yyaccept = 4;
7144
473
    yych = *(YYMARKER = ++YYCURSOR);
7145
473
    if (yych == 'E') goto yy653;
7146
428
    if (yych == 'e') goto yy653;
7147
47
    goto yy48;
7148
675
yy574:
7149
675
    YYDEBUG(574, *YYCURSOR);
7150
675
    yyaccept = 4;
7151
675
    yych = *(YYMARKER = ++YYCURSOR);
7152
675
    if (yych == 'T') goto yy655;
7153
577
    if (yych == 't') goto yy655;
7154
3
    goto yy48;
7155
227
yy575:
7156
227
    YYDEBUG(575, *YYCURSOR);
7157
227
    yyaccept = 51;
7158
227
    yych = *(YYMARKER = ++YYCURSOR);
7159
227
    if (yybm[256+yych] & 128) {
7160
0
      goto yy47;
7161
0
    }
7162
227
    if (yych == '\\') goto yy164;
7163
227
yy576:
7164
227
    YYDEBUG(576, *YYCURSOR);
7165
227
    yyleng = YYCURSOR - SCNG(yy_text);
7166
227
#line 1458 "Zend/zend_language_scanner.l"
7167
227
    {
7168
227
  RETURN_TOKEN_WITH_IDENT(T_ELSEIF);
7169
227
}
7170
0
#line 7171 "Zend/zend_language_scanner.c"
7171
988
yy577:
7172
988
    YYDEBUG(577, *YYCURSOR);
7173
988
    yyaccept = 4;
7174
988
    yych = *(YYMARKER = ++YYCURSOR);
7175
988
    if (yych == 'L') goto yy657;
7176
804
    if (yych == 'l') goto yy657;
7177
0
    goto yy48;
7178
3.60k
yy578:
7179
3.60k
    YYDEBUG(578, *YYCURSOR);
7180
3.60k
    yyaccept = 52;
7181
3.60k
    yych = *(YYMARKER = ++YYCURSOR);
7182
3.60k
    if (yych <= '\\') {
7183
1.99k
      if (yych <= 'D') {
7184
276
        if (yych <= '/') goto yy579;
7185
54
        if (yych <= '9') goto yy47;
7186
54
        if (yych >= 'A') goto yy47;
7187
1.72k
      } else {
7188
1.72k
        if (yych <= 'E') goto yy658;
7189
180
        if (yych <= 'Z') goto yy47;
7190
45
        if (yych >= '\\') goto yy164;
7191
45
      }
7192
1.99k
    } else {
7193
1.60k
      if (yych <= 'd') {
7194
0
        if (yych == '_') goto yy47;
7195
0
        if (yych >= 'a') goto yy47;
7196
1.60k
      } else {
7197
1.60k
        if (yych <= 'e') goto yy658;
7198
246
        if (yych <= 'z') goto yy47;
7199
246
        if (yych >= 0x80) goto yy47;
7200
246
      }
7201
1.60k
    }
7202
294
yy579:
7203
294
    YYDEBUG(579, *YYCURSOR);
7204
294
    yyleng = YYCURSOR - SCNG(yy_text);
7205
294
#line 1486 "Zend/zend_language_scanner.l"
7206
294
    {
7207
294
  RETURN_TOKEN_WITH_IDENT(T_ENDFOR);
7208
294
}
7209
0
#line 7210 "Zend/zend_language_scanner.c"
7210
604
yy580:
7211
604
    YYDEBUG(580, *YYCURSOR);
7212
604
    yyaccept = 4;
7213
604
    yych = *(YYMARKER = ++YYCURSOR);
7214
604
    if (yych == 'T') goto yy659;
7215
545
    if (yych == 't') goto yy659;
7216
33
    goto yy48;
7217
3.97k
yy581:
7218
3.97k
    YYDEBUG(581, *YYCURSOR);
7219
3.97k
    yyaccept = 4;
7220
3.97k
    yych = *(YYMARKER = ++YYCURSOR);
7221
3.97k
    if (yych == 'L') goto yy660;
7222
3.52k
    if (yych == 'l') goto yy660;
7223
170
    goto yy48;
7224
7.71k
yy582:
7225
7.71k
    YYDEBUG(582, *YYCURSOR);
7226
7.71k
    ++YYCURSOR;
7227
41.5k
yy583:
7228
41.5k
    YYDEBUG(583, *YYCURSOR);
7229
41.5k
    yyleng = YYCURSOR - SCNG(yy_text);
7230
41.5k
#line 1574 "Zend/zend_language_scanner.l"
7231
41.5k
    {
7232
41.5k
  yyless(4);
7233
41.5k
  RETURN_TOKEN_WITH_IDENT(T_ENUM);
7234
41.5k
}
7235
0
#line 7236 "Zend/zend_language_scanner.c"
7236
2.02k
yy584:
7237
2.02k
    YYDEBUG(584, *YYCURSOR);
7238
2.02k
    yyaccept = 53;
7239
2.02k
    yych = *(YYMARKER = ++YYCURSOR);
7240
2.02k
    if (yych == 'X') goto yy661;
7241
2.02k
    if (yych == 'x') goto yy661;
7242
1.23k
    goto yy583;
7243
2.24k
yy585:
7244
2.24k
    YYDEBUG(585, *YYCURSOR);
7245
2.24k
    yyaccept = 53;
7246
2.24k
    yych = *(YYMARKER = ++YYCURSOR);
7247
2.24k
    if (yych == 'M') goto yy662;
7248
2.18k
    if (yych == 'm') goto yy662;
7249
1.18k
    goto yy583;
7250
1.07M
yy586:
7251
1.07M
    YYDEBUG(586, *YYCURSOR);
7252
1.07M
    ++YYCURSOR;
7253
1.07M
    YYFILL(1);
7254
1.07M
    yych = *YYCURSOR;
7255
1.07M
    YYDEBUG(587, *YYCURSOR);
7256
1.07M
    if (yych <= '\n') {
7257
46.3k
      if (yych <= 0x00) goto yy86;
7258
40.7k
      if (yych <= '\t') goto yy586;
7259
30.8k
      goto yy495;
7260
1.02M
    } else {
7261
1.02M
      if (yych == '\r') goto yy495;
7262
978k
      goto yy586;
7263
1.02M
    }
7264
157k
yy588:
7265
157k
    YYDEBUG(588, *YYCURSOR);
7266
157k
    ++YYCURSOR;
7267
157k
    YYFILL(1);
7268
157k
    yych = *YYCURSOR;
7269
157k
    YYDEBUG(589, *YYCURSOR);
7270
157k
    if (yych <= 'D') {
7271
104k
      if (yych <= 0x1F) {
7272
2.81k
        if (yych <= '\t') {
7273
883
          if (yych <= 0x00) goto yy86;
7274
454
          if (yych <= 0x08) goto yy586;
7275
33
          goto yy588;
7276
1.93k
        } else {
7277
1.93k
          if (yych <= '\n') goto yy495;
7278
871
          if (yych == '\r') goto yy495;
7279
378
          goto yy586;
7280
871
        }
7281
101k
      } else {
7282
101k
        if (yych <= '#') {
7283
46.4k
          if (yych <= ' ') goto yy588;
7284
34.4k
          if (yych <= '"') goto yy586;
7285
34.3k
          goto yy663;
7286
55.3k
        } else {
7287
55.3k
          if (yych == '/') goto yy664;
7288
4.12k
          if (yych <= '@') goto yy586;
7289
117
          goto yy665;
7290
4.12k
        }
7291
101k
      }
7292
104k
    } else {
7293
52.9k
      if (yych <= '`') {
7294
1.01k
        if (yych <= 'I') {
7295
285
          if (yych <= 'E') goto yy666;
7296
255
          if (yych <= 'H') goto yy665;
7297
237
          goto yy667;
7298
728
        } else {
7299
728
          if (yych <= 'Z') goto yy665;
7300
584
          if (yych == '_') goto yy665;
7301
563
          goto yy586;
7302
584
        }
7303
51.9k
      } else {
7304
51.9k
        if (yych <= 'h') {
7305
16.3k
          if (yych == 'e') goto yy666;
7306
969
          goto yy665;
7307
35.6k
        } else {
7308
35.6k
          if (yych <= 'i') goto yy667;
7309
18.1k
          if (yych <= 'z') goto yy665;
7310
13.0k
          if (yych <= 0x7F) goto yy586;
7311
991
          goto yy665;
7312
13.0k
        }
7313
51.9k
      }
7314
52.9k
    }
7315
1.34M
yy590:
7316
1.34M
    YYDEBUG(590, *YYCURSOR);
7317
1.34M
    ++YYCURSOR;
7318
1.34M
    YYFILL(1);
7319
1.34M
    yych = *YYCURSOR;
7320
1.34M
    YYDEBUG(591, *YYCURSOR);
7321
1.34M
    if (yych <= 0x00) goto yy86;
7322
1.33M
    if (yych == '*') goto yy668;
7323
1.31M
    goto yy590;
7324
1.31M
yy592:
7325
4.63k
    YYDEBUG(592, *YYCURSOR);
7326
4.63k
    yyaccept = 4;
7327
4.63k
    yych = *(YYMARKER = ++YYCURSOR);
7328
4.63k
    if (yych == 'S') goto yy670;
7329
4.51k
    if (yych == 's') goto yy670;
7330
81
    goto yy48;
7331
1.22k
yy593:
7332
1.22k
    YYDEBUG(593, *YYCURSOR);
7333
1.22k
    yyaccept = 4;
7334
1.22k
    yych = *(YYMARKER = ++YYCURSOR);
7335
1.22k
    if (yych == 'Y') goto yy672;
7336
1.19k
    if (yych == 'y') goto yy672;
7337
18
    goto yy48;
7338
9.06k
yy594:
7339
9.06k
    YYDEBUG(594, *YYCURSOR);
7340
9.06k
    yyaccept = 4;
7341
9.06k
    yych = *(YYMARKER = ++YYCURSOR);
7342
9.06k
    if (yych == 'H') goto yy674;
7343
9.02k
    if (yych == 'h') goto yy674;
7344
252
    goto yy48;
7345
51.0k
yy595:
7346
51.0k
    YYDEBUG(595, *YYCURSOR);
7347
51.0k
    yyaccept = 4;
7348
51.0k
    yych = *(YYMARKER = ++YYCURSOR);
7349
51.0k
    if (yych == 'O') goto yy676;
7350
50.4k
    if (yych == 'o') goto yy676;
7351
1.40k
    goto yy48;
7352
1.40k
yy596:
7353
1.08k
    YYDEBUG(596, *YYCURSOR);
7354
1.08k
    yyaccept = 54;
7355
1.08k
    yych = *(YYMARKER = ++YYCURSOR);
7356
1.08k
    if (yybm[256+yych] & 128) {
7357
120
      goto yy47;
7358
120
    }
7359
969
    if (yych == '\\') goto yy164;
7360
969
yy597:
7361
969
    YYDEBUG(597, *YYCURSOR);
7362
969
    yyleng = YYCURSOR - SCNG(yy_text);
7363
969
#line 1750 "Zend/zend_language_scanner.l"
7364
969
    {
7365
969
  RETURN_TOKEN_WITH_IDENT(T_GLOBAL);
7366
969
}
7367
0
#line 7368 "Zend/zend_language_scanner.c"
7368
10.7k
yy598:
7369
10.7k
    YYDEBUG(598, *YYCURSOR);
7370
10.7k
    yyaccept = 4;
7371
10.7k
    yych = *(YYMARKER = ++YYCURSOR);
7372
10.7k
    if (yych == 'E') goto yy677;
7373
10.3k
    if (yych == 'e') goto yy677;
7374
1.17k
    goto yy48;
7375
1.40k
yy599:
7376
1.40k
    YYDEBUG(599, *YYCURSOR);
7377
1.40k
    yyaccept = 4;
7378
1.40k
    yych = *(YYMARKER = ++YYCURSOR);
7379
1.40k
    if (yych == 'E') goto yy678;
7380
1.00k
    if (yych == 'e') goto yy678;
7381
3
    goto yy48;
7382
2.10k
yy600:
7383
2.10k
    YYDEBUG(600, *YYCURSOR);
7384
2.10k
    yyaccept = 4;
7385
2.10k
    yych = *(YYMARKER = ++YYCURSOR);
7386
2.10k
    if (yych == 'C') goto yy680;
7387
1.34k
    if (yych == 'c') goto yy680;
7388
27
    goto yy48;
7389
1.31k
yy601:
7390
1.31k
    YYDEBUG(601, *YYCURSOR);
7391
1.31k
    yyaccept = 4;
7392
1.31k
    yych = *(YYMARKER = ++YYCURSOR);
7393
1.31k
    if (yych == 'D') goto yy681;
7394
994
    if (yych == 'd') goto yy681;
7395
192
    goto yy48;
7396
8.60k
yy602:
7397
8.60k
    YYDEBUG(602, *YYCURSOR);
7398
8.60k
    yyaccept = 4;
7399
8.60k
    yych = *(YYMARKER = ++YYCURSOR);
7400
8.60k
    if (yych == 'A') goto yy682;
7401
8.38k
    if (yych == 'a') goto yy682;
7402
488
    goto yy48;
7403
6.73k
yy603:
7404
6.73k
    YYDEBUG(603, *YYCURSOR);
7405
6.73k
    yyaccept = 4;
7406
6.73k
    yych = *(YYMARKER = ++YYCURSOR);
7407
6.73k
    if (yych == 'A') goto yy683;
7408
5.81k
    if (yych == 'a') goto yy683;
7409
385
    goto yy48;
7410
3.28k
yy604:
7411
3.28k
    YYDEBUG(604, *YYCURSOR);
7412
3.28k
    yyaccept = 4;
7413
3.28k
    yych = *(YYMARKER = ++YYCURSOR);
7414
3.28k
    if (yych == 'E') goto yy684;
7415
3.05k
    if (yych == 'e') goto yy684;
7416
51
    goto yy48;
7417
2.44k
yy605:
7418
2.44k
    YYDEBUG(605, *YYCURSOR);
7419
2.44k
    yyaccept = 4;
7420
2.44k
    yych = *(YYMARKER = ++YYCURSOR);
7421
2.44k
    if (yych == 'T') goto yy686;
7422
2.24k
    if (yych == 't') goto yy686;
7423
181
    goto yy48;
7424
25.8k
yy606:
7425
25.8k
    YYDEBUG(606, *YYCURSOR);
7426
25.8k
    yyaccept = 55;
7427
25.8k
    yych = *(YYMARKER = ++YYCURSOR);
7428
25.8k
    if (yybm[256+yych] & 128) {
7429
897
      goto yy47;
7430
897
    }
7431
24.9k
    if (yych == '(') goto yy687;
7432
24.7k
    if (yych == '\\') goto yy164;
7433
24.9k
yy607:
7434
24.9k
    YYDEBUG(607, *YYCURSOR);
7435
24.9k
    yyleng = YYCURSOR - SCNG(yy_text);
7436
24.9k
#line 1798 "Zend/zend_language_scanner.l"
7437
24.9k
    {
7438
24.9k
  RETURN_TOKEN_WITH_IDENT(T_PUBLIC);
7439
24.9k
}
7440
0
#line 7441 "Zend/zend_language_scanner.c"
7441
665
yy608:
7442
665
    YYDEBUG(608, *YYCURSOR);
7443
665
    yyaccept = 4;
7444
665
    yych = *(YYMARKER = ++YYCURSOR);
7445
665
    if (yych == 'L') goto yy688;
7446
665
    if (yych == 'l') goto yy688;
7447
32
    goto yy48;
7448
10.7k
yy609:
7449
10.7k
    YYDEBUG(609, *YYCURSOR);
7450
10.7k
    yyaccept = 4;
7451
10.7k
    yych = *(YYMARKER = ++YYCURSOR);
7452
10.7k
    if (yych == 'E') goto yy689;
7453
10.4k
    if (yych == 'e') goto yy689;
7454
18
    goto yy48;
7455
10.9k
yy610:
7456
10.9k
    YYDEBUG(610, *YYCURSOR);
7457
10.9k
    yyaccept = 56;
7458
10.9k
    yych = *(YYMARKER = ++YYCURSOR);
7459
10.9k
    if (yybm[256+yych] & 128) {
7460
414
      goto yy47;
7461
414
    }
7462
10.5k
    if (yych == '\\') goto yy164;
7463
10.5k
yy611:
7464
10.5k
    YYDEBUG(611, *YYCURSOR);
7465
10.5k
    yyleng = YYCURSOR - SCNG(yy_text);
7466
10.5k
#line 1419 "Zend/zend_language_scanner.l"
7467
10.5k
    {
7468
10.5k
  RETURN_TOKEN_WITH_IDENT(T_RETURN);
7469
10.5k
}
7470
0
#line 7471 "Zend/zend_language_scanner.c"
7471
7.82k
yy612:
7472
7.82k
    YYDEBUG(612, *YYCURSOR);
7473
7.82k
    yyaccept = 57;
7474
7.82k
    yych = *(YYMARKER = ++YYCURSOR);
7475
7.82k
    if (yybm[256+yych] & 128) {
7476
156
      goto yy47;
7477
156
    }
7478
7.67k
    if (yych == '\\') goto yy164;
7479
7.67k
yy613:
7480
7.67k
    YYDEBUG(613, *YYCURSOR);
7481
7.67k
    yyleng = YYCURSOR - SCNG(yy_text);
7482
7.67k
#line 1766 "Zend/zend_language_scanner.l"
7483
7.67k
    {
7484
7.67k
  RETURN_TOKEN_WITH_IDENT(T_STATIC);
7485
7.67k
}
7486
0
#line 7487 "Zend/zend_language_scanner.c"
7487
1.98k
yy614:
7488
1.98k
    YYDEBUG(614, *YYCURSOR);
7489
1.98k
    yyaccept = 58;
7490
1.98k
    yych = *(YYMARKER = ++YYCURSOR);
7491
1.98k
    if (yybm[256+yych] & 128) {
7492
45
      goto yy47;
7493
45
    }
7494
1.93k
    if (yych == '\\') goto yy164;
7495
1.93k
yy615:
7496
1.93k
    YYDEBUG(615, *YYCURSOR);
7497
1.93k
    yyleng = YYCURSOR - SCNG(yy_text);
7498
1.93k
#line 1514 "Zend/zend_language_scanner.l"
7499
1.93k
    {
7500
1.93k
  RETURN_TOKEN_WITH_IDENT(T_SWITCH);
7501
1.93k
}
7502
0
#line 7503 "Zend/zend_language_scanner.c"
7503
54.5k
yy616:
7504
54.5k
    YYDEBUG(616, *YYCURSOR);
7505
54.5k
    ++YYCURSOR;
7506
54.5k
    YYFILL(5);
7507
54.5k
    yych = *YYCURSOR;
7508
54.5k
    YYDEBUG(617, *YYCURSOR);
7509
54.5k
    if (yych <= '"') {
7510
6.73k
      if (yych <= '\f') {
7511
4.64k
        if (yych <= 0x08) goto yy86;
7512
4.29k
        if (yych <= '\n') goto yy616;
7513
1.32k
        goto yy86;
7514
4.29k
      } else {
7515
2.09k
        if (yych <= '\r') goto yy616;
7516
1.08k
        if (yych == ' ') goto yy616;
7517
700
        goto yy86;
7518
1.08k
      }
7519
47.8k
    } else {
7520
47.8k
      if (yych <= 'E') {
7521
45.1k
        if (yych <= '#') goto yy618;
7522
9.67k
        if (yych == '/') goto yy619;
7523
2.97k
        goto yy86;
7524
9.67k
      } else {
7525
2.68k
        if (yych <= 'F') goto yy691;
7526
2.55k
        if (yych == 'f') goto yy691;
7527
1.43k
        goto yy86;
7528
2.55k
      }
7529
47.8k
    }
7530
49.1k
yy618:
7531
49.1k
    YYDEBUG(618, *YYCURSOR);
7532
49.1k
    ++YYCURSOR;
7533
49.1k
    YYFILL(1);
7534
49.1k
    yych = *YYCURSOR;
7535
49.1k
    if (yych <= '\f') {
7536
17.7k
      if (yych <= 0x00) goto yy86;
7537
17.5k
      if (yych == '\n') goto yy694;
7538
189
      goto yy692;
7539
31.3k
    } else {
7540
31.3k
      if (yych <= '\r') goto yy694;
7541
17.6k
      if (yych == '[') goto yy86;
7542
17.6k
      goto yy692;
7543
17.6k
    }
7544
6.71k
yy619:
7545
6.71k
    YYDEBUG(619, *YYCURSOR);
7546
6.71k
    ++YYCURSOR;
7547
6.71k
    YYFILL(1);
7548
6.71k
    yych = *YYCURSOR;
7549
6.71k
    if (yych == '*') goto yy696;
7550
216
    if (yych == '/') goto yy692;
7551
120
    goto yy86;
7552
804
yy620:
7553
804
    YYDEBUG(620, *YYCURSOR);
7554
804
    yyaccept = 4;
7555
804
    yych = *(YYMARKER = ++YYCURSOR);
7556
804
    if (yych == 'S') goto yy698;
7557
75
    if (yych == 's') goto yy698;
7558
3
    goto yy48;
7559
2.30k
yy621:
7560
2.30k
    YYDEBUG(621, *YYCURSOR);
7561
2.30k
    yyaccept = 4;
7562
2.30k
    yych = *(YYMARKER = ++YYCURSOR);
7563
2.30k
    if (yych == '_') goto yy699;
7564
263
    goto yy48;
7565
2.39k
yy622:
7566
2.39k
    YYDEBUG(622, *YYCURSOR);
7567
2.39k
    yyaccept = 4;
7568
2.39k
    yych = *(YYMARKER = ++YYCURSOR);
7569
2.39k
    if (yych == '_') goto yy701;
7570
41
    goto yy48;
7571
2.93k
yy623:
7572
2.93k
    YYDEBUG(623, *YYCURSOR);
7573
2.93k
    yyaccept = 4;
7574
2.93k
    yych = *(YYMARKER = ++YYCURSOR);
7575
2.93k
    if (yych == 'T') goto yy702;
7576
119
    if (yych == 't') goto yy702;
7577
102
    goto yy48;
7578
231
yy624:
7579
231
    YYDEBUG(624, *YYCURSOR);
7580
231
    yyaccept = 4;
7581
231
    yych = *(YYMARKER = ++YYCURSOR);
7582
231
    if (yych == '_') goto yy703;
7583
5
    goto yy48;
7584
1.41k
yy625:
7585
1.41k
    YYDEBUG(625, *YYCURSOR);
7586
1.41k
    yyaccept = 4;
7587
1.41k
    yych = *(YYMARKER = ++YYCURSOR);
7588
1.41k
    if (yych == '_') goto yy704;
7589
564
    goto yy48;
7590
7.39k
yy626:
7591
7.39k
    YYDEBUG(626, *YYCURSOR);
7592
7.39k
    yyaccept = 4;
7593
7.39k
    yych = *(YYMARKER = ++YYCURSOR);
7594
7.39k
    if (yych == 'O') goto yy705;
7595
435
    if (yych == 'o') goto yy705;
7596
412
    goto yy48;
7597
1.44k
yy627:
7598
1.44k
    YYDEBUG(627, *YYCURSOR);
7599
1.44k
    yyaccept = 4;
7600
1.44k
    yych = *(YYMARKER = ++YYCURSOR);
7601
1.44k
    if (yych == 'S') goto yy706;
7602
1.23k
    if (yych == 's') goto yy706;
7603
1.21k
    goto yy48;
7604
1.21k
yy628:
7605
413
    YYDEBUG(628, *YYCURSOR);
7606
413
    yyaccept = 4;
7607
413
    yych = *(YYMARKER = ++YYCURSOR);
7608
413
    if (yych == 'E') goto yy707;
7609
18
    if (yych == 'e') goto yy707;
7610
18
    goto yy48;
7611
235
yy629:
7612
235
    YYDEBUG(629, *YYCURSOR);
7613
235
    yyaccept = 4;
7614
235
    yych = *(YYMARKER = ++YYCURSOR);
7615
235
    if (yych == 'T') goto yy708;
7616
23
    if (yych == 't') goto yy708;
7617
2
    goto yy48;
7618
7.39k
yy630:
7619
7.39k
    YYDEBUG(630, *YYCURSOR);
7620
7.39k
    ++YYCURSOR;
7621
7.39k
    YYFILL(1);
7622
7.39k
    yych = *YYCURSOR;
7623
7.39k
    if (yych <= '\r') {
7624
6.73k
      if (yych <= '\t') {
7625
87
        if (yych <= 0x00) goto yy86;
7626
84
        goto yy443;
7627
6.65k
      } else {
7628
6.65k
        if (yych <= '\n') goto yy709;
7629
952
        if (yych <= '\f') goto yy443;
7630
661
        goto yy709;
7631
952
      }
7632
6.73k
    } else {
7633
660
      if (yych <= '*') {
7634
84
        if (yych <= ')') goto yy443;
7635
66
        goto yy547;
7636
576
      } else {
7637
576
        if (yych == '[') goto yy230;
7638
576
        goto yy443;
7639
576
      }
7640
660
    }
7641
342
yy631:
7642
342
    YYDEBUG(631, *YYCURSOR);
7643
342
    yyaccept = 26;
7644
342
    YYMARKER = ++YYCURSOR;
7645
342
    YYFILL(1);
7646
342
    yych = *YYCURSOR;
7647
342
    if (yybm[0+yych] & 4) {
7648
336
      goto yy230;
7649
336
    }
7650
6
    if (yych <= 0x00) goto yy89;
7651
0
    goto yy355;
7652
21
yy632:
7653
21
    YYDEBUG(632, *YYCURSOR);
7654
21
    ++YYCURSOR;
7655
21
    YYFILL(1);
7656
21
    yych = *YYCURSOR;
7657
21
    if (yybm[0+yych] & 64) {
7658
3
      goto yy355;
7659
3
    }
7660
18
    if (yych <= 0x00) goto yy86;
7661
18
    if (yych == '.') goto yy711;
7662
18
    goto yy230;
7663
1.09k
yy633:
7664
1.09k
    YYDEBUG(633, *YYCURSOR);
7665
1.09k
    ++YYCURSOR;
7666
1.09k
    YYFILL(1);
7667
1.09k
    yych = *YYCURSOR;
7668
1.09k
    if (yych <= '*') {
7669
1.00k
      if (yych <= 0x00) goto yy86;
7670
996
      if (yych <= ')') goto yy230;
7671
903
      goto yy712;
7672
996
    } else {
7673
93
      if (yych == '/') goto yy443;
7674
93
      goto yy230;
7675
93
    }
7676
443
yy634:
7677
443
    YYDEBUG(634, *YYCURSOR);
7678
443
    ++YYCURSOR;
7679
443
    YYDEBUG(635, *YYCURSOR);
7680
443
    yyleng = YYCURSOR - SCNG(yy_text);
7681
443
#line 1688 "Zend/zend_language_scanner.l"
7682
443
    {
7683
443
  RETURN_TOKEN(T_ARRAY_CAST);
7684
443
}
7685
0
#line 7686 "Zend/zend_language_scanner.c"
7686
17
yy636:
7687
17
    YYDEBUG(636, *YYCURSOR);
7688
17
    ++YYCURSOR;
7689
17
    YYFILL(1);
7690
17
    yych = *YYCURSOR;
7691
17
    YYDEBUG(637, *YYCURSOR);
7692
17
    if (yych <= 0x1F) {
7693
0
      if (yych == '\t') goto yy636;
7694
0
      goto yy86;
7695
17
    } else {
7696
17
      if (yych <= ' ') goto yy636;
7697
17
      if (yych == ')') goto yy713;
7698
12
      goto yy86;
7699
17
    }
7700
53
yy638:
7701
53
    YYDEBUG(638, *YYCURSOR);
7702
53
    yych = *++YYCURSOR;
7703
53
    if (yych == 'N') goto yy715;
7704
53
    if (yych == 'n') goto yy715;
7705
27
    goto yy86;
7706
87
yy639:
7707
87
    YYDEBUG(639, *YYCURSOR);
7708
87
    ++YYCURSOR;
7709
87
    YYFILL(1);
7710
87
    yych = *YYCURSOR;
7711
87
    YYDEBUG(640, *YYCURSOR);
7712
87
    if (yych <= 0x1F) {
7713
0
      if (yych == '\t') goto yy639;
7714
0
      goto yy86;
7715
87
    } else {
7716
87
      if (yych <= ' ') goto yy639;
7717
73
      if (yych == ')') goto yy717;
7718
23
      goto yy86;
7719
73
    }
7720
128
yy641:
7721
128
    YYDEBUG(641, *YYCURSOR);
7722
128
    ++YYCURSOR;
7723
128
    YYDEBUG(642, *YYCURSOR);
7724
128
    yyleng = YYCURSOR - SCNG(yy_text);
7725
128
#line 1652 "Zend/zend_language_scanner.l"
7726
128
    {
7727
128
  RETURN_TOKEN(T_DOUBLE_CAST);
7728
128
}
7729
0
#line 7730 "Zend/zend_language_scanner.c"
7730
36
yy643:
7731
36
    YYDEBUG(643, *YYCURSOR);
7732
36
    yych = *++YYCURSOR;
7733
36
    if (yych == 'R') goto yy719;
7734
33
    if (yych == 'r') goto yy719;
7735
0
    goto yy86;
7736
429
yy644:
7737
429
    YYDEBUG(644, *YYCURSOR);
7738
429
    ++YYCURSOR;
7739
429
    YYFILL(1);
7740
429
    yych = *YYCURSOR;
7741
429
    YYDEBUG(645, *YYCURSOR);
7742
429
    if (yych <= 0x1F) {
7743
3
      if (yych == '\t') goto yy644;
7744
3
      goto yy86;
7745
426
    } else {
7746
426
      if (yych <= ' ') goto yy644;
7747
391
      if (yych == ')') goto yy721;
7748
79
      goto yy86;
7749
391
    }
7750
4.23k
yy646:
7751
4.23k
    YYDEBUG(646, *YYCURSOR);
7752
4.23k
    ++YYCURSOR;
7753
4.23k
    YYFILL(1);
7754
4.23k
    yych = *YYCURSOR;
7755
4.23k
    YYDEBUG(647, *YYCURSOR);
7756
4.23k
    if (yych <= 0x1F) {
7757
2.34k
      if (yych == '\t') goto yy646;
7758
2.30k
      goto yy86;
7759
2.34k
    } else {
7760
1.88k
      if (yych <= ' ') goto yy646;
7761
1.17k
      if (yych == ')') goto yy723;
7762
778
      goto yy86;
7763
1.17k
    }
7764
3
yy648:
7765
3
    YYDEBUG(648, *YYCURSOR);
7766
3
    ++YYCURSOR;
7767
3
    YYDEBUG(649, *YYCURSOR);
7768
3
    yyleng = YYCURSOR - SCNG(yy_text);
7769
3
#line 1710 "Zend/zend_language_scanner.l"
7770
3
    {
7771
3
  RETURN_TOKEN(T_UNSET_CAST);
7772
3
}
7773
0
#line 7774 "Zend/zend_language_scanner.c"
7774
1.52k
yy650:
7775
1.52k
    YYDEBUG(650, *YYCURSOR);
7776
1.52k
    yyaccept = 4;
7777
1.52k
    yych = *(YYMARKER = ++YYCURSOR);
7778
1.52k
    if (yych == 'T') goto yy725;
7779
1.36k
    if (yych == 't') goto yy725;
7780
69
    goto yy48;
7781
882
yy651:
7782
882
    YYDEBUG(651, *YYCURSOR);
7783
882
    yyaccept = 4;
7784
882
    yych = *(YYMARKER = ++YYCURSOR);
7785
882
    if (yych == 'E') goto yy727;
7786
774
    if (yych == 'e') goto yy727;
7787
27
    goto yy48;
7788
517
yy652:
7789
517
    YYDEBUG(652, *YYCURSOR);
7790
517
    yyaccept = 4;
7791
517
    yych = *(YYMARKER = ++YYCURSOR);
7792
517
    if (yych == 'E') goto yy729;
7793
301
    if (yych == 'e') goto yy729;
7794
54
    goto yy48;
7795
426
yy653:
7796
426
    YYDEBUG(653, *YYCURSOR);
7797
426
    yyaccept = 59;
7798
426
    yych = *(YYMARKER = ++YYCURSOR);
7799
426
    if (yybm[256+yych] & 128) {
7800
63
      goto yy47;
7801
63
    }
7802
363
    if (yych == '\\') goto yy164;
7803
363
yy654:
7804
363
    YYDEBUG(654, *YYCURSOR);
7805
363
    yyleng = YYCURSOR - SCNG(yy_text);
7806
363
#line 1498 "Zend/zend_language_scanner.l"
7807
363
    {
7808
363
  RETURN_TOKEN_WITH_IDENT(T_DECLARE);
7809
363
}
7810
0
#line 7811 "Zend/zend_language_scanner.c"
7811
672
yy655:
7812
672
    YYDEBUG(655, *YYCURSOR);
7813
672
    yyaccept = 60;
7814
672
    yych = *(YYMARKER = ++YYCURSOR);
7815
672
    if (yybm[256+yych] & 128) {
7816
79
      goto yy47;
7817
79
    }
7818
593
    if (yych == '\\') goto yy164;
7819
527
yy656:
7820
527
    YYDEBUG(656, *YYCURSOR);
7821
527
    yyleng = YYCURSOR - SCNG(yy_text);
7822
527
#line 1530 "Zend/zend_language_scanner.l"
7823
527
    {
7824
527
  RETURN_TOKEN_WITH_IDENT(T_DEFAULT);
7825
527
}
7826
0
#line 7827 "Zend/zend_language_scanner.c"
7827
988
yy657:
7828
988
    YYDEBUG(657, *YYCURSOR);
7829
988
    yyaccept = 4;
7830
988
    yych = *(YYMARKER = ++YYCURSOR);
7831
988
    if (yych == 'A') goto yy731;
7832
804
    if (yych == 'a') goto yy731;
7833
196
    goto yy48;
7834
2.90k
yy658:
7835
2.90k
    YYDEBUG(658, *YYCURSOR);
7836
2.90k
    yyaccept = 4;
7837
2.90k
    yych = *(YYMARKER = ++YYCURSOR);
7838
2.90k
    if (yych == 'A') goto yy732;
7839
2.09k
    if (yych == 'a') goto yy732;
7840
810
    goto yy48;
7841
810
yy659:
7842
571
    YYDEBUG(659, *YYCURSOR);
7843
571
    yyaccept = 4;
7844
571
    yych = *(YYMARKER = ++YYCURSOR);
7845
571
    if (yych == 'C') goto yy733;
7846
512
    if (yych == 'c') goto yy733;
7847
36
    goto yy48;
7848
3.80k
yy660:
7849
3.80k
    YYDEBUG(660, *YYCURSOR);
7850
3.80k
    yyaccept = 4;
7851
3.80k
    yych = *(YYMARKER = ++YYCURSOR);
7852
3.80k
    if (yych == 'E') goto yy734;
7853
3.37k
    if (yych == 'e') goto yy734;
7854
24
    goto yy48;
7855
784
yy661:
7856
784
    YYDEBUG(661, *YYCURSOR);
7857
784
    yych = *++YYCURSOR;
7858
784
    if (yych == 'T') goto yy736;
7859
784
    if (yych == 't') goto yy736;
7860
125
    goto yy86;
7861
1.05k
yy662:
7862
1.05k
    YYDEBUG(662, *YYCURSOR);
7863
1.05k
    yych = *++YYCURSOR;
7864
1.05k
    if (yych == 'P') goto yy737;
7865
937
    if (yych == 'p') goto yy737;
7866
54
    goto yy86;
7867
34.3k
yy663:
7868
34.3k
    YYDEBUG(663, *YYCURSOR);
7869
34.3k
    ++YYCURSOR;
7870
34.3k
    YYFILL(1);
7871
34.3k
    yych = *YYCURSOR;
7872
34.3k
    if (yych <= '\n') {
7873
31.9k
      if (yych <= 0x00) goto yy86;
7874
31.7k
      if (yych <= '\t') goto yy586;
7875
31.6k
      goto yy588;
7876
31.7k
    } else {
7877
2.42k
      if (yych == '\r') goto yy588;
7878
2.31k
      goto yy586;
7879
2.42k
    }
7880
51.2k
yy664:
7881
51.2k
    YYDEBUG(664, *YYCURSOR);
7882
51.2k
    ++YYCURSOR;
7883
51.2k
    YYFILL(1);
7884
51.2k
    yych = *YYCURSOR;
7885
51.2k
    if (yych <= '\f') {
7886
1.69k
      if (yych <= 0x00) goto yy86;
7887
1.38k
      if (yych == '\n') goto yy495;
7888
135
      goto yy586;
7889
49.5k
    } else {
7890
49.5k
      if (yych <= '\r') goto yy495;
7891
49.1k
      if (yych == '*') goto yy738;
7892
5.07k
      goto yy586;
7893
49.1k
    }
7894
7.36k
yy665:
7895
7.36k
    YYDEBUG(665, *YYCURSOR);
7896
7.36k
    yyaccept = 53;
7897
7.36k
    YYMARKER = ++YYCURSOR;
7898
7.36k
    YYFILL(1);
7899
7.36k
    yych = *YYCURSOR;
7900
7.36k
    if (yych <= '\n') {
7901
1.16k
      if (yych <= 0x00) goto yy583;
7902
1.14k
      if (yych <= '\t') goto yy586;
7903
321
      goto yy495;
7904
6.20k
    } else {
7905
6.20k
      if (yych == '\r') goto yy495;
7906
5.83k
      goto yy586;
7907
6.20k
    }
7908
15.3k
yy666:
7909
15.3k
    YYDEBUG(666, *YYCURSOR);
7910
15.3k
    yyaccept = 53;
7911
15.3k
    YYMARKER = ++YYCURSOR;
7912
15.3k
    YYFILL(1);
7913
15.3k
    yych = *YYCURSOR;
7914
15.3k
    if (yych <= '\r') {
7915
255
      if (yych <= '\t') {
7916
75
        if (yych <= 0x00) goto yy583;
7917
18
        goto yy586;
7918
180
      } else {
7919
180
        if (yych <= '\n') goto yy495;
7920
36
        if (yych <= '\f') goto yy586;
7921
36
        goto yy495;
7922
36
      }
7923
15.1k
    } else {
7924
15.1k
      if (yych <= 'X') {
7925
537
        if (yych <= 'W') goto yy586;
7926
0
        goto yy740;
7927
14.5k
      } else {
7928
14.5k
        if (yych == 'x') goto yy740;
7929
12.9k
        goto yy586;
7930
14.5k
      }
7931
15.1k
    }
7932
17.7k
yy667:
7933
17.7k
    YYDEBUG(667, *YYCURSOR);
7934
17.7k
    yyaccept = 53;
7935
17.7k
    YYMARKER = ++YYCURSOR;
7936
17.7k
    YYFILL(1);
7937
17.7k
    yych = *YYCURSOR;
7938
17.7k
    if (yych <= '\r') {
7939
253
      if (yych <= '\t') {
7940
93
        if (yych <= 0x00) goto yy583;
7941
18
        goto yy586;
7942
160
      } else {
7943
160
        if (yych <= '\n') goto yy495;
7944
94
        if (yych <= '\f') goto yy586;
7945
12
        goto yy495;
7946
94
      }
7947
17.4k
    } else {
7948
17.4k
      if (yych <= 'M') {
7949
472
        if (yych <= 'L') goto yy586;
7950
96
        goto yy741;
7951
17.0k
      } else {
7952
17.0k
        if (yych == 'm') goto yy741;
7953
3.10k
        goto yy586;
7954
17.0k
      }
7955
17.4k
    }
7956
27.1k
yy668:
7957
27.1k
    YYDEBUG(668, *YYCURSOR);
7958
27.1k
    ++YYCURSOR;
7959
27.1k
    YYFILL(1);
7960
27.1k
    yych = *YYCURSOR;
7961
27.1k
    YYDEBUG(669, *YYCURSOR);
7962
27.1k
    if (yych <= '*') {
7963
6.61k
      if (yych <= 0x00) goto yy86;
7964
6.42k
      if (yych <= ')') goto yy590;
7965
2.98k
      goto yy668;
7966
20.4k
    } else {
7967
20.4k
      if (yych == '/') goto yy495;
7968
1.65k
      goto yy590;
7969
20.4k
    }
7970
4.55k
yy670:
7971
4.55k
    YYDEBUG(670, *YYCURSOR);
7972
4.55k
    yyaccept = 61;
7973
4.55k
    yych = *(YYMARKER = ++YYCURSOR);
7974
4.55k
    if (yybm[256+yych] & 128) {
7975
38
      goto yy47;
7976
38
    }
7977
4.51k
    if (yych == '\\') goto yy164;
7978
4.51k
yy671:
7979
4.51k
    YYDEBUG(671, *YYCURSOR);
7980
4.51k
    yyleng = YYCURSOR - SCNG(yy_text);
7981
4.51k
#line 1579 "Zend/zend_language_scanner.l"
7982
4.51k
    {
7983
4.51k
  RETURN_TOKEN_WITH_IDENT(T_EXTENDS);
7984
4.51k
}
7985
0
#line 7986 "Zend/zend_language_scanner.c"
7986
1.20k
yy672:
7987
1.20k
    YYDEBUG(672, *YYCURSOR);
7988
1.20k
    yyaccept = 62;
7989
1.20k
    yych = *(YYMARKER = ++YYCURSOR);
7990
1.20k
    if (yybm[256+yych] & 128) {
7991
348
      goto yy47;
7992
348
    }
7993
859
    if (yych == '\\') goto yy164;
7994
838
yy673:
7995
838
    YYDEBUG(673, *YYCURSOR);
7996
838
    yyleng = YYCURSOR - SCNG(yy_text);
7997
838
#line 1446 "Zend/zend_language_scanner.l"
7998
838
    {
7999
838
  RETURN_TOKEN_WITH_IDENT(T_FINALLY);
8000
838
}
8001
0
#line 8002 "Zend/zend_language_scanner.c"
8002
8.81k
yy674:
8003
8.81k
    YYDEBUG(674, *YYCURSOR);
8004
8.81k
    yyaccept = 63;
8005
8.81k
    yych = *(YYMARKER = ++YYCURSOR);
8006
8.81k
    if (yybm[256+yych] & 128) {
8007
546
      goto yy47;
8008
546
    }
8009
8.26k
    if (yych == '\\') goto yy164;
8010
8.26k
yy675:
8011
8.26k
    YYDEBUG(675, *YYCURSOR);
8012
8.26k
    yyleng = YYCURSOR - SCNG(yy_text);
8013
8.26k
#line 1490 "Zend/zend_language_scanner.l"
8014
8.26k
    {
8015
8.26k
  RETURN_TOKEN_WITH_IDENT(T_FOREACH);
8016
8.26k
}
8017
0
#line 8018 "Zend/zend_language_scanner.c"
8018
49.6k
yy676:
8019
49.6k
    YYDEBUG(676, *YYCURSOR);
8020
49.6k
    yyaccept = 4;
8021
49.6k
    yych = *(YYMARKER = ++YYCURSOR);
8022
49.6k
    if (yych == 'N') goto yy742;
8023
49.1k
    if (yych == 'n') goto yy742;
8024
1.50k
    goto yy48;
8025
9.59k
yy677:
8026
9.59k
    YYDEBUG(677, *YYCURSOR);
8027
9.59k
    yyaccept = 4;
8028
9.59k
    yych = *(YYMARKER = ++YYCURSOR);
8029
9.59k
    if (yych == 'N') goto yy744;
8030
9.19k
    if (yych == 'n') goto yy744;
8031
5.34k
    goto yy48;
8032
5.34k
yy678:
8033
1.39k
    YYDEBUG(678, *YYCURSOR);
8034
1.39k
    yyaccept = 64;
8035
1.39k
    yych = *(YYMARKER = ++YYCURSOR);
8036
1.39k
    if (yych <= '\\') {
8037
984
      if (yych <= '@') {
8038
984
        if (yych <= '/') goto yy679;
8039
24
        if (yych <= '9') goto yy47;
8040
24
      } else {
8041
0
        if (yych <= 'Z') goto yy47;
8042
0
        if (yych >= '\\') goto yy164;
8043
0
      }
8044
984
    } else {
8045
414
      if (yych <= '`') {
8046
354
        if (yych == '_') goto yy745;
8047
354
      } else {
8048
60
        if (yych <= 'z') goto yy47;
8049
57
        if (yych >= 0x80) goto yy47;
8050
57
      }
8051
414
    }
8052
969
yy679:
8053
969
    YYDEBUG(679, *YYCURSOR);
8054
969
    yyleng = YYCURSOR - SCNG(yy_text);
8055
969
#line 1722 "Zend/zend_language_scanner.l"
8056
969
    {
8057
969
  RETURN_TOKEN_WITH_IDENT(T_INCLUDE);
8058
969
}
8059
0
#line 8060 "Zend/zend_language_scanner.c"
8060
2.07k
yy680:
8061
2.07k
    YYDEBUG(680, *YYCURSOR);
8062
2.07k
    yyaccept = 4;
8063
2.07k
    yych = *(YYMARKER = ++YYCURSOR);
8064
2.07k
    if (yych == 'E') goto yy746;
8065
1.31k
    if (yych == 'e') goto yy746;
8066
651
    goto yy48;
8067
1.12k
yy681:
8068
1.12k
    YYDEBUG(681, *YYCURSOR);
8069
1.12k
    yyaccept = 4;
8070
1.12k
    yych = *(YYMARKER = ++YYCURSOR);
8071
1.12k
    if (yych == 'O') goto yy747;
8072
802
    if (yych == 'o') goto yy747;
8073
0
    goto yy48;
8074
8.11k
yy682:
8075
8.11k
    YYDEBUG(682, *YYCURSOR);
8076
8.11k
    yyaccept = 4;
8077
8.11k
    yych = *(YYMARKER = ++YYCURSOR);
8078
8.11k
    if (yych == 'C') goto yy748;
8079
7.89k
    if (yych == 'c') goto yy748;
8080
117
    goto yy48;
8081
6.34k
yy683:
8082
6.34k
    YYDEBUG(683, *YYCURSOR);
8083
6.34k
    yyaccept = 4;
8084
6.34k
    yych = *(YYMARKER = ++YYCURSOR);
8085
6.34k
    if (yych == 'C') goto yy749;
8086
5.43k
    if (yych == 'c') goto yy749;
8087
126
    goto yy48;
8088
3.23k
yy684:
8089
3.23k
    YYDEBUG(684, *YYCURSOR);
8090
3.23k
    yyaccept = 65;
8091
3.23k
    yych = *(YYMARKER = ++YYCURSOR);
8092
3.23k
    if (yybm[256+yych] & 128) {
8093
147
      goto yy47;
8094
147
    }
8095
3.08k
    if (yych == '(') goto yy750;
8096
2.80k
    if (yych == '\\') goto yy164;
8097
2.93k
yy685:
8098
2.93k
    YYDEBUG(685, *YYCURSOR);
8099
2.93k
    yyleng = YYCURSOR - SCNG(yy_text);
8100
2.93k
#line 1778 "Zend/zend_language_scanner.l"
8101
2.93k
    {
8102
2.93k
  RETURN_TOKEN_WITH_IDENT(T_PRIVATE);
8103
2.93k
}
8104
0
#line 8105 "Zend/zend_language_scanner.c"
8105
2.26k
yy686:
8106
2.26k
    YYDEBUG(686, *YYCURSOR);
8107
2.26k
    yyaccept = 4;
8108
2.26k
    yych = *(YYMARKER = ++YYCURSOR);
8109
2.26k
    if (yych == 'E') goto yy751;
8110
2.06k
    if (yych == 'e') goto yy751;
8111
47
    goto yy48;
8112
147
yy687:
8113
147
    YYDEBUG(687, *YYCURSOR);
8114
147
    yych = *++YYCURSOR;
8115
147
    if (yych == 'S') goto yy752;
8116
147
    if (yych == 's') goto yy752;
8117
71
    goto yy86;
8118
633
yy688:
8119
633
    YYDEBUG(688, *YYCURSOR);
8120
633
    yyaccept = 4;
8121
633
    yych = *(YYMARKER = ++YYCURSOR);
8122
633
    if (yych == 'Y') goto yy753;
8123
600
    if (yych == 'y') goto yy753;
8124
3
    goto yy48;
8125
10.7k
yy689:
8126
10.7k
    YYDEBUG(689, *YYCURSOR);
8127
10.7k
    yyaccept = 66;
8128
10.7k
    yych = *(YYMARKER = ++YYCURSOR);
8129
10.7k
    if (yych <= '\\') {
8130
2.54k
      if (yych <= '@') {
8131
2.47k
        if (yych <= '/') goto yy690;
8132
66
        if (yych <= '9') goto yy47;
8133
78
      } else {
8134
78
        if (yych <= 'Z') goto yy47;
8135
51
        if (yych >= '\\') goto yy164;
8136
51
      }
8137
8.22k
    } else {
8138
8.22k
      if (yych <= '`') {
8139
1.27k
        if (yych == '_') goto yy755;
8140
6.95k
      } else {
8141
6.95k
        if (yych <= 'z') goto yy47;
8142
6.87k
        if (yych >= 0x80) goto yy47;
8143
6.87k
      }
8144
8.22k
    }
8145
2.59k
yy690:
8146
2.59k
    YYDEBUG(690, *YYCURSOR);
8147
2.59k
    yyleng = YYCURSOR - SCNG(yy_text);
8148
2.59k
#line 1730 "Zend/zend_language_scanner.l"
8149
2.59k
    {
8150
2.59k
  RETURN_TOKEN_WITH_IDENT(T_REQUIRE);
8151
2.59k
}
8152
0
#line 8153 "Zend/zend_language_scanner.c"
8153
1.24k
yy691:
8154
1.24k
    YYDEBUG(691, *YYCURSOR);
8155
1.24k
    yych = *++YYCURSOR;
8156
1.24k
    if (yych == 'R') goto yy756;
8157
1.18k
    if (yych == 'r') goto yy756;
8158
86
    goto yy86;
8159
341k
yy692:
8160
341k
    YYDEBUG(692, *YYCURSOR);
8161
341k
    ++YYCURSOR;
8162
341k
    YYFILL(1);
8163
341k
    yych = *YYCURSOR;
8164
341k
    YYDEBUG(693, *YYCURSOR);
8165
341k
    if (yych <= '\n') {
8166
31.8k
      if (yych <= 0x00) goto yy86;
8167
29.4k
      if (yych <= '\t') goto yy692;
8168
19.7k
      goto yy616;
8169
309k
    } else {
8170
309k
      if (yych == '\r') goto yy616;
8171
294k
      goto yy692;
8172
309k
    }
8173
43.4k
yy694:
8174
43.4k
    YYDEBUG(694, *YYCURSOR);
8175
43.4k
    ++YYCURSOR;
8176
43.4k
    YYFILL(1);
8177
43.4k
    yych = *YYCURSOR;
8178
43.4k
    YYDEBUG(695, *YYCURSOR);
8179
43.4k
    if (yych <= ' ') {
8180
5.43k
      if (yych <= '\n') {
8181
709
        if (yych <= 0x00) goto yy86;
8182
315
        if (yych <= 0x08) goto yy692;
8183
180
        if (yych <= '\t') goto yy694;
8184
180
        goto yy616;
8185
4.72k
      } else {
8186
4.72k
        if (yych == '\r') goto yy616;
8187
4.67k
        if (yych <= 0x1F) goto yy692;
8188
4.56k
        goto yy694;
8189
4.67k
      }
8190
37.9k
    } else {
8191
37.9k
      if (yych <= '/') {
8192
23.6k
        if (yych == '#') goto yy757;
8193
16.1k
        if (yych <= '.') goto yy692;
8194
10.9k
        goto yy758;
8195
16.1k
      } else {
8196
14.3k
        if (yych <= 'F') {
8197
1.61k
          if (yych <= 'E') goto yy692;
8198
819
          goto yy759;
8199
12.7k
        } else {
8200
12.7k
          if (yych == 'f') goto yy759;
8201
12.7k
          goto yy692;
8202
12.7k
        }
8203
14.3k
      }
8204
37.9k
    }
8205
769k
yy696:
8206
769k
    YYDEBUG(696, *YYCURSOR);
8207
769k
    ++YYCURSOR;
8208
769k
    YYFILL(1);
8209
769k
    yych = *YYCURSOR;
8210
769k
    YYDEBUG(697, *YYCURSOR);
8211
769k
    if (yych <= 0x00) goto yy86;
8212
765k
    if (yych == '*') goto yy760;
8213
755k
    goto yy696;
8214
755k
yy698:
8215
801
    YYDEBUG(698, *YYCURSOR);
8216
801
    yyaccept = 4;
8217
801
    yych = *(YYMARKER = ++YYCURSOR);
8218
801
    if (yych == '_') goto yy762;
8219
106
    goto yy48;
8220
2.03k
yy699:
8221
2.03k
    YYDEBUG(699, *YYCURSOR);
8222
2.03k
    yyaccept = 67;
8223
2.03k
    yych = *(YYMARKER = ++YYCURSOR);
8224
2.03k
    if (yybm[256+yych] & 128) {
8225
129
      goto yy47;
8226
129
    }
8227
1.90k
    if (yych == '\\') goto yy164;
8228
1.90k
yy700:
8229
1.90k
    YYDEBUG(700, *YYCURSOR);
8230
1.90k
    yyleng = YYCURSOR - SCNG(yy_text);
8231
1.90k
#line 2281 "Zend/zend_language_scanner.l"
8232
1.90k
    {
8233
1.90k
  RETURN_TOKEN_WITH_IDENT(T_DIR);
8234
1.90k
}
8235
0
#line 8236 "Zend/zend_language_scanner.c"
8236
2.35k
yy701:
8237
2.35k
    YYDEBUG(701, *YYCURSOR);
8238
2.35k
    yyaccept = 4;
8239
2.35k
    yych = *(YYMARKER = ++YYCURSOR);
8240
2.35k
    if (yych == '_') goto yy763;
8241
3
    goto yy48;
8242
2.83k
yy702:
8243
2.83k
    YYDEBUG(702, *YYCURSOR);
8244
2.83k
    yyaccept = 4;
8245
2.83k
    yych = *(YYMARKER = ++YYCURSOR);
8246
2.83k
    if (yych == 'I') goto yy765;
8247
124
    if (yych == 'i') goto yy765;
8248
101
    goto yy48;
8249
226
yy703:
8250
226
    YYDEBUG(703, *YYCURSOR);
8251
226
    yyaccept = 4;
8252
226
    yych = *(YYMARKER = ++YYCURSOR);
8253
226
    if (yych == 'C') goto yy766;
8254
140
    if (yych == 'c') goto yy766;
8255
11
    goto yy48;
8256
847
yy704:
8257
847
    YYDEBUG(704, *YYCURSOR);
8258
847
    yyaccept = 4;
8259
847
    yych = *(YYMARKER = ++YYCURSOR);
8260
847
    if (yych == '_') goto yy767;
8261
189
    goto yy48;
8262
6.98k
yy705:
8263
6.98k
    YYDEBUG(705, *YYCURSOR);
8264
6.98k
    yyaccept = 4;
8265
6.98k
    yych = *(YYMARKER = ++YYCURSOR);
8266
6.98k
    if (yych == 'D') goto yy769;
8267
226
    if (yych == 'd') goto yy769;
8268
203
    goto yy48;
8269
234
yy706:
8270
234
    YYDEBUG(706, *YYCURSOR);
8271
234
    yyaccept = 4;
8272
234
    yych = *(YYMARKER = ++YYCURSOR);
8273
234
    if (yych == 'P') goto yy770;
8274
33
    if (yych == 'p') goto yy770;
8275
11
    goto yy48;
8276
395
yy707:
8277
395
    YYDEBUG(707, *YYCURSOR);
8278
395
    yyaccept = 4;
8279
395
    yych = *(YYMARKER = ++YYCURSOR);
8280
395
    if (yych == 'R') goto yy771;
8281
5
    if (yych == 'r') goto yy771;
8282
5
    goto yy48;
8283
233
yy708:
8284
233
    YYDEBUG(708, *YYCURSOR);
8285
233
    yyaccept = 4;
8286
233
    yych = *(YYMARKER = ++YYCURSOR);
8287
233
    if (yych == '_') goto yy772;
8288
60
    goto yy48;
8289
8.53k
yy709:
8290
8.53k
    YYDEBUG(709, *YYCURSOR);
8291
8.53k
    ++YYCURSOR;
8292
8.53k
    YYFILL(1);
8293
8.53k
    yych = *YYCURSOR;
8294
8.53k
    YYDEBUG(710, *YYCURSOR);
8295
8.53k
    if (yych <= ' ') {
8296
1.35k
      if (yych <= '\n') {
8297
402
        if (yych <= 0x00) goto yy86;
8298
396
        if (yych <= 0x08) goto yy443;
8299
285
        if (yych <= '\t') goto yy709;
8300
102
        goto yy545;
8301
957
      } else {
8302
957
        if (yych == '\r') goto yy545;
8303
798
        if (yych <= 0x1F) goto yy443;
8304
615
        goto yy709;
8305
798
      }
8306
7.17k
    } else {
8307
7.17k
      if (yych <= ')') {
8308
691
        if (yych <= '"') goto yy443;
8309
667
        if (yych <= '#') goto yy773;
8310
9
        if (yych <= '$') goto yy774;
8311
0
        goto yy443;
8312
6.48k
      } else {
8313
6.48k
        if (yych <= '-') {
8314
276
          if (yych <= '*') goto yy547;
8315
252
          goto yy443;
8316
6.21k
        } else {
8317
6.21k
          if (yych <= '.') goto yy775;
8318
6.19k
          if (yych <= '/') goto yy776;
8319
4.88k
          goto yy443;
8320
6.19k
        }
8321
6.48k
      }
8322
7.17k
    }
8323
0
yy711:
8324
0
    YYDEBUG(711, *YYCURSOR);
8325
0
    ++YYCURSOR;
8326
0
    YYFILL(1);
8327
0
    yych = *YYCURSOR;
8328
0
    if (yybm[0+yych] & 64) {
8329
0
      goto yy355;
8330
0
    }
8331
0
    if (yych <= 0x00) goto yy86;
8332
0
    if (yych == '.') goto yy631;
8333
0
    goto yy230;
8334
903
yy712:
8335
903
    YYDEBUG(712, *YYCURSOR);
8336
903
    ++YYCURSOR;
8337
903
    YYFILL(1);
8338
903
    yych = *YYCURSOR;
8339
903
    if (yybm[0+yych] & 64) {
8340
0
      goto yy355;
8341
0
    }
8342
903
    if (yych <= 0x00) goto yy86;
8343
903
    if (yych == '/') goto yy545;
8344
21
    goto yy230;
8345
21
yy713:
8346
5
    YYDEBUG(713, *YYCURSOR);
8347
5
    ++YYCURSOR;
8348
5
    YYDEBUG(714, *YYCURSOR);
8349
5
    yyleng = YYCURSOR - SCNG(yy_text);
8350
5
#line 1678 "Zend/zend_language_scanner.l"
8351
5
    {
8352
5
  if (PARSER_MODE()) {
8353
5
    zend_error(E_DEPRECATED, "Non-canonical cast (binary) is deprecated, use the (string) cast instead");
8354
5
    if (EG(exception)) {
8355
0
      RETURN_TOKEN(T_ERROR);
8356
0
    }
8357
5
  }
8358
5
  RETURN_TOKEN(T_STRING_CAST);
8359
5
}
8360
0
#line 8361 "Zend/zend_language_scanner.c"
8361
50
yy715:
8362
50
    YYDEBUG(715, *YYCURSOR);
8363
50
    ++YYCURSOR;
8364
50
    YYFILL(1);
8365
50
    yych = *YYCURSOR;
8366
50
    YYDEBUG(716, *YYCURSOR);
8367
50
    if (yych <= 0x1F) {
8368
0
      if (yych == '\t') goto yy715;
8369
0
      goto yy86;
8370
50
    } else {
8371
50
      if (yych <= ' ') goto yy715;
8372
26
      if (yych == ')') goto yy777;
8373
24
      goto yy86;
8374
26
    }
8375
50
yy717:
8376
50
    YYDEBUG(717, *YYCURSOR);
8377
50
    ++YYCURSOR;
8378
50
    YYDEBUG(718, *YYCURSOR);
8379
50
    yyleng = YYCURSOR - SCNG(yy_text);
8380
50
#line 1656 "Zend/zend_language_scanner.l"
8381
50
    {
8382
50
  if (PARSER_MODE()) {
8383
14
    zend_error(E_DEPRECATED, "Non-canonical cast (double) is deprecated, use the (float) cast instead");
8384
14
    if (EG(exception)) {
8385
0
      RETURN_TOKEN(T_ERROR);
8386
0
    }
8387
14
  }
8388
50
  RETURN_TOKEN(T_DOUBLE_CAST);
8389
50
}
8390
0
#line 8391 "Zend/zend_language_scanner.c"
8391
55
yy719:
8392
55
    YYDEBUG(719, *YYCURSOR);
8393
55
    ++YYCURSOR;
8394
55
    YYFILL(1);
8395
55
    yych = *YYCURSOR;
8396
55
    YYDEBUG(720, *YYCURSOR);
8397
55
    if (yych <= 0x1F) {
8398
6
      if (yych == '\t') goto yy719;
8399
6
      goto yy86;
8400
49
    } else {
8401
49
      if (yych <= ' ') goto yy719;
8402
30
      if (yych == ')') goto yy779;
8403
19
      goto yy86;
8404
30
    }
8405
312
yy721:
8406
312
    YYDEBUG(721, *YYCURSOR);
8407
312
    ++YYCURSOR;
8408
312
    YYDEBUG(722, *YYCURSOR);
8409
312
    yyleng = YYCURSOR - SCNG(yy_text);
8410
312
#line 1692 "Zend/zend_language_scanner.l"
8411
312
    {
8412
312
  RETURN_TOKEN(T_OBJECT_CAST);
8413
312
}
8414
0
#line 8415 "Zend/zend_language_scanner.c"
8415
400
yy723:
8416
400
    YYDEBUG(723, *YYCURSOR);
8417
400
    ++YYCURSOR;
8418
400
    YYDEBUG(724, *YYCURSOR);
8419
400
    yyleng = YYCURSOR - SCNG(yy_text);
8420
400
#line 1674 "Zend/zend_language_scanner.l"
8421
400
    {
8422
400
  RETURN_TOKEN(T_STRING_CAST);
8423
400
}
8424
0
#line 8425 "Zend/zend_language_scanner.c"
8425
1.45k
yy725:
8426
1.45k
    YYDEBUG(725, *YYCURSOR);
8427
1.45k
    yyaccept = 68;
8428
1.45k
    yych = *(YYMARKER = ++YYCURSOR);
8429
1.45k
    if (yybm[256+yych] & 128) {
8430
30
      goto yy47;
8431
30
    }
8432
1.42k
    if (yych == '\\') goto yy164;
8433
1.42k
yy726:
8434
1.42k
    YYDEBUG(726, *YYCURSOR);
8435
1.42k
    yyleng = YYCURSOR - SCNG(yy_text);
8436
1.42k
#line 1770 "Zend/zend_language_scanner.l"
8437
1.42k
    {
8438
1.42k
  RETURN_TOKEN_WITH_IDENT(T_ABSTRACT);
8439
1.42k
}
8440
0
#line 8441 "Zend/zend_language_scanner.c"
8441
855
yy727:
8442
855
    YYDEBUG(727, *YYCURSOR);
8443
855
    yyaccept = 69;
8444
855
    yych = *(YYMARKER = ++YYCURSOR);
8445
855
    if (yybm[256+yych] & 128) {
8446
32
      goto yy47;
8447
32
    }
8448
823
    if (yych == '\\') goto yy164;
8449
823
yy728:
8450
823
    YYDEBUG(728, *YYCURSOR);
8451
823
    yyleng = YYCURSOR - SCNG(yy_text);
8452
823
#line 1822 "Zend/zend_language_scanner.l"
8453
823
    {
8454
823
  RETURN_TOKEN_WITH_IDENT(T_CALLABLE);
8455
823
}
8456
0
#line 8457 "Zend/zend_language_scanner.c"
8457
463
yy729:
8458
463
    YYDEBUG(729, *YYCURSOR);
8459
463
    yyaccept = 70;
8460
463
    yych = *(YYMARKER = ++YYCURSOR);
8461
463
    if (yybm[256+yych] & 128) {
8462
54
      goto yy47;
8463
54
    }
8464
409
    if (yych == '\\') goto yy164;
8465
409
yy730:
8466
409
    YYDEBUG(730, *YYCURSOR);
8467
409
    yyleng = YYCURSOR - SCNG(yy_text);
8468
409
#line 1538 "Zend/zend_language_scanner.l"
8469
409
    {
8470
409
  RETURN_TOKEN_WITH_IDENT(T_CONTINUE);
8471
409
}
8472
0
#line 8473 "Zend/zend_language_scanner.c"
8473
792
yy731:
8474
792
    YYDEBUG(731, *YYCURSOR);
8475
792
    yyaccept = 4;
8476
792
    yych = *(YYMARKER = ++YYCURSOR);
8477
792
    if (yych == 'R') goto yy781;
8478
611
    if (yych == 'r') goto yy781;
8479
3
    goto yy48;
8480
2.09k
yy732:
8481
2.09k
    YYDEBUG(732, *YYCURSOR);
8482
2.09k
    yyaccept = 4;
8483
2.09k
    yych = *(YYMARKER = ++YYCURSOR);
8484
2.09k
    if (yych == 'C') goto yy782;
8485
1.28k
    if (yych == 'c') goto yy782;
8486
3
    goto yy48;
8487
535
yy733:
8488
535
    YYDEBUG(733, *YYCURSOR);
8489
535
    yyaccept = 4;
8490
535
    yych = *(YYMARKER = ++YYCURSOR);
8491
535
    if (yych == 'H') goto yy783;
8492
476
    if (yych == 'h') goto yy783;
8493
390
    goto yy48;
8494
3.78k
yy734:
8495
3.78k
    YYDEBUG(734, *YYCURSOR);
8496
3.78k
    yyaccept = 71;
8497
3.78k
    yych = *(YYMARKER = ++YYCURSOR);
8498
3.78k
    if (yybm[256+yych] & 128) {
8499
18
      goto yy47;
8500
18
    }
8501
3.76k
    if (yych == '\\') goto yy164;
8502
3.76k
yy735:
8503
3.76k
    YYDEBUG(735, *YYCURSOR);
8504
3.76k
    yyleng = YYCURSOR - SCNG(yy_text);
8505
3.76k
#line 1474 "Zend/zend_language_scanner.l"
8506
3.76k
    {
8507
3.76k
  RETURN_TOKEN_WITH_IDENT(T_ENDWHILE);
8508
3.76k
}
8509
0
#line 8510 "Zend/zend_language_scanner.c"
8510
659
yy736:
8511
659
    YYDEBUG(736, *YYCURSOR);
8512
659
    yych = *++YYCURSOR;
8513
659
    if (yych == 'E') goto yy785;
8514
659
    if (yych == 'e') goto yy785;
8515
279
    goto yy86;
8516
1.00k
yy737:
8517
1.00k
    YYDEBUG(737, *YYCURSOR);
8518
1.00k
    yych = *++YYCURSOR;
8519
1.00k
    if (yych == 'L') goto yy786;
8520
991
    if (yych == 'l') goto yy786;
8521
120
    goto yy86;
8522
2.73M
yy738:
8523
2.73M
    YYDEBUG(738, *YYCURSOR);
8524
2.73M
    ++YYCURSOR;
8525
2.73M
    YYFILL(1);
8526
2.73M
    yych = *YYCURSOR;
8527
2.73M
    YYDEBUG(739, *YYCURSOR);
8528
2.73M
    if (yych <= '\f') {
8529
96.2k
      if (yych <= 0x00) goto yy86;
8530
87.1k
      if (yych == '\n') goto yy787;
8531
22.7k
      goto yy738;
8532
2.63M
    } else {
8533
2.63M
      if (yych <= '\r') goto yy787;
8534
2.56M
      if (yych == '*') goto yy789;
8535
2.55M
      goto yy738;
8536
2.56M
    }
8537
1.67k
yy740:
8538
1.67k
    YYDEBUG(740, *YYCURSOR);
8539
1.67k
    ++YYCURSOR;
8540
1.67k
    YYFILL(1);
8541
1.67k
    yych = *YYCURSOR;
8542
1.67k
    if (yych <= '\r') {
8543
159
      if (yych <= '\t') {
8544
144
        if (yych <= 0x00) goto yy86;
8545
0
        goto yy586;
8546
144
      } else {
8547
15
        if (yych <= '\n') goto yy495;
8548
15
        if (yych <= '\f') goto yy586;
8549
0
        goto yy495;
8550
15
      }
8551
1.51k
    } else {
8552
1.51k
      if (yych <= 'T') {
8553
543
        if (yych <= 'S') goto yy586;
8554
90
        goto yy791;
8555
969
      } else {
8556
969
        if (yych == 't') goto yy791;
8557
285
        goto yy586;
8558
969
      }
8559
1.51k
    }
8560
14.0k
yy741:
8561
14.0k
    YYDEBUG(741, *YYCURSOR);
8562
14.0k
    ++YYCURSOR;
8563
14.0k
    YYFILL(1);
8564
14.0k
    yych = *YYCURSOR;
8565
14.0k
    if (yych <= '\r') {
8566
201
      if (yych <= '\t') {
8567
108
        if (yych <= 0x00) goto yy86;
8568
78
        goto yy586;
8569
108
      } else {
8570
93
        if (yych <= '\n') goto yy495;
8571
9
        if (yych <= '\f') goto yy586;
8572
9
        goto yy495;
8573
9
      }
8574
13.8k
    } else {
8575
13.8k
      if (yych <= 'P') {
8576
1.51k
        if (yych <= 'O') goto yy586;
8577
63
        goto yy792;
8578
12.2k
      } else {
8579
12.2k
        if (yych == 'p') goto yy792;
8580
486
        goto yy586;
8581
12.2k
      }
8582
13.8k
    }
8583
48.1k
yy742:
8584
48.1k
    YYDEBUG(742, *YYCURSOR);
8585
48.1k
    yyaccept = 72;
8586
48.1k
    yych = *(YYMARKER = ++YYCURSOR);
8587
48.1k
    if (yybm[256+yych] & 128) {
8588
832
      goto yy47;
8589
832
    }
8590
47.3k
    if (yych == '\\') goto yy164;
8591
47.3k
yy743:
8592
47.3k
    YYDEBUG(743, *YYCURSOR);
8593
47.3k
    yyleng = YYCURSOR - SCNG(yy_text);
8594
47.3k
#line 1411 "Zend/zend_language_scanner.l"
8595
47.3k
    {
8596
47.3k
  RETURN_TOKEN_WITH_IDENT(T_FUNCTION);
8597
47.3k
}
8598
0
#line 8599 "Zend/zend_language_scanner.c"
8599
4.25k
yy744:
8600
4.25k
    YYDEBUG(744, *YYCURSOR);
8601
4.25k
    yyaccept = 4;
8602
4.25k
    yych = *(YYMARKER = ++YYCURSOR);
8603
4.25k
    if (yych == 'T') goto yy793;
8604
4.08k
    if (yych == 't') goto yy793;
8605
591
    goto yy48;
8606
591
yy745:
8607
354
    YYDEBUG(745, *YYCURSOR);
8608
354
    yyaccept = 4;
8609
354
    yych = *(YYMARKER = ++YYCURSOR);
8610
354
    if (yych == 'O') goto yy794;
8611
159
    if (yych == 'o') goto yy794;
8612
9
    goto yy48;
8613
1.42k
yy746:
8614
1.42k
    YYDEBUG(746, *YYCURSOR);
8615
1.42k
    yyaccept = 4;
8616
1.42k
    yych = *(YYMARKER = ++YYCURSOR);
8617
1.42k
    if (yych == 'O') goto yy795;
8618
663
    if (yych == 'o') goto yy795;
8619
217
    goto yy48;
8620
1.12k
yy747:
8621
1.12k
    YYDEBUG(747, *YYCURSOR);
8622
1.12k
    yyaccept = 4;
8623
1.12k
    yych = *(YYMARKER = ++YYCURSOR);
8624
1.12k
    if (yych == 'F') goto yy796;
8625
829
    if (yych == 'f') goto yy796;
8626
30
    goto yy48;
8627
7.99k
yy748:
8628
7.99k
    YYDEBUG(748, *YYCURSOR);
8629
7.99k
    yyaccept = 4;
8630
7.99k
    yych = *(YYMARKER = ++YYCURSOR);
8631
7.99k
    if (yych == 'E') goto yy798;
8632
7.83k
    if (yych == 'e') goto yy798;
8633
425
    goto yy48;
8634
6.22k
yy749:
8635
6.22k
    YYDEBUG(749, *YYCURSOR);
8636
6.22k
    yyaccept = 4;
8637
6.22k
    yych = *(YYMARKER = ++YYCURSOR);
8638
6.22k
    if (yych == 'E') goto yy800;
8639
5.33k
    if (yych == 'e') goto yy800;
8640
85
    goto yy48;
8641
282
yy750:
8642
282
    YYDEBUG(750, *YYCURSOR);
8643
282
    yych = *++YYCURSOR;
8644
282
    if (yych == 'S') goto yy802;
8645
282
    if (yych == 's') goto yy802;
8646
59
    goto yy86;
8647
2.21k
yy751:
8648
2.21k
    YYDEBUG(751, *YYCURSOR);
8649
2.21k
    yyaccept = 4;
8650
2.21k
    yych = *(YYMARKER = ++YYCURSOR);
8651
2.21k
    if (yych == 'D') goto yy803;
8652
2.01k
    if (yych == 'd') goto yy803;
8653
177
    goto yy48;
8654
177
yy752:
8655
76
    YYDEBUG(752, *YYCURSOR);
8656
76
    yych = *++YYCURSOR;
8657
76
    if (yych == 'E') goto yy805;
8658
76
    if (yych == 'e') goto yy805;
8659
51
    goto yy86;
8660
630
yy753:
8661
630
    YYDEBUG(753, *YYCURSOR);
8662
630
    yyaccept = 73;
8663
630
    yych = *(YYMARKER = ++YYCURSOR);
8664
630
    if (yybm[256+yych] & 128) {
8665
30
      goto yy47;
8666
30
    }
8667
600
    if (yych == '\\') goto yy164;
8668
600
yy754:
8669
600
    YYDEBUG(754, *YYCURSOR);
8670
600
    yyleng = YYCURSOR - SCNG(yy_text);
8671
600
#line 1802 "Zend/zend_language_scanner.l"
8672
600
    {
8673
600
  RETURN_TOKEN_WITH_IDENT(T_READONLY);
8674
600
}
8675
0
#line 8676 "Zend/zend_language_scanner.c"
8676
1.23k
yy755:
8677
1.23k
    YYDEBUG(755, *YYCURSOR);
8678
1.23k
    yyaccept = 4;
8679
1.23k
    yych = *(YYMARKER = ++YYCURSOR);
8680
1.23k
    if (yych == 'O') goto yy806;
8681
1.06k
    if (yych == 'o') goto yy806;
8682
77
    goto yy48;
8683
1.16k
yy756:
8684
1.16k
    YYDEBUG(756, *YYCURSOR);
8685
1.16k
    yych = *++YYCURSOR;
8686
1.16k
    if (yych == 'O') goto yy807;
8687
1.13k
    if (yych == 'o') goto yy807;
8688
308
    goto yy86;
8689
7.45k
yy757:
8690
7.45k
    YYDEBUG(757, *YYCURSOR);
8691
7.45k
    ++YYCURSOR;
8692
7.45k
    YYFILL(1);
8693
7.45k
    yych = *YYCURSOR;
8694
7.45k
    if (yych <= '\n') {
8695
6.69k
      if (yych <= 0x00) goto yy86;
8696
6.69k
      if (yych <= '\t') goto yy692;
8697
6.69k
      goto yy694;
8698
6.69k
    } else {
8699
756
      if (yych == '\r') goto yy694;
8700
93
      goto yy692;
8701
756
    }
8702
10.9k
yy758:
8703
10.9k
    YYDEBUG(758, *YYCURSOR);
8704
10.9k
    ++YYCURSOR;
8705
10.9k
    YYFILL(1);
8706
10.9k
    yych = *YYCURSOR;
8707
10.9k
    if (yych <= '\f') {
8708
579
      if (yych <= 0x00) goto yy86;
8709
264
      if (yych == '\n') goto yy616;
8710
0
      goto yy692;
8711
10.3k
    } else {
8712
10.3k
      if (yych <= '\r') goto yy616;
8713
10.0k
      if (yych == '*') goto yy808;
8714
162
      goto yy692;
8715
10.0k
    }
8716
831
yy759:
8717
831
    YYDEBUG(759, *YYCURSOR);
8718
831
    ++YYCURSOR;
8719
831
    YYFILL(1);
8720
831
    yych = *YYCURSOR;
8721
831
    if (yych <= '\r') {
8722
0
      if (yych <= '\t') {
8723
0
        if (yych <= 0x00) goto yy86;
8724
0
        goto yy692;
8725
0
      } else {
8726
0
        if (yych <= '\n') goto yy616;
8727
0
        if (yych <= '\f') goto yy692;
8728
0
        goto yy616;
8729
0
      }
8730
831
    } else {
8731
831
      if (yych <= 'R') {
8732
816
        if (yych <= 'Q') goto yy692;
8733
519
        goto yy810;
8734
816
      } else {
8735
15
        if (yych == 'r') goto yy810;
8736
12
        goto yy692;
8737
15
      }
8738
831
    }
8739
12.9k
yy760:
8740
12.9k
    YYDEBUG(760, *YYCURSOR);
8741
12.9k
    ++YYCURSOR;
8742
12.9k
    YYFILL(1);
8743
12.9k
    yych = *YYCURSOR;
8744
12.9k
    YYDEBUG(761, *YYCURSOR);
8745
12.9k
    if (yych <= '*') {
8746
3.78k
      if (yych <= 0x00) goto yy86;
8747
3.72k
      if (yych <= ')') goto yy696;
8748
2.52k
      goto yy760;
8749
9.12k
    } else {
8750
9.12k
      if (yych == '/') goto yy616;
8751
912
      goto yy696;
8752
9.12k
    }
8753
695
yy762:
8754
695
    YYDEBUG(762, *YYCURSOR);
8755
695
    yyaccept = 4;
8756
695
    yych = *(YYMARKER = ++YYCURSOR);
8757
695
    if (yych == '_') goto yy811;
8758
23
    goto yy48;
8759
2.35k
yy763:
8760
2.35k
    YYDEBUG(763, *YYCURSOR);
8761
2.35k
    yyaccept = 74;
8762
2.35k
    yych = *(YYMARKER = ++YYCURSOR);
8763
2.35k
    if (yybm[256+yych] & 128) {
8764
68
      goto yy47;
8765
68
    }
8766
2.28k
    if (yych == '\\') goto yy164;
8767
2.28k
yy764:
8768
2.28k
    YYDEBUG(764, *YYCURSOR);
8769
2.28k
    yyleng = YYCURSOR - SCNG(yy_text);
8770
2.28k
#line 2277 "Zend/zend_language_scanner.l"
8771
2.28k
    {
8772
2.28k
  RETURN_TOKEN_WITH_IDENT(T_FILE);
8773
2.28k
}
8774
0
#line 8775 "Zend/zend_language_scanner.c"
8775
2.73k
yy765:
8776
2.73k
    YYDEBUG(765, *YYCURSOR);
8777
2.73k
    yyaccept = 4;
8778
2.73k
    yych = *(YYMARKER = ++YYCURSOR);
8779
2.73k
    if (yych == 'O') goto yy813;
8780
185
    if (yych == 'o') goto yy813;
8781
168
    goto yy48;
8782
215
yy766:
8783
215
    YYDEBUG(766, *YYCURSOR);
8784
215
    yyaccept = 4;
8785
215
    yych = *(YYMARKER = ++YYCURSOR);
8786
215
    if (yych == 'O') goto yy814;
8787
152
    if (yych == 'o') goto yy814;
8788
56
    goto yy48;
8789
658
yy767:
8790
658
    YYDEBUG(767, *YYCURSOR);
8791
658
    yyaccept = 75;
8792
658
    yych = *(YYMARKER = ++YYCURSOR);
8793
658
    if (yybm[256+yych] & 128) {
8794
36
      goto yy47;
8795
36
    }
8796
622
    if (yych == '\\') goto yy164;
8797
589
yy768:
8798
589
    YYDEBUG(768, *YYCURSOR);
8799
589
    yyleng = YYCURSOR - SCNG(yy_text);
8800
589
#line 2273 "Zend/zend_language_scanner.l"
8801
589
    {
8802
589
  RETURN_TOKEN_WITH_IDENT(T_LINE);
8803
589
}
8804
0
#line 8805 "Zend/zend_language_scanner.c"
8805
6.78k
yy769:
8806
6.78k
    YYDEBUG(769, *YYCURSOR);
8807
6.78k
    yyaccept = 4;
8808
6.78k
    yych = *(YYMARKER = ++YYCURSOR);
8809
6.78k
    if (yych == '_') goto yy815;
8810
168
    goto yy48;
8811
223
yy770:
8812
223
    YYDEBUG(770, *YYCURSOR);
8813
223
    yyaccept = 4;
8814
223
    yych = *(YYMARKER = ++YYCURSOR);
8815
223
    if (yych == 'A') goto yy816;
8816
25
    if (yych == 'a') goto yy816;
8817
17
    goto yy48;
8818
390
yy771:
8819
390
    YYDEBUG(771, *YYCURSOR);
8820
390
    yyaccept = 4;
8821
390
    yych = *(YYMARKER = ++YYCURSOR);
8822
390
    if (yych == 'T') goto yy817;
8823
89
    if (yych == 't') goto yy817;
8824
89
    goto yy48;
8825
173
yy772:
8826
173
    YYDEBUG(772, *YYCURSOR);
8827
173
    yyaccept = 4;
8828
173
    yych = *(YYMARKER = ++YYCURSOR);
8829
173
    if (yych == '_') goto yy818;
8830
21
    goto yy48;
8831
658
yy773:
8832
658
    YYDEBUG(773, *YYCURSOR);
8833
658
    ++YYCURSOR;
8834
658
    YYFILL(1);
8835
658
    yych = *YYCURSOR;
8836
658
    if (yybm[0+yych] & 128) {
8837
192
      goto yy443;
8838
192
    }
8839
466
    if (yych <= 0x00) goto yy86;
8840
466
    if (yych <= '\r') goto yy709;
8841
0
    goto yy547;
8842
9
yy774:
8843
9
    YYDEBUG(774, *YYCURSOR);
8844
9
    yyaccept = 26;
8845
9
    YYMARKER = ++YYCURSOR;
8846
9
    YYFILL(1);
8847
9
    yych = *YYCURSOR;
8848
9
    if (yybm[0+yych] & 128) {
8849
9
      goto yy443;
8850
9
    }
8851
0
    if (yych <= 0x00) goto yy89;
8852
0
    if (yych <= '\r') goto yy545;
8853
0
    goto yy547;
8854
15
yy775:
8855
15
    YYDEBUG(775, *YYCURSOR);
8856
15
    ++YYCURSOR;
8857
15
    YYFILL(1);
8858
15
    yych = *YYCURSOR;
8859
15
    if (yych <= '\r') {
8860
0
      if (yych <= '\t') {
8861
0
        if (yych <= 0x00) goto yy86;
8862
0
        goto yy443;
8863
0
      } else {
8864
0
        if (yych <= '\n') goto yy545;
8865
0
        if (yych <= '\f') goto yy443;
8866
0
        goto yy545;
8867
0
      }
8868
15
    } else {
8869
15
      if (yych <= '*') {
8870
3
        if (yych <= ')') goto yy443;
8871
0
        goto yy547;
8872
12
      } else {
8873
12
        if (yych == '.') goto yy820;
8874
12
        goto yy443;
8875
12
      }
8876
15
    }
8877
1.30k
yy776:
8878
1.30k
    YYDEBUG(776, *YYCURSOR);
8879
1.30k
    ++YYCURSOR;
8880
1.30k
    YYFILL(1);
8881
1.30k
    yych = *YYCURSOR;
8882
1.30k
    if (yybm[0+yych] & 128) {
8883
258
      goto yy443;
8884
258
    }
8885
1.05k
    if (yych <= 0x00) goto yy86;
8886
1.03k
    if (yych <= '\r') goto yy545;
8887
964
    goto yy821;
8888
964
yy777:
8889
2
    YYDEBUG(777, *YYCURSOR);
8890
2
    ++YYCURSOR;
8891
2
    YYDEBUG(778, *YYCURSOR);
8892
2
    yyleng = YYCURSOR - SCNG(yy_text);
8893
2
#line 1700 "Zend/zend_language_scanner.l"
8894
2
    {
8895
2
  if (PARSER_MODE()) {
8896
2
    zend_error(E_DEPRECATED, "Non-canonical cast (boolean) is deprecated, use the (bool) cast instead");
8897
2
    if (EG(exception)) {
8898
0
      RETURN_TOKEN(T_ERROR);
8899
0
    }
8900
2
  }
8901
2
  RETURN_TOKEN(T_BOOL_CAST);
8902
2
}
8903
0
#line 8904 "Zend/zend_language_scanner.c"
8904
11
yy779:
8905
11
    YYDEBUG(779, *YYCURSOR);
8906
11
    ++YYCURSOR;
8907
11
    YYDEBUG(780, *YYCURSOR);
8908
11
    yyleng = YYCURSOR - SCNG(yy_text);
8909
11
#line 1642 "Zend/zend_language_scanner.l"
8910
11
    {
8911
11
  if (PARSER_MODE()) {
8912
11
    zend_error(E_DEPRECATED, "Non-canonical cast (integer) is deprecated, use the (int) cast instead");
8913
11
    if (EG(exception)) {
8914
0
      RETURN_TOKEN(T_ERROR);
8915
0
    }
8916
11
  }
8917
11
  RETURN_TOKEN(T_INT_CAST);
8918
11
}
8919
0
#line 8920 "Zend/zend_language_scanner.c"
8920
789
yy781:
8921
789
    YYDEBUG(781, *YYCURSOR);
8922
789
    yyaccept = 4;
8923
789
    yych = *(YYMARKER = ++YYCURSOR);
8924
789
    if (yych == 'E') goto yy822;
8925
644
    if (yych == 'e') goto yy822;
8926
36
    goto yy48;
8927
2.08k
yy782:
8928
2.08k
    YYDEBUG(782, *YYCURSOR);
8929
2.08k
    yyaccept = 4;
8930
2.08k
    yych = *(YYMARKER = ++YYCURSOR);
8931
2.08k
    if (yych == 'H') goto yy824;
8932
1.45k
    if (yych == 'h') goto yy824;
8933
411
    goto yy48;
8934
411
yy783:
8935
145
    YYDEBUG(783, *YYCURSOR);
8936
145
    yyaccept = 76;
8937
145
    yych = *(YYMARKER = ++YYCURSOR);
8938
145
    if (yybm[256+yych] & 128) {
8939
15
      goto yy47;
8940
15
    }
8941
130
    if (yych == '\\') goto yy164;
8942
130
yy784:
8943
130
    YYDEBUG(784, *YYCURSOR);
8944
130
    yyleng = YYCURSOR - SCNG(yy_text);
8945
130
#line 1522 "Zend/zend_language_scanner.l"
8946
130
    {
8947
130
  RETURN_TOKEN_WITH_IDENT(T_ENDSWITCH);
8948
130
}
8949
0
#line 8950 "Zend/zend_language_scanner.c"
8950
380
yy785:
8951
380
    YYDEBUG(785, *YYCURSOR);
8952
380
    yych = *++YYCURSOR;
8953
380
    if (yych == 'N') goto yy826;
8954
380
    if (yych == 'n') goto yy826;
8955
135
    goto yy86;
8956
880
yy786:
8957
880
    YYDEBUG(786, *YYCURSOR);
8958
880
    yych = *++YYCURSOR;
8959
880
    if (yych == 'E') goto yy827;
8960
748
    if (yych == 'e') goto yy827;
8961
120
    goto yy86;
8962
173k
yy787:
8963
173k
    YYDEBUG(787, *YYCURSOR);
8964
173k
    ++YYCURSOR;
8965
173k
    YYFILL(1);
8966
173k
    yych = *YYCURSOR;
8967
173k
    YYDEBUG(788, *YYCURSOR);
8968
173k
    if (yych <= '@') {
8969
161k
      if (yych <= ' ') {
8970
24.9k
        if (yych <= '\n') {
8971
6.44k
          if (yych <= 0x00) goto yy86;
8972
5.58k
          if (yych <= 0x08) goto yy590;
8973
4.57k
          goto yy787;
8974
18.4k
        } else {
8975
18.4k
          if (yych == '\r') goto yy787;
8976
15.3k
          if (yych <= 0x1F) goto yy590;
8977
14.9k
          goto yy787;
8978
15.3k
        }
8979
136k
      } else {
8980
136k
        if (yych <= ')') {
8981
116k
          if (yych == '#') goto yy828;
8982
6.21k
          goto yy590;
8983
116k
        } else {
8984
19.7k
          if (yych <= '*') goto yy668;
8985
19.0k
          if (yych == '/') goto yy829;
8986
1.15k
          goto yy590;
8987
19.0k
        }
8988
136k
      }
8989
161k
    } else {
8990
12.3k
      if (yych <= '_') {
8991
1.76k
        if (yych <= 'H') {
8992
669
          if (yych == 'E') goto yy831;
8993
627
          goto yy830;
8994
1.09k
        } else {
8995
1.09k
          if (yych <= 'I') goto yy832;
8996
755
          if (yych <= 'Z') goto yy830;
8997
638
          if (yych <= '^') goto yy590;
8998
3
          goto yy830;
8999
638
        }
9000
10.5k
      } else {
9001
10.5k
        if (yych <= 'h') {
9002
4.82k
          if (yych <= '`') goto yy590;
9003
4.78k
          if (yych == 'e') goto yy831;
9004
1.41k
          goto yy830;
9005
5.72k
        } else {
9006
5.72k
          if (yych <= 'i') goto yy832;
9007
2.26k
          if (yych <= 'z') goto yy830;
9008
1.60k
          if (yych <= 0x7F) goto yy590;
9009
558
          goto yy830;
9010
1.60k
        }
9011
10.5k
      }
9012
12.3k
    }
9013
12.3k
yy789:
9014
12.3k
    YYDEBUG(789, *YYCURSOR);
9015
12.3k
    ++YYCURSOR;
9016
12.3k
    YYFILL(1);
9017
12.3k
    yych = *YYCURSOR;
9018
12.3k
    YYDEBUG(790, *YYCURSOR);
9019
12.3k
    if (yych <= '\r') {
9020
1.67k
      if (yych <= '\t') {
9021
852
        if (yych <= 0x00) goto yy86;
9022
618
        goto yy738;
9023
852
      } else {
9024
822
        if (yych <= '\n') goto yy787;
9025
18
        if (yych <= '\f') goto yy738;
9026
18
        goto yy787;
9027
18
      }
9028
10.6k
    } else {
9029
10.6k
      if (yych <= '*') {
9030
4.08k
        if (yych <= ')') goto yy738;
9031
2.60k
        goto yy789;
9032
6.57k
      } else {
9033
6.57k
        if (yych == '/') goto yy588;
9034
1.69k
        goto yy738;
9035
6.57k
      }
9036
10.6k
    }
9037
774
yy791:
9038
774
    YYDEBUG(791, *YYCURSOR);
9039
774
    ++YYCURSOR;
9040
774
    YYFILL(1);
9041
774
    yych = *YYCURSOR;
9042
774
    if (yych <= '\r') {
9043
3
      if (yych <= '\t') {
9044
3
        if (yych <= 0x00) goto yy86;
9045
0
        goto yy586;
9046
3
      } else {
9047
0
        if (yych <= '\n') goto yy495;
9048
0
        if (yych <= '\f') goto yy586;
9049
0
        goto yy495;
9050
0
      }
9051
771
    } else {
9052
771
      if (yych <= 'E') {
9053
42
        if (yych <= 'D') goto yy586;
9054
0
        goto yy833;
9055
729
      } else {
9056
729
        if (yych == 'e') goto yy833;
9057
105
        goto yy586;
9058
729
      }
9059
771
    }
9060
11.8k
yy792:
9061
11.8k
    YYDEBUG(792, *YYCURSOR);
9062
11.8k
    ++YYCURSOR;
9063
11.8k
    YYFILL(1);
9064
11.8k
    yych = *YYCURSOR;
9065
11.8k
    if (yych <= '\r') {
9066
141
      if (yych <= '\t') {
9067
138
        if (yych <= 0x00) goto yy86;
9068
42
        goto yy586;
9069
138
      } else {
9070
3
        if (yych <= '\n') goto yy495;
9071
3
        if (yych <= '\f') goto yy586;
9072
3
        goto yy495;
9073
3
      }
9074
11.7k
    } else {
9075
11.7k
      if (yych <= 'L') {
9076
297
        if (yych <= 'K') goto yy586;
9077
63
        goto yy834;
9078
11.4k
      } else {
9079
11.4k
        if (yych == 'l') goto yy834;
9080
354
        goto yy586;
9081
11.4k
      }
9082
11.7k
    }
9083
3.66k
yy793:
9084
3.66k
    YYDEBUG(793, *YYCURSOR);
9085
3.66k
    yyaccept = 4;
9086
3.66k
    yych = *(YYMARKER = ++YYCURSOR);
9087
3.66k
    if (yych == 'S') goto yy835;
9088
3.49k
    if (yych == 's') goto yy835;
9089
184
    goto yy48;
9090
345
yy794:
9091
345
    YYDEBUG(794, *YYCURSOR);
9092
345
    yyaccept = 4;
9093
345
    yych = *(YYMARKER = ++YYCURSOR);
9094
345
    if (yych == 'N') goto yy837;
9095
174
    if (yych == 'n') goto yy837;
9096
24
    goto yy48;
9097
1.20k
yy795:
9098
1.20k
    YYDEBUG(795, *YYCURSOR);
9099
1.20k
    yyaccept = 4;
9100
1.20k
    yych = *(YYMARKER = ++YYCURSOR);
9101
1.20k
    if (yych == 'F') goto yy838;
9102
894
    if (yych == 'f') goto yy838;
9103
446
    goto yy48;
9104
1.09k
yy796:
9105
1.09k
    YYDEBUG(796, *YYCURSOR);
9106
1.09k
    yyaccept = 77;
9107
1.09k
    yych = *(YYMARKER = ++YYCURSOR);
9108
1.09k
    if (yybm[256+yych] & 128) {
9109
195
      goto yy47;
9110
195
    }
9111
900
    if (yych == '\\') goto yy164;
9112
900
yy797:
9113
900
    YYDEBUG(797, *YYCURSOR);
9114
900
    yyleng = YYCURSOR - SCNG(yy_text);
9115
900
#line 1746 "Zend/zend_language_scanner.l"
9116
900
    {
9117
900
    RETURN_TOKEN_WITH_IDENT(T_INSTEADOF);
9118
900
}
9119
0
#line 9120 "Zend/zend_language_scanner.c"
9120
7.57k
yy798:
9121
7.57k
    YYDEBUG(798, *YYCURSOR);
9122
7.57k
    yyaccept = 78;
9123
7.57k
    yych = *(YYMARKER = ++YYCURSOR);
9124
7.57k
    if (yybm[256+yych] & 128) {
9125
226
      goto yy47;
9126
226
    }
9127
7.34k
    if (yych == '\\') goto yy164;
9128
7.34k
yy799:
9129
7.34k
    YYDEBUG(799, *YYCURSOR);
9130
7.34k
    yyleng = YYCURSOR - SCNG(yy_text);
9131
7.34k
#line 1558 "Zend/zend_language_scanner.l"
9132
7.34k
    {
9133
7.34k
  RETURN_TOKEN_WITH_IDENT(T_INTERFACE);
9134
7.34k
}
9135
0
#line 9136 "Zend/zend_language_scanner.c"
9136
6.13k
yy800:
9137
6.13k
    YYDEBUG(800, *YYCURSOR);
9138
6.13k
    yyaccept = 79;
9139
6.13k
    yych = *(YYMARKER = ++YYCURSOR);
9140
6.13k
    if (yybm[256+yych] & 128) {
9141
227
      goto yy47;
9142
227
    }
9143
5.91k
    if (yych == '\\') goto yy840;
9144
4.46k
yy801:
9145
4.46k
    YYDEBUG(801, *YYCURSOR);
9146
4.46k
    yyleng = YYCURSOR - SCNG(yy_text);
9147
4.46k
#line 1738 "Zend/zend_language_scanner.l"
9148
4.46k
    {
9149
4.46k
  RETURN_TOKEN_WITH_IDENT(T_NAMESPACE);
9150
4.46k
}
9151
0
#line 9152 "Zend/zend_language_scanner.c"
9152
223
yy802:
9153
223
    YYDEBUG(802, *YYCURSOR);
9154
223
    yych = *++YYCURSOR;
9155
223
    if (yych == 'E') goto yy841;
9156
223
    if (yych == 'e') goto yy841;
9157
75
    goto yy86;
9158
2.03k
yy803:
9159
2.03k
    YYDEBUG(803, *YYCURSOR);
9160
2.03k
    yyaccept = 80;
9161
2.03k
    yych = *(YYMARKER = ++YYCURSOR);
9162
2.03k
    if (yybm[256+yych] & 128) {
9163
18
      goto yy47;
9164
18
    }
9165
2.01k
    if (yych == '(') goto yy842;
9166
1.91k
    if (yych == '\\') goto yy164;
9167
1.94k
yy804:
9168
1.94k
    YYDEBUG(804, *YYCURSOR);
9169
1.94k
    yyleng = YYCURSOR - SCNG(yy_text);
9170
1.94k
#line 1782 "Zend/zend_language_scanner.l"
9171
1.94k
    {
9172
1.94k
  RETURN_TOKEN_WITH_IDENT(T_PROTECTED);
9173
1.94k
}
9174
0
#line 9175 "Zend/zend_language_scanner.c"
9175
25
yy805:
9176
25
    YYDEBUG(805, *YYCURSOR);
9177
25
    yych = *++YYCURSOR;
9178
25
    if (yych == 'T') goto yy843;
9179
25
    if (yych == 't') goto yy843;
9180
0
    goto yy86;
9181
1.16k
yy806:
9182
1.16k
    YYDEBUG(806, *YYCURSOR);
9183
1.16k
    yyaccept = 4;
9184
1.16k
    yych = *(YYMARKER = ++YYCURSOR);
9185
1.16k
    if (yych == 'N') goto yy844;
9186
1.04k
    if (yych == 'n') goto yy844;
9187
56
    goto yy48;
9188
855
yy807:
9189
855
    YYDEBUG(807, *YYCURSOR);
9190
855
    yych = *++YYCURSOR;
9191
855
    if (yych == 'M') goto yy845;
9192
828
    if (yych == 'm') goto yy845;
9193
38
    goto yy86;
9194
822k
yy808:
9195
822k
    YYDEBUG(808, *YYCURSOR);
9196
822k
    ++YYCURSOR;
9197
822k
    YYFILL(1);
9198
822k
    yych = *YYCURSOR;
9199
822k
    YYDEBUG(809, *YYCURSOR);
9200
822k
    if (yych <= '\f') {
9201
26.0k
      if (yych <= 0x00) goto yy86;
9202
23.6k
      if (yych == '\n') goto yy846;
9203
7.19k
      goto yy808;
9204
796k
    } else {
9205
796k
      if (yych <= '\r') goto yy846;
9206
777k
      if (yych == '*') goto yy848;
9207
774k
      goto yy808;
9208
777k
    }
9209
522
yy810:
9210
522
    YYDEBUG(810, *YYCURSOR);
9211
522
    ++YYCURSOR;
9212
522
    YYFILL(1);
9213
522
    yych = *YYCURSOR;
9214
522
    if (yych <= '\r') {
9215
120
      if (yych <= '\t') {
9216
48
        if (yych <= 0x00) goto yy86;
9217
48
        goto yy692;
9218
72
      } else {
9219
72
        if (yych <= '\n') goto yy616;
9220
0
        if (yych <= '\f') goto yy692;
9221
0
        goto yy616;
9222
0
      }
9223
402
    } else {
9224
402
      if (yych <= 'O') {
9225
150
        if (yych <= 'N') goto yy692;
9226
27
        goto yy850;
9227
252
      } else {
9228
252
        if (yych == 'o') goto yy850;
9229
96
        goto yy692;
9230
252
      }
9231
402
    }
9232
672
yy811:
9233
672
    YYDEBUG(811, *YYCURSOR);
9234
672
    yyaccept = 81;
9235
672
    yych = *(YYMARKER = ++YYCURSOR);
9236
672
    if (yybm[256+yych] & 128) {
9237
0
      goto yy47;
9238
0
    }
9239
672
    if (yych == '\\') goto yy164;
9240
672
yy812:
9241
672
    YYDEBUG(812, *YYCURSOR);
9242
672
    yyleng = YYCURSOR - SCNG(yy_text);
9243
672
#line 2253 "Zend/zend_language_scanner.l"
9244
672
    {
9245
672
  RETURN_TOKEN_WITH_IDENT(T_CLASS_C);
9246
672
}
9247
0
#line 9248 "Zend/zend_language_scanner.c"
9248
2.56k
yy813:
9249
2.56k
    YYDEBUG(813, *YYCURSOR);
9250
2.56k
    yyaccept = 4;
9251
2.56k
    yych = *(YYMARKER = ++YYCURSOR);
9252
2.56k
    if (yych == 'N') goto yy851;
9253
146
    if (yych == 'n') goto yy851;
9254
117
    goto yy48;
9255
159
yy814:
9256
159
    YYDEBUG(814, *YYCURSOR);
9257
159
    yyaccept = 4;
9258
159
    yych = *(YYMARKER = ++YYCURSOR);
9259
159
    if (yych == 'M') goto yy852;
9260
101
    if (yych == 'm') goto yy852;
9261
62
    goto yy48;
9262
6.61k
yy815:
9263
6.61k
    YYDEBUG(815, *YYCURSOR);
9264
6.61k
    yyaccept = 4;
9265
6.61k
    yych = *(YYMARKER = ++YYCURSOR);
9266
6.61k
    if (yych == '_') goto yy853;
9267
298
    goto yy48;
9268
298
yy816:
9269
206
    YYDEBUG(816, *YYCURSOR);
9270
206
    yyaccept = 4;
9271
206
    yych = *(YYMARKER = ++YYCURSOR);
9272
206
    if (yych == 'C') goto yy855;
9273
13
    if (yych == 'c') goto yy855;
9274
6
    goto yy48;
9275
301
yy817:
9276
301
    YYDEBUG(817, *YYCURSOR);
9277
301
    yyaccept = 4;
9278
301
    yych = *(YYMARKER = ++YYCURSOR);
9279
301
    if (yych == 'Y') goto yy856;
9280
14
    if (yych == 'y') goto yy856;
9281
14
    goto yy48;
9282
152
yy818:
9283
152
    YYDEBUG(818, *YYCURSOR);
9284
152
    yyaccept = 82;
9285
152
    yych = *(YYMARKER = ++YYCURSOR);
9286
152
    if (yybm[256+yych] & 128) {
9287
9
      goto yy47;
9288
9
    }
9289
143
    if (yych == '\\') goto yy164;
9290
143
yy819:
9291
143
    YYDEBUG(819, *YYCURSOR);
9292
143
    yyleng = YYCURSOR - SCNG(yy_text);
9293
143
#line 2257 "Zend/zend_language_scanner.l"
9294
143
    {
9295
143
  RETURN_TOKEN_WITH_IDENT(T_TRAIT_C);
9296
143
}
9297
0
#line 9298 "Zend/zend_language_scanner.c"
9298
0
yy820:
9299
0
    YYDEBUG(820, *YYCURSOR);
9300
0
    ++YYCURSOR;
9301
0
    YYFILL(1);
9302
0
    yych = *YYCURSOR;
9303
0
    if (yych <= '\r') {
9304
0
      if (yych <= '\t') {
9305
0
        if (yych <= 0x00) goto yy86;
9306
0
        goto yy443;
9307
0
      } else {
9308
0
        if (yych <= '\n') goto yy545;
9309
0
        if (yych <= '\f') goto yy443;
9310
0
        goto yy545;
9311
0
      }
9312
0
    } else {
9313
0
      if (yych <= '*') {
9314
0
        if (yych <= ')') goto yy443;
9315
0
        goto yy547;
9316
0
      } else {
9317
0
        if (yych == '.') goto yy774;
9318
0
        goto yy443;
9319
0
      }
9320
0
    }
9321
964
yy821:
9322
964
    YYDEBUG(821, *YYCURSOR);
9323
964
    ++YYCURSOR;
9324
964
    YYFILL(1);
9325
964
    yych = *YYCURSOR;
9326
964
    if (yych <= '\r') {
9327
39
      if (yych <= '\t') {
9328
0
        if (yych <= 0x00) goto yy86;
9329
0
        goto yy443;
9330
39
      } else {
9331
39
        if (yych <= '\n') goto yy545;
9332
3
        if (yych <= '\f') goto yy443;
9333
3
        goto yy545;
9334
3
      }
9335
925
    } else {
9336
925
      if (yych <= '*') {
9337
6
        if (yych <= ')') goto yy443;
9338
0
        goto yy547;
9339
919
      } else {
9340
919
        if (yych == '/') goto yy709;
9341
7
        goto yy443;
9342
919
      }
9343
925
    }
9344
753
yy822:
9345
753
    YYDEBUG(822, *YYCURSOR);
9346
753
    yyaccept = 83;
9347
753
    yych = *(YYMARKER = ++YYCURSOR);
9348
753
    if (yybm[256+yych] & 128) {
9349
42
      goto yy47;
9350
42
    }
9351
711
    if (yych == '\\') goto yy164;
9352
711
yy823:
9353
711
    YYDEBUG(823, *YYCURSOR);
9354
711
    yyleng = YYCURSOR - SCNG(yy_text);
9355
711
#line 1502 "Zend/zend_language_scanner.l"
9356
711
    {
9357
711
  RETURN_TOKEN_WITH_IDENT(T_ENDDECLARE);
9358
711
}
9359
0
#line 9360 "Zend/zend_language_scanner.c"
9360
1.67k
yy824:
9361
1.67k
    YYDEBUG(824, *YYCURSOR);
9362
1.67k
    yyaccept = 84;
9363
1.67k
    yych = *(YYMARKER = ++YYCURSOR);
9364
1.67k
    if (yybm[256+yych] & 128) {
9365
414
      goto yy47;
9366
414
    }
9367
1.26k
    if (yych == '\\') goto yy164;
9368
1.26k
yy825:
9369
1.26k
    YYDEBUG(825, *YYCURSOR);
9370
1.26k
    yyleng = YYCURSOR - SCNG(yy_text);
9371
1.26k
#line 1494 "Zend/zend_language_scanner.l"
9372
1.26k
    {
9373
1.26k
  RETURN_TOKEN_WITH_IDENT(T_ENDFOREACH);
9374
1.26k
}
9375
0
#line 9376 "Zend/zend_language_scanner.c"
9376
245
yy826:
9377
245
    YYDEBUG(826, *YYCURSOR);
9378
245
    yych = *++YYCURSOR;
9379
245
    if (yych == 'D') goto yy857;
9380
245
    if (yych == 'd') goto yy857;
9381
237
    goto yy86;
9382
760
yy827:
9383
760
    YYDEBUG(827, *YYCURSOR);
9384
760
    yych = *++YYCURSOR;
9385
760
    if (yych == 'M') goto yy858;
9386
463
    if (yych == 'm') goto yy858;
9387
324
    goto yy86;
9388
110k
yy828:
9389
110k
    YYDEBUG(828, *YYCURSOR);
9390
110k
    ++YYCURSOR;
9391
110k
    YYFILL(1);
9392
110k
    yych = *YYCURSOR;
9393
110k
    if (yych <= '\r') {
9394
104k
      if (yych <= '\t') {
9395
1.40k
        if (yych <= 0x00) goto yy86;
9396
1.16k
        goto yy738;
9397
102k
      } else {
9398
102k
        if (yych <= '\n') goto yy859;
9399
14.6k
        if (yych <= '\f') goto yy738;
9400
14.3k
        goto yy859;
9401
14.6k
      }
9402
104k
    } else {
9403
6.47k
      if (yych <= '*') {
9404
1.10k
        if (yych <= ')') goto yy738;
9405
783
        goto yy789;
9406
5.37k
      } else {
9407
5.37k
        if (yych == '[') goto yy590;
9408
5.02k
        goto yy738;
9409
5.37k
      }
9410
6.47k
    }
9411
17.9k
yy829:
9412
17.9k
    YYDEBUG(829, *YYCURSOR);
9413
17.9k
    ++YYCURSOR;
9414
17.9k
    YYFILL(1);
9415
17.9k
    yych = *YYCURSOR;
9416
17.9k
    if (yych <= '*') {
9417
13.6k
      if (yych <= 0x00) goto yy86;
9418
13.5k
      if (yych <= ')') goto yy590;
9419
12.4k
      goto yy861;
9420
13.5k
    } else {
9421
4.33k
      if (yych == '/') goto yy738;
9422
2.55k
      goto yy590;
9423
4.33k
    }
9424
3.37k
yy830:
9425
3.37k
    YYDEBUG(830, *YYCURSOR);
9426
3.37k
    yyaccept = 53;
9427
3.37k
    YYMARKER = ++YYCURSOR;
9428
3.37k
    YYFILL(1);
9429
3.37k
    yych = *YYCURSOR;
9430
3.37k
    if (yych <= 0x00) goto yy583;
9431
3.34k
    if (yych == '*') goto yy668;
9432
3.25k
    goto yy590;
9433
3.41k
yy831:
9434
3.41k
    YYDEBUG(831, *YYCURSOR);
9435
3.41k
    yyaccept = 53;
9436
3.41k
    YYMARKER = ++YYCURSOR;
9437
3.41k
    YYFILL(1);
9438
3.41k
    yych = *YYCURSOR;
9439
3.41k
    if (yych <= 'W') {
9440
1.35k
      if (yych <= 0x00) goto yy583;
9441
1.35k
      if (yych == '*') goto yy668;
9442
132
      goto yy590;
9443
2.05k
    } else {
9444
2.05k
      if (yych <= 'X') goto yy862;
9445
2.05k
      if (yych == 'x') goto yy862;
9446
1.79k
      goto yy590;
9447
2.05k
    }
9448
3.80k
yy832:
9449
3.80k
    YYDEBUG(832, *YYCURSOR);
9450
3.80k
    yyaccept = 53;
9451
3.80k
    YYMARKER = ++YYCURSOR;
9452
3.80k
    YYFILL(1);
9453
3.80k
    yych = *YYCURSOR;
9454
3.80k
    if (yych <= 'L') {
9455
1.01k
      if (yych <= 0x00) goto yy583;
9456
913
      if (yych == '*') goto yy668;
9457
913
      goto yy590;
9458
2.79k
    } else {
9459
2.79k
      if (yych <= 'M') goto yy863;
9460
2.79k
      if (yych == 'm') goto yy863;
9461
421
      goto yy590;
9462
2.79k
    }
9463
624
yy833:
9464
624
    YYDEBUG(833, *YYCURSOR);
9465
624
    ++YYCURSOR;
9466
624
    YYFILL(1);
9467
624
    yych = *YYCURSOR;
9468
624
    if (yych <= '\r') {
9469
39
      if (yych <= '\t') {
9470
21
        if (yych <= 0x00) goto yy86;
9471
21
        goto yy586;
9472
21
      } else {
9473
18
        if (yych <= '\n') goto yy495;
9474
18
        if (yych <= '\f') goto yy586;
9475
18
        goto yy495;
9476
18
      }
9477
585
    } else {
9478
585
      if (yych <= 'N') {
9479
60
        if (yych <= 'M') goto yy586;
9480
0
        goto yy864;
9481
525
      } else {
9482
525
        if (yych == 'n') goto yy864;
9483
72
        goto yy586;
9484
525
      }
9485
585
    }
9486
11.1k
yy834:
9487
11.1k
    YYDEBUG(834, *YYCURSOR);
9488
11.1k
    ++YYCURSOR;
9489
11.1k
    YYFILL(1);
9490
11.1k
    yych = *YYCURSOR;
9491
11.1k
    if (yych <= '\r') {
9492
519
      if (yych <= '\t') {
9493
42
        if (yych <= 0x00) goto yy86;
9494
21
        goto yy586;
9495
477
      } else {
9496
477
        if (yych <= '\n') goto yy495;
9497
243
        if (yych <= '\f') goto yy586;
9498
99
        goto yy495;
9499
243
      }
9500
10.6k
    } else {
9501
10.6k
      if (yych <= 'E') {
9502
442
        if (yych <= 'D') goto yy586;
9503
312
        goto yy865;
9504
10.1k
      } else {
9505
10.1k
        if (yych == 'e') goto yy865;
9506
216
        goto yy586;
9507
10.1k
      }
9508
10.6k
    }
9509
3.47k
yy835:
9510
3.47k
    YYDEBUG(835, *YYCURSOR);
9511
3.47k
    yyaccept = 85;
9512
3.47k
    yych = *(YYMARKER = ++YYCURSOR);
9513
3.47k
    if (yybm[256+yych] & 128) {
9514
127
      goto yy47;
9515
127
    }
9516
3.35k
    if (yych == '\\') goto yy164;
9517
3.34k
yy836:
9518
3.34k
    YYDEBUG(836, *YYCURSOR);
9519
3.34k
    yyleng = YYCURSOR - SCNG(yy_text);
9520
3.34k
#line 1583 "Zend/zend_language_scanner.l"
9521
3.34k
    {
9522
3.34k
  RETURN_TOKEN_WITH_IDENT(T_IMPLEMENTS);
9523
3.34k
}
9524
0
#line 9525 "Zend/zend_language_scanner.c"
9525
321
yy837:
9526
321
    YYDEBUG(837, *YYCURSOR);
9527
321
    yyaccept = 4;
9528
321
    yych = *(YYMARKER = ++YYCURSOR);
9529
321
    if (yych == 'C') goto yy866;
9530
150
    if (yych == 'c') goto yy866;
9531
0
    goto yy48;
9532
759
yy838:
9533
759
    YYDEBUG(838, *YYCURSOR);
9534
759
    yyaccept = 86;
9535
759
    yych = *(YYMARKER = ++YYCURSOR);
9536
759
    if (yybm[256+yych] & 128) {
9537
204
      goto yy47;
9538
204
    }
9539
555
    if (yych == '\\') goto yy164;
9540
555
yy839:
9541
555
    YYDEBUG(839, *YYCURSOR);
9542
555
    yyleng = YYCURSOR - SCNG(yy_text);
9543
555
#line 1506 "Zend/zend_language_scanner.l"
9544
555
    {
9545
555
  RETURN_TOKEN_WITH_IDENT(T_INSTANCEOF);
9546
555
}
9547
0
#line 9548 "Zend/zend_language_scanner.c"
9548
1.76k
yy840:
9549
1.76k
    YYDEBUG(840, *YYCURSOR);
9550
1.76k
    ++YYCURSOR;
9551
1.76k
    YYFILL(1);
9552
1.76k
    yych = *YYCURSOR;
9553
1.76k
    if (yych <= '_') {
9554
346
      if (yych <= '@') goto yy86;
9555
109
      if (yych <= 'Z') goto yy867;
9556
13
      if (yych <= '^') goto yy86;
9557
10
      goto yy867;
9558
1.41k
    } else {
9559
1.41k
      if (yych <= '`') goto yy86;
9560
1.41k
      if (yych <= 'z') goto yy867;
9561
137
      if (yych <= 0x7F) goto yy86;
9562
89
      goto yy867;
9563
137
    }
9564
148
yy841:
9565
148
    YYDEBUG(841, *YYCURSOR);
9566
148
    yych = *++YYCURSOR;
9567
148
    if (yych == 'T') goto yy870;
9568
148
    if (yych == 't') goto yy870;
9569
0
    goto yy86;
9570
105
yy842:
9571
105
    YYDEBUG(842, *YYCURSOR);
9572
105
    yych = *++YYCURSOR;
9573
105
    if (yych == 'S') goto yy871;
9574
105
    if (yych == 's') goto yy871;
9575
26
    goto yy86;
9576
26
yy843:
9577
25
    YYDEBUG(843, *YYCURSOR);
9578
25
    yych = *++YYCURSOR;
9579
25
    if (yych == ')') goto yy872;
9580
3
    goto yy86;
9581
1.10k
yy844:
9582
1.10k
    YYDEBUG(844, *YYCURSOR);
9583
1.10k
    yyaccept = 4;
9584
1.10k
    yych = *(YYMARKER = ++YYCURSOR);
9585
1.10k
    if (yych == 'C') goto yy874;
9586
986
    if (yych == 'c') goto yy874;
9587
153
    goto yy48;
9588
817
yy845:
9589
817
    YYDEBUG(845, *YYCURSOR);
9590
817
    yych = *++YYCURSOR;
9591
817
    if (yych <= '^') {
9592
797
      if (yych <= '9') {
9593
794
        if (yych <= '/') goto yy875;
9594
2
        goto yy86;
9595
794
      } else {
9596
3
        if (yych <= '@') goto yy875;
9597
3
        if (yych <= 'Z') goto yy86;
9598
0
        goto yy875;
9599
3
      }
9600
797
    } else {
9601
20
      if (yych <= '`') {
9602
0
        if (yych <= '_') goto yy86;
9603
0
        goto yy875;
9604
20
      } else {
9605
20
        if (yych <= 'z') goto yy86;
9606
6
        if (yych <= 0x7F) goto yy875;
9607
3
        goto yy86;
9608
6
      }
9609
20
    }
9610
45.5k
yy846:
9611
45.5k
    YYDEBUG(846, *YYCURSOR);
9612
45.5k
    ++YYCURSOR;
9613
45.5k
    YYFILL(1);
9614
45.5k
    yych = *YYCURSOR;
9615
45.5k
    YYDEBUG(847, *YYCURSOR);
9616
45.5k
    if (yych <= '#') {
9617
37.2k
      if (yych <= '\f') {
9618
669
        if (yych <= 0x00) goto yy86;
9619
387
        if (yych <= 0x08) goto yy696;
9620
351
        if (yych <= '\n') goto yy846;
9621
54
        goto yy696;
9622
36.5k
      } else {
9623
36.5k
        if (yych <= 0x1F) {
9624
1.93k
          if (yych <= '\r') goto yy846;
9625
201
          goto yy696;
9626
34.6k
        } else {
9627
34.6k
          if (yych <= ' ') goto yy846;
9628
32.3k
          if (yych <= '"') goto yy696;
9629
32.2k
          goto yy877;
9630
32.3k
        }
9631
36.5k
      }
9632
37.2k
    } else {
9633
8.27k
      if (yych <= '/') {
9634
5.32k
        if (yych == '*') goto yy760;
9635
5.06k
        if (yych <= '.') goto yy696;
9636
2.88k
        goto yy878;
9637
5.06k
      } else {
9638
2.94k
        if (yych <= 'F') {
9639
1.45k
          if (yych <= 'E') goto yy696;
9640
1.39k
          goto yy879;
9641
1.49k
        } else {
9642
1.49k
          if (yych == 'f') goto yy879;
9643
1.47k
          goto yy696;
9644
1.49k
        }
9645
2.94k
      }
9646
8.27k
    }
9647
3.22k
yy848:
9648
3.22k
    YYDEBUG(848, *YYCURSOR);
9649
3.22k
    ++YYCURSOR;
9650
3.22k
    YYFILL(1);
9651
3.22k
    yych = *YYCURSOR;
9652
3.22k
    YYDEBUG(849, *YYCURSOR);
9653
3.22k
    if (yych <= '\r') {
9654
1.79k
      if (yych <= '\t') {
9655
93
        if (yych <= 0x00) goto yy86;
9656
84
        goto yy808;
9657
1.70k
      } else {
9658
1.70k
        if (yych <= '\n') goto yy846;
9659
108
        if (yych <= '\f') goto yy808;
9660
108
        goto yy846;
9661
108
      }
9662
1.79k
    } else {
9663
1.43k
      if (yych <= '*') {
9664
996
        if (yych <= ')') goto yy808;
9665
69
        goto yy848;
9666
996
      } else {
9667
435
        if (yych == '/') goto yy694;
9668
93
        goto yy808;
9669
435
      }
9670
1.43k
    }
9671
183
yy850:
9672
183
    YYDEBUG(850, *YYCURSOR);
9673
183
    ++YYCURSOR;
9674
183
    YYFILL(1);
9675
183
    yych = *YYCURSOR;
9676
183
    if (yych <= '\r') {
9677
12
      if (yych <= '\t') {
9678
3
        if (yych <= 0x00) goto yy86;
9679
3
        goto yy692;
9680
9
      } else {
9681
9
        if (yych <= '\n') goto yy616;
9682
9
        if (yych <= '\f') goto yy692;
9683
9
        goto yy616;
9684
9
      }
9685
171
    } else {
9686
171
      if (yych <= 'M') {
9687
27
        if (yych <= 'L') goto yy692;
9688
27
        goto yy880;
9689
144
      } else {
9690
144
        if (yych == 'm') goto yy880;
9691
0
        goto yy692;
9692
144
      }
9693
171
    }
9694
2.44k
yy851:
9695
2.44k
    YYDEBUG(851, *YYCURSOR);
9696
2.44k
    yyaccept = 4;
9697
2.44k
    yych = *(YYMARKER = ++YYCURSOR);
9698
2.44k
    if (yych == '_') goto yy881;
9699
64
    goto yy48;
9700
97
yy852:
9701
97
    YYDEBUG(852, *YYCURSOR);
9702
97
    yyaccept = 4;
9703
97
    yych = *(YYMARKER = ++YYCURSOR);
9704
97
    if (yych == 'P') goto yy882;
9705
50
    if (yych == 'p') goto yy882;
9706
14
    goto yy48;
9707
6.31k
yy853:
9708
6.31k
    YYDEBUG(853, *YYCURSOR);
9709
6.31k
    yyaccept = 87;
9710
6.31k
    yych = *(YYMARKER = ++YYCURSOR);
9711
6.31k
    if (yybm[256+yych] & 128) {
9712
32
      goto yy47;
9713
32
    }
9714
6.28k
    if (yych == '\\') goto yy164;
9715
6.28k
yy854:
9716
6.28k
    YYDEBUG(854, *YYCURSOR);
9717
6.28k
    yyleng = YYCURSOR - SCNG(yy_text);
9718
6.28k
#line 2269 "Zend/zend_language_scanner.l"
9719
6.28k
    {
9720
6.28k
  RETURN_TOKEN_WITH_IDENT(T_METHOD_C);
9721
6.28k
}
9722
0
#line 9723 "Zend/zend_language_scanner.c"
9723
200
yy855:
9724
200
    YYDEBUG(855, *YYCURSOR);
9725
200
    yyaccept = 4;
9726
200
    yych = *(YYMARKER = ++YYCURSOR);
9727
200
    if (yych == 'E') goto yy883;
9728
10
    if (yych == 'e') goto yy883;
9729
3
    goto yy48;
9730
287
yy856:
9731
287
    YYDEBUG(856, *YYCURSOR);
9732
287
    yyaccept = 4;
9733
287
    yych = *(YYMARKER = ++YYCURSOR);
9734
287
    if (yych == '_') goto yy884;
9735
9
    goto yy48;
9736
13
yy857:
9737
13
    YYDEBUG(857, *YYCURSOR);
9738
13
    yych = *++YYCURSOR;
9739
13
    if (yych == 'S') goto yy885;
9740
13
    if (yych == 's') goto yy885;
9741
0
    goto yy86;
9742
436
yy858:
9743
436
    YYDEBUG(858, *YYCURSOR);
9744
436
    yych = *++YYCURSOR;
9745
436
    if (yych == 'E') goto yy887;
9746
379
    if (yych == 'e') goto yy887;
9747
278
    goto yy86;
9748
176k
yy859:
9749
176k
    YYDEBUG(859, *YYCURSOR);
9750
176k
    ++YYCURSOR;
9751
176k
    YYFILL(1);
9752
176k
    yych = *YYCURSOR;
9753
176k
    YYDEBUG(860, *YYCURSOR);
9754
176k
    if (yych <= '@') {
9755
96.4k
      if (yych <= 0x1F) {
9756
3.60k
        if (yych <= '\t') {
9757
795
          if (yych <= 0x00) goto yy86;
9758
540
          if (yych <= 0x08) goto yy738;
9759
186
          goto yy859;
9760
2.80k
        } else {
9761
2.80k
          if (yych <= '\n') goto yy787;
9762
2.50k
          if (yych == '\r') goto yy787;
9763
1.21k
          goto yy738;
9764
2.50k
        }
9765
92.8k
      } else {
9766
92.8k
        if (yych <= ')') {
9767
68.7k
          if (yych <= ' ') goto yy859;
9768
32.2k
          if (yych == '#') goto yy888;
9769
119
          goto yy738;
9770
32.2k
        } else {
9771
24.0k
          if (yych <= '*') goto yy789;
9772
23.8k
          if (yych == '/') goto yy889;
9773
1.70k
          goto yy738;
9774
23.8k
        }
9775
92.8k
      }
9776
96.4k
    } else {
9777
79.6k
      if (yych <= '_') {
9778
3.64k
        if (yych <= 'H') {
9779
258
          if (yych == 'E') goto yy891;
9780
231
          goto yy890;
9781
3.38k
        } else {
9782
3.38k
          if (yych <= 'I') goto yy892;
9783
3.26k
          if (yych <= 'Z') goto yy890;
9784
3.24k
          if (yych <= '^') goto yy738;
9785
18
          goto yy890;
9786
3.24k
        }
9787
76.0k
      } else {
9788
76.0k
        if (yych <= 'h') {
9789
41.4k
          if (yych <= '`') goto yy738;
9790
41.3k
          if (yych == 'e') goto yy891;
9791
87
          goto yy890;
9792
41.3k
        } else {
9793
34.6k
          if (yych <= 'i') goto yy892;
9794
11.2k
          if (yych <= 'z') goto yy890;
9795
5.99k
          if (yych <= 0x7F) goto yy738;
9796
1.11k
          goto yy890;
9797
5.99k
        }
9798
76.0k
      }
9799
79.6k
    }
9800
12.4k
yy861:
9801
12.4k
    YYDEBUG(861, *YYCURSOR);
9802
12.4k
    ++YYCURSOR;
9803
12.4k
    YYFILL(1);
9804
12.4k
    yych = *YYCURSOR;
9805
12.4k
    if (yych <= '*') {
9806
312
      if (yych <= 0x00) goto yy86;
9807
243
      if (yych <= ')') goto yy590;
9808
12
      goto yy668;
9809
12.1k
    } else {
9810
12.1k
      if (yych == '/') goto yy787;
9811
178
      goto yy590;
9812
12.1k
    }
9813
264
yy862:
9814
264
    YYDEBUG(862, *YYCURSOR);
9815
264
    ++YYCURSOR;
9816
264
    YYFILL(1);
9817
264
    yych = *YYCURSOR;
9818
264
    if (yych <= 'S') {
9819
30
      if (yych <= 0x00) goto yy86;
9820
30
      if (yych == '*') goto yy668;
9821
30
      goto yy590;
9822
234
    } else {
9823
234
      if (yych <= 'T') goto yy893;
9824
234
      if (yych == 't') goto yy893;
9825
36
      goto yy590;
9826
234
    }
9827
2.37k
yy863:
9828
2.37k
    YYDEBUG(863, *YYCURSOR);
9829
2.37k
    ++YYCURSOR;
9830
2.37k
    YYFILL(1);
9831
2.37k
    yych = *YYCURSOR;
9832
2.37k
    if (yych <= 'O') {
9833
10
      if (yych <= 0x00) goto yy86;
9834
10
      if (yych == '*') goto yy668;
9835
10
      goto yy590;
9836
2.36k
    } else {
9837
2.36k
      if (yych <= 'P') goto yy894;
9838
2.28k
      if (yych == 'p') goto yy894;
9839
69
      goto yy590;
9840
2.28k
    }
9841
453
yy864:
9842
453
    YYDEBUG(864, *YYCURSOR);
9843
453
    ++YYCURSOR;
9844
453
    YYFILL(1);
9845
453
    yych = *YYCURSOR;
9846
453
    if (yych <= '\r') {
9847
48
      if (yych <= '\t') {
9848
48
        if (yych <= 0x00) goto yy86;
9849
48
        goto yy586;
9850
48
      } else {
9851
0
        if (yych <= '\n') goto yy495;
9852
0
        if (yych <= '\f') goto yy586;
9853
0
        goto yy495;
9854
0
      }
9855
405
    } else {
9856
405
      if (yych <= 'D') {
9857
0
        if (yych <= 'C') goto yy586;
9858
0
        goto yy895;
9859
405
      } else {
9860
405
        if (yych == 'd') goto yy895;
9861
405
        goto yy586;
9862
405
      }
9863
405
    }
9864
10.2k
yy865:
9865
10.2k
    YYDEBUG(865, *YYCURSOR);
9866
10.2k
    ++YYCURSOR;
9867
10.2k
    YYFILL(1);
9868
10.2k
    yych = *YYCURSOR;
9869
10.2k
    if (yych <= '\r') {
9870
489
      if (yych <= '\t') {
9871
45
        if (yych <= 0x00) goto yy86;
9872
0
        goto yy586;
9873
444
      } else {
9874
444
        if (yych <= '\n') goto yy495;
9875
0
        if (yych <= '\f') goto yy586;
9876
0
        goto yy495;
9877
0
      }
9878
9.78k
    } else {
9879
9.78k
      if (yych <= 'M') {
9880
6.92k
        if (yych <= 'L') goto yy586;
9881
5.62k
        goto yy896;
9882
6.92k
      } else {
9883
2.85k
        if (yych == 'm') goto yy896;
9884
2.52k
        goto yy586;
9885
2.85k
      }
9886
9.78k
    }
9887
321
yy866:
9888
321
    YYDEBUG(866, *YYCURSOR);
9889
321
    yyaccept = 4;
9890
321
    yych = *(YYMARKER = ++YYCURSOR);
9891
321
    if (yych == 'E') goto yy897;
9892
150
    if (yych == 'e') goto yy897;
9893
48
    goto yy48;
9894
5.67k
yy867:
9895
5.67k
    YYDEBUG(867, *YYCURSOR);
9896
5.67k
    yyaccept = 88;
9897
5.67k
    YYMARKER = ++YYCURSOR;
9898
5.67k
    YYFILL(1);
9899
5.67k
    yych = *YYCURSOR;
9900
5.67k
    YYDEBUG(868, *YYCURSOR);
9901
5.67k
    if (yych <= '\\') {
9902
2.34k
      if (yych <= '@') {
9903
1.78k
        if (yych <= '/') goto yy869;
9904
1.53k
        if (yych <= '9') goto yy867;
9905
1.53k
      } else {
9906
564
        if (yych <= 'Z') goto yy867;
9907
35
        if (yych >= '\\') goto yy840;
9908
35
      }
9909
3.32k
    } else {
9910
3.32k
      if (yych <= '`') {
9911
53
        if (yych == '_') goto yy867;
9912
3.27k
      } else {
9913
3.27k
        if (yych <= 'z') goto yy867;
9914
255
        if (yych >= 0x80) goto yy867;
9915
255
      }
9916
3.32k
    }
9917
1.44k
yy869:
9918
1.44k
    YYDEBUG(869, *YYCURSOR);
9919
1.44k
    yyleng = YYCURSOR - SCNG(yy_text);
9920
1.44k
#line 2439 "Zend/zend_language_scanner.l"
9921
1.44k
    {
9922
1.44k
  RETURN_TOKEN_WITH_STR(T_NAME_RELATIVE, sizeof("namespace\\") - 1);
9923
1.44k
}
9924
0
#line 9925 "Zend/zend_language_scanner.c"
9925
148
yy870:
9926
148
    YYDEBUG(870, *YYCURSOR);
9927
148
    yych = *++YYCURSOR;
9928
148
    if (yych == ')') goto yy899;
9929
0
    goto yy86;
9930
79
yy871:
9931
79
    YYDEBUG(871, *YYCURSOR);
9932
79
    yych = *++YYCURSOR;
9933
79
    if (yych == 'E') goto yy901;
9934
79
    if (yych == 'e') goto yy901;
9935
3
    goto yy86;
9936
22
yy872:
9937
22
    YYDEBUG(872, *YYCURSOR);
9938
22
    ++YYCURSOR;
9939
22
    YYDEBUG(873, *YYCURSOR);
9940
22
    yyleng = YYCURSOR - SCNG(yy_text);
9941
22
#line 1786 "Zend/zend_language_scanner.l"
9942
22
    {
9943
22
  RETURN_TOKEN_WITH_IDENT(T_PUBLIC_SET);
9944
22
}
9945
0
#line 9946 "Zend/zend_language_scanner.c"
9946
953
yy874:
9947
953
    YYDEBUG(874, *YYCURSOR);
9948
953
    yyaccept = 4;
9949
953
    yych = *(YYMARKER = ++YYCURSOR);
9950
953
    if (yych == 'E') goto yy902;
9951
840
    if (yych == 'e') goto yy902;
9952
7
    goto yy48;
9953
795
yy875:
9954
795
    YYDEBUG(875, *YYCURSOR);
9955
795
    ++YYCURSOR;
9956
2.03k
yy876:
9957
2.03k
    YYDEBUG(876, *YYCURSOR);
9958
2.03k
    yyleng = YYCURSOR - SCNG(yy_text);
9959
2.03k
#line 1428 "Zend/zend_language_scanner.l"
9960
2.03k
    {
9961
2.03k
  yyless(yyleng - 1);
9962
2.03k
  HANDLE_NEWLINES(yytext, yyleng);
9963
2.03k
  RETURN_TOKEN_WITH_IDENT(T_YIELD_FROM);
9964
2.03k
}
9965
0
#line 9966 "Zend/zend_language_scanner.c"
9966
32.2k
yy877:
9967
32.2k
    YYDEBUG(877, *YYCURSOR);
9968
32.2k
    ++YYCURSOR;
9969
32.2k
    YYFILL(1);
9970
32.2k
    yych = *YYCURSOR;
9971
32.2k
    if (yych <= '\r') {
9972
29.4k
      if (yych <= '\t') {
9973
240
        if (yych <= 0x00) goto yy86;
9974
18
        goto yy808;
9975
29.2k
      } else {
9976
29.2k
        if (yych <= '\n') goto yy904;
9977
6.50k
        if (yych <= '\f') goto yy808;
9978
6.49k
        goto yy904;
9979
6.50k
      }
9980
29.4k
    } else {
9981
2.80k
      if (yych <= '*') {
9982
1.80k
        if (yych <= ')') goto yy808;
9983
90
        goto yy848;
9984
1.80k
      } else {
9985
1.00k
        if (yych == '[') goto yy696;
9986
1.00k
        goto yy808;
9987
1.00k
      }
9988
2.80k
    }
9989
2.88k
yy878:
9990
2.88k
    YYDEBUG(878, *YYCURSOR);
9991
2.88k
    ++YYCURSOR;
9992
2.88k
    YYFILL(1);
9993
2.88k
    yych = *YYCURSOR;
9994
2.88k
    if (yych <= '*') {
9995
2.46k
      if (yych <= 0x00) goto yy86;
9996
2.43k
      if (yych <= ')') goto yy696;
9997
2.29k
      goto yy906;
9998
2.43k
    } else {
9999
426
      if (yych == '/') goto yy808;
10000
360
      goto yy696;
10001
426
    }
10002
1.41k
yy879:
10003
1.41k
    YYDEBUG(879, *YYCURSOR);
10004
1.41k
    ++YYCURSOR;
10005
1.41k
    YYFILL(1);
10006
1.41k
    yych = *YYCURSOR;
10007
1.41k
    if (yych <= 'Q') {
10008
57
      if (yych <= 0x00) goto yy86;
10009
57
      if (yych == '*') goto yy760;
10010
57
      goto yy696;
10011
1.35k
    } else {
10012
1.35k
      if (yych <= 'R') goto yy907;
10013
21
      if (yych == 'r') goto yy907;
10014
21
      goto yy696;
10015
21
    }
10016
171
yy880:
10017
171
    YYDEBUG(880, *YYCURSOR);
10018
171
    ++YYCURSOR;
10019
171
    YYFILL(1);
10020
171
    yych = *YYCURSOR;
10021
171
    if (yych <= '9') {
10022
72
      if (yych <= '\n') {
10023
0
        if (yych <= 0x00) goto yy875;
10024
0
        if (yych <= '\t') goto yy908;
10025
0
        goto yy909;
10026
72
      } else {
10027
72
        if (yych == '\r') goto yy909;
10028
72
        if (yych <= '/') goto yy908;
10029
3
        goto yy692;
10030
72
      }
10031
99
    } else {
10032
99
      if (yych <= '_') {
10033
99
        if (yych <= '@') goto yy908;
10034
81
        if (yych <= 'Z') goto yy692;
10035
78
        if (yych <= '^') goto yy908;
10036
0
        goto yy692;
10037
78
      } else {
10038
0
        if (yych <= '`') goto yy908;
10039
0
        if (yych <= 'z') goto yy692;
10040
0
        if (yych <= 0x7F) goto yy908;
10041
0
        goto yy692;
10042
0
      }
10043
99
    }
10044
2.38k
yy881:
10045
2.38k
    YYDEBUG(881, *YYCURSOR);
10046
2.38k
    yyaccept = 4;
10047
2.38k
    yych = *(YYMARKER = ++YYCURSOR);
10048
2.38k
    if (yych == '_') goto yy910;
10049
9
    goto yy48;
10050
83
yy882:
10051
83
    YYDEBUG(882, *YYCURSOR);
10052
83
    yyaccept = 4;
10053
83
    yych = *(YYMARKER = ++YYCURSOR);
10054
83
    if (yych == 'I') goto yy912;
10055
40
    if (yych == 'i') goto yy912;
10056
4
    goto yy48;
10057
197
yy883:
10058
197
    YYDEBUG(883, *YYCURSOR);
10059
197
    yyaccept = 4;
10060
197
    yych = *(YYMARKER = ++YYCURSOR);
10061
197
    if (yych == '_') goto yy913;
10062
9
    goto yy48;
10063
278
yy884:
10064
278
    YYDEBUG(884, *YYCURSOR);
10065
278
    yyaccept = 4;
10066
278
    yych = *(YYMARKER = ++YYCURSOR);
10067
278
    if (yych == '_') goto yy914;
10068
9
    goto yy48;
10069
13
yy885:
10070
13
    YYDEBUG(885, *YYCURSOR);
10071
13
    ++YYCURSOR;
10072
123
yy886:
10073
123
    YYDEBUG(886, *YYCURSOR);
10074
123
    yyleng = YYCURSOR - SCNG(yy_text);
10075
123
#line 1570 "Zend/zend_language_scanner.l"
10076
123
    {
10077
123
  yyless(4);
10078
123
  RETURN_TOKEN_WITH_STR(T_STRING, 0);
10079
123
}
10080
0
#line 10081 "Zend/zend_language_scanner.c"
10081
158
yy887:
10082
158
    YYDEBUG(887, *YYCURSOR);
10083
158
    yych = *++YYCURSOR;
10084
158
    if (yych == 'N') goto yy916;
10085
101
    if (yych == 'n') goto yy916;
10086
96
    goto yy86;
10087
32.0k
yy888:
10088
32.0k
    YYDEBUG(888, *YYCURSOR);
10089
32.0k
    ++YYCURSOR;
10090
32.0k
    YYFILL(1);
10091
32.0k
    yych = *YYCURSOR;
10092
32.0k
    if (yych <= '\f') {
10093
19.9k
      if (yych <= 0x00) goto yy86;
10094
19.4k
      if (yych == '\n') goto yy859;
10095
332
      goto yy738;
10096
19.4k
    } else {
10097
12.1k
      if (yych <= '\r') goto yy859;
10098
12.0k
      if (yych == '*') goto yy789;
10099
12.0k
      goto yy738;
10100
12.0k
    }
10101
22.1k
yy889:
10102
22.1k
    YYDEBUG(889, *YYCURSOR);
10103
22.1k
    ++YYCURSOR;
10104
22.1k
    YYFILL(1);
10105
22.1k
    yych = *YYCURSOR;
10106
22.1k
    if (yych <= '\f') {
10107
1.18k
      if (yych <= 0x00) goto yy86;
10108
838
      if (yych == '\n') goto yy787;
10109
355
      goto yy738;
10110
20.9k
    } else {
10111
20.9k
      if (yych <= '\r') goto yy787;
10112
20.6k
      if (yych == '*') goto yy917;
10113
612
      goto yy738;
10114
20.6k
    }
10115
6.67k
yy890:
10116
6.67k
    YYDEBUG(890, *YYCURSOR);
10117
6.67k
    yyaccept = 53;
10118
6.67k
    YYMARKER = ++YYCURSOR;
10119
6.67k
    YYFILL(1);
10120
6.67k
    yych = *YYCURSOR;
10121
6.67k
    if (yych <= '\f') {
10122
339
      if (yych <= 0x00) goto yy583;
10123
300
      if (yych == '\n') goto yy787;
10124
276
      goto yy738;
10125
6.33k
    } else {
10126
6.33k
      if (yych <= '\r') goto yy787;
10127
6.31k
      if (yych == '*') goto yy789;
10128
6.30k
      goto yy738;
10129
6.31k
    }
10130
41.3k
yy891:
10131
41.3k
    YYDEBUG(891, *YYCURSOR);
10132
41.3k
    yyaccept = 53;
10133
41.3k
    YYMARKER = ++YYCURSOR;
10134
41.3k
    YYFILL(1);
10135
41.3k
    yych = *YYCURSOR;
10136
41.3k
    if (yych <= ')') {
10137
239
      if (yych <= '\n') {
10138
56
        if (yych <= 0x00) goto yy583;
10139
55
        if (yych <= '\t') goto yy738;
10140
19
        goto yy787;
10141
183
      } else {
10142
183
        if (yych == '\r') goto yy787;
10143
156
        goto yy738;
10144
183
      }
10145
41.0k
    } else {
10146
41.0k
      if (yych <= 'X') {
10147
345
        if (yych <= '*') goto yy789;
10148
345
        if (yych <= 'W') goto yy738;
10149
0
        goto yy918;
10150
40.7k
      } else {
10151
40.7k
        if (yych == 'x') goto yy918;
10152
39.3k
        goto yy738;
10153
40.7k
      }
10154
41.0k
    }
10155
23.5k
yy892:
10156
23.5k
    YYDEBUG(892, *YYCURSOR);
10157
23.5k
    yyaccept = 53;
10158
23.5k
    YYMARKER = ++YYCURSOR;
10159
23.5k
    YYFILL(1);
10160
23.5k
    yych = *YYCURSOR;
10161
23.5k
    if (yych <= ')') {
10162
1.27k
      if (yych <= '\n') {
10163
714
        if (yych <= 0x00) goto yy583;
10164
192
        if (yych <= '\t') goto yy738;
10165
165
        goto yy787;
10166
564
      } else {
10167
564
        if (yych == '\r') goto yy787;
10168
537
        goto yy738;
10169
564
      }
10170
22.2k
    } else {
10171
22.2k
      if (yych <= 'M') {
10172
36
        if (yych <= '*') goto yy789;
10173
33
        if (yych <= 'L') goto yy738;
10174
0
        goto yy919;
10175
22.2k
      } else {
10176
22.2k
        if (yych == 'm') goto yy919;
10177
528
        goto yy738;
10178
22.2k
      }
10179
22.2k
    }
10180
198
yy893:
10181
198
    YYDEBUG(893, *YYCURSOR);
10182
198
    ++YYCURSOR;
10183
198
    YYFILL(1);
10184
198
    yych = *YYCURSOR;
10185
198
    if (yych <= 'D') {
10186
6
      if (yych <= 0x00) goto yy86;
10187
6
      if (yych == '*') goto yy668;
10188
6
      goto yy590;
10189
192
    } else {
10190
192
      if (yych <= 'E') goto yy920;
10191
192
      if (yych == 'e') goto yy920;
10192
6
      goto yy590;
10193
192
    }
10194
2.29k
yy894:
10195
2.29k
    YYDEBUG(894, *YYCURSOR);
10196
2.29k
    ++YYCURSOR;
10197
2.29k
    YYFILL(1);
10198
2.29k
    yych = *YYCURSOR;
10199
2.29k
    if (yych <= 'K') {
10200
1.56k
      if (yych <= 0x00) goto yy86;
10201
1.05k
      if (yych == '*') goto yy668;
10202
1.05k
      goto yy590;
10203
1.05k
    } else {
10204
723
      if (yych <= 'L') goto yy921;
10205
723
      if (yych == 'l') goto yy921;
10206
123
      goto yy590;
10207
723
    }
10208
178
yy895:
10209
178
    YYDEBUG(895, *YYCURSOR);
10210
178
    ++YYCURSOR;
10211
178
    YYFILL(1);
10212
178
    yych = *YYCURSOR;
10213
178
    if (yych <= '\r') {
10214
16
      if (yych <= '\t') {
10215
16
        if (yych <= 0x00) goto yy86;
10216
3
        goto yy586;
10217
16
      } else {
10218
0
        if (yych <= '\n') goto yy495;
10219
0
        if (yych <= '\f') goto yy586;
10220
0
        goto yy495;
10221
0
      }
10222
162
    } else {
10223
162
      if (yych <= 'S') {
10224
63
        if (yych <= 'R') goto yy586;
10225
0
        goto yy922;
10226
99
      } else {
10227
99
        if (yych == 's') goto yy922;
10228
0
        goto yy586;
10229
99
      }
10230
162
    }
10231
5.96k
yy896:
10232
5.96k
    YYDEBUG(896, *YYCURSOR);
10233
5.96k
    ++YYCURSOR;
10234
5.96k
    YYFILL(1);
10235
5.96k
    yych = *YYCURSOR;
10236
5.96k
    if (yych <= '\r') {
10237
347
      if (yych <= '\t') {
10238
63
        if (yych <= 0x00) goto yy86;
10239
21
        goto yy586;
10240
284
      } else {
10241
284
        if (yych <= '\n') goto yy495;
10242
9
        if (yych <= '\f') goto yy586;
10243
0
        goto yy495;
10244
9
      }
10245
5.61k
    } else {
10246
5.61k
      if (yych <= 'E') {
10247
186
        if (yych <= 'D') goto yy586;
10248
72
        goto yy923;
10249
5.42k
      } else {
10250
5.42k
        if (yych == 'e') goto yy923;
10251
138
        goto yy586;
10252
5.42k
      }
10253
5.61k
    }
10254
273
yy897:
10255
273
    YYDEBUG(897, *YYCURSOR);
10256
273
    yyaccept = 89;
10257
273
    yych = *(YYMARKER = ++YYCURSOR);
10258
273
    if (yybm[256+yych] & 128) {
10259
0
      goto yy47;
10260
0
    }
10261
273
    if (yych == '\\') goto yy164;
10262
273
yy898:
10263
273
    YYDEBUG(898, *YYCURSOR);
10264
273
    yyleng = YYCURSOR - SCNG(yy_text);
10265
273
#line 1726 "Zend/zend_language_scanner.l"
10266
273
    {
10267
273
  RETURN_TOKEN_WITH_IDENT(T_INCLUDE_ONCE);
10268
273
}
10269
0
#line 10270 "Zend/zend_language_scanner.c"
10270
148
yy899:
10271
148
    YYDEBUG(899, *YYCURSOR);
10272
148
    ++YYCURSOR;
10273
148
    YYDEBUG(900, *YYCURSOR);
10274
148
    yyleng = YYCURSOR - SCNG(yy_text);
10275
148
#line 1794 "Zend/zend_language_scanner.l"
10276
148
    {
10277
148
  RETURN_TOKEN_WITH_IDENT(T_PRIVATE_SET);
10278
148
}
10279
0
#line 10280 "Zend/zend_language_scanner.c"
10280
76
yy901:
10281
76
    YYDEBUG(901, *YYCURSOR);
10282
76
    yych = *++YYCURSOR;
10283
76
    if (yych == 'T') goto yy924;
10284
76
    if (yych == 't') goto yy924;
10285
0
    goto yy86;
10286
946
yy902:
10287
946
    YYDEBUG(902, *YYCURSOR);
10288
946
    yyaccept = 90;
10289
946
    yych = *(YYMARKER = ++YYCURSOR);
10290
946
    if (yybm[256+yych] & 128) {
10291
0
      goto yy47;
10292
0
    }
10293
946
    if (yych == '\\') goto yy164;
10294
946
yy903:
10295
946
    YYDEBUG(903, *YYCURSOR);
10296
946
    yyleng = YYCURSOR - SCNG(yy_text);
10297
946
#line 1734 "Zend/zend_language_scanner.l"
10298
946
    {
10299
946
  RETURN_TOKEN_WITH_IDENT(T_REQUIRE_ONCE);
10300
946
}
10301
0
#line 10302 "Zend/zend_language_scanner.c"
10302
52.7k
yy904:
10303
52.7k
    YYDEBUG(904, *YYCURSOR);
10304
52.7k
    ++YYCURSOR;
10305
52.7k
    YYFILL(1);
10306
52.7k
    yych = *YYCURSOR;
10307
52.7k
    YYDEBUG(905, *YYCURSOR);
10308
52.7k
    if (yych <= '"') {
10309
14.2k
      if (yych <= '\n') {
10310
1.70k
        if (yych <= 0x00) goto yy86;
10311
1.63k
        if (yych <= 0x08) goto yy808;
10312
1.37k
        if (yych <= '\t') goto yy904;
10313
1.21k
        goto yy846;
10314
12.5k
      } else {
10315
12.5k
        if (yych <= '\r') {
10316
615
          if (yych <= '\f') goto yy808;
10317
612
          goto yy846;
10318
11.9k
        } else {
10319
11.9k
          if (yych == ' ') goto yy904;
10320
351
          goto yy808;
10321
11.9k
        }
10322
12.5k
      }
10323
38.5k
    } else {
10324
38.5k
      if (yych <= '/') {
10325
16.4k
        if (yych <= ')') {
10326
10.9k
          if (yych <= '#') goto yy925;
10327
138
          goto yy808;
10328
10.9k
        } else {
10329
5.49k
          if (yych <= '*') goto yy848;
10330
5.46k
          if (yych <= '.') goto yy808;
10331
5.46k
          goto yy926;
10332
5.46k
        }
10333
22.1k
      } else {
10334
22.1k
        if (yych <= 'F') {
10335
1.29k
          if (yych <= 'E') goto yy808;
10336
987
          goto yy927;
10337
20.8k
        } else {
10338
20.8k
          if (yych == 'f') goto yy927;
10339
20.8k
          goto yy808;
10340
20.8k
        }
10341
22.1k
      }
10342
38.5k
    }
10343
2.29k
yy906:
10344
2.29k
    YYDEBUG(906, *YYCURSOR);
10345
2.29k
    ++YYCURSOR;
10346
2.29k
    YYFILL(1);
10347
2.29k
    yych = *YYCURSOR;
10348
2.29k
    if (yych <= '*') {
10349
96
      if (yych <= 0x00) goto yy86;
10350
72
      if (yych <= ')') goto yy696;
10351
12
      goto yy760;
10352
2.20k
    } else {
10353
2.20k
      if (yych == '/') goto yy846;
10354
30
      goto yy696;
10355
2.20k
    }
10356
1.33k
yy907:
10357
1.33k
    YYDEBUG(907, *YYCURSOR);
10358
1.33k
    ++YYCURSOR;
10359
1.33k
    YYFILL(1);
10360
1.33k
    yych = *YYCURSOR;
10361
1.33k
    if (yych <= 'N') {
10362
108
      if (yych <= 0x00) goto yy86;
10363
45
      if (yych == '*') goto yy760;
10364
45
      goto yy696;
10365
1.23k
    } else {
10366
1.23k
      if (yych <= 'O') goto yy928;
10367
1.16k
      if (yych == 'o') goto yy928;
10368
318
      goto yy696;
10369
1.16k
    }
10370
165
yy908:
10371
165
    YYDEBUG(908, *YYCURSOR);
10372
165
    yyaccept = 91;
10373
165
    YYMARKER = ++YYCURSOR;
10374
165
    YYFILL(1);
10375
165
    yych = *YYCURSOR;
10376
165
    if (yych <= '\n') {
10377
3
      if (yych <= 0x00) goto yy876;
10378
0
      if (yych <= '\t') goto yy692;
10379
0
      goto yy616;
10380
162
    } else {
10381
162
      if (yych == '\r') goto yy616;
10382
81
      goto yy692;
10383
162
    }
10384
0
yy909:
10385
0
    YYDEBUG(909, *YYCURSOR);
10386
0
    yyaccept = 91;
10387
0
    YYMARKER = ++YYCURSOR;
10388
0
    YYFILL(5);
10389
0
    yych = *YYCURSOR;
10390
0
    if (yych <= '"') {
10391
0
      if (yych <= '\f') {
10392
0
        if (yych <= 0x08) goto yy876;
10393
0
        if (yych <= '\n') goto yy616;
10394
0
        goto yy876;
10395
0
      } else {
10396
0
        if (yych <= '\r') goto yy616;
10397
0
        if (yych == ' ') goto yy616;
10398
0
        goto yy876;
10399
0
      }
10400
0
    } else {
10401
0
      if (yych <= 'E') {
10402
0
        if (yych <= '#') goto yy618;
10403
0
        if (yych == '/') goto yy619;
10404
0
        goto yy876;
10405
0
      } else {
10406
0
        if (yych <= 'F') goto yy691;
10407
0
        if (yych == 'f') goto yy691;
10408
0
        goto yy876;
10409
0
      }
10410
0
    }
10411
2.37k
yy910:
10412
2.37k
    YYDEBUG(910, *YYCURSOR);
10413
2.37k
    yyaccept = 92;
10414
2.37k
    yych = *(YYMARKER = ++YYCURSOR);
10415
2.37k
    if (yybm[256+yych] & 128) {
10416
9
      goto yy47;
10417
9
    }
10418
2.36k
    if (yych == '\\') goto yy164;
10419
2.36k
yy911:
10420
2.36k
    YYDEBUG(911, *YYCURSOR);
10421
2.36k
    yyleng = YYCURSOR - SCNG(yy_text);
10422
2.36k
#line 2261 "Zend/zend_language_scanner.l"
10423
2.36k
    {
10424
2.36k
  RETURN_TOKEN_WITH_IDENT(T_FUNC_C);
10425
2.36k
}
10426
0
#line 10427 "Zend/zend_language_scanner.c"
10427
79
yy912:
10428
79
    YYDEBUG(912, *YYCURSOR);
10429
79
    yyaccept = 4;
10430
79
    yych = *(YYMARKER = ++YYCURSOR);
10431
79
    if (yych == 'L') goto yy929;
10432
38
    if (yych == 'l') goto yy929;
10433
2
    goto yy48;
10434
188
yy913:
10435
188
    YYDEBUG(913, *YYCURSOR);
10436
188
    yyaccept = 4;
10437
188
    yych = *(YYMARKER = ++YYCURSOR);
10438
188
    if (yych == '_') goto yy930;
10439
33
    goto yy48;
10440
269
yy914:
10441
269
    YYDEBUG(914, *YYCURSOR);
10442
269
    yyaccept = 93;
10443
269
    yych = *(YYMARKER = ++YYCURSOR);
10444
269
    if (yybm[256+yych] & 128) {
10445
0
      goto yy47;
10446
0
    }
10447
269
    if (yych == '\\') goto yy164;
10448
269
yy915:
10449
269
    YYDEBUG(915, *YYCURSOR);
10450
269
    yyleng = YYCURSOR - SCNG(yy_text);
10451
269
#line 2265 "Zend/zend_language_scanner.l"
10452
269
    {
10453
269
  RETURN_TOKEN_WITH_IDENT(T_PROPERTY_C);
10454
269
}
10455
0
#line 10456 "Zend/zend_language_scanner.c"
10456
62
yy916:
10457
62
    YYDEBUG(916, *YYCURSOR);
10458
62
    yych = *++YYCURSOR;
10459
62
    if (yych == 'T') goto yy857;
10460
62
    if (yych == 't') goto yy857;
10461
57
    goto yy86;
10462
20.0k
yy917:
10463
20.0k
    YYDEBUG(917, *YYCURSOR);
10464
20.0k
    ++YYCURSOR;
10465
20.0k
    YYFILL(1);
10466
20.0k
    yych = *YYCURSOR;
10467
20.0k
    if (yych <= '\r') {
10468
492
      if (yych <= '\t') {
10469
399
        if (yych <= 0x00) goto yy86;
10470
27
        goto yy738;
10471
399
      } else {
10472
93
        if (yych <= '\n') goto yy787;
10473
18
        if (yych <= '\f') goto yy738;
10474
18
        goto yy787;
10475
18
      }
10476
19.5k
    } else {
10477
19.5k
      if (yych <= '*') {
10478
1.64k
        if (yych <= ')') goto yy738;
10479
0
        goto yy789;
10480
17.9k
      } else {
10481
17.9k
        if (yych == '/') goto yy859;
10482
187
        goto yy738;
10483
17.9k
      }
10484
19.5k
    }
10485
1.35k
yy918:
10486
1.35k
    YYDEBUG(918, *YYCURSOR);
10487
1.35k
    ++YYCURSOR;
10488
1.35k
    YYFILL(1);
10489
1.35k
    yych = *YYCURSOR;
10490
1.35k
    if (yych <= ')') {
10491
372
      if (yych <= '\n') {
10492
108
        if (yych <= 0x00) goto yy86;
10493
0
        if (yych <= '\t') goto yy738;
10494
0
        goto yy787;
10495
264
      } else {
10496
264
        if (yych == '\r') goto yy787;
10497
264
        goto yy738;
10498
264
      }
10499
987
    } else {
10500
987
      if (yych <= 'T') {
10501
285
        if (yych <= '*') goto yy789;
10502
285
        if (yych <= 'S') goto yy738;
10503
75
        goto yy932;
10504
702
      } else {
10505
702
        if (yych == 't') goto yy932;
10506
198
        goto yy738;
10507
702
      }
10508
987
    }
10509
21.6k
yy919:
10510
21.6k
    YYDEBUG(919, *YYCURSOR);
10511
21.6k
    ++YYCURSOR;
10512
21.6k
    YYFILL(1);
10513
21.6k
    yych = *YYCURSOR;
10514
21.6k
    if (yych <= ')') {
10515
30
      if (yych <= '\n') {
10516
3
        if (yych <= 0x00) goto yy86;
10517
3
        if (yych <= '\t') goto yy738;
10518
0
        goto yy787;
10519
27
      } else {
10520
27
        if (yych == '\r') goto yy787;
10521
9
        goto yy738;
10522
27
      }
10523
21.6k
    } else {
10524
21.6k
      if (yych <= 'P') {
10525
10.1k
        if (yych <= '*') goto yy789;
10526
10.1k
        if (yych <= 'O') goto yy738;
10527
15
        goto yy933;
10528
11.5k
      } else {
10529
11.5k
        if (yych == 'p') goto yy933;
10530
987
        goto yy738;
10531
11.5k
      }
10532
21.6k
    }
10533
186
yy920:
10534
186
    YYDEBUG(920, *YYCURSOR);
10535
186
    ++YYCURSOR;
10536
186
    YYFILL(1);
10537
186
    yych = *YYCURSOR;
10538
186
    if (yych <= 'M') {
10539
0
      if (yych <= 0x00) goto yy86;
10540
0
      if (yych == '*') goto yy668;
10541
0
      goto yy590;
10542
186
    } else {
10543
186
      if (yych <= 'N') goto yy934;
10544
186
      if (yych == 'n') goto yy934;
10545
0
      goto yy590;
10546
186
    }
10547
600
yy921:
10548
600
    YYDEBUG(921, *YYCURSOR);
10549
600
    ++YYCURSOR;
10550
600
    YYFILL(1);
10551
600
    yych = *YYCURSOR;
10552
600
    if (yych <= 'D') {
10553
62
      if (yych <= 0x00) goto yy86;
10554
60
      if (yych == '*') goto yy668;
10555
60
      goto yy590;
10556
538
    } else {
10557
538
      if (yych <= 'E') goto yy935;
10558
538
      if (yych == 'e') goto yy935;
10559
36
      goto yy590;
10560
538
    }
10561
99
yy922:
10562
99
    YYDEBUG(922, *YYCURSOR);
10563
99
    yyaccept = 94;
10564
99
    YYMARKER = ++YYCURSOR;
10565
99
    YYFILL(1);
10566
99
    yych = *YYCURSOR;
10567
99
    if (yych <= '\n') {
10568
0
      if (yych <= 0x00) goto yy886;
10569
0
      if (yych <= '\t') goto yy586;
10570
0
      goto yy495;
10571
99
    } else {
10572
99
      if (yych == '\r') goto yy495;
10573
99
      goto yy586;
10574
99
    }
10575
5.36k
yy923:
10576
5.36k
    YYDEBUG(923, *YYCURSOR);
10577
5.36k
    ++YYCURSOR;
10578
5.36k
    YYFILL(1);
10579
5.36k
    yych = *YYCURSOR;
10580
5.36k
    if (yych <= '\r') {
10581
4.96k
      if (yych <= '\t') {
10582
4.95k
        if (yych <= 0x00) goto yy86;
10583
4.78k
        goto yy586;
10584
4.95k
      } else {
10585
9
        if (yych <= '\n') goto yy495;
10586
9
        if (yych <= '\f') goto yy586;
10587
9
        goto yy495;
10588
9
      }
10589
4.96k
    } else {
10590
400
      if (yych <= 'N') {
10591
81
        if (yych <= 'M') goto yy586;
10592
72
        goto yy936;
10593
319
      } else {
10594
319
        if (yych == 'n') goto yy936;
10595
141
        goto yy586;
10596
319
      }
10597
400
    }
10598
76
yy924:
10599
76
    YYDEBUG(924, *YYCURSOR);
10600
76
    yych = *++YYCURSOR;
10601
76
    if (yych == ')') goto yy937;
10602
3
    goto yy86;
10603
10.7k
yy925:
10604
10.7k
    YYDEBUG(925, *YYCURSOR);
10605
10.7k
    ++YYCURSOR;
10606
10.7k
    YYFILL(1);
10607
10.7k
    yych = *YYCURSOR;
10608
10.7k
    if (yych <= '\f') {
10609
7.02k
      if (yych <= 0x00) goto yy86;
10610
7.02k
      if (yych == '\n') goto yy904;
10611
0
      goto yy808;
10612
7.02k
    } else {
10613
3.75k
      if (yych <= '\r') goto yy904;
10614
3.75k
      if (yych == '*') goto yy848;
10615
3.75k
      goto yy808;
10616
3.75k
    }
10617
5.46k
yy926:
10618
5.46k
    YYDEBUG(926, *YYCURSOR);
10619
5.46k
    ++YYCURSOR;
10620
5.46k
    YYFILL(1);
10621
5.46k
    yych = *YYCURSOR;
10622
5.46k
    if (yych <= '\f') {
10623
45
      if (yych <= 0x00) goto yy86;
10624
33
      if (yych == '\n') goto yy846;
10625
12
      goto yy808;
10626
5.42k
    } else {
10627
5.42k
      if (yych <= '\r') goto yy846;
10628
5.33k
      if (yych == '*') goto yy939;
10629
243
      goto yy808;
10630
5.33k
    }
10631
999
yy927:
10632
999
    YYDEBUG(927, *YYCURSOR);
10633
999
    ++YYCURSOR;
10634
999
    YYFILL(1);
10635
999
    yych = *YYCURSOR;
10636
999
    if (yych <= ')') {
10637
39
      if (yych <= '\n') {
10638
39
        if (yych <= 0x00) goto yy86;
10639
30
        if (yych <= '\t') goto yy808;
10640
0
        goto yy846;
10641
30
      } else {
10642
0
        if (yych == '\r') goto yy846;
10643
0
        goto yy808;
10644
0
      }
10645
960
    } else {
10646
960
      if (yych <= 'R') {
10647
942
        if (yych <= '*') goto yy848;
10648
942
        if (yych <= 'Q') goto yy808;
10649
840
        goto yy940;
10650
942
      } else {
10651
18
        if (yych == 'r') goto yy940;
10652
18
        goto yy808;
10653
18
      }
10654
960
    }
10655
912
yy928:
10656
912
    YYDEBUG(928, *YYCURSOR);
10657
912
    ++YYCURSOR;
10658
912
    YYFILL(1);
10659
912
    yych = *YYCURSOR;
10660
912
    if (yych <= 'L') {
10661
0
      if (yych <= 0x00) goto yy86;
10662
0
      if (yych == '*') goto yy760;
10663
0
      goto yy696;
10664
912
    } else {
10665
912
      if (yych <= 'M') goto yy941;
10666
42
      if (yych == 'm') goto yy941;
10667
42
      goto yy696;
10668
42
    }
10669
77
yy929:
10670
77
    YYDEBUG(929, *YYCURSOR);
10671
77
    yyaccept = 4;
10672
77
    yych = *(YYMARKER = ++YYCURSOR);
10673
77
    if (yych == 'E') goto yy942;
10674
41
    if (yych == 'e') goto yy942;
10675
5
    goto yy48;
10676
155
yy930:
10677
155
    YYDEBUG(930, *YYCURSOR);
10678
155
    yyaccept = 95;
10679
155
    yych = *(YYMARKER = ++YYCURSOR);
10680
155
    if (yybm[256+yych] & 128) {
10681
0
      goto yy47;
10682
0
    }
10683
155
    if (yych == '\\') goto yy164;
10684
155
yy931:
10685
155
    YYDEBUG(931, *YYCURSOR);
10686
155
    yyleng = YYCURSOR - SCNG(yy_text);
10687
155
#line 2285 "Zend/zend_language_scanner.l"
10688
155
    {
10689
155
  RETURN_TOKEN_WITH_IDENT(T_NS_C);
10690
155
}
10691
0
#line 10692 "Zend/zend_language_scanner.c"
10692
579
yy932:
10693
579
    YYDEBUG(932, *YYCURSOR);
10694
579
    ++YYCURSOR;
10695
579
    YYFILL(1);
10696
579
    yych = *YYCURSOR;
10697
579
    if (yych <= ')') {
10698
0
      if (yych <= '\n') {
10699
0
        if (yych <= 0x00) goto yy86;
10700
0
        if (yych <= '\t') goto yy738;
10701
0
        goto yy787;
10702
0
      } else {
10703
0
        if (yych == '\r') goto yy787;
10704
0
        goto yy738;
10705
0
      }
10706
579
    } else {
10707
579
      if (yych <= 'E') {
10708
0
        if (yych <= '*') goto yy789;
10709
0
        if (yych <= 'D') goto yy738;
10710
0
        goto yy943;
10711
579
      } else {
10712
579
        if (yych == 'e') goto yy943;
10713
96
        goto yy738;
10714
579
      }
10715
579
    }
10716
10.5k
yy933:
10717
10.5k
    YYDEBUG(933, *YYCURSOR);
10718
10.5k
    ++YYCURSOR;
10719
10.5k
    YYFILL(1);
10720
10.5k
    yych = *YYCURSOR;
10721
10.5k
    if (yych <= ')') {
10722
99
      if (yych <= '\n') {
10723
48
        if (yych <= 0x00) goto yy86;
10724
45
        if (yych <= '\t') goto yy738;
10725
0
        goto yy787;
10726
51
      } else {
10727
51
        if (yych == '\r') goto yy787;
10728
51
        goto yy738;
10729
51
      }
10730
10.4k
    } else {
10731
10.4k
      if (yych <= 'L') {
10732
60
        if (yych <= '*') goto yy789;
10733
60
        if (yych <= 'K') goto yy738;
10734
0
        goto yy944;
10735
10.4k
      } else {
10736
10.4k
        if (yych == 'l') goto yy944;
10737
63
        goto yy738;
10738
10.4k
      }
10739
10.4k
    }
10740
186
yy934:
10741
186
    YYDEBUG(934, *YYCURSOR);
10742
186
    ++YYCURSOR;
10743
186
    YYFILL(1);
10744
186
    yych = *YYCURSOR;
10745
186
    if (yych <= 'C') {
10746
6
      if (yych <= 0x00) goto yy86;
10747
6
      if (yych == '*') goto yy668;
10748
6
      goto yy590;
10749
180
    } else {
10750
180
      if (yych <= 'D') goto yy945;
10751
180
      if (yych == 'd') goto yy945;
10752
180
      goto yy590;
10753
180
    }
10754
502
yy935:
10755
502
    YYDEBUG(935, *YYCURSOR);
10756
502
    ++YYCURSOR;
10757
502
    YYFILL(1);
10758
502
    yych = *YYCURSOR;
10759
502
    if (yych <= 'L') {
10760
150
      if (yych <= 0x00) goto yy86;
10761
150
      if (yych == '*') goto yy668;
10762
150
      goto yy590;
10763
352
    } else {
10764
352
      if (yych <= 'M') goto yy946;
10765
283
      if (yych == 'm') goto yy946;
10766
0
      goto yy590;
10767
283
    }
10768
250
yy936:
10769
250
    YYDEBUG(936, *YYCURSOR);
10770
250
    ++YYCURSOR;
10771
250
    YYFILL(1);
10772
250
    yych = *YYCURSOR;
10773
250
    if (yych <= '\r') {
10774
0
      if (yych <= '\t') {
10775
0
        if (yych <= 0x00) goto yy86;
10776
0
        goto yy586;
10777
0
      } else {
10778
0
        if (yych <= '\n') goto yy495;
10779
0
        if (yych <= '\f') goto yy586;
10780
0
        goto yy495;
10781
0
      }
10782
250
    } else {
10783
250
      if (yych <= 'T') {
10784
63
        if (yych <= 'S') goto yy586;
10785
0
        goto yy895;
10786
187
      } else {
10787
187
        if (yych == 't') goto yy895;
10788
9
        goto yy586;
10789
187
      }
10790
250
    }
10791
73
yy937:
10792
73
    YYDEBUG(937, *YYCURSOR);
10793
73
    ++YYCURSOR;
10794
73
    YYDEBUG(938, *YYCURSOR);
10795
73
    yyleng = YYCURSOR - SCNG(yy_text);
10796
73
#line 1790 "Zend/zend_language_scanner.l"
10797
73
    {
10798
73
  RETURN_TOKEN_WITH_IDENT(T_PROTECTED_SET);
10799
73
}
10800
0
#line 10801 "Zend/zend_language_scanner.c"
10801
5.09k
yy939:
10802
5.09k
    YYDEBUG(939, *YYCURSOR);
10803
5.09k
    ++YYCURSOR;
10804
5.09k
    YYFILL(1);
10805
5.09k
    yych = *YYCURSOR;
10806
5.09k
    if (yych <= '\r') {
10807
84
      if (yych <= '\t') {
10808
81
        if (yych <= 0x00) goto yy86;
10809
0
        goto yy808;
10810
81
      } else {
10811
3
        if (yych <= '\n') goto yy846;
10812
0
        if (yych <= '\f') goto yy808;
10813
0
        goto yy846;
10814
0
      }
10815
5.00k
    } else {
10816
5.00k
      if (yych <= '*') {
10817
180
        if (yych <= ')') goto yy808;
10818
3
        goto yy848;
10819
4.82k
      } else {
10820
4.82k
        if (yych == '/') goto yy904;
10821
18
        goto yy808;
10822
4.82k
      }
10823
5.00k
    }
10824
840
yy940:
10825
840
    YYDEBUG(940, *YYCURSOR);
10826
840
    ++YYCURSOR;
10827
840
    YYFILL(1);
10828
840
    yych = *YYCURSOR;
10829
840
    if (yych <= ')') {
10830
417
      if (yych <= '\n') {
10831
417
        if (yych <= 0x00) goto yy86;
10832
417
        if (yych <= '\t') goto yy808;
10833
114
        goto yy846;
10834
417
      } else {
10835
0
        if (yych == '\r') goto yy846;
10836
0
        goto yy808;
10837
0
      }
10838
423
    } else {
10839
423
      if (yych <= 'O') {
10840
264
        if (yych <= '*') goto yy848;
10841
264
        if (yych <= 'N') goto yy808;
10842
264
        goto yy947;
10843
264
      } else {
10844
159
        if (yych == 'o') goto yy947;
10845
159
        goto yy808;
10846
159
      }
10847
423
    }
10848
870
yy941:
10849
870
    YYDEBUG(941, *YYCURSOR);
10850
870
    ++YYCURSOR;
10851
870
    YYFILL(1);
10852
870
    yych = *YYCURSOR;
10853
870
    if (yych <= '@') {
10854
870
      if (yych <= '*') {
10855
870
        if (yych <= 0x00) goto yy875;
10856
870
        if (yych <= ')') goto yy948;
10857
57
        goto yy949;
10858
870
      } else {
10859
0
        if (yych <= '/') goto yy948;
10860
0
        if (yych <= '9') goto yy696;
10861
0
        goto yy948;
10862
0
      }
10863
870
    } else {
10864
0
      if (yych <= '_') {
10865
0
        if (yych <= 'Z') goto yy696;
10866
0
        if (yych <= '^') goto yy948;
10867
0
        goto yy696;
10868
0
      } else {
10869
0
        if (yych <= '`') goto yy948;
10870
0
        if (yych <= 'z') goto yy696;
10871
0
        if (yych <= 0x7F) goto yy948;
10872
0
        goto yy696;
10873
0
      }
10874
0
    }
10875
72
yy942:
10876
72
    YYDEBUG(942, *YYCURSOR);
10877
72
    yyaccept = 4;
10878
72
    yych = *(YYMARKER = ++YYCURSOR);
10879
72
    if (yych == 'R') goto yy950;
10880
36
    if (yych == 'r') goto yy950;
10881
0
    goto yy48;
10882
483
yy943:
10883
483
    YYDEBUG(943, *YYCURSOR);
10884
483
    ++YYCURSOR;
10885
483
    YYFILL(1);
10886
483
    yych = *YYCURSOR;
10887
483
    if (yych <= ')') {
10888
18
      if (yych <= '\n') {
10889
0
        if (yych <= 0x00) goto yy86;
10890
0
        if (yych <= '\t') goto yy738;
10891
0
        goto yy787;
10892
18
      } else {
10893
18
        if (yych == '\r') goto yy787;
10894
0
        goto yy738;
10895
18
      }
10896
465
    } else {
10897
465
      if (yych <= 'N') {
10898
45
        if (yych <= '*') goto yy789;
10899
45
        if (yych <= 'M') goto yy738;
10900
0
        goto yy952;
10901
420
      } else {
10902
420
        if (yych == 'n') goto yy952;
10903
69
        goto yy738;
10904
420
      }
10905
465
    }
10906
10.3k
yy944:
10907
10.3k
    YYDEBUG(944, *YYCURSOR);
10908
10.3k
    ++YYCURSOR;
10909
10.3k
    YYFILL(1);
10910
10.3k
    yych = *YYCURSOR;
10911
10.3k
    if (yych <= ')') {
10912
451
      if (yych <= '\n') {
10913
192
        if (yych <= 0x00) goto yy86;
10914
87
        if (yych <= '\t') goto yy738;
10915
69
        goto yy787;
10916
259
      } else {
10917
259
        if (yych == '\r') goto yy787;
10918
118
        goto yy738;
10919
259
      }
10920
9.90k
    } else {
10921
9.90k
      if (yych <= 'E') {
10922
81
        if (yych <= '*') goto yy789;
10923
75
        if (yych <= 'D') goto yy738;
10924
0
        goto yy953;
10925
9.82k
      } else {
10926
9.82k
        if (yych == 'e') goto yy953;
10927
151
        goto yy738;
10928
9.82k
      }
10929
9.90k
    }
10930
11
yy945:
10931
11
    YYDEBUG(945, *YYCURSOR);
10932
11
    ++YYCURSOR;
10933
11
    YYFILL(1);
10934
11
    yych = *YYCURSOR;
10935
11
    if (yych <= 'R') {
10936
0
      if (yych <= 0x00) goto yy86;
10937
0
      if (yych == '*') goto yy668;
10938
0
      goto yy590;
10939
11
    } else {
10940
11
      if (yych <= 'S') goto yy954;
10941
11
      if (yych == 's') goto yy954;
10942
0
      goto yy590;
10943
11
    }
10944
352
yy946:
10945
352
    YYDEBUG(946, *YYCURSOR);
10946
352
    ++YYCURSOR;
10947
352
    YYFILL(1);
10948
352
    yych = *YYCURSOR;
10949
352
    if (yych <= 'D') {
10950
17
      if (yych <= 0x00) goto yy86;
10951
17
      if (yych == '*') goto yy668;
10952
8
      goto yy590;
10953
335
    } else {
10954
335
      if (yych <= 'E') goto yy955;
10955
335
      if (yych == 'e') goto yy955;
10956
81
      goto yy590;
10957
335
    }
10958
264
yy947:
10959
264
    YYDEBUG(947, *YYCURSOR);
10960
264
    ++YYCURSOR;
10961
264
    YYFILL(1);
10962
264
    yych = *YYCURSOR;
10963
264
    if (yych <= ')') {
10964
0
      if (yych <= '\n') {
10965
0
        if (yych <= 0x00) goto yy86;
10966
0
        if (yych <= '\t') goto yy808;
10967
0
        goto yy846;
10968
0
      } else {
10969
0
        if (yych == '\r') goto yy846;
10970
0
        goto yy808;
10971
0
      }
10972
264
    } else {
10973
264
      if (yych <= 'M') {
10974
234
        if (yych <= '*') goto yy848;
10975
234
        if (yych <= 'L') goto yy808;
10976
225
        goto yy956;
10977
234
      } else {
10978
30
        if (yych == 'm') goto yy956;
10979
30
        goto yy808;
10980
30
      }
10981
264
    }
10982
813
yy948:
10983
813
    YYDEBUG(948, *YYCURSOR);
10984
813
    yyaccept = 91;
10985
813
    YYMARKER = ++YYCURSOR;
10986
813
    YYFILL(1);
10987
813
    yych = *YYCURSOR;
10988
813
    if (yych <= 0x00) goto yy876;
10989
6
    if (yych == '*') goto yy760;
10990
6
    goto yy696;
10991
57
yy949:
10992
57
    YYDEBUG(949, *YYCURSOR);
10993
57
    yyaccept = 91;
10994
57
    YYMARKER = ++YYCURSOR;
10995
57
    YYFILL(1);
10996
57
    yych = *YYCURSOR;
10997
57
    if (yych <= '*') {
10998
0
      if (yych <= 0x00) goto yy876;
10999
0
      if (yych <= ')') goto yy696;
11000
0
      goto yy760;
11001
57
    } else {
11002
57
      if (yych == '/') goto yy616;
11003
57
      goto yy696;
11004
57
    }
11005
72
yy950:
11006
72
    YYDEBUG(950, *YYCURSOR);
11007
72
    yyaccept = 96;
11008
72
    yych = *(YYMARKER = ++YYCURSOR);
11009
72
    if (yybm[256+yych] & 128) {
11010
0
      goto yy47;
11011
0
    }
11012
72
    if (yych == '\\') goto yy164;
11013
72
yy951:
11014
72
    YYDEBUG(951, *YYCURSOR);
11015
72
    yyleng = YYCURSOR - SCNG(yy_text);
11016
72
#line 1762 "Zend/zend_language_scanner.l"
11017
72
    {
11018
72
  RETURN_TOKEN_WITH_IDENT(T_HALT_COMPILER);
11019
72
}
11020
0
#line 11021 "Zend/zend_language_scanner.c"
11021
351
yy952:
11022
351
    YYDEBUG(952, *YYCURSOR);
11023
351
    ++YYCURSOR;
11024
351
    YYFILL(1);
11025
351
    yych = *YYCURSOR;
11026
351
    if (yych <= ')') {
11027
0
      if (yych <= '\n') {
11028
0
        if (yych <= 0x00) goto yy86;
11029
0
        if (yych <= '\t') goto yy738;
11030
0
        goto yy787;
11031
0
      } else {
11032
0
        if (yych == '\r') goto yy787;
11033
0
        goto yy738;
11034
0
      }
11035
351
    } else {
11036
351
      if (yych <= 'D') {
11037
0
        if (yych <= '*') goto yy789;
11038
0
        if (yych <= 'C') goto yy738;
11039
0
        goto yy957;
11040
351
      } else {
11041
351
        if (yych == 'd') goto yy957;
11042
351
        goto yy738;
11043
351
      }
11044
351
    }
11045
9.67k
yy953:
11046
9.67k
    YYDEBUG(953, *YYCURSOR);
11047
9.67k
    ++YYCURSOR;
11048
9.67k
    YYFILL(1);
11049
9.67k
    yych = *YYCURSOR;
11050
9.67k
    if (yych <= ')') {
11051
4.79k
      if (yych <= '\n') {
11052
3.08k
        if (yych <= 0x00) goto yy86;
11053
2.99k
        if (yych <= '\t') goto yy738;
11054
2.99k
        goto yy787;
11055
2.99k
      } else {
11056
1.71k
        if (yych == '\r') goto yy787;
11057
1.71k
        goto yy738;
11058
1.71k
      }
11059
4.87k
    } else {
11060
4.87k
      if (yych <= 'M') {
11061
4.84k
        if (yych <= '*') goto yy789;
11062
4.15k
        if (yych <= 'L') goto yy738;
11063
3.94k
        goto yy958;
11064
4.15k
      } else {
11065
36
        if (yych == 'm') goto yy958;
11066
6
        goto yy738;
11067
36
      }
11068
4.87k
    }
11069
11
yy954:
11070
11
    YYDEBUG(954, *YYCURSOR);
11071
11
    yyaccept = 94;
11072
11
    YYMARKER = ++YYCURSOR;
11073
11
    YYFILL(1);
11074
11
    yych = *YYCURSOR;
11075
11
    if (yych <= 0x00) goto yy886;
11076
11
    if (yych == '*') goto yy668;
11077
11
    goto yy590;
11078
254
yy955:
11079
254
    YYDEBUG(955, *YYCURSOR);
11080
254
    ++YYCURSOR;
11081
254
    YYFILL(1);
11082
254
    yych = *YYCURSOR;
11083
254
    if (yych <= 'M') {
11084
123
      if (yych <= 0x00) goto yy86;
11085
66
      if (yych == '*') goto yy668;
11086
66
      goto yy590;
11087
131
    } else {
11088
131
      if (yych <= 'N') goto yy959;
11089
131
      if (yych == 'n') goto yy959;
11090
27
      goto yy590;
11091
131
    }
11092
225
yy956:
11093
225
    YYDEBUG(956, *YYCURSOR);
11094
225
    ++YYCURSOR;
11095
225
    YYFILL(1);
11096
225
    yych = *YYCURSOR;
11097
225
    if (yych <= '/') {
11098
114
      if (yych <= '\f') {
11099
42
        if (yych <= 0x00) goto yy875;
11100
42
        if (yych == '\n') goto yy961;
11101
0
        goto yy960;
11102
72
      } else {
11103
72
        if (yych <= '\r') goto yy961;
11104
30
        if (yych == '*') goto yy962;
11105
15
        goto yy960;
11106
30
      }
11107
114
    } else {
11108
111
      if (yych <= '^') {
11109
99
        if (yych <= '9') goto yy808;
11110
99
        if (yych <= '@') goto yy960;
11111
0
        if (yych <= 'Z') goto yy808;
11112
0
        goto yy960;
11113
12
      } else {
11114
12
        if (yych <= '`') {
11115
0
          if (yych <= '_') goto yy808;
11116
0
          goto yy960;
11117
12
        } else {
11118
12
          if (yych <= 'z') goto yy808;
11119
9
          if (yych <= 0x7F) goto yy960;
11120
0
          goto yy808;
11121
9
        }
11122
12
      }
11123
111
    }
11124
18
yy957:
11125
18
    YYDEBUG(957, *YYCURSOR);
11126
18
    ++YYCURSOR;
11127
18
    YYFILL(1);
11128
18
    yych = *YYCURSOR;
11129
18
    if (yych <= ')') {
11130
18
      if (yych <= '\n') {
11131
0
        if (yych <= 0x00) goto yy86;
11132
0
        if (yych <= '\t') goto yy738;
11133
0
        goto yy787;
11134
18
      } else {
11135
18
        if (yych == '\r') goto yy787;
11136
18
        goto yy738;
11137
18
      }
11138
18
    } else {
11139
0
      if (yych <= 'S') {
11140
0
        if (yych <= '*') goto yy789;
11141
0
        if (yych <= 'R') goto yy738;
11142
0
        goto yy963;
11143
0
      } else {
11144
0
        if (yych == 's') goto yy963;
11145
0
        goto yy738;
11146
0
      }
11147
0
    }
11148
3.97k
yy958:
11149
3.97k
    YYDEBUG(958, *YYCURSOR);
11150
3.97k
    ++YYCURSOR;
11151
3.97k
    YYFILL(1);
11152
3.97k
    yych = *YYCURSOR;
11153
3.97k
    if (yych <= ')') {
11154
735
      if (yych <= '\n') {
11155
726
        if (yych <= 0x00) goto yy86;
11156
726
        if (yych <= '\t') goto yy738;
11157
702
        goto yy787;
11158
726
      } else {
11159
9
        if (yych == '\r') goto yy787;
11160
9
        goto yy738;
11161
9
      }
11162
3.23k
    } else {
11163
3.23k
      if (yych <= 'E') {
11164
3
        if (yych <= '*') goto yy789;
11165
3
        if (yych <= 'D') goto yy738;
11166
0
        goto yy964;
11167
3.23k
      } else {
11168
3.23k
        if (yych == 'e') goto yy964;
11169
30
        goto yy738;
11170
3.23k
      }
11171
3.23k
    }
11172
104
yy959:
11173
104
    YYDEBUG(959, *YYCURSOR);
11174
104
    ++YYCURSOR;
11175
104
    YYFILL(1);
11176
104
    yych = *YYCURSOR;
11177
104
    if (yych <= 'S') {
11178
84
      if (yych <= 0x00) goto yy86;
11179
0
      if (yych == '*') goto yy668;
11180
0
      goto yy590;
11181
20
    } else {
11182
20
      if (yych <= 'T') goto yy945;
11183
20
      if (yych == 't') goto yy945;
11184
9
      goto yy590;
11185
20
    }
11186
123
yy960:
11187
123
    YYDEBUG(960, *YYCURSOR);
11188
123
    yyaccept = 91;
11189
123
    YYMARKER = ++YYCURSOR;
11190
123
    YYFILL(1);
11191
123
    yych = *YYCURSOR;
11192
123
    if (yych <= '\f') {
11193
3
      if (yych <= 0x00) goto yy876;
11194
0
      if (yych == '\n') goto yy846;
11195
0
      goto yy808;
11196
120
    } else {
11197
120
      if (yych <= '\r') goto yy846;
11198
114
      if (yych == '*') goto yy848;
11199
114
      goto yy808;
11200
114
    }
11201
84
yy961:
11202
84
    YYDEBUG(961, *YYCURSOR);
11203
84
    yyaccept = 91;
11204
84
    YYMARKER = ++YYCURSOR;
11205
84
    YYFILL(1);
11206
84
    yych = *YYCURSOR;
11207
84
    if (yych <= '#') {
11208
84
      if (yych <= '\f') {
11209
0
        if (yych <= 0x00) goto yy876;
11210
0
        if (yych <= 0x08) goto yy696;
11211
0
        if (yych <= '\n') goto yy846;
11212
0
        goto yy696;
11213
84
      } else {
11214
84
        if (yych <= 0x1F) {
11215
60
          if (yych <= '\r') goto yy846;
11216
18
          goto yy696;
11217
60
        } else {
11218
24
          if (yych <= ' ') goto yy846;
11219
24
          if (yych <= '"') goto yy696;
11220
24
          goto yy877;
11221
24
        }
11222
84
      }
11223
84
    } else {
11224
0
      if (yych <= '/') {
11225
0
        if (yych == '*') goto yy760;
11226
0
        if (yych <= '.') goto yy696;
11227
0
        goto yy878;
11228
0
      } else {
11229
0
        if (yych <= 'F') {
11230
0
          if (yych <= 'E') goto yy696;
11231
0
          goto yy879;
11232
0
        } else {
11233
0
          if (yych == 'f') goto yy879;
11234
0
          goto yy696;
11235
0
        }
11236
0
      }
11237
0
    }
11238
15
yy962:
11239
15
    YYDEBUG(962, *YYCURSOR);
11240
15
    yyaccept = 91;
11241
15
    YYMARKER = ++YYCURSOR;
11242
15
    YYFILL(1);
11243
15
    yych = *YYCURSOR;
11244
15
    if (yych <= '\r') {
11245
0
      if (yych <= '\t') {
11246
0
        if (yych <= 0x00) goto yy876;
11247
0
        goto yy808;
11248
0
      } else {
11249
0
        if (yych <= '\n') goto yy846;
11250
0
        if (yych <= '\f') goto yy808;
11251
0
        goto yy846;
11252
0
      }
11253
15
    } else {
11254
15
      if (yych <= '*') {
11255
15
        if (yych <= ')') goto yy808;
11256
0
        goto yy848;
11257
15
      } else {
11258
0
        if (yych == '/') goto yy694;
11259
0
        goto yy808;
11260
0
      }
11261
15
    }
11262
0
yy963:
11263
0
    YYDEBUG(963, *YYCURSOR);
11264
0
    yyaccept = 94;
11265
0
    YYMARKER = ++YYCURSOR;
11266
0
    YYFILL(1);
11267
0
    yych = *YYCURSOR;
11268
0
    if (yych <= '\f') {
11269
0
      if (yych <= 0x00) goto yy886;
11270
0
      if (yych == '\n') goto yy787;
11271
0
      goto yy738;
11272
0
    } else {
11273
0
      if (yych <= '\r') goto yy787;
11274
0
      if (yych == '*') goto yy789;
11275
0
      goto yy738;
11276
0
    }
11277
3.20k
yy964:
11278
3.20k
    YYDEBUG(964, *YYCURSOR);
11279
3.20k
    ++YYCURSOR;
11280
3.20k
    YYFILL(1);
11281
3.20k
    yych = *YYCURSOR;
11282
3.20k
    if (yych <= ')') {
11283
3.09k
      if (yych <= '\n') {
11284
3.09k
        if (yych <= 0x00) goto yy86;
11285
3.09k
        if (yych <= '\t') goto yy738;
11286
0
        goto yy787;
11287
3.09k
      } else {
11288
0
        if (yych == '\r') goto yy787;
11289
0
        goto yy738;
11290
0
      }
11291
3.09k
    } else {
11292
114
      if (yych <= 'N') {
11293
24
        if (yych <= '*') goto yy789;
11294
24
        if (yych <= 'M') goto yy738;
11295
90
      } else {
11296
90
        if (yych != 'n') goto yy738;
11297
90
      }
11298
114
    }
11299
18
    YYDEBUG(965, *YYCURSOR);
11300
18
    ++YYCURSOR;
11301
18
    YYFILL(1);
11302
18
    yych = *YYCURSOR;
11303
18
    if (yych <= ')') {
11304
0
      if (yych <= '\n') {
11305
0
        if (yych <= 0x00) goto yy86;
11306
0
        if (yych <= '\t') goto yy738;
11307
0
        goto yy787;
11308
0
      } else {
11309
0
        if (yych == '\r') goto yy787;
11310
0
        goto yy738;
11311
0
      }
11312
18
    } else {
11313
18
      if (yych <= 'T') {
11314
0
        if (yych <= '*') goto yy789;
11315
0
        if (yych <= 'S') goto yy738;
11316
0
        goto yy957;
11317
18
      } else {
11318
18
        if (yych == 't') goto yy957;
11319
0
        goto yy738;
11320
18
      }
11321
18
    }
11322
18
  }
11323
/* *********************************** */
11324
251k
yyc_ST_LOOKING_FOR_PROPERTY:
11325
251k
  {
11326
251k
    static const unsigned char yybm[] = {
11327
251k
        0,   0,   0,   0,   0,   0,   0,   0, 
11328
251k
        0,  64,  64,   0,   0,  64,   0,   0, 
11329
251k
        0,   0,   0,   0,   0,   0,   0,   0, 
11330
251k
        0,   0,   0,   0,   0,   0,   0,   0, 
11331
251k
       64,   0,   0,   0,   0,   0,   0,   0, 
11332
251k
        0,   0,   0,   0,   0,   0,   0,   0, 
11333
251k
      128, 128, 128, 128, 128, 128, 128, 128, 
11334
251k
      128, 128,   0,   0,   0,   0,   0,   0, 
11335
251k
        0, 128, 128, 128, 128, 128, 128, 128, 
11336
251k
      128, 128, 128, 128, 128, 128, 128, 128, 
11337
251k
      128, 128, 128, 128, 128, 128, 128, 128, 
11338
251k
      128, 128, 128,   0,   0,   0,   0, 128, 
11339
251k
        0, 128, 128, 128, 128, 128, 128, 128, 
11340
251k
      128, 128, 128, 128, 128, 128, 128, 128, 
11341
251k
      128, 128, 128, 128, 128, 128, 128, 128, 
11342
251k
      128, 128, 128,   0,   0,   0,   0,   0, 
11343
251k
      128, 128, 128, 128, 128, 128, 128, 128, 
11344
251k
      128, 128, 128, 128, 128, 128, 128, 128, 
11345
251k
      128, 128, 128, 128, 128, 128, 128, 128, 
11346
251k
      128, 128, 128, 128, 128, 128, 128, 128, 
11347
251k
      128, 128, 128, 128, 128, 128, 128, 128, 
11348
251k
      128, 128, 128, 128, 128, 128, 128, 128, 
11349
251k
      128, 128, 128, 128, 128, 128, 128, 128, 
11350
251k
      128, 128, 128, 128, 128, 128, 128, 128, 
11351
251k
      128, 128, 128, 128, 128, 128, 128, 128, 
11352
251k
      128, 128, 128, 128, 128, 128, 128, 128, 
11353
251k
      128, 128, 128, 128, 128, 128, 128, 128, 
11354
251k
      128, 128, 128, 128, 128, 128, 128, 128, 
11355
251k
      128, 128, 128, 128, 128, 128, 128, 128, 
11356
251k
      128, 128, 128, 128, 128, 128, 128, 128, 
11357
251k
      128, 128, 128, 128, 128, 128, 128, 128, 
11358
251k
      128, 128, 128, 128, 128, 128, 128, 128, 
11359
251k
    };
11360
251k
    YYDEBUG(966, *YYCURSOR);
11361
251k
    YYFILL(4);
11362
251k
    yych = *YYCURSOR;
11363
251k
    if (yybm[0+yych] & 64) {
11364
1.01k
      goto yy970;
11365
1.01k
    }
11366
250k
    if (yych <= '?') {
11367
95.2k
      if (yych <= '-') {
11368
15.5k
        if (yych == '#') goto yy973;
11369
15.3k
        if (yych >= '-') goto yy975;
11370
79.6k
      } else {
11371
79.6k
        if (yych == '/') goto yy976;
11372
79.1k
        if (yych >= '?') goto yy977;
11373
79.1k
      }
11374
155k
    } else {
11375
155k
      if (yych <= '_') {
11376
3.93k
        if (yych <= '@') goto yy968;
11377
3.93k
        if (yych <= 'Z') goto yy978;
11378
1.36k
        if (yych >= '_') goto yy978;
11379
151k
      } else {
11380
151k
        if (yych <= '`') goto yy968;
11381
151k
        if (yych <= 'z') goto yy978;
11382
3.29k
        if (yych >= 0x80) goto yy978;
11383
3.29k
      }
11384
155k
    }
11385
4.02k
yy968:
11386
4.02k
    YYDEBUG(968, *YYCURSOR);
11387
4.02k
    ++YYCURSOR;
11388
4.35k
yy969:
11389
4.35k
    YYDEBUG(969, *YYCURSOR);
11390
4.35k
    yyleng = YYCURSOR - SCNG(yy_text);
11391
4.35k
#line 2520 "Zend/zend_language_scanner.l"
11392
4.35k
    {
11393
4.35k
  yyless(0);
11394
4.35k
  yy_pop_state();
11395
4.35k
  goto restart;
11396
4.02k
}
11397
0
#line 11398 "Zend/zend_language_scanner.c"
11398
1.97k
yy970:
11399
1.97k
    YYDEBUG(970, *YYCURSOR);
11400
1.97k
    ++YYCURSOR;
11401
1.97k
    YYFILL(1);
11402
1.97k
    yych = *YYCURSOR;
11403
1.97k
    YYDEBUG(971, *YYCURSOR);
11404
1.97k
    if (yybm[0+yych] & 64) {
11405
966
      goto yy970;
11406
966
    }
11407
1.01k
    YYDEBUG(972, *YYCURSOR);
11408
1.01k
    yyleng = YYCURSOR - SCNG(yy_text);
11409
1.01k
#line 1597 "Zend/zend_language_scanner.l"
11410
1.01k
    {
11411
1.01k
  goto return_whitespace;
11412
1.97k
}
11413
0
#line 11414 "Zend/zend_language_scanner.c"
11414
543
yy973:
11415
543
    YYDEBUG(973, *YYCURSOR);
11416
543
    ++YYCURSOR;
11417
543
    YYDEBUG(974, *YYCURSOR);
11418
543
    yyleng = YYCURSOR - SCNG(yy_text);
11419
543
#line 2460 "Zend/zend_language_scanner.l"
11420
543
    {
11421
47.0k
  while (YYCURSOR < YYLIMIT) {
11422
47.0k
    switch (*YYCURSOR++) {
11423
51
      case '\r':
11424
483
      case '\n':
11425
483
        YYCURSOR--;
11426
483
        break;
11427
122
      case '?':
11428
122
        if (*YYCURSOR == '>') {
11429
6
          YYCURSOR--;
11430
6
          break;
11431
6
        }
11432
116
        ZEND_FALLTHROUGH;
11433
46.5k
      default:
11434
46.5k
        continue;
11435
47.0k
    }
11436
11437
489
    break;
11438
47.0k
  }
11439
11440
543
  yyleng = YYCURSOR - SCNG(yy_text);
11441
543
  RETURN_OR_SKIP_TOKEN(T_COMMENT);
11442
543
}
11443
0
#line 11444 "Zend/zend_language_scanner.c"
11444
12.6k
yy975:
11445
12.6k
    YYDEBUG(975, *YYCURSOR);
11446
12.6k
    yych = *++YYCURSOR;
11447
12.6k
    if (yych == '>') goto yy981;
11448
66
    goto yy969;
11449
578
yy976:
11450
578
    YYDEBUG(976, *YYCURSOR);
11451
578
    yych = *++YYCURSOR;
11452
578
    if (yych == '*') goto yy983;
11453
403
    if (yych == '/') goto yy973;
11454
105
    goto yy969;
11455
78.6k
yy977:
11456
78.6k
    YYDEBUG(977, *YYCURSOR);
11457
78.6k
    yyaccept = 0;
11458
78.6k
    yych = *(YYMARKER = ++YYCURSOR);
11459
78.6k
    if (yych == '-') goto yy985;
11460
156
    goto yy969;
11461
679k
yy978:
11462
679k
    YYDEBUG(978, *YYCURSOR);
11463
679k
    ++YYCURSOR;
11464
679k
    YYFILL(1);
11465
679k
    yych = *YYCURSOR;
11466
679k
    YYDEBUG(979, *YYCURSOR);
11467
679k
    if (yybm[0+yych] & 128) {
11468
524k
      goto yy978;
11469
524k
    }
11470
154k
    YYDEBUG(980, *YYCURSOR);
11471
154k
    yyleng = YYCURSOR - SCNG(yy_text);
11472
154k
#line 1609 "Zend/zend_language_scanner.l"
11473
154k
    {
11474
154k
  yy_pop_state();
11475
154k
  RETURN_TOKEN_WITH_STR(T_STRING, 0);
11476
154k
}
11477
0
#line 11478 "Zend/zend_language_scanner.c"
11478
12.5k
yy981:
11479
12.5k
    YYDEBUG(981, *YYCURSOR);
11480
12.5k
    ++YYCURSOR;
11481
12.5k
    YYDEBUG(982, *YYCURSOR);
11482
12.5k
    yyleng = YYCURSOR - SCNG(yy_text);
11483
12.5k
#line 1601 "Zend/zend_language_scanner.l"
11484
12.5k
    {
11485
12.5k
  RETURN_TOKEN(T_OBJECT_OPERATOR);
11486
12.5k
}
11487
0
#line 11488 "Zend/zend_language_scanner.c"
11488
175
yy983:
11489
175
    YYDEBUG(983, *YYCURSOR);
11490
175
    yyaccept = 1;
11491
175
    yych = *(YYMARKER = ++YYCURSOR);
11492
175
    if (yych == '*') goto yy987;
11493
175
yy984:
11494
175
    YYDEBUG(984, *YYCURSOR);
11495
175
    yyleng = YYCURSOR - SCNG(yy_text);
11496
175
#line 2484 "Zend/zend_language_scanner.l"
11497
175
    {
11498
175
  int doc_com;
11499
11500
175
  if (yyleng > 2) {
11501
16
    doc_com = 1;
11502
16
    RESET_DOC_COMMENT();
11503
159
  } else {
11504
159
    doc_com = 0;
11505
159
  }
11506
11507
66.1k
  while (YYCURSOR < YYLIMIT) {
11508
66.0k
    if (*YYCURSOR++ == '*' && *YYCURSOR == '/') {
11509
70
      break;
11510
70
    }
11511
66.0k
  }
11512
11513
175
  if (YYCURSOR < YYLIMIT) {
11514
70
    YYCURSOR++;
11515
105
  } else {
11516
105
    zend_throw_exception_ex(zend_ce_parse_error, 0, "Unterminated comment starting line %" PRIu32, CG(zend_lineno));
11517
105
    if (PARSER_MODE()) {
11518
3
      RETURN_TOKEN(T_ERROR);
11519
3
    }
11520
105
  }
11521
11522
172
  yyleng = YYCURSOR - SCNG(yy_text);
11523
172
  HANDLE_NEWLINES(yytext, yyleng);
11524
11525
172
  if (doc_com) {
11526
16
    CG(doc_comment) = zend_string_init(yytext, yyleng, 0);
11527
16
    RETURN_OR_SKIP_TOKEN(T_DOC_COMMENT);
11528
16
  }
11529
11530
156
  RETURN_OR_SKIP_TOKEN(T_COMMENT);
11531
156
}
11532
0
#line 11533 "Zend/zend_language_scanner.c"
11533
78.4k
yy985:
11534
78.4k
    YYDEBUG(985, *YYCURSOR);
11535
78.4k
    yych = *++YYCURSOR;
11536
78.4k
    if (yych == '>') goto yy988;
11537
0
yy986:
11538
0
    YYDEBUG(986, *YYCURSOR);
11539
0
    YYCURSOR = YYMARKER;
11540
0
    if (yyaccept == 0) {
11541
0
      goto yy969;
11542
0
    } else {
11543
0
      goto yy984;
11544
0
    }
11545
16
yy987:
11546
16
    YYDEBUG(987, *YYCURSOR);
11547
16
    yych = *++YYCURSOR;
11548
16
    if (yych <= '\f') {
11549
0
      if (yych <= 0x08) goto yy986;
11550
0
      if (yych <= '\n') goto yy990;
11551
0
      goto yy986;
11552
16
    } else {
11553
16
      if (yych <= '\r') goto yy990;
11554
16
      if (yych == ' ') goto yy990;
11555
0
      goto yy986;
11556
16
    }
11557
78.4k
yy988:
11558
78.4k
    YYDEBUG(988, *YYCURSOR);
11559
78.4k
    ++YYCURSOR;
11560
78.4k
    YYDEBUG(989, *YYCURSOR);
11561
78.4k
    yyleng = YYCURSOR - SCNG(yy_text);
11562
78.4k
#line 1605 "Zend/zend_language_scanner.l"
11563
78.4k
    {
11564
78.4k
  RETURN_TOKEN(T_NULLSAFE_OBJECT_OPERATOR);
11565
78.4k
}
11566
0
#line 11567 "Zend/zend_language_scanner.c"
11567
16
yy990:
11568
16
    YYDEBUG(990, *YYCURSOR);
11569
16
    ++YYCURSOR;
11570
16
    YYFILL(1);
11571
16
    yych = *YYCURSOR;
11572
16
    YYDEBUG(991, *YYCURSOR);
11573
16
    if (yych <= '\f') {
11574
0
      if (yych <= 0x08) goto yy984;
11575
0
      if (yych <= '\n') goto yy990;
11576
0
      goto yy984;
11577
16
    } else {
11578
16
      if (yych <= '\r') goto yy990;
11579
16
      if (yych == ' ') goto yy990;
11580
16
      goto yy984;
11581
16
    }
11582
16
  }
11583
/* *********************************** */
11584
115k
yyc_ST_BACKQUOTE:
11585
115k
  {
11586
115k
    static const unsigned char yybm[] = {
11587
115k
        0,   0,   0,   0,   0,   0,   0,   0, 
11588
115k
        0,   0,   0,   0,   0,   0,   0,   0, 
11589
115k
        0,   0,   0,   0,   0,   0,   0,   0, 
11590
115k
        0,   0,   0,   0,   0,   0,   0,   0, 
11591
115k
        0,   0,   0,   0,   0,   0,   0,   0, 
11592
115k
        0,   0,   0,   0,   0,   0,   0,   0, 
11593
115k
      128, 128, 128, 128, 128, 128, 128, 128, 
11594
115k
      128, 128,   0,   0,   0,   0,   0,   0, 
11595
115k
        0, 128, 128, 128, 128, 128, 128, 128, 
11596
115k
      128, 128, 128, 128, 128, 128, 128, 128, 
11597
115k
      128, 128, 128, 128, 128, 128, 128, 128, 
11598
115k
      128, 128, 128,   0,   0,   0,   0, 128, 
11599
115k
        0, 128, 128, 128, 128, 128, 128, 128, 
11600
115k
      128, 128, 128, 128, 128, 128, 128, 128, 
11601
115k
      128, 128, 128, 128, 128, 128, 128, 128, 
11602
115k
      128, 128, 128,   0,   0,   0,   0,   0, 
11603
115k
      128, 128, 128, 128, 128, 128, 128, 128, 
11604
115k
      128, 128, 128, 128, 128, 128, 128, 128, 
11605
115k
      128, 128, 128, 128, 128, 128, 128, 128, 
11606
115k
      128, 128, 128, 128, 128, 128, 128, 128, 
11607
115k
      128, 128, 128, 128, 128, 128, 128, 128, 
11608
115k
      128, 128, 128, 128, 128, 128, 128, 128, 
11609
115k
      128, 128, 128, 128, 128, 128, 128, 128, 
11610
115k
      128, 128, 128, 128, 128, 128, 128, 128, 
11611
115k
      128, 128, 128, 128, 128, 128, 128, 128, 
11612
115k
      128, 128, 128, 128, 128, 128, 128, 128, 
11613
115k
      128, 128, 128, 128, 128, 128, 128, 128, 
11614
115k
      128, 128, 128, 128, 128, 128, 128, 128, 
11615
115k
      128, 128, 128, 128, 128, 128, 128, 128, 
11616
115k
      128, 128, 128, 128, 128, 128, 128, 128, 
11617
115k
      128, 128, 128, 128, 128, 128, 128, 128, 
11618
115k
      128, 128, 128, 128, 128, 128, 128, 128, 
11619
115k
    };
11620
115k
    YYDEBUG(992, *YYCURSOR);
11621
115k
    YYFILL(2);
11622
115k
    yych = *YYCURSOR;
11623
115k
    if (yych <= '_') {
11624
96.7k
      if (yych == '$') goto yy996;
11625
96.7k
    } else {
11626
18.5k
      if (yych <= '`') goto yy997;
11627
5.14k
      if (yych == '{') goto yy999;
11628
5.14k
    }
11629
52.2k
    YYDEBUG(994, *YYCURSOR);
11630
52.2k
    ++YYCURSOR;
11631
53.8k
yy995:
11632
53.8k
    YYDEBUG(995, *YYCURSOR);
11633
53.8k
    yyleng = YYCURSOR - SCNG(yy_text);
11634
53.8k
#line 2918 "Zend/zend_language_scanner.l"
11635
53.8k
    {
11636
53.8k
  if (YYCURSOR > YYLIMIT) {
11637
1.70k
    RETURN_END_TOKEN;
11638
1.70k
  }
11639
52.1k
  if (yytext[0] == '\\' && YYCURSOR < YYLIMIT) {
11640
830
    YYCURSOR++;
11641
830
  }
11642
11643
1.95M
  while (YYCURSOR < YYLIMIT) {
11644
1.95M
    switch (*YYCURSOR++) {
11645
3.61k
      case '`':
11646
3.61k
        break;
11647
57.4k
      case '$':
11648
57.4k
        if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
11649
46.4k
          break;
11650
46.4k
        }
11651
11.0k
        continue;
11652
11.7k
      case '{':
11653
11.7k
        if (*YYCURSOR == '$') {
11654
607
          break;
11655
607
        }
11656
11.1k
        continue;
11657
11.3k
      case '\\':
11658
11.3k
        if (YYCURSOR < YYLIMIT) {
11659
11.3k
          YYCURSOR++;
11660
11.3k
        }
11661
11.3k
        ZEND_FALLTHROUGH;
11662
1.88M
      default:
11663
1.88M
        continue;
11664
1.95M
    }
11665
11666
50.6k
    YYCURSOR--;
11667
50.6k
    break;
11668
1.95M
  }
11669
11670
52.1k
  yyleng = YYCURSOR - SCNG(yy_text);
11671
11672
52.1k
  if (EXPECTED(zend_scan_escape_string(zendlval, yytext, yyleng, '`') == SUCCESS)
11673
52.1k
   || !PARSER_MODE()) {
11674
52.1k
    RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
11675
52.1k
  } else {
11676
0
    RETURN_TOKEN(T_ERROR);
11677
0
  }
11678
52.1k
}
11679
0
#line 11680 "Zend/zend_language_scanner.c"
11680
48.2k
yy996:
11681
48.2k
    YYDEBUG(996, *YYCURSOR);
11682
48.2k
    yych = *++YYCURSOR;
11683
48.2k
    if (yych <= '_') {
11684
2.89k
      if (yych <= '@') goto yy995;
11685
2.33k
      if (yych <= 'Z') goto yy1000;
11686
443
      if (yych <= '^') goto yy995;
11687
218
      goto yy1000;
11688
45.3k
    } else {
11689
45.3k
      if (yych <= 'z') {
11690
34.5k
        if (yych <= '`') goto yy995;
11691
34.4k
        goto yy1000;
11692
34.5k
      } else {
11693
10.8k
        if (yych <= '{') goto yy1003;
11694
3.09k
        if (yych <= 0x7F) goto yy995;
11695
3.08k
        goto yy1000;
11696
3.09k
      }
11697
45.3k
    }
11698
13.3k
yy997:
11699
13.3k
    YYDEBUG(997, *YYCURSOR);
11700
13.3k
    ++YYCURSOR;
11701
13.3k
    YYDEBUG(998, *YYCURSOR);
11702
13.3k
    yyleng = YYCURSOR - SCNG(yy_text);
11703
13.3k
#line 2858 "Zend/zend_language_scanner.l"
11704
13.3k
    {
11705
13.3k
  BEGIN(ST_IN_SCRIPTING);
11706
13.3k
  RETURN_TOKEN('`');
11707
13.3k
}
11708
0
#line 11709 "Zend/zend_language_scanner.c"
11709
1.30k
yy999:
11710
1.30k
    YYDEBUG(999, *YYCURSOR);
11711
1.30k
    yych = *++YYCURSOR;
11712
1.30k
    if (yych == '$') goto yy1005;
11713
699
    goto yy995;
11714
137k
yy1000:
11715
137k
    YYDEBUG(1000, *YYCURSOR);
11716
137k
    YYMARKER = ++YYCURSOR;
11717
137k
    YYFILL(4);
11718
137k
    yych = *YYCURSOR;
11719
137k
    YYDEBUG(1001, *YYCURSOR);
11720
137k
    if (yybm[0+yych] & 128) {
11721
97.6k
      goto yy1000;
11722
97.6k
    }
11723
39.6k
    if (yych <= '>') {
11724
24.4k
      if (yych == '-') goto yy1007;
11725
24.4k
    } else {
11726
15.2k
      if (yych <= '?') goto yy1009;
11727
2.34k
      if (yych <= '@') goto yy1002;
11728
2.29k
      if (yych <= '[') goto yy1010;
11729
2.29k
    }
11730
32.3k
yy1002:
11731
32.3k
    YYDEBUG(1002, *YYCURSOR);
11732
32.3k
    yyleng = YYCURSOR - SCNG(yy_text);
11733
32.3k
#line 2417 "Zend/zend_language_scanner.l"
11734
32.3k
    {
11735
32.3k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
11736
32.3k
}
11737
0
#line 11738 "Zend/zend_language_scanner.c"
11738
7.72k
yy1003:
11739
7.72k
    YYDEBUG(1003, *YYCURSOR);
11740
7.72k
    ++YYCURSOR;
11741
7.72k
    YYDEBUG(1004, *YYCURSOR);
11742
7.72k
    yyleng = YYCURSOR - SCNG(yy_text);
11743
7.72k
#line 1981 "Zend/zend_language_scanner.l"
11744
7.72k
    {
11745
7.72k
  yy_push_state(ST_LOOKING_FOR_VARNAME);
11746
7.72k
  enter_nesting('{');
11747
7.72k
  RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES);
11748
7.72k
}
11749
0
#line 11750 "Zend/zend_language_scanner.c"
11750
607
yy1005:
11751
607
    YYDEBUG(1005, *YYCURSOR);
11752
607
    ++YYCURSOR;
11753
607
    YYDEBUG(1006, *YYCURSOR);
11754
607
    yyleng = YYCURSOR - SCNG(yy_text);
11755
607
#line 2845 "Zend/zend_language_scanner.l"
11756
607
    {
11757
607
  yy_push_state(ST_IN_SCRIPTING);
11758
607
  yyless(1);
11759
607
  enter_nesting('{');
11760
607
  RETURN_TOKEN(T_CURLY_OPEN);
11761
607
}
11762
0
#line 11763 "Zend/zend_language_scanner.c"
11763
2.14k
yy1007:
11764
2.14k
    YYDEBUG(1007, *YYCURSOR);
11765
2.14k
    yych = *++YYCURSOR;
11766
2.14k
    if (yych == '>') goto yy1012;
11767
9.25k
yy1008:
11768
9.25k
    YYDEBUG(1008, *YYCURSOR);
11769
9.25k
    YYCURSOR = YYMARKER;
11770
9.25k
    goto yy1002;
11771
12.8k
yy1009:
11772
12.8k
    YYDEBUG(1009, *YYCURSOR);
11773
12.8k
    yych = *++YYCURSOR;
11774
12.8k
    if (yych == '-') goto yy1013;
11775
7.05k
    goto yy1008;
11776
7.05k
yy1010:
11777
1.58k
    YYDEBUG(1010, *YYCURSOR);
11778
1.58k
    ++YYCURSOR;
11779
1.58k
    YYDEBUG(1011, *YYCURSOR);
11780
1.58k
    yyleng = YYCURSOR - SCNG(yy_text);
11781
1.58k
#line 2411 "Zend/zend_language_scanner.l"
11782
1.58k
    {
11783
1.58k
  yyless(yyleng - 1);
11784
1.58k
  yy_push_state(ST_VAR_OFFSET);
11785
1.58k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
11786
1.58k
}
11787
0
#line 11788 "Zend/zend_language_scanner.c"
11788
1.41k
yy1012:
11789
1.41k
    YYDEBUG(1012, *YYCURSOR);
11790
1.41k
    yych = *++YYCURSOR;
11791
1.41k
    if (yych <= '_') {
11792
437
      if (yych <= '@') goto yy1008;
11793
219
      if (yych <= 'Z') goto yy1014;
11794
9
      if (yych <= '^') goto yy1008;
11795
0
      goto yy1014;
11796
973
    } else {
11797
973
      if (yych <= '`') goto yy1008;
11798
970
      if (yych <= 'z') goto yy1014;
11799
443
      if (yych <= 0x7F) goto yy1008;
11800
66
      goto yy1014;
11801
443
    }
11802
5.84k
yy1013:
11803
5.84k
    YYDEBUG(1013, *YYCURSOR);
11804
5.84k
    yych = *++YYCURSOR;
11805
5.84k
    if (yych == '>') goto yy1016;
11806
486
    goto yy1008;
11807
803
yy1014:
11808
803
    YYDEBUG(1014, *YYCURSOR);
11809
803
    ++YYCURSOR;
11810
803
    YYDEBUG(1015, *YYCURSOR);
11811
803
    yyleng = YYCURSOR - SCNG(yy_text);
11812
803
#line 2397 "Zend/zend_language_scanner.l"
11813
803
    {
11814
803
  yyless(yyleng - 3);
11815
803
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
11816
803
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
11817
803
}
11818
0
#line 11819 "Zend/zend_language_scanner.c"
11819
5.36k
yy1016:
11820
5.36k
    YYDEBUG(1016, *YYCURSOR);
11821
5.36k
    yych = *++YYCURSOR;
11822
5.36k
    if (yych <= '_') {
11823
366
      if (yych <= '@') goto yy1008;
11824
21
      if (yych <= 'Z') goto yy1017;
11825
21
      if (yych <= '^') goto yy1008;
11826
4.99k
    } else {
11827
4.99k
      if (yych <= '`') goto yy1008;
11828
4.99k
      if (yych <= 'z') goto yy1017;
11829
208
      if (yych <= 0x7F) goto yy1008;
11830
208
    }
11831
4.98k
yy1017:
11832
4.98k
    YYDEBUG(1017, *YYCURSOR);
11833
4.98k
    ++YYCURSOR;
11834
4.98k
    YYDEBUG(1018, *YYCURSOR);
11835
4.98k
    yyleng = YYCURSOR - SCNG(yy_text);
11836
4.98k
#line 2403 "Zend/zend_language_scanner.l"
11837
4.98k
    {
11838
4.98k
  yyless(yyleng - 4);
11839
4.98k
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
11840
4.98k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
11841
4.98k
}
11842
4.98k
#line 11843 "Zend/zend_language_scanner.c"
11843
4.98k
  }
11844
/* *********************************** */
11845
453k
yyc_ST_DOUBLE_QUOTES:
11846
453k
  {
11847
453k
    static const unsigned char yybm[] = {
11848
453k
        0,   0,   0,   0,   0,   0,   0,   0, 
11849
453k
        0,   0,   0,   0,   0,   0,   0,   0, 
11850
453k
        0,   0,   0,   0,   0,   0,   0,   0, 
11851
453k
        0,   0,   0,   0,   0,   0,   0,   0, 
11852
453k
        0,   0,   0,   0,   0,   0,   0,   0, 
11853
453k
        0,   0,   0,   0,   0,   0,   0,   0, 
11854
453k
      128, 128, 128, 128, 128, 128, 128, 128, 
11855
453k
      128, 128,   0,   0,   0,   0,   0,   0, 
11856
453k
        0, 128, 128, 128, 128, 128, 128, 128, 
11857
453k
      128, 128, 128, 128, 128, 128, 128, 128, 
11858
453k
      128, 128, 128, 128, 128, 128, 128, 128, 
11859
453k
      128, 128, 128,   0,   0,   0,   0, 128, 
11860
453k
        0, 128, 128, 128, 128, 128, 128, 128, 
11861
453k
      128, 128, 128, 128, 128, 128, 128, 128, 
11862
453k
      128, 128, 128, 128, 128, 128, 128, 128, 
11863
453k
      128, 128, 128,   0,   0,   0,   0,   0, 
11864
453k
      128, 128, 128, 128, 128, 128, 128, 128, 
11865
453k
      128, 128, 128, 128, 128, 128, 128, 128, 
11866
453k
      128, 128, 128, 128, 128, 128, 128, 128, 
11867
453k
      128, 128, 128, 128, 128, 128, 128, 128, 
11868
453k
      128, 128, 128, 128, 128, 128, 128, 128, 
11869
453k
      128, 128, 128, 128, 128, 128, 128, 128, 
11870
453k
      128, 128, 128, 128, 128, 128, 128, 128, 
11871
453k
      128, 128, 128, 128, 128, 128, 128, 128, 
11872
453k
      128, 128, 128, 128, 128, 128, 128, 128, 
11873
453k
      128, 128, 128, 128, 128, 128, 128, 128, 
11874
453k
      128, 128, 128, 128, 128, 128, 128, 128, 
11875
453k
      128, 128, 128, 128, 128, 128, 128, 128, 
11876
453k
      128, 128, 128, 128, 128, 128, 128, 128, 
11877
453k
      128, 128, 128, 128, 128, 128, 128, 128, 
11878
453k
      128, 128, 128, 128, 128, 128, 128, 128, 
11879
453k
      128, 128, 128, 128, 128, 128, 128, 128, 
11880
453k
    };
11881
453k
    YYDEBUG(1019, *YYCURSOR);
11882
453k
    YYFILL(2);
11883
453k
    yych = *YYCURSOR;
11884
453k
    if (yych <= '#') {
11885
72.9k
      if (yych == '"') goto yy1023;
11886
380k
    } else {
11887
380k
      if (yych <= '$') goto yy1025;
11888
179k
      if (yych == '{') goto yy1026;
11889
179k
    }
11890
221k
    YYDEBUG(1021, *YYCURSOR);
11891
221k
    ++YYCURSOR;
11892
225k
yy1022:
11893
225k
    YYDEBUG(1022, *YYCURSOR);
11894
225k
    yyleng = YYCURSOR - SCNG(yy_text);
11895
225k
#line 2864 "Zend/zend_language_scanner.l"
11896
225k
    {
11897
225k
  if (GET_DOUBLE_QUOTES_SCANNED_LENGTH()) {
11898
53.7k
    YYCURSOR += GET_DOUBLE_QUOTES_SCANNED_LENGTH() - 1;
11899
53.7k
    SET_DOUBLE_QUOTES_SCANNED_LENGTH(0);
11900
11901
53.7k
    goto double_quotes_scan_done;
11902
53.7k
  }
11903
11904
172k
  if (YYCURSOR > YYLIMIT) {
11905
4.21k
    RETURN_END_TOKEN;
11906
4.21k
  }
11907
167k
  if (yytext[0] == '\\' && YYCURSOR < YYLIMIT) {
11908
4.63k
    YYCURSOR++;
11909
4.63k
  }
11910
11911
3.60M
  while (YYCURSOR < YYLIMIT) {
11912
3.60M
    switch (*YYCURSOR++) {
11913
24.0k
      case '"':
11914
24.0k
        break;
11915
173k
      case '$':
11916
173k
        if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
11917
141k
          break;
11918
141k
        }
11919
31.7k
        continue;
11920
31.7k
      case '{':
11921
15.6k
        if (*YYCURSOR == '$') {
11922
1.02k
          break;
11923
1.02k
        }
11924
14.6k
        continue;
11925
14.6k
      case '\\':
11926
13.2k
        if (YYCURSOR < YYLIMIT) {
11927
13.1k
          YYCURSOR++;
11928
13.1k
        }
11929
13.2k
        ZEND_FALLTHROUGH;
11930
3.39M
      default:
11931
3.39M
        continue;
11932
3.60M
    }
11933
11934
166k
    YYCURSOR--;
11935
166k
    break;
11936
3.60M
  }
11937
11938
221k
double_quotes_scan_done:
11939
221k
  yyleng = YYCURSOR - SCNG(yy_text);
11940
11941
221k
  if (EXPECTED(zend_scan_escape_string(zendlval, yytext, yyleng, '"') == SUCCESS)
11942
221k
   || !PARSER_MODE()) {
11943
221k
    RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
11944
221k
  } else {
11945
0
    RETURN_TOKEN(T_ERROR);
11946
0
  }
11947
221k
}
11948
0
#line 11949 "Zend/zend_language_scanner.c"
11949
26.4k
yy1023:
11950
26.4k
    YYDEBUG(1023, *YYCURSOR);
11951
26.4k
    ++YYCURSOR;
11952
26.4k
    YYDEBUG(1024, *YYCURSOR);
11953
26.4k
    yyleng = YYCURSOR - SCNG(yy_text);
11954
26.4k
#line 2853 "Zend/zend_language_scanner.l"
11955
26.4k
    {
11956
26.4k
  BEGIN(ST_IN_SCRIPTING);
11957
26.4k
  RETURN_TOKEN('"');
11958
26.4k
}
11959
0
#line 11960 "Zend/zend_language_scanner.c"
11960
201k
yy1025:
11961
201k
    YYDEBUG(1025, *YYCURSOR);
11962
201k
    yych = *++YYCURSOR;
11963
201k
    if (yych <= '_') {
11964
13.2k
      if (yych <= '@') goto yy1022;
11965
10.6k
      if (yych <= 'Z') goto yy1027;
11966
469
      if (yych <= '^') goto yy1022;
11967
384
      goto yy1027;
11968
187k
    } else {
11969
187k
      if (yych <= 'z') {
11970
152k
        if (yych <= '`') goto yy1022;
11971
152k
        goto yy1027;
11972
152k
      } else {
11973
35.6k
        if (yych <= '{') goto yy1030;
11974
10.0k
        if (yych <= 0x7F) goto yy1022;
11975
10.0k
        goto yy1027;
11976
10.0k
      }
11977
187k
    }
11978
3.85k
yy1026:
11979
3.85k
    YYDEBUG(1026, *YYCURSOR);
11980
3.85k
    yych = *++YYCURSOR;
11981
3.85k
    if (yych == '$') goto yy1032;
11982
1.24k
    goto yy1022;
11983
551k
yy1027:
11984
551k
    YYDEBUG(1027, *YYCURSOR);
11985
551k
    YYMARKER = ++YYCURSOR;
11986
551k
    YYFILL(4);
11987
551k
    yych = *YYCURSOR;
11988
551k
    YYDEBUG(1028, *YYCURSOR);
11989
551k
    if (yybm[0+yych] & 128) {
11990
379k
      goto yy1027;
11991
379k
    }
11992
172k
    if (yych <= '>') {
11993
76.4k
      if (yych == '-') goto yy1034;
11994
96.4k
    } else {
11995
96.4k
      if (yych <= '?') goto yy1036;
11996
8.29k
      if (yych <= '@') goto yy1029;
11997
8.05k
      if (yych <= '[') goto yy1037;
11998
8.05k
    }
11999
131k
yy1029:
12000
131k
    YYDEBUG(1029, *YYCURSOR);
12001
131k
    yyleng = YYCURSOR - SCNG(yy_text);
12002
131k
#line 2417 "Zend/zend_language_scanner.l"
12003
131k
    {
12004
131k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12005
131k
}
12006
0
#line 12007 "Zend/zend_language_scanner.c"
12007
25.5k
yy1030:
12008
25.5k
    YYDEBUG(1030, *YYCURSOR);
12009
25.5k
    ++YYCURSOR;
12010
25.5k
    YYDEBUG(1031, *YYCURSOR);
12011
25.5k
    yyleng = YYCURSOR - SCNG(yy_text);
12012
25.5k
#line 1981 "Zend/zend_language_scanner.l"
12013
25.5k
    {
12014
25.5k
  yy_push_state(ST_LOOKING_FOR_VARNAME);
12015
25.5k
  enter_nesting('{');
12016
25.5k
  RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES);
12017
25.5k
}
12018
0
#line 12019 "Zend/zend_language_scanner.c"
12019
2.61k
yy1032:
12020
2.61k
    YYDEBUG(1032, *YYCURSOR);
12021
2.61k
    ++YYCURSOR;
12022
2.61k
    YYDEBUG(1033, *YYCURSOR);
12023
2.61k
    yyleng = YYCURSOR - SCNG(yy_text);
12024
2.61k
#line 2845 "Zend/zend_language_scanner.l"
12025
2.61k
    {
12026
2.61k
  yy_push_state(ST_IN_SCRIPTING);
12027
2.61k
  yyless(1);
12028
2.61k
  enter_nesting('{');
12029
2.61k
  RETURN_TOKEN(T_CURLY_OPEN);
12030
2.61k
}
12031
0
#line 12032 "Zend/zend_language_scanner.c"
12032
5.41k
yy1034:
12033
5.41k
    YYDEBUG(1034, *YYCURSOR);
12034
5.41k
    yych = *++YYCURSOR;
12035
5.41k
    if (yych == '>') goto yy1039;
12036
53.4k
yy1035:
12037
53.4k
    YYDEBUG(1035, *YYCURSOR);
12038
53.4k
    YYCURSOR = YYMARKER;
12039
53.4k
    goto yy1029;
12040
88.1k
yy1036:
12041
88.1k
    YYDEBUG(1036, *YYCURSOR);
12042
88.1k
    yych = *++YYCURSOR;
12043
88.1k
    if (yych == '-') goto yy1040;
12044
48.4k
    goto yy1035;
12045
48.4k
yy1037:
12046
1.71k
    YYDEBUG(1037, *YYCURSOR);
12047
1.71k
    ++YYCURSOR;
12048
1.71k
    YYDEBUG(1038, *YYCURSOR);
12049
1.71k
    yyleng = YYCURSOR - SCNG(yy_text);
12050
1.71k
#line 2411 "Zend/zend_language_scanner.l"
12051
1.71k
    {
12052
1.71k
  yyless(yyleng - 1);
12053
1.71k
  yy_push_state(ST_VAR_OFFSET);
12054
1.71k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12055
1.71k
}
12056
0
#line 12057 "Zend/zend_language_scanner.c"
12057
4.03k
yy1039:
12058
4.03k
    YYDEBUG(1039, *YYCURSOR);
12059
4.03k
    yych = *++YYCURSOR;
12060
4.03k
    if (yych <= '_') {
12061
487
      if (yych <= '@') goto yy1035;
12062
118
      if (yych <= 'Z') goto yy1041;
12063
71
      if (yych <= '^') goto yy1035;
12064
53
      goto yy1041;
12065
3.55k
    } else {
12066
3.55k
      if (yych <= '`') goto yy1035;
12067
3.55k
      if (yych <= 'z') goto yy1041;
12068
1.12k
      if (yych <= 0x7F) goto yy1035;
12069
80
      goto yy1041;
12070
1.12k
    }
12071
39.6k
yy1040:
12072
39.6k
    YYDEBUG(1040, *YYCURSOR);
12073
39.6k
    yych = *++YYCURSOR;
12074
39.6k
    if (yych == '>') goto yy1043;
12075
803
    goto yy1035;
12076
2.60k
yy1041:
12077
2.60k
    YYDEBUG(1041, *YYCURSOR);
12078
2.60k
    ++YYCURSOR;
12079
2.60k
    YYDEBUG(1042, *YYCURSOR);
12080
2.60k
    yyleng = YYCURSOR - SCNG(yy_text);
12081
2.60k
#line 2397 "Zend/zend_language_scanner.l"
12082
2.60k
    {
12083
2.60k
  yyless(yyleng - 3);
12084
2.60k
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
12085
2.60k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12086
2.60k
}
12087
0
#line 12088 "Zend/zend_language_scanner.c"
12088
38.8k
yy1043:
12089
38.8k
    YYDEBUG(1043, *YYCURSOR);
12090
38.8k
    yych = *++YYCURSOR;
12091
38.8k
    if (yych <= '_') {
12092
1.10k
      if (yych <= '@') goto yy1035;
12093
123
      if (yych <= 'Z') goto yy1044;
12094
96
      if (yych <= '^') goto yy1035;
12095
37.7k
    } else {
12096
37.7k
      if (yych <= '`') goto yy1035;
12097
37.6k
      if (yych <= 'z') goto yy1044;
12098
572
      if (yych <= 0x7F) goto yy1035;
12099
572
    }
12100
37.5k
yy1044:
12101
37.5k
    YYDEBUG(1044, *YYCURSOR);
12102
37.5k
    ++YYCURSOR;
12103
37.5k
    YYDEBUG(1045, *YYCURSOR);
12104
37.5k
    yyleng = YYCURSOR - SCNG(yy_text);
12105
37.5k
#line 2403 "Zend/zend_language_scanner.l"
12106
37.5k
    {
12107
37.5k
  yyless(yyleng - 4);
12108
37.5k
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
12109
37.5k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12110
37.5k
}
12111
37.5k
#line 12112 "Zend/zend_language_scanner.c"
12112
37.5k
  }
12113
/* *********************************** */
12114
2.58M
yyc_ST_HEREDOC:
12115
2.58M
  {
12116
2.58M
    static const unsigned char yybm[] = {
12117
2.58M
        0,   0,   0,   0,   0,   0,   0,   0, 
12118
2.58M
        0,   0,   0,   0,   0,   0,   0,   0, 
12119
2.58M
        0,   0,   0,   0,   0,   0,   0,   0, 
12120
2.58M
        0,   0,   0,   0,   0,   0,   0,   0, 
12121
2.58M
        0,   0,   0,   0,   0,   0,   0,   0, 
12122
2.58M
        0,   0,   0,   0,   0,   0,   0,   0, 
12123
2.58M
      128, 128, 128, 128, 128, 128, 128, 128, 
12124
2.58M
      128, 128,   0,   0,   0,   0,   0,   0, 
12125
2.58M
        0, 128, 128, 128, 128, 128, 128, 128, 
12126
2.58M
      128, 128, 128, 128, 128, 128, 128, 128, 
12127
2.58M
      128, 128, 128, 128, 128, 128, 128, 128, 
12128
2.58M
      128, 128, 128,   0,   0,   0,   0, 128, 
12129
2.58M
        0, 128, 128, 128, 128, 128, 128, 128, 
12130
2.58M
      128, 128, 128, 128, 128, 128, 128, 128, 
12131
2.58M
      128, 128, 128, 128, 128, 128, 128, 128, 
12132
2.58M
      128, 128, 128,   0,   0,   0,   0,   0, 
12133
2.58M
      128, 128, 128, 128, 128, 128, 128, 128, 
12134
2.58M
      128, 128, 128, 128, 128, 128, 128, 128, 
12135
2.58M
      128, 128, 128, 128, 128, 128, 128, 128, 
12136
2.58M
      128, 128, 128, 128, 128, 128, 128, 128, 
12137
2.58M
      128, 128, 128, 128, 128, 128, 128, 128, 
12138
2.58M
      128, 128, 128, 128, 128, 128, 128, 128, 
12139
2.58M
      128, 128, 128, 128, 128, 128, 128, 128, 
12140
2.58M
      128, 128, 128, 128, 128, 128, 128, 128, 
12141
2.58M
      128, 128, 128, 128, 128, 128, 128, 128, 
12142
2.58M
      128, 128, 128, 128, 128, 128, 128, 128, 
12143
2.58M
      128, 128, 128, 128, 128, 128, 128, 128, 
12144
2.58M
      128, 128, 128, 128, 128, 128, 128, 128, 
12145
2.58M
      128, 128, 128, 128, 128, 128, 128, 128, 
12146
2.58M
      128, 128, 128, 128, 128, 128, 128, 128, 
12147
2.58M
      128, 128, 128, 128, 128, 128, 128, 128, 
12148
2.58M
      128, 128, 128, 128, 128, 128, 128, 128, 
12149
2.58M
    };
12150
2.58M
    YYDEBUG(1046, *YYCURSOR);
12151
2.58M
    YYFILL(2);
12152
2.58M
    yych = *YYCURSOR;
12153
2.58M
    if (yych == '$') goto yy1050;
12154
723k
    if (yych == '{') goto yy1051;
12155
674k
    YYDEBUG(1048, *YYCURSOR);
12156
674k
    ++YYCURSOR;
12157
830k
yy1049:
12158
830k
    YYDEBUG(1049, *YYCURSOR);
12159
830k
    yyleng = YYCURSOR - SCNG(yy_text);
12160
830k
#line 2964 "Zend/zend_language_scanner.l"
12161
830k
    {
12162
830k
  zend_heredoc_label *heredoc_label = zend_ptr_stack_top(&SCNG(heredoc_label_stack));
12163
830k
  int newline = 0, indentation = 0, spacing = 0;
12164
12165
830k
  if (YYCURSOR > YYLIMIT) {
12166
8.89k
    RETURN_END_TOKEN;
12167
8.89k
  }
12168
12169
821k
  YYCURSOR--;
12170
12171
18.2M
  while (YYCURSOR < YYLIMIT) {
12172
18.2M
    switch (*YYCURSOR++) {
12173
113k
      case '\r':
12174
113k
        if (*YYCURSOR == '\n') {
12175
10.0k
          YYCURSOR++;
12176
10.0k
        }
12177
113k
        ZEND_FALLTHROUGH;
12178
1.16M
      case '\n':
12179
1.16M
        indentation = spacing = 0;
12180
12181
1.56M
        while (YYCURSOR < YYLIMIT && (*YYCURSOR == ' ' || *YYCURSOR == '\t')) {
12182
402k
          if (*YYCURSOR == '\t') {
12183
2.82k
            spacing |= HEREDOC_USING_TABS;
12184
399k
          } else {
12185
399k
            spacing |= HEREDOC_USING_SPACES;
12186
399k
          }
12187
402k
          ++YYCURSOR;
12188
402k
          ++indentation;
12189
402k
        }
12190
12191
1.16M
        if (YYCURSOR == YYLIMIT) {
12192
833
          yyleng = YYCURSOR - SCNG(yy_text);
12193
833
          HANDLE_NEWLINES(yytext, yyleng);
12194
833
          ZVAL_NULL(zendlval);
12195
833
          RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
12196
833
        }
12197
12198
        /* Check for ending label on the next line */
12199
1.16M
        if (IS_LABEL_START(*YYCURSOR) && heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, heredoc_label->label, heredoc_label->length)) {
12200
13.2k
          if (IS_LABEL_SUCCESSOR(YYCURSOR[heredoc_label->length])) {
12201
5.89k
            continue;
12202
5.89k
          }
12203
12204
7.31k
          if (spacing == (HEREDOC_USING_SPACES | HEREDOC_USING_TABS)) {
12205
6
            zend_throw_exception(zend_ce_parse_error, "Invalid indentation - tabs and spaces cannot be mixed", 0);
12206
6
            if (PARSER_MODE()) {
12207
3
              RETURN_TOKEN(T_ERROR);
12208
3
            }
12209
6
          }
12210
12211
          /* newline before label will be subtracted from returned text, but
12212
           * yyleng/yytext will include it, for zend_highlight/strip, tokenizer, etc. */
12213
7.30k
          if (YYCURSOR[-indentation - 2] == '\r' && YYCURSOR[-indentation - 1] == '\n') {
12214
46
            newline = 2; /* Windows newline */
12215
7.26k
          } else {
12216
7.26k
            newline = 1;
12217
7.26k
          }
12218
12219
7.30k
          CG(increment_lineno) = 1; /* For newline before label */
12220
12221
7.30k
          if (SCNG(heredoc_scan_ahead)) {
12222
5.55k
            SCNG(heredoc_indentation) = indentation;
12223
5.55k
            SCNG(heredoc_indentation_uses_spaces) = (spacing == HEREDOC_USING_SPACES);
12224
5.55k
          } else {
12225
1.75k
            YYCURSOR -= indentation;
12226
1.75k
          }
12227
12228
7.30k
          BEGIN(ST_END_HEREDOC);
12229
12230
7.30k
          goto heredoc_scan_done;
12231
7.31k
        }
12232
1.15M
        continue;
12233
1.53M
      case '$':
12234
1.53M
        if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
12235
786k
          break;
12236
786k
        }
12237
750k
        continue;
12238
750k
      case '{':
12239
239k
        if (*YYCURSOR == '$') {
12240
20.1k
          break;
12241
20.1k
        }
12242
219k
        continue;
12243
219k
      case '\\':
12244
46.0k
        if (YYCURSOR < YYLIMIT && *YYCURSOR != '\n' && *YYCURSOR != '\r') {
12245
44.0k
          YYCURSOR++;
12246
44.0k
        }
12247
46.0k
        ZEND_FALLTHROUGH;
12248
15.2M
      default:
12249
15.2M
        continue;
12250
18.2M
    }
12251
12252
806k
    YYCURSOR--;
12253
806k
    break;
12254
18.2M
  }
12255
12256
820k
heredoc_scan_done:
12257
12258
820k
  yyleng = YYCURSOR - SCNG(yy_text);
12259
820k
  ZVAL_STRINGL(zendlval, yytext, yyleng - newline);
12260
12261
820k
  if (!SCNG(heredoc_scan_ahead) && !EG(exception) && PARSER_MODE()) {
12262
52.5k
    bool newline_at_start = *(yytext - 1) == '\n' || *(yytext - 1) == '\r';
12263
52.5k
    zend_string *copy = Z_STR_P(zendlval);
12264
12265
52.5k
    if (!strip_multiline_string_indentation(
12266
52.5k
        zendlval, heredoc_label->indentation, heredoc_label->indentation_uses_spaces,
12267
52.5k
        newline_at_start, newline != 0)) {
12268
27
      RETURN_TOKEN(T_ERROR);
12269
27
    }
12270
12271
52.5k
    if (UNEXPECTED(zend_scan_escape_string(zendlval, ZSTR_VAL(copy), ZSTR_LEN(copy), 0) != SUCCESS)) {
12272
0
      zend_string_efree(copy);
12273
0
      RETURN_TOKEN(T_ERROR);
12274
0
    }
12275
12276
52.5k
    zend_string_efree(copy);
12277
768k
  } else {
12278
768k
    HANDLE_NEWLINES(yytext, yyleng - newline);
12279
768k
  }
12280
12281
820k
  RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
12282
820k
}
12283
0
#line 12284 "Zend/zend_language_scanner.c"
12284
1.86M
yy1050:
12285
1.86M
    YYDEBUG(1050, *YYCURSOR);
12286
1.86M
    yych = *++YYCURSOR;
12287
1.86M
    if (yych <= '_') {
12288
136k
      if (yych <= '@') goto yy1049;
12289
13.9k
      if (yych <= 'Z') goto yy1052;
12290
7.51k
      if (yych <= '^') goto yy1049;
12291
1.17k
      goto yy1052;
12292
1.72M
    } else {
12293
1.72M
      if (yych <= 'z') {
12294
368k
        if (yych <= '`') goto yy1049;
12295
368k
        goto yy1052;
12296
1.35M
      } else {
12297
1.35M
        if (yych <= '{') goto yy1055;
12298
94.4k
        if (yych <= 0x7F) goto yy1049;
12299
92.9k
        goto yy1052;
12300
94.4k
      }
12301
1.72M
    }
12302
48.4k
yy1051:
12303
48.4k
    YYDEBUG(1051, *YYCURSOR);
12304
48.4k
    yych = *++YYCURSOR;
12305
48.4k
    if (yych == '$') goto yy1057;
12306
25.1k
    goto yy1049;
12307
1.55M
yy1052:
12308
1.55M
    YYDEBUG(1052, *YYCURSOR);
12309
1.55M
    YYMARKER = ++YYCURSOR;
12310
1.55M
    YYFILL(4);
12311
1.55M
    yych = *YYCURSOR;
12312
1.55M
    YYDEBUG(1053, *YYCURSOR);
12313
1.55M
    if (yybm[0+yych] & 128) {
12314
1.08M
      goto yy1052;
12315
1.08M
    }
12316
469k
    if (yych <= '>') {
12317
339k
      if (yych == '-') goto yy1059;
12318
339k
    } else {
12319
129k
      if (yych <= '?') goto yy1061;
12320
36.6k
      if (yych <= '@') goto yy1054;
12321
35.0k
      if (yych <= '[') goto yy1062;
12322
35.0k
    }
12323
412k
yy1054:
12324
412k
    YYDEBUG(1054, *YYCURSOR);
12325
412k
    yyleng = YYCURSOR - SCNG(yy_text);
12326
412k
#line 2417 "Zend/zend_language_scanner.l"
12327
412k
    {
12328
412k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12329
412k
}
12330
0
#line 12331 "Zend/zend_language_scanner.c"
12331
1.26M
yy1055:
12332
1.26M
    YYDEBUG(1055, *YYCURSOR);
12333
1.26M
    ++YYCURSOR;
12334
1.26M
    YYDEBUG(1056, *YYCURSOR);
12335
1.26M
    yyleng = YYCURSOR - SCNG(yy_text);
12336
1.26M
#line 1981 "Zend/zend_language_scanner.l"
12337
1.26M
    {
12338
1.26M
  yy_push_state(ST_LOOKING_FOR_VARNAME);
12339
1.26M
  enter_nesting('{');
12340
1.26M
  RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES);
12341
1.26M
}
12342
0
#line 12343 "Zend/zend_language_scanner.c"
12343
23.3k
yy1057:
12344
23.3k
    YYDEBUG(1057, *YYCURSOR);
12345
23.3k
    ++YYCURSOR;
12346
23.3k
    YYDEBUG(1058, *YYCURSOR);
12347
23.3k
    yyleng = YYCURSOR - SCNG(yy_text);
12348
23.3k
#line 2845 "Zend/zend_language_scanner.l"
12349
23.3k
    {
12350
23.3k
  yy_push_state(ST_IN_SCRIPTING);
12351
23.3k
  yyless(1);
12352
23.3k
  enter_nesting('{');
12353
23.3k
  RETURN_TOKEN(T_CURLY_OPEN);
12354
23.3k
}
12355
0
#line 12356 "Zend/zend_language_scanner.c"
12356
13.8k
yy1059:
12357
13.8k
    YYDEBUG(1059, *YYCURSOR);
12358
13.8k
    yych = *++YYCURSOR;
12359
13.8k
    if (yych == '>') goto yy1064;
12360
61.9k
yy1060:
12361
61.9k
    YYDEBUG(1060, *YYCURSOR);
12362
61.9k
    YYCURSOR = YYMARKER;
12363
61.9k
    goto yy1054;
12364
93.2k
yy1061:
12365
93.2k
    YYDEBUG(1061, *YYCURSOR);
12366
93.2k
    yych = *++YYCURSOR;
12367
93.2k
    if (yych == '-') goto yy1065;
12368
48.9k
    goto yy1060;
12369
48.9k
yy1062:
12370
12.0k
    YYDEBUG(1062, *YYCURSOR);
12371
12.0k
    ++YYCURSOR;
12372
12.0k
    YYDEBUG(1063, *YYCURSOR);
12373
12.0k
    yyleng = YYCURSOR - SCNG(yy_text);
12374
12.0k
#line 2411 "Zend/zend_language_scanner.l"
12375
12.0k
    {
12376
12.0k
  yyless(yyleng - 1);
12377
12.0k
  yy_push_state(ST_VAR_OFFSET);
12378
12.0k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12379
12.0k
}
12380
0
#line 12381 "Zend/zend_language_scanner.c"
12381
10.3k
yy1064:
12382
10.3k
    YYDEBUG(1064, *YYCURSOR);
12383
10.3k
    yych = *++YYCURSOR;
12384
10.3k
    if (yych <= '_') {
12385
1.53k
      if (yych <= '@') goto yy1060;
12386
1.19k
      if (yych <= 'Z') goto yy1066;
12387
432
      if (yych <= '^') goto yy1060;
12388
423
      goto yy1066;
12389
8.83k
    } else {
12390
8.83k
      if (yych <= '`') goto yy1060;
12391
8.75k
      if (yych <= 'z') goto yy1066;
12392
1.36k
      if (yych <= 0x7F) goto yy1060;
12393
608
      goto yy1066;
12394
1.36k
    }
12395
44.3k
yy1065:
12396
44.3k
    YYDEBUG(1065, *YYCURSOR);
12397
44.3k
    yych = *++YYCURSOR;
12398
44.3k
    if (yych == '>') goto yy1068;
12399
2.01k
    goto yy1060;
12400
9.18k
yy1066:
12401
9.18k
    YYDEBUG(1066, *YYCURSOR);
12402
9.18k
    ++YYCURSOR;
12403
9.18k
    YYDEBUG(1067, *YYCURSOR);
12404
9.18k
    yyleng = YYCURSOR - SCNG(yy_text);
12405
9.18k
#line 2397 "Zend/zend_language_scanner.l"
12406
9.18k
    {
12407
9.18k
  yyless(yyleng - 3);
12408
9.18k
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
12409
9.18k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12410
9.18k
}
12411
0
#line 12412 "Zend/zend_language_scanner.c"
12412
42.3k
yy1068:
12413
42.3k
    YYDEBUG(1068, *YYCURSOR);
12414
42.3k
    yych = *++YYCURSOR;
12415
42.3k
    if (yych <= '_') {
12416
6.77k
      if (yych <= '@') goto yy1060;
12417
685
      if (yych <= 'Z') goto yy1069;
12418
70
      if (yych <= '^') goto yy1060;
12419
35.5k
    } else {
12420
35.5k
      if (yych <= '`') goto yy1060;
12421
35.4k
      if (yych <= 'z') goto yy1069;
12422
327
      if (yych <= 0x7F) goto yy1060;
12423
327
    }
12424
35.9k
yy1069:
12425
35.9k
    YYDEBUG(1069, *YYCURSOR);
12426
35.9k
    ++YYCURSOR;
12427
35.9k
    YYDEBUG(1070, *YYCURSOR);
12428
35.9k
    yyleng = YYCURSOR - SCNG(yy_text);
12429
35.9k
#line 2403 "Zend/zend_language_scanner.l"
12430
35.9k
    {
12431
35.9k
  yyless(yyleng - 4);
12432
35.9k
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
12433
35.9k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12434
35.9k
}
12435
35.9k
#line 12436 "Zend/zend_language_scanner.c"
12436
35.9k
  }
12437
/* *********************************** */
12438
1.29M
yyc_ST_LOOKING_FOR_VARNAME:
12439
1.29M
  {
12440
1.29M
    static const unsigned char yybm[] = {
12441
1.29M
        0,   0,   0,   0,   0,   0,   0,   0, 
12442
1.29M
        0,   0,   0,   0,   0,   0,   0,   0, 
12443
1.29M
        0,   0,   0,   0,   0,   0,   0,   0, 
12444
1.29M
        0,   0,   0,   0,   0,   0,   0,   0, 
12445
1.29M
        0,   0,   0,   0,   0,   0,   0,   0, 
12446
1.29M
        0,   0,   0,   0,   0,   0,   0,   0, 
12447
1.29M
      128, 128, 128, 128, 128, 128, 128, 128, 
12448
1.29M
      128, 128,   0,   0,   0,   0,   0,   0, 
12449
1.29M
        0, 128, 128, 128, 128, 128, 128, 128, 
12450
1.29M
      128, 128, 128, 128, 128, 128, 128, 128, 
12451
1.29M
      128, 128, 128, 128, 128, 128, 128, 128, 
12452
1.29M
      128, 128, 128,   0,   0,   0,   0, 128, 
12453
1.29M
        0, 128, 128, 128, 128, 128, 128, 128, 
12454
1.29M
      128, 128, 128, 128, 128, 128, 128, 128, 
12455
1.29M
      128, 128, 128, 128, 128, 128, 128, 128, 
12456
1.29M
      128, 128, 128,   0,   0,   0,   0,   0, 
12457
1.29M
      128, 128, 128, 128, 128, 128, 128, 128, 
12458
1.29M
      128, 128, 128, 128, 128, 128, 128, 128, 
12459
1.29M
      128, 128, 128, 128, 128, 128, 128, 128, 
12460
1.29M
      128, 128, 128, 128, 128, 128, 128, 128, 
12461
1.29M
      128, 128, 128, 128, 128, 128, 128, 128, 
12462
1.29M
      128, 128, 128, 128, 128, 128, 128, 128, 
12463
1.29M
      128, 128, 128, 128, 128, 128, 128, 128, 
12464
1.29M
      128, 128, 128, 128, 128, 128, 128, 128, 
12465
1.29M
      128, 128, 128, 128, 128, 128, 128, 128, 
12466
1.29M
      128, 128, 128, 128, 128, 128, 128, 128, 
12467
1.29M
      128, 128, 128, 128, 128, 128, 128, 128, 
12468
1.29M
      128, 128, 128, 128, 128, 128, 128, 128, 
12469
1.29M
      128, 128, 128, 128, 128, 128, 128, 128, 
12470
1.29M
      128, 128, 128, 128, 128, 128, 128, 128, 
12471
1.29M
      128, 128, 128, 128, 128, 128, 128, 128, 
12472
1.29M
      128, 128, 128, 128, 128, 128, 128, 128, 
12473
1.29M
    };
12474
1.29M
    YYDEBUG(1071, *YYCURSOR);
12475
1.29M
    YYFILL(2);
12476
1.29M
    yych = *YYCURSOR;
12477
1.29M
    if (yych <= '_') {
12478
1.27M
      if (yych <= '@') goto yy1073;
12479
2.73k
      if (yych <= 'Z') goto yy1075;
12480
441
      if (yych >= '_') goto yy1075;
12481
26.0k
    } else {
12482
26.0k
      if (yych <= '`') goto yy1073;
12483
25.5k
      if (yych <= 'z') goto yy1075;
12484
19.1k
      if (yych >= 0x80) goto yy1075;
12485
19.1k
    }
12486
1.27M
yy1073:
12487
1.27M
    YYDEBUG(1073, *YYCURSOR);
12488
1.27M
    ++YYCURSOR;
12489
1.29M
yy1074:
12490
1.29M
    YYDEBUG(1074, *YYCURSOR);
12491
1.29M
    yyleng = YYCURSOR - SCNG(yy_text);
12492
1.29M
#line 2004 "Zend/zend_language_scanner.l"
12493
1.29M
    {
12494
1.29M
  yyless(0);
12495
1.29M
  yy_pop_state();
12496
1.29M
  yy_push_state(ST_IN_SCRIPTING);
12497
1.29M
  goto restart;
12498
1.27M
}
12499
0
#line 12500 "Zend/zend_language_scanner.c"
12500
25.2k
yy1075:
12501
25.2k
    YYDEBUG(1075, *YYCURSOR);
12502
25.2k
    yych = *(YYMARKER = ++YYCURSOR);
12503
25.2k
    if (yych <= '_') {
12504
15.0k
      if (yych <= '@') {
12505
13.3k
        if (yych <= '/') goto yy1074;
12506
10.6k
        if (yych <= '9') goto yy1077;
12507
10.4k
        goto yy1074;
12508
10.6k
      } else {
12509
1.75k
        if (yych <= '[') goto yy1077;
12510
171
        if (yych <= '^') goto yy1074;
12511
153
        goto yy1077;
12512
171
      }
12513
15.0k
    } else {
12514
10.1k
      if (yych <= '|') {
12515
4.70k
        if (yych <= '`') goto yy1074;
12516
4.63k
        if (yych <= 'z') goto yy1077;
12517
30
        goto yy1074;
12518
5.47k
      } else {
12519
5.47k
        if (yych <= '}') goto yy1077;
12520
5.42k
        if (yych <= 0x7F) goto yy1074;
12521
5.39k
        goto yy1077;
12522
5.42k
      }
12523
10.1k
    }
12524
86.5k
yy1076:
12525
86.5k
    YYDEBUG(1076, *YYCURSOR);
12526
86.5k
    ++YYCURSOR;
12527
86.5k
    YYFILL(1);
12528
86.5k
    yych = *YYCURSOR;
12529
98.5k
yy1077:
12530
98.5k
    YYDEBUG(1077, *YYCURSOR);
12531
98.5k
    if (yybm[0+yych] & 128) {
12532
86.5k
      goto yy1076;
12533
86.5k
    }
12534
11.9k
    if (yych <= '@') goto yy1078;
12535
888
    if (yych <= '[') goto yy1079;
12536
828
    if (yych == '}') goto yy1079;
12537
11.7k
yy1078:
12538
11.7k
    YYDEBUG(1078, *YYCURSOR);
12539
11.7k
    YYCURSOR = YYMARKER;
12540
11.7k
    goto yy1074;
12541
131
yy1079:
12542
131
    YYDEBUG(1079, *YYCURSOR);
12543
131
    ++YYCURSOR;
12544
131
    YYDEBUG(1080, *YYCURSOR);
12545
131
    yyleng = YYCURSOR - SCNG(yy_text);
12546
131
#line 1996 "Zend/zend_language_scanner.l"
12547
131
    {
12548
131
  yyless(yyleng - 1);
12549
131
  yy_pop_state();
12550
131
  yy_push_state(ST_IN_SCRIPTING);
12551
131
  RETURN_TOKEN_WITH_STR(T_STRING_VARNAME, 0);
12552
131
}
12553
131
#line 12554 "Zend/zend_language_scanner.c"
12554
131
  }
12555
/* *********************************** */
12556
227k
yyc_ST_VAR_OFFSET:
12557
227k
  {
12558
227k
    static const unsigned char yybm[] = {
12559
227k
        0,   0,   0,   0,   0,   0,   0,   0, 
12560
227k
        0,   0,   0,   0,   0,   0,   0,   0, 
12561
227k
        0,   0,   0,   0,   0,   0,   0,   0, 
12562
227k
        0,   0,   0,   0,   0,   0,   0,   0, 
12563
227k
        0,   0,   0,   0,   0,   0,   0,   0, 
12564
227k
        0,   0,   0,   0,   0,   0,   0,   0, 
12565
227k
      248, 248, 216, 216, 216, 216, 216, 216, 
12566
227k
      152, 152,   0,   0,   0,   0,   0,   0, 
12567
227k
        0, 144, 144, 144, 144, 144, 144,  16, 
12568
227k
       16,  16,  16,  16,  16,  16,  16,  16, 
12569
227k
       16,  16,  16,  16,  16,  16,  16,  16, 
12570
227k
       16,  16,  16,   0,   0,   0,   0,  16, 
12571
227k
        0, 144, 144, 144, 144, 144, 144,  16, 
12572
227k
       16,  16,  16,  16,  16,  16,  16,  16, 
12573
227k
       16,  16,  16,  16,  16,  16,  16,  16, 
12574
227k
       16,  16,  16,   0,   0,   0,   0,   0, 
12575
227k
       16,  16,  16,  16,  16,  16,  16,  16, 
12576
227k
       16,  16,  16,  16,  16,  16,  16,  16, 
12577
227k
       16,  16,  16,  16,  16,  16,  16,  16, 
12578
227k
       16,  16,  16,  16,  16,  16,  16,  16, 
12579
227k
       16,  16,  16,  16,  16,  16,  16,  16, 
12580
227k
       16,  16,  16,  16,  16,  16,  16,  16, 
12581
227k
       16,  16,  16,  16,  16,  16,  16,  16, 
12582
227k
       16,  16,  16,  16,  16,  16,  16,  16, 
12583
227k
       16,  16,  16,  16,  16,  16,  16,  16, 
12584
227k
       16,  16,  16,  16,  16,  16,  16,  16, 
12585
227k
       16,  16,  16,  16,  16,  16,  16,  16, 
12586
227k
       16,  16,  16,  16,  16,  16,  16,  16, 
12587
227k
       16,  16,  16,  16,  16,  16,  16,  16, 
12588
227k
       16,  16,  16,  16,  16,  16,  16,  16, 
12589
227k
       16,  16,  16,  16,  16,  16,  16,  16, 
12590
227k
       16,  16,  16,  16,  16,  16,  16,  16, 
12591
227k
    };
12592
227k
    YYDEBUG(1081, *YYCURSOR);
12593
227k
    YYFILL(2);
12594
227k
    yych = *YYCURSOR;
12595
227k
    if (yych <= '0') {
12596
115k
      if (yych <= ' ') {
12597
44.4k
        if (yych <= '\f') {
12598
34.9k
          if (yych <= 0x08) goto yy1083;
12599
4.65k
          if (yych <= '\n') goto yy1085;
12600
9.53k
        } else {
12601
9.53k
          if (yych <= '\r') goto yy1085;
12602
9.36k
          if (yych >= ' ') goto yy1085;
12603
9.36k
        }
12604
70.8k
      } else {
12605
70.8k
        if (yych <= '$') {
12606
59.0k
          if (yych <= '"') goto yy1087;
12607
54.3k
          if (yych <= '#') goto yy1085;
12608
54.2k
          goto yy1089;
12609
54.3k
        } else {
12610
11.7k
          if (yych == '\'') goto yy1085;
12611
11.6k
          if (yych <= '/') goto yy1087;
12612
5.76k
          goto yy1090;
12613
11.6k
        }
12614
70.8k
      }
12615
115k
    } else {
12616
112k
      if (yych <= ']') {
12617
61.8k
        if (yych <= 'Z') {
12618
33.2k
          if (yych <= '9') goto yy1092;
12619
27.8k
          if (yych <= '@') goto yy1087;
12620
4.06k
          goto yy1094;
12621
28.5k
        } else {
12622
28.5k
          if (yych <= '[') goto yy1087;
12623
10.8k
          if (yych <= '\\') goto yy1085;
12624
10.6k
          goto yy1097;
12625
10.8k
        }
12626
61.8k
      } else {
12627
50.6k
        if (yych <= '`') {
12628
2.29k
          if (yych == '_') goto yy1094;
12629
1.38k
          goto yy1087;
12630
48.3k
        } else {
12631
48.3k
          if (yych <= 'z') goto yy1094;
12632
38.3k
          if (yych <= '~') goto yy1087;
12633
36.7k
          if (yych >= 0x80) goto yy1094;
12634
36.7k
        }
12635
50.6k
      }
12636
112k
    }
12637
70.0k
yy1083:
12638
70.0k
    YYDEBUG(1083, *YYCURSOR);
12639
70.0k
    ++YYCURSOR;
12640
70.0k
    YYDEBUG(1084, *YYCURSOR);
12641
70.0k
    yyleng = YYCURSOR - SCNG(yy_text);
12642
70.0k
#line 3179 "Zend/zend_language_scanner.l"
12643
70.0k
    {
12644
70.0k
  if (YYCURSOR > YYLIMIT) {
12645
631
    RETURN_END_TOKEN;
12646
631
  }
12647
12648
69.3k
  RETURN_TOKEN(T_BAD_CHARACTER);
12649
69.3k
}
12650
0
#line 12651 "Zend/zend_language_scanner.c"
12651
3.82k
yy1085:
12652
3.82k
    YYDEBUG(1085, *YYCURSOR);
12653
3.82k
    ++YYCURSOR;
12654
3.82k
    YYDEBUG(1086, *YYCURSOR);
12655
3.82k
    yyleng = YYCURSOR - SCNG(yy_text);
12656
3.82k
#line 2431 "Zend/zend_language_scanner.l"
12657
3.82k
    {
12658
  /* Invalid rule to return a more explicit parse error with proper line number */
12659
3.82k
  yyless(0);
12660
3.82k
  yy_pop_state();
12661
3.82k
  ZVAL_NULL(zendlval);
12662
3.82k
  RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
12663
3.82k
}
12664
0
#line 12665 "Zend/zend_language_scanner.c"
12665
55.0k
yy1087:
12666
55.0k
    YYDEBUG(1087, *YYCURSOR);
12667
55.0k
    ++YYCURSOR;
12668
98.7k
yy1088:
12669
98.7k
    YYDEBUG(1088, *YYCURSOR);
12670
98.7k
    yyleng = YYCURSOR - SCNG(yy_text);
12671
98.7k
#line 2426 "Zend/zend_language_scanner.l"
12672
98.7k
    {
12673
  /* Only '[' or '-' can be valid, but returning other tokens will allow a more explicit parse error */
12674
98.7k
  RETURN_TOKEN(yytext[0]);
12675
98.7k
}
12676
0
#line 12677 "Zend/zend_language_scanner.c"
12677
54.2k
yy1089:
12678
54.2k
    YYDEBUG(1089, *YYCURSOR);
12679
54.2k
    yych = *++YYCURSOR;
12680
54.2k
    if (yych <= '_') {
12681
44.6k
      if (yych <= '@') goto yy1088;
12682
2.76k
      if (yych <= 'Z') goto yy1099;
12683
1.09k
      if (yych <= '^') goto yy1088;
12684
69
      goto yy1099;
12685
9.62k
    } else {
12686
9.62k
      if (yych <= '`') goto yy1088;
12687
9.50k
      if (yych <= 'z') goto yy1099;
12688
2.42k
      if (yych <= 0x7F) goto yy1088;
12689
1.75k
      goto yy1099;
12690
2.42k
    }
12691
5.76k
yy1090:
12692
5.76k
    YYDEBUG(1090, *YYCURSOR);
12693
5.76k
    yyaccept = 0;
12694
5.76k
    yych = *(YYMARKER = ++YYCURSOR);
12695
5.76k
    if (yych <= 'X') {
12696
3.84k
      if (yych <= 'B') {
12697
3.56k
        if (yych <= '/') goto yy1091;
12698
2.84k
        if (yych <= '9') goto yy1102;
12699
1.59k
        if (yych >= 'B') goto yy1105;
12700
1.59k
      } else {
12701
282
        if (yych == 'O') goto yy1107;
12702
282
        if (yych >= 'X') goto yy1108;
12703
282
      }
12704
3.84k
    } else {
12705
1.91k
      if (yych <= 'b') {
12706
1.05k
        if (yych == '_') goto yy1109;
12707
794
        if (yych >= 'b') goto yy1105;
12708
860
      } else {
12709
860
        if (yych <= 'o') {
12710
129
          if (yych >= 'o') goto yy1107;
12711
731
        } else {
12712
731
          if (yych == 'x') goto yy1108;
12713
731
        }
12714
860
      }
12715
1.91k
    }
12716
9.47k
yy1091:
12717
9.47k
    YYDEBUG(1091, *YYCURSOR);
12718
9.47k
    yyleng = YYCURSOR - SCNG(yy_text);
12719
9.47k
#line 2208 "Zend/zend_language_scanner.l"
12720
9.47k
    { /* Offset could be treated as a long */
12721
9.47k
  if (yyleng < MAX_LENGTH_OF_LONG - 1 || (yyleng == MAX_LENGTH_OF_LONG - 1 && strcmp(yytext, long_min_digits) < 0)) {
12722
9.15k
    char *end;
12723
9.15k
    errno = 0;
12724
9.15k
    ZVAL_LONG(zendlval, ZEND_STRTOL(yytext, &end, 10));
12725
9.15k
    if (errno == ERANGE) {
12726
0
      goto string;
12727
0
    }
12728
9.15k
    ZEND_ASSERT(end == yytext + yyleng);
12729
9.15k
  } else {
12730
318
string:
12731
318
    ZVAL_STRINGL(zendlval, yytext, yyleng);
12732
318
  }
12733
9.47k
  RETURN_TOKEN_WITH_VAL(T_NUM_STRING);
12734
9.47k
}
12735
0
#line 12736 "Zend/zend_language_scanner.c"
12736
23.0k
yy1092:
12737
23.0k
    YYDEBUG(1092, *YYCURSOR);
12738
23.0k
    yyaccept = 0;
12739
23.0k
    YYMARKER = ++YYCURSOR;
12740
23.0k
    YYFILL(1);
12741
23.0k
    yych = *YYCURSOR;
12742
23.0k
    YYDEBUG(1093, *YYCURSOR);
12743
23.0k
    if (yybm[0+yych] & 8) {
12744
17.6k
      goto yy1092;
12745
17.6k
    }
12746
5.43k
    if (yych == '_') goto yy1109;
12747
5.30k
    goto yy1091;
12748
130k
yy1094:
12749
130k
    YYDEBUG(1094, *YYCURSOR);
12750
130k
    ++YYCURSOR;
12751
130k
    YYFILL(1);
12752
130k
    yych = *YYCURSOR;
12753
130k
    YYDEBUG(1095, *YYCURSOR);
12754
130k
    if (yybm[0+yych] & 16) {
12755
107k
      goto yy1094;
12756
107k
    }
12757
22.7k
    YYDEBUG(1096, *YYCURSOR);
12758
22.7k
    yyleng = YYCURSOR - SCNG(yy_text);
12759
22.7k
#line 2455 "Zend/zend_language_scanner.l"
12760
22.7k
    {
12761
22.7k
  RETURN_TOKEN_WITH_STR(T_STRING, 0);
12762
22.7k
}
12763
0
#line 12764 "Zend/zend_language_scanner.c"
12764
10.6k
yy1097:
12765
10.6k
    YYDEBUG(1097, *YYCURSOR);
12766
10.6k
    ++YYCURSOR;
12767
10.6k
    YYDEBUG(1098, *YYCURSOR);
12768
10.6k
    yyleng = YYCURSOR - SCNG(yy_text);
12769
10.6k
#line 2421 "Zend/zend_language_scanner.l"
12770
10.6k
    {
12771
10.6k
  yy_pop_state();
12772
10.6k
  RETURN_TOKEN(']');
12773
10.6k
}
12774
0
#line 12775 "Zend/zend_language_scanner.c"
12775
39.1k
yy1099:
12776
39.1k
    YYDEBUG(1099, *YYCURSOR);
12777
39.1k
    ++YYCURSOR;
12778
39.1k
    YYFILL(1);
12779
39.1k
    yych = *YYCURSOR;
12780
39.1k
    YYDEBUG(1100, *YYCURSOR);
12781
39.1k
    if (yych <= '^') {
12782
12.2k
      if (yych <= '9') {
12783
3.10k
        if (yych >= '0') goto yy1099;
12784
9.19k
      } else {
12785
9.19k
        if (yych <= '@') goto yy1101;
12786
8.35k
        if (yych <= 'Z') goto yy1099;
12787
8.35k
      }
12788
26.8k
    } else {
12789
26.8k
      if (yych <= '`') {
12790
1.08k
        if (yych <= '_') goto yy1099;
12791
25.7k
      } else {
12792
25.7k
        if (yych <= 'z') goto yy1099;
12793
11.6k
        if (yych >= 0x80) goto yy1099;
12794
11.6k
      }
12795
26.8k
    }
12796
10.5k
yy1101:
12797
10.5k
    YYDEBUG(1101, *YYCURSOR);
12798
10.5k
    yyleng = YYCURSOR - SCNG(yy_text);
12799
10.5k
#line 2417 "Zend/zend_language_scanner.l"
12800
10.5k
    {
12801
10.5k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12802
10.5k
}
12803
0
#line 12804 "Zend/zend_language_scanner.c"
12804
9.51k
yy1102:
12805
9.51k
    YYDEBUG(1102, *YYCURSOR);
12806
9.51k
    yyaccept = 1;
12807
9.51k
    YYMARKER = ++YYCURSOR;
12808
9.51k
    YYFILL(1);
12809
9.51k
    yych = *YYCURSOR;
12810
9.51k
    YYDEBUG(1103, *YYCURSOR);
12811
9.51k
    if (yych <= '/') goto yy1104;
12812
8.60k
    if (yych <= '9') goto yy1102;
12813
621
    if (yych == '_') goto yy1109;
12814
1.72k
yy1104:
12815
1.72k
    YYDEBUG(1104, *YYCURSOR);
12816
1.72k
    yyleng = YYCURSOR - SCNG(yy_text);
12817
1.72k
#line 2224 "Zend/zend_language_scanner.l"
12818
1.72k
    { /* Offset must be treated as a string */
12819
1.72k
  if (yyleng == 1) {
12820
0
    ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR((zend_uchar)*(yytext)));
12821
1.72k
  } else {
12822
1.72k
    ZVAL_STRINGL(zendlval, yytext, yyleng);
12823
1.72k
  }
12824
1.72k
  RETURN_TOKEN_WITH_VAL(T_NUM_STRING);
12825
1.72k
}
12826
0
#line 12827 "Zend/zend_language_scanner.c"
12827
39
yy1105:
12828
39
    YYDEBUG(1105, *YYCURSOR);
12829
39
    ++YYCURSOR;
12830
39
    YYFILL(1);
12831
39
    yych = *YYCURSOR;
12832
39
    if (yybm[0+yych] & 32) {
12833
27
      goto yy1110;
12834
27
    }
12835
417
yy1106:
12836
417
    YYDEBUG(1106, *YYCURSOR);
12837
417
    YYCURSOR = YYMARKER;
12838
417
    if (yyaccept == 0) {
12839
411
      goto yy1091;
12840
411
    } else {
12841
6
      goto yy1104;
12842
6
    }
12843
24
yy1107:
12844
24
    YYDEBUG(1107, *YYCURSOR);
12845
24
    ++YYCURSOR;
12846
24
    YYFILL(1);
12847
24
    yych = *YYCURSOR;
12848
24
    if (yybm[0+yych] & 64) {
12849
0
      goto yy1112;
12850
0
    }
12851
24
    goto yy1106;
12852
427
yy1108:
12853
427
    YYDEBUG(1108, *YYCURSOR);
12854
427
    ++YYCURSOR;
12855
427
    YYFILL(1);
12856
427
    yych = *YYCURSOR;
12857
427
    if (yybm[0+yych] & 128) {
12858
163
      goto yy1114;
12859
163
    }
12860
264
    goto yy1106;
12861
396
yy1109:
12862
396
    YYDEBUG(1109, *YYCURSOR);
12863
396
    ++YYCURSOR;
12864
396
    YYFILL(1);
12865
396
    yych = *YYCURSOR;
12866
396
    if (yych <= '/') goto yy1106;
12867
327
    if (yych <= '9') goto yy1102;
12868
48
    goto yy1106;
12869
48
yy1110:
12870
45
    YYDEBUG(1110, *YYCURSOR);
12871
45
    yyaccept = 1;
12872
45
    YYMARKER = ++YYCURSOR;
12873
45
    YYFILL(1);
12874
45
    yych = *YYCURSOR;
12875
45
    YYDEBUG(1111, *YYCURSOR);
12876
45
    if (yybm[0+yych] & 32) {
12877
18
      goto yy1110;
12878
18
    }
12879
27
    if (yych == '_') goto yy1105;
12880
24
    goto yy1104;
12881
24
yy1112:
12882
0
    YYDEBUG(1112, *YYCURSOR);
12883
0
    yyaccept = 1;
12884
0
    YYMARKER = ++YYCURSOR;
12885
0
    YYFILL(1);
12886
0
    yych = *YYCURSOR;
12887
0
    YYDEBUG(1113, *YYCURSOR);
12888
0
    if (yybm[0+yych] & 64) {
12889
0
      goto yy1112;
12890
0
    }
12891
0
    if (yych == '_') goto yy1107;
12892
0
    goto yy1104;
12893
187
yy1114:
12894
187
    YYDEBUG(1114, *YYCURSOR);
12895
187
    yyaccept = 1;
12896
187
    YYMARKER = ++YYCURSOR;
12897
187
    YYFILL(1);
12898
187
    yych = *YYCURSOR;
12899
187
    YYDEBUG(1115, *YYCURSOR);
12900
187
    if (yybm[0+yych] & 128) {
12901
24
      goto yy1114;
12902
24
    }
12903
163
    if (yych == '_') goto yy1108;
12904
163
    goto yy1104;
12905
163
  }
12906
/* *********************************** */
12907
163
yyc_SHEBANG:
12908
0
  {
12909
0
    static const unsigned char yybm[] = {
12910
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12911
0
      128, 128,   0, 128, 128, 128, 128, 128, 
12912
0
      128, 128, 128, 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
    };
12943
0
    YYDEBUG(1116, *YYCURSOR);
12944
0
    YYFILL(2);
12945
0
    yych = *YYCURSOR;
12946
0
    if (yych == '#') goto yy1120;
12947
0
    YYDEBUG(1118, *YYCURSOR);
12948
0
    ++YYCURSOR;
12949
0
yy1119:
12950
0
    YYDEBUG(1119, *YYCURSOR);
12951
0
    yyleng = YYCURSOR - SCNG(yy_text);
12952
0
#line 2295 "Zend/zend_language_scanner.l"
12953
0
    {
12954
0
  yyless(0);
12955
0
  BEGIN(INITIAL);
12956
0
  goto restart;
12957
0
}
12958
0
#line 12959 "Zend/zend_language_scanner.c"
12959
0
yy1120:
12960
0
    YYDEBUG(1120, *YYCURSOR);
12961
0
    yych = *++YYCURSOR;
12962
0
    if (yych != '!') goto yy1119;
12963
0
yy1121:
12964
0
    YYDEBUG(1121, *YYCURSOR);
12965
0
    ++YYCURSOR;
12966
0
    YYFILL(1);
12967
0
    yych = *YYCURSOR;
12968
0
    YYDEBUG(1122, *YYCURSOR);
12969
0
    if (yybm[0+yych] & 128) {
12970
0
      goto yy1121;
12971
0
    }
12972
0
    YYDEBUG(1123, *YYCURSOR);
12973
0
    ++YYCURSOR;
12974
0
    YYDEBUG(1124, *YYCURSOR);
12975
0
    yyleng = YYCURSOR - SCNG(yy_text);
12976
0
#line 2289 "Zend/zend_language_scanner.l"
12977
0
    {
12978
0
  CG(zend_lineno)++;
12979
0
  BEGIN(INITIAL);
12980
0
  goto restart;
12981
0
}
12982
0
#line 12983 "Zend/zend_language_scanner.c"
12983
0
  }
12984
/* *********************************** */
12985
122k
yyc_INITIAL:
12986
122k
  YYDEBUG(1125, *YYCURSOR);
12987
122k
  YYFILL(7);
12988
122k
  yych = *YYCURSOR;
12989
122k
  if (yych == '<') goto yy1129;
12990
60.2k
  YYDEBUG(1127, *YYCURSOR);
12991
60.2k
  ++YYCURSOR;
12992
62.6k
yy1128:
12993
62.6k
  YYDEBUG(1128, *YYCURSOR);
12994
62.6k
  yyleng = YYCURSOR - SCNG(yy_text);
12995
62.6k
#line 2341 "Zend/zend_language_scanner.l"
12996
62.6k
  {
12997
62.6k
  if (YYCURSOR > YYLIMIT) {
12998
25.7k
    RETURN_END_TOKEN;
12999
25.7k
  }
13000
13001
36.8k
inline_char_handler:
13002
13003
122k
  while (1) {
13004
122k
    YYCTYPE *ptr = memchr(YYCURSOR, '<', YYLIMIT - YYCURSOR);
13005
13006
122k
    YYCURSOR = ptr ? ptr + 1 : YYLIMIT;
13007
13008
122k
    if (YYCURSOR >= YYLIMIT) {
13009
10.4k
      break;
13010
10.4k
    }
13011
13012
112k
    if (*YYCURSOR == '?') {
13013
26.4k
      if (CG(short_tags) /* <? */
13014
0
        || (*(YYCURSOR + 1) == '=') /* <?= */
13015
0
        || (!strncasecmp((char*)YYCURSOR + 1, "php", 3) && /* <?php[ \t\r\n] */
13016
0
          (YYCURSOR + 4 == YYLIMIT ||
13017
0
          YYCURSOR[4] == ' ' || YYCURSOR[4] == '\t' ||
13018
0
          YYCURSOR[4] == '\n' || YYCURSOR[4] == '\r'))
13019
26.4k
      ) {
13020
26.4k
        YYCURSOR--;
13021
26.4k
        break;
13022
26.4k
      }
13023
26.4k
    }
13024
112k
  }
13025
13026
36.8k
  yyleng = YYCURSOR - SCNG(yy_text);
13027
13028
36.8k
  if (SCNG(output_filter)) {
13029
0
    size_t readsize;
13030
0
    char *s = NULL;
13031
0
    size_t sz = 0;
13032
    // TODO: avoid reallocation ???
13033
0
    readsize = SCNG(output_filter)((unsigned char **)&s, &sz, (unsigned char *)yytext, (size_t)yyleng);
13034
0
    ZVAL_STRINGL(zendlval, s, sz);
13035
0
    efree(s);
13036
0
    if (readsize < yyleng) {
13037
0
      yyless(readsize);
13038
0
    }
13039
36.8k
  } else if (yyleng == 1) {
13040
1.63k
    ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR((zend_uchar)*yytext));
13041
35.2k
  } else {
13042
35.2k
    ZVAL_STRINGL(zendlval, yytext, yyleng);
13043
35.2k
  }
13044
36.8k
  HANDLE_NEWLINES(yytext, yyleng);
13045
36.8k
  RETURN_TOKEN_WITH_VAL(T_INLINE_HTML);
13046
36.8k
}
13047
0
#line 13048 "Zend/zend_language_scanner.c"
13048
62.4k
yy1129:
13049
62.4k
  YYDEBUG(1129, *YYCURSOR);
13050
62.4k
  yych = *++YYCURSOR;
13051
62.4k
  if (yych != '?') goto yy1128;
13052
60.1k
  YYDEBUG(1130, *YYCURSOR);
13053
60.1k
  yych = *(YYMARKER = ++YYCURSOR);
13054
60.1k
  if (yych <= 'O') {
13055
10.5k
    if (yych == '=') goto yy1132;
13056
49.5k
  } else {
13057
49.5k
    if (yych <= 'P') goto yy1134;
13058
49.4k
    if (yych == 'p') goto yy1134;
13059
49.4k
  }
13060
19.4k
yy1131:
13061
19.4k
  YYDEBUG(1131, *YYCURSOR);
13062
19.4k
  yyleng = YYCURSOR - SCNG(yy_text);
13063
19.4k
#line 2332 "Zend/zend_language_scanner.l"
13064
19.4k
  {
13065
19.4k
  if (CG(short_tags)) {
13066
19.4k
    BEGIN(ST_IN_SCRIPTING);
13067
19.4k
    RETURN_OR_SKIP_TOKEN(T_OPEN_TAG);
13068
19.4k
  } else {
13069
0
    goto inline_char_handler;
13070
0
  }
13071
19.4k
}
13072
0
#line 13073 "Zend/zend_language_scanner.c"
13073
220
yy1132:
13074
220
  YYDEBUG(1132, *YYCURSOR);
13075
220
  ++YYCURSOR;
13076
220
  YYDEBUG(1133, *YYCURSOR);
13077
220
  yyleng = YYCURSOR - SCNG(yy_text);
13078
220
#line 2301 "Zend/zend_language_scanner.l"
13079
220
  {
13080
220
  BEGIN(ST_IN_SCRIPTING);
13081
220
  if (PARSER_MODE()) {
13082
    /* We'll reject this as an identifier in zend_lex_tstring. */
13083
96
    RETURN_TOKEN_WITH_IDENT(T_ECHO);
13084
96
  }
13085
124
  RETURN_TOKEN(T_OPEN_TAG_WITH_ECHO);
13086
124
}
13087
0
#line 13088 "Zend/zend_language_scanner.c"
13088
41.6k
yy1134:
13089
41.6k
  YYDEBUG(1134, *YYCURSOR);
13090
41.6k
  yych = *++YYCURSOR;
13091
41.6k
  if (yych == 'H') goto yy1136;
13092
41.5k
  if (yych == 'h') goto yy1136;
13093
1.22k
yy1135:
13094
1.22k
  YYDEBUG(1135, *YYCURSOR);
13095
1.22k
  YYCURSOR = YYMARKER;
13096
1.22k
  goto yy1131;
13097
41.2k
yy1136:
13098
41.2k
  YYDEBUG(1136, *YYCURSOR);
13099
41.2k
  yych = *++YYCURSOR;
13100
41.2k
  if (yych == 'P') goto yy1137;
13101
41.2k
  if (yych != 'p') goto yy1135;
13102
40.4k
yy1137:
13103
40.4k
  YYDEBUG(1137, *YYCURSOR);
13104
40.4k
  yych = *++YYCURSOR;
13105
40.4k
  if (yych <= '\f') {
13106
36.8k
    if (yych <= 0x08) goto yy1138;
13107
36.7k
    if (yych <= '\n') goto yy1139;
13108
36.7k
  } else {
13109
3.64k
    if (yych <= '\r') goto yy1141;
13110
3.60k
    if (yych == ' ') goto yy1139;
13111
3.60k
  }
13112
994
yy1138:
13113
994
  YYDEBUG(1138, *YYCURSOR);
13114
994
  yyleng = YYCURSOR - SCNG(yy_text);
13115
994
#line 2317 "Zend/zend_language_scanner.l"
13116
994
  {
13117
  /* Allow <?php followed by end of file. */
13118
994
  if (YYCURSOR == YYLIMIT) {
13119
2
    BEGIN(ST_IN_SCRIPTING);
13120
2
    RETURN_OR_SKIP_TOKEN(T_OPEN_TAG);
13121
2
  }
13122
  /* Degenerate case: <?phpX is interpreted as <? phpX with short tags. */
13123
992
  if (CG(short_tags)) {
13124
992
    yyless(2);
13125
992
    BEGIN(ST_IN_SCRIPTING);
13126
992
    RETURN_OR_SKIP_TOKEN(T_OPEN_TAG);
13127
992
  }
13128
0
  goto inline_char_handler;
13129
992
}
13130
0
#line 13131 "Zend/zend_language_scanner.c"
13131
39.4k
yy1139:
13132
39.4k
  YYDEBUG(1139, *YYCURSOR);
13133
39.4k
  ++YYCURSOR;
13134
39.4k
yy1140:
13135
39.4k
  YYDEBUG(1140, *YYCURSOR);
13136
39.4k
  yyleng = YYCURSOR - SCNG(yy_text);
13137
39.4k
#line 2311 "Zend/zend_language_scanner.l"
13138
39.4k
  {
13139
39.4k
  HANDLE_NEWLINE(yytext[yyleng-1]);
13140
39.4k
  BEGIN(ST_IN_SCRIPTING);
13141
39.4k
  RETURN_OR_SKIP_TOKEN(T_OPEN_TAG);
13142
39.4k
}
13143
0
#line 13144 "Zend/zend_language_scanner.c"
13144
36
yy1141:
13145
36
  YYDEBUG(1141, *YYCURSOR);
13146
36
  yych = *++YYCURSOR;
13147
36
  if (yych == '\n') goto yy1139;
13148
29
  goto yy1140;
13149
/* *********************************** */
13150
15.0k
yyc_ST_END_HEREDOC:
13151
15.0k
  YYDEBUG(1142, *YYCURSOR);
13152
15.0k
  YYFILL(1);
13153
15.0k
  yych = *YYCURSOR;
13154
15.0k
  YYDEBUG(1144, *YYCURSOR);
13155
15.0k
  ++YYCURSOR;
13156
15.0k
  YYDEBUG(1145, *YYCURSOR);
13157
15.0k
  yyleng = YYCURSOR - SCNG(yy_text);
13158
15.0k
#line 2831 "Zend/zend_language_scanner.l"
13159
15.0k
  {
13160
15.0k
  zend_heredoc_label *heredoc_label = zend_ptr_stack_pop(&SCNG(heredoc_label_stack));
13161
13162
15.0k
  yyleng = heredoc_label->indentation + heredoc_label->length;
13163
15.0k
  YYCURSOR += yyleng - 1;
13164
13165
15.0k
  heredoc_label_dtor(heredoc_label);
13166
15.0k
  efree(heredoc_label);
13167
13168
15.0k
  BEGIN(ST_IN_SCRIPTING);
13169
15.0k
  RETURN_TOKEN(T_END_HEREDOC);
13170
15.0k
}
13171
0
#line 13172 "Zend/zend_language_scanner.c"
13172
/* *********************************** */
13173
7.29k
yyc_ST_NOWDOC:
13174
7.29k
  YYDEBUG(1146, *YYCURSOR);
13175
7.29k
  YYFILL(1);
13176
7.29k
  yych = *YYCURSOR;
13177
7.29k
  YYDEBUG(1148, *YYCURSOR);
13178
7.29k
  ++YYCURSOR;
13179
7.29k
  YYDEBUG(1149, *YYCURSOR);
13180
7.29k
  yyleng = YYCURSOR - SCNG(yy_text);
13181
7.29k
#line 3088 "Zend/zend_language_scanner.l"
13182
7.29k
  {
13183
7.29k
  zend_heredoc_label *heredoc_label = zend_ptr_stack_top(&SCNG(heredoc_label_stack));
13184
7.29k
  int newline = 0, indentation = 0, spacing = -1;
13185
13186
7.29k
  if (YYCURSOR > YYLIMIT) {
13187
429
    RETURN_END_TOKEN;
13188
429
  }
13189
13190
6.86k
  YYCURSOR--;
13191
13192
889k
  while (YYCURSOR < YYLIMIT) {
13193
889k
    switch (*YYCURSOR++) {
13194
2.58k
      case '\r':
13195
2.58k
        if (*YYCURSOR == '\n') {
13196
76
          YYCURSOR++;
13197
76
        }
13198
2.58k
        ZEND_FALLTHROUGH;
13199
55.5k
      case '\n':
13200
55.5k
        indentation = spacing = 0;
13201
13202
92.3k
        while (YYCURSOR < YYLIMIT && (*YYCURSOR == ' ' || *YYCURSOR == '\t')) {
13203
36.7k
          if (*YYCURSOR == '\t') {
13204
91
            spacing |= HEREDOC_USING_TABS;
13205
36.6k
          } else {
13206
36.6k
            spacing |= HEREDOC_USING_SPACES;
13207
36.6k
          }
13208
36.7k
          ++YYCURSOR;
13209
36.7k
          ++indentation;
13210
36.7k
        }
13211
13212
55.5k
        if (YYCURSOR == YYLIMIT) {
13213
93
          yyleng = YYCURSOR - SCNG(yy_text);
13214
93
          HANDLE_NEWLINES(yytext, yyleng);
13215
93
          ZVAL_NULL(zendlval);
13216
93
          RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
13217
93
        }
13218
13219
        /* Check for ending label on the next line */
13220
55.4k
        if (IS_LABEL_START(*YYCURSOR) && heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, heredoc_label->label, heredoc_label->length)) {
13221
6.96k
          if (IS_LABEL_SUCCESSOR(YYCURSOR[heredoc_label->length])) {
13222
537
            continue;
13223
537
          }
13224
13225
6.42k
          if (spacing == (HEREDOC_USING_SPACES | HEREDOC_USING_TABS)) {
13226
3
            zend_throw_exception(zend_ce_parse_error, "Invalid indentation - tabs and spaces cannot be mixed", 0);
13227
3
            if (PARSER_MODE()) {
13228
3
              RETURN_TOKEN(T_ERROR);
13229
3
            }
13230
3
          }
13231
13232
          /* newline before label will be subtracted from returned text, but
13233
           * yyleng/yytext will include it, for zend_highlight/strip, tokenizer, etc. */
13234
6.42k
          if (YYCURSOR[-indentation - 2] == '\r' && YYCURSOR[-indentation - 1] == '\n') {
13235
0
            newline = 2; /* Windows newline */
13236
6.42k
          } else {
13237
6.42k
            newline = 1;
13238
6.42k
          }
13239
13240
6.42k
          CG(increment_lineno) = 1; /* For newline before label */
13241
13242
6.42k
          YYCURSOR -= indentation;
13243
6.42k
          heredoc_label->indentation = indentation;
13244
13245
6.42k
          BEGIN(ST_END_HEREDOC);
13246
13247
6.42k
          goto nowdoc_scan_done;
13248
6.42k
        }
13249
48.4k
        ZEND_FALLTHROUGH;
13250
882k
      default:
13251
882k
        continue;
13252
889k
    }
13253
889k
  }
13254
13255
6.77k
nowdoc_scan_done:
13256
6.77k
  yyleng = YYCURSOR - SCNG(yy_text);
13257
6.77k
  ZVAL_STRINGL(zendlval, yytext, yyleng - newline);
13258
13259
6.77k
  if (!EG(exception) && spacing != -1 && PARSER_MODE()) {
13260
844
    bool newline_at_start = *(yytext - 1) == '\n' || *(yytext - 1) == '\r';
13261
844
    if (!strip_multiline_string_indentation(
13262
844
        zendlval, indentation, spacing == HEREDOC_USING_SPACES,
13263
844
        newline_at_start, newline != 0)) {
13264
18
      RETURN_TOKEN(T_ERROR);
13265
18
    }
13266
844
  }
13267
13268
6.75k
  HANDLE_NEWLINES(yytext, yyleng - newline);
13269
6.75k
  RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
13270
6.75k
}
13271
6.75k
#line 13272 "Zend/zend_language_scanner.c"
13272
6.75k
}
13273
0
#line 3187 "Zend/zend_language_scanner.l"
13274
13275
13276
3.14M
emit_token_with_str:
13277
3.14M
  zend_copy_value(zendlval, (yytext + offset), (yyleng - offset));
13278
13279
4.94M
emit_token_with_val:
13280
4.94M
  if (PARSER_MODE()) {
13281
1.33M
    ZEND_ASSERT(Z_TYPE_P(zendlval) != IS_UNDEF);
13282
1.33M
    elem->ast = zend_ast_create_zval_with_lineno(zendlval, start_line);
13283
1.33M
  }
13284
13285
15.6M
emit_token:
13286
15.6M
  if (SCNG(on_event)) {
13287
0
    SCNG(on_event)(ON_TOKEN, token, start_line, yytext, yyleng, SCNG(on_event_context));
13288
0
  }
13289
15.6M
  return token;
13290
13291
504k
emit_token_with_ident:
13292
504k
  if (PARSER_MODE()) {
13293
245k
    elem->ident = SCNG(yy_text);
13294
245k
  }
13295
504k
  if (SCNG(on_event)) {
13296
0
    SCNG(on_event)(ON_TOKEN, token, start_line, yytext, yyleng, SCNG(on_event_context));
13297
0
  }
13298
504k
  return token;
13299
13300
2.98M
return_whitespace:
13301
2.98M
  HANDLE_NEWLINES(yytext, yyleng);
13302
2.98M
  if (SCNG(on_event)) {
13303
0
    SCNG(on_event)(ON_TOKEN, T_WHITESPACE, start_line, yytext, yyleng, SCNG(on_event_context));
13304
0
  }
13305
2.98M
  if (PARSER_MODE()) {
13306
1.19M
    start_line = CG(zend_lineno);
13307
1.19M
    goto restart;
13308
1.78M
  } else {
13309
1.78M
    return T_WHITESPACE;
13310
1.78M
  }
13311
13312
98.8k
skip_token:
13313
98.8k
  if (SCNG(on_event)) {
13314
0
    SCNG(on_event)(ON_TOKEN, token, start_line, yytext, yyleng, SCNG(on_event_context));
13315
0
  }
13316
98.8k
  start_line = CG(zend_lineno);
13317
98.8k
  goto restart;
13318
2.98M
}