Coverage Report

Created: 2026-06-02 06:39

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 © Zend Technologies Ltd., a subsidiary company of          |
8
   |     Perforce Software, Inc., and Contributors.                       |
9
   +----------------------------------------------------------------------+
10
   | This source file is subject to the Modified BSD License that is      |
11
   | bundled with this package in the file LICENSE, and is available      |
12
   | through the World Wide Web at <https://www.php.net/license/>.        |
13
   |                                                                      |
14
   | SPDX-License-Identifier: BSD-3-Clause                                |
15
   +----------------------------------------------------------------------+
16
   | Authors: Marcus Boerger <helly@php.net>                              |
17
   |          Nuno Lopes <nlopess@php.net>                                |
18
   |          Scott MacVicar <scottmac@php.net>                           |
19
   | Flex version authors:                                                |
20
   |          Andi Gutmans <andi@php.net>                                 |
21
   |          Zeev Suraski <zeev@php.net>                                 |
22
   +----------------------------------------------------------------------+
23
*/
24
25
#if 0
26
# define YYDEBUG(s, c) printf("state: %d char: %c\n", s, c)
27
#else
28
# define YYDEBUG(s, c)
29
#endif
30
31
#include "zend_language_scanner_defs.h"
32
33
#include <errno.h>
34
#include <stdint.h>
35
#include "zend.h"
36
#ifdef ZEND_WIN32
37
# include <Winuser.h>
38
#endif
39
#include "zend_alloc.h"
40
#include <zend_language_parser.h>
41
#include "zend_compile.h"
42
#include "zend_language_scanner.h"
43
#include "zend_highlight.h"
44
#include "zend_constants.h"
45
#include "zend_variables.h"
46
#include "zend_operators.h"
47
#include "zend_API.h"
48
#include "zend_strtod.h"
49
#include "zend_exceptions.h"
50
#include "zend_virtual_cwd.h"
51
52
9.82M
#define YYCTYPE   unsigned char
53
26.6M
#define YYFILL(n) { if ((YYCURSOR + n) >= (YYLIMIT + ZEND_MMAP_AHEAD)) { return 0; } }
54
192M
#define YYCURSOR  SCNG(yy_cursor)
55
64.2M
#define YYLIMIT   SCNG(yy_limit)
56
9.97M
#define YYMARKER  SCNG(yy_marker)
57
58
31.1M
#define YYGETCONDITION()  SCNG(yy_state)
59
1.98M
#define YYSETCONDITION(s) SCNG(yy_state) = s
60
61
#define STATE(name)  yyc##name
62
63
/* emulate flex constructs */
64
472k
#define BEGIN(state) YYSETCONDITION(STATE(state))
65
60.0k
#define YYSTATE      YYGETCONDITION()
66
2.25M
#define yytext       ((char*)SCNG(yy_text))
67
11.9M
#define yyleng       SCNG(yy_leng)
68
401k
#define yyless(x)    do { YYCURSOR = (unsigned char*)yytext + x; \
69
401k
                          yyleng   = (unsigned int)x; } while(0)
70
#define yymore()     goto yymore_restart
71
72
/* perform sanity check. If this message is triggered you should
73
   increase the ZEND_MMAP_AHEAD value in the zend_streams.h file */
74
#define YYMAXFILL 16
75
76
#if ZEND_MMAP_AHEAD < YYMAXFILL
77
# error ZEND_MMAP_AHEAD should be greater than or equal to YYMAXFILL
78
#endif
79
80
#include <stdarg.h>
81
82
#ifdef HAVE_UNISTD_H
83
# include <unistd.h>
84
#endif
85
86
/* Globals Macros */
87
355M
#define SCNG  LANG_SCNG
88
#ifdef ZTS
89
ZEND_API ts_rsrc_id language_scanner_globals_id;
90
ZEND_API size_t language_scanner_globals_offset;
91
#else
92
ZEND_API zend_php_scanner_globals language_scanner_globals;
93
#endif
94
95
2.07M
#define HANDLE_NEWLINES(s, l)                         \
96
2.07M
do {                                     \
97
2.07M
  char *p = (s), *boundary = p+(l);                     \
98
2.07M
                                        \
99
18.4M
  while (p<boundary) {                           \
100
16.4M
    if (*p == '\n' || (*p == '\r' && (*(p+1) != '\n'))) {         \
101
1.54M
      CG(zend_lineno)++;                          \
102
1.54M
    }                                    \
103
16.4M
    p++;                                  \
104
16.4M
  }                                      \
105
2.07M
} while (0)
106
107
100k
#define HANDLE_NEWLINE(c) \
108
100k
{ \
109
100k
  if (c == '\n' || c == '\r') { \
110
32.0k
    CG(zend_lineno)++; \
111
32.0k
  } \
112
100k
}
113
114
/* To save initial string length after scanning to first variable */
115
49.4k
#define SET_DOUBLE_QUOTES_SCANNED_LENGTH(len) SCNG(scanned_string_len) = (len)
116
134k
#define GET_DOUBLE_QUOTES_SCANNED_LENGTH()    SCNG(scanned_string_len)
117
118
1.53M
#define IS_LABEL_START(c) (((c) >= 'a' && (c) <= 'z') || ((c) >= 'A' && (c) <= 'Z') || (c) == '_' || (c) >= 0x80)
119
8.91k
#define IS_LABEL_SUCCESSOR(c) (((c) >= 'a' && (c) <= 'z') || ((c) >= 'A' && (c) <= 'Z') || ((c) >= '0' && (c) <= '9') || (c) == '_' || (c) >= 0x80)
120
121
56.0k
#define ZEND_IS_OCT(c)  ((c)>='0' && (c)<='7')
122
3.94k
#define ZEND_IS_HEX(c)  (((c)>='0' && (c)<='9') || ((c)>='a' && (c)<='f') || ((c)>='A' && (c)<='F'))
123
124
125
static void strip_underscores(char *str, size_t *len)
126
529
{
127
529
  char *src = str, *dest = str;
128
3.88k
  while (*src != '\0') {
129
3.35k
    if (*src != '_') {
130
2.73k
      *dest = *src;
131
2.73k
      dest++;
132
2.73k
    } else {
133
623
      --(*len);
134
623
    }
135
3.35k
    src++;
136
3.35k
  }
137
529
  *dest = '\0';
138
529
}
139
140
static size_t encoding_filter_script_to_internal(unsigned char **to, size_t *to_length, const unsigned char *from, size_t from_length)
141
0
{
142
0
  const zend_encoding *internal_encoding = zend_multibyte_get_internal_encoding();
143
0
  ZEND_ASSERT(internal_encoding);
144
0
  return zend_multibyte_encoding_converter(to, to_length, from, from_length, internal_encoding, LANG_SCNG(script_encoding));
145
0
}
146
147
static size_t encoding_filter_script_to_intermediate(unsigned char **to, size_t *to_length, const unsigned char *from, size_t from_length)
148
0
{
149
0
  return zend_multibyte_encoding_converter(to, to_length, from, from_length, zend_multibyte_encoding_utf8, LANG_SCNG(script_encoding));
150
0
}
151
152
static size_t encoding_filter_intermediate_to_script(unsigned char **to, size_t *to_length, const unsigned char *from, size_t from_length)
153
0
{
154
0
  return zend_multibyte_encoding_converter(to, to_length, from, from_length,
155
0
LANG_SCNG(script_encoding), zend_multibyte_encoding_utf8);
156
0
}
157
158
static size_t encoding_filter_intermediate_to_internal(unsigned char **to, size_t *to_length, const unsigned char *from, size_t from_length)
159
0
{
160
0
  const zend_encoding *internal_encoding = zend_multibyte_get_internal_encoding();
161
0
  ZEND_ASSERT(internal_encoding);
162
0
  return zend_multibyte_encoding_converter(to, to_length, from, from_length,
163
0
internal_encoding, zend_multibyte_encoding_utf8);
164
0
}
165
166
167
static void _yy_push_state(int new_state)
168
939k
{
169
939k
  zend_stack_push(&SCNG(state_stack), (void *) &YYGETCONDITION());
170
939k
  YYSETCONDITION(new_state);
171
939k
}
172
173
939k
#define yy_push_state(state_and_tsrm) _yy_push_state(yyc##state_and_tsrm)
174
175
static void yy_pop_state(void)
176
516k
{
177
516k
  int *stack_state = zend_stack_top(&SCNG(state_stack));
178
516k
  YYSETCONDITION(*stack_state);
179
516k
  zend_stack_del_top(&SCNG(state_stack));
180
516k
}
181
182
static void yy_scan_buffer(char *str, size_t len)
183
40.1k
{
184
40.1k
  YYCURSOR       = (YYCTYPE*)str;
185
40.1k
  YYLIMIT        = YYCURSOR + len;
186
40.1k
  if (!SCNG(yy_start)) {
187
6.26k
    SCNG(yy_start) = YYCURSOR;
188
6.26k
  }
189
40.1k
}
190
191
void startup_scanner(void)
192
44.4k
{
193
44.4k
  CG(parse_error) = 0;
194
44.4k
  CG(doc_comment) = NULL;
195
44.4k
  CG(extra_fn_flags) = 0;
196
44.4k
  zend_stack_init(&SCNG(state_stack), sizeof(int));
197
44.4k
  zend_stack_init(&SCNG(nest_location_stack), sizeof(zend_nest_location));
198
44.4k
  zend_ptr_stack_init(&SCNG(heredoc_label_stack));
199
44.4k
  SCNG(heredoc_scan_ahead) = 0;
200
44.4k
}
201
202
538k
static void heredoc_label_dtor(zend_heredoc_label *heredoc_label) {
203
538k
    efree(heredoc_label->label);
204
538k
}
205
206
void shutdown_scanner(void)
207
44.4k
{
208
44.4k
  CG(parse_error) = 0;
209
44.4k
  RESET_DOC_COMMENT();
210
44.4k
  zend_stack_destroy(&SCNG(state_stack));
211
44.4k
  zend_stack_destroy(&SCNG(nest_location_stack));
212
44.4k
  zend_ptr_stack_clean(&SCNG(heredoc_label_stack), (void (*)(void *)) &heredoc_label_dtor, 1);
213
44.4k
  zend_ptr_stack_destroy(&SCNG(heredoc_label_stack));
214
44.4k
  SCNG(heredoc_scan_ahead) = 0;
215
44.4k
  SCNG(on_event) = NULL;
216
44.4k
  SCNG(on_event_context) = NULL;
217
44.4k
}
218
219
ZEND_API void zend_save_lexical_state(zend_lex_state *lex_state)
220
60.0k
{
221
60.0k
  lex_state->yy_leng   = SCNG(yy_leng);
222
60.0k
  lex_state->yy_start  = SCNG(yy_start);
223
60.0k
  lex_state->yy_text   = SCNG(yy_text);
224
60.0k
  lex_state->yy_cursor = SCNG(yy_cursor);
225
60.0k
  lex_state->yy_marker = SCNG(yy_marker);
226
60.0k
  lex_state->yy_limit  = SCNG(yy_limit);
227
228
60.0k
  lex_state->state_stack = SCNG(state_stack);
229
60.0k
  zend_stack_init(&SCNG(state_stack), sizeof(int));
230
231
60.0k
  lex_state->nest_location_stack = SCNG(nest_location_stack);
232
60.0k
  zend_stack_init(&SCNG(nest_location_stack), sizeof(zend_nest_location));
233
234
60.0k
  lex_state->heredoc_label_stack = SCNG(heredoc_label_stack);
235
60.0k
  zend_ptr_stack_init(&SCNG(heredoc_label_stack));
236
237
60.0k
  lex_state->in = SCNG(yy_in);
238
60.0k
  lex_state->yy_state = YYSTATE;
239
60.0k
  lex_state->filename = CG(compiled_filename);
240
60.0k
  lex_state->lineno = CG(zend_lineno);
241
60.0k
  CG(compiled_filename) = NULL;
242
243
60.0k
  lex_state->script_org = SCNG(script_org);
244
60.0k
  lex_state->script_org_size = SCNG(script_org_size);
245
60.0k
  lex_state->script_filtered = SCNG(script_filtered);
246
60.0k
  lex_state->script_filtered_size = SCNG(script_filtered_size);
247
60.0k
  lex_state->input_filter = SCNG(input_filter);
248
60.0k
  lex_state->output_filter = SCNG(output_filter);
249
60.0k
  lex_state->script_encoding = SCNG(script_encoding);
250
251
60.0k
  lex_state->on_event = SCNG(on_event);
252
60.0k
  lex_state->on_event_context = SCNG(on_event_context);
253
254
60.0k
  lex_state->ast = CG(ast);
255
60.0k
  lex_state->ast_arena = CG(ast_arena);
256
60.0k
}
257
258
ZEND_API void zend_restore_lexical_state(zend_lex_state *lex_state)
259
57.6k
{
260
57.6k
  SCNG(yy_leng)   = lex_state->yy_leng;
261
57.6k
  SCNG(yy_start)  = lex_state->yy_start;
262
57.6k
  SCNG(yy_text)   = lex_state->yy_text;
263
57.6k
  SCNG(yy_cursor) = lex_state->yy_cursor;
264
57.6k
  SCNG(yy_marker) = lex_state->yy_marker;
265
57.6k
  SCNG(yy_limit)  = lex_state->yy_limit;
266
267
57.6k
  zend_stack_destroy(&SCNG(state_stack));
268
57.6k
  SCNG(state_stack) = lex_state->state_stack;
269
270
57.6k
  zend_stack_destroy(&SCNG(nest_location_stack));
271
57.6k
  SCNG(nest_location_stack) = lex_state->nest_location_stack;
272
273
57.6k
  zend_ptr_stack_clean(&SCNG(heredoc_label_stack), (void (*)(void *)) &heredoc_label_dtor, 1);
274
57.6k
  zend_ptr_stack_destroy(&SCNG(heredoc_label_stack));
275
57.6k
  SCNG(heredoc_label_stack) = lex_state->heredoc_label_stack;
276
277
57.6k
  SCNG(yy_in) = lex_state->in;
278
57.6k
  YYSETCONDITION(lex_state->yy_state);
279
57.6k
  CG(zend_lineno) = lex_state->lineno;
280
57.6k
  zend_restore_compiled_filename(lex_state->filename);
281
282
57.6k
  if (SCNG(script_filtered) && SCNG(script_filtered) != lex_state->script_filtered) {
283
0
    efree(SCNG(script_filtered));
284
0
    SCNG(script_filtered) = NULL;
285
0
  }
286
57.6k
  SCNG(script_org) = lex_state->script_org;
287
57.6k
  SCNG(script_org_size) = lex_state->script_org_size;
288
57.6k
  SCNG(script_filtered) = lex_state->script_filtered;
289
57.6k
  SCNG(script_filtered_size) = lex_state->script_filtered_size;
290
57.6k
  SCNG(input_filter) = lex_state->input_filter;
291
57.6k
  SCNG(output_filter) = lex_state->output_filter;
292
57.6k
  SCNG(script_encoding) = lex_state->script_encoding;
293
294
57.6k
  SCNG(on_event) = lex_state->on_event;
295
57.6k
  SCNG(on_event_context) = lex_state->on_event_context;
296
297
57.6k
  CG(ast) = lex_state->ast;
298
57.6k
  CG(ast_arena) = lex_state->ast_arena;
299
300
57.6k
  RESET_DOC_COMMENT();
301
57.6k
}
302
303
ZEND_API zend_result zend_lex_tstring(zval *zv, unsigned char *ident)
304
4.07k
{
305
4.07k
  unsigned char *end = ident;
306
26.2k
  while ((*end >= 'a' && *end <= 'z') || (*end >= 'A' && *end <= 'Z') || *end == '_') {
307
22.1k
    end++;
308
22.1k
  }
309
310
4.07k
  size_t length = end - ident;
311
4.07k
  if (length == 0) {
312
3
    ZEND_ASSERT(ident[0] == '<' && ident[1] == '?' && ident[2] == '=');
313
3
    zend_throw_exception(zend_ce_parse_error, "Cannot use \"<?=\" as an identifier", 0);
314
3
    return FAILURE;
315
3
  }
316
317
4.07k
  if (SCNG(on_event)) {
318
0
    SCNG(on_event)(ON_FEEDBACK, T_STRING, 0, (char *) ident, length, SCNG(on_event_context));
319
0
  }
320
321
4.07k
  ZVAL_STRINGL(zv, (char *) ident, length);
322
4.07k
  return SUCCESS;
323
4.07k
}
324
325
0
#define BOM_UTF32_BE  "\x00\x00\xfe\xff"
326
0
#define BOM_UTF32_LE  "\xff\xfe\x00\x00"
327
0
#define BOM_UTF16_BE  "\xfe\xff"
328
0
#define BOM_UTF16_LE  "\xff\xfe"
329
0
#define BOM_UTF8    "\xef\xbb\xbf"
330
331
static const zend_encoding *zend_multibyte_detect_utf_encoding(const unsigned char *script, size_t script_size)
332
0
{
333
0
  const unsigned char *p;
334
0
  int wchar_size = 2;
335
0
  int le = 0;
336
337
  /* utf-16 or utf-32? */
338
0
  p = script;
339
0
  assert(p >= script);
340
0
  while ((size_t)(p-script) < script_size) {
341
0
    p = memchr(p, 0, script_size-(p-script)-2);
342
0
    if (!p) {
343
0
      break;
344
0
    }
345
0
    if (*(p+1) == '\0' && *(p+2) == '\0') {
346
0
      wchar_size = 4;
347
0
      break;
348
0
    }
349
350
    /* searching for UTF-32 specific byte orders, so this will do */
351
0
    p += 4;
352
0
  }
353
354
  /* BE or LE? */
355
0
  p = script;
356
0
  assert(p >= script);
357
0
  while ((size_t)(p-script) < script_size) {
358
0
    if (*p == '\0' && *(p+wchar_size-1) != '\0') {
359
      /* BE */
360
0
      le = 0;
361
0
      break;
362
0
    } else if (*p != '\0' && *(p+wchar_size-1) == '\0') {
363
      /* LE* */
364
0
      le = 1;
365
0
      break;
366
0
    }
367
0
    p += wchar_size;
368
0
  }
369
370
0
  if (wchar_size == 2) {
371
0
    return le ? zend_multibyte_encoding_utf16le : zend_multibyte_encoding_utf16be;
372
0
  } else {
373
0
    return le ? zend_multibyte_encoding_utf32le : zend_multibyte_encoding_utf32be;
374
0
  }
375
376
0
  return NULL;
377
0
}
378
379
static const zend_encoding* zend_multibyte_detect_unicode(void)
380
0
{
381
0
  const zend_encoding *script_encoding = NULL;
382
0
  int bom_size;
383
0
  unsigned char *pos1, *pos2;
384
385
0
  if (LANG_SCNG(script_org_size) < sizeof(BOM_UTF32_LE)-1) {
386
0
    return NULL;
387
0
  }
388
389
  /* check out BOM */
390
0
  if (!memcmp(LANG_SCNG(script_org), BOM_UTF32_BE, sizeof(BOM_UTF32_BE)-1)) {
391
0
    script_encoding = zend_multibyte_encoding_utf32be;
392
0
    bom_size = sizeof(BOM_UTF32_BE)-1;
393
0
  } else if (!memcmp(LANG_SCNG(script_org), BOM_UTF32_LE, sizeof(BOM_UTF32_LE)-1)) {
394
0
    script_encoding = zend_multibyte_encoding_utf32le;
395
0
    bom_size = sizeof(BOM_UTF32_LE)-1;
396
0
  } else if (!memcmp(LANG_SCNG(script_org), BOM_UTF16_BE, sizeof(BOM_UTF16_BE)-1)) {
397
0
    script_encoding = zend_multibyte_encoding_utf16be;
398
0
    bom_size = sizeof(BOM_UTF16_BE)-1;
399
0
  } else if (!memcmp(LANG_SCNG(script_org), BOM_UTF16_LE, sizeof(BOM_UTF16_LE)-1)) {
400
0
    script_encoding = zend_multibyte_encoding_utf16le;
401
0
    bom_size = sizeof(BOM_UTF16_LE)-1;
402
0
  } else if (!memcmp(LANG_SCNG(script_org), BOM_UTF8, sizeof(BOM_UTF8)-1)) {
403
0
    script_encoding = zend_multibyte_encoding_utf8;
404
0
    bom_size = sizeof(BOM_UTF8)-1;
405
0
  }
406
407
0
  if (script_encoding) {
408
    /* remove BOM */
409
0
    LANG_SCNG(script_org) += bom_size;
410
0
    LANG_SCNG(script_org_size) -= bom_size;
411
412
0
    return script_encoding;
413
0
  }
414
415
  /* script contains NULL bytes -> auto-detection */
416
0
  if ((pos1 = memchr(LANG_SCNG(script_org), 0, LANG_SCNG(script_org_size)))) {
417
    /* check if the NULL byte is after the __HALT_COMPILER(); */
418
0
    pos2 = LANG_SCNG(script_org);
419
420
0
    while ((size_t)(pos1 - pos2) >= sizeof("__HALT_COMPILER();")-1) {
421
0
      pos2 = memchr(pos2, '_', pos1 - pos2);
422
0
      if (!pos2) break;
423
0
      pos2++;
424
0
      if (strncasecmp((char*)pos2, "_HALT_COMPILER", sizeof("_HALT_COMPILER")-1) == 0) {
425
0
        pos2 += sizeof("_HALT_COMPILER")-1;
426
0
        while (*pos2 == ' '  ||
427
0
             *pos2 == '\t' ||
428
0
             *pos2 == '\r' ||
429
0
             *pos2 == '\n') {
430
0
          pos2++;
431
0
        }
432
0
        if (*pos2 == '(') {
433
0
          pos2++;
434
0
          while (*pos2 == ' '  ||
435
0
               *pos2 == '\t' ||
436
0
               *pos2 == '\r' ||
437
0
               *pos2 == '\n') {
438
0
            pos2++;
439
0
          }
440
0
          if (*pos2 == ')') {
441
0
            pos2++;
442
0
            while (*pos2 == ' '  ||
443
0
                 *pos2 == '\t' ||
444
0
                 *pos2 == '\r' ||
445
0
                 *pos2 == '\n') {
446
0
              pos2++;
447
0
            }
448
0
            if (*pos2 == ';') {
449
0
              return NULL;
450
0
            }
451
0
          }
452
0
        }
453
0
      }
454
0
    }
455
    /* make best effort if BOM is missing */
456
0
    return zend_multibyte_detect_utf_encoding(LANG_SCNG(script_org), LANG_SCNG(script_org_size));
457
0
  }
458
459
0
  return NULL;
460
0
}
461
462
static const zend_encoding* zend_multibyte_find_script_encoding(void)
463
0
{
464
0
  const zend_encoding *script_encoding;
465
466
0
  if (CG(detect_unicode)) {
467
    /* check out bom(byte order mark) and see if containing wchars */
468
0
    script_encoding = zend_multibyte_detect_unicode();
469
0
    if (script_encoding != NULL) {
470
      /* bom or wchar detection is prior to 'script_encoding' option */
471
0
      return script_encoding;
472
0
    }
473
0
  }
474
475
  /* if no script_encoding specified, just leave alone */
476
0
  if (!CG(script_encoding_list) || !CG(script_encoding_list_size)) {
477
0
    return NULL;
478
0
  }
479
480
  /* if multiple encodings specified, detect automagically */
481
0
  if (CG(script_encoding_list_size) > 1) {
482
0
    return zend_multibyte_encoding_detector(LANG_SCNG(script_org), LANG_SCNG(script_org_size), CG(script_encoding_list), CG(script_encoding_list_size));
483
0
  }
484
485
0
  return CG(script_encoding_list)[0];
486
0
}
487
488
ZEND_API zend_result zend_multibyte_set_filter(const zend_encoding *onetime_encoding)
489
0
{
490
0
  const zend_encoding *internal_encoding = zend_multibyte_get_internal_encoding();
491
0
  const zend_encoding *script_encoding = onetime_encoding ? onetime_encoding: zend_multibyte_find_script_encoding();
492
493
0
  if (!script_encoding) {
494
0
    return FAILURE;
495
0
  }
496
497
  /* judge input/output filter */
498
0
  LANG_SCNG(script_encoding) = script_encoding;
499
0
  LANG_SCNG(input_filter) = NULL;
500
0
  LANG_SCNG(output_filter) = NULL;
501
502
0
  if (!internal_encoding || LANG_SCNG(script_encoding) == internal_encoding) {
503
0
    if (!zend_multibyte_check_lexer_compatibility(LANG_SCNG(script_encoding))) {
504
      /* and if not, work around w/ script_encoding -> utf-8 -> script_encoding conversion */
505
0
      LANG_SCNG(input_filter) = encoding_filter_script_to_intermediate;
506
0
      LANG_SCNG(output_filter) = encoding_filter_intermediate_to_script;
507
0
    } else {
508
0
      LANG_SCNG(input_filter) = NULL;
509
0
      LANG_SCNG(output_filter) = NULL;
510
0
    }
511
0
    return SUCCESS;
512
0
  }
513
514
0
  if (zend_multibyte_check_lexer_compatibility(internal_encoding)) {
515
0
    LANG_SCNG(input_filter) = encoding_filter_script_to_internal;
516
0
    LANG_SCNG(output_filter) = NULL;
517
0
  } else if (zend_multibyte_check_lexer_compatibility(LANG_SCNG(script_encoding))) {
518
0
    LANG_SCNG(input_filter) = NULL;
519
0
    LANG_SCNG(output_filter) = encoding_filter_script_to_internal;
520
0
  } else {
521
    /* both script and internal encodings are incompatible w/ flex */
522
0
    LANG_SCNG(input_filter) = encoding_filter_script_to_intermediate;
523
0
    LANG_SCNG(output_filter) = encoding_filter_intermediate_to_internal;
524
0
  }
525
526
0
  return SUCCESS;
527
0
}
528
529
ZEND_API zend_result open_file_for_scanning(zend_file_handle *file_handle)
530
33.9k
{
531
33.9k
  char *buf;
532
33.9k
  size_t size;
533
33.9k
  zend_string *compiled_filename;
534
535
33.9k
  if (zend_stream_fixup(file_handle, &buf, &size) == FAILURE) {
536
    /* Still add it to open_files to make destroy_file_handle work */
537
57
    zend_llist_add_element(&CG(open_files), file_handle);
538
57
    file_handle->in_list = 1;
539
57
    return FAILURE;
540
57
  }
541
542
33.9k
  ZEND_ASSERT(!EG(exception) && "stream_fixup() should have failed");
543
33.9k
  zend_llist_add_element(&CG(open_files), file_handle);
544
33.9k
  file_handle->in_list = 1;
545
546
  /* Reset the scanner for scanning the new file */
547
33.9k
  SCNG(yy_in) = file_handle;
548
33.9k
  SCNG(yy_start) = NULL;
549
550
33.9k
  if (size != (size_t)-1) {
551
33.9k
    if (CG(multibyte)) {
552
0
      SCNG(script_org) = (unsigned char*)buf;
553
0
      SCNG(script_org_size) = size;
554
0
      SCNG(script_filtered) = NULL;
555
556
0
      zend_multibyte_set_filter(NULL);
557
558
0
      if (SCNG(input_filter)) {
559
0
        if ((size_t)-1 == SCNG(input_filter)(&SCNG(script_filtered), &SCNG(script_filtered_size), SCNG(script_org), SCNG(script_org_size))) {
560
0
          zend_error_noreturn(E_COMPILE_ERROR, "Could not convert the script from the detected "
561
0
              "encoding \"%s\" to a compatible encoding", zend_multibyte_get_encoding_name(LANG_SCNG(script_encoding)));
562
0
        }
563
0
        buf = (char*)SCNG(script_filtered);
564
0
        size = SCNG(script_filtered_size);
565
0
      }
566
0
    }
567
33.9k
    SCNG(yy_start) = (unsigned char *)buf;
568
33.9k
    yy_scan_buffer(buf, size);
569
33.9k
  } else {
570
0
    zend_error_noreturn(E_COMPILE_ERROR, "zend_stream_mmap() failed");
571
0
  }
572
573
33.9k
  if (CG(skip_shebang)) {
574
0
    BEGIN(SHEBANG);
575
33.9k
  } else {
576
33.9k
    BEGIN(INITIAL);
577
33.9k
  }
578
579
33.9k
  if (file_handle->opened_path) {
580
24
    compiled_filename = zend_string_copy(file_handle->opened_path);
581
33.8k
  } else {
582
33.8k
    compiled_filename = zend_string_copy(file_handle->filename);
583
33.8k
  }
584
585
33.9k
  zend_set_compiled_filename(compiled_filename);
586
33.9k
  zend_string_release_ex(compiled_filename, 0);
587
588
33.9k
  SCNG(on_event) = NULL;
589
33.9k
  SCNG(on_event_context) = NULL;
590
33.9k
  RESET_DOC_COMMENT();
591
33.9k
  CG(zend_lineno) = 1;
592
33.9k
  CG(increment_lineno) = 0;
593
33.9k
  return SUCCESS;
594
33.9k
}
595
596
static zend_op_array *zend_compile(zend_function_type type)
597
36.6k
{
598
36.6k
  zend_op_array *op_array = NULL;
599
36.6k
  bool original_in_compilation = CG(in_compilation);
600
601
36.6k
  CG(in_compilation) = 1;
602
36.6k
  CG(ast) = NULL;
603
36.6k
  CG(ast_arena) = zend_arena_create(1024 * 32);
604
605
36.6k
  if (!zendparse()) {
606
30.0k
    uint32_t last_lineno = CG(zend_lineno);
607
30.0k
    zend_file_context original_file_context;
608
30.0k
    zend_oparray_context original_oparray_context;
609
30.0k
    zend_op_array *original_active_op_array = CG(active_op_array);
610
611
30.0k
    op_array = emalloc(sizeof(zend_op_array));
612
30.0k
    init_op_array(op_array, type, INITIAL_OP_ARRAY_SIZE);
613
30.0k
    CG(active_op_array) = op_array;
614
615
    /* Use heap to not waste arena memory */
616
30.0k
    op_array->fn_flags |= ZEND_ACC_HEAP_RT_CACHE;
617
618
30.0k
    if (zend_ast_process) {
619
0
      zend_ast_process(CG(ast));
620
0
    }
621
622
30.0k
    zend_file_context_begin(&original_file_context);
623
30.0k
    zend_oparray_context_begin(&original_oparray_context, op_array);
624
30.0k
    zend_compile_top_stmt(CG(ast));
625
30.0k
    CG(zend_lineno) = last_lineno;
626
30.0k
    zend_emit_final_return(type == ZEND_USER_FUNCTION);
627
30.0k
    op_array->line_start = 1;
628
30.0k
    op_array->line_end = last_lineno;
629
30.0k
    pass_two(op_array);
630
30.0k
    zend_oparray_context_end(&original_oparray_context);
631
30.0k
    zend_file_context_end(&original_file_context);
632
633
30.0k
    CG(active_op_array) = original_active_op_array;
634
30.0k
  }
635
636
36.6k
  zend_ast_destroy(CG(ast));
637
36.6k
  zend_arena_destroy(CG(ast_arena));
638
639
36.6k
  CG(in_compilation) = original_in_compilation;
640
641
36.6k
  return op_array;
642
36.6k
}
643
644
ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type)
645
33.9k
{
646
33.9k
  zend_lex_state original_lex_state;
647
33.9k
  zend_op_array *op_array = NULL;
648
33.9k
  zend_save_lexical_state(&original_lex_state);
649
650
33.9k
  if (open_file_for_scanning(file_handle)==FAILURE) {
651
57
    if (!EG(exception)) {
652
27
      if (type==ZEND_REQUIRE) {
653
15
        zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, ZSTR_VAL(file_handle->filename));
654
15
      } else {
655
12
        zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, ZSTR_VAL(file_handle->filename));
656
12
      }
657
27
    }
658
33.9k
  } else {
659
33.9k
    bool orig_record_errors = EG(record_errors);
660
33.9k
    if (!orig_record_errors) {
661
33
      zend_begin_record_errors();
662
33
    }
663
664
33.9k
    op_array = zend_compile(ZEND_USER_FUNCTION);
665
666
33.9k
    if (!orig_record_errors) {
667
33
      zend_emit_recorded_errors();
668
33
      zend_free_recorded_errors();
669
33
    }
670
33.9k
  }
671
672
33.9k
  zend_restore_lexical_state(&original_lex_state);
673
33.9k
  return op_array;
674
33.9k
}
675
676
ZEND_API zend_ast *zend_compile_string_to_ast(
677
9
    zend_string *code, zend_arena **ast_arena, zend_string *filename) {
678
9
  zval code_zv;
679
9
  bool original_in_compilation;
680
9
  zend_lex_state original_lex_state;
681
9
  zend_ast *ast;
682
683
9
  ZVAL_STR_COPY(&code_zv, code);
684
685
9
  original_in_compilation = CG(in_compilation);
686
9
  CG(in_compilation) = 1;
687
688
9
  zend_save_lexical_state(&original_lex_state);
689
9
  zend_prepare_string_for_scanning(&code_zv, filename);
690
9
  CG(ast) = NULL;
691
9
  CG(ast_arena) = zend_arena_create(1024 * 32);
692
9
  LANG_SCNG(yy_state) = yycINITIAL;
693
694
9
  if (zendparse() != 0) {
695
0
    zend_ast_destroy(CG(ast));
696
0
    zend_arena_destroy(CG(ast_arena));
697
0
    CG(ast) = NULL;
698
0
  }
699
700
  /* restore_lexical_state changes CG(ast) and CG(ast_arena) */
701
9
  ast = CG(ast);
702
9
  *ast_arena = CG(ast_arena);
703
704
9
  zend_restore_lexical_state(&original_lex_state);
705
9
  CG(in_compilation) = original_in_compilation;
706
707
9
  zval_ptr_dtor_str(&code_zv);
708
709
9
  return ast;
710
9
}
711
712
zend_op_array *compile_filename(int type, zend_string *filename)
713
27.7k
{
714
27.7k
  zend_file_handle file_handle;
715
27.7k
  zend_op_array *retval;
716
27.7k
  zend_string *opened_path = NULL;
717
718
27.7k
  zend_stream_init_filename_ex(&file_handle, filename);
719
720
27.7k
  retval = zend_compile_file(&file_handle, type);
721
27.7k
  if (retval && file_handle.handle.stream.handle) {
722
30
    if (!file_handle.opened_path) {
723
6
      file_handle.opened_path = opened_path = zend_string_copy(filename);
724
6
    }
725
726
30
    zend_hash_add_empty_element(&EG(included_files), file_handle.opened_path);
727
728
30
    if (opened_path) {
729
6
      zend_string_release_ex(opened_path, 0);
730
6
    }
731
30
  }
732
27.7k
  zend_destroy_file_handle(&file_handle);
733
734
27.7k
  return retval;
735
27.7k
}
736
737
ZEND_API void zend_prepare_string_for_scanning(zval *str, zend_string *filename)
738
6.26k
{
739
6.26k
  char *buf;
740
6.26k
  size_t size, old_len;
741
742
  /* enforce ZEND_MMAP_AHEAD trailing NULLs for flex... */
743
6.26k
  old_len = Z_STRLEN_P(str);
744
6.26k
  Z_STR_P(str) = zend_string_extend(Z_STR_P(str), old_len + ZEND_MMAP_AHEAD, 0);
745
6.26k
  Z_TYPE_INFO_P(str) = IS_STRING_EX;
746
6.26k
  memset(Z_STRVAL_P(str) + old_len, 0, ZEND_MMAP_AHEAD + 1);
747
748
6.26k
  SCNG(yy_in) = NULL;
749
6.26k
  SCNG(yy_start) = NULL;
750
751
6.26k
  buf = Z_STRVAL_P(str);
752
6.26k
  size = old_len;
753
754
6.26k
  if (CG(multibyte)) {
755
0
    SCNG(script_org) = (unsigned char*)buf;
756
0
    SCNG(script_org_size) = size;
757
0
    SCNG(script_filtered) = NULL;
758
759
0
    zend_multibyte_set_filter(zend_multibyte_get_internal_encoding());
760
761
0
    if (SCNG(input_filter)) {
762
0
      if ((size_t)-1 == SCNG(input_filter)(&SCNG(script_filtered), &SCNG(script_filtered_size), SCNG(script_org), SCNG(script_org_size))) {
763
0
        zend_error_noreturn(E_COMPILE_ERROR, "Could not convert the script from the detected "
764
0
            "encoding \"%s\" to a compatible encoding", zend_multibyte_get_encoding_name(LANG_SCNG(script_encoding)));
765
0
      }
766
0
      buf = (char*)SCNG(script_filtered);
767
0
      size = SCNG(script_filtered_size);
768
0
    }
769
0
  }
770
771
6.26k
  yy_scan_buffer(buf, size);
772
6.26k
  zend_set_compiled_filename(filename);
773
6.26k
  CG(zend_lineno) = 1;
774
6.26k
  CG(increment_lineno) = 0;
775
6.26k
  SCNG(on_event) = NULL;
776
6.26k
  SCNG(on_event_context) = NULL;
777
6.26k
  RESET_DOC_COMMENT();
778
6.26k
}
779
780
781
ZEND_API size_t zend_get_scanned_file_offset(void)
782
45
{
783
45
  size_t offset = SCNG(yy_cursor) - SCNG(yy_start);
784
45
  if (SCNG(input_filter)) {
785
0
    size_t original_offset = offset, length = 0;
786
0
    do {
787
0
      unsigned char *p = NULL;
788
0
      if ((size_t)-1 == SCNG(input_filter)(&p, &length, SCNG(script_org), offset)) {
789
0
        return (size_t)-1;
790
0
      }
791
0
      efree(p);
792
0
      if (length > original_offset) {
793
0
        offset--;
794
0
      } else if (length < original_offset) {
795
0
        offset++;
796
0
      }
797
0
    } while (original_offset != length);
798
0
  }
799
45
  return offset;
800
45
}
801
802
zend_op_array *compile_string(zend_string *source_string, const char *filename, zend_compile_position position)
803
2.72k
{
804
2.72k
  zend_lex_state original_lex_state;
805
2.72k
  zend_op_array *op_array = NULL;
806
2.72k
  zval tmp;
807
2.72k
  zend_string *filename_str;
808
809
2.72k
  if (ZSTR_LEN(source_string) == 0) {
810
9
    return NULL;
811
9
  }
812
813
2.71k
  ZVAL_STR_COPY(&tmp, source_string);
814
815
2.71k
  zend_save_lexical_state(&original_lex_state);
816
2.71k
  filename_str = zend_string_init(filename, strlen(filename), 0);
817
2.71k
  zend_prepare_string_for_scanning(&tmp, filename_str);
818
2.71k
  zend_string_release(filename_str);
819
820
2.71k
  switch (position) {
821
0
    case ZEND_COMPILE_POSITION_AT_SHEBANG:
822
0
      BEGIN(SHEBANG);
823
0
      break;
824
0
    case ZEND_COMPILE_POSITION_AT_OPEN_TAG:
825
0
      BEGIN(INITIAL);
826
0
      break;
827
2.71k
    case ZEND_COMPILE_POSITION_AFTER_OPEN_TAG:
828
2.71k
      BEGIN(ST_IN_SCRIPTING);
829
2.71k
      break;
830
2.71k
  }
831
832
2.71k
  op_array = zend_compile(ZEND_EVAL_CODE);
833
834
2.71k
  zend_restore_lexical_state(&original_lex_state);
835
2.71k
  zval_ptr_dtor(&tmp);
836
837
2.71k
  return op_array;
838
2.71k
}
839
840
841
zend_result highlight_file(const char *filename, zend_syntax_highlighter_ini *syntax_highlighter_ini)
842
0
{
843
0
  zend_lex_state original_lex_state;
844
0
  zend_file_handle file_handle;
845
846
0
  zend_stream_init_filename(&file_handle, filename);
847
0
  zend_save_lexical_state(&original_lex_state);
848
0
  if (open_file_for_scanning(&file_handle)==FAILURE) {
849
0
    zend_message_dispatcher(ZMSG_FAILED_HIGHLIGHT_FOPEN, filename);
850
0
    zend_destroy_file_handle(&file_handle);
851
0
    zend_restore_lexical_state(&original_lex_state);
852
0
    return FAILURE;
853
0
  }
854
0
  zend_highlight(syntax_highlighter_ini);
855
0
  if (SCNG(script_filtered)) {
856
0
    efree(SCNG(script_filtered));
857
0
    SCNG(script_filtered) = NULL;
858
0
  }
859
0
  zend_destroy_file_handle(&file_handle);
860
0
  zend_restore_lexical_state(&original_lex_state);
861
0
  return SUCCESS;
862
0
}
863
864
void highlight_string(zend_string *str, zend_syntax_highlighter_ini *syntax_highlighter_ini, const char *filename)
865
3.54k
{
866
3.54k
  zend_lex_state original_lex_state;
867
3.54k
  zval str_zv;
868
3.54k
  zend_string *filename_str = zend_string_init(filename, strlen(filename), 0);
869
3.54k
  ZVAL_STR_COPY(&str_zv, str);
870
3.54k
  zend_save_lexical_state(&original_lex_state);
871
3.54k
  zend_prepare_string_for_scanning(&str_zv, filename_str);
872
3.54k
  zend_string_release(filename_str);
873
3.54k
  BEGIN(INITIAL);
874
3.54k
  zend_highlight(syntax_highlighter_ini);
875
3.54k
  if (SCNG(script_filtered)) {
876
0
    efree(SCNG(script_filtered));
877
0
    SCNG(script_filtered) = NULL;
878
0
  }
879
3.54k
  zend_restore_lexical_state(&original_lex_state);
880
3.54k
  zval_ptr_dtor(&str_zv);
881
3.54k
}
882
883
ZEND_API void zend_multibyte_yyinput_again(zend_encoding_filter old_input_filter, const zend_encoding *old_encoding)
884
0
{
885
0
  size_t length;
886
0
  unsigned char *new_yy_start;
887
888
  /* convert and set */
889
0
  if (!SCNG(input_filter)) {
890
0
    if (SCNG(script_filtered)) {
891
0
      efree(SCNG(script_filtered));
892
0
      SCNG(script_filtered) = NULL;
893
0
    }
894
0
    SCNG(script_filtered_size) = 0;
895
0
    length = SCNG(script_org_size);
896
0
    new_yy_start = SCNG(script_org);
897
0
  } else {
898
0
    if ((size_t)-1 == SCNG(input_filter)(&new_yy_start, &length, SCNG(script_org), SCNG(script_org_size))) {
899
0
      zend_error_noreturn(E_COMPILE_ERROR, "Could not convert the script from the detected "
900
0
          "encoding \"%s\" to a compatible encoding", zend_multibyte_get_encoding_name(LANG_SCNG(script_encoding)));
901
0
    }
902
0
    if (SCNG(script_filtered)) {
903
0
      efree(SCNG(script_filtered));
904
0
    }
905
0
    SCNG(script_filtered) = new_yy_start;
906
0
    SCNG(script_filtered_size) = length;
907
0
  }
908
909
0
  SCNG(yy_cursor) = new_yy_start + (SCNG(yy_cursor) - SCNG(yy_start));
910
0
  SCNG(yy_marker) = new_yy_start + (SCNG(yy_marker) - SCNG(yy_start));
911
0
  SCNG(yy_text) = new_yy_start + (SCNG(yy_text) - SCNG(yy_start));
912
0
  SCNG(yy_limit) = new_yy_start + length;
913
914
0
  SCNG(yy_start) = new_yy_start;
915
0
}
916
917
918
// TODO: avoid reallocation ???
919
# define zend_copy_value(zendlval, yytext, yyleng) \
920
1.56M
  if (SCNG(output_filter)) { \
921
0
    size_t sz = 0; \
922
0
    char *s = NULL; \
923
0
    SCNG(output_filter)((unsigned char **)&s, &sz, (unsigned char *)yytext, (size_t)yyleng); \
924
0
    ZVAL_STRINGL(zendlval, s, sz); \
925
0
    efree(s); \
926
1.56M
  } else if (yyleng == 1) { \
927
418k
    ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR((zend_uchar)*(yytext))); \
928
1.14M
  } else { \
929
1.14M
    ZVAL_STRINGL(zendlval, yytext, yyleng); \
930
1.14M
  }
931
932
static zend_result zend_scan_escape_string(zval *zendlval, char *str, size_t len, char quote_type)
933
222k
{
934
222k
  char *s, *t;
935
222k
  char *end;
936
937
222k
  if (len <= 1) {
938
63.1k
    if (len < 1) {
939
6.24k
      ZVAL_EMPTY_STRING(zendlval);
940
56.9k
    } else {
941
56.9k
      zend_uchar c = (zend_uchar)*str;
942
56.9k
      HANDLE_NEWLINE(c);
943
56.9k
      ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR(c));
944
56.9k
    }
945
63.1k
    goto skip_escape_conversion;
946
63.1k
  }
947
948
158k
  ZVAL_STRINGL(zendlval, str, len);
949
950
  /* convert escape sequences */
951
158k
  s = Z_STRVAL_P(zendlval);
952
158k
  end = s+Z_STRLEN_P(zendlval);
953
4.82M
  while (1) {
954
4.82M
    if (UNEXPECTED(*s=='\\')) {
955
46.3k
      break;
956
46.3k
    }
957
4.77M
    if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
958
133k
      CG(zend_lineno)++;
959
133k
    }
960
4.77M
    s++;
961
4.77M
    if (s == end) {
962
112k
      goto skip_escape_conversion;
963
112k
    }
964
4.77M
  }
965
966
46.3k
  t = s;
967
1.49M
  while (s<end) {
968
1.44M
    if (*s=='\\') {
969
101k
      s++;
970
101k
      if (s >= end) {
971
50
        *t++ = '\\';
972
50
        break;
973
50
      }
974
975
101k
      switch(*s) {
976
23.3k
        case 'n':
977
23.3k
          *t++ = '\n';
978
23.3k
          break;
979
478
        case 'r':
980
478
          *t++ = '\r';
981
478
          break;
982
373
        case 't':
983
373
          *t++ = '\t';
984
373
          break;
985
569
        case 'f':
986
569
          *t++ = '\f';
987
569
          break;
988
834
        case 'v':
989
834
          *t++ = '\v';
990
834
          break;
991
28
        case 'e':
992
#ifdef ZEND_WIN32
993
          *t++ = VK_ESCAPE;
994
#else
995
28
          *t++ = '\e';
996
28
#endif
997
28
          break;
998
366
        case '"':
999
441
        case '`':
1000
441
          if (*s != quote_type) {
1001
145
            *t++ = '\\';
1002
145
            *t++ = *s;
1003
145
            break;
1004
145
          }
1005
296
          ZEND_FALLTHROUGH;
1006
30.2k
        case '\\':
1007
30.7k
        case '$':
1008
30.7k
          *t++ = *s;
1009
30.7k
          break;
1010
2.19k
        case 'x':
1011
2.29k
        case 'X':
1012
2.29k
          if (ZEND_IS_HEX(*(s+1))) {
1013
1.63k
            char hex_buf[3] = { 0, 0, 0 };
1014
1015
1.63k
            hex_buf[0] = *(++s);
1016
1.63k
            if (ZEND_IS_HEX(*(s+1))) {
1017
1.24k
              hex_buf[1] = *(++s);
1018
1.24k
            }
1019
1.63k
            *t++ = (char) ZEND_STRTOL(hex_buf, NULL, 16);
1020
1.63k
          } else {
1021
662
            *t++ = '\\';
1022
662
            *t++ = *s;
1023
662
          }
1024
2.29k
          break;
1025
        /* UTF-8 codepoint escape, format: /\\u\{\x+\}/ */
1026
59
        case 'u':
1027
59
          {
1028
            /* cache where we started so we can parse after validating */
1029
59
            char *start = s + 1;
1030
59
            size_t len = 0;
1031
59
            bool valid = 1;
1032
59
            unsigned long codepoint;
1033
1034
59
            if (*start != '{') {
1035
              /* we silently let this pass to avoid breaking code
1036
               * with JSON in string literals (e.g. "\"\u202e\""
1037
               */
1038
56
              *t++ = '\\';
1039
56
              *t++ = 'u';
1040
56
              break;
1041
56
            } else {
1042
              /* on the other hand, invalid \u{blah} errors */
1043
3
              s++;
1044
3
              len++;
1045
3
              s++;
1046
21
              while (*s != '}') {
1047
18
                if (!ZEND_IS_HEX(*s)) {
1048
0
                  valid = 0;
1049
0
                  break;
1050
18
                } else {
1051
18
                  len++;
1052
18
                }
1053
18
                s++;
1054
18
              }
1055
3
              if (*s == '}') {
1056
3
                valid = 1;
1057
3
                len++;
1058
3
              }
1059
3
            }
1060
1061
            /* \u{} is invalid */
1062
3
            if (len <= 2) {
1063
0
              valid = 0;
1064
0
            }
1065
1066
3
            if (!valid) {
1067
0
              zend_throw_exception(zend_ce_parse_error,
1068
0
                "Invalid UTF-8 codepoint escape sequence", 0);
1069
0
              zval_ptr_dtor(zendlval);
1070
0
              ZVAL_UNDEF(zendlval);
1071
0
              return FAILURE;
1072
0
            }
1073
1074
3
            errno = 0;
1075
3
            codepoint = strtoul(start + 1, NULL, 16);
1076
1077
            /* per RFC 3629, UTF-8 can only represent 21 bits */
1078
3
            if (codepoint > 0x10FFFF || errno) {
1079
3
              zend_throw_exception(zend_ce_parse_error,
1080
3
                "Invalid UTF-8 codepoint escape sequence: Codepoint too large", 0);
1081
3
              zval_ptr_dtor(zendlval);
1082
3
              ZVAL_UNDEF(zendlval);
1083
3
              return FAILURE;
1084
3
            }
1085
1086
            /* based on https://en.wikipedia.org/wiki/UTF-8#Sample_code */
1087
0
            if (codepoint < 0x80) {
1088
0
              *t++ = codepoint;
1089
0
            } else if (codepoint <= 0x7FF) {
1090
0
              *t++ = (codepoint >> 6) + 0xC0;
1091
0
              *t++ = (codepoint & 0x3F) + 0x80;
1092
0
            } else if (codepoint <= 0xFFFF) {
1093
0
              *t++ = (codepoint >> 12) + 0xE0;
1094
0
              *t++ = ((codepoint >> 6) & 0x3F) + 0x80;
1095
0
              *t++ = (codepoint & 0x3F) + 0x80;
1096
0
            } else if (codepoint <= 0x10FFFF) {
1097
0
              *t++ = (codepoint >> 18) + 0xF0;
1098
0
              *t++ = ((codepoint >> 12) & 0x3F) + 0x80;
1099
0
              *t++ = ((codepoint >> 6) & 0x3F) + 0x80;
1100
0
              *t++ = (codepoint & 0x3F) + 0x80;
1101
0
            }
1102
0
          }
1103
0
          break;
1104
42.5k
        default:
1105
          /* check for an octal */
1106
42.5k
          if (ZEND_IS_OCT(*s)) {
1107
10.8k
            char octal_buf[4] = { 0, 0, 0, 0 };
1108
1109
10.8k
            octal_buf[0] = *s;
1110
10.8k
            if (ZEND_IS_OCT(*(s+1))) {
1111
2.70k
              octal_buf[1] = *(++s);
1112
2.70k
              if (ZEND_IS_OCT(*(s+1))) {
1113
148
                octal_buf[2] = *(++s);
1114
148
              }
1115
2.70k
            }
1116
10.8k
            if (octal_buf[2] && (octal_buf[0] > '3') && !SCNG(heredoc_scan_ahead)) {
1117
              /* 3 octit values must not overflow 0xFF (\377) */
1118
52
              zend_error(E_COMPILE_WARNING, "Octal escape sequence overflow \\%s is greater than \\377", octal_buf);
1119
52
            }
1120
1121
10.8k
            *t++ = (char) ZEND_STRTOL(octal_buf, NULL, 8);
1122
31.7k
          } else {
1123
31.7k
            *t++ = '\\';
1124
31.7k
            *t++ = *s;
1125
31.7k
          }
1126
42.5k
          break;
1127
101k
      }
1128
1.34M
    } else {
1129
1.34M
      *t++ = *s;
1130
1.34M
    }
1131
1132
1.44M
    if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
1133
37.5k
      CG(zend_lineno)++;
1134
37.5k
    }
1135
1.44M
    s++;
1136
1.44M
  }
1137
46.3k
  *t = 0;
1138
46.3k
  Z_STRLEN_P(zendlval) = t - Z_STRVAL_P(zendlval);
1139
1140
222k
skip_escape_conversion:
1141
222k
  if (SCNG(output_filter)) {
1142
0
    size_t sz = 0;
1143
0
    unsigned char *str;
1144
    // TODO: avoid realocation ???
1145
0
    s = Z_STRVAL_P(zendlval);
1146
0
    SCNG(output_filter)(&str, &sz, (unsigned char *)s, Z_STRLEN_P(zendlval));
1147
0
    zval_ptr_dtor(zendlval);
1148
0
    ZVAL_STRINGL(zendlval, (char *) str, sz);
1149
0
    efree(str);
1150
0
  }
1151
222k
  return SUCCESS;
1152
46.3k
}
1153
1154
248k
#define HEREDOC_USING_SPACES 1
1155
8.21k
#define HEREDOC_USING_TABS 2
1156
1157
69.6k
static const char *next_newline(const char *str, const char *end, size_t *newline_len) {
1158
1.00M
  for (; str < end; str++) {
1159
982k
    if (*str == '\r') {
1160
6.92k
      *newline_len = str + 1 < end && *(str + 1) == '\n' ? 2 : 1;
1161
6.92k
      return str;
1162
975k
    } else if (*str == '\n') {
1163
38.7k
      *newline_len = 1;
1164
38.7k
      return str;
1165
38.7k
    }
1166
982k
  }
1167
24.0k
  *newline_len = 0;
1168
24.0k
  return NULL;
1169
69.6k
}
1170
1171
static bool strip_multiline_string_indentation(
1172
  zval *zendlval, int indentation, bool using_spaces,
1173
  bool newline_at_start, bool newline_at_end)
1174
22.8k
{
1175
22.8k
  const char *str = Z_STRVAL_P(zendlval), *end = str + Z_STRLEN_P(zendlval);
1176
22.8k
  char *copy = Z_STRVAL_P(zendlval);
1177
1178
22.8k
  uint32_t newline_count = 0;
1179
22.8k
  size_t newline_len;
1180
22.8k
  const char *nl;
1181
1182
22.8k
  if (!newline_at_start) {
1183
16.2k
    nl = next_newline(str, end, &newline_len);
1184
16.2k
    if (!nl) {
1185
9.77k
      return 1;
1186
9.77k
    }
1187
1188
6.50k
    str = nl + newline_len;
1189
6.50k
    copy = (char *) nl + newline_len;
1190
6.50k
    newline_count++;
1191
6.62k
  } else {
1192
6.62k
    nl = str;
1193
6.62k
  }
1194
1195
  /* <= intentional */
1196
59.9k
  while (str <= end && nl) {
1197
53.4k
    size_t skip;
1198
53.4k
    nl = next_newline(str, end, &newline_len);
1199
53.4k
    if (!nl && newline_at_end) {
1200
2.38k
      nl = end;
1201
2.38k
    }
1202
1203
    /* Try to skip indentation */
1204
54.5k
    for (skip = 0; skip < indentation; skip++, str++) {
1205
1.26k
      if (str == nl) {
1206
        /* Don't require full indentation on whitespace-only lines */
1207
132
        break;
1208
132
      }
1209
1210
1.13k
      if (str == end || (*str != ' ' && *str != '\t')) {
1211
30
        CG(zend_lineno) += newline_count;
1212
30
        zend_throw_exception_ex(zend_ce_parse_error, 0,
1213
30
          "Invalid body indentation level (expecting an indentation level of at least %d)", indentation);
1214
30
        goto error;
1215
30
      }
1216
1217
1.10k
      if ((!using_spaces && *str == ' ') || (using_spaces && *str == '\t')) {
1218
18
        CG(zend_lineno) += newline_count;
1219
18
        zend_throw_exception(zend_ce_parse_error,
1220
18
          "Invalid indentation - tabs and spaces cannot be mixed", 0);
1221
18
        goto error;
1222
18
      }
1223
1.10k
    }
1224
1225
53.3k
    if (str == end) {
1226
6.54k
      break;
1227
6.54k
    }
1228
1229
46.8k
    size_t len = nl ? (nl - str + newline_len) : (end - str);
1230
46.8k
    memmove(copy, str, len);
1231
46.8k
    str += len;
1232
46.8k
    copy += len;
1233
46.8k
    newline_count++;
1234
46.8k
  }
1235
1236
13.0k
  *copy = '\0';
1237
13.0k
  Z_STRLEN_P(zendlval) = copy - Z_STRVAL_P(zendlval);
1238
13.0k
  return 1;
1239
1240
48
error:
1241
48
  zval_ptr_dtor_str(zendlval);
1242
48
  ZVAL_UNDEF(zendlval);
1243
1244
48
  return 0;
1245
13.1k
}
1246
1247
static void copy_heredoc_label_stack(void *void_heredoc_label)
1248
248k
{
1249
248k
  zend_heredoc_label *heredoc_label = void_heredoc_label;
1250
248k
  zend_heredoc_label *new_heredoc_label = emalloc(sizeof(zend_heredoc_label));
1251
1252
248k
  *new_heredoc_label = *heredoc_label;
1253
248k
  new_heredoc_label->label = estrndup(heredoc_label->label, heredoc_label->length);
1254
1255
248k
  zend_ptr_stack_push(&SCNG(heredoc_label_stack), (void *) new_heredoc_label);
1256
248k
}
1257
1258
/* Check that { }, [ ], ( ) are nested correctly */
1259
static void report_bad_nesting(char opening, uint32_t opening_lineno, char closing)
1260
67.9k
{
1261
67.9k
  char   buf[256];
1262
67.9k
  size_t used = 0;
1263
1264
67.9k
  used = snprintf(buf, sizeof(buf), "Unclosed '%c'", opening);
1265
1266
67.9k
  if (opening_lineno != CG(zend_lineno)) {
1267
31.5k
    used += snprintf(buf + used, sizeof(buf) - used, " on line %d", opening_lineno);
1268
31.5k
  }
1269
1270
67.9k
  if (closing) {   /* 'closing' will be 0 if at end of file */
1271
51.5k
    used += snprintf(buf + used, sizeof(buf) - used, " does not match '%c'", closing);
1272
51.5k
  }
1273
1274
67.9k
  zend_throw_exception(zend_ce_parse_error, buf, 0);
1275
67.9k
}
1276
1277
static void enter_nesting(char opening)
1278
882k
{
1279
882k
  zend_nest_location nest_loc = {opening, CG(zend_lineno)};
1280
882k
  zend_stack_push(&SCNG(nest_location_stack), &nest_loc);
1281
882k
}
1282
1283
static zend_result exit_nesting(char closing)
1284
438k
{
1285
438k
  if (zend_stack_is_empty(&SCNG(nest_location_stack))) {
1286
2.96k
    zend_throw_exception_ex(zend_ce_parse_error, 0, "Unmatched '%c'", closing);
1287
2.96k
    return FAILURE;
1288
2.96k
  }
1289
1290
435k
  zend_nest_location *nest_loc = zend_stack_top(&SCNG(nest_location_stack));
1291
435k
  char opening = nest_loc->text;
1292
1293
435k
  if ((opening == '{' && closing != '}') ||
1294
397k
      (opening == '[' && closing != ']') ||
1295
393k
      (opening == '(' && closing != ')')) {
1296
51.5k
    report_bad_nesting(opening, nest_loc->lineno, closing);
1297
51.5k
    return FAILURE;
1298
51.5k
  }
1299
1300
384k
  zend_stack_del_top(&SCNG(nest_location_stack));
1301
384k
  return SUCCESS;
1302
435k
}
1303
1304
static zend_result check_nesting_at_end(void)
1305
48.5k
{
1306
48.5k
  if (!zend_stack_is_empty(&SCNG(nest_location_stack))) {
1307
16.3k
    zend_nest_location *nest_loc = zend_stack_top(&SCNG(nest_location_stack));
1308
16.3k
    report_bad_nesting(nest_loc->text, nest_loc->lineno, 0);
1309
16.3k
    return FAILURE;
1310
16.3k
  }
1311
1312
32.2k
  return SUCCESS;
1313
48.5k
}
1314
1315
#define PARSER_MODE() \
1316
4.94M
  EXPECTED(elem != NULL)
1317
1318
4.64M
#define RETURN_TOKEN(_token) do { \
1319
4.64M
    token = _token; \
1320
4.64M
    goto emit_token; \
1321
4.64M
  } while (0)
1322
1323
795k
#define RETURN_TOKEN_WITH_VAL(_token) do { \
1324
795k
    token = _token; \
1325
795k
    goto emit_token_with_val; \
1326
795k
  } while (0)
1327
1328
1.56M
#define RETURN_TOKEN_WITH_STR(_token, _offset) do { \
1329
1.56M
    token = _token; \
1330
1.56M
    offset = _offset; \
1331
1.56M
    goto emit_token_with_str; \
1332
1.56M
  } while (0)
1333
1334
333k
#define RETURN_TOKEN_WITH_IDENT(_token) do { \
1335
333k
    token = _token; \
1336
333k
    goto emit_token_with_ident; \
1337
333k
  } while (0)
1338
1339
262k
#define RETURN_OR_SKIP_TOKEN(_token) do { \
1340
262k
    token = _token; \
1341
262k
    if (PARSER_MODE()) { \
1342
76.2k
      goto skip_token; \
1343
76.2k
    } \
1344
262k
    goto emit_token; \
1345
262k
  } while (0)
1346
1347
438k
#define RETURN_EXIT_NESTING_TOKEN(_token) do { \
1348
438k
    if (exit_nesting(_token) != SUCCESS && PARSER_MODE()) { \
1349
54
      RETURN_TOKEN(T_ERROR); \
1350
438k
    } else { \
1351
438k
      RETURN_TOKEN(_token); \
1352
438k
    } \
1353
438k
  } while(0)
1354
1355
48.5k
#define RETURN_END_TOKEN do { \
1356
48.5k
    if (check_nesting_at_end() != SUCCESS && PARSER_MODE()) { \
1357
972
      RETURN_TOKEN(T_ERROR); \
1358
47.6k
    } else { \
1359
47.6k
      RETURN_TOKEN(END); \
1360
47.6k
    } \
1361
48.5k
  } while (0)
1362
1363
int ZEND_FASTCALL lex_scan(zval *zendlval, zend_parser_stack_elem *elem)
1364
8.25M
{
1365
8.25M
int token;
1366
8.25M
int offset;
1367
8.25M
uint32_t start_line = CG(zend_lineno);
1368
1369
8.25M
  ZVAL_UNDEF(zendlval);
1370
9.75M
restart:
1371
9.75M
  SCNG(yy_text) = YYCURSOR;
1372
1373
1374
9.75M
#line 1375 "Zend/zend_language_scanner.c"
1375
9.75M
{
1376
9.75M
  YYCTYPE yych;
1377
9.75M
  unsigned int yyaccept = 0;
1378
9.75M
  if (YYGETCONDITION() < 5) {
1379
9.31M
    if (YYGETCONDITION() < 2) {
1380
8.42M
      if (YYGETCONDITION() < 1) {
1381
8.29M
        goto yyc_ST_IN_SCRIPTING;
1382
8.29M
      } else {
1383
135k
        goto yyc_ST_LOOKING_FOR_PROPERTY;
1384
135k
      }
1385
8.42M
    } else {
1386
886k
      if (YYGETCONDITION() < 3) {
1387
37.0k
        goto yyc_ST_BACKQUOTE;
1388
849k
      } else {
1389
849k
        if (YYGETCONDITION() < 4) {
1390
224k
          goto yyc_ST_DOUBLE_QUOTES;
1391
624k
        } else {
1392
624k
          goto yyc_ST_HEREDOC;
1393
624k
        }
1394
849k
      }
1395
886k
    }
1396
9.31M
  } else {
1397
438k
    if (YYGETCONDITION() < 8) {
1398
337k
      if (YYGETCONDITION() < 6) {
1399
305k
        goto yyc_ST_LOOKING_FOR_VARNAME;
1400
305k
      } else {
1401
32.5k
        if (YYGETCONDITION() < 7) {
1402
32.5k
          goto yyc_ST_VAR_OFFSET;
1403
32.5k
        } else {
1404
0
          goto yyc_SHEBANG;
1405
0
        }
1406
32.5k
      }
1407
337k
    } else {
1408
100k
      if (YYGETCONDITION() < 9) {
1409
92.7k
        goto yyc_INITIAL;
1410
92.7k
      } else {
1411
7.73k
        if (YYGETCONDITION() < 10) {
1412
5.32k
          goto yyc_ST_END_HEREDOC;
1413
5.32k
        } else {
1414
2.41k
          goto yyc_ST_NOWDOC;
1415
2.41k
        }
1416
7.73k
      }
1417
100k
    }
1418
438k
  }
1419
/* *********************************** */
1420
8.29M
yyc_ST_IN_SCRIPTING:
1421
8.29M
  {
1422
8.29M
    static const unsigned char yybm[] = {
1423
      /* table 1 .. 8: 0 */
1424
8.29M
        0, 134, 134, 134, 134, 134, 134, 134, 
1425
8.29M
      134, 135,   4, 134, 134,   4, 134, 134, 
1426
8.29M
      134, 134, 134, 134, 134, 134, 134, 134, 
1427
8.29M
      134, 134, 134, 134, 134, 134, 134, 134, 
1428
8.29M
      135, 134, 134, 134, 134, 134, 134, 134, 
1429
8.29M
      134, 134,  66, 134, 134, 134, 134, 134, 
1430
8.29M
      190, 190, 182, 182, 182, 182, 182, 182, 
1431
8.29M
      166, 166, 134, 134, 134, 134, 134, 134, 
1432
8.29M
      134, 166, 166, 166, 166, 166, 166, 134, 
1433
8.29M
      134, 134, 134, 134, 134, 134, 134, 134, 
1434
8.29M
      134, 134, 134, 134, 134, 134, 134, 134, 
1435
8.29M
      134, 134, 134, 134, 134, 134, 134, 134, 
1436
8.29M
      134, 166, 166, 166, 166, 166, 166, 134, 
1437
8.29M
      134, 134, 134, 134, 134, 134, 134, 134, 
1438
8.29M
      134, 134, 134, 134, 134, 134, 134, 134, 
1439
8.29M
      134, 134, 134, 134, 134, 134, 134, 134, 
1440
8.29M
      134, 134, 134, 134, 134, 134, 134, 134, 
1441
8.29M
      134, 134, 134, 134, 134, 134, 134, 134, 
1442
8.29M
      134, 134, 134, 134, 134, 134, 134, 134, 
1443
8.29M
      134, 134, 134, 134, 134, 134, 134, 134, 
1444
8.29M
      134, 134, 134, 134, 134, 134, 134, 134, 
1445
8.29M
      134, 134, 134, 134, 134, 134, 134, 134, 
1446
8.29M
      134, 134, 134, 134, 134, 134, 134, 134, 
1447
8.29M
      134, 134, 134, 134, 134, 134, 134, 134, 
1448
8.29M
      134, 134, 134, 134, 134, 134, 134, 134, 
1449
8.29M
      134, 134, 134, 134, 134, 134, 134, 134, 
1450
8.29M
      134, 134, 134, 134, 134, 134, 134, 134, 
1451
8.29M
      134, 134, 134, 134, 134, 134, 134, 134, 
1452
8.29M
      134, 134, 134, 134, 134, 134, 134, 134, 
1453
8.29M
      134, 134, 134, 134, 134, 134, 134, 134, 
1454
8.29M
      134, 134, 134, 134, 134, 134, 134, 134, 
1455
8.29M
      134, 134, 134, 134, 134, 134, 134, 134, 
1456
      /* table 9 .. 11: 256 */
1457
8.29M
        0,   0,   0,   0,   0,   0,   0,   0, 
1458
8.29M
        0,  32,  32,   0,   0,  32,   0,   0, 
1459
8.29M
        0,   0,   0,   0,   0,   0,   0,   0, 
1460
8.29M
        0,   0,   0,   0,   0,   0,   0,   0, 
1461
8.29M
       32,   0,   0,   0,   0,   0,   0,   0, 
1462
8.29M
        0,   0,   0,   0,   0,   0,   0,   0, 
1463
8.29M
      192, 192, 192, 192, 192, 192, 192, 192, 
1464
8.29M
      192, 192,   0,   0,   0,   0,   0,   0, 
1465
8.29M
        0, 128, 128, 128, 128, 128, 128, 128, 
1466
8.29M
      128, 128, 128, 128, 128, 128, 128, 128, 
1467
8.29M
      128, 128, 128, 128, 128, 128, 128, 128, 
1468
8.29M
      128, 128, 128,   0,   0,   0,   0, 128, 
1469
8.29M
        0, 128, 128, 128, 128, 128, 128, 128, 
1470
8.29M
      128, 128, 128, 128, 128, 128, 128, 128, 
1471
8.29M
      128, 128, 128, 128, 128, 128, 128, 128, 
1472
8.29M
      128, 128, 128,   0,   0,   0,   0,   0, 
1473
8.29M
      128, 128, 128, 128, 128, 128, 128, 128, 
1474
8.29M
      128, 128, 128, 128, 128, 128, 128, 128, 
1475
8.29M
      128, 128, 128, 128, 128, 128, 128, 128, 
1476
8.29M
      128, 128, 128, 128, 128, 128, 128, 128, 
1477
8.29M
      128, 128, 128, 128, 128, 128, 128, 128, 
1478
8.29M
      128, 128, 128, 128, 128, 128, 128, 128, 
1479
8.29M
      128, 128, 128, 128, 128, 128, 128, 128, 
1480
8.29M
      128, 128, 128, 128, 128, 128, 128, 128, 
1481
8.29M
      128, 128, 128, 128, 128, 128, 128, 128, 
1482
8.29M
      128, 128, 128, 128, 128, 128, 128, 128, 
1483
8.29M
      128, 128, 128, 128, 128, 128, 128, 128, 
1484
8.29M
      128, 128, 128, 128, 128, 128, 128, 128, 
1485
8.29M
      128, 128, 128, 128, 128, 128, 128, 128, 
1486
8.29M
      128, 128, 128, 128, 128, 128, 128, 128, 
1487
8.29M
      128, 128, 128, 128, 128, 128, 128, 128, 
1488
8.29M
      128, 128, 128, 128, 128, 128, 128, 128, 
1489
8.29M
    };
1490
8.29M
    YYDEBUG(1, *YYCURSOR);
1491
8.29M
    YYFILL(16);
1492
8.29M
    yych = *YYCURSOR;
1493
8.29M
    if (yybm[256+yych] & 32) {
1494
1.83M
      goto yy5;
1495
1.83M
    }
1496
6.45M
    switch (yych) {
1497
858k
    case 0x00:
1498
889k
    case 0x01:
1499
898k
    case 0x02:
1500
903k
    case 0x03:
1501
992k
    case 0x04:
1502
1.01M
    case 0x05:
1503
1.01M
    case 0x06:
1504
1.03M
    case 0x07:
1505
1.04M
    case 0x08:
1506
1.04M
    case '\t':
1507
1.04M
    case '\n':
1508
1.05M
    case '\v':
1509
1.07M
    case '\f':
1510
1.07M
    case '\r':
1511
1.08M
    case 0x0E:
1512
1.08M
    case 0x0F:
1513
1.08M
    case 0x10:
1514
1.09M
    case 0x11:
1515
1.09M
    case 0x12:
1516
1.10M
    case 0x13:
1517
1.10M
    case 0x14:
1518
1.10M
    case 0x15:
1519
1.11M
    case 0x16:
1520
1.11M
    case 0x17:
1521
1.11M
    case 0x18:
1522
1.11M
    case 0x19:
1523
1.12M
    case 0x1A:
1524
1.12M
    case 0x1B:
1525
1.27M
    case 0x1C:
1526
1.27M
    case 0x1D:
1527
1.27M
    case 0x1E:
1528
1.28M
    case 0x1F:
1529
1.28M
    case 0x7F:  goto yy3;
1530
0
    case ' ':
1531
56.4k
    case '!': goto yy8;
1532
99.5k
    case '"': goto yy10;
1533
161k
    case '#': goto yy12;
1534
472k
    case '$': goto yy14;
1535
18.3k
    case '%': goto yy15;
1536
29.0k
    case '&': goto yy16;
1537
104k
    case '\'':  goto yy18;
1538
289k
    case '(': goto yy20;
1539
265k
    case ')':
1540
312k
    case ']': goto yy22;
1541
16.9k
    case '*': goto yy24;
1542
40.9k
    case '+': goto yy25;
1543
196k
    case ',':
1544
496k
    case ';':
1545
539k
    case '@':
1546
567k
    case '~': goto yy26;
1547
88.4k
    case '-': goto yy27;
1548
86.1k
    case '.': goto yy28;
1549
88.1k
    case '/': goto yy29;
1550
56.8k
    case '0': goto yy30;
1551
53.6k
    case '1':
1552
86.2k
    case '2':
1553
109k
    case '3':
1554
140k
    case '4':
1555
157k
    case '5':
1556
169k
    case '6':
1557
179k
    case '7':
1558
190k
    case '8':
1559
194k
    case '9': goto yy32;
1560
40.1k
    case ':': goto yy34;
1561
513k
    case '<': goto yy35;
1562
177k
    case '=': goto yy36;
1563
12.5k
    case '>': goto yy37;
1564
84.7k
    case '?': goto yy38;
1565
16.1k
    case 'A':
1566
50.6k
    case 'a': goto yy39;
1567
19.6k
    case 'B':
1568
28.4k
    case 'b': goto yy41;
1569
14.7k
    case 'C':
1570
90.9k
    case 'c': goto yy42;
1571
18.6k
    case 'D':
1572
27.4k
    case 'd': goto yy43;
1573
21.8k
    case 'E':
1574
127k
    case 'e': goto yy44;
1575
13.7k
    case 'F':
1576
98.7k
    case 'f': goto yy45;
1577
2.21k
    case 'G':
1578
11.5k
    case 'g': goto yy46;
1579
17.3k
    case 'I':
1580
67.3k
    case 'i': goto yy49;
1581
2.11k
    case 'L':
1582
13.8k
    case 'l': goto yy50;
1583
4.56k
    case 'M':
1584
19.6k
    case 'm': goto yy51;
1585
6.75k
    case 'N':
1586
52.3k
    case 'n': goto yy52;
1587
4.65k
    case 'O':
1588
20.7k
    case 'o': goto yy53;
1589
13.7k
    case 'P':
1590
133k
    case 'p': goto yy54;
1591
3.01k
    case 'R':
1592
33.1k
    case 'r': goto yy55;
1593
2.78k
    case 'S':
1594
54.4k
    case 's': goto yy56;
1595
13.3k
    case 'T':
1596
69.2k
    case 't': goto yy57;
1597
534
    case 'U':
1598
20.7k
    case 'u': goto yy58;
1599
4.76k
    case 'V':
1600
41.1k
    case 'v': goto yy59;
1601
4.00k
    case 'W':
1602
7.44k
    case 'w': goto yy60;
1603
2.56k
    case 'X':
1604
7.22k
    case 'x': goto yy61;
1605
1.13k
    case 'Y':
1606
19.8k
    case 'y': goto yy62;
1607
51.4k
    case '[': goto yy63;
1608
19.2k
    case '\\':  goto yy64;
1609
20.8k
    case '^': goto yy66;
1610
35.0k
    case '_': goto yy67;
1611
9.80k
    case '`': goto yy68;
1612
224k
    case '{': goto yy70;
1613
18.8k
    case '|': goto yy72;
1614
125k
    case '}': goto yy73;
1615
151k
    default:  goto yy47;
1616
6.45M
    }
1617
1.28M
yy3:
1618
1.28M
    YYDEBUG(3, *YYCURSOR);
1619
1.28M
    ++YYCURSOR;
1620
1.28M
    YYDEBUG(4, *YYCURSOR);
1621
1.28M
    yyleng = YYCURSOR - SCNG(yy_text);
1622
1.28M
#line 3179 "Zend/zend_language_scanner.l"
1623
1.28M
    {
1624
1.28M
  if (YYCURSOR > YYLIMIT) {
1625
18.3k
    RETURN_END_TOKEN;
1626
18.3k
  }
1627
1628
1.27M
  RETURN_TOKEN(T_BAD_CHARACTER);
1629
1.27M
}
1630
0
#line 1631 "Zend/zend_language_scanner.c"
1631
3.08M
yy5:
1632
3.08M
    YYDEBUG(5, *YYCURSOR);
1633
3.08M
    ++YYCURSOR;
1634
3.08M
    YYFILL(1);
1635
3.08M
    yych = *YYCURSOR;
1636
3.08M
    YYDEBUG(6, *YYCURSOR);
1637
3.08M
    if (yybm[256+yych] & 32) {
1638
1.24M
      goto yy5;
1639
1.24M
    }
1640
1.83M
    YYDEBUG(7, *YYCURSOR);
1641
1.83M
    yyleng = YYCURSOR - SCNG(yy_text);
1642
1.83M
#line 1596 "Zend/zend_language_scanner.l"
1643
1.83M
    {
1644
1.83M
  goto return_whitespace;
1645
3.08M
}
1646
0
#line 1647 "Zend/zend_language_scanner.c"
1647
56.4k
yy8:
1648
56.4k
    YYDEBUG(8, *YYCURSOR);
1649
56.4k
    yych = *++YYCURSOR;
1650
56.4k
    if (yych == '=') goto yy75;
1651
1.27M
yy9:
1652
1.27M
    YYDEBUG(9, *YYCURSOR);
1653
1.27M
    yyleng = YYCURSOR - SCNG(yy_text);
1654
1.27M
#line 1968 "Zend/zend_language_scanner.l"
1655
1.27M
    {
1656
1.27M
  RETURN_TOKEN(yytext[0]);
1657
1.27M
}
1658
0
#line 1659 "Zend/zend_language_scanner.c"
1659
99.8k
yy10:
1660
99.8k
    YYDEBUG(10, *YYCURSOR);
1661
99.8k
    ++YYCURSOR;
1662
99.8k
    YYDEBUG(11, *YYCURSOR);
1663
99.8k
    yyleng = YYCURSOR - SCNG(yy_text);
1664
99.8k
#line 2631 "Zend/zend_language_scanner.l"
1665
99.8k
    {
1666
99.8k
  int bprefix = (yytext[0] != '"') ? 1 : 0;
1667
1668
2.68M
  while (YYCURSOR < YYLIMIT) {
1669
2.67M
    switch (*YYCURSOR++) {
1670
73.8k
      case '"':
1671
73.8k
        yyleng = YYCURSOR - SCNG(yy_text);
1672
73.8k
        if (EXPECTED(zend_scan_escape_string(zendlval, yytext+bprefix+1, yyleng-bprefix-2, '"') == SUCCESS)
1673
73.8k
         || !PARSER_MODE()) {
1674
73.8k
          RETURN_TOKEN_WITH_VAL(T_CONSTANT_ENCAPSED_STRING);
1675
73.8k
        } else {
1676
0
          RETURN_TOKEN(T_ERROR);
1677
0
        }
1678
29.5k
      case '$':
1679
29.5k
        if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
1680
23.2k
          break;
1681
23.2k
        }
1682
6.35k
        continue;
1683
9.50k
      case '{':
1684
9.50k
        if (*YYCURSOR == '$') {
1685
2.00k
          break;
1686
2.00k
        }
1687
7.49k
        continue;
1688
78.5k
      case '\\':
1689
78.5k
        if (YYCURSOR < YYLIMIT) {
1690
78.5k
          YYCURSOR++;
1691
78.5k
        }
1692
78.5k
        ZEND_FALLTHROUGH;
1693
2.56M
      default:
1694
2.56M
        continue;
1695
2.67M
    }
1696
1697
25.2k
    YYCURSOR--;
1698
25.2k
    break;
1699
2.67M
  }
1700
1701
  /* Remember how much was scanned to save rescanning */
1702
99.8k
  SET_DOUBLE_QUOTES_SCANNED_LENGTH(YYCURSOR - SCNG(yy_text) - yyleng);
1703
1704
26.0k
  YYCURSOR = SCNG(yy_text) + yyleng;
1705
1706
26.0k
  BEGIN(ST_DOUBLE_QUOTES);
1707
26.0k
  RETURN_TOKEN('"');
1708
26.0k
}
1709
0
#line 1710 "Zend/zend_language_scanner.c"
1710
161k
yy12:
1711
161k
    YYDEBUG(12, *YYCURSOR);
1712
161k
    yych = *++YYCURSOR;
1713
161k
    if (yych == '[') goto yy77;
1714
193k
yy13:
1715
193k
    YYDEBUG(13, *YYCURSOR);
1716
193k
    yyleng = YYCURSOR - SCNG(yy_text);
1717
193k
#line 2459 "Zend/zend_language_scanner.l"
1718
193k
    {
1719
3.21M
  while (YYCURSOR < YYLIMIT) {
1720
3.21M
    switch (*YYCURSOR++) {
1721
35.7k
      case '\r':
1722
191k
      case '\n':
1723
191k
        YYCURSOR--;
1724
191k
        break;
1725
6.79k
      case '?':
1726
6.79k
        if (*YYCURSOR == '>') {
1727
272
          YYCURSOR--;
1728
272
          break;
1729
272
        }
1730
6.52k
        ZEND_FALLTHROUGH;
1731
3.02M
      default:
1732
3.02M
        continue;
1733
3.21M
    }
1734
1735
191k
    break;
1736
3.21M
  }
1737
1738
193k
  yyleng = YYCURSOR - SCNG(yy_text);
1739
193k
  RETURN_OR_SKIP_TOKEN(T_COMMENT);
1740
193k
}
1741
0
#line 1742 "Zend/zend_language_scanner.c"
1742
472k
yy14:
1743
472k
    YYDEBUG(14, *YYCURSOR);
1744
472k
    yych = *++YYCURSOR;
1745
472k
    if (yych <= '_') {
1746
25.0k
      if (yych <= '@') goto yy9;
1747
7.25k
      if (yych <= 'Z') goto yy79;
1748
840
      if (yych <= '^') goto yy9;
1749
624
      goto yy79;
1750
447k
    } else {
1751
447k
      if (yych <= '`') goto yy9;
1752
447k
      if (yych <= 'z') goto yy79;
1753
68.1k
      if (yych <= 0x7F) goto yy9;
1754
14.5k
      goto yy79;
1755
68.1k
    }
1756
18.3k
yy15:
1757
18.3k
    YYDEBUG(15, *YYCURSOR);
1758
18.3k
    yych = *++YYCURSOR;
1759
18.3k
    if (yych == '=') goto yy82;
1760
18.1k
    goto yy9;
1761
29.0k
yy16:
1762
29.0k
    YYDEBUG(16, *YYCURSOR);
1763
29.0k
    yyaccept = 0;
1764
29.0k
    yych = *(YYMARKER = ++YYCURSOR);
1765
29.0k
    if (yych <= '"') {
1766
9.62k
      if (yych <= '\f') {
1767
4.53k
        if (yych <= 0x08) goto yy17;
1768
4.19k
        if (yych <= '\n') goto yy85;
1769
5.08k
      } else {
1770
5.08k
        if (yych <= '\r') goto yy85;
1771
5.02k
        if (yych == ' ') goto yy85;
1772
5.02k
      }
1773
19.4k
    } else {
1774
19.4k
      if (yych <= '-') {
1775
7.68k
        if (yych <= '$') goto yy85;
1776
3.71k
        if (yych == '&') goto yy90;
1777
11.7k
      } else {
1778
11.7k
        if (yych <= '/') goto yy85;
1779
11.3k
        if (yych == '=') goto yy94;
1780
11.3k
      }
1781
19.4k
    }
1782
13.3k
yy17:
1783
13.3k
    YYDEBUG(17, *YYCURSOR);
1784
13.3k
    yyleng = YYCURSOR - SCNG(yy_text);
1785
13.3k
#line 1954 "Zend/zend_language_scanner.l"
1786
13.3k
    {
1787
13.3k
  RETURN_TOKEN(T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG);
1788
13.3k
}
1789
0
#line 1790 "Zend/zend_language_scanner.c"
1790
104k
yy18:
1791
104k
    YYDEBUG(18, *YYCURSOR);
1792
104k
    ++YYCURSOR;
1793
104k
    YYDEBUG(19, *YYCURSOR);
1794
104k
    yyleng = YYCURSOR - SCNG(yy_text);
1795
104k
#line 2537 "Zend/zend_language_scanner.l"
1796
104k
    {
1797
104k
  char *s, *t;
1798
104k
  char *end;
1799
104k
  int bprefix = (yytext[0] != '\'') ? 1 : 0;
1800
1801
14.6M
  while (1) {
1802
14.6M
    if (YYCURSOR < YYLIMIT) {
1803
14.6M
      if (*YYCURSOR == '\'') {
1804
101k
        YYCURSOR++;
1805
101k
        yyleng = YYCURSOR - SCNG(yy_text);
1806
1807
101k
        break;
1808
14.5M
      } else if (*YYCURSOR++ == '\\' && YYCURSOR < YYLIMIT) {
1809
34.7k
        YYCURSOR++;
1810
34.7k
      }
1811
14.6M
    } else {
1812
3.00k
      yyleng = YYLIMIT - SCNG(yy_text);
1813
1814
      /* Unclosed single quotes; treat similar to double quotes, but without a separate token
1815
       * for ' (unrecognized by parser), instead of old flex fallback to "Unexpected character..."
1816
       * rule, which continued in ST_IN_SCRIPTING state after the quote */
1817
3.00k
      ZVAL_NULL(zendlval);
1818
3.00k
      RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
1819
3.00k
    }
1820
14.6M
  }
1821
1822
101k
  if (yyleng-bprefix-2 <= 1) {
1823
11.8k
    if (yyleng-bprefix-2 < 1) {
1824
1.64k
      ZVAL_EMPTY_STRING(zendlval);
1825
10.1k
    } else {
1826
10.1k
      zend_uchar c = (zend_uchar)*(yytext+bprefix+1);
1827
10.1k
      HANDLE_NEWLINE(c);
1828
10.1k
      ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR(c));
1829
10.1k
    }
1830
11.8k
    goto skip_escape_conversion;
1831
11.8k
  }
1832
89.4k
  ZVAL_STRINGL(zendlval, yytext+bprefix+1, yyleng-bprefix-2);
1833
1834
  /* convert escape sequences */
1835
89.4k
  s = Z_STRVAL_P(zendlval);
1836
89.4k
  end = s+Z_STRLEN_P(zendlval);
1837
10.4M
  while (1) {
1838
10.4M
    if (UNEXPECTED(*s=='\\')) {
1839
12.7k
      break;
1840
12.7k
    }
1841
10.3M
    if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
1842
155k
      CG(zend_lineno)++;
1843
155k
    }
1844
10.3M
    s++;
1845
10.3M
    if (s == end) {
1846
76.7k
      goto skip_escape_conversion;
1847
76.7k
    }
1848
10.3M
  }
1849
1850
12.7k
  t = s;
1851
3.97M
  while (s<end) {
1852
3.96M
    if (*s=='\\') {
1853
34.3k
      s++;
1854
34.3k
      if (*s == '\\' || *s == '\'') {
1855
10.1k
        *t++ = *s;
1856
24.1k
      } else {
1857
24.1k
        *t++ = '\\';
1858
24.1k
        *t++ = *s;
1859
24.1k
      }
1860
3.92M
    } else {
1861
3.92M
      *t++ = *s;
1862
3.92M
    }
1863
3.96M
    if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
1864
63.7k
      CG(zend_lineno)++;
1865
63.7k
    }
1866
3.96M
    s++;
1867
3.96M
  }
1868
12.7k
  *t = 0;
1869
12.7k
  Z_STRLEN_P(zendlval) = t - Z_STRVAL_P(zendlval);
1870
1871
101k
skip_escape_conversion:
1872
101k
  if (SCNG(output_filter)) {
1873
0
    size_t sz = 0;
1874
0
    char *str = NULL;
1875
0
    zend_string *new_str;
1876
0
    s = Z_STRVAL_P(zendlval);
1877
    // TODO: avoid reallocation ???
1878
0
    SCNG(output_filter)((unsigned char **)&str, &sz, (unsigned char *)s, Z_STRLEN_P(zendlval));
1879
0
    new_str = zend_string_init(str, sz, 0);
1880
0
    if (str != s) {
1881
0
      efree(str);
1882
0
    }
1883
0
    zend_string_release_ex(Z_STR_P(zendlval), 0);
1884
0
    ZVAL_STR(zendlval, new_str);
1885
0
  }
1886
101k
  RETURN_TOKEN_WITH_VAL(T_CONSTANT_ENCAPSED_STRING);
1887
101k
}
1888
0
#line 1889 "Zend/zend_language_scanner.c"
1889
289k
yy20:
1890
289k
    YYDEBUG(20, *YYCURSOR);
1891
289k
    yyaccept = 1;
1892
289k
    yych = *(YYMARKER = ++YYCURSOR);
1893
289k
    if (yych <= 'S') {
1894
228k
      if (yych <= 'D') {
1895
213k
        if (yych <= ' ') {
1896
14.4k
          if (yych == '\t') goto yy97;
1897
13.0k
          if (yych >= ' ') goto yy97;
1898
198k
        } else {
1899
198k
          if (yych <= '@') goto yy21;
1900
6.03k
          if (yych != 'C') goto yy97;
1901
6.03k
        }
1902
213k
      } else {
1903
15.6k
        if (yych <= 'I') {
1904
14.4k
          if (yych == 'F') goto yy97;
1905
13.5k
          if (yych >= 'I') goto yy97;
1906
13.5k
        } else {
1907
1.15k
          if (yych == 'O') goto yy97;
1908
1.10k
          if (yych >= 'R') goto yy97;
1909
1.10k
        }
1910
15.6k
      }
1911
228k
    } else {
1912
61.0k
      if (yych <= 'f') {
1913
25.5k
        if (yych <= 'b') {
1914
14.8k
          if (yych <= 'T') goto yy21;
1915
12.8k
          if (yych <= 'V') goto yy97;
1916
12.7k
          if (yych >= 'a') goto yy97;
1917
12.7k
        } else {
1918
10.6k
          if (yych == 'd') goto yy97;
1919
10.3k
          if (yych >= 'f') goto yy97;
1920
10.3k
        }
1921
35.4k
      } else {
1922
35.4k
        if (yych <= 'o') {
1923
14.1k
          if (yych == 'i') goto yy97;
1924
9.80k
          if (yych >= 'o') goto yy97;
1925
21.3k
        } else {
1926
21.3k
          if (yych <= 's') {
1927
16.0k
            if (yych >= 'r') goto yy97;
1928
16.0k
          } else {
1929
5.35k
            if (yych <= 't') goto yy21;
1930
4.68k
            if (yych <= 'v') goto yy97;
1931
4.68k
          }
1932
21.3k
        }
1933
35.4k
      }
1934
61.0k
    }
1935
339k
yy21:
1936
339k
    YYDEBUG(21, *YYCURSOR);
1937
339k
    yyleng = YYCURSOR - SCNG(yy_text);
1938
339k
#line 1963 "Zend/zend_language_scanner.l"
1939
339k
    {
1940
339k
  enter_nesting(yytext[0]);
1941
339k
  RETURN_TOKEN(yytext[0]);
1942
339k
}
1943
0
#line 1944 "Zend/zend_language_scanner.c"
1944
312k
yy22:
1945
312k
    YYDEBUG(22, *YYCURSOR);
1946
312k
    ++YYCURSOR;
1947
312k
    YYDEBUG(23, *YYCURSOR);
1948
312k
    yyleng = YYCURSOR - SCNG(yy_text);
1949
312k
#line 1958 "Zend/zend_language_scanner.l"
1950
312k
    {
1951
  /* Check that ] and ) match up properly with a preceding [ or ( */
1952
312k
  RETURN_EXIT_NESTING_TOKEN(yytext[0]);
1953
312k
}
1954
0
#line 1955 "Zend/zend_language_scanner.c"
1955
16.9k
yy24:
1956
16.9k
    YYDEBUG(24, *YYCURSOR);
1957
16.9k
    yych = *++YYCURSOR;
1958
16.9k
    if (yych == '*') goto yy108;
1959
15.9k
    if (yych == '=') goto yy110;
1960
14.3k
    goto yy9;
1961
40.9k
yy25:
1962
40.9k
    YYDEBUG(25, *YYCURSOR);
1963
40.9k
    yych = *++YYCURSOR;
1964
40.9k
    if (yych == '+') goto yy112;
1965
35.6k
    if (yych == '=') goto yy114;
1966
33.9k
    goto yy9;
1967
567k
yy26:
1968
567k
    YYDEBUG(26, *YYCURSOR);
1969
567k
    ++YYCURSOR;
1970
567k
    goto yy9;
1971
88.4k
yy27:
1972
88.4k
    YYDEBUG(27, *YYCURSOR);
1973
88.4k
    yych = *++YYCURSOR;
1974
88.4k
    if (yych <= '<') {
1975
32.3k
      if (yych == '-') goto yy116;
1976
28.5k
      goto yy9;
1977
56.0k
    } else {
1978
56.0k
      if (yych <= '=') goto yy118;
1979
55.6k
      if (yych <= '>') goto yy120;
1980
14.6k
      goto yy9;
1981
55.6k
    }
1982
86.1k
yy28:
1983
86.1k
    YYDEBUG(28, *YYCURSOR);
1984
86.1k
    yyaccept = 2;
1985
86.1k
    yych = *(YYMARKER = ++YYCURSOR);
1986
86.1k
    if (yych <= '/') {
1987
37.5k
      if (yych == '.') goto yy122;
1988
34.3k
      goto yy9;
1989
48.6k
    } else {
1990
48.6k
      if (yych <= '9') goto yy123;
1991
46.0k
      if (yych == '=') goto yy126;
1992
10.2k
      goto yy9;
1993
46.0k
    }
1994
88.1k
yy29:
1995
88.1k
    YYDEBUG(29, *YYCURSOR);
1996
88.1k
    yych = *++YYCURSOR;
1997
88.1k
    if (yych <= '.') {
1998
38.8k
      if (yych == '*') goto yy128;
1999
12.4k
      goto yy9;
2000
49.2k
    } else {
2001
49.2k
      if (yych <= '/') goto yy130;
2002
14.4k
      if (yych == '=') goto yy131;
2003
14.1k
      goto yy9;
2004
14.4k
    }
2005
56.8k
yy30:
2006
56.8k
    YYDEBUG(30, *YYCURSOR);
2007
56.8k
    yyaccept = 3;
2008
56.8k
    yych = *(YYMARKER = ++YYCURSOR);
2009
56.8k
    if (yych <= 'X') {
2010
41.7k
      if (yych <= 'N') {
2011
41.4k
        if (yych == 'B') goto yy134;
2012
41.2k
        goto yy33;
2013
41.4k
      } else {
2014
338
        if (yych <= 'O') goto yy136;
2015
179
        if (yych <= 'W') goto yy33;
2016
153
        goto yy137;
2017
179
      }
2018
41.7k
    } else {
2019
15.0k
      if (yych <= 'n') {
2020
9.17k
        if (yych == 'b') goto yy134;
2021
8.76k
        goto yy33;
2022
9.17k
      } else {
2023
5.86k
        if (yych <= 'o') goto yy136;
2024
5.84k
        if (yych == 'x') goto yy137;
2025
4.54k
        goto yy33;
2026
5.84k
      }
2027
15.0k
    }
2028
242k
yy31:
2029
242k
    YYDEBUG(31, *YYCURSOR);
2030
242k
    yyleng = YYCURSOR - SCNG(yy_text);
2031
242k
#line 2102 "Zend/zend_language_scanner.l"
2032
242k
    {
2033
242k
  size_t len = yyleng;
2034
242k
  char *end, *lnum = yytext;
2035
242k
  bool is_octal = lnum[0] == '0';
2036
242k
  bool contains_underscores = (memchr(lnum, '_', len) != NULL);
2037
2038
242k
  if (contains_underscores) {
2039
374
    lnum = estrndup(lnum, len);
2040
374
    strip_underscores(lnum, &len);
2041
374
  }
2042
2043
  /* Digits 8 and 9 are illegal in octal literals. */
2044
242k
  if (is_octal) {
2045
52.1k
    size_t i;
2046
150k
    for (i = 0; i < len; i++) {
2047
99.4k
      if (lnum[i] == '8' || lnum[i] == '9') {
2048
1.12k
        zend_throw_exception(zend_ce_parse_error, "Invalid numeric literal", 0);
2049
1.12k
        if (PARSER_MODE()) {
2050
0
          if (contains_underscores) {
2051
0
            efree(lnum);
2052
0
          }
2053
0
          ZVAL_UNDEF(zendlval);
2054
0
          RETURN_TOKEN(T_ERROR);
2055
0
        }
2056
2057
        /* Continue in order to determine if this is T_LNUMBER or T_DNUMBER. */
2058
1.12k
        len = i;
2059
1.12k
        break;
2060
1.12k
      }
2061
99.4k
    }
2062
52.1k
  }
2063
2064
2065
242k
  if (len < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
2066
234k
    errno = 0;
2067
    /* base must be passed explicitly for correct parse error on Windows */
2068
234k
    ZVAL_LONG(zendlval, ZEND_STRTOL(lnum, &end, is_octal ? 8 : 10));
2069
234k
    ZEND_ASSERT(end == lnum + len);
2070
234k
  } else {
2071
8.11k
    errno = 0;
2072
8.11k
    ZVAL_LONG(zendlval, ZEND_STRTOL(lnum, &end, 0));
2073
8.11k
    if (errno == ERANGE) { /* Overflow */
2074
7.03k
      errno = 0;
2075
7.03k
      if (is_octal) { /* octal overflow */
2076
62
        ZVAL_DOUBLE(zendlval, zend_oct_strtod(lnum, (const char **)&end));
2077
6.97k
      } else {
2078
6.97k
        ZVAL_DOUBLE(zendlval, zend_strtod(lnum, (const char **)&end));
2079
6.97k
      }
2080
7.03k
      ZEND_ASSERT(end == lnum + len);
2081
7.03k
      if (contains_underscores) {
2082
3
        efree(lnum);
2083
3
      }
2084
7.03k
      RETURN_TOKEN_WITH_VAL(T_DNUMBER);
2085
7.03k
    }
2086
1.07k
    ZEND_ASSERT(end == lnum + len);
2087
1.07k
  }
2088
235k
  ZEND_ASSERT(!errno);
2089
235k
  if (contains_underscores) {
2090
371
    efree(lnum);
2091
371
  }
2092
235k
  RETURN_TOKEN_WITH_VAL(T_LNUMBER);
2093
235k
}
2094
0
#line 2095 "Zend/zend_language_scanner.c"
2095
816k
yy32:
2096
816k
    YYDEBUG(32, *YYCURSOR);
2097
816k
    yyaccept = 3;
2098
816k
    YYMARKER = ++YYCURSOR;
2099
816k
    YYFILL(3);
2100
816k
    yych = *YYCURSOR;
2101
871k
yy33:
2102
871k
    YYDEBUG(33, *YYCURSOR);
2103
871k
    if (yybm[256+yych] & 64) {
2104
621k
      goto yy32;
2105
621k
    }
2106
250k
    if (yych <= 'E') {
2107
205k
      if (yych == '.') goto yy133;
2108
198k
      if (yych <= 'D') goto yy31;
2109
639
      goto yy135;
2110
198k
    } else {
2111
44.8k
      if (yych <= '_') {
2112
21.7k
        if (yych <= '^') goto yy31;
2113
512
        goto yy138;
2114
23.1k
      } else {
2115
23.1k
        if (yych == 'e') goto yy135;
2116
22.2k
        goto yy31;
2117
23.1k
      }
2118
44.8k
    }
2119
40.1k
yy34:
2120
40.1k
    YYDEBUG(34, *YYCURSOR);
2121
40.1k
    yych = *++YYCURSOR;
2122
40.1k
    if (yych == ':') goto yy139;
2123
21.3k
    goto yy9;
2124
513k
yy35:
2125
513k
    YYDEBUG(35, *YYCURSOR);
2126
513k
    yych = *++YYCURSOR;
2127
513k
    if (yych <= ';') goto yy9;
2128
487k
    if (yych <= '<') goto yy141;
2129
106k
    if (yych <= '=') goto yy143;
2130
104k
    if (yych <= '>') goto yy145;
2131
104k
    goto yy9;
2132
177k
yy36:
2133
177k
    YYDEBUG(36, *YYCURSOR);
2134
177k
    yych = *++YYCURSOR;
2135
177k
    if (yych <= '<') goto yy9;
2136
22.8k
    if (yych <= '=') goto yy146;
2137
13.8k
    if (yych <= '>') goto yy148;
2138
4.34k
    goto yy9;
2139
12.5k
yy37:
2140
12.5k
    YYDEBUG(37, *YYCURSOR);
2141
12.5k
    yych = *++YYCURSOR;
2142
12.5k
    if (yych <= '<') goto yy9;
2143
6.22k
    if (yych <= '=') goto yy150;
2144
5.20k
    if (yych <= '>') goto yy152;
2145
3.41k
    goto yy9;
2146
84.7k
yy38:
2147
84.7k
    YYDEBUG(38, *YYCURSOR);
2148
84.7k
    yyaccept = 2;
2149
84.7k
    yych = *(YYMARKER = ++YYCURSOR);
2150
84.7k
    if (yych <= '=') {
2151
27.0k
      if (yych == '-') goto yy154;
2152
20.2k
      goto yy9;
2153
57.6k
    } else {
2154
57.6k
      if (yych <= '>') goto yy155;
2155
28.4k
      if (yych <= '?') goto yy157;
2156
24.2k
      goto yy9;
2157
28.4k
    }
2158
50.6k
yy39:
2159
50.6k
    YYDEBUG(39, *YYCURSOR);
2160
50.6k
    yyaccept = 4;
2161
50.6k
    yych = *(YYMARKER = ++YYCURSOR);
2162
50.6k
    if (yych <= 'S') {
2163
16.2k
      if (yych <= 'M') {
2164
15.7k
        if (yych == 'B') goto yy159;
2165
15.6k
        goto yy48;
2166
15.7k
      } else {
2167
518
        if (yych <= 'N') goto yy160;
2168
346
        if (yych <= 'Q') goto yy48;
2169
248
        if (yych <= 'R') goto yy161;
2170
114
        goto yy162;
2171
248
      }
2172
34.4k
    } else {
2173
34.4k
      if (yych <= 'n') {
2174
8.45k
        if (yych == 'b') goto yy159;
2175
6.11k
        if (yych <= 'm') goto yy48;
2176
2.57k
        goto yy160;
2177
25.9k
      } else {
2178
25.9k
        if (yych <= 'q') goto yy48;
2179
25.3k
        if (yych <= 'r') goto yy161;
2180
14.1k
        if (yych <= 's') goto yy162;
2181
4.44k
        goto yy48;
2182
14.1k
      }
2183
34.4k
    }
2184
841k
yy40:
2185
841k
    YYDEBUG(40, *YYCURSOR);
2186
841k
    yyleng = YYCURSOR - SCNG(yy_text);
2187
841k
#line 2454 "Zend/zend_language_scanner.l"
2188
841k
    {
2189
841k
  RETURN_TOKEN_WITH_STR(T_STRING, 0);
2190
841k
}
2191
0
#line 2192 "Zend/zend_language_scanner.c"
2192
28.4k
yy41:
2193
28.4k
    YYDEBUG(41, *YYCURSOR);
2194
28.4k
    yyaccept = 4;
2195
28.4k
    yych = *(YYMARKER = ++YYCURSOR);
2196
28.4k
    if (yych <= ';') {
2197
7.36k
      if (yych <= '"') {
2198
4.30k
        if (yych <= '!') goto yy48;
2199
338
        goto yy10;
2200
4.30k
      } else {
2201
3.05k
        if (yych == '\'') goto yy18;
2202
2.89k
        goto yy48;
2203
3.05k
      }
2204
21.1k
    } else {
2205
21.1k
      if (yych <= 'R') {
2206
6.59k
        if (yych <= '<') goto yy165;
2207
4.04k
        if (yych <= 'Q') goto yy48;
2208
10
        goto yy166;
2209
14.5k
      } else {
2210
14.5k
        if (yych == 'r') goto yy166;
2211
13.7k
        goto yy48;
2212
14.5k
      }
2213
21.1k
    }
2214
90.9k
yy42:
2215
90.9k
    YYDEBUG(42, *YYCURSOR);
2216
90.9k
    yyaccept = 4;
2217
90.9k
    yych = *(YYMARKER = ++YYCURSOR);
2218
90.9k
    if (yych <= 'O') {
2219
15.4k
      if (yych <= 'K') {
2220
13.6k
        if (yych == 'A') goto yy167;
2221
13.5k
        goto yy48;
2222
13.6k
      } else {
2223
1.89k
        if (yych <= 'L') goto yy168;
2224
951
        if (yych <= 'N') goto yy48;
2225
943
        goto yy169;
2226
951
      }
2227
75.4k
    } else {
2228
75.4k
      if (yych <= 'k') {
2229
31.8k
        if (yych == 'a') goto yy167;
2230
9.60k
        goto yy48;
2231
43.5k
      } else {
2232
43.5k
        if (yych <= 'l') goto yy168;
2233
16.3k
        if (yych == 'o') goto yy169;
2234
4.41k
        goto yy48;
2235
16.3k
      }
2236
75.4k
    }
2237
27.4k
yy43:
2238
27.4k
    YYDEBUG(43, *YYCURSOR);
2239
27.4k
    yyaccept = 4;
2240
27.4k
    yych = *(YYMARKER = ++YYCURSOR);
2241
27.4k
    if (yych <= 'O') {
2242
5.63k
      if (yych <= 'H') {
2243
3.79k
        if (yych == 'E') goto yy170;
2244
2.97k
        goto yy48;
2245
3.79k
      } else {
2246
1.84k
        if (yych <= 'I') goto yy171;
2247
1.79k
        if (yych <= 'N') goto yy48;
2248
1.51k
        goto yy172;
2249
1.79k
      }
2250
21.8k
    } else {
2251
21.8k
      if (yych <= 'h') {
2252
16.9k
        if (yych == 'e') goto yy170;
2253
13.3k
        goto yy48;
2254
16.9k
      } else {
2255
4.85k
        if (yych <= 'i') goto yy171;
2256
4.30k
        if (yych == 'o') goto yy172;
2257
3.72k
        goto yy48;
2258
4.30k
      }
2259
21.8k
    }
2260
127k
yy44:
2261
127k
    YYDEBUG(44, *YYCURSOR);
2262
127k
    yyaccept = 4;
2263
127k
    yych = *(YYMARKER = ++YYCURSOR);
2264
127k
    switch (yych) {
2265
214
    case 'C':
2266
27.6k
    case 'c': goto yy174;
2267
170
    case 'L':
2268
2.00k
    case 'l': goto yy175;
2269
39
    case 'M':
2270
1.15k
    case 'm': goto yy176;
2271
19.1k
    case 'N':
2272
54.3k
    case 'n': goto yy177;
2273
42
    case 'V':
2274
867
    case 'v': goto yy178;
2275
146
    case 'X':
2276
19.6k
    case 'x': goto yy179;
2277
21.6k
    default:  goto yy48;
2278
127k
    }
2279
98.7k
yy45:
2280
98.7k
    YYDEBUG(45, *YYCURSOR);
2281
98.7k
    yyaccept = 4;
2282
98.7k
    yych = *(YYMARKER = ++YYCURSOR);
2283
98.7k
    if (yych <= 'U') {
2284
8.63k
      if (yych <= 'M') {
2285
4.27k
        if (yych == 'I') goto yy180;
2286
4.06k
        goto yy48;
2287
4.36k
      } else {
2288
4.36k
        if (yych <= 'N') goto yy181;
2289
4.32k
        if (yych <= 'O') goto yy183;
2290
2.36k
        if (yych <= 'T') goto yy48;
2291
328
        goto yy184;
2292
2.36k
      }
2293
90.1k
    } else {
2294
90.1k
      if (yych <= 'n') {
2295
12.2k
        if (yych == 'i') goto yy180;
2296
8.40k
        if (yych <= 'm') goto yy48;
2297
1.63k
        goto yy181;
2298
77.8k
      } else {
2299
77.8k
        if (yych <= 'o') goto yy183;
2300
43.7k
        if (yych == 'u') goto yy184;
2301
4.25k
        goto yy48;
2302
43.7k
      }
2303
90.1k
    }
2304
11.5k
yy46:
2305
11.5k
    YYDEBUG(46, *YYCURSOR);
2306
11.5k
    yyaccept = 4;
2307
11.5k
    yych = *(YYMARKER = ++YYCURSOR);
2308
11.5k
    if (yych <= 'O') {
2309
2.04k
      if (yych == 'L') goto yy185;
2310
1.78k
      if (yych <= 'N') goto yy48;
2311
138
      goto yy186;
2312
9.51k
    } else {
2313
9.51k
      if (yych <= 'l') {
2314
8.00k
        if (yych <= 'k') goto yy48;
2315
1.19k
        goto yy185;
2316
8.00k
      } else {
2317
1.51k
        if (yych == 'o') goto yy186;
2318
1.13k
        goto yy48;
2319
1.51k
      }
2320
9.51k
    }
2321
4.08M
yy47:
2322
4.08M
    YYDEBUG(47, *YYCURSOR);
2323
4.08M
    yyaccept = 4;
2324
4.08M
    YYMARKER = ++YYCURSOR;
2325
4.08M
    YYFILL(1);
2326
4.08M
    yych = *YYCURSOR;
2327
4.72M
yy48:
2328
4.72M
    YYDEBUG(48, *YYCURSOR);
2329
4.72M
    if (yybm[256+yych] & 128) {
2330
3.88M
      goto yy47;
2331
3.88M
    }
2332
840k
    if (yych == '\\') goto yy164;
2333
833k
    goto yy40;
2334
833k
yy49:
2335
67.3k
    YYDEBUG(49, *YYCURSOR);
2336
67.3k
    yyaccept = 4;
2337
67.3k
    yych = *(YYMARKER = ++YYCURSOR);
2338
67.3k
    if (yych <= 'S') {
2339
15.8k
      if (yych <= 'L') {
2340
11.3k
        if (yych == 'F') goto yy187;
2341
11.2k
        goto yy48;
2342
11.3k
      } else {
2343
4.54k
        if (yych <= 'M') goto yy189;
2344
4.44k
        if (yych <= 'N') goto yy190;
2345
775
        if (yych <= 'R') goto yy48;
2346
82
        goto yy191;
2347
775
      }
2348
51.4k
    } else {
2349
51.4k
      if (yych <= 'm') {
2350
29.2k
        if (yych == 'f') goto yy187;
2351
21.3k
        if (yych <= 'l') goto yy48;
2352
13.6k
        goto yy189;
2353
22.1k
      } else {
2354
22.1k
        if (yych <= 'n') goto yy190;
2355
9.08k
        if (yych == 's') goto yy191;
2356
4.30k
        goto yy48;
2357
9.08k
      }
2358
51.4k
    }
2359
13.8k
yy50:
2360
13.8k
    YYDEBUG(50, *YYCURSOR);
2361
13.8k
    yyaccept = 4;
2362
13.8k
    yych = *(YYMARKER = ++YYCURSOR);
2363
13.8k
    if (yych == 'I') goto yy192;
2364
13.5k
    if (yych == 'i') goto yy192;
2365
12.1k
    goto yy48;
2366
19.6k
yy51:
2367
19.6k
    YYDEBUG(51, *YYCURSOR);
2368
19.6k
    yyaccept = 4;
2369
19.6k
    yych = *(YYMARKER = ++YYCURSOR);
2370
19.6k
    if (yych == 'A') goto yy193;
2371
17.5k
    if (yych == 'a') goto yy193;
2372
16.7k
    goto yy48;
2373
52.3k
yy52:
2374
52.3k
    YYDEBUG(52, *YYCURSOR);
2375
52.3k
    yyaccept = 4;
2376
52.3k
    yych = *(YYMARKER = ++YYCURSOR);
2377
52.3k
    if (yych <= 'E') {
2378
5.81k
      if (yych == 'A') goto yy194;
2379
5.05k
      if (yych <= 'D') goto yy48;
2380
3.01k
      goto yy195;
2381
46.5k
    } else {
2382
46.5k
      if (yych <= 'a') {
2383
3.89k
        if (yych <= '`') goto yy48;
2384
2.79k
        goto yy194;
2385
42.6k
      } else {
2386
42.6k
        if (yych == 'e') goto yy195;
2387
14.1k
        goto yy48;
2388
42.6k
      }
2389
46.5k
    }
2390
20.7k
yy53:
2391
20.7k
    YYDEBUG(53, *YYCURSOR);
2392
20.7k
    yyaccept = 4;
2393
20.7k
    yych = *(YYMARKER = ++YYCURSOR);
2394
20.7k
    if (yych == 'R') goto yy196;
2395
20.4k
    if (yych == 'r') goto yy196;
2396
18.3k
    goto yy48;
2397
133k
yy54:
2398
133k
    YYDEBUG(54, *YYCURSOR);
2399
133k
    yyaccept = 4;
2400
133k
    yych = *(YYMARKER = ++YYCURSOR);
2401
133k
    if (yych <= 'U') {
2402
48.2k
      if (yych == 'R') goto yy198;
2403
47.9k
      if (yych <= 'T') goto yy48;
2404
65
      goto yy199;
2405
84.9k
    } else {
2406
84.9k
      if (yych <= 'r') {
2407
51.5k
        if (yych <= 'q') goto yy48;
2408
12.8k
        goto yy198;
2409
51.5k
      } else {
2410
33.3k
        if (yych == 'u') goto yy199;
2411
8.25k
        goto yy48;
2412
33.3k
      }
2413
84.9k
    }
2414
33.1k
yy55:
2415
33.1k
    YYDEBUG(55, *YYCURSOR);
2416
33.1k
    yyaccept = 4;
2417
33.1k
    yych = *(YYMARKER = ++YYCURSOR);
2418
33.1k
    if (yych == 'E') goto yy200;
2419
32.9k
    if (yych == 'e') goto yy200;
2420
7.19k
    goto yy48;
2421
54.4k
yy56:
2422
54.4k
    YYDEBUG(56, *YYCURSOR);
2423
54.4k
    yyaccept = 4;
2424
54.4k
    yych = *(YYMARKER = ++YYCURSOR);
2425
54.4k
    if (yych <= 'W') {
2426
12.0k
      if (yych == 'T') goto yy201;
2427
11.7k
      if (yych <= 'V') goto yy48;
2428
120
      goto yy202;
2429
42.4k
    } else {
2430
42.4k
      if (yych <= 't') {
2431
38.3k
        if (yych <= 's') goto yy48;
2432
18.4k
        goto yy201;
2433
38.3k
      } else {
2434
4.13k
        if (yych == 'w') goto yy202;
2435
1.45k
        goto yy48;
2436
4.13k
      }
2437
42.4k
    }
2438
69.2k
yy57:
2439
69.2k
    YYDEBUG(57, *YYCURSOR);
2440
69.2k
    yyaccept = 4;
2441
69.2k
    yych = *(YYMARKER = ++YYCURSOR);
2442
69.2k
    if (yych <= 'R') {
2443
7.33k
      if (yych == 'H') goto yy203;
2444
7.15k
      if (yych <= 'Q') goto yy48;
2445
1.86k
      goto yy204;
2446
61.9k
    } else {
2447
61.9k
      if (yych <= 'h') {
2448
28.7k
        if (yych <= 'g') goto yy48;
2449
3.00k
        goto yy203;
2450
33.2k
      } else {
2451
33.2k
        if (yych == 'r') goto yy204;
2452
8.13k
        goto yy48;
2453
33.2k
      }
2454
61.9k
    }
2455
20.7k
yy58:
2456
20.7k
    YYDEBUG(58, *YYCURSOR);
2457
20.7k
    yyaccept = 4;
2458
20.7k
    yych = *(YYMARKER = ++YYCURSOR);
2459
20.7k
    if (yych <= 'S') {
2460
4.42k
      if (yych == 'N') goto yy205;
2461
4.33k
      if (yych <= 'R') goto yy48;
2462
106
      goto yy206;
2463
16.3k
    } else {
2464
16.3k
      if (yych <= 'n') {
2465
11.9k
        if (yych <= 'm') goto yy48;
2466
5.75k
        goto yy205;
2467
11.9k
      } else {
2468
4.39k
        if (yych == 's') goto yy206;
2469
1.85k
        goto yy48;
2470
4.39k
      }
2471
16.3k
    }
2472
41.1k
yy59:
2473
41.1k
    YYDEBUG(59, *YYCURSOR);
2474
41.1k
    yyaccept = 4;
2475
41.1k
    yych = *(YYMARKER = ++YYCURSOR);
2476
41.1k
    if (yych == 'A') goto yy207;
2477
41.0k
    if (yych == 'a') goto yy207;
2478
6.28k
    goto yy48;
2479
7.44k
yy60:
2480
7.44k
    YYDEBUG(60, *YYCURSOR);
2481
7.44k
    yyaccept = 4;
2482
7.44k
    yych = *(YYMARKER = ++YYCURSOR);
2483
7.44k
    if (yych == 'H') goto yy208;
2484
7.43k
    if (yych == 'h') goto yy208;
2485
6.41k
    goto yy48;
2486
7.22k
yy61:
2487
7.22k
    YYDEBUG(61, *YYCURSOR);
2488
7.22k
    yyaccept = 4;
2489
7.22k
    yych = *(YYMARKER = ++YYCURSOR);
2490
7.22k
    if (yych == 'O') goto yy209;
2491
7.16k
    if (yych == 'o') goto yy209;
2492
5.22k
    goto yy48;
2493
19.8k
yy62:
2494
19.8k
    YYDEBUG(62, *YYCURSOR);
2495
19.8k
    yyaccept = 4;
2496
19.8k
    yych = *(YYMARKER = ++YYCURSOR);
2497
19.8k
    if (yych == 'I') goto yy210;
2498
19.8k
    if (yych == 'i') goto yy210;
2499
9.16k
    goto yy48;
2500
51.4k
yy63:
2501
51.4k
    YYDEBUG(63, *YYCURSOR);
2502
51.4k
    ++YYCURSOR;
2503
51.4k
    goto yy21;
2504
19.2k
yy64:
2505
19.2k
    YYDEBUG(64, *YYCURSOR);
2506
19.2k
    yych = *++YYCURSOR;
2507
19.2k
    if (yych <= '_') {
2508
15.0k
      if (yych <= '@') goto yy65;
2509
11.2k
      if (yych <= 'Z') goto yy211;
2510
6.75k
      if (yych >= '_') goto yy211;
2511
6.75k
    } else {
2512
4.20k
      if (yych <= '`') goto yy65;
2513
4.17k
      if (yych <= 'z') goto yy211;
2514
1.84k
      if (yych >= 0x80) goto yy211;
2515
1.84k
    }
2516
11.9k
yy65:
2517
11.9k
    YYDEBUG(65, *YYCURSOR);
2518
11.9k
    yyleng = YYCURSOR - SCNG(yy_text);
2519
11.9k
#line 2450 "Zend/zend_language_scanner.l"
2520
11.9k
    {
2521
11.9k
  RETURN_TOKEN(T_NS_SEPARATOR);
2522
11.9k
}
2523
0
#line 2524 "Zend/zend_language_scanner.c"
2524
20.8k
yy66:
2525
20.8k
    YYDEBUG(66, *YYCURSOR);
2526
20.8k
    yych = *++YYCURSOR;
2527
20.8k
    if (yych == '=') goto yy214;
2528
20.6k
    goto yy9;
2529
35.0k
yy67:
2530
35.0k
    YYDEBUG(67, *YYCURSOR);
2531
35.0k
    yyaccept = 4;
2532
35.0k
    yych = *(YYMARKER = ++YYCURSOR);
2533
35.0k
    if (yych == '_') goto yy216;
2534
9.43k
    goto yy48;
2535
9.80k
yy68:
2536
9.80k
    YYDEBUG(68, *YYCURSOR);
2537
9.80k
    ++YYCURSOR;
2538
9.80k
    YYDEBUG(69, *YYCURSOR);
2539
9.80k
    yyleng = YYCURSOR - SCNG(yy_text);
2540
9.80k
#line 2825 "Zend/zend_language_scanner.l"
2541
9.80k
    {
2542
9.80k
  BEGIN(ST_BACKQUOTE);
2543
9.80k
  RETURN_TOKEN('`');
2544
9.80k
}
2545
0
#line 2546 "Zend/zend_language_scanner.c"
2546
224k
yy70:
2547
224k
    YYDEBUG(70, *YYCURSOR);
2548
224k
    ++YYCURSOR;
2549
224k
    YYDEBUG(71, *YYCURSOR);
2550
224k
    yyleng = YYCURSOR - SCNG(yy_text);
2551
224k
#line 1973 "Zend/zend_language_scanner.l"
2552
224k
    {
2553
224k
  yy_push_state(ST_IN_SCRIPTING);
2554
224k
  enter_nesting('{');
2555
224k
  RETURN_TOKEN('{');
2556
224k
}
2557
0
#line 2558 "Zend/zend_language_scanner.c"
2558
18.8k
yy72:
2559
18.8k
    YYDEBUG(72, *YYCURSOR);
2560
18.8k
    yych = *++YYCURSOR;
2561
18.8k
    if (yych <= '>') {
2562
10.6k
      if (yych <= '<') goto yy9;
2563
1.44k
      if (yych <= '=') goto yy217;
2564
743
      goto yy219;
2565
8.14k
    } else {
2566
8.14k
      if (yych == '|') goto yy221;
2567
5.81k
      goto yy9;
2568
8.14k
    }
2569
125k
yy73:
2570
125k
    YYDEBUG(73, *YYCURSOR);
2571
125k
    ++YYCURSOR;
2572
125k
    YYDEBUG(74, *YYCURSOR);
2573
125k
    yyleng = YYCURSOR - SCNG(yy_text);
2574
125k
#line 1986 "Zend/zend_language_scanner.l"
2575
125k
    {
2576
125k
  RESET_DOC_COMMENT();
2577
125k
  if (!zend_stack_is_empty(&SCNG(state_stack))) {
2578
117k
    yy_pop_state();
2579
117k
  }
2580
125k
  RETURN_EXIT_NESTING_TOKEN('}');
2581
125k
}
2582
0
#line 2583 "Zend/zend_language_scanner.c"
2583
3.87k
yy75:
2584
3.87k
    YYDEBUG(75, *YYCURSOR);
2585
3.87k
    yych = *++YYCURSOR;
2586
3.87k
    if (yych == '=') goto yy223;
2587
3.55k
yy76:
2588
3.55k
    YYDEBUG(76, *YYCURSOR);
2589
3.55k
    yyleng = YYCURSOR - SCNG(yy_text);
2590
3.55k
#line 1845 "Zend/zend_language_scanner.l"
2591
3.55k
    {
2592
3.55k
  RETURN_TOKEN(T_IS_NOT_EQUAL);
2593
3.55k
}
2594
0
#line 2595 "Zend/zend_language_scanner.c"
2595
3.42k
yy77:
2596
3.42k
    YYDEBUG(77, *YYCURSOR);
2597
3.42k
    ++YYCURSOR;
2598
3.42k
    YYDEBUG(78, *YYCURSOR);
2599
3.42k
    yyleng = YYCURSOR - SCNG(yy_text);
2600
3.42k
#line 1422 "Zend/zend_language_scanner.l"
2601
3.42k
    {
2602
3.42k
  enter_nesting('[');
2603
3.42k
  RETURN_TOKEN(T_ATTRIBUTE);
2604
3.42k
}
2605
0
#line 2606 "Zend/zend_language_scanner.c"
2606
1.81M
yy79:
2607
1.81M
    YYDEBUG(79, *YYCURSOR);
2608
1.81M
    ++YYCURSOR;
2609
1.81M
    YYFILL(1);
2610
1.81M
    yych = *YYCURSOR;
2611
1.81M
    YYDEBUG(80, *YYCURSOR);
2612
1.81M
    if (yych <= '^') {
2613
480k
      if (yych <= '9') {
2614
351k
        if (yych >= '0') goto yy79;
2615
351k
      } else {
2616
129k
        if (yych <= '@') goto yy81;
2617
81.2k
        if (yych <= 'Z') goto yy79;
2618
81.2k
      }
2619
1.33M
    } else {
2620
1.33M
      if (yych <= '`') {
2621
3.04k
        if (yych <= '_') goto yy79;
2622
1.32M
      } else {
2623
1.32M
        if (yych <= 'z') goto yy79;
2624
340k
        if (yych >= 0x80) goto yy79;
2625
340k
      }
2626
1.33M
    }
2627
401k
yy81:
2628
401k
    YYDEBUG(81, *YYCURSOR);
2629
401k
    yyleng = YYCURSOR - SCNG(yy_text);
2630
401k
#line 2416 "Zend/zend_language_scanner.l"
2631
401k
    {
2632
401k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
2633
401k
}
2634
0
#line 2635 "Zend/zend_language_scanner.c"
2635
169
yy82:
2636
169
    YYDEBUG(82, *YYCURSOR);
2637
169
    ++YYCURSOR;
2638
169
    YYDEBUG(83, *YYCURSOR);
2639
169
    yyleng = YYCURSOR - SCNG(yy_text);
2640
169
#line 1889 "Zend/zend_language_scanner.l"
2641
169
    {
2642
169
  RETURN_TOKEN(T_MOD_EQUAL);
2643
169
}
2644
0
#line 2645 "Zend/zend_language_scanner.c"
2645
29.7k
yy84:
2646
29.7k
    YYDEBUG(84, *YYCURSOR);
2647
29.7k
    ++YYCURSOR;
2648
29.7k
    YYFILL(3);
2649
29.7k
    yych = *YYCURSOR;
2650
42.4k
yy85:
2651
42.4k
    YYDEBUG(85, *YYCURSOR);
2652
42.4k
    if (yych <= ' ') {
2653
13.9k
      if (yych <= '\f') {
2654
7.41k
        if (yych <= 0x08) goto yy86;
2655
7.27k
        if (yych <= '\n') goto yy84;
2656
7.27k
      } else {
2657
6.54k
        if (yych <= '\r') goto yy84;
2658
5.31k
        if (yych >= ' ') goto yy84;
2659
5.31k
      }
2660
28.5k
    } else {
2661
28.5k
      if (yych <= '$') {
2662
23.9k
        if (yych <= '"') goto yy86;
2663
23.9k
        if (yych <= '#') goto yy87;
2664
6.47k
        goto yy88;
2665
23.9k
      } else {
2666
4.54k
        if (yych <= '-') goto yy86;
2667
4.20k
        if (yych <= '.') goto yy92;
2668
3.64k
        if (yych <= '/') goto yy93;
2669
3.64k
      }
2670
28.5k
    }
2671
131k
yy86:
2672
131k
    YYDEBUG(86, *YYCURSOR);
2673
131k
    YYCURSOR = YYMARKER;
2674
131k
    if (yyaccept <= 48) {
2675
107k
      if (yyaccept <= 24) {
2676
106k
        if (yyaccept <= 12) {
2677
105k
          if (yyaccept <= 6) {
2678
59.5k
            if (yyaccept <= 3) {
2679
50.8k
              if (yyaccept <= 1) {
2680
48.6k
                if (yyaccept == 0) {
2681
5.16k
                  goto yy17;
2682
43.4k
                } else {
2683
43.4k
                  goto yy21;
2684
43.4k
                }
2685
48.6k
              } else {
2686
2.23k
                if (yyaccept == 2) {
2687
1.43k
                  goto yy9;
2688
1.43k
                } else {
2689
802
                  goto yy31;
2690
802
                }
2691
2.23k
              }
2692
50.8k
            } else {
2693
8.67k
              if (yyaccept <= 5) {
2694
8.62k
                if (yyaccept == 4) {
2695
8.30k
                  goto yy40;
2696
8.30k
                } else {
2697
319
                  goto yy125;
2698
319
                }
2699
8.62k
              } else {
2700
55
                goto yy129;
2701
55
              }
2702
8.67k
            }
2703
59.5k
          } else {
2704
46.2k
            if (yyaccept <= 9) {
2705
46.2k
              if (yyaccept <= 8) {
2706
46.2k
                if (yyaccept == 7) {
2707
46.2k
                  goto yy142;
2708
46.2k
                } else {
2709
0
                  goto yy163;
2710
0
                }
2711
46.2k
              } else {
2712
0
                goto yy173;
2713
0
              }
2714
46.2k
            } else {
2715
0
              if (yyaccept <= 11) {
2716
0
                if (yyaccept == 10) {
2717
0
                  goto yy182;
2718
0
                } else {
2719
0
                  goto yy188;
2720
0
                }
2721
0
              } else {
2722
0
                goto yy197;
2723
0
              }
2724
0
            }
2725
46.2k
          }
2726
105k
        } else {
2727
520
          if (yyaccept <= 18) {
2728
472
            if (yyaccept <= 15) {
2729
297
              if (yyaccept <= 14) {
2730
297
                if (yyaccept == 13) {
2731
270
                  goto yy213;
2732
270
                } else {
2733
27
                  goto yy251;
2734
27
                }
2735
297
              } else {
2736
0
                goto yy257;
2737
0
              }
2738
297
            } else {
2739
175
              if (yyaccept <= 17) {
2740
3
                if (yyaccept == 16) {
2741
3
                  goto yy260;
2742
3
                } else {
2743
0
                  goto yy279;
2744
0
                }
2745
172
              } else {
2746
172
                goto yy283;
2747
172
              }
2748
175
            }
2749
472
          } else {
2750
48
            if (yyaccept <= 21) {
2751
3
              if (yyaccept <= 20) {
2752
0
                if (yyaccept == 19) {
2753
0
                  goto yy295;
2754
0
                } else {
2755
0
                  goto yy306;
2756
0
                }
2757
3
              } else {
2758
3
                goto yy319;
2759
3
              }
2760
45
            } else {
2761
45
              if (yyaccept <= 23) {
2762
42
                if (yyaccept == 22) {
2763
3
                  goto yy331;
2764
39
                } else {
2765
39
                  goto yy334;
2766
39
                }
2767
42
              } else {
2768
3
                goto yy336;
2769
3
              }
2770
45
            }
2771
48
          }
2772
520
        }
2773
106k
      } else {
2774
1.05k
        if (yyaccept <= 36) {
2775
1.04k
          if (yyaccept <= 30) {
2776
1.04k
            if (yyaccept <= 27) {
2777
1.03k
              if (yyaccept <= 26) {
2778
1.03k
                if (yyaccept == 25) {
2779
0
                  goto yy339;
2780
1.03k
                } else {
2781
1.03k
                  goto yy89;
2782
1.03k
                }
2783
1.03k
              } else {
2784
0
                goto yy379;
2785
0
              }
2786
1.03k
            } else {
2787
6
              if (yyaccept <= 29) {
2788
6
                if (yyaccept == 28) {
2789
6
                  goto yy388;
2790
6
                } else {
2791
0
                  goto yy390;
2792
0
                }
2793
6
              } else {
2794
0
                goto yy399;
2795
0
              }
2796
6
            }
2797
1.04k
          } else {
2798
0
            if (yyaccept <= 33) {
2799
0
              if (yyaccept <= 32) {
2800
0
                if (yyaccept == 31) {
2801
0
                  goto yy401;
2802
0
                } else {
2803
0
                  goto yy408;
2804
0
                }
2805
0
              } else {
2806
0
                goto yy415;
2807
0
              }
2808
0
            } else {
2809
0
              if (yyaccept <= 35) {
2810
0
                if (yyaccept == 34) {
2811
0
                  goto yy471;
2812
0
                } else {
2813
0
                  goto yy473;
2814
0
                }
2815
0
              } else {
2816
0
                goto yy476;
2817
0
              }
2818
0
            }
2819
0
          }
2820
1.04k
        } else {
2821
12
          if (yyaccept <= 42) {
2822
6
            if (yyaccept <= 39) {
2823
6
              if (yyaccept <= 38) {
2824
3
                if (yyaccept == 37) {
2825
3
                  goto yy478;
2826
3
                } else {
2827
0
                  goto yy480;
2828
0
                }
2829
3
              } else {
2830
3
                goto yy482;
2831
3
              }
2832
6
            } else {
2833
0
              if (yyaccept <= 41) {
2834
0
                if (yyaccept == 40) {
2835
0
                  goto yy488;
2836
0
                } else {
2837
0
                  goto yy492;
2838
0
                }
2839
0
              } else {
2840
0
                goto yy501;
2841
0
              }
2842
0
            }
2843
6
          } else {
2844
6
            if (yyaccept <= 45) {
2845
6
              if (yyaccept <= 44) {
2846
3
                if (yyaccept == 43) {
2847
0
                  goto yy511;
2848
3
                } else {
2849
3
                  goto yy513;
2850
3
                }
2851
3
              } else {
2852
3
                goto yy516;
2853
3
              }
2854
6
            } else {
2855
0
              if (yyaccept <= 47) {
2856
0
                if (yyaccept == 46) {
2857
0
                  goto yy526;
2858
0
                } else {
2859
0
                  goto yy528;
2860
0
                }
2861
0
              } else {
2862
0
                goto yy530;
2863
0
              }
2864
0
            }
2865
6
          }
2866
12
        }
2867
1.05k
      }
2868
107k
    } else {
2869
23.8k
      if (yyaccept <= 72) {
2870
23.5k
        if (yyaccept <= 60) {
2871
23.4k
          if (yyaccept <= 54) {
2872
23.2k
            if (yyaccept <= 51) {
2873
5.70k
              if (yyaccept <= 50) {
2874
5.70k
                if (yyaccept == 49) {
2875
0
                  goto yy532;
2876
5.70k
                } else {
2877
5.70k
                  goto yy534;
2878
5.70k
                }
2879
5.70k
              } else {
2880
0
                goto yy576;
2881
0
              }
2882
17.5k
            } else {
2883
17.5k
              if (yyaccept <= 53) {
2884
17.5k
                if (yyaccept == 52) {
2885
0
                  goto yy579;
2886
17.5k
                } else {
2887
17.5k
                  goto yy583;
2888
17.5k
                }
2889
17.5k
              } else {
2890
0
                goto yy597;
2891
0
              }
2892
17.5k
            }
2893
23.2k
          } else {
2894
160
            if (yyaccept <= 57) {
2895
160
              if (yyaccept <= 56) {
2896
157
                if (yyaccept == 55) {
2897
157
                  goto yy607;
2898
157
                } else {
2899
0
                  goto yy611;
2900
0
                }
2901
157
              } else {
2902
3
                goto yy613;
2903
3
              }
2904
160
            } else {
2905
0
              if (yyaccept <= 59) {
2906
0
                if (yyaccept == 58) {
2907
0
                  goto yy615;
2908
0
                } else {
2909
0
                  goto yy654;
2910
0
                }
2911
0
              } else {
2912
0
                goto yy656;
2913
0
              }
2914
0
            }
2915
160
          }
2916
23.4k
        } else {
2917
120
          if (yyaccept <= 66) {
2918
96
            if (yyaccept <= 63) {
2919
3
              if (yyaccept <= 62) {
2920
3
                if (yyaccept == 61) {
2921
0
                  goto yy671;
2922
3
                } else {
2923
3
                  goto yy673;
2924
3
                }
2925
3
              } else {
2926
0
                goto yy675;
2927
0
              }
2928
93
            } else {
2929
93
              if (yyaccept <= 65) {
2930
93
                if (yyaccept == 64) {
2931
0
                  goto yy679;
2932
93
                } else {
2933
93
                  goto yy685;
2934
93
                }
2935
93
              } else {
2936
0
                goto yy690;
2937
0
              }
2938
93
            }
2939
96
          } else {
2940
24
            if (yyaccept <= 69) {
2941
0
              if (yyaccept <= 68) {
2942
0
                if (yyaccept == 67) {
2943
0
                  goto yy700;
2944
0
                } else {
2945
0
                  goto yy726;
2946
0
                }
2947
0
              } else {
2948
0
                goto yy728;
2949
0
              }
2950
24
            } else {
2951
24
              if (yyaccept <= 71) {
2952
0
                if (yyaccept == 70) {
2953
0
                  goto yy730;
2954
0
                } else {
2955
0
                  goto yy735;
2956
0
                }
2957
24
              } else {
2958
24
                goto yy743;
2959
24
              }
2960
24
            }
2961
24
          }
2962
120
        }
2963
23.5k
      } else {
2964
368
        if (yyaccept <= 84) {
2965
24
          if (yyaccept <= 78) {
2966
0
            if (yyaccept <= 75) {
2967
0
              if (yyaccept <= 74) {
2968
0
                if (yyaccept == 73) {
2969
0
                  goto yy754;
2970
0
                } else {
2971
0
                  goto yy764;
2972
0
                }
2973
0
              } else {
2974
0
                goto yy768;
2975
0
              }
2976
0
            } else {
2977
0
              if (yyaccept <= 77) {
2978
0
                if (yyaccept == 76) {
2979
0
                  goto yy784;
2980
0
                } else {
2981
0
                  goto yy797;
2982
0
                }
2983
0
              } else {
2984
0
                goto yy799;
2985
0
              }
2986
0
            }
2987
24
          } else {
2988
24
            if (yyaccept <= 81) {
2989
24
              if (yyaccept <= 80) {
2990
24
                if (yyaccept == 79) {
2991
6
                  goto yy801;
2992
18
                } else {
2993
18
                  goto yy804;
2994
18
                }
2995
24
              } else {
2996
0
                goto yy812;
2997
0
              }
2998
24
            } else {
2999
0
              if (yyaccept <= 83) {
3000
0
                if (yyaccept == 82) {
3001
0
                  goto yy819;
3002
0
                } else {
3003
0
                  goto yy823;
3004
0
                }
3005
0
              } else {
3006
0
                goto yy825;
3007
0
              }
3008
0
            }
3009
24
          }
3010
344
        } else {
3011
344
          if (yyaccept <= 90) {
3012
39
            if (yyaccept <= 87) {
3013
9
              if (yyaccept <= 86) {
3014
0
                if (yyaccept == 85) {
3015
0
                  goto yy836;
3016
0
                } else {
3017
0
                  goto yy839;
3018
0
                }
3019
9
              } else {
3020
9
                goto yy854;
3021
9
              }
3022
30
            } else {
3023
30
              if (yyaccept <= 89) {
3024
30
                if (yyaccept == 88) {
3025
30
                  goto yy869;
3026
30
                } else {
3027
0
                  goto yy898;
3028
0
                }
3029
30
              } else {
3030
0
                goto yy903;
3031
0
              }
3032
30
            }
3033
305
          } else {
3034
305
            if (yyaccept <= 93) {
3035
282
              if (yyaccept <= 92) {
3036
282
                if (yyaccept == 91) {
3037
282
                  goto yy876;
3038
282
                } else {
3039
0
                  goto yy911;
3040
0
                }
3041
282
              } else {
3042
0
                goto yy915;
3043
0
              }
3044
282
            } else {
3045
23
              if (yyaccept <= 95) {
3046
23
                if (yyaccept == 94) {
3047
23
                  goto yy886;
3048
23
                } else {
3049
0
                  goto yy931;
3050
0
                }
3051
23
              } else {
3052
0
                goto yy951;
3053
0
              }
3054
23
            }
3055
305
          }
3056
344
        }
3057
368
      }
3058
23.8k
    }
3059
17.4k
yy87:
3060
17.4k
    YYDEBUG(87, *YYCURSOR);
3061
17.4k
    ++YYCURSOR;
3062
17.4k
    YYFILL(1);
3063
17.4k
    yych = *YYCURSOR;
3064
17.4k
    if (yych <= '\f') {
3065
10.6k
      if (yych <= 0x00) goto yy86;
3066
10.5k
      if (yych == '\n') goto yy227;
3067
97
      goto yy225;
3068
10.5k
    } else {
3069
6.82k
      if (yych <= '\r') goto yy227;
3070
1.83k
      if (yych == '[') goto yy86;
3071
1.83k
      goto yy225;
3072
1.83k
    }
3073
6.51k
yy88:
3074
6.51k
    YYDEBUG(88, *YYCURSOR);
3075
6.51k
    ++YYCURSOR;
3076
7.54k
yy89:
3077
7.54k
    YYDEBUG(89, *YYCURSOR);
3078
7.54k
    yyleng = YYCURSOR - SCNG(yy_text);
3079
7.54k
#line 1949 "Zend/zend_language_scanner.l"
3080
7.54k
    {
3081
7.54k
  yyless(1);
3082
7.54k
  RETURN_TOKEN(T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG);
3083
7.54k
}
3084
0
#line 3085 "Zend/zend_language_scanner.c"
3085
1.81k
yy90:
3086
1.81k
    YYDEBUG(90, *YYCURSOR);
3087
1.81k
    ++YYCURSOR;
3088
1.81k
    YYDEBUG(91, *YYCURSOR);
3089
1.81k
    yyleng = YYCURSOR - SCNG(yy_text);
3090
1.81k
#line 1925 "Zend/zend_language_scanner.l"
3091
1.81k
    {
3092
1.81k
  RETURN_TOKEN(T_BOOLEAN_AND);
3093
1.81k
}
3094
0
#line 3095 "Zend/zend_language_scanner.c"
3095
555
yy92:
3096
555
    YYDEBUG(92, *YYCURSOR);
3097
555
    yych = *++YYCURSOR;
3098
555
    if (yych == '.') goto yy229;
3099
454
    goto yy86;
3100
2.29k
yy93:
3101
2.29k
    YYDEBUG(93, *YYCURSOR);
3102
2.29k
    ++YYCURSOR;
3103
2.29k
    YYFILL(1);
3104
2.29k
    yych = *YYCURSOR;
3105
2.29k
    if (yych == '*') goto yy230;
3106
276
    if (yych == '/') goto yy225;
3107
119
    goto yy86;
3108
6.31k
yy94:
3109
6.31k
    YYDEBUG(94, *YYCURSOR);
3110
6.31k
    ++YYCURSOR;
3111
6.31k
    YYDEBUG(95, *YYCURSOR);
3112
6.31k
    yyleng = YYCURSOR - SCNG(yy_text);
3113
6.31k
#line 1901 "Zend/zend_language_scanner.l"
3114
6.31k
    {
3115
6.31k
  RETURN_TOKEN(T_AND_EQUAL);
3116
6.31k
}
3117
0
#line 3118 "Zend/zend_language_scanner.c"
3118
20.7k
yy96:
3119
20.7k
    YYDEBUG(96, *YYCURSOR);
3120
20.7k
    ++YYCURSOR;
3121
20.7k
    YYFILL(7);
3122
20.7k
    yych = *YYCURSOR;
3123
66.2k
yy97:
3124
66.2k
    YYDEBUG(97, *YYCURSOR);
3125
66.2k
    if (yybm[0+yych] & 1) {
3126
20.7k
      goto yy96;
3127
20.7k
    }
3128
45.4k
    switch (yych) {
3129
945
    case 'A':
3130
6.65k
    case 'a': goto yy98;
3131
3.12k
    case 'B':
3132
4.11k
    case 'b': goto yy99;
3133
218
    case 'D':
3134
770
    case 'd': goto yy100;
3135
943
    case 'F':
3136
5.71k
    case 'f': goto yy101;
3137
116
    case 'I':
3138
4.43k
    case 'i': goto yy102;
3139
53
    case 'O':
3140
1.03k
    case 'o': goto yy103;
3141
72
    case 'R':
3142
2.16k
    case 'r': goto yy104;
3143
296
    case 'S':
3144
12.0k
    case 's': goto yy105;
3145
56
    case 'U':
3146
604
    case 'u': goto yy106;
3147
26
    case 'V':
3148
374
    case 'v': goto yy107;
3149
7.54k
    default:  goto yy86;
3150
45.4k
    }
3151
6.65k
yy98:
3152
6.65k
    YYDEBUG(98, *YYCURSOR);
3153
6.65k
    yych = *++YYCURSOR;
3154
6.65k
    if (yych == 'R') goto yy232;
3155
6.65k
    if (yych == 'r') goto yy232;
3156
1.54k
    goto yy86;
3157
4.11k
yy99:
3158
4.11k
    YYDEBUG(99, *YYCURSOR);
3159
4.11k
    yych = *++YYCURSOR;
3160
4.11k
    if (yych <= 'O') {
3161
3.07k
      if (yych == 'I') goto yy233;
3162
2.98k
      if (yych <= 'N') goto yy86;
3163
10
      goto yy234;
3164
2.98k
    } else {
3165
1.04k
      if (yych <= 'i') {
3166
823
        if (yych <= 'h') goto yy86;
3167
229
        goto yy233;
3168
823
      } else {
3169
220
        if (yych == 'o') goto yy234;
3170
78
        goto yy86;
3171
220
      }
3172
1.04k
    }
3173
770
yy100:
3174
770
    YYDEBUG(100, *YYCURSOR);
3175
770
    yych = *++YYCURSOR;
3176
770
    if (yych == 'O') goto yy235;
3177
770
    if (yych == 'o') goto yy235;
3178
714
    goto yy86;
3179
5.71k
yy101:
3180
5.71k
    YYDEBUG(101, *YYCURSOR);
3181
5.71k
    yych = *++YYCURSOR;
3182
5.71k
    if (yych == 'L') goto yy236;
3183
5.71k
    if (yych == 'l') goto yy236;
3184
5.57k
    goto yy86;
3185
5.57k
yy102:
3186
4.43k
    YYDEBUG(102, *YYCURSOR);
3187
4.43k
    yych = *++YYCURSOR;
3188
4.43k
    if (yych == 'N') goto yy237;
3189
4.40k
    if (yych == 'n') goto yy237;
3190
2.33k
    goto yy86;
3191
2.33k
yy103:
3192
1.03k
    YYDEBUG(103, *YYCURSOR);
3193
1.03k
    yych = *++YYCURSOR;
3194
1.03k
    if (yych == 'B') goto yy238;
3195
1.03k
    if (yych == 'b') goto yy238;
3196
555
    goto yy86;
3197
2.16k
yy104:
3198
2.16k
    YYDEBUG(104, *YYCURSOR);
3199
2.16k
    yych = *++YYCURSOR;
3200
2.16k
    if (yych == 'E') goto yy239;
3201
2.16k
    if (yych == 'e') goto yy239;
3202
1.64k
    goto yy86;
3203
12.0k
yy105:
3204
12.0k
    YYDEBUG(105, *YYCURSOR);
3205
12.0k
    yych = *++YYCURSOR;
3206
12.0k
    if (yych == 'T') goto yy240;
3207
11.9k
    if (yych == 't') goto yy240;
3208
6.67k
    goto yy86;
3209
6.67k
yy106:
3210
604
    YYDEBUG(106, *YYCURSOR);
3211
604
    yych = *++YYCURSOR;
3212
604
    if (yych == 'N') goto yy241;
3213
601
    if (yych == 'n') goto yy241;
3214
138
    goto yy86;
3215
374
yy107:
3216
374
    YYDEBUG(107, *YYCURSOR);
3217
374
    yych = *++YYCURSOR;
3218
374
    if (yych == 'O') goto yy242;
3219
368
    if (yych == 'o') goto yy242;
3220
294
    goto yy86;
3221
1.01k
yy108:
3222
1.01k
    YYDEBUG(108, *YYCURSOR);
3223
1.01k
    yych = *++YYCURSOR;
3224
1.01k
    if (yych == '=') goto yy243;
3225
945
    YYDEBUG(109, *YYCURSOR);
3226
945
    yyleng = YYCURSOR - SCNG(yy_text);
3227
945
#line 1873 "Zend/zend_language_scanner.l"
3228
945
    {
3229
945
  RETURN_TOKEN(T_POW);
3230
945
}
3231
0
#line 3232 "Zend/zend_language_scanner.c"
3232
1.61k
yy110:
3233
1.61k
    YYDEBUG(110, *YYCURSOR);
3234
1.61k
    ++YYCURSOR;
3235
1.61k
    YYDEBUG(111, *YYCURSOR);
3236
1.61k
    yyleng = YYCURSOR - SCNG(yy_text);
3237
1.61k
#line 1869 "Zend/zend_language_scanner.l"
3238
1.61k
    {
3239
1.61k
  RETURN_TOKEN(T_MUL_EQUAL);
3240
1.61k
}
3241
0
#line 3242 "Zend/zend_language_scanner.c"
3242
5.23k
yy112:
3243
5.23k
    YYDEBUG(112, *YYCURSOR);
3244
5.23k
    ++YYCURSOR;
3245
5.23k
    YYDEBUG(113, *YYCURSOR);
3246
5.23k
    yyleng = YYCURSOR - SCNG(yy_text);
3247
5.23k
#line 1825 "Zend/zend_language_scanner.l"
3248
5.23k
    {
3249
5.23k
  RETURN_TOKEN(T_INC);
3250
5.23k
}
3251
0
#line 3252 "Zend/zend_language_scanner.c"
3252
1.68k
yy114:
3253
1.68k
    YYDEBUG(114, *YYCURSOR);
3254
1.68k
    ++YYCURSOR;
3255
1.68k
    YYDEBUG(115, *YYCURSOR);
3256
1.68k
    yyleng = YYCURSOR - SCNG(yy_text);
3257
1.68k
#line 1861 "Zend/zend_language_scanner.l"
3258
1.68k
    {
3259
1.68k
  RETURN_TOKEN(T_PLUS_EQUAL);
3260
1.68k
}
3261
0
#line 3262 "Zend/zend_language_scanner.c"
3262
3.85k
yy116:
3263
3.85k
    YYDEBUG(116, *YYCURSOR);
3264
3.85k
    ++YYCURSOR;
3265
3.85k
    YYDEBUG(117, *YYCURSOR);
3266
3.85k
    yyleng = YYCURSOR - SCNG(yy_text);
3267
3.85k
#line 1829 "Zend/zend_language_scanner.l"
3268
3.85k
    {
3269
3.85k
  RETURN_TOKEN(T_DEC);
3270
3.85k
}
3271
0
#line 3272 "Zend/zend_language_scanner.c"
3272
437
yy118:
3273
437
    YYDEBUG(118, *YYCURSOR);
3274
437
    ++YYCURSOR;
3275
437
    YYDEBUG(119, *YYCURSOR);
3276
437
    yyleng = YYCURSOR - SCNG(yy_text);
3277
437
#line 1865 "Zend/zend_language_scanner.l"
3278
437
    {
3279
437
  RETURN_TOKEN(T_MINUS_EQUAL);
3280
437
}
3281
0
#line 3282 "Zend/zend_language_scanner.c"
3282
41.0k
yy120:
3283
41.0k
    YYDEBUG(120, *YYCURSOR);
3284
41.0k
    ++YYCURSOR;
3285
41.0k
    YYDEBUG(121, *YYCURSOR);
3286
41.0k
    yyleng = YYCURSOR - SCNG(yy_text);
3287
41.0k
#line 1586 "Zend/zend_language_scanner.l"
3288
41.0k
    {
3289
41.0k
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
3290
41.0k
  RETURN_TOKEN(T_OBJECT_OPERATOR);
3291
41.0k
}
3292
0
#line 3293 "Zend/zend_language_scanner.c"
3293
3.14k
yy122:
3294
3.14k
    YYDEBUG(122, *YYCURSOR);
3295
3.14k
    yych = *++YYCURSOR;
3296
3.14k
    if (yych == '.') goto yy245;
3297
1.11k
    goto yy86;
3298
36.6k
yy123:
3299
36.6k
    YYDEBUG(123, *YYCURSOR);
3300
36.6k
    yyaccept = 5;
3301
36.6k
    YYMARKER = ++YYCURSOR;
3302
36.6k
    YYFILL(2);
3303
36.6k
    yych = *YYCURSOR;
3304
42.9k
yy124:
3305
42.9k
    YYDEBUG(124, *YYCURSOR);
3306
42.9k
    if (yych <= 'E') {
3307
41.0k
      if (yych <= '/') goto yy125;
3308
35.5k
      if (yych <= '9') goto yy123;
3309
1.48k
      if (yych >= 'E') goto yy135;
3310
1.96k
    } else {
3311
1.96k
      if (yych <= '_') {
3312
644
        if (yych >= '_') goto yy247;
3313
1.32k
      } else {
3314
1.32k
        if (yych == 'e') goto yy135;
3315
1.32k
      }
3316
1.96k
    }
3317
9.89k
yy125:
3318
9.89k
    YYDEBUG(125, *YYCURSOR);
3319
9.89k
    yyleng = YYCURSOR - SCNG(yy_text);
3320
9.89k
#line 2232 "Zend/zend_language_scanner.l"
3321
9.89k
    {
3322
9.89k
  const char *end;
3323
9.89k
  size_t len = yyleng;
3324
9.89k
  char *dnum = yytext;
3325
9.89k
  bool contains_underscores = (memchr(dnum, '_', len) != NULL);
3326
3327
9.89k
  if (contains_underscores) {
3328
54
    dnum = estrndup(dnum, len);
3329
54
    strip_underscores(dnum, &len);
3330
54
  }
3331
3332
9.89k
  ZVAL_DOUBLE(zendlval, zend_strtod(dnum, &end));
3333
  /* errno isn't checked since we allow HUGE_VAL/INF overflow */
3334
9.89k
  ZEND_ASSERT(end == dnum + len);
3335
9.89k
  if (contains_underscores) {
3336
54
    efree(dnum);
3337
54
  }
3338
9.89k
  RETURN_TOKEN_WITH_VAL(T_DNUMBER);
3339
9.89k
}
3340
0
#line 3341 "Zend/zend_language_scanner.c"
3341
35.8k
yy126:
3342
35.8k
    YYDEBUG(126, *YYCURSOR);
3343
35.8k
    ++YYCURSOR;
3344
35.8k
    YYDEBUG(127, *YYCURSOR);
3345
35.8k
    yyleng = YYCURSOR - SCNG(yy_text);
3346
35.8k
#line 1885 "Zend/zend_language_scanner.l"
3347
35.8k
    {
3348
35.8k
  RETURN_TOKEN(T_CONCAT_EQUAL);
3349
35.8k
}
3350
0
#line 3351 "Zend/zend_language_scanner.c"
3351
26.4k
yy128:
3352
26.4k
    YYDEBUG(128, *YYCURSOR);
3353
26.4k
    yyaccept = 6;
3354
26.4k
    yych = *(YYMARKER = ++YYCURSOR);
3355
26.4k
    if (yych == '*') goto yy248;
3356
26.4k
yy129:
3357
26.4k
    YYDEBUG(129, *YYCURSOR);
3358
26.4k
    yyleng = YYCURSOR - SCNG(yy_text);
3359
26.4k
#line 2483 "Zend/zend_language_scanner.l"
3360
26.4k
    {
3361
26.4k
  int doc_com;
3362
3363
26.4k
  if (yyleng > 2) {
3364
584
    doc_com = 1;
3365
584
    RESET_DOC_COMMENT();
3366
25.9k
  } else {
3367
25.9k
    doc_com = 0;
3368
25.9k
  }
3369
3370
2.86M
  while (YYCURSOR < YYLIMIT) {
3371
2.86M
    if (*YYCURSOR++ == '*' && *YYCURSOR == '/') {
3372
23.7k
      break;
3373
23.7k
    }
3374
2.86M
  }
3375
3376
26.4k
  if (YYCURSOR < YYLIMIT) {
3377
23.7k
    YYCURSOR++;
3378
23.7k
  } else {
3379
2.73k
    zend_throw_exception_ex(zend_ce_parse_error, 0, "Unterminated comment starting line %" PRIu32, CG(zend_lineno));
3380
2.73k
    if (PARSER_MODE()) {
3381
30
      RETURN_TOKEN(T_ERROR);
3382
30
    }
3383
2.73k
  }
3384
3385
26.4k
  yyleng = YYCURSOR - SCNG(yy_text);
3386
26.4k
  HANDLE_NEWLINES(yytext, yyleng);
3387
3388
26.4k
  if (doc_com) {
3389
581
    CG(doc_comment) = zend_string_init(yytext, yyleng, 0);
3390
581
    RETURN_OR_SKIP_TOKEN(T_DOC_COMMENT);
3391
581
  }
3392
3393
25.8k
  RETURN_OR_SKIP_TOKEN(T_COMMENT);
3394
25.8k
}
3395
0
#line 3396 "Zend/zend_language_scanner.c"
3396
34.7k
yy130:
3397
34.7k
    YYDEBUG(130, *YYCURSOR);
3398
34.7k
    ++YYCURSOR;
3399
34.7k
    goto yy13;
3400
356
yy131:
3401
356
    YYDEBUG(131, *YYCURSOR);
3402
356
    ++YYCURSOR;
3403
356
    YYDEBUG(132, *YYCURSOR);
3404
356
    yyleng = YYCURSOR - SCNG(yy_text);
3405
356
#line 1881 "Zend/zend_language_scanner.l"
3406
356
    {
3407
356
  RETURN_TOKEN(T_DIV_EQUAL);
3408
356
}
3409
0
#line 3410 "Zend/zend_language_scanner.c"
3410
6.33k
yy133:
3411
6.33k
    YYDEBUG(133, *YYCURSOR);
3412
6.33k
    yyaccept = 5;
3413
6.33k
    yych = *(YYMARKER = ++YYCURSOR);
3414
6.33k
    if (yych == '_') goto yy125;
3415
6.29k
    goto yy124;
3416
6.29k
yy134:
3417
699
    YYDEBUG(134, *YYCURSOR);
3418
699
    ++YYCURSOR;
3419
699
    YYFILL(1);
3420
699
    yych = *YYCURSOR;
3421
699
    if (yybm[0+yych] & 8) {
3422
613
      goto yy249;
3423
613
    }
3424
86
    goto yy86;
3425
1.81k
yy135:
3426
1.81k
    YYDEBUG(135, *YYCURSOR);
3427
1.81k
    yych = *++YYCURSOR;
3428
1.81k
    if (yych <= ',') {
3429
75
      if (yych == '+') goto yy252;
3430
53
      goto yy86;
3431
1.74k
    } else {
3432
1.74k
      if (yych <= '-') goto yy252;
3433
1.14k
      if (yych <= '/') goto yy86;
3434
1.14k
      if (yych <= '9') goto yy253;
3435
473
      goto yy86;
3436
1.14k
    }
3437
179
yy136:
3438
179
    YYDEBUG(136, *YYCURSOR);
3439
179
    ++YYCURSOR;
3440
179
    YYFILL(1);
3441
179
    yych = *YYCURSOR;
3442
179
    if (yybm[0+yych] & 16) {
3443
11
      goto yy255;
3444
11
    }
3445
168
    goto yy86;
3446
1.49k
yy137:
3447
1.49k
    YYDEBUG(137, *YYCURSOR);
3448
1.49k
    ++YYCURSOR;
3449
1.49k
    YYFILL(1);
3450
1.49k
    yych = *YYCURSOR;
3451
1.49k
    if (yybm[0+yych] & 32) {
3452
1.47k
      goto yy258;
3453
1.47k
    }
3454
12
    goto yy86;
3455
512
yy138:
3456
512
    YYDEBUG(138, *YYCURSOR);
3457
512
    ++YYCURSOR;
3458
512
    YYFILL(1);
3459
512
    yych = *YYCURSOR;
3460
512
    if (yybm[256+yych] & 64) {
3461
450
      goto yy32;
3462
450
    }
3463
62
    goto yy86;
3464
18.8k
yy139:
3465
18.8k
    YYDEBUG(139, *YYCURSOR);
3466
18.8k
    ++YYCURSOR;
3467
18.8k
    YYDEBUG(140, *YYCURSOR);
3468
18.8k
    yyleng = YYCURSOR - SCNG(yy_text);
3469
18.8k
#line 1613 "Zend/zend_language_scanner.l"
3470
18.8k
    {
3471
18.8k
  RETURN_TOKEN(T_PAAMAYIM_NEKUDOTAYIM);
3472
18.8k
}
3473
0
#line 3474 "Zend/zend_language_scanner.c"
3474
380k
yy141:
3475
380k
    YYDEBUG(141, *YYCURSOR);
3476
380k
    yyaccept = 7;
3477
380k
    yych = *(YYMARKER = ++YYCURSOR);
3478
380k
    if (yych <= ';') goto yy142;
3479
369k
    if (yych <= '<') goto yy261;
3480
32.8k
    if (yych <= '=') goto yy263;
3481
90.0k
yy142:
3482
90.0k
    YYDEBUG(142, *YYCURSOR);
3483
90.0k
    yyleng = YYCURSOR - SCNG(yy_text);
3484
90.0k
#line 1941 "Zend/zend_language_scanner.l"
3485
90.0k
    {
3486
90.0k
  RETURN_TOKEN(T_SL);
3487
90.0k
}
3488
0
#line 3489 "Zend/zend_language_scanner.c"
3489
1.85k
yy143:
3490
1.85k
    YYDEBUG(143, *YYCURSOR);
3491
1.85k
    yych = *++YYCURSOR;
3492
1.85k
    if (yych == '>') goto yy265;
3493
1.80k
    YYDEBUG(144, *YYCURSOR);
3494
1.80k
    yyleng = YYCURSOR - SCNG(yy_text);
3495
1.80k
#line 1853 "Zend/zend_language_scanner.l"
3496
1.80k
    {
3497
1.80k
  RETURN_TOKEN(T_IS_SMALLER_OR_EQUAL);
3498
1.80k
}
3499
0
#line 3500 "Zend/zend_language_scanner.c"
3500
314
yy145:
3501
314
    YYDEBUG(145, *YYCURSOR);
3502
314
    ++YYCURSOR;
3503
314
    goto yy76;
3504
9.00k
yy146:
3505
9.00k
    YYDEBUG(146, *YYCURSOR);
3506
9.00k
    yych = *++YYCURSOR;
3507
9.00k
    if (yych == '=') goto yy267;
3508
7.01k
    YYDEBUG(147, *YYCURSOR);
3509
7.01k
    yyleng = YYCURSOR - SCNG(yy_text);
3510
7.01k
#line 1841 "Zend/zend_language_scanner.l"
3511
7.01k
    {
3512
7.01k
  RETURN_TOKEN(T_IS_EQUAL);
3513
7.01k
}
3514
0
#line 3515 "Zend/zend_language_scanner.c"
3515
9.47k
yy148:
3516
9.47k
    YYDEBUG(148, *YYCURSOR);
3517
9.47k
    ++YYCURSOR;
3518
9.47k
    YYDEBUG(149, *YYCURSOR);
3519
9.47k
    yyleng = YYCURSOR - SCNG(yy_text);
3520
9.47k
#line 1809 "Zend/zend_language_scanner.l"
3521
9.47k
    {
3522
9.47k
  RETURN_TOKEN(T_DOUBLE_ARROW);
3523
9.47k
}
3524
0
#line 3525 "Zend/zend_language_scanner.c"
3525
1.01k
yy150:
3526
1.01k
    YYDEBUG(150, *YYCURSOR);
3527
1.01k
    ++YYCURSOR;
3528
1.01k
    YYDEBUG(151, *YYCURSOR);
3529
1.01k
    yyleng = YYCURSOR - SCNG(yy_text);
3530
1.01k
#line 1857 "Zend/zend_language_scanner.l"
3531
1.01k
    {
3532
1.01k
  RETURN_TOKEN(T_IS_GREATER_OR_EQUAL);
3533
1.01k
}
3534
0
#line 3535 "Zend/zend_language_scanner.c"
3535
1.78k
yy152:
3536
1.78k
    YYDEBUG(152, *YYCURSOR);
3537
1.78k
    yych = *++YYCURSOR;
3538
1.78k
    if (yych == '=') goto yy269;
3539
1.53k
    YYDEBUG(153, *YYCURSOR);
3540
1.53k
    yyleng = YYCURSOR - SCNG(yy_text);
3541
1.53k
#line 1945 "Zend/zend_language_scanner.l"
3542
1.53k
    {
3543
1.53k
  RETURN_TOKEN(T_SR);
3544
1.53k
}
3545
0
#line 3546 "Zend/zend_language_scanner.c"
3546
6.81k
yy154:
3547
6.81k
    YYDEBUG(154, *YYCURSOR);
3548
6.81k
    yych = *++YYCURSOR;
3549
6.81k
    if (yych == '>') goto yy271;
3550
324
    goto yy86;
3551
29.2k
yy155:
3552
29.2k
    YYDEBUG(155, *YYCURSOR);
3553
29.2k
    yych = *++YYCURSOR;
3554
29.2k
    if (yych == '\n') goto yy273;
3555
26.5k
    if (yych == '\r') goto yy274;
3556
29.2k
yy156:
3557
29.2k
    YYDEBUG(156, *YYCURSOR);
3558
29.2k
    yyleng = YYCURSOR - SCNG(yy_text);
3559
29.2k
#line 2525 "Zend/zend_language_scanner.l"
3560
29.2k
    {
3561
29.2k
  BEGIN(INITIAL);
3562
29.2k
  if (yytext[yyleng-1] != '>') {
3563
2.79k
    CG(increment_lineno) = 1;
3564
2.79k
  }
3565
29.2k
  if (PARSER_MODE()) {
3566
27.1k
    RETURN_TOKEN(';');  /* implicit ';' at php-end tag */
3567
27.1k
  }
3568
2.04k
  RETURN_TOKEN(T_CLOSE_TAG);
3569
2.04k
}
3570
0
#line 3571 "Zend/zend_language_scanner.c"
3571
4.18k
yy157:
3572
4.18k
    YYDEBUG(157, *YYCURSOR);
3573
4.18k
    yych = *++YYCURSOR;
3574
4.18k
    if (yych == '=') goto yy275;
3575
2.97k
    YYDEBUG(158, *YYCURSOR);
3576
2.97k
    yyleng = YYCURSOR - SCNG(yy_text);
3577
2.97k
#line 1621 "Zend/zend_language_scanner.l"
3578
2.97k
    {
3579
2.97k
  RETURN_TOKEN(T_COALESCE);
3580
2.97k
}
3581
0
#line 3582 "Zend/zend_language_scanner.c"
3582
2.40k
yy159:
3583
2.40k
    YYDEBUG(159, *YYCURSOR);
3584
2.40k
    yyaccept = 4;
3585
2.40k
    yych = *(YYMARKER = ++YYCURSOR);
3586
2.40k
    if (yych == 'S') goto yy277;
3587
2.37k
    if (yych == 's') goto yy277;
3588
1.22k
    goto yy48;
3589
2.74k
yy160:
3590
2.74k
    YYDEBUG(160, *YYCURSOR);
3591
2.74k
    yyaccept = 4;
3592
2.74k
    yych = *(YYMARKER = ++YYCURSOR);
3593
2.74k
    if (yych == 'D') goto yy278;
3594
2.62k
    if (yych == 'd') goto yy278;
3595
301
    goto yy48;
3596
11.4k
yy161:
3597
11.4k
    YYDEBUG(161, *YYCURSOR);
3598
11.4k
    yyaccept = 4;
3599
11.4k
    yych = *(YYMARKER = ++YYCURSOR);
3600
11.4k
    if (yych == 'R') goto yy280;
3601
11.3k
    if (yych == 'r') goto yy280;
3602
1.81k
    goto yy48;
3603
9.76k
yy162:
3604
9.76k
    YYDEBUG(162, *YYCURSOR);
3605
9.76k
    yyaccept = 8;
3606
9.76k
    yych = *(YYMARKER = ++YYCURSOR);
3607
9.76k
    if (yybm[256+yych] & 128) {
3608
1.49k
      goto yy47;
3609
1.49k
    }
3610
8.27k
    if (yych == '\\') goto yy164;
3611
8.26k
yy163:
3612
8.26k
    YYDEBUG(163, *YYCURSOR);
3613
8.26k
    yyleng = YYCURSOR - SCNG(yy_text);
3614
8.26k
#line 1509 "Zend/zend_language_scanner.l"
3615
8.26k
    {
3616
8.26k
  RETURN_TOKEN_WITH_IDENT(T_AS);
3617
8.26k
}
3618
0
#line 3619 "Zend/zend_language_scanner.c"
3619
8.27k
yy164:
3620
8.27k
    YYDEBUG(164, *YYCURSOR);
3621
8.27k
    ++YYCURSOR;
3622
8.27k
    YYFILL(1);
3623
8.27k
    yych = *YYCURSOR;
3624
8.27k
    if (yych <= '_') {
3625
4.27k
      if (yych <= '@') goto yy86;
3626
3.65k
      if (yych <= 'Z') goto yy281;
3627
278
      if (yych <= '^') goto yy86;
3628
27
      goto yy281;
3629
4.00k
    } else {
3630
4.00k
      if (yych <= '`') goto yy86;
3631
3.99k
      if (yych <= 'z') goto yy281;
3632
1.83k
      if (yych <= 0x7F) goto yy86;
3633
604
      goto yy281;
3634
1.83k
    }
3635
2.54k
yy165:
3636
2.54k
    YYDEBUG(165, *YYCURSOR);
3637
2.54k
    yych = *++YYCURSOR;
3638
2.54k
    if (yych == '<') goto yy284;
3639
264
    goto yy86;
3640
815
yy166:
3641
815
    YYDEBUG(166, *YYCURSOR);
3642
815
    yyaccept = 4;
3643
815
    yych = *(YYMARKER = ++YYCURSOR);
3644
815
    if (yych == 'E') goto yy285;
3645
805
    if (yych == 'e') goto yy285;
3646
29
    goto yy48;
3647
22.3k
yy167:
3648
22.3k
    YYDEBUG(167, *YYCURSOR);
3649
22.3k
    yyaccept = 4;
3650
22.3k
    yych = *(YYMARKER = ++YYCURSOR);
3651
22.3k
    if (yych <= 'T') {
3652
171
      if (yych <= 'L') {
3653
142
        if (yych <= 'K') goto yy48;
3654
10
        goto yy286;
3655
142
      } else {
3656
29
        if (yych <= 'R') goto yy48;
3657
25
        if (yych <= 'S') goto yy287;
3658
15
        goto yy288;
3659
25
      }
3660
22.1k
    } else {
3661
22.1k
      if (yych <= 'r') {
3662
4.63k
        if (yych == 'l') goto yy286;
3663
238
        goto yy48;
3664
17.5k
      } else {
3665
17.5k
        if (yych <= 's') goto yy287;
3666
15.8k
        if (yych <= 't') goto yy288;
3667
5
        goto yy48;
3668
15.8k
      }
3669
22.1k
    }
3670
28.1k
yy168:
3671
28.1k
    YYDEBUG(168, *YYCURSOR);
3672
28.1k
    yyaccept = 4;
3673
28.1k
    yych = *(YYMARKER = ++YYCURSOR);
3674
28.1k
    if (yych <= 'O') {
3675
1.05k
      if (yych == 'A') goto yy289;
3676
183
      if (yych <= 'N') goto yy48;
3677
40
      goto yy290;
3678
27.0k
    } else {
3679
27.0k
      if (yych <= 'a') {
3680
23.9k
        if (yych <= '`') goto yy48;
3681
23.9k
        goto yy289;
3682
23.9k
      } else {
3683
3.08k
        if (yych == 'o') goto yy290;
3684
370
        goto yy48;
3685
3.08k
      }
3686
27.0k
    }
3687
12.9k
yy169:
3688
12.9k
    YYDEBUG(169, *YYCURSOR);
3689
12.9k
    yyaccept = 4;
3690
12.9k
    yych = *(YYMARKER = ++YYCURSOR);
3691
12.9k
    if (yych == 'N') goto yy291;
3692
12.0k
    if (yych == 'n') goto yy291;
3693
1.50k
    goto yy48;
3694
4.45k
yy170:
3695
4.45k
    YYDEBUG(170, *YYCURSOR);
3696
4.45k
    yyaccept = 4;
3697
4.45k
    yych = *(YYMARKER = ++YYCURSOR);
3698
4.45k
    if (yych <= 'F') {
3699
480
      if (yych == 'C') goto yy292;
3700
412
      if (yych <= 'E') goto yy48;
3701
266
      goto yy293;
3702
3.97k
    } else {
3703
3.97k
      if (yych <= 'c') {
3704
1.38k
        if (yych <= 'b') goto yy48;
3705
482
        goto yy292;
3706
2.58k
      } else {
3707
2.58k
        if (yych == 'f') goto yy293;
3708
1.28k
        goto yy48;
3709
2.58k
      }
3710
3.97k
    }
3711
590
yy171:
3712
590
    YYDEBUG(171, *YYCURSOR);
3713
590
    yyaccept = 4;
3714
590
    yych = *(YYMARKER = ++YYCURSOR);
3715
590
    if (yych == 'E') goto yy294;
3716
580
    if (yych == 'e') goto yy294;
3717
351
    goto yy48;
3718
2.10k
yy172:
3719
2.10k
    YYDEBUG(172, *YYCURSOR);
3720
2.10k
    yyaccept = 9;
3721
2.10k
    yych = *(YYMARKER = ++YYCURSOR);
3722
2.10k
    if (yybm[256+yych] & 128) {
3723
1.81k
      goto yy47;
3724
1.81k
    }
3725
293
    if (yych == '\\') goto yy164;
3726
290
yy173:
3727
290
    YYDEBUG(173, *YYCURSOR);
3728
290
    yyleng = YYCURSOR - SCNG(yy_text);
3729
290
#line 1477 "Zend/zend_language_scanner.l"
3730
290
    {
3731
290
  RETURN_TOKEN_WITH_IDENT(T_DO);
3732
290
}
3733
0
#line 3734 "Zend/zend_language_scanner.c"
3734
27.6k
yy174:
3735
27.6k
    YYDEBUG(174, *YYCURSOR);
3736
27.6k
    yyaccept = 4;
3737
27.6k
    yych = *(YYMARKER = ++YYCURSOR);
3738
27.6k
    if (yych == 'H') goto yy296;
3739
27.5k
    if (yych == 'h') goto yy296;
3740
262
    goto yy48;
3741
2.00k
yy175:
3742
2.00k
    YYDEBUG(175, *YYCURSOR);
3743
2.00k
    yyaccept = 4;
3744
2.00k
    yych = *(YYMARKER = ++YYCURSOR);
3745
2.00k
    if (yych == 'S') goto yy297;
3746
1.98k
    if (yych == 's') goto yy297;
3747
780
    goto yy48;
3748
1.15k
yy176:
3749
1.15k
    YYDEBUG(176, *YYCURSOR);
3750
1.15k
    yyaccept = 4;
3751
1.15k
    yych = *(YYMARKER = ++YYCURSOR);
3752
1.15k
    if (yych == 'P') goto yy298;
3753
1.13k
    if (yych == 'p') goto yy298;
3754
580
    goto yy48;
3755
54.3k
yy177:
3756
54.3k
    YYDEBUG(177, *YYCURSOR);
3757
54.3k
    yyaccept = 4;
3758
54.3k
    yych = *(YYMARKER = ++YYCURSOR);
3759
54.3k
    if (yych <= 'U') {
3760
6.94k
      if (yych == 'D') goto yy299;
3761
1.16k
      if (yych <= 'T') goto yy48;
3762
25
      goto yy300;
3763
47.4k
    } else {
3764
47.4k
      if (yych <= 'd') {
3765
5.66k
        if (yych <= 'c') goto yy48;
3766
5.31k
        goto yy299;
3767
41.7k
      } else {
3768
41.7k
        if (yych == 'u') goto yy300;
3769
1.29k
        goto yy48;
3770
41.7k
      }
3771
47.4k
    }
3772
867
yy178:
3773
867
    YYDEBUG(178, *YYCURSOR);
3774
867
    yyaccept = 4;
3775
867
    yych = *(YYMARKER = ++YYCURSOR);
3776
867
    if (yych == 'A') goto yy301;
3777
852
    if (yych == 'a') goto yy301;
3778
52
    goto yy48;
3779
19.6k
yy179:
3780
19.6k
    YYDEBUG(179, *YYCURSOR);
3781
19.6k
    yyaccept = 4;
3782
19.6k
    yych = *(YYMARKER = ++YYCURSOR);
3783
19.6k
    if (yych <= 'T') {
3784
1.51k
      if (yych == 'I') goto yy302;
3785
1.47k
      if (yych <= 'S') goto yy48;
3786
57
      goto yy303;
3787
18.1k
    } else {
3788
18.1k
      if (yych <= 'i') {
3789
11.3k
        if (yych <= 'h') goto yy48;
3790
225
        goto yy302;
3791
11.3k
      } else {
3792
6.80k
        if (yych == 't') goto yy303;
3793
1.73k
        goto yy48;
3794
6.80k
      }
3795
18.1k
    }
3796
4.08k
yy180:
3797
4.08k
    YYDEBUG(180, *YYCURSOR);
3798
4.08k
    yyaccept = 4;
3799
4.08k
    yych = *(YYMARKER = ++YYCURSOR);
3800
4.08k
    if (yych == 'N') goto yy304;
3801
4.00k
    if (yych == 'n') goto yy304;
3802
1.83k
    goto yy48;
3803
1.83k
yy181:
3804
1.67k
    YYDEBUG(181, *YYCURSOR);
3805
1.67k
    yyaccept = 10;
3806
1.67k
    yych = *(YYMARKER = ++YYCURSOR);
3807
1.67k
    if (yybm[256+yych] & 128) {
3808
254
      goto yy47;
3809
254
    }
3810
1.42k
    if (yych == '\\') goto yy164;
3811
1.41k
yy182:
3812
1.41k
    YYDEBUG(182, *YYCURSOR);
3813
1.41k
    yyleng = YYCURSOR - SCNG(yy_text);
3814
1.41k
#line 1406 "Zend/zend_language_scanner.l"
3815
1.41k
    {
3816
1.41k
  RETURN_TOKEN_WITH_IDENT(T_FN);
3817
1.41k
}
3818
0
#line 3819 "Zend/zend_language_scanner.c"
3819
36.0k
yy183:
3820
36.0k
    YYDEBUG(183, *YYCURSOR);
3821
36.0k
    yyaccept = 4;
3822
36.0k
    yych = *(YYMARKER = ++YYCURSOR);
3823
36.0k
    if (yych == 'R') goto yy305;
3824
35.7k
    if (yych == 'r') goto yy305;
3825
17.8k
    goto yy48;
3826
39.7k
yy184:
3827
39.7k
    YYDEBUG(184, *YYCURSOR);
3828
39.7k
    yyaccept = 4;
3829
39.7k
    yych = *(YYMARKER = ++YYCURSOR);
3830
39.7k
    if (yych == 'N') goto yy307;
3831
39.4k
    if (yych == 'n') goto yy307;
3832
1.05k
    goto yy48;
3833
1.45k
yy185:
3834
1.45k
    YYDEBUG(185, *YYCURSOR);
3835
1.45k
    yyaccept = 4;
3836
1.45k
    yych = *(YYMARKER = ++YYCURSOR);
3837
1.45k
    if (yych == 'O') goto yy308;
3838
1.19k
    if (yych == 'o') goto yy308;
3839
157
    goto yy48;
3840
515
yy186:
3841
515
    YYDEBUG(186, *YYCURSOR);
3842
515
    yyaccept = 4;
3843
515
    yych = *(YYMARKER = ++YYCURSOR);
3844
515
    if (yych == 'T') goto yy309;
3845
454
    if (yych == 't') goto yy309;
3846
119
    goto yy48;
3847
8.06k
yy187:
3848
8.06k
    YYDEBUG(187, *YYCURSOR);
3849
8.06k
    yyaccept = 11;
3850
8.06k
    yych = *(YYMARKER = ++YYCURSOR);
3851
8.06k
    if (yybm[256+yych] & 128) {
3852
77
      goto yy47;
3853
77
    }
3854
7.98k
    if (yych == '\\') goto yy164;
3855
7.98k
yy188:
3856
7.98k
    YYDEBUG(188, *YYCURSOR);
3857
7.98k
    yyleng = YYCURSOR - SCNG(yy_text);
3858
7.98k
#line 1453 "Zend/zend_language_scanner.l"
3859
7.98k
    {
3860
7.98k
  RETURN_TOKEN_WITH_IDENT(T_IF);
3861
7.98k
}
3862
0
#line 3863 "Zend/zend_language_scanner.c"
3863
13.7k
yy189:
3864
13.7k
    YYDEBUG(189, *YYCURSOR);
3865
13.7k
    yyaccept = 4;
3866
13.7k
    yych = *(YYMARKER = ++YYCURSOR);
3867
13.7k
    if (yych == 'P') goto yy310;
3868
13.6k
    if (yych == 'p') goto yy310;
3869
4.35k
    goto yy48;
3870
16.7k
yy190:
3871
16.7k
    YYDEBUG(190, *YYCURSOR);
3872
16.7k
    yyaccept = 4;
3873
16.7k
    yych = *(YYMARKER = ++YYCURSOR);
3874
16.7k
    if (yych <= 'T') {
3875
5.71k
      if (yych <= 'C') {
3876
2.39k
        if (yych <= 'B') goto yy48;
3877
83
        goto yy311;
3878
3.31k
      } else {
3879
3.31k
        if (yych <= 'R') goto yy48;
3880
737
        if (yych <= 'S') goto yy312;
3881
174
        goto yy313;
3882
737
      }
3883
11.0k
    } else {
3884
11.0k
      if (yych <= 'r') {
3885
3.09k
        if (yych == 'c') goto yy311;
3886
1.81k
        goto yy48;
3887
7.96k
      } else {
3888
7.96k
        if (yych <= 's') goto yy312;
3889
6.99k
        if (yych <= 't') goto yy313;
3890
1.44k
        goto yy48;
3891
6.99k
      }
3892
11.0k
    }
3893
4.86k
yy191:
3894
4.86k
    YYDEBUG(191, *YYCURSOR);
3895
4.86k
    yyaccept = 4;
3896
4.86k
    yych = *(YYMARKER = ++YYCURSOR);
3897
4.86k
    if (yych == 'S') goto yy314;
3898
4.85k
    if (yych == 's') goto yy314;
3899
2.93k
    goto yy48;
3900
2.93k
yy192:
3901
1.65k
    YYDEBUG(192, *YYCURSOR);
3902
1.65k
    yyaccept = 4;
3903
1.65k
    yych = *(YYMARKER = ++YYCURSOR);
3904
1.65k
    if (yych == 'S') goto yy315;
3905
1.61k
    if (yych == 's') goto yy315;
3906
976
    goto yy48;
3907
2.95k
yy193:
3908
2.95k
    YYDEBUG(193, *YYCURSOR);
3909
2.95k
    yyaccept = 4;
3910
2.95k
    yych = *(YYMARKER = ++YYCURSOR);
3911
2.95k
    if (yych == 'T') goto yy316;
3912
2.95k
    if (yych == 't') goto yy316;
3913
2.36k
    goto yy48;
3914
3.56k
yy194:
3915
3.56k
    YYDEBUG(194, *YYCURSOR);
3916
3.56k
    yyaccept = 4;
3917
3.56k
    yych = *(YYMARKER = ++YYCURSOR);
3918
3.56k
    if (yych == 'M') goto yy317;
3919
2.89k
    if (yych == 'm') goto yy317;
3920
163
    goto yy48;
3921
31.4k
yy195:
3922
31.4k
    YYDEBUG(195, *YYCURSOR);
3923
31.4k
    yyaccept = 4;
3924
31.4k
    yych = *(YYMARKER = ++YYCURSOR);
3925
31.4k
    if (yych == 'W') goto yy318;
3926
31.3k
    if (yych == 'w') goto yy318;
3927
3.09k
    goto yy48;
3928
3.09k
yy196:
3929
2.41k
    YYDEBUG(196, *YYCURSOR);
3930
2.41k
    yyaccept = 12;
3931
2.41k
    yych = *(YYMARKER = ++YYCURSOR);
3932
2.41k
    if (yybm[256+yych] & 128) {
3933
366
      goto yy47;
3934
366
    }
3935
2.05k
    if (yych == '\\') goto yy164;
3936
2.05k
yy197:
3937
2.05k
    YYDEBUG(197, *YYCURSOR);
3938
2.05k
    yyleng = YYCURSOR - SCNG(yy_text);
3939
2.05k
#line 1929 "Zend/zend_language_scanner.l"
3940
2.05k
    {
3941
2.05k
  RETURN_TOKEN_WITH_IDENT(T_LOGICAL_OR);
3942
2.05k
}
3943
0
#line 3944 "Zend/zend_language_scanner.c"
3944
13.1k
yy198:
3945
13.1k
    YYDEBUG(198, *YYCURSOR);
3946
13.1k
    yyaccept = 4;
3947
13.1k
    yych = *(YYMARKER = ++YYCURSOR);
3948
13.1k
    if (yych <= 'O') {
3949
417
      if (yych == 'I') goto yy320;
3950
229
      if (yych <= 'N') goto yy48;
3951
67
      goto yy321;
3952
12.7k
    } else {
3953
12.7k
      if (yych <= 'i') {
3954
9.29k
        if (yych <= 'h') goto yy48;
3955
7.06k
        goto yy320;
3956
9.29k
      } else {
3957
3.46k
        if (yych == 'o') goto yy321;
3958
17
        goto yy48;
3959
3.46k
      }
3960
12.7k
    }
3961
25.1k
yy199:
3962
25.1k
    YYDEBUG(199, *YYCURSOR);
3963
25.1k
    yyaccept = 4;
3964
25.1k
    yych = *(YYMARKER = ++YYCURSOR);
3965
25.1k
    if (yych == 'B') goto yy322;
3966
25.1k
    if (yych == 'b') goto yy322;
3967
2.18k
    goto yy48;
3968
25.9k
yy200:
3969
25.9k
    YYDEBUG(200, *YYCURSOR);
3970
25.9k
    yyaccept = 4;
3971
25.9k
    yych = *(YYMARKER = ++YYCURSOR);
3972
25.9k
    if (yych <= 'T') {
3973
175
      if (yych <= 'P') {
3974
62
        if (yych == 'A') goto yy323;
3975
54
        goto yy48;
3976
113
      } else {
3977
113
        if (yych <= 'Q') goto yy324;
3978
57
        if (yych <= 'S') goto yy48;
3979
54
        goto yy325;
3980
57
      }
3981
25.7k
    } else {
3982
25.7k
      if (yych <= 'p') {
3983
2.88k
        if (yych == 'a') goto yy323;
3984
2.00k
        goto yy48;
3985
22.8k
      } else {
3986
22.8k
        if (yych <= 'q') goto yy324;
3987
12.4k
        if (yych == 't') goto yy325;
3988
2.09k
        goto yy48;
3989
12.4k
      }
3990
25.7k
    }
3991
18.7k
yy201:
3992
18.7k
    YYDEBUG(201, *YYCURSOR);
3993
18.7k
    yyaccept = 4;
3994
18.7k
    yych = *(YYMARKER = ++YYCURSOR);
3995
18.7k
    if (yych == 'A') goto yy326;
3996
18.7k
    if (yych == 'a') goto yy326;
3997
12.2k
    goto yy48;
3998
12.2k
yy202:
3999
2.80k
    YYDEBUG(202, *YYCURSOR);
4000
2.80k
    yyaccept = 4;
4001
2.80k
    yych = *(YYMARKER = ++YYCURSOR);
4002
2.80k
    if (yych == 'I') goto yy327;
4003
2.70k
    if (yych == 'i') goto yy327;
4004
293
    goto yy48;
4005
3.19k
yy203:
4006
3.19k
    YYDEBUG(203, *YYCURSOR);
4007
3.19k
    yyaccept = 4;
4008
3.19k
    yych = *(YYMARKER = ++YYCURSOR);
4009
3.19k
    if (yych == 'R') goto yy328;
4010
3.15k
    if (yych == 'r') goto yy328;
4011
566
    goto yy48;
4012
26.9k
yy204:
4013
26.9k
    YYDEBUG(204, *YYCURSOR);
4014
26.9k
    yyaccept = 4;
4015
26.9k
    yych = *(YYMARKER = ++YYCURSOR);
4016
26.9k
    if (yych <= 'Y') {
4017
2.02k
      if (yych == 'A') goto yy329;
4018
1.55k
      if (yych <= 'X') goto yy48;
4019
26
      goto yy330;
4020
24.9k
    } else {
4021
24.9k
      if (yych <= 'a') {
4022
2.24k
        if (yych <= '`') goto yy48;
4023
2.22k
        goto yy329;
4024
22.6k
      } else {
4025
22.6k
        if (yych == 'y') goto yy330;
4026
2.44k
        goto yy48;
4027
22.6k
      }
4028
24.9k
    }
4029
5.83k
yy205:
4030
5.83k
    YYDEBUG(205, *YYCURSOR);
4031
5.83k
    yyaccept = 4;
4032
5.83k
    yych = *(YYMARKER = ++YYCURSOR);
4033
5.83k
    if (yych == 'S') goto yy332;
4034
5.82k
    if (yych == 's') goto yy332;
4035
1.00k
    goto yy48;
4036
2.64k
yy206:
4037
2.64k
    YYDEBUG(206, *YYCURSOR);
4038
2.64k
    yyaccept = 4;
4039
2.64k
    yych = *(YYMARKER = ++YYCURSOR);
4040
2.64k
    if (yych == 'E') goto yy333;
4041
2.54k
    if (yych == 'e') goto yy333;
4042
170
    goto yy48;
4043
34.8k
yy207:
4044
34.8k
    YYDEBUG(207, *YYCURSOR);
4045
34.8k
    yyaccept = 4;
4046
34.8k
    yych = *(YYMARKER = ++YYCURSOR);
4047
34.8k
    if (yych == 'R') goto yy335;
4048
34.8k
    if (yych == 'r') goto yy335;
4049
1.37k
    goto yy48;
4050
1.37k
yy208:
4051
1.02k
    YYDEBUG(208, *YYCURSOR);
4052
1.02k
    yyaccept = 4;
4053
1.02k
    yych = *(YYMARKER = ++YYCURSOR);
4054
1.02k
    if (yych == 'I') goto yy337;
4055
1.01k
    if (yych == 'i') goto yy337;
4056
80
    goto yy48;
4057
1.99k
yy209:
4058
1.99k
    YYDEBUG(209, *YYCURSOR);
4059
1.99k
    yyaccept = 4;
4060
1.99k
    yych = *(YYMARKER = ++YYCURSOR);
4061
1.99k
    if (yych == 'R') goto yy338;
4062
1.94k
    if (yych == 'r') goto yy338;
4063
141
    goto yy48;
4064
10.6k
yy210:
4065
10.6k
    YYDEBUG(210, *YYCURSOR);
4066
10.6k
    yyaccept = 4;
4067
10.6k
    yych = *(YYMARKER = ++YYCURSOR);
4068
10.6k
    if (yych == 'E') goto yy340;
4069
10.0k
    if (yych == 'e') goto yy340;
4070
702
    goto yy48;
4071
49.7k
yy211:
4072
49.7k
    YYDEBUG(211, *YYCURSOR);
4073
49.7k
    yyaccept = 13;
4074
49.7k
    YYMARKER = ++YYCURSOR;
4075
49.7k
    YYFILL(1);
4076
49.7k
    yych = *YYCURSOR;
4077
49.7k
    YYDEBUG(212, *YYCURSOR);
4078
49.7k
    if (yych <= '\\') {
4079
14.7k
      if (yych <= '@') {
4080
7.38k
        if (yych <= '/') goto yy213;
4081
2.62k
        if (yych <= '9') goto yy211;
4082
7.40k
      } else {
4083
7.40k
        if (yych <= 'Z') goto yy211;
4084
896
        if (yych >= '\\') goto yy341;
4085
896
      }
4086
34.9k
    } else {
4087
34.9k
      if (yych <= '`') {
4088
1.99k
        if (yych == '_') goto yy211;
4089
32.9k
      } else {
4090
32.9k
        if (yych <= 'z') goto yy211;
4091
1.84k
        if (yych >= 0x80) goto yy211;
4092
1.84k
      }
4093
34.9k
    }
4094
7.30k
yy213:
4095
7.30k
    YYDEBUG(213, *YYCURSOR);
4096
7.30k
    yyleng = YYCURSOR - SCNG(yy_text);
4097
7.30k
#line 2446 "Zend/zend_language_scanner.l"
4098
7.30k
    {
4099
7.30k
  RETURN_TOKEN_WITH_STR(T_NAME_FULLY_QUALIFIED, 1);
4100
7.30k
}
4101
0
#line 4102 "Zend/zend_language_scanner.c"
4102
166
yy214:
4103
166
    YYDEBUG(214, *YYCURSOR);
4104
166
    ++YYCURSOR;
4105
166
    YYDEBUG(215, *YYCURSOR);
4106
166
    yyleng = YYCURSOR - SCNG(yy_text);
4107
166
#line 1909 "Zend/zend_language_scanner.l"
4108
166
    {
4109
166
  RETURN_TOKEN(T_XOR_EQUAL);
4110
166
}
4111
0
#line 4112 "Zend/zend_language_scanner.c"
4112
25.5k
yy216:
4113
25.5k
    YYDEBUG(216, *YYCURSOR);
4114
25.5k
    yyaccept = 4;
4115
25.5k
    yych = *(YYMARKER = ++YYCURSOR);
4116
25.5k
    switch (yych) {
4117
461
    case 'C':
4118
3.51k
    case 'c': goto yy342;
4119
1.44k
    case 'D':
4120
2.79k
    case 'd': goto yy343;
4121
2.71k
    case 'F':
4122
2.98k
    case 'f': goto yy344;
4123
26
    case 'H':
4124
322
    case 'h': goto yy345;
4125
234
    case 'L':
4126
236
    case 'l': goto yy346;
4127
3.27k
    case 'M':
4128
3.42k
    case 'm': goto yy347;
4129
1.03k
    case 'N':
4130
1.08k
    case 'n': goto yy348;
4131
168
    case 'P':
4132
264
    case 'p': goto yy349;
4133
142
    case 'T':
4134
465
    case 't': goto yy350;
4135
10.5k
    default:  goto yy48;
4136
25.5k
    }
4137
698
yy217:
4138
698
    YYDEBUG(217, *YYCURSOR);
4139
698
    ++YYCURSOR;
4140
698
    YYDEBUG(218, *YYCURSOR);
4141
698
    yyleng = YYCURSOR - SCNG(yy_text);
4142
698
#line 1905 "Zend/zend_language_scanner.l"
4143
698
    {
4144
698
  RETURN_TOKEN(T_OR_EQUAL);
4145
698
}
4146
0
#line 4147 "Zend/zend_language_scanner.c"
4147
743
yy219:
4148
743
    YYDEBUG(219, *YYCURSOR);
4149
743
    ++YYCURSOR;
4150
743
    YYDEBUG(220, *YYCURSOR);
4151
743
    yyleng = YYCURSOR - SCNG(yy_text);
4152
743
#line 1917 "Zend/zend_language_scanner.l"
4153
743
    {
4154
743
  RETURN_TOKEN(T_PIPE);
4155
743
}
4156
0
#line 4157 "Zend/zend_language_scanner.c"
4157
2.33k
yy221:
4158
2.33k
    YYDEBUG(221, *YYCURSOR);
4159
2.33k
    ++YYCURSOR;
4160
2.33k
    YYDEBUG(222, *YYCURSOR);
4161
2.33k
    yyleng = YYCURSOR - SCNG(yy_text);
4162
2.33k
#line 1921 "Zend/zend_language_scanner.l"
4163
2.33k
    {
4164
2.33k
  RETURN_TOKEN(T_BOOLEAN_OR);
4165
2.33k
}
4166
0
#line 4167 "Zend/zend_language_scanner.c"
4167
633
yy223:
4168
633
    YYDEBUG(223, *YYCURSOR);
4169
633
    ++YYCURSOR;
4170
633
    YYDEBUG(224, *YYCURSOR);
4171
633
    yyleng = YYCURSOR - SCNG(yy_text);
4172
633
#line 1837 "Zend/zend_language_scanner.l"
4173
633
    {
4174
633
  RETURN_TOKEN(T_IS_NOT_IDENTICAL);
4175
633
}
4176
0
#line 4177 "Zend/zend_language_scanner.c"
4177
112k
yy225:
4178
112k
    YYDEBUG(225, *YYCURSOR);
4179
112k
    ++YYCURSOR;
4180
112k
    YYFILL(1);
4181
112k
    yych = *YYCURSOR;
4182
112k
    YYDEBUG(226, *YYCURSOR);
4183
112k
    if (yybm[0+yych] & 2) {
4184
99.4k
      goto yy225;
4185
99.4k
    }
4186
13.4k
    if (yych <= 0x00) goto yy86;
4187
12.2k
    goto yy84;
4188
21.7k
yy227:
4189
21.7k
    YYDEBUG(227, *YYCURSOR);
4190
21.7k
    ++YYCURSOR;
4191
21.7k
    YYFILL(1);
4192
21.7k
    yych = *YYCURSOR;
4193
21.7k
    YYDEBUG(228, *YYCURSOR);
4194
21.7k
    if (yych <= 0x1F) {
4195
226
      if (yych <= '\t') {
4196
129
        if (yych <= 0x00) goto yy86;
4197
108
        if (yych <= 0x08) goto yy225;
4198
21
        goto yy227;
4199
108
      } else {
4200
97
        if (yych <= '\n') goto yy84;
4201
94
        if (yych == '\r') goto yy84;
4202
24
        goto yy225;
4203
94
      }
4204
21.5k
    } else {
4205
21.5k
      if (yych <= '$') {
4206
6.34k
        if (yych <= ' ') goto yy227;
4207
5.65k
        if (yych <= '"') goto yy225;
4208
5.62k
        if (yych <= '#') goto yy351;
4209
1.28k
        goto yy352;
4210
15.2k
      } else {
4211
15.2k
        if (yych <= '-') goto yy225;
4212
13.2k
        if (yych <= '.') goto yy353;
4213
11.8k
        if (yych <= '/') goto yy354;
4214
7.07k
        goto yy225;
4215
11.8k
      }
4216
21.5k
    }
4217
101
yy229:
4218
101
    YYDEBUG(229, *YYCURSOR);
4219
101
    yych = *++YYCURSOR;
4220
101
    if (yych == '.') goto yy88;
4221
59
    goto yy86;
4222
107k
yy230:
4223
107k
    YYDEBUG(230, *YYCURSOR);
4224
107k
    ++YYCURSOR;
4225
107k
    YYFILL(1);
4226
107k
    yych = *YYCURSOR;
4227
107k
    YYDEBUG(231, *YYCURSOR);
4228
107k
    if (yybm[0+yych] & 4) {
4229
103k
      goto yy230;
4230
103k
    }
4231
4.51k
    if (yych <= 0x00) goto yy86;
4232
3.85k
    goto yy355;
4233
5.11k
yy232:
4234
5.11k
    YYDEBUG(232, *YYCURSOR);
4235
5.11k
    yych = *++YYCURSOR;
4236
5.11k
    if (yych == 'R') goto yy357;
4237
5.11k
    if (yych == 'r') goto yy357;
4238
782
    goto yy86;
4239
782
yy233:
4240
322
    YYDEBUG(233, *YYCURSOR);
4241
322
    yych = *++YYCURSOR;
4242
322
    if (yych == 'N') goto yy358;
4243
295
    if (yych == 'n') goto yy358;
4244
273
    goto yy86;
4245
273
yy234:
4246
152
    YYDEBUG(234, *YYCURSOR);
4247
152
    yych = *++YYCURSOR;
4248
152
    if (yych == 'O') goto yy359;
4249
152
    if (yych == 'o') goto yy359;
4250
34
    goto yy86;
4251
56
yy235:
4252
56
    YYDEBUG(235, *YYCURSOR);
4253
56
    yych = *++YYCURSOR;
4254
56
    if (yych == 'U') goto yy360;
4255
56
    if (yych == 'u') goto yy360;
4256
31
    goto yy86;
4257
143
yy236:
4258
143
    YYDEBUG(236, *YYCURSOR);
4259
143
    yych = *++YYCURSOR;
4260
143
    if (yych == 'O') goto yy361;
4261
143
    if (yych == 'o') goto yy361;
4262
11
    goto yy86;
4263
2.10k
yy237:
4264
2.10k
    YYDEBUG(237, *YYCURSOR);
4265
2.10k
    yych = *++YYCURSOR;
4266
2.10k
    if (yych == 'T') goto yy362;
4267
2.10k
    if (yych == 't') goto yy362;
4268
610
    goto yy86;
4269
610
yy238:
4270
480
    YYDEBUG(238, *YYCURSOR);
4271
480
    yych = *++YYCURSOR;
4272
480
    if (yych == 'J') goto yy363;
4273
480
    if (yych == 'j') goto yy363;
4274
40
    goto yy86;
4275
524
yy239:
4276
524
    YYDEBUG(239, *YYCURSOR);
4277
524
    yych = *++YYCURSOR;
4278
524
    if (yych == 'A') goto yy364;
4279
522
    if (yych == 'a') goto yy364;
4280
469
    goto yy86;
4281
5.35k
yy240:
4282
5.35k
    YYDEBUG(240, *YYCURSOR);
4283
5.35k
    yych = *++YYCURSOR;
4284
5.35k
    if (yych == 'R') goto yy365;
4285
5.35k
    if (yych == 'r') goto yy365;
4286
177
    goto yy86;
4287
466
yy241:
4288
466
    YYDEBUG(241, *YYCURSOR);
4289
466
    yych = *++YYCURSOR;
4290
466
    if (yych == 'S') goto yy366;
4291
466
    if (yych == 's') goto yy366;
4292
146
    goto yy86;
4293
146
yy242:
4294
80
    YYDEBUG(242, *YYCURSOR);
4295
80
    yych = *++YYCURSOR;
4296
80
    if (yych == 'I') goto yy367;
4297
80
    if (yych == 'i') goto yy367;
4298
9
    goto yy86;
4299
70
yy243:
4300
70
    YYDEBUG(243, *YYCURSOR);
4301
70
    ++YYCURSOR;
4302
70
    YYDEBUG(244, *YYCURSOR);
4303
70
    yyleng = YYCURSOR - SCNG(yy_text);
4304
70
#line 1877 "Zend/zend_language_scanner.l"
4305
70
    {
4306
70
  RETURN_TOKEN(T_POW_EQUAL);
4307
70
}
4308
0
#line 4309 "Zend/zend_language_scanner.c"
4309
2.02k
yy245:
4310
2.02k
    YYDEBUG(245, *YYCURSOR);
4311
2.02k
    ++YYCURSOR;
4312
2.02k
    YYDEBUG(246, *YYCURSOR);
4313
2.02k
    yyleng = YYCURSOR - SCNG(yy_text);
4314
2.02k
#line 1617 "Zend/zend_language_scanner.l"
4315
2.02k
    {
4316
2.02k
  RETURN_TOKEN(T_ELLIPSIS);
4317
2.02k
}
4318
0
#line 4319 "Zend/zend_language_scanner.c"
4319
242
yy247:
4320
242
    YYDEBUG(247, *YYCURSOR);
4321
242
    ++YYCURSOR;
4322
242
    YYFILL(1);
4323
242
    yych = *YYCURSOR;
4324
242
    if (yych <= '/') goto yy86;
4325
131
    if (yych <= '9') goto yy123;
4326
81
    goto yy86;
4327
639
yy248:
4328
639
    YYDEBUG(248, *YYCURSOR);
4329
639
    yych = *++YYCURSOR;
4330
639
    if (yych <= '\f') {
4331
275
      if (yych <= 0x08) goto yy86;
4332
272
      if (yych <= '\n') goto yy368;
4333
0
      goto yy86;
4334
364
    } else {
4335
364
      if (yych <= '\r') goto yy368;
4336
364
      if (yych == ' ') goto yy368;
4337
52
      goto yy86;
4338
364
    }
4339
10.7k
yy249:
4340
10.7k
    YYDEBUG(249, *YYCURSOR);
4341
10.7k
    yyaccept = 14;
4342
10.7k
    YYMARKER = ++YYCURSOR;
4343
10.7k
    YYFILL(1);
4344
10.7k
    yych = *YYCURSOR;
4345
10.7k
    YYDEBUG(250, *YYCURSOR);
4346
10.7k
    if (yybm[0+yych] & 8) {
4347
10.0k
      goto yy249;
4348
10.0k
    }
4349
613
    if (yych == '_') goto yy134;
4350
529
yy251:
4351
529
    YYDEBUG(251, *YYCURSOR);
4352
529
    yyleng = YYCURSOR - SCNG(yy_text);
4353
529
#line 2010 "Zend/zend_language_scanner.l"
4354
529
    {
4355
  /* The +/- 2 skips "0b" */
4356
529
  size_t len = yyleng - 2;
4357
529
  char *end, *bin = yytext + 2;
4358
529
  bool contains_underscores;
4359
4360
  /* Skip any leading 0s */
4361
628
  while (len > 0 && (*bin == '0' || *bin == '_')) {
4362
99
    ++bin;
4363
99
    --len;
4364
99
  }
4365
4366
529
  contains_underscores = (memchr(bin, '_', len) != NULL);
4367
4368
529
  if (contains_underscores) {
4369
82
    bin = estrndup(bin, len);
4370
82
    strip_underscores(bin, &len);
4371
82
  }
4372
4373
529
  if (len < SIZEOF_ZEND_LONG * 8) {
4374
515
    if (len == 0) {
4375
44
      ZVAL_LONG(zendlval, 0);
4376
471
    } else {
4377
471
      errno = 0;
4378
471
      ZVAL_LONG(zendlval, ZEND_STRTOL(bin, &end, 2));
4379
471
      ZEND_ASSERT(!errno && end == bin + len);
4380
471
    }
4381
515
    if (contains_underscores) {
4382
82
      efree(bin);
4383
82
    }
4384
515
    RETURN_TOKEN_WITH_VAL(T_LNUMBER);
4385
515
  } else {
4386
14
    ZVAL_DOUBLE(zendlval, zend_bin_strtod(bin, (const char **)&end));
4387
    /* errno isn't checked since we allow HUGE_VAL/INF overflow */
4388
14
    ZEND_ASSERT(end == bin + len);
4389
14
    if (contains_underscores) {
4390
0
      efree(bin);
4391
0
    }
4392
14
    RETURN_TOKEN_WITH_VAL(T_DNUMBER);
4393
14
  }
4394
529
}
4395
0
#line 4396 "Zend/zend_language_scanner.c"
4396
700
yy252:
4397
700
    YYDEBUG(252, *YYCURSOR);
4398
700
    ++YYCURSOR;
4399
700
    YYFILL(1);
4400
700
    yych = *YYCURSOR;
4401
700
    if (yych <= '/') goto yy86;
4402
676
    if (yych >= ':') goto yy86;
4403
2.98k
yy253:
4404
2.98k
    YYDEBUG(253, *YYCURSOR);
4405
2.98k
    yyaccept = 5;
4406
2.98k
    YYMARKER = ++YYCURSOR;
4407
2.98k
    YYFILL(1);
4408
2.98k
    yych = *YYCURSOR;
4409
2.98k
    YYDEBUG(254, *YYCURSOR);
4410
2.98k
    if (yych <= '/') goto yy125;
4411
2.44k
    if (yych <= '9') goto yy253;
4412
727
    if (yych == '_') goto yy252;
4413
643
    goto yy125;
4414
643
yy255:
4415
47
    YYDEBUG(255, *YYCURSOR);
4416
47
    yyaccept = 15;
4417
47
    YYMARKER = ++YYCURSOR;
4418
47
    YYFILL(1);
4419
47
    yych = *YYCURSOR;
4420
47
    YYDEBUG(256, *YYCURSOR);
4421
47
    if (yybm[0+yych] & 16) {
4422
36
      goto yy255;
4423
36
    }
4424
11
    if (yych == '_') goto yy136;
4425
11
yy257:
4426
11
    YYDEBUG(257, *YYCURSOR);
4427
11
    yyleng = YYCURSOR - SCNG(yy_text);
4428
11
#line 2052 "Zend/zend_language_scanner.l"
4429
11
    {
4430
  /* The +/- 2 skips "0o" */
4431
11
  size_t len = yyleng - 2;
4432
11
  char *end, *octal = yytext + 2;
4433
11
  bool contains_underscores = (memchr(octal, '_', len) != NULL);
4434
4435
  /* Skip any leading 0s */
4436
20
  while (len > 0 && (*octal == '0' || *octal == '_')) {
4437
9
    ++octal;
4438
9
    --len;
4439
9
  }
4440
4441
11
  if (len == 0) {
4442
3
    ZVAL_LONG(zendlval, 0);
4443
3
    RETURN_TOKEN_WITH_VAL(T_LNUMBER);
4444
3
  }
4445
4446
8
  if (contains_underscores) {
4447
0
    octal = estrndup(octal, len);
4448
0
    strip_underscores(octal, &len);
4449
0
  }
4450
4451
8
  errno = 0;
4452
4453
8
  ZVAL_LONG(zendlval, ZEND_STRTOL(octal, &end, 8));
4454
4455
8
  ZEND_ASSERT(end == octal + len);
4456
4457
8
  if (!errno) {
4458
8
    if (contains_underscores) {
4459
0
      efree(octal);
4460
0
    }
4461
8
    RETURN_TOKEN_WITH_VAL(T_LNUMBER);
4462
8
  }
4463
4464
  /* Overflow */
4465
0
  ZEND_ASSERT(errno == ERANGE);
4466
  /* Reset errno */
4467
0
  errno = 0;
4468
4469
  /* zend_oct_strtod skips leading '0' */
4470
0
  ZVAL_DOUBLE(zendlval, zend_oct_strtod(octal, (const char **)&end));
4471
0
  ZEND_ASSERT(!errno);
4472
0
  ZEND_ASSERT(end == octal + len);
4473
0
  if (contains_underscores) {
4474
0
    efree(octal);
4475
0
  }
4476
0
  RETURN_TOKEN_WITH_VAL(T_DNUMBER);
4477
0
}
4478
0
#line 4479 "Zend/zend_language_scanner.c"
4479
11.0k
yy258:
4480
11.0k
    YYDEBUG(258, *YYCURSOR);
4481
11.0k
    yyaccept = 16;
4482
11.0k
    YYMARKER = ++YYCURSOR;
4483
11.0k
    YYFILL(1);
4484
11.0k
    yych = *YYCURSOR;
4485
11.0k
    YYDEBUG(259, *YYCURSOR);
4486
11.0k
    if (yybm[0+yych] & 32) {
4487
9.61k
      goto yy258;
4488
9.61k
    }
4489
1.47k
    if (yych == '_') goto yy137;
4490
1.44k
yy260:
4491
1.44k
    YYDEBUG(260, *YYCURSOR);
4492
1.44k
    yyleng = YYCURSOR - SCNG(yy_text);
4493
1.44k
#line 2165 "Zend/zend_language_scanner.l"
4494
1.44k
    {
4495
  /* The +/- 2 skips "0x" */
4496
1.44k
  size_t len = yyleng - 2;
4497
1.44k
  char *end, *hex = yytext + 2;
4498
1.44k
  bool contains_underscores;
4499
4500
  /* Skip any leading 0s */
4501
1.78k
  while (len > 0 && (*hex == '0' || *hex == '_')) {
4502
341
    ++hex;
4503
341
    --len;
4504
341
  }
4505
4506
1.44k
  contains_underscores = (memchr(hex, '_', len) != NULL);
4507
4508
1.44k
  if (contains_underscores) {
4509
19
    hex = estrndup(hex, len);
4510
19
    strip_underscores(hex, &len);
4511
19
  }
4512
4513
1.44k
  if (len < SIZEOF_ZEND_LONG * 2 || (len == SIZEOF_ZEND_LONG * 2 && *hex <= '7')) {
4514
1.30k
    if (len == 0) {
4515
161
      ZVAL_LONG(zendlval, 0);
4516
1.14k
    } else {
4517
1.14k
      errno = 0;
4518
1.14k
      ZVAL_LONG(zendlval, ZEND_STRTOL(hex, &end, 16));
4519
1.14k
      ZEND_ASSERT(!errno && end == hex + len);
4520
1.14k
    }
4521
1.30k
    if (contains_underscores) {
4522
16
      efree(hex);
4523
16
    }
4524
1.30k
    RETURN_TOKEN_WITH_VAL(T_LNUMBER);
4525
1.30k
  } else {
4526
142
    ZVAL_DOUBLE(zendlval, zend_hex_strtod(hex, (const char **)&end));
4527
    /* errno isn't checked since we allow HUGE_VAL/INF overflow */
4528
142
    ZEND_ASSERT(end == hex + len);
4529
142
    if (contains_underscores) {
4530
3
      efree(hex);
4531
3
    }
4532
142
    RETURN_TOKEN_WITH_VAL(T_DNUMBER);
4533
142
  }
4534
1.44k
}
4535
0
#line 4536 "Zend/zend_language_scanner.c"
4536
339k
yy261:
4537
339k
    YYDEBUG(261, *YYCURSOR);
4538
339k
    ++YYCURSOR;
4539
339k
    YYFILL(2);
4540
339k
    yych = *YYCURSOR;
4541
339k
    YYDEBUG(262, *YYCURSOR);
4542
339k
    if (yych <= '\'') {
4543
5.32k
      if (yych <= ' ') {
4544
2.14k
        if (yych == '\t') goto yy261;
4545
2.11k
        if (yych <= 0x1F) goto yy86;
4546
441
        goto yy261;
4547
3.17k
      } else {
4548
3.17k
        if (yych == '"') goto yy370;
4549
2.96k
        if (yych <= '&') goto yy86;
4550
2.19k
        goto yy371;
4551
2.96k
      }
4552
333k
    } else {
4553
333k
      if (yych <= '_') {
4554
35.6k
        if (yych <= '@') goto yy86;
4555
22.6k
        if (yych <= 'Z') goto yy372;
4556
46
        if (yych <= '^') goto yy86;
4557
25
        goto yy372;
4558
298k
      } else {
4559
298k
        if (yych <= '`') goto yy86;
4560
297k
        if (yych <= 'z') goto yy372;
4561
7.52k
        if (yych <= 0x7F) goto yy86;
4562
7.12k
        goto yy372;
4563
7.52k
      }
4564
333k
    }
4565
179
yy263:
4566
179
    YYDEBUG(263, *YYCURSOR);
4567
179
    ++YYCURSOR;
4568
179
    YYDEBUG(264, *YYCURSOR);
4569
179
    yyleng = YYCURSOR - SCNG(yy_text);
4570
179
#line 1893 "Zend/zend_language_scanner.l"
4571
179
    {
4572
179
  RETURN_TOKEN(T_SL_EQUAL);
4573
179
}
4574
0
#line 4575 "Zend/zend_language_scanner.c"
4575
45
yy265:
4576
45
    YYDEBUG(265, *YYCURSOR);
4577
45
    ++YYCURSOR;
4578
45
    YYDEBUG(266, *YYCURSOR);
4579
45
    yyleng = YYCURSOR - SCNG(yy_text);
4580
45
#line 1849 "Zend/zend_language_scanner.l"
4581
45
    {
4582
45
  RETURN_TOKEN(T_SPACESHIP);
4583
45
}
4584
0
#line 4585 "Zend/zend_language_scanner.c"
4585
1.98k
yy267:
4586
1.98k
    YYDEBUG(267, *YYCURSOR);
4587
1.98k
    ++YYCURSOR;
4588
1.98k
    YYDEBUG(268, *YYCURSOR);
4589
1.98k
    yyleng = YYCURSOR - SCNG(yy_text);
4590
1.98k
#line 1833 "Zend/zend_language_scanner.l"
4591
1.98k
    {
4592
1.98k
  RETURN_TOKEN(T_IS_IDENTICAL);
4593
1.98k
}
4594
0
#line 4595 "Zend/zend_language_scanner.c"
4595
251
yy269:
4596
251
    YYDEBUG(269, *YYCURSOR);
4597
251
    ++YYCURSOR;
4598
251
    YYDEBUG(270, *YYCURSOR);
4599
251
    yyleng = YYCURSOR - SCNG(yy_text);
4600
251
#line 1897 "Zend/zend_language_scanner.l"
4601
251
    {
4602
251
  RETURN_TOKEN(T_SR_EQUAL);
4603
251
}
4604
0
#line 4605 "Zend/zend_language_scanner.c"
4605
6.49k
yy271:
4606
6.49k
    YYDEBUG(271, *YYCURSOR);
4607
6.49k
    ++YYCURSOR;
4608
6.49k
    YYDEBUG(272, *YYCURSOR);
4609
6.49k
    yyleng = YYCURSOR - SCNG(yy_text);
4610
6.49k
#line 1591 "Zend/zend_language_scanner.l"
4611
6.49k
    {
4612
6.49k
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
4613
6.49k
  RETURN_TOKEN(T_NULLSAFE_OBJECT_OPERATOR);
4614
6.49k
}
4615
0
#line 4616 "Zend/zend_language_scanner.c"
4616
2.76k
yy273:
4617
2.76k
    YYDEBUG(273, *YYCURSOR);
4618
2.76k
    ++YYCURSOR;
4619
2.76k
    goto yy156;
4620
129
yy274:
4621
129
    YYDEBUG(274, *YYCURSOR);
4622
129
    yych = *++YYCURSOR;
4623
129
    if (yych == '\n') goto yy273;
4624
31
    goto yy156;
4625
1.20k
yy275:
4626
1.20k
    YYDEBUG(275, *YYCURSOR);
4627
1.20k
    ++YYCURSOR;
4628
1.20k
    YYDEBUG(276, *YYCURSOR);
4629
1.20k
    yyleng = YYCURSOR - SCNG(yy_text);
4630
1.20k
#line 1913 "Zend/zend_language_scanner.l"
4631
1.20k
    {
4632
1.20k
  RETURN_TOKEN(T_COALESCE_EQUAL);
4633
1.20k
}
4634
0
#line 4635 "Zend/zend_language_scanner.c"
4635
1.17k
yy277:
4636
1.17k
    YYDEBUG(277, *YYCURSOR);
4637
1.17k
    yyaccept = 4;
4638
1.17k
    yych = *(YYMARKER = ++YYCURSOR);
4639
1.17k
    if (yych == 'T') goto yy374;
4640
1.12k
    if (yych == 't') goto yy374;
4641
108
    goto yy48;
4642
2.44k
yy278:
4643
2.44k
    YYDEBUG(278, *YYCURSOR);
4644
2.44k
    yyaccept = 17;
4645
2.44k
    yych = *(YYMARKER = ++YYCURSOR);
4646
2.44k
    if (yybm[256+yych] & 128) {
4647
3
      goto yy47;
4648
3
    }
4649
2.44k
    if (yych == '\\') goto yy164;
4650
2.43k
yy279:
4651
2.43k
    YYDEBUG(279, *YYCURSOR);
4652
2.43k
    yyleng = YYCURSOR - SCNG(yy_text);
4653
2.43k
#line 1933 "Zend/zend_language_scanner.l"
4654
2.43k
    {
4655
2.43k
  RETURN_TOKEN_WITH_IDENT(T_LOGICAL_AND);
4656
2.43k
}
4657
0
#line 4658 "Zend/zend_language_scanner.c"
4658
9.60k
yy280:
4659
9.60k
    YYDEBUG(280, *YYCURSOR);
4660
9.60k
    yyaccept = 4;
4661
9.60k
    yych = *(YYMARKER = ++YYCURSOR);
4662
9.60k
    if (yych == 'A') goto yy375;
4663
9.56k
    if (yych == 'a') goto yy375;
4664
1.12k
    goto yy48;
4665
22.7k
yy281:
4666
22.7k
    YYDEBUG(281, *YYCURSOR);
4667
22.7k
    yyaccept = 18;
4668
22.7k
    YYMARKER = ++YYCURSOR;
4669
22.7k
    YYFILL(1);
4670
22.7k
    yych = *YYCURSOR;
4671
22.7k
    YYDEBUG(282, *YYCURSOR);
4672
22.7k
    if (yych <= '\\') {
4673
6.64k
      if (yych <= '@') {
4674
5.29k
        if (yych <= '/') goto yy283;
4675
870
        if (yych <= '9') goto yy281;
4676
1.35k
      } else {
4677
1.35k
        if (yych <= 'Z') goto yy281;
4678
728
        if (yych >= '\\') goto yy164;
4679
728
      }
4680
16.1k
    } else {
4681
16.1k
      if (yych <= '`') {
4682
110
        if (yych == '_') goto yy281;
4683
16.0k
      } else {
4684
16.0k
        if (yych <= 'z') goto yy281;
4685
7.06k
        if (yych >= 0x80) goto yy281;
4686
7.06k
      }
4687
16.1k
    }
4688
5.63k
yy283:
4689
5.63k
    YYDEBUG(283, *YYCURSOR);
4690
5.63k
    yyleng = YYCURSOR - SCNG(yy_text);
4691
5.63k
#line 2442 "Zend/zend_language_scanner.l"
4692
5.63k
    {
4693
5.63k
  RETURN_TOKEN_WITH_STR(T_NAME_QUALIFIED, 0);
4694
5.63k
}
4695
0
#line 4696 "Zend/zend_language_scanner.c"
4696
2.27k
yy284:
4697
2.27k
    YYDEBUG(284, *YYCURSOR);
4698
2.27k
    yych = *++YYCURSOR;
4699
2.27k
    if (yych == '<') goto yy261;
4700
203
    goto yy86;
4701
786
yy285:
4702
786
    YYDEBUG(285, *YYCURSOR);
4703
786
    yyaccept = 4;
4704
786
    yych = *(YYMARKER = ++YYCURSOR);
4705
786
    if (yych == 'A') goto yy376;
4706
776
    if (yych == 'a') goto yy376;
4707
260
    goto yy48;
4708
4.40k
yy286:
4709
4.40k
    YYDEBUG(286, *YYCURSOR);
4710
4.40k
    yyaccept = 4;
4711
4.40k
    yych = *(YYMARKER = ++YYCURSOR);
4712
4.40k
    if (yych == 'L') goto yy377;
4713
4.39k
    if (yych == 'l') goto yy377;
4714
80
    goto yy48;
4715
1.73k
yy287:
4716
1.73k
    YYDEBUG(287, *YYCURSOR);
4717
1.73k
    yyaccept = 4;
4718
1.73k
    yych = *(YYMARKER = ++YYCURSOR);
4719
1.73k
    if (yych == 'E') goto yy378;
4720
1.72k
    if (yych == 'e') goto yy378;
4721
30
    goto yy48;
4722
15.8k
yy288:
4723
15.8k
    YYDEBUG(288, *YYCURSOR);
4724
15.8k
    yyaccept = 4;
4725
15.8k
    yych = *(YYMARKER = ++YYCURSOR);
4726
15.8k
    if (yych == 'C') goto yy380;
4727
15.8k
    if (yych == 'c') goto yy380;
4728
369
    goto yy48;
4729
24.8k
yy289:
4730
24.8k
    YYDEBUG(289, *YYCURSOR);
4731
24.8k
    yyaccept = 4;
4732
24.8k
    yych = *(YYMARKER = ++YYCURSOR);
4733
24.8k
    if (yych == 'S') goto yy381;
4734
23.9k
    if (yych == 's') goto yy381;
4735
332
    goto yy48;
4736
2.75k
yy290:
4737
2.75k
    YYDEBUG(290, *YYCURSOR);
4738
2.75k
    yyaccept = 4;
4739
2.75k
    yych = *(YYMARKER = ++YYCURSOR);
4740
2.75k
    if (yych == 'N') goto yy382;
4741
2.71k
    if (yych == 'n') goto yy382;
4742
2.03k
    goto yy48;
4743
11.3k
yy291:
4744
11.3k
    YYDEBUG(291, *YYCURSOR);
4745
11.3k
    yyaccept = 4;
4746
11.3k
    yych = *(YYMARKER = ++YYCURSOR);
4747
11.3k
    if (yych <= 'T') {
4748
1.45k
      if (yych <= 'R') goto yy48;
4749
850
      if (yych <= 'S') goto yy383;
4750
132
      goto yy384;
4751
9.93k
    } else {
4752
9.93k
      if (yych <= 'r') goto yy48;
4753
9.92k
      if (yych <= 's') goto yy383;
4754
775
      if (yych <= 't') goto yy384;
4755
56
      goto yy48;
4756
775
    }
4757
550
yy292:
4758
550
    YYDEBUG(292, *YYCURSOR);
4759
550
    yyaccept = 4;
4760
550
    yych = *(YYMARKER = ++YYCURSOR);
4761
550
    if (yych == 'L') goto yy385;
4762
530
    if (yych == 'l') goto yy385;
4763
163
    goto yy48;
4764
1.56k
yy293:
4765
1.56k
    YYDEBUG(293, *YYCURSOR);
4766
1.56k
    yyaccept = 4;
4767
1.56k
    yych = *(YYMARKER = ++YYCURSOR);
4768
1.56k
    if (yych == 'A') goto yy386;
4769
1.55k
    if (yych == 'a') goto yy386;
4770
948
    goto yy48;
4771
948
yy294:
4772
239
    YYDEBUG(294, *YYCURSOR);
4773
239
    yyaccept = 19;
4774
239
    yych = *(YYMARKER = ++YYCURSOR);
4775
239
    if (yybm[256+yych] & 128) {
4776
94
      goto yy47;
4777
94
    }
4778
145
    if (yych == '\\') goto yy164;
4779
145
yy295:
4780
145
    YYDEBUG(295, *YYCURSOR);
4781
145
    yyleng = YYCURSOR - SCNG(yy_text);
4782
145
#line 1402 "Zend/zend_language_scanner.l"
4783
145
    {
4784
145
  RETURN_TOKEN_WITH_IDENT(T_EXIT);
4785
145
}
4786
0
#line 4787 "Zend/zend_language_scanner.c"
4787
27.3k
yy296:
4788
27.3k
    YYDEBUG(296, *YYCURSOR);
4789
27.3k
    yyaccept = 4;
4790
27.3k
    yych = *(YYMARKER = ++YYCURSOR);
4791
27.3k
    if (yych == 'O') goto yy387;
4792
27.3k
    if (yych == 'o') goto yy387;
4793
99
    goto yy48;
4794
1.22k
yy297:
4795
1.22k
    YYDEBUG(297, *YYCURSOR);
4796
1.22k
    yyaccept = 4;
4797
1.22k
    yych = *(YYMARKER = ++YYCURSOR);
4798
1.22k
    if (yych == 'E') goto yy389;
4799
1.20k
    if (yych == 'e') goto yy389;
4800
110
    goto yy48;
4801
570
yy298:
4802
570
    YYDEBUG(298, *YYCURSOR);
4803
570
    yyaccept = 4;
4804
570
    yych = *(YYMARKER = ++YYCURSOR);
4805
570
    if (yych == 'T') goto yy391;
4806
556
    if (yych == 't') goto yy391;
4807
2
    goto yy48;
4808
11.1k
yy299:
4809
11.1k
    YYDEBUG(299, *YYCURSOR);
4810
11.1k
    yyaccept = 4;
4811
11.1k
    yych = *(YYMARKER = ++YYCURSOR);
4812
11.1k
    switch (yych) {
4813
109
    case 'D':
4814
159
    case 'd': goto yy392;
4815
1.30k
    case 'F':
4816
2.59k
    case 'f': goto yy393;
4817
1.19k
    case 'I':
4818
2.33k
    case 'i': goto yy394;
4819
25
    case 'S':
4820
295
    case 's': goto yy395;
4821
137
    case 'W':
4822
2.37k
    case 'w': goto yy396;
4823
3.35k
    default:  goto yy48;
4824
11.1k
    }
4825
40.4k
yy300:
4826
40.4k
    YYDEBUG(300, *YYCURSOR);
4827
40.4k
    yyaccept = 4;
4828
40.4k
    yych = *(YYMARKER = ++YYCURSOR);
4829
40.4k
    if (yych == 'M') goto yy397;
4830
37.0k
    if (yych == 'm') goto yy397;
4831
7.51k
    goto yy48;
4832
7.51k
yy301:
4833
815
    YYDEBUG(301, *YYCURSOR);
4834
815
    yyaccept = 4;
4835
815
    yych = *(YYMARKER = ++YYCURSOR);
4836
815
    if (yych == 'L') goto yy398;
4837
800
    if (yych == 'l') goto yy398;
4838
15
    goto yy48;
4839
265
yy302:
4840
265
    YYDEBUG(302, *YYCURSOR);
4841
265
    yyaccept = 4;
4842
265
    yych = *(YYMARKER = ++YYCURSOR);
4843
265
    if (yych == 'T') goto yy400;
4844
225
    if (yych == 't') goto yy400;
4845
31
    goto yy48;
4846
5.12k
yy303:
4847
5.12k
    YYDEBUG(303, *YYCURSOR);
4848
5.12k
    yyaccept = 4;
4849
5.12k
    yych = *(YYMARKER = ++YYCURSOR);
4850
5.12k
    if (yych == 'E') goto yy402;
4851
5.07k
    if (yych == 'e') goto yy402;
4852
302
    goto yy48;
4853
2.25k
yy304:
4854
2.25k
    YYDEBUG(304, *YYCURSOR);
4855
2.25k
    yyaccept = 4;
4856
2.25k
    yych = *(YYMARKER = ++YYCURSOR);
4857
2.25k
    if (yych == 'A') goto yy403;
4858
2.19k
    if (yych == 'a') goto yy403;
4859
290
    goto yy48;
4860
18.2k
yy305:
4861
18.2k
    YYDEBUG(305, *YYCURSOR);
4862
18.2k
    yyaccept = 20;
4863
18.2k
    yych = *(YYMARKER = ++YYCURSOR);
4864
18.2k
    if (yych <= '\\') {
4865
9.51k
      if (yych <= 'D') {
4866
9.07k
        if (yych <= '/') goto yy306;
4867
77
        if (yych <= '9') goto yy47;
4868
66
        if (yych >= 'A') goto yy47;
4869
443
      } else {
4870
443
        if (yych <= 'E') goto yy404;
4871
129
        if (yych <= 'Z') goto yy47;
4872
3
        if (yych >= '\\') goto yy164;
4873
3
      }
4874
9.51k
    } else {
4875
8.70k
      if (yych <= 'd') {
4876
2
        if (yych == '_') goto yy47;
4877
2
        if (yych >= 'a') goto yy47;
4878
8.70k
      } else {
4879
8.70k
        if (yych <= 'e') goto yy404;
4880
265
        if (yych <= 'z') goto yy47;
4881
45
        if (yych >= 0x80) goto yy47;
4882
45
      }
4883
8.70k
    }
4884
9.07k
yy306:
4885
9.07k
    YYDEBUG(306, *YYCURSOR);
4886
9.07k
    yyleng = YYCURSOR - SCNG(yy_text);
4887
9.07k
#line 1481 "Zend/zend_language_scanner.l"
4888
9.07k
    {
4889
9.07k
  RETURN_TOKEN_WITH_IDENT(T_FOR);
4890
9.07k
}
4891
0
#line 4892 "Zend/zend_language_scanner.c"
4892
38.7k
yy307:
4893
38.7k
    YYDEBUG(307, *YYCURSOR);
4894
38.7k
    yyaccept = 4;
4895
38.7k
    yych = *(YYMARKER = ++YYCURSOR);
4896
38.7k
    if (yych == 'C') goto yy405;
4897
38.3k
    if (yych == 'c') goto yy405;
4898
438
    goto yy48;
4899
1.29k
yy308:
4900
1.29k
    YYDEBUG(308, *YYCURSOR);
4901
1.29k
    yyaccept = 4;
4902
1.29k
    yych = *(YYMARKER = ++YYCURSOR);
4903
1.29k
    if (yych == 'B') goto yy406;
4904
1.03k
    if (yych == 'b') goto yy406;
4905
411
    goto yy48;
4906
411
yy309:
4907
396
    YYDEBUG(309, *YYCURSOR);
4908
396
    yyaccept = 4;
4909
396
    yych = *(YYMARKER = ++YYCURSOR);
4910
396
    if (yych == 'O') goto yy407;
4911
335
    if (yych == 'o') goto yy407;
4912
24
    goto yy48;
4913
9.43k
yy310:
4914
9.43k
    YYDEBUG(310, *YYCURSOR);
4915
9.43k
    yyaccept = 4;
4916
9.43k
    yych = *(YYMARKER = ++YYCURSOR);
4917
9.43k
    if (yych == 'L') goto yy409;
4918
9.37k
    if (yych == 'l') goto yy409;
4919
622
    goto yy48;
4920
1.36k
yy311:
4921
1.36k
    YYDEBUG(311, *YYCURSOR);
4922
1.36k
    yyaccept = 4;
4923
1.36k
    yych = *(YYMARKER = ++YYCURSOR);
4924
1.36k
    if (yych == 'L') goto yy410;
4925
1.28k
    if (yych == 'l') goto yy410;
4926
503
    goto yy48;
4927
1.53k
yy312:
4928
1.53k
    YYDEBUG(312, *YYCURSOR);
4929
1.53k
    yyaccept = 4;
4930
1.53k
    yych = *(YYMARKER = ++YYCURSOR);
4931
1.53k
    if (yych == 'T') goto yy411;
4932
967
    if (yych == 't') goto yy411;
4933
55
    goto yy48;
4934
5.72k
yy313:
4935
5.72k
    YYDEBUG(313, *YYCURSOR);
4936
5.72k
    yyaccept = 4;
4937
5.72k
    yych = *(YYMARKER = ++YYCURSOR);
4938
5.72k
    if (yych == 'E') goto yy412;
4939
5.54k
    if (yych == 'e') goto yy412;
4940
3.98k
    goto yy48;
4941
3.98k
yy314:
4942
1.93k
    YYDEBUG(314, *YYCURSOR);
4943
1.93k
    yyaccept = 4;
4944
1.93k
    yych = *(YYMARKER = ++YYCURSOR);
4945
1.93k
    if (yych == 'E') goto yy413;
4946
1.92k
    if (yych == 'e') goto yy413;
4947
93
    goto yy48;
4948
680
yy315:
4949
680
    YYDEBUG(315, *YYCURSOR);
4950
680
    yyaccept = 4;
4951
680
    yych = *(YYMARKER = ++YYCURSOR);
4952
680
    if (yych == 'T') goto yy414;
4953
640
    if (yych == 't') goto yy414;
4954
2
    goto yy48;
4955
585
yy316:
4956
585
    YYDEBUG(316, *YYCURSOR);
4957
585
    yyaccept = 4;
4958
585
    yych = *(YYMARKER = ++YYCURSOR);
4959
585
    if (yych == 'C') goto yy416;
4960
582
    if (yych == 'c') goto yy416;
4961
22
    goto yy48;
4962
3.40k
yy317:
4963
3.40k
    YYDEBUG(317, *YYCURSOR);
4964
3.40k
    yyaccept = 4;
4965
3.40k
    yych = *(YYMARKER = ++YYCURSOR);
4966
3.40k
    if (yych == 'E') goto yy417;
4967
2.73k
    if (yych == 'e') goto yy417;
4968
21
    goto yy48;
4969
28.3k
yy318:
4970
28.3k
    YYDEBUG(318, *YYCURSOR);
4971
28.3k
    yyaccept = 21;
4972
28.3k
    yych = *(YYMARKER = ++YYCURSOR);
4973
28.3k
    if (yybm[256+yych] & 128) {
4974
50
      goto yy47;
4975
50
    }
4976
28.2k
    if (yych == '\\') goto yy164;
4977
28.2k
yy319:
4978
28.2k
    YYDEBUG(319, *YYCURSOR);
4979
28.2k
    yyleng = YYCURSOR - SCNG(yy_text);
4980
28.2k
#line 1625 "Zend/zend_language_scanner.l"
4981
28.2k
    {
4982
28.2k
  RETURN_TOKEN_WITH_IDENT(T_NEW);
4983
28.2k
}
4984
0
#line 4985 "Zend/zend_language_scanner.c"
4985
7.25k
yy320:
4986
7.25k
    YYDEBUG(320, *YYCURSOR);
4987
7.25k
    yyaccept = 4;
4988
7.25k
    yych = *(YYMARKER = ++YYCURSOR);
4989
7.25k
    if (yych <= 'V') {
4990
194
      if (yych == 'N') goto yy418;
4991
151
      if (yych <= 'U') goto yy48;
4992
148
      goto yy419;
4993
7.06k
    } else {
4994
7.06k
      if (yych <= 'n') {
4995
4.42k
        if (yych <= 'm') goto yy48;
4996
4.37k
        goto yy418;
4997
4.42k
      } else {
4998
2.64k
        if (yych == 'v') goto yy419;
4999
19
        goto yy48;
5000
2.64k
      }
5001
7.06k
    }
5002
3.51k
yy321:
5003
3.51k
    YYDEBUG(321, *YYCURSOR);
5004
3.51k
    yyaccept = 4;
5005
3.51k
    yych = *(YYMARKER = ++YYCURSOR);
5006
3.51k
    if (yych == 'T') goto yy420;
5007
3.45k
    if (yych == 't') goto yy420;
5008
413
    goto yy48;
5009
22.9k
yy322:
5010
22.9k
    YYDEBUG(322, *YYCURSOR);
5011
22.9k
    yyaccept = 4;
5012
22.9k
    yych = *(YYMARKER = ++YYCURSOR);
5013
22.9k
    if (yych == 'L') goto yy421;
5014
22.9k
    if (yych == 'l') goto yy421;
5015
464
    goto yy48;
5016
888
yy323:
5017
888
    YYDEBUG(323, *YYCURSOR);
5018
888
    yyaccept = 4;
5019
888
    yych = *(YYMARKER = ++YYCURSOR);
5020
888
    if (yych == 'D') goto yy422;
5021
886
    if (yych == 'd') goto yy422;
5022
319
    goto yy48;
5023
10.4k
yy324:
5024
10.4k
    YYDEBUG(324, *YYCURSOR);
5025
10.4k
    yyaccept = 4;
5026
10.4k
    yych = *(YYMARKER = ++YYCURSOR);
5027
10.4k
    if (yych == 'U') goto yy423;
5028
10.4k
    if (yych == 'u') goto yy423;
5029
3.94k
    goto yy48;
5030
10.4k
yy325:
5031
10.4k
    YYDEBUG(325, *YYCURSOR);
5032
10.4k
    yyaccept = 4;
5033
10.4k
    yych = *(YYMARKER = ++YYCURSOR);
5034
10.4k
    if (yych == 'U') goto yy424;
5035
10.3k
    if (yych == 'u') goto yy424;
5036
141
    goto yy48;
5037
6.53k
yy326:
5038
6.53k
    YYDEBUG(326, *YYCURSOR);
5039
6.53k
    yyaccept = 4;
5040
6.53k
    yych = *(YYMARKER = ++YYCURSOR);
5041
6.53k
    if (yych == 'T') goto yy425;
5042
6.50k
    if (yych == 't') goto yy425;
5043
714
    goto yy48;
5044
2.50k
yy327:
5045
2.50k
    YYDEBUG(327, *YYCURSOR);
5046
2.50k
    yyaccept = 4;
5047
2.50k
    yych = *(YYMARKER = ++YYCURSOR);
5048
2.50k
    if (yych == 'T') goto yy426;
5049
2.44k
    if (yych == 't') goto yy426;
5050
39
    goto yy48;
5051
2.63k
yy328:
5052
2.63k
    YYDEBUG(328, *YYCURSOR);
5053
2.63k
    yyaccept = 4;
5054
2.63k
    yych = *(YYMARKER = ++YYCURSOR);
5055
2.63k
    if (yych == 'O') goto yy427;
5056
2.59k
    if (yych == 'o') goto yy427;
5057
57
    goto yy48;
5058
2.69k
yy329:
5059
2.69k
    YYDEBUG(329, *YYCURSOR);
5060
2.69k
    yyaccept = 4;
5061
2.69k
    yych = *(YYMARKER = ++YYCURSOR);
5062
2.69k
    if (yych == 'I') goto yy428;
5063
2.23k
    if (yych == 'i') goto yy428;
5064
419
    goto yy48;
5065
20.2k
yy330:
5066
20.2k
    YYDEBUG(330, *YYCURSOR);
5067
20.2k
    yyaccept = 22;
5068
20.2k
    yych = *(YYMARKER = ++YYCURSOR);
5069
20.2k
    if (yybm[256+yych] & 128) {
5070
310
      goto yy47;
5071
310
    }
5072
19.9k
    if (yych == '\\') goto yy164;
5073
19.9k
yy331:
5074
19.9k
    YYDEBUG(331, *YYCURSOR);
5075
19.9k
    yyleng = YYCURSOR - SCNG(yy_text);
5076
19.9k
#line 1437 "Zend/zend_language_scanner.l"
5077
19.9k
    {
5078
19.9k
  RETURN_TOKEN_WITH_IDENT(T_TRY);
5079
19.9k
}
5080
0
#line 5081 "Zend/zend_language_scanner.c"
5081
4.82k
yy332:
5082
4.82k
    YYDEBUG(332, *YYCURSOR);
5083
4.82k
    yyaccept = 4;
5084
4.82k
    yych = *(YYMARKER = ++YYCURSOR);
5085
4.82k
    if (yych == 'E') goto yy429;
5086
4.79k
    if (yych == 'e') goto yy429;
5087
221
    goto yy48;
5088
2.47k
yy333:
5089
2.47k
    YYDEBUG(333, *YYCURSOR);
5090
2.47k
    yyaccept = 23;
5091
2.47k
    yych = *(YYMARKER = ++YYCURSOR);
5092
2.47k
    if (yybm[256+yych] & 128) {
5093
97
      goto yy47;
5094
97
    }
5095
2.37k
    if (yych == '\\') goto yy164;
5096
2.37k
yy334:
5097
2.37k
    YYDEBUG(334, *YYCURSOR);
5098
2.37k
    yyleng = YYCURSOR - SCNG(yy_text);
5099
2.37k
#line 1741 "Zend/zend_language_scanner.l"
5100
2.37k
    {
5101
2.37k
  RETURN_TOKEN_WITH_IDENT(T_USE);
5102
2.37k
}
5103
0
#line 5104 "Zend/zend_language_scanner.c"
5104
33.4k
yy335:
5105
33.4k
    YYDEBUG(335, *YYCURSOR);
5106
33.4k
    yyaccept = 24;
5107
33.4k
    yych = *(YYMARKER = ++YYCURSOR);
5108
33.4k
    if (yybm[256+yych] & 128) {
5109
32.9k
      goto yy47;
5110
32.9k
    }
5111
491
    if (yych == '\\') goto yy164;
5112
386
yy336:
5113
386
    YYDEBUG(336, *YYCURSOR);
5114
386
    yyleng = YYCURSOR - SCNG(yy_text);
5115
386
#line 1633 "Zend/zend_language_scanner.l"
5116
386
    {
5117
386
  RETURN_TOKEN_WITH_IDENT(T_VAR);
5118
386
}
5119
0
#line 5120 "Zend/zend_language_scanner.c"
5120
949
yy337:
5121
949
    YYDEBUG(337, *YYCURSOR);
5122
949
    yyaccept = 4;
5123
949
    yych = *(YYMARKER = ++YYCURSOR);
5124
949
    if (yych == 'L') goto yy430;
5125
939
    if (yych == 'l') goto yy430;
5126
0
    goto yy48;
5127
1.85k
yy338:
5128
1.85k
    YYDEBUG(338, *YYCURSOR);
5129
1.85k
    yyaccept = 25;
5130
1.85k
    yych = *(YYMARKER = ++YYCURSOR);
5131
1.85k
    if (yybm[256+yych] & 128) {
5132
3
      goto yy47;
5133
3
    }
5134
1.84k
    if (yych == '\\') goto yy164;
5135
1.84k
yy339:
5136
1.84k
    YYDEBUG(339, *YYCURSOR);
5137
1.84k
    yyleng = YYCURSOR - SCNG(yy_text);
5138
1.84k
#line 1937 "Zend/zend_language_scanner.l"
5139
1.84k
    {
5140
1.84k
  RETURN_TOKEN_WITH_IDENT(T_LOGICAL_XOR);
5141
1.84k
}
5142
0
#line 5143 "Zend/zend_language_scanner.c"
5143
9.95k
yy340:
5144
9.95k
    YYDEBUG(340, *YYCURSOR);
5145
9.95k
    yyaccept = 4;
5146
9.95k
    yych = *(YYMARKER = ++YYCURSOR);
5147
9.95k
    if (yych == 'L') goto yy431;
5148
8.74k
    if (yych == 'l') goto yy431;
5149
1.06k
    goto yy48;
5150
1.06k
yy341:
5151
803
    YYDEBUG(341, *YYCURSOR);
5152
803
    ++YYCURSOR;
5153
803
    YYFILL(1);
5154
803
    yych = *YYCURSOR;
5155
803
    if (yych <= '_') {
5156
469
      if (yych <= '@') goto yy86;
5157
458
      if (yych <= 'Z') goto yy211;
5158
229
      if (yych <= '^') goto yy86;
5159
3
      goto yy211;
5160
334
    } else {
5161
334
      if (yych <= '`') goto yy86;
5162
328
      if (yych <= 'z') goto yy211;
5163
33
      if (yych <= 0x7F) goto yy86;
5164
6
      goto yy211;
5165
33
    }
5166
3.51k
yy342:
5167
3.51k
    YYDEBUG(342, *YYCURSOR);
5168
3.51k
    yyaccept = 4;
5169
3.51k
    yych = *(YYMARKER = ++YYCURSOR);
5170
3.51k
    if (yych == 'L') goto yy432;
5171
3.12k
    if (yych == 'l') goto yy432;
5172
2.95k
    goto yy48;
5173
2.95k
yy343:
5174
2.79k
    YYDEBUG(343, *YYCURSOR);
5175
2.79k
    yyaccept = 4;
5176
2.79k
    yych = *(YYMARKER = ++YYCURSOR);
5177
2.79k
    if (yych == 'I') goto yy433;
5178
1.56k
    if (yych == 'i') goto yy433;
5179
1.54k
    goto yy48;
5180
2.98k
yy344:
5181
2.98k
    YYDEBUG(344, *YYCURSOR);
5182
2.98k
    yyaccept = 4;
5183
2.98k
    yych = *(YYMARKER = ++YYCURSOR);
5184
2.98k
    if (yych <= 'U') {
5185
2.83k
      if (yych == 'I') goto yy434;
5186
914
      if (yych <= 'T') goto yy48;
5187
812
      goto yy435;
5188
914
    } else {
5189
148
      if (yych <= 'i') {
5190
17
        if (yych <= 'h') goto yy48;
5191
15
        goto yy434;
5192
131
      } else {
5193
131
        if (yych == 'u') goto yy435;
5194
129
        goto yy48;
5195
131
      }
5196
148
    }
5197
322
yy345:
5198
322
    YYDEBUG(345, *YYCURSOR);
5199
322
    yyaccept = 4;
5200
322
    yych = *(YYMARKER = ++YYCURSOR);
5201
322
    if (yych == 'A') goto yy436;
5202
296
    if (yych == 'a') goto yy436;
5203
44
    goto yy48;
5204
236
yy346:
5205
236
    YYDEBUG(346, *YYCURSOR);
5206
236
    yyaccept = 4;
5207
236
    yych = *(YYMARKER = ++YYCURSOR);
5208
236
    if (yych == 'I') goto yy437;
5209
2
    if (yych == 'i') goto yy437;
5210
0
    goto yy48;
5211
3.42k
yy347:
5212
3.42k
    YYDEBUG(347, *YYCURSOR);
5213
3.42k
    yyaccept = 4;
5214
3.42k
    yych = *(YYMARKER = ++YYCURSOR);
5215
3.42k
    if (yych == 'E') goto yy438;
5216
158
    if (yych == 'e') goto yy438;
5217
60
    goto yy48;
5218
1.08k
yy348:
5219
1.08k
    YYDEBUG(348, *YYCURSOR);
5220
1.08k
    yyaccept = 4;
5221
1.08k
    yych = *(YYMARKER = ++YYCURSOR);
5222
1.08k
    if (yych == 'A') goto yy439;
5223
279
    if (yych == 'a') goto yy439;
5224
236
    goto yy48;
5225
264
yy349:
5226
264
    YYDEBUG(349, *YYCURSOR);
5227
264
    yyaccept = 4;
5228
264
    yych = *(YYMARKER = ++YYCURSOR);
5229
264
    if (yych == 'R') goto yy440;
5230
108
    if (yych == 'r') goto yy440;
5231
18
    goto yy48;
5232
465
yy350:
5233
465
    YYDEBUG(350, *YYCURSOR);
5234
465
    yyaccept = 4;
5235
465
    yych = *(YYMARKER = ++YYCURSOR);
5236
465
    if (yych == 'R') goto yy441;
5237
355
    if (yych == 'r') goto yy441;
5238
355
    goto yy48;
5239
4.34k
yy351:
5240
4.34k
    YYDEBUG(351, *YYCURSOR);
5241
4.34k
    ++YYCURSOR;
5242
4.34k
    YYFILL(1);
5243
4.34k
    yych = *YYCURSOR;
5244
4.34k
    if (yybm[0+yych] & 2) {
5245
218
      goto yy225;
5246
218
    }
5247
4.12k
    if (yych <= 0x00) goto yy86;
5248
4.01k
    goto yy227;
5249
4.01k
yy352:
5250
1.28k
    YYDEBUG(352, *YYCURSOR);
5251
1.28k
    yyaccept = 26;
5252
1.28k
    YYMARKER = ++YYCURSOR;
5253
1.28k
    YYFILL(1);
5254
1.28k
    yych = *YYCURSOR;
5255
1.28k
    if (yybm[0+yych] & 2) {
5256
1.28k
      goto yy225;
5257
1.28k
    }
5258
0
    if (yych <= 0x00) goto yy89;
5259
0
    goto yy84;
5260
1.45k
yy353:
5261
1.45k
    YYDEBUG(353, *YYCURSOR);
5262
1.45k
    ++YYCURSOR;
5263
1.45k
    YYFILL(1);
5264
1.45k
    yych = *YYCURSOR;
5265
1.45k
    if (yych <= '\f') {
5266
9
      if (yych <= 0x00) goto yy86;
5267
9
      if (yych == '\n') goto yy84;
5268
3
      goto yy225;
5269
1.44k
    } else {
5270
1.44k
      if (yych <= '\r') goto yy84;
5271
6
      if (yych == '.') goto yy442;
5272
0
      goto yy225;
5273
6
    }
5274
4.75k
yy354:
5275
4.75k
    YYDEBUG(354, *YYCURSOR);
5276
4.75k
    ++YYCURSOR;
5277
4.75k
    YYFILL(1);
5278
4.75k
    yych = *YYCURSOR;
5279
4.75k
    if (yych <= '\f') {
5280
75
      if (yych <= 0x00) goto yy86;
5281
57
      if (yych == '\n') goto yy84;
5282
57
      goto yy225;
5283
4.68k
    } else {
5284
4.68k
      if (yych <= '\r') goto yy84;
5285
4.63k
      if (yych == '*') goto yy443;
5286
636
      goto yy225;
5287
4.63k
    }
5288
3.87k
yy355:
5289
3.87k
    YYDEBUG(355, *YYCURSOR);
5290
3.87k
    ++YYCURSOR;
5291
3.87k
    YYFILL(1);
5292
3.87k
    yych = *YYCURSOR;
5293
3.87k
    YYDEBUG(356, *YYCURSOR);
5294
3.87k
    if (yybm[0+yych] & 64) {
5295
20
      goto yy355;
5296
20
    }
5297
3.85k
    if (yych <= 0x00) goto yy86;
5298
3.85k
    if (yych == '/') goto yy84;
5299
1.08k
    goto yy230;
5300
4.33k
yy357:
5301
4.33k
    YYDEBUG(357, *YYCURSOR);
5302
4.33k
    yych = *++YYCURSOR;
5303
4.33k
    if (yych == 'A') goto yy445;
5304
4.32k
    if (yych == 'a') goto yy445;
5305
980
    goto yy86;
5306
980
yy358:
5307
49
    YYDEBUG(358, *YYCURSOR);
5308
49
    yych = *++YYCURSOR;
5309
49
    if (yych == 'A') goto yy446;
5310
22
    if (yych == 'a') goto yy446;
5311
3
    goto yy86;
5312
118
yy359:
5313
118
    YYDEBUG(359, *YYCURSOR);
5314
118
    yych = *++YYCURSOR;
5315
118
    if (yych == 'L') goto yy447;
5316
118
    if (yych == 'l') goto yy447;
5317
2
    goto yy86;
5318
25
yy360:
5319
25
    YYDEBUG(360, *YYCURSOR);
5320
25
    yych = *++YYCURSOR;
5321
25
    if (yych == 'B') goto yy448;
5322
25
    if (yych == 'b') goto yy448;
5323
0
    goto yy86;
5324
132
yy361:
5325
132
    YYDEBUG(361, *YYCURSOR);
5326
132
    yych = *++YYCURSOR;
5327
132
    if (yych == 'A') goto yy449;
5328
132
    if (yych == 'a') goto yy449;
5329
5
    goto yy86;
5330
1.49k
yy362:
5331
1.49k
    YYDEBUG(362, *YYCURSOR);
5332
1.49k
    yych = *++YYCURSOR;
5333
1.49k
    if (yych == 'E') goto yy454;
5334
1.49k
    if (yych == 'e') goto yy454;
5335
1.34k
    goto yy451;
5336
1.34k
yy363:
5337
440
    YYDEBUG(363, *YYCURSOR);
5338
440
    yych = *++YYCURSOR;
5339
440
    if (yych == 'E') goto yy455;
5340
435
    if (yych == 'e') goto yy455;
5341
15
    goto yy86;
5342
55
yy364:
5343
55
    YYDEBUG(364, *YYCURSOR);
5344
55
    yych = *++YYCURSOR;
5345
55
    if (yych == 'L') goto yy456;
5346
55
    if (yych == 'l') goto yy456;
5347
2
    goto yy86;
5348
5.17k
yy365:
5349
5.17k
    YYDEBUG(365, *YYCURSOR);
5350
5.17k
    yych = *++YYCURSOR;
5351
5.17k
    if (yych == 'I') goto yy458;
5352
5.16k
    if (yych == 'i') goto yy458;
5353
649
    goto yy86;
5354
649
yy366:
5355
320
    YYDEBUG(366, *YYCURSOR);
5356
320
    yych = *++YYCURSOR;
5357
320
    if (yych == 'E') goto yy459;
5358
296
    if (yych == 'e') goto yy459;
5359
48
    goto yy86;
5360
71
yy367:
5361
71
    YYDEBUG(367, *YYCURSOR);
5362
71
    yych = *++YYCURSOR;
5363
71
    if (yych == 'D') goto yy460;
5364
71
    if (yych == 'd') goto yy460;
5365
3
    goto yy86;
5366
1.45k
yy368:
5367
1.45k
    YYDEBUG(368, *YYCURSOR);
5368
1.45k
    ++YYCURSOR;
5369
1.45k
    YYFILL(1);
5370
1.45k
    yych = *YYCURSOR;
5371
1.45k
    YYDEBUG(369, *YYCURSOR);
5372
1.45k
    if (yych <= '\f') {
5373
125
      if (yych <= 0x08) goto yy129;
5374
114
      if (yych <= '\n') goto yy368;
5375
0
      goto yy129;
5376
1.32k
    } else {
5377
1.32k
      if (yych <= '\r') goto yy368;
5378
1.32k
      if (yych == ' ') goto yy368;
5379
573
      goto yy129;
5380
1.32k
    }
5381
209
yy370:
5382
209
    YYDEBUG(370, *YYCURSOR);
5383
209
    yych = *++YYCURSOR;
5384
209
    if (yych == '"') goto yy86;
5385
206
    if (yych <= '/') goto yy463;
5386
137
    if (yych <= '9') goto yy86;
5387
137
    goto yy463;
5388
2.19k
yy371:
5389
2.19k
    YYDEBUG(371, *YYCURSOR);
5390
2.19k
    yych = *++YYCURSOR;
5391
2.19k
    if (yych == '\'') goto yy86;
5392
2.19k
    if (yych <= '/') goto yy465;
5393
2.19k
    if (yych <= '9') goto yy86;
5394
2.19k
    goto yy465;
5395
700k
yy372:
5396
700k
    YYDEBUG(372, *YYCURSOR);
5397
700k
    ++YYCURSOR;
5398
700k
    YYFILL(2);
5399
700k
    yych = *YYCURSOR;
5400
700k
    YYDEBUG(373, *YYCURSOR);
5401
700k
    if (yych <= '@') {
5402
326k
      if (yych <= '\f') {
5403
295k
        if (yych == '\n') goto yy466;
5404
11.0k
        goto yy86;
5405
295k
      } else {
5406
30.4k
        if (yych <= '\r') goto yy468;
5407
26.4k
        if (yych <= '/') goto yy86;
5408
13.4k
        if (yych <= '9') goto yy372;
5409
3.70k
        goto yy86;
5410
13.4k
      }
5411
374k
    } else {
5412
374k
      if (yych <= '_') {
5413
43.7k
        if (yych <= 'Z') goto yy372;
5414
3.25k
        if (yych <= '^') goto yy86;
5415
1.15k
        goto yy372;
5416
330k
      } else {
5417
330k
        if (yych <= '`') goto yy86;
5418
330k
        if (yych <= 'z') goto yy372;
5419
267k
        if (yych <= 0x7F) goto yy86;
5420
266k
        goto yy372;
5421
267k
      }
5422
374k
    }
5423
1.07k
yy374:
5424
1.07k
    YYDEBUG(374, *YYCURSOR);
5425
1.07k
    yyaccept = 4;
5426
1.07k
    yych = *(YYMARKER = ++YYCURSOR);
5427
1.07k
    if (yych == 'R') goto yy469;
5428
1.04k
    if (yych == 'r') goto yy469;
5429
0
    goto yy48;
5430
8.48k
yy375:
5431
8.48k
    YYDEBUG(375, *YYCURSOR);
5432
8.48k
    yyaccept = 4;
5433
8.48k
    yych = *(YYMARKER = ++YYCURSOR);
5434
8.48k
    if (yych == 'Y') goto yy470;
5435
8.43k
    if (yych == 'y') goto yy470;
5436
27
    goto yy48;
5437
526
yy376:
5438
526
    YYDEBUG(376, *YYCURSOR);
5439
526
    yyaccept = 4;
5440
526
    yych = *(YYMARKER = ++YYCURSOR);
5441
526
    if (yych == 'K') goto yy472;
5442
516
    if (yych == 'k') goto yy472;
5443
13
    goto yy48;
5444
4.32k
yy377:
5445
4.32k
    YYDEBUG(377, *YYCURSOR);
5446
4.32k
    yyaccept = 4;
5447
4.32k
    yych = *(YYMARKER = ++YYCURSOR);
5448
4.32k
    if (yych == 'A') goto yy474;
5449
4.31k
    if (yych == 'a') goto yy474;
5450
2.99k
    goto yy48;
5451
2.99k
yy378:
5452
1.70k
    YYDEBUG(378, *YYCURSOR);
5453
1.70k
    yyaccept = 27;
5454
1.70k
    yych = *(YYMARKER = ++YYCURSOR);
5455
1.70k
    if (yybm[256+yych] & 128) {
5456
66
      goto yy47;
5457
66
    }
5458
1.63k
    if (yych == '\\') goto yy164;
5459
1.63k
yy379:
5460
1.63k
    YYDEBUG(379, *YYCURSOR);
5461
1.63k
    yyleng = YYCURSOR - SCNG(yy_text);
5462
1.63k
#line 1525 "Zend/zend_language_scanner.l"
5463
1.63k
    {
5464
1.63k
  RETURN_TOKEN_WITH_IDENT(T_CASE);
5465
1.63k
}
5466
0
#line 5467 "Zend/zend_language_scanner.c"
5467
15.4k
yy380:
5468
15.4k
    YYDEBUG(380, *YYCURSOR);
5469
15.4k
    yyaccept = 4;
5470
15.4k
    yych = *(YYMARKER = ++YYCURSOR);
5471
15.4k
    if (yych == 'H') goto yy475;
5472
15.4k
    if (yych == 'h') goto yy475;
5473
51
    goto yy48;
5474
24.5k
yy381:
5475
24.5k
    YYDEBUG(381, *YYCURSOR);
5476
24.5k
    yyaccept = 4;
5477
24.5k
    yych = *(YYMARKER = ++YYCURSOR);
5478
24.5k
    if (yych == 'S') goto yy477;
5479
23.6k
    if (yych == 's') goto yy477;
5480
151
    goto yy48;
5481
716
yy382:
5482
716
    YYDEBUG(382, *YYCURSOR);
5483
716
    yyaccept = 4;
5484
716
    yych = *(YYMARKER = ++YYCURSOR);
5485
716
    if (yych == 'E') goto yy479;
5486
676
    if (yych == 'e') goto yy479;
5487
33
    goto yy48;
5488
9.86k
yy383:
5489
9.86k
    YYDEBUG(383, *YYCURSOR);
5490
9.86k
    yyaccept = 4;
5491
9.86k
    yych = *(YYMARKER = ++YYCURSOR);
5492
9.86k
    if (yych == 'T') goto yy481;
5493
9.15k
    if (yych == 't') goto yy481;
5494
588
    goto yy48;
5495
851
yy384:
5496
851
    YYDEBUG(384, *YYCURSOR);
5497
851
    yyaccept = 4;
5498
851
    yych = *(YYMARKER = ++YYCURSOR);
5499
851
    if (yych == 'I') goto yy483;
5500
707
    if (yych == 'i') goto yy483;
5501
500
    goto yy48;
5502
500
yy385:
5503
387
    YYDEBUG(385, *YYCURSOR);
5504
387
    yyaccept = 4;
5505
387
    yych = *(YYMARKER = ++YYCURSOR);
5506
387
    if (yych == 'A') goto yy484;
5507
367
    if (yych == 'a') goto yy484;
5508
3
    goto yy48;
5509
614
yy386:
5510
614
    YYDEBUG(386, *YYCURSOR);
5511
614
    yyaccept = 4;
5512
614
    yych = *(YYMARKER = ++YYCURSOR);
5513
614
    if (yych == 'U') goto yy485;
5514
601
    if (yych == 'u') goto yy485;
5515
118
    goto yy48;
5516
27.2k
yy387:
5517
27.2k
    YYDEBUG(387, *YYCURSOR);
5518
27.2k
    yyaccept = 28;
5519
27.2k
    yych = *(YYMARKER = ++YYCURSOR);
5520
27.2k
    if (yybm[256+yych] & 128) {
5521
68
      goto yy47;
5522
68
    }
5523
27.1k
    if (yych == '\\') goto yy164;
5524
27.1k
yy388:
5525
27.1k
    YYDEBUG(388, *YYCURSOR);
5526
27.1k
    yyleng = YYCURSOR - SCNG(yy_text);
5527
27.1k
#line 1545 "Zend/zend_language_scanner.l"
5528
27.1k
    {
5529
27.1k
  RETURN_TOKEN_WITH_IDENT(T_ECHO);
5530
27.1k
}
5531
0
#line 5532 "Zend/zend_language_scanner.c"
5532
1.11k
yy389:
5533
1.11k
    YYDEBUG(389, *YYCURSOR);
5534
1.11k
    yyaccept = 29;
5535
1.11k
    yych = *(YYMARKER = ++YYCURSOR);
5536
1.11k
    if (yych <= '\\') {
5537
786
      if (yych <= 'H') {
5538
764
        if (yych <= '/') goto yy390;
5539
14
        if (yych <= '9') goto yy47;
5540
11
        if (yych >= 'A') goto yy47;
5541
22
      } else {
5542
22
        if (yych <= 'I') goto yy486;
5543
9
        if (yych <= 'Z') goto yy47;
5544
0
        if (yych >= '\\') goto yy164;
5545
0
      }
5546
786
    } else {
5547
330
      if (yych <= 'h') {
5548
6
        if (yych == '_') goto yy47;
5549
6
        if (yych >= 'a') goto yy47;
5550
324
      } else {
5551
324
        if (yych <= 'i') goto yy486;
5552
2
        if (yych <= 'z') goto yy47;
5553
2
        if (yych >= 0x80) goto yy47;
5554
2
      }
5555
330
    }
5556
769
yy390:
5557
769
    YYDEBUG(390, *YYCURSOR);
5558
769
    yyleng = YYCURSOR - SCNG(yy_text);
5559
769
#line 1465 "Zend/zend_language_scanner.l"
5560
769
    {
5561
769
  RETURN_TOKEN_WITH_IDENT(T_ELSE);
5562
769
}
5563
0
#line 5564 "Zend/zend_language_scanner.c"
5564
568
yy391:
5565
568
    YYDEBUG(391, *YYCURSOR);
5566
568
    yyaccept = 4;
5567
568
    yych = *(YYMARKER = ++YYCURSOR);
5568
568
    if (yych == 'Y') goto yy487;
5569
554
    if (yych == 'y') goto yy487;
5570
0
    goto yy48;
5571
159
yy392:
5572
159
    YYDEBUG(392, *YYCURSOR);
5573
159
    yyaccept = 4;
5574
159
    yych = *(YYMARKER = ++YYCURSOR);
5575
159
    if (yych == 'E') goto yy489;
5576
71
    if (yych == 'e') goto yy489;
5577
21
    goto yy48;
5578
2.59k
yy393:
5579
2.59k
    YYDEBUG(393, *YYCURSOR);
5580
2.59k
    yyaccept = 4;
5581
2.59k
    yych = *(YYMARKER = ++YYCURSOR);
5582
2.59k
    if (yych == 'O') goto yy490;
5583
1.44k
    if (yych == 'o') goto yy490;
5584
168
    goto yy48;
5585
2.33k
yy394:
5586
2.33k
    YYDEBUG(394, *YYCURSOR);
5587
2.33k
    yyaccept = 4;
5588
2.33k
    yych = *(YYMARKER = ++YYCURSOR);
5589
2.33k
    if (yych == 'F') goto yy491;
5590
1.14k
    if (yych == 'f') goto yy491;
5591
36
    goto yy48;
5592
295
yy395:
5593
295
    YYDEBUG(395, *YYCURSOR);
5594
295
    yyaccept = 4;
5595
295
    yych = *(YYMARKER = ++YYCURSOR);
5596
295
    if (yych == 'W') goto yy493;
5597
270
    if (yych == 'w') goto yy493;
5598
18
    goto yy48;
5599
2.37k
yy396:
5600
2.37k
    YYDEBUG(396, *YYCURSOR);
5601
2.37k
    yyaccept = 4;
5602
2.37k
    yych = *(YYMARKER = ++YYCURSOR);
5603
2.37k
    if (yych == 'H') goto yy494;
5604
2.23k
    if (yych == 'h') goto yy494;
5605
182
    goto yy48;
5606
32.9k
yy397:
5607
32.9k
    YYDEBUG(397, *YYCURSOR);
5608
32.9k
    yyaccept = 4;
5609
32.9k
    yych = *(YYMARKER = ++YYCURSOR);
5610
32.9k
    if (yych <= 0x1F) {
5611
27.7k
      if (yych <= '\n') {
5612
216
        if (yych <= 0x08) goto yy48;
5613
51
        goto yy495;
5614
27.5k
      } else {
5615
27.5k
        if (yych == '\r') goto yy495;
5616
12
        goto yy48;
5617
27.5k
      }
5618
27.7k
    } else {
5619
5.24k
      if (yych <= '#') {
5620
1.07k
        if (yych <= ' ') goto yy495;
5621
213
        if (yych <= '"') goto yy48;
5622
192
        goto yy497;
5623
4.17k
      } else {
5624
4.17k
        if (yych == '/') goto yy498;
5625
3.99k
        goto yy48;
5626
4.17k
      }
5627
5.24k
    }
5628
800
yy398:
5629
800
    YYDEBUG(398, *YYCURSOR);
5630
800
    yyaccept = 30;
5631
800
    yych = *(YYMARKER = ++YYCURSOR);
5632
800
    if (yybm[256+yych] & 128) {
5633
34
      goto yy47;
5634
34
    }
5635
766
    if (yych == '\\') goto yy164;
5636
763
yy399:
5637
763
    YYDEBUG(399, *YYCURSOR);
5638
763
    yyleng = YYCURSOR - SCNG(yy_text);
5639
763
#line 1717 "Zend/zend_language_scanner.l"
5640
763
    {
5641
763
  RETURN_TOKEN_WITH_IDENT(T_EVAL);
5642
763
}
5643
0
#line 5644 "Zend/zend_language_scanner.c"
5644
234
yy400:
5645
234
    YYDEBUG(400, *YYCURSOR);
5646
234
    yyaccept = 31;
5647
234
    yych = *(YYMARKER = ++YYCURSOR);
5648
234
    if (yybm[256+yych] & 128) {
5649
2
      goto yy47;
5650
2
    }
5651
232
    if (yych == '\\') goto yy164;
5652
232
yy401:
5653
232
    YYDEBUG(401, *YYCURSOR);
5654
232
    yyleng = YYCURSOR - SCNG(yy_text);
5655
232
#line 1398 "Zend/zend_language_scanner.l"
5656
232
    {
5657
232
  RETURN_TOKEN_WITH_IDENT(T_EXIT);
5658
232
}
5659
0
#line 5660 "Zend/zend_language_scanner.c"
5660
4.82k
yy402:
5661
4.82k
    YYDEBUG(402, *YYCURSOR);
5662
4.82k
    yyaccept = 4;
5663
4.82k
    yych = *(YYMARKER = ++YYCURSOR);
5664
4.82k
    if (yych == 'N') goto yy499;
5665
4.77k
    if (yych == 'n') goto yy499;
5666
151
    goto yy48;
5667
1.96k
yy403:
5668
1.96k
    YYDEBUG(403, *YYCURSOR);
5669
1.96k
    yyaccept = 4;
5670
1.96k
    yych = *(YYMARKER = ++YYCURSOR);
5671
1.96k
    if (yych == 'L') goto yy500;
5672
1.91k
    if (yych == 'l') goto yy500;
5673
25
    goto yy48;
5674
8.75k
yy404:
5675
8.75k
    YYDEBUG(404, *YYCURSOR);
5676
8.75k
    yyaccept = 4;
5677
8.75k
    yych = *(YYMARKER = ++YYCURSOR);
5678
8.75k
    if (yych == 'A') goto yy502;
5679
8.73k
    if (yych == 'a') goto yy502;
5680
583
    goto yy48;
5681
38.2k
yy405:
5682
38.2k
    YYDEBUG(405, *YYCURSOR);
5683
38.2k
    yyaccept = 4;
5684
38.2k
    yych = *(YYMARKER = ++YYCURSOR);
5685
38.2k
    if (yych == 'T') goto yy503;
5686
37.8k
    if (yych == 't') goto yy503;
5687
570
    goto yy48;
5688
886
yy406:
5689
886
    YYDEBUG(406, *YYCURSOR);
5690
886
    yyaccept = 4;
5691
886
    yych = *(YYMARKER = ++YYCURSOR);
5692
886
    if (yych == 'A') goto yy504;
5693
626
    if (yych == 'a') goto yy504;
5694
126
    goto yy48;
5695
372
yy407:
5696
372
    YYDEBUG(407, *YYCURSOR);
5697
372
    yyaccept = 32;
5698
372
    yych = *(YYMARKER = ++YYCURSOR);
5699
372
    if (yybm[256+yych] & 128) {
5700
4
      goto yy47;
5701
4
    }
5702
368
    if (yych == '\\') goto yy164;
5703
368
yy408:
5704
368
    YYDEBUG(408, *YYCURSOR);
5705
368
    yyleng = YYCURSOR - SCNG(yy_text);
5706
368
#line 1541 "Zend/zend_language_scanner.l"
5707
368
    {
5708
368
  RETURN_TOKEN_WITH_IDENT(T_GOTO);
5709
368
}
5710
0
#line 5711 "Zend/zend_language_scanner.c"
5711
8.80k
yy409:
5712
8.80k
    YYDEBUG(409, *YYCURSOR);
5713
8.80k
    yyaccept = 4;
5714
8.80k
    yych = *(YYMARKER = ++YYCURSOR);
5715
8.80k
    if (yych == 'E') goto yy505;
5716
7.80k
    if (yych == 'e') goto yy505;
5717
703
    goto yy48;
5718
865
yy410:
5719
865
    YYDEBUG(410, *YYCURSOR);
5720
865
    yyaccept = 4;
5721
865
    yych = *(YYMARKER = ++YYCURSOR);
5722
865
    if (yych == 'U') goto yy506;
5723
785
    if (yych == 'u') goto yy506;
5724
30
    goto yy48;
5725
1.47k
yy411:
5726
1.47k
    YYDEBUG(411, *YYCURSOR);
5727
1.47k
    yyaccept = 4;
5728
1.47k
    yych = *(YYMARKER = ++YYCURSOR);
5729
1.47k
    if (yych <= 'E') {
5730
555
      if (yych == 'A') goto yy507;
5731
204
      if (yych <= 'D') goto yy48;
5732
187
      goto yy508;
5733
920
    } else {
5734
920
      if (yych <= 'a') {
5735
504
        if (yych <= '`') goto yy48;
5736
470
        goto yy507;
5737
504
      } else {
5738
416
        if (yych == 'e') goto yy508;
5739
3
        goto yy48;
5740
416
      }
5741
920
    }
5742
1.74k
yy412:
5743
1.74k
    YYDEBUG(412, *YYCURSOR);
5744
1.74k
    yyaccept = 4;
5745
1.74k
    yych = *(YYMARKER = ++YYCURSOR);
5746
1.74k
    if (yych == 'R') goto yy509;
5747
1.57k
    if (yych == 'r') goto yy509;
5748
126
    goto yy48;
5749
1.84k
yy413:
5750
1.84k
    YYDEBUG(413, *YYCURSOR);
5751
1.84k
    yyaccept = 4;
5752
1.84k
    yych = *(YYMARKER = ++YYCURSOR);
5753
1.84k
    if (yych == 'T') goto yy510;
5754
1.83k
    if (yych == 't') goto yy510;
5755
0
    goto yy48;
5756
678
yy414:
5757
678
    YYDEBUG(414, *YYCURSOR);
5758
678
    yyaccept = 33;
5759
678
    yych = *(YYMARKER = ++YYCURSOR);
5760
678
    if (yybm[256+yych] & 128) {
5761
31
      goto yy47;
5762
31
    }
5763
647
    if (yych == '\\') goto yy164;
5764
647
yy415:
5765
647
    YYDEBUG(415, *YYCURSOR);
5766
647
    yyleng = YYCURSOR - SCNG(yy_text);
5767
647
#line 1813 "Zend/zend_language_scanner.l"
5768
647
    {
5769
647
  RETURN_TOKEN_WITH_IDENT(T_LIST);
5770
647
}
5771
0
#line 5772 "Zend/zend_language_scanner.c"
5772
563
yy416:
5773
563
    YYDEBUG(416, *YYCURSOR);
5774
563
    yyaccept = 4;
5775
563
    yych = *(YYMARKER = ++YYCURSOR);
5776
563
    if (yych == 'H') goto yy512;
5777
563
    if (yych == 'h') goto yy512;
5778
36
    goto yy48;
5779
3.38k
yy417:
5780
3.38k
    YYDEBUG(417, *YYCURSOR);
5781
3.38k
    yyaccept = 4;
5782
3.38k
    yych = *(YYMARKER = ++YYCURSOR);
5783
3.38k
    if (yych == 'S') goto yy514;
5784
2.76k
    if (yych == 's') goto yy514;
5785
127
    goto yy48;
5786
4.42k
yy418:
5787
4.42k
    YYDEBUG(418, *YYCURSOR);
5788
4.42k
    yyaccept = 4;
5789
4.42k
    yych = *(YYMARKER = ++YYCURSOR);
5790
4.42k
    if (yych == 'T') goto yy515;
5791
4.38k
    if (yych == 't') goto yy515;
5792
5
    goto yy48;
5793
2.76k
yy419:
5794
2.76k
    YYDEBUG(419, *YYCURSOR);
5795
2.76k
    yyaccept = 4;
5796
2.76k
    yych = *(YYMARKER = ++YYCURSOR);
5797
2.76k
    if (yych == 'A') goto yy517;
5798
2.62k
    if (yych == 'a') goto yy517;
5799
45
    goto yy48;
5800
3.10k
yy420:
5801
3.10k
    YYDEBUG(420, *YYCURSOR);
5802
3.10k
    yyaccept = 4;
5803
3.10k
    yych = *(YYMARKER = ++YYCURSOR);
5804
3.10k
    if (yych == 'E') goto yy518;
5805
3.04k
    if (yych == 'e') goto yy518;
5806
455
    goto yy48;
5807
22.5k
yy421:
5808
22.5k
    YYDEBUG(421, *YYCURSOR);
5809
22.5k
    yyaccept = 4;
5810
22.5k
    yych = *(YYMARKER = ++YYCURSOR);
5811
22.5k
    if (yych == 'I') goto yy519;
5812
22.4k
    if (yych == 'i') goto yy519;
5813
57
    goto yy48;
5814
569
yy422:
5815
569
    YYDEBUG(422, *YYCURSOR);
5816
569
    yyaccept = 4;
5817
569
    yych = *(YYMARKER = ++YYCURSOR);
5818
569
    if (yych == 'O') goto yy520;
5819
569
    if (yych == 'o') goto yy520;
5820
24
    goto yy48;
5821
6.51k
yy423:
5822
6.51k
    YYDEBUG(423, *YYCURSOR);
5823
6.51k
    yyaccept = 4;
5824
6.51k
    yych = *(YYMARKER = ++YYCURSOR);
5825
6.51k
    if (yych == 'I') goto yy521;
5826
6.46k
    if (yych == 'i') goto yy521;
5827
202
    goto yy48;
5828
10.2k
yy424:
5829
10.2k
    YYDEBUG(424, *YYCURSOR);
5830
10.2k
    yyaccept = 4;
5831
10.2k
    yych = *(YYMARKER = ++YYCURSOR);
5832
10.2k
    if (yych == 'R') goto yy522;
5833
10.2k
    if (yych == 'r') goto yy522;
5834
47
    goto yy48;
5835
5.81k
yy425:
5836
5.81k
    YYDEBUG(425, *YYCURSOR);
5837
5.81k
    yyaccept = 4;
5838
5.81k
    yych = *(YYMARKER = ++YYCURSOR);
5839
5.81k
    if (yych == 'I') goto yy523;
5840
5.77k
    if (yych == 'i') goto yy523;
5841
153
    goto yy48;
5842
2.46k
yy426:
5843
2.46k
    YYDEBUG(426, *YYCURSOR);
5844
2.46k
    yyaccept = 4;
5845
2.46k
    yych = *(YYMARKER = ++YYCURSOR);
5846
2.46k
    if (yych == 'C') goto yy524;
5847
2.40k
    if (yych == 'c') goto yy524;
5848
80
    goto yy48;
5849
2.57k
yy427:
5850
2.57k
    YYDEBUG(427, *YYCURSOR);
5851
2.57k
    yyaccept = 4;
5852
2.57k
    yych = *(YYMARKER = ++YYCURSOR);
5853
2.57k
    if (yych == 'W') goto yy525;
5854
2.53k
    if (yych == 'w') goto yy525;
5855
240
    goto yy48;
5856
2.27k
yy428:
5857
2.27k
    YYDEBUG(428, *YYCURSOR);
5858
2.27k
    yyaccept = 4;
5859
2.27k
    yych = *(YYMARKER = ++YYCURSOR);
5860
2.27k
    if (yych == 'T') goto yy527;
5861
2.26k
    if (yych == 't') goto yy527;
5862
450
    goto yy48;
5863
4.60k
yy429:
5864
4.60k
    YYDEBUG(429, *YYCURSOR);
5865
4.60k
    yyaccept = 4;
5866
4.60k
    yych = *(YYMARKER = ++YYCURSOR);
5867
4.60k
    if (yych == 'T') goto yy529;
5868
4.59k
    if (yych == 't') goto yy529;
5869
1.45k
    goto yy48;
5870
1.45k
yy430:
5871
949
    YYDEBUG(430, *YYCURSOR);
5872
949
    yyaccept = 4;
5873
949
    yych = *(YYMARKER = ++YYCURSOR);
5874
949
    if (yych == 'E') goto yy531;
5875
939
    if (yych == 'e') goto yy531;
5876
3
    goto yy48;
5877
8.89k
yy431:
5878
8.89k
    YYDEBUG(431, *YYCURSOR);
5879
8.89k
    yyaccept = 4;
5880
8.89k
    yych = *(YYMARKER = ++YYCURSOR);
5881
8.89k
    if (yych == 'D') goto yy533;
5882
8.87k
    if (yych == 'd') goto yy533;
5883
432
    goto yy48;
5884
563
yy432:
5885
563
    YYDEBUG(432, *YYCURSOR);
5886
563
    yyaccept = 4;
5887
563
    yych = *(YYMARKER = ++YYCURSOR);
5888
563
    if (yych == 'A') goto yy535;
5889
180
    if (yych == 'a') goto yy535;
5890
129
    goto yy48;
5891
1.25k
yy433:
5892
1.25k
    YYDEBUG(433, *YYCURSOR);
5893
1.25k
    yyaccept = 4;
5894
1.25k
    yych = *(YYMARKER = ++YYCURSOR);
5895
1.25k
    if (yych == 'R') goto yy536;
5896
152
    if (yych == 'r') goto yy536;
5897
147
    goto yy48;
5898
1.93k
yy434:
5899
1.93k
    YYDEBUG(434, *YYCURSOR);
5900
1.93k
    yyaccept = 4;
5901
1.93k
    yych = *(YYMARKER = ++YYCURSOR);
5902
1.93k
    if (yych == 'L') goto yy537;
5903
145
    if (yych == 'l') goto yy537;
5904
130
    goto yy48;
5905
814
yy435:
5906
814
    YYDEBUG(435, *YYCURSOR);
5907
814
    yyaccept = 4;
5908
814
    yych = *(YYMARKER = ++YYCURSOR);
5909
814
    if (yych == 'N') goto yy538;
5910
13
    if (yych == 'n') goto yy538;
5911
11
    goto yy48;
5912
278
yy436:
5913
278
    YYDEBUG(436, *YYCURSOR);
5914
278
    yyaccept = 4;
5915
278
    yych = *(YYMARKER = ++YYCURSOR);
5916
278
    if (yych == 'L') goto yy539;
5917
252
    if (yych == 'l') goto yy539;
5918
93
    goto yy48;
5919
236
yy437:
5920
236
    YYDEBUG(437, *YYCURSOR);
5921
236
    yyaccept = 4;
5922
236
    yych = *(YYMARKER = ++YYCURSOR);
5923
236
    if (yych == 'N') goto yy540;
5924
161
    if (yych == 'n') goto yy540;
5925
159
    goto yy48;
5926
3.36k
yy438:
5927
3.36k
    YYDEBUG(438, *YYCURSOR);
5928
3.36k
    yyaccept = 4;
5929
3.36k
    yych = *(YYMARKER = ++YYCURSOR);
5930
3.36k
    if (yych == 'T') goto yy541;
5931
112
    if (yych == 't') goto yy541;
5932
14
    goto yy48;
5933
846
yy439:
5934
846
    YYDEBUG(439, *YYCURSOR);
5935
846
    yyaccept = 4;
5936
846
    yych = *(YYMARKER = ++YYCURSOR);
5937
846
    if (yych == 'M') goto yy542;
5938
43
    if (yych == 'm') goto yy542;
5939
0
    goto yy48;
5940
246
yy440:
5941
246
    YYDEBUG(440, *YYCURSOR);
5942
246
    yyaccept = 4;
5943
246
    yych = *(YYMARKER = ++YYCURSOR);
5944
246
    if (yych == 'O') goto yy543;
5945
90
    if (yych == 'o') goto yy543;
5946
45
    goto yy48;
5947
110
yy441:
5948
110
    YYDEBUG(441, *YYCURSOR);
5949
110
    yyaccept = 4;
5950
110
    yych = *(YYMARKER = ++YYCURSOR);
5951
110
    if (yych == 'A') goto yy544;
5952
36
    if (yych == 'a') goto yy544;
5953
12
    goto yy48;
5954
12
yy442:
5955
6
    YYDEBUG(442, *YYCURSOR);
5956
6
    ++YYCURSOR;
5957
6
    YYFILL(1);
5958
6
    yych = *YYCURSOR;
5959
6
    if (yych <= '\f') {
5960
0
      if (yych <= 0x00) goto yy86;
5961
0
      if (yych == '\n') goto yy84;
5962
0
      goto yy225;
5963
6
    } else {
5964
6
      if (yych <= '\r') goto yy84;
5965
6
      if (yych == '.') goto yy352;
5966
6
      goto yy225;
5967
6
    }
5968
111k
yy443:
5969
111k
    YYDEBUG(443, *YYCURSOR);
5970
111k
    ++YYCURSOR;
5971
111k
    YYFILL(1);
5972
111k
    yych = *YYCURSOR;
5973
111k
    YYDEBUG(444, *YYCURSOR);
5974
111k
    if (yybm[0+yych] & 128) {
5975
99.1k
      goto yy443;
5976
99.1k
    }
5977
12.7k
    if (yych <= 0x00) goto yy86;
5978
12.4k
    if (yych <= '\r') goto yy545;
5979
2.38k
    goto yy547;
5980
3.35k
yy445:
5981
3.35k
    YYDEBUG(445, *YYCURSOR);
5982
3.35k
    yych = *++YYCURSOR;
5983
3.35k
    if (yych == 'Y') goto yy549;
5984
3.34k
    if (yych == 'y') goto yy549;
5985
11
    goto yy86;
5986
46
yy446:
5987
46
    YYDEBUG(446, *YYCURSOR);
5988
46
    yych = *++YYCURSOR;
5989
46
    if (yych == 'R') goto yy551;
5990
37
    if (yych == 'r') goto yy551;
5991
30
    goto yy86;
5992
116
yy447:
5993
116
    YYDEBUG(447, *YYCURSOR);
5994
116
    yych = *++YYCURSOR;
5995
116
    if (yych == 'E') goto yy556;
5996
116
    if (yych == 'e') goto yy556;
5997
99
    goto yy553;
5998
99
yy448:
5999
25
    YYDEBUG(448, *YYCURSOR);
6000
25
    yych = *++YYCURSOR;
6001
25
    if (yych == 'L') goto yy557;
6002
25
    if (yych == 'l') goto yy557;
6003
3
    goto yy86;
6004
127
yy449:
6005
127
    YYDEBUG(449, *YYCURSOR);
6006
127
    yych = *++YYCURSOR;
6007
127
    if (yych == 'T') goto yy558;
6008
127
    if (yych == 't') goto yy558;
6009
3
    goto yy86;
6010
925
yy450:
6011
925
    YYDEBUG(450, *YYCURSOR);
6012
925
    ++YYCURSOR;
6013
925
    YYFILL(1);
6014
925
    yych = *YYCURSOR;
6015
2.27k
yy451:
6016
2.27k
    YYDEBUG(451, *YYCURSOR);
6017
2.27k
    if (yych <= 0x1F) {
6018
3
      if (yych == '\t') goto yy450;
6019
3
      goto yy86;
6020
2.26k
    } else {
6021
2.26k
      if (yych <= ' ') goto yy450;
6022
1.34k
      if (yych != ')') goto yy86;
6023
1.34k
    }
6024
454
    YYDEBUG(452, *YYCURSOR);
6025
454
    ++YYCURSOR;
6026
454
    YYDEBUG(453, *YYCURSOR);
6027
454
    yyleng = YYCURSOR - SCNG(yy_text);
6028
454
#line 1637 "Zend/zend_language_scanner.l"
6029
454
    {
6030
454
  RETURN_TOKEN(T_INT_CAST);
6031
454
}
6032
0
#line 6033 "Zend/zend_language_scanner.c"
6033
150
yy454:
6034
150
    YYDEBUG(454, *YYCURSOR);
6035
150
    yych = *++YYCURSOR;
6036
150
    if (yych == 'G') goto yy560;
6037
150
    if (yych == 'g') goto yy560;
6038
117
    goto yy86;
6039
425
yy455:
6040
425
    YYDEBUG(455, *YYCURSOR);
6041
425
    yych = *++YYCURSOR;
6042
425
    if (yych == 'C') goto yy561;
6043
425
    if (yych == 'c') goto yy561;
6044
3
    goto yy86;
6045
53
yy456:
6046
53
    YYDEBUG(456, *YYCURSOR);
6047
53
    ++YYCURSOR;
6048
53
    YYFILL(1);
6049
53
    yych = *YYCURSOR;
6050
53
    YYDEBUG(457, *YYCURSOR);
6051
53
    if (yych <= 0x1F) {
6052
3
      if (yych == '\t') goto yy456;
6053
3
      goto yy86;
6054
50
    } else {
6055
50
      if (yych <= ' ') goto yy456;
6056
50
      if (yych == ')') goto yy562;
6057
44
      goto yy86;
6058
50
    }
6059
4.52k
yy458:
6060
4.52k
    YYDEBUG(458, *YYCURSOR);
6061
4.52k
    yych = *++YYCURSOR;
6062
4.52k
    if (yych == 'N') goto yy564;
6063
4.52k
    if (yych == 'n') goto yy564;
6064
611
    goto yy86;
6065
611
yy459:
6066
272
    YYDEBUG(459, *YYCURSOR);
6067
272
    yych = *++YYCURSOR;
6068
272
    if (yych == 'T') goto yy565;
6069
272
    if (yych == 't') goto yy565;
6070
122
    goto yy86;
6071
122
yy460:
6072
74
    YYDEBUG(460, *YYCURSOR);
6073
74
    ++YYCURSOR;
6074
74
    YYFILL(1);
6075
74
    yych = *YYCURSOR;
6076
74
    YYDEBUG(461, *YYCURSOR);
6077
74
    if (yych <= 0x1F) {
6078
0
      if (yych == '\t') goto yy460;
6079
0
      goto yy86;
6080
74
    } else {
6081
74
      if (yych <= ' ') goto yy460;
6082
68
      if (yych == ')') goto yy567;
6083
6
      goto yy86;
6084
68
    }
6085
899
yy462:
6086
899
    YYDEBUG(462, *YYCURSOR);
6087
899
    ++YYCURSOR;
6088
899
    YYFILL(3);
6089
899
    yych = *YYCURSOR;
6090
1.10k
yy463:
6091
1.10k
    YYDEBUG(463, *YYCURSOR);
6092
1.10k
    if (yych <= 'Z') {
6093
532
      if (yych <= '/') {
6094
176
        if (yych == '"') goto yy569;
6095
144
        goto yy86;
6096
356
      } else {
6097
356
        if (yych <= '9') goto yy462;
6098
248
        if (yych <= '@') goto yy86;
6099
245
        goto yy462;
6100
248
      }
6101
573
    } else {
6102
573
      if (yych <= '`') {
6103
21
        if (yych == '_') goto yy462;
6104
3
        goto yy86;
6105
552
      } else {
6106
552
        if (yych <= 'z') goto yy462;
6107
291
        if (yych <= 0x7F) goto yy86;
6108
267
        goto yy462;
6109
291
      }
6110
573
    }
6111
8.26k
yy464:
6112
8.26k
    YYDEBUG(464, *YYCURSOR);
6113
8.26k
    ++YYCURSOR;
6114
8.26k
    YYFILL(3);
6115
8.26k
    yych = *YYCURSOR;
6116
10.4k
yy465:
6117
10.4k
    YYDEBUG(465, *YYCURSOR);
6118
10.4k
    if (yych <= 'Z') {
6119
5.55k
      if (yych <= '/') {
6120
2.09k
        if (yych == '\'') goto yy569;
6121
39
        goto yy86;
6122
3.46k
      } else {
6123
3.46k
        if (yych <= '9') goto yy464;
6124
3.45k
        if (yych <= '@') goto yy86;
6125
3.42k
        goto yy464;
6126
3.45k
      }
6127
5.55k
    } else {
6128
4.91k
      if (yych <= '`') {
6129
474
        if (yych == '_') goto yy464;
6130
63
        goto yy86;
6131
4.43k
      } else {
6132
4.43k
        if (yych <= 'z') goto yy464;
6133
687
        if (yych <= 0x7F) goto yy86;
6134
669
        goto yy464;
6135
687
      }
6136
4.91k
    }
6137
286k
yy466:
6138
286k
    YYDEBUG(466, *YYCURSOR);
6139
286k
    ++YYCURSOR;
6140
290k
yy467:
6141
290k
    YYDEBUG(467, *YYCURSOR);
6142
290k
    yyleng = YYCURSOR - SCNG(yy_text);
6143
290k
#line 2677 "Zend/zend_language_scanner.l"
6144
290k
    {
6145
290k
  char *s;
6146
290k
  unsigned char *saved_cursor;
6147
290k
  int bprefix = (yytext[0] != '<') ? 1 : 0, spacing = 0, indentation = 0;
6148
290k
  zend_heredoc_label *heredoc_label = emalloc(sizeof(zend_heredoc_label));
6149
290k
  bool is_heredoc = 1;
6150
6151
290k
  CG(zend_lineno)++;
6152
290k
  heredoc_label->length = yyleng-bprefix-3-1-(yytext[yyleng-2]=='\r'?1:0);
6153
290k
  s = yytext+bprefix+3;
6154
290k
  while ((*s == ' ') || (*s == '\t')) {
6155
198
    s++;
6156
198
    heredoc_label->length--;
6157
198
  }
6158
6159
290k
  if (*s == '\'') {
6160
1.85k
    s++;
6161
1.85k
    heredoc_label->length -= 2;
6162
1.85k
    is_heredoc = 0;
6163
6164
1.85k
    BEGIN(ST_NOWDOC);
6165
288k
  } else {
6166
288k
    if (*s == '"') {
6167
23
      s++;
6168
23
      heredoc_label->length -= 2;
6169
23
    }
6170
6171
288k
    BEGIN(ST_HEREDOC);
6172
288k
  }
6173
6174
290k
  heredoc_label->label = estrndup(s, heredoc_label->length);
6175
290k
  heredoc_label->indentation_uses_spaces = 0;
6176
290k
  heredoc_label->indentation = 0;
6177
290k
  saved_cursor = YYCURSOR;
6178
6179
290k
  zend_ptr_stack_push(&SCNG(heredoc_label_stack), (void *) heredoc_label);
6180
6181
320k
  while (YYCURSOR < YYLIMIT && (*YYCURSOR == ' ' || *YYCURSOR == '\t')) {
6182
30.1k
    if (*YYCURSOR == '\t') {
6183
2.56k
      spacing |= HEREDOC_USING_TABS;
6184
27.6k
    } else {
6185
27.6k
      spacing |= HEREDOC_USING_SPACES;
6186
27.6k
    }
6187
30.1k
    ++YYCURSOR;
6188
30.1k
    ++indentation;
6189
30.1k
  }
6190
6191
290k
  if (YYCURSOR == YYLIMIT) {
6192
51
    YYCURSOR = saved_cursor;
6193
51
    RETURN_TOKEN(T_START_HEREDOC);
6194
51
  }
6195
6196
  /* Check for ending label on the next line */
6197
290k
  if (heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, s, heredoc_label->length)) {
6198
1.04k
    if (!IS_LABEL_SUCCESSOR(YYCURSOR[heredoc_label->length])) {
6199
555
      if (spacing == (HEREDOC_USING_SPACES | HEREDOC_USING_TABS)) {
6200
3
        zend_throw_exception(zend_ce_parse_error, "Invalid indentation - tabs and spaces cannot be mixed", 0);
6201
3
        if (PARSER_MODE()) {
6202
3
          RETURN_TOKEN(T_ERROR);
6203
3
        }
6204
3
      }
6205
6206
552
      YYCURSOR = saved_cursor;
6207
552
      heredoc_label->indentation = indentation;
6208
6209
552
      BEGIN(ST_END_HEREDOC);
6210
552
      RETURN_TOKEN(T_START_HEREDOC);
6211
552
    }
6212
1.04k
  }
6213
6214
290k
  YYCURSOR = saved_cursor;
6215
6216
290k
  if (is_heredoc && !SCNG(heredoc_scan_ahead)) {
6217
19.7k
    zend_lex_state current_state;
6218
19.7k
    zend_string *saved_doc_comment = CG(doc_comment);
6219
19.7k
    int heredoc_nesting_level = 1;
6220
19.7k
    int first_token = 0;
6221
19.7k
    int error = 0;
6222
6223
19.7k
    zend_save_lexical_state(&current_state);
6224
6225
19.7k
    SCNG(heredoc_scan_ahead) = 1;
6226
19.7k
    SCNG(heredoc_indentation) = 0;
6227
19.7k
    SCNG(heredoc_indentation_uses_spaces) = 0;
6228
19.7k
    SCNG(on_event_context) = NULL;
6229
19.7k
    LANG_SCNG(on_event) = NULL;
6230
19.7k
    CG(doc_comment) = NULL;
6231
6232
19.7k
    zend_ptr_stack_reverse_apply(&current_state.heredoc_label_stack, copy_heredoc_label_stack);
6233
6234
19.7k
    zend_object *prev_exception = EG(exception);
6235
19.7k
    EG(exception) = NULL;
6236
3.82M
    while (heredoc_nesting_level) {
6237
3.82M
      zval zv;
6238
3.82M
      int retval;
6239
6240
3.82M
      ZVAL_UNDEF(&zv);
6241
3.82M
      retval = lex_scan(&zv, NULL);
6242
3.82M
      zval_ptr_dtor_nogc(&zv);
6243
6244
3.82M
      if (EG(exception)) {
6245
17.9k
        zend_clear_exception();
6246
17.9k
        break;
6247
17.9k
      }
6248
6249
3.80M
      if (!first_token) {
6250
19.7k
        first_token = retval;
6251
19.7k
      }
6252
6253
3.80M
      switch (retval) {
6254
270k
        case T_START_HEREDOC:
6255
270k
          ++heredoc_nesting_level;
6256
270k
          break;
6257
3.61k
        case T_END_HEREDOC:
6258
3.61k
          --heredoc_nesting_level;
6259
3.61k
          break;
6260
481
        case END:
6261
481
          heredoc_nesting_level = 0;
6262
3.80M
      }
6263
3.80M
    }
6264
19.7k
    EG(exception) = prev_exception;
6265
6266
19.7k
    if (
6267
19.7k
        (first_token == T_VARIABLE
6268
18.7k
         || first_token == T_DOLLAR_OPEN_CURLY_BRACES
6269
8.48k
         || first_token == T_CURLY_OPEN
6270
19.7k
        ) && 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
19.7k
    heredoc_label->indentation = SCNG(heredoc_indentation);
6276
19.7k
    heredoc_label->indentation_uses_spaces = SCNG(heredoc_indentation_uses_spaces);
6277
6278
19.7k
    zend_restore_lexical_state(&current_state);
6279
19.7k
    SCNG(heredoc_scan_ahead) = 0;
6280
19.7k
    CG(increment_lineno) = 0;
6281
19.7k
    CG(doc_comment) = saved_doc_comment;
6282
6283
19.7k
    if (PARSER_MODE() && error) {
6284
3
      RETURN_TOKEN(T_ERROR);
6285
3
    }
6286
19.7k
  }
6287
6288
290k
  RETURN_TOKEN(T_START_HEREDOC);
6289
290k
}
6290
0
#line 6291 "Zend/zend_language_scanner.c"
6291
3.97k
yy468:
6292
3.97k
    YYDEBUG(468, *YYCURSOR);
6293
3.97k
    yych = *++YYCURSOR;
6294
3.97k
    if (yych == '\n') goto yy466;
6295
3.95k
    goto yy467;
6296
3.95k
yy469:
6297
1.07k
    YYDEBUG(469, *YYCURSOR);
6298
1.07k
    yyaccept = 4;
6299
1.07k
    yych = *(YYMARKER = ++YYCURSOR);
6300
1.07k
    if (yych == 'A') goto yy570;
6301
1.04k
    if (yych == 'a') goto yy570;
6302
29
    goto yy48;
6303
8.46k
yy470:
6304
8.46k
    YYDEBUG(470, *YYCURSOR);
6305
8.46k
    yyaccept = 34;
6306
8.46k
    yych = *(YYMARKER = ++YYCURSOR);
6307
8.46k
    if (yybm[256+yych] & 128) {
6308
1.61k
      goto yy47;
6309
1.61k
    }
6310
6.84k
    if (yych == '\\') goto yy164;
6311
6.84k
yy471:
6312
6.84k
    YYDEBUG(471, *YYCURSOR);
6313
6.84k
    yyleng = YYCURSOR - SCNG(yy_text);
6314
6.84k
#line 1817 "Zend/zend_language_scanner.l"
6315
6.84k
    {
6316
6.84k
  RETURN_TOKEN_WITH_IDENT(T_ARRAY);
6317
6.84k
}
6318
0
#line 6319 "Zend/zend_language_scanner.c"
6319
513
yy472:
6320
513
    YYDEBUG(472, *YYCURSOR);
6321
513
    yyaccept = 35;
6322
513
    yych = *(YYMARKER = ++YYCURSOR);
6323
513
    if (yybm[256+yych] & 128) {
6324
0
      goto yy47;
6325
0
    }
6326
513
    if (yych == '\\') goto yy164;
6327
513
yy473:
6328
513
    YYDEBUG(473, *YYCURSOR);
6329
513
    yyleng = YYCURSOR - SCNG(yy_text);
6330
513
#line 1533 "Zend/zend_language_scanner.l"
6331
513
    {
6332
513
  RETURN_TOKEN_WITH_IDENT(T_BREAK);
6333
513
}
6334
0
#line 6335 "Zend/zend_language_scanner.c"
6335
1.33k
yy474:
6336
1.33k
    YYDEBUG(474, *YYCURSOR);
6337
1.33k
    yyaccept = 4;
6338
1.33k
    yych = *(YYMARKER = ++YYCURSOR);
6339
1.33k
    if (yych == 'B') goto yy571;
6340
1.32k
    if (yych == 'b') goto yy571;
6341
3
    goto yy48;
6342
15.4k
yy475:
6343
15.4k
    YYDEBUG(475, *YYCURSOR);
6344
15.4k
    yyaccept = 36;
6345
15.4k
    yych = *(YYMARKER = ++YYCURSOR);
6346
15.4k
    if (yybm[256+yych] & 128) {
6347
36
      goto yy47;
6348
36
    }
6349
15.3k
    if (yych == '\\') goto yy164;
6350
15.3k
yy476:
6351
15.3k
    YYDEBUG(476, *YYCURSOR);
6352
15.3k
    yyleng = YYCURSOR - SCNG(yy_text);
6353
15.3k
#line 1441 "Zend/zend_language_scanner.l"
6354
15.3k
    {
6355
15.3k
  RETURN_TOKEN_WITH_IDENT(T_CATCH);
6356
15.3k
}
6357
0
#line 6358 "Zend/zend_language_scanner.c"
6358
24.3k
yy477:
6359
24.3k
    YYDEBUG(477, *YYCURSOR);
6360
24.3k
    yyaccept = 37;
6361
24.3k
    yych = *(YYMARKER = ++YYCURSOR);
6362
24.3k
    if (yybm[256+yych] & 128) {
6363
1.61k
      goto yy47;
6364
1.61k
    }
6365
22.7k
    if (yych == '\\') goto yy164;
6366
22.7k
yy478:
6367
22.7k
    YYDEBUG(478, *YYCURSOR);
6368
22.7k
    yyleng = YYCURSOR - SCNG(yy_text);
6369
22.7k
#line 1553 "Zend/zend_language_scanner.l"
6370
22.7k
    {
6371
22.7k
  RETURN_TOKEN_WITH_IDENT(T_CLASS);
6372
22.7k
}
6373
0
#line 6374 "Zend/zend_language_scanner.c"
6374
683
yy479:
6375
683
    YYDEBUG(479, *YYCURSOR);
6376
683
    yyaccept = 38;
6377
683
    yych = *(YYMARKER = ++YYCURSOR);
6378
683
    if (yybm[256+yych] & 128) {
6379
53
      goto yy47;
6380
53
    }
6381
630
    if (yych == '\\') goto yy164;
6382
627
yy480:
6383
627
    YYDEBUG(480, *YYCURSOR);
6384
627
    yyleng = YYCURSOR - SCNG(yy_text);
6385
627
#line 1629 "Zend/zend_language_scanner.l"
6386
627
    {
6387
627
  RETURN_TOKEN_WITH_IDENT(T_CLONE);
6388
627
}
6389
0
#line 6390 "Zend/zend_language_scanner.c"
6390
9.28k
yy481:
6391
9.28k
    YYDEBUG(481, *YYCURSOR);
6392
9.28k
    yyaccept = 39;
6393
9.28k
    yych = *(YYMARKER = ++YYCURSOR);
6394
9.28k
    if (yybm[256+yych] & 128) {
6395
1.35k
      goto yy47;
6396
1.35k
    }
6397
7.93k
    if (yych == '\\') goto yy164;
6398
7.93k
yy482:
6399
7.93k
    YYDEBUG(482, *YYCURSOR);
6400
7.93k
    yyleng = YYCURSOR - SCNG(yy_text);
6401
7.93k
#line 1414 "Zend/zend_language_scanner.l"
6402
7.93k
    {
6403
7.93k
  RETURN_TOKEN_WITH_IDENT(T_CONST);
6404
7.93k
}
6405
0
#line 6406 "Zend/zend_language_scanner.c"
6406
351
yy483:
6407
351
    YYDEBUG(483, *YYCURSOR);
6408
351
    yyaccept = 4;
6409
351
    yych = *(YYMARKER = ++YYCURSOR);
6410
351
    if (yych == 'N') goto yy572;
6411
219
    if (yych == 'n') goto yy572;
6412
12
    goto yy48;
6413
384
yy484:
6414
384
    YYDEBUG(484, *YYCURSOR);
6415
384
    yyaccept = 4;
6416
384
    yych = *(YYMARKER = ++YYCURSOR);
6417
384
    if (yych == 'R') goto yy573;
6418
361
    if (yych == 'r') goto yy573;
6419
3
    goto yy48;
6420
496
yy485:
6421
496
    YYDEBUG(485, *YYCURSOR);
6422
496
    yyaccept = 4;
6423
496
    yych = *(YYMARKER = ++YYCURSOR);
6424
496
    if (yych == 'L') goto yy574;
6425
486
    if (yych == 'l') goto yy574;
6426
105
    goto yy48;
6427
335
yy486:
6428
335
    YYDEBUG(486, *YYCURSOR);
6429
335
    yyaccept = 4;
6430
335
    yych = *(YYMARKER = ++YYCURSOR);
6431
335
    if (yych == 'F') goto yy575;
6432
322
    if (yych == 'f') goto yy575;
6433
153
    goto yy48;
6434
568
yy487:
6435
568
    YYDEBUG(487, *YYCURSOR);
6436
568
    yyaccept = 40;
6437
568
    yych = *(YYMARKER = ++YYCURSOR);
6438
568
    if (yybm[256+yych] & 128) {
6439
31
      goto yy47;
6440
31
    }
6441
537
    if (yych == '\\') goto yy164;
6442
537
yy488:
6443
537
    YYDEBUG(488, *YYCURSOR);
6444
537
    yyleng = YYCURSOR - SCNG(yy_text);
6445
537
#line 1757 "Zend/zend_language_scanner.l"
6446
537
    {
6447
537
  RETURN_TOKEN_WITH_IDENT(T_EMPTY);
6448
537
}
6449
0
#line 6450 "Zend/zend_language_scanner.c"
6450
138
yy489:
6451
138
    YYDEBUG(489, *YYCURSOR);
6452
138
    yyaccept = 4;
6453
138
    yych = *(YYMARKER = ++YYCURSOR);
6454
138
    if (yych == 'C') goto yy577;
6455
50
    if (yych == 'c') goto yy577;
6456
3
    goto yy48;
6457
2.42k
yy490:
6458
2.42k
    YYDEBUG(490, *YYCURSOR);
6459
2.42k
    yyaccept = 4;
6460
2.42k
    yych = *(YYMARKER = ++YYCURSOR);
6461
2.42k
    if (yych == 'R') goto yy578;
6462
1.36k
    if (yych == 'r') goto yy578;
6463
84
    goto yy48;
6464
2.29k
yy491:
6465
2.29k
    YYDEBUG(491, *YYCURSOR);
6466
2.29k
    yyaccept = 41;
6467
2.29k
    yych = *(YYMARKER = ++YYCURSOR);
6468
2.29k
    if (yybm[256+yych] & 128) {
6469
18
      goto yy47;
6470
18
    }
6471
2.27k
    if (yych == '\\') goto yy164;
6472
2.27k
yy492:
6473
2.27k
    YYDEBUG(492, *YYCURSOR);
6474
2.27k
    yyleng = YYCURSOR - SCNG(yy_text);
6475
2.27k
#line 1461 "Zend/zend_language_scanner.l"
6476
2.27k
    {
6477
2.27k
  RETURN_TOKEN_WITH_IDENT(T_ENDIF);
6478
2.27k
}
6479
0
#line 6480 "Zend/zend_language_scanner.c"
6480
277
yy493:
6481
277
    YYDEBUG(493, *YYCURSOR);
6482
277
    yyaccept = 4;
6483
277
    yych = *(YYMARKER = ++YYCURSOR);
6484
277
    if (yych == 'I') goto yy580;
6485
252
    if (yych == 'i') goto yy580;
6486
0
    goto yy48;
6487
2.19k
yy494:
6488
2.19k
    YYDEBUG(494, *YYCURSOR);
6489
2.19k
    yyaccept = 4;
6490
2.19k
    yych = *(YYMARKER = ++YYCURSOR);
6491
2.19k
    if (yych == 'I') goto yy581;
6492
2.12k
    if (yych == 'i') goto yy581;
6493
99
    goto yy48;
6494
109k
yy495:
6495
109k
    YYDEBUG(495, *YYCURSOR);
6496
109k
    ++YYCURSOR;
6497
109k
    YYFILL(10);
6498
109k
    yych = *YYCURSOR;
6499
109k
    YYDEBUG(496, *YYCURSOR);
6500
109k
    if (yych <= 'E') {
6501
101k
      if (yych <= ' ') {
6502
14.4k
        if (yych <= '\f') {
6503
6.91k
          if (yych <= 0x08) goto yy86;
6504
6.78k
          if (yych <= '\n') goto yy495;
6505
1.35k
          goto yy86;
6506
7.56k
        } else {
6507
7.56k
          if (yych <= '\r') goto yy495;
6508
3.90k
          if (yych <= 0x1F) goto yy86;
6509
3.70k
          goto yy495;
6510
3.90k
        }
6511
87.4k
      } else {
6512
87.4k
        if (yych <= '.') {
6513
81.2k
          if (yych != '#') goto yy86;
6514
81.2k
        } else {
6515
6.15k
          if (yych <= '/') goto yy498;
6516
1.26k
          if (yych <= '@') goto yy86;
6517
394
          if (yych <= 'D') goto yy582;
6518
64
          goto yy584;
6519
394
        }
6520
87.4k
      }
6521
101k
    } else {
6522
7.69k
      if (yych <= '`') {
6523
962
        if (yych <= 'Z') {
6524
735
          if (yych == 'I') goto yy585;
6525
638
          goto yy582;
6526
735
        } else {
6527
227
          if (yych == '_') goto yy582;
6528
185
          goto yy86;
6529
227
        }
6530
6.73k
      } else {
6531
6.73k
        if (yych <= 'h') {
6532
3.80k
          if (yych == 'e') goto yy584;
6533
2.79k
          goto yy582;
6534
3.80k
        } else {
6535
2.92k
          if (yych <= 'i') goto yy585;
6536
2.13k
          if (yych <= 'z') goto yy582;
6537
1.73k
          if (yych <= 0x7F) goto yy86;
6538
1.20k
          goto yy582;
6539
1.73k
        }
6540
6.73k
      }
6541
7.69k
    }
6542
79.2k
yy497:
6543
79.2k
    YYDEBUG(497, *YYCURSOR);
6544
79.2k
    ++YYCURSOR;
6545
79.2k
    YYFILL(1);
6546
79.2k
    yych = *YYCURSOR;
6547
79.2k
    if (yych <= '\f') {
6548
51.4k
      if (yych <= 0x00) goto yy86;
6549
51.2k
      if (yych == '\n') goto yy588;
6550
1.01k
      goto yy586;
6551
51.2k
    } else {
6552
27.8k
      if (yych <= '\r') goto yy588;
6553
8.76k
      if (yych == '[') goto yy86;
6554
8.72k
      goto yy586;
6555
8.76k
    }
6556
5.06k
yy498:
6557
5.06k
    YYDEBUG(498, *YYCURSOR);
6558
5.06k
    ++YYCURSOR;
6559
5.06k
    YYFILL(1);
6560
5.06k
    yych = *YYCURSOR;
6561
5.06k
    if (yych == '*') goto yy590;
6562
270
    if (yych == '/') goto yy586;
6563
246
    goto yy86;
6564
4.67k
yy499:
6565
4.67k
    YYDEBUG(499, *YYCURSOR);
6566
4.67k
    yyaccept = 4;
6567
4.67k
    yych = *(YYMARKER = ++YYCURSOR);
6568
4.67k
    if (yych == 'D') goto yy592;
6569
4.62k
    if (yych == 'd') goto yy592;
6570
401
    goto yy48;
6571
1.93k
yy500:
6572
1.93k
    YYDEBUG(500, *YYCURSOR);
6573
1.93k
    yyaccept = 42;
6574
1.93k
    yych = *(YYMARKER = ++YYCURSOR);
6575
1.93k
    if (yych <= '\\') {
6576
1.30k
      if (yych <= 'K') {
6577
1.29k
        if (yych <= '/') goto yy501;
6578
107
        if (yych <= '9') goto yy47;
6579
57
        if (yych >= 'A') goto yy47;
6580
57
      } else {
6581
14
        if (yych <= 'L') goto yy593;
6582
0
        if (yych <= 'Z') goto yy47;
6583
0
        if (yych >= '\\') goto yy164;
6584
0
      }
6585
1.30k
    } else {
6586
631
      if (yych <= 'k') {
6587
3
        if (yych == '_') goto yy47;
6588
3
        if (yych >= 'a') goto yy47;
6589
628
      } else {
6590
628
        if (yych <= 'l') goto yy593;
6591
6
        if (yych <= 'z') goto yy47;
6592
6
        if (yych >= 0x80) goto yy47;
6593
6
      }
6594
631
    }
6595
1.24k
yy501:
6596
1.24k
    YYDEBUG(501, *YYCURSOR);
6597
1.24k
    yyleng = YYCURSOR - SCNG(yy_text);
6598
1.24k
#line 1773 "Zend/zend_language_scanner.l"
6599
1.24k
    {
6600
1.24k
  RETURN_TOKEN_WITH_IDENT(T_FINAL);
6601
1.24k
}
6602
0
#line 6603 "Zend/zend_language_scanner.c"
6603
8.16k
yy502:
6604
8.16k
    YYDEBUG(502, *YYCURSOR);
6605
8.16k
    yyaccept = 4;
6606
8.16k
    yych = *(YYMARKER = ++YYCURSOR);
6607
8.16k
    if (yych == 'C') goto yy594;
6608
8.00k
    if (yych == 'c') goto yy594;
6609
205
    goto yy48;
6610
37.7k
yy503:
6611
37.7k
    YYDEBUG(503, *YYCURSOR);
6612
37.7k
    yyaccept = 4;
6613
37.7k
    yych = *(YYMARKER = ++YYCURSOR);
6614
37.7k
    if (yych == 'I') goto yy595;
6615
37.4k
    if (yych == 'i') goto yy595;
6616
33
    goto yy48;
6617
760
yy504:
6618
760
    YYDEBUG(504, *YYCURSOR);
6619
760
    yyaccept = 4;
6620
760
    yych = *(YYMARKER = ++YYCURSOR);
6621
760
    if (yych == 'L') goto yy596;
6622
500
    if (yych == 'l') goto yy596;
6623
15
    goto yy48;
6624
8.10k
yy505:
6625
8.10k
    YYDEBUG(505, *YYCURSOR);
6626
8.10k
    yyaccept = 4;
6627
8.10k
    yych = *(YYMARKER = ++YYCURSOR);
6628
8.10k
    if (yych == 'M') goto yy598;
6629
7.68k
    if (yych == 'm') goto yy598;
6630
5.07k
    goto yy48;
6631
5.07k
yy506:
6632
835
    YYDEBUG(506, *YYCURSOR);
6633
835
    yyaccept = 4;
6634
835
    yych = *(YYMARKER = ++YYCURSOR);
6635
835
    if (yych == 'D') goto yy599;
6636
755
    if (yych == 'd') goto yy599;
6637
21
    goto yy48;
6638
821
yy507:
6639
821
    YYDEBUG(507, *YYCURSOR);
6640
821
    yyaccept = 4;
6641
821
    yych = *(YYMARKER = ++YYCURSOR);
6642
821
    if (yych == 'N') goto yy600;
6643
500
    if (yych == 'n') goto yy600;
6644
30
    goto yy48;
6645
600
yy508:
6646
600
    YYDEBUG(508, *YYCURSOR);
6647
600
    yyaccept = 4;
6648
600
    yych = *(YYMARKER = ++YYCURSOR);
6649
600
    if (yych == 'A') goto yy601;
6650
410
    if (yych == 'a') goto yy601;
6651
0
    goto yy48;
6652
1.61k
yy509:
6653
1.61k
    YYDEBUG(509, *YYCURSOR);
6654
1.61k
    yyaccept = 4;
6655
1.61k
    yych = *(YYMARKER = ++YYCURSOR);
6656
1.61k
    if (yych == 'F') goto yy602;
6657
1.52k
    if (yych == 'f') goto yy602;
6658
132
    goto yy48;
6659
1.84k
yy510:
6660
1.84k
    YYDEBUG(510, *YYCURSOR);
6661
1.84k
    yyaccept = 43;
6662
1.84k
    yych = *(YYMARKER = ++YYCURSOR);
6663
1.84k
    if (yybm[256+yych] & 128) {
6664
11
      goto yy47;
6665
11
    }
6666
1.83k
    if (yych == '\\') goto yy164;
6667
1.83k
yy511:
6668
1.83k
    YYDEBUG(511, *YYCURSOR);
6669
1.83k
    yyleng = YYCURSOR - SCNG(yy_text);
6670
1.83k
#line 1753 "Zend/zend_language_scanner.l"
6671
1.83k
    {
6672
1.83k
  RETURN_TOKEN_WITH_IDENT(T_ISSET);
6673
1.83k
}
6674
0
#line 6675 "Zend/zend_language_scanner.c"
6675
527
yy512:
6676
527
    YYDEBUG(512, *YYCURSOR);
6677
527
    yyaccept = 44;
6678
527
    yych = *(YYMARKER = ++YYCURSOR);
6679
527
    if (yybm[256+yych] & 128) {
6680
3
      goto yy47;
6681
3
    }
6682
524
    if (yych == '\\') goto yy164;
6683
524
yy513:
6684
524
    YYDEBUG(513, *YYCURSOR);
6685
524
    yyleng = YYCURSOR - SCNG(yy_text);
6686
524
#line 1517 "Zend/zend_language_scanner.l"
6687
524
    {
6688
524
  RETURN_TOKEN_WITH_IDENT(T_MATCH);
6689
524
}
6690
0
#line 6691 "Zend/zend_language_scanner.c"
6691
3.25k
yy514:
6692
3.25k
    YYDEBUG(514, *YYCURSOR);
6693
3.25k
    yyaccept = 4;
6694
3.25k
    yych = *(YYMARKER = ++YYCURSOR);
6695
3.25k
    if (yych == 'P') goto yy603;
6696
2.63k
    if (yych == 'p') goto yy603;
6697
87
    goto yy48;
6698
4.41k
yy515:
6699
4.41k
    YYDEBUG(515, *YYCURSOR);
6700
4.41k
    yyaccept = 45;
6701
4.41k
    yych = *(YYMARKER = ++YYCURSOR);
6702
4.41k
    if (yybm[256+yych] & 128) {
6703
2.32k
      goto yy47;
6704
2.32k
    }
6705
2.08k
    if (yych == '\\') goto yy164;
6706
2.08k
yy516:
6707
2.08k
    YYDEBUG(516, *YYCURSOR);
6708
2.08k
    yyleng = YYCURSOR - SCNG(yy_text);
6709
2.08k
#line 1549 "Zend/zend_language_scanner.l"
6710
2.08k
    {
6711
2.08k
  RETURN_TOKEN_WITH_IDENT(T_PRINT);
6712
2.08k
}
6713
0
#line 6714 "Zend/zend_language_scanner.c"
6714
2.72k
yy517:
6715
2.72k
    YYDEBUG(517, *YYCURSOR);
6716
2.72k
    yyaccept = 4;
6717
2.72k
    yych = *(YYMARKER = ++YYCURSOR);
6718
2.72k
    if (yych == 'T') goto yy604;
6719
2.57k
    if (yych == 't') goto yy604;
6720
6
    goto yy48;
6721
2.65k
yy518:
6722
2.65k
    YYDEBUG(518, *YYCURSOR);
6723
2.65k
    yyaccept = 4;
6724
2.65k
    yych = *(YYMARKER = ++YYCURSOR);
6725
2.65k
    if (yych == 'C') goto yy605;
6726
2.59k
    if (yych == 'c') goto yy605;
6727
72
    goto yy48;
6728
22.4k
yy519:
6729
22.4k
    YYDEBUG(519, *YYCURSOR);
6730
22.4k
    yyaccept = 4;
6731
22.4k
    yych = *(YYMARKER = ++YYCURSOR);
6732
22.4k
    if (yych == 'C') goto yy606;
6733
22.4k
    if (yych == 'c') goto yy606;
6734
47
    goto yy48;
6735
545
yy520:
6736
545
    YYDEBUG(520, *YYCURSOR);
6737
545
    yyaccept = 4;
6738
545
    yych = *(YYMARKER = ++YYCURSOR);
6739
545
    if (yych == 'N') goto yy608;
6740
545
    if (yych == 'n') goto yy608;
6741
51
    goto yy48;
6742
6.31k
yy521:
6743
6.31k
    YYDEBUG(521, *YYCURSOR);
6744
6.31k
    yyaccept = 4;
6745
6.31k
    yych = *(YYMARKER = ++YYCURSOR);
6746
6.31k
    if (yych == 'R') goto yy609;
6747
6.25k
    if (yych == 'r') goto yy609;
6748
665
    goto yy48;
6749
10.2k
yy522:
6750
10.2k
    YYDEBUG(522, *YYCURSOR);
6751
10.2k
    yyaccept = 4;
6752
10.2k
    yych = *(YYMARKER = ++YYCURSOR);
6753
10.2k
    if (yych == 'N') goto yy610;
6754
9.96k
    if (yych == 'n') goto yy610;
6755
296
    goto yy48;
6756
5.66k
yy523:
6757
5.66k
    YYDEBUG(523, *YYCURSOR);
6758
5.66k
    yyaccept = 4;
6759
5.66k
    yych = *(YYMARKER = ++YYCURSOR);
6760
5.66k
    if (yych == 'C') goto yy612;
6761
5.63k
    if (yych == 'c') goto yy612;
6762
96
    goto yy48;
6763
2.38k
yy524:
6764
2.38k
    YYDEBUG(524, *YYCURSOR);
6765
2.38k
    yyaccept = 4;
6766
2.38k
    yych = *(YYMARKER = ++YYCURSOR);
6767
2.38k
    if (yych == 'H') goto yy614;
6768
2.32k
    if (yych == 'h') goto yy614;
6769
703
    goto yy48;
6770
2.33k
yy525:
6771
2.33k
    YYDEBUG(525, *YYCURSOR);
6772
2.33k
    yyaccept = 46;
6773
2.33k
    yych = *(YYMARKER = ++YYCURSOR);
6774
2.33k
    if (yybm[256+yych] & 128) {
6775
824
      goto yy47;
6776
824
    }
6777
1.50k
    if (yych == '\\') goto yy164;
6778
1.50k
yy526:
6779
1.50k
    YYDEBUG(526, *YYCURSOR);
6780
1.50k
    yyleng = YYCURSOR - SCNG(yy_text);
6781
1.50k
#line 1449 "Zend/zend_language_scanner.l"
6782
1.50k
    {
6783
1.50k
  RETURN_TOKEN_WITH_IDENT(T_THROW);
6784
1.50k
}
6785
0
#line 6786 "Zend/zend_language_scanner.c"
6786
1.82k
yy527:
6787
1.82k
    YYDEBUG(527, *YYCURSOR);
6788
1.82k
    yyaccept = 47;
6789
1.82k
    yych = *(YYMARKER = ++YYCURSOR);
6790
1.82k
    if (yybm[256+yych] & 128) {
6791
374
      goto yy47;
6792
374
    }
6793
1.44k
    if (yych == '\\') goto yy164;
6794
1.44k
yy528:
6795
1.44k
    YYDEBUG(528, *YYCURSOR);
6796
1.44k
    yyleng = YYCURSOR - SCNG(yy_text);
6797
1.44k
#line 1561 "Zend/zend_language_scanner.l"
6798
1.44k
    {
6799
1.44k
  RETURN_TOKEN_WITH_IDENT(T_TRAIT);
6800
1.44k
}
6801
0
#line 6802 "Zend/zend_language_scanner.c"
6802
3.14k
yy529:
6803
3.14k
    YYDEBUG(529, *YYCURSOR);
6804
3.14k
    yyaccept = 48;
6805
3.14k
    yych = *(YYMARKER = ++YYCURSOR);
6806
3.14k
    if (yybm[256+yych] & 128) {
6807
25
      goto yy47;
6808
25
    }
6809
3.12k
    if (yych == '\\') goto yy164;
6810
3.12k
yy530:
6811
3.12k
    YYDEBUG(530, *YYCURSOR);
6812
3.12k
    yyleng = YYCURSOR - SCNG(yy_text);
6813
3.12k
#line 1805 "Zend/zend_language_scanner.l"
6814
3.12k
    {
6815
3.12k
  RETURN_TOKEN_WITH_IDENT(T_UNSET);
6816
3.12k
}
6817
0
#line 6818 "Zend/zend_language_scanner.c"
6818
946
yy531:
6819
946
    YYDEBUG(531, *YYCURSOR);
6820
946
    yyaccept = 49;
6821
946
    yych = *(YYMARKER = ++YYCURSOR);
6822
946
    if (yybm[256+yych] & 128) {
6823
3
      goto yy47;
6824
3
    }
6825
943
    if (yych == '\\') goto yy164;
6826
940
yy532:
6827
940
    YYDEBUG(532, *YYCURSOR);
6828
940
    yyleng = YYCURSOR - SCNG(yy_text);
6829
940
#line 1469 "Zend/zend_language_scanner.l"
6830
940
    {
6831
940
  RETURN_TOKEN_WITH_IDENT(T_WHILE);
6832
940
}
6833
0
#line 6834 "Zend/zend_language_scanner.c"
6834
8.46k
yy533:
6835
8.46k
    YYDEBUG(533, *YYCURSOR);
6836
8.46k
    yyaccept = 50;
6837
8.46k
    yych = *(YYMARKER = ++YYCURSOR);
6838
8.46k
    if (yybm[256+yych] & 128) {
6839
41
      goto yy47;
6840
41
    }
6841
8.42k
    if (yych <= ' ') {
6842
3.30k
      if (yych <= '\f') {
6843
966
        if (yych <= 0x08) goto yy534;
6844
673
        if (yych <= '\n') goto yy616;
6845
2.34k
      } else {
6846
2.34k
        if (yych <= '\r') goto yy616;
6847
2.29k
        if (yych >= ' ') goto yy616;
6848
2.29k
      }
6849
5.11k
    } else {
6850
5.11k
      if (yych <= '.') {
6851
4.57k
        if (yych == '#') goto yy618;
6852
4.57k
      } else {
6853
543
        if (yych <= '/') goto yy619;
6854
536
        if (yych == '\\') goto yy164;
6855
536
      }
6856
5.11k
    }
6857
6.72k
yy534:
6858
6.72k
    YYDEBUG(534, *YYCURSOR);
6859
6.72k
    yyleng = YYCURSOR - SCNG(yy_text);
6860
6.72k
#line 1433 "Zend/zend_language_scanner.l"
6861
6.72k
    {
6862
6.72k
  RETURN_TOKEN_WITH_IDENT(T_YIELD);
6863
6.72k
}
6864
0
#line 6865 "Zend/zend_language_scanner.c"
6865
434
yy535:
6866
434
    YYDEBUG(535, *YYCURSOR);
6867
434
    yyaccept = 4;
6868
434
    yych = *(YYMARKER = ++YYCURSOR);
6869
434
    if (yych == 'S') goto yy620;
6870
53
    if (yych == 's') goto yy620;
6871
11
    goto yy48;
6872
1.10k
yy536:
6873
1.10k
    YYDEBUG(536, *YYCURSOR);
6874
1.10k
    yyaccept = 4;
6875
1.10k
    yych = *(YYMARKER = ++YYCURSOR);
6876
1.10k
    if (yych == '_') goto yy621;
6877
108
    goto yy48;
6878
1.80k
yy537:
6879
1.80k
    YYDEBUG(537, *YYCURSOR);
6880
1.80k
    yyaccept = 4;
6881
1.80k
    yych = *(YYMARKER = ++YYCURSOR);
6882
1.80k
    if (yych == 'E') goto yy622;
6883
14
    if (yych == 'e') goto yy622;
6884
0
    goto yy48;
6885
803
yy538:
6886
803
    YYDEBUG(538, *YYCURSOR);
6887
803
    yyaccept = 4;
6888
803
    yych = *(YYMARKER = ++YYCURSOR);
6889
803
    if (yych == 'C') goto yy623;
6890
67
    if (yych == 'c') goto yy623;
6891
65
    goto yy48;
6892
185
yy539:
6893
185
    YYDEBUG(539, *YYCURSOR);
6894
185
    yyaccept = 4;
6895
185
    yych = *(YYMARKER = ++YYCURSOR);
6896
185
    if (yych == 'T') goto yy624;
6897
162
    if (yych == 't') goto yy624;
6898
12
    goto yy48;
6899
77
yy540:
6900
77
    YYDEBUG(540, *YYCURSOR);
6901
77
    yyaccept = 4;
6902
77
    yych = *(YYMARKER = ++YYCURSOR);
6903
77
    if (yych == 'E') goto yy625;
6904
10
    if (yych == 'e') goto yy625;
6905
8
    goto yy48;
6906
3.35k
yy541:
6907
3.35k
    YYDEBUG(541, *YYCURSOR);
6908
3.35k
    yyaccept = 4;
6909
3.35k
    yych = *(YYMARKER = ++YYCURSOR);
6910
3.35k
    if (yych == 'H') goto yy626;
6911
104
    if (yych == 'h') goto yy626;
6912
90
    goto yy48;
6913
846
yy542:
6914
846
    YYDEBUG(542, *YYCURSOR);
6915
846
    yyaccept = 4;
6916
846
    yych = *(YYMARKER = ++YYCURSOR);
6917
846
    if (yych == 'E') goto yy627;
6918
340
    if (yych == 'e') goto yy627;
6919
297
    goto yy48;
6920
297
yy543:
6921
201
    YYDEBUG(543, *YYCURSOR);
6922
201
    yyaccept = 4;
6923
201
    yych = *(YYMARKER = ++YYCURSOR);
6924
201
    if (yych == 'P') goto yy628;
6925
45
    if (yych == 'p') goto yy628;
6926
0
    goto yy48;
6927
98
yy544:
6928
98
    YYDEBUG(544, *YYCURSOR);
6929
98
    yyaccept = 4;
6930
98
    yych = *(YYMARKER = ++YYCURSOR);
6931
98
    if (yych == 'I') goto yy629;
6932
24
    if (yych == 'i') goto yy629;
6933
24
    goto yy48;
6934
14.6k
yy545:
6935
14.6k
    YYDEBUG(545, *YYCURSOR);
6936
14.6k
    ++YYCURSOR;
6937
14.6k
    YYFILL(1);
6938
14.6k
    yych = *YYCURSOR;
6939
14.6k
    YYDEBUG(546, *YYCURSOR);
6940
14.6k
    if (yybm[0+yych] & 64) {
6941
0
      goto yy355;
6942
0
    }
6943
14.6k
    if (yych <= ' ') {
6944
3.47k
      if (yych <= '\n') {
6945
585
        if (yych <= 0x00) goto yy86;
6946
111
        if (yych <= 0x08) goto yy230;
6947
12
        goto yy545;
6948
2.88k
      } else {
6949
2.88k
        if (yych == '\r') goto yy545;
6950
2.36k
        if (yych <= 0x1F) goto yy230;
6951
2.36k
        goto yy545;
6952
2.36k
      }
6953
11.1k
    } else {
6954
11.1k
      if (yych <= '$') {
6955
8.43k
        if (yych <= '"') goto yy230;
6956
8.42k
        if (yych <= '#') goto yy630;
6957
54
        goto yy631;
6958
8.42k
      } else {
6959
2.69k
        if (yych <= '-') goto yy230;
6960
2.20k
        if (yych <= '.') goto yy632;
6961
2.20k
        if (yych <= '/') goto yy633;
6962
652
        goto yy230;
6963
2.20k
      }
6964
11.1k
    }
6965
2.40k
yy547:
6966
2.40k
    YYDEBUG(547, *YYCURSOR);
6967
2.40k
    ++YYCURSOR;
6968
2.40k
    YYFILL(1);
6969
2.40k
    yych = *YYCURSOR;
6970
2.40k
    YYDEBUG(548, *YYCURSOR);
6971
2.40k
    if (yych <= '\r') {
6972
81
      if (yych <= '\t') {
6973
9
        if (yych <= 0x00) goto yy86;
6974
0
        goto yy443;
6975
72
      } else {
6976
72
        if (yych <= '\n') goto yy545;
6977
54
        if (yych <= '\f') goto yy443;
6978
54
        goto yy545;
6979
54
      }
6980
2.31k
    } else {
6981
2.31k
      if (yych <= '*') {
6982
462
        if (yych <= ')') goto yy443;
6983
0
        goto yy547;
6984
1.85k
      } else {
6985
1.85k
        if (yych == '/') goto yy227;
6986
264
        goto yy443;
6987
1.85k
      }
6988
2.31k
    }
6989
5.63k
yy549:
6990
5.63k
    YYDEBUG(549, *YYCURSOR);
6991
5.63k
    ++YYCURSOR;
6992
5.63k
    YYFILL(1);
6993
5.63k
    yych = *YYCURSOR;
6994
5.63k
    YYDEBUG(550, *YYCURSOR);
6995
5.63k
    if (yych <= 0x1F) {
6996
0
      if (yych == '\t') goto yy549;
6997
0
      goto yy86;
6998
5.63k
    } else {
6999
5.63k
      if (yych <= ' ') goto yy549;
7000
3.34k
      if (yych == ')') goto yy634;
7001
3.08k
      goto yy86;
7002
3.34k
    }
7003
16
yy551:
7004
16
    YYDEBUG(551, *YYCURSOR);
7005
16
    yych = *++YYCURSOR;
7006
16
    if (yych == 'Y') goto yy636;
7007
7
    if (yych == 'y') goto yy636;
7008
3
    goto yy86;
7009
53
yy552:
7010
53
    YYDEBUG(552, *YYCURSOR);
7011
53
    ++YYCURSOR;
7012
53
    YYFILL(1);
7013
53
    yych = *YYCURSOR;
7014
152
yy553:
7015
152
    YYDEBUG(553, *YYCURSOR);
7016
152
    if (yych <= 0x1F) {
7017
0
      if (yych == '\t') goto yy552;
7018
0
      goto yy86;
7019
152
    } else {
7020
152
      if (yych <= ' ') goto yy552;
7021
99
      if (yych != ')') goto yy86;
7022
99
    }
7023
41
    YYDEBUG(554, *YYCURSOR);
7024
41
    ++YYCURSOR;
7025
41
    YYDEBUG(555, *YYCURSOR);
7026
41
    yyleng = YYCURSOR - SCNG(yy_text);
7027
41
#line 1695 "Zend/zend_language_scanner.l"
7028
41
    {
7029
41
  RETURN_TOKEN(T_BOOL_CAST);
7030
41
}
7031
0
#line 7032 "Zend/zend_language_scanner.c"
7032
17
yy556:
7033
17
    YYDEBUG(556, *YYCURSOR);
7034
17
    yych = *++YYCURSOR;
7035
17
    if (yych == 'A') goto yy638;
7036
17
    if (yych == 'a') goto yy638;
7037
0
    goto yy86;
7038
22
yy557:
7039
22
    YYDEBUG(557, *YYCURSOR);
7040
22
    yych = *++YYCURSOR;
7041
22
    if (yych == 'E') goto yy639;
7042
19
    if (yych == 'e') goto yy639;
7043
3
    goto yy86;
7044
183
yy558:
7045
183
    YYDEBUG(558, *YYCURSOR);
7046
183
    ++YYCURSOR;
7047
183
    YYFILL(1);
7048
183
    yych = *YYCURSOR;
7049
183
    YYDEBUG(559, *YYCURSOR);
7050
183
    if (yych <= 0x1F) {
7051
3
      if (yych == '\t') goto yy558;
7052
3
      goto yy86;
7053
180
    } else {
7054
180
      if (yych <= ' ') goto yy558;
7055
121
      if (yych == ')') goto yy641;
7056
62
      goto yy86;
7057
121
    }
7058
33
yy560:
7059
33
    YYDEBUG(560, *YYCURSOR);
7060
33
    yych = *++YYCURSOR;
7061
33
    if (yych == 'E') goto yy643;
7062
33
    if (yych == 'e') goto yy643;
7063
3
    goto yy86;
7064
422
yy561:
7065
422
    YYDEBUG(561, *YYCURSOR);
7066
422
    yych = *++YYCURSOR;
7067
422
    if (yych == 'T') goto yy644;
7068
419
    if (yych == 't') goto yy644;
7069
24
    goto yy86;
7070
24
yy562:
7071
6
    YYDEBUG(562, *YYCURSOR);
7072
6
    ++YYCURSOR;
7073
6
    YYDEBUG(563, *YYCURSOR);
7074
6
    yyleng = YYCURSOR - SCNG(yy_text);
7075
6
#line 1665 "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.91k
yy564:
7085
3.91k
    YYDEBUG(564, *YYCURSOR);
7086
3.91k
    yych = *++YYCURSOR;
7087
3.91k
    if (yych == 'G') goto yy646;
7088
3.91k
    if (yych == 'g') goto yy646;
7089
15
    goto yy86;
7090
150
yy565:
7091
150
    YYDEBUG(565, *YYCURSOR);
7092
150
    ++YYCURSOR;
7093
150
    YYFILL(1);
7094
150
    yych = *YYCURSOR;
7095
150
    YYDEBUG(566, *YYCURSOR);
7096
150
    if (yych <= 0x1F) {
7097
0
      if (yych == '\t') goto yy565;
7098
0
      goto yy86;
7099
150
    } else {
7100
150
      if (yych <= ' ') goto yy565;
7101
150
      if (yych == ')') goto yy648;
7102
3
      goto yy86;
7103
150
    }
7104
62
yy567:
7105
62
    YYDEBUG(567, *YYCURSOR);
7106
62
    ++YYCURSOR;
7107
62
    YYDEBUG(568, *YYCURSOR);
7108
62
    yyleng = YYCURSOR - SCNG(yy_text);
7109
62
#line 1713 "Zend/zend_language_scanner.l"
7110
62
    {
7111
62
  RETURN_TOKEN(T_VOID_CAST);
7112
62
}
7113
0
#line 7114 "Zend/zend_language_scanner.c"
7114
2.08k
yy569:
7115
2.08k
    YYDEBUG(569, *YYCURSOR);
7116
2.08k
    yych = *++YYCURSOR;
7117
2.08k
    if (yych == '\n') goto yy466;
7118
210
    if (yych == '\r') goto yy468;
7119
210
    goto yy86;
7120
1.04k
yy570:
7121
1.04k
    YYDEBUG(570, *YYCURSOR);
7122
1.04k
    yyaccept = 4;
7123
1.04k
    yych = *(YYMARKER = ++YYCURSOR);
7124
1.04k
    if (yych == 'C') goto yy650;
7125
1.02k
    if (yych == 'c') goto yy650;
7126
18
    goto yy48;
7127
1.33k
yy571:
7128
1.33k
    YYDEBUG(571, *YYCURSOR);
7129
1.33k
    yyaccept = 4;
7130
1.33k
    yych = *(YYMARKER = ++YYCURSOR);
7131
1.33k
    if (yych == 'L') goto yy651;
7132
1.32k
    if (yych == 'l') goto yy651;
7133
3
    goto yy48;
7134
339
yy572:
7135
339
    YYDEBUG(572, *YYCURSOR);
7136
339
    yyaccept = 4;
7137
339
    yych = *(YYMARKER = ++YYCURSOR);
7138
339
    if (yych == 'U') goto yy652;
7139
207
    if (yych == 'u') goto yy652;
7140
3
    goto yy48;
7141
381
yy573:
7142
381
    YYDEBUG(573, *YYCURSOR);
7143
381
    yyaccept = 4;
7144
381
    yych = *(YYMARKER = ++YYCURSOR);
7145
381
    if (yych == 'E') goto yy653;
7146
361
    if (yych == 'e') goto yy653;
7147
5
    goto yy48;
7148
391
yy574:
7149
391
    YYDEBUG(574, *YYCURSOR);
7150
391
    yyaccept = 4;
7151
391
    yych = *(YYMARKER = ++YYCURSOR);
7152
391
    if (yych == 'T') goto yy655;
7153
381
    if (yych == 't') goto yy655;
7154
8
    goto yy48;
7155
182
yy575:
7156
182
    YYDEBUG(575, *YYCURSOR);
7157
182
    yyaccept = 51;
7158
182
    yych = *(YYMARKER = ++YYCURSOR);
7159
182
    if (yybm[256+yych] & 128) {
7160
3
      goto yy47;
7161
3
    }
7162
179
    if (yych == '\\') goto yy164;
7163
179
yy576:
7164
179
    YYDEBUG(576, *YYCURSOR);
7165
179
    yyleng = YYCURSOR - SCNG(yy_text);
7166
179
#line 1457 "Zend/zend_language_scanner.l"
7167
179
    {
7168
179
  RETURN_TOKEN_WITH_IDENT(T_ELSEIF);
7169
179
}
7170
0
#line 7171 "Zend/zend_language_scanner.c"
7171
135
yy577:
7172
135
    YYDEBUG(577, *YYCURSOR);
7173
135
    yyaccept = 4;
7174
135
    yych = *(YYMARKER = ++YYCURSOR);
7175
135
    if (yych == 'L') goto yy657;
7176
47
    if (yych == 'l') goto yy657;
7177
0
    goto yy48;
7178
2.33k
yy578:
7179
2.33k
    YYDEBUG(578, *YYCURSOR);
7180
2.33k
    yyaccept = 52;
7181
2.33k
    yych = *(YYMARKER = ++YYCURSOR);
7182
2.33k
    if (yych <= '\\') {
7183
1.14k
      if (yych <= 'D') {
7184
406
        if (yych <= '/') goto yy579;
7185
144
        if (yych <= '9') goto yy47;
7186
144
        if (yych >= 'A') goto yy47;
7187
742
      } else {
7188
742
        if (yych <= 'E') goto yy658;
7189
0
        if (yych <= 'Z') goto yy47;
7190
0
        if (yych >= '\\') goto yy164;
7191
0
      }
7192
1.19k
    } else {
7193
1.19k
      if (yych <= 'd') {
7194
0
        if (yych == '_') goto yy47;
7195
0
        if (yych >= 'a') goto yy47;
7196
1.19k
      } else {
7197
1.19k
        if (yych <= 'e') goto yy658;
7198
36
        if (yych <= 'z') goto yy47;
7199
36
        if (yych >= 0x80) goto yy47;
7200
36
      }
7201
1.19k
    }
7202
376
yy579:
7203
376
    YYDEBUG(579, *YYCURSOR);
7204
376
    yyleng = YYCURSOR - SCNG(yy_text);
7205
376
#line 1485 "Zend/zend_language_scanner.l"
7206
376
    {
7207
376
  RETURN_TOKEN_WITH_IDENT(T_ENDFOR);
7208
376
}
7209
0
#line 7210 "Zend/zend_language_scanner.c"
7210
277
yy580:
7211
277
    YYDEBUG(580, *YYCURSOR);
7212
277
    yyaccept = 4;
7213
277
    yych = *(YYMARKER = ++YYCURSOR);
7214
277
    if (yych == 'T') goto yy659;
7215
267
    if (yych == 't') goto yy659;
7216
54
    goto yy48;
7217
2.09k
yy581:
7218
2.09k
    YYDEBUG(581, *YYCURSOR);
7219
2.09k
    yyaccept = 4;
7220
2.09k
    yych = *(YYMARKER = ++YYCURSOR);
7221
2.09k
    if (yych == 'L') goto yy660;
7222
2.03k
    if (yych == 'l') goto yy660;
7223
2
    goto yy48;
7224
5.42k
yy582:
7225
5.42k
    YYDEBUG(582, *YYCURSOR);
7226
5.42k
    ++YYCURSOR;
7227
24.3k
yy583:
7228
24.3k
    YYDEBUG(583, *YYCURSOR);
7229
24.3k
    yyleng = YYCURSOR - SCNG(yy_text);
7230
24.3k
#line 1573 "Zend/zend_language_scanner.l"
7231
24.3k
    {
7232
24.3k
  yyless(4);
7233
24.3k
  RETURN_TOKEN_WITH_IDENT(T_ENUM);
7234
24.3k
}
7235
0
#line 7236 "Zend/zend_language_scanner.c"
7236
1.07k
yy584:
7237
1.07k
    YYDEBUG(584, *YYCURSOR);
7238
1.07k
    yyaccept = 53;
7239
1.07k
    yych = *(YYMARKER = ++YYCURSOR);
7240
1.07k
    if (yych == 'X') goto yy661;
7241
1.07k
    if (yych == 'x') goto yy661;
7242
1.00k
    goto yy583;
7243
1.00k
yy585:
7244
882
    YYDEBUG(585, *YYCURSOR);
7245
882
    yyaccept = 53;
7246
882
    yych = *(YYMARKER = ++YYCURSOR);
7247
882
    if (yych == 'M') goto yy662;
7248
873
    if (yych == 'm') goto yy662;
7249
244
    goto yy583;
7250
736k
yy586:
7251
736k
    YYDEBUG(586, *YYCURSOR);
7252
736k
    ++YYCURSOR;
7253
736k
    YYFILL(1);
7254
736k
    yych = *YYCURSOR;
7255
736k
    YYDEBUG(587, *YYCURSOR);
7256
736k
    if (yych <= '\n') {
7257
35.0k
      if (yych <= 0x00) goto yy86;
7258
32.2k
      if (yych <= '\t') goto yy586;
7259
24.0k
      goto yy495;
7260
701k
    } else {
7261
701k
      if (yych == '\r') goto yy495;
7262
671k
      goto yy586;
7263
701k
    }
7264
96.9k
yy588:
7265
96.9k
    YYDEBUG(588, *YYCURSOR);
7266
96.9k
    ++YYCURSOR;
7267
96.9k
    YYFILL(1);
7268
96.9k
    yych = *YYCURSOR;
7269
96.9k
    YYDEBUG(589, *YYCURSOR);
7270
96.9k
    if (yych <= 'D') {
7271
58.5k
      if (yych <= 0x1F) {
7272
2.30k
        if (yych <= '\t') {
7273
352
          if (yych <= 0x00) goto yy86;
7274
46
          if (yych <= 0x08) goto yy586;
7275
12
          goto yy588;
7276
1.95k
        } else {
7277
1.95k
          if (yych <= '\n') goto yy495;
7278
757
          if (yych == '\r') goto yy495;
7279
75
          goto yy586;
7280
757
        }
7281
56.2k
      } else {
7282
56.2k
        if (yych <= '#') {
7283
25.3k
          if (yych <= ' ') goto yy588;
7284
16.7k
          if (yych <= '"') goto yy586;
7285
16.6k
          goto yy663;
7286
30.8k
        } else {
7287
30.8k
          if (yych == '/') goto yy664;
7288
3.30k
          if (yych <= '@') goto yy586;
7289
18
          goto yy665;
7290
3.30k
        }
7291
56.2k
      }
7292
58.5k
    } else {
7293
38.4k
      if (yych <= '`') {
7294
569
        if (yych <= 'I') {
7295
396
          if (yych <= 'E') goto yy666;
7296
363
          if (yych <= 'H') goto yy665;
7297
258
          goto yy667;
7298
363
        } else {
7299
173
          if (yych <= 'Z') goto yy665;
7300
122
          if (yych == '_') goto yy665;
7301
107
          goto yy586;
7302
122
        }
7303
37.8k
      } else {
7304
37.8k
        if (yych <= 'h') {
7305
13.7k
          if (yych == 'e') goto yy666;
7306
1.25k
          goto yy665;
7307
24.1k
        } else {
7308
24.1k
          if (yych <= 'i') goto yy667;
7309
13.5k
          if (yych <= 'z') goto yy665;
7310
7.06k
          if (yych <= 0x7F) goto yy586;
7311
402
          goto yy665;
7312
7.06k
        }
7313
37.8k
      }
7314
38.4k
    }
7315
838k
yy590:
7316
838k
    YYDEBUG(590, *YYCURSOR);
7317
838k
    ++YYCURSOR;
7318
838k
    YYFILL(1);
7319
838k
    yych = *YYCURSOR;
7320
838k
    YYDEBUG(591, *YYCURSOR);
7321
838k
    if (yych <= 0x00) goto yy86;
7322
831k
    if (yych == '*') goto yy668;
7323
819k
    goto yy590;
7324
819k
yy592:
7325
4.27k
    YYDEBUG(592, *YYCURSOR);
7326
4.27k
    yyaccept = 4;
7327
4.27k
    yych = *(YYMARKER = ++YYCURSOR);
7328
4.27k
    if (yych == 'S') goto yy670;
7329
4.25k
    if (yych == 's') goto yy670;
7330
56
    goto yy48;
7331
636
yy593:
7332
636
    YYDEBUG(593, *YYCURSOR);
7333
636
    yyaccept = 4;
7334
636
    yych = *(YYMARKER = ++YYCURSOR);
7335
636
    if (yych == 'Y') goto yy672;
7336
626
    if (yych == 'y') goto yy672;
7337
7
    goto yy48;
7338
7.96k
yy594:
7339
7.96k
    YYDEBUG(594, *YYCURSOR);
7340
7.96k
    yyaccept = 4;
7341
7.96k
    yych = *(YYMARKER = ++YYCURSOR);
7342
7.96k
    if (yych == 'H') goto yy674;
7343
7.95k
    if (yych == 'h') goto yy674;
7344
153
    goto yy48;
7345
37.6k
yy595:
7346
37.6k
    YYDEBUG(595, *YYCURSOR);
7347
37.6k
    yyaccept = 4;
7348
37.6k
    yych = *(YYMARKER = ++YYCURSOR);
7349
37.6k
    if (yych == 'O') goto yy676;
7350
37.3k
    if (yych == 'o') goto yy676;
7351
1.15k
    goto yy48;
7352
1.15k
yy596:
7353
745
    YYDEBUG(596, *YYCURSOR);
7354
745
    yyaccept = 54;
7355
745
    yych = *(YYMARKER = ++YYCURSOR);
7356
745
    if (yybm[256+yych] & 128) {
7357
43
      goto yy47;
7358
43
    }
7359
702
    if (yych == '\\') goto yy164;
7360
702
yy597:
7361
702
    YYDEBUG(597, *YYCURSOR);
7362
702
    yyleng = YYCURSOR - SCNG(yy_text);
7363
702
#line 1749 "Zend/zend_language_scanner.l"
7364
702
    {
7365
702
  RETURN_TOKEN_WITH_IDENT(T_GLOBAL);
7366
702
}
7367
0
#line 7368 "Zend/zend_language_scanner.c"
7368
3.03k
yy598:
7369
3.03k
    YYDEBUG(598, *YYCURSOR);
7370
3.03k
    yyaccept = 4;
7371
3.03k
    yych = *(YYMARKER = ++YYCURSOR);
7372
3.03k
    if (yych == 'E') goto yy677;
7373
2.05k
    if (yych == 'e') goto yy677;
7374
457
    goto yy48;
7375
814
yy599:
7376
814
    YYDEBUG(599, *YYCURSOR);
7377
814
    yyaccept = 4;
7378
814
    yych = *(YYMARKER = ++YYCURSOR);
7379
814
    if (yych == 'E') goto yy678;
7380
734
    if (yych == 'e') goto yy678;
7381
2
    goto yy48;
7382
791
yy600:
7383
791
    YYDEBUG(600, *YYCURSOR);
7384
791
    yyaccept = 4;
7385
791
    yych = *(YYMARKER = ++YYCURSOR);
7386
791
    if (yych == 'C') goto yy680;
7387
488
    if (yych == 'c') goto yy680;
7388
33
    goto yy48;
7389
600
yy601:
7390
600
    YYDEBUG(601, *YYCURSOR);
7391
600
    yyaccept = 4;
7392
600
    yych = *(YYMARKER = ++YYCURSOR);
7393
600
    if (yych == 'D') goto yy681;
7394
413
    if (yych == 'd') goto yy681;
7395
6
    goto yy48;
7396
1.48k
yy602:
7397
1.48k
    YYDEBUG(602, *YYCURSOR);
7398
1.48k
    yyaccept = 4;
7399
1.48k
    yych = *(YYMARKER = ++YYCURSOR);
7400
1.48k
    if (yych == 'A') goto yy682;
7401
1.42k
    if (yych == 'a') goto yy682;
7402
99
    goto yy48;
7403
3.16k
yy603:
7404
3.16k
    YYDEBUG(603, *YYCURSOR);
7405
3.16k
    yyaccept = 4;
7406
3.16k
    yych = *(YYMARKER = ++YYCURSOR);
7407
3.16k
    if (yych == 'A') goto yy683;
7408
2.55k
    if (yych == 'a') goto yy683;
7409
50
    goto yy48;
7410
2.71k
yy604:
7411
2.71k
    YYDEBUG(604, *YYCURSOR);
7412
2.71k
    yyaccept = 4;
7413
2.71k
    yych = *(YYMARKER = ++YYCURSOR);
7414
2.71k
    if (yych == 'E') goto yy684;
7415
2.57k
    if (yych == 'e') goto yy684;
7416
0
    goto yy48;
7417
2.57k
yy605:
7418
2.57k
    YYDEBUG(605, *YYCURSOR);
7419
2.57k
    yyaccept = 4;
7420
2.57k
    yych = *(YYMARKER = ++YYCURSOR);
7421
2.57k
    if (yych == 'T') goto yy686;
7422
2.52k
    if (yych == 't') goto yy686;
7423
87
    goto yy48;
7424
22.4k
yy606:
7425
22.4k
    YYDEBUG(606, *YYCURSOR);
7426
22.4k
    yyaccept = 55;
7427
22.4k
    yych = *(YYMARKER = ++YYCURSOR);
7428
22.4k
    if (yybm[256+yych] & 128) {
7429
648
      goto yy47;
7430
648
    }
7431
21.7k
    if (yych == '(') goto yy687;
7432
21.6k
    if (yych == '\\') goto yy164;
7433
21.7k
yy607:
7434
21.7k
    YYDEBUG(607, *YYCURSOR);
7435
21.7k
    yyleng = YYCURSOR - SCNG(yy_text);
7436
21.7k
#line 1797 "Zend/zend_language_scanner.l"
7437
21.7k
    {
7438
21.7k
  RETURN_TOKEN_WITH_IDENT(T_PUBLIC);
7439
21.7k
}
7440
0
#line 7441 "Zend/zend_language_scanner.c"
7441
494
yy608:
7442
494
    YYDEBUG(608, *YYCURSOR);
7443
494
    yyaccept = 4;
7444
494
    yych = *(YYMARKER = ++YYCURSOR);
7445
494
    if (yych == 'L') goto yy688;
7446
494
    if (yych == 'l') goto yy688;
7447
5
    goto yy48;
7448
5.64k
yy609:
7449
5.64k
    YYDEBUG(609, *YYCURSOR);
7450
5.64k
    yyaccept = 4;
7451
5.64k
    yych = *(YYMARKER = ++YYCURSOR);
7452
5.64k
    if (yych == 'E') goto yy689;
7453
5.59k
    if (yych == 'e') goto yy689;
7454
3
    goto yy48;
7455
9.94k
yy610:
7456
9.94k
    YYDEBUG(610, *YYCURSOR);
7457
9.94k
    yyaccept = 56;
7458
9.94k
    yych = *(YYMARKER = ++YYCURSOR);
7459
9.94k
    if (yybm[256+yych] & 128) {
7460
465
      goto yy47;
7461
465
    }
7462
9.47k
    if (yych == '\\') goto yy164;
7463
9.47k
yy611:
7464
9.47k
    YYDEBUG(611, *YYCURSOR);
7465
9.47k
    yyleng = YYCURSOR - SCNG(yy_text);
7466
9.47k
#line 1418 "Zend/zend_language_scanner.l"
7467
9.47k
    {
7468
9.47k
  RETURN_TOKEN_WITH_IDENT(T_RETURN);
7469
9.47k
}
7470
0
#line 7471 "Zend/zend_language_scanner.c"
7471
5.57k
yy612:
7472
5.57k
    YYDEBUG(612, *YYCURSOR);
7473
5.57k
    yyaccept = 57;
7474
5.57k
    yych = *(YYMARKER = ++YYCURSOR);
7475
5.57k
    if (yybm[256+yych] & 128) {
7476
108
      goto yy47;
7477
108
    }
7478
5.46k
    if (yych == '\\') goto yy164;
7479
5.46k
yy613:
7480
5.46k
    YYDEBUG(613, *YYCURSOR);
7481
5.46k
    yyleng = YYCURSOR - SCNG(yy_text);
7482
5.46k
#line 1765 "Zend/zend_language_scanner.l"
7483
5.46k
    {
7484
5.46k
  RETURN_TOKEN_WITH_IDENT(T_STATIC);
7485
5.46k
}
7486
0
#line 7487 "Zend/zend_language_scanner.c"
7487
1.68k
yy614:
7488
1.68k
    YYDEBUG(614, *YYCURSOR);
7489
1.68k
    yyaccept = 58;
7490
1.68k
    yych = *(YYMARKER = ++YYCURSOR);
7491
1.68k
    if (yybm[256+yych] & 128) {
7492
6
      goto yy47;
7493
6
    }
7494
1.67k
    if (yych == '\\') goto yy164;
7495
1.67k
yy615:
7496
1.67k
    YYDEBUG(615, *YYCURSOR);
7497
1.67k
    yyleng = YYCURSOR - SCNG(yy_text);
7498
1.67k
#line 1513 "Zend/zend_language_scanner.l"
7499
1.67k
    {
7500
1.67k
  RETURN_TOKEN_WITH_IDENT(T_SWITCH);
7501
1.67k
}
7502
0
#line 7503 "Zend/zend_language_scanner.c"
7503
13.6k
yy616:
7504
13.6k
    YYDEBUG(616, *YYCURSOR);
7505
13.6k
    ++YYCURSOR;
7506
13.6k
    YYFILL(5);
7507
13.6k
    yych = *YYCURSOR;
7508
13.6k
    YYDEBUG(617, *YYCURSOR);
7509
13.6k
    if (yych <= '"') {
7510
2.28k
      if (yych <= '\f') {
7511
913
        if (yych <= 0x08) goto yy86;
7512
814
        if (yych <= '\n') goto yy616;
7513
273
        goto yy86;
7514
1.37k
      } else {
7515
1.37k
        if (yych <= '\r') goto yy616;
7516
588
        if (yych == ' ') goto yy616;
7517
348
        goto yy86;
7518
588
      }
7519
11.3k
    } else {
7520
11.3k
      if (yych <= 'E') {
7521
9.59k
        if (yych <= '#') goto yy618;
7522
1.79k
        if (yych == '/') goto yy619;
7523
1.48k
        goto yy86;
7524
1.79k
      } else {
7525
1.73k
        if (yych <= 'F') goto yy691;
7526
1.55k
        if (yych == 'f') goto yy691;
7527
628
        goto yy86;
7528
1.55k
      }
7529
11.3k
    }
7530
12.1k
yy618:
7531
12.1k
    YYDEBUG(618, *YYCURSOR);
7532
12.1k
    ++YYCURSOR;
7533
12.1k
    YYFILL(1);
7534
12.1k
    yych = *YYCURSOR;
7535
12.1k
    if (yych <= '\f') {
7536
4.85k
      if (yych <= 0x00) goto yy86;
7537
4.78k
      if (yych == '\n') goto yy694;
7538
63
      goto yy692;
7539
7.31k
    } else {
7540
7.31k
      if (yych <= '\r') goto yy694;
7541
3.72k
      if (yych == '[') goto yy86;
7542
3.72k
      goto yy692;
7543
3.72k
    }
7544
316
yy619:
7545
316
    YYDEBUG(619, *YYCURSOR);
7546
316
    ++YYCURSOR;
7547
316
    YYFILL(1);
7548
316
    yych = *YYCURSOR;
7549
316
    if (yych == '*') goto yy696;
7550
67
    if (yych == '/') goto yy692;
7551
37
    goto yy86;
7552
423
yy620:
7553
423
    YYDEBUG(620, *YYCURSOR);
7554
423
    yyaccept = 4;
7555
423
    yych = *(YYMARKER = ++YYCURSOR);
7556
423
    if (yych == 'S') goto yy698;
7557
54
    if (yych == 's') goto yy698;
7558
12
    goto yy48;
7559
997
yy621:
7560
997
    YYDEBUG(621, *YYCURSOR);
7561
997
    yyaccept = 4;
7562
997
    yych = *(YYMARKER = ++YYCURSOR);
7563
997
    if (yych == '_') goto yy699;
7564
345
    goto yy48;
7565
1.80k
yy622:
7566
1.80k
    YYDEBUG(622, *YYCURSOR);
7567
1.80k
    yyaccept = 4;
7568
1.80k
    yych = *(YYMARKER = ++YYCURSOR);
7569
1.80k
    if (yych == '_') goto yy701;
7570
3
    goto yy48;
7571
738
yy623:
7572
738
    YYDEBUG(623, *YYCURSOR);
7573
738
    yyaccept = 4;
7574
738
    yych = *(YYMARKER = ++YYCURSOR);
7575
738
    if (yych == 'T') goto yy702;
7576
7
    if (yych == 't') goto yy702;
7577
5
    goto yy48;
7578
173
yy624:
7579
173
    YYDEBUG(624, *YYCURSOR);
7580
173
    yyaccept = 4;
7581
173
    yych = *(YYMARKER = ++YYCURSOR);
7582
173
    if (yych == '_') goto yy703;
7583
0
    goto yy48;
7584
69
yy625:
7585
69
    YYDEBUG(625, *YYCURSOR);
7586
69
    yyaccept = 4;
7587
69
    yych = *(YYMARKER = ++YYCURSOR);
7588
69
    if (yych == '_') goto yy704;
7589
0
    goto yy48;
7590
3.26k
yy626:
7591
3.26k
    YYDEBUG(626, *YYCURSOR);
7592
3.26k
    yyaccept = 4;
7593
3.26k
    yych = *(YYMARKER = ++YYCURSOR);
7594
3.26k
    if (yych == 'O') goto yy705;
7595
20
    if (yych == 'o') goto yy705;
7596
6
    goto yy48;
7597
549
yy627:
7598
549
    YYDEBUG(627, *YYCURSOR);
7599
549
    yyaccept = 4;
7600
549
    yych = *(YYMARKER = ++YYCURSOR);
7601
549
    if (yych == 'S') goto yy706;
7602
340
    if (yych == 's') goto yy706;
7603
330
    goto yy48;
7604
330
yy628:
7605
201
    YYDEBUG(628, *YYCURSOR);
7606
201
    yyaccept = 4;
7607
201
    yych = *(YYMARKER = ++YYCURSOR);
7608
201
    if (yych == 'E') goto yy707;
7609
63
    if (yych == 'e') goto yy707;
7610
63
    goto yy48;
7611
74
yy629:
7612
74
    YYDEBUG(629, *YYCURSOR);
7613
74
    yyaccept = 4;
7614
74
    yych = *(YYMARKER = ++YYCURSOR);
7615
74
    if (yych == 'T') goto yy708;
7616
0
    if (yych == 't') goto yy708;
7617
0
    goto yy48;
7618
8.37k
yy630:
7619
8.37k
    YYDEBUG(630, *YYCURSOR);
7620
8.37k
    ++YYCURSOR;
7621
8.37k
    YYFILL(1);
7622
8.37k
    yych = *YYCURSOR;
7623
8.37k
    if (yych <= '\r') {
7624
7.50k
      if (yych <= '\t') {
7625
117
        if (yych <= 0x00) goto yy86;
7626
96
        goto yy443;
7627
7.38k
      } else {
7628
7.38k
        if (yych <= '\n') goto yy709;
7629
1.08k
        if (yych <= '\f') goto yy443;
7630
817
        goto yy709;
7631
1.08k
      }
7632
7.50k
    } else {
7633
867
      if (yych <= '*') {
7634
0
        if (yych <= ')') goto yy443;
7635
0
        goto yy547;
7636
867
      } else {
7637
867
        if (yych == '[') goto yy230;
7638
867
        goto yy443;
7639
867
      }
7640
867
    }
7641
54
yy631:
7642
54
    YYDEBUG(631, *YYCURSOR);
7643
54
    yyaccept = 26;
7644
54
    YYMARKER = ++YYCURSOR;
7645
54
    YYFILL(1);
7646
54
    yych = *YYCURSOR;
7647
54
    if (yybm[0+yych] & 4) {
7648
54
      goto yy230;
7649
54
    }
7650
0
    if (yych <= 0x00) goto yy89;
7651
0
    goto yy355;
7652
0
yy632:
7653
0
    YYDEBUG(632, *YYCURSOR);
7654
0
    ++YYCURSOR;
7655
0
    YYFILL(1);
7656
0
    yych = *YYCURSOR;
7657
0
    if (yybm[0+yych] & 64) {
7658
0
      goto yy355;
7659
0
    }
7660
0
    if (yych <= 0x00) goto yy86;
7661
0
    if (yych == '.') goto yy711;
7662
0
    goto yy230;
7663
1.55k
yy633:
7664
1.55k
    YYDEBUG(633, *YYCURSOR);
7665
1.55k
    ++YYCURSOR;
7666
1.55k
    YYFILL(1);
7667
1.55k
    yych = *YYCURSOR;
7668
1.55k
    if (yych <= '*') {
7669
1.49k
      if (yych <= 0x00) goto yy86;
7670
1.47k
      if (yych <= ')') goto yy230;
7671
1.43k
      goto yy712;
7672
1.47k
    } else {
7673
60
      if (yych == '/') goto yy443;
7674
48
      goto yy230;
7675
60
    }
7676
257
yy634:
7677
257
    YYDEBUG(634, *YYCURSOR);
7678
257
    ++YYCURSOR;
7679
257
    YYDEBUG(635, *YYCURSOR);
7680
257
    yyleng = YYCURSOR - SCNG(yy_text);
7681
257
#line 1687 "Zend/zend_language_scanner.l"
7682
257
    {
7683
257
  RETURN_TOKEN(T_ARRAY_CAST);
7684
257
}
7685
0
#line 7686 "Zend/zend_language_scanner.c"
7686
13
yy636:
7687
13
    YYDEBUG(636, *YYCURSOR);
7688
13
    ++YYCURSOR;
7689
13
    YYFILL(1);
7690
13
    yych = *YYCURSOR;
7691
13
    YYDEBUG(637, *YYCURSOR);
7692
13
    if (yych <= 0x1F) {
7693
0
      if (yych == '\t') goto yy636;
7694
0
      goto yy86;
7695
13
    } else {
7696
13
      if (yych <= ' ') goto yy636;
7697
13
      if (yych == ')') goto yy713;
7698
9
      goto yy86;
7699
13
    }
7700
17
yy638:
7701
17
    YYDEBUG(638, *YYCURSOR);
7702
17
    yych = *++YYCURSOR;
7703
17
    if (yych == 'N') goto yy715;
7704
17
    if (yych == 'n') goto yy715;
7705
3
    goto yy86;
7706
27
yy639:
7707
27
    YYDEBUG(639, *YYCURSOR);
7708
27
    ++YYCURSOR;
7709
27
    YYFILL(1);
7710
27
    yych = *YYCURSOR;
7711
27
    YYDEBUG(640, *YYCURSOR);
7712
27
    if (yych <= 0x1F) {
7713
3
      if (yych == '\t') goto yy639;
7714
3
      goto yy86;
7715
24
    } else {
7716
24
      if (yych <= ' ') goto yy639;
7717
16
      if (yych == ')') goto yy717;
7718
8
      goto yy86;
7719
16
    }
7720
59
yy641:
7721
59
    YYDEBUG(641, *YYCURSOR);
7722
59
    ++YYCURSOR;
7723
59
    YYDEBUG(642, *YYCURSOR);
7724
59
    yyleng = YYCURSOR - SCNG(yy_text);
7725
59
#line 1651 "Zend/zend_language_scanner.l"
7726
59
    {
7727
59
  RETURN_TOKEN(T_DOUBLE_CAST);
7728
59
}
7729
0
#line 7730 "Zend/zend_language_scanner.c"
7730
30
yy643:
7731
30
    YYDEBUG(643, *YYCURSOR);
7732
30
    yych = *++YYCURSOR;
7733
30
    if (yych == 'R') goto yy719;
7734
30
    if (yych == 'r') goto yy719;
7735
0
    goto yy86;
7736
441
yy644:
7737
441
    YYDEBUG(644, *YYCURSOR);
7738
441
    ++YYCURSOR;
7739
441
    YYFILL(1);
7740
441
    yych = *YYCURSOR;
7741
441
    YYDEBUG(645, *YYCURSOR);
7742
441
    if (yych <= 0x1F) {
7743
6
      if (yych == '\t') goto yy644;
7744
6
      goto yy86;
7745
435
    } else {
7746
435
      if (yych <= ' ') goto yy644;
7747
392
      if (yych == ')') goto yy721;
7748
63
      goto yy86;
7749
392
    }
7750
4.75k
yy646:
7751
4.75k
    YYDEBUG(646, *YYCURSOR);
7752
4.75k
    ++YYCURSOR;
7753
4.75k
    YYFILL(1);
7754
4.75k
    yych = *YYCURSOR;
7755
4.75k
    YYDEBUG(647, *YYCURSOR);
7756
4.75k
    if (yych <= 0x1F) {
7757
2.53k
      if (yych == '\t') goto yy646;
7758
2.53k
      goto yy86;
7759
2.53k
    } else {
7760
2.21k
      if (yych <= ' ') goto yy646;
7761
1.36k
      if (yych == ')') goto yy723;
7762
760
      goto yy86;
7763
1.36k
    }
7764
147
yy648:
7765
147
    YYDEBUG(648, *YYCURSOR);
7766
147
    ++YYCURSOR;
7767
147
    YYDEBUG(649, *YYCURSOR);
7768
147
    yyleng = YYCURSOR - SCNG(yy_text);
7769
147
#line 1709 "Zend/zend_language_scanner.l"
7770
147
    {
7771
147
  RETURN_TOKEN(T_UNSET_CAST);
7772
147
}
7773
0
#line 7774 "Zend/zend_language_scanner.c"
7774
1.02k
yy650:
7775
1.02k
    YYDEBUG(650, *YYCURSOR);
7776
1.02k
    yyaccept = 4;
7777
1.02k
    yych = *(YYMARKER = ++YYCURSOR);
7778
1.02k
    if (yych == 'T') goto yy725;
7779
1.00k
    if (yych == 't') goto yy725;
7780
9
    goto yy48;
7781
1.33k
yy651:
7782
1.33k
    YYDEBUG(651, *YYCURSOR);
7783
1.33k
    yyaccept = 4;
7784
1.33k
    yych = *(YYMARKER = ++YYCURSOR);
7785
1.33k
    if (yych == 'E') goto yy727;
7786
1.32k
    if (yych == 'e') goto yy727;
7787
3
    goto yy48;
7788
336
yy652:
7789
336
    YYDEBUG(652, *YYCURSOR);
7790
336
    yyaccept = 4;
7791
336
    yych = *(YYMARKER = ++YYCURSOR);
7792
336
    if (yych == 'E') goto yy729;
7793
207
    if (yych == 'e') goto yy729;
7794
3
    goto yy48;
7795
376
yy653:
7796
376
    YYDEBUG(653, *YYCURSOR);
7797
376
    yyaccept = 59;
7798
376
    yych = *(YYMARKER = ++YYCURSOR);
7799
376
    if (yybm[256+yych] & 128) {
7800
13
      goto yy47;
7801
13
    }
7802
363
    if (yych == '\\') goto yy164;
7803
363
yy654:
7804
363
    YYDEBUG(654, *YYCURSOR);
7805
363
    yyleng = YYCURSOR - SCNG(yy_text);
7806
363
#line 1497 "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
383
yy655:
7812
383
    YYDEBUG(655, *YYCURSOR);
7813
383
    yyaccept = 60;
7814
383
    yych = *(YYMARKER = ++YYCURSOR);
7815
383
    if (yybm[256+yych] & 128) {
7816
23
      goto yy47;
7817
23
    }
7818
360
    if (yych == '\\') goto yy164;
7819
360
yy656:
7820
360
    YYDEBUG(656, *YYCURSOR);
7821
360
    yyleng = YYCURSOR - SCNG(yy_text);
7822
360
#line 1529 "Zend/zend_language_scanner.l"
7823
360
    {
7824
360
  RETURN_TOKEN_WITH_IDENT(T_DEFAULT);
7825
360
}
7826
0
#line 7827 "Zend/zend_language_scanner.c"
7827
135
yy657:
7828
135
    YYDEBUG(657, *YYCURSOR);
7829
135
    yyaccept = 4;
7830
135
    yych = *(YYMARKER = ++YYCURSOR);
7831
135
    if (yych == 'A') goto yy731;
7832
47
    if (yych == 'a') goto yy731;
7833
0
    goto yy48;
7834
1.89k
yy658:
7835
1.89k
    YYDEBUG(658, *YYCURSOR);
7836
1.89k
    yyaccept = 4;
7837
1.89k
    yych = *(YYMARKER = ++YYCURSOR);
7838
1.89k
    if (yych == 'A') goto yy732;
7839
1.44k
    if (yych == 'a') goto yy732;
7840
291
    goto yy48;
7841
291
yy659:
7842
223
    YYDEBUG(659, *YYCURSOR);
7843
223
    yyaccept = 4;
7844
223
    yych = *(YYMARKER = ++YYCURSOR);
7845
223
    if (yych == 'C') goto yy733;
7846
213
    if (yych == 'c') goto yy733;
7847
9
    goto yy48;
7848
2.08k
yy660:
7849
2.08k
    YYDEBUG(660, *YYCURSOR);
7850
2.08k
    yyaccept = 4;
7851
2.08k
    yych = *(YYMARKER = ++YYCURSOR);
7852
2.08k
    if (yych == 'E') goto yy734;
7853
2.03k
    if (yych == 'e') goto yy734;
7854
3
    goto yy48;
7855
79
yy661:
7856
79
    YYDEBUG(661, *YYCURSOR);
7857
79
    yych = *++YYCURSOR;
7858
79
    if (yych == 'T') goto yy736;
7859
73
    if (yych == 't') goto yy736;
7860
44
    goto yy86;
7861
638
yy662:
7862
638
    YYDEBUG(662, *YYCURSOR);
7863
638
    yych = *++YYCURSOR;
7864
638
    if (yych == 'P') goto yy737;
7865
569
    if (yych == 'p') goto yy737;
7866
33
    goto yy86;
7867
16.6k
yy663:
7868
16.6k
    YYDEBUG(663, *YYCURSOR);
7869
16.6k
    ++YYCURSOR;
7870
16.6k
    YYFILL(1);
7871
16.6k
    yych = *YYCURSOR;
7872
16.6k
    if (yych <= '\n') {
7873
15.4k
      if (yych <= 0x00) goto yy86;
7874
15.4k
      if (yych <= '\t') goto yy586;
7875
15.4k
      goto yy588;
7876
15.4k
    } else {
7877
1.12k
      if (yych == '\r') goto yy588;
7878
1.06k
      goto yy586;
7879
1.12k
    }
7880
27.5k
yy664:
7881
27.5k
    YYDEBUG(664, *YYCURSOR);
7882
27.5k
    ++YYCURSOR;
7883
27.5k
    YYFILL(1);
7884
27.5k
    yych = *YYCURSOR;
7885
27.5k
    if (yych <= '\f') {
7886
224
      if (yych <= 0x00) goto yy86;
7887
192
      if (yych == '\n') goto yy495;
7888
123
      goto yy586;
7889
27.3k
    } else {
7890
27.3k
      if (yych <= '\r') goto yy495;
7891
26.9k
      if (yych == '*') goto yy738;
7892
5.48k
      goto yy586;
7893
26.9k
    }
7894
8.35k
yy665:
7895
8.35k
    YYDEBUG(665, *YYCURSOR);
7896
8.35k
    yyaccept = 53;
7897
8.35k
    YYMARKER = ++YYCURSOR;
7898
8.35k
    YYFILL(1);
7899
8.35k
    yych = *YYCURSOR;
7900
8.35k
    if (yych <= '\n') {
7901
1.22k
      if (yych <= 0x00) goto yy583;
7902
1.18k
      if (yych <= '\t') goto yy586;
7903
75
      goto yy495;
7904
7.12k
    } else {
7905
7.12k
      if (yych == '\r') goto yy495;
7906
6.91k
      goto yy586;
7907
7.12k
    }
7908
12.5k
yy666:
7909
12.5k
    YYDEBUG(666, *YYCURSOR);
7910
12.5k
    yyaccept = 53;
7911
12.5k
    YYMARKER = ++YYCURSOR;
7912
12.5k
    YYFILL(1);
7913
12.5k
    yych = *YYCURSOR;
7914
12.5k
    if (yych <= '\r') {
7915
33
      if (yych <= '\t') {
7916
24
        if (yych <= 0x00) goto yy583;
7917
21
        goto yy586;
7918
24
      } else {
7919
9
        if (yych <= '\n') goto yy495;
7920
9
        if (yych <= '\f') goto yy586;
7921
3
        goto yy495;
7922
9
      }
7923
12.5k
    } else {
7924
12.5k
      if (yych <= 'X') {
7925
144
        if (yych <= 'W') goto yy586;
7926
0
        goto yy740;
7927
12.3k
      } else {
7928
12.3k
        if (yych == 'x') goto yy740;
7929
9.77k
        goto yy586;
7930
12.3k
      }
7931
12.5k
    }
7932
10.7k
yy667:
7933
10.7k
    YYDEBUG(667, *YYCURSOR);
7934
10.7k
    yyaccept = 53;
7935
10.7k
    YYMARKER = ++YYCURSOR;
7936
10.7k
    YYFILL(1);
7937
10.7k
    yych = *YYCURSOR;
7938
10.7k
    if (yych <= '\r') {
7939
91
      if (yych <= '\t') {
7940
0
        if (yych <= 0x00) goto yy583;
7941
0
        goto yy586;
7942
91
      } else {
7943
91
        if (yych <= '\n') goto yy495;
7944
85
        if (yych <= '\f') goto yy586;
7945
3
        goto yy495;
7946
85
      }
7947
10.6k
    } else {
7948
10.6k
      if (yych <= 'M') {
7949
200
        if (yych <= 'L') goto yy586;
7950
69
        goto yy741;
7951
10.4k
      } else {
7952
10.4k
        if (yych == 'm') goto yy741;
7953
4.56k
        goto yy586;
7954
10.4k
      }
7955
10.6k
    }
7956
14.0k
yy668:
7957
14.0k
    YYDEBUG(668, *YYCURSOR);
7958
14.0k
    ++YYCURSOR;
7959
14.0k
    YYFILL(1);
7960
14.0k
    yych = *YYCURSOR;
7961
14.0k
    YYDEBUG(669, *YYCURSOR);
7962
14.0k
    if (yych <= '*') {
7963
2.84k
      if (yych <= 0x00) goto yy86;
7964
2.75k
      if (yych <= ')') goto yy590;
7965
624
      goto yy668;
7966
11.2k
    } else {
7967
11.2k
      if (yych == '/') goto yy495;
7968
650
      goto yy590;
7969
11.2k
    }
7970
4.21k
yy670:
7971
4.21k
    YYDEBUG(670, *YYCURSOR);
7972
4.21k
    yyaccept = 61;
7973
4.21k
    yych = *(YYMARKER = ++YYCURSOR);
7974
4.21k
    if (yybm[256+yych] & 128) {
7975
17
      goto yy47;
7976
17
    }
7977
4.19k
    if (yych == '\\') goto yy164;
7978
4.19k
yy671:
7979
4.19k
    YYDEBUG(671, *YYCURSOR);
7980
4.19k
    yyleng = YYCURSOR - SCNG(yy_text);
7981
4.19k
#line 1578 "Zend/zend_language_scanner.l"
7982
4.19k
    {
7983
4.19k
  RETURN_TOKEN_WITH_IDENT(T_EXTENDS);
7984
4.19k
}
7985
0
#line 7986 "Zend/zend_language_scanner.c"
7986
629
yy672:
7987
629
    YYDEBUG(672, *YYCURSOR);
7988
629
    yyaccept = 62;
7989
629
    yych = *(YYMARKER = ++YYCURSOR);
7990
629
    if (yybm[256+yych] & 128) {
7991
3
      goto yy47;
7992
3
    }
7993
626
    if (yych == '\\') goto yy164;
7994
623
yy673:
7995
623
    YYDEBUG(673, *YYCURSOR);
7996
623
    yyleng = YYCURSOR - SCNG(yy_text);
7997
623
#line 1445 "Zend/zend_language_scanner.l"
7998
623
    {
7999
623
  RETURN_TOKEN_WITH_IDENT(T_FINALLY);
8000
623
}
8001
0
#line 8002 "Zend/zend_language_scanner.c"
8002
7.81k
yy674:
8003
7.81k
    YYDEBUG(674, *YYCURSOR);
8004
7.81k
    yyaccept = 63;
8005
7.81k
    yych = *(YYMARKER = ++YYCURSOR);
8006
7.81k
    if (yybm[256+yych] & 128) {
8007
282
      goto yy47;
8008
282
    }
8009
7.52k
    if (yych == '\\') goto yy164;
8010
7.52k
yy675:
8011
7.52k
    YYDEBUG(675, *YYCURSOR);
8012
7.52k
    yyleng = YYCURSOR - SCNG(yy_text);
8013
7.52k
#line 1489 "Zend/zend_language_scanner.l"
8014
7.52k
    {
8015
7.52k
  RETURN_TOKEN_WITH_IDENT(T_FOREACH);
8016
7.52k
}
8017
0
#line 8018 "Zend/zend_language_scanner.c"
8018
36.5k
yy676:
8019
36.5k
    YYDEBUG(676, *YYCURSOR);
8020
36.5k
    yyaccept = 4;
8021
36.5k
    yych = *(YYMARKER = ++YYCURSOR);
8022
36.5k
    if (yych == 'N') goto yy742;
8023
36.2k
    if (yych == 'n') goto yy742;
8024
600
    goto yy48;
8025
2.57k
yy677:
8026
2.57k
    YYDEBUG(677, *YYCURSOR);
8027
2.57k
    yyaccept = 4;
8028
2.57k
    yych = *(YYMARKER = ++YYCURSOR);
8029
2.57k
    if (yych == 'N') goto yy744;
8030
1.62k
    if (yych == 'n') goto yy744;
8031
127
    goto yy48;
8032
812
yy678:
8033
812
    YYDEBUG(678, *YYCURSOR);
8034
812
    yyaccept = 64;
8035
812
    yych = *(YYMARKER = ++YYCURSOR);
8036
812
    if (yych <= '\\') {
8037
751
      if (yych <= '@') {
8038
751
        if (yych <= '/') goto yy679;
8039
3
        if (yych <= '9') goto yy47;
8040
3
      } else {
8041
0
        if (yych <= 'Z') goto yy47;
8042
0
        if (yych >= '\\') goto yy164;
8043
0
      }
8044
751
    } else {
8045
61
      if (yych <= '`') {
8046
58
        if (yych == '_') goto yy745;
8047
58
      } else {
8048
3
        if (yych <= 'z') goto yy47;
8049
3
        if (yych >= 0x80) goto yy47;
8050
3
      }
8051
61
    }
8052
754
yy679:
8053
754
    YYDEBUG(679, *YYCURSOR);
8054
754
    yyleng = YYCURSOR - SCNG(yy_text);
8055
754
#line 1721 "Zend/zend_language_scanner.l"
8056
754
    {
8057
754
  RETURN_TOKEN_WITH_IDENT(T_INCLUDE);
8058
754
}
8059
0
#line 8060 "Zend/zend_language_scanner.c"
8060
758
yy680:
8061
758
    YYDEBUG(680, *YYCURSOR);
8062
758
    yyaccept = 4;
8063
758
    yych = *(YYMARKER = ++YYCURSOR);
8064
758
    if (yych == 'E') goto yy746;
8065
455
    if (yych == 'e') goto yy746;
8066
45
    goto yy48;
8067
594
yy681:
8068
594
    YYDEBUG(681, *YYCURSOR);
8069
594
    yyaccept = 4;
8070
594
    yych = *(YYMARKER = ++YYCURSOR);
8071
594
    if (yych == 'O') goto yy747;
8072
407
    if (yych == 'o') goto yy747;
8073
3
    goto yy48;
8074
1.38k
yy682:
8075
1.38k
    YYDEBUG(682, *YYCURSOR);
8076
1.38k
    yyaccept = 4;
8077
1.38k
    yych = *(YYMARKER = ++YYCURSOR);
8078
1.38k
    if (yych == 'C') goto yy748;
8079
1.32k
    if (yych == 'c') goto yy748;
8080
26
    goto yy48;
8081
3.11k
yy683:
8082
3.11k
    YYDEBUG(683, *YYCURSOR);
8083
3.11k
    yyaccept = 4;
8084
3.11k
    yych = *(YYMARKER = ++YYCURSOR);
8085
3.11k
    if (yych == 'C') goto yy749;
8086
2.50k
    if (yych == 'c') goto yy749;
8087
21
    goto yy48;
8088
2.71k
yy684:
8089
2.71k
    YYDEBUG(684, *YYCURSOR);
8090
2.71k
    yyaccept = 65;
8091
2.71k
    yych = *(YYMARKER = ++YYCURSOR);
8092
2.71k
    if (yybm[256+yych] & 128) {
8093
120
      goto yy47;
8094
120
    }
8095
2.59k
    if (yych == '(') goto yy750;
8096
2.36k
    if (yych == '\\') goto yy164;
8097
2.45k
yy685:
8098
2.45k
    YYDEBUG(685, *YYCURSOR);
8099
2.45k
    yyleng = YYCURSOR - SCNG(yy_text);
8100
2.45k
#line 1777 "Zend/zend_language_scanner.l"
8101
2.45k
    {
8102
2.45k
  RETURN_TOKEN_WITH_IDENT(T_PRIVATE);
8103
2.45k
}
8104
0
#line 8105 "Zend/zend_language_scanner.c"
8105
2.49k
yy686:
8106
2.49k
    YYDEBUG(686, *YYCURSOR);
8107
2.49k
    yyaccept = 4;
8108
2.49k
    yych = *(YYMARKER = ++YYCURSOR);
8109
2.49k
    if (yych == 'E') goto yy751;
8110
2.43k
    if (yych == 'e') goto yy751;
8111
113
    goto yy48;
8112
167
yy687:
8113
167
    YYDEBUG(687, *YYCURSOR);
8114
167
    yych = *++YYCURSOR;
8115
167
    if (yych == 'S') goto yy752;
8116
167
    if (yych == 's') goto yy752;
8117
94
    goto yy86;
8118
489
yy688:
8119
489
    YYDEBUG(688, *YYCURSOR);
8120
489
    yyaccept = 4;
8121
489
    yych = *(YYMARKER = ++YYCURSOR);
8122
489
    if (yych == 'Y') goto yy753;
8123
486
    if (yych == 'y') goto yy753;
8124
3
    goto yy48;
8125
5.64k
yy689:
8126
5.64k
    YYDEBUG(689, *YYCURSOR);
8127
5.64k
    yyaccept = 66;
8128
5.64k
    yych = *(YYMARKER = ++YYCURSOR);
8129
5.64k
    if (yych <= '\\') {
8130
1.76k
      if (yych <= '@') {
8131
1.73k
        if (yych <= '/') goto yy690;
8132
3
        if (yych <= '9') goto yy47;
8133
31
      } else {
8134
31
        if (yych <= 'Z') goto yy47;
8135
31
        if (yych >= '\\') goto yy164;
8136
31
      }
8137
3.87k
    } else {
8138
3.87k
      if (yych <= '`') {
8139
175
        if (yych == '_') goto yy755;
8140
3.70k
      } else {
8141
3.70k
        if (yych <= 'z') goto yy47;
8142
3.69k
        if (yych >= 0x80) goto yy47;
8143
3.69k
      }
8144
3.87k
    }
8145
1.76k
yy690:
8146
1.76k
    YYDEBUG(690, *YYCURSOR);
8147
1.76k
    yyleng = YYCURSOR - SCNG(yy_text);
8148
1.76k
#line 1729 "Zend/zend_language_scanner.l"
8149
1.76k
    {
8150
1.76k
  RETURN_TOKEN_WITH_IDENT(T_REQUIRE);
8151
1.76k
}
8152
0
#line 8153 "Zend/zend_language_scanner.c"
8153
1.10k
yy691:
8154
1.10k
    YYDEBUG(691, *YYCURSOR);
8155
1.10k
    yych = *++YYCURSOR;
8156
1.10k
    if (yych == 'R') goto yy756;
8157
949
    if (yych == 'r') goto yy756;
8158
99
    goto yy86;
8159
62.3k
yy692:
8160
62.3k
    YYDEBUG(692, *YYCURSOR);
8161
62.3k
    ++YYCURSOR;
8162
62.3k
    YYFILL(1);
8163
62.3k
    yych = *YYCURSOR;
8164
62.3k
    YYDEBUG(693, *YYCURSOR);
8165
62.3k
    if (yych <= '\n') {
8166
8.73k
      if (yych <= 0x00) goto yy86;
8167
8.05k
      if (yych <= '\t') goto yy692;
8168
2.81k
      goto yy616;
8169
53.6k
    } else {
8170
53.6k
      if (yych == '\r') goto yy616;
8171
50.1k
      goto yy692;
8172
53.6k
    }
8173
10.0k
yy694:
8174
10.0k
    YYDEBUG(694, *YYCURSOR);
8175
10.0k
    ++YYCURSOR;
8176
10.0k
    YYFILL(1);
8177
10.0k
    yych = *YYCURSOR;
8178
10.0k
    YYDEBUG(695, *YYCURSOR);
8179
10.0k
    if (yych <= ' ') {
8180
937
      if (yych <= '\n') {
8181
394
        if (yych <= 0x00) goto yy86;
8182
99
        if (yych <= 0x08) goto yy692;
8183
72
        if (yych <= '\t') goto yy694;
8184
66
        goto yy616;
8185
543
      } else {
8186
543
        if (yych == '\r') goto yy616;
8187
150
        if (yych <= 0x1F) goto yy692;
8188
114
        goto yy694;
8189
150
      }
8190
9.09k
    } else {
8191
9.09k
      if (yych <= '/') {
8192
7.42k
        if (yych == '#') goto yy757;
8193
6.09k
        if (yych <= '.') goto yy692;
8194
5.00k
        goto yy758;
8195
6.09k
      } else {
8196
1.67k
        if (yych <= 'F') {
8197
531
          if (yych <= 'E') goto yy692;
8198
201
          goto yy759;
8199
1.14k
        } else {
8200
1.14k
          if (yych == 'f') goto yy759;
8201
1.13k
          goto yy692;
8202
1.14k
        }
8203
1.67k
      }
8204
9.09k
    }
8205
114k
yy696:
8206
114k
    YYDEBUG(696, *YYCURSOR);
8207
114k
    ++YYCURSOR;
8208
114k
    YYFILL(1);
8209
114k
    yych = *YYCURSOR;
8210
114k
    YYDEBUG(697, *YYCURSOR);
8211
114k
    if (yych <= 0x00) goto yy86;
8212
113k
    if (yych == '*') goto yy760;
8213
110k
    goto yy696;
8214
110k
yy698:
8215
411
    YYDEBUG(698, *YYCURSOR);
8216
411
    yyaccept = 4;
8217
411
    yych = *(YYMARKER = ++YYCURSOR);
8218
411
    if (yych == '_') goto yy762;
8219
34
    goto yy48;
8220
652
yy699:
8221
652
    YYDEBUG(699, *YYCURSOR);
8222
652
    yyaccept = 67;
8223
652
    yych = *(YYMARKER = ++YYCURSOR);
8224
652
    if (yybm[256+yych] & 128) {
8225
132
      goto yy47;
8226
132
    }
8227
520
    if (yych == '\\') goto yy164;
8228
520
yy700:
8229
520
    YYDEBUG(700, *YYCURSOR);
8230
520
    yyleng = YYCURSOR - SCNG(yy_text);
8231
520
#line 2280 "Zend/zend_language_scanner.l"
8232
520
    {
8233
520
  RETURN_TOKEN_WITH_IDENT(T_DIR);
8234
520
}
8235
0
#line 8236 "Zend/zend_language_scanner.c"
8236
1.80k
yy701:
8237
1.80k
    YYDEBUG(701, *YYCURSOR);
8238
1.80k
    yyaccept = 4;
8239
1.80k
    yych = *(YYMARKER = ++YYCURSOR);
8240
1.80k
    if (yych == '_') goto yy763;
8241
3
    goto yy48;
8242
733
yy702:
8243
733
    YYDEBUG(702, *YYCURSOR);
8244
733
    yyaccept = 4;
8245
733
    yych = *(YYMARKER = ++YYCURSOR);
8246
733
    if (yych == 'I') goto yy765;
8247
20
    if (yych == 'i') goto yy765;
8248
18
    goto yy48;
8249
173
yy703:
8250
173
    YYDEBUG(703, *YYCURSOR);
8251
173
    yyaccept = 4;
8252
173
    yych = *(YYMARKER = ++YYCURSOR);
8253
173
    if (yych == 'C') goto yy766;
8254
150
    if (yych == 'c') goto yy766;
8255
51
    goto yy48;
8256
69
yy704:
8257
69
    YYDEBUG(704, *YYCURSOR);
8258
69
    yyaccept = 4;
8259
69
    yych = *(YYMARKER = ++YYCURSOR);
8260
69
    if (yych == '_') goto yy767;
8261
0
    goto yy48;
8262
3.25k
yy705:
8263
3.25k
    YYDEBUG(705, *YYCURSOR);
8264
3.25k
    yyaccept = 4;
8265
3.25k
    yych = *(YYMARKER = ++YYCURSOR);
8266
3.25k
    if (yych == 'D') goto yy769;
8267
91
    if (yych == 'd') goto yy769;
8268
77
    goto yy48;
8269
219
yy706:
8270
219
    YYDEBUG(706, *YYCURSOR);
8271
219
    yyaccept = 4;
8272
219
    yych = *(YYMARKER = ++YYCURSOR);
8273
219
    if (yych == 'P') goto yy770;
8274
13
    if (yych == 'p') goto yy770;
8275
3
    goto yy48;
8276
138
yy707:
8277
138
    YYDEBUG(707, *YYCURSOR);
8278
138
    yyaccept = 4;
8279
138
    yych = *(YYMARKER = ++YYCURSOR);
8280
138
    if (yych == 'R') goto yy771;
8281
0
    if (yych == 'r') goto yy771;
8282
0
    goto yy48;
8283
74
yy708:
8284
74
    YYDEBUG(708, *YYCURSOR);
8285
74
    yyaccept = 4;
8286
74
    yych = *(YYMARKER = ++YYCURSOR);
8287
74
    if (yych == '_') goto yy772;
8288
6
    goto yy48;
8289
10.0k
yy709:
8290
10.0k
    YYDEBUG(709, *YYCURSOR);
8291
10.0k
    ++YYCURSOR;
8292
10.0k
    YYFILL(1);
8293
10.0k
    yych = *YYCURSOR;
8294
10.0k
    YYDEBUG(710, *YYCURSOR);
8295
10.0k
    if (yych <= ' ') {
8296
1.59k
      if (yych <= '\n') {
8297
438
        if (yych <= 0x00) goto yy86;
8298
348
        if (yych <= 0x08) goto yy443;
8299
339
        if (yych <= '\t') goto yy709;
8300
69
        goto yy545;
8301
1.15k
      } else {
8302
1.15k
        if (yych == '\r') goto yy545;
8303
1.05k
        if (yych <= 0x1F) goto yy443;
8304
831
        goto yy709;
8305
1.05k
      }
8306
8.42k
    } else {
8307
8.42k
      if (yych <= ')') {
8308
895
        if (yych <= '"') goto yy443;
8309
853
        if (yych <= '#') goto yy773;
8310
159
        if (yych <= '$') goto yy774;
8311
18
        goto yy443;
8312
7.52k
      } else {
8313
7.52k
        if (yych <= '-') {
8314
372
          if (yych <= '*') goto yy547;
8315
372
          goto yy443;
8316
7.15k
        } else {
8317
7.15k
          if (yych <= '.') goto yy775;
8318
7.06k
          if (yych <= '/') goto yy776;
8319
5.51k
          goto yy443;
8320
7.06k
        }
8321
7.52k
      }
8322
8.42k
    }
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
1.43k
yy712:
8335
1.43k
    YYDEBUG(712, *YYCURSOR);
8336
1.43k
    ++YYCURSOR;
8337
1.43k
    YYFILL(1);
8338
1.43k
    yych = *YYCURSOR;
8339
1.43k
    if (yybm[0+yych] & 64) {
8340
0
      goto yy355;
8341
0
    }
8342
1.43k
    if (yych <= 0x00) goto yy86;
8343
1.42k
    if (yych == '/') goto yy545;
8344
15
    goto yy230;
8345
15
yy713:
8346
4
    YYDEBUG(713, *YYCURSOR);
8347
4
    ++YYCURSOR;
8348
4
    YYDEBUG(714, *YYCURSOR);
8349
4
    yyleng = YYCURSOR - SCNG(yy_text);
8350
4
#line 1677 "Zend/zend_language_scanner.l"
8351
4
    {
8352
4
  if (PARSER_MODE()) {
8353
4
    zend_error(E_DEPRECATED, "Non-canonical cast (binary) is deprecated, use the (string) cast instead");
8354
4
    if (EG(exception)) {
8355
0
      RETURN_TOKEN(T_ERROR);
8356
0
    }
8357
4
  }
8358
4
  RETURN_TOKEN(T_STRING_CAST);
8359
4
}
8360
0
#line 8361 "Zend/zend_language_scanner.c"
8361
26
yy715:
8362
26
    YYDEBUG(715, *YYCURSOR);
8363
26
    ++YYCURSOR;
8364
26
    YYFILL(1);
8365
26
    yych = *YYCURSOR;
8366
26
    YYDEBUG(716, *YYCURSOR);
8367
26
    if (yych <= 0x1F) {
8368
0
      if (yych == '\t') goto yy715;
8369
0
      goto yy86;
8370
26
    } else {
8371
26
      if (yych <= ' ') goto yy715;
8372
14
      if (yych == ')') goto yy777;
8373
12
      goto yy86;
8374
14
    }
8375
8
yy717:
8376
8
    YYDEBUG(717, *YYCURSOR);
8377
8
    ++YYCURSOR;
8378
8
    YYDEBUG(718, *YYCURSOR);
8379
8
    yyleng = YYCURSOR - SCNG(yy_text);
8380
8
#line 1655 "Zend/zend_language_scanner.l"
8381
8
    {
8382
8
  if (PARSER_MODE()) {
8383
8
    zend_error(E_DEPRECATED, "Non-canonical cast (double) is deprecated, use the (float) cast instead");
8384
8
    if (EG(exception)) {
8385
0
      RETURN_TOKEN(T_ERROR);
8386
0
    }
8387
8
  }
8388
8
  RETURN_TOKEN(T_DOUBLE_CAST);
8389
8
}
8390
0
#line 8391 "Zend/zend_language_scanner.c"
8391
52
yy719:
8392
52
    YYDEBUG(719, *YYCURSOR);
8393
52
    ++YYCURSOR;
8394
52
    YYFILL(1);
8395
52
    yych = *YYCURSOR;
8396
52
    YYDEBUG(720, *YYCURSOR);
8397
52
    if (yych <= 0x1F) {
8398
3
      if (yych == '\t') goto yy719;
8399
3
      goto yy86;
8400
49
    } else {
8401
49
      if (yych <= ' ') goto yy719;
8402
27
      if (yych == ')') goto yy779;
8403
19
      goto yy86;
8404
27
    }
8405
329
yy721:
8406
329
    YYDEBUG(721, *YYCURSOR);
8407
329
    ++YYCURSOR;
8408
329
    YYDEBUG(722, *YYCURSOR);
8409
329
    yyleng = YYCURSOR - SCNG(yy_text);
8410
329
#line 1691 "Zend/zend_language_scanner.l"
8411
329
    {
8412
329
  RETURN_TOKEN(T_OBJECT_CAST);
8413
329
}
8414
0
#line 8415 "Zend/zend_language_scanner.c"
8415
606
yy723:
8416
606
    YYDEBUG(723, *YYCURSOR);
8417
606
    ++YYCURSOR;
8418
606
    YYDEBUG(724, *YYCURSOR);
8419
606
    yyleng = YYCURSOR - SCNG(yy_text);
8420
606
#line 1673 "Zend/zend_language_scanner.l"
8421
606
    {
8422
606
  RETURN_TOKEN(T_STRING_CAST);
8423
606
}
8424
0
#line 8425 "Zend/zend_language_scanner.c"
8425
1.01k
yy725:
8426
1.01k
    YYDEBUG(725, *YYCURSOR);
8427
1.01k
    yyaccept = 68;
8428
1.01k
    yych = *(YYMARKER = ++YYCURSOR);
8429
1.01k
    if (yybm[256+yych] & 128) {
8430
53
      goto yy47;
8431
53
    }
8432
962
    if (yych == '\\') goto yy164;
8433
962
yy726:
8434
962
    YYDEBUG(726, *YYCURSOR);
8435
962
    yyleng = YYCURSOR - SCNG(yy_text);
8436
962
#line 1769 "Zend/zend_language_scanner.l"
8437
962
    {
8438
962
  RETURN_TOKEN_WITH_IDENT(T_ABSTRACT);
8439
962
}
8440
0
#line 8441 "Zend/zend_language_scanner.c"
8441
1.33k
yy727:
8442
1.33k
    YYDEBUG(727, *YYCURSOR);
8443
1.33k
    yyaccept = 69;
8444
1.33k
    yych = *(YYMARKER = ++YYCURSOR);
8445
1.33k
    if (yybm[256+yych] & 128) {
8446
32
      goto yy47;
8447
32
    }
8448
1.29k
    if (yych == '\\') goto yy164;
8449
1.29k
yy728:
8450
1.29k
    YYDEBUG(728, *YYCURSOR);
8451
1.29k
    yyleng = YYCURSOR - SCNG(yy_text);
8452
1.29k
#line 1821 "Zend/zend_language_scanner.l"
8453
1.29k
    {
8454
1.29k
  RETURN_TOKEN_WITH_IDENT(T_CALLABLE);
8455
1.29k
}
8456
0
#line 8457 "Zend/zend_language_scanner.c"
8457
333
yy729:
8458
333
    YYDEBUG(729, *YYCURSOR);
8459
333
    yyaccept = 70;
8460
333
    yych = *(YYMARKER = ++YYCURSOR);
8461
333
    if (yybm[256+yych] & 128) {
8462
3
      goto yy47;
8463
3
    }
8464
330
    if (yych == '\\') goto yy164;
8465
330
yy730:
8466
330
    YYDEBUG(730, *YYCURSOR);
8467
330
    yyleng = YYCURSOR - SCNG(yy_text);
8468
330
#line 1537 "Zend/zend_language_scanner.l"
8469
330
    {
8470
330
  RETURN_TOKEN_WITH_IDENT(T_CONTINUE);
8471
330
}
8472
0
#line 8473 "Zend/zend_language_scanner.c"
8473
135
yy731:
8474
135
    YYDEBUG(731, *YYCURSOR);
8475
135
    yyaccept = 4;
8476
135
    yych = *(YYMARKER = ++YYCURSOR);
8477
135
    if (yych == 'R') goto yy781;
8478
56
    if (yych == 'r') goto yy781;
8479
9
    goto yy48;
8480
1.60k
yy732:
8481
1.60k
    YYDEBUG(732, *YYCURSOR);
8482
1.60k
    yyaccept = 4;
8483
1.60k
    yych = *(YYMARKER = ++YYCURSOR);
8484
1.60k
    if (yych == 'C') goto yy782;
8485
1.15k
    if (yych == 'c') goto yy782;
8486
0
    goto yy48;
8487
214
yy733:
8488
214
    YYDEBUG(733, *YYCURSOR);
8489
214
    yyaccept = 4;
8490
214
    yych = *(YYMARKER = ++YYCURSOR);
8491
214
    if (yych == 'H') goto yy783;
8492
204
    if (yych == 'h') goto yy783;
8493
171
    goto yy48;
8494
2.08k
yy734:
8495
2.08k
    YYDEBUG(734, *YYCURSOR);
8496
2.08k
    yyaccept = 71;
8497
2.08k
    yych = *(YYMARKER = ++YYCURSOR);
8498
2.08k
    if (yybm[256+yych] & 128) {
8499
15
      goto yy47;
8500
15
    }
8501
2.07k
    if (yych == '\\') goto yy164;
8502
2.07k
yy735:
8503
2.07k
    YYDEBUG(735, *YYCURSOR);
8504
2.07k
    yyleng = YYCURSOR - SCNG(yy_text);
8505
2.07k
#line 1473 "Zend/zend_language_scanner.l"
8506
2.07k
    {
8507
2.07k
  RETURN_TOKEN_WITH_IDENT(T_ENDWHILE);
8508
2.07k
}
8509
0
#line 8510 "Zend/zend_language_scanner.c"
8510
35
yy736:
8511
35
    YYDEBUG(736, *YYCURSOR);
8512
35
    yych = *++YYCURSOR;
8513
35
    if (yych == 'E') goto yy785;
8514
35
    if (yych == 'e') goto yy785;
8515
3
    goto yy86;
8516
605
yy737:
8517
605
    YYDEBUG(737, *YYCURSOR);
8518
605
    yych = *++YYCURSOR;
8519
605
    if (yych == 'L') goto yy786;
8520
596
    if (yych == 'l') goto yy786;
8521
3
    goto yy86;
8522
1.29M
yy738:
8523
1.29M
    YYDEBUG(738, *YYCURSOR);
8524
1.29M
    ++YYCURSOR;
8525
1.29M
    YYFILL(1);
8526
1.29M
    yych = *YYCURSOR;
8527
1.29M
    YYDEBUG(739, *YYCURSOR);
8528
1.29M
    if (yych <= '\f') {
8529
56.7k
      if (yych <= 0x00) goto yy86;
8530
53.4k
      if (yych == '\n') goto yy787;
8531
7.14k
      goto yy738;
8532
1.23M
    } else {
8533
1.23M
      if (yych <= '\r') goto yy787;
8534
1.18M
      if (yych == '*') goto yy789;
8535
1.18M
      goto yy738;
8536
1.18M
    }
8537
2.60k
yy740:
8538
2.60k
    YYDEBUG(740, *YYCURSOR);
8539
2.60k
    ++YYCURSOR;
8540
2.60k
    YYFILL(1);
8541
2.60k
    yych = *YYCURSOR;
8542
2.60k
    if (yych <= '\r') {
8543
33
      if (yych <= '\t') {
8544
18
        if (yych <= 0x00) goto yy86;
8545
0
        goto yy586;
8546
18
      } else {
8547
15
        if (yych <= '\n') goto yy495;
8548
15
        if (yych <= '\f') goto yy586;
8549
0
        goto yy495;
8550
15
      }
8551
2.56k
    } else {
8552
2.56k
      if (yych <= 'T') {
8553
714
        if (yych <= 'S') goto yy586;
8554
3
        goto yy791;
8555
1.85k
      } else {
8556
1.85k
        if (yych == 't') goto yy791;
8557
1.65k
        goto yy586;
8558
1.85k
      }
8559
2.56k
    }
8560
6.00k
yy741:
8561
6.00k
    YYDEBUG(741, *YYCURSOR);
8562
6.00k
    ++YYCURSOR;
8563
6.00k
    YYFILL(1);
8564
6.00k
    yych = *YYCURSOR;
8565
6.00k
    if (yych <= '\r') {
8566
54
      if (yych <= '\t') {
8567
6
        if (yych <= 0x00) goto yy86;
8568
0
        goto yy586;
8569
48
      } else {
8570
48
        if (yych <= '\n') goto yy495;
8571
0
        if (yych <= '\f') goto yy586;
8572
0
        goto yy495;
8573
0
      }
8574
5.94k
    } else {
8575
5.94k
      if (yych <= 'P') {
8576
495
        if (yych <= 'O') goto yy586;
8577
81
        goto yy792;
8578
5.45k
      } else {
8579
5.45k
        if (yych == 'p') goto yy792;
8580
267
        goto yy586;
8581
5.45k
      }
8582
5.94k
    }
8583
35.9k
yy742:
8584
35.9k
    YYDEBUG(742, *YYCURSOR);
8585
35.9k
    yyaccept = 72;
8586
35.9k
    yych = *(YYMARKER = ++YYCURSOR);
8587
35.9k
    if (yybm[256+yych] & 128) {
8588
521
      goto yy47;
8589
521
    }
8590
35.4k
    if (yych == '\\') goto yy164;
8591
35.4k
yy743:
8592
35.4k
    YYDEBUG(743, *YYCURSOR);
8593
35.4k
    yyleng = YYCURSOR - SCNG(yy_text);
8594
35.4k
#line 1410 "Zend/zend_language_scanner.l"
8595
35.4k
    {
8596
35.4k
  RETURN_TOKEN_WITH_IDENT(T_FUNCTION);
8597
35.4k
}
8598
0
#line 8599 "Zend/zend_language_scanner.c"
8599
2.45k
yy744:
8600
2.45k
    YYDEBUG(744, *YYCURSOR);
8601
2.45k
    yyaccept = 4;
8602
2.45k
    yych = *(YYMARKER = ++YYCURSOR);
8603
2.45k
    if (yych == 'T') goto yy793;
8604
2.42k
    if (yych == 't') goto yy793;
8605
1.07k
    goto yy48;
8606
1.07k
yy745:
8607
58
    YYDEBUG(745, *YYCURSOR);
8608
58
    yyaccept = 4;
8609
58
    yych = *(YYMARKER = ++YYCURSOR);
8610
58
    if (yych == 'O') goto yy794;
8611
18
    if (yych == 'o') goto yy794;
8612
6
    goto yy48;
8613
713
yy746:
8614
713
    YYDEBUG(746, *YYCURSOR);
8615
713
    yyaccept = 4;
8616
713
    yych = *(YYMARKER = ++YYCURSOR);
8617
713
    if (yych == 'O') goto yy795;
8618
408
    if (yych == 'o') goto yy795;
8619
16
    goto yy48;
8620
591
yy747:
8621
591
    YYDEBUG(747, *YYCURSOR);
8622
591
    yyaccept = 4;
8623
591
    yych = *(YYMARKER = ++YYCURSOR);
8624
591
    if (yych == 'F') goto yy796;
8625
425
    if (yych == 'f') goto yy796;
8626
21
    goto yy48;
8627
1.36k
yy748:
8628
1.36k
    YYDEBUG(748, *YYCURSOR);
8629
1.36k
    yyaccept = 4;
8630
1.36k
    yych = *(YYMARKER = ++YYCURSOR);
8631
1.36k
    if (yych == 'E') goto yy798;
8632
1.29k
    if (yych == 'e') goto yy798;
8633
0
    goto yy48;
8634
3.09k
yy749:
8635
3.09k
    YYDEBUG(749, *YYCURSOR);
8636
3.09k
    yyaccept = 4;
8637
3.09k
    yych = *(YYMARKER = ++YYCURSOR);
8638
3.09k
    if (yych == 'E') goto yy800;
8639
2.48k
    if (yych == 'e') goto yy800;
8640
12
    goto yy48;
8641
238
yy750:
8642
238
    YYDEBUG(750, *YYCURSOR);
8643
238
    yych = *++YYCURSOR;
8644
238
    if (yych == 'S') goto yy802;
8645
238
    if (yych == 's') goto yy802;
8646
48
    goto yy86;
8647
2.37k
yy751:
8648
2.37k
    YYDEBUG(751, *YYCURSOR);
8649
2.37k
    yyaccept = 4;
8650
2.37k
    yych = *(YYMARKER = ++YYCURSOR);
8651
2.37k
    if (yych == 'D') goto yy803;
8652
2.32k
    if (yych == 'd') goto yy803;
8653
6
    goto yy48;
8654
73
yy752:
8655
73
    YYDEBUG(752, *YYCURSOR);
8656
73
    yych = *++YYCURSOR;
8657
73
    if (yych == 'E') goto yy805;
8658
73
    if (yych == 'e') goto yy805;
8659
57
    goto yy86;
8660
486
yy753:
8661
486
    YYDEBUG(753, *YYCURSOR);
8662
486
    yyaccept = 73;
8663
486
    yych = *(YYMARKER = ++YYCURSOR);
8664
486
    if (yybm[256+yych] & 128) {
8665
3
      goto yy47;
8666
3
    }
8667
483
    if (yych == '\\') goto yy164;
8668
483
yy754:
8669
483
    YYDEBUG(754, *YYCURSOR);
8670
483
    yyleng = YYCURSOR - SCNG(yy_text);
8671
483
#line 1801 "Zend/zend_language_scanner.l"
8672
483
    {
8673
483
  RETURN_TOKEN_WITH_IDENT(T_READONLY);
8674
483
}
8675
0
#line 8676 "Zend/zend_language_scanner.c"
8676
172
yy755:
8677
172
    YYDEBUG(755, *YYCURSOR);
8678
172
    yyaccept = 4;
8679
172
    yych = *(YYMARKER = ++YYCURSOR);
8680
172
    if (yych == 'O') goto yy806;
8681
144
    if (yych == 'o') goto yy806;
8682
3
    goto yy48;
8683
1.00k
yy756:
8684
1.00k
    YYDEBUG(756, *YYCURSOR);
8685
1.00k
    yych = *++YYCURSOR;
8686
1.00k
    if (yych == 'O') goto yy807;
8687
901
    if (yych == 'o') goto yy807;
8688
179
    goto yy86;
8689
1.33k
yy757:
8690
1.33k
    YYDEBUG(757, *YYCURSOR);
8691
1.33k
    ++YYCURSOR;
8692
1.33k
    YYFILL(1);
8693
1.33k
    yych = *YYCURSOR;
8694
1.33k
    if (yych <= '\n') {
8695
588
      if (yych <= 0x00) goto yy86;
8696
588
      if (yych <= '\t') goto yy692;
8697
573
      goto yy694;
8698
744
    } else {
8699
744
      if (yych == '\r') goto yy694;
8700
78
      goto yy692;
8701
744
    }
8702
5.00k
yy758:
8703
5.00k
    YYDEBUG(758, *YYCURSOR);
8704
5.00k
    ++YYCURSOR;
8705
5.00k
    YYFILL(1);
8706
5.00k
    yych = *YYCURSOR;
8707
5.00k
    if (yych <= '\f') {
8708
81
      if (yych <= 0x00) goto yy86;
8709
66
      if (yych == '\n') goto yy616;
8710
45
      goto yy692;
8711
4.92k
    } else {
8712
4.92k
      if (yych <= '\r') goto yy616;
8713
4.59k
      if (yych == '*') goto yy808;
8714
294
      goto yy692;
8715
4.59k
    }
8716
210
yy759:
8717
210
    YYDEBUG(759, *YYCURSOR);
8718
210
    ++YYCURSOR;
8719
210
    YYFILL(1);
8720
210
    yych = *YYCURSOR;
8721
210
    if (yych <= '\r') {
8722
3
      if (yych <= '\t') {
8723
3
        if (yych <= 0x00) goto yy86;
8724
3
        goto yy692;
8725
3
      } else {
8726
0
        if (yych <= '\n') goto yy616;
8727
0
        if (yych <= '\f') goto yy692;
8728
0
        goto yy616;
8729
0
      }
8730
207
    } else {
8731
207
      if (yych <= 'R') {
8732
174
        if (yych <= 'Q') goto yy692;
8733
156
        goto yy810;
8734
174
      } else {
8735
33
        if (yych == 'r') goto yy810;
8736
24
        goto yy692;
8737
33
      }
8738
207
    }
8739
2.42k
yy760:
8740
2.42k
    YYDEBUG(760, *YYCURSOR);
8741
2.42k
    ++YYCURSOR;
8742
2.42k
    YYFILL(1);
8743
2.42k
    yych = *YYCURSOR;
8744
2.42k
    YYDEBUG(761, *YYCURSOR);
8745
2.42k
    if (yych <= '*') {
8746
249
      if (yych <= 0x00) goto yy86;
8747
213
      if (yych <= ')') goto yy696;
8748
12
      goto yy760;
8749
2.17k
    } else {
8750
2.17k
      if (yych == '/') goto yy616;
8751
180
      goto yy696;
8752
2.17k
    }
8753
377
yy762:
8754
377
    YYDEBUG(762, *YYCURSOR);
8755
377
    yyaccept = 4;
8756
377
    yych = *(YYMARKER = ++YYCURSOR);
8757
377
    if (yych == '_') goto yy811;
8758
5
    goto yy48;
8759
1.79k
yy763:
8760
1.79k
    YYDEBUG(763, *YYCURSOR);
8761
1.79k
    yyaccept = 74;
8762
1.79k
    yych = *(YYMARKER = ++YYCURSOR);
8763
1.79k
    if (yybm[256+yych] & 128) {
8764
10
      goto yy47;
8765
10
    }
8766
1.78k
    if (yych == '\\') goto yy164;
8767
1.78k
yy764:
8768
1.78k
    YYDEBUG(764, *YYCURSOR);
8769
1.78k
    yyleng = YYCURSOR - SCNG(yy_text);
8770
1.78k
#line 2276 "Zend/zend_language_scanner.l"
8771
1.78k
    {
8772
1.78k
  RETURN_TOKEN_WITH_IDENT(T_FILE);
8773
1.78k
}
8774
0
#line 8775 "Zend/zend_language_scanner.c"
8775
715
yy765:
8776
715
    YYDEBUG(765, *YYCURSOR);
8777
715
    yyaccept = 4;
8778
715
    yych = *(YYMARKER = ++YYCURSOR);
8779
715
    if (yych == 'O') goto yy813;
8780
4
    if (yych == 'o') goto yy813;
8781
2
    goto yy48;
8782
122
yy766:
8783
122
    YYDEBUG(766, *YYCURSOR);
8784
122
    yyaccept = 4;
8785
122
    yych = *(YYMARKER = ++YYCURSOR);
8786
122
    if (yych == 'O') goto yy814;
8787
101
    if (yych == 'o') goto yy814;
8788
29
    goto yy48;
8789
69
yy767:
8790
69
    YYDEBUG(767, *YYCURSOR);
8791
69
    yyaccept = 75;
8792
69
    yych = *(YYMARKER = ++YYCURSOR);
8793
69
    if (yybm[256+yych] & 128) {
8794
0
      goto yy47;
8795
0
    }
8796
69
    if (yych == '\\') goto yy164;
8797
69
yy768:
8798
69
    YYDEBUG(768, *YYCURSOR);
8799
69
    yyleng = YYCURSOR - SCNG(yy_text);
8800
69
#line 2272 "Zend/zend_language_scanner.l"
8801
69
    {
8802
69
  RETURN_TOKEN_WITH_IDENT(T_LINE);
8803
69
}
8804
0
#line 8805 "Zend/zend_language_scanner.c"
8805
3.18k
yy769:
8806
3.18k
    YYDEBUG(769, *YYCURSOR);
8807
3.18k
    yyaccept = 4;
8808
3.18k
    yych = *(YYMARKER = ++YYCURSOR);
8809
3.18k
    if (yych == '_') goto yy815;
8810
255
    goto yy48;
8811
255
yy770:
8812
216
    YYDEBUG(770, *YYCURSOR);
8813
216
    yyaccept = 4;
8814
216
    yych = *(YYMARKER = ++YYCURSOR);
8815
216
    if (yych == 'A') goto yy816;
8816
11
    if (yych == 'a') goto yy816;
8817
6
    goto yy48;
8818
138
yy771:
8819
138
    YYDEBUG(771, *YYCURSOR);
8820
138
    yyaccept = 4;
8821
138
    yych = *(YYMARKER = ++YYCURSOR);
8822
138
    if (yych == 'T') goto yy817;
8823
18
    if (yych == 't') goto yy817;
8824
18
    goto yy48;
8825
68
yy772:
8826
68
    YYDEBUG(772, *YYCURSOR);
8827
68
    yyaccept = 4;
8828
68
    yych = *(YYMARKER = ++YYCURSOR);
8829
68
    if (yych == '_') goto yy818;
8830
3
    goto yy48;
8831
694
yy773:
8832
694
    YYDEBUG(773, *YYCURSOR);
8833
694
    ++YYCURSOR;
8834
694
    YYFILL(1);
8835
694
    yych = *YYCURSOR;
8836
694
    if (yybm[0+yych] & 128) {
8837
6
      goto yy443;
8838
6
    }
8839
688
    if (yych <= 0x00) goto yy86;
8840
688
    if (yych <= '\r') goto yy709;
8841
0
    goto yy547;
8842
141
yy774:
8843
141
    YYDEBUG(774, *YYCURSOR);
8844
141
    yyaccept = 26;
8845
141
    YYMARKER = ++YYCURSOR;
8846
141
    YYFILL(1);
8847
141
    yych = *YYCURSOR;
8848
141
    if (yybm[0+yych] & 128) {
8849
141
      goto yy443;
8850
141
    }
8851
0
    if (yych <= 0x00) goto yy89;
8852
0
    if (yych <= '\r') goto yy545;
8853
0
    goto yy547;
8854
87
yy775:
8855
87
    YYDEBUG(775, *YYCURSOR);
8856
87
    ++YYCURSOR;
8857
87
    YYFILL(1);
8858
87
    yych = *YYCURSOR;
8859
87
    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
87
    } else {
8869
87
      if (yych <= '*') {
8870
18
        if (yych <= ')') goto yy443;
8871
18
        goto yy547;
8872
69
      } else {
8873
69
        if (yych == '.') goto yy820;
8874
9
        goto yy443;
8875
69
      }
8876
87
    }
8877
1.55k
yy776:
8878
1.55k
    YYDEBUG(776, *YYCURSOR);
8879
1.55k
    ++YYCURSOR;
8880
1.55k
    YYFILL(1);
8881
1.55k
    yych = *YYCURSOR;
8882
1.55k
    if (yybm[0+yych] & 128) {
8883
285
      goto yy443;
8884
285
    }
8885
1.27k
    if (yych <= 0x00) goto yy86;
8886
1.26k
    if (yych <= '\r') goto yy545;
8887
1.26k
    goto yy821;
8888
1.26k
yy777:
8889
2
    YYDEBUG(777, *YYCURSOR);
8890
2
    ++YYCURSOR;
8891
2
    YYDEBUG(778, *YYCURSOR);
8892
2
    yyleng = YYCURSOR - SCNG(yy_text);
8893
2
#line 1699 "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
8
yy779:
8905
8
    YYDEBUG(779, *YYCURSOR);
8906
8
    ++YYCURSOR;
8907
8
    YYDEBUG(780, *YYCURSOR);
8908
8
    yyleng = YYCURSOR - SCNG(yy_text);
8909
8
#line 1641 "Zend/zend_language_scanner.l"
8910
8
    {
8911
8
  if (PARSER_MODE()) {
8912
8
    zend_error(E_DEPRECATED, "Non-canonical cast (integer) is deprecated, use the (int) cast instead");
8913
8
    if (EG(exception)) {
8914
0
      RETURN_TOKEN(T_ERROR);
8915
0
    }
8916
8
  }
8917
8
  RETURN_TOKEN(T_INT_CAST);
8918
8
}
8919
0
#line 8920 "Zend/zend_language_scanner.c"
8920
126
yy781:
8921
126
    YYDEBUG(781, *YYCURSOR);
8922
126
    yyaccept = 4;
8923
126
    yych = *(YYMARKER = ++YYCURSOR);
8924
126
    if (yych == 'E') goto yy822;
8925
53
    if (yych == 'e') goto yy822;
8926
6
    goto yy48;
8927
1.60k
yy782:
8928
1.60k
    YYDEBUG(782, *YYCURSOR);
8929
1.60k
    yyaccept = 4;
8930
1.60k
    yych = *(YYMARKER = ++YYCURSOR);
8931
1.60k
    if (yych == 'H') goto yy824;
8932
1.17k
    if (yych == 'h') goto yy824;
8933
186
    goto yy48;
8934
186
yy783:
8935
43
    YYDEBUG(783, *YYCURSOR);
8936
43
    yyaccept = 76;
8937
43
    yych = *(YYMARKER = ++YYCURSOR);
8938
43
    if (yybm[256+yych] & 128) {
8939
0
      goto yy47;
8940
0
    }
8941
43
    if (yych == '\\') goto yy164;
8942
43
yy784:
8943
43
    YYDEBUG(784, *YYCURSOR);
8944
43
    yyleng = YYCURSOR - SCNG(yy_text);
8945
43
#line 1521 "Zend/zend_language_scanner.l"
8946
43
    {
8947
43
  RETURN_TOKEN_WITH_IDENT(T_ENDSWITCH);
8948
43
}
8949
0
#line 8950 "Zend/zend_language_scanner.c"
8950
32
yy785:
8951
32
    YYDEBUG(785, *YYCURSOR);
8952
32
    yych = *++YYCURSOR;
8953
32
    if (yych == 'N') goto yy826;
8954
32
    if (yych == 'n') goto yy826;
8955
9
    goto yy86;
8956
602
yy786:
8957
602
    YYDEBUG(786, *YYCURSOR);
8958
602
    yych = *++YYCURSOR;
8959
602
    if (yych == 'E') goto yy827;
8960
506
    if (yych == 'e') goto yy827;
8961
54
    goto yy86;
8962
136k
yy787:
8963
136k
    YYDEBUG(787, *YYCURSOR);
8964
136k
    ++YYCURSOR;
8965
136k
    YYFILL(1);
8966
136k
    yych = *YYCURSOR;
8967
136k
    YYDEBUG(788, *YYCURSOR);
8968
136k
    if (yych <= '@') {
8969
126k
      if (yych <= ' ') {
8970
27.9k
        if (yych <= '\n') {
8971
524
          if (yych <= 0x00) goto yy86;
8972
436
          if (yych <= 0x08) goto yy590;
8973
351
          goto yy787;
8974
27.4k
        } else {
8975
27.4k
          if (yych == '\r') goto yy787;
8976
24.7k
          if (yych <= 0x1F) goto yy590;
8977
24.7k
          goto yy787;
8978
24.7k
        }
8979
98.5k
      } else {
8980
98.5k
        if (yych <= ')') {
8981
85.8k
          if (yych == '#') goto yy828;
8982
2.80k
          goto yy590;
8983
85.8k
        } else {
8984
12.6k
          if (yych <= '*') goto yy668;
8985
12.6k
          if (yych == '/') goto yy829;
8986
445
          goto yy590;
8987
12.6k
        }
8988
98.5k
      }
8989
126k
    } else {
8990
9.91k
      if (yych <= '_') {
8991
715
        if (yych <= 'H') {
8992
228
          if (yych == 'E') goto yy831;
8993
222
          goto yy830;
8994
487
        } else {
8995
487
          if (yych <= 'I') goto yy832;
8996
481
          if (yych <= 'Z') goto yy830;
8997
448
          if (yych <= '^') goto yy590;
8998
0
          goto yy830;
8999
448
        }
9000
9.19k
      } else {
9001
9.19k
        if (yych <= 'h') {
9002
4.17k
          if (yych <= '`') goto yy590;
9003
4.13k
          if (yych == 'e') goto yy831;
9004
1.75k
          goto yy830;
9005
5.02k
        } else {
9006
5.02k
          if (yych <= 'i') goto yy832;
9007
1.24k
          if (yych <= 'z') goto yy830;
9008
801
          if (yych <= 0x7F) goto yy590;
9009
161
          goto yy830;
9010
801
        }
9011
9.19k
      }
9012
9.91k
    }
9013
5.73k
yy789:
9014
5.73k
    YYDEBUG(789, *YYCURSOR);
9015
5.73k
    ++YYCURSOR;
9016
5.73k
    YYFILL(1);
9017
5.73k
    yych = *YYCURSOR;
9018
5.73k
    YYDEBUG(790, *YYCURSOR);
9019
5.73k
    if (yych <= '\r') {
9020
728
      if (yych <= '\t') {
9021
284
        if (yych <= 0x00) goto yy86;
9022
18
        goto yy738;
9023
444
      } else {
9024
444
        if (yych <= '\n') goto yy787;
9025
438
        if (yych <= '\f') goto yy738;
9026
438
        goto yy787;
9027
438
      }
9028
5.00k
    } else {
9029
5.00k
      if (yych <= '*') {
9030
1.00k
        if (yych <= ')') goto yy738;
9031
93
        goto yy789;
9032
4.00k
      } else {
9033
4.00k
        if (yych == '/') goto yy588;
9034
507
        goto yy738;
9035
4.00k
      }
9036
5.00k
    }
9037
204
yy791:
9038
204
    YYDEBUG(791, *YYCURSOR);
9039
204
    ++YYCURSOR;
9040
204
    YYFILL(1);
9041
204
    yych = *YYCURSOR;
9042
204
    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
201
    } else {
9052
201
      if (yych <= 'E') {
9053
15
        if (yych <= 'D') goto yy586;
9054
0
        goto yy833;
9055
186
      } else {
9056
186
        if (yych == 'e') goto yy833;
9057
36
        goto yy586;
9058
186
      }
9059
201
    }
9060
5.26k
yy792:
9061
5.26k
    YYDEBUG(792, *YYCURSOR);
9062
5.26k
    ++YYCURSOR;
9063
5.26k
    YYFILL(1);
9064
5.26k
    yych = *YYCURSOR;
9065
5.26k
    if (yych <= '\r') {
9066
141
      if (yych <= '\t') {
9067
132
        if (yych <= 0x00) goto yy86;
9068
9
        goto yy586;
9069
132
      } else {
9070
9
        if (yych <= '\n') goto yy495;
9071
3
        if (yych <= '\f') goto yy586;
9072
3
        goto yy495;
9073
3
      }
9074
5.12k
    } else {
9075
5.12k
      if (yych <= 'L') {
9076
141
        if (yych <= 'K') goto yy586;
9077
33
        goto yy834;
9078
4.98k
      } else {
9079
4.98k
        if (yych == 'l') goto yy834;
9080
84
        goto yy586;
9081
4.98k
      }
9082
5.12k
    }
9083
1.38k
yy793:
9084
1.38k
    YYDEBUG(793, *YYCURSOR);
9085
1.38k
    yyaccept = 4;
9086
1.38k
    yych = *(YYMARKER = ++YYCURSOR);
9087
1.38k
    if (yych == 'S') goto yy835;
9088
1.35k
    if (yych == 's') goto yy835;
9089
19
    goto yy48;
9090
52
yy794:
9091
52
    YYDEBUG(794, *YYCURSOR);
9092
52
    yyaccept = 4;
9093
52
    yych = *(YYMARKER = ++YYCURSOR);
9094
52
    if (yych == 'N') goto yy837;
9095
12
    if (yych == 'n') goto yy837;
9096
0
    goto yy48;
9097
697
yy795:
9098
697
    YYDEBUG(795, *YYCURSOR);
9099
697
    yyaccept = 4;
9100
697
    yych = *(YYMARKER = ++YYCURSOR);
9101
697
    if (yych == 'F') goto yy838;
9102
648
    if (yych == 'f') goto yy838;
9103
254
    goto yy48;
9104
570
yy796:
9105
570
    YYDEBUG(796, *YYCURSOR);
9106
570
    yyaccept = 77;
9107
570
    yych = *(YYMARKER = ++YYCURSOR);
9108
570
    if (yybm[256+yych] & 128) {
9109
6
      goto yy47;
9110
6
    }
9111
564
    if (yych == '\\') goto yy164;
9112
564
yy797:
9113
564
    YYDEBUG(797, *YYCURSOR);
9114
564
    yyleng = YYCURSOR - SCNG(yy_text);
9115
564
#line 1745 "Zend/zend_language_scanner.l"
9116
564
    {
9117
564
    RETURN_TOKEN_WITH_IDENT(T_INSTEADOF);
9118
564
}
9119
0
#line 9120 "Zend/zend_language_scanner.c"
9120
1.36k
yy798:
9121
1.36k
    YYDEBUG(798, *YYCURSOR);
9122
1.36k
    yyaccept = 78;
9123
1.36k
    yych = *(YYMARKER = ++YYCURSOR);
9124
1.36k
    if (yybm[256+yych] & 128) {
9125
113
      goto yy47;
9126
113
    }
9127
1.24k
    if (yych == '\\') goto yy164;
9128
1.24k
yy799:
9129
1.24k
    YYDEBUG(799, *YYCURSOR);
9130
1.24k
    yyleng = YYCURSOR - SCNG(yy_text);
9131
1.24k
#line 1557 "Zend/zend_language_scanner.l"
9132
1.24k
    {
9133
1.24k
  RETURN_TOKEN_WITH_IDENT(T_INTERFACE);
9134
1.24k
}
9135
0
#line 9136 "Zend/zend_language_scanner.c"
9136
3.08k
yy800:
9137
3.08k
    YYDEBUG(800, *YYCURSOR);
9138
3.08k
    yyaccept = 79;
9139
3.08k
    yych = *(YYMARKER = ++YYCURSOR);
9140
3.08k
    if (yybm[256+yych] & 128) {
9141
44
      goto yy47;
9142
44
    }
9143
3.04k
    if (yych == '\\') goto yy840;
9144
2.64k
yy801:
9145
2.64k
    YYDEBUG(801, *YYCURSOR);
9146
2.64k
    yyleng = YYCURSOR - SCNG(yy_text);
9147
2.64k
#line 1737 "Zend/zend_language_scanner.l"
9148
2.64k
    {
9149
2.64k
  RETURN_TOKEN_WITH_IDENT(T_NAMESPACE);
9150
2.64k
}
9151
0
#line 9152 "Zend/zend_language_scanner.c"
9152
190
yy802:
9153
190
    YYDEBUG(802, *YYCURSOR);
9154
190
    yych = *++YYCURSOR;
9155
190
    if (yych == 'E') goto yy841;
9156
190
    if (yych == 'e') goto yy841;
9157
33
    goto yy86;
9158
2.37k
yy803:
9159
2.37k
    YYDEBUG(803, *YYCURSOR);
9160
2.37k
    yyaccept = 80;
9161
2.37k
    yych = *(YYMARKER = ++YYCURSOR);
9162
2.37k
    if (yybm[256+yych] & 128) {
9163
66
      goto yy47;
9164
66
    }
9165
2.30k
    if (yych == '(') goto yy842;
9166
2.20k
    if (yych == '\\') goto yy164;
9167
2.22k
yy804:
9168
2.22k
    YYDEBUG(804, *YYCURSOR);
9169
2.22k
    yyleng = YYCURSOR - SCNG(yy_text);
9170
2.22k
#line 1781 "Zend/zend_language_scanner.l"
9171
2.22k
    {
9172
2.22k
  RETURN_TOKEN_WITH_IDENT(T_PROTECTED);
9173
2.22k
}
9174
0
#line 9175 "Zend/zend_language_scanner.c"
9175
16
yy805:
9176
16
    YYDEBUG(805, *YYCURSOR);
9177
16
    yych = *++YYCURSOR;
9178
16
    if (yych == 'T') goto yy843;
9179
16
    if (yych == 't') goto yy843;
9180
0
    goto yy86;
9181
169
yy806:
9182
169
    YYDEBUG(806, *YYCURSOR);
9183
169
    yyaccept = 4;
9184
169
    yych = *(YYMARKER = ++YYCURSOR);
9185
169
    if (yych == 'N') goto yy844;
9186
141
    if (yych == 'n') goto yy844;
9187
0
    goto yy48;
9188
824
yy807:
9189
824
    YYDEBUG(807, *YYCURSOR);
9190
824
    yych = *++YYCURSOR;
9191
824
    if (yych == 'M') goto yy845;
9192
683
    if (yych == 'm') goto yy845;
9193
0
    goto yy86;
9194
73.2k
yy808:
9195
73.2k
    YYDEBUG(808, *YYCURSOR);
9196
73.2k
    ++YYCURSOR;
9197
73.2k
    YYFILL(1);
9198
73.2k
    yych = *YYCURSOR;
9199
73.2k
    YYDEBUG(809, *YYCURSOR);
9200
73.2k
    if (yych <= '\f') {
9201
6.80k
      if (yych <= 0x00) goto yy86;
9202
6.41k
      if (yych == '\n') goto yy846;
9203
492
      goto yy808;
9204
66.4k
    } else {
9205
66.4k
      if (yych <= '\r') goto yy846;
9206
63.8k
      if (yych == '*') goto yy848;
9207
61.3k
      goto yy808;
9208
63.8k
    }
9209
165
yy810:
9210
165
    YYDEBUG(810, *YYCURSOR);
9211
165
    ++YYCURSOR;
9212
165
    YYFILL(1);
9213
165
    yych = *YYCURSOR;
9214
165
    if (yych <= '\r') {
9215
18
      if (yych <= '\t') {
9216
9
        if (yych <= 0x00) goto yy86;
9217
9
        goto yy692;
9218
9
      } else {
9219
9
        if (yych <= '\n') goto yy616;
9220
0
        if (yych <= '\f') goto yy692;
9221
0
        goto yy616;
9222
0
      }
9223
147
    } else {
9224
147
      if (yych <= 'O') {
9225
108
        if (yych <= 'N') goto yy692;
9226
102
        goto yy850;
9227
108
      } else {
9228
39
        if (yych == 'o') goto yy850;
9229
6
        goto yy692;
9230
39
      }
9231
147
    }
9232
372
yy811:
9233
372
    YYDEBUG(811, *YYCURSOR);
9234
372
    yyaccept = 81;
9235
372
    yych = *(YYMARKER = ++YYCURSOR);
9236
372
    if (yybm[256+yych] & 128) {
9237
3
      goto yy47;
9238
3
    }
9239
369
    if (yych == '\\') goto yy164;
9240
369
yy812:
9241
369
    YYDEBUG(812, *YYCURSOR);
9242
369
    yyleng = YYCURSOR - SCNG(yy_text);
9243
369
#line 2252 "Zend/zend_language_scanner.l"
9244
369
    {
9245
369
  RETURN_TOKEN_WITH_IDENT(T_CLASS_C);
9246
369
}
9247
0
#line 9248 "Zend/zend_language_scanner.c"
9248
713
yy813:
9249
713
    YYDEBUG(813, *YYCURSOR);
9250
713
    yyaccept = 4;
9251
713
    yych = *(YYMARKER = ++YYCURSOR);
9252
713
    if (yych == 'N') goto yy851;
9253
4
    if (yych == 'n') goto yy851;
9254
2
    goto yy48;
9255
93
yy814:
9256
93
    YYDEBUG(814, *YYCURSOR);
9257
93
    yyaccept = 4;
9258
93
    yych = *(YYMARKER = ++YYCURSOR);
9259
93
    if (yych == 'M') goto yy852;
9260
72
    if (yych == 'm') goto yy852;
9261
0
    goto yy48;
9262
2.92k
yy815:
9263
2.92k
    YYDEBUG(815, *YYCURSOR);
9264
2.92k
    yyaccept = 4;
9265
2.92k
    yych = *(YYMARKER = ++YYCURSOR);
9266
2.92k
    if (yych == '_') goto yy853;
9267
13
    goto yy48;
9268
210
yy816:
9269
210
    YYDEBUG(816, *YYCURSOR);
9270
210
    yyaccept = 4;
9271
210
    yych = *(YYMARKER = ++YYCURSOR);
9272
210
    if (yych == 'C') goto yy855;
9273
8
    if (yych == 'c') goto yy855;
9274
4
    goto yy48;
9275
120
yy817:
9276
120
    YYDEBUG(817, *YYCURSOR);
9277
120
    yyaccept = 4;
9278
120
    yych = *(YYMARKER = ++YYCURSOR);
9279
120
    if (yych == 'Y') goto yy856;
9280
0
    if (yych == 'y') goto yy856;
9281
0
    goto yy48;
9282
65
yy818:
9283
65
    YYDEBUG(818, *YYCURSOR);
9284
65
    yyaccept = 82;
9285
65
    yych = *(YYMARKER = ++YYCURSOR);
9286
65
    if (yybm[256+yych] & 128) {
9287
0
      goto yy47;
9288
0
    }
9289
65
    if (yych == '\\') goto yy164;
9290
65
yy819:
9291
65
    YYDEBUG(819, *YYCURSOR);
9292
65
    yyleng = YYCURSOR - SCNG(yy_text);
9293
65
#line 2256 "Zend/zend_language_scanner.l"
9294
65
    {
9295
65
  RETURN_TOKEN_WITH_IDENT(T_TRAIT_C);
9296
65
}
9297
0
#line 9298 "Zend/zend_language_scanner.c"
9298
60
yy820:
9299
60
    YYDEBUG(820, *YYCURSOR);
9300
60
    ++YYCURSOR;
9301
60
    YYFILL(1);
9302
60
    yych = *YYCURSOR;
9303
60
    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
60
    } else {
9313
60
      if (yych <= '*') {
9314
0
        if (yych <= ')') goto yy443;
9315
0
        goto yy547;
9316
60
      } else {
9317
60
        if (yych == '.') goto yy774;
9318
60
        goto yy443;
9319
60
      }
9320
60
    }
9321
1.26k
yy821:
9322
1.26k
    YYDEBUG(821, *YYCURSOR);
9323
1.26k
    ++YYCURSOR;
9324
1.26k
    YYFILL(1);
9325
1.26k
    yych = *YYCURSOR;
9326
1.26k
    if (yych <= '\r') {
9327
21
      if (yych <= '\t') {
9328
3
        if (yych <= 0x00) goto yy86;
9329
0
        goto yy443;
9330
18
      } else {
9331
18
        if (yych <= '\n') goto yy545;
9332
0
        if (yych <= '\f') goto yy443;
9333
0
        goto yy545;
9334
0
      }
9335
1.24k
    } else {
9336
1.24k
      if (yych <= '*') {
9337
78
        if (yych <= ')') goto yy443;
9338
0
        goto yy547;
9339
1.16k
      } else {
9340
1.16k
        if (yych == '/') goto yy709;
9341
64
        goto yy443;
9342
1.16k
      }
9343
1.24k
    }
9344
120
yy822:
9345
120
    YYDEBUG(822, *YYCURSOR);
9346
120
    yyaccept = 83;
9347
120
    yych = *(YYMARKER = ++YYCURSOR);
9348
120
    if (yybm[256+yych] & 128) {
9349
12
      goto yy47;
9350
12
    }
9351
108
    if (yych == '\\') goto yy164;
9352
108
yy823:
9353
108
    YYDEBUG(823, *YYCURSOR);
9354
108
    yyleng = YYCURSOR - SCNG(yy_text);
9355
108
#line 1501 "Zend/zend_language_scanner.l"
9356
108
    {
9357
108
  RETURN_TOKEN_WITH_IDENT(T_ENDDECLARE);
9358
108
}
9359
0
#line 9360 "Zend/zend_language_scanner.c"
9360
1.41k
yy824:
9361
1.41k
    YYDEBUG(824, *YYCURSOR);
9362
1.41k
    yyaccept = 84;
9363
1.41k
    yych = *(YYMARKER = ++YYCURSOR);
9364
1.41k
    if (yybm[256+yych] & 128) {
9365
135
      goto yy47;
9366
135
    }
9367
1.28k
    if (yych == '\\') goto yy164;
9368
1.28k
yy825:
9369
1.28k
    YYDEBUG(825, *YYCURSOR);
9370
1.28k
    yyleng = YYCURSOR - SCNG(yy_text);
9371
1.28k
#line 1493 "Zend/zend_language_scanner.l"
9372
1.28k
    {
9373
1.28k
  RETURN_TOKEN_WITH_IDENT(T_ENDFOREACH);
9374
1.28k
}
9375
0
#line 9376 "Zend/zend_language_scanner.c"
9376
23
yy826:
9377
23
    YYDEBUG(826, *YYCURSOR);
9378
23
    yych = *++YYCURSOR;
9379
23
    if (yych == 'D') goto yy857;
9380
23
    if (yych == 'd') goto yy857;
9381
21
    goto yy86;
9382
548
yy827:
9383
548
    YYDEBUG(827, *YYCURSOR);
9384
548
    yych = *++YYCURSOR;
9385
548
    if (yych == 'M') goto yy858;
9386
494
    if (yych == 'm') goto yy858;
9387
338
    goto yy86;
9388
83.0k
yy828:
9389
83.0k
    YYDEBUG(828, *YYCURSOR);
9390
83.0k
    ++YYCURSOR;
9391
83.0k
    YYFILL(1);
9392
83.0k
    yych = *YYCURSOR;
9393
83.0k
    if (yych <= '\r') {
9394
69.2k
      if (yych <= '\t') {
9395
1.89k
        if (yych <= 0x00) goto yy86;
9396
1.83k
        goto yy738;
9397
67.3k
      } else {
9398
67.3k
        if (yych <= '\n') goto yy859;
9399
8.79k
        if (yych <= '\f') goto yy738;
9400
8.53k
        goto yy859;
9401
8.79k
      }
9402
69.2k
    } else {
9403
13.7k
      if (yych <= '*') {
9404
436
        if (yych <= ')') goto yy738;
9405
141
        goto yy789;
9406
13.3k
      } else {
9407
13.3k
        if (yych == '[') goto yy590;
9408
13.3k
        goto yy738;
9409
13.3k
      }
9410
13.7k
    }
9411
12.2k
yy829:
9412
12.2k
    YYDEBUG(829, *YYCURSOR);
9413
12.2k
    ++YYCURSOR;
9414
12.2k
    YYFILL(1);
9415
12.2k
    yych = *YYCURSOR;
9416
12.2k
    if (yych <= '*') {
9417
11.8k
      if (yych <= 0x00) goto yy86;
9418
11.8k
      if (yych <= ')') goto yy590;
9419
11.8k
      goto yy861;
9420
11.8k
    } else {
9421
363
      if (yych == '/') goto yy738;
9422
105
      goto yy590;
9423
363
    }
9424
2.61k
yy830:
9425
2.61k
    YYDEBUG(830, *YYCURSOR);
9426
2.61k
    yyaccept = 53;
9427
2.61k
    YYMARKER = ++YYCURSOR;
9428
2.61k
    YYFILL(1);
9429
2.61k
    yych = *YYCURSOR;
9430
2.61k
    if (yych <= 0x00) goto yy583;
9431
2.56k
    if (yych == '*') goto yy668;
9432
2.53k
    goto yy590;
9433
2.53k
yy831:
9434
2.39k
    YYDEBUG(831, *YYCURSOR);
9435
2.39k
    yyaccept = 53;
9436
2.39k
    YYMARKER = ++YYCURSOR;
9437
2.39k
    YYFILL(1);
9438
2.39k
    yych = *YYCURSOR;
9439
2.39k
    if (yych <= 'W') {
9440
1.60k
      if (yych <= 0x00) goto yy583;
9441
1.60k
      if (yych == '*') goto yy668;
9442
18
      goto yy590;
9443
1.60k
    } else {
9444
788
      if (yych <= 'X') goto yy862;
9445
788
      if (yych == 'x') goto yy862;
9446
614
      goto yy590;
9447
788
    }
9448
3.78k
yy832:
9449
3.78k
    YYDEBUG(832, *YYCURSOR);
9450
3.78k
    yyaccept = 53;
9451
3.78k
    YYMARKER = ++YYCURSOR;
9452
3.78k
    YYFILL(1);
9453
3.78k
    yych = *YYCURSOR;
9454
3.78k
    if (yych <= 'L') {
9455
228
      if (yych <= 0x00) goto yy583;
9456
225
      if (yych == '*') goto yy668;
9457
225
      goto yy590;
9458
3.55k
    } else {
9459
3.55k
      if (yych <= 'M') goto yy863;
9460
3.55k
      if (yych == 'm') goto yy863;
9461
73
      goto yy590;
9462
3.55k
    }
9463
150
yy833:
9464
150
    YYDEBUG(833, *YYCURSOR);
9465
150
    ++YYCURSOR;
9466
150
    YYFILL(1);
9467
150
    yych = *YYCURSOR;
9468
150
    if (yych <= '\r') {
9469
9
      if (yych <= '\t') {
9470
0
        if (yych <= 0x00) goto yy86;
9471
0
        goto yy586;
9472
9
      } else {
9473
9
        if (yych <= '\n') goto yy495;
9474
9
        if (yych <= '\f') goto yy586;
9475
9
        goto yy495;
9476
9
      }
9477
141
    } else {
9478
141
      if (yych <= 'N') {
9479
9
        if (yych <= 'M') goto yy586;
9480
0
        goto yy864;
9481
132
      } else {
9482
132
        if (yych == 'n') goto yy864;
9483
36
        goto yy586;
9484
132
      }
9485
141
    }
9486
4.93k
yy834:
9487
4.93k
    YYDEBUG(834, *YYCURSOR);
9488
4.93k
    ++YYCURSOR;
9489
4.93k
    YYFILL(1);
9490
4.93k
    yych = *YYCURSOR;
9491
4.93k
    if (yych <= '\r') {
9492
327
      if (yych <= '\t') {
9493
9
        if (yych <= 0x00) goto yy86;
9494
9
        goto yy586;
9495
318
      } else {
9496
318
        if (yych <= '\n') goto yy495;
9497
249
        if (yych <= '\f') goto yy586;
9498
63
        goto yy495;
9499
249
      }
9500
4.60k
    } else {
9501
4.60k
      if (yych <= 'E') {
9502
127
        if (yych <= 'D') goto yy586;
9503
42
        goto yy865;
9504
4.47k
      } else {
9505
4.47k
        if (yych == 'e') goto yy865;
9506
198
        goto yy586;
9507
4.47k
      }
9508
4.60k
    }
9509
1.36k
yy835:
9510
1.36k
    YYDEBUG(835, *YYCURSOR);
9511
1.36k
    yyaccept = 85;
9512
1.36k
    yych = *(YYMARKER = ++YYCURSOR);
9513
1.36k
    if (yybm[256+yych] & 128) {
9514
8
      goto yy47;
9515
8
    }
9516
1.35k
    if (yych == '\\') goto yy164;
9517
1.35k
yy836:
9518
1.35k
    YYDEBUG(836, *YYCURSOR);
9519
1.35k
    yyleng = YYCURSOR - SCNG(yy_text);
9520
1.35k
#line 1582 "Zend/zend_language_scanner.l"
9521
1.35k
    {
9522
1.35k
  RETURN_TOKEN_WITH_IDENT(T_IMPLEMENTS);
9523
1.35k
}
9524
0
#line 9525 "Zend/zend_language_scanner.c"
9525
52
yy837:
9526
52
    YYDEBUG(837, *YYCURSOR);
9527
52
    yyaccept = 4;
9528
52
    yych = *(YYMARKER = ++YYCURSOR);
9529
52
    if (yych == 'C') goto yy866;
9530
30
    if (yych == 'c') goto yy866;
9531
18
    goto yy48;
9532
443
yy838:
9533
443
    YYDEBUG(838, *YYCURSOR);
9534
443
    yyaccept = 86;
9535
443
    yych = *(YYMARKER = ++YYCURSOR);
9536
443
    if (yybm[256+yych] & 128) {
9537
30
      goto yy47;
9538
30
    }
9539
413
    if (yych == '\\') goto yy164;
9540
413
yy839:
9541
413
    YYDEBUG(839, *YYCURSOR);
9542
413
    yyleng = YYCURSOR - SCNG(yy_text);
9543
413
#line 1505 "Zend/zend_language_scanner.l"
9544
413
    {
9545
413
  RETURN_TOKEN_WITH_IDENT(T_INSTANCEOF);
9546
413
}
9547
0
#line 9548 "Zend/zend_language_scanner.c"
9548
445
yy840:
9549
445
    YYDEBUG(840, *YYCURSOR);
9550
445
    ++YYCURSOR;
9551
445
    YYFILL(1);
9552
445
    yych = *YYCURSOR;
9553
445
    if (yych <= '_') {
9554
84
      if (yych <= '@') goto yy86;
9555
54
      if (yych <= 'Z') goto yy867;
9556
5
      if (yych <= '^') goto yy86;
9557
5
      goto yy867;
9558
361
    } else {
9559
361
      if (yych <= '`') goto yy86;
9560
361
      if (yych <= 'z') goto yy867;
9561
89
      if (yych <= 0x7F) goto yy86;
9562
83
      goto yy867;
9563
89
    }
9564
157
yy841:
9565
157
    YYDEBUG(841, *YYCURSOR);
9566
157
    yych = *++YYCURSOR;
9567
157
    if (yych == 'T') goto yy870;
9568
154
    if (yych == 't') goto yy870;
9569
0
    goto yy86;
9570
104
yy842:
9571
104
    YYDEBUG(842, *YYCURSOR);
9572
104
    yych = *++YYCURSOR;
9573
104
    if (yych == 'S') goto yy871;
9574
104
    if (yych == 's') goto yy871;
9575
9
    goto yy86;
9576
16
yy843:
9577
16
    YYDEBUG(843, *YYCURSOR);
9578
16
    yych = *++YYCURSOR;
9579
16
    if (yych == ')') goto yy872;
9580
3
    goto yy86;
9581
169
yy844:
9582
169
    YYDEBUG(844, *YYCURSOR);
9583
169
    yyaccept = 4;
9584
169
    yych = *(YYMARKER = ++YYCURSOR);
9585
169
    if (yych == 'C') goto yy874;
9586
141
    if (yych == 'c') goto yy874;
9587
0
    goto yy48;
9588
824
yy845:
9589
824
    YYDEBUG(845, *YYCURSOR);
9590
824
    yych = *++YYCURSOR;
9591
824
    if (yych <= '^') {
9592
786
      if (yych <= '9') {
9593
780
        if (yych <= '/') goto yy875;
9594
2
        goto yy86;
9595
780
      } else {
9596
6
        if (yych <= '@') goto yy875;
9597
0
        if (yych <= 'Z') goto yy86;
9598
0
        goto yy875;
9599
0
      }
9600
786
    } else {
9601
38
      if (yych <= '`') {
9602
0
        if (yych <= '_') goto yy86;
9603
0
        goto yy875;
9604
38
      } else {
9605
38
        if (yych <= 'z') goto yy86;
9606
3
        if (yych <= 0x7F) goto yy875;
9607
3
        goto yy86;
9608
3
      }
9609
38
    }
9610
16.4k
yy846:
9611
16.4k
    YYDEBUG(846, *YYCURSOR);
9612
16.4k
    ++YYCURSOR;
9613
16.4k
    YYFILL(1);
9614
16.4k
    yych = *YYCURSOR;
9615
16.4k
    YYDEBUG(847, *YYCURSOR);
9616
16.4k
    if (yych <= '#') {
9617
10.6k
      if (yych <= '\f') {
9618
378
        if (yych <= 0x00) goto yy86;
9619
180
        if (yych <= 0x08) goto yy696;
9620
144
        if (yych <= '\n') goto yy846;
9621
0
        goto yy696;
9622
10.3k
      } else {
9623
10.3k
        if (yych <= 0x1F) {
9624
1.75k
          if (yych <= '\r') goto yy846;
9625
75
          goto yy696;
9626
8.54k
        } else {
9627
8.54k
          if (yych <= ' ') goto yy846;
9628
7.77k
          if (yych <= '"') goto yy696;
9629
7.74k
          goto yy877;
9630
7.77k
        }
9631
10.3k
      }
9632
10.6k
    } else {
9633
5.79k
      if (yych <= '/') {
9634
4.01k
        if (yych == '*') goto yy760;
9635
3.99k
        if (yych <= '.') goto yy696;
9636
2.98k
        goto yy878;
9637
3.99k
      } else {
9638
1.78k
        if (yych <= 'F') {
9639
882
          if (yych <= 'E') goto yy696;
9640
840
          goto yy879;
9641
900
        } else {
9642
900
          if (yych == 'f') goto yy879;
9643
873
          goto yy696;
9644
900
        }
9645
1.78k
      }
9646
5.79k
    }
9647
2.63k
yy848:
9648
2.63k
    YYDEBUG(848, *YYCURSOR);
9649
2.63k
    ++YYCURSOR;
9650
2.63k
    YYFILL(1);
9651
2.63k
    yych = *YYCURSOR;
9652
2.63k
    YYDEBUG(849, *YYCURSOR);
9653
2.63k
    if (yych <= '\r') {
9654
1.25k
      if (yych <= '\t') {
9655
39
        if (yych <= 0x00) goto yy86;
9656
0
        goto yy808;
9657
1.21k
      } else {
9658
1.21k
        if (yych <= '\n') goto yy846;
9659
363
        if (yych <= '\f') goto yy808;
9660
363
        goto yy846;
9661
363
      }
9662
1.38k
    } else {
9663
1.38k
      if (yych <= '*') {
9664
894
        if (yych <= ')') goto yy808;
9665
12
        goto yy848;
9666
894
      } else {
9667
486
        if (yych == '/') goto yy694;
9668
114
        goto yy808;
9669
486
      }
9670
1.38k
    }
9671
135
yy850:
9672
135
    YYDEBUG(850, *YYCURSOR);
9673
135
    ++YYCURSOR;
9674
135
    YYFILL(1);
9675
135
    yych = *YYCURSOR;
9676
135
    if (yych <= '\r') {
9677
9
      if (yych <= '\t') {
9678
3
        if (yych <= 0x00) goto yy86;
9679
3
        goto yy692;
9680
6
      } else {
9681
6
        if (yych <= '\n') goto yy616;
9682
6
        if (yych <= '\f') goto yy692;
9683
6
        goto yy616;
9684
6
      }
9685
126
    } else {
9686
126
      if (yych <= 'M') {
9687
87
        if (yych <= 'L') goto yy692;
9688
87
        goto yy880;
9689
87
      } else {
9690
39
        if (yych == 'm') goto yy880;
9691
12
        goto yy692;
9692
39
      }
9693
126
    }
9694
711
yy851:
9695
711
    YYDEBUG(851, *YYCURSOR);
9696
711
    yyaccept = 4;
9697
711
    yych = *(YYMARKER = ++YYCURSOR);
9698
711
    if (yych == '_') goto yy881;
9699
29
    goto yy48;
9700
93
yy852:
9701
93
    YYDEBUG(852, *YYCURSOR);
9702
93
    yyaccept = 4;
9703
93
    yych = *(YYMARKER = ++YYCURSOR);
9704
93
    if (yych == 'P') goto yy882;
9705
72
    if (yych == 'p') goto yy882;
9706
0
    goto yy48;
9707
2.91k
yy853:
9708
2.91k
    YYDEBUG(853, *YYCURSOR);
9709
2.91k
    yyaccept = 87;
9710
2.91k
    yych = *(YYMARKER = ++YYCURSOR);
9711
2.91k
    if (yybm[256+yych] & 128) {
9712
9
      goto yy47;
9713
9
    }
9714
2.90k
    if (yych == '\\') goto yy164;
9715
2.90k
yy854:
9716
2.90k
    YYDEBUG(854, *YYCURSOR);
9717
2.90k
    yyleng = YYCURSOR - SCNG(yy_text);
9718
2.90k
#line 2268 "Zend/zend_language_scanner.l"
9719
2.90k
    {
9720
2.90k
  RETURN_TOKEN_WITH_IDENT(T_METHOD_C);
9721
2.90k
}
9722
0
#line 9723 "Zend/zend_language_scanner.c"
9723
206
yy855:
9724
206
    YYDEBUG(855, *YYCURSOR);
9725
206
    yyaccept = 4;
9726
206
    yych = *(YYMARKER = ++YYCURSOR);
9727
206
    if (yych == 'E') goto yy883;
9728
7
    if (yych == 'e') goto yy883;
9729
3
    goto yy48;
9730
120
yy856:
9731
120
    YYDEBUG(856, *YYCURSOR);
9732
120
    yyaccept = 4;
9733
120
    yych = *(YYMARKER = ++YYCURSOR);
9734
120
    if (yych == '_') goto yy884;
9735
3
    goto yy48;
9736
10
yy857:
9737
10
    YYDEBUG(857, *YYCURSOR);
9738
10
    yych = *++YYCURSOR;
9739
10
    if (yych == 'S') goto yy885;
9740
10
    if (yych == 's') goto yy885;
9741
0
    goto yy86;
9742
210
yy858:
9743
210
    YYDEBUG(858, *YYCURSOR);
9744
210
    yych = *++YYCURSOR;
9745
210
    if (yych == 'E') goto yy887;
9746
123
    if (yych == 'e') goto yy887;
9747
70
    goto yy86;
9748
122k
yy859:
9749
122k
    YYDEBUG(859, *YYCURSOR);
9750
122k
    ++YYCURSOR;
9751
122k
    YYFILL(1);
9752
122k
    yych = *YYCURSOR;
9753
122k
    YYDEBUG(860, *YYCURSOR);
9754
122k
    if (yych <= '@') {
9755
71.1k
      if (yych <= 0x1F) {
9756
2.17k
        if (yych <= '\t') {
9757
894
          if (yych <= 0x00) goto yy86;
9758
771
          if (yych <= 0x08) goto yy738;
9759
771
          goto yy859;
9760
1.27k
        } else {
9761
1.27k
          if (yych <= '\n') goto yy787;
9762
1.23k
          if (yych == '\r') goto yy787;
9763
378
          goto yy738;
9764
1.23k
        }
9765
68.9k
      } else {
9766
68.9k
        if (yych <= ')') {
9767
46.6k
          if (yych <= ' ') goto yy859;
9768
28.4k
          if (yych == '#') goto yy888;
9769
134
          goto yy738;
9770
28.4k
        } else {
9771
22.3k
          if (yych <= '*') goto yy789;
9772
22.3k
          if (yych == '/') goto yy889;
9773
201
          goto yy738;
9774
22.3k
        }
9775
68.9k
      }
9776
71.1k
    } else {
9777
51.2k
      if (yych <= '_') {
9778
202
        if (yych <= 'H') {
9779
9
          if (yych == 'E') goto yy891;
9780
9
          goto yy890;
9781
193
        } else {
9782
193
          if (yych <= 'I') goto yy892;
9783
66
          if (yych <= 'Z') goto yy890;
9784
42
          if (yych <= '^') goto yy738;
9785
12
          goto yy890;
9786
42
        }
9787
51.0k
      } else {
9788
51.0k
        if (yych <= 'h') {
9789
30.9k
          if (yych <= '`') goto yy738;
9790
29.9k
          if (yych == 'e') goto yy891;
9791
57
          goto yy890;
9792
29.9k
        } else {
9793
20.1k
          if (yych <= 'i') goto yy892;
9794
12.2k
          if (yych <= 'z') goto yy890;
9795
9.65k
          if (yych <= 0x7F) goto yy738;
9796
1.14k
          goto yy890;
9797
9.65k
        }
9798
51.0k
      }
9799
51.2k
    }
9800
11.8k
yy861:
9801
11.8k
    YYDEBUG(861, *YYCURSOR);
9802
11.8k
    ++YYCURSOR;
9803
11.8k
    YYFILL(1);
9804
11.8k
    yych = *YYCURSOR;
9805
11.8k
    if (yych <= '*') {
9806
207
      if (yych <= 0x00) goto yy86;
9807
111
      if (yych <= ')') goto yy590;
9808
24
      goto yy668;
9809
11.5k
    } else {
9810
11.5k
      if (yych == '/') goto yy787;
9811
16
      goto yy590;
9812
11.5k
    }
9813
174
yy862:
9814
174
    YYDEBUG(862, *YYCURSOR);
9815
174
    ++YYCURSOR;
9816
174
    YYFILL(1);
9817
174
    yych = *YYCURSOR;
9818
174
    if (yych <= 'S') {
9819
39
      if (yych <= 0x00) goto yy86;
9820
39
      if (yych == '*') goto yy668;
9821
33
      goto yy590;
9822
135
    } else {
9823
135
      if (yych <= 'T') goto yy893;
9824
105
      if (yych == 't') goto yy893;
9825
36
      goto yy590;
9826
105
    }
9827
3.48k
yy863:
9828
3.48k
    YYDEBUG(863, *YYCURSOR);
9829
3.48k
    ++YYCURSOR;
9830
3.48k
    YYFILL(1);
9831
3.48k
    yych = *YYCURSOR;
9832
3.48k
    if (yych <= 'O') {
9833
23
      if (yych <= 0x00) goto yy86;
9834
5
      if (yych == '*') goto yy668;
9835
5
      goto yy590;
9836
3.46k
    } else {
9837
3.46k
      if (yych <= 'P') goto yy894;
9838
3.38k
      if (yych == 'p') goto yy894;
9839
45
      goto yy590;
9840
3.38k
    }
9841
96
yy864:
9842
96
    YYDEBUG(864, *YYCURSOR);
9843
96
    ++YYCURSOR;
9844
96
    YYFILL(1);
9845
96
    yych = *YYCURSOR;
9846
96
    if (yych <= '\r') {
9847
0
      if (yych <= '\t') {
9848
0
        if (yych <= 0x00) goto yy86;
9849
0
        goto yy586;
9850
0
      } else {
9851
0
        if (yych <= '\n') goto yy495;
9852
0
        if (yych <= '\f') goto yy586;
9853
0
        goto yy495;
9854
0
      }
9855
96
    } else {
9856
96
      if (yych <= 'D') {
9857
30
        if (yych <= 'C') goto yy586;
9858
0
        goto yy895;
9859
66
      } else {
9860
66
        if (yych == 'd') goto yy895;
9861
66
        goto yy586;
9862
66
      }
9863
96
    }
9864
4.32k
yy865:
9865
4.32k
    YYDEBUG(865, *YYCURSOR);
9866
4.32k
    ++YYCURSOR;
9867
4.32k
    YYFILL(1);
9868
4.32k
    yych = *YYCURSOR;
9869
4.32k
    if (yych <= '\r') {
9870
288
      if (yych <= '\t') {
9871
12
        if (yych <= 0x00) goto yy86;
9872
0
        goto yy586;
9873
276
      } else {
9874
276
        if (yych <= '\n') goto yy495;
9875
0
        if (yych <= '\f') goto yy586;
9876
0
        goto yy495;
9877
0
      }
9878
4.03k
    } else {
9879
4.03k
      if (yych <= 'M') {
9880
851
        if (yych <= 'L') goto yy586;
9881
674
        goto yy896;
9882
3.18k
      } else {
9883
3.18k
        if (yych == 'm') goto yy896;
9884
3.17k
        goto yy586;
9885
3.18k
      }
9886
4.03k
    }
9887
34
yy866:
9888
34
    YYDEBUG(866, *YYCURSOR);
9889
34
    yyaccept = 4;
9890
34
    yych = *(YYMARKER = ++YYCURSOR);
9891
34
    if (yych == 'E') goto yy897;
9892
12
    if (yych == 'e') goto yy897;
9893
0
    goto yy48;
9894
2.18k
yy867:
9895
2.18k
    YYDEBUG(867, *YYCURSOR);
9896
2.18k
    yyaccept = 88;
9897
2.18k
    YYMARKER = ++YYCURSOR;
9898
2.18k
    YYFILL(1);
9899
2.18k
    yych = *YYCURSOR;
9900
2.18k
    YYDEBUG(868, *YYCURSOR);
9901
2.18k
    if (yych <= '\\') {
9902
803
      if (yych <= '@') {
9903
391
        if (yych <= '/') goto yy869;
9904
201
        if (yych <= '9') goto yy867;
9905
412
      } else {
9906
412
        if (yych <= 'Z') goto yy867;
9907
45
        if (yych >= '\\') goto yy840;
9908
45
      }
9909
1.38k
    } else {
9910
1.38k
      if (yych <= '`') {
9911
25
        if (yych == '_') goto yy867;
9912
1.36k
      } else {
9913
1.36k
        if (yych <= 'z') goto yy867;
9914
203
        if (yych >= 0x80) goto yy867;
9915
203
      }
9916
1.38k
    }
9917
394
yy869:
9918
394
    YYDEBUG(869, *YYCURSOR);
9919
394
    yyleng = YYCURSOR - SCNG(yy_text);
9920
394
#line 2438 "Zend/zend_language_scanner.l"
9921
394
    {
9922
394
  RETURN_TOKEN_WITH_STR(T_NAME_RELATIVE, sizeof("namespace\\") - 1);
9923
394
}
9924
0
#line 9925 "Zend/zend_language_scanner.c"
9925
157
yy870:
9926
157
    YYDEBUG(870, *YYCURSOR);
9927
157
    yych = *++YYCURSOR;
9928
157
    if (yych == ')') goto yy899;
9929
12
    goto yy86;
9930
95
yy871:
9931
95
    YYDEBUG(871, *YYCURSOR);
9932
95
    yych = *++YYCURSOR;
9933
95
    if (yych == 'E') goto yy901;
9934
95
    if (yych == 'e') goto yy901;
9935
3
    goto yy86;
9936
13
yy872:
9937
13
    YYDEBUG(872, *YYCURSOR);
9938
13
    ++YYCURSOR;
9939
13
    YYDEBUG(873, *YYCURSOR);
9940
13
    yyleng = YYCURSOR - SCNG(yy_text);
9941
13
#line 1785 "Zend/zend_language_scanner.l"
9942
13
    {
9943
13
  RETURN_TOKEN_WITH_IDENT(T_PUBLIC_SET);
9944
13
}
9945
0
#line 9946 "Zend/zend_language_scanner.c"
9946
169
yy874:
9947
169
    YYDEBUG(874, *YYCURSOR);
9948
169
    yyaccept = 4;
9949
169
    yych = *(YYMARKER = ++YYCURSOR);
9950
169
    if (yych == 'E') goto yy902;
9951
141
    if (yych == 'e') goto yy902;
9952
3
    goto yy48;
9953
787
yy875:
9954
787
    YYDEBUG(875, *YYCURSOR);
9955
787
    ++YYCURSOR;
9956
1.70k
yy876:
9957
1.70k
    YYDEBUG(876, *YYCURSOR);
9958
1.70k
    yyleng = YYCURSOR - SCNG(yy_text);
9959
1.70k
#line 1427 "Zend/zend_language_scanner.l"
9960
1.70k
    {
9961
1.70k
  yyless(yyleng - 1);
9962
1.70k
  HANDLE_NEWLINES(yytext, yyleng);
9963
1.70k
  RETURN_TOKEN_WITH_IDENT(T_YIELD_FROM);
9964
1.70k
}
9965
0
#line 9966 "Zend/zend_language_scanner.c"
9966
7.75k
yy877:
9967
7.75k
    YYDEBUG(877, *YYCURSOR);
9968
7.75k
    ++YYCURSOR;
9969
7.75k
    YYFILL(1);
9970
7.75k
    yych = *YYCURSOR;
9971
7.75k
    if (yych <= '\r') {
9972
5.36k
      if (yych <= '\t') {
9973
3
        if (yych <= 0x00) goto yy86;
9974
0
        goto yy808;
9975
5.35k
      } else {
9976
5.35k
        if (yych <= '\n') goto yy904;
9977
1.80k
        if (yych <= '\f') goto yy808;
9978
1.80k
        goto yy904;
9979
1.80k
      }
9980
5.36k
    } else {
9981
2.39k
      if (yych <= '*') {
9982
945
        if (yych <= ')') goto yy808;
9983
9
        goto yy848;
9984
1.45k
      } else {
9985
1.45k
        if (yych == '[') goto yy696;
9986
1.41k
        goto yy808;
9987
1.45k
      }
9988
2.39k
    }
9989
2.98k
yy878:
9990
2.98k
    YYDEBUG(878, *YYCURSOR);
9991
2.98k
    ++YYCURSOR;
9992
2.98k
    YYFILL(1);
9993
2.98k
    yych = *YYCURSOR;
9994
2.98k
    if (yych <= '*') {
9995
2.80k
      if (yych <= 0x00) goto yy86;
9996
2.80k
      if (yych <= ')') goto yy696;
9997
2.76k
      goto yy906;
9998
2.80k
    } else {
9999
177
      if (yych == '/') goto yy808;
10000
72
      goto yy696;
10001
177
    }
10002
867
yy879:
10003
867
    YYDEBUG(879, *YYCURSOR);
10004
867
    ++YYCURSOR;
10005
867
    YYFILL(1);
10006
867
    yych = *YYCURSOR;
10007
867
    if (yych <= 'Q') {
10008
15
      if (yych <= 0x00) goto yy86;
10009
15
      if (yych == '*') goto yy760;
10010
15
      goto yy696;
10011
852
    } else {
10012
852
      if (yych <= 'R') goto yy907;
10013
30
      if (yych == 'r') goto yy907;
10014
30
      goto yy696;
10015
30
    }
10016
114
yy880:
10017
114
    YYDEBUG(880, *YYCURSOR);
10018
114
    ++YYCURSOR;
10019
114
    YYFILL(1);
10020
114
    yych = *YYCURSOR;
10021
114
    if (yych <= '9') {
10022
102
      if (yych <= '\n') {
10023
87
        if (yych <= 0x00) goto yy875;
10024
87
        if (yych <= '\t') goto yy908;
10025
87
        goto yy909;
10026
87
      } else {
10027
15
        if (yych == '\r') goto yy909;
10028
9
        if (yych <= '/') goto yy908;
10029
0
        goto yy692;
10030
9
      }
10031
102
    } else {
10032
12
      if (yych <= '_') {
10033
12
        if (yych <= '@') goto yy908;
10034
12
        if (yych <= 'Z') goto yy692;
10035
12
        if (yych <= '^') goto yy908;
10036
0
        goto yy692;
10037
12
      } 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
12
    }
10044
682
yy881:
10045
682
    YYDEBUG(881, *YYCURSOR);
10046
682
    yyaccept = 4;
10047
682
    yych = *(YYMARKER = ++YYCURSOR);
10048
682
    if (yych == '_') goto yy910;
10049
5
    goto yy48;
10050
93
yy882:
10051
93
    YYDEBUG(882, *YYCURSOR);
10052
93
    yyaccept = 4;
10053
93
    yych = *(YYMARKER = ++YYCURSOR);
10054
93
    if (yych == 'I') goto yy912;
10055
75
    if (yych == 'i') goto yy912;
10056
3
    goto yy48;
10057
203
yy883:
10058
203
    YYDEBUG(883, *YYCURSOR);
10059
203
    yyaccept = 4;
10060
203
    yych = *(YYMARKER = ++YYCURSOR);
10061
203
    if (yych == '_') goto yy913;
10062
9
    goto yy48;
10063
117
yy884:
10064
117
    YYDEBUG(884, *YYCURSOR);
10065
117
    yyaccept = 4;
10066
117
    yych = *(YYMARKER = ++YYCURSOR);
10067
117
    if (yych == '_') goto yy914;
10068
27
    goto yy48;
10069
27
yy885:
10070
10
    YYDEBUG(885, *YYCURSOR);
10071
10
    ++YYCURSOR;
10072
33
yy886:
10073
33
    YYDEBUG(886, *YYCURSOR);
10074
33
    yyleng = YYCURSOR - SCNG(yy_text);
10075
33
#line 1569 "Zend/zend_language_scanner.l"
10076
33
    {
10077
33
  yyless(4);
10078
33
  RETURN_TOKEN_WITH_STR(T_STRING, 0);
10079
33
}
10080
0
#line 10081 "Zend/zend_language_scanner.c"
10081
140
yy887:
10082
140
    YYDEBUG(887, *YYCURSOR);
10083
140
    yych = *++YYCURSOR;
10084
140
    if (yych == 'N') goto yy916;
10085
53
    if (yych == 'n') goto yy916;
10086
45
    goto yy86;
10087
28.3k
yy888:
10088
28.3k
    YYDEBUG(888, *YYCURSOR);
10089
28.3k
    ++YYCURSOR;
10090
28.3k
    YYFILL(1);
10091
28.3k
    yych = *YYCURSOR;
10092
28.3k
    if (yych <= '\f') {
10093
15.6k
      if (yych <= 0x00) goto yy86;
10094
15.6k
      if (yych == '\n') goto yy859;
10095
63
      goto yy738;
10096
15.6k
    } else {
10097
12.7k
      if (yych <= '\r') goto yy859;
10098
12.4k
      if (yych == '*') goto yy789;
10099
12.4k
      goto yy738;
10100
12.4k
    }
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
298
      if (yych <= 0x00) goto yy86;
10108
13
      if (yych == '\n') goto yy787;
10109
1
      goto yy738;
10110
21.8k
    } else {
10111
21.8k
      if (yych <= '\r') goto yy787;
10112
21.7k
      if (yych == '*') goto yy917;
10113
588
      goto yy738;
10114
21.7k
    }
10115
3.81k
yy890:
10116
3.81k
    YYDEBUG(890, *YYCURSOR);
10117
3.81k
    yyaccept = 53;
10118
3.81k
    YYMARKER = ++YYCURSOR;
10119
3.81k
    YYFILL(1);
10120
3.81k
    yych = *YYCURSOR;
10121
3.81k
    if (yych <= '\f') {
10122
156
      if (yych <= 0x00) goto yy583;
10123
129
      if (yych == '\n') goto yy787;
10124
99
      goto yy738;
10125
3.65k
    } else {
10126
3.65k
      if (yych <= '\r') goto yy787;
10127
3.64k
      if (yych == '*') goto yy789;
10128
3.62k
      goto yy738;
10129
3.64k
    }
10130
29.9k
yy891:
10131
29.9k
    YYDEBUG(891, *YYCURSOR);
10132
29.9k
    yyaccept = 53;
10133
29.9k
    YYMARKER = ++YYCURSOR;
10134
29.9k
    YYFILL(1);
10135
29.9k
    yych = *YYCURSOR;
10136
29.9k
    if (yych <= ')') {
10137
246
      if (yych <= '\n') {
10138
129
        if (yych <= 0x00) goto yy583;
10139
128
        if (yych <= '\t') goto yy738;
10140
113
        goto yy787;
10141
128
      } else {
10142
117
        if (yych == '\r') goto yy787;
10143
117
        goto yy738;
10144
117
      }
10145
29.6k
    } else {
10146
29.6k
      if (yych <= 'X') {
10147
3
        if (yych <= '*') goto yy789;
10148
3
        if (yych <= 'W') goto yy738;
10149
0
        goto yy918;
10150
29.6k
      } else {
10151
29.6k
        if (yych == 'x') goto yy918;
10152
28.0k
        goto yy738;
10153
29.6k
      }
10154
29.6k
    }
10155
8.09k
yy892:
10156
8.09k
    YYDEBUG(892, *YYCURSOR);
10157
8.09k
    yyaccept = 53;
10158
8.09k
    YYMARKER = ++YYCURSOR;
10159
8.09k
    YYFILL(1);
10160
8.09k
    yych = *YYCURSOR;
10161
8.09k
    if (yych <= ')') {
10162
144
      if (yych <= '\n') {
10163
117
        if (yych <= 0x00) goto yy583;
10164
75
        if (yych <= '\t') goto yy738;
10165
0
        goto yy787;
10166
75
      } else {
10167
27
        if (yych == '\r') goto yy787;
10168
24
        goto yy738;
10169
27
      }
10170
7.95k
    } else {
10171
7.95k
      if (yych <= 'M') {
10172
66
        if (yych <= '*') goto yy789;
10173
66
        if (yych <= 'L') goto yy738;
10174
0
        goto yy919;
10175
7.88k
      } else {
10176
7.88k
        if (yych == 'm') goto yy919;
10177
66
        goto yy738;
10178
7.88k
      }
10179
7.95k
    }
10180
99
yy893:
10181
99
    YYDEBUG(893, *YYCURSOR);
10182
99
    ++YYCURSOR;
10183
99
    YYFILL(1);
10184
99
    yych = *YYCURSOR;
10185
99
    if (yych <= 'D') {
10186
0
      if (yych <= 0x00) goto yy86;
10187
0
      if (yych == '*') goto yy668;
10188
0
      goto yy590;
10189
99
    } else {
10190
99
      if (yych <= 'E') goto yy920;
10191
99
      if (yych == 'e') goto yy920;
10192
18
      goto yy590;
10193
99
    }
10194
3.41k
yy894:
10195
3.41k
    YYDEBUG(894, *YYCURSOR);
10196
3.41k
    ++YYCURSOR;
10197
3.41k
    YYFILL(1);
10198
3.41k
    yych = *YYCURSOR;
10199
3.41k
    if (yych <= 'K') {
10200
2.33k
      if (yych <= 0x00) goto yy86;
10201
1.76k
      if (yych == '*') goto yy668;
10202
1.76k
      goto yy590;
10203
1.76k
    } else {
10204
1.08k
      if (yych <= 'L') goto yy921;
10205
1.08k
      if (yych == 'l') goto yy921;
10206
12
      goto yy590;
10207
1.08k
    }
10208
16
yy895:
10209
16
    YYDEBUG(895, *YYCURSOR);
10210
16
    ++YYCURSOR;
10211
16
    YYFILL(1);
10212
16
    yych = *YYCURSOR;
10213
16
    if (yych <= '\r') {
10214
13
      if (yych <= '\t') {
10215
13
        if (yych <= 0x00) goto yy86;
10216
0
        goto yy586;
10217
13
      } else {
10218
0
        if (yych <= '\n') goto yy495;
10219
0
        if (yych <= '\f') goto yy586;
10220
0
        goto yy495;
10221
0
      }
10222
13
    } else {
10223
3
      if (yych <= 'S') {
10224
0
        if (yych <= 'R') goto yy586;
10225
0
        goto yy922;
10226
3
      } else {
10227
3
        if (yych == 's') goto yy922;
10228
3
        goto yy586;
10229
3
      }
10230
3
    }
10231
687
yy896:
10232
687
    YYDEBUG(896, *YYCURSOR);
10233
687
    ++YYCURSOR;
10234
687
    YYFILL(1);
10235
687
    yych = *YYCURSOR;
10236
687
    if (yych <= '\r') {
10237
152
      if (yych <= '\t') {
10238
18
        if (yych <= 0x00) goto yy86;
10239
18
        goto yy586;
10240
134
      } else {
10241
134
        if (yych <= '\n') goto yy495;
10242
0
        if (yych <= '\f') goto yy586;
10243
0
        goto yy495;
10244
0
      }
10245
535
    } else {
10246
535
      if (yych <= 'E') {
10247
36
        if (yych <= 'D') goto yy586;
10248
33
        goto yy923;
10249
499
      } else {
10250
499
        if (yych == 'e') goto yy923;
10251
132
        goto yy586;
10252
499
      }
10253
535
    }
10254
34
yy897:
10255
34
    YYDEBUG(897, *YYCURSOR);
10256
34
    yyaccept = 89;
10257
34
    yych = *(YYMARKER = ++YYCURSOR);
10258
34
    if (yybm[256+yych] & 128) {
10259
0
      goto yy47;
10260
0
    }
10261
34
    if (yych == '\\') goto yy164;
10262
34
yy898:
10263
34
    YYDEBUG(898, *YYCURSOR);
10264
34
    yyleng = YYCURSOR - SCNG(yy_text);
10265
34
#line 1725 "Zend/zend_language_scanner.l"
10266
34
    {
10267
34
  RETURN_TOKEN_WITH_IDENT(T_INCLUDE_ONCE);
10268
34
}
10269
0
#line 10270 "Zend/zend_language_scanner.c"
10270
145
yy899:
10271
145
    YYDEBUG(899, *YYCURSOR);
10272
145
    ++YYCURSOR;
10273
145
    YYDEBUG(900, *YYCURSOR);
10274
145
    yyleng = YYCURSOR - SCNG(yy_text);
10275
145
#line 1793 "Zend/zend_language_scanner.l"
10276
145
    {
10277
145
  RETURN_TOKEN_WITH_IDENT(T_PRIVATE_SET);
10278
145
}
10279
0
#line 10280 "Zend/zend_language_scanner.c"
10280
92
yy901:
10281
92
    YYDEBUG(901, *YYCURSOR);
10282
92
    yych = *++YYCURSOR;
10283
92
    if (yych == 'T') goto yy924;
10284
92
    if (yych == 't') goto yy924;
10285
3
    goto yy86;
10286
166
yy902:
10287
166
    YYDEBUG(902, *YYCURSOR);
10288
166
    yyaccept = 90;
10289
166
    yych = *(YYMARKER = ++YYCURSOR);
10290
166
    if (yybm[256+yych] & 128) {
10291
3
      goto yy47;
10292
3
    }
10293
163
    if (yych == '\\') goto yy164;
10294
163
yy903:
10295
163
    YYDEBUG(903, *YYCURSOR);
10296
163
    yyleng = YYCURSOR - SCNG(yy_text);
10297
163
#line 1733 "Zend/zend_language_scanner.l"
10298
163
    {
10299
163
  RETURN_TOKEN_WITH_IDENT(T_REQUIRE_ONCE);
10300
163
}
10301
0
#line 10302 "Zend/zend_language_scanner.c"
10302
9.09k
yy904:
10303
9.09k
    YYDEBUG(904, *YYCURSOR);
10304
9.09k
    ++YYCURSOR;
10305
9.09k
    YYFILL(1);
10306
9.09k
    yych = *YYCURSOR;
10307
9.09k
    YYDEBUG(905, *YYCURSOR);
10308
9.09k
    if (yych <= '"') {
10309
2.50k
      if (yych <= '\n') {
10310
1.48k
        if (yych <= 0x00) goto yy86;
10311
1.43k
        if (yych <= 0x08) goto yy808;
10312
1.29k
        if (yych <= '\t') goto yy904;
10313
639
        goto yy846;
10314
1.29k
      } else {
10315
1.02k
        if (yych <= '\r') {
10316
663
          if (yych <= '\f') goto yy808;
10317
663
          goto yy846;
10318
663
        } else {
10319
357
          if (yych == ' ') goto yy904;
10320
234
          goto yy808;
10321
357
        }
10322
1.02k
      }
10323
6.59k
    } else {
10324
6.59k
      if (yych <= '/') {
10325
3.67k
        if (yych <= ')') {
10326
981
          if (yych <= '#') goto yy925;
10327
144
          goto yy808;
10328
2.69k
        } else {
10329
2.69k
          if (yych <= '*') goto yy848;
10330
2.63k
          if (yych <= '.') goto yy808;
10331
2.63k
          goto yy926;
10332
2.63k
        }
10333
3.67k
      } else {
10334
2.92k
        if (yych <= 'F') {
10335
327
          if (yych <= 'E') goto yy808;
10336
306
          goto yy927;
10337
2.59k
        } else {
10338
2.59k
          if (yych == 'f') goto yy927;
10339
2.58k
          goto yy808;
10340
2.59k
        }
10341
2.92k
      }
10342
6.59k
    }
10343
2.76k
yy906:
10344
2.76k
    YYDEBUG(906, *YYCURSOR);
10345
2.76k
    ++YYCURSOR;
10346
2.76k
    YYFILL(1);
10347
2.76k
    yych = *YYCURSOR;
10348
2.76k
    if (yych <= '*') {
10349
75
      if (yych <= 0x00) goto yy86;
10350
39
      if (yych <= ')') goto yy696;
10351
0
      goto yy760;
10352
2.69k
    } else {
10353
2.69k
      if (yych == '/') goto yy846;
10354
15
      goto yy696;
10355
2.69k
    }
10356
822
yy907:
10357
822
    YYDEBUG(907, *YYCURSOR);
10358
822
    ++YYCURSOR;
10359
822
    YYFILL(1);
10360
822
    yych = *YYCURSOR;
10361
822
    if (yych <= 'N') {
10362
54
      if (yych <= 0x00) goto yy86;
10363
54
      if (yych == '*') goto yy760;
10364
54
      goto yy696;
10365
768
    } else {
10366
768
      if (yych <= 'O') goto yy928;
10367
642
      if (yych == 'o') goto yy928;
10368
21
      goto yy696;
10369
642
    }
10370
21
yy908:
10371
21
    YYDEBUG(908, *YYCURSOR);
10372
21
    yyaccept = 91;
10373
21
    YYMARKER = ++YYCURSOR;
10374
21
    YYFILL(1);
10375
21
    yych = *YYCURSOR;
10376
21
    if (yych <= '\n') {
10377
6
      if (yych <= 0x00) goto yy876;
10378
0
      if (yych <= '\t') goto yy692;
10379
0
      goto yy616;
10380
15
    } else {
10381
15
      if (yych == '\r') goto yy616;
10382
9
      goto yy692;
10383
15
    }
10384
93
yy909:
10385
93
    YYDEBUG(909, *YYCURSOR);
10386
93
    yyaccept = 91;
10387
93
    YYMARKER = ++YYCURSOR;
10388
93
    YYFILL(5);
10389
93
    yych = *YYCURSOR;
10390
93
    if (yych <= '"') {
10391
84
      if (yych <= '\f') {
10392
0
        if (yych <= 0x08) goto yy876;
10393
0
        if (yych <= '\n') goto yy616;
10394
0
        goto yy876;
10395
84
      } else {
10396
84
        if (yych <= '\r') goto yy616;
10397
0
        if (yych == ' ') goto yy616;
10398
0
        goto yy876;
10399
0
      }
10400
84
    } else {
10401
9
      if (yych <= 'E') {
10402
6
        if (yych <= '#') goto yy618;
10403
0
        if (yych == '/') goto yy619;
10404
0
        goto yy876;
10405
3
      } else {
10406
3
        if (yych <= 'F') goto yy691;
10407
3
        if (yych == 'f') goto yy691;
10408
3
        goto yy876;
10409
3
      }
10410
9
    }
10411
677
yy910:
10412
677
    YYDEBUG(910, *YYCURSOR);
10413
677
    yyaccept = 92;
10414
677
    yych = *(YYMARKER = ++YYCURSOR);
10415
677
    if (yybm[256+yych] & 128) {
10416
0
      goto yy47;
10417
0
    }
10418
677
    if (yych == '\\') goto yy164;
10419
677
yy911:
10420
677
    YYDEBUG(911, *YYCURSOR);
10421
677
    yyleng = YYCURSOR - SCNG(yy_text);
10422
677
#line 2260 "Zend/zend_language_scanner.l"
10423
677
    {
10424
677
  RETURN_TOKEN_WITH_IDENT(T_FUNC_C);
10425
677
}
10426
0
#line 10427 "Zend/zend_language_scanner.c"
10427
90
yy912:
10428
90
    YYDEBUG(912, *YYCURSOR);
10429
90
    yyaccept = 4;
10430
90
    yych = *(YYMARKER = ++YYCURSOR);
10431
90
    if (yych == 'L') goto yy929;
10432
72
    if (yych == 'l') goto yy929;
10433
0
    goto yy48;
10434
194
yy913:
10435
194
    YYDEBUG(913, *YYCURSOR);
10436
194
    yyaccept = 4;
10437
194
    yych = *(YYMARKER = ++YYCURSOR);
10438
194
    if (yych == '_') goto yy930;
10439
36
    goto yy48;
10440
90
yy914:
10441
90
    YYDEBUG(914, *YYCURSOR);
10442
90
    yyaccept = 93;
10443
90
    yych = *(YYMARKER = ++YYCURSOR);
10444
90
    if (yybm[256+yych] & 128) {
10445
3
      goto yy47;
10446
3
    }
10447
87
    if (yych == '\\') goto yy164;
10448
87
yy915:
10449
87
    YYDEBUG(915, *YYCURSOR);
10450
87
    yyleng = YYCURSOR - SCNG(yy_text);
10451
87
#line 2264 "Zend/zend_language_scanner.l"
10452
87
    {
10453
87
  RETURN_TOKEN_WITH_IDENT(T_PROPERTY_C);
10454
87
}
10455
0
#line 10456 "Zend/zend_language_scanner.c"
10456
95
yy916:
10457
95
    YYDEBUG(916, *YYCURSOR);
10458
95
    yych = *++YYCURSOR;
10459
95
    if (yych == 'T') goto yy857;
10460
95
    if (yych == 't') goto yy857;
10461
87
    goto yy86;
10462
21.1k
yy917:
10463
21.1k
    YYDEBUG(917, *YYCURSOR);
10464
21.1k
    ++YYCURSOR;
10465
21.1k
    YYFILL(1);
10466
21.1k
    yych = *YYCURSOR;
10467
21.1k
    if (yych <= '\r') {
10468
84
      if (yych <= '\t') {
10469
66
        if (yych <= 0x00) goto yy86;
10470
27
        goto yy738;
10471
66
      } else {
10472
18
        if (yych <= '\n') goto yy787;
10473
0
        if (yych <= '\f') goto yy738;
10474
0
        goto yy787;
10475
0
      }
10476
21.0k
    } else {
10477
21.0k
      if (yych <= '*') {
10478
360
        if (yych <= ')') goto yy738;
10479
0
        goto yy789;
10480
20.7k
      } else {
10481
20.7k
        if (yych == '/') goto yy859;
10482
124
        goto yy738;
10483
20.7k
      }
10484
21.0k
    }
10485
1.67k
yy918:
10486
1.67k
    YYDEBUG(918, *YYCURSOR);
10487
1.67k
    ++YYCURSOR;
10488
1.67k
    YYFILL(1);
10489
1.67k
    yych = *YYCURSOR;
10490
1.67k
    if (yych <= ')') {
10491
54
      if (yych <= '\n') {
10492
54
        if (yych <= 0x00) goto yy86;
10493
0
        if (yych <= '\t') goto yy738;
10494
0
        goto yy787;
10495
0
      } else {
10496
0
        if (yych == '\r') goto yy787;
10497
0
        goto yy738;
10498
0
      }
10499
1.62k
    } else {
10500
1.62k
      if (yych <= 'T') {
10501
321
        if (yych <= '*') goto yy789;
10502
321
        if (yych <= 'S') goto yy738;
10503
12
        goto yy932;
10504
1.29k
      } else {
10505
1.29k
        if (yych == 't') goto yy932;
10506
168
        goto yy738;
10507
1.29k
      }
10508
1.62k
    }
10509
7.81k
yy919:
10510
7.81k
    YYDEBUG(919, *YYCURSOR);
10511
7.81k
    ++YYCURSOR;
10512
7.81k
    YYFILL(1);
10513
7.81k
    yych = *YYCURSOR;
10514
7.81k
    if (yych <= ')') {
10515
9
      if (yych <= '\n') {
10516
3
        if (yych <= 0x00) goto yy86;
10517
0
        if (yych <= '\t') goto yy738;
10518
0
        goto yy787;
10519
6
      } else {
10520
6
        if (yych == '\r') goto yy787;
10521
6
        goto yy738;
10522
6
      }
10523
7.81k
    } else {
10524
7.81k
      if (yych <= 'P') {
10525
1.77k
        if (yych <= '*') goto yy789;
10526
1.77k
        if (yych <= 'O') goto yy738;
10527
36
        goto yy933;
10528
6.03k
      } else {
10529
6.03k
        if (yych == 'p') goto yy933;
10530
14
        goto yy738;
10531
6.03k
      }
10532
7.81k
    }
10533
81
yy920:
10534
81
    YYDEBUG(920, *YYCURSOR);
10535
81
    ++YYCURSOR;
10536
81
    YYFILL(1);
10537
81
    yych = *YYCURSOR;
10538
81
    if (yych <= 'M') {
10539
0
      if (yych <= 0x00) goto yy86;
10540
0
      if (yych == '*') goto yy668;
10541
0
      goto yy590;
10542
81
    } else {
10543
81
      if (yych <= 'N') goto yy934;
10544
81
      if (yych == 'n') goto yy934;
10545
0
      goto yy590;
10546
81
    }
10547
1.06k
yy921:
10548
1.06k
    YYDEBUG(921, *YYCURSOR);
10549
1.06k
    ++YYCURSOR;
10550
1.06k
    YYFILL(1);
10551
1.06k
    yych = *YYCURSOR;
10552
1.06k
    if (yych <= 'D') {
10553
104
      if (yych <= 0x00) goto yy86;
10554
81
      if (yych == '*') goto yy668;
10555
81
      goto yy590;
10556
964
    } else {
10557
964
      if (yych <= 'E') goto yy935;
10558
676
      if (yych == 'e') goto yy935;
10559
18
      goto yy590;
10560
676
    }
10561
0
yy922:
10562
0
    YYDEBUG(922, *YYCURSOR);
10563
0
    yyaccept = 94;
10564
0
    YYMARKER = ++YYCURSOR;
10565
0
    YYFILL(1);
10566
0
    yych = *YYCURSOR;
10567
0
    if (yych <= '\n') {
10568
0
      if (yych <= 0x00) goto yy886;
10569
0
      if (yych <= '\t') goto yy586;
10570
0
      goto yy495;
10571
0
    } else {
10572
0
      if (yych == '\r') goto yy495;
10573
0
      goto yy586;
10574
0
    }
10575
400
yy923:
10576
400
    YYDEBUG(923, *YYCURSOR);
10577
400
    ++YYCURSOR;
10578
400
    YYFILL(1);
10579
400
    yych = *YYCURSOR;
10580
400
    if (yych <= '\r') {
10581
321
      if (yych <= '\t') {
10582
321
        if (yych <= 0x00) goto yy86;
10583
321
        goto yy586;
10584
321
      } else {
10585
0
        if (yych <= '\n') goto yy495;
10586
0
        if (yych <= '\f') goto yy586;
10587
0
        goto yy495;
10588
0
      }
10589
321
    } else {
10590
79
      if (yych <= 'N') {
10591
33
        if (yych <= 'M') goto yy586;
10592
33
        goto yy936;
10593
46
      } else {
10594
46
        if (yych == 'n') goto yy936;
10595
30
        goto yy586;
10596
46
      }
10597
79
    }
10598
89
yy924:
10599
89
    YYDEBUG(924, *YYCURSOR);
10600
89
    yych = *++YYCURSOR;
10601
89
    if (yych == ')') goto yy937;
10602
3
    goto yy86;
10603
837
yy925:
10604
837
    YYDEBUG(925, *YYCURSOR);
10605
837
    ++YYCURSOR;
10606
837
    YYFILL(1);
10607
837
    yych = *YYCURSOR;
10608
837
    if (yych <= '\f') {
10609
657
      if (yych <= 0x00) goto yy86;
10610
657
      if (yych == '\n') goto yy904;
10611
15
      goto yy808;
10612
657
    } else {
10613
180
      if (yych <= '\r') goto yy904;
10614
18
      if (yych == '*') goto yy848;
10615
18
      goto yy808;
10616
18
    }
10617
2.63k
yy926:
10618
2.63k
    YYDEBUG(926, *YYCURSOR);
10619
2.63k
    ++YYCURSOR;
10620
2.63k
    YYFILL(1);
10621
2.63k
    yych = *YYCURSOR;
10622
2.63k
    if (yych <= '\f') {
10623
6
      if (yych <= 0x00) goto yy86;
10624
6
      if (yych == '\n') goto yy846;
10625
0
      goto yy808;
10626
2.62k
    } else {
10627
2.62k
      if (yych <= '\r') goto yy846;
10628
2.62k
      if (yych == '*') goto yy939;
10629
273
      goto yy808;
10630
2.62k
    }
10631
318
yy927:
10632
318
    YYDEBUG(927, *YYCURSOR);
10633
318
    ++YYCURSOR;
10634
318
    YYFILL(1);
10635
318
    yych = *YYCURSOR;
10636
318
    if (yych <= ')') {
10637
57
      if (yych <= '\n') {
10638
57
        if (yych <= 0x00) goto yy86;
10639
57
        if (yych <= '\t') goto yy808;
10640
0
        goto yy846;
10641
57
      } else {
10642
0
        if (yych == '\r') goto yy846;
10643
0
        goto yy808;
10644
0
      }
10645
261
    } else {
10646
261
      if (yych <= 'R') {
10647
246
        if (yych <= '*') goto yy848;
10648
246
        if (yych <= 'Q') goto yy808;
10649
243
        goto yy940;
10650
246
      } else {
10651
15
        if (yych == 'r') goto yy940;
10652
15
        goto yy808;
10653
15
      }
10654
261
    }
10655
747
yy928:
10656
747
    YYDEBUG(928, *YYCURSOR);
10657
747
    ++YYCURSOR;
10658
747
    YYFILL(1);
10659
747
    yych = *YYCURSOR;
10660
747
    if (yych <= 'L') {
10661
15
      if (yych <= 0x00) goto yy86;
10662
3
      if (yych == '*') goto yy760;
10663
3
      goto yy696;
10664
732
    } else {
10665
732
      if (yych <= 'M') goto yy941;
10666
12
      if (yych == 'm') goto yy941;
10667
12
      goto yy696;
10668
12
    }
10669
90
yy929:
10670
90
    YYDEBUG(929, *YYCURSOR);
10671
90
    yyaccept = 4;
10672
90
    yych = *(YYMARKER = ++YYCURSOR);
10673
90
    if (yych == 'E') goto yy942;
10674
75
    if (yych == 'e') goto yy942;
10675
3
    goto yy48;
10676
158
yy930:
10677
158
    YYDEBUG(930, *YYCURSOR);
10678
158
    yyaccept = 95;
10679
158
    yych = *(YYMARKER = ++YYCURSOR);
10680
158
    if (yybm[256+yych] & 128) {
10681
3
      goto yy47;
10682
3
    }
10683
155
    if (yych == '\\') goto yy164;
10684
155
yy931:
10685
155
    YYDEBUG(931, *YYCURSOR);
10686
155
    yyleng = YYCURSOR - SCNG(yy_text);
10687
155
#line 2284 "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
1.14k
yy932:
10693
1.14k
    YYDEBUG(932, *YYCURSOR);
10694
1.14k
    ++YYCURSOR;
10695
1.14k
    YYFILL(1);
10696
1.14k
    yych = *YYCURSOR;
10697
1.14k
    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
1.14k
    } else {
10707
1.14k
      if (yych <= 'E') {
10708
0
        if (yych <= '*') goto yy789;
10709
0
        if (yych <= 'D') goto yy738;
10710
0
        goto yy943;
10711
1.14k
      } else {
10712
1.14k
        if (yych == 'e') goto yy943;
10713
39
        goto yy738;
10714
1.14k
      }
10715
1.14k
    }
10716
6.05k
yy933:
10717
6.05k
    YYDEBUG(933, *YYCURSOR);
10718
6.05k
    ++YYCURSOR;
10719
6.05k
    YYFILL(1);
10720
6.05k
    yych = *YYCURSOR;
10721
6.05k
    if (yych <= ')') {
10722
48
      if (yych <= '\n') {
10723
42
        if (yych <= 0x00) goto yy86;
10724
42
        if (yych <= '\t') goto yy738;
10725
0
        goto yy787;
10726
42
      } else {
10727
6
        if (yych == '\r') goto yy787;
10728
6
        goto yy738;
10729
6
      }
10730
6.00k
    } else {
10731
6.00k
      if (yych <= 'L') {
10732
0
        if (yych <= '*') goto yy789;
10733
0
        if (yych <= 'K') goto yy738;
10734
0
        goto yy944;
10735
6.00k
      } else {
10736
6.00k
        if (yych == 'l') goto yy944;
10737
18
        goto yy738;
10738
6.00k
      }
10739
6.00k
    }
10740
81
yy934:
10741
81
    YYDEBUG(934, *YYCURSOR);
10742
81
    ++YYCURSOR;
10743
81
    YYFILL(1);
10744
81
    yych = *YYCURSOR;
10745
81
    if (yych <= 'C') {
10746
6
      if (yych <= 0x00) goto yy86;
10747
6
      if (yych == '*') goto yy668;
10748
6
      goto yy590;
10749
75
    } else {
10750
75
      if (yych <= 'D') goto yy945;
10751
75
      if (yych == 'd') goto yy945;
10752
75
      goto yy590;
10753
75
    }
10754
946
yy935:
10755
946
    YYDEBUG(935, *YYCURSOR);
10756
946
    ++YYCURSOR;
10757
946
    YYFILL(1);
10758
946
    yych = *YYCURSOR;
10759
946
    if (yych <= 'L') {
10760
330
      if (yych <= 0x00) goto yy86;
10761
330
      if (yych == '*') goto yy668;
10762
330
      goto yy590;
10763
616
    } else {
10764
616
      if (yych <= 'M') goto yy946;
10765
571
      if (yych == 'm') goto yy946;
10766
87
      goto yy590;
10767
571
    }
10768
49
yy936:
10769
49
    YYDEBUG(936, *YYCURSOR);
10770
49
    ++YYCURSOR;
10771
49
    YYFILL(1);
10772
49
    yych = *YYCURSOR;
10773
49
    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
49
    } else {
10783
49
      if (yych <= 'T') {
10784
33
        if (yych <= 'S') goto yy586;
10785
0
        goto yy895;
10786
33
      } else {
10787
16
        if (yych == 't') goto yy895;
10788
0
        goto yy586;
10789
16
      }
10790
49
    }
10791
86
yy937:
10792
86
    YYDEBUG(937, *YYCURSOR);
10793
86
    ++YYCURSOR;
10794
86
    YYDEBUG(938, *YYCURSOR);
10795
86
    yyleng = YYCURSOR - SCNG(yy_text);
10796
86
#line 1789 "Zend/zend_language_scanner.l"
10797
86
    {
10798
86
  RETURN_TOKEN_WITH_IDENT(T_PROTECTED_SET);
10799
86
}
10800
0
#line 10801 "Zend/zend_language_scanner.c"
10801
2.35k
yy939:
10802
2.35k
    YYDEBUG(939, *YYCURSOR);
10803
2.35k
    ++YYCURSOR;
10804
2.35k
    YYFILL(1);
10805
2.35k
    yych = *YYCURSOR;
10806
2.35k
    if (yych <= '\r') {
10807
57
      if (yych <= '\t') {
10808
21
        if (yych <= 0x00) goto yy86;
10809
0
        goto yy808;
10810
36
      } else {
10811
36
        if (yych <= '\n') goto yy846;
10812
0
        if (yych <= '\f') goto yy808;
10813
0
        goto yy846;
10814
0
      }
10815
2.29k
    } else {
10816
2.29k
      if (yych <= '*') {
10817
51
        if (yych <= ')') goto yy808;
10818
0
        goto yy848;
10819
2.24k
      } else {
10820
2.24k
        if (yych == '/') goto yy904;
10821
87
        goto yy808;
10822
2.24k
      }
10823
2.29k
    }
10824
243
yy940:
10825
243
    YYDEBUG(940, *YYCURSOR);
10826
243
    ++YYCURSOR;
10827
243
    YYFILL(1);
10828
243
    yych = *YYCURSOR;
10829
243
    if (yych <= ')') {
10830
105
      if (yych <= '\n') {
10831
99
        if (yych <= 0x00) goto yy86;
10832
99
        if (yych <= '\t') goto yy808;
10833
45
        goto yy846;
10834
99
      } else {
10835
6
        if (yych == '\r') goto yy846;
10836
6
        goto yy808;
10837
6
      }
10838
138
    } else {
10839
138
      if (yych <= 'O') {
10840
123
        if (yych <= '*') goto yy848;
10841
123
        if (yych <= 'N') goto yy808;
10842
120
        goto yy947;
10843
123
      } else {
10844
15
        if (yych == 'o') goto yy947;
10845
15
        goto yy808;
10846
15
      }
10847
138
    }
10848
720
yy941:
10849
720
    YYDEBUG(941, *YYCURSOR);
10850
720
    ++YYCURSOR;
10851
720
    YYFILL(1);
10852
720
    yych = *YYCURSOR;
10853
720
    if (yych <= '@') {
10854
717
      if (yych <= '*') {
10855
717
        if (yych <= 0x00) goto yy875;
10856
717
        if (yych <= ')') goto yy948;
10857
0
        goto yy949;
10858
717
      } else {
10859
0
        if (yych <= '/') goto yy948;
10860
0
        if (yych <= '9') goto yy696;
10861
0
        goto yy948;
10862
0
      }
10863
717
    } else {
10864
3
      if (yych <= '_') {
10865
0
        if (yych <= 'Z') goto yy696;
10866
0
        if (yych <= '^') goto yy948;
10867
0
        goto yy696;
10868
3
      } else {
10869
3
        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
3
    }
10875
87
yy942:
10876
87
    YYDEBUG(942, *YYCURSOR);
10877
87
    yyaccept = 4;
10878
87
    yych = *(YYMARKER = ++YYCURSOR);
10879
87
    if (yych == 'R') goto yy950;
10880
72
    if (yych == 'r') goto yy950;
10881
0
    goto yy48;
10882
1.10k
yy943:
10883
1.10k
    YYDEBUG(943, *YYCURSOR);
10884
1.10k
    ++YYCURSOR;
10885
1.10k
    YYFILL(1);
10886
1.10k
    yych = *YYCURSOR;
10887
1.10k
    if (yych <= ')') {
10888
27
      if (yych <= '\n') {
10889
0
        if (yych <= 0x00) goto yy86;
10890
0
        if (yych <= '\t') goto yy738;
10891
0
        goto yy787;
10892
27
      } else {
10893
27
        if (yych == '\r') goto yy787;
10894
0
        goto yy738;
10895
27
      }
10896
1.07k
    } else {
10897
1.07k
      if (yych <= 'N') {
10898
27
        if (yych <= '*') goto yy789;
10899
27
        if (yych <= 'M') goto yy738;
10900
0
        goto yy952;
10901
1.05k
      } else {
10902
1.05k
        if (yych == 'n') goto yy952;
10903
234
        goto yy738;
10904
1.05k
      }
10905
1.07k
    }
10906
5.99k
yy944:
10907
5.99k
    YYDEBUG(944, *YYCURSOR);
10908
5.99k
    ++YYCURSOR;
10909
5.99k
    YYFILL(1);
10910
5.99k
    yych = *YYCURSOR;
10911
5.99k
    if (yych <= ')') {
10912
208
      if (yych <= '\n') {
10913
36
        if (yych <= 0x00) goto yy86;
10914
36
        if (yych <= '\t') goto yy738;
10915
18
        goto yy787;
10916
172
      } else {
10917
172
        if (yych == '\r') goto yy787;
10918
118
        goto yy738;
10919
172
      }
10920
5.78k
    } else {
10921
5.78k
      if (yych <= 'E') {
10922
18
        if (yych <= '*') goto yy789;
10923
12
        if (yych <= 'D') goto yy738;
10924
12
        goto yy953;
10925
5.76k
      } else {
10926
5.76k
        if (yych == 'e') goto yy953;
10927
106
        goto yy738;
10928
5.76k
      }
10929
5.78k
    }
10930
23
yy945:
10931
23
    YYDEBUG(945, *YYCURSOR);
10932
23
    ++YYCURSOR;
10933
23
    YYFILL(1);
10934
23
    yych = *YYCURSOR;
10935
23
    if (yych <= 'R') {
10936
0
      if (yych <= 0x00) goto yy86;
10937
0
      if (yych == '*') goto yy668;
10938
0
      goto yy590;
10939
23
    } else {
10940
23
      if (yych <= 'S') goto yy954;
10941
23
      if (yych == 's') goto yy954;
10942
0
      goto yy590;
10943
23
    }
10944
529
yy946:
10945
529
    YYDEBUG(946, *YYCURSOR);
10946
529
    ++YYCURSOR;
10947
529
    YYFILL(1);
10948
529
    yych = *YYCURSOR;
10949
529
    if (yych <= 'D') {
10950
23
      if (yych <= 0x00) goto yy86;
10951
23
      if (yych == '*') goto yy668;
10952
23
      goto yy590;
10953
506
    } else {
10954
506
      if (yych <= 'E') goto yy955;
10955
221
      if (yych == 'e') goto yy955;
10956
63
      goto yy590;
10957
221
    }
10958
120
yy947:
10959
120
    YYDEBUG(947, *YYCURSOR);
10960
120
    ++YYCURSOR;
10961
120
    YYFILL(1);
10962
120
    yych = *YYCURSOR;
10963
120
    if (yych <= ')') {
10964
21
      if (yych <= '\n') {
10965
0
        if (yych <= 0x00) goto yy86;
10966
0
        if (yych <= '\t') goto yy808;
10967
0
        goto yy846;
10968
21
      } else {
10969
21
        if (yych == '\r') goto yy846;
10970
15
        goto yy808;
10971
21
      }
10972
99
    } else {
10973
99
      if (yych <= 'M') {
10974
99
        if (yych <= '*') goto yy848;
10975
99
        if (yych <= 'L') goto yy808;
10976
99
        goto yy956;
10977
99
      } else {
10978
0
        if (yych == 'm') goto yy956;
10979
0
        goto yy808;
10980
0
      }
10981
99
    }
10982
720
yy948:
10983
720
    YYDEBUG(948, *YYCURSOR);
10984
720
    yyaccept = 91;
10985
720
    YYMARKER = ++YYCURSOR;
10986
720
    YYFILL(1);
10987
720
    yych = *YYCURSOR;
10988
720
    if (yych <= 0x00) goto yy876;
10989
99
    if (yych == '*') goto yy760;
10990
99
    goto yy696;
10991
99
yy949:
10992
0
    YYDEBUG(949, *YYCURSOR);
10993
0
    yyaccept = 91;
10994
0
    YYMARKER = ++YYCURSOR;
10995
0
    YYFILL(1);
10996
0
    yych = *YYCURSOR;
10997
0
    if (yych <= '*') {
10998
0
      if (yych <= 0x00) goto yy876;
10999
0
      if (yych <= ')') goto yy696;
11000
0
      goto yy760;
11001
0
    } else {
11002
0
      if (yych == '/') goto yy616;
11003
0
      goto yy696;
11004
0
    }
11005
87
yy950:
11006
87
    YYDEBUG(950, *YYCURSOR);
11007
87
    yyaccept = 96;
11008
87
    yych = *(YYMARKER = ++YYCURSOR);
11009
87
    if (yybm[256+yych] & 128) {
11010
0
      goto yy47;
11011
0
    }
11012
87
    if (yych == '\\') goto yy164;
11013
87
yy951:
11014
87
    YYDEBUG(951, *YYCURSOR);
11015
87
    yyleng = YYCURSOR - SCNG(yy_text);
11016
87
#line 1761 "Zend/zend_language_scanner.l"
11017
87
    {
11018
87
  RETURN_TOKEN_WITH_IDENT(T_HALT_COMPILER);
11019
87
}
11020
0
#line 11021 "Zend/zend_language_scanner.c"
11021
816
yy952:
11022
816
    YYDEBUG(952, *YYCURSOR);
11023
816
    ++YYCURSOR;
11024
816
    YYFILL(1);
11025
816
    yych = *YYCURSOR;
11026
816
    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
816
    } else {
11036
816
      if (yych <= 'D') {
11037
0
        if (yych <= '*') goto yy789;
11038
0
        if (yych <= 'C') goto yy738;
11039
0
        goto yy957;
11040
816
      } else {
11041
816
        if (yych == 'd') goto yy957;
11042
816
        goto yy738;
11043
816
      }
11044
816
    }
11045
5.67k
yy953:
11046
5.67k
    YYDEBUG(953, *YYCURSOR);
11047
5.67k
    ++YYCURSOR;
11048
5.67k
    YYFILL(1);
11049
5.67k
    yych = *YYCURSOR;
11050
5.67k
    if (yych <= ')') {
11051
3.93k
      if (yych <= '\n') {
11052
3.23k
        if (yych <= 0x00) goto yy86;
11053
3.23k
        if (yych <= '\t') goto yy738;
11054
3.23k
        goto yy787;
11055
3.23k
      } else {
11056
696
        if (yych == '\r') goto yy787;
11057
696
        goto yy738;
11058
696
      }
11059
3.93k
    } else {
11060
1.73k
      if (yych <= 'M') {
11061
1.70k
        if (yych <= '*') goto yy789;
11062
525
        if (yych <= 'L') goto yy738;
11063
486
        goto yy958;
11064
525
      } else {
11065
36
        if (yych == 'm') goto yy958;
11066
0
        goto yy738;
11067
36
      }
11068
1.73k
    }
11069
23
yy954:
11070
23
    YYDEBUG(954, *YYCURSOR);
11071
23
    yyaccept = 94;
11072
23
    YYMARKER = ++YYCURSOR;
11073
23
    YYFILL(1);
11074
23
    yych = *YYCURSOR;
11075
23
    if (yych <= 0x00) goto yy886;
11076
23
    if (yych == '*') goto yy668;
11077
23
    goto yy590;
11078
443
yy955:
11079
443
    YYDEBUG(955, *YYCURSOR);
11080
443
    ++YYCURSOR;
11081
443
    YYFILL(1);
11082
443
    yych = *YYCURSOR;
11083
443
    if (yych <= 'M') {
11084
42
      if (yych <= 0x00) goto yy86;
11085
24
      if (yych == '*') goto yy668;
11086
24
      goto yy590;
11087
401
    } else {
11088
401
      if (yych <= 'N') goto yy959;
11089
116
      if (yych == 'n') goto yy959;
11090
6
      goto yy590;
11091
116
    }
11092
99
yy956:
11093
99
    YYDEBUG(956, *YYCURSOR);
11094
99
    ++YYCURSOR;
11095
99
    YYFILL(1);
11096
99
    yych = *YYCURSOR;
11097
99
    if (yych <= '/') {
11098
87
      if (yych <= '\f') {
11099
66
        if (yych <= 0x00) goto yy875;
11100
63
        if (yych == '\n') goto yy961;
11101
0
        goto yy960;
11102
63
      } else {
11103
21
        if (yych <= '\r') goto yy961;
11104
6
        if (yych == '*') goto yy962;
11105
6
        goto yy960;
11106
6
      }
11107
87
    } else {
11108
12
      if (yych <= '^') {
11109
6
        if (yych <= '9') goto yy808;
11110
6
        if (yych <= '@') goto yy960;
11111
0
        if (yych <= 'Z') goto yy808;
11112
0
        goto yy960;
11113
6
      } else {
11114
6
        if (yych <= '`') {
11115
0
          if (yych <= '_') goto yy808;
11116
0
          goto yy960;
11117
6
        } else {
11118
6
          if (yych <= 'z') goto yy808;
11119
6
          if (yych <= 0x7F) goto yy960;
11120
6
          goto yy808;
11121
6
        }
11122
6
      }
11123
12
    }
11124
12
yy957:
11125
12
    YYDEBUG(957, *YYCURSOR);
11126
12
    ++YYCURSOR;
11127
12
    YYFILL(1);
11128
12
    yych = *YYCURSOR;
11129
12
    if (yych <= ')') {
11130
6
      if (yych <= '\n') {
11131
0
        if (yych <= 0x00) goto yy86;
11132
0
        if (yych <= '\t') goto yy738;
11133
0
        goto yy787;
11134
6
      } else {
11135
6
        if (yych == '\r') goto yy787;
11136
6
        goto yy738;
11137
6
      }
11138
6
    } else {
11139
6
      if (yych <= 'S') {
11140
0
        if (yych <= '*') goto yy789;
11141
0
        if (yych <= 'R') goto yy738;
11142
0
        goto yy963;
11143
6
      } else {
11144
6
        if (yych == 's') goto yy963;
11145
6
        goto yy738;
11146
6
      }
11147
6
    }
11148
522
yy958:
11149
522
    YYDEBUG(958, *YYCURSOR);
11150
522
    ++YYCURSOR;
11151
522
    YYFILL(1);
11152
522
    yych = *YYCURSOR;
11153
522
    if (yych <= ')') {
11154
90
      if (yych <= '\n') {
11155
90
        if (yych <= 0x00) goto yy86;
11156
90
        if (yych <= '\t') goto yy738;
11157
90
        goto yy787;
11158
90
      } else {
11159
0
        if (yych == '\r') goto yy787;
11160
0
        goto yy738;
11161
0
      }
11162
432
    } else {
11163
432
      if (yych <= 'E') {
11164
9
        if (yych <= '*') goto yy789;
11165
0
        if (yych <= 'D') goto yy738;
11166
0
        goto yy964;
11167
423
      } else {
11168
423
        if (yych == 'e') goto yy964;
11169
33
        goto yy738;
11170
423
      }
11171
432
    }
11172
395
yy959:
11173
395
    YYDEBUG(959, *YYCURSOR);
11174
395
    ++YYCURSOR;
11175
395
    YYFILL(1);
11176
395
    yych = *YYCURSOR;
11177
395
    if (yych <= 'S') {
11178
366
      if (yych <= 0x00) goto yy86;
11179
285
      if (yych == '*') goto yy668;
11180
285
      goto yy590;
11181
285
    } else {
11182
29
      if (yych <= 'T') goto yy945;
11183
29
      if (yych == 't') goto yy945;
11184
6
      goto yy590;
11185
29
    }
11186
12
yy960:
11187
12
    YYDEBUG(960, *YYCURSOR);
11188
12
    yyaccept = 91;
11189
12
    YYMARKER = ++YYCURSOR;
11190
12
    YYFILL(1);
11191
12
    yych = *YYCURSOR;
11192
12
    if (yych <= '\f') {
11193
3
      if (yych <= 0x00) goto yy876;
11194
0
      if (yych == '\n') goto yy846;
11195
0
      goto yy808;
11196
9
    } else {
11197
9
      if (yych <= '\r') goto yy846;
11198
9
      if (yych == '*') goto yy848;
11199
9
      goto yy808;
11200
9
    }
11201
78
yy961:
11202
78
    YYDEBUG(961, *YYCURSOR);
11203
78
    yyaccept = 91;
11204
78
    YYMARKER = ++YYCURSOR;
11205
78
    YYFILL(1);
11206
78
    yych = *YYCURSOR;
11207
78
    if (yych <= '#') {
11208
63
      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
63
      } else {
11214
63
        if (yych <= 0x1F) {
11215
48
          if (yych <= '\r') goto yy846;
11216
0
          goto yy696;
11217
48
        } else {
11218
15
          if (yych <= ' ') goto yy846;
11219
15
          if (yych <= '"') goto yy696;
11220
15
          goto yy877;
11221
15
        }
11222
63
      }
11223
63
    } else {
11224
15
      if (yych <= '/') {
11225
0
        if (yych == '*') goto yy760;
11226
0
        if (yych <= '.') goto yy696;
11227
0
        goto yy878;
11228
15
      } else {
11229
15
        if (yych <= 'F') {
11230
0
          if (yych <= 'E') goto yy696;
11231
0
          goto yy879;
11232
15
        } else {
11233
15
          if (yych == 'f') goto yy879;
11234
15
          goto yy696;
11235
15
        }
11236
15
      }
11237
15
    }
11238
0
yy962:
11239
0
    YYDEBUG(962, *YYCURSOR);
11240
0
    yyaccept = 91;
11241
0
    YYMARKER = ++YYCURSOR;
11242
0
    YYFILL(1);
11243
0
    yych = *YYCURSOR;
11244
0
    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
0
    } else {
11254
0
      if (yych <= '*') {
11255
0
        if (yych <= ')') goto yy808;
11256
0
        goto yy848;
11257
0
      } else {
11258
0
        if (yych == '/') goto yy694;
11259
0
        goto yy808;
11260
0
      }
11261
0
    }
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
390
yy964:
11278
390
    YYDEBUG(964, *YYCURSOR);
11279
390
    ++YYCURSOR;
11280
390
    YYFILL(1);
11281
390
    yych = *YYCURSOR;
11282
390
    if (yych <= ')') {
11283
333
      if (yych <= '\n') {
11284
333
        if (yych <= 0x00) goto yy86;
11285
333
        if (yych <= '\t') goto yy738;
11286
0
        goto yy787;
11287
333
      } else {
11288
0
        if (yych == '\r') goto yy787;
11289
0
        goto yy738;
11290
0
      }
11291
333
    } else {
11292
57
      if (yych <= 'N') {
11293
0
        if (yych <= '*') goto yy789;
11294
0
        if (yych <= 'M') goto yy738;
11295
57
      } else {
11296
57
        if (yych != 'n') goto yy738;
11297
57
      }
11298
57
    }
11299
24
    YYDEBUG(965, *YYCURSOR);
11300
24
    ++YYCURSOR;
11301
24
    YYFILL(1);
11302
24
    yych = *YYCURSOR;
11303
24
    if (yych <= ')') {
11304
6
      if (yych <= '\n') {
11305
6
        if (yych <= 0x00) goto yy86;
11306
6
        if (yych <= '\t') goto yy738;
11307
0
        goto yy787;
11308
6
      } else {
11309
0
        if (yych == '\r') goto yy787;
11310
0
        goto yy738;
11311
0
      }
11312
18
    } else {
11313
18
      if (yych <= 'T') {
11314
6
        if (yych <= '*') goto yy789;
11315
6
        if (yych <= 'S') goto yy738;
11316
6
        goto yy957;
11317
12
      } else {
11318
12
        if (yych == 't') goto yy957;
11319
6
        goto yy738;
11320
12
      }
11321
18
    }
11322
24
  }
11323
/* *********************************** */
11324
135k
yyc_ST_LOOKING_FOR_PROPERTY:
11325
135k
  {
11326
135k
    static const unsigned char yybm[] = {
11327
135k
        0,   0,   0,   0,   0,   0,   0,   0, 
11328
135k
        0,  64,  64,   0,   0,  64,   0,   0, 
11329
135k
        0,   0,   0,   0,   0,   0,   0,   0, 
11330
135k
        0,   0,   0,   0,   0,   0,   0,   0, 
11331
135k
       64,   0,   0,   0,   0,   0,   0,   0, 
11332
135k
        0,   0,   0,   0,   0,   0,   0,   0, 
11333
135k
      128, 128, 128, 128, 128, 128, 128, 128, 
11334
135k
      128, 128,   0,   0,   0,   0,   0,   0, 
11335
135k
        0, 128, 128, 128, 128, 128, 128, 128, 
11336
135k
      128, 128, 128, 128, 128, 128, 128, 128, 
11337
135k
      128, 128, 128, 128, 128, 128, 128, 128, 
11338
135k
      128, 128, 128,   0,   0,   0,   0, 128, 
11339
135k
        0, 128, 128, 128, 128, 128, 128, 128, 
11340
135k
      128, 128, 128, 128, 128, 128, 128, 128, 
11341
135k
      128, 128, 128, 128, 128, 128, 128, 128, 
11342
135k
      128, 128, 128,   0,   0,   0,   0,   0, 
11343
135k
      128, 128, 128, 128, 128, 128, 128, 128, 
11344
135k
      128, 128, 128, 128, 128, 128, 128, 128, 
11345
135k
      128, 128, 128, 128, 128, 128, 128, 128, 
11346
135k
      128, 128, 128, 128, 128, 128, 128, 128, 
11347
135k
      128, 128, 128, 128, 128, 128, 128, 128, 
11348
135k
      128, 128, 128, 128, 128, 128, 128, 128, 
11349
135k
      128, 128, 128, 128, 128, 128, 128, 128, 
11350
135k
      128, 128, 128, 128, 128, 128, 128, 128, 
11351
135k
      128, 128, 128, 128, 128, 128, 128, 128, 
11352
135k
      128, 128, 128, 128, 128, 128, 128, 128, 
11353
135k
      128, 128, 128, 128, 128, 128, 128, 128, 
11354
135k
      128, 128, 128, 128, 128, 128, 128, 128, 
11355
135k
      128, 128, 128, 128, 128, 128, 128, 128, 
11356
135k
      128, 128, 128, 128, 128, 128, 128, 128, 
11357
135k
      128, 128, 128, 128, 128, 128, 128, 128, 
11358
135k
      128, 128, 128, 128, 128, 128, 128, 128, 
11359
135k
    };
11360
135k
    YYDEBUG(966, *YYCURSOR);
11361
135k
    YYFILL(4);
11362
135k
    yych = *YYCURSOR;
11363
135k
    if (yybm[0+yych] & 64) {
11364
941
      goto yy970;
11365
941
    }
11366
134k
    if (yych <= '?') {
11367
46.0k
      if (yych <= '-') {
11368
9.06k
        if (yych == '#') goto yy973;
11369
8.85k
        if (yych >= '-') goto yy975;
11370
37.0k
      } else {
11371
37.0k
        if (yych == '/') goto yy976;
11372
36.6k
        if (yych >= '?') goto yy977;
11373
36.6k
      }
11374
88.4k
    } else {
11375
88.4k
      if (yych <= '_') {
11376
2.82k
        if (yych <= '@') goto yy968;
11377
2.82k
        if (yych <= 'Z') goto yy978;
11378
1.58k
        if (yych >= '_') goto yy978;
11379
85.6k
      } else {
11380
85.6k
        if (yych <= '`') goto yy968;
11381
85.5k
        if (yych <= 'z') goto yy978;
11382
2.22k
        if (yych >= 0x80) goto yy978;
11383
2.22k
      }
11384
88.4k
    }
11385
3.45k
yy968:
11386
3.45k
    YYDEBUG(968, *YYCURSOR);
11387
3.45k
    ++YYCURSOR;
11388
3.52k
yy969:
11389
3.52k
    YYDEBUG(969, *YYCURSOR);
11390
3.52k
    yyleng = YYCURSOR - SCNG(yy_text);
11391
3.52k
#line 2519 "Zend/zend_language_scanner.l"
11392
3.52k
    {
11393
3.52k
  yyless(0);
11394
3.52k
  yy_pop_state();
11395
3.52k
  goto restart;
11396
3.45k
}
11397
0
#line 11398 "Zend/zend_language_scanner.c"
11398
3.61k
yy970:
11399
3.61k
    YYDEBUG(970, *YYCURSOR);
11400
3.61k
    ++YYCURSOR;
11401
3.61k
    YYFILL(1);
11402
3.61k
    yych = *YYCURSOR;
11403
3.61k
    YYDEBUG(971, *YYCURSOR);
11404
3.61k
    if (yybm[0+yych] & 64) {
11405
2.67k
      goto yy970;
11406
2.67k
    }
11407
941
    YYDEBUG(972, *YYCURSOR);
11408
941
    yyleng = YYCURSOR - SCNG(yy_text);
11409
941
#line 1596 "Zend/zend_language_scanner.l"
11410
941
    {
11411
941
  goto return_whitespace;
11412
3.61k
}
11413
0
#line 11414 "Zend/zend_language_scanner.c"
11414
450
yy973:
11415
450
    YYDEBUG(973, *YYCURSOR);
11416
450
    ++YYCURSOR;
11417
450
    YYDEBUG(974, *YYCURSOR);
11418
450
    yyleng = YYCURSOR - SCNG(yy_text);
11419
450
#line 2459 "Zend/zend_language_scanner.l"
11420
450
    {
11421
53.8k
  while (YYCURSOR < YYLIMIT) {
11422
53.8k
    switch (*YYCURSOR++) {
11423
18
      case '\r':
11424
438
      case '\n':
11425
438
        YYCURSOR--;
11426
438
        break;
11427
221
      case '?':
11428
221
        if (*YYCURSOR == '>') {
11429
0
          YYCURSOR--;
11430
0
          break;
11431
0
        }
11432
221
        ZEND_FALLTHROUGH;
11433
53.4k
      default:
11434
53.4k
        continue;
11435
53.8k
    }
11436
11437
438
    break;
11438
53.8k
  }
11439
11440
450
  yyleng = YYCURSOR - SCNG(yy_text);
11441
450
  RETURN_OR_SKIP_TOKEN(T_COMMENT);
11442
450
}
11443
0
#line 11444 "Zend/zend_language_scanner.c"
11444
7.12k
yy975:
11445
7.12k
    YYDEBUG(975, *YYCURSOR);
11446
7.12k
    yych = *++YYCURSOR;
11447
7.12k
    if (yych == '>') goto yy981;
11448
3
    goto yy969;
11449
407
yy976:
11450
407
    YYDEBUG(976, *YYCURSOR);
11451
407
    yych = *++YYCURSOR;
11452
407
    if (yych == '*') goto yy983;
11453
302
    if (yych == '/') goto yy973;
11454
54
    goto yy969;
11455
36.1k
yy977:
11456
36.1k
    YYDEBUG(977, *YYCURSOR);
11457
36.1k
    yyaccept = 0;
11458
36.1k
    yych = *(YYMARKER = ++YYCURSOR);
11459
36.1k
    if (yych == '-') goto yy985;
11460
3
    goto yy969;
11461
428k
yy978:
11462
428k
    YYDEBUG(978, *YYCURSOR);
11463
428k
    ++YYCURSOR;
11464
428k
    YYFILL(1);
11465
428k
    yych = *YYCURSOR;
11466
428k
    YYDEBUG(979, *YYCURSOR);
11467
428k
    if (yybm[0+yych] & 128) {
11468
341k
      goto yy978;
11469
341k
    }
11470
87.2k
    YYDEBUG(980, *YYCURSOR);
11471
87.2k
    yyleng = YYCURSOR - SCNG(yy_text);
11472
87.2k
#line 1608 "Zend/zend_language_scanner.l"
11473
87.2k
    {
11474
87.2k
  yy_pop_state();
11475
87.2k
  RETURN_TOKEN_WITH_STR(T_STRING, 0);
11476
87.2k
}
11477
0
#line 11478 "Zend/zend_language_scanner.c"
11478
7.12k
yy981:
11479
7.12k
    YYDEBUG(981, *YYCURSOR);
11480
7.12k
    ++YYCURSOR;
11481
7.12k
    YYDEBUG(982, *YYCURSOR);
11482
7.12k
    yyleng = YYCURSOR - SCNG(yy_text);
11483
7.12k
#line 1600 "Zend/zend_language_scanner.l"
11484
7.12k
    {
11485
7.12k
  RETURN_TOKEN(T_OBJECT_OPERATOR);
11486
7.12k
}
11487
0
#line 11488 "Zend/zend_language_scanner.c"
11488
105
yy983:
11489
105
    YYDEBUG(983, *YYCURSOR);
11490
105
    yyaccept = 1;
11491
105
    yych = *(YYMARKER = ++YYCURSOR);
11492
105
    if (yych == '*') goto yy987;
11493
105
yy984:
11494
105
    YYDEBUG(984, *YYCURSOR);
11495
105
    yyleng = YYCURSOR - SCNG(yy_text);
11496
105
#line 2483 "Zend/zend_language_scanner.l"
11497
105
    {
11498
105
  int doc_com;
11499
11500
105
  if (yyleng > 2) {
11501
2
    doc_com = 1;
11502
2
    RESET_DOC_COMMENT();
11503
103
  } else {
11504
103
    doc_com = 0;
11505
103
  }
11506
11507
1.51k
  while (YYCURSOR < YYLIMIT) {
11508
1.50k
    if (*YYCURSOR++ == '*' && *YYCURSOR == '/') {
11509
90
      break;
11510
90
    }
11511
1.50k
  }
11512
11513
105
  if (YYCURSOR < YYLIMIT) {
11514
90
    YYCURSOR++;
11515
90
  } else {
11516
15
    zend_throw_exception_ex(zend_ce_parse_error, 0, "Unterminated comment starting line %" PRIu32, CG(zend_lineno));
11517
15
    if (PARSER_MODE()) {
11518
0
      RETURN_TOKEN(T_ERROR);
11519
0
    }
11520
15
  }
11521
11522
105
  yyleng = YYCURSOR - SCNG(yy_text);
11523
105
  HANDLE_NEWLINES(yytext, yyleng);
11524
11525
105
  if (doc_com) {
11526
2
    CG(doc_comment) = zend_string_init(yytext, yyleng, 0);
11527
2
    RETURN_OR_SKIP_TOKEN(T_DOC_COMMENT);
11528
2
  }
11529
11530
103
  RETURN_OR_SKIP_TOKEN(T_COMMENT);
11531
103
}
11532
0
#line 11533 "Zend/zend_language_scanner.c"
11533
36.1k
yy985:
11534
36.1k
    YYDEBUG(985, *YYCURSOR);
11535
36.1k
    yych = *++YYCURSOR;
11536
36.1k
    if (yych == '>') goto yy988;
11537
6
yy986:
11538
6
    YYDEBUG(986, *YYCURSOR);
11539
6
    YYCURSOR = YYMARKER;
11540
6
    if (yyaccept == 0) {
11541
6
      goto yy969;
11542
6
    } else {
11543
0
      goto yy984;
11544
0
    }
11545
2
yy987:
11546
2
    YYDEBUG(987, *YYCURSOR);
11547
2
    yych = *++YYCURSOR;
11548
2
    if (yych <= '\f') {
11549
0
      if (yych <= 0x08) goto yy986;
11550
0
      if (yych <= '\n') goto yy990;
11551
0
      goto yy986;
11552
2
    } else {
11553
2
      if (yych <= '\r') goto yy990;
11554
2
      if (yych == ' ') goto yy990;
11555
0
      goto yy986;
11556
2
    }
11557
36.1k
yy988:
11558
36.1k
    YYDEBUG(988, *YYCURSOR);
11559
36.1k
    ++YYCURSOR;
11560
36.1k
    YYDEBUG(989, *YYCURSOR);
11561
36.1k
    yyleng = YYCURSOR - SCNG(yy_text);
11562
36.1k
#line 1604 "Zend/zend_language_scanner.l"
11563
36.1k
    {
11564
36.1k
  RETURN_TOKEN(T_NULLSAFE_OBJECT_OPERATOR);
11565
36.1k
}
11566
0
#line 11567 "Zend/zend_language_scanner.c"
11567
2
yy990:
11568
2
    YYDEBUG(990, *YYCURSOR);
11569
2
    ++YYCURSOR;
11570
2
    YYFILL(1);
11571
2
    yych = *YYCURSOR;
11572
2
    YYDEBUG(991, *YYCURSOR);
11573
2
    if (yych <= '\f') {
11574
0
      if (yych <= 0x08) goto yy984;
11575
0
      if (yych <= '\n') goto yy990;
11576
0
      goto yy984;
11577
2
    } else {
11578
2
      if (yych <= '\r') goto yy990;
11579
2
      if (yych == ' ') goto yy990;
11580
2
      goto yy984;
11581
2
    }
11582
2
  }
11583
/* *********************************** */
11584
37.0k
yyc_ST_BACKQUOTE:
11585
37.0k
  {
11586
37.0k
    static const unsigned char yybm[] = {
11587
37.0k
        0,   0,   0,   0,   0,   0,   0,   0, 
11588
37.0k
        0,   0,   0,   0,   0,   0,   0,   0, 
11589
37.0k
        0,   0,   0,   0,   0,   0,   0,   0, 
11590
37.0k
        0,   0,   0,   0,   0,   0,   0,   0, 
11591
37.0k
        0,   0,   0,   0,   0,   0,   0,   0, 
11592
37.0k
        0,   0,   0,   0,   0,   0,   0,   0, 
11593
37.0k
      128, 128, 128, 128, 128, 128, 128, 128, 
11594
37.0k
      128, 128,   0,   0,   0,   0,   0,   0, 
11595
37.0k
        0, 128, 128, 128, 128, 128, 128, 128, 
11596
37.0k
      128, 128, 128, 128, 128, 128, 128, 128, 
11597
37.0k
      128, 128, 128, 128, 128, 128, 128, 128, 
11598
37.0k
      128, 128, 128,   0,   0,   0,   0, 128, 
11599
37.0k
        0, 128, 128, 128, 128, 128, 128, 128, 
11600
37.0k
      128, 128, 128, 128, 128, 128, 128, 128, 
11601
37.0k
      128, 128, 128, 128, 128, 128, 128, 128, 
11602
37.0k
      128, 128, 128,   0,   0,   0,   0,   0, 
11603
37.0k
      128, 128, 128, 128, 128, 128, 128, 128, 
11604
37.0k
      128, 128, 128, 128, 128, 128, 128, 128, 
11605
37.0k
      128, 128, 128, 128, 128, 128, 128, 128, 
11606
37.0k
      128, 128, 128, 128, 128, 128, 128, 128, 
11607
37.0k
      128, 128, 128, 128, 128, 128, 128, 128, 
11608
37.0k
      128, 128, 128, 128, 128, 128, 128, 128, 
11609
37.0k
      128, 128, 128, 128, 128, 128, 128, 128, 
11610
37.0k
      128, 128, 128, 128, 128, 128, 128, 128, 
11611
37.0k
      128, 128, 128, 128, 128, 128, 128, 128, 
11612
37.0k
      128, 128, 128, 128, 128, 128, 128, 128, 
11613
37.0k
      128, 128, 128, 128, 128, 128, 128, 128, 
11614
37.0k
      128, 128, 128, 128, 128, 128, 128, 128, 
11615
37.0k
      128, 128, 128, 128, 128, 128, 128, 128, 
11616
37.0k
      128, 128, 128, 128, 128, 128, 128, 128, 
11617
37.0k
      128, 128, 128, 128, 128, 128, 128, 128, 
11618
37.0k
      128, 128, 128, 128, 128, 128, 128, 128, 
11619
37.0k
    };
11620
37.0k
    YYDEBUG(992, *YYCURSOR);
11621
37.0k
    YYFILL(2);
11622
37.0k
    yych = *YYCURSOR;
11623
37.0k
    if (yych <= '_') {
11624
28.5k
      if (yych == '$') goto yy996;
11625
28.5k
    } else {
11626
8.51k
      if (yych <= '`') goto yy997;
11627
2.19k
      if (yych == '{') goto yy999;
11628
2.19k
    }
11629
16.9k
    YYDEBUG(994, *YYCURSOR);
11630
16.9k
    ++YYCURSOR;
11631
17.1k
yy995:
11632
17.1k
    YYDEBUG(995, *YYCURSOR);
11633
17.1k
    yyleng = YYCURSOR - SCNG(yy_text);
11634
17.1k
#line 2918 "Zend/zend_language_scanner.l"
11635
17.1k
    {
11636
17.1k
  if (YYCURSOR > YYLIMIT) {
11637
912
    RETURN_END_TOKEN;
11638
912
  }
11639
16.2k
  if (yytext[0] == '\\' && YYCURSOR < YYLIMIT) {
11640
86
    YYCURSOR++;
11641
86
  }
11642
11643
816k
  while (YYCURSOR < YYLIMIT) {
11644
815k
    switch (*YYCURSOR++) {
11645
2.55k
      case '`':
11646
2.55k
        break;
11647
16.3k
      case '$':
11648
16.3k
        if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
11649
12.5k
          break;
11650
12.5k
        }
11651
3.77k
        continue;
11652
6.01k
      case '{':
11653
6.01k
        if (*YYCURSOR == '$') {
11654
243
          break;
11655
243
        }
11656
5.77k
        continue;
11657
5.77k
      case '\\':
11658
2.39k
        if (YYCURSOR < YYLIMIT) {
11659
2.39k
          YYCURSOR++;
11660
2.39k
        }
11661
2.39k
        ZEND_FALLTHROUGH;
11662
790k
      default:
11663
790k
        continue;
11664
815k
    }
11665
11666
15.3k
    YYCURSOR--;
11667
15.3k
    break;
11668
815k
  }
11669
11670
16.2k
  yyleng = YYCURSOR - SCNG(yy_text);
11671
11672
16.2k
  if (EXPECTED(zend_scan_escape_string(zendlval, yytext, yyleng, '`') == SUCCESS)
11673
16.2k
   || !PARSER_MODE()) {
11674
16.2k
    RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
11675
16.2k
  } else {
11676
0
    RETURN_TOKEN(T_ERROR);
11677
0
  }
11678
16.2k
}
11679
0
#line 11680 "Zend/zend_language_scanner.c"
11680
13.3k
yy996:
11681
13.3k
    YYDEBUG(996, *YYCURSOR);
11682
13.3k
    yych = *++YYCURSOR;
11683
13.3k
    if (yych <= '_') {
11684
403
      if (yych <= '@') goto yy995;
11685
339
      if (yych <= 'Z') goto yy1000;
11686
76
      if (yych <= '^') goto yy995;
11687
73
      goto yy1000;
11688
12.9k
    } else {
11689
12.9k
      if (yych <= 'z') {
11690
9.69k
        if (yych <= '`') goto yy995;
11691
9.69k
        goto yy1000;
11692
9.69k
      } else {
11693
3.27k
        if (yych <= '{') goto yy1003;
11694
872
        if (yych <= 0x7F) goto yy995;
11695
857
        goto yy1000;
11696
872
      }
11697
12.9k
    }
11698
6.32k
yy997:
11699
6.32k
    YYDEBUG(997, *YYCURSOR);
11700
6.32k
    ++YYCURSOR;
11701
6.32k
    YYDEBUG(998, *YYCURSOR);
11702
6.32k
    yyleng = YYCURSOR - SCNG(yy_text);
11703
6.32k
#line 2858 "Zend/zend_language_scanner.l"
11704
6.32k
    {
11705
6.32k
  BEGIN(ST_IN_SCRIPTING);
11706
6.32k
  RETURN_TOKEN('`');
11707
6.32k
}
11708
0
#line 11709 "Zend/zend_language_scanner.c"
11709
378
yy999:
11710
378
    YYDEBUG(999, *YYCURSOR);
11711
378
    yych = *++YYCURSOR;
11712
378
    if (yych == '$') goto yy1005;
11713
135
    goto yy995;
11714
38.4k
yy1000:
11715
38.4k
    YYDEBUG(1000, *YYCURSOR);
11716
38.4k
    YYMARKER = ++YYCURSOR;
11717
38.4k
    YYFILL(4);
11718
38.4k
    yych = *YYCURSOR;
11719
38.4k
    YYDEBUG(1001, *YYCURSOR);
11720
38.4k
    if (yybm[0+yych] & 128) {
11721
27.5k
      goto yy1000;
11722
27.5k
    }
11723
10.8k
    if (yych <= '>') {
11724
6.51k
      if (yych == '-') goto yy1007;
11725
6.51k
    } else {
11726
4.36k
      if (yych <= '?') goto yy1009;
11727
587
      if (yych <= '@') goto yy1002;
11728
587
      if (yych <= '[') goto yy1010;
11729
587
    }
11730
8.28k
yy1002:
11731
8.28k
    YYDEBUG(1002, *YYCURSOR);
11732
8.28k
    yyleng = YYCURSOR - SCNG(yy_text);
11733
8.28k
#line 2416 "Zend/zend_language_scanner.l"
11734
8.28k
    {
11735
8.28k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
11736
8.28k
}
11737
0
#line 11738 "Zend/zend_language_scanner.c"
11738
2.39k
yy1003:
11739
2.39k
    YYDEBUG(1003, *YYCURSOR);
11740
2.39k
    ++YYCURSOR;
11741
2.39k
    YYDEBUG(1004, *YYCURSOR);
11742
2.39k
    yyleng = YYCURSOR - SCNG(yy_text);
11743
2.39k
#line 1980 "Zend/zend_language_scanner.l"
11744
2.39k
    {
11745
2.39k
  yy_push_state(ST_LOOKING_FOR_VARNAME);
11746
2.39k
  enter_nesting('{');
11747
2.39k
  RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES);
11748
2.39k
}
11749
0
#line 11750 "Zend/zend_language_scanner.c"
11750
243
yy1005:
11751
243
    YYDEBUG(1005, *YYCURSOR);
11752
243
    ++YYCURSOR;
11753
243
    YYDEBUG(1006, *YYCURSOR);
11754
243
    yyleng = YYCURSOR - SCNG(yy_text);
11755
243
#line 2845 "Zend/zend_language_scanner.l"
11756
243
    {
11757
243
  yy_push_state(ST_IN_SCRIPTING);
11758
243
  yyless(1);
11759
243
  enter_nesting('{');
11760
243
  RETURN_TOKEN(T_CURLY_OPEN);
11761
243
}
11762
0
#line 11763 "Zend/zend_language_scanner.c"
11763
1.35k
yy1007:
11764
1.35k
    YYDEBUG(1007, *YYCURSOR);
11765
1.35k
    yych = *++YYCURSOR;
11766
1.35k
    if (yych == '>') goto yy1012;
11767
2.59k
yy1008:
11768
2.59k
    YYDEBUG(1008, *YYCURSOR);
11769
2.59k
    YYCURSOR = YYMARKER;
11770
2.59k
    goto yy1002;
11771
3.77k
yy1009:
11772
3.77k
    YYDEBUG(1009, *YYCURSOR);
11773
3.77k
    yych = *++YYCURSOR;
11774
3.77k
    if (yych == '-') goto yy1013;
11775
1.89k
    goto yy1008;
11776
1.89k
yy1010:
11777
61
    YYDEBUG(1010, *YYCURSOR);
11778
61
    ++YYCURSOR;
11779
61
    YYDEBUG(1011, *YYCURSOR);
11780
61
    yyleng = YYCURSOR - SCNG(yy_text);
11781
61
#line 2410 "Zend/zend_language_scanner.l"
11782
61
    {
11783
61
  yyless(yyleng - 1);
11784
61
  yy_push_state(ST_VAR_OFFSET);
11785
61
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
11786
61
}
11787
0
#line 11788 "Zend/zend_language_scanner.c"
11788
990
yy1012:
11789
990
    YYDEBUG(1012, *YYCURSOR);
11790
990
    yych = *++YYCURSOR;
11791
990
    if (yych <= '_') {
11792
90
      if (yych <= '@') goto yy1008;
11793
51
      if (yych <= 'Z') goto yy1014;
11794
42
      if (yych <= '^') goto yy1008;
11795
42
      goto yy1014;
11796
900
    } else {
11797
900
      if (yych <= '`') goto yy1008;
11798
849
      if (yych <= 'z') goto yy1014;
11799
81
      if (yych <= 0x7F) goto yy1008;
11800
6
      goto yy1014;
11801
81
    }
11802
1.88k
yy1013:
11803
1.88k
    YYDEBUG(1013, *YYCURSOR);
11804
1.88k
    yych = *++YYCURSOR;
11805
1.88k
    if (yych == '>') goto yy1016;
11806
99
    goto yy1008;
11807
825
yy1014:
11808
825
    YYDEBUG(1014, *YYCURSOR);
11809
825
    ++YYCURSOR;
11810
825
    YYDEBUG(1015, *YYCURSOR);
11811
825
    yyleng = YYCURSOR - SCNG(yy_text);
11812
825
#line 2396 "Zend/zend_language_scanner.l"
11813
825
    {
11814
825
  yyless(yyleng - 3);
11815
825
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
11816
825
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
11817
825
}
11818
0
#line 11819 "Zend/zend_language_scanner.c"
11819
1.78k
yy1016:
11820
1.78k
    YYDEBUG(1016, *YYCURSOR);
11821
1.78k
    yych = *++YYCURSOR;
11822
1.78k
    if (yych <= '_') {
11823
78
      if (yych <= '@') goto yy1008;
11824
12
      if (yych <= 'Z') goto yy1017;
11825
12
      if (yych <= '^') goto yy1008;
11826
1.71k
    } else {
11827
1.71k
      if (yych <= '`') goto yy1008;
11828
1.71k
      if (yych <= 'z') goto yy1017;
11829
0
      if (yych <= 0x7F) goto yy1008;
11830
0
    }
11831
1.71k
yy1017:
11832
1.71k
    YYDEBUG(1017, *YYCURSOR);
11833
1.71k
    ++YYCURSOR;
11834
1.71k
    YYDEBUG(1018, *YYCURSOR);
11835
1.71k
    yyleng = YYCURSOR - SCNG(yy_text);
11836
1.71k
#line 2402 "Zend/zend_language_scanner.l"
11837
1.71k
    {
11838
1.71k
  yyless(yyleng - 4);
11839
1.71k
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
11840
1.71k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
11841
1.71k
}
11842
1.71k
#line 11843 "Zend/zend_language_scanner.c"
11843
1.71k
  }
11844
/* *********************************** */
11845
224k
yyc_ST_DOUBLE_QUOTES:
11846
224k
  {
11847
224k
    static const unsigned char yybm[] = {
11848
224k
        0,   0,   0,   0,   0,   0,   0,   0, 
11849
224k
        0,   0,   0,   0,   0,   0,   0,   0, 
11850
224k
        0,   0,   0,   0,   0,   0,   0,   0, 
11851
224k
        0,   0,   0,   0,   0,   0,   0,   0, 
11852
224k
        0,   0,   0,   0,   0,   0,   0,   0, 
11853
224k
        0,   0,   0,   0,   0,   0,   0,   0, 
11854
224k
      128, 128, 128, 128, 128, 128, 128, 128, 
11855
224k
      128, 128,   0,   0,   0,   0,   0,   0, 
11856
224k
        0, 128, 128, 128, 128, 128, 128, 128, 
11857
224k
      128, 128, 128, 128, 128, 128, 128, 128, 
11858
224k
      128, 128, 128, 128, 128, 128, 128, 128, 
11859
224k
      128, 128, 128,   0,   0,   0,   0, 128, 
11860
224k
        0, 128, 128, 128, 128, 128, 128, 128, 
11861
224k
      128, 128, 128, 128, 128, 128, 128, 128, 
11862
224k
      128, 128, 128, 128, 128, 128, 128, 128, 
11863
224k
      128, 128, 128,   0,   0,   0,   0,   0, 
11864
224k
      128, 128, 128, 128, 128, 128, 128, 128, 
11865
224k
      128, 128, 128, 128, 128, 128, 128, 128, 
11866
224k
      128, 128, 128, 128, 128, 128, 128, 128, 
11867
224k
      128, 128, 128, 128, 128, 128, 128, 128, 
11868
224k
      128, 128, 128, 128, 128, 128, 128, 128, 
11869
224k
      128, 128, 128, 128, 128, 128, 128, 128, 
11870
224k
      128, 128, 128, 128, 128, 128, 128, 128, 
11871
224k
      128, 128, 128, 128, 128, 128, 128, 128, 
11872
224k
      128, 128, 128, 128, 128, 128, 128, 128, 
11873
224k
      128, 128, 128, 128, 128, 128, 128, 128, 
11874
224k
      128, 128, 128, 128, 128, 128, 128, 128, 
11875
224k
      128, 128, 128, 128, 128, 128, 128, 128, 
11876
224k
      128, 128, 128, 128, 128, 128, 128, 128, 
11877
224k
      128, 128, 128, 128, 128, 128, 128, 128, 
11878
224k
      128, 128, 128, 128, 128, 128, 128, 128, 
11879
224k
      128, 128, 128, 128, 128, 128, 128, 128, 
11880
224k
    };
11881
224k
    YYDEBUG(1019, *YYCURSOR);
11882
224k
    YYFILL(2);
11883
224k
    yych = *YYCURSOR;
11884
224k
    if (yych <= '#') {
11885
38.8k
      if (yych == '"') goto yy1023;
11886
185k
    } else {
11887
185k
      if (yych <= '$') goto yy1025;
11888
91.4k
      if (yych == '{') goto yy1026;
11889
91.4k
    }
11890
110k
    YYDEBUG(1021, *YYCURSOR);
11891
110k
    ++YYCURSOR;
11892
111k
yy1022:
11893
111k
    YYDEBUG(1022, *YYCURSOR);
11894
111k
    yyleng = YYCURSOR - SCNG(yy_text);
11895
111k
#line 2864 "Zend/zend_language_scanner.l"
11896
111k
    {
11897
111k
  if (GET_DOUBLE_QUOTES_SCANNED_LENGTH()) {
11898
23.4k
    YYCURSOR += GET_DOUBLE_QUOTES_SCANNED_LENGTH() - 1;
11899
23.4k
    SET_DOUBLE_QUOTES_SCANNED_LENGTH(0);
11900
11901
23.4k
    goto double_quotes_scan_done;
11902
23.4k
  }
11903
11904
87.6k
  if (YYCURSOR > YYLIMIT) {
11905
1.54k
    RETURN_END_TOKEN;
11906
1.54k
  }
11907
86.0k
  if (yytext[0] == '\\' && YYCURSOR < YYLIMIT) {
11908
3.16k
    YYCURSOR++;
11909
3.16k
  }
11910
11911
2.21M
  while (YYCURSOR < YYLIMIT) {
11912
2.21M
    switch (*YYCURSOR++) {
11913
15.8k
      case '"':
11914
15.8k
        break;
11915
78.8k
      case '$':
11916
78.8k
        if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
11917
69.1k
          break;
11918
69.1k
        }
11919
9.64k
        continue;
11920
9.64k
      case '{':
11921
4.50k
        if (*YYCURSOR == '$') {
11922
500
          break;
11923
500
        }
11924
4.00k
        continue;
11925
13.9k
      case '\\':
11926
13.9k
        if (YYCURSOR < YYLIMIT) {
11927
13.9k
          YYCURSOR++;
11928
13.9k
        }
11929
13.9k
        ZEND_FALLTHROUGH;
11930
2.11M
      default:
11931
2.11M
        continue;
11932
2.21M
    }
11933
11934
85.5k
    YYCURSOR--;
11935
85.5k
    break;
11936
2.21M
  }
11937
11938
109k
double_quotes_scan_done:
11939
109k
  yyleng = YYCURSOR - SCNG(yy_text);
11940
11941
109k
  if (EXPECTED(zend_scan_escape_string(zendlval, yytext, yyleng, '"') == SUCCESS)
11942
109k
   || !PARSER_MODE()) {
11943
109k
    RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
11944
109k
  } else {
11945
3
    RETURN_TOKEN(T_ERROR);
11946
3
  }
11947
109k
}
11948
0
#line 11949 "Zend/zend_language_scanner.c"
11949
17.0k
yy1023:
11950
17.0k
    YYDEBUG(1023, *YYCURSOR);
11951
17.0k
    ++YYCURSOR;
11952
17.0k
    YYDEBUG(1024, *YYCURSOR);
11953
17.0k
    yyleng = YYCURSOR - SCNG(yy_text);
11954
17.0k
#line 2853 "Zend/zend_language_scanner.l"
11955
17.0k
    {
11956
17.0k
  BEGIN(ST_IN_SCRIPTING);
11957
17.0k
  RETURN_TOKEN('"');
11958
17.0k
}
11959
0
#line 11960 "Zend/zend_language_scanner.c"
11960
94.3k
yy1025:
11961
94.3k
    YYDEBUG(1025, *YYCURSOR);
11962
94.3k
    yych = *++YYCURSOR;
11963
94.3k
    if (yych <= '_') {
11964
5.44k
      if (yych <= '@') goto yy1022;
11965
5.01k
      if (yych <= 'Z') goto yy1027;
11966
292
      if (yych <= '^') goto yy1022;
11967
287
      goto yy1027;
11968
88.8k
    } else {
11969
88.8k
      if (yych <= 'z') {
11970
79.9k
        if (yych <= '`') goto yy1022;
11971
79.9k
        goto yy1027;
11972
79.9k
      } else {
11973
8.94k
        if (yych <= '{') goto yy1030;
11974
3.29k
        if (yych <= 0x7F) goto yy1022;
11975
3.28k
        goto yy1027;
11976
3.29k
      }
11977
88.8k
    }
11978
2.75k
yy1026:
11979
2.75k
    YYDEBUG(1026, *YYCURSOR);
11980
2.75k
    yych = *++YYCURSOR;
11981
2.75k
    if (yych == '$') goto yy1032;
11982
239
    goto yy1022;
11983
293k
yy1027:
11984
293k
    YYDEBUG(1027, *YYCURSOR);
11985
293k
    YYMARKER = ++YYCURSOR;
11986
293k
    YYFILL(4);
11987
293k
    yych = *YYCURSOR;
11988
293k
    YYDEBUG(1028, *YYCURSOR);
11989
293k
    if (yybm[0+yych] & 128) {
11990
204k
      goto yy1027;
11991
204k
    }
11992
88.2k
    if (yych <= '>') {
11993
34.8k
      if (yych == '-') goto yy1034;
11994
53.3k
    } else {
11995
53.3k
      if (yych <= '?') goto yy1036;
11996
5.37k
      if (yych <= '@') goto yy1029;
11997
5.34k
      if (yych <= '[') goto yy1037;
11998
5.34k
    }
11999
64.3k
yy1029:
12000
64.3k
    YYDEBUG(1029, *YYCURSOR);
12001
64.3k
    yyleng = YYCURSOR - SCNG(yy_text);
12002
64.3k
#line 2416 "Zend/zend_language_scanner.l"
12003
64.3k
    {
12004
64.3k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12005
64.3k
}
12006
0
#line 12007 "Zend/zend_language_scanner.c"
12007
5.65k
yy1030:
12008
5.65k
    YYDEBUG(1030, *YYCURSOR);
12009
5.65k
    ++YYCURSOR;
12010
5.65k
    YYDEBUG(1031, *YYCURSOR);
12011
5.65k
    yyleng = YYCURSOR - SCNG(yy_text);
12012
5.65k
#line 1980 "Zend/zend_language_scanner.l"
12013
5.65k
    {
12014
5.65k
  yy_push_state(ST_LOOKING_FOR_VARNAME);
12015
5.65k
  enter_nesting('{');
12016
5.65k
  RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES);
12017
5.65k
}
12018
0
#line 12019 "Zend/zend_language_scanner.c"
12019
2.51k
yy1032:
12020
2.51k
    YYDEBUG(1032, *YYCURSOR);
12021
2.51k
    ++YYCURSOR;
12022
2.51k
    YYDEBUG(1033, *YYCURSOR);
12023
2.51k
    yyleng = YYCURSOR - SCNG(yy_text);
12024
2.51k
#line 2845 "Zend/zend_language_scanner.l"
12025
2.51k
    {
12026
2.51k
  yy_push_state(ST_IN_SCRIPTING);
12027
2.51k
  yyless(1);
12028
2.51k
  enter_nesting('{');
12029
2.51k
  RETURN_TOKEN(T_CURLY_OPEN);
12030
2.51k
}
12031
0
#line 12032 "Zend/zend_language_scanner.c"
12032
3.11k
yy1034:
12033
3.11k
    YYDEBUG(1034, *YYCURSOR);
12034
3.11k
    yych = *++YYCURSOR;
12035
3.11k
    if (yych == '>') goto yy1039;
12036
28.3k
yy1035:
12037
28.3k
    YYDEBUG(1035, *YYCURSOR);
12038
28.3k
    YYCURSOR = YYMARKER;
12039
28.3k
    goto yy1029;
12040
48.0k
yy1036:
12041
48.0k
    YYDEBUG(1036, *YYCURSOR);
12042
48.0k
    yych = *++YYCURSOR;
12043
48.0k
    if (yych == '-') goto yy1040;
12044
26.0k
    goto yy1035;
12045
26.0k
yy1037:
12046
1.06k
    YYDEBUG(1037, *YYCURSOR);
12047
1.06k
    ++YYCURSOR;
12048
1.06k
    YYDEBUG(1038, *YYCURSOR);
12049
1.06k
    yyleng = YYCURSOR - SCNG(yy_text);
12050
1.06k
#line 2410 "Zend/zend_language_scanner.l"
12051
1.06k
    {
12052
1.06k
  yyless(yyleng - 1);
12053
1.06k
  yy_push_state(ST_VAR_OFFSET);
12054
1.06k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12055
1.06k
}
12056
0
#line 12057 "Zend/zend_language_scanner.c"
12057
2.47k
yy1039:
12058
2.47k
    YYDEBUG(1039, *YYCURSOR);
12059
2.47k
    yych = *++YYCURSOR;
12060
2.47k
    if (yych <= '_') {
12061
400
      if (yych <= '@') goto yy1035;
12062
109
      if (yych <= 'Z') goto yy1041;
12063
52
      if (yych <= '^') goto yy1035;
12064
40
      goto yy1041;
12065
2.07k
    } else {
12066
2.07k
      if (yych <= '`') goto yy1035;
12067
2.07k
      if (yych <= 'z') goto yy1041;
12068
117
      if (yych <= 0x7F) goto yy1035;
12069
28
      goto yy1041;
12070
117
    }
12071
22.0k
yy1040:
12072
22.0k
    YYDEBUG(1040, *YYCURSOR);
12073
22.0k
    yych = *++YYCURSOR;
12074
22.0k
    if (yych == '>') goto yy1043;
12075
501
    goto yy1035;
12076
2.07k
yy1041:
12077
2.07k
    YYDEBUG(1041, *YYCURSOR);
12078
2.07k
    ++YYCURSOR;
12079
2.07k
    YYDEBUG(1042, *YYCURSOR);
12080
2.07k
    yyleng = YYCURSOR - SCNG(yy_text);
12081
2.07k
#line 2396 "Zend/zend_language_scanner.l"
12082
2.07k
    {
12083
2.07k
  yyless(yyleng - 3);
12084
2.07k
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
12085
2.07k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12086
2.07k
}
12087
0
#line 12088 "Zend/zend_language_scanner.c"
12088
21.5k
yy1043:
12089
21.5k
    YYDEBUG(1043, *YYCURSOR);
12090
21.5k
    yych = *++YYCURSOR;
12091
21.5k
    if (yych <= '_') {
12092
702
      if (yych <= '@') goto yy1035;
12093
91
      if (yych <= 'Z') goto yy1044;
12094
72
      if (yych <= '^') goto yy1035;
12095
20.8k
    } else {
12096
20.8k
      if (yych <= '`') goto yy1035;
12097
20.7k
      if (yych <= 'z') goto yy1044;
12098
347
      if (yych <= 0x7F) goto yy1035;
12099
347
    }
12100
20.7k
yy1044:
12101
20.7k
    YYDEBUG(1044, *YYCURSOR);
12102
20.7k
    ++YYCURSOR;
12103
20.7k
    YYDEBUG(1045, *YYCURSOR);
12104
20.7k
    yyleng = YYCURSOR - SCNG(yy_text);
12105
20.7k
#line 2402 "Zend/zend_language_scanner.l"
12106
20.7k
    {
12107
20.7k
  yyless(yyleng - 4);
12108
20.7k
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
12109
20.7k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12110
20.7k
}
12111
20.7k
#line 12112 "Zend/zend_language_scanner.c"
12112
20.7k
  }
12113
/* *********************************** */
12114
624k
yyc_ST_HEREDOC:
12115
624k
  {
12116
624k
    static const unsigned char yybm[] = {
12117
624k
        0,   0,   0,   0,   0,   0,   0,   0, 
12118
624k
        0,   0,   0,   0,   0,   0,   0,   0, 
12119
624k
        0,   0,   0,   0,   0,   0,   0,   0, 
12120
624k
        0,   0,   0,   0,   0,   0,   0,   0, 
12121
624k
        0,   0,   0,   0,   0,   0,   0,   0, 
12122
624k
        0,   0,   0,   0,   0,   0,   0,   0, 
12123
624k
      128, 128, 128, 128, 128, 128, 128, 128, 
12124
624k
      128, 128,   0,   0,   0,   0,   0,   0, 
12125
624k
        0, 128, 128, 128, 128, 128, 128, 128, 
12126
624k
      128, 128, 128, 128, 128, 128, 128, 128, 
12127
624k
      128, 128, 128, 128, 128, 128, 128, 128, 
12128
624k
      128, 128, 128,   0,   0,   0,   0, 128, 
12129
624k
        0, 128, 128, 128, 128, 128, 128, 128, 
12130
624k
      128, 128, 128, 128, 128, 128, 128, 128, 
12131
624k
      128, 128, 128, 128, 128, 128, 128, 128, 
12132
624k
      128, 128, 128,   0,   0,   0,   0,   0, 
12133
624k
      128, 128, 128, 128, 128, 128, 128, 128, 
12134
624k
      128, 128, 128, 128, 128, 128, 128, 128, 
12135
624k
      128, 128, 128, 128, 128, 128, 128, 128, 
12136
624k
      128, 128, 128, 128, 128, 128, 128, 128, 
12137
624k
      128, 128, 128, 128, 128, 128, 128, 128, 
12138
624k
      128, 128, 128, 128, 128, 128, 128, 128, 
12139
624k
      128, 128, 128, 128, 128, 128, 128, 128, 
12140
624k
      128, 128, 128, 128, 128, 128, 128, 128, 
12141
624k
      128, 128, 128, 128, 128, 128, 128, 128, 
12142
624k
      128, 128, 128, 128, 128, 128, 128, 128, 
12143
624k
      128, 128, 128, 128, 128, 128, 128, 128, 
12144
624k
      128, 128, 128, 128, 128, 128, 128, 128, 
12145
624k
      128, 128, 128, 128, 128, 128, 128, 128, 
12146
624k
      128, 128, 128, 128, 128, 128, 128, 128, 
12147
624k
      128, 128, 128, 128, 128, 128, 128, 128, 
12148
624k
      128, 128, 128, 128, 128, 128, 128, 128, 
12149
624k
    };
12150
624k
    YYDEBUG(1046, *YYCURSOR);
12151
624k
    YYFILL(2);
12152
624k
    yych = *YYCURSOR;
12153
624k
    if (yych == '$') goto yy1050;
12154
186k
    if (yych == '{') goto yy1051;
12155
171k
    YYDEBUG(1048, *YYCURSOR);
12156
171k
    ++YYCURSOR;
12157
208k
yy1049:
12158
208k
    YYDEBUG(1049, *YYCURSOR);
12159
208k
    yyleng = YYCURSOR - SCNG(yy_text);
12160
208k
#line 2964 "Zend/zend_language_scanner.l"
12161
208k
    {
12162
208k
  zend_heredoc_label *heredoc_label = zend_ptr_stack_top(&SCNG(heredoc_label_stack));
12163
208k
  int newline = 0, indentation = 0, spacing = 0;
12164
12165
208k
  if (YYCURSOR > YYLIMIT) {
12166
2.49k
    RETURN_END_TOKEN;
12167
2.49k
  }
12168
12169
205k
  YYCURSOR--;
12170
12171
5.57M
  while (YYCURSOR < YYLIMIT) {
12172
5.57M
    switch (*YYCURSOR++) {
12173
36.4k
      case '\r':
12174
36.4k
        if (*YYCURSOR == '\n') {
12175
703
          YYCURSOR++;
12176
703
        }
12177
36.4k
        ZEND_FALLTHROUGH;
12178
321k
      case '\n':
12179
321k
        indentation = spacing = 0;
12180
12181
501k
        while (YYCURSOR < YYLIMIT && (*YYCURSOR == ' ' || *YYCURSOR == '\t')) {
12182
179k
          if (*YYCURSOR == '\t') {
12183
236
            spacing |= HEREDOC_USING_TABS;
12184
179k
          } else {
12185
179k
            spacing |= HEREDOC_USING_SPACES;
12186
179k
          }
12187
179k
          ++YYCURSOR;
12188
179k
          ++indentation;
12189
179k
        }
12190
12191
321k
        if (YYCURSOR == YYLIMIT) {
12192
302
          yyleng = YYCURSOR - SCNG(yy_text);
12193
302
          HANDLE_NEWLINES(yytext, yyleng);
12194
302
          ZVAL_NULL(zendlval);
12195
302
          RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
12196
302
        }
12197
12198
        /* Check for ending label on the next line */
12199
321k
        if (IS_LABEL_START(*YYCURSOR) && heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, heredoc_label->label, heredoc_label->length)) {
12200
6.57k
          if (IS_LABEL_SUCCESSOR(YYCURSOR[heredoc_label->length])) {
12201
3.02k
            continue;
12202
3.02k
          }
12203
12204
3.55k
          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
3.55k
          if (YYCURSOR[-indentation - 2] == '\r' && YYCURSOR[-indentation - 1] == '\n') {
12214
18
            newline = 2; /* Windows newline */
12215
3.53k
          } else {
12216
3.53k
            newline = 1;
12217
3.53k
          }
12218
12219
3.55k
          CG(increment_lineno) = 1; /* For newline before label */
12220
12221
3.55k
          if (SCNG(heredoc_scan_ahead)) {
12222
2.21k
            SCNG(heredoc_indentation) = indentation;
12223
2.21k
            SCNG(heredoc_indentation_uses_spaces) = (spacing == HEREDOC_USING_SPACES);
12224
2.21k
          } else {
12225
1.33k
            YYCURSOR -= indentation;
12226
1.33k
          }
12227
12228
3.55k
          BEGIN(ST_END_HEREDOC);
12229
12230
3.55k
          goto heredoc_scan_done;
12231
3.55k
        }
12232
315k
        continue;
12233
315k
      case '$':
12234
254k
        if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
12235
194k
          break;
12236
194k
        }
12237
60.1k
        continue;
12238
60.1k
      case '{':
12239
58.6k
        if (*YYCURSOR == '$') {
12240
5.34k
          break;
12241
5.34k
        }
12242
53.3k
        continue;
12243
53.3k
      case '\\':
12244
19.0k
        if (YYCURSOR < YYLIMIT && *YYCURSOR != '\n' && *YYCURSOR != '\r') {
12245
18.4k
          YYCURSOR++;
12246
18.4k
        }
12247
19.0k
        ZEND_FALLTHROUGH;
12248
4.93M
      default:
12249
4.93M
        continue;
12250
5.57M
    }
12251
12252
199k
    YYCURSOR--;
12253
199k
    break;
12254
5.57M
  }
12255
12256
205k
heredoc_scan_done:
12257
12258
205k
  yyleng = YYCURSOR - SCNG(yy_text);
12259
205k
  ZVAL_STRINGL(zendlval, yytext, yyleng - newline);
12260
12261
205k
  if (!SCNG(heredoc_scan_ahead) && !EG(exception) && PARSER_MODE()) {
12262
22.5k
    bool newline_at_start = *(yytext - 1) == '\n' || *(yytext - 1) == '\r';
12263
22.5k
    zend_string *copy = Z_STR_P(zendlval);
12264
12265
22.5k
    if (!strip_multiline_string_indentation(
12266
22.5k
        zendlval, heredoc_label->indentation, heredoc_label->indentation_uses_spaces,
12267
22.5k
        newline_at_start, newline != 0)) {
12268
33
      RETURN_TOKEN(T_ERROR);
12269
33
    }
12270
12271
22.4k
    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
22.4k
    zend_string_efree(copy);
12277
182k
  } else {
12278
182k
    HANDLE_NEWLINES(yytext, yyleng - newline);
12279
182k
  }
12280
12281
205k
  RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
12282
205k
}
12283
0
#line 12284 "Zend/zend_language_scanner.c"
12284
438k
yy1050:
12285
438k
    YYDEBUG(1050, *YYCURSOR);
12286
438k
    yych = *++YYCURSOR;
12287
438k
    if (yych <= '_') {
12288
32.1k
      if (yych <= '@') goto yy1049;
12289
4.57k
      if (yych <= 'Z') goto yy1052;
12290
2.36k
      if (yych <= '^') goto yy1049;
12291
352
      goto yy1052;
12292
406k
    } else {
12293
406k
      if (yych <= 'z') {
12294
85.1k
        if (yych <= '`') goto yy1049;
12295
85.0k
        goto yy1052;
12296
321k
      } else {
12297
321k
        if (yych <= '{') goto yy1055;
12298
24.0k
        if (yych <= 0x7F) goto yy1049;
12299
23.6k
        goto yy1052;
12300
24.0k
      }
12301
406k
    }
12302
14.4k
yy1051:
12303
14.4k
    YYDEBUG(1051, *YYCURSOR);
12304
14.4k
    yych = *++YYCURSOR;
12305
14.4k
    if (yych == '$') goto yy1057;
12306
6.49k
    goto yy1049;
12307
410k
yy1052:
12308
410k
    YYDEBUG(1052, *YYCURSOR);
12309
410k
    YYMARKER = ++YYCURSOR;
12310
410k
    YYFILL(4);
12311
410k
    yych = *YYCURSOR;
12312
410k
    YYDEBUG(1053, *YYCURSOR);
12313
410k
    if (yybm[0+yych] & 128) {
12314
299k
      goto yy1052;
12315
299k
    }
12316
111k
    if (yych <= '>') {
12317
67.2k
      if (yych == '-') goto yy1059;
12318
67.2k
    } else {
12319
44.0k
      if (yych <= '?') goto yy1061;
12320
10.6k
      if (yych <= '@') goto yy1054;
12321
10.4k
      if (yych <= '[') goto yy1062;
12322
10.4k
    }
12323
91.2k
yy1054:
12324
91.2k
    YYDEBUG(1054, *YYCURSOR);
12325
91.2k
    yyleng = YYCURSOR - SCNG(yy_text);
12326
91.2k
#line 2416 "Zend/zend_language_scanner.l"
12327
91.2k
    {
12328
91.2k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12329
91.2k
}
12330
0
#line 12331 "Zend/zend_language_scanner.c"
12331
297k
yy1055:
12332
297k
    YYDEBUG(1055, *YYCURSOR);
12333
297k
    ++YYCURSOR;
12334
297k
    YYDEBUG(1056, *YYCURSOR);
12335
297k
    yyleng = YYCURSOR - SCNG(yy_text);
12336
297k
#line 1980 "Zend/zend_language_scanner.l"
12337
297k
    {
12338
297k
  yy_push_state(ST_LOOKING_FOR_VARNAME);
12339
297k
  enter_nesting('{');
12340
297k
  RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES);
12341
297k
}
12342
0
#line 12343 "Zend/zend_language_scanner.c"
12343
7.95k
yy1057:
12344
7.95k
    YYDEBUG(1057, *YYCURSOR);
12345
7.95k
    ++YYCURSOR;
12346
7.95k
    YYDEBUG(1058, *YYCURSOR);
12347
7.95k
    yyleng = YYCURSOR - SCNG(yy_text);
12348
7.95k
#line 2845 "Zend/zend_language_scanner.l"
12349
7.95k
    {
12350
7.95k
  yy_push_state(ST_IN_SCRIPTING);
12351
7.95k
  yyless(1);
12352
7.95k
  enter_nesting('{');
12353
7.95k
  RETURN_TOKEN(T_CURLY_OPEN);
12354
7.95k
}
12355
0
#line 12356 "Zend/zend_language_scanner.c"
12356
5.46k
yy1059:
12357
5.46k
    YYDEBUG(1059, *YYCURSOR);
12358
5.46k
    yych = *++YYCURSOR;
12359
5.46k
    if (yych == '>') goto yy1064;
12360
20.9k
yy1060:
12361
20.9k
    YYDEBUG(1060, *YYCURSOR);
12362
20.9k
    YYCURSOR = YYMARKER;
12363
20.9k
    goto yy1054;
12364
33.4k
yy1061:
12365
33.4k
    YYDEBUG(1061, *YYCURSOR);
12366
33.4k
    yych = *++YYCURSOR;
12367
33.4k
    if (yych == '-') goto yy1065;
12368
17.7k
    goto yy1060;
12369
17.7k
yy1062:
12370
2.17k
    YYDEBUG(1062, *YYCURSOR);
12371
2.17k
    ++YYCURSOR;
12372
2.17k
    YYDEBUG(1063, *YYCURSOR);
12373
2.17k
    yyleng = YYCURSOR - SCNG(yy_text);
12374
2.17k
#line 2410 "Zend/zend_language_scanner.l"
12375
2.17k
    {
12376
2.17k
  yyless(yyleng - 1);
12377
2.17k
  yy_push_state(ST_VAR_OFFSET);
12378
2.17k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12379
2.17k
}
12380
0
#line 12381 "Zend/zend_language_scanner.c"
12381
4.65k
yy1064:
12382
4.65k
    YYDEBUG(1064, *YYCURSOR);
12383
4.65k
    yych = *++YYCURSOR;
12384
4.65k
    if (yych <= '_') {
12385
924
      if (yych <= '@') goto yy1060;
12386
788
      if (yych <= 'Z') goto yy1066;
12387
340
      if (yych <= '^') goto yy1060;
12388
332
      goto yy1066;
12389
3.72k
    } else {
12390
3.72k
      if (yych <= '`') goto yy1060;
12391
3.58k
      if (yych <= 'z') goto yy1066;
12392
299
      if (yych <= 0x7F) goto yy1060;
12393
150
      goto yy1066;
12394
299
    }
12395
15.6k
yy1065:
12396
15.6k
    YYDEBUG(1065, *YYCURSOR);
12397
15.6k
    yych = *++YYCURSOR;
12398
15.6k
    if (yych == '>') goto yy1068;
12399
505
    goto yy1060;
12400
4.21k
yy1066:
12401
4.21k
    YYDEBUG(1066, *YYCURSOR);
12402
4.21k
    ++YYCURSOR;
12403
4.21k
    YYDEBUG(1067, *YYCURSOR);
12404
4.21k
    yyleng = YYCURSOR - SCNG(yy_text);
12405
4.21k
#line 2396 "Zend/zend_language_scanner.l"
12406
4.21k
    {
12407
4.21k
  yyless(yyleng - 3);
12408
4.21k
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
12409
4.21k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12410
4.21k
}
12411
0
#line 12412 "Zend/zend_language_scanner.c"
12412
15.1k
yy1068:
12413
15.1k
    YYDEBUG(1068, *YYCURSOR);
12414
15.1k
    yych = *++YYCURSOR;
12415
15.1k
    if (yych <= '_') {
12416
1.44k
      if (yych <= '@') goto yy1060;
12417
9
      if (yych <= 'Z') goto yy1069;
12418
2
      if (yych <= '^') goto yy1060;
12419
13.7k
    } else {
12420
13.7k
      if (yych <= '`') goto yy1060;
12421
13.6k
      if (yych <= 'z') goto yy1069;
12422
190
      if (yych <= 0x7F) goto yy1060;
12423
190
    }
12424
13.6k
yy1069:
12425
13.6k
    YYDEBUG(1069, *YYCURSOR);
12426
13.6k
    ++YYCURSOR;
12427
13.6k
    YYDEBUG(1070, *YYCURSOR);
12428
13.6k
    yyleng = YYCURSOR - SCNG(yy_text);
12429
13.6k
#line 2402 "Zend/zend_language_scanner.l"
12430
13.6k
    {
12431
13.6k
  yyless(yyleng - 4);
12432
13.6k
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
12433
13.6k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12434
13.6k
}
12435
13.6k
#line 12436 "Zend/zend_language_scanner.c"
12436
13.6k
  }
12437
/* *********************************** */
12438
305k
yyc_ST_LOOKING_FOR_VARNAME:
12439
305k
  {
12440
305k
    static const unsigned char yybm[] = {
12441
305k
        0,   0,   0,   0,   0,   0,   0,   0, 
12442
305k
        0,   0,   0,   0,   0,   0,   0,   0, 
12443
305k
        0,   0,   0,   0,   0,   0,   0,   0, 
12444
305k
        0,   0,   0,   0,   0,   0,   0,   0, 
12445
305k
        0,   0,   0,   0,   0,   0,   0,   0, 
12446
305k
        0,   0,   0,   0,   0,   0,   0,   0, 
12447
305k
      128, 128, 128, 128, 128, 128, 128, 128, 
12448
305k
      128, 128,   0,   0,   0,   0,   0,   0, 
12449
305k
        0, 128, 128, 128, 128, 128, 128, 128, 
12450
305k
      128, 128, 128, 128, 128, 128, 128, 128, 
12451
305k
      128, 128, 128, 128, 128, 128, 128, 128, 
12452
305k
      128, 128, 128,   0,   0,   0,   0, 128, 
12453
305k
        0, 128, 128, 128, 128, 128, 128, 128, 
12454
305k
      128, 128, 128, 128, 128, 128, 128, 128, 
12455
305k
      128, 128, 128, 128, 128, 128, 128, 128, 
12456
305k
      128, 128, 128,   0,   0,   0,   0,   0, 
12457
305k
      128, 128, 128, 128, 128, 128, 128, 128, 
12458
305k
      128, 128, 128, 128, 128, 128, 128, 128, 
12459
305k
      128, 128, 128, 128, 128, 128, 128, 128, 
12460
305k
      128, 128, 128, 128, 128, 128, 128, 128, 
12461
305k
      128, 128, 128, 128, 128, 128, 128, 128, 
12462
305k
      128, 128, 128, 128, 128, 128, 128, 128, 
12463
305k
      128, 128, 128, 128, 128, 128, 128, 128, 
12464
305k
      128, 128, 128, 128, 128, 128, 128, 128, 
12465
305k
      128, 128, 128, 128, 128, 128, 128, 128, 
12466
305k
      128, 128, 128, 128, 128, 128, 128, 128, 
12467
305k
      128, 128, 128, 128, 128, 128, 128, 128, 
12468
305k
      128, 128, 128, 128, 128, 128, 128, 128, 
12469
305k
      128, 128, 128, 128, 128, 128, 128, 128, 
12470
305k
      128, 128, 128, 128, 128, 128, 128, 128, 
12471
305k
      128, 128, 128, 128, 128, 128, 128, 128, 
12472
305k
      128, 128, 128, 128, 128, 128, 128, 128, 
12473
305k
    };
12474
305k
    YYDEBUG(1071, *YYCURSOR);
12475
305k
    YYFILL(2);
12476
305k
    yych = *YYCURSOR;
12477
305k
    if (yych <= '_') {
12478
298k
      if (yych <= '@') goto yy1073;
12479
886
      if (yych <= 'Z') goto yy1075;
12480
256
      if (yych >= '_') goto yy1075;
12481
6.90k
    } else {
12482
6.90k
      if (yych <= '`') goto yy1073;
12483
6.85k
      if (yych <= 'z') goto yy1075;
12484
4.55k
      if (yych >= 0x80) goto yy1075;
12485
4.55k
    }
12486
297k
yy1073:
12487
297k
    YYDEBUG(1073, *YYCURSOR);
12488
297k
    ++YYCURSOR;
12489
305k
yy1074:
12490
305k
    YYDEBUG(1074, *YYCURSOR);
12491
305k
    yyleng = YYCURSOR - SCNG(yy_text);
12492
305k
#line 2003 "Zend/zend_language_scanner.l"
12493
305k
    {
12494
305k
  yyless(0);
12495
305k
  yy_pop_state();
12496
305k
  yy_push_state(ST_IN_SCRIPTING);
12497
305k
  goto restart;
12498
297k
}
12499
0
#line 12500 "Zend/zend_language_scanner.c"
12500
7.32k
yy1075:
12501
7.32k
    YYDEBUG(1075, *YYCURSOR);
12502
7.32k
    yych = *(YYMARKER = ++YYCURSOR);
12503
7.32k
    if (yych <= '_') {
12504
3.38k
      if (yych <= '@') {
12505
2.92k
        if (yych <= '/') goto yy1074;
12506
1.69k
        if (yych <= '9') goto yy1077;
12507
1.69k
        goto yy1074;
12508
1.69k
      } else {
12509
468
        if (yych <= '[') goto yy1077;
12510
180
        if (yych <= '^') goto yy1074;
12511
12
        goto yy1077;
12512
180
      }
12513
3.93k
    } else {
12514
3.93k
      if (yych <= '|') {
12515
1.72k
        if (yych <= '`') goto yy1074;
12516
1.72k
        if (yych <= 'z') goto yy1077;
12517
45
        goto yy1074;
12518
2.20k
      } else {
12519
2.20k
        if (yych <= '}') goto yy1077;
12520
2.18k
        if (yych <= 0x7F) goto yy1074;
12521
2.17k
        goto yy1077;
12522
2.18k
      }
12523
3.93k
    }
12524
20.9k
yy1076:
12525
20.9k
    YYDEBUG(1076, *YYCURSOR);
12526
20.9k
    ++YYCURSOR;
12527
20.9k
    YYFILL(1);
12528
20.9k
    yych = *YYCURSOR;
12529
25.1k
yy1077:
12530
25.1k
    YYDEBUG(1077, *YYCURSOR);
12531
25.1k
    if (yybm[0+yych] & 128) {
12532
20.9k
      goto yy1076;
12533
20.9k
    }
12534
4.18k
    if (yych <= '@') goto yy1078;
12535
423
    if (yych <= '[') goto yy1079;
12536
375
    if (yych == '}') goto yy1079;
12537
4.09k
yy1078:
12538
4.09k
    YYDEBUG(1078, *YYCURSOR);
12539
4.09k
    YYCURSOR = YYMARKER;
12540
4.09k
    goto yy1074;
12541
90
yy1079:
12542
90
    YYDEBUG(1079, *YYCURSOR);
12543
90
    ++YYCURSOR;
12544
90
    YYDEBUG(1080, *YYCURSOR);
12545
90
    yyleng = YYCURSOR - SCNG(yy_text);
12546
90
#line 1995 "Zend/zend_language_scanner.l"
12547
90
    {
12548
90
  yyless(yyleng - 1);
12549
90
  yy_pop_state();
12550
90
  yy_push_state(ST_IN_SCRIPTING);
12551
90
  RETURN_TOKEN_WITH_STR(T_STRING_VARNAME, 0);
12552
90
}
12553
90
#line 12554 "Zend/zend_language_scanner.c"
12554
90
  }
12555
/* *********************************** */
12556
32.5k
yyc_ST_VAR_OFFSET:
12557
32.5k
  {
12558
32.5k
    static const unsigned char yybm[] = {
12559
32.5k
        0,   0,   0,   0,   0,   0,   0,   0, 
12560
32.5k
        0,   0,   0,   0,   0,   0,   0,   0, 
12561
32.5k
        0,   0,   0,   0,   0,   0,   0,   0, 
12562
32.5k
        0,   0,   0,   0,   0,   0,   0,   0, 
12563
32.5k
        0,   0,   0,   0,   0,   0,   0,   0, 
12564
32.5k
        0,   0,   0,   0,   0,   0,   0,   0, 
12565
32.5k
      248, 248, 216, 216, 216, 216, 216, 216, 
12566
32.5k
      152, 152,   0,   0,   0,   0,   0,   0, 
12567
32.5k
        0, 144, 144, 144, 144, 144, 144,  16, 
12568
32.5k
       16,  16,  16,  16,  16,  16,  16,  16, 
12569
32.5k
       16,  16,  16,  16,  16,  16,  16,  16, 
12570
32.5k
       16,  16,  16,   0,   0,   0,   0,  16, 
12571
32.5k
        0, 144, 144, 144, 144, 144, 144,  16, 
12572
32.5k
       16,  16,  16,  16,  16,  16,  16,  16, 
12573
32.5k
       16,  16,  16,  16,  16,  16,  16,  16, 
12574
32.5k
       16,  16,  16,   0,   0,   0,   0,   0, 
12575
32.5k
       16,  16,  16,  16,  16,  16,  16,  16, 
12576
32.5k
       16,  16,  16,  16,  16,  16,  16,  16, 
12577
32.5k
       16,  16,  16,  16,  16,  16,  16,  16, 
12578
32.5k
       16,  16,  16,  16,  16,  16,  16,  16, 
12579
32.5k
       16,  16,  16,  16,  16,  16,  16,  16, 
12580
32.5k
       16,  16,  16,  16,  16,  16,  16,  16, 
12581
32.5k
       16,  16,  16,  16,  16,  16,  16,  16, 
12582
32.5k
       16,  16,  16,  16,  16,  16,  16,  16, 
12583
32.5k
       16,  16,  16,  16,  16,  16,  16,  16, 
12584
32.5k
       16,  16,  16,  16,  16,  16,  16,  16, 
12585
32.5k
       16,  16,  16,  16,  16,  16,  16,  16, 
12586
32.5k
       16,  16,  16,  16,  16,  16,  16,  16, 
12587
32.5k
       16,  16,  16,  16,  16,  16,  16,  16, 
12588
32.5k
       16,  16,  16,  16,  16,  16,  16,  16, 
12589
32.5k
       16,  16,  16,  16,  16,  16,  16,  16, 
12590
32.5k
       16,  16,  16,  16,  16,  16,  16,  16, 
12591
32.5k
    };
12592
32.5k
    YYDEBUG(1081, *YYCURSOR);
12593
32.5k
    YYFILL(2);
12594
32.5k
    yych = *YYCURSOR;
12595
32.5k
    if (yych <= '0') {
12596
16.2k
      if (yych <= ' ') {
12597
7.06k
        if (yych <= '\f') {
12598
3.55k
          if (yych <= 0x08) goto yy1083;
12599
387
          if (yych <= '\n') goto yy1085;
12600
3.50k
        } else {
12601
3.50k
          if (yych <= '\r') goto yy1085;
12602
3.35k
          if (yych >= ' ') goto yy1085;
12603
3.35k
        }
12604
9.20k
      } else {
12605
9.20k
        if (yych <= '$') {
12606
5.13k
          if (yych <= '"') goto yy1087;
12607
3.77k
          if (yych <= '#') goto yy1085;
12608
3.69k
          goto yy1089;
12609
4.06k
        } else {
12610
4.06k
          if (yych == '\'') goto yy1085;
12611
3.97k
          if (yych <= '/') goto yy1087;
12612
1.44k
          goto yy1090;
12613
3.97k
        }
12614
9.20k
      }
12615
16.3k
    } else {
12616
16.3k
      if (yych <= ']') {
12617
11.5k
        if (yych <= 'Z') {
12618
5.91k
          if (yych <= '9') goto yy1092;
12619
4.53k
          if (yych <= '@') goto yy1087;
12620
752
          goto yy1094;
12621
5.63k
        } else {
12622
5.63k
          if (yych <= '[') goto yy1087;
12623
1.87k
          if (yych <= '\\') goto yy1085;
12624
1.86k
          goto yy1097;
12625
1.87k
        }
12626
11.5k
      } else {
12627
4.77k
        if (yych <= '`') {
12628
366
          if (yych == '_') goto yy1094;
12629
204
          goto yy1087;
12630
4.41k
        } else {
12631
4.41k
          if (yych <= 'z') goto yy1094;
12632
1.48k
          if (yych <= '~') goto yy1087;
12633
1.34k
          if (yych >= 0x80) goto yy1094;
12634
1.34k
        }
12635
4.77k
      }
12636
16.3k
    }
12637
6.08k
yy1083:
12638
6.08k
    YYDEBUG(1083, *YYCURSOR);
12639
6.08k
    ++YYCURSOR;
12640
6.08k
    YYDEBUG(1084, *YYCURSOR);
12641
6.08k
    yyleng = YYCURSOR - SCNG(yy_text);
12642
6.08k
#line 3179 "Zend/zend_language_scanner.l"
12643
6.08k
    {
12644
6.08k
  if (YYCURSOR > YYLIMIT) {
12645
113
    RETURN_END_TOKEN;
12646
113
  }
12647
12648
5.96k
  RETURN_TOKEN(T_BAD_CHARACTER);
12649
5.96k
}
12650
0
#line 12651 "Zend/zend_language_scanner.c"
12651
1.25k
yy1085:
12652
1.25k
    YYDEBUG(1085, *YYCURSOR);
12653
1.25k
    ++YYCURSOR;
12654
1.25k
    YYDEBUG(1086, *YYCURSOR);
12655
1.25k
    yyleng = YYCURSOR - SCNG(yy_text);
12656
1.25k
#line 2430 "Zend/zend_language_scanner.l"
12657
1.25k
    {
12658
  /* Invalid rule to return a more explicit parse error with proper line number */
12659
1.25k
  yyless(0);
12660
1.25k
  yy_pop_state();
12661
1.25k
  ZVAL_NULL(zendlval);
12662
1.25k
  RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
12663
1.25k
}
12664
0
#line 12665 "Zend/zend_language_scanner.c"
12665
11.7k
yy1087:
12666
11.7k
    YYDEBUG(1087, *YYCURSOR);
12667
11.7k
    ++YYCURSOR;
12668
13.1k
yy1088:
12669
13.1k
    YYDEBUG(1088, *YYCURSOR);
12670
13.1k
    yyleng = YYCURSOR - SCNG(yy_text);
12671
13.1k
#line 2425 "Zend/zend_language_scanner.l"
12672
13.1k
    {
12673
  /* Only '[' or '-' can be valid, but returning other tokens will allow a more explicit parse error */
12674
13.1k
  RETURN_TOKEN(yytext[0]);
12675
13.1k
}
12676
0
#line 12677 "Zend/zend_language_scanner.c"
12677
3.69k
yy1089:
12678
3.69k
    YYDEBUG(1089, *YYCURSOR);
12679
3.69k
    yych = *++YYCURSOR;
12680
3.69k
    if (yych <= '_') {
12681
1.78k
      if (yych <= '@') goto yy1088;
12682
433
      if (yych <= 'Z') goto yy1099;
12683
21
      if (yych <= '^') goto yy1088;
12684
21
      goto yy1099;
12685
1.91k
    } else {
12686
1.91k
      if (yych <= '`') goto yy1088;
12687
1.89k
      if (yych <= 'z') goto yy1099;
12688
84
      if (yych <= 0x7F) goto yy1088;
12689
41
      goto yy1099;
12690
84
    }
12691
1.44k
yy1090:
12692
1.44k
    YYDEBUG(1090, *YYCURSOR);
12693
1.44k
    yyaccept = 0;
12694
1.44k
    yych = *(YYMARKER = ++YYCURSOR);
12695
1.44k
    if (yych <= 'X') {
12696
539
      if (yych <= 'B') {
12697
341
        if (yych <= '/') goto yy1091;
12698
278
        if (yych <= '9') goto yy1102;
12699
207
        if (yych >= 'B') goto yy1105;
12700
207
      } else {
12701
198
        if (yych == 'O') goto yy1107;
12702
198
        if (yych >= 'X') goto yy1108;
12703
198
      }
12704
908
    } else {
12705
908
      if (yych <= 'b') {
12706
624
        if (yych == '_') goto yy1109;
12707
399
        if (yych >= 'b') goto yy1105;
12708
399
      } else {
12709
284
        if (yych <= 'o') {
12710
3
          if (yych >= 'o') goto yy1107;
12711
281
        } else {
12712
281
          if (yych == 'x') goto yy1108;
12713
281
        }
12714
284
      }
12715
908
    }
12716
2.32k
yy1091:
12717
2.32k
    YYDEBUG(1091, *YYCURSOR);
12718
2.32k
    yyleng = YYCURSOR - SCNG(yy_text);
12719
2.32k
#line 2207 "Zend/zend_language_scanner.l"
12720
2.32k
    { /* Offset could be treated as a long */
12721
2.32k
  if (yyleng < MAX_LENGTH_OF_LONG - 1 || (yyleng == MAX_LENGTH_OF_LONG - 1 && strcmp(yytext, long_min_digits) < 0)) {
12722
2.29k
    char *end;
12723
2.29k
    errno = 0;
12724
2.29k
    ZVAL_LONG(zendlval, ZEND_STRTOL(yytext, &end, 10));
12725
2.29k
    if (errno == ERANGE) {
12726
0
      goto string;
12727
0
    }
12728
2.29k
    ZEND_ASSERT(end == yytext + yyleng);
12729
2.29k
  } else {
12730
28
string:
12731
28
    ZVAL_STRINGL(zendlval, yytext, yyleng);
12732
28
  }
12733
2.32k
  RETURN_TOKEN_WITH_VAL(T_NUM_STRING);
12734
2.32k
}
12735
0
#line 12736 "Zend/zend_language_scanner.c"
12736
3.69k
yy1092:
12737
3.69k
    YYDEBUG(1092, *YYCURSOR);
12738
3.69k
    yyaccept = 0;
12739
3.69k
    YYMARKER = ++YYCURSOR;
12740
3.69k
    YYFILL(1);
12741
3.69k
    yych = *YYCURSOR;
12742
3.69k
    YYDEBUG(1093, *YYCURSOR);
12743
3.69k
    if (yybm[0+yych] & 8) {
12744
2.31k
      goto yy1092;
12745
2.31k
    }
12746
1.38k
    if (yych == '_') goto yy1109;
12747
1.36k
    goto yy1091;
12748
18.8k
yy1094:
12749
18.8k
    YYDEBUG(1094, *YYCURSOR);
12750
18.8k
    ++YYCURSOR;
12751
18.8k
    YYFILL(1);
12752
18.8k
    yych = *YYCURSOR;
12753
18.8k
    YYDEBUG(1095, *YYCURSOR);
12754
18.8k
    if (yybm[0+yych] & 16) {
12755
13.8k
      goto yy1094;
12756
13.8k
    }
12757
5.09k
    YYDEBUG(1096, *YYCURSOR);
12758
5.09k
    yyleng = YYCURSOR - SCNG(yy_text);
12759
5.09k
#line 2454 "Zend/zend_language_scanner.l"
12760
5.09k
    {
12761
5.09k
  RETURN_TOKEN_WITH_STR(T_STRING, 0);
12762
5.09k
}
12763
0
#line 12764 "Zend/zend_language_scanner.c"
12764
1.86k
yy1097:
12765
1.86k
    YYDEBUG(1097, *YYCURSOR);
12766
1.86k
    ++YYCURSOR;
12767
1.86k
    YYDEBUG(1098, *YYCURSOR);
12768
1.86k
    yyleng = YYCURSOR - SCNG(yy_text);
12769
1.86k
#line 2420 "Zend/zend_language_scanner.l"
12770
1.86k
    {
12771
1.86k
  yy_pop_state();
12772
1.86k
  RETURN_TOKEN(']');
12773
1.86k
}
12774
0
#line 12775 "Zend/zend_language_scanner.c"
12775
7.56k
yy1099:
12776
7.56k
    YYDEBUG(1099, *YYCURSOR);
12777
7.56k
    ++YYCURSOR;
12778
7.56k
    YYFILL(1);
12779
7.56k
    yych = *YYCURSOR;
12780
7.56k
    YYDEBUG(1100, *YYCURSOR);
12781
7.56k
    if (yych <= '^') {
12782
3.11k
      if (yych <= '9') {
12783
695
        if (yych >= '0') goto yy1099;
12784
2.41k
      } else {
12785
2.41k
        if (yych <= '@') goto yy1101;
12786
1.42k
        if (yych <= 'Z') goto yy1099;
12787
1.42k
      }
12788
4.45k
    } else {
12789
4.45k
      if (yych <= '`') {
12790
432
        if (yych <= '_') goto yy1099;
12791
4.01k
      } else {
12792
4.01k
        if (yych <= 'z') goto yy1099;
12793
1.35k
        if (yych >= 0x80) goto yy1099;
12794
1.35k
      }
12795
4.45k
    }
12796
2.28k
yy1101:
12797
2.28k
    YYDEBUG(1101, *YYCURSOR);
12798
2.28k
    yyleng = YYCURSOR - SCNG(yy_text);
12799
2.28k
#line 2416 "Zend/zend_language_scanner.l"
12800
2.28k
    {
12801
2.28k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12802
2.28k
}
12803
0
#line 12804 "Zend/zend_language_scanner.c"
12804
481
yy1102:
12805
481
    YYDEBUG(1102, *YYCURSOR);
12806
481
    yyaccept = 1;
12807
481
    YYMARKER = ++YYCURSOR;
12808
481
    YYFILL(1);
12809
481
    yych = *YYCURSOR;
12810
481
    YYDEBUG(1103, *YYCURSOR);
12811
481
    if (yych <= '/') goto yy1104;
12812
441
    if (yych <= '9') goto yy1102;
12813
238
    if (yych == '_') goto yy1109;
12814
507
yy1104:
12815
507
    YYDEBUG(1104, *YYCURSOR);
12816
507
    yyleng = YYCURSOR - SCNG(yy_text);
12817
507
#line 2223 "Zend/zend_language_scanner.l"
12818
507
    { /* Offset must be treated as a string */
12819
507
  if (yyleng == 1) {
12820
0
    ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR((zend_uchar)*(yytext)));
12821
507
  } else {
12822
507
    ZVAL_STRINGL(zendlval, yytext, yyleng);
12823
507
  }
12824
507
  RETURN_TOKEN_WITH_VAL(T_NUM_STRING);
12825
507
}
12826
0
#line 12827 "Zend/zend_language_scanner.c"
12827
318
yy1105:
12828
318
    YYDEBUG(1105, *YYCURSOR);
12829
318
    ++YYCURSOR;
12830
318
    YYFILL(1);
12831
318
    yych = *YYCURSOR;
12832
318
    if (yybm[0+yych] & 32) {
12833
246
      goto yy1110;
12834
246
    }
12835
246
yy1106:
12836
246
    YYDEBUG(1106, *YYCURSOR);
12837
246
    YYCURSOR = YYMARKER;
12838
246
    if (yyaccept == 0) {
12839
213
      goto yy1091;
12840
213
    } else {
12841
33
      goto yy1104;
12842
33
    }
12843
0
yy1107:
12844
0
    YYDEBUG(1107, *YYCURSOR);
12845
0
    ++YYCURSOR;
12846
0
    YYFILL(1);
12847
0
    yych = *YYCURSOR;
12848
0
    if (yybm[0+yych] & 64) {
12849
0
      goto yy1112;
12850
0
    }
12851
0
    goto yy1106;
12852
184
yy1108:
12853
184
    YYDEBUG(1108, *YYCURSOR);
12854
184
    ++YYCURSOR;
12855
184
    YYFILL(1);
12856
184
    yych = *YYCURSOR;
12857
184
    if (yybm[0+yych] & 128) {
12858
43
      goto yy1114;
12859
43
    }
12860
141
    goto yy1106;
12861
240
yy1109:
12862
240
    YYDEBUG(1109, *YYCURSOR);
12863
240
    ++YYCURSOR;
12864
240
    YYFILL(1);
12865
240
    yych = *YYCURSOR;
12866
240
    if (yych <= '/') goto yy1106;
12867
219
    if (yych <= '9') goto yy1102;
12868
12
    goto yy1106;
12869
267
yy1110:
12870
267
    YYDEBUG(1110, *YYCURSOR);
12871
267
    yyaccept = 1;
12872
267
    YYMARKER = ++YYCURSOR;
12873
267
    YYFILL(1);
12874
267
    yych = *YYCURSOR;
12875
267
    YYDEBUG(1111, *YYCURSOR);
12876
267
    if (yybm[0+yych] & 32) {
12877
21
      goto yy1110;
12878
21
    }
12879
246
    if (yych == '_') goto yy1105;
12880
153
    goto yy1104;
12881
153
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
43
yy1114:
12894
43
    YYDEBUG(1114, *YYCURSOR);
12895
43
    yyaccept = 1;
12896
43
    YYMARKER = ++YYCURSOR;
12897
43
    YYFILL(1);
12898
43
    yych = *YYCURSOR;
12899
43
    YYDEBUG(1115, *YYCURSOR);
12900
43
    if (yybm[0+yych] & 128) {
12901
0
      goto yy1114;
12902
0
    }
12903
43
    if (yych == '_') goto yy1108;
12904
43
    goto yy1104;
12905
43
  }
12906
/* *********************************** */
12907
43
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 2294 "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 2288 "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
92.7k
yyc_INITIAL:
12986
92.7k
  YYDEBUG(1125, *YYCURSOR);
12987
92.7k
  YYFILL(7);
12988
92.7k
  yych = *YYCURSOR;
12989
92.7k
  if (yych == '<') goto yy1129;
12990
49.5k
  YYDEBUG(1127, *YYCURSOR);
12991
49.5k
  ++YYCURSOR;
12992
50.7k
yy1128:
12993
50.7k
  YYDEBUG(1128, *YYCURSOR);
12994
50.7k
  yyleng = YYCURSOR - SCNG(yy_text);
12995
50.7k
#line 2340 "Zend/zend_language_scanner.l"
12996
50.7k
  {
12997
50.7k
  if (YYCURSOR > YYLIMIT) {
12998
24.5k
    RETURN_END_TOKEN;
12999
24.5k
  }
13000
13001
26.1k
inline_char_handler:
13002
13003
75.7k
  while (1) {
13004
75.7k
    YYCTYPE *ptr = memchr(YYCURSOR, '<', YYLIMIT - YYCURSOR);
13005
13006
75.7k
    YYCURSOR = ptr ? ptr + 1 : YYLIMIT;
13007
13008
75.7k
    if (YYCURSOR >= YYLIMIT) {
13009
9.02k
      break;
13010
9.02k
    }
13011
13012
66.7k
    if (*YYCURSOR == '?') {
13013
17.0k
      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
17.0k
      ) {
13020
17.0k
        YYCURSOR--;
13021
17.0k
        break;
13022
17.0k
      }
13023
17.0k
    }
13024
66.7k
  }
13025
13026
26.1k
  yyleng = YYCURSOR - SCNG(yy_text);
13027
13028
26.1k
  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
26.1k
  } else if (yyleng == 1) {
13040
974
    ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR((zend_uchar)*yytext));
13041
25.1k
  } else {
13042
25.1k
    ZVAL_STRINGL(zendlval, yytext, yyleng);
13043
25.1k
  }
13044
26.1k
  HANDLE_NEWLINES(yytext, yyleng);
13045
26.1k
  RETURN_TOKEN_WITH_VAL(T_INLINE_HTML);
13046
26.1k
}
13047
0
#line 13048 "Zend/zend_language_scanner.c"
13048
43.2k
yy1129:
13049
43.2k
  YYDEBUG(1129, *YYCURSOR);
13050
43.2k
  yych = *++YYCURSOR;
13051
43.2k
  if (yych != '?') goto yy1128;
13052
42.0k
  YYDEBUG(1130, *YYCURSOR);
13053
42.0k
  yych = *(YYMARKER = ++YYCURSOR);
13054
42.0k
  if (yych <= 'O') {
13055
5.39k
    if (yych == '=') goto yy1132;
13056
36.6k
  } else {
13057
36.6k
    if (yych <= 'P') goto yy1134;
13058
36.6k
    if (yych == 'p') goto yy1134;
13059
36.6k
  }
13060
8.20k
yy1131:
13061
8.20k
  YYDEBUG(1131, *YYCURSOR);
13062
8.20k
  yyleng = YYCURSOR - SCNG(yy_text);
13063
8.20k
#line 2331 "Zend/zend_language_scanner.l"
13064
8.20k
  {
13065
8.20k
  if (CG(short_tags)) {
13066
8.20k
    BEGIN(ST_IN_SCRIPTING);
13067
8.20k
    RETURN_OR_SKIP_TOKEN(T_OPEN_TAG);
13068
8.20k
  } else {
13069
0
    goto inline_char_handler;
13070
0
  }
13071
8.20k
}
13072
0
#line 13073 "Zend/zend_language_scanner.c"
13073
214
yy1132:
13074
214
  YYDEBUG(1132, *YYCURSOR);
13075
214
  ++YYCURSOR;
13076
214
  YYDEBUG(1133, *YYCURSOR);
13077
214
  yyleng = YYCURSOR - SCNG(yy_text);
13078
214
#line 2300 "Zend/zend_language_scanner.l"
13079
214
  {
13080
214
  BEGIN(ST_IN_SCRIPTING);
13081
214
  if (PARSER_MODE()) {
13082
    /* We'll reject this as an identifier in zend_lex_tstring. */
13083
114
    RETURN_TOKEN_WITH_IDENT(T_ECHO);
13084
114
  }
13085
100
  RETURN_TOKEN(T_OPEN_TAG_WITH_ECHO);
13086
100
}
13087
0
#line 13088 "Zend/zend_language_scanner.c"
13088
34.3k
yy1134:
13089
34.3k
  YYDEBUG(1134, *YYCURSOR);
13090
34.3k
  yych = *++YYCURSOR;
13091
34.3k
  if (yych == 'H') goto yy1136;
13092
34.1k
  if (yych == 'h') goto yy1136;
13093
674
yy1135:
13094
674
  YYDEBUG(1135, *YYCURSOR);
13095
674
  YYCURSOR = YYMARKER;
13096
674
  goto yy1131;
13097
34.1k
yy1136:
13098
34.1k
  YYDEBUG(1136, *YYCURSOR);
13099
34.1k
  yych = *++YYCURSOR;
13100
34.1k
  if (yych == 'P') goto yy1137;
13101
34.1k
  if (yych != 'p') goto yy1135;
13102
33.6k
yy1137:
13103
33.6k
  YYDEBUG(1137, *YYCURSOR);
13104
33.6k
  yych = *++YYCURSOR;
13105
33.6k
  if (yych <= '\f') {
13106
31.0k
    if (yych <= 0x08) goto yy1138;
13107
31.0k
    if (yych <= '\n') goto yy1139;
13108
31.0k
  } else {
13109
2.55k
    if (yych <= '\r') goto yy1141;
13110
2.53k
    if (yych == ' ') goto yy1139;
13111
2.53k
  }
13112
743
yy1138:
13113
743
  YYDEBUG(1138, *YYCURSOR);
13114
743
  yyleng = YYCURSOR - SCNG(yy_text);
13115
743
#line 2316 "Zend/zend_language_scanner.l"
13116
743
  {
13117
  /* Allow <?php followed by end of file. */
13118
743
  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
741
  if (CG(short_tags)) {
13124
741
    yyless(2);
13125
741
    BEGIN(ST_IN_SCRIPTING);
13126
741
    RETURN_OR_SKIP_TOKEN(T_OPEN_TAG);
13127
741
  }
13128
0
  goto inline_char_handler;
13129
741
}
13130
0
#line 13131 "Zend/zend_language_scanner.c"
13131
32.9k
yy1139:
13132
32.9k
  YYDEBUG(1139, *YYCURSOR);
13133
32.9k
  ++YYCURSOR;
13134
32.9k
yy1140:
13135
32.9k
  YYDEBUG(1140, *YYCURSOR);
13136
32.9k
  yyleng = YYCURSOR - SCNG(yy_text);
13137
32.9k
#line 2310 "Zend/zend_language_scanner.l"
13138
32.9k
  {
13139
32.9k
  HANDLE_NEWLINE(yytext[yyleng-1]);
13140
32.9k
  BEGIN(ST_IN_SCRIPTING);
13141
32.9k
  RETURN_OR_SKIP_TOKEN(T_OPEN_TAG);
13142
32.9k
}
13143
0
#line 13144 "Zend/zend_language_scanner.c"
13144
14
yy1141:
13145
14
  YYDEBUG(1141, *YYCURSOR);
13146
14
  yych = *++YYCURSOR;
13147
14
  if (yych == '\n') goto yy1139;
13148
6
  goto yy1140;
13149
/* *********************************** */
13150
5.32k
yyc_ST_END_HEREDOC:
13151
5.32k
  YYDEBUG(1142, *YYCURSOR);
13152
5.32k
  YYFILL(1);
13153
5.32k
  yych = *YYCURSOR;
13154
5.32k
  YYDEBUG(1144, *YYCURSOR);
13155
5.32k
  ++YYCURSOR;
13156
5.32k
  YYDEBUG(1145, *YYCURSOR);
13157
5.32k
  yyleng = YYCURSOR - SCNG(yy_text);
13158
5.32k
#line 2831 "Zend/zend_language_scanner.l"
13159
5.32k
  {
13160
5.32k
  zend_heredoc_label *heredoc_label = zend_ptr_stack_pop(&SCNG(heredoc_label_stack));
13161
13162
5.32k
  yyleng = heredoc_label->indentation + heredoc_label->length;
13163
5.32k
  YYCURSOR += yyleng - 1;
13164
13165
5.32k
  heredoc_label_dtor(heredoc_label);
13166
5.32k
  efree(heredoc_label);
13167
13168
5.32k
  BEGIN(ST_IN_SCRIPTING);
13169
5.32k
  RETURN_TOKEN(T_END_HEREDOC);
13170
5.32k
}
13171
0
#line 13172 "Zend/zend_language_scanner.c"
13172
/* *********************************** */
13173
2.41k
yyc_ST_NOWDOC:
13174
2.41k
  YYDEBUG(1146, *YYCURSOR);
13175
2.41k
  YYFILL(1);
13176
2.41k
  yych = *YYCURSOR;
13177
2.41k
  YYDEBUG(1148, *YYCURSOR);
13178
2.41k
  ++YYCURSOR;
13179
2.41k
  YYDEBUG(1149, *YYCURSOR);
13180
2.41k
  yyleng = YYCURSOR - SCNG(yy_text);
13181
2.41k
#line 3088 "Zend/zend_language_scanner.l"
13182
2.41k
  {
13183
2.41k
  zend_heredoc_label *heredoc_label = zend_ptr_stack_top(&SCNG(heredoc_label_stack));
13184
2.41k
  int newline = 0, indentation = 0, spacing = -1;
13185
13186
2.41k
  if (YYCURSOR > YYLIMIT) {
13187
576
    RETURN_END_TOKEN;
13188
576
  }
13189
13190
1.83k
  YYCURSOR--;
13191
13192
1.45M
  while (YYCURSOR < YYLIMIT) {
13193
1.45M
    switch (*YYCURSOR++) {
13194
8.03k
      case '\r':
13195
8.03k
        if (*YYCURSOR == '\n') {
13196
30
          YYCURSOR++;
13197
30
        }
13198
8.03k
        ZEND_FALLTHROUGH;
13199
64.7k
      case '\n':
13200
64.7k
        indentation = spacing = 0;
13201
13202
98.4k
        while (YYCURSOR < YYLIMIT && (*YYCURSOR == ' ' || *YYCURSOR == '\t')) {
13203
33.7k
          if (*YYCURSOR == '\t') {
13204
52
            spacing |= HEREDOC_USING_TABS;
13205
33.6k
          } else {
13206
33.6k
            spacing |= HEREDOC_USING_SPACES;
13207
33.6k
          }
13208
33.7k
          ++YYCURSOR;
13209
33.7k
          ++indentation;
13210
33.7k
        }
13211
13212
64.7k
        if (YYCURSOR == YYLIMIT) {
13213
48
          yyleng = YYCURSOR - SCNG(yy_text);
13214
48
          HANDLE_NEWLINES(yytext, yyleng);
13215
48
          ZVAL_NULL(zendlval);
13216
48
          RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
13217
48
        }
13218
13219
        /* Check for ending label on the next line */
13220
64.6k
        if (IS_LABEL_START(*YYCURSOR) && heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, heredoc_label->label, heredoc_label->length)) {
13221
1.29k
          if (IS_LABEL_SUCCESSOR(YYCURSOR[heredoc_label->length])) {
13222
38
            continue;
13223
38
          }
13224
13225
1.25k
          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
1.25k
          if (YYCURSOR[-indentation - 2] == '\r' && YYCURSOR[-indentation - 1] == '\n') {
13235
0
            newline = 2; /* Windows newline */
13236
1.25k
          } else {
13237
1.25k
            newline = 1;
13238
1.25k
          }
13239
13240
1.25k
          CG(increment_lineno) = 1; /* For newline before label */
13241
13242
1.25k
          YYCURSOR -= indentation;
13243
1.25k
          heredoc_label->indentation = indentation;
13244
13245
1.25k
          BEGIN(ST_END_HEREDOC);
13246
13247
1.25k
          goto nowdoc_scan_done;
13248
1.25k
        }
13249
63.3k
        ZEND_FALLTHROUGH;
13250
1.45M
      default:
13251
1.45M
        continue;
13252
1.45M
    }
13253
1.45M
  }
13254
13255
1.78k
nowdoc_scan_done:
13256
1.78k
  yyleng = YYCURSOR - SCNG(yy_text);
13257
1.78k
  ZVAL_STRINGL(zendlval, yytext, yyleng - newline);
13258
13259
1.78k
  if (!EG(exception) && spacing != -1 && PARSER_MODE()) {
13260
368
    bool newline_at_start = *(yytext - 1) == '\n' || *(yytext - 1) == '\r';
13261
368
    if (!strip_multiline_string_indentation(
13262
368
        zendlval, indentation, spacing == HEREDOC_USING_SPACES,
13263
368
        newline_at_start, newline != 0)) {
13264
15
      RETURN_TOKEN(T_ERROR);
13265
15
    }
13266
368
  }
13267
13268
1.76k
  HANDLE_NEWLINES(yytext, yyleng - newline);
13269
1.76k
  RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
13270
1.76k
}
13271
1.76k
#line 13272 "Zend/zend_language_scanner.c"
13272
1.76k
}
13273
0
#line 3187 "Zend/zend_language_scanner.l"
13274
13275
13276
1.56M
emit_token_with_str:
13277
1.56M
  zend_copy_value(zendlval, (yytext + offset), (yyleng - offset));
13278
13279
2.35M
emit_token_with_val:
13280
2.35M
  if (PARSER_MODE()) {
13281
1.11M
    ZEND_ASSERT(Z_TYPE_P(zendlval) != IS_UNDEF);
13282
1.11M
    elem->ast = zend_ast_create_zval_with_lineno(zendlval, start_line);
13283
1.11M
  }
13284
13285
7.19M
emit_token:
13286
7.19M
  if (SCNG(on_event)) {
13287
0
    SCNG(on_event)(ON_TOKEN, token, start_line, yytext, yyleng, SCNG(on_event_context));
13288
0
  }
13289
7.19M
  return token;
13290
13291
333k
emit_token_with_ident:
13292
333k
  if (PARSER_MODE()) {
13293
225k
    elem->ident = SCNG(yy_text);
13294
225k
  }
13295
333k
  if (SCNG(on_event)) {
13296
0
    SCNG(on_event)(ON_TOKEN, token, start_line, yytext, yyleng, SCNG(on_event_context));
13297
0
  }
13298
333k
  return token;
13299
13300
1.83M
return_whitespace:
13301
1.83M
  HANDLE_NEWLINES(yytext, yyleng);
13302
1.83M
  if (SCNG(on_event)) {
13303
0
    SCNG(on_event)(ON_TOKEN, T_WHITESPACE, start_line, yytext, yyleng, SCNG(on_event_context));
13304
0
  }
13305
1.83M
  if (PARSER_MODE()) {
13306
1.10M
    start_line = CG(zend_lineno);
13307
1.10M
    goto restart;
13308
1.10M
  } else {
13309
729k
    return T_WHITESPACE;
13310
729k
  }
13311
13312
76.2k
skip_token:
13313
76.2k
  if (SCNG(on_event)) {
13314
0
    SCNG(on_event)(ON_TOKEN, token, start_line, yytext, yyleng, SCNG(on_event_context));
13315
0
  }
13316
76.2k
  start_line = CG(zend_lineno);
13317
76.2k
  goto restart;
13318
1.83M
}