Coverage Report

Created: 2026-06-02 06:36

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
779k
#define YYCTYPE   unsigned char
53
1.66M
#define YYFILL(n) { if ((YYCURSOR + n) >= (YYLIMIT + ZEND_MMAP_AHEAD)) { return 0; } }
54
8.64M
#define YYCURSOR  SCNG(yy_cursor)
55
2.53M
#define YYLIMIT   SCNG(yy_limit)
56
814k
#define YYMARKER  SCNG(yy_marker)
57
58
2.41M
#define YYGETCONDITION()  SCNG(yy_state)
59
126k
#define YYSETCONDITION(s) SCNG(yy_state) = s
60
61
#define STATE(name)  yyc##name
62
63
/* emulate flex constructs */
64
43.7k
#define BEGIN(state) YYSETCONDITION(STATE(state))
65
15.9k
#define YYSTATE      YYGETCONDITION()
66
157k
#define yytext       ((char*)SCNG(yy_text))
67
908k
#define yyleng       SCNG(yy_leng)
68
19.2k
#define yyless(x)    do { YYCURSOR = (unsigned char*)yytext + x; \
69
19.2k
                          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
19.6M
#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
138k
#define HANDLE_NEWLINES(s, l)                         \
96
138k
do {                                     \
97
138k
  char *p = (s), *boundary = p+(l);                     \
98
138k
                                        \
99
478k
  while (p<boundary) {                           \
100
340k
    if (*p == '\n' || (*p == '\r' && (*(p+1) != '\n'))) {         \
101
70.4k
      CG(zend_lineno)++;                          \
102
70.4k
    }                                    \
103
340k
    p++;                                  \
104
340k
  }                                      \
105
138k
} while (0)
106
107
5.68k
#define HANDLE_NEWLINE(c) \
108
5.68k
{ \
109
5.68k
  if (c == '\n' || c == '\r') { \
110
4.27k
    CG(zend_lineno)++; \
111
4.27k
  } \
112
5.68k
}
113
114
/* To save initial string length after scanning to first variable */
115
2.32k
#define SET_DOUBLE_QUOTES_SCANNED_LENGTH(len) SCNG(scanned_string_len) = (len)
116
3.52k
#define GET_DOUBLE_QUOTES_SCANNED_LENGTH()    SCNG(scanned_string_len)
117
118
37.7k
#define IS_LABEL_START(c) (((c) >= 'a' && (c) <= 'z') || ((c) >= 'A' && (c) <= 'Z') || (c) == '_' || (c) >= 0x80)
119
646
#define IS_LABEL_SUCCESSOR(c) (((c) >= 'a' && (c) <= 'z') || ((c) >= 'A' && (c) <= 'Z') || ((c) >= '0' && (c) <= '9') || (c) == '_' || (c) >= 0x80)
120
121
1.78k
#define ZEND_IS_OCT(c)  ((c)>='0' && (c)<='7')
122
297
#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
46
{
127
46
  char *src = str, *dest = str;
128
585
  while (*src != '\0') {
129
539
    if (*src != '_') {
130
487
      *dest = *src;
131
487
      dest++;
132
487
    } else {
133
52
      --(*len);
134
52
    }
135
539
    src++;
136
539
  }
137
46
  *dest = '\0';
138
46
}
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
44.6k
{
169
44.6k
  zend_stack_push(&SCNG(state_stack), (void *) &YYGETCONDITION());
170
44.6k
  YYSETCONDITION(new_state);
171
44.6k
}
172
173
44.6k
#define yy_push_state(state_and_tsrm) _yy_push_state(yyc##state_and_tsrm)
174
175
static void yy_pop_state(void)
176
23.0k
{
177
23.0k
  int *stack_state = zend_stack_top(&SCNG(state_stack));
178
23.0k
  YYSETCONDITION(*stack_state);
179
23.0k
  zend_stack_del_top(&SCNG(state_stack));
180
23.0k
}
181
182
static void yy_scan_buffer(char *str, size_t len)
183
10.4k
{
184
10.4k
  YYCURSOR       = (YYCTYPE*)str;
185
10.4k
  YYLIMIT        = YYCURSOR + len;
186
10.4k
  if (!SCNG(yy_start)) {
187
3.44k
    SCNG(yy_start) = YYCURSOR;
188
3.44k
  }
189
10.4k
}
190
191
void startup_scanner(void)
192
33.5k
{
193
33.5k
  CG(parse_error) = 0;
194
33.5k
  CG(doc_comment) = NULL;
195
33.5k
  CG(extra_fn_flags) = 0;
196
33.5k
  zend_stack_init(&SCNG(state_stack), sizeof(int));
197
33.5k
  zend_stack_init(&SCNG(nest_location_stack), sizeof(zend_nest_location));
198
33.5k
  zend_ptr_stack_init(&SCNG(heredoc_label_stack));
199
33.5k
  SCNG(heredoc_scan_ahead) = 0;
200
33.5k
}
201
202
24.9k
static void heredoc_label_dtor(zend_heredoc_label *heredoc_label) {
203
24.9k
    efree(heredoc_label->label);
204
24.9k
}
205
206
void shutdown_scanner(void)
207
33.5k
{
208
33.5k
  CG(parse_error) = 0;
209
33.5k
  RESET_DOC_COMMENT();
210
33.5k
  zend_stack_destroy(&SCNG(state_stack));
211
33.5k
  zend_stack_destroy(&SCNG(nest_location_stack));
212
33.5k
  zend_ptr_stack_clean(&SCNG(heredoc_label_stack), (void (*)(void *)) &heredoc_label_dtor, 1);
213
33.5k
  zend_ptr_stack_destroy(&SCNG(heredoc_label_stack));
214
33.5k
  SCNG(heredoc_scan_ahead) = 0;
215
33.5k
  SCNG(on_event) = NULL;
216
33.5k
  SCNG(on_event_context) = NULL;
217
33.5k
}
218
219
ZEND_API void zend_save_lexical_state(zend_lex_state *lex_state)
220
15.9k
{
221
15.9k
  lex_state->yy_leng   = SCNG(yy_leng);
222
15.9k
  lex_state->yy_start  = SCNG(yy_start);
223
15.9k
  lex_state->yy_text   = SCNG(yy_text);
224
15.9k
  lex_state->yy_cursor = SCNG(yy_cursor);
225
15.9k
  lex_state->yy_marker = SCNG(yy_marker);
226
15.9k
  lex_state->yy_limit  = SCNG(yy_limit);
227
228
15.9k
  lex_state->state_stack = SCNG(state_stack);
229
15.9k
  zend_stack_init(&SCNG(state_stack), sizeof(int));
230
231
15.9k
  lex_state->nest_location_stack = SCNG(nest_location_stack);
232
15.9k
  zend_stack_init(&SCNG(nest_location_stack), sizeof(zend_nest_location));
233
234
15.9k
  lex_state->heredoc_label_stack = SCNG(heredoc_label_stack);
235
15.9k
  zend_ptr_stack_init(&SCNG(heredoc_label_stack));
236
237
15.9k
  lex_state->in = SCNG(yy_in);
238
15.9k
  lex_state->yy_state = YYSTATE;
239
15.9k
  lex_state->filename = CG(compiled_filename);
240
15.9k
  lex_state->lineno = CG(zend_lineno);
241
15.9k
  CG(compiled_filename) = NULL;
242
243
15.9k
  lex_state->script_org = SCNG(script_org);
244
15.9k
  lex_state->script_org_size = SCNG(script_org_size);
245
15.9k
  lex_state->script_filtered = SCNG(script_filtered);
246
15.9k
  lex_state->script_filtered_size = SCNG(script_filtered_size);
247
15.9k
  lex_state->input_filter = SCNG(input_filter);
248
15.9k
  lex_state->output_filter = SCNG(output_filter);
249
15.9k
  lex_state->script_encoding = SCNG(script_encoding);
250
251
15.9k
  lex_state->on_event = SCNG(on_event);
252
15.9k
  lex_state->on_event_context = SCNG(on_event_context);
253
254
15.9k
  lex_state->ast = CG(ast);
255
15.9k
  lex_state->ast_arena = CG(ast_arena);
256
15.9k
}
257
258
ZEND_API void zend_restore_lexical_state(zend_lex_state *lex_state)
259
14.7k
{
260
14.7k
  SCNG(yy_leng)   = lex_state->yy_leng;
261
14.7k
  SCNG(yy_start)  = lex_state->yy_start;
262
14.7k
  SCNG(yy_text)   = lex_state->yy_text;
263
14.7k
  SCNG(yy_cursor) = lex_state->yy_cursor;
264
14.7k
  SCNG(yy_marker) = lex_state->yy_marker;
265
14.7k
  SCNG(yy_limit)  = lex_state->yy_limit;
266
267
14.7k
  zend_stack_destroy(&SCNG(state_stack));
268
14.7k
  SCNG(state_stack) = lex_state->state_stack;
269
270
14.7k
  zend_stack_destroy(&SCNG(nest_location_stack));
271
14.7k
  SCNG(nest_location_stack) = lex_state->nest_location_stack;
272
273
14.7k
  zend_ptr_stack_clean(&SCNG(heredoc_label_stack), (void (*)(void *)) &heredoc_label_dtor, 1);
274
14.7k
  zend_ptr_stack_destroy(&SCNG(heredoc_label_stack));
275
14.7k
  SCNG(heredoc_label_stack) = lex_state->heredoc_label_stack;
276
277
14.7k
  SCNG(yy_in) = lex_state->in;
278
14.7k
  YYSETCONDITION(lex_state->yy_state);
279
14.7k
  CG(zend_lineno) = lex_state->lineno;
280
14.7k
  zend_restore_compiled_filename(lex_state->filename);
281
282
14.7k
  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
14.7k
  SCNG(script_org) = lex_state->script_org;
287
14.7k
  SCNG(script_org_size) = lex_state->script_org_size;
288
14.7k
  SCNG(script_filtered) = lex_state->script_filtered;
289
14.7k
  SCNG(script_filtered_size) = lex_state->script_filtered_size;
290
14.7k
  SCNG(input_filter) = lex_state->input_filter;
291
14.7k
  SCNG(output_filter) = lex_state->output_filter;
292
14.7k
  SCNG(script_encoding) = lex_state->script_encoding;
293
294
14.7k
  SCNG(on_event) = lex_state->on_event;
295
14.7k
  SCNG(on_event_context) = lex_state->on_event_context;
296
297
14.7k
  CG(ast) = lex_state->ast;
298
14.7k
  CG(ast_arena) = lex_state->ast_arena;
299
300
14.7k
  RESET_DOC_COMMENT();
301
14.7k
}
302
303
ZEND_API zend_result zend_lex_tstring(zval *zv, unsigned char *ident)
304
146
{
305
146
  unsigned char *end = ident;
306
899
  while ((*end >= 'a' && *end <= 'z') || (*end >= 'A' && *end <= 'Z') || *end == '_') {
307
753
    end++;
308
753
  }
309
310
146
  size_t length = end - ident;
311
146
  if (length == 0) {
312
1
    ZEND_ASSERT(ident[0] == '<' && ident[1] == '?' && ident[2] == '=');
313
1
    zend_throw_exception(zend_ce_parse_error, "Cannot use \"<?=\" as an identifier", 0);
314
1
    return FAILURE;
315
1
  }
316
317
145
  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
145
  ZVAL_STRINGL(zv, (char *) ident, length);
322
145
  return SUCCESS;
323
146
}
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
8.36k
{
531
8.36k
  char *buf;
532
8.36k
  size_t size;
533
8.36k
  zend_string *compiled_filename;
534
535
8.36k
  if (zend_stream_fixup(file_handle, &buf, &size) == FAILURE) {
536
    /* Still add it to open_files to make destroy_file_handle work */
537
668
    zend_llist_add_element(&CG(open_files), file_handle);
538
668
    file_handle->in_list = 1;
539
668
    return FAILURE;
540
668
  }
541
542
7.69k
  ZEND_ASSERT(!EG(exception) && "stream_fixup() should have failed");
543
7.69k
  zend_llist_add_element(&CG(open_files), file_handle);
544
7.03k
  file_handle->in_list = 1;
545
546
  /* Reset the scanner for scanning the new file */
547
7.03k
  SCNG(yy_in) = file_handle;
548
7.03k
  SCNG(yy_start) = NULL;
549
550
7.03k
  if (size != (size_t)-1) {
551
7.03k
    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
7.03k
    SCNG(yy_start) = (unsigned char *)buf;
568
7.03k
    yy_scan_buffer(buf, size);
569
7.03k
  } else {
570
0
    zend_error_noreturn(E_COMPILE_ERROR, "zend_stream_mmap() failed");
571
0
  }
572
573
7.03k
  if (CG(skip_shebang)) {
574
0
    BEGIN(SHEBANG);
575
7.03k
  } else {
576
7.03k
    BEGIN(INITIAL);
577
7.03k
  }
578
579
7.03k
  if (file_handle->opened_path) {
580
3
    compiled_filename = zend_string_copy(file_handle->opened_path);
581
7.02k
  } else {
582
7.02k
    compiled_filename = zend_string_copy(file_handle->filename);
583
7.02k
  }
584
585
7.03k
  zend_set_compiled_filename(compiled_filename);
586
7.03k
  zend_string_release_ex(compiled_filename, 0);
587
588
7.03k
  SCNG(on_event) = NULL;
589
7.03k
  SCNG(on_event_context) = NULL;
590
7.03k
  RESET_DOC_COMMENT();
591
7.03k
  CG(zend_lineno) = 1;
592
7.03k
  CG(increment_lineno) = 0;
593
7.03k
  return SUCCESS;
594
7.03k
}
595
596
static zend_op_array *zend_compile(zend_function_type type)
597
7.06k
{
598
7.06k
  zend_op_array *op_array = NULL;
599
7.06k
  bool original_in_compilation = CG(in_compilation);
600
601
7.06k
  CG(in_compilation) = 1;
602
7.06k
  CG(ast) = NULL;
603
7.06k
  CG(ast_arena) = zend_arena_create(1024 * 32);
604
605
7.06k
  if (!zendparse()) {
606
4.94k
    uint32_t last_lineno = CG(zend_lineno);
607
4.94k
    zend_file_context original_file_context;
608
4.94k
    zend_oparray_context original_oparray_context;
609
4.94k
    zend_op_array *original_active_op_array = CG(active_op_array);
610
611
4.94k
    op_array = emalloc(sizeof(zend_op_array));
612
4.94k
    init_op_array(op_array, type, INITIAL_OP_ARRAY_SIZE);
613
4.94k
    CG(active_op_array) = op_array;
614
615
    /* Use heap to not waste arena memory */
616
4.94k
    op_array->fn_flags |= ZEND_ACC_HEAP_RT_CACHE;
617
618
4.94k
    if (zend_ast_process) {
619
0
      zend_ast_process(CG(ast));
620
0
    }
621
622
4.94k
    zend_file_context_begin(&original_file_context);
623
4.94k
    zend_oparray_context_begin(&original_oparray_context, op_array);
624
4.94k
    zend_compile_top_stmt(CG(ast));
625
4.94k
    CG(zend_lineno) = last_lineno;
626
4.94k
    zend_emit_final_return(type == ZEND_USER_FUNCTION);
627
4.94k
    op_array->line_start = 1;
628
4.94k
    op_array->line_end = last_lineno;
629
4.94k
    pass_two(op_array);
630
4.94k
    zend_oparray_context_end(&original_oparray_context);
631
4.94k
    zend_file_context_end(&original_file_context);
632
633
4.94k
    CG(active_op_array) = original_active_op_array;
634
4.94k
  }
635
636
7.06k
  zend_ast_destroy(CG(ast));
637
7.06k
  zend_arena_destroy(CG(ast_arena));
638
639
7.06k
  CG(in_compilation) = original_in_compilation;
640
641
7.06k
  return op_array;
642
7.06k
}
643
644
ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type)
645
8.36k
{
646
8.36k
  zend_lex_state original_lex_state;
647
8.36k
  zend_op_array *op_array = NULL;
648
8.36k
  zend_save_lexical_state(&original_lex_state);
649
650
8.36k
  if (open_file_for_scanning(file_handle)==FAILURE) {
651
668
    if (!EG(exception)) {
652
665
      if (type==ZEND_REQUIRE) {
653
662
        zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, ZSTR_VAL(file_handle->filename));
654
662
      } else {
655
3
        zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, ZSTR_VAL(file_handle->filename));
656
3
      }
657
665
    }
658
7.69k
  } else {
659
7.69k
    bool orig_record_errors = EG(record_errors);
660
7.69k
    if (!orig_record_errors) {
661
1
      zend_begin_record_errors();
662
1
    }
663
664
7.69k
    op_array = zend_compile(ZEND_USER_FUNCTION);
665
666
7.69k
    if (!orig_record_errors) {
667
1
      zend_emit_recorded_errors();
668
1
      zend_free_recorded_errors();
669
1
    }
670
7.69k
  }
671
672
8.36k
  zend_restore_lexical_state(&original_lex_state);
673
8.36k
  return op_array;
674
8.36k
}
675
676
ZEND_API zend_ast *zend_compile_string_to_ast(
677
1
    zend_string *code, zend_arena **ast_arena, zend_string *filename) {
678
1
  zval code_zv;
679
1
  bool original_in_compilation;
680
1
  zend_lex_state original_lex_state;
681
1
  zend_ast *ast;
682
683
1
  ZVAL_STR_COPY(&code_zv, code);
684
685
1
  original_in_compilation = CG(in_compilation);
686
1
  CG(in_compilation) = 1;
687
688
1
  zend_save_lexical_state(&original_lex_state);
689
1
  zend_prepare_string_for_scanning(&code_zv, filename);
690
1
  CG(ast) = NULL;
691
1
  CG(ast_arena) = zend_arena_create(1024 * 32);
692
1
  LANG_SCNG(yy_state) = yycINITIAL;
693
694
1
  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
1
  ast = CG(ast);
702
1
  *ast_arena = CG(ast_arena);
703
704
1
  zend_restore_lexical_state(&original_lex_state);
705
1
  CG(in_compilation) = original_in_compilation;
706
707
1
  zval_ptr_dtor_str(&code_zv);
708
709
1
  return ast;
710
1
}
711
712
zend_op_array *compile_filename(int type, zend_string *filename)
713
3.36k
{
714
3.36k
  zend_file_handle file_handle;
715
3.36k
  zend_op_array *retval;
716
3.36k
  zend_string *opened_path = NULL;
717
718
3.36k
  zend_stream_init_filename_ex(&file_handle, filename);
719
720
3.36k
  retval = zend_compile_file(&file_handle, type);
721
3.36k
  if (retval && file_handle.handle.stream.handle) {
722
3
    if (!file_handle.opened_path) {
723
1
      file_handle.opened_path = opened_path = zend_string_copy(filename);
724
1
    }
725
726
3
    zend_hash_add_empty_element(&EG(included_files), file_handle.opened_path);
727
728
3
    if (opened_path) {
729
1
      zend_string_release_ex(opened_path, 0);
730
1
    }
731
3
  }
732
3.36k
  zend_destroy_file_handle(&file_handle);
733
734
3.36k
  return retval;
735
3.36k
}
736
737
ZEND_API void zend_prepare_string_for_scanning(zval *str, zend_string *filename)
738
3.44k
{
739
3.44k
  char *buf;
740
3.44k
  size_t size, old_len;
741
742
  /* enforce ZEND_MMAP_AHEAD trailing NULLs for flex... */
743
3.44k
  old_len = Z_STRLEN_P(str);
744
3.44k
  Z_STR_P(str) = zend_string_extend(Z_STR_P(str), old_len + ZEND_MMAP_AHEAD, 0);
745
3.44k
  Z_TYPE_INFO_P(str) = IS_STRING_EX;
746
3.44k
  memset(Z_STRVAL_P(str) + old_len, 0, ZEND_MMAP_AHEAD + 1);
747
748
3.44k
  SCNG(yy_in) = NULL;
749
3.44k
  SCNG(yy_start) = NULL;
750
751
3.44k
  buf = Z_STRVAL_P(str);
752
3.44k
  size = old_len;
753
754
3.44k
  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
3.44k
  yy_scan_buffer(buf, size);
772
3.44k
  zend_set_compiled_filename(filename);
773
3.44k
  CG(zend_lineno) = 1;
774
3.44k
  CG(increment_lineno) = 0;
775
3.44k
  SCNG(on_event) = NULL;
776
3.44k
  SCNG(on_event_context) = NULL;
777
3.44k
  RESET_DOC_COMMENT();
778
3.44k
}
779
780
781
ZEND_API size_t zend_get_scanned_file_offset(void)
782
7
{
783
7
  size_t offset = SCNG(yy_cursor) - SCNG(yy_start);
784
7
  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
7
  return offset;
800
7
}
801
802
zend_op_array *compile_string(zend_string *source_string, const char *filename, zend_compile_position position)
803
38
{
804
38
  zend_lex_state original_lex_state;
805
38
  zend_op_array *op_array = NULL;
806
38
  zval tmp;
807
38
  zend_string *filename_str;
808
809
38
  if (ZSTR_LEN(source_string) == 0) {
810
1
    return NULL;
811
1
  }
812
813
37
  ZVAL_STR_COPY(&tmp, source_string);
814
815
37
  zend_save_lexical_state(&original_lex_state);
816
37
  filename_str = zend_string_init(filename, strlen(filename), 0);
817
37
  zend_prepare_string_for_scanning(&tmp, filename_str);
818
37
  zend_string_release(filename_str);
819
820
37
  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
37
    case ZEND_COMPILE_POSITION_AFTER_OPEN_TAG:
828
37
      BEGIN(ST_IN_SCRIPTING);
829
37
      break;
830
37
  }
831
832
37
  op_array = zend_compile(ZEND_EVAL_CODE);
833
834
37
  zend_restore_lexical_state(&original_lex_state);
835
37
  zval_ptr_dtor(&tmp);
836
837
37
  return op_array;
838
37
}
839
840
841
zend_result highlight_file(const char *filename, zend_syntax_highlighter_ini *syntax_highlighter_ini)
842
0
{
843
0
  zend_lex_state original_lex_state;
844
0
  zend_file_handle file_handle;
845
846
0
  zend_stream_init_filename(&file_handle, filename);
847
0
  zend_save_lexical_state(&original_lex_state);
848
0
  if (open_file_for_scanning(&file_handle)==FAILURE) {
849
0
    zend_message_dispatcher(ZMSG_FAILED_HIGHLIGHT_FOPEN, filename);
850
0
    zend_destroy_file_handle(&file_handle);
851
0
    zend_restore_lexical_state(&original_lex_state);
852
0
    return FAILURE;
853
0
  }
854
0
  zend_highlight(syntax_highlighter_ini);
855
0
  if (SCNG(script_filtered)) {
856
0
    efree(SCNG(script_filtered));
857
0
    SCNG(script_filtered) = NULL;
858
0
  }
859
0
  zend_destroy_file_handle(&file_handle);
860
0
  zend_restore_lexical_state(&original_lex_state);
861
0
  return SUCCESS;
862
0
}
863
864
void highlight_string(zend_string *str, zend_syntax_highlighter_ini *syntax_highlighter_ini, const char *filename)
865
3.40k
{
866
3.40k
  zend_lex_state original_lex_state;
867
3.40k
  zval str_zv;
868
3.40k
  zend_string *filename_str = zend_string_init(filename, strlen(filename), 0);
869
3.40k
  ZVAL_STR_COPY(&str_zv, str);
870
3.40k
  zend_save_lexical_state(&original_lex_state);
871
3.40k
  zend_prepare_string_for_scanning(&str_zv, filename_str);
872
3.40k
  zend_string_release(filename_str);
873
3.40k
  BEGIN(INITIAL);
874
3.40k
  zend_highlight(syntax_highlighter_ini);
875
3.40k
  if (SCNG(script_filtered)) {
876
0
    efree(SCNG(script_filtered));
877
0
    SCNG(script_filtered) = NULL;
878
0
  }
879
3.40k
  zend_restore_lexical_state(&original_lex_state);
880
3.40k
  zval_ptr_dtor(&str_zv);
881
3.40k
}
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
120k
  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
120k
  } else if (yyleng == 1) { \
927
33.6k
    ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR((zend_uchar)*(yytext))); \
928
87.3k
  } else { \
929
87.3k
    ZVAL_STRINGL(zendlval, yytext, yyleng); \
930
87.3k
  }
931
932
static zend_result zend_scan_escape_string(zval *zendlval, char *str, size_t len, char quote_type)
933
10.9k
{
934
10.9k
  char *s, *t;
935
10.9k
  char *end;
936
937
10.9k
  if (len <= 1) {
938
821
    if (len < 1) {
939
138
      ZVAL_EMPTY_STRING(zendlval);
940
683
    } else {
941
683
      zend_uchar c = (zend_uchar)*str;
942
683
      HANDLE_NEWLINE(c);
943
683
      ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR(c));
944
683
    }
945
821
    goto skip_escape_conversion;
946
821
  }
947
948
10.1k
  ZVAL_STRINGL(zendlval, str, len);
949
950
  /* convert escape sequences */
951
10.1k
  s = Z_STRVAL_P(zendlval);
952
10.1k
  end = s+Z_STRLEN_P(zendlval);
953
315k
  while (1) {
954
315k
    if (UNEXPECTED(*s=='\\')) {
955
1.79k
      break;
956
1.79k
    }
957
313k
    if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
958
9.10k
      CG(zend_lineno)++;
959
9.10k
    }
960
313k
    s++;
961
313k
    if (s == end) {
962
8.38k
      goto skip_escape_conversion;
963
8.38k
    }
964
313k
  }
965
966
1.79k
  t = s;
967
24.2k
  while (s<end) {
968
22.4k
    if (*s=='\\') {
969
3.12k
      s++;
970
3.12k
      if (s >= end) {
971
34
        *t++ = '\\';
972
34
        break;
973
34
      }
974
975
3.09k
      switch(*s) {
976
705
        case 'n':
977
705
          *t++ = '\n';
978
705
          break;
979
6
        case 'r':
980
6
          *t++ = '\r';
981
6
          break;
982
24
        case 't':
983
24
          *t++ = '\t';
984
24
          break;
985
6
        case 'f':
986
6
          *t++ = '\f';
987
6
          break;
988
178
        case 'v':
989
178
          *t++ = '\v';
990
178
          break;
991
16
        case 'e':
992
#ifdef ZEND_WIN32
993
          *t++ = VK_ESCAPE;
994
#else
995
16
          *t++ = '\e';
996
16
#endif
997
16
          break;
998
14
        case '"':
999
41
        case '`':
1000
41
          if (*s != quote_type) {
1001
29
            *t++ = '\\';
1002
29
            *t++ = *s;
1003
29
            break;
1004
29
          }
1005
12
          ZEND_FALLTHROUGH;
1006
346
        case '\\':
1007
382
        case '$':
1008
382
          *t++ = *s;
1009
382
          break;
1010
37
        case 'x':
1011
158
        case 'X':
1012
158
          if (ZEND_IS_HEX(*(s+1))) {
1013
93
            char hex_buf[3] = { 0, 0, 0 };
1014
1015
93
            hex_buf[0] = *(++s);
1016
93
            if (ZEND_IS_HEX(*(s+1))) {
1017
51
              hex_buf[1] = *(++s);
1018
51
            }
1019
93
            *t++ = (char) ZEND_STRTOL(hex_buf, NULL, 16);
1020
93
          } else {
1021
65
            *t++ = '\\';
1022
65
            *t++ = *s;
1023
65
          }
1024
158
          break;
1025
        /* UTF-8 codepoint escape, format: /\\u\{\x+\}/ */
1026
37
        case 'u':
1027
37
          {
1028
            /* cache where we started so we can parse after validating */
1029
37
            char *start = s + 1;
1030
37
            size_t len = 0;
1031
37
            bool valid = 1;
1032
37
            unsigned long codepoint;
1033
1034
37
            if (*start != '{') {
1035
              /* we silently let this pass to avoid breaking code
1036
               * with JSON in string literals (e.g. "\"\u202e\""
1037
               */
1038
20
              *t++ = '\\';
1039
20
              *t++ = 'u';
1040
20
              break;
1041
20
            } else {
1042
              /* on the other hand, invalid \u{blah} errors */
1043
17
              s++;
1044
17
              len++;
1045
17
              s++;
1046
52
              while (*s != '}') {
1047
46
                if (!ZEND_IS_HEX(*s)) {
1048
11
                  valid = 0;
1049
11
                  break;
1050
35
                } else {
1051
35
                  len++;
1052
35
                }
1053
35
                s++;
1054
35
              }
1055
17
              if (*s == '}') {
1056
6
                valid = 1;
1057
6
                len++;
1058
6
              }
1059
17
            }
1060
1061
            /* \u{} is invalid */
1062
17
            if (len <= 2) {
1063
4
              valid = 0;
1064
4
            }
1065
1066
17
            if (!valid) {
1067
11
              zend_throw_exception(zend_ce_parse_error,
1068
11
                "Invalid UTF-8 codepoint escape sequence", 0);
1069
11
              zval_ptr_dtor(zendlval);
1070
11
              ZVAL_UNDEF(zendlval);
1071
11
              return FAILURE;
1072
11
            }
1073
1074
17
            errno = 0;
1075
6
            codepoint = strtoul(start + 1, NULL, 16);
1076
1077
            /* per RFC 3629, UTF-8 can only represent 21 bits */
1078
6
            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
6
            if (codepoint < 0x80) {
1088
1
              *t++ = codepoint;
1089
5
            } else if (codepoint <= 0x7FF) {
1090
1
              *t++ = (codepoint >> 6) + 0xC0;
1091
1
              *t++ = (codepoint & 0x3F) + 0x80;
1092
4
            } else if (codepoint <= 0xFFFF) {
1093
3
              *t++ = (codepoint >> 12) + 0xE0;
1094
3
              *t++ = ((codepoint >> 6) & 0x3F) + 0x80;
1095
3
              *t++ = (codepoint & 0x3F) + 0x80;
1096
3
            } else if (codepoint <= 0x10FFFF) {
1097
1
              *t++ = (codepoint >> 18) + 0xF0;
1098
1
              *t++ = ((codepoint >> 12) & 0x3F) + 0x80;
1099
1
              *t++ = ((codepoint >> 6) & 0x3F) + 0x80;
1100
1
              *t++ = (codepoint & 0x3F) + 0x80;
1101
1
            }
1102
6
          }
1103
0
          break;
1104
1.55k
        default:
1105
          /* check for an octal */
1106
1.55k
          if (ZEND_IS_OCT(*s)) {
1107
177
            char octal_buf[4] = { 0, 0, 0, 0 };
1108
1109
177
            octal_buf[0] = *s;
1110
177
            if (ZEND_IS_OCT(*(s+1))) {
1111
52
              octal_buf[1] = *(++s);
1112
52
              if (ZEND_IS_OCT(*(s+1))) {
1113
44
                octal_buf[2] = *(++s);
1114
44
              }
1115
52
            }
1116
177
            if (octal_buf[2] && (octal_buf[0] > '3') && !SCNG(heredoc_scan_ahead)) {
1117
              /* 3 octit values must not overflow 0xFF (\377) */
1118
16
              zend_error(E_COMPILE_WARNING, "Octal escape sequence overflow \\%s is greater than \\377", octal_buf);
1119
16
            }
1120
1121
177
            *t++ = (char) ZEND_STRTOL(octal_buf, NULL, 8);
1122
1.37k
          } else {
1123
1.37k
            *t++ = '\\';
1124
1.37k
            *t++ = *s;
1125
1.37k
          }
1126
1.55k
          break;
1127
3.09k
      }
1128
19.3k
    } else {
1129
19.3k
      *t++ = *s;
1130
19.3k
    }
1131
1132
22.4k
    if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
1133
599
      CG(zend_lineno)++;
1134
599
    }
1135
22.4k
    s++;
1136
22.4k
  }
1137
1.78k
  *t = 0;
1138
1.78k
  Z_STRLEN_P(zendlval) = t - Z_STRVAL_P(zendlval);
1139
1140
10.9k
skip_escape_conversion:
1141
10.9k
  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
10.9k
  return SUCCESS;
1152
1.78k
}
1153
1154
2.73k
#define HEREDOC_USING_SPACES 1
1155
783
#define HEREDOC_USING_TABS 2
1156
1157
4.75k
static const char *next_newline(const char *str, const char *end, size_t *newline_len) {
1158
33.4k
  for (; str < end; str++) {
1159
31.1k
    if (*str == '\r') {
1160
294
      *newline_len = str + 1 < end && *(str + 1) == '\n' ? 2 : 1;
1161
294
      return str;
1162
30.8k
    } else if (*str == '\n') {
1163
2.24k
      *newline_len = 1;
1164
2.24k
      return str;
1165
2.24k
    }
1166
31.1k
  }
1167
2.21k
  *newline_len = 0;
1168
2.21k
  return NULL;
1169
4.75k
}
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
2.05k
{
1175
2.05k
  const char *str = Z_STRVAL_P(zendlval), *end = str + Z_STRLEN_P(zendlval);
1176
2.05k
  char *copy = Z_STRVAL_P(zendlval);
1177
1178
2.05k
  uint32_t newline_count = 0;
1179
2.05k
  size_t newline_len;
1180
2.05k
  const char *nl;
1181
1182
2.05k
  if (!newline_at_start) {
1183
587
    nl = next_newline(str, end, &newline_len);
1184
587
    if (!nl) {
1185
181
      return 1;
1186
181
    }
1187
1188
406
    str = nl + newline_len;
1189
406
    copy = (char *) nl + newline_len;
1190
406
    newline_count++;
1191
1.47k
  } else {
1192
1.47k
    nl = str;
1193
1.47k
  }
1194
1195
  /* <= intentional */
1196
4.96k
  while (str <= end && nl) {
1197
4.16k
    size_t skip;
1198
4.16k
    nl = next_newline(str, end, &newline_len);
1199
4.16k
    if (!nl && newline_at_end) {
1200
368
      nl = end;
1201
368
    }
1202
1203
    /* Try to skip indentation */
1204
4.38k
    for (skip = 0; skip < indentation; skip++, str++) {
1205
255
      if (str == nl) {
1206
        /* Don't require full indentation on whitespace-only lines */
1207
18
        break;
1208
18
      }
1209
1210
237
      if (str == end || (*str != ' ' && *str != '\t')) {
1211
14
        CG(zend_lineno) += newline_count;
1212
14
        zend_throw_exception_ex(zend_ce_parse_error, 0,
1213
14
          "Invalid body indentation level (expecting an indentation level of at least %d)", indentation);
1214
14
        goto error;
1215
14
      }
1216
1217
223
      if ((!using_spaces && *str == ' ') || (using_spaces && *str == '\t')) {
1218
8
        CG(zend_lineno) += newline_count;
1219
8
        zend_throw_exception(zend_ce_parse_error,
1220
8
          "Invalid indentation - tabs and spaces cannot be mixed", 0);
1221
8
        goto error;
1222
8
      }
1223
223
    }
1224
1225
4.14k
    if (str == end) {
1226
1.05k
      break;
1227
1.05k
    }
1228
1229
3.08k
    size_t len = nl ? (nl - str + newline_len) : (end - str);
1230
3.08k
    memmove(copy, str, len);
1231
3.08k
    str += len;
1232
3.08k
    copy += len;
1233
3.08k
    newline_count++;
1234
3.08k
  }
1235
1236
1.85k
  *copy = '\0';
1237
1.85k
  Z_STRLEN_P(zendlval) = copy - Z_STRVAL_P(zendlval);
1238
1.85k
  return 1;
1239
1240
22
error:
1241
22
  zval_ptr_dtor_str(zendlval);
1242
22
  ZVAL_UNDEF(zendlval);
1243
1244
22
  return 0;
1245
1.87k
}
1246
1247
static void copy_heredoc_label_stack(void *void_heredoc_label)
1248
11.6k
{
1249
11.6k
  zend_heredoc_label *heredoc_label = void_heredoc_label;
1250
11.6k
  zend_heredoc_label *new_heredoc_label = emalloc(sizeof(zend_heredoc_label));
1251
1252
11.6k
  *new_heredoc_label = *heredoc_label;
1253
11.6k
  new_heredoc_label->label = estrndup(heredoc_label->label, heredoc_label->length);
1254
1255
11.6k
  zend_ptr_stack_push(&SCNG(heredoc_label_stack), (void *) new_heredoc_label);
1256
11.6k
}
1257
1258
/* Check that { }, [ ], ( ) are nested correctly */
1259
static void report_bad_nesting(char opening, uint32_t opening_lineno, char closing)
1260
10.4k
{
1261
10.4k
  char   buf[256];
1262
10.4k
  size_t used = 0;
1263
1264
10.4k
  used = snprintf(buf, sizeof(buf), "Unclosed '%c'", opening);
1265
1266
10.4k
  if (opening_lineno != CG(zend_lineno)) {
1267
3.89k
    used += snprintf(buf + used, sizeof(buf) - used, " on line %d", opening_lineno);
1268
3.89k
  }
1269
1270
10.4k
  if (closing) {   /* 'closing' will be 0 if at end of file */
1271
5.67k
    used += snprintf(buf + used, sizeof(buf) - used, " does not match '%c'", closing);
1272
5.67k
  }
1273
1274
10.4k
  zend_throw_exception(zend_ce_parse_error, buf, 0);
1275
10.4k
}
1276
1277
static void enter_nesting(char opening)
1278
69.5k
{
1279
69.5k
  zend_nest_location nest_loc = {opening, CG(zend_lineno)};
1280
69.5k
  zend_stack_push(&SCNG(nest_location_stack), &nest_loc);
1281
69.5k
}
1282
1283
static zend_result exit_nesting(char closing)
1284
32.7k
{
1285
32.7k
  if (zend_stack_is_empty(&SCNG(nest_location_stack))) {
1286
2.34k
    zend_throw_exception_ex(zend_ce_parse_error, 0, "Unmatched '%c'", closing);
1287
2.34k
    return FAILURE;
1288
2.34k
  }
1289
1290
30.3k
  zend_nest_location *nest_loc = zend_stack_top(&SCNG(nest_location_stack));
1291
30.3k
  char opening = nest_loc->text;
1292
1293
30.3k
  if ((opening == '{' && closing != '}') ||
1294
30.2k
      (opening == '[' && closing != ']') ||
1295
28.5k
      (opening == '(' && closing != ')')) {
1296
5.67k
    report_bad_nesting(opening, nest_loc->lineno, closing);
1297
5.67k
    return FAILURE;
1298
5.67k
  }
1299
1300
24.6k
  zend_stack_del_top(&SCNG(nest_location_stack));
1301
24.6k
  return SUCCESS;
1302
30.3k
}
1303
1304
static zend_result check_nesting_at_end(void)
1305
11.9k
{
1306
11.9k
  if (!zend_stack_is_empty(&SCNG(nest_location_stack))) {
1307
4.74k
    zend_nest_location *nest_loc = zend_stack_top(&SCNG(nest_location_stack));
1308
4.74k
    report_bad_nesting(nest_loc->text, nest_loc->lineno, 0);
1309
4.74k
    return FAILURE;
1310
4.74k
  }
1311
1312
7.17k
  return SUCCESS;
1313
11.9k
}
1314
1315
#define PARSER_MODE() \
1316
368k
  EXPECTED(elem != NULL)
1317
1318
413k
#define RETURN_TOKEN(_token) do { \
1319
413k
    token = _token; \
1320
413k
    goto emit_token; \
1321
413k
  } while (0)
1322
1323
60.7k
#define RETURN_TOKEN_WITH_VAL(_token) do { \
1324
60.7k
    token = _token; \
1325
60.7k
    goto emit_token_with_val; \
1326
60.7k
  } while (0)
1327
1328
120k
#define RETURN_TOKEN_WITH_STR(_token, _offset) do { \
1329
120k
    token = _token; \
1330
120k
    offset = _offset; \
1331
120k
    goto emit_token_with_str; \
1332
120k
  } while (0)
1333
1334
17.1k
#define RETURN_TOKEN_WITH_IDENT(_token) do { \
1335
17.1k
    token = _token; \
1336
17.1k
    goto emit_token_with_ident; \
1337
17.1k
  } while (0)
1338
1339
18.7k
#define RETURN_OR_SKIP_TOKEN(_token) do { \
1340
18.7k
    token = _token; \
1341
18.7k
    if (PARSER_MODE()) { \
1342
7.44k
      goto skip_token; \
1343
7.44k
    } \
1344
18.7k
    goto emit_token; \
1345
18.7k
  } while (0)
1346
1347
32.7k
#define RETURN_EXIT_NESTING_TOKEN(_token) do { \
1348
32.7k
    if (exit_nesting(_token) != SUCCESS && PARSER_MODE()) { \
1349
14
      RETURN_TOKEN(T_ERROR); \
1350
32.6k
    } else { \
1351
32.6k
      RETURN_TOKEN(_token); \
1352
32.6k
    } \
1353
32.7k
  } while(0)
1354
1355
11.9k
#define RETURN_END_TOKEN do { \
1356
11.9k
    if (check_nesting_at_end() != SUCCESS && PARSER_MODE()) { \
1357
199
      RETURN_TOKEN(T_ERROR); \
1358
11.7k
    } else { \
1359
11.7k
      RETURN_TOKEN(END); \
1360
11.7k
    } \
1361
11.9k
  } while (0)
1362
1363
int ZEND_FASTCALL lex_scan(zval *zendlval, zend_parser_stack_elem *elem)
1364
701k
{
1365
701k
int token;
1366
701k
int offset;
1367
701k
uint32_t start_line = CG(zend_lineno);
1368
1369
701k
  ZVAL_UNDEF(zendlval);
1370
774k
restart:
1371
774k
  SCNG(yy_text) = YYCURSOR;
1372
1373
1374
774k
#line 1375 "Zend/zend_language_scanner.c"
1375
774k
{
1376
774k
  YYCTYPE yych;
1377
774k
  unsigned int yyaccept = 0;
1378
774k
  if (YYGETCONDITION() < 5) {
1379
736k
    if (YYGETCONDITION() < 2) {
1380
702k
      if (YYGETCONDITION() < 1) {
1381
701k
        goto yyc_ST_IN_SCRIPTING;
1382
701k
      } else {
1383
1.62k
        goto yyc_ST_LOOKING_FOR_PROPERTY;
1384
1.62k
      }
1385
702k
    } else {
1386
33.6k
      if (YYGETCONDITION() < 3) {
1387
3.95k
        goto yyc_ST_BACKQUOTE;
1388
29.6k
      } else {
1389
29.6k
        if (YYGETCONDITION() < 4) {
1390
3.95k
          goto yyc_ST_DOUBLE_QUOTES;
1391
25.7k
        } else {
1392
25.7k
          goto yyc_ST_HEREDOC;
1393
25.7k
        }
1394
29.6k
      }
1395
33.6k
    }
1396
736k
  } else {
1397
38.2k
    if (YYGETCONDITION() < 8) {
1398
18.2k
      if (YYGETCONDITION() < 6) {
1399
16.3k
        goto yyc_ST_LOOKING_FOR_VARNAME;
1400
16.3k
      } else {
1401
1.94k
        if (YYGETCONDITION() < 7) {
1402
1.94k
          goto yyc_ST_VAR_OFFSET;
1403
1.94k
        } else {
1404
0
          goto yyc_SHEBANG;
1405
0
        }
1406
1.94k
      }
1407
19.9k
    } else {
1408
19.9k
      if (YYGETCONDITION() < 9) {
1409
19.3k
        goto yyc_INITIAL;
1410
19.3k
      } else {
1411
638
        if (YYGETCONDITION() < 10) {
1412
534
          goto yyc_ST_END_HEREDOC;
1413
534
        } else {
1414
104
          goto yyc_ST_NOWDOC;
1415
104
        }
1416
638
      }
1417
19.9k
    }
1418
38.2k
  }
1419
/* *********************************** */
1420
701k
yyc_ST_IN_SCRIPTING:
1421
701k
  {
1422
701k
    static const unsigned char yybm[] = {
1423
      /* table 1 .. 8: 0 */
1424
701k
        0, 134, 134, 134, 134, 134, 134, 134, 
1425
701k
      134, 135,   4, 134, 134,   4, 134, 134, 
1426
701k
      134, 134, 134, 134, 134, 134, 134, 134, 
1427
701k
      134, 134, 134, 134, 134, 134, 134, 134, 
1428
701k
      135, 134, 134, 134, 134, 134, 134, 134, 
1429
701k
      134, 134,  66, 134, 134, 134, 134, 134, 
1430
701k
      190, 190, 182, 182, 182, 182, 182, 182, 
1431
701k
      166, 166, 134, 134, 134, 134, 134, 134, 
1432
701k
      134, 166, 166, 166, 166, 166, 166, 134, 
1433
701k
      134, 134, 134, 134, 134, 134, 134, 134, 
1434
701k
      134, 134, 134, 134, 134, 134, 134, 134, 
1435
701k
      134, 134, 134, 134, 134, 134, 134, 134, 
1436
701k
      134, 166, 166, 166, 166, 166, 166, 134, 
1437
701k
      134, 134, 134, 134, 134, 134, 134, 134, 
1438
701k
      134, 134, 134, 134, 134, 134, 134, 134, 
1439
701k
      134, 134, 134, 134, 134, 134, 134, 134, 
1440
701k
      134, 134, 134, 134, 134, 134, 134, 134, 
1441
701k
      134, 134, 134, 134, 134, 134, 134, 134, 
1442
701k
      134, 134, 134, 134, 134, 134, 134, 134, 
1443
701k
      134, 134, 134, 134, 134, 134, 134, 134, 
1444
701k
      134, 134, 134, 134, 134, 134, 134, 134, 
1445
701k
      134, 134, 134, 134, 134, 134, 134, 134, 
1446
701k
      134, 134, 134, 134, 134, 134, 134, 134, 
1447
701k
      134, 134, 134, 134, 134, 134, 134, 134, 
1448
701k
      134, 134, 134, 134, 134, 134, 134, 134, 
1449
701k
      134, 134, 134, 134, 134, 134, 134, 134, 
1450
701k
      134, 134, 134, 134, 134, 134, 134, 134, 
1451
701k
      134, 134, 134, 134, 134, 134, 134, 134, 
1452
701k
      134, 134, 134, 134, 134, 134, 134, 134, 
1453
701k
      134, 134, 134, 134, 134, 134, 134, 134, 
1454
701k
      134, 134, 134, 134, 134, 134, 134, 134, 
1455
701k
      134, 134, 134, 134, 134, 134, 134, 134, 
1456
      /* table 9 .. 11: 256 */
1457
701k
        0,   0,   0,   0,   0,   0,   0,   0, 
1458
701k
        0,  32,  32,   0,   0,  32,   0,   0, 
1459
701k
        0,   0,   0,   0,   0,   0,   0,   0, 
1460
701k
        0,   0,   0,   0,   0,   0,   0,   0, 
1461
701k
       32,   0,   0,   0,   0,   0,   0,   0, 
1462
701k
        0,   0,   0,   0,   0,   0,   0,   0, 
1463
701k
      192, 192, 192, 192, 192, 192, 192, 192, 
1464
701k
      192, 192,   0,   0,   0,   0,   0,   0, 
1465
701k
        0, 128, 128, 128, 128, 128, 128, 128, 
1466
701k
      128, 128, 128, 128, 128, 128, 128, 128, 
1467
701k
      128, 128, 128, 128, 128, 128, 128, 128, 
1468
701k
      128, 128, 128,   0,   0,   0,   0, 128, 
1469
701k
        0, 128, 128, 128, 128, 128, 128, 128, 
1470
701k
      128, 128, 128, 128, 128, 128, 128, 128, 
1471
701k
      128, 128, 128, 128, 128, 128, 128, 128, 
1472
701k
      128, 128, 128,   0,   0,   0,   0,   0, 
1473
701k
      128, 128, 128, 128, 128, 128, 128, 128, 
1474
701k
      128, 128, 128, 128, 128, 128, 128, 128, 
1475
701k
      128, 128, 128, 128, 128, 128, 128, 128, 
1476
701k
      128, 128, 128, 128, 128, 128, 128, 128, 
1477
701k
      128, 128, 128, 128, 128, 128, 128, 128, 
1478
701k
      128, 128, 128, 128, 128, 128, 128, 128, 
1479
701k
      128, 128, 128, 128, 128, 128, 128, 128, 
1480
701k
      128, 128, 128, 128, 128, 128, 128, 128, 
1481
701k
      128, 128, 128, 128, 128, 128, 128, 128, 
1482
701k
      128, 128, 128, 128, 128, 128, 128, 128, 
1483
701k
      128, 128, 128, 128, 128, 128, 128, 128, 
1484
701k
      128, 128, 128, 128, 128, 128, 128, 128, 
1485
701k
      128, 128, 128, 128, 128, 128, 128, 128, 
1486
701k
      128, 128, 128, 128, 128, 128, 128, 128, 
1487
701k
      128, 128, 128, 128, 128, 128, 128, 128, 
1488
701k
      128, 128, 128, 128, 128, 128, 128, 128, 
1489
701k
    };
1490
701k
    YYDEBUG(1, *YYCURSOR);
1491
701k
    YYFILL(16);
1492
701k
    yych = *YYCURSOR;
1493
701k
    if (yybm[256+yych] & 32) {
1494
126k
      goto yy5;
1495
126k
    }
1496
574k
    switch (yych) {
1497
54.1k
    case 0x00:
1498
57.4k
    case 0x01:
1499
61.0k
    case 0x02:
1500
62.9k
    case 0x03:
1501
63.1k
    case 0x04:
1502
63.6k
    case 0x05:
1503
63.7k
    case 0x06:
1504
63.9k
    case 0x07:
1505
64.4k
    case 0x08:
1506
64.4k
    case '\t':
1507
64.4k
    case '\n':
1508
65.0k
    case '\v':
1509
67.6k
    case '\f':
1510
67.6k
    case '\r':
1511
69.0k
    case 0x0E:
1512
69.5k
    case 0x0F:
1513
70.0k
    case 0x10:
1514
70.3k
    case 0x11:
1515
70.6k
    case 0x12:
1516
70.7k
    case 0x13:
1517
70.8k
    case 0x14:
1518
70.8k
    case 0x15:
1519
72.0k
    case 0x16:
1520
73.3k
    case 0x17:
1521
73.9k
    case 0x18:
1522
74.0k
    case 0x19:
1523
74.1k
    case 0x1A:
1524
74.1k
    case 0x1B:
1525
74.5k
    case 0x1C:
1526
74.6k
    case 0x1D:
1527
74.7k
    case 0x1E:
1528
74.7k
    case 0x1F:
1529
75.3k
    case 0x7F:  goto yy3;
1530
0
    case ' ':
1531
7.93k
    case '!': goto yy8;
1532
6.28k
    case '"': goto yy10;
1533
7.12k
    case '#': goto yy12;
1534
17.0k
    case '$': goto yy14;
1535
426
    case '%': goto yy15;
1536
2.09k
    case '&': goto yy16;
1537
6.28k
    case '\'':  goto yy18;
1538
35.9k
    case '(': goto yy20;
1539
19.0k
    case ')':
1540
21.1k
    case ']': goto yy22;
1541
5.19k
    case '*': goto yy24;
1542
25.0k
    case '+': goto yy25;
1543
4.27k
    case ',':
1544
36.2k
    case ';':
1545
41.5k
    case '@':
1546
42.6k
    case '~': goto yy26;
1547
9.02k
    case '-': goto yy27;
1548
3.65k
    case '.': goto yy28;
1549
6.97k
    case '/': goto yy29;
1550
4.12k
    case '0': goto yy30;
1551
4.65k
    case '1':
1552
11.3k
    case '2':
1553
13.3k
    case '3':
1554
19.9k
    case '4':
1555
20.1k
    case '5':
1556
20.5k
    case '6':
1557
25.1k
    case '7':
1558
25.5k
    case '8':
1559
28.4k
    case '9': goto yy32;
1560
3.51k
    case ':': goto yy34;
1561
63.2k
    case '<': goto yy35;
1562
14.8k
    case '=': goto yy36;
1563
677
    case '>': goto yy37;
1564
28.2k
    case '?': goto yy38;
1565
1.02k
    case 'A':
1566
2.96k
    case 'a': goto yy39;
1567
1.22k
    case 'B':
1568
3.25k
    case 'b': goto yy41;
1569
2.67k
    case 'C':
1570
9.04k
    case 'c': goto yy42;
1571
850
    case 'D':
1572
1.50k
    case 'd': goto yy43;
1573
607
    case 'E':
1574
5.14k
    case 'e': goto yy44;
1575
1.18k
    case 'F':
1576
9.62k
    case 'f': goto yy45;
1577
139
    case 'G':
1578
3.75k
    case 'g': goto yy46;
1579
5.00k
    case 'I':
1580
10.9k
    case 'i': goto yy49;
1581
205
    case 'L':
1582
435
    case 'l': goto yy50;
1583
126
    case 'M':
1584
743
    case 'm': goto yy51;
1585
142
    case 'N':
1586
2.82k
    case 'n': goto yy52;
1587
74
    case 'O':
1588
552
    case 'o': goto yy53;
1589
699
    case 'P':
1590
11.0k
    case 'p': goto yy54;
1591
622
    case 'R':
1592
5.10k
    case 'r': goto yy55;
1593
225
    case 'S':
1594
2.51k
    case 's': goto yy56;
1595
889
    case 'T':
1596
4.29k
    case 't': goto yy57;
1597
106
    case 'U':
1598
1.00k
    case 'u': goto yy58;
1599
258
    case 'V':
1600
2.58k
    case 'v': goto yy59;
1601
91
    case 'W':
1602
155
    case 'w': goto yy60;
1603
508
    case 'X':
1604
594
    case 'x': goto yy61;
1605
111
    case 'Y':
1606
2.01k
    case 'y': goto yy62;
1607
7.02k
    case '[': goto yy63;
1608
1.50k
    case '\\':  goto yy64;
1609
5.94k
    case '^': goto yy66;
1610
1.67k
    case '_': goto yy67;
1611
1.89k
    case '`': goto yy68;
1612
9.85k
    case '{': goto yy70;
1613
496
    case '|': goto yy72;
1614
11.5k
    case '}': goto yy73;
1615
38.8k
    default:  goto yy47;
1616
574k
    }
1617
75.3k
yy3:
1618
75.3k
    YYDEBUG(3, *YYCURSOR);
1619
75.3k
    ++YYCURSOR;
1620
75.3k
    YYDEBUG(4, *YYCURSOR);
1621
75.3k
    yyleng = YYCURSOR - SCNG(yy_text);
1622
75.3k
#line 3179 "Zend/zend_language_scanner.l"
1623
75.3k
    {
1624
75.3k
  if (YYCURSOR > YYLIMIT) {
1625
6.32k
    RETURN_END_TOKEN;
1626
6.32k
  }
1627
1628
69.0k
  RETURN_TOKEN(T_BAD_CHARACTER);
1629
69.0k
}
1630
0
#line 1631 "Zend/zend_language_scanner.c"
1631
193k
yy5:
1632
193k
    YYDEBUG(5, *YYCURSOR);
1633
193k
    ++YYCURSOR;
1634
193k
    YYFILL(1);
1635
193k
    yych = *YYCURSOR;
1636
193k
    YYDEBUG(6, *YYCURSOR);
1637
193k
    if (yybm[256+yych] & 32) {
1638
66.9k
      goto yy5;
1639
66.9k
    }
1640
126k
    YYDEBUG(7, *YYCURSOR);
1641
126k
    yyleng = YYCURSOR - SCNG(yy_text);
1642
126k
#line 1596 "Zend/zend_language_scanner.l"
1643
126k
    {
1644
126k
  goto return_whitespace;
1645
193k
}
1646
0
#line 1647 "Zend/zend_language_scanner.c"
1647
7.93k
yy8:
1648
7.93k
    YYDEBUG(8, *YYCURSOR);
1649
7.93k
    yych = *++YYCURSOR;
1650
7.93k
    if (yych == '=') goto yy75;
1651
146k
yy9:
1652
146k
    YYDEBUG(9, *YYCURSOR);
1653
146k
    yyleng = YYCURSOR - SCNG(yy_text);
1654
146k
#line 1968 "Zend/zend_language_scanner.l"
1655
146k
    {
1656
146k
  RETURN_TOKEN(yytext[0]);
1657
146k
}
1658
0
#line 1659 "Zend/zend_language_scanner.c"
1659
6.39k
yy10:
1660
6.39k
    YYDEBUG(10, *YYCURSOR);
1661
6.39k
    ++YYCURSOR;
1662
6.39k
    YYDEBUG(11, *YYCURSOR);
1663
6.39k
    yyleng = YYCURSOR - SCNG(yy_text);
1664
6.39k
#line 2631 "Zend/zend_language_scanner.l"
1665
6.39k
    {
1666
6.39k
  int bprefix = (yytext[0] != '"') ? 1 : 0;
1667
1668
215k
  while (YYCURSOR < YYLIMIT) {
1669
215k
    switch (*YYCURSOR++) {
1670
5.15k
      case '"':
1671
5.15k
        yyleng = YYCURSOR - SCNG(yy_text);
1672
5.15k
        if (EXPECTED(zend_scan_escape_string(zendlval, yytext+bprefix+1, yyleng-bprefix-2, '"') == SUCCESS)
1673
5.15k
         || !PARSER_MODE()) {
1674
5.15k
          RETURN_TOKEN_WITH_VAL(T_CONSTANT_ENCAPSED_STRING);
1675
5.15k
        } else {
1676
1
          RETURN_TOKEN(T_ERROR);
1677
1
        }
1678
1.03k
      case '$':
1679
1.03k
        if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
1680
760
          break;
1681
760
        }
1682
274
        continue;
1683
507
      case '{':
1684
507
        if (*YYCURSOR == '$') {
1685
25
          break;
1686
25
        }
1687
482
        continue;
1688
2.56k
      case '\\':
1689
2.56k
        if (YYCURSOR < YYLIMIT) {
1690
2.55k
          YYCURSOR++;
1691
2.55k
        }
1692
2.56k
        ZEND_FALLTHROUGH;
1693
208k
      default:
1694
208k
        continue;
1695
215k
    }
1696
1697
785
    YYCURSOR--;
1698
785
    break;
1699
215k
  }
1700
1701
  /* Remember how much was scanned to save rescanning */
1702
6.39k
  SET_DOUBLE_QUOTES_SCANNED_LENGTH(YYCURSOR - SCNG(yy_text) - yyleng);
1703
1704
1.23k
  YYCURSOR = SCNG(yy_text) + yyleng;
1705
1706
1.23k
  BEGIN(ST_DOUBLE_QUOTES);
1707
1.23k
  RETURN_TOKEN('"');
1708
1.23k
}
1709
0
#line 1710 "Zend/zend_language_scanner.c"
1710
7.12k
yy12:
1711
7.12k
    YYDEBUG(12, *YYCURSOR);
1712
7.12k
    yych = *++YYCURSOR;
1713
7.12k
    if (yych == '[') goto yy77;
1714
7.34k
yy13:
1715
7.34k
    YYDEBUG(13, *YYCURSOR);
1716
7.34k
    yyleng = YYCURSOR - SCNG(yy_text);
1717
7.34k
#line 2459 "Zend/zend_language_scanner.l"
1718
7.34k
    {
1719
22.6k
  while (YYCURSOR < YYLIMIT) {
1720
22.4k
    switch (*YYCURSOR++) {
1721
2.48k
      case '\r':
1722
7.14k
      case '\n':
1723
7.14k
        YYCURSOR--;
1724
7.14k
        break;
1725
197
      case '?':
1726
197
        if (*YYCURSOR == '>') {
1727
4
          YYCURSOR--;
1728
4
          break;
1729
4
        }
1730
193
        ZEND_FALLTHROUGH;
1731
15.3k
      default:
1732
15.3k
        continue;
1733
22.4k
    }
1734
1735
7.14k
    break;
1736
22.4k
  }
1737
1738
7.34k
  yyleng = YYCURSOR - SCNG(yy_text);
1739
7.34k
  RETURN_OR_SKIP_TOKEN(T_COMMENT);
1740
7.34k
}
1741
0
#line 1742 "Zend/zend_language_scanner.c"
1742
17.0k
yy14:
1743
17.0k
    YYDEBUG(14, *YYCURSOR);
1744
17.0k
    yych = *++YYCURSOR;
1745
17.0k
    if (yych <= '_') {
1746
2.61k
      if (yych <= '@') goto yy9;
1747
626
      if (yych <= 'Z') goto yy79;
1748
218
      if (yych <= '^') goto yy9;
1749
46
      goto yy79;
1750
14.4k
    } else {
1751
14.4k
      if (yych <= '`') goto yy9;
1752
14.4k
      if (yych <= 'z') goto yy79;
1753
3.56k
      if (yych <= 0x7F) goto yy9;
1754
741
      goto yy79;
1755
3.56k
    }
1756
426
yy15:
1757
426
    YYDEBUG(15, *YYCURSOR);
1758
426
    yych = *++YYCURSOR;
1759
426
    if (yych == '=') goto yy82;
1760
416
    goto yy9;
1761
2.09k
yy16:
1762
2.09k
    YYDEBUG(16, *YYCURSOR);
1763
2.09k
    yyaccept = 0;
1764
2.09k
    yych = *(YYMARKER = ++YYCURSOR);
1765
2.09k
    if (yych <= '"') {
1766
807
      if (yych <= '\f') {
1767
548
        if (yych <= 0x08) goto yy17;
1768
504
        if (yych <= '\n') goto yy85;
1769
504
      } else {
1770
259
        if (yych <= '\r') goto yy85;
1771
232
        if (yych == ' ') goto yy85;
1772
232
      }
1773
1.28k
    } else {
1774
1.28k
      if (yych <= '-') {
1775
737
        if (yych <= '$') goto yy85;
1776
294
        if (yych == '&') goto yy90;
1777
547
      } else {
1778
547
        if (yych <= '/') goto yy85;
1779
482
        if (yych == '=') goto yy94;
1780
482
      }
1781
1.28k
    }
1782
1.16k
yy17:
1783
1.16k
    YYDEBUG(17, *YYCURSOR);
1784
1.16k
    yyleng = YYCURSOR - SCNG(yy_text);
1785
1.16k
#line 1954 "Zend/zend_language_scanner.l"
1786
1.16k
    {
1787
1.16k
  RETURN_TOKEN(T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG);
1788
1.16k
}
1789
0
#line 1790 "Zend/zend_language_scanner.c"
1790
6.28k
yy18:
1791
6.28k
    YYDEBUG(18, *YYCURSOR);
1792
6.28k
    ++YYCURSOR;
1793
6.28k
    YYDEBUG(19, *YYCURSOR);
1794
6.28k
    yyleng = YYCURSOR - SCNG(yy_text);
1795
6.28k
#line 2537 "Zend/zend_language_scanner.l"
1796
6.28k
    {
1797
6.28k
  char *s, *t;
1798
6.28k
  char *end;
1799
6.28k
  int bprefix = (yytext[0] != '\'') ? 1 : 0;
1800
1801
223k
  while (1) {
1802
223k
    if (YYCURSOR < YYLIMIT) {
1803
223k
      if (*YYCURSOR == '\'') {
1804
5.51k
        YYCURSOR++;
1805
5.51k
        yyleng = YYCURSOR - SCNG(yy_text);
1806
1807
5.51k
        break;
1808
217k
      } else if (*YYCURSOR++ == '\\' && YYCURSOR < YYLIMIT) {
1809
451
        YYCURSOR++;
1810
451
      }
1811
223k
    } else {
1812
768
      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
768
      ZVAL_NULL(zendlval);
1818
768
      RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
1819
768
    }
1820
223k
  }
1821
1822
5.51k
  if (yyleng-bprefix-2 <= 1) {
1823
709
    if (yyleng-bprefix-2 < 1) {
1824
207
      ZVAL_EMPTY_STRING(zendlval);
1825
502
    } else {
1826
502
      zend_uchar c = (zend_uchar)*(yytext+bprefix+1);
1827
502
      HANDLE_NEWLINE(c);
1828
502
      ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR(c));
1829
502
    }
1830
709
    goto skip_escape_conversion;
1831
709
  }
1832
4.80k
  ZVAL_STRINGL(zendlval, yytext+bprefix+1, yyleng-bprefix-2);
1833
1834
  /* convert escape sequences */
1835
4.80k
  s = Z_STRVAL_P(zendlval);
1836
4.80k
  end = s+Z_STRLEN_P(zendlval);
1837
186k
  while (1) {
1838
186k
    if (UNEXPECTED(*s=='\\')) {
1839
281
      break;
1840
281
    }
1841
186k
    if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
1842
2.12k
      CG(zend_lineno)++;
1843
2.12k
    }
1844
186k
    s++;
1845
186k
    if (s == end) {
1846
4.52k
      goto skip_escape_conversion;
1847
4.52k
    }
1848
186k
  }
1849
1850
281
  t = s;
1851
7.03k
  while (s<end) {
1852
6.75k
    if (*s=='\\') {
1853
432
      s++;
1854
432
      if (*s == '\\' || *s == '\'') {
1855
30
        *t++ = *s;
1856
402
      } else {
1857
402
        *t++ = '\\';
1858
402
        *t++ = *s;
1859
402
      }
1860
6.32k
    } else {
1861
6.32k
      *t++ = *s;
1862
6.32k
    }
1863
6.75k
    if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
1864
113
      CG(zend_lineno)++;
1865
113
    }
1866
6.75k
    s++;
1867
6.75k
  }
1868
281
  *t = 0;
1869
281
  Z_STRLEN_P(zendlval) = t - Z_STRVAL_P(zendlval);
1870
1871
5.51k
skip_escape_conversion:
1872
5.51k
  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
5.51k
  RETURN_TOKEN_WITH_VAL(T_CONSTANT_ENCAPSED_STRING);
1887
5.51k
}
1888
0
#line 1889 "Zend/zend_language_scanner.c"
1889
35.9k
yy20:
1890
35.9k
    YYDEBUG(20, *YYCURSOR);
1891
35.9k
    yyaccept = 1;
1892
35.9k
    yych = *(YYMARKER = ++YYCURSOR);
1893
35.9k
    if (yych <= 'S') {
1894
31.2k
      if (yych <= 'D') {
1895
30.7k
        if (yych <= ' ') {
1896
16.5k
          if (yych == '\t') goto yy97;
1897
13.9k
          if (yych >= ' ') goto yy97;
1898
14.1k
        } else {
1899
14.1k
          if (yych <= '@') goto yy21;
1900
207
          if (yych != 'C') goto yy97;
1901
207
        }
1902
30.7k
      } else {
1903
519
        if (yych <= 'I') {
1904
427
          if (yych == 'F') goto yy97;
1905
170
          if (yych >= 'I') goto yy97;
1906
170
        } else {
1907
92
          if (yych == 'O') goto yy97;
1908
81
          if (yych >= 'R') goto yy97;
1909
81
        }
1910
519
      }
1911
31.2k
    } else {
1912
4.68k
      if (yych <= 'f') {
1913
1.44k
        if (yych <= 'b') {
1914
923
          if (yych <= 'T') goto yy21;
1915
844
          if (yych <= 'V') goto yy97;
1916
825
          if (yych >= 'a') goto yy97;
1917
825
        } else {
1918
521
          if (yych == 'd') goto yy97;
1919
345
          if (yych >= 'f') goto yy97;
1920
345
        }
1921
3.23k
      } else {
1922
3.23k
        if (yych <= 'o') {
1923
1.09k
          if (yych == 'i') goto yy97;
1924
734
          if (yych >= 'o') goto yy97;
1925
2.14k
        } else {
1926
2.14k
          if (yych <= 's') {
1927
1.40k
            if (yych >= 'r') goto yy97;
1928
1.40k
          } else {
1929
744
            if (yych <= 't') goto yy21;
1930
617
            if (yych <= 'v') goto yy97;
1931
617
          }
1932
2.14k
        }
1933
3.23k
      }
1934
4.68k
    }
1935
42.8k
yy21:
1936
42.8k
    YYDEBUG(21, *YYCURSOR);
1937
42.8k
    yyleng = YYCURSOR - SCNG(yy_text);
1938
42.8k
#line 1963 "Zend/zend_language_scanner.l"
1939
42.8k
    {
1940
42.8k
  enter_nesting(yytext[0]);
1941
42.8k
  RETURN_TOKEN(yytext[0]);
1942
42.8k
}
1943
0
#line 1944 "Zend/zend_language_scanner.c"
1944
21.1k
yy22:
1945
21.1k
    YYDEBUG(22, *YYCURSOR);
1946
21.1k
    ++YYCURSOR;
1947
21.1k
    YYDEBUG(23, *YYCURSOR);
1948
21.1k
    yyleng = YYCURSOR - SCNG(yy_text);
1949
21.1k
#line 1958 "Zend/zend_language_scanner.l"
1950
21.1k
    {
1951
  /* Check that ] and ) match up properly with a preceding [ or ( */
1952
21.1k
  RETURN_EXIT_NESTING_TOKEN(yytext[0]);
1953
21.1k
}
1954
0
#line 1955 "Zend/zend_language_scanner.c"
1955
5.19k
yy24:
1956
5.19k
    YYDEBUG(24, *YYCURSOR);
1957
5.19k
    yych = *++YYCURSOR;
1958
5.19k
    if (yych == '*') goto yy108;
1959
4.98k
    if (yych == '=') goto yy110;
1960
4.97k
    goto yy9;
1961
25.0k
yy25:
1962
25.0k
    YYDEBUG(25, *YYCURSOR);
1963
25.0k
    yych = *++YYCURSOR;
1964
25.0k
    if (yych == '+') goto yy112;
1965
2.02k
    if (yych == '=') goto yy114;
1966
1.91k
    goto yy9;
1967
42.6k
yy26:
1968
42.6k
    YYDEBUG(26, *YYCURSOR);
1969
42.6k
    ++YYCURSOR;
1970
42.6k
    goto yy9;
1971
9.02k
yy27:
1972
9.02k
    YYDEBUG(27, *YYCURSOR);
1973
9.02k
    yych = *++YYCURSOR;
1974
9.02k
    if (yych <= '<') {
1975
6.24k
      if (yych == '-') goto yy116;
1976
6.16k
      goto yy9;
1977
6.24k
    } else {
1978
2.77k
      if (yych <= '=') goto yy118;
1979
2.76k
      if (yych <= '>') goto yy120;
1980
1.42k
      goto yy9;
1981
2.76k
    }
1982
3.65k
yy28:
1983
3.65k
    YYDEBUG(28, *YYCURSOR);
1984
3.65k
    yyaccept = 2;
1985
3.65k
    yych = *(YYMARKER = ++YYCURSOR);
1986
3.65k
    if (yych <= '/') {
1987
1.04k
      if (yych == '.') goto yy122;
1988
619
      goto yy9;
1989
2.61k
    } else {
1990
2.61k
      if (yych <= '9') goto yy123;
1991
2.11k
      if (yych == '=') goto yy126;
1992
1.96k
      goto yy9;
1993
2.11k
    }
1994
6.97k
yy29:
1995
6.97k
    YYDEBUG(29, *YYCURSOR);
1996
6.97k
    yych = *++YYCURSOR;
1997
6.97k
    if (yych <= '.') {
1998
2.32k
      if (yych == '*') goto yy128;
1999
863
      goto yy9;
2000
4.64k
    } else {
2001
4.64k
      if (yych <= '/') goto yy130;
2002
4.24k
      if (yych == '=') goto yy131;
2003
4.23k
      goto yy9;
2004
4.24k
    }
2005
4.12k
yy30:
2006
4.12k
    YYDEBUG(30, *YYCURSOR);
2007
4.12k
    yyaccept = 3;
2008
4.12k
    yych = *(YYMARKER = ++YYCURSOR);
2009
4.12k
    if (yych <= 'X') {
2010
1.04k
      if (yych <= 'N') {
2011
1.02k
        if (yych == 'B') goto yy134;
2012
1.02k
        goto yy33;
2013
1.02k
      } else {
2014
16
        if (yych <= 'O') goto yy136;
2015
13
        if (yych <= 'W') goto yy33;
2016
11
        goto yy137;
2017
13
      }
2018
3.07k
    } else {
2019
3.07k
      if (yych <= 'n') {
2020
428
        if (yych == 'b') goto yy134;
2021
416
        goto yy33;
2022
2.65k
      } else {
2023
2.65k
        if (yych <= 'o') goto yy136;
2024
2.64k
        if (yych == 'x') goto yy137;
2025
2.60k
        goto yy33;
2026
2.64k
      }
2027
3.07k
    }
2028
32.0k
yy31:
2029
32.0k
    YYDEBUG(31, *YYCURSOR);
2030
32.0k
    yyleng = YYCURSOR - SCNG(yy_text);
2031
32.0k
#line 2102 "Zend/zend_language_scanner.l"
2032
32.0k
    {
2033
32.0k
  size_t len = yyleng;
2034
32.0k
  char *end, *lnum = yytext;
2035
32.0k
  bool is_octal = lnum[0] == '0';
2036
32.0k
  bool contains_underscores = (memchr(lnum, '_', len) != NULL);
2037
2038
32.0k
  if (contains_underscores) {
2039
1
    lnum = estrndup(lnum, len);
2040
1
    strip_underscores(lnum, &len);
2041
1
  }
2042
2043
  /* Digits 8 and 9 are illegal in octal literals. */
2044
32.0k
  if (is_octal) {
2045
3.95k
    size_t i;
2046
8.74k
    for (i = 0; i < len; i++) {
2047
4.79k
      if (lnum[i] == '8' || lnum[i] == '9') {
2048
7
        zend_throw_exception(zend_ce_parse_error, "Invalid numeric literal", 0);
2049
7
        if (PARSER_MODE()) {
2050
1
          if (contains_underscores) {
2051
0
            efree(lnum);
2052
0
          }
2053
1
          ZVAL_UNDEF(zendlval);
2054
1
          RETURN_TOKEN(T_ERROR);
2055
1
        }
2056
2057
        /* Continue in order to determine if this is T_LNUMBER or T_DNUMBER. */
2058
6
        len = i;
2059
6
        break;
2060
7
      }
2061
4.79k
    }
2062
3.95k
  }
2063
2064
2065
32.0k
  if (len < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
2066
31.8k
    errno = 0;
2067
    /* base must be passed explicitly for correct parse error on Windows */
2068
31.8k
    ZVAL_LONG(zendlval, ZEND_STRTOL(lnum, &end, is_octal ? 8 : 10));
2069
31.8k
    ZEND_ASSERT(end == lnum + len);
2070
31.8k
  } else {
2071
168
    errno = 0;
2072
168
    ZVAL_LONG(zendlval, ZEND_STRTOL(lnum, &end, 0));
2073
168
    if (errno == ERANGE) { /* Overflow */
2074
144
      errno = 0;
2075
144
      if (is_octal) { /* octal overflow */
2076
3
        ZVAL_DOUBLE(zendlval, zend_oct_strtod(lnum, (const char **)&end));
2077
141
      } else {
2078
141
        ZVAL_DOUBLE(zendlval, zend_strtod(lnum, (const char **)&end));
2079
141
      }
2080
144
      ZEND_ASSERT(end == lnum + len);
2081
144
      if (contains_underscores) {
2082
1
        efree(lnum);
2083
1
      }
2084
144
      RETURN_TOKEN_WITH_VAL(T_DNUMBER);
2085
144
    }
2086
24
    ZEND_ASSERT(end == lnum + len);
2087
24
  }
2088
31.8k
  ZEND_ASSERT(!errno);
2089
31.8k
  if (contains_underscores) {
2090
0
    efree(lnum);
2091
0
  }
2092
31.8k
  RETURN_TOKEN_WITH_VAL(T_LNUMBER);
2093
31.8k
}
2094
0
#line 2095 "Zend/zend_language_scanner.c"
2095
59.3k
yy32:
2096
59.3k
    YYDEBUG(32, *YYCURSOR);
2097
59.3k
    yyaccept = 3;
2098
59.3k
    YYMARKER = ++YYCURSOR;
2099
59.3k
    YYFILL(3);
2100
59.3k
    yych = *YYCURSOR;
2101
63.3k
yy33:
2102
63.3k
    YYDEBUG(33, *YYCURSOR);
2103
63.3k
    if (yybm[256+yych] & 64) {
2104
30.8k
      goto yy32;
2105
30.8k
    }
2106
32.5k
    if (yych <= 'E') {
2107
15.6k
      if (yych == '.') goto yy133;
2108
15.3k
      if (yych <= 'D') goto yy31;
2109
144
      goto yy135;
2110
16.8k
    } else {
2111
16.8k
      if (yych <= '_') {
2112
6.66k
        if (yych <= '^') goto yy31;
2113
46
        goto yy138;
2114
10.2k
      } else {
2115
10.2k
        if (yych == 'e') goto yy135;
2116
10.1k
        goto yy31;
2117
10.2k
      }
2118
16.8k
    }
2119
3.51k
yy34:
2120
3.51k
    YYDEBUG(34, *YYCURSOR);
2121
3.51k
    yych = *++YYCURSOR;
2122
3.51k
    if (yych == ':') goto yy139;
2123
1.92k
    goto yy9;
2124
63.2k
yy35:
2125
63.2k
    YYDEBUG(35, *YYCURSOR);
2126
63.2k
    yych = *++YYCURSOR;
2127
63.2k
    if (yych <= ';') goto yy9;
2128
55.6k
    if (yych <= '<') goto yy141;
2129
28.2k
    if (yych <= '=') goto yy143;
2130
22.1k
    if (yych <= '>') goto yy145;
2131
21.8k
    goto yy9;
2132
21.8k
yy36:
2133
14.8k
    YYDEBUG(36, *YYCURSOR);
2134
14.8k
    yych = *++YYCURSOR;
2135
14.8k
    if (yych <= '<') goto yy9;
2136
2.27k
    if (yych <= '=') goto yy146;
2137
2.08k
    if (yych <= '>') goto yy148;
2138
1.61k
    goto yy9;
2139
1.61k
yy37:
2140
677
    YYDEBUG(37, *YYCURSOR);
2141
677
    yych = *++YYCURSOR;
2142
677
    if (yych <= '<') goto yy9;
2143
284
    if (yych <= '=') goto yy150;
2144
265
    if (yych <= '>') goto yy152;
2145
168
    goto yy9;
2146
28.2k
yy38:
2147
28.2k
    YYDEBUG(38, *YYCURSOR);
2148
28.2k
    yyaccept = 2;
2149
28.2k
    yych = *(YYMARKER = ++YYCURSOR);
2150
28.2k
    if (yych <= '=') {
2151
9.79k
      if (yych == '-') goto yy154;
2152
9.68k
      goto yy9;
2153
18.4k
    } else {
2154
18.4k
      if (yych <= '>') goto yy155;
2155
14.6k
      if (yych <= '?') goto yy157;
2156
6.59k
      goto yy9;
2157
14.6k
    }
2158
2.96k
yy39:
2159
2.96k
    YYDEBUG(39, *YYCURSOR);
2160
2.96k
    yyaccept = 4;
2161
2.96k
    yych = *(YYMARKER = ++YYCURSOR);
2162
2.96k
    if (yych <= 'S') {
2163
1.09k
      if (yych <= 'M') {
2164
1.01k
        if (yych == 'B') goto yy159;
2165
1.00k
        goto yy48;
2166
1.01k
      } else {
2167
85
        if (yych <= 'N') goto yy160;
2168
79
        if (yych <= 'Q') goto yy48;
2169
67
        if (yych <= 'R') goto yy161;
2170
57
        goto yy162;
2171
67
      }
2172
1.86k
    } else {
2173
1.86k
      if (yych <= 'n') {
2174
412
        if (yych == 'b') goto yy159;
2175
256
        if (yych <= 'm') goto yy48;
2176
149
        goto yy160;
2177
1.45k
      } else {
2178
1.45k
        if (yych <= 'q') goto yy48;
2179
1.45k
        if (yych <= 'r') goto yy161;
2180
704
        if (yych <= 's') goto yy162;
2181
256
        goto yy48;
2182
704
      }
2183
1.86k
    }
2184
102k
yy40:
2185
102k
    YYDEBUG(40, *YYCURSOR);
2186
102k
    yyleng = YYCURSOR - SCNG(yy_text);
2187
102k
#line 2454 "Zend/zend_language_scanner.l"
2188
102k
    {
2189
102k
  RETURN_TOKEN_WITH_STR(T_STRING, 0);
2190
102k
}
2191
0
#line 2192 "Zend/zend_language_scanner.c"
2192
3.25k
yy41:
2193
3.25k
    YYDEBUG(41, *YYCURSOR);
2194
3.25k
    yyaccept = 4;
2195
3.25k
    yych = *(YYMARKER = ++YYCURSOR);
2196
3.25k
    if (yych <= ';') {
2197
736
      if (yych <= '"') {
2198
590
        if (yych <= '!') goto yy48;
2199
101
        goto yy10;
2200
590
      } else {
2201
146
        if (yych == '\'') goto yy18;
2202
143
        goto yy48;
2203
146
      }
2204
2.51k
    } else {
2205
2.51k
      if (yych <= 'R') {
2206
234
        if (yych <= '<') goto yy165;
2207
66
        if (yych <= 'Q') goto yy48;
2208
6
        goto yy166;
2209
2.28k
      } else {
2210
2.28k
        if (yych == 'r') goto yy166;
2211
2.24k
        goto yy48;
2212
2.28k
      }
2213
2.51k
    }
2214
9.04k
yy42:
2215
9.04k
    YYDEBUG(42, *YYCURSOR);
2216
9.04k
    yyaccept = 4;
2217
9.04k
    yych = *(YYMARKER = ++YYCURSOR);
2218
9.04k
    if (yych <= 'O') {
2219
1.23k
      if (yych <= 'K') {
2220
1.19k
        if (yych == 'A') goto yy167;
2221
1.18k
        goto yy48;
2222
1.19k
      } else {
2223
46
        if (yych <= 'L') goto yy168;
2224
40
        if (yych <= 'N') goto yy48;
2225
35
        goto yy169;
2226
40
      }
2227
7.81k
    } else {
2228
7.81k
      if (yych <= 'k') {
2229
3.20k
        if (yych == 'a') goto yy167;
2230
2.28k
        goto yy48;
2231
4.60k
      } else {
2232
4.60k
        if (yych <= 'l') goto yy168;
2233
2.70k
        if (yych == 'o') goto yy169;
2234
1.93k
        goto yy48;
2235
2.70k
      }
2236
7.81k
    }
2237
1.50k
yy43:
2238
1.50k
    YYDEBUG(43, *YYCURSOR);
2239
1.50k
    yyaccept = 4;
2240
1.50k
    yych = *(YYMARKER = ++YYCURSOR);
2241
1.50k
    if (yych <= 'O') {
2242
327
      if (yych <= 'H') {
2243
312
        if (yych == 'E') goto yy170;
2244
309
        goto yy48;
2245
312
      } else {
2246
15
        if (yych <= 'I') goto yy171;
2247
15
        if (yych <= 'N') goto yy48;
2248
7
        goto yy172;
2249
15
      }
2250
1.17k
    } else {
2251
1.17k
      if (yych <= 'h') {
2252
1.05k
        if (yych == 'e') goto yy170;
2253
755
        goto yy48;
2254
1.05k
      } else {
2255
125
        if (yych <= 'i') goto yy171;
2256
96
        if (yych == 'o') goto yy172;
2257
78
        goto yy48;
2258
96
      }
2259
1.17k
    }
2260
5.14k
yy44:
2261
5.14k
    YYDEBUG(44, *YYCURSOR);
2262
5.14k
    yyaccept = 4;
2263
5.14k
    yych = *(YYMARKER = ++YYCURSOR);
2264
5.14k
    switch (yych) {
2265
4
    case 'C':
2266
1.25k
    case 'c': goto yy174;
2267
19
    case 'L':
2268
54
    case 'l': goto yy175;
2269
12
    case 'M':
2270
101
    case 'm': goto yy176;
2271
694
    case 'N':
2272
1.82k
    case 'n': goto yy177;
2273
7
    case 'V':
2274
87
    case 'v': goto yy178;
2275
19
    case 'X':
2276
670
    case 'x': goto yy179;
2277
1.14k
    default:  goto yy48;
2278
5.14k
    }
2279
9.62k
yy45:
2280
9.62k
    YYDEBUG(45, *YYCURSOR);
2281
9.62k
    yyaccept = 4;
2282
9.62k
    yych = *(YYMARKER = ++YYCURSOR);
2283
9.62k
    if (yych <= 'U') {
2284
352
      if (yych <= 'M') {
2285
186
        if (yych == 'I') goto yy180;
2286
177
        goto yy48;
2287
186
      } else {
2288
166
        if (yych <= 'N') goto yy181;
2289
162
        if (yych <= 'O') goto yy183;
2290
87
        if (yych <= 'T') goto yy48;
2291
2
        goto yy184;
2292
87
      }
2293
9.27k
    } else {
2294
9.27k
      if (yych <= 'n') {
2295
431
        if (yych == 'i') goto yy180;
2296
213
        if (yych <= 'm') goto yy48;
2297
49
        goto yy181;
2298
8.84k
      } else {
2299
8.84k
        if (yych <= 'o') goto yy183;
2300
5.61k
        if (yych == 'u') goto yy184;
2301
482
        goto yy48;
2302
5.61k
      }
2303
9.27k
    }
2304
3.75k
yy46:
2305
3.75k
    YYDEBUG(46, *YYCURSOR);
2306
3.75k
    yyaccept = 4;
2307
3.75k
    yych = *(YYMARKER = ++YYCURSOR);
2308
3.75k
    if (yych <= 'O') {
2309
473
      if (yych == 'L') goto yy185;
2310
425
      if (yych <= 'N') goto yy48;
2311
34
      goto yy186;
2312
3.27k
    } else {
2313
3.27k
      if (yych <= 'l') {
2314
3.17k
        if (yych <= 'k') goto yy48;
2315
36
        goto yy185;
2316
3.17k
      } else {
2317
102
        if (yych == 'o') goto yy186;
2318
18
        goto yy48;
2319
102
      }
2320
3.27k
    }
2321
385k
yy47:
2322
385k
    YYDEBUG(47, *YYCURSOR);
2323
385k
    yyaccept = 4;
2324
385k
    YYMARKER = ++YYCURSOR;
2325
385k
    YYFILL(1);
2326
385k
    yych = *YYCURSOR;
2327
446k
yy48:
2328
446k
    YYDEBUG(48, *YYCURSOR);
2329
446k
    if (yybm[256+yych] & 128) {
2330
343k
      goto yy47;
2331
343k
    }
2332
103k
    if (yych == '\\') goto yy164;
2333
102k
    goto yy40;
2334
102k
yy49:
2335
10.9k
    YYDEBUG(49, *YYCURSOR);
2336
10.9k
    yyaccept = 4;
2337
10.9k
    yych = *(YYMARKER = ++YYCURSOR);
2338
10.9k
    if (yych <= 'S') {
2339
2.84k
      if (yych <= 'L') {
2340
671
        if (yych == 'F') goto yy187;
2341
668
        goto yy48;
2342
2.17k
      } else {
2343
2.17k
        if (yych <= 'M') goto yy189;
2344
2.04k
        if (yych <= 'N') goto yy190;
2345
8
        if (yych <= 'R') goto yy48;
2346
8
        goto yy191;
2347
8
      }
2348
8.06k
    } else {
2349
8.06k
      if (yych <= 'm') {
2350
576
        if (yych == 'f') goto yy187;
2351
471
        if (yych <= 'l') goto yy48;
2352
255
        goto yy189;
2353
7.49k
      } else {
2354
7.49k
        if (yych <= 'n') goto yy190;
2355
3.10k
        if (yych == 's') goto yy191;
2356
2.85k
        goto yy48;
2357
3.10k
      }
2358
8.06k
    }
2359
435
yy50:
2360
435
    YYDEBUG(50, *YYCURSOR);
2361
435
    yyaccept = 4;
2362
435
    yych = *(YYMARKER = ++YYCURSOR);
2363
435
    if (yych == 'I') goto yy192;
2364
425
    if (yych == 'i') goto yy192;
2365
314
    goto yy48;
2366
743
yy51:
2367
743
    YYDEBUG(51, *YYCURSOR);
2368
743
    yyaccept = 4;
2369
743
    yych = *(YYMARKER = ++YYCURSOR);
2370
743
    if (yych == 'A') goto yy193;
2371
727
    if (yych == 'a') goto yy193;
2372
653
    goto yy48;
2373
2.82k
yy52:
2374
2.82k
    YYDEBUG(52, *YYCURSOR);
2375
2.82k
    yyaccept = 4;
2376
2.82k
    yych = *(YYMARKER = ++YYCURSOR);
2377
2.82k
    if (yych <= 'E') {
2378
177
      if (yych == 'A') goto yy194;
2379
122
      if (yych <= 'D') goto yy48;
2380
9
      goto yy195;
2381
2.64k
    } else {
2382
2.64k
      if (yych <= 'a') {
2383
351
        if (yych <= '`') goto yy48;
2384
310
        goto yy194;
2385
2.29k
      } else {
2386
2.29k
        if (yych == 'e') goto yy195;
2387
470
        goto yy48;
2388
2.29k
      }
2389
2.64k
    }
2390
552
yy53:
2391
552
    YYDEBUG(53, *YYCURSOR);
2392
552
    yyaccept = 4;
2393
552
    yych = *(YYMARKER = ++YYCURSOR);
2394
552
    if (yych == 'R') goto yy196;
2395
525
    if (yych == 'r') goto yy196;
2396
497
    goto yy48;
2397
11.0k
yy54:
2398
11.0k
    YYDEBUG(54, *YYCURSOR);
2399
11.0k
    yyaccept = 4;
2400
11.0k
    yych = *(YYMARKER = ++YYCURSOR);
2401
11.0k
    if (yych <= 'U') {
2402
2.33k
      if (yych == 'R') goto yy198;
2403
2.28k
      if (yych <= 'T') goto yy48;
2404
3
      goto yy199;
2405
8.69k
    } else {
2406
8.69k
      if (yych <= 'r') {
2407
7.27k
        if (yych <= 'q') goto yy48;
2408
1.64k
        goto yy198;
2409
7.27k
      } else {
2410
1.41k
        if (yych == 'u') goto yy199;
2411
292
        goto yy48;
2412
1.41k
      }
2413
8.69k
    }
2414
5.10k
yy55:
2415
5.10k
    YYDEBUG(55, *YYCURSOR);
2416
5.10k
    yyaccept = 4;
2417
5.10k
    yych = *(YYMARKER = ++YYCURSOR);
2418
5.10k
    if (yych == 'E') goto yy200;
2419
5.08k
    if (yych == 'e') goto yy200;
2420
3.47k
    goto yy48;
2421
3.47k
yy56:
2422
2.51k
    YYDEBUG(56, *YYCURSOR);
2423
2.51k
    yyaccept = 4;
2424
2.51k
    yych = *(YYMARKER = ++YYCURSOR);
2425
2.51k
    if (yych <= 'W') {
2426
218
      if (yych == 'T') goto yy201;
2427
209
      if (yych <= 'V') goto yy48;
2428
7
      goto yy202;
2429
2.29k
    } else {
2430
2.29k
      if (yych <= 't') {
2431
1.45k
        if (yych <= 's') goto yy48;
2432
843
        goto yy201;
2433
1.45k
      } else {
2434
843
        if (yych == 'w') goto yy202;
2435
784
        goto yy48;
2436
843
      }
2437
2.29k
    }
2438
4.29k
yy57:
2439
4.29k
    YYDEBUG(57, *YYCURSOR);
2440
4.29k
    yyaccept = 4;
2441
4.29k
    yych = *(YYMARKER = ++YYCURSOR);
2442
4.29k
    if (yych <= 'R') {
2443
2.11k
      if (yych == 'H') goto yy203;
2444
2.10k
      if (yych <= 'Q') goto yy48;
2445
57
      goto yy204;
2446
2.17k
    } else {
2447
2.17k
      if (yych <= 'h') {
2448
1.33k
        if (yych <= 'g') goto yy48;
2449
141
        goto yy203;
2450
1.33k
      } else {
2451
843
        if (yych == 'r') goto yy204;
2452
195
        goto yy48;
2453
843
      }
2454
2.17k
    }
2455
1.00k
yy58:
2456
1.00k
    YYDEBUG(58, *YYCURSOR);
2457
1.00k
    yyaccept = 4;
2458
1.00k
    yych = *(YYMARKER = ++YYCURSOR);
2459
1.00k
    if (yych <= 'S') {
2460
104
      if (yych == 'N') goto yy205;
2461
86
      if (yych <= 'R') goto yy48;
2462
0
      goto yy206;
2463
904
    } else {
2464
904
      if (yych <= 'n') {
2465
561
        if (yych <= 'm') goto yy48;
2466
378
        goto yy205;
2467
561
      } else {
2468
343
        if (yych == 's') goto yy206;
2469
71
        goto yy48;
2470
343
      }
2471
904
    }
2472
2.58k
yy59:
2473
2.58k
    YYDEBUG(59, *YYCURSOR);
2474
2.58k
    yyaccept = 4;
2475
2.58k
    yych = *(YYMARKER = ++YYCURSOR);
2476
2.58k
    if (yych == 'A') goto yy207;
2477
2.58k
    if (yych == 'a') goto yy207;
2478
348
    goto yy48;
2479
348
yy60:
2480
155
    YYDEBUG(60, *YYCURSOR);
2481
155
    yyaccept = 4;
2482
155
    yych = *(YYMARKER = ++YYCURSOR);
2483
155
    if (yych == 'H') goto yy208;
2484
143
    if (yych == 'h') goto yy208;
2485
113
    goto yy48;
2486
594
yy61:
2487
594
    YYDEBUG(61, *YYCURSOR);
2488
594
    yyaccept = 4;
2489
594
    yych = *(YYMARKER = ++YYCURSOR);
2490
594
    if (yych == 'O') goto yy209;
2491
583
    if (yych == 'o') goto yy209;
2492
582
    goto yy48;
2493
2.01k
yy62:
2494
2.01k
    YYDEBUG(62, *YYCURSOR);
2495
2.01k
    yyaccept = 4;
2496
2.01k
    yych = *(YYMARKER = ++YYCURSOR);
2497
2.01k
    if (yych == 'I') goto yy210;
2498
1.99k
    if (yych == 'i') goto yy210;
2499
617
    goto yy48;
2500
7.02k
yy63:
2501
7.02k
    YYDEBUG(63, *YYCURSOR);
2502
7.02k
    ++YYCURSOR;
2503
7.02k
    goto yy21;
2504
1.50k
yy64:
2505
1.50k
    YYDEBUG(64, *YYCURSOR);
2506
1.50k
    yych = *++YYCURSOR;
2507
1.50k
    if (yych <= '_') {
2508
1.07k
      if (yych <= '@') goto yy65;
2509
825
      if (yych <= 'Z') goto yy211;
2510
583
      if (yych >= '_') goto yy211;
2511
583
    } else {
2512
432
      if (yych <= '`') goto yy65;
2513
413
      if (yych <= 'z') goto yy211;
2514
294
      if (yych >= 0x80) goto yy211;
2515
294
    }
2516
748
yy65:
2517
748
    YYDEBUG(65, *YYCURSOR);
2518
748
    yyleng = YYCURSOR - SCNG(yy_text);
2519
748
#line 2450 "Zend/zend_language_scanner.l"
2520
748
    {
2521
748
  RETURN_TOKEN(T_NS_SEPARATOR);
2522
748
}
2523
0
#line 2524 "Zend/zend_language_scanner.c"
2524
5.94k
yy66:
2525
5.94k
    YYDEBUG(66, *YYCURSOR);
2526
5.94k
    yych = *++YYCURSOR;
2527
5.94k
    if (yych == '=') goto yy214;
2528
5.94k
    goto yy9;
2529
5.94k
yy67:
2530
1.67k
    YYDEBUG(67, *YYCURSOR);
2531
1.67k
    yyaccept = 4;
2532
1.67k
    yych = *(YYMARKER = ++YYCURSOR);
2533
1.67k
    if (yych == '_') goto yy216;
2534
275
    goto yy48;
2535
1.89k
yy68:
2536
1.89k
    YYDEBUG(68, *YYCURSOR);
2537
1.89k
    ++YYCURSOR;
2538
1.89k
    YYDEBUG(69, *YYCURSOR);
2539
1.89k
    yyleng = YYCURSOR - SCNG(yy_text);
2540
1.89k
#line 2825 "Zend/zend_language_scanner.l"
2541
1.89k
    {
2542
1.89k
  BEGIN(ST_BACKQUOTE);
2543
1.89k
  RETURN_TOKEN('`');
2544
1.89k
}
2545
0
#line 2546 "Zend/zend_language_scanner.c"
2546
9.85k
yy70:
2547
9.85k
    YYDEBUG(70, *YYCURSOR);
2548
9.85k
    ++YYCURSOR;
2549
9.85k
    YYDEBUG(71, *YYCURSOR);
2550
9.85k
    yyleng = YYCURSOR - SCNG(yy_text);
2551
9.85k
#line 1973 "Zend/zend_language_scanner.l"
2552
9.85k
    {
2553
9.85k
  yy_push_state(ST_IN_SCRIPTING);
2554
9.85k
  enter_nesting('{');
2555
9.85k
  RETURN_TOKEN('{');
2556
9.85k
}
2557
0
#line 2558 "Zend/zend_language_scanner.c"
2558
496
yy72:
2559
496
    YYDEBUG(72, *YYCURSOR);
2560
496
    yych = *++YYCURSOR;
2561
496
    if (yych <= '>') {
2562
212
      if (yych <= '<') goto yy9;
2563
47
      if (yych <= '=') goto yy217;
2564
36
      goto yy219;
2565
284
    } else {
2566
284
      if (yych == '|') goto yy221;
2567
238
      goto yy9;
2568
284
    }
2569
11.5k
yy73:
2570
11.5k
    YYDEBUG(73, *YYCURSOR);
2571
11.5k
    ++YYCURSOR;
2572
11.5k
    YYDEBUG(74, *YYCURSOR);
2573
11.5k
    yyleng = YYCURSOR - SCNG(yy_text);
2574
11.5k
#line 1986 "Zend/zend_language_scanner.l"
2575
11.5k
    {
2576
11.5k
  RESET_DOC_COMMENT();
2577
11.5k
  if (!zend_stack_is_empty(&SCNG(state_stack))) {
2578
5.02k
    yy_pop_state();
2579
5.02k
  }
2580
11.5k
  RETURN_EXIT_NESTING_TOKEN('}');
2581
11.5k
}
2582
0
#line 2583 "Zend/zend_language_scanner.c"
2583
62
yy75:
2584
62
    YYDEBUG(75, *YYCURSOR);
2585
62
    yych = *++YYCURSOR;
2586
62
    if (yych == '=') goto yy223;
2587
373
yy76:
2588
373
    YYDEBUG(76, *YYCURSOR);
2589
373
    yyleng = YYCURSOR - SCNG(yy_text);
2590
373
#line 1845 "Zend/zend_language_scanner.l"
2591
373
    {
2592
373
  RETURN_TOKEN(T_IS_NOT_EQUAL);
2593
373
}
2594
0
#line 2595 "Zend/zend_language_scanner.c"
2595
179
yy77:
2596
179
    YYDEBUG(77, *YYCURSOR);
2597
179
    ++YYCURSOR;
2598
179
    YYDEBUG(78, *YYCURSOR);
2599
179
    yyleng = YYCURSOR - SCNG(yy_text);
2600
179
#line 1422 "Zend/zend_language_scanner.l"
2601
179
    {
2602
179
  enter_nesting('[');
2603
179
  RETURN_TOKEN(T_ATTRIBUTE);
2604
179
}
2605
0
#line 2606 "Zend/zend_language_scanner.c"
2606
32.5k
yy79:
2607
32.5k
    YYDEBUG(79, *YYCURSOR);
2608
32.5k
    ++YYCURSOR;
2609
32.5k
    YYFILL(1);
2610
32.5k
    yych = *YYCURSOR;
2611
32.5k
    YYDEBUG(80, *YYCURSOR);
2612
32.5k
    if (yych <= '^') {
2613
14.0k
      if (yych <= '9') {
2614
9.36k
        if (yych >= '0') goto yy79;
2615
9.36k
      } else {
2616
4.69k
        if (yych <= '@') goto yy81;
2617
2.50k
        if (yych <= 'Z') goto yy79;
2618
2.50k
      }
2619
18.4k
    } else {
2620
18.4k
      if (yych <= '`') {
2621
107
        if (yych <= '_') goto yy79;
2622
18.3k
      } else {
2623
18.3k
        if (yych <= 'z') goto yy79;
2624
2.86k
        if (yych >= 0x80) goto yy79;
2625
2.86k
      }
2626
18.4k
    }
2627
12.0k
yy81:
2628
12.0k
    YYDEBUG(81, *YYCURSOR);
2629
12.0k
    yyleng = YYCURSOR - SCNG(yy_text);
2630
12.0k
#line 2416 "Zend/zend_language_scanner.l"
2631
12.0k
    {
2632
12.0k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
2633
12.0k
}
2634
0
#line 2635 "Zend/zend_language_scanner.c"
2635
10
yy82:
2636
10
    YYDEBUG(82, *YYCURSOR);
2637
10
    ++YYCURSOR;
2638
10
    YYDEBUG(83, *YYCURSOR);
2639
10
    yyleng = YYCURSOR - SCNG(yy_text);
2640
10
#line 1889 "Zend/zend_language_scanner.l"
2641
10
    {
2642
10
  RETURN_TOKEN(T_MOD_EQUAL);
2643
10
}
2644
0
#line 2645 "Zend/zend_language_scanner.c"
2645
2.16k
yy84:
2646
2.16k
    YYDEBUG(84, *YYCURSOR);
2647
2.16k
    ++YYCURSOR;
2648
2.16k
    YYFILL(3);
2649
2.16k
    yych = *YYCURSOR;
2650
3.38k
yy85:
2651
3.38k
    YYDEBUG(85, *YYCURSOR);
2652
3.38k
    if (yych <= ' ') {
2653
1.19k
      if (yych <= '\f') {
2654
826
        if (yych <= 0x08) goto yy86;
2655
749
        if (yych <= '\n') goto yy84;
2656
749
      } else {
2657
368
        if (yych <= '\r') goto yy84;
2658
293
        if (yych >= ' ') goto yy84;
2659
293
      }
2660
2.19k
    } else {
2661
2.19k
      if (yych <= '$') {
2662
1.84k
        if (yych <= '"') goto yy86;
2663
1.83k
        if (yych <= '#') goto yy87;
2664
483
        goto yy88;
2665
1.83k
      } else {
2666
353
        if (yych <= '-') goto yy86;
2667
311
        if (yych <= '.') goto yy92;
2668
288
        if (yych <= '/') goto yy93;
2669
288
      }
2670
2.19k
    }
2671
32.7k
yy86:
2672
32.7k
    YYDEBUG(86, *YYCURSOR);
2673
32.7k
    YYCURSOR = YYMARKER;
2674
32.7k
    if (yyaccept <= 48) {
2675
30.6k
      if (yyaccept <= 24) {
2676
30.4k
        if (yyaccept <= 12) {
2677
30.3k
          if (yyaccept <= 6) {
2678
20.2k
            if (yyaccept <= 3) {
2679
19.7k
              if (yyaccept <= 1) {
2680
19.5k
                if (yyaccept == 0) {
2681
584
                  goto yy17;
2682
19.0k
                } else {
2683
19.0k
                  goto yy21;
2684
19.0k
                }
2685
19.5k
              } else {
2686
164
                if (yyaccept == 2) {
2687
70
                  goto yy9;
2688
94
                } else {
2689
94
                  goto yy31;
2690
94
                }
2691
164
              }
2692
19.7k
            } else {
2693
487
              if (yyaccept <= 5) {
2694
454
                if (yyaccept == 4) {
2695
409
                  goto yy40;
2696
409
                } else {
2697
45
                  goto yy125;
2698
45
                }
2699
454
              } else {
2700
33
                goto yy129;
2701
33
              }
2702
487
            }
2703
20.2k
          } else {
2704
10.1k
            if (yyaccept <= 9) {
2705
10.1k
              if (yyaccept <= 8) {
2706
10.1k
                if (yyaccept == 7) {
2707
10.1k
                  goto yy142;
2708
10.1k
                } else {
2709
2
                  goto yy163;
2710
2
                }
2711
10.1k
              } else {
2712
0
                goto yy173;
2713
0
              }
2714
10.1k
            } else {
2715
8
              if (yyaccept <= 11) {
2716
5
                if (yyaccept == 10) {
2717
4
                  goto yy182;
2718
4
                } else {
2719
1
                  goto yy188;
2720
1
                }
2721
5
              } else {
2722
3
                goto yy197;
2723
3
              }
2724
8
            }
2725
10.1k
          }
2726
30.3k
        } else {
2727
101
          if (yyaccept <= 18) {
2728
90
            if (yyaccept <= 15) {
2729
57
              if (yyaccept <= 14) {
2730
55
                if (yyaccept == 13) {
2731
54
                  goto yy213;
2732
54
                } else {
2733
1
                  goto yy251;
2734
1
                }
2735
55
              } else {
2736
2
                goto yy257;
2737
2
              }
2738
57
            } else {
2739
33
              if (yyaccept <= 17) {
2740
1
                if (yyaccept == 16) {
2741
1
                  goto yy260;
2742
1
                } else {
2743
0
                  goto yy279;
2744
0
                }
2745
32
              } else {
2746
32
                goto yy283;
2747
32
              }
2748
33
            }
2749
90
          } else {
2750
11
            if (yyaccept <= 21) {
2751
4
              if (yyaccept <= 20) {
2752
1
                if (yyaccept == 19) {
2753
1
                  goto yy295;
2754
1
                } else {
2755
0
                  goto yy306;
2756
0
                }
2757
3
              } else {
2758
3
                goto yy319;
2759
3
              }
2760
7
            } else {
2761
7
              if (yyaccept <= 23) {
2762
3
                if (yyaccept == 22) {
2763
0
                  goto yy331;
2764
3
                } else {
2765
3
                  goto yy334;
2766
3
                }
2767
4
              } else {
2768
4
                goto yy336;
2769
4
              }
2770
7
            }
2771
11
          }
2772
101
        }
2773
30.4k
      } else {
2774
149
        if (yyaccept <= 36) {
2775
130
          if (yyaccept <= 30) {
2776
121
            if (yyaccept <= 27) {
2777
120
              if (yyaccept <= 26) {
2778
120
                if (yyaccept == 25) {
2779
0
                  goto yy339;
2780
120
                } else {
2781
120
                  goto yy89;
2782
120
                }
2783
120
              } else {
2784
0
                goto yy379;
2785
0
              }
2786
120
            } else {
2787
1
              if (yyaccept <= 29) {
2788
0
                if (yyaccept == 28) {
2789
0
                  goto yy388;
2790
0
                } else {
2791
0
                  goto yy390;
2792
0
                }
2793
1
              } else {
2794
1
                goto yy399;
2795
1
              }
2796
1
            }
2797
121
          } else {
2798
9
            if (yyaccept <= 33) {
2799
9
              if (yyaccept <= 32) {
2800
6
                if (yyaccept == 31) {
2801
4
                  goto yy401;
2802
4
                } else {
2803
2
                  goto yy408;
2804
2
                }
2805
6
              } else {
2806
3
                goto yy415;
2807
3
              }
2808
9
            } else {
2809
0
              if (yyaccept <= 35) {
2810
0
                if (yyaccept == 34) {
2811
0
                  goto yy471;
2812
0
                } else {
2813
0
                  goto yy473;
2814
0
                }
2815
0
              } else {
2816
0
                goto yy476;
2817
0
              }
2818
0
            }
2819
9
          }
2820
130
        } else {
2821
19
          if (yyaccept <= 42) {
2822
18
            if (yyaccept <= 39) {
2823
18
              if (yyaccept <= 38) {
2824
17
                if (yyaccept == 37) {
2825
9
                  goto yy478;
2826
9
                } else {
2827
8
                  goto yy480;
2828
8
                }
2829
17
              } else {
2830
1
                goto yy482;
2831
1
              }
2832
18
            } else {
2833
0
              if (yyaccept <= 41) {
2834
0
                if (yyaccept == 40) {
2835
0
                  goto yy488;
2836
0
                } else {
2837
0
                  goto yy492;
2838
0
                }
2839
0
              } else {
2840
0
                goto yy501;
2841
0
              }
2842
0
            }
2843
18
          } else {
2844
1
            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
1
            } else {
2855
1
              if (yyaccept <= 47) {
2856
0
                if (yyaccept == 46) {
2857
0
                  goto yy526;
2858
0
                } else {
2859
0
                  goto yy528;
2860
0
                }
2861
1
              } else {
2862
1
                goto yy530;
2863
1
              }
2864
1
            }
2865
1
          }
2866
19
        }
2867
149
      }
2868
30.6k
    } else {
2869
2.19k
      if (yyaccept <= 72) {
2870
2.02k
        if (yyaccept <= 60) {
2871
1.59k
          if (yyaccept <= 54) {
2872
1.59k
            if (yyaccept <= 51) {
2873
918
              if (yyaccept <= 50) {
2874
918
                if (yyaccept == 49) {
2875
0
                  goto yy532;
2876
918
                } else {
2877
918
                  goto yy534;
2878
918
                }
2879
918
              } else {
2880
0
                goto yy576;
2881
0
              }
2882
918
            } else {
2883
674
              if (yyaccept <= 53) {
2884
674
                if (yyaccept == 52) {
2885
0
                  goto yy579;
2886
674
                } else {
2887
674
                  goto yy583;
2888
674
                }
2889
674
              } else {
2890
0
                goto yy597;
2891
0
              }
2892
674
            }
2893
1.59k
          } else {
2894
6
            if (yyaccept <= 57) {
2895
5
              if (yyaccept <= 56) {
2896
4
                if (yyaccept == 55) {
2897
4
                  goto yy607;
2898
4
                } else {
2899
0
                  goto yy611;
2900
0
                }
2901
4
              } else {
2902
1
                goto yy613;
2903
1
              }
2904
5
            } else {
2905
1
              if (yyaccept <= 59) {
2906
1
                if (yyaccept == 58) {
2907
1
                  goto yy615;
2908
1
                } else {
2909
0
                  goto yy654;
2910
0
                }
2911
1
              } else {
2912
0
                goto yy656;
2913
0
              }
2914
1
            }
2915
6
          }
2916
1.59k
        } else {
2917
430
          if (yyaccept <= 66) {
2918
429
            if (yyaccept <= 63) {
2919
2
              if (yyaccept <= 62) {
2920
0
                if (yyaccept == 61) {
2921
0
                  goto yy671;
2922
0
                } else {
2923
0
                  goto yy673;
2924
0
                }
2925
2
              } else {
2926
2
                goto yy675;
2927
2
              }
2928
427
            } else {
2929
427
              if (yyaccept <= 65) {
2930
427
                if (yyaccept == 64) {
2931
0
                  goto yy679;
2932
427
                } else {
2933
427
                  goto yy685;
2934
427
                }
2935
427
              } else {
2936
0
                goto yy690;
2937
0
              }
2938
427
            }
2939
429
          } else {
2940
1
            if (yyaccept <= 69) {
2941
1
              if (yyaccept <= 68) {
2942
1
                if (yyaccept == 67) {
2943
1
                  goto yy700;
2944
1
                } else {
2945
0
                  goto yy726;
2946
0
                }
2947
1
              } else {
2948
0
                goto yy728;
2949
0
              }
2950
1
            } 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
1
          }
2962
430
        }
2963
2.02k
      } else {
2964
163
        if (yyaccept <= 84) {
2965
44
          if (yyaccept <= 78) {
2966
10
            if (yyaccept <= 75) {
2967
10
              if (yyaccept <= 74) {
2968
10
                if (yyaccept == 73) {
2969
0
                  goto yy754;
2970
10
                } else {
2971
10
                  goto yy764;
2972
10
                }
2973
10
              } else {
2974
0
                goto yy768;
2975
0
              }
2976
10
            } 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
34
          } else {
2988
34
            if (yyaccept <= 81) {
2989
34
              if (yyaccept <= 80) {
2990
31
                if (yyaccept == 79) {
2991
4
                  goto yy801;
2992
27
                } else {
2993
27
                  goto yy804;
2994
27
                }
2995
31
              } else {
2996
3
                goto yy812;
2997
3
              }
2998
34
            } 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
34
          }
3010
119
        } else {
3011
119
          if (yyaccept <= 90) {
3012
19
            if (yyaccept <= 87) {
3013
15
              if (yyaccept <= 86) {
3014
14
                if (yyaccept == 85) {
3015
14
                  goto yy836;
3016
14
                } else {
3017
0
                  goto yy839;
3018
0
                }
3019
14
              } else {
3020
1
                goto yy854;
3021
1
              }
3022
15
            } else {
3023
4
              if (yyaccept <= 89) {
3024
4
                if (yyaccept == 88) {
3025
4
                  goto yy869;
3026
4
                } else {
3027
0
                  goto yy898;
3028
0
                }
3029
4
              } else {
3030
0
                goto yy903;
3031
0
              }
3032
4
            }
3033
100
          } else {
3034
100
            if (yyaccept <= 93) {
3035
94
              if (yyaccept <= 92) {
3036
94
                if (yyaccept == 91) {
3037
94
                  goto yy876;
3038
94
                } else {
3039
0
                  goto yy911;
3040
0
                }
3041
94
              } else {
3042
0
                goto yy915;
3043
0
              }
3044
94
            } else {
3045
6
              if (yyaccept <= 95) {
3046
6
                if (yyaccept == 94) {
3047
6
                  goto yy886;
3048
6
                } else {
3049
0
                  goto yy931;
3050
0
                }
3051
6
              } else {
3052
0
                goto yy951;
3053
0
              }
3054
6
            }
3055
100
          }
3056
119
        }
3057
163
      }
3058
2.19k
    }
3059
1.35k
yy87:
3060
1.35k
    YYDEBUG(87, *YYCURSOR);
3061
1.35k
    ++YYCURSOR;
3062
1.35k
    YYFILL(1);
3063
1.35k
    yych = *YYCURSOR;
3064
1.35k
    if (yych <= '\f') {
3065
823
      if (yych <= 0x00) goto yy86;
3066
814
      if (yych == '\n') goto yy227;
3067
70
      goto yy225;
3068
814
    } else {
3069
529
      if (yych <= '\r') goto yy227;
3070
221
      if (yych == '[') goto yy86;
3071
212
      goto yy225;
3072
221
    }
3073
497
yy88:
3074
497
    YYDEBUG(88, *YYCURSOR);
3075
497
    ++YYCURSOR;
3076
642
yy89:
3077
642
    YYDEBUG(89, *YYCURSOR);
3078
642
    yyleng = YYCURSOR - SCNG(yy_text);
3079
642
#line 1949 "Zend/zend_language_scanner.l"
3080
642
    {
3081
642
  yyless(1);
3082
642
  RETURN_TOKEN(T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG);
3083
642
}
3084
0
#line 3085 "Zend/zend_language_scanner.c"
3085
264
yy90:
3086
264
    YYDEBUG(90, *YYCURSOR);
3087
264
    ++YYCURSOR;
3088
264
    YYDEBUG(91, *YYCURSOR);
3089
264
    yyleng = YYCURSOR - SCNG(yy_text);
3090
264
#line 1925 "Zend/zend_language_scanner.l"
3091
264
    {
3092
264
  RETURN_TOKEN(T_BOOLEAN_AND);
3093
264
}
3094
0
#line 3095 "Zend/zend_language_scanner.c"
3095
23
yy92:
3096
23
    YYDEBUG(92, *YYCURSOR);
3097
23
    yych = *++YYCURSOR;
3098
23
    if (yych == '.') goto yy229;
3099
4
    goto yy86;
3100
101
yy93:
3101
101
    YYDEBUG(93, *YYCURSOR);
3102
101
    ++YYCURSOR;
3103
101
    YYFILL(1);
3104
101
    yych = *YYCURSOR;
3105
101
    if (yych == '*') goto yy230;
3106
57
    if (yych == '/') goto yy225;
3107
13
    goto yy86;
3108
21
yy94:
3109
21
    YYDEBUG(94, *YYCURSOR);
3110
21
    ++YYCURSOR;
3111
21
    YYDEBUG(95, *YYCURSOR);
3112
21
    yyleng = YYCURSOR - SCNG(yy_text);
3113
21
#line 1901 "Zend/zend_language_scanner.l"
3114
21
    {
3115
21
  RETURN_TOKEN(T_AND_EQUAL);
3116
21
}
3117
0
#line 3118 "Zend/zend_language_scanner.c"
3118
34.6k
yy96:
3119
34.6k
    YYDEBUG(96, *YYCURSOR);
3120
34.6k
    ++YYCURSOR;
3121
34.6k
    YYFILL(7);
3122
34.6k
    yych = *YYCURSOR;
3123
53.8k
yy97:
3124
53.8k
    YYDEBUG(97, *YYCURSOR);
3125
53.8k
    if (yybm[0+yych] & 1) {
3126
34.6k
      goto yy96;
3127
34.6k
    }
3128
19.1k
    switch (yych) {
3129
77
    case 'A':
3130
297
    case 'a': goto yy98;
3131
34
    case 'B':
3132
238
    case 'b': goto yy99;
3133
3
    case 'D':
3134
179
    case 'd': goto yy100;
3135
257
    case 'F':
3136
488
    case 'f': goto yy101;
3137
24
    case 'I':
3138
385
    case 'i': goto yy102;
3139
11
    case 'O':
3140
106
    case 'o': goto yy103;
3141
27
    case 'R':
3142
86
    case 'r': goto yy104;
3143
24
    case 'S':
3144
921
    case 's': goto yy105;
3145
16
    case 'U':
3146
194
    case 'u': goto yy106;
3147
3
    case 'V':
3148
10
    case 'v': goto yy107;
3149
16.2k
    default:  goto yy86;
3150
19.1k
    }
3151
297
yy98:
3152
297
    YYDEBUG(98, *YYCURSOR);
3153
297
    yych = *++YYCURSOR;
3154
297
    if (yych == 'R') goto yy232;
3155
287
    if (yych == 'r') goto yy232;
3156
166
    goto yy86;
3157
238
yy99:
3158
238
    YYDEBUG(99, *YYCURSOR);
3159
238
    yych = *++YYCURSOR;
3160
238
    if (yych <= 'O') {
3161
27
      if (yych == 'I') goto yy233;
3162
27
      if (yych <= 'N') goto yy86;
3163
4
      goto yy234;
3164
211
    } else {
3165
211
      if (yych <= 'i') {
3166
186
        if (yych <= 'h') goto yy86;
3167
156
        goto yy233;
3168
186
      } else {
3169
25
        if (yych == 'o') goto yy234;
3170
5
        goto yy86;
3171
25
      }
3172
211
    }
3173
179
yy100:
3174
179
    YYDEBUG(100, *YYCURSOR);
3175
179
    yych = *++YYCURSOR;
3176
179
    if (yych == 'O') goto yy235;
3177
178
    if (yych == 'o') goto yy235;
3178
173
    goto yy86;
3179
488
yy101:
3180
488
    YYDEBUG(101, *YYCURSOR);
3181
488
    yych = *++YYCURSOR;
3182
488
    if (yych == 'L') goto yy236;
3183
477
    if (yych == 'l') goto yy236;
3184
453
    goto yy86;
3185
453
yy102:
3186
385
    YYDEBUG(102, *YYCURSOR);
3187
385
    yych = *++YYCURSOR;
3188
385
    if (yych == 'N') goto yy237;
3189
377
    if (yych == 'n') goto yy237;
3190
251
    goto yy86;
3191
251
yy103:
3192
106
    YYDEBUG(103, *YYCURSOR);
3193
106
    yych = *++YYCURSOR;
3194
106
    if (yych == 'B') goto yy238;
3195
101
    if (yych == 'b') goto yy238;
3196
18
    goto yy86;
3197
86
yy104:
3198
86
    YYDEBUG(104, *YYCURSOR);
3199
86
    yych = *++YYCURSOR;
3200
86
    if (yych == 'E') goto yy239;
3201
80
    if (yych == 'e') goto yy239;
3202
53
    goto yy86;
3203
921
yy105:
3204
921
    YYDEBUG(105, *YYCURSOR);
3205
921
    yych = *++YYCURSOR;
3206
921
    if (yych == 'T') goto yy240;
3207
919
    if (yych == 't') goto yy240;
3208
781
    goto yy86;
3209
781
yy106:
3210
194
    YYDEBUG(106, *YYCURSOR);
3211
194
    yych = *++YYCURSOR;
3212
194
    if (yych == 'N') goto yy241;
3213
178
    if (yych == 'n') goto yy241;
3214
3
    goto yy86;
3215
10
yy107:
3216
10
    YYDEBUG(107, *YYCURSOR);
3217
10
    yych = *++YYCURSOR;
3218
10
    if (yych == 'O') goto yy242;
3219
10
    if (yych == 'o') goto yy242;
3220
5
    goto yy86;
3221
209
yy108:
3222
209
    YYDEBUG(108, *YYCURSOR);
3223
209
    yych = *++YYCURSOR;
3224
209
    if (yych == '=') goto yy243;
3225
196
    YYDEBUG(109, *YYCURSOR);
3226
196
    yyleng = YYCURSOR - SCNG(yy_text);
3227
196
#line 1873 "Zend/zend_language_scanner.l"
3228
196
    {
3229
196
  RETURN_TOKEN(T_POW);
3230
196
}
3231
0
#line 3232 "Zend/zend_language_scanner.c"
3232
16
yy110:
3233
16
    YYDEBUG(110, *YYCURSOR);
3234
16
    ++YYCURSOR;
3235
16
    YYDEBUG(111, *YYCURSOR);
3236
16
    yyleng = YYCURSOR - SCNG(yy_text);
3237
16
#line 1869 "Zend/zend_language_scanner.l"
3238
16
    {
3239
16
  RETURN_TOKEN(T_MUL_EQUAL);
3240
16
}
3241
0
#line 3242 "Zend/zend_language_scanner.c"
3242
23.0k
yy112:
3243
23.0k
    YYDEBUG(112, *YYCURSOR);
3244
23.0k
    ++YYCURSOR;
3245
23.0k
    YYDEBUG(113, *YYCURSOR);
3246
23.0k
    yyleng = YYCURSOR - SCNG(yy_text);
3247
23.0k
#line 1825 "Zend/zend_language_scanner.l"
3248
23.0k
    {
3249
23.0k
  RETURN_TOKEN(T_INC);
3250
23.0k
}
3251
0
#line 3252 "Zend/zend_language_scanner.c"
3252
111
yy114:
3253
111
    YYDEBUG(114, *YYCURSOR);
3254
111
    ++YYCURSOR;
3255
111
    YYDEBUG(115, *YYCURSOR);
3256
111
    yyleng = YYCURSOR - SCNG(yy_text);
3257
111
#line 1861 "Zend/zend_language_scanner.l"
3258
111
    {
3259
111
  RETURN_TOKEN(T_PLUS_EQUAL);
3260
111
}
3261
0
#line 3262 "Zend/zend_language_scanner.c"
3262
85
yy116:
3263
85
    YYDEBUG(116, *YYCURSOR);
3264
85
    ++YYCURSOR;
3265
85
    YYDEBUG(117, *YYCURSOR);
3266
85
    yyleng = YYCURSOR - SCNG(yy_text);
3267
85
#line 1829 "Zend/zend_language_scanner.l"
3268
85
    {
3269
85
  RETURN_TOKEN(T_DEC);
3270
85
}
3271
0
#line 3272 "Zend/zend_language_scanner.c"
3272
7
yy118:
3273
7
    YYDEBUG(118, *YYCURSOR);
3274
7
    ++YYCURSOR;
3275
7
    YYDEBUG(119, *YYCURSOR);
3276
7
    yyleng = YYCURSOR - SCNG(yy_text);
3277
7
#line 1865 "Zend/zend_language_scanner.l"
3278
7
    {
3279
7
  RETURN_TOKEN(T_MINUS_EQUAL);
3280
7
}
3281
0
#line 3282 "Zend/zend_language_scanner.c"
3282
1.34k
yy120:
3283
1.34k
    YYDEBUG(120, *YYCURSOR);
3284
1.34k
    ++YYCURSOR;
3285
1.34k
    YYDEBUG(121, *YYCURSOR);
3286
1.34k
    yyleng = YYCURSOR - SCNG(yy_text);
3287
1.34k
#line 1586 "Zend/zend_language_scanner.l"
3288
1.34k
    {
3289
1.34k
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
3290
1.34k
  RETURN_TOKEN(T_OBJECT_OPERATOR);
3291
1.34k
}
3292
0
#line 3293 "Zend/zend_language_scanner.c"
3293
421
yy122:
3294
421
    YYDEBUG(122, *YYCURSOR);
3295
421
    yych = *++YYCURSOR;
3296
421
    if (yych == '.') goto yy245;
3297
59
    goto yy86;
3298
2.32k
yy123:
3299
2.32k
    YYDEBUG(123, *YYCURSOR);
3300
2.32k
    yyaccept = 5;
3301
2.32k
    YYMARKER = ++YYCURSOR;
3302
2.32k
    YYFILL(2);
3303
2.32k
    yych = *YYCURSOR;
3304
2.65k
yy124:
3305
2.65k
    YYDEBUG(124, *YYCURSOR);
3306
2.65k
    if (yych <= 'E') {
3307
2.42k
      if (yych <= '/') goto yy125;
3308
1.99k
      if (yych <= '9') goto yy123;
3309
169
      if (yych >= 'E') goto yy135;
3310
232
    } else {
3311
232
      if (yych <= '_') {
3312
38
        if (yych >= '_') goto yy247;
3313
194
      } else {
3314
194
        if (yych == 'e') goto yy135;
3315
194
      }
3316
232
    }
3317
1.02k
yy125:
3318
1.02k
    YYDEBUG(125, *YYCURSOR);
3319
1.02k
    yyleng = YYCURSOR - SCNG(yy_text);
3320
1.02k
#line 2232 "Zend/zend_language_scanner.l"
3321
1.02k
    {
3322
1.02k
  const char *end;
3323
1.02k
  size_t len = yyleng;
3324
1.02k
  char *dnum = yytext;
3325
1.02k
  bool contains_underscores = (memchr(dnum, '_', len) != NULL);
3326
3327
1.02k
  if (contains_underscores) {
3328
41
    dnum = estrndup(dnum, len);
3329
41
    strip_underscores(dnum, &len);
3330
41
  }
3331
3332
1.02k
  ZVAL_DOUBLE(zendlval, zend_strtod(dnum, &end));
3333
  /* errno isn't checked since we allow HUGE_VAL/INF overflow */
3334
1.02k
  ZEND_ASSERT(end == dnum + len);
3335
1.02k
  if (contains_underscores) {
3336
41
    efree(dnum);
3337
41
  }
3338
1.02k
  RETURN_TOKEN_WITH_VAL(T_DNUMBER);
3339
1.02k
}
3340
0
#line 3341 "Zend/zend_language_scanner.c"
3341
148
yy126:
3342
148
    YYDEBUG(126, *YYCURSOR);
3343
148
    ++YYCURSOR;
3344
148
    YYDEBUG(127, *YYCURSOR);
3345
148
    yyleng = YYCURSOR - SCNG(yy_text);
3346
148
#line 1885 "Zend/zend_language_scanner.l"
3347
148
    {
3348
148
  RETURN_TOKEN(T_CONCAT_EQUAL);
3349
148
}
3350
0
#line 3351 "Zend/zend_language_scanner.c"
3351
1.46k
yy128:
3352
1.46k
    YYDEBUG(128, *YYCURSOR);
3353
1.46k
    yyaccept = 6;
3354
1.46k
    yych = *(YYMARKER = ++YYCURSOR);
3355
1.46k
    if (yych == '*') goto yy248;
3356
1.46k
yy129:
3357
1.46k
    YYDEBUG(129, *YYCURSOR);
3358
1.46k
    yyleng = YYCURSOR - SCNG(yy_text);
3359
1.46k
#line 2483 "Zend/zend_language_scanner.l"
3360
1.46k
    {
3361
1.46k
  int doc_com;
3362
3363
1.46k
  if (yyleng > 2) {
3364
68
    doc_com = 1;
3365
68
    RESET_DOC_COMMENT();
3366
1.39k
  } else {
3367
1.39k
    doc_com = 0;
3368
1.39k
  }
3369
3370
30.1k
  while (YYCURSOR < YYLIMIT) {
3371
29.3k
    if (*YYCURSOR++ == '*' && *YYCURSOR == '/') {
3372
618
      break;
3373
618
    }
3374
29.3k
  }
3375
3376
1.46k
  if (YYCURSOR < YYLIMIT) {
3377
618
    YYCURSOR++;
3378
845
  } else {
3379
845
    zend_throw_exception_ex(zend_ce_parse_error, 0, "Unterminated comment starting line %" PRIu32, CG(zend_lineno));
3380
845
    if (PARSER_MODE()) {
3381
58
      RETURN_TOKEN(T_ERROR);
3382
58
    }
3383
845
  }
3384
3385
1.40k
  yyleng = YYCURSOR - SCNG(yy_text);
3386
1.40k
  HANDLE_NEWLINES(yytext, yyleng);
3387
3388
1.40k
  if (doc_com) {
3389
65
    CG(doc_comment) = zend_string_init(yytext, yyleng, 0);
3390
65
    RETURN_OR_SKIP_TOKEN(T_DOC_COMMENT);
3391
65
  }
3392
3393
1.34k
  RETURN_OR_SKIP_TOKEN(T_COMMENT);
3394
1.34k
}
3395
0
#line 3396 "Zend/zend_language_scanner.c"
3396
400
yy130:
3397
400
    YYDEBUG(130, *YYCURSOR);
3398
400
    ++YYCURSOR;
3399
400
    goto yy13;
3400
17
yy131:
3401
17
    YYDEBUG(131, *YYCURSOR);
3402
17
    ++YYCURSOR;
3403
17
    YYDEBUG(132, *YYCURSOR);
3404
17
    yyleng = YYCURSOR - SCNG(yy_text);
3405
17
#line 1881 "Zend/zend_language_scanner.l"
3406
17
    {
3407
17
  RETURN_TOKEN(T_DIV_EQUAL);
3408
17
}
3409
0
#line 3410 "Zend/zend_language_scanner.c"
3410
338
yy133:
3411
338
    YYDEBUG(133, *YYCURSOR);
3412
338
    yyaccept = 5;
3413
338
    yych = *(YYMARKER = ++YYCURSOR);
3414
338
    if (yych == '_') goto yy125;
3415
329
    goto yy124;
3416
329
yy134:
3417
15
    YYDEBUG(134, *YYCURSOR);
3418
15
    ++YYCURSOR;
3419
15
    YYFILL(1);
3420
15
    yych = *YYCURSOR;
3421
15
    if (yybm[0+yych] & 8) {
3422
12
      goto yy249;
3423
12
    }
3424
3
    goto yy86;
3425
266
yy135:
3426
266
    YYDEBUG(135, *YYCURSOR);
3427
266
    yych = *++YYCURSOR;
3428
266
    if (yych <= ',') {
3429
20
      if (yych == '+') goto yy252;
3430
13
      goto yy86;
3431
246
    } else {
3432
246
      if (yych <= '-') goto yy252;
3433
206
      if (yych <= '/') goto yy86;
3434
205
      if (yych <= '9') goto yy253;
3435
49
      goto yy86;
3436
205
    }
3437
14
yy136:
3438
14
    YYDEBUG(136, *YYCURSOR);
3439
14
    ++YYCURSOR;
3440
14
    YYFILL(1);
3441
14
    yych = *YYCURSOR;
3442
14
    if (yybm[0+yych] & 16) {
3443
6
      goto yy255;
3444
6
    }
3445
8
    goto yy86;
3446
50
yy137:
3447
50
    YYDEBUG(137, *YYCURSOR);
3448
50
    ++YYCURSOR;
3449
50
    YYFILL(1);
3450
50
    yych = *YYCURSOR;
3451
50
    if (yybm[0+yych] & 32) {
3452
47
      goto yy258;
3453
47
    }
3454
3
    goto yy86;
3455
46
yy138:
3456
46
    YYDEBUG(138, *YYCURSOR);
3457
46
    ++YYCURSOR;
3458
46
    YYFILL(1);
3459
46
    yych = *YYCURSOR;
3460
46
    if (yybm[256+yych] & 64) {
3461
23
      goto yy32;
3462
23
    }
3463
23
    goto yy86;
3464
1.59k
yy139:
3465
1.59k
    YYDEBUG(139, *YYCURSOR);
3466
1.59k
    ++YYCURSOR;
3467
1.59k
    YYDEBUG(140, *YYCURSOR);
3468
1.59k
    yyleng = YYCURSOR - SCNG(yy_text);
3469
1.59k
#line 1613 "Zend/zend_language_scanner.l"
3470
1.59k
    {
3471
1.59k
  RETURN_TOKEN(T_PAAMAYIM_NEKUDOTAYIM);
3472
1.59k
}
3473
0
#line 3474 "Zend/zend_language_scanner.c"
3474
27.4k
yy141:
3475
27.4k
    YYDEBUG(141, *YYCURSOR);
3476
27.4k
    yyaccept = 7;
3477
27.4k
    yych = *(YYMARKER = ++YYCURSOR);
3478
27.4k
    if (yych <= ';') goto yy142;
3479
26.3k
    if (yych <= '<') goto yy261;
3480
2.96k
    if (yych <= '=') goto yy263;
3481
14.1k
yy142:
3482
14.1k
    YYDEBUG(142, *YYCURSOR);
3483
14.1k
    yyleng = YYCURSOR - SCNG(yy_text);
3484
14.1k
#line 1941 "Zend/zend_language_scanner.l"
3485
14.1k
    {
3486
14.1k
  RETURN_TOKEN(T_SL);
3487
14.1k
}
3488
0
#line 3489 "Zend/zend_language_scanner.c"
3489
6.05k
yy143:
3490
6.05k
    YYDEBUG(143, *YYCURSOR);
3491
6.05k
    yych = *++YYCURSOR;
3492
6.05k
    if (yych == '>') goto yy265;
3493
6.04k
    YYDEBUG(144, *YYCURSOR);
3494
6.04k
    yyleng = YYCURSOR - SCNG(yy_text);
3495
6.04k
#line 1853 "Zend/zend_language_scanner.l"
3496
6.04k
    {
3497
6.04k
  RETURN_TOKEN(T_IS_SMALLER_OR_EQUAL);
3498
6.04k
}
3499
0
#line 3500 "Zend/zend_language_scanner.c"
3500
316
yy145:
3501
316
    YYDEBUG(145, *YYCURSOR);
3502
316
    ++YYCURSOR;
3503
316
    goto yy76;
3504
188
yy146:
3505
188
    YYDEBUG(146, *YYCURSOR);
3506
188
    yych = *++YYCURSOR;
3507
188
    if (yych == '=') goto yy267;
3508
116
    YYDEBUG(147, *YYCURSOR);
3509
116
    yyleng = YYCURSOR - SCNG(yy_text);
3510
116
#line 1841 "Zend/zend_language_scanner.l"
3511
116
    {
3512
116
  RETURN_TOKEN(T_IS_EQUAL);
3513
116
}
3514
0
#line 3515 "Zend/zend_language_scanner.c"
3515
471
yy148:
3516
471
    YYDEBUG(148, *YYCURSOR);
3517
471
    ++YYCURSOR;
3518
471
    YYDEBUG(149, *YYCURSOR);
3519
471
    yyleng = YYCURSOR - SCNG(yy_text);
3520
471
#line 1809 "Zend/zend_language_scanner.l"
3521
471
    {
3522
471
  RETURN_TOKEN(T_DOUBLE_ARROW);
3523
471
}
3524
0
#line 3525 "Zend/zend_language_scanner.c"
3525
19
yy150:
3526
19
    YYDEBUG(150, *YYCURSOR);
3527
19
    ++YYCURSOR;
3528
19
    YYDEBUG(151, *YYCURSOR);
3529
19
    yyleng = YYCURSOR - SCNG(yy_text);
3530
19
#line 1857 "Zend/zend_language_scanner.l"
3531
19
    {
3532
19
  RETURN_TOKEN(T_IS_GREATER_OR_EQUAL);
3533
19
}
3534
0
#line 3535 "Zend/zend_language_scanner.c"
3535
97
yy152:
3536
97
    YYDEBUG(152, *YYCURSOR);
3537
97
    yych = *++YYCURSOR;
3538
97
    if (yych == '=') goto yy269;
3539
88
    YYDEBUG(153, *YYCURSOR);
3540
88
    yyleng = YYCURSOR - SCNG(yy_text);
3541
88
#line 1945 "Zend/zend_language_scanner.l"
3542
88
    {
3543
88
  RETURN_TOKEN(T_SR);
3544
88
}
3545
0
#line 3546 "Zend/zend_language_scanner.c"
3546
106
yy154:
3547
106
    YYDEBUG(154, *YYCURSOR);
3548
106
    yych = *++YYCURSOR;
3549
106
    if (yych == '>') goto yy271;
3550
11
    goto yy86;
3551
3.82k
yy155:
3552
3.82k
    YYDEBUG(155, *YYCURSOR);
3553
3.82k
    yych = *++YYCURSOR;
3554
3.82k
    if (yych == '\n') goto yy273;
3555
3.43k
    if (yych == '\r') goto yy274;
3556
3.82k
yy156:
3557
3.82k
    YYDEBUG(156, *YYCURSOR);
3558
3.82k
    yyleng = YYCURSOR - SCNG(yy_text);
3559
3.82k
#line 2525 "Zend/zend_language_scanner.l"
3560
3.82k
    {
3561
3.82k
  BEGIN(INITIAL);
3562
3.82k
  if (yytext[yyleng-1] != '>') {
3563
390
    CG(increment_lineno) = 1;
3564
390
  }
3565
3.82k
  if (PARSER_MODE()) {
3566
3.61k
    RETURN_TOKEN(';');  /* implicit ';' at php-end tag */
3567
3.61k
  }
3568
212
  RETURN_TOKEN(T_CLOSE_TAG);
3569
212
}
3570
0
#line 3571 "Zend/zend_language_scanner.c"
3571
8.02k
yy157:
3572
8.02k
    YYDEBUG(157, *YYCURSOR);
3573
8.02k
    yych = *++YYCURSOR;
3574
8.02k
    if (yych == '=') goto yy275;
3575
8.00k
    YYDEBUG(158, *YYCURSOR);
3576
8.00k
    yyleng = YYCURSOR - SCNG(yy_text);
3577
8.00k
#line 1621 "Zend/zend_language_scanner.l"
3578
8.00k
    {
3579
8.00k
  RETURN_TOKEN(T_COALESCE);
3580
8.00k
}
3581
0
#line 3582 "Zend/zend_language_scanner.c"
3582
161
yy159:
3583
161
    YYDEBUG(159, *YYCURSOR);
3584
161
    yyaccept = 4;
3585
161
    yych = *(YYMARKER = ++YYCURSOR);
3586
161
    if (yych == 'S') goto yy277;
3587
156
    if (yych == 's') goto yy277;
3588
24
    goto yy48;
3589
155
yy160:
3590
155
    YYDEBUG(160, *YYCURSOR);
3591
155
    yyaccept = 4;
3592
155
    yych = *(YYMARKER = ++YYCURSOR);
3593
155
    if (yych == 'D') goto yy278;
3594
150
    if (yych == 'd') goto yy278;
3595
116
    goto yy48;
3596
756
yy161:
3597
756
    YYDEBUG(161, *YYCURSOR);
3598
756
    yyaccept = 4;
3599
756
    yych = *(YYMARKER = ++YYCURSOR);
3600
756
    if (yych == 'R') goto yy280;
3601
749
    if (yych == 'r') goto yy280;
3602
77
    goto yy48;
3603
505
yy162:
3604
505
    YYDEBUG(162, *YYCURSOR);
3605
505
    yyaccept = 8;
3606
505
    yych = *(YYMARKER = ++YYCURSOR);
3607
505
    if (yybm[256+yych] & 128) {
3608
238
      goto yy47;
3609
238
    }
3610
267
    if (yych == '\\') goto yy164;
3611
267
yy163:
3612
267
    YYDEBUG(163, *YYCURSOR);
3613
267
    yyleng = YYCURSOR - SCNG(yy_text);
3614
267
#line 1509 "Zend/zend_language_scanner.l"
3615
267
    {
3616
267
  RETURN_TOKEN_WITH_IDENT(T_AS);
3617
267
}
3618
0
#line 3619 "Zend/zend_language_scanner.c"
3619
634
yy164:
3620
634
    YYDEBUG(164, *YYCURSOR);
3621
634
    ++YYCURSOR;
3622
634
    YYFILL(1);
3623
634
    yych = *YYCURSOR;
3624
634
    if (yych <= '_') {
3625
460
      if (yych <= '@') goto yy86;
3626
328
      if (yych <= 'Z') goto yy281;
3627
80
      if (yych <= '^') goto yy86;
3628
3
      goto yy281;
3629
174
    } else {
3630
174
      if (yych <= '`') goto yy86;
3631
174
      if (yych <= 'z') goto yy281;
3632
58
      if (yych <= 0x7F) goto yy86;
3633
51
      goto yy281;
3634
58
    }
3635
168
yy165:
3636
168
    YYDEBUG(165, *YYCURSOR);
3637
168
    yych = *++YYCURSOR;
3638
168
    if (yych == '<') goto yy284;
3639
16
    goto yy86;
3640
47
yy166:
3641
47
    YYDEBUG(166, *YYCURSOR);
3642
47
    yyaccept = 4;
3643
47
    yych = *(YYMARKER = ++YYCURSOR);
3644
47
    if (yych == 'E') goto yy285;
3645
42
    if (yych == 'e') goto yy285;
3646
6
    goto yy48;
3647
920
yy167:
3648
920
    YYDEBUG(167, *YYCURSOR);
3649
920
    yyaccept = 4;
3650
920
    yych = *(YYMARKER = ++YYCURSOR);
3651
920
    if (yych <= 'T') {
3652
23
      if (yych <= 'L') {
3653
17
        if (yych <= 'K') goto yy48;
3654
1
        goto yy286;
3655
17
      } else {
3656
6
        if (yych <= 'R') goto yy48;
3657
2
        if (yych <= 'S') goto yy287;
3658
0
        goto yy288;
3659
2
      }
3660
897
    } else {
3661
897
      if (yych <= 'r') {
3662
505
        if (yych == 'l') goto yy286;
3663
164
        goto yy48;
3664
505
      } else {
3665
392
        if (yych <= 's') goto yy287;
3666
219
        if (yych <= 't') goto yy288;
3667
18
        goto yy48;
3668
219
      }
3669
897
    }
3670
1.91k
yy168:
3671
1.91k
    YYDEBUG(168, *YYCURSOR);
3672
1.91k
    yyaccept = 4;
3673
1.91k
    yych = *(YYMARKER = ++YYCURSOR);
3674
1.91k
    if (yych <= 'O') {
3675
35
      if (yych == 'A') goto yy289;
3676
31
      if (yych <= 'N') goto yy48;
3677
19
      goto yy290;
3678
1.87k
    } else {
3679
1.87k
      if (yych <= 'a') {
3680
1.71k
        if (yych <= '`') goto yy48;
3681
1.69k
        goto yy289;
3682
1.71k
      } else {
3683
163
        if (yych == 'o') goto yy290;
3684
10
        goto yy48;
3685
163
      }
3686
1.87k
    }
3687
801
yy169:
3688
801
    YYDEBUG(169, *YYCURSOR);
3689
801
    yyaccept = 4;
3690
801
    yych = *(YYMARKER = ++YYCURSOR);
3691
801
    if (yych == 'N') goto yy291;
3692
770
    if (yych == 'n') goto yy291;
3693
55
    goto yy48;
3694
301
yy170:
3695
301
    YYDEBUG(170, *YYCURSOR);
3696
301
    yyaccept = 4;
3697
301
    yych = *(YYMARKER = ++YYCURSOR);
3698
301
    if (yych <= 'F') {
3699
9
      if (yych == 'C') goto yy292;
3700
8
      if (yych <= 'E') goto yy48;
3701
2
      goto yy293;
3702
292
    } else {
3703
292
      if (yych <= 'c') {
3704
169
        if (yych <= 'b') goto yy48;
3705
118
        goto yy292;
3706
169
      } else {
3707
123
        if (yych == 'f') goto yy293;
3708
50
        goto yy48;
3709
123
      }
3710
292
    }
3711
29
yy171:
3712
29
    YYDEBUG(171, *YYCURSOR);
3713
29
    yyaccept = 4;
3714
29
    yych = *(YYMARKER = ++YYCURSOR);
3715
29
    if (yych == 'E') goto yy294;
3716
29
    if (yych == 'e') goto yy294;
3717
18
    goto yy48;
3718
25
yy172:
3719
25
    YYDEBUG(172, *YYCURSOR);
3720
25
    yyaccept = 9;
3721
25
    yych = *(YYMARKER = ++YYCURSOR);
3722
25
    if (yybm[256+yych] & 128) {
3723
11
      goto yy47;
3724
11
    }
3725
14
    if (yych == '\\') goto yy164;
3726
14
yy173:
3727
14
    YYDEBUG(173, *YYCURSOR);
3728
14
    yyleng = YYCURSOR - SCNG(yy_text);
3729
14
#line 1477 "Zend/zend_language_scanner.l"
3730
14
    {
3731
14
  RETURN_TOKEN_WITH_IDENT(T_DO);
3732
14
}
3733
0
#line 3734 "Zend/zend_language_scanner.c"
3734
1.25k
yy174:
3735
1.25k
    YYDEBUG(174, *YYCURSOR);
3736
1.25k
    yyaccept = 4;
3737
1.25k
    yych = *(YYMARKER = ++YYCURSOR);
3738
1.25k
    if (yych == 'H') goto yy296;
3739
1.25k
    if (yych == 'h') goto yy296;
3740
24
    goto yy48;
3741
54
yy175:
3742
54
    YYDEBUG(175, *YYCURSOR);
3743
54
    yyaccept = 4;
3744
54
    yych = *(YYMARKER = ++YYCURSOR);
3745
54
    if (yych == 'S') goto yy297;
3746
50
    if (yych == 's') goto yy297;
3747
33
    goto yy48;
3748
101
yy176:
3749
101
    YYDEBUG(176, *YYCURSOR);
3750
101
    yyaccept = 4;
3751
101
    yych = *(YYMARKER = ++YYCURSOR);
3752
101
    if (yych == 'P') goto yy298;
3753
84
    if (yych == 'p') goto yy298;
3754
70
    goto yy48;
3755
1.82k
yy177:
3756
1.82k
    YYDEBUG(177, *YYCURSOR);
3757
1.82k
    yyaccept = 4;
3758
1.82k
    yych = *(YYMARKER = ++YYCURSOR);
3759
1.82k
    if (yych <= 'U') {
3760
143
      if (yych == 'D') goto yy299;
3761
116
      if (yych <= 'T') goto yy48;
3762
11
      goto yy300;
3763
1.68k
    } else {
3764
1.68k
      if (yych <= 'd') {
3765
221
        if (yych <= 'c') goto yy48;
3766
191
        goto yy299;
3767
1.46k
      } else {
3768
1.46k
        if (yych == 'u') goto yy300;
3769
86
        goto yy48;
3770
1.46k
      }
3771
1.68k
    }
3772
87
yy178:
3773
87
    YYDEBUG(178, *YYCURSOR);
3774
87
    yyaccept = 4;
3775
87
    yych = *(YYMARKER = ++YYCURSOR);
3776
87
    if (yych == 'A') goto yy301;
3777
85
    if (yych == 'a') goto yy301;
3778
5
    goto yy48;
3779
670
yy179:
3780
670
    YYDEBUG(179, *YYCURSOR);
3781
670
    yyaccept = 4;
3782
670
    yych = *(YYMARKER = ++YYCURSOR);
3783
670
    if (yych <= 'T') {
3784
65
      if (yych == 'I') goto yy302;
3785
59
      if (yych <= 'S') goto yy48;
3786
12
      goto yy303;
3787
605
    } else {
3788
605
      if (yych <= 'i') {
3789
159
        if (yych <= 'h') goto yy48;
3790
19
        goto yy302;
3791
446
      } else {
3792
446
        if (yych == 't') goto yy303;
3793
86
        goto yy48;
3794
446
      }
3795
605
    }
3796
227
yy180:
3797
227
    YYDEBUG(180, *YYCURSOR);
3798
227
    yyaccept = 4;
3799
227
    yych = *(YYMARKER = ++YYCURSOR);
3800
227
    if (yych == 'N') goto yy304;
3801
218
    if (yych == 'n') goto yy304;
3802
102
    goto yy48;
3803
102
yy181:
3804
53
    YYDEBUG(181, *YYCURSOR);
3805
53
    yyaccept = 10;
3806
53
    yych = *(YYMARKER = ++YYCURSOR);
3807
53
    if (yybm[256+yych] & 128) {
3808
7
      goto yy47;
3809
7
    }
3810
46
    if (yych == '\\') goto yy164;
3811
42
yy182:
3812
42
    YYDEBUG(182, *YYCURSOR);
3813
42
    yyleng = YYCURSOR - SCNG(yy_text);
3814
42
#line 1406 "Zend/zend_language_scanner.l"
3815
42
    {
3816
42
  RETURN_TOKEN_WITH_IDENT(T_FN);
3817
42
}
3818
0
#line 3819 "Zend/zend_language_scanner.c"
3819
3.29k
yy183:
3820
3.29k
    YYDEBUG(183, *YYCURSOR);
3821
3.29k
    yyaccept = 4;
3822
3.29k
    yych = *(YYMARKER = ++YYCURSOR);
3823
3.29k
    if (yych == 'R') goto yy305;
3824
3.29k
    if (yych == 'r') goto yy305;
3825
1.74k
    goto yy48;
3826
5.13k
yy184:
3827
5.13k
    YYDEBUG(184, *YYCURSOR);
3828
5.13k
    yyaccept = 4;
3829
5.13k
    yych = *(YYMARKER = ++YYCURSOR);
3830
5.13k
    if (yych == 'N') goto yy307;
3831
5.13k
    if (yych == 'n') goto yy307;
3832
25
    goto yy48;
3833
84
yy185:
3834
84
    YYDEBUG(185, *YYCURSOR);
3835
84
    yyaccept = 4;
3836
84
    yych = *(YYMARKER = ++YYCURSOR);
3837
84
    if (yych == 'O') goto yy308;
3838
36
    if (yych == 'o') goto yy308;
3839
4
    goto yy48;
3840
118
yy186:
3841
118
    YYDEBUG(186, *YYCURSOR);
3842
118
    yyaccept = 4;
3843
118
    yych = *(YYMARKER = ++YYCURSOR);
3844
118
    if (yych == 'T') goto yy309;
3845
115
    if (yych == 't') goto yy309;
3846
38
    goto yy48;
3847
108
yy187:
3848
108
    YYDEBUG(187, *YYCURSOR);
3849
108
    yyaccept = 11;
3850
108
    yych = *(YYMARKER = ++YYCURSOR);
3851
108
    if (yybm[256+yych] & 128) {
3852
9
      goto yy47;
3853
9
    }
3854
99
    if (yych == '\\') goto yy164;
3855
99
yy188:
3856
99
    YYDEBUG(188, *YYCURSOR);
3857
99
    yyleng = YYCURSOR - SCNG(yy_text);
3858
99
#line 1453 "Zend/zend_language_scanner.l"
3859
99
    {
3860
99
  RETURN_TOKEN_WITH_IDENT(T_IF);
3861
99
}
3862
0
#line 3863 "Zend/zend_language_scanner.c"
3863
384
yy189:
3864
384
    YYDEBUG(189, *YYCURSOR);
3865
384
    yyaccept = 4;
3866
384
    yych = *(YYMARKER = ++YYCURSOR);
3867
384
    if (yych == 'P') goto yy310;
3868
376
    if (yych == 'p') goto yy310;
3869
51
    goto yy48;
3870
6.42k
yy190:
3871
6.42k
    YYDEBUG(190, *YYCURSOR);
3872
6.42k
    yyaccept = 4;
3873
6.42k
    yych = *(YYMARKER = ++YYCURSOR);
3874
6.42k
    if (yych <= 'T') {
3875
2.35k
      if (yych <= 'C') {
3876
1.15k
        if (yych <= 'B') goto yy48;
3877
7
        goto yy311;
3878
1.19k
      } else {
3879
1.19k
        if (yych <= 'R') goto yy48;
3880
7
        if (yych <= 'S') goto yy312;
3881
3
        goto yy313;
3882
7
      }
3883
4.07k
    } else {
3884
4.07k
      if (yych <= 'r') {
3885
3.49k
        if (yych == 'c') goto yy311;
3886
3.43k
        goto yy48;
3887
3.49k
      } else {
3888
577
        if (yych <= 's') goto yy312;
3889
534
        if (yych <= 't') goto yy313;
3890
45
        goto yy48;
3891
534
      }
3892
4.07k
    }
3893
265
yy191:
3894
265
    YYDEBUG(191, *YYCURSOR);
3895
265
    yyaccept = 4;
3896
265
    yych = *(YYMARKER = ++YYCURSOR);
3897
265
    if (yych == 'S') goto yy314;
3898
261
    if (yych == 's') goto yy314;
3899
179
    goto yy48;
3900
179
yy192:
3901
121
    YYDEBUG(192, *YYCURSOR);
3902
121
    yyaccept = 4;
3903
121
    yych = *(YYMARKER = ++YYCURSOR);
3904
121
    if (yych == 'S') goto yy315;
3905
121
    if (yych == 's') goto yy315;
3906
32
    goto yy48;
3907
90
yy193:
3908
90
    YYDEBUG(193, *YYCURSOR);
3909
90
    yyaccept = 4;
3910
90
    yych = *(YYMARKER = ++YYCURSOR);
3911
90
    if (yych == 'T') goto yy316;
3912
89
    if (yych == 't') goto yy316;
3913
18
    goto yy48;
3914
365
yy194:
3915
365
    YYDEBUG(194, *YYCURSOR);
3916
365
    yyaccept = 4;
3917
365
    yych = *(YYMARKER = ++YYCURSOR);
3918
365
    if (yych == 'M') goto yy317;
3919
351
    if (yych == 'm') goto yy317;
3920
49
    goto yy48;
3921
1.83k
yy195:
3922
1.83k
    YYDEBUG(195, *YYCURSOR);
3923
1.83k
    yyaccept = 4;
3924
1.83k
    yych = *(YYMARKER = ++YYCURSOR);
3925
1.83k
    if (yych == 'W') goto yy318;
3926
1.82k
    if (yych == 'w') goto yy318;
3927
42
    goto yy48;
3928
55
yy196:
3929
55
    YYDEBUG(196, *YYCURSOR);
3930
55
    yyaccept = 12;
3931
55
    yych = *(YYMARKER = ++YYCURSOR);
3932
55
    if (yybm[256+yych] & 128) {
3933
2
      goto yy47;
3934
2
    }
3935
53
    if (yych == '\\') goto yy164;
3936
53
yy197:
3937
53
    YYDEBUG(197, *YYCURSOR);
3938
53
    yyleng = YYCURSOR - SCNG(yy_text);
3939
53
#line 1929 "Zend/zend_language_scanner.l"
3940
53
    {
3941
53
  RETURN_TOKEN_WITH_IDENT(T_LOGICAL_OR);
3942
53
}
3943
0
#line 3944 "Zend/zend_language_scanner.c"
3944
1.68k
yy198:
3945
1.68k
    YYDEBUG(198, *YYCURSOR);
3946
1.68k
    yyaccept = 4;
3947
1.68k
    yych = *(YYMARKER = ++YYCURSOR);
3948
1.68k
    if (yych <= 'O') {
3949
170
      if (yych == 'I') goto yy320;
3950
167
      if (yych <= 'N') goto yy48;
3951
20
      goto yy321;
3952
1.51k
    } else {
3953
1.51k
      if (yych <= 'i') {
3954
1.37k
        if (yych <= 'h') goto yy48;
3955
942
        goto yy320;
3956
1.37k
      } else {
3957
140
        if (yych == 'o') goto yy321;
3958
13
        goto yy48;
3959
140
      }
3960
1.51k
    }
3961
1.12k
yy199:
3962
1.12k
    YYDEBUG(199, *YYCURSOR);
3963
1.12k
    yyaccept = 4;
3964
1.12k
    yych = *(YYMARKER = ++YYCURSOR);
3965
1.12k
    if (yych == 'B') goto yy322;
3966
1.12k
    if (yych == 'b') goto yy322;
3967
48
    goto yy48;
3968
1.63k
yy200:
3969
1.63k
    YYDEBUG(200, *YYCURSOR);
3970
1.63k
    yyaccept = 4;
3971
1.63k
    yych = *(YYMARKER = ++YYCURSOR);
3972
1.63k
    if (yych <= 'T') {
3973
39
      if (yych <= 'P') {
3974
24
        if (yych == 'A') goto yy323;
3975
20
        goto yy48;
3976
24
      } else {
3977
15
        if (yych <= 'Q') goto yy324;
3978
7
        if (yych <= 'S') goto yy48;
3979
0
        goto yy325;
3980
7
      }
3981
1.59k
    } else {
3982
1.59k
      if (yych <= 'p') {
3983
1.01k
        if (yych == 'a') goto yy323;
3984
279
        goto yy48;
3985
1.01k
      } else {
3986
579
        if (yych <= 'q') goto yy324;
3987
414
        if (yych == 't') goto yy325;
3988
41
        goto yy48;
3989
414
      }
3990
1.59k
    }
3991
852
yy201:
3992
852
    YYDEBUG(201, *YYCURSOR);
3993
852
    yyaccept = 4;
3994
852
    yych = *(YYMARKER = ++YYCURSOR);
3995
852
    if (yych == 'A') goto yy326;
3996
845
    if (yych == 'a') goto yy326;
3997
570
    goto yy48;
3998
570
yy202:
3999
66
    YYDEBUG(202, *YYCURSOR);
4000
66
    yyaccept = 4;
4001
66
    yych = *(YYMARKER = ++YYCURSOR);
4002
66
    if (yych == 'I') goto yy327;
4003
63
    if (yych == 'i') goto yy327;
4004
24
    goto yy48;
4005
154
yy203:
4006
154
    YYDEBUG(203, *YYCURSOR);
4007
154
    yyaccept = 4;
4008
154
    yych = *(YYMARKER = ++YYCURSOR);
4009
154
    if (yych == 'R') goto yy328;
4010
154
    if (yych == 'r') goto yy328;
4011
45
    goto yy48;
4012
705
yy204:
4013
705
    YYDEBUG(204, *YYCURSOR);
4014
705
    yyaccept = 4;
4015
705
    yych = *(YYMARKER = ++YYCURSOR);
4016
705
    if (yych <= 'Y') {
4017
62
      if (yych == 'A') goto yy329;
4018
57
      if (yych <= 'X') goto yy48;
4019
5
      goto yy330;
4020
643
    } else {
4021
643
      if (yych <= 'a') {
4022
207
        if (yych <= '`') goto yy48;
4023
204
        goto yy329;
4024
436
      } else {
4025
436
        if (yych == 'y') goto yy330;
4026
162
        goto yy48;
4027
436
      }
4028
643
    }
4029
396
yy205:
4030
396
    YYDEBUG(205, *YYCURSOR);
4031
396
    yyaccept = 4;
4032
396
    yych = *(YYMARKER = ++YYCURSOR);
4033
396
    if (yych == 'S') goto yy332;
4034
395
    if (yych == 's') goto yy332;
4035
45
    goto yy48;
4036
272
yy206:
4037
272
    YYDEBUG(206, *YYCURSOR);
4038
272
    yyaccept = 4;
4039
272
    yych = *(YYMARKER = ++YYCURSOR);
4040
272
    if (yych == 'E') goto yy333;
4041
272
    if (yych == 'e') goto yy333;
4042
15
    goto yy48;
4043
2.24k
yy207:
4044
2.24k
    YYDEBUG(207, *YYCURSOR);
4045
2.24k
    yyaccept = 4;
4046
2.24k
    yych = *(YYMARKER = ++YYCURSOR);
4047
2.24k
    if (yych == 'R') goto yy335;
4048
2.23k
    if (yych == 'r') goto yy335;
4049
41
    goto yy48;
4050
42
yy208:
4051
42
    YYDEBUG(208, *YYCURSOR);
4052
42
    yyaccept = 4;
4053
42
    yych = *(YYMARKER = ++YYCURSOR);
4054
42
    if (yych == 'I') goto yy337;
4055
30
    if (yych == 'i') goto yy337;
4056
8
    goto yy48;
4057
12
yy209:
4058
12
    YYDEBUG(209, *YYCURSOR);
4059
12
    yyaccept = 4;
4060
12
    yych = *(YYMARKER = ++YYCURSOR);
4061
12
    if (yych == 'R') goto yy338;
4062
7
    if (yych == 'r') goto yy338;
4063
6
    goto yy48;
4064
1.39k
yy210:
4065
1.39k
    YYDEBUG(210, *YYCURSOR);
4066
1.39k
    yyaccept = 4;
4067
1.39k
    yych = *(YYMARKER = ++YYCURSOR);
4068
1.39k
    if (yych == 'E') goto yy340;
4069
1.38k
    if (yych == 'e') goto yy340;
4070
98
    goto yy48;
4071
5.45k
yy211:
4072
5.45k
    YYDEBUG(211, *YYCURSOR);
4073
5.45k
    yyaccept = 13;
4074
5.45k
    YYMARKER = ++YYCURSOR;
4075
5.45k
    YYFILL(1);
4076
5.45k
    yych = *YYCURSOR;
4077
5.45k
    YYDEBUG(212, *YYCURSOR);
4078
5.45k
    if (yych <= '\\') {
4079
1.86k
      if (yych <= '@') {
4080
629
        if (yych <= '/') goto yy213;
4081
94
        if (yych <= '9') goto yy211;
4082
1.24k
      } else {
4083
1.24k
        if (yych <= 'Z') goto yy211;
4084
198
        if (yych >= '\\') goto yy341;
4085
198
      }
4086
3.59k
    } else {
4087
3.59k
      if (yych <= '`') {
4088
395
        if (yych == '_') goto yy211;
4089
3.19k
      } else {
4090
3.19k
        if (yych <= 'z') goto yy211;
4091
760
        if (yych >= 0x80) goto yy211;
4092
760
      }
4093
3.59k
    }
4094
760
yy213:
4095
760
    YYDEBUG(213, *YYCURSOR);
4096
760
    yyleng = YYCURSOR - SCNG(yy_text);
4097
760
#line 2446 "Zend/zend_language_scanner.l"
4098
760
    {
4099
760
  RETURN_TOKEN_WITH_STR(T_NAME_FULLY_QUALIFIED, 1);
4100
760
}
4101
0
#line 4102 "Zend/zend_language_scanner.c"
4102
0
yy214:
4103
0
    YYDEBUG(214, *YYCURSOR);
4104
0
    ++YYCURSOR;
4105
0
    YYDEBUG(215, *YYCURSOR);
4106
0
    yyleng = YYCURSOR - SCNG(yy_text);
4107
0
#line 1909 "Zend/zend_language_scanner.l"
4108
0
    {
4109
0
  RETURN_TOKEN(T_XOR_EQUAL);
4110
0
}
4111
0
#line 4112 "Zend/zend_language_scanner.c"
4112
1.39k
yy216:
4113
1.39k
    YYDEBUG(216, *YYCURSOR);
4114
1.39k
    yyaccept = 4;
4115
1.39k
    yych = *(YYMARKER = ++YYCURSOR);
4116
1.39k
    switch (yych) {
4117
81
    case 'C':
4118
291
    case 'c': goto yy342;
4119
184
    case 'D':
4120
545
    case 'd': goto yy343;
4121
147
    case 'F':
4122
159
    case 'f': goto yy344;
4123
42
    case 'H':
4124
63
    case 'h': goto yy345;
4125
21
    case 'L':
4126
27
    case 'l': goto yy346;
4127
34
    case 'M':
4128
42
    case 'm': goto yy347;
4129
50
    case 'N':
4130
73
    case 'n': goto yy348;
4131
57
    case 'P':
4132
57
    case 'p': goto yy349;
4133
8
    case 'T':
4134
50
    case 't': goto yy350;
4135
89
    default:  goto yy48;
4136
1.39k
    }
4137
11
yy217:
4138
11
    YYDEBUG(217, *YYCURSOR);
4139
11
    ++YYCURSOR;
4140
11
    YYDEBUG(218, *YYCURSOR);
4141
11
    yyleng = YYCURSOR - SCNG(yy_text);
4142
11
#line 1905 "Zend/zend_language_scanner.l"
4143
11
    {
4144
11
  RETURN_TOKEN(T_OR_EQUAL);
4145
11
}
4146
0
#line 4147 "Zend/zend_language_scanner.c"
4147
36
yy219:
4148
36
    YYDEBUG(219, *YYCURSOR);
4149
36
    ++YYCURSOR;
4150
36
    YYDEBUG(220, *YYCURSOR);
4151
36
    yyleng = YYCURSOR - SCNG(yy_text);
4152
36
#line 1917 "Zend/zend_language_scanner.l"
4153
36
    {
4154
36
  RETURN_TOKEN(T_PIPE);
4155
36
}
4156
0
#line 4157 "Zend/zend_language_scanner.c"
4157
46
yy221:
4158
46
    YYDEBUG(221, *YYCURSOR);
4159
46
    ++YYCURSOR;
4160
46
    YYDEBUG(222, *YYCURSOR);
4161
46
    yyleng = YYCURSOR - SCNG(yy_text);
4162
46
#line 1921 "Zend/zend_language_scanner.l"
4163
46
    {
4164
46
  RETURN_TOKEN(T_BOOLEAN_OR);
4165
46
}
4166
0
#line 4167 "Zend/zend_language_scanner.c"
4167
5
yy223:
4168
5
    YYDEBUG(223, *YYCURSOR);
4169
5
    ++YYCURSOR;
4170
5
    YYDEBUG(224, *YYCURSOR);
4171
5
    yyleng = YYCURSOR - SCNG(yy_text);
4172
5
#line 1837 "Zend/zend_language_scanner.l"
4173
5
    {
4174
5
  RETURN_TOKEN(T_IS_NOT_IDENTICAL);
4175
5
}
4176
0
#line 4177 "Zend/zend_language_scanner.c"
4177
4.95k
yy225:
4178
4.95k
    YYDEBUG(225, *YYCURSOR);
4179
4.95k
    ++YYCURSOR;
4180
4.95k
    YYFILL(1);
4181
4.95k
    yych = *YYCURSOR;
4182
4.95k
    YYDEBUG(226, *YYCURSOR);
4183
4.95k
    if (yybm[0+yych] & 2) {
4184
4.06k
      goto yy225;
4185
4.06k
    }
4186
891
    if (yych <= 0x00) goto yy86;
4187
766
    goto yy84;
4188
1.09k
yy227:
4189
1.09k
    YYDEBUG(227, *YYCURSOR);
4190
1.09k
    ++YYCURSOR;
4191
1.09k
    YYFILL(1);
4192
1.09k
    yych = *YYCURSOR;
4193
1.09k
    YYDEBUG(228, *YYCURSOR);
4194
1.09k
    if (yych <= 0x1F) {
4195
180
      if (yych <= '\t') {
4196
69
        if (yych <= 0x00) goto yy86;
4197
62
        if (yych <= 0x08) goto yy225;
4198
13
        goto yy227;
4199
111
      } else {
4200
111
        if (yych <= '\n') goto yy84;
4201
99
        if (yych == '\r') goto yy84;
4202
24
        goto yy225;
4203
99
      }
4204
916
    } else {
4205
916
      if (yych <= '$') {
4206
136
        if (yych <= ' ') goto yy227;
4207
129
        if (yych <= '"') goto yy225;
4208
124
        if (yych <= '#') goto yy351;
4209
107
        goto yy352;
4210
780
      } else {
4211
780
        if (yych <= '-') goto yy225;
4212
670
        if (yych <= '.') goto yy353;
4213
602
        if (yych <= '/') goto yy354;
4214
200
        goto yy225;
4215
602
      }
4216
916
    }
4217
19
yy229:
4218
19
    YYDEBUG(229, *YYCURSOR);
4219
19
    yych = *++YYCURSOR;
4220
19
    if (yych == '.') goto yy88;
4221
5
    goto yy86;
4222
2.10k
yy230:
4223
2.10k
    YYDEBUG(230, *YYCURSOR);
4224
2.10k
    ++YYCURSOR;
4225
2.10k
    YYFILL(1);
4226
2.10k
    yych = *YYCURSOR;
4227
2.10k
    YYDEBUG(231, *YYCURSOR);
4228
2.10k
    if (yybm[0+yych] & 4) {
4229
1.86k
      goto yy230;
4230
1.86k
    }
4231
241
    if (yych <= 0x00) goto yy86;
4232
135
    goto yy355;
4233
135
yy232:
4234
131
    YYDEBUG(232, *YYCURSOR);
4235
131
    yych = *++YYCURSOR;
4236
131
    if (yych == 'R') goto yy357;
4237
124
    if (yych == 'r') goto yy357;
4238
10
    goto yy86;
4239
156
yy233:
4240
156
    YYDEBUG(233, *YYCURSOR);
4241
156
    yych = *++YYCURSOR;
4242
156
    if (yych == 'N') goto yy358;
4243
156
    if (yych == 'n') goto yy358;
4244
149
    goto yy86;
4245
149
yy234:
4246
24
    YYDEBUG(234, *YYCURSOR);
4247
24
    yych = *++YYCURSOR;
4248
24
    if (yych == 'O') goto yy359;
4249
24
    if (yych == 'o') goto yy359;
4250
4
    goto yy86;
4251
6
yy235:
4252
6
    YYDEBUG(235, *YYCURSOR);
4253
6
    yych = *++YYCURSOR;
4254
6
    if (yych == 'U') goto yy360;
4255
6
    if (yych == 'u') goto yy360;
4256
1
    goto yy86;
4257
35
yy236:
4258
35
    YYDEBUG(236, *YYCURSOR);
4259
35
    yych = *++YYCURSOR;
4260
35
    if (yych == 'O') goto yy361;
4261
35
    if (yych == 'o') goto yy361;
4262
14
    goto yy86;
4263
134
yy237:
4264
134
    YYDEBUG(237, *YYCURSOR);
4265
134
    yych = *++YYCURSOR;
4266
134
    if (yych == 'T') goto yy362;
4267
134
    if (yych == 't') goto yy362;
4268
53
    goto yy86;
4269
88
yy238:
4270
88
    YYDEBUG(238, *YYCURSOR);
4271
88
    yych = *++YYCURSOR;
4272
88
    if (yych == 'J') goto yy363;
4273
70
    if (yych == 'j') goto yy363;
4274
10
    goto yy86;
4275
33
yy239:
4276
33
    YYDEBUG(239, *YYCURSOR);
4277
33
    yych = *++YYCURSOR;
4278
33
    if (yych == 'A') goto yy364;
4279
30
    if (yych == 'a') goto yy364;
4280
25
    goto yy86;
4281
140
yy240:
4282
140
    YYDEBUG(240, *YYCURSOR);
4283
140
    yych = *++YYCURSOR;
4284
140
    if (yych == 'R') goto yy365;
4285
139
    if (yych == 'r') goto yy365;
4286
9
    goto yy86;
4287
191
yy241:
4288
191
    YYDEBUG(241, *YYCURSOR);
4289
191
    yych = *++YYCURSOR;
4290
191
    if (yych == 'S') goto yy366;
4291
190
    if (yych == 's') goto yy366;
4292
29
    goto yy86;
4293
29
yy242:
4294
5
    YYDEBUG(242, *YYCURSOR);
4295
5
    yych = *++YYCURSOR;
4296
5
    if (yych == 'I') goto yy367;
4297
5
    if (yych == 'i') goto yy367;
4298
1
    goto yy86;
4299
13
yy243:
4300
13
    YYDEBUG(243, *YYCURSOR);
4301
13
    ++YYCURSOR;
4302
13
    YYDEBUG(244, *YYCURSOR);
4303
13
    yyleng = YYCURSOR - SCNG(yy_text);
4304
13
#line 1877 "Zend/zend_language_scanner.l"
4305
13
    {
4306
13
  RETURN_TOKEN(T_POW_EQUAL);
4307
13
}
4308
0
#line 4309 "Zend/zend_language_scanner.c"
4309
362
yy245:
4310
362
    YYDEBUG(245, *YYCURSOR);
4311
362
    ++YYCURSOR;
4312
362
    YYDEBUG(246, *YYCURSOR);
4313
362
    yyleng = YYCURSOR - SCNG(yy_text);
4314
362
#line 1617 "Zend/zend_language_scanner.l"
4315
362
    {
4316
362
  RETURN_TOKEN(T_ELLIPSIS);
4317
362
}
4318
0
#line 4319 "Zend/zend_language_scanner.c"
4319
11
yy247:
4320
11
    YYDEBUG(247, *YYCURSOR);
4321
11
    ++YYCURSOR;
4322
11
    YYFILL(1);
4323
11
    yych = *YYCURSOR;
4324
11
    if (yych <= '/') goto yy86;
4325
10
    if (yych <= '9') goto yy123;
4326
10
    goto yy86;
4327
101
yy248:
4328
101
    YYDEBUG(248, *YYCURSOR);
4329
101
    yych = *++YYCURSOR;
4330
101
    if (yych <= '\f') {
4331
33
      if (yych <= 0x08) goto yy86;
4332
27
      if (yych <= '\n') goto yy368;
4333
0
      goto yy86;
4334
68
    } else {
4335
68
      if (yych <= '\r') goto yy368;
4336
43
      if (yych == ' ') goto yy368;
4337
27
      goto yy86;
4338
43
    }
4339
34
yy249:
4340
34
    YYDEBUG(249, *YYCURSOR);
4341
34
    yyaccept = 14;
4342
34
    YYMARKER = ++YYCURSOR;
4343
34
    YYFILL(1);
4344
34
    yych = *YYCURSOR;
4345
34
    YYDEBUG(250, *YYCURSOR);
4346
34
    if (yybm[0+yych] & 8) {
4347
22
      goto yy249;
4348
22
    }
4349
12
    if (yych == '_') goto yy134;
4350
12
yy251:
4351
12
    YYDEBUG(251, *YYCURSOR);
4352
12
    yyleng = YYCURSOR - SCNG(yy_text);
4353
12
#line 2010 "Zend/zend_language_scanner.l"
4354
12
    {
4355
  /* The +/- 2 skips "0b" */
4356
12
  size_t len = yyleng - 2;
4357
12
  char *end, *bin = yytext + 2;
4358
12
  bool contains_underscores;
4359
4360
  /* Skip any leading 0s */
4361
16
  while (len > 0 && (*bin == '0' || *bin == '_')) {
4362
4
    ++bin;
4363
4
    --len;
4364
4
  }
4365
4366
12
  contains_underscores = (memchr(bin, '_', len) != NULL);
4367
4368
12
  if (contains_underscores) {
4369
0
    bin = estrndup(bin, len);
4370
0
    strip_underscores(bin, &len);
4371
0
  }
4372
4373
12
  if (len < SIZEOF_ZEND_LONG * 8) {
4374
12
    if (len == 0) {
4375
2
      ZVAL_LONG(zendlval, 0);
4376
10
    } else {
4377
10
      errno = 0;
4378
10
      ZVAL_LONG(zendlval, ZEND_STRTOL(bin, &end, 2));
4379
10
      ZEND_ASSERT(!errno && end == bin + len);
4380
10
    }
4381
12
    if (contains_underscores) {
4382
0
      efree(bin);
4383
0
    }
4384
12
    RETURN_TOKEN_WITH_VAL(T_LNUMBER);
4385
12
  } else {
4386
0
    ZVAL_DOUBLE(zendlval, zend_bin_strtod(bin, (const char **)&end));
4387
    /* errno isn't checked since we allow HUGE_VAL/INF overflow */
4388
0
    ZEND_ASSERT(end == bin + len);
4389
0
    if (contains_underscores) {
4390
0
      efree(bin);
4391
0
    }
4392
0
    RETURN_TOKEN_WITH_VAL(T_DNUMBER);
4393
0
  }
4394
12
}
4395
0
#line 4396 "Zend/zend_language_scanner.c"
4396
101
yy252:
4397
101
    YYDEBUG(252, *YYCURSOR);
4398
101
    ++YYCURSOR;
4399
101
    YYFILL(1);
4400
101
    yych = *YYCURSOR;
4401
101
    if (yych <= '/') goto yy86;
4402
100
    if (yych >= ':') goto yy86;
4403
540
yy253:
4404
540
    YYDEBUG(253, *YYCURSOR);
4405
540
    yyaccept = 5;
4406
540
    YYMARKER = ++YYCURSOR;
4407
540
    YYFILL(1);
4408
540
    yych = *YYCURSOR;
4409
540
    YYDEBUG(254, *YYCURSOR);
4410
540
    if (yych <= '/') goto yy125;
4411
464
    if (yych <= '9') goto yy253;
4412
149
    if (yych == '_') goto yy252;
4413
95
    goto yy125;
4414
95
yy255:
4415
24
    YYDEBUG(255, *YYCURSOR);
4416
24
    yyaccept = 15;
4417
24
    YYMARKER = ++YYCURSOR;
4418
24
    YYFILL(1);
4419
24
    yych = *YYCURSOR;
4420
24
    YYDEBUG(256, *YYCURSOR);
4421
24
    if (yybm[0+yych] & 16) {
4422
18
      goto yy255;
4423
18
    }
4424
6
    if (yych == '_') goto yy136;
4425
6
yy257:
4426
6
    YYDEBUG(257, *YYCURSOR);
4427
6
    yyleng = YYCURSOR - SCNG(yy_text);
4428
6
#line 2052 "Zend/zend_language_scanner.l"
4429
6
    {
4430
  /* The +/- 2 skips "0o" */
4431
6
  size_t len = yyleng - 2;
4432
6
  char *end, *octal = yytext + 2;
4433
6
  bool contains_underscores = (memchr(octal, '_', len) != NULL);
4434
4435
  /* Skip any leading 0s */
4436
10
  while (len > 0 && (*octal == '0' || *octal == '_')) {
4437
4
    ++octal;
4438
4
    --len;
4439
4
  }
4440
4441
6
  if (len == 0) {
4442
1
    ZVAL_LONG(zendlval, 0);
4443
1
    RETURN_TOKEN_WITH_VAL(T_LNUMBER);
4444
1
  }
4445
4446
5
  if (contains_underscores) {
4447
0
    octal = estrndup(octal, len);
4448
0
    strip_underscores(octal, &len);
4449
0
  }
4450
4451
5
  errno = 0;
4452
4453
5
  ZVAL_LONG(zendlval, ZEND_STRTOL(octal, &end, 8));
4454
4455
5
  ZEND_ASSERT(end == octal + len);
4456
4457
5
  if (!errno) {
4458
5
    if (contains_underscores) {
4459
0
      efree(octal);
4460
0
    }
4461
5
    RETURN_TOKEN_WITH_VAL(T_LNUMBER);
4462
5
  }
4463
4464
  /* Overflow */
4465
0
  ZEND_ASSERT(errno == ERANGE);
4466
  /* Reset errno */
4467
0
  errno = 0;
4468
4469
  /* zend_oct_strtod skips leading '0' */
4470
0
  ZVAL_DOUBLE(zendlval, zend_oct_strtod(octal, (const char **)&end));
4471
0
  ZEND_ASSERT(!errno);
4472
0
  ZEND_ASSERT(end == octal + len);
4473
0
  if (contains_underscores) {
4474
0
    efree(octal);
4475
0
  }
4476
0
  RETURN_TOKEN_WITH_VAL(T_DNUMBER);
4477
0
}
4478
0
#line 4479 "Zend/zend_language_scanner.c"
4479
499
yy258:
4480
499
    YYDEBUG(258, *YYCURSOR);
4481
499
    yyaccept = 16;
4482
499
    YYMARKER = ++YYCURSOR;
4483
499
    YYFILL(1);
4484
499
    yych = *YYCURSOR;
4485
499
    YYDEBUG(259, *YYCURSOR);
4486
499
    if (yybm[0+yych] & 32) {
4487
452
      goto yy258;
4488
452
    }
4489
47
    if (yych == '_') goto yy137;
4490
43
yy260:
4491
43
    YYDEBUG(260, *YYCURSOR);
4492
43
    yyleng = YYCURSOR - SCNG(yy_text);
4493
43
#line 2165 "Zend/zend_language_scanner.l"
4494
43
    {
4495
  /* The +/- 2 skips "0x" */
4496
43
  size_t len = yyleng - 2;
4497
43
  char *end, *hex = yytext + 2;
4498
43
  bool contains_underscores;
4499
4500
  /* Skip any leading 0s */
4501
68
  while (len > 0 && (*hex == '0' || *hex == '_')) {
4502
25
    ++hex;
4503
25
    --len;
4504
25
  }
4505
4506
43
  contains_underscores = (memchr(hex, '_', len) != NULL);
4507
4508
43
  if (contains_underscores) {
4509
4
    hex = estrndup(hex, len);
4510
4
    strip_underscores(hex, &len);
4511
4
  }
4512
4513
43
  if (len < SIZEOF_ZEND_LONG * 2 || (len == SIZEOF_ZEND_LONG * 2 && *hex <= '7')) {
4514
28
    if (len == 0) {
4515
4
      ZVAL_LONG(zendlval, 0);
4516
24
    } else {
4517
24
      errno = 0;
4518
24
      ZVAL_LONG(zendlval, ZEND_STRTOL(hex, &end, 16));
4519
24
      ZEND_ASSERT(!errno && end == hex + len);
4520
24
    }
4521
28
    if (contains_underscores) {
4522
2
      efree(hex);
4523
2
    }
4524
28
    RETURN_TOKEN_WITH_VAL(T_LNUMBER);
4525
28
  } else {
4526
15
    ZVAL_DOUBLE(zendlval, zend_hex_strtod(hex, (const char **)&end));
4527
    /* errno isn't checked since we allow HUGE_VAL/INF overflow */
4528
15
    ZEND_ASSERT(end == hex + len);
4529
15
    if (contains_underscores) {
4530
2
      efree(hex);
4531
2
    }
4532
15
    RETURN_TOKEN_WITH_VAL(T_DNUMBER);
4533
15
  }
4534
43
}
4535
0
#line 4536 "Zend/zend_language_scanner.c"
4536
23.5k
yy261:
4537
23.5k
    YYDEBUG(261, *YYCURSOR);
4538
23.5k
    ++YYCURSOR;
4539
23.5k
    YYFILL(2);
4540
23.5k
    yych = *YYCURSOR;
4541
23.5k
    YYDEBUG(262, *YYCURSOR);
4542
23.5k
    if (yych <= '\'') {
4543
2.39k
      if (yych <= ' ') {
4544
2.06k
        if (yych == '\t') goto yy261;
4545
2.04k
        if (yych <= 0x1F) goto yy86;
4546
52
        goto yy261;
4547
2.04k
      } else {
4548
331
        if (yych == '"') goto yy370;
4549
218
        if (yych <= '&') goto yy86;
4550
117
        goto yy371;
4551
218
      }
4552
21.1k
    } else {
4553
21.1k
      if (yych <= '_') {
4554
7.15k
        if (yych <= '@') goto yy86;
4555
4.14k
        if (yych <= 'Z') goto yy372;
4556
40
        if (yych <= '^') goto yy86;
4557
27
        goto yy372;
4558
13.9k
      } else {
4559
13.9k
        if (yych <= '`') goto yy86;
4560
13.9k
        if (yych <= 'z') goto yy372;
4561
1.07k
        if (yych <= 0x7F) goto yy86;
4562
967
        goto yy372;
4563
1.07k
      }
4564
21.1k
    }
4565
13
yy263:
4566
13
    YYDEBUG(263, *YYCURSOR);
4567
13
    ++YYCURSOR;
4568
13
    YYDEBUG(264, *YYCURSOR);
4569
13
    yyleng = YYCURSOR - SCNG(yy_text);
4570
13
#line 1893 "Zend/zend_language_scanner.l"
4571
13
    {
4572
13
  RETURN_TOKEN(T_SL_EQUAL);
4573
13
}
4574
0
#line 4575 "Zend/zend_language_scanner.c"
4575
10
yy265:
4576
10
    YYDEBUG(265, *YYCURSOR);
4577
10
    ++YYCURSOR;
4578
10
    YYDEBUG(266, *YYCURSOR);
4579
10
    yyleng = YYCURSOR - SCNG(yy_text);
4580
10
#line 1849 "Zend/zend_language_scanner.l"
4581
10
    {
4582
10
  RETURN_TOKEN(T_SPACESHIP);
4583
10
}
4584
0
#line 4585 "Zend/zend_language_scanner.c"
4585
72
yy267:
4586
72
    YYDEBUG(267, *YYCURSOR);
4587
72
    ++YYCURSOR;
4588
72
    YYDEBUG(268, *YYCURSOR);
4589
72
    yyleng = YYCURSOR - SCNG(yy_text);
4590
72
#line 1833 "Zend/zend_language_scanner.l"
4591
72
    {
4592
72
  RETURN_TOKEN(T_IS_IDENTICAL);
4593
72
}
4594
0
#line 4595 "Zend/zend_language_scanner.c"
4595
9
yy269:
4596
9
    YYDEBUG(269, *YYCURSOR);
4597
9
    ++YYCURSOR;
4598
9
    YYDEBUG(270, *YYCURSOR);
4599
9
    yyleng = YYCURSOR - SCNG(yy_text);
4600
9
#line 1897 "Zend/zend_language_scanner.l"
4601
9
    {
4602
9
  RETURN_TOKEN(T_SR_EQUAL);
4603
9
}
4604
0
#line 4605 "Zend/zend_language_scanner.c"
4605
95
yy271:
4606
95
    YYDEBUG(271, *YYCURSOR);
4607
95
    ++YYCURSOR;
4608
95
    YYDEBUG(272, *YYCURSOR);
4609
95
    yyleng = YYCURSOR - SCNG(yy_text);
4610
95
#line 1591 "Zend/zend_language_scanner.l"
4611
95
    {
4612
95
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
4613
95
  RETURN_TOKEN(T_NULLSAFE_OBJECT_OPERATOR);
4614
95
}
4615
0
#line 4616 "Zend/zend_language_scanner.c"
4616
390
yy273:
4617
390
    YYDEBUG(273, *YYCURSOR);
4618
390
    ++YYCURSOR;
4619
390
    goto yy156;
4620
0
yy274:
4621
0
    YYDEBUG(274, *YYCURSOR);
4622
0
    yych = *++YYCURSOR;
4623
0
    if (yych == '\n') goto yy273;
4624
0
    goto yy156;
4625
24
yy275:
4626
24
    YYDEBUG(275, *YYCURSOR);
4627
24
    ++YYCURSOR;
4628
24
    YYDEBUG(276, *YYCURSOR);
4629
24
    yyleng = YYCURSOR - SCNG(yy_text);
4630
24
#line 1913 "Zend/zend_language_scanner.l"
4631
24
    {
4632
24
  RETURN_TOKEN(T_COALESCE_EQUAL);
4633
24
}
4634
0
#line 4635 "Zend/zend_language_scanner.c"
4635
137
yy277:
4636
137
    YYDEBUG(277, *YYCURSOR);
4637
137
    yyaccept = 4;
4638
137
    yych = *(YYMARKER = ++YYCURSOR);
4639
137
    if (yych == 'T') goto yy374;
4640
135
    if (yych == 't') goto yy374;
4641
5
    goto yy48;
4642
39
yy278:
4643
39
    YYDEBUG(278, *YYCURSOR);
4644
39
    yyaccept = 17;
4645
39
    yych = *(YYMARKER = ++YYCURSOR);
4646
39
    if (yybm[256+yych] & 128) {
4647
2
      goto yy47;
4648
2
    }
4649
37
    if (yych == '\\') goto yy164;
4650
32
yy279:
4651
32
    YYDEBUG(279, *YYCURSOR);
4652
32
    yyleng = YYCURSOR - SCNG(yy_text);
4653
32
#line 1933 "Zend/zend_language_scanner.l"
4654
32
    {
4655
32
  RETURN_TOKEN_WITH_IDENT(T_LOGICAL_AND);
4656
32
}
4657
0
#line 4658 "Zend/zend_language_scanner.c"
4658
679
yy280:
4659
679
    YYDEBUG(280, *YYCURSOR);
4660
679
    yyaccept = 4;
4661
679
    yych = *(YYMARKER = ++YYCURSOR);
4662
679
    if (yych == 'A') goto yy375;
4663
679
    if (yych == 'a') goto yy375;
4664
10
    goto yy48;
4665
2.03k
yy281:
4666
2.03k
    YYDEBUG(281, *YYCURSOR);
4667
2.03k
    yyaccept = 18;
4668
2.03k
    YYMARKER = ++YYCURSOR;
4669
2.03k
    YYFILL(1);
4670
2.03k
    yych = *YYCURSOR;
4671
2.03k
    YYDEBUG(282, *YYCURSOR);
4672
2.03k
    if (yych <= '\\') {
4673
706
      if (yych <= '@') {
4674
441
        if (yych <= '/') goto yy283;
4675
260
        if (yych <= '9') goto yy281;
4676
265
      } else {
4677
265
        if (yych <= 'Z') goto yy281;
4678
64
        if (yych >= '\\') goto yy164;
4679
64
      }
4680
1.32k
    } else {
4681
1.32k
      if (yych <= '`') {
4682
17
        if (yych == '_') goto yy281;
4683
1.31k
      } else {
4684
1.31k
        if (yych <= 'z') goto yy281;
4685
214
        if (yych >= 0x80) goto yy281;
4686
214
      }
4687
1.32k
    }
4688
388
yy283:
4689
388
    YYDEBUG(283, *YYCURSOR);
4690
388
    yyleng = YYCURSOR - SCNG(yy_text);
4691
388
#line 2442 "Zend/zend_language_scanner.l"
4692
388
    {
4693
388
  RETURN_TOKEN_WITH_STR(T_NAME_QUALIFIED, 0);
4694
388
}
4695
0
#line 4696 "Zend/zend_language_scanner.c"
4696
152
yy284:
4697
152
    YYDEBUG(284, *YYCURSOR);
4698
152
    yych = *++YYCURSOR;
4699
152
    if (yych == '<') goto yy261;
4700
48
    goto yy86;
4701
48
yy285:
4702
41
    YYDEBUG(285, *YYCURSOR);
4703
41
    yyaccept = 4;
4704
41
    yych = *(YYMARKER = ++YYCURSOR);
4705
41
    if (yych == 'A') goto yy376;
4706
41
    if (yych == 'a') goto yy376;
4707
10
    goto yy48;
4708
342
yy286:
4709
342
    YYDEBUG(286, *YYCURSOR);
4710
342
    yyaccept = 4;
4711
342
    yych = *(YYMARKER = ++YYCURSOR);
4712
342
    if (yych == 'L') goto yy377;
4713
341
    if (yych == 'l') goto yy377;
4714
143
    goto yy48;
4715
175
yy287:
4716
175
    YYDEBUG(287, *YYCURSOR);
4717
175
    yyaccept = 4;
4718
175
    yych = *(YYMARKER = ++YYCURSOR);
4719
175
    if (yych == 'E') goto yy378;
4720
175
    if (yych == 'e') goto yy378;
4721
5
    goto yy48;
4722
201
yy288:
4723
201
    YYDEBUG(288, *YYCURSOR);
4724
201
    yyaccept = 4;
4725
201
    yych = *(YYMARKER = ++YYCURSOR);
4726
201
    if (yych == 'C') goto yy380;
4727
201
    if (yych == 'c') goto yy380;
4728
4
    goto yy48;
4729
1.70k
yy289:
4730
1.70k
    YYDEBUG(289, *YYCURSOR);
4731
1.70k
    yyaccept = 4;
4732
1.70k
    yych = *(YYMARKER = ++YYCURSOR);
4733
1.70k
    if (yych == 'S') goto yy381;
4734
1.69k
    if (yych == 's') goto yy381;
4735
30
    goto yy48;
4736
172
yy290:
4737
172
    YYDEBUG(290, *YYCURSOR);
4738
172
    yyaccept = 4;
4739
172
    yych = *(YYMARKER = ++YYCURSOR);
4740
172
    if (yych == 'N') goto yy382;
4741
172
    if (yych == 'n') goto yy382;
4742
124
    goto yy48;
4743
746
yy291:
4744
746
    YYDEBUG(291, *YYCURSOR);
4745
746
    yyaccept = 4;
4746
746
    yych = *(YYMARKER = ++YYCURSOR);
4747
746
    if (yych <= 'T') {
4748
46
      if (yych <= 'R') goto yy48;
4749
35
      if (yych <= 'S') goto yy383;
4750
9
      goto yy384;
4751
700
    } else {
4752
700
      if (yych <= 'r') goto yy48;
4753
686
      if (yych <= 's') goto yy383;
4754
45
      if (yych <= 't') goto yy384;
4755
11
      goto yy48;
4756
45
    }
4757
119
yy292:
4758
119
    YYDEBUG(292, *YYCURSOR);
4759
119
    yyaccept = 4;
4760
119
    yych = *(YYMARKER = ++YYCURSOR);
4761
119
    if (yych == 'L') goto yy385;
4762
118
    if (yych == 'l') goto yy385;
4763
3
    goto yy48;
4764
75
yy293:
4765
75
    YYDEBUG(293, *YYCURSOR);
4766
75
    yyaccept = 4;
4767
75
    yych = *(YYMARKER = ++YYCURSOR);
4768
75
    if (yych == 'A') goto yy386;
4769
75
    if (yych == 'a') goto yy386;
4770
61
    goto yy48;
4771
61
yy294:
4772
11
    YYDEBUG(294, *YYCURSOR);
4773
11
    yyaccept = 19;
4774
11
    yych = *(YYMARKER = ++YYCURSOR);
4775
11
    if (yybm[256+yych] & 128) {
4776
2
      goto yy47;
4777
2
    }
4778
9
    if (yych == '\\') goto yy164;
4779
9
yy295:
4780
9
    YYDEBUG(295, *YYCURSOR);
4781
9
    yyleng = YYCURSOR - SCNG(yy_text);
4782
9
#line 1402 "Zend/zend_language_scanner.l"
4783
9
    {
4784
9
  RETURN_TOKEN_WITH_IDENT(T_EXIT);
4785
9
}
4786
0
#line 4787 "Zend/zend_language_scanner.c"
4787
1.23k
yy296:
4788
1.23k
    YYDEBUG(296, *YYCURSOR);
4789
1.23k
    yyaccept = 4;
4790
1.23k
    yych = *(YYMARKER = ++YYCURSOR);
4791
1.23k
    if (yych == 'O') goto yy387;
4792
1.23k
    if (yych == 'o') goto yy387;
4793
65
    goto yy48;
4794
65
yy297:
4795
21
    YYDEBUG(297, *YYCURSOR);
4796
21
    yyaccept = 4;
4797
21
    yych = *(YYMARKER = ++YYCURSOR);
4798
21
    if (yych == 'E') goto yy389;
4799
21
    if (yych == 'e') goto yy389;
4800
1
    goto yy48;
4801
31
yy298:
4802
31
    YYDEBUG(298, *YYCURSOR);
4803
31
    yyaccept = 4;
4804
31
    yych = *(YYMARKER = ++YYCURSOR);
4805
31
    if (yych == 'T') goto yy391;
4806
28
    if (yych == 't') goto yy391;
4807
18
    goto yy48;
4808
218
yy299:
4809
218
    YYDEBUG(299, *YYCURSOR);
4810
218
    yyaccept = 4;
4811
218
    yych = *(YYMARKER = ++YYCURSOR);
4812
218
    switch (yych) {
4813
1
    case 'D':
4814
12
    case 'd': goto yy392;
4815
5
    case 'F':
4816
111
    case 'f': goto yy393;
4817
12
    case 'I':
4818
20
    case 'i': goto yy394;
4819
8
    case 'S':
4820
16
    case 's': goto yy395;
4821
5
    case 'W':
4822
6
    case 'w': goto yy396;
4823
53
    default:  goto yy48;
4824
218
    }
4825
1.38k
yy300:
4826
1.38k
    YYDEBUG(300, *YYCURSOR);
4827
1.38k
    yyaccept = 4;
4828
1.38k
    yych = *(YYMARKER = ++YYCURSOR);
4829
1.38k
    if (yych == 'M') goto yy397;
4830
1.33k
    if (yych == 'm') goto yy397;
4831
59
    goto yy48;
4832
82
yy301:
4833
82
    YYDEBUG(301, *YYCURSOR);
4834
82
    yyaccept = 4;
4835
82
    yych = *(YYMARKER = ++YYCURSOR);
4836
82
    if (yych == 'L') goto yy398;
4837
82
    if (yych == 'l') goto yy398;
4838
21
    goto yy48;
4839
25
yy302:
4840
25
    YYDEBUG(302, *YYCURSOR);
4841
25
    yyaccept = 4;
4842
25
    yych = *(YYMARKER = ++YYCURSOR);
4843
25
    if (yych == 'T') goto yy400;
4844
22
    if (yych == 't') goto yy400;
4845
3
    goto yy48;
4846
372
yy303:
4847
372
    YYDEBUG(303, *YYCURSOR);
4848
372
    yyaccept = 4;
4849
372
    yych = *(YYMARKER = ++YYCURSOR);
4850
372
    if (yych == 'E') goto yy402;
4851
364
    if (yych == 'e') goto yy402;
4852
33
    goto yy48;
4853
125
yy304:
4854
125
    YYDEBUG(304, *YYCURSOR);
4855
125
    yyaccept = 4;
4856
125
    yych = *(YYMARKER = ++YYCURSOR);
4857
125
    if (yych == 'A') goto yy403;
4858
117
    if (yych == 'a') goto yy403;
4859
5
    goto yy48;
4860
1.55k
yy305:
4861
1.55k
    YYDEBUG(305, *YYCURSOR);
4862
1.55k
    yyaccept = 20;
4863
1.55k
    yych = *(YYMARKER = ++YYCURSOR);
4864
1.55k
    if (yych <= '\\') {
4865
1.31k
      if (yych <= 'D') {
4866
1.30k
        if (yych <= '/') goto yy306;
4867
887
        if (yych <= '9') goto yy47;
4868
876
        if (yych >= 'A') goto yy47;
4869
876
      } else {
4870
18
        if (yych <= 'E') goto yy404;
4871
17
        if (yych <= 'Z') goto yy47;
4872
1
        if (yych >= '\\') goto yy164;
4873
1
      }
4874
1.31k
    } else {
4875
236
      if (yych <= 'd') {
4876
6
        if (yych == '_') goto yy47;
4877
6
        if (yych >= 'a') goto yy47;
4878
230
      } else {
4879
230
        if (yych <= 'e') goto yy404;
4880
17
        if (yych <= 'z') goto yy47;
4881
8
        if (yych >= 0x80) goto yy47;
4882
8
      }
4883
236
    }
4884
1.28k
yy306:
4885
1.28k
    YYDEBUG(306, *YYCURSOR);
4886
1.28k
    yyleng = YYCURSOR - SCNG(yy_text);
4887
1.28k
#line 1481 "Zend/zend_language_scanner.l"
4888
1.28k
    {
4889
1.28k
  RETURN_TOKEN_WITH_IDENT(T_FOR);
4890
1.28k
}
4891
0
#line 4892 "Zend/zend_language_scanner.c"
4892
5.11k
yy307:
4893
5.11k
    YYDEBUG(307, *YYCURSOR);
4894
5.11k
    yyaccept = 4;
4895
5.11k
    yych = *(YYMARKER = ++YYCURSOR);
4896
5.11k
    if (yych == 'C') goto yy405;
4897
5.11k
    if (yych == 'c') goto yy405;
4898
21
    goto yy48;
4899
80
yy308:
4900
80
    YYDEBUG(308, *YYCURSOR);
4901
80
    yyaccept = 4;
4902
80
    yych = *(YYMARKER = ++YYCURSOR);
4903
80
    if (yych == 'B') goto yy406;
4904
38
    if (yych == 'b') goto yy406;
4905
7
    goto yy48;
4906
80
yy309:
4907
80
    YYDEBUG(309, *YYCURSOR);
4908
80
    yyaccept = 4;
4909
80
    yych = *(YYMARKER = ++YYCURSOR);
4910
80
    if (yych == 'O') goto yy407;
4911
80
    if (yych == 'o') goto yy407;
4912
4
    goto yy48;
4913
333
yy310:
4914
333
    YYDEBUG(310, *YYCURSOR);
4915
333
    yyaccept = 4;
4916
333
    yych = *(YYMARKER = ++YYCURSOR);
4917
333
    if (yych == 'L') goto yy409;
4918
322
    if (yych == 'l') goto yy409;
4919
68
    goto yy48;
4920
68
yy311:
4921
64
    YYDEBUG(311, *YYCURSOR);
4922
64
    yyaccept = 4;
4923
64
    yych = *(YYMARKER = ++YYCURSOR);
4924
64
    if (yych == 'L') goto yy410;
4925
61
    if (yych == 'l') goto yy410;
4926
9
    goto yy48;
4927
47
yy312:
4928
47
    YYDEBUG(312, *YYCURSOR);
4929
47
    yyaccept = 4;
4930
47
    yych = *(YYMARKER = ++YYCURSOR);
4931
47
    if (yych == 'T') goto yy411;
4932
43
    if (yych == 't') goto yy411;
4933
1
    goto yy48;
4934
492
yy313:
4935
492
    YYDEBUG(313, *YYCURSOR);
4936
492
    yyaccept = 4;
4937
492
    yych = *(YYMARKER = ++YYCURSOR);
4938
492
    if (yych == 'E') goto yy412;
4939
474
    if (yych == 'e') goto yy412;
4940
242
    goto yy48;
4941
242
yy314:
4942
86
    YYDEBUG(314, *YYCURSOR);
4943
86
    yyaccept = 4;
4944
86
    yych = *(YYMARKER = ++YYCURSOR);
4945
86
    if (yych == 'E') goto yy413;
4946
85
    if (yych == 'e') goto yy413;
4947
10
    goto yy48;
4948
89
yy315:
4949
89
    YYDEBUG(315, *YYCURSOR);
4950
89
    yyaccept = 4;
4951
89
    yych = *(YYMARKER = ++YYCURSOR);
4952
89
    if (yych == 'T') goto yy414;
4953
86
    if (yych == 't') goto yy414;
4954
1
    goto yy48;
4955
72
yy316:
4956
72
    YYDEBUG(316, *YYCURSOR);
4957
72
    yyaccept = 4;
4958
72
    yych = *(YYMARKER = ++YYCURSOR);
4959
72
    if (yych == 'C') goto yy416;
4960
70
    if (yych == 'c') goto yy416;
4961
4
    goto yy48;
4962
316
yy317:
4963
316
    YYDEBUG(317, *YYCURSOR);
4964
316
    yyaccept = 4;
4965
316
    yych = *(YYMARKER = ++YYCURSOR);
4966
316
    if (yych == 'E') goto yy417;
4967
303
    if (yych == 'e') goto yy417;
4968
4
    goto yy48;
4969
1.79k
yy318:
4970
1.79k
    YYDEBUG(318, *YYCURSOR);
4971
1.79k
    yyaccept = 21;
4972
1.79k
    yych = *(YYMARKER = ++YYCURSOR);
4973
1.79k
    if (yybm[256+yych] & 128) {
4974
9
      goto yy47;
4975
9
    }
4976
1.78k
    if (yych == '\\') goto yy164;
4977
1.77k
yy319:
4978
1.77k
    YYDEBUG(319, *YYCURSOR);
4979
1.77k
    yyleng = YYCURSOR - SCNG(yy_text);
4980
1.77k
#line 1625 "Zend/zend_language_scanner.l"
4981
1.77k
    {
4982
1.77k
  RETURN_TOKEN_WITH_IDENT(T_NEW);
4983
1.77k
}
4984
0
#line 4985 "Zend/zend_language_scanner.c"
4985
945
yy320:
4986
945
    YYDEBUG(320, *YYCURSOR);
4987
945
    yyaccept = 4;
4988
945
    yych = *(YYMARKER = ++YYCURSOR);
4989
945
    if (yych <= 'V') {
4990
5
      if (yych == 'N') goto yy418;
4991
3
      if (yych <= 'U') goto yy48;
4992
1
      goto yy419;
4993
940
    } else {
4994
940
      if (yych <= 'n') {
4995
287
        if (yych <= 'm') goto yy48;
4996
287
        goto yy418;
4997
653
      } else {
4998
653
        if (yych == 'v') goto yy419;
4999
3
        goto yy48;
5000
653
      }
5001
940
    }
5002
147
yy321:
5003
147
    YYDEBUG(321, *YYCURSOR);
5004
147
    yyaccept = 4;
5005
147
    yych = *(YYMARKER = ++YYCURSOR);
5006
147
    if (yych == 'T') goto yy420;
5007
147
    if (yych == 't') goto yy420;
5008
25
    goto yy48;
5009
1.07k
yy322:
5010
1.07k
    YYDEBUG(322, *YYCURSOR);
5011
1.07k
    yyaccept = 4;
5012
1.07k
    yych = *(YYMARKER = ++YYCURSOR);
5013
1.07k
    if (yych == 'L') goto yy421;
5014
1.07k
    if (yych == 'l') goto yy421;
5015
22
    goto yy48;
5016
743
yy323:
5017
743
    YYDEBUG(323, *YYCURSOR);
5018
743
    yyaccept = 4;
5019
743
    yych = *(YYMARKER = ++YYCURSOR);
5020
743
    if (yych == 'D') goto yy422;
5021
740
    if (yych == 'd') goto yy422;
5022
7
    goto yy48;
5023
173
yy324:
5024
173
    YYDEBUG(324, *YYCURSOR);
5025
173
    yyaccept = 4;
5026
173
    yych = *(YYMARKER = ++YYCURSOR);
5027
173
    if (yych == 'U') goto yy423;
5028
173
    if (yych == 'u') goto yy423;
5029
25
    goto yy48;
5030
373
yy325:
5031
373
    YYDEBUG(325, *YYCURSOR);
5032
373
    yyaccept = 4;
5033
373
    yych = *(YYMARKER = ++YYCURSOR);
5034
373
    if (yych == 'U') goto yy424;
5035
373
    if (yych == 'u') goto yy424;
5036
1
    goto yy48;
5037
282
yy326:
5038
282
    YYDEBUG(326, *YYCURSOR);
5039
282
    yyaccept = 4;
5040
282
    yych = *(YYMARKER = ++YYCURSOR);
5041
282
    if (yych == 'T') goto yy425;
5042
279
    if (yych == 't') goto yy425;
5043
12
    goto yy48;
5044
42
yy327:
5045
42
    YYDEBUG(327, *YYCURSOR);
5046
42
    yyaccept = 4;
5047
42
    yych = *(YYMARKER = ++YYCURSOR);
5048
42
    if (yych == 'T') goto yy426;
5049
40
    if (yych == 't') goto yy426;
5050
4
    goto yy48;
5051
109
yy328:
5052
109
    YYDEBUG(328, *YYCURSOR);
5053
109
    yyaccept = 4;
5054
109
    yych = *(YYMARKER = ++YYCURSOR);
5055
109
    if (yych == 'O') goto yy427;
5056
109
    if (yych == 'o') goto yy427;
5057
4
    goto yy48;
5058
209
yy329:
5059
209
    YYDEBUG(329, *YYCURSOR);
5060
209
    yyaccept = 4;
5061
209
    yych = *(YYMARKER = ++YYCURSOR);
5062
209
    if (yych == 'I') goto yy428;
5063
208
    if (yych == 'i') goto yy428;
5064
9
    goto yy48;
5065
279
yy330:
5066
279
    YYDEBUG(330, *YYCURSOR);
5067
279
    yyaccept = 22;
5068
279
    yych = *(YYMARKER = ++YYCURSOR);
5069
279
    if (yybm[256+yych] & 128) {
5070
9
      goto yy47;
5071
9
    }
5072
270
    if (yych == '\\') goto yy164;
5073
270
yy331:
5074
270
    YYDEBUG(331, *YYCURSOR);
5075
270
    yyleng = YYCURSOR - SCNG(yy_text);
5076
270
#line 1437 "Zend/zend_language_scanner.l"
5077
270
    {
5078
270
  RETURN_TOKEN_WITH_IDENT(T_TRY);
5079
270
}
5080
0
#line 5081 "Zend/zend_language_scanner.c"
5081
351
yy332:
5082
351
    YYDEBUG(332, *YYCURSOR);
5083
351
    yyaccept = 4;
5084
351
    yych = *(YYMARKER = ++YYCURSOR);
5085
351
    if (yych == 'E') goto yy429;
5086
342
    if (yych == 'e') goto yy429;
5087
103
    goto yy48;
5088
257
yy333:
5089
257
    YYDEBUG(333, *YYCURSOR);
5090
257
    yyaccept = 23;
5091
257
    yych = *(YYMARKER = ++YYCURSOR);
5092
257
    if (yybm[256+yych] & 128) {
5093
7
      goto yy47;
5094
7
    }
5095
250
    if (yych == '\\') goto yy164;
5096
250
yy334:
5097
250
    YYDEBUG(334, *YYCURSOR);
5098
250
    yyleng = YYCURSOR - SCNG(yy_text);
5099
250
#line 1741 "Zend/zend_language_scanner.l"
5100
250
    {
5101
250
  RETURN_TOKEN_WITH_IDENT(T_USE);
5102
250
}
5103
0
#line 5104 "Zend/zend_language_scanner.c"
5104
2.20k
yy335:
5105
2.20k
    YYDEBUG(335, *YYCURSOR);
5106
2.20k
    yyaccept = 24;
5107
2.20k
    yych = *(YYMARKER = ++YYCURSOR);
5108
2.20k
    if (yybm[256+yych] & 128) {
5109
2.18k
      goto yy47;
5110
2.18k
    }
5111
17
    if (yych == '\\') goto yy164;
5112
17
yy336:
5113
17
    YYDEBUG(336, *YYCURSOR);
5114
17
    yyleng = YYCURSOR - SCNG(yy_text);
5115
17
#line 1633 "Zend/zend_language_scanner.l"
5116
17
    {
5117
17
  RETURN_TOKEN_WITH_IDENT(T_VAR);
5118
17
}
5119
0
#line 5120 "Zend/zend_language_scanner.c"
5120
34
yy337:
5121
34
    YYDEBUG(337, *YYCURSOR);
5122
34
    yyaccept = 4;
5123
34
    yych = *(YYMARKER = ++YYCURSOR);
5124
34
    if (yych == 'L') goto yy430;
5125
22
    if (yych == 'l') goto yy430;
5126
0
    goto yy48;
5127
6
yy338:
5128
6
    YYDEBUG(338, *YYCURSOR);
5129
6
    yyaccept = 25;
5130
6
    yych = *(YYMARKER = ++YYCURSOR);
5131
6
    if (yybm[256+yych] & 128) {
5132
0
      goto yy47;
5133
0
    }
5134
6
    if (yych == '\\') goto yy164;
5135
6
yy339:
5136
6
    YYDEBUG(339, *YYCURSOR);
5137
6
    yyleng = YYCURSOR - SCNG(yy_text);
5138
6
#line 1937 "Zend/zend_language_scanner.l"
5139
6
    {
5140
6
  RETURN_TOKEN_WITH_IDENT(T_LOGICAL_XOR);
5141
6
}
5142
0
#line 5143 "Zend/zend_language_scanner.c"
5143
1.29k
yy340:
5144
1.29k
    YYDEBUG(340, *YYCURSOR);
5145
1.29k
    yyaccept = 4;
5146
1.29k
    yych = *(YYMARKER = ++YYCURSOR);
5147
1.29k
    if (yych == 'L') goto yy431;
5148
1.29k
    if (yych == 'l') goto yy431;
5149
49
    goto yy48;
5150
148
yy341:
5151
148
    YYDEBUG(341, *YYCURSOR);
5152
148
    ++YYCURSOR;
5153
148
    YYFILL(1);
5154
148
    yych = *YYCURSOR;
5155
148
    if (yych <= '_') {
5156
99
      if (yych <= '@') goto yy86;
5157
96
      if (yych <= 'Z') goto yy211;
5158
36
      if (yych <= '^') goto yy86;
5159
4
      goto yy211;
5160
49
    } else {
5161
49
      if (yych <= '`') goto yy86;
5162
49
      if (yych <= 'z') goto yy211;
5163
24
      if (yych <= 0x7F) goto yy86;
5164
5
      goto yy211;
5165
24
    }
5166
291
yy342:
5167
291
    YYDEBUG(342, *YYCURSOR);
5168
291
    yyaccept = 4;
5169
291
    yych = *(YYMARKER = ++YYCURSOR);
5170
291
    if (yych == 'L') goto yy432;
5171
221
    if (yych == 'l') goto yy432;
5172
212
    goto yy48;
5173
545
yy343:
5174
545
    YYDEBUG(343, *YYCURSOR);
5175
545
    yyaccept = 4;
5176
545
    yych = *(YYMARKER = ++YYCURSOR);
5177
545
    if (yych == 'I') goto yy433;
5178
361
    if (yych == 'i') goto yy433;
5179
361
    goto yy48;
5180
361
yy344:
5181
159
    YYDEBUG(344, *YYCURSOR);
5182
159
    yyaccept = 4;
5183
159
    yych = *(YYMARKER = ++YYCURSOR);
5184
159
    if (yych <= 'U') {
5185
64
      if (yych == 'I') goto yy434;
5186
22
      if (yych <= 'T') goto yy48;
5187
12
      goto yy435;
5188
95
    } else {
5189
95
      if (yych <= 'i') {
5190
4
        if (yych <= 'h') goto yy48;
5191
3
        goto yy434;
5192
91
      } else {
5193
91
        if (yych == 'u') goto yy435;
5194
86
        goto yy48;
5195
91
      }
5196
95
    }
5197
63
yy345:
5198
63
    YYDEBUG(345, *YYCURSOR);
5199
63
    yyaccept = 4;
5200
63
    yych = *(YYMARKER = ++YYCURSOR);
5201
63
    if (yych == 'A') goto yy436;
5202
30
    if (yych == 'a') goto yy436;
5203
9
    goto yy48;
5204
27
yy346:
5205
27
    YYDEBUG(346, *YYCURSOR);
5206
27
    yyaccept = 4;
5207
27
    yych = *(YYMARKER = ++YYCURSOR);
5208
27
    if (yych == 'I') goto yy437;
5209
12
    if (yych == 'i') goto yy437;
5210
9
    goto yy48;
5211
42
yy347:
5212
42
    YYDEBUG(347, *YYCURSOR);
5213
42
    yyaccept = 4;
5214
42
    yych = *(YYMARKER = ++YYCURSOR);
5215
42
    if (yych == 'E') goto yy438;
5216
12
    if (yych == 'e') goto yy438;
5217
12
    goto yy48;
5218
73
yy348:
5219
73
    YYDEBUG(348, *YYCURSOR);
5220
73
    yyaccept = 4;
5221
73
    yych = *(YYMARKER = ++YYCURSOR);
5222
73
    if (yych == 'A') goto yy439;
5223
32
    if (yych == 'a') goto yy439;
5224
10
    goto yy48;
5225
57
yy349:
5226
57
    YYDEBUG(349, *YYCURSOR);
5227
57
    yyaccept = 4;
5228
57
    yych = *(YYMARKER = ++YYCURSOR);
5229
57
    if (yych == 'R') goto yy440;
5230
7
    if (yych == 'r') goto yy440;
5231
0
    goto yy48;
5232
50
yy350:
5233
50
    YYDEBUG(350, *YYCURSOR);
5234
50
    yyaccept = 4;
5235
50
    yych = *(YYMARKER = ++YYCURSOR);
5236
50
    if (yych == 'R') goto yy441;
5237
45
    if (yych == 'r') goto yy441;
5238
31
    goto yy48;
5239
31
yy351:
5240
17
    YYDEBUG(351, *YYCURSOR);
5241
17
    ++YYCURSOR;
5242
17
    YYFILL(1);
5243
17
    yych = *YYCURSOR;
5244
17
    if (yybm[0+yych] & 2) {
5245
13
      goto yy225;
5246
13
    }
5247
4
    if (yych <= 0x00) goto yy86;
5248
2
    goto yy227;
5249
152
yy352:
5250
152
    YYDEBUG(352, *YYCURSOR);
5251
152
    yyaccept = 26;
5252
152
    YYMARKER = ++YYCURSOR;
5253
152
    YYFILL(1);
5254
152
    yych = *YYCURSOR;
5255
152
    if (yybm[0+yych] & 2) {
5256
48
      goto yy225;
5257
48
    }
5258
104
    if (yych <= 0x00) goto yy89;
5259
88
    goto yy84;
5260
88
yy353:
5261
68
    YYDEBUG(353, *YYCURSOR);
5262
68
    ++YYCURSOR;
5263
68
    YYFILL(1);
5264
68
    yych = *YYCURSOR;
5265
68
    if (yych <= '\f') {
5266
8
      if (yych <= 0x00) goto yy86;
5267
4
      if (yych == '\n') goto yy84;
5268
3
      goto yy225;
5269
60
    } else {
5270
60
      if (yych <= '\r') goto yy84;
5271
57
      if (yych == '.') goto yy442;
5272
1
      goto yy225;
5273
57
    }
5274
402
yy354:
5275
402
    YYDEBUG(354, *YYCURSOR);
5276
402
    ++YYCURSOR;
5277
402
    YYFILL(1);
5278
402
    yych = *YYCURSOR;
5279
402
    if (yych <= '\f') {
5280
73
      if (yych <= 0x00) goto yy86;
5281
73
      if (yych == '\n') goto yy84;
5282
2
      goto yy225;
5283
329
    } else {
5284
329
      if (yych <= '\r') goto yy84;
5285
326
      if (yych == '*') goto yy443;
5286
106
      goto yy225;
5287
326
    }
5288
155
yy355:
5289
155
    YYDEBUG(355, *YYCURSOR);
5290
155
    ++YYCURSOR;
5291
155
    YYFILL(1);
5292
155
    yych = *YYCURSOR;
5293
155
    YYDEBUG(356, *YYCURSOR);
5294
155
    if (yybm[0+yych] & 64) {
5295
13
      goto yy355;
5296
13
    }
5297
142
    if (yych <= 0x00) goto yy86;
5298
134
    if (yych == '/') goto yy84;
5299
95
    goto yy230;
5300
121
yy357:
5301
121
    YYDEBUG(357, *YYCURSOR);
5302
121
    yych = *++YYCURSOR;
5303
121
    if (yych == 'A') goto yy445;
5304
121
    if (yych == 'a') goto yy445;
5305
7
    goto yy86;
5306
7
yy358:
5307
7
    YYDEBUG(358, *YYCURSOR);
5308
7
    yych = *++YYCURSOR;
5309
7
    if (yych == 'A') goto yy446;
5310
7
    if (yych == 'a') goto yy446;
5311
1
    goto yy86;
5312
20
yy359:
5313
20
    YYDEBUG(359, *YYCURSOR);
5314
20
    yych = *++YYCURSOR;
5315
20
    if (yych == 'L') goto yy447;
5316
20
    if (yych == 'l') goto yy447;
5317
0
    goto yy86;
5318
5
yy360:
5319
5
    YYDEBUG(360, *YYCURSOR);
5320
5
    yych = *++YYCURSOR;
5321
5
    if (yych == 'B') goto yy448;
5322
5
    if (yych == 'b') goto yy448;
5323
0
    goto yy86;
5324
21
yy361:
5325
21
    YYDEBUG(361, *YYCURSOR);
5326
21
    yych = *++YYCURSOR;
5327
21
    if (yych == 'A') goto yy449;
5328
21
    if (yych == 'a') goto yy449;
5329
0
    goto yy86;
5330
81
yy362:
5331
81
    YYDEBUG(362, *YYCURSOR);
5332
81
    yych = *++YYCURSOR;
5333
81
    if (yych == 'E') goto yy454;
5334
81
    if (yych == 'e') goto yy454;
5335
65
    goto yy451;
5336
78
yy363:
5337
78
    YYDEBUG(363, *YYCURSOR);
5338
78
    yych = *++YYCURSOR;
5339
78
    if (yych == 'E') goto yy455;
5340
78
    if (yych == 'e') goto yy455;
5341
16
    goto yy86;
5342
16
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
5
    goto yy86;
5348
131
yy365:
5349
131
    YYDEBUG(365, *YYCURSOR);
5350
131
    yych = *++YYCURSOR;
5351
131
    if (yych == 'I') goto yy458;
5352
130
    if (yych == 'i') goto yy458;
5353
34
    goto yy86;
5354
162
yy366:
5355
162
    YYDEBUG(366, *YYCURSOR);
5356
162
    yych = *++YYCURSOR;
5357
162
    if (yych == 'E') goto yy459;
5358
155
    if (yych == 'e') goto yy459;
5359
102
    goto yy86;
5360
102
yy367:
5361
4
    YYDEBUG(367, *YYCURSOR);
5362
4
    yych = *++YYCURSOR;
5363
4
    if (yych == 'D') goto yy460;
5364
4
    if (yych == 'd') goto yy460;
5365
0
    goto yy86;
5366
231
yy368:
5367
231
    YYDEBUG(368, *YYCURSOR);
5368
231
    ++YYCURSOR;
5369
231
    YYFILL(1);
5370
231
    yych = *YYCURSOR;
5371
231
    YYDEBUG(369, *YYCURSOR);
5372
231
    if (yych <= '\f') {
5373
72
      if (yych <= 0x08) goto yy129;
5374
69
      if (yych <= '\n') goto yy368;
5375
1
      goto yy129;
5376
159
    } else {
5377
159
      if (yych <= '\r') goto yy368;
5378
90
      if (yych == ' ') goto yy368;
5379
64
      goto yy129;
5380
90
    }
5381
113
yy370:
5382
113
    YYDEBUG(370, *YYCURSOR);
5383
113
    yych = *++YYCURSOR;
5384
113
    if (yych == '"') goto yy86;
5385
89
    if (yych <= '/') goto yy463;
5386
88
    if (yych <= '9') goto yy86;
5387
87
    goto yy463;
5388
117
yy371:
5389
117
    YYDEBUG(371, *YYCURSOR);
5390
117
    yych = *++YYCURSOR;
5391
117
    if (yych == '\'') goto yy86;
5392
113
    if (yych <= '/') goto yy465;
5393
109
    if (yych <= '9') goto yy86;
5394
108
    goto yy465;
5395
40.0k
yy372:
5396
40.0k
    YYDEBUG(372, *YYCURSOR);
5397
40.0k
    ++YYCURSOR;
5398
40.0k
    YYFILL(2);
5399
40.0k
    yych = *YYCURSOR;
5400
40.0k
    YYDEBUG(373, *YYCURSOR);
5401
40.0k
    if (yych <= '@') {
5402
18.4k
      if (yych <= '\f') {
5403
13.5k
        if (yych == '\n') goto yy466;
5404
425
        goto yy86;
5405
13.5k
      } else {
5406
4.84k
        if (yych <= '\r') goto yy468;
5407
4.76k
        if (yych <= '/') goto yy86;
5408
809
        if (yych <= '9') goto yy372;
5409
202
        goto yy86;
5410
809
      }
5411
21.6k
    } else {
5412
21.6k
      if (yych <= '_') {
5413
4.76k
        if (yych <= 'Z') goto yy372;
5414
89
        if (yych <= '^') goto yy86;
5415
49
        goto yy372;
5416
16.8k
      } else {
5417
16.8k
        if (yych <= '`') goto yy86;
5418
16.8k
        if (yych <= 'z') goto yy372;
5419
2.64k
        if (yych <= 0x7F) goto yy86;
5420
2.54k
        goto yy372;
5421
2.64k
      }
5422
21.6k
    }
5423
132
yy374:
5424
132
    YYDEBUG(374, *YYCURSOR);
5425
132
    yyaccept = 4;
5426
132
    yych = *(YYMARKER = ++YYCURSOR);
5427
132
    if (yych == 'R') goto yy469;
5428
131
    if (yych == 'r') goto yy469;
5429
2
    goto yy48;
5430
669
yy375:
5431
669
    YYDEBUG(375, *YYCURSOR);
5432
669
    yyaccept = 4;
5433
669
    yych = *(YYMARKER = ++YYCURSOR);
5434
669
    if (yych == 'Y') goto yy470;
5435
667
    if (yych == 'y') goto yy470;
5436
7
    goto yy48;
5437
31
yy376:
5438
31
    YYDEBUG(376, *YYCURSOR);
5439
31
    yyaccept = 4;
5440
31
    yych = *(YYMARKER = ++YYCURSOR);
5441
31
    if (yych == 'K') goto yy472;
5442
31
    if (yych == 'k') goto yy472;
5443
0
    goto yy48;
5444
199
yy377:
5445
199
    YYDEBUG(377, *YYCURSOR);
5446
199
    yyaccept = 4;
5447
199
    yych = *(YYMARKER = ++YYCURSOR);
5448
199
    if (yych == 'A') goto yy474;
5449
198
    if (yych == 'a') goto yy474;
5450
177
    goto yy48;
5451
177
yy378:
5452
170
    YYDEBUG(378, *YYCURSOR);
5453
170
    yyaccept = 27;
5454
170
    yych = *(YYMARKER = ++YYCURSOR);
5455
170
    if (yybm[256+yych] & 128) {
5456
6
      goto yy47;
5457
6
    }
5458
164
    if (yych == '\\') goto yy164;
5459
164
yy379:
5460
164
    YYDEBUG(379, *YYCURSOR);
5461
164
    yyleng = YYCURSOR - SCNG(yy_text);
5462
164
#line 1525 "Zend/zend_language_scanner.l"
5463
164
    {
5464
164
  RETURN_TOKEN_WITH_IDENT(T_CASE);
5465
164
}
5466
0
#line 5467 "Zend/zend_language_scanner.c"
5467
197
yy380:
5468
197
    YYDEBUG(380, *YYCURSOR);
5469
197
    yyaccept = 4;
5470
197
    yych = *(YYMARKER = ++YYCURSOR);
5471
197
    if (yych == 'H') goto yy475;
5472
197
    if (yych == 'h') goto yy475;
5473
1
    goto yy48;
5474
1.67k
yy381:
5475
1.67k
    YYDEBUG(381, *YYCURSOR);
5476
1.67k
    yyaccept = 4;
5477
1.67k
    yych = *(YYMARKER = ++YYCURSOR);
5478
1.67k
    if (yych == 'S') goto yy477;
5479
1.66k
    if (yych == 's') goto yy477;
5480
32
    goto yy48;
5481
48
yy382:
5482
48
    YYDEBUG(382, *YYCURSOR);
5483
48
    yyaccept = 4;
5484
48
    yych = *(YYMARKER = ++YYCURSOR);
5485
48
    if (yych == 'E') goto yy479;
5486
40
    if (yych == 'e') goto yy479;
5487
3
    goto yy48;
5488
667
yy383:
5489
667
    YYDEBUG(383, *YYCURSOR);
5490
667
    yyaccept = 4;
5491
667
    yych = *(YYMARKER = ++YYCURSOR);
5492
667
    if (yych == 'T') goto yy481;
5493
642
    if (yych == 't') goto yy481;
5494
1
    goto yy48;
5495
43
yy384:
5496
43
    YYDEBUG(384, *YYCURSOR);
5497
43
    yyaccept = 4;
5498
43
    yych = *(YYMARKER = ++YYCURSOR);
5499
43
    if (yych == 'I') goto yy483;
5500
43
    if (yych == 'i') goto yy483;
5501
39
    goto yy48;
5502
116
yy385:
5503
116
    YYDEBUG(385, *YYCURSOR);
5504
116
    yyaccept = 4;
5505
116
    yych = *(YYMARKER = ++YYCURSOR);
5506
116
    if (yych == 'A') goto yy484;
5507
115
    if (yych == 'a') goto yy484;
5508
1
    goto yy48;
5509
14
yy386:
5510
14
    YYDEBUG(386, *YYCURSOR);
5511
14
    yyaccept = 4;
5512
14
    yych = *(YYMARKER = ++YYCURSOR);
5513
14
    if (yych == 'U') goto yy485;
5514
14
    if (yych == 'u') goto yy485;
5515
1
    goto yy48;
5516
1.17k
yy387:
5517
1.17k
    YYDEBUG(387, *YYCURSOR);
5518
1.17k
    yyaccept = 28;
5519
1.17k
    yych = *(YYMARKER = ++YYCURSOR);
5520
1.17k
    if (yybm[256+yych] & 128) {
5521
144
      goto yy47;
5522
144
    }
5523
1.02k
    if (yych == '\\') goto yy164;
5524
1.02k
yy388:
5525
1.02k
    YYDEBUG(388, *YYCURSOR);
5526
1.02k
    yyleng = YYCURSOR - SCNG(yy_text);
5527
1.02k
#line 1545 "Zend/zend_language_scanner.l"
5528
1.02k
    {
5529
1.02k
  RETURN_TOKEN_WITH_IDENT(T_ECHO);
5530
1.02k
}
5531
0
#line 5532 "Zend/zend_language_scanner.c"
5532
20
yy389:
5533
20
    YYDEBUG(389, *YYCURSOR);
5534
20
    yyaccept = 29;
5535
20
    yych = *(YYMARKER = ++YYCURSOR);
5536
20
    if (yych <= '\\') {
5537
11
      if (yych <= 'H') {
5538
10
        if (yych <= '/') goto yy390;
5539
6
        if (yych <= '9') goto yy47;
5540
3
        if (yych >= 'A') goto yy47;
5541
3
      } else {
5542
1
        if (yych <= 'I') goto yy486;
5543
1
        if (yych <= 'Z') goto yy47;
5544
0
        if (yych >= '\\') goto yy164;
5545
0
      }
5546
11
    } else {
5547
9
      if (yych <= 'h') {
5548
4
        if (yych == '_') goto yy47;
5549
4
        if (yych >= 'a') goto yy47;
5550
5
      } else {
5551
5
        if (yych <= 'i') goto yy486;
5552
0
        if (yych <= 'z') goto yy47;
5553
0
        if (yych >= 0x80) goto yy47;
5554
0
      }
5555
9
    }
5556
6
yy390:
5557
6
    YYDEBUG(390, *YYCURSOR);
5558
6
    yyleng = YYCURSOR - SCNG(yy_text);
5559
6
#line 1465 "Zend/zend_language_scanner.l"
5560
6
    {
5561
6
  RETURN_TOKEN_WITH_IDENT(T_ELSE);
5562
6
}
5563
0
#line 5564 "Zend/zend_language_scanner.c"
5564
13
yy391:
5565
13
    YYDEBUG(391, *YYCURSOR);
5566
13
    yyaccept = 4;
5567
13
    yych = *(YYMARKER = ++YYCURSOR);
5568
13
    if (yych == 'Y') goto yy487;
5569
12
    if (yych == 'y') goto yy487;
5570
3
    goto yy48;
5571
12
yy392:
5572
12
    YYDEBUG(392, *YYCURSOR);
5573
12
    yyaccept = 4;
5574
12
    yych = *(YYMARKER = ++YYCURSOR);
5575
12
    if (yych == 'E') goto yy489;
5576
11
    if (yych == 'e') goto yy489;
5577
6
    goto yy48;
5578
111
yy393:
5579
111
    YYDEBUG(393, *YYCURSOR);
5580
111
    yyaccept = 4;
5581
111
    yych = *(YYMARKER = ++YYCURSOR);
5582
111
    if (yych == 'O') goto yy490;
5583
105
    if (yych == 'o') goto yy490;
5584
11
    goto yy48;
5585
20
yy394:
5586
20
    YYDEBUG(394, *YYCURSOR);
5587
20
    yyaccept = 4;
5588
20
    yych = *(YYMARKER = ++YYCURSOR);
5589
20
    if (yych == 'F') goto yy491;
5590
17
    if (yych == 'f') goto yy491;
5591
11
    goto yy48;
5592
16
yy395:
5593
16
    YYDEBUG(395, *YYCURSOR);
5594
16
    yyaccept = 4;
5595
16
    yych = *(YYMARKER = ++YYCURSOR);
5596
16
    if (yych == 'W') goto yy493;
5597
16
    if (yych == 'w') goto yy493;
5598
16
    goto yy48;
5599
16
yy396:
5600
6
    YYDEBUG(396, *YYCURSOR);
5601
6
    yyaccept = 4;
5602
6
    yych = *(YYMARKER = ++YYCURSOR);
5603
6
    if (yych == 'H') goto yy494;
5604
4
    if (yych == 'h') goto yy494;
5605
3
    goto yy48;
5606
1.32k
yy397:
5607
1.32k
    YYDEBUG(397, *YYCURSOR);
5608
1.32k
    yyaccept = 4;
5609
1.32k
    yych = *(YYMARKER = ++YYCURSOR);
5610
1.32k
    if (yych <= 0x1F) {
5611
1.02k
      if (yych <= '\n') {
5612
22
        if (yych <= 0x08) goto yy48;
5613
14
        goto yy495;
5614
999
      } else {
5615
999
        if (yych == '\r') goto yy495;
5616
33
        goto yy48;
5617
999
      }
5618
1.02k
    } else {
5619
307
      if (yych <= '#') {
5620
220
        if (yych <= ' ') goto yy495;
5621
21
        if (yych <= '"') goto yy48;
5622
14
        goto yy497;
5623
87
      } else {
5624
87
        if (yych == '/') goto yy498;
5625
54
        goto yy48;
5626
87
      }
5627
307
    }
5628
61
yy398:
5629
61
    YYDEBUG(398, *YYCURSOR);
5630
61
    yyaccept = 30;
5631
61
    yych = *(YYMARKER = ++YYCURSOR);
5632
61
    if (yybm[256+yych] & 128) {
5633
3
      goto yy47;
5634
3
    }
5635
58
    if (yych == '\\') goto yy164;
5636
58
yy399:
5637
58
    YYDEBUG(399, *YYCURSOR);
5638
58
    yyleng = YYCURSOR - SCNG(yy_text);
5639
58
#line 1717 "Zend/zend_language_scanner.l"
5640
58
    {
5641
58
  RETURN_TOKEN_WITH_IDENT(T_EVAL);
5642
58
}
5643
0
#line 5644 "Zend/zend_language_scanner.c"
5644
22
yy400:
5645
22
    YYDEBUG(400, *YYCURSOR);
5646
22
    yyaccept = 31;
5647
22
    yych = *(YYMARKER = ++YYCURSOR);
5648
22
    if (yybm[256+yych] & 128) {
5649
0
      goto yy47;
5650
0
    }
5651
22
    if (yych == '\\') goto yy164;
5652
22
yy401:
5653
22
    YYDEBUG(401, *YYCURSOR);
5654
22
    yyleng = YYCURSOR - SCNG(yy_text);
5655
22
#line 1398 "Zend/zend_language_scanner.l"
5656
22
    {
5657
22
  RETURN_TOKEN_WITH_IDENT(T_EXIT);
5658
22
}
5659
0
#line 5660 "Zend/zend_language_scanner.c"
5660
339
yy402:
5661
339
    YYDEBUG(402, *YYCURSOR);
5662
339
    yyaccept = 4;
5663
339
    yych = *(YYMARKER = ++YYCURSOR);
5664
339
    if (yych == 'N') goto yy499;
5665
338
    if (yych == 'n') goto yy499;
5666
23
    goto yy48;
5667
120
yy403:
5668
120
    YYDEBUG(403, *YYCURSOR);
5669
120
    yyaccept = 4;
5670
120
    yych = *(YYMARKER = ++YYCURSOR);
5671
120
    if (yych == 'L') goto yy500;
5672
113
    if (yych == 'l') goto yy500;
5673
1
    goto yy48;
5674
214
yy404:
5675
214
    YYDEBUG(404, *YYCURSOR);
5676
214
    yyaccept = 4;
5677
214
    yych = *(YYMARKER = ++YYCURSOR);
5678
214
    if (yych == 'A') goto yy502;
5679
213
    if (yych == 'a') goto yy502;
5680
0
    goto yy48;
5681
5.09k
yy405:
5682
5.09k
    YYDEBUG(405, *YYCURSOR);
5683
5.09k
    yyaccept = 4;
5684
5.09k
    yych = *(YYMARKER = ++YYCURSOR);
5685
5.09k
    if (yych == 'T') goto yy503;
5686
5.08k
    if (yych == 't') goto yy503;
5687
3.38k
    goto yy48;
5688
3.38k
yy406:
5689
73
    YYDEBUG(406, *YYCURSOR);
5690
73
    yyaccept = 4;
5691
73
    yych = *(YYMARKER = ++YYCURSOR);
5692
73
    if (yych == 'A') goto yy504;
5693
33
    if (yych == 'a') goto yy504;
5694
4
    goto yy48;
5695
76
yy407:
5696
76
    YYDEBUG(407, *YYCURSOR);
5697
76
    yyaccept = 32;
5698
76
    yych = *(YYMARKER = ++YYCURSOR);
5699
76
    if (yybm[256+yych] & 128) {
5700
2
      goto yy47;
5701
2
    }
5702
74
    if (yych == '\\') goto yy164;
5703
74
yy408:
5704
74
    YYDEBUG(408, *YYCURSOR);
5705
74
    yyleng = YYCURSOR - SCNG(yy_text);
5706
74
#line 1541 "Zend/zend_language_scanner.l"
5707
74
    {
5708
74
  RETURN_TOKEN_WITH_IDENT(T_GOTO);
5709
74
}
5710
0
#line 5711 "Zend/zend_language_scanner.c"
5711
265
yy409:
5712
265
    YYDEBUG(409, *YYCURSOR);
5713
265
    yyaccept = 4;
5714
265
    yych = *(YYMARKER = ++YYCURSOR);
5715
265
    if (yych == 'E') goto yy505;
5716
203
    if (yych == 'e') goto yy505;
5717
41
    goto yy48;
5718
55
yy410:
5719
55
    YYDEBUG(410, *YYCURSOR);
5720
55
    yyaccept = 4;
5721
55
    yych = *(YYMARKER = ++YYCURSOR);
5722
55
    if (yych == 'U') goto yy506;
5723
52
    if (yych == 'u') goto yy506;
5724
0
    goto yy48;
5725
46
yy411:
5726
46
    YYDEBUG(411, *YYCURSOR);
5727
46
    yyaccept = 4;
5728
46
    yych = *(YYMARKER = ++YYCURSOR);
5729
46
    if (yych <= 'E') {
5730
2
      if (yych == 'A') goto yy507;
5731
2
      if (yych <= 'D') goto yy48;
5732
2
      goto yy508;
5733
44
    } else {
5734
44
      if (yych <= 'a') {
5735
26
        if (yych <= '`') goto yy48;
5736
26
        goto yy507;
5737
26
      } else {
5738
18
        if (yych == 'e') goto yy508;
5739
3
        goto yy48;
5740
18
      }
5741
44
    }
5742
250
yy412:
5743
250
    YYDEBUG(412, *YYCURSOR);
5744
250
    yyaccept = 4;
5745
250
    yych = *(YYMARKER = ++YYCURSOR);
5746
250
    if (yych == 'R') goto yy509;
5747
247
    if (yych == 'r') goto yy509;
5748
28
    goto yy48;
5749
76
yy413:
5750
76
    YYDEBUG(413, *YYCURSOR);
5751
76
    yyaccept = 4;
5752
76
    yych = *(YYMARKER = ++YYCURSOR);
5753
76
    if (yych == 'T') goto yy510;
5754
76
    if (yych == 't') goto yy510;
5755
3
    goto yy48;
5756
88
yy414:
5757
88
    YYDEBUG(414, *YYCURSOR);
5758
88
    yyaccept = 33;
5759
88
    yych = *(YYMARKER = ++YYCURSOR);
5760
88
    if (yybm[256+yych] & 128) {
5761
2
      goto yy47;
5762
2
    }
5763
86
    if (yych == '\\') goto yy164;
5764
86
yy415:
5765
86
    YYDEBUG(415, *YYCURSOR);
5766
86
    yyleng = YYCURSOR - SCNG(yy_text);
5767
86
#line 1813 "Zend/zend_language_scanner.l"
5768
86
    {
5769
86
  RETURN_TOKEN_WITH_IDENT(T_LIST);
5770
86
}
5771
0
#line 5772 "Zend/zend_language_scanner.c"
5772
68
yy416:
5773
68
    YYDEBUG(416, *YYCURSOR);
5774
68
    yyaccept = 4;
5775
68
    yych = *(YYMARKER = ++YYCURSOR);
5776
68
    if (yych == 'H') goto yy512;
5777
57
    if (yych == 'h') goto yy512;
5778
10
    goto yy48;
5779
312
yy417:
5780
312
    YYDEBUG(417, *YYCURSOR);
5781
312
    yyaccept = 4;
5782
312
    yych = *(YYMARKER = ++YYCURSOR);
5783
312
    if (yych == 'S') goto yy514;
5784
300
    if (yych == 's') goto yy514;
5785
19
    goto yy48;
5786
289
yy418:
5787
289
    YYDEBUG(418, *YYCURSOR);
5788
289
    yyaccept = 4;
5789
289
    yych = *(YYMARKER = ++YYCURSOR);
5790
289
    if (yych == 'T') goto yy515;
5791
288
    if (yych == 't') goto yy515;
5792
7
    goto yy48;
5793
651
yy419:
5794
651
    YYDEBUG(419, *YYCURSOR);
5795
651
    yyaccept = 4;
5796
651
    yych = *(YYMARKER = ++YYCURSOR);
5797
651
    if (yych == 'A') goto yy517;
5798
651
    if (yych == 'a') goto yy517;
5799
5
    goto yy48;
5800
122
yy420:
5801
122
    YYDEBUG(420, *YYCURSOR);
5802
122
    yyaccept = 4;
5803
122
    yych = *(YYMARKER = ++YYCURSOR);
5804
122
    if (yych == 'E') goto yy518;
5805
122
    if (yych == 'e') goto yy518;
5806
12
    goto yy48;
5807
1.05k
yy421:
5808
1.05k
    YYDEBUG(421, *YYCURSOR);
5809
1.05k
    yyaccept = 4;
5810
1.05k
    yych = *(YYMARKER = ++YYCURSOR);
5811
1.05k
    if (yych == 'I') goto yy519;
5812
1.03k
    if (yych == 'i') goto yy519;
5813
165
    goto yy48;
5814
736
yy422:
5815
736
    YYDEBUG(422, *YYCURSOR);
5816
736
    yyaccept = 4;
5817
736
    yych = *(YYMARKER = ++YYCURSOR);
5818
736
    if (yych == 'O') goto yy520;
5819
736
    if (yych == 'o') goto yy520;
5820
571
    goto yy48;
5821
571
yy423:
5822
148
    YYDEBUG(423, *YYCURSOR);
5823
148
    yyaccept = 4;
5824
148
    yych = *(YYMARKER = ++YYCURSOR);
5825
148
    if (yych == 'I') goto yy521;
5826
147
    if (yych == 'i') goto yy521;
5827
21
    goto yy48;
5828
372
yy424:
5829
372
    YYDEBUG(424, *YYCURSOR);
5830
372
    yyaccept = 4;
5831
372
    yych = *(YYMARKER = ++YYCURSOR);
5832
372
    if (yych == 'R') goto yy522;
5833
372
    if (yych == 'r') goto yy522;
5834
0
    goto yy48;
5835
270
yy425:
5836
270
    YYDEBUG(425, *YYCURSOR);
5837
270
    yyaccept = 4;
5838
270
    yych = *(YYMARKER = ++YYCURSOR);
5839
270
    if (yych == 'I') goto yy523;
5840
270
    if (yych == 'i') goto yy523;
5841
6
    goto yy48;
5842
38
yy426:
5843
38
    YYDEBUG(426, *YYCURSOR);
5844
38
    yyaccept = 4;
5845
38
    yych = *(YYMARKER = ++YYCURSOR);
5846
38
    if (yych == 'C') goto yy524;
5847
32
    if (yych == 'c') goto yy524;
5848
3
    goto yy48;
5849
105
yy427:
5850
105
    YYDEBUG(427, *YYCURSOR);
5851
105
    yyaccept = 4;
5852
105
    yych = *(YYMARKER = ++YYCURSOR);
5853
105
    if (yych == 'W') goto yy525;
5854
105
    if (yych == 'w') goto yy525;
5855
14
    goto yy48;
5856
200
yy428:
5857
200
    YYDEBUG(428, *YYCURSOR);
5858
200
    yyaccept = 4;
5859
200
    yych = *(YYMARKER = ++YYCURSOR);
5860
200
    if (yych == 'T') goto yy527;
5861
199
    if (yych == 't') goto yy527;
5862
7
    goto yy48;
5863
248
yy429:
5864
248
    YYDEBUG(429, *YYCURSOR);
5865
248
    yyaccept = 4;
5866
248
    yych = *(YYMARKER = ++YYCURSOR);
5867
248
    if (yych == 'T') goto yy529;
5868
248
    if (yych == 't') goto yy529;
5869
80
    goto yy48;
5870
80
yy430:
5871
34
    YYDEBUG(430, *YYCURSOR);
5872
34
    yyaccept = 4;
5873
34
    yych = *(YYMARKER = ++YYCURSOR);
5874
34
    if (yych == 'E') goto yy531;
5875
26
    if (yych == 'e') goto yy531;
5876
5
    goto yy48;
5877
1.24k
yy431:
5878
1.24k
    YYDEBUG(431, *YYCURSOR);
5879
1.24k
    yyaccept = 4;
5880
1.24k
    yych = *(YYMARKER = ++YYCURSOR);
5881
1.24k
    if (yych == 'D') goto yy533;
5882
1.20k
    if (yych == 'd') goto yy533;
5883
56
    goto yy48;
5884
79
yy432:
5885
79
    YYDEBUG(432, *YYCURSOR);
5886
79
    yyaccept = 4;
5887
79
    yych = *(YYMARKER = ++YYCURSOR);
5888
79
    if (yych == 'A') goto yy535;
5889
10
    if (yych == 'a') goto yy535;
5890
10
    goto yy48;
5891
184
yy433:
5892
184
    YYDEBUG(433, *YYCURSOR);
5893
184
    yyaccept = 4;
5894
184
    yych = *(YYMARKER = ++YYCURSOR);
5895
184
    if (yych == 'R') goto yy536;
5896
143
    if (yych == 'r') goto yy536;
5897
143
    goto yy48;
5898
143
yy434:
5899
45
    YYDEBUG(434, *YYCURSOR);
5900
45
    yyaccept = 4;
5901
45
    yych = *(YYMARKER = ++YYCURSOR);
5902
45
    if (yych == 'L') goto yy537;
5903
3
    if (yych == 'l') goto yy537;
5904
0
    goto yy48;
5905
17
yy435:
5906
17
    YYDEBUG(435, *YYCURSOR);
5907
17
    yyaccept = 4;
5908
17
    yych = *(YYMARKER = ++YYCURSOR);
5909
17
    if (yych == 'N') goto yy538;
5910
6
    if (yych == 'n') goto yy538;
5911
1
    goto yy48;
5912
54
yy436:
5913
54
    YYDEBUG(436, *YYCURSOR);
5914
54
    yyaccept = 4;
5915
54
    yych = *(YYMARKER = ++YYCURSOR);
5916
54
    if (yych == 'L') goto yy539;
5917
21
    if (yych == 'l') goto yy539;
5918
12
    goto yy48;
5919
18
yy437:
5920
18
    YYDEBUG(437, *YYCURSOR);
5921
18
    yyaccept = 4;
5922
18
    yych = *(YYMARKER = ++YYCURSOR);
5923
18
    if (yych == 'N') goto yy540;
5924
5
    if (yych == 'n') goto yy540;
5925
3
    goto yy48;
5926
30
yy438:
5927
30
    YYDEBUG(438, *YYCURSOR);
5928
30
    yyaccept = 4;
5929
30
    yych = *(YYMARKER = ++YYCURSOR);
5930
30
    if (yych == 'T') goto yy541;
5931
1
    if (yych == 't') goto yy541;
5932
1
    goto yy48;
5933
63
yy439:
5934
63
    YYDEBUG(439, *YYCURSOR);
5935
63
    yyaccept = 4;
5936
63
    yych = *(YYMARKER = ++YYCURSOR);
5937
63
    if (yych == 'M') goto yy542;
5938
22
    if (yych == 'm') goto yy542;
5939
5
    goto yy48;
5940
57
yy440:
5941
57
    YYDEBUG(440, *YYCURSOR);
5942
57
    yyaccept = 4;
5943
57
    yych = *(YYMARKER = ++YYCURSOR);
5944
57
    if (yych == 'O') goto yy543;
5945
17
    if (yych == 'o') goto yy543;
5946
14
    goto yy48;
5947
19
yy441:
5948
19
    YYDEBUG(441, *YYCURSOR);
5949
19
    yyaccept = 4;
5950
19
    yych = *(YYMARKER = ++YYCURSOR);
5951
19
    if (yych == 'A') goto yy544;
5952
14
    if (yych == 'a') goto yy544;
5953
0
    goto yy48;
5954
56
yy442:
5955
56
    YYDEBUG(442, *YYCURSOR);
5956
56
    ++YYCURSOR;
5957
56
    YYFILL(1);
5958
56
    yych = *YYCURSOR;
5959
56
    if (yych <= '\f') {
5960
6
      if (yych <= 0x00) goto yy86;
5961
0
      if (yych == '\n') goto yy84;
5962
0
      goto yy225;
5963
50
    } else {
5964
50
      if (yych <= '\r') goto yy84;
5965
49
      if (yych == '.') goto yy352;
5966
4
      goto yy225;
5967
49
    }
5968
2.92k
yy443:
5969
2.92k
    YYDEBUG(443, *YYCURSOR);
5970
2.92k
    ++YYCURSOR;
5971
2.92k
    YYFILL(1);
5972
2.92k
    yych = *YYCURSOR;
5973
2.92k
    YYDEBUG(444, *YYCURSOR);
5974
2.92k
    if (yybm[0+yych] & 128) {
5975
2.36k
      goto yy443;
5976
2.36k
    }
5977
554
    if (yych <= 0x00) goto yy86;
5978
504
    if (yych <= '\r') goto yy545;
5979
122
    goto yy547;
5980
122
yy445:
5981
114
    YYDEBUG(445, *YYCURSOR);
5982
114
    yych = *++YYCURSOR;
5983
114
    if (yych == 'Y') goto yy549;
5984
114
    if (yych == 'y') goto yy549;
5985
0
    goto yy86;
5986
6
yy446:
5987
6
    YYDEBUG(446, *YYCURSOR);
5988
6
    yych = *++YYCURSOR;
5989
6
    if (yych == 'R') goto yy551;
5990
6
    if (yych == 'r') goto yy551;
5991
0
    goto yy86;
5992
20
yy447:
5993
20
    YYDEBUG(447, *YYCURSOR);
5994
20
    yych = *++YYCURSOR;
5995
20
    if (yych == 'E') goto yy556;
5996
20
    if (yych == 'e') goto yy556;
5997
6
    goto yy553;
5998
6
yy448:
5999
5
    YYDEBUG(448, *YYCURSOR);
6000
5
    yych = *++YYCURSOR;
6001
5
    if (yych == 'L') goto yy557;
6002
5
    if (yych == 'l') goto yy557;
6003
0
    goto yy86;
6004
21
yy449:
6005
21
    YYDEBUG(449, *YYCURSOR);
6006
21
    yych = *++YYCURSOR;
6007
21
    if (yych == 'T') goto yy558;
6008
21
    if (yych == 't') goto yy558;
6009
0
    goto yy86;
6010
34
yy450:
6011
34
    YYDEBUG(450, *YYCURSOR);
6012
34
    ++YYCURSOR;
6013
34
    YYFILL(1);
6014
34
    yych = *YYCURSOR;
6015
99
yy451:
6016
99
    YYDEBUG(451, *YYCURSOR);
6017
99
    if (yych <= 0x1F) {
6018
1
      if (yych == '\t') goto yy450;
6019
0
      goto yy86;
6020
98
    } else {
6021
98
      if (yych <= ' ') goto yy450;
6022
65
      if (yych != ')') goto yy86;
6023
65
    }
6024
23
    YYDEBUG(452, *YYCURSOR);
6025
23
    ++YYCURSOR;
6026
23
    YYDEBUG(453, *YYCURSOR);
6027
23
    yyleng = YYCURSOR - SCNG(yy_text);
6028
23
#line 1637 "Zend/zend_language_scanner.l"
6029
23
    {
6030
23
  RETURN_TOKEN(T_INT_CAST);
6031
23
}
6032
0
#line 6033 "Zend/zend_language_scanner.c"
6033
16
yy454:
6034
16
    YYDEBUG(454, *YYCURSOR);
6035
16
    yych = *++YYCURSOR;
6036
16
    if (yych == 'G') goto yy560;
6037
9
    if (yych == 'g') goto yy560;
6038
2
    goto yy86;
6039
62
yy455:
6040
62
    YYDEBUG(455, *YYCURSOR);
6041
62
    yych = *++YYCURSOR;
6042
62
    if (yych == 'C') goto yy561;
6043
56
    if (yych == 'c') goto yy561;
6044
2
    goto yy86;
6045
3
yy456:
6046
3
    YYDEBUG(456, *YYCURSOR);
6047
3
    ++YYCURSOR;
6048
3
    YYFILL(1);
6049
3
    yych = *YYCURSOR;
6050
3
    YYDEBUG(457, *YYCURSOR);
6051
3
    if (yych <= 0x1F) {
6052
1
      if (yych == '\t') goto yy456;
6053
1
      goto yy86;
6054
2
    } else {
6055
2
      if (yych <= ' ') goto yy456;
6056
2
      if (yych == ')') goto yy562;
6057
1
      goto yy86;
6058
2
    }
6059
97
yy458:
6060
97
    YYDEBUG(458, *YYCURSOR);
6061
97
    yych = *++YYCURSOR;
6062
97
    if (yych == 'N') goto yy564;
6063
96
    if (yych == 'n') goto yy564;
6064
32
    goto yy86;
6065
60
yy459:
6066
60
    YYDEBUG(459, *YYCURSOR);
6067
60
    yych = *++YYCURSOR;
6068
60
    if (yych == 'T') goto yy565;
6069
60
    if (yych == 't') goto yy565;
6070
41
    goto yy86;
6071
41
yy460:
6072
5
    YYDEBUG(460, *YYCURSOR);
6073
5
    ++YYCURSOR;
6074
5
    YYFILL(1);
6075
5
    yych = *YYCURSOR;
6076
5
    YYDEBUG(461, *YYCURSOR);
6077
5
    if (yych <= 0x1F) {
6078
0
      if (yych == '\t') goto yy460;
6079
0
      goto yy86;
6080
5
    } else {
6081
5
      if (yych <= ' ') goto yy460;
6082
4
      if (yych == ')') goto yy567;
6083
1
      goto yy86;
6084
4
    }
6085
488
yy462:
6086
488
    YYDEBUG(462, *YYCURSOR);
6087
488
    ++YYCURSOR;
6088
488
    YYFILL(3);
6089
488
    yych = *YYCURSOR;
6090
576
yy463:
6091
576
    YYDEBUG(463, *YYCURSOR);
6092
576
    if (yych <= 'Z') {
6093
174
      if (yych <= '/') {
6094
54
        if (yych == '"') goto yy569;
6095
32
        goto yy86;
6096
120
      } else {
6097
120
        if (yych <= '9') goto yy462;
6098
64
        if (yych <= '@') goto yy86;
6099
52
        goto yy462;
6100
64
      }
6101
402
    } else {
6102
402
      if (yych <= '`') {
6103
43
        if (yych == '_') goto yy462;
6104
4
        goto yy86;
6105
359
      } else {
6106
359
        if (yych <= 'z') goto yy462;
6107
114
        if (yych <= 0x7F) goto yy86;
6108
96
        goto yy462;
6109
114
      }
6110
402
    }
6111
454
yy464:
6112
454
    YYDEBUG(464, *YYCURSOR);
6113
454
    ++YYCURSOR;
6114
454
    YYFILL(3);
6115
454
    yych = *YYCURSOR;
6116
566
yy465:
6117
566
    YYDEBUG(465, *YYCURSOR);
6118
566
    if (yych <= 'Z') {
6119
329
      if (yych <= '/') {
6120
85
        if (yych == '\'') goto yy569;
6121
9
        goto yy86;
6122
244
      } else {
6123
244
        if (yych <= '9') goto yy464;
6124
230
        if (yych <= '@') goto yy86;
6125
206
        goto yy464;
6126
230
      }
6127
329
    } else {
6128
237
      if (yych <= '`') {
6129
25
        if (yych == '_') goto yy464;
6130
3
        goto yy86;
6131
212
      } else {
6132
212
        if (yych <= 'z') goto yy464;
6133
14
        if (yych <= 0x7F) goto yy86;
6134
14
        goto yy464;
6135
14
      }
6136
237
    }
6137
13.2k
yy466:
6138
13.2k
    YYDEBUG(466, *YYCURSOR);
6139
13.2k
    ++YYCURSOR;
6140
13.3k
yy467:
6141
13.3k
    YYDEBUG(467, *YYCURSOR);
6142
13.3k
    yyleng = YYCURSOR - SCNG(yy_text);
6143
13.3k
#line 2677 "Zend/zend_language_scanner.l"
6144
13.3k
    {
6145
13.3k
  char *s;
6146
13.3k
  unsigned char *saved_cursor;
6147
13.3k
  int bprefix = (yytext[0] != '<') ? 1 : 0, spacing = 0, indentation = 0;
6148
13.3k
  zend_heredoc_label *heredoc_label = emalloc(sizeof(zend_heredoc_label));
6149
13.3k
  bool is_heredoc = 1;
6150
6151
13.3k
  CG(zend_lineno)++;
6152
13.3k
  heredoc_label->length = yyleng-bprefix-3-1-(yytext[yyleng-2]=='\r'?1:0);
6153
13.3k
  s = yytext+bprefix+3;
6154
13.3k
  while ((*s == ' ') || (*s == '\t')) {
6155
32
    s++;
6156
32
    heredoc_label->length--;
6157
32
  }
6158
6159
13.3k
  if (*s == '\'') {
6160
71
    s++;
6161
71
    heredoc_label->length -= 2;
6162
71
    is_heredoc = 0;
6163
6164
71
    BEGIN(ST_NOWDOC);
6165
13.2k
  } else {
6166
13.2k
    if (*s == '"') {
6167
7
      s++;
6168
7
      heredoc_label->length -= 2;
6169
7
    }
6170
6171
13.2k
    BEGIN(ST_HEREDOC);
6172
13.2k
  }
6173
6174
13.3k
  heredoc_label->label = estrndup(s, heredoc_label->length);
6175
13.3k
  heredoc_label->indentation_uses_spaces = 0;
6176
13.3k
  heredoc_label->indentation = 0;
6177
13.3k
  saved_cursor = YYCURSOR;
6178
6179
13.3k
  zend_ptr_stack_push(&SCNG(heredoc_label_stack), (void *) heredoc_label);
6180
6181
13.6k
  while (YYCURSOR < YYLIMIT && (*YYCURSOR == ' ' || *YYCURSOR == '\t')) {
6182
373
    if (*YYCURSOR == '\t') {
6183
41
      spacing |= HEREDOC_USING_TABS;
6184
332
    } else {
6185
332
      spacing |= HEREDOC_USING_SPACES;
6186
332
    }
6187
373
    ++YYCURSOR;
6188
373
    ++indentation;
6189
373
  }
6190
6191
13.3k
  if (YYCURSOR == YYLIMIT) {
6192
40
    YYCURSOR = saved_cursor;
6193
40
    RETURN_TOKEN(T_START_HEREDOC);
6194
40
  }
6195
6196
  /* Check for ending label on the next line */
6197
13.2k
  if (heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, s, heredoc_label->length)) {
6198
51
    if (!IS_LABEL_SUCCESSOR(YYCURSOR[heredoc_label->length])) {
6199
35
      if (spacing == (HEREDOC_USING_SPACES | HEREDOC_USING_TABS)) {
6200
8
        zend_throw_exception(zend_ce_parse_error, "Invalid indentation - tabs and spaces cannot be mixed", 0);
6201
8
        if (PARSER_MODE()) {
6202
2
          RETURN_TOKEN(T_ERROR);
6203
2
        }
6204
8
      }
6205
6206
33
      YYCURSOR = saved_cursor;
6207
33
      heredoc_label->indentation = indentation;
6208
6209
33
      BEGIN(ST_END_HEREDOC);
6210
33
      RETURN_TOKEN(T_START_HEREDOC);
6211
33
    }
6212
51
  }
6213
6214
13.2k
  YYCURSOR = saved_cursor;
6215
6216
13.2k
  if (is_heredoc && !SCNG(heredoc_scan_ahead)) {
6217
4.11k
    zend_lex_state current_state;
6218
4.11k
    zend_string *saved_doc_comment = CG(doc_comment);
6219
4.11k
    int heredoc_nesting_level = 1;
6220
4.11k
    int first_token = 0;
6221
4.11k
    int error = 0;
6222
6223
4.11k
    zend_save_lexical_state(&current_state);
6224
6225
4.11k
    SCNG(heredoc_scan_ahead) = 1;
6226
4.11k
    SCNG(heredoc_indentation) = 0;
6227
4.11k
    SCNG(heredoc_indentation_uses_spaces) = 0;
6228
4.11k
    SCNG(on_event_context) = NULL;
6229
4.11k
    LANG_SCNG(on_event) = NULL;
6230
4.11k
    CG(doc_comment) = NULL;
6231
6232
4.11k
    zend_ptr_stack_reverse_apply(&current_state.heredoc_label_stack, copy_heredoc_label_stack);
6233
6234
4.11k
    zend_object *prev_exception = EG(exception);
6235
4.11k
    EG(exception) = NULL;
6236
124k
    while (heredoc_nesting_level) {
6237
123k
      zval zv;
6238
123k
      int retval;
6239
6240
123k
      ZVAL_UNDEF(&zv);
6241
123k
      retval = lex_scan(&zv, NULL);
6242
123k
      zval_ptr_dtor_nogc(&zv);
6243
6244
123k
      if (EG(exception)) {
6245
3.76k
        zend_clear_exception();
6246
3.76k
        break;
6247
3.76k
      }
6248
6249
120k
      if (!first_token) {
6250
4.11k
        first_token = retval;
6251
4.11k
      }
6252
6253
120k
      switch (retval) {
6254
9.13k
        case T_START_HEREDOC:
6255
9.13k
          ++heredoc_nesting_level;
6256
9.13k
          break;
6257
287
        case T_END_HEREDOC:
6258
287
          --heredoc_nesting_level;
6259
287
          break;
6260
122
        case END:
6261
122
          heredoc_nesting_level = 0;
6262
120k
      }
6263
120k
    }
6264
4.11k
    EG(exception) = prev_exception;
6265
6266
4.11k
    if (
6267
4.11k
        (first_token == T_VARIABLE
6268
3.89k
         || first_token == T_DOLLAR_OPEN_CURLY_BRACES
6269
1.48k
         || first_token == T_CURLY_OPEN
6270
4.11k
        ) && SCNG(heredoc_indentation)) {
6271
1
      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
1
      error = 1;
6273
1
    }
6274
6275
4.11k
    heredoc_label->indentation = SCNG(heredoc_indentation);
6276
4.11k
    heredoc_label->indentation_uses_spaces = SCNG(heredoc_indentation_uses_spaces);
6277
6278
4.11k
    zend_restore_lexical_state(&current_state);
6279
4.11k
    SCNG(heredoc_scan_ahead) = 0;
6280
4.11k
    CG(increment_lineno) = 0;
6281
4.11k
    CG(doc_comment) = saved_doc_comment;
6282
6283
4.11k
    if (PARSER_MODE() && error) {
6284
1
      RETURN_TOKEN(T_ERROR);
6285
1
    }
6286
4.11k
  }
6287
6288
13.2k
  RETURN_TOKEN(T_START_HEREDOC);
6289
13.2k
}
6290
0
#line 6291 "Zend/zend_language_scanner.c"
6291
91
yy468:
6292
91
    YYDEBUG(468, *YYCURSOR);
6293
91
    yych = *++YYCURSOR;
6294
91
    if (yych == '\n') goto yy466;
6295
91
    goto yy467;
6296
130
yy469:
6297
130
    YYDEBUG(469, *YYCURSOR);
6298
130
    yyaccept = 4;
6299
130
    yych = *(YYMARKER = ++YYCURSOR);
6300
130
    if (yych == 'A') goto yy570;
6301
124
    if (yych == 'a') goto yy570;
6302
17
    goto yy48;
6303
662
yy470:
6304
662
    YYDEBUG(470, *YYCURSOR);
6305
662
    yyaccept = 34;
6306
662
    yych = *(YYMARKER = ++YYCURSOR);
6307
662
    if (yybm[256+yych] & 128) {
6308
121
      goto yy47;
6309
121
    }
6310
541
    if (yych == '\\') goto yy164;
6311
541
yy471:
6312
541
    YYDEBUG(471, *YYCURSOR);
6313
541
    yyleng = YYCURSOR - SCNG(yy_text);
6314
541
#line 1817 "Zend/zend_language_scanner.l"
6315
541
    {
6316
541
  RETURN_TOKEN_WITH_IDENT(T_ARRAY);
6317
541
}
6318
0
#line 6319 "Zend/zend_language_scanner.c"
6319
31
yy472:
6320
31
    YYDEBUG(472, *YYCURSOR);
6321
31
    yyaccept = 35;
6322
31
    yych = *(YYMARKER = ++YYCURSOR);
6323
31
    if (yybm[256+yych] & 128) {
6324
0
      goto yy47;
6325
0
    }
6326
31
    if (yych == '\\') goto yy164;
6327
31
yy473:
6328
31
    YYDEBUG(473, *YYCURSOR);
6329
31
    yyleng = YYCURSOR - SCNG(yy_text);
6330
31
#line 1533 "Zend/zend_language_scanner.l"
6331
31
    {
6332
31
  RETURN_TOKEN_WITH_IDENT(T_BREAK);
6333
31
}
6334
0
#line 6335 "Zend/zend_language_scanner.c"
6335
22
yy474:
6336
22
    YYDEBUG(474, *YYCURSOR);
6337
22
    yyaccept = 4;
6338
22
    yych = *(YYMARKER = ++YYCURSOR);
6339
22
    if (yych == 'B') goto yy571;
6340
21
    if (yych == 'b') goto yy571;
6341
0
    goto yy48;
6342
196
yy475:
6343
196
    YYDEBUG(475, *YYCURSOR);
6344
196
    yyaccept = 36;
6345
196
    yych = *(YYMARKER = ++YYCURSOR);
6346
196
    if (yybm[256+yych] & 128) {
6347
0
      goto yy47;
6348
0
    }
6349
196
    if (yych == '\\') goto yy164;
6350
196
yy476:
6351
196
    YYDEBUG(476, *YYCURSOR);
6352
196
    yyleng = YYCURSOR - SCNG(yy_text);
6353
196
#line 1441 "Zend/zend_language_scanner.l"
6354
196
    {
6355
196
  RETURN_TOKEN_WITH_IDENT(T_CATCH);
6356
196
}
6357
0
#line 6358 "Zend/zend_language_scanner.c"
6358
1.63k
yy477:
6359
1.63k
    YYDEBUG(477, *YYCURSOR);
6360
1.63k
    yyaccept = 37;
6361
1.63k
    yych = *(YYMARKER = ++YYCURSOR);
6362
1.63k
    if (yybm[256+yych] & 128) {
6363
51
      goto yy47;
6364
51
    }
6365
1.58k
    if (yych == '\\') goto yy164;
6366
1.58k
yy478:
6367
1.58k
    YYDEBUG(478, *YYCURSOR);
6368
1.58k
    yyleng = YYCURSOR - SCNG(yy_text);
6369
1.58k
#line 1553 "Zend/zend_language_scanner.l"
6370
1.58k
    {
6371
1.58k
  RETURN_TOKEN_WITH_IDENT(T_CLASS);
6372
1.58k
}
6373
0
#line 6374 "Zend/zend_language_scanner.c"
6374
45
yy479:
6375
45
    YYDEBUG(479, *YYCURSOR);
6376
45
    yyaccept = 38;
6377
45
    yych = *(YYMARKER = ++YYCURSOR);
6378
45
    if (yybm[256+yych] & 128) {
6379
0
      goto yy47;
6380
0
    }
6381
45
    if (yych == '\\') goto yy164;
6382
45
yy480:
6383
45
    YYDEBUG(480, *YYCURSOR);
6384
45
    yyleng = YYCURSOR - SCNG(yy_text);
6385
45
#line 1629 "Zend/zend_language_scanner.l"
6386
45
    {
6387
45
  RETURN_TOKEN_WITH_IDENT(T_CLONE);
6388
45
}
6389
0
#line 6390 "Zend/zend_language_scanner.c"
6390
666
yy481:
6391
666
    YYDEBUG(481, *YYCURSOR);
6392
666
    yyaccept = 39;
6393
666
    yych = *(YYMARKER = ++YYCURSOR);
6394
666
    if (yybm[256+yych] & 128) {
6395
147
      goto yy47;
6396
147
    }
6397
519
    if (yych == '\\') goto yy164;
6398
519
yy482:
6399
519
    YYDEBUG(482, *YYCURSOR);
6400
519
    yyleng = YYCURSOR - SCNG(yy_text);
6401
519
#line 1414 "Zend/zend_language_scanner.l"
6402
519
    {
6403
519
  RETURN_TOKEN_WITH_IDENT(T_CONST);
6404
519
}
6405
0
#line 6406 "Zend/zend_language_scanner.c"
6406
4
yy483:
6407
4
    YYDEBUG(483, *YYCURSOR);
6408
4
    yyaccept = 4;
6409
4
    yych = *(YYMARKER = ++YYCURSOR);
6410
4
    if (yych == 'N') goto yy572;
6411
4
    if (yych == 'n') goto yy572;
6412
2
    goto yy48;
6413
115
yy484:
6414
115
    YYDEBUG(484, *YYCURSOR);
6415
115
    yyaccept = 4;
6416
115
    yych = *(YYMARKER = ++YYCURSOR);
6417
115
    if (yych == 'R') goto yy573;
6418
114
    if (yych == 'r') goto yy573;
6419
13
    goto yy48;
6420
13
yy485:
6421
13
    YYDEBUG(485, *YYCURSOR);
6422
13
    yyaccept = 4;
6423
13
    yych = *(YYMARKER = ++YYCURSOR);
6424
13
    if (yych == 'L') goto yy574;
6425
13
    if (yych == 'l') goto yy574;
6426
0
    goto yy48;
6427
5
yy486:
6428
5
    YYDEBUG(486, *YYCURSOR);
6429
5
    yyaccept = 4;
6430
5
    yych = *(YYMARKER = ++YYCURSOR);
6431
5
    if (yych == 'F') goto yy575;
6432
5
    if (yych == 'f') goto yy575;
6433
0
    goto yy48;
6434
10
yy487:
6435
10
    YYDEBUG(487, *YYCURSOR);
6436
10
    yyaccept = 40;
6437
10
    yych = *(YYMARKER = ++YYCURSOR);
6438
10
    if (yybm[256+yych] & 128) {
6439
1
      goto yy47;
6440
1
    }
6441
9
    if (yych == '\\') goto yy164;
6442
9
yy488:
6443
9
    YYDEBUG(488, *YYCURSOR);
6444
9
    yyleng = YYCURSOR - SCNG(yy_text);
6445
9
#line 1757 "Zend/zend_language_scanner.l"
6446
9
    {
6447
9
  RETURN_TOKEN_WITH_IDENT(T_EMPTY);
6448
9
}
6449
0
#line 6450 "Zend/zend_language_scanner.c"
6450
6
yy489:
6451
6
    YYDEBUG(489, *YYCURSOR);
6452
6
    yyaccept = 4;
6453
6
    yych = *(YYMARKER = ++YYCURSOR);
6454
6
    if (yych == 'C') goto yy577;
6455
5
    if (yych == 'c') goto yy577;
6456
3
    goto yy48;
6457
100
yy490:
6458
100
    YYDEBUG(490, *YYCURSOR);
6459
100
    yyaccept = 4;
6460
100
    yych = *(YYMARKER = ++YYCURSOR);
6461
100
    if (yych == 'R') goto yy578;
6462
97
    if (yych == 'r') goto yy578;
6463
14
    goto yy48;
6464
14
yy491:
6465
9
    YYDEBUG(491, *YYCURSOR);
6466
9
    yyaccept = 41;
6467
9
    yych = *(YYMARKER = ++YYCURSOR);
6468
9
    if (yybm[256+yych] & 128) {
6469
0
      goto yy47;
6470
0
    }
6471
9
    if (yych == '\\') goto yy164;
6472
9
yy492:
6473
9
    YYDEBUG(492, *YYCURSOR);
6474
9
    yyleng = YYCURSOR - SCNG(yy_text);
6475
9
#line 1461 "Zend/zend_language_scanner.l"
6476
9
    {
6477
9
  RETURN_TOKEN_WITH_IDENT(T_ENDIF);
6478
9
}
6479
0
#line 6480 "Zend/zend_language_scanner.c"
6480
0
yy493:
6481
0
    YYDEBUG(493, *YYCURSOR);
6482
0
    yyaccept = 4;
6483
0
    yych = *(YYMARKER = ++YYCURSOR);
6484
0
    if (yych == 'I') goto yy580;
6485
0
    if (yych == 'i') goto yy580;
6486
0
    goto yy48;
6487
3
yy494:
6488
3
    YYDEBUG(494, *YYCURSOR);
6489
3
    yyaccept = 4;
6490
3
    yych = *(YYMARKER = ++YYCURSOR);
6491
3
    if (yych == 'I') goto yy581;
6492
1
    if (yych == 'i') goto yy581;
6493
1
    goto yy48;
6494
3.71k
yy495:
6495
3.71k
    YYDEBUG(495, *YYCURSOR);
6496
3.71k
    ++YYCURSOR;
6497
3.71k
    YYFILL(10);
6498
3.71k
    yych = *YYCURSOR;
6499
3.71k
    YYDEBUG(496, *YYCURSOR);
6500
3.71k
    if (yych <= 'E') {
6501
3.37k
      if (yych <= ' ') {
6502
537
        if (yych <= '\f') {
6503
201
          if (yych <= 0x08) goto yy86;
6504
144
          if (yych <= '\n') goto yy495;
6505
9
          goto yy86;
6506
336
        } else {
6507
336
          if (yych <= '\r') goto yy495;
6508
117
          if (yych <= 0x1F) goto yy86;
6509
99
          goto yy495;
6510
117
        }
6511
2.83k
      } else {
6512
2.83k
        if (yych <= '.') {
6513
2.58k
          if (yych != '#') goto yy86;
6514
2.58k
        } else {
6515
257
          if (yych <= '/') goto yy498;
6516
79
          if (yych <= '@') goto yy86;
6517
42
          if (yych <= 'D') goto yy582;
6518
18
          goto yy584;
6519
42
        }
6520
2.83k
      }
6521
3.37k
    } else {
6522
340
      if (yych <= '`') {
6523
145
        if (yych <= 'Z') {
6524
140
          if (yych == 'I') goto yy585;
6525
126
          goto yy582;
6526
140
        } else {
6527
5
          if (yych == '_') goto yy582;
6528
2
          goto yy86;
6529
5
        }
6530
195
      } else {
6531
195
        if (yych <= 'h') {
6532
79
          if (yych == 'e') goto yy584;
6533
22
          goto yy582;
6534
116
        } else {
6535
116
          if (yych <= 'i') goto yy585;
6536
66
          if (yych <= 'z') goto yy582;
6537
32
          if (yych <= 0x7F) goto yy86;
6538
27
          goto yy582;
6539
32
        }
6540
195
      }
6541
340
    }
6542
2.50k
yy497:
6543
2.50k
    YYDEBUG(497, *YYCURSOR);
6544
2.50k
    ++YYCURSOR;
6545
2.50k
    YYFILL(1);
6546
2.50k
    yych = *YYCURSOR;
6547
2.50k
    if (yych <= '\f') {
6548
1.70k
      if (yych <= 0x00) goto yy86;
6549
1.69k
      if (yych == '\n') goto yy588;
6550
25
      goto yy586;
6551
1.69k
    } else {
6552
804
      if (yych <= '\r') goto yy588;
6553
469
      if (yych == '[') goto yy86;
6554
468
      goto yy586;
6555
469
    }
6556
211
yy498:
6557
211
    YYDEBUG(498, *YYCURSOR);
6558
211
    ++YYCURSOR;
6559
211
    YYFILL(1);
6560
211
    yych = *YYCURSOR;
6561
211
    if (yych == '*') goto yy590;
6562
84
    if (yych == '/') goto yy586;
6563
32
    goto yy86;
6564
316
yy499:
6565
316
    YYDEBUG(499, *YYCURSOR);
6566
316
    yyaccept = 4;
6567
316
    yych = *(YYMARKER = ++YYCURSOR);
6568
316
    if (yych == 'D') goto yy592;
6569
314
    if (yych == 'd') goto yy592;
6570
12
    goto yy48;
6571
119
yy500:
6572
119
    YYDEBUG(500, *YYCURSOR);
6573
119
    yyaccept = 42;
6574
119
    yych = *(YYMARKER = ++YYCURSOR);
6575
119
    if (yych <= '\\') {
6576
64
      if (yych <= 'K') {
6577
64
        if (yych <= '/') goto yy501;
6578
8
        if (yych <= '9') goto yy47;
6579
8
        if (yych >= 'A') goto yy47;
6580
8
      } else {
6581
0
        if (yych <= 'L') goto yy593;
6582
0
        if (yych <= 'Z') goto yy47;
6583
0
        if (yych >= '\\') goto yy164;
6584
0
      }
6585
64
    } else {
6586
55
      if (yych <= 'k') {
6587
8
        if (yych == '_') goto yy47;
6588
7
        if (yych >= 'a') goto yy47;
6589
47
      } else {
6590
47
        if (yych <= 'l') goto yy593;
6591
7
        if (yych <= 'z') goto yy47;
6592
1
        if (yych >= 0x80) goto yy47;
6593
1
      }
6594
55
    }
6595
67
yy501:
6596
67
    YYDEBUG(501, *YYCURSOR);
6597
67
    yyleng = YYCURSOR - SCNG(yy_text);
6598
67
#line 1773 "Zend/zend_language_scanner.l"
6599
67
    {
6600
67
  RETURN_TOKEN_WITH_IDENT(T_FINAL);
6601
67
}
6602
0
#line 6603 "Zend/zend_language_scanner.c"
6603
214
yy502:
6604
214
    YYDEBUG(502, *YYCURSOR);
6605
214
    yyaccept = 4;
6606
214
    yych = *(YYMARKER = ++YYCURSOR);
6607
214
    if (yych == 'C') goto yy594;
6608
213
    if (yych == 'c') goto yy594;
6609
2
    goto yy48;
6610
1.71k
yy503:
6611
1.71k
    YYDEBUG(503, *YYCURSOR);
6612
1.71k
    yyaccept = 4;
6613
1.71k
    yych = *(YYMARKER = ++YYCURSOR);
6614
1.71k
    if (yych == 'I') goto yy595;
6615
1.71k
    if (yych == 'i') goto yy595;
6616
10
    goto yy48;
6617
69
yy504:
6618
69
    YYDEBUG(504, *YYCURSOR);
6619
69
    yyaccept = 4;
6620
69
    yych = *(YYMARKER = ++YYCURSOR);
6621
69
    if (yych == 'L') goto yy596;
6622
32
    if (yych == 'l') goto yy596;
6623
4
    goto yy48;
6624
224
yy505:
6625
224
    YYDEBUG(505, *YYCURSOR);
6626
224
    yyaccept = 4;
6627
224
    yych = *(YYMARKER = ++YYCURSOR);
6628
224
    if (yych == 'M') goto yy598;
6629
209
    if (yych == 'm') goto yy598;
6630
24
    goto yy48;
6631
55
yy506:
6632
55
    YYDEBUG(506, *YYCURSOR);
6633
55
    yyaccept = 4;
6634
55
    yych = *(YYMARKER = ++YYCURSOR);
6635
55
    if (yych == 'D') goto yy599;
6636
55
    if (yych == 'd') goto yy599;
6637
4
    goto yy48;
6638
26
yy507:
6639
26
    YYDEBUG(507, *YYCURSOR);
6640
26
    yyaccept = 4;
6641
26
    yych = *(YYMARKER = ++YYCURSOR);
6642
26
    if (yych == 'N') goto yy600;
6643
26
    if (yych == 'n') goto yy600;
6644
2
    goto yy48;
6645
17
yy508:
6646
17
    YYDEBUG(508, *YYCURSOR);
6647
17
    yyaccept = 4;
6648
17
    yych = *(YYMARKER = ++YYCURSOR);
6649
17
    if (yych == 'A') goto yy601;
6650
17
    if (yych == 'a') goto yy601;
6651
2
    goto yy48;
6652
222
yy509:
6653
222
    YYDEBUG(509, *YYCURSOR);
6654
222
    yyaccept = 4;
6655
222
    yych = *(YYMARKER = ++YYCURSOR);
6656
222
    if (yych == 'F') goto yy602;
6657
211
    if (yych == 'f') goto yy602;
6658
0
    goto yy48;
6659
73
yy510:
6660
73
    YYDEBUG(510, *YYCURSOR);
6661
73
    yyaccept = 43;
6662
73
    yych = *(YYMARKER = ++YYCURSOR);
6663
73
    if (yybm[256+yych] & 128) {
6664
1
      goto yy47;
6665
1
    }
6666
72
    if (yych == '\\') goto yy164;
6667
72
yy511:
6668
72
    YYDEBUG(511, *YYCURSOR);
6669
72
    yyleng = YYCURSOR - SCNG(yy_text);
6670
72
#line 1753 "Zend/zend_language_scanner.l"
6671
72
    {
6672
72
  RETURN_TOKEN_WITH_IDENT(T_ISSET);
6673
72
}
6674
0
#line 6675 "Zend/zend_language_scanner.c"
6675
58
yy512:
6676
58
    YYDEBUG(512, *YYCURSOR);
6677
58
    yyaccept = 44;
6678
58
    yych = *(YYMARKER = ++YYCURSOR);
6679
58
    if (yybm[256+yych] & 128) {
6680
12
      goto yy47;
6681
12
    }
6682
46
    if (yych == '\\') goto yy164;
6683
46
yy513:
6684
46
    YYDEBUG(513, *YYCURSOR);
6685
46
    yyleng = YYCURSOR - SCNG(yy_text);
6686
46
#line 1517 "Zend/zend_language_scanner.l"
6687
46
    {
6688
46
  RETURN_TOKEN_WITH_IDENT(T_MATCH);
6689
46
}
6690
0
#line 6691 "Zend/zend_language_scanner.c"
6691
293
yy514:
6692
293
    YYDEBUG(514, *YYCURSOR);
6693
293
    yyaccept = 4;
6694
293
    yych = *(YYMARKER = ++YYCURSOR);
6695
293
    if (yych == 'P') goto yy603;
6696
286
    if (yych == 'p') goto yy603;
6697
1
    goto yy48;
6698
282
yy515:
6699
282
    YYDEBUG(515, *YYCURSOR);
6700
282
    yyaccept = 45;
6701
282
    yych = *(YYMARKER = ++YYCURSOR);
6702
282
    if (yybm[256+yych] & 128) {
6703
61
      goto yy47;
6704
61
    }
6705
221
    if (yych == '\\') goto yy164;
6706
221
yy516:
6707
221
    YYDEBUG(516, *YYCURSOR);
6708
221
    yyleng = YYCURSOR - SCNG(yy_text);
6709
221
#line 1549 "Zend/zend_language_scanner.l"
6710
221
    {
6711
221
  RETURN_TOKEN_WITH_IDENT(T_PRINT);
6712
221
}
6713
0
#line 6714 "Zend/zend_language_scanner.c"
6714
646
yy517:
6715
646
    YYDEBUG(517, *YYCURSOR);
6716
646
    yyaccept = 4;
6717
646
    yych = *(YYMARKER = ++YYCURSOR);
6718
646
    if (yych == 'T') goto yy604;
6719
646
    if (yych == 't') goto yy604;
6720
118
    goto yy48;
6721
118
yy518:
6722
110
    YYDEBUG(518, *YYCURSOR);
6723
110
    yyaccept = 4;
6724
110
    yych = *(YYMARKER = ++YYCURSOR);
6725
110
    if (yych == 'C') goto yy605;
6726
110
    if (yych == 'c') goto yy605;
6727
0
    goto yy48;
6728
889
yy519:
6729
889
    YYDEBUG(519, *YYCURSOR);
6730
889
    yyaccept = 4;
6731
889
    yych = *(YYMARKER = ++YYCURSOR);
6732
889
    if (yych == 'C') goto yy606;
6733
889
    if (yych == 'c') goto yy606;
6734
13
    goto yy48;
6735
165
yy520:
6736
165
    YYDEBUG(520, *YYCURSOR);
6737
165
    yyaccept = 4;
6738
165
    yych = *(YYMARKER = ++YYCURSOR);
6739
165
    if (yych == 'N') goto yy608;
6740
165
    if (yych == 'n') goto yy608;
6741
2
    goto yy48;
6742
127
yy521:
6743
127
    YYDEBUG(521, *YYCURSOR);
6744
127
    yyaccept = 4;
6745
127
    yych = *(YYMARKER = ++YYCURSOR);
6746
127
    if (yych == 'R') goto yy609;
6747
124
    if (yych == 'r') goto yy609;
6748
16
    goto yy48;
6749
372
yy522:
6750
372
    YYDEBUG(522, *YYCURSOR);
6751
372
    yyaccept = 4;
6752
372
    yych = *(YYMARKER = ++YYCURSOR);
6753
372
    if (yych == 'N') goto yy610;
6754
372
    if (yych == 'n') goto yy610;
6755
0
    goto yy48;
6756
264
yy523:
6757
264
    YYDEBUG(523, *YYCURSOR);
6758
264
    yyaccept = 4;
6759
264
    yych = *(YYMARKER = ++YYCURSOR);
6760
264
    if (yych == 'C') goto yy612;
6761
264
    if (yych == 'c') goto yy612;
6762
13
    goto yy48;
6763
35
yy524:
6764
35
    YYDEBUG(524, *YYCURSOR);
6765
35
    yyaccept = 4;
6766
35
    yych = *(YYMARKER = ++YYCURSOR);
6767
35
    if (yych == 'H') goto yy614;
6768
35
    if (yych == 'h') goto yy614;
6769
14
    goto yy48;
6770
91
yy525:
6771
91
    YYDEBUG(525, *YYCURSOR);
6772
91
    yyaccept = 46;
6773
91
    yych = *(YYMARKER = ++YYCURSOR);
6774
91
    if (yybm[256+yych] & 128) {
6775
22
      goto yy47;
6776
22
    }
6777
69
    if (yych == '\\') goto yy164;
6778
69
yy526:
6779
69
    YYDEBUG(526, *YYCURSOR);
6780
69
    yyleng = YYCURSOR - SCNG(yy_text);
6781
69
#line 1449 "Zend/zend_language_scanner.l"
6782
69
    {
6783
69
  RETURN_TOKEN_WITH_IDENT(T_THROW);
6784
69
}
6785
0
#line 6786 "Zend/zend_language_scanner.c"
6786
193
yy527:
6787
193
    YYDEBUG(527, *YYCURSOR);
6788
193
    yyaccept = 47;
6789
193
    yych = *(YYMARKER = ++YYCURSOR);
6790
193
    if (yybm[256+yych] & 128) {
6791
28
      goto yy47;
6792
28
    }
6793
165
    if (yych == '\\') goto yy164;
6794
165
yy528:
6795
165
    YYDEBUG(528, *YYCURSOR);
6796
165
    yyleng = YYCURSOR - SCNG(yy_text);
6797
165
#line 1561 "Zend/zend_language_scanner.l"
6798
165
    {
6799
165
  RETURN_TOKEN_WITH_IDENT(T_TRAIT);
6800
165
}
6801
0
#line 6802 "Zend/zend_language_scanner.c"
6802
168
yy529:
6803
168
    YYDEBUG(529, *YYCURSOR);
6804
168
    yyaccept = 48;
6805
168
    yych = *(YYMARKER = ++YYCURSOR);
6806
168
    if (yybm[256+yych] & 128) {
6807
9
      goto yy47;
6808
9
    }
6809
159
    if (yych == '\\') goto yy164;
6810
159
yy530:
6811
159
    YYDEBUG(530, *YYCURSOR);
6812
159
    yyleng = YYCURSOR - SCNG(yy_text);
6813
159
#line 1805 "Zend/zend_language_scanner.l"
6814
159
    {
6815
159
  RETURN_TOKEN_WITH_IDENT(T_UNSET);
6816
159
}
6817
0
#line 6818 "Zend/zend_language_scanner.c"
6818
29
yy531:
6819
29
    YYDEBUG(531, *YYCURSOR);
6820
29
    yyaccept = 49;
6821
29
    yych = *(YYMARKER = ++YYCURSOR);
6822
29
    if (yybm[256+yych] & 128) {
6823
8
      goto yy47;
6824
8
    }
6825
21
    if (yych == '\\') goto yy164;
6826
21
yy532:
6827
21
    YYDEBUG(532, *YYCURSOR);
6828
21
    yyleng = YYCURSOR - SCNG(yy_text);
6829
21
#line 1469 "Zend/zend_language_scanner.l"
6830
21
    {
6831
21
  RETURN_TOKEN_WITH_IDENT(T_WHILE);
6832
21
}
6833
0
#line 6834 "Zend/zend_language_scanner.c"
6834
1.19k
yy533:
6835
1.19k
    YYDEBUG(533, *YYCURSOR);
6836
1.19k
    yyaccept = 50;
6837
1.19k
    yych = *(YYMARKER = ++YYCURSOR);
6838
1.19k
    if (yybm[256+yych] & 128) {
6839
14
      goto yy47;
6840
14
    }
6841
1.17k
    if (yych <= ' ') {
6842
379
      if (yych <= '\f') {
6843
258
        if (yych <= 0x08) goto yy534;
6844
253
        if (yych <= '\n') goto yy616;
6845
253
      } else {
6846
121
        if (yych <= '\r') goto yy616;
6847
106
        if (yych >= ' ') goto yy616;
6848
106
      }
6849
800
    } else {
6850
800
      if (yych <= '.') {
6851
719
        if (yych == '#') goto yy618;
6852
719
      } else {
6853
81
        if (yych <= '/') goto yy619;
6854
78
        if (yych == '\\') goto yy164;
6855
78
      }
6856
800
    }
6857
1.02k
yy534:
6858
1.02k
    YYDEBUG(534, *YYCURSOR);
6859
1.02k
    yyleng = YYCURSOR - SCNG(yy_text);
6860
1.02k
#line 1433 "Zend/zend_language_scanner.l"
6861
1.02k
    {
6862
1.02k
  RETURN_TOKEN_WITH_IDENT(T_YIELD);
6863
1.02k
}
6864
0
#line 6865 "Zend/zend_language_scanner.c"
6865
69
yy535:
6866
69
    YYDEBUG(535, *YYCURSOR);
6867
69
    yyaccept = 4;
6868
69
    yych = *(YYMARKER = ++YYCURSOR);
6869
69
    if (yych == 'S') goto yy620;
6870
8
    if (yych == 's') goto yy620;
6871
2
    goto yy48;
6872
41
yy536:
6873
41
    YYDEBUG(536, *YYCURSOR);
6874
41
    yyaccept = 4;
6875
41
    yych = *(YYMARKER = ++YYCURSOR);
6876
41
    if (yych == '_') goto yy621;
6877
0
    goto yy48;
6878
45
yy537:
6879
45
    YYDEBUG(537, *YYCURSOR);
6880
45
    yyaccept = 4;
6881
45
    yych = *(YYMARKER = ++YYCURSOR);
6882
45
    if (yych == 'E') goto yy622;
6883
5
    if (yych == 'e') goto yy622;
6884
2
    goto yy48;
6885
16
yy538:
6886
16
    YYDEBUG(538, *YYCURSOR);
6887
16
    yyaccept = 4;
6888
16
    yych = *(YYMARKER = ++YYCURSOR);
6889
16
    if (yych == 'C') goto yy623;
6890
5
    if (yych == 'c') goto yy623;
6891
0
    goto yy48;
6892
42
yy539:
6893
42
    YYDEBUG(539, *YYCURSOR);
6894
42
    yyaccept = 4;
6895
42
    yych = *(YYMARKER = ++YYCURSOR);
6896
42
    if (yych == 'T') goto yy624;
6897
9
    if (yych == 't') goto yy624;
6898
0
    goto yy48;
6899
15
yy540:
6900
15
    YYDEBUG(540, *YYCURSOR);
6901
15
    yyaccept = 4;
6902
15
    yych = *(YYMARKER = ++YYCURSOR);
6903
15
    if (yych == 'E') goto yy625;
6904
3
    if (yych == 'e') goto yy625;
6905
3
    goto yy48;
6906
29
yy541:
6907
29
    YYDEBUG(541, *YYCURSOR);
6908
29
    yyaccept = 4;
6909
29
    yych = *(YYMARKER = ++YYCURSOR);
6910
29
    if (yych == 'H') goto yy626;
6911
2
    if (yych == 'h') goto yy626;
6912
2
    goto yy48;
6913
58
yy542:
6914
58
    YYDEBUG(542, *YYCURSOR);
6915
58
    yyaccept = 4;
6916
58
    yych = *(YYMARKER = ++YYCURSOR);
6917
58
    if (yych == 'E') goto yy627;
6918
17
    if (yych == 'e') goto yy627;
6919
2
    goto yy48;
6920
43
yy543:
6921
43
    YYDEBUG(543, *YYCURSOR);
6922
43
    yyaccept = 4;
6923
43
    yych = *(YYMARKER = ++YYCURSOR);
6924
43
    if (yych == 'P') goto yy628;
6925
13
    if (yych == 'p') goto yy628;
6926
13
    goto yy48;
6927
19
yy544:
6928
19
    YYDEBUG(544, *YYCURSOR);
6929
19
    yyaccept = 4;
6930
19
    yych = *(YYMARKER = ++YYCURSOR);
6931
19
    if (yych == 'I') goto yy629;
6932
14
    if (yych == 'i') goto yy629;
6933
0
    goto yy48;
6934
637
yy545:
6935
637
    YYDEBUG(545, *YYCURSOR);
6936
637
    ++YYCURSOR;
6937
637
    YYFILL(1);
6938
637
    yych = *YYCURSOR;
6939
637
    YYDEBUG(546, *YYCURSOR);
6940
637
    if (yybm[0+yych] & 64) {
6941
3
      goto yy355;
6942
3
    }
6943
634
    if (yych <= ' ') {
6944
198
      if (yych <= '\n') {
6945
64
        if (yych <= 0x00) goto yy86;
6946
51
        if (yych <= 0x08) goto yy230;
6947
36
        goto yy545;
6948
134
      } else {
6949
134
        if (yych == '\r') goto yy545;
6950
13
        if (yych <= 0x1F) goto yy230;
6951
11
        goto yy545;
6952
13
      }
6953
436
    } else {
6954
436
      if (yych <= '$') {
6955
350
        if (yych <= '"') goto yy230;
6956
350
        if (yych <= '#') goto yy630;
6957
37
        goto yy631;
6958
350
      } else {
6959
86
        if (yych <= '-') goto yy230;
6960
77
        if (yych <= '.') goto yy632;
6961
77
        if (yych <= '/') goto yy633;
6962
19
        goto yy230;
6963
77
      }
6964
436
    }
6965
170
yy547:
6966
170
    YYDEBUG(547, *YYCURSOR);
6967
170
    ++YYCURSOR;
6968
170
    YYFILL(1);
6969
170
    yych = *YYCURSOR;
6970
170
    YYDEBUG(548, *YYCURSOR);
6971
170
    if (yych <= '\r') {
6972
59
      if (yych <= '\t') {
6973
2
        if (yych <= 0x00) goto yy86;
6974
0
        goto yy443;
6975
57
      } else {
6976
57
        if (yych <= '\n') goto yy545;
6977
22
        if (yych <= '\f') goto yy443;
6978
18
        goto yy545;
6979
22
      }
6980
111
    } else {
6981
111
      if (yych <= '*') {
6982
70
        if (yych <= ')') goto yy443;
6983
33
        goto yy547;
6984
70
      } else {
6985
41
        if (yych == '/') goto yy227;
6986
19
        goto yy443;
6987
41
      }
6988
111
    }
6989
178
yy549:
6990
178
    YYDEBUG(549, *YYCURSOR);
6991
178
    ++YYCURSOR;
6992
178
    YYFILL(1);
6993
178
    yych = *YYCURSOR;
6994
178
    YYDEBUG(550, *YYCURSOR);
6995
178
    if (yych <= 0x1F) {
6996
12
      if (yych == '\t') goto yy549;
6997
9
      goto yy86;
6998
166
    } else {
6999
166
      if (yych <= ' ') goto yy549;
7000
105
      if (yych == ')') goto yy634;
7001
91
      goto yy86;
7002
105
    }
7003
6
yy551:
7004
6
    YYDEBUG(551, *YYCURSOR);
7005
6
    yych = *++YYCURSOR;
7006
6
    if (yych == 'Y') goto yy636;
7007
6
    if (yych == 'y') goto yy636;
7008
1
    goto yy86;
7009
2
yy552:
7010
2
    YYDEBUG(552, *YYCURSOR);
7011
2
    ++YYCURSOR;
7012
2
    YYFILL(1);
7013
2
    yych = *YYCURSOR;
7014
8
yy553:
7015
8
    YYDEBUG(553, *YYCURSOR);
7016
8
    if (yych <= 0x1F) {
7017
0
      if (yych == '\t') goto yy552;
7018
0
      goto yy86;
7019
8
    } else {
7020
8
      if (yych <= ' ') goto yy552;
7021
6
      if (yych != ')') goto yy86;
7022
6
    }
7023
0
    YYDEBUG(554, *YYCURSOR);
7024
0
    ++YYCURSOR;
7025
0
    YYDEBUG(555, *YYCURSOR);
7026
0
    yyleng = YYCURSOR - SCNG(yy_text);
7027
0
#line 1695 "Zend/zend_language_scanner.l"
7028
0
    {
7029
0
  RETURN_TOKEN(T_BOOL_CAST);
7030
0
}
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
3
    goto yy86;
7038
5
yy557:
7039
5
    YYDEBUG(557, *YYCURSOR);
7040
5
    yych = *++YYCURSOR;
7041
5
    if (yych == 'E') goto yy639;
7042
5
    if (yych == 'e') goto yy639;
7043
0
    goto yy86;
7044
25
yy558:
7045
25
    YYDEBUG(558, *YYCURSOR);
7046
25
    ++YYCURSOR;
7047
25
    YYFILL(1);
7048
25
    yych = *YYCURSOR;
7049
25
    YYDEBUG(559, *YYCURSOR);
7050
25
    if (yych <= 0x1F) {
7051
9
      if (yych == '\t') goto yy558;
7052
9
      goto yy86;
7053
16
    } else {
7054
16
      if (yych <= ' ') goto yy558;
7055
12
      if (yych == ')') goto yy641;
7056
4
      goto yy86;
7057
12
    }
7058
14
yy560:
7059
14
    YYDEBUG(560, *YYCURSOR);
7060
14
    yych = *++YYCURSOR;
7061
14
    if (yych == 'E') goto yy643;
7062
14
    if (yych == 'e') goto yy643;
7063
0
    goto yy86;
7064
60
yy561:
7065
60
    YYDEBUG(561, *YYCURSOR);
7066
60
    yych = *++YYCURSOR;
7067
60
    if (yych == 'T') goto yy644;
7068
49
    if (yych == 't') goto yy644;
7069
6
    goto yy86;
7070
6
yy562:
7071
1
    YYDEBUG(562, *YYCURSOR);
7072
1
    ++YYCURSOR;
7073
1
    YYDEBUG(563, *YYCURSOR);
7074
1
    yyleng = YYCURSOR - SCNG(yy_text);
7075
1
#line 1665 "Zend/zend_language_scanner.l"
7076
1
    {
7077
1
  if (PARSER_MODE()) {
7078
1
    zend_throw_exception(zend_ce_parse_error, "The (real) cast has been removed, use (float) instead", 0);
7079
1
    RETURN_TOKEN(T_ERROR);
7080
1
  }
7081
0
  RETURN_TOKEN(T_DOUBLE_CAST);
7082
0
}
7083
0
#line 7084 "Zend/zend_language_scanner.c"
7084
65
yy564:
7085
65
    YYDEBUG(564, *YYCURSOR);
7086
65
    yych = *++YYCURSOR;
7087
65
    if (yych == 'G') goto yy646;
7088
65
    if (yych == 'g') goto yy646;
7089
2
    goto yy86;
7090
19
yy565:
7091
19
    YYDEBUG(565, *YYCURSOR);
7092
19
    ++YYCURSOR;
7093
19
    YYFILL(1);
7094
19
    yych = *YYCURSOR;
7095
19
    YYDEBUG(566, *YYCURSOR);
7096
19
    if (yych <= 0x1F) {
7097
0
      if (yych == '\t') goto yy565;
7098
0
      goto yy86;
7099
19
    } else {
7100
19
      if (yych <= ' ') goto yy565;
7101
19
      if (yych == ')') goto yy648;
7102
8
      goto yy86;
7103
19
    }
7104
3
yy567:
7105
3
    YYDEBUG(567, *YYCURSOR);
7106
3
    ++YYCURSOR;
7107
3
    YYDEBUG(568, *YYCURSOR);
7108
3
    yyleng = YYCURSOR - SCNG(yy_text);
7109
3
#line 1713 "Zend/zend_language_scanner.l"
7110
3
    {
7111
3
  RETURN_TOKEN(T_VOID_CAST);
7112
3
}
7113
0
#line 7114 "Zend/zend_language_scanner.c"
7114
98
yy569:
7115
98
    YYDEBUG(569, *YYCURSOR);
7116
98
    yych = *++YYCURSOR;
7117
98
    if (yych == '\n') goto yy466;
7118
27
    if (yych == '\r') goto yy468;
7119
20
    goto yy86;
7120
113
yy570:
7121
113
    YYDEBUG(570, *YYCURSOR);
7122
113
    yyaccept = 4;
7123
113
    yych = *(YYMARKER = ++YYCURSOR);
7124
113
    if (yych == 'C') goto yy650;
7125
113
    if (yych == 'c') goto yy650;
7126
5
    goto yy48;
7127
22
yy571:
7128
22
    YYDEBUG(571, *YYCURSOR);
7129
22
    yyaccept = 4;
7130
22
    yych = *(YYMARKER = ++YYCURSOR);
7131
22
    if (yych == 'L') goto yy651;
7132
21
    if (yych == 'l') goto yy651;
7133
1
    goto yy48;
7134
2
yy572:
7135
2
    YYDEBUG(572, *YYCURSOR);
7136
2
    yyaccept = 4;
7137
2
    yych = *(YYMARKER = ++YYCURSOR);
7138
2
    if (yych == 'U') goto yy652;
7139
2
    if (yych == 'u') goto yy652;
7140
0
    goto yy48;
7141
102
yy573:
7142
102
    YYDEBUG(573, *YYCURSOR);
7143
102
    yyaccept = 4;
7144
102
    yych = *(YYMARKER = ++YYCURSOR);
7145
102
    if (yych == 'E') goto yy653;
7146
101
    if (yych == 'e') goto yy653;
7147
21
    goto yy48;
7148
21
yy574:
7149
13
    YYDEBUG(574, *YYCURSOR);
7150
13
    yyaccept = 4;
7151
13
    yych = *(YYMARKER = ++YYCURSOR);
7152
13
    if (yych == 'T') goto yy655;
7153
13
    if (yych == 't') goto yy655;
7154
1
    goto yy48;
7155
5
yy575:
7156
5
    YYDEBUG(575, *YYCURSOR);
7157
5
    yyaccept = 51;
7158
5
    yych = *(YYMARKER = ++YYCURSOR);
7159
5
    if (yybm[256+yych] & 128) {
7160
0
      goto yy47;
7161
0
    }
7162
5
    if (yych == '\\') goto yy164;
7163
5
yy576:
7164
5
    YYDEBUG(576, *YYCURSOR);
7165
5
    yyleng = YYCURSOR - SCNG(yy_text);
7166
5
#line 1457 "Zend/zend_language_scanner.l"
7167
5
    {
7168
5
  RETURN_TOKEN_WITH_IDENT(T_ELSEIF);
7169
5
}
7170
0
#line 7171 "Zend/zend_language_scanner.c"
7171
3
yy577:
7172
3
    YYDEBUG(577, *YYCURSOR);
7173
3
    yyaccept = 4;
7174
3
    yych = *(YYMARKER = ++YYCURSOR);
7175
3
    if (yych == 'L') goto yy657;
7176
2
    if (yych == 'l') goto yy657;
7177
2
    goto yy48;
7178
86
yy578:
7179
86
    YYDEBUG(578, *YYCURSOR);
7180
86
    yyaccept = 52;
7181
86
    yych = *(YYMARKER = ++YYCURSOR);
7182
86
    if (yych <= '\\') {
7183
84
      if (yych <= 'D') {
7184
84
        if (yych <= '/') goto yy579;
7185
4
        if (yych <= '9') goto yy47;
7186
4
        if (yych >= 'A') goto yy47;
7187
4
      } else {
7188
0
        if (yych <= 'E') goto yy658;
7189
0
        if (yych <= 'Z') goto yy47;
7190
0
        if (yych >= '\\') goto yy164;
7191
0
      }
7192
84
    } else {
7193
2
      if (yych <= 'd') {
7194
0
        if (yych == '_') goto yy47;
7195
0
        if (yych >= 'a') goto yy47;
7196
2
      } else {
7197
2
        if (yych <= 'e') goto yy658;
7198
2
        if (yych <= 'z') goto yy47;
7199
0
        if (yych >= 0x80) goto yy47;
7200
0
      }
7201
2
    }
7202
84
yy579:
7203
84
    YYDEBUG(579, *YYCURSOR);
7204
84
    yyleng = YYCURSOR - SCNG(yy_text);
7205
84
#line 1485 "Zend/zend_language_scanner.l"
7206
84
    {
7207
84
  RETURN_TOKEN_WITH_IDENT(T_ENDFOR);
7208
84
}
7209
0
#line 7210 "Zend/zend_language_scanner.c"
7210
0
yy580:
7211
0
    YYDEBUG(580, *YYCURSOR);
7212
0
    yyaccept = 4;
7213
0
    yych = *(YYMARKER = ++YYCURSOR);
7214
0
    if (yych == 'T') goto yy659;
7215
0
    if (yych == 't') goto yy659;
7216
0
    goto yy48;
7217
2
yy581:
7218
2
    YYDEBUG(581, *YYCURSOR);
7219
2
    yyaccept = 4;
7220
2
    yych = *(YYMARKER = ++YYCURSOR);
7221
2
    if (yych == 'L') goto yy660;
7222
0
    if (yych == 'l') goto yy660;
7223
0
    goto yy48;
7224
236
yy582:
7225
236
    YYDEBUG(582, *YYCURSOR);
7226
236
    ++YYCURSOR;
7227
996
yy583:
7228
996
    YYDEBUG(583, *YYCURSOR);
7229
996
    yyleng = YYCURSOR - SCNG(yy_text);
7230
996
#line 1573 "Zend/zend_language_scanner.l"
7231
996
    {
7232
996
  yyless(4);
7233
996
  RETURN_TOKEN_WITH_IDENT(T_ENUM);
7234
996
}
7235
0
#line 7236 "Zend/zend_language_scanner.c"
7236
75
yy584:
7237
75
    YYDEBUG(584, *YYCURSOR);
7238
75
    yyaccept = 53;
7239
75
    yych = *(YYMARKER = ++YYCURSOR);
7240
75
    if (yych == 'X') goto yy661;
7241
75
    if (yych == 'x') goto yy661;
7242
60
    goto yy583;
7243
64
yy585:
7244
64
    YYDEBUG(585, *YYCURSOR);
7245
64
    yyaccept = 53;
7246
64
    yych = *(YYMARKER = ++YYCURSOR);
7247
64
    if (yych == 'M') goto yy662;
7248
61
    if (yych == 'm') goto yy662;
7249
14
    goto yy583;
7250
12.0k
yy586:
7251
12.0k
    YYDEBUG(586, *YYCURSOR);
7252
12.0k
    ++YYCURSOR;
7253
12.0k
    YYFILL(1);
7254
12.0k
    yych = *YYCURSOR;
7255
12.0k
    YYDEBUG(587, *YYCURSOR);
7256
12.0k
    if (yych <= '\n') {
7257
726
      if (yych <= 0x00) goto yy86;
7258
571
      if (yych <= '\t') goto yy586;
7259
455
      goto yy495;
7260
11.3k
    } else {
7261
11.3k
      if (yych == '\r') goto yy495;
7262
10.1k
      goto yy586;
7263
11.3k
    }
7264
2.32k
yy588:
7265
2.32k
    YYDEBUG(588, *YYCURSOR);
7266
2.32k
    ++YYCURSOR;
7267
2.32k
    YYFILL(1);
7268
2.32k
    yych = *YYCURSOR;
7269
2.32k
    YYDEBUG(589, *YYCURSOR);
7270
2.32k
    if (yych <= 'D') {
7271
1.23k
      if (yych <= 0x1F) {
7272
286
        if (yych <= '\t') {
7273
64
          if (yych <= 0x00) goto yy86;
7274
60
          if (yych <= 0x08) goto yy586;
7275
53
          goto yy588;
7276
222
        } else {
7277
222
          if (yych <= '\n') goto yy495;
7278
186
          if (yych == '\r') goto yy495;
7279
50
          goto yy586;
7280
186
        }
7281
945
      } else {
7282
945
        if (yych <= '#') {
7283
203
          if (yych <= ' ') goto yy588;
7284
156
          if (yych <= '"') goto yy586;
7285
148
          goto yy663;
7286
742
        } else {
7287
742
          if (yych == '/') goto yy664;
7288
114
          if (yych <= '@') goto yy586;
7289
7
          goto yy665;
7290
114
        }
7291
945
      }
7292
1.23k
    } else {
7293
1.09k
      if (yych <= '`') {
7294
63
        if (yych <= 'I') {
7295
30
          if (yych <= 'E') goto yy666;
7296
16
          if (yych <= 'H') goto yy665;
7297
13
          goto yy667;
7298
33
        } else {
7299
33
          if (yych <= 'Z') goto yy665;
7300
19
          if (yych == '_') goto yy665;
7301
5
          goto yy586;
7302
19
        }
7303
1.03k
      } else {
7304
1.03k
        if (yych <= 'h') {
7305
599
          if (yych == 'e') goto yy666;
7306
60
          goto yy665;
7307
599
        } else {
7308
436
          if (yych <= 'i') goto yy667;
7309
232
          if (yych <= 'z') goto yy665;
7310
122
          if (yych <= 0x7F) goto yy586;
7311
74
          goto yy665;
7312
122
        }
7313
1.03k
      }
7314
1.09k
    }
7315
5.27k
yy590:
7316
5.27k
    YYDEBUG(590, *YYCURSOR);
7317
5.27k
    ++YYCURSOR;
7318
5.27k
    YYFILL(1);
7319
5.27k
    yych = *YYCURSOR;
7320
5.27k
    YYDEBUG(591, *YYCURSOR);
7321
5.27k
    if (yych <= 0x00) goto yy86;
7322
5.06k
    if (yych == '*') goto yy668;
7323
4.76k
    goto yy590;
7324
4.76k
yy592:
7325
304
    YYDEBUG(592, *YYCURSOR);
7326
304
    yyaccept = 4;
7327
304
    yych = *(YYMARKER = ++YYCURSOR);
7328
304
    if (yych == 'S') goto yy670;
7329
300
    if (yych == 's') goto yy670;
7330
13
    goto yy48;
7331
40
yy593:
7332
40
    YYDEBUG(593, *YYCURSOR);
7333
40
    yyaccept = 4;
7334
40
    yych = *(YYMARKER = ++YYCURSOR);
7335
40
    if (yych == 'Y') goto yy672;
7336
40
    if (yych == 'y') goto yy672;
7337
0
    goto yy48;
7338
212
yy594:
7339
212
    YYDEBUG(594, *YYCURSOR);
7340
212
    yyaccept = 4;
7341
212
    yych = *(YYMARKER = ++YYCURSOR);
7342
212
    if (yych == 'H') goto yy674;
7343
211
    if (yych == 'h') goto yy674;
7344
4
    goto yy48;
7345
1.70k
yy595:
7346
1.70k
    YYDEBUG(595, *YYCURSOR);
7347
1.70k
    yyaccept = 4;
7348
1.70k
    yych = *(YYMARKER = ++YYCURSOR);
7349
1.70k
    if (yych == 'O') goto yy676;
7350
1.68k
    if (yych == 'o') goto yy676;
7351
3
    goto yy48;
7352
65
yy596:
7353
65
    YYDEBUG(596, *YYCURSOR);
7354
65
    yyaccept = 54;
7355
65
    yych = *(YYMARKER = ++YYCURSOR);
7356
65
    if (yybm[256+yych] & 128) {
7357
26
      goto yy47;
7358
26
    }
7359
39
    if (yych == '\\') goto yy164;
7360
39
yy597:
7361
39
    YYDEBUG(597, *YYCURSOR);
7362
39
    yyleng = YYCURSOR - SCNG(yy_text);
7363
39
#line 1749 "Zend/zend_language_scanner.l"
7364
39
    {
7365
39
  RETURN_TOKEN_WITH_IDENT(T_GLOBAL);
7366
39
}
7367
0
#line 7368 "Zend/zend_language_scanner.c"
7368
200
yy598:
7369
200
    YYDEBUG(598, *YYCURSOR);
7370
200
    yyaccept = 4;
7371
200
    yych = *(YYMARKER = ++YYCURSOR);
7372
200
    if (yych == 'E') goto yy677;
7373
151
    if (yych == 'e') goto yy677;
7374
45
    goto yy48;
7375
51
yy599:
7376
51
    YYDEBUG(599, *YYCURSOR);
7377
51
    yyaccept = 4;
7378
51
    yych = *(YYMARKER = ++YYCURSOR);
7379
51
    if (yych == 'E') goto yy678;
7380
51
    if (yych == 'e') goto yy678;
7381
7
    goto yy48;
7382
24
yy600:
7383
24
    YYDEBUG(600, *YYCURSOR);
7384
24
    yyaccept = 4;
7385
24
    yych = *(YYMARKER = ++YYCURSOR);
7386
24
    if (yych == 'C') goto yy680;
7387
24
    if (yych == 'c') goto yy680;
7388
0
    goto yy48;
7389
15
yy601:
7390
15
    YYDEBUG(601, *YYCURSOR);
7391
15
    yyaccept = 4;
7392
15
    yych = *(YYMARKER = ++YYCURSOR);
7393
15
    if (yych == 'D') goto yy681;
7394
15
    if (yych == 'd') goto yy681;
7395
0
    goto yy48;
7396
222
yy602:
7397
222
    YYDEBUG(602, *YYCURSOR);
7398
222
    yyaccept = 4;
7399
222
    yych = *(YYMARKER = ++YYCURSOR);
7400
222
    if (yych == 'A') goto yy682;
7401
219
    if (yych == 'a') goto yy682;
7402
12
    goto yy48;
7403
292
yy603:
7404
292
    YYDEBUG(603, *YYCURSOR);
7405
292
    yyaccept = 4;
7406
292
    yych = *(YYMARKER = ++YYCURSOR);
7407
292
    if (yych == 'A') goto yy683;
7408
285
    if (yych == 'a') goto yy683;
7409
3
    goto yy48;
7410
528
yy604:
7411
528
    YYDEBUG(604, *YYCURSOR);
7412
528
    yyaccept = 4;
7413
528
    yych = *(YYMARKER = ++YYCURSOR);
7414
528
    if (yych == 'E') goto yy684;
7415
528
    if (yych == 'e') goto yy684;
7416
4
    goto yy48;
7417
110
yy605:
7418
110
    YYDEBUG(605, *YYCURSOR);
7419
110
    yyaccept = 4;
7420
110
    yych = *(YYMARKER = ++YYCURSOR);
7421
110
    if (yych == 'T') goto yy686;
7422
110
    if (yych == 't') goto yy686;
7423
10
    goto yy48;
7424
876
yy606:
7425
876
    YYDEBUG(606, *YYCURSOR);
7426
876
    yyaccept = 55;
7427
876
    yych = *(YYMARKER = ++YYCURSOR);
7428
876
    if (yybm[256+yych] & 128) {
7429
23
      goto yy47;
7430
23
    }
7431
853
    if (yych == '(') goto yy687;
7432
842
    if (yych == '\\') goto yy164;
7433
846
yy607:
7434
846
    YYDEBUG(607, *YYCURSOR);
7435
846
    yyleng = YYCURSOR - SCNG(yy_text);
7436
846
#line 1797 "Zend/zend_language_scanner.l"
7437
846
    {
7438
846
  RETURN_TOKEN_WITH_IDENT(T_PUBLIC);
7439
846
}
7440
0
#line 7441 "Zend/zend_language_scanner.c"
7441
163
yy608:
7442
163
    YYDEBUG(608, *YYCURSOR);
7443
163
    yyaccept = 4;
7444
163
    yych = *(YYMARKER = ++YYCURSOR);
7445
163
    if (yych == 'L') goto yy688;
7446
163
    if (yych == 'l') goto yy688;
7447
7
    goto yy48;
7448
111
yy609:
7449
111
    YYDEBUG(609, *YYCURSOR);
7450
111
    yyaccept = 4;
7451
111
    yych = *(YYMARKER = ++YYCURSOR);
7452
111
    if (yych == 'E') goto yy689;
7453
108
    if (yych == 'e') goto yy689;
7454
13
    goto yy48;
7455
372
yy610:
7456
372
    YYDEBUG(610, *YYCURSOR);
7457
372
    yyaccept = 56;
7458
372
    yych = *(YYMARKER = ++YYCURSOR);
7459
372
    if (yybm[256+yych] & 128) {
7460
53
      goto yy47;
7461
53
    }
7462
319
    if (yych == '\\') goto yy164;
7463
319
yy611:
7464
319
    YYDEBUG(611, *YYCURSOR);
7465
319
    yyleng = YYCURSOR - SCNG(yy_text);
7466
319
#line 1418 "Zend/zend_language_scanner.l"
7467
319
    {
7468
319
  RETURN_TOKEN_WITH_IDENT(T_RETURN);
7469
319
}
7470
0
#line 7471 "Zend/zend_language_scanner.c"
7471
251
yy612:
7472
251
    YYDEBUG(612, *YYCURSOR);
7473
251
    yyaccept = 57;
7474
251
    yych = *(YYMARKER = ++YYCURSOR);
7475
251
    if (yybm[256+yych] & 128) {
7476
7
      goto yy47;
7477
7
    }
7478
244
    if (yych == '\\') goto yy164;
7479
244
yy613:
7480
244
    YYDEBUG(613, *YYCURSOR);
7481
244
    yyleng = YYCURSOR - SCNG(yy_text);
7482
244
#line 1765 "Zend/zend_language_scanner.l"
7483
244
    {
7484
244
  RETURN_TOKEN_WITH_IDENT(T_STATIC);
7485
244
}
7486
0
#line 7487 "Zend/zend_language_scanner.c"
7487
21
yy614:
7488
21
    YYDEBUG(614, *YYCURSOR);
7489
21
    yyaccept = 58;
7490
21
    yych = *(YYMARKER = ++YYCURSOR);
7491
21
    if (yybm[256+yych] & 128) {
7492
0
      goto yy47;
7493
0
    }
7494
21
    if (yych == '\\') goto yy164;
7495
21
yy615:
7496
21
    YYDEBUG(615, *YYCURSOR);
7497
21
    yyleng = YYCURSOR - SCNG(yy_text);
7498
21
#line 1513 "Zend/zend_language_scanner.l"
7499
21
    {
7500
21
  RETURN_TOKEN_WITH_IDENT(T_SWITCH);
7501
21
}
7502
0
#line 7503 "Zend/zend_language_scanner.c"
7503
2.02k
yy616:
7504
2.02k
    YYDEBUG(616, *YYCURSOR);
7505
2.02k
    ++YYCURSOR;
7506
2.02k
    YYFILL(5);
7507
2.02k
    yych = *YYCURSOR;
7508
2.02k
    YYDEBUG(617, *YYCURSOR);
7509
2.02k
    if (yych <= '"') {
7510
408
      if (yych <= '\f') {
7511
158
        if (yych <= 0x08) goto yy86;
7512
150
        if (yych <= '\n') goto yy616;
7513
8
        goto yy86;
7514
250
      } else {
7515
250
        if (yych <= '\r') goto yy616;
7516
50
        if (yych == ' ') goto yy616;
7517
8
        goto yy86;
7518
50
      }
7519
1.61k
    } else {
7520
1.61k
      if (yych <= 'E') {
7521
1.31k
        if (yych <= '#') goto yy618;
7522
176
        if (yych == '/') goto yy619;
7523
134
        goto yy86;
7524
302
      } else {
7525
302
        if (yych <= 'F') goto yy691;
7526
273
        if (yych == 'f') goto yy691;
7527
208
        goto yy86;
7528
273
      }
7529
1.61k
    }
7530
1.83k
yy618:
7531
1.83k
    YYDEBUG(618, *YYCURSOR);
7532
1.83k
    ++YYCURSOR;
7533
1.83k
    YYFILL(1);
7534
1.83k
    yych = *YYCURSOR;
7535
1.83k
    if (yych <= '\f') {
7536
1.00k
      if (yych <= 0x00) goto yy86;
7537
1.00k
      if (yych == '\n') goto yy694;
7538
5
      goto yy692;
7539
1.00k
    } else {
7540
834
      if (yych <= '\r') goto yy694;
7541
549
      if (yych == '[') goto yy86;
7542
545
      goto yy692;
7543
549
    }
7544
51
yy619:
7545
51
    YYDEBUG(619, *YYCURSOR);
7546
51
    ++YYCURSOR;
7547
51
    YYFILL(1);
7548
51
    yych = *YYCURSOR;
7549
51
    if (yych == '*') goto yy696;
7550
26
    if (yych == '/') goto yy692;
7551
17
    goto yy86;
7552
67
yy620:
7553
67
    YYDEBUG(620, *YYCURSOR);
7554
67
    yyaccept = 4;
7555
67
    yych = *(YYMARKER = ++YYCURSOR);
7556
67
    if (yych == 'S') goto yy698;
7557
15
    if (yych == 's') goto yy698;
7558
15
    goto yy48;
7559
41
yy621:
7560
41
    YYDEBUG(621, *YYCURSOR);
7561
41
    yyaccept = 4;
7562
41
    yych = *(YYMARKER = ++YYCURSOR);
7563
41
    if (yych == '_') goto yy699;
7564
1
    goto yy48;
7565
43
yy622:
7566
43
    YYDEBUG(622, *YYCURSOR);
7567
43
    yyaccept = 4;
7568
43
    yych = *(YYMARKER = ++YYCURSOR);
7569
43
    if (yych == '_') goto yy701;
7570
0
    goto yy48;
7571
16
yy623:
7572
16
    YYDEBUG(623, *YYCURSOR);
7573
16
    yyaccept = 4;
7574
16
    yych = *(YYMARKER = ++YYCURSOR);
7575
16
    if (yych == 'T') goto yy702;
7576
5
    if (yych == 't') goto yy702;
7577
3
    goto yy48;
7578
42
yy624:
7579
42
    YYDEBUG(624, *YYCURSOR);
7580
42
    yyaccept = 4;
7581
42
    yych = *(YYMARKER = ++YYCURSOR);
7582
42
    if (yych == '_') goto yy703;
7583
2
    goto yy48;
7584
12
yy625:
7585
12
    YYDEBUG(625, *YYCURSOR);
7586
12
    yyaccept = 4;
7587
12
    yych = *(YYMARKER = ++YYCURSOR);
7588
12
    if (yych == '_') goto yy704;
7589
0
    goto yy48;
7590
27
yy626:
7591
27
    YYDEBUG(626, *YYCURSOR);
7592
27
    yyaccept = 4;
7593
27
    yych = *(YYMARKER = ++YYCURSOR);
7594
27
    if (yych == 'O') goto yy705;
7595
4
    if (yych == 'o') goto yy705;
7596
1
    goto yy48;
7597
56
yy627:
7598
56
    YYDEBUG(627, *YYCURSOR);
7599
56
    yyaccept = 4;
7600
56
    yych = *(YYMARKER = ++YYCURSOR);
7601
56
    if (yych == 'S') goto yy706;
7602
16
    if (yych == 's') goto yy706;
7603
11
    goto yy48;
7604
30
yy628:
7605
30
    YYDEBUG(628, *YYCURSOR);
7606
30
    yyaccept = 4;
7607
30
    yych = *(YYMARKER = ++YYCURSOR);
7608
30
    if (yych == 'E') goto yy707;
7609
1
    if (yych == 'e') goto yy707;
7610
1
    goto yy48;
7611
19
yy629:
7612
19
    YYDEBUG(629, *YYCURSOR);
7613
19
    yyaccept = 4;
7614
19
    yych = *(YYMARKER = ++YYCURSOR);
7615
19
    if (yych == 'T') goto yy708;
7616
14
    if (yych == 't') goto yy708;
7617
3
    goto yy48;
7618
313
yy630:
7619
313
    YYDEBUG(630, *YYCURSOR);
7620
313
    ++YYCURSOR;
7621
313
    YYFILL(1);
7622
313
    yych = *YYCURSOR;
7623
313
    if (yych <= '\r') {
7624
235
      if (yych <= '\t') {
7625
16
        if (yych <= 0x00) goto yy86;
7626
16
        goto yy443;
7627
219
      } else {
7628
219
        if (yych <= '\n') goto yy709;
7629
42
        if (yych <= '\f') goto yy443;
7630
39
        goto yy709;
7631
42
      }
7632
235
    } else {
7633
78
      if (yych <= '*') {
7634
13
        if (yych <= ')') goto yy443;
7635
6
        goto yy547;
7636
65
      } else {
7637
65
        if (yych == '[') goto yy230;
7638
56
        goto yy443;
7639
65
      }
7640
78
    }
7641
37
yy631:
7642
37
    YYDEBUG(631, *YYCURSOR);
7643
37
    yyaccept = 26;
7644
37
    YYMARKER = ++YYCURSOR;
7645
37
    YYFILL(1);
7646
37
    yych = *YYCURSOR;
7647
37
    if (yybm[0+yych] & 4) {
7648
27
      goto yy230;
7649
27
    }
7650
10
    if (yych <= 0x00) goto yy89;
7651
4
    goto yy355;
7652
4
yy632:
7653
0
    YYDEBUG(632, *YYCURSOR);
7654
0
    ++YYCURSOR;
7655
0
    YYFILL(1);
7656
0
    yych = *YYCURSOR;
7657
0
    if (yybm[0+yych] & 64) {
7658
0
      goto yy355;
7659
0
    }
7660
0
    if (yych <= 0x00) goto yy86;
7661
0
    if (yych == '.') goto yy711;
7662
0
    goto yy230;
7663
58
yy633:
7664
58
    YYDEBUG(633, *YYCURSOR);
7665
58
    ++YYCURSOR;
7666
58
    YYFILL(1);
7667
58
    yych = *YYCURSOR;
7668
58
    if (yych <= '*') {
7669
35
      if (yych <= 0x00) goto yy86;
7670
29
      if (yych <= ')') goto yy230;
7671
22
      goto yy712;
7672
29
    } else {
7673
23
      if (yych == '/') goto yy443;
7674
7
      goto yy230;
7675
23
    }
7676
14
yy634:
7677
14
    YYDEBUG(634, *YYCURSOR);
7678
14
    ++YYCURSOR;
7679
14
    YYDEBUG(635, *YYCURSOR);
7680
14
    yyleng = YYCURSOR - SCNG(yy_text);
7681
14
#line 1687 "Zend/zend_language_scanner.l"
7682
14
    {
7683
14
  RETURN_TOKEN(T_ARRAY_CAST);
7684
14
}
7685
0
#line 7686 "Zend/zend_language_scanner.c"
7686
5
yy636:
7687
5
    YYDEBUG(636, *YYCURSOR);
7688
5
    ++YYCURSOR;
7689
5
    YYFILL(1);
7690
5
    yych = *YYCURSOR;
7691
5
    YYDEBUG(637, *YYCURSOR);
7692
5
    if (yych <= 0x1F) {
7693
0
      if (yych == '\t') goto yy636;
7694
0
      goto yy86;
7695
5
    } else {
7696
5
      if (yych <= ' ') goto yy636;
7697
5
      if (yych == ')') goto yy713;
7698
0
      goto yy86;
7699
5
    }
7700
11
yy638:
7701
11
    YYDEBUG(638, *YYCURSOR);
7702
11
    yych = *++YYCURSOR;
7703
11
    if (yych == 'N') goto yy715;
7704
10
    if (yych == 'n') goto yy715;
7705
3
    goto yy86;
7706
7
yy639:
7707
7
    YYDEBUG(639, *YYCURSOR);
7708
7
    ++YYCURSOR;
7709
7
    YYFILL(1);
7710
7
    yych = *YYCURSOR;
7711
7
    YYDEBUG(640, *YYCURSOR);
7712
7
    if (yych <= 0x1F) {
7713
2
      if (yych == '\t') goto yy639;
7714
0
      goto yy86;
7715
5
    } else {
7716
5
      if (yych <= ' ') goto yy639;
7717
5
      if (yych == ')') goto yy717;
7718
2
      goto yy86;
7719
5
    }
7720
8
yy641:
7721
8
    YYDEBUG(641, *YYCURSOR);
7722
8
    ++YYCURSOR;
7723
8
    YYDEBUG(642, *YYCURSOR);
7724
8
    yyleng = YYCURSOR - SCNG(yy_text);
7725
8
#line 1651 "Zend/zend_language_scanner.l"
7726
8
    {
7727
8
  RETURN_TOKEN(T_DOUBLE_CAST);
7728
8
}
7729
0
#line 7730 "Zend/zend_language_scanner.c"
7730
14
yy643:
7731
14
    YYDEBUG(643, *YYCURSOR);
7732
14
    yych = *++YYCURSOR;
7733
14
    if (yych == 'R') goto yy719;
7734
14
    if (yych == 'r') goto yy719;
7735
4
    goto yy86;
7736
66
yy644:
7737
66
    YYDEBUG(644, *YYCURSOR);
7738
66
    ++YYCURSOR;
7739
66
    YYFILL(1);
7740
66
    yych = *YYCURSOR;
7741
66
    YYDEBUG(645, *YYCURSOR);
7742
66
    if (yych <= 0x1F) {
7743
15
      if (yych == '\t') goto yy644;
7744
15
      goto yy86;
7745
51
    } else {
7746
51
      if (yych <= ' ') goto yy644;
7747
39
      if (yych == ')') goto yy721;
7748
6
      goto yy86;
7749
39
    }
7750
92
yy646:
7751
92
    YYDEBUG(646, *YYCURSOR);
7752
92
    ++YYCURSOR;
7753
92
    YYFILL(1);
7754
92
    yych = *YYCURSOR;
7755
92
    YYDEBUG(647, *YYCURSOR);
7756
92
    if (yych <= 0x1F) {
7757
10
      if (yych == '\t') goto yy646;
7758
5
      goto yy86;
7759
82
    } else {
7760
82
      if (yych <= ' ') goto yy646;
7761
58
      if (yych == ')') goto yy723;
7762
30
      goto yy86;
7763
58
    }
7764
11
yy648:
7765
11
    YYDEBUG(648, *YYCURSOR);
7766
11
    ++YYCURSOR;
7767
11
    YYDEBUG(649, *YYCURSOR);
7768
11
    yyleng = YYCURSOR - SCNG(yy_text);
7769
11
#line 1709 "Zend/zend_language_scanner.l"
7770
11
    {
7771
11
  RETURN_TOKEN(T_UNSET_CAST);
7772
11
}
7773
0
#line 7774 "Zend/zend_language_scanner.c"
7774
108
yy650:
7775
108
    YYDEBUG(650, *YYCURSOR);
7776
108
    yyaccept = 4;
7777
108
    yych = *(YYMARKER = ++YYCURSOR);
7778
108
    if (yych == 'T') goto yy725;
7779
108
    if (yych == 't') goto yy725;
7780
0
    goto yy48;
7781
21
yy651:
7782
21
    YYDEBUG(651, *YYCURSOR);
7783
21
    yyaccept = 4;
7784
21
    yych = *(YYMARKER = ++YYCURSOR);
7785
21
    if (yych == 'E') goto yy727;
7786
20
    if (yych == 'e') goto yy727;
7787
0
    goto yy48;
7788
2
yy652:
7789
2
    YYDEBUG(652, *YYCURSOR);
7790
2
    yyaccept = 4;
7791
2
    yych = *(YYMARKER = ++YYCURSOR);
7792
2
    if (yych == 'E') goto yy729;
7793
2
    if (yych == 'e') goto yy729;
7794
0
    goto yy48;
7795
81
yy653:
7796
81
    YYDEBUG(653, *YYCURSOR);
7797
81
    yyaccept = 59;
7798
81
    yych = *(YYMARKER = ++YYCURSOR);
7799
81
    if (yybm[256+yych] & 128) {
7800
2
      goto yy47;
7801
2
    }
7802
79
    if (yych == '\\') goto yy164;
7803
79
yy654:
7804
79
    YYDEBUG(654, *YYCURSOR);
7805
79
    yyleng = YYCURSOR - SCNG(yy_text);
7806
79
#line 1497 "Zend/zend_language_scanner.l"
7807
79
    {
7808
79
  RETURN_TOKEN_WITH_IDENT(T_DECLARE);
7809
79
}
7810
0
#line 7811 "Zend/zend_language_scanner.c"
7811
12
yy655:
7812
12
    YYDEBUG(655, *YYCURSOR);
7813
12
    yyaccept = 60;
7814
12
    yych = *(YYMARKER = ++YYCURSOR);
7815
12
    if (yybm[256+yych] & 128) {
7816
0
      goto yy47;
7817
0
    }
7818
12
    if (yych == '\\') goto yy164;
7819
12
yy656:
7820
12
    YYDEBUG(656, *YYCURSOR);
7821
12
    yyleng = YYCURSOR - SCNG(yy_text);
7822
12
#line 1529 "Zend/zend_language_scanner.l"
7823
12
    {
7824
12
  RETURN_TOKEN_WITH_IDENT(T_DEFAULT);
7825
12
}
7826
0
#line 7827 "Zend/zend_language_scanner.c"
7827
1
yy657:
7828
1
    YYDEBUG(657, *YYCURSOR);
7829
1
    yyaccept = 4;
7830
1
    yych = *(YYMARKER = ++YYCURSOR);
7831
1
    if (yych == 'A') goto yy731;
7832
0
    if (yych == 'a') goto yy731;
7833
0
    goto yy48;
7834
0
yy658:
7835
0
    YYDEBUG(658, *YYCURSOR);
7836
0
    yyaccept = 4;
7837
0
    yych = *(YYMARKER = ++YYCURSOR);
7838
0
    if (yych == 'A') goto yy732;
7839
0
    if (yych == 'a') goto yy732;
7840
0
    goto yy48;
7841
0
yy659:
7842
0
    YYDEBUG(659, *YYCURSOR);
7843
0
    yyaccept = 4;
7844
0
    yych = *(YYMARKER = ++YYCURSOR);
7845
0
    if (yych == 'C') goto yy733;
7846
0
    if (yych == 'c') goto yy733;
7847
0
    goto yy48;
7848
2
yy660:
7849
2
    YYDEBUG(660, *YYCURSOR);
7850
2
    yyaccept = 4;
7851
2
    yych = *(YYMARKER = ++YYCURSOR);
7852
2
    if (yych == 'E') goto yy734;
7853
2
    if (yych == 'e') goto yy734;
7854
2
    goto yy48;
7855
15
yy661:
7856
15
    YYDEBUG(661, *YYCURSOR);
7857
15
    yych = *++YYCURSOR;
7858
15
    if (yych == 'T') goto yy736;
7859
15
    if (yych == 't') goto yy736;
7860
5
    goto yy86;
7861
50
yy662:
7862
50
    YYDEBUG(662, *YYCURSOR);
7863
50
    yych = *++YYCURSOR;
7864
50
    if (yych == 'P') goto yy737;
7865
50
    if (yych == 'p') goto yy737;
7866
14
    goto yy86;
7867
148
yy663:
7868
148
    YYDEBUG(663, *YYCURSOR);
7869
148
    ++YYCURSOR;
7870
148
    YYFILL(1);
7871
148
    yych = *YYCURSOR;
7872
148
    if (yych <= '\n') {
7873
81
      if (yych <= 0x00) goto yy86;
7874
70
      if (yych <= '\t') goto yy586;
7875
65
      goto yy588;
7876
70
    } else {
7877
67
      if (yych == '\r') goto yy588;
7878
18
      goto yy586;
7879
67
    }
7880
628
yy664:
7881
628
    YYDEBUG(664, *YYCURSOR);
7882
628
    ++YYCURSOR;
7883
628
    YYFILL(1);
7884
628
    yych = *YYCURSOR;
7885
628
    if (yych <= '\f') {
7886
13
      if (yych <= 0x00) goto yy86;
7887
1
      if (yych == '\n') goto yy495;
7888
0
      goto yy586;
7889
615
    } else {
7890
615
      if (yych <= '\r') goto yy495;
7891
607
      if (yych == '*') goto yy738;
7892
65
      goto yy586;
7893
607
    }
7894
282
yy665:
7895
282
    YYDEBUG(665, *YYCURSOR);
7896
282
    yyaccept = 53;
7897
282
    YYMARKER = ++YYCURSOR;
7898
282
    YYFILL(1);
7899
282
    yych = *YYCURSOR;
7900
282
    if (yych <= '\n') {
7901
34
      if (yych <= 0x00) goto yy583;
7902
28
      if (yych <= '\t') goto yy586;
7903
21
      goto yy495;
7904
248
    } else {
7905
248
      if (yych == '\r') goto yy495;
7906
241
      goto yy586;
7907
248
    }
7908
553
yy666:
7909
553
    YYDEBUG(666, *YYCURSOR);
7910
553
    yyaccept = 53;
7911
553
    YYMARKER = ++YYCURSOR;
7912
553
    YYFILL(1);
7913
553
    yych = *YYCURSOR;
7914
553
    if (yych <= '\r') {
7915
34
      if (yych <= '\t') {
7916
0
        if (yych <= 0x00) goto yy583;
7917
0
        goto yy586;
7918
34
      } else {
7919
34
        if (yych <= '\n') goto yy495;
7920
19
        if (yych <= '\f') goto yy586;
7921
17
        goto yy495;
7922
19
      }
7923
519
    } else {
7924
519
      if (yych <= 'X') {
7925
49
        if (yych <= 'W') goto yy586;
7926
2
        goto yy740;
7927
470
      } else {
7928
470
        if (yych == 'x') goto yy740;
7929
259
        goto yy586;
7930
470
      }
7931
519
    }
7932
217
yy667:
7933
217
    YYDEBUG(667, *YYCURSOR);
7934
217
    yyaccept = 53;
7935
217
    YYMARKER = ++YYCURSOR;
7936
217
    YYFILL(1);
7937
217
    yych = *YYCURSOR;
7938
217
    if (yych <= '\r') {
7939
12
      if (yych <= '\t') {
7940
3
        if (yych <= 0x00) goto yy583;
7941
3
        goto yy586;
7942
9
      } else {
7943
9
        if (yych <= '\n') goto yy495;
7944
3
        if (yych <= '\f') goto yy586;
7945
3
        goto yy495;
7946
3
      }
7947
205
    } else {
7948
205
      if (yych <= 'M') {
7949
150
        if (yych <= 'L') goto yy586;
7950
137
        goto yy741;
7951
150
      } else {
7952
55
        if (yych == 'm') goto yy741;
7953
12
        goto yy586;
7954
55
      }
7955
205
    }
7956
371
yy668:
7957
371
    YYDEBUG(668, *YYCURSOR);
7958
371
    ++YYCURSOR;
7959
371
    YYFILL(1);
7960
371
    yych = *YYCURSOR;
7961
371
    YYDEBUG(669, *YYCURSOR);
7962
371
    if (yych <= '*') {
7963
133
      if (yych <= 0x00) goto yy86;
7964
119
      if (yych <= ')') goto yy590;
7965
41
      goto yy668;
7966
238
    } else {
7967
238
      if (yych == '/') goto yy495;
7968
65
      goto yy590;
7969
238
    }
7970
291
yy670:
7971
291
    YYDEBUG(670, *YYCURSOR);
7972
291
    yyaccept = 61;
7973
291
    yych = *(YYMARKER = ++YYCURSOR);
7974
291
    if (yybm[256+yych] & 128) {
7975
7
      goto yy47;
7976
7
    }
7977
284
    if (yych == '\\') goto yy164;
7978
284
yy671:
7979
284
    YYDEBUG(671, *YYCURSOR);
7980
284
    yyleng = YYCURSOR - SCNG(yy_text);
7981
284
#line 1578 "Zend/zend_language_scanner.l"
7982
284
    {
7983
284
  RETURN_TOKEN_WITH_IDENT(T_EXTENDS);
7984
284
}
7985
0
#line 7986 "Zend/zend_language_scanner.c"
7986
40
yy672:
7987
40
    YYDEBUG(672, *YYCURSOR);
7988
40
    yyaccept = 62;
7989
40
    yych = *(YYMARKER = ++YYCURSOR);
7990
40
    if (yybm[256+yych] & 128) {
7991
1
      goto yy47;
7992
1
    }
7993
39
    if (yych == '\\') goto yy164;
7994
39
yy673:
7995
39
    YYDEBUG(673, *YYCURSOR);
7996
39
    yyleng = YYCURSOR - SCNG(yy_text);
7997
39
#line 1445 "Zend/zend_language_scanner.l"
7998
39
    {
7999
39
  RETURN_TOKEN_WITH_IDENT(T_FINALLY);
8000
39
}
8001
0
#line 8002 "Zend/zend_language_scanner.c"
8002
208
yy674:
8003
208
    YYDEBUG(674, *YYCURSOR);
8004
208
    yyaccept = 63;
8005
208
    yych = *(YYMARKER = ++YYCURSOR);
8006
208
    if (yybm[256+yych] & 128) {
8007
0
      goto yy47;
8008
0
    }
8009
208
    if (yych == '\\') goto yy164;
8010
208
yy675:
8011
208
    YYDEBUG(675, *YYCURSOR);
8012
208
    yyleng = YYCURSOR - SCNG(yy_text);
8013
208
#line 1489 "Zend/zend_language_scanner.l"
8014
208
    {
8015
208
  RETURN_TOKEN_WITH_IDENT(T_FOREACH);
8016
208
}
8017
0
#line 8018 "Zend/zend_language_scanner.c"
8018
1.70k
yy676:
8019
1.70k
    YYDEBUG(676, *YYCURSOR);
8020
1.70k
    yyaccept = 4;
8021
1.70k
    yych = *(YYMARKER = ++YYCURSOR);
8022
1.70k
    if (yych == 'N') goto yy742;
8023
1.69k
    if (yych == 'n') goto yy742;
8024
7
    goto yy48;
8025
155
yy677:
8026
155
    YYDEBUG(677, *YYCURSOR);
8027
155
    yyaccept = 4;
8028
155
    yych = *(YYMARKER = ++YYCURSOR);
8029
155
    if (yych == 'N') goto yy744;
8030
112
    if (yych == 'n') goto yy744;
8031
22
    goto yy48;
8032
44
yy678:
8033
44
    YYDEBUG(678, *YYCURSOR);
8034
44
    yyaccept = 64;
8035
44
    yych = *(YYMARKER = ++YYCURSOR);
8036
44
    if (yych <= '\\') {
8037
29
      if (yych <= '@') {
8038
27
        if (yych <= '/') goto yy679;
8039
1
        if (yych <= '9') goto yy47;
8040
2
      } else {
8041
2
        if (yych <= 'Z') goto yy47;
8042
1
        if (yych >= '\\') goto yy164;
8043
1
      }
8044
29
    } else {
8045
15
      if (yych <= '`') {
8046
4
        if (yych == '_') goto yy745;
8047
11
      } else {
8048
11
        if (yych <= 'z') goto yy47;
8049
7
        if (yych >= 0x80) goto yy47;
8050
7
      }
8051
15
    }
8052
34
yy679:
8053
34
    YYDEBUG(679, *YYCURSOR);
8054
34
    yyleng = YYCURSOR - SCNG(yy_text);
8055
34
#line 1721 "Zend/zend_language_scanner.l"
8056
34
    {
8057
34
  RETURN_TOKEN_WITH_IDENT(T_INCLUDE);
8058
34
}
8059
0
#line 8060 "Zend/zend_language_scanner.c"
8060
24
yy680:
8061
24
    YYDEBUG(680, *YYCURSOR);
8062
24
    yyaccept = 4;
8063
24
    yych = *(YYMARKER = ++YYCURSOR);
8064
24
    if (yych == 'E') goto yy746;
8065
24
    if (yych == 'e') goto yy746;
8066
0
    goto yy48;
8067
15
yy681:
8068
15
    YYDEBUG(681, *YYCURSOR);
8069
15
    yyaccept = 4;
8070
15
    yych = *(YYMARKER = ++YYCURSOR);
8071
15
    if (yych == 'O') goto yy747;
8072
15
    if (yych == 'o') goto yy747;
8073
0
    goto yy48;
8074
210
yy682:
8075
210
    YYDEBUG(682, *YYCURSOR);
8076
210
    yyaccept = 4;
8077
210
    yych = *(YYMARKER = ++YYCURSOR);
8078
210
    if (yych == 'C') goto yy748;
8079
198
    if (yych == 'c') goto yy748;
8080
5
    goto yy48;
8081
289
yy683:
8082
289
    YYDEBUG(683, *YYCURSOR);
8083
289
    yyaccept = 4;
8084
289
    yych = *(YYMARKER = ++YYCURSOR);
8085
289
    if (yych == 'C') goto yy749;
8086
289
    if (yych == 'c') goto yy749;
8087
13
    goto yy48;
8088
524
yy684:
8089
524
    YYDEBUG(684, *YYCURSOR);
8090
524
    yyaccept = 65;
8091
524
    yych = *(YYMARKER = ++YYCURSOR);
8092
524
    if (yybm[256+yych] & 128) {
8093
0
      goto yy47;
8094
0
    }
8095
524
    if (yych == '(') goto yy750;
8096
87
    if (yych == '\\') goto yy164;
8097
514
yy685:
8098
514
    YYDEBUG(685, *YYCURSOR);
8099
514
    yyleng = YYCURSOR - SCNG(yy_text);
8100
514
#line 1777 "Zend/zend_language_scanner.l"
8101
514
    {
8102
514
  RETURN_TOKEN_WITH_IDENT(T_PRIVATE);
8103
514
}
8104
0
#line 8105 "Zend/zend_language_scanner.c"
8105
100
yy686:
8106
100
    YYDEBUG(686, *YYCURSOR);
8107
100
    yyaccept = 4;
8108
100
    yych = *(YYMARKER = ++YYCURSOR);
8109
100
    if (yych == 'E') goto yy751;
8110
100
    if (yych == 'e') goto yy751;
8111
0
    goto yy48;
8112
11
yy687:
8113
11
    YYDEBUG(687, *YYCURSOR);
8114
11
    yych = *++YYCURSOR;
8115
11
    if (yych == 'S') goto yy752;
8116
11
    if (yych == 's') goto yy752;
8117
0
    goto yy86;
8118
156
yy688:
8119
156
    YYDEBUG(688, *YYCURSOR);
8120
156
    yyaccept = 4;
8121
156
    yych = *(YYMARKER = ++YYCURSOR);
8122
156
    if (yych == 'Y') goto yy753;
8123
156
    if (yych == 'y') goto yy753;
8124
105
    goto yy48;
8125
105
yy689:
8126
98
    YYDEBUG(689, *YYCURSOR);
8127
98
    yyaccept = 66;
8128
98
    yych = *(YYMARKER = ++YYCURSOR);
8129
98
    if (yych <= '\\') {
8130
68
      if (yych <= '@') {
8131
62
        if (yych <= '/') goto yy690;
8132
8
        if (yych <= '9') goto yy47;
8133
8
      } else {
8134
6
        if (yych <= 'Z') goto yy47;
8135
5
        if (yych >= '\\') goto yy164;
8136
5
      }
8137
68
    } else {
8138
30
      if (yych <= '`') {
8139
19
        if (yych == '_') goto yy755;
8140
19
      } else {
8141
11
        if (yych <= 'z') goto yy47;
8142
1
        if (yych >= 0x80) goto yy47;
8143
1
      }
8144
30
    }
8145
67
yy690:
8146
67
    YYDEBUG(690, *YYCURSOR);
8147
67
    yyleng = YYCURSOR - SCNG(yy_text);
8148
67
#line 1729 "Zend/zend_language_scanner.l"
8149
67
    {
8150
67
  RETURN_TOKEN_WITH_IDENT(T_REQUIRE);
8151
67
}
8152
0
#line 8153 "Zend/zend_language_scanner.c"
8153
94
yy691:
8154
94
    YYDEBUG(691, *YYCURSOR);
8155
94
    yych = *++YYCURSOR;
8156
94
    if (yych == 'R') goto yy756;
8157
69
    if (yych == 'r') goto yy756;
8158
10
    goto yy86;
8159
9.20k
yy692:
8160
9.20k
    YYDEBUG(692, *YYCURSOR);
8161
9.20k
    ++YYCURSOR;
8162
9.20k
    YYFILL(1);
8163
9.20k
    yych = *YYCURSOR;
8164
9.20k
    YYDEBUG(693, *YYCURSOR);
8165
9.20k
    if (yych <= '\n') {
8166
848
      if (yych <= 0x00) goto yy86;
8167
729
      if (yych <= '\t') goto yy692;
8168
657
      goto yy616;
8169
8.35k
    } else {
8170
8.35k
      if (yych == '\r') goto yy616;
8171
7.89k
      goto yy692;
8172
8.35k
    }
8173
1.40k
yy694:
8174
1.40k
    YYDEBUG(694, *YYCURSOR);
8175
1.40k
    ++YYCURSOR;
8176
1.40k
    YYFILL(1);
8177
1.40k
    yych = *YYCURSOR;
8178
1.40k
    YYDEBUG(695, *YYCURSOR);
8179
1.40k
    if (yych <= ' ') {
8180
112
      if (yych <= '\n') {
8181
65
        if (yych <= 0x00) goto yy86;
8182
48
        if (yych <= 0x08) goto yy692;
8183
40
        if (yych <= '\t') goto yy694;
8184
17
        goto yy616;
8185
47
      } else {
8186
47
        if (yych == '\r') goto yy616;
8187
25
        if (yych <= 0x1F) goto yy692;
8188
10
        goto yy694;
8189
25
      }
8190
1.29k
    } else {
8191
1.29k
      if (yych <= '/') {
8192
707
        if (yych == '#') goto yy757;
8193
641
        if (yych <= '.') goto yy692;
8194
557
        goto yy758;
8195
641
      } else {
8196
583
        if (yych <= 'F') {
8197
216
          if (yych <= 'E') goto yy692;
8198
77
          goto yy759;
8199
367
        } else {
8200
367
          if (yych == 'f') goto yy759;
8201
101
          goto yy692;
8202
367
        }
8203
583
      }
8204
1.29k
    }
8205
3.20k
yy696:
8206
3.20k
    YYDEBUG(696, *YYCURSOR);
8207
3.20k
    ++YYCURSOR;
8208
3.20k
    YYFILL(1);
8209
3.20k
    yych = *YYCURSOR;
8210
3.20k
    YYDEBUG(697, *YYCURSOR);
8211
3.20k
    if (yych <= 0x00) goto yy86;
8212
2.96k
    if (yych == '*') goto yy760;
8213
2.83k
    goto yy696;
8214
2.83k
yy698:
8215
52
    YYDEBUG(698, *YYCURSOR);
8216
52
    yyaccept = 4;
8217
52
    yych = *(YYMARKER = ++YYCURSOR);
8218
52
    if (yych == '_') goto yy762;
8219
3
    goto yy48;
8220
40
yy699:
8221
40
    YYDEBUG(699, *YYCURSOR);
8222
40
    yyaccept = 67;
8223
40
    yych = *(YYMARKER = ++YYCURSOR);
8224
40
    if (yybm[256+yych] & 128) {
8225
0
      goto yy47;
8226
0
    }
8227
40
    if (yych == '\\') goto yy164;
8228
40
yy700:
8229
40
    YYDEBUG(700, *YYCURSOR);
8230
40
    yyleng = YYCURSOR - SCNG(yy_text);
8231
40
#line 2280 "Zend/zend_language_scanner.l"
8232
40
    {
8233
40
  RETURN_TOKEN_WITH_IDENT(T_DIR);
8234
40
}
8235
0
#line 8236 "Zend/zend_language_scanner.c"
8236
43
yy701:
8237
43
    YYDEBUG(701, *YYCURSOR);
8238
43
    yyaccept = 4;
8239
43
    yych = *(YYMARKER = ++YYCURSOR);
8240
43
    if (yych == '_') goto yy763;
8241
0
    goto yy48;
8242
13
yy702:
8243
13
    YYDEBUG(702, *YYCURSOR);
8244
13
    yyaccept = 4;
8245
13
    yych = *(YYMARKER = ++YYCURSOR);
8246
13
    if (yych == 'I') goto yy765;
8247
2
    if (yych == 'i') goto yy765;
8248
0
    goto yy48;
8249
40
yy703:
8250
40
    YYDEBUG(703, *YYCURSOR);
8251
40
    yyaccept = 4;
8252
40
    yych = *(YYMARKER = ++YYCURSOR);
8253
40
    if (yych == 'C') goto yy766;
8254
12
    if (yych == 'c') goto yy766;
8255
3
    goto yy48;
8256
12
yy704:
8257
12
    YYDEBUG(704, *YYCURSOR);
8258
12
    yyaccept = 4;
8259
12
    yych = *(YYMARKER = ++YYCURSOR);
8260
12
    if (yych == '_') goto yy767;
8261
0
    goto yy48;
8262
26
yy705:
8263
26
    YYDEBUG(705, *YYCURSOR);
8264
26
    yyaccept = 4;
8265
26
    yych = *(YYMARKER = ++YYCURSOR);
8266
26
    if (yych == 'D') goto yy769;
8267
1
    if (yych == 'd') goto yy769;
8268
1
    goto yy48;
8269
45
yy706:
8270
45
    YYDEBUG(706, *YYCURSOR);
8271
45
    yyaccept = 4;
8272
45
    yych = *(YYMARKER = ++YYCURSOR);
8273
45
    if (yych == 'P') goto yy770;
8274
13
    if (yych == 'p') goto yy770;
8275
9
    goto yy48;
8276
29
yy707:
8277
29
    YYDEBUG(707, *YYCURSOR);
8278
29
    yyaccept = 4;
8279
29
    yych = *(YYMARKER = ++YYCURSOR);
8280
29
    if (yych == 'R') goto yy771;
8281
1
    if (yych == 'r') goto yy771;
8282
1
    goto yy48;
8283
16
yy708:
8284
16
    YYDEBUG(708, *YYCURSOR);
8285
16
    yyaccept = 4;
8286
16
    yych = *(YYMARKER = ++YYCURSOR);
8287
16
    if (yych == '_') goto yy772;
8288
12
    goto yy48;
8289
220
yy709:
8290
220
    YYDEBUG(709, *YYCURSOR);
8291
220
    ++YYCURSOR;
8292
220
    YYFILL(1);
8293
220
    yych = *YYCURSOR;
8294
220
    YYDEBUG(710, *YYCURSOR);
8295
220
    if (yych <= ' ') {
8296
20
      if (yych <= '\n') {
8297
11
        if (yych <= 0x00) goto yy86;
8298
5
        if (yych <= 0x08) goto yy443;
8299
5
        if (yych <= '\t') goto yy709;
8300
5
        goto yy545;
8301
9
      } else {
8302
9
        if (yych == '\r') goto yy545;
8303
2
        if (yych <= 0x1F) goto yy443;
8304
0
        goto yy709;
8305
2
      }
8306
200
    } else {
8307
200
      if (yych <= ')') {
8308
52
        if (yych <= '"') goto yy443;
8309
39
        if (yych <= '#') goto yy773;
8310
28
        if (yych <= '$') goto yy774;
8311
4
        goto yy443;
8312
148
      } else {
8313
148
        if (yych <= '-') {
8314
2
          if (yych <= '*') goto yy547;
8315
2
          goto yy443;
8316
146
        } else {
8317
146
          if (yych <= '.') goto yy775;
8318
128
          if (yych <= '/') goto yy776;
8319
71
          goto yy443;
8320
128
        }
8321
148
      }
8322
200
    }
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
22
yy712:
8335
22
    YYDEBUG(712, *YYCURSOR);
8336
22
    ++YYCURSOR;
8337
22
    YYFILL(1);
8338
22
    yych = *YYCURSOR;
8339
22
    if (yybm[0+yych] & 64) {
8340
0
      goto yy355;
8341
0
    }
8342
22
    if (yych <= 0x00) goto yy86;
8343
22
    if (yych == '/') goto yy545;
8344
7
    goto yy230;
8345
7
yy713:
8346
5
    YYDEBUG(713, *YYCURSOR);
8347
5
    ++YYCURSOR;
8348
5
    YYDEBUG(714, *YYCURSOR);
8349
5
    yyleng = YYCURSOR - SCNG(yy_text);
8350
5
#line 1677 "Zend/zend_language_scanner.l"
8351
5
    {
8352
5
  if (PARSER_MODE()) {
8353
5
    zend_error(E_DEPRECATED, "Non-canonical cast (binary) is deprecated, use the (string) cast instead");
8354
5
    if (EG(exception)) {
8355
0
      RETURN_TOKEN(T_ERROR);
8356
0
    }
8357
5
  }
8358
5
  RETURN_TOKEN(T_STRING_CAST);
8359
5
}
8360
0
#line 8361 "Zend/zend_language_scanner.c"
8361
8
yy715:
8362
8
    YYDEBUG(715, *YYCURSOR);
8363
8
    ++YYCURSOR;
8364
8
    YYFILL(1);
8365
8
    yych = *YYCURSOR;
8366
8
    YYDEBUG(716, *YYCURSOR);
8367
8
    if (yych <= 0x1F) {
8368
5
      if (yych == '\t') goto yy715;
8369
5
      goto yy86;
8370
5
    } else {
8371
3
      if (yych <= ' ') goto yy715;
8372
3
      if (yych == ')') goto yy777;
8373
2
      goto yy86;
8374
3
    }
8375
3
yy717:
8376
3
    YYDEBUG(717, *YYCURSOR);
8377
3
    ++YYCURSOR;
8378
3
    YYDEBUG(718, *YYCURSOR);
8379
3
    yyleng = YYCURSOR - SCNG(yy_text);
8380
3
#line 1655 "Zend/zend_language_scanner.l"
8381
3
    {
8382
3
  if (PARSER_MODE()) {
8383
3
    zend_error(E_DEPRECATED, "Non-canonical cast (double) is deprecated, use the (float) cast instead");
8384
3
    if (EG(exception)) {
8385
0
      RETURN_TOKEN(T_ERROR);
8386
0
    }
8387
3
  }
8388
3
  RETURN_TOKEN(T_DOUBLE_CAST);
8389
3
}
8390
0
#line 8391 "Zend/zend_language_scanner.c"
8391
17
yy719:
8392
17
    YYDEBUG(719, *YYCURSOR);
8393
17
    ++YYCURSOR;
8394
17
    YYFILL(1);
8395
17
    yych = *YYCURSOR;
8396
17
    YYDEBUG(720, *YYCURSOR);
8397
17
    if (yych <= 0x1F) {
8398
0
      if (yych == '\t') goto yy719;
8399
0
      goto yy86;
8400
17
    } else {
8401
17
      if (yych <= ' ') goto yy719;
8402
10
      if (yych == ')') goto yy779;
8403
7
      goto yy86;
8404
10
    }
8405
33
yy721:
8406
33
    YYDEBUG(721, *YYCURSOR);
8407
33
    ++YYCURSOR;
8408
33
    YYDEBUG(722, *YYCURSOR);
8409
33
    yyleng = YYCURSOR - SCNG(yy_text);
8410
33
#line 1691 "Zend/zend_language_scanner.l"
8411
33
    {
8412
33
  RETURN_TOKEN(T_OBJECT_CAST);
8413
33
}
8414
0
#line 8415 "Zend/zend_language_scanner.c"
8415
28
yy723:
8416
28
    YYDEBUG(723, *YYCURSOR);
8417
28
    ++YYCURSOR;
8418
28
    YYDEBUG(724, *YYCURSOR);
8419
28
    yyleng = YYCURSOR - SCNG(yy_text);
8420
28
#line 1673 "Zend/zend_language_scanner.l"
8421
28
    {
8422
28
  RETURN_TOKEN(T_STRING_CAST);
8423
28
}
8424
0
#line 8425 "Zend/zend_language_scanner.c"
8425
108
yy725:
8426
108
    YYDEBUG(725, *YYCURSOR);
8427
108
    yyaccept = 68;
8428
108
    yych = *(YYMARKER = ++YYCURSOR);
8429
108
    if (yybm[256+yych] & 128) {
8430
6
      goto yy47;
8431
6
    }
8432
102
    if (yych == '\\') goto yy164;
8433
102
yy726:
8434
102
    YYDEBUG(726, *YYCURSOR);
8435
102
    yyleng = YYCURSOR - SCNG(yy_text);
8436
102
#line 1769 "Zend/zend_language_scanner.l"
8437
102
    {
8438
102
  RETURN_TOKEN_WITH_IDENT(T_ABSTRACT);
8439
102
}
8440
0
#line 8441 "Zend/zend_language_scanner.c"
8441
21
yy727:
8442
21
    YYDEBUG(727, *YYCURSOR);
8443
21
    yyaccept = 69;
8444
21
    yych = *(YYMARKER = ++YYCURSOR);
8445
21
    if (yybm[256+yych] & 128) {
8446
1
      goto yy47;
8447
1
    }
8448
20
    if (yych == '\\') goto yy164;
8449
20
yy728:
8450
20
    YYDEBUG(728, *YYCURSOR);
8451
20
    yyleng = YYCURSOR - SCNG(yy_text);
8452
20
#line 1821 "Zend/zend_language_scanner.l"
8453
20
    {
8454
20
  RETURN_TOKEN_WITH_IDENT(T_CALLABLE);
8455
20
}
8456
0
#line 8457 "Zend/zend_language_scanner.c"
8457
2
yy729:
8458
2
    YYDEBUG(729, *YYCURSOR);
8459
2
    yyaccept = 70;
8460
2
    yych = *(YYMARKER = ++YYCURSOR);
8461
2
    if (yybm[256+yych] & 128) {
8462
0
      goto yy47;
8463
0
    }
8464
2
    if (yych == '\\') goto yy164;
8465
2
yy730:
8466
2
    YYDEBUG(730, *YYCURSOR);
8467
2
    yyleng = YYCURSOR - SCNG(yy_text);
8468
2
#line 1537 "Zend/zend_language_scanner.l"
8469
2
    {
8470
2
  RETURN_TOKEN_WITH_IDENT(T_CONTINUE);
8471
2
}
8472
0
#line 8473 "Zend/zend_language_scanner.c"
8473
1
yy731:
8474
1
    YYDEBUG(731, *YYCURSOR);
8475
1
    yyaccept = 4;
8476
1
    yych = *(YYMARKER = ++YYCURSOR);
8477
1
    if (yych == 'R') goto yy781;
8478
0
    if (yych == 'r') goto yy781;
8479
0
    goto yy48;
8480
0
yy732:
8481
0
    YYDEBUG(732, *YYCURSOR);
8482
0
    yyaccept = 4;
8483
0
    yych = *(YYMARKER = ++YYCURSOR);
8484
0
    if (yych == 'C') goto yy782;
8485
0
    if (yych == 'c') goto yy782;
8486
0
    goto yy48;
8487
0
yy733:
8488
0
    YYDEBUG(733, *YYCURSOR);
8489
0
    yyaccept = 4;
8490
0
    yych = *(YYMARKER = ++YYCURSOR);
8491
0
    if (yych == 'H') goto yy783;
8492
0
    if (yych == 'h') goto yy783;
8493
0
    goto yy48;
8494
0
yy734:
8495
0
    YYDEBUG(734, *YYCURSOR);
8496
0
    yyaccept = 71;
8497
0
    yych = *(YYMARKER = ++YYCURSOR);
8498
0
    if (yybm[256+yych] & 128) {
8499
0
      goto yy47;
8500
0
    }
8501
0
    if (yych == '\\') goto yy164;
8502
0
yy735:
8503
0
    YYDEBUG(735, *YYCURSOR);
8504
0
    yyleng = YYCURSOR - SCNG(yy_text);
8505
0
#line 1473 "Zend/zend_language_scanner.l"
8506
0
    {
8507
0
  RETURN_TOKEN_WITH_IDENT(T_ENDWHILE);
8508
0
}
8509
0
#line 8510 "Zend/zend_language_scanner.c"
8510
10
yy736:
8511
10
    YYDEBUG(736, *YYCURSOR);
8512
10
    yych = *++YYCURSOR;
8513
10
    if (yych == 'E') goto yy785;
8514
3
    if (yych == 'e') goto yy785;
8515
1
    goto yy86;
8516
36
yy737:
8517
36
    YYDEBUG(737, *YYCURSOR);
8518
36
    yych = *++YYCURSOR;
8519
36
    if (yych == 'L') goto yy786;
8520
35
    if (yych == 'l') goto yy786;
8521
0
    goto yy86;
8522
6.87k
yy738:
8523
6.87k
    YYDEBUG(738, *YYCURSOR);
8524
6.87k
    ++YYCURSOR;
8525
6.87k
    YYFILL(1);
8526
6.87k
    yych = *YYCURSOR;
8527
6.87k
    YYDEBUG(739, *YYCURSOR);
8528
6.87k
    if (yych <= '\f') {
8529
750
      if (yych <= 0x00) goto yy86;
8530
664
      if (yych == '\n') goto yy787;
8531
159
      goto yy738;
8532
6.12k
    } else {
8533
6.12k
      if (yych <= '\r') goto yy787;
8534
5.62k
      if (yych == '*') goto yy789;
8535
5.43k
      goto yy738;
8536
5.62k
    }
8537
213
yy740:
8538
213
    YYDEBUG(740, *YYCURSOR);
8539
213
    ++YYCURSOR;
8540
213
    YYFILL(1);
8541
213
    yych = *YYCURSOR;
8542
213
    if (yych <= '\r') {
8543
7
      if (yych <= '\t') {
8544
0
        if (yych <= 0x00) goto yy86;
8545
0
        goto yy586;
8546
7
      } else {
8547
7
        if (yych <= '\n') goto yy495;
8548
7
        if (yych <= '\f') goto yy586;
8549
1
        goto yy495;
8550
7
      }
8551
206
    } else {
8552
206
      if (yych <= 'T') {
8553
48
        if (yych <= 'S') goto yy586;
8554
2
        goto yy791;
8555
158
      } else {
8556
158
        if (yych == 't') goto yy791;
8557
93
        goto yy586;
8558
158
      }
8559
206
    }
8560
180
yy741:
8561
180
    YYDEBUG(741, *YYCURSOR);
8562
180
    ++YYCURSOR;
8563
180
    YYFILL(1);
8564
180
    yych = *YYCURSOR;
8565
180
    if (yych <= '\r') {
8566
13
      if (yych <= '\t') {
8567
8
        if (yych <= 0x00) goto yy86;
8568
4
        goto yy586;
8569
8
      } else {
8570
5
        if (yych <= '\n') goto yy495;
8571
0
        if (yych <= '\f') goto yy586;
8572
0
        goto yy495;
8573
0
      }
8574
167
    } else {
8575
167
      if (yych <= 'P') {
8576
9
        if (yych <= 'O') goto yy586;
8577
0
        goto yy792;
8578
158
      } else {
8579
158
        if (yych == 'p') goto yy792;
8580
6
        goto yy586;
8581
158
      }
8582
167
    }
8583
1.69k
yy742:
8584
1.69k
    YYDEBUG(742, *YYCURSOR);
8585
1.69k
    yyaccept = 72;
8586
1.69k
    yych = *(YYMARKER = ++YYCURSOR);
8587
1.69k
    if (yybm[256+yych] & 128) {
8588
5
      goto yy47;
8589
5
    }
8590
1.68k
    if (yych == '\\') goto yy164;
8591
1.68k
yy743:
8592
1.68k
    YYDEBUG(743, *YYCURSOR);
8593
1.68k
    yyleng = YYCURSOR - SCNG(yy_text);
8594
1.68k
#line 1410 "Zend/zend_language_scanner.l"
8595
1.68k
    {
8596
1.68k
  RETURN_TOKEN_WITH_IDENT(T_FUNCTION);
8597
1.68k
}
8598
0
#line 8599 "Zend/zend_language_scanner.c"
8599
133
yy744:
8600
133
    YYDEBUG(744, *YYCURSOR);
8601
133
    yyaccept = 4;
8602
133
    yych = *(YYMARKER = ++YYCURSOR);
8603
133
    if (yych == 'T') goto yy793;
8604
123
    if (yych == 't') goto yy793;
8605
35
    goto yy48;
8606
35
yy745:
8607
4
    YYDEBUG(745, *YYCURSOR);
8608
4
    yyaccept = 4;
8609
4
    yych = *(YYMARKER = ++YYCURSOR);
8610
4
    if (yych == 'O') goto yy794;
8611
4
    if (yych == 'o') goto yy794;
8612
3
    goto yy48;
8613
24
yy746:
8614
24
    YYDEBUG(746, *YYCURSOR);
8615
24
    yyaccept = 4;
8616
24
    yych = *(YYMARKER = ++YYCURSOR);
8617
24
    if (yych == 'O') goto yy795;
8618
23
    if (yych == 'o') goto yy795;
8619
0
    goto yy48;
8620
15
yy747:
8621
15
    YYDEBUG(747, *YYCURSOR);
8622
15
    yyaccept = 4;
8623
15
    yych = *(YYMARKER = ++YYCURSOR);
8624
15
    if (yych == 'F') goto yy796;
8625
15
    if (yych == 'f') goto yy796;
8626
0
    goto yy48;
8627
205
yy748:
8628
205
    YYDEBUG(748, *YYCURSOR);
8629
205
    yyaccept = 4;
8630
205
    yych = *(YYMARKER = ++YYCURSOR);
8631
205
    if (yych == 'E') goto yy798;
8632
202
    if (yych == 'e') goto yy798;
8633
21
    goto yy48;
8634
276
yy749:
8635
276
    YYDEBUG(749, *YYCURSOR);
8636
276
    yyaccept = 4;
8637
276
    yych = *(YYMARKER = ++YYCURSOR);
8638
276
    if (yych == 'E') goto yy800;
8639
276
    if (yych == 'e') goto yy800;
8640
4
    goto yy48;
8641
437
yy750:
8642
437
    YYDEBUG(750, *YYCURSOR);
8643
437
    yych = *++YYCURSOR;
8644
437
    if (yych == 'S') goto yy802;
8645
437
    if (yych == 's') goto yy802;
8646
0
    goto yy86;
8647
100
yy751:
8648
100
    YYDEBUG(751, *YYCURSOR);
8649
100
    yyaccept = 4;
8650
100
    yych = *(YYMARKER = ++YYCURSOR);
8651
100
    if (yych == 'D') goto yy803;
8652
100
    if (yych == 'd') goto yy803;
8653
1
    goto yy48;
8654
11
yy752:
8655
11
    YYDEBUG(752, *YYCURSOR);
8656
11
    yych = *++YYCURSOR;
8657
11
    if (yych == 'E') goto yy805;
8658
11
    if (yych == 'e') goto yy805;
8659
0
    goto yy86;
8660
51
yy753:
8661
51
    YYDEBUG(753, *YYCURSOR);
8662
51
    yyaccept = 73;
8663
51
    yych = *(YYMARKER = ++YYCURSOR);
8664
51
    if (yybm[256+yych] & 128) {
8665
0
      goto yy47;
8666
0
    }
8667
51
    if (yych == '\\') goto yy164;
8668
51
yy754:
8669
51
    YYDEBUG(754, *YYCURSOR);
8670
51
    yyleng = YYCURSOR - SCNG(yy_text);
8671
51
#line 1801 "Zend/zend_language_scanner.l"
8672
51
    {
8673
51
  RETURN_TOKEN_WITH_IDENT(T_READONLY);
8674
51
}
8675
0
#line 8676 "Zend/zend_language_scanner.c"
8676
19
yy755:
8677
19
    YYDEBUG(755, *YYCURSOR);
8678
19
    yyaccept = 4;
8679
19
    yych = *(YYMARKER = ++YYCURSOR);
8680
19
    if (yych == 'O') goto yy806;
8681
19
    if (yych == 'o') goto yy806;
8682
0
    goto yy48;
8683
84
yy756:
8684
84
    YYDEBUG(756, *YYCURSOR);
8685
84
    yych = *++YYCURSOR;
8686
84
    if (yych == 'O') goto yy807;
8687
66
    if (yych == 'o') goto yy807;
8688
19
    goto yy86;
8689
66
yy757:
8690
66
    YYDEBUG(757, *YYCURSOR);
8691
66
    ++YYCURSOR;
8692
66
    YYFILL(1);
8693
66
    yych = *YYCURSOR;
8694
66
    if (yych <= '\n') {
8695
61
      if (yych <= 0x00) goto yy86;
8696
59
      if (yych <= '\t') goto yy692;
8697
58
      goto yy694;
8698
59
    } else {
8699
5
      if (yych == '\r') goto yy694;
8700
1
      goto yy692;
8701
5
    }
8702
557
yy758:
8703
557
    YYDEBUG(758, *YYCURSOR);
8704
557
    ++YYCURSOR;
8705
557
    YYFILL(1);
8706
557
    yych = *YYCURSOR;
8707
557
    if (yych <= '\f') {
8708
16
      if (yych <= 0x00) goto yy86;
8709
8
      if (yych == '\n') goto yy616;
8710
5
      goto yy692;
8711
541
    } else {
8712
541
      if (yych <= '\r') goto yy616;
8713
541
      if (yych == '*') goto yy808;
8714
64
      goto yy692;
8715
541
    }
8716
343
yy759:
8717
343
    YYDEBUG(759, *YYCURSOR);
8718
343
    ++YYCURSOR;
8719
343
    YYFILL(1);
8720
343
    yych = *YYCURSOR;
8721
343
    if (yych <= '\r') {
8722
10
      if (yych <= '\t') {
8723
10
        if (yych <= 0x00) goto yy86;
8724
5
        goto yy692;
8725
10
      } else {
8726
0
        if (yych <= '\n') goto yy616;
8727
0
        if (yych <= '\f') goto yy692;
8728
0
        goto yy616;
8729
0
      }
8730
333
    } else {
8731
333
      if (yych <= 'R') {
8732
78
        if (yych <= 'Q') goto yy692;
8733
62
        goto yy810;
8734
255
      } else {
8735
255
        if (yych == 'r') goto yy810;
8736
15
        goto yy692;
8737
255
      }
8738
333
    }
8739
145
yy760:
8740
145
    YYDEBUG(760, *YYCURSOR);
8741
145
    ++YYCURSOR;
8742
145
    YYFILL(1);
8743
145
    yych = *YYCURSOR;
8744
145
    YYDEBUG(761, *YYCURSOR);
8745
145
    if (yych <= '*') {
8746
64
      if (yych <= 0x00) goto yy86;
8747
51
      if (yych <= ')') goto yy696;
8748
6
      goto yy760;
8749
81
    } else {
8750
81
      if (yych == '/') goto yy616;
8751
20
      goto yy696;
8752
81
    }
8753
49
yy762:
8754
49
    YYDEBUG(762, *YYCURSOR);
8755
49
    yyaccept = 4;
8756
49
    yych = *(YYMARKER = ++YYCURSOR);
8757
49
    if (yych == '_') goto yy811;
8758
7
    goto yy48;
8759
43
yy763:
8760
43
    YYDEBUG(763, *YYCURSOR);
8761
43
    yyaccept = 74;
8762
43
    yych = *(YYMARKER = ++YYCURSOR);
8763
43
    if (yybm[256+yych] & 128) {
8764
0
      goto yy47;
8765
0
    }
8766
43
    if (yych == '\\') goto yy164;
8767
43
yy764:
8768
43
    YYDEBUG(764, *YYCURSOR);
8769
43
    yyleng = YYCURSOR - SCNG(yy_text);
8770
43
#line 2276 "Zend/zend_language_scanner.l"
8771
43
    {
8772
43
  RETURN_TOKEN_WITH_IDENT(T_FILE);
8773
43
}
8774
0
#line 8775 "Zend/zend_language_scanner.c"
8775
13
yy765:
8776
13
    YYDEBUG(765, *YYCURSOR);
8777
13
    yyaccept = 4;
8778
13
    yych = *(YYMARKER = ++YYCURSOR);
8779
13
    if (yych == 'O') goto yy813;
8780
2
    if (yych == 'o') goto yy813;
8781
0
    goto yy48;
8782
37
yy766:
8783
37
    YYDEBUG(766, *YYCURSOR);
8784
37
    yyaccept = 4;
8785
37
    yych = *(YYMARKER = ++YYCURSOR);
8786
37
    if (yych == 'O') goto yy814;
8787
15
    if (yych == 'o') goto yy814;
8788
11
    goto yy48;
8789
12
yy767:
8790
12
    YYDEBUG(767, *YYCURSOR);
8791
12
    yyaccept = 75;
8792
12
    yych = *(YYMARKER = ++YYCURSOR);
8793
12
    if (yybm[256+yych] & 128) {
8794
0
      goto yy47;
8795
0
    }
8796
12
    if (yych == '\\') goto yy164;
8797
12
yy768:
8798
12
    YYDEBUG(768, *YYCURSOR);
8799
12
    yyleng = YYCURSOR - SCNG(yy_text);
8800
12
#line 2272 "Zend/zend_language_scanner.l"
8801
12
    {
8802
12
  RETURN_TOKEN_WITH_IDENT(T_LINE);
8803
12
}
8804
0
#line 8805 "Zend/zend_language_scanner.c"
8805
25
yy769:
8806
25
    YYDEBUG(769, *YYCURSOR);
8807
25
    yyaccept = 4;
8808
25
    yych = *(YYMARKER = ++YYCURSOR);
8809
25
    if (yych == '_') goto yy815;
8810
0
    goto yy48;
8811
36
yy770:
8812
36
    YYDEBUG(770, *YYCURSOR);
8813
36
    yyaccept = 4;
8814
36
    yych = *(YYMARKER = ++YYCURSOR);
8815
36
    if (yych == 'A') goto yy816;
8816
4
    if (yych == 'a') goto yy816;
8817
0
    goto yy48;
8818
28
yy771:
8819
28
    YYDEBUG(771, *YYCURSOR);
8820
28
    yyaccept = 4;
8821
28
    yych = *(YYMARKER = ++YYCURSOR);
8822
28
    if (yych == 'T') goto yy817;
8823
3
    if (yych == 't') goto yy817;
8824
3
    goto yy48;
8825
4
yy772:
8826
4
    YYDEBUG(772, *YYCURSOR);
8827
4
    yyaccept = 4;
8828
4
    yych = *(YYMARKER = ++YYCURSOR);
8829
4
    if (yych == '_') goto yy818;
8830
0
    goto yy48;
8831
11
yy773:
8832
11
    YYDEBUG(773, *YYCURSOR);
8833
11
    ++YYCURSOR;
8834
11
    YYFILL(1);
8835
11
    yych = *YYCURSOR;
8836
11
    if (yybm[0+yych] & 128) {
8837
3
      goto yy443;
8838
3
    }
8839
8
    if (yych <= 0x00) goto yy86;
8840
8
    if (yych <= '\r') goto yy709;
8841
4
    goto yy547;
8842
28
yy774:
8843
28
    YYDEBUG(774, *YYCURSOR);
8844
28
    yyaccept = 26;
8845
28
    YYMARKER = ++YYCURSOR;
8846
28
    YYFILL(1);
8847
28
    yych = *YYCURSOR;
8848
28
    if (yybm[0+yych] & 128) {
8849
20
      goto yy443;
8850
20
    }
8851
8
    if (yych <= 0x00) goto yy89;
8852
5
    if (yych <= '\r') goto yy545;
8853
3
    goto yy547;
8854
18
yy775:
8855
18
    YYDEBUG(775, *YYCURSOR);
8856
18
    ++YYCURSOR;
8857
18
    YYFILL(1);
8858
18
    yych = *YYCURSOR;
8859
18
    if (yych <= '\r') {
8860
4
      if (yych <= '\t') {
8861
4
        if (yych <= 0x00) goto yy86;
8862
4
        goto yy443;
8863
4
      } else {
8864
0
        if (yych <= '\n') goto yy545;
8865
0
        if (yych <= '\f') goto yy443;
8866
0
        goto yy545;
8867
0
      }
8868
14
    } else {
8869
14
      if (yych <= '*') {
8870
5
        if (yych <= ')') goto yy443;
8871
2
        goto yy547;
8872
9
      } else {
8873
9
        if (yych == '.') goto yy820;
8874
0
        goto yy443;
8875
9
      }
8876
14
    }
8877
57
yy776:
8878
57
    YYDEBUG(776, *YYCURSOR);
8879
57
    ++YYCURSOR;
8880
57
    YYFILL(1);
8881
57
    yych = *YYCURSOR;
8882
57
    if (yybm[0+yych] & 128) {
8883
32
      goto yy443;
8884
32
    }
8885
25
    if (yych <= 0x00) goto yy86;
8886
23
    if (yych <= '\r') goto yy545;
8887
20
    goto yy821;
8888
20
yy777:
8889
1
    YYDEBUG(777, *YYCURSOR);
8890
1
    ++YYCURSOR;
8891
1
    YYDEBUG(778, *YYCURSOR);
8892
1
    yyleng = YYCURSOR - SCNG(yy_text);
8893
1
#line 1699 "Zend/zend_language_scanner.l"
8894
1
    {
8895
1
  if (PARSER_MODE()) {
8896
1
    zend_error(E_DEPRECATED, "Non-canonical cast (boolean) is deprecated, use the (bool) cast instead");
8897
1
    if (EG(exception)) {
8898
0
      RETURN_TOKEN(T_ERROR);
8899
0
    }
8900
1
  }
8901
1
  RETURN_TOKEN(T_BOOL_CAST);
8902
1
}
8903
0
#line 8904 "Zend/zend_language_scanner.c"
8904
3
yy779:
8905
3
    YYDEBUG(779, *YYCURSOR);
8906
3
    ++YYCURSOR;
8907
3
    YYDEBUG(780, *YYCURSOR);
8908
3
    yyleng = YYCURSOR - SCNG(yy_text);
8909
3
#line 1641 "Zend/zend_language_scanner.l"
8910
3
    {
8911
3
  if (PARSER_MODE()) {
8912
1
    zend_error(E_DEPRECATED, "Non-canonical cast (integer) is deprecated, use the (int) cast instead");
8913
1
    if (EG(exception)) {
8914
0
      RETURN_TOKEN(T_ERROR);
8915
0
    }
8916
1
  }
8917
3
  RETURN_TOKEN(T_INT_CAST);
8918
3
}
8919
0
#line 8920 "Zend/zend_language_scanner.c"
8920
1
yy781:
8921
1
    YYDEBUG(781, *YYCURSOR);
8922
1
    yyaccept = 4;
8923
1
    yych = *(YYMARKER = ++YYCURSOR);
8924
1
    if (yych == 'E') goto yy822;
8925
0
    if (yych == 'e') goto yy822;
8926
0
    goto yy48;
8927
0
yy782:
8928
0
    YYDEBUG(782, *YYCURSOR);
8929
0
    yyaccept = 4;
8930
0
    yych = *(YYMARKER = ++YYCURSOR);
8931
0
    if (yych == 'H') goto yy824;
8932
0
    if (yych == 'h') goto yy824;
8933
0
    goto yy48;
8934
0
yy783:
8935
0
    YYDEBUG(783, *YYCURSOR);
8936
0
    yyaccept = 76;
8937
0
    yych = *(YYMARKER = ++YYCURSOR);
8938
0
    if (yybm[256+yych] & 128) {
8939
0
      goto yy47;
8940
0
    }
8941
0
    if (yych == '\\') goto yy164;
8942
0
yy784:
8943
0
    YYDEBUG(784, *YYCURSOR);
8944
0
    yyleng = YYCURSOR - SCNG(yy_text);
8945
0
#line 1521 "Zend/zend_language_scanner.l"
8946
0
    {
8947
0
  RETURN_TOKEN_WITH_IDENT(T_ENDSWITCH);
8948
0
}
8949
0
#line 8950 "Zend/zend_language_scanner.c"
8950
9
yy785:
8951
9
    YYDEBUG(785, *YYCURSOR);
8952
9
    yych = *++YYCURSOR;
8953
9
    if (yych == 'N') goto yy826;
8954
6
    if (yych == 'n') goto yy826;
8955
6
    goto yy86;
8956
36
yy786:
8957
36
    YYDEBUG(786, *YYCURSOR);
8958
36
    yych = *++YYCURSOR;
8959
36
    if (yych == 'E') goto yy827;
8960
23
    if (yych == 'e') goto yy827;
8961
11
    goto yy86;
8962
1.56k
yy787:
8963
1.56k
    YYDEBUG(787, *YYCURSOR);
8964
1.56k
    ++YYCURSOR;
8965
1.56k
    YYFILL(1);
8966
1.56k
    yych = *YYCURSOR;
8967
1.56k
    YYDEBUG(788, *YYCURSOR);
8968
1.56k
    if (yych <= '@') {
8969
1.40k
      if (yych <= ' ') {
8970
242
        if (yych <= '\n') {
8971
98
          if (yych <= 0x00) goto yy86;
8972
84
          if (yych <= 0x08) goto yy590;
8973
75
          goto yy787;
8974
144
        } else {
8975
144
          if (yych == '\r') goto yy787;
8976
54
          if (yych <= 0x1F) goto yy590;
8977
43
          goto yy787;
8978
54
        }
8979
1.16k
      } else {
8980
1.16k
        if (yych <= ')') {
8981
870
          if (yych == '#') goto yy828;
8982
25
          goto yy590;
8983
870
        } else {
8984
291
          if (yych <= '*') goto yy668;
8985
282
          if (yych == '/') goto yy829;
8986
9
          goto yy590;
8987
282
        }
8988
1.16k
      }
8989
1.40k
    } else {
8990
162
      if (yych <= '_') {
8991
12
        if (yych <= 'H') {
8992
6
          if (yych == 'E') goto yy831;
8993
3
          goto yy830;
8994
6
        } else {
8995
6
          if (yych <= 'I') goto yy832;
8996
6
          if (yych <= 'Z') goto yy830;
8997
1
          if (yych <= '^') goto yy590;
8998
0
          goto yy830;
8999
1
        }
9000
150
      } else {
9001
150
        if (yych <= 'h') {
9002
25
          if (yych <= '`') goto yy590;
9003
25
          if (yych == 'e') goto yy831;
9004
0
          goto yy830;
9005
125
        } else {
9006
125
          if (yych <= 'i') goto yy832;
9007
50
          if (yych <= 'z') goto yy830;
9008
39
          if (yych <= 0x7F) goto yy590;
9009
22
          goto yy830;
9010
39
        }
9011
150
      }
9012
162
    }
9013
272
yy789:
9014
272
    YYDEBUG(789, *YYCURSOR);
9015
272
    ++YYCURSOR;
9016
272
    YYFILL(1);
9017
272
    yych = *YYCURSOR;
9018
272
    YYDEBUG(790, *YYCURSOR);
9019
272
    if (yych <= '\r') {
9020
31
      if (yych <= '\t') {
9021
1
        if (yych <= 0x00) goto yy86;
9022
0
        goto yy738;
9023
30
      } else {
9024
30
        if (yych <= '\n') goto yy787;
9025
15
        if (yych <= '\f') goto yy738;
9026
15
        goto yy787;
9027
15
      }
9028
241
    } else {
9029
241
      if (yych <= '*') {
9030
64
        if (yych <= ')') goto yy738;
9031
31
        goto yy789;
9032
177
      } else {
9033
177
        if (yych == '/') goto yy588;
9034
71
        goto yy738;
9035
177
      }
9036
241
    }
9037
67
yy791:
9038
67
    YYDEBUG(791, *YYCURSOR);
9039
67
    ++YYCURSOR;
9040
67
    YYFILL(1);
9041
67
    yych = *YYCURSOR;
9042
67
    if (yych <= '\r') {
9043
0
      if (yych <= '\t') {
9044
0
        if (yych <= 0x00) goto yy86;
9045
0
        goto yy586;
9046
0
      } else {
9047
0
        if (yych <= '\n') goto yy495;
9048
0
        if (yych <= '\f') goto yy586;
9049
0
        goto yy495;
9050
0
      }
9051
67
    } else {
9052
67
      if (yych <= 'E') {
9053
0
        if (yych <= 'D') goto yy586;
9054
0
        goto yy833;
9055
67
      } else {
9056
67
        if (yych == 'e') goto yy833;
9057
18
        goto yy586;
9058
67
      }
9059
67
    }
9060
152
yy792:
9061
152
    YYDEBUG(792, *YYCURSOR);
9062
152
    ++YYCURSOR;
9063
152
    YYFILL(1);
9064
152
    yych = *YYCURSOR;
9065
152
    if (yych <= '\r') {
9066
20
      if (yych <= '\t') {
9067
11
        if (yych <= 0x00) goto yy86;
9068
1
        goto yy586;
9069
11
      } else {
9070
9
        if (yych <= '\n') goto yy495;
9071
9
        if (yych <= '\f') goto yy586;
9072
0
        goto yy495;
9073
9
      }
9074
132
    } else {
9075
132
      if (yych <= 'L') {
9076
7
        if (yych <= 'K') goto yy586;
9077
2
        goto yy834;
9078
125
      } else {
9079
125
        if (yych == 'l') goto yy834;
9080
13
        goto yy586;
9081
125
      }
9082
132
    }
9083
98
yy793:
9084
98
    YYDEBUG(793, *YYCURSOR);
9085
98
    yyaccept = 4;
9086
98
    yych = *(YYMARKER = ++YYCURSOR);
9087
98
    if (yych == 'S') goto yy835;
9088
94
    if (yych == 's') goto yy835;
9089
10
    goto yy48;
9090
10
yy794:
9091
1
    YYDEBUG(794, *YYCURSOR);
9092
1
    yyaccept = 4;
9093
1
    yych = *(YYMARKER = ++YYCURSOR);
9094
1
    if (yych == 'N') goto yy837;
9095
1
    if (yych == 'n') goto yy837;
9096
0
    goto yy48;
9097
24
yy795:
9098
24
    YYDEBUG(795, *YYCURSOR);
9099
24
    yyaccept = 4;
9100
24
    yych = *(YYMARKER = ++YYCURSOR);
9101
24
    if (yych == 'F') goto yy838;
9102
24
    if (yych == 'f') goto yy838;
9103
0
    goto yy48;
9104
15
yy796:
9105
15
    YYDEBUG(796, *YYCURSOR);
9106
15
    yyaccept = 77;
9107
15
    yych = *(YYMARKER = ++YYCURSOR);
9108
15
    if (yybm[256+yych] & 128) {
9109
0
      goto yy47;
9110
0
    }
9111
15
    if (yych == '\\') goto yy164;
9112
15
yy797:
9113
15
    YYDEBUG(797, *YYCURSOR);
9114
15
    yyleng = YYCURSOR - SCNG(yy_text);
9115
15
#line 1745 "Zend/zend_language_scanner.l"
9116
15
    {
9117
15
    RETURN_TOKEN_WITH_IDENT(T_INSTEADOF);
9118
15
}
9119
0
#line 9120 "Zend/zend_language_scanner.c"
9120
184
yy798:
9121
184
    YYDEBUG(798, *YYCURSOR);
9122
184
    yyaccept = 78;
9123
184
    yych = *(YYMARKER = ++YYCURSOR);
9124
184
    if (yybm[256+yych] & 128) {
9125
3
      goto yy47;
9126
3
    }
9127
181
    if (yych == '\\') goto yy164;
9128
181
yy799:
9129
181
    YYDEBUG(799, *YYCURSOR);
9130
181
    yyleng = YYCURSOR - SCNG(yy_text);
9131
181
#line 1557 "Zend/zend_language_scanner.l"
9132
181
    {
9133
181
  RETURN_TOKEN_WITH_IDENT(T_INTERFACE);
9134
181
}
9135
0
#line 9136 "Zend/zend_language_scanner.c"
9136
272
yy800:
9137
272
    YYDEBUG(800, *YYCURSOR);
9138
272
    yyaccept = 79;
9139
272
    yych = *(YYMARKER = ++YYCURSOR);
9140
272
    if (yybm[256+yych] & 128) {
9141
1
      goto yy47;
9142
1
    }
9143
271
    if (yych == '\\') goto yy840;
9144
228
yy801:
9145
228
    YYDEBUG(801, *YYCURSOR);
9146
228
    yyleng = YYCURSOR - SCNG(yy_text);
9147
228
#line 1737 "Zend/zend_language_scanner.l"
9148
228
    {
9149
228
  RETURN_TOKEN_WITH_IDENT(T_NAMESPACE);
9150
228
}
9151
0
#line 9152 "Zend/zend_language_scanner.c"
9152
437
yy802:
9153
437
    YYDEBUG(802, *YYCURSOR);
9154
437
    yych = *++YYCURSOR;
9155
437
    if (yych == 'E') goto yy841;
9156
437
    if (yych == 'e') goto yy841;
9157
426
    goto yy86;
9158
426
yy803:
9159
99
    YYDEBUG(803, *YYCURSOR);
9160
99
    yyaccept = 80;
9161
99
    yych = *(YYMARKER = ++YYCURSOR);
9162
99
    if (yybm[256+yych] & 128) {
9163
15
      goto yy47;
9164
15
    }
9165
84
    if (yych == '(') goto yy842;
9166
49
    if (yych == '\\') goto yy164;
9167
76
yy804:
9168
76
    YYDEBUG(804, *YYCURSOR);
9169
76
    yyleng = YYCURSOR - SCNG(yy_text);
9170
76
#line 1781 "Zend/zend_language_scanner.l"
9171
76
    {
9172
76
  RETURN_TOKEN_WITH_IDENT(T_PROTECTED);
9173
76
}
9174
0
#line 9175 "Zend/zend_language_scanner.c"
9175
11
yy805:
9176
11
    YYDEBUG(805, *YYCURSOR);
9177
11
    yych = *++YYCURSOR;
9178
11
    if (yych == 'T') goto yy843;
9179
7
    if (yych == 't') goto yy843;
9180
0
    goto yy86;
9181
19
yy806:
9182
19
    YYDEBUG(806, *YYCURSOR);
9183
19
    yyaccept = 4;
9184
19
    yych = *(YYMARKER = ++YYCURSOR);
9185
19
    if (yych == 'N') goto yy844;
9186
19
    if (yych == 'n') goto yy844;
9187
0
    goto yy48;
9188
65
yy807:
9189
65
    YYDEBUG(807, *YYCURSOR);
9190
65
    yych = *++YYCURSOR;
9191
65
    if (yych == 'M') goto yy845;
9192
46
    if (yych == 'm') goto yy845;
9193
6
    goto yy86;
9194
4.72k
yy808:
9195
4.72k
    YYDEBUG(808, *YYCURSOR);
9196
4.72k
    ++YYCURSOR;
9197
4.72k
    YYFILL(1);
9198
4.72k
    yych = *YYCURSOR;
9199
4.72k
    YYDEBUG(809, *YYCURSOR);
9200
4.72k
    if (yych <= '\f') {
9201
717
      if (yych <= 0x00) goto yy86;
9202
632
      if (yych == '\n') goto yy846;
9203
89
      goto yy808;
9204
4.00k
    } else {
9205
4.00k
      if (yych <= '\r') goto yy846;
9206
3.71k
      if (yych == '*') goto yy848;
9207
3.53k
      goto yy808;
9208
3.71k
    }
9209
302
yy810:
9210
302
    YYDEBUG(810, *YYCURSOR);
9211
302
    ++YYCURSOR;
9212
302
    YYFILL(1);
9213
302
    yych = *YYCURSOR;
9214
302
    if (yych <= '\r') {
9215
20
      if (yych <= '\t') {
9216
10
        if (yych <= 0x00) goto yy86;
9217
5
        goto yy692;
9218
10
      } else {
9219
10
        if (yych <= '\n') goto yy616;
9220
2
        if (yych <= '\f') goto yy692;
9221
2
        goto yy616;
9222
2
      }
9223
282
    } else {
9224
282
      if (yych <= 'O') {
9225
54
        if (yych <= 'N') goto yy692;
9226
48
        goto yy850;
9227
228
      } else {
9228
228
        if (yych == 'o') goto yy850;
9229
38
        goto yy692;
9230
228
      }
9231
282
    }
9232
42
yy811:
9233
42
    YYDEBUG(811, *YYCURSOR);
9234
42
    yyaccept = 81;
9235
42
    yych = *(YYMARKER = ++YYCURSOR);
9236
42
    if (yybm[256+yych] & 128) {
9237
22
      goto yy47;
9238
22
    }
9239
20
    if (yych == '\\') goto yy164;
9240
20
yy812:
9241
20
    YYDEBUG(812, *YYCURSOR);
9242
20
    yyleng = YYCURSOR - SCNG(yy_text);
9243
20
#line 2252 "Zend/zend_language_scanner.l"
9244
20
    {
9245
20
  RETURN_TOKEN_WITH_IDENT(T_CLASS_C);
9246
20
}
9247
0
#line 9248 "Zend/zend_language_scanner.c"
9248
13
yy813:
9249
13
    YYDEBUG(813, *YYCURSOR);
9250
13
    yyaccept = 4;
9251
13
    yych = *(YYMARKER = ++YYCURSOR);
9252
13
    if (yych == 'N') goto yy851;
9253
3
    if (yych == 'n') goto yy851;
9254
3
    goto yy48;
9255
26
yy814:
9256
26
    YYDEBUG(814, *YYCURSOR);
9257
26
    yyaccept = 4;
9258
26
    yych = *(YYMARKER = ++YYCURSOR);
9259
26
    if (yych == 'M') goto yy852;
9260
21
    if (yych == 'm') goto yy852;
9261
17
    goto yy48;
9262
25
yy815:
9263
25
    YYDEBUG(815, *YYCURSOR);
9264
25
    yyaccept = 4;
9265
25
    yych = *(YYMARKER = ++YYCURSOR);
9266
25
    if (yych == '_') goto yy853;
9267
4
    goto yy48;
9268
36
yy816:
9269
36
    YYDEBUG(816, *YYCURSOR);
9270
36
    yyaccept = 4;
9271
36
    yych = *(YYMARKER = ++YYCURSOR);
9272
36
    if (yych == 'C') goto yy855;
9273
6
    if (yych == 'c') goto yy855;
9274
2
    goto yy48;
9275
25
yy817:
9276
25
    YYDEBUG(817, *YYCURSOR);
9277
25
    yyaccept = 4;
9278
25
    yych = *(YYMARKER = ++YYCURSOR);
9279
25
    if (yych == 'Y') goto yy856;
9280
15
    if (yych == 'y') goto yy856;
9281
0
    goto yy48;
9282
4
yy818:
9283
4
    YYDEBUG(818, *YYCURSOR);
9284
4
    yyaccept = 82;
9285
4
    yych = *(YYMARKER = ++YYCURSOR);
9286
4
    if (yybm[256+yych] & 128) {
9287
0
      goto yy47;
9288
0
    }
9289
4
    if (yych == '\\') goto yy164;
9290
4
yy819:
9291
4
    YYDEBUG(819, *YYCURSOR);
9292
4
    yyleng = YYCURSOR - SCNG(yy_text);
9293
4
#line 2256 "Zend/zend_language_scanner.l"
9294
4
    {
9295
4
  RETURN_TOKEN_WITH_IDENT(T_TRAIT_C);
9296
4
}
9297
0
#line 9298 "Zend/zend_language_scanner.c"
9298
9
yy820:
9299
9
    YYDEBUG(820, *YYCURSOR);
9300
9
    ++YYCURSOR;
9301
9
    YYFILL(1);
9302
9
    yych = *YYCURSOR;
9303
9
    if (yych <= '\r') {
9304
1
      if (yych <= '\t') {
9305
0
        if (yych <= 0x00) goto yy86;
9306
0
        goto yy443;
9307
1
      } else {
9308
1
        if (yych <= '\n') goto yy545;
9309
1
        if (yych <= '\f') goto yy443;
9310
1
        goto yy545;
9311
1
      }
9312
8
    } else {
9313
8
      if (yych <= '*') {
9314
4
        if (yych <= ')') goto yy443;
9315
0
        goto yy547;
9316
4
      } else {
9317
4
        if (yych == '.') goto yy774;
9318
0
        goto yy443;
9319
4
      }
9320
8
    }
9321
20
yy821:
9322
20
    YYDEBUG(821, *YYCURSOR);
9323
20
    ++YYCURSOR;
9324
20
    YYFILL(1);
9325
20
    yych = *YYCURSOR;
9326
20
    if (yych <= '\r') {
9327
2
      if (yych <= '\t') {
9328
1
        if (yych <= 0x00) goto yy86;
9329
0
        goto yy443;
9330
1
      } else {
9331
1
        if (yych <= '\n') goto yy545;
9332
0
        if (yych <= '\f') goto yy443;
9333
0
        goto yy545;
9334
0
      }
9335
18
    } else {
9336
18
      if (yych <= '*') {
9337
3
        if (yych <= ')') goto yy443;
9338
0
        goto yy547;
9339
15
      } else {
9340
15
        if (yych == '/') goto yy709;
9341
15
        goto yy443;
9342
15
      }
9343
18
    }
9344
1
yy822:
9345
1
    YYDEBUG(822, *YYCURSOR);
9346
1
    yyaccept = 83;
9347
1
    yych = *(YYMARKER = ++YYCURSOR);
9348
1
    if (yybm[256+yych] & 128) {
9349
1
      goto yy47;
9350
1
    }
9351
0
    if (yych == '\\') goto yy164;
9352
0
yy823:
9353
0
    YYDEBUG(823, *YYCURSOR);
9354
0
    yyleng = YYCURSOR - SCNG(yy_text);
9355
0
#line 1501 "Zend/zend_language_scanner.l"
9356
0
    {
9357
0
  RETURN_TOKEN_WITH_IDENT(T_ENDDECLARE);
9358
0
}
9359
0
#line 9360 "Zend/zend_language_scanner.c"
9360
0
yy824:
9361
0
    YYDEBUG(824, *YYCURSOR);
9362
0
    yyaccept = 84;
9363
0
    yych = *(YYMARKER = ++YYCURSOR);
9364
0
    if (yybm[256+yych] & 128) {
9365
0
      goto yy47;
9366
0
    }
9367
0
    if (yych == '\\') goto yy164;
9368
0
yy825:
9369
0
    YYDEBUG(825, *YYCURSOR);
9370
0
    yyleng = YYCURSOR - SCNG(yy_text);
9371
0
#line 1493 "Zend/zend_language_scanner.l"
9372
0
    {
9373
0
  RETURN_TOKEN_WITH_IDENT(T_ENDFOREACH);
9374
0
}
9375
0
#line 9376 "Zend/zend_language_scanner.c"
9376
3
yy826:
9377
3
    YYDEBUG(826, *YYCURSOR);
9378
3
    yych = *++YYCURSOR;
9379
3
    if (yych == 'D') goto yy857;
9380
3
    if (yych == 'd') goto yy857;
9381
3
    goto yy86;
9382
25
yy827:
9383
25
    YYDEBUG(827, *YYCURSOR);
9384
25
    yych = *++YYCURSOR;
9385
25
    if (yych == 'M') goto yy858;
9386
25
    if (yych == 'm') goto yy858;
9387
4
    goto yy86;
9388
845
yy828:
9389
845
    YYDEBUG(828, *YYCURSOR);
9390
845
    ++YYCURSOR;
9391
845
    YYFILL(1);
9392
845
    yych = *YYCURSOR;
9393
845
    if (yych <= '\r') {
9394
697
      if (yych <= '\t') {
9395
53
        if (yych <= 0x00) goto yy86;
9396
18
        goto yy738;
9397
644
      } else {
9398
644
        if (yych <= '\n') goto yy859;
9399
72
        if (yych <= '\f') goto yy738;
9400
72
        goto yy859;
9401
72
      }
9402
697
    } else {
9403
148
      if (yych <= '*') {
9404
41
        if (yych <= ')') goto yy738;
9405
17
        goto yy789;
9406
107
      } else {
9407
107
        if (yych == '[') goto yy590;
9408
107
        goto yy738;
9409
107
      }
9410
148
    }
9411
273
yy829:
9412
273
    YYDEBUG(829, *YYCURSOR);
9413
273
    ++YYCURSOR;
9414
273
    YYFILL(1);
9415
273
    yych = *YYCURSOR;
9416
273
    if (yych <= '*') {
9417
261
      if (yych <= 0x00) goto yy86;
9418
258
      if (yych <= ')') goto yy590;
9419
230
      goto yy861;
9420
258
    } else {
9421
12
      if (yych == '/') goto yy738;
9422
2
      goto yy590;
9423
12
    }
9424
41
yy830:
9425
41
    YYDEBUG(830, *YYCURSOR);
9426
41
    yyaccept = 53;
9427
41
    YYMARKER = ++YYCURSOR;
9428
41
    YYFILL(1);
9429
41
    yych = *YYCURSOR;
9430
41
    if (yych <= 0x00) goto yy583;
9431
40
    if (yych == '*') goto yy668;
9432
38
    goto yy590;
9433
38
yy831:
9434
28
    YYDEBUG(831, *YYCURSOR);
9435
28
    yyaccept = 53;
9436
28
    YYMARKER = ++YYCURSOR;
9437
28
    YYFILL(1);
9438
28
    yych = *YYCURSOR;
9439
28
    if (yych <= 'W') {
9440
10
      if (yych <= 0x00) goto yy583;
9441
10
      if (yych == '*') goto yy668;
9442
10
      goto yy590;
9443
18
    } else {
9444
18
      if (yych <= 'X') goto yy862;
9445
18
      if (yych == 'x') goto yy862;
9446
4
      goto yy590;
9447
18
    }
9448
75
yy832:
9449
75
    YYDEBUG(832, *YYCURSOR);
9450
75
    yyaccept = 53;
9451
75
    YYMARKER = ++YYCURSOR;
9452
75
    YYFILL(1);
9453
75
    yych = *YYCURSOR;
9454
75
    if (yych <= 'L') {
9455
0
      if (yych <= 0x00) goto yy583;
9456
0
      if (yych == '*') goto yy668;
9457
0
      goto yy590;
9458
75
    } else {
9459
75
      if (yych <= 'M') goto yy863;
9460
44
      if (yych == 'm') goto yy863;
9461
10
      goto yy590;
9462
44
    }
9463
49
yy833:
9464
49
    YYDEBUG(833, *YYCURSOR);
9465
49
    ++YYCURSOR;
9466
49
    YYFILL(1);
9467
49
    yych = *YYCURSOR;
9468
49
    if (yych <= '\r') {
9469
6
      if (yych <= '\t') {
9470
0
        if (yych <= 0x00) goto yy86;
9471
0
        goto yy586;
9472
6
      } else {
9473
6
        if (yych <= '\n') goto yy495;
9474
4
        if (yych <= '\f') goto yy586;
9475
3
        goto yy495;
9476
4
      }
9477
43
    } else {
9478
43
      if (yych <= 'N') {
9479
1
        if (yych <= 'M') goto yy586;
9480
0
        goto yy864;
9481
42
      } else {
9482
42
        if (yych == 'n') goto yy864;
9483
9
        goto yy586;
9484
42
      }
9485
43
    }
9486
114
yy834:
9487
114
    YYDEBUG(834, *YYCURSOR);
9488
114
    ++YYCURSOR;
9489
114
    YYFILL(1);
9490
114
    yych = *YYCURSOR;
9491
114
    if (yych <= '\r') {
9492
11
      if (yych <= '\t') {
9493
0
        if (yych <= 0x00) goto yy86;
9494
0
        goto yy586;
9495
11
      } else {
9496
11
        if (yych <= '\n') goto yy495;
9497
5
        if (yych <= '\f') goto yy586;
9498
5
        goto yy495;
9499
5
      }
9500
103
    } else {
9501
103
      if (yych <= 'E') {
9502
21
        if (yych <= 'D') goto yy586;
9503
3
        goto yy865;
9504
82
      } else {
9505
82
        if (yych == 'e') goto yy865;
9506
18
        goto yy586;
9507
82
      }
9508
103
    }
9509
88
yy835:
9510
88
    YYDEBUG(835, *YYCURSOR);
9511
88
    yyaccept = 85;
9512
88
    yych = *(YYMARKER = ++YYCURSOR);
9513
88
    if (yybm[256+yych] & 128) {
9514
0
      goto yy47;
9515
0
    }
9516
88
    if (yych == '\\') goto yy164;
9517
88
yy836:
9518
88
    YYDEBUG(836, *YYCURSOR);
9519
88
    yyleng = YYCURSOR - SCNG(yy_text);
9520
88
#line 1582 "Zend/zend_language_scanner.l"
9521
88
    {
9522
88
  RETURN_TOKEN_WITH_IDENT(T_IMPLEMENTS);
9523
88
}
9524
0
#line 9525 "Zend/zend_language_scanner.c"
9525
1
yy837:
9526
1
    YYDEBUG(837, *YYCURSOR);
9527
1
    yyaccept = 4;
9528
1
    yych = *(YYMARKER = ++YYCURSOR);
9529
1
    if (yych == 'C') goto yy866;
9530
1
    if (yych == 'c') goto yy866;
9531
0
    goto yy48;
9532
24
yy838:
9533
24
    YYDEBUG(838, *YYCURSOR);
9534
24
    yyaccept = 86;
9535
24
    yych = *(YYMARKER = ++YYCURSOR);
9536
24
    if (yybm[256+yych] & 128) {
9537
0
      goto yy47;
9538
0
    }
9539
24
    if (yych == '\\') goto yy164;
9540
24
yy839:
9541
24
    YYDEBUG(839, *YYCURSOR);
9542
24
    yyleng = YYCURSOR - SCNG(yy_text);
9543
24
#line 1505 "Zend/zend_language_scanner.l"
9544
24
    {
9545
24
  RETURN_TOKEN_WITH_IDENT(T_INSTANCEOF);
9546
24
}
9547
0
#line 9548 "Zend/zend_language_scanner.c"
9548
58
yy840:
9549
58
    YYDEBUG(840, *YYCURSOR);
9550
58
    ++YYCURSOR;
9551
58
    YYFILL(1);
9552
58
    yych = *YYCURSOR;
9553
58
    if (yych <= '_') {
9554
27
      if (yych <= '@') goto yy86;
9555
25
      if (yych <= 'Z') goto yy867;
9556
3
      if (yych <= '^') goto yy86;
9557
1
      goto yy867;
9558
31
    } else {
9559
31
      if (yych <= '`') goto yy86;
9560
31
      if (yych <= 'z') goto yy867;
9561
11
      if (yych <= 0x7F) goto yy86;
9562
7
      goto yy867;
9563
11
    }
9564
11
yy841:
9565
11
    YYDEBUG(841, *YYCURSOR);
9566
11
    yych = *++YYCURSOR;
9567
11
    if (yych == 'T') goto yy870;
9568
11
    if (yych == 't') goto yy870;
9569
1
    goto yy86;
9570
35
yy842:
9571
35
    YYDEBUG(842, *YYCURSOR);
9572
35
    yych = *++YYCURSOR;
9573
35
    if (yych == 'S') goto yy871;
9574
35
    if (yych == 's') goto yy871;
9575
0
    goto yy86;
9576
11
yy843:
9577
11
    YYDEBUG(843, *YYCURSOR);
9578
11
    yych = *++YYCURSOR;
9579
11
    if (yych == ')') goto yy872;
9580
4
    goto yy86;
9581
19
yy844:
9582
19
    YYDEBUG(844, *YYCURSOR);
9583
19
    yyaccept = 4;
9584
19
    yych = *(YYMARKER = ++YYCURSOR);
9585
19
    if (yych == 'C') goto yy874;
9586
19
    if (yych == 'c') goto yy874;
9587
1
    goto yy48;
9588
59
yy845:
9589
59
    YYDEBUG(845, *YYCURSOR);
9590
59
    yych = *++YYCURSOR;
9591
59
    if (yych <= '^') {
9592
43
      if (yych <= '9') {
9593
25
        if (yych <= '/') goto yy875;
9594
3
        goto yy86;
9595
25
      } else {
9596
18
        if (yych <= '@') goto yy875;
9597
5
        if (yych <= 'Z') goto yy86;
9598
5
        goto yy875;
9599
5
      }
9600
43
    } else {
9601
16
      if (yych <= '`') {
9602
0
        if (yych <= '_') goto yy86;
9603
0
        goto yy875;
9604
16
      } else {
9605
16
        if (yych <= 'z') goto yy86;
9606
7
        if (yych <= 0x7F) goto yy875;
9607
7
        goto yy86;
9608
7
      }
9609
16
    }
9610
1.16k
yy846:
9611
1.16k
    YYDEBUG(846, *YYCURSOR);
9612
1.16k
    ++YYCURSOR;
9613
1.16k
    YYFILL(1);
9614
1.16k
    yych = *YYCURSOR;
9615
1.16k
    YYDEBUG(847, *YYCURSOR);
9616
1.16k
    if (yych <= '#') {
9617
792
      if (yych <= '\f') {
9618
84
        if (yych <= 0x00) goto yy86;
9619
73
        if (yych <= 0x08) goto yy696;
9620
72
        if (yych <= '\n') goto yy846;
9621
8
        goto yy696;
9622
708
      } else {
9623
708
        if (yych <= 0x1F) {
9624
83
          if (yych <= '\r') goto yy846;
9625
4
          goto yy696;
9626
625
        } else {
9627
625
          if (yych <= ' ') goto yy846;
9628
606
          if (yych <= '"') goto yy696;
9629
606
          goto yy877;
9630
606
        }
9631
708
      }
9632
792
    } else {
9633
375
      if (yych <= '/') {
9634
201
        if (yych == '*') goto yy760;
9635
197
        if (yych <= '.') goto yy696;
9636
135
        goto yy878;
9637
197
      } else {
9638
174
        if (yych <= 'F') {
9639
140
          if (yych <= 'E') goto yy696;
9640
35
          goto yy879;
9641
140
        } else {
9642
34
          if (yych == 'f') goto yy879;
9643
21
          goto yy696;
9644
34
        }
9645
174
      }
9646
375
    }
9647
217
yy848:
9648
217
    YYDEBUG(848, *YYCURSOR);
9649
217
    ++YYCURSOR;
9650
217
    YYFILL(1);
9651
217
    yych = *YYCURSOR;
9652
217
    YYDEBUG(849, *YYCURSOR);
9653
217
    if (yych <= '\r') {
9654
49
      if (yych <= '\t') {
9655
12
        if (yych <= 0x00) goto yy86;
9656
0
        goto yy808;
9657
37
      } else {
9658
37
        if (yych <= '\n') goto yy846;
9659
20
        if (yych <= '\f') goto yy808;
9660
20
        goto yy846;
9661
20
      }
9662
168
    } else {
9663
168
      if (yych <= '*') {
9664
76
        if (yych <= ')') goto yy808;
9665
1
        goto yy848;
9666
92
      } else {
9667
92
        if (yych == '/') goto yy694;
9668
66
        goto yy808;
9669
92
      }
9670
168
    }
9671
238
yy850:
9672
238
    YYDEBUG(850, *YYCURSOR);
9673
238
    ++YYCURSOR;
9674
238
    YYFILL(1);
9675
238
    yych = *YYCURSOR;
9676
238
    if (yych <= '\r') {
9677
27
      if (yych <= '\t') {
9678
14
        if (yych <= 0x00) goto yy86;
9679
11
        goto yy692;
9680
14
      } else {
9681
13
        if (yych <= '\n') goto yy616;
9682
6
        if (yych <= '\f') goto yy692;
9683
2
        goto yy616;
9684
6
      }
9685
211
    } else {
9686
211
      if (yych <= 'M') {
9687
150
        if (yych <= 'L') goto yy692;
9688
131
        goto yy880;
9689
150
      } else {
9690
61
        if (yych == 'm') goto yy880;
9691
16
        goto yy692;
9692
61
      }
9693
211
    }
9694
10
yy851:
9695
10
    YYDEBUG(851, *YYCURSOR);
9696
10
    yyaccept = 4;
9697
10
    yych = *(YYMARKER = ++YYCURSOR);
9698
10
    if (yych == '_') goto yy881;
9699
0
    goto yy48;
9700
9
yy852:
9701
9
    YYDEBUG(852, *YYCURSOR);
9702
9
    yyaccept = 4;
9703
9
    yych = *(YYMARKER = ++YYCURSOR);
9704
9
    if (yych == 'P') goto yy882;
9705
4
    if (yych == 'p') goto yy882;
9706
0
    goto yy48;
9707
21
yy853:
9708
21
    YYDEBUG(853, *YYCURSOR);
9709
21
    yyaccept = 87;
9710
21
    yych = *(YYMARKER = ++YYCURSOR);
9711
21
    if (yybm[256+yych] & 128) {
9712
3
      goto yy47;
9713
3
    }
9714
18
    if (yych == '\\') goto yy164;
9715
18
yy854:
9716
18
    YYDEBUG(854, *YYCURSOR);
9717
18
    yyleng = YYCURSOR - SCNG(yy_text);
9718
18
#line 2268 "Zend/zend_language_scanner.l"
9719
18
    {
9720
18
  RETURN_TOKEN_WITH_IDENT(T_METHOD_C);
9721
18
}
9722
0
#line 9723 "Zend/zend_language_scanner.c"
9723
34
yy855:
9724
34
    YYDEBUG(855, *YYCURSOR);
9725
34
    yyaccept = 4;
9726
34
    yych = *(YYMARKER = ++YYCURSOR);
9727
34
    if (yych == 'E') goto yy883;
9728
4
    if (yych == 'e') goto yy883;
9729
2
    goto yy48;
9730
25
yy856:
9731
25
    YYDEBUG(856, *YYCURSOR);
9732
25
    yyaccept = 4;
9733
25
    yych = *(YYMARKER = ++YYCURSOR);
9734
25
    if (yych == '_') goto yy884;
9735
16
    goto yy48;
9736
16
yy857:
9737
4
    YYDEBUG(857, *YYCURSOR);
9738
4
    yych = *++YYCURSOR;
9739
4
    if (yych == 'S') goto yy885;
9740
4
    if (yych == 's') goto yy885;
9741
2
    goto yy86;
9742
21
yy858:
9743
21
    YYDEBUG(858, *YYCURSOR);
9744
21
    yych = *++YYCURSOR;
9745
21
    if (yych == 'E') goto yy887;
9746
9
    if (yych == 'e') goto yy887;
9747
1
    goto yy86;
9748
706
yy859:
9749
706
    YYDEBUG(859, *YYCURSOR);
9750
706
    ++YYCURSOR;
9751
706
    YYFILL(1);
9752
706
    yych = *YYCURSOR;
9753
706
    YYDEBUG(860, *YYCURSOR);
9754
706
    if (yych <= '@') {
9755
362
      if (yych <= 0x1F) {
9756
63
        if (yych <= '\t') {
9757
21
          if (yych <= 0x00) goto yy86;
9758
21
          if (yych <= 0x08) goto yy738;
9759
20
          goto yy859;
9760
42
        } else {
9761
42
          if (yych <= '\n') goto yy787;
9762
30
          if (yych == '\r') goto yy787;
9763
10
          goto yy738;
9764
30
        }
9765
299
      } else {
9766
299
        if (yych <= ')') {
9767
85
          if (yych <= ' ') goto yy859;
9768
74
          if (yych == '#') goto yy888;
9769
48
          goto yy738;
9770
214
        } else {
9771
214
          if (yych <= '*') goto yy789;
9772
205
          if (yych == '/') goto yy889;
9773
10
          goto yy738;
9774
205
        }
9775
299
      }
9776
362
    } else {
9777
344
      if (yych <= '_') {
9778
22
        if (yych <= 'H') {
9779
9
          if (yych == 'E') goto yy891;
9780
7
          goto yy890;
9781
13
        } else {
9782
13
          if (yych <= 'I') goto yy892;
9783
9
          if (yych <= 'Z') goto yy890;
9784
9
          if (yych <= '^') goto yy738;
9785
6
          goto yy890;
9786
9
        }
9787
322
      } else {
9788
322
        if (yych <= 'h') {
9789
105
          if (yych <= '`') goto yy738;
9790
104
          if (yych == 'e') goto yy891;
9791
11
          goto yy890;
9792
217
        } else {
9793
217
          if (yych <= 'i') goto yy892;
9794
61
          if (yych <= 'z') goto yy890;
9795
39
          if (yych <= 0x7F) goto yy738;
9796
11
          goto yy890;
9797
39
        }
9798
322
      }
9799
344
    }
9800
230
yy861:
9801
230
    YYDEBUG(861, *YYCURSOR);
9802
230
    ++YYCURSOR;
9803
230
    YYFILL(1);
9804
230
    yych = *YYCURSOR;
9805
230
    if (yych <= '*') {
9806
16
      if (yych <= 0x00) goto yy86;
9807
11
      if (yych <= ')') goto yy590;
9808
8
      goto yy668;
9809
214
    } else {
9810
214
      if (yych == '/') goto yy787;
9811
9
      goto yy590;
9812
214
    }
9813
14
yy862:
9814
14
    YYDEBUG(862, *YYCURSOR);
9815
14
    ++YYCURSOR;
9816
14
    YYFILL(1);
9817
14
    yych = *YYCURSOR;
9818
14
    if (yych <= 'S') {
9819
1
      if (yych <= 0x00) goto yy86;
9820
1
      if (yych == '*') goto yy668;
9821
1
      goto yy590;
9822
13
    } else {
9823
13
      if (yych <= 'T') goto yy893;
9824
12
      if (yych == 't') goto yy893;
9825
7
      goto yy590;
9826
12
    }
9827
65
yy863:
9828
65
    YYDEBUG(863, *YYCURSOR);
9829
65
    ++YYCURSOR;
9830
65
    YYFILL(1);
9831
65
    yych = *YYCURSOR;
9832
65
    if (yych <= 'O') {
9833
12
      if (yych <= 0x00) goto yy86;
9834
11
      if (yych == '*') goto yy668;
9835
11
      goto yy590;
9836
53
    } else {
9837
53
      if (yych <= 'P') goto yy894;
9838
52
      if (yych == 'p') goto yy894;
9839
5
      goto yy590;
9840
52
    }
9841
33
yy864:
9842
33
    YYDEBUG(864, *YYCURSOR);
9843
33
    ++YYCURSOR;
9844
33
    YYFILL(1);
9845
33
    yych = *YYCURSOR;
9846
33
    if (yych <= '\r') {
9847
2
      if (yych <= '\t') {
9848
0
        if (yych <= 0x00) goto yy86;
9849
0
        goto yy586;
9850
2
      } else {
9851
2
        if (yych <= '\n') goto yy495;
9852
2
        if (yych <= '\f') goto yy586;
9853
1
        goto yy495;
9854
2
      }
9855
31
    } else {
9856
31
      if (yych <= 'D') {
9857
3
        if (yych <= 'C') goto yy586;
9858
0
        goto yy895;
9859
28
      } else {
9860
28
        if (yych == 'd') goto yy895;
9861
5
        goto yy586;
9862
28
      }
9863
31
    }
9864
67
yy865:
9865
67
    YYDEBUG(865, *YYCURSOR);
9866
67
    ++YYCURSOR;
9867
67
    YYFILL(1);
9868
67
    yych = *YYCURSOR;
9869
67
    if (yych <= '\r') {
9870
15
      if (yych <= '\t') {
9871
14
        if (yych <= 0x00) goto yy86;
9872
7
        goto yy586;
9873
14
      } else {
9874
1
        if (yych <= '\n') goto yy495;
9875
0
        if (yych <= '\f') goto yy586;
9876
0
        goto yy495;
9877
0
      }
9878
52
    } else {
9879
52
      if (yych <= 'M') {
9880
17
        if (yych <= 'L') goto yy586;
9881
14
        goto yy896;
9882
35
      } else {
9883
35
        if (yych == 'm') goto yy896;
9884
3
        goto yy586;
9885
35
      }
9886
52
    }
9887
1
yy866:
9888
1
    YYDEBUG(866, *YYCURSOR);
9889
1
    yyaccept = 4;
9890
1
    yych = *(YYMARKER = ++YYCURSOR);
9891
1
    if (yych == 'E') goto yy897;
9892
1
    if (yych == 'e') goto yy897;
9893
0
    goto yy48;
9894
412
yy867:
9895
412
    YYDEBUG(867, *YYCURSOR);
9896
412
    yyaccept = 88;
9897
412
    YYMARKER = ++YYCURSOR;
9898
412
    YYFILL(1);
9899
412
    yych = *YYCURSOR;
9900
412
    YYDEBUG(868, *YYCURSOR);
9901
412
    if (yych <= '\\') {
9902
182
      if (yych <= '@') {
9903
60
        if (yych <= '/') goto yy869;
9904
39
        if (yych <= '9') goto yy867;
9905
122
      } else {
9906
122
        if (yych <= 'Z') goto yy867;
9907
15
        if (yych >= '\\') goto yy840;
9908
15
      }
9909
230
    } else {
9910
230
      if (yych <= '`') {
9911
34
        if (yych == '_') goto yy867;
9912
196
      } else {
9913
196
        if (yych <= 'z') goto yy867;
9914
98
        if (yych >= 0x80) goto yy867;
9915
98
      }
9916
230
    }
9917
43
yy869:
9918
43
    YYDEBUG(869, *YYCURSOR);
9919
43
    yyleng = YYCURSOR - SCNG(yy_text);
9920
43
#line 2438 "Zend/zend_language_scanner.l"
9921
43
    {
9922
43
  RETURN_TOKEN_WITH_STR(T_NAME_RELATIVE, sizeof("namespace\\") - 1);
9923
43
}
9924
0
#line 9925 "Zend/zend_language_scanner.c"
9925
10
yy870:
9926
10
    YYDEBUG(870, *YYCURSOR);
9927
10
    yych = *++YYCURSOR;
9928
10
    if (yych == ')') goto yy899;
9929
0
    goto yy86;
9930
35
yy871:
9931
35
    YYDEBUG(871, *YYCURSOR);
9932
35
    yych = *++YYCURSOR;
9933
35
    if (yych == 'E') goto yy901;
9934
35
    if (yych == 'e') goto yy901;
9935
23
    goto yy86;
9936
23
yy872:
9937
7
    YYDEBUG(872, *YYCURSOR);
9938
7
    ++YYCURSOR;
9939
7
    YYDEBUG(873, *YYCURSOR);
9940
7
    yyleng = YYCURSOR - SCNG(yy_text);
9941
7
#line 1785 "Zend/zend_language_scanner.l"
9942
7
    {
9943
7
  RETURN_TOKEN_WITH_IDENT(T_PUBLIC_SET);
9944
7
}
9945
0
#line 9946 "Zend/zend_language_scanner.c"
9946
18
yy874:
9947
18
    YYDEBUG(874, *YYCURSOR);
9948
18
    yyaccept = 4;
9949
18
    yych = *(YYMARKER = ++YYCURSOR);
9950
18
    if (yych == 'E') goto yy902;
9951
17
    if (yych == 'e') goto yy902;
9952
2
    goto yy48;
9953
42
yy875:
9954
42
    YYDEBUG(875, *YYCURSOR);
9955
42
    ++YYCURSOR;
9956
158
yy876:
9957
158
    YYDEBUG(876, *YYCURSOR);
9958
158
    yyleng = YYCURSOR - SCNG(yy_text);
9959
158
#line 1427 "Zend/zend_language_scanner.l"
9960
158
    {
9961
158
  yyless(yyleng - 1);
9962
158
  HANDLE_NEWLINES(yytext, yyleng);
9963
158
  RETURN_TOKEN_WITH_IDENT(T_YIELD_FROM);
9964
158
}
9965
0
#line 9966 "Zend/zend_language_scanner.c"
9966
607
yy877:
9967
607
    YYDEBUG(877, *YYCURSOR);
9968
607
    ++YYCURSOR;
9969
607
    YYFILL(1);
9970
607
    yych = *YYCURSOR;
9971
607
    if (yych <= '\r') {
9972
539
      if (yych <= '\t') {
9973
19
        if (yych <= 0x00) goto yy86;
9974
3
        goto yy808;
9975
520
      } else {
9976
520
        if (yych <= '\n') goto yy904;
9977
126
        if (yych <= '\f') goto yy808;
9978
118
        goto yy904;
9979
126
      }
9980
539
    } else {
9981
68
      if (yych <= '*') {
9982
24
        if (yych <= ')') goto yy808;
9983
10
        goto yy848;
9984
44
      } else {
9985
44
        if (yych == '[') goto yy696;
9986
44
        goto yy808;
9987
44
      }
9988
68
    }
9989
135
yy878:
9990
135
    YYDEBUG(878, *YYCURSOR);
9991
135
    ++YYCURSOR;
9992
135
    YYFILL(1);
9993
135
    yych = *YYCURSOR;
9994
135
    if (yych <= '*') {
9995
117
      if (yych <= 0x00) goto yy86;
9996
109
      if (yych <= ')') goto yy696;
9997
88
      goto yy906;
9998
109
    } else {
9999
18
      if (yych == '/') goto yy808;
10000
6
      goto yy696;
10001
18
    }
10002
48
yy879:
10003
48
    YYDEBUG(879, *YYCURSOR);
10004
48
    ++YYCURSOR;
10005
48
    YYFILL(1);
10006
48
    yych = *YYCURSOR;
10007
48
    if (yych <= 'Q') {
10008
3
      if (yych <= 0x00) goto yy86;
10009
0
      if (yych == '*') goto yy760;
10010
0
      goto yy696;
10011
45
    } else {
10012
45
      if (yych <= 'R') goto yy907;
10013
10
      if (yych == 'r') goto yy907;
10014
1
      goto yy696;
10015
10
    }
10016
176
yy880:
10017
176
    YYDEBUG(880, *YYCURSOR);
10018
176
    ++YYCURSOR;
10019
176
    YYFILL(1);
10020
176
    yych = *YYCURSOR;
10021
176
    if (yych <= '9') {
10022
50
      if (yych <= '\n') {
10023
23
        if (yych <= 0x00) goto yy875;
10024
23
        if (yych <= '\t') goto yy908;
10025
23
        goto yy909;
10026
27
      } else {
10027
27
        if (yych == '\r') goto yy909;
10028
27
        if (yych <= '/') goto yy908;
10029
6
        goto yy692;
10030
27
      }
10031
126
    } else {
10032
126
      if (yych <= '_') {
10033
92
        if (yych <= '@') goto yy908;
10034
83
        if (yych <= 'Z') goto yy692;
10035
2
        if (yych <= '^') goto yy908;
10036
0
        goto yy692;
10037
34
      } else {
10038
34
        if (yych <= '`') goto yy908;
10039
33
        if (yych <= 'z') goto yy692;
10040
22
        if (yych <= 0x7F) goto yy908;
10041
15
        goto yy692;
10042
22
      }
10043
126
    }
10044
10
yy881:
10045
10
    YYDEBUG(881, *YYCURSOR);
10046
10
    yyaccept = 4;
10047
10
    yych = *(YYMARKER = ++YYCURSOR);
10048
10
    if (yych == '_') goto yy910;
10049
0
    goto yy48;
10050
9
yy882:
10051
9
    YYDEBUG(882, *YYCURSOR);
10052
9
    yyaccept = 4;
10053
9
    yych = *(YYMARKER = ++YYCURSOR);
10054
9
    if (yych == 'I') goto yy912;
10055
4
    if (yych == 'i') goto yy912;
10056
0
    goto yy48;
10057
32
yy883:
10058
32
    YYDEBUG(883, *YYCURSOR);
10059
32
    yyaccept = 4;
10060
32
    yych = *(YYMARKER = ++YYCURSOR);
10061
32
    if (yych == '_') goto yy913;
10062
11
    goto yy48;
10063
11
yy884:
10064
9
    YYDEBUG(884, *YYCURSOR);
10065
9
    yyaccept = 4;
10066
9
    yych = *(YYMARKER = ++YYCURSOR);
10067
9
    if (yych == '_') goto yy914;
10068
1
    goto yy48;
10069
2
yy885:
10070
2
    YYDEBUG(885, *YYCURSOR);
10071
2
    ++YYCURSOR;
10072
8
yy886:
10073
8
    YYDEBUG(886, *YYCURSOR);
10074
8
    yyleng = YYCURSOR - SCNG(yy_text);
10075
8
#line 1569 "Zend/zend_language_scanner.l"
10076
8
    {
10077
8
  yyless(4);
10078
8
  RETURN_TOKEN_WITH_STR(T_STRING, 0);
10079
8
}
10080
0
#line 10081 "Zend/zend_language_scanner.c"
10081
20
yy887:
10082
20
    YYDEBUG(887, *YYCURSOR);
10083
20
    yych = *++YYCURSOR;
10084
20
    if (yych == 'N') goto yy916;
10085
8
    if (yych == 'n') goto yy916;
10086
4
    goto yy86;
10087
26
yy888:
10088
26
    YYDEBUG(888, *YYCURSOR);
10089
26
    ++YYCURSOR;
10090
26
    YYFILL(1);
10091
26
    yych = *YYCURSOR;
10092
26
    if (yych <= '\f') {
10093
15
      if (yych <= 0x00) goto yy86;
10094
15
      if (yych == '\n') goto yy859;
10095
5
      goto yy738;
10096
15
    } else {
10097
11
      if (yych <= '\r') goto yy859;
10098
11
      if (yych == '*') goto yy789;
10099
7
      goto yy738;
10100
11
    }
10101
195
yy889:
10102
195
    YYDEBUG(889, *YYCURSOR);
10103
195
    ++YYCURSOR;
10104
195
    YYFILL(1);
10105
195
    yych = *YYCURSOR;
10106
195
    if (yych <= '\f') {
10107
11
      if (yych <= 0x00) goto yy86;
10108
2
      if (yych == '\n') goto yy787;
10109
0
      goto yy738;
10110
184
    } else {
10111
184
      if (yych <= '\r') goto yy787;
10112
160
      if (yych == '*') goto yy917;
10113
59
      goto yy738;
10114
160
    }
10115
57
yy890:
10116
57
    YYDEBUG(890, *YYCURSOR);
10117
57
    yyaccept = 53;
10118
57
    YYMARKER = ++YYCURSOR;
10119
57
    YYFILL(1);
10120
57
    yych = *YYCURSOR;
10121
57
    if (yych <= '\f') {
10122
16
      if (yych <= 0x00) goto yy583;
10123
11
      if (yych == '\n') goto yy787;
10124
5
      goto yy738;
10125
41
    } else {
10126
41
      if (yych <= '\r') goto yy787;
10127
35
      if (yych == '*') goto yy789;
10128
30
      goto yy738;
10129
35
    }
10130
95
yy891:
10131
95
    YYDEBUG(891, *YYCURSOR);
10132
95
    yyaccept = 53;
10133
95
    YYMARKER = ++YYCURSOR;
10134
95
    YYFILL(1);
10135
95
    yych = *YYCURSOR;
10136
95
    if (yych <= ')') {
10137
12
      if (yych <= '\n') {
10138
1
        if (yych <= 0x00) goto yy583;
10139
1
        if (yych <= '\t') goto yy738;
10140
1
        goto yy787;
10141
11
      } else {
10142
11
        if (yych == '\r') goto yy787;
10143
9
        goto yy738;
10144
11
      }
10145
83
    } else {
10146
83
      if (yych <= 'X') {
10147
25
        if (yych <= '*') goto yy789;
10148
24
        if (yych <= 'W') goto yy738;
10149
14
        goto yy918;
10150
58
      } else {
10151
58
        if (yych == 'x') goto yy918;
10152
38
        goto yy738;
10153
58
      }
10154
83
    }
10155
160
yy892:
10156
160
    YYDEBUG(892, *YYCURSOR);
10157
160
    yyaccept = 53;
10158
160
    YYMARKER = ++YYCURSOR;
10159
160
    YYFILL(1);
10160
160
    yych = *YYCURSOR;
10161
160
    if (yych <= ')') {
10162
22
      if (yych <= '\n') {
10163
11
        if (yych <= 0x00) goto yy583;
10164
11
        if (yych <= '\t') goto yy738;
10165
6
        goto yy787;
10166
11
      } else {
10167
11
        if (yych == '\r') goto yy787;
10168
11
        goto yy738;
10169
11
      }
10170
138
    } else {
10171
138
      if (yych <= 'M') {
10172
102
        if (yych <= '*') goto yy789;
10173
98
        if (yych <= 'L') goto yy738;
10174
95
        goto yy919;
10175
98
      } else {
10176
36
        if (yych == 'm') goto yy919;
10177
8
        goto yy738;
10178
36
      }
10179
138
    }
10180
6
yy893:
10181
6
    YYDEBUG(893, *YYCURSOR);
10182
6
    ++YYCURSOR;
10183
6
    YYFILL(1);
10184
6
    yych = *YYCURSOR;
10185
6
    if (yych <= 'D') {
10186
0
      if (yych <= 0x00) goto yy86;
10187
0
      if (yych == '*') goto yy668;
10188
0
      goto yy590;
10189
6
    } else {
10190
6
      if (yych <= 'E') goto yy920;
10191
6
      if (yych == 'e') goto yy920;
10192
1
      goto yy590;
10193
6
    }
10194
48
yy894:
10195
48
    YYDEBUG(894, *YYCURSOR);
10196
48
    ++YYCURSOR;
10197
48
    YYFILL(1);
10198
48
    yych = *YYCURSOR;
10199
48
    if (yych <= 'K') {
10200
5
      if (yych <= 0x00) goto yy86;
10201
2
      if (yych == '*') goto yy668;
10202
2
      goto yy590;
10203
43
    } else {
10204
43
      if (yych <= 'L') goto yy921;
10205
43
      if (yych == 'l') goto yy921;
10206
3
      goto yy590;
10207
43
    }
10208
35
yy895:
10209
35
    YYDEBUG(895, *YYCURSOR);
10210
35
    ++YYCURSOR;
10211
35
    YYFILL(1);
10212
35
    yych = *YYCURSOR;
10213
35
    if (yych <= '\r') {
10214
5
      if (yych <= '\t') {
10215
2
        if (yych <= 0x00) goto yy86;
10216
2
        goto yy586;
10217
3
      } else {
10218
3
        if (yych <= '\n') goto yy495;
10219
2
        if (yych <= '\f') goto yy586;
10220
2
        goto yy495;
10221
2
      }
10222
30
    } else {
10223
30
      if (yych <= 'S') {
10224
3
        if (yych <= 'R') goto yy586;
10225
1
        goto yy922;
10226
27
      } else {
10227
27
        if (yych == 's') goto yy922;
10228
27
        goto yy586;
10229
27
      }
10230
30
    }
10231
46
yy896:
10232
46
    YYDEBUG(896, *YYCURSOR);
10233
46
    ++YYCURSOR;
10234
46
    YYFILL(1);
10235
46
    yych = *YYCURSOR;
10236
46
    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
46
    } else {
10246
46
      if (yych <= 'E') {
10247
5
        if (yych <= 'D') goto yy586;
10248
5
        goto yy923;
10249
41
      } else {
10250
41
        if (yych == 'e') goto yy923;
10251
22
        goto yy586;
10252
41
      }
10253
46
    }
10254
1
yy897:
10255
1
    YYDEBUG(897, *YYCURSOR);
10256
1
    yyaccept = 89;
10257
1
    yych = *(YYMARKER = ++YYCURSOR);
10258
1
    if (yybm[256+yych] & 128) {
10259
1
      goto yy47;
10260
1
    }
10261
0
    if (yych == '\\') goto yy164;
10262
0
yy898:
10263
0
    YYDEBUG(898, *YYCURSOR);
10264
0
    yyleng = YYCURSOR - SCNG(yy_text);
10265
0
#line 1725 "Zend/zend_language_scanner.l"
10266
0
    {
10267
0
  RETURN_TOKEN_WITH_IDENT(T_INCLUDE_ONCE);
10268
0
}
10269
0
#line 10270 "Zend/zend_language_scanner.c"
10270
10
yy899:
10271
10
    YYDEBUG(899, *YYCURSOR);
10272
10
    ++YYCURSOR;
10273
10
    YYDEBUG(900, *YYCURSOR);
10274
10
    yyleng = YYCURSOR - SCNG(yy_text);
10275
10
#line 1793 "Zend/zend_language_scanner.l"
10276
10
    {
10277
10
  RETURN_TOKEN_WITH_IDENT(T_PRIVATE_SET);
10278
10
}
10279
0
#line 10280 "Zend/zend_language_scanner.c"
10280
12
yy901:
10281
12
    YYDEBUG(901, *YYCURSOR);
10282
12
    yych = *++YYCURSOR;
10283
12
    if (yych == 'T') goto yy924;
10284
12
    if (yych == 't') goto yy924;
10285
2
    goto yy86;
10286
16
yy902:
10287
16
    YYDEBUG(902, *YYCURSOR);
10288
16
    yyaccept = 90;
10289
16
    yych = *(YYMARKER = ++YYCURSOR);
10290
16
    if (yybm[256+yych] & 128) {
10291
0
      goto yy47;
10292
0
    }
10293
16
    if (yych == '\\') goto yy164;
10294
16
yy903:
10295
16
    YYDEBUG(903, *YYCURSOR);
10296
16
    yyleng = YYCURSOR - SCNG(yy_text);
10297
16
#line 1733 "Zend/zend_language_scanner.l"
10298
16
    {
10299
16
  RETURN_TOKEN_WITH_IDENT(T_REQUIRE_ONCE);
10300
16
}
10301
0
#line 10302 "Zend/zend_language_scanner.c"
10302
556
yy904:
10303
556
    YYDEBUG(904, *YYCURSOR);
10304
556
    ++YYCURSOR;
10305
556
    YYFILL(1);
10306
556
    yych = *YYCURSOR;
10307
556
    YYDEBUG(905, *YYCURSOR);
10308
556
    if (yych <= '"') {
10309
85
      if (yych <= '\n') {
10310
55
        if (yych <= 0x00) goto yy86;
10311
48
        if (yych <= 0x08) goto yy808;
10312
16
        if (yych <= '\t') goto yy904;
10313
8
        goto yy846;
10314
30
      } else {
10315
30
        if (yych <= '\r') {
10316
17
          if (yych <= '\f') goto yy808;
10317
17
          goto yy846;
10318
17
        } else {
10319
13
          if (yych == ' ') goto yy904;
10320
2
          goto yy808;
10321
13
        }
10322
30
      }
10323
471
    } else {
10324
471
      if (yych <= '/') {
10325
286
        if (yych <= ')') {
10326
38
          if (yych <= '#') goto yy925;
10327
30
          goto yy808;
10328
248
        } else {
10329
248
          if (yych <= '*') goto yy848;
10330
239
          if (yych <= '.') goto yy808;
10331
136
          goto yy926;
10332
239
        }
10333
286
      } else {
10334
185
        if (yych <= 'F') {
10335
87
          if (yych <= 'E') goto yy808;
10336
81
          goto yy927;
10337
98
        } else {
10338
98
          if (yych == 'f') goto yy927;
10339
38
          goto yy808;
10340
98
        }
10341
185
      }
10342
471
    }
10343
88
yy906:
10344
88
    YYDEBUG(906, *YYCURSOR);
10345
88
    ++YYCURSOR;
10346
88
    YYFILL(1);
10347
88
    yych = *YYCURSOR;
10348
88
    if (yych <= '*') {
10349
4
      if (yych <= 0x00) goto yy86;
10350
4
      if (yych <= ')') goto yy696;
10351
1
      goto yy760;
10352
84
    } else {
10353
84
      if (yych == '/') goto yy846;
10354
9
      goto yy696;
10355
84
    }
10356
44
yy907:
10357
44
    YYDEBUG(907, *YYCURSOR);
10358
44
    ++YYCURSOR;
10359
44
    YYFILL(1);
10360
44
    yych = *YYCURSOR;
10361
44
    if (yych <= 'N') {
10362
3
      if (yych <= 0x00) goto yy86;
10363
3
      if (yych == '*') goto yy760;
10364
3
      goto yy696;
10365
41
    } else {
10366
41
      if (yych <= 'O') goto yy928;
10367
11
      if (yych == 'o') goto yy928;
10368
4
      goto yy696;
10369
11
    }
10370
40
yy908:
10371
40
    YYDEBUG(908, *YYCURSOR);
10372
40
    yyaccept = 91;
10373
40
    YYMARKER = ++YYCURSOR;
10374
40
    YYFILL(1);
10375
40
    yych = *YYCURSOR;
10376
40
    if (yych <= '\n') {
10377
26
      if (yych <= 0x00) goto yy876;
10378
17
      if (yych <= '\t') goto yy692;
10379
16
      goto yy616;
10380
17
    } else {
10381
14
      if (yych == '\r') goto yy616;
10382
12
      goto yy692;
10383
14
    }
10384
23
yy909:
10385
23
    YYDEBUG(909, *YYCURSOR);
10386
23
    yyaccept = 91;
10387
23
    YYMARKER = ++YYCURSOR;
10388
23
    YYFILL(5);
10389
23
    yych = *YYCURSOR;
10390
23
    if (yych <= '"') {
10391
12
      if (yych <= '\f') {
10392
8
        if (yych <= 0x08) goto yy876;
10393
8
        if (yych <= '\n') goto yy616;
10394
0
        goto yy876;
10395
8
      } else {
10396
4
        if (yych <= '\r') goto yy616;
10397
4
        if (yych == ' ') goto yy616;
10398
4
        goto yy876;
10399
4
      }
10400
12
    } else {
10401
11
      if (yych <= 'E') {
10402
7
        if (yych <= '#') goto yy618;
10403
7
        if (yych == '/') goto yy619;
10404
1
        goto yy876;
10405
7
      } else {
10406
4
        if (yych <= 'F') goto yy691;
10407
4
        if (yych == 'f') goto yy691;
10408
4
        goto yy876;
10409
4
      }
10410
11
    }
10411
10
yy910:
10412
10
    YYDEBUG(910, *YYCURSOR);
10413
10
    yyaccept = 92;
10414
10
    yych = *(YYMARKER = ++YYCURSOR);
10415
10
    if (yybm[256+yych] & 128) {
10416
1
      goto yy47;
10417
1
    }
10418
9
    if (yych == '\\') goto yy164;
10419
9
yy911:
10420
9
    YYDEBUG(911, *YYCURSOR);
10421
9
    yyleng = YYCURSOR - SCNG(yy_text);
10422
9
#line 2260 "Zend/zend_language_scanner.l"
10423
9
    {
10424
9
  RETURN_TOKEN_WITH_IDENT(T_FUNC_C);
10425
9
}
10426
0
#line 10427 "Zend/zend_language_scanner.c"
10427
9
yy912:
10428
9
    YYDEBUG(912, *YYCURSOR);
10429
9
    yyaccept = 4;
10430
9
    yych = *(YYMARKER = ++YYCURSOR);
10431
9
    if (yych == 'L') goto yy929;
10432
4
    if (yych == 'l') goto yy929;
10433
0
    goto yy48;
10434
21
yy913:
10435
21
    YYDEBUG(913, *YYCURSOR);
10436
21
    yyaccept = 4;
10437
21
    yych = *(YYMARKER = ++YYCURSOR);
10438
21
    if (yych == '_') goto yy930;
10439
0
    goto yy48;
10440
8
yy914:
10441
8
    YYDEBUG(914, *YYCURSOR);
10442
8
    yyaccept = 93;
10443
8
    yych = *(YYMARKER = ++YYCURSOR);
10444
8
    if (yybm[256+yych] & 128) {
10445
0
      goto yy47;
10446
0
    }
10447
8
    if (yych == '\\') goto yy164;
10448
8
yy915:
10449
8
    YYDEBUG(915, *YYCURSOR);
10450
8
    yyleng = YYCURSOR - SCNG(yy_text);
10451
8
#line 2264 "Zend/zend_language_scanner.l"
10452
8
    {
10453
8
  RETURN_TOKEN_WITH_IDENT(T_PROPERTY_C);
10454
8
}
10455
0
#line 10456 "Zend/zend_language_scanner.c"
10456
16
yy916:
10457
16
    YYDEBUG(916, *YYCURSOR);
10458
16
    yych = *++YYCURSOR;
10459
16
    if (yych == 'T') goto yy857;
10460
16
    if (yych == 't') goto yy857;
10461
12
    goto yy86;
10462
101
yy917:
10463
101
    YYDEBUG(917, *YYCURSOR);
10464
101
    ++YYCURSOR;
10465
101
    YYFILL(1);
10466
101
    yych = *YYCURSOR;
10467
101
    if (yych <= '\r') {
10468
14
      if (yych <= '\t') {
10469
2
        if (yych <= 0x00) goto yy86;
10470
2
        goto yy738;
10471
12
      } else {
10472
12
        if (yych <= '\n') goto yy787;
10473
12
        if (yych <= '\f') goto yy738;
10474
8
        goto yy787;
10475
12
      }
10476
87
    } else {
10477
87
      if (yych <= '*') {
10478
38
        if (yych <= ')') goto yy738;
10479
3
        goto yy789;
10480
49
      } else {
10481
49
        if (yych == '/') goto yy859;
10482
28
        goto yy738;
10483
49
      }
10484
87
    }
10485
34
yy918:
10486
34
    YYDEBUG(918, *YYCURSOR);
10487
34
    ++YYCURSOR;
10488
34
    YYFILL(1);
10489
34
    yych = *YYCURSOR;
10490
34
    if (yych <= ')') {
10491
0
      if (yych <= '\n') {
10492
0
        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
34
    } else {
10500
34
      if (yych <= 'T') {
10501
19
        if (yych <= '*') goto yy789;
10502
17
        if (yych <= 'S') goto yy738;
10503
6
        goto yy932;
10504
17
      } else {
10505
15
        if (yych == 't') goto yy932;
10506
3
        goto yy738;
10507
15
      }
10508
34
    }
10509
123
yy919:
10510
123
    YYDEBUG(919, *YYCURSOR);
10511
123
    ++YYCURSOR;
10512
123
    YYFILL(1);
10513
123
    yych = *YYCURSOR;
10514
123
    if (yych <= ')') {
10515
13
      if (yych <= '\n') {
10516
0
        if (yych <= 0x00) goto yy86;
10517
0
        if (yych <= '\t') goto yy738;
10518
0
        goto yy787;
10519
13
      } else {
10520
13
        if (yych == '\r') goto yy787;
10521
2
        goto yy738;
10522
13
      }
10523
110
    } else {
10524
110
      if (yych <= 'P') {
10525
14
        if (yych <= '*') goto yy789;
10526
12
        if (yych <= 'O') goto yy738;
10527
0
        goto yy933;
10528
96
      } else {
10529
96
        if (yych == 'p') goto yy933;
10530
3
        goto yy738;
10531
96
      }
10532
110
    }
10533
5
yy920:
10534
5
    YYDEBUG(920, *YYCURSOR);
10535
5
    ++YYCURSOR;
10536
5
    YYFILL(1);
10537
5
    yych = *YYCURSOR;
10538
5
    if (yych <= 'M') {
10539
3
      if (yych <= 0x00) goto yy86;
10540
3
      if (yych == '*') goto yy668;
10541
3
      goto yy590;
10542
3
    } else {
10543
2
      if (yych <= 'N') goto yy934;
10544
2
      if (yych == 'n') goto yy934;
10545
1
      goto yy590;
10546
2
    }
10547
40
yy921:
10548
40
    YYDEBUG(921, *YYCURSOR);
10549
40
    ++YYCURSOR;
10550
40
    YYFILL(1);
10551
40
    yych = *YYCURSOR;
10552
40
    if (yych <= 'D') {
10553
9
      if (yych <= 0x00) goto yy86;
10554
7
      if (yych == '*') goto yy668;
10555
4
      goto yy590;
10556
31
    } else {
10557
31
      if (yych <= 'E') goto yy935;
10558
31
      if (yych == 'e') goto yy935;
10559
0
      goto yy590;
10560
31
    }
10561
1
yy922:
10562
1
    YYDEBUG(922, *YYCURSOR);
10563
1
    yyaccept = 94;
10564
1
    YYMARKER = ++YYCURSOR;
10565
1
    YYFILL(1);
10566
1
    yych = *YYCURSOR;
10567
1
    if (yych <= '\n') {
10568
0
      if (yych <= 0x00) goto yy886;
10569
0
      if (yych <= '\t') goto yy586;
10570
0
      goto yy495;
10571
1
    } else {
10572
1
      if (yych == '\r') goto yy495;
10573
1
      goto yy586;
10574
1
    }
10575
24
yy923:
10576
24
    YYDEBUG(923, *YYCURSOR);
10577
24
    ++YYCURSOR;
10578
24
    YYFILL(1);
10579
24
    yych = *YYCURSOR;
10580
24
    if (yych <= '\r') {
10581
2
      if (yych <= '\t') {
10582
0
        if (yych <= 0x00) goto yy86;
10583
0
        goto yy586;
10584
2
      } else {
10585
2
        if (yych <= '\n') goto yy495;
10586
0
        if (yych <= '\f') goto yy586;
10587
0
        goto yy495;
10588
0
      }
10589
22
    } else {
10590
22
      if (yych <= 'N') {
10591
21
        if (yych <= 'M') goto yy586;
10592
16
        goto yy936;
10593
21
      } else {
10594
1
        if (yych == 'n') goto yy936;
10595
0
        goto yy586;
10596
1
      }
10597
22
    }
10598
10
yy924:
10599
10
    YYDEBUG(924, *YYCURSOR);
10600
10
    yych = *++YYCURSOR;
10601
10
    if (yych == ')') goto yy937;
10602
2
    goto yy86;
10603
8
yy925:
10604
8
    YYDEBUG(925, *YYCURSOR);
10605
8
    ++YYCURSOR;
10606
8
    YYFILL(1);
10607
8
    yych = *YYCURSOR;
10608
8
    if (yych <= '\f') {
10609
3
      if (yych <= 0x00) goto yy86;
10610
0
      if (yych == '\n') goto yy904;
10611
0
      goto yy808;
10612
5
    } else {
10613
5
      if (yych <= '\r') goto yy904;
10614
5
      if (yych == '*') goto yy848;
10615
1
      goto yy808;
10616
5
    }
10617
136
yy926:
10618
136
    YYDEBUG(926, *YYCURSOR);
10619
136
    ++YYCURSOR;
10620
136
    YYFILL(1);
10621
136
    yych = *YYCURSOR;
10622
136
    if (yych <= '\f') {
10623
4
      if (yych <= 0x00) goto yy86;
10624
4
      if (yych == '\n') goto yy846;
10625
4
      goto yy808;
10626
132
    } else {
10627
132
      if (yych <= '\r') goto yy846;
10628
128
      if (yych == '*') goto yy939;
10629
29
      goto yy808;
10630
128
    }
10631
141
yy927:
10632
141
    YYDEBUG(927, *YYCURSOR);
10633
141
    ++YYCURSOR;
10634
141
    YYFILL(1);
10635
141
    yych = *YYCURSOR;
10636
141
    if (yych <= ')') {
10637
9
      if (yych <= '\n') {
10638
9
        if (yych <= 0x00) goto yy86;
10639
6
        if (yych <= '\t') goto yy808;
10640
2
        goto yy846;
10641
6
      } else {
10642
0
        if (yych == '\r') goto yy846;
10643
0
        goto yy808;
10644
0
      }
10645
132
    } else {
10646
132
      if (yych <= 'R') {
10647
79
        if (yych <= '*') goto yy848;
10648
79
        if (yych <= 'Q') goto yy808;
10649
68
        goto yy940;
10650
79
      } else {
10651
53
        if (yych == 'r') goto yy940;
10652
3
        goto yy808;
10653
53
      }
10654
132
    }
10655
37
yy928:
10656
37
    YYDEBUG(928, *YYCURSOR);
10657
37
    ++YYCURSOR;
10658
37
    YYFILL(1);
10659
37
    yych = *YYCURSOR;
10660
37
    if (yych <= 'L') {
10661
4
      if (yych <= 0x00) goto yy86;
10662
3
      if (yych == '*') goto yy760;
10663
2
      goto yy696;
10664
33
    } else {
10665
33
      if (yych <= 'M') goto yy941;
10666
1
      if (yych == 'm') goto yy941;
10667
1
      goto yy696;
10668
1
    }
10669
9
yy929:
10670
9
    YYDEBUG(929, *YYCURSOR);
10671
9
    yyaccept = 4;
10672
9
    yych = *(YYMARKER = ++YYCURSOR);
10673
9
    if (yych == 'E') goto yy942;
10674
4
    if (yych == 'e') goto yy942;
10675
0
    goto yy48;
10676
21
yy930:
10677
21
    YYDEBUG(930, *YYCURSOR);
10678
21
    yyaccept = 95;
10679
21
    yych = *(YYMARKER = ++YYCURSOR);
10680
21
    if (yybm[256+yych] & 128) {
10681
0
      goto yy47;
10682
0
    }
10683
21
    if (yych == '\\') goto yy164;
10684
21
yy931:
10685
21
    YYDEBUG(931, *YYCURSOR);
10686
21
    yyleng = YYCURSOR - SCNG(yy_text);
10687
21
#line 2284 "Zend/zend_language_scanner.l"
10688
21
    {
10689
21
  RETURN_TOKEN_WITH_IDENT(T_NS_C);
10690
21
}
10691
0
#line 10692 "Zend/zend_language_scanner.c"
10692
18
yy932:
10693
18
    YYDEBUG(932, *YYCURSOR);
10694
18
    ++YYCURSOR;
10695
18
    YYFILL(1);
10696
18
    yych = *YYCURSOR;
10697
18
    if (yych <= ')') {
10698
9
      if (yych <= '\n') {
10699
5
        if (yych <= 0x00) goto yy86;
10700
5
        if (yych <= '\t') goto yy738;
10701
5
        goto yy787;
10702
5
      } else {
10703
4
        if (yych == '\r') goto yy787;
10704
4
        goto yy738;
10705
4
      }
10706
9
    } else {
10707
9
      if (yych <= 'E') {
10708
3
        if (yych <= '*') goto yy789;
10709
3
        if (yych <= 'D') goto yy738;
10710
0
        goto yy943;
10711
6
      } else {
10712
6
        if (yych == 'e') goto yy943;
10713
0
        goto yy738;
10714
6
      }
10715
9
    }
10716
93
yy933:
10717
93
    YYDEBUG(933, *YYCURSOR);
10718
93
    ++YYCURSOR;
10719
93
    YYFILL(1);
10720
93
    yych = *YYCURSOR;
10721
93
    if (yych <= ')') {
10722
3
      if (yych <= '\n') {
10723
3
        if (yych <= 0x00) goto yy86;
10724
2
        if (yych <= '\t') goto yy738;
10725
2
        goto yy787;
10726
2
      } else {
10727
0
        if (yych == '\r') goto yy787;
10728
0
        goto yy738;
10729
0
      }
10730
90
    } else {
10731
90
      if (yych <= 'L') {
10732
7
        if (yych <= '*') goto yy789;
10733
0
        if (yych <= 'K') goto yy738;
10734
0
        goto yy944;
10735
83
      } else {
10736
83
        if (yych == 'l') goto yy944;
10737
6
        goto yy738;
10738
83
      }
10739
90
    }
10740
1
yy934:
10741
1
    YYDEBUG(934, *YYCURSOR);
10742
1
    ++YYCURSOR;
10743
1
    YYFILL(1);
10744
1
    yych = *YYCURSOR;
10745
1
    if (yych <= 'C') {
10746
0
      if (yych <= 0x00) goto yy86;
10747
0
      if (yych == '*') goto yy668;
10748
0
      goto yy590;
10749
1
    } else {
10750
1
      if (yych <= 'D') goto yy945;
10751
1
      if (yych == 'd') goto yy945;
10752
0
      goto yy590;
10753
1
    }
10754
31
yy935:
10755
31
    YYDEBUG(935, *YYCURSOR);
10756
31
    ++YYCURSOR;
10757
31
    YYFILL(1);
10758
31
    yych = *YYCURSOR;
10759
31
    if (yych <= 'L') {
10760
7
      if (yych <= 0x00) goto yy86;
10761
2
      if (yych == '*') goto yy668;
10762
2
      goto yy590;
10763
24
    } else {
10764
24
      if (yych <= 'M') goto yy946;
10765
24
      if (yych == 'm') goto yy946;
10766
2
      goto yy590;
10767
24
    }
10768
17
yy936:
10769
17
    YYDEBUG(936, *YYCURSOR);
10770
17
    ++YYCURSOR;
10771
17
    YYFILL(1);
10772
17
    yych = *YYCURSOR;
10773
17
    if (yych <= '\r') {
10774
0
      if (yych <= '\t') {
10775
0
        if (yych <= 0x00) goto yy86;
10776
0
        goto yy586;
10777
0
      } else {
10778
0
        if (yych <= '\n') goto yy495;
10779
0
        if (yych <= '\f') goto yy586;
10780
0
        goto yy495;
10781
0
      }
10782
17
    } else {
10783
17
      if (yych <= 'T') {
10784
11
        if (yych <= 'S') goto yy586;
10785
11
        goto yy895;
10786
11
      } else {
10787
6
        if (yych == 't') goto yy895;
10788
5
        goto yy586;
10789
6
      }
10790
17
    }
10791
8
yy937:
10792
8
    YYDEBUG(937, *YYCURSOR);
10793
8
    ++YYCURSOR;
10794
8
    YYDEBUG(938, *YYCURSOR);
10795
8
    yyleng = YYCURSOR - SCNG(yy_text);
10796
8
#line 1789 "Zend/zend_language_scanner.l"
10797
8
    {
10798
8
  RETURN_TOKEN_WITH_IDENT(T_PROTECTED_SET);
10799
8
}
10800
0
#line 10801 "Zend/zend_language_scanner.c"
10801
99
yy939:
10802
99
    YYDEBUG(939, *YYCURSOR);
10803
99
    ++YYCURSOR;
10804
99
    YYFILL(1);
10805
99
    yych = *YYCURSOR;
10806
99
    if (yych <= '\r') {
10807
13
      if (yych <= '\t') {
10808
7
        if (yych <= 0x00) goto yy86;
10809
6
        goto yy808;
10810
7
      } else {
10811
6
        if (yych <= '\n') goto yy846;
10812
5
        if (yych <= '\f') goto yy808;
10813
0
        goto yy846;
10814
5
      }
10815
86
    } else {
10816
86
      if (yych <= '*') {
10817
11
        if (yych <= ')') goto yy808;
10818
0
        goto yy848;
10819
75
      } else {
10820
75
        if (yych == '/') goto yy904;
10821
50
        goto yy808;
10822
75
      }
10823
86
    }
10824
118
yy940:
10825
118
    YYDEBUG(940, *YYCURSOR);
10826
118
    ++YYCURSOR;
10827
118
    YYFILL(1);
10828
118
    yych = *YYCURSOR;
10829
118
    if (yych <= ')') {
10830
13
      if (yych <= '\n') {
10831
11
        if (yych <= 0x00) goto yy86;
10832
10
        if (yych <= '\t') goto yy808;
10833
5
        goto yy846;
10834
10
      } else {
10835
2
        if (yych == '\r') goto yy846;
10836
2
        goto yy808;
10837
2
      }
10838
105
    } else {
10839
105
      if (yych <= 'O') {
10840
66
        if (yych <= '*') goto yy848;
10841
60
        if (yych <= 'N') goto yy808;
10842
56
        goto yy947;
10843
60
      } else {
10844
39
        if (yych == 'o') goto yy947;
10845
8
        goto yy808;
10846
39
      }
10847
105
    }
10848
32
yy941:
10849
32
    YYDEBUG(941, *YYCURSOR);
10850
32
    ++YYCURSOR;
10851
32
    YYFILL(1);
10852
32
    yych = *YYCURSOR;
10853
32
    if (yych <= '@') {
10854
9
      if (yych <= '*') {
10855
8
        if (yych <= 0x00) goto yy875;
10856
8
        if (yych <= ')') goto yy948;
10857
1
        goto yy949;
10858
8
      } else {
10859
1
        if (yych <= '/') goto yy948;
10860
0
        if (yych <= '9') goto yy696;
10861
0
        goto yy948;
10862
0
      }
10863
23
    } else {
10864
23
      if (yych <= '_') {
10865
6
        if (yych <= 'Z') goto yy696;
10866
3
        if (yych <= '^') goto yy948;
10867
3
        goto yy696;
10868
17
      } else {
10869
17
        if (yych <= '`') goto yy948;
10870
6
        if (yych <= 'z') goto yy696;
10871
6
        if (yych <= 0x7F) goto yy948;
10872
4
        goto yy696;
10873
6
      }
10874
23
    }
10875
9
yy942:
10876
9
    YYDEBUG(942, *YYCURSOR);
10877
9
    yyaccept = 4;
10878
9
    yych = *(YYMARKER = ++YYCURSOR);
10879
9
    if (yych == 'R') goto yy950;
10880
4
    if (yych == 'r') goto yy950;
10881
1
    goto yy48;
10882
6
yy943:
10883
6
    YYDEBUG(943, *YYCURSOR);
10884
6
    ++YYCURSOR;
10885
6
    YYFILL(1);
10886
6
    yych = *YYCURSOR;
10887
6
    if (yych <= ')') {
10888
1
      if (yych <= '\n') {
10889
1
        if (yych <= 0x00) goto yy86;
10890
1
        if (yych <= '\t') goto yy738;
10891
0
        goto yy787;
10892
1
      } else {
10893
0
        if (yych == '\r') goto yy787;
10894
0
        goto yy738;
10895
0
      }
10896
5
    } else {
10897
5
      if (yych <= 'N') {
10898
0
        if (yych <= '*') goto yy789;
10899
0
        if (yych <= 'M') goto yy738;
10900
0
        goto yy952;
10901
5
      } else {
10902
5
        if (yych == 'n') goto yy952;
10903
1
        goto yy738;
10904
5
      }
10905
5
    }
10906
77
yy944:
10907
77
    YYDEBUG(944, *YYCURSOR);
10908
77
    ++YYCURSOR;
10909
77
    YYFILL(1);
10910
77
    yych = *YYCURSOR;
10911
77
    if (yych <= ')') {
10912
13
      if (yych <= '\n') {
10913
0
        if (yych <= 0x00) goto yy86;
10914
0
        if (yych <= '\t') goto yy738;
10915
0
        goto yy787;
10916
13
      } else {
10917
13
        if (yych == '\r') goto yy787;
10918
4
        goto yy738;
10919
13
      }
10920
64
    } else {
10921
64
      if (yych <= 'E') {
10922
3
        if (yych <= '*') goto yy789;
10923
0
        if (yych <= 'D') goto yy738;
10924
0
        goto yy953;
10925
61
      } else {
10926
61
        if (yych == 'e') goto yy953;
10927
2
        goto yy738;
10928
61
      }
10929
64
    }
10930
1
yy945:
10931
1
    YYDEBUG(945, *YYCURSOR);
10932
1
    ++YYCURSOR;
10933
1
    YYFILL(1);
10934
1
    yych = *YYCURSOR;
10935
1
    if (yych <= 'R') {
10936
0
      if (yych <= 0x00) goto yy86;
10937
0
      if (yych == '*') goto yy668;
10938
0
      goto yy590;
10939
1
    } else {
10940
1
      if (yych <= 'S') goto yy954;
10941
0
      if (yych == 's') goto yy954;
10942
0
      goto yy590;
10943
0
    }
10944
22
yy946:
10945
22
    YYDEBUG(946, *YYCURSOR);
10946
22
    ++YYCURSOR;
10947
22
    YYFILL(1);
10948
22
    yych = *YYCURSOR;
10949
22
    if (yych <= 'D') {
10950
0
      if (yych <= 0x00) goto yy86;
10951
0
      if (yych == '*') goto yy668;
10952
0
      goto yy590;
10953
22
    } else {
10954
22
      if (yych <= 'E') goto yy955;
10955
22
      if (yych == 'e') goto yy955;
10956
16
      goto yy590;
10957
22
    }
10958
87
yy947:
10959
87
    YYDEBUG(947, *YYCURSOR);
10960
87
    ++YYCURSOR;
10961
87
    YYFILL(1);
10962
87
    yych = *YYCURSOR;
10963
87
    if (yych <= ')') {
10964
15
      if (yych <= '\n') {
10965
5
        if (yych <= 0x00) goto yy86;
10966
3
        if (yych <= '\t') goto yy808;
10967
3
        goto yy846;
10968
10
      } else {
10969
10
        if (yych == '\r') goto yy846;
10970
1
        goto yy808;
10971
10
      }
10972
72
    } else {
10973
72
      if (yych <= 'M') {
10974
66
        if (yych <= '*') goto yy848;
10975
63
        if (yych <= 'L') goto yy808;
10976
53
        goto yy956;
10977
63
      } else {
10978
6
        if (yych == 'm') goto yy956;
10979
3
        goto yy808;
10980
6
      }
10981
72
    }
10982
21
yy948:
10983
21
    YYDEBUG(948, *YYCURSOR);
10984
21
    yyaccept = 91;
10985
21
    YYMARKER = ++YYCURSOR;
10986
21
    YYFILL(1);
10987
21
    yych = *YYCURSOR;
10988
21
    if (yych <= 0x00) goto yy876;
10989
20
    if (yych == '*') goto yy760;
10990
20
    goto yy696;
10991
20
yy949:
10992
1
    YYDEBUG(949, *YYCURSOR);
10993
1
    yyaccept = 91;
10994
1
    YYMARKER = ++YYCURSOR;
10995
1
    YYFILL(1);
10996
1
    yych = *YYCURSOR;
10997
1
    if (yych <= '*') {
10998
0
      if (yych <= 0x00) goto yy876;
10999
0
      if (yych <= ')') goto yy696;
11000
0
      goto yy760;
11001
1
    } else {
11002
1
      if (yych == '/') goto yy616;
11003
0
      goto yy696;
11004
1
    }
11005
8
yy950:
11006
8
    YYDEBUG(950, *YYCURSOR);
11007
8
    yyaccept = 96;
11008
8
    yych = *(YYMARKER = ++YYCURSOR);
11009
8
    if (yybm[256+yych] & 128) {
11010
0
      goto yy47;
11011
0
    }
11012
8
    if (yych == '\\') goto yy164;
11013
8
yy951:
11014
8
    YYDEBUG(951, *YYCURSOR);
11015
8
    yyleng = YYCURSOR - SCNG(yy_text);
11016
8
#line 1761 "Zend/zend_language_scanner.l"
11017
8
    {
11018
8
  RETURN_TOKEN_WITH_IDENT(T_HALT_COMPILER);
11019
8
}
11020
0
#line 11021 "Zend/zend_language_scanner.c"
11021
4
yy952:
11022
4
    YYDEBUG(952, *YYCURSOR);
11023
4
    ++YYCURSOR;
11024
4
    YYFILL(1);
11025
4
    yych = *YYCURSOR;
11026
4
    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
4
    } else {
11036
4
      if (yych <= 'D') {
11037
0
        if (yych <= '*') goto yy789;
11038
0
        if (yych <= 'C') goto yy738;
11039
0
        goto yy957;
11040
4
      } else {
11041
4
        if (yych == 'd') goto yy957;
11042
0
        goto yy738;
11043
4
      }
11044
4
    }
11045
59
yy953:
11046
59
    YYDEBUG(953, *YYCURSOR);
11047
59
    ++YYCURSOR;
11048
59
    YYFILL(1);
11049
59
    yych = *YYCURSOR;
11050
59
    if (yych <= ')') {
11051
10
      if (yych <= '\n') {
11052
2
        if (yych <= 0x00) goto yy86;
11053
1
        if (yych <= '\t') goto yy738;
11054
1
        goto yy787;
11055
8
      } else {
11056
8
        if (yych == '\r') goto yy787;
11057
5
        goto yy738;
11058
8
      }
11059
49
    } else {
11060
49
      if (yych <= 'M') {
11061
12
        if (yych <= '*') goto yy789;
11062
11
        if (yych <= 'L') goto yy738;
11063
6
        goto yy958;
11064
37
      } else {
11065
37
        if (yych == 'm') goto yy958;
11066
3
        goto yy738;
11067
37
      }
11068
49
    }
11069
1
yy954:
11070
1
    YYDEBUG(954, *YYCURSOR);
11071
1
    yyaccept = 94;
11072
1
    YYMARKER = ++YYCURSOR;
11073
1
    YYFILL(1);
11074
1
    yych = *YYCURSOR;
11075
1
    if (yych <= 0x00) goto yy886;
11076
1
    if (yych == '*') goto yy668;
11077
1
    goto yy590;
11078
6
yy955:
11079
6
    YYDEBUG(955, *YYCURSOR);
11080
6
    ++YYCURSOR;
11081
6
    YYFILL(1);
11082
6
    yych = *YYCURSOR;
11083
6
    if (yych <= 'M') {
11084
0
      if (yych <= 0x00) goto yy86;
11085
0
      if (yych == '*') goto yy668;
11086
0
      goto yy590;
11087
6
    } else {
11088
6
      if (yych <= 'N') goto yy959;
11089
0
      if (yych == 'n') goto yy959;
11090
0
      goto yy590;
11091
0
    }
11092
56
yy956:
11093
56
    YYDEBUG(956, *YYCURSOR);
11094
56
    ++YYCURSOR;
11095
56
    YYFILL(1);
11096
56
    yych = *YYCURSOR;
11097
56
    if (yych <= '/') {
11098
22
      if (yych <= '\f') {
11099
8
        if (yych <= 0x00) goto yy875;
11100
6
        if (yych == '\n') goto yy961;
11101
2
        goto yy960;
11102
14
      } else {
11103
14
        if (yych <= '\r') goto yy961;
11104
14
        if (yych == '*') goto yy962;
11105
10
        goto yy960;
11106
14
      }
11107
34
    } else {
11108
34
      if (yych <= '^') {
11109
18
        if (yych <= '9') goto yy808;
11110
18
        if (yych <= '@') goto yy960;
11111
12
        if (yych <= 'Z') goto yy808;
11112
2
        goto yy960;
11113
16
      } else {
11114
16
        if (yych <= '`') {
11115
8
          if (yych <= '_') goto yy808;
11116
7
          goto yy960;
11117
8
        } else {
11118
8
          if (yych <= 'z') goto yy808;
11119
0
          if (yych <= 0x7F) goto yy960;
11120
0
          goto yy808;
11121
0
        }
11122
16
      }
11123
34
    }
11124
15
yy957:
11125
15
    YYDEBUG(957, *YYCURSOR);
11126
15
    ++YYCURSOR;
11127
15
    YYFILL(1);
11128
15
    yych = *YYCURSOR;
11129
15
    if (yych <= ')') {
11130
4
      if (yych <= '\n') {
11131
4
        if (yych <= 0x00) goto yy86;
11132
4
        if (yych <= '\t') goto yy738;
11133
0
        goto yy787;
11134
4
      } else {
11135
0
        if (yych == '\r') goto yy787;
11136
0
        goto yy738;
11137
0
      }
11138
11
    } else {
11139
11
      if (yych <= 'S') {
11140
6
        if (yych <= '*') goto yy789;
11141
6
        if (yych <= 'R') goto yy738;
11142
4
        goto yy963;
11143
6
      } else {
11144
5
        if (yych == 's') goto yy963;
11145
5
        goto yy738;
11146
5
      }
11147
11
    }
11148
40
yy958:
11149
40
    YYDEBUG(958, *YYCURSOR);
11150
40
    ++YYCURSOR;
11151
40
    YYFILL(1);
11152
40
    yych = *YYCURSOR;
11153
40
    if (yych <= ')') {
11154
1
      if (yych <= '\n') {
11155
1
        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
39
    } else {
11163
39
      if (yych <= 'E') {
11164
8
        if (yych <= '*') goto yy789;
11165
8
        if (yych <= 'D') goto yy738;
11166
3
        goto yy964;
11167
31
      } else {
11168
31
        if (yych == 'e') goto yy964;
11169
5
        goto yy738;
11170
31
      }
11171
39
    }
11172
6
yy959:
11173
6
    YYDEBUG(959, *YYCURSOR);
11174
6
    ++YYCURSOR;
11175
6
    YYFILL(1);
11176
6
    yych = *YYCURSOR;
11177
6
    if (yych <= 'S') {
11178
3
      if (yych <= 0x00) goto yy86;
11179
1
      if (yych == '*') goto yy668;
11180
1
      goto yy590;
11181
3
    } else {
11182
3
      if (yych <= 'T') goto yy945;
11183
3
      if (yych == 't') goto yy945;
11184
3
      goto yy590;
11185
3
    }
11186
27
yy960:
11187
27
    YYDEBUG(960, *YYCURSOR);
11188
27
    yyaccept = 91;
11189
27
    YYMARKER = ++YYCURSOR;
11190
27
    YYFILL(1);
11191
27
    yych = *YYCURSOR;
11192
27
    if (yych <= '\f') {
11193
10
      if (yych <= 0x00) goto yy876;
11194
7
      if (yych == '\n') goto yy846;
11195
5
      goto yy808;
11196
17
    } else {
11197
17
      if (yych <= '\r') goto yy846;
11198
10
      if (yych == '*') goto yy848;
11199
6
      goto yy808;
11200
10
    }
11201
4
yy961:
11202
4
    YYDEBUG(961, *YYCURSOR);
11203
4
    yyaccept = 91;
11204
4
    YYMARKER = ++YYCURSOR;
11205
4
    YYFILL(1);
11206
4
    yych = *YYCURSOR;
11207
4
    if (yych <= '#') {
11208
1
      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
1
      } else {
11214
1
        if (yych <= 0x1F) {
11215
0
          if (yych <= '\r') goto yy846;
11216
0
          goto yy696;
11217
1
        } else {
11218
1
          if (yych <= ' ') goto yy846;
11219
1
          if (yych <= '"') goto yy696;
11220
1
          goto yy877;
11221
1
        }
11222
1
      }
11223
3
    } else {
11224
3
      if (yych <= '/') {
11225
0
        if (yych == '*') goto yy760;
11226
0
        if (yych <= '.') goto yy696;
11227
0
        goto yy878;
11228
3
      } else {
11229
3
        if (yych <= 'F') {
11230
0
          if (yych <= 'E') goto yy696;
11231
0
          goto yy879;
11232
3
        } else {
11233
3
          if (yych == 'f') goto yy879;
11234
3
          goto yy696;
11235
3
        }
11236
3
      }
11237
3
    }
11238
4
yy962:
11239
4
    YYDEBUG(962, *YYCURSOR);
11240
4
    yyaccept = 91;
11241
4
    YYMARKER = ++YYCURSOR;
11242
4
    YYFILL(1);
11243
4
    yych = *YYCURSOR;
11244
4
    if (yych <= '\r') {
11245
1
      if (yych <= '\t') {
11246
0
        if (yych <= 0x00) goto yy876;
11247
0
        goto yy808;
11248
1
      } else {
11249
1
        if (yych <= '\n') goto yy846;
11250
1
        if (yych <= '\f') goto yy808;
11251
1
        goto yy846;
11252
1
      }
11253
3
    } else {
11254
3
      if (yych <= '*') {
11255
2
        if (yych <= ')') goto yy808;
11256
1
        goto yy848;
11257
2
      } else {
11258
1
        if (yych == '/') goto yy694;
11259
0
        goto yy808;
11260
1
      }
11261
3
    }
11262
4
yy963:
11263
4
    YYDEBUG(963, *YYCURSOR);
11264
4
    yyaccept = 94;
11265
4
    YYMARKER = ++YYCURSOR;
11266
4
    YYFILL(1);
11267
4
    yych = *YYCURSOR;
11268
4
    if (yych <= '\f') {
11269
0
      if (yych <= 0x00) goto yy886;
11270
0
      if (yych == '\n') goto yy787;
11271
0
      goto yy738;
11272
4
    } else {
11273
4
      if (yych <= '\r') goto yy787;
11274
4
      if (yych == '*') goto yy789;
11275
4
      goto yy738;
11276
4
    }
11277
29
yy964:
11278
29
    YYDEBUG(964, *YYCURSOR);
11279
29
    ++YYCURSOR;
11280
29
    YYFILL(1);
11281
29
    yych = *YYCURSOR;
11282
29
    if (yych <= ')') {
11283
4
      if (yych <= '\n') {
11284
1
        if (yych <= 0x00) goto yy86;
11285
1
        if (yych <= '\t') goto yy738;
11286
1
        goto yy787;
11287
3
      } else {
11288
3
        if (yych == '\r') goto yy787;
11289
3
        goto yy738;
11290
3
      }
11291
25
    } else {
11292
25
      if (yych <= 'N') {
11293
24
        if (yych <= '*') goto yy789;
11294
24
        if (yych <= 'M') goto yy738;
11295
24
      } else {
11296
1
        if (yych != 'n') goto yy738;
11297
1
      }
11298
25
    }
11299
25
    YYDEBUG(965, *YYCURSOR);
11300
25
    ++YYCURSOR;
11301
25
    YYFILL(1);
11302
25
    yych = *YYCURSOR;
11303
25
    if (yych <= ')') {
11304
5
      if (yych <= '\n') {
11305
2
        if (yych <= 0x00) goto yy86;
11306
2
        if (yych <= '\t') goto yy738;
11307
0
        goto yy787;
11308
3
      } else {
11309
3
        if (yych == '\r') goto yy787;
11310
3
        goto yy738;
11311
3
      }
11312
20
    } else {
11313
20
      if (yych <= 'T') {
11314
13
        if (yych <= '*') goto yy789;
11315
13
        if (yych <= 'S') goto yy738;
11316
11
        goto yy957;
11317
13
      } else {
11318
7
        if (yych == 't') goto yy957;
11319
7
        goto yy738;
11320
7
      }
11321
20
    }
11322
25
  }
11323
/* *********************************** */
11324
1.62k
yyc_ST_LOOKING_FOR_PROPERTY:
11325
1.62k
  {
11326
1.62k
    static const unsigned char yybm[] = {
11327
1.62k
        0,   0,   0,   0,   0,   0,   0,   0, 
11328
1.62k
        0,  64,  64,   0,   0,  64,   0,   0, 
11329
1.62k
        0,   0,   0,   0,   0,   0,   0,   0, 
11330
1.62k
        0,   0,   0,   0,   0,   0,   0,   0, 
11331
1.62k
       64,   0,   0,   0,   0,   0,   0,   0, 
11332
1.62k
        0,   0,   0,   0,   0,   0,   0,   0, 
11333
1.62k
      128, 128, 128, 128, 128, 128, 128, 128, 
11334
1.62k
      128, 128,   0,   0,   0,   0,   0,   0, 
11335
1.62k
        0, 128, 128, 128, 128, 128, 128, 128, 
11336
1.62k
      128, 128, 128, 128, 128, 128, 128, 128, 
11337
1.62k
      128, 128, 128, 128, 128, 128, 128, 128, 
11338
1.62k
      128, 128, 128,   0,   0,   0,   0, 128, 
11339
1.62k
        0, 128, 128, 128, 128, 128, 128, 128, 
11340
1.62k
      128, 128, 128, 128, 128, 128, 128, 128, 
11341
1.62k
      128, 128, 128, 128, 128, 128, 128, 128, 
11342
1.62k
      128, 128, 128,   0,   0,   0,   0,   0, 
11343
1.62k
      128, 128, 128, 128, 128, 128, 128, 128, 
11344
1.62k
      128, 128, 128, 128, 128, 128, 128, 128, 
11345
1.62k
      128, 128, 128, 128, 128, 128, 128, 128, 
11346
1.62k
      128, 128, 128, 128, 128, 128, 128, 128, 
11347
1.62k
      128, 128, 128, 128, 128, 128, 128, 128, 
11348
1.62k
      128, 128, 128, 128, 128, 128, 128, 128, 
11349
1.62k
      128, 128, 128, 128, 128, 128, 128, 128, 
11350
1.62k
      128, 128, 128, 128, 128, 128, 128, 128, 
11351
1.62k
      128, 128, 128, 128, 128, 128, 128, 128, 
11352
1.62k
      128, 128, 128, 128, 128, 128, 128, 128, 
11353
1.62k
      128, 128, 128, 128, 128, 128, 128, 128, 
11354
1.62k
      128, 128, 128, 128, 128, 128, 128, 128, 
11355
1.62k
      128, 128, 128, 128, 128, 128, 128, 128, 
11356
1.62k
      128, 128, 128, 128, 128, 128, 128, 128, 
11357
1.62k
      128, 128, 128, 128, 128, 128, 128, 128, 
11358
1.62k
      128, 128, 128, 128, 128, 128, 128, 128, 
11359
1.62k
    };
11360
1.62k
    YYDEBUG(966, *YYCURSOR);
11361
1.62k
    YYFILL(4);
11362
1.62k
    yych = *YYCURSOR;
11363
1.62k
    if (yybm[0+yych] & 64) {
11364
32
      goto yy970;
11365
32
    }
11366
1.58k
    if (yych <= '?') {
11367
228
      if (yych <= '-') {
11368
147
        if (yych == '#') goto yy973;
11369
128
        if (yych >= '-') goto yy975;
11370
128
      } else {
11371
81
        if (yych == '/') goto yy976;
11372
54
        if (yych >= '?') goto yy977;
11373
54
      }
11374
1.36k
    } else {
11375
1.36k
      if (yych <= '_') {
11376
56
        if (yych <= '@') goto yy968;
11377
56
        if (yych <= 'Z') goto yy978;
11378
34
        if (yych >= '_') goto yy978;
11379
1.30k
      } else {
11380
1.30k
        if (yych <= '`') goto yy968;
11381
1.30k
        if (yych <= 'z') goto yy978;
11382
90
        if (yych >= 0x80) goto yy978;
11383
90
      }
11384
1.36k
    }
11385
146
yy968:
11386
146
    YYDEBUG(968, *YYCURSOR);
11387
146
    ++YYCURSOR;
11388
168
yy969:
11389
168
    YYDEBUG(969, *YYCURSOR);
11390
168
    yyleng = YYCURSOR - SCNG(yy_text);
11391
168
#line 2519 "Zend/zend_language_scanner.l"
11392
168
    {
11393
168
  yyless(0);
11394
168
  yy_pop_state();
11395
168
  goto restart;
11396
146
}
11397
0
#line 11398 "Zend/zend_language_scanner.c"
11398
122
yy970:
11399
122
    YYDEBUG(970, *YYCURSOR);
11400
122
    ++YYCURSOR;
11401
122
    YYFILL(1);
11402
122
    yych = *YYCURSOR;
11403
122
    YYDEBUG(971, *YYCURSOR);
11404
122
    if (yybm[0+yych] & 64) {
11405
90
      goto yy970;
11406
90
    }
11407
32
    YYDEBUG(972, *YYCURSOR);
11408
32
    yyleng = YYCURSOR - SCNG(yy_text);
11409
32
#line 1596 "Zend/zend_language_scanner.l"
11410
32
    {
11411
32
  goto return_whitespace;
11412
122
}
11413
0
#line 11414 "Zend/zend_language_scanner.c"
11414
24
yy973:
11415
24
    YYDEBUG(973, *YYCURSOR);
11416
24
    ++YYCURSOR;
11417
24
    YYDEBUG(974, *YYCURSOR);
11418
24
    yyleng = YYCURSOR - SCNG(yy_text);
11419
24
#line 2459 "Zend/zend_language_scanner.l"
11420
24
    {
11421
162
  while (YYCURSOR < YYLIMIT) {
11422
156
    switch (*YYCURSOR++) {
11423
0
      case '\r':
11424
13
      case '\n':
11425
13
        YYCURSOR--;
11426
13
        break;
11427
8
      case '?':
11428
8
        if (*YYCURSOR == '>') {
11429
5
          YYCURSOR--;
11430
5
          break;
11431
5
        }
11432
3
        ZEND_FALLTHROUGH;
11433
138
      default:
11434
138
        continue;
11435
156
    }
11436
11437
18
    break;
11438
156
  }
11439
11440
24
  yyleng = YYCURSOR - SCNG(yy_text);
11441
24
  RETURN_OR_SKIP_TOKEN(T_COMMENT);
11442
24
}
11443
0
#line 11444 "Zend/zend_language_scanner.c"
11444
36
yy975:
11445
36
    YYDEBUG(975, *YYCURSOR);
11446
36
    yych = *++YYCURSOR;
11447
36
    if (yych == '>') goto yy981;
11448
8
    goto yy969;
11449
27
yy976:
11450
27
    YYDEBUG(976, *YYCURSOR);
11451
27
    yych = *++YYCURSOR;
11452
27
    if (yych == '*') goto yy983;
11453
13
    if (yych == '/') goto yy973;
11454
8
    goto yy969;
11455
43
yy977:
11456
43
    YYDEBUG(977, *YYCURSOR);
11457
43
    yyaccept = 0;
11458
43
    yych = *(YYMARKER = ++YYCURSOR);
11459
43
    if (yych == '-') goto yy985;
11460
5
    goto yy969;
11461
6.94k
yy978:
11462
6.94k
    YYDEBUG(978, *YYCURSOR);
11463
6.94k
    ++YYCURSOR;
11464
6.94k
    YYFILL(1);
11465
6.94k
    yych = *YYCURSOR;
11466
6.94k
    YYDEBUG(979, *YYCURSOR);
11467
6.94k
    if (yybm[0+yych] & 128) {
11468
5.62k
      goto yy978;
11469
5.62k
    }
11470
1.31k
    YYDEBUG(980, *YYCURSOR);
11471
1.31k
    yyleng = YYCURSOR - SCNG(yy_text);
11472
1.31k
#line 1608 "Zend/zend_language_scanner.l"
11473
1.31k
    {
11474
1.31k
  yy_pop_state();
11475
1.31k
  RETURN_TOKEN_WITH_STR(T_STRING, 0);
11476
1.31k
}
11477
0
#line 11478 "Zend/zend_language_scanner.c"
11478
28
yy981:
11479
28
    YYDEBUG(981, *YYCURSOR);
11480
28
    ++YYCURSOR;
11481
28
    YYDEBUG(982, *YYCURSOR);
11482
28
    yyleng = YYCURSOR - SCNG(yy_text);
11483
28
#line 1600 "Zend/zend_language_scanner.l"
11484
28
    {
11485
28
  RETURN_TOKEN(T_OBJECT_OPERATOR);
11486
28
}
11487
0
#line 11488 "Zend/zend_language_scanner.c"
11488
14
yy983:
11489
14
    YYDEBUG(983, *YYCURSOR);
11490
14
    yyaccept = 1;
11491
14
    yych = *(YYMARKER = ++YYCURSOR);
11492
14
    if (yych == '*') goto yy987;
11493
14
yy984:
11494
14
    YYDEBUG(984, *YYCURSOR);
11495
14
    yyleng = YYCURSOR - SCNG(yy_text);
11496
14
#line 2483 "Zend/zend_language_scanner.l"
11497
14
    {
11498
14
  int doc_com;
11499
11500
14
  if (yyleng > 2) {
11501
6
    doc_com = 1;
11502
6
    RESET_DOC_COMMENT();
11503
8
  } else {
11504
8
    doc_com = 0;
11505
8
  }
11506
11507
219
  while (YYCURSOR < YYLIMIT) {
11508
207
    if (*YYCURSOR++ == '*' && *YYCURSOR == '/') {
11509
2
      break;
11510
2
    }
11511
207
  }
11512
11513
14
  if (YYCURSOR < YYLIMIT) {
11514
2
    YYCURSOR++;
11515
12
  } else {
11516
12
    zend_throw_exception_ex(zend_ce_parse_error, 0, "Unterminated comment starting line %" PRIu32, CG(zend_lineno));
11517
12
    if (PARSER_MODE()) {
11518
3
      RETURN_TOKEN(T_ERROR);
11519
3
    }
11520
12
  }
11521
11522
11
  yyleng = YYCURSOR - SCNG(yy_text);
11523
11
  HANDLE_NEWLINES(yytext, yyleng);
11524
11525
11
  if (doc_com) {
11526
5
    CG(doc_comment) = zend_string_init(yytext, yyleng, 0);
11527
5
    RETURN_OR_SKIP_TOKEN(T_DOC_COMMENT);
11528
5
  }
11529
11530
6
  RETURN_OR_SKIP_TOKEN(T_COMMENT);
11531
6
}
11532
0
#line 11533 "Zend/zend_language_scanner.c"
11533
38
yy985:
11534
38
    YYDEBUG(985, *YYCURSOR);
11535
38
    yych = *++YYCURSOR;
11536
38
    if (yych == '>') goto yy988;
11537
1
yy986:
11538
1
    YYDEBUG(986, *YYCURSOR);
11539
1
    YYCURSOR = YYMARKER;
11540
1
    if (yyaccept == 0) {
11541
1
      goto yy969;
11542
1
    } else {
11543
0
      goto yy984;
11544
0
    }
11545
6
yy987:
11546
6
    YYDEBUG(987, *YYCURSOR);
11547
6
    yych = *++YYCURSOR;
11548
6
    if (yych <= '\f') {
11549
0
      if (yych <= 0x08) goto yy986;
11550
0
      if (yych <= '\n') goto yy990;
11551
0
      goto yy986;
11552
6
    } else {
11553
6
      if (yych <= '\r') goto yy990;
11554
5
      if (yych == ' ') goto yy990;
11555
0
      goto yy986;
11556
5
    }
11557
37
yy988:
11558
37
    YYDEBUG(988, *YYCURSOR);
11559
37
    ++YYCURSOR;
11560
37
    YYDEBUG(989, *YYCURSOR);
11561
37
    yyleng = YYCURSOR - SCNG(yy_text);
11562
37
#line 1604 "Zend/zend_language_scanner.l"
11563
37
    {
11564
37
  RETURN_TOKEN(T_NULLSAFE_OBJECT_OPERATOR);
11565
37
}
11566
0
#line 11567 "Zend/zend_language_scanner.c"
11567
19
yy990:
11568
19
    YYDEBUG(990, *YYCURSOR);
11569
19
    ++YYCURSOR;
11570
19
    YYFILL(1);
11571
19
    yych = *YYCURSOR;
11572
19
    YYDEBUG(991, *YYCURSOR);
11573
19
    if (yych <= '\f') {
11574
4
      if (yych <= 0x08) goto yy984;
11575
0
      if (yych <= '\n') goto yy990;
11576
0
      goto yy984;
11577
15
    } else {
11578
15
      if (yych <= '\r') goto yy990;
11579
14
      if (yych == ' ') goto yy990;
11580
2
      goto yy984;
11581
14
    }
11582
19
  }
11583
/* *********************************** */
11584
3.95k
yyc_ST_BACKQUOTE:
11585
3.95k
  {
11586
3.95k
    static const unsigned char yybm[] = {
11587
3.95k
        0,   0,   0,   0,   0,   0,   0,   0, 
11588
3.95k
        0,   0,   0,   0,   0,   0,   0,   0, 
11589
3.95k
        0,   0,   0,   0,   0,   0,   0,   0, 
11590
3.95k
        0,   0,   0,   0,   0,   0,   0,   0, 
11591
3.95k
        0,   0,   0,   0,   0,   0,   0,   0, 
11592
3.95k
        0,   0,   0,   0,   0,   0,   0,   0, 
11593
3.95k
      128, 128, 128, 128, 128, 128, 128, 128, 
11594
3.95k
      128, 128,   0,   0,   0,   0,   0,   0, 
11595
3.95k
        0, 128, 128, 128, 128, 128, 128, 128, 
11596
3.95k
      128, 128, 128, 128, 128, 128, 128, 128, 
11597
3.95k
      128, 128, 128, 128, 128, 128, 128, 128, 
11598
3.95k
      128, 128, 128,   0,   0,   0,   0, 128, 
11599
3.95k
        0, 128, 128, 128, 128, 128, 128, 128, 
11600
3.95k
      128, 128, 128, 128, 128, 128, 128, 128, 
11601
3.95k
      128, 128, 128, 128, 128, 128, 128, 128, 
11602
3.95k
      128, 128, 128,   0,   0,   0,   0,   0, 
11603
3.95k
      128, 128, 128, 128, 128, 128, 128, 128, 
11604
3.95k
      128, 128, 128, 128, 128, 128, 128, 128, 
11605
3.95k
      128, 128, 128, 128, 128, 128, 128, 128, 
11606
3.95k
      128, 128, 128, 128, 128, 128, 128, 128, 
11607
3.95k
      128, 128, 128, 128, 128, 128, 128, 128, 
11608
3.95k
      128, 128, 128, 128, 128, 128, 128, 128, 
11609
3.95k
      128, 128, 128, 128, 128, 128, 128, 128, 
11610
3.95k
      128, 128, 128, 128, 128, 128, 128, 128, 
11611
3.95k
      128, 128, 128, 128, 128, 128, 128, 128, 
11612
3.95k
      128, 128, 128, 128, 128, 128, 128, 128, 
11613
3.95k
      128, 128, 128, 128, 128, 128, 128, 128, 
11614
3.95k
      128, 128, 128, 128, 128, 128, 128, 128, 
11615
3.95k
      128, 128, 128, 128, 128, 128, 128, 128, 
11616
3.95k
      128, 128, 128, 128, 128, 128, 128, 128, 
11617
3.95k
      128, 128, 128, 128, 128, 128, 128, 128, 
11618
3.95k
      128, 128, 128, 128, 128, 128, 128, 128, 
11619
3.95k
    };
11620
3.95k
    YYDEBUG(992, *YYCURSOR);
11621
3.95k
    YYFILL(2);
11622
3.95k
    yych = *YYCURSOR;
11623
3.95k
    if (yych <= '_') {
11624
2.53k
      if (yych == '$') goto yy996;
11625
2.53k
    } else {
11626
1.41k
      if (yych <= '`') goto yy997;
11627
219
      if (yych == '{') goto yy999;
11628
219
    }
11629
2.47k
    YYDEBUG(994, *YYCURSOR);
11630
2.47k
    ++YYCURSOR;
11631
2.54k
yy995:
11632
2.54k
    YYDEBUG(995, *YYCURSOR);
11633
2.54k
    yyleng = YYCURSOR - SCNG(yy_text);
11634
2.54k
#line 2918 "Zend/zend_language_scanner.l"
11635
2.54k
    {
11636
2.54k
  if (YYCURSOR > YYLIMIT) {
11637
591
    RETURN_END_TOKEN;
11638
591
  }
11639
1.95k
  if (yytext[0] == '\\' && YYCURSOR < YYLIMIT) {
11640
26
    YYCURSOR++;
11641
26
  }
11642
11643
88.1k
  while (YYCURSOR < YYLIMIT) {
11644
87.5k
    switch (*YYCURSOR++) {
11645
1.18k
      case '`':
11646
1.18k
        break;
11647
303
      case '$':
11648
303
        if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
11649
203
          break;
11650
203
        }
11651
100
        continue;
11652
100
      case '{':
11653
20
        if (*YYCURSOR == '$') {
11654
0
          break;
11655
0
        }
11656
20
        continue;
11657
28
      case '\\':
11658
28
        if (YYCURSOR < YYLIMIT) {
11659
20
          YYCURSOR++;
11660
20
        }
11661
28
        ZEND_FALLTHROUGH;
11662
86.0k
      default:
11663
86.0k
        continue;
11664
87.5k
    }
11665
11666
1.38k
    YYCURSOR--;
11667
1.38k
    break;
11668
87.5k
  }
11669
11670
1.95k
  yyleng = YYCURSOR - SCNG(yy_text);
11671
11672
1.95k
  if (EXPECTED(zend_scan_escape_string(zendlval, yytext, yyleng, '`') == SUCCESS)
11673
1.95k
   || !PARSER_MODE()) {
11674
1.95k
    RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
11675
1.95k
  } else {
11676
0
    RETURN_TOKEN(T_ERROR);
11677
0
  }
11678
1.95k
}
11679
0
#line 11680 "Zend/zend_language_scanner.c"
11680
273
yy996:
11681
273
    YYDEBUG(996, *YYCURSOR);
11682
273
    yych = *++YYCURSOR;
11683
273
    if (yych <= '_') {
11684
70
      if (yych <= '@') goto yy995;
11685
37
      if (yych <= 'Z') goto yy1000;
11686
10
      if (yych <= '^') goto yy995;
11687
0
      goto yy1000;
11688
203
    } else {
11689
203
      if (yych <= 'z') {
11690
73
        if (yych <= '`') goto yy995;
11691
58
        goto yy1000;
11692
130
      } else {
11693
130
        if (yych <= '{') goto yy1003;
11694
31
        if (yych <= 0x7F) goto yy995;
11695
28
        goto yy1000;
11696
31
      }
11697
203
    }
11698
1.19k
yy997:
11699
1.19k
    YYDEBUG(997, *YYCURSOR);
11700
1.19k
    ++YYCURSOR;
11701
1.19k
    YYDEBUG(998, *YYCURSOR);
11702
1.19k
    yyleng = YYCURSOR - SCNG(yy_text);
11703
1.19k
#line 2858 "Zend/zend_language_scanner.l"
11704
1.19k
    {
11705
1.19k
  BEGIN(ST_IN_SCRIPTING);
11706
1.19k
  RETURN_TOKEN('`');
11707
1.19k
}
11708
0
#line 11709 "Zend/zend_language_scanner.c"
11709
14
yy999:
11710
14
    YYDEBUG(999, *YYCURSOR);
11711
14
    yych = *++YYCURSOR;
11712
14
    if (yych == '$') goto yy1005;
11713
14
    goto yy995;
11714
286
yy1000:
11715
286
    YYDEBUG(1000, *YYCURSOR);
11716
286
    YYMARKER = ++YYCURSOR;
11717
286
    YYFILL(4);
11718
286
    yych = *YYCURSOR;
11719
286
    YYDEBUG(1001, *YYCURSOR);
11720
286
    if (yybm[0+yych] & 128) {
11721
173
      goto yy1000;
11722
173
    }
11723
113
    if (yych <= '>') {
11724
68
      if (yych == '-') goto yy1007;
11725
68
    } else {
11726
45
      if (yych <= '?') goto yy1009;
11727
35
      if (yych <= '@') goto yy1002;
11728
31
      if (yych <= '[') goto yy1010;
11729
31
    }
11730
93
yy1002:
11731
93
    YYDEBUG(1002, *YYCURSOR);
11732
93
    yyleng = YYCURSOR - SCNG(yy_text);
11733
93
#line 2416 "Zend/zend_language_scanner.l"
11734
93
    {
11735
93
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
11736
93
}
11737
0
#line 11738 "Zend/zend_language_scanner.c"
11738
99
yy1003:
11739
99
    YYDEBUG(1003, *YYCURSOR);
11740
99
    ++YYCURSOR;
11741
99
    YYDEBUG(1004, *YYCURSOR);
11742
99
    yyleng = YYCURSOR - SCNG(yy_text);
11743
99
#line 1980 "Zend/zend_language_scanner.l"
11744
99
    {
11745
99
  yy_push_state(ST_LOOKING_FOR_VARNAME);
11746
99
  enter_nesting('{');
11747
99
  RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES);
11748
99
}
11749
0
#line 11750 "Zend/zend_language_scanner.c"
11750
0
yy1005:
11751
0
    YYDEBUG(1005, *YYCURSOR);
11752
0
    ++YYCURSOR;
11753
0
    YYDEBUG(1006, *YYCURSOR);
11754
0
    yyleng = YYCURSOR - SCNG(yy_text);
11755
0
#line 2845 "Zend/zend_language_scanner.l"
11756
0
    {
11757
0
  yy_push_state(ST_IN_SCRIPTING);
11758
0
  yyless(1);
11759
0
  enter_nesting('{');
11760
0
  RETURN_TOKEN(T_CURLY_OPEN);
11761
0
}
11762
0
#line 11763 "Zend/zend_language_scanner.c"
11763
10
yy1007:
11764
10
    YYDEBUG(1007, *YYCURSOR);
11765
10
    yych = *++YYCURSOR;
11766
10
    if (yych == '>') goto yy1012;
11767
12
yy1008:
11768
12
    YYDEBUG(1008, *YYCURSOR);
11769
12
    YYCURSOR = YYMARKER;
11770
12
    goto yy1002;
11771
10
yy1009:
11772
10
    YYDEBUG(1009, *YYCURSOR);
11773
10
    yych = *++YYCURSOR;
11774
10
    if (yych == '-') goto yy1013;
11775
4
    goto yy1008;
11776
12
yy1010:
11777
12
    YYDEBUG(1010, *YYCURSOR);
11778
12
    ++YYCURSOR;
11779
12
    YYDEBUG(1011, *YYCURSOR);
11780
12
    yyleng = YYCURSOR - SCNG(yy_text);
11781
12
#line 2410 "Zend/zend_language_scanner.l"
11782
12
    {
11783
12
  yyless(yyleng - 1);
11784
12
  yy_push_state(ST_VAR_OFFSET);
11785
12
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
11786
12
}
11787
0
#line 11788 "Zend/zend_language_scanner.c"
11788
10
yy1012:
11789
10
    YYDEBUG(1012, *YYCURSOR);
11790
10
    yych = *++YYCURSOR;
11791
10
    if (yych <= '_') {
11792
7
      if (yych <= '@') goto yy1008;
11793
6
      if (yych <= 'Z') goto yy1014;
11794
6
      if (yych <= '^') goto yy1008;
11795
2
      goto yy1014;
11796
6
    } else {
11797
3
      if (yych <= '`') goto yy1008;
11798
2
      if (yych <= 'z') goto yy1014;
11799
0
      if (yych <= 0x7F) goto yy1008;
11800
0
      goto yy1014;
11801
0
    }
11802
6
yy1013:
11803
6
    YYDEBUG(1013, *YYCURSOR);
11804
6
    yych = *++YYCURSOR;
11805
6
    if (yych == '>') goto yy1016;
11806
0
    goto yy1008;
11807
4
yy1014:
11808
4
    YYDEBUG(1014, *YYCURSOR);
11809
4
    ++YYCURSOR;
11810
4
    YYDEBUG(1015, *YYCURSOR);
11811
4
    yyleng = YYCURSOR - SCNG(yy_text);
11812
4
#line 2396 "Zend/zend_language_scanner.l"
11813
4
    {
11814
4
  yyless(yyleng - 3);
11815
4
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
11816
4
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
11817
4
}
11818
0
#line 11819 "Zend/zend_language_scanner.c"
11819
6
yy1016:
11820
6
    YYDEBUG(1016, *YYCURSOR);
11821
6
    yych = *++YYCURSOR;
11822
6
    if (yych <= '_') {
11823
2
      if (yych <= '@') goto yy1008;
11824
2
      if (yych <= 'Z') goto yy1017;
11825
2
      if (yych <= '^') goto yy1008;
11826
4
    } else {
11827
4
      if (yych <= '`') goto yy1008;
11828
4
      if (yych <= 'z') goto yy1017;
11829
0
      if (yych <= 0x7F) goto yy1008;
11830
0
    }
11831
4
yy1017:
11832
4
    YYDEBUG(1017, *YYCURSOR);
11833
4
    ++YYCURSOR;
11834
4
    YYDEBUG(1018, *YYCURSOR);
11835
4
    yyleng = YYCURSOR - SCNG(yy_text);
11836
4
#line 2402 "Zend/zend_language_scanner.l"
11837
4
    {
11838
4
  yyless(yyleng - 4);
11839
4
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
11840
4
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
11841
4
}
11842
4
#line 11843 "Zend/zend_language_scanner.c"
11843
4
  }
11844
/* *********************************** */
11845
3.95k
yyc_ST_DOUBLE_QUOTES:
11846
3.95k
  {
11847
3.95k
    static const unsigned char yybm[] = {
11848
3.95k
        0,   0,   0,   0,   0,   0,   0,   0, 
11849
3.95k
        0,   0,   0,   0,   0,   0,   0,   0, 
11850
3.95k
        0,   0,   0,   0,   0,   0,   0,   0, 
11851
3.95k
        0,   0,   0,   0,   0,   0,   0,   0, 
11852
3.95k
        0,   0,   0,   0,   0,   0,   0,   0, 
11853
3.95k
        0,   0,   0,   0,   0,   0,   0,   0, 
11854
3.95k
      128, 128, 128, 128, 128, 128, 128, 128, 
11855
3.95k
      128, 128,   0,   0,   0,   0,   0,   0, 
11856
3.95k
        0, 128, 128, 128, 128, 128, 128, 128, 
11857
3.95k
      128, 128, 128, 128, 128, 128, 128, 128, 
11858
3.95k
      128, 128, 128, 128, 128, 128, 128, 128, 
11859
3.95k
      128, 128, 128,   0,   0,   0,   0, 128, 
11860
3.95k
        0, 128, 128, 128, 128, 128, 128, 128, 
11861
3.95k
      128, 128, 128, 128, 128, 128, 128, 128, 
11862
3.95k
      128, 128, 128, 128, 128, 128, 128, 128, 
11863
3.95k
      128, 128, 128,   0,   0,   0,   0,   0, 
11864
3.95k
      128, 128, 128, 128, 128, 128, 128, 128, 
11865
3.95k
      128, 128, 128, 128, 128, 128, 128, 128, 
11866
3.95k
      128, 128, 128, 128, 128, 128, 128, 128, 
11867
3.95k
      128, 128, 128, 128, 128, 128, 128, 128, 
11868
3.95k
      128, 128, 128, 128, 128, 128, 128, 128, 
11869
3.95k
      128, 128, 128, 128, 128, 128, 128, 128, 
11870
3.95k
      128, 128, 128, 128, 128, 128, 128, 128, 
11871
3.95k
      128, 128, 128, 128, 128, 128, 128, 128, 
11872
3.95k
      128, 128, 128, 128, 128, 128, 128, 128, 
11873
3.95k
      128, 128, 128, 128, 128, 128, 128, 128, 
11874
3.95k
      128, 128, 128, 128, 128, 128, 128, 128, 
11875
3.95k
      128, 128, 128, 128, 128, 128, 128, 128, 
11876
3.95k
      128, 128, 128, 128, 128, 128, 128, 128, 
11877
3.95k
      128, 128, 128, 128, 128, 128, 128, 128, 
11878
3.95k
      128, 128, 128, 128, 128, 128, 128, 128, 
11879
3.95k
      128, 128, 128, 128, 128, 128, 128, 128, 
11880
3.95k
    };
11881
3.95k
    YYDEBUG(1019, *YYCURSOR);
11882
3.95k
    YYFILL(2);
11883
3.95k
    yych = *YYCURSOR;
11884
3.95k
    if (yych <= '#') {
11885
1.33k
      if (yych == '"') goto yy1023;
11886
2.61k
    } else {
11887
2.61k
      if (yych <= '$') goto yy1025;
11888
1.46k
      if (yych == '{') goto yy1026;
11889
1.46k
    }
11890
2.37k
    YYDEBUG(1021, *YYCURSOR);
11891
2.37k
    ++YYCURSOR;
11892
2.44k
yy1022:
11893
2.44k
    YYDEBUG(1022, *YYCURSOR);
11894
2.44k
    yyleng = YYCURSOR - SCNG(yy_text);
11895
2.44k
#line 2864 "Zend/zend_language_scanner.l"
11896
2.44k
    {
11897
2.44k
  if (GET_DOUBLE_QUOTES_SCANNED_LENGTH()) {
11898
1.08k
    YYCURSOR += GET_DOUBLE_QUOTES_SCANNED_LENGTH() - 1;
11899
1.08k
    SET_DOUBLE_QUOTES_SCANNED_LENGTH(0);
11900
11901
1.08k
    goto double_quotes_scan_done;
11902
1.08k
  }
11903
11904
1.35k
  if (YYCURSOR > YYLIMIT) {
11905
567
    RETURN_END_TOKEN;
11906
567
  }
11907
788
  if (yytext[0] == '\\' && YYCURSOR < YYLIMIT) {
11908
85
    YYCURSOR++;
11909
85
  }
11910
11911
10.3k
  while (YYCURSOR < YYLIMIT) {
11912
10.2k
    switch (*YYCURSOR++) {
11913
352
      case '"':
11914
352
        break;
11915
468
      case '$':
11916
468
        if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
11917
321
          break;
11918
321
        }
11919
147
        continue;
11920
147
      case '{':
11921
111
        if (*YYCURSOR == '$') {
11922
2
          break;
11923
2
        }
11924
109
        continue;
11925
237
      case '\\':
11926
237
        if (YYCURSOR < YYLIMIT) {
11927
230
          YYCURSOR++;
11928
230
        }
11929
237
        ZEND_FALLTHROUGH;
11930
9.29k
      default:
11931
9.29k
        continue;
11932
10.2k
    }
11933
11934
675
    YYCURSOR--;
11935
675
    break;
11936
10.2k
  }
11937
11938
1.87k
double_quotes_scan_done:
11939
1.87k
  yyleng = YYCURSOR - SCNG(yy_text);
11940
11941
1.87k
  if (EXPECTED(zend_scan_escape_string(zendlval, yytext, yyleng, '"') == SUCCESS)
11942
1.87k
   || !PARSER_MODE()) {
11943
1.87k
    RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
11944
1.87k
  } else {
11945
0
    RETURN_TOKEN(T_ERROR);
11946
0
  }
11947
1.87k
}
11948
0
#line 11949 "Zend/zend_language_scanner.c"
11949
392
yy1023:
11950
392
    YYDEBUG(1023, *YYCURSOR);
11951
392
    ++YYCURSOR;
11952
392
    YYDEBUG(1024, *YYCURSOR);
11953
392
    yyleng = YYCURSOR - SCNG(yy_text);
11954
392
#line 2853 "Zend/zend_language_scanner.l"
11955
392
    {
11956
392
  BEGIN(ST_IN_SCRIPTING);
11957
392
  RETURN_TOKEN('"');
11958
392
}
11959
0
#line 11960 "Zend/zend_language_scanner.c"
11960
1.14k
yy1025:
11961
1.14k
    YYDEBUG(1025, *YYCURSOR);
11962
1.14k
    yych = *++YYCURSOR;
11963
1.14k
    if (yych <= '_') {
11964
194
      if (yych <= '@') goto yy1022;
11965
155
      if (yych <= 'Z') goto yy1027;
11966
9
      if (yych <= '^') goto yy1022;
11967
0
      goto yy1027;
11968
954
    } else {
11969
954
      if (yych <= 'z') {
11970
499
        if (yych <= '`') goto yy1022;
11971
498
        goto yy1027;
11972
499
      } else {
11973
455
        if (yych <= '{') goto yy1030;
11974
210
        if (yych <= 0x7F) goto yy1022;
11975
202
        goto yy1027;
11976
210
      }
11977
954
    }
11978
41
yy1026:
11979
41
    YYDEBUG(1026, *YYCURSOR);
11980
41
    yych = *++YYCURSOR;
11981
41
    if (yych == '$') goto yy1032;
11982
14
    goto yy1022;
11983
2.85k
yy1027:
11984
2.85k
    YYDEBUG(1027, *YYCURSOR);
11985
2.85k
    YYMARKER = ++YYCURSOR;
11986
2.85k
    YYFILL(4);
11987
2.85k
    yych = *YYCURSOR;
11988
2.85k
    YYDEBUG(1028, *YYCURSOR);
11989
2.85k
    if (yybm[0+yych] & 128) {
11990
2.00k
      goto yy1027;
11991
2.00k
    }
11992
846
    if (yych <= '>') {
11993
612
      if (yych == '-') goto yy1034;
11994
612
    } else {
11995
234
      if (yych <= '?') goto yy1036;
11996
179
      if (yych <= '@') goto yy1029;
11997
162
      if (yych <= '[') goto yy1037;
11998
162
    }
11999
774
yy1029:
12000
774
    YYDEBUG(1029, *YYCURSOR);
12001
774
    yyleng = YYCURSOR - SCNG(yy_text);
12002
774
#line 2416 "Zend/zend_language_scanner.l"
12003
774
    {
12004
774
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12005
774
}
12006
0
#line 12007 "Zend/zend_language_scanner.c"
12007
245
yy1030:
12008
245
    YYDEBUG(1030, *YYCURSOR);
12009
245
    ++YYCURSOR;
12010
245
    YYDEBUG(1031, *YYCURSOR);
12011
245
    yyleng = YYCURSOR - SCNG(yy_text);
12012
245
#line 1980 "Zend/zend_language_scanner.l"
12013
245
    {
12014
245
  yy_push_state(ST_LOOKING_FOR_VARNAME);
12015
245
  enter_nesting('{');
12016
245
  RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES);
12017
245
}
12018
0
#line 12019 "Zend/zend_language_scanner.c"
12019
27
yy1032:
12020
27
    YYDEBUG(1032, *YYCURSOR);
12021
27
    ++YYCURSOR;
12022
27
    YYDEBUG(1033, *YYCURSOR);
12023
27
    yyleng = YYCURSOR - SCNG(yy_text);
12024
27
#line 2845 "Zend/zend_language_scanner.l"
12025
27
    {
12026
27
  yy_push_state(ST_IN_SCRIPTING);
12027
27
  yyless(1);
12028
27
  enter_nesting('{');
12029
27
  RETURN_TOKEN(T_CURLY_OPEN);
12030
27
}
12031
0
#line 12032 "Zend/zend_language_scanner.c"
12032
23
yy1034:
12033
23
    YYDEBUG(1034, *YYCURSOR);
12034
23
    yych = *++YYCURSOR;
12035
23
    if (yych == '>') goto yy1039;
12036
48
yy1035:
12037
48
    YYDEBUG(1035, *YYCURSOR);
12038
48
    YYCURSOR = YYMARKER;
12039
48
    goto yy1029;
12040
55
yy1036:
12041
55
    YYDEBUG(1036, *YYCURSOR);
12042
55
    yych = *++YYCURSOR;
12043
55
    if (yych == '-') goto yy1040;
12044
16
    goto yy1035;
12045
42
yy1037:
12046
42
    YYDEBUG(1037, *YYCURSOR);
12047
42
    ++YYCURSOR;
12048
42
    YYDEBUG(1038, *YYCURSOR);
12049
42
    yyleng = YYCURSOR - SCNG(yy_text);
12050
42
#line 2410 "Zend/zend_language_scanner.l"
12051
42
    {
12052
42
  yyless(yyleng - 1);
12053
42
  yy_push_state(ST_VAR_OFFSET);
12054
42
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12055
42
}
12056
0
#line 12057 "Zend/zend_language_scanner.c"
12057
18
yy1039:
12058
18
    YYDEBUG(1039, *YYCURSOR);
12059
18
    yych = *++YYCURSOR;
12060
18
    if (yych <= '_') {
12061
4
      if (yych <= '@') goto yy1035;
12062
4
      if (yych <= 'Z') goto yy1041;
12063
3
      if (yych <= '^') goto yy1035;
12064
0
      goto yy1041;
12065
14
    } else {
12066
14
      if (yych <= '`') goto yy1035;
12067
14
      if (yych <= 'z') goto yy1041;
12068
1
      if (yych <= 0x7F) goto yy1035;
12069
1
      goto yy1041;
12070
1
    }
12071
39
yy1040:
12072
39
    YYDEBUG(1040, *YYCURSOR);
12073
39
    yych = *++YYCURSOR;
12074
39
    if (yych == '>') goto yy1043;
12075
17
    goto yy1035;
12076
17
yy1041:
12077
15
    YYDEBUG(1041, *YYCURSOR);
12078
15
    ++YYCURSOR;
12079
15
    YYDEBUG(1042, *YYCURSOR);
12080
15
    yyleng = YYCURSOR - SCNG(yy_text);
12081
15
#line 2396 "Zend/zend_language_scanner.l"
12082
15
    {
12083
15
  yyless(yyleng - 3);
12084
15
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
12085
15
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12086
15
}
12087
0
#line 12088 "Zend/zend_language_scanner.c"
12088
22
yy1043:
12089
22
    YYDEBUG(1043, *YYCURSOR);
12090
22
    yych = *++YYCURSOR;
12091
22
    if (yych <= '_') {
12092
5
      if (yych <= '@') goto yy1035;
12093
3
      if (yych <= 'Z') goto yy1044;
12094
3
      if (yych <= '^') goto yy1035;
12095
17
    } else {
12096
17
      if (yych <= '`') goto yy1035;
12097
15
      if (yych <= 'z') goto yy1044;
12098
13
      if (yych <= 0x7F) goto yy1035;
12099
13
    }
12100
15
yy1044:
12101
15
    YYDEBUG(1044, *YYCURSOR);
12102
15
    ++YYCURSOR;
12103
15
    YYDEBUG(1045, *YYCURSOR);
12104
15
    yyleng = YYCURSOR - SCNG(yy_text);
12105
15
#line 2402 "Zend/zend_language_scanner.l"
12106
15
    {
12107
15
  yyless(yyleng - 4);
12108
15
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
12109
15
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12110
15
}
12111
15
#line 12112 "Zend/zend_language_scanner.c"
12112
15
  }
12113
/* *********************************** */
12114
25.7k
yyc_ST_HEREDOC:
12115
25.7k
  {
12116
25.7k
    static const unsigned char yybm[] = {
12117
25.7k
        0,   0,   0,   0,   0,   0,   0,   0, 
12118
25.7k
        0,   0,   0,   0,   0,   0,   0,   0, 
12119
25.7k
        0,   0,   0,   0,   0,   0,   0,   0, 
12120
25.7k
        0,   0,   0,   0,   0,   0,   0,   0, 
12121
25.7k
        0,   0,   0,   0,   0,   0,   0,   0, 
12122
25.7k
        0,   0,   0,   0,   0,   0,   0,   0, 
12123
25.7k
      128, 128, 128, 128, 128, 128, 128, 128, 
12124
25.7k
      128, 128,   0,   0,   0,   0,   0,   0, 
12125
25.7k
        0, 128, 128, 128, 128, 128, 128, 128, 
12126
25.7k
      128, 128, 128, 128, 128, 128, 128, 128, 
12127
25.7k
      128, 128, 128, 128, 128, 128, 128, 128, 
12128
25.7k
      128, 128, 128,   0,   0,   0,   0, 128, 
12129
25.7k
        0, 128, 128, 128, 128, 128, 128, 128, 
12130
25.7k
      128, 128, 128, 128, 128, 128, 128, 128, 
12131
25.7k
      128, 128, 128, 128, 128, 128, 128, 128, 
12132
25.7k
      128, 128, 128,   0,   0,   0,   0,   0, 
12133
25.7k
      128, 128, 128, 128, 128, 128, 128, 128, 
12134
25.7k
      128, 128, 128, 128, 128, 128, 128, 128, 
12135
25.7k
      128, 128, 128, 128, 128, 128, 128, 128, 
12136
25.7k
      128, 128, 128, 128, 128, 128, 128, 128, 
12137
25.7k
      128, 128, 128, 128, 128, 128, 128, 128, 
12138
25.7k
      128, 128, 128, 128, 128, 128, 128, 128, 
12139
25.7k
      128, 128, 128, 128, 128, 128, 128, 128, 
12140
25.7k
      128, 128, 128, 128, 128, 128, 128, 128, 
12141
25.7k
      128, 128, 128, 128, 128, 128, 128, 128, 
12142
25.7k
      128, 128, 128, 128, 128, 128, 128, 128, 
12143
25.7k
      128, 128, 128, 128, 128, 128, 128, 128, 
12144
25.7k
      128, 128, 128, 128, 128, 128, 128, 128, 
12145
25.7k
      128, 128, 128, 128, 128, 128, 128, 128, 
12146
25.7k
      128, 128, 128, 128, 128, 128, 128, 128, 
12147
25.7k
      128, 128, 128, 128, 128, 128, 128, 128, 
12148
25.7k
      128, 128, 128, 128, 128, 128, 128, 128, 
12149
25.7k
    };
12150
25.7k
    YYDEBUG(1046, *YYCURSOR);
12151
25.7k
    YYFILL(2);
12152
25.7k
    yych = *YYCURSOR;
12153
25.7k
    if (yych == '$') goto yy1050;
12154
6.34k
    if (yych == '{') goto yy1051;
12155
5.73k
    YYDEBUG(1048, *YYCURSOR);
12156
5.73k
    ++YYCURSOR;
12157
7.33k
yy1049:
12158
7.33k
    YYDEBUG(1049, *YYCURSOR);
12159
7.33k
    yyleng = YYCURSOR - SCNG(yy_text);
12160
7.33k
#line 2964 "Zend/zend_language_scanner.l"
12161
7.33k
    {
12162
7.33k
  zend_heredoc_label *heredoc_label = zend_ptr_stack_top(&SCNG(heredoc_label_stack));
12163
7.33k
  int newline = 0, indentation = 0, spacing = 0;
12164
12165
7.33k
  if (YYCURSOR > YYLIMIT) {
12166
430
    RETURN_END_TOKEN;
12167
430
  }
12168
12169
6.90k
  YYCURSOR--;
12170
12171
90.1k
  while (YYCURSOR < YYLIMIT) {
12172
89.8k
    switch (*YYCURSOR++) {
12173
1.00k
      case '\r':
12174
1.00k
        if (*YYCURSOR == '\n') {
12175
35
          YYCURSOR++;
12176
35
        }
12177
1.00k
        ZEND_FALLTHROUGH;
12178
8.46k
      case '\n':
12179
8.46k
        indentation = spacing = 0;
12180
12181
9.93k
        while (YYCURSOR < YYLIMIT && (*YYCURSOR == ' ' || *YYCURSOR == '\t')) {
12182
1.46k
          if (*YYCURSOR == '\t') {
12183
97
            spacing |= HEREDOC_USING_TABS;
12184
1.37k
          } else {
12185
1.37k
            spacing |= HEREDOC_USING_SPACES;
12186
1.37k
          }
12187
1.46k
          ++YYCURSOR;
12188
1.46k
          ++indentation;
12189
1.46k
        }
12190
12191
8.46k
        if (YYCURSOR == YYLIMIT) {
12192
71
          yyleng = YYCURSOR - SCNG(yy_text);
12193
71
          HANDLE_NEWLINES(yytext, yyleng);
12194
71
          ZVAL_NULL(zendlval);
12195
71
          RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
12196
71
        }
12197
12198
        /* Check for ending label on the next line */
12199
8.39k
        if (IS_LABEL_START(*YYCURSOR) && heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, heredoc_label->label, heredoc_label->length)) {
12200
569
          if (IS_LABEL_SUCCESSOR(YYCURSOR[heredoc_label->length])) {
12201
72
            continue;
12202
72
          }
12203
12204
497
          if (spacing == (HEREDOC_USING_SPACES | HEREDOC_USING_TABS)) {
12205
3
            zend_throw_exception(zend_ce_parse_error, "Invalid indentation - tabs and spaces cannot be mixed", 0);
12206
3
            if (PARSER_MODE()) {
12207
1
              RETURN_TOKEN(T_ERROR);
12208
1
            }
12209
3
          }
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
496
          if (YYCURSOR[-indentation - 2] == '\r' && YYCURSOR[-indentation - 1] == '\n') {
12214
0
            newline = 2; /* Windows newline */
12215
496
          } else {
12216
496
            newline = 1;
12217
496
          }
12218
12219
496
          CG(increment_lineno) = 1; /* For newline before label */
12220
12221
496
          if (SCNG(heredoc_scan_ahead)) {
12222
270
            SCNG(heredoc_indentation) = indentation;
12223
270
            SCNG(heredoc_indentation_uses_spaces) = (spacing == HEREDOC_USING_SPACES);
12224
270
          } else {
12225
226
            YYCURSOR -= indentation;
12226
226
          }
12227
12228
496
          BEGIN(ST_END_HEREDOC);
12229
12230
496
          goto heredoc_scan_done;
12231
497
        }
12232
7.82k
        continue;
12233
8.31k
      case '$':
12234
8.31k
        if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
12235
5.75k
          break;
12236
5.75k
        }
12237
2.55k
        continue;
12238
2.55k
      case '{':
12239
1.93k
        if (*YYCURSOR == '$') {
12240
289
          break;
12241
289
        }
12242
1.64k
        continue;
12243
1.64k
      case '\\':
12244
504
        if (YYCURSOR < YYLIMIT && *YYCURSOR != '\n' && *YYCURSOR != '\r') {
12245
466
          YYCURSOR++;
12246
466
        }
12247
504
        ZEND_FALLTHROUGH;
12248
71.1k
      default:
12249
71.1k
        continue;
12250
89.8k
    }
12251
12252
6.04k
    YYCURSOR--;
12253
6.04k
    break;
12254
89.8k
  }
12255
12256
6.83k
heredoc_scan_done:
12257
12258
6.83k
  yyleng = YYCURSOR - SCNG(yy_text);
12259
6.83k
  ZVAL_STRINGL(zendlval, yytext, yyleng - newline);
12260
12261
6.83k
  if (!SCNG(heredoc_scan_ahead) && !EG(exception) && PARSER_MODE()) {
12262
2.02k
    bool newline_at_start = *(yytext - 1) == '\n' || *(yytext - 1) == '\r';
12263
2.02k
    zend_string *copy = Z_STR_P(zendlval);
12264
12265
2.02k
    if (!strip_multiline_string_indentation(
12266
2.02k
        zendlval, heredoc_label->indentation, heredoc_label->indentation_uses_spaces,
12267
2.02k
        newline_at_start, newline != 0)) {
12268
12
      RETURN_TOKEN(T_ERROR);
12269
12
    }
12270
12271
2.01k
    if (UNEXPECTED(zend_scan_escape_string(zendlval, ZSTR_VAL(copy), ZSTR_LEN(copy), 0) != SUCCESS)) {
12272
1
      zend_string_efree(copy);
12273
1
      RETURN_TOKEN(T_ERROR);
12274
1
    }
12275
12276
2.00k
    zend_string_efree(copy);
12277
4.81k
  } else {
12278
4.81k
    HANDLE_NEWLINES(yytext, yyleng - newline);
12279
4.81k
  }
12280
12281
6.82k
  RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
12282
6.82k
}
12283
0
#line 12284 "Zend/zend_language_scanner.c"
12284
19.3k
yy1050:
12285
19.3k
    YYDEBUG(1050, *YYCURSOR);
12286
19.3k
    yych = *++YYCURSOR;
12287
19.3k
    if (yych <= '_') {
12288
1.48k
      if (yych <= '@') goto yy1049;
12289
250
      if (yych <= 'Z') goto yy1052;
12290
54
      if (yych <= '^') goto yy1049;
12291
20
      goto yy1052;
12292
17.9k
    } else {
12293
17.9k
      if (yych <= 'z') {
12294
1.12k
        if (yych <= '`') goto yy1049;
12295
1.11k
        goto yy1052;
12296
16.7k
      } else {
12297
16.7k
        if (yych <= '{') goto yy1055;
12298
775
        if (yych <= 0x7F) goto yy1049;
12299
717
        goto yy1052;
12300
775
      }
12301
17.9k
    }
12302
606
yy1051:
12303
606
    YYDEBUG(1051, *YYCURSOR);
12304
606
    yych = *++YYCURSOR;
12305
606
    if (yych == '$') goto yy1057;
12306
257
    goto yy1049;
12307
6.42k
yy1052:
12308
6.42k
    YYDEBUG(1052, *YYCURSOR);
12309
6.42k
    YYMARKER = ++YYCURSOR;
12310
6.42k
    YYFILL(4);
12311
6.42k
    yych = *YYCURSOR;
12312
6.42k
    YYDEBUG(1053, *YYCURSOR);
12313
6.42k
    if (yybm[0+yych] & 128) {
12314
4.37k
      goto yy1052;
12315
4.37k
    }
12316
2.04k
    if (yych <= '>') {
12317
1.54k
      if (yych == '-') goto yy1059;
12318
1.54k
    } else {
12319
498
      if (yych <= '?') goto yy1061;
12320
433
      if (yych <= '@') goto yy1054;
12321
426
      if (yych <= '[') goto yy1062;
12322
426
    }
12323
1.78k
yy1054:
12324
1.78k
    YYDEBUG(1054, *YYCURSOR);
12325
1.78k
    yyleng = YYCURSOR - SCNG(yy_text);
12326
1.78k
#line 2416 "Zend/zend_language_scanner.l"
12327
1.78k
    {
12328
1.78k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12329
1.78k
}
12330
0
#line 12331 "Zend/zend_language_scanner.c"
12331
15.9k
yy1055:
12332
15.9k
    YYDEBUG(1055, *YYCURSOR);
12333
15.9k
    ++YYCURSOR;
12334
15.9k
    YYDEBUG(1056, *YYCURSOR);
12335
15.9k
    yyleng = YYCURSOR - SCNG(yy_text);
12336
15.9k
#line 1980 "Zend/zend_language_scanner.l"
12337
15.9k
    {
12338
15.9k
  yy_push_state(ST_LOOKING_FOR_VARNAME);
12339
15.9k
  enter_nesting('{');
12340
15.9k
  RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES);
12341
15.9k
}
12342
0
#line 12343 "Zend/zend_language_scanner.c"
12343
349
yy1057:
12344
349
    YYDEBUG(1057, *YYCURSOR);
12345
349
    ++YYCURSOR;
12346
349
    YYDEBUG(1058, *YYCURSOR);
12347
349
    yyleng = YYCURSOR - SCNG(yy_text);
12348
349
#line 2845 "Zend/zend_language_scanner.l"
12349
349
    {
12350
349
  yy_push_state(ST_IN_SCRIPTING);
12351
349
  yyless(1);
12352
349
  enter_nesting('{');
12353
349
  RETURN_TOKEN(T_CURLY_OPEN);
12354
349
}
12355
0
#line 12356 "Zend/zend_language_scanner.c"
12356
48
yy1059:
12357
48
    YYDEBUG(1059, *YYCURSOR);
12358
48
    yych = *++YYCURSOR;
12359
48
    if (yych == '>') goto yy1064;
12360
86
yy1060:
12361
86
    YYDEBUG(1060, *YYCURSOR);
12362
86
    YYCURSOR = YYMARKER;
12363
86
    goto yy1054;
12364
65
yy1061:
12365
65
    YYDEBUG(1061, *YYCURSOR);
12366
65
    yych = *++YYCURSOR;
12367
65
    if (yych == '-') goto yy1065;
12368
33
    goto yy1060;
12369
230
yy1062:
12370
230
    YYDEBUG(1062, *YYCURSOR);
12371
230
    ++YYCURSOR;
12372
230
    YYDEBUG(1063, *YYCURSOR);
12373
230
    yyleng = YYCURSOR - SCNG(yy_text);
12374
230
#line 2410 "Zend/zend_language_scanner.l"
12375
230
    {
12376
230
  yyless(yyleng - 1);
12377
230
  yy_push_state(ST_VAR_OFFSET);
12378
230
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12379
230
}
12380
0
#line 12381 "Zend/zend_language_scanner.c"
12381
37
yy1064:
12382
37
    YYDEBUG(1064, *YYCURSOR);
12383
37
    yych = *++YYCURSOR;
12384
37
    if (yych <= '_') {
12385
28
      if (yych <= '@') goto yy1060;
12386
19
      if (yych <= 'Z') goto yy1066;
12387
16
      if (yych <= '^') goto yy1060;
12388
2
      goto yy1066;
12389
16
    } else {
12390
9
      if (yych <= '`') goto yy1060;
12391
9
      if (yych <= 'z') goto yy1066;
12392
5
      if (yych <= 0x7F) goto yy1060;
12393
0
      goto yy1066;
12394
5
    }
12395
32
yy1065:
12396
32
    YYDEBUG(1065, *YYCURSOR);
12397
32
    yych = *++YYCURSOR;
12398
32
    if (yych == '>') goto yy1068;
12399
12
    goto yy1060;
12400
12
yy1066:
12401
9
    YYDEBUG(1066, *YYCURSOR);
12402
9
    ++YYCURSOR;
12403
9
    YYDEBUG(1067, *YYCURSOR);
12404
9
    yyleng = YYCURSOR - SCNG(yy_text);
12405
9
#line 2396 "Zend/zend_language_scanner.l"
12406
9
    {
12407
9
  yyless(yyleng - 3);
12408
9
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
12409
9
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12410
9
}
12411
0
#line 12412 "Zend/zend_language_scanner.c"
12412
20
yy1068:
12413
20
    YYDEBUG(1068, *YYCURSOR);
12414
20
    yych = *++YYCURSOR;
12415
20
    if (yych <= '_') {
12416
13
      if (yych <= '@') goto yy1060;
12417
11
      if (yych <= 'Z') goto yy1069;
12418
0
      if (yych <= '^') goto yy1060;
12419
7
    } else {
12420
7
      if (yych <= '`') goto yy1060;
12421
7
      if (yych <= 'z') goto yy1069;
12422
0
      if (yych <= 0x7F) goto yy1060;
12423
0
    }
12424
18
yy1069:
12425
18
    YYDEBUG(1069, *YYCURSOR);
12426
18
    ++YYCURSOR;
12427
18
    YYDEBUG(1070, *YYCURSOR);
12428
18
    yyleng = YYCURSOR - SCNG(yy_text);
12429
18
#line 2402 "Zend/zend_language_scanner.l"
12430
18
    {
12431
18
  yyless(yyleng - 4);
12432
18
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
12433
18
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12434
18
}
12435
18
#line 12436 "Zend/zend_language_scanner.c"
12436
18
  }
12437
/* *********************************** */
12438
16.3k
yyc_ST_LOOKING_FOR_VARNAME:
12439
16.3k
  {
12440
16.3k
    static const unsigned char yybm[] = {
12441
16.3k
        0,   0,   0,   0,   0,   0,   0,   0, 
12442
16.3k
        0,   0,   0,   0,   0,   0,   0,   0, 
12443
16.3k
        0,   0,   0,   0,   0,   0,   0,   0, 
12444
16.3k
        0,   0,   0,   0,   0,   0,   0,   0, 
12445
16.3k
        0,   0,   0,   0,   0,   0,   0,   0, 
12446
16.3k
        0,   0,   0,   0,   0,   0,   0,   0, 
12447
16.3k
      128, 128, 128, 128, 128, 128, 128, 128, 
12448
16.3k
      128, 128,   0,   0,   0,   0,   0,   0, 
12449
16.3k
        0, 128, 128, 128, 128, 128, 128, 128, 
12450
16.3k
      128, 128, 128, 128, 128, 128, 128, 128, 
12451
16.3k
      128, 128, 128, 128, 128, 128, 128, 128, 
12452
16.3k
      128, 128, 128,   0,   0,   0,   0, 128, 
12453
16.3k
        0, 128, 128, 128, 128, 128, 128, 128, 
12454
16.3k
      128, 128, 128, 128, 128, 128, 128, 128, 
12455
16.3k
      128, 128, 128, 128, 128, 128, 128, 128, 
12456
16.3k
      128, 128, 128,   0,   0,   0,   0,   0, 
12457
16.3k
      128, 128, 128, 128, 128, 128, 128, 128, 
12458
16.3k
      128, 128, 128, 128, 128, 128, 128, 128, 
12459
16.3k
      128, 128, 128, 128, 128, 128, 128, 128, 
12460
16.3k
      128, 128, 128, 128, 128, 128, 128, 128, 
12461
16.3k
      128, 128, 128, 128, 128, 128, 128, 128, 
12462
16.3k
      128, 128, 128, 128, 128, 128, 128, 128, 
12463
16.3k
      128, 128, 128, 128, 128, 128, 128, 128, 
12464
16.3k
      128, 128, 128, 128, 128, 128, 128, 128, 
12465
16.3k
      128, 128, 128, 128, 128, 128, 128, 128, 
12466
16.3k
      128, 128, 128, 128, 128, 128, 128, 128, 
12467
16.3k
      128, 128, 128, 128, 128, 128, 128, 128, 
12468
16.3k
      128, 128, 128, 128, 128, 128, 128, 128, 
12469
16.3k
      128, 128, 128, 128, 128, 128, 128, 128, 
12470
16.3k
      128, 128, 128, 128, 128, 128, 128, 128, 
12471
16.3k
      128, 128, 128, 128, 128, 128, 128, 128, 
12472
16.3k
      128, 128, 128, 128, 128, 128, 128, 128, 
12473
16.3k
    };
12474
16.3k
    YYDEBUG(1071, *YYCURSOR);
12475
16.3k
    YYFILL(2);
12476
16.3k
    yych = *YYCURSOR;
12477
16.3k
    if (yych <= '_') {
12478
15.0k
      if (yych <= '@') goto yy1073;
12479
361
      if (yych <= 'Z') goto yy1075;
12480
26
      if (yych >= '_') goto yy1075;
12481
1.26k
    } else {
12482
1.26k
      if (yych <= '`') goto yy1073;
12483
1.21k
      if (yych <= 'z') goto yy1075;
12484
561
      if (yych >= 0x80) goto yy1075;
12485
561
    }
12486
14.8k
yy1073:
12487
14.8k
    YYDEBUG(1073, *YYCURSOR);
12488
14.8k
    ++YYCURSOR;
12489
16.3k
yy1074:
12490
16.3k
    YYDEBUG(1074, *YYCURSOR);
12491
16.3k
    yyleng = YYCURSOR - SCNG(yy_text);
12492
16.3k
#line 2003 "Zend/zend_language_scanner.l"
12493
16.3k
    {
12494
16.3k
  yyless(0);
12495
16.3k
  yy_pop_state();
12496
16.3k
  yy_push_state(ST_IN_SCRIPTING);
12497
16.3k
  goto restart;
12498
14.8k
}
12499
0
#line 12500 "Zend/zend_language_scanner.c"
12500
1.51k
yy1075:
12501
1.51k
    YYDEBUG(1075, *YYCURSOR);
12502
1.51k
    yych = *(YYMARKER = ++YYCURSOR);
12503
1.51k
    if (yych <= '_') {
12504
693
      if (yych <= '@') {
12505
534
        if (yych <= '/') goto yy1074;
12506
273
        if (yych <= '9') goto yy1077;
12507
257
        goto yy1074;
12508
273
      } else {
12509
159
        if (yych <= '[') goto yy1077;
12510
28
        if (yych <= '^') goto yy1074;
12511
16
        goto yy1077;
12512
28
      }
12513
818
    } else {
12514
818
      if (yych <= '|') {
12515
486
        if (yych <= '`') goto yy1074;
12516
477
        if (yych <= 'z') goto yy1077;
12517
30
        goto yy1074;
12518
477
      } else {
12519
332
        if (yych <= '}') goto yy1077;
12520
321
        if (yych <= 0x7F) goto yy1074;
12521
315
        goto yy1077;
12522
321
      }
12523
818
    }
12524
3.30k
yy1076:
12525
3.30k
    YYDEBUG(1076, *YYCURSOR);
12526
3.30k
    ++YYCURSOR;
12527
3.30k
    YYFILL(1);
12528
3.30k
    yych = *YYCURSOR;
12529
4.24k
yy1077:
12530
4.24k
    YYDEBUG(1077, *YYCURSOR);
12531
4.24k
    if (yybm[0+yych] & 128) {
12532
3.30k
      goto yy1076;
12533
3.30k
    }
12534
936
    if (yych <= '@') goto yy1078;
12535
105
    if (yych <= '[') goto yy1079;
12536
101
    if (yych == '}') goto yy1079;
12537
917
yy1078:
12538
917
    YYDEBUG(1078, *YYCURSOR);
12539
917
    YYCURSOR = YYMARKER;
12540
917
    goto yy1074;
12541
19
yy1079:
12542
19
    YYDEBUG(1079, *YYCURSOR);
12543
19
    ++YYCURSOR;
12544
19
    YYDEBUG(1080, *YYCURSOR);
12545
19
    yyleng = YYCURSOR - SCNG(yy_text);
12546
19
#line 1995 "Zend/zend_language_scanner.l"
12547
19
    {
12548
19
  yyless(yyleng - 1);
12549
19
  yy_pop_state();
12550
19
  yy_push_state(ST_IN_SCRIPTING);
12551
19
  RETURN_TOKEN_WITH_STR(T_STRING_VARNAME, 0);
12552
19
}
12553
19
#line 12554 "Zend/zend_language_scanner.c"
12554
19
  }
12555
/* *********************************** */
12556
1.94k
yyc_ST_VAR_OFFSET:
12557
1.94k
  {
12558
1.94k
    static const unsigned char yybm[] = {
12559
1.94k
        0,   0,   0,   0,   0,   0,   0,   0, 
12560
1.94k
        0,   0,   0,   0,   0,   0,   0,   0, 
12561
1.94k
        0,   0,   0,   0,   0,   0,   0,   0, 
12562
1.94k
        0,   0,   0,   0,   0,   0,   0,   0, 
12563
1.94k
        0,   0,   0,   0,   0,   0,   0,   0, 
12564
1.94k
        0,   0,   0,   0,   0,   0,   0,   0, 
12565
1.94k
      248, 248, 216, 216, 216, 216, 216, 216, 
12566
1.94k
      152, 152,   0,   0,   0,   0,   0,   0, 
12567
1.94k
        0, 144, 144, 144, 144, 144, 144,  16, 
12568
1.94k
       16,  16,  16,  16,  16,  16,  16,  16, 
12569
1.94k
       16,  16,  16,  16,  16,  16,  16,  16, 
12570
1.94k
       16,  16,  16,   0,   0,   0,   0,  16, 
12571
1.94k
        0, 144, 144, 144, 144, 144, 144,  16, 
12572
1.94k
       16,  16,  16,  16,  16,  16,  16,  16, 
12573
1.94k
       16,  16,  16,  16,  16,  16,  16,  16, 
12574
1.94k
       16,  16,  16,   0,   0,   0,   0,   0, 
12575
1.94k
       16,  16,  16,  16,  16,  16,  16,  16, 
12576
1.94k
       16,  16,  16,  16,  16,  16,  16,  16, 
12577
1.94k
       16,  16,  16,  16,  16,  16,  16,  16, 
12578
1.94k
       16,  16,  16,  16,  16,  16,  16,  16, 
12579
1.94k
       16,  16,  16,  16,  16,  16,  16,  16, 
12580
1.94k
       16,  16,  16,  16,  16,  16,  16,  16, 
12581
1.94k
       16,  16,  16,  16,  16,  16,  16,  16, 
12582
1.94k
       16,  16,  16,  16,  16,  16,  16,  16, 
12583
1.94k
       16,  16,  16,  16,  16,  16,  16,  16, 
12584
1.94k
       16,  16,  16,  16,  16,  16,  16,  16, 
12585
1.94k
       16,  16,  16,  16,  16,  16,  16,  16, 
12586
1.94k
       16,  16,  16,  16,  16,  16,  16,  16, 
12587
1.94k
       16,  16,  16,  16,  16,  16,  16,  16, 
12588
1.94k
       16,  16,  16,  16,  16,  16,  16,  16, 
12589
1.94k
       16,  16,  16,  16,  16,  16,  16,  16, 
12590
1.94k
       16,  16,  16,  16,  16,  16,  16,  16, 
12591
1.94k
    };
12592
1.94k
    YYDEBUG(1081, *YYCURSOR);
12593
1.94k
    YYFILL(2);
12594
1.94k
    yych = *YYCURSOR;
12595
1.94k
    if (yych <= '0') {
12596
784
      if (yych <= ' ') {
12597
335
        if (yych <= '\f') {
12598
253
          if (yych <= 0x08) goto yy1083;
12599
52
          if (yych <= '\n') goto yy1085;
12600
82
        } else {
12601
82
          if (yych <= '\r') goto yy1085;
12602
78
          if (yych >= ' ') goto yy1085;
12603
78
        }
12604
449
      } else {
12605
449
        if (yych <= '$') {
12606
194
          if (yych <= '"') goto yy1087;
12607
152
          if (yych <= '#') goto yy1085;
12608
149
          goto yy1089;
12609
255
        } else {
12610
255
          if (yych == '\'') goto yy1085;
12611
251
          if (yych <= '/') goto yy1087;
12612
139
          goto yy1090;
12613
251
        }
12614
449
      }
12615
1.16k
    } else {
12616
1.16k
      if (yych <= ']') {
12617
905
        if (yych <= 'Z') {
12618
448
          if (yych <= '9') goto yy1092;
12619
337
          if (yych <= '@') goto yy1087;
12620
61
          goto yy1094;
12621
457
        } else {
12622
457
          if (yych <= '[') goto yy1087;
12623
110
          if (yych <= '\\') goto yy1085;
12624
110
          goto yy1097;
12625
110
        }
12626
905
      } else {
12627
257
        if (yych <= '`') {
12628
36
          if (yych == '_') goto yy1094;
12629
28
          goto yy1087;
12630
221
        } else {
12631
221
          if (yych <= 'z') goto yy1094;
12632
155
          if (yych <= '~') goto yy1087;
12633
108
          if (yych >= 0x80) goto yy1094;
12634
108
        }
12635
257
      }
12636
1.16k
    }
12637
267
yy1083:
12638
267
    YYDEBUG(1083, *YYCURSOR);
12639
267
    ++YYCURSOR;
12640
267
    YYDEBUG(1084, *YYCURSOR);
12641
267
    yyleng = YYCURSOR - SCNG(yy_text);
12642
267
#line 3179 "Zend/zend_language_scanner.l"
12643
267
    {
12644
267
  if (YYCURSOR > YYLIMIT) {
12645
50
    RETURN_END_TOKEN;
12646
50
  }
12647
12648
217
  RETURN_TOKEN(T_BAD_CHARACTER);
12649
217
}
12650
0
#line 12651 "Zend/zend_language_scanner.c"
12651
81
yy1085:
12652
81
    YYDEBUG(1085, *YYCURSOR);
12653
81
    ++YYCURSOR;
12654
81
    YYDEBUG(1086, *YYCURSOR);
12655
81
    yyleng = YYCURSOR - SCNG(yy_text);
12656
81
#line 2430 "Zend/zend_language_scanner.l"
12657
81
    {
12658
  /* Invalid rule to return a more explicit parse error with proper line number */
12659
81
  yyless(0);
12660
81
  yy_pop_state();
12661
81
  ZVAL_NULL(zendlval);
12662
81
  RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
12663
81
}
12664
0
#line 12665 "Zend/zend_language_scanner.c"
12665
852
yy1087:
12666
852
    YYDEBUG(1087, *YYCURSOR);
12667
852
    ++YYCURSOR;
12668
927
yy1088:
12669
927
    YYDEBUG(1088, *YYCURSOR);
12670
927
    yyleng = YYCURSOR - SCNG(yy_text);
12671
927
#line 2425 "Zend/zend_language_scanner.l"
12672
927
    {
12673
  /* Only '[' or '-' can be valid, but returning other tokens will allow a more explicit parse error */
12674
927
  RETURN_TOKEN(yytext[0]);
12675
927
}
12676
0
#line 12677 "Zend/zend_language_scanner.c"
12677
149
yy1089:
12678
149
    YYDEBUG(1089, *YYCURSOR);
12679
149
    yych = *++YYCURSOR;
12680
149
    if (yych <= '_') {
12681
61
      if (yych <= '@') goto yy1088;
12682
8
      if (yych <= 'Z') goto yy1099;
12683
0
      if (yych <= '^') goto yy1088;
12684
0
      goto yy1099;
12685
88
    } else {
12686
88
      if (yych <= '`') goto yy1088;
12687
79
      if (yych <= 'z') goto yy1099;
12688
28
      if (yych <= 0x7F) goto yy1088;
12689
15
      goto yy1099;
12690
28
    }
12691
139
yy1090:
12692
139
    YYDEBUG(1090, *YYCURSOR);
12693
139
    yyaccept = 0;
12694
139
    yych = *(YYMARKER = ++YYCURSOR);
12695
139
    if (yych <= 'X') {
12696
78
      if (yych <= 'B') {
12697
59
        if (yych <= '/') goto yy1091;
12698
39
        if (yych <= '9') goto yy1102;
12699
20
        if (yych >= 'B') goto yy1105;
12700
20
      } else {
12701
19
        if (yych == 'O') goto yy1107;
12702
17
        if (yych >= 'X') goto yy1108;
12703
17
      }
12704
78
    } else {
12705
61
      if (yych <= 'b') {
12706
35
        if (yych == '_') goto yy1109;
12707
35
        if (yych >= 'b') goto yy1105;
12708
35
      } else {
12709
26
        if (yych <= 'o') {
12710
15
          if (yych >= 'o') goto yy1107;
12711
15
        } else {
12712
11
          if (yych == 'x') goto yy1108;
12713
11
        }
12714
26
      }
12715
61
    }
12716
213
yy1091:
12717
213
    YYDEBUG(1091, *YYCURSOR);
12718
213
    yyleng = YYCURSOR - SCNG(yy_text);
12719
213
#line 2207 "Zend/zend_language_scanner.l"
12720
213
    { /* Offset could be treated as a long */
12721
213
  if (yyleng < MAX_LENGTH_OF_LONG - 1 || (yyleng == MAX_LENGTH_OF_LONG - 1 && strcmp(yytext, long_min_digits) < 0)) {
12722
213
    char *end;
12723
213
    errno = 0;
12724
213
    ZVAL_LONG(zendlval, ZEND_STRTOL(yytext, &end, 10));
12725
213
    if (errno == ERANGE) {
12726
0
      goto string;
12727
0
    }
12728
213
    ZEND_ASSERT(end == yytext + yyleng);
12729
213
  } else {
12730
0
string:
12731
0
    ZVAL_STRINGL(zendlval, yytext, yyleng);
12732
0
  }
12733
213
  RETURN_TOKEN_WITH_VAL(T_NUM_STRING);
12734
213
}
12735
0
#line 12736 "Zend/zend_language_scanner.c"
12736
290
yy1092:
12737
290
    YYDEBUG(1092, *YYCURSOR);
12738
290
    yyaccept = 0;
12739
290
    YYMARKER = ++YYCURSOR;
12740
290
    YYFILL(1);
12741
290
    yych = *YYCURSOR;
12742
290
    YYDEBUG(1093, *YYCURSOR);
12743
290
    if (yybm[0+yych] & 8) {
12744
179
      goto yy1092;
12745
179
    }
12746
111
    if (yych == '_') goto yy1109;
12747
97
    goto yy1091;
12748
779
yy1094:
12749
779
    YYDEBUG(1094, *YYCURSOR);
12750
779
    ++YYCURSOR;
12751
779
    YYFILL(1);
12752
779
    yych = *YYCURSOR;
12753
779
    YYDEBUG(1095, *YYCURSOR);
12754
779
    if (yybm[0+yych] & 16) {
12755
542
      goto yy1094;
12756
542
    }
12757
237
    YYDEBUG(1096, *YYCURSOR);
12758
237
    yyleng = YYCURSOR - SCNG(yy_text);
12759
237
#line 2454 "Zend/zend_language_scanner.l"
12760
237
    {
12761
237
  RETURN_TOKEN_WITH_STR(T_STRING, 0);
12762
237
}
12763
0
#line 12764 "Zend/zend_language_scanner.c"
12764
110
yy1097:
12765
110
    YYDEBUG(1097, *YYCURSOR);
12766
110
    ++YYCURSOR;
12767
110
    YYDEBUG(1098, *YYCURSOR);
12768
110
    yyleng = YYCURSOR - SCNG(yy_text);
12769
110
#line 2420 "Zend/zend_language_scanner.l"
12770
110
    {
12771
110
  yy_pop_state();
12772
110
  RETURN_TOKEN(']');
12773
110
}
12774
0
#line 12775 "Zend/zend_language_scanner.c"
12775
234
yy1099:
12776
234
    YYDEBUG(1099, *YYCURSOR);
12777
234
    ++YYCURSOR;
12778
234
    YYFILL(1);
12779
234
    yych = *YYCURSOR;
12780
234
    YYDEBUG(1100, *YYCURSOR);
12781
234
    if (yych <= '^') {
12782
137
      if (yych <= '9') {
12783
40
        if (yych >= '0') goto yy1099;
12784
97
      } else {
12785
97
        if (yych <= '@') goto yy1101;
12786
88
        if (yych <= 'Z') goto yy1099;
12787
88
      }
12788
137
    } else {
12789
97
      if (yych <= '`') {
12790
10
        if (yych <= '_') goto yy1099;
12791
87
      } else {
12792
87
        if (yych <= 'z') goto yy1099;
12793
18
        if (yych >= 0x80) goto yy1099;
12794
18
      }
12795
97
    }
12796
74
yy1101:
12797
74
    YYDEBUG(1101, *YYCURSOR);
12798
74
    yyleng = YYCURSOR - SCNG(yy_text);
12799
74
#line 2416 "Zend/zend_language_scanner.l"
12800
74
    {
12801
74
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12802
74
}
12803
0
#line 12804 "Zend/zend_language_scanner.c"
12804
89
yy1102:
12805
89
    YYDEBUG(1102, *YYCURSOR);
12806
89
    yyaccept = 1;
12807
89
    YYMARKER = ++YYCURSOR;
12808
89
    YYFILL(1);
12809
89
    yych = *YYCURSOR;
12810
89
    YYDEBUG(1103, *YYCURSOR);
12811
89
    if (yych <= '/') goto yy1104;
12812
73
    if (yych <= '9') goto yy1102;
12813
14
    if (yych == '_') goto yy1109;
12814
37
yy1104:
12815
37
    YYDEBUG(1104, *YYCURSOR);
12816
37
    yyleng = YYCURSOR - SCNG(yy_text);
12817
37
#line 2223 "Zend/zend_language_scanner.l"
12818
37
    { /* Offset must be treated as a string */
12819
37
  if (yyleng == 1) {
12820
0
    ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR((zend_uchar)*(yytext)));
12821
37
  } else {
12822
37
    ZVAL_STRINGL(zendlval, yytext, yyleng);
12823
37
  }
12824
37
  RETURN_TOKEN_WITH_VAL(T_NUM_STRING);
12825
37
}
12826
0
#line 12827 "Zend/zend_language_scanner.c"
12827
4
yy1105:
12828
4
    YYDEBUG(1105, *YYCURSOR);
12829
4
    ++YYCURSOR;
12830
4
    YYFILL(1);
12831
4
    yych = *YYCURSOR;
12832
4
    if (yybm[0+yych] & 32) {
12833
2
      goto yy1110;
12834
2
    }
12835
19
yy1106:
12836
19
    YYDEBUG(1106, *YYCURSOR);
12837
19
    YYCURSOR = YYMARKER;
12838
19
    if (yyaccept == 0) {
12839
19
      goto yy1091;
12840
19
    } else {
12841
0
      goto yy1104;
12842
0
    }
12843
12
yy1107:
12844
12
    YYDEBUG(1107, *YYCURSOR);
12845
12
    ++YYCURSOR;
12846
12
    YYFILL(1);
12847
12
    yych = *YYCURSOR;
12848
12
    if (yybm[0+yych] & 64) {
12849
6
      goto yy1112;
12850
6
    }
12851
6
    goto yy1106;
12852
7
yy1108:
12853
7
    YYDEBUG(1108, *YYCURSOR);
12854
7
    ++YYCURSOR;
12855
7
    YYFILL(1);
12856
7
    yych = *YYCURSOR;
12857
7
    if (yybm[0+yych] & 128) {
12858
2
      goto yy1114;
12859
2
    }
12860
5
    goto yy1106;
12861
17
yy1109:
12862
17
    YYDEBUG(1109, *YYCURSOR);
12863
17
    ++YYCURSOR;
12864
17
    YYFILL(1);
12865
17
    yych = *YYCURSOR;
12866
17
    if (yych <= '/') goto yy1106;
12867
15
    if (yych <= '9') goto yy1102;
12868
4
    goto yy1106;
12869
4
yy1110:
12870
4
    YYDEBUG(1110, *YYCURSOR);
12871
4
    yyaccept = 1;
12872
4
    YYMARKER = ++YYCURSOR;
12873
4
    YYFILL(1);
12874
4
    yych = *YYCURSOR;
12875
4
    YYDEBUG(1111, *YYCURSOR);
12876
4
    if (yybm[0+yych] & 32) {
12877
2
      goto yy1110;
12878
2
    }
12879
2
    if (yych == '_') goto yy1105;
12880
2
    goto yy1104;
12881
12
yy1112:
12882
12
    YYDEBUG(1112, *YYCURSOR);
12883
12
    yyaccept = 1;
12884
12
    YYMARKER = ++YYCURSOR;
12885
12
    YYFILL(1);
12886
12
    yych = *YYCURSOR;
12887
12
    YYDEBUG(1113, *YYCURSOR);
12888
12
    if (yybm[0+yych] & 64) {
12889
6
      goto yy1112;
12890
6
    }
12891
6
    if (yych == '_') goto yy1107;
12892
6
    goto yy1104;
12893
7
yy1114:
12894
7
    YYDEBUG(1114, *YYCURSOR);
12895
7
    yyaccept = 1;
12896
7
    YYMARKER = ++YYCURSOR;
12897
7
    YYFILL(1);
12898
7
    yych = *YYCURSOR;
12899
7
    YYDEBUG(1115, *YYCURSOR);
12900
7
    if (yybm[0+yych] & 128) {
12901
5
      goto yy1114;
12902
5
    }
12903
2
    if (yych == '_') goto yy1108;
12904
2
    goto yy1104;
12905
2
  }
12906
/* *********************************** */
12907
2
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
19.3k
yyc_INITIAL:
12986
19.3k
  YYDEBUG(1125, *YYCURSOR);
12987
19.3k
  YYFILL(7);
12988
19.3k
  yych = *YYCURSOR;
12989
19.3k
  if (yych == '<') goto yy1129;
12990
8.51k
  YYDEBUG(1127, *YYCURSOR);
12991
8.51k
  ++YYCURSOR;
12992
9.00k
yy1128:
12993
9.00k
  YYDEBUG(1128, *YYCURSOR);
12994
9.00k
  yyleng = YYCURSOR - SCNG(yy_text);
12995
9.00k
#line 2340 "Zend/zend_language_scanner.l"
12996
9.00k
  {
12997
9.00k
  if (YYCURSOR > YYLIMIT) {
12998
3.91k
    RETURN_END_TOKEN;
12999
3.91k
  }
13000
13001
5.09k
inline_char_handler:
13002
13003
5.41k
  while (1) {
13004
5.41k
    YYCTYPE *ptr = memchr(YYCURSOR, '<', YYLIMIT - YYCURSOR);
13005
13006
5.41k
    YYCURSOR = ptr ? ptr + 1 : YYLIMIT;
13007
13008
5.41k
    if (YYCURSOR >= YYLIMIT) {
13009
775
      break;
13010
775
    }
13011
13012
4.63k
    if (*YYCURSOR == '?') {
13013
4.31k
      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
4.31k
      ) {
13020
4.31k
        YYCURSOR--;
13021
4.31k
        break;
13022
4.31k
      }
13023
4.31k
    }
13024
4.63k
  }
13025
13026
5.09k
  yyleng = YYCURSOR - SCNG(yy_text);
13027
13028
5.09k
  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
5.09k
  } else if (yyleng == 1) {
13040
589
    ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR((zend_uchar)*yytext));
13041
4.50k
  } else {
13042
4.50k
    ZVAL_STRINGL(zendlval, yytext, yyleng);
13043
4.50k
  }
13044
5.09k
  HANDLE_NEWLINES(yytext, yyleng);
13045
5.09k
  RETURN_TOKEN_WITH_VAL(T_INLINE_HTML);
13046
5.09k
}
13047
0
#line 13048 "Zend/zend_language_scanner.c"
13048
10.8k
yy1129:
13049
10.8k
  YYDEBUG(1129, *YYCURSOR);
13050
10.8k
  yych = *++YYCURSOR;
13051
10.8k
  if (yych != '?') goto yy1128;
13052
10.3k
  YYDEBUG(1130, *YYCURSOR);
13053
10.3k
  yych = *(YYMARKER = ++YYCURSOR);
13054
10.3k
  if (yych <= 'O') {
13055
4.48k
    if (yych == '=') goto yy1132;
13056
5.85k
  } else {
13057
5.85k
    if (yych <= 'P') goto yy1134;
13058
5.85k
    if (yych == 'p') goto yy1134;
13059
5.85k
  }
13060
5.22k
yy1131:
13061
5.22k
  YYDEBUG(1131, *YYCURSOR);
13062
5.22k
  yyleng = YYCURSOR - SCNG(yy_text);
13063
5.22k
#line 2331 "Zend/zend_language_scanner.l"
13064
5.22k
  {
13065
5.22k
  if (CG(short_tags)) {
13066
5.22k
    BEGIN(ST_IN_SCRIPTING);
13067
5.22k
    RETURN_OR_SKIP_TOKEN(T_OPEN_TAG);
13068
5.22k
  } else {
13069
0
    goto inline_char_handler;
13070
0
  }
13071
5.22k
}
13072
0
#line 13073 "Zend/zend_language_scanner.c"
13073
340
yy1132:
13074
340
  YYDEBUG(1132, *YYCURSOR);
13075
340
  ++YYCURSOR;
13076
340
  YYDEBUG(1133, *YYCURSOR);
13077
340
  yyleng = YYCURSOR - SCNG(yy_text);
13078
340
#line 2300 "Zend/zend_language_scanner.l"
13079
340
  {
13080
340
  BEGIN(ST_IN_SCRIPTING);
13081
340
  if (PARSER_MODE()) {
13082
    /* We'll reject this as an identifier in zend_lex_tstring. */
13083
187
    RETURN_TOKEN_WITH_IDENT(T_ECHO);
13084
187
  }
13085
153
  RETURN_TOKEN(T_OPEN_TAG_WITH_ECHO);
13086
153
}
13087
0
#line 13088 "Zend/zend_language_scanner.c"
13088
5.11k
yy1134:
13089
5.11k
  YYDEBUG(1134, *YYCURSOR);
13090
5.11k
  yych = *++YYCURSOR;
13091
5.11k
  if (yych == 'H') goto yy1136;
13092
4.92k
  if (yych == 'h') goto yy1136;
13093
344
yy1135:
13094
344
  YYDEBUG(1135, *YYCURSOR);
13095
344
  YYCURSOR = YYMARKER;
13096
344
  goto yy1131;
13097
4.79k
yy1136:
13098
4.79k
  YYDEBUG(1136, *YYCURSOR);
13099
4.79k
  yych = *++YYCURSOR;
13100
4.79k
  if (yych == 'P') goto yy1137;
13101
4.78k
  if (yych != 'p') goto yy1135;
13102
4.77k
yy1137:
13103
4.77k
  YYDEBUG(1137, *YYCURSOR);
13104
4.77k
  yych = *++YYCURSOR;
13105
4.77k
  if (yych <= '\f') {
13106
4.27k
    if (yych <= 0x08) goto yy1138;
13107
4.16k
    if (yych <= '\n') goto yy1139;
13108
4.16k
  } else {
13109
494
    if (yych <= '\r') goto yy1141;
13110
487
    if (yych == ' ') goto yy1139;
13111
487
  }
13112
270
yy1138:
13113
270
  YYDEBUG(1138, *YYCURSOR);
13114
270
  yyleng = YYCURSOR - SCNG(yy_text);
13115
270
#line 2316 "Zend/zend_language_scanner.l"
13116
270
  {
13117
  /* Allow <?php followed by end of file. */
13118
270
  if (YYCURSOR == YYLIMIT) {
13119
111
    BEGIN(ST_IN_SCRIPTING);
13120
111
    RETURN_OR_SKIP_TOKEN(T_OPEN_TAG);
13121
111
  }
13122
  /* Degenerate case: <?phpX is interpreted as <? phpX with short tags. */
13123
159
  if (CG(short_tags)) {
13124
159
    yyless(2);
13125
159
    BEGIN(ST_IN_SCRIPTING);
13126
159
    RETURN_OR_SKIP_TOKEN(T_OPEN_TAG);
13127
159
  }
13128
0
  goto inline_char_handler;
13129
159
}
13130
0
#line 13131 "Zend/zend_language_scanner.c"
13131
4.50k
yy1139:
13132
4.50k
  YYDEBUG(1139, *YYCURSOR);
13133
4.50k
  ++YYCURSOR;
13134
4.50k
yy1140:
13135
4.50k
  YYDEBUG(1140, *YYCURSOR);
13136
4.50k
  yyleng = YYCURSOR - SCNG(yy_text);
13137
4.50k
#line 2310 "Zend/zend_language_scanner.l"
13138
4.50k
  {
13139
4.50k
  HANDLE_NEWLINE(yytext[yyleng-1]);
13140
4.50k
  BEGIN(ST_IN_SCRIPTING);
13141
4.50k
  RETURN_OR_SKIP_TOKEN(T_OPEN_TAG);
13142
4.50k
}
13143
0
#line 13144 "Zend/zend_language_scanner.c"
13144
7
yy1141:
13145
7
  YYDEBUG(1141, *YYCURSOR);
13146
7
  yych = *++YYCURSOR;
13147
7
  if (yych == '\n') goto yy1139;
13148
1
  goto yy1140;
13149
/* *********************************** */
13150
534
yyc_ST_END_HEREDOC:
13151
534
  YYDEBUG(1142, *YYCURSOR);
13152
534
  YYFILL(1);
13153
534
  yych = *YYCURSOR;
13154
534
  YYDEBUG(1144, *YYCURSOR);
13155
534
  ++YYCURSOR;
13156
534
  YYDEBUG(1145, *YYCURSOR);
13157
534
  yyleng = YYCURSOR - SCNG(yy_text);
13158
534
#line 2831 "Zend/zend_language_scanner.l"
13159
534
  {
13160
534
  zend_heredoc_label *heredoc_label = zend_ptr_stack_pop(&SCNG(heredoc_label_stack));
13161
13162
534
  yyleng = heredoc_label->indentation + heredoc_label->length;
13163
534
  YYCURSOR += yyleng - 1;
13164
13165
534
  heredoc_label_dtor(heredoc_label);
13166
534
  efree(heredoc_label);
13167
13168
534
  BEGIN(ST_IN_SCRIPTING);
13169
534
  RETURN_TOKEN(T_END_HEREDOC);
13170
534
}
13171
0
#line 13172 "Zend/zend_language_scanner.c"
13172
/* *********************************** */
13173
104
yyc_ST_NOWDOC:
13174
104
  YYDEBUG(1146, *YYCURSOR);
13175
104
  YYFILL(1);
13176
104
  yych = *YYCURSOR;
13177
104
  YYDEBUG(1148, *YYCURSOR);
13178
104
  ++YYCURSOR;
13179
104
  YYDEBUG(1149, *YYCURSOR);
13180
104
  yyleng = YYCURSOR - SCNG(yy_text);
13181
104
#line 3088 "Zend/zend_language_scanner.l"
13182
104
  {
13183
104
  zend_heredoc_label *heredoc_label = zend_ptr_stack_top(&SCNG(heredoc_label_stack));
13184
104
  int newline = 0, indentation = 0, spacing = -1;
13185
13186
104
  if (YYCURSOR > YYLIMIT) {
13187
37
    RETURN_END_TOKEN;
13188
37
  }
13189
13190
67
  YYCURSOR--;
13191
13192
2.81k
  while (YYCURSOR < YYLIMIT) {
13193
2.78k
    switch (*YYCURSOR++) {
13194
59
      case '\r':
13195
59
        if (*YYCURSOR == '\n') {
13196
13
          YYCURSOR++;
13197
13
        }
13198
59
        ZEND_FALLTHROUGH;
13199
367
      case '\n':
13200
367
        indentation = spacing = 0;
13201
13202
625
        while (YYCURSOR < YYLIMIT && (*YYCURSOR == ' ' || *YYCURSOR == '\t')) {
13203
258
          if (*YYCURSOR == '\t') {
13204
90
            spacing |= HEREDOC_USING_TABS;
13205
168
          } else {
13206
168
            spacing |= HEREDOC_USING_SPACES;
13207
168
          }
13208
258
          ++YYCURSOR;
13209
258
          ++indentation;
13210
258
        }
13211
13212
367
        if (YYCURSOR == YYLIMIT) {
13213
15
          yyleng = YYCURSOR - SCNG(yy_text);
13214
15
          HANDLE_NEWLINES(yytext, yyleng);
13215
15
          ZVAL_NULL(zendlval);
13216
15
          RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
13217
15
        }
13218
13219
        /* Check for ending label on the next line */
13220
352
        if (IS_LABEL_START(*YYCURSOR) && heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, heredoc_label->label, heredoc_label->length)) {
13221
26
          if (IS_LABEL_SUCCESSOR(YYCURSOR[heredoc_label->length])) {
13222
3
            continue;
13223
3
          }
13224
13225
23
          if (spacing == (HEREDOC_USING_SPACES | HEREDOC_USING_TABS)) {
13226
1
            zend_throw_exception(zend_ce_parse_error, "Invalid indentation - tabs and spaces cannot be mixed", 0);
13227
1
            if (PARSER_MODE()) {
13228
1
              RETURN_TOKEN(T_ERROR);
13229
1
            }
13230
1
          }
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
22
          if (YYCURSOR[-indentation - 2] == '\r' && YYCURSOR[-indentation - 1] == '\n') {
13235
0
            newline = 2; /* Windows newline */
13236
22
          } else {
13237
22
            newline = 1;
13238
22
          }
13239
13240
22
          CG(increment_lineno) = 1; /* For newline before label */
13241
13242
22
          YYCURSOR -= indentation;
13243
22
          heredoc_label->indentation = indentation;
13244
13245
22
          BEGIN(ST_END_HEREDOC);
13246
13247
22
          goto nowdoc_scan_done;
13248
23
        }
13249
326
        ZEND_FALLTHROUGH;
13250
2.74k
      default:
13251
2.74k
        continue;
13252
2.78k
    }
13253
2.78k
  }
13254
13255
51
nowdoc_scan_done:
13256
51
  yyleng = YYCURSOR - SCNG(yy_text);
13257
51
  ZVAL_STRINGL(zendlval, yytext, yyleng - newline);
13258
13259
51
  if (!EG(exception) && spacing != -1 && PARSER_MODE()) {
13260
35
    bool newline_at_start = *(yytext - 1) == '\n' || *(yytext - 1) == '\r';
13261
35
    if (!strip_multiline_string_indentation(
13262
35
        zendlval, indentation, spacing == HEREDOC_USING_SPACES,
13263
35
        newline_at_start, newline != 0)) {
13264
10
      RETURN_TOKEN(T_ERROR);
13265
10
    }
13266
35
  }
13267
13268
41
  HANDLE_NEWLINES(yytext, yyleng - newline);
13269
41
  RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
13270
41
}
13271
41
#line 13272 "Zend/zend_language_scanner.c"
13272
41
}
13273
0
#line 3187 "Zend/zend_language_scanner.l"
13274
13275
13276
120k
emit_token_with_str:
13277
120k
  zend_copy_value(zendlval, (yytext + offset), (yyleng - offset));
13278
13279
181k
emit_token_with_val:
13280
181k
  if (PARSER_MODE()) {
13281
44.5k
    ZEND_ASSERT(Z_TYPE_P(zendlval) != IS_UNDEF);
13282
44.5k
    elem->ast = zend_ast_create_zval_with_lineno(zendlval, start_line);
13283
44.5k
  }
13284
13285
606k
emit_token:
13286
606k
  if (SCNG(on_event)) {
13287
0
    SCNG(on_event)(ON_TOKEN, token, start_line, yytext, yyleng, SCNG(on_event_context));
13288
0
  }
13289
606k
  return token;
13290
13291
17.1k
emit_token_with_ident:
13292
17.1k
  if (PARSER_MODE()) {
13293
12.7k
    elem->ident = SCNG(yy_text);
13294
12.7k
  }
13295
17.1k
  if (SCNG(on_event)) {
13296
0
    SCNG(on_event)(ON_TOKEN, token, start_line, yytext, yyleng, SCNG(on_event_context));
13297
0
  }
13298
17.1k
  return token;
13299
13300
126k
return_whitespace:
13301
126k
  HANDLE_NEWLINES(yytext, yyleng);
13302
126k
  if (SCNG(on_event)) {
13303
0
    SCNG(on_event)(ON_TOKEN, T_WHITESPACE, start_line, yytext, yyleng, SCNG(on_event_context));
13304
0
  }
13305
126k
  if (PARSER_MODE()) {
13306
49.0k
    start_line = CG(zend_lineno);
13307
49.0k
    goto restart;
13308
77.9k
  } else {
13309
77.9k
    return T_WHITESPACE;
13310
77.9k
  }
13311
13312
7.44k
skip_token:
13313
7.44k
  if (SCNG(on_event)) {
13314
0
    SCNG(on_event)(ON_TOKEN, token, start_line, yytext, yyleng, SCNG(on_event_context));
13315
0
  }
13316
7.44k
  start_line = CG(zend_lineno);
13317
7.44k
  goto restart;
13318
126k
}