Coverage Report

Created: 2026-06-02 06:40

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
12.2M
#define YYCTYPE   unsigned char
53
32.6M
#define YYFILL(n) { if ((YYCURSOR + n) >= (YYLIMIT + ZEND_MMAP_AHEAD)) { return 0; } }
54
252M
#define YYCURSOR  SCNG(yy_cursor)
55
88.0M
#define YYLIMIT   SCNG(yy_limit)
56
13.5M
#define YYMARKER  SCNG(yy_marker)
57
58
37.5M
#define YYGETCONDITION()  SCNG(yy_state)
59
1.12M
#define YYSETCONDITION(s) SCNG(yy_state) = s
60
61
#define STATE(name)  yyc##name
62
63
/* emulate flex constructs */
64
284k
#define BEGIN(state) YYSETCONDITION(STATE(state))
65
56.9k
#define YYSTATE      YYGETCONDITION()
66
1.81M
#define yytext       ((char*)SCNG(yy_text))
67
13.9M
#define yyleng       SCNG(yy_leng)
68
167k
#define yyless(x)    do { YYCURSOR = (unsigned char*)yytext + x; \
69
167k
                          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
456M
#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.37M
#define HANDLE_NEWLINES(s, l)                         \
96
2.37M
do {                                     \
97
2.37M
  char *p = (s), *boundary = p+(l);                     \
98
2.37M
                                        \
99
30.0M
  while (p<boundary) {                           \
100
27.6M
    if (*p == '\n' || (*p == '\r' && (*(p+1) != '\n'))) {         \
101
1.76M
      CG(zend_lineno)++;                          \
102
1.76M
    }                                    \
103
27.6M
    p++;                                  \
104
27.6M
  }                                      \
105
2.37M
} while (0)
106
107
93.4k
#define HANDLE_NEWLINE(c) \
108
93.4k
{ \
109
93.4k
  if (c == '\n' || c == '\r') { \
110
39.6k
    CG(zend_lineno)++; \
111
39.6k
  } \
112
93.4k
}
113
114
/* To save initial string length after scanning to first variable */
115
57.0k
#define SET_DOUBLE_QUOTES_SCANNED_LENGTH(len) SCNG(scanned_string_len) = (len)
116
115k
#define GET_DOUBLE_QUOTES_SCANNED_LENGTH()    SCNG(scanned_string_len)
117
118
1.67M
#define IS_LABEL_START(c) (((c) >= 'a' && (c) <= 'z') || ((c) >= 'A' && (c) <= 'Z') || (c) == '_' || (c) >= 0x80)
119
10.7k
#define IS_LABEL_SUCCESSOR(c) (((c) >= 'a' && (c) <= 'z') || ((c) >= 'A' && (c) <= 'Z') || ((c) >= '0' && (c) <= '9') || (c) == '_' || (c) >= 0x80)
120
121
90.9k
#define ZEND_IS_OCT(c)  ((c)>='0' && (c)<='7')
122
4.72k
#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
754
{
127
754
  char *src = str, *dest = str;
128
13.1k
  while (*src != '\0') {
129
12.3k
    if (*src != '_') {
130
11.6k
      *dest = *src;
131
11.6k
      dest++;
132
11.6k
    } else {
133
776
      --(*len);
134
776
    }
135
12.3k
    src++;
136
12.3k
  }
137
754
  *dest = '\0';
138
754
}
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
476k
{
169
476k
  zend_stack_push(&SCNG(state_stack), (void *) &YYGETCONDITION());
170
476k
  YYSETCONDITION(new_state);
171
476k
}
172
173
476k
#define yy_push_state(state_and_tsrm) _yy_push_state(yyc##state_and_tsrm)
174
175
static void yy_pop_state(void)
176
305k
{
177
305k
  int *stack_state = zend_stack_top(&SCNG(state_stack));
178
305k
  YYSETCONDITION(*stack_state);
179
305k
  zend_stack_del_top(&SCNG(state_stack));
180
305k
}
181
182
static void yy_scan_buffer(char *str, size_t len)
183
44.9k
{
184
44.9k
  YYCURSOR       = (YYCTYPE*)str;
185
44.9k
  YYLIMIT        = YYCURSOR + len;
186
44.9k
  if (!SCNG(yy_start)) {
187
19.2k
    SCNG(yy_start) = YYCURSOR;
188
19.2k
  }
189
44.9k
}
190
191
void startup_scanner(void)
192
25.7k
{
193
25.7k
  CG(parse_error) = 0;
194
25.7k
  CG(doc_comment) = NULL;
195
25.7k
  CG(extra_fn_flags) = 0;
196
25.7k
  zend_stack_init(&SCNG(state_stack), sizeof(int));
197
25.7k
  zend_stack_init(&SCNG(nest_location_stack), sizeof(zend_nest_location));
198
25.7k
  zend_ptr_stack_init(&SCNG(heredoc_label_stack));
199
25.7k
  SCNG(heredoc_scan_ahead) = 0;
200
25.7k
}
201
202
139k
static void heredoc_label_dtor(zend_heredoc_label *heredoc_label) {
203
139k
    efree(heredoc_label->label);
204
139k
}
205
206
void shutdown_scanner(void)
207
25.7k
{
208
25.7k
  CG(parse_error) = 0;
209
25.7k
  RESET_DOC_COMMENT();
210
25.7k
  zend_stack_destroy(&SCNG(state_stack));
211
25.7k
  zend_stack_destroy(&SCNG(nest_location_stack));
212
25.7k
  zend_ptr_stack_clean(&SCNG(heredoc_label_stack), (void (*)(void *)) &heredoc_label_dtor, 1);
213
25.7k
  zend_ptr_stack_destroy(&SCNG(heredoc_label_stack));
214
25.7k
  SCNG(heredoc_scan_ahead) = 0;
215
25.7k
  SCNG(on_event) = NULL;
216
25.7k
  SCNG(on_event_context) = NULL;
217
25.7k
}
218
219
ZEND_API void zend_save_lexical_state(zend_lex_state *lex_state)
220
56.9k
{
221
56.9k
  lex_state->yy_leng   = SCNG(yy_leng);
222
56.9k
  lex_state->yy_start  = SCNG(yy_start);
223
56.9k
  lex_state->yy_text   = SCNG(yy_text);
224
56.9k
  lex_state->yy_cursor = SCNG(yy_cursor);
225
56.9k
  lex_state->yy_marker = SCNG(yy_marker);
226
56.9k
  lex_state->yy_limit  = SCNG(yy_limit);
227
228
56.9k
  lex_state->state_stack = SCNG(state_stack);
229
56.9k
  zend_stack_init(&SCNG(state_stack), sizeof(int));
230
231
56.9k
  lex_state->nest_location_stack = SCNG(nest_location_stack);
232
56.9k
  zend_stack_init(&SCNG(nest_location_stack), sizeof(zend_nest_location));
233
234
56.9k
  lex_state->heredoc_label_stack = SCNG(heredoc_label_stack);
235
56.9k
  zend_ptr_stack_init(&SCNG(heredoc_label_stack));
236
237
56.9k
  lex_state->in = SCNG(yy_in);
238
56.9k
  lex_state->yy_state = YYSTATE;
239
56.9k
  lex_state->filename = CG(compiled_filename);
240
56.9k
  lex_state->lineno = CG(zend_lineno);
241
56.9k
  CG(compiled_filename) = NULL;
242
243
56.9k
  lex_state->script_org = SCNG(script_org);
244
56.9k
  lex_state->script_org_size = SCNG(script_org_size);
245
56.9k
  lex_state->script_filtered = SCNG(script_filtered);
246
56.9k
  lex_state->script_filtered_size = SCNG(script_filtered_size);
247
56.9k
  lex_state->input_filter = SCNG(input_filter);
248
56.9k
  lex_state->output_filter = SCNG(output_filter);
249
56.9k
  lex_state->script_encoding = SCNG(script_encoding);
250
251
56.9k
  lex_state->on_event = SCNG(on_event);
252
56.9k
  lex_state->on_event_context = SCNG(on_event_context);
253
254
56.9k
  lex_state->ast = CG(ast);
255
56.9k
  lex_state->ast_arena = CG(ast_arena);
256
56.9k
}
257
258
ZEND_API void zend_restore_lexical_state(zend_lex_state *lex_state)
259
56.6k
{
260
56.6k
  SCNG(yy_leng)   = lex_state->yy_leng;
261
56.6k
  SCNG(yy_start)  = lex_state->yy_start;
262
56.6k
  SCNG(yy_text)   = lex_state->yy_text;
263
56.6k
  SCNG(yy_cursor) = lex_state->yy_cursor;
264
56.6k
  SCNG(yy_marker) = lex_state->yy_marker;
265
56.6k
  SCNG(yy_limit)  = lex_state->yy_limit;
266
267
56.6k
  zend_stack_destroy(&SCNG(state_stack));
268
56.6k
  SCNG(state_stack) = lex_state->state_stack;
269
270
56.6k
  zend_stack_destroy(&SCNG(nest_location_stack));
271
56.6k
  SCNG(nest_location_stack) = lex_state->nest_location_stack;
272
273
56.6k
  zend_ptr_stack_clean(&SCNG(heredoc_label_stack), (void (*)(void *)) &heredoc_label_dtor, 1);
274
56.6k
  zend_ptr_stack_destroy(&SCNG(heredoc_label_stack));
275
56.6k
  SCNG(heredoc_label_stack) = lex_state->heredoc_label_stack;
276
277
56.6k
  SCNG(yy_in) = lex_state->in;
278
56.6k
  YYSETCONDITION(lex_state->yy_state);
279
56.6k
  CG(zend_lineno) = lex_state->lineno;
280
56.6k
  zend_restore_compiled_filename(lex_state->filename);
281
282
56.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
56.6k
  SCNG(script_org) = lex_state->script_org;
287
56.6k
  SCNG(script_org_size) = lex_state->script_org_size;
288
56.6k
  SCNG(script_filtered) = lex_state->script_filtered;
289
56.6k
  SCNG(script_filtered_size) = lex_state->script_filtered_size;
290
56.6k
  SCNG(input_filter) = lex_state->input_filter;
291
56.6k
  SCNG(output_filter) = lex_state->output_filter;
292
56.6k
  SCNG(script_encoding) = lex_state->script_encoding;
293
294
56.6k
  SCNG(on_event) = lex_state->on_event;
295
56.6k
  SCNG(on_event_context) = lex_state->on_event_context;
296
297
56.6k
  CG(ast) = lex_state->ast;
298
56.6k
  CG(ast_arena) = lex_state->ast_arena;
299
300
56.6k
  RESET_DOC_COMMENT();
301
56.6k
}
302
303
ZEND_API zend_result zend_lex_tstring(zval *zv, unsigned char *ident)
304
4.11k
{
305
4.11k
  unsigned char *end = ident;
306
26.7k
  while ((*end >= 'a' && *end <= 'z') || (*end >= 'A' && *end <= 'Z') || *end == '_') {
307
22.6k
    end++;
308
22.6k
  }
309
310
4.11k
  size_t length = end - ident;
311
4.11k
  if (length == 0) {
312
0
    ZEND_ASSERT(ident[0] == '<' && ident[1] == '?' && ident[2] == '=');
313
0
    zend_throw_exception(zend_ce_parse_error, "Cannot use \"<?=\" as an identifier", 0);
314
0
    return FAILURE;
315
0
  }
316
317
4.11k
  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.11k
  ZVAL_STRINGL(zv, (char *) ident, length);
322
4.11k
  return SUCCESS;
323
4.11k
}
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
25.7k
{
531
25.7k
  char *buf;
532
25.7k
  size_t size;
533
25.7k
  zend_string *compiled_filename;
534
535
25.7k
  if (zend_stream_fixup(file_handle, &buf, &size) == FAILURE) {
536
    /* Still add it to open_files to make destroy_file_handle work */
537
52
    zend_llist_add_element(&CG(open_files), file_handle);
538
52
    file_handle->in_list = 1;
539
52
    return FAILURE;
540
52
  }
541
542
25.7k
  ZEND_ASSERT(!EG(exception) && "stream_fixup() should have failed");
543
25.7k
  zend_llist_add_element(&CG(open_files), file_handle);
544
25.7k
  file_handle->in_list = 1;
545
546
  /* Reset the scanner for scanning the new file */
547
25.7k
  SCNG(yy_in) = file_handle;
548
25.7k
  SCNG(yy_start) = NULL;
549
550
25.7k
  if (size != (size_t)-1) {
551
25.7k
    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
25.7k
    SCNG(yy_start) = (unsigned char *)buf;
568
25.7k
    yy_scan_buffer(buf, size);
569
25.7k
  } else {
570
0
    zend_error_noreturn(E_COMPILE_ERROR, "zend_stream_mmap() failed");
571
0
  }
572
573
25.7k
  if (CG(skip_shebang)) {
574
0
    BEGIN(SHEBANG);
575
25.7k
  } else {
576
25.7k
    BEGIN(INITIAL);
577
25.7k
  }
578
579
25.7k
  if (file_handle->opened_path) {
580
24
    compiled_filename = zend_string_copy(file_handle->opened_path);
581
25.7k
  } else {
582
25.7k
    compiled_filename = zend_string_copy(file_handle->filename);
583
25.7k
  }
584
585
25.7k
  zend_set_compiled_filename(compiled_filename);
586
25.7k
  zend_string_release_ex(compiled_filename, 0);
587
588
25.7k
  SCNG(on_event) = NULL;
589
25.7k
  SCNG(on_event_context) = NULL;
590
25.7k
  RESET_DOC_COMMENT();
591
25.7k
  CG(zend_lineno) = 1;
592
25.7k
  CG(increment_lineno) = 0;
593
25.7k
  return SUCCESS;
594
25.7k
}
595
596
static zend_op_array *zend_compile(zend_function_type type)
597
27.6k
{
598
27.6k
  zend_op_array *op_array = NULL;
599
27.6k
  bool original_in_compilation = CG(in_compilation);
600
601
27.6k
  CG(in_compilation) = 1;
602
27.6k
  CG(ast) = NULL;
603
27.6k
  CG(ast_arena) = zend_arena_create(1024 * 32);
604
605
27.6k
  if (!zendparse()) {
606
25.4k
    uint32_t last_lineno = CG(zend_lineno);
607
25.4k
    zend_file_context original_file_context;
608
25.4k
    zend_oparray_context original_oparray_context;
609
25.4k
    zend_op_array *original_active_op_array = CG(active_op_array);
610
611
25.4k
    op_array = emalloc(sizeof(zend_op_array));
612
25.4k
    init_op_array(op_array, type, INITIAL_OP_ARRAY_SIZE);
613
25.4k
    CG(active_op_array) = op_array;
614
615
    /* Use heap to not waste arena memory */
616
25.4k
    op_array->fn_flags |= ZEND_ACC_HEAP_RT_CACHE;
617
618
25.4k
    if (zend_ast_process) {
619
0
      zend_ast_process(CG(ast));
620
0
    }
621
622
25.4k
    zend_file_context_begin(&original_file_context);
623
25.4k
    zend_oparray_context_begin(&original_oparray_context, op_array);
624
25.4k
    zend_compile_top_stmt(CG(ast));
625
25.4k
    CG(zend_lineno) = last_lineno;
626
25.4k
    zend_emit_final_return(type == ZEND_USER_FUNCTION);
627
25.4k
    op_array->line_start = 1;
628
25.4k
    op_array->line_end = last_lineno;
629
25.4k
    pass_two(op_array);
630
25.4k
    zend_oparray_context_end(&original_oparray_context);
631
25.4k
    zend_file_context_end(&original_file_context);
632
633
25.4k
    CG(active_op_array) = original_active_op_array;
634
25.4k
  }
635
636
27.6k
  zend_ast_destroy(CG(ast));
637
27.6k
  zend_arena_destroy(CG(ast_arena));
638
639
27.6k
  CG(in_compilation) = original_in_compilation;
640
641
27.6k
  return op_array;
642
27.6k
}
643
644
ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type)
645
25.7k
{
646
25.7k
  zend_lex_state original_lex_state;
647
25.7k
  zend_op_array *op_array = NULL;
648
25.7k
  zend_save_lexical_state(&original_lex_state);
649
650
25.7k
  if (open_file_for_scanning(file_handle)==FAILURE) {
651
52
    if (!EG(exception)) {
652
18
      if (type==ZEND_REQUIRE) {
653
4
        zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, ZSTR_VAL(file_handle->filename));
654
14
      } else {
655
14
        zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, ZSTR_VAL(file_handle->filename));
656
14
      }
657
18
    }
658
25.7k
  } else {
659
25.7k
    bool orig_record_errors = EG(record_errors);
660
25.7k
    if (!orig_record_errors) {
661
26
      zend_begin_record_errors();
662
26
    }
663
664
25.7k
    op_array = zend_compile(ZEND_USER_FUNCTION);
665
666
25.7k
    if (!orig_record_errors) {
667
26
      zend_emit_recorded_errors();
668
26
      zend_free_recorded_errors();
669
26
    }
670
25.7k
  }
671
672
25.7k
  zend_restore_lexical_state(&original_lex_state);
673
25.7k
  return op_array;
674
25.7k
}
675
676
ZEND_API zend_ast *zend_compile_string_to_ast(
677
8
    zend_string *code, zend_arena **ast_arena, zend_string *filename) {
678
8
  zval code_zv;
679
8
  bool original_in_compilation;
680
8
  zend_lex_state original_lex_state;
681
8
  zend_ast *ast;
682
683
8
  ZVAL_STR_COPY(&code_zv, code);
684
685
8
  original_in_compilation = CG(in_compilation);
686
8
  CG(in_compilation) = 1;
687
688
8
  zend_save_lexical_state(&original_lex_state);
689
8
  zend_prepare_string_for_scanning(&code_zv, filename);
690
8
  CG(ast) = NULL;
691
8
  CG(ast_arena) = zend_arena_create(1024 * 32);
692
8
  LANG_SCNG(yy_state) = yycINITIAL;
693
694
8
  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
8
  ast = CG(ast);
702
8
  *ast_arena = CG(ast_arena);
703
704
8
  zend_restore_lexical_state(&original_lex_state);
705
8
  CG(in_compilation) = original_in_compilation;
706
707
8
  zval_ptr_dtor_str(&code_zv);
708
709
8
  return ast;
710
8
}
711
712
zend_op_array *compile_filename(int type, zend_string *filename)
713
79.1k
{
714
79.1k
  zend_file_handle file_handle;
715
79.1k
  zend_op_array *retval;
716
79.1k
  zend_string *opened_path = NULL;
717
718
79.1k
  zend_stream_init_filename_ex(&file_handle, filename);
719
720
79.1k
  retval = zend_compile_file(&file_handle, type);
721
79.1k
  if (retval && file_handle.handle.stream.handle) {
722
28
    if (!file_handle.opened_path) {
723
4
      file_handle.opened_path = opened_path = zend_string_copy(filename);
724
4
    }
725
726
28
    zend_hash_add_empty_element(&EG(included_files), file_handle.opened_path);
727
728
28
    if (opened_path) {
729
4
      zend_string_release_ex(opened_path, 0);
730
4
    }
731
28
  }
732
79.1k
  zend_destroy_file_handle(&file_handle);
733
734
79.1k
  return retval;
735
79.1k
}
736
737
ZEND_API void zend_prepare_string_for_scanning(zval *str, zend_string *filename)
738
19.2k
{
739
19.2k
  char *buf;
740
19.2k
  size_t size, old_len;
741
742
  /* enforce ZEND_MMAP_AHEAD trailing NULLs for flex... */
743
19.2k
  old_len = Z_STRLEN_P(str);
744
19.2k
  Z_STR_P(str) = zend_string_extend(Z_STR_P(str), old_len + ZEND_MMAP_AHEAD, 0);
745
19.2k
  Z_TYPE_INFO_P(str) = IS_STRING_EX;
746
19.2k
  memset(Z_STRVAL_P(str) + old_len, 0, ZEND_MMAP_AHEAD + 1);
747
748
19.2k
  SCNG(yy_in) = NULL;
749
19.2k
  SCNG(yy_start) = NULL;
750
751
19.2k
  buf = Z_STRVAL_P(str);
752
19.2k
  size = old_len;
753
754
19.2k
  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
19.2k
  yy_scan_buffer(buf, size);
772
19.2k
  zend_set_compiled_filename(filename);
773
19.2k
  CG(zend_lineno) = 1;
774
19.2k
  CG(increment_lineno) = 0;
775
19.2k
  SCNG(on_event) = NULL;
776
19.2k
  SCNG(on_event_context) = NULL;
777
19.2k
  RESET_DOC_COMMENT();
778
19.2k
}
779
780
781
ZEND_API size_t zend_get_scanned_file_offset(void)
782
8
{
783
8
  size_t offset = SCNG(yy_cursor) - SCNG(yy_start);
784
8
  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
8
  return offset;
800
8
}
801
802
zend_op_array *compile_string(zend_string *source_string, const char *filename, zend_compile_position position)
803
1.94k
{
804
1.94k
  zend_lex_state original_lex_state;
805
1.94k
  zend_op_array *op_array = NULL;
806
1.94k
  zval tmp;
807
1.94k
  zend_string *filename_str;
808
809
1.94k
  if (ZSTR_LEN(source_string) == 0) {
810
21
    return NULL;
811
21
  }
812
813
1.92k
  ZVAL_STR_COPY(&tmp, source_string);
814
815
1.92k
  zend_save_lexical_state(&original_lex_state);
816
1.92k
  filename_str = zend_string_init(filename, strlen(filename), 0);
817
1.92k
  zend_prepare_string_for_scanning(&tmp, filename_str);
818
1.92k
  zend_string_release(filename_str);
819
820
1.92k
  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
1.92k
    case ZEND_COMPILE_POSITION_AFTER_OPEN_TAG:
828
1.92k
      BEGIN(ST_IN_SCRIPTING);
829
1.92k
      break;
830
1.92k
  }
831
832
1.92k
  op_array = zend_compile(ZEND_EVAL_CODE);
833
834
1.92k
  zend_restore_lexical_state(&original_lex_state);
835
1.92k
  zval_ptr_dtor(&tmp);
836
837
1.92k
  return op_array;
838
1.92k
}
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
17.3k
{
866
17.3k
  zend_lex_state original_lex_state;
867
17.3k
  zval str_zv;
868
17.3k
  zend_string *filename_str = zend_string_init(filename, strlen(filename), 0);
869
17.3k
  ZVAL_STR_COPY(&str_zv, str);
870
17.3k
  zend_save_lexical_state(&original_lex_state);
871
17.3k
  zend_prepare_string_for_scanning(&str_zv, filename_str);
872
17.3k
  zend_string_release(filename_str);
873
17.3k
  BEGIN(INITIAL);
874
17.3k
  zend_highlight(syntax_highlighter_ini);
875
17.3k
  if (SCNG(script_filtered)) {
876
0
    efree(SCNG(script_filtered));
877
0
    SCNG(script_filtered) = NULL;
878
0
  }
879
17.3k
  zend_restore_lexical_state(&original_lex_state);
880
17.3k
  zval_ptr_dtor(&str_zv);
881
17.3k
}
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.97M
  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.97M
  } else if (yyleng == 1) { \
927
510k
    ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR((zend_uchar)*(yytext))); \
928
1.46M
  } else { \
929
1.46M
    ZVAL_STRINGL(zendlval, yytext, yyleng); \
930
1.46M
  }
931
932
static zend_result zend_scan_escape_string(zval *zendlval, char *str, size_t len, char quote_type)
933
276k
{
934
276k
  char *s, *t;
935
276k
  char *end;
936
937
276k
  if (len <= 1) {
938
47.4k
    if (len < 1) {
939
7.72k
      ZVAL_EMPTY_STRING(zendlval);
940
39.7k
    } else {
941
39.7k
      zend_uchar c = (zend_uchar)*str;
942
39.7k
      HANDLE_NEWLINE(c);
943
39.7k
      ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR(c));
944
39.7k
    }
945
47.4k
    goto skip_escape_conversion;
946
47.4k
  }
947
948
229k
  ZVAL_STRINGL(zendlval, str, len);
949
950
  /* convert escape sequences */
951
229k
  s = Z_STRVAL_P(zendlval);
952
229k
  end = s+Z_STRLEN_P(zendlval);
953
9.88M
  while (1) {
954
9.88M
    if (UNEXPECTED(*s=='\\')) {
955
53.5k
      break;
956
53.5k
    }
957
9.83M
    if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
958
249k
      CG(zend_lineno)++;
959
249k
    }
960
9.83M
    s++;
961
9.83M
    if (s == end) {
962
175k
      goto skip_escape_conversion;
963
175k
    }
964
9.83M
  }
965
966
53.5k
  t = s;
967
2.53M
  while (s<end) {
968
2.48M
    if (*s=='\\') {
969
148k
      s++;
970
148k
      if (s >= end) {
971
622
        *t++ = '\\';
972
622
        break;
973
622
      }
974
975
148k
      switch(*s) {
976
21.6k
        case 'n':
977
21.6k
          *t++ = '\n';
978
21.6k
          break;
979
466
        case 'r':
980
466
          *t++ = '\r';
981
466
          break;
982
422
        case 't':
983
422
          *t++ = '\t';
984
422
          break;
985
765
        case 'f':
986
765
          *t++ = '\f';
987
765
          break;
988
1.23k
        case 'v':
989
1.23k
          *t++ = '\v';
990
1.23k
          break;
991
112
        case 'e':
992
#ifdef ZEND_WIN32
993
          *t++ = VK_ESCAPE;
994
#else
995
112
          *t++ = '\e';
996
112
#endif
997
112
          break;
998
281
        case '"':
999
1.33k
        case '`':
1000
1.33k
          if (*s != quote_type) {
1001
407
            *t++ = '\\';
1002
407
            *t++ = *s;
1003
407
            break;
1004
407
          }
1005
929
          ZEND_FALLTHROUGH;
1006
42.7k
        case '\\':
1007
43.6k
        case '$':
1008
43.6k
          *t++ = *s;
1009
43.6k
          break;
1010
1.85k
        case 'x':
1011
2.87k
        case 'X':
1012
2.87k
          if (ZEND_IS_HEX(*(s+1))) {
1013
1.84k
            char hex_buf[3] = { 0, 0, 0 };
1014
1015
1.84k
            hex_buf[0] = *(++s);
1016
1.84k
            if (ZEND_IS_HEX(*(s+1))) {
1017
1.61k
              hex_buf[1] = *(++s);
1018
1.61k
            }
1019
1.84k
            *t++ = (char) ZEND_STRTOL(hex_buf, NULL, 16);
1020
1.84k
          } else {
1021
1.03k
            *t++ = '\\';
1022
1.03k
            *t++ = *s;
1023
1.03k
          }
1024
2.87k
          break;
1025
        /* UTF-8 codepoint escape, format: /\\u\{\x+\}/ */
1026
100
        case 'u':
1027
100
          {
1028
            /* cache where we started so we can parse after validating */
1029
100
            char *start = s + 1;
1030
100
            size_t len = 0;
1031
100
            bool valid = 1;
1032
100
            unsigned long codepoint;
1033
1034
100
            if (*start != '{') {
1035
              /* we silently let this pass to avoid breaking code
1036
               * with JSON in string literals (e.g. "\"\u202e\""
1037
               */
1038
94
              *t++ = '\\';
1039
94
              *t++ = 'u';
1040
94
              break;
1041
94
            } else {
1042
              /* on the other hand, invalid \u{blah} errors */
1043
6
              s++;
1044
6
              len++;
1045
6
              s++;
1046
6
              while (*s != '}') {
1047
2
                if (!ZEND_IS_HEX(*s)) {
1048
2
                  valid = 0;
1049
2
                  break;
1050
2
                } else {
1051
0
                  len++;
1052
0
                }
1053
0
                s++;
1054
0
              }
1055
6
              if (*s == '}') {
1056
4
                valid = 1;
1057
4
                len++;
1058
4
              }
1059
6
            }
1060
1061
            /* \u{} is invalid */
1062
6
            if (len <= 2) {
1063
6
              valid = 0;
1064
6
            }
1065
1066
6
            if (!valid) {
1067
6
              zend_throw_exception(zend_ce_parse_error,
1068
6
                "Invalid UTF-8 codepoint escape sequence", 0);
1069
6
              zval_ptr_dtor(zendlval);
1070
6
              ZVAL_UNDEF(zendlval);
1071
6
              return FAILURE;
1072
6
            }
1073
1074
6
            errno = 0;
1075
0
            codepoint = strtoul(start + 1, NULL, 16);
1076
1077
            /* per RFC 3629, UTF-8 can only represent 21 bits */
1078
0
            if (codepoint > 0x10FFFF || errno) {
1079
0
              zend_throw_exception(zend_ce_parse_error,
1080
0
                "Invalid UTF-8 codepoint escape sequence: Codepoint too large", 0);
1081
0
              zval_ptr_dtor(zendlval);
1082
0
              ZVAL_UNDEF(zendlval);
1083
0
              return FAILURE;
1084
0
            }
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
76.6k
        default:
1105
          /* check for an octal */
1106
76.6k
          if (ZEND_IS_OCT(*s)) {
1107
11.9k
            char octal_buf[4] = { 0, 0, 0, 0 };
1108
1109
11.9k
            octal_buf[0] = *s;
1110
11.9k
            if (ZEND_IS_OCT(*(s+1))) {
1111
2.32k
              octal_buf[1] = *(++s);
1112
2.32k
              if (ZEND_IS_OCT(*(s+1))) {
1113
1.65k
                octal_buf[2] = *(++s);
1114
1.65k
              }
1115
2.32k
            }
1116
11.9k
            if (octal_buf[2] && (octal_buf[0] > '3') && !SCNG(heredoc_scan_ahead)) {
1117
              /* 3 octit values must not overflow 0xFF (\377) */
1118
301
              zend_error(E_COMPILE_WARNING, "Octal escape sequence overflow \\%s is greater than \\377", octal_buf);
1119
301
            }
1120
1121
11.9k
            *t++ = (char) ZEND_STRTOL(octal_buf, NULL, 8);
1122
64.6k
          } else {
1123
64.6k
            *t++ = '\\';
1124
64.6k
            *t++ = *s;
1125
64.6k
          }
1126
76.6k
          break;
1127
148k
      }
1128
2.33M
    } else {
1129
2.33M
      *t++ = *s;
1130
2.33M
    }
1131
1132
2.48M
    if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
1133
68.2k
      CG(zend_lineno)++;
1134
68.2k
    }
1135
2.48M
    s++;
1136
2.48M
  }
1137
53.5k
  *t = 0;
1138
53.5k
  Z_STRLEN_P(zendlval) = t - Z_STRVAL_P(zendlval);
1139
1140
276k
skip_escape_conversion:
1141
276k
  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
276k
  return SUCCESS;
1152
53.5k
}
1153
1154
282k
#define HEREDOC_USING_SPACES 1
1155
12.5k
#define HEREDOC_USING_TABS 2
1156
1157
85.5k
static const char *next_newline(const char *str, const char *end, size_t *newline_len) {
1158
1.36M
  for (; str < end; str++) {
1159
1.32M
    if (*str == '\r') {
1160
5.16k
      *newline_len = str + 1 < end && *(str + 1) == '\n' ? 2 : 1;
1161
5.16k
      return str;
1162
1.31M
    } else if (*str == '\n') {
1163
36.8k
      *newline_len = 1;
1164
36.8k
      return str;
1165
36.8k
    }
1166
1.32M
  }
1167
43.4k
  *newline_len = 0;
1168
43.4k
  return NULL;
1169
85.5k
}
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
41.9k
{
1175
41.9k
  const char *str = Z_STRVAL_P(zendlval), *end = str + Z_STRLEN_P(zendlval);
1176
41.9k
  char *copy = Z_STRVAL_P(zendlval);
1177
1178
41.9k
  uint32_t newline_count = 0;
1179
41.9k
  size_t newline_len;
1180
41.9k
  const char *nl;
1181
1182
41.9k
  if (!newline_at_start) {
1183
37.5k
    nl = next_newline(str, end, &newline_len);
1184
37.5k
    if (!nl) {
1185
23.8k
      return 1;
1186
23.8k
    }
1187
1188
13.6k
    str = nl + newline_len;
1189
13.6k
    copy = (char *) nl + newline_len;
1190
13.6k
    newline_count++;
1191
13.6k
  } else {
1192
4.39k
    nl = str;
1193
4.39k
  }
1194
1195
  /* <= intentional */
1196
59.6k
  while (str <= end && nl) {
1197
47.9k
    size_t skip;
1198
47.9k
    nl = next_newline(str, end, &newline_len);
1199
47.9k
    if (!nl && newline_at_end) {
1200
3.22k
      nl = end;
1201
3.22k
    }
1202
1203
    /* Try to skip indentation */
1204
48.9k
    for (skip = 0; skip < indentation; skip++, str++) {
1205
1.11k
      if (str == nl) {
1206
        /* Don't require full indentation on whitespace-only lines */
1207
154
        break;
1208
154
      }
1209
1210
960
      if (str == end || (*str != ' ' && *str != '\t')) {
1211
0
        CG(zend_lineno) += newline_count;
1212
0
        zend_throw_exception_ex(zend_ce_parse_error, 0,
1213
0
          "Invalid body indentation level (expecting an indentation level of at least %d)", indentation);
1214
0
        goto error;
1215
0
      }
1216
1217
960
      if ((!using_spaces && *str == ' ') || (using_spaces && *str == '\t')) {
1218
0
        CG(zend_lineno) += newline_count;
1219
0
        zend_throw_exception(zend_ce_parse_error,
1220
0
          "Invalid indentation - tabs and spaces cannot be mixed", 0);
1221
0
        goto error;
1222
0
      }
1223
960
    }
1224
1225
47.9k
    if (str == end) {
1226
6.44k
      break;
1227
6.44k
    }
1228
1229
41.5k
    size_t len = nl ? (nl - str + newline_len) : (end - str);
1230
41.5k
    memmove(copy, str, len);
1231
41.5k
    str += len;
1232
41.5k
    copy += len;
1233
41.5k
    newline_count++;
1234
41.5k
  }
1235
1236
18.0k
  *copy = '\0';
1237
18.0k
  Z_STRLEN_P(zendlval) = copy - Z_STRVAL_P(zendlval);
1238
18.0k
  return 1;
1239
1240
0
error:
1241
0
  zval_ptr_dtor_str(zendlval);
1242
0
  ZVAL_UNDEF(zendlval);
1243
1244
0
  return 0;
1245
18.0k
}
1246
1247
static void copy_heredoc_label_stack(void *void_heredoc_label)
1248
57.2k
{
1249
57.2k
  zend_heredoc_label *heredoc_label = void_heredoc_label;
1250
57.2k
  zend_heredoc_label *new_heredoc_label = emalloc(sizeof(zend_heredoc_label));
1251
1252
57.2k
  *new_heredoc_label = *heredoc_label;
1253
57.2k
  new_heredoc_label->label = estrndup(heredoc_label->label, heredoc_label->length);
1254
1255
57.2k
  zend_ptr_stack_push(&SCNG(heredoc_label_stack), (void *) new_heredoc_label);
1256
57.2k
}
1257
1258
/* Check that { }, [ ], ( ) are nested correctly */
1259
static void report_bad_nesting(char opening, uint32_t opening_lineno, char closing)
1260
106k
{
1261
106k
  char   buf[256];
1262
106k
  size_t used = 0;
1263
1264
106k
  used = snprintf(buf, sizeof(buf), "Unclosed '%c'", opening);
1265
1266
106k
  if (opening_lineno != CG(zend_lineno)) {
1267
82.3k
    used += snprintf(buf + used, sizeof(buf) - used, " on line %d", opening_lineno);
1268
82.3k
  }
1269
1270
106k
  if (closing) {   /* 'closing' will be 0 if at end of file */
1271
88.3k
    used += snprintf(buf + used, sizeof(buf) - used, " does not match '%c'", closing);
1272
88.3k
  }
1273
1274
106k
  zend_throw_exception(zend_ce_parse_error, buf, 0);
1275
106k
}
1276
1277
static void enter_nesting(char opening)
1278
767k
{
1279
767k
  zend_nest_location nest_loc = {opening, CG(zend_lineno)};
1280
767k
  zend_stack_push(&SCNG(nest_location_stack), &nest_loc);
1281
767k
}
1282
1283
static zend_result exit_nesting(char closing)
1284
517k
{
1285
517k
  if (zend_stack_is_empty(&SCNG(nest_location_stack))) {
1286
14.7k
    zend_throw_exception_ex(zend_ce_parse_error, 0, "Unmatched '%c'", closing);
1287
14.7k
    return FAILURE;
1288
14.7k
  }
1289
1290
503k
  zend_nest_location *nest_loc = zend_stack_top(&SCNG(nest_location_stack));
1291
503k
  char opening = nest_loc->text;
1292
1293
503k
  if ((opening == '{' && closing != '}') ||
1294
497k
      (opening == '[' && closing != ']') ||
1295
491k
      (opening == '(' && closing != ')')) {
1296
88.3k
    report_bad_nesting(opening, nest_loc->lineno, closing);
1297
88.3k
    return FAILURE;
1298
88.3k
  }
1299
1300
414k
  zend_stack_del_top(&SCNG(nest_location_stack));
1301
414k
  return SUCCESS;
1302
503k
}
1303
1304
static zend_result check_nesting_at_end(void)
1305
50.9k
{
1306
50.9k
  if (!zend_stack_is_empty(&SCNG(nest_location_stack))) {
1307
18.3k
    zend_nest_location *nest_loc = zend_stack_top(&SCNG(nest_location_stack));
1308
18.3k
    report_bad_nesting(nest_loc->text, nest_loc->lineno, 0);
1309
18.3k
    return FAILURE;
1310
18.3k
  }
1311
1312
32.5k
  return SUCCESS;
1313
50.9k
}
1314
1315
#define PARSER_MODE() \
1316
5.93M
  EXPECTED(elem != NULL)
1317
1318
6.31M
#define RETURN_TOKEN(_token) do { \
1319
6.31M
    token = _token; \
1320
6.31M
    goto emit_token; \
1321
6.31M
  } while (0)
1322
1323
989k
#define RETURN_TOKEN_WITH_VAL(_token) do { \
1324
989k
    token = _token; \
1325
989k
    goto emit_token_with_val; \
1326
989k
  } while (0)
1327
1328
1.97M
#define RETURN_TOKEN_WITH_STR(_token, _offset) do { \
1329
1.97M
    token = _token; \
1330
1.97M
    offset = _offset; \
1331
1.97M
    goto emit_token_with_str; \
1332
1.97M
  } while (0)
1333
1334
358k
#define RETURN_TOKEN_WITH_IDENT(_token) do { \
1335
358k
    token = _token; \
1336
358k
    goto emit_token_with_ident; \
1337
358k
  } while (0)
1338
1339
204k
#define RETURN_OR_SKIP_TOKEN(_token) do { \
1340
204k
    token = _token; \
1341
204k
    if (PARSER_MODE()) { \
1342
62.6k
      goto skip_token; \
1343
62.6k
    } \
1344
204k
    goto emit_token; \
1345
204k
  } while (0)
1346
1347
517k
#define RETURN_EXIT_NESTING_TOKEN(_token) do { \
1348
517k
    if (exit_nesting(_token) != SUCCESS && PARSER_MODE()) { \
1349
16
      RETURN_TOKEN(T_ERROR); \
1350
517k
    } else { \
1351
517k
      RETURN_TOKEN(_token); \
1352
517k
    } \
1353
517k
  } while(0)
1354
1355
50.9k
#define RETURN_END_TOKEN do { \
1356
50.9k
    if (check_nesting_at_end() != SUCCESS && PARSER_MODE()) { \
1357
228
      RETURN_TOKEN(T_ERROR); \
1358
50.7k
    } else { \
1359
50.7k
      RETURN_TOKEN(END); \
1360
50.7k
    } \
1361
50.9k
  } while (0)
1362
1363
int ZEND_FASTCALL lex_scan(zval *zendlval, zend_parser_stack_elem *elem)
1364
10.9M
{
1365
10.9M
int token;
1366
10.9M
int offset;
1367
10.9M
uint32_t start_line = CG(zend_lineno);
1368
1369
10.9M
  ZVAL_UNDEF(zendlval);
1370
12.1M
restart:
1371
12.1M
  SCNG(yy_text) = YYCURSOR;
1372
1373
1374
12.1M
#line 1375 "Zend/zend_language_scanner.c"
1375
12.1M
{
1376
12.1M
  YYCTYPE yych;
1377
12.1M
  unsigned int yyaccept = 0;
1378
12.1M
  if (YYGETCONDITION() < 5) {
1379
11.9M
    if (YYGETCONDITION() < 2) {
1380
11.3M
      if (YYGETCONDITION() < 1) {
1381
11.2M
        goto yyc_ST_IN_SCRIPTING;
1382
11.2M
      } else {
1383
130k
        goto yyc_ST_LOOKING_FOR_PROPERTY;
1384
130k
      }
1385
11.3M
    } else {
1386
558k
      if (YYGETCONDITION() < 3) {
1387
44.2k
        goto yyc_ST_BACKQUOTE;
1388
514k
      } else {
1389
514k
        if (YYGETCONDITION() < 4) {
1390
177k
          goto yyc_ST_DOUBLE_QUOTES;
1391
336k
        } else {
1392
336k
          goto yyc_ST_HEREDOC;
1393
336k
        }
1394
514k
      }
1395
558k
    }
1396
11.9M
  } else {
1397
233k
    if (YYGETCONDITION() < 8) {
1398
110k
      if (YYGETCONDITION() < 6) {
1399
85.1k
        goto yyc_ST_LOOKING_FOR_VARNAME;
1400
85.1k
      } else {
1401
25.5k
        if (YYGETCONDITION() < 7) {
1402
25.5k
          goto yyc_ST_VAR_OFFSET;
1403
25.5k
        } else {
1404
0
          goto yyc_SHEBANG;
1405
0
        }
1406
25.5k
      }
1407
123k
    } else {
1408
123k
      if (YYGETCONDITION() < 9) {
1409
116k
        goto yyc_INITIAL;
1410
116k
      } else {
1411
7.32k
        if (YYGETCONDITION() < 10) {
1412
4.96k
          goto yyc_ST_END_HEREDOC;
1413
4.96k
        } else {
1414
2.36k
          goto yyc_ST_NOWDOC;
1415
2.36k
        }
1416
7.32k
      }
1417
123k
    }
1418
233k
  }
1419
/* *********************************** */
1420
11.2M
yyc_ST_IN_SCRIPTING:
1421
11.2M
  {
1422
11.2M
    static const unsigned char yybm[] = {
1423
      /* table 1 .. 8: 0 */
1424
11.2M
        0, 134, 134, 134, 134, 134, 134, 134, 
1425
11.2M
      134, 135,   4, 134, 134,   4, 134, 134, 
1426
11.2M
      134, 134, 134, 134, 134, 134, 134, 134, 
1427
11.2M
      134, 134, 134, 134, 134, 134, 134, 134, 
1428
11.2M
      135, 134, 134, 134, 134, 134, 134, 134, 
1429
11.2M
      134, 134,  66, 134, 134, 134, 134, 134, 
1430
11.2M
      190, 190, 182, 182, 182, 182, 182, 182, 
1431
11.2M
      166, 166, 134, 134, 134, 134, 134, 134, 
1432
11.2M
      134, 166, 166, 166, 166, 166, 166, 134, 
1433
11.2M
      134, 134, 134, 134, 134, 134, 134, 134, 
1434
11.2M
      134, 134, 134, 134, 134, 134, 134, 134, 
1435
11.2M
      134, 134, 134, 134, 134, 134, 134, 134, 
1436
11.2M
      134, 166, 166, 166, 166, 166, 166, 134, 
1437
11.2M
      134, 134, 134, 134, 134, 134, 134, 134, 
1438
11.2M
      134, 134, 134, 134, 134, 134, 134, 134, 
1439
11.2M
      134, 134, 134, 134, 134, 134, 134, 134, 
1440
11.2M
      134, 134, 134, 134, 134, 134, 134, 134, 
1441
11.2M
      134, 134, 134, 134, 134, 134, 134, 134, 
1442
11.2M
      134, 134, 134, 134, 134, 134, 134, 134, 
1443
11.2M
      134, 134, 134, 134, 134, 134, 134, 134, 
1444
11.2M
      134, 134, 134, 134, 134, 134, 134, 134, 
1445
11.2M
      134, 134, 134, 134, 134, 134, 134, 134, 
1446
11.2M
      134, 134, 134, 134, 134, 134, 134, 134, 
1447
11.2M
      134, 134, 134, 134, 134, 134, 134, 134, 
1448
11.2M
      134, 134, 134, 134, 134, 134, 134, 134, 
1449
11.2M
      134, 134, 134, 134, 134, 134, 134, 134, 
1450
11.2M
      134, 134, 134, 134, 134, 134, 134, 134, 
1451
11.2M
      134, 134, 134, 134, 134, 134, 134, 134, 
1452
11.2M
      134, 134, 134, 134, 134, 134, 134, 134, 
1453
11.2M
      134, 134, 134, 134, 134, 134, 134, 134, 
1454
11.2M
      134, 134, 134, 134, 134, 134, 134, 134, 
1455
11.2M
      134, 134, 134, 134, 134, 134, 134, 134, 
1456
      /* table 9 .. 11: 256 */
1457
11.2M
        0,   0,   0,   0,   0,   0,   0,   0, 
1458
11.2M
        0,  32,  32,   0,   0,  32,   0,   0, 
1459
11.2M
        0,   0,   0,   0,   0,   0,   0,   0, 
1460
11.2M
        0,   0,   0,   0,   0,   0,   0,   0, 
1461
11.2M
       32,   0,   0,   0,   0,   0,   0,   0, 
1462
11.2M
        0,   0,   0,   0,   0,   0,   0,   0, 
1463
11.2M
      192, 192, 192, 192, 192, 192, 192, 192, 
1464
11.2M
      192, 192,   0,   0,   0,   0,   0,   0, 
1465
11.2M
        0, 128, 128, 128, 128, 128, 128, 128, 
1466
11.2M
      128, 128, 128, 128, 128, 128, 128, 128, 
1467
11.2M
      128, 128, 128, 128, 128, 128, 128, 128, 
1468
11.2M
      128, 128, 128,   0,   0,   0,   0, 128, 
1469
11.2M
        0, 128, 128, 128, 128, 128, 128, 128, 
1470
11.2M
      128, 128, 128, 128, 128, 128, 128, 128, 
1471
11.2M
      128, 128, 128, 128, 128, 128, 128, 128, 
1472
11.2M
      128, 128, 128,   0,   0,   0,   0,   0, 
1473
11.2M
      128, 128, 128, 128, 128, 128, 128, 128, 
1474
11.2M
      128, 128, 128, 128, 128, 128, 128, 128, 
1475
11.2M
      128, 128, 128, 128, 128, 128, 128, 128, 
1476
11.2M
      128, 128, 128, 128, 128, 128, 128, 128, 
1477
11.2M
      128, 128, 128, 128, 128, 128, 128, 128, 
1478
11.2M
      128, 128, 128, 128, 128, 128, 128, 128, 
1479
11.2M
      128, 128, 128, 128, 128, 128, 128, 128, 
1480
11.2M
      128, 128, 128, 128, 128, 128, 128, 128, 
1481
11.2M
      128, 128, 128, 128, 128, 128, 128, 128, 
1482
11.2M
      128, 128, 128, 128, 128, 128, 128, 128, 
1483
11.2M
      128, 128, 128, 128, 128, 128, 128, 128, 
1484
11.2M
      128, 128, 128, 128, 128, 128, 128, 128, 
1485
11.2M
      128, 128, 128, 128, 128, 128, 128, 128, 
1486
11.2M
      128, 128, 128, 128, 128, 128, 128, 128, 
1487
11.2M
      128, 128, 128, 128, 128, 128, 128, 128, 
1488
11.2M
      128, 128, 128, 128, 128, 128, 128, 128, 
1489
11.2M
    };
1490
11.2M
    YYDEBUG(1, *YYCURSOR);
1491
11.2M
    YYFILL(16);
1492
11.2M
    yych = *YYCURSOR;
1493
11.2M
    if (yybm[256+yych] & 32) {
1494
2.18M
      goto yy5;
1495
2.18M
    }
1496
9.03M
    switch (yych) {
1497
2.03M
    case 0x00:
1498
2.08M
    case 0x01:
1499
2.09M
    case 0x02:
1500
2.11M
    case 0x03:
1501
2.12M
    case 0x04:
1502
2.13M
    case 0x05:
1503
2.14M
    case 0x06:
1504
2.15M
    case 0x07:
1505
2.18M
    case 0x08:
1506
2.18M
    case '\t':
1507
2.18M
    case '\n':
1508
2.20M
    case '\v':
1509
2.20M
    case '\f':
1510
2.20M
    case '\r':
1511
2.21M
    case 0x0E:
1512
2.24M
    case 0x0F:
1513
2.25M
    case 0x10:
1514
2.26M
    case 0x11:
1515
2.26M
    case 0x12:
1516
2.33M
    case 0x13:
1517
2.33M
    case 0x14:
1518
2.33M
    case 0x15:
1519
2.33M
    case 0x16:
1520
2.34M
    case 0x17:
1521
2.35M
    case 0x18:
1522
2.35M
    case 0x19:
1523
2.39M
    case 0x1A:
1524
2.39M
    case 0x1B:
1525
2.40M
    case 0x1C:
1526
2.43M
    case 0x1D:
1527
2.45M
    case 0x1E:
1528
2.46M
    case 0x1F:
1529
2.47M
    case 0x7F:  goto yy3;
1530
0
    case ' ':
1531
51.2k
    case '!': goto yy8;
1532
159k
    case '"': goto yy10;
1533
90.2k
    case '#': goto yy12;
1534
449k
    case '$': goto yy14;
1535
9.32k
    case '%': goto yy15;
1536
58.1k
    case '&': goto yy16;
1537
139k
    case '\'':  goto yy18;
1538
422k
    case '(': goto yy20;
1539
270k
    case ')':
1540
367k
    case ']': goto yy22;
1541
18.9k
    case '*': goto yy24;
1542
44.6k
    case '+': goto yy25;
1543
275k
    case ',':
1544
663k
    case ';':
1545
749k
    case '@':
1546
756k
    case '~': goto yy26;
1547
133k
    case '-': goto yy27;
1548
182k
    case '.': goto yy28;
1549
100k
    case '/': goto yy29;
1550
87.4k
    case '0': goto yy30;
1551
79.7k
    case '1':
1552
142k
    case '2':
1553
176k
    case '3':
1554
235k
    case '4':
1555
264k
    case '5':
1556
276k
    case '6':
1557
283k
    case '7':
1558
303k
    case '8':
1559
314k
    case '9': goto yy32;
1560
116k
    case ':': goto yy34;
1561
320k
    case '<': goto yy35;
1562
318k
    case '=': goto yy36;
1563
23.9k
    case '>': goto yy37;
1564
192k
    case '?': goto yy38;
1565
17.5k
    case 'A':
1566
56.3k
    case 'a': goto yy39;
1567
19.3k
    case 'B':
1568
35.5k
    case 'b': goto yy41;
1569
17.4k
    case 'C':
1570
108k
    case 'c': goto yy42;
1571
24.6k
    case 'D':
1572
43.3k
    case 'd': goto yy43;
1573
28.9k
    case 'E':
1574
124k
    case 'e': goto yy44;
1575
10.8k
    case 'F':
1576
128k
    case 'f': goto yy45;
1577
3.41k
    case 'G':
1578
25.5k
    case 'g': goto yy46;
1579
27.8k
    case 'I':
1580
91.8k
    case 'i': goto yy49;
1581
3.27k
    case 'L':
1582
9.06k
    case 'l': goto yy50;
1583
5.64k
    case 'M':
1584
22.9k
    case 'm': goto yy51;
1585
15.9k
    case 'N':
1586
73.5k
    case 'n': goto yy52;
1587
19.9k
    case 'O':
1588
75.0k
    case 'o': goto yy53;
1589
42.9k
    case 'P':
1590
166k
    case 'p': goto yy54;
1591
7.49k
    case 'R':
1592
41.0k
    case 'r': goto yy55;
1593
21.8k
    case 'S':
1594
79.3k
    case 's': goto yy56;
1595
18.4k
    case 'T':
1596
70.1k
    case 't': goto yy57;
1597
2.10k
    case 'U':
1598
22.7k
    case 'u': goto yy58;
1599
2.36k
    case 'V':
1600
64.0k
    case 'v': goto yy59;
1601
7.68k
    case 'W':
1602
10.8k
    case 'w': goto yy60;
1603
4.37k
    case 'X':
1604
9.55k
    case 'x': goto yy61;
1605
1.69k
    case 'Y':
1606
23.2k
    case 'y': goto yy62;
1607
55.4k
    case '[': goto yy63;
1608
55.8k
    case '\\':  goto yy64;
1609
33.2k
    case '^': goto yy66;
1610
40.0k
    case '_': goto yy67;
1611
10.5k
    case '`': goto yy68;
1612
196k
    case '{': goto yy70;
1613
25.9k
    case '|': goto yy72;
1614
150k
    case '}': goto yy73;
1615
350k
    default:  goto yy47;
1616
9.03M
    }
1617
2.47M
yy3:
1618
2.47M
    YYDEBUG(3, *YYCURSOR);
1619
2.47M
    ++YYCURSOR;
1620
2.47M
    YYDEBUG(4, *YYCURSOR);
1621
2.47M
    yyleng = YYCURSOR - SCNG(yy_text);
1622
2.47M
#line 3179 "Zend/zend_language_scanner.l"
1623
2.47M
    {
1624
2.47M
  if (YYCURSOR > YYLIMIT) {
1625
16.0k
    RETURN_END_TOKEN;
1626
16.0k
  }
1627
1628
2.45M
  RETURN_TOKEN(T_BAD_CHARACTER);
1629
2.45M
}
1630
0
#line 1631 "Zend/zend_language_scanner.c"
1631
3.94M
yy5:
1632
3.94M
    YYDEBUG(5, *YYCURSOR);
1633
3.94M
    ++YYCURSOR;
1634
3.94M
    YYFILL(1);
1635
3.94M
    yych = *YYCURSOR;
1636
3.94M
    YYDEBUG(6, *YYCURSOR);
1637
3.94M
    if (yybm[256+yych] & 32) {
1638
1.75M
      goto yy5;
1639
1.75M
    }
1640
2.18M
    YYDEBUG(7, *YYCURSOR);
1641
2.18M
    yyleng = YYCURSOR - SCNG(yy_text);
1642
2.18M
#line 1596 "Zend/zend_language_scanner.l"
1643
2.18M
    {
1644
2.18M
  goto return_whitespace;
1645
3.94M
}
1646
0
#line 1647 "Zend/zend_language_scanner.c"
1647
51.2k
yy8:
1648
51.2k
    YYDEBUG(8, *YYCURSOR);
1649
51.2k
    yych = *++YYCURSOR;
1650
51.2k
    if (yych == '=') goto yy75;
1651
1.83M
yy9:
1652
1.83M
    YYDEBUG(9, *YYCURSOR);
1653
1.83M
    yyleng = YYCURSOR - SCNG(yy_text);
1654
1.83M
#line 1968 "Zend/zend_language_scanner.l"
1655
1.83M
    {
1656
1.83M
  RETURN_TOKEN(yytext[0]);
1657
1.83M
}
1658
0
#line 1659 "Zend/zend_language_scanner.c"
1659
160k
yy10:
1660
160k
    YYDEBUG(10, *YYCURSOR);
1661
160k
    ++YYCURSOR;
1662
160k
    YYDEBUG(11, *YYCURSOR);
1663
160k
    yyleng = YYCURSOR - SCNG(yy_text);
1664
160k
#line 2631 "Zend/zend_language_scanner.l"
1665
160k
    {
1666
160k
  int bprefix = (yytext[0] != '"') ? 1 : 0;
1667
1668
6.92M
  while (YYCURSOR < YYLIMIT) {
1669
6.92M
    switch (*YYCURSOR++) {
1670
129k
      case '"':
1671
129k
        yyleng = YYCURSOR - SCNG(yy_text);
1672
129k
        if (EXPECTED(zend_scan_escape_string(zendlval, yytext+bprefix+1, yyleng-bprefix-2, '"') == SUCCESS)
1673
129k
         || !PARSER_MODE()) {
1674
129k
          RETURN_TOKEN_WITH_VAL(T_CONSTANT_ENCAPSED_STRING);
1675
129k
        } else {
1676
2
          RETURN_TOKEN(T_ERROR);
1677
2
        }
1678
49.4k
      case '$':
1679
49.4k
        if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
1680
26.3k
          break;
1681
26.3k
        }
1682
23.0k
        continue;
1683
23.0k
      case '{':
1684
19.4k
        if (*YYCURSOR == '$') {
1685
447
          break;
1686
447
        }
1687
19.0k
        continue;
1688
107k
      case '\\':
1689
107k
        if (YYCURSOR < YYLIMIT) {
1690
106k
          YYCURSOR++;
1691
106k
        }
1692
107k
        ZEND_FALLTHROUGH;
1693
6.72M
      default:
1694
6.72M
        continue;
1695
6.92M
    }
1696
1697
26.8k
    YYCURSOR--;
1698
26.8k
    break;
1699
6.92M
  }
1700
1701
  /* Remember how much was scanned to save rescanning */
1702
160k
  SET_DOUBLE_QUOTES_SCANNED_LENGTH(YYCURSOR - SCNG(yy_text) - yyleng);
1703
1704
30.9k
  YYCURSOR = SCNG(yy_text) + yyleng;
1705
1706
30.9k
  BEGIN(ST_DOUBLE_QUOTES);
1707
30.9k
  RETURN_TOKEN('"');
1708
30.9k
}
1709
0
#line 1710 "Zend/zend_language_scanner.c"
1710
90.2k
yy12:
1711
90.2k
    YYDEBUG(12, *YYCURSOR);
1712
90.2k
    yych = *++YYCURSOR;
1713
90.2k
    if (yych == '[') goto yy77;
1714
119k
yy13:
1715
119k
    YYDEBUG(13, *YYCURSOR);
1716
119k
    yyleng = YYCURSOR - SCNG(yy_text);
1717
119k
#line 2459 "Zend/zend_language_scanner.l"
1718
119k
    {
1719
2.94M
  while (YYCURSOR < YYLIMIT) {
1720
2.93M
    switch (*YYCURSOR++) {
1721
20.3k
      case '\r':
1722
115k
      case '\n':
1723
115k
        YYCURSOR--;
1724
115k
        break;
1725
23.9k
      case '?':
1726
23.9k
        if (*YYCURSOR == '>') {
1727
276
          YYCURSOR--;
1728
276
          break;
1729
276
        }
1730
23.6k
        ZEND_FALLTHROUGH;
1731
2.82M
      default:
1732
2.82M
        continue;
1733
2.93M
    }
1734
1735
115k
    break;
1736
2.93M
  }
1737
1738
119k
  yyleng = YYCURSOR - SCNG(yy_text);
1739
119k
  RETURN_OR_SKIP_TOKEN(T_COMMENT);
1740
119k
}
1741
0
#line 1742 "Zend/zend_language_scanner.c"
1742
449k
yy14:
1743
449k
    YYDEBUG(14, *YYCURSOR);
1744
449k
    yych = *++YYCURSOR;
1745
449k
    if (yych <= '_') {
1746
48.3k
      if (yych <= '@') goto yy9;
1747
5.71k
      if (yych <= 'Z') goto yy79;
1748
2.63k
      if (yych <= '^') goto yy9;
1749
723
      goto yy79;
1750
400k
    } else {
1751
400k
      if (yych <= '`') goto yy9;
1752
400k
      if (yych <= 'z') goto yy79;
1753
35.0k
      if (yych <= 0x7F) goto yy9;
1754
14.4k
      goto yy79;
1755
35.0k
    }
1756
9.32k
yy15:
1757
9.32k
    YYDEBUG(15, *YYCURSOR);
1758
9.32k
    yych = *++YYCURSOR;
1759
9.32k
    if (yych == '=') goto yy82;
1760
9.03k
    goto yy9;
1761
58.1k
yy16:
1762
58.1k
    YYDEBUG(16, *YYCURSOR);
1763
58.1k
    yyaccept = 0;
1764
58.1k
    yych = *(YYMARKER = ++YYCURSOR);
1765
58.1k
    if (yych <= '"') {
1766
13.0k
      if (yych <= '\f') {
1767
5.40k
        if (yych <= 0x08) goto yy17;
1768
4.90k
        if (yych <= '\n') goto yy85;
1769
7.60k
      } else {
1770
7.60k
        if (yych <= '\r') goto yy85;
1771
6.98k
        if (yych == ' ') goto yy85;
1772
6.98k
      }
1773
45.1k
    } else {
1774
45.1k
      if (yych <= '-') {
1775
8.11k
        if (yych <= '$') goto yy85;
1776
4.58k
        if (yych == '&') goto yy90;
1777
37.0k
      } else {
1778
37.0k
        if (yych <= '/') goto yy85;
1779
33.8k
        if (yych == '=') goto yy94;
1780
33.8k
      }
1781
45.1k
    }
1782
38.8k
yy17:
1783
38.8k
    YYDEBUG(17, *YYCURSOR);
1784
38.8k
    yyleng = YYCURSOR - SCNG(yy_text);
1785
38.8k
#line 1954 "Zend/zend_language_scanner.l"
1786
38.8k
    {
1787
38.8k
  RETURN_TOKEN(T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG);
1788
38.8k
}
1789
0
#line 1790 "Zend/zend_language_scanner.c"
1790
139k
yy18:
1791
139k
    YYDEBUG(18, *YYCURSOR);
1792
139k
    ++YYCURSOR;
1793
139k
    YYDEBUG(19, *YYCURSOR);
1794
139k
    yyleng = YYCURSOR - SCNG(yy_text);
1795
139k
#line 2537 "Zend/zend_language_scanner.l"
1796
139k
    {
1797
139k
  char *s, *t;
1798
139k
  char *end;
1799
139k
  int bprefix = (yytext[0] != '\'') ? 1 : 0;
1800
1801
18.8M
  while (1) {
1802
18.8M
    if (YYCURSOR < YYLIMIT) {
1803
18.8M
      if (*YYCURSOR == '\'') {
1804
137k
        YYCURSOR++;
1805
137k
        yyleng = YYCURSOR - SCNG(yy_text);
1806
1807
137k
        break;
1808
18.6M
      } else if (*YYCURSOR++ == '\\' && YYCURSOR < YYLIMIT) {
1809
57.3k
        YYCURSOR++;
1810
57.3k
      }
1811
18.8M
    } else {
1812
2.68k
      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
2.68k
      ZVAL_NULL(zendlval);
1818
2.68k
      RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
1819
2.68k
    }
1820
18.8M
  }
1821
1822
137k
  if (yyleng-bprefix-2 <= 1) {
1823
19.3k
    if (yyleng-bprefix-2 < 1) {
1824
4.80k
      ZVAL_EMPTY_STRING(zendlval);
1825
14.5k
    } else {
1826
14.5k
      zend_uchar c = (zend_uchar)*(yytext+bprefix+1);
1827
14.5k
      HANDLE_NEWLINE(c);
1828
14.5k
      ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR(c));
1829
14.5k
    }
1830
19.3k
    goto skip_escape_conversion;
1831
19.3k
  }
1832
117k
  ZVAL_STRINGL(zendlval, yytext+bprefix+1, yyleng-bprefix-2);
1833
1834
  /* convert escape sequences */
1835
117k
  s = Z_STRVAL_P(zendlval);
1836
117k
  end = s+Z_STRLEN_P(zendlval);
1837
12.9M
  while (1) {
1838
12.9M
    if (UNEXPECTED(*s=='\\')) {
1839
18.3k
      break;
1840
18.3k
    }
1841
12.8M
    if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
1842
229k
      CG(zend_lineno)++;
1843
229k
    }
1844
12.8M
    s++;
1845
12.8M
    if (s == end) {
1846
99.3k
      goto skip_escape_conversion;
1847
99.3k
    }
1848
12.8M
  }
1849
1850
18.3k
  t = s;
1851
5.23M
  while (s<end) {
1852
5.22M
    if (*s=='\\') {
1853
55.7k
      s++;
1854
55.7k
      if (*s == '\\' || *s == '\'') {
1855
21.7k
        *t++ = *s;
1856
34.0k
      } else {
1857
34.0k
        *t++ = '\\';
1858
34.0k
        *t++ = *s;
1859
34.0k
      }
1860
5.16M
    } else {
1861
5.16M
      *t++ = *s;
1862
5.16M
    }
1863
5.22M
    if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
1864
95.5k
      CG(zend_lineno)++;
1865
95.5k
    }
1866
5.22M
    s++;
1867
5.22M
  }
1868
18.3k
  *t = 0;
1869
18.3k
  Z_STRLEN_P(zendlval) = t - Z_STRVAL_P(zendlval);
1870
1871
137k
skip_escape_conversion:
1872
137k
  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
137k
  RETURN_TOKEN_WITH_VAL(T_CONSTANT_ENCAPSED_STRING);
1887
137k
}
1888
0
#line 1889 "Zend/zend_language_scanner.c"
1889
422k
yy20:
1890
422k
    YYDEBUG(20, *YYCURSOR);
1891
422k
    yyaccept = 1;
1892
422k
    yych = *(YYMARKER = ++YYCURSOR);
1893
422k
    if (yych <= 'S') {
1894
340k
      if (yych <= 'D') {
1895
314k
        if (yych <= ' ') {
1896
64.6k
          if (yych == '\t') goto yy97;
1897
64.3k
          if (yych >= ' ') goto yy97;
1898
249k
        } else {
1899
249k
          if (yych <= '@') goto yy21;
1900
3.05k
          if (yych != 'C') goto yy97;
1901
3.05k
        }
1902
314k
      } else {
1903
26.0k
        if (yych <= 'I') {
1904
14.4k
          if (yych == 'F') goto yy97;
1905
13.6k
          if (yych >= 'I') goto yy97;
1906
13.6k
        } else {
1907
11.5k
          if (yych == 'O') goto yy97;
1908
6.08k
          if (yych >= 'R') goto yy97;
1909
6.08k
        }
1910
26.0k
      }
1911
340k
    } else {
1912
81.4k
      if (yych <= 'f') {
1913
31.2k
        if (yych <= 'b') {
1914
19.5k
          if (yych <= 'T') goto yy21;
1915
16.7k
          if (yych <= 'V') goto yy97;
1916
16.1k
          if (yych >= 'a') goto yy97;
1917
16.1k
        } else {
1918
11.6k
          if (yych == 'd') goto yy97;
1919
10.4k
          if (yych >= 'f') goto yy97;
1920
10.4k
        }
1921
50.2k
      } else {
1922
50.2k
        if (yych <= 'o') {
1923
21.3k
          if (yych == 'i') goto yy97;
1924
9.28k
          if (yych >= 'o') goto yy97;
1925
28.9k
        } else {
1926
28.9k
          if (yych <= 's') {
1927
11.4k
            if (yych >= 'r') goto yy97;
1928
17.5k
          } else {
1929
17.5k
            if (yych <= 't') goto yy21;
1930
15.0k
            if (yych <= 'v') goto yy97;
1931
15.0k
          }
1932
28.9k
        }
1933
50.2k
      }
1934
81.4k
    }
1935
474k
yy21:
1936
474k
    YYDEBUG(21, *YYCURSOR);
1937
474k
    yyleng = YYCURSOR - SCNG(yy_text);
1938
474k
#line 1963 "Zend/zend_language_scanner.l"
1939
474k
    {
1940
474k
  enter_nesting(yytext[0]);
1941
474k
  RETURN_TOKEN(yytext[0]);
1942
474k
}
1943
0
#line 1944 "Zend/zend_language_scanner.c"
1944
367k
yy22:
1945
367k
    YYDEBUG(22, *YYCURSOR);
1946
367k
    ++YYCURSOR;
1947
367k
    YYDEBUG(23, *YYCURSOR);
1948
367k
    yyleng = YYCURSOR - SCNG(yy_text);
1949
367k
#line 1958 "Zend/zend_language_scanner.l"
1950
367k
    {
1951
  /* Check that ] and ) match up properly with a preceding [ or ( */
1952
367k
  RETURN_EXIT_NESTING_TOKEN(yytext[0]);
1953
367k
}
1954
0
#line 1955 "Zend/zend_language_scanner.c"
1955
18.9k
yy24:
1956
18.9k
    YYDEBUG(24, *YYCURSOR);
1957
18.9k
    yych = *++YYCURSOR;
1958
18.9k
    if (yych == '*') goto yy108;
1959
17.2k
    if (yych == '=') goto yy110;
1960
16.3k
    goto yy9;
1961
44.6k
yy25:
1962
44.6k
    YYDEBUG(25, *YYCURSOR);
1963
44.6k
    yych = *++YYCURSOR;
1964
44.6k
    if (yych == '+') goto yy112;
1965
26.1k
    if (yych == '=') goto yy114;
1966
23.8k
    goto yy9;
1967
756k
yy26:
1968
756k
    YYDEBUG(26, *YYCURSOR);
1969
756k
    ++YYCURSOR;
1970
756k
    goto yy9;
1971
133k
yy27:
1972
133k
    YYDEBUG(27, *YYCURSOR);
1973
133k
    yych = *++YYCURSOR;
1974
133k
    if (yych <= '<') {
1975
44.2k
      if (yych == '-') goto yy116;
1976
41.4k
      goto yy9;
1977
89.0k
    } else {
1978
89.0k
      if (yych <= '=') goto yy118;
1979
87.7k
      if (yych <= '>') goto yy120;
1980
38.6k
      goto yy9;
1981
87.7k
    }
1982
182k
yy28:
1983
182k
    YYDEBUG(28, *YYCURSOR);
1984
182k
    yyaccept = 2;
1985
182k
    yych = *(YYMARKER = ++YYCURSOR);
1986
182k
    if (yych <= '/') {
1987
101k
      if (yych == '.') goto yy122;
1988
41.5k
      goto yy9;
1989
101k
    } else {
1990
81.7k
      if (yych <= '9') goto yy123;
1991
66.3k
      if (yych == '=') goto yy126;
1992
18.9k
      goto yy9;
1993
66.3k
    }
1994
100k
yy29:
1995
100k
    YYDEBUG(29, *YYCURSOR);
1996
100k
    yych = *++YYCURSOR;
1997
100k
    if (yych <= '.') {
1998
49.1k
      if (yych == '*') goto yy128;
1999
14.7k
      goto yy9;
2000
51.0k
    } else {
2001
51.0k
      if (yych <= '/') goto yy130;
2002
19.4k
      if (yych == '=') goto yy131;
2003
17.8k
      goto yy9;
2004
19.4k
    }
2005
87.4k
yy30:
2006
87.4k
    YYDEBUG(30, *YYCURSOR);
2007
87.4k
    yyaccept = 3;
2008
87.4k
    yych = *(YYMARKER = ++YYCURSOR);
2009
87.4k
    if (yych <= 'X') {
2010
70.1k
      if (yych <= 'N') {
2011
69.3k
        if (yych == 'B') goto yy134;
2012
69.1k
        goto yy33;
2013
69.3k
      } else {
2014
722
        if (yych <= 'O') goto yy136;
2015
629
        if (yych <= 'W') goto yy33;
2016
337
        goto yy137;
2017
629
      }
2018
70.1k
    } else {
2019
17.3k
      if (yych <= 'n') {
2020
13.5k
        if (yych == 'b') goto yy134;
2021
12.4k
        goto yy33;
2022
13.5k
      } else {
2023
3.81k
        if (yych <= 'o') goto yy136;
2024
3.71k
        if (yych == 'x') goto yy137;
2025
1.93k
        goto yy33;
2026
3.71k
      }
2027
17.3k
    }
2028
373k
yy31:
2029
373k
    YYDEBUG(31, *YYCURSOR);
2030
373k
    yyleng = YYCURSOR - SCNG(yy_text);
2031
373k
#line 2102 "Zend/zend_language_scanner.l"
2032
373k
    {
2033
373k
  size_t len = yyleng;
2034
373k
  char *end, *lnum = yytext;
2035
373k
  bool is_octal = lnum[0] == '0';
2036
373k
  bool contains_underscores = (memchr(lnum, '_', len) != NULL);
2037
2038
373k
  if (contains_underscores) {
2039
348
    lnum = estrndup(lnum, len);
2040
348
    strip_underscores(lnum, &len);
2041
348
  }
2042
2043
  /* Digits 8 and 9 are illegal in octal literals. */
2044
373k
  if (is_octal) {
2045
82.2k
    size_t i;
2046
228k
    for (i = 0; i < len; i++) {
2047
147k
      if (lnum[i] == '8' || lnum[i] == '9') {
2048
1.19k
        zend_throw_exception(zend_ce_parse_error, "Invalid numeric literal", 0);
2049
1.19k
        if (PARSER_MODE()) {
2050
8
          if (contains_underscores) {
2051
0
            efree(lnum);
2052
0
          }
2053
8
          ZVAL_UNDEF(zendlval);
2054
8
          RETURN_TOKEN(T_ERROR);
2055
8
        }
2056
2057
        /* Continue in order to determine if this is T_LNUMBER or T_DNUMBER. */
2058
1.18k
        len = i;
2059
1.18k
        break;
2060
1.19k
      }
2061
147k
    }
2062
82.2k
  }
2063
2064
2065
373k
  if (len < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
2066
358k
    errno = 0;
2067
    /* base must be passed explicitly for correct parse error on Windows */
2068
358k
    ZVAL_LONG(zendlval, ZEND_STRTOL(lnum, &end, is_octal ? 8 : 10));
2069
358k
    ZEND_ASSERT(end == lnum + len);
2070
358k
  } else {
2071
15.4k
    errno = 0;
2072
15.4k
    ZVAL_LONG(zendlval, ZEND_STRTOL(lnum, &end, 0));
2073
15.4k
    if (errno == ERANGE) { /* Overflow */
2074
13.6k
      errno = 0;
2075
13.6k
      if (is_octal) { /* octal overflow */
2076
204
        ZVAL_DOUBLE(zendlval, zend_oct_strtod(lnum, (const char **)&end));
2077
13.4k
      } else {
2078
13.4k
        ZVAL_DOUBLE(zendlval, zend_strtod(lnum, (const char **)&end));
2079
13.4k
      }
2080
13.6k
      ZEND_ASSERT(end == lnum + len);
2081
13.6k
      if (contains_underscores) {
2082
48
        efree(lnum);
2083
48
      }
2084
13.6k
      RETURN_TOKEN_WITH_VAL(T_DNUMBER);
2085
13.6k
    }
2086
1.78k
    ZEND_ASSERT(end == lnum + len);
2087
1.78k
  }
2088
360k
  ZEND_ASSERT(!errno);
2089
360k
  if (contains_underscores) {
2090
300
    efree(lnum);
2091
300
  }
2092
360k
  RETURN_TOKEN_WITH_VAL(T_LNUMBER);
2093
360k
}
2094
0
#line 2095 "Zend/zend_language_scanner.c"
2095
1.39M
yy32:
2096
1.39M
    YYDEBUG(32, *YYCURSOR);
2097
1.39M
    yyaccept = 3;
2098
1.39M
    YYMARKER = ++YYCURSOR;
2099
1.39M
    YYFILL(3);
2100
1.39M
    yych = *YYCURSOR;
2101
1.48M
yy33:
2102
1.48M
    YYDEBUG(33, *YYCURSOR);
2103
1.48M
    if (yybm[256+yych] & 64) {
2104
1.08M
      goto yy32;
2105
1.08M
    }
2106
398k
    if (yych <= 'E') {
2107
331k
      if (yych == '.') goto yy133;
2108
313k
      if (yych <= 'D') goto yy31;
2109
6.26k
      goto yy135;
2110
313k
    } else {
2111
67.0k
      if (yych <= '_') {
2112
39.5k
        if (yych <= '^') goto yy31;
2113
4.60k
        goto yy138;
2114
39.5k
      } else {
2115
27.4k
        if (yych == 'e') goto yy135;
2116
24.8k
        goto yy31;
2117
27.4k
      }
2118
67.0k
    }
2119
116k
yy34:
2120
116k
    YYDEBUG(34, *YYCURSOR);
2121
116k
    yych = *++YYCURSOR;
2122
116k
    if (yych == ':') goto yy139;
2123
72.3k
    goto yy9;
2124
320k
yy35:
2125
320k
    YYDEBUG(35, *YYCURSOR);
2126
320k
    yych = *++YYCURSOR;
2127
320k
    if (yych <= ';') goto yy9;
2128
283k
    if (yych <= '<') goto yy141;
2129
128k
    if (yych <= '=') goto yy143;
2130
126k
    if (yych <= '>') goto yy145;
2131
124k
    goto yy9;
2132
318k
yy36:
2133
318k
    YYDEBUG(36, *YYCURSOR);
2134
318k
    yych = *++YYCURSOR;
2135
318k
    if (yych <= '<') goto yy9;
2136
30.1k
    if (yych <= '=') goto yy146;
2137
17.7k
    if (yych <= '>') goto yy148;
2138
9.21k
    goto yy9;
2139
23.9k
yy37:
2140
23.9k
    YYDEBUG(37, *YYCURSOR);
2141
23.9k
    yych = *++YYCURSOR;
2142
23.9k
    if (yych <= '<') goto yy9;
2143
10.0k
    if (yych <= '=') goto yy150;
2144
8.81k
    if (yych <= '>') goto yy152;
2145
6.75k
    goto yy9;
2146
192k
yy38:
2147
192k
    YYDEBUG(38, *YYCURSOR);
2148
192k
    yyaccept = 2;
2149
192k
    yych = *(YYMARKER = ++YYCURSOR);
2150
192k
    if (yych <= '=') {
2151
74.1k
      if (yych == '-') goto yy154;
2152
55.7k
      goto yy9;
2153
118k
    } else {
2154
118k
      if (yych <= '>') goto yy155;
2155
89.5k
      if (yych <= '?') goto yy157;
2156
79.3k
      goto yy9;
2157
89.5k
    }
2158
56.3k
yy39:
2159
56.3k
    YYDEBUG(39, *YYCURSOR);
2160
56.3k
    yyaccept = 4;
2161
56.3k
    yych = *(YYMARKER = ++YYCURSOR);
2162
56.3k
    if (yych <= 'S') {
2163
19.3k
      if (yych <= 'M') {
2164
18.4k
        if (yych == 'B') goto yy159;
2165
17.7k
        goto yy48;
2166
18.4k
      } else {
2167
908
        if (yych <= 'N') goto yy160;
2168
584
        if (yych <= 'Q') goto yy48;
2169
482
        if (yych <= 'R') goto yy161;
2170
259
        goto yy162;
2171
482
      }
2172
37.0k
    } else {
2173
37.0k
      if (yych <= 'n') {
2174
7.22k
        if (yych == 'b') goto yy159;
2175
5.50k
        if (yych <= 'm') goto yy48;
2176
903
        goto yy160;
2177
29.8k
      } else {
2178
29.8k
        if (yych <= 'q') goto yy48;
2179
29.0k
        if (yych <= 'r') goto yy161;
2180
15.5k
        if (yych <= 's') goto yy162;
2181
3.40k
        goto yy48;
2182
15.5k
      }
2183
37.0k
    }
2184
1.30M
yy40:
2185
1.30M
    YYDEBUG(40, *YYCURSOR);
2186
1.30M
    yyleng = YYCURSOR - SCNG(yy_text);
2187
1.30M
#line 2454 "Zend/zend_language_scanner.l"
2188
1.30M
    {
2189
1.30M
  RETURN_TOKEN_WITH_STR(T_STRING, 0);
2190
1.30M
}
2191
0
#line 2192 "Zend/zend_language_scanner.c"
2192
35.5k
yy41:
2193
35.5k
    YYDEBUG(41, *YYCURSOR);
2194
35.5k
    yyaccept = 4;
2195
35.5k
    yych = *(YYMARKER = ++YYCURSOR);
2196
35.5k
    if (yych <= ';') {
2197
7.84k
      if (yych <= '"') {
2198
3.43k
        if (yych <= '!') goto yy48;
2199
232
        goto yy10;
2200
4.41k
      } else {
2201
4.41k
        if (yych == '\'') goto yy18;
2202
4.16k
        goto yy48;
2203
4.41k
      }
2204
27.6k
    } else {
2205
27.6k
      if (yych <= 'R') {
2206
3.67k
        if (yych <= '<') goto yy165;
2207
3.63k
        if (yych <= 'Q') goto yy48;
2208
30
        goto yy166;
2209
23.9k
      } else {
2210
23.9k
        if (yych == 'r') goto yy166;
2211
22.0k
        goto yy48;
2212
23.9k
      }
2213
27.6k
    }
2214
108k
yy42:
2215
108k
    YYDEBUG(42, *YYCURSOR);
2216
108k
    yyaccept = 4;
2217
108k
    yych = *(YYMARKER = ++YYCURSOR);
2218
108k
    if (yych <= 'O') {
2219
20.1k
      if (yych <= 'K') {
2220
17.6k
        if (yych == 'A') goto yy167;
2221
17.0k
        goto yy48;
2222
17.6k
      } else {
2223
2.46k
        if (yych <= 'L') goto yy168;
2224
1.33k
        if (yych <= 'N') goto yy48;
2225
1.30k
        goto yy169;
2226
1.33k
      }
2227
88.0k
    } else {
2228
88.0k
      if (yych <= 'k') {
2229
30.9k
        if (yych == 'a') goto yy167;
2230
4.21k
        goto yy48;
2231
57.0k
      } else {
2232
57.0k
        if (yych <= 'l') goto yy168;
2233
20.8k
        if (yych == 'o') goto yy169;
2234
3.47k
        goto yy48;
2235
20.8k
      }
2236
88.0k
    }
2237
43.3k
yy43:
2238
43.3k
    YYDEBUG(43, *YYCURSOR);
2239
43.3k
    yyaccept = 4;
2240
43.3k
    yych = *(YYMARKER = ++YYCURSOR);
2241
43.3k
    if (yych <= 'O') {
2242
13.2k
      if (yych <= 'H') {
2243
9.22k
        if (yych == 'E') goto yy170;
2244
9.09k
        goto yy48;
2245
9.22k
      } else {
2246
4.01k
        if (yych <= 'I') goto yy171;
2247
3.86k
        if (yych <= 'N') goto yy48;
2248
3.80k
        goto yy172;
2249
3.86k
      }
2250
30.1k
    } else {
2251
30.1k
      if (yych <= 'h') {
2252
21.2k
        if (yych == 'e') goto yy170;
2253
15.5k
        goto yy48;
2254
21.2k
      } else {
2255
8.82k
        if (yych <= 'i') goto yy171;
2256
8.06k
        if (yych == 'o') goto yy172;
2257
5.64k
        goto yy48;
2258
8.06k
      }
2259
30.1k
    }
2260
124k
yy44:
2261
124k
    YYDEBUG(44, *YYCURSOR);
2262
124k
    yyaccept = 4;
2263
124k
    yych = *(YYMARKER = ++YYCURSOR);
2264
124k
    switch (yych) {
2265
454
    case 'C':
2266
40.1k
    case 'c': goto yy174;
2267
312
    case 'L':
2268
2.55k
    case 'l': goto yy175;
2269
1.54k
    case 'M':
2270
3.73k
    case 'm': goto yy176;
2271
8.60k
    case 'N':
2272
22.6k
    case 'n': goto yy177;
2273
11
    case 'V':
2274
2.29k
    case 'v': goto yy178;
2275
245
    case 'X':
2276
23.6k
    case 'x': goto yy179;
2277
29.7k
    default:  goto yy48;
2278
124k
    }
2279
128k
yy45:
2280
128k
    YYDEBUG(45, *YYCURSOR);
2281
128k
    yyaccept = 4;
2282
128k
    yych = *(YYMARKER = ++YYCURSOR);
2283
128k
    if (yych <= 'U') {
2284
25.1k
      if (yych <= 'M') {
2285
17.4k
        if (yych == 'I') goto yy180;
2286
16.4k
        goto yy48;
2287
17.4k
      } else {
2288
7.67k
        if (yych <= 'N') goto yy181;
2289
7.59k
        if (yych <= 'O') goto yy183;
2290
449
        if (yych <= 'T') goto yy48;
2291
146
        goto yy184;
2292
449
      }
2293
103k
    } else {
2294
103k
      if (yych <= 'n') {
2295
15.0k
        if (yych == 'i') goto yy180;
2296
12.4k
        if (yych <= 'm') goto yy48;
2297
1.84k
        goto yy181;
2298
88.2k
      } else {
2299
88.2k
        if (yych <= 'o') goto yy183;
2300
41.2k
        if (yych == 'u') goto yy184;
2301
3.27k
        goto yy48;
2302
41.2k
      }
2303
103k
    }
2304
25.5k
yy46:
2305
25.5k
    YYDEBUG(46, *YYCURSOR);
2306
25.5k
    yyaccept = 4;
2307
25.5k
    yych = *(YYMARKER = ++YYCURSOR);
2308
25.5k
    if (yych <= 'O') {
2309
11.5k
      if (yych == 'L') goto yy185;
2310
10.2k
      if (yych <= 'N') goto yy48;
2311
605
      goto yy186;
2312
14.0k
    } else {
2313
14.0k
      if (yych <= 'l') {
2314
13.3k
        if (yych <= 'k') goto yy48;
2315
1.73k
        goto yy185;
2316
13.3k
      } else {
2317
619
        if (yych == 'o') goto yy186;
2318
280
        goto yy48;
2319
619
      }
2320
14.0k
    }
2321
5.98M
yy47:
2322
5.98M
    YYDEBUG(47, *YYCURSOR);
2323
5.98M
    yyaccept = 4;
2324
5.98M
    YYMARKER = ++YYCURSOR;
2325
5.98M
    YYFILL(1);
2326
5.98M
    yych = *YYCURSOR;
2327
6.84M
yy48:
2328
6.84M
    YYDEBUG(48, *YYCURSOR);
2329
6.84M
    if (yybm[256+yych] & 128) {
2330
5.53M
      goto yy47;
2331
5.53M
    }
2332
1.31M
    if (yych == '\\') goto yy164;
2333
1.29M
    goto yy40;
2334
1.29M
yy49:
2335
91.8k
    YYDEBUG(49, *YYCURSOR);
2336
91.8k
    yyaccept = 4;
2337
91.8k
    yych = *(YYMARKER = ++YYCURSOR);
2338
91.8k
    if (yych <= 'S') {
2339
31.0k
      if (yych <= 'L') {
2340
9.89k
        if (yych == 'F') goto yy187;
2341
9.76k
        goto yy48;
2342
21.1k
      } else {
2343
21.1k
        if (yych <= 'M') goto yy189;
2344
20.5k
        if (yych <= 'N') goto yy190;
2345
6.47k
        if (yych <= 'R') goto yy48;
2346
3.84k
        goto yy191;
2347
6.47k
      }
2348
60.7k
    } else {
2349
60.7k
      if (yych <= 'm') {
2350
23.3k
        if (yych == 'f') goto yy187;
2351
11.4k
        if (yych <= 'l') goto yy48;
2352
2.99k
        goto yy189;
2353
37.4k
      } else {
2354
37.4k
        if (yych <= 'n') goto yy190;
2355
16.2k
        if (yych == 's') goto yy191;
2356
5.40k
        goto yy48;
2357
16.2k
      }
2358
60.7k
    }
2359
9.06k
yy50:
2360
9.06k
    YYDEBUG(50, *YYCURSOR);
2361
9.06k
    yyaccept = 4;
2362
9.06k
    yych = *(YYMARKER = ++YYCURSOR);
2363
9.06k
    if (yych == 'I') goto yy192;
2364
8.75k
    if (yych == 'i') goto yy192;
2365
7.45k
    goto yy48;
2366
22.9k
yy51:
2367
22.9k
    YYDEBUG(51, *YYCURSOR);
2368
22.9k
    yyaccept = 4;
2369
22.9k
    yych = *(YYMARKER = ++YYCURSOR);
2370
22.9k
    if (yych == 'A') goto yy193;
2371
22.8k
    if (yych == 'a') goto yy193;
2372
21.6k
    goto yy48;
2373
73.5k
yy52:
2374
73.5k
    YYDEBUG(52, *YYCURSOR);
2375
73.5k
    yyaccept = 4;
2376
73.5k
    yych = *(YYMARKER = ++YYCURSOR);
2377
73.5k
    if (yych <= 'E') {
2378
8.22k
      if (yych == 'A') goto yy194;
2379
7.24k
      if (yych <= 'D') goto yy48;
2380
120
      goto yy195;
2381
65.2k
    } else {
2382
65.2k
      if (yych <= 'a') {
2383
14.6k
        if (yych <= '`') goto yy48;
2384
7.25k
        goto yy194;
2385
50.6k
      } else {
2386
50.6k
        if (yych == 'e') goto yy195;
2387
10.8k
        goto yy48;
2388
50.6k
      }
2389
65.2k
    }
2390
75.0k
yy53:
2391
75.0k
    YYDEBUG(53, *YYCURSOR);
2392
75.0k
    yyaccept = 4;
2393
75.0k
    yych = *(YYMARKER = ++YYCURSOR);
2394
75.0k
    if (yych == 'R') goto yy196;
2395
74.0k
    if (yych == 'r') goto yy196;
2396
71.9k
    goto yy48;
2397
166k
yy54:
2398
166k
    YYDEBUG(54, *YYCURSOR);
2399
166k
    yyaccept = 4;
2400
166k
    yych = *(YYMARKER = ++YYCURSOR);
2401
166k
    if (yych <= 'U') {
2402
41.3k
      if (yych == 'R') goto yy198;
2403
39.6k
      if (yych <= 'T') goto yy48;
2404
598
      goto yy199;
2405
125k
    } else {
2406
125k
      if (yych <= 'r') {
2407
94.5k
        if (yych <= 'q') goto yy48;
2408
18.2k
        goto yy198;
2409
94.5k
      } else {
2410
30.4k
        if (yych == 'u') goto yy199;
2411
3.82k
        goto yy48;
2412
30.4k
      }
2413
125k
    }
2414
41.0k
yy55:
2415
41.0k
    YYDEBUG(55, *YYCURSOR);
2416
41.0k
    yyaccept = 4;
2417
41.0k
    yych = *(YYMARKER = ++YYCURSOR);
2418
41.0k
    if (yych == 'E') goto yy200;
2419
40.6k
    if (yych == 'e') goto yy200;
2420
15.0k
    goto yy48;
2421
79.3k
yy56:
2422
79.3k
    YYDEBUG(56, *YYCURSOR);
2423
79.3k
    yyaccept = 4;
2424
79.3k
    yych = *(YYMARKER = ++YYCURSOR);
2425
79.3k
    if (yych <= 'W') {
2426
39.4k
      if (yych == 'T') goto yy201;
2427
32.4k
      if (yych <= 'V') goto yy48;
2428
62
      goto yy202;
2429
39.9k
    } else {
2430
39.9k
      if (yych <= 't') {
2431
36.5k
        if (yych <= 's') goto yy48;
2432
24.1k
        goto yy201;
2433
36.5k
      } else {
2434
3.37k
        if (yych == 'w') goto yy202;
2435
3.01k
        goto yy48;
2436
3.37k
      }
2437
39.9k
    }
2438
70.1k
yy57:
2439
70.1k
    YYDEBUG(57, *YYCURSOR);
2440
70.1k
    yyaccept = 4;
2441
70.1k
    yych = *(YYMARKER = ++YYCURSOR);
2442
70.1k
    if (yych <= 'R') {
2443
10.0k
      if (yych == 'H') goto yy203;
2444
9.69k
      if (yych <= 'Q') goto yy48;
2445
614
      goto yy204;
2446
60.1k
    } else {
2447
60.1k
      if (yych <= 'h') {
2448
29.0k
        if (yych <= 'g') goto yy48;
2449
5.40k
        goto yy203;
2450
31.0k
      } else {
2451
31.0k
        if (yych == 'r') goto yy204;
2452
5.42k
        goto yy48;
2453
31.0k
      }
2454
60.1k
    }
2455
22.7k
yy58:
2456
22.7k
    YYDEBUG(58, *YYCURSOR);
2457
22.7k
    yyaccept = 4;
2458
22.7k
    yych = *(YYMARKER = ++YYCURSOR);
2459
22.7k
    if (yych <= 'S') {
2460
6.58k
      if (yych == 'N') goto yy205;
2461
5.86k
      if (yych <= 'R') goto yy48;
2462
97
      goto yy206;
2463
16.1k
    } else {
2464
16.1k
      if (yych <= 'n') {
2465
9.61k
        if (yych <= 'm') goto yy48;
2466
8.64k
        goto yy205;
2467
9.61k
      } else {
2468
6.52k
        if (yych == 's') goto yy206;
2469
1.02k
        goto yy48;
2470
6.52k
      }
2471
16.1k
    }
2472
64.0k
yy59:
2473
64.0k
    YYDEBUG(59, *YYCURSOR);
2474
64.0k
    yyaccept = 4;
2475
64.0k
    yych = *(YYMARKER = ++YYCURSOR);
2476
64.0k
    if (yych == 'A') goto yy207;
2477
63.9k
    if (yych == 'a') goto yy207;
2478
4.92k
    goto yy48;
2479
10.8k
yy60:
2480
10.8k
    YYDEBUG(60, *YYCURSOR);
2481
10.8k
    yyaccept = 4;
2482
10.8k
    yych = *(YYMARKER = ++YYCURSOR);
2483
10.8k
    if (yych == 'H') goto yy208;
2484
10.6k
    if (yych == 'h') goto yy208;
2485
9.96k
    goto yy48;
2486
9.96k
yy61:
2487
9.55k
    YYDEBUG(61, *YYCURSOR);
2488
9.55k
    yyaccept = 4;
2489
9.55k
    yych = *(YYMARKER = ++YYCURSOR);
2490
9.55k
    if (yych == 'O') goto yy209;
2491
9.51k
    if (yych == 'o') goto yy209;
2492
8.22k
    goto yy48;
2493
23.2k
yy62:
2494
23.2k
    YYDEBUG(62, *YYCURSOR);
2495
23.2k
    yyaccept = 4;
2496
23.2k
    yych = *(YYMARKER = ++YYCURSOR);
2497
23.2k
    if (yych == 'I') goto yy210;
2498
23.0k
    if (yych == 'i') goto yy210;
2499
13.4k
    goto yy48;
2500
55.4k
yy63:
2501
55.4k
    YYDEBUG(63, *YYCURSOR);
2502
55.4k
    ++YYCURSOR;
2503
55.4k
    goto yy21;
2504
55.8k
yy64:
2505
55.8k
    YYDEBUG(64, *YYCURSOR);
2506
55.8k
    yych = *++YYCURSOR;
2507
55.8k
    if (yych <= '_') {
2508
38.2k
      if (yych <= '@') goto yy65;
2509
21.4k
      if (yych <= 'Z') goto yy211;
2510
11.9k
      if (yych >= '_') goto yy211;
2511
17.6k
    } else {
2512
17.6k
      if (yych <= '`') goto yy65;
2513
17.5k
      if (yych <= 'z') goto yy211;
2514
2.59k
      if (yych >= 0x80) goto yy211;
2515
2.59k
    }
2516
29.2k
yy65:
2517
29.2k
    YYDEBUG(65, *YYCURSOR);
2518
29.2k
    yyleng = YYCURSOR - SCNG(yy_text);
2519
29.2k
#line 2450 "Zend/zend_language_scanner.l"
2520
29.2k
    {
2521
29.2k
  RETURN_TOKEN(T_NS_SEPARATOR);
2522
29.2k
}
2523
0
#line 2524 "Zend/zend_language_scanner.c"
2524
33.2k
yy66:
2525
33.2k
    YYDEBUG(66, *YYCURSOR);
2526
33.2k
    yych = *++YYCURSOR;
2527
33.2k
    if (yych == '=') goto yy214;
2528
33.0k
    goto yy9;
2529
40.0k
yy67:
2530
40.0k
    YYDEBUG(67, *YYCURSOR);
2531
40.0k
    yyaccept = 4;
2532
40.0k
    yych = *(YYMARKER = ++YYCURSOR);
2533
40.0k
    if (yych == '_') goto yy216;
2534
12.7k
    goto yy48;
2535
12.7k
yy68:
2536
10.5k
    YYDEBUG(68, *YYCURSOR);
2537
10.5k
    ++YYCURSOR;
2538
10.5k
    YYDEBUG(69, *YYCURSOR);
2539
10.5k
    yyleng = YYCURSOR - SCNG(yy_text);
2540
10.5k
#line 2825 "Zend/zend_language_scanner.l"
2541
10.5k
    {
2542
10.5k
  BEGIN(ST_BACKQUOTE);
2543
10.5k
  RETURN_TOKEN('`');
2544
10.5k
}
2545
0
#line 2546 "Zend/zend_language_scanner.c"
2546
196k
yy70:
2547
196k
    YYDEBUG(70, *YYCURSOR);
2548
196k
    ++YYCURSOR;
2549
196k
    YYDEBUG(71, *YYCURSOR);
2550
196k
    yyleng = YYCURSOR - SCNG(yy_text);
2551
196k
#line 1973 "Zend/zend_language_scanner.l"
2552
196k
    {
2553
196k
  yy_push_state(ST_IN_SCRIPTING);
2554
196k
  enter_nesting('{');
2555
196k
  RETURN_TOKEN('{');
2556
196k
}
2557
0
#line 2558 "Zend/zend_language_scanner.c"
2558
25.9k
yy72:
2559
25.9k
    YYDEBUG(72, *YYCURSOR);
2560
25.9k
    yych = *++YYCURSOR;
2561
25.9k
    if (yych <= '>') {
2562
10.8k
      if (yych <= '<') goto yy9;
2563
1.37k
      if (yych <= '=') goto yy217;
2564
995
      goto yy219;
2565
15.0k
    } else {
2566
15.0k
      if (yych == '|') goto yy221;
2567
13.6k
      goto yy9;
2568
15.0k
    }
2569
150k
yy73:
2570
150k
    YYDEBUG(73, *YYCURSOR);
2571
150k
    ++YYCURSOR;
2572
150k
    YYDEBUG(74, *YYCURSOR);
2573
150k
    yyleng = YYCURSOR - SCNG(yy_text);
2574
150k
#line 1986 "Zend/zend_language_scanner.l"
2575
150k
    {
2576
150k
  RESET_DOC_COMMENT();
2577
150k
  if (!zend_stack_is_empty(&SCNG(state_stack))) {
2578
119k
    yy_pop_state();
2579
119k
  }
2580
150k
  RETURN_EXIT_NESTING_TOKEN('}');
2581
150k
}
2582
0
#line 2583 "Zend/zend_language_scanner.c"
2583
2.69k
yy75:
2584
2.69k
    YYDEBUG(75, *YYCURSOR);
2585
2.69k
    yych = *++YYCURSOR;
2586
2.69k
    if (yych == '=') goto yy223;
2587
3.89k
yy76:
2588
3.89k
    YYDEBUG(76, *YYCURSOR);
2589
3.89k
    yyleng = YYCURSOR - SCNG(yy_text);
2590
3.89k
#line 1845 "Zend/zend_language_scanner.l"
2591
3.89k
    {
2592
3.89k
  RETURN_TOKEN(T_IS_NOT_EQUAL);
2593
3.89k
}
2594
0
#line 2595 "Zend/zend_language_scanner.c"
2595
2.88k
yy77:
2596
2.88k
    YYDEBUG(77, *YYCURSOR);
2597
2.88k
    ++YYCURSOR;
2598
2.88k
    YYDEBUG(78, *YYCURSOR);
2599
2.88k
    yyleng = YYCURSOR - SCNG(yy_text);
2600
2.88k
#line 1422 "Zend/zend_language_scanner.l"
2601
2.88k
    {
2602
2.88k
  enter_nesting('[');
2603
2.88k
  RETURN_TOKEN(T_ATTRIBUTE);
2604
2.88k
}
2605
0
#line 2606 "Zend/zend_language_scanner.c"
2606
1.76M
yy79:
2607
1.76M
    YYDEBUG(79, *YYCURSOR);
2608
1.76M
    ++YYCURSOR;
2609
1.76M
    YYFILL(1);
2610
1.76M
    yych = *YYCURSOR;
2611
1.76M
    YYDEBUG(80, *YYCURSOR);
2612
1.76M
    if (yych <= '^') {
2613
461k
      if (yych <= '9') {
2614
349k
        if (yych >= '0') goto yy79;
2615
349k
      } else {
2616
111k
        if (yych <= '@') goto yy81;
2617
72.2k
        if (yych <= 'Z') goto yy79;
2618
72.2k
      }
2619
1.30M
    } else {
2620
1.30M
      if (yych <= '`') {
2621
3.31k
        if (yych <= '_') goto yy79;
2622
1.29M
      } else {
2623
1.29M
        if (yych <= 'z') goto yy79;
2624
359k
        if (yych >= 0x80) goto yy79;
2625
359k
      }
2626
1.30M
    }
2627
383k
yy81:
2628
383k
    YYDEBUG(81, *YYCURSOR);
2629
383k
    yyleng = YYCURSOR - SCNG(yy_text);
2630
383k
#line 2416 "Zend/zend_language_scanner.l"
2631
383k
    {
2632
383k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
2633
383k
}
2634
0
#line 2635 "Zend/zend_language_scanner.c"
2635
290
yy82:
2636
290
    YYDEBUG(82, *YYCURSOR);
2637
290
    ++YYCURSOR;
2638
290
    YYDEBUG(83, *YYCURSOR);
2639
290
    yyleng = YYCURSOR - SCNG(yy_text);
2640
290
#line 1889 "Zend/zend_language_scanner.l"
2641
290
    {
2642
290
  RETURN_TOKEN(T_MOD_EQUAL);
2643
290
}
2644
0
#line 2645 "Zend/zend_language_scanner.c"
2645
40.9k
yy84:
2646
40.9k
    YYDEBUG(84, *YYCURSOR);
2647
40.9k
    ++YYCURSOR;
2648
40.9k
    YYFILL(3);
2649
40.9k
    yych = *YYCURSOR;
2650
59.9k
yy85:
2651
59.9k
    YYDEBUG(85, *YYCURSOR);
2652
59.9k
    if (yych <= ' ') {
2653
18.6k
      if (yych <= '\f') {
2654
8.31k
        if (yych <= 0x08) goto yy86;
2655
7.49k
        if (yych <= '\n') goto yy84;
2656
10.3k
      } else {
2657
10.3k
        if (yych <= '\r') goto yy84;
2658
7.15k
        if (yych >= ' ') goto yy84;
2659
7.15k
      }
2660
41.2k
    } else {
2661
41.2k
      if (yych <= '$') {
2662
30.0k
        if (yych <= '"') goto yy86;
2663
29.6k
        if (yych <= '#') goto yy87;
2664
7.06k
        goto yy88;
2665
29.6k
      } else {
2666
11.1k
        if (yych <= '-') goto yy86;
2667
10.5k
        if (yych <= '.') goto yy92;
2668
7.72k
        if (yych <= '/') goto yy93;
2669
7.72k
      }
2670
41.2k
    }
2671
183k
yy86:
2672
183k
    YYDEBUG(86, *YYCURSOR);
2673
183k
    YYCURSOR = YYMARKER;
2674
183k
    if (yyaccept <= 48) {
2675
169k
      if (yyaccept <= 24) {
2676
168k
        if (yyaccept <= 12) {
2677
167k
          if (yyaccept <= 6) {
2678
125k
            if (yyaccept <= 3) {
2679
117k
              if (yyaccept <= 1) {
2680
105k
                if (yyaccept == 0) {
2681
9.22k
                  goto yy17;
2682
96.2k
                } else {
2683
96.2k
                  goto yy21;
2684
96.2k
                }
2685
105k
              } else {
2686
11.5k
                if (yyaccept == 2) {
2687
4.34k
                  goto yy9;
2688
7.24k
                } else {
2689
7.24k
                  goto yy31;
2690
7.24k
                }
2691
11.5k
              }
2692
117k
            } else {
2693
8.33k
              if (yyaccept <= 5) {
2694
8.08k
                if (yyaccept == 4) {
2695
7.77k
                  goto yy40;
2696
7.77k
                } else {
2697
309
                  goto yy125;
2698
309
                }
2699
8.08k
              } else {
2700
252
                goto yy129;
2701
252
              }
2702
8.33k
            }
2703
125k
          } else {
2704
41.8k
            if (yyaccept <= 9) {
2705
41.8k
              if (yyaccept <= 8) {
2706
41.8k
                if (yyaccept == 7) {
2707
41.8k
                  goto yy142;
2708
41.8k
                } else {
2709
0
                  goto yy163;
2710
0
                }
2711
41.8k
              } else {
2712
2
                goto yy173;
2713
2
              }
2714
41.8k
            } 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
41.8k
          }
2726
167k
        } else {
2727
1.59k
          if (yyaccept <= 18) {
2728
1.58k
            if (yyaccept <= 15) {
2729
1.55k
              if (yyaccept <= 14) {
2730
1.55k
                if (yyaccept == 13) {
2731
1.55k
                  goto yy213;
2732
1.55k
                } else {
2733
0
                  goto yy251;
2734
0
                }
2735
1.55k
              } else {
2736
0
                goto yy257;
2737
0
              }
2738
1.55k
            } else {
2739
31
              if (yyaccept <= 17) {
2740
0
                if (yyaccept == 16) {
2741
0
                  goto yy260;
2742
0
                } else {
2743
0
                  goto yy279;
2744
0
                }
2745
31
              } else {
2746
31
                goto yy283;
2747
31
              }
2748
31
            }
2749
1.58k
          } else {
2750
4
            if (yyaccept <= 21) {
2751
4
              if (yyaccept <= 20) {
2752
0
                if (yyaccept == 19) {
2753
0
                  goto yy295;
2754
0
                } else {
2755
0
                  goto yy306;
2756
0
                }
2757
4
              } else {
2758
4
                goto yy319;
2759
4
              }
2760
4
            } else {
2761
0
              if (yyaccept <= 23) {
2762
0
                if (yyaccept == 22) {
2763
0
                  goto yy331;
2764
0
                } else {
2765
0
                  goto yy334;
2766
0
                }
2767
0
              } else {
2768
0
                goto yy336;
2769
0
              }
2770
0
            }
2771
4
          }
2772
1.59k
        }
2773
168k
      } else {
2774
824
        if (yyaccept <= 36) {
2775
784
          if (yyaccept <= 30) {
2776
782
            if (yyaccept <= 27) {
2777
782
              if (yyaccept <= 26) {
2778
782
                if (yyaccept == 25) {
2779
0
                  goto yy339;
2780
782
                } else {
2781
782
                  goto yy89;
2782
782
                }
2783
782
              } else {
2784
0
                goto yy379;
2785
0
              }
2786
782
            } else {
2787
0
              if (yyaccept <= 29) {
2788
0
                if (yyaccept == 28) {
2789
0
                  goto yy388;
2790
0
                } else {
2791
0
                  goto yy390;
2792
0
                }
2793
0
              } else {
2794
0
                goto yy399;
2795
0
              }
2796
0
            }
2797
782
          } else {
2798
2
            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
2
            } else {
2809
2
              if (yyaccept <= 35) {
2810
0
                if (yyaccept == 34) {
2811
0
                  goto yy471;
2812
0
                } else {
2813
0
                  goto yy473;
2814
0
                }
2815
2
              } else {
2816
2
                goto yy476;
2817
2
              }
2818
2
            }
2819
2
          }
2820
784
        } else {
2821
40
          if (yyaccept <= 42) {
2822
40
            if (yyaccept <= 39) {
2823
0
              if (yyaccept <= 38) {
2824
0
                if (yyaccept == 37) {
2825
0
                  goto yy478;
2826
0
                } else {
2827
0
                  goto yy480;
2828
0
                }
2829
0
              } else {
2830
0
                goto yy482;
2831
0
              }
2832
40
            } else {
2833
40
              if (yyaccept <= 41) {
2834
40
                if (yyaccept == 40) {
2835
40
                  goto yy488;
2836
40
                } else {
2837
0
                  goto yy492;
2838
0
                }
2839
40
              } else {
2840
0
                goto yy501;
2841
0
              }
2842
40
            }
2843
40
          } else {
2844
0
            if (yyaccept <= 45) {
2845
0
              if (yyaccept <= 44) {
2846
0
                if (yyaccept == 43) {
2847
0
                  goto yy511;
2848
0
                } else {
2849
0
                  goto yy513;
2850
0
                }
2851
0
              } else {
2852
0
                goto yy516;
2853
0
              }
2854
0
            } 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
0
          }
2866
40
        }
2867
824
      }
2868
169k
    } else {
2869
13.6k
      if (yyaccept <= 72) {
2870
13.4k
        if (yyaccept <= 60) {
2871
13.3k
          if (yyaccept <= 54) {
2872
13.3k
            if (yyaccept <= 51) {
2873
6.95k
              if (yyaccept <= 50) {
2874
6.95k
                if (yyaccept == 49) {
2875
0
                  goto yy532;
2876
6.95k
                } else {
2877
6.95k
                  goto yy534;
2878
6.95k
                }
2879
6.95k
              } else {
2880
0
                goto yy576;
2881
0
              }
2882
6.95k
            } else {
2883
6.38k
              if (yyaccept <= 53) {
2884
6.38k
                if (yyaccept == 52) {
2885
0
                  goto yy579;
2886
6.38k
                } else {
2887
6.38k
                  goto yy583;
2888
6.38k
                }
2889
6.38k
              } else {
2890
0
                goto yy597;
2891
0
              }
2892
6.38k
            }
2893
13.3k
          } else {
2894
46
            if (yyaccept <= 57) {
2895
40
              if (yyaccept <= 56) {
2896
40
                if (yyaccept == 55) {
2897
40
                  goto yy607;
2898
40
                } else {
2899
0
                  goto yy611;
2900
0
                }
2901
40
              } else {
2902
0
                goto yy613;
2903
0
              }
2904
40
            } else {
2905
6
              if (yyaccept <= 59) {
2906
0
                if (yyaccept == 58) {
2907
0
                  goto yy615;
2908
0
                } else {
2909
0
                  goto yy654;
2910
0
                }
2911
6
              } else {
2912
6
                goto yy656;
2913
6
              }
2914
6
            }
2915
46
          }
2916
13.3k
        } else {
2917
32
          if (yyaccept <= 66) {
2918
32
            if (yyaccept <= 63) {
2919
0
              if (yyaccept <= 62) {
2920
0
                if (yyaccept == 61) {
2921
0
                  goto yy671;
2922
0
                } else {
2923
0
                  goto yy673;
2924
0
                }
2925
0
              } else {
2926
0
                goto yy675;
2927
0
              }
2928
32
            } else {
2929
32
              if (yyaccept <= 65) {
2930
32
                if (yyaccept == 64) {
2931
0
                  goto yy679;
2932
32
                } else {
2933
32
                  goto yy685;
2934
32
                }
2935
32
              } else {
2936
0
                goto yy690;
2937
0
              }
2938
32
            }
2939
32
          } else {
2940
0
            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
0
            } else {
2951
0
              if (yyaccept <= 71) {
2952
0
                if (yyaccept == 70) {
2953
0
                  goto yy730;
2954
0
                } else {
2955
0
                  goto yy735;
2956
0
                }
2957
0
              } else {
2958
0
                goto yy743;
2959
0
              }
2960
0
            }
2961
0
          }
2962
32
        }
2963
13.4k
      } else {
2964
227
        if (yyaccept <= 84) {
2965
181
          if (yyaccept <= 78) {
2966
143
            if (yyaccept <= 75) {
2967
143
              if (yyaccept <= 74) {
2968
143
                if (yyaccept == 73) {
2969
143
                  goto yy754;
2970
143
                } else {
2971
0
                  goto yy764;
2972
0
                }
2973
143
              } else {
2974
0
                goto yy768;
2975
0
              }
2976
143
            } 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
143
          } else {
2988
38
            if (yyaccept <= 81) {
2989
38
              if (yyaccept <= 80) {
2990
38
                if (yyaccept == 79) {
2991
20
                  goto yy801;
2992
20
                } else {
2993
18
                  goto yy804;
2994
18
                }
2995
38
              } else {
2996
0
                goto yy812;
2997
0
              }
2998
38
            } 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
38
          }
3010
181
        } else {
3011
46
          if (yyaccept <= 90) {
3012
4
            if (yyaccept <= 87) {
3013
4
              if (yyaccept <= 86) {
3014
2
                if (yyaccept == 85) {
3015
0
                  goto yy836;
3016
2
                } else {
3017
2
                  goto yy839;
3018
2
                }
3019
2
              } else {
3020
2
                goto yy854;
3021
2
              }
3022
4
            } else {
3023
0
              if (yyaccept <= 89) {
3024
0
                if (yyaccept == 88) {
3025
0
                  goto yy869;
3026
0
                } else {
3027
0
                  goto yy898;
3028
0
                }
3029
0
              } else {
3030
0
                goto yy903;
3031
0
              }
3032
0
            }
3033
42
          } else {
3034
42
            if (yyaccept <= 93) {
3035
24
              if (yyaccept <= 92) {
3036
24
                if (yyaccept == 91) {
3037
24
                  goto yy876;
3038
24
                } else {
3039
0
                  goto yy911;
3040
0
                }
3041
24
              } else {
3042
0
                goto yy915;
3043
0
              }
3044
24
            } else {
3045
18
              if (yyaccept <= 95) {
3046
18
                if (yyaccept == 94) {
3047
18
                  goto yy886;
3048
18
                } else {
3049
0
                  goto yy931;
3050
0
                }
3051
18
              } else {
3052
0
                goto yy951;
3053
0
              }
3054
18
            }
3055
42
          }
3056
46
        }
3057
227
      }
3058
13.6k
    }
3059
22.5k
yy87:
3060
22.5k
    YYDEBUG(87, *YYCURSOR);
3061
22.5k
    ++YYCURSOR;
3062
22.5k
    YYFILL(1);
3063
22.5k
    yych = *YYCURSOR;
3064
22.5k
    if (yych <= '\f') {
3065
16.3k
      if (yych <= 0x00) goto yy86;
3066
16.2k
      if (yych == '\n') goto yy227;
3067
14
      goto yy225;
3068
16.2k
    } else {
3069
6.21k
      if (yych <= '\r') goto yy227;
3070
5.66k
      if (yych == '[') goto yy86;
3071
5.60k
      goto yy225;
3072
5.66k
    }
3073
8.93k
yy88:
3074
8.93k
    YYDEBUG(88, *YYCURSOR);
3075
8.93k
    ++YYCURSOR;
3076
9.72k
yy89:
3077
9.72k
    YYDEBUG(89, *YYCURSOR);
3078
9.72k
    yyleng = YYCURSOR - SCNG(yy_text);
3079
9.72k
#line 1949 "Zend/zend_language_scanner.l"
3080
9.72k
    {
3081
9.72k
  yyless(1);
3082
9.72k
  RETURN_TOKEN(T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG);
3083
9.72k
}
3084
0
#line 3085 "Zend/zend_language_scanner.c"
3085
2.36k
yy90:
3086
2.36k
    YYDEBUG(90, *YYCURSOR);
3087
2.36k
    ++YYCURSOR;
3088
2.36k
    YYDEBUG(91, *YYCURSOR);
3089
2.36k
    yyleng = YYCURSOR - SCNG(yy_text);
3090
2.36k
#line 1925 "Zend/zend_language_scanner.l"
3091
2.36k
    {
3092
2.36k
  RETURN_TOKEN(T_BOOLEAN_AND);
3093
2.36k
}
3094
0
#line 3095 "Zend/zend_language_scanner.c"
3095
2.83k
yy92:
3096
2.83k
    YYDEBUG(92, *YYCURSOR);
3097
2.83k
    yych = *++YYCURSOR;
3098
2.83k
    if (yych == '.') goto yy229;
3099
576
    goto yy86;
3100
3.16k
yy93:
3101
3.16k
    YYDEBUG(93, *YYCURSOR);
3102
3.16k
    ++YYCURSOR;
3103
3.16k
    YYFILL(1);
3104
3.16k
    yych = *YYCURSOR;
3105
3.16k
    if (yych == '*') goto yy230;
3106
375
    if (yych == '/') goto yy225;
3107
360
    goto yy86;
3108
7.22k
yy94:
3109
7.22k
    YYDEBUG(94, *YYCURSOR);
3110
7.22k
    ++YYCURSOR;
3111
7.22k
    YYDEBUG(95, *YYCURSOR);
3112
7.22k
    yyleng = YYCURSOR - SCNG(yy_text);
3113
7.22k
#line 1901 "Zend/zend_language_scanner.l"
3114
7.22k
    {
3115
7.22k
  RETURN_TOKEN(T_AND_EQUAL);
3116
7.22k
}
3117
0
#line 3118 "Zend/zend_language_scanner.c"
3118
192k
yy96:
3119
192k
    YYDEBUG(96, *YYCURSOR);
3120
192k
    ++YYCURSOR;
3121
192k
    YYFILL(7);
3122
192k
    yych = *YYCURSOR;
3123
291k
yy97:
3124
291k
    YYDEBUG(97, *YYCURSOR);
3125
291k
    if (yybm[0+yych] & 1) {
3126
192k
      goto yy96;
3127
192k
    }
3128
99.4k
    switch (yych) {
3129
958
    case 'A':
3130
4.25k
    case 'a': goto yy98;
3131
440
    case 'B':
3132
1.83k
    case 'b': goto yy99;
3133
269
    case 'D':
3134
1.62k
    case 'd': goto yy100;
3135
843
    case 'F':
3136
5.40k
    case 'f': goto yy101;
3137
490
    case 'I':
3138
12.5k
    case 'i': goto yy102;
3139
5.53k
    case 'O':
3140
7.29k
    case 'o': goto yy103;
3141
2.34k
    case 'R':
3142
3.61k
    case 'r': goto yy104;
3143
698
    case 'S':
3144
6.61k
    case 's': goto yy105;
3145
153
    case 'U':
3146
4.93k
    case 'u': goto yy106;
3147
507
    case 'V':
3148
851
    case 'v': goto yy107;
3149
50.4k
    default:  goto yy86;
3150
99.4k
    }
3151
4.25k
yy98:
3152
4.25k
    YYDEBUG(98, *YYCURSOR);
3153
4.25k
    yych = *++YYCURSOR;
3154
4.25k
    if (yych == 'R') goto yy232;
3155
4.21k
    if (yych == 'r') goto yy232;
3156
2.62k
    goto yy86;
3157
2.62k
yy99:
3158
1.83k
    YYDEBUG(99, *YYCURSOR);
3159
1.83k
    yych = *++YYCURSOR;
3160
1.83k
    if (yych <= 'O') {
3161
504
      if (yych == 'I') goto yy233;
3162
504
      if (yych <= 'N') goto yy86;
3163
18
      goto yy234;
3164
1.32k
    } else {
3165
1.32k
      if (yych <= 'i') {
3166
706
        if (yych <= 'h') goto yy86;
3167
290
        goto yy233;
3168
706
      } else {
3169
621
        if (yych == 'o') goto yy234;
3170
349
        goto yy86;
3171
621
      }
3172
1.32k
    }
3173
1.62k
yy100:
3174
1.62k
    YYDEBUG(100, *YYCURSOR);
3175
1.62k
    yych = *++YYCURSOR;
3176
1.62k
    if (yych == 'O') goto yy235;
3177
1.62k
    if (yych == 'o') goto yy235;
3178
1.35k
    goto yy86;
3179
5.40k
yy101:
3180
5.40k
    YYDEBUG(101, *YYCURSOR);
3181
5.40k
    yych = *++YYCURSOR;
3182
5.40k
    if (yych == 'L') goto yy236;
3183
5.40k
    if (yych == 'l') goto yy236;
3184
5.22k
    goto yy86;
3185
12.5k
yy102:
3186
12.5k
    YYDEBUG(102, *YYCURSOR);
3187
12.5k
    yych = *++YYCURSOR;
3188
12.5k
    if (yych == 'N') goto yy237;
3189
12.1k
    if (yych == 'n') goto yy237;
3190
10.4k
    goto yy86;
3191
10.4k
yy103:
3192
7.29k
    YYDEBUG(103, *YYCURSOR);
3193
7.29k
    yych = *++YYCURSOR;
3194
7.29k
    if (yych == 'B') goto yy238;
3195
7.29k
    if (yych == 'b') goto yy238;
3196
4.96k
    goto yy86;
3197
4.96k
yy104:
3198
3.61k
    YYDEBUG(104, *YYCURSOR);
3199
3.61k
    yych = *++YYCURSOR;
3200
3.61k
    if (yych == 'E') goto yy239;
3201
3.61k
    if (yych == 'e') goto yy239;
3202
2.65k
    goto yy86;
3203
6.61k
yy105:
3204
6.61k
    YYDEBUG(105, *YYCURSOR);
3205
6.61k
    yych = *++YYCURSOR;
3206
6.61k
    if (yych == 'T') goto yy240;
3207
6.57k
    if (yych == 't') goto yy240;
3208
1.82k
    goto yy86;
3209
4.93k
yy106:
3210
4.93k
    YYDEBUG(106, *YYCURSOR);
3211
4.93k
    yych = *++YYCURSOR;
3212
4.93k
    if (yych == 'N') goto yy241;
3213
4.93k
    if (yych == 'n') goto yy241;
3214
2.70k
    goto yy86;
3215
2.70k
yy107:
3216
851
    YYDEBUG(107, *YYCURSOR);
3217
851
    yych = *++YYCURSOR;
3218
851
    if (yych == 'O') goto yy242;
3219
851
    if (yych == 'o') goto yy242;
3220
756
    goto yy86;
3221
1.70k
yy108:
3222
1.70k
    YYDEBUG(108, *YYCURSOR);
3223
1.70k
    yych = *++YYCURSOR;
3224
1.70k
    if (yych == '=') goto yy243;
3225
1.67k
    YYDEBUG(109, *YYCURSOR);
3226
1.67k
    yyleng = YYCURSOR - SCNG(yy_text);
3227
1.67k
#line 1873 "Zend/zend_language_scanner.l"
3228
1.67k
    {
3229
1.67k
  RETURN_TOKEN(T_POW);
3230
1.67k
}
3231
0
#line 3232 "Zend/zend_language_scanner.c"
3232
968
yy110:
3233
968
    YYDEBUG(110, *YYCURSOR);
3234
968
    ++YYCURSOR;
3235
968
    YYDEBUG(111, *YYCURSOR);
3236
968
    yyleng = YYCURSOR - SCNG(yy_text);
3237
968
#line 1869 "Zend/zend_language_scanner.l"
3238
968
    {
3239
968
  RETURN_TOKEN(T_MUL_EQUAL);
3240
968
}
3241
0
#line 3242 "Zend/zend_language_scanner.c"
3242
18.5k
yy112:
3243
18.5k
    YYDEBUG(112, *YYCURSOR);
3244
18.5k
    ++YYCURSOR;
3245
18.5k
    YYDEBUG(113, *YYCURSOR);
3246
18.5k
    yyleng = YYCURSOR - SCNG(yy_text);
3247
18.5k
#line 1825 "Zend/zend_language_scanner.l"
3248
18.5k
    {
3249
18.5k
  RETURN_TOKEN(T_INC);
3250
18.5k
}
3251
0
#line 3252 "Zend/zend_language_scanner.c"
3252
2.32k
yy114:
3253
2.32k
    YYDEBUG(114, *YYCURSOR);
3254
2.32k
    ++YYCURSOR;
3255
2.32k
    YYDEBUG(115, *YYCURSOR);
3256
2.32k
    yyleng = YYCURSOR - SCNG(yy_text);
3257
2.32k
#line 1861 "Zend/zend_language_scanner.l"
3258
2.32k
    {
3259
2.32k
  RETURN_TOKEN(T_PLUS_EQUAL);
3260
2.32k
}
3261
0
#line 3262 "Zend/zend_language_scanner.c"
3262
2.79k
yy116:
3263
2.79k
    YYDEBUG(116, *YYCURSOR);
3264
2.79k
    ++YYCURSOR;
3265
2.79k
    YYDEBUG(117, *YYCURSOR);
3266
2.79k
    yyleng = YYCURSOR - SCNG(yy_text);
3267
2.79k
#line 1829 "Zend/zend_language_scanner.l"
3268
2.79k
    {
3269
2.79k
  RETURN_TOKEN(T_DEC);
3270
2.79k
}
3271
0
#line 3272 "Zend/zend_language_scanner.c"
3272
1.37k
yy118:
3273
1.37k
    YYDEBUG(118, *YYCURSOR);
3274
1.37k
    ++YYCURSOR;
3275
1.37k
    YYDEBUG(119, *YYCURSOR);
3276
1.37k
    yyleng = YYCURSOR - SCNG(yy_text);
3277
1.37k
#line 1865 "Zend/zend_language_scanner.l"
3278
1.37k
    {
3279
1.37k
  RETURN_TOKEN(T_MINUS_EQUAL);
3280
1.37k
}
3281
0
#line 3282 "Zend/zend_language_scanner.c"
3282
49.0k
yy120:
3283
49.0k
    YYDEBUG(120, *YYCURSOR);
3284
49.0k
    ++YYCURSOR;
3285
49.0k
    YYDEBUG(121, *YYCURSOR);
3286
49.0k
    yyleng = YYCURSOR - SCNG(yy_text);
3287
49.0k
#line 1586 "Zend/zend_language_scanner.l"
3288
49.0k
    {
3289
49.0k
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
3290
49.0k
  RETURN_TOKEN(T_OBJECT_OPERATOR);
3291
49.0k
}
3292
0
#line 3293 "Zend/zend_language_scanner.c"
3293
59.6k
yy122:
3294
59.6k
    YYDEBUG(122, *YYCURSOR);
3295
59.6k
    yych = *++YYCURSOR;
3296
59.6k
    if (yych == '.') goto yy245;
3297
2.54k
    goto yy86;
3298
251k
yy123:
3299
251k
    YYDEBUG(123, *YYCURSOR);
3300
251k
    yyaccept = 5;
3301
251k
    YYMARKER = ++YYCURSOR;
3302
251k
    YYFILL(2);
3303
251k
    yych = *YYCURSOR;
3304
270k
yy124:
3305
270k
    YYDEBUG(124, *YYCURSOR);
3306
270k
    if (yych <= 'E') {
3307
256k
      if (yych <= '/') goto yy125;
3308
246k
      if (yych <= '9') goto yy123;
3309
10.2k
      if (yych >= 'E') goto yy135;
3310
13.3k
    } else {
3311
13.3k
      if (yych <= '_') {
3312
930
        if (yych >= '_') goto yy247;
3313
12.4k
      } else {
3314
12.4k
        if (yych == 'e') goto yy135;
3315
12.4k
      }
3316
13.3k
    }
3317
40.3k
yy125:
3318
40.3k
    YYDEBUG(125, *YYCURSOR);
3319
40.3k
    yyleng = YYCURSOR - SCNG(yy_text);
3320
40.3k
#line 2232 "Zend/zend_language_scanner.l"
3321
40.3k
    {
3322
40.3k
  const char *end;
3323
40.3k
  size_t len = yyleng;
3324
40.3k
  char *dnum = yytext;
3325
40.3k
  bool contains_underscores = (memchr(dnum, '_', len) != NULL);
3326
3327
40.3k
  if (contains_underscores) {
3328
396
    dnum = estrndup(dnum, len);
3329
396
    strip_underscores(dnum, &len);
3330
396
  }
3331
3332
40.3k
  ZVAL_DOUBLE(zendlval, zend_strtod(dnum, &end));
3333
  /* errno isn't checked since we allow HUGE_VAL/INF overflow */
3334
40.3k
  ZEND_ASSERT(end == dnum + len);
3335
40.3k
  if (contains_underscores) {
3336
396
    efree(dnum);
3337
396
  }
3338
40.3k
  RETURN_TOKEN_WITH_VAL(T_DNUMBER);
3339
40.3k
}
3340
0
#line 3341 "Zend/zend_language_scanner.c"
3341
47.3k
yy126:
3342
47.3k
    YYDEBUG(126, *YYCURSOR);
3343
47.3k
    ++YYCURSOR;
3344
47.3k
    YYDEBUG(127, *YYCURSOR);
3345
47.3k
    yyleng = YYCURSOR - SCNG(yy_text);
3346
47.3k
#line 1885 "Zend/zend_language_scanner.l"
3347
47.3k
    {
3348
47.3k
  RETURN_TOKEN(T_CONCAT_EQUAL);
3349
47.3k
}
3350
0
#line 3351 "Zend/zend_language_scanner.c"
3351
34.3k
yy128:
3352
34.3k
    YYDEBUG(128, *YYCURSOR);
3353
34.3k
    yyaccept = 6;
3354
34.3k
    yych = *(YYMARKER = ++YYCURSOR);
3355
34.3k
    if (yych == '*') goto yy248;
3356
34.3k
yy129:
3357
34.3k
    YYDEBUG(129, *YYCURSOR);
3358
34.3k
    yyleng = YYCURSOR - SCNG(yy_text);
3359
34.3k
#line 2483 "Zend/zend_language_scanner.l"
3360
34.3k
    {
3361
34.3k
  int doc_com;
3362
3363
34.3k
  if (yyleng > 2) {
3364
2.96k
    doc_com = 1;
3365
2.96k
    RESET_DOC_COMMENT();
3366
31.4k
  } else {
3367
31.4k
    doc_com = 0;
3368
31.4k
  }
3369
3370
1.19M
  while (YYCURSOR < YYLIMIT) {
3371
1.19M
    if (*YYCURSOR++ == '*' && *YYCURSOR == '/') {
3372
33.1k
      break;
3373
33.1k
    }
3374
1.19M
  }
3375
3376
34.3k
  if (YYCURSOR < YYLIMIT) {
3377
33.1k
    YYCURSOR++;
3378
33.1k
  } else {
3379
1.18k
    zend_throw_exception_ex(zend_ce_parse_error, 0, "Unterminated comment starting line %" PRIu32, CG(zend_lineno));
3380
1.18k
    if (PARSER_MODE()) {
3381
12
      RETURN_TOKEN(T_ERROR);
3382
12
    }
3383
1.18k
  }
3384
3385
34.3k
  yyleng = YYCURSOR - SCNG(yy_text);
3386
34.3k
  HANDLE_NEWLINES(yytext, yyleng);
3387
3388
34.3k
  if (doc_com) {
3389
2.96k
    CG(doc_comment) = zend_string_init(yytext, yyleng, 0);
3390
2.96k
    RETURN_OR_SKIP_TOKEN(T_DOC_COMMENT);
3391
2.96k
  }
3392
3393
31.3k
  RETURN_OR_SKIP_TOKEN(T_COMMENT);
3394
31.3k
}
3395
0
#line 3396 "Zend/zend_language_scanner.c"
3396
31.6k
yy130:
3397
31.6k
    YYDEBUG(130, *YYCURSOR);
3398
31.6k
    ++YYCURSOR;
3399
31.6k
    goto yy13;
3400
1.57k
yy131:
3401
1.57k
    YYDEBUG(131, *YYCURSOR);
3402
1.57k
    ++YYCURSOR;
3403
1.57k
    YYDEBUG(132, *YYCURSOR);
3404
1.57k
    yyleng = YYCURSOR - SCNG(yy_text);
3405
1.57k
#line 1881 "Zend/zend_language_scanner.l"
3406
1.57k
    {
3407
1.57k
  RETURN_TOKEN(T_DIV_EQUAL);
3408
1.57k
}
3409
0
#line 3410 "Zend/zend_language_scanner.c"
3410
18.3k
yy133:
3411
18.3k
    YYDEBUG(133, *YYCURSOR);
3412
18.3k
    yyaccept = 5;
3413
18.3k
    yych = *(YYMARKER = ++YYCURSOR);
3414
18.3k
    if (yych == '_') goto yy125;
3415
18.3k
    goto yy124;
3416
18.3k
yy134:
3417
1.29k
    YYDEBUG(134, *YYCURSOR);
3418
1.29k
    ++YYCURSOR;
3419
1.29k
    YYFILL(1);
3420
1.29k
    yych = *YYCURSOR;
3421
1.29k
    if (yybm[0+yych] & 8) {
3422
642
      goto yy249;
3423
642
    }
3424
653
    goto yy86;
3425
9.96k
yy135:
3426
9.96k
    YYDEBUG(135, *YYCURSOR);
3427
9.96k
    yych = *++YYCURSOR;
3428
9.96k
    if (yych <= ',') {
3429
1.71k
      if (yych == '+') goto yy252;
3430
1.18k
      goto yy86;
3431
8.25k
    } else {
3432
8.25k
      if (yych <= '-') goto yy252;
3433
7.86k
      if (yych <= '/') goto yy86;
3434
7.81k
      if (yych <= '9') goto yy253;
3435
1.17k
      goto yy86;
3436
7.81k
    }
3437
198
yy136:
3438
198
    YYDEBUG(136, *YYCURSOR);
3439
198
    ++YYCURSOR;
3440
198
    YYFILL(1);
3441
198
    yych = *YYCURSOR;
3442
198
    if (yybm[0+yych] & 16) {
3443
28
      goto yy255;
3444
28
    }
3445
170
    goto yy86;
3446
2.11k
yy137:
3447
2.11k
    YYDEBUG(137, *YYCURSOR);
3448
2.11k
    ++YYCURSOR;
3449
2.11k
    YYFILL(1);
3450
2.11k
    yych = *YYCURSOR;
3451
2.11k
    if (yybm[0+yych] & 32) {
3452
1.86k
      goto yy258;
3453
1.86k
    }
3454
251
    goto yy86;
3455
4.60k
yy138:
3456
4.60k
    YYDEBUG(138, *YYCURSOR);
3457
4.60k
    ++YYCURSOR;
3458
4.60k
    YYFILL(1);
3459
4.60k
    yych = *YYCURSOR;
3460
4.60k
    if (yybm[256+yych] & 64) {
3461
742
      goto yy32;
3462
742
    }
3463
3.85k
    goto yy86;
3464
44.1k
yy139:
3465
44.1k
    YYDEBUG(139, *YYCURSOR);
3466
44.1k
    ++YYCURSOR;
3467
44.1k
    YYDEBUG(140, *YYCURSOR);
3468
44.1k
    yyleng = YYCURSOR - SCNG(yy_text);
3469
44.1k
#line 1613 "Zend/zend_language_scanner.l"
3470
44.1k
    {
3471
44.1k
  RETURN_TOKEN(T_PAAMAYIM_NEKUDOTAYIM);
3472
44.1k
}
3473
0
#line 3474 "Zend/zend_language_scanner.c"
3474
155k
yy141:
3475
155k
    YYDEBUG(141, *YYCURSOR);
3476
155k
    yyaccept = 7;
3477
155k
    yych = *(YYMARKER = ++YYCURSOR);
3478
155k
    if (yych <= ';') goto yy142;
3479
135k
    if (yych <= '<') goto yy261;
3480
11.1k
    if (yych <= '=') goto yy263;
3481
73.1k
yy142:
3482
73.1k
    YYDEBUG(142, *YYCURSOR);
3483
73.1k
    yyleng = YYCURSOR - SCNG(yy_text);
3484
73.1k
#line 1941 "Zend/zend_language_scanner.l"
3485
73.1k
    {
3486
73.1k
  RETURN_TOKEN(T_SL);
3487
73.1k
}
3488
0
#line 3489 "Zend/zend_language_scanner.c"
3489
2.30k
yy143:
3490
2.30k
    YYDEBUG(143, *YYCURSOR);
3491
2.30k
    yych = *++YYCURSOR;
3492
2.30k
    if (yych == '>') goto yy265;
3493
2.01k
    YYDEBUG(144, *YYCURSOR);
3494
2.01k
    yyleng = YYCURSOR - SCNG(yy_text);
3495
2.01k
#line 1853 "Zend/zend_language_scanner.l"
3496
2.01k
    {
3497
2.01k
  RETURN_TOKEN(T_IS_SMALLER_OR_EQUAL);
3498
2.01k
}
3499
0
#line 3500 "Zend/zend_language_scanner.c"
3500
1.74k
yy145:
3501
1.74k
    YYDEBUG(145, *YYCURSOR);
3502
1.74k
    ++YYCURSOR;
3503
1.74k
    goto yy76;
3504
12.3k
yy146:
3505
12.3k
    YYDEBUG(146, *YYCURSOR);
3506
12.3k
    yych = *++YYCURSOR;
3507
12.3k
    if (yych == '=') goto yy267;
3508
8.92k
    YYDEBUG(147, *YYCURSOR);
3509
8.92k
    yyleng = YYCURSOR - SCNG(yy_text);
3510
8.92k
#line 1841 "Zend/zend_language_scanner.l"
3511
8.92k
    {
3512
8.92k
  RETURN_TOKEN(T_IS_EQUAL);
3513
8.92k
}
3514
0
#line 3515 "Zend/zend_language_scanner.c"
3515
8.52k
yy148:
3516
8.52k
    YYDEBUG(148, *YYCURSOR);
3517
8.52k
    ++YYCURSOR;
3518
8.52k
    YYDEBUG(149, *YYCURSOR);
3519
8.52k
    yyleng = YYCURSOR - SCNG(yy_text);
3520
8.52k
#line 1809 "Zend/zend_language_scanner.l"
3521
8.52k
    {
3522
8.52k
  RETURN_TOKEN(T_DOUBLE_ARROW);
3523
8.52k
}
3524
0
#line 3525 "Zend/zend_language_scanner.c"
3525
1.21k
yy150:
3526
1.21k
    YYDEBUG(150, *YYCURSOR);
3527
1.21k
    ++YYCURSOR;
3528
1.21k
    YYDEBUG(151, *YYCURSOR);
3529
1.21k
    yyleng = YYCURSOR - SCNG(yy_text);
3530
1.21k
#line 1857 "Zend/zend_language_scanner.l"
3531
1.21k
    {
3532
1.21k
  RETURN_TOKEN(T_IS_GREATER_OR_EQUAL);
3533
1.21k
}
3534
0
#line 3535 "Zend/zend_language_scanner.c"
3535
2.05k
yy152:
3536
2.05k
    YYDEBUG(152, *YYCURSOR);
3537
2.05k
    yych = *++YYCURSOR;
3538
2.05k
    if (yych == '=') goto yy269;
3539
1.84k
    YYDEBUG(153, *YYCURSOR);
3540
1.84k
    yyleng = YYCURSOR - SCNG(yy_text);
3541
1.84k
#line 1945 "Zend/zend_language_scanner.l"
3542
1.84k
    {
3543
1.84k
  RETURN_TOKEN(T_SR);
3544
1.84k
}
3545
0
#line 3546 "Zend/zend_language_scanner.c"
3546
18.4k
yy154:
3547
18.4k
    YYDEBUG(154, *YYCURSOR);
3548
18.4k
    yych = *++YYCURSOR;
3549
18.4k
    if (yych == '>') goto yy271;
3550
1.80k
    goto yy86;
3551
28.7k
yy155:
3552
28.7k
    YYDEBUG(155, *YYCURSOR);
3553
28.7k
    yych = *++YYCURSOR;
3554
28.7k
    if (yych == '\n') goto yy273;
3555
24.8k
    if (yych == '\r') goto yy274;
3556
28.7k
yy156:
3557
28.7k
    YYDEBUG(156, *YYCURSOR);
3558
28.7k
    yyleng = YYCURSOR - SCNG(yy_text);
3559
28.7k
#line 2525 "Zend/zend_language_scanner.l"
3560
28.7k
    {
3561
28.7k
  BEGIN(INITIAL);
3562
28.7k
  if (yytext[yyleng-1] != '>') {
3563
3.90k
    CG(increment_lineno) = 1;
3564
3.90k
  }
3565
28.7k
  if (PARSER_MODE()) {
3566
22.4k
    RETURN_TOKEN(';');  /* implicit ';' at php-end tag */
3567
22.4k
  }
3568
6.26k
  RETURN_TOKEN(T_CLOSE_TAG);
3569
6.26k
}
3570
0
#line 3571 "Zend/zend_language_scanner.c"
3571
10.1k
yy157:
3572
10.1k
    YYDEBUG(157, *YYCURSOR);
3573
10.1k
    yych = *++YYCURSOR;
3574
10.1k
    if (yych == '=') goto yy275;
3575
9.22k
    YYDEBUG(158, *YYCURSOR);
3576
9.22k
    yyleng = YYCURSOR - SCNG(yy_text);
3577
9.22k
#line 1621 "Zend/zend_language_scanner.l"
3578
9.22k
    {
3579
9.22k
  RETURN_TOKEN(T_COALESCE);
3580
9.22k
}
3581
0
#line 3582 "Zend/zend_language_scanner.c"
3582
2.33k
yy159:
3583
2.33k
    YYDEBUG(159, *YYCURSOR);
3584
2.33k
    yyaccept = 4;
3585
2.33k
    yych = *(YYMARKER = ++YYCURSOR);
3586
2.33k
    if (yych == 'S') goto yy277;
3587
1.78k
    if (yych == 's') goto yy277;
3588
306
    goto yy48;
3589
1.22k
yy160:
3590
1.22k
    YYDEBUG(160, *YYCURSOR);
3591
1.22k
    yyaccept = 4;
3592
1.22k
    yych = *(YYMARKER = ++YYCURSOR);
3593
1.22k
    if (yych == 'D') goto yy278;
3594
1.12k
    if (yych == 'd') goto yy278;
3595
421
    goto yy48;
3596
13.7k
yy161:
3597
13.7k
    YYDEBUG(161, *YYCURSOR);
3598
13.7k
    yyaccept = 4;
3599
13.7k
    yych = *(YYMARKER = ++YYCURSOR);
3600
13.7k
    if (yych == 'R') goto yy280;
3601
13.5k
    if (yych == 'r') goto yy280;
3602
3.84k
    goto yy48;
3603
12.3k
yy162:
3604
12.3k
    YYDEBUG(162, *YYCURSOR);
3605
12.3k
    yyaccept = 8;
3606
12.3k
    yych = *(YYMARKER = ++YYCURSOR);
3607
12.3k
    if (yybm[256+yych] & 128) {
3608
2.35k
      goto yy47;
3609
2.35k
    }
3610
10.0k
    if (yych == '\\') goto yy164;
3611
10.0k
yy163:
3612
10.0k
    YYDEBUG(163, *YYCURSOR);
3613
10.0k
    yyleng = YYCURSOR - SCNG(yy_text);
3614
10.0k
#line 1509 "Zend/zend_language_scanner.l"
3615
10.0k
    {
3616
10.0k
  RETURN_TOKEN_WITH_IDENT(T_AS);
3617
10.0k
}
3618
0
#line 3619 "Zend/zend_language_scanner.c"
3619
13.4k
yy164:
3620
13.4k
    YYDEBUG(164, *YYCURSOR);
3621
13.4k
    ++YYCURSOR;
3622
13.4k
    YYFILL(1);
3623
13.4k
    yych = *YYCURSOR;
3624
13.4k
    if (yych <= '_') {
3625
10.1k
      if (yych <= '@') goto yy86;
3626
6.84k
      if (yych <= 'Z') goto yy281;
3627
2.49k
      if (yych <= '^') goto yy86;
3628
57
      goto yy281;
3629
3.22k
    } else {
3630
3.22k
      if (yych <= '`') goto yy86;
3631
3.16k
      if (yych <= 'z') goto yy281;
3632
1.36k
      if (yych <= 0x7F) goto yy86;
3633
962
      goto yy281;
3634
1.36k
    }
3635
36
yy165:
3636
36
    YYDEBUG(165, *YYCURSOR);
3637
36
    yych = *++YYCURSOR;
3638
36
    if (yych == '<') goto yy284;
3639
28
    goto yy86;
3640
1.92k
yy166:
3641
1.92k
    YYDEBUG(166, *YYCURSOR);
3642
1.92k
    yyaccept = 4;
3643
1.92k
    yych = *(YYMARKER = ++YYCURSOR);
3644
1.92k
    if (yych == 'E') goto yy285;
3645
1.89k
    if (yych == 'e') goto yy285;
3646
1.31k
    goto yy48;
3647
27.3k
yy167:
3648
27.3k
    YYDEBUG(167, *YYCURSOR);
3649
27.3k
    yyaccept = 4;
3650
27.3k
    yych = *(YYMARKER = ++YYCURSOR);
3651
27.3k
    if (yych <= 'T') {
3652
1.58k
      if (yych <= 'L') {
3653
1.55k
        if (yych <= 'K') goto yy48;
3654
555
        goto yy286;
3655
1.55k
      } else {
3656
33
        if (yych <= 'R') goto yy48;
3657
31
        if (yych <= 'S') goto yy287;
3658
16
        goto yy288;
3659
31
      }
3660
25.8k
    } else {
3661
25.8k
      if (yych <= 'r') {
3662
7.22k
        if (yych == 'l') goto yy286;
3663
1.59k
        goto yy48;
3664
18.5k
      } else {
3665
18.5k
        if (yych <= 's') goto yy287;
3666
16.3k
        if (yych <= 't') goto yy288;
3667
87
        goto yy48;
3668
16.3k
      }
3669
25.8k
    }
3670
37.3k
yy168:
3671
37.3k
    YYDEBUG(168, *YYCURSOR);
3672
37.3k
    yyaccept = 4;
3673
37.3k
    yych = *(YYMARKER = ++YYCURSOR);
3674
37.3k
    if (yych <= 'O') {
3675
2.10k
      if (yych == 'A') goto yy289;
3676
1.79k
      if (yych <= 'N') goto yy48;
3677
64
      goto yy290;
3678
35.2k
    } else {
3679
35.2k
      if (yych <= 'a') {
3680
33.5k
        if (yych <= '`') goto yy48;
3681
33.2k
        goto yy289;
3682
33.5k
      } else {
3683
1.71k
        if (yych == 'o') goto yy290;
3684
640
        goto yy48;
3685
1.71k
      }
3686
35.2k
    }
3687
18.6k
yy169:
3688
18.6k
    YYDEBUG(169, *YYCURSOR);
3689
18.6k
    yyaccept = 4;
3690
18.6k
    yych = *(YYMARKER = ++YYCURSOR);
3691
18.6k
    if (yych == 'N') goto yy291;
3692
17.4k
    if (yych == 'n') goto yy291;
3693
2.58k
    goto yy48;
3694
5.85k
yy170:
3695
5.85k
    YYDEBUG(170, *YYCURSOR);
3696
5.85k
    yyaccept = 4;
3697
5.85k
    yych = *(YYMARKER = ++YYCURSOR);
3698
5.85k
    if (yych <= 'F') {
3699
171
      if (yych == 'C') goto yy292;
3700
154
      if (yych <= 'E') goto yy48;
3701
42
      goto yy293;
3702
5.68k
    } else {
3703
5.68k
      if (yych <= 'c') {
3704
3.02k
        if (yych <= 'b') goto yy48;
3705
2.53k
        goto yy292;
3706
3.02k
      } else {
3707
2.66k
        if (yych == 'f') goto yy293;
3708
1.11k
        goto yy48;
3709
2.66k
      }
3710
5.68k
    }
3711
911
yy171:
3712
911
    YYDEBUG(171, *YYCURSOR);
3713
911
    yyaccept = 4;
3714
911
    yych = *(YYMARKER = ++YYCURSOR);
3715
911
    if (yych == 'E') goto yy294;
3716
868
    if (yych == 'e') goto yy294;
3717
694
    goto yy48;
3718
6.22k
yy172:
3719
6.22k
    YYDEBUG(172, *YYCURSOR);
3720
6.22k
    yyaccept = 9;
3721
6.22k
    yych = *(YYMARKER = ++YYCURSOR);
3722
6.22k
    if (yybm[256+yych] & 128) {
3723
5.79k
      goto yy47;
3724
5.79k
    }
3725
427
    if (yych == '\\') goto yy164;
3726
365
yy173:
3727
365
    YYDEBUG(173, *YYCURSOR);
3728
365
    yyleng = YYCURSOR - SCNG(yy_text);
3729
365
#line 1477 "Zend/zend_language_scanner.l"
3730
365
    {
3731
365
  RETURN_TOKEN_WITH_IDENT(T_DO);
3732
365
}
3733
0
#line 3734 "Zend/zend_language_scanner.c"
3734
40.1k
yy174:
3735
40.1k
    YYDEBUG(174, *YYCURSOR);
3736
40.1k
    yyaccept = 4;
3737
40.1k
    yych = *(YYMARKER = ++YYCURSOR);
3738
40.1k
    if (yych == 'H') goto yy296;
3739
40.0k
    if (yych == 'h') goto yy296;
3740
1.84k
    goto yy48;
3741
2.55k
yy175:
3742
2.55k
    YYDEBUG(175, *YYCURSOR);
3743
2.55k
    yyaccept = 4;
3744
2.55k
    yych = *(YYMARKER = ++YYCURSOR);
3745
2.55k
    if (yych == 'S') goto yy297;
3746
2.45k
    if (yych == 's') goto yy297;
3747
961
    goto yy48;
3748
3.73k
yy176:
3749
3.73k
    YYDEBUG(176, *YYCURSOR);
3750
3.73k
    yyaccept = 4;
3751
3.73k
    yych = *(YYMARKER = ++YYCURSOR);
3752
3.73k
    if (yych == 'P') goto yy298;
3753
2.20k
    if (yych == 'p') goto yy298;
3754
1.59k
    goto yy48;
3755
22.6k
yy177:
3756
22.6k
    YYDEBUG(177, *YYCURSOR);
3757
22.6k
    yyaccept = 4;
3758
22.6k
    yych = *(YYMARKER = ++YYCURSOR);
3759
22.6k
    if (yych <= 'U') {
3760
6.19k
      if (yych == 'D') goto yy299;
3761
405
      if (yych <= 'T') goto yy48;
3762
24
      goto yy300;
3763
16.4k
    } else {
3764
16.4k
      if (yych <= 'd') {
3765
4.44k
        if (yych <= 'c') goto yy48;
3766
3.59k
        goto yy299;
3767
12.0k
      } else {
3768
12.0k
        if (yych == 'u') goto yy300;
3769
668
        goto yy48;
3770
12.0k
      }
3771
16.4k
    }
3772
2.29k
yy178:
3773
2.29k
    YYDEBUG(178, *YYCURSOR);
3774
2.29k
    yyaccept = 4;
3775
2.29k
    yych = *(YYMARKER = ++YYCURSOR);
3776
2.29k
    if (yych == 'A') goto yy301;
3777
2.28k
    if (yych == 'a') goto yy301;
3778
710
    goto yy48;
3779
23.6k
yy179:
3780
23.6k
    YYDEBUG(179, *YYCURSOR);
3781
23.6k
    yyaccept = 4;
3782
23.6k
    yych = *(YYMARKER = ++YYCURSOR);
3783
23.6k
    if (yych <= 'T') {
3784
1.76k
      if (yych == 'I') goto yy302;
3785
1.72k
      if (yych <= 'S') goto yy48;
3786
172
      goto yy303;
3787
21.9k
    } else {
3788
21.9k
      if (yych <= 'i') {
3789
12.2k
        if (yych <= 'h') goto yy48;
3790
440
        goto yy302;
3791
12.2k
      } else {
3792
9.65k
        if (yych == 't') goto yy303;
3793
5.32k
        goto yy48;
3794
9.65k
      }
3795
21.9k
    }
3796
3.59k
yy180:
3797
3.59k
    YYDEBUG(180, *YYCURSOR);
3798
3.59k
    yyaccept = 4;
3799
3.59k
    yych = *(YYMARKER = ++YYCURSOR);
3800
3.59k
    if (yych == 'N') goto yy304;
3801
2.96k
    if (yych == 'n') goto yy304;
3802
1.78k
    goto yy48;
3803
1.92k
yy181:
3804
1.92k
    YYDEBUG(181, *YYCURSOR);
3805
1.92k
    yyaccept = 10;
3806
1.92k
    yych = *(YYMARKER = ++YYCURSOR);
3807
1.92k
    if (yybm[256+yych] & 128) {
3808
303
      goto yy47;
3809
303
    }
3810
1.61k
    if (yych == '\\') goto yy164;
3811
1.61k
yy182:
3812
1.61k
    YYDEBUG(182, *YYCURSOR);
3813
1.61k
    yyleng = YYCURSOR - SCNG(yy_text);
3814
1.61k
#line 1406 "Zend/zend_language_scanner.l"
3815
1.61k
    {
3816
1.61k
  RETURN_TOKEN_WITH_IDENT(T_FN);
3817
1.61k
}
3818
0
#line 3819 "Zend/zend_language_scanner.c"
3819
54.1k
yy183:
3820
54.1k
    YYDEBUG(183, *YYCURSOR);
3821
54.1k
    yyaccept = 4;
3822
54.1k
    yych = *(YYMARKER = ++YYCURSOR);
3823
54.1k
    if (yych == 'R') goto yy305;
3824
53.7k
    if (yych == 'r') goto yy305;
3825
24.2k
    goto yy48;
3826
38.1k
yy184:
3827
38.1k
    YYDEBUG(184, *YYCURSOR);
3828
38.1k
    yyaccept = 4;
3829
38.1k
    yych = *(YYMARKER = ++YYCURSOR);
3830
38.1k
    if (yych == 'N') goto yy307;
3831
37.9k
    if (yych == 'n') goto yy307;
3832
561
    goto yy48;
3833
2.97k
yy185:
3834
2.97k
    YYDEBUG(185, *YYCURSOR);
3835
2.97k
    yyaccept = 4;
3836
2.97k
    yych = *(YYMARKER = ++YYCURSOR);
3837
2.97k
    if (yych == 'O') goto yy308;
3838
1.74k
    if (yych == 'o') goto yy308;
3839
147
    goto yy48;
3840
944
yy186:
3841
944
    YYDEBUG(186, *YYCURSOR);
3842
944
    yyaccept = 4;
3843
944
    yych = *(YYMARKER = ++YYCURSOR);
3844
944
    if (yych == 'T') goto yy309;
3845
344
    if (yych == 't') goto yy309;
3846
23
    goto yy48;
3847
11.9k
yy187:
3848
11.9k
    YYDEBUG(187, *YYCURSOR);
3849
11.9k
    yyaccept = 11;
3850
11.9k
    yych = *(YYMARKER = ++YYCURSOR);
3851
11.9k
    if (yybm[256+yych] & 128) {
3852
471
      goto yy47;
3853
471
    }
3854
11.5k
    if (yych == '\\') goto yy164;
3855
11.5k
yy188:
3856
11.5k
    YYDEBUG(188, *YYCURSOR);
3857
11.5k
    yyleng = YYCURSOR - SCNG(yy_text);
3858
11.5k
#line 1453 "Zend/zend_language_scanner.l"
3859
11.5k
    {
3860
11.5k
  RETURN_TOKEN_WITH_IDENT(T_IF);
3861
11.5k
}
3862
0
#line 3863 "Zend/zend_language_scanner.c"
3863
3.59k
yy189:
3864
3.59k
    YYDEBUG(189, *YYCURSOR);
3865
3.59k
    yyaccept = 4;
3866
3.59k
    yych = *(YYMARKER = ++YYCURSOR);
3867
3.59k
    if (yych == 'P') goto yy310;
3868
3.44k
    if (yych == 'p') goto yy310;
3869
748
    goto yy48;
3870
35.3k
yy190:
3871
35.3k
    YYDEBUG(190, *YYCURSOR);
3872
35.3k
    yyaccept = 4;
3873
35.3k
    yych = *(YYMARKER = ++YYCURSOR);
3874
35.3k
    if (yych <= 'T') {
3875
11.2k
      if (yych <= 'C') {
3876
5.91k
        if (yych <= 'B') goto yy48;
3877
191
        goto yy311;
3878
5.91k
      } else {
3879
5.33k
        if (yych <= 'R') goto yy48;
3880
393
        if (yych <= 'S') goto yy312;
3881
165
        goto yy313;
3882
393
      }
3883
24.0k
    } else {
3884
24.0k
      if (yych <= 'r') {
3885
12.4k
        if (yych == 'c') goto yy311;
3886
10.9k
        goto yy48;
3887
12.4k
      } else {
3888
11.6k
        if (yych <= 's') goto yy312;
3889
7.91k
        if (yych <= 't') goto yy313;
3890
2.04k
        goto yy48;
3891
7.91k
      }
3892
24.0k
    }
3893
14.6k
yy191:
3894
14.6k
    YYDEBUG(191, *YYCURSOR);
3895
14.6k
    yyaccept = 4;
3896
14.6k
    yych = *(YYMARKER = ++YYCURSOR);
3897
14.6k
    if (yych == 'S') goto yy314;
3898
14.6k
    if (yych == 's') goto yy314;
3899
5.08k
    goto yy48;
3900
5.08k
yy192:
3901
1.60k
    YYDEBUG(192, *YYCURSOR);
3902
1.60k
    yyaccept = 4;
3903
1.60k
    yych = *(YYMARKER = ++YYCURSOR);
3904
1.60k
    if (yych == 'S') goto yy315;
3905
1.58k
    if (yych == 's') goto yy315;
3906
942
    goto yy48;
3907
1.27k
yy193:
3908
1.27k
    YYDEBUG(193, *YYCURSOR);
3909
1.27k
    yyaccept = 4;
3910
1.27k
    yych = *(YYMARKER = ++YYCURSOR);
3911
1.27k
    if (yych == 'T') goto yy316;
3912
1.26k
    if (yych == 't') goto yy316;
3913
774
    goto yy48;
3914
8.23k
yy194:
3915
8.23k
    YYDEBUG(194, *YYCURSOR);
3916
8.23k
    yyaccept = 4;
3917
8.23k
    yych = *(YYMARKER = ++YYCURSOR);
3918
8.23k
    if (yych == 'M') goto yy317;
3919
7.40k
    if (yych == 'm') goto yy317;
3920
278
    goto yy48;
3921
39.9k
yy195:
3922
39.9k
    YYDEBUG(195, *YYCURSOR);
3923
39.9k
    yyaccept = 4;
3924
39.9k
    yych = *(YYMARKER = ++YYCURSOR);
3925
39.9k
    if (yych == 'W') goto yy318;
3926
39.8k
    if (yych == 'w') goto yy318;
3927
912
    goto yy48;
3928
3.11k
yy196:
3929
3.11k
    YYDEBUG(196, *YYCURSOR);
3930
3.11k
    yyaccept = 12;
3931
3.11k
    yych = *(YYMARKER = ++YYCURSOR);
3932
3.11k
    if (yybm[256+yych] & 128) {
3933
1.25k
      goto yy47;
3934
1.25k
    }
3935
1.85k
    if (yych == '\\') goto yy164;
3936
1.81k
yy197:
3937
1.81k
    YYDEBUG(197, *YYCURSOR);
3938
1.81k
    yyleng = YYCURSOR - SCNG(yy_text);
3939
1.81k
#line 1929 "Zend/zend_language_scanner.l"
3940
1.81k
    {
3941
1.81k
  RETURN_TOKEN_WITH_IDENT(T_LOGICAL_OR);
3942
1.81k
}
3943
0
#line 3944 "Zend/zend_language_scanner.c"
3944
19.9k
yy198:
3945
19.9k
    YYDEBUG(198, *YYCURSOR);
3946
19.9k
    yyaccept = 4;
3947
19.9k
    yych = *(YYMARKER = ++YYCURSOR);
3948
19.9k
    if (yych <= 'O') {
3949
1.85k
      if (yych == 'I') goto yy320;
3950
1.10k
      if (yych <= 'N') goto yy48;
3951
906
      goto yy321;
3952
18.0k
    } else {
3953
18.0k
      if (yych <= 'i') {
3954
15.1k
        if (yych <= 'h') goto yy48;
3955
12.9k
        goto yy320;
3956
15.1k
      } else {
3957
2.92k
        if (yych == 'o') goto yy321;
3958
590
        goto yy48;
3959
2.92k
      }
3960
18.0k
    }
3961
27.2k
yy199:
3962
27.2k
    YYDEBUG(199, *YYCURSOR);
3963
27.2k
    yyaccept = 4;
3964
27.2k
    yych = *(YYMARKER = ++YYCURSOR);
3965
27.2k
    if (yych == 'B') goto yy322;
3966
26.7k
    if (yych == 'b') goto yy322;
3967
507
    goto yy48;
3968
26.0k
yy200:
3969
26.0k
    YYDEBUG(200, *YYCURSOR);
3970
26.0k
    yyaccept = 4;
3971
26.0k
    yych = *(YYMARKER = ++YYCURSOR);
3972
26.0k
    if (yych <= 'T') {
3973
2.86k
      if (yych <= 'P') {
3974
2.52k
        if (yych == 'A') goto yy323;
3975
2.51k
        goto yy48;
3976
2.52k
      } else {
3977
335
        if (yych <= 'Q') goto yy324;
3978
135
        if (yych <= 'S') goto yy48;
3979
108
        goto yy325;
3980
135
      }
3981
23.1k
    } else {
3982
23.1k
      if (yych <= 'p') {
3983
6.76k
        if (yych == 'a') goto yy323;
3984
4.22k
        goto yy48;
3985
16.4k
      } else {
3986
16.4k
        if (yych <= 'q') goto yy324;
3987
11.1k
        if (yych == 't') goto yy325;
3988
1.29k
        goto yy48;
3989
11.1k
      }
3990
23.1k
    }
3991
31.2k
yy201:
3992
31.2k
    YYDEBUG(201, *YYCURSOR);
3993
31.2k
    yyaccept = 4;
3994
31.2k
    yych = *(YYMARKER = ++YYCURSOR);
3995
31.2k
    if (yych == 'A') goto yy326;
3996
31.0k
    if (yych == 'a') goto yy326;
3997
24.8k
    goto yy48;
3998
24.8k
yy202:
3999
428
    YYDEBUG(202, *YYCURSOR);
4000
428
    yyaccept = 4;
4001
428
    yych = *(YYMARKER = ++YYCURSOR);
4002
428
    if (yych == 'I') goto yy327;
4003
359
    if (yych == 'i') goto yy327;
4004
51
    goto yy48;
4005
5.76k
yy203:
4006
5.76k
    YYDEBUG(203, *YYCURSOR);
4007
5.76k
    yyaccept = 4;
4008
5.76k
    yych = *(YYMARKER = ++YYCURSOR);
4009
5.76k
    if (yych == 'R') goto yy328;
4010
5.66k
    if (yych == 'r') goto yy328;
4011
1.69k
    goto yy48;
4012
26.2k
yy204:
4013
26.2k
    YYDEBUG(204, *YYCURSOR);
4014
26.2k
    yyaccept = 4;
4015
26.2k
    yych = *(YYMARKER = ++YYCURSOR);
4016
26.2k
    if (yych <= 'Y') {
4017
1.18k
      if (yych == 'A') goto yy329;
4018
803
      if (yych <= 'X') goto yy48;
4019
43
      goto yy330;
4020
25.0k
    } else {
4021
25.0k
      if (yych <= 'a') {
4022
4.50k
        if (yych <= '`') goto yy48;
4023
4.50k
        goto yy329;
4024
20.5k
      } else {
4025
20.5k
        if (yych == 'y') goto yy330;
4026
4.90k
        goto yy48;
4027
20.5k
      }
4028
25.0k
    }
4029
9.36k
yy205:
4030
9.36k
    YYDEBUG(205, *YYCURSOR);
4031
9.36k
    yyaccept = 4;
4032
9.36k
    yych = *(YYMARKER = ++YYCURSOR);
4033
9.36k
    if (yych == 'S') goto yy332;
4034
9.09k
    if (yych == 's') goto yy332;
4035
2.07k
    goto yy48;
4036
5.58k
yy206:
4037
5.58k
    YYDEBUG(206, *YYCURSOR);
4038
5.58k
    yyaccept = 4;
4039
5.58k
    yych = *(YYMARKER = ++YYCURSOR);
4040
5.58k
    if (yych == 'E') goto yy333;
4041
5.52k
    if (yych == 'e') goto yy333;
4042
476
    goto yy48;
4043
59.1k
yy207:
4044
59.1k
    YYDEBUG(207, *YYCURSOR);
4045
59.1k
    yyaccept = 4;
4046
59.1k
    yych = *(YYMARKER = ++YYCURSOR);
4047
59.1k
    if (yych == 'R') goto yy335;
4048
58.9k
    if (yych == 'r') goto yy335;
4049
3.69k
    goto yy48;
4050
3.69k
yy208:
4051
859
    YYDEBUG(208, *YYCURSOR);
4052
859
    yyaccept = 4;
4053
859
    yych = *(YYMARKER = ++YYCURSOR);
4054
859
    if (yych == 'I') goto yy337;
4055
739
    if (yych == 'i') goto yy337;
4056
95
    goto yy48;
4057
1.32k
yy209:
4058
1.32k
    YYDEBUG(209, *YYCURSOR);
4059
1.32k
    yyaccept = 4;
4060
1.32k
    yych = *(YYMARKER = ++YYCURSOR);
4061
1.32k
    if (yych == 'R') goto yy338;
4062
1.28k
    if (yych == 'r') goto yy338;
4063
206
    goto yy48;
4064
9.79k
yy210:
4065
9.79k
    YYDEBUG(210, *YYCURSOR);
4066
9.79k
    yyaccept = 4;
4067
9.79k
    yych = *(YYMARKER = ++YYCURSOR);
4068
9.79k
    if (yych == 'E') goto yy340;
4069
9.57k
    if (yych == 'e') goto yy340;
4070
207
    goto yy48;
4071
151k
yy211:
4072
151k
    YYDEBUG(211, *YYCURSOR);
4073
151k
    yyaccept = 13;
4074
151k
    YYMARKER = ++YYCURSOR;
4075
151k
    YYFILL(1);
4076
151k
    yych = *YYCURSOR;
4077
151k
    YYDEBUG(212, *YYCURSOR);
4078
151k
    if (yych <= '\\') {
4079
68.5k
      if (yych <= '@') {
4080
22.3k
        if (yych <= '/') goto yy213;
4081
10.4k
        if (yych <= '9') goto yy211;
4082
46.1k
      } else {
4083
46.1k
        if (yych <= 'Z') goto yy211;
4084
11.5k
        if (yych >= '\\') goto yy341;
4085
11.5k
      }
4086
82.5k
    } else {
4087
82.5k
      if (yych <= '`') {
4088
2.32k
        if (yych == '_') goto yy211;
4089
80.2k
      } else {
4090
80.2k
        if (yych <= 'z') goto yy211;
4091
23.1k
        if (yych >= 0x80) goto yy211;
4092
23.1k
      }
4093
82.5k
    }
4094
26.5k
yy213:
4095
26.5k
    YYDEBUG(213, *YYCURSOR);
4096
26.5k
    yyleng = YYCURSOR - SCNG(yy_text);
4097
26.5k
#line 2446 "Zend/zend_language_scanner.l"
4098
26.5k
    {
4099
26.5k
  RETURN_TOKEN_WITH_STR(T_NAME_FULLY_QUALIFIED, 1);
4100
26.5k
}
4101
0
#line 4102 "Zend/zend_language_scanner.c"
4102
215
yy214:
4103
215
    YYDEBUG(214, *YYCURSOR);
4104
215
    ++YYCURSOR;
4105
215
    YYDEBUG(215, *YYCURSOR);
4106
215
    yyleng = YYCURSOR - SCNG(yy_text);
4107
215
#line 1909 "Zend/zend_language_scanner.l"
4108
215
    {
4109
215
  RETURN_TOKEN(T_XOR_EQUAL);
4110
215
}
4111
0
#line 4112 "Zend/zend_language_scanner.c"
4112
27.3k
yy216:
4113
27.3k
    YYDEBUG(216, *YYCURSOR);
4114
27.3k
    yyaccept = 4;
4115
27.3k
    yych = *(YYMARKER = ++YYCURSOR);
4116
27.3k
    switch (yych) {
4117
1.32k
    case 'C':
4118
5.33k
    case 'c': goto yy342;
4119
794
    case 'D':
4120
2.79k
    case 'd': goto yy343;
4121
7.08k
    case 'F':
4122
7.38k
    case 'f': goto yy344;
4123
20
    case 'H':
4124
37
    case 'h': goto yy345;
4125
493
    case 'L':
4126
504
    case 'l': goto yy346;
4127
3.76k
    case 'M':
4128
3.76k
    case 'm': goto yy347;
4129
2.08k
    case 'N':
4130
2.09k
    case 'n': goto yy348;
4131
331
    case 'P':
4132
878
    case 'p': goto yy349;
4133
782
    case 'T':
4134
1.11k
    case 't': goto yy350;
4135
3.46k
    default:  goto yy48;
4136
27.3k
    }
4137
381
yy217:
4138
381
    YYDEBUG(217, *YYCURSOR);
4139
381
    ++YYCURSOR;
4140
381
    YYDEBUG(218, *YYCURSOR);
4141
381
    yyleng = YYCURSOR - SCNG(yy_text);
4142
381
#line 1905 "Zend/zend_language_scanner.l"
4143
381
    {
4144
381
  RETURN_TOKEN(T_OR_EQUAL);
4145
381
}
4146
0
#line 4147 "Zend/zend_language_scanner.c"
4147
995
yy219:
4148
995
    YYDEBUG(219, *YYCURSOR);
4149
995
    ++YYCURSOR;
4150
995
    YYDEBUG(220, *YYCURSOR);
4151
995
    yyleng = YYCURSOR - SCNG(yy_text);
4152
995
#line 1917 "Zend/zend_language_scanner.l"
4153
995
    {
4154
995
  RETURN_TOKEN(T_PIPE);
4155
995
}
4156
0
#line 4157 "Zend/zend_language_scanner.c"
4157
1.42k
yy221:
4158
1.42k
    YYDEBUG(221, *YYCURSOR);
4159
1.42k
    ++YYCURSOR;
4160
1.42k
    YYDEBUG(222, *YYCURSOR);
4161
1.42k
    yyleng = YYCURSOR - SCNG(yy_text);
4162
1.42k
#line 1921 "Zend/zend_language_scanner.l"
4163
1.42k
    {
4164
1.42k
  RETURN_TOKEN(T_BOOLEAN_OR);
4165
1.42k
}
4166
0
#line 4167 "Zend/zend_language_scanner.c"
4167
544
yy223:
4168
544
    YYDEBUG(223, *YYCURSOR);
4169
544
    ++YYCURSOR;
4170
544
    YYDEBUG(224, *YYCURSOR);
4171
544
    yyleng = YYCURSOR - SCNG(yy_text);
4172
544
#line 1837 "Zend/zend_language_scanner.l"
4173
544
    {
4174
544
  RETURN_TOKEN(T_IS_NOT_IDENTICAL);
4175
544
}
4176
0
#line 4177 "Zend/zend_language_scanner.c"
4177
101k
yy225:
4178
101k
    YYDEBUG(225, *YYCURSOR);
4179
101k
    ++YYCURSOR;
4180
101k
    YYFILL(1);
4181
101k
    yych = *YYCURSOR;
4182
101k
    YYDEBUG(226, *YYCURSOR);
4183
101k
    if (yybm[0+yych] & 2) {
4184
90.0k
      goto yy225;
4185
90.0k
    }
4186
11.4k
    if (yych <= 0x00) goto yy86;
4187
11.2k
    goto yy84;
4188
20.6k
yy227:
4189
20.6k
    YYDEBUG(227, *YYCURSOR);
4190
20.6k
    ++YYCURSOR;
4191
20.6k
    YYFILL(1);
4192
20.6k
    yych = *YYCURSOR;
4193
20.6k
    YYDEBUG(228, *YYCURSOR);
4194
20.6k
    if (yych <= 0x1F) {
4195
3.63k
      if (yych <= '\t') {
4196
154
        if (yych <= 0x00) goto yy86;
4197
126
        if (yych <= 0x08) goto yy225;
4198
72
        goto yy227;
4199
3.48k
      } else {
4200
3.48k
        if (yych <= '\n') goto yy84;
4201
3.47k
        if (yych == '\r') goto yy84;
4202
48
        goto yy225;
4203
3.47k
      }
4204
16.9k
    } else {
4205
16.9k
      if (yych <= '$') {
4206
723
        if (yych <= ' ') goto yy227;
4207
675
        if (yych <= '"') goto yy225;
4208
651
        if (yych <= '#') goto yy351;
4209
8
        goto yy352;
4210
16.2k
      } else {
4211
16.2k
        if (yych <= '-') goto yy225;
4212
15.7k
        if (yych <= '.') goto yy353;
4213
15.6k
        if (yych <= '/') goto yy354;
4214
4.48k
        goto yy225;
4215
15.6k
      }
4216
16.9k
    }
4217
2.26k
yy229:
4218
2.26k
    YYDEBUG(229, *YYCURSOR);
4219
2.26k
    yych = *++YYCURSOR;
4220
2.26k
    if (yych == '.') goto yy88;
4221
398
    goto yy86;
4222
179k
yy230:
4223
179k
    YYDEBUG(230, *YYCURSOR);
4224
179k
    ++YYCURSOR;
4225
179k
    YYFILL(1);
4226
179k
    yych = *YYCURSOR;
4227
179k
    YYDEBUG(231, *YYCURSOR);
4228
179k
    if (yybm[0+yych] & 4) {
4229
169k
      goto yy230;
4230
169k
    }
4231
10.4k
    if (yych <= 0x00) goto yy86;
4232
9.37k
    goto yy355;
4233
9.37k
yy232:
4234
1.63k
    YYDEBUG(232, *YYCURSOR);
4235
1.63k
    yych = *++YYCURSOR;
4236
1.63k
    if (yych == 'R') goto yy357;
4237
1.63k
    if (yych == 'r') goto yy357;
4238
192
    goto yy86;
4239
290
yy233:
4240
290
    YYDEBUG(233, *YYCURSOR);
4241
290
    yych = *++YYCURSOR;
4242
290
    if (yych == 'N') goto yy358;
4243
290
    if (yych == 'n') goto yy358;
4244
266
    goto yy86;
4245
290
yy234:
4246
290
    YYDEBUG(234, *YYCURSOR);
4247
290
    yych = *++YYCURSOR;
4248
290
    if (yych == 'O') goto yy359;
4249
290
    if (yych == 'o') goto yy359;
4250
72
    goto yy86;
4251
270
yy235:
4252
270
    YYDEBUG(235, *YYCURSOR);
4253
270
    yych = *++YYCURSOR;
4254
270
    if (yych == 'U') goto yy360;
4255
270
    if (yych == 'u') goto yy360;
4256
60
    goto yy86;
4257
183
yy236:
4258
183
    YYDEBUG(236, *YYCURSOR);
4259
183
    yych = *++YYCURSOR;
4260
183
    if (yych == 'O') goto yy361;
4261
181
    if (yych == 'o') goto yy361;
4262
4
    goto yy86;
4263
2.05k
yy237:
4264
2.05k
    YYDEBUG(237, *YYCURSOR);
4265
2.05k
    yych = *++YYCURSOR;
4266
2.05k
    if (yych == 'T') goto yy362;
4267
1.97k
    if (yych == 't') goto yy362;
4268
564
    goto yy86;
4269
2.33k
yy238:
4270
2.33k
    YYDEBUG(238, *YYCURSOR);
4271
2.33k
    yych = *++YYCURSOR;
4272
2.33k
    if (yych == 'J') goto yy363;
4273
2.33k
    if (yych == 'j') goto yy363;
4274
705
    goto yy86;
4275
957
yy239:
4276
957
    YYDEBUG(239, *YYCURSOR);
4277
957
    yych = *++YYCURSOR;
4278
957
    if (yych == 'A') goto yy364;
4279
957
    if (yych == 'a') goto yy364;
4280
949
    goto yy86;
4281
4.79k
yy240:
4282
4.79k
    YYDEBUG(240, *YYCURSOR);
4283
4.79k
    yych = *++YYCURSOR;
4284
4.79k
    if (yych == 'R') goto yy365;
4285
4.75k
    if (yych == 'r') goto yy365;
4286
255
    goto yy86;
4287
2.22k
yy241:
4288
2.22k
    YYDEBUG(241, *YYCURSOR);
4289
2.22k
    yych = *++YYCURSOR;
4290
2.22k
    if (yych == 'S') goto yy366;
4291
2.22k
    if (yych == 's') goto yy366;
4292
711
    goto yy86;
4293
711
yy242:
4294
95
    YYDEBUG(242, *YYCURSOR);
4295
95
    yych = *++YYCURSOR;
4296
95
    if (yych == 'I') goto yy367;
4297
95
    if (yych == 'i') goto yy367;
4298
17
    goto yy86;
4299
34
yy243:
4300
34
    YYDEBUG(243, *YYCURSOR);
4301
34
    ++YYCURSOR;
4302
34
    YYDEBUG(244, *YYCURSOR);
4303
34
    yyleng = YYCURSOR - SCNG(yy_text);
4304
34
#line 1877 "Zend/zend_language_scanner.l"
4305
34
    {
4306
34
  RETURN_TOKEN(T_POW_EQUAL);
4307
34
}
4308
0
#line 4309 "Zend/zend_language_scanner.c"
4309
57.1k
yy245:
4310
57.1k
    YYDEBUG(245, *YYCURSOR);
4311
57.1k
    ++YYCURSOR;
4312
57.1k
    YYDEBUG(246, *YYCURSOR);
4313
57.1k
    yyleng = YYCURSOR - SCNG(yy_text);
4314
57.1k
#line 1617 "Zend/zend_language_scanner.l"
4315
57.1k
    {
4316
57.1k
  RETURN_TOKEN(T_ELLIPSIS);
4317
57.1k
}
4318
0
#line 4319 "Zend/zend_language_scanner.c"
4319
216
yy247:
4320
216
    YYDEBUG(247, *YYCURSOR);
4321
216
    ++YYCURSOR;
4322
216
    YYFILL(1);
4323
216
    yych = *YYCURSOR;
4324
216
    if (yych <= '/') goto yy86;
4325
21
    if (yych <= '9') goto yy123;
4326
3
    goto yy86;
4327
3.21k
yy248:
4328
3.21k
    YYDEBUG(248, *YYCURSOR);
4329
3.21k
    yych = *++YYCURSOR;
4330
3.21k
    if (yych <= '\f') {
4331
2.77k
      if (yych <= 0x08) goto yy86;
4332
2.77k
      if (yych <= '\n') goto yy368;
4333
0
      goto yy86;
4334
2.77k
    } else {
4335
441
      if (yych <= '\r') goto yy368;
4336
441
      if (yych == ' ') goto yy368;
4337
250
      goto yy86;
4338
441
    }
4339
17.4k
yy249:
4340
17.4k
    YYDEBUG(249, *YYCURSOR);
4341
17.4k
    yyaccept = 14;
4342
17.4k
    YYMARKER = ++YYCURSOR;
4343
17.4k
    YYFILL(1);
4344
17.4k
    yych = *YYCURSOR;
4345
17.4k
    YYDEBUG(250, *YYCURSOR);
4346
17.4k
    if (yybm[0+yych] & 8) {
4347
16.8k
      goto yy249;
4348
16.8k
    }
4349
642
    if (yych == '_') goto yy134;
4350
632
yy251:
4351
632
    YYDEBUG(251, *YYCURSOR);
4352
632
    yyleng = YYCURSOR - SCNG(yy_text);
4353
632
#line 2010 "Zend/zend_language_scanner.l"
4354
632
    {
4355
  /* The +/- 2 skips "0b" */
4356
632
  size_t len = yyleng - 2;
4357
632
  char *end, *bin = yytext + 2;
4358
632
  bool contains_underscores;
4359
4360
  /* Skip any leading 0s */
4361
644
  while (len > 0 && (*bin == '0' || *bin == '_')) {
4362
12
    ++bin;
4363
12
    --len;
4364
12
  }
4365
4366
632
  contains_underscores = (memchr(bin, '_', len) != NULL);
4367
4368
632
  if (contains_underscores) {
4369
6
    bin = estrndup(bin, len);
4370
6
    strip_underscores(bin, &len);
4371
6
  }
4372
4373
632
  if (len < SIZEOF_ZEND_LONG * 8) {
4374
606
    if (len == 0) {
4375
0
      ZVAL_LONG(zendlval, 0);
4376
606
    } else {
4377
606
      errno = 0;
4378
606
      ZVAL_LONG(zendlval, ZEND_STRTOL(bin, &end, 2));
4379
606
      ZEND_ASSERT(!errno && end == bin + len);
4380
606
    }
4381
606
    if (contains_underscores) {
4382
6
      efree(bin);
4383
6
    }
4384
606
    RETURN_TOKEN_WITH_VAL(T_LNUMBER);
4385
606
  } else {
4386
26
    ZVAL_DOUBLE(zendlval, zend_bin_strtod(bin, (const char **)&end));
4387
    /* errno isn't checked since we allow HUGE_VAL/INF overflow */
4388
26
    ZEND_ASSERT(end == bin + len);
4389
26
    if (contains_underscores) {
4390
0
      efree(bin);
4391
0
    }
4392
26
    RETURN_TOKEN_WITH_VAL(T_DNUMBER);
4393
26
  }
4394
632
}
4395
0
#line 4396 "Zend/zend_language_scanner.c"
4396
914
yy252:
4397
914
    YYDEBUG(252, *YYCURSOR);
4398
914
    ++YYCURSOR;
4399
914
    YYFILL(1);
4400
914
    yych = *YYCURSOR;
4401
914
    if (yych <= '/') goto yy86;
4402
914
    if (yych >= ':') goto yy86;
4403
59.0k
yy253:
4404
59.0k
    YYDEBUG(253, *YYCURSOR);
4405
59.0k
    yyaccept = 5;
4406
59.0k
    YYMARKER = ++YYCURSOR;
4407
59.0k
    YYFILL(1);
4408
59.0k
    yych = *YYCURSOR;
4409
59.0k
    YYDEBUG(254, *YYCURSOR);
4410
59.0k
    if (yych <= '/') goto yy125;
4411
54.9k
    if (yych <= '9') goto yy253;
4412
3.45k
    if (yych == '_') goto yy252;
4413
3.45k
    goto yy125;
4414
3.45k
yy255:
4415
625
    YYDEBUG(255, *YYCURSOR);
4416
625
    yyaccept = 15;
4417
625
    YYMARKER = ++YYCURSOR;
4418
625
    YYFILL(1);
4419
625
    yych = *YYCURSOR;
4420
625
    YYDEBUG(256, *YYCURSOR);
4421
625
    if (yybm[0+yych] & 16) {
4422
597
      goto yy255;
4423
597
    }
4424
28
    if (yych == '_') goto yy136;
4425
28
yy257:
4426
28
    YYDEBUG(257, *YYCURSOR);
4427
28
    yyleng = YYCURSOR - SCNG(yy_text);
4428
28
#line 2052 "Zend/zend_language_scanner.l"
4429
28
    {
4430
  /* The +/- 2 skips "0o" */
4431
28
  size_t len = yyleng - 2;
4432
28
  char *end, *octal = yytext + 2;
4433
28
  bool contains_underscores = (memchr(octal, '_', len) != NULL);
4434
4435
  /* Skip any leading 0s */
4436
28
  while (len > 0 && (*octal == '0' || *octal == '_')) {
4437
0
    ++octal;
4438
0
    --len;
4439
0
  }
4440
4441
28
  if (len == 0) {
4442
0
    ZVAL_LONG(zendlval, 0);
4443
0
    RETURN_TOKEN_WITH_VAL(T_LNUMBER);
4444
0
  }
4445
4446
28
  if (contains_underscores) {
4447
0
    octal = estrndup(octal, len);
4448
0
    strip_underscores(octal, &len);
4449
0
  }
4450
4451
28
  errno = 0;
4452
4453
28
  ZVAL_LONG(zendlval, ZEND_STRTOL(octal, &end, 8));
4454
4455
28
  ZEND_ASSERT(end == octal + len);
4456
4457
28
  if (!errno) {
4458
13
    if (contains_underscores) {
4459
0
      efree(octal);
4460
0
    }
4461
13
    RETURN_TOKEN_WITH_VAL(T_LNUMBER);
4462
13
  }
4463
4464
  /* Overflow */
4465
15
  ZEND_ASSERT(errno == ERANGE);
4466
  /* Reset errno */
4467
15
  errno = 0;
4468
4469
  /* zend_oct_strtod skips leading '0' */
4470
15
  ZVAL_DOUBLE(zendlval, zend_oct_strtod(octal, (const char **)&end));
4471
15
  ZEND_ASSERT(!errno);
4472
15
  ZEND_ASSERT(end == octal + len);
4473
15
  if (contains_underscores) {
4474
0
    efree(octal);
4475
0
  }
4476
15
  RETURN_TOKEN_WITH_VAL(T_DNUMBER);
4477
15
}
4478
0
#line 4479 "Zend/zend_language_scanner.c"
4479
10.7k
yy258:
4480
10.7k
    YYDEBUG(258, *YYCURSOR);
4481
10.7k
    yyaccept = 16;
4482
10.7k
    YYMARKER = ++YYCURSOR;
4483
10.7k
    YYFILL(1);
4484
10.7k
    yych = *YYCURSOR;
4485
10.7k
    YYDEBUG(259, *YYCURSOR);
4486
10.7k
    if (yybm[0+yych] & 32) {
4487
8.83k
      goto yy258;
4488
8.83k
    }
4489
1.86k
    if (yych == '_') goto yy137;
4490
1.86k
yy260:
4491
1.86k
    YYDEBUG(260, *YYCURSOR);
4492
1.86k
    yyleng = YYCURSOR - SCNG(yy_text);
4493
1.86k
#line 2165 "Zend/zend_language_scanner.l"
4494
1.86k
    {
4495
  /* The +/- 2 skips "0x" */
4496
1.86k
  size_t len = yyleng - 2;
4497
1.86k
  char *end, *hex = yytext + 2;
4498
1.86k
  bool contains_underscores;
4499
4500
  /* Skip any leading 0s */
4501
2.47k
  while (len > 0 && (*hex == '0' || *hex == '_')) {
4502
616
    ++hex;
4503
616
    --len;
4504
616
  }
4505
4506
1.86k
  contains_underscores = (memchr(hex, '_', len) != NULL);
4507
4508
1.86k
  if (contains_underscores) {
4509
4
    hex = estrndup(hex, len);
4510
4
    strip_underscores(hex, &len);
4511
4
  }
4512
4513
1.86k
  if (len < SIZEOF_ZEND_LONG * 2 || (len == SIZEOF_ZEND_LONG * 2 && *hex <= '7')) {
4514
1.61k
    if (len == 0) {
4515
102
      ZVAL_LONG(zendlval, 0);
4516
1.50k
    } else {
4517
1.50k
      errno = 0;
4518
1.50k
      ZVAL_LONG(zendlval, ZEND_STRTOL(hex, &end, 16));
4519
1.50k
      ZEND_ASSERT(!errno && end == hex + len);
4520
1.50k
    }
4521
1.61k
    if (contains_underscores) {
4522
4
      efree(hex);
4523
4
    }
4524
1.61k
    RETURN_TOKEN_WITH_VAL(T_LNUMBER);
4525
1.61k
  } else {
4526
249
    ZVAL_DOUBLE(zendlval, zend_hex_strtod(hex, (const char **)&end));
4527
    /* errno isn't checked since we allow HUGE_VAL/INF overflow */
4528
249
    ZEND_ASSERT(end == hex + len);
4529
249
    if (contains_underscores) {
4530
0
      efree(hex);
4531
0
    }
4532
249
    RETURN_TOKEN_WITH_VAL(T_DNUMBER);
4533
249
  }
4534
1.86k
}
4535
0
#line 4536 "Zend/zend_language_scanner.c"
4536
141k
yy261:
4537
141k
    YYDEBUG(261, *YYCURSOR);
4538
141k
    ++YYCURSOR;
4539
141k
    YYFILL(2);
4540
141k
    yych = *YYCURSOR;
4541
141k
    YYDEBUG(262, *YYCURSOR);
4542
141k
    if (yych <= '\'') {
4543
22.4k
      if (yych <= ' ') {
4544
18.7k
        if (yych == '\t') goto yy261;
4545
8.42k
        if (yych <= 0x1F) goto yy86;
4546
7.13k
        goto yy261;
4547
8.42k
      } else {
4548
3.67k
        if (yych == '"') goto yy370;
4549
3.00k
        if (yych <= '&') goto yy86;
4550
2.58k
        goto yy371;
4551
3.00k
      }
4552
118k
    } else {
4553
118k
      if (yych <= '_') {
4554
47.9k
        if (yych <= '@') goto yy86;
4555
41.9k
        if (yych <= 'Z') goto yy372;
4556
48
        if (yych <= '^') goto yy86;
4557
4
        goto yy372;
4558
70.9k
      } else {
4559
70.9k
        if (yych <= '`') goto yy86;
4560
70.9k
        if (yych <= 'z') goto yy372;
4561
35.7k
        if (yych <= 0x7F) goto yy86;
4562
35.6k
        goto yy372;
4563
35.7k
      }
4564
118k
    }
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
283
yy265:
4576
283
    YYDEBUG(265, *YYCURSOR);
4577
283
    ++YYCURSOR;
4578
283
    YYDEBUG(266, *YYCURSOR);
4579
283
    yyleng = YYCURSOR - SCNG(yy_text);
4580
283
#line 1849 "Zend/zend_language_scanner.l"
4581
283
    {
4582
283
  RETURN_TOKEN(T_SPACESHIP);
4583
283
}
4584
0
#line 4585 "Zend/zend_language_scanner.c"
4585
3.45k
yy267:
4586
3.45k
    YYDEBUG(267, *YYCURSOR);
4587
3.45k
    ++YYCURSOR;
4588
3.45k
    YYDEBUG(268, *YYCURSOR);
4589
3.45k
    yyleng = YYCURSOR - SCNG(yy_text);
4590
3.45k
#line 1833 "Zend/zend_language_scanner.l"
4591
3.45k
    {
4592
3.45k
  RETURN_TOKEN(T_IS_IDENTICAL);
4593
3.45k
}
4594
0
#line 4595 "Zend/zend_language_scanner.c"
4595
205
yy269:
4596
205
    YYDEBUG(269, *YYCURSOR);
4597
205
    ++YYCURSOR;
4598
205
    YYDEBUG(270, *YYCURSOR);
4599
205
    yyleng = YYCURSOR - SCNG(yy_text);
4600
205
#line 1897 "Zend/zend_language_scanner.l"
4601
205
    {
4602
205
  RETURN_TOKEN(T_SR_EQUAL);
4603
205
}
4604
0
#line 4605 "Zend/zend_language_scanner.c"
4605
16.6k
yy271:
4606
16.6k
    YYDEBUG(271, *YYCURSOR);
4607
16.6k
    ++YYCURSOR;
4608
16.6k
    YYDEBUG(272, *YYCURSOR);
4609
16.6k
    yyleng = YYCURSOR - SCNG(yy_text);
4610
16.6k
#line 1591 "Zend/zend_language_scanner.l"
4611
16.6k
    {
4612
16.6k
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
4613
16.6k
  RETURN_TOKEN(T_NULLSAFE_OBJECT_OPERATOR);
4614
16.6k
}
4615
0
#line 4616 "Zend/zend_language_scanner.c"
4616
3.89k
yy273:
4617
3.89k
    YYDEBUG(273, *YYCURSOR);
4618
3.89k
    ++YYCURSOR;
4619
3.89k
    goto yy156;
4620
6
yy274:
4621
6
    YYDEBUG(274, *YYCURSOR);
4622
6
    yych = *++YYCURSOR;
4623
6
    if (yych == '\n') goto yy273;
4624
6
    goto yy156;
4625
965
yy275:
4626
965
    YYDEBUG(275, *YYCURSOR);
4627
965
    ++YYCURSOR;
4628
965
    YYDEBUG(276, *YYCURSOR);
4629
965
    yyleng = YYCURSOR - SCNG(yy_text);
4630
965
#line 1913 "Zend/zend_language_scanner.l"
4631
965
    {
4632
965
  RETURN_TOKEN(T_COALESCE_EQUAL);
4633
965
}
4634
0
#line 4635 "Zend/zend_language_scanner.c"
4635
2.03k
yy277:
4636
2.03k
    YYDEBUG(277, *YYCURSOR);
4637
2.03k
    yyaccept = 4;
4638
2.03k
    yych = *(YYMARKER = ++YYCURSOR);
4639
2.03k
    if (yych == 'T') goto yy374;
4640
878
    if (yych == 't') goto yy374;
4641
32
    goto yy48;
4642
806
yy278:
4643
806
    YYDEBUG(278, *YYCURSOR);
4644
806
    yyaccept = 17;
4645
806
    yych = *(YYMARKER = ++YYCURSOR);
4646
806
    if (yybm[256+yych] & 128) {
4647
88
      goto yy47;
4648
88
    }
4649
718
    if (yych == '\\') goto yy164;
4650
718
yy279:
4651
718
    YYDEBUG(279, *YYCURSOR);
4652
718
    yyleng = YYCURSOR - SCNG(yy_text);
4653
718
#line 1933 "Zend/zend_language_scanner.l"
4654
718
    {
4655
718
  RETURN_TOKEN_WITH_IDENT(T_LOGICAL_AND);
4656
718
}
4657
0
#line 4658 "Zend/zend_language_scanner.c"
4658
9.87k
yy280:
4659
9.87k
    YYDEBUG(280, *YYCURSOR);
4660
9.87k
    yyaccept = 4;
4661
9.87k
    yych = *(YYMARKER = ++YYCURSOR);
4662
9.87k
    if (yych == 'A') goto yy375;
4663
9.77k
    if (yych == 'a') goto yy375;
4664
301
    goto yy48;
4665
22.0k
yy281:
4666
22.0k
    YYDEBUG(281, *YYCURSOR);
4667
22.0k
    yyaccept = 18;
4668
22.0k
    YYMARKER = ++YYCURSOR;
4669
22.0k
    YYFILL(1);
4670
22.0k
    yych = *YYCURSOR;
4671
22.0k
    YYDEBUG(282, *YYCURSOR);
4672
22.0k
    if (yych <= '\\') {
4673
11.8k
      if (yych <= '@') {
4674
7.87k
        if (yych <= '/') goto yy283;
4675
3.24k
        if (yych <= '9') goto yy281;
4676
3.99k
      } else {
4677
3.99k
        if (yych <= 'Z') goto yy281;
4678
833
        if (yych >= '\\') goto yy164;
4679
833
      }
4680
11.8k
    } else {
4681
10.2k
      if (yych <= '`') {
4682
75
        if (yych == '_') goto yy281;
4683
10.1k
      } else {
4684
10.1k
        if (yych <= 'z') goto yy281;
4685
3.95k
        if (yych >= 0x80) goto yy281;
4686
3.95k
      }
4687
10.2k
    }
4688
6.43k
yy283:
4689
6.43k
    YYDEBUG(283, *YYCURSOR);
4690
6.43k
    yyleng = YYCURSOR - SCNG(yy_text);
4691
6.43k
#line 2442 "Zend/zend_language_scanner.l"
4692
6.43k
    {
4693
6.43k
  RETURN_TOKEN_WITH_STR(T_NAME_QUALIFIED, 0);
4694
6.43k
}
4695
0
#line 4696 "Zend/zend_language_scanner.c"
4696
8
yy284:
4697
8
    YYDEBUG(284, *YYCURSOR);
4698
8
    yych = *++YYCURSOR;
4699
8
    if (yych == '<') goto yy261;
4700
3
    goto yy86;
4701
607
yy285:
4702
607
    YYDEBUG(285, *YYCURSOR);
4703
607
    yyaccept = 4;
4704
607
    yych = *(YYMARKER = ++YYCURSOR);
4705
607
    if (yych == 'A') goto yy376;
4706
579
    if (yych == 'a') goto yy376;
4707
11
    goto yy48;
4708
6.18k
yy286:
4709
6.18k
    YYDEBUG(286, *YYCURSOR);
4710
6.18k
    yyaccept = 4;
4711
6.18k
    yych = *(YYMARKER = ++YYCURSOR);
4712
6.18k
    if (yych == 'L') goto yy377;
4713
5.61k
    if (yych == 'l') goto yy377;
4714
630
    goto yy48;
4715
2.24k
yy287:
4716
2.24k
    YYDEBUG(287, *YYCURSOR);
4717
2.24k
    yyaccept = 4;
4718
2.24k
    yych = *(YYMARKER = ++YYCURSOR);
4719
2.24k
    if (yych == 'E') goto yy378;
4720
2.23k
    if (yych == 'e') goto yy378;
4721
895
    goto yy48;
4722
16.2k
yy288:
4723
16.2k
    YYDEBUG(288, *YYCURSOR);
4724
16.2k
    yyaccept = 4;
4725
16.2k
    yych = *(YYMARKER = ++YYCURSOR);
4726
16.2k
    if (yych == 'C') goto yy380;
4727
16.1k
    if (yych == 'c') goto yy380;
4728
716
    goto yy48;
4729
33.6k
yy289:
4730
33.6k
    YYDEBUG(289, *YYCURSOR);
4731
33.6k
    yyaccept = 4;
4732
33.6k
    yych = *(YYMARKER = ++YYCURSOR);
4733
33.6k
    if (yych == 'S') goto yy381;
4734
33.4k
    if (yych == 's') goto yy381;
4735
528
    goto yy48;
4736
1.13k
yy290:
4737
1.13k
    YYDEBUG(290, *YYCURSOR);
4738
1.13k
    yyaccept = 4;
4739
1.13k
    yych = *(YYMARKER = ++YYCURSOR);
4740
1.13k
    if (yych == 'N') goto yy382;
4741
1.07k
    if (yych == 'n') goto yy382;
4742
618
    goto yy48;
4743
16.0k
yy291:
4744
16.0k
    YYDEBUG(291, *YYCURSOR);
4745
16.0k
    yyaccept = 4;
4746
16.0k
    yych = *(YYMARKER = ++YYCURSOR);
4747
16.0k
    if (yych <= 'T') {
4748
1.35k
      if (yych <= 'R') goto yy48;
4749
1.20k
      if (yych <= 'S') goto yy383;
4750
521
      goto yy384;
4751
14.7k
    } else {
4752
14.7k
      if (yych <= 'r') goto yy48;
4753
14.7k
      if (yych <= 's') goto yy383;
4754
1.31k
      if (yych <= 't') goto yy384;
4755
75
      goto yy48;
4756
1.31k
    }
4757
2.55k
yy292:
4758
2.55k
    YYDEBUG(292, *YYCURSOR);
4759
2.55k
    yyaccept = 4;
4760
2.55k
    yych = *(YYMARKER = ++YYCURSOR);
4761
2.55k
    if (yych == 'L') goto yy385;
4762
2.53k
    if (yych == 'l') goto yy385;
4763
56
    goto yy48;
4764
1.58k
yy293:
4765
1.58k
    YYDEBUG(293, *YYCURSOR);
4766
1.58k
    yyaccept = 4;
4767
1.58k
    yych = *(YYMARKER = ++YYCURSOR);
4768
1.58k
    if (yych == 'A') goto yy386;
4769
1.54k
    if (yych == 'a') goto yy386;
4770
1.25k
    goto yy48;
4771
1.25k
yy294:
4772
217
    YYDEBUG(294, *YYCURSOR);
4773
217
    yyaccept = 19;
4774
217
    yych = *(YYMARKER = ++YYCURSOR);
4775
217
    if (yybm[256+yych] & 128) {
4776
0
      goto yy47;
4777
0
    }
4778
217
    if (yych == '\\') goto yy164;
4779
217
yy295:
4780
217
    YYDEBUG(295, *YYCURSOR);
4781
217
    yyleng = YYCURSOR - SCNG(yy_text);
4782
217
#line 1402 "Zend/zend_language_scanner.l"
4783
217
    {
4784
217
  RETURN_TOKEN_WITH_IDENT(T_EXIT);
4785
217
}
4786
0
#line 4787 "Zend/zend_language_scanner.c"
4787
38.3k
yy296:
4788
38.3k
    YYDEBUG(296, *YYCURSOR);
4789
38.3k
    yyaccept = 4;
4790
38.3k
    yych = *(YYMARKER = ++YYCURSOR);
4791
38.3k
    if (yych == 'O') goto yy387;
4792
38.2k
    if (yych == 'o') goto yy387;
4793
919
    goto yy48;
4794
1.59k
yy297:
4795
1.59k
    YYDEBUG(297, *YYCURSOR);
4796
1.59k
    yyaccept = 4;
4797
1.59k
    yych = *(YYMARKER = ++YYCURSOR);
4798
1.59k
    if (yych == 'E') goto yy389;
4799
1.48k
    if (yych == 'e') goto yy389;
4800
24
    goto yy48;
4801
2.13k
yy298:
4802
2.13k
    YYDEBUG(298, *YYCURSOR);
4803
2.13k
    yyaccept = 4;
4804
2.13k
    yych = *(YYMARKER = ++YYCURSOR);
4805
2.13k
    if (yych == 'T') goto yy391;
4806
1.09k
    if (yych == 't') goto yy391;
4807
481
    goto yy48;
4808
9.38k
yy299:
4809
9.38k
    YYDEBUG(299, *YYCURSOR);
4810
9.38k
    yyaccept = 4;
4811
9.38k
    yych = *(YYMARKER = ++YYCURSOR);
4812
9.38k
    switch (yych) {
4813
182
    case 'D':
4814
464
    case 'd': goto yy392;
4815
412
    case 'F':
4816
494
    case 'f': goto yy393;
4817
1.00k
    case 'I':
4818
1.21k
    case 'i': goto yy394;
4819
243
    case 'S':
4820
3.10k
    case 's': goto yy395;
4821
2.91k
    case 'W':
4822
3.04k
    case 'w': goto yy396;
4823
1.07k
    default:  goto yy48;
4824
9.38k
    }
4825
11.3k
yy300:
4826
11.3k
    YYDEBUG(300, *YYCURSOR);
4827
11.3k
    yyaccept = 4;
4828
11.3k
    yych = *(YYMARKER = ++YYCURSOR);
4829
11.3k
    if (yych == 'M') goto yy397;
4830
11.2k
    if (yych == 'm') goto yy397;
4831
557
    goto yy48;
4832
1.58k
yy301:
4833
1.58k
    YYDEBUG(301, *YYCURSOR);
4834
1.58k
    yyaccept = 4;
4835
1.58k
    yych = *(YYMARKER = ++YYCURSOR);
4836
1.58k
    if (yych == 'L') goto yy398;
4837
1.57k
    if (yych == 'l') goto yy398;
4838
407
    goto yy48;
4839
484
yy302:
4840
484
    YYDEBUG(302, *YYCURSOR);
4841
484
    yyaccept = 4;
4842
484
    yych = *(YYMARKER = ++YYCURSOR);
4843
484
    if (yych == 'T') goto yy400;
4844
442
    if (yych == 't') goto yy400;
4845
226
    goto yy48;
4846
4.49k
yy303:
4847
4.49k
    YYDEBUG(303, *YYCURSOR);
4848
4.49k
    yyaccept = 4;
4849
4.49k
    yych = *(YYMARKER = ++YYCURSOR);
4850
4.49k
    if (yych == 'E') goto yy402;
4851
4.35k
    if (yych == 'e') goto yy402;
4852
1.06k
    goto yy48;
4853
1.80k
yy304:
4854
1.80k
    YYDEBUG(304, *YYCURSOR);
4855
1.80k
    yyaccept = 4;
4856
1.80k
    yych = *(YYMARKER = ++YYCURSOR);
4857
1.80k
    if (yych == 'A') goto yy403;
4858
1.62k
    if (yych == 'a') goto yy403;
4859
452
    goto yy48;
4860
29.8k
yy305:
4861
29.8k
    YYDEBUG(305, *YYCURSOR);
4862
29.8k
    yyaccept = 20;
4863
29.8k
    yych = *(YYMARKER = ++YYCURSOR);
4864
29.8k
    if (yych <= '\\') {
4865
15.8k
      if (yych <= 'D') {
4866
14.9k
        if (yych <= '/') goto yy306;
4867
649
        if (yych <= '9') goto yy47;
4868
550
        if (yych >= 'A') goto yy47;
4869
918
      } else {
4870
918
        if (yych <= 'E') goto yy404;
4871
615
        if (yych <= 'Z') goto yy47;
4872
19
        if (yych >= '\\') goto yy164;
4873
19
      }
4874
15.8k
    } else {
4875
13.9k
      if (yych <= 'd') {
4876
407
        if (yych == '_') goto yy47;
4877
407
        if (yych >= 'a') goto yy47;
4878
13.5k
      } else {
4879
13.5k
        if (yych <= 'e') goto yy404;
4880
798
        if (yych <= 'z') goto yy47;
4881
258
        if (yych >= 0x80) goto yy47;
4882
258
      }
4883
13.9k
    }
4884
15.2k
yy306:
4885
15.2k
    YYDEBUG(306, *YYCURSOR);
4886
15.2k
    yyleng = YYCURSOR - SCNG(yy_text);
4887
15.2k
#line 1481 "Zend/zend_language_scanner.l"
4888
15.2k
    {
4889
15.2k
  RETURN_TOKEN_WITH_IDENT(T_FOR);
4890
15.2k
}
4891
0
#line 4892 "Zend/zend_language_scanner.c"
4892
37.5k
yy307:
4893
37.5k
    YYDEBUG(307, *YYCURSOR);
4894
37.5k
    yyaccept = 4;
4895
37.5k
    yych = *(YYMARKER = ++YYCURSOR);
4896
37.5k
    if (yych == 'C') goto yy405;
4897
37.4k
    if (yych == 'c') goto yy405;
4898
440
    goto yy48;
4899
2.83k
yy308:
4900
2.83k
    YYDEBUG(308, *YYCURSOR);
4901
2.83k
    yyaccept = 4;
4902
2.83k
    yych = *(YYMARKER = ++YYCURSOR);
4903
2.83k
    if (yych == 'B') goto yy406;
4904
1.86k
    if (yych == 'b') goto yy406;
4905
307
    goto yy48;
4906
921
yy309:
4907
921
    YYDEBUG(309, *YYCURSOR);
4908
921
    yyaccept = 4;
4909
921
    yych = *(YYMARKER = ++YYCURSOR);
4910
921
    if (yych == 'O') goto yy407;
4911
321
    if (yych == 'o') goto yy407;
4912
0
    goto yy48;
4913
2.84k
yy310:
4914
2.84k
    YYDEBUG(310, *YYCURSOR);
4915
2.84k
    yyaccept = 4;
4916
2.84k
    yych = *(YYMARKER = ++YYCURSOR);
4917
2.84k
    if (yych == 'L') goto yy409;
4918
2.69k
    if (yych == 'l') goto yy409;
4919
49
    goto yy48;
4920
1.65k
yy311:
4921
1.65k
    YYDEBUG(311, *YYCURSOR);
4922
1.65k
    yyaccept = 4;
4923
1.65k
    yych = *(YYMARKER = ++YYCURSOR);
4924
1.65k
    if (yych == 'L') goto yy410;
4925
1.42k
    if (yych == 'l') goto yy410;
4926
768
    goto yy48;
4927
3.92k
yy312:
4928
3.92k
    YYDEBUG(312, *YYCURSOR);
4929
3.92k
    yyaccept = 4;
4930
3.92k
    yych = *(YYMARKER = ++YYCURSOR);
4931
3.92k
    if (yych == 'T') goto yy411;
4932
3.78k
    if (yych == 't') goto yy411;
4933
209
    goto yy48;
4934
6.02k
yy313:
4935
6.02k
    YYDEBUG(313, *YYCURSOR);
4936
6.02k
    yyaccept = 4;
4937
6.02k
    yych = *(YYMARKER = ++YYCURSOR);
4938
6.02k
    if (yych == 'E') goto yy412;
4939
5.89k
    if (yych == 'e') goto yy412;
4940
3.70k
    goto yy48;
4941
9.57k
yy314:
4942
9.57k
    YYDEBUG(314, *YYCURSOR);
4943
9.57k
    yyaccept = 4;
4944
9.57k
    yych = *(YYMARKER = ++YYCURSOR);
4945
9.57k
    if (yych == 'E') goto yy413;
4946
9.52k
    if (yych == 'e') goto yy413;
4947
19
    goto yy48;
4948
661
yy315:
4949
661
    YYDEBUG(315, *YYCURSOR);
4950
661
    yyaccept = 4;
4951
661
    yych = *(YYMARKER = ++YYCURSOR);
4952
661
    if (yych == 'T') goto yy414;
4953
643
    if (yych == 't') goto yy414;
4954
0
    goto yy48;
4955
500
yy316:
4956
500
    YYDEBUG(316, *YYCURSOR);
4957
500
    yyaccept = 4;
4958
500
    yych = *(YYMARKER = ++YYCURSOR);
4959
500
    if (yych == 'C') goto yy416;
4960
498
    if (yych == 'c') goto yy416;
4961
67
    goto yy48;
4962
7.95k
yy317:
4963
7.95k
    YYDEBUG(317, *YYCURSOR);
4964
7.95k
    yyaccept = 4;
4965
7.95k
    yych = *(YYMARKER = ++YYCURSOR);
4966
7.95k
    if (yych == 'E') goto yy417;
4967
7.12k
    if (yych == 'e') goto yy417;
4968
1.75k
    goto yy48;
4969
39.0k
yy318:
4970
39.0k
    YYDEBUG(318, *YYCURSOR);
4971
39.0k
    yyaccept = 21;
4972
39.0k
    yych = *(YYMARKER = ++YYCURSOR);
4973
39.0k
    if (yybm[256+yych] & 128) {
4974
237
      goto yy47;
4975
237
    }
4976
38.7k
    if (yych == '\\') goto yy164;
4977
38.7k
yy319:
4978
38.7k
    YYDEBUG(319, *YYCURSOR);
4979
38.7k
    yyleng = YYCURSOR - SCNG(yy_text);
4980
38.7k
#line 1625 "Zend/zend_language_scanner.l"
4981
38.7k
    {
4982
38.7k
  RETURN_TOKEN_WITH_IDENT(T_NEW);
4983
38.7k
}
4984
0
#line 4985 "Zend/zend_language_scanner.c"
4985
13.7k
yy320:
4986
13.7k
    YYDEBUG(320, *YYCURSOR);
4987
13.7k
    yyaccept = 4;
4988
13.7k
    yych = *(YYMARKER = ++YYCURSOR);
4989
13.7k
    if (yych <= 'V') {
4990
924
      if (yych == 'N') goto yy418;
4991
656
      if (yych <= 'U') goto yy48;
4992
514
      goto yy419;
4993
12.8k
    } else {
4994
12.8k
      if (yych <= 'n') {
4995
10.2k
        if (yych <= 'm') goto yy48;
4996
5.62k
        goto yy418;
4997
10.2k
      } else {
4998
2.52k
        if (yych == 'v') goto yy419;
4999
118
        goto yy48;
5000
2.52k
      }
5001
12.8k
    }
5002
3.24k
yy321:
5003
3.24k
    YYDEBUG(321, *YYCURSOR);
5004
3.24k
    yyaccept = 4;
5005
3.24k
    yych = *(YYMARKER = ++YYCURSOR);
5006
3.24k
    if (yych == 'T') goto yy420;
5007
2.72k
    if (yych == 't') goto yy420;
5008
741
    goto yy48;
5009
26.7k
yy322:
5010
26.7k
    YYDEBUG(322, *YYCURSOR);
5011
26.7k
    yyaccept = 4;
5012
26.7k
    yych = *(YYMARKER = ++YYCURSOR);
5013
26.7k
    if (yych == 'L') goto yy421;
5014
26.2k
    if (yych == 'l') goto yy421;
5015
1.18k
    goto yy48;
5016
2.54k
yy323:
5017
2.54k
    YYDEBUG(323, *YYCURSOR);
5018
2.54k
    yyaccept = 4;
5019
2.54k
    yych = *(YYMARKER = ++YYCURSOR);
5020
2.54k
    if (yych == 'D') goto yy422;
5021
2.53k
    if (yych == 'd') goto yy422;
5022
462
    goto yy48;
5023
5.50k
yy324:
5024
5.50k
    YYDEBUG(324, *YYCURSOR);
5025
5.50k
    yyaccept = 4;
5026
5.50k
    yych = *(YYMARKER = ++YYCURSOR);
5027
5.50k
    if (yych == 'U') goto yy423;
5028
5.30k
    if (yych == 'u') goto yy423;
5029
195
    goto yy48;
5030
9.93k
yy325:
5031
9.93k
    YYDEBUG(325, *YYCURSOR);
5032
9.93k
    yyaccept = 4;
5033
9.93k
    yych = *(YYMARKER = ++YYCURSOR);
5034
9.93k
    if (yych == 'U') goto yy424;
5035
9.83k
    if (yych == 'u') goto yy424;
5036
100
    goto yy48;
5037
6.40k
yy326:
5038
6.40k
    YYDEBUG(326, *YYCURSOR);
5039
6.40k
    yyaccept = 4;
5040
6.40k
    yych = *(YYMARKER = ++YYCURSOR);
5041
6.40k
    if (yych == 'T') goto yy425;
5042
6.24k
    if (yych == 't') goto yy425;
5043
281
    goto yy48;
5044
377
yy327:
5045
377
    YYDEBUG(327, *YYCURSOR);
5046
377
    yyaccept = 4;
5047
377
    yych = *(YYMARKER = ++YYCURSOR);
5048
377
    if (yych == 'T') goto yy426;
5049
364
    if (yych == 't') goto yy426;
5050
6
    goto yy48;
5051
4.07k
yy328:
5052
4.07k
    YYDEBUG(328, *YYCURSOR);
5053
4.07k
    yyaccept = 4;
5054
4.07k
    yych = *(YYMARKER = ++YYCURSOR);
5055
4.07k
    if (yych == 'O') goto yy427;
5056
3.27k
    if (yych == 'o') goto yy427;
5057
48
    goto yy48;
5058
4.88k
yy329:
5059
4.88k
    YYDEBUG(329, *YYCURSOR);
5060
4.88k
    yyaccept = 4;
5061
4.88k
    yych = *(YYMARKER = ++YYCURSOR);
5062
4.88k
    if (yych == 'I') goto yy428;
5063
4.52k
    if (yych == 'i') goto yy428;
5064
523
    goto yy48;
5065
15.7k
yy330:
5066
15.7k
    YYDEBUG(330, *YYCURSOR);
5067
15.7k
    yyaccept = 22;
5068
15.7k
    yych = *(YYMARKER = ++YYCURSOR);
5069
15.7k
    if (yybm[256+yych] & 128) {
5070
363
      goto yy47;
5071
363
    }
5072
15.3k
    if (yych == '\\') goto yy164;
5073
15.3k
yy331:
5074
15.3k
    YYDEBUG(331, *YYCURSOR);
5075
15.3k
    yyleng = YYCURSOR - SCNG(yy_text);
5076
15.3k
#line 1437 "Zend/zend_language_scanner.l"
5077
15.3k
    {
5078
15.3k
  RETURN_TOKEN_WITH_IDENT(T_TRY);
5079
15.3k
}
5080
0
#line 5081 "Zend/zend_language_scanner.c"
5081
7.28k
yy332:
5082
7.28k
    YYDEBUG(332, *YYCURSOR);
5083
7.28k
    yyaccept = 4;
5084
7.28k
    yych = *(YYMARKER = ++YYCURSOR);
5085
7.28k
    if (yych == 'E') goto yy429;
5086
7.01k
    if (yych == 'e') goto yy429;
5087
1.23k
    goto yy48;
5088
5.11k
yy333:
5089
5.11k
    YYDEBUG(333, *YYCURSOR);
5090
5.11k
    yyaccept = 23;
5091
5.11k
    yych = *(YYMARKER = ++YYCURSOR);
5092
5.11k
    if (yybm[256+yych] & 128) {
5093
1.59k
      goto yy47;
5094
1.59k
    }
5095
3.51k
    if (yych == '\\') goto yy164;
5096
3.51k
yy334:
5097
3.51k
    YYDEBUG(334, *YYCURSOR);
5098
3.51k
    yyleng = YYCURSOR - SCNG(yy_text);
5099
3.51k
#line 1741 "Zend/zend_language_scanner.l"
5100
3.51k
    {
5101
3.51k
  RETURN_TOKEN_WITH_IDENT(T_USE);
5102
3.51k
}
5103
0
#line 5104 "Zend/zend_language_scanner.c"
5104
55.4k
yy335:
5105
55.4k
    YYDEBUG(335, *YYCURSOR);
5106
55.4k
    yyaccept = 24;
5107
55.4k
    yych = *(YYMARKER = ++YYCURSOR);
5108
55.4k
    if (yybm[256+yych] & 128) {
5109
54.7k
      goto yy47;
5110
54.7k
    }
5111
684
    if (yych == '\\') goto yy164;
5112
684
yy336:
5113
684
    YYDEBUG(336, *YYCURSOR);
5114
684
    yyleng = YYCURSOR - SCNG(yy_text);
5115
684
#line 1633 "Zend/zend_language_scanner.l"
5116
684
    {
5117
684
  RETURN_TOKEN_WITH_IDENT(T_VAR);
5118
684
}
5119
0
#line 5120 "Zend/zend_language_scanner.c"
5120
764
yy337:
5121
764
    YYDEBUG(337, *YYCURSOR);
5122
764
    yyaccept = 4;
5123
764
    yych = *(YYMARKER = ++YYCURSOR);
5124
764
    if (yych == 'L') goto yy430;
5125
643
    if (yych == 'l') goto yy430;
5126
17
    goto yy48;
5127
1.11k
yy338:
5128
1.11k
    YYDEBUG(338, *YYCURSOR);
5129
1.11k
    yyaccept = 25;
5130
1.11k
    yych = *(YYMARKER = ++YYCURSOR);
5131
1.11k
    if (yybm[256+yych] & 128) {
5132
7
      goto yy47;
5133
7
    }
5134
1.11k
    if (yych == '\\') goto yy164;
5135
1.11k
yy339:
5136
1.11k
    YYDEBUG(339, *YYCURSOR);
5137
1.11k
    yyleng = YYCURSOR - SCNG(yy_text);
5138
1.11k
#line 1937 "Zend/zend_language_scanner.l"
5139
1.11k
    {
5140
1.11k
  RETURN_TOKEN_WITH_IDENT(T_LOGICAL_XOR);
5141
1.11k
}
5142
0
#line 5143 "Zend/zend_language_scanner.c"
5143
9.58k
yy340:
5144
9.58k
    YYDEBUG(340, *YYCURSOR);
5145
9.58k
    yyaccept = 4;
5146
9.58k
    yych = *(YYMARKER = ++YYCURSOR);
5147
9.58k
    if (yych == 'L') goto yy431;
5148
9.37k
    if (yych == 'l') goto yy431;
5149
1.33k
    goto yy48;
5150
11.0k
yy341:
5151
11.0k
    YYDEBUG(341, *YYCURSOR);
5152
11.0k
    ++YYCURSOR;
5153
11.0k
    YYFILL(1);
5154
11.0k
    yych = *YYCURSOR;
5155
11.0k
    if (yych <= '_') {
5156
10.7k
      if (yych <= '@') goto yy86;
5157
9.35k
      if (yych <= 'Z') goto yy211;
5158
107
      if (yych <= '^') goto yy86;
5159
1
      goto yy211;
5160
312
    } else {
5161
312
      if (yych <= '`') goto yy86;
5162
312
      if (yych <= 'z') goto yy211;
5163
56
      if (yych <= 0x7F) goto yy86;
5164
34
      goto yy211;
5165
56
    }
5166
5.33k
yy342:
5167
5.33k
    YYDEBUG(342, *YYCURSOR);
5168
5.33k
    yyaccept = 4;
5169
5.33k
    yych = *(YYMARKER = ++YYCURSOR);
5170
5.33k
    if (yych == 'L') goto yy432;
5171
4.04k
    if (yych == 'l') goto yy432;
5172
3.93k
    goto yy48;
5173
3.93k
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.99k
    if (yych == 'i') goto yy433;
5179
1.98k
    goto yy48;
5180
7.38k
yy344:
5181
7.38k
    YYDEBUG(344, *YYCURSOR);
5182
7.38k
    yyaccept = 4;
5183
7.38k
    yych = *(YYMARKER = ++YYCURSOR);
5184
7.38k
    if (yych <= 'U') {
5185
6.98k
      if (yych == 'I') goto yy434;
5186
2.07k
      if (yych <= 'T') goto yy48;
5187
2.06k
      goto yy435;
5188
2.07k
    } else {
5189
398
      if (yych <= 'i') {
5190
298
        if (yych <= 'h') goto yy48;
5191
90
        goto yy434;
5192
298
      } else {
5193
100
        if (yych == 'u') goto yy435;
5194
98
        goto yy48;
5195
100
      }
5196
398
    }
5197
37
yy345:
5198
37
    YYDEBUG(345, *YYCURSOR);
5199
37
    yyaccept = 4;
5200
37
    yych = *(YYMARKER = ++YYCURSOR);
5201
37
    if (yych == 'A') goto yy436;
5202
17
    if (yych == 'a') goto yy436;
5203
3
    goto yy48;
5204
504
yy346:
5205
504
    YYDEBUG(346, *YYCURSOR);
5206
504
    yyaccept = 4;
5207
504
    yych = *(YYMARKER = ++YYCURSOR);
5208
504
    if (yych == 'I') goto yy437;
5209
280
    if (yych == 'i') goto yy437;
5210
269
    goto yy48;
5211
3.76k
yy347:
5212
3.76k
    YYDEBUG(347, *YYCURSOR);
5213
3.76k
    yyaccept = 4;
5214
3.76k
    yych = *(YYMARKER = ++YYCURSOR);
5215
3.76k
    if (yych == 'E') goto yy438;
5216
301
    if (yych == 'e') goto yy438;
5217
298
    goto yy48;
5218
2.09k
yy348:
5219
2.09k
    YYDEBUG(348, *YYCURSOR);
5220
2.09k
    yyaccept = 4;
5221
2.09k
    yych = *(YYMARKER = ++YYCURSOR);
5222
2.09k
    if (yych == 'A') goto yy439;
5223
175
    if (yych == 'a') goto yy439;
5224
171
    goto yy48;
5225
878
yy349:
5226
878
    YYDEBUG(349, *YYCURSOR);
5227
878
    yyaccept = 4;
5228
878
    yych = *(YYMARKER = ++YYCURSOR);
5229
878
    if (yych == 'R') goto yy440;
5230
692
    if (yych == 'r') goto yy440;
5231
690
    goto yy48;
5232
1.11k
yy350:
5233
1.11k
    YYDEBUG(350, *YYCURSOR);
5234
1.11k
    yyaccept = 4;
5235
1.11k
    yych = *(YYMARKER = ++YYCURSOR);
5236
1.11k
    if (yych == 'R') goto yy441;
5237
332
    if (yych == 'r') goto yy441;
5238
332
    goto yy48;
5239
643
yy351:
5240
643
    YYDEBUG(351, *YYCURSOR);
5241
643
    ++YYCURSOR;
5242
643
    YYFILL(1);
5243
643
    yych = *YYCURSOR;
5244
643
    if (yybm[0+yych] & 2) {
5245
542
      goto yy225;
5246
542
    }
5247
101
    if (yych <= 0x00) goto yy86;
5248
97
    goto yy227;
5249
97
yy352:
5250
8
    YYDEBUG(352, *YYCURSOR);
5251
8
    yyaccept = 26;
5252
8
    YYMARKER = ++YYCURSOR;
5253
8
    YYFILL(1);
5254
8
    yych = *YYCURSOR;
5255
8
    if (yybm[0+yych] & 2) {
5256
8
      goto yy225;
5257
8
    }
5258
0
    if (yych <= 0x00) goto yy89;
5259
0
    goto yy84;
5260
33
yy353:
5261
33
    YYDEBUG(353, *YYCURSOR);
5262
33
    ++YYCURSOR;
5263
33
    YYFILL(1);
5264
33
    yych = *YYCURSOR;
5265
33
    if (yych <= '\f') {
5266
2
      if (yych <= 0x00) goto yy86;
5267
0
      if (yych == '\n') goto yy84;
5268
0
      goto yy225;
5269
31
    } else {
5270
31
      if (yych <= '\r') goto yy84;
5271
31
      if (yych == '.') goto yy442;
5272
31
      goto yy225;
5273
31
    }
5274
11.2k
yy354:
5275
11.2k
    YYDEBUG(354, *YYCURSOR);
5276
11.2k
    ++YYCURSOR;
5277
11.2k
    YYFILL(1);
5278
11.2k
    yych = *YYCURSOR;
5279
11.2k
    if (yych <= '\f') {
5280
68
      if (yych <= 0x00) goto yy86;
5281
18
      if (yych == '\n') goto yy84;
5282
12
      goto yy225;
5283
11.1k
    } else {
5284
11.1k
      if (yych <= '\r') goto yy84;
5285
9.21k
      if (yych == '*') goto yy443;
5286
100
      goto yy225;
5287
9.21k
    }
5288
9.43k
yy355:
5289
9.43k
    YYDEBUG(355, *YYCURSOR);
5290
9.43k
    ++YYCURSOR;
5291
9.43k
    YYFILL(1);
5292
9.43k
    yych = *YYCURSOR;
5293
9.43k
    YYDEBUG(356, *YYCURSOR);
5294
9.43k
    if (yybm[0+yych] & 64) {
5295
56
      goto yy355;
5296
56
    }
5297
9.37k
    if (yych <= 0x00) goto yy86;
5298
9.36k
    if (yych == '/') goto yy84;
5299
2.63k
    goto yy230;
5300
2.63k
yy357:
5301
1.44k
    YYDEBUG(357, *YYCURSOR);
5302
1.44k
    yych = *++YYCURSOR;
5303
1.44k
    if (yych == 'A') goto yy445;
5304
1.44k
    if (yych == 'a') goto yy445;
5305
16
    goto yy86;
5306
24
yy358:
5307
24
    YYDEBUG(358, *YYCURSOR);
5308
24
    yych = *++YYCURSOR;
5309
24
    if (yych == 'A') goto yy446;
5310
12
    if (yych == 'a') goto yy446;
5311
0
    goto yy86;
5312
218
yy359:
5313
218
    YYDEBUG(359, *YYCURSOR);
5314
218
    yych = *++YYCURSOR;
5315
218
    if (yych == 'L') goto yy447;
5316
218
    if (yych == 'l') goto yy447;
5317
20
    goto yy86;
5318
210
yy360:
5319
210
    YYDEBUG(360, *YYCURSOR);
5320
210
    yych = *++YYCURSOR;
5321
210
    if (yych == 'B') goto yy448;
5322
210
    if (yych == 'b') goto yy448;
5323
0
    goto yy86;
5324
179
yy361:
5325
179
    YYDEBUG(361, *YYCURSOR);
5326
179
    yych = *++YYCURSOR;
5327
179
    if (yych == 'A') goto yy449;
5328
179
    if (yych == 'a') goto yy449;
5329
26
    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.41k
    if (yych == 'e') goto yy454;
5335
1.17k
    goto yy451;
5336
1.62k
yy363:
5337
1.62k
    YYDEBUG(363, *YYCURSOR);
5338
1.62k
    yych = *++YYCURSOR;
5339
1.62k
    if (yych == 'E') goto yy455;
5340
1.62k
    if (yych == 'e') goto yy455;
5341
1.29k
    goto yy86;
5342
1.29k
yy364:
5343
8
    YYDEBUG(364, *YYCURSOR);
5344
8
    yych = *++YYCURSOR;
5345
8
    if (yych == 'L') goto yy456;
5346
8
    if (yych == 'l') goto yy456;
5347
6
    goto yy86;
5348
4.53k
yy365:
5349
4.53k
    YYDEBUG(365, *YYCURSOR);
5350
4.53k
    yych = *++YYCURSOR;
5351
4.53k
    if (yych == 'I') goto yy458;
5352
4.53k
    if (yych == 'i') goto yy458;
5353
777
    goto yy86;
5354
1.51k
yy366:
5355
1.51k
    YYDEBUG(366, *YYCURSOR);
5356
1.51k
    yych = *++YYCURSOR;
5357
1.51k
    if (yych == 'E') goto yy459;
5358
1.51k
    if (yych == 'e') goto yy459;
5359
151
    goto yy86;
5360
151
yy367:
5361
78
    YYDEBUG(367, *YYCURSOR);
5362
78
    yych = *++YYCURSOR;
5363
78
    if (yych == 'D') goto yy460;
5364
78
    if (yych == 'd') goto yy460;
5365
2
    goto yy86;
5366
8.67k
yy368:
5367
8.67k
    YYDEBUG(368, *YYCURSOR);
5368
8.67k
    ++YYCURSOR;
5369
8.67k
    YYFILL(1);
5370
8.67k
    yych = *YYCURSOR;
5371
8.67k
    YYDEBUG(369, *YYCURSOR);
5372
8.67k
    if (yych <= '\f') {
5373
2.69k
      if (yych <= 0x08) goto yy129;
5374
2.68k
      if (yych <= '\n') goto yy368;
5375
0
      goto yy129;
5376
5.98k
    } else {
5377
5.98k
      if (yych <= '\r') goto yy368;
5378
5.97k
      if (yych == ' ') goto yy368;
5379
2.95k
      goto yy129;
5380
5.97k
    }
5381
677
yy370:
5382
677
    YYDEBUG(370, *YYCURSOR);
5383
677
    yych = *++YYCURSOR;
5384
677
    if (yych == '"') goto yy86;
5385
677
    if (yych <= '/') goto yy463;
5386
254
    if (yych <= '9') goto yy86;
5387
254
    goto yy463;
5388
2.58k
yy371:
5389
2.58k
    YYDEBUG(371, *YYCURSOR);
5390
2.58k
    yych = *++YYCURSOR;
5391
2.58k
    if (yych == '\'') goto yy86;
5392
2.58k
    if (yych <= '/') goto yy465;
5393
2.58k
    if (yych <= '9') goto yy86;
5394
2.58k
    goto yy465;
5395
480k
yy372:
5396
480k
    YYDEBUG(372, *YYCURSOR);
5397
480k
    ++YYCURSOR;
5398
480k
    YYFILL(2);
5399
480k
    yych = *YYCURSOR;
5400
480k
    YYDEBUG(373, *YYCURSOR);
5401
480k
    if (yych <= '@') {
5402
156k
      if (yych <= '\f') {
5403
87.6k
        if (yych == '\n') goto yy466;
5404
7.74k
        goto yy86;
5405
87.6k
      } else {
5406
68.7k
        if (yych <= '\r') goto yy468;
5407
68.0k
        if (yych <= '/') goto yy86;
5408
54.0k
        if (yych <= '9') goto yy372;
5409
7.20k
        goto yy86;
5410
54.0k
      }
5411
324k
    } else {
5412
324k
      if (yych <= '_') {
5413
97.5k
        if (yych <= 'Z') goto yy372;
5414
5.01k
        if (yych <= '^') goto yy86;
5415
2.10k
        goto yy372;
5416
226k
      } else {
5417
226k
        if (yych <= '`') goto yy86;
5418
226k
        if (yych <= 'z') goto yy372;
5419
106k
        if (yych <= 0x7F) goto yy86;
5420
105k
        goto yy372;
5421
106k
      }
5422
324k
    }
5423
2.00k
yy374:
5424
2.00k
    YYDEBUG(374, *YYCURSOR);
5425
2.00k
    yyaccept = 4;
5426
2.00k
    yych = *(YYMARKER = ++YYCURSOR);
5427
2.00k
    if (yych == 'R') goto yy469;
5428
1.47k
    if (yych == 'r') goto yy469;
5429
13
    goto yy48;
5430
9.57k
yy375:
5431
9.57k
    YYDEBUG(375, *YYCURSOR);
5432
9.57k
    yyaccept = 4;
5433
9.57k
    yych = *(YYMARKER = ++YYCURSOR);
5434
9.57k
    if (yych == 'Y') goto yy470;
5435
9.46k
    if (yych == 'y') goto yy470;
5436
394
    goto yy48;
5437
596
yy376:
5438
596
    YYDEBUG(376, *YYCURSOR);
5439
596
    yyaccept = 4;
5440
596
    yych = *(YYMARKER = ++YYCURSOR);
5441
596
    if (yych == 'K') goto yy472;
5442
570
    if (yych == 'k') goto yy472;
5443
8
    goto yy48;
5444
5.55k
yy377:
5445
5.55k
    YYDEBUG(377, *YYCURSOR);
5446
5.55k
    yyaccept = 4;
5447
5.55k
    yych = *(YYMARKER = ++YYCURSOR);
5448
5.55k
    if (yych == 'A') goto yy474;
5449
5.43k
    if (yych == 'a') goto yy474;
5450
5.21k
    goto yy48;
5451
5.21k
yy378:
5452
1.34k
    YYDEBUG(378, *YYCURSOR);
5453
1.34k
    yyaccept = 27;
5454
1.34k
    yych = *(YYMARKER = ++YYCURSOR);
5455
1.34k
    if (yybm[256+yych] & 128) {
5456
48
      goto yy47;
5457
48
    }
5458
1.30k
    if (yych == '\\') goto yy164;
5459
1.30k
yy379:
5460
1.30k
    YYDEBUG(379, *YYCURSOR);
5461
1.30k
    yyleng = YYCURSOR - SCNG(yy_text);
5462
1.30k
#line 1525 "Zend/zend_language_scanner.l"
5463
1.30k
    {
5464
1.30k
  RETURN_TOKEN_WITH_IDENT(T_CASE);
5465
1.30k
}
5466
0
#line 5467 "Zend/zend_language_scanner.c"
5467
15.5k
yy380:
5468
15.5k
    YYDEBUG(380, *YYCURSOR);
5469
15.5k
    yyaccept = 4;
5470
15.5k
    yych = *(YYMARKER = ++YYCURSOR);
5471
15.5k
    if (yych == 'H') goto yy475;
5472
15.5k
    if (yych == 'h') goto yy475;
5473
65
    goto yy48;
5474
33.0k
yy381:
5475
33.0k
    YYDEBUG(381, *YYCURSOR);
5476
33.0k
    yyaccept = 4;
5477
33.0k
    yych = *(YYMARKER = ++YYCURSOR);
5478
33.0k
    if (yych == 'S') goto yy477;
5479
32.9k
    if (yych == 's') goto yy477;
5480
673
    goto yy48;
5481
673
yy382:
5482
518
    YYDEBUG(382, *YYCURSOR);
5483
518
    yyaccept = 4;
5484
518
    yych = *(YYMARKER = ++YYCURSOR);
5485
518
    if (yych == 'E') goto yy479;
5486
454
    if (yych == 'e') goto yy479;
5487
0
    goto yy48;
5488
14.0k
yy383:
5489
14.0k
    YYDEBUG(383, *YYCURSOR);
5490
14.0k
    yyaccept = 4;
5491
14.0k
    yych = *(YYMARKER = ++YYCURSOR);
5492
14.0k
    if (yych == 'T') goto yy481;
5493
13.4k
    if (yych == 't') goto yy481;
5494
1.42k
    goto yy48;
5495
1.75k
yy384:
5496
1.75k
    YYDEBUG(384, *YYCURSOR);
5497
1.75k
    yyaccept = 4;
5498
1.75k
    yych = *(YYMARKER = ++YYCURSOR);
5499
1.75k
    if (yych == 'I') goto yy483;
5500
1.64k
    if (yych == 'i') goto yy483;
5501
1.46k
    goto yy48;
5502
2.49k
yy385:
5503
2.49k
    YYDEBUG(385, *YYCURSOR);
5504
2.49k
    yyaccept = 4;
5505
2.49k
    yych = *(YYMARKER = ++YYCURSOR);
5506
2.49k
    if (yych == 'A') goto yy484;
5507
2.48k
    if (yych == 'a') goto yy484;
5508
118
    goto yy48;
5509
330
yy386:
5510
330
    YYDEBUG(386, *YYCURSOR);
5511
330
    yyaccept = 4;
5512
330
    yych = *(YYMARKER = ++YYCURSOR);
5513
330
    if (yych == 'U') goto yy485;
5514
290
    if (yych == 'u') goto yy485;
5515
4
    goto yy48;
5516
37.4k
yy387:
5517
37.4k
    YYDEBUG(387, *YYCURSOR);
5518
37.4k
    yyaccept = 28;
5519
37.4k
    yych = *(YYMARKER = ++YYCURSOR);
5520
37.4k
    if (yybm[256+yych] & 128) {
5521
409
      goto yy47;
5522
409
    }
5523
36.9k
    if (yych == '\\') goto yy164;
5524
36.9k
yy388:
5525
36.9k
    YYDEBUG(388, *YYCURSOR);
5526
36.9k
    yyleng = YYCURSOR - SCNG(yy_text);
5527
36.9k
#line 1545 "Zend/zend_language_scanner.l"
5528
36.9k
    {
5529
36.9k
  RETURN_TOKEN_WITH_IDENT(T_ECHO);
5530
36.9k
}
5531
0
#line 5532 "Zend/zend_language_scanner.c"
5532
1.57k
yy389:
5533
1.57k
    YYDEBUG(389, *YYCURSOR);
5534
1.57k
    yyaccept = 29;
5535
1.57k
    yych = *(YYMARKER = ++YYCURSOR);
5536
1.57k
    if (yych <= '\\') {
5537
1.42k
      if (yych <= 'H') {
5538
788
        if (yych <= '/') goto yy390;
5539
18
        if (yych <= '9') goto yy47;
5540
18
        if (yych >= 'A') goto yy47;
5541
632
      } else {
5542
632
        if (yych <= 'I') goto yy486;
5543
564
        if (yych <= 'Z') goto yy47;
5544
0
        if (yych >= '\\') goto yy164;
5545
0
      }
5546
1.42k
    } else {
5547
153
      if (yych <= 'h') {
5548
2
        if (yych == '_') goto yy47;
5549
2
        if (yych >= 'a') goto yy47;
5550
151
      } else {
5551
151
        if (yych <= 'i') goto yy486;
5552
6
        if (yych <= 'z') goto yy47;
5553
6
        if (yych >= 0x80) goto yy47;
5554
6
      }
5555
153
    }
5556
790
yy390:
5557
790
    YYDEBUG(390, *YYCURSOR);
5558
790
    yyleng = YYCURSOR - SCNG(yy_text);
5559
790
#line 1465 "Zend/zend_language_scanner.l"
5560
790
    {
5561
790
  RETURN_TOKEN_WITH_IDENT(T_ELSE);
5562
790
}
5563
0
#line 5564 "Zend/zend_language_scanner.c"
5564
1.65k
yy391:
5565
1.65k
    YYDEBUG(391, *YYCURSOR);
5566
1.65k
    yyaccept = 4;
5567
1.65k
    yych = *(YYMARKER = ++YYCURSOR);
5568
1.65k
    if (yych == 'Y') goto yy487;
5569
616
    if (yych == 'y') goto yy487;
5570
8
    goto yy48;
5571
464
yy392:
5572
464
    YYDEBUG(392, *YYCURSOR);
5573
464
    yyaccept = 4;
5574
464
    yych = *(YYMARKER = ++YYCURSOR);
5575
464
    if (yych == 'E') goto yy489;
5576
300
    if (yych == 'e') goto yy489;
5577
18
    goto yy48;
5578
494
yy393:
5579
494
    YYDEBUG(393, *YYCURSOR);
5580
494
    yyaccept = 4;
5581
494
    yych = *(YYMARKER = ++YYCURSOR);
5582
494
    if (yych == 'O') goto yy490;
5583
84
    if (yych == 'o') goto yy490;
5584
2
    goto yy48;
5585
1.21k
yy394:
5586
1.21k
    YYDEBUG(394, *YYCURSOR);
5587
1.21k
    yyaccept = 4;
5588
1.21k
    yych = *(YYMARKER = ++YYCURSOR);
5589
1.21k
    if (yych == 'F') goto yy491;
5590
268
    if (yych == 'f') goto yy491;
5591
61
    goto yy48;
5592
3.10k
yy395:
5593
3.10k
    YYDEBUG(395, *YYCURSOR);
5594
3.10k
    yyaccept = 4;
5595
3.10k
    yych = *(YYMARKER = ++YYCURSOR);
5596
3.10k
    if (yych == 'W') goto yy493;
5597
2.85k
    if (yych == 'w') goto yy493;
5598
2.83k
    goto yy48;
5599
3.04k
yy396:
5600
3.04k
    YYDEBUG(396, *YYCURSOR);
5601
3.04k
    yyaccept = 4;
5602
3.04k
    yych = *(YYMARKER = ++YYCURSOR);
5603
3.04k
    if (yych == 'H') goto yy494;
5604
1.48k
    if (yych == 'h') goto yy494;
5605
1.35k
    goto yy48;
5606
10.8k
yy397:
5607
10.8k
    YYDEBUG(397, *YYCURSOR);
5608
10.8k
    yyaccept = 4;
5609
10.8k
    yych = *(YYMARKER = ++YYCURSOR);
5610
10.8k
    if (yych <= 0x1F) {
5611
8.78k
      if (yych <= '\n') {
5612
2
        if (yych <= 0x08) goto yy48;
5613
0
        goto yy495;
5614
8.78k
      } else {
5615
8.78k
        if (yych == '\r') goto yy495;
5616
56
        goto yy48;
5617
8.78k
      }
5618
8.78k
    } else {
5619
2.02k
      if (yych <= '#') {
5620
1.55k
        if (yych <= ' ') goto yy495;
5621
612
        if (yych <= '"') goto yy48;
5622
612
        goto yy497;
5623
612
      } else {
5624
469
        if (yych == '/') goto yy498;
5625
467
        goto yy48;
5626
469
      }
5627
2.02k
    }
5628
1.17k
yy398:
5629
1.17k
    YYDEBUG(398, *YYCURSOR);
5630
1.17k
    yyaccept = 30;
5631
1.17k
    yych = *(YYMARKER = ++YYCURSOR);
5632
1.17k
    if (yybm[256+yych] & 128) {
5633
40
      goto yy47;
5634
40
    }
5635
1.13k
    if (yych == '\\') goto yy164;
5636
1.13k
yy399:
5637
1.13k
    YYDEBUG(399, *YYCURSOR);
5638
1.13k
    yyleng = YYCURSOR - SCNG(yy_text);
5639
1.13k
#line 1717 "Zend/zend_language_scanner.l"
5640
1.13k
    {
5641
1.13k
  RETURN_TOKEN_WITH_IDENT(T_EVAL);
5642
1.13k
}
5643
0
#line 5644 "Zend/zend_language_scanner.c"
5644
258
yy400:
5645
258
    YYDEBUG(400, *YYCURSOR);
5646
258
    yyaccept = 31;
5647
258
    yych = *(YYMARKER = ++YYCURSOR);
5648
258
    if (yybm[256+yych] & 128) {
5649
0
      goto yy47;
5650
0
    }
5651
258
    if (yych == '\\') goto yy164;
5652
256
yy401:
5653
256
    YYDEBUG(401, *YYCURSOR);
5654
256
    yyleng = YYCURSOR - SCNG(yy_text);
5655
256
#line 1398 "Zend/zend_language_scanner.l"
5656
256
    {
5657
256
  RETURN_TOKEN_WITH_IDENT(T_EXIT);
5658
256
}
5659
0
#line 5660 "Zend/zend_language_scanner.c"
5660
3.43k
yy402:
5661
3.43k
    YYDEBUG(402, *YYCURSOR);
5662
3.43k
    yyaccept = 4;
5663
3.43k
    yych = *(YYMARKER = ++YYCURSOR);
5664
3.43k
    if (yych == 'N') goto yy499;
5665
3.27k
    if (yych == 'n') goto yy499;
5666
12
    goto yy48;
5667
1.35k
yy403:
5668
1.35k
    YYDEBUG(403, *YYCURSOR);
5669
1.35k
    yyaccept = 4;
5670
1.35k
    yych = *(YYMARKER = ++YYCURSOR);
5671
1.35k
    if (yych == 'L') goto yy500;
5672
1.18k
    if (yych == 'l') goto yy500;
5673
25
    goto yy48;
5674
13.0k
yy404:
5675
13.0k
    YYDEBUG(404, *YYCURSOR);
5676
13.0k
    yyaccept = 4;
5677
13.0k
    yych = *(YYMARKER = ++YYCURSOR);
5678
13.0k
    if (yych == 'A') goto yy502;
5679
13.0k
    if (yych == 'a') goto yy502;
5680
862
    goto yy48;
5681
37.1k
yy405:
5682
37.1k
    YYDEBUG(405, *YYCURSOR);
5683
37.1k
    yyaccept = 4;
5684
37.1k
    yych = *(YYMARKER = ++YYCURSOR);
5685
37.1k
    if (yych == 'T') goto yy503;
5686
36.9k
    if (yych == 't') goto yy503;
5687
1.61k
    goto yy48;
5688
2.52k
yy406:
5689
2.52k
    YYDEBUG(406, *YYCURSOR);
5690
2.52k
    yyaccept = 4;
5691
2.52k
    yych = *(YYMARKER = ++YYCURSOR);
5692
2.52k
    if (yych == 'A') goto yy504;
5693
1.58k
    if (yych == 'a') goto yy504;
5694
259
    goto yy48;
5695
921
yy407:
5696
921
    YYDEBUG(407, *YYCURSOR);
5697
921
    yyaccept = 32;
5698
921
    yych = *(YYMARKER = ++YYCURSOR);
5699
921
    if (yybm[256+yych] & 128) {
5700
147
      goto yy47;
5701
147
    }
5702
774
    if (yych == '\\') goto yy164;
5703
774
yy408:
5704
774
    YYDEBUG(408, *YYCURSOR);
5705
774
    yyleng = YYCURSOR - SCNG(yy_text);
5706
774
#line 1541 "Zend/zend_language_scanner.l"
5707
774
    {
5708
774
  RETURN_TOKEN_WITH_IDENT(T_GOTO);
5709
774
}
5710
0
#line 5711 "Zend/zend_language_scanner.c"
5711
2.79k
yy409:
5712
2.79k
    YYDEBUG(409, *YYCURSOR);
5713
2.79k
    yyaccept = 4;
5714
2.79k
    yych = *(YYMARKER = ++YYCURSOR);
5715
2.79k
    if (yych == 'E') goto yy505;
5716
2.13k
    if (yych == 'e') goto yy505;
5717
561
    goto yy48;
5718
884
yy410:
5719
884
    YYDEBUG(410, *YYCURSOR);
5720
884
    yyaccept = 4;
5721
884
    yych = *(YYMARKER = ++YYCURSOR);
5722
884
    if (yych == 'U') goto yy506;
5723
693
    if (yych == 'u') goto yy506;
5724
42
    goto yy48;
5725
3.71k
yy411:
5726
3.71k
    YYDEBUG(411, *YYCURSOR);
5727
3.71k
    yyaccept = 4;
5728
3.71k
    yych = *(YYMARKER = ++YYCURSOR);
5729
3.71k
    if (yych <= 'E') {
5730
159
      if (yych == 'A') goto yy507;
5731
97
      if (yych <= 'D') goto yy48;
5732
46
      goto yy508;
5733
3.55k
    } else {
5734
3.55k
      if (yych <= 'a') {
5735
465
        if (yych <= '`') goto yy48;
5736
437
        goto yy507;
5737
3.09k
      } else {
5738
3.09k
        if (yych == 'e') goto yy508;
5739
95
        goto yy48;
5740
3.09k
      }
5741
3.55k
    }
5742
2.31k
yy412:
5743
2.31k
    YYDEBUG(412, *YYCURSOR);
5744
2.31k
    yyaccept = 4;
5745
2.31k
    yych = *(YYMARKER = ++YYCURSOR);
5746
2.31k
    if (yych == 'R') goto yy509;
5747
2.19k
    if (yych == 'r') goto yy509;
5748
674
    goto yy48;
5749
9.55k
yy413:
5750
9.55k
    YYDEBUG(413, *YYCURSOR);
5751
9.55k
    yyaccept = 4;
5752
9.55k
    yych = *(YYMARKER = ++YYCURSOR);
5753
9.55k
    if (yych == 'T') goto yy510;
5754
9.51k
    if (yych == 't') goto yy510;
5755
46
    goto yy48;
5756
661
yy414:
5757
661
    YYDEBUG(414, *YYCURSOR);
5758
661
    yyaccept = 33;
5759
661
    yych = *(YYMARKER = ++YYCURSOR);
5760
661
    if (yybm[256+yych] & 128) {
5761
16
      goto yy47;
5762
16
    }
5763
645
    if (yych == '\\') goto yy164;
5764
645
yy415:
5765
645
    YYDEBUG(415, *YYCURSOR);
5766
645
    yyleng = YYCURSOR - SCNG(yy_text);
5767
645
#line 1813 "Zend/zend_language_scanner.l"
5768
645
    {
5769
645
  RETURN_TOKEN_WITH_IDENT(T_LIST);
5770
645
}
5771
0
#line 5772 "Zend/zend_language_scanner.c"
5772
433
yy416:
5773
433
    YYDEBUG(416, *YYCURSOR);
5774
433
    yyaccept = 4;
5775
433
    yych = *(YYMARKER = ++YYCURSOR);
5776
433
    if (yych == 'H') goto yy512;
5777
433
    if (yych == 'h') goto yy512;
5778
2
    goto yy48;
5779
6.20k
yy417:
5780
6.20k
    YYDEBUG(417, *YYCURSOR);
5781
6.20k
    yyaccept = 4;
5782
6.20k
    yych = *(YYMARKER = ++YYCURSOR);
5783
6.20k
    if (yych == 'S') goto yy514;
5784
5.75k
    if (yych == 's') goto yy514;
5785
635
    goto yy48;
5786
5.89k
yy418:
5787
5.89k
    YYDEBUG(418, *YYCURSOR);
5788
5.89k
    yyaccept = 4;
5789
5.89k
    yych = *(YYMARKER = ++YYCURSOR);
5790
5.89k
    if (yych == 'T') goto yy515;
5791
5.79k
    if (yych == 't') goto yy515;
5792
41
    goto yy48;
5793
2.91k
yy419:
5794
2.91k
    YYDEBUG(419, *YYCURSOR);
5795
2.91k
    yyaccept = 4;
5796
2.91k
    yych = *(YYMARKER = ++YYCURSOR);
5797
2.91k
    if (yych == 'A') goto yy517;
5798
2.40k
    if (yych == 'a') goto yy517;
5799
26
    goto yy48;
5800
2.50k
yy420:
5801
2.50k
    YYDEBUG(420, *YYCURSOR);
5802
2.50k
    yyaccept = 4;
5803
2.50k
    yych = *(YYMARKER = ++YYCURSOR);
5804
2.50k
    if (yych == 'E') goto yy518;
5805
1.98k
    if (yych == 'e') goto yy518;
5806
153
    goto yy48;
5807
25.5k
yy421:
5808
25.5k
    YYDEBUG(421, *YYCURSOR);
5809
25.5k
    yyaccept = 4;
5810
25.5k
    yych = *(YYMARKER = ++YYCURSOR);
5811
25.5k
    if (yych == 'I') goto yy519;
5812
25.0k
    if (yych == 'i') goto yy519;
5813
489
    goto yy48;
5814
2.08k
yy422:
5815
2.08k
    YYDEBUG(422, *YYCURSOR);
5816
2.08k
    yyaccept = 4;
5817
2.08k
    yych = *(YYMARKER = ++YYCURSOR);
5818
2.08k
    if (yych == 'O') goto yy520;
5819
2.07k
    if (yych == 'o') goto yy520;
5820
47
    goto yy48;
5821
5.31k
yy423:
5822
5.31k
    YYDEBUG(423, *YYCURSOR);
5823
5.31k
    yyaccept = 4;
5824
5.31k
    yych = *(YYMARKER = ++YYCURSOR);
5825
5.31k
    if (yych == 'I') goto yy521;
5826
5.11k
    if (yych == 'i') goto yy521;
5827
14
    goto yy48;
5828
9.83k
yy424:
5829
9.83k
    YYDEBUG(424, *YYCURSOR);
5830
9.83k
    yyaccept = 4;
5831
9.83k
    yych = *(YYMARKER = ++YYCURSOR);
5832
9.83k
    if (yych == 'R') goto yy522;
5833
9.73k
    if (yych == 'r') goto yy522;
5834
95
    goto yy48;
5835
6.12k
yy425:
5836
6.12k
    YYDEBUG(425, *YYCURSOR);
5837
6.12k
    yyaccept = 4;
5838
6.12k
    yych = *(YYMARKER = ++YYCURSOR);
5839
6.12k
    if (yych == 'I') goto yy523;
5840
5.96k
    if (yych == 'i') goto yy523;
5841
121
    goto yy48;
5842
371
yy426:
5843
371
    YYDEBUG(426, *YYCURSOR);
5844
371
    yyaccept = 4;
5845
371
    yych = *(YYMARKER = ++YYCURSOR);
5846
371
    if (yych == 'C') goto yy524;
5847
358
    if (yych == 'c') goto yy524;
5848
34
    goto yy48;
5849
4.03k
yy427:
5850
4.03k
    YYDEBUG(427, *YYCURSOR);
5851
4.03k
    yyaccept = 4;
5852
4.03k
    yych = *(YYMARKER = ++YYCURSOR);
5853
4.03k
    if (yych == 'W') goto yy525;
5854
3.92k
    if (yych == 'w') goto yy525;
5855
249
    goto yy48;
5856
4.35k
yy428:
5857
4.35k
    YYDEBUG(428, *YYCURSOR);
5858
4.35k
    yyaccept = 4;
5859
4.35k
    yych = *(YYMARKER = ++YYCURSOR);
5860
4.35k
    if (yych == 'T') goto yy527;
5861
3.99k
    if (yych == 't') goto yy527;
5862
663
    goto yy48;
5863
6.05k
yy429:
5864
6.05k
    YYDEBUG(429, *YYCURSOR);
5865
6.05k
    yyaccept = 4;
5866
6.05k
    yych = *(YYMARKER = ++YYCURSOR);
5867
6.05k
    if (yych == 'T') goto yy529;
5868
5.78k
    if (yych == 't') goto yy529;
5869
3.18k
    goto yy48;
5870
3.18k
yy430:
5871
747
    YYDEBUG(430, *YYCURSOR);
5872
747
    yyaccept = 4;
5873
747
    yych = *(YYMARKER = ++YYCURSOR);
5874
747
    if (yych == 'E') goto yy531;
5875
627
    if (yych == 'e') goto yy531;
5876
0
    goto yy48;
5877
8.25k
yy431:
5878
8.25k
    YYDEBUG(431, *YYCURSOR);
5879
8.25k
    yyaccept = 4;
5880
8.25k
    yych = *(YYMARKER = ++YYCURSOR);
5881
8.25k
    if (yych == 'D') goto yy533;
5882
8.03k
    if (yych == 'd') goto yy533;
5883
29
    goto yy48;
5884
1.40k
yy432:
5885
1.40k
    YYDEBUG(432, *YYCURSOR);
5886
1.40k
    yyaccept = 4;
5887
1.40k
    yych = *(YYMARKER = ++YYCURSOR);
5888
1.40k
    if (yych == 'A') goto yy535;
5889
522
    if (yych == 'a') goto yy535;
5890
520
    goto yy48;
5891
810
yy433:
5892
810
    YYDEBUG(433, *YYCURSOR);
5893
810
    yyaccept = 4;
5894
810
    yych = *(YYMARKER = ++YYCURSOR);
5895
810
    if (yych == 'R') goto yy536;
5896
24
    if (yych == 'r') goto yy536;
5897
10
    goto yy48;
5898
5.00k
yy434:
5899
5.00k
    YYDEBUG(434, *YYCURSOR);
5900
5.00k
    yyaccept = 4;
5901
5.00k
    yych = *(YYMARKER = ++YYCURSOR);
5902
5.00k
    if (yych == 'L') goto yy537;
5903
276
    if (yych == 'l') goto yy537;
5904
186
    goto yy48;
5905
2.06k
yy435:
5906
2.06k
    YYDEBUG(435, *YYCURSOR);
5907
2.06k
    yyaccept = 4;
5908
2.06k
    yych = *(YYMARKER = ++YYCURSOR);
5909
2.06k
    if (yych == 'N') goto yy538;
5910
284
    if (yych == 'n') goto yy538;
5911
282
    goto yy48;
5912
282
yy436:
5913
34
    YYDEBUG(436, *YYCURSOR);
5914
34
    yyaccept = 4;
5915
34
    yych = *(YYMARKER = ++YYCURSOR);
5916
34
    if (yych == 'L') goto yy539;
5917
14
    if (yych == 'l') goto yy539;
5918
0
    goto yy48;
5919
235
yy437:
5920
235
    YYDEBUG(437, *YYCURSOR);
5921
235
    yyaccept = 4;
5922
235
    yych = *(YYMARKER = ++YYCURSOR);
5923
235
    if (yych == 'N') goto yy540;
5924
11
    if (yych == 'n') goto yy540;
5925
9
    goto yy48;
5926
3.46k
yy438:
5927
3.46k
    YYDEBUG(438, *YYCURSOR);
5928
3.46k
    yyaccept = 4;
5929
3.46k
    yych = *(YYMARKER = ++YYCURSOR);
5930
3.46k
    if (yych == 'T') goto yy541;
5931
17
    if (yych == 't') goto yy541;
5932
15
    goto yy48;
5933
1.92k
yy439:
5934
1.92k
    YYDEBUG(439, *YYCURSOR);
5935
1.92k
    yyaccept = 4;
5936
1.92k
    yych = *(YYMARKER = ++YYCURSOR);
5937
1.92k
    if (yych == 'M') goto yy542;
5938
24
    if (yych == 'm') goto yy542;
5939
20
    goto yy48;
5940
188
yy440:
5941
188
    YYDEBUG(440, *YYCURSOR);
5942
188
    yyaccept = 4;
5943
188
    yych = *(YYMARKER = ++YYCURSOR);
5944
188
    if (yych == 'O') goto yy543;
5945
2
    if (yych == 'o') goto yy543;
5946
2
    goto yy48;
5947
779
yy441:
5948
779
    YYDEBUG(441, *YYCURSOR);
5949
779
    yyaccept = 4;
5950
779
    yych = *(YYMARKER = ++YYCURSOR);
5951
779
    if (yych == 'A') goto yy544;
5952
1
    if (yych == 'a') goto yy544;
5953
1
    goto yy48;
5954
1
yy442:
5955
0
    YYDEBUG(442, *YYCURSOR);
5956
0
    ++YYCURSOR;
5957
0
    YYFILL(1);
5958
0
    yych = *YYCURSOR;
5959
0
    if (yych <= '\f') {
5960
0
      if (yych <= 0x00) goto yy86;
5961
0
      if (yych == '\n') goto yy84;
5962
0
      goto yy225;
5963
0
    } else {
5964
0
      if (yych <= '\r') goto yy84;
5965
0
      if (yych == '.') goto yy352;
5966
0
      goto yy225;
5967
0
    }
5968
180k
yy443:
5969
180k
    YYDEBUG(443, *YYCURSOR);
5970
180k
    ++YYCURSOR;
5971
180k
    YYFILL(1);
5972
180k
    yych = *YYCURSOR;
5973
180k
    YYDEBUG(444, *YYCURSOR);
5974
180k
    if (yybm[0+yych] & 128) {
5975
153k
      goto yy443;
5976
153k
    }
5977
27.3k
    if (yych <= 0x00) goto yy86;
5978
26.9k
    if (yych <= '\r') goto yy545;
5979
6.16k
    goto yy547;
5980
6.16k
yy445:
5981
1.42k
    YYDEBUG(445, *YYCURSOR);
5982
1.42k
    yych = *++YYCURSOR;
5983
1.42k
    if (yych == 'Y') goto yy549;
5984
1.42k
    if (yych == 'y') goto yy549;
5985
24
    goto yy86;
5986
24
yy446:
5987
24
    YYDEBUG(446, *YYCURSOR);
5988
24
    yych = *++YYCURSOR;
5989
24
    if (yych == 'R') goto yy551;
5990
12
    if (yych == 'r') goto yy551;
5991
12
    goto yy86;
5992
198
yy447:
5993
198
    YYDEBUG(447, *YYCURSOR);
5994
198
    yych = *++YYCURSOR;
5995
198
    if (yych == 'E') goto yy556;
5996
198
    if (yych == 'e') goto yy556;
5997
184
    goto yy553;
5998
210
yy448:
5999
210
    YYDEBUG(448, *YYCURSOR);
6000
210
    yych = *++YYCURSOR;
6001
210
    if (yych == 'L') goto yy557;
6002
210
    if (yych == 'l') goto yy557;
6003
18
    goto yy86;
6004
153
yy449:
6005
153
    YYDEBUG(449, *YYCURSOR);
6006
153
    yych = *++YYCURSOR;
6007
153
    if (yych == 'T') goto yy558;
6008
153
    if (yych == 't') goto yy558;
6009
0
    goto yy86;
6010
716
yy450:
6011
716
    YYDEBUG(450, *YYCURSOR);
6012
716
    ++YYCURSOR;
6013
716
    YYFILL(1);
6014
716
    yych = *YYCURSOR;
6015
1.89k
yy451:
6016
1.89k
    YYDEBUG(451, *YYCURSOR);
6017
1.89k
    if (yych <= 0x1F) {
6018
0
      if (yych == '\t') goto yy450;
6019
0
      goto yy86;
6020
1.89k
    } else {
6021
1.89k
      if (yych <= ' ') goto yy450;
6022
1.17k
      if (yych != ')') goto yy86;
6023
1.17k
    }
6024
440
    YYDEBUG(452, *YYCURSOR);
6025
440
    ++YYCURSOR;
6026
440
    YYDEBUG(453, *YYCURSOR);
6027
440
    yyleng = YYCURSOR - SCNG(yy_text);
6028
440
#line 1637 "Zend/zend_language_scanner.l"
6029
440
    {
6030
440
  RETURN_TOKEN(T_INT_CAST);
6031
440
}
6032
0
#line 6033 "Zend/zend_language_scanner.c"
6033
316
yy454:
6034
316
    YYDEBUG(454, *YYCURSOR);
6035
316
    yych = *++YYCURSOR;
6036
316
    if (yych == 'G') goto yy560;
6037
316
    if (yych == 'g') goto yy560;
6038
168
    goto yy86;
6039
326
yy455:
6040
326
    YYDEBUG(455, *YYCURSOR);
6041
326
    yych = *++YYCURSOR;
6042
326
    if (yych == 'C') goto yy561;
6043
326
    if (yych == 'c') goto yy561;
6044
2
    goto yy86;
6045
2
yy456:
6046
2
    YYDEBUG(456, *YYCURSOR);
6047
2
    ++YYCURSOR;
6048
2
    YYFILL(1);
6049
2
    yych = *YYCURSOR;
6050
2
    YYDEBUG(457, *YYCURSOR);
6051
2
    if (yych <= 0x1F) {
6052
0
      if (yych == '\t') goto yy456;
6053
0
      goto yy86;
6054
2
    } else {
6055
2
      if (yych <= ' ') goto yy456;
6056
2
      if (yych == ')') goto yy562;
6057
2
      goto yy86;
6058
2
    }
6059
3.75k
yy458:
6060
3.75k
    YYDEBUG(458, *YYCURSOR);
6061
3.75k
    yych = *++YYCURSOR;
6062
3.75k
    if (yych == 'N') goto yy564;
6063
3.75k
    if (yych == 'n') goto yy564;
6064
958
    goto yy86;
6065
1.36k
yy459:
6066
1.36k
    YYDEBUG(459, *YYCURSOR);
6067
1.36k
    yych = *++YYCURSOR;
6068
1.36k
    if (yych == 'T') goto yy565;
6069
1.36k
    if (yych == 't') goto yy565;
6070
1.31k
    goto yy86;
6071
1.31k
yy460:
6072
76
    YYDEBUG(460, *YYCURSOR);
6073
76
    ++YYCURSOR;
6074
76
    YYFILL(1);
6075
76
    yych = *YYCURSOR;
6076
76
    YYDEBUG(461, *YYCURSOR);
6077
76
    if (yych <= 0x1F) {
6078
0
      if (yych == '\t') goto yy460;
6079
0
      goto yy86;
6080
76
    } else {
6081
76
      if (yych <= ' ') goto yy460;
6082
76
      if (yych == ')') goto yy567;
6083
0
      goto yy86;
6084
76
    }
6085
1.53k
yy462:
6086
1.53k
    YYDEBUG(462, *YYCURSOR);
6087
1.53k
    ++YYCURSOR;
6088
1.53k
    YYFILL(3);
6089
1.53k
    yych = *YYCURSOR;
6090
2.21k
yy463:
6091
2.21k
    YYDEBUG(463, *YYCURSOR);
6092
2.21k
    if (yych <= 'Z') {
6093
743
      if (yych <= '/') {
6094
582
        if (yych == '"') goto yy569;
6095
488
        goto yy86;
6096
582
      } else {
6097
161
        if (yych <= '9') goto yy462;
6098
159
        if (yych <= '@') goto yy86;
6099
159
        goto yy462;
6100
159
      }
6101
1.47k
    } else {
6102
1.47k
      if (yych <= '`') {
6103
93
        if (yych == '_') goto yy462;
6104
93
        goto yy86;
6105
1.37k
      } else {
6106
1.37k
        if (yych <= 'z') goto yy462;
6107
871
        if (yych <= 0x7F) goto yy86;
6108
869
        goto yy462;
6109
871
      }
6110
1.47k
    }
6111
18.1k
yy464:
6112
18.1k
    YYDEBUG(464, *YYCURSOR);
6113
18.1k
    ++YYCURSOR;
6114
18.1k
    YYFILL(3);
6115
18.1k
    yych = *YYCURSOR;
6116
20.7k
yy465:
6117
20.7k
    YYDEBUG(465, *YYCURSOR);
6118
20.7k
    if (yych <= 'Z') {
6119
9.28k
      if (yych <= '/') {
6120
1.87k
        if (yych == '\'') goto yy569;
6121
258
        goto yy86;
6122
7.40k
      } else {
6123
7.40k
        if (yych <= '9') goto yy464;
6124
6.91k
        if (yych <= '@') goto yy86;
6125
6.38k
        goto yy464;
6126
6.91k
      }
6127
11.4k
    } else {
6128
11.4k
      if (yych <= '`') {
6129
195
        if (yych == '_') goto yy464;
6130
0
        goto yy86;
6131
11.2k
      } else {
6132
11.2k
        if (yych <= 'z') goto yy464;
6133
9.28k
        if (yych <= 0x7F) goto yy86;
6134
9.10k
        goto yy464;
6135
9.28k
      }
6136
11.4k
    }
6137
81.4k
yy466:
6138
81.4k
    YYDEBUG(466, *YYCURSOR);
6139
81.4k
    ++YYCURSOR;
6140
82.0k
yy467:
6141
82.0k
    YYDEBUG(467, *YYCURSOR);
6142
82.0k
    yyleng = YYCURSOR - SCNG(yy_text);
6143
82.0k
#line 2677 "Zend/zend_language_scanner.l"
6144
82.0k
    {
6145
82.0k
  char *s;
6146
82.0k
  unsigned char *saved_cursor;
6147
82.0k
  int bprefix = (yytext[0] != '<') ? 1 : 0, spacing = 0, indentation = 0;
6148
82.0k
  zend_heredoc_label *heredoc_label = emalloc(sizeof(zend_heredoc_label));
6149
82.0k
  bool is_heredoc = 1;
6150
6151
82.0k
  CG(zend_lineno)++;
6152
82.0k
  heredoc_label->length = yyleng-bprefix-3-1-(yytext[yyleng-2]=='\r'?1:0);
6153
82.0k
  s = yytext+bprefix+3;
6154
87.4k
  while ((*s == ' ') || (*s == '\t')) {
6155
5.37k
    s++;
6156
5.37k
    heredoc_label->length--;
6157
5.37k
  }
6158
6159
82.0k
  if (*s == '\'') {
6160
1.47k
    s++;
6161
1.47k
    heredoc_label->length -= 2;
6162
1.47k
    is_heredoc = 0;
6163
6164
1.47k
    BEGIN(ST_NOWDOC);
6165
80.5k
  } else {
6166
80.5k
    if (*s == '"') {
6167
10
      s++;
6168
10
      heredoc_label->length -= 2;
6169
10
    }
6170
6171
80.5k
    BEGIN(ST_HEREDOC);
6172
80.5k
  }
6173
6174
82.0k
  heredoc_label->label = estrndup(s, heredoc_label->length);
6175
82.0k
  heredoc_label->indentation_uses_spaces = 0;
6176
82.0k
  heredoc_label->indentation = 0;
6177
82.0k
  saved_cursor = YYCURSOR;
6178
6179
82.0k
  zend_ptr_stack_push(&SCNG(heredoc_label_stack), (void *) heredoc_label);
6180
6181
92.4k
  while (YYCURSOR < YYLIMIT && (*YYCURSOR == ' ' || *YYCURSOR == '\t')) {
6182
10.3k
    if (*YYCURSOR == '\t') {
6183
20
      spacing |= HEREDOC_USING_TABS;
6184
10.3k
    } else {
6185
10.3k
      spacing |= HEREDOC_USING_SPACES;
6186
10.3k
    }
6187
10.3k
    ++YYCURSOR;
6188
10.3k
    ++indentation;
6189
10.3k
  }
6190
6191
82.0k
  if (YYCURSOR == YYLIMIT) {
6192
77
    YYCURSOR = saved_cursor;
6193
77
    RETURN_TOKEN(T_START_HEREDOC);
6194
77
  }
6195
6196
  /* Check for ending label on the next line */
6197
81.9k
  if (heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, s, heredoc_label->length)) {
6198
1.04k
    if (!IS_LABEL_SUCCESSOR(YYCURSOR[heredoc_label->length])) {
6199
38
      if (spacing == (HEREDOC_USING_SPACES | HEREDOC_USING_TABS)) {
6200
0
        zend_throw_exception(zend_ce_parse_error, "Invalid indentation - tabs and spaces cannot be mixed", 0);
6201
0
        if (PARSER_MODE()) {
6202
0
          RETURN_TOKEN(T_ERROR);
6203
0
        }
6204
0
      }
6205
6206
38
      YYCURSOR = saved_cursor;
6207
38
      heredoc_label->indentation = indentation;
6208
6209
38
      BEGIN(ST_END_HEREDOC);
6210
38
      RETURN_TOKEN(T_START_HEREDOC);
6211
38
    }
6212
1.04k
  }
6213
6214
81.9k
  YYCURSOR = saved_cursor;
6215
6216
81.9k
  if (is_heredoc && !SCNG(heredoc_scan_ahead)) {
6217
11.9k
    zend_lex_state current_state;
6218
11.9k
    zend_string *saved_doc_comment = CG(doc_comment);
6219
11.9k
    int heredoc_nesting_level = 1;
6220
11.9k
    int first_token = 0;
6221
11.9k
    int error = 0;
6222
6223
11.9k
    zend_save_lexical_state(&current_state);
6224
6225
11.9k
    SCNG(heredoc_scan_ahead) = 1;
6226
11.9k
    SCNG(heredoc_indentation) = 0;
6227
11.9k
    SCNG(heredoc_indentation_uses_spaces) = 0;
6228
11.9k
    SCNG(on_event_context) = NULL;
6229
11.9k
    LANG_SCNG(on_event) = NULL;
6230
11.9k
    CG(doc_comment) = NULL;
6231
6232
11.9k
    zend_ptr_stack_reverse_apply(&current_state.heredoc_label_stack, copy_heredoc_label_stack);
6233
6234
11.9k
    zend_object *prev_exception = EG(exception);
6235
11.9k
    EG(exception) = NULL;
6236
2.07M
    while (heredoc_nesting_level) {
6237
2.06M
      zval zv;
6238
2.06M
      int retval;
6239
6240
2.06M
      ZVAL_UNDEF(&zv);
6241
2.06M
      retval = lex_scan(&zv, NULL);
6242
2.06M
      zval_ptr_dtor_nogc(&zv);
6243
6244
2.06M
      if (EG(exception)) {
6245
7.19k
        zend_clear_exception();
6246
7.19k
        break;
6247
7.19k
      }
6248
6249
2.05M
      if (!first_token) {
6250
11.9k
        first_token = retval;
6251
11.9k
      }
6252
6253
2.05M
      switch (retval) {
6254
68.9k
        case T_START_HEREDOC:
6255
68.9k
          ++heredoc_nesting_level;
6256
68.9k
          break;
6257
2.36k
        case T_END_HEREDOC:
6258
2.36k
          --heredoc_nesting_level;
6259
2.36k
          break;
6260
2.63k
        case END:
6261
2.63k
          heredoc_nesting_level = 0;
6262
2.05M
      }
6263
2.05M
    }
6264
11.9k
    EG(exception) = prev_exception;
6265
6266
11.9k
    if (
6267
11.9k
        (first_token == T_VARIABLE
6268
11.7k
         || first_token == T_DOLLAR_OPEN_CURLY_BRACES
6269
9.06k
         || first_token == T_CURLY_OPEN
6270
11.9k
        ) && SCNG(heredoc_indentation)) {
6271
4
      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
4
      error = 1;
6273
4
    }
6274
6275
11.9k
    heredoc_label->indentation = SCNG(heredoc_indentation);
6276
11.9k
    heredoc_label->indentation_uses_spaces = SCNG(heredoc_indentation_uses_spaces);
6277
6278
11.9k
    zend_restore_lexical_state(&current_state);
6279
11.9k
    SCNG(heredoc_scan_ahead) = 0;
6280
11.9k
    CG(increment_lineno) = 0;
6281
11.9k
    CG(doc_comment) = saved_doc_comment;
6282
6283
11.9k
    if (PARSER_MODE() && error) {
6284
4
      RETURN_TOKEN(T_ERROR);
6285
4
    }
6286
11.9k
  }
6287
6288
81.9k
  RETURN_TOKEN(T_START_HEREDOC);
6289
81.9k
}
6290
0
#line 6291 "Zend/zend_language_scanner.c"
6291
653
yy468:
6292
653
    YYDEBUG(468, *YYCURSOR);
6293
653
    yych = *++YYCURSOR;
6294
653
    if (yych == '\n') goto yy466;
6295
635
    goto yy467;
6296
1.98k
yy469:
6297
1.98k
    YYDEBUG(469, *YYCURSOR);
6298
1.98k
    yyaccept = 4;
6299
1.98k
    yych = *(YYMARKER = ++YYCURSOR);
6300
1.98k
    if (yych == 'A') goto yy570;
6301
1.46k
    if (yych == 'a') goto yy570;
6302
0
    goto yy48;
6303
9.17k
yy470:
6304
9.17k
    YYDEBUG(470, *YYCURSOR);
6305
9.17k
    yyaccept = 34;
6306
9.17k
    yych = *(YYMARKER = ++YYCURSOR);
6307
9.17k
    if (yybm[256+yych] & 128) {
6308
1.39k
      goto yy47;
6309
1.39k
    }
6310
7.78k
    if (yych == '\\') goto yy164;
6311
7.78k
yy471:
6312
7.78k
    YYDEBUG(471, *YYCURSOR);
6313
7.78k
    yyleng = YYCURSOR - SCNG(yy_text);
6314
7.78k
#line 1817 "Zend/zend_language_scanner.l"
6315
7.78k
    {
6316
7.78k
  RETURN_TOKEN_WITH_IDENT(T_ARRAY);
6317
7.78k
}
6318
0
#line 6319 "Zend/zend_language_scanner.c"
6319
588
yy472:
6320
588
    YYDEBUG(472, *YYCURSOR);
6321
588
    yyaccept = 35;
6322
588
    yych = *(YYMARKER = ++YYCURSOR);
6323
588
    if (yybm[256+yych] & 128) {
6324
2
      goto yy47;
6325
2
    }
6326
586
    if (yych == '\\') goto yy164;
6327
586
yy473:
6328
586
    YYDEBUG(473, *YYCURSOR);
6329
586
    yyleng = YYCURSOR - SCNG(yy_text);
6330
586
#line 1533 "Zend/zend_language_scanner.l"
6331
586
    {
6332
586
  RETURN_TOKEN_WITH_IDENT(T_BREAK);
6333
586
}
6334
0
#line 6335 "Zend/zend_language_scanner.c"
6335
337
yy474:
6336
337
    YYDEBUG(474, *YYCURSOR);
6337
337
    yyaccept = 4;
6338
337
    yych = *(YYMARKER = ++YYCURSOR);
6339
337
    if (yych == 'B') goto yy571;
6340
212
    if (yych == 'b') goto yy571;
6341
96
    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
247
      goto yy47;
6348
247
    }
6349
15.2k
    if (yych == '\\') goto yy164;
6350
15.2k
yy476:
6351
15.2k
    YYDEBUG(476, *YYCURSOR);
6352
15.2k
    yyleng = YYCURSOR - SCNG(yy_text);
6353
15.2k
#line 1441 "Zend/zend_language_scanner.l"
6354
15.2k
    {
6355
15.2k
  RETURN_TOKEN_WITH_IDENT(T_CATCH);
6356
15.2k
}
6357
0
#line 6358 "Zend/zend_language_scanner.c"
6358
32.4k
yy477:
6359
32.4k
    YYDEBUG(477, *YYCURSOR);
6360
32.4k
    yyaccept = 37;
6361
32.4k
    yych = *(YYMARKER = ++YYCURSOR);
6362
32.4k
    if (yybm[256+yych] & 128) {
6363
9.23k
      goto yy47;
6364
9.23k
    }
6365
23.1k
    if (yych == '\\') goto yy164;
6366
23.1k
yy478:
6367
23.1k
    YYDEBUG(478, *YYCURSOR);
6368
23.1k
    yyleng = YYCURSOR - SCNG(yy_text);
6369
23.1k
#line 1553 "Zend/zend_language_scanner.l"
6370
23.1k
    {
6371
23.1k
  RETURN_TOKEN_WITH_IDENT(T_CLASS);
6372
23.1k
}
6373
0
#line 6374 "Zend/zend_language_scanner.c"
6374
518
yy479:
6375
518
    YYDEBUG(479, *YYCURSOR);
6376
518
    yyaccept = 38;
6377
518
    yych = *(YYMARKER = ++YYCURSOR);
6378
518
    if (yybm[256+yych] & 128) {
6379
30
      goto yy47;
6380
30
    }
6381
488
    if (yych == '\\') goto yy164;
6382
488
yy480:
6383
488
    YYDEBUG(480, *YYCURSOR);
6384
488
    yyleng = YYCURSOR - SCNG(yy_text);
6385
488
#line 1629 "Zend/zend_language_scanner.l"
6386
488
    {
6387
488
  RETURN_TOKEN_WITH_IDENT(T_CLONE);
6388
488
}
6389
0
#line 6390 "Zend/zend_language_scanner.c"
6390
12.6k
yy481:
6391
12.6k
    YYDEBUG(481, *YYCURSOR);
6392
12.6k
    yyaccept = 39;
6393
12.6k
    yych = *(YYMARKER = ++YYCURSOR);
6394
12.6k
    if (yybm[256+yych] & 128) {
6395
1.87k
      goto yy47;
6396
1.87k
    }
6397
10.7k
    if (yych == '\\') goto yy164;
6398
10.7k
yy482:
6399
10.7k
    YYDEBUG(482, *YYCURSOR);
6400
10.7k
    yyleng = YYCURSOR - SCNG(yy_text);
6401
10.7k
#line 1414 "Zend/zend_language_scanner.l"
6402
10.7k
    {
6403
10.7k
  RETURN_TOKEN_WITH_IDENT(T_CONST);
6404
10.7k
}
6405
0
#line 6406 "Zend/zend_language_scanner.c"
6406
292
yy483:
6407
292
    YYDEBUG(483, *YYCURSOR);
6408
292
    yyaccept = 4;
6409
292
    yych = *(YYMARKER = ++YYCURSOR);
6410
292
    if (yych == 'N') goto yy572;
6411
179
    if (yych == 'n') goto yy572;
6412
4
    goto yy48;
6413
2.37k
yy484:
6414
2.37k
    YYDEBUG(484, *YYCURSOR);
6415
2.37k
    yyaccept = 4;
6416
2.37k
    yych = *(YYMARKER = ++YYCURSOR);
6417
2.37k
    if (yych == 'R') goto yy573;
6418
2.36k
    if (yych == 'r') goto yy573;
6419
777
    goto yy48;
6420
777
yy485:
6421
326
    YYDEBUG(485, *YYCURSOR);
6422
326
    yyaccept = 4;
6423
326
    yych = *(YYMARKER = ++YYCURSOR);
6424
326
    if (yych == 'L') goto yy574;
6425
286
    if (yych == 'l') goto yy574;
6426
2
    goto yy48;
6427
213
yy486:
6428
213
    YYDEBUG(486, *YYCURSOR);
6429
213
    yyaccept = 4;
6430
213
    yych = *(YYMARKER = ++YYCURSOR);
6431
213
    if (yych == 'F') goto yy575;
6432
145
    if (yych == 'f') goto yy575;
6433
0
    goto yy48;
6434
1.65k
yy487:
6435
1.65k
    YYDEBUG(487, *YYCURSOR);
6436
1.65k
    yyaccept = 40;
6437
1.65k
    yych = *(YYMARKER = ++YYCURSOR);
6438
1.65k
    if (yybm[256+yych] & 128) {
6439
0
      goto yy47;
6440
0
    }
6441
1.65k
    if (yych == '\\') goto yy164;
6442
1.65k
yy488:
6443
1.65k
    YYDEBUG(488, *YYCURSOR);
6444
1.65k
    yyleng = YYCURSOR - SCNG(yy_text);
6445
1.65k
#line 1757 "Zend/zend_language_scanner.l"
6446
1.65k
    {
6447
1.65k
  RETURN_TOKEN_WITH_IDENT(T_EMPTY);
6448
1.65k
}
6449
0
#line 6450 "Zend/zend_language_scanner.c"
6450
446
yy489:
6451
446
    YYDEBUG(489, *YYCURSOR);
6452
446
    yyaccept = 4;
6453
446
    yych = *(YYMARKER = ++YYCURSOR);
6454
446
    if (yych == 'C') goto yy577;
6455
369
    if (yych == 'c') goto yy577;
6456
105
    goto yy48;
6457
492
yy490:
6458
492
    YYDEBUG(490, *YYCURSOR);
6459
492
    yyaccept = 4;
6460
492
    yych = *(YYMARKER = ++YYCURSOR);
6461
492
    if (yych == 'R') goto yy578;
6462
82
    if (yych == 'r') goto yy578;
6463
0
    goto yy48;
6464
1.15k
yy491:
6465
1.15k
    YYDEBUG(491, *YYCURSOR);
6466
1.15k
    yyaccept = 41;
6467
1.15k
    yych = *(YYMARKER = ++YYCURSOR);
6468
1.15k
    if (yybm[256+yych] & 128) {
6469
51
      goto yy47;
6470
51
    }
6471
1.10k
    if (yych == '\\') goto yy164;
6472
1.10k
yy492:
6473
1.10k
    YYDEBUG(492, *YYCURSOR);
6474
1.10k
    yyleng = YYCURSOR - SCNG(yy_text);
6475
1.10k
#line 1461 "Zend/zend_language_scanner.l"
6476
1.10k
    {
6477
1.10k
  RETURN_TOKEN_WITH_IDENT(T_ENDIF);
6478
1.10k
}
6479
0
#line 6480 "Zend/zend_language_scanner.c"
6480
265
yy493:
6481
265
    YYDEBUG(493, *YYCURSOR);
6482
265
    yyaccept = 4;
6483
265
    yych = *(YYMARKER = ++YYCURSOR);
6484
265
    if (yych == 'I') goto yy580;
6485
22
    if (yych == 'i') goto yy580;
6486
0
    goto yy48;
6487
1.68k
yy494:
6488
1.68k
    YYDEBUG(494, *YYCURSOR);
6489
1.68k
    yyaccept = 4;
6490
1.68k
    yych = *(YYMARKER = ++YYCURSOR);
6491
1.68k
    if (yych == 'I') goto yy581;
6492
123
    if (yych == 'i') goto yy581;
6493
0
    goto yy48;
6494
100k
yy495:
6495
100k
    YYDEBUG(495, *YYCURSOR);
6496
100k
    ++YYCURSOR;
6497
100k
    YYFILL(10);
6498
100k
    yych = *YYCURSOR;
6499
100k
    YYDEBUG(496, *YYCURSOR);
6500
100k
    if (yych <= 'E') {
6501
97.9k
      if (yych <= ' ') {
6502
10.9k
        if (yych <= '\f') {
6503
2.17k
          if (yych <= 0x08) goto yy86;
6504
1.88k
          if (yych <= '\n') goto yy495;
6505
108
          goto yy86;
6506
8.77k
        } else {
6507
8.77k
          if (yych <= '\r') goto yy495;
6508
644
          if (yych <= 0x1F) goto yy86;
6509
464
          goto yy495;
6510
644
        }
6511
87.0k
      } else {
6512
87.0k
        if (yych <= '.') {
6513
84.0k
          if (yych != '#') goto yy86;
6514
84.0k
        } else {
6515
2.99k
          if (yych <= '/') goto yy498;
6516
534
          if (yych <= '@') goto yy86;
6517
114
          if (yych <= 'D') goto yy582;
6518
26
          goto yy584;
6519
114
        }
6520
87.0k
      }
6521
97.9k
    } else {
6522
2.08k
      if (yych <= '`') {
6523
577
        if (yych <= 'Z') {
6524
505
          if (yych == 'I') goto yy585;
6525
428
          goto yy582;
6526
505
        } else {
6527
72
          if (yych == '_') goto yy582;
6528
0
          goto yy86;
6529
72
        }
6530
1.51k
      } else {
6531
1.51k
        if (yych <= 'h') {
6532
450
          if (yych == 'e') goto yy584;
6533
137
          goto yy582;
6534
1.06k
        } else {
6535
1.06k
          if (yych <= 'i') goto yy585;
6536
909
          if (yych <= 'z') goto yy582;
6537
459
          if (yych <= 0x7F) goto yy86;
6538
317
          goto yy582;
6539
459
        }
6540
1.51k
      }
6541
2.08k
    }
6542
83.5k
yy497:
6543
83.5k
    YYDEBUG(497, *YYCURSOR);
6544
83.5k
    ++YYCURSOR;
6545
83.5k
    YYFILL(1);
6546
83.5k
    yych = *YYCURSOR;
6547
83.5k
    if (yych <= '\f') {
6548
63.3k
      if (yych <= 0x00) goto yy86;
6549
63.2k
      if (yych == '\n') goto yy588;
6550
34
      goto yy586;
6551
63.2k
    } else {
6552
20.1k
      if (yych <= '\r') goto yy588;
6553
17.6k
      if (yych == '[') goto yy86;
6554
17.5k
      goto yy586;
6555
17.6k
    }
6556
2.45k
yy498:
6557
2.45k
    YYDEBUG(498, *YYCURSOR);
6558
2.45k
    ++YYCURSOR;
6559
2.45k
    YYFILL(1);
6560
2.45k
    yych = *YYCURSOR;
6561
2.45k
    if (yych == '*') goto yy590;
6562
726
    if (yych == '/') goto yy586;
6563
196
    goto yy86;
6564
3.42k
yy499:
6565
3.42k
    YYDEBUG(499, *YYCURSOR);
6566
3.42k
    yyaccept = 4;
6567
3.42k
    yych = *(YYMARKER = ++YYCURSOR);
6568
3.42k
    if (yych == 'D') goto yy592;
6569
3.28k
    if (yych == 'd') goto yy592;
6570
46
    goto yy48;
6571
1.33k
yy500:
6572
1.33k
    YYDEBUG(500, *YYCURSOR);
6573
1.33k
    yyaccept = 42;
6574
1.33k
    yych = *(YYMARKER = ++YYCURSOR);
6575
1.33k
    if (yych <= '\\') {
6576
757
      if (yych <= 'K') {
6577
744
        if (yych <= '/') goto yy501;
6578
263
        if (yych <= '9') goto yy47;
6579
175
        if (yych >= 'A') goto yy47;
6580
175
      } else {
6581
13
        if (yych <= 'L') goto yy593;
6582
0
        if (yych <= 'Z') goto yy47;
6583
0
        if (yych >= '\\') goto yy164;
6584
0
      }
6585
757
    } else {
6586
575
      if (yych <= 'k') {
6587
4
        if (yych == '_') goto yy47;
6588
4
        if (yych >= 'a') goto yy47;
6589
571
      } else {
6590
571
        if (yych <= 'l') goto yy593;
6591
21
        if (yych <= 'z') goto yy47;
6592
10
        if (yych >= 0x80) goto yy47;
6593
10
      }
6594
575
    }
6595
527
yy501:
6596
527
    YYDEBUG(501, *YYCURSOR);
6597
527
    yyleng = YYCURSOR - SCNG(yy_text);
6598
527
#line 1773 "Zend/zend_language_scanner.l"
6599
527
    {
6600
527
  RETURN_TOKEN_WITH_IDENT(T_FINAL);
6601
527
}
6602
0
#line 6603 "Zend/zend_language_scanner.c"
6603
12.1k
yy502:
6604
12.1k
    YYDEBUG(502, *YYCURSOR);
6605
12.1k
    yyaccept = 4;
6606
12.1k
    yych = *(YYMARKER = ++YYCURSOR);
6607
12.1k
    if (yych == 'C') goto yy594;
6608
12.1k
    if (yych == 'c') goto yy594;
6609
200
    goto yy48;
6610
35.4k
yy503:
6611
35.4k
    YYDEBUG(503, *YYCURSOR);
6612
35.4k
    yyaccept = 4;
6613
35.4k
    yych = *(YYMARKER = ++YYCURSOR);
6614
35.4k
    if (yych == 'I') goto yy595;
6615
35.3k
    if (yych == 'i') goto yy595;
6616
161
    goto yy48;
6617
2.26k
yy504:
6618
2.26k
    YYDEBUG(504, *YYCURSOR);
6619
2.26k
    yyaccept = 4;
6620
2.26k
    yych = *(YYMARKER = ++YYCURSOR);
6621
2.26k
    if (yych == 'L') goto yy596;
6622
1.49k
    if (yych == 'l') goto yy596;
6623
156
    goto yy48;
6624
2.23k
yy505:
6625
2.23k
    YYDEBUG(505, *YYCURSOR);
6626
2.23k
    yyaccept = 4;
6627
2.23k
    yych = *(YYMARKER = ++YYCURSOR);
6628
2.23k
    if (yych == 'M') goto yy598;
6629
2.08k
    if (yych == 'm') goto yy598;
6630
263
    goto yy48;
6631
842
yy506:
6632
842
    YYDEBUG(506, *YYCURSOR);
6633
842
    yyaccept = 4;
6634
842
    yych = *(YYMARKER = ++YYCURSOR);
6635
842
    if (yych == 'D') goto yy599;
6636
645
    if (yych == 'd') goto yy599;
6637
2
    goto yy48;
6638
499
yy507:
6639
499
    YYDEBUG(507, *YYCURSOR);
6640
499
    yyaccept = 4;
6641
499
    yych = *(YYMARKER = ++YYCURSOR);
6642
499
    if (yych == 'N') goto yy600;
6643
437
    if (yych == 'n') goto yy600;
6644
0
    goto yy48;
6645
3.04k
yy508:
6646
3.04k
    YYDEBUG(508, *YYCURSOR);
6647
3.04k
    yyaccept = 4;
6648
3.04k
    yych = *(YYMARKER = ++YYCURSOR);
6649
3.04k
    if (yych == 'A') goto yy601;
6650
2.99k
    if (yych == 'a') goto yy601;
6651
1.67k
    goto yy48;
6652
1.67k
yy509:
6653
1.64k
    YYDEBUG(509, *YYCURSOR);
6654
1.64k
    yyaccept = 4;
6655
1.64k
    yych = *(YYMARKER = ++YYCURSOR);
6656
1.64k
    if (yych == 'F') goto yy602;
6657
1.52k
    if (yych == 'f') goto yy602;
6658
90
    goto yy48;
6659
9.51k
yy510:
6660
9.51k
    YYDEBUG(510, *YYCURSOR);
6661
9.51k
    yyaccept = 43;
6662
9.51k
    yych = *(YYMARKER = ++YYCURSOR);
6663
9.51k
    if (yybm[256+yych] & 128) {
6664
3.47k
      goto yy47;
6665
3.47k
    }
6666
6.03k
    if (yych == '\\') goto yy164;
6667
6.03k
yy511:
6668
6.03k
    YYDEBUG(511, *YYCURSOR);
6669
6.03k
    yyleng = YYCURSOR - SCNG(yy_text);
6670
6.03k
#line 1753 "Zend/zend_language_scanner.l"
6671
6.03k
    {
6672
6.03k
  RETURN_TOKEN_WITH_IDENT(T_ISSET);
6673
6.03k
}
6674
0
#line 6675 "Zend/zend_language_scanner.c"
6675
431
yy512:
6676
431
    YYDEBUG(512, *YYCURSOR);
6677
431
    yyaccept = 44;
6678
431
    yych = *(YYMARKER = ++YYCURSOR);
6679
431
    if (yybm[256+yych] & 128) {
6680
0
      goto yy47;
6681
0
    }
6682
431
    if (yych == '\\') goto yy164;
6683
431
yy513:
6684
431
    YYDEBUG(513, *YYCURSOR);
6685
431
    yyleng = YYCURSOR - SCNG(yy_text);
6686
431
#line 1517 "Zend/zend_language_scanner.l"
6687
431
    {
6688
431
  RETURN_TOKEN_WITH_IDENT(T_MATCH);
6689
431
}
6690
0
#line 6691 "Zend/zend_language_scanner.c"
6691
5.57k
yy514:
6692
5.57k
    YYDEBUG(514, *YYCURSOR);
6693
5.57k
    yyaccept = 4;
6694
5.57k
    yych = *(YYMARKER = ++YYCURSOR);
6695
5.57k
    if (yych == 'P') goto yy603;
6696
5.28k
    if (yych == 'p') goto yy603;
6697
34
    goto yy48;
6698
5.85k
yy515:
6699
5.85k
    YYDEBUG(515, *YYCURSOR);
6700
5.85k
    yyaccept = 45;
6701
5.85k
    yych = *(YYMARKER = ++YYCURSOR);
6702
5.85k
    if (yybm[256+yych] & 128) {
6703
3.30k
      goto yy47;
6704
3.30k
    }
6705
2.55k
    if (yych == '\\') goto yy164;
6706
2.55k
yy516:
6707
2.55k
    YYDEBUG(516, *YYCURSOR);
6708
2.55k
    yyleng = YYCURSOR - SCNG(yy_text);
6709
2.55k
#line 1549 "Zend/zend_language_scanner.l"
6710
2.55k
    {
6711
2.55k
  RETURN_TOKEN_WITH_IDENT(T_PRINT);
6712
2.55k
}
6713
0
#line 6714 "Zend/zend_language_scanner.c"
6714
2.89k
yy517:
6715
2.89k
    YYDEBUG(517, *YYCURSOR);
6716
2.89k
    yyaccept = 4;
6717
2.89k
    yych = *(YYMARKER = ++YYCURSOR);
6718
2.89k
    if (yych == 'T') goto yy604;
6719
2.37k
    if (yych == 't') goto yy604;
6720
35
    goto yy48;
6721
2.35k
yy518:
6722
2.35k
    YYDEBUG(518, *YYCURSOR);
6723
2.35k
    yyaccept = 4;
6724
2.35k
    yych = *(YYMARKER = ++YYCURSOR);
6725
2.35k
    if (yych == 'C') goto yy605;
6726
1.83k
    if (yych == 'c') goto yy605;
6727
296
    goto yy48;
6728
25.0k
yy519:
6729
25.0k
    YYDEBUG(519, *YYCURSOR);
6730
25.0k
    yyaccept = 4;
6731
25.0k
    yych = *(YYMARKER = ++YYCURSOR);
6732
25.0k
    if (yych == 'C') goto yy606;
6733
24.1k
    if (yych == 'c') goto yy606;
6734
1.77k
    goto yy48;
6735
2.03k
yy520:
6736
2.03k
    YYDEBUG(520, *YYCURSOR);
6737
2.03k
    yyaccept = 4;
6738
2.03k
    yych = *(YYMARKER = ++YYCURSOR);
6739
2.03k
    if (yych == 'N') goto yy608;
6740
2.03k
    if (yych == 'n') goto yy608;
6741
53
    goto yy48;
6742
5.29k
yy521:
6743
5.29k
    YYDEBUG(521, *YYCURSOR);
6744
5.29k
    yyaccept = 4;
6745
5.29k
    yych = *(YYMARKER = ++YYCURSOR);
6746
5.29k
    if (yych == 'R') goto yy609;
6747
5.09k
    if (yych == 'r') goto yy609;
6748
6
    goto yy48;
6749
9.74k
yy522:
6750
9.74k
    YYDEBUG(522, *YYCURSOR);
6751
9.74k
    yyaccept = 4;
6752
9.74k
    yych = *(YYMARKER = ++YYCURSOR);
6753
9.74k
    if (yych == 'N') goto yy610;
6754
9.64k
    if (yych == 'n') goto yy610;
6755
138
    goto yy48;
6756
6.00k
yy523:
6757
6.00k
    YYDEBUG(523, *YYCURSOR);
6758
6.00k
    yyaccept = 4;
6759
6.00k
    yych = *(YYMARKER = ++YYCURSOR);
6760
6.00k
    if (yych == 'C') goto yy612;
6761
5.84k
    if (yych == 'c') goto yy612;
6762
366
    goto yy48;
6763
366
yy524:
6764
337
    YYDEBUG(524, *YYCURSOR);
6765
337
    yyaccept = 4;
6766
337
    yych = *(YYMARKER = ++YYCURSOR);
6767
337
    if (yych == 'H') goto yy614;
6768
324
    if (yych == 'h') goto yy614;
6769
24
    goto yy48;
6770
3.78k
yy525:
6771
3.78k
    YYDEBUG(525, *YYCURSOR);
6772
3.78k
    yyaccept = 46;
6773
3.78k
    yych = *(YYMARKER = ++YYCURSOR);
6774
3.78k
    if (yybm[256+yych] & 128) {
6775
1.20k
      goto yy47;
6776
1.20k
    }
6777
2.57k
    if (yych == '\\') goto yy164;
6778
2.57k
yy526:
6779
2.57k
    YYDEBUG(526, *YYCURSOR);
6780
2.57k
    yyleng = YYCURSOR - SCNG(yy_text);
6781
2.57k
#line 1449 "Zend/zend_language_scanner.l"
6782
2.57k
    {
6783
2.57k
  RETURN_TOKEN_WITH_IDENT(T_THROW);
6784
2.57k
}
6785
0
#line 6786 "Zend/zend_language_scanner.c"
6786
3.69k
yy527:
6787
3.69k
    YYDEBUG(527, *YYCURSOR);
6788
3.69k
    yyaccept = 47;
6789
3.69k
    yych = *(YYMARKER = ++YYCURSOR);
6790
3.69k
    if (yybm[256+yych] & 128) {
6791
984
      goto yy47;
6792
984
    }
6793
2.71k
    if (yych == '\\') goto yy164;
6794
2.71k
yy528:
6795
2.71k
    YYDEBUG(528, *YYCURSOR);
6796
2.71k
    yyleng = YYCURSOR - SCNG(yy_text);
6797
2.71k
#line 1561 "Zend/zend_language_scanner.l"
6798
2.71k
    {
6799
2.71k
  RETURN_TOKEN_WITH_IDENT(T_TRAIT);
6800
2.71k
}
6801
0
#line 6802 "Zend/zend_language_scanner.c"
6802
2.86k
yy529:
6803
2.86k
    YYDEBUG(529, *YYCURSOR);
6804
2.86k
    yyaccept = 48;
6805
2.86k
    yych = *(YYMARKER = ++YYCURSOR);
6806
2.86k
    if (yybm[256+yych] & 128) {
6807
28
      goto yy47;
6808
28
    }
6809
2.83k
    if (yych == '\\') goto yy164;
6810
2.83k
yy530:
6811
2.83k
    YYDEBUG(530, *YYCURSOR);
6812
2.83k
    yyleng = YYCURSOR - SCNG(yy_text);
6813
2.83k
#line 1805 "Zend/zend_language_scanner.l"
6814
2.83k
    {
6815
2.83k
  RETURN_TOKEN_WITH_IDENT(T_UNSET);
6816
2.83k
}
6817
0
#line 6818 "Zend/zend_language_scanner.c"
6818
747
yy531:
6819
747
    YYDEBUG(531, *YYCURSOR);
6820
747
    yyaccept = 49;
6821
747
    yych = *(YYMARKER = ++YYCURSOR);
6822
747
    if (yybm[256+yych] & 128) {
6823
100
      goto yy47;
6824
100
    }
6825
647
    if (yych == '\\') goto yy164;
6826
647
yy532:
6827
647
    YYDEBUG(532, *YYCURSOR);
6828
647
    yyleng = YYCURSOR - SCNG(yy_text);
6829
647
#line 1469 "Zend/zend_language_scanner.l"
6830
647
    {
6831
647
  RETURN_TOKEN_WITH_IDENT(T_WHILE);
6832
647
}
6833
0
#line 6834 "Zend/zend_language_scanner.c"
6834
8.22k
yy533:
6835
8.22k
    YYDEBUG(533, *YYCURSOR);
6836
8.22k
    yyaccept = 50;
6837
8.22k
    yych = *(YYMARKER = ++YYCURSOR);
6838
8.22k
    if (yybm[256+yych] & 128) {
6839
82
      goto yy47;
6840
82
    }
6841
8.14k
    if (yych <= ' ') {
6842
2.45k
      if (yych <= '\f') {
6843
563
        if (yych <= 0x08) goto yy534;
6844
561
        if (yych <= '\n') goto yy616;
6845
1.89k
      } else {
6846
1.89k
        if (yych <= '\r') goto yy616;
6847
1.88k
        if (yych >= ' ') goto yy616;
6848
1.88k
      }
6849
5.68k
    } else {
6850
5.68k
      if (yych <= '.') {
6851
5.36k
        if (yych == '#') goto yy618;
6852
5.36k
      } else {
6853
325
        if (yych <= '/') goto yy619;
6854
281
        if (yych == '\\') goto yy164;
6855
281
      }
6856
5.68k
    }
6857
7.58k
yy534:
6858
7.58k
    YYDEBUG(534, *YYCURSOR);
6859
7.58k
    yyleng = YYCURSOR - SCNG(yy_text);
6860
7.58k
#line 1433 "Zend/zend_language_scanner.l"
6861
7.58k
    {
6862
7.58k
  RETURN_TOKEN_WITH_IDENT(T_YIELD);
6863
7.58k
}
6864
0
#line 6865 "Zend/zend_language_scanner.c"
6865
884
yy535:
6866
884
    YYDEBUG(535, *YYCURSOR);
6867
884
    yyaccept = 4;
6868
884
    yych = *(YYMARKER = ++YYCURSOR);
6869
884
    if (yych == 'S') goto yy620;
6870
154
    if (yych == 's') goto yy620;
6871
152
    goto yy48;
6872
800
yy536:
6873
800
    YYDEBUG(536, *YYCURSOR);
6874
800
    yyaccept = 4;
6875
800
    yych = *(YYMARKER = ++YYCURSOR);
6876
800
    if (yych == '_') goto yy621;
6877
550
    goto yy48;
6878
4.81k
yy537:
6879
4.81k
    YYDEBUG(537, *YYCURSOR);
6880
4.81k
    yyaccept = 4;
6881
4.81k
    yych = *(YYMARKER = ++YYCURSOR);
6882
4.81k
    if (yych == 'E') goto yy622;
6883
279
    if (yych == 'e') goto yy622;
6884
157
    goto yy48;
6885
1.78k
yy538:
6886
1.78k
    YYDEBUG(538, *YYCURSOR);
6887
1.78k
    yyaccept = 4;
6888
1.78k
    yych = *(YYMARKER = ++YYCURSOR);
6889
1.78k
    if (yych == 'C') goto yy623;
6890
9
    if (yych == 'c') goto yy623;
6891
7
    goto yy48;
6892
34
yy539:
6893
34
    YYDEBUG(539, *YYCURSOR);
6894
34
    yyaccept = 4;
6895
34
    yych = *(YYMARKER = ++YYCURSOR);
6896
34
    if (yych == 'T') goto yy624;
6897
18
    if (yych == 't') goto yy624;
6898
4
    goto yy48;
6899
226
yy540:
6900
226
    YYDEBUG(540, *YYCURSOR);
6901
226
    yyaccept = 4;
6902
226
    yych = *(YYMARKER = ++YYCURSOR);
6903
226
    if (yych == 'E') goto yy625;
6904
10
    if (yych == 'e') goto yy625;
6905
8
    goto yy48;
6906
3.45k
yy541:
6907
3.45k
    YYDEBUG(541, *YYCURSOR);
6908
3.45k
    yyaccept = 4;
6909
3.45k
    yych = *(YYMARKER = ++YYCURSOR);
6910
3.45k
    if (yych == 'H') goto yy626;
6911
404
    if (yych == 'h') goto yy626;
6912
402
    goto yy48;
6913
1.90k
yy542:
6914
1.90k
    YYDEBUG(542, *YYCURSOR);
6915
1.90k
    yyaccept = 4;
6916
1.90k
    yych = *(YYMARKER = ++YYCURSOR);
6917
1.90k
    if (yych == 'E') goto yy627;
6918
6
    if (yych == 'e') goto yy627;
6919
2
    goto yy48;
6920
186
yy543:
6921
186
    YYDEBUG(543, *YYCURSOR);
6922
186
    yyaccept = 4;
6923
186
    yych = *(YYMARKER = ++YYCURSOR);
6924
186
    if (yych == 'P') goto yy628;
6925
0
    if (yych == 'p') goto yy628;
6926
0
    goto yy48;
6927
778
yy544:
6928
778
    YYDEBUG(544, *YYCURSOR);
6929
778
    yyaccept = 4;
6930
778
    yych = *(YYMARKER = ++YYCURSOR);
6931
778
    if (yych == 'I') goto yy629;
6932
230
    if (yych == 'i') goto yy629;
6933
230
    goto yy48;
6934
36.3k
yy545:
6935
36.3k
    YYDEBUG(545, *YYCURSOR);
6936
36.3k
    ++YYCURSOR;
6937
36.3k
    YYFILL(1);
6938
36.3k
    yych = *YYCURSOR;
6939
36.3k
    YYDEBUG(546, *YYCURSOR);
6940
36.3k
    if (yybm[0+yych] & 64) {
6941
2
      goto yy355;
6942
2
    }
6943
36.3k
    if (yych <= ' ') {
6944
6.44k
      if (yych <= '\n') {
6945
210
        if (yych <= 0x00) goto yy86;
6946
136
        if (yych <= 0x08) goto yy230;
6947
136
        goto yy545;
6948
6.23k
      } else {
6949
6.23k
        if (yych == '\r') goto yy545;
6950
424
        if (yych <= 0x1F) goto yy230;
6951
396
        goto yy545;
6952
424
      }
6953
29.9k
    } else {
6954
29.9k
      if (yych <= '$') {
6955
20.2k
        if (yych <= '"') goto yy230;
6956
20.2k
        if (yych <= '#') goto yy630;
6957
1.50k
        goto yy631;
6958
20.2k
      } else {
6959
9.63k
        if (yych <= '-') goto yy230;
6960
7.87k
        if (yych <= '.') goto yy632;
6961
7.85k
        if (yych <= '/') goto yy633;
6962
1.38k
        goto yy230;
6963
7.85k
      }
6964
29.9k
    }
6965
6.96k
yy547:
6966
6.96k
    YYDEBUG(547, *YYCURSOR);
6967
6.96k
    ++YYCURSOR;
6968
6.96k
    YYFILL(1);
6969
6.96k
    yych = *YYCURSOR;
6970
6.96k
    YYDEBUG(548, *YYCURSOR);
6971
6.96k
    if (yych <= '\r') {
6972
956
      if (yych <= '\t') {
6973
4
        if (yych <= 0x00) goto yy86;
6974
0
        goto yy443;
6975
952
      } else {
6976
952
        if (yych <= '\n') goto yy545;
6977
952
        if (yych <= '\f') goto yy443;
6978
952
        goto yy545;
6979
952
      }
6980
6.00k
    } else {
6981
6.00k
      if (yych <= '*') {
6982
1.98k
        if (yych <= ')') goto yy443;
6983
80
        goto yy547;
6984
4.02k
      } else {
6985
4.02k
        if (yych == '/') goto yy227;
6986
400
        goto yy443;
6987
4.02k
      }
6988
6.00k
    }
6989
1.76k
yy549:
6990
1.76k
    YYDEBUG(549, *YYCURSOR);
6991
1.76k
    ++YYCURSOR;
6992
1.76k
    YYFILL(1);
6993
1.76k
    yych = *YYCURSOR;
6994
1.76k
    YYDEBUG(550, *YYCURSOR);
6995
1.76k
    if (yych <= 0x1F) {
6996
0
      if (yych == '\t') goto yy549;
6997
0
      goto yy86;
6998
1.76k
    } else {
6999
1.76k
      if (yych <= ' ') goto yy549;
7000
1.40k
      if (yych == ')') goto yy634;
7001
1.19k
      goto yy86;
7002
1.40k
    }
7003
12
yy551:
7004
12
    YYDEBUG(551, *YYCURSOR);
7005
12
    yych = *++YYCURSOR;
7006
12
    if (yych == 'Y') goto yy636;
7007
0
    if (yych == 'y') goto yy636;
7008
0
    goto yy86;
7009
146
yy552:
7010
146
    YYDEBUG(552, *YYCURSOR);
7011
146
    ++YYCURSOR;
7012
146
    YYFILL(1);
7013
146
    yych = *YYCURSOR;
7014
330
yy553:
7015
330
    YYDEBUG(553, *YYCURSOR);
7016
330
    if (yych <= 0x1F) {
7017
8
      if (yych == '\t') goto yy552;
7018
8
      goto yy86;
7019
322
    } else {
7020
322
      if (yych <= ' ') goto yy552;
7021
176
      if (yych != ')') goto yy86;
7022
176
    }
7023
49
    YYDEBUG(554, *YYCURSOR);
7024
49
    ++YYCURSOR;
7025
49
    YYDEBUG(555, *YYCURSOR);
7026
49
    yyleng = YYCURSOR - SCNG(yy_text);
7027
49
#line 1695 "Zend/zend_language_scanner.l"
7028
49
    {
7029
49
  RETURN_TOKEN(T_BOOL_CAST);
7030
49
}
7031
0
#line 7032 "Zend/zend_language_scanner.c"
7032
14
yy556:
7033
14
    YYDEBUG(556, *YYCURSOR);
7034
14
    yych = *++YYCURSOR;
7035
14
    if (yych == 'A') goto yy638;
7036
14
    if (yych == 'a') goto yy638;
7037
0
    goto yy86;
7038
192
yy557:
7039
192
    YYDEBUG(557, *YYCURSOR);
7040
192
    yych = *++YYCURSOR;
7041
192
    if (yych == 'E') goto yy639;
7042
192
    if (yych == 'e') goto yy639;
7043
4
    goto yy86;
7044
250
yy558:
7045
250
    YYDEBUG(558, *YYCURSOR);
7046
250
    ++YYCURSOR;
7047
250
    YYFILL(1);
7048
250
    yych = *YYCURSOR;
7049
250
    YYDEBUG(559, *YYCURSOR);
7050
250
    if (yych <= 0x1F) {
7051
2
      if (yych == '\t') goto yy558;
7052
2
      goto yy86;
7053
248
    } else {
7054
248
      if (yych <= ' ') goto yy558;
7055
151
      if (yych == ')') goto yy641;
7056
103
      goto yy86;
7057
151
    }
7058
148
yy560:
7059
148
    YYDEBUG(560, *YYCURSOR);
7060
148
    yych = *++YYCURSOR;
7061
148
    if (yych == 'E') goto yy643;
7062
148
    if (yych == 'e') goto yy643;
7063
0
    goto yy86;
7064
324
yy561:
7065
324
    YYDEBUG(561, *YYCURSOR);
7066
324
    yych = *++YYCURSOR;
7067
324
    if (yych == 'T') goto yy644;
7068
324
    if (yych == 't') goto yy644;
7069
10
    goto yy86;
7070
10
yy562:
7071
0
    YYDEBUG(562, *YYCURSOR);
7072
0
    ++YYCURSOR;
7073
0
    YYDEBUG(563, *YYCURSOR);
7074
0
    yyleng = YYCURSOR - SCNG(yy_text);
7075
0
#line 1665 "Zend/zend_language_scanner.l"
7076
0
    {
7077
0
  if (PARSER_MODE()) {
7078
0
    zend_throw_exception(zend_ce_parse_error, "The (real) cast has been removed, use (float) instead", 0);
7079
0
    RETURN_TOKEN(T_ERROR);
7080
0
  }
7081
0
  RETURN_TOKEN(T_DOUBLE_CAST);
7082
0
}
7083
0
#line 7084 "Zend/zend_language_scanner.c"
7084
2.80k
yy564:
7085
2.80k
    YYDEBUG(564, *YYCURSOR);
7086
2.80k
    yych = *++YYCURSOR;
7087
2.80k
    if (yych == 'G') goto yy646;
7088
2.80k
    if (yych == 'g') goto yy646;
7089
49
    goto yy86;
7090
54
yy565:
7091
54
    YYDEBUG(565, *YYCURSOR);
7092
54
    ++YYCURSOR;
7093
54
    YYFILL(1);
7094
54
    yych = *YYCURSOR;
7095
54
    YYDEBUG(566, *YYCURSOR);
7096
54
    if (yych <= 0x1F) {
7097
0
      if (yych == '\t') goto yy565;
7098
0
      goto yy86;
7099
54
    } else {
7100
54
      if (yych <= ' ') goto yy565;
7101
54
      if (yych == ')') goto yy648;
7102
4
      goto yy86;
7103
54
    }
7104
76
yy567:
7105
76
    YYDEBUG(567, *YYCURSOR);
7106
76
    ++YYCURSOR;
7107
76
    YYDEBUG(568, *YYCURSOR);
7108
76
    yyleng = YYCURSOR - SCNG(yy_text);
7109
76
#line 1713 "Zend/zend_language_scanner.l"
7110
76
    {
7111
76
  RETURN_TOKEN(T_VOID_CAST);
7112
76
}
7113
0
#line 7114 "Zend/zend_language_scanner.c"
7114
1.71k
yy569:
7115
1.71k
    YYDEBUG(569, *YYCURSOR);
7116
1.71k
    yych = *++YYCURSOR;
7117
1.71k
    if (yych == '\n') goto yy466;
7118
224
    if (yych == '\r') goto yy468;
7119
224
    goto yy86;
7120
1.98k
yy570:
7121
1.98k
    YYDEBUG(570, *YYCURSOR);
7122
1.98k
    yyaccept = 4;
7123
1.98k
    yych = *(YYMARKER = ++YYCURSOR);
7124
1.98k
    if (yych == 'C') goto yy650;
7125
1.46k
    if (yych == 'c') goto yy650;
7126
18
    goto yy48;
7127
241
yy571:
7128
241
    YYDEBUG(571, *YYCURSOR);
7129
241
    yyaccept = 4;
7130
241
    yych = *(YYMARKER = ++YYCURSOR);
7131
241
    if (yych == 'L') goto yy651;
7132
116
    if (yych == 'l') goto yy651;
7133
22
    goto yy48;
7134
288
yy572:
7135
288
    YYDEBUG(572, *YYCURSOR);
7136
288
    yyaccept = 4;
7137
288
    yych = *(YYMARKER = ++YYCURSOR);
7138
288
    if (yych == 'U') goto yy652;
7139
181
    if (yych == 'u') goto yy652;
7140
6
    goto yy48;
7141
1.60k
yy573:
7142
1.60k
    YYDEBUG(573, *YYCURSOR);
7143
1.60k
    yyaccept = 4;
7144
1.60k
    yych = *(YYMARKER = ++YYCURSOR);
7145
1.60k
    if (yych == 'E') goto yy653;
7146
1.58k
    if (yych == 'e') goto yy653;
7147
94
    goto yy48;
7148
324
yy574:
7149
324
    YYDEBUG(574, *YYCURSOR);
7150
324
    yyaccept = 4;
7151
324
    yych = *(YYMARKER = ++YYCURSOR);
7152
324
    if (yych == 'T') goto yy655;
7153
284
    if (yych == 't') goto yy655;
7154
16
    goto yy48;
7155
213
yy575:
7156
213
    YYDEBUG(575, *YYCURSOR);
7157
213
    yyaccept = 51;
7158
213
    yych = *(YYMARKER = ++YYCURSOR);
7159
213
    if (yybm[256+yych] & 128) {
7160
0
      goto yy47;
7161
0
    }
7162
213
    if (yych == '\\') goto yy164;
7163
213
yy576:
7164
213
    YYDEBUG(576, *YYCURSOR);
7165
213
    yyleng = YYCURSOR - SCNG(yy_text);
7166
213
#line 1457 "Zend/zend_language_scanner.l"
7167
213
    {
7168
213
  RETURN_TOKEN_WITH_IDENT(T_ELSEIF);
7169
213
}
7170
0
#line 7171 "Zend/zend_language_scanner.c"
7171
341
yy577:
7172
341
    YYDEBUG(577, *YYCURSOR);
7173
341
    yyaccept = 4;
7174
341
    yych = *(YYMARKER = ++YYCURSOR);
7175
341
    if (yych == 'L') goto yy657;
7176
266
    if (yych == 'l') goto yy657;
7177
2
    goto yy48;
7178
492
yy578:
7179
492
    YYDEBUG(578, *YYCURSOR);
7180
492
    yyaccept = 52;
7181
492
    yych = *(YYMARKER = ++YYCURSOR);
7182
492
    if (yych <= '\\') {
7183
442
      if (yych <= 'D') {
7184
203
        if (yych <= '/') goto yy579;
7185
60
        if (yych <= '9') goto yy47;
7186
60
        if (yych >= 'A') goto yy47;
7187
239
      } else {
7188
239
        if (yych <= 'E') goto yy658;
7189
0
        if (yych <= 'Z') goto yy47;
7190
0
        if (yych >= '\\') goto yy164;
7191
0
      }
7192
442
    } else {
7193
50
      if (yych <= 'd') {
7194
0
        if (yych == '_') goto yy47;
7195
0
        if (yych >= 'a') goto yy47;
7196
50
      } else {
7197
50
        if (yych <= 'e') goto yy658;
7198
0
        if (yych <= 'z') goto yy47;
7199
0
        if (yych >= 0x80) goto yy47;
7200
0
      }
7201
50
    }
7202
203
yy579:
7203
203
    YYDEBUG(579, *YYCURSOR);
7204
203
    yyleng = YYCURSOR - SCNG(yy_text);
7205
203
#line 1485 "Zend/zend_language_scanner.l"
7206
203
    {
7207
203
  RETURN_TOKEN_WITH_IDENT(T_ENDFOR);
7208
203
}
7209
0
#line 7210 "Zend/zend_language_scanner.c"
7210
265
yy580:
7211
265
    YYDEBUG(580, *YYCURSOR);
7212
265
    yyaccept = 4;
7213
265
    yych = *(YYMARKER = ++YYCURSOR);
7214
265
    if (yych == 'T') goto yy659;
7215
34
    if (yych == 't') goto yy659;
7216
12
    goto yy48;
7217
1.68k
yy581:
7218
1.68k
    YYDEBUG(581, *YYCURSOR);
7219
1.68k
    yyaccept = 4;
7220
1.68k
    yych = *(YYMARKER = ++YYCURSOR);
7221
1.68k
    if (yych == 'L') goto yy660;
7222
123
    if (yych == 'l') goto yy660;
7223
0
    goto yy48;
7224
1.49k
yy582:
7225
1.49k
    YYDEBUG(582, *YYCURSOR);
7226
1.49k
    ++YYCURSOR;
7227
8.41k
yy583:
7228
8.41k
    YYDEBUG(583, *YYCURSOR);
7229
8.41k
    yyleng = YYCURSOR - SCNG(yy_text);
7230
8.41k
#line 1573 "Zend/zend_language_scanner.l"
7231
8.41k
    {
7232
8.41k
  yyless(4);
7233
8.41k
  RETURN_TOKEN_WITH_IDENT(T_ENUM);
7234
8.41k
}
7235
0
#line 7236 "Zend/zend_language_scanner.c"
7236
339
yy584:
7237
339
    YYDEBUG(584, *YYCURSOR);
7238
339
    yyaccept = 53;
7239
339
    yych = *(YYMARKER = ++YYCURSOR);
7240
339
    if (yych == 'X') goto yy661;
7241
339
    if (yych == 'x') goto yy661;
7242
136
    goto yy583;
7243
229
yy585:
7244
229
    YYDEBUG(585, *YYCURSOR);
7245
229
    yyaccept = 53;
7246
229
    yych = *(YYMARKER = ++YYCURSOR);
7247
229
    if (yych == 'M') goto yy662;
7248
135
    if (yych == 'm') goto yy662;
7249
55
    goto yy583;
7250
426k
yy586:
7251
426k
    YYDEBUG(586, *YYCURSOR);
7252
426k
    ++YYCURSOR;
7253
426k
    YYFILL(1);
7254
426k
    yych = *YYCURSOR;
7255
426k
    YYDEBUG(587, *YYCURSOR);
7256
426k
    if (yych <= '\n') {
7257
5.87k
      if (yych <= 0x00) goto yy86;
7258
5.20k
      if (yych <= '\t') goto yy586;
7259
3.85k
      goto yy495;
7260
420k
    } else {
7261
420k
      if (yych == '\r') goto yy495;
7262
373k
      goto yy586;
7263
420k
    }
7264
79.3k
yy588:
7265
79.3k
    YYDEBUG(588, *YYCURSOR);
7266
79.3k
    ++YYCURSOR;
7267
79.3k
    YYFILL(1);
7268
79.3k
    yych = *YYCURSOR;
7269
79.3k
    YYDEBUG(589, *YYCURSOR);
7270
79.3k
    if (yych <= 'D') {
7271
49.8k
      if (yych <= 0x1F) {
7272
12.0k
        if (yych <= '\t') {
7273
1.23k
          if (yych <= 0x00) goto yy86;
7274
1.07k
          if (yych <= 0x08) goto yy586;
7275
598
          goto yy588;
7276
10.7k
        } else {
7277
10.7k
          if (yych <= '\n') goto yy495;
7278
10.7k
          if (yych == '\r') goto yy495;
7279
190
          goto yy586;
7280
10.7k
        }
7281
37.7k
      } else {
7282
37.7k
        if (yych <= '#') {
7283
3.41k
          if (yych <= ' ') goto yy588;
7284
3.26k
          if (yych <= '"') goto yy586;
7285
3.07k
          goto yy663;
7286
34.3k
        } else {
7287
34.3k
          if (yych == '/') goto yy664;
7288
718
          if (yych <= '@') goto yy586;
7289
202
          goto yy665;
7290
718
        }
7291
37.7k
      }
7292
49.8k
    } else {
7293
29.5k
      if (yych <= '`') {
7294
334
        if (yych <= 'I') {
7295
130
          if (yych <= 'E') goto yy666;
7296
88
          if (yych <= 'H') goto yy665;
7297
76
          goto yy667;
7298
204
        } else {
7299
204
          if (yych <= 'Z') goto yy665;
7300
106
          if (yych == '_') goto yy665;
7301
106
          goto yy586;
7302
106
        }
7303
29.1k
      } else {
7304
29.1k
        if (yych <= 'h') {
7305
25.6k
          if (yych == 'e') goto yy666;
7306
538
          goto yy665;
7307
25.6k
        } else {
7308
3.59k
          if (yych <= 'i') goto yy667;
7309
3.37k
          if (yych <= 'z') goto yy665;
7310
3.20k
          if (yych <= 0x7F) goto yy586;
7311
416
          goto yy665;
7312
3.20k
        }
7313
29.1k
      }
7314
29.5k
    }
7315
523k
yy590:
7316
523k
    YYDEBUG(590, *YYCURSOR);
7317
523k
    ++YYCURSOR;
7318
523k
    YYFILL(1);
7319
523k
    yych = *YYCURSOR;
7320
523k
    YYDEBUG(591, *YYCURSOR);
7321
523k
    if (yych <= 0x00) goto yy86;
7322
521k
    if (yych == '*') goto yy668;
7323
503k
    goto yy590;
7324
503k
yy592:
7325
3.37k
    YYDEBUG(592, *YYCURSOR);
7326
3.37k
    yyaccept = 4;
7327
3.37k
    yych = *(YYMARKER = ++YYCURSOR);
7328
3.37k
    if (yych == 'S') goto yy670;
7329
3.23k
    if (yych == 's') goto yy670;
7330
191
    goto yy48;
7331
563
yy593:
7332
563
    YYDEBUG(593, *YYCURSOR);
7333
563
    yyaccept = 4;
7334
563
    yych = *(YYMARKER = ++YYCURSOR);
7335
563
    if (yych == 'Y') goto yy672;
7336
550
    if (yych == 'y') goto yy672;
7337
38
    goto yy48;
7338
11.9k
yy594:
7339
11.9k
    YYDEBUG(594, *YYCURSOR);
7340
11.9k
    yyaccept = 4;
7341
11.9k
    yych = *(YYMARKER = ++YYCURSOR);
7342
11.9k
    if (yych == 'H') goto yy674;
7343
11.8k
    if (yych == 'h') goto yy674;
7344
587
    goto yy48;
7345
35.3k
yy595:
7346
35.3k
    YYDEBUG(595, *YYCURSOR);
7347
35.3k
    yyaccept = 4;
7348
35.3k
    yych = *(YYMARKER = ++YYCURSOR);
7349
35.3k
    if (yych == 'O') goto yy676;
7350
35.1k
    if (yych == 'o') goto yy676;
7351
141
    goto yy48;
7352
2.11k
yy596:
7353
2.11k
    YYDEBUG(596, *YYCURSOR);
7354
2.11k
    yyaccept = 54;
7355
2.11k
    yych = *(YYMARKER = ++YYCURSOR);
7356
2.11k
    if (yybm[256+yych] & 128) {
7357
810
      goto yy47;
7358
810
    }
7359
1.30k
    if (yych == '\\') goto yy164;
7360
1.30k
yy597:
7361
1.30k
    YYDEBUG(597, *YYCURSOR);
7362
1.30k
    yyleng = YYCURSOR - SCNG(yy_text);
7363
1.30k
#line 1749 "Zend/zend_language_scanner.l"
7364
1.30k
    {
7365
1.30k
  RETURN_TOKEN_WITH_IDENT(T_GLOBAL);
7366
1.30k
}
7367
0
#line 7368 "Zend/zend_language_scanner.c"
7368
1.97k
yy598:
7369
1.97k
    YYDEBUG(598, *YYCURSOR);
7370
1.97k
    yyaccept = 4;
7371
1.97k
    yych = *(YYMARKER = ++YYCURSOR);
7372
1.97k
    if (yych == 'E') goto yy677;
7373
1.55k
    if (yych == 'e') goto yy677;
7374
635
    goto yy48;
7375
840
yy599:
7376
840
    YYDEBUG(599, *YYCURSOR);
7377
840
    yyaccept = 4;
7378
840
    yych = *(YYMARKER = ++YYCURSOR);
7379
840
    if (yych == 'E') goto yy678;
7380
649
    if (yych == 'e') goto yy678;
7381
8
    goto yy48;
7382
499
yy600:
7383
499
    YYDEBUG(600, *YYCURSOR);
7384
499
    yyaccept = 4;
7385
499
    yych = *(YYMARKER = ++YYCURSOR);
7386
499
    if (yych == 'C') goto yy680;
7387
449
    if (yych == 'c') goto yy680;
7388
12
    goto yy48;
7389
1.36k
yy601:
7390
1.36k
    YYDEBUG(601, *YYCURSOR);
7391
1.36k
    yyaccept = 4;
7392
1.36k
    yych = *(YYMARKER = ++YYCURSOR);
7393
1.36k
    if (yych == 'D') goto yy681;
7394
1.32k
    if (yych == 'd') goto yy681;
7395
2
    goto yy48;
7396
1.55k
yy602:
7397
1.55k
    YYDEBUG(602, *YYCURSOR);
7398
1.55k
    yyaccept = 4;
7399
1.55k
    yych = *(YYMARKER = ++YYCURSOR);
7400
1.55k
    if (yych == 'A') goto yy682;
7401
1.43k
    if (yych == 'a') goto yy682;
7402
64
    goto yy48;
7403
5.53k
yy603:
7404
5.53k
    YYDEBUG(603, *YYCURSOR);
7405
5.53k
    yyaccept = 4;
7406
5.53k
    yych = *(YYMARKER = ++YYCURSOR);
7407
5.53k
    if (yych == 'A') goto yy683;
7408
5.26k
    if (yych == 'a') goto yy683;
7409
155
    goto yy48;
7410
2.85k
yy604:
7411
2.85k
    YYDEBUG(604, *YYCURSOR);
7412
2.85k
    yyaccept = 4;
7413
2.85k
    yych = *(YYMARKER = ++YYCURSOR);
7414
2.85k
    if (yych == 'E') goto yy684;
7415
2.34k
    if (yych == 'e') goto yy684;
7416
0
    goto yy48;
7417
2.05k
yy605:
7418
2.05k
    YYDEBUG(605, *YYCURSOR);
7419
2.05k
    yyaccept = 4;
7420
2.05k
    yych = *(YYMARKER = ++YYCURSOR);
7421
2.05k
    if (yych == 'T') goto yy686;
7422
1.53k
    if (yych == 't') goto yy686;
7423
430
    goto yy48;
7424
23.3k
yy606:
7425
23.3k
    YYDEBUG(606, *YYCURSOR);
7426
23.3k
    yyaccept = 55;
7427
23.3k
    yych = *(YYMARKER = ++YYCURSOR);
7428
23.3k
    if (yybm[256+yych] & 128) {
7429
264
      goto yy47;
7430
264
    }
7431
23.0k
    if (yych == '(') goto yy687;
7432
23.0k
    if (yych == '\\') goto yy164;
7433
23.0k
yy607:
7434
23.0k
    YYDEBUG(607, *YYCURSOR);
7435
23.0k
    yyleng = YYCURSOR - SCNG(yy_text);
7436
23.0k
#line 1797 "Zend/zend_language_scanner.l"
7437
23.0k
    {
7438
23.0k
  RETURN_TOKEN_WITH_IDENT(T_PUBLIC);
7439
23.0k
}
7440
0
#line 7441 "Zend/zend_language_scanner.c"
7441
1.98k
yy608:
7442
1.98k
    YYDEBUG(608, *YYCURSOR);
7443
1.98k
    yyaccept = 4;
7444
1.98k
    yych = *(YYMARKER = ++YYCURSOR);
7445
1.98k
    if (yych == 'L') goto yy688;
7446
1.98k
    if (yych == 'l') goto yy688;
7447
209
    goto yy48;
7448
5.29k
yy609:
7449
5.29k
    YYDEBUG(609, *YYCURSOR);
7450
5.29k
    yyaccept = 4;
7451
5.29k
    yych = *(YYMARKER = ++YYCURSOR);
7452
5.29k
    if (yych == 'E') goto yy689;
7453
5.09k
    if (yych == 'e') goto yy689;
7454
11
    goto yy48;
7455
9.60k
yy610:
7456
9.60k
    YYDEBUG(610, *YYCURSOR);
7457
9.60k
    yyaccept = 56;
7458
9.60k
    yych = *(YYMARKER = ++YYCURSOR);
7459
9.60k
    if (yybm[256+yych] & 128) {
7460
316
      goto yy47;
7461
316
    }
7462
9.28k
    if (yych == '\\') goto yy164;
7463
9.28k
yy611:
7464
9.28k
    YYDEBUG(611, *YYCURSOR);
7465
9.28k
    yyleng = YYCURSOR - SCNG(yy_text);
7466
9.28k
#line 1418 "Zend/zend_language_scanner.l"
7467
9.28k
    {
7468
9.28k
  RETURN_TOKEN_WITH_IDENT(T_RETURN);
7469
9.28k
}
7470
0
#line 7471 "Zend/zend_language_scanner.c"
7471
5.63k
yy612:
7472
5.63k
    YYDEBUG(612, *YYCURSOR);
7473
5.63k
    yyaccept = 57;
7474
5.63k
    yych = *(YYMARKER = ++YYCURSOR);
7475
5.63k
    if (yybm[256+yych] & 128) {
7476
114
      goto yy47;
7477
114
    }
7478
5.52k
    if (yych == '\\') goto yy164;
7479
5.52k
yy613:
7480
5.52k
    YYDEBUG(613, *YYCURSOR);
7481
5.52k
    yyleng = YYCURSOR - SCNG(yy_text);
7482
5.52k
#line 1765 "Zend/zend_language_scanner.l"
7483
5.52k
    {
7484
5.52k
  RETURN_TOKEN_WITH_IDENT(T_STATIC);
7485
5.52k
}
7486
0
#line 7487 "Zend/zend_language_scanner.c"
7487
313
yy614:
7488
313
    YYDEBUG(614, *YYCURSOR);
7489
313
    yyaccept = 58;
7490
313
    yych = *(YYMARKER = ++YYCURSOR);
7491
313
    if (yybm[256+yych] & 128) {
7492
2
      goto yy47;
7493
2
    }
7494
311
    if (yych == '\\') goto yy164;
7495
311
yy615:
7496
311
    YYDEBUG(615, *YYCURSOR);
7497
311
    yyleng = YYCURSOR - SCNG(yy_text);
7498
311
#line 1513 "Zend/zend_language_scanner.l"
7499
311
    {
7500
311
  RETURN_TOKEN_WITH_IDENT(T_SWITCH);
7501
311
}
7502
0
#line 7503 "Zend/zend_language_scanner.c"
7503
63.5k
yy616:
7504
63.5k
    YYDEBUG(616, *YYCURSOR);
7505
63.5k
    ++YYCURSOR;
7506
63.5k
    YYFILL(5);
7507
63.5k
    yych = *YYCURSOR;
7508
63.5k
    YYDEBUG(617, *YYCURSOR);
7509
63.5k
    if (yych <= '"') {
7510
8.25k
      if (yych <= '\f') {
7511
695
        if (yych <= 0x08) goto yy86;
7512
669
        if (yych <= '\n') goto yy616;
7513
0
        goto yy86;
7514
7.56k
      } else {
7515
7.56k
        if (yych <= '\r') goto yy616;
7516
570
        if (yych == ' ') goto yy616;
7517
186
        goto yy86;
7518
570
      }
7519
55.2k
    } else {
7520
55.2k
      if (yych <= 'E') {
7521
54.0k
        if (yych <= '#') goto yy618;
7522
3.22k
        if (yych == '/') goto yy619;
7523
2.00k
        goto yy86;
7524
3.22k
      } else {
7525
1.22k
        if (yych <= 'F') goto yy691;
7526
1.22k
        if (yych == 'f') goto yy691;
7527
555
        goto yy86;
7528
1.22k
      }
7529
55.2k
    }
7530
55.9k
yy618:
7531
55.9k
    YYDEBUG(618, *YYCURSOR);
7532
55.9k
    ++YYCURSOR;
7533
55.9k
    YYFILL(1);
7534
55.9k
    yych = *YYCURSOR;
7535
55.9k
    if (yych <= '\f') {
7536
41.1k
      if (yych <= 0x00) goto yy86;
7537
40.9k
      if (yych == '\n') goto yy694;
7538
32
      goto yy692;
7539
40.9k
    } else {
7540
14.7k
      if (yych <= '\r') goto yy694;
7541
13.9k
      if (yych == '[') goto yy86;
7542
13.8k
      goto yy692;
7543
13.9k
    }
7544
1.26k
yy619:
7545
1.26k
    YYDEBUG(619, *YYCURSOR);
7546
1.26k
    ++YYCURSOR;
7547
1.26k
    YYFILL(1);
7548
1.26k
    yych = *YYCURSOR;
7549
1.26k
    if (yych == '*') goto yy696;
7550
212
    if (yych == '/') goto yy692;
7551
144
    goto yy86;
7552
732
yy620:
7553
732
    YYDEBUG(620, *YYCURSOR);
7554
732
    yyaccept = 4;
7555
732
    yych = *(YYMARKER = ++YYCURSOR);
7556
732
    if (yych == 'S') goto yy698;
7557
14
    if (yych == 's') goto yy698;
7558
12
    goto yy48;
7559
250
yy621:
7560
250
    YYDEBUG(621, *YYCURSOR);
7561
250
    yyaccept = 4;
7562
250
    yych = *(YYMARKER = ++YYCURSOR);
7563
250
    if (yych == '_') goto yy699;
7564
2
    goto yy48;
7565
4.65k
yy622:
7566
4.65k
    YYDEBUG(622, *YYCURSOR);
7567
4.65k
    yyaccept = 4;
7568
4.65k
    yych = *(YYMARKER = ++YYCURSOR);
7569
4.65k
    if (yych == '_') goto yy701;
7570
47
    goto yy48;
7571
1.77k
yy623:
7572
1.77k
    YYDEBUG(623, *YYCURSOR);
7573
1.77k
    yyaccept = 4;
7574
1.77k
    yych = *(YYMARKER = ++YYCURSOR);
7575
1.77k
    if (yych == 'T') goto yy702;
7576
647
    if (yych == 't') goto yy702;
7577
644
    goto yy48;
7578
644
yy624:
7579
30
    YYDEBUG(624, *YYCURSOR);
7580
30
    yyaccept = 4;
7581
30
    yych = *(YYMARKER = ++YYCURSOR);
7582
30
    if (yych == '_') goto yy703;
7583
0
    goto yy48;
7584
218
yy625:
7585
218
    YYDEBUG(625, *YYCURSOR);
7586
218
    yyaccept = 4;
7587
218
    yych = *(YYMARKER = ++YYCURSOR);
7588
218
    if (yych == '_') goto yy704;
7589
24
    goto yy48;
7590
3.05k
yy626:
7591
3.05k
    YYDEBUG(626, *YYCURSOR);
7592
3.05k
    yyaccept = 4;
7593
3.05k
    yych = *(YYMARKER = ++YYCURSOR);
7594
3.05k
    if (yych == 'O') goto yy705;
7595
362
    if (yych == 'o') goto yy705;
7596
360
    goto yy48;
7597
1.89k
yy627:
7598
1.89k
    YYDEBUG(627, *YYCURSOR);
7599
1.89k
    yyaccept = 4;
7600
1.89k
    yych = *(YYMARKER = ++YYCURSOR);
7601
1.89k
    if (yych == 'S') goto yy706;
7602
5
    if (yych == 's') goto yy706;
7603
3
    goto yy48;
7604
186
yy628:
7605
186
    YYDEBUG(628, *YYCURSOR);
7606
186
    yyaccept = 4;
7607
186
    yych = *(YYMARKER = ++YYCURSOR);
7608
186
    if (yych == 'E') goto yy707;
7609
2
    if (yych == 'e') goto yy707;
7610
2
    goto yy48;
7611
548
yy629:
7612
548
    YYDEBUG(629, *YYCURSOR);
7613
548
    yyaccept = 4;
7614
548
    yych = *(YYMARKER = ++YYCURSOR);
7615
548
    if (yych == 'T') goto yy708;
7616
0
    if (yych == 't') goto yy708;
7617
0
    goto yy48;
7618
18.7k
yy630:
7619
18.7k
    YYDEBUG(630, *YYCURSOR);
7620
18.7k
    ++YYCURSOR;
7621
18.7k
    YYFILL(1);
7622
18.7k
    yych = *YYCURSOR;
7623
18.7k
    if (yych <= '\r') {
7624
12.0k
      if (yych <= '\t') {
7625
20
        if (yych <= 0x00) goto yy86;
7626
6
        goto yy443;
7627
12.0k
      } else {
7628
12.0k
        if (yych <= '\n') goto yy709;
7629
78
        if (yych <= '\f') goto yy443;
7630
72
        goto yy709;
7631
78
      }
7632
12.0k
    } else {
7633
6.69k
      if (yych <= '*') {
7634
1.37k
        if (yych <= ')') goto yy443;
7635
592
        goto yy547;
7636
5.31k
      } else {
7637
5.31k
        if (yych == '[') goto yy230;
7638
5.31k
        goto yy443;
7639
5.31k
      }
7640
6.69k
    }
7641
1.50k
yy631:
7642
1.50k
    YYDEBUG(631, *YYCURSOR);
7643
1.50k
    yyaccept = 26;
7644
1.50k
    YYMARKER = ++YYCURSOR;
7645
1.50k
    YYFILL(1);
7646
1.50k
    yych = *YYCURSOR;
7647
1.50k
    if (yybm[0+yych] & 4) {
7648
1.49k
      goto yy230;
7649
1.49k
    }
7650
8
    if (yych <= 0x00) goto yy89;
7651
0
    goto yy355;
7652
24
yy632:
7653
24
    YYDEBUG(632, *YYCURSOR);
7654
24
    ++YYCURSOR;
7655
24
    YYFILL(1);
7656
24
    yych = *YYCURSOR;
7657
24
    if (yybm[0+yych] & 64) {
7658
0
      goto yy355;
7659
0
    }
7660
24
    if (yych <= 0x00) goto yy86;
7661
18
    if (yych == '.') goto yy711;
7662
18
    goto yy230;
7663
6.46k
yy633:
7664
6.46k
    YYDEBUG(633, *YYCURSOR);
7665
6.46k
    ++YYCURSOR;
7666
6.46k
    YYFILL(1);
7667
6.46k
    yych = *YYCURSOR;
7668
6.46k
    if (yych <= '*') {
7669
6.27k
      if (yych <= 0x00) goto yy86;
7670
6.27k
      if (yych <= ')') goto yy230;
7671
6.20k
      goto yy712;
7672
6.27k
    } else {
7673
188
      if (yych == '/') goto yy443;
7674
172
      goto yy230;
7675
188
    }
7676
203
yy634:
7677
203
    YYDEBUG(634, *YYCURSOR);
7678
203
    ++YYCURSOR;
7679
203
    YYDEBUG(635, *YYCURSOR);
7680
203
    yyleng = YYCURSOR - SCNG(yy_text);
7681
203
#line 1687 "Zend/zend_language_scanner.l"
7682
203
    {
7683
203
  RETURN_TOKEN(T_ARRAY_CAST);
7684
203
}
7685
0
#line 7686 "Zend/zend_language_scanner.c"
7686
12
yy636:
7687
12
    YYDEBUG(636, *YYCURSOR);
7688
12
    ++YYCURSOR;
7689
12
    YYFILL(1);
7690
12
    yych = *YYCURSOR;
7691
12
    YYDEBUG(637, *YYCURSOR);
7692
12
    if (yych <= 0x1F) {
7693
0
      if (yych == '\t') goto yy636;
7694
0
      goto yy86;
7695
12
    } else {
7696
12
      if (yych <= ' ') goto yy636;
7697
12
      if (yych == ')') goto yy713;
7698
12
      goto yy86;
7699
12
    }
7700
14
yy638:
7701
14
    YYDEBUG(638, *YYCURSOR);
7702
14
    yych = *++YYCURSOR;
7703
14
    if (yych == 'N') goto yy715;
7704
14
    if (yych == 'n') goto yy715;
7705
0
    goto yy86;
7706
190
yy639:
7707
190
    YYDEBUG(639, *YYCURSOR);
7708
190
    ++YYCURSOR;
7709
190
    YYFILL(1);
7710
190
    yych = *YYCURSOR;
7711
190
    YYDEBUG(640, *YYCURSOR);
7712
190
    if (yych <= 0x1F) {
7713
0
      if (yych == '\t') goto yy639;
7714
0
      goto yy86;
7715
190
    } else {
7716
190
      if (yych <= ' ') goto yy639;
7717
188
      if (yych == ')') goto yy717;
7718
180
      goto yy86;
7719
188
    }
7720
48
yy641:
7721
48
    YYDEBUG(641, *YYCURSOR);
7722
48
    ++YYCURSOR;
7723
48
    YYDEBUG(642, *YYCURSOR);
7724
48
    yyleng = YYCURSOR - SCNG(yy_text);
7725
48
#line 1651 "Zend/zend_language_scanner.l"
7726
48
    {
7727
48
  RETURN_TOKEN(T_DOUBLE_CAST);
7728
48
}
7729
0
#line 7730 "Zend/zend_language_scanner.c"
7730
148
yy643:
7731
148
    YYDEBUG(643, *YYCURSOR);
7732
148
    yych = *++YYCURSOR;
7733
148
    if (yych == 'R') goto yy719;
7734
148
    if (yych == 'r') goto yy719;
7735
0
    goto yy86;
7736
351
yy644:
7737
351
    YYDEBUG(644, *YYCURSOR);
7738
351
    ++YYCURSOR;
7739
351
    YYFILL(1);
7740
351
    yych = *YYCURSOR;
7741
351
    YYDEBUG(645, *YYCURSOR);
7742
351
    if (yych <= 0x1F) {
7743
0
      if (yych == '\t') goto yy644;
7744
0
      goto yy86;
7745
351
    } else {
7746
351
      if (yych <= ' ') goto yy644;
7747
314
      if (yych == ')') goto yy721;
7748
77
      goto yy86;
7749
314
    }
7750
3.38k
yy646:
7751
3.38k
    YYDEBUG(646, *YYCURSOR);
7752
3.38k
    ++YYCURSOR;
7753
3.38k
    YYFILL(1);
7754
3.38k
    yych = *YYCURSOR;
7755
3.38k
    YYDEBUG(647, *YYCURSOR);
7756
3.38k
    if (yych <= 0x1F) {
7757
5
      if (yych == '\t') goto yy646;
7758
2
      goto yy86;
7759
3.38k
    } else {
7760
3.38k
      if (yych <= ' ') goto yy646;
7761
2.74k
      if (yych == ')') goto yy723;
7762
722
      goto yy86;
7763
2.74k
    }
7764
50
yy648:
7765
50
    YYDEBUG(648, *YYCURSOR);
7766
50
    ++YYCURSOR;
7767
50
    YYDEBUG(649, *YYCURSOR);
7768
50
    yyleng = YYCURSOR - SCNG(yy_text);
7769
50
#line 1709 "Zend/zend_language_scanner.l"
7770
50
    {
7771
50
  RETURN_TOKEN(T_UNSET_CAST);
7772
50
}
7773
0
#line 7774 "Zend/zend_language_scanner.c"
7774
1.96k
yy650:
7775
1.96k
    YYDEBUG(650, *YYCURSOR);
7776
1.96k
    yyaccept = 4;
7777
1.96k
    yych = *(YYMARKER = ++YYCURSOR);
7778
1.96k
    if (yych == 'T') goto yy725;
7779
1.44k
    if (yych == 't') goto yy725;
7780
179
    goto yy48;
7781
219
yy651:
7782
219
    YYDEBUG(651, *YYCURSOR);
7783
219
    yyaccept = 4;
7784
219
    yych = *(YYMARKER = ++YYCURSOR);
7785
219
    if (yych == 'E') goto yy727;
7786
116
    if (yych == 'e') goto yy727;
7787
22
    goto yy48;
7788
282
yy652:
7789
282
    YYDEBUG(652, *YYCURSOR);
7790
282
    yyaccept = 4;
7791
282
    yych = *(YYMARKER = ++YYCURSOR);
7792
282
    if (yych == 'E') goto yy729;
7793
189
    if (yych == 'e') goto yy729;
7794
24
    goto yy48;
7795
1.50k
yy653:
7796
1.50k
    YYDEBUG(653, *YYCURSOR);
7797
1.50k
    yyaccept = 59;
7798
1.50k
    yych = *(YYMARKER = ++YYCURSOR);
7799
1.50k
    if (yybm[256+yych] & 128) {
7800
68
      goto yy47;
7801
68
    }
7802
1.44k
    if (yych == '\\') goto yy164;
7803
1.44k
yy654:
7804
1.44k
    YYDEBUG(654, *YYCURSOR);
7805
1.44k
    yyleng = YYCURSOR - SCNG(yy_text);
7806
1.44k
#line 1497 "Zend/zend_language_scanner.l"
7807
1.44k
    {
7808
1.44k
  RETURN_TOKEN_WITH_IDENT(T_DECLARE);
7809
1.44k
}
7810
0
#line 7811 "Zend/zend_language_scanner.c"
7811
308
yy655:
7812
308
    YYDEBUG(655, *YYCURSOR);
7813
308
    yyaccept = 60;
7814
308
    yych = *(YYMARKER = ++YYCURSOR);
7815
308
    if (yybm[256+yych] & 128) {
7816
42
      goto yy47;
7817
42
    }
7818
266
    if (yych == '\\') goto yy164;
7819
266
yy656:
7820
266
    YYDEBUG(656, *YYCURSOR);
7821
266
    yyleng = YYCURSOR - SCNG(yy_text);
7822
266
#line 1529 "Zend/zend_language_scanner.l"
7823
266
    {
7824
266
  RETURN_TOKEN_WITH_IDENT(T_DEFAULT);
7825
266
}
7826
0
#line 7827 "Zend/zend_language_scanner.c"
7827
339
yy657:
7828
339
    YYDEBUG(657, *YYCURSOR);
7829
339
    yyaccept = 4;
7830
339
    yych = *(YYMARKER = ++YYCURSOR);
7831
339
    if (yych == 'A') goto yy731;
7832
264
    if (yych == 'a') goto yy731;
7833
0
    goto yy48;
7834
289
yy658:
7835
289
    YYDEBUG(658, *YYCURSOR);
7836
289
    yyaccept = 4;
7837
289
    yych = *(YYMARKER = ++YYCURSOR);
7838
289
    if (yych == 'A') goto yy732;
7839
50
    if (yych == 'a') goto yy732;
7840
0
    goto yy48;
7841
253
yy659:
7842
253
    YYDEBUG(659, *YYCURSOR);
7843
253
    yyaccept = 4;
7844
253
    yych = *(YYMARKER = ++YYCURSOR);
7845
253
    if (yych == 'C') goto yy733;
7846
22
    if (yych == 'c') goto yy733;
7847
0
    goto yy48;
7848
1.68k
yy660:
7849
1.68k
    YYDEBUG(660, *YYCURSOR);
7850
1.68k
    yyaccept = 4;
7851
1.68k
    yych = *(YYMARKER = ++YYCURSOR);
7852
1.68k
    if (yych == 'E') goto yy734;
7853
1.60k
    if (yych == 'e') goto yy734;
7854
1.48k
    goto yy48;
7855
1.48k
yy661:
7856
203
    YYDEBUG(661, *YYCURSOR);
7857
203
    yych = *++YYCURSOR;
7858
203
    if (yych == 'T') goto yy736;
7859
203
    if (yych == 't') goto yy736;
7860
148
    goto yy86;
7861
174
yy662:
7862
174
    YYDEBUG(662, *YYCURSOR);
7863
174
    yych = *++YYCURSOR;
7864
174
    if (yych == 'P') goto yy737;
7865
152
    if (yych == 'p') goto yy737;
7866
8
    goto yy86;
7867
3.07k
yy663:
7868
3.07k
    YYDEBUG(663, *YYCURSOR);
7869
3.07k
    ++YYCURSOR;
7870
3.07k
    YYFILL(1);
7871
3.07k
    yych = *YYCURSOR;
7872
3.07k
    if (yych <= '\n') {
7873
1.23k
      if (yych <= 0x00) goto yy86;
7874
1.20k
      if (yych <= '\t') goto yy586;
7875
1.16k
      goto yy588;
7876
1.84k
    } else {
7877
1.84k
      if (yych == '\r') goto yy588;
7878
1.83k
      goto yy586;
7879
1.84k
    }
7880
33.6k
yy664:
7881
33.6k
    YYDEBUG(664, *YYCURSOR);
7882
33.6k
    ++YYCURSOR;
7883
33.6k
    YYFILL(1);
7884
33.6k
    yych = *YYCURSOR;
7885
33.6k
    if (yych <= '\f') {
7886
220
      if (yych <= 0x00) goto yy86;
7887
118
      if (yych == '\n') goto yy495;
7888
16
      goto yy586;
7889
33.4k
    } else {
7890
33.4k
      if (yych <= '\r') goto yy495;
7891
29.9k
      if (yych == '*') goto yy738;
7892
520
      goto yy586;
7893
29.9k
    }
7894
1.43k
yy665:
7895
1.43k
    YYDEBUG(665, *YYCURSOR);
7896
1.43k
    yyaccept = 53;
7897
1.43k
    YYMARKER = ++YYCURSOR;
7898
1.43k
    YYFILL(1);
7899
1.43k
    yych = *YYCURSOR;
7900
1.43k
    if (yych <= '\n') {
7901
316
      if (yych <= 0x00) goto yy583;
7902
140
      if (yych <= '\t') goto yy586;
7903
68
      goto yy495;
7904
1.12k
    } else {
7905
1.12k
      if (yych == '\r') goto yy495;
7906
1.03k
      goto yy586;
7907
1.12k
    }
7908
25.1k
yy666:
7909
25.1k
    YYDEBUG(666, *YYCURSOR);
7910
25.1k
    yyaccept = 53;
7911
25.1k
    YYMARKER = ++YYCURSOR;
7912
25.1k
    YYFILL(1);
7913
25.1k
    yych = *YYCURSOR;
7914
25.1k
    if (yych <= '\r') {
7915
2.61k
      if (yych <= '\t') {
7916
2.32k
        if (yych <= 0x00) goto yy583;
7917
2.30k
        goto yy586;
7918
2.32k
      } else {
7919
294
        if (yych <= '\n') goto yy495;
7920
294
        if (yych <= '\f') goto yy586;
7921
0
        goto yy495;
7922
294
      }
7923
22.4k
    } else {
7924
22.4k
      if (yych <= 'X') {
7925
708
        if (yych <= 'W') goto yy586;
7926
0
        goto yy740;
7927
21.7k
      } else {
7928
21.7k
        if (yych == 'x') goto yy740;
7929
9.17k
        goto yy586;
7930
21.7k
      }
7931
22.4k
    }
7932
300
yy667:
7933
300
    YYDEBUG(667, *YYCURSOR);
7934
300
    yyaccept = 53;
7935
300
    YYMARKER = ++YYCURSOR;
7936
300
    YYFILL(1);
7937
300
    yych = *YYCURSOR;
7938
300
    if (yych <= '\r') {
7939
6
      if (yych <= '\t') {
7940
4
        if (yych <= 0x00) goto yy583;
7941
0
        goto yy586;
7942
4
      } else {
7943
2
        if (yych <= '\n') goto yy495;
7944
2
        if (yych <= '\f') goto yy586;
7945
0
        goto yy495;
7946
2
      }
7947
294
    } else {
7948
294
      if (yych <= 'M') {
7949
182
        if (yych <= 'L') goto yy586;
7950
182
        goto yy741;
7951
182
      } else {
7952
112
        if (yych == 'm') goto yy741;
7953
84
        goto yy586;
7954
112
      }
7955
294
    }
7956
17.4k
yy668:
7957
17.4k
    YYDEBUG(668, *YYCURSOR);
7958
17.4k
    ++YYCURSOR;
7959
17.4k
    YYFILL(1);
7960
17.4k
    yych = *YYCURSOR;
7961
17.4k
    YYDEBUG(669, *YYCURSOR);
7962
17.4k
    if (yych <= '*') {
7963
1.72k
      if (yych <= 0x00) goto yy86;
7964
1.69k
      if (yych <= ')') goto yy590;
7965
168
      goto yy668;
7966
15.7k
    } else {
7967
15.7k
      if (yych == '/') goto yy495;
7968
472
      goto yy590;
7969
15.7k
    }
7970
3.18k
yy670:
7971
3.18k
    YYDEBUG(670, *YYCURSOR);
7972
3.18k
    yyaccept = 61;
7973
3.18k
    yych = *(YYMARKER = ++YYCURSOR);
7974
3.18k
    if (yybm[256+yych] & 128) {
7975
2
      goto yy47;
7976
2
    }
7977
3.18k
    if (yych == '\\') goto yy164;
7978
3.18k
yy671:
7979
3.18k
    YYDEBUG(671, *YYCURSOR);
7980
3.18k
    yyleng = YYCURSOR - SCNG(yy_text);
7981
3.18k
#line 1578 "Zend/zend_language_scanner.l"
7982
3.18k
    {
7983
3.18k
  RETURN_TOKEN_WITH_IDENT(T_EXTENDS);
7984
3.18k
}
7985
0
#line 7986 "Zend/zend_language_scanner.c"
7986
525
yy672:
7987
525
    YYDEBUG(672, *YYCURSOR);
7988
525
    yyaccept = 62;
7989
525
    yych = *(YYMARKER = ++YYCURSOR);
7990
525
    if (yybm[256+yych] & 128) {
7991
0
      goto yy47;
7992
0
    }
7993
525
    if (yych == '\\') goto yy164;
7994
525
yy673:
7995
525
    YYDEBUG(673, *YYCURSOR);
7996
525
    yyleng = YYCURSOR - SCNG(yy_text);
7997
525
#line 1445 "Zend/zend_language_scanner.l"
7998
525
    {
7999
525
  RETURN_TOKEN_WITH_IDENT(T_FINALLY);
8000
525
}
8001
0
#line 8002 "Zend/zend_language_scanner.c"
8002
11.4k
yy674:
8003
11.4k
    YYDEBUG(674, *YYCURSOR);
8004
11.4k
    yyaccept = 63;
8005
11.4k
    yych = *(YYMARKER = ++YYCURSOR);
8006
11.4k
    if (yybm[256+yych] & 128) {
8007
699
      goto yy47;
8008
699
    }
8009
10.7k
    if (yych == '\\') goto yy164;
8010
10.6k
yy675:
8011
10.6k
    YYDEBUG(675, *YYCURSOR);
8012
10.6k
    yyleng = YYCURSOR - SCNG(yy_text);
8013
10.6k
#line 1489 "Zend/zend_language_scanner.l"
8014
10.6k
    {
8015
10.6k
  RETURN_TOKEN_WITH_IDENT(T_FOREACH);
8016
10.6k
}
8017
0
#line 8018 "Zend/zend_language_scanner.c"
8018
35.1k
yy676:
8019
35.1k
    YYDEBUG(676, *YYCURSOR);
8020
35.1k
    yyaccept = 4;
8021
35.1k
    yych = *(YYMARKER = ++YYCURSOR);
8022
35.1k
    if (yych == 'N') goto yy742;
8023
35.0k
    if (yych == 'n') goto yy742;
8024
487
    goto yy48;
8025
1.34k
yy677:
8026
1.34k
    YYDEBUG(677, *YYCURSOR);
8027
1.34k
    yyaccept = 4;
8028
1.34k
    yych = *(YYMARKER = ++YYCURSOR);
8029
1.34k
    if (yych == 'N') goto yy744;
8030
933
    if (yych == 'n') goto yy744;
8031
18
    goto yy48;
8032
832
yy678:
8033
832
    YYDEBUG(678, *YYCURSOR);
8034
832
    yyaccept = 64;
8035
832
    yych = *(YYMARKER = ++YYCURSOR);
8036
832
    if (yych <= '\\') {
8037
588
      if (yych <= '@') {
8038
588
        if (yych <= '/') goto yy679;
8039
0
        if (yych <= '9') goto yy47;
8040
0
      } else {
8041
0
        if (yych <= 'Z') goto yy47;
8042
0
        if (yych >= '\\') goto yy164;
8043
0
      }
8044
588
    } else {
8045
244
      if (yych <= '`') {
8046
244
        if (yych == '_') goto yy745;
8047
244
      } else {
8048
0
        if (yych <= 'z') goto yy47;
8049
0
        if (yych >= 0x80) goto yy47;
8050
0
      }
8051
244
    }
8052
588
yy679:
8053
588
    YYDEBUG(679, *YYCURSOR);
8054
588
    yyleng = YYCURSOR - SCNG(yy_text);
8055
588
#line 1721 "Zend/zend_language_scanner.l"
8056
588
    {
8057
588
  RETURN_TOKEN_WITH_IDENT(T_INCLUDE);
8058
588
}
8059
0
#line 8060 "Zend/zend_language_scanner.c"
8060
487
yy680:
8061
487
    YYDEBUG(680, *YYCURSOR);
8062
487
    yyaccept = 4;
8063
487
    yych = *(YYMARKER = ++YYCURSOR);
8064
487
    if (yych == 'E') goto yy746;
8065
440
    if (yych == 'e') goto yy746;
8066
11
    goto yy48;
8067
1.36k
yy681:
8068
1.36k
    YYDEBUG(681, *YYCURSOR);
8069
1.36k
    yyaccept = 4;
8070
1.36k
    yych = *(YYMARKER = ++YYCURSOR);
8071
1.36k
    if (yych == 'O') goto yy747;
8072
1.32k
    if (yych == 'o') goto yy747;
8073
35
    goto yy48;
8074
1.49k
yy682:
8075
1.49k
    YYDEBUG(682, *YYCURSOR);
8076
1.49k
    yyaccept = 4;
8077
1.49k
    yych = *(YYMARKER = ++YYCURSOR);
8078
1.49k
    if (yych == 'C') goto yy748;
8079
1.37k
    if (yych == 'c') goto yy748;
8080
30
    goto yy48;
8081
5.38k
yy683:
8082
5.38k
    YYDEBUG(683, *YYCURSOR);
8083
5.38k
    yyaccept = 4;
8084
5.38k
    yych = *(YYMARKER = ++YYCURSOR);
8085
5.38k
    if (yych == 'C') goto yy749;
8086
5.09k
    if (yych == 'c') goto yy749;
8087
485
    goto yy48;
8088
2.85k
yy684:
8089
2.85k
    YYDEBUG(684, *YYCURSOR);
8090
2.85k
    yyaccept = 65;
8091
2.85k
    yych = *(YYMARKER = ++YYCURSOR);
8092
2.85k
    if (yybm[256+yych] & 128) {
8093
62
      goto yy47;
8094
62
    }
8095
2.79k
    if (yych == '(') goto yy750;
8096
2.68k
    if (yych == '\\') goto yy164;
8097
2.71k
yy685:
8098
2.71k
    YYDEBUG(685, *YYCURSOR);
8099
2.71k
    yyleng = YYCURSOR - SCNG(yy_text);
8100
2.71k
#line 1777 "Zend/zend_language_scanner.l"
8101
2.71k
    {
8102
2.71k
  RETURN_TOKEN_WITH_IDENT(T_PRIVATE);
8103
2.71k
}
8104
0
#line 8105 "Zend/zend_language_scanner.c"
8105
1.62k
yy686:
8106
1.62k
    YYDEBUG(686, *YYCURSOR);
8107
1.62k
    yyaccept = 4;
8108
1.62k
    yych = *(YYMARKER = ++YYCURSOR);
8109
1.62k
    if (yych == 'E') goto yy751;
8110
1.10k
    if (yych == 'e') goto yy751;
8111
20
    goto yy48;
8112
26
yy687:
8113
26
    YYDEBUG(687, *YYCURSOR);
8114
26
    yych = *++YYCURSOR;
8115
26
    if (yych == 'S') goto yy752;
8116
26
    if (yych == 's') goto yy752;
8117
14
    goto yy86;
8118
1.77k
yy688:
8119
1.77k
    YYDEBUG(688, *YYCURSOR);
8120
1.77k
    yyaccept = 4;
8121
1.77k
    yych = *(YYMARKER = ++YYCURSOR);
8122
1.77k
    if (yych == 'Y') goto yy753;
8123
1.77k
    if (yych == 'y') goto yy753;
8124
90
    goto yy48;
8125
5.28k
yy689:
8126
5.28k
    YYDEBUG(689, *YYCURSOR);
8127
5.28k
    yyaccept = 66;
8128
5.28k
    yych = *(YYMARKER = ++YYCURSOR);
8129
5.28k
    if (yych <= '\\') {
8130
4.78k
      if (yych <= '@') {
8131
4.77k
        if (yych <= '/') goto yy690;
8132
0
        if (yych <= '9') goto yy47;
8133
2
      } else {
8134
2
        if (yych <= 'Z') goto yy47;
8135
2
        if (yych >= '\\') goto yy164;
8136
2
      }
8137
4.78k
    } else {
8138
502
      if (yych <= '`') {
8139
208
        if (yych == '_') goto yy755;
8140
294
      } else {
8141
294
        if (yych <= 'z') goto yy47;
8142
8
        if (yych >= 0x80) goto yy47;
8143
8
      }
8144
502
    }
8145
4.78k
yy690:
8146
4.78k
    YYDEBUG(690, *YYCURSOR);
8147
4.78k
    yyleng = YYCURSOR - SCNG(yy_text);
8148
4.78k
#line 1729 "Zend/zend_language_scanner.l"
8149
4.78k
    {
8150
4.78k
  RETURN_TOKEN_WITH_IDENT(T_REQUIRE);
8151
4.78k
}
8152
0
#line 8153 "Zend/zend_language_scanner.c"
8153
667
yy691:
8154
667
    YYDEBUG(691, *YYCURSOR);
8155
667
    yych = *++YYCURSOR;
8156
667
    if (yych == 'R') goto yy756;
8157
562
    if (yych == 'r') goto yy756;
8158
28
    goto yy86;
8159
218k
yy692:
8160
218k
    YYDEBUG(692, *YYCURSOR);
8161
218k
    ++YYCURSOR;
8162
218k
    YYFILL(1);
8163
218k
    yych = *YYCURSOR;
8164
218k
    YYDEBUG(693, *YYCURSOR);
8165
218k
    if (yych <= '\n') {
8166
2.48k
      if (yych <= 0x00) goto yy86;
8167
2.01k
      if (yych <= '\t') goto yy692;
8168
1.77k
      goto yy616;
8169
216k
    } else {
8170
216k
      if (yych == '\r') goto yy616;
8171
191k
      goto yy692;
8172
216k
    }
8173
51.3k
yy694:
8174
51.3k
    YYDEBUG(694, *YYCURSOR);
8175
51.3k
    ++YYCURSOR;
8176
51.3k
    YYFILL(1);
8177
51.3k
    yych = *YYCURSOR;
8178
51.3k
    YYDEBUG(695, *YYCURSOR);
8179
51.3k
    if (yych <= ' ') {
8180
9.29k
      if (yych <= '\n') {
8181
724
        if (yych <= 0x00) goto yy86;
8182
642
        if (yych <= 0x08) goto yy692;
8183
440
        if (yych <= '\t') goto yy694;
8184
152
        goto yy616;
8185
8.57k
      } else {
8186
8.57k
        if (yych == '\r') goto yy616;
8187
302
        if (yych <= 0x1F) goto yy692;
8188
140
        goto yy694;
8189
302
      }
8190
42.0k
    } else {
8191
42.0k
      if (yych <= '/') {
8192
31.1k
        if (yych == '#') goto yy757;
8193
30.0k
        if (yych <= '.') goto yy692;
8194
29.8k
        goto yy758;
8195
30.0k
      } else {
8196
10.9k
        if (yych <= 'F') {
8197
258
          if (yych <= 'E') goto yy692;
8198
0
          goto yy759;
8199
10.6k
        } else {
8200
10.6k
          if (yych == 'f') goto yy759;
8201
10.6k
          goto yy692;
8202
10.6k
        }
8203
10.9k
      }
8204
42.0k
    }
8205
483k
yy696:
8206
483k
    YYDEBUG(696, *YYCURSOR);
8207
483k
    ++YYCURSOR;
8208
483k
    YYFILL(1);
8209
483k
    yych = *YYCURSOR;
8210
483k
    YYDEBUG(697, *YYCURSOR);
8211
483k
    if (yych <= 0x00) goto yy86;
8212
481k
    if (yych == '*') goto yy760;
8213
466k
    goto yy696;
8214
466k
yy698:
8215
720
    YYDEBUG(698, *YYCURSOR);
8216
720
    yyaccept = 4;
8217
720
    yych = *(YYMARKER = ++YYCURSOR);
8218
720
    if (yych == '_') goto yy762;
8219
8
    goto yy48;
8220
248
yy699:
8221
248
    YYDEBUG(699, *YYCURSOR);
8222
248
    yyaccept = 67;
8223
248
    yych = *(YYMARKER = ++YYCURSOR);
8224
248
    if (yybm[256+yych] & 128) {
8225
12
      goto yy47;
8226
12
    }
8227
236
    if (yych == '\\') goto yy164;
8228
236
yy700:
8229
236
    YYDEBUG(700, *YYCURSOR);
8230
236
    yyleng = YYCURSOR - SCNG(yy_text);
8231
236
#line 2280 "Zend/zend_language_scanner.l"
8232
236
    {
8233
236
  RETURN_TOKEN_WITH_IDENT(T_DIR);
8234
236
}
8235
0
#line 8236 "Zend/zend_language_scanner.c"
8236
4.61k
yy701:
8237
4.61k
    YYDEBUG(701, *YYCURSOR);
8238
4.61k
    yyaccept = 4;
8239
4.61k
    yych = *(YYMARKER = ++YYCURSOR);
8240
4.61k
    if (yych == '_') goto yy763;
8241
2.32k
    goto yy48;
8242
2.32k
yy702:
8243
1.13k
    YYDEBUG(702, *YYCURSOR);
8244
1.13k
    yyaccept = 4;
8245
1.13k
    yych = *(YYMARKER = ++YYCURSOR);
8246
1.13k
    if (yych == 'I') goto yy765;
8247
12
    if (yych == 'i') goto yy765;
8248
9
    goto yy48;
8249
30
yy703:
8250
30
    YYDEBUG(703, *YYCURSOR);
8251
30
    yyaccept = 4;
8252
30
    yych = *(YYMARKER = ++YYCURSOR);
8253
30
    if (yych == 'C') goto yy766;
8254
14
    if (yych == 'c') goto yy766;
8255
0
    goto yy48;
8256
194
yy704:
8257
194
    YYDEBUG(704, *YYCURSOR);
8258
194
    yyaccept = 4;
8259
194
    yych = *(YYMARKER = ++YYCURSOR);
8260
194
    if (yych == '_') goto yy767;
8261
0
    goto yy48;
8262
2.69k
yy705:
8263
2.69k
    YYDEBUG(705, *YYCURSOR);
8264
2.69k
    yyaccept = 4;
8265
2.69k
    yych = *(YYMARKER = ++YYCURSOR);
8266
2.69k
    if (yych == 'D') goto yy769;
8267
48
    if (yych == 'd') goto yy769;
8268
46
    goto yy48;
8269
1.89k
yy706:
8270
1.89k
    YYDEBUG(706, *YYCURSOR);
8271
1.89k
    yyaccept = 4;
8272
1.89k
    yych = *(YYMARKER = ++YYCURSOR);
8273
1.89k
    if (yych == 'P') goto yy770;
8274
380
    if (yych == 'p') goto yy770;
8275
378
    goto yy48;
8276
378
yy707:
8277
184
    YYDEBUG(707, *YYCURSOR);
8278
184
    yyaccept = 4;
8279
184
    yych = *(YYMARKER = ++YYCURSOR);
8280
184
    if (yych == 'R') goto yy771;
8281
2
    if (yych == 'r') goto yy771;
8282
2
    goto yy48;
8283
548
yy708:
8284
548
    YYDEBUG(708, *YYCURSOR);
8285
548
    yyaccept = 4;
8286
548
    yych = *(YYMARKER = ++YYCURSOR);
8287
548
    if (yych == '_') goto yy772;
8288
241
    goto yy48;
8289
19.3k
yy709:
8290
19.3k
    YYDEBUG(709, *YYCURSOR);
8291
19.3k
    ++YYCURSOR;
8292
19.3k
    YYFILL(1);
8293
19.3k
    yych = *YYCURSOR;
8294
19.3k
    YYDEBUG(710, *YYCURSOR);
8295
19.3k
    if (yych <= ' ') {
8296
2.55k
      if (yych <= '\n') {
8297
608
        if (yych <= 0x00) goto yy86;
8298
600
        if (yych <= 0x08) goto yy443;
8299
586
        if (yych <= '\t') goto yy709;
8300
42
        goto yy545;
8301
1.94k
      } else {
8302
1.94k
        if (yych == '\r') goto yy545;
8303
134
        if (yych <= 0x1F) goto yy443;
8304
116
        goto yy709;
8305
134
      }
8306
16.7k
    } else {
8307
16.7k
      if (yych <= ')') {
8308
1.63k
        if (yych <= '"') goto yy443;
8309
1.62k
        if (yych <= '#') goto yy773;
8310
748
        if (yych <= '$') goto yy774;
8311
670
        goto yy443;
8312
15.1k
      } else {
8313
15.1k
        if (yych <= '-') {
8314
8
          if (yych <= '*') goto yy547;
8315
8
          goto yy443;
8316
15.1k
        } else {
8317
15.1k
          if (yych <= '.') goto yy775;
8318
15.0k
          if (yych <= '/') goto yy776;
8319
8.54k
          goto yy443;
8320
15.0k
        }
8321
15.1k
      }
8322
16.7k
    }
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
6.20k
yy712:
8335
6.20k
    YYDEBUG(712, *YYCURSOR);
8336
6.20k
    ++YYCURSOR;
8337
6.20k
    YYFILL(1);
8338
6.20k
    yych = *YYCURSOR;
8339
6.20k
    if (yybm[0+yych] & 64) {
8340
0
      goto yy355;
8341
0
    }
8342
6.20k
    if (yych <= 0x00) goto yy86;
8343
6.20k
    if (yych == '/') goto yy545;
8344
78
    goto yy230;
8345
78
yy713:
8346
0
    YYDEBUG(713, *YYCURSOR);
8347
0
    ++YYCURSOR;
8348
0
    YYDEBUG(714, *YYCURSOR);
8349
0
    yyleng = YYCURSOR - SCNG(yy_text);
8350
0
#line 1677 "Zend/zend_language_scanner.l"
8351
0
    {
8352
0
  if (PARSER_MODE()) {
8353
0
    zend_error(E_DEPRECATED, "Non-canonical cast (binary) is deprecated, use the (string) cast instead");
8354
0
    if (EG(exception)) {
8355
0
      RETURN_TOKEN(T_ERROR);
8356
0
    }
8357
0
  }
8358
0
  RETURN_TOKEN(T_STRING_CAST);
8359
0
}
8360
0
#line 8361 "Zend/zend_language_scanner.c"
8361
28
yy715:
8362
28
    YYDEBUG(715, *YYCURSOR);
8363
28
    ++YYCURSOR;
8364
28
    YYFILL(1);
8365
28
    yych = *YYCURSOR;
8366
28
    YYDEBUG(716, *YYCURSOR);
8367
28
    if (yych <= 0x1F) {
8368
0
      if (yych == '\t') goto yy715;
8369
0
      goto yy86;
8370
28
    } else {
8371
28
      if (yych <= ' ') goto yy715;
8372
14
      if (yych == ')') goto yy777;
8373
14
      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
170
yy719:
8392
170
    YYDEBUG(719, *YYCURSOR);
8393
170
    ++YYCURSOR;
8394
170
    YYFILL(1);
8395
170
    yych = *YYCURSOR;
8396
170
    YYDEBUG(720, *YYCURSOR);
8397
170
    if (yych <= 0x1F) {
8398
0
      if (yych == '\t') goto yy719;
8399
0
      goto yy86;
8400
170
    } else {
8401
170
      if (yych <= ' ') goto yy719;
8402
148
      if (yych == ')') goto yy779;
8403
77
      goto yy86;
8404
148
    }
8405
237
yy721:
8406
237
    YYDEBUG(721, *YYCURSOR);
8407
237
    ++YYCURSOR;
8408
237
    YYDEBUG(722, *YYCURSOR);
8409
237
    yyleng = YYCURSOR - SCNG(yy_text);
8410
237
#line 1691 "Zend/zend_language_scanner.l"
8411
237
    {
8412
237
  RETURN_TOKEN(T_OBJECT_CAST);
8413
237
}
8414
0
#line 8415 "Zend/zend_language_scanner.c"
8415
2.02k
yy723:
8416
2.02k
    YYDEBUG(723, *YYCURSOR);
8417
2.02k
    ++YYCURSOR;
8418
2.02k
    YYDEBUG(724, *YYCURSOR);
8419
2.02k
    yyleng = YYCURSOR - SCNG(yy_text);
8420
2.02k
#line 1673 "Zend/zend_language_scanner.l"
8421
2.02k
    {
8422
2.02k
  RETURN_TOKEN(T_STRING_CAST);
8423
2.02k
}
8424
0
#line 8425 "Zend/zend_language_scanner.c"
8425
1.79k
yy725:
8426
1.79k
    YYDEBUG(725, *YYCURSOR);
8427
1.79k
    yyaccept = 68;
8428
1.79k
    yych = *(YYMARKER = ++YYCURSOR);
8429
1.79k
    if (yybm[256+yych] & 128) {
8430
813
      goto yy47;
8431
813
    }
8432
977
    if (yych == '\\') goto yy164;
8433
977
yy726:
8434
977
    YYDEBUG(726, *YYCURSOR);
8435
977
    yyleng = YYCURSOR - SCNG(yy_text);
8436
977
#line 1769 "Zend/zend_language_scanner.l"
8437
977
    {
8438
977
  RETURN_TOKEN_WITH_IDENT(T_ABSTRACT);
8439
977
}
8440
0
#line 8441 "Zend/zend_language_scanner.c"
8441
197
yy727:
8442
197
    YYDEBUG(727, *YYCURSOR);
8443
197
    yyaccept = 69;
8444
197
    yych = *(YYMARKER = ++YYCURSOR);
8445
197
    if (yybm[256+yych] & 128) {
8446
24
      goto yy47;
8447
24
    }
8448
173
    if (yych == '\\') goto yy164;
8449
173
yy728:
8450
173
    YYDEBUG(728, *YYCURSOR);
8451
173
    yyleng = YYCURSOR - SCNG(yy_text);
8452
173
#line 1821 "Zend/zend_language_scanner.l"
8453
173
    {
8454
173
  RETURN_TOKEN_WITH_IDENT(T_CALLABLE);
8455
173
}
8456
0
#line 8457 "Zend/zend_language_scanner.c"
8457
258
yy729:
8458
258
    YYDEBUG(729, *YYCURSOR);
8459
258
    yyaccept = 70;
8460
258
    yych = *(YYMARKER = ++YYCURSOR);
8461
258
    if (yybm[256+yych] & 128) {
8462
16
      goto yy47;
8463
16
    }
8464
242
    if (yych == '\\') goto yy164;
8465
242
yy730:
8466
242
    YYDEBUG(730, *YYCURSOR);
8467
242
    yyleng = YYCURSOR - SCNG(yy_text);
8468
242
#line 1537 "Zend/zend_language_scanner.l"
8469
242
    {
8470
242
  RETURN_TOKEN_WITH_IDENT(T_CONTINUE);
8471
242
}
8472
0
#line 8473 "Zend/zend_language_scanner.c"
8473
339
yy731:
8474
339
    YYDEBUG(731, *YYCURSOR);
8475
339
    yyaccept = 4;
8476
339
    yych = *(YYMARKER = ++YYCURSOR);
8477
339
    if (yych == 'R') goto yy781;
8478
264
    if (yych == 'r') goto yy781;
8479
0
    goto yy48;
8480
289
yy732:
8481
289
    YYDEBUG(732, *YYCURSOR);
8482
289
    yyaccept = 4;
8483
289
    yych = *(YYMARKER = ++YYCURSOR);
8484
289
    if (yych == 'C') goto yy782;
8485
50
    if (yych == 'c') goto yy782;
8486
18
    goto yy48;
8487
253
yy733:
8488
253
    YYDEBUG(733, *YYCURSOR);
8489
253
    yyaccept = 4;
8490
253
    yych = *(YYMARKER = ++YYCURSOR);
8491
253
    if (yych == 'H') goto yy783;
8492
22
    if (yych == 'h') goto yy783;
8493
0
    goto yy48;
8494
201
yy734:
8495
201
    YYDEBUG(734, *YYCURSOR);
8496
201
    yyaccept = 71;
8497
201
    yych = *(YYMARKER = ++YYCURSOR);
8498
201
    if (yybm[256+yych] & 128) {
8499
0
      goto yy47;
8500
0
    }
8501
201
    if (yych == '\\') goto yy164;
8502
201
yy735:
8503
201
    YYDEBUG(735, *YYCURSOR);
8504
201
    yyleng = YYCURSOR - SCNG(yy_text);
8505
201
#line 1473 "Zend/zend_language_scanner.l"
8506
201
    {
8507
201
  RETURN_TOKEN_WITH_IDENT(T_ENDWHILE);
8508
201
}
8509
0
#line 8510 "Zend/zend_language_scanner.c"
8510
55
yy736:
8511
55
    YYDEBUG(736, *YYCURSOR);
8512
55
    yych = *++YYCURSOR;
8513
55
    if (yych == 'E') goto yy785;
8514
55
    if (yych == 'e') goto yy785;
8515
0
    goto yy86;
8516
166
yy737:
8517
166
    YYDEBUG(737, *YYCURSOR);
8518
166
    yych = *++YYCURSOR;
8519
166
    if (yych == 'L') goto yy786;
8520
144
    if (yych == 'l') goto yy786;
8521
0
    goto yy86;
8522
617k
yy738:
8523
617k
    YYDEBUG(738, *YYCURSOR);
8524
617k
    ++YYCURSOR;
8525
617k
    YYFILL(1);
8526
617k
    yych = *YYCURSOR;
8527
617k
    YYDEBUG(739, *YYCURSOR);
8528
617k
    if (yych <= '\f') {
8529
36.5k
      if (yych <= 0x00) goto yy86;
8530
35.6k
      if (yych == '\n') goto yy787;
8531
3.51k
      goto yy738;
8532
580k
    } else {
8533
580k
      if (yych <= '\r') goto yy787;
8534
547k
      if (yych == '*') goto yy789;
8535
528k
      goto yy738;
8536
547k
    }
8537
12.6k
yy740:
8538
12.6k
    YYDEBUG(740, *YYCURSOR);
8539
12.6k
    ++YYCURSOR;
8540
12.6k
    YYFILL(1);
8541
12.6k
    yych = *YYCURSOR;
8542
12.6k
    if (yych <= '\r') {
8543
66
      if (yych <= '\t') {
8544
66
        if (yych <= 0x00) goto yy86;
8545
0
        goto yy586;
8546
66
      } else {
8547
0
        if (yych <= '\n') goto yy495;
8548
0
        if (yych <= '\f') goto yy586;
8549
0
        goto yy495;
8550
0
      }
8551
12.5k
    } else {
8552
12.5k
      if (yych <= 'T') {
8553
364
        if (yych <= 'S') goto yy586;
8554
8
        goto yy791;
8555
12.1k
      } else {
8556
12.1k
        if (yych == 't') goto yy791;
8557
10.2k
        goto yy586;
8558
12.1k
      }
8559
12.5k
    }
8560
210
yy741:
8561
210
    YYDEBUG(741, *YYCURSOR);
8562
210
    ++YYCURSOR;
8563
210
    YYFILL(1);
8564
210
    yych = *YYCURSOR;
8565
210
    if (yych <= '\r') {
8566
8
      if (yych <= '\t') {
8567
8
        if (yych <= 0x00) goto yy86;
8568
2
        goto yy586;
8569
8
      } else {
8570
0
        if (yych <= '\n') goto yy495;
8571
0
        if (yych <= '\f') goto yy586;
8572
0
        goto yy495;
8573
0
      }
8574
202
    } else {
8575
202
      if (yych <= 'P') {
8576
6
        if (yych <= 'O') goto yy586;
8577
0
        goto yy792;
8578
196
      } else {
8579
196
        if (yych == 'p') goto yy792;
8580
56
        goto yy586;
8581
196
      }
8582
202
    }
8583
34.7k
yy742:
8584
34.7k
    YYDEBUG(742, *YYCURSOR);
8585
34.7k
    yyaccept = 72;
8586
34.7k
    yych = *(YYMARKER = ++YYCURSOR);
8587
34.7k
    if (yybm[256+yych] & 128) {
8588
235
      goto yy47;
8589
235
    }
8590
34.4k
    if (yych == '\\') goto yy164;
8591
34.4k
yy743:
8592
34.4k
    YYDEBUG(743, *YYCURSOR);
8593
34.4k
    yyleng = YYCURSOR - SCNG(yy_text);
8594
34.4k
#line 1410 "Zend/zend_language_scanner.l"
8595
34.4k
    {
8596
34.4k
  RETURN_TOKEN_WITH_IDENT(T_FUNCTION);
8597
34.4k
}
8598
0
#line 8599 "Zend/zend_language_scanner.c"
8599
1.32k
yy744:
8600
1.32k
    YYDEBUG(744, *YYCURSOR);
8601
1.32k
    yyaccept = 4;
8602
1.32k
    yych = *(YYMARKER = ++YYCURSOR);
8603
1.32k
    if (yych == 'T') goto yy793;
8604
1.21k
    if (yych == 't') goto yy793;
8605
311
    goto yy48;
8606
311
yy745:
8607
244
    YYDEBUG(745, *YYCURSOR);
8608
244
    yyaccept = 4;
8609
244
    yych = *(YYMARKER = ++YYCURSOR);
8610
244
    if (yych == 'O') goto yy794;
8611
143
    if (yych == 'o') goto yy794;
8612
0
    goto yy48;
8613
476
yy746:
8614
476
    YYDEBUG(746, *YYCURSOR);
8615
476
    yyaccept = 4;
8616
476
    yych = *(YYMARKER = ++YYCURSOR);
8617
476
    if (yych == 'O') goto yy795;
8618
427
    if (yych == 'o') goto yy795;
8619
57
    goto yy48;
8620
1.32k
yy747:
8621
1.32k
    YYDEBUG(747, *YYCURSOR);
8622
1.32k
    yyaccept = 4;
8623
1.32k
    yych = *(YYMARKER = ++YYCURSOR);
8624
1.32k
    if (yych == 'F') goto yy796;
8625
1.28k
    if (yych == 'f') goto yy796;
8626
3
    goto yy48;
8627
1.46k
yy748:
8628
1.46k
    YYDEBUG(748, *YYCURSOR);
8629
1.46k
    yyaccept = 4;
8630
1.46k
    yych = *(YYMARKER = ++YYCURSOR);
8631
1.46k
    if (yych == 'E') goto yy798;
8632
1.34k
    if (yych == 'e') goto yy798;
8633
28
    goto yy48;
8634
4.89k
yy749:
8635
4.89k
    YYDEBUG(749, *YYCURSOR);
8636
4.89k
    yyaccept = 4;
8637
4.89k
    yych = *(YYMARKER = ++YYCURSOR);
8638
4.89k
    if (yych == 'E') goto yy800;
8639
4.82k
    if (yych == 'e') goto yy800;
8640
227
    goto yy48;
8641
227
yy750:
8642
114
    YYDEBUG(750, *YYCURSOR);
8643
114
    yych = *++YYCURSOR;
8644
114
    if (yych == 'S') goto yy802;
8645
114
    if (yych == 's') goto yy802;
8646
14
    goto yy86;
8647
1.60k
yy751:
8648
1.60k
    YYDEBUG(751, *YYCURSOR);
8649
1.60k
    yyaccept = 4;
8650
1.60k
    yych = *(YYMARKER = ++YYCURSOR);
8651
1.60k
    if (yych == 'D') goto yy803;
8652
1.08k
    if (yych == 'd') goto yy803;
8653
21
    goto yy48;
8654
21
yy752:
8655
12
    YYDEBUG(752, *YYCURSOR);
8656
12
    yych = *++YYCURSOR;
8657
12
    if (yych == 'E') goto yy805;
8658
12
    if (yych == 'e') goto yy805;
8659
2
    goto yy86;
8660
1.68k
yy753:
8661
1.68k
    YYDEBUG(753, *YYCURSOR);
8662
1.68k
    yyaccept = 73;
8663
1.68k
    yych = *(YYMARKER = ++YYCURSOR);
8664
1.68k
    if (yybm[256+yych] & 128) {
8665
204
      goto yy47;
8666
204
    }
8667
1.48k
    if (yych == '\\') goto yy164;
8668
1.48k
yy754:
8669
1.48k
    YYDEBUG(754, *YYCURSOR);
8670
1.48k
    yyleng = YYCURSOR - SCNG(yy_text);
8671
1.48k
#line 1801 "Zend/zend_language_scanner.l"
8672
1.48k
    {
8673
1.48k
  RETURN_TOKEN_WITH_IDENT(T_READONLY);
8674
1.48k
}
8675
0
#line 8676 "Zend/zend_language_scanner.c"
8676
206
yy755:
8677
206
    YYDEBUG(755, *YYCURSOR);
8678
206
    yyaccept = 4;
8679
206
    yych = *(YYMARKER = ++YYCURSOR);
8680
206
    if (yych == 'O') goto yy806;
8681
111
    if (yych == 'o') goto yy806;
8682
0
    goto yy48;
8683
639
yy756:
8684
639
    YYDEBUG(756, *YYCURSOR);
8685
639
    yych = *++YYCURSOR;
8686
639
    if (yych == 'O') goto yy807;
8687
639
    if (yych == 'o') goto yy807;
8688
105
    goto yy86;
8689
1.13k
yy757:
8690
1.13k
    YYDEBUG(757, *YYCURSOR);
8691
1.13k
    ++YYCURSOR;
8692
1.13k
    YYFILL(1);
8693
1.13k
    yych = *YYCURSOR;
8694
1.13k
    if (yych <= '\n') {
8695
330
      if (yych <= 0x00) goto yy86;
8696
330
      if (yych <= '\t') goto yy692;
8697
322
      goto yy694;
8698
804
    } else {
8699
804
      if (yych == '\r') goto yy694;
8700
804
      goto yy692;
8701
804
    }
8702
29.8k
yy758:
8703
29.8k
    YYDEBUG(758, *YYCURSOR);
8704
29.8k
    ++YYCURSOR;
8705
29.8k
    YYFILL(1);
8706
29.8k
    yych = *YYCURSOR;
8707
29.8k
    if (yych <= '\f') {
8708
148
      if (yych <= 0x00) goto yy86;
8709
22
      if (yych == '\n') goto yy616;
8710
22
      goto yy692;
8711
29.6k
    } else {
8712
29.6k
      if (yych <= '\r') goto yy616;
8713
25.7k
      if (yych == '*') goto yy808;
8714
478
      goto yy692;
8715
25.7k
    }
8716
16
yy759:
8717
16
    YYDEBUG(759, *YYCURSOR);
8718
16
    ++YYCURSOR;
8719
16
    YYFILL(1);
8720
16
    yych = *YYCURSOR;
8721
16
    if (yych <= '\r') {
8722
0
      if (yych <= '\t') {
8723
0
        if (yych <= 0x00) goto yy86;
8724
0
        goto yy692;
8725
0
      } else {
8726
0
        if (yych <= '\n') goto yy616;
8727
0
        if (yych <= '\f') goto yy692;
8728
0
        goto yy616;
8729
0
      }
8730
16
    } else {
8731
16
      if (yych <= 'R') {
8732
0
        if (yych <= 'Q') goto yy692;
8733
0
        goto yy810;
8734
16
      } else {
8735
16
        if (yych == 'r') goto yy810;
8736
16
        goto yy692;
8737
16
      }
8738
16
    }
8739
15.5k
yy760:
8740
15.5k
    YYDEBUG(760, *YYCURSOR);
8741
15.5k
    ++YYCURSOR;
8742
15.5k
    YYFILL(1);
8743
15.5k
    yych = *YYCURSOR;
8744
15.5k
    YYDEBUG(761, *YYCURSOR);
8745
15.5k
    if (yych <= '*') {
8746
912
      if (yych <= 0x00) goto yy86;
8747
912
      if (yych <= ')') goto yy696;
8748
84
      goto yy760;
8749
14.6k
    } else {
8750
14.6k
      if (yych == '/') goto yy616;
8751
242
      goto yy696;
8752
14.6k
    }
8753
712
yy762:
8754
712
    YYDEBUG(762, *YYCURSOR);
8755
712
    yyaccept = 4;
8756
712
    yych = *(YYMARKER = ++YYCURSOR);
8757
712
    if (yych == '_') goto yy811;
8758
2
    goto yy48;
8759
2.28k
yy763:
8760
2.28k
    YYDEBUG(763, *YYCURSOR);
8761
2.28k
    yyaccept = 74;
8762
2.28k
    yych = *(YYMARKER = ++YYCURSOR);
8763
2.28k
    if (yybm[256+yych] & 128) {
8764
2
      goto yy47;
8765
2
    }
8766
2.28k
    if (yych == '\\') goto yy164;
8767
2.28k
yy764:
8768
2.28k
    YYDEBUG(764, *YYCURSOR);
8769
2.28k
    yyleng = YYCURSOR - SCNG(yy_text);
8770
2.28k
#line 2276 "Zend/zend_language_scanner.l"
8771
2.28k
    {
8772
2.28k
  RETURN_TOKEN_WITH_IDENT(T_FILE);
8773
2.28k
}
8774
0
#line 8775 "Zend/zend_language_scanner.c"
8775
1.12k
yy765:
8776
1.12k
    YYDEBUG(765, *YYCURSOR);
8777
1.12k
    yyaccept = 4;
8778
1.12k
    yych = *(YYMARKER = ++YYCURSOR);
8779
1.12k
    if (yych == 'O') goto yy813;
8780
15
    if (yych == 'o') goto yy813;
8781
13
    goto yy48;
8782
30
yy766:
8783
30
    YYDEBUG(766, *YYCURSOR);
8784
30
    yyaccept = 4;
8785
30
    yych = *(YYMARKER = ++YYCURSOR);
8786
30
    if (yych == 'O') goto yy814;
8787
26
    if (yych == 'o') goto yy814;
8788
12
    goto yy48;
8789
194
yy767:
8790
194
    YYDEBUG(767, *YYCURSOR);
8791
194
    yyaccept = 75;
8792
194
    yych = *(YYMARKER = ++YYCURSOR);
8793
194
    if (yybm[256+yych] & 128) {
8794
30
      goto yy47;
8795
30
    }
8796
164
    if (yych == '\\') goto yy164;
8797
164
yy768:
8798
164
    YYDEBUG(768, *YYCURSOR);
8799
164
    yyleng = YYCURSOR - SCNG(yy_text);
8800
164
#line 2272 "Zend/zend_language_scanner.l"
8801
164
    {
8802
164
  RETURN_TOKEN_WITH_IDENT(T_LINE);
8803
164
}
8804
0
#line 8805 "Zend/zend_language_scanner.c"
8805
2.64k
yy769:
8806
2.64k
    YYDEBUG(769, *YYCURSOR);
8807
2.64k
    yyaccept = 4;
8808
2.64k
    yych = *(YYMARKER = ++YYCURSOR);
8809
2.64k
    if (yych == '_') goto yy815;
8810
145
    goto yy48;
8811
1.51k
yy770:
8812
1.51k
    YYDEBUG(770, *YYCURSOR);
8813
1.51k
    yyaccept = 4;
8814
1.51k
    yych = *(YYMARKER = ++YYCURSOR);
8815
1.51k
    if (yych == 'A') goto yy816;
8816
2
    if (yych == 'a') goto yy816;
8817
0
    goto yy48;
8818
182
yy771:
8819
182
    YYDEBUG(771, *YYCURSOR);
8820
182
    yyaccept = 4;
8821
182
    yych = *(YYMARKER = ++YYCURSOR);
8822
182
    if (yych == 'T') goto yy817;
8823
55
    if (yych == 't') goto yy817;
8824
0
    goto yy48;
8825
307
yy772:
8826
307
    YYDEBUG(772, *YYCURSOR);
8827
307
    yyaccept = 4;
8828
307
    yych = *(YYMARKER = ++YYCURSOR);
8829
307
    if (yych == '_') goto yy818;
8830
0
    goto yy48;
8831
880
yy773:
8832
880
    YYDEBUG(773, *YYCURSOR);
8833
880
    ++YYCURSOR;
8834
880
    YYFILL(1);
8835
880
    yych = *YYCURSOR;
8836
880
    if (yybm[0+yych] & 128) {
8837
256
      goto yy443;
8838
256
    }
8839
624
    if (yych <= 0x00) goto yy86;
8840
624
    if (yych <= '\r') goto yy709;
8841
78
    goto yy547;
8842
78
yy774:
8843
78
    YYDEBUG(774, *YYCURSOR);
8844
78
    yyaccept = 26;
8845
78
    YYMARKER = ++YYCURSOR;
8846
78
    YYFILL(1);
8847
78
    yych = *YYCURSOR;
8848
78
    if (yybm[0+yych] & 128) {
8849
72
      goto yy443;
8850
72
    }
8851
6
    if (yych <= 0x00) goto yy89;
8852
0
    if (yych <= '\r') goto yy545;
8853
0
    goto yy547;
8854
130
yy775:
8855
130
    YYDEBUG(775, *YYCURSOR);
8856
130
    ++YYCURSOR;
8857
130
    YYFILL(1);
8858
130
    yych = *YYCURSOR;
8859
130
    if (yych <= '\r') {
8860
80
      if (yych <= '\t') {
8861
0
        if (yych <= 0x00) goto yy86;
8862
0
        goto yy443;
8863
80
      } else {
8864
80
        if (yych <= '\n') goto yy545;
8865
80
        if (yych <= '\f') goto yy443;
8866
80
        goto yy545;
8867
80
      }
8868
80
    } else {
8869
50
      if (yych <= '*') {
8870
48
        if (yych <= ')') goto yy443;
8871
48
        goto yy547;
8872
48
      } else {
8873
2
        if (yych == '.') goto yy820;
8874
2
        goto yy443;
8875
2
      }
8876
50
    }
8877
6.46k
yy776:
8878
6.46k
    YYDEBUG(776, *YYCURSOR);
8879
6.46k
    ++YYCURSOR;
8880
6.46k
    YYFILL(1);
8881
6.46k
    yych = *YYCURSOR;
8882
6.46k
    if (yybm[0+yych] & 128) {
8883
122
      goto yy443;
8884
122
    }
8885
6.34k
    if (yych <= 0x00) goto yy86;
8886
6.33k
    if (yych <= '\r') goto yy545;
8887
6.18k
    goto yy821;
8888
6.18k
yy777:
8889
0
    YYDEBUG(777, *YYCURSOR);
8890
0
    ++YYCURSOR;
8891
0
    YYDEBUG(778, *YYCURSOR);
8892
0
    yyleng = YYCURSOR - SCNG(yy_text);
8893
0
#line 1699 "Zend/zend_language_scanner.l"
8894
0
    {
8895
0
  if (PARSER_MODE()) {
8896
0
    zend_error(E_DEPRECATED, "Non-canonical cast (boolean) is deprecated, use the (bool) cast instead");
8897
0
    if (EG(exception)) {
8898
0
      RETURN_TOKEN(T_ERROR);
8899
0
    }
8900
0
  }
8901
0
  RETURN_TOKEN(T_BOOL_CAST);
8902
0
}
8903
0
#line 8904 "Zend/zend_language_scanner.c"
8904
71
yy779:
8905
71
    YYDEBUG(779, *YYCURSOR);
8906
71
    ++YYCURSOR;
8907
71
    YYDEBUG(780, *YYCURSOR);
8908
71
    yyleng = YYCURSOR - SCNG(yy_text);
8909
71
#line 1641 "Zend/zend_language_scanner.l"
8910
71
    {
8911
71
  if (PARSER_MODE()) {
8912
0
    zend_error(E_DEPRECATED, "Non-canonical cast (integer) is deprecated, use the (int) cast instead");
8913
0
    if (EG(exception)) {
8914
0
      RETURN_TOKEN(T_ERROR);
8915
0
    }
8916
0
  }
8917
71
  RETURN_TOKEN(T_INT_CAST);
8918
71
}
8919
0
#line 8920 "Zend/zend_language_scanner.c"
8920
339
yy781:
8921
339
    YYDEBUG(781, *YYCURSOR);
8922
339
    yyaccept = 4;
8923
339
    yych = *(YYMARKER = ++YYCURSOR);
8924
339
    if (yych == 'E') goto yy822;
8925
264
    if (yych == 'e') goto yy822;
8926
0
    goto yy48;
8927
271
yy782:
8928
271
    YYDEBUG(782, *YYCURSOR);
8929
271
    yyaccept = 4;
8930
271
    yych = *(YYMARKER = ++YYCURSOR);
8931
271
    if (yych == 'H') goto yy824;
8932
34
    if (yych == 'h') goto yy824;
8933
2
    goto yy48;
8934
253
yy783:
8935
253
    YYDEBUG(783, *YYCURSOR);
8936
253
    yyaccept = 76;
8937
253
    yych = *(YYMARKER = ++YYCURSOR);
8938
253
    if (yybm[256+yych] & 128) {
8939
119
      goto yy47;
8940
119
    }
8941
134
    if (yych == '\\') goto yy164;
8942
134
yy784:
8943
134
    YYDEBUG(784, *YYCURSOR);
8944
134
    yyleng = YYCURSOR - SCNG(yy_text);
8945
134
#line 1521 "Zend/zend_language_scanner.l"
8946
134
    {
8947
134
  RETURN_TOKEN_WITH_IDENT(T_ENDSWITCH);
8948
134
}
8949
0
#line 8950 "Zend/zend_language_scanner.c"
8950
55
yy785:
8951
55
    YYDEBUG(785, *YYCURSOR);
8952
55
    yych = *++YYCURSOR;
8953
55
    if (yych == 'N') goto yy826;
8954
55
    if (yych == 'n') goto yy826;
8955
0
    goto yy86;
8956
166
yy786:
8957
166
    YYDEBUG(786, *YYCURSOR);
8958
166
    yych = *++YYCURSOR;
8959
166
    if (yych == 'E') goto yy827;
8960
116
    if (yych == 'e') goto yy827;
8961
64
    goto yy86;
8962
115k
yy787:
8963
115k
    YYDEBUG(787, *YYCURSOR);
8964
115k
    ++YYCURSOR;
8965
115k
    YYFILL(1);
8966
115k
    yych = *YYCURSOR;
8967
115k
    YYDEBUG(788, *YYCURSOR);
8968
115k
    if (yych <= '@') {
8969
111k
      if (yych <= ' ') {
8970
21.5k
        if (yych <= '\n') {
8971
992
          if (yych <= 0x00) goto yy86;
8972
766
          if (yych <= 0x08) goto yy590;
8973
750
          goto yy787;
8974
20.5k
        } else {
8975
20.5k
          if (yych == '\r') goto yy787;
8976
1.92k
          if (yych <= 0x1F) goto yy590;
8977
1.80k
          goto yy787;
8978
1.92k
        }
8979
89.8k
      } else {
8980
89.8k
        if (yych <= ')') {
8981
67.0k
          if (yych == '#') goto yy828;
8982
6.88k
          goto yy590;
8983
67.0k
        } else {
8984
22.8k
          if (yych <= '*') goto yy668;
8985
22.8k
          if (yych == '/') goto yy829;
8986
3.31k
          goto yy590;
8987
22.8k
        }
8988
89.8k
      }
8989
111k
    } else {
8990
3.81k
      if (yych <= '_') {
8991
398
        if (yych <= 'H') {
8992
256
          if (yych == 'E') goto yy831;
8993
256
          goto yy830;
8994
256
        } else {
8995
142
          if (yych <= 'I') goto yy832;
8996
128
          if (yych <= 'Z') goto yy830;
8997
110
          if (yych <= '^') goto yy590;
8998
2
          goto yy830;
8999
110
        }
9000
3.41k
      } else {
9001
3.41k
        if (yych <= 'h') {
9002
508
          if (yych <= '`') goto yy590;
9003
508
          if (yych == 'e') goto yy831;
9004
74
          goto yy830;
9005
2.91k
        } else {
9006
2.91k
          if (yych <= 'i') goto yy832;
9007
2.49k
          if (yych <= 'z') goto yy830;
9008
844
          if (yych <= 0x7F) goto yy590;
9009
590
          goto yy830;
9010
844
        }
9011
3.41k
      }
9012
3.81k
    }
9013
22.3k
yy789:
9014
22.3k
    YYDEBUG(789, *YYCURSOR);
9015
22.3k
    ++YYCURSOR;
9016
22.3k
    YYFILL(1);
9017
22.3k
    yych = *YYCURSOR;
9018
22.3k
    YYDEBUG(790, *YYCURSOR);
9019
22.3k
    if (yych <= '\r') {
9020
3.92k
      if (yych <= '\t') {
9021
56
        if (yych <= 0x00) goto yy86;
9022
6
        goto yy738;
9023
3.86k
      } else {
9024
3.86k
        if (yych <= '\n') goto yy787;
9025
3.85k
        if (yych <= '\f') goto yy738;
9026
3.85k
        goto yy787;
9027
3.85k
      }
9028
18.4k
    } else {
9029
18.4k
      if (yych <= '*') {
9030
5.19k
        if (yych <= ')') goto yy738;
9031
924
        goto yy789;
9032
13.2k
      } else {
9033
13.2k
        if (yych == '/') goto yy588;
9034
1.49k
        goto yy738;
9035
13.2k
      }
9036
18.4k
    }
9037
1.97k
yy791:
9038
1.97k
    YYDEBUG(791, *YYCURSOR);
9039
1.97k
    ++YYCURSOR;
9040
1.97k
    YYFILL(1);
9041
1.97k
    yych = *YYCURSOR;
9042
1.97k
    if (yych <= '\r') {
9043
72
      if (yych <= '\t') {
9044
72
        if (yych <= 0x00) goto yy86;
9045
0
        goto yy586;
9046
72
      } else {
9047
0
        if (yych <= '\n') goto yy495;
9048
0
        if (yych <= '\f') goto yy586;
9049
0
        goto yy495;
9050
0
      }
9051
1.90k
    } else {
9052
1.90k
      if (yych <= 'E') {
9053
8
        if (yych <= 'D') goto yy586;
9054
0
        goto yy833;
9055
1.89k
      } else {
9056
1.89k
        if (yych == 'e') goto yy833;
9057
1.89k
        goto yy586;
9058
1.89k
      }
9059
1.90k
    }
9060
140
yy792:
9061
140
    YYDEBUG(792, *YYCURSOR);
9062
140
    ++YYCURSOR;
9063
140
    YYFILL(1);
9064
140
    yych = *YYCURSOR;
9065
140
    if (yych <= '\r') {
9066
0
      if (yych <= '\t') {
9067
0
        if (yych <= 0x00) goto yy86;
9068
0
        goto yy586;
9069
0
      } else {
9070
0
        if (yych <= '\n') goto yy495;
9071
0
        if (yych <= '\f') goto yy586;
9072
0
        goto yy495;
9073
0
      }
9074
140
    } else {
9075
140
      if (yych <= 'L') {
9076
18
        if (yych <= 'K') goto yy586;
9077
0
        goto yy834;
9078
122
      } else {
9079
122
        if (yych == 'l') goto yy834;
9080
16
        goto yy586;
9081
122
      }
9082
140
    }
9083
1.01k
yy793:
9084
1.01k
    YYDEBUG(793, *YYCURSOR);
9085
1.01k
    yyaccept = 4;
9086
1.01k
    yych = *(YYMARKER = ++YYCURSOR);
9087
1.01k
    if (yych == 'S') goto yy835;
9088
906
    if (yych == 's') goto yy835;
9089
6
    goto yy48;
9090
244
yy794:
9091
244
    YYDEBUG(794, *YYCURSOR);
9092
244
    yyaccept = 4;
9093
244
    yych = *(YYMARKER = ++YYCURSOR);
9094
244
    if (yych == 'N') goto yy837;
9095
143
    if (yych == 'n') goto yy837;
9096
0
    goto yy48;
9097
419
yy795:
9098
419
    YYDEBUG(795, *YYCURSOR);
9099
419
    yyaccept = 4;
9100
419
    yych = *(YYMARKER = ++YYCURSOR);
9101
419
    if (yych == 'F') goto yy838;
9102
372
    if (yych == 'f') goto yy838;
9103
6
    goto yy48;
9104
1.32k
yy796:
9105
1.32k
    YYDEBUG(796, *YYCURSOR);
9106
1.32k
    yyaccept = 77;
9107
1.32k
    yych = *(YYMARKER = ++YYCURSOR);
9108
1.32k
    if (yybm[256+yych] & 128) {
9109
137
      goto yy47;
9110
137
    }
9111
1.18k
    if (yych == '\\') goto yy164;
9112
1.18k
yy797:
9113
1.18k
    YYDEBUG(797, *YYCURSOR);
9114
1.18k
    yyleng = YYCURSOR - SCNG(yy_text);
9115
1.18k
#line 1745 "Zend/zend_language_scanner.l"
9116
1.18k
    {
9117
1.18k
    RETURN_TOKEN_WITH_IDENT(T_INSTEADOF);
9118
1.18k
}
9119
0
#line 9120 "Zend/zend_language_scanner.c"
9120
1.43k
yy798:
9121
1.43k
    YYDEBUG(798, *YYCURSOR);
9122
1.43k
    yyaccept = 78;
9123
1.43k
    yych = *(YYMARKER = ++YYCURSOR);
9124
1.43k
    if (yybm[256+yych] & 128) {
9125
40
      goto yy47;
9126
40
    }
9127
1.39k
    if (yych == '\\') goto yy164;
9128
1.39k
yy799:
9129
1.39k
    YYDEBUG(799, *YYCURSOR);
9130
1.39k
    yyleng = YYCURSOR - SCNG(yy_text);
9131
1.39k
#line 1557 "Zend/zend_language_scanner.l"
9132
1.39k
    {
9133
1.39k
  RETURN_TOKEN_WITH_IDENT(T_INTERFACE);
9134
1.39k
}
9135
0
#line 9136 "Zend/zend_language_scanner.c"
9136
4.67k
yy800:
9137
4.67k
    YYDEBUG(800, *YYCURSOR);
9138
4.67k
    yyaccept = 79;
9139
4.67k
    yych = *(YYMARKER = ++YYCURSOR);
9140
4.67k
    if (yybm[256+yych] & 128) {
9141
295
      goto yy47;
9142
295
    }
9143
4.37k
    if (yych == '\\') goto yy840;
9144
3.64k
yy801:
9145
3.64k
    YYDEBUG(801, *YYCURSOR);
9146
3.64k
    yyleng = YYCURSOR - SCNG(yy_text);
9147
3.64k
#line 1737 "Zend/zend_language_scanner.l"
9148
3.64k
    {
9149
3.64k
  RETURN_TOKEN_WITH_IDENT(T_NAMESPACE);
9150
3.64k
}
9151
0
#line 9152 "Zend/zend_language_scanner.c"
9152
100
yy802:
9153
100
    YYDEBUG(802, *YYCURSOR);
9154
100
    yych = *++YYCURSOR;
9155
100
    if (yych == 'E') goto yy841;
9156
100
    if (yych == 'e') goto yy841;
9157
18
    goto yy86;
9158
1.58k
yy803:
9159
1.58k
    YYDEBUG(803, *YYCURSOR);
9160
1.58k
    yyaccept = 80;
9161
1.58k
    yych = *(YYMARKER = ++YYCURSOR);
9162
1.58k
    if (yybm[256+yych] & 128) {
9163
0
      goto yy47;
9164
0
    }
9165
1.58k
    if (yych == '(') goto yy842;
9166
1.38k
    if (yych == '\\') goto yy164;
9167
1.40k
yy804:
9168
1.40k
    YYDEBUG(804, *YYCURSOR);
9169
1.40k
    yyleng = YYCURSOR - SCNG(yy_text);
9170
1.40k
#line 1781 "Zend/zend_language_scanner.l"
9171
1.40k
    {
9172
1.40k
  RETURN_TOKEN_WITH_IDENT(T_PROTECTED);
9173
1.40k
}
9174
0
#line 9175 "Zend/zend_language_scanner.c"
9175
10
yy805:
9176
10
    YYDEBUG(805, *YYCURSOR);
9177
10
    yych = *++YYCURSOR;
9178
10
    if (yych == 'T') goto yy843;
9179
10
    if (yych == 't') goto yy843;
9180
0
    goto yy86;
9181
206
yy806:
9182
206
    YYDEBUG(806, *YYCURSOR);
9183
206
    yyaccept = 4;
9184
206
    yych = *(YYMARKER = ++YYCURSOR);
9185
206
    if (yych == 'N') goto yy844;
9186
111
    if (yych == 'n') goto yy844;
9187
0
    goto yy48;
9188
534
yy807:
9189
534
    YYDEBUG(807, *YYCURSOR);
9190
534
    yych = *++YYCURSOR;
9191
534
    if (yych == 'M') goto yy845;
9192
534
    if (yych == 'm') goto yy845;
9193
2
    goto yy86;
9194
603k
yy808:
9195
603k
    YYDEBUG(808, *YYCURSOR);
9196
603k
    ++YYCURSOR;
9197
603k
    YYFILL(1);
9198
603k
    yych = *YYCURSOR;
9199
603k
    YYDEBUG(809, *YYCURSOR);
9200
603k
    if (yych <= '\f') {
9201
34.4k
      if (yych <= 0x00) goto yy86;
9202
33.8k
      if (yych == '\n') goto yy846;
9203
1.86k
      goto yy808;
9204
569k
    } else {
9205
569k
      if (yych <= '\r') goto yy846;
9206
540k
      if (yych == '*') goto yy848;
9207
524k
      goto yy808;
9208
540k
    }
9209
0
yy810:
9210
0
    YYDEBUG(810, *YYCURSOR);
9211
0
    ++YYCURSOR;
9212
0
    YYFILL(1);
9213
0
    yych = *YYCURSOR;
9214
0
    if (yych <= '\r') {
9215
0
      if (yych <= '\t') {
9216
0
        if (yych <= 0x00) goto yy86;
9217
0
        goto yy692;
9218
0
      } else {
9219
0
        if (yych <= '\n') goto yy616;
9220
0
        if (yych <= '\f') goto yy692;
9221
0
        goto yy616;
9222
0
      }
9223
0
    } else {
9224
0
      if (yych <= 'O') {
9225
0
        if (yych <= 'N') goto yy692;
9226
0
        goto yy850;
9227
0
      } else {
9228
0
        if (yych == 'o') goto yy850;
9229
0
        goto yy692;
9230
0
      }
9231
0
    }
9232
710
yy811:
9233
710
    YYDEBUG(811, *YYCURSOR);
9234
710
    yyaccept = 81;
9235
710
    yych = *(YYMARKER = ++YYCURSOR);
9236
710
    if (yybm[256+yych] & 128) {
9237
151
      goto yy47;
9238
151
    }
9239
559
    if (yych == '\\') goto yy164;
9240
559
yy812:
9241
559
    YYDEBUG(812, *YYCURSOR);
9242
559
    yyleng = YYCURSOR - SCNG(yy_text);
9243
559
#line 2252 "Zend/zend_language_scanner.l"
9244
559
    {
9245
559
  RETURN_TOKEN_WITH_IDENT(T_CLASS_C);
9246
559
}
9247
0
#line 9248 "Zend/zend_language_scanner.c"
9248
1.11k
yy813:
9249
1.11k
    YYDEBUG(813, *YYCURSOR);
9250
1.11k
    yyaccept = 4;
9251
1.11k
    yych = *(YYMARKER = ++YYCURSOR);
9252
1.11k
    if (yych == 'N') goto yy851;
9253
101
    if (yych == 'n') goto yy851;
9254
99
    goto yy48;
9255
99
yy814:
9256
18
    YYDEBUG(814, *YYCURSOR);
9257
18
    yyaccept = 4;
9258
18
    yych = *(YYMARKER = ++YYCURSOR);
9259
18
    if (yych == 'M') goto yy852;
9260
14
    if (yych == 'm') goto yy852;
9261
4
    goto yy48;
9262
2.49k
yy815:
9263
2.49k
    YYDEBUG(815, *YYCURSOR);
9264
2.49k
    yyaccept = 4;
9265
2.49k
    yych = *(YYMARKER = ++YYCURSOR);
9266
2.49k
    if (yych == '_') goto yy853;
9267
10
    goto yy48;
9268
1.51k
yy816:
9269
1.51k
    YYDEBUG(816, *YYCURSOR);
9270
1.51k
    yyaccept = 4;
9271
1.51k
    yych = *(YYMARKER = ++YYCURSOR);
9272
1.51k
    if (yych == 'C') goto yy855;
9273
3
    if (yych == 'c') goto yy855;
9274
1
    goto yy48;
9275
182
yy817:
9276
182
    YYDEBUG(817, *YYCURSOR);
9277
182
    yyaccept = 4;
9278
182
    yych = *(YYMARKER = ++YYCURSOR);
9279
182
    if (yych == 'Y') goto yy856;
9280
57
    if (yych == 'y') goto yy856;
9281
55
    goto yy48;
9282
307
yy818:
9283
307
    YYDEBUG(818, *YYCURSOR);
9284
307
    yyaccept = 82;
9285
307
    yych = *(YYMARKER = ++YYCURSOR);
9286
307
    if (yybm[256+yych] & 128) {
9287
2
      goto yy47;
9288
2
    }
9289
305
    if (yych == '\\') goto yy164;
9290
305
yy819:
9291
305
    YYDEBUG(819, *YYCURSOR);
9292
305
    yyleng = YYCURSOR - SCNG(yy_text);
9293
305
#line 2256 "Zend/zend_language_scanner.l"
9294
305
    {
9295
305
  RETURN_TOKEN_WITH_IDENT(T_TRAIT_C);
9296
305
}
9297
0
#line 9298 "Zend/zend_language_scanner.c"
9298
0
yy820:
9299
0
    YYDEBUG(820, *YYCURSOR);
9300
0
    ++YYCURSOR;
9301
0
    YYFILL(1);
9302
0
    yych = *YYCURSOR;
9303
0
    if (yych <= '\r') {
9304
0
      if (yych <= '\t') {
9305
0
        if (yych <= 0x00) goto yy86;
9306
0
        goto yy443;
9307
0
      } else {
9308
0
        if (yych <= '\n') goto yy545;
9309
0
        if (yych <= '\f') goto yy443;
9310
0
        goto yy545;
9311
0
      }
9312
0
    } else {
9313
0
      if (yych <= '*') {
9314
0
        if (yych <= ')') goto yy443;
9315
0
        goto yy547;
9316
0
      } else {
9317
0
        if (yych == '.') goto yy774;
9318
0
        goto yy443;
9319
0
      }
9320
0
    }
9321
6.18k
yy821:
9322
6.18k
    YYDEBUG(821, *YYCURSOR);
9323
6.18k
    ++YYCURSOR;
9324
6.18k
    YYFILL(1);
9325
6.18k
    yych = *YYCURSOR;
9326
6.18k
    if (yych <= '\r') {
9327
61
      if (yych <= '\t') {
9328
0
        if (yych <= 0x00) goto yy86;
9329
0
        goto yy443;
9330
61
      } else {
9331
61
        if (yych <= '\n') goto yy545;
9332
0
        if (yych <= '\f') goto yy443;
9333
0
        goto yy545;
9334
0
      }
9335
6.12k
    } else {
9336
6.12k
      if (yych <= '*') {
9337
16
        if (yych <= ')') goto yy443;
9338
0
        goto yy547;
9339
6.10k
      } else {
9340
6.10k
        if (yych == '/') goto yy709;
9341
50
        goto yy443;
9342
6.10k
      }
9343
6.12k
    }
9344
339
yy822:
9345
339
    YYDEBUG(822, *YYCURSOR);
9346
339
    yyaccept = 83;
9347
339
    yych = *(YYMARKER = ++YYCURSOR);
9348
339
    if (yybm[256+yych] & 128) {
9349
250
      goto yy47;
9350
250
    }
9351
89
    if (yych == '\\') goto yy164;
9352
89
yy823:
9353
89
    YYDEBUG(823, *YYCURSOR);
9354
89
    yyleng = YYCURSOR - SCNG(yy_text);
9355
89
#line 1501 "Zend/zend_language_scanner.l"
9356
89
    {
9357
89
  RETURN_TOKEN_WITH_IDENT(T_ENDDECLARE);
9358
89
}
9359
0
#line 9360 "Zend/zend_language_scanner.c"
9360
269
yy824:
9361
269
    YYDEBUG(824, *YYCURSOR);
9362
269
    yyaccept = 84;
9363
269
    yych = *(YYMARKER = ++YYCURSOR);
9364
269
    if (yybm[256+yych] & 128) {
9365
2
      goto yy47;
9366
2
    }
9367
267
    if (yych == '\\') goto yy164;
9368
267
yy825:
9369
267
    YYDEBUG(825, *YYCURSOR);
9370
267
    yyleng = YYCURSOR - SCNG(yy_text);
9371
267
#line 1493 "Zend/zend_language_scanner.l"
9372
267
    {
9373
267
  RETURN_TOKEN_WITH_IDENT(T_ENDFOREACH);
9374
267
}
9375
0
#line 9376 "Zend/zend_language_scanner.c"
9376
55
yy826:
9377
55
    YYDEBUG(826, *YYCURSOR);
9378
55
    yych = *++YYCURSOR;
9379
55
    if (yych == 'D') goto yy857;
9380
55
    if (yych == 'd') goto yy857;
9381
3
    goto yy86;
9382
102
yy827:
9383
102
    YYDEBUG(827, *YYCURSOR);
9384
102
    yych = *++YYCURSOR;
9385
102
    if (yych == 'M') goto yy858;
9386
80
    if (yych == 'm') goto yy858;
9387
0
    goto yy86;
9388
60.1k
yy828:
9389
60.1k
    YYDEBUG(828, *YYCURSOR);
9390
60.1k
    ++YYCURSOR;
9391
60.1k
    YYFILL(1);
9392
60.1k
    yych = *YYCURSOR;
9393
60.1k
    if (yych <= '\r') {
9394
40.1k
      if (yych <= '\t') {
9395
210
        if (yych <= 0x00) goto yy86;
9396
188
        goto yy738;
9397
39.9k
      } else {
9398
39.9k
        if (yych <= '\n') goto yy859;
9399
726
        if (yych <= '\f') goto yy738;
9400
458
        goto yy859;
9401
726
      }
9402
40.1k
    } else {
9403
19.9k
      if (yych <= '*') {
9404
2.66k
        if (yych <= ')') goto yy738;
9405
1.34k
        goto yy789;
9406
17.3k
      } else {
9407
17.3k
        if (yych == '[') goto yy590;
9408
17.3k
        goto yy738;
9409
17.3k
      }
9410
19.9k
    }
9411
19.5k
yy829:
9412
19.5k
    YYDEBUG(829, *YYCURSOR);
9413
19.5k
    ++YYCURSOR;
9414
19.5k
    YYFILL(1);
9415
19.5k
    yych = *YYCURSOR;
9416
19.5k
    if (yych <= '*') {
9417
18.1k
      if (yych <= 0x00) goto yy86;
9418
18.1k
      if (yych <= ')') goto yy590;
9419
18.0k
      goto yy861;
9420
18.1k
    } else {
9421
1.34k
      if (yych == '/') goto yy738;
9422
1.23k
      goto yy590;
9423
1.34k
    }
9424
2.58k
yy830:
9425
2.58k
    YYDEBUG(830, *YYCURSOR);
9426
2.58k
    yyaccept = 53;
9427
2.58k
    YYMARKER = ++YYCURSOR;
9428
2.58k
    YYFILL(1);
9429
2.58k
    yych = *YYCURSOR;
9430
2.58k
    if (yych <= 0x00) goto yy583;
9431
2.54k
    if (yych == '*') goto yy668;
9432
2.36k
    goto yy590;
9433
2.36k
yy831:
9434
434
    YYDEBUG(831, *YYCURSOR);
9435
434
    yyaccept = 53;
9436
434
    YYMARKER = ++YYCURSOR;
9437
434
    YYFILL(1);
9438
434
    yych = *YYCURSOR;
9439
434
    if (yych <= 'W') {
9440
78
      if (yych <= 0x00) goto yy583;
9441
78
      if (yych == '*') goto yy668;
9442
78
      goto yy590;
9443
356
    } else {
9444
356
      if (yych <= 'X') goto yy862;
9445
356
      if (yych == 'x') goto yy862;
9446
116
      goto yy590;
9447
356
    }
9448
432
yy832:
9449
432
    YYDEBUG(832, *YYCURSOR);
9450
432
    yyaccept = 53;
9451
432
    YYMARKER = ++YYCURSOR;
9452
432
    YYFILL(1);
9453
432
    yych = *YYCURSOR;
9454
432
    if (yych <= 'L') {
9455
6
      if (yych <= 0x00) goto yy583;
9456
6
      if (yych == '*') goto yy668;
9457
6
      goto yy590;
9458
426
    } else {
9459
426
      if (yych <= 'M') goto yy863;
9460
412
      if (yych == 'm') goto yy863;
9461
130
      goto yy590;
9462
412
    }
9463
0
yy833:
9464
0
    YYDEBUG(833, *YYCURSOR);
9465
0
    ++YYCURSOR;
9466
0
    YYFILL(1);
9467
0
    yych = *YYCURSOR;
9468
0
    if (yych <= '\r') {
9469
0
      if (yych <= '\t') {
9470
0
        if (yych <= 0x00) goto yy86;
9471
0
        goto yy586;
9472
0
      } else {
9473
0
        if (yych <= '\n') goto yy495;
9474
0
        if (yych <= '\f') goto yy586;
9475
0
        goto yy495;
9476
0
      }
9477
0
    } else {
9478
0
      if (yych <= 'N') {
9479
0
        if (yych <= 'M') goto yy586;
9480
0
        goto yy864;
9481
0
      } else {
9482
0
        if (yych == 'n') goto yy864;
9483
0
        goto yy586;
9484
0
      }
9485
0
    }
9486
106
yy834:
9487
106
    YYDEBUG(834, *YYCURSOR);
9488
106
    ++YYCURSOR;
9489
106
    YYFILL(1);
9490
106
    yych = *YYCURSOR;
9491
106
    if (yych <= '\r') {
9492
0
      if (yych <= '\t') {
9493
0
        if (yych <= 0x00) goto yy86;
9494
0
        goto yy586;
9495
0
      } else {
9496
0
        if (yych <= '\n') goto yy495;
9497
0
        if (yych <= '\f') goto yy586;
9498
0
        goto yy495;
9499
0
      }
9500
106
    } else {
9501
106
      if (yych <= 'E') {
9502
94
        if (yych <= 'D') goto yy586;
9503
28
        goto yy865;
9504
94
      } else {
9505
12
        if (yych == 'e') goto yy865;
9506
8
        goto yy586;
9507
12
      }
9508
106
    }
9509
1.00k
yy835:
9510
1.00k
    YYDEBUG(835, *YYCURSOR);
9511
1.00k
    yyaccept = 85;
9512
1.00k
    yych = *(YYMARKER = ++YYCURSOR);
9513
1.00k
    if (yybm[256+yych] & 128) {
9514
0
      goto yy47;
9515
0
    }
9516
1.00k
    if (yych == '\\') goto yy164;
9517
1.00k
yy836:
9518
1.00k
    YYDEBUG(836, *YYCURSOR);
9519
1.00k
    yyleng = YYCURSOR - SCNG(yy_text);
9520
1.00k
#line 1582 "Zend/zend_language_scanner.l"
9521
1.00k
    {
9522
1.00k
  RETURN_TOKEN_WITH_IDENT(T_IMPLEMENTS);
9523
1.00k
}
9524
0
#line 9525 "Zend/zend_language_scanner.c"
9525
244
yy837:
9526
244
    YYDEBUG(837, *YYCURSOR);
9527
244
    yyaccept = 4;
9528
244
    yych = *(YYMARKER = ++YYCURSOR);
9529
244
    if (yych == 'C') goto yy866;
9530
143
    if (yych == 'c') goto yy866;
9531
2
    goto yy48;
9532
413
yy838:
9533
413
    YYDEBUG(838, *YYCURSOR);
9534
413
    yyaccept = 86;
9535
413
    yych = *(YYMARKER = ++YYCURSOR);
9536
413
    if (yybm[256+yych] & 128) {
9537
18
      goto yy47;
9538
18
    }
9539
395
    if (yych == '\\') goto yy164;
9540
395
yy839:
9541
395
    YYDEBUG(839, *YYCURSOR);
9542
395
    yyleng = YYCURSOR - SCNG(yy_text);
9543
395
#line 1505 "Zend/zend_language_scanner.l"
9544
395
    {
9545
395
  RETURN_TOKEN_WITH_IDENT(T_INSTANCEOF);
9546
395
}
9547
0
#line 9548 "Zend/zend_language_scanner.c"
9548
756
yy840:
9549
756
    YYDEBUG(840, *YYCURSOR);
9550
756
    ++YYCURSOR;
9551
756
    YYFILL(1);
9552
756
    yych = *YYCURSOR;
9553
756
    if (yych <= '_') {
9554
70
      if (yych <= '@') goto yy86;
9555
60
      if (yych <= 'Z') goto yy867;
9556
24
      if (yych <= '^') goto yy86;
9557
14
      goto yy867;
9558
686
    } else {
9559
686
      if (yych <= '`') goto yy86;
9560
686
      if (yych <= 'z') goto yy867;
9561
2
      if (yych <= 0x7F) goto yy86;
9562
2
      goto yy867;
9563
2
    }
9564
82
yy841:
9565
82
    YYDEBUG(841, *YYCURSOR);
9566
82
    yych = *++YYCURSOR;
9567
82
    if (yych == 'T') goto yy870;
9568
82
    if (yych == 't') goto yy870;
9569
0
    goto yy86;
9570
200
yy842:
9571
200
    YYDEBUG(842, *YYCURSOR);
9572
200
    yych = *++YYCURSOR;
9573
200
    if (yych == 'S') goto yy871;
9574
200
    if (yych == 's') goto yy871;
9575
14
    goto yy86;
9576
14
yy843:
9577
10
    YYDEBUG(843, *YYCURSOR);
9578
10
    yych = *++YYCURSOR;
9579
10
    if (yych == ')') goto yy872;
9580
0
    goto yy86;
9581
206
yy844:
9582
206
    YYDEBUG(844, *YYCURSOR);
9583
206
    yyaccept = 4;
9584
206
    yych = *(YYMARKER = ++YYCURSOR);
9585
206
    if (yych == 'C') goto yy874;
9586
111
    if (yych == 'c') goto yy874;
9587
0
    goto yy48;
9588
532
yy845:
9589
532
    YYDEBUG(845, *YYCURSOR);
9590
532
    yych = *++YYCURSOR;
9591
532
    if (yych <= '^') {
9592
532
      if (yych <= '9') {
9593
530
        if (yych <= '/') goto yy875;
9594
2
        goto yy86;
9595
530
      } else {
9596
2
        if (yych <= '@') goto yy875;
9597
0
        if (yych <= 'Z') goto yy86;
9598
0
        goto yy875;
9599
0
      }
9600
532
    } else {
9601
0
      if (yych <= '`') {
9602
0
        if (yych <= '_') goto yy86;
9603
0
        goto yy875;
9604
0
      } else {
9605
0
        if (yych <= 'z') goto yy86;
9606
0
        if (yych <= 0x7F) goto yy875;
9607
0
        goto yy86;
9608
0
      }
9609
0
    }
9610
109k
yy846:
9611
109k
    YYDEBUG(846, *YYCURSOR);
9612
109k
    ++YYCURSOR;
9613
109k
    YYFILL(1);
9614
109k
    yych = *YYCURSOR;
9615
109k
    YYDEBUG(847, *YYCURSOR);
9616
109k
    if (yych <= '#') {
9617
75.3k
      if (yych <= '\f') {
9618
608
        if (yych <= 0x00) goto yy86;
9619
358
        if (yych <= 0x08) goto yy696;
9620
348
        if (yych <= '\n') goto yy846;
9621
32
        goto yy696;
9622
74.7k
      } else {
9623
74.7k
        if (yych <= 0x1F) {
9624
19.1k
          if (yych <= '\r') goto yy846;
9625
14
          goto yy696;
9626
55.6k
        } else {
9627
55.6k
          if (yych <= ' ') goto yy846;
9628
54.3k
          if (yych <= '"') goto yy696;
9629
54.2k
          goto yy877;
9630
54.3k
        }
9631
74.7k
      }
9632
75.3k
    } else {
9633
33.6k
      if (yych <= '/') {
9634
27.2k
        if (yych == '*') goto yy760;
9635
27.2k
        if (yych <= '.') goto yy696;
9636
20.5k
        goto yy878;
9637
27.2k
      } else {
9638
6.38k
        if (yych <= 'F') {
9639
2.38k
          if (yych <= 'E') goto yy696;
9640
10
          goto yy879;
9641
4.00k
        } else {
9642
4.00k
          if (yych == 'f') goto yy879;
9643
3.91k
          goto yy696;
9644
4.00k
        }
9645
6.38k
      }
9646
33.6k
    }
9647
18.5k
yy848:
9648
18.5k
    YYDEBUG(848, *YYCURSOR);
9649
18.5k
    ++YYCURSOR;
9650
18.5k
    YYFILL(1);
9651
18.5k
    yych = *YYCURSOR;
9652
18.5k
    YYDEBUG(849, *YYCURSOR);
9653
18.5k
    if (yych <= '\r') {
9654
2.62k
      if (yych <= '\t') {
9655
92
        if (yych <= 0x00) goto yy86;
9656
20
        goto yy808;
9657
2.53k
      } else {
9658
2.53k
        if (yych <= '\n') goto yy846;
9659
2.51k
        if (yych <= '\f') goto yy808;
9660
2.50k
        goto yy846;
9661
2.51k
      }
9662
15.9k
    } else {
9663
15.9k
      if (yych <= '*') {
9664
6.04k
        if (yych <= ')') goto yy808;
9665
918
        goto yy848;
9666
9.91k
      } else {
9667
9.91k
        if (yych == '/') goto yy694;
9668
1.03k
        goto yy808;
9669
9.91k
      }
9670
15.9k
    }
9671
0
yy850:
9672
0
    YYDEBUG(850, *YYCURSOR);
9673
0
    ++YYCURSOR;
9674
0
    YYFILL(1);
9675
0
    yych = *YYCURSOR;
9676
0
    if (yych <= '\r') {
9677
0
      if (yych <= '\t') {
9678
0
        if (yych <= 0x00) goto yy86;
9679
0
        goto yy692;
9680
0
      } else {
9681
0
        if (yych <= '\n') goto yy616;
9682
0
        if (yych <= '\f') goto yy692;
9683
0
        goto yy616;
9684
0
      }
9685
0
    } else {
9686
0
      if (yych <= 'M') {
9687
0
        if (yych <= 'L') goto yy692;
9688
0
        goto yy880;
9689
0
      } else {
9690
0
        if (yych == 'm') goto yy880;
9691
0
        goto yy692;
9692
0
      }
9693
0
    }
9694
1.01k
yy851:
9695
1.01k
    YYDEBUG(851, *YYCURSOR);
9696
1.01k
    yyaccept = 4;
9697
1.01k
    yych = *(YYMARKER = ++YYCURSOR);
9698
1.01k
    if (yych == '_') goto yy881;
9699
114
    goto yy48;
9700
114
yy852:
9701
14
    YYDEBUG(852, *YYCURSOR);
9702
14
    yyaccept = 4;
9703
14
    yych = *(YYMARKER = ++YYCURSOR);
9704
14
    if (yych == 'P') goto yy882;
9705
10
    if (yych == 'p') goto yy882;
9706
0
    goto yy48;
9707
2.48k
yy853:
9708
2.48k
    YYDEBUG(853, *YYCURSOR);
9709
2.48k
    yyaccept = 87;
9710
2.48k
    yych = *(YYMARKER = ++YYCURSOR);
9711
2.48k
    if (yybm[256+yych] & 128) {
9712
3
      goto yy47;
9713
3
    }
9714
2.48k
    if (yych == '\\') goto yy164;
9715
2.48k
yy854:
9716
2.48k
    YYDEBUG(854, *YYCURSOR);
9717
2.48k
    yyleng = YYCURSOR - SCNG(yy_text);
9718
2.48k
#line 2268 "Zend/zend_language_scanner.l"
9719
2.48k
    {
9720
2.48k
  RETURN_TOKEN_WITH_IDENT(T_METHOD_C);
9721
2.48k
}
9722
0
#line 9723 "Zend/zend_language_scanner.c"
9723
1.51k
yy855:
9724
1.51k
    YYDEBUG(855, *YYCURSOR);
9725
1.51k
    yyaccept = 4;
9726
1.51k
    yych = *(YYMARKER = ++YYCURSOR);
9727
1.51k
    if (yych == 'E') goto yy883;
9728
9
    if (yych == 'e') goto yy883;
9729
7
    goto yy48;
9730
127
yy856:
9731
127
    YYDEBUG(856, *YYCURSOR);
9732
127
    yyaccept = 4;
9733
127
    yych = *(YYMARKER = ++YYCURSOR);
9734
127
    if (yych == '_') goto yy884;
9735
0
    goto yy48;
9736
104
yy857:
9737
104
    YYDEBUG(857, *YYCURSOR);
9738
104
    yych = *++YYCURSOR;
9739
104
    if (yych == 'S') goto yy885;
9740
104
    if (yych == 's') goto yy885;
9741
0
    goto yy86;
9742
102
yy858:
9743
102
    YYDEBUG(858, *YYCURSOR);
9744
102
    yych = *++YYCURSOR;
9745
102
    if (yych == 'E') goto yy887;
9746
74
    if (yych == 'e') goto yy887;
9747
22
    goto yy86;
9748
59.7k
yy859:
9749
59.7k
    YYDEBUG(859, *YYCURSOR);
9750
59.7k
    ++YYCURSOR;
9751
59.7k
    YYFILL(1);
9752
59.7k
    yych = *YYCURSOR;
9753
59.7k
    YYDEBUG(860, *YYCURSOR);
9754
59.7k
    if (yych <= '@') {
9755
34.9k
      if (yych <= 0x1F) {
9756
8.24k
        if (yych <= '\t') {
9757
706
          if (yych <= 0x00) goto yy86;
9758
632
          if (yych <= 0x08) goto yy738;
9759
594
          goto yy859;
9760
7.53k
        } else {
9761
7.53k
          if (yych <= '\n') goto yy787;
9762
7.22k
          if (yych == '\r') goto yy787;
9763
106
          goto yy738;
9764
7.22k
        }
9765
26.6k
      } else {
9766
26.6k
        if (yych <= ')') {
9767
4.47k
          if (yych <= ' ') goto yy859;
9768
3.60k
          if (yych == '#') goto yy888;
9769
2.04k
          goto yy738;
9770
22.2k
        } else {
9771
22.2k
          if (yych <= '*') goto yy789;
9772
22.1k
          if (yych == '/') goto yy889;
9773
1.76k
          goto yy738;
9774
22.1k
        }
9775
26.6k
      }
9776
34.9k
    } else {
9777
24.8k
      if (yych <= '_') {
9778
602
        if (yych <= 'H') {
9779
12
          if (yych == 'E') goto yy891;
9780
12
          goto yy890;
9781
590
        } else {
9782
590
          if (yych <= 'I') goto yy892;
9783
410
          if (yych <= 'Z') goto yy890;
9784
6
          if (yych <= '^') goto yy738;
9785
0
          goto yy890;
9786
6
        }
9787
24.2k
      } else {
9788
24.2k
        if (yych <= 'h') {
9789
16.6k
          if (yych <= '`') goto yy738;
9790
16.4k
          if (yych == 'e') goto yy891;
9791
54
          goto yy890;
9792
16.4k
        } else {
9793
7.60k
          if (yych <= 'i') goto yy892;
9794
7.40k
          if (yych <= 'z') goto yy890;
9795
7.15k
          if (yych <= 0x7F) goto yy738;
9796
5.92k
          goto yy890;
9797
7.15k
        }
9798
24.2k
      }
9799
24.8k
    }
9800
18.0k
yy861:
9801
18.0k
    YYDEBUG(861, *YYCURSOR);
9802
18.0k
    ++YYCURSOR;
9803
18.0k
    YYFILL(1);
9804
18.0k
    yych = *YYCURSOR;
9805
18.0k
    if (yych <= '*') {
9806
532
      if (yych <= 0x00) goto yy86;
9807
514
      if (yych <= ')') goto yy590;
9808
0
      goto yy668;
9809
17.5k
    } else {
9810
17.5k
      if (yych == '/') goto yy787;
9811
118
      goto yy590;
9812
17.5k
    }
9813
240
yy862:
9814
240
    YYDEBUG(862, *YYCURSOR);
9815
240
    ++YYCURSOR;
9816
240
    YYFILL(1);
9817
240
    yych = *YYCURSOR;
9818
240
    if (yych <= 'S') {
9819
6
      if (yych <= 0x00) goto yy86;
9820
6
      if (yych == '*') goto yy668;
9821
6
      goto yy590;
9822
234
    } else {
9823
234
      if (yych <= 'T') goto yy893;
9824
234
      if (yych == 't') goto yy893;
9825
204
      goto yy590;
9826
234
    }
9827
296
yy863:
9828
296
    YYDEBUG(863, *YYCURSOR);
9829
296
    ++YYCURSOR;
9830
296
    YYFILL(1);
9831
296
    yych = *YYCURSOR;
9832
296
    if (yych <= 'O') {
9833
0
      if (yych <= 0x00) goto yy86;
9834
0
      if (yych == '*') goto yy668;
9835
0
      goto yy590;
9836
296
    } else {
9837
296
      if (yych <= 'P') goto yy894;
9838
296
      if (yych == 'p') goto yy894;
9839
0
      goto yy590;
9840
296
    }
9841
0
yy864:
9842
0
    YYDEBUG(864, *YYCURSOR);
9843
0
    ++YYCURSOR;
9844
0
    YYFILL(1);
9845
0
    yych = *YYCURSOR;
9846
0
    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
0
    } else {
9856
0
      if (yych <= 'D') {
9857
0
        if (yych <= 'C') goto yy586;
9858
0
        goto yy895;
9859
0
      } else {
9860
0
        if (yych == 'd') goto yy895;
9861
0
        goto yy586;
9862
0
      }
9863
0
    }
9864
32
yy865:
9865
32
    YYDEBUG(865, *YYCURSOR);
9866
32
    ++YYCURSOR;
9867
32
    YYFILL(1);
9868
32
    yych = *YYCURSOR;
9869
32
    if (yych <= '\r') {
9870
4
      if (yych <= '\t') {
9871
4
        if (yych <= 0x00) goto yy86;
9872
0
        goto yy586;
9873
4
      } else {
9874
0
        if (yych <= '\n') goto yy495;
9875
0
        if (yych <= '\f') goto yy586;
9876
0
        goto yy495;
9877
0
      }
9878
28
    } else {
9879
28
      if (yych <= 'M') {
9880
0
        if (yych <= 'L') goto yy586;
9881
0
        goto yy896;
9882
28
      } else {
9883
28
        if (yych == 'm') goto yy896;
9884
0
        goto yy586;
9885
28
      }
9886
28
    }
9887
242
yy866:
9888
242
    YYDEBUG(866, *YYCURSOR);
9889
242
    yyaccept = 4;
9890
242
    yych = *(YYMARKER = ++YYCURSOR);
9891
242
    if (yych == 'E') goto yy897;
9892
127
    if (yych == 'e') goto yy897;
9893
16
    goto yy48;
9894
11.3k
yy867:
9895
11.3k
    YYDEBUG(867, *YYCURSOR);
9896
11.3k
    yyaccept = 88;
9897
11.3k
    YYMARKER = ++YYCURSOR;
9898
11.3k
    YYFILL(1);
9899
11.3k
    yych = *YYCURSOR;
9900
11.3k
    YYDEBUG(868, *YYCURSOR);
9901
11.3k
    if (yych <= '\\') {
9902
1.32k
      if (yych <= '@') {
9903
1.06k
        if (yych <= '/') goto yy869;
9904
896
        if (yych <= '9') goto yy867;
9905
896
      } else {
9906
262
        if (yych <= 'Z') goto yy867;
9907
0
        if (yych >= '\\') goto yy840;
9908
0
      }
9909
10.0k
    } else {
9910
10.0k
      if (yych <= '`') {
9911
82
        if (yych == '_') goto yy867;
9912
9.98k
      } else {
9913
9.98k
        if (yych <= 'z') goto yy867;
9914
9.50k
        if (yych >= 0x80) goto yy867;
9915
9.50k
      }
9916
10.0k
    }
9917
736
yy869:
9918
736
    YYDEBUG(869, *YYCURSOR);
9919
736
    yyleng = YYCURSOR - SCNG(yy_text);
9920
736
#line 2438 "Zend/zend_language_scanner.l"
9921
736
    {
9922
736
  RETURN_TOKEN_WITH_STR(T_NAME_RELATIVE, sizeof("namespace\\") - 1);
9923
736
}
9924
0
#line 9925 "Zend/zend_language_scanner.c"
9925
82
yy870:
9926
82
    YYDEBUG(870, *YYCURSOR);
9927
82
    yych = *++YYCURSOR;
9928
82
    if (yych == ')') goto yy899;
9929
0
    goto yy86;
9930
186
yy871:
9931
186
    YYDEBUG(871, *YYCURSOR);
9932
186
    yych = *++YYCURSOR;
9933
186
    if (yych == 'E') goto yy901;
9934
186
    if (yych == 'e') goto yy901;
9935
0
    goto yy86;
9936
10
yy872:
9937
10
    YYDEBUG(872, *YYCURSOR);
9938
10
    ++YYCURSOR;
9939
10
    YYDEBUG(873, *YYCURSOR);
9940
10
    yyleng = YYCURSOR - SCNG(yy_text);
9941
10
#line 1785 "Zend/zend_language_scanner.l"
9942
10
    {
9943
10
  RETURN_TOKEN_WITH_IDENT(T_PUBLIC_SET);
9944
10
}
9945
0
#line 9946 "Zend/zend_language_scanner.c"
9946
206
yy874:
9947
206
    YYDEBUG(874, *YYCURSOR);
9948
206
    yyaccept = 4;
9949
206
    yych = *(YYMARKER = ++YYCURSOR);
9950
206
    if (yych == 'E') goto yy902;
9951
111
    if (yych == 'e') goto yy902;
9952
0
    goto yy48;
9953
530
yy875:
9954
530
    YYDEBUG(875, *YYCURSOR);
9955
530
    ++YYCURSOR;
9956
554
yy876:
9957
554
    YYDEBUG(876, *YYCURSOR);
9958
554
    yyleng = YYCURSOR - SCNG(yy_text);
9959
554
#line 1427 "Zend/zend_language_scanner.l"
9960
554
    {
9961
554
  yyless(yyleng - 1);
9962
554
  HANDLE_NEWLINES(yytext, yyleng);
9963
554
  RETURN_TOKEN_WITH_IDENT(T_YIELD_FROM);
9964
554
}
9965
0
#line 9966 "Zend/zend_language_scanner.c"
9966
54.2k
yy877:
9967
54.2k
    YYDEBUG(877, *YYCURSOR);
9968
54.2k
    ++YYCURSOR;
9969
54.2k
    YYFILL(1);
9970
54.2k
    yych = *YYCURSOR;
9971
54.2k
    if (yych <= '\r') {
9972
36.5k
      if (yych <= '\t') {
9973
140
        if (yych <= 0x00) goto yy86;
9974
54
        goto yy808;
9975
36.3k
      } else {
9976
36.3k
        if (yych <= '\n') goto yy904;
9977
102
        if (yych <= '\f') goto yy808;
9978
60
        goto yy904;
9979
102
      }
9980
36.5k
    } else {
9981
17.7k
      if (yych <= '*') {
9982
2.56k
        if (yych <= ')') goto yy808;
9983
1.39k
        goto yy848;
9984
15.1k
      } else {
9985
15.1k
        if (yych == '[') goto yy696;
9986
15.1k
        goto yy808;
9987
15.1k
      }
9988
17.7k
    }
9989
20.5k
yy878:
9990
20.5k
    YYDEBUG(878, *YYCURSOR);
9991
20.5k
    ++YYCURSOR;
9992
20.5k
    YYFILL(1);
9993
20.5k
    yych = *YYCURSOR;
9994
20.5k
    if (yych <= '*') {
9995
19.7k
      if (yych <= 0x00) goto yy86;
9996
19.6k
      if (yych <= ')') goto yy696;
9997
19.6k
      goto yy906;
9998
19.6k
    } else {
9999
866
      if (yych == '/') goto yy808;
10000
860
      goto yy696;
10001
866
    }
10002
96
yy879:
10003
96
    YYDEBUG(879, *YYCURSOR);
10004
96
    ++YYCURSOR;
10005
96
    YYFILL(1);
10006
96
    yych = *YYCURSOR;
10007
96
    if (yych <= 'Q') {
10008
12
      if (yych <= 0x00) goto yy86;
10009
12
      if (yych == '*') goto yy760;
10010
12
      goto yy696;
10011
84
    } else {
10012
84
      if (yych <= 'R') goto yy907;
10013
84
      if (yych == 'r') goto yy907;
10014
84
      goto yy696;
10015
84
    }
10016
0
yy880:
10017
0
    YYDEBUG(880, *YYCURSOR);
10018
0
    ++YYCURSOR;
10019
0
    YYFILL(1);
10020
0
    yych = *YYCURSOR;
10021
0
    if (yych <= '9') {
10022
0
      if (yych <= '\n') {
10023
0
        if (yych <= 0x00) goto yy875;
10024
0
        if (yych <= '\t') goto yy908;
10025
0
        goto yy909;
10026
0
      } else {
10027
0
        if (yych == '\r') goto yy909;
10028
0
        if (yych <= '/') goto yy908;
10029
0
        goto yy692;
10030
0
      }
10031
0
    } else {
10032
0
      if (yych <= '_') {
10033
0
        if (yych <= '@') goto yy908;
10034
0
        if (yych <= 'Z') goto yy692;
10035
0
        if (yych <= '^') goto yy908;
10036
0
        goto yy692;
10037
0
      } 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
0
    }
10044
899
yy881:
10045
899
    YYDEBUG(881, *YYCURSOR);
10046
899
    yyaccept = 4;
10047
899
    yych = *(YYMARKER = ++YYCURSOR);
10048
899
    if (yych == '_') goto yy910;
10049
4
    goto yy48;
10050
14
yy882:
10051
14
    YYDEBUG(882, *YYCURSOR);
10052
14
    yyaccept = 4;
10053
14
    yych = *(YYMARKER = ++YYCURSOR);
10054
14
    if (yych == 'I') goto yy912;
10055
10
    if (yych == 'i') goto yy912;
10056
0
    goto yy48;
10057
1.50k
yy883:
10058
1.50k
    YYDEBUG(883, *YYCURSOR);
10059
1.50k
    yyaccept = 4;
10060
1.50k
    yych = *(YYMARKER = ++YYCURSOR);
10061
1.50k
    if (yych == '_') goto yy913;
10062
23
    goto yy48;
10063
127
yy884:
10064
127
    YYDEBUG(884, *YYCURSOR);
10065
127
    yyaccept = 4;
10066
127
    yych = *(YYMARKER = ++YYCURSOR);
10067
127
    if (yych == '_') goto yy914;
10068
2
    goto yy48;
10069
104
yy885:
10070
104
    YYDEBUG(885, *YYCURSOR);
10071
104
    ++YYCURSOR;
10072
122
yy886:
10073
122
    YYDEBUG(886, *YYCURSOR);
10074
122
    yyleng = YYCURSOR - SCNG(yy_text);
10075
122
#line 1569 "Zend/zend_language_scanner.l"
10076
122
    {
10077
122
  yyless(4);
10078
122
  RETURN_TOKEN_WITH_STR(T_STRING, 0);
10079
122
}
10080
0
#line 10081 "Zend/zend_language_scanner.c"
10081
80
yy887:
10082
80
    YYDEBUG(887, *YYCURSOR);
10083
80
    yych = *++YYCURSOR;
10084
80
    if (yych == 'N') goto yy916;
10085
52
    if (yych == 'n') goto yy916;
10086
0
    goto yy86;
10087
1.56k
yy888:
10088
1.56k
    YYDEBUG(888, *YYCURSOR);
10089
1.56k
    ++YYCURSOR;
10090
1.56k
    YYFILL(1);
10091
1.56k
    yych = *YYCURSOR;
10092
1.56k
    if (yych <= '\f') {
10093
510
      if (yych <= 0x00) goto yy86;
10094
510
      if (yych == '\n') goto yy859;
10095
0
      goto yy738;
10096
1.05k
    } else {
10097
1.05k
      if (yych <= '\r') goto yy859;
10098
1.05k
      if (yych == '*') goto yy789;
10099
802
      goto yy738;
10100
1.05k
    }
10101
20.4k
yy889:
10102
20.4k
    YYDEBUG(889, *YYCURSOR);
10103
20.4k
    ++YYCURSOR;
10104
20.4k
    YYFILL(1);
10105
20.4k
    yych = *YYCURSOR;
10106
20.4k
    if (yych <= '\f') {
10107
222
      if (yych <= 0x00) goto yy86;
10108
190
      if (yych == '\n') goto yy787;
10109
190
      goto yy738;
10110
20.1k
    } else {
10111
20.1k
      if (yych <= '\r') goto yy787;
10112
19.8k
      if (yych == '*') goto yy917;
10113
904
      goto yy738;
10114
19.8k
    }
10115
6.63k
yy890:
10116
6.63k
    YYDEBUG(890, *YYCURSOR);
10117
6.63k
    yyaccept = 53;
10118
6.63k
    YYMARKER = ++YYCURSOR;
10119
6.63k
    YYFILL(1);
10120
6.63k
    yych = *YYCURSOR;
10121
6.63k
    if (yych <= '\f') {
10122
92
      if (yych <= 0x00) goto yy583;
10123
62
      if (yych == '\n') goto yy787;
10124
2
      goto yy738;
10125
6.54k
    } else {
10126
6.54k
      if (yych <= '\r') goto yy787;
10127
6.54k
      if (yych == '*') goto yy789;
10128
6.52k
      goto yy738;
10129
6.54k
    }
10130
16.4k
yy891:
10131
16.4k
    YYDEBUG(891, *YYCURSOR);
10132
16.4k
    yyaccept = 53;
10133
16.4k
    YYMARKER = ++YYCURSOR;
10134
16.4k
    YYFILL(1);
10135
16.4k
    yych = *YYCURSOR;
10136
16.4k
    if (yych <= ')') {
10137
360
      if (yych <= '\n') {
10138
228
        if (yych <= 0x00) goto yy583;
10139
156
        if (yych <= '\t') goto yy738;
10140
10
        goto yy787;
10141
156
      } else {
10142
132
        if (yych == '\r') goto yy787;
10143
114
        goto yy738;
10144
132
      }
10145
16.0k
    } else {
10146
16.0k
      if (yych <= 'X') {
10147
314
        if (yych <= '*') goto yy789;
10148
314
        if (yych <= 'W') goto yy738;
10149
0
        goto yy918;
10150
15.7k
      } else {
10151
15.7k
        if (yych == 'x') goto yy918;
10152
5.77k
        goto yy738;
10153
15.7k
      }
10154
16.0k
    }
10155
388
yy892:
10156
388
    YYDEBUG(892, *YYCURSOR);
10157
388
    yyaccept = 53;
10158
388
    YYMARKER = ++YYCURSOR;
10159
388
    YYFILL(1);
10160
388
    yych = *YYCURSOR;
10161
388
    if (yych <= ')') {
10162
0
      if (yych <= '\n') {
10163
0
        if (yych <= 0x00) goto yy583;
10164
0
        if (yych <= '\t') goto yy738;
10165
0
        goto yy787;
10166
0
      } else {
10167
0
        if (yych == '\r') goto yy787;
10168
0
        goto yy738;
10169
0
      }
10170
388
    } else {
10171
388
      if (yych <= 'M') {
10172
266
        if (yych <= '*') goto yy789;
10173
266
        if (yych <= 'L') goto yy738;
10174
266
        goto yy919;
10175
266
      } else {
10176
122
        if (yych == 'm') goto yy919;
10177
122
        goto yy738;
10178
122
      }
10179
388
    }
10180
30
yy893:
10181
30
    YYDEBUG(893, *YYCURSOR);
10182
30
    ++YYCURSOR;
10183
30
    YYFILL(1);
10184
30
    yych = *YYCURSOR;
10185
30
    if (yych <= 'D') {
10186
0
      if (yych <= 0x00) goto yy86;
10187
0
      if (yych == '*') goto yy668;
10188
0
      goto yy590;
10189
30
    } else {
10190
30
      if (yych <= 'E') goto yy920;
10191
30
      if (yych == 'e') goto yy920;
10192
18
      goto yy590;
10193
30
    }
10194
296
yy894:
10195
296
    YYDEBUG(894, *YYCURSOR);
10196
296
    ++YYCURSOR;
10197
296
    YYFILL(1);
10198
296
    yych = *YYCURSOR;
10199
296
    if (yych <= 'K') {
10200
18
      if (yych <= 0x00) goto yy86;
10201
12
      if (yych == '*') goto yy668;
10202
12
      goto yy590;
10203
278
    } else {
10204
278
      if (yych <= 'L') goto yy921;
10205
278
      if (yych == 'l') goto yy921;
10206
0
      goto yy590;
10207
278
    }
10208
0
yy895:
10209
0
    YYDEBUG(895, *YYCURSOR);
10210
0
    ++YYCURSOR;
10211
0
    YYFILL(1);
10212
0
    yych = *YYCURSOR;
10213
0
    if (yych <= '\r') {
10214
0
      if (yych <= '\t') {
10215
0
        if (yych <= 0x00) goto yy86;
10216
0
        goto yy586;
10217
0
      } else {
10218
0
        if (yych <= '\n') goto yy495;
10219
0
        if (yych <= '\f') goto yy586;
10220
0
        goto yy495;
10221
0
      }
10222
0
    } else {
10223
0
      if (yych <= 'S') {
10224
0
        if (yych <= 'R') goto yy586;
10225
0
        goto yy922;
10226
0
      } else {
10227
0
        if (yych == 's') goto yy922;
10228
0
        goto yy586;
10229
0
      }
10230
0
    }
10231
28
yy896:
10232
28
    YYDEBUG(896, *YYCURSOR);
10233
28
    ++YYCURSOR;
10234
28
    YYFILL(1);
10235
28
    yych = *YYCURSOR;
10236
28
    if (yych <= '\r') {
10237
0
      if (yych <= '\t') {
10238
0
        if (yych <= 0x00) goto yy86;
10239
0
        goto yy586;
10240
0
      } else {
10241
0
        if (yych <= '\n') goto yy495;
10242
0
        if (yych <= '\f') goto yy586;
10243
0
        goto yy495;
10244
0
      }
10245
28
    } else {
10246
28
      if (yych <= 'E') {
10247
28
        if (yych <= 'D') goto yy586;
10248
28
        goto yy923;
10249
28
      } else {
10250
0
        if (yych == 'e') goto yy923;
10251
0
        goto yy586;
10252
0
      }
10253
28
    }
10254
226
yy897:
10255
226
    YYDEBUG(897, *YYCURSOR);
10256
226
    yyaccept = 89;
10257
226
    yych = *(YYMARKER = ++YYCURSOR);
10258
226
    if (yybm[256+yych] & 128) {
10259
2
      goto yy47;
10260
2
    }
10261
224
    if (yych == '\\') goto yy164;
10262
224
yy898:
10263
224
    YYDEBUG(898, *YYCURSOR);
10264
224
    yyleng = YYCURSOR - SCNG(yy_text);
10265
224
#line 1725 "Zend/zend_language_scanner.l"
10266
224
    {
10267
224
  RETURN_TOKEN_WITH_IDENT(T_INCLUDE_ONCE);
10268
224
}
10269
0
#line 10270 "Zend/zend_language_scanner.c"
10270
82
yy899:
10271
82
    YYDEBUG(899, *YYCURSOR);
10272
82
    ++YYCURSOR;
10273
82
    YYDEBUG(900, *YYCURSOR);
10274
82
    yyleng = YYCURSOR - SCNG(yy_text);
10275
82
#line 1793 "Zend/zend_language_scanner.l"
10276
82
    {
10277
82
  RETURN_TOKEN_WITH_IDENT(T_PRIVATE_SET);
10278
82
}
10279
0
#line 10280 "Zend/zend_language_scanner.c"
10280
186
yy901:
10281
186
    YYDEBUG(901, *YYCURSOR);
10282
186
    yych = *++YYCURSOR;
10283
186
    if (yych == 'T') goto yy924;
10284
186
    if (yych == 't') goto yy924;
10285
4
    goto yy86;
10286
206
yy902:
10287
206
    YYDEBUG(902, *YYCURSOR);
10288
206
    yyaccept = 90;
10289
206
    yych = *(YYMARKER = ++YYCURSOR);
10290
206
    if (yybm[256+yych] & 128) {
10291
0
      goto yy47;
10292
0
    }
10293
206
    if (yych == '\\') goto yy164;
10294
206
yy903:
10295
206
    YYDEBUG(903, *YYCURSOR);
10296
206
    yyleng = YYCURSOR - SCNG(yy_text);
10297
206
#line 1733 "Zend/zend_language_scanner.l"
10298
206
    {
10299
206
  RETURN_TOKEN_WITH_IDENT(T_REQUIRE_ONCE);
10300
206
}
10301
0
#line 10302 "Zend/zend_language_scanner.c"
10302
56.1k
yy904:
10303
56.1k
    YYDEBUG(904, *YYCURSOR);
10304
56.1k
    ++YYCURSOR;
10305
56.1k
    YYFILL(1);
10306
56.1k
    yych = *YYCURSOR;
10307
56.1k
    YYDEBUG(905, *YYCURSOR);
10308
56.1k
    if (yych <= '"') {
10309
7.57k
      if (yych <= '\n') {
10310
1.04k
        if (yych <= 0x00) goto yy86;
10311
1.01k
        if (yych <= 0x08) goto yy808;
10312
1.01k
        if (yych <= '\t') goto yy904;
10313
284
        goto yy846;
10314
6.52k
      } else {
10315
6.52k
        if (yych <= '\r') {
10316
5.79k
          if (yych <= '\f') goto yy808;
10317
5.79k
          goto yy846;
10318
5.79k
        } else {
10319
734
          if (yych == ' ') goto yy904;
10320
78
          goto yy808;
10321
734
        }
10322
6.52k
      }
10323
48.5k
    } else {
10324
48.5k
      if (yych <= '/') {
10325
22.6k
        if (yych <= ')') {
10326
3.02k
          if (yych <= '#') goto yy925;
10327
1.78k
          goto yy808;
10328
19.6k
        } else {
10329
19.6k
          if (yych <= '*') goto yy848;
10330
19.6k
          if (yych <= '.') goto yy808;
10331
18.9k
          goto yy926;
10332
19.6k
        }
10333
25.8k
      } else {
10334
25.8k
        if (yych <= 'F') {
10335
680
          if (yych <= 'E') goto yy808;
10336
0
          goto yy927;
10337
25.1k
        } else {
10338
25.1k
          if (yych == 'f') goto yy927;
10339
25.0k
          goto yy808;
10340
25.1k
        }
10341
25.8k
      }
10342
48.5k
    }
10343
19.6k
yy906:
10344
19.6k
    YYDEBUG(906, *YYCURSOR);
10345
19.6k
    ++YYCURSOR;
10346
19.6k
    YYFILL(1);
10347
19.6k
    yych = *YYCURSOR;
10348
19.6k
    if (yych <= '*') {
10349
954
      if (yych <= 0x00) goto yy86;
10350
884
      if (yych <= ')') goto yy696;
10351
0
      goto yy760;
10352
18.6k
    } else {
10353
18.6k
      if (yych == '/') goto yy846;
10354
100
      goto yy696;
10355
18.6k
    }
10356
0
yy907:
10357
0
    YYDEBUG(907, *YYCURSOR);
10358
0
    ++YYCURSOR;
10359
0
    YYFILL(1);
10360
0
    yych = *YYCURSOR;
10361
0
    if (yych <= 'N') {
10362
0
      if (yych <= 0x00) goto yy86;
10363
0
      if (yych == '*') goto yy760;
10364
0
      goto yy696;
10365
0
    } else {
10366
0
      if (yych <= 'O') goto yy928;
10367
0
      if (yych == 'o') goto yy928;
10368
0
      goto yy696;
10369
0
    }
10370
0
yy908:
10371
0
    YYDEBUG(908, *YYCURSOR);
10372
0
    yyaccept = 91;
10373
0
    YYMARKER = ++YYCURSOR;
10374
0
    YYFILL(1);
10375
0
    yych = *YYCURSOR;
10376
0
    if (yych <= '\n') {
10377
0
      if (yych <= 0x00) goto yy876;
10378
0
      if (yych <= '\t') goto yy692;
10379
0
      goto yy616;
10380
0
    } else {
10381
0
      if (yych == '\r') goto yy616;
10382
0
      goto yy692;
10383
0
    }
10384
0
yy909:
10385
0
    YYDEBUG(909, *YYCURSOR);
10386
0
    yyaccept = 91;
10387
0
    YYMARKER = ++YYCURSOR;
10388
0
    YYFILL(5);
10389
0
    yych = *YYCURSOR;
10390
0
    if (yych <= '"') {
10391
0
      if (yych <= '\f') {
10392
0
        if (yych <= 0x08) goto yy876;
10393
0
        if (yych <= '\n') goto yy616;
10394
0
        goto yy876;
10395
0
      } else {
10396
0
        if (yych <= '\r') goto yy616;
10397
0
        if (yych == ' ') goto yy616;
10398
0
        goto yy876;
10399
0
      }
10400
0
    } else {
10401
0
      if (yych <= 'E') {
10402
0
        if (yych <= '#') goto yy618;
10403
0
        if (yych == '/') goto yy619;
10404
0
        goto yy876;
10405
0
      } else {
10406
0
        if (yych <= 'F') goto yy691;
10407
0
        if (yych == 'f') goto yy691;
10408
0
        goto yy876;
10409
0
      }
10410
0
    }
10411
895
yy910:
10412
895
    YYDEBUG(910, *YYCURSOR);
10413
895
    yyaccept = 92;
10414
895
    yych = *(YYMARKER = ++YYCURSOR);
10415
895
    if (yybm[256+yych] & 128) {
10416
99
      goto yy47;
10417
99
    }
10418
796
    if (yych == '\\') goto yy164;
10419
796
yy911:
10420
796
    YYDEBUG(911, *YYCURSOR);
10421
796
    yyleng = YYCURSOR - SCNG(yy_text);
10422
796
#line 2260 "Zend/zend_language_scanner.l"
10423
796
    {
10424
796
  RETURN_TOKEN_WITH_IDENT(T_FUNC_C);
10425
796
}
10426
0
#line 10427 "Zend/zend_language_scanner.c"
10427
14
yy912:
10428
14
    YYDEBUG(912, *YYCURSOR);
10429
14
    yyaccept = 4;
10430
14
    yych = *(YYMARKER = ++YYCURSOR);
10431
14
    if (yych == 'L') goto yy929;
10432
10
    if (yych == 'l') goto yy929;
10433
2
    goto yy48;
10434
1.48k
yy913:
10435
1.48k
    YYDEBUG(913, *YYCURSOR);
10436
1.48k
    yyaccept = 4;
10437
1.48k
    yych = *(YYMARKER = ++YYCURSOR);
10438
1.48k
    if (yych == '_') goto yy930;
10439
236
    goto yy48;
10440
236
yy914:
10441
125
    YYDEBUG(914, *YYCURSOR);
10442
125
    yyaccept = 93;
10443
125
    yych = *(YYMARKER = ++YYCURSOR);
10444
125
    if (yybm[256+yych] & 128) {
10445
0
      goto yy47;
10446
0
    }
10447
125
    if (yych == '\\') goto yy164;
10448
125
yy915:
10449
125
    YYDEBUG(915, *YYCURSOR);
10450
125
    yyleng = YYCURSOR - SCNG(yy_text);
10451
125
#line 2264 "Zend/zend_language_scanner.l"
10452
125
    {
10453
125
  RETURN_TOKEN_WITH_IDENT(T_PROPERTY_C);
10454
125
}
10455
0
#line 10456 "Zend/zend_language_scanner.c"
10456
80
yy916:
10457
80
    YYDEBUG(916, *YYCURSOR);
10458
80
    yych = *++YYCURSOR;
10459
80
    if (yych == 'T') goto yy857;
10460
80
    if (yych == 't') goto yy857;
10461
28
    goto yy86;
10462
18.9k
yy917:
10463
18.9k
    YYDEBUG(917, *YYCURSOR);
10464
18.9k
    ++YYCURSOR;
10465
18.9k
    YYFILL(1);
10466
18.9k
    yych = *YYCURSOR;
10467
18.9k
    if (yych <= '\r') {
10468
286
      if (yych <= '\t') {
10469
78
        if (yych <= 0x00) goto yy86;
10470
18
        goto yy738;
10471
208
      } else {
10472
208
        if (yych <= '\n') goto yy787;
10473
128
        if (yych <= '\f') goto yy738;
10474
126
        goto yy787;
10475
128
      }
10476
18.6k
    } else {
10477
18.6k
      if (yych <= '*') {
10478
498
        if (yych <= ')') goto yy738;
10479
12
        goto yy789;
10480
18.1k
      } else {
10481
18.1k
        if (yych == '/') goto yy859;
10482
66
        goto yy738;
10483
18.1k
      }
10484
18.6k
    }
10485
9.98k
yy918:
10486
9.98k
    YYDEBUG(918, *YYCURSOR);
10487
9.98k
    ++YYCURSOR;
10488
9.98k
    YYFILL(1);
10489
9.98k
    yych = *YYCURSOR;
10490
9.98k
    if (yych <= ')') {
10491
24
      if (yych <= '\n') {
10492
24
        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
9.96k
    } else {
10500
9.96k
      if (yych <= 'T') {
10501
94
        if (yych <= '*') goto yy789;
10502
76
        if (yych <= 'S') goto yy738;
10503
0
        goto yy932;
10504
9.87k
      } else {
10505
9.87k
        if (yych == 't') goto yy932;
10506
9.46k
        goto yy738;
10507
9.87k
      }
10508
9.96k
    }
10509
266
yy919:
10510
266
    YYDEBUG(919, *YYCURSOR);
10511
266
    ++YYCURSOR;
10512
266
    YYFILL(1);
10513
266
    yych = *YYCURSOR;
10514
266
    if (yych <= ')') {
10515
0
      if (yych <= '\n') {
10516
0
        if (yych <= 0x00) goto yy86;
10517
0
        if (yych <= '\t') goto yy738;
10518
0
        goto yy787;
10519
0
      } else {
10520
0
        if (yych == '\r') goto yy787;
10521
0
        goto yy738;
10522
0
      }
10523
266
    } else {
10524
266
      if (yych <= 'P') {
10525
186
        if (yych <= '*') goto yy789;
10526
186
        if (yych <= 'O') goto yy738;
10527
98
        goto yy933;
10528
186
      } else {
10529
80
        if (yych == 'p') goto yy933;
10530
0
        goto yy738;
10531
80
      }
10532
266
    }
10533
12
yy920:
10534
12
    YYDEBUG(920, *YYCURSOR);
10535
12
    ++YYCURSOR;
10536
12
    YYFILL(1);
10537
12
    yych = *YYCURSOR;
10538
12
    if (yych <= 'M') {
10539
0
      if (yych <= 0x00) goto yy86;
10540
0
      if (yych == '*') goto yy668;
10541
0
      goto yy590;
10542
12
    } else {
10543
12
      if (yych <= 'N') goto yy934;
10544
12
      if (yych == 'n') goto yy934;
10545
0
      goto yy590;
10546
12
    }
10547
278
yy921:
10548
278
    YYDEBUG(921, *YYCURSOR);
10549
278
    ++YYCURSOR;
10550
278
    YYFILL(1);
10551
278
    yych = *YYCURSOR;
10552
278
    if (yych <= 'D') {
10553
0
      if (yych <= 0x00) goto yy86;
10554
0
      if (yych == '*') goto yy668;
10555
0
      goto yy590;
10556
278
    } else {
10557
278
      if (yych <= 'E') goto yy935;
10558
2
      if (yych == 'e') goto yy935;
10559
2
      goto yy590;
10560
2
    }
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
28
yy923:
10576
28
    YYDEBUG(923, *YYCURSOR);
10577
28
    ++YYCURSOR;
10578
28
    YYFILL(1);
10579
28
    yych = *YYCURSOR;
10580
28
    if (yych <= '\r') {
10581
0
      if (yych <= '\t') {
10582
0
        if (yych <= 0x00) goto yy86;
10583
0
        goto yy586;
10584
0
      } else {
10585
0
        if (yych <= '\n') goto yy495;
10586
0
        if (yych <= '\f') goto yy586;
10587
0
        goto yy495;
10588
0
      }
10589
28
    } else {
10590
28
      if (yych <= 'N') {
10591
28
        if (yych <= 'M') goto yy586;
10592
28
        goto yy936;
10593
28
      } else {
10594
0
        if (yych == 'n') goto yy936;
10595
0
        goto yy586;
10596
0
      }
10597
28
    }
10598
182
yy924:
10599
182
    YYDEBUG(924, *YYCURSOR);
10600
182
    yych = *++YYCURSOR;
10601
182
    if (yych == ')') goto yy937;
10602
0
    goto yy86;
10603
1.24k
yy925:
10604
1.24k
    YYDEBUG(925, *YYCURSOR);
10605
1.24k
    ++YYCURSOR;
10606
1.24k
    YYFILL(1);
10607
1.24k
    yych = *YYCURSOR;
10608
1.24k
    if (yych <= '\f') {
10609
558
      if (yych <= 0x00) goto yy86;
10610
558
      if (yych == '\n') goto yy904;
10611
0
      goto yy808;
10612
684
    } else {
10613
684
      if (yych <= '\r') goto yy904;
10614
684
      if (yych == '*') goto yy848;
10615
630
      goto yy808;
10616
684
    }
10617
18.9k
yy926:
10618
18.9k
    YYDEBUG(926, *YYCURSOR);
10619
18.9k
    ++YYCURSOR;
10620
18.9k
    YYFILL(1);
10621
18.9k
    yych = *YYCURSOR;
10622
18.9k
    if (yych <= '\f') {
10623
12
      if (yych <= 0x00) goto yy86;
10624
0
      if (yych == '\n') goto yy846;
10625
0
      goto yy808;
10626
18.8k
    } else {
10627
18.8k
      if (yych <= '\r') goto yy846;
10628
18.4k
      if (yych == '*') goto yy939;
10629
338
      goto yy808;
10630
18.4k
    }
10631
104
yy927:
10632
104
    YYDEBUG(927, *YYCURSOR);
10633
104
    ++YYCURSOR;
10634
104
    YYFILL(1);
10635
104
    yych = *YYCURSOR;
10636
104
    if (yych <= ')') {
10637
16
      if (yych <= '\n') {
10638
4
        if (yych <= 0x00) goto yy86;
10639
4
        if (yych <= '\t') goto yy808;
10640
0
        goto yy846;
10641
12
      } else {
10642
12
        if (yych == '\r') goto yy846;
10643
12
        goto yy808;
10644
12
      }
10645
88
    } else {
10646
88
      if (yych <= 'R') {
10647
0
        if (yych <= '*') goto yy848;
10648
0
        if (yych <= 'Q') goto yy808;
10649
0
        goto yy940;
10650
88
      } else {
10651
88
        if (yych == 'r') goto yy940;
10652
64
        goto yy808;
10653
88
      }
10654
88
    }
10655
0
yy928:
10656
0
    YYDEBUG(928, *YYCURSOR);
10657
0
    ++YYCURSOR;
10658
0
    YYFILL(1);
10659
0
    yych = *YYCURSOR;
10660
0
    if (yych <= 'L') {
10661
0
      if (yych <= 0x00) goto yy86;
10662
0
      if (yych == '*') goto yy760;
10663
0
      goto yy696;
10664
0
    } else {
10665
0
      if (yych <= 'M') goto yy941;
10666
0
      if (yych == 'm') goto yy941;
10667
0
      goto yy696;
10668
0
    }
10669
12
yy929:
10670
12
    YYDEBUG(929, *YYCURSOR);
10671
12
    yyaccept = 4;
10672
12
    yych = *(YYMARKER = ++YYCURSOR);
10673
12
    if (yych == 'E') goto yy942;
10674
8
    if (yych == 'e') goto yy942;
10675
0
    goto yy48;
10676
1.25k
yy930:
10677
1.25k
    YYDEBUG(930, *YYCURSOR);
10678
1.25k
    yyaccept = 95;
10679
1.25k
    yych = *(YYMARKER = ++YYCURSOR);
10680
1.25k
    if (yybm[256+yych] & 128) {
10681
0
      goto yy47;
10682
0
    }
10683
1.25k
    if (yych == '\\') goto yy164;
10684
1.25k
yy931:
10685
1.25k
    YYDEBUG(931, *YYCURSOR);
10686
1.25k
    yyleng = YYCURSOR - SCNG(yy_text);
10687
1.25k
#line 2284 "Zend/zend_language_scanner.l"
10688
1.25k
    {
10689
1.25k
  RETURN_TOKEN_WITH_IDENT(T_NS_C);
10690
1.25k
}
10691
0
#line 10692 "Zend/zend_language_scanner.c"
10692
406
yy932:
10693
406
    YYDEBUG(932, *YYCURSOR);
10694
406
    ++YYCURSOR;
10695
406
    YYFILL(1);
10696
406
    yych = *YYCURSOR;
10697
406
    if (yych <= ')') {
10698
18
      if (yych <= '\n') {
10699
18
        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
388
    } else {
10707
388
      if (yych <= 'E') {
10708
0
        if (yych <= '*') goto yy789;
10709
0
        if (yych <= 'D') goto yy738;
10710
0
        goto yy943;
10711
388
      } else {
10712
388
        if (yych == 'e') goto yy943;
10713
42
        goto yy738;
10714
388
      }
10715
388
    }
10716
178
yy933:
10717
178
    YYDEBUG(933, *YYCURSOR);
10718
178
    ++YYCURSOR;
10719
178
    YYFILL(1);
10720
178
    yych = *YYCURSOR;
10721
178
    if (yych <= ')') {
10722
0
      if (yych <= '\n') {
10723
0
        if (yych <= 0x00) goto yy86;
10724
0
        if (yych <= '\t') goto yy738;
10725
0
        goto yy787;
10726
0
      } else {
10727
0
        if (yych == '\r') goto yy787;
10728
0
        goto yy738;
10729
0
      }
10730
178
    } else {
10731
178
      if (yych <= 'L') {
10732
0
        if (yych <= '*') goto yy789;
10733
0
        if (yych <= 'K') goto yy738;
10734
0
        goto yy944;
10735
178
      } else {
10736
178
        if (yych == 'l') goto yy944;
10737
106
        goto yy738;
10738
178
      }
10739
178
    }
10740
12
yy934:
10741
12
    YYDEBUG(934, *YYCURSOR);
10742
12
    ++YYCURSOR;
10743
12
    YYFILL(1);
10744
12
    yych = *YYCURSOR;
10745
12
    if (yych <= 'C') {
10746
0
      if (yych <= 0x00) goto yy86;
10747
0
      if (yych == '*') goto yy668;
10748
0
      goto yy590;
10749
12
    } else {
10750
12
      if (yych <= 'D') goto yy945;
10751
12
      if (yych == 'd') goto yy945;
10752
0
      goto yy590;
10753
12
    }
10754
276
yy935:
10755
276
    YYDEBUG(935, *YYCURSOR);
10756
276
    ++YYCURSOR;
10757
276
    YYFILL(1);
10758
276
    yych = *YYCURSOR;
10759
276
    if (yych <= 'L') {
10760
0
      if (yych <= 0x00) goto yy86;
10761
0
      if (yych == '*') goto yy668;
10762
0
      goto yy590;
10763
276
    } else {
10764
276
      if (yych <= 'M') goto yy946;
10765
276
      if (yych == 'm') goto yy946;
10766
204
      goto yy590;
10767
276
    }
10768
28
yy936:
10769
28
    YYDEBUG(936, *YYCURSOR);
10770
28
    ++YYCURSOR;
10771
28
    YYFILL(1);
10772
28
    yych = *YYCURSOR;
10773
28
    if (yych <= '\r') {
10774
28
      if (yych <= '\t') {
10775
0
        if (yych <= 0x00) goto yy86;
10776
0
        goto yy586;
10777
28
      } else {
10778
28
        if (yych <= '\n') goto yy495;
10779
28
        if (yych <= '\f') goto yy586;
10780
28
        goto yy495;
10781
28
      }
10782
28
    } else {
10783
0
      if (yych <= 'T') {
10784
0
        if (yych <= 'S') goto yy586;
10785
0
        goto yy895;
10786
0
      } else {
10787
0
        if (yych == 't') goto yy895;
10788
0
        goto yy586;
10789
0
      }
10790
0
    }
10791
182
yy937:
10792
182
    YYDEBUG(937, *YYCURSOR);
10793
182
    ++YYCURSOR;
10794
182
    YYDEBUG(938, *YYCURSOR);
10795
182
    yyleng = YYCURSOR - SCNG(yy_text);
10796
182
#line 1789 "Zend/zend_language_scanner.l"
10797
182
    {
10798
182
  RETURN_TOKEN_WITH_IDENT(T_PROTECTED_SET);
10799
182
}
10800
0
#line 10801 "Zend/zend_language_scanner.c"
10801
18.1k
yy939:
10802
18.1k
    YYDEBUG(939, *YYCURSOR);
10803
18.1k
    ++YYCURSOR;
10804
18.1k
    YYFILL(1);
10805
18.1k
    yych = *YYCURSOR;
10806
18.1k
    if (yych <= '\r') {
10807
108
      if (yych <= '\t') {
10808
0
        if (yych <= 0x00) goto yy86;
10809
0
        goto yy808;
10810
108
      } else {
10811
108
        if (yych <= '\n') goto yy846;
10812
38
        if (yych <= '\f') goto yy808;
10813
36
        goto yy846;
10814
38
      }
10815
18.0k
    } else {
10816
18.0k
      if (yych <= '*') {
10817
114
        if (yych <= ')') goto yy808;
10818
22
        goto yy848;
10819
17.8k
      } else {
10820
17.8k
        if (yych == '/') goto yy904;
10821
68
        goto yy808;
10822
17.8k
      }
10823
18.0k
    }
10824
24
yy940:
10825
24
    YYDEBUG(940, *YYCURSOR);
10826
24
    ++YYCURSOR;
10827
24
    YYFILL(1);
10828
24
    yych = *YYCURSOR;
10829
24
    if (yych <= ')') {
10830
0
      if (yych <= '\n') {
10831
0
        if (yych <= 0x00) goto yy86;
10832
0
        if (yych <= '\t') goto yy808;
10833
0
        goto yy846;
10834
0
      } else {
10835
0
        if (yych == '\r') goto yy846;
10836
0
        goto yy808;
10837
0
      }
10838
24
    } else {
10839
24
      if (yych <= 'O') {
10840
0
        if (yych <= '*') goto yy848;
10841
0
        if (yych <= 'N') goto yy808;
10842
0
        goto yy947;
10843
24
      } else {
10844
24
        if (yych == 'o') goto yy947;
10845
0
        goto yy808;
10846
24
      }
10847
24
    }
10848
0
yy941:
10849
0
    YYDEBUG(941, *YYCURSOR);
10850
0
    ++YYCURSOR;
10851
0
    YYFILL(1);
10852
0
    yych = *YYCURSOR;
10853
0
    if (yych <= '@') {
10854
0
      if (yych <= '*') {
10855
0
        if (yych <= 0x00) goto yy875;
10856
0
        if (yych <= ')') goto yy948;
10857
0
        goto yy949;
10858
0
      } else {
10859
0
        if (yych <= '/') goto yy948;
10860
0
        if (yych <= '9') goto yy696;
10861
0
        goto yy948;
10862
0
      }
10863
0
    } else {
10864
0
      if (yych <= '_') {
10865
0
        if (yych <= 'Z') goto yy696;
10866
0
        if (yych <= '^') goto yy948;
10867
0
        goto yy696;
10868
0
      } else {
10869
0
        if (yych <= '`') goto yy948;
10870
0
        if (yych <= 'z') goto yy696;
10871
0
        if (yych <= 0x7F) goto yy948;
10872
0
        goto yy696;
10873
0
      }
10874
0
    }
10875
12
yy942:
10876
12
    YYDEBUG(942, *YYCURSOR);
10877
12
    yyaccept = 4;
10878
12
    yych = *(YYMARKER = ++YYCURSOR);
10879
12
    if (yych == 'R') goto yy950;
10880
8
    if (yych == 'r') goto yy950;
10881
0
    goto yy48;
10882
346
yy943:
10883
346
    YYDEBUG(943, *YYCURSOR);
10884
346
    ++YYCURSOR;
10885
346
    YYFILL(1);
10886
346
    yych = *YYCURSOR;
10887
346
    if (yych <= ')') {
10888
0
      if (yych <= '\n') {
10889
0
        if (yych <= 0x00) goto yy86;
10890
0
        if (yych <= '\t') goto yy738;
10891
0
        goto yy787;
10892
0
      } else {
10893
0
        if (yych == '\r') goto yy787;
10894
0
        goto yy738;
10895
0
      }
10896
346
    } else {
10897
346
      if (yych <= 'N') {
10898
340
        if (yych <= '*') goto yy789;
10899
340
        if (yych <= 'M') goto yy738;
10900
0
        goto yy952;
10901
340
      } else {
10902
6
        if (yych == 'n') goto yy952;
10903
0
        goto yy738;
10904
6
      }
10905
346
    }
10906
72
yy944:
10907
72
    YYDEBUG(944, *YYCURSOR);
10908
72
    ++YYCURSOR;
10909
72
    YYFILL(1);
10910
72
    yych = *YYCURSOR;
10911
72
    if (yych <= ')') {
10912
60
      if (yych <= '\n') {
10913
0
        if (yych <= 0x00) goto yy86;
10914
0
        if (yych <= '\t') goto yy738;
10915
0
        goto yy787;
10916
60
      } else {
10917
60
        if (yych == '\r') goto yy787;
10918
60
        goto yy738;
10919
60
      }
10920
60
    } else {
10921
12
      if (yych <= 'E') {
10922
2
        if (yych <= '*') goto yy789;
10923
2
        if (yych <= 'D') goto yy738;
10924
0
        goto yy953;
10925
10
      } else {
10926
10
        if (yych == 'e') goto yy953;
10927
10
        goto yy738;
10928
10
      }
10929
12
    }
10930
12
yy945:
10931
12
    YYDEBUG(945, *YYCURSOR);
10932
12
    ++YYCURSOR;
10933
12
    YYFILL(1);
10934
12
    yych = *YYCURSOR;
10935
12
    if (yych <= 'R') {
10936
0
      if (yych <= 0x00) goto yy86;
10937
0
      if (yych == '*') goto yy668;
10938
0
      goto yy590;
10939
12
    } else {
10940
12
      if (yych <= 'S') goto yy954;
10941
12
      if (yych == 's') goto yy954;
10942
0
      goto yy590;
10943
12
    }
10944
72
yy946:
10945
72
    YYDEBUG(946, *YYCURSOR);
10946
72
    ++YYCURSOR;
10947
72
    YYFILL(1);
10948
72
    yych = *YYCURSOR;
10949
72
    if (yych <= 'D') {
10950
0
      if (yych <= 0x00) goto yy86;
10951
0
      if (yych == '*') goto yy668;
10952
0
      goto yy590;
10953
72
    } else {
10954
72
      if (yych <= 'E') goto yy955;
10955
14
      if (yych == 'e') goto yy955;
10956
14
      goto yy590;
10957
14
    }
10958
24
yy947:
10959
24
    YYDEBUG(947, *YYCURSOR);
10960
24
    ++YYCURSOR;
10961
24
    YYFILL(1);
10962
24
    yych = *YYCURSOR;
10963
24
    if (yych <= ')') {
10964
0
      if (yych <= '\n') {
10965
0
        if (yych <= 0x00) goto yy86;
10966
0
        if (yych <= '\t') goto yy808;
10967
0
        goto yy846;
10968
0
      } else {
10969
0
        if (yych == '\r') goto yy846;
10970
0
        goto yy808;
10971
0
      }
10972
24
    } else {
10973
24
      if (yych <= 'M') {
10974
0
        if (yych <= '*') goto yy848;
10975
0
        if (yych <= 'L') goto yy808;
10976
0
        goto yy956;
10977
24
      } else {
10978
24
        if (yych == 'm') goto yy956;
10979
0
        goto yy808;
10980
24
      }
10981
24
    }
10982
0
yy948:
10983
0
    YYDEBUG(948, *YYCURSOR);
10984
0
    yyaccept = 91;
10985
0
    YYMARKER = ++YYCURSOR;
10986
0
    YYFILL(1);
10987
0
    yych = *YYCURSOR;
10988
0
    if (yych <= 0x00) goto yy876;
10989
0
    if (yych == '*') goto yy760;
10990
0
    goto yy696;
10991
0
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
12
yy950:
11006
12
    YYDEBUG(950, *YYCURSOR);
11007
12
    yyaccept = 96;
11008
12
    yych = *(YYMARKER = ++YYCURSOR);
11009
12
    if (yybm[256+yych] & 128) {
11010
0
      goto yy47;
11011
0
    }
11012
12
    if (yych == '\\') goto yy164;
11013
12
yy951:
11014
12
    YYDEBUG(951, *YYCURSOR);
11015
12
    yyleng = YYCURSOR - SCNG(yy_text);
11016
12
#line 1761 "Zend/zend_language_scanner.l"
11017
12
    {
11018
12
  RETURN_TOKEN_WITH_IDENT(T_HALT_COMPILER);
11019
12
}
11020
0
#line 11021 "Zend/zend_language_scanner.c"
11021
6
yy952:
11022
6
    YYDEBUG(952, *YYCURSOR);
11023
6
    ++YYCURSOR;
11024
6
    YYFILL(1);
11025
6
    yych = *YYCURSOR;
11026
6
    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
6
    } else {
11036
6
      if (yych <= 'D') {
11037
0
        if (yych <= '*') goto yy789;
11038
0
        if (yych <= 'C') goto yy738;
11039
0
        goto yy957;
11040
6
      } else {
11041
6
        if (yych == 'd') goto yy957;
11042
0
        goto yy738;
11043
6
      }
11044
6
    }
11045
0
yy953:
11046
0
    YYDEBUG(953, *YYCURSOR);
11047
0
    ++YYCURSOR;
11048
0
    YYFILL(1);
11049
0
    yych = *YYCURSOR;
11050
0
    if (yych <= ')') {
11051
0
      if (yych <= '\n') {
11052
0
        if (yych <= 0x00) goto yy86;
11053
0
        if (yych <= '\t') goto yy738;
11054
0
        goto yy787;
11055
0
      } else {
11056
0
        if (yych == '\r') goto yy787;
11057
0
        goto yy738;
11058
0
      }
11059
0
    } else {
11060
0
      if (yych <= 'M') {
11061
0
        if (yych <= '*') goto yy789;
11062
0
        if (yych <= 'L') goto yy738;
11063
0
        goto yy958;
11064
0
      } else {
11065
0
        if (yych == 'm') goto yy958;
11066
0
        goto yy738;
11067
0
      }
11068
0
    }
11069
12
yy954:
11070
12
    YYDEBUG(954, *YYCURSOR);
11071
12
    yyaccept = 94;
11072
12
    YYMARKER = ++YYCURSOR;
11073
12
    YYFILL(1);
11074
12
    yych = *YYCURSOR;
11075
12
    if (yych <= 0x00) goto yy886;
11076
12
    if (yych == '*') goto yy668;
11077
12
    goto yy590;
11078
58
yy955:
11079
58
    YYDEBUG(955, *YYCURSOR);
11080
58
    ++YYCURSOR;
11081
58
    YYFILL(1);
11082
58
    yych = *YYCURSOR;
11083
58
    if (yych <= 'M') {
11084
0
      if (yych <= 0x00) goto yy86;
11085
0
      if (yych == '*') goto yy668;
11086
0
      goto yy590;
11087
58
    } else {
11088
58
      if (yych <= 'N') goto yy959;
11089
0
      if (yych == 'n') goto yy959;
11090
0
      goto yy590;
11091
0
    }
11092
24
yy956:
11093
24
    YYDEBUG(956, *YYCURSOR);
11094
24
    ++YYCURSOR;
11095
24
    YYFILL(1);
11096
24
    yych = *YYCURSOR;
11097
24
    if (yych <= '/') {
11098
24
      if (yych <= '\f') {
11099
0
        if (yych <= 0x00) goto yy875;
11100
0
        if (yych == '\n') goto yy961;
11101
0
        goto yy960;
11102
24
      } else {
11103
24
        if (yych <= '\r') goto yy961;
11104
24
        if (yych == '*') goto yy962;
11105
24
        goto yy960;
11106
24
      }
11107
24
    } else {
11108
0
      if (yych <= '^') {
11109
0
        if (yych <= '9') goto yy808;
11110
0
        if (yych <= '@') goto yy960;
11111
0
        if (yych <= 'Z') goto yy808;
11112
0
        goto yy960;
11113
0
      } else {
11114
0
        if (yych <= '`') {
11115
0
          if (yych <= '_') goto yy808;
11116
0
          goto yy960;
11117
0
        } else {
11118
0
          if (yych <= 'z') goto yy808;
11119
0
          if (yych <= 0x7F) goto yy960;
11120
0
          goto yy808;
11121
0
        }
11122
0
      }
11123
0
    }
11124
6
yy957:
11125
6
    YYDEBUG(957, *YYCURSOR);
11126
6
    ++YYCURSOR;
11127
6
    YYFILL(1);
11128
6
    yych = *YYCURSOR;
11129
6
    if (yych <= ')') {
11130
0
      if (yych <= '\n') {
11131
0
        if (yych <= 0x00) goto yy86;
11132
0
        if (yych <= '\t') goto yy738;
11133
0
        goto yy787;
11134
0
      } else {
11135
0
        if (yych == '\r') goto yy787;
11136
0
        goto yy738;
11137
0
      }
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
0
        goto yy738;
11146
6
      }
11147
6
    }
11148
0
yy958:
11149
0
    YYDEBUG(958, *YYCURSOR);
11150
0
    ++YYCURSOR;
11151
0
    YYFILL(1);
11152
0
    yych = *YYCURSOR;
11153
0
    if (yych <= ')') {
11154
0
      if (yych <= '\n') {
11155
0
        if (yych <= 0x00) goto yy86;
11156
0
        if (yych <= '\t') goto yy738;
11157
0
        goto yy787;
11158
0
      } else {
11159
0
        if (yych == '\r') goto yy787;
11160
0
        goto yy738;
11161
0
      }
11162
0
    } else {
11163
0
      if (yych <= 'E') {
11164
0
        if (yych <= '*') goto yy789;
11165
0
        if (yych <= 'D') goto yy738;
11166
0
        goto yy964;
11167
0
      } else {
11168
0
        if (yych == 'e') goto yy964;
11169
0
        goto yy738;
11170
0
      }
11171
0
    }
11172
58
yy959:
11173
58
    YYDEBUG(959, *YYCURSOR);
11174
58
    ++YYCURSOR;
11175
58
    YYFILL(1);
11176
58
    yych = *YYCURSOR;
11177
58
    if (yych <= 'S') {
11178
46
      if (yych <= 0x00) goto yy86;
11179
46
      if (yych == '*') goto yy668;
11180
46
      goto yy590;
11181
46
    } else {
11182
12
      if (yych <= 'T') goto yy945;
11183
12
      if (yych == 't') goto yy945;
11184
12
      goto yy590;
11185
12
    }
11186
24
yy960:
11187
24
    YYDEBUG(960, *YYCURSOR);
11188
24
    yyaccept = 91;
11189
24
    YYMARKER = ++YYCURSOR;
11190
24
    YYFILL(1);
11191
24
    yych = *YYCURSOR;
11192
24
    if (yych <= '\f') {
11193
0
      if (yych <= 0x00) goto yy876;
11194
0
      if (yych == '\n') goto yy846;
11195
0
      goto yy808;
11196
24
    } else {
11197
24
      if (yych <= '\r') goto yy846;
11198
24
      if (yych == '*') goto yy848;
11199
24
      goto yy808;
11200
24
    }
11201
0
yy961:
11202
0
    YYDEBUG(961, *YYCURSOR);
11203
0
    yyaccept = 91;
11204
0
    YYMARKER = ++YYCURSOR;
11205
0
    YYFILL(1);
11206
0
    yych = *YYCURSOR;
11207
0
    if (yych <= '#') {
11208
0
      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
0
      } else {
11214
0
        if (yych <= 0x1F) {
11215
0
          if (yych <= '\r') goto yy846;
11216
0
          goto yy696;
11217
0
        } else {
11218
0
          if (yych <= ' ') goto yy846;
11219
0
          if (yych <= '"') goto yy696;
11220
0
          goto yy877;
11221
0
        }
11222
0
      }
11223
0
    } else {
11224
0
      if (yych <= '/') {
11225
0
        if (yych == '*') goto yy760;
11226
0
        if (yych <= '.') goto yy696;
11227
0
        goto yy878;
11228
0
      } else {
11229
0
        if (yych <= 'F') {
11230
0
          if (yych <= 'E') goto yy696;
11231
0
          goto yy879;
11232
0
        } else {
11233
0
          if (yych == 'f') goto yy879;
11234
0
          goto yy696;
11235
0
        }
11236
0
      }
11237
0
    }
11238
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
6
yy963:
11263
6
    YYDEBUG(963, *YYCURSOR);
11264
6
    yyaccept = 94;
11265
6
    YYMARKER = ++YYCURSOR;
11266
6
    YYFILL(1);
11267
6
    yych = *YYCURSOR;
11268
6
    if (yych <= '\f') {
11269
0
      if (yych <= 0x00) goto yy886;
11270
0
      if (yych == '\n') goto yy787;
11271
0
      goto yy738;
11272
6
    } else {
11273
6
      if (yych <= '\r') goto yy787;
11274
6
      if (yych == '*') goto yy789;
11275
6
      goto yy738;
11276
6
    }
11277
0
yy964:
11278
0
    YYDEBUG(964, *YYCURSOR);
11279
0
    ++YYCURSOR;
11280
0
    YYFILL(1);
11281
0
    yych = *YYCURSOR;
11282
0
    if (yych <= ')') {
11283
0
      if (yych <= '\n') {
11284
0
        if (yych <= 0x00) goto yy86;
11285
0
        if (yych <= '\t') goto yy738;
11286
0
        goto yy787;
11287
0
      } else {
11288
0
        if (yych == '\r') goto yy787;
11289
0
        goto yy738;
11290
0
      }
11291
0
    } else {
11292
0
      if (yych <= 'N') {
11293
0
        if (yych <= '*') goto yy789;
11294
0
        if (yych <= 'M') goto yy738;
11295
0
      } else {
11296
0
        if (yych != 'n') goto yy738;
11297
0
      }
11298
0
    }
11299
0
    YYDEBUG(965, *YYCURSOR);
11300
0
    ++YYCURSOR;
11301
0
    YYFILL(1);
11302
0
    yych = *YYCURSOR;
11303
0
    if (yych <= ')') {
11304
0
      if (yych <= '\n') {
11305
0
        if (yych <= 0x00) goto yy86;
11306
0
        if (yych <= '\t') goto yy738;
11307
0
        goto yy787;
11308
0
      } else {
11309
0
        if (yych == '\r') goto yy787;
11310
0
        goto yy738;
11311
0
      }
11312
0
    } else {
11313
0
      if (yych <= 'T') {
11314
0
        if (yych <= '*') goto yy789;
11315
0
        if (yych <= 'S') goto yy738;
11316
0
        goto yy957;
11317
0
      } else {
11318
0
        if (yych == 't') goto yy957;
11319
0
        goto yy738;
11320
0
      }
11321
0
    }
11322
0
  }
11323
/* *********************************** */
11324
130k
yyc_ST_LOOKING_FOR_PROPERTY:
11325
130k
  {
11326
130k
    static const unsigned char yybm[] = {
11327
130k
        0,   0,   0,   0,   0,   0,   0,   0, 
11328
130k
        0,  64,  64,   0,   0,  64,   0,   0, 
11329
130k
        0,   0,   0,   0,   0,   0,   0,   0, 
11330
130k
        0,   0,   0,   0,   0,   0,   0,   0, 
11331
130k
       64,   0,   0,   0,   0,   0,   0,   0, 
11332
130k
        0,   0,   0,   0,   0,   0,   0,   0, 
11333
130k
      128, 128, 128, 128, 128, 128, 128, 128, 
11334
130k
      128, 128,   0,   0,   0,   0,   0,   0, 
11335
130k
        0, 128, 128, 128, 128, 128, 128, 128, 
11336
130k
      128, 128, 128, 128, 128, 128, 128, 128, 
11337
130k
      128, 128, 128, 128, 128, 128, 128, 128, 
11338
130k
      128, 128, 128,   0,   0,   0,   0, 128, 
11339
130k
        0, 128, 128, 128, 128, 128, 128, 128, 
11340
130k
      128, 128, 128, 128, 128, 128, 128, 128, 
11341
130k
      128, 128, 128, 128, 128, 128, 128, 128, 
11342
130k
      128, 128, 128,   0,   0,   0,   0,   0, 
11343
130k
      128, 128, 128, 128, 128, 128, 128, 128, 
11344
130k
      128, 128, 128, 128, 128, 128, 128, 128, 
11345
130k
      128, 128, 128, 128, 128, 128, 128, 128, 
11346
130k
      128, 128, 128, 128, 128, 128, 128, 128, 
11347
130k
      128, 128, 128, 128, 128, 128, 128, 128, 
11348
130k
      128, 128, 128, 128, 128, 128, 128, 128, 
11349
130k
      128, 128, 128, 128, 128, 128, 128, 128, 
11350
130k
      128, 128, 128, 128, 128, 128, 128, 128, 
11351
130k
      128, 128, 128, 128, 128, 128, 128, 128, 
11352
130k
      128, 128, 128, 128, 128, 128, 128, 128, 
11353
130k
      128, 128, 128, 128, 128, 128, 128, 128, 
11354
130k
      128, 128, 128, 128, 128, 128, 128, 128, 
11355
130k
      128, 128, 128, 128, 128, 128, 128, 128, 
11356
130k
      128, 128, 128, 128, 128, 128, 128, 128, 
11357
130k
      128, 128, 128, 128, 128, 128, 128, 128, 
11358
130k
      128, 128, 128, 128, 128, 128, 128, 128, 
11359
130k
    };
11360
130k
    YYDEBUG(966, *YYCURSOR);
11361
130k
    YYFILL(4);
11362
130k
    yych = *YYCURSOR;
11363
130k
    if (yybm[0+yych] & 64) {
11364
1.50k
      goto yy970;
11365
1.50k
    }
11366
129k
    if (yych <= '?') {
11367
37.9k
      if (yych <= '-') {
11368
16.8k
        if (yych == '#') goto yy973;
11369
16.2k
        if (yych >= '-') goto yy975;
11370
21.1k
      } else {
11371
21.1k
        if (yych == '/') goto yy976;
11372
19.8k
        if (yych >= '?') goto yy977;
11373
19.8k
      }
11374
91.4k
    } else {
11375
91.4k
      if (yych <= '_') {
11376
19.7k
        if (yych <= '@') goto yy968;
11377
19.7k
        if (yych <= 'Z') goto yy978;
11378
11.9k
        if (yych >= '_') goto yy978;
11379
71.6k
      } else {
11380
71.6k
        if (yych <= '`') goto yy968;
11381
71.4k
        if (yych <= 'z') goto yy978;
11382
2.50k
        if (yych >= 0x80) goto yy978;
11383
2.50k
      }
11384
91.4k
    }
11385
16.0k
yy968:
11386
16.0k
    YYDEBUG(968, *YYCURSOR);
11387
16.0k
    ++YYCURSOR;
11388
16.8k
yy969:
11389
16.8k
    YYDEBUG(969, *YYCURSOR);
11390
16.8k
    yyleng = YYCURSOR - SCNG(yy_text);
11391
16.8k
#line 2519 "Zend/zend_language_scanner.l"
11392
16.8k
    {
11393
16.8k
  yyless(0);
11394
16.8k
  yy_pop_state();
11395
16.8k
  goto restart;
11396
16.0k
}
11397
0
#line 11398 "Zend/zend_language_scanner.c"
11398
2.62k
yy970:
11399
2.62k
    YYDEBUG(970, *YYCURSOR);
11400
2.62k
    ++YYCURSOR;
11401
2.62k
    YYFILL(1);
11402
2.62k
    yych = *YYCURSOR;
11403
2.62k
    YYDEBUG(971, *YYCURSOR);
11404
2.62k
    if (yybm[0+yych] & 64) {
11405
1.11k
      goto yy970;
11406
1.11k
    }
11407
1.50k
    YYDEBUG(972, *YYCURSOR);
11408
1.50k
    yyleng = YYCURSOR - SCNG(yy_text);
11409
1.50k
#line 1596 "Zend/zend_language_scanner.l"
11410
1.50k
    {
11411
1.50k
  goto return_whitespace;
11412
2.62k
}
11413
0
#line 11414 "Zend/zend_language_scanner.c"
11414
1.25k
yy973:
11415
1.25k
    YYDEBUG(973, *YYCURSOR);
11416
1.25k
    ++YYCURSOR;
11417
1.25k
    YYDEBUG(974, *YYCURSOR);
11418
1.25k
    yyleng = YYCURSOR - SCNG(yy_text);
11419
1.25k
#line 2459 "Zend/zend_language_scanner.l"
11420
1.25k
    {
11421
60.1k
  while (YYCURSOR < YYLIMIT) {
11422
60.1k
    switch (*YYCURSOR++) {
11423
334
      case '\r':
11424
1.23k
      case '\n':
11425
1.23k
        YYCURSOR--;
11426
1.23k
        break;
11427
280
      case '?':
11428
280
        if (*YYCURSOR == '>') {
11429
0
          YYCURSOR--;
11430
0
          break;
11431
0
        }
11432
280
        ZEND_FALLTHROUGH;
11433
58.8k
      default:
11434
58.8k
        continue;
11435
60.1k
    }
11436
11437
1.23k
    break;
11438
60.1k
  }
11439
11440
1.25k
  yyleng = YYCURSOR - SCNG(yy_text);
11441
1.25k
  RETURN_OR_SKIP_TOKEN(T_COMMENT);
11442
1.25k
}
11443
0
#line 11444 "Zend/zend_language_scanner.c"
11444
12.3k
yy975:
11445
12.3k
    YYDEBUG(975, *YYCURSOR);
11446
12.3k
    yych = *++YYCURSOR;
11447
12.3k
    if (yych == '>') goto yy981;
11448
375
    goto yy969;
11449
1.26k
yy976:
11450
1.26k
    YYDEBUG(976, *YYCURSOR);
11451
1.26k
    yych = *++YYCURSOR;
11452
1.26k
    if (yych == '*') goto yy983;
11453
786
    if (yych == '/') goto yy973;
11454
71
    goto yy969;
11455
19.3k
yy977:
11456
19.3k
    YYDEBUG(977, *YYCURSOR);
11457
19.3k
    yyaccept = 0;
11458
19.3k
    yych = *(YYMARKER = ++YYCURSOR);
11459
19.3k
    if (yych == '-') goto yy985;
11460
387
    goto yy969;
11461
387k
yy978:
11462
387k
    YYDEBUG(978, *YYCURSOR);
11463
387k
    ++YYCURSOR;
11464
387k
    YYFILL(1);
11465
387k
    yych = *YYCURSOR;
11466
387k
    YYDEBUG(979, *YYCURSOR);
11467
387k
    if (yybm[0+yych] & 128) {
11468
307k
      goto yy978;
11469
307k
    }
11470
79.7k
    YYDEBUG(980, *YYCURSOR);
11471
79.7k
    yyleng = YYCURSOR - SCNG(yy_text);
11472
79.7k
#line 1608 "Zend/zend_language_scanner.l"
11473
79.7k
    {
11474
79.7k
  yy_pop_state();
11475
79.7k
  RETURN_TOKEN_WITH_STR(T_STRING, 0);
11476
79.7k
}
11477
0
#line 11478 "Zend/zend_language_scanner.c"
11478
12.0k
yy981:
11479
12.0k
    YYDEBUG(981, *YYCURSOR);
11480
12.0k
    ++YYCURSOR;
11481
12.0k
    YYDEBUG(982, *YYCURSOR);
11482
12.0k
    yyleng = YYCURSOR - SCNG(yy_text);
11483
12.0k
#line 1600 "Zend/zend_language_scanner.l"
11484
12.0k
    {
11485
12.0k
  RETURN_TOKEN(T_OBJECT_OPERATOR);
11486
12.0k
}
11487
0
#line 11488 "Zend/zend_language_scanner.c"
11488
483
yy983:
11489
483
    YYDEBUG(983, *YYCURSOR);
11490
483
    yyaccept = 1;
11491
483
    yych = *(YYMARKER = ++YYCURSOR);
11492
483
    if (yych == '*') goto yy987;
11493
483
yy984:
11494
483
    YYDEBUG(984, *YYCURSOR);
11495
483
    yyleng = YYCURSOR - SCNG(yy_text);
11496
483
#line 2483 "Zend/zend_language_scanner.l"
11497
483
    {
11498
483
  int doc_com;
11499
11500
483
  if (yyleng > 2) {
11501
326
    doc_com = 1;
11502
326
    RESET_DOC_COMMENT();
11503
326
  } else {
11504
157
    doc_com = 0;
11505
157
  }
11506
11507
180k
  while (YYCURSOR < YYLIMIT) {
11508
180k
    if (*YYCURSOR++ == '*' && *YYCURSOR == '/') {
11509
398
      break;
11510
398
    }
11511
180k
  }
11512
11513
483
  if (YYCURSOR < YYLIMIT) {
11514
398
    YYCURSOR++;
11515
398
  } else {
11516
85
    zend_throw_exception_ex(zend_ce_parse_error, 0, "Unterminated comment starting line %" PRIu32, CG(zend_lineno));
11517
85
    if (PARSER_MODE()) {
11518
2
      RETURN_TOKEN(T_ERROR);
11519
2
    }
11520
85
  }
11521
11522
481
  yyleng = YYCURSOR - SCNG(yy_text);
11523
481
  HANDLE_NEWLINES(yytext, yyleng);
11524
11525
481
  if (doc_com) {
11526
326
    CG(doc_comment) = zend_string_init(yytext, yyleng, 0);
11527
326
    RETURN_OR_SKIP_TOKEN(T_DOC_COMMENT);
11528
326
  }
11529
11530
155
  RETURN_OR_SKIP_TOKEN(T_COMMENT);
11531
155
}
11532
0
#line 11533 "Zend/zend_language_scanner.c"
11533
18.9k
yy985:
11534
18.9k
    YYDEBUG(985, *YYCURSOR);
11535
18.9k
    yych = *++YYCURSOR;
11536
18.9k
    if (yych == '>') goto yy988;
11537
64
yy986:
11538
64
    YYDEBUG(986, *YYCURSOR);
11539
64
    YYCURSOR = YYMARKER;
11540
64
    if (yyaccept == 0) {
11541
0
      goto yy969;
11542
64
    } else {
11543
64
      goto yy984;
11544
64
    }
11545
390
yy987:
11546
390
    YYDEBUG(987, *YYCURSOR);
11547
390
    yych = *++YYCURSOR;
11548
390
    if (yych <= '\f') {
11549
0
      if (yych <= 0x08) goto yy986;
11550
0
      if (yych <= '\n') goto yy990;
11551
0
      goto yy986;
11552
390
    } else {
11553
390
      if (yych <= '\r') goto yy990;
11554
390
      if (yych == ' ') goto yy990;
11555
64
      goto yy986;
11556
390
    }
11557
18.9k
yy988:
11558
18.9k
    YYDEBUG(988, *YYCURSOR);
11559
18.9k
    ++YYCURSOR;
11560
18.9k
    YYDEBUG(989, *YYCURSOR);
11561
18.9k
    yyleng = YYCURSOR - SCNG(yy_text);
11562
18.9k
#line 1604 "Zend/zend_language_scanner.l"
11563
18.9k
    {
11564
18.9k
  RETURN_TOKEN(T_NULLSAFE_OBJECT_OPERATOR);
11565
18.9k
}
11566
0
#line 11567 "Zend/zend_language_scanner.c"
11567
326
yy990:
11568
326
    YYDEBUG(990, *YYCURSOR);
11569
326
    ++YYCURSOR;
11570
326
    YYFILL(1);
11571
326
    yych = *YYCURSOR;
11572
326
    YYDEBUG(991, *YYCURSOR);
11573
326
    if (yych <= '\f') {
11574
0
      if (yych <= 0x08) goto yy984;
11575
0
      if (yych <= '\n') goto yy990;
11576
0
      goto yy984;
11577
326
    } else {
11578
326
      if (yych <= '\r') goto yy990;
11579
326
      if (yych == ' ') goto yy990;
11580
326
      goto yy984;
11581
326
    }
11582
326
  }
11583
/* *********************************** */
11584
44.2k
yyc_ST_BACKQUOTE:
11585
44.2k
  {
11586
44.2k
    static const unsigned char yybm[] = {
11587
44.2k
        0,   0,   0,   0,   0,   0,   0,   0, 
11588
44.2k
        0,   0,   0,   0,   0,   0,   0,   0, 
11589
44.2k
        0,   0,   0,   0,   0,   0,   0,   0, 
11590
44.2k
        0,   0,   0,   0,   0,   0,   0,   0, 
11591
44.2k
        0,   0,   0,   0,   0,   0,   0,   0, 
11592
44.2k
        0,   0,   0,   0,   0,   0,   0,   0, 
11593
44.2k
      128, 128, 128, 128, 128, 128, 128, 128, 
11594
44.2k
      128, 128,   0,   0,   0,   0,   0,   0, 
11595
44.2k
        0, 128, 128, 128, 128, 128, 128, 128, 
11596
44.2k
      128, 128, 128, 128, 128, 128, 128, 128, 
11597
44.2k
      128, 128, 128, 128, 128, 128, 128, 128, 
11598
44.2k
      128, 128, 128,   0,   0,   0,   0, 128, 
11599
44.2k
        0, 128, 128, 128, 128, 128, 128, 128, 
11600
44.2k
      128, 128, 128, 128, 128, 128, 128, 128, 
11601
44.2k
      128, 128, 128, 128, 128, 128, 128, 128, 
11602
44.2k
      128, 128, 128,   0,   0,   0,   0,   0, 
11603
44.2k
      128, 128, 128, 128, 128, 128, 128, 128, 
11604
44.2k
      128, 128, 128, 128, 128, 128, 128, 128, 
11605
44.2k
      128, 128, 128, 128, 128, 128, 128, 128, 
11606
44.2k
      128, 128, 128, 128, 128, 128, 128, 128, 
11607
44.2k
      128, 128, 128, 128, 128, 128, 128, 128, 
11608
44.2k
      128, 128, 128, 128, 128, 128, 128, 128, 
11609
44.2k
      128, 128, 128, 128, 128, 128, 128, 128, 
11610
44.2k
      128, 128, 128, 128, 128, 128, 128, 128, 
11611
44.2k
      128, 128, 128, 128, 128, 128, 128, 128, 
11612
44.2k
      128, 128, 128, 128, 128, 128, 128, 128, 
11613
44.2k
      128, 128, 128, 128, 128, 128, 128, 128, 
11614
44.2k
      128, 128, 128, 128, 128, 128, 128, 128, 
11615
44.2k
      128, 128, 128, 128, 128, 128, 128, 128, 
11616
44.2k
      128, 128, 128, 128, 128, 128, 128, 128, 
11617
44.2k
      128, 128, 128, 128, 128, 128, 128, 128, 
11618
44.2k
      128, 128, 128, 128, 128, 128, 128, 128, 
11619
44.2k
    };
11620
44.2k
    YYDEBUG(992, *YYCURSOR);
11621
44.2k
    YYFILL(2);
11622
44.2k
    yych = *YYCURSOR;
11623
44.2k
    if (yych <= '_') {
11624
32.2k
      if (yych == '$') goto yy996;
11625
32.2k
    } else {
11626
11.9k
      if (yych <= '`') goto yy997;
11627
4.43k
      if (yych == '{') goto yy999;
11628
4.43k
    }
11629
20.9k
    YYDEBUG(994, *YYCURSOR);
11630
20.9k
    ++YYCURSOR;
11631
21.9k
yy995:
11632
21.9k
    YYDEBUG(995, *YYCURSOR);
11633
21.9k
    yyleng = YYCURSOR - SCNG(yy_text);
11634
21.9k
#line 2918 "Zend/zend_language_scanner.l"
11635
21.9k
    {
11636
21.9k
  if (YYCURSOR > YYLIMIT) {
11637
1.10k
    RETURN_END_TOKEN;
11638
1.10k
  }
11639
20.8k
  if (yytext[0] == '\\' && YYCURSOR < YYLIMIT) {
11640
361
    YYCURSOR++;
11641
361
  }
11642
11643
1.99M
  while (YYCURSOR < YYLIMIT) {
11644
1.99M
    switch (*YYCURSOR++) {
11645
5.16k
      case '`':
11646
5.16k
        break;
11647
19.4k
      case '$':
11648
19.4k
        if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
11649
14.4k
          break;
11650
14.4k
        }
11651
4.95k
        continue;
11652
6.28k
      case '{':
11653
6.28k
        if (*YYCURSOR == '$') {
11654
101
          break;
11655
101
        }
11656
6.18k
        continue;
11657
11.5k
      case '\\':
11658
11.5k
        if (YYCURSOR < YYLIMIT) {
11659
11.3k
          YYCURSOR++;
11660
11.3k
        }
11661
11.5k
        ZEND_FALLTHROUGH;
11662
1.96M
      default:
11663
1.96M
        continue;
11664
1.99M
    }
11665
11666
19.7k
    YYCURSOR--;
11667
19.7k
    break;
11668
1.99M
  }
11669
11670
20.8k
  yyleng = YYCURSOR - SCNG(yy_text);
11671
11672
20.8k
  if (EXPECTED(zend_scan_escape_string(zendlval, yytext, yyleng, '`') == SUCCESS)
11673
20.8k
   || !PARSER_MODE()) {
11674
20.8k
    RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
11675
20.8k
  } else {
11676
2
    RETURN_TOKEN(T_ERROR);
11677
2
  }
11678
20.8k
}
11679
0
#line 11680 "Zend/zend_language_scanner.c"
11680
15.6k
yy996:
11681
15.6k
    YYDEBUG(996, *YYCURSOR);
11682
15.6k
    yych = *++YYCURSOR;
11683
15.6k
    if (yych <= '_') {
11684
1.73k
      if (yych <= '@') goto yy995;
11685
1.71k
      if (yych <= 'Z') goto yy1000;
11686
914
      if (yych <= '^') goto yy995;
11687
61
      goto yy1000;
11688
13.8k
    } else {
11689
13.8k
      if (yych <= 'z') {
11690
10.3k
        if (yych <= '`') goto yy995;
11691
10.3k
        goto yy1000;
11692
10.3k
      } else {
11693
3.53k
        if (yych <= '{') goto yy1003;
11694
1.44k
        if (yych <= 0x7F) goto yy995;
11695
1.35k
        goto yy1000;
11696
1.44k
      }
11697
13.8k
    }
11698
7.54k
yy997:
11699
7.54k
    YYDEBUG(997, *YYCURSOR);
11700
7.54k
    ++YYCURSOR;
11701
7.54k
    YYDEBUG(998, *YYCURSOR);
11702
7.54k
    yyleng = YYCURSOR - SCNG(yy_text);
11703
7.54k
#line 2858 "Zend/zend_language_scanner.l"
11704
7.54k
    {
11705
7.54k
  BEGIN(ST_IN_SCRIPTING);
11706
7.54k
  RETURN_TOKEN('`');
11707
7.54k
}
11708
0
#line 11709 "Zend/zend_language_scanner.c"
11709
152
yy999:
11710
152
    YYDEBUG(999, *YYCURSOR);
11711
152
    yych = *++YYCURSOR;
11712
152
    if (yych == '$') goto yy1005;
11713
51
    goto yy995;
11714
66.6k
yy1000:
11715
66.6k
    YYDEBUG(1000, *YYCURSOR);
11716
66.6k
    YYMARKER = ++YYCURSOR;
11717
66.6k
    YYFILL(4);
11718
66.6k
    yych = *YYCURSOR;
11719
66.6k
    YYDEBUG(1001, *YYCURSOR);
11720
66.6k
    if (yybm[0+yych] & 128) {
11721
54.0k
      goto yy1000;
11722
54.0k
    }
11723
12.5k
    if (yych <= '>') {
11724
11.0k
      if (yych == '-') goto yy1007;
11725
11.0k
    } else {
11726
1.53k
      if (yych <= '?') goto yy1009;
11727
709
      if (yych <= '@') goto yy1002;
11728
701
      if (yych <= '[') goto yy1010;
11729
701
    }
11730
11.1k
yy1002:
11731
11.1k
    YYDEBUG(1002, *YYCURSOR);
11732
11.1k
    yyleng = YYCURSOR - SCNG(yy_text);
11733
11.1k
#line 2416 "Zend/zend_language_scanner.l"
11734
11.1k
    {
11735
11.1k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
11736
11.1k
}
11737
0
#line 11738 "Zend/zend_language_scanner.c"
11738
2.09k
yy1003:
11739
2.09k
    YYDEBUG(1003, *YYCURSOR);
11740
2.09k
    ++YYCURSOR;
11741
2.09k
    YYDEBUG(1004, *YYCURSOR);
11742
2.09k
    yyleng = YYCURSOR - SCNG(yy_text);
11743
2.09k
#line 1980 "Zend/zend_language_scanner.l"
11744
2.09k
    {
11745
2.09k
  yy_push_state(ST_LOOKING_FOR_VARNAME);
11746
2.09k
  enter_nesting('{');
11747
2.09k
  RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES);
11748
2.09k
}
11749
0
#line 11750 "Zend/zend_language_scanner.c"
11750
101
yy1005:
11751
101
    YYDEBUG(1005, *YYCURSOR);
11752
101
    ++YYCURSOR;
11753
101
    YYDEBUG(1006, *YYCURSOR);
11754
101
    yyleng = YYCURSOR - SCNG(yy_text);
11755
101
#line 2845 "Zend/zend_language_scanner.l"
11756
101
    {
11757
101
  yy_push_state(ST_IN_SCRIPTING);
11758
101
  yyless(1);
11759
101
  enter_nesting('{');
11760
101
  RETURN_TOKEN(T_CURLY_OPEN);
11761
101
}
11762
0
#line 11763 "Zend/zend_language_scanner.c"
11763
1.51k
yy1007:
11764
1.51k
    YYDEBUG(1007, *YYCURSOR);
11765
1.51k
    yych = *++YYCURSOR;
11766
1.51k
    if (yych == '>') goto yy1012;
11767
1.25k
yy1008:
11768
1.25k
    YYDEBUG(1008, *YYCURSOR);
11769
1.25k
    YYCURSOR = YYMARKER;
11770
1.25k
    goto yy1002;
11771
829
yy1009:
11772
829
    YYDEBUG(1009, *YYCURSOR);
11773
829
    yych = *++YYCURSOR;
11774
829
    if (yych == '-') goto yy1013;
11775
543
    goto yy1008;
11776
543
yy1010:
11777
333
    YYDEBUG(1010, *YYCURSOR);
11778
333
    ++YYCURSOR;
11779
333
    YYDEBUG(1011, *YYCURSOR);
11780
333
    yyleng = YYCURSOR - SCNG(yy_text);
11781
333
#line 2410 "Zend/zend_language_scanner.l"
11782
333
    {
11783
333
  yyless(yyleng - 1);
11784
333
  yy_push_state(ST_VAR_OFFSET);
11785
333
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
11786
333
}
11787
0
#line 11788 "Zend/zend_language_scanner.c"
11788
1.01k
yy1012:
11789
1.01k
    YYDEBUG(1012, *YYCURSOR);
11790
1.01k
    yych = *++YYCURSOR;
11791
1.01k
    if (yych <= '_') {
11792
337
      if (yych <= '@') goto yy1008;
11793
262
      if (yych <= 'Z') goto yy1014;
11794
24
      if (yych <= '^') goto yy1008;
11795
15
      goto yy1014;
11796
675
    } else {
11797
675
      if (yych <= '`') goto yy1008;
11798
675
      if (yych <= 'z') goto yy1014;
11799
84
      if (yych <= 0x7F) goto yy1008;
11800
2
      goto yy1014;
11801
84
    }
11802
286
yy1013:
11803
286
    YYDEBUG(1013, *YYCURSOR);
11804
286
    yych = *++YYCURSOR;
11805
286
    if (yych == '>') goto yy1016;
11806
30
    goto yy1008;
11807
846
yy1014:
11808
846
    YYDEBUG(1014, *YYCURSOR);
11809
846
    ++YYCURSOR;
11810
846
    YYDEBUG(1015, *YYCURSOR);
11811
846
    yyleng = YYCURSOR - SCNG(yy_text);
11812
846
#line 2396 "Zend/zend_language_scanner.l"
11813
846
    {
11814
846
  yyless(yyleng - 3);
11815
846
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
11816
846
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
11817
846
}
11818
0
#line 11819 "Zend/zend_language_scanner.c"
11819
256
yy1016:
11820
256
    YYDEBUG(1016, *YYCURSOR);
11821
256
    yych = *++YYCURSOR;
11822
256
    if (yych <= '_') {
11823
8
      if (yych <= '@') goto yy1008;
11824
8
      if (yych <= 'Z') goto yy1017;
11825
6
      if (yych <= '^') goto yy1008;
11826
248
    } else {
11827
248
      if (yych <= '`') goto yy1008;
11828
248
      if (yych <= 'z') goto yy1017;
11829
6
      if (yych <= 0x7F) goto yy1008;
11830
6
    }
11831
248
yy1017:
11832
248
    YYDEBUG(1017, *YYCURSOR);
11833
248
    ++YYCURSOR;
11834
248
    YYDEBUG(1018, *YYCURSOR);
11835
248
    yyleng = YYCURSOR - SCNG(yy_text);
11836
248
#line 2402 "Zend/zend_language_scanner.l"
11837
248
    {
11838
248
  yyless(yyleng - 4);
11839
248
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
11840
248
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
11841
248
}
11842
248
#line 11843 "Zend/zend_language_scanner.c"
11843
248
  }
11844
/* *********************************** */
11845
177k
yyc_ST_DOUBLE_QUOTES:
11846
177k
  {
11847
177k
    static const unsigned char yybm[] = {
11848
177k
        0,   0,   0,   0,   0,   0,   0,   0, 
11849
177k
        0,   0,   0,   0,   0,   0,   0,   0, 
11850
177k
        0,   0,   0,   0,   0,   0,   0,   0, 
11851
177k
        0,   0,   0,   0,   0,   0,   0,   0, 
11852
177k
        0,   0,   0,   0,   0,   0,   0,   0, 
11853
177k
        0,   0,   0,   0,   0,   0,   0,   0, 
11854
177k
      128, 128, 128, 128, 128, 128, 128, 128, 
11855
177k
      128, 128,   0,   0,   0,   0,   0,   0, 
11856
177k
        0, 128, 128, 128, 128, 128, 128, 128, 
11857
177k
      128, 128, 128, 128, 128, 128, 128, 128, 
11858
177k
      128, 128, 128, 128, 128, 128, 128, 128, 
11859
177k
      128, 128, 128,   0,   0,   0,   0, 128, 
11860
177k
        0, 128, 128, 128, 128, 128, 128, 128, 
11861
177k
      128, 128, 128, 128, 128, 128, 128, 128, 
11862
177k
      128, 128, 128, 128, 128, 128, 128, 128, 
11863
177k
      128, 128, 128,   0,   0,   0,   0,   0, 
11864
177k
      128, 128, 128, 128, 128, 128, 128, 128, 
11865
177k
      128, 128, 128, 128, 128, 128, 128, 128, 
11866
177k
      128, 128, 128, 128, 128, 128, 128, 128, 
11867
177k
      128, 128, 128, 128, 128, 128, 128, 128, 
11868
177k
      128, 128, 128, 128, 128, 128, 128, 128, 
11869
177k
      128, 128, 128, 128, 128, 128, 128, 128, 
11870
177k
      128, 128, 128, 128, 128, 128, 128, 128, 
11871
177k
      128, 128, 128, 128, 128, 128, 128, 128, 
11872
177k
      128, 128, 128, 128, 128, 128, 128, 128, 
11873
177k
      128, 128, 128, 128, 128, 128, 128, 128, 
11874
177k
      128, 128, 128, 128, 128, 128, 128, 128, 
11875
177k
      128, 128, 128, 128, 128, 128, 128, 128, 
11876
177k
      128, 128, 128, 128, 128, 128, 128, 128, 
11877
177k
      128, 128, 128, 128, 128, 128, 128, 128, 
11878
177k
      128, 128, 128, 128, 128, 128, 128, 128, 
11879
177k
      128, 128, 128, 128, 128, 128, 128, 128, 
11880
177k
    };
11881
177k
    YYDEBUG(1019, *YYCURSOR);
11882
177k
    YYFILL(2);
11883
177k
    yych = *YYCURSOR;
11884
177k
    if (yych <= '#') {
11885
42.0k
      if (yych == '"') goto yy1023;
11886
135k
    } else {
11887
135k
      if (yych <= '$') goto yy1025;
11888
68.0k
      if (yych == '{') goto yy1026;
11889
68.0k
    }
11890
89.0k
    YYDEBUG(1021, *YYCURSOR);
11891
89.0k
    ++YYCURSOR;
11892
89.6k
yy1022:
11893
89.6k
    YYDEBUG(1022, *YYCURSOR);
11894
89.6k
    yyleng = YYCURSOR - SCNG(yy_text);
11895
89.6k
#line 2864 "Zend/zend_language_scanner.l"
11896
89.6k
    {
11897
89.6k
  if (GET_DOUBLE_QUOTES_SCANNED_LENGTH()) {
11898
26.1k
    YYCURSOR += GET_DOUBLE_QUOTES_SCANNED_LENGTH() - 1;
11899
26.1k
    SET_DOUBLE_QUOTES_SCANNED_LENGTH(0);
11900
11901
26.1k
    goto double_quotes_scan_done;
11902
26.1k
  }
11903
11904
63.4k
  if (YYCURSOR > YYLIMIT) {
11905
4.62k
    RETURN_END_TOKEN;
11906
4.62k
  }
11907
58.8k
  if (yytext[0] == '\\' && YYCURSOR < YYLIMIT) {
11908
4.41k
    YYCURSOR++;
11909
4.41k
  }
11910
11911
2.36M
  while (YYCURSOR < YYLIMIT) {
11912
2.36M
    switch (*YYCURSOR++) {
11913
17.9k
      case '"':
11914
17.9k
        break;
11915
44.3k
      case '$':
11916
44.3k
        if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
11917
39.6k
          break;
11918
39.6k
        }
11919
4.69k
        continue;
11920
6.71k
      case '{':
11921
6.71k
        if (*YYCURSOR == '$') {
11922
768
          break;
11923
768
        }
11924
5.94k
        continue;
11925
20.4k
      case '\\':
11926
20.4k
        if (YYCURSOR < YYLIMIT) {
11927
20.4k
          YYCURSOR++;
11928
20.4k
        }
11929
20.4k
        ZEND_FALLTHROUGH;
11930
2.29M
      default:
11931
2.29M
        continue;
11932
2.36M
    }
11933
11934
58.3k
    YYCURSOR--;
11935
58.3k
    break;
11936
2.36M
  }
11937
11938
85.0k
double_quotes_scan_done:
11939
85.0k
  yyleng = YYCURSOR - SCNG(yy_text);
11940
11941
85.0k
  if (EXPECTED(zend_scan_escape_string(zendlval, yytext, yyleng, '"') == SUCCESS)
11942
85.0k
   || !PARSER_MODE()) {
11943
85.0k
    RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
11944
85.0k
  } else {
11945
0
    RETURN_TOKEN(T_ERROR);
11946
0
  }
11947
85.0k
}
11948
0
#line 11949 "Zend/zend_language_scanner.c"
11949
19.6k
yy1023:
11950
19.6k
    YYDEBUG(1023, *YYCURSOR);
11951
19.6k
    ++YYCURSOR;
11952
19.6k
    YYDEBUG(1024, *YYCURSOR);
11953
19.6k
    yyleng = YYCURSOR - SCNG(yy_text);
11954
19.6k
#line 2853 "Zend/zend_language_scanner.l"
11955
19.6k
    {
11956
19.6k
  BEGIN(ST_IN_SCRIPTING);
11957
19.6k
  RETURN_TOKEN('"');
11958
19.6k
}
11959
0
#line 11960 "Zend/zend_language_scanner.c"
11960
67.7k
yy1025:
11961
67.7k
    YYDEBUG(1025, *YYCURSOR);
11962
67.7k
    yych = *++YYCURSOR;
11963
67.7k
    if (yych <= '_') {
11964
3.89k
      if (yych <= '@') goto yy1022;
11965
3.55k
      if (yych <= 'Z') goto yy1027;
11966
282
      if (yych <= '^') goto yy1022;
11967
282
      goto yy1027;
11968
63.8k
    } else {
11969
63.8k
      if (yych <= 'z') {
11970
51.8k
        if (yych <= '`') goto yy1022;
11971
51.8k
        goto yy1027;
11972
51.8k
      } else {
11973
11.9k
        if (yych <= '{') goto yy1030;
11974
5.88k
        if (yych <= 0x7F) goto yy1022;
11975
5.88k
        goto yy1027;
11976
5.88k
      }
11977
63.8k
    }
11978
1.43k
yy1026:
11979
1.43k
    YYDEBUG(1026, *YYCURSOR);
11980
1.43k
    yych = *++YYCURSOR;
11981
1.43k
    if (yych == '$') goto yy1032;
11982
219
    goto yy1022;
11983
230k
yy1027:
11984
230k
    YYDEBUG(1027, *YYCURSOR);
11985
230k
    YYMARKER = ++YYCURSOR;
11986
230k
    YYFILL(4);
11987
230k
    yych = *YYCURSOR;
11988
230k
    YYDEBUG(1028, *YYCURSOR);
11989
230k
    if (yybm[0+yych] & 128) {
11990
169k
      goto yy1027;
11991
169k
    }
11992
61.2k
    if (yych <= '>') {
11993
40.5k
      if (yych == '-') goto yy1034;
11994
40.5k
    } else {
11995
20.7k
      if (yych <= '?') goto yy1036;
11996
7.28k
      if (yych <= '@') goto yy1029;
11997
7.27k
      if (yych <= '[') goto yy1037;
11998
7.27k
    }
11999
48.5k
yy1029:
12000
48.5k
    YYDEBUG(1029, *YYCURSOR);
12001
48.5k
    yyleng = YYCURSOR - SCNG(yy_text);
12002
48.5k
#line 2416 "Zend/zend_language_scanner.l"
12003
48.5k
    {
12004
48.5k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12005
48.5k
}
12006
0
#line 12007 "Zend/zend_language_scanner.c"
12007
6.11k
yy1030:
12008
6.11k
    YYDEBUG(1030, *YYCURSOR);
12009
6.11k
    ++YYCURSOR;
12010
6.11k
    YYDEBUG(1031, *YYCURSOR);
12011
6.11k
    yyleng = YYCURSOR - SCNG(yy_text);
12012
6.11k
#line 1980 "Zend/zend_language_scanner.l"
12013
6.11k
    {
12014
6.11k
  yy_push_state(ST_LOOKING_FOR_VARNAME);
12015
6.11k
  enter_nesting('{');
12016
6.11k
  RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES);
12017
6.11k
}
12018
0
#line 12019 "Zend/zend_language_scanner.c"
12019
1.21k
yy1032:
12020
1.21k
    YYDEBUG(1032, *YYCURSOR);
12021
1.21k
    ++YYCURSOR;
12022
1.21k
    YYDEBUG(1033, *YYCURSOR);
12023
1.21k
    yyleng = YYCURSOR - SCNG(yy_text);
12024
1.21k
#line 2845 "Zend/zend_language_scanner.l"
12025
1.21k
    {
12026
1.21k
  yy_push_state(ST_IN_SCRIPTING);
12027
1.21k
  yyless(1);
12028
1.21k
  enter_nesting('{');
12029
1.21k
  RETURN_TOKEN(T_CURLY_OPEN);
12030
1.21k
}
12031
0
#line 12032 "Zend/zend_language_scanner.c"
12032
8.70k
yy1034:
12033
8.70k
    YYDEBUG(1034, *YYCURSOR);
12034
8.70k
    yych = *++YYCURSOR;
12035
8.70k
    if (yych == '>') goto yy1039;
12036
11.0k
yy1035:
12037
11.0k
    YYDEBUG(1035, *YYCURSOR);
12038
11.0k
    YYCURSOR = YYMARKER;
12039
11.0k
    goto yy1029;
12040
13.4k
yy1036:
12041
13.4k
    YYDEBUG(1036, *YYCURSOR);
12042
13.4k
    yych = *++YYCURSOR;
12043
13.4k
    if (yych == '-') goto yy1040;
12044
8.17k
    goto yy1035;
12045
8.17k
yy1037:
12046
1.61k
    YYDEBUG(1037, *YYCURSOR);
12047
1.61k
    ++YYCURSOR;
12048
1.61k
    YYDEBUG(1038, *YYCURSOR);
12049
1.61k
    yyleng = YYCURSOR - SCNG(yy_text);
12050
1.61k
#line 2410 "Zend/zend_language_scanner.l"
12051
1.61k
    {
12052
1.61k
  yyless(yyleng - 1);
12053
1.61k
  yy_push_state(ST_VAR_OFFSET);
12054
1.61k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12055
1.61k
}
12056
0
#line 12057 "Zend/zend_language_scanner.c"
12057
6.62k
yy1039:
12058
6.62k
    YYDEBUG(1039, *YYCURSOR);
12059
6.62k
    yych = *++YYCURSOR;
12060
6.62k
    if (yych <= '_') {
12061
5.52k
      if (yych <= '@') goto yy1035;
12062
5.32k
      if (yych <= 'Z') goto yy1041;
12063
36
      if (yych <= '^') goto yy1035;
12064
22
      goto yy1041;
12065
1.09k
    } else {
12066
1.09k
      if (yych <= '`') goto yy1035;
12067
1.09k
      if (yych <= 'z') goto yy1041;
12068
202
      if (yych <= 0x7F) goto yy1035;
12069
138
      goto yy1041;
12070
202
    }
12071
5.31k
yy1040:
12072
5.31k
    YYDEBUG(1040, *YYCURSOR);
12073
5.31k
    yych = *++YYCURSOR;
12074
5.31k
    if (yych == '>') goto yy1043;
12075
234
    goto yy1035;
12076
6.34k
yy1041:
12077
6.34k
    YYDEBUG(1041, *YYCURSOR);
12078
6.34k
    ++YYCURSOR;
12079
6.34k
    YYDEBUG(1042, *YYCURSOR);
12080
6.34k
    yyleng = YYCURSOR - SCNG(yy_text);
12081
6.34k
#line 2396 "Zend/zend_language_scanner.l"
12082
6.34k
    {
12083
6.34k
  yyless(yyleng - 3);
12084
6.34k
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
12085
6.34k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12086
6.34k
}
12087
0
#line 12088 "Zend/zend_language_scanner.c"
12088
5.08k
yy1043:
12089
5.08k
    YYDEBUG(1043, *YYCURSOR);
12090
5.08k
    yych = *++YYCURSOR;
12091
5.08k
    if (yych <= '_') {
12092
337
      if (yych <= '@') goto yy1035;
12093
220
      if (yych <= 'Z') goto yy1044;
12094
186
      if (yych <= '^') goto yy1035;
12095
4.74k
    } else {
12096
4.74k
      if (yych <= '`') goto yy1035;
12097
4.74k
      if (yych <= 'z') goto yy1044;
12098
39
      if (yych <= 0x7F) goto yy1035;
12099
39
    }
12100
4.77k
yy1044:
12101
4.77k
    YYDEBUG(1044, *YYCURSOR);
12102
4.77k
    ++YYCURSOR;
12103
4.77k
    YYDEBUG(1045, *YYCURSOR);
12104
4.77k
    yyleng = YYCURSOR - SCNG(yy_text);
12105
4.77k
#line 2402 "Zend/zend_language_scanner.l"
12106
4.77k
    {
12107
4.77k
  yyless(yyleng - 4);
12108
4.77k
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
12109
4.77k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12110
4.77k
}
12111
4.77k
#line 12112 "Zend/zend_language_scanner.c"
12112
4.77k
  }
12113
/* *********************************** */
12114
336k
yyc_ST_HEREDOC:
12115
336k
  {
12116
336k
    static const unsigned char yybm[] = {
12117
336k
        0,   0,   0,   0,   0,   0,   0,   0, 
12118
336k
        0,   0,   0,   0,   0,   0,   0,   0, 
12119
336k
        0,   0,   0,   0,   0,   0,   0,   0, 
12120
336k
        0,   0,   0,   0,   0,   0,   0,   0, 
12121
336k
        0,   0,   0,   0,   0,   0,   0,   0, 
12122
336k
        0,   0,   0,   0,   0,   0,   0,   0, 
12123
336k
      128, 128, 128, 128, 128, 128, 128, 128, 
12124
336k
      128, 128,   0,   0,   0,   0,   0,   0, 
12125
336k
        0, 128, 128, 128, 128, 128, 128, 128, 
12126
336k
      128, 128, 128, 128, 128, 128, 128, 128, 
12127
336k
      128, 128, 128, 128, 128, 128, 128, 128, 
12128
336k
      128, 128, 128,   0,   0,   0,   0, 128, 
12129
336k
        0, 128, 128, 128, 128, 128, 128, 128, 
12130
336k
      128, 128, 128, 128, 128, 128, 128, 128, 
12131
336k
      128, 128, 128, 128, 128, 128, 128, 128, 
12132
336k
      128, 128, 128,   0,   0,   0,   0,   0, 
12133
336k
      128, 128, 128, 128, 128, 128, 128, 128, 
12134
336k
      128, 128, 128, 128, 128, 128, 128, 128, 
12135
336k
      128, 128, 128, 128, 128, 128, 128, 128, 
12136
336k
      128, 128, 128, 128, 128, 128, 128, 128, 
12137
336k
      128, 128, 128, 128, 128, 128, 128, 128, 
12138
336k
      128, 128, 128, 128, 128, 128, 128, 128, 
12139
336k
      128, 128, 128, 128, 128, 128, 128, 128, 
12140
336k
      128, 128, 128, 128, 128, 128, 128, 128, 
12141
336k
      128, 128, 128, 128, 128, 128, 128, 128, 
12142
336k
      128, 128, 128, 128, 128, 128, 128, 128, 
12143
336k
      128, 128, 128, 128, 128, 128, 128, 128, 
12144
336k
      128, 128, 128, 128, 128, 128, 128, 128, 
12145
336k
      128, 128, 128, 128, 128, 128, 128, 128, 
12146
336k
      128, 128, 128, 128, 128, 128, 128, 128, 
12147
336k
      128, 128, 128, 128, 128, 128, 128, 128, 
12148
336k
      128, 128, 128, 128, 128, 128, 128, 128, 
12149
336k
    };
12150
336k
    YYDEBUG(1046, *YYCURSOR);
12151
336k
    YYFILL(2);
12152
336k
    yych = *YYCURSOR;
12153
336k
    if (yych == '$') goto yy1050;
12154
157k
    if (yych == '{') goto yy1051;
12155
149k
    YYDEBUG(1048, *YYCURSOR);
12156
149k
    ++YYCURSOR;
12157
154k
yy1049:
12158
154k
    YYDEBUG(1049, *YYCURSOR);
12159
154k
    yyleng = YYCURSOR - SCNG(yy_text);
12160
154k
#line 2964 "Zend/zend_language_scanner.l"
12161
154k
    {
12162
154k
  zend_heredoc_label *heredoc_label = zend_ptr_stack_top(&SCNG(heredoc_label_stack));
12163
154k
  int newline = 0, indentation = 0, spacing = 0;
12164
12165
154k
  if (YYCURSOR > YYLIMIT) {
12166
6.13k
    RETURN_END_TOKEN;
12167
6.13k
  }
12168
12169
148k
  YYCURSOR--;
12170
12171
15.0M
  while (YYCURSOR < YYLIMIT) {
12172
15.0M
    switch (*YYCURSOR++) {
12173
44.0k
      case '\r':
12174
44.0k
        if (*YYCURSOR == '\n') {
12175
7.30k
          YYCURSOR++;
12176
7.30k
        }
12177
44.0k
        ZEND_FALLTHROUGH;
12178
504k
      case '\n':
12179
504k
        indentation = spacing = 0;
12180
12181
769k
        while (YYCURSOR < YYLIMIT && (*YYCURSOR == ' ' || *YYCURSOR == '\t')) {
12182
264k
          if (*YYCURSOR == '\t') {
12183
7.41k
            spacing |= HEREDOC_USING_TABS;
12184
257k
          } else {
12185
257k
            spacing |= HEREDOC_USING_SPACES;
12186
257k
          }
12187
264k
          ++YYCURSOR;
12188
264k
          ++indentation;
12189
264k
        }
12190
12191
504k
        if (YYCURSOR == YYLIMIT) {
12192
145
          yyleng = YYCURSOR - SCNG(yy_text);
12193
145
          HANDLE_NEWLINES(yytext, yyleng);
12194
145
          ZVAL_NULL(zendlval);
12195
145
          RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
12196
145
        }
12197
12198
        /* Check for ending label on the next line */
12199
504k
        if (IS_LABEL_START(*YYCURSOR) && heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, heredoc_label->label, heredoc_label->length)) {
12200
8.97k
          if (IS_LABEL_SUCCESSOR(YYCURSOR[heredoc_label->length])) {
12201
4.63k
            continue;
12202
4.63k
          }
12203
12204
4.34k
          if (spacing == (HEREDOC_USING_SPACES | HEREDOC_USING_TABS)) {
12205
0
            zend_throw_exception(zend_ce_parse_error, "Invalid indentation - tabs and spaces cannot be mixed", 0);
12206
0
            if (PARSER_MODE()) {
12207
0
              RETURN_TOKEN(T_ERROR);
12208
0
            }
12209
0
          }
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
4.34k
          if (YYCURSOR[-indentation - 2] == '\r' && YYCURSOR[-indentation - 1] == '\n') {
12214
36
            newline = 2; /* Windows newline */
12215
4.31k
          } else {
12216
4.31k
            newline = 1;
12217
4.31k
          }
12218
12219
4.34k
          CG(increment_lineno) = 1; /* For newline before label */
12220
12221
4.34k
          if (SCNG(heredoc_scan_ahead)) {
12222
2.27k
            SCNG(heredoc_indentation) = indentation;
12223
2.27k
            SCNG(heredoc_indentation_uses_spaces) = (spacing == HEREDOC_USING_SPACES);
12224
2.27k
          } else {
12225
2.07k
            YYCURSOR -= indentation;
12226
2.07k
          }
12227
12228
4.34k
          BEGIN(ST_END_HEREDOC);
12229
12230
4.34k
          goto heredoc_scan_done;
12231
4.34k
        }
12232
495k
        continue;
12233
495k
      case '$':
12234
201k
        if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
12235
136k
          break;
12236
136k
        }
12237
65.1k
        continue;
12238
65.1k
      case '{':
12239
58.8k
        if (*YYCURSOR == '$') {
12240
1.30k
          break;
12241
1.30k
        }
12242
57.5k
        continue;
12243
74.4k
      case '\\':
12244
74.4k
        if (YYCURSOR < YYLIMIT && *YYCURSOR != '\n' && *YYCURSOR != '\r') {
12245
73.7k
          YYCURSOR++;
12246
73.7k
        }
12247
74.4k
        ZEND_FALLTHROUGH;
12248
14.2M
      default:
12249
14.2M
        continue;
12250
15.0M
    }
12251
12252
137k
    YYCURSOR--;
12253
137k
    break;
12254
15.0M
  }
12255
12256
147k
heredoc_scan_done:
12257
12258
147k
  yyleng = YYCURSOR - SCNG(yy_text);
12259
147k
  ZVAL_STRINGL(zendlval, yytext, yyleng - newline);
12260
12261
147k
  if (!SCNG(heredoc_scan_ahead) && !EG(exception) && PARSER_MODE()) {
12262
41.6k
    bool newline_at_start = *(yytext - 1) == '\n' || *(yytext - 1) == '\r';
12263
41.6k
    zend_string *copy = Z_STR_P(zendlval);
12264
12265
41.6k
    if (!strip_multiline_string_indentation(
12266
41.6k
        zendlval, heredoc_label->indentation, heredoc_label->indentation_uses_spaces,
12267
41.6k
        newline_at_start, newline != 0)) {
12268
0
      RETURN_TOKEN(T_ERROR);
12269
0
    }
12270
12271
41.6k
    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
41.6k
    zend_string_efree(copy);
12277
106k
  } else {
12278
106k
    HANDLE_NEWLINES(yytext, yyleng - newline);
12279
106k
  }
12280
12281
147k
  RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
12282
147k
}
12283
0
#line 12284 "Zend/zend_language_scanner.c"
12284
178k
yy1050:
12285
178k
    YYDEBUG(1050, *YYCURSOR);
12286
178k
    yych = *++YYCURSOR;
12287
178k
    if (yych <= '_') {
12288
9.37k
      if (yych <= '@') goto yy1049;
12289
5.89k
      if (yych <= 'Z') goto yy1052;
12290
1.16k
      if (yych <= '^') goto yy1049;
12291
865
      goto yy1052;
12292
169k
    } else {
12293
169k
      if (yych <= 'z') {
12294
84.4k
        if (yych <= '`') goto yy1049;
12295
84.4k
        goto yy1052;
12296
85.1k
      } else {
12297
85.1k
        if (yych <= '{') goto yy1055;
12298
8.25k
        if (yych <= 0x7F) goto yy1049;
12299
8.22k
        goto yy1052;
12300
8.25k
      }
12301
169k
    }
12302
8.23k
yy1051:
12303
8.23k
    YYDEBUG(1051, *YYCURSOR);
12304
8.23k
    yych = *++YYCURSOR;
12305
8.23k
    if (yych == '$') goto yy1057;
12306
1.03k
    goto yy1049;
12307
418k
yy1052:
12308
418k
    YYDEBUG(1052, *YYCURSOR);
12309
418k
    YYMARKER = ++YYCURSOR;
12310
418k
    YYFILL(4);
12311
418k
    yych = *YYCURSOR;
12312
418k
    YYDEBUG(1053, *YYCURSOR);
12313
418k
    if (yybm[0+yych] & 128) {
12314
320k
      goto yy1052;
12315
320k
    }
12316
98.2k
    if (yych <= '>') {
12317
61.2k
      if (yych == '-') goto yy1059;
12318
61.2k
    } else {
12319
36.9k
      if (yych <= '?') goto yy1061;
12320
5.21k
      if (yych <= '@') goto yy1054;
12321
4.80k
      if (yych <= '[') goto yy1062;
12322
4.80k
    }
12323
76.6k
yy1054:
12324
76.6k
    YYDEBUG(1054, *YYCURSOR);
12325
76.6k
    yyleng = YYCURSOR - SCNG(yy_text);
12326
76.6k
#line 2416 "Zend/zend_language_scanner.l"
12327
76.6k
    {
12328
76.6k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12329
76.6k
}
12330
0
#line 12331 "Zend/zend_language_scanner.c"
12331
76.9k
yy1055:
12332
76.9k
    YYDEBUG(1055, *YYCURSOR);
12333
76.9k
    ++YYCURSOR;
12334
76.9k
    YYDEBUG(1056, *YYCURSOR);
12335
76.9k
    yyleng = YYCURSOR - SCNG(yy_text);
12336
76.9k
#line 1980 "Zend/zend_language_scanner.l"
12337
76.9k
    {
12338
76.9k
  yy_push_state(ST_LOOKING_FOR_VARNAME);
12339
76.9k
  enter_nesting('{');
12340
76.9k
  RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES);
12341
76.9k
}
12342
0
#line 12343 "Zend/zend_language_scanner.c"
12343
7.19k
yy1057:
12344
7.19k
    YYDEBUG(1057, *YYCURSOR);
12345
7.19k
    ++YYCURSOR;
12346
7.19k
    YYDEBUG(1058, *YYCURSOR);
12347
7.19k
    yyleng = YYCURSOR - SCNG(yy_text);
12348
7.19k
#line 2845 "Zend/zend_language_scanner.l"
12349
7.19k
    {
12350
7.19k
  yy_push_state(ST_IN_SCRIPTING);
12351
7.19k
  yyless(1);
12352
7.19k
  enter_nesting('{');
12353
7.19k
  RETURN_TOKEN(T_CURLY_OPEN);
12354
7.19k
}
12355
0
#line 12356 "Zend/zend_language_scanner.c"
12356
7.52k
yy1059:
12357
7.52k
    YYDEBUG(1059, *YYCURSOR);
12358
7.52k
    yych = *++YYCURSOR;
12359
7.52k
    if (yych == '>') goto yy1064;
12360
20.4k
yy1060:
12361
20.4k
    YYDEBUG(1060, *YYCURSOR);
12362
20.4k
    YYCURSOR = YYMARKER;
12363
20.4k
    goto yy1054;
12364
31.7k
yy1061:
12365
31.7k
    YYDEBUG(1061, *YYCURSOR);
12366
31.7k
    yych = *++YYCURSOR;
12367
31.7k
    if (yych == '-') goto yy1065;
12368
16.6k
    goto yy1060;
12369
16.6k
yy1062:
12370
2.79k
    YYDEBUG(1062, *YYCURSOR);
12371
2.79k
    ++YYCURSOR;
12372
2.79k
    YYDEBUG(1063, *YYCURSOR);
12373
2.79k
    yyleng = YYCURSOR - SCNG(yy_text);
12374
2.79k
#line 2410 "Zend/zend_language_scanner.l"
12375
2.79k
    {
12376
2.79k
  yyless(yyleng - 1);
12377
2.79k
  yy_push_state(ST_VAR_OFFSET);
12378
2.79k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12379
2.79k
}
12380
0
#line 12381 "Zend/zend_language_scanner.c"
12381
5.78k
yy1064:
12382
5.78k
    YYDEBUG(1064, *YYCURSOR);
12383
5.78k
    yych = *++YYCURSOR;
12384
5.78k
    if (yych <= '_') {
12385
2.81k
      if (yych <= '@') goto yy1060;
12386
2.01k
      if (yych <= 'Z') goto yy1066;
12387
226
      if (yych <= '^') goto yy1060;
12388
182
      goto yy1066;
12389
2.97k
    } else {
12390
2.97k
      if (yych <= '`') goto yy1060;
12391
2.94k
      if (yych <= 'z') goto yy1066;
12392
153
      if (yych <= 0x7F) goto yy1060;
12393
59
      goto yy1066;
12394
153
    }
12395
15.0k
yy1065:
12396
15.0k
    YYDEBUG(1065, *YYCURSOR);
12397
15.0k
    yych = *++YYCURSOR;
12398
15.0k
    if (yych == '>') goto yy1068;
12399
830
    goto yy1060;
12400
4.81k
yy1066:
12401
4.81k
    YYDEBUG(1066, *YYCURSOR);
12402
4.81k
    ++YYCURSOR;
12403
4.81k
    YYDEBUG(1067, *YYCURSOR);
12404
4.81k
    yyleng = YYCURSOR - SCNG(yy_text);
12405
4.81k
#line 2396 "Zend/zend_language_scanner.l"
12406
4.81k
    {
12407
4.81k
  yyless(yyleng - 3);
12408
4.81k
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
12409
4.81k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12410
4.81k
}
12411
0
#line 12412 "Zend/zend_language_scanner.c"
12412
14.2k
yy1068:
12413
14.2k
    YYDEBUG(1068, *YYCURSOR);
12414
14.2k
    yych = *++YYCURSOR;
12415
14.2k
    if (yych <= '_') {
12416
346
      if (yych <= '@') goto yy1060;
12417
52
      if (yych <= 'Z') goto yy1069;
12418
32
      if (yych <= '^') goto yy1060;
12419
13.9k
    } else {
12420
13.9k
      if (yych <= '`') goto yy1060;
12421
13.9k
      if (yych <= 'z') goto yy1069;
12422
54
      if (yych <= 0x7F) goto yy1060;
12423
54
    }
12424
13.9k
yy1069:
12425
13.9k
    YYDEBUG(1069, *YYCURSOR);
12426
13.9k
    ++YYCURSOR;
12427
13.9k
    YYDEBUG(1070, *YYCURSOR);
12428
13.9k
    yyleng = YYCURSOR - SCNG(yy_text);
12429
13.9k
#line 2402 "Zend/zend_language_scanner.l"
12430
13.9k
    {
12431
13.9k
  yyless(yyleng - 4);
12432
13.9k
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
12433
13.9k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12434
13.9k
}
12435
13.9k
#line 12436 "Zend/zend_language_scanner.c"
12436
13.9k
  }
12437
/* *********************************** */
12438
85.1k
yyc_ST_LOOKING_FOR_VARNAME:
12439
85.1k
  {
12440
85.1k
    static const unsigned char yybm[] = {
12441
85.1k
        0,   0,   0,   0,   0,   0,   0,   0, 
12442
85.1k
        0,   0,   0,   0,   0,   0,   0,   0, 
12443
85.1k
        0,   0,   0,   0,   0,   0,   0,   0, 
12444
85.1k
        0,   0,   0,   0,   0,   0,   0,   0, 
12445
85.1k
        0,   0,   0,   0,   0,   0,   0,   0, 
12446
85.1k
        0,   0,   0,   0,   0,   0,   0,   0, 
12447
85.1k
      128, 128, 128, 128, 128, 128, 128, 128, 
12448
85.1k
      128, 128,   0,   0,   0,   0,   0,   0, 
12449
85.1k
        0, 128, 128, 128, 128, 128, 128, 128, 
12450
85.1k
      128, 128, 128, 128, 128, 128, 128, 128, 
12451
85.1k
      128, 128, 128, 128, 128, 128, 128, 128, 
12452
85.1k
      128, 128, 128,   0,   0,   0,   0, 128, 
12453
85.1k
        0, 128, 128, 128, 128, 128, 128, 128, 
12454
85.1k
      128, 128, 128, 128, 128, 128, 128, 128, 
12455
85.1k
      128, 128, 128, 128, 128, 128, 128, 128, 
12456
85.1k
      128, 128, 128,   0,   0,   0,   0,   0, 
12457
85.1k
      128, 128, 128, 128, 128, 128, 128, 128, 
12458
85.1k
      128, 128, 128, 128, 128, 128, 128, 128, 
12459
85.1k
      128, 128, 128, 128, 128, 128, 128, 128, 
12460
85.1k
      128, 128, 128, 128, 128, 128, 128, 128, 
12461
85.1k
      128, 128, 128, 128, 128, 128, 128, 128, 
12462
85.1k
      128, 128, 128, 128, 128, 128, 128, 128, 
12463
85.1k
      128, 128, 128, 128, 128, 128, 128, 128, 
12464
85.1k
      128, 128, 128, 128, 128, 128, 128, 128, 
12465
85.1k
      128, 128, 128, 128, 128, 128, 128, 128, 
12466
85.1k
      128, 128, 128, 128, 128, 128, 128, 128, 
12467
85.1k
      128, 128, 128, 128, 128, 128, 128, 128, 
12468
85.1k
      128, 128, 128, 128, 128, 128, 128, 128, 
12469
85.1k
      128, 128, 128, 128, 128, 128, 128, 128, 
12470
85.1k
      128, 128, 128, 128, 128, 128, 128, 128, 
12471
85.1k
      128, 128, 128, 128, 128, 128, 128, 128, 
12472
85.1k
      128, 128, 128, 128, 128, 128, 128, 128, 
12473
85.1k
    };
12474
85.1k
    YYDEBUG(1071, *YYCURSOR);
12475
85.1k
    YYFILL(2);
12476
85.1k
    yych = *YYCURSOR;
12477
85.1k
    if (yych <= '_') {
12478
64.1k
      if (yych <= '@') goto yy1073;
12479
2.77k
      if (yych <= 'Z') goto yy1075;
12480
184
      if (yych >= '_') goto yy1075;
12481
20.9k
    } else {
12482
20.9k
      if (yych <= '`') goto yy1073;
12483
20.9k
      if (yych <= 'z') goto yy1075;
12484
1.32k
      if (yych >= 0x80) goto yy1075;
12485
1.32k
    }
12486
61.8k
yy1073:
12487
61.8k
    YYDEBUG(1073, *YYCURSOR);
12488
61.8k
    ++YYCURSOR;
12489
84.9k
yy1074:
12490
84.9k
    YYDEBUG(1074, *YYCURSOR);
12491
84.9k
    yyleng = YYCURSOR - SCNG(yy_text);
12492
84.9k
#line 2003 "Zend/zend_language_scanner.l"
12493
84.9k
    {
12494
84.9k
  yyless(0);
12495
84.9k
  yy_pop_state();
12496
84.9k
  yy_push_state(ST_IN_SCRIPTING);
12497
84.9k
  goto restart;
12498
61.8k
}
12499
0
#line 12500 "Zend/zend_language_scanner.c"
12500
23.2k
yy1075:
12501
23.2k
    YYDEBUG(1075, *YYCURSOR);
12502
23.2k
    yych = *(YYMARKER = ++YYCURSOR);
12503
23.2k
    if (yych <= '_') {
12504
6.09k
      if (yych <= '@') {
12505
3.77k
        if (yych <= '/') goto yy1074;
12506
3.31k
        if (yych <= '9') goto yy1077;
12507
2.97k
        goto yy1074;
12508
3.31k
      } else {
12509
2.31k
        if (yych <= '[') goto yy1077;
12510
408
        if (yych <= '^') goto yy1074;
12511
242
        goto yy1077;
12512
408
      }
12513
17.1k
    } else {
12514
17.1k
      if (yych <= '|') {
12515
16.0k
        if (yych <= '`') goto yy1074;
12516
16.0k
        if (yych <= 'z') goto yy1077;
12517
6
        goto yy1074;
12518
16.0k
      } else {
12519
1.15k
        if (yych <= '}') goto yy1077;
12520
1.01k
        if (yych <= 0x7F) goto yy1074;
12521
1.01k
        goto yy1077;
12522
1.01k
      }
12523
17.1k
    }
12524
55.9k
yy1076:
12525
55.9k
    YYDEBUG(1076, *YYCURSOR);
12526
55.9k
    ++YYCURSOR;
12527
55.9k
    YYFILL(1);
12528
55.9k
    yych = *YYCURSOR;
12529
75.6k
yy1077:
12530
75.6k
    YYDEBUG(1077, *YYCURSOR);
12531
75.6k
    if (yybm[0+yych] & 128) {
12532
55.9k
      goto yy1076;
12533
55.9k
    }
12534
19.6k
    if (yych <= '@') goto yy1078;
12535
220
    if (yych <= '[') goto yy1079;
12536
187
    if (yych == '}') goto yy1079;
12537
19.4k
yy1078:
12538
19.4k
    YYDEBUG(1078, *YYCURSOR);
12539
19.4k
    YYCURSOR = YYMARKER;
12540
19.4k
    goto yy1074;
12541
207
yy1079:
12542
207
    YYDEBUG(1079, *YYCURSOR);
12543
207
    ++YYCURSOR;
12544
207
    YYDEBUG(1080, *YYCURSOR);
12545
207
    yyleng = YYCURSOR - SCNG(yy_text);
12546
207
#line 1995 "Zend/zend_language_scanner.l"
12547
207
    {
12548
207
  yyless(yyleng - 1);
12549
207
  yy_pop_state();
12550
207
  yy_push_state(ST_IN_SCRIPTING);
12551
207
  RETURN_TOKEN_WITH_STR(T_STRING_VARNAME, 0);
12552
207
}
12553
207
#line 12554 "Zend/zend_language_scanner.c"
12554
207
  }
12555
/* *********************************** */
12556
25.5k
yyc_ST_VAR_OFFSET:
12557
25.5k
  {
12558
25.5k
    static const unsigned char yybm[] = {
12559
25.5k
        0,   0,   0,   0,   0,   0,   0,   0, 
12560
25.5k
        0,   0,   0,   0,   0,   0,   0,   0, 
12561
25.5k
        0,   0,   0,   0,   0,   0,   0,   0, 
12562
25.5k
        0,   0,   0,   0,   0,   0,   0,   0, 
12563
25.5k
        0,   0,   0,   0,   0,   0,   0,   0, 
12564
25.5k
        0,   0,   0,   0,   0,   0,   0,   0, 
12565
25.5k
      248, 248, 216, 216, 216, 216, 216, 216, 
12566
25.5k
      152, 152,   0,   0,   0,   0,   0,   0, 
12567
25.5k
        0, 144, 144, 144, 144, 144, 144,  16, 
12568
25.5k
       16,  16,  16,  16,  16,  16,  16,  16, 
12569
25.5k
       16,  16,  16,  16,  16,  16,  16,  16, 
12570
25.5k
       16,  16,  16,   0,   0,   0,   0,  16, 
12571
25.5k
        0, 144, 144, 144, 144, 144, 144,  16, 
12572
25.5k
       16,  16,  16,  16,  16,  16,  16,  16, 
12573
25.5k
       16,  16,  16,  16,  16,  16,  16,  16, 
12574
25.5k
       16,  16,  16,   0,   0,   0,   0,   0, 
12575
25.5k
       16,  16,  16,  16,  16,  16,  16,  16, 
12576
25.5k
       16,  16,  16,  16,  16,  16,  16,  16, 
12577
25.5k
       16,  16,  16,  16,  16,  16,  16,  16, 
12578
25.5k
       16,  16,  16,  16,  16,  16,  16,  16, 
12579
25.5k
       16,  16,  16,  16,  16,  16,  16,  16, 
12580
25.5k
       16,  16,  16,  16,  16,  16,  16,  16, 
12581
25.5k
       16,  16,  16,  16,  16,  16,  16,  16, 
12582
25.5k
       16,  16,  16,  16,  16,  16,  16,  16, 
12583
25.5k
       16,  16,  16,  16,  16,  16,  16,  16, 
12584
25.5k
       16,  16,  16,  16,  16,  16,  16,  16, 
12585
25.5k
       16,  16,  16,  16,  16,  16,  16,  16, 
12586
25.5k
       16,  16,  16,  16,  16,  16,  16,  16, 
12587
25.5k
       16,  16,  16,  16,  16,  16,  16,  16, 
12588
25.5k
       16,  16,  16,  16,  16,  16,  16,  16, 
12589
25.5k
       16,  16,  16,  16,  16,  16,  16,  16, 
12590
25.5k
       16,  16,  16,  16,  16,  16,  16,  16, 
12591
25.5k
    };
12592
25.5k
    YYDEBUG(1081, *YYCURSOR);
12593
25.5k
    YYFILL(2);
12594
25.5k
    yych = *YYCURSOR;
12595
25.5k
    if (yych <= '0') {
12596
10.0k
      if (yych <= ' ') {
12597
4.26k
        if (yych <= '\f') {
12598
3.31k
          if (yych <= 0x08) goto yy1083;
12599
235
          if (yych <= '\n') goto yy1085;
12600
949
        } else {
12601
949
          if (yych <= '\r') goto yy1085;
12602
930
          if (yych >= ' ') goto yy1085;
12603
930
        }
12604
5.80k
      } else {
12605
5.80k
        if (yych <= '$') {
12606
2.31k
          if (yych <= '"') goto yy1087;
12607
1.12k
          if (yych <= '#') goto yy1085;
12608
1.10k
          goto yy1089;
12609
3.48k
        } else {
12610
3.48k
          if (yych == '\'') goto yy1085;
12611
3.39k
          if (yych <= '/') goto yy1087;
12612
1.82k
          goto yy1090;
12613
3.39k
        }
12614
5.80k
      }
12615
15.4k
    } else {
12616
15.4k
      if (yych <= ']') {
12617
11.6k
        if (yych <= 'Z') {
12618
2.74k
          if (yych <= '9') goto yy1092;
12619
1.83k
          if (yych <= '@') goto yy1087;
12620
311
          goto yy1094;
12621
8.88k
        } else {
12622
8.88k
          if (yych <= '[') goto yy1087;
12623
3.59k
          if (yych <= '\\') goto yy1085;
12624
3.56k
          goto yy1097;
12625
3.59k
        }
12626
11.6k
      } else {
12627
3.80k
        if (yych <= '`') {
12628
160
          if (yych == '_') goto yy1094;
12629
120
          goto yy1087;
12630
3.64k
        } else {
12631
3.64k
          if (yych <= 'z') goto yy1094;
12632
1.76k
          if (yych <= '~') goto yy1087;
12633
941
          if (yych >= 0x80) goto yy1094;
12634
941
        }
12635
3.80k
      }
12636
15.4k
    }
12637
3.48k
yy1083:
12638
3.48k
    YYDEBUG(1083, *YYCURSOR);
12639
3.48k
    ++YYCURSOR;
12640
3.48k
    YYDEBUG(1084, *YYCURSOR);
12641
3.48k
    yyleng = YYCURSOR - SCNG(yy_text);
12642
3.48k
#line 3179 "Zend/zend_language_scanner.l"
12643
3.48k
    {
12644
3.48k
  if (YYCURSOR > YYLIMIT) {
12645
175
    RETURN_END_TOKEN;
12646
175
  }
12647
12648
3.30k
  RETURN_TOKEN(T_BAD_CHARACTER);
12649
3.30k
}
12650
0
#line 12651 "Zend/zend_language_scanner.c"
12651
931
yy1085:
12652
931
    YYDEBUG(1085, *YYCURSOR);
12653
931
    ++YYCURSOR;
12654
931
    YYDEBUG(1086, *YYCURSOR);
12655
931
    yyleng = YYCURSOR - SCNG(yy_text);
12656
931
#line 2430 "Zend/zend_language_scanner.l"
12657
931
    {
12658
  /* Invalid rule to return a more explicit parse error with proper line number */
12659
931
  yyless(0);
12660
931
  yy_pop_state();
12661
931
  ZVAL_NULL(zendlval);
12662
931
  RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
12663
931
}
12664
0
#line 12665 "Zend/zend_language_scanner.c"
12665
10.5k
yy1087:
12666
10.5k
    YYDEBUG(1087, *YYCURSOR);
12667
10.5k
    ++YYCURSOR;
12668
10.9k
yy1088:
12669
10.9k
    YYDEBUG(1088, *YYCURSOR);
12670
10.9k
    yyleng = YYCURSOR - SCNG(yy_text);
12671
10.9k
#line 2425 "Zend/zend_language_scanner.l"
12672
10.9k
    {
12673
  /* Only '[' or '-' can be valid, but returning other tokens will allow a more explicit parse error */
12674
10.9k
  RETURN_TOKEN(yytext[0]);
12675
10.9k
}
12676
0
#line 12677 "Zend/zend_language_scanner.c"
12677
1.10k
yy1089:
12678
1.10k
    YYDEBUG(1089, *YYCURSOR);
12679
1.10k
    yych = *++YYCURSOR;
12680
1.10k
    if (yych <= '_') {
12681
43
      if (yych <= '@') goto yy1088;
12682
22
      if (yych <= 'Z') goto yy1099;
12683
0
      if (yych <= '^') goto yy1088;
12684
0
      goto yy1099;
12685
1.06k
    } else {
12686
1.06k
      if (yych <= '`') goto yy1088;
12687
1.06k
      if (yych <= 'z') goto yy1099;
12688
473
      if (yych <= 0x7F) goto yy1088;
12689
64
      goto yy1099;
12690
473
    }
12691
1.82k
yy1090:
12692
1.82k
    YYDEBUG(1090, *YYCURSOR);
12693
1.82k
    yyaccept = 0;
12694
1.82k
    yych = *(YYMARKER = ++YYCURSOR);
12695
1.82k
    if (yych <= 'X') {
12696
332
      if (yych <= 'B') {
12697
186
        if (yych <= '/') goto yy1091;
12698
166
        if (yych <= '9') goto yy1102;
12699
100
        if (yych >= 'B') goto yy1105;
12700
146
      } else {
12701
146
        if (yych == 'O') goto yy1107;
12702
142
        if (yych >= 'X') goto yy1108;
12703
142
      }
12704
1.48k
    } else {
12705
1.48k
      if (yych <= 'b') {
12706
1.13k
        if (yych == '_') goto yy1109;
12707
1.12k
        if (yych >= 'b') goto yy1105;
12708
1.12k
      } else {
12709
357
        if (yych <= 'o') {
12710
8
          if (yych >= 'o') goto yy1107;
12711
349
        } else {
12712
349
          if (yych == 'x') goto yy1108;
12713
349
        }
12714
357
      }
12715
1.48k
    }
12716
2.48k
yy1091:
12717
2.48k
    YYDEBUG(1091, *YYCURSOR);
12718
2.48k
    yyleng = YYCURSOR - SCNG(yy_text);
12719
2.48k
#line 2207 "Zend/zend_language_scanner.l"
12720
2.48k
    { /* Offset could be treated as a long */
12721
2.48k
  if (yyleng < MAX_LENGTH_OF_LONG - 1 || (yyleng == MAX_LENGTH_OF_LONG - 1 && strcmp(yytext, long_min_digits) < 0)) {
12722
2.41k
    char *end;
12723
2.41k
    errno = 0;
12724
2.41k
    ZVAL_LONG(zendlval, ZEND_STRTOL(yytext, &end, 10));
12725
2.41k
    if (errno == ERANGE) {
12726
0
      goto string;
12727
0
    }
12728
2.41k
    ZEND_ASSERT(end == yytext + yyleng);
12729
2.41k
  } else {
12730
72
string:
12731
72
    ZVAL_STRINGL(zendlval, yytext, yyleng);
12732
72
  }
12733
2.48k
  RETURN_TOKEN_WITH_VAL(T_NUM_STRING);
12734
2.48k
}
12735
0
#line 12736 "Zend/zend_language_scanner.c"
12736
3.42k
yy1092:
12737
3.42k
    YYDEBUG(1092, *YYCURSOR);
12738
3.42k
    yyaccept = 0;
12739
3.42k
    YYMARKER = ++YYCURSOR;
12740
3.42k
    YYFILL(1);
12741
3.42k
    yych = *YYCURSOR;
12742
3.42k
    YYDEBUG(1093, *YYCURSOR);
12743
3.42k
    if (yybm[0+yych] & 8) {
12744
2.51k
      goto yy1092;
12745
2.51k
    }
12746
915
    if (yych == '_') goto yy1109;
12747
895
    goto yy1091;
12748
33.5k
yy1094:
12749
33.5k
    YYDEBUG(1094, *YYCURSOR);
12750
33.5k
    ++YYCURSOR;
12751
33.5k
    YYFILL(1);
12752
33.5k
    yych = *YYCURSOR;
12753
33.5k
    YYDEBUG(1095, *YYCURSOR);
12754
33.5k
    if (yybm[0+yych] & 16) {
12755
30.3k
      goto yy1094;
12756
30.3k
    }
12757
3.17k
    YYDEBUG(1096, *YYCURSOR);
12758
3.17k
    yyleng = YYCURSOR - SCNG(yy_text);
12759
3.17k
#line 2454 "Zend/zend_language_scanner.l"
12760
3.17k
    {
12761
3.17k
  RETURN_TOKEN_WITH_STR(T_STRING, 0);
12762
3.17k
}
12763
0
#line 12764 "Zend/zend_language_scanner.c"
12764
3.56k
yy1097:
12765
3.56k
    YYDEBUG(1097, *YYCURSOR);
12766
3.56k
    ++YYCURSOR;
12767
3.56k
    YYDEBUG(1098, *YYCURSOR);
12768
3.56k
    yyleng = YYCURSOR - SCNG(yy_text);
12769
3.56k
#line 2420 "Zend/zend_language_scanner.l"
12770
3.56k
    {
12771
3.56k
  yy_pop_state();
12772
3.56k
  RETURN_TOKEN(']');
12773
3.56k
}
12774
0
#line 12775 "Zend/zend_language_scanner.c"
12775
4.49k
yy1099:
12776
4.49k
    YYDEBUG(1099, *YYCURSOR);
12777
4.49k
    ++YYCURSOR;
12778
4.49k
    YYFILL(1);
12779
4.49k
    yych = *YYCURSOR;
12780
4.49k
    YYDEBUG(1100, *YYCURSOR);
12781
4.49k
    if (yych <= '^') {
12782
945
      if (yych <= '9') {
12783
168
        if (yych >= '0') goto yy1099;
12784
777
      } else {
12785
777
        if (yych <= '@') goto yy1101;
12786
777
        if (yych <= 'Z') goto yy1099;
12787
777
      }
12788
3.55k
    } else {
12789
3.55k
      if (yych <= '`') {
12790
116
        if (yych <= '_') goto yy1099;
12791
3.43k
      } else {
12792
3.43k
        if (yych <= 'z') goto yy1099;
12793
1.90k
        if (yych >= 0x80) goto yy1099;
12794
1.90k
      }
12795
3.55k
    }
12796
677
yy1101:
12797
677
    YYDEBUG(1101, *YYCURSOR);
12798
677
    yyleng = YYCURSOR - SCNG(yy_text);
12799
677
#line 2416 "Zend/zend_language_scanner.l"
12800
677
    {
12801
677
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12802
677
}
12803
0
#line 12804 "Zend/zend_language_scanner.c"
12804
106
yy1102:
12805
106
    YYDEBUG(1102, *YYCURSOR);
12806
106
    yyaccept = 1;
12807
106
    YYMARKER = ++YYCURSOR;
12808
106
    YYFILL(1);
12809
106
    yych = *YYCURSOR;
12810
106
    YYDEBUG(1103, *YYCURSOR);
12811
106
    if (yych <= '/') goto yy1104;
12812
92
    if (yych <= '9') goto yy1102;
12813
52
    if (yych == '_') goto yy1109;
12814
252
yy1104:
12815
252
    YYDEBUG(1104, *YYCURSOR);
12816
252
    yyleng = YYCURSOR - SCNG(yy_text);
12817
252
#line 2223 "Zend/zend_language_scanner.l"
12818
252
    { /* Offset must be treated as a string */
12819
252
  if (yyleng == 1) {
12820
0
    ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR((zend_uchar)*(yytext)));
12821
252
  } else {
12822
252
    ZVAL_STRINGL(zendlval, yytext, yyleng);
12823
252
  }
12824
252
  RETURN_TOKEN_WITH_VAL(T_NUM_STRING);
12825
252
}
12826
0
#line 12827 "Zend/zend_language_scanner.c"
12827
0
yy1105:
12828
0
    YYDEBUG(1105, *YYCURSOR);
12829
0
    ++YYCURSOR;
12830
0
    YYFILL(1);
12831
0
    yych = *YYCURSOR;
12832
0
    if (yybm[0+yych] & 32) {
12833
0
      goto yy1110;
12834
0
    }
12835
28
yy1106:
12836
28
    YYDEBUG(1106, *YYCURSOR);
12837
28
    YYCURSOR = YYMARKER;
12838
28
    if (yyaccept == 0) {
12839
28
      goto yy1091;
12840
28
    } else {
12841
0
      goto yy1104;
12842
0
    }
12843
4
yy1107:
12844
4
    YYDEBUG(1107, *YYCURSOR);
12845
4
    ++YYCURSOR;
12846
4
    YYFILL(1);
12847
4
    yych = *YYCURSOR;
12848
4
    if (yybm[0+yych] & 64) {
12849
4
      goto yy1112;
12850
4
    }
12851
0
    goto yy1106;
12852
186
yy1108:
12853
186
    YYDEBUG(1108, *YYCURSOR);
12854
186
    ++YYCURSOR;
12855
186
    YYFILL(1);
12856
186
    yych = *YYCURSOR;
12857
186
    if (yybm[0+yych] & 128) {
12858
182
      goto yy1114;
12859
182
    }
12860
4
    goto yy1106;
12861
24
yy1109:
12862
24
    YYDEBUG(1109, *YYCURSOR);
12863
24
    ++YYCURSOR;
12864
24
    YYFILL(1);
12865
24
    yych = *YYCURSOR;
12866
24
    if (yych <= '/') goto yy1106;
12867
24
    if (yych <= '9') goto yy1102;
12868
24
    goto yy1106;
12869
24
yy1110:
12870
0
    YYDEBUG(1110, *YYCURSOR);
12871
0
    yyaccept = 1;
12872
0
    YYMARKER = ++YYCURSOR;
12873
0
    YYFILL(1);
12874
0
    yych = *YYCURSOR;
12875
0
    YYDEBUG(1111, *YYCURSOR);
12876
0
    if (yybm[0+yych] & 32) {
12877
0
      goto yy1110;
12878
0
    }
12879
0
    if (yych == '_') goto yy1105;
12880
0
    goto yy1104;
12881
20
yy1112:
12882
20
    YYDEBUG(1112, *YYCURSOR);
12883
20
    yyaccept = 1;
12884
20
    YYMARKER = ++YYCURSOR;
12885
20
    YYFILL(1);
12886
20
    yych = *YYCURSOR;
12887
20
    YYDEBUG(1113, *YYCURSOR);
12888
20
    if (yybm[0+yych] & 64) {
12889
16
      goto yy1112;
12890
16
    }
12891
4
    if (yych == '_') goto yy1107;
12892
4
    goto yy1104;
12893
210
yy1114:
12894
210
    YYDEBUG(1114, *YYCURSOR);
12895
210
    yyaccept = 1;
12896
210
    YYMARKER = ++YYCURSOR;
12897
210
    YYFILL(1);
12898
210
    yych = *YYCURSOR;
12899
210
    YYDEBUG(1115, *YYCURSOR);
12900
210
    if (yybm[0+yych] & 128) {
12901
28
      goto yy1114;
12902
28
    }
12903
182
    if (yych == '_') goto yy1108;
12904
182
    goto yy1104;
12905
182
  }
12906
/* *********************************** */
12907
182
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
116k
yyc_INITIAL:
12986
116k
  YYDEBUG(1125, *YYCURSOR);
12987
116k
  YYFILL(7);
12988
116k
  yych = *YYCURSOR;
12989
116k
  if (yych == '<') goto yy1129;
12990
65.5k
  YYDEBUG(1127, *YYCURSOR);
12991
65.5k
  ++YYCURSOR;
12992
66.2k
yy1128:
12993
66.2k
  YYDEBUG(1128, *YYCURSOR);
12994
66.2k
  yyleng = YYCURSOR - SCNG(yy_text);
12995
66.2k
#line 2340 "Zend/zend_language_scanner.l"
12996
66.2k
  {
12997
66.2k
  if (YYCURSOR > YYLIMIT) {
12998
22.0k
    RETURN_END_TOKEN;
12999
22.0k
  }
13000
13001
44.2k
inline_char_handler:
13002
13003
124k
  while (1) {
13004
124k
    YYCTYPE *ptr = memchr(YYCURSOR, '<', YYLIMIT - YYCURSOR);
13005
13006
124k
    YYCURSOR = ptr ? ptr + 1 : YYLIMIT;
13007
13008
124k
    if (YYCURSOR >= YYLIMIT) {
13009
11.1k
      break;
13010
11.1k
    }
13011
13012
113k
    if (*YYCURSOR == '?') {
13013
33.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
33.0k
      ) {
13020
33.0k
        YYCURSOR--;
13021
33.0k
        break;
13022
33.0k
      }
13023
33.0k
    }
13024
113k
  }
13025
13026
44.2k
  yyleng = YYCURSOR - SCNG(yy_text);
13027
13028
44.2k
  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
44.2k
  } else if (yyleng == 1) {
13040
1.08k
    ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR((zend_uchar)*yytext));
13041
43.1k
  } else {
13042
43.1k
    ZVAL_STRINGL(zendlval, yytext, yyleng);
13043
43.1k
  }
13044
44.2k
  HANDLE_NEWLINES(yytext, yyleng);
13045
44.2k
  RETURN_TOKEN_WITH_VAL(T_INLINE_HTML);
13046
44.2k
}
13047
0
#line 13048 "Zend/zend_language_scanner.c"
13048
50.4k
yy1129:
13049
50.4k
  YYDEBUG(1129, *YYCURSOR);
13050
50.4k
  yych = *++YYCURSOR;
13051
50.4k
  if (yych != '?') goto yy1128;
13052
49.7k
  YYDEBUG(1130, *YYCURSOR);
13053
49.7k
  yych = *(YYMARKER = ++YYCURSOR);
13054
49.7k
  if (yych <= 'O') {
13055
5.58k
    if (yych == '=') goto yy1132;
13056
44.1k
  } else {
13057
44.1k
    if (yych <= 'P') goto yy1134;
13058
44.1k
    if (yych == 'p') goto yy1134;
13059
44.1k
  }
13060
9.32k
yy1131:
13061
9.32k
  YYDEBUG(1131, *YYCURSOR);
13062
9.32k
  yyleng = YYCURSOR - SCNG(yy_text);
13063
9.32k
#line 2331 "Zend/zend_language_scanner.l"
13064
9.32k
  {
13065
9.32k
  if (CG(short_tags)) {
13066
9.32k
    BEGIN(ST_IN_SCRIPTING);
13067
9.32k
    RETURN_OR_SKIP_TOKEN(T_OPEN_TAG);
13068
9.32k
  } else {
13069
0
    goto inline_char_handler;
13070
0
  }
13071
9.32k
}
13072
0
#line 13073 "Zend/zend_language_scanner.c"
13073
56
yy1132:
13074
56
  YYDEBUG(1132, *YYCURSOR);
13075
56
  ++YYCURSOR;
13076
56
  YYDEBUG(1133, *YYCURSOR);
13077
56
  yyleng = YYCURSOR - SCNG(yy_text);
13078
56
#line 2300 "Zend/zend_language_scanner.l"
13079
56
  {
13080
56
  BEGIN(ST_IN_SCRIPTING);
13081
56
  if (PARSER_MODE()) {
13082
    /* We'll reject this as an identifier in zend_lex_tstring. */
13083
2
    RETURN_TOKEN_WITH_IDENT(T_ECHO);
13084
2
  }
13085
54
  RETURN_TOKEN(T_OPEN_TAG_WITH_ECHO);
13086
54
}
13087
0
#line 13088 "Zend/zend_language_scanner.c"
13088
42.7k
yy1134:
13089
42.7k
  YYDEBUG(1134, *YYCURSOR);
13090
42.7k
  yych = *++YYCURSOR;
13091
42.7k
  if (yych == 'H') goto yy1136;
13092
42.3k
  if (yych == 'h') goto yy1136;
13093
2.39k
yy1135:
13094
2.39k
  YYDEBUG(1135, *YYCURSOR);
13095
2.39k
  YYCURSOR = YYMARKER;
13096
2.39k
  goto yy1131;
13097
41.5k
yy1136:
13098
41.5k
  YYDEBUG(1136, *YYCURSOR);
13099
41.5k
  yych = *++YYCURSOR;
13100
41.5k
  if (yych == 'P') goto yy1137;
13101
40.9k
  if (yych != 'p') goto yy1135;
13102
40.3k
yy1137:
13103
40.3k
  YYDEBUG(1137, *YYCURSOR);
13104
40.3k
  yych = *++YYCURSOR;
13105
40.3k
  if (yych <= '\f') {
13106
34.8k
    if (yych <= 0x08) goto yy1138;
13107
34.7k
    if (yych <= '\n') goto yy1139;
13108
34.7k
  } else {
13109
5.49k
    if (yych <= '\r') goto yy1141;
13110
5.48k
    if (yych == ' ') goto yy1139;
13111
5.48k
  }
13112
1.14k
yy1138:
13113
1.14k
  YYDEBUG(1138, *YYCURSOR);
13114
1.14k
  yyleng = YYCURSOR - SCNG(yy_text);
13115
1.14k
#line 2316 "Zend/zend_language_scanner.l"
13116
1.14k
  {
13117
  /* Allow <?php followed by end of file. */
13118
1.14k
  if (YYCURSOR == YYLIMIT) {
13119
0
    BEGIN(ST_IN_SCRIPTING);
13120
0
    RETURN_OR_SKIP_TOKEN(T_OPEN_TAG);
13121
0
  }
13122
  /* Degenerate case: <?phpX is interpreted as <? phpX with short tags. */
13123
1.14k
  if (CG(short_tags)) {
13124
1.14k
    yyless(2);
13125
1.14k
    BEGIN(ST_IN_SCRIPTING);
13126
1.14k
    RETURN_OR_SKIP_TOKEN(T_OPEN_TAG);
13127
1.14k
  }
13128
0
  goto inline_char_handler;
13129
1.14k
}
13130
0
#line 13131 "Zend/zend_language_scanner.c"
13131
39.2k
yy1139:
13132
39.2k
  YYDEBUG(1139, *YYCURSOR);
13133
39.2k
  ++YYCURSOR;
13134
39.2k
yy1140:
13135
39.2k
  YYDEBUG(1140, *YYCURSOR);
13136
39.2k
  yyleng = YYCURSOR - SCNG(yy_text);
13137
39.2k
#line 2310 "Zend/zend_language_scanner.l"
13138
39.2k
  {
13139
39.2k
  HANDLE_NEWLINE(yytext[yyleng-1]);
13140
39.2k
  BEGIN(ST_IN_SCRIPTING);
13141
39.2k
  RETURN_OR_SKIP_TOKEN(T_OPEN_TAG);
13142
39.2k
}
13143
0
#line 13144 "Zend/zend_language_scanner.c"
13144
3
yy1141:
13145
3
  YYDEBUG(1141, *YYCURSOR);
13146
3
  yych = *++YYCURSOR;
13147
3
  if (yych == '\n') goto yy1139;
13148
0
  goto yy1140;
13149
/* *********************************** */
13150
4.96k
yyc_ST_END_HEREDOC:
13151
4.96k
  YYDEBUG(1142, *YYCURSOR);
13152
4.96k
  YYFILL(1);
13153
4.96k
  yych = *YYCURSOR;
13154
4.96k
  YYDEBUG(1144, *YYCURSOR);
13155
4.96k
  ++YYCURSOR;
13156
4.96k
  YYDEBUG(1145, *YYCURSOR);
13157
4.96k
  yyleng = YYCURSOR - SCNG(yy_text);
13158
4.96k
#line 2831 "Zend/zend_language_scanner.l"
13159
4.96k
  {
13160
4.96k
  zend_heredoc_label *heredoc_label = zend_ptr_stack_pop(&SCNG(heredoc_label_stack));
13161
13162
4.96k
  yyleng = heredoc_label->indentation + heredoc_label->length;
13163
4.96k
  YYCURSOR += yyleng - 1;
13164
13165
4.96k
  heredoc_label_dtor(heredoc_label);
13166
4.96k
  efree(heredoc_label);
13167
13168
4.96k
  BEGIN(ST_IN_SCRIPTING);
13169
4.96k
  RETURN_TOKEN(T_END_HEREDOC);
13170
4.96k
}
13171
0
#line 13172 "Zend/zend_language_scanner.c"
13172
/* *********************************** */
13173
2.36k
yyc_ST_NOWDOC:
13174
2.36k
  YYDEBUG(1146, *YYCURSOR);
13175
2.36k
  YYFILL(1);
13176
2.36k
  yych = *YYCURSOR;
13177
2.36k
  YYDEBUG(1148, *YYCURSOR);
13178
2.36k
  ++YYCURSOR;
13179
2.36k
  YYDEBUG(1149, *YYCURSOR);
13180
2.36k
  yyleng = YYCURSOR - SCNG(yy_text);
13181
2.36k
#line 3088 "Zend/zend_language_scanner.l"
13182
2.36k
  {
13183
2.36k
  zend_heredoc_label *heredoc_label = zend_ptr_stack_top(&SCNG(heredoc_label_stack));
13184
2.36k
  int newline = 0, indentation = 0, spacing = -1;
13185
13186
2.36k
  if (YYCURSOR > YYLIMIT) {
13187
891
    RETURN_END_TOKEN;
13188
891
  }
13189
13190
1.47k
  YYCURSOR--;
13191
13192
631k
  while (YYCURSOR < YYLIMIT) {
13193
630k
    switch (*YYCURSOR++) {
13194
1.05k
      case '\r':
13195
1.05k
        if (*YYCURSOR == '\n') {
13196
53
          YYCURSOR++;
13197
53
        }
13198
1.05k
        ZEND_FALLTHROUGH;
13199
16.6k
      case '\n':
13200
16.6k
        indentation = spacing = 0;
13201
13202
24.1k
        while (YYCURSOR < YYLIMIT && (*YYCURSOR == ' ' || *YYCURSOR == '\t')) {
13203
7.46k
          if (*YYCURSOR == '\t') {
13204
122
            spacing |= HEREDOC_USING_TABS;
13205
7.33k
          } else {
13206
7.33k
            spacing |= HEREDOC_USING_SPACES;
13207
7.33k
          }
13208
7.46k
          ++YYCURSOR;
13209
7.46k
          ++indentation;
13210
7.46k
        }
13211
13212
16.6k
        if (YYCURSOR == YYLIMIT) {
13213
16
          yyleng = YYCURSOR - SCNG(yy_text);
13214
16
          HANDLE_NEWLINES(yytext, yyleng);
13215
16
          ZVAL_NULL(zendlval);
13216
16
          RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
13217
16
        }
13218
13219
        /* Check for ending label on the next line */
13220
16.6k
        if (IS_LABEL_START(*YYCURSOR) && heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, heredoc_label->label, heredoc_label->length)) {
13221
703
          if (IS_LABEL_SUCCESSOR(YYCURSOR[heredoc_label->length])) {
13222
122
            continue;
13223
122
          }
13224
13225
581
          if (spacing == (HEREDOC_USING_SPACES | HEREDOC_USING_TABS)) {
13226
0
            zend_throw_exception(zend_ce_parse_error, "Invalid indentation - tabs and spaces cannot be mixed", 0);
13227
0
            if (PARSER_MODE()) {
13228
0
              RETURN_TOKEN(T_ERROR);
13229
0
            }
13230
0
          }
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
581
          if (YYCURSOR[-indentation - 2] == '\r' && YYCURSOR[-indentation - 1] == '\n') {
13235
0
            newline = 2; /* Windows newline */
13236
581
          } else {
13237
581
            newline = 1;
13238
581
          }
13239
13240
581
          CG(increment_lineno) = 1; /* For newline before label */
13241
13242
581
          YYCURSOR -= indentation;
13243
581
          heredoc_label->indentation = indentation;
13244
13245
581
          BEGIN(ST_END_HEREDOC);
13246
13247
581
          goto nowdoc_scan_done;
13248
581
        }
13249
15.9k
        ZEND_FALLTHROUGH;
13250
629k
      default:
13251
629k
        continue;
13252
630k
    }
13253
630k
  }
13254
13255
1.45k
nowdoc_scan_done:
13256
1.45k
  yyleng = YYCURSOR - SCNG(yy_text);
13257
1.45k
  ZVAL_STRINGL(zendlval, yytext, yyleng - newline);
13258
13259
1.45k
  if (!EG(exception) && spacing != -1 && PARSER_MODE()) {
13260
341
    bool newline_at_start = *(yytext - 1) == '\n' || *(yytext - 1) == '\r';
13261
341
    if (!strip_multiline_string_indentation(
13262
341
        zendlval, indentation, spacing == HEREDOC_USING_SPACES,
13263
341
        newline_at_start, newline != 0)) {
13264
0
      RETURN_TOKEN(T_ERROR);
13265
0
    }
13266
341
  }
13267
13268
1.45k
  HANDLE_NEWLINES(yytext, yyleng - newline);
13269
1.45k
  RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
13270
1.45k
}
13271
1.45k
#line 13272 "Zend/zend_language_scanner.c"
13272
1.45k
}
13273
0
#line 3187 "Zend/zend_language_scanner.l"
13274
13275
13276
1.97M
emit_token_with_str:
13277
1.97M
  zend_copy_value(zendlval, (yytext + offset), (yyleng - offset));
13278
13279
2.96M
emit_token_with_val:
13280
2.96M
  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
9.43M
emit_token:
13286
9.43M
  if (SCNG(on_event)) {
13287
0
    SCNG(on_event)(ON_TOKEN, token, start_line, yytext, yyleng, SCNG(on_event_context));
13288
0
  }
13289
9.43M
  return token;
13290
13291
358k
emit_token_with_ident:
13292
358k
  if (PARSER_MODE()) {
13293
206k
    elem->ident = SCNG(yy_text);
13294
206k
  }
13295
358k
  if (SCNG(on_event)) {
13296
0
    SCNG(on_event)(ON_TOKEN, token, start_line, yytext, yyleng, SCNG(on_event_context));
13297
0
  }
13298
358k
  return token;
13299
13300
2.19M
return_whitespace:
13301
2.19M
  HANDLE_NEWLINES(yytext, yyleng);
13302
2.19M
  if (SCNG(on_event)) {
13303
0
    SCNG(on_event)(ON_TOKEN, T_WHITESPACE, start_line, yytext, yyleng, SCNG(on_event_context));
13304
0
  }
13305
2.19M
  if (PARSER_MODE()) {
13306
1.05M
    start_line = CG(zend_lineno);
13307
1.05M
    goto restart;
13308
1.13M
  } else {
13309
1.13M
    return T_WHITESPACE;
13310
1.13M
  }
13311
13312
62.6k
skip_token:
13313
62.6k
  if (SCNG(on_event)) {
13314
0
    SCNG(on_event)(ON_TOKEN, token, start_line, yytext, yyleng, SCNG(on_event_context));
13315
0
  }
13316
62.6k
  start_line = CG(zend_lineno);
13317
62.6k
  goto restart;
13318
2.19M
}