Coverage Report

Created: 2025-12-14 06:05

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/php-src/Zend/zend_language_scanner.c
Line
Count
Source
1
/* Generated by re2c 1.3 */
2
#line 1 "Zend/zend_language_scanner.l"
3
/*
4
   +----------------------------------------------------------------------+
5
   | Zend Engine                                                          |
6
   +----------------------------------------------------------------------+
7
   | Copyright (c) Zend Technologies Ltd. (http://www.zend.com)           |
8
   +----------------------------------------------------------------------+
9
   | This source file is subject to version 2.00 of the Zend license,     |
10
   | that is bundled with this package in the file LICENSE, and is        |
11
   | available through the world-wide-web at the following url:           |
12
   | http://www.zend.com/license/2_00.txt.                                |
13
   | If you did not receive a copy of the Zend license and are unable to  |
14
   | obtain it through the world-wide-web, please send a note to          |
15
   | license@zend.com so we can mail you a copy immediately.              |
16
   +----------------------------------------------------------------------+
17
   | Authors: Marcus Boerger <helly@php.net>                              |
18
   |          Nuno Lopes <nlopess@php.net>                                |
19
   |          Scott MacVicar <scottmac@php.net>                           |
20
   | Flex version authors:                                                |
21
   |          Andi Gutmans <andi@php.net>                                 |
22
   |          Zeev Suraski <zeev@php.net>                                 |
23
   +----------------------------------------------------------------------+
24
*/
25
26
#if 0
27
# define YYDEBUG(s, c) printf("state: %d char: %c\n", s, c)
28
#else
29
# define YYDEBUG(s, c)
30
#endif
31
32
#include "zend_language_scanner_defs.h"
33
34
#include <errno.h>
35
#include <stdint.h>
36
#include "zend.h"
37
#ifdef ZEND_WIN32
38
# include <Winuser.h>
39
#endif
40
#include "zend_alloc.h"
41
#include <zend_language_parser.h>
42
#include "zend_compile.h"
43
#include "zend_language_scanner.h"
44
#include "zend_highlight.h"
45
#include "zend_constants.h"
46
#include "zend_variables.h"
47
#include "zend_operators.h"
48
#include "zend_API.h"
49
#include "zend_strtod.h"
50
#include "zend_exceptions.h"
51
#include "zend_virtual_cwd.h"
52
53
713k
#define YYCTYPE   unsigned char
54
1.49M
#define YYFILL(n) { if ((YYCURSOR + n) >= (YYLIMIT + ZEND_MMAP_AHEAD)) { return 0; } }
55
8.15M
#define YYCURSOR  SCNG(yy_cursor)
56
2.42M
#define YYLIMIT   SCNG(yy_limit)
57
731k
#define YYMARKER  SCNG(yy_marker)
58
59
2.22M
#define YYGETCONDITION()  SCNG(yy_state)
60
149k
#define YYSETCONDITION(s) SCNG(yy_state) = s
61
62
#define STATE(name)  yyc##name
63
64
/* emulate flex constructs */
65
51.4k
#define BEGIN(state) YYSETCONDITION(STATE(state))
66
18.7k
#define YYSTATE      YYGETCONDITION()
67
152k
#define yytext       ((char*)SCNG(yy_text))
68
845k
#define yyleng       SCNG(yy_leng)
69
23.1k
#define yyless(x)    do { YYCURSOR = (unsigned char*)yytext + x; \
70
23.1k
                          yyleng   = (unsigned int)x; } while(0)
71
#define yymore()     goto yymore_restart
72
73
/* perform sanity check. If this message is triggered you should
74
   increase the ZEND_MMAP_AHEAD value in the zend_streams.h file */
75
#define YYMAXFILL 16
76
77
#if ZEND_MMAP_AHEAD < YYMAXFILL
78
# error ZEND_MMAP_AHEAD should be greater than or equal to YYMAXFILL
79
#endif
80
81
#include <stdarg.h>
82
83
#ifdef HAVE_UNISTD_H
84
# include <unistd.h>
85
#endif
86
87
/* Globals Macros */
88
18.8M
#define SCNG  LANG_SCNG
89
#ifdef ZTS
90
ZEND_API ts_rsrc_id language_scanner_globals_id;
91
ZEND_API size_t language_scanner_globals_offset;
92
#else
93
ZEND_API zend_php_scanner_globals language_scanner_globals;
94
#endif
95
96
129k
#define HANDLE_NEWLINES(s, l)                         \
97
129k
do {                                     \
98
129k
  char *p = (s), *boundary = p+(l);                     \
99
129k
                                        \
100
508k
  while (p<boundary) {                           \
101
378k
    if (*p == '\n' || (*p == '\r' && (*(p+1) != '\n'))) {         \
102
72.1k
      CG(zend_lineno)++;                          \
103
72.1k
    }                                    \
104
378k
    p++;                                  \
105
378k
  }                                      \
106
129k
} while (0)
107
108
6.10k
#define HANDLE_NEWLINE(c) \
109
6.10k
{ \
110
6.10k
  if (c == '\n' || c == '\r') { \
111
4.51k
    CG(zend_lineno)++; \
112
4.51k
  } \
113
6.10k
}
114
115
/* To save initial string length after scanning to first variable */
116
3.26k
#define SET_DOUBLE_QUOTES_SCANNED_LENGTH(len) SCNG(scanned_string_len) = (len)
117
4.83k
#define GET_DOUBLE_QUOTES_SCANNED_LENGTH()    SCNG(scanned_string_len)
118
119
47.8k
#define IS_LABEL_START(c) (((c) >= 'a' && (c) <= 'z') || ((c) >= 'A' && (c) <= 'Z') || (c) == '_' || (c) >= 0x80)
120
846
#define IS_LABEL_SUCCESSOR(c) (((c) >= 'a' && (c) <= 'z') || ((c) >= 'A' && (c) <= 'Z') || ((c) >= '0' && (c) <= '9') || (c) == '_' || (c) >= 0x80)
121
122
1.75k
#define ZEND_IS_OCT(c)  ((c)>='0' && (c)<='7')
123
304
#define ZEND_IS_HEX(c)  (((c)>='0' && (c)<='9') || ((c)>='a' && (c)<='f') || ((c)>='A' && (c)<='F'))
124
125
126
static void strip_underscores(char *str, size_t *len)
127
70
{
128
70
  char *src = str, *dest = str;
129
953
  while (*src != '\0') {
130
883
    if (*src != '_') {
131
799
      *dest = *src;
132
799
      dest++;
133
799
    } else {
134
84
      --(*len);
135
84
    }
136
883
    src++;
137
883
  }
138
70
  *dest = '\0';
139
70
}
140
141
static size_t encoding_filter_script_to_internal(unsigned char **to, size_t *to_length, const unsigned char *from, size_t from_length)
142
0
{
143
0
  const zend_encoding *internal_encoding = zend_multibyte_get_internal_encoding();
144
0
  ZEND_ASSERT(internal_encoding);
145
0
  return zend_multibyte_encoding_converter(to, to_length, from, from_length, internal_encoding, LANG_SCNG(script_encoding));
146
0
}
147
148
static size_t encoding_filter_script_to_intermediate(unsigned char **to, size_t *to_length, const unsigned char *from, size_t from_length)
149
0
{
150
0
  return zend_multibyte_encoding_converter(to, to_length, from, from_length, zend_multibyte_encoding_utf8, LANG_SCNG(script_encoding));
151
0
}
152
153
static size_t encoding_filter_intermediate_to_script(unsigned char **to, size_t *to_length, const unsigned char *from, size_t from_length)
154
0
{
155
0
  return zend_multibyte_encoding_converter(to, to_length, from, from_length,
156
0
LANG_SCNG(script_encoding), zend_multibyte_encoding_utf8);
157
0
}
158
159
static size_t encoding_filter_intermediate_to_internal(unsigned char **to, size_t *to_length, const unsigned char *from, size_t from_length)
160
0
{
161
0
  const zend_encoding *internal_encoding = zend_multibyte_get_internal_encoding();
162
0
  ZEND_ASSERT(internal_encoding);
163
0
  return zend_multibyte_encoding_converter(to, to_length, from, from_length,
164
0
internal_encoding, zend_multibyte_encoding_utf8);
165
0
}
166
167
168
static void _yy_push_state(int new_state)
169
53.0k
{
170
53.0k
  zend_stack_push(&SCNG(state_stack), (void *) &YYGETCONDITION());
171
53.0k
  YYSETCONDITION(new_state);
172
53.0k
}
173
174
53.0k
#define yy_push_state(state_and_tsrm) _yy_push_state(yyc##state_and_tsrm)
175
176
static void yy_pop_state(void)
177
27.2k
{
178
27.2k
  int *stack_state = zend_stack_top(&SCNG(state_stack));
179
27.2k
  YYSETCONDITION(*stack_state);
180
27.2k
  zend_stack_del_top(&SCNG(state_stack));
181
27.2k
}
182
183
static void yy_scan_buffer(char *str, size_t len)
184
12.5k
{
185
12.5k
  YYCURSOR       = (YYCTYPE*)str;
186
12.5k
  YYLIMIT        = YYCURSOR + len;
187
12.5k
  if (!SCNG(yy_start)) {
188
4.24k
    SCNG(yy_start) = YYCURSOR;
189
4.24k
  }
190
12.5k
}
191
192
void startup_scanner(void)
193
50.4k
{
194
50.4k
  CG(parse_error) = 0;
195
50.4k
  CG(doc_comment) = NULL;
196
50.4k
  CG(extra_fn_flags) = 0;
197
50.4k
  zend_stack_init(&SCNG(state_stack), sizeof(int));
198
50.4k
  zend_stack_init(&SCNG(nest_location_stack), sizeof(zend_nest_location));
199
50.4k
  zend_ptr_stack_init(&SCNG(heredoc_label_stack));
200
50.4k
  SCNG(heredoc_scan_ahead) = 0;
201
50.4k
}
202
203
30.7k
static void heredoc_label_dtor(zend_heredoc_label *heredoc_label) {
204
30.7k
    efree(heredoc_label->label);
205
30.7k
}
206
207
void shutdown_scanner(void)
208
50.4k
{
209
50.4k
  CG(parse_error) = 0;
210
50.4k
  RESET_DOC_COMMENT();
211
50.4k
  zend_stack_destroy(&SCNG(state_stack));
212
50.4k
  zend_stack_destroy(&SCNG(nest_location_stack));
213
50.4k
  zend_ptr_stack_clean(&SCNG(heredoc_label_stack), (void (*)(void *)) &heredoc_label_dtor, 1);
214
50.4k
  zend_ptr_stack_destroy(&SCNG(heredoc_label_stack));
215
50.4k
  SCNG(heredoc_scan_ahead) = 0;
216
50.4k
  SCNG(on_event) = NULL;
217
50.4k
  SCNG(on_event_context) = NULL;
218
50.4k
}
219
220
ZEND_API void zend_save_lexical_state(zend_lex_state *lex_state)
221
18.7k
{
222
18.7k
  lex_state->yy_leng   = SCNG(yy_leng);
223
18.7k
  lex_state->yy_start  = SCNG(yy_start);
224
18.7k
  lex_state->yy_text   = SCNG(yy_text);
225
18.7k
  lex_state->yy_cursor = SCNG(yy_cursor);
226
18.7k
  lex_state->yy_marker = SCNG(yy_marker);
227
18.7k
  lex_state->yy_limit  = SCNG(yy_limit);
228
229
18.7k
  lex_state->state_stack = SCNG(state_stack);
230
18.7k
  zend_stack_init(&SCNG(state_stack), sizeof(int));
231
232
18.7k
  lex_state->nest_location_stack = SCNG(nest_location_stack);
233
18.7k
  zend_stack_init(&SCNG(nest_location_stack), sizeof(zend_nest_location));
234
235
18.7k
  lex_state->heredoc_label_stack = SCNG(heredoc_label_stack);
236
18.7k
  zend_ptr_stack_init(&SCNG(heredoc_label_stack));
237
238
18.7k
  lex_state->in = SCNG(yy_in);
239
18.7k
  lex_state->yy_state = YYSTATE;
240
18.7k
  lex_state->filename = CG(compiled_filename);
241
18.7k
  lex_state->lineno = CG(zend_lineno);
242
18.7k
  CG(compiled_filename) = NULL;
243
244
18.7k
  lex_state->script_org = SCNG(script_org);
245
18.7k
  lex_state->script_org_size = SCNG(script_org_size);
246
18.7k
  lex_state->script_filtered = SCNG(script_filtered);
247
18.7k
  lex_state->script_filtered_size = SCNG(script_filtered_size);
248
18.7k
  lex_state->input_filter = SCNG(input_filter);
249
18.7k
  lex_state->output_filter = SCNG(output_filter);
250
18.7k
  lex_state->script_encoding = SCNG(script_encoding);
251
252
18.7k
  lex_state->on_event = SCNG(on_event);
253
18.7k
  lex_state->on_event_context = SCNG(on_event_context);
254
255
18.7k
  lex_state->ast = CG(ast);
256
18.7k
  lex_state->ast_arena = CG(ast_arena);
257
18.7k
}
258
259
ZEND_API void zend_restore_lexical_state(zend_lex_state *lex_state)
260
17.5k
{
261
17.5k
  SCNG(yy_leng)   = lex_state->yy_leng;
262
17.5k
  SCNG(yy_start)  = lex_state->yy_start;
263
17.5k
  SCNG(yy_text)   = lex_state->yy_text;
264
17.5k
  SCNG(yy_cursor) = lex_state->yy_cursor;
265
17.5k
  SCNG(yy_marker) = lex_state->yy_marker;
266
17.5k
  SCNG(yy_limit)  = lex_state->yy_limit;
267
268
17.5k
  zend_stack_destroy(&SCNG(state_stack));
269
17.5k
  SCNG(state_stack) = lex_state->state_stack;
270
271
17.5k
  zend_stack_destroy(&SCNG(nest_location_stack));
272
17.5k
  SCNG(nest_location_stack) = lex_state->nest_location_stack;
273
274
17.5k
  zend_ptr_stack_clean(&SCNG(heredoc_label_stack), (void (*)(void *)) &heredoc_label_dtor, 1);
275
17.5k
  zend_ptr_stack_destroy(&SCNG(heredoc_label_stack));
276
17.5k
  SCNG(heredoc_label_stack) = lex_state->heredoc_label_stack;
277
278
17.5k
  SCNG(yy_in) = lex_state->in;
279
17.5k
  YYSETCONDITION(lex_state->yy_state);
280
17.5k
  CG(zend_lineno) = lex_state->lineno;
281
17.5k
  zend_restore_compiled_filename(lex_state->filename);
282
283
17.5k
  if (SCNG(script_filtered) && SCNG(script_filtered) != lex_state->script_filtered) {
284
0
    efree(SCNG(script_filtered));
285
0
    SCNG(script_filtered) = NULL;
286
0
  }
287
17.5k
  SCNG(script_org) = lex_state->script_org;
288
17.5k
  SCNG(script_org_size) = lex_state->script_org_size;
289
17.5k
  SCNG(script_filtered) = lex_state->script_filtered;
290
17.5k
  SCNG(script_filtered_size) = lex_state->script_filtered_size;
291
17.5k
  SCNG(input_filter) = lex_state->input_filter;
292
17.5k
  SCNG(output_filter) = lex_state->output_filter;
293
17.5k
  SCNG(script_encoding) = lex_state->script_encoding;
294
295
17.5k
  SCNG(on_event) = lex_state->on_event;
296
17.5k
  SCNG(on_event_context) = lex_state->on_event_context;
297
298
17.5k
  CG(ast) = lex_state->ast;
299
17.5k
  CG(ast_arena) = lex_state->ast_arena;
300
301
17.5k
  RESET_DOC_COMMENT();
302
17.5k
}
303
304
ZEND_API zend_result zend_lex_tstring(zval *zv, unsigned char *ident)
305
175
{
306
175
  unsigned char *end = ident;
307
1.08k
  while ((*end >= 'a' && *end <= 'z') || (*end >= 'A' && *end <= 'Z') || *end == '_') {
308
908
    end++;
309
908
  }
310
311
175
  size_t length = end - ident;
312
175
  if (length == 0) {
313
1
    ZEND_ASSERT(ident[0] == '<' && ident[1] == '?' && ident[2] == '=');
314
1
    zend_throw_exception(zend_ce_parse_error, "Cannot use \"<?=\" as an identifier", 0);
315
1
    return FAILURE;
316
1
  }
317
318
174
  if (SCNG(on_event)) {
319
0
    SCNG(on_event)(ON_FEEDBACK, T_STRING, 0, (char *) ident, length, SCNG(on_event_context));
320
0
  }
321
322
174
  ZVAL_STRINGL(zv, (char *) ident, length);
323
174
  return SUCCESS;
324
175
}
325
326
0
#define BOM_UTF32_BE  "\x00\x00\xfe\xff"
327
0
#define BOM_UTF32_LE  "\xff\xfe\x00\x00"
328
0
#define BOM_UTF16_BE  "\xfe\xff"
329
0
#define BOM_UTF16_LE  "\xff\xfe"
330
0
#define BOM_UTF8    "\xef\xbb\xbf"
331
332
static const zend_encoding *zend_multibyte_detect_utf_encoding(const unsigned char *script, size_t script_size)
333
0
{
334
0
  const unsigned char *p;
335
0
  int wchar_size = 2;
336
0
  int le = 0;
337
338
  /* utf-16 or utf-32? */
339
0
  p = script;
340
0
  assert(p >= script);
341
0
  while ((size_t)(p-script) < script_size) {
342
0
    p = memchr(p, 0, script_size-(p-script)-2);
343
0
    if (!p) {
344
0
      break;
345
0
    }
346
0
    if (*(p+1) == '\0' && *(p+2) == '\0') {
347
0
      wchar_size = 4;
348
0
      break;
349
0
    }
350
351
    /* searching for UTF-32 specific byte orders, so this will do */
352
0
    p += 4;
353
0
  }
354
355
  /* BE or LE? */
356
0
  p = script;
357
0
  assert(p >= script);
358
0
  while ((size_t)(p-script) < script_size) {
359
0
    if (*p == '\0' && *(p+wchar_size-1) != '\0') {
360
      /* BE */
361
0
      le = 0;
362
0
      break;
363
0
    } else if (*p != '\0' && *(p+wchar_size-1) == '\0') {
364
      /* LE* */
365
0
      le = 1;
366
0
      break;
367
0
    }
368
0
    p += wchar_size;
369
0
  }
370
371
0
  if (wchar_size == 2) {
372
0
    return le ? zend_multibyte_encoding_utf16le : zend_multibyte_encoding_utf16be;
373
0
  } else {
374
0
    return le ? zend_multibyte_encoding_utf32le : zend_multibyte_encoding_utf32be;
375
0
  }
376
377
0
  return NULL;
378
0
}
379
380
static const zend_encoding* zend_multibyte_detect_unicode(void)
381
0
{
382
0
  const zend_encoding *script_encoding = NULL;
383
0
  int bom_size;
384
0
  unsigned char *pos1, *pos2;
385
386
0
  if (LANG_SCNG(script_org_size) < sizeof(BOM_UTF32_LE)-1) {
387
0
    return NULL;
388
0
  }
389
390
  /* check out BOM */
391
0
  if (!memcmp(LANG_SCNG(script_org), BOM_UTF32_BE, sizeof(BOM_UTF32_BE)-1)) {
392
0
    script_encoding = zend_multibyte_encoding_utf32be;
393
0
    bom_size = sizeof(BOM_UTF32_BE)-1;
394
0
  } else if (!memcmp(LANG_SCNG(script_org), BOM_UTF32_LE, sizeof(BOM_UTF32_LE)-1)) {
395
0
    script_encoding = zend_multibyte_encoding_utf32le;
396
0
    bom_size = sizeof(BOM_UTF32_LE)-1;
397
0
  } else if (!memcmp(LANG_SCNG(script_org), BOM_UTF16_BE, sizeof(BOM_UTF16_BE)-1)) {
398
0
    script_encoding = zend_multibyte_encoding_utf16be;
399
0
    bom_size = sizeof(BOM_UTF16_BE)-1;
400
0
  } else if (!memcmp(LANG_SCNG(script_org), BOM_UTF16_LE, sizeof(BOM_UTF16_LE)-1)) {
401
0
    script_encoding = zend_multibyte_encoding_utf16le;
402
0
    bom_size = sizeof(BOM_UTF16_LE)-1;
403
0
  } else if (!memcmp(LANG_SCNG(script_org), BOM_UTF8, sizeof(BOM_UTF8)-1)) {
404
0
    script_encoding = zend_multibyte_encoding_utf8;
405
0
    bom_size = sizeof(BOM_UTF8)-1;
406
0
  }
407
408
0
  if (script_encoding) {
409
    /* remove BOM */
410
0
    LANG_SCNG(script_org) += bom_size;
411
0
    LANG_SCNG(script_org_size) -= bom_size;
412
413
0
    return script_encoding;
414
0
  }
415
416
  /* script contains NULL bytes -> auto-detection */
417
0
  if ((pos1 = memchr(LANG_SCNG(script_org), 0, LANG_SCNG(script_org_size)))) {
418
    /* check if the NULL byte is after the __HALT_COMPILER(); */
419
0
    pos2 = LANG_SCNG(script_org);
420
421
0
    while ((size_t)(pos1 - pos2) >= sizeof("__HALT_COMPILER();")-1) {
422
0
      pos2 = memchr(pos2, '_', pos1 - pos2);
423
0
      if (!pos2) break;
424
0
      pos2++;
425
0
      if (strncasecmp((char*)pos2, "_HALT_COMPILER", sizeof("_HALT_COMPILER")-1) == 0) {
426
0
        pos2 += sizeof("_HALT_COMPILER")-1;
427
0
        while (*pos2 == ' '  ||
428
0
             *pos2 == '\t' ||
429
0
             *pos2 == '\r' ||
430
0
             *pos2 == '\n') {
431
0
          pos2++;
432
0
        }
433
0
        if (*pos2 == '(') {
434
0
          pos2++;
435
0
          while (*pos2 == ' '  ||
436
0
               *pos2 == '\t' ||
437
0
               *pos2 == '\r' ||
438
0
               *pos2 == '\n') {
439
0
            pos2++;
440
0
          }
441
0
          if (*pos2 == ')') {
442
0
            pos2++;
443
0
            while (*pos2 == ' '  ||
444
0
                 *pos2 == '\t' ||
445
0
                 *pos2 == '\r' ||
446
0
                 *pos2 == '\n') {
447
0
              pos2++;
448
0
            }
449
0
            if (*pos2 == ';') {
450
0
              return NULL;
451
0
            }
452
0
          }
453
0
        }
454
0
      }
455
0
    }
456
    /* make best effort if BOM is missing */
457
0
    return zend_multibyte_detect_utf_encoding(LANG_SCNG(script_org), LANG_SCNG(script_org_size));
458
0
  }
459
460
0
  return NULL;
461
0
}
462
463
static const zend_encoding* zend_multibyte_find_script_encoding(void)
464
0
{
465
0
  const zend_encoding *script_encoding;
466
467
0
  if (CG(detect_unicode)) {
468
    /* check out bom(byte order mark) and see if containing wchars */
469
0
    script_encoding = zend_multibyte_detect_unicode();
470
0
    if (script_encoding != NULL) {
471
      /* bom or wchar detection is prior to 'script_encoding' option */
472
0
      return script_encoding;
473
0
    }
474
0
  }
475
476
  /* if no script_encoding specified, just leave alone */
477
0
  if (!CG(script_encoding_list) || !CG(script_encoding_list_size)) {
478
0
    return NULL;
479
0
  }
480
481
  /* if multiple encodings specified, detect automagically */
482
0
  if (CG(script_encoding_list_size) > 1) {
483
0
    return zend_multibyte_encoding_detector(LANG_SCNG(script_org), LANG_SCNG(script_org_size), CG(script_encoding_list), CG(script_encoding_list_size));
484
0
  }
485
486
0
  return CG(script_encoding_list)[0];
487
0
}
488
489
ZEND_API zend_result zend_multibyte_set_filter(const zend_encoding *onetime_encoding)
490
0
{
491
0
  const zend_encoding *internal_encoding = zend_multibyte_get_internal_encoding();
492
0
  const zend_encoding *script_encoding = onetime_encoding ? onetime_encoding: zend_multibyte_find_script_encoding();
493
494
0
  if (!script_encoding) {
495
0
    return FAILURE;
496
0
  }
497
498
  /* judge input/output filter */
499
0
  LANG_SCNG(script_encoding) = script_encoding;
500
0
  LANG_SCNG(input_filter) = NULL;
501
0
  LANG_SCNG(output_filter) = NULL;
502
503
0
  if (!internal_encoding || LANG_SCNG(script_encoding) == internal_encoding) {
504
0
    if (!zend_multibyte_check_lexer_compatibility(LANG_SCNG(script_encoding))) {
505
      /* and if not, work around w/ script_encoding -> utf-8 -> script_encoding conversion */
506
0
      LANG_SCNG(input_filter) = encoding_filter_script_to_intermediate;
507
0
      LANG_SCNG(output_filter) = encoding_filter_intermediate_to_script;
508
0
    } else {
509
0
      LANG_SCNG(input_filter) = NULL;
510
0
      LANG_SCNG(output_filter) = NULL;
511
0
    }
512
0
    return SUCCESS;
513
0
  }
514
515
0
  if (zend_multibyte_check_lexer_compatibility(internal_encoding)) {
516
0
    LANG_SCNG(input_filter) = encoding_filter_script_to_internal;
517
0
    LANG_SCNG(output_filter) = NULL;
518
0
  } else if (zend_multibyte_check_lexer_compatibility(LANG_SCNG(script_encoding))) {
519
0
    LANG_SCNG(input_filter) = NULL;
520
0
    LANG_SCNG(output_filter) = encoding_filter_script_to_internal;
521
0
  } else {
522
    /* both script and internal encodings are incompatible w/ flex */
523
0
    LANG_SCNG(input_filter) = encoding_filter_script_to_intermediate;
524
0
    LANG_SCNG(output_filter) = encoding_filter_intermediate_to_internal;
525
0
  }
526
527
0
  return SUCCESS;
528
0
}
529
530
ZEND_API zend_result open_file_for_scanning(zend_file_handle *file_handle)
531
9.65k
{
532
9.65k
  char *buf;
533
9.65k
  size_t size;
534
9.65k
  zend_string *compiled_filename;
535
536
9.65k
  if (zend_stream_fixup(file_handle, &buf, &size) == FAILURE) {
537
    /* Still add it to open_files to make destroy_file_handle work */
538
670
    zend_llist_add_element(&CG(open_files), file_handle);
539
670
    file_handle->in_list = 1;
540
670
    return FAILURE;
541
670
  }
542
543
8.98k
  ZEND_ASSERT(!EG(exception) && "stream_fixup() should have failed");
544
8.98k
  zend_llist_add_element(&CG(open_files), file_handle);
545
8.32k
  file_handle->in_list = 1;
546
547
  /* Reset the scanner for scanning the new file */
548
8.32k
  SCNG(yy_in) = file_handle;
549
8.32k
  SCNG(yy_start) = NULL;
550
551
8.32k
  if (size != (size_t)-1) {
552
8.32k
    if (CG(multibyte)) {
553
0
      SCNG(script_org) = (unsigned char*)buf;
554
0
      SCNG(script_org_size) = size;
555
0
      SCNG(script_filtered) = NULL;
556
557
0
      zend_multibyte_set_filter(NULL);
558
559
0
      if (SCNG(input_filter)) {
560
0
        if ((size_t)-1 == SCNG(input_filter)(&SCNG(script_filtered), &SCNG(script_filtered_size), SCNG(script_org), SCNG(script_org_size))) {
561
0
          zend_error_noreturn(E_COMPILE_ERROR, "Could not convert the script from the detected "
562
0
              "encoding \"%s\" to a compatible encoding", zend_multibyte_get_encoding_name(LANG_SCNG(script_encoding)));
563
0
        }
564
0
        buf = (char*)SCNG(script_filtered);
565
0
        size = SCNG(script_filtered_size);
566
0
      }
567
0
    }
568
8.32k
    SCNG(yy_start) = (unsigned char *)buf;
569
8.32k
    yy_scan_buffer(buf, size);
570
8.32k
  } else {
571
0
    zend_error_noreturn(E_COMPILE_ERROR, "zend_stream_mmap() failed");
572
0
  }
573
574
8.32k
  if (CG(skip_shebang)) {
575
0
    BEGIN(SHEBANG);
576
8.32k
  } else {
577
8.32k
    BEGIN(INITIAL);
578
8.32k
  }
579
580
8.32k
  if (file_handle->opened_path) {
581
3
    compiled_filename = zend_string_copy(file_handle->opened_path);
582
8.31k
  } else {
583
8.31k
    compiled_filename = zend_string_copy(file_handle->filename);
584
8.31k
  }
585
586
8.32k
  zend_set_compiled_filename(compiled_filename);
587
8.32k
  zend_string_release_ex(compiled_filename, 0);
588
589
8.32k
  SCNG(on_event) = NULL;
590
8.32k
  SCNG(on_event_context) = NULL;
591
8.32k
  RESET_DOC_COMMENT();
592
8.32k
  CG(zend_lineno) = 1;
593
8.32k
  CG(increment_lineno) = 0;
594
8.32k
  return SUCCESS;
595
8.32k
}
596
597
static zend_op_array *zend_compile(int type)
598
8.36k
{
599
8.36k
  zend_op_array *op_array = NULL;
600
8.36k
  bool original_in_compilation = CG(in_compilation);
601
602
8.36k
  CG(in_compilation) = 1;
603
8.36k
  CG(ast) = NULL;
604
8.36k
  CG(ast_arena) = zend_arena_create(1024 * 32);
605
606
8.36k
  if (!zendparse()) {
607
5.78k
    uint32_t last_lineno = CG(zend_lineno);
608
5.78k
    zend_file_context original_file_context;
609
5.78k
    zend_oparray_context original_oparray_context;
610
5.78k
    zend_op_array *original_active_op_array = CG(active_op_array);
611
612
5.78k
    op_array = emalloc(sizeof(zend_op_array));
613
5.78k
    init_op_array(op_array, type, INITIAL_OP_ARRAY_SIZE);
614
5.78k
    CG(active_op_array) = op_array;
615
616
    /* Use heap to not waste arena memory */
617
5.78k
    op_array->fn_flags |= ZEND_ACC_HEAP_RT_CACHE;
618
619
5.78k
    if (zend_ast_process) {
620
0
      zend_ast_process(CG(ast));
621
0
    }
622
623
5.78k
    zend_file_context_begin(&original_file_context);
624
5.78k
    zend_oparray_context_begin(&original_oparray_context, op_array);
625
5.78k
    zend_compile_top_stmt(CG(ast));
626
5.78k
    CG(zend_lineno) = last_lineno;
627
5.78k
    zend_emit_final_return(type == ZEND_USER_FUNCTION);
628
5.78k
    op_array->line_start = 1;
629
5.78k
    op_array->line_end = last_lineno;
630
5.78k
    pass_two(op_array);
631
5.78k
    zend_oparray_context_end(&original_oparray_context);
632
5.78k
    zend_file_context_end(&original_file_context);
633
634
5.78k
    CG(active_op_array) = original_active_op_array;
635
5.78k
  }
636
637
8.36k
  zend_ast_destroy(CG(ast));
638
8.36k
  zend_arena_destroy(CG(ast_arena));
639
640
8.36k
  CG(in_compilation) = original_in_compilation;
641
642
8.36k
  return op_array;
643
8.36k
}
644
645
ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type)
646
9.65k
{
647
9.65k
  zend_lex_state original_lex_state;
648
9.65k
  zend_op_array *op_array = NULL;
649
9.65k
  zend_save_lexical_state(&original_lex_state);
650
651
9.65k
  if (open_file_for_scanning(file_handle)==FAILURE) {
652
670
    if (!EG(exception)) {
653
666
      if (type==ZEND_REQUIRE) {
654
663
        zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, ZSTR_VAL(file_handle->filename));
655
663
      } else {
656
3
        zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, ZSTR_VAL(file_handle->filename));
657
3
      }
658
666
    }
659
8.98k
  } else {
660
8.98k
    bool orig_record_errors = EG(record_errors);
661
8.98k
    if (!orig_record_errors) {
662
0
      zend_begin_record_errors();
663
0
    }
664
665
8.98k
    op_array = zend_compile(ZEND_USER_FUNCTION);
666
667
8.98k
    if (!orig_record_errors) {
668
0
      zend_emit_recorded_errors();
669
0
      zend_free_recorded_errors();
670
0
    }
671
8.98k
  }
672
673
9.65k
  zend_restore_lexical_state(&original_lex_state);
674
9.65k
  return op_array;
675
9.65k
}
676
677
ZEND_API zend_ast *zend_compile_string_to_ast(
678
1
    zend_string *code, zend_arena **ast_arena, zend_string *filename) {
679
1
  zval code_zv;
680
1
  bool original_in_compilation;
681
1
  zend_lex_state original_lex_state;
682
1
  zend_ast *ast;
683
684
1
  ZVAL_STR_COPY(&code_zv, code);
685
686
1
  original_in_compilation = CG(in_compilation);
687
1
  CG(in_compilation) = 1;
688
689
1
  zend_save_lexical_state(&original_lex_state);
690
1
  zend_prepare_string_for_scanning(&code_zv, filename);
691
1
  CG(ast) = NULL;
692
1
  CG(ast_arena) = zend_arena_create(1024 * 32);
693
1
  LANG_SCNG(yy_state) = yycINITIAL;
694
695
1
  if (zendparse() != 0) {
696
0
    zend_ast_destroy(CG(ast));
697
0
    zend_arena_destroy(CG(ast_arena));
698
0
    CG(ast) = NULL;
699
0
  }
700
701
  /* restore_lexical_state changes CG(ast) and CG(ast_arena) */
702
1
  ast = CG(ast);
703
1
  *ast_arena = CG(ast_arena);
704
705
1
  zend_restore_lexical_state(&original_lex_state);
706
1
  CG(in_compilation) = original_in_compilation;
707
708
1
  zval_ptr_dtor_str(&code_zv);
709
710
1
  return ast;
711
1
}
712
713
zend_op_array *compile_filename(int type, zend_string *filename)
714
3.36k
{
715
3.36k
  zend_file_handle file_handle;
716
3.36k
  zend_op_array *retval;
717
3.36k
  zend_string *opened_path = NULL;
718
719
3.36k
  zend_stream_init_filename_ex(&file_handle, filename);
720
721
3.36k
  retval = zend_compile_file(&file_handle, type);
722
3.36k
  if (retval && file_handle.handle.stream.handle) {
723
2
    if (!file_handle.opened_path) {
724
0
      file_handle.opened_path = opened_path = zend_string_copy(filename);
725
0
    }
726
727
2
    zend_hash_add_empty_element(&EG(included_files), file_handle.opened_path);
728
729
2
    if (opened_path) {
730
0
      zend_string_release_ex(opened_path, 0);
731
0
    }
732
2
  }
733
3.36k
  zend_destroy_file_handle(&file_handle);
734
735
3.36k
  return retval;
736
3.36k
}
737
738
ZEND_API void zend_prepare_string_for_scanning(zval *str, zend_string *filename)
739
4.24k
{
740
4.24k
  char *buf;
741
4.24k
  size_t size, old_len;
742
743
  /* enforce ZEND_MMAP_AHEAD trailing NULLs for flex... */
744
4.24k
  old_len = Z_STRLEN_P(str);
745
4.24k
  Z_STR_P(str) = zend_string_extend(Z_STR_P(str), old_len + ZEND_MMAP_AHEAD, 0);
746
4.24k
  Z_TYPE_INFO_P(str) = IS_STRING_EX;
747
4.24k
  memset(Z_STRVAL_P(str) + old_len, 0, ZEND_MMAP_AHEAD + 1);
748
749
4.24k
  SCNG(yy_in) = NULL;
750
4.24k
  SCNG(yy_start) = NULL;
751
752
4.24k
  buf = Z_STRVAL_P(str);
753
4.24k
  size = old_len;
754
755
4.24k
  if (CG(multibyte)) {
756
0
    SCNG(script_org) = (unsigned char*)buf;
757
0
    SCNG(script_org_size) = size;
758
0
    SCNG(script_filtered) = NULL;
759
760
0
    zend_multibyte_set_filter(zend_multibyte_get_internal_encoding());
761
762
0
    if (SCNG(input_filter)) {
763
0
      if ((size_t)-1 == SCNG(input_filter)(&SCNG(script_filtered), &SCNG(script_filtered_size), SCNG(script_org), SCNG(script_org_size))) {
764
0
        zend_error_noreturn(E_COMPILE_ERROR, "Could not convert the script from the detected "
765
0
            "encoding \"%s\" to a compatible encoding", zend_multibyte_get_encoding_name(LANG_SCNG(script_encoding)));
766
0
      }
767
0
      buf = (char*)SCNG(script_filtered);
768
0
      size = SCNG(script_filtered_size);
769
0
    }
770
0
  }
771
772
4.24k
  yy_scan_buffer(buf, size);
773
4.24k
  zend_set_compiled_filename(filename);
774
4.24k
  CG(zend_lineno) = 1;
775
4.24k
  CG(increment_lineno) = 0;
776
4.24k
  SCNG(on_event) = NULL;
777
4.24k
  SCNG(on_event_context) = NULL;
778
4.24k
  RESET_DOC_COMMENT();
779
4.24k
}
780
781
782
ZEND_API size_t zend_get_scanned_file_offset(void)
783
7
{
784
7
  size_t offset = SCNG(yy_cursor) - SCNG(yy_start);
785
7
  if (SCNG(input_filter)) {
786
0
    size_t original_offset = offset, length = 0;
787
0
    do {
788
0
      unsigned char *p = NULL;
789
0
      if ((size_t)-1 == SCNG(input_filter)(&p, &length, SCNG(script_org), offset)) {
790
0
        return (size_t)-1;
791
0
      }
792
0
      efree(p);
793
0
      if (length > original_offset) {
794
0
        offset--;
795
0
      } else if (length < original_offset) {
796
0
        offset++;
797
0
      }
798
0
    } while (original_offset != length);
799
0
  }
800
7
  return offset;
801
7
}
802
803
zend_op_array *compile_string(zend_string *source_string, const char *filename, zend_compile_position position)
804
41
{
805
41
  zend_lex_state original_lex_state;
806
41
  zend_op_array *op_array = NULL;
807
41
  zval tmp;
808
41
  zend_string *filename_str;
809
810
41
  if (ZSTR_LEN(source_string) == 0) {
811
1
    return NULL;
812
1
  }
813
814
40
  ZVAL_STR_COPY(&tmp, source_string);
815
816
40
  zend_save_lexical_state(&original_lex_state);
817
40
  filename_str = zend_string_init(filename, strlen(filename), 0);
818
40
  zend_prepare_string_for_scanning(&tmp, filename_str);
819
40
  zend_string_release(filename_str);
820
821
40
  switch (position) {
822
0
    case ZEND_COMPILE_POSITION_AT_SHEBANG:
823
0
      BEGIN(SHEBANG);
824
0
      break;
825
0
    case ZEND_COMPILE_POSITION_AT_OPEN_TAG:
826
0
      BEGIN(INITIAL);
827
0
      break;
828
40
    case ZEND_COMPILE_POSITION_AFTER_OPEN_TAG:
829
40
      BEGIN(ST_IN_SCRIPTING);
830
40
      break;
831
40
  }
832
833
40
  op_array = zend_compile(ZEND_EVAL_CODE);
834
835
40
  zend_restore_lexical_state(&original_lex_state);
836
40
  zval_ptr_dtor(&tmp);
837
838
40
  return op_array;
839
40
}
840
841
842
zend_result highlight_file(const char *filename, zend_syntax_highlighter_ini *syntax_highlighter_ini)
843
0
{
844
0
  zend_lex_state original_lex_state;
845
0
  zend_file_handle file_handle;
846
847
0
  zend_stream_init_filename(&file_handle, filename);
848
0
  zend_save_lexical_state(&original_lex_state);
849
0
  if (open_file_for_scanning(&file_handle)==FAILURE) {
850
0
    zend_message_dispatcher(ZMSG_FAILED_HIGHLIGHT_FOPEN, filename);
851
0
    zend_destroy_file_handle(&file_handle);
852
0
    zend_restore_lexical_state(&original_lex_state);
853
0
    return FAILURE;
854
0
  }
855
0
  zend_highlight(syntax_highlighter_ini);
856
0
  if (SCNG(script_filtered)) {
857
0
    efree(SCNG(script_filtered));
858
0
    SCNG(script_filtered) = NULL;
859
0
  }
860
0
  zend_destroy_file_handle(&file_handle);
861
0
  zend_restore_lexical_state(&original_lex_state);
862
0
  return SUCCESS;
863
0
}
864
865
void highlight_string(zend_string *str, zend_syntax_highlighter_ini *syntax_highlighter_ini, const char *filename)
866
4.20k
{
867
4.20k
  zend_lex_state original_lex_state;
868
4.20k
  zval str_zv;
869
4.20k
  zend_string *filename_str = zend_string_init(filename, strlen(filename), 0);
870
4.20k
  ZVAL_STR_COPY(&str_zv, str);
871
4.20k
  zend_save_lexical_state(&original_lex_state);
872
4.20k
  zend_prepare_string_for_scanning(&str_zv, filename_str);
873
4.20k
  zend_string_release(filename_str);
874
4.20k
  BEGIN(INITIAL);
875
4.20k
  zend_highlight(syntax_highlighter_ini);
876
4.20k
  if (SCNG(script_filtered)) {
877
0
    efree(SCNG(script_filtered));
878
0
    SCNG(script_filtered) = NULL;
879
0
  }
880
4.20k
  zend_restore_lexical_state(&original_lex_state);
881
4.20k
  zval_ptr_dtor(&str_zv);
882
4.20k
}
883
884
ZEND_API void zend_multibyte_yyinput_again(zend_encoding_filter old_input_filter, const zend_encoding *old_encoding)
885
0
{
886
0
  size_t length;
887
0
  unsigned char *new_yy_start;
888
889
  /* convert and set */
890
0
  if (!SCNG(input_filter)) {
891
0
    if (SCNG(script_filtered)) {
892
0
      efree(SCNG(script_filtered));
893
0
      SCNG(script_filtered) = NULL;
894
0
    }
895
0
    SCNG(script_filtered_size) = 0;
896
0
    length = SCNG(script_org_size);
897
0
    new_yy_start = SCNG(script_org);
898
0
  } else {
899
0
    if ((size_t)-1 == SCNG(input_filter)(&new_yy_start, &length, SCNG(script_org), SCNG(script_org_size))) {
900
0
      zend_error_noreturn(E_COMPILE_ERROR, "Could not convert the script from the detected "
901
0
          "encoding \"%s\" to a compatible encoding", zend_multibyte_get_encoding_name(LANG_SCNG(script_encoding)));
902
0
    }
903
0
    if (SCNG(script_filtered)) {
904
0
      efree(SCNG(script_filtered));
905
0
    }
906
0
    SCNG(script_filtered) = new_yy_start;
907
0
    SCNG(script_filtered_size) = length;
908
0
  }
909
910
0
  SCNG(yy_cursor) = new_yy_start + (SCNG(yy_cursor) - SCNG(yy_start));
911
0
  SCNG(yy_marker) = new_yy_start + (SCNG(yy_marker) - SCNG(yy_start));
912
0
  SCNG(yy_text) = new_yy_start + (SCNG(yy_text) - SCNG(yy_start));
913
0
  SCNG(yy_limit) = new_yy_start + length;
914
915
0
  SCNG(yy_start) = new_yy_start;
916
0
}
917
918
919
// TODO: avoid reallocation ???
920
# define zend_copy_value(zendlval, yytext, yyleng) \
921
114k
  if (SCNG(output_filter)) { \
922
0
    size_t sz = 0; \
923
0
    char *s = NULL; \
924
0
    SCNG(output_filter)((unsigned char **)&s, &sz, (unsigned char *)yytext, (size_t)yyleng); \
925
0
    ZVAL_STRINGL(zendlval, s, sz); \
926
0
    efree(s); \
927
114k
  } else if (yyleng == 1) { \
928
35.9k
    ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR((zend_uchar)*(yytext))); \
929
78.9k
  } else { \
930
78.9k
    ZVAL_STRINGL(zendlval, yytext, yyleng); \
931
78.9k
  }
932
933
static zend_result zend_scan_escape_string(zval *zendlval, char *str, size_t len, char quote_type)
934
11.9k
{
935
11.9k
  char *s, *t;
936
11.9k
  char *end;
937
938
11.9k
  if (len <= 1) {
939
975
    if (len < 1) {
940
175
      ZVAL_EMPTY_STRING(zendlval);
941
800
    } else {
942
800
      zend_uchar c = (zend_uchar)*str;
943
800
      HANDLE_NEWLINE(c);
944
800
      ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR(c));
945
800
    }
946
975
    goto skip_escape_conversion;
947
975
  }
948
949
11.0k
  ZVAL_STRINGL(zendlval, str, len);
950
951
  /* convert escape sequences */
952
11.0k
  s = Z_STRVAL_P(zendlval);
953
11.0k
  end = s+Z_STRLEN_P(zendlval);
954
334k
  while (1) {
955
334k
    if (UNEXPECTED(*s=='\\')) {
956
1.88k
      break;
957
1.88k
    }
958
332k
    if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
959
9.83k
      CG(zend_lineno)++;
960
9.83k
    }
961
332k
    s++;
962
332k
    if (s == end) {
963
9.12k
      goto skip_escape_conversion;
964
9.12k
    }
965
332k
  }
966
967
1.88k
  t = s;
968
25.0k
  while (s<end) {
969
23.2k
    if (*s=='\\') {
970
3.15k
      s++;
971
3.15k
      if (s >= end) {
972
25
        *t++ = '\\';
973
25
        break;
974
25
      }
975
976
3.13k
      switch(*s) {
977
735
        case 'n':
978
735
          *t++ = '\n';
979
735
          break;
980
8
        case 'r':
981
8
          *t++ = '\r';
982
8
          break;
983
30
        case 't':
984
30
          *t++ = '\t';
985
30
          break;
986
7
        case 'f':
987
7
          *t++ = '\f';
988
7
          break;
989
182
        case 'v':
990
182
          *t++ = '\v';
991
182
          break;
992
23
        case 'e':
993
#ifdef ZEND_WIN32
994
          *t++ = VK_ESCAPE;
995
#else
996
23
          *t++ = '\e';
997
23
#endif
998
23
          break;
999
14
        case '"':
1000
41
        case '`':
1001
41
          if (*s != quote_type) {
1002
28
            *t++ = '\\';
1003
28
            *t++ = *s;
1004
28
            break;
1005
28
          }
1006
13
          ZEND_FALLTHROUGH;
1007
433
        case '\\':
1008
447
        case '$':
1009
447
          *t++ = *s;
1010
447
          break;
1011
14
        case 'x':
1012
172
        case 'X':
1013
172
          if (ZEND_IS_HEX(*(s+1))) {
1014
93
            char hex_buf[3] = { 0, 0, 0 };
1015
1016
93
            hex_buf[0] = *(++s);
1017
93
            if (ZEND_IS_HEX(*(s+1))) {
1018
35
              hex_buf[1] = *(++s);
1019
35
            }
1020
93
            *t++ = (char) ZEND_STRTOL(hex_buf, NULL, 16);
1021
93
          } else {
1022
79
            *t++ = '\\';
1023
79
            *t++ = *s;
1024
79
          }
1025
172
          break;
1026
        /* UTF-8 codepoint escape, format: /\\u\{\x+\}/ */
1027
36
        case 'u':
1028
36
          {
1029
            /* cache where we started so we can parse after validating */
1030
36
            char *start = s + 1;
1031
36
            size_t len = 0;
1032
36
            bool valid = 1;
1033
36
            unsigned long codepoint;
1034
1035
36
            if (*start != '{') {
1036
              /* we silently let this pass to avoid breaking code
1037
               * with JSON in string literals (e.g. "\"\u202e\""
1038
               */
1039
21
              *t++ = '\\';
1040
21
              *t++ = 'u';
1041
21
              break;
1042
21
            } else {
1043
              /* on the other hand, invalid \u{blah} errors */
1044
15
              s++;
1045
15
              len++;
1046
15
              s++;
1047
40
              while (*s != '}') {
1048
39
                if (!ZEND_IS_HEX(*s)) {
1049
14
                  valid = 0;
1050
14
                  break;
1051
25
                } else {
1052
25
                  len++;
1053
25
                }
1054
25
                s++;
1055
25
              }
1056
15
              if (*s == '}') {
1057
1
                valid = 1;
1058
1
                len++;
1059
1
              }
1060
15
            }
1061
1062
            /* \u{} is invalid */
1063
15
            if (len <= 2) {
1064
8
              valid = 0;
1065
8
            }
1066
1067
15
            if (!valid) {
1068
14
              zend_throw_exception(zend_ce_parse_error,
1069
14
                "Invalid UTF-8 codepoint escape sequence", 0);
1070
14
              zval_ptr_dtor(zendlval);
1071
14
              ZVAL_UNDEF(zendlval);
1072
14
              return FAILURE;
1073
14
            }
1074
1075
15
            errno = 0;
1076
1
            codepoint = strtoul(start + 1, NULL, 16);
1077
1078
            /* per RFC 3629, UTF-8 can only represent 21 bits */
1079
1
            if (codepoint > 0x10FFFF || errno) {
1080
0
              zend_throw_exception(zend_ce_parse_error,
1081
0
                "Invalid UTF-8 codepoint escape sequence: Codepoint too large", 0);
1082
0
              zval_ptr_dtor(zendlval);
1083
0
              ZVAL_UNDEF(zendlval);
1084
0
              return FAILURE;
1085
0
            }
1086
1087
            /* based on https://en.wikipedia.org/wiki/UTF-8#Sample_code */
1088
1
            if (codepoint < 0x80) {
1089
0
              *t++ = codepoint;
1090
1
            } else if (codepoint <= 0x7FF) {
1091
0
              *t++ = (codepoint >> 6) + 0xC0;
1092
0
              *t++ = (codepoint & 0x3F) + 0x80;
1093
1
            } else if (codepoint <= 0xFFFF) {
1094
1
              *t++ = (codepoint >> 12) + 0xE0;
1095
1
              *t++ = ((codepoint >> 6) & 0x3F) + 0x80;
1096
1
              *t++ = (codepoint & 0x3F) + 0x80;
1097
1
            } else if (codepoint <= 0x10FFFF) {
1098
0
              *t++ = (codepoint >> 18) + 0xF0;
1099
0
              *t++ = ((codepoint >> 12) & 0x3F) + 0x80;
1100
0
              *t++ = ((codepoint >> 6) & 0x3F) + 0x80;
1101
0
              *t++ = (codepoint & 0x3F) + 0x80;
1102
0
            }
1103
1
          }
1104
0
          break;
1105
1.46k
        default:
1106
          /* check for an octal */
1107
1.46k
          if (ZEND_IS_OCT(*s)) {
1108
216
            char octal_buf[4] = { 0, 0, 0, 0 };
1109
1110
216
            octal_buf[0] = *s;
1111
216
            if (ZEND_IS_OCT(*(s+1))) {
1112
75
              octal_buf[1] = *(++s);
1113
75
              if (ZEND_IS_OCT(*(s+1))) {
1114
47
                octal_buf[2] = *(++s);
1115
47
              }
1116
75
            }
1117
216
            if (octal_buf[2] && (octal_buf[0] > '3') && !SCNG(heredoc_scan_ahead)) {
1118
              /* 3 octit values must not overflow 0xFF (\377) */
1119
14
              zend_error(E_COMPILE_WARNING, "Octal escape sequence overflow \\%s is greater than \\377", octal_buf);
1120
14
            }
1121
1122
216
            *t++ = (char) ZEND_STRTOL(octal_buf, NULL, 8);
1123
1.25k
          } else {
1124
1.25k
            *t++ = '\\';
1125
1.25k
            *t++ = *s;
1126
1.25k
          }
1127
1.46k
          break;
1128
3.13k
      }
1129
20.0k
    } else {
1130
20.0k
      *t++ = *s;
1131
20.0k
    }
1132
1133
23.1k
    if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
1134
633
      CG(zend_lineno)++;
1135
633
    }
1136
23.1k
    s++;
1137
23.1k
  }
1138
1.86k
  *t = 0;
1139
1.86k
  Z_STRLEN_P(zendlval) = t - Z_STRVAL_P(zendlval);
1140
1141
11.9k
skip_escape_conversion:
1142
11.9k
  if (SCNG(output_filter)) {
1143
0
    size_t sz = 0;
1144
0
    unsigned char *str;
1145
    // TODO: avoid realocation ???
1146
0
    s = Z_STRVAL_P(zendlval);
1147
0
    SCNG(output_filter)(&str, &sz, (unsigned char *)s, Z_STRLEN_P(zendlval));
1148
0
    zval_ptr_dtor(zendlval);
1149
0
    ZVAL_STRINGL(zendlval, (char *) str, sz);
1150
0
    efree(str);
1151
0
  }
1152
11.9k
  return SUCCESS;
1153
1.86k
}
1154
1155
3.54k
#define HEREDOC_USING_SPACES 1
1156
911
#define HEREDOC_USING_TABS 2
1157
1158
5.75k
static const char *next_newline(const char *str, const char *end, size_t *newline_len) {
1159
41.6k
  for (; str < end; str++) {
1160
38.9k
    if (*str == '\r') {
1161
399
      *newline_len = str + 1 < end && *(str + 1) == '\n' ? 2 : 1;
1162
399
      return str;
1163
38.5k
    } else if (*str == '\n') {
1164
2.64k
      *newline_len = 1;
1165
2.64k
      return str;
1166
2.64k
    }
1167
38.9k
  }
1168
2.71k
  *newline_len = 0;
1169
2.71k
  return NULL;
1170
5.75k
}
1171
1172
static bool strip_multiline_string_indentation(
1173
  zval *zendlval, int indentation, bool using_spaces,
1174
  bool newline_at_start, bool newline_at_end)
1175
2.50k
{
1176
2.50k
  const char *str = Z_STRVAL_P(zendlval), *end = str + Z_STRLEN_P(zendlval);
1177
2.50k
  char *copy = Z_STRVAL_P(zendlval);
1178
1179
2.50k
  uint32_t newline_count = 0;
1180
2.50k
  size_t newline_len;
1181
2.50k
  const char *nl;
1182
1183
2.50k
  if (!newline_at_start) {
1184
633
    nl = next_newline(str, end, &newline_len);
1185
633
    if (!nl) {
1186
228
      return 1;
1187
228
    }
1188
1189
405
    str = nl + newline_len;
1190
405
    copy = (char *) nl + newline_len;
1191
405
    newline_count++;
1192
1.86k
  } else {
1193
1.86k
    nl = str;
1194
1.86k
  }
1195
1196
  /* <= intentional */
1197
6.13k
  while (str <= end && nl) {
1198
5.12k
    size_t skip;
1199
5.12k
    nl = next_newline(str, end, &newline_len);
1200
5.12k
    if (!nl && newline_at_end) {
1201
473
      nl = end;
1202
473
    }
1203
1204
    /* Try to skip indentation */
1205
5.33k
    for (skip = 0; skip < indentation; skip++, str++) {
1206
246
      if (str == nl) {
1207
        /* Don't require full indentation on whitespace-only lines */
1208
19
        break;
1209
19
      }
1210
1211
227
      if (str == end || (*str != ' ' && *str != '\t')) {
1212
13
        CG(zend_lineno) += newline_count;
1213
13
        zend_throw_exception_ex(zend_ce_parse_error, 0,
1214
13
          "Invalid body indentation level (expecting an indentation level of at least %d)", indentation);
1215
13
        goto error;
1216
13
      }
1217
1218
214
      if ((!using_spaces && *str == ' ') || (using_spaces && *str == '\t')) {
1219
5
        CG(zend_lineno) += newline_count;
1220
5
        zend_throw_exception(zend_ce_parse_error,
1221
5
          "Invalid indentation - tabs and spaces cannot be mixed", 0);
1222
5
        goto error;
1223
5
      }
1224
214
    }
1225
1226
5.10k
    if (str == end) {
1227
1.24k
      break;
1228
1.24k
    }
1229
1230
3.86k
    size_t len = nl ? (nl - str + newline_len) : (end - str);
1231
3.86k
    memmove(copy, str, len);
1232
3.86k
    str += len;
1233
3.86k
    copy += len;
1234
3.86k
    newline_count++;
1235
3.86k
  }
1236
1237
2.25k
  *copy = '\0';
1238
2.25k
  Z_STRLEN_P(zendlval) = copy - Z_STRVAL_P(zendlval);
1239
2.25k
  return 1;
1240
1241
18
error:
1242
18
  zval_ptr_dtor_str(zendlval);
1243
18
  ZVAL_UNDEF(zendlval);
1244
1245
18
  return 0;
1246
2.27k
}
1247
1248
static void copy_heredoc_label_stack(void *void_heredoc_label)
1249
14.3k
{
1250
14.3k
  zend_heredoc_label *heredoc_label = void_heredoc_label;
1251
14.3k
  zend_heredoc_label *new_heredoc_label = emalloc(sizeof(zend_heredoc_label));
1252
1253
14.3k
  *new_heredoc_label = *heredoc_label;
1254
14.3k
  new_heredoc_label->label = estrndup(heredoc_label->label, heredoc_label->length);
1255
1256
14.3k
  zend_ptr_stack_push(&SCNG(heredoc_label_stack), (void *) new_heredoc_label);
1257
14.3k
}
1258
1259
/* Check that { }, [ ], ( ) are nested correctly */
1260
static void report_bad_nesting(char opening, uint32_t opening_lineno, char closing)
1261
9.59k
{
1262
9.59k
  char   buf[256];
1263
9.59k
  size_t used = 0;
1264
1265
9.59k
  used = snprintf(buf, sizeof(buf), "Unclosed '%c'", opening);
1266
1267
9.59k
  if (opening_lineno != CG(zend_lineno)) {
1268
4.33k
    used += snprintf(buf + used, sizeof(buf) - used, " on line %d", opening_lineno);
1269
4.33k
  }
1270
1271
9.59k
  if (closing) {   /* 'closing' will be 0 if at end of file */
1272
4.10k
    used += snprintf(buf + used, sizeof(buf) - used, " does not match '%c'", closing);
1273
4.10k
  }
1274
1275
9.59k
  zend_throw_exception(zend_ce_parse_error, buf, 0);
1276
9.59k
}
1277
1278
static void enter_nesting(char opening)
1279
64.5k
{
1280
64.5k
  zend_nest_location nest_loc = {opening, CG(zend_lineno)};
1281
64.5k
  zend_stack_push(&SCNG(nest_location_stack), &nest_loc);
1282
64.5k
}
1283
1284
static zend_result exit_nesting(char closing)
1285
30.2k
{
1286
30.2k
  if (zend_stack_is_empty(&SCNG(nest_location_stack))) {
1287
2.02k
    zend_throw_exception_ex(zend_ce_parse_error, 0, "Unmatched '%c'", closing);
1288
2.02k
    return FAILURE;
1289
2.02k
  }
1290
1291
28.2k
  zend_nest_location *nest_loc = zend_stack_top(&SCNG(nest_location_stack));
1292
28.2k
  char opening = nest_loc->text;
1293
1294
28.2k
  if ((opening == '{' && closing != '}') ||
1295
28.0k
      (opening == '[' && closing != ']') ||
1296
28.0k
      (opening == '(' && closing != ')')) {
1297
4.10k
    report_bad_nesting(opening, nest_loc->lineno, closing);
1298
4.10k
    return FAILURE;
1299
4.10k
  }
1300
1301
24.1k
  zend_stack_del_top(&SCNG(nest_location_stack));
1302
24.1k
  return SUCCESS;
1303
28.2k
}
1304
1305
static zend_result check_nesting_at_end(void)
1306
14.2k
{
1307
14.2k
  if (!zend_stack_is_empty(&SCNG(nest_location_stack))) {
1308
5.48k
    zend_nest_location *nest_loc = zend_stack_top(&SCNG(nest_location_stack));
1309
5.48k
    report_bad_nesting(nest_loc->text, nest_loc->lineno, 0);
1310
5.48k
    return FAILURE;
1311
5.48k
  }
1312
1313
8.76k
  return SUCCESS;
1314
14.2k
}
1315
1316
#define PARSER_MODE() \
1317
348k
  EXPECTED(elem != NULL)
1318
1319
361k
#define RETURN_TOKEN(_token) do { \
1320
361k
    token = _token; \
1321
361k
    goto emit_token; \
1322
361k
  } while (0)
1323
1324
54.1k
#define RETURN_TOKEN_WITH_VAL(_token) do { \
1325
54.1k
    token = _token; \
1326
54.1k
    goto emit_token_with_val; \
1327
54.1k
  } while (0)
1328
1329
114k
#define RETURN_TOKEN_WITH_STR(_token, _offset) do { \
1330
114k
    token = _token; \
1331
114k
    offset = _offset; \
1332
114k
    goto emit_token_with_str; \
1333
114k
  } while (0)
1334
1335
18.8k
#define RETURN_TOKEN_WITH_IDENT(_token) do { \
1336
18.8k
    token = _token; \
1337
18.8k
    goto emit_token_with_ident; \
1338
18.8k
  } while (0)
1339
1340
20.8k
#define RETURN_OR_SKIP_TOKEN(_token) do { \
1341
20.8k
    token = _token; \
1342
20.8k
    if (PARSER_MODE()) { \
1343
8.63k
      goto skip_token; \
1344
8.63k
    } \
1345
20.8k
    goto emit_token; \
1346
20.8k
  } while (0)
1347
1348
30.2k
#define RETURN_EXIT_NESTING_TOKEN(_token) do { \
1349
30.2k
    if (exit_nesting(_token) != SUCCESS && PARSER_MODE()) { \
1350
31
      RETURN_TOKEN(T_ERROR); \
1351
30.2k
    } else { \
1352
30.2k
      RETURN_TOKEN(_token); \
1353
30.2k
    } \
1354
30.2k
  } while(0)
1355
1356
14.2k
#define RETURN_END_TOKEN do { \
1357
14.2k
    if (check_nesting_at_end() != SUCCESS && PARSER_MODE()) { \
1358
256
      RETURN_TOKEN(T_ERROR); \
1359
13.9k
    } else { \
1360
13.9k
      RETURN_TOKEN(END); \
1361
13.9k
    } \
1362
14.2k
  } while (0)
1363
1364
int ZEND_FASTCALL lex_scan(zval *zendlval, zend_parser_stack_elem *elem)
1365
627k
{
1366
627k
int token;
1367
627k
int offset;
1368
627k
uint32_t start_line = CG(zend_lineno);
1369
1370
627k
  ZVAL_UNDEF(zendlval);
1371
706k
restart:
1372
706k
  SCNG(yy_text) = YYCURSOR;
1373
1374
1375
706k
#line 1376 "Zend/zend_language_scanner.c"
1376
706k
{
1377
706k
  YYCTYPE yych;
1378
706k
  unsigned int yyaccept = 0;
1379
706k
  if (YYGETCONDITION() < 5) {
1380
661k
    if (YYGETCONDITION() < 2) {
1381
621k
      if (YYGETCONDITION() < 1) {
1382
620k
        goto yyc_ST_IN_SCRIPTING;
1383
620k
      } else {
1384
1.85k
        goto yyc_ST_LOOKING_FOR_PROPERTY;
1385
1.85k
      }
1386
621k
    } else {
1387
39.9k
      if (YYGETCONDITION() < 3) {
1388
3.91k
        goto yyc_ST_BACKQUOTE;
1389
36.0k
      } else {
1390
36.0k
        if (YYGETCONDITION() < 4) {
1391
4.90k
          goto yyc_ST_DOUBLE_QUOTES;
1392
31.1k
        } else {
1393
31.1k
          goto yyc_ST_HEREDOC;
1394
31.1k
        }
1395
36.0k
      }
1396
39.9k
    }
1397
661k
  } else {
1398
44.4k
    if (YYGETCONDITION() < 8) {
1399
21.5k
      if (YYGETCONDITION() < 6) {
1400
19.9k
        goto yyc_ST_LOOKING_FOR_VARNAME;
1401
19.9k
      } else {
1402
1.57k
        if (YYGETCONDITION() < 7) {
1403
1.57k
          goto yyc_ST_VAR_OFFSET;
1404
1.57k
        } else {
1405
0
          goto yyc_SHEBANG;
1406
0
        }
1407
1.57k
      }
1408
22.9k
    } else {
1409
22.9k
      if (YYGETCONDITION() < 9) {
1410
22.0k
        goto yyc_INITIAL;
1411
22.0k
      } else {
1412
821
        if (YYGETCONDITION() < 10) {
1413
718
          goto yyc_ST_END_HEREDOC;
1414
718
        } else {
1415
103
          goto yyc_ST_NOWDOC;
1416
103
        }
1417
821
      }
1418
22.9k
    }
1419
44.4k
  }
1420
/* *********************************** */
1421
620k
yyc_ST_IN_SCRIPTING:
1422
620k
  {
1423
620k
    static const unsigned char yybm[] = {
1424
      /* table 1 .. 8: 0 */
1425
620k
        0, 134, 134, 134, 134, 134, 134, 134, 
1426
620k
      134, 135,   4, 134, 134,   4, 134, 134, 
1427
620k
      134, 134, 134, 134, 134, 134, 134, 134, 
1428
620k
      134, 134, 134, 134, 134, 134, 134, 134, 
1429
620k
      135, 134, 134, 134, 134, 134, 134, 134, 
1430
620k
      134, 134,  66, 134, 134, 134, 134, 134, 
1431
620k
      190, 190, 182, 182, 182, 182, 182, 182, 
1432
620k
      166, 166, 134, 134, 134, 134, 134, 134, 
1433
620k
      134, 166, 166, 166, 166, 166, 166, 134, 
1434
620k
      134, 134, 134, 134, 134, 134, 134, 134, 
1435
620k
      134, 134, 134, 134, 134, 134, 134, 134, 
1436
620k
      134, 134, 134, 134, 134, 134, 134, 134, 
1437
620k
      134, 166, 166, 166, 166, 166, 166, 134, 
1438
620k
      134, 134, 134, 134, 134, 134, 134, 134, 
1439
620k
      134, 134, 134, 134, 134, 134, 134, 134, 
1440
620k
      134, 134, 134, 134, 134, 134, 134, 134, 
1441
620k
      134, 134, 134, 134, 134, 134, 134, 134, 
1442
620k
      134, 134, 134, 134, 134, 134, 134, 134, 
1443
620k
      134, 134, 134, 134, 134, 134, 134, 134, 
1444
620k
      134, 134, 134, 134, 134, 134, 134, 134, 
1445
620k
      134, 134, 134, 134, 134, 134, 134, 134, 
1446
620k
      134, 134, 134, 134, 134, 134, 134, 134, 
1447
620k
      134, 134, 134, 134, 134, 134, 134, 134, 
1448
620k
      134, 134, 134, 134, 134, 134, 134, 134, 
1449
620k
      134, 134, 134, 134, 134, 134, 134, 134, 
1450
620k
      134, 134, 134, 134, 134, 134, 134, 134, 
1451
620k
      134, 134, 134, 134, 134, 134, 134, 134, 
1452
620k
      134, 134, 134, 134, 134, 134, 134, 134, 
1453
620k
      134, 134, 134, 134, 134, 134, 134, 134, 
1454
620k
      134, 134, 134, 134, 134, 134, 134, 134, 
1455
620k
      134, 134, 134, 134, 134, 134, 134, 134, 
1456
620k
      134, 134, 134, 134, 134, 134, 134, 134, 
1457
      /* table 9 .. 11: 256 */
1458
620k
        0,   0,   0,   0,   0,   0,   0,   0, 
1459
620k
        0,  32,  32,   0,   0,  32,   0,   0, 
1460
620k
        0,   0,   0,   0,   0,   0,   0,   0, 
1461
620k
        0,   0,   0,   0,   0,   0,   0,   0, 
1462
620k
       32,   0,   0,   0,   0,   0,   0,   0, 
1463
620k
        0,   0,   0,   0,   0,   0,   0,   0, 
1464
620k
      192, 192, 192, 192, 192, 192, 192, 192, 
1465
620k
      192, 192,   0,   0,   0,   0,   0,   0, 
1466
620k
        0, 128, 128, 128, 128, 128, 128, 128, 
1467
620k
      128, 128, 128, 128, 128, 128, 128, 128, 
1468
620k
      128, 128, 128, 128, 128, 128, 128, 128, 
1469
620k
      128, 128, 128,   0,   0,   0,   0, 128, 
1470
620k
        0, 128, 128, 128, 128, 128, 128, 128, 
1471
620k
      128, 128, 128, 128, 128, 128, 128, 128, 
1472
620k
      128, 128, 128, 128, 128, 128, 128, 128, 
1473
620k
      128, 128, 128,   0,   0,   0,   0,   0, 
1474
620k
      128, 128, 128, 128, 128, 128, 128, 128, 
1475
620k
      128, 128, 128, 128, 128, 128, 128, 128, 
1476
620k
      128, 128, 128, 128, 128, 128, 128, 128, 
1477
620k
      128, 128, 128, 128, 128, 128, 128, 128, 
1478
620k
      128, 128, 128, 128, 128, 128, 128, 128, 
1479
620k
      128, 128, 128, 128, 128, 128, 128, 128, 
1480
620k
      128, 128, 128, 128, 128, 128, 128, 128, 
1481
620k
      128, 128, 128, 128, 128, 128, 128, 128, 
1482
620k
      128, 128, 128, 128, 128, 128, 128, 128, 
1483
620k
      128, 128, 128, 128, 128, 128, 128, 128, 
1484
620k
      128, 128, 128, 128, 128, 128, 128, 128, 
1485
620k
      128, 128, 128, 128, 128, 128, 128, 128, 
1486
620k
      128, 128, 128, 128, 128, 128, 128, 128, 
1487
620k
      128, 128, 128, 128, 128, 128, 128, 128, 
1488
620k
      128, 128, 128, 128, 128, 128, 128, 128, 
1489
620k
      128, 128, 128, 128, 128, 128, 128, 128, 
1490
620k
    };
1491
620k
    YYDEBUG(1, *YYCURSOR);
1492
620k
    YYFILL(16);
1493
620k
    yych = *YYCURSOR;
1494
620k
    if (yybm[256+yych] & 32) {
1495
115k
      goto yy5;
1496
115k
    }
1497
504k
    switch (yych) {
1498
46.2k
    case 0x00:
1499
49.1k
    case 0x01:
1500
52.6k
    case 0x02:
1501
54.2k
    case 0x03:
1502
54.3k
    case 0x04:
1503
54.8k
    case 0x05:
1504
54.9k
    case 0x06:
1505
55.2k
    case 0x07:
1506
56.5k
    case 0x08:
1507
56.5k
    case '\t':
1508
56.5k
    case '\n':
1509
56.8k
    case '\v':
1510
59.5k
    case '\f':
1511
59.5k
    case '\r':
1512
61.0k
    case 0x0E:
1513
61.7k
    case 0x0F:
1514
62.0k
    case 0x10:
1515
62.2k
    case 0x11:
1516
62.3k
    case 0x12:
1517
62.5k
    case 0x13:
1518
62.6k
    case 0x14:
1519
62.7k
    case 0x15:
1520
64.1k
    case 0x16:
1521
65.4k
    case 0x17:
1522
65.6k
    case 0x18:
1523
65.7k
    case 0x19:
1524
65.8k
    case 0x1A:
1525
65.9k
    case 0x1B:
1526
66.2k
    case 0x1C:
1527
66.5k
    case 0x1D:
1528
66.9k
    case 0x1E:
1529
66.9k
    case 0x1F:
1530
67.2k
    case 0x7F:  goto yy3;
1531
0
    case ' ':
1532
4.49k
    case '!': goto yy8;
1533
6.90k
    case '"': goto yy10;
1534
7.06k
    case '#': goto yy12;
1535
19.5k
    case '$': goto yy14;
1536
773
    case '%': goto yy15;
1537
2.11k
    case '&': goto yy16;
1538
5.36k
    case '\'':  goto yy18;
1539
30.4k
    case '(': goto yy20;
1540
18.0k
    case ')':
1541
20.0k
    case ']': goto yy22;
1542
1.25k
    case '*': goto yy24;
1543
14.0k
    case '+': goto yy25;
1544
4.39k
    case ',':
1545
29.7k
    case ';':
1546
35.0k
    case '@':
1547
35.6k
    case '~': goto yy26;
1548
9.19k
    case '-': goto yy27;
1549
1.74k
    case '.': goto yy28;
1550
4.06k
    case '/': goto yy29;
1551
4.84k
    case '0': goto yy30;
1552
2.91k
    case '1':
1553
6.10k
    case '2':
1554
8.02k
    case '3':
1555
14.0k
    case '4':
1556
14.4k
    case '5':
1557
14.8k
    case '6':
1558
16.0k
    case '7':
1559
16.4k
    case '8':
1560
19.4k
    case '9': goto yy32;
1561
4.52k
    case ':': goto yy34;
1562
60.8k
    case '<': goto yy35;
1563
11.9k
    case '=': goto yy36;
1564
837
    case '>': goto yy37;
1565
26.3k
    case '?': goto yy38;
1566
1.04k
    case 'A':
1567
3.25k
    case 'a': goto yy39;
1568
1.33k
    case 'B':
1569
3.29k
    case 'b': goto yy41;
1570
1.04k
    case 'C':
1571
5.30k
    case 'c': goto yy42;
1572
1.61k
    case 'D':
1573
2.31k
    case 'd': goto yy43;
1574
491
    case 'E':
1575
5.42k
    case 'e': goto yy44;
1576
1.20k
    case 'F':
1577
9.50k
    case 'f': goto yy45;
1578
112
    case 'G':
1579
3.67k
    case 'g': goto yy46;
1580
5.06k
    case 'I':
1581
11.1k
    case 'i': goto yy49;
1582
178
    case 'L':
1583
453
    case 'l': goto yy50;
1584
140
    case 'M':
1585
771
    case 'm': goto yy51;
1586
123
    case 'N':
1587
3.73k
    case 'n': goto yy52;
1588
90
    case 'O':
1589
472
    case 'o': goto yy53;
1590
798
    case 'P':
1591
13.6k
    case 'p': goto yy54;
1592
715
    case 'R':
1593
4.92k
    case 'r': goto yy55;
1594
303
    case 'S':
1595
3.23k
    case 's': goto yy56;
1596
1.09k
    case 'T':
1597
3.00k
    case 't': goto yy57;
1598
129
    case 'U':
1599
1.05k
    case 'u': goto yy58;
1600
733
    case 'V':
1601
3.18k
    case 'v': goto yy59;
1602
79
    case 'W':
1603
190
    case 'w': goto yy60;
1604
475
    case 'X':
1605
601
    case 'x': goto yy61;
1606
148
    case 'Y':
1607
2.23k
    case 'y': goto yy62;
1608
2.84k
    case '[': goto yy63;
1609
1.78k
    case '\\':  goto yy64;
1610
2.69k
    case '^': goto yy66;
1611
1.75k
    case '_': goto yy67;
1612
1.82k
    case '`': goto yy68;
1613
10.8k
    case '{': goto yy70;
1614
960
    case '|': goto yy72;
1615
10.2k
    case '}': goto yy73;
1616
31.2k
    default:  goto yy47;
1617
504k
    }
1618
67.2k
yy3:
1619
67.2k
    YYDEBUG(3, *YYCURSOR);
1620
67.2k
    ++YYCURSOR;
1621
67.2k
    YYDEBUG(4, *YYCURSOR);
1622
67.2k
    yyleng = YYCURSOR - SCNG(yy_text);
1623
67.2k
#line 3179 "Zend/zend_language_scanner.l"
1624
67.2k
    {
1625
67.2k
  if (YYCURSOR > YYLIMIT) {
1626
8.09k
    RETURN_END_TOKEN;
1627
8.09k
  }
1628
1629
59.1k
  RETURN_TOKEN(T_BAD_CHARACTER);
1630
59.1k
}
1631
0
#line 1632 "Zend/zend_language_scanner.c"
1632
174k
yy5:
1633
174k
    YYDEBUG(5, *YYCURSOR);
1634
174k
    ++YYCURSOR;
1635
174k
    YYFILL(1);
1636
174k
    yych = *YYCURSOR;
1637
174k
    YYDEBUG(6, *YYCURSOR);
1638
174k
    if (yybm[256+yych] & 32) {
1639
58.6k
      goto yy5;
1640
58.6k
    }
1641
115k
    YYDEBUG(7, *YYCURSOR);
1642
115k
    yyleng = YYCURSOR - SCNG(yy_text);
1643
115k
#line 1597 "Zend/zend_language_scanner.l"
1644
115k
    {
1645
115k
  goto return_whitespace;
1646
174k
}
1647
0
#line 1648 "Zend/zend_language_scanner.c"
1648
4.49k
yy8:
1649
4.49k
    YYDEBUG(8, *YYCURSOR);
1650
4.49k
    yych = *++YYCURSOR;
1651
4.49k
    if (yych == '=') goto yy75;
1652
116k
yy9:
1653
116k
    YYDEBUG(9, *YYCURSOR);
1654
116k
    yyleng = YYCURSOR - SCNG(yy_text);
1655
116k
#line 1969 "Zend/zend_language_scanner.l"
1656
116k
    {
1657
116k
  RETURN_TOKEN(yytext[0]);
1658
116k
}
1659
0
#line 1660 "Zend/zend_language_scanner.c"
1660
7.00k
yy10:
1661
7.00k
    YYDEBUG(10, *YYCURSOR);
1662
7.00k
    ++YYCURSOR;
1663
7.00k
    YYDEBUG(11, *YYCURSOR);
1664
7.00k
    yyleng = YYCURSOR - SCNG(yy_text);
1665
7.00k
#line 2632 "Zend/zend_language_scanner.l"
1666
7.00k
    {
1667
7.00k
  int bprefix = (yytext[0] != '"') ? 1 : 0;
1668
1669
233k
  while (YYCURSOR < YYLIMIT) {
1670
232k
    switch (*YYCURSOR++) {
1671
5.27k
      case '"':
1672
5.27k
        yyleng = YYCURSOR - SCNG(yy_text);
1673
5.27k
        if (EXPECTED(zend_scan_escape_string(zendlval, yytext+bprefix+1, yyleng-bprefix-2, '"') == SUCCESS)
1674
5.27k
         || !PARSER_MODE()) {
1675
5.27k
          RETURN_TOKEN_WITH_VAL(T_CONSTANT_ENCAPSED_STRING);
1676
5.27k
        } else {
1677
1
          RETURN_TOKEN(T_ERROR);
1678
1
        }
1679
1.04k
      case '$':
1680
1.04k
        if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
1681
829
          break;
1682
829
        }
1683
213
        continue;
1684
516
      case '{':
1685
516
        if (*YYCURSOR == '$') {
1686
21
          break;
1687
21
        }
1688
495
        continue;
1689
2.52k
      case '\\':
1690
2.52k
        if (YYCURSOR < YYLIMIT) {
1691
2.50k
          YYCURSOR++;
1692
2.50k
        }
1693
2.52k
        ZEND_FALLTHROUGH;
1694
225k
      default:
1695
225k
        continue;
1696
232k
    }
1697
1698
850
    YYCURSOR--;
1699
850
    break;
1700
232k
  }
1701
1702
  /* Remember how much was scanned to save rescanning */
1703
7.00k
  SET_DOUBLE_QUOTES_SCANNED_LENGTH(YYCURSOR - SCNG(yy_text) - yyleng);
1704
1705
1.72k
  YYCURSOR = SCNG(yy_text) + yyleng;
1706
1707
1.72k
  BEGIN(ST_DOUBLE_QUOTES);
1708
1.72k
  RETURN_TOKEN('"');
1709
1.72k
}
1710
0
#line 1711 "Zend/zend_language_scanner.c"
1711
7.06k
yy12:
1712
7.06k
    YYDEBUG(12, *YYCURSOR);
1713
7.06k
    yych = *++YYCURSOR;
1714
7.06k
    if (yych == '[') goto yy77;
1715
7.21k
yy13:
1716
7.21k
    YYDEBUG(13, *YYCURSOR);
1717
7.21k
    yyleng = YYCURSOR - SCNG(yy_text);
1718
7.21k
#line 2460 "Zend/zend_language_scanner.l"
1719
7.21k
    {
1720
26.9k
  while (YYCURSOR < YYLIMIT) {
1721
26.6k
    switch (*YYCURSOR++) {
1722
2.51k
      case '\r':
1723
6.94k
      case '\n':
1724
6.94k
        YYCURSOR--;
1725
6.94k
        break;
1726
383
      case '?':
1727
383
        if (*YYCURSOR == '>') {
1728
11
          YYCURSOR--;
1729
11
          break;
1730
11
        }
1731
372
        ZEND_FALLTHROUGH;
1732
19.7k
      default:
1733
19.7k
        continue;
1734
26.6k
    }
1735
1736
6.95k
    break;
1737
26.6k
  }
1738
1739
7.21k
  yyleng = YYCURSOR - SCNG(yy_text);
1740
7.21k
  RETURN_OR_SKIP_TOKEN(T_COMMENT);
1741
7.21k
}
1742
0
#line 1743 "Zend/zend_language_scanner.c"
1743
19.5k
yy14:
1744
19.5k
    YYDEBUG(14, *YYCURSOR);
1745
19.5k
    yych = *++YYCURSOR;
1746
19.5k
    if (yych <= '_') {
1747
3.35k
      if (yych <= '@') goto yy9;
1748
804
      if (yych <= 'Z') goto yy79;
1749
380
      if (yych <= '^') goto yy9;
1750
58
      goto yy79;
1751
16.2k
    } else {
1752
16.2k
      if (yych <= '`') goto yy9;
1753
16.2k
      if (yych <= 'z') goto yy79;
1754
3.92k
      if (yych <= 0x7F) goto yy9;
1755
889
      goto yy79;
1756
3.92k
    }
1757
773
yy15:
1758
773
    YYDEBUG(15, *YYCURSOR);
1759
773
    yych = *++YYCURSOR;
1760
773
    if (yych == '=') goto yy82;
1761
764
    goto yy9;
1762
2.11k
yy16:
1763
2.11k
    YYDEBUG(16, *YYCURSOR);
1764
2.11k
    yyaccept = 0;
1765
2.11k
    yych = *(YYMARKER = ++YYCURSOR);
1766
2.11k
    if (yych <= '"') {
1767
661
      if (yych <= '\f') {
1768
396
        if (yych <= 0x08) goto yy17;
1769
361
        if (yych <= '\n') goto yy85;
1770
361
      } else {
1771
265
        if (yych <= '\r') goto yy85;
1772
230
        if (yych == ' ') goto yy85;
1773
230
      }
1774
1.45k
    } else {
1775
1.45k
      if (yych <= '-') {
1776
846
        if (yych <= '$') goto yy85;
1777
369
        if (yych == '&') goto yy90;
1778
610
      } else {
1779
610
        if (yych <= '/') goto yy85;
1780
490
        if (yych == '=') goto yy94;
1781
490
      }
1782
1.45k
    }
1783
1.20k
yy17:
1784
1.20k
    YYDEBUG(17, *YYCURSOR);
1785
1.20k
    yyleng = YYCURSOR - SCNG(yy_text);
1786
1.20k
#line 1955 "Zend/zend_language_scanner.l"
1787
1.20k
    {
1788
1.20k
  RETURN_TOKEN(T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG);
1789
1.20k
}
1790
0
#line 1791 "Zend/zend_language_scanner.c"
1791
5.37k
yy18:
1792
5.37k
    YYDEBUG(18, *YYCURSOR);
1793
5.37k
    ++YYCURSOR;
1794
5.37k
    YYDEBUG(19, *YYCURSOR);
1795
5.37k
    yyleng = YYCURSOR - SCNG(yy_text);
1796
5.37k
#line 2538 "Zend/zend_language_scanner.l"
1797
5.37k
    {
1798
5.37k
  char *s, *t;
1799
5.37k
  char *end;
1800
5.37k
  int bprefix = (yytext[0] != '\'') ? 1 : 0;
1801
1802
210k
  while (1) {
1803
210k
    if (YYCURSOR < YYLIMIT) {
1804
209k
      if (*YYCURSOR == '\'') {
1805
4.75k
        YYCURSOR++;
1806
4.75k
        yyleng = YYCURSOR - SCNG(yy_text);
1807
1808
4.75k
        break;
1809
205k
      } else if (*YYCURSOR++ == '\\' && YYCURSOR < YYLIMIT) {
1810
779
        YYCURSOR++;
1811
779
      }
1812
209k
    } else {
1813
625
      yyleng = YYLIMIT - SCNG(yy_text);
1814
1815
      /* Unclosed single quotes; treat similar to double quotes, but without a separate token
1816
       * for ' (unrecognized by parser), instead of old flex fallback to "Unexpected character..."
1817
       * rule, which continued in ST_IN_SCRIPTING state after the quote */
1818
625
      ZVAL_NULL(zendlval);
1819
625
      RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
1820
625
    }
1821
210k
  }
1822
1823
4.75k
  if (yyleng-bprefix-2 <= 1) {
1824
1.03k
    if (yyleng-bprefix-2 < 1) {
1825
213
      ZVAL_EMPTY_STRING(zendlval);
1826
819
    } else {
1827
819
      zend_uchar c = (zend_uchar)*(yytext+bprefix+1);
1828
819
      HANDLE_NEWLINE(c);
1829
819
      ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR(c));
1830
819
    }
1831
1.03k
    goto skip_escape_conversion;
1832
1.03k
  }
1833
3.71k
  ZVAL_STRINGL(zendlval, yytext+bprefix+1, yyleng-bprefix-2);
1834
1835
  /* convert escape sequences */
1836
3.71k
  s = Z_STRVAL_P(zendlval);
1837
3.71k
  end = s+Z_STRLEN_P(zendlval);
1838
168k
  while (1) {
1839
168k
    if (UNEXPECTED(*s=='\\')) {
1840
396
      break;
1841
396
    }
1842
168k
    if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
1843
2.81k
      CG(zend_lineno)++;
1844
2.81k
    }
1845
168k
    s++;
1846
168k
    if (s == end) {
1847
3.32k
      goto skip_escape_conversion;
1848
3.32k
    }
1849
168k
  }
1850
1851
396
  t = s;
1852
13.1k
  while (s<end) {
1853
12.7k
    if (*s=='\\') {
1854
760
      s++;
1855
760
      if (*s == '\\' || *s == '\'') {
1856
107
        *t++ = *s;
1857
653
      } else {
1858
653
        *t++ = '\\';
1859
653
        *t++ = *s;
1860
653
      }
1861
11.9k
    } else {
1862
11.9k
      *t++ = *s;
1863
11.9k
    }
1864
12.7k
    if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
1865
194
      CG(zend_lineno)++;
1866
194
    }
1867
12.7k
    s++;
1868
12.7k
  }
1869
396
  *t = 0;
1870
396
  Z_STRLEN_P(zendlval) = t - Z_STRVAL_P(zendlval);
1871
1872
4.75k
skip_escape_conversion:
1873
4.75k
  if (SCNG(output_filter)) {
1874
0
    size_t sz = 0;
1875
0
    char *str = NULL;
1876
0
    zend_string *new_str;
1877
0
    s = Z_STRVAL_P(zendlval);
1878
    // TODO: avoid reallocation ???
1879
0
    SCNG(output_filter)((unsigned char **)&str, &sz, (unsigned char *)s, Z_STRLEN_P(zendlval));
1880
0
    new_str = zend_string_init(str, sz, 0);
1881
0
    if (str != s) {
1882
0
      efree(str);
1883
0
    }
1884
0
    zend_string_release_ex(Z_STR_P(zendlval), 0);
1885
0
    ZVAL_STR(zendlval, new_str);
1886
0
  }
1887
4.75k
  RETURN_TOKEN_WITH_VAL(T_CONSTANT_ENCAPSED_STRING);
1888
4.75k
}
1889
0
#line 1890 "Zend/zend_language_scanner.c"
1890
30.4k
yy20:
1891
30.4k
    YYDEBUG(20, *YYCURSOR);
1892
30.4k
    yyaccept = 1;
1893
30.4k
    yych = *(YYMARKER = ++YYCURSOR);
1894
30.4k
    if (yych <= 'S') {
1895
25.5k
      if (yych <= 'D') {
1896
25.1k
        if (yych <= ' ') {
1897
11.4k
          if (yych == '\t') goto yy97;
1898
8.91k
          if (yych >= ' ') goto yy97;
1899
13.7k
        } else {
1900
13.7k
          if (yych <= '@') goto yy21;
1901
206
          if (yych != 'C') goto yy97;
1902
206
        }
1903
25.1k
      } else {
1904
393
        if (yych <= 'I') {
1905
292
          if (yych == 'F') goto yy97;
1906
194
          if (yych >= 'I') goto yy97;
1907
194
        } else {
1908
101
          if (yych == 'O') goto yy97;
1909
91
          if (yych >= 'R') goto yy97;
1910
91
        }
1911
393
      }
1912
25.5k
    } else {
1913
4.83k
      if (yych <= 'f') {
1914
1.72k
        if (yych <= 'b') {
1915
944
          if (yych <= 'T') goto yy21;
1916
864
          if (yych <= 'V') goto yy97;
1917
835
          if (yych >= 'a') goto yy97;
1918
835
        } else {
1919
776
          if (yych == 'd') goto yy97;
1920
588
          if (yych >= 'f') goto yy97;
1921
588
        }
1922
3.11k
      } else {
1923
3.11k
        if (yych <= 'o') {
1924
1.49k
          if (yych == 'i') goto yy97;
1925
833
          if (yych >= 'o') goto yy97;
1926
1.62k
        } else {
1927
1.62k
          if (yych <= 's') {
1928
943
            if (yych >= 'r') goto yy97;
1929
943
          } else {
1930
682
            if (yych <= 't') goto yy21;
1931
546
            if (yych <= 'v') goto yy97;
1932
546
          }
1933
1.62k
        }
1934
3.11k
      }
1935
4.83k
    }
1936
33.1k
yy21:
1937
33.1k
    YYDEBUG(21, *YYCURSOR);
1938
33.1k
    yyleng = YYCURSOR - SCNG(yy_text);
1939
33.1k
#line 1964 "Zend/zend_language_scanner.l"
1940
33.1k
    {
1941
33.1k
  enter_nesting(yytext[0]);
1942
33.1k
  RETURN_TOKEN(yytext[0]);
1943
33.1k
}
1944
0
#line 1945 "Zend/zend_language_scanner.c"
1945
20.0k
yy22:
1946
20.0k
    YYDEBUG(22, *YYCURSOR);
1947
20.0k
    ++YYCURSOR;
1948
20.0k
    YYDEBUG(23, *YYCURSOR);
1949
20.0k
    yyleng = YYCURSOR - SCNG(yy_text);
1950
20.0k
#line 1959 "Zend/zend_language_scanner.l"
1951
20.0k
    {
1952
  /* Check that ] and ) match up properly with a preceding [ or ( */
1953
20.0k
  RETURN_EXIT_NESTING_TOKEN(yytext[0]);
1954
20.0k
}
1955
0
#line 1956 "Zend/zend_language_scanner.c"
1956
1.25k
yy24:
1957
1.25k
    YYDEBUG(24, *YYCURSOR);
1958
1.25k
    yych = *++YYCURSOR;
1959
1.25k
    if (yych == '*') goto yy108;
1960
993
    if (yych == '=') goto yy110;
1961
978
    goto yy9;
1962
14.0k
yy25:
1963
14.0k
    YYDEBUG(25, *YYCURSOR);
1964
14.0k
    yych = *++YYCURSOR;
1965
14.0k
    if (yych == '+') goto yy112;
1966
1.68k
    if (yych == '=') goto yy114;
1967
1.59k
    goto yy9;
1968
35.6k
yy26:
1969
35.6k
    YYDEBUG(26, *YYCURSOR);
1970
35.6k
    ++YYCURSOR;
1971
35.6k
    goto yy9;
1972
9.19k
yy27:
1973
9.19k
    YYDEBUG(27, *YYCURSOR);
1974
9.19k
    yych = *++YYCURSOR;
1975
9.19k
    if (yych <= '<') {
1976
6.36k
      if (yych == '-') goto yy116;
1977
6.26k
      goto yy9;
1978
6.36k
    } else {
1979
2.82k
      if (yych <= '=') goto yy118;
1980
2.81k
      if (yych <= '>') goto yy120;
1981
1.35k
      goto yy9;
1982
2.81k
    }
1983
1.74k
yy28:
1984
1.74k
    YYDEBUG(28, *YYCURSOR);
1985
1.74k
    yyaccept = 2;
1986
1.74k
    yych = *(YYMARKER = ++YYCURSOR);
1987
1.74k
    if (yych <= '/') {
1988
1.06k
      if (yych == '.') goto yy122;
1989
688
      goto yy9;
1990
1.06k
    } else {
1991
676
      if (yych <= '9') goto yy123;
1992
378
      if (yych == '=') goto yy126;
1993
135
      goto yy9;
1994
378
    }
1995
4.06k
yy29:
1996
4.06k
    YYDEBUG(29, *YYCURSOR);
1997
4.06k
    yych = *++YYCURSOR;
1998
4.06k
    if (yych <= '.') {
1999
2.65k
      if (yych == '*') goto yy128;
2000
845
      goto yy9;
2001
2.65k
    } else {
2002
1.40k
      if (yych <= '/') goto yy130;
2003
1.09k
      if (yych == '=') goto yy131;
2004
1.06k
      goto yy9;
2005
1.09k
    }
2006
4.84k
yy30:
2007
4.84k
    YYDEBUG(30, *YYCURSOR);
2008
4.84k
    yyaccept = 3;
2009
4.84k
    yych = *(YYMARKER = ++YYCURSOR);
2010
4.84k
    if (yych <= 'X') {
2011
1.66k
      if (yych <= 'N') {
2012
1.64k
        if (yych == 'B') goto yy134;
2013
1.64k
        goto yy33;
2014
1.64k
      } else {
2015
19
        if (yych <= 'O') goto yy136;
2016
15
        if (yych <= 'W') goto yy33;
2017
15
        goto yy137;
2018
15
      }
2019
3.18k
    } else {
2020
3.18k
      if (yych <= 'n') {
2021
486
        if (yych == 'b') goto yy134;
2022
468
        goto yy33;
2023
2.69k
      } else {
2024
2.69k
        if (yych <= 'o') goto yy136;
2025
2.67k
        if (yych == 'x') goto yy137;
2026
2.63k
        goto yy33;
2027
2.67k
      }
2028
3.18k
    }
2029
23.6k
yy31:
2030
23.6k
    YYDEBUG(31, *YYCURSOR);
2031
23.6k
    yyleng = YYCURSOR - SCNG(yy_text);
2032
23.6k
#line 2103 "Zend/zend_language_scanner.l"
2033
23.6k
    {
2034
23.6k
  size_t len = yyleng;
2035
23.6k
  char *end, *lnum = yytext;
2036
23.6k
  bool is_octal = lnum[0] == '0';
2037
23.6k
  bool contains_underscores = (memchr(lnum, '_', len) != NULL);
2038
2039
23.6k
  if (contains_underscores) {
2040
10
    lnum = estrndup(lnum, len);
2041
10
    strip_underscores(lnum, &len);
2042
10
  }
2043
2044
  /* Digits 8 and 9 are illegal in octal literals. */
2045
23.6k
  if (is_octal) {
2046
4.66k
    size_t i;
2047
10.8k
    for (i = 0; i < len; i++) {
2048
6.17k
      if (lnum[i] == '8' || lnum[i] == '9') {
2049
18
        zend_throw_exception(zend_ce_parse_error, "Invalid numeric literal", 0);
2050
18
        if (PARSER_MODE()) {
2051
2
          if (contains_underscores) {
2052
0
            efree(lnum);
2053
0
          }
2054
2
          ZVAL_UNDEF(zendlval);
2055
2
          RETURN_TOKEN(T_ERROR);
2056
2
        }
2057
2058
        /* Continue in order to determine if this is T_LNUMBER or T_DNUMBER. */
2059
16
        len = i;
2060
16
        break;
2061
18
      }
2062
6.17k
    }
2063
4.66k
  }
2064
2065
2066
23.6k
  if (len < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
2067
23.3k
    errno = 0;
2068
    /* base must be passed explicitly for correct parse error on Windows */
2069
23.3k
    ZVAL_LONG(zendlval, ZEND_STRTOL(lnum, &end, is_octal ? 8 : 10));
2070
23.3k
    ZEND_ASSERT(end == lnum + len);
2071
23.3k
  } else {
2072
212
    errno = 0;
2073
212
    ZVAL_LONG(zendlval, ZEND_STRTOL(lnum, &end, 0));
2074
212
    if (errno == ERANGE) { /* Overflow */
2075
188
      errno = 0;
2076
188
      if (is_octal) { /* octal overflow */
2077
6
        ZVAL_DOUBLE(zendlval, zend_oct_strtod(lnum, (const char **)&end));
2078
182
      } else {
2079
182
        ZVAL_DOUBLE(zendlval, zend_strtod(lnum, (const char **)&end));
2080
182
      }
2081
188
      ZEND_ASSERT(end == lnum + len);
2082
188
      if (contains_underscores) {
2083
4
        efree(lnum);
2084
4
      }
2085
188
      RETURN_TOKEN_WITH_VAL(T_DNUMBER);
2086
188
    }
2087
24
    ZEND_ASSERT(end == lnum + len);
2088
24
  }
2089
23.4k
  ZEND_ASSERT(!errno);
2090
23.4k
  if (contains_underscores) {
2091
6
    efree(lnum);
2092
6
  }
2093
23.4k
  RETURN_TOKEN_WITH_VAL(T_LNUMBER);
2094
23.4k
}
2095
0
#line 2096 "Zend/zend_language_scanner.c"
2096
40.4k
yy32:
2097
40.4k
    YYDEBUG(32, *YYCURSOR);
2098
40.4k
    yyaccept = 3;
2099
40.4k
    YYMARKER = ++YYCURSOR;
2100
40.4k
    YYFILL(3);
2101
40.4k
    yych = *YYCURSOR;
2102
45.2k
yy33:
2103
45.2k
    YYDEBUG(33, *YYCURSOR);
2104
45.2k
    if (yybm[256+yych] & 64) {
2105
21.0k
      goto yy32;
2106
21.0k
    }
2107
24.1k
    if (yych <= 'E') {
2108
12.0k
      if (yych == '.') goto yy133;
2109
11.6k
      if (yych <= 'D') goto yy31;
2110
71
      goto yy135;
2111
12.1k
    } else {
2112
12.1k
      if (yych <= '_') {
2113
3.27k
        if (yych <= '^') goto yy31;
2114
65
        goto yy138;
2115
8.86k
      } else {
2116
8.86k
        if (yych == 'e') goto yy135;
2117
8.71k
        goto yy31;
2118
8.86k
      }
2119
12.1k
    }
2120
4.52k
yy34:
2121
4.52k
    YYDEBUG(34, *YYCURSOR);
2122
4.52k
    yych = *++YYCURSOR;
2123
4.52k
    if (yych == ':') goto yy139;
2124
2.18k
    goto yy9;
2125
60.8k
yy35:
2126
60.8k
    YYDEBUG(35, *YYCURSOR);
2127
60.8k
    yych = *++YYCURSOR;
2128
60.8k
    if (yych <= ';') goto yy9;
2129
54.5k
    if (yych <= '<') goto yy141;
2130
24.6k
    if (yych <= '=') goto yy143;
2131
20.2k
    if (yych <= '>') goto yy145;
2132
20.0k
    goto yy9;
2133
20.0k
yy36:
2134
11.9k
    YYDEBUG(36, *YYCURSOR);
2135
11.9k
    yych = *++YYCURSOR;
2136
11.9k
    if (yych <= '<') goto yy9;
2137
2.37k
    if (yych <= '=') goto yy146;
2138
2.17k
    if (yych <= '>') goto yy148;
2139
1.58k
    goto yy9;
2140
1.58k
yy37:
2141
837
    YYDEBUG(37, *YYCURSOR);
2142
837
    yych = *++YYCURSOR;
2143
837
    if (yych <= '<') goto yy9;
2144
420
    if (yych <= '=') goto yy150;
2145
395
    if (yych <= '>') goto yy152;
2146
292
    goto yy9;
2147
26.3k
yy38:
2148
26.3k
    YYDEBUG(38, *YYCURSOR);
2149
26.3k
    yyaccept = 2;
2150
26.3k
    yych = *(YYMARKER = ++YYCURSOR);
2151
26.3k
    if (yych <= '=') {
2152
6.65k
      if (yych == '-') goto yy154;
2153
6.55k
      goto yy9;
2154
19.7k
    } else {
2155
19.7k
      if (yych <= '>') goto yy155;
2156
15.9k
      if (yych <= '?') goto yy157;
2157
6.82k
      goto yy9;
2158
15.9k
    }
2159
3.25k
yy39:
2160
3.25k
    YYDEBUG(39, *YYCURSOR);
2161
3.25k
    yyaccept = 4;
2162
3.25k
    yych = *(YYMARKER = ++YYCURSOR);
2163
3.25k
    if (yych <= 'S') {
2164
1.05k
      if (yych <= 'M') {
2165
976
        if (yych == 'B') goto yy159;
2166
971
        goto yy48;
2167
976
      } else {
2168
82
        if (yych <= 'N') goto yy160;
2169
77
        if (yych <= 'Q') goto yy48;
2170
59
        if (yych <= 'R') goto yy161;
2171
53
        goto yy162;
2172
59
      }
2173
2.19k
    } else {
2174
2.19k
      if (yych <= 'n') {
2175
603
        if (yych == 'b') goto yy159;
2176
452
        if (yych <= 'm') goto yy48;
2177
170
        goto yy160;
2178
1.58k
      } else {
2179
1.58k
        if (yych <= 'q') goto yy48;
2180
1.58k
        if (yych <= 'r') goto yy161;
2181
811
        if (yych <= 's') goto yy162;
2182
337
        goto yy48;
2183
811
      }
2184
2.19k
    }
2185
95.1k
yy40:
2186
95.1k
    YYDEBUG(40, *YYCURSOR);
2187
95.1k
    yyleng = YYCURSOR - SCNG(yy_text);
2188
95.1k
#line 2455 "Zend/zend_language_scanner.l"
2189
95.1k
    {
2190
95.1k
  RETURN_TOKEN_WITH_STR(T_STRING, 0);
2191
95.1k
}
2192
0
#line 2193 "Zend/zend_language_scanner.c"
2193
3.29k
yy41:
2194
3.29k
    YYDEBUG(41, *YYCURSOR);
2195
3.29k
    yyaccept = 4;
2196
3.29k
    yych = *(YYMARKER = ++YYCURSOR);
2197
3.29k
    if (yych <= ';') {
2198
541
      if (yych <= '"') {
2199
383
        if (yych <= '!') goto yy48;
2200
106
        goto yy10;
2201
383
      } else {
2202
158
        if (yych == '\'') goto yy18;
2203
144
        goto yy48;
2204
158
      }
2205
2.75k
    } else {
2206
2.75k
      if (yych <= 'R') {
2207
362
        if (yych <= '<') goto yy165;
2208
84
        if (yych <= 'Q') goto yy48;
2209
10
        goto yy166;
2210
2.39k
      } else {
2211
2.39k
        if (yych == 'r') goto yy166;
2212
2.34k
        goto yy48;
2213
2.39k
      }
2214
2.75k
    }
2215
5.30k
yy42:
2216
5.30k
    YYDEBUG(42, *YYCURSOR);
2217
5.30k
    yyaccept = 4;
2218
5.30k
    yych = *(YYMARKER = ++YYCURSOR);
2219
5.30k
    if (yych <= 'O') {
2220
976
      if (yych <= 'K') {
2221
903
        if (yych == 'A') goto yy167;
2222
901
        goto yy48;
2223
903
      } else {
2224
73
        if (yych <= 'L') goto yy168;
2225
65
        if (yych <= 'N') goto yy48;
2226
57
        goto yy169;
2227
65
      }
2228
4.33k
    } else {
2229
4.33k
      if (yych <= 'k') {
2230
1.04k
        if (yych == 'a') goto yy167;
2231
239
        goto yy48;
2232
3.28k
      } else {
2233
3.28k
        if (yych <= 'l') goto yy168;
2234
1.09k
        if (yych == 'o') goto yy169;
2235
273
        goto yy48;
2236
1.09k
      }
2237
4.33k
    }
2238
2.31k
yy43:
2239
2.31k
    YYDEBUG(43, *YYCURSOR);
2240
2.31k
    yyaccept = 4;
2241
2.31k
    yych = *(YYMARKER = ++YYCURSOR);
2242
2.31k
    if (yych <= 'O') {
2243
335
      if (yych <= 'H') {
2244
315
        if (yych == 'E') goto yy170;
2245
304
        goto yy48;
2246
315
      } else {
2247
20
        if (yych <= 'I') goto yy171;
2248
19
        if (yych <= 'N') goto yy48;
2249
11
        goto yy172;
2250
19
      }
2251
1.98k
    } else {
2252
1.98k
      if (yych <= 'h') {
2253
1.81k
        if (yych == 'e') goto yy170;
2254
1.40k
        goto yy48;
2255
1.81k
      } else {
2256
173
        if (yych <= 'i') goto yy171;
2257
136
        if (yych == 'o') goto yy172;
2258
120
        goto yy48;
2259
136
      }
2260
1.98k
    }
2261
5.42k
yy44:
2262
5.42k
    YYDEBUG(44, *YYCURSOR);
2263
5.42k
    yyaccept = 4;
2264
5.42k
    yych = *(YYMARKER = ++YYCURSOR);
2265
5.42k
    switch (yych) {
2266
8
    case 'C':
2267
1.43k
    case 'c': goto yy174;
2268
9
    case 'L':
2269
88
    case 'l': goto yy175;
2270
2
    case 'M':
2271
190
    case 'm': goto yy176;
2272
745
    case 'N':
2273
1.98k
    case 'n': goto yy177;
2274
0
    case 'V':
2275
94
    case 'v': goto yy178;
2276
25
    case 'X':
2277
723
    case 'x': goto yy179;
2278
906
    default:  goto yy48;
2279
5.42k
    }
2280
9.50k
yy45:
2281
9.50k
    YYDEBUG(45, *YYCURSOR);
2282
9.50k
    yyaccept = 4;
2283
9.50k
    yych = *(YYMARKER = ++YYCURSOR);
2284
9.50k
    if (yych <= 'U') {
2285
519
      if (yych <= 'M') {
2286
282
        if (yych == 'I') goto yy180;
2287
202
        goto yy48;
2288
282
      } else {
2289
237
        if (yych <= 'N') goto yy181;
2290
234
        if (yych <= 'O') goto yy183;
2291
157
        if (yych <= 'T') goto yy48;
2292
1
        goto yy184;
2293
157
      }
2294
8.98k
    } else {
2295
8.98k
      if (yych <= 'n') {
2296
601
        if (yych == 'i') goto yy180;
2297
363
        if (yych <= 'm') goto yy48;
2298
199
        goto yy181;
2299
8.38k
      } else {
2300
8.38k
        if (yych <= 'o') goto yy183;
2301
5.40k
        if (yych == 'u') goto yy184;
2302
121
        goto yy48;
2303
5.40k
      }
2304
8.98k
    }
2305
3.67k
yy46:
2306
3.67k
    YYDEBUG(46, *YYCURSOR);
2307
3.67k
    yyaccept = 4;
2308
3.67k
    yych = *(YYMARKER = ++YYCURSOR);
2309
3.67k
    if (yych <= 'O') {
2310
471
      if (yych == 'L') goto yy185;
2311
408
      if (yych <= 'N') goto yy48;
2312
4
      goto yy186;
2313
3.20k
    } else {
2314
3.20k
      if (yych <= 'l') {
2315
3.10k
        if (yych <= 'k') goto yy48;
2316
44
        goto yy185;
2317
3.10k
      } else {
2318
96
        if (yych == 'o') goto yy186;
2319
7
        goto yy48;
2320
96
      }
2321
3.20k
    }
2322
318k
yy47:
2323
318k
    YYDEBUG(47, *YYCURSOR);
2324
318k
    yyaccept = 4;
2325
318k
    YYMARKER = ++YYCURSOR;
2326
318k
    YYFILL(1);
2327
318k
    yych = *YYCURSOR;
2328
378k
yy48:
2329
378k
    YYDEBUG(48, *YYCURSOR);
2330
378k
    if (yybm[256+yych] & 128) {
2331
283k
      goto yy47;
2332
283k
    }
2333
95.0k
    if (yych == '\\') goto yy164;
2334
94.6k
    goto yy40;
2335
94.6k
yy49:
2336
11.1k
    YYDEBUG(49, *YYCURSOR);
2337
11.1k
    yyaccept = 4;
2338
11.1k
    yych = *(YYMARKER = ++YYCURSOR);
2339
11.1k
    if (yych <= 'S') {
2340
3.35k
      if (yych <= 'L') {
2341
985
        if (yych == 'F') goto yy187;
2342
978
        goto yy48;
2343
2.37k
      } else {
2344
2.37k
        if (yych <= 'M') goto yy189;
2345
2.23k
        if (yych <= 'N') goto yy190;
2346
23
        if (yych <= 'R') goto yy48;
2347
16
        goto yy191;
2348
23
      }
2349
7.77k
    } else {
2350
7.77k
      if (yych <= 'm') {
2351
605
        if (yych == 'f') goto yy187;
2352
498
        if (yych <= 'l') goto yy48;
2353
291
        goto yy189;
2354
7.17k
      } else {
2355
7.17k
        if (yych <= 'n') goto yy190;
2356
2.83k
        if (yych == 's') goto yy191;
2357
2.71k
        goto yy48;
2358
2.83k
      }
2359
7.77k
    }
2360
453
yy50:
2361
453
    YYDEBUG(50, *YYCURSOR);
2362
453
    yyaccept = 4;
2363
453
    yych = *(YYMARKER = ++YYCURSOR);
2364
453
    if (yych == 'I') goto yy192;
2365
433
    if (yych == 'i') goto yy192;
2366
326
    goto yy48;
2367
771
yy51:
2368
771
    YYDEBUG(51, *YYCURSOR);
2369
771
    yyaccept = 4;
2370
771
    yych = *(YYMARKER = ++YYCURSOR);
2371
771
    if (yych == 'A') goto yy193;
2372
757
    if (yych == 'a') goto yy193;
2373
682
    goto yy48;
2374
3.73k
yy52:
2375
3.73k
    YYDEBUG(52, *YYCURSOR);
2376
3.73k
    yyaccept = 4;
2377
3.73k
    yych = *(YYMARKER = ++YYCURSOR);
2378
3.73k
    if (yych <= 'E') {
2379
184
      if (yych == 'A') goto yy194;
2380
117
      if (yych <= 'D') goto yy48;
2381
7
      goto yy195;
2382
3.54k
    } else {
2383
3.54k
      if (yych <= 'a') {
2384
420
        if (yych <= '`') goto yy48;
2385
367
        goto yy194;
2386
3.12k
      } else {
2387
3.12k
        if (yych == 'e') goto yy195;
2388
512
        goto yy48;
2389
3.12k
      }
2390
3.54k
    }
2391
472
yy53:
2392
472
    YYDEBUG(53, *YYCURSOR);
2393
472
    yyaccept = 4;
2394
472
    yych = *(YYMARKER = ++YYCURSOR);
2395
472
    if (yych == 'R') goto yy196;
2396
452
    if (yych == 'r') goto yy196;
2397
422
    goto yy48;
2398
13.6k
yy54:
2399
13.6k
    YYDEBUG(54, *YYCURSOR);
2400
13.6k
    yyaccept = 4;
2401
13.6k
    yych = *(YYMARKER = ++YYCURSOR);
2402
13.6k
    if (yych <= 'U') {
2403
3.75k
      if (yych == 'R') goto yy198;
2404
3.73k
      if (yych <= 'T') goto yy48;
2405
1
      goto yy199;
2406
9.91k
    } else {
2407
9.91k
      if (yych <= 'r') {
2408
7.89k
        if (yych <= 'q') goto yy48;
2409
1.65k
        goto yy198;
2410
7.89k
      } else {
2411
2.02k
        if (yych == 'u') goto yy199;
2412
300
        goto yy48;
2413
2.02k
      }
2414
9.91k
    }
2415
4.92k
yy55:
2416
4.92k
    YYDEBUG(55, *YYCURSOR);
2417
4.92k
    yyaccept = 4;
2418
4.92k
    yych = *(YYMARKER = ++YYCURSOR);
2419
4.92k
    if (yych == 'E') goto yy200;
2420
4.91k
    if (yych == 'e') goto yy200;
2421
3.28k
    goto yy48;
2422
3.28k
yy56:
2423
3.23k
    YYDEBUG(56, *YYCURSOR);
2424
3.23k
    yyaccept = 4;
2425
3.23k
    yych = *(YYMARKER = ++YYCURSOR);
2426
3.23k
    if (yych <= 'W') {
2427
640
      if (yych == 'T') goto yy201;
2428
624
      if (yych <= 'V') goto yy48;
2429
27
      goto yy202;
2430
2.59k
    } else {
2431
2.59k
      if (yych <= 't') {
2432
1.59k
        if (yych <= 's') goto yy48;
2433
1.01k
        goto yy201;
2434
1.59k
      } else {
2435
999
        if (yych == 'w') goto yy202;
2436
935
        goto yy48;
2437
999
      }
2438
2.59k
    }
2439
3.00k
yy57:
2440
3.00k
    YYDEBUG(57, *YYCURSOR);
2441
3.00k
    yyaccept = 4;
2442
3.00k
    yych = *(YYMARKER = ++YYCURSOR);
2443
3.00k
    if (yych <= 'R') {
2444
576
      if (yych == 'H') goto yy203;
2445
553
      if (yych <= 'Q') goto yy48;
2446
203
      goto yy204;
2447
2.42k
    } else {
2448
2.42k
      if (yych <= 'h') {
2449
1.40k
        if (yych <= 'g') goto yy48;
2450
147
        goto yy203;
2451
1.40k
      } else {
2452
1.02k
        if (yych == 'r') goto yy204;
2453
229
        goto yy48;
2454
1.02k
      }
2455
2.42k
    }
2456
1.05k
yy58:
2457
1.05k
    YYDEBUG(58, *YYCURSOR);
2458
1.05k
    yyaccept = 4;
2459
1.05k
    yych = *(YYMARKER = ++YYCURSOR);
2460
1.05k
    if (yych <= 'S') {
2461
149
      if (yych == 'N') goto yy205;
2462
114
      if (yych <= 'R') goto yy48;
2463
0
      goto yy206;
2464
907
    } else {
2465
907
      if (yych <= 'n') {
2466
597
        if (yych <= 'm') goto yy48;
2467
374
        goto yy205;
2468
597
      } else {
2469
310
        if (yych == 's') goto yy206;
2470
38
        goto yy48;
2471
310
      }
2472
907
    }
2473
3.18k
yy59:
2474
3.18k
    YYDEBUG(59, *YYCURSOR);
2475
3.18k
    yyaccept = 4;
2476
3.18k
    yych = *(YYMARKER = ++YYCURSOR);
2477
3.18k
    if (yych == 'A') goto yy207;
2478
3.17k
    if (yych == 'a') goto yy207;
2479
910
    goto yy48;
2480
910
yy60:
2481
190
    YYDEBUG(60, *YYCURSOR);
2482
190
    yyaccept = 4;
2483
190
    yych = *(YYMARKER = ++YYCURSOR);
2484
190
    if (yych == 'H') goto yy208;
2485
176
    if (yych == 'h') goto yy208;
2486
132
    goto yy48;
2487
601
yy61:
2488
601
    YYDEBUG(61, *YYCURSOR);
2489
601
    yyaccept = 4;
2490
601
    yych = *(YYMARKER = ++YYCURSOR);
2491
601
    if (yych == 'O') goto yy209;
2492
598
    if (yych == 'o') goto yy209;
2493
588
    goto yy48;
2494
2.23k
yy62:
2495
2.23k
    YYDEBUG(62, *YYCURSOR);
2496
2.23k
    yyaccept = 4;
2497
2.23k
    yych = *(YYMARKER = ++YYCURSOR);
2498
2.23k
    if (yych == 'I') goto yy210;
2499
2.22k
    if (yych == 'i') goto yy210;
2500
700
    goto yy48;
2501
2.84k
yy63:
2502
2.84k
    YYDEBUG(63, *YYCURSOR);
2503
2.84k
    ++YYCURSOR;
2504
2.84k
    goto yy21;
2505
1.78k
yy64:
2506
1.78k
    YYDEBUG(64, *YYCURSOR);
2507
1.78k
    yych = *++YYCURSOR;
2508
1.78k
    if (yych <= '_') {
2509
1.18k
      if (yych <= '@') goto yy65;
2510
901
      if (yych <= 'Z') goto yy211;
2511
646
      if (yych >= '_') goto yy211;
2512
646
    } else {
2513
595
      if (yych <= '`') goto yy65;
2514
574
      if (yych <= 'z') goto yy211;
2515
423
      if (yych >= 0x80) goto yy211;
2516
423
    }
2517
837
yy65:
2518
837
    YYDEBUG(65, *YYCURSOR);
2519
837
    yyleng = YYCURSOR - SCNG(yy_text);
2520
837
#line 2451 "Zend/zend_language_scanner.l"
2521
837
    {
2522
837
  RETURN_TOKEN(T_NS_SEPARATOR);
2523
837
}
2524
0
#line 2525 "Zend/zend_language_scanner.c"
2525
2.69k
yy66:
2526
2.69k
    YYDEBUG(66, *YYCURSOR);
2527
2.69k
    yych = *++YYCURSOR;
2528
2.69k
    if (yych == '=') goto yy214;
2529
2.69k
    goto yy9;
2530
2.69k
yy67:
2531
1.75k
    YYDEBUG(67, *YYCURSOR);
2532
1.75k
    yyaccept = 4;
2533
1.75k
    yych = *(YYMARKER = ++YYCURSOR);
2534
1.75k
    if (yych == '_') goto yy216;
2535
281
    goto yy48;
2536
1.82k
yy68:
2537
1.82k
    YYDEBUG(68, *YYCURSOR);
2538
1.82k
    ++YYCURSOR;
2539
1.82k
    YYDEBUG(69, *YYCURSOR);
2540
1.82k
    yyleng = YYCURSOR - SCNG(yy_text);
2541
1.82k
#line 2825 "Zend/zend_language_scanner.l"
2542
1.82k
    {
2543
1.82k
  BEGIN(ST_BACKQUOTE);
2544
1.82k
  RETURN_TOKEN('`');
2545
1.82k
}
2546
0
#line 2547 "Zend/zend_language_scanner.c"
2547
10.8k
yy70:
2548
10.8k
    YYDEBUG(70, *YYCURSOR);
2549
10.8k
    ++YYCURSOR;
2550
10.8k
    YYDEBUG(71, *YYCURSOR);
2551
10.8k
    yyleng = YYCURSOR - SCNG(yy_text);
2552
10.8k
#line 1974 "Zend/zend_language_scanner.l"
2553
10.8k
    {
2554
10.8k
  yy_push_state(ST_IN_SCRIPTING);
2555
10.8k
  enter_nesting('{');
2556
10.8k
  RETURN_TOKEN('{');
2557
10.8k
}
2558
0
#line 2559 "Zend/zend_language_scanner.c"
2559
960
yy72:
2560
960
    YYDEBUG(72, *YYCURSOR);
2561
960
    yych = *++YYCURSOR;
2562
960
    if (yych <= '>') {
2563
206
      if (yych <= '<') goto yy9;
2564
30
      if (yych <= '=') goto yy217;
2565
23
      goto yy219;
2566
754
    } else {
2567
754
      if (yych == '|') goto yy221;
2568
270
      goto yy9;
2569
754
    }
2570
10.2k
yy73:
2571
10.2k
    YYDEBUG(73, *YYCURSOR);
2572
10.2k
    ++YYCURSOR;
2573
10.2k
    YYDEBUG(74, *YYCURSOR);
2574
10.2k
    yyleng = YYCURSOR - SCNG(yy_text);
2575
10.2k
#line 1987 "Zend/zend_language_scanner.l"
2576
10.2k
    {
2577
10.2k
  RESET_DOC_COMMENT();
2578
10.2k
  if (!zend_stack_is_empty(&SCNG(state_stack))) {
2579
5.51k
    yy_pop_state();
2580
5.51k
  }
2581
10.2k
  RETURN_EXIT_NESTING_TOKEN('}');
2582
10.2k
}
2583
0
#line 2584 "Zend/zend_language_scanner.c"
2584
54
yy75:
2585
54
    YYDEBUG(75, *YYCURSOR);
2586
54
    yych = *++YYCURSOR;
2587
54
    if (yych == '=') goto yy223;
2588
249
yy76:
2589
249
    YYDEBUG(76, *YYCURSOR);
2590
249
    yyleng = YYCURSOR - SCNG(yy_text);
2591
249
#line 1846 "Zend/zend_language_scanner.l"
2592
249
    {
2593
249
  RETURN_TOKEN(T_IS_NOT_EQUAL);
2594
249
}
2595
0
#line 2596 "Zend/zend_language_scanner.c"
2596
164
yy77:
2597
164
    YYDEBUG(77, *YYCURSOR);
2598
164
    ++YYCURSOR;
2599
164
    YYDEBUG(78, *YYCURSOR);
2600
164
    yyleng = YYCURSOR - SCNG(yy_text);
2601
164
#line 1423 "Zend/zend_language_scanner.l"
2602
164
    {
2603
164
  enter_nesting('[');
2604
164
  RETURN_TOKEN(T_ATTRIBUTE);
2605
164
}
2606
0
#line 2607 "Zend/zend_language_scanner.c"
2607
34.9k
yy79:
2608
34.9k
    YYDEBUG(79, *YYCURSOR);
2609
34.9k
    ++YYCURSOR;
2610
34.9k
    YYFILL(1);
2611
34.9k
    yych = *YYCURSOR;
2612
34.9k
    YYDEBUG(80, *YYCURSOR);
2613
34.9k
    if (yych <= '^') {
2614
15.6k
      if (yych <= '9') {
2615
10.3k
        if (yych >= '0') goto yy79;
2616
10.3k
      } else {
2617
5.27k
        if (yych <= '@') goto yy81;
2618
2.28k
        if (yych <= 'Z') goto yy79;
2619
2.28k
      }
2620
19.3k
    } else {
2621
19.3k
      if (yych <= '`') {
2622
112
        if (yych <= '_') goto yy79;
2623
19.2k
      } else {
2624
19.2k
        if (yych <= 'z') goto yy79;
2625
3.38k
        if (yych >= 0x80) goto yy79;
2626
3.38k
      }
2627
19.3k
    }
2628
13.6k
yy81:
2629
13.6k
    YYDEBUG(81, *YYCURSOR);
2630
13.6k
    yyleng = YYCURSOR - SCNG(yy_text);
2631
13.6k
#line 2417 "Zend/zend_language_scanner.l"
2632
13.6k
    {
2633
13.6k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
2634
13.6k
}
2635
0
#line 2636 "Zend/zend_language_scanner.c"
2636
9
yy82:
2637
9
    YYDEBUG(82, *YYCURSOR);
2638
9
    ++YYCURSOR;
2639
9
    YYDEBUG(83, *YYCURSOR);
2640
9
    yyleng = YYCURSOR - SCNG(yy_text);
2641
9
#line 1890 "Zend/zend_language_scanner.l"
2642
9
    {
2643
9
  RETURN_TOKEN(T_MOD_EQUAL);
2644
9
}
2645
0
#line 2646 "Zend/zend_language_scanner.c"
2646
2.24k
yy84:
2647
2.24k
    YYDEBUG(84, *YYCURSOR);
2648
2.24k
    ++YYCURSOR;
2649
2.24k
    YYFILL(3);
2650
2.24k
    yych = *YYCURSOR;
2651
3.43k
yy85:
2652
3.43k
    YYDEBUG(85, *YYCURSOR);
2653
3.43k
    if (yych <= ' ') {
2654
1.34k
      if (yych <= '\f') {
2655
972
        if (yych <= 0x08) goto yy86;
2656
853
        if (yych <= '\n') goto yy84;
2657
853
      } else {
2658
377
        if (yych <= '\r') goto yy84;
2659
252
        if (yych >= ' ') goto yy84;
2660
252
      }
2661
2.08k
    } else {
2662
2.08k
      if (yych <= '$') {
2663
1.70k
        if (yych <= '"') goto yy86;
2664
1.70k
        if (yych <= '#') goto yy87;
2665
466
        goto yy88;
2666
1.70k
      } else {
2667
375
        if (yych <= '-') goto yy86;
2668
328
        if (yych <= '.') goto yy92;
2669
299
        if (yych <= '/') goto yy93;
2670
299
      }
2671
2.08k
    }
2672
26.4k
yy86:
2673
26.4k
    YYDEBUG(86, *YYCURSOR);
2674
26.4k
    YYCURSOR = YYMARKER;
2675
26.4k
    if (yyaccept <= 48) {
2676
24.5k
      if (yyaccept <= 24) {
2677
24.4k
        if (yyaccept <= 12) {
2678
24.3k
          if (yyaccept <= 6) {
2679
15.4k
            if (yyaccept <= 3) {
2680
14.8k
              if (yyaccept <= 1) {
2681
14.6k
                if (yyaccept == 0) {
2682
609
                  goto yy17;
2683
14.0k
                } else {
2684
14.0k
                  goto yy21;
2685
14.0k
                }
2686
14.6k
              } else {
2687
147
                if (yyaccept == 2) {
2688
67
                  goto yy9;
2689
80
                } else {
2690
80
                  goto yy31;
2691
80
                }
2692
147
              }
2693
14.8k
            } else {
2694
601
              if (yyaccept <= 5) {
2695
550
                if (yyaccept == 4) {
2696
524
                  goto yy40;
2697
524
                } else {
2698
26
                  goto yy125;
2699
26
                }
2700
550
              } else {
2701
51
                goto yy129;
2702
51
              }
2703
601
            }
2704
15.4k
          } else {
2705
8.96k
            if (yyaccept <= 9) {
2706
8.96k
              if (yyaccept <= 8) {
2707
8.96k
                if (yyaccept == 7) {
2708
8.96k
                  goto yy142;
2709
8.96k
                } else {
2710
2
                  goto yy163;
2711
2
                }
2712
8.96k
              } else {
2713
0
                goto yy173;
2714
0
              }
2715
8.96k
            } else {
2716
0
              if (yyaccept <= 11) {
2717
0
                if (yyaccept == 10) {
2718
0
                  goto yy182;
2719
0
                } else {
2720
0
                  goto yy188;
2721
0
                }
2722
0
              } else {
2723
0
                goto yy197;
2724
0
              }
2725
0
            }
2726
8.96k
          }
2727
24.3k
        } else {
2728
102
          if (yyaccept <= 18) {
2729
79
            if (yyaccept <= 15) {
2730
63
              if (yyaccept <= 14) {
2731
51
                if (yyaccept == 13) {
2732
50
                  goto yy213;
2733
50
                } else {
2734
1
                  goto yy251;
2735
1
                }
2736
51
              } else {
2737
12
                goto yy257;
2738
12
              }
2739
63
            } else {
2740
16
              if (yyaccept <= 17) {
2741
1
                if (yyaccept == 16) {
2742
1
                  goto yy260;
2743
1
                } else {
2744
0
                  goto yy279;
2745
0
                }
2746
15
              } else {
2747
15
                goto yy283;
2748
15
              }
2749
16
            }
2750
79
          } else {
2751
23
            if (yyaccept <= 21) {
2752
7
              if (yyaccept <= 20) {
2753
2
                if (yyaccept == 19) {
2754
1
                  goto yy295;
2755
1
                } else {
2756
1
                  goto yy306;
2757
1
                }
2758
5
              } else {
2759
5
                goto yy319;
2760
5
              }
2761
16
            } else {
2762
16
              if (yyaccept <= 23) {
2763
7
                if (yyaccept == 22) {
2764
0
                  goto yy331;
2765
7
                } else {
2766
7
                  goto yy334;
2767
7
                }
2768
9
              } else {
2769
9
                goto yy336;
2770
9
              }
2771
16
            }
2772
23
          }
2773
102
        }
2774
24.4k
      } else {
2775
121
        if (yyaccept <= 36) {
2776
99
          if (yyaccept <= 30) {
2777
89
            if (yyaccept <= 27) {
2778
88
              if (yyaccept <= 26) {
2779
88
                if (yyaccept == 25) {
2780
0
                  goto yy339;
2781
88
                } else {
2782
88
                  goto yy89;
2783
88
                }
2784
88
              } else {
2785
0
                goto yy379;
2786
0
              }
2787
88
            } else {
2788
1
              if (yyaccept <= 29) {
2789
1
                if (yyaccept == 28) {
2790
1
                  goto yy388;
2791
1
                } else {
2792
0
                  goto yy390;
2793
0
                }
2794
1
              } else {
2795
0
                goto yy399;
2796
0
              }
2797
1
            }
2798
89
          } else {
2799
10
            if (yyaccept <= 33) {
2800
9
              if (yyaccept <= 32) {
2801
8
                if (yyaccept == 31) {
2802
4
                  goto yy401;
2803
4
                } else {
2804
4
                  goto yy408;
2805
4
                }
2806
8
              } else {
2807
1
                goto yy415;
2808
1
              }
2809
9
            } else {
2810
1
              if (yyaccept <= 35) {
2811
1
                if (yyaccept == 34) {
2812
1
                  goto yy471;
2813
1
                } else {
2814
0
                  goto yy473;
2815
0
                }
2816
1
              } else {
2817
0
                goto yy476;
2818
0
              }
2819
1
            }
2820
10
          }
2821
99
        } else {
2822
22
          if (yyaccept <= 42) {
2823
22
            if (yyaccept <= 39) {
2824
22
              if (yyaccept <= 38) {
2825
22
                if (yyaccept == 37) {
2826
14
                  goto yy478;
2827
14
                } else {
2828
8
                  goto yy480;
2829
8
                }
2830
22
              } else {
2831
0
                goto yy482;
2832
0
              }
2833
22
            } else {
2834
0
              if (yyaccept <= 41) {
2835
0
                if (yyaccept == 40) {
2836
0
                  goto yy488;
2837
0
                } else {
2838
0
                  goto yy492;
2839
0
                }
2840
0
              } else {
2841
0
                goto yy501;
2842
0
              }
2843
0
            }
2844
22
          } else {
2845
0
            if (yyaccept <= 45) {
2846
0
              if (yyaccept <= 44) {
2847
0
                if (yyaccept == 43) {
2848
0
                  goto yy511;
2849
0
                } else {
2850
0
                  goto yy513;
2851
0
                }
2852
0
              } else {
2853
0
                goto yy516;
2854
0
              }
2855
0
            } else {
2856
0
              if (yyaccept <= 47) {
2857
0
                if (yyaccept == 46) {
2858
0
                  goto yy526;
2859
0
                } else {
2860
0
                  goto yy528;
2861
0
                }
2862
0
              } else {
2863
0
                goto yy530;
2864
0
              }
2865
0
            }
2866
0
          }
2867
22
        }
2868
121
      }
2869
24.5k
    } else {
2870
1.89k
      if (yyaccept <= 72) {
2871
1.76k
        if (yyaccept <= 60) {
2872
1.61k
          if (yyaccept <= 54) {
2873
1.61k
            if (yyaccept <= 51) {
2874
936
              if (yyaccept <= 50) {
2875
936
                if (yyaccept == 49) {
2876
0
                  goto yy532;
2877
936
                } else {
2878
936
                  goto yy534;
2879
936
                }
2880
936
              } else {
2881
0
                goto yy576;
2882
0
              }
2883
936
            } else {
2884
682
              if (yyaccept <= 53) {
2885
682
                if (yyaccept == 52) {
2886
0
                  goto yy579;
2887
682
                } else {
2888
682
                  goto yy583;
2889
682
                }
2890
682
              } else {
2891
0
                goto yy597;
2892
0
              }
2893
682
            }
2894
1.61k
          } else {
2895
0
            if (yyaccept <= 57) {
2896
0
              if (yyaccept <= 56) {
2897
0
                if (yyaccept == 55) {
2898
0
                  goto yy607;
2899
0
                } else {
2900
0
                  goto yy611;
2901
0
                }
2902
0
              } else {
2903
0
                goto yy613;
2904
0
              }
2905
0
            } else {
2906
0
              if (yyaccept <= 59) {
2907
0
                if (yyaccept == 58) {
2908
0
                  goto yy615;
2909
0
                } else {
2910
0
                  goto yy654;
2911
0
                }
2912
0
              } else {
2913
0
                goto yy656;
2914
0
              }
2915
0
            }
2916
0
          }
2917
1.61k
        } else {
2918
149
          if (yyaccept <= 66) {
2919
149
            if (yyaccept <= 63) {
2920
2
              if (yyaccept <= 62) {
2921
0
                if (yyaccept == 61) {
2922
0
                  goto yy671;
2923
0
                } else {
2924
0
                  goto yy673;
2925
0
                }
2926
2
              } else {
2927
2
                goto yy675;
2928
2
              }
2929
147
            } else {
2930
147
              if (yyaccept <= 65) {
2931
147
                if (yyaccept == 64) {
2932
0
                  goto yy679;
2933
147
                } else {
2934
147
                  goto yy685;
2935
147
                }
2936
147
              } else {
2937
0
                goto yy690;
2938
0
              }
2939
147
            }
2940
149
          } else {
2941
0
            if (yyaccept <= 69) {
2942
0
              if (yyaccept <= 68) {
2943
0
                if (yyaccept == 67) {
2944
0
                  goto yy700;
2945
0
                } else {
2946
0
                  goto yy726;
2947
0
                }
2948
0
              } else {
2949
0
                goto yy728;
2950
0
              }
2951
0
            } else {
2952
0
              if (yyaccept <= 71) {
2953
0
                if (yyaccept == 70) {
2954
0
                  goto yy730;
2955
0
                } else {
2956
0
                  goto yy735;
2957
0
                }
2958
0
              } else {
2959
0
                goto yy743;
2960
0
              }
2961
0
            }
2962
0
          }
2963
149
        }
2964
1.76k
      } else {
2965
131
        if (yyaccept <= 84) {
2966
20
          if (yyaccept <= 78) {
2967
1
            if (yyaccept <= 75) {
2968
1
              if (yyaccept <= 74) {
2969
1
                if (yyaccept == 73) {
2970
0
                  goto yy754;
2971
1
                } else {
2972
1
                  goto yy764;
2973
1
                }
2974
1
              } else {
2975
0
                goto yy768;
2976
0
              }
2977
1
            } else {
2978
0
              if (yyaccept <= 77) {
2979
0
                if (yyaccept == 76) {
2980
0
                  goto yy784;
2981
0
                } else {
2982
0
                  goto yy797;
2983
0
                }
2984
0
              } else {
2985
0
                goto yy799;
2986
0
              }
2987
0
            }
2988
19
          } else {
2989
19
            if (yyaccept <= 81) {
2990
19
              if (yyaccept <= 80) {
2991
16
                if (yyaccept == 79) {
2992
4
                  goto yy801;
2993
12
                } else {
2994
12
                  goto yy804;
2995
12
                }
2996
16
              } else {
2997
3
                goto yy812;
2998
3
              }
2999
19
            } else {
3000
0
              if (yyaccept <= 83) {
3001
0
                if (yyaccept == 82) {
3002
0
                  goto yy819;
3003
0
                } else {
3004
0
                  goto yy823;
3005
0
                }
3006
0
              } else {
3007
0
                goto yy825;
3008
0
              }
3009
0
            }
3010
19
          }
3011
111
        } else {
3012
111
          if (yyaccept <= 90) {
3013
23
            if (yyaccept <= 87) {
3014
8
              if (yyaccept <= 86) {
3015
8
                if (yyaccept == 85) {
3016
8
                  goto yy836;
3017
8
                } else {
3018
0
                  goto yy839;
3019
0
                }
3020
8
              } else {
3021
0
                goto yy854;
3022
0
              }
3023
15
            } else {
3024
15
              if (yyaccept <= 89) {
3025
15
                if (yyaccept == 88) {
3026
15
                  goto yy869;
3027
15
                } else {
3028
0
                  goto yy898;
3029
0
                }
3030
15
              } else {
3031
0
                goto yy903;
3032
0
              }
3033
15
            }
3034
88
          } else {
3035
88
            if (yyaccept <= 93) {
3036
78
              if (yyaccept <= 92) {
3037
78
                if (yyaccept == 91) {
3038
78
                  goto yy876;
3039
78
                } else {
3040
0
                  goto yy911;
3041
0
                }
3042
78
              } else {
3043
0
                goto yy915;
3044
0
              }
3045
78
            } else {
3046
10
              if (yyaccept <= 95) {
3047
10
                if (yyaccept == 94) {
3048
10
                  goto yy886;
3049
10
                } else {
3050
0
                  goto yy931;
3051
0
                }
3052
10
              } else {
3053
0
                goto yy951;
3054
0
              }
3055
10
            }
3056
88
          }
3057
111
        }
3058
131
      }
3059
1.89k
    }
3060
1.23k
yy87:
3061
1.23k
    YYDEBUG(87, *YYCURSOR);
3062
1.23k
    ++YYCURSOR;
3063
1.23k
    YYFILL(1);
3064
1.23k
    yych = *YYCURSOR;
3065
1.23k
    if (yych <= '\f') {
3066
795
      if (yych <= 0x00) goto yy86;
3067
763
      if (yych == '\n') goto yy227;
3068
97
      goto yy225;
3069
763
    } else {
3070
443
      if (yych <= '\r') goto yy227;
3071
197
      if (yych == '[') goto yy86;
3072
196
      goto yy225;
3073
197
    }
3074
481
yy88:
3075
481
    YYDEBUG(88, *YYCURSOR);
3076
481
    ++YYCURSOR;
3077
578
yy89:
3078
578
    YYDEBUG(89, *YYCURSOR);
3079
578
    yyleng = YYCURSOR - SCNG(yy_text);
3080
578
#line 1950 "Zend/zend_language_scanner.l"
3081
578
    {
3082
578
  yyless(1);
3083
578
  RETURN_TOKEN(T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG);
3084
578
}
3085
0
#line 3086 "Zend/zend_language_scanner.c"
3086
317
yy90:
3087
317
    YYDEBUG(90, *YYCURSOR);
3088
317
    ++YYCURSOR;
3089
317
    YYDEBUG(91, *YYCURSOR);
3090
317
    yyleng = YYCURSOR - SCNG(yy_text);
3091
317
#line 1926 "Zend/zend_language_scanner.l"
3092
317
    {
3093
317
  RETURN_TOKEN(T_BOOLEAN_AND);
3094
317
}
3095
0
#line 3096 "Zend/zend_language_scanner.c"
3096
29
yy92:
3097
29
    YYDEBUG(92, *YYCURSOR);
3098
29
    yych = *++YYCURSOR;
3099
29
    if (yych == '.') goto yy229;
3100
8
    goto yy86;
3101
170
yy93:
3102
170
    YYDEBUG(93, *YYCURSOR);
3103
170
    ++YYCURSOR;
3104
170
    YYFILL(1);
3105
170
    yych = *YYCURSOR;
3106
170
    if (yych == '*') goto yy230;
3107
104
    if (yych == '/') goto yy225;
3108
27
    goto yy86;
3109
27
yy94:
3110
19
    YYDEBUG(94, *YYCURSOR);
3111
19
    ++YYCURSOR;
3112
19
    YYDEBUG(95, *YYCURSOR);
3113
19
    yyleng = YYCURSOR - SCNG(yy_text);
3114
19
#line 1902 "Zend/zend_language_scanner.l"
3115
19
    {
3116
19
  RETURN_TOKEN(T_AND_EQUAL);
3117
19
}
3118
0
#line 3119 "Zend/zend_language_scanner.c"
3119
19.9k
yy96:
3120
19.9k
    YYDEBUG(96, *YYCURSOR);
3121
19.9k
    ++YYCURSOR;
3122
19.9k
    YYFILL(7);
3123
19.9k
    yych = *YYCURSOR;
3124
34.1k
yy97:
3125
34.1k
    YYDEBUG(97, *YYCURSOR);
3126
34.1k
    if (yybm[0+yych] & 1) {
3127
19.9k
      goto yy96;
3128
19.9k
    }
3129
14.1k
    switch (yych) {
3130
73
    case 'A':
3131
362
    case 'a': goto yy98;
3132
49
    case 'B':
3133
240
    case 'b': goto yy99;
3134
7
    case 'D':
3135
195
    case 'd': goto yy100;
3136
98
    case 'F':
3137
483
    case 'f': goto yy101;
3138
19
    case 'I':
3139
678
    case 'i': goto yy102;
3140
10
    case 'O':
3141
71
    case 'o': goto yy103;
3142
44
    case 'R':
3143
103
    case 'r': goto yy104;
3144
12
    case 'S':
3145
470
    case 's': goto yy105;
3146
27
    case 'U':
3147
199
    case 'u': goto yy106;
3148
2
    case 'V':
3149
29
    case 'v': goto yy107;
3150
11.3k
    default:  goto yy86;
3151
14.1k
    }
3152
362
yy98:
3153
362
    YYDEBUG(98, *YYCURSOR);
3154
362
    yych = *++YYCURSOR;
3155
362
    if (yych == 'R') goto yy232;
3156
360
    if (yych == 'r') goto yy232;
3157
211
    goto yy86;
3158
240
yy99:
3159
240
    YYDEBUG(99, *YYCURSOR);
3160
240
    yych = *++YYCURSOR;
3161
240
    if (yych <= 'O') {
3162
41
      if (yych == 'I') goto yy233;
3163
37
      if (yych <= 'N') goto yy86;
3164
9
      goto yy234;
3165
199
    } else {
3166
199
      if (yych <= 'i') {
3167
177
        if (yych <= 'h') goto yy86;
3168
147
        goto yy233;
3169
177
      } else {
3170
22
        if (yych == 'o') goto yy234;
3171
8
        goto yy86;
3172
22
      }
3173
199
    }
3174
195
yy100:
3175
195
    YYDEBUG(100, *YYCURSOR);
3176
195
    yych = *++YYCURSOR;
3177
195
    if (yych == 'O') goto yy235;
3178
195
    if (yych == 'o') goto yy235;
3179
183
    goto yy86;
3180
483
yy101:
3181
483
    YYDEBUG(101, *YYCURSOR);
3182
483
    yych = *++YYCURSOR;
3183
483
    if (yych == 'L') goto yy236;
3184
479
    if (yych == 'l') goto yy236;
3185
463
    goto yy86;
3186
678
yy102:
3187
678
    YYDEBUG(102, *YYCURSOR);
3188
678
    yych = *++YYCURSOR;
3189
678
    if (yych == 'N') goto yy237;
3190
664
    if (yych == 'n') goto yy237;
3191
497
    goto yy86;
3192
497
yy103:
3193
71
    YYDEBUG(103, *YYCURSOR);
3194
71
    yych = *++YYCURSOR;
3195
71
    if (yych == 'B') goto yy238;
3196
71
    if (yych == 'b') goto yy238;
3197
20
    goto yy86;
3198
103
yy104:
3199
103
    YYDEBUG(104, *YYCURSOR);
3200
103
    yych = *++YYCURSOR;
3201
103
    if (yych == 'E') goto yy239;
3202
94
    if (yych == 'e') goto yy239;
3203
64
    goto yy86;
3204
470
yy105:
3205
470
    YYDEBUG(105, *YYCURSOR);
3206
470
    yych = *++YYCURSOR;
3207
470
    if (yych == 'T') goto yy240;
3208
470
    if (yych == 't') goto yy240;
3209
323
    goto yy86;
3210
323
yy106:
3211
199
    YYDEBUG(106, *YYCURSOR);
3212
199
    yych = *++YYCURSOR;
3213
199
    if (yych == 'N') goto yy241;
3214
171
    if (yych == 'n') goto yy241;
3215
9
    goto yy86;
3216
29
yy107:
3217
29
    YYDEBUG(107, *YYCURSOR);
3218
29
    yych = *++YYCURSOR;
3219
29
    if (yych == 'O') goto yy242;
3220
29
    if (yych == 'o') goto yy242;
3221
24
    goto yy86;
3222
263
yy108:
3223
263
    YYDEBUG(108, *YYCURSOR);
3224
263
    yych = *++YYCURSOR;
3225
263
    if (yych == '=') goto yy243;
3226
258
    YYDEBUG(109, *YYCURSOR);
3227
258
    yyleng = YYCURSOR - SCNG(yy_text);
3228
258
#line 1874 "Zend/zend_language_scanner.l"
3229
258
    {
3230
258
  RETURN_TOKEN(T_POW);
3231
258
}
3232
0
#line 3233 "Zend/zend_language_scanner.c"
3233
15
yy110:
3234
15
    YYDEBUG(110, *YYCURSOR);
3235
15
    ++YYCURSOR;
3236
15
    YYDEBUG(111, *YYCURSOR);
3237
15
    yyleng = YYCURSOR - SCNG(yy_text);
3238
15
#line 1870 "Zend/zend_language_scanner.l"
3239
15
    {
3240
15
  RETURN_TOKEN(T_MUL_EQUAL);
3241
15
}
3242
0
#line 3243 "Zend/zend_language_scanner.c"
3243
12.3k
yy112:
3244
12.3k
    YYDEBUG(112, *YYCURSOR);
3245
12.3k
    ++YYCURSOR;
3246
12.3k
    YYDEBUG(113, *YYCURSOR);
3247
12.3k
    yyleng = YYCURSOR - SCNG(yy_text);
3248
12.3k
#line 1826 "Zend/zend_language_scanner.l"
3249
12.3k
    {
3250
12.3k
  RETURN_TOKEN(T_INC);
3251
12.3k
}
3252
0
#line 3253 "Zend/zend_language_scanner.c"
3253
87
yy114:
3254
87
    YYDEBUG(114, *YYCURSOR);
3255
87
    ++YYCURSOR;
3256
87
    YYDEBUG(115, *YYCURSOR);
3257
87
    yyleng = YYCURSOR - SCNG(yy_text);
3258
87
#line 1862 "Zend/zend_language_scanner.l"
3259
87
    {
3260
87
  RETURN_TOKEN(T_PLUS_EQUAL);
3261
87
}
3262
0
#line 3263 "Zend/zend_language_scanner.c"
3263
101
yy116:
3264
101
    YYDEBUG(116, *YYCURSOR);
3265
101
    ++YYCURSOR;
3266
101
    YYDEBUG(117, *YYCURSOR);
3267
101
    yyleng = YYCURSOR - SCNG(yy_text);
3268
101
#line 1830 "Zend/zend_language_scanner.l"
3269
101
    {
3270
101
  RETURN_TOKEN(T_DEC);
3271
101
}
3272
0
#line 3273 "Zend/zend_language_scanner.c"
3273
8
yy118:
3274
8
    YYDEBUG(118, *YYCURSOR);
3275
8
    ++YYCURSOR;
3276
8
    YYDEBUG(119, *YYCURSOR);
3277
8
    yyleng = YYCURSOR - SCNG(yy_text);
3278
8
#line 1866 "Zend/zend_language_scanner.l"
3279
8
    {
3280
8
  RETURN_TOKEN(T_MINUS_EQUAL);
3281
8
}
3282
0
#line 3283 "Zend/zend_language_scanner.c"
3283
1.46k
yy120:
3284
1.46k
    YYDEBUG(120, *YYCURSOR);
3285
1.46k
    ++YYCURSOR;
3286
1.46k
    YYDEBUG(121, *YYCURSOR);
3287
1.46k
    yyleng = YYCURSOR - SCNG(yy_text);
3288
1.46k
#line 1587 "Zend/zend_language_scanner.l"
3289
1.46k
    {
3290
1.46k
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
3291
1.46k
  RETURN_TOKEN(T_OBJECT_OPERATOR);
3292
1.46k
}
3293
0
#line 3294 "Zend/zend_language_scanner.c"
3294
381
yy122:
3295
381
    YYDEBUG(122, *YYCURSOR);
3296
381
    yych = *++YYCURSOR;
3297
381
    if (yych == '.') goto yy245;
3298
57
    goto yy86;
3299
3.17k
yy123:
3300
3.17k
    YYDEBUG(123, *YYCURSOR);
3301
3.17k
    yyaccept = 5;
3302
3.17k
    YYMARKER = ++YYCURSOR;
3303
3.17k
    YYFILL(2);
3304
3.17k
    yych = *YYCURSOR;
3305
3.55k
yy124:
3306
3.55k
    YYDEBUG(124, *YYCURSOR);
3307
3.55k
    if (yych <= 'E') {
3308
3.44k
      if (yych <= '/') goto yy125;
3309
3.05k
      if (yych <= '9') goto yy123;
3310
175
      if (yych >= 'E') goto yy135;
3311
175
    } else {
3312
115
      if (yych <= '_') {
3313
48
        if (yych >= '_') goto yy247;
3314
67
      } else {
3315
67
        if (yych == 'e') goto yy135;
3316
67
      }
3317
115
    }
3318
864
yy125:
3319
864
    YYDEBUG(125, *YYCURSOR);
3320
864
    yyleng = YYCURSOR - SCNG(yy_text);
3321
864
#line 2233 "Zend/zend_language_scanner.l"
3322
864
    {
3323
864
  const char *end;
3324
864
  size_t len = yyleng;
3325
864
  char *dnum = yytext;
3326
864
  bool contains_underscores = (memchr(dnum, '_', len) != NULL);
3327
3328
864
  if (contains_underscores) {
3329
51
    dnum = estrndup(dnum, len);
3330
51
    strip_underscores(dnum, &len);
3331
51
  }
3332
3333
864
  ZVAL_DOUBLE(zendlval, zend_strtod(dnum, &end));
3334
  /* errno isn't checked since we allow HUGE_VAL/INF overflow */
3335
864
  ZEND_ASSERT(end == dnum + len);
3336
864
  if (contains_underscores) {
3337
51
    efree(dnum);
3338
51
  }
3339
864
  RETURN_TOKEN_WITH_VAL(T_DNUMBER);
3340
864
}
3341
0
#line 3342 "Zend/zend_language_scanner.c"
3342
243
yy126:
3343
243
    YYDEBUG(126, *YYCURSOR);
3344
243
    ++YYCURSOR;
3345
243
    YYDEBUG(127, *YYCURSOR);
3346
243
    yyleng = YYCURSOR - SCNG(yy_text);
3347
243
#line 1886 "Zend/zend_language_scanner.l"
3348
243
    {
3349
243
  RETURN_TOKEN(T_CONCAT_EQUAL);
3350
243
}
3351
0
#line 3352 "Zend/zend_language_scanner.c"
3352
1.81k
yy128:
3353
1.81k
    YYDEBUG(128, *YYCURSOR);
3354
1.81k
    yyaccept = 6;
3355
1.81k
    yych = *(YYMARKER = ++YYCURSOR);
3356
1.81k
    if (yych == '*') goto yy248;
3357
1.81k
yy129:
3358
1.81k
    YYDEBUG(129, *YYCURSOR);
3359
1.81k
    yyleng = YYCURSOR - SCNG(yy_text);
3360
1.81k
#line 2484 "Zend/zend_language_scanner.l"
3361
1.81k
    {
3362
1.81k
  int doc_com;
3363
3364
1.81k
  if (yyleng > 2) {
3365
78
    doc_com = 1;
3366
78
    RESET_DOC_COMMENT();
3367
1.73k
  } else {
3368
1.73k
    doc_com = 0;
3369
1.73k
  }
3370
3371
32.3k
  while (YYCURSOR < YYLIMIT) {
3372
31.4k
    if (*YYCURSOR++ == '*' && *YYCURSOR == '/') {
3373
851
      break;
3374
851
    }
3375
31.4k
  }
3376
3377
1.81k
  if (YYCURSOR < YYLIMIT) {
3378
851
    YYCURSOR++;
3379
961
  } else {
3380
961
    zend_throw_exception_ex(zend_ce_parse_error, 0, "Unterminated comment starting line %" PRIu32, CG(zend_lineno));
3381
961
    if (PARSER_MODE()) {
3382
50
      RETURN_TOKEN(T_ERROR);
3383
50
    }
3384
961
  }
3385
3386
1.76k
  yyleng = YYCURSOR - SCNG(yy_text);
3387
1.76k
  HANDLE_NEWLINES(yytext, yyleng);
3388
3389
1.76k
  if (doc_com) {
3390
74
    CG(doc_comment) = zend_string_init(yytext, yyleng, 0);
3391
74
    RETURN_OR_SKIP_TOKEN(T_DOC_COMMENT);
3392
74
  }
3393
3394
1.68k
  RETURN_OR_SKIP_TOKEN(T_COMMENT);
3395
1.68k
}
3396
0
#line 3397 "Zend/zend_language_scanner.c"
3397
314
yy130:
3398
314
    YYDEBUG(130, *YYCURSOR);
3399
314
    ++YYCURSOR;
3400
314
    goto yy13;
3401
22
yy131:
3402
22
    YYDEBUG(131, *YYCURSOR);
3403
22
    ++YYCURSOR;
3404
22
    YYDEBUG(132, *YYCURSOR);
3405
22
    yyleng = YYCURSOR - SCNG(yy_text);
3406
22
#line 1882 "Zend/zend_language_scanner.l"
3407
22
    {
3408
22
  RETURN_TOKEN(T_DIV_EQUAL);
3409
22
}
3410
0
#line 3411 "Zend/zend_language_scanner.c"
3411
390
yy133:
3412
390
    YYDEBUG(133, *YYCURSOR);
3413
390
    yyaccept = 5;
3414
390
    yych = *(YYMARKER = ++YYCURSOR);
3415
390
    if (yych == '_') goto yy125;
3416
376
    goto yy124;
3417
376
yy134:
3418
20
    YYDEBUG(134, *YYCURSOR);
3419
20
    ++YYCURSOR;
3420
20
    YYFILL(1);
3421
20
    yych = *YYCURSOR;
3422
20
    if (yybm[0+yych] & 8) {
3423
17
      goto yy249;
3424
17
    }
3425
3
    goto yy86;
3426
242
yy135:
3427
242
    YYDEBUG(135, *YYCURSOR);
3428
242
    yych = *++YYCURSOR;
3429
242
    if (yych <= ',') {
3430
14
      if (yych == '+') goto yy252;
3431
11
      goto yy86;
3432
228
    } else {
3433
228
      if (yych <= '-') goto yy252;
3434
175
      if (yych <= '/') goto yy86;
3435
168
      if (yych <= '9') goto yy253;
3436
25
      goto yy86;
3437
168
    }
3438
41
yy136:
3439
41
    YYDEBUG(136, *YYCURSOR);
3440
41
    ++YYCURSOR;
3441
41
    YYFILL(1);
3442
41
    yych = *YYCURSOR;
3443
41
    if (yybm[0+yych] & 16) {
3444
17
      goto yy255;
3445
17
    }
3446
24
    goto yy86;
3447
66
yy137:
3448
66
    YYDEBUG(137, *YYCURSOR);
3449
66
    ++YYCURSOR;
3450
66
    YYFILL(1);
3451
66
    yych = *YYCURSOR;
3452
66
    if (yybm[0+yych] & 32) {
3453
61
      goto yy258;
3454
61
    }
3455
5
    goto yy86;
3456
65
yy138:
3457
65
    YYDEBUG(138, *YYCURSOR);
3458
65
    ++YYCURSOR;
3459
65
    YYFILL(1);
3460
65
    yych = *YYCURSOR;
3461
65
    if (yybm[256+yych] & 64) {
3462
42
      goto yy32;
3463
42
    }
3464
23
    goto yy86;
3465
2.34k
yy139:
3466
2.34k
    YYDEBUG(139, *YYCURSOR);
3467
2.34k
    ++YYCURSOR;
3468
2.34k
    YYDEBUG(140, *YYCURSOR);
3469
2.34k
    yyleng = YYCURSOR - SCNG(yy_text);
3470
2.34k
#line 1614 "Zend/zend_language_scanner.l"
3471
2.34k
    {
3472
2.34k
  RETURN_TOKEN(T_PAAMAYIM_NEKUDOTAYIM);
3473
2.34k
}
3474
0
#line 3475 "Zend/zend_language_scanner.c"
3475
29.8k
yy141:
3476
29.8k
    YYDEBUG(141, *YYCURSOR);
3477
29.8k
    yyaccept = 7;
3478
29.8k
    yych = *(YYMARKER = ++YYCURSOR);
3479
29.8k
    if (yych <= ';') goto yy142;
3480
28.5k
    if (yych <= '<') goto yy261;
3481
3.29k
    if (yych <= '=') goto yy263;
3482
13.4k
yy142:
3483
13.4k
    YYDEBUG(142, *YYCURSOR);
3484
13.4k
    yyleng = YYCURSOR - SCNG(yy_text);
3485
13.4k
#line 1942 "Zend/zend_language_scanner.l"
3486
13.4k
    {
3487
13.4k
  RETURN_TOKEN(T_SL);
3488
13.4k
}
3489
0
#line 3490 "Zend/zend_language_scanner.c"
3490
4.42k
yy143:
3491
4.42k
    YYDEBUG(143, *YYCURSOR);
3492
4.42k
    yych = *++YYCURSOR;
3493
4.42k
    if (yych == '>') goto yy265;
3494
4.42k
    YYDEBUG(144, *YYCURSOR);
3495
4.42k
    yyleng = YYCURSOR - SCNG(yy_text);
3496
4.42k
#line 1854 "Zend/zend_language_scanner.l"
3497
4.42k
    {
3498
4.42k
  RETURN_TOKEN(T_IS_SMALLER_OR_EQUAL);
3499
4.42k
}
3500
0
#line 3501 "Zend/zend_language_scanner.c"
3501
204
yy145:
3502
204
    YYDEBUG(145, *YYCURSOR);
3503
204
    ++YYCURSOR;
3504
204
    goto yy76;
3505
201
yy146:
3506
201
    YYDEBUG(146, *YYCURSOR);
3507
201
    yych = *++YYCURSOR;
3508
201
    if (yych == '=') goto yy267;
3509
124
    YYDEBUG(147, *YYCURSOR);
3510
124
    yyleng = YYCURSOR - SCNG(yy_text);
3511
124
#line 1842 "Zend/zend_language_scanner.l"
3512
124
    {
3513
124
  RETURN_TOKEN(T_IS_EQUAL);
3514
124
}
3515
0
#line 3516 "Zend/zend_language_scanner.c"
3516
589
yy148:
3517
589
    YYDEBUG(148, *YYCURSOR);
3518
589
    ++YYCURSOR;
3519
589
    YYDEBUG(149, *YYCURSOR);
3520
589
    yyleng = YYCURSOR - SCNG(yy_text);
3521
589
#line 1810 "Zend/zend_language_scanner.l"
3522
589
    {
3523
589
  RETURN_TOKEN(T_DOUBLE_ARROW);
3524
589
}
3525
0
#line 3526 "Zend/zend_language_scanner.c"
3526
25
yy150:
3527
25
    YYDEBUG(150, *YYCURSOR);
3528
25
    ++YYCURSOR;
3529
25
    YYDEBUG(151, *YYCURSOR);
3530
25
    yyleng = YYCURSOR - SCNG(yy_text);
3531
25
#line 1858 "Zend/zend_language_scanner.l"
3532
25
    {
3533
25
  RETURN_TOKEN(T_IS_GREATER_OR_EQUAL);
3534
25
}
3535
0
#line 3536 "Zend/zend_language_scanner.c"
3536
103
yy152:
3537
103
    YYDEBUG(152, *YYCURSOR);
3538
103
    yych = *++YYCURSOR;
3539
103
    if (yych == '=') goto yy269;
3540
94
    YYDEBUG(153, *YYCURSOR);
3541
94
    yyleng = YYCURSOR - SCNG(yy_text);
3542
94
#line 1946 "Zend/zend_language_scanner.l"
3543
94
    {
3544
94
  RETURN_TOKEN(T_SR);
3545
94
}
3546
0
#line 3547 "Zend/zend_language_scanner.c"
3547
96
yy154:
3548
96
    YYDEBUG(154, *YYCURSOR);
3549
96
    yych = *++YYCURSOR;
3550
96
    if (yych == '>') goto yy271;
3551
10
    goto yy86;
3552
3.74k
yy155:
3553
3.74k
    YYDEBUG(155, *YYCURSOR);
3554
3.74k
    yych = *++YYCURSOR;
3555
3.74k
    if (yych == '\n') goto yy273;
3556
3.55k
    if (yych == '\r') goto yy274;
3557
3.74k
yy156:
3558
3.74k
    YYDEBUG(156, *YYCURSOR);
3559
3.74k
    yyleng = YYCURSOR - SCNG(yy_text);
3560
3.74k
#line 2526 "Zend/zend_language_scanner.l"
3561
3.74k
    {
3562
3.74k
  BEGIN(INITIAL);
3563
3.74k
  if (yytext[yyleng-1] != '>') {
3564
202
    CG(increment_lineno) = 1;
3565
202
  }
3566
3.74k
  if (PARSER_MODE()) {
3567
3.68k
    RETURN_TOKEN(';');  /* implicit ';' at php-end tag */
3568
3.68k
  }
3569
60
  RETURN_TOKEN(T_CLOSE_TAG);
3570
60
}
3571
0
#line 3572 "Zend/zend_language_scanner.c"
3572
9.15k
yy157:
3573
9.15k
    YYDEBUG(157, *YYCURSOR);
3574
9.15k
    yych = *++YYCURSOR;
3575
9.15k
    if (yych == '=') goto yy275;
3576
9.12k
    YYDEBUG(158, *YYCURSOR);
3577
9.12k
    yyleng = YYCURSOR - SCNG(yy_text);
3578
9.12k
#line 1622 "Zend/zend_language_scanner.l"
3579
9.12k
    {
3580
9.12k
  RETURN_TOKEN(T_COALESCE);
3581
9.12k
}
3582
0
#line 3583 "Zend/zend_language_scanner.c"
3583
156
yy159:
3584
156
    YYDEBUG(159, *YYCURSOR);
3585
156
    yyaccept = 4;
3586
156
    yych = *(YYMARKER = ++YYCURSOR);
3587
156
    if (yych == 'S') goto yy277;
3588
154
    if (yych == 's') goto yy277;
3589
23
    goto yy48;
3590
175
yy160:
3591
175
    YYDEBUG(160, *YYCURSOR);
3592
175
    yyaccept = 4;
3593
175
    yych = *(YYMARKER = ++YYCURSOR);
3594
175
    if (yych == 'D') goto yy278;
3595
170
    if (yych == 'd') goto yy278;
3596
114
    goto yy48;
3597
778
yy161:
3598
778
    YYDEBUG(161, *YYCURSOR);
3599
778
    yyaccept = 4;
3600
778
    yych = *(YYMARKER = ++YYCURSOR);
3601
778
    if (yych == 'R') goto yy280;
3602
768
    if (yych == 'r') goto yy280;
3603
61
    goto yy48;
3604
527
yy162:
3605
527
    YYDEBUG(162, *YYCURSOR);
3606
527
    yyaccept = 8;
3607
527
    yych = *(YYMARKER = ++YYCURSOR);
3608
527
    if (yybm[256+yych] & 128) {
3609
263
      goto yy47;
3610
263
    }
3611
264
    if (yych == '\\') goto yy164;
3612
264
yy163:
3613
264
    YYDEBUG(163, *YYCURSOR);
3614
264
    yyleng = YYCURSOR - SCNG(yy_text);
3615
264
#line 1510 "Zend/zend_language_scanner.l"
3616
264
    {
3617
264
  RETURN_TOKEN_WITH_IDENT(T_AS);
3618
264
}
3619
0
#line 3620 "Zend/zend_language_scanner.c"
3620
562
yy164:
3621
562
    YYDEBUG(164, *YYCURSOR);
3622
562
    ++YYCURSOR;
3623
562
    YYFILL(1);
3624
562
    yych = *YYCURSOR;
3625
562
    if (yych <= '_') {
3626
357
      if (yych <= '@') goto yy86;
3627
203
      if (yych <= 'Z') goto yy281;
3628
114
      if (yych <= '^') goto yy86;
3629
1
      goto yy281;
3630
205
    } else {
3631
205
      if (yych <= '`') goto yy86;
3632
203
      if (yych <= 'z') goto yy281;
3633
63
      if (yych <= 0x7F) goto yy86;
3634
49
      goto yy281;
3635
63
    }
3636
278
yy165:
3637
278
    YYDEBUG(165, *YYCURSOR);
3638
278
    yych = *++YYCURSOR;
3639
278
    if (yych == '<') goto yy284;
3640
31
    goto yy86;
3641
60
yy166:
3642
60
    YYDEBUG(166, *YYCURSOR);
3643
60
    yyaccept = 4;
3644
60
    yych = *(YYMARKER = ++YYCURSOR);
3645
60
    if (yych == 'E') goto yy285;
3646
52
    if (yych == 'e') goto yy285;
3647
9
    goto yy48;
3648
805
yy167:
3649
805
    YYDEBUG(167, *YYCURSOR);
3650
805
    yyaccept = 4;
3651
805
    yych = *(YYMARKER = ++YYCURSOR);
3652
805
    if (yych <= 'T') {
3653
22
      if (yych <= 'L') {
3654
14
        if (yych <= 'K') goto yy48;
3655
1
        goto yy286;
3656
14
      } else {
3657
8
        if (yych <= 'R') goto yy48;
3658
0
        if (yych <= 'S') goto yy287;
3659
0
        goto yy288;
3660
0
      }
3661
783
    } else {
3662
783
      if (yych <= 'r') {
3663
408
        if (yych == 'l') goto yy286;
3664
160
        goto yy48;
3665
408
      } else {
3666
375
        if (yych <= 's') goto yy287;
3667
213
        if (yych <= 't') goto yy288;
3668
10
        goto yy48;
3669
213
      }
3670
783
    }
3671
2.20k
yy168:
3672
2.20k
    YYDEBUG(168, *YYCURSOR);
3673
2.20k
    yyaccept = 4;
3674
2.20k
    yych = *(YYMARKER = ++YYCURSOR);
3675
2.20k
    if (yych <= 'O') {
3676
67
      if (yych == 'A') goto yy289;
3677
63
      if (yych <= 'N') goto yy48;
3678
20
      goto yy290;
3679
2.13k
    } else {
3680
2.13k
      if (yych <= 'a') {
3681
1.96k
        if (yych <= '`') goto yy48;
3682
1.94k
        goto yy289;
3683
1.96k
      } else {
3684
171
        if (yych == 'o') goto yy290;
3685
20
        goto yy48;
3686
171
      }
3687
2.13k
    }
3688
879
yy169:
3689
879
    YYDEBUG(169, *YYCURSOR);
3690
879
    yyaccept = 4;
3691
879
    yych = *(YYMARKER = ++YYCURSOR);
3692
879
    if (yych == 'N') goto yy291;
3693
843
    if (yych == 'n') goto yy291;
3694
80
    goto yy48;
3695
416
yy170:
3696
416
    YYDEBUG(170, *YYCURSOR);
3697
416
    yyaccept = 4;
3698
416
    yych = *(YYMARKER = ++YYCURSOR);
3699
416
    if (yych <= 'F') {
3700
20
      if (yych == 'C') goto yy292;
3701
19
      if (yych <= 'E') goto yy48;
3702
8
      goto yy293;
3703
396
    } else {
3704
396
      if (yych <= 'c') {
3705
263
        if (yych <= 'b') goto yy48;
3706
226
        goto yy292;
3707
263
      } else {
3708
133
        if (yych == 'f') goto yy293;
3709
48
        goto yy48;
3710
133
      }
3711
396
    }
3712
38
yy171:
3713
38
    YYDEBUG(171, *YYCURSOR);
3714
38
    yyaccept = 4;
3715
38
    yych = *(YYMARKER = ++YYCURSOR);
3716
38
    if (yych == 'E') goto yy294;
3717
38
    if (yych == 'e') goto yy294;
3718
26
    goto yy48;
3719
27
yy172:
3720
27
    YYDEBUG(172, *YYCURSOR);
3721
27
    yyaccept = 9;
3722
27
    yych = *(YYMARKER = ++YYCURSOR);
3723
27
    if (yybm[256+yych] & 128) {
3724
19
      goto yy47;
3725
19
    }
3726
8
    if (yych == '\\') goto yy164;
3727
8
yy173:
3728
8
    YYDEBUG(173, *YYCURSOR);
3729
8
    yyleng = YYCURSOR - SCNG(yy_text);
3730
8
#line 1478 "Zend/zend_language_scanner.l"
3731
8
    {
3732
8
  RETURN_TOKEN_WITH_IDENT(T_DO);
3733
8
}
3734
0
#line 3735 "Zend/zend_language_scanner.c"
3735
1.43k
yy174:
3736
1.43k
    YYDEBUG(174, *YYCURSOR);
3737
1.43k
    yyaccept = 4;
3738
1.43k
    yych = *(YYMARKER = ++YYCURSOR);
3739
1.43k
    if (yych == 'H') goto yy296;
3740
1.40k
    if (yych == 'h') goto yy296;
3741
36
    goto yy48;
3742
88
yy175:
3743
88
    YYDEBUG(175, *YYCURSOR);
3744
88
    yyaccept = 4;
3745
88
    yych = *(YYMARKER = ++YYCURSOR);
3746
88
    if (yych == 'S') goto yy297;
3747
83
    if (yych == 's') goto yy297;
3748
35
    goto yy48;
3749
190
yy176:
3750
190
    YYDEBUG(176, *YYCURSOR);
3751
190
    yyaccept = 4;
3752
190
    yych = *(YYMARKER = ++YYCURSOR);
3753
190
    if (yych == 'P') goto yy298;
3754
189
    if (yych == 'p') goto yy298;
3755
93
    goto yy48;
3756
1.98k
yy177:
3757
1.98k
    YYDEBUG(177, *YYCURSOR);
3758
1.98k
    yyaccept = 4;
3759
1.98k
    yych = *(YYMARKER = ++YYCURSOR);
3760
1.98k
    if (yych <= 'U') {
3761
193
      if (yych == 'D') goto yy299;
3762
152
      if (yych <= 'T') goto yy48;
3763
3
      goto yy300;
3764
1.79k
    } else {
3765
1.79k
      if (yych <= 'd') {
3766
215
        if (yych <= 'c') goto yy48;
3767
186
        goto yy299;
3768
1.58k
      } else {
3769
1.58k
        if (yych == 'u') goto yy300;
3770
107
        goto yy48;
3771
1.58k
      }
3772
1.79k
    }
3773
94
yy178:
3774
94
    YYDEBUG(178, *YYCURSOR);
3775
94
    yyaccept = 4;
3776
94
    yych = *(YYMARKER = ++YYCURSOR);
3777
94
    if (yych == 'A') goto yy301;
3778
92
    if (yych == 'a') goto yy301;
3779
8
    goto yy48;
3780
723
yy179:
3781
723
    YYDEBUG(179, *YYCURSOR);
3782
723
    yyaccept = 4;
3783
723
    yych = *(YYMARKER = ++YYCURSOR);
3784
723
    if (yych <= 'T') {
3785
57
      if (yych == 'I') goto yy302;
3786
54
      if (yych <= 'S') goto yy48;
3787
8
      goto yy303;
3788
666
    } else {
3789
666
      if (yych <= 'i') {
3790
197
        if (yych <= 'h') goto yy48;
3791
28
        goto yy302;
3792
469
      } else {
3793
469
        if (yych == 't') goto yy303;
3794
114
        goto yy48;
3795
469
      }
3796
666
    }
3797
318
yy180:
3798
318
    YYDEBUG(180, *YYCURSOR);
3799
318
    yyaccept = 4;
3800
318
    yych = *(YYMARKER = ++YYCURSOR);
3801
318
    if (yych == 'N') goto yy304;
3802
248
    if (yych == 'n') goto yy304;
3803
114
    goto yy48;
3804
202
yy181:
3805
202
    YYDEBUG(181, *YYCURSOR);
3806
202
    yyaccept = 10;
3807
202
    yych = *(YYMARKER = ++YYCURSOR);
3808
202
    if (yybm[256+yych] & 128) {
3809
15
      goto yy47;
3810
15
    }
3811
187
    if (yych == '\\') goto yy164;
3812
187
yy182:
3813
187
    YYDEBUG(182, *YYCURSOR);
3814
187
    yyleng = YYCURSOR - SCNG(yy_text);
3815
187
#line 1407 "Zend/zend_language_scanner.l"
3816
187
    {
3817
187
  RETURN_TOKEN_WITH_IDENT(T_FN);
3818
187
}
3819
0
#line 3820 "Zend/zend_language_scanner.c"
3820
3.05k
yy183:
3821
3.05k
    YYDEBUG(183, *YYCURSOR);
3822
3.05k
    yyaccept = 4;
3823
3.05k
    yych = *(YYMARKER = ++YYCURSOR);
3824
3.05k
    if (yych == 'R') goto yy305;
3825
3.04k
    if (yych == 'r') goto yy305;
3826
1.56k
    goto yy48;
3827
5.28k
yy184:
3828
5.28k
    YYDEBUG(184, *YYCURSOR);
3829
5.28k
    yyaccept = 4;
3830
5.28k
    yych = *(YYMARKER = ++YYCURSOR);
3831
5.28k
    if (yych == 'N') goto yy307;
3832
5.28k
    if (yych == 'n') goto yy307;
3833
152
    goto yy48;
3834
152
yy185:
3835
107
    YYDEBUG(185, *YYCURSOR);
3836
107
    yyaccept = 4;
3837
107
    yych = *(YYMARKER = ++YYCURSOR);
3838
107
    if (yych == 'O') goto yy308;
3839
63
    if (yych == 'o') goto yy308;
3840
28
    goto yy48;
3841
93
yy186:
3842
93
    YYDEBUG(186, *YYCURSOR);
3843
93
    yyaccept = 4;
3844
93
    yych = *(YYMARKER = ++YYCURSOR);
3845
93
    if (yych == 'T') goto yy309;
3846
85
    if (yych == 't') goto yy309;
3847
21
    goto yy48;
3848
114
yy187:
3849
114
    YYDEBUG(187, *YYCURSOR);
3850
114
    yyaccept = 11;
3851
114
    yych = *(YYMARKER = ++YYCURSOR);
3852
114
    if (yybm[256+yych] & 128) {
3853
9
      goto yy47;
3854
9
    }
3855
105
    if (yych == '\\') goto yy164;
3856
105
yy188:
3857
105
    YYDEBUG(188, *YYCURSOR);
3858
105
    yyleng = YYCURSOR - SCNG(yy_text);
3859
105
#line 1454 "Zend/zend_language_scanner.l"
3860
105
    {
3861
105
  RETURN_TOKEN_WITH_IDENT(T_IF);
3862
105
}
3863
0
#line 3864 "Zend/zend_language_scanner.c"
3864
428
yy189:
3865
428
    YYDEBUG(189, *YYCURSOR);
3866
428
    yyaccept = 4;
3867
428
    yych = *(YYMARKER = ++YYCURSOR);
3868
428
    if (yych == 'P') goto yy310;
3869
423
    if (yych == 'p') goto yy310;
3870
54
    goto yy48;
3871
6.54k
yy190:
3872
6.54k
    YYDEBUG(190, *YYCURSOR);
3873
6.54k
    yyaccept = 4;
3874
6.54k
    yych = *(YYMARKER = ++YYCURSOR);
3875
6.54k
    if (yych <= 'T') {
3876
2.43k
      if (yych <= 'C') {
3877
1.06k
        if (yych <= 'B') goto yy48;
3878
19
        goto yy311;
3879
1.36k
      } else {
3880
1.36k
        if (yych <= 'R') goto yy48;
3881
11
        if (yych <= 'S') goto yy312;
3882
4
        goto yy313;
3883
11
      }
3884
4.11k
    } else {
3885
4.11k
      if (yych <= 'r') {
3886
3.46k
        if (yych == 'c') goto yy311;
3887
3.41k
        goto yy48;
3888
3.46k
      } else {
3889
654
        if (yych <= 's') goto yy312;
3890
601
        if (yych <= 't') goto yy313;
3891
46
        goto yy48;
3892
601
      }
3893
4.11k
    }
3894
133
yy191:
3895
133
    YYDEBUG(191, *YYCURSOR);
3896
133
    yyaccept = 4;
3897
133
    yych = *(YYMARKER = ++YYCURSOR);
3898
133
    if (yych == 'S') goto yy314;
3899
124
    if (yych == 's') goto yy314;
3900
63
    goto yy48;
3901
127
yy192:
3902
127
    YYDEBUG(192, *YYCURSOR);
3903
127
    yyaccept = 4;
3904
127
    yych = *(YYMARKER = ++YYCURSOR);
3905
127
    if (yych == 'S') goto yy315;
3906
126
    if (yych == 's') goto yy315;
3907
28
    goto yy48;
3908
89
yy193:
3909
89
    YYDEBUG(193, *YYCURSOR);
3910
89
    yyaccept = 4;
3911
89
    yych = *(YYMARKER = ++YYCURSOR);
3912
89
    if (yych == 'T') goto yy316;
3913
83
    if (yych == 't') goto yy316;
3914
17
    goto yy48;
3915
434
yy194:
3916
434
    YYDEBUG(194, *YYCURSOR);
3917
434
    yyaccept = 4;
3918
434
    yych = *(YYMARKER = ++YYCURSOR);
3919
434
    if (yych == 'M') goto yy317;
3920
416
    if (yych == 'm') goto yy317;
3921
63
    goto yy48;
3922
2.62k
yy195:
3923
2.62k
    YYDEBUG(195, *YYCURSOR);
3924
2.62k
    yyaccept = 4;
3925
2.62k
    yych = *(YYMARKER = ++YYCURSOR);
3926
2.62k
    if (yych == 'W') goto yy318;
3927
2.61k
    if (yych == 'w') goto yy318;
3928
56
    goto yy48;
3929
56
yy196:
3930
50
    YYDEBUG(196, *YYCURSOR);
3931
50
    yyaccept = 12;
3932
50
    yych = *(YYMARKER = ++YYCURSOR);
3933
50
    if (yybm[256+yych] & 128) {
3934
8
      goto yy47;
3935
8
    }
3936
42
    if (yych == '\\') goto yy164;
3937
42
yy197:
3938
42
    YYDEBUG(197, *YYCURSOR);
3939
42
    yyleng = YYCURSOR - SCNG(yy_text);
3940
42
#line 1930 "Zend/zend_language_scanner.l"
3941
42
    {
3942
42
  RETURN_TOKEN_WITH_IDENT(T_LOGICAL_OR);
3943
42
}
3944
0
#line 3945 "Zend/zend_language_scanner.c"
3945
1.67k
yy198:
3946
1.67k
    YYDEBUG(198, *YYCURSOR);
3947
1.67k
    yyaccept = 4;
3948
1.67k
    yych = *(YYMARKER = ++YYCURSOR);
3949
1.67k
    if (yych <= 'O') {
3950
180
      if (yych == 'I') goto yy320;
3951
176
      if (yych <= 'N') goto yy48;
3952
18
      goto yy321;
3953
1.49k
    } else {
3954
1.49k
      if (yych <= 'i') {
3955
1.37k
        if (yych <= 'h') goto yy48;
3956
956
        goto yy320;
3957
1.37k
      } else {
3958
124
        if (yych == 'o') goto yy321;
3959
14
        goto yy48;
3960
124
      }
3961
1.49k
    }
3962
1.72k
yy199:
3963
1.72k
    YYDEBUG(199, *YYCURSOR);
3964
1.72k
    yyaccept = 4;
3965
1.72k
    yych = *(YYMARKER = ++YYCURSOR);
3966
1.72k
    if (yych == 'B') goto yy322;
3967
1.72k
    if (yych == 'b') goto yy322;
3968
36
    goto yy48;
3969
1.64k
yy200:
3970
1.64k
    YYDEBUG(200, *YYCURSOR);
3971
1.64k
    yyaccept = 4;
3972
1.64k
    yych = *(YYMARKER = ++YYCURSOR);
3973
1.64k
    if (yych <= 'T') {
3974
38
      if (yych <= 'P') {
3975
26
        if (yych == 'A') goto yy323;
3976
18
        goto yy48;
3977
26
      } else {
3978
12
        if (yych <= 'Q') goto yy324;
3979
12
        if (yych <= 'S') goto yy48;
3980
8
        goto yy325;
3981
12
      }
3982
1.60k
    } else {
3983
1.60k
      if (yych <= 'p') {
3984
653
        if (yych == 'a') goto yy323;
3985
298
        goto yy48;
3986
950
      } else {
3987
950
        if (yych <= 'q') goto yy324;
3988
770
        if (yych == 't') goto yy325;
3989
50
        goto yy48;
3990
770
      }
3991
1.60k
    }
3992
1.03k
yy201:
3993
1.03k
    YYDEBUG(201, *YYCURSOR);
3994
1.03k
    yyaccept = 4;
3995
1.03k
    yych = *(YYMARKER = ++YYCURSOR);
3996
1.03k
    if (yych == 'A') goto yy326;
3997
1.03k
    if (yych == 'a') goto yy326;
3998
605
    goto yy48;
3999
605
yy202:
4000
91
    YYDEBUG(202, *YYCURSOR);
4001
91
    yyaccept = 4;
4002
91
    yych = *(YYMARKER = ++YYCURSOR);
4003
91
    if (yych == 'I') goto yy327;
4004
72
    if (yych == 'i') goto yy327;
4005
23
    goto yy48;
4006
170
yy203:
4007
170
    YYDEBUG(203, *YYCURSOR);
4008
170
    yyaccept = 4;
4009
170
    yych = *(YYMARKER = ++YYCURSOR);
4010
170
    if (yych == 'R') goto yy328;
4011
170
    if (yych == 'r') goto yy328;
4012
60
    goto yy48;
4013
998
yy204:
4014
998
    YYDEBUG(204, *YYCURSOR);
4015
998
    yyaccept = 4;
4016
998
    yych = *(YYMARKER = ++YYCURSOR);
4017
998
    if (yych <= 'Y') {
4018
220
      if (yych == 'A') goto yy329;
4019
77
      if (yych <= 'X') goto yy48;
4020
3
      goto yy330;
4021
778
    } else {
4022
778
      if (yych <= 'a') {
4023
210
        if (yych <= '`') goto yy48;
4024
208
        goto yy329;
4025
568
      } else {
4026
568
        if (yych == 'y') goto yy330;
4027
173
        goto yy48;
4028
568
      }
4029
778
    }
4030
409
yy205:
4031
409
    YYDEBUG(205, *YYCURSOR);
4032
409
    yyaccept = 4;
4033
409
    yych = *(YYMARKER = ++YYCURSOR);
4034
409
    if (yych == 'S') goto yy332;
4035
409
    if (yych == 's') goto yy332;
4036
74
    goto yy48;
4037
272
yy206:
4038
272
    YYDEBUG(206, *YYCURSOR);
4039
272
    yyaccept = 4;
4040
272
    yych = *(YYMARKER = ++YYCURSOR);
4041
272
    if (yych == 'E') goto yy333;
4042
272
    if (yych == 'e') goto yy333;
4043
8
    goto yy48;
4044
2.27k
yy207:
4045
2.27k
    YYDEBUG(207, *YYCURSOR);
4046
2.27k
    yyaccept = 4;
4047
2.27k
    yych = *(YYMARKER = ++YYCURSOR);
4048
2.27k
    if (yych == 'R') goto yy335;
4049
2.27k
    if (yych == 'r') goto yy335;
4050
75
    goto yy48;
4051
75
yy208:
4052
58
    YYDEBUG(208, *YYCURSOR);
4053
58
    yyaccept = 4;
4054
58
    yych = *(YYMARKER = ++YYCURSOR);
4055
58
    if (yych == 'I') goto yy337;
4056
44
    if (yych == 'i') goto yy337;
4057
11
    goto yy48;
4058
13
yy209:
4059
13
    YYDEBUG(209, *YYCURSOR);
4060
13
    yyaccept = 4;
4061
13
    yych = *(YYMARKER = ++YYCURSOR);
4062
13
    if (yych == 'R') goto yy338;
4063
10
    if (yych == 'r') goto yy338;
4064
0
    goto yy48;
4065
1.53k
yy210:
4066
1.53k
    YYDEBUG(210, *YYCURSOR);
4067
1.53k
    yyaccept = 4;
4068
1.53k
    yych = *(YYMARKER = ++YYCURSOR);
4069
1.53k
    if (yych == 'E') goto yy340;
4070
1.51k
    if (yych == 'e') goto yy340;
4071
258
    goto yy48;
4072
6.77k
yy211:
4073
6.77k
    YYDEBUG(211, *YYCURSOR);
4074
6.77k
    yyaccept = 13;
4075
6.77k
    YYMARKER = ++YYCURSOR;
4076
6.77k
    YYFILL(1);
4077
6.77k
    yych = *YYCURSOR;
4078
6.77k
    YYDEBUG(212, *YYCURSOR);
4079
6.77k
    if (yych <= '\\') {
4080
2.28k
      if (yych <= '@') {
4081
809
        if (yych <= '/') goto yy213;
4082
94
        if (yych <= '9') goto yy211;
4083
1.47k
      } else {
4084
1.47k
        if (yych <= 'Z') goto yy211;
4085
373
        if (yych >= '\\') goto yy341;
4086
373
      }
4087
4.49k
    } else {
4088
4.49k
      if (yych <= '`') {
4089
367
        if (yych == '_') goto yy211;
4090
4.13k
      } else {
4091
4.13k
        if (yych <= 'z') goto yy211;
4092
1.11k
        if (yych >= 0x80) goto yy211;
4093
1.11k
      }
4094
4.49k
    }
4095
946
yy213:
4096
946
    YYDEBUG(213, *YYCURSOR);
4097
946
    yyleng = YYCURSOR - SCNG(yy_text);
4098
946
#line 2447 "Zend/zend_language_scanner.l"
4099
946
    {
4100
946
  RETURN_TOKEN_WITH_STR(T_NAME_FULLY_QUALIFIED, 1);
4101
946
}
4102
0
#line 4103 "Zend/zend_language_scanner.c"
4103
5
yy214:
4104
5
    YYDEBUG(214, *YYCURSOR);
4105
5
    ++YYCURSOR;
4106
5
    YYDEBUG(215, *YYCURSOR);
4107
5
    yyleng = YYCURSOR - SCNG(yy_text);
4108
5
#line 1910 "Zend/zend_language_scanner.l"
4109
5
    {
4110
5
  RETURN_TOKEN(T_XOR_EQUAL);
4111
5
}
4112
0
#line 4113 "Zend/zend_language_scanner.c"
4113
1.47k
yy216:
4114
1.47k
    YYDEBUG(216, *YYCURSOR);
4115
1.47k
    yyaccept = 4;
4116
1.47k
    yych = *(YYMARKER = ++YYCURSOR);
4117
1.47k
    switch (yych) {
4118
92
    case 'C':
4119
287
    case 'c': goto yy342;
4120
47
    case 'D':
4121
412
    case 'd': goto yy343;
4122
68
    case 'F':
4123
76
    case 'f': goto yy344;
4124
26
    case 'H':
4125
37
    case 'h': goto yy345;
4126
34
    case 'L':
4127
37
    case 'l': goto yy346;
4128
50
    case 'M':
4129
50
    case 'm': goto yy347;
4130
84
    case 'N':
4131
128
    case 'n': goto yy348;
4132
67
    case 'P':
4133
68
    case 'p': goto yy349;
4134
101
    case 'T':
4135
145
    case 't': goto yy350;
4136
237
    default:  goto yy48;
4137
1.47k
    }
4138
7
yy217:
4139
7
    YYDEBUG(217, *YYCURSOR);
4140
7
    ++YYCURSOR;
4141
7
    YYDEBUG(218, *YYCURSOR);
4142
7
    yyleng = YYCURSOR - SCNG(yy_text);
4143
7
#line 1906 "Zend/zend_language_scanner.l"
4144
7
    {
4145
7
  RETURN_TOKEN(T_OR_EQUAL);
4146
7
}
4147
0
#line 4148 "Zend/zend_language_scanner.c"
4148
23
yy219:
4149
23
    YYDEBUG(219, *YYCURSOR);
4150
23
    ++YYCURSOR;
4151
23
    YYDEBUG(220, *YYCURSOR);
4152
23
    yyleng = YYCURSOR - SCNG(yy_text);
4153
23
#line 1918 "Zend/zend_language_scanner.l"
4154
23
    {
4155
23
  RETURN_TOKEN(T_PIPE);
4156
23
}
4157
0
#line 4158 "Zend/zend_language_scanner.c"
4158
484
yy221:
4159
484
    YYDEBUG(221, *YYCURSOR);
4160
484
    ++YYCURSOR;
4161
484
    YYDEBUG(222, *YYCURSOR);
4162
484
    yyleng = YYCURSOR - SCNG(yy_text);
4163
484
#line 1922 "Zend/zend_language_scanner.l"
4164
484
    {
4165
484
  RETURN_TOKEN(T_BOOLEAN_OR);
4166
484
}
4167
0
#line 4168 "Zend/zend_language_scanner.c"
4168
9
yy223:
4169
9
    YYDEBUG(223, *YYCURSOR);
4170
9
    ++YYCURSOR;
4171
9
    YYDEBUG(224, *YYCURSOR);
4172
9
    yyleng = YYCURSOR - SCNG(yy_text);
4173
9
#line 1838 "Zend/zend_language_scanner.l"
4174
9
    {
4175
9
  RETURN_TOKEN(T_IS_NOT_IDENTICAL);
4176
9
}
4177
0
#line 4178 "Zend/zend_language_scanner.c"
4178
4.57k
yy225:
4179
4.57k
    YYDEBUG(225, *YYCURSOR);
4180
4.57k
    ++YYCURSOR;
4181
4.57k
    YYFILL(1);
4182
4.57k
    yych = *YYCURSOR;
4183
4.57k
    YYDEBUG(226, *YYCURSOR);
4184
4.57k
    if (yybm[0+yych] & 2) {
4185
3.70k
      goto yy225;
4186
3.70k
    }
4187
863
    if (yych <= 0x00) goto yy86;
4188
742
    goto yy84;
4189
985
yy227:
4190
985
    YYDEBUG(227, *YYCURSOR);
4191
985
    ++YYCURSOR;
4192
985
    YYFILL(1);
4193
985
    yych = *YYCURSOR;
4194
985
    YYDEBUG(228, *YYCURSOR);
4195
985
    if (yych <= 0x1F) {
4196
133
      if (yych <= '\t') {
4197
38
        if (yych <= 0x00) goto yy86;
4198
32
        if (yych <= 0x08) goto yy225;
4199
5
        goto yy227;
4200
95
      } else {
4201
95
        if (yych <= '\n') goto yy84;
4202
87
        if (yych == '\r') goto yy84;
4203
24
        goto yy225;
4204
87
      }
4205
852
    } else {
4206
852
      if (yych <= '$') {
4207
112
        if (yych <= ' ') goto yy227;
4208
89
        if (yych <= '"') goto yy225;
4209
88
        if (yych <= '#') goto yy351;
4210
84
        goto yy352;
4211
740
      } else {
4212
740
        if (yych <= '-') goto yy225;
4213
635
        if (yych <= '.') goto yy353;
4214
580
        if (yych <= '/') goto yy354;
4215
185
        goto yy225;
4216
580
      }
4217
852
    }
4218
21
yy229:
4219
21
    YYDEBUG(229, *YYCURSOR);
4220
21
    yych = *++YYCURSOR;
4221
21
    if (yych == '.') goto yy88;
4222
6
    goto yy86;
4223
2.06k
yy230:
4224
2.06k
    YYDEBUG(230, *YYCURSOR);
4225
2.06k
    ++YYCURSOR;
4226
2.06k
    YYFILL(1);
4227
2.06k
    yych = *YYCURSOR;
4228
2.06k
    YYDEBUG(231, *YYCURSOR);
4229
2.06k
    if (yybm[0+yych] & 4) {
4230
1.79k
      goto yy230;
4231
1.79k
    }
4232
269
    if (yych <= 0x00) goto yy86;
4233
207
    goto yy355;
4234
207
yy232:
4235
151
    YYDEBUG(232, *YYCURSOR);
4236
151
    yych = *++YYCURSOR;
4237
151
    if (yych == 'R') goto yy357;
4238
141
    if (yych == 'r') goto yy357;
4239
9
    goto yy86;
4240
151
yy233:
4241
151
    YYDEBUG(233, *YYCURSOR);
4242
151
    yych = *++YYCURSOR;
4243
151
    if (yych == 'N') goto yy358;
4244
151
    if (yych == 'n') goto yy358;
4245
146
    goto yy86;
4246
146
yy234:
4247
23
    YYDEBUG(234, *YYCURSOR);
4248
23
    yych = *++YYCURSOR;
4249
23
    if (yych == 'O') goto yy359;
4250
15
    if (yych == 'o') goto yy359;
4251
4
    goto yy86;
4252
12
yy235:
4253
12
    YYDEBUG(235, *YYCURSOR);
4254
12
    yych = *++YYCURSOR;
4255
12
    if (yych == 'U') goto yy360;
4256
8
    if (yych == 'u') goto yy360;
4257
2
    goto yy86;
4258
20
yy236:
4259
20
    YYDEBUG(236, *YYCURSOR);
4260
20
    yych = *++YYCURSOR;
4261
20
    if (yych == 'O') goto yy361;
4262
20
    if (yych == 'o') goto yy361;
4263
6
    goto yy86;
4264
181
yy237:
4265
181
    YYDEBUG(237, *YYCURSOR);
4266
181
    yych = *++YYCURSOR;
4267
181
    if (yych == 'T') goto yy362;
4268
180
    if (yych == 't') goto yy362;
4269
62
    goto yy86;
4270
62
yy238:
4271
51
    YYDEBUG(238, *YYCURSOR);
4272
51
    yych = *++YYCURSOR;
4273
51
    if (yych == 'J') goto yy363;
4274
35
    if (yych == 'j') goto yy363;
4275
5
    goto yy86;
4276
39
yy239:
4277
39
    YYDEBUG(239, *YYCURSOR);
4278
39
    yych = *++YYCURSOR;
4279
39
    if (yych == 'A') goto yy364;
4280
32
    if (yych == 'a') goto yy364;
4281
29
    goto yy86;
4282
147
yy240:
4283
147
    YYDEBUG(240, *YYCURSOR);
4284
147
    yych = *++YYCURSOR;
4285
147
    if (yych == 'R') goto yy365;
4286
145
    if (yych == 'r') goto yy365;
4287
8
    goto yy86;
4288
190
yy241:
4289
190
    YYDEBUG(241, *YYCURSOR);
4290
190
    yych = *++YYCURSOR;
4291
190
    if (yych == 'S') goto yy366;
4292
190
    if (yych == 's') goto yy366;
4293
32
    goto yy86;
4294
32
yy242:
4295
5
    YYDEBUG(242, *YYCURSOR);
4296
5
    yych = *++YYCURSOR;
4297
5
    if (yych == 'I') goto yy367;
4298
5
    if (yych == 'i') goto yy367;
4299
1
    goto yy86;
4300
5
yy243:
4301
5
    YYDEBUG(243, *YYCURSOR);
4302
5
    ++YYCURSOR;
4303
5
    YYDEBUG(244, *YYCURSOR);
4304
5
    yyleng = YYCURSOR - SCNG(yy_text);
4305
5
#line 1878 "Zend/zend_language_scanner.l"
4306
5
    {
4307
5
  RETURN_TOKEN(T_POW_EQUAL);
4308
5
}
4309
0
#line 4310 "Zend/zend_language_scanner.c"
4310
324
yy245:
4311
324
    YYDEBUG(245, *YYCURSOR);
4312
324
    ++YYCURSOR;
4313
324
    YYDEBUG(246, *YYCURSOR);
4314
324
    yyleng = YYCURSOR - SCNG(yy_text);
4315
324
#line 1618 "Zend/zend_language_scanner.l"
4316
324
    {
4317
324
  RETURN_TOKEN(T_ELLIPSIS);
4318
324
}
4319
0
#line 4320 "Zend/zend_language_scanner.c"
4320
24
yy247:
4321
24
    YYDEBUG(247, *YYCURSOR);
4322
24
    ++YYCURSOR;
4323
24
    YYFILL(1);
4324
24
    yych = *YYCURSOR;
4325
24
    if (yych <= '/') goto yy86;
4326
24
    if (yych <= '9') goto yy123;
4327
21
    goto yy86;
4328
129
yy248:
4329
129
    YYDEBUG(248, *YYCURSOR);
4330
129
    yych = *++YYCURSOR;
4331
129
    if (yych <= '\f') {
4332
31
      if (yych <= 0x08) goto yy86;
4333
28
      if (yych <= '\n') goto yy368;
4334
0
      goto yy86;
4335
98
    } else {
4336
98
      if (yych <= '\r') goto yy368;
4337
68
      if (yych == ' ') goto yy368;
4338
48
      goto yy86;
4339
68
    }
4340
135
yy249:
4341
135
    YYDEBUG(249, *YYCURSOR);
4342
135
    yyaccept = 14;
4343
135
    YYMARKER = ++YYCURSOR;
4344
135
    YYFILL(1);
4345
135
    yych = *YYCURSOR;
4346
135
    YYDEBUG(250, *YYCURSOR);
4347
135
    if (yybm[0+yych] & 8) {
4348
118
      goto yy249;
4349
118
    }
4350
17
    if (yych == '_') goto yy134;
4351
17
yy251:
4352
17
    YYDEBUG(251, *YYCURSOR);
4353
17
    yyleng = YYCURSOR - SCNG(yy_text);
4354
17
#line 2011 "Zend/zend_language_scanner.l"
4355
17
    {
4356
  /* The +/- 2 skips "0b" */
4357
17
  size_t len = yyleng - 2;
4358
17
  char *end, *bin = yytext + 2;
4359
17
  bool contains_underscores;
4360
4361
  /* Skip any leading 0s */
4362
119
  while (len > 0 && (*bin == '0' || *bin == '_')) {
4363
102
    ++bin;
4364
102
    --len;
4365
102
  }
4366
4367
17
  contains_underscores = (memchr(bin, '_', len) != NULL);
4368
4369
17
  if (contains_underscores) {
4370
0
    bin = estrndup(bin, len);
4371
0
    strip_underscores(bin, &len);
4372
0
  }
4373
4374
17
  if (len < SIZEOF_ZEND_LONG * 8) {
4375
17
    if (len == 0) {
4376
6
      ZVAL_LONG(zendlval, 0);
4377
11
    } else {
4378
11
      errno = 0;
4379
11
      ZVAL_LONG(zendlval, ZEND_STRTOL(bin, &end, 2));
4380
11
      ZEND_ASSERT(!errno && end == bin + len);
4381
11
    }
4382
17
    if (contains_underscores) {
4383
0
      efree(bin);
4384
0
    }
4385
17
    RETURN_TOKEN_WITH_VAL(T_LNUMBER);
4386
17
  } else {
4387
0
    ZVAL_DOUBLE(zendlval, zend_bin_strtod(bin, (const char **)&end));
4388
    /* errno isn't checked since we allow HUGE_VAL/INF overflow */
4389
0
    ZEND_ASSERT(end == bin + len);
4390
0
    if (contains_underscores) {
4391
0
      efree(bin);
4392
0
    }
4393
0
    RETURN_TOKEN_WITH_VAL(T_DNUMBER);
4394
0
  }
4395
17
}
4396
0
#line 4397 "Zend/zend_language_scanner.c"
4397
86
yy252:
4398
86
    YYDEBUG(252, *YYCURSOR);
4399
86
    ++YYCURSOR;
4400
86
    YYFILL(1);
4401
86
    yych = *YYCURSOR;
4402
86
    if (yych <= '/') goto yy86;
4403
85
    if (yych >= ':') goto yy86;
4404
556
yy253:
4405
556
    YYDEBUG(253, *YYCURSOR);
4406
556
    yyaccept = 5;
4407
556
    YYMARKER = ++YYCURSOR;
4408
556
    YYFILL(1);
4409
556
    yych = *YYCURSOR;
4410
556
    YYDEBUG(254, *YYCURSOR);
4411
556
    if (yych <= '/') goto yy125;
4412
481
    if (yych <= '9') goto yy253;
4413
153
    if (yych == '_') goto yy252;
4414
123
    goto yy125;
4415
123
yy255:
4416
53
    YYDEBUG(255, *YYCURSOR);
4417
53
    yyaccept = 15;
4418
53
    YYMARKER = ++YYCURSOR;
4419
53
    YYFILL(1);
4420
53
    yych = *YYCURSOR;
4421
53
    YYDEBUG(256, *YYCURSOR);
4422
53
    if (yybm[0+yych] & 16) {
4423
36
      goto yy255;
4424
36
    }
4425
17
    if (yych == '_') goto yy136;
4426
17
yy257:
4427
17
    YYDEBUG(257, *YYCURSOR);
4428
17
    yyleng = YYCURSOR - SCNG(yy_text);
4429
17
#line 2053 "Zend/zend_language_scanner.l"
4430
17
    {
4431
  /* The +/- 2 skips "0o" */
4432
17
  size_t len = yyleng - 2;
4433
17
  char *end, *octal = yytext + 2;
4434
17
  bool contains_underscores = (memchr(octal, '_', len) != NULL);
4435
4436
  /* Skip any leading 0s */
4437
42
  while (len > 0 && (*octal == '0' || *octal == '_')) {
4438
25
    ++octal;
4439
25
    --len;
4440
25
  }
4441
4442
17
  if (len == 0) {
4443
13
    ZVAL_LONG(zendlval, 0);
4444
13
    RETURN_TOKEN_WITH_VAL(T_LNUMBER);
4445
13
  }
4446
4447
4
  if (contains_underscores) {
4448
0
    octal = estrndup(octal, len);
4449
0
    strip_underscores(octal, &len);
4450
0
  }
4451
4452
4
  errno = 0;
4453
4454
4
  ZVAL_LONG(zendlval, ZEND_STRTOL(octal, &end, 8));
4455
4456
4
  ZEND_ASSERT(end == octal + len);
4457
4458
4
  if (!errno) {
4459
4
    if (contains_underscores) {
4460
0
      efree(octal);
4461
0
    }
4462
4
    RETURN_TOKEN_WITH_VAL(T_LNUMBER);
4463
4
  }
4464
4465
  /* Overflow */
4466
0
  ZEND_ASSERT(errno == ERANGE);
4467
  /* Reset errno */
4468
0
  errno = 0;
4469
4470
  /* zend_oct_strtod skips leading '0' */
4471
0
  ZVAL_DOUBLE(zendlval, zend_oct_strtod(octal, (const char **)&end));
4472
0
  ZEND_ASSERT(!errno);
4473
0
  ZEND_ASSERT(end == octal + len);
4474
0
  if (contains_underscores) {
4475
0
    efree(octal);
4476
0
  }
4477
0
  RETURN_TOKEN_WITH_VAL(T_DNUMBER);
4478
0
}
4479
0
#line 4480 "Zend/zend_language_scanner.c"
4480
500
yy258:
4481
500
    YYDEBUG(258, *YYCURSOR);
4482
500
    yyaccept = 16;
4483
500
    YYMARKER = ++YYCURSOR;
4484
500
    YYFILL(1);
4485
500
    yych = *YYCURSOR;
4486
500
    YYDEBUG(259, *YYCURSOR);
4487
500
    if (yybm[0+yych] & 32) {
4488
439
      goto yy258;
4489
439
    }
4490
61
    if (yych == '_') goto yy137;
4491
51
yy260:
4492
51
    YYDEBUG(260, *YYCURSOR);
4493
51
    yyleng = YYCURSOR - SCNG(yy_text);
4494
51
#line 2166 "Zend/zend_language_scanner.l"
4495
51
    {
4496
  /* The +/- 2 skips "0x" */
4497
51
  size_t len = yyleng - 2;
4498
51
  char *end, *hex = yytext + 2;
4499
51
  bool contains_underscores;
4500
4501
  /* Skip any leading 0s */
4502
96
  while (len > 0 && (*hex == '0' || *hex == '_')) {
4503
45
    ++hex;
4504
45
    --len;
4505
45
  }
4506
4507
51
  contains_underscores = (memchr(hex, '_', len) != NULL);
4508
4509
51
  if (contains_underscores) {
4510
9
    hex = estrndup(hex, len);
4511
9
    strip_underscores(hex, &len);
4512
9
  }
4513
4514
51
  if (len < SIZEOF_ZEND_LONG * 2 || (len == SIZEOF_ZEND_LONG * 2 && *hex <= '7')) {
4515
34
    if (len == 0) {
4516
11
      ZVAL_LONG(zendlval, 0);
4517
23
    } else {
4518
23
      errno = 0;
4519
23
      ZVAL_LONG(zendlval, ZEND_STRTOL(hex, &end, 16));
4520
23
      ZEND_ASSERT(!errno && end == hex + len);
4521
23
    }
4522
34
    if (contains_underscores) {
4523
7
      efree(hex);
4524
7
    }
4525
34
    RETURN_TOKEN_WITH_VAL(T_LNUMBER);
4526
34
  } else {
4527
17
    ZVAL_DOUBLE(zendlval, zend_hex_strtod(hex, (const char **)&end));
4528
    /* errno isn't checked since we allow HUGE_VAL/INF overflow */
4529
17
    ZEND_ASSERT(end == hex + len);
4530
17
    if (contains_underscores) {
4531
2
      efree(hex);
4532
2
    }
4533
17
    RETURN_TOKEN_WITH_VAL(T_DNUMBER);
4534
17
  }
4535
51
}
4536
0
#line 4537 "Zend/zend_language_scanner.c"
4537
25.5k
yy261:
4538
25.5k
    YYDEBUG(261, *YYCURSOR);
4539
25.5k
    ++YYCURSOR;
4540
25.5k
    YYFILL(2);
4541
25.5k
    yych = *YYCURSOR;
4542
25.5k
    YYDEBUG(262, *YYCURSOR);
4543
25.5k
    if (yych <= '\'') {
4544
895
      if (yych <= ' ') {
4545
445
        if (yych == '\t') goto yy261;
4546
422
        if (yych <= 0x1F) goto yy86;
4547
117
        goto yy261;
4548
450
      } else {
4549
450
        if (yych == '"') goto yy370;
4550
290
        if (yych <= '&') goto yy86;
4551
193
        goto yy371;
4552
290
      }
4553
24.6k
    } else {
4554
24.6k
      if (yych <= '_') {
4555
7.61k
        if (yych <= '@') goto yy86;
4556
4.32k
        if (yych <= 'Z') goto yy372;
4557
46
        if (yych <= '^') goto yy86;
4558
31
        goto yy372;
4559
17.0k
      } else {
4560
17.0k
        if (yych <= '`') goto yy86;
4561
17.0k
        if (yych <= 'z') goto yy372;
4562
1.05k
        if (yych <= 0x7F) goto yy86;
4563
978
        goto yy372;
4564
1.05k
      }
4565
24.6k
    }
4566
179
yy263:
4567
179
    YYDEBUG(263, *YYCURSOR);
4568
179
    ++YYCURSOR;
4569
179
    YYDEBUG(264, *YYCURSOR);
4570
179
    yyleng = YYCURSOR - SCNG(yy_text);
4571
179
#line 1894 "Zend/zend_language_scanner.l"
4572
179
    {
4573
179
  RETURN_TOKEN(T_SL_EQUAL);
4574
179
}
4575
0
#line 4576 "Zend/zend_language_scanner.c"
4576
6
yy265:
4577
6
    YYDEBUG(265, *YYCURSOR);
4578
6
    ++YYCURSOR;
4579
6
    YYDEBUG(266, *YYCURSOR);
4580
6
    yyleng = YYCURSOR - SCNG(yy_text);
4581
6
#line 1850 "Zend/zend_language_scanner.l"
4582
6
    {
4583
6
  RETURN_TOKEN(T_SPACESHIP);
4584
6
}
4585
0
#line 4586 "Zend/zend_language_scanner.c"
4586
77
yy267:
4587
77
    YYDEBUG(267, *YYCURSOR);
4588
77
    ++YYCURSOR;
4589
77
    YYDEBUG(268, *YYCURSOR);
4590
77
    yyleng = YYCURSOR - SCNG(yy_text);
4591
77
#line 1834 "Zend/zend_language_scanner.l"
4592
77
    {
4593
77
  RETURN_TOKEN(T_IS_IDENTICAL);
4594
77
}
4595
0
#line 4596 "Zend/zend_language_scanner.c"
4596
9
yy269:
4597
9
    YYDEBUG(269, *YYCURSOR);
4598
9
    ++YYCURSOR;
4599
9
    YYDEBUG(270, *YYCURSOR);
4600
9
    yyleng = YYCURSOR - SCNG(yy_text);
4601
9
#line 1898 "Zend/zend_language_scanner.l"
4602
9
    {
4603
9
  RETURN_TOKEN(T_SR_EQUAL);
4604
9
}
4605
0
#line 4606 "Zend/zend_language_scanner.c"
4606
86
yy271:
4607
86
    YYDEBUG(271, *YYCURSOR);
4608
86
    ++YYCURSOR;
4609
86
    YYDEBUG(272, *YYCURSOR);
4610
86
    yyleng = YYCURSOR - SCNG(yy_text);
4611
86
#line 1592 "Zend/zend_language_scanner.l"
4612
86
    {
4613
86
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
4614
86
  RETURN_TOKEN(T_NULLSAFE_OBJECT_OPERATOR);
4615
86
}
4616
0
#line 4617 "Zend/zend_language_scanner.c"
4617
199
yy273:
4618
199
    YYDEBUG(273, *YYCURSOR);
4619
199
    ++YYCURSOR;
4620
199
    goto yy156;
4621
12
yy274:
4622
12
    YYDEBUG(274, *YYCURSOR);
4623
12
    yych = *++YYCURSOR;
4624
12
    if (yych == '\n') goto yy273;
4625
3
    goto yy156;
4626
36
yy275:
4627
36
    YYDEBUG(275, *YYCURSOR);
4628
36
    ++YYCURSOR;
4629
36
    YYDEBUG(276, *YYCURSOR);
4630
36
    yyleng = YYCURSOR - SCNG(yy_text);
4631
36
#line 1914 "Zend/zend_language_scanner.l"
4632
36
    {
4633
36
  RETURN_TOKEN(T_COALESCE_EQUAL);
4634
36
}
4635
0
#line 4636 "Zend/zend_language_scanner.c"
4636
133
yy277:
4637
133
    YYDEBUG(277, *YYCURSOR);
4638
133
    yyaccept = 4;
4639
133
    yych = *(YYMARKER = ++YYCURSOR);
4640
133
    if (yych == 'T') goto yy374;
4641
131
    if (yych == 't') goto yy374;
4642
2
    goto yy48;
4643
61
yy278:
4644
61
    YYDEBUG(278, *YYCURSOR);
4645
61
    yyaccept = 17;
4646
61
    yych = *(YYMARKER = ++YYCURSOR);
4647
61
    if (yybm[256+yych] & 128) {
4648
13
      goto yy47;
4649
13
    }
4650
48
    if (yych == '\\') goto yy164;
4651
41
yy279:
4652
41
    YYDEBUG(279, *YYCURSOR);
4653
41
    yyleng = YYCURSOR - SCNG(yy_text);
4654
41
#line 1934 "Zend/zend_language_scanner.l"
4655
41
    {
4656
41
  RETURN_TOKEN_WITH_IDENT(T_LOGICAL_AND);
4657
41
}
4658
0
#line 4659 "Zend/zend_language_scanner.c"
4659
717
yy280:
4660
717
    YYDEBUG(280, *YYCURSOR);
4661
717
    yyaccept = 4;
4662
717
    yych = *(YYMARKER = ++YYCURSOR);
4663
717
    if (yych == 'A') goto yy375;
4664
715
    if (yych == 'a') goto yy375;
4665
8
    goto yy48;
4666
1.45k
yy281:
4667
1.45k
    YYDEBUG(281, *YYCURSOR);
4668
1.45k
    yyaccept = 18;
4669
1.45k
    YYMARKER = ++YYCURSOR;
4670
1.45k
    YYFILL(1);
4671
1.45k
    yych = *YYCURSOR;
4672
1.45k
    YYDEBUG(282, *YYCURSOR);
4673
1.45k
    if (yych <= '\\') {
4674
596
      if (yych <= '@') {
4675
309
        if (yych <= '/') goto yy283;
4676
180
        if (yych <= '9') goto yy281;
4677
287
      } else {
4678
287
        if (yych <= 'Z') goto yy281;
4679
62
        if (yych >= '\\') goto yy164;
4680
62
      }
4681
854
    } else {
4682
854
      if (yych <= '`') {
4683
34
        if (yych == '_') goto yy281;
4684
820
      } else {
4685
820
        if (yych <= 'z') goto yy281;
4686
330
        if (yych >= 0x80) goto yy281;
4687
330
      }
4688
854
    }
4689
242
yy283:
4690
242
    YYDEBUG(283, *YYCURSOR);
4691
242
    yyleng = YYCURSOR - SCNG(yy_text);
4692
242
#line 2443 "Zend/zend_language_scanner.l"
4693
242
    {
4694
242
  RETURN_TOKEN_WITH_STR(T_NAME_QUALIFIED, 0);
4695
242
}
4696
0
#line 4697 "Zend/zend_language_scanner.c"
4697
247
yy284:
4698
247
    YYDEBUG(284, *YYCURSOR);
4699
247
    yych = *++YYCURSOR;
4700
247
    if (yych == '<') goto yy261;
4701
48
    goto yy86;
4702
51
yy285:
4703
51
    YYDEBUG(285, *YYCURSOR);
4704
51
    yyaccept = 4;
4705
51
    yych = *(YYMARKER = ++YYCURSOR);
4706
51
    if (yych == 'A') goto yy376;
4707
51
    if (yych == 'a') goto yy376;
4708
15
    goto yy48;
4709
249
yy286:
4710
249
    YYDEBUG(286, *YYCURSOR);
4711
249
    yyaccept = 4;
4712
249
    yych = *(YYMARKER = ++YYCURSOR);
4713
249
    if (yych == 'L') goto yy377;
4714
248
    if (yych == 'l') goto yy377;
4715
142
    goto yy48;
4716
162
yy287:
4717
162
    YYDEBUG(287, *YYCURSOR);
4718
162
    yyaccept = 4;
4719
162
    yych = *(YYMARKER = ++YYCURSOR);
4720
162
    if (yych == 'E') goto yy378;
4721
162
    if (yych == 'e') goto yy378;
4722
6
    goto yy48;
4723
203
yy288:
4724
203
    YYDEBUG(288, *YYCURSOR);
4725
203
    yyaccept = 4;
4726
203
    yych = *(YYMARKER = ++YYCURSOR);
4727
203
    if (yych == 'C') goto yy380;
4728
203
    if (yych == 'c') goto yy380;
4729
3
    goto yy48;
4730
1.94k
yy289:
4731
1.94k
    YYDEBUG(289, *YYCURSOR);
4732
1.94k
    yyaccept = 4;
4733
1.94k
    yych = *(YYMARKER = ++YYCURSOR);
4734
1.94k
    if (yych == 'S') goto yy381;
4735
1.94k
    if (yych == 's') goto yy381;
4736
188
    goto yy48;
4737
188
yy290:
4738
171
    YYDEBUG(290, *YYCURSOR);
4739
171
    yyaccept = 4;
4740
171
    yych = *(YYMARKER = ++YYCURSOR);
4741
171
    if (yych == 'N') goto yy382;
4742
171
    if (yych == 'n') goto yy382;
4743
122
    goto yy48;
4744
799
yy291:
4745
799
    YYDEBUG(291, *YYCURSOR);
4746
799
    yyaccept = 4;
4747
799
    yych = *(YYMARKER = ++YYCURSOR);
4748
799
    if (yych <= 'T') {
4749
58
      if (yych <= 'R') goto yy48;
4750
45
      if (yych <= 'S') goto yy383;
4751
13
      goto yy384;
4752
741
    } else {
4753
741
      if (yych <= 'r') goto yy48;
4754
728
      if (yych <= 's') goto yy383;
4755
76
      if (yych <= 't') goto yy384;
4756
33
      goto yy48;
4757
76
    }
4758
227
yy292:
4759
227
    YYDEBUG(292, *YYCURSOR);
4760
227
    yyaccept = 4;
4761
227
    yych = *(YYMARKER = ++YYCURSOR);
4762
227
    if (yych == 'L') goto yy385;
4763
227
    if (yych == 'l') goto yy385;
4764
3
    goto yy48;
4765
93
yy293:
4766
93
    YYDEBUG(293, *YYCURSOR);
4767
93
    yyaccept = 4;
4768
93
    yych = *(YYMARKER = ++YYCURSOR);
4769
93
    if (yych == 'A') goto yy386;
4770
93
    if (yych == 'a') goto yy386;
4771
74
    goto yy48;
4772
74
yy294:
4773
12
    YYDEBUG(294, *YYCURSOR);
4774
12
    yyaccept = 19;
4775
12
    yych = *(YYMARKER = ++YYCURSOR);
4776
12
    if (yybm[256+yych] & 128) {
4777
2
      goto yy47;
4778
2
    }
4779
10
    if (yych == '\\') goto yy164;
4780
10
yy295:
4781
10
    YYDEBUG(295, *YYCURSOR);
4782
10
    yyleng = YYCURSOR - SCNG(yy_text);
4783
10
#line 1403 "Zend/zend_language_scanner.l"
4784
10
    {
4785
10
  RETURN_TOKEN_WITH_IDENT(T_EXIT);
4786
10
}
4787
0
#line 4788 "Zend/zend_language_scanner.c"
4788
1.39k
yy296:
4789
1.39k
    YYDEBUG(296, *YYCURSOR);
4790
1.39k
    yyaccept = 4;
4791
1.39k
    yych = *(YYMARKER = ++YYCURSOR);
4792
1.39k
    if (yych == 'O') goto yy387;
4793
1.38k
    if (yych == 'o') goto yy387;
4794
114
    goto yy48;
4795
114
yy297:
4796
53
    YYDEBUG(297, *YYCURSOR);
4797
53
    yyaccept = 4;
4798
53
    yych = *(YYMARKER = ++YYCURSOR);
4799
53
    if (yych == 'E') goto yy389;
4800
53
    if (yych == 'e') goto yy389;
4801
1
    goto yy48;
4802
97
yy298:
4803
97
    YYDEBUG(298, *YYCURSOR);
4804
97
    yyaccept = 4;
4805
97
    yych = *(YYMARKER = ++YYCURSOR);
4806
97
    if (yych == 'T') goto yy391;
4807
88
    if (yych == 't') goto yy391;
4808
1
    goto yy48;
4809
227
yy299:
4810
227
    YYDEBUG(299, *YYCURSOR);
4811
227
    yyaccept = 4;
4812
227
    yych = *(YYMARKER = ++YYCURSOR);
4813
227
    switch (yych) {
4814
5
    case 'D':
4815
47
    case 'd': goto yy392;
4816
5
    case 'F':
4817
86
    case 'f': goto yy393;
4818
15
    case 'I':
4819
22
    case 'i': goto yy394;
4820
24
    case 'S':
4821
34
    case 's': goto yy395;
4822
2
    case 'W':
4823
4
    case 'w': goto yy396;
4824
34
    default:  goto yy48;
4825
227
    }
4826
1.47k
yy300:
4827
1.47k
    YYDEBUG(300, *YYCURSOR);
4828
1.47k
    yyaccept = 4;
4829
1.47k
    yych = *(YYMARKER = ++YYCURSOR);
4830
1.47k
    if (yych == 'M') goto yy397;
4831
1.39k
    if (yych == 'm') goto yy397;
4832
95
    goto yy48;
4833
95
yy301:
4834
86
    YYDEBUG(301, *YYCURSOR);
4835
86
    yyaccept = 4;
4836
86
    yych = *(YYMARKER = ++YYCURSOR);
4837
86
    if (yych == 'L') goto yy398;
4838
86
    if (yych == 'l') goto yy398;
4839
6
    goto yy48;
4840
31
yy302:
4841
31
    YYDEBUG(302, *YYCURSOR);
4842
31
    yyaccept = 4;
4843
31
    yych = *(YYMARKER = ++YYCURSOR);
4844
31
    if (yych == 'T') goto yy400;
4845
28
    if (yych == 't') goto yy400;
4846
10
    goto yy48;
4847
363
yy303:
4848
363
    YYDEBUG(303, *YYCURSOR);
4849
363
    yyaccept = 4;
4850
363
    yych = *(YYMARKER = ++YYCURSOR);
4851
363
    if (yych == 'E') goto yy402;
4852
357
    if (yych == 'e') goto yy402;
4853
26
    goto yy48;
4854
204
yy304:
4855
204
    YYDEBUG(304, *YYCURSOR);
4856
204
    yyaccept = 4;
4857
204
    yych = *(YYMARKER = ++YYCURSOR);
4858
204
    if (yych == 'A') goto yy403;
4859
134
    if (yych == 'a') goto yy403;
4860
7
    goto yy48;
4861
1.49k
yy305:
4862
1.49k
    YYDEBUG(305, *YYCURSOR);
4863
1.49k
    yyaccept = 20;
4864
1.49k
    yych = *(YYMARKER = ++YYCURSOR);
4865
1.49k
    if (yych <= '\\') {
4866
1.25k
      if (yych <= 'D') {
4867
1.24k
        if (yych <= '/') goto yy306;
4868
883
        if (yych <= '9') goto yy47;
4869
875
        if (yych >= 'A') goto yy47;
4870
875
      } else {
4871
9
        if (yych <= 'E') goto yy404;
4872
5
        if (yych <= 'Z') goto yy47;
4873
1
        if (yych >= '\\') goto yy164;
4874
1
      }
4875
1.25k
    } else {
4876
236
      if (yych <= 'd') {
4877
10
        if (yych == '_') goto yy47;
4878
10
        if (yych >= 'a') goto yy47;
4879
226
      } else {
4880
226
        if (yych <= 'e') goto yy404;
4881
20
        if (yych <= 'z') goto yy47;
4882
7
        if (yych >= 0x80) goto yy47;
4883
7
      }
4884
236
    }
4885
1.23k
yy306:
4886
1.23k
    YYDEBUG(306, *YYCURSOR);
4887
1.23k
    yyleng = YYCURSOR - SCNG(yy_text);
4888
1.23k
#line 1482 "Zend/zend_language_scanner.l"
4889
1.23k
    {
4890
1.23k
  RETURN_TOKEN_WITH_IDENT(T_FOR);
4891
1.23k
}
4892
0
#line 4893 "Zend/zend_language_scanner.c"
4893
5.13k
yy307:
4894
5.13k
    YYDEBUG(307, *YYCURSOR);
4895
5.13k
    yyaccept = 4;
4896
5.13k
    yych = *(YYMARKER = ++YYCURSOR);
4897
5.13k
    if (yych == 'C') goto yy405;
4898
5.12k
    if (yych == 'c') goto yy405;
4899
16
    goto yy48;
4900
79
yy308:
4901
79
    YYDEBUG(308, *YYCURSOR);
4902
79
    yyaccept = 4;
4903
79
    yych = *(YYMARKER = ++YYCURSOR);
4904
79
    if (yych == 'B') goto yy406;
4905
43
    if (yych == 'b') goto yy406;
4906
0
    goto yy48;
4907
72
yy309:
4908
72
    YYDEBUG(309, *YYCURSOR);
4909
72
    yyaccept = 4;
4910
72
    yych = *(YYMARKER = ++YYCURSOR);
4911
72
    if (yych == 'O') goto yy407;
4912
72
    if (yych == 'o') goto yy407;
4913
12
    goto yy48;
4914
374
yy310:
4915
374
    YYDEBUG(310, *YYCURSOR);
4916
374
    yyaccept = 4;
4917
374
    yych = *(YYMARKER = ++YYCURSOR);
4918
374
    if (yych == 'L') goto yy409;
4919
369
    if (yych == 'l') goto yy409;
4920
54
    goto yy48;
4921
67
yy311:
4922
67
    YYDEBUG(311, *YYCURSOR);
4923
67
    yyaccept = 4;
4924
67
    yych = *(YYMARKER = ++YYCURSOR);
4925
67
    if (yych == 'L') goto yy410;
4926
54
    if (yych == 'l') goto yy410;
4927
16
    goto yy48;
4928
60
yy312:
4929
60
    YYDEBUG(312, *YYCURSOR);
4930
60
    yyaccept = 4;
4931
60
    yych = *(YYMARKER = ++YYCURSOR);
4932
60
    if (yych == 'T') goto yy411;
4933
53
    if (yych == 't') goto yy411;
4934
3
    goto yy48;
4935
559
yy313:
4936
559
    YYDEBUG(313, *YYCURSOR);
4937
559
    yyaccept = 4;
4938
559
    yych = *(YYMARKER = ++YYCURSOR);
4939
559
    if (yych == 'E') goto yy412;
4940
545
    if (yych == 'e') goto yy412;
4941
309
    goto yy48;
4942
309
yy314:
4943
70
    YYDEBUG(314, *YYCURSOR);
4944
70
    yyaccept = 4;
4945
70
    yych = *(YYMARKER = ++YYCURSOR);
4946
70
    if (yych == 'E') goto yy413;
4947
69
    if (yych == 'e') goto yy413;
4948
15
    goto yy48;
4949
99
yy315:
4950
99
    YYDEBUG(315, *YYCURSOR);
4951
99
    yyaccept = 4;
4952
99
    yych = *(YYMARKER = ++YYCURSOR);
4953
99
    if (yych == 'T') goto yy414;
4954
98
    if (yych == 't') goto yy414;
4955
0
    goto yy48;
4956
72
yy316:
4957
72
    YYDEBUG(316, *YYCURSOR);
4958
72
    yyaccept = 4;
4959
72
    yych = *(YYMARKER = ++YYCURSOR);
4960
72
    if (yych == 'C') goto yy416;
4961
72
    if (yych == 'c') goto yy416;
4962
12
    goto yy48;
4963
371
yy317:
4964
371
    YYDEBUG(317, *YYCURSOR);
4965
371
    yyaccept = 4;
4966
371
    yych = *(YYMARKER = ++YYCURSOR);
4967
371
    if (yych == 'E') goto yy417;
4968
343
    if (yych == 'e') goto yy417;
4969
20
    goto yy48;
4970
2.56k
yy318:
4971
2.56k
    YYDEBUG(318, *YYCURSOR);
4972
2.56k
    yyaccept = 21;
4973
2.56k
    yych = *(YYMARKER = ++YYCURSOR);
4974
2.56k
    if (yybm[256+yych] & 128) {
4975
7
      goto yy47;
4976
7
    }
4977
2.55k
    if (yych == '\\') goto yy164;
4978
2.54k
yy319:
4979
2.54k
    YYDEBUG(319, *YYCURSOR);
4980
2.54k
    yyleng = YYCURSOR - SCNG(yy_text);
4981
2.54k
#line 1626 "Zend/zend_language_scanner.l"
4982
2.54k
    {
4983
2.54k
  RETURN_TOKEN_WITH_IDENT(T_NEW);
4984
2.54k
}
4985
0
#line 4986 "Zend/zend_language_scanner.c"
4986
960
yy320:
4987
960
    YYDEBUG(320, *YYCURSOR);
4988
960
    yyaccept = 4;
4989
960
    yych = *(YYMARKER = ++YYCURSOR);
4990
960
    if (yych <= 'V') {
4991
12
      if (yych == 'N') goto yy418;
4992
12
      if (yych <= 'U') goto yy48;
4993
0
      goto yy419;
4994
948
    } else {
4995
948
      if (yych <= 'n') {
4996
571
        if (yych <= 'm') goto yy48;
4997
567
        goto yy418;
4998
571
      } else {
4999
377
        if (yych == 'v') goto yy419;
5000
9
        goto yy48;
5001
377
      }
5002
948
    }
5003
128
yy321:
5004
128
    YYDEBUG(321, *YYCURSOR);
5005
128
    yyaccept = 4;
5006
128
    yych = *(YYMARKER = ++YYCURSOR);
5007
128
    if (yych == 'T') goto yy420;
5008
126
    if (yych == 't') goto yy420;
5009
25
    goto yy48;
5010
1.68k
yy322:
5011
1.68k
    YYDEBUG(322, *YYCURSOR);
5012
1.68k
    yyaccept = 4;
5013
1.68k
    yych = *(YYMARKER = ++YYCURSOR);
5014
1.68k
    if (yych == 'L') goto yy421;
5015
1.68k
    if (yych == 'l') goto yy421;
5016
29
    goto yy48;
5017
363
yy323:
5018
363
    YYDEBUG(323, *YYCURSOR);
5019
363
    yyaccept = 4;
5020
363
    yych = *(YYMARKER = ++YYCURSOR);
5021
363
    if (yych == 'D') goto yy422;
5022
360
    if (yych == 'd') goto yy422;
5023
8
    goto yy48;
5024
180
yy324:
5025
180
    YYDEBUG(324, *YYCURSOR);
5026
180
    yyaccept = 4;
5027
180
    yych = *(YYMARKER = ++YYCURSOR);
5028
180
    if (yych == 'U') goto yy423;
5029
180
    if (yych == 'u') goto yy423;
5030
18
    goto yy48;
5031
728
yy325:
5032
728
    YYDEBUG(325, *YYCURSOR);
5033
728
    yyaccept = 4;
5034
728
    yych = *(YYMARKER = ++YYCURSOR);
5035
728
    if (yych == 'U') goto yy424;
5036
728
    if (yych == 'u') goto yy424;
5037
152
    goto yy48;
5038
426
yy326:
5039
426
    YYDEBUG(326, *YYCURSOR);
5040
426
    yyaccept = 4;
5041
426
    yych = *(YYMARKER = ++YYCURSOR);
5042
426
    if (yych == 'T') goto yy425;
5043
426
    if (yych == 't') goto yy425;
5044
153
    goto yy48;
5045
153
yy327:
5046
68
    YYDEBUG(327, *YYCURSOR);
5047
68
    yyaccept = 4;
5048
68
    yych = *(YYMARKER = ++YYCURSOR);
5049
68
    if (yych == 'T') goto yy426;
5050
66
    if (yych == 't') goto yy426;
5051
19
    goto yy48;
5052
110
yy328:
5053
110
    YYDEBUG(328, *YYCURSOR);
5054
110
    yyaccept = 4;
5055
110
    yych = *(YYMARKER = ++YYCURSOR);
5056
110
    if (yych == 'O') goto yy427;
5057
107
    if (yych == 'o') goto yy427;
5058
7
    goto yy48;
5059
351
yy329:
5060
351
    YYDEBUG(329, *YYCURSOR);
5061
351
    yyaccept = 4;
5062
351
    yych = *(YYMARKER = ++YYCURSOR);
5063
351
    if (yych == 'I') goto yy428;
5064
205
    if (yych == 'i') goto yy428;
5065
8
    goto yy48;
5066
398
yy330:
5067
398
    YYDEBUG(330, *YYCURSOR);
5068
398
    yyaccept = 22;
5069
398
    yych = *(YYMARKER = ++YYCURSOR);
5070
398
    if (yybm[256+yych] & 128) {
5071
10
      goto yy47;
5072
10
    }
5073
388
    if (yych == '\\') goto yy164;
5074
388
yy331:
5075
388
    YYDEBUG(331, *YYCURSOR);
5076
388
    yyleng = YYCURSOR - SCNG(yy_text);
5077
388
#line 1438 "Zend/zend_language_scanner.l"
5078
388
    {
5079
388
  RETURN_TOKEN_WITH_IDENT(T_TRY);
5080
388
}
5081
0
#line 5082 "Zend/zend_language_scanner.c"
5082
335
yy332:
5083
335
    YYDEBUG(332, *YYCURSOR);
5084
335
    yyaccept = 4;
5085
335
    yych = *(YYMARKER = ++YYCURSOR);
5086
335
    if (yych == 'E') goto yy429;
5087
329
    if (yych == 'e') goto yy429;
5088
105
    goto yy48;
5089
264
yy333:
5090
264
    YYDEBUG(333, *YYCURSOR);
5091
264
    yyaccept = 23;
5092
264
    yych = *(YYMARKER = ++YYCURSOR);
5093
264
    if (yybm[256+yych] & 128) {
5094
1
      goto yy47;
5095
1
    }
5096
263
    if (yych == '\\') goto yy164;
5097
263
yy334:
5098
263
    YYDEBUG(334, *YYCURSOR);
5099
263
    yyleng = YYCURSOR - SCNG(yy_text);
5100
263
#line 1742 "Zend/zend_language_scanner.l"
5101
263
    {
5102
263
  RETURN_TOKEN_WITH_IDENT(T_USE);
5103
263
}
5104
0
#line 5105 "Zend/zend_language_scanner.c"
5105
2.20k
yy335:
5106
2.20k
    YYDEBUG(335, *YYCURSOR);
5107
2.20k
    yyaccept = 24;
5108
2.20k
    yych = *(YYMARKER = ++YYCURSOR);
5109
2.20k
    if (yybm[256+yych] & 128) {
5110
2.17k
      goto yy47;
5111
2.17k
    }
5112
25
    if (yych == '\\') goto yy164;
5113
25
yy336:
5114
25
    YYDEBUG(336, *YYCURSOR);
5115
25
    yyleng = YYCURSOR - SCNG(yy_text);
5116
25
#line 1634 "Zend/zend_language_scanner.l"
5117
25
    {
5118
25
  RETURN_TOKEN_WITH_IDENT(T_VAR);
5119
25
}
5120
0
#line 5121 "Zend/zend_language_scanner.c"
5121
47
yy337:
5122
47
    YYDEBUG(337, *YYCURSOR);
5123
47
    yyaccept = 4;
5124
47
    yych = *(YYMARKER = ++YYCURSOR);
5125
47
    if (yych == 'L') goto yy430;
5126
35
    if (yych == 'l') goto yy430;
5127
2
    goto yy48;
5128
13
yy338:
5129
13
    YYDEBUG(338, *YYCURSOR);
5130
13
    yyaccept = 25;
5131
13
    yych = *(YYMARKER = ++YYCURSOR);
5132
13
    if (yybm[256+yych] & 128) {
5133
0
      goto yy47;
5134
0
    }
5135
13
    if (yych == '\\') goto yy164;
5136
13
yy339:
5137
13
    YYDEBUG(339, *YYCURSOR);
5138
13
    yyleng = YYCURSOR - SCNG(yy_text);
5139
13
#line 1938 "Zend/zend_language_scanner.l"
5140
13
    {
5141
13
  RETURN_TOKEN_WITH_IDENT(T_LOGICAL_XOR);
5142
13
}
5143
0
#line 5144 "Zend/zend_language_scanner.c"
5144
1.27k
yy340:
5145
1.27k
    YYDEBUG(340, *YYCURSOR);
5146
1.27k
    yyaccept = 4;
5147
1.27k
    yych = *(YYMARKER = ++YYCURSOR);
5148
1.27k
    if (yych == 'L') goto yy431;
5149
1.23k
    if (yych == 'l') goto yy431;
5150
24
    goto yy48;
5151
303
yy341:
5152
303
    YYDEBUG(341, *YYCURSOR);
5153
303
    ++YYCURSOR;
5154
303
    YYFILL(1);
5155
303
    yych = *YYCURSOR;
5156
303
    if (yych <= '_') {
5157
119
      if (yych <= '@') goto yy86;
5158
113
      if (yych <= 'Z') goto yy211;
5159
33
      if (yych <= '^') goto yy86;
5160
0
      goto yy211;
5161
184
    } else {
5162
184
      if (yych <= '`') goto yy86;
5163
179
      if (yych <= 'z') goto yy211;
5164
11
      if (yych <= 0x7F) goto yy86;
5165
5
      goto yy211;
5166
11
    }
5167
287
yy342:
5168
287
    YYDEBUG(342, *YYCURSOR);
5169
287
    yyaccept = 4;
5170
287
    yych = *(YYMARKER = ++YYCURSOR);
5171
287
    if (yych == 'L') goto yy432;
5172
206
    if (yych == 'l') goto yy432;
5173
199
    goto yy48;
5174
412
yy343:
5175
412
    YYDEBUG(343, *YYCURSOR);
5176
412
    yyaccept = 4;
5177
412
    yych = *(YYMARKER = ++YYCURSOR);
5178
412
    if (yych == 'I') goto yy433;
5179
365
    if (yych == 'i') goto yy433;
5180
365
    goto yy48;
5181
365
yy344:
5182
76
    YYDEBUG(344, *YYCURSOR);
5183
76
    yyaccept = 4;
5184
76
    yych = *(YYMARKER = ++YYCURSOR);
5185
76
    if (yych <= 'U') {
5186
65
      if (yych == 'I') goto yy434;
5187
27
      if (yych <= 'T') goto yy48;
5188
26
      goto yy435;
5189
27
    } else {
5190
11
      if (yych <= 'i') {
5191
3
        if (yych <= 'h') goto yy48;
5192
3
        goto yy434;
5193
8
      } else {
5194
8
        if (yych == 'u') goto yy435;
5195
8
        goto yy48;
5196
8
      }
5197
11
    }
5198
37
yy345:
5199
37
    YYDEBUG(345, *YYCURSOR);
5200
37
    yyaccept = 4;
5201
37
    yych = *(YYMARKER = ++YYCURSOR);
5202
37
    if (yych == 'A') goto yy436;
5203
14
    if (yych == 'a') goto yy436;
5204
3
    goto yy48;
5205
37
yy346:
5206
37
    YYDEBUG(346, *YYCURSOR);
5207
37
    yyaccept = 4;
5208
37
    yych = *(YYMARKER = ++YYCURSOR);
5209
37
    if (yych == 'I') goto yy437;
5210
12
    if (yych == 'i') goto yy437;
5211
12
    goto yy48;
5212
50
yy347:
5213
50
    YYDEBUG(347, *YYCURSOR);
5214
50
    yyaccept = 4;
5215
50
    yych = *(YYMARKER = ++YYCURSOR);
5216
50
    if (yych == 'E') goto yy438;
5217
14
    if (yych == 'e') goto yy438;
5218
14
    goto yy48;
5219
128
yy348:
5220
128
    YYDEBUG(348, *YYCURSOR);
5221
128
    yyaccept = 4;
5222
128
    yych = *(YYMARKER = ++YYCURSOR);
5223
128
    if (yych == 'A') goto yy439;
5224
69
    if (yych == 'a') goto yy439;
5225
26
    goto yy48;
5226
68
yy349:
5227
68
    YYDEBUG(349, *YYCURSOR);
5228
68
    yyaccept = 4;
5229
68
    yych = *(YYMARKER = ++YYCURSOR);
5230
68
    if (yych == 'R') goto yy440;
5231
11
    if (yych == 'r') goto yy440;
5232
2
    goto yy48;
5233
145
yy350:
5234
145
    YYDEBUG(350, *YYCURSOR);
5235
145
    yyaccept = 4;
5236
145
    yych = *(YYMARKER = ++YYCURSOR);
5237
145
    if (yych == 'R') goto yy441;
5238
44
    if (yych == 'r') goto yy441;
5239
30
    goto yy48;
5240
30
yy351:
5241
4
    YYDEBUG(351, *YYCURSOR);
5242
4
    ++YYCURSOR;
5243
4
    YYFILL(1);
5244
4
    yych = *YYCURSOR;
5245
4
    if (yybm[0+yych] & 2) {
5246
0
      goto yy225;
5247
0
    }
5248
4
    if (yych <= 0x00) goto yy86;
5249
2
    goto yy227;
5250
117
yy352:
5251
117
    YYDEBUG(352, *YYCURSOR);
5252
117
    yyaccept = 26;
5253
117
    YYMARKER = ++YYCURSOR;
5254
117
    YYFILL(1);
5255
117
    yych = *YYCURSOR;
5256
117
    if (yybm[0+yych] & 2) {
5257
50
      goto yy225;
5258
50
    }
5259
67
    if (yych <= 0x00) goto yy89;
5260
67
    goto yy84;
5261
67
yy353:
5262
55
    YYDEBUG(353, *YYCURSOR);
5263
55
    ++YYCURSOR;
5264
55
    YYFILL(1);
5265
55
    yych = *YYCURSOR;
5266
55
    if (yych <= '\f') {
5267
10
      if (yych <= 0x00) goto yy86;
5268
6
      if (yych == '\n') goto yy84;
5269
4
      goto yy225;
5270
45
    } else {
5271
45
      if (yych <= '\r') goto yy84;
5272
45
      if (yych == '.') goto yy442;
5273
0
      goto yy225;
5274
45
    }
5275
395
yy354:
5276
395
    YYDEBUG(354, *YYCURSOR);
5277
395
    ++YYCURSOR;
5278
395
    YYFILL(1);
5279
395
    yych = *YYCURSOR;
5280
395
    if (yych <= '\f') {
5281
56
      if (yych <= 0x00) goto yy86;
5282
53
      if (yych == '\n') goto yy84;
5283
7
      goto yy225;
5284
339
    } else {
5285
339
      if (yych <= '\r') goto yy84;
5286
336
      if (yych == '*') goto yy443;
5287
87
      goto yy225;
5288
336
    }
5289
597
yy355:
5290
597
    YYDEBUG(355, *YYCURSOR);
5291
597
    ++YYCURSOR;
5292
597
    YYFILL(1);
5293
597
    yych = *YYCURSOR;
5294
597
    YYDEBUG(356, *YYCURSOR);
5295
597
    if (yybm[0+yych] & 64) {
5296
367
      goto yy355;
5297
367
    }
5298
230
    if (yych <= 0x00) goto yy86;
5299
220
    if (yych == '/') goto yy84;
5300
130
    goto yy230;
5301
142
yy357:
5302
142
    YYDEBUG(357, *YYCURSOR);
5303
142
    yych = *++YYCURSOR;
5304
142
    if (yych == 'A') goto yy445;
5305
140
    if (yych == 'a') goto yy445;
5306
5
    goto yy86;
5307
5
yy358:
5308
5
    YYDEBUG(358, *YYCURSOR);
5309
5
    yych = *++YYCURSOR;
5310
5
    if (yych == 'A') goto yy446;
5311
5
    if (yych == 'a') goto yy446;
5312
3
    goto yy86;
5313
19
yy359:
5314
19
    YYDEBUG(359, *YYCURSOR);
5315
19
    yych = *++YYCURSOR;
5316
19
    if (yych == 'L') goto yy447;
5317
13
    if (yych == 'l') goto yy447;
5318
2
    goto yy86;
5319
10
yy360:
5320
10
    YYDEBUG(360, *YYCURSOR);
5321
10
    yych = *++YYCURSOR;
5322
10
    if (yych == 'B') goto yy448;
5323
10
    if (yych == 'b') goto yy448;
5324
3
    goto yy86;
5325
14
yy361:
5326
14
    YYDEBUG(361, *YYCURSOR);
5327
14
    yych = *++YYCURSOR;
5328
14
    if (yych == 'A') goto yy449;
5329
14
    if (yych == 'a') goto yy449;
5330
0
    goto yy86;
5331
119
yy362:
5332
119
    YYDEBUG(362, *YYCURSOR);
5333
119
    yych = *++YYCURSOR;
5334
119
    if (yych == 'E') goto yy454;
5335
119
    if (yych == 'e') goto yy454;
5336
87
    goto yy451;
5337
87
yy363:
5338
46
    YYDEBUG(363, *YYCURSOR);
5339
46
    yych = *++YYCURSOR;
5340
46
    if (yych == 'E') goto yy455;
5341
46
    if (yych == 'e') goto yy455;
5342
17
    goto yy86;
5343
17
yy364:
5344
10
    YYDEBUG(364, *YYCURSOR);
5345
10
    yych = *++YYCURSOR;
5346
10
    if (yych == 'L') goto yy456;
5347
9
    if (yych == 'l') goto yy456;
5348
7
    goto yy86;
5349
139
yy365:
5350
139
    YYDEBUG(365, *YYCURSOR);
5351
139
    yych = *++YYCURSOR;
5352
139
    if (yych == 'I') goto yy458;
5353
135
    if (yych == 'i') goto yy458;
5354
35
    goto yy86;
5355
158
yy366:
5356
158
    YYDEBUG(366, *YYCURSOR);
5357
158
    yych = *++YYCURSOR;
5358
158
    if (yych == 'E') goto yy459;
5359
152
    if (yych == 'e') goto yy459;
5360
99
    goto yy86;
5361
99
yy367:
5362
4
    YYDEBUG(367, *YYCURSOR);
5363
4
    yych = *++YYCURSOR;
5364
4
    if (yych == 'D') goto yy460;
5365
4
    if (yych == 'd') goto yy460;
5366
0
    goto yy86;
5367
189
yy368:
5368
189
    YYDEBUG(368, *YYCURSOR);
5369
189
    ++YYCURSOR;
5370
189
    YYFILL(1);
5371
189
    yych = *YYCURSOR;
5372
189
    YYDEBUG(369, *YYCURSOR);
5373
189
    if (yych <= '\f') {
5374
24
      if (yych <= 0x08) goto yy129;
5375
12
      if (yych <= '\n') goto yy368;
5376
4
      goto yy129;
5377
165
    } else {
5378
165
      if (yych <= '\r') goto yy368;
5379
88
      if (yych == ' ') goto yy368;
5380
62
      goto yy129;
5381
88
    }
5382
160
yy370:
5383
160
    YYDEBUG(370, *YYCURSOR);
5384
160
    yych = *++YYCURSOR;
5385
160
    if (yych == '"') goto yy86;
5386
130
    if (yych <= '/') goto yy463;
5387
122
    if (yych <= '9') goto yy86;
5388
121
    goto yy463;
5389
193
yy371:
5390
193
    YYDEBUG(371, *YYCURSOR);
5391
193
    yych = *++YYCURSOR;
5392
193
    if (yych == '\'') goto yy86;
5393
169
    if (yych <= '/') goto yy465;
5394
160
    if (yych <= '9') goto yy86;
5395
160
    goto yy465;
5396
43.2k
yy372:
5397
43.2k
    YYDEBUG(372, *YYCURSOR);
5398
43.2k
    ++YYCURSOR;
5399
43.2k
    YYFILL(2);
5400
43.2k
    yych = *YYCURSOR;
5401
43.2k
    YYDEBUG(373, *YYCURSOR);
5402
43.2k
    if (yych <= '@') {
5403
21.5k
      if (yych <= '\f') {
5404
16.6k
        if (yych == '\n') goto yy466;
5405
443
        goto yy86;
5406
16.6k
      } else {
5407
4.89k
        if (yych <= '\r') goto yy468;
5408
4.79k
        if (yych <= '/') goto yy86;
5409
740
        if (yych <= '9') goto yy372;
5410
205
        goto yy86;
5411
740
      }
5412
21.6k
    } else {
5413
21.6k
      if (yych <= '_') {
5414
4.84k
        if (yych <= 'Z') goto yy372;
5415
90
        if (yych <= '^') goto yy86;
5416
63
        goto yy372;
5417
16.8k
      } else {
5418
16.8k
        if (yych <= '`') goto yy86;
5419
16.8k
        if (yych <= 'z') goto yy372;
5420
2.49k
        if (yych <= 0x7F) goto yy86;
5421
2.32k
        goto yy372;
5422
2.49k
      }
5423
21.6k
    }
5424
131
yy374:
5425
131
    YYDEBUG(374, *YYCURSOR);
5426
131
    yyaccept = 4;
5427
131
    yych = *(YYMARKER = ++YYCURSOR);
5428
131
    if (yych == 'R') goto yy469;
5429
131
    if (yych == 'r') goto yy469;
5430
10
    goto yy48;
5431
709
yy375:
5432
709
    YYDEBUG(375, *YYCURSOR);
5433
709
    yyaccept = 4;
5434
709
    yych = *(YYMARKER = ++YYCURSOR);
5435
709
    if (yych == 'Y') goto yy470;
5436
705
    if (yych == 'y') goto yy470;
5437
4
    goto yy48;
5438
36
yy376:
5439
36
    YYDEBUG(376, *YYCURSOR);
5440
36
    yyaccept = 4;
5441
36
    yych = *(YYMARKER = ++YYCURSOR);
5442
36
    if (yych == 'K') goto yy472;
5443
36
    if (yych == 'k') goto yy472;
5444
3
    goto yy48;
5445
107
yy377:
5446
107
    YYDEBUG(377, *YYCURSOR);
5447
107
    yyaccept = 4;
5448
107
    yych = *(YYMARKER = ++YYCURSOR);
5449
107
    if (yych == 'A') goto yy474;
5450
106
    if (yych == 'a') goto yy474;
5451
77
    goto yy48;
5452
156
yy378:
5453
156
    YYDEBUG(378, *YYCURSOR);
5454
156
    yyaccept = 27;
5455
156
    yych = *(YYMARKER = ++YYCURSOR);
5456
156
    if (yybm[256+yych] & 128) {
5457
9
      goto yy47;
5458
9
    }
5459
147
    if (yych == '\\') goto yy164;
5460
147
yy379:
5461
147
    YYDEBUG(379, *YYCURSOR);
5462
147
    yyleng = YYCURSOR - SCNG(yy_text);
5463
147
#line 1526 "Zend/zend_language_scanner.l"
5464
147
    {
5465
147
  RETURN_TOKEN_WITH_IDENT(T_CASE);
5466
147
}
5467
0
#line 5468 "Zend/zend_language_scanner.c"
5468
200
yy380:
5469
200
    YYDEBUG(380, *YYCURSOR);
5470
200
    yyaccept = 4;
5471
200
    yych = *(YYMARKER = ++YYCURSOR);
5472
200
    if (yych == 'H') goto yy475;
5473
200
    if (yych == 'h') goto yy475;
5474
6
    goto yy48;
5475
1.75k
yy381:
5476
1.75k
    YYDEBUG(381, *YYCURSOR);
5477
1.75k
    yyaccept = 4;
5478
1.75k
    yych = *(YYMARKER = ++YYCURSOR);
5479
1.75k
    if (yych == 'S') goto yy477;
5480
1.75k
    if (yych == 's') goto yy477;
5481
35
    goto yy48;
5482
49
yy382:
5483
49
    YYDEBUG(382, *YYCURSOR);
5484
49
    yyaccept = 4;
5485
49
    yych = *(YYMARKER = ++YYCURSOR);
5486
49
    if (yych == 'E') goto yy479;
5487
39
    if (yych == 'e') goto yy479;
5488
1
    goto yy48;
5489
684
yy383:
5490
684
    YYDEBUG(383, *YYCURSOR);
5491
684
    yyaccept = 4;
5492
684
    yych = *(YYMARKER = ++YYCURSOR);
5493
684
    if (yych == 'T') goto yy481;
5494
653
    if (yych == 't') goto yy481;
5495
9
    goto yy48;
5496
56
yy384:
5497
56
    YYDEBUG(384, *YYCURSOR);
5498
56
    yyaccept = 4;
5499
56
    yych = *(YYMARKER = ++YYCURSOR);
5500
56
    if (yych == 'I') goto yy483;
5501
56
    if (yych == 'i') goto yy483;
5502
50
    goto yy48;
5503
224
yy385:
5504
224
    YYDEBUG(385, *YYCURSOR);
5505
224
    yyaccept = 4;
5506
224
    yych = *(YYMARKER = ++YYCURSOR);
5507
224
    if (yych == 'A') goto yy484;
5508
224
    if (yych == 'a') goto yy484;
5509
2
    goto yy48;
5510
19
yy386:
5511
19
    YYDEBUG(386, *YYCURSOR);
5512
19
    yyaccept = 4;
5513
19
    yych = *(YYMARKER = ++YYCURSOR);
5514
19
    if (yych == 'U') goto yy485;
5515
19
    if (yych == 'u') goto yy485;
5516
1
    goto yy48;
5517
1.28k
yy387:
5518
1.28k
    YYDEBUG(387, *YYCURSOR);
5519
1.28k
    yyaccept = 28;
5520
1.28k
    yych = *(YYMARKER = ++YYCURSOR);
5521
1.28k
    if (yybm[256+yych] & 128) {
5522
73
      goto yy47;
5523
73
    }
5524
1.21k
    if (yych == '\\') goto yy164;
5525
1.20k
yy388:
5526
1.20k
    YYDEBUG(388, *YYCURSOR);
5527
1.20k
    yyleng = YYCURSOR - SCNG(yy_text);
5528
1.20k
#line 1546 "Zend/zend_language_scanner.l"
5529
1.20k
    {
5530
1.20k
  RETURN_TOKEN_WITH_IDENT(T_ECHO);
5531
1.20k
}
5532
0
#line 5533 "Zend/zend_language_scanner.c"
5533
52
yy389:
5534
52
    YYDEBUG(389, *YYCURSOR);
5535
52
    yyaccept = 29;
5536
52
    yych = *(YYMARKER = ++YYCURSOR);
5537
52
    if (yych <= '\\') {
5538
18
      if (yych <= 'H') {
5539
17
        if (yych <= '/') goto yy390;
5540
11
        if (yych <= '9') goto yy47;
5541
3
        if (yych >= 'A') goto yy47;
5542
3
      } else {
5543
1
        if (yych <= 'I') goto yy486;
5544
1
        if (yych <= 'Z') goto yy47;
5545
0
        if (yych >= '\\') goto yy164;
5546
0
      }
5547
34
    } else {
5548
34
      if (yych <= 'h') {
5549
9
        if (yych == '_') goto yy47;
5550
9
        if (yych >= 'a') goto yy47;
5551
25
      } else {
5552
25
        if (yych <= 'i') goto yy486;
5553
18
        if (yych <= 'z') goto yy47;
5554
18
        if (yych >= 0x80) goto yy47;
5555
18
      }
5556
34
    }
5557
26
yy390:
5558
26
    YYDEBUG(390, *YYCURSOR);
5559
26
    yyleng = YYCURSOR - SCNG(yy_text);
5560
26
#line 1466 "Zend/zend_language_scanner.l"
5561
26
    {
5562
26
  RETURN_TOKEN_WITH_IDENT(T_ELSE);
5563
26
}
5564
0
#line 5565 "Zend/zend_language_scanner.c"
5565
96
yy391:
5566
96
    YYDEBUG(391, *YYCURSOR);
5567
96
    yyaccept = 4;
5568
96
    yych = *(YYMARKER = ++YYCURSOR);
5569
96
    if (yych == 'Y') goto yy487;
5570
95
    if (yych == 'y') goto yy487;
5571
9
    goto yy48;
5572
47
yy392:
5573
47
    YYDEBUG(392, *YYCURSOR);
5574
47
    yyaccept = 4;
5575
47
    yych = *(YYMARKER = ++YYCURSOR);
5576
47
    if (yych == 'E') goto yy489;
5577
43
    if (yych == 'e') goto yy489;
5578
28
    goto yy48;
5579
86
yy393:
5580
86
    YYDEBUG(393, *YYCURSOR);
5581
86
    yyaccept = 4;
5582
86
    yych = *(YYMARKER = ++YYCURSOR);
5583
86
    if (yych == 'O') goto yy490;
5584
73
    if (yych == 'o') goto yy490;
5585
8
    goto yy48;
5586
22
yy394:
5587
22
    YYDEBUG(394, *YYCURSOR);
5588
22
    yyaccept = 4;
5589
22
    yych = *(YYMARKER = ++YYCURSOR);
5590
22
    if (yych == 'F') goto yy491;
5591
21
    if (yych == 'f') goto yy491;
5592
15
    goto yy48;
5593
34
yy395:
5594
34
    YYDEBUG(395, *YYCURSOR);
5595
34
    yyaccept = 4;
5596
34
    yych = *(YYMARKER = ++YYCURSOR);
5597
34
    if (yych == 'W') goto yy493;
5598
34
    if (yych == 'w') goto yy493;
5599
34
    goto yy48;
5600
34
yy396:
5601
4
    YYDEBUG(396, *YYCURSOR);
5602
4
    yyaccept = 4;
5603
4
    yych = *(YYMARKER = ++YYCURSOR);
5604
4
    if (yych == 'H') goto yy494;
5605
2
    if (yych == 'h') goto yy494;
5606
2
    goto yy48;
5607
1.38k
yy397:
5608
1.38k
    YYDEBUG(397, *YYCURSOR);
5609
1.38k
    yyaccept = 4;
5610
1.38k
    yych = *(YYMARKER = ++YYCURSOR);
5611
1.38k
    if (yych <= 0x1F) {
5612
1.01k
      if (yych <= '\n') {
5613
31
        if (yych <= 0x08) goto yy48;
5614
19
        goto yy495;
5615
988
      } else {
5616
988
        if (yych == '\r') goto yy495;
5617
25
        goto yy48;
5618
988
      }
5619
1.01k
    } else {
5620
363
      if (yych <= '#') {
5621
284
        if (yych <= ' ') goto yy495;
5622
39
        if (yych <= '"') goto yy48;
5623
28
        goto yy497;
5624
79
      } else {
5625
79
        if (yych == '/') goto yy498;
5626
50
        goto yy48;
5627
79
      }
5628
363
    }
5629
80
yy398:
5630
80
    YYDEBUG(398, *YYCURSOR);
5631
80
    yyaccept = 30;
5632
80
    yych = *(YYMARKER = ++YYCURSOR);
5633
80
    if (yybm[256+yych] & 128) {
5634
3
      goto yy47;
5635
3
    }
5636
77
    if (yych == '\\') goto yy164;
5637
77
yy399:
5638
77
    YYDEBUG(399, *YYCURSOR);
5639
77
    yyleng = YYCURSOR - SCNG(yy_text);
5640
77
#line 1718 "Zend/zend_language_scanner.l"
5641
77
    {
5642
77
  RETURN_TOKEN_WITH_IDENT(T_EVAL);
5643
77
}
5644
0
#line 5645 "Zend/zend_language_scanner.c"
5645
21
yy400:
5646
21
    YYDEBUG(400, *YYCURSOR);
5647
21
    yyaccept = 31;
5648
21
    yych = *(YYMARKER = ++YYCURSOR);
5649
21
    if (yybm[256+yych] & 128) {
5650
0
      goto yy47;
5651
0
    }
5652
21
    if (yych == '\\') goto yy164;
5653
21
yy401:
5654
21
    YYDEBUG(401, *YYCURSOR);
5655
21
    yyleng = YYCURSOR - SCNG(yy_text);
5656
21
#line 1399 "Zend/zend_language_scanner.l"
5657
21
    {
5658
21
  RETURN_TOKEN_WITH_IDENT(T_EXIT);
5659
21
}
5660
0
#line 5661 "Zend/zend_language_scanner.c"
5661
337
yy402:
5662
337
    YYDEBUG(402, *YYCURSOR);
5663
337
    yyaccept = 4;
5664
337
    yych = *(YYMARKER = ++YYCURSOR);
5665
337
    if (yych == 'N') goto yy499;
5666
336
    if (yych == 'n') goto yy499;
5667
16
    goto yy48;
5668
197
yy403:
5669
197
    YYDEBUG(403, *YYCURSOR);
5670
197
    yyaccept = 4;
5671
197
    yych = *(YYMARKER = ++YYCURSOR);
5672
197
    if (yych == 'L') goto yy500;
5673
127
    if (yych == 'l') goto yy500;
5674
2
    goto yy48;
5675
210
yy404:
5676
210
    YYDEBUG(404, *YYCURSOR);
5677
210
    yyaccept = 4;
5678
210
    yych = *(YYMARKER = ++YYCURSOR);
5679
210
    if (yych == 'A') goto yy502;
5680
205
    if (yych == 'a') goto yy502;
5681
0
    goto yy48;
5682
5.11k
yy405:
5683
5.11k
    YYDEBUG(405, *YYCURSOR);
5684
5.11k
    yyaccept = 4;
5685
5.11k
    yych = *(YYMARKER = ++YYCURSOR);
5686
5.11k
    if (yych == 'T') goto yy503;
5687
5.11k
    if (yych == 't') goto yy503;
5688
3.37k
    goto yy48;
5689
3.37k
yy406:
5690
79
    YYDEBUG(406, *YYCURSOR);
5691
79
    yyaccept = 4;
5692
79
    yych = *(YYMARKER = ++YYCURSOR);
5693
79
    if (yych == 'A') goto yy504;
5694
35
    if (yych == 'a') goto yy504;
5695
0
    goto yy48;
5696
60
yy407:
5697
60
    YYDEBUG(407, *YYCURSOR);
5698
60
    yyaccept = 32;
5699
60
    yych = *(YYMARKER = ++YYCURSOR);
5700
60
    if (yybm[256+yych] & 128) {
5701
1
      goto yy47;
5702
1
    }
5703
59
    if (yych == '\\') goto yy164;
5704
59
yy408:
5705
59
    YYDEBUG(408, *YYCURSOR);
5706
59
    yyleng = YYCURSOR - SCNG(yy_text);
5707
59
#line 1542 "Zend/zend_language_scanner.l"
5708
59
    {
5709
59
  RETURN_TOKEN_WITH_IDENT(T_GOTO);
5710
59
}
5711
0
#line 5712 "Zend/zend_language_scanner.c"
5712
320
yy409:
5713
320
    YYDEBUG(409, *YYCURSOR);
5714
320
    yyaccept = 4;
5715
320
    yych = *(YYMARKER = ++YYCURSOR);
5716
320
    if (yych == 'E') goto yy505;
5717
259
    if (yych == 'e') goto yy505;
5718
58
    goto yy48;
5719
58
yy410:
5720
51
    YYDEBUG(410, *YYCURSOR);
5721
51
    yyaccept = 4;
5722
51
    yych = *(YYMARKER = ++YYCURSOR);
5723
51
    if (yych == 'U') goto yy506;
5724
39
    if (yych == 'u') goto yy506;
5725
0
    goto yy48;
5726
57
yy411:
5727
57
    YYDEBUG(411, *YYCURSOR);
5728
57
    yyaccept = 4;
5729
57
    yych = *(YYMARKER = ++YYCURSOR);
5730
57
    if (yych <= 'E') {
5731
10
      if (yych == 'A') goto yy507;
5732
10
      if (yych <= 'D') goto yy48;
5733
7
      goto yy508;
5734
47
    } else {
5735
47
      if (yych <= 'a') {
5736
34
        if (yych <= '`') goto yy48;
5737
34
        goto yy507;
5738
34
      } else {
5739
13
        if (yych == 'e') goto yy508;
5740
0
        goto yy48;
5741
13
      }
5742
47
    }
5743
250
yy412:
5744
250
    YYDEBUG(412, *YYCURSOR);
5745
250
    yyaccept = 4;
5746
250
    yych = *(YYMARKER = ++YYCURSOR);
5747
250
    if (yych == 'R') goto yy509;
5748
250
    if (yych == 'r') goto yy509;
5749
43
    goto yy48;
5750
55
yy413:
5751
55
    YYDEBUG(413, *YYCURSOR);
5752
55
    yyaccept = 4;
5753
55
    yych = *(YYMARKER = ++YYCURSOR);
5754
55
    if (yych == 'T') goto yy510;
5755
54
    if (yych == 't') goto yy510;
5756
3
    goto yy48;
5757
99
yy414:
5758
99
    YYDEBUG(414, *YYCURSOR);
5759
99
    yyaccept = 33;
5760
99
    yych = *(YYMARKER = ++YYCURSOR);
5761
99
    if (yybm[256+yych] & 128) {
5762
9
      goto yy47;
5763
9
    }
5764
90
    if (yych == '\\') goto yy164;
5765
90
yy415:
5766
90
    YYDEBUG(415, *YYCURSOR);
5767
90
    yyleng = YYCURSOR - SCNG(yy_text);
5768
90
#line 1814 "Zend/zend_language_scanner.l"
5769
90
    {
5770
90
  RETURN_TOKEN_WITH_IDENT(T_LIST);
5771
90
}
5772
0
#line 5773 "Zend/zend_language_scanner.c"
5773
60
yy416:
5774
60
    YYDEBUG(416, *YYCURSOR);
5775
60
    yyaccept = 4;
5776
60
    yych = *(YYMARKER = ++YYCURSOR);
5777
60
    if (yych == 'H') goto yy512;
5778
51
    if (yych == 'h') goto yy512;
5779
9
    goto yy48;
5780
351
yy417:
5781
351
    YYDEBUG(417, *YYCURSOR);
5782
351
    yyaccept = 4;
5783
351
    yych = *(YYMARKER = ++YYCURSOR);
5784
351
    if (yych == 'S') goto yy514;
5785
345
    if (yych == 's') goto yy514;
5786
31
    goto yy48;
5787
567
yy418:
5788
567
    YYDEBUG(418, *YYCURSOR);
5789
567
    yyaccept = 4;
5790
567
    yych = *(YYMARKER = ++YYCURSOR);
5791
567
    if (yych == 'T') goto yy515;
5792
566
    if (yych == 't') goto yy515;
5793
3
    goto yy48;
5794
368
yy419:
5795
368
    YYDEBUG(419, *YYCURSOR);
5796
368
    yyaccept = 4;
5797
368
    yych = *(YYMARKER = ++YYCURSOR);
5798
368
    if (yych == 'A') goto yy517;
5799
368
    if (yych == 'a') goto yy517;
5800
8
    goto yy48;
5801
103
yy420:
5802
103
    YYDEBUG(420, *YYCURSOR);
5803
103
    yyaccept = 4;
5804
103
    yych = *(YYMARKER = ++YYCURSOR);
5805
103
    if (yych == 'E') goto yy518;
5806
103
    if (yych == 'e') goto yy518;
5807
7
    goto yy48;
5808
1.65k
yy421:
5809
1.65k
    YYDEBUG(421, *YYCURSOR);
5810
1.65k
    yyaccept = 4;
5811
1.65k
    yych = *(YYMARKER = ++YYCURSOR);
5812
1.65k
    if (yych == 'I') goto yy519;
5813
1.62k
    if (yych == 'i') goto yy519;
5814
678
    goto yy48;
5815
678
yy422:
5816
355
    YYDEBUG(422, *YYCURSOR);
5817
355
    yyaccept = 4;
5818
355
    yych = *(YYMARKER = ++YYCURSOR);
5819
355
    if (yych == 'O') goto yy520;
5820
355
    if (yych == 'o') goto yy520;
5821
148
    goto yy48;
5822
162
yy423:
5823
162
    YYDEBUG(423, *YYCURSOR);
5824
162
    yyaccept = 4;
5825
162
    yych = *(YYMARKER = ++YYCURSOR);
5826
162
    if (yych == 'I') goto yy521;
5827
161
    if (yych == 'i') goto yy521;
5828
26
    goto yy48;
5829
576
yy424:
5830
576
    YYDEBUG(424, *YYCURSOR);
5831
576
    yyaccept = 4;
5832
576
    yych = *(YYMARKER = ++YYCURSOR);
5833
576
    if (yych == 'R') goto yy522;
5834
576
    if (yych == 'r') goto yy522;
5835
7
    goto yy48;
5836
273
yy425:
5837
273
    YYDEBUG(425, *YYCURSOR);
5838
273
    yyaccept = 4;
5839
273
    yych = *(YYMARKER = ++YYCURSOR);
5840
273
    if (yych == 'I') goto yy523;
5841
273
    if (yych == 'i') goto yy523;
5842
1
    goto yy48;
5843
49
yy426:
5844
49
    YYDEBUG(426, *YYCURSOR);
5845
49
    yyaccept = 4;
5846
49
    yych = *(YYMARKER = ++YYCURSOR);
5847
49
    if (yych == 'C') goto yy524;
5848
49
    if (yych == 'c') goto yy524;
5849
4
    goto yy48;
5850
103
yy427:
5851
103
    YYDEBUG(427, *YYCURSOR);
5852
103
    yyaccept = 4;
5853
103
    yych = *(YYMARKER = ++YYCURSOR);
5854
103
    if (yych == 'W') goto yy525;
5855
100
    if (yych == 'w') goto yy525;
5856
4
    goto yy48;
5857
343
yy428:
5858
343
    YYDEBUG(428, *YYCURSOR);
5859
343
    yyaccept = 4;
5860
343
    yych = *(YYMARKER = ++YYCURSOR);
5861
343
    if (yych == 'T') goto yy527;
5862
200
    if (yych == 't') goto yy527;
5863
1
    goto yy48;
5864
230
yy429:
5865
230
    YYDEBUG(429, *YYCURSOR);
5866
230
    yyaccept = 4;
5867
230
    yych = *(YYMARKER = ++YYCURSOR);
5868
230
    if (yych == 'T') goto yy529;
5869
230
    if (yych == 't') goto yy529;
5870
90
    goto yy48;
5871
90
yy430:
5872
45
    YYDEBUG(430, *YYCURSOR);
5873
45
    yyaccept = 4;
5874
45
    yych = *(YYMARKER = ++YYCURSOR);
5875
45
    if (yych == 'E') goto yy531;
5876
36
    if (yych == 'e') goto yy531;
5877
8
    goto yy48;
5878
1.24k
yy431:
5879
1.24k
    YYDEBUG(431, *YYCURSOR);
5880
1.24k
    yyaccept = 4;
5881
1.24k
    yych = *(YYMARKER = ++YYCURSOR);
5882
1.24k
    if (yych == 'D') goto yy533;
5883
1.20k
    if (yych == 'd') goto yy533;
5884
60
    goto yy48;
5885
88
yy432:
5886
88
    YYDEBUG(432, *YYCURSOR);
5887
88
    yyaccept = 4;
5888
88
    yych = *(YYMARKER = ++YYCURSOR);
5889
88
    if (yych == 'A') goto yy535;
5890
13
    if (yych == 'a') goto yy535;
5891
13
    goto yy48;
5892
47
yy433:
5893
47
    YYDEBUG(433, *YYCURSOR);
5894
47
    yyaccept = 4;
5895
47
    yych = *(YYMARKER = ++YYCURSOR);
5896
47
    if (yych == 'R') goto yy536;
5897
2
    if (yych == 'r') goto yy536;
5898
2
    goto yy48;
5899
41
yy434:
5900
41
    YYDEBUG(434, *YYCURSOR);
5901
41
    yyaccept = 4;
5902
41
    yych = *(YYMARKER = ++YYCURSOR);
5903
41
    if (yych == 'L') goto yy537;
5904
7
    if (yych == 'l') goto yy537;
5905
4
    goto yy48;
5906
26
yy435:
5907
26
    YYDEBUG(435, *YYCURSOR);
5908
26
    yyaccept = 4;
5909
26
    yych = *(YYMARKER = ++YYCURSOR);
5910
26
    if (yych == 'N') goto yy538;
5911
1
    if (yych == 'n') goto yy538;
5912
1
    goto yy48;
5913
34
yy436:
5914
34
    YYDEBUG(436, *YYCURSOR);
5915
34
    yyaccept = 4;
5916
34
    yych = *(YYMARKER = ++YYCURSOR);
5917
34
    if (yych == 'L') goto yy539;
5918
11
    if (yych == 'l') goto yy539;
5919
0
    goto yy48;
5920
25
yy437:
5921
25
    YYDEBUG(437, *YYCURSOR);
5922
25
    yyaccept = 4;
5923
25
    yych = *(YYMARKER = ++YYCURSOR);
5924
25
    if (yych == 'N') goto yy540;
5925
3
    if (yych == 'n') goto yy540;
5926
1
    goto yy48;
5927
36
yy438:
5928
36
    YYDEBUG(438, *YYCURSOR);
5929
36
    yyaccept = 4;
5930
36
    yych = *(YYMARKER = ++YYCURSOR);
5931
36
    if (yych == 'T') goto yy541;
5932
9
    if (yych == 't') goto yy541;
5933
9
    goto yy48;
5934
102
yy439:
5935
102
    YYDEBUG(439, *YYCURSOR);
5936
102
    yyaccept = 4;
5937
102
    yych = *(YYMARKER = ++YYCURSOR);
5938
102
    if (yych == 'M') goto yy542;
5939
44
    if (yych == 'm') goto yy542;
5940
14
    goto yy48;
5941
66
yy440:
5942
66
    YYDEBUG(440, *YYCURSOR);
5943
66
    yyaccept = 4;
5944
66
    yych = *(YYMARKER = ++YYCURSOR);
5945
66
    if (yych == 'O') goto yy543;
5946
11
    if (yych == 'o') goto yy543;
5947
10
    goto yy48;
5948
115
yy441:
5949
115
    YYDEBUG(441, *YYCURSOR);
5950
115
    yyaccept = 4;
5951
115
    yych = *(YYMARKER = ++YYCURSOR);
5952
115
    if (yych == 'A') goto yy544;
5953
14
    if (yych == 'a') goto yy544;
5954
1
    goto yy48;
5955
45
yy442:
5956
45
    YYDEBUG(442, *YYCURSOR);
5957
45
    ++YYCURSOR;
5958
45
    YYFILL(1);
5959
45
    yych = *YYCURSOR;
5960
45
    if (yych <= '\f') {
5961
2
      if (yych <= 0x00) goto yy86;
5962
0
      if (yych == '\n') goto yy84;
5963
0
      goto yy225;
5964
43
    } else {
5965
43
      if (yych <= '\r') goto yy84;
5966
36
      if (yych == '.') goto yy352;
5967
3
      goto yy225;
5968
36
    }
5969
1.78k
yy443:
5970
1.78k
    YYDEBUG(443, *YYCURSOR);
5971
1.78k
    ++YYCURSOR;
5972
1.78k
    YYFILL(1);
5973
1.78k
    yych = *YYCURSOR;
5974
1.78k
    YYDEBUG(444, *YYCURSOR);
5975
1.78k
    if (yybm[0+yych] & 128) {
5976
1.35k
      goto yy443;
5977
1.35k
    }
5978
433
    if (yych <= 0x00) goto yy86;
5979
386
    if (yych <= '\r') goto yy545;
5980
149
    goto yy547;
5981
149
yy445:
5982
137
    YYDEBUG(445, *YYCURSOR);
5983
137
    yych = *++YYCURSOR;
5984
137
    if (yych == 'Y') goto yy549;
5985
137
    if (yych == 'y') goto yy549;
5986
0
    goto yy86;
5987
2
yy446:
5988
2
    YYDEBUG(446, *YYCURSOR);
5989
2
    yych = *++YYCURSOR;
5990
2
    if (yych == 'R') goto yy551;
5991
2
    if (yych == 'r') goto yy551;
5992
0
    goto yy86;
5993
17
yy447:
5994
17
    YYDEBUG(447, *YYCURSOR);
5995
17
    yych = *++YYCURSOR;
5996
17
    if (yych == 'E') goto yy556;
5997
17
    if (yych == 'e') goto yy556;
5998
8
    goto yy553;
5999
8
yy448:
6000
7
    YYDEBUG(448, *YYCURSOR);
6001
7
    yych = *++YYCURSOR;
6002
7
    if (yych == 'L') goto yy557;
6003
7
    if (yych == 'l') goto yy557;
6004
1
    goto yy86;
6005
14
yy449:
6006
14
    YYDEBUG(449, *YYCURSOR);
6007
14
    yych = *++YYCURSOR;
6008
14
    if (yych == 'T') goto yy558;
6009
14
    if (yych == 't') goto yy558;
6010
0
    goto yy86;
6011
59
yy450:
6012
59
    YYDEBUG(450, *YYCURSOR);
6013
59
    ++YYCURSOR;
6014
59
    YYFILL(1);
6015
59
    yych = *YYCURSOR;
6016
146
yy451:
6017
146
    YYDEBUG(451, *YYCURSOR);
6018
146
    if (yych <= 0x1F) {
6019
26
      if (yych == '\t') goto yy450;
6020
25
      goto yy86;
6021
120
    } else {
6022
120
      if (yych <= ' ') goto yy450;
6023
62
      if (yych != ')') goto yy86;
6024
62
    }
6025
17
    YYDEBUG(452, *YYCURSOR);
6026
17
    ++YYCURSOR;
6027
17
    YYDEBUG(453, *YYCURSOR);
6028
17
    yyleng = YYCURSOR - SCNG(yy_text);
6029
17
#line 1638 "Zend/zend_language_scanner.l"
6030
17
    {
6031
17
  RETURN_TOKEN(T_INT_CAST);
6032
17
}
6033
0
#line 6034 "Zend/zend_language_scanner.c"
6034
32
yy454:
6035
32
    YYDEBUG(454, *YYCURSOR);
6036
32
    yych = *++YYCURSOR;
6037
32
    if (yych == 'G') goto yy560;
6038
25
    if (yych == 'g') goto yy560;
6039
21
    goto yy86;
6040
29
yy455:
6041
29
    YYDEBUG(455, *YYCURSOR);
6042
29
    yych = *++YYCURSOR;
6043
29
    if (yych == 'C') goto yy561;
6044
29
    if (yych == 'c') goto yy561;
6045
0
    goto yy86;
6046
3
yy456:
6047
3
    YYDEBUG(456, *YYCURSOR);
6048
3
    ++YYCURSOR;
6049
3
    YYFILL(1);
6050
3
    yych = *YYCURSOR;
6051
3
    YYDEBUG(457, *YYCURSOR);
6052
3
    if (yych <= 0x1F) {
6053
1
      if (yych == '\t') goto yy456;
6054
1
      goto yy86;
6055
2
    } else {
6056
2
      if (yych <= ' ') goto yy456;
6057
2
      if (yych == ')') goto yy562;
6058
1
      goto yy86;
6059
2
    }
6060
104
yy458:
6061
104
    YYDEBUG(458, *YYCURSOR);
6062
104
    yych = *++YYCURSOR;
6063
104
    if (yych == 'N') goto yy564;
6064
104
    if (yych == 'n') goto yy564;
6065
35
    goto yy86;
6066
59
yy459:
6067
59
    YYDEBUG(459, *YYCURSOR);
6068
59
    yych = *++YYCURSOR;
6069
59
    if (yych == 'T') goto yy565;
6070
59
    if (yych == 't') goto yy565;
6071
49
    goto yy86;
6072
49
yy460:
6073
5
    YYDEBUG(460, *YYCURSOR);
6074
5
    ++YYCURSOR;
6075
5
    YYFILL(1);
6076
5
    yych = *YYCURSOR;
6077
5
    YYDEBUG(461, *YYCURSOR);
6078
5
    if (yych <= 0x1F) {
6079
0
      if (yych == '\t') goto yy460;
6080
0
      goto yy86;
6081
5
    } else {
6082
5
      if (yych <= ' ') goto yy460;
6083
4
      if (yych == ')') goto yy567;
6084
1
      goto yy86;
6085
4
    }
6086
789
yy462:
6087
789
    YYDEBUG(462, *YYCURSOR);
6088
789
    ++YYCURSOR;
6089
789
    YYFILL(3);
6090
789
    yych = *YYCURSOR;
6091
918
yy463:
6092
918
    YYDEBUG(463, *YYCURSOR);
6093
918
    if (yych <= 'Z') {
6094
157
      if (yych <= '/') {
6095
73
        if (yych == '"') goto yy569;
6096
48
        goto yy86;
6097
84
      } else {
6098
84
        if (yych <= '9') goto yy462;
6099
59
        if (yych <= '@') goto yy86;
6100
45
        goto yy462;
6101
59
      }
6102
761
    } else {
6103
761
      if (yych <= '`') {
6104
8
        if (yych == '_') goto yy462;
6105
8
        goto yy86;
6106
753
      } else {
6107
753
        if (yych <= 'z') goto yy462;
6108
429
        if (yych <= 0x7F) goto yy86;
6109
395
        goto yy462;
6110
429
      }
6111
761
    }
6112
504
yy464:
6113
504
    YYDEBUG(464, *YYCURSOR);
6114
504
    ++YYCURSOR;
6115
504
    YYFILL(3);
6116
504
    yych = *YYCURSOR;
6117
673
yy465:
6118
673
    YYDEBUG(465, *YYCURSOR);
6119
673
    if (yych <= 'Z') {
6120
384
      if (yych <= '/') {
6121
121
        if (yych == '\'') goto yy569;
6122
35
        goto yy86;
6123
263
      } else {
6124
263
        if (yych <= '9') goto yy464;
6125
257
        if (yych <= '@') goto yy86;
6126
224
        goto yy464;
6127
257
      }
6128
384
    } else {
6129
289
      if (yych <= '`') {
6130
18
        if (yych == '_') goto yy464;
6131
5
        goto yy86;
6132
271
      } else {
6133
271
        if (yych <= 'z') goto yy464;
6134
96
        if (yych <= 0x7F) goto yy86;
6135
86
        goto yy464;
6136
96
      }
6137
289
    }
6138
16.2k
yy466:
6139
16.2k
    YYDEBUG(466, *YYCURSOR);
6140
16.2k
    ++YYCURSOR;
6141
16.3k
yy467:
6142
16.3k
    YYDEBUG(467, *YYCURSOR);
6143
16.3k
    yyleng = YYCURSOR - SCNG(yy_text);
6144
16.3k
#line 2678 "Zend/zend_language_scanner.l"
6145
16.3k
    {
6146
16.3k
  char *s;
6147
16.3k
  unsigned char *saved_cursor;
6148
16.3k
  int bprefix = (yytext[0] != '<') ? 1 : 0, spacing = 0, indentation = 0;
6149
16.3k
  zend_heredoc_label *heredoc_label = emalloc(sizeof(zend_heredoc_label));
6150
16.3k
  bool is_heredoc = 1;
6151
6152
16.3k
  CG(zend_lineno)++;
6153
16.3k
  heredoc_label->length = yyleng-bprefix-3-1-(yytext[yyleng-2]=='\r'?1:0);
6154
16.3k
  s = yytext+bprefix+3;
6155
16.4k
  while ((*s == ' ') || (*s == '\t')) {
6156
83
    s++;
6157
83
    heredoc_label->length--;
6158
83
  }
6159
6160
16.3k
  if (*s == '\'') {
6161
74
    s++;
6162
74
    heredoc_label->length -= 2;
6163
74
    is_heredoc = 0;
6164
6165
74
    BEGIN(ST_NOWDOC);
6166
16.3k
  } else {
6167
16.3k
    if (*s == '"') {
6168
8
      s++;
6169
8
      heredoc_label->length -= 2;
6170
8
    }
6171
6172
16.3k
    BEGIN(ST_HEREDOC);
6173
16.3k
  }
6174
6175
16.3k
  heredoc_label->label = estrndup(s, heredoc_label->length);
6176
16.3k
  heredoc_label->indentation_uses_spaces = 0;
6177
16.3k
  heredoc_label->indentation = 0;
6178
16.3k
  saved_cursor = YYCURSOR;
6179
6180
16.3k
  zend_ptr_stack_push(&SCNG(heredoc_label_stack), (void *) heredoc_label);
6181
6182
17.0k
  while (YYCURSOR < YYLIMIT && (*YYCURSOR == ' ' || *YYCURSOR == '\t')) {
6183
642
    if (*YYCURSOR == '\t') {
6184
35
      spacing |= HEREDOC_USING_TABS;
6185
607
    } else {
6186
607
      spacing |= HEREDOC_USING_SPACES;
6187
607
    }
6188
642
    ++YYCURSOR;
6189
642
    ++indentation;
6190
642
  }
6191
6192
16.3k
  if (YYCURSOR == YYLIMIT) {
6193
39
    YYCURSOR = saved_cursor;
6194
39
    RETURN_TOKEN(T_START_HEREDOC);
6195
39
  }
6196
6197
  /* Check for ending label on the next line */
6198
16.3k
  if (heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, s, heredoc_label->length)) {
6199
114
    if (!IS_LABEL_SUCCESSOR(YYCURSOR[heredoc_label->length])) {
6200
62
      if (spacing == (HEREDOC_USING_SPACES | HEREDOC_USING_TABS)) {
6201
1
        zend_throw_exception(zend_ce_parse_error, "Invalid indentation - tabs and spaces cannot be mixed", 0);
6202
1
        if (PARSER_MODE()) {
6203
1
          RETURN_TOKEN(T_ERROR);
6204
1
        }
6205
1
      }
6206
6207
61
      YYCURSOR = saved_cursor;
6208
61
      heredoc_label->indentation = indentation;
6209
6210
61
      BEGIN(ST_END_HEREDOC);
6211
61
      RETURN_TOKEN(T_START_HEREDOC);
6212
61
    }
6213
114
  }
6214
6215
16.2k
  YYCURSOR = saved_cursor;
6216
6217
16.2k
  if (is_heredoc && !SCNG(heredoc_scan_ahead)) {
6218
4.84k
    zend_lex_state current_state;
6219
4.84k
    zend_string *saved_doc_comment = CG(doc_comment);
6220
4.84k
    int heredoc_nesting_level = 1;
6221
4.84k
    int first_token = 0;
6222
4.84k
    int error = 0;
6223
6224
4.84k
    zend_save_lexical_state(&current_state);
6225
6226
4.84k
    SCNG(heredoc_scan_ahead) = 1;
6227
4.84k
    SCNG(heredoc_indentation) = 0;
6228
4.84k
    SCNG(heredoc_indentation_uses_spaces) = 0;
6229
4.84k
    SCNG(on_event_context) = NULL;
6230
4.84k
    LANG_SCNG(on_event) = NULL;
6231
4.84k
    CG(doc_comment) = NULL;
6232
6233
4.84k
    zend_ptr_stack_reverse_apply(&current_state.heredoc_label_stack, copy_heredoc_label_stack);
6234
6235
4.84k
    zend_exception_save();
6236
141k
    while (heredoc_nesting_level) {
6237
141k
      zval zv;
6238
141k
      int retval;
6239
6240
141k
      ZVAL_UNDEF(&zv);
6241
141k
      retval = lex_scan(&zv, NULL);
6242
141k
      zval_ptr_dtor_nogc(&zv);
6243
6244
141k
      if (EG(exception)) {
6245
4.37k
        zend_clear_exception();
6246
4.37k
        break;
6247
4.37k
      }
6248
6249
136k
      if (!first_token) {
6250
4.84k
        first_token = retval;
6251
4.84k
      }
6252
6253
136k
      switch (retval) {
6254
11.4k
        case T_START_HEREDOC:
6255
11.4k
          ++heredoc_nesting_level;
6256
11.4k
          break;
6257
392
        case T_END_HEREDOC:
6258
392
          --heredoc_nesting_level;
6259
392
          break;
6260
165
        case END:
6261
165
          heredoc_nesting_level = 0;
6262
136k
      }
6263
136k
    }
6264
4.84k
    zend_exception_restore();
6265
6266
4.84k
    if (
6267
4.84k
        (first_token == T_VARIABLE
6268
4.61k
         || first_token == T_DOLLAR_OPEN_CURLY_BRACES
6269
1.89k
         || first_token == T_CURLY_OPEN
6270
4.84k
        ) && 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.84k
    heredoc_label->indentation = SCNG(heredoc_indentation);
6276
4.84k
    heredoc_label->indentation_uses_spaces = SCNG(heredoc_indentation_uses_spaces);
6277
6278
4.84k
    zend_restore_lexical_state(&current_state);
6279
4.84k
    SCNG(heredoc_scan_ahead) = 0;
6280
4.84k
    CG(increment_lineno) = 0;
6281
4.84k
    CG(doc_comment) = saved_doc_comment;
6282
6283
4.84k
    if (PARSER_MODE() && error) {
6284
1
      RETURN_TOKEN(T_ERROR);
6285
1
    }
6286
4.84k
  }
6287
6288
16.2k
  RETURN_TOKEN(T_START_HEREDOC);
6289
16.2k
}
6290
0
#line 6291 "Zend/zend_language_scanner.c"
6291
108
yy468:
6292
108
    YYDEBUG(468, *YYCURSOR);
6293
108
    yych = *++YYCURSOR;
6294
108
    if (yych == '\n') goto yy466;
6295
106
    goto yy467;
6296
121
yy469:
6297
121
    YYDEBUG(469, *YYCURSOR);
6298
121
    yyaccept = 4;
6299
121
    yych = *(YYMARKER = ++YYCURSOR);
6300
121
    if (yych == 'A') goto yy570;
6301
112
    if (yych == 'a') goto yy570;
6302
3
    goto yy48;
6303
705
yy470:
6304
705
    YYDEBUG(470, *YYCURSOR);
6305
705
    yyaccept = 34;
6306
705
    yych = *(YYMARKER = ++YYCURSOR);
6307
705
    if (yybm[256+yych] & 128) {
6308
108
      goto yy47;
6309
108
    }
6310
597
    if (yych == '\\') goto yy164;
6311
597
yy471:
6312
597
    YYDEBUG(471, *YYCURSOR);
6313
597
    yyleng = YYCURSOR - SCNG(yy_text);
6314
597
#line 1818 "Zend/zend_language_scanner.l"
6315
597
    {
6316
597
  RETURN_TOKEN_WITH_IDENT(T_ARRAY);
6317
597
}
6318
0
#line 6319 "Zend/zend_language_scanner.c"
6319
33
yy472:
6320
33
    YYDEBUG(472, *YYCURSOR);
6321
33
    yyaccept = 35;
6322
33
    yych = *(YYMARKER = ++YYCURSOR);
6323
33
    if (yybm[256+yych] & 128) {
6324
0
      goto yy47;
6325
0
    }
6326
33
    if (yych == '\\') goto yy164;
6327
33
yy473:
6328
33
    YYDEBUG(473, *YYCURSOR);
6329
33
    yyleng = YYCURSOR - SCNG(yy_text);
6330
33
#line 1534 "Zend/zend_language_scanner.l"
6331
33
    {
6332
33
  RETURN_TOKEN_WITH_IDENT(T_BREAK);
6333
33
}
6334
0
#line 6335 "Zend/zend_language_scanner.c"
6335
30
yy474:
6336
30
    YYDEBUG(474, *YYCURSOR);
6337
30
    yyaccept = 4;
6338
30
    yych = *(YYMARKER = ++YYCURSOR);
6339
30
    if (yych == 'B') goto yy571;
6340
29
    if (yych == 'b') goto yy571;
6341
4
    goto yy48;
6342
194
yy475:
6343
194
    YYDEBUG(475, *YYCURSOR);
6344
194
    yyaccept = 36;
6345
194
    yych = *(YYMARKER = ++YYCURSOR);
6346
194
    if (yybm[256+yych] & 128) {
6347
1
      goto yy47;
6348
1
    }
6349
193
    if (yych == '\\') goto yy164;
6350
193
yy476:
6351
193
    YYDEBUG(476, *YYCURSOR);
6352
193
    yyleng = YYCURSOR - SCNG(yy_text);
6353
193
#line 1442 "Zend/zend_language_scanner.l"
6354
193
    {
6355
193
  RETURN_TOKEN_WITH_IDENT(T_CATCH);
6356
193
}
6357
0
#line 6358 "Zend/zend_language_scanner.c"
6358
1.72k
yy477:
6359
1.72k
    YYDEBUG(477, *YYCURSOR);
6360
1.72k
    yyaccept = 37;
6361
1.72k
    yych = *(YYMARKER = ++YYCURSOR);
6362
1.72k
    if (yybm[256+yych] & 128) {
6363
72
      goto yy47;
6364
72
    }
6365
1.65k
    if (yych == '\\') goto yy164;
6366
1.65k
yy478:
6367
1.65k
    YYDEBUG(478, *YYCURSOR);
6368
1.65k
    yyleng = YYCURSOR - SCNG(yy_text);
6369
1.65k
#line 1554 "Zend/zend_language_scanner.l"
6370
1.65k
    {
6371
1.65k
  RETURN_TOKEN_WITH_IDENT(T_CLASS);
6372
1.65k
}
6373
0
#line 6374 "Zend/zend_language_scanner.c"
6374
48
yy479:
6375
48
    YYDEBUG(479, *YYCURSOR);
6376
48
    yyaccept = 38;
6377
48
    yych = *(YYMARKER = ++YYCURSOR);
6378
48
    if (yybm[256+yych] & 128) {
6379
2
      goto yy47;
6380
2
    }
6381
46
    if (yych == '\\') goto yy164;
6382
46
yy480:
6383
46
    YYDEBUG(480, *YYCURSOR);
6384
46
    yyleng = YYCURSOR - SCNG(yy_text);
6385
46
#line 1630 "Zend/zend_language_scanner.l"
6386
46
    {
6387
46
  RETURN_TOKEN_WITH_IDENT(T_CLONE);
6388
46
}
6389
0
#line 6390 "Zend/zend_language_scanner.c"
6390
675
yy481:
6391
675
    YYDEBUG(481, *YYCURSOR);
6392
675
    yyaccept = 39;
6393
675
    yych = *(YYMARKER = ++YYCURSOR);
6394
675
    if (yybm[256+yych] & 128) {
6395
163
      goto yy47;
6396
163
    }
6397
512
    if (yych == '\\') goto yy164;
6398
512
yy482:
6399
512
    YYDEBUG(482, *YYCURSOR);
6400
512
    yyleng = YYCURSOR - SCNG(yy_text);
6401
512
#line 1415 "Zend/zend_language_scanner.l"
6402
512
    {
6403
512
  RETURN_TOKEN_WITH_IDENT(T_CONST);
6404
512
}
6405
0
#line 6406 "Zend/zend_language_scanner.c"
6406
6
yy483:
6407
6
    YYDEBUG(483, *YYCURSOR);
6408
6
    yyaccept = 4;
6409
6
    yych = *(YYMARKER = ++YYCURSOR);
6410
6
    if (yych == 'N') goto yy572;
6411
6
    if (yych == 'n') goto yy572;
6412
3
    goto yy48;
6413
222
yy484:
6414
222
    YYDEBUG(484, *YYCURSOR);
6415
222
    yyaccept = 4;
6416
222
    yych = *(YYMARKER = ++YYCURSOR);
6417
222
    if (yych == 'R') goto yy573;
6418
222
    if (yych == 'r') goto yy573;
6419
150
    goto yy48;
6420
150
yy485:
6421
18
    YYDEBUG(485, *YYCURSOR);
6422
18
    yyaccept = 4;
6423
18
    yych = *(YYMARKER = ++YYCURSOR);
6424
18
    if (yych == 'L') goto yy574;
6425
18
    if (yych == 'l') goto yy574;
6426
1
    goto yy48;
6427
7
yy486:
6428
7
    YYDEBUG(486, *YYCURSOR);
6429
7
    yyaccept = 4;
6430
7
    yych = *(YYMARKER = ++YYCURSOR);
6431
7
    if (yych == 'F') goto yy575;
6432
7
    if (yych == 'f') goto yy575;
6433
0
    goto yy48;
6434
87
yy487:
6435
87
    YYDEBUG(487, *YYCURSOR);
6436
87
    yyaccept = 40;
6437
87
    yych = *(YYMARKER = ++YYCURSOR);
6438
87
    if (yybm[256+yych] & 128) {
6439
0
      goto yy47;
6440
0
    }
6441
87
    if (yych == '\\') goto yy164;
6442
87
yy488:
6443
87
    YYDEBUG(488, *YYCURSOR);
6444
87
    yyleng = YYCURSOR - SCNG(yy_text);
6445
87
#line 1758 "Zend/zend_language_scanner.l"
6446
87
    {
6447
87
  RETURN_TOKEN_WITH_IDENT(T_EMPTY);
6448
87
}
6449
0
#line 6450 "Zend/zend_language_scanner.c"
6450
19
yy489:
6451
19
    YYDEBUG(489, *YYCURSOR);
6452
19
    yyaccept = 4;
6453
19
    yych = *(YYMARKER = ++YYCURSOR);
6454
19
    if (yych == 'C') goto yy577;
6455
15
    if (yych == 'c') goto yy577;
6456
4
    goto yy48;
6457
78
yy490:
6458
78
    YYDEBUG(490, *YYCURSOR);
6459
78
    yyaccept = 4;
6460
78
    yych = *(YYMARKER = ++YYCURSOR);
6461
78
    if (yych == 'R') goto yy578;
6462
75
    if (yych == 'r') goto yy578;
6463
0
    goto yy48;
6464
7
yy491:
6465
7
    YYDEBUG(491, *YYCURSOR);
6466
7
    yyaccept = 41;
6467
7
    yych = *(YYMARKER = ++YYCURSOR);
6468
7
    if (yybm[256+yych] & 128) {
6469
1
      goto yy47;
6470
1
    }
6471
6
    if (yych == '\\') goto yy164;
6472
6
yy492:
6473
6
    YYDEBUG(492, *YYCURSOR);
6474
6
    yyleng = YYCURSOR - SCNG(yy_text);
6475
6
#line 1462 "Zend/zend_language_scanner.l"
6476
6
    {
6477
6
  RETURN_TOKEN_WITH_IDENT(T_ENDIF);
6478
6
}
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
2
yy494:
6488
2
    YYDEBUG(494, *YYCURSOR);
6489
2
    yyaccept = 4;
6490
2
    yych = *(YYMARKER = ++YYCURSOR);
6491
2
    if (yych == 'I') goto yy581;
6492
0
    if (yych == 'i') goto yy581;
6493
0
    goto yy48;
6494
4.40k
yy495:
6495
4.40k
    YYDEBUG(495, *YYCURSOR);
6496
4.40k
    ++YYCURSOR;
6497
4.40k
    YYFILL(10);
6498
4.40k
    yych = *YYCURSOR;
6499
4.40k
    YYDEBUG(496, *YYCURSOR);
6500
4.40k
    if (yych <= 'E') {
6501
3.97k
      if (yych <= ' ') {
6502
690
        if (yych <= '\f') {
6503
202
          if (yych <= 0x08) goto yy86;
6504
142
          if (yych <= '\n') goto yy495;
6505
0
          goto yy86;
6506
488
        } else {
6507
488
          if (yych <= '\r') goto yy495;
6508
164
          if (yych <= 0x1F) goto yy86;
6509
144
          goto yy495;
6510
164
        }
6511
3.28k
      } else {
6512
3.28k
        if (yych <= '.') {
6513
3.06k
          if (yych != '#') goto yy86;
6514
3.06k
        } else {
6515
214
          if (yych <= '/') goto yy498;
6516
72
          if (yych <= '@') goto yy86;
6517
47
          if (yych <= 'D') goto yy582;
6518
21
          goto yy584;
6519
47
        }
6520
3.28k
      }
6521
3.97k
    } else {
6522
437
      if (yych <= '`') {
6523
144
        if (yych <= 'Z') {
6524
132
          if (yych == 'I') goto yy585;
6525
119
          goto yy582;
6526
132
        } else {
6527
12
          if (yych == '_') goto yy582;
6528
3
          goto yy86;
6529
12
        }
6530
293
      } else {
6531
293
        if (yych <= 'h') {
6532
87
          if (yych == 'e') goto yy584;
6533
12
          goto yy582;
6534
206
        } else {
6535
206
          if (yych <= 'i') goto yy585;
6536
85
          if (yych <= 'z') goto yy582;
6537
34
          if (yych <= 0x7F) goto yy86;
6538
21
          goto yy582;
6539
34
        }
6540
293
      }
6541
437
    }
6542
3.02k
yy497:
6543
3.02k
    YYDEBUG(497, *YYCURSOR);
6544
3.02k
    ++YYCURSOR;
6545
3.02k
    YYFILL(1);
6546
3.02k
    yych = *YYCURSOR;
6547
3.02k
    if (yych <= '\f') {
6548
2.06k
      if (yych <= 0x00) goto yy86;
6549
2.06k
      if (yych == '\n') goto yy588;
6550
50
      goto yy586;
6551
2.06k
    } else {
6552
959
      if (yych <= '\r') goto yy588;
6553
509
      if (yych == '[') goto yy86;
6554
508
      goto yy586;
6555
509
    }
6556
171
yy498:
6557
171
    YYDEBUG(498, *YYCURSOR);
6558
171
    ++YYCURSOR;
6559
171
    YYFILL(1);
6560
171
    yych = *YYCURSOR;
6561
171
    if (yych == '*') goto yy590;
6562
51
    if (yych == '/') goto yy586;
6563
43
    goto yy86;
6564
321
yy499:
6565
321
    YYDEBUG(499, *YYCURSOR);
6566
321
    yyaccept = 4;
6567
321
    yych = *(YYMARKER = ++YYCURSOR);
6568
321
    if (yych == 'D') goto yy592;
6569
320
    if (yych == 'd') goto yy592;
6570
12
    goto yy48;
6571
195
yy500:
6572
195
    YYDEBUG(500, *YYCURSOR);
6573
195
    yyaccept = 42;
6574
195
    yych = *(YYMARKER = ++YYCURSOR);
6575
195
    if (yych <= '\\') {
6576
136
      if (yych <= 'K') {
6577
122
        if (yych <= '/') goto yy501;
6578
51
        if (yych <= '9') goto yy47;
6579
51
        if (yych >= 'A') goto yy47;
6580
51
      } else {
6581
14
        if (yych <= 'L') goto yy593;
6582
14
        if (yych <= 'Z') goto yy47;
6583
14
        if (yych >= '\\') goto yy164;
6584
14
      }
6585
136
    } else {
6586
59
      if (yych <= 'k') {
6587
2
        if (yych == '_') goto yy47;
6588
0
        if (yych >= 'a') goto yy47;
6589
57
      } else {
6590
57
        if (yych <= 'l') goto yy593;
6591
15
        if (yych <= 'z') goto yy47;
6592
3
        if (yych >= 0x80) goto yy47;
6593
3
      }
6594
59
    }
6595
113
yy501:
6596
113
    YYDEBUG(501, *YYCURSOR);
6597
113
    yyleng = YYCURSOR - SCNG(yy_text);
6598
113
#line 1774 "Zend/zend_language_scanner.l"
6599
113
    {
6600
113
  RETURN_TOKEN_WITH_IDENT(T_FINAL);
6601
113
}
6602
0
#line 6603 "Zend/zend_language_scanner.c"
6603
210
yy502:
6604
210
    YYDEBUG(502, *YYCURSOR);
6605
210
    yyaccept = 4;
6606
210
    yych = *(YYMARKER = ++YYCURSOR);
6607
210
    if (yych == 'C') goto yy594;
6608
209
    if (yych == 'c') goto yy594;
6609
7
    goto yy48;
6610
1.74k
yy503:
6611
1.74k
    YYDEBUG(503, *YYCURSOR);
6612
1.74k
    yyaccept = 4;
6613
1.74k
    yych = *(YYMARKER = ++YYCURSOR);
6614
1.74k
    if (yych == 'I') goto yy595;
6615
1.74k
    if (yych == 'i') goto yy595;
6616
7
    goto yy48;
6617
79
yy504:
6618
79
    YYDEBUG(504, *YYCURSOR);
6619
79
    yyaccept = 4;
6620
79
    yych = *(YYMARKER = ++YYCURSOR);
6621
79
    if (yych == 'L') goto yy596;
6622
48
    if (yych == 'l') goto yy596;
6623
17
    goto yy48;
6624
262
yy505:
6625
262
    YYDEBUG(505, *YYCURSOR);
6626
262
    yyaccept = 4;
6627
262
    yych = *(YYMARKER = ++YYCURSOR);
6628
262
    if (yych == 'M') goto yy598;
6629
259
    if (yych == 'm') goto yy598;
6630
40
    goto yy48;
6631
51
yy506:
6632
51
    YYDEBUG(506, *YYCURSOR);
6633
51
    yyaccept = 4;
6634
51
    yych = *(YYMARKER = ++YYCURSOR);
6635
51
    if (yych == 'D') goto yy599;
6636
51
    if (yych == 'd') goto yy599;
6637
13
    goto yy48;
6638
34
yy507:
6639
34
    YYDEBUG(507, *YYCURSOR);
6640
34
    yyaccept = 4;
6641
34
    yych = *(YYMARKER = ++YYCURSOR);
6642
34
    if (yych == 'N') goto yy600;
6643
34
    if (yych == 'n') goto yy600;
6644
5
    goto yy48;
6645
20
yy508:
6646
20
    YYDEBUG(508, *YYCURSOR);
6647
20
    yyaccept = 4;
6648
20
    yych = *(YYMARKER = ++YYCURSOR);
6649
20
    if (yych == 'A') goto yy601;
6650
20
    if (yych == 'a') goto yy601;
6651
7
    goto yy48;
6652
207
yy509:
6653
207
    YYDEBUG(509, *YYCURSOR);
6654
207
    yyaccept = 4;
6655
207
    yych = *(YYMARKER = ++YYCURSOR);
6656
207
    if (yych == 'F') goto yy602;
6657
207
    if (yych == 'f') goto yy602;
6658
0
    goto yy48;
6659
52
yy510:
6660
52
    YYDEBUG(510, *YYCURSOR);
6661
52
    yyaccept = 43;
6662
52
    yych = *(YYMARKER = ++YYCURSOR);
6663
52
    if (yybm[256+yych] & 128) {
6664
1
      goto yy47;
6665
1
    }
6666
51
    if (yych == '\\') goto yy164;
6667
51
yy511:
6668
51
    YYDEBUG(511, *YYCURSOR);
6669
51
    yyleng = YYCURSOR - SCNG(yy_text);
6670
51
#line 1754 "Zend/zend_language_scanner.l"
6671
51
    {
6672
51
  RETURN_TOKEN_WITH_IDENT(T_ISSET);
6673
51
}
6674
0
#line 6675 "Zend/zend_language_scanner.c"
6675
51
yy512:
6676
51
    YYDEBUG(512, *YYCURSOR);
6677
51
    yyaccept = 44;
6678
51
    yych = *(YYMARKER = ++YYCURSOR);
6679
51
    if (yybm[256+yych] & 128) {
6680
10
      goto yy47;
6681
10
    }
6682
41
    if (yych == '\\') goto yy164;
6683
40
yy513:
6684
40
    YYDEBUG(513, *YYCURSOR);
6685
40
    yyleng = YYCURSOR - SCNG(yy_text);
6686
40
#line 1518 "Zend/zend_language_scanner.l"
6687
40
    {
6688
40
  RETURN_TOKEN_WITH_IDENT(T_MATCH);
6689
40
}
6690
0
#line 6691 "Zend/zend_language_scanner.c"
6691
320
yy514:
6692
320
    YYDEBUG(514, *YYCURSOR);
6693
320
    yyaccept = 4;
6694
320
    yych = *(YYMARKER = ++YYCURSOR);
6695
320
    if (yych == 'P') goto yy603;
6696
312
    if (yych == 'p') goto yy603;
6697
10
    goto yy48;
6698
564
yy515:
6699
564
    YYDEBUG(515, *YYCURSOR);
6700
564
    yyaccept = 45;
6701
564
    yych = *(YYMARKER = ++YYCURSOR);
6702
564
    if (yybm[256+yych] & 128) {
6703
351
      goto yy47;
6704
351
    }
6705
213
    if (yych == '\\') goto yy164;
6706
212
yy516:
6707
212
    YYDEBUG(516, *YYCURSOR);
6708
212
    yyleng = YYCURSOR - SCNG(yy_text);
6709
212
#line 1550 "Zend/zend_language_scanner.l"
6710
212
    {
6711
212
  RETURN_TOKEN_WITH_IDENT(T_PRINT);
6712
212
}
6713
0
#line 6714 "Zend/zend_language_scanner.c"
6714
360
yy517:
6715
360
    YYDEBUG(517, *YYCURSOR);
6716
360
    yyaccept = 4;
6717
360
    yych = *(YYMARKER = ++YYCURSOR);
6718
360
    if (yych == 'T') goto yy604;
6719
360
    if (yych == 't') goto yy604;
6720
118
    goto yy48;
6721
118
yy518:
6722
96
    YYDEBUG(518, *YYCURSOR);
6723
96
    yyaccept = 4;
6724
96
    yych = *(YYMARKER = ++YYCURSOR);
6725
96
    if (yych == 'C') goto yy605;
6726
96
    if (yych == 'c') goto yy605;
6727
0
    goto yy48;
6728
978
yy519:
6729
978
    YYDEBUG(519, *YYCURSOR);
6730
978
    yyaccept = 4;
6731
978
    yych = *(YYMARKER = ++YYCURSOR);
6732
978
    if (yych == 'C') goto yy606;
6733
978
    if (yych == 'c') goto yy606;
6734
7
    goto yy48;
6735
207
yy520:
6736
207
    YYDEBUG(520, *YYCURSOR);
6737
207
    yyaccept = 4;
6738
207
    yych = *(YYMARKER = ++YYCURSOR);
6739
207
    if (yych == 'N') goto yy608;
6740
207
    if (yych == 'n') goto yy608;
6741
3
    goto yy48;
6742
136
yy521:
6743
136
    YYDEBUG(521, *YYCURSOR);
6744
136
    yyaccept = 4;
6745
136
    yych = *(YYMARKER = ++YYCURSOR);
6746
136
    if (yych == 'R') goto yy609;
6747
133
    if (yych == 'r') goto yy609;
6748
31
    goto yy48;
6749
569
yy522:
6750
569
    YYDEBUG(522, *YYCURSOR);
6751
569
    yyaccept = 4;
6752
569
    yych = *(YYMARKER = ++YYCURSOR);
6753
569
    if (yych == 'N') goto yy610;
6754
569
    if (yych == 'n') goto yy610;
6755
1
    goto yy48;
6756
272
yy523:
6757
272
    YYDEBUG(523, *YYCURSOR);
6758
272
    yyaccept = 4;
6759
272
    yych = *(YYMARKER = ++YYCURSOR);
6760
272
    if (yych == 'C') goto yy612;
6761
272
    if (yych == 'c') goto yy612;
6762
3
    goto yy48;
6763
45
yy524:
6764
45
    YYDEBUG(524, *YYCURSOR);
6765
45
    yyaccept = 4;
6766
45
    yych = *(YYMARKER = ++YYCURSOR);
6767
45
    if (yych == 'H') goto yy614;
6768
45
    if (yych == 'h') goto yy614;
6769
27
    goto yy48;
6770
99
yy525:
6771
99
    YYDEBUG(525, *YYCURSOR);
6772
99
    yyaccept = 46;
6773
99
    yych = *(YYMARKER = ++YYCURSOR);
6774
99
    if (yybm[256+yych] & 128) {
6775
27
      goto yy47;
6776
27
    }
6777
72
    if (yych == '\\') goto yy164;
6778
72
yy526:
6779
72
    YYDEBUG(526, *YYCURSOR);
6780
72
    yyleng = YYCURSOR - SCNG(yy_text);
6781
72
#line 1450 "Zend/zend_language_scanner.l"
6782
72
    {
6783
72
  RETURN_TOKEN_WITH_IDENT(T_THROW);
6784
72
}
6785
0
#line 6786 "Zend/zend_language_scanner.c"
6786
342
yy527:
6787
342
    YYDEBUG(527, *YYCURSOR);
6788
342
    yyaccept = 47;
6789
342
    yych = *(YYMARKER = ++YYCURSOR);
6790
342
    if (yybm[256+yych] & 128) {
6791
36
      goto yy47;
6792
36
    }
6793
306
    if (yych == '\\') goto yy164;
6794
306
yy528:
6795
306
    YYDEBUG(528, *YYCURSOR);
6796
306
    yyleng = YYCURSOR - SCNG(yy_text);
6797
306
#line 1562 "Zend/zend_language_scanner.l"
6798
306
    {
6799
306
  RETURN_TOKEN_WITH_IDENT(T_TRAIT);
6800
306
}
6801
0
#line 6802 "Zend/zend_language_scanner.c"
6802
140
yy529:
6803
140
    YYDEBUG(529, *YYCURSOR);
6804
140
    yyaccept = 48;
6805
140
    yych = *(YYMARKER = ++YYCURSOR);
6806
140
    if (yybm[256+yych] & 128) {
6807
7
      goto yy47;
6808
7
    }
6809
133
    if (yych == '\\') goto yy164;
6810
133
yy530:
6811
133
    YYDEBUG(530, *YYCURSOR);
6812
133
    yyleng = YYCURSOR - SCNG(yy_text);
6813
133
#line 1806 "Zend/zend_language_scanner.l"
6814
133
    {
6815
133
  RETURN_TOKEN_WITH_IDENT(T_UNSET);
6816
133
}
6817
0
#line 6818 "Zend/zend_language_scanner.c"
6818
37
yy531:
6819
37
    YYDEBUG(531, *YYCURSOR);
6820
37
    yyaccept = 49;
6821
37
    yych = *(YYMARKER = ++YYCURSOR);
6822
37
    if (yybm[256+yych] & 128) {
6823
5
      goto yy47;
6824
5
    }
6825
32
    if (yych == '\\') goto yy164;
6826
32
yy532:
6827
32
    YYDEBUG(532, *YYCURSOR);
6828
32
    yyleng = YYCURSOR - SCNG(yy_text);
6829
32
#line 1470 "Zend/zend_language_scanner.l"
6830
32
    {
6831
32
  RETURN_TOKEN_WITH_IDENT(T_WHILE);
6832
32
}
6833
0
#line 6834 "Zend/zend_language_scanner.c"
6834
1.18k
yy533:
6835
1.18k
    YYDEBUG(533, *YYCURSOR);
6836
1.18k
    yyaccept = 50;
6837
1.18k
    yych = *(YYMARKER = ++YYCURSOR);
6838
1.18k
    if (yybm[256+yych] & 128) {
6839
17
      goto yy47;
6840
17
    }
6841
1.17k
    if (yych <= ' ') {
6842
194
      if (yych <= '\f') {
6843
62
        if (yych <= 0x08) goto yy534;
6844
55
        if (yych <= '\n') goto yy616;
6845
132
      } else {
6846
132
        if (yych <= '\r') goto yy616;
6847
115
        if (yych >= ' ') goto yy616;
6848
115
      }
6849
977
    } else {
6850
977
      if (yych <= '.') {
6851
899
        if (yych == '#') goto yy618;
6852
899
      } else {
6853
78
        if (yych <= '/') goto yy619;
6854
72
        if (yych == '\\') goto yy164;
6855
72
      }
6856
977
    }
6857
1.03k
yy534:
6858
1.03k
    YYDEBUG(534, *YYCURSOR);
6859
1.03k
    yyleng = YYCURSOR - SCNG(yy_text);
6860
1.03k
#line 1434 "Zend/zend_language_scanner.l"
6861
1.03k
    {
6862
1.03k
  RETURN_TOKEN_WITH_IDENT(T_YIELD);
6863
1.03k
}
6864
0
#line 6865 "Zend/zend_language_scanner.c"
6865
75
yy535:
6866
75
    YYDEBUG(535, *YYCURSOR);
6867
75
    yyaccept = 4;
6868
75
    yych = *(YYMARKER = ++YYCURSOR);
6869
75
    if (yych == 'S') goto yy620;
6870
27
    if (yych == 's') goto yy620;
6871
21
    goto yy48;
6872
45
yy536:
6873
45
    YYDEBUG(536, *YYCURSOR);
6874
45
    yyaccept = 4;
6875
45
    yych = *(YYMARKER = ++YYCURSOR);
6876
45
    if (yych == '_') goto yy621;
6877
4
    goto yy48;
6878
37
yy537:
6879
37
    YYDEBUG(537, *YYCURSOR);
6880
37
    yyaccept = 4;
6881
37
    yych = *(YYMARKER = ++YYCURSOR);
6882
37
    if (yych == 'E') goto yy622;
6883
3
    if (yych == 'e') goto yy622;
6884
0
    goto yy48;
6885
25
yy538:
6886
25
    YYDEBUG(538, *YYCURSOR);
6887
25
    yyaccept = 4;
6888
25
    yych = *(YYMARKER = ++YYCURSOR);
6889
25
    if (yych == 'C') goto yy623;
6890
8
    if (yych == 'c') goto yy623;
6891
8
    goto yy48;
6892
34
yy539:
6893
34
    YYDEBUG(539, *YYCURSOR);
6894
34
    yyaccept = 4;
6895
34
    yych = *(YYMARKER = ++YYCURSOR);
6896
34
    if (yych == 'T') goto yy624;
6897
11
    if (yych == 't') goto yy624;
6898
4
    goto yy48;
6899
24
yy540:
6900
24
    YYDEBUG(540, *YYCURSOR);
6901
24
    yyaccept = 4;
6902
24
    yych = *(YYMARKER = ++YYCURSOR);
6903
24
    if (yych == 'E') goto yy625;
6904
3
    if (yych == 'e') goto yy625;
6905
3
    goto yy48;
6906
27
yy541:
6907
27
    YYDEBUG(541, *YYCURSOR);
6908
27
    yyaccept = 4;
6909
27
    yych = *(YYMARKER = ++YYCURSOR);
6910
27
    if (yych == 'H') goto yy626;
6911
5
    if (yych == 'h') goto yy626;
6912
5
    goto yy48;
6913
88
yy542:
6914
88
    YYDEBUG(542, *YYCURSOR);
6915
88
    yyaccept = 4;
6916
88
    yych = *(YYMARKER = ++YYCURSOR);
6917
88
    if (yych == 'E') goto yy627;
6918
31
    if (yych == 'e') goto yy627;
6919
11
    goto yy48;
6920
56
yy543:
6921
56
    YYDEBUG(543, *YYCURSOR);
6922
56
    yyaccept = 4;
6923
56
    yych = *(YYMARKER = ++YYCURSOR);
6924
56
    if (yych == 'P') goto yy628;
6925
17
    if (yych == 'p') goto yy628;
6926
16
    goto yy48;
6927
114
yy544:
6928
114
    YYDEBUG(544, *YYCURSOR);
6929
114
    yyaccept = 4;
6930
114
    yych = *(YYMARKER = ++YYCURSOR);
6931
114
    if (yych == 'I') goto yy629;
6932
13
    if (yych == 'i') goto yy629;
6933
0
    goto yy48;
6934
536
yy545:
6935
536
    YYDEBUG(545, *YYCURSOR);
6936
536
    ++YYCURSOR;
6937
536
    YYFILL(1);
6938
536
    yych = *YYCURSOR;
6939
536
    YYDEBUG(546, *YYCURSOR);
6940
536
    if (yybm[0+yych] & 64) {
6941
6
      goto yy355;
6942
6
    }
6943
530
    if (yych <= ' ') {
6944
182
      if (yych <= '\n') {
6945
84
        if (yych <= 0x00) goto yy86;
6946
61
        if (yych <= 0x08) goto yy230;
6947
58
        goto yy545;
6948
98
      } else {
6949
98
        if (yych == '\r') goto yy545;
6950
18
        if (yych <= 0x1F) goto yy230;
6951
14
        goto yy545;
6952
18
      }
6953
348
    } else {
6954
348
      if (yych <= '$') {
6955
232
        if (yych <= '"') goto yy230;
6956
232
        if (yych <= '#') goto yy630;
6957
19
        goto yy631;
6958
232
      } else {
6959
116
        if (yych <= '-') goto yy230;
6960
116
        if (yych <= '.') goto yy632;
6961
111
        if (yych <= '/') goto yy633;
6962
15
        goto yy230;
6963
111
      }
6964
348
    }
6965
236
yy547:
6966
236
    YYDEBUG(547, *YYCURSOR);
6967
236
    ++YYCURSOR;
6968
236
    YYFILL(1);
6969
236
    yych = *YYCURSOR;
6970
236
    YYDEBUG(548, *YYCURSOR);
6971
236
    if (yych <= '\r') {
6972
91
      if (yych <= '\t') {
6973
5
        if (yych <= 0x00) goto yy86;
6974
3
        goto yy443;
6975
86
      } else {
6976
86
        if (yych <= '\n') goto yy545;
6977
36
        if (yych <= '\f') goto yy443;
6978
33
        goto yy545;
6979
36
      }
6980
145
    } else {
6981
145
      if (yych <= '*') {
6982
98
        if (yych <= ')') goto yy443;
6983
74
        goto yy547;
6984
98
      } else {
6985
47
        if (yych == '/') goto yy227;
6986
4
        goto yy443;
6987
47
      }
6988
145
    }
6989
170
yy549:
6990
170
    YYDEBUG(549, *YYCURSOR);
6991
170
    ++YYCURSOR;
6992
170
    YYFILL(1);
6993
170
    yych = *YYCURSOR;
6994
170
    YYDEBUG(550, *YYCURSOR);
6995
170
    if (yych <= 0x1F) {
6996
17
      if (yych == '\t') goto yy549;
6997
17
      goto yy86;
6998
153
    } else {
6999
153
      if (yych <= ' ') goto yy549;
7000
120
      if (yych == ')') goto yy634;
7001
111
      goto yy86;
7002
120
    }
7003
2
yy551:
7004
2
    YYDEBUG(551, *YYCURSOR);
7005
2
    yych = *++YYCURSOR;
7006
2
    if (yych == 'Y') goto yy636;
7007
2
    if (yych == 'y') goto yy636;
7008
0
    goto yy86;
7009
2
yy552:
7010
2
    YYDEBUG(552, *YYCURSOR);
7011
2
    ++YYCURSOR;
7012
2
    YYFILL(1);
7013
2
    yych = *YYCURSOR;
7014
10
yy553:
7015
10
    YYDEBUG(553, *YYCURSOR);
7016
10
    if (yych <= 0x1F) {
7017
2
      if (yych == '\t') goto yy552;
7018
2
      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 1696 "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
9
yy556:
7033
9
    YYDEBUG(556, *YYCURSOR);
7034
9
    yych = *++YYCURSOR;
7035
9
    if (yych == 'A') goto yy638;
7036
9
    if (yych == 'a') goto yy638;
7037
3
    goto yy86;
7038
6
yy557:
7039
6
    YYDEBUG(557, *YYCURSOR);
7040
6
    yych = *++YYCURSOR;
7041
6
    if (yych == 'E') goto yy639;
7042
6
    if (yych == 'e') goto yy639;
7043
1
    goto yy86;
7044
15
yy558:
7045
15
    YYDEBUG(558, *YYCURSOR);
7046
15
    ++YYCURSOR;
7047
15
    YYFILL(1);
7048
15
    yych = *YYCURSOR;
7049
15
    YYDEBUG(559, *YYCURSOR);
7050
15
    if (yych <= 0x1F) {
7051
6
      if (yych == '\t') goto yy558;
7052
6
      goto yy86;
7053
9
    } else {
7054
9
      if (yych <= ' ') goto yy558;
7055
8
      if (yych == ')') goto yy641;
7056
1
      goto yy86;
7057
8
    }
7058
11
yy560:
7059
11
    YYDEBUG(560, *YYCURSOR);
7060
11
    yych = *++YYCURSOR;
7061
11
    if (yych == 'E') goto yy643;
7062
11
    if (yych == 'e') goto yy643;
7063
1
    goto yy86;
7064
29
yy561:
7065
29
    YYDEBUG(561, *YYCURSOR);
7066
29
    yych = *++YYCURSOR;
7067
29
    if (yych == 'T') goto yy644;
7068
29
    if (yych == 't') goto yy644;
7069
0
    goto yy86;
7070
1
yy562:
7071
1
    YYDEBUG(562, *YYCURSOR);
7072
1
    ++YYCURSOR;
7073
1
    YYDEBUG(563, *YYCURSOR);
7074
1
    yyleng = YYCURSOR - SCNG(yy_text);
7075
1
#line 1666 "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
69
yy564:
7085
69
    YYDEBUG(564, *YYCURSOR);
7086
69
    yych = *++YYCURSOR;
7087
69
    if (yych == 'G') goto yy646;
7088
69
    if (yych == 'g') goto yy646;
7089
4
    goto yy86;
7090
12
yy565:
7091
12
    YYDEBUG(565, *YYCURSOR);
7092
12
    ++YYCURSOR;
7093
12
    YYFILL(1);
7094
12
    yych = *YYCURSOR;
7095
12
    YYDEBUG(566, *YYCURSOR);
7096
12
    if (yych <= 0x1F) {
7097
0
      if (yych == '\t') goto yy565;
7098
0
      goto yy86;
7099
12
    } else {
7100
12
      if (yych <= ' ') goto yy565;
7101
10
      if (yych == ')') goto yy648;
7102
9
      goto yy86;
7103
10
    }
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 1714 "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
111
yy569:
7115
111
    YYDEBUG(569, *YYCURSOR);
7116
111
    yych = *++YYCURSOR;
7117
111
    if (yych == '\n') goto yy466;
7118
37
    if (yych == '\r') goto yy468;
7119
29
    goto yy86;
7120
118
yy570:
7121
118
    YYDEBUG(570, *YYCURSOR);
7122
118
    yyaccept = 4;
7123
118
    yych = *(YYMARKER = ++YYCURSOR);
7124
118
    if (yych == 'C') goto yy650;
7125
114
    if (yych == 'c') goto yy650;
7126
7
    goto yy48;
7127
26
yy571:
7128
26
    YYDEBUG(571, *YYCURSOR);
7129
26
    yyaccept = 4;
7130
26
    yych = *(YYMARKER = ++YYCURSOR);
7131
26
    if (yych == 'L') goto yy651;
7132
25
    if (yych == 'l') goto yy651;
7133
1
    goto yy48;
7134
3
yy572:
7135
3
    YYDEBUG(572, *YYCURSOR);
7136
3
    yyaccept = 4;
7137
3
    yych = *(YYMARKER = ++YYCURSOR);
7138
3
    if (yych == 'U') goto yy652;
7139
3
    if (yych == 'u') goto yy652;
7140
1
    goto yy48;
7141
72
yy573:
7142
72
    YYDEBUG(573, *YYCURSOR);
7143
72
    yyaccept = 4;
7144
72
    yych = *(YYMARKER = ++YYCURSOR);
7145
72
    if (yych == 'E') goto yy653;
7146
72
    if (yych == 'e') goto yy653;
7147
3
    goto yy48;
7148
17
yy574:
7149
17
    YYDEBUG(574, *YYCURSOR);
7150
17
    yyaccept = 4;
7151
17
    yych = *(YYMARKER = ++YYCURSOR);
7152
17
    if (yych == 'T') goto yy655;
7153
17
    if (yych == 't') goto yy655;
7154
2
    goto yy48;
7155
7
yy575:
7156
7
    YYDEBUG(575, *YYCURSOR);
7157
7
    yyaccept = 51;
7158
7
    yych = *(YYMARKER = ++YYCURSOR);
7159
7
    if (yybm[256+yych] & 128) {
7160
2
      goto yy47;
7161
2
    }
7162
5
    if (yych == '\\') goto yy164;
7163
5
yy576:
7164
5
    YYDEBUG(576, *YYCURSOR);
7165
5
    yyleng = YYCURSOR - SCNG(yy_text);
7166
5
#line 1458 "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
15
yy577:
7172
15
    YYDEBUG(577, *YYCURSOR);
7173
15
    yyaccept = 4;
7174
15
    yych = *(YYMARKER = ++YYCURSOR);
7175
15
    if (yych == 'L') goto yy657;
7176
11
    if (yych == 'l') goto yy657;
7177
8
    goto yy48;
7178
78
yy578:
7179
78
    YYDEBUG(578, *YYCURSOR);
7180
78
    yyaccept = 52;
7181
78
    yych = *(YYMARKER = ++YYCURSOR);
7182
78
    if (yych <= '\\') {
7183
69
      if (yych <= 'D') {
7184
69
        if (yych <= '/') goto yy579;
7185
8
        if (yych <= '9') goto yy47;
7186
8
        if (yych >= 'A') goto yy47;
7187
8
      } else {
7188
0
        if (yych <= 'E') goto yy658;
7189
0
        if (yych <= 'Z') goto yy47;
7190
0
        if (yych >= '\\') goto yy164;
7191
0
      }
7192
69
    } else {
7193
9
      if (yych <= 'd') {
7194
3
        if (yych == '_') goto yy47;
7195
3
        if (yych >= 'a') goto yy47;
7196
6
      } else {
7197
6
        if (yych <= 'e') goto yy658;
7198
2
        if (yych <= 'z') goto yy47;
7199
0
        if (yych >= 0x80) goto yy47;
7200
0
      }
7201
9
    }
7202
72
yy579:
7203
72
    YYDEBUG(579, *YYCURSOR);
7204
72
    yyleng = YYCURSOR - SCNG(yy_text);
7205
72
#line 1486 "Zend/zend_language_scanner.l"
7206
72
    {
7207
72
  RETURN_TOKEN_WITH_IDENT(T_ENDFOR);
7208
72
}
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
238
yy582:
7225
238
    YYDEBUG(582, *YYCURSOR);
7226
238
    ++YYCURSOR;
7227
1.06k
yy583:
7228
1.06k
    YYDEBUG(583, *YYCURSOR);
7229
1.06k
    yyleng = YYCURSOR - SCNG(yy_text);
7230
1.06k
#line 1574 "Zend/zend_language_scanner.l"
7231
1.06k
    {
7232
1.06k
  yyless(4);
7233
1.06k
  RETURN_TOKEN_WITH_IDENT(T_ENUM);
7234
1.06k
}
7235
0
#line 7236 "Zend/zend_language_scanner.c"
7236
96
yy584:
7237
96
    YYDEBUG(584, *YYCURSOR);
7238
96
    yyaccept = 53;
7239
96
    yych = *(YYMARKER = ++YYCURSOR);
7240
96
    if (yych == 'X') goto yy661;
7241
95
    if (yych == 'x') goto yy661;
7242
55
    goto yy583;
7243
134
yy585:
7244
134
    YYDEBUG(585, *YYCURSOR);
7245
134
    yyaccept = 53;
7246
134
    yych = *(YYMARKER = ++YYCURSOR);
7247
134
    if (yych == 'M') goto yy662;
7248
115
    if (yych == 'm') goto yy662;
7249
50
    goto yy583;
7250
15.2k
yy586:
7251
15.2k
    YYDEBUG(586, *YYCURSOR);
7252
15.2k
    ++YYCURSOR;
7253
15.2k
    YYFILL(1);
7254
15.2k
    yych = *YYCURSOR;
7255
15.2k
    YYDEBUG(587, *YYCURSOR);
7256
15.2k
    if (yych <= '\n') {
7257
817
      if (yych <= 0x00) goto yy86;
7258
654
      if (yych <= '\t') goto yy586;
7259
491
      goto yy495;
7260
14.3k
    } else {
7261
14.3k
      if (yych == '\r') goto yy495;
7262
12.8k
      goto yy586;
7263
14.3k
    }
7264
2.84k
yy588:
7265
2.84k
    YYDEBUG(588, *YYCURSOR);
7266
2.84k
    ++YYCURSOR;
7267
2.84k
    YYFILL(1);
7268
2.84k
    yych = *YYCURSOR;
7269
2.84k
    YYDEBUG(589, *YYCURSOR);
7270
2.84k
    if (yych <= 'D') {
7271
1.39k
      if (yych <= 0x1F) {
7272
331
        if (yych <= '\t') {
7273
93
          if (yych <= 0x00) goto yy86;
7274
71
          if (yych <= 0x08) goto yy586;
7275
49
          goto yy588;
7276
238
        } else {
7277
238
          if (yych <= '\n') goto yy495;
7278
196
          if (yych == '\r') goto yy495;
7279
73
          goto yy586;
7280
196
        }
7281
1.06k
      } else {
7282
1.06k
        if (yych <= '#') {
7283
227
          if (yych <= ' ') goto yy588;
7284
168
          if (yych <= '"') goto yy586;
7285
160
          goto yy663;
7286
840
        } else {
7287
840
          if (yych == '/') goto yy664;
7288
141
          if (yych <= '@') goto yy586;
7289
10
          goto yy665;
7290
141
        }
7291
1.06k
      }
7292
1.44k
    } else {
7293
1.44k
      if (yych <= '`') {
7294
90
        if (yych <= 'I') {
7295
44
          if (yych <= 'E') goto yy666;
7296
22
          if (yych <= 'H') goto yy665;
7297
22
          goto yy667;
7298
46
        } else {
7299
46
          if (yych <= 'Z') goto yy665;
7300
22
          if (yych == '_') goto yy665;
7301
1
          goto yy586;
7302
22
        }
7303
1.35k
      } else {
7304
1.35k
        if (yych <= 'h') {
7305
814
          if (yych == 'e') goto yy666;
7306
50
          goto yy665;
7307
814
        } else {
7308
538
          if (yych <= 'i') goto yy667;
7309
290
          if (yych <= 'z') goto yy665;
7310
163
          if (yych <= 0x7F) goto yy586;
7311
70
          goto yy665;
7312
163
        }
7313
1.35k
      }
7314
1.44k
    }
7315
4.25k
yy590:
7316
4.25k
    YYDEBUG(590, *YYCURSOR);
7317
4.25k
    ++YYCURSOR;
7318
4.25k
    YYFILL(1);
7319
4.25k
    yych = *YYCURSOR;
7320
4.25k
    YYDEBUG(591, *YYCURSOR);
7321
4.25k
    if (yych <= 0x00) goto yy86;
7322
4.10k
    if (yych == '*') goto yy668;
7323
3.86k
    goto yy590;
7324
3.86k
yy592:
7325
309
    YYDEBUG(592, *YYCURSOR);
7326
309
    yyaccept = 4;
7327
309
    yych = *(YYMARKER = ++YYCURSOR);
7328
309
    if (yych == 'S') goto yy670;
7329
305
    if (yych == 's') goto yy670;
7330
11
    goto yy48;
7331
42
yy593:
7332
42
    YYDEBUG(593, *YYCURSOR);
7333
42
    yyaccept = 4;
7334
42
    yych = *(YYMARKER = ++YYCURSOR);
7335
42
    if (yych == 'Y') goto yy672;
7336
42
    if (yych == 'y') goto yy672;
7337
8
    goto yy48;
7338
203
yy594:
7339
203
    YYDEBUG(594, *YYCURSOR);
7340
203
    yyaccept = 4;
7341
203
    yych = *(YYMARKER = ++YYCURSOR);
7342
203
    if (yych == 'H') goto yy674;
7343
202
    if (yych == 'h') goto yy674;
7344
1
    goto yy48;
7345
1.74k
yy595:
7346
1.74k
    YYDEBUG(595, *YYCURSOR);
7347
1.74k
    yyaccept = 4;
7348
1.74k
    yych = *(YYMARKER = ++YYCURSOR);
7349
1.74k
    if (yych == 'O') goto yy676;
7350
1.71k
    if (yych == 'o') goto yy676;
7351
5
    goto yy48;
7352
62
yy596:
7353
62
    YYDEBUG(596, *YYCURSOR);
7354
62
    yyaccept = 54;
7355
62
    yych = *(YYMARKER = ++YYCURSOR);
7356
62
    if (yybm[256+yych] & 128) {
7357
15
      goto yy47;
7358
15
    }
7359
47
    if (yych == '\\') goto yy164;
7360
47
yy597:
7361
47
    YYDEBUG(597, *YYCURSOR);
7362
47
    yyleng = YYCURSOR - SCNG(yy_text);
7363
47
#line 1750 "Zend/zend_language_scanner.l"
7364
47
    {
7365
47
  RETURN_TOKEN_WITH_IDENT(T_GLOBAL);
7366
47
}
7367
0
#line 7368 "Zend/zend_language_scanner.c"
7368
222
yy598:
7369
222
    YYDEBUG(598, *YYCURSOR);
7370
222
    yyaccept = 4;
7371
222
    yych = *(YYMARKER = ++YYCURSOR);
7372
222
    if (yych == 'E') goto yy677;
7373
184
    if (yych == 'e') goto yy677;
7374
58
    goto yy48;
7375
58
yy599:
7376
38
    YYDEBUG(599, *YYCURSOR);
7377
38
    yyaccept = 4;
7378
38
    yych = *(YYMARKER = ++YYCURSOR);
7379
38
    if (yych == 'E') goto yy678;
7380
38
    if (yych == 'e') goto yy678;
7381
5
    goto yy48;
7382
29
yy600:
7383
29
    YYDEBUG(600, *YYCURSOR);
7384
29
    yyaccept = 4;
7385
29
    yych = *(YYMARKER = ++YYCURSOR);
7386
29
    if (yych == 'C') goto yy680;
7387
29
    if (yych == 'c') goto yy680;
7388
0
    goto yy48;
7389
13
yy601:
7390
13
    YYDEBUG(601, *YYCURSOR);
7391
13
    yyaccept = 4;
7392
13
    yych = *(YYMARKER = ++YYCURSOR);
7393
13
    if (yych == 'D') goto yy681;
7394
13
    if (yych == 'd') goto yy681;
7395
0
    goto yy48;
7396
207
yy602:
7397
207
    YYDEBUG(602, *YYCURSOR);
7398
207
    yyaccept = 4;
7399
207
    yych = *(YYMARKER = ++YYCURSOR);
7400
207
    if (yych == 'A') goto yy682;
7401
207
    if (yych == 'a') goto yy682;
7402
10
    goto yy48;
7403
310
yy603:
7404
310
    YYDEBUG(603, *YYCURSOR);
7405
310
    yyaccept = 4;
7406
310
    yych = *(YYMARKER = ++YYCURSOR);
7407
310
    if (yych == 'A') goto yy683;
7408
304
    if (yych == 'a') goto yy683;
7409
13
    goto yy48;
7410
242
yy604:
7411
242
    YYDEBUG(604, *YYCURSOR);
7412
242
    yyaccept = 4;
7413
242
    yych = *(YYMARKER = ++YYCURSOR);
7414
242
    if (yych == 'E') goto yy684;
7415
242
    if (yych == 'e') goto yy684;
7416
0
    goto yy48;
7417
96
yy605:
7418
96
    YYDEBUG(605, *YYCURSOR);
7419
96
    yyaccept = 4;
7420
96
    yych = *(YYMARKER = ++YYCURSOR);
7421
96
    if (yych == 'T') goto yy686;
7422
96
    if (yych == 't') goto yy686;
7423
3
    goto yy48;
7424
971
yy606:
7425
971
    YYDEBUG(606, *YYCURSOR);
7426
971
    yyaccept = 55;
7427
971
    yych = *(YYMARKER = ++YYCURSOR);
7428
971
    if (yybm[256+yych] & 128) {
7429
25
      goto yy47;
7430
25
    }
7431
946
    if (yych == '(') goto yy687;
7432
944
    if (yych == '\\') goto yy164;
7433
944
yy607:
7434
944
    YYDEBUG(607, *YYCURSOR);
7435
944
    yyleng = YYCURSOR - SCNG(yy_text);
7436
944
#line 1798 "Zend/zend_language_scanner.l"
7437
944
    {
7438
944
  RETURN_TOKEN_WITH_IDENT(T_PUBLIC);
7439
944
}
7440
0
#line 7441 "Zend/zend_language_scanner.c"
7441
204
yy608:
7442
204
    YYDEBUG(608, *YYCURSOR);
7443
204
    yyaccept = 4;
7444
204
    yych = *(YYMARKER = ++YYCURSOR);
7445
204
    if (yych == 'L') goto yy688;
7446
204
    if (yych == 'l') goto yy688;
7447
17
    goto yy48;
7448
105
yy609:
7449
105
    YYDEBUG(609, *YYCURSOR);
7450
105
    yyaccept = 4;
7451
105
    yych = *(YYMARKER = ++YYCURSOR);
7452
105
    if (yych == 'E') goto yy689;
7453
102
    if (yych == 'e') goto yy689;
7454
20
    goto yy48;
7455
568
yy610:
7456
568
    YYDEBUG(610, *YYCURSOR);
7457
568
    yyaccept = 56;
7458
568
    yych = *(YYMARKER = ++YYCURSOR);
7459
568
    if (yybm[256+yych] & 128) {
7460
19
      goto yy47;
7461
19
    }
7462
549
    if (yych == '\\') goto yy164;
7463
549
yy611:
7464
549
    YYDEBUG(611, *YYCURSOR);
7465
549
    yyleng = YYCURSOR - SCNG(yy_text);
7466
549
#line 1419 "Zend/zend_language_scanner.l"
7467
549
    {
7468
549
  RETURN_TOKEN_WITH_IDENT(T_RETURN);
7469
549
}
7470
0
#line 7471 "Zend/zend_language_scanner.c"
7471
269
yy612:
7472
269
    YYDEBUG(612, *YYCURSOR);
7473
269
    yyaccept = 57;
7474
269
    yych = *(YYMARKER = ++YYCURSOR);
7475
269
    if (yybm[256+yych] & 128) {
7476
7
      goto yy47;
7477
7
    }
7478
262
    if (yych == '\\') goto yy164;
7479
262
yy613:
7480
262
    YYDEBUG(613, *YYCURSOR);
7481
262
    yyleng = YYCURSOR - SCNG(yy_text);
7482
262
#line 1766 "Zend/zend_language_scanner.l"
7483
262
    {
7484
262
  RETURN_TOKEN_WITH_IDENT(T_STATIC);
7485
262
}
7486
0
#line 7487 "Zend/zend_language_scanner.c"
7487
18
yy614:
7488
18
    YYDEBUG(614, *YYCURSOR);
7489
18
    yyaccept = 58;
7490
18
    yych = *(YYMARKER = ++YYCURSOR);
7491
18
    if (yybm[256+yych] & 128) {
7492
0
      goto yy47;
7493
0
    }
7494
18
    if (yych == '\\') goto yy164;
7495
18
yy615:
7496
18
    YYDEBUG(615, *YYCURSOR);
7497
18
    yyleng = YYCURSOR - SCNG(yy_text);
7498
18
#line 1514 "Zend/zend_language_scanner.l"
7499
18
    {
7500
18
  RETURN_TOKEN_WITH_IDENT(T_SWITCH);
7501
18
}
7502
0
#line 7503 "Zend/zend_language_scanner.c"
7503
1.95k
yy616:
7504
1.95k
    YYDEBUG(616, *YYCURSOR);
7505
1.95k
    ++YYCURSOR;
7506
1.95k
    YYFILL(5);
7507
1.95k
    yych = *YYCURSOR;
7508
1.95k
    YYDEBUG(617, *YYCURSOR);
7509
1.95k
    if (yych <= '"') {
7510
450
      if (yych <= '\f') {
7511
122
        if (yych <= 0x08) goto yy86;
7512
108
        if (yych <= '\n') goto yy616;
7513
22
        goto yy86;
7514
328
      } else {
7515
328
        if (yych <= '\r') goto yy616;
7516
111
        if (yych == ' ') goto yy616;
7517
8
        goto yy86;
7518
111
      }
7519
1.50k
    } else {
7520
1.50k
      if (yych <= 'E') {
7521
1.19k
        if (yych <= '#') goto yy618;
7522
202
        if (yych == '/') goto yy619;
7523
138
        goto yy86;
7524
310
      } else {
7525
310
        if (yych <= 'F') goto yy691;
7526
266
        if (yych == 'f') goto yy691;
7527
232
        goto yy86;
7528
266
      }
7529
1.50k
    }
7530
1.87k
yy618:
7531
1.87k
    YYDEBUG(618, *YYCURSOR);
7532
1.87k
    ++YYCURSOR;
7533
1.87k
    YYFILL(1);
7534
1.87k
    yych = *YYCURSOR;
7535
1.87k
    if (yych <= '\f') {
7536
767
      if (yych <= 0x00) goto yy86;
7537
766
      if (yych == '\n') goto yy694;
7538
31
      goto yy692;
7539
1.11k
    } else {
7540
1.11k
      if (yych <= '\r') goto yy694;
7541
695
      if (yych == '[') goto yy86;
7542
690
      goto yy692;
7543
695
    }
7544
70
yy619:
7545
70
    YYDEBUG(619, *YYCURSOR);
7546
70
    ++YYCURSOR;
7547
70
    YYFILL(1);
7548
70
    yych = *YYCURSOR;
7549
70
    if (yych == '*') goto yy696;
7550
44
    if (yych == '/') goto yy692;
7551
15
    goto yy86;
7552
54
yy620:
7553
54
    YYDEBUG(620, *YYCURSOR);
7554
54
    yyaccept = 4;
7555
54
    yych = *(YYMARKER = ++YYCURSOR);
7556
54
    if (yych == 'S') goto yy698;
7557
6
    if (yych == 's') goto yy698;
7558
6
    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
2
    goto yy48;
7565
37
yy622:
7566
37
    YYDEBUG(622, *YYCURSOR);
7567
37
    yyaccept = 4;
7568
37
    yych = *(YYMARKER = ++YYCURSOR);
7569
37
    if (yych == '_') goto yy701;
7570
1
    goto yy48;
7571
17
yy623:
7572
17
    YYDEBUG(623, *YYCURSOR);
7573
17
    yyaccept = 4;
7574
17
    yych = *(YYMARKER = ++YYCURSOR);
7575
17
    if (yych == 'T') goto yy702;
7576
1
    if (yych == 't') goto yy702;
7577
1
    goto yy48;
7578
30
yy624:
7579
30
    YYDEBUG(624, *YYCURSOR);
7580
30
    yyaccept = 4;
7581
30
    yych = *(YYMARKER = ++YYCURSOR);
7582
30
    if (yych == '_') goto yy703;
7583
3
    goto yy48;
7584
21
yy625:
7585
21
    YYDEBUG(625, *YYCURSOR);
7586
21
    yyaccept = 4;
7587
21
    yych = *(YYMARKER = ++YYCURSOR);
7588
21
    if (yych == '_') goto yy704;
7589
0
    goto yy48;
7590
22
yy626:
7591
22
    YYDEBUG(626, *YYCURSOR);
7592
22
    yyaccept = 4;
7593
22
    yych = *(YYMARKER = ++YYCURSOR);
7594
22
    if (yych == 'O') goto yy705;
7595
1
    if (yych == 'o') goto yy705;
7596
0
    goto yy48;
7597
77
yy627:
7598
77
    YYDEBUG(627, *YYCURSOR);
7599
77
    yyaccept = 4;
7600
77
    yych = *(YYMARKER = ++YYCURSOR);
7601
77
    if (yych == 'S') goto yy706;
7602
22
    if (yych == 's') goto yy706;
7603
16
    goto yy48;
7604
40
yy628:
7605
40
    YYDEBUG(628, *YYCURSOR);
7606
40
    yyaccept = 4;
7607
40
    yych = *(YYMARKER = ++YYCURSOR);
7608
40
    if (yych == 'E') goto yy707;
7609
2
    if (yych == 'e') goto yy707;
7610
1
    goto yy48;
7611
114
yy629:
7612
114
    YYDEBUG(629, *YYCURSOR);
7613
114
    yyaccept = 4;
7614
114
    yych = *(YYMARKER = ++YYCURSOR);
7615
114
    if (yych == 'T') goto yy708;
7616
14
    if (yych == 't') goto yy708;
7617
1
    goto yy48;
7618
213
yy630:
7619
213
    YYDEBUG(630, *YYCURSOR);
7620
213
    ++YYCURSOR;
7621
213
    YYFILL(1);
7622
213
    yych = *YYCURSOR;
7623
213
    if (yych <= '\r') {
7624
172
      if (yych <= '\t') {
7625
4
        if (yych <= 0x00) goto yy86;
7626
4
        goto yy443;
7627
168
      } else {
7628
168
        if (yych <= '\n') goto yy709;
7629
18
        if (yych <= '\f') goto yy443;
7630
14
        goto yy709;
7631
18
      }
7632
172
    } else {
7633
41
      if (yych <= '*') {
7634
6
        if (yych <= ')') goto yy443;
7635
6
        goto yy547;
7636
35
      } else {
7637
35
        if (yych == '[') goto yy230;
7638
20
        goto yy443;
7639
35
      }
7640
41
    }
7641
22
yy631:
7642
22
    YYDEBUG(631, *YYCURSOR);
7643
22
    yyaccept = 26;
7644
22
    YYMARKER = ++YYCURSOR;
7645
22
    YYFILL(1);
7646
22
    yych = *YYCURSOR;
7647
22
    if (yybm[0+yych] & 4) {
7648
11
      goto yy230;
7649
11
    }
7650
11
    if (yych <= 0x00) goto yy89;
7651
5
    goto yy355;
7652
5
yy632:
7653
5
    YYDEBUG(632, *YYCURSOR);
7654
5
    ++YYCURSOR;
7655
5
    YYFILL(1);
7656
5
    yych = *YYCURSOR;
7657
5
    if (yybm[0+yych] & 64) {
7658
2
      goto yy355;
7659
2
    }
7660
3
    if (yych <= 0x00) goto yy86;
7661
3
    if (yych == '.') goto yy711;
7662
0
    goto yy230;
7663
96
yy633:
7664
96
    YYDEBUG(633, *YYCURSOR);
7665
96
    ++YYCURSOR;
7666
96
    YYFILL(1);
7667
96
    yych = *YYCURSOR;
7668
96
    if (yych <= '*') {
7669
79
      if (yych <= 0x00) goto yy86;
7670
77
      if (yych <= ')') goto yy230;
7671
75
      goto yy712;
7672
77
    } else {
7673
17
      if (yych == '/') goto yy443;
7674
6
      goto yy230;
7675
17
    }
7676
9
yy634:
7677
9
    YYDEBUG(634, *YYCURSOR);
7678
9
    ++YYCURSOR;
7679
9
    YYDEBUG(635, *YYCURSOR);
7680
9
    yyleng = YYCURSOR - SCNG(yy_text);
7681
9
#line 1688 "Zend/zend_language_scanner.l"
7682
9
    {
7683
9
  RETURN_TOKEN(T_ARRAY_CAST);
7684
9
}
7685
0
#line 7686 "Zend/zend_language_scanner.c"
7686
2
yy636:
7687
2
    YYDEBUG(636, *YYCURSOR);
7688
2
    ++YYCURSOR;
7689
2
    YYFILL(1);
7690
2
    yych = *YYCURSOR;
7691
2
    YYDEBUG(637, *YYCURSOR);
7692
2
    if (yych <= 0x1F) {
7693
0
      if (yych == '\t') goto yy636;
7694
0
      goto yy86;
7695
2
    } else {
7696
2
      if (yych <= ' ') goto yy636;
7697
2
      if (yych == ')') goto yy713;
7698
0
      goto yy86;
7699
2
    }
7700
6
yy638:
7701
6
    YYDEBUG(638, *YYCURSOR);
7702
6
    yych = *++YYCURSOR;
7703
6
    if (yych == 'N') goto yy715;
7704
6
    if (yych == 'n') goto yy715;
7705
3
    goto yy86;
7706
5
yy639:
7707
5
    YYDEBUG(639, *YYCURSOR);
7708
5
    ++YYCURSOR;
7709
5
    YYFILL(1);
7710
5
    yych = *YYCURSOR;
7711
5
    YYDEBUG(640, *YYCURSOR);
7712
5
    if (yych <= 0x1F) {
7713
0
      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
0
      goto yy86;
7719
5
    }
7720
7
yy641:
7721
7
    YYDEBUG(641, *YYCURSOR);
7722
7
    ++YYCURSOR;
7723
7
    YYDEBUG(642, *YYCURSOR);
7724
7
    yyleng = YYCURSOR - SCNG(yy_text);
7725
7
#line 1652 "Zend/zend_language_scanner.l"
7726
7
    {
7727
7
  RETURN_TOKEN(T_DOUBLE_CAST);
7728
7
}
7729
0
#line 7730 "Zend/zend_language_scanner.c"
7730
10
yy643:
7731
10
    YYDEBUG(643, *YYCURSOR);
7732
10
    yych = *++YYCURSOR;
7733
10
    if (yych == 'R') goto yy719;
7734
10
    if (yych == 'r') goto yy719;
7735
1
    goto yy86;
7736
35
yy644:
7737
35
    YYDEBUG(644, *YYCURSOR);
7738
35
    ++YYCURSOR;
7739
35
    YYFILL(1);
7740
35
    yych = *YYCURSOR;
7741
35
    YYDEBUG(645, *YYCURSOR);
7742
35
    if (yych <= 0x1F) {
7743
5
      if (yych == '\t') goto yy644;
7744
3
      goto yy86;
7745
30
    } else {
7746
30
      if (yych <= ' ') goto yy644;
7747
26
      if (yych == ')') goto yy721;
7748
4
      goto yy86;
7749
26
    }
7750
87
yy646:
7751
87
    YYDEBUG(646, *YYCURSOR);
7752
87
    ++YYCURSOR;
7753
87
    YYFILL(1);
7754
87
    yych = *YYCURSOR;
7755
87
    YYDEBUG(647, *YYCURSOR);
7756
87
    if (yych <= 0x1F) {
7757
0
      if (yych == '\t') goto yy646;
7758
0
      goto yy86;
7759
87
    } else {
7760
87
      if (yych <= ' ') goto yy646;
7761
65
      if (yych == ')') goto yy723;
7762
34
      goto yy86;
7763
65
    }
7764
1
yy648:
7765
1
    YYDEBUG(648, *YYCURSOR);
7766
1
    ++YYCURSOR;
7767
1
    YYDEBUG(649, *YYCURSOR);
7768
1
    yyleng = YYCURSOR - SCNG(yy_text);
7769
1
#line 1710 "Zend/zend_language_scanner.l"
7770
1
    {
7771
1
  RETURN_TOKEN(T_UNSET_CAST);
7772
1
}
7773
0
#line 7774 "Zend/zend_language_scanner.c"
7774
111
yy650:
7775
111
    YYDEBUG(650, *YYCURSOR);
7776
111
    yyaccept = 4;
7777
111
    yych = *(YYMARKER = ++YYCURSOR);
7778
111
    if (yych == 'T') goto yy725;
7779
111
    if (yych == 't') goto yy725;
7780
5
    goto yy48;
7781
25
yy651:
7782
25
    YYDEBUG(651, *YYCURSOR);
7783
25
    yyaccept = 4;
7784
25
    yych = *(YYMARKER = ++YYCURSOR);
7785
25
    if (yych == 'E') goto yy727;
7786
24
    if (yych == 'e') goto yy727;
7787
6
    goto yy48;
7788
6
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
69
yy653:
7796
69
    YYDEBUG(653, *YYCURSOR);
7797
69
    yyaccept = 59;
7798
69
    yych = *(YYMARKER = ++YYCURSOR);
7799
69
    if (yybm[256+yych] & 128) {
7800
1
      goto yy47;
7801
1
    }
7802
68
    if (yych == '\\') goto yy164;
7803
68
yy654:
7804
68
    YYDEBUG(654, *YYCURSOR);
7805
68
    yyleng = YYCURSOR - SCNG(yy_text);
7806
68
#line 1498 "Zend/zend_language_scanner.l"
7807
68
    {
7808
68
  RETURN_TOKEN_WITH_IDENT(T_DECLARE);
7809
68
}
7810
0
#line 7811 "Zend/zend_language_scanner.c"
7811
15
yy655:
7812
15
    YYDEBUG(655, *YYCURSOR);
7813
15
    yyaccept = 60;
7814
15
    yych = *(YYMARKER = ++YYCURSOR);
7815
15
    if (yybm[256+yych] & 128) {
7816
1
      goto yy47;
7817
1
    }
7818
14
    if (yych == '\\') goto yy164;
7819
14
yy656:
7820
14
    YYDEBUG(656, *YYCURSOR);
7821
14
    yyleng = YYCURSOR - SCNG(yy_text);
7822
14
#line 1530 "Zend/zend_language_scanner.l"
7823
14
    {
7824
14
  RETURN_TOKEN_WITH_IDENT(T_DEFAULT);
7825
14
}
7826
0
#line 7827 "Zend/zend_language_scanner.c"
7827
7
yy657:
7828
7
    YYDEBUG(657, *YYCURSOR);
7829
7
    yyaccept = 4;
7830
7
    yych = *(YYMARKER = ++YYCURSOR);
7831
7
    if (yych == 'A') goto yy731;
7832
7
    if (yych == 'a') goto yy731;
7833
4
    goto yy48;
7834
4
yy658:
7835
4
    YYDEBUG(658, *YYCURSOR);
7836
4
    yyaccept = 4;
7837
4
    yych = *(YYMARKER = ++YYCURSOR);
7838
4
    if (yych == 'A') goto yy732;
7839
4
    if (yych == 'a') goto yy732;
7840
4
    goto yy48;
7841
4
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
41
yy661:
7856
41
    YYDEBUG(661, *YYCURSOR);
7857
41
    yych = *++YYCURSOR;
7858
41
    if (yych == 'T') goto yy736;
7859
41
    if (yych == 't') goto yy736;
7860
29
    goto yy86;
7861
84
yy662:
7862
84
    YYDEBUG(662, *YYCURSOR);
7863
84
    yych = *++YYCURSOR;
7864
84
    if (yych == 'P') goto yy737;
7865
79
    if (yych == 'p') goto yy737;
7866
21
    goto yy86;
7867
160
yy663:
7868
160
    YYDEBUG(663, *YYCURSOR);
7869
160
    ++YYCURSOR;
7870
160
    YYFILL(1);
7871
160
    yych = *YYCURSOR;
7872
160
    if (yych <= '\n') {
7873
43
      if (yych <= 0x00) goto yy86;
7874
29
      if (yych <= '\t') goto yy586;
7875
28
      goto yy588;
7876
117
    } else {
7877
117
      if (yych == '\r') goto yy588;
7878
50
      goto yy586;
7879
117
    }
7880
699
yy664:
7881
699
    YYDEBUG(664, *YYCURSOR);
7882
699
    ++YYCURSOR;
7883
699
    YYFILL(1);
7884
699
    yych = *YYCURSOR;
7885
699
    if (yych <= '\f') {
7886
40
      if (yych <= 0x00) goto yy86;
7887
26
      if (yych == '\n') goto yy495;
7888
0
      goto yy586;
7889
659
    } else {
7890
659
      if (yych <= '\r') goto yy495;
7891
620
      if (yych == '*') goto yy738;
7892
64
      goto yy586;
7893
620
    }
7894
302
yy665:
7895
302
    YYDEBUG(665, *YYCURSOR);
7896
302
    yyaccept = 53;
7897
302
    YYMARKER = ++YYCURSOR;
7898
302
    YYFILL(1);
7899
302
    yych = *YYCURSOR;
7900
302
    if (yych <= '\n') {
7901
33
      if (yych <= 0x00) goto yy583;
7902
22
      if (yych <= '\t') goto yy586;
7903
13
      goto yy495;
7904
269
    } else {
7905
269
      if (yych == '\r') goto yy495;
7906
252
      goto yy586;
7907
269
    }
7908
786
yy666:
7909
786
    YYDEBUG(666, *YYCURSOR);
7910
786
    yyaccept = 53;
7911
786
    YYMARKER = ++YYCURSOR;
7912
786
    YYFILL(1);
7913
786
    yych = *YYCURSOR;
7914
786
    if (yych <= '\r') {
7915
38
      if (yych <= '\t') {
7916
9
        if (yych <= 0x00) goto yy583;
7917
0
        goto yy586;
7918
29
      } else {
7919
29
        if (yych <= '\n') goto yy495;
7920
22
        if (yych <= '\f') goto yy586;
7921
21
        goto yy495;
7922
22
      }
7923
748
    } else {
7924
748
      if (yych <= 'X') {
7925
59
        if (yych <= 'W') goto yy586;
7926
2
        goto yy740;
7927
689
      } else {
7928
689
        if (yych == 'x') goto yy740;
7929
459
        goto yy586;
7930
689
      }
7931
748
    }
7932
270
yy667:
7933
270
    YYDEBUG(667, *YYCURSOR);
7934
270
    yyaccept = 53;
7935
270
    YYMARKER = ++YYCURSOR;
7936
270
    YYFILL(1);
7937
270
    yych = *YYCURSOR;
7938
270
    if (yych <= '\r') {
7939
49
      if (yych <= '\t') {
7940
28
        if (yych <= 0x00) goto yy583;
7941
11
        goto yy586;
7942
28
      } else {
7943
21
        if (yych <= '\n') goto yy495;
7944
10
        if (yych <= '\f') goto yy586;
7945
1
        goto yy495;
7946
10
      }
7947
221
    } else {
7948
221
      if (yych <= 'M') {
7949
162
        if (yych <= 'L') goto yy586;
7950
159
        goto yy741;
7951
162
      } else {
7952
59
        if (yych == 'm') goto yy741;
7953
12
        goto yy586;
7954
59
      }
7955
221
    }
7956
286
yy668:
7957
286
    YYDEBUG(668, *YYCURSOR);
7958
286
    ++YYCURSOR;
7959
286
    YYFILL(1);
7960
286
    yych = *YYCURSOR;
7961
286
    YYDEBUG(669, *YYCURSOR);
7962
286
    if (yych <= '*') {
7963
59
      if (yych <= 0x00) goto yy86;
7964
57
      if (yych <= ')') goto yy590;
7965
19
      goto yy668;
7966
227
    } else {
7967
227
      if (yych == '/') goto yy495;
7968
38
      goto yy590;
7969
227
    }
7970
298
yy670:
7971
298
    YYDEBUG(670, *YYCURSOR);
7972
298
    yyaccept = 61;
7973
298
    yych = *(YYMARKER = ++YYCURSOR);
7974
298
    if (yybm[256+yych] & 128) {
7975
3
      goto yy47;
7976
3
    }
7977
295
    if (yych == '\\') goto yy164;
7978
295
yy671:
7979
295
    YYDEBUG(671, *YYCURSOR);
7980
295
    yyleng = YYCURSOR - SCNG(yy_text);
7981
295
#line 1579 "Zend/zend_language_scanner.l"
7982
295
    {
7983
295
  RETURN_TOKEN_WITH_IDENT(T_EXTENDS);
7984
295
}
7985
0
#line 7986 "Zend/zend_language_scanner.c"
7986
34
yy672:
7987
34
    YYDEBUG(672, *YYCURSOR);
7988
34
    yyaccept = 62;
7989
34
    yych = *(YYMARKER = ++YYCURSOR);
7990
34
    if (yybm[256+yych] & 128) {
7991
0
      goto yy47;
7992
0
    }
7993
34
    if (yych == '\\') goto yy164;
7994
34
yy673:
7995
34
    YYDEBUG(673, *YYCURSOR);
7996
34
    yyleng = YYCURSOR - SCNG(yy_text);
7997
34
#line 1446 "Zend/zend_language_scanner.l"
7998
34
    {
7999
34
  RETURN_TOKEN_WITH_IDENT(T_FINALLY);
8000
34
}
8001
0
#line 8002 "Zend/zend_language_scanner.c"
8002
202
yy674:
8003
202
    YYDEBUG(674, *YYCURSOR);
8004
202
    yyaccept = 63;
8005
202
    yych = *(YYMARKER = ++YYCURSOR);
8006
202
    if (yybm[256+yych] & 128) {
8007
1
      goto yy47;
8008
1
    }
8009
201
    if (yych == '\\') goto yy164;
8010
201
yy675:
8011
201
    YYDEBUG(675, *YYCURSOR);
8012
201
    yyleng = YYCURSOR - SCNG(yy_text);
8013
201
#line 1490 "Zend/zend_language_scanner.l"
8014
201
    {
8015
201
  RETURN_TOKEN_WITH_IDENT(T_FOREACH);
8016
201
}
8017
0
#line 8018 "Zend/zend_language_scanner.c"
8018
1.73k
yy676:
8019
1.73k
    YYDEBUG(676, *YYCURSOR);
8020
1.73k
    yyaccept = 4;
8021
1.73k
    yych = *(YYMARKER = ++YYCURSOR);
8022
1.73k
    if (yych == 'N') goto yy742;
8023
1.73k
    if (yych == 'n') goto yy742;
8024
12
    goto yy48;
8025
164
yy677:
8026
164
    YYDEBUG(677, *YYCURSOR);
8027
164
    yyaccept = 4;
8028
164
    yych = *(YYMARKER = ++YYCURSOR);
8029
164
    if (yych == 'N') goto yy744;
8030
124
    if (yych == 'n') goto yy744;
8031
15
    goto yy48;
8032
33
yy678:
8033
33
    YYDEBUG(678, *YYCURSOR);
8034
33
    yyaccept = 64;
8035
33
    yych = *(YYMARKER = ++YYCURSOR);
8036
33
    if (yych <= '\\') {
8037
26
      if (yych <= '@') {
8038
26
        if (yych <= '/') goto yy679;
8039
1
        if (yych <= '9') goto yy47;
8040
1
      } else {
8041
0
        if (yych <= 'Z') goto yy47;
8042
0
        if (yych >= '\\') goto yy164;
8043
0
      }
8044
26
    } else {
8045
7
      if (yych <= '`') {
8046
5
        if (yych == '_') goto yy745;
8047
5
      } else {
8048
2
        if (yych <= 'z') goto yy47;
8049
2
        if (yych >= 0x80) goto yy47;
8050
2
      }
8051
7
    }
8052
27
yy679:
8053
27
    YYDEBUG(679, *YYCURSOR);
8054
27
    yyleng = YYCURSOR - SCNG(yy_text);
8055
27
#line 1722 "Zend/zend_language_scanner.l"
8056
27
    {
8057
27
  RETURN_TOKEN_WITH_IDENT(T_INCLUDE);
8058
27
}
8059
0
#line 8060 "Zend/zend_language_scanner.c"
8060
29
yy680:
8061
29
    YYDEBUG(680, *YYCURSOR);
8062
29
    yyaccept = 4;
8063
29
    yych = *(YYMARKER = ++YYCURSOR);
8064
29
    if (yych == 'E') goto yy746;
8065
29
    if (yych == 'e') goto yy746;
8066
0
    goto yy48;
8067
13
yy681:
8068
13
    YYDEBUG(681, *YYCURSOR);
8069
13
    yyaccept = 4;
8070
13
    yych = *(YYMARKER = ++YYCURSOR);
8071
13
    if (yych == 'O') goto yy747;
8072
13
    if (yych == 'o') goto yy747;
8073
1
    goto yy48;
8074
197
yy682:
8075
197
    YYDEBUG(682, *YYCURSOR);
8076
197
    yyaccept = 4;
8077
197
    yych = *(YYMARKER = ++YYCURSOR);
8078
197
    if (yych == 'C') goto yy748;
8079
187
    if (yych == 'c') goto yy748;
8080
0
    goto yy48;
8081
297
yy683:
8082
297
    YYDEBUG(683, *YYCURSOR);
8083
297
    yyaccept = 4;
8084
297
    yych = *(YYMARKER = ++YYCURSOR);
8085
297
    if (yych == 'C') goto yy749;
8086
296
    if (yych == 'c') goto yy749;
8087
8
    goto yy48;
8088
242
yy684:
8089
242
    YYDEBUG(684, *YYCURSOR);
8090
242
    yyaccept = 65;
8091
242
    yych = *(YYMARKER = ++YYCURSOR);
8092
242
    if (yybm[256+yych] & 128) {
8093
0
      goto yy47;
8094
0
    }
8095
242
    if (yych == '(') goto yy750;
8096
88
    if (yych == '\\') goto yy164;
8097
232
yy685:
8098
232
    YYDEBUG(685, *YYCURSOR);
8099
232
    yyleng = YYCURSOR - SCNG(yy_text);
8100
232
#line 1778 "Zend/zend_language_scanner.l"
8101
232
    {
8102
232
  RETURN_TOKEN_WITH_IDENT(T_PRIVATE);
8103
232
}
8104
0
#line 8105 "Zend/zend_language_scanner.c"
8105
93
yy686:
8106
93
    YYDEBUG(686, *YYCURSOR);
8107
93
    yyaccept = 4;
8108
93
    yych = *(YYMARKER = ++YYCURSOR);
8109
93
    if (yych == 'E') goto yy751;
8110
93
    if (yych == 'e') goto yy751;
8111
15
    goto yy48;
8112
15
yy687:
8113
2
    YYDEBUG(687, *YYCURSOR);
8114
2
    yych = *++YYCURSOR;
8115
2
    if (yych == 'S') goto yy752;
8116
2
    if (yych == 's') goto yy752;
8117
0
    goto yy86;
8118
187
yy688:
8119
187
    YYDEBUG(688, *YYCURSOR);
8120
187
    yyaccept = 4;
8121
187
    yych = *(YYMARKER = ++YYCURSOR);
8122
187
    if (yych == 'Y') goto yy753;
8123
187
    if (yych == 'y') goto yy753;
8124
106
    goto yy48;
8125
106
yy689:
8126
85
    YYDEBUG(689, *YYCURSOR);
8127
85
    yyaccept = 66;
8128
85
    yych = *(YYMARKER = ++YYCURSOR);
8129
85
    if (yych <= '\\') {
8130
64
      if (yych <= '@') {
8131
59
        if (yych <= '/') goto yy690;
8132
0
        if (yych <= '9') goto yy47;
8133
5
      } else {
8134
5
        if (yych <= 'Z') goto yy47;
8135
4
        if (yych >= '\\') goto yy164;
8136
4
      }
8137
64
    } else {
8138
21
      if (yych <= '`') {
8139
18
        if (yych == '_') goto yy755;
8140
18
      } else {
8141
3
        if (yych <= 'z') goto yy47;
8142
0
        if (yych >= 0x80) goto yy47;
8143
0
      }
8144
21
    }
8145
63
yy690:
8146
63
    YYDEBUG(690, *YYCURSOR);
8147
63
    yyleng = YYCURSOR - SCNG(yy_text);
8148
63
#line 1730 "Zend/zend_language_scanner.l"
8149
63
    {
8150
63
  RETURN_TOKEN_WITH_IDENT(T_REQUIRE);
8151
63
}
8152
0
#line 8153 "Zend/zend_language_scanner.c"
8153
78
yy691:
8154
78
    YYDEBUG(691, *YYCURSOR);
8155
78
    yych = *++YYCURSOR;
8156
78
    if (yych == 'R') goto yy756;
8157
49
    if (yych == 'r') goto yy756;
8158
13
    goto yy86;
8159
8.78k
yy692:
8160
8.78k
    YYDEBUG(692, *YYCURSOR);
8161
8.78k
    ++YYCURSOR;
8162
8.78k
    YYFILL(1);
8163
8.78k
    yych = *YYCURSOR;
8164
8.78k
    YYDEBUG(693, *YYCURSOR);
8165
8.78k
    if (yych <= '\n') {
8166
825
      if (yych <= 0x00) goto yy86;
8167
724
      if (yych <= '\t') goto yy692;
8168
620
      goto yy616;
8169
7.95k
    } else {
8170
7.95k
      if (yych == '\r') goto yy616;
8171
7.37k
      goto yy692;
8172
7.95k
    }
8173
1.23k
yy694:
8174
1.23k
    YYDEBUG(694, *YYCURSOR);
8175
1.23k
    ++YYCURSOR;
8176
1.23k
    YYFILL(1);
8177
1.23k
    yych = *YYCURSOR;
8178
1.23k
    YYDEBUG(695, *YYCURSOR);
8179
1.23k
    if (yych <= ' ') {
8180
103
      if (yych <= '\n') {
8181
41
        if (yych <= 0x00) goto yy86;
8182
24
        if (yych <= 0x08) goto yy692;
8183
22
        if (yych <= '\t') goto yy694;
8184
15
        goto yy616;
8185
62
      } else {
8186
62
        if (yych == '\r') goto yy616;
8187
27
        if (yych <= 0x1F) goto yy692;
8188
24
        goto yy694;
8189
27
      }
8190
1.12k
    } else {
8191
1.12k
      if (yych <= '/') {
8192
686
        if (yych == '#') goto yy757;
8193
670
        if (yych <= '.') goto yy692;
8194
573
        goto yy758;
8195
670
      } else {
8196
443
        if (yych <= 'F') {
8197
226
          if (yych <= 'E') goto yy692;
8198
109
          goto yy759;
8199
226
        } else {
8200
217
          if (yych == 'f') goto yy759;
8201
115
          goto yy692;
8202
217
        }
8203
443
      }
8204
1.12k
    }
8205
4.05k
yy696:
8206
4.05k
    YYDEBUG(696, *YYCURSOR);
8207
4.05k
    ++YYCURSOR;
8208
4.05k
    YYFILL(1);
8209
4.05k
    yych = *YYCURSOR;
8210
4.05k
    YYDEBUG(697, *YYCURSOR);
8211
4.05k
    if (yych <= 0x00) goto yy86;
8212
3.79k
    if (yych == '*') goto yy760;
8213
3.66k
    goto yy696;
8214
3.66k
yy698:
8215
48
    YYDEBUG(698, *YYCURSOR);
8216
48
    yyaccept = 4;
8217
48
    yych = *(YYMARKER = ++YYCURSOR);
8218
48
    if (yych == '_') goto yy762;
8219
0
    goto yy48;
8220
39
yy699:
8221
39
    YYDEBUG(699, *YYCURSOR);
8222
39
    yyaccept = 67;
8223
39
    yych = *(YYMARKER = ++YYCURSOR);
8224
39
    if (yybm[256+yych] & 128) {
8225
0
      goto yy47;
8226
0
    }
8227
39
    if (yych == '\\') goto yy164;
8228
39
yy700:
8229
39
    YYDEBUG(700, *YYCURSOR);
8230
39
    yyleng = YYCURSOR - SCNG(yy_text);
8231
39
#line 2281 "Zend/zend_language_scanner.l"
8232
39
    {
8233
39
  RETURN_TOKEN_WITH_IDENT(T_DIR);
8234
39
}
8235
0
#line 8236 "Zend/zend_language_scanner.c"
8236
36
yy701:
8237
36
    YYDEBUG(701, *YYCURSOR);
8238
36
    yyaccept = 4;
8239
36
    yych = *(YYMARKER = ++YYCURSOR);
8240
36
    if (yych == '_') goto yy763;
8241
1
    goto yy48;
8242
16
yy702:
8243
16
    YYDEBUG(702, *YYCURSOR);
8244
16
    yyaccept = 4;
8245
16
    yych = *(YYMARKER = ++YYCURSOR);
8246
16
    if (yych == 'I') goto yy765;
8247
1
    if (yych == 'i') goto yy765;
8248
1
    goto yy48;
8249
27
yy703:
8250
27
    YYDEBUG(703, *YYCURSOR);
8251
27
    yyaccept = 4;
8252
27
    yych = *(YYMARKER = ++YYCURSOR);
8253
27
    if (yych == 'C') goto yy766;
8254
11
    if (yych == 'c') goto yy766;
8255
8
    goto yy48;
8256
21
yy704:
8257
21
    YYDEBUG(704, *YYCURSOR);
8258
21
    yyaccept = 4;
8259
21
    yych = *(YYMARKER = ++YYCURSOR);
8260
21
    if (yych == '_') goto yy767;
8261
7
    goto yy48;
8262
22
yy705:
8263
22
    YYDEBUG(705, *YYCURSOR);
8264
22
    yyaccept = 4;
8265
22
    yych = *(YYMARKER = ++YYCURSOR);
8266
22
    if (yych == 'D') goto yy769;
8267
1
    if (yych == 'd') goto yy769;
8268
1
    goto yy48;
8269
61
yy706:
8270
61
    YYDEBUG(706, *YYCURSOR);
8271
61
    yyaccept = 4;
8272
61
    yych = *(YYMARKER = ++YYCURSOR);
8273
61
    if (yych == 'P') goto yy770;
8274
15
    if (yych == 'p') goto yy770;
8275
10
    goto yy48;
8276
39
yy707:
8277
39
    YYDEBUG(707, *YYCURSOR);
8278
39
    yyaccept = 4;
8279
39
    yych = *(YYMARKER = ++YYCURSOR);
8280
39
    if (yych == 'R') goto yy771;
8281
12
    if (yych == 'r') goto yy771;
8282
11
    goto yy48;
8283
113
yy708:
8284
113
    YYDEBUG(708, *YYCURSOR);
8285
113
    yyaccept = 4;
8286
113
    yych = *(YYMARKER = ++YYCURSOR);
8287
113
    if (yych == '_') goto yy772;
8288
111
    goto yy48;
8289
197
yy709:
8290
197
    YYDEBUG(709, *YYCURSOR);
8291
197
    ++YYCURSOR;
8292
197
    YYFILL(1);
8293
197
    yych = *YYCURSOR;
8294
197
    YYDEBUG(710, *YYCURSOR);
8295
197
    if (yych <= ' ') {
8296
49
      if (yych <= '\n') {
8297
29
        if (yych <= 0x00) goto yy86;
8298
7
        if (yych <= 0x08) goto yy443;
8299
4
        if (yych <= '\t') goto yy709;
8300
3
        goto yy545;
8301
20
      } else {
8302
20
        if (yych == '\r') goto yy545;
8303
18
        if (yych <= 0x1F) goto yy443;
8304
16
        goto yy709;
8305
18
      }
8306
148
    } else {
8307
148
      if (yych <= ')') {
8308
27
        if (yych <= '"') goto yy443;
8309
27
        if (yych <= '#') goto yy773;
8310
23
        if (yych <= '$') goto yy774;
8311
11
        goto yy443;
8312
121
      } else {
8313
121
        if (yych <= '-') {
8314
13
          if (yych <= '*') goto yy547;
8315
13
          goto yy443;
8316
108
        } else {
8317
108
          if (yych <= '.') goto yy775;
8318
85
          if (yych <= '/') goto yy776;
8319
24
          goto yy443;
8320
85
        }
8321
121
      }
8322
148
    }
8323
3
yy711:
8324
3
    YYDEBUG(711, *YYCURSOR);
8325
3
    ++YYCURSOR;
8326
3
    YYFILL(1);
8327
3
    yych = *YYCURSOR;
8328
3
    if (yybm[0+yych] & 64) {
8329
0
      goto yy355;
8330
0
    }
8331
3
    if (yych <= 0x00) goto yy86;
8332
3
    if (yych == '.') goto yy631;
8333
0
    goto yy230;
8334
75
yy712:
8335
75
    YYDEBUG(712, *YYCURSOR);
8336
75
    ++YYCURSOR;
8337
75
    YYFILL(1);
8338
75
    yych = *YYCURSOR;
8339
75
    if (yybm[0+yych] & 64) {
8340
10
      goto yy355;
8341
10
    }
8342
65
    if (yych <= 0x00) goto yy86;
8343
64
    if (yych == '/') goto yy545;
8344
17
    goto yy230;
8345
17
yy713:
8346
2
    YYDEBUG(713, *YYCURSOR);
8347
2
    ++YYCURSOR;
8348
2
    YYDEBUG(714, *YYCURSOR);
8349
2
    yyleng = YYCURSOR - SCNG(yy_text);
8350
2
#line 1678 "Zend/zend_language_scanner.l"
8351
2
    {
8352
2
  if (PARSER_MODE()) {
8353
2
    zend_error(E_DEPRECATED, "Non-canonical cast (binary) is deprecated, use the (string) cast instead");
8354
2
    if (EG(exception)) {
8355
0
      RETURN_TOKEN(T_ERROR);
8356
0
    }
8357
2
  }
8358
2
  RETURN_TOKEN(T_STRING_CAST);
8359
2
}
8360
0
#line 8361 "Zend/zend_language_scanner.c"
8361
3
yy715:
8362
3
    YYDEBUG(715, *YYCURSOR);
8363
3
    ++YYCURSOR;
8364
3
    YYFILL(1);
8365
3
    yych = *YYCURSOR;
8366
3
    YYDEBUG(716, *YYCURSOR);
8367
3
    if (yych <= 0x1F) {
8368
0
      if (yych == '\t') goto yy715;
8369
0
      goto yy86;
8370
3
    } else {
8371
3
      if (yych <= ' ') goto yy715;
8372
3
      if (yych == ')') goto yy777;
8373
2
      goto yy86;
8374
3
    }
8375
5
yy717:
8376
5
    YYDEBUG(717, *YYCURSOR);
8377
5
    ++YYCURSOR;
8378
5
    YYDEBUG(718, *YYCURSOR);
8379
5
    yyleng = YYCURSOR - SCNG(yy_text);
8380
5
#line 1656 "Zend/zend_language_scanner.l"
8381
5
    {
8382
5
  if (PARSER_MODE()) {
8383
5
    zend_error(E_DEPRECATED, "Non-canonical cast (double) is deprecated, use the (float) cast instead");
8384
5
    if (EG(exception)) {
8385
0
      RETURN_TOKEN(T_ERROR);
8386
0
    }
8387
5
  }
8388
5
  RETURN_TOKEN(T_DOUBLE_CAST);
8389
5
}
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
9
      if (yych == ')') goto yy779;
8403
8
      goto yy86;
8404
9
    }
8405
22
yy721:
8406
22
    YYDEBUG(721, *YYCURSOR);
8407
22
    ++YYCURSOR;
8408
22
    YYDEBUG(722, *YYCURSOR);
8409
22
    yyleng = YYCURSOR - SCNG(yy_text);
8410
22
#line 1692 "Zend/zend_language_scanner.l"
8411
22
    {
8412
22
  RETURN_TOKEN(T_OBJECT_CAST);
8413
22
}
8414
0
#line 8415 "Zend/zend_language_scanner.c"
8415
31
yy723:
8416
31
    YYDEBUG(723, *YYCURSOR);
8417
31
    ++YYCURSOR;
8418
31
    YYDEBUG(724, *YYCURSOR);
8419
31
    yyleng = YYCURSOR - SCNG(yy_text);
8420
31
#line 1674 "Zend/zend_language_scanner.l"
8421
31
    {
8422
31
  RETURN_TOKEN(T_STRING_CAST);
8423
31
}
8424
0
#line 8425 "Zend/zend_language_scanner.c"
8425
106
yy725:
8426
106
    YYDEBUG(725, *YYCURSOR);
8427
106
    yyaccept = 68;
8428
106
    yych = *(YYMARKER = ++YYCURSOR);
8429
106
    if (yybm[256+yych] & 128) {
8430
4
      goto yy47;
8431
4
    }
8432
102
    if (yych == '\\') goto yy164;
8433
102
yy726:
8434
102
    YYDEBUG(726, *YYCURSOR);
8435
102
    yyleng = YYCURSOR - SCNG(yy_text);
8436
102
#line 1770 "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
19
yy727:
8442
19
    YYDEBUG(727, *YYCURSOR);
8443
19
    yyaccept = 69;
8444
19
    yych = *(YYMARKER = ++YYCURSOR);
8445
19
    if (yybm[256+yych] & 128) {
8446
2
      goto yy47;
8447
2
    }
8448
17
    if (yych == '\\') goto yy164;
8449
17
yy728:
8450
17
    YYDEBUG(728, *YYCURSOR);
8451
17
    yyleng = YYCURSOR - SCNG(yy_text);
8452
17
#line 1822 "Zend/zend_language_scanner.l"
8453
17
    {
8454
17
  RETURN_TOKEN_WITH_IDENT(T_CALLABLE);
8455
17
}
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 1538 "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
3
yy731:
8474
3
    YYDEBUG(731, *YYCURSOR);
8475
3
    yyaccept = 4;
8476
3
    yych = *(YYMARKER = ++YYCURSOR);
8477
3
    if (yych == 'R') goto yy781;
8478
3
    if (yych == 'r') goto yy781;
8479
1
    goto yy48;
8480
1
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 1474 "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
12
yy736:
8511
12
    YYDEBUG(736, *YYCURSOR);
8512
12
    yych = *++YYCURSOR;
8513
12
    if (yych == 'E') goto yy785;
8514
5
    if (yych == 'e') goto yy785;
8515
2
    goto yy86;
8516
63
yy737:
8517
63
    YYDEBUG(737, *YYCURSOR);
8518
63
    yych = *++YYCURSOR;
8519
63
    if (yych == 'L') goto yy786;
8520
62
    if (yych == 'l') goto yy786;
8521
7
    goto yy86;
8522
6.38k
yy738:
8523
6.38k
    YYDEBUG(738, *YYCURSOR);
8524
6.38k
    ++YYCURSOR;
8525
6.38k
    YYFILL(1);
8526
6.38k
    yych = *YYCURSOR;
8527
6.38k
    YYDEBUG(739, *YYCURSOR);
8528
6.38k
    if (yych <= '\f') {
8529
825
      if (yych <= 0x00) goto yy86;
8530
732
      if (yych == '\n') goto yy787;
8531
253
      goto yy738;
8532
5.56k
    } else {
8533
5.56k
      if (yych <= '\r') goto yy787;
8534
5.21k
      if (yych == '*') goto yy789;
8535
4.98k
      goto yy738;
8536
5.21k
    }
8537
232
yy740:
8538
232
    YYDEBUG(740, *YYCURSOR);
8539
232
    ++YYCURSOR;
8540
232
    YYFILL(1);
8541
232
    yych = *YYCURSOR;
8542
232
    if (yych <= '\r') {
8543
5
      if (yych <= '\t') {
8544
0
        if (yych <= 0x00) goto yy86;
8545
0
        goto yy586;
8546
5
      } else {
8547
5
        if (yych <= '\n') goto yy495;
8548
5
        if (yych <= '\f') goto yy586;
8549
0
        goto yy495;
8550
5
      }
8551
227
    } else {
8552
227
      if (yych <= 'T') {
8553
40
        if (yych <= 'S') goto yy586;
8554
0
        goto yy791;
8555
187
      } else {
8556
187
        if (yych == 't') goto yy791;
8557
149
        goto yy586;
8558
187
      }
8559
227
    }
8560
206
yy741:
8561
206
    YYDEBUG(741, *YYCURSOR);
8562
206
    ++YYCURSOR;
8563
206
    YYFILL(1);
8564
206
    yych = *YYCURSOR;
8565
206
    if (yych <= '\r') {
8566
9
      if (yych <= '\t') {
8567
4
        if (yych <= 0x00) goto yy86;
8568
4
        goto yy586;
8569
5
      } else {
8570
5
        if (yych <= '\n') goto yy495;
8571
2
        if (yych <= '\f') goto yy586;
8572
2
        goto yy495;
8573
2
      }
8574
197
    } else {
8575
197
      if (yych <= 'P') {
8576
8
        if (yych <= 'O') goto yy586;
8577
1
        goto yy792;
8578
189
      } else {
8579
189
        if (yych == 'p') goto yy792;
8580
10
        goto yy586;
8581
189
      }
8582
197
    }
8583
1.72k
yy742:
8584
1.72k
    YYDEBUG(742, *YYCURSOR);
8585
1.72k
    yyaccept = 72;
8586
1.72k
    yych = *(YYMARKER = ++YYCURSOR);
8587
1.72k
    if (yybm[256+yych] & 128) {
8588
5
      goto yy47;
8589
5
    }
8590
1.71k
    if (yych == '\\') goto yy164;
8591
1.71k
yy743:
8592
1.71k
    YYDEBUG(743, *YYCURSOR);
8593
1.71k
    yyleng = YYCURSOR - SCNG(yy_text);
8594
1.71k
#line 1411 "Zend/zend_language_scanner.l"
8595
1.71k
    {
8596
1.71k
  RETURN_TOKEN_WITH_IDENT(T_FUNCTION);
8597
1.71k
}
8598
0
#line 8599 "Zend/zend_language_scanner.c"
8599
149
yy744:
8600
149
    YYDEBUG(744, *YYCURSOR);
8601
149
    yyaccept = 4;
8602
149
    yych = *(YYMARKER = ++YYCURSOR);
8603
149
    if (yych == 'T') goto yy793;
8604
133
    if (yych == 't') goto yy793;
8605
37
    goto yy48;
8606
37
yy745:
8607
5
    YYDEBUG(745, *YYCURSOR);
8608
5
    yyaccept = 4;
8609
5
    yych = *(YYMARKER = ++YYCURSOR);
8610
5
    if (yych == 'O') goto yy794;
8611
5
    if (yych == 'o') goto yy794;
8612
4
    goto yy48;
8613
29
yy746:
8614
29
    YYDEBUG(746, *YYCURSOR);
8615
29
    yyaccept = 4;
8616
29
    yych = *(YYMARKER = ++YYCURSOR);
8617
29
    if (yych == 'O') goto yy795;
8618
28
    if (yych == 'o') goto yy795;
8619
0
    goto yy48;
8620
12
yy747:
8621
12
    YYDEBUG(747, *YYCURSOR);
8622
12
    yyaccept = 4;
8623
12
    yych = *(YYMARKER = ++YYCURSOR);
8624
12
    if (yych == 'F') goto yy796;
8625
12
    if (yych == 'f') goto yy796;
8626
0
    goto yy48;
8627
197
yy748:
8628
197
    YYDEBUG(748, *YYCURSOR);
8629
197
    yyaccept = 4;
8630
197
    yych = *(YYMARKER = ++YYCURSOR);
8631
197
    if (yych == 'E') goto yy798;
8632
194
    if (yych == 'e') goto yy798;
8633
13
    goto yy48;
8634
289
yy749:
8635
289
    YYDEBUG(749, *YYCURSOR);
8636
289
    yyaccept = 4;
8637
289
    yych = *(YYMARKER = ++YYCURSOR);
8638
289
    if (yych == 'E') goto yy800;
8639
289
    if (yych == 'e') goto yy800;
8640
1
    goto yy48;
8641
154
yy750:
8642
154
    YYDEBUG(750, *YYCURSOR);
8643
154
    yych = *++YYCURSOR;
8644
154
    if (yych == 'S') goto yy802;
8645
154
    if (yych == 's') goto yy802;
8646
0
    goto yy86;
8647
78
yy751:
8648
78
    YYDEBUG(751, *YYCURSOR);
8649
78
    yyaccept = 4;
8650
78
    yych = *(YYMARKER = ++YYCURSOR);
8651
78
    if (yych == 'D') goto yy803;
8652
78
    if (yych == 'd') goto yy803;
8653
1
    goto yy48;
8654
2
yy752:
8655
2
    YYDEBUG(752, *YYCURSOR);
8656
2
    yych = *++YYCURSOR;
8657
2
    if (yych == 'E') goto yy805;
8658
2
    if (yych == 'e') goto yy805;
8659
0
    goto yy86;
8660
81
yy753:
8661
81
    YYDEBUG(753, *YYCURSOR);
8662
81
    yyaccept = 73;
8663
81
    yych = *(YYMARKER = ++YYCURSOR);
8664
81
    if (yybm[256+yych] & 128) {
8665
0
      goto yy47;
8666
0
    }
8667
81
    if (yych == '\\') goto yy164;
8668
81
yy754:
8669
81
    YYDEBUG(754, *YYCURSOR);
8670
81
    yyleng = YYCURSOR - SCNG(yy_text);
8671
81
#line 1802 "Zend/zend_language_scanner.l"
8672
81
    {
8673
81
  RETURN_TOKEN_WITH_IDENT(T_READONLY);
8674
81
}
8675
0
#line 8676 "Zend/zend_language_scanner.c"
8676
18
yy755:
8677
18
    YYDEBUG(755, *YYCURSOR);
8678
18
    yyaccept = 4;
8679
18
    yych = *(YYMARKER = ++YYCURSOR);
8680
18
    if (yych == 'O') goto yy806;
8681
18
    if (yych == 'o') goto yy806;
8682
1
    goto yy48;
8683
65
yy756:
8684
65
    YYDEBUG(756, *YYCURSOR);
8685
65
    yych = *++YYCURSOR;
8686
65
    if (yych == 'O') goto yy807;
8687
39
    if (yych == 'o') goto yy807;
8688
10
    goto yy86;
8689
16
yy757:
8690
16
    YYDEBUG(757, *YYCURSOR);
8691
16
    ++YYCURSOR;
8692
16
    YYFILL(1);
8693
16
    yych = *YYCURSOR;
8694
16
    if (yych <= '\n') {
8695
9
      if (yych <= 0x00) goto yy86;
8696
5
      if (yych <= '\t') goto yy692;
8697
1
      goto yy694;
8698
7
    } else {
8699
7
      if (yych == '\r') goto yy694;
8700
5
      goto yy692;
8701
7
    }
8702
573
yy758:
8703
573
    YYDEBUG(758, *YYCURSOR);
8704
573
    ++YYCURSOR;
8705
573
    YYFILL(1);
8706
573
    yych = *YYCURSOR;
8707
573
    if (yych <= '\f') {
8708
10
      if (yych <= 0x00) goto yy86;
8709
5
      if (yych == '\n') goto yy616;
8710
1
      goto yy692;
8711
563
    } else {
8712
563
      if (yych <= '\r') goto yy616;
8713
560
      if (yych == '*') goto yy808;
8714
55
      goto yy692;
8715
560
    }
8716
211
yy759:
8717
211
    YYDEBUG(759, *YYCURSOR);
8718
211
    ++YYCURSOR;
8719
211
    YYFILL(1);
8720
211
    yych = *YYCURSOR;
8721
211
    if (yych <= '\r') {
8722
5
      if (yych <= '\t') {
8723
5
        if (yych <= 0x00) goto yy86;
8724
2
        goto yy692;
8725
5
      } else {
8726
0
        if (yych <= '\n') goto yy616;
8727
0
        if (yych <= '\f') goto yy692;
8728
0
        goto yy616;
8729
0
      }
8730
206
    } else {
8731
206
      if (yych <= 'R') {
8732
107
        if (yych <= 'Q') goto yy692;
8733
86
        goto yy810;
8734
107
      } else {
8735
99
        if (yych == 'r') goto yy810;
8736
10
        goto yy692;
8737
99
      }
8738
206
    }
8739
141
yy760:
8740
141
    YYDEBUG(760, *YYCURSOR);
8741
141
    ++YYCURSOR;
8742
141
    YYFILL(1);
8743
141
    yych = *YYCURSOR;
8744
141
    YYDEBUG(761, *YYCURSOR);
8745
141
    if (yych <= '*') {
8746
46
      if (yych <= 0x00) goto yy86;
8747
43
      if (yych <= ')') goto yy696;
8748
0
      goto yy760;
8749
95
    } else {
8750
95
      if (yych == '/') goto yy616;
8751
28
      goto yy696;
8752
95
    }
8753
48
yy762:
8754
48
    YYDEBUG(762, *YYCURSOR);
8755
48
    yyaccept = 4;
8756
48
    yych = *(YYMARKER = ++YYCURSOR);
8757
48
    if (yych == '_') goto yy811;
8758
0
    goto yy48;
8759
35
yy763:
8760
35
    YYDEBUG(763, *YYCURSOR);
8761
35
    yyaccept = 74;
8762
35
    yych = *(YYMARKER = ++YYCURSOR);
8763
35
    if (yybm[256+yych] & 128) {
8764
0
      goto yy47;
8765
0
    }
8766
35
    if (yych == '\\') goto yy164;
8767
35
yy764:
8768
35
    YYDEBUG(764, *YYCURSOR);
8769
35
    yyleng = YYCURSOR - SCNG(yy_text);
8770
35
#line 2277 "Zend/zend_language_scanner.l"
8771
35
    {
8772
35
  RETURN_TOKEN_WITH_IDENT(T_FILE);
8773
35
}
8774
0
#line 8775 "Zend/zend_language_scanner.c"
8775
15
yy765:
8776
15
    YYDEBUG(765, *YYCURSOR);
8777
15
    yyaccept = 4;
8778
15
    yych = *(YYMARKER = ++YYCURSOR);
8779
15
    if (yych == 'O') goto yy813;
8780
0
    if (yych == 'o') goto yy813;
8781
0
    goto yy48;
8782
19
yy766:
8783
19
    YYDEBUG(766, *YYCURSOR);
8784
19
    yyaccept = 4;
8785
19
    yych = *(YYMARKER = ++YYCURSOR);
8786
19
    if (yych == 'O') goto yy814;
8787
3
    if (yych == 'o') goto yy814;
8788
0
    goto yy48;
8789
14
yy767:
8790
14
    YYDEBUG(767, *YYCURSOR);
8791
14
    yyaccept = 75;
8792
14
    yych = *(YYMARKER = ++YYCURSOR);
8793
14
    if (yybm[256+yych] & 128) {
8794
0
      goto yy47;
8795
0
    }
8796
14
    if (yych == '\\') goto yy164;
8797
14
yy768:
8798
14
    YYDEBUG(768, *YYCURSOR);
8799
14
    yyleng = YYCURSOR - SCNG(yy_text);
8800
14
#line 2273 "Zend/zend_language_scanner.l"
8801
14
    {
8802
14
  RETURN_TOKEN_WITH_IDENT(T_LINE);
8803
14
}
8804
0
#line 8805 "Zend/zend_language_scanner.c"
8805
21
yy769:
8806
21
    YYDEBUG(769, *YYCURSOR);
8807
21
    yyaccept = 4;
8808
21
    yych = *(YYMARKER = ++YYCURSOR);
8809
21
    if (yych == '_') goto yy815;
8810
0
    goto yy48;
8811
51
yy770:
8812
51
    YYDEBUG(770, *YYCURSOR);
8813
51
    yyaccept = 4;
8814
51
    yych = *(YYMARKER = ++YYCURSOR);
8815
51
    if (yych == 'A') goto yy816;
8816
6
    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
6
    if (yych == 't') goto yy817;
8824
3
    goto yy48;
8825
3
yy772:
8826
2
    YYDEBUG(772, *YYCURSOR);
8827
2
    yyaccept = 4;
8828
2
    yych = *(YYMARKER = ++YYCURSOR);
8829
2
    if (yych == '_') goto yy818;
8830
0
    goto yy48;
8831
4
yy773:
8832
4
    YYDEBUG(773, *YYCURSOR);
8833
4
    ++YYCURSOR;
8834
4
    YYFILL(1);
8835
4
    yych = *YYCURSOR;
8836
4
    if (yybm[0+yych] & 128) {
8837
3
      goto yy443;
8838
3
    }
8839
1
    if (yych <= 0x00) goto yy86;
8840
0
    if (yych <= '\r') goto yy709;
8841
0
    goto yy547;
8842
13
yy774:
8843
13
    YYDEBUG(774, *YYCURSOR);
8844
13
    yyaccept = 26;
8845
13
    YYMARKER = ++YYCURSOR;
8846
13
    YYFILL(1);
8847
13
    yych = *YYCURSOR;
8848
13
    if (yybm[0+yych] & 128) {
8849
1
      goto yy443;
8850
1
    }
8851
12
    if (yych <= 0x00) goto yy89;
8852
9
    if (yych <= '\r') goto yy545;
8853
7
    goto yy547;
8854
23
yy775:
8855
23
    YYDEBUG(775, *YYCURSOR);
8856
23
    ++YYCURSOR;
8857
23
    YYFILL(1);
8858
23
    yych = *YYCURSOR;
8859
23
    if (yych <= '\r') {
8860
6
      if (yych <= '\t') {
8861
4
        if (yych <= 0x00) goto yy86;
8862
4
        goto yy443;
8863
4
      } else {
8864
2
        if (yych <= '\n') goto yy545;
8865
0
        if (yych <= '\f') goto yy443;
8866
0
        goto yy545;
8867
0
      }
8868
17
    } else {
8869
17
      if (yych <= '*') {
8870
0
        if (yych <= ')') goto yy443;
8871
0
        goto yy547;
8872
17
      } else {
8873
17
        if (yych == '.') goto yy820;
8874
8
        goto yy443;
8875
17
      }
8876
17
    }
8877
61
yy776:
8878
61
    YYDEBUG(776, *YYCURSOR);
8879
61
    ++YYCURSOR;
8880
61
    YYFILL(1);
8881
61
    yych = *YYCURSOR;
8882
61
    if (yybm[0+yych] & 128) {
8883
33
      goto yy443;
8884
33
    }
8885
28
    if (yych <= 0x00) goto yy86;
8886
28
    if (yych <= '\r') goto yy545;
8887
25
    goto yy821;
8888
25
yy777:
8889
1
    YYDEBUG(777, *YYCURSOR);
8890
1
    ++YYCURSOR;
8891
1
    YYDEBUG(778, *YYCURSOR);
8892
1
    yyleng = YYCURSOR - SCNG(yy_text);
8893
1
#line 1700 "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
1
yy779:
8905
1
    YYDEBUG(779, *YYCURSOR);
8906
1
    ++YYCURSOR;
8907
1
    YYDEBUG(780, *YYCURSOR);
8908
1
    yyleng = YYCURSOR - SCNG(yy_text);
8909
1
#line 1642 "Zend/zend_language_scanner.l"
8910
1
    {
8911
1
  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
1
  RETURN_TOKEN(T_INT_CAST);
8918
1
}
8919
0
#line 8920 "Zend/zend_language_scanner.c"
8920
2
yy781:
8921
2
    YYDEBUG(781, *YYCURSOR);
8922
2
    yyaccept = 4;
8923
2
    yych = *(YYMARKER = ++YYCURSOR);
8924
2
    if (yych == 'E') goto yy822;
8925
2
    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 1522 "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
10
yy785:
8951
10
    YYDEBUG(785, *YYCURSOR);
8952
10
    yych = *++YYCURSOR;
8953
10
    if (yych == 'N') goto yy826;
8954
7
    if (yych == 'n') goto yy826;
8955
6
    goto yy86;
8956
56
yy786:
8957
56
    YYDEBUG(786, *YYCURSOR);
8958
56
    yych = *++YYCURSOR;
8959
56
    if (yych == 'E') goto yy827;
8960
56
    if (yych == 'e') goto yy827;
8961
14
    goto yy86;
8962
1.29k
yy787:
8963
1.29k
    YYDEBUG(787, *YYCURSOR);
8964
1.29k
    ++YYCURSOR;
8965
1.29k
    YYFILL(1);
8966
1.29k
    yych = *YYCURSOR;
8967
1.29k
    YYDEBUG(788, *YYCURSOR);
8968
1.29k
    if (yych <= '@') {
8969
1.16k
      if (yych <= ' ') {
8970
214
        if (yych <= '\n') {
8971
91
          if (yych <= 0x00) goto yy86;
8972
71
          if (yych <= 0x08) goto yy590;
8973
61
          goto yy787;
8974
123
        } else {
8975
123
          if (yych == '\r') goto yy787;
8976
57
          if (yych <= 0x1F) goto yy590;
8977
56
          goto yy787;
8978
57
        }
8979
948
      } else {
8980
948
        if (yych <= ')') {
8981
648
          if (yych == '#') goto yy828;
8982
16
          goto yy590;
8983
648
        } else {
8984
300
          if (yych <= '*') goto yy668;
8985
289
          if (yych == '/') goto yy829;
8986
11
          goto yy590;
8987
289
        }
8988
948
      }
8989
1.16k
    } else {
8990
137
      if (yych <= '_') {
8991
12
        if (yych <= 'H') {
8992
8
          if (yych == 'E') goto yy831;
8993
3
          goto yy830;
8994
8
        } else {
8995
4
          if (yych <= 'I') goto yy832;
8996
4
          if (yych <= 'Z') goto yy830;
8997
2
          if (yych <= '^') goto yy590;
8998
0
          goto yy830;
8999
2
        }
9000
125
      } else {
9001
125
        if (yych <= 'h') {
9002
22
          if (yych <= '`') goto yy590;
9003
22
          if (yych == 'e') goto yy831;
9004
4
          goto yy830;
9005
103
        } else {
9006
103
          if (yych <= 'i') goto yy832;
9007
33
          if (yych <= 'z') goto yy830;
9008
22
          if (yych <= 0x7F) goto yy590;
9009
6
          goto yy830;
9010
22
        }
9011
125
      }
9012
137
    }
9013
297
yy789:
9014
297
    YYDEBUG(789, *YYCURSOR);
9015
297
    ++YYCURSOR;
9016
297
    YYFILL(1);
9017
297
    yych = *YYCURSOR;
9018
297
    YYDEBUG(790, *YYCURSOR);
9019
297
    if (yych <= '\r') {
9020
19
      if (yych <= '\t') {
9021
3
        if (yych <= 0x00) goto yy86;
9022
0
        goto yy738;
9023
16
      } else {
9024
16
        if (yych <= '\n') goto yy787;
9025
6
        if (yych <= '\f') goto yy738;
9026
6
        goto yy787;
9027
6
      }
9028
278
    } else {
9029
278
      if (yych <= '*') {
9030
43
        if (yych <= ')') goto yy738;
9031
3
        goto yy789;
9032
235
      } else {
9033
235
        if (yych == '/') goto yy588;
9034
63
        goto yy738;
9035
235
      }
9036
278
    }
9037
38
yy791:
9038
38
    YYDEBUG(791, *YYCURSOR);
9039
38
    ++YYCURSOR;
9040
38
    YYFILL(1);
9041
38
    yych = *YYCURSOR;
9042
38
    if (yych <= '\r') {
9043
4
      if (yych <= '\t') {
9044
0
        if (yych <= 0x00) goto yy86;
9045
0
        goto yy586;
9046
4
      } else {
9047
4
        if (yych <= '\n') goto yy495;
9048
4
        if (yych <= '\f') goto yy586;
9049
3
        goto yy495;
9050
4
      }
9051
34
    } else {
9052
34
      if (yych <= 'E') {
9053
4
        if (yych <= 'D') goto yy586;
9054
1
        goto yy833;
9055
30
      } else {
9056
30
        if (yych == 'e') goto yy833;
9057
0
        goto yy586;
9058
30
      }
9059
34
    }
9060
180
yy792:
9061
180
    YYDEBUG(792, *YYCURSOR);
9062
180
    ++YYCURSOR;
9063
180
    YYFILL(1);
9064
180
    yych = *YYCURSOR;
9065
180
    if (yych <= '\r') {
9066
12
      if (yych <= '\t') {
9067
2
        if (yych <= 0x00) goto yy86;
9068
2
        goto yy586;
9069
10
      } else {
9070
10
        if (yych <= '\n') goto yy495;
9071
10
        if (yych <= '\f') goto yy586;
9072
0
        goto yy495;
9073
10
      }
9074
168
    } else {
9075
168
      if (yych <= 'L') {
9076
4
        if (yych <= 'K') goto yy586;
9077
1
        goto yy834;
9078
164
      } else {
9079
164
        if (yych == 'l') goto yy834;
9080
2
        goto yy586;
9081
164
      }
9082
168
    }
9083
112
yy793:
9084
112
    YYDEBUG(793, *YYCURSOR);
9085
112
    yyaccept = 4;
9086
112
    yych = *(YYMARKER = ++YYCURSOR);
9087
112
    if (yych == 'S') goto yy835;
9088
109
    if (yych == 's') goto yy835;
9089
31
    goto yy48;
9090
31
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
1
    goto yy48;
9097
29
yy795:
9098
29
    YYDEBUG(795, *YYCURSOR);
9099
29
    yyaccept = 4;
9100
29
    yych = *(YYMARKER = ++YYCURSOR);
9101
29
    if (yych == 'F') goto yy838;
9102
29
    if (yych == 'f') goto yy838;
9103
1
    goto yy48;
9104
12
yy796:
9105
12
    YYDEBUG(796, *YYCURSOR);
9106
12
    yyaccept = 77;
9107
12
    yych = *(YYMARKER = ++YYCURSOR);
9108
12
    if (yybm[256+yych] & 128) {
9109
0
      goto yy47;
9110
0
    }
9111
12
    if (yych == '\\') goto yy164;
9112
12
yy797:
9113
12
    YYDEBUG(797, *YYCURSOR);
9114
12
    yyleng = YYCURSOR - SCNG(yy_text);
9115
12
#line 1746 "Zend/zend_language_scanner.l"
9116
12
    {
9117
12
    RETURN_TOKEN_WITH_IDENT(T_INSTEADOF);
9118
12
}
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 1558 "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
288
yy800:
9137
288
    YYDEBUG(800, *YYCURSOR);
9138
288
    yyaccept = 79;
9139
288
    yych = *(YYMARKER = ++YYCURSOR);
9140
288
    if (yybm[256+yych] & 128) {
9141
2
      goto yy47;
9142
2
    }
9143
286
    if (yych == '\\') goto yy840;
9144
242
yy801:
9145
242
    YYDEBUG(801, *YYCURSOR);
9146
242
    yyleng = YYCURSOR - SCNG(yy_text);
9147
242
#line 1738 "Zend/zend_language_scanner.l"
9148
242
    {
9149
242
  RETURN_TOKEN_WITH_IDENT(T_NAMESPACE);
9150
242
}
9151
0
#line 9152 "Zend/zend_language_scanner.c"
9152
154
yy802:
9153
154
    YYDEBUG(802, *YYCURSOR);
9154
154
    yych = *++YYCURSOR;
9155
154
    if (yych == 'E') goto yy841;
9156
154
    if (yych == 'e') goto yy841;
9157
143
    goto yy86;
9158
143
yy803:
9159
77
    YYDEBUG(803, *YYCURSOR);
9160
77
    yyaccept = 80;
9161
77
    yych = *(YYMARKER = ++YYCURSOR);
9162
77
    if (yybm[256+yych] & 128) {
9163
15
      goto yy47;
9164
15
    }
9165
62
    if (yych == '(') goto yy842;
9166
43
    if (yych == '\\') goto yy164;
9167
54
yy804:
9168
54
    YYDEBUG(804, *YYCURSOR);
9169
54
    yyleng = YYCURSOR - SCNG(yy_text);
9170
54
#line 1782 "Zend/zend_language_scanner.l"
9171
54
    {
9172
54
  RETURN_TOKEN_WITH_IDENT(T_PROTECTED);
9173
54
}
9174
0
#line 9175 "Zend/zend_language_scanner.c"
9175
2
yy805:
9176
2
    YYDEBUG(805, *YYCURSOR);
9177
2
    yych = *++YYCURSOR;
9178
2
    if (yych == 'T') goto yy843;
9179
2
    if (yych == 't') goto yy843;
9180
0
    goto yy86;
9181
17
yy806:
9182
17
    YYDEBUG(806, *YYCURSOR);
9183
17
    yyaccept = 4;
9184
17
    yych = *(YYMARKER = ++YYCURSOR);
9185
17
    if (yych == 'N') goto yy844;
9186
17
    if (yych == 'n') goto yy844;
9187
1
    goto yy48;
9188
55
yy807:
9189
55
    YYDEBUG(807, *YYCURSOR);
9190
55
    yych = *++YYCURSOR;
9191
55
    if (yych == 'M') goto yy845;
9192
28
    if (yych == 'm') goto yy845;
9193
0
    goto yy86;
9194
4.66k
yy808:
9195
4.66k
    YYDEBUG(808, *YYCURSOR);
9196
4.66k
    ++YYCURSOR;
9197
4.66k
    YYFILL(1);
9198
4.66k
    yych = *YYCURSOR;
9199
4.66k
    YYDEBUG(809, *YYCURSOR);
9200
4.66k
    if (yych <= '\f') {
9201
758
      if (yych <= 0x00) goto yy86;
9202
680
      if (yych == '\n') goto yy846;
9203
201
      goto yy808;
9204
3.90k
    } else {
9205
3.90k
      if (yych <= '\r') goto yy846;
9206
3.54k
      if (yych == '*') goto yy848;
9207
3.41k
      goto yy808;
9208
3.54k
    }
9209
175
yy810:
9210
175
    YYDEBUG(810, *YYCURSOR);
9211
175
    ++YYCURSOR;
9212
175
    YYFILL(1);
9213
175
    yych = *YYCURSOR;
9214
175
    if (yych <= '\r') {
9215
13
      if (yych <= '\t') {
9216
6
        if (yych <= 0x00) goto yy86;
9217
3
        goto yy692;
9218
7
      } else {
9219
7
        if (yych <= '\n') goto yy616;
9220
4
        if (yych <= '\f') goto yy692;
9221
2
        goto yy616;
9222
4
      }
9223
162
    } else {
9224
162
      if (yych <= 'O') {
9225
64
        if (yych <= 'N') goto yy692;
9226
49
        goto yy850;
9227
98
      } else {
9228
98
        if (yych == 'o') goto yy850;
9229
11
        goto yy692;
9230
98
      }
9231
162
    }
9232
48
yy811:
9233
48
    YYDEBUG(811, *YYCURSOR);
9234
48
    yyaccept = 81;
9235
48
    yych = *(YYMARKER = ++YYCURSOR);
9236
48
    if (yybm[256+yych] & 128) {
9237
24
      goto yy47;
9238
24
    }
9239
24
    if (yych == '\\') goto yy164;
9240
24
yy812:
9241
24
    YYDEBUG(812, *YYCURSOR);
9242
24
    yyleng = YYCURSOR - SCNG(yy_text);
9243
24
#line 2253 "Zend/zend_language_scanner.l"
9244
24
    {
9245
24
  RETURN_TOKEN_WITH_IDENT(T_CLASS_C);
9246
24
}
9247
0
#line 9248 "Zend/zend_language_scanner.c"
9248
15
yy813:
9249
15
    YYDEBUG(813, *YYCURSOR);
9250
15
    yyaccept = 4;
9251
15
    yych = *(YYMARKER = ++YYCURSOR);
9252
15
    if (yych == 'N') goto yy851;
9253
0
    if (yych == 'n') goto yy851;
9254
0
    goto yy48;
9255
19
yy814:
9256
19
    YYDEBUG(814, *YYCURSOR);
9257
19
    yyaccept = 4;
9258
19
    yych = *(YYMARKER = ++YYCURSOR);
9259
19
    if (yych == 'M') goto yy852;
9260
11
    if (yych == 'm') goto yy852;
9261
8
    goto yy48;
9262
21
yy815:
9263
21
    YYDEBUG(815, *YYCURSOR);
9264
21
    yyaccept = 4;
9265
21
    yych = *(YYMARKER = ++YYCURSOR);
9266
21
    if (yych == '_') goto yy853;
9267
0
    goto yy48;
9268
51
yy816:
9269
51
    YYDEBUG(816, *YYCURSOR);
9270
51
    yyaccept = 4;
9271
51
    yych = *(YYMARKER = ++YYCURSOR);
9272
51
    if (yych == 'C') goto yy855;
9273
9
    if (yych == 'c') goto yy855;
9274
4
    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
18
    if (yych == 'y') goto yy856;
9281
3
    goto yy48;
9282
3
yy818:
9283
2
    YYDEBUG(818, *YYCURSOR);
9284
2
    yyaccept = 82;
9285
2
    yych = *(YYMARKER = ++YYCURSOR);
9286
2
    if (yybm[256+yych] & 128) {
9287
0
      goto yy47;
9288
0
    }
9289
2
    if (yych == '\\') goto yy164;
9290
2
yy819:
9291
2
    YYDEBUG(819, *YYCURSOR);
9292
2
    yyleng = YYCURSOR - SCNG(yy_text);
9293
2
#line 2257 "Zend/zend_language_scanner.l"
9294
2
    {
9295
2
  RETURN_TOKEN_WITH_IDENT(T_TRAIT_C);
9296
2
}
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
4
      if (yych <= '\t') {
9305
0
        if (yych <= 0x00) goto yy86;
9306
0
        goto yy443;
9307
4
      } else {
9308
4
        if (yych <= '\n') goto yy545;
9309
4
        if (yych <= '\f') goto yy443;
9310
4
        goto yy545;
9311
4
      }
9312
5
    } else {
9313
5
      if (yych <= '*') {
9314
4
        if (yych <= ')') goto yy443;
9315
0
        goto yy547;
9316
4
      } else {
9317
1
        if (yych == '.') goto yy774;
9318
0
        goto yy443;
9319
1
      }
9320
5
    }
9321
25
yy821:
9322
25
    YYDEBUG(821, *YYCURSOR);
9323
25
    ++YYCURSOR;
9324
25
    YYFILL(1);
9325
25
    yych = *YYCURSOR;
9326
25
    if (yych <= '\r') {
9327
4
      if (yych <= '\t') {
9328
3
        if (yych <= 0x00) goto yy86;
9329
0
        goto yy443;
9330
3
      } else {
9331
1
        if (yych <= '\n') goto yy545;
9332
0
        if (yych <= '\f') goto yy443;
9333
0
        goto yy545;
9334
0
      }
9335
21
    } else {
9336
21
      if (yych <= '*') {
9337
2
        if (yych <= ')') goto yy443;
9338
0
        goto yy547;
9339
19
      } else {
9340
19
        if (yych == '/') goto yy709;
9341
3
        goto yy443;
9342
19
      }
9343
21
    }
9344
2
yy822:
9345
2
    YYDEBUG(822, *YYCURSOR);
9346
2
    yyaccept = 83;
9347
2
    yych = *(YYMARKER = ++YYCURSOR);
9348
2
    if (yybm[256+yych] & 128) {
9349
0
      goto yy47;
9350
0
    }
9351
2
    if (yych == '\\') goto yy164;
9352
2
yy823:
9353
2
    YYDEBUG(823, *YYCURSOR);
9354
2
    yyleng = YYCURSOR - SCNG(yy_text);
9355
2
#line 1502 "Zend/zend_language_scanner.l"
9356
2
    {
9357
2
  RETURN_TOKEN_WITH_IDENT(T_ENDDECLARE);
9358
2
}
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 1494 "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
4
yy826:
9377
4
    YYDEBUG(826, *YYCURSOR);
9378
4
    yych = *++YYCURSOR;
9379
4
    if (yych == 'D') goto yy857;
9380
4
    if (yych == 'd') goto yy857;
9381
4
    goto yy86;
9382
42
yy827:
9383
42
    YYDEBUG(827, *YYCURSOR);
9384
42
    yych = *++YYCURSOR;
9385
42
    if (yych == 'M') goto yy858;
9386
41
    if (yych == 'm') goto yy858;
9387
7
    goto yy86;
9388
632
yy828:
9389
632
    YYDEBUG(828, *YYCURSOR);
9390
632
    ++YYCURSOR;
9391
632
    YYFILL(1);
9392
632
    yych = *YYCURSOR;
9393
632
    if (yych <= '\r') {
9394
507
      if (yych <= '\t') {
9395
19
        if (yych <= 0x00) goto yy86;
9396
10
        goto yy738;
9397
488
      } else {
9398
488
        if (yych <= '\n') goto yy859;
9399
59
        if (yych <= '\f') goto yy738;
9400
58
        goto yy859;
9401
59
      }
9402
507
    } else {
9403
125
      if (yych <= '*') {
9404
24
        if (yych <= ')') goto yy738;
9405
19
        goto yy789;
9406
101
      } else {
9407
101
        if (yych == '[') goto yy590;
9408
101
        goto yy738;
9409
101
      }
9410
125
    }
9411
278
yy829:
9412
278
    YYDEBUG(829, *YYCURSOR);
9413
278
    ++YYCURSOR;
9414
278
    YYFILL(1);
9415
278
    yych = *YYCURSOR;
9416
278
    if (yych <= '*') {
9417
262
      if (yych <= 0x00) goto yy86;
9418
258
      if (yych <= ')') goto yy590;
9419
232
      goto yy861;
9420
258
    } else {
9421
16
      if (yych == '/') goto yy738;
9422
3
      goto yy590;
9423
16
    }
9424
26
yy830:
9425
26
    YYDEBUG(830, *YYCURSOR);
9426
26
    yyaccept = 53;
9427
26
    YYMARKER = ++YYCURSOR;
9428
26
    YYFILL(1);
9429
26
    yych = *YYCURSOR;
9430
26
    if (yych <= 0x00) goto yy583;
9431
24
    if (yych == '*') goto yy668;
9432
24
    goto yy590;
9433
24
yy831:
9434
23
    YYDEBUG(831, *YYCURSOR);
9435
23
    yyaccept = 53;
9436
23
    YYMARKER = ++YYCURSOR;
9437
23
    YYFILL(1);
9438
23
    yych = *YYCURSOR;
9439
23
    if (yych <= 'W') {
9440
7
      if (yych <= 0x00) goto yy583;
9441
3
      if (yych == '*') goto yy668;
9442
3
      goto yy590;
9443
16
    } else {
9444
16
      if (yych <= 'X') goto yy862;
9445
16
      if (yych == 'x') goto yy862;
9446
6
      goto yy590;
9447
16
    }
9448
70
yy832:
9449
70
    YYDEBUG(832, *YYCURSOR);
9450
70
    yyaccept = 53;
9451
70
    YYMARKER = ++YYCURSOR;
9452
70
    YYFILL(1);
9453
70
    yych = *YYCURSOR;
9454
70
    if (yych <= 'L') {
9455
1
      if (yych <= 0x00) goto yy583;
9456
1
      if (yych == '*') goto yy668;
9457
1
      goto yy590;
9458
69
    } else {
9459
69
      if (yych <= 'M') goto yy863;
9460
44
      if (yych == 'm') goto yy863;
9461
10
      goto yy590;
9462
44
    }
9463
31
yy833:
9464
31
    YYDEBUG(833, *YYCURSOR);
9465
31
    ++YYCURSOR;
9466
31
    YYFILL(1);
9467
31
    yych = *YYCURSOR;
9468
31
    if (yych <= '\r') {
9469
3
      if (yych <= '\t') {
9470
0
        if (yych <= 0x00) goto yy86;
9471
0
        goto yy586;
9472
3
      } else {
9473
3
        if (yych <= '\n') goto yy495;
9474
2
        if (yych <= '\f') goto yy586;
9475
0
        goto yy495;
9476
2
      }
9477
28
    } else {
9478
28
      if (yych <= 'N') {
9479
1
        if (yych <= 'M') goto yy586;
9480
0
        goto yy864;
9481
27
      } else {
9482
27
        if (yych == 'n') goto yy864;
9483
5
        goto yy586;
9484
27
      }
9485
28
    }
9486
163
yy834:
9487
163
    YYDEBUG(834, *YYCURSOR);
9488
163
    ++YYCURSOR;
9489
163
    YYFILL(1);
9490
163
    yych = *YYCURSOR;
9491
163
    if (yych <= '\r') {
9492
19
      if (yych <= '\t') {
9493
8
        if (yych <= 0x00) goto yy86;
9494
0
        goto yy586;
9495
11
      } else {
9496
11
        if (yych <= '\n') goto yy495;
9497
6
        if (yych <= '\f') goto yy586;
9498
6
        goto yy495;
9499
6
      }
9500
144
    } else {
9501
144
      if (yych <= 'E') {
9502
35
        if (yych <= 'D') goto yy586;
9503
13
        goto yy865;
9504
109
      } else {
9505
109
        if (yych == 'e') goto yy865;
9506
37
        goto yy586;
9507
109
      }
9508
144
    }
9509
81
yy835:
9510
81
    YYDEBUG(835, *YYCURSOR);
9511
81
    yyaccept = 85;
9512
81
    yych = *(YYMARKER = ++YYCURSOR);
9513
81
    if (yybm[256+yych] & 128) {
9514
0
      goto yy47;
9515
0
    }
9516
81
    if (yych == '\\') goto yy164;
9517
81
yy836:
9518
81
    YYDEBUG(836, *YYCURSOR);
9519
81
    yyleng = YYCURSOR - SCNG(yy_text);
9520
81
#line 1583 "Zend/zend_language_scanner.l"
9521
81
    {
9522
81
  RETURN_TOKEN_WITH_IDENT(T_IMPLEMENTS);
9523
81
}
9524
0
#line 9525 "Zend/zend_language_scanner.c"
9525
0
yy837:
9526
0
    YYDEBUG(837, *YYCURSOR);
9527
0
    yyaccept = 4;
9528
0
    yych = *(YYMARKER = ++YYCURSOR);
9529
0
    if (yych == 'C') goto yy866;
9530
0
    if (yych == 'c') goto yy866;
9531
0
    goto yy48;
9532
28
yy838:
9533
28
    YYDEBUG(838, *YYCURSOR);
9534
28
    yyaccept = 86;
9535
28
    yych = *(YYMARKER = ++YYCURSOR);
9536
28
    if (yybm[256+yych] & 128) {
9537
0
      goto yy47;
9538
0
    }
9539
28
    if (yych == '\\') goto yy164;
9540
28
yy839:
9541
28
    YYDEBUG(839, *YYCURSOR);
9542
28
    yyleng = YYCURSOR - SCNG(yy_text);
9543
28
#line 1506 "Zend/zend_language_scanner.l"
9544
28
    {
9545
28
  RETURN_TOKEN_WITH_IDENT(T_INSTANCEOF);
9546
28
}
9547
0
#line 9548 "Zend/zend_language_scanner.c"
9548
75
yy840:
9549
75
    YYDEBUG(840, *YYCURSOR);
9550
75
    ++YYCURSOR;
9551
75
    YYFILL(1);
9552
75
    yych = *YYCURSOR;
9553
75
    if (yych <= '_') {
9554
40
      if (yych <= '@') goto yy86;
9555
24
      if (yych <= 'Z') goto yy867;
9556
2
      if (yych <= '^') goto yy86;
9557
0
      goto yy867;
9558
35
    } else {
9559
35
      if (yych <= '`') goto yy86;
9560
35
      if (yych <= 'z') goto yy867;
9561
6
      if (yych <= 0x7F) goto yy86;
9562
5
      goto yy867;
9563
6
    }
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
19
yy842:
9571
19
    YYDEBUG(842, *YYCURSOR);
9572
19
    yych = *++YYCURSOR;
9573
19
    if (yych == 'S') goto yy871;
9574
19
    if (yych == 's') goto yy871;
9575
0
    goto yy86;
9576
2
yy843:
9577
2
    YYDEBUG(843, *YYCURSOR);
9578
2
    yych = *++YYCURSOR;
9579
2
    if (yych == ')') goto yy872;
9580
0
    goto yy86;
9581
16
yy844:
9582
16
    YYDEBUG(844, *YYCURSOR);
9583
16
    yyaccept = 4;
9584
16
    yych = *(YYMARKER = ++YYCURSOR);
9585
16
    if (yych == 'C') goto yy874;
9586
16
    if (yych == 'c') goto yy874;
9587
1
    goto yy48;
9588
55
yy845:
9589
55
    YYDEBUG(845, *YYCURSOR);
9590
55
    yych = *++YYCURSOR;
9591
55
    if (yych <= '^') {
9592
50
      if (yych <= '9') {
9593
25
        if (yych <= '/') goto yy875;
9594
3
        goto yy86;
9595
25
      } else {
9596
25
        if (yych <= '@') goto yy875;
9597
6
        if (yych <= 'Z') goto yy86;
9598
5
        goto yy875;
9599
6
      }
9600
50
    } else {
9601
5
      if (yych <= '`') {
9602
2
        if (yych <= '_') goto yy86;
9603
2
        goto yy875;
9604
3
      } else {
9605
3
        if (yych <= 'z') goto yy86;
9606
0
        if (yych <= 0x7F) goto yy875;
9607
0
        goto yy86;
9608
0
      }
9609
5
    }
9610
1.18k
yy846:
9611
1.18k
    YYDEBUG(846, *YYCURSOR);
9612
1.18k
    ++YYCURSOR;
9613
1.18k
    YYFILL(1);
9614
1.18k
    yych = *YYCURSOR;
9615
1.18k
    YYDEBUG(847, *YYCURSOR);
9616
1.18k
    if (yych <= '#') {
9617
788
      if (yych <= '\f') {
9618
79
        if (yych <= 0x00) goto yy86;
9619
65
        if (yych <= 0x08) goto yy696;
9620
64
        if (yych <= '\n') goto yy846;
9621
0
        goto yy696;
9622
709
      } else {
9623
709
        if (yych <= 0x1F) {
9624
96
          if (yych <= '\r') goto yy846;
9625
0
          goto yy696;
9626
613
        } else {
9627
613
          if (yych <= ' ') goto yy846;
9628
605
          if (yych <= '"') goto yy696;
9629
604
          goto yy877;
9630
605
        }
9631
709
      }
9632
788
    } else {
9633
393
      if (yych <= '/') {
9634
202
        if (yych == '*') goto yy760;
9635
186
        if (yych <= '.') goto yy696;
9636
126
        goto yy878;
9637
191
      } else {
9638
191
        if (yych <= 'F') {
9639
149
          if (yych <= 'E') goto yy696;
9640
47
          goto yy879;
9641
149
        } else {
9642
42
          if (yych == 'f') goto yy879;
9643
33
          goto yy696;
9644
42
        }
9645
191
      }
9646
393
    }
9647
195
yy848:
9648
195
    YYDEBUG(848, *YYCURSOR);
9649
195
    ++YYCURSOR;
9650
195
    YYFILL(1);
9651
195
    yych = *YYCURSOR;
9652
195
    YYDEBUG(849, *YYCURSOR);
9653
195
    if (yych <= '\r') {
9654
37
      if (yych <= '\t') {
9655
10
        if (yych <= 0x00) goto yy86;
9656
2
        goto yy808;
9657
27
      } else {
9658
27
        if (yych <= '\n') goto yy846;
9659
21
        if (yych <= '\f') goto yy808;
9660
21
        goto yy846;
9661
21
      }
9662
158
    } else {
9663
158
      if (yych <= '*') {
9664
75
        if (yych <= ')') goto yy808;
9665
26
        goto yy848;
9666
83
      } else {
9667
83
        if (yych == '/') goto yy694;
9668
36
        goto yy808;
9669
83
      }
9670
158
    }
9671
136
yy850:
9672
136
    YYDEBUG(850, *YYCURSOR);
9673
136
    ++YYCURSOR;
9674
136
    YYFILL(1);
9675
136
    yych = *YYCURSOR;
9676
136
    if (yych <= '\r') {
9677
18
      if (yych <= '\t') {
9678
8
        if (yych <= 0x00) goto yy86;
9679
5
        goto yy692;
9680
10
      } else {
9681
10
        if (yych <= '\n') goto yy616;
9682
6
        if (yych <= '\f') goto yy692;
9683
4
        goto yy616;
9684
6
      }
9685
118
    } else {
9686
118
      if (yych <= 'M') {
9687
85
        if (yych <= 'L') goto yy692;
9688
81
        goto yy880;
9689
85
      } else {
9690
33
        if (yych == 'm') goto yy880;
9691
14
        goto yy692;
9692
33
      }
9693
118
    }
9694
15
yy851:
9695
15
    YYDEBUG(851, *YYCURSOR);
9696
15
    yyaccept = 4;
9697
15
    yych = *(YYMARKER = ++YYCURSOR);
9698
15
    if (yych == '_') goto yy881;
9699
1
    goto yy48;
9700
11
yy852:
9701
11
    YYDEBUG(852, *YYCURSOR);
9702
11
    yyaccept = 4;
9703
11
    yych = *(YYMARKER = ++YYCURSOR);
9704
11
    if (yych == 'P') goto yy882;
9705
3
    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
1
      goto yy47;
9713
1
    }
9714
20
    if (yych == '\\') goto yy164;
9715
20
yy854:
9716
20
    YYDEBUG(854, *YYCURSOR);
9717
20
    yyleng = YYCURSOR - SCNG(yy_text);
9718
20
#line 2269 "Zend/zend_language_scanner.l"
9719
20
    {
9720
20
  RETURN_TOKEN_WITH_IDENT(T_METHOD_C);
9721
20
}
9722
0
#line 9723 "Zend/zend_language_scanner.c"
9723
47
yy855:
9724
47
    YYDEBUG(855, *YYCURSOR);
9725
47
    yyaccept = 4;
9726
47
    yych = *(YYMARKER = ++YYCURSOR);
9727
47
    if (yych == 'E') goto yy883;
9728
5
    if (yych == 'e') goto yy883;
9729
1
    goto yy48;
9730
22
yy856:
9731
22
    YYDEBUG(856, *YYCURSOR);
9732
22
    yyaccept = 4;
9733
22
    yych = *(YYMARKER = ++YYCURSOR);
9734
22
    if (yych == '_') goto yy884;
9735
16
    goto yy48;
9736
24
yy857:
9737
24
    YYDEBUG(857, *YYCURSOR);
9738
24
    yych = *++YYCURSOR;
9739
24
    if (yych == 'S') goto yy885;
9740
24
    if (yych == 's') goto yy885;
9741
20
    goto yy86;
9742
35
yy858:
9743
35
    YYDEBUG(858, *YYCURSOR);
9744
35
    yych = *++YYCURSOR;
9745
35
    if (yych == 'E') goto yy887;
9746
35
    if (yych == 'e') goto yy887;
9747
8
    goto yy86;
9748
528
yy859:
9749
528
    YYDEBUG(859, *YYCURSOR);
9750
528
    ++YYCURSOR;
9751
528
    YYFILL(1);
9752
528
    yych = *YYCURSOR;
9753
528
    YYDEBUG(860, *YYCURSOR);
9754
528
    if (yych <= '@') {
9755
272
      if (yych <= 0x1F) {
9756
37
        if (yych <= '\t') {
9757
10
          if (yych <= 0x00) goto yy86;
9758
7
          if (yych <= 0x08) goto yy738;
9759
3
          goto yy859;
9760
27
        } else {
9761
27
          if (yych <= '\n') goto yy787;
9762
14
          if (yych == '\r') goto yy787;
9763
5
          goto yy738;
9764
14
        }
9765
235
      } else {
9766
235
        if (yych <= ')') {
9767
82
          if (yych <= ' ') goto yy859;
9768
63
          if (yych == '#') goto yy888;
9769
49
          goto yy738;
9770
153
        } else {
9771
153
          if (yych <= '*') goto yy789;
9772
143
          if (yych == '/') goto yy889;
9773
13
          goto yy738;
9774
143
        }
9775
235
      }
9776
272
    } else {
9777
256
      if (yych <= '_') {
9778
26
        if (yych <= 'H') {
9779
16
          if (yych == 'E') goto yy891;
9780
16
          goto yy890;
9781
16
        } else {
9782
10
          if (yych <= 'I') goto yy892;
9783
9
          if (yych <= 'Z') goto yy890;
9784
1
          if (yych <= '^') goto yy738;
9785
0
          goto yy890;
9786
1
        }
9787
230
      } else {
9788
230
        if (yych <= 'h') {
9789
54
          if (yych <= '`') goto yy738;
9790
54
          if (yych == 'e') goto yy891;
9791
0
          goto yy890;
9792
176
        } else {
9793
176
          if (yych <= 'i') goto yy892;
9794
55
          if (yych <= 'z') goto yy890;
9795
43
          if (yych <= 0x7F) goto yy738;
9796
12
          goto yy890;
9797
43
        }
9798
230
      }
9799
256
    }
9800
232
yy861:
9801
232
    YYDEBUG(861, *YYCURSOR);
9802
232
    ++YYCURSOR;
9803
232
    YYFILL(1);
9804
232
    yych = *YYCURSOR;
9805
232
    if (yych <= '*') {
9806
12
      if (yych <= 0x00) goto yy86;
9807
8
      if (yych <= ')') goto yy590;
9808
8
      goto yy668;
9809
220
    } else {
9810
220
      if (yych == '/') goto yy787;
9811
9
      goto yy590;
9812
220
    }
9813
10
yy862:
9814
10
    YYDEBUG(862, *YYCURSOR);
9815
10
    ++YYCURSOR;
9816
10
    YYFILL(1);
9817
10
    yych = *YYCURSOR;
9818
10
    if (yych <= 'S') {
9819
1
      if (yych <= 0x00) goto yy86;
9820
1
      if (yych == '*') goto yy668;
9821
1
      goto yy590;
9822
9
    } else {
9823
9
      if (yych <= 'T') goto yy893;
9824
9
      if (yych == 't') goto yy893;
9825
0
      goto yy590;
9826
9
    }
9827
59
yy863:
9828
59
    YYDEBUG(863, *YYCURSOR);
9829
59
    ++YYCURSOR;
9830
59
    YYFILL(1);
9831
59
    yych = *YYCURSOR;
9832
59
    if (yych <= 'O') {
9833
3
      if (yych <= 0x00) goto yy86;
9834
2
      if (yych == '*') goto yy668;
9835
2
      goto yy590;
9836
56
    } else {
9837
56
      if (yych <= 'P') goto yy894;
9838
56
      if (yych == 'p') goto yy894;
9839
3
      goto yy590;
9840
56
    }
9841
22
yy864:
9842
22
    YYDEBUG(864, *YYCURSOR);
9843
22
    ++YYCURSOR;
9844
22
    YYFILL(1);
9845
22
    yych = *YYCURSOR;
9846
22
    if (yych <= '\r') {
9847
3
      if (yych <= '\t') {
9848
0
        if (yych <= 0x00) goto yy86;
9849
0
        goto yy586;
9850
3
      } else {
9851
3
        if (yych <= '\n') goto yy495;
9852
3
        if (yych <= '\f') goto yy586;
9853
3
        goto yy495;
9854
3
      }
9855
19
    } else {
9856
19
      if (yych <= 'D') {
9857
1
        if (yych <= 'C') goto yy586;
9858
0
        goto yy895;
9859
18
      } else {
9860
18
        if (yych == 'd') goto yy895;
9861
6
        goto yy586;
9862
18
      }
9863
19
    }
9864
85
yy865:
9865
85
    YYDEBUG(865, *YYCURSOR);
9866
85
    ++YYCURSOR;
9867
85
    YYFILL(1);
9868
85
    yych = *YYCURSOR;
9869
85
    if (yych <= '\r') {
9870
15
      if (yych <= '\t') {
9871
14
        if (yych <= 0x00) goto yy86;
9872
11
        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
70
    } else {
9879
70
      if (yych <= 'M') {
9880
7
        if (yych <= 'L') goto yy586;
9881
5
        goto yy896;
9882
63
      } else {
9883
63
        if (yych == 'm') goto yy896;
9884
16
        goto yy586;
9885
63
      }
9886
70
    }
9887
0
yy866:
9888
0
    YYDEBUG(866, *YYCURSOR);
9889
0
    yyaccept = 4;
9890
0
    yych = *(YYMARKER = ++YYCURSOR);
9891
0
    if (yych == 'E') goto yy897;
9892
0
    if (yych == 'e') goto yy897;
9893
0
    goto yy48;
9894
380
yy867:
9895
380
    YYDEBUG(867, *YYCURSOR);
9896
380
    yyaccept = 88;
9897
380
    YYMARKER = ++YYCURSOR;
9898
380
    YYFILL(1);
9899
380
    yych = *YYCURSOR;
9900
380
    YYDEBUG(868, *YYCURSOR);
9901
380
    if (yych <= '\\') {
9902
164
      if (yych <= '@') {
9903
26
        if (yych <= '/') goto yy869;
9904
4
        if (yych <= '9') goto yy867;
9905
138
      } else {
9906
138
        if (yych <= 'Z') goto yy867;
9907
27
        if (yych >= '\\') goto yy840;
9908
27
      }
9909
216
    } else {
9910
216
      if (yych <= '`') {
9911
33
        if (yych == '_') goto yy867;
9912
183
      } else {
9913
183
        if (yych <= 'z') goto yy867;
9914
43
        if (yych >= 0x80) goto yy867;
9915
43
      }
9916
216
    }
9917
44
yy869:
9918
44
    YYDEBUG(869, *YYCURSOR);
9919
44
    yyleng = YYCURSOR - SCNG(yy_text);
9920
44
#line 2439 "Zend/zend_language_scanner.l"
9921
44
    {
9922
44
  RETURN_TOKEN_WITH_STR(T_NAME_RELATIVE, sizeof("namespace\\") - 1);
9923
44
}
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
19
yy871:
9931
19
    YYDEBUG(871, *YYCURSOR);
9932
19
    yych = *++YYCURSOR;
9933
19
    if (yych == 'E') goto yy901;
9934
19
    if (yych == 'e') goto yy901;
9935
10
    goto yy86;
9936
10
yy872:
9937
2
    YYDEBUG(872, *YYCURSOR);
9938
2
    ++YYCURSOR;
9939
2
    YYDEBUG(873, *YYCURSOR);
9940
2
    yyleng = YYCURSOR - SCNG(yy_text);
9941
2
#line 1786 "Zend/zend_language_scanner.l"
9942
2
    {
9943
2
  RETURN_TOKEN_WITH_IDENT(T_PUBLIC_SET);
9944
2
}
9945
0
#line 9946 "Zend/zend_language_scanner.c"
9946
15
yy874:
9947
15
    YYDEBUG(874, *YYCURSOR);
9948
15
    yyaccept = 4;
9949
15
    yych = *(YYMARKER = ++YYCURSOR);
9950
15
    if (yych == 'E') goto yy902;
9951
15
    if (yych == 'e') goto yy902;
9952
3
    goto yy48;
9953
48
yy875:
9954
48
    YYDEBUG(875, *YYCURSOR);
9955
48
    ++YYCURSOR;
9956
141
yy876:
9957
141
    YYDEBUG(876, *YYCURSOR);
9958
141
    yyleng = YYCURSOR - SCNG(yy_text);
9959
141
#line 1428 "Zend/zend_language_scanner.l"
9960
141
    {
9961
141
  yyless(yyleng - 1);
9962
141
  HANDLE_NEWLINES(yytext, yyleng);
9963
141
  RETURN_TOKEN_WITH_IDENT(T_YIELD_FROM);
9964
141
}
9965
0
#line 9966 "Zend/zend_language_scanner.c"
9966
604
yy877:
9967
604
    YYDEBUG(877, *YYCURSOR);
9968
604
    ++YYCURSOR;
9969
604
    YYFILL(1);
9970
604
    yych = *YYCURSOR;
9971
604
    if (yych <= '\r') {
9972
523
      if (yych <= '\t') {
9973
9
        if (yych <= 0x00) goto yy86;
9974
0
        goto yy808;
9975
514
      } else {
9976
514
        if (yych <= '\n') goto yy904;
9977
151
        if (yych <= '\f') goto yy808;
9978
151
        goto yy904;
9979
151
      }
9980
523
    } else {
9981
81
      if (yych <= '*') {
9982
23
        if (yych <= ')') goto yy808;
9983
14
        goto yy848;
9984
58
      } else {
9985
58
        if (yych == '[') goto yy696;
9986
56
        goto yy808;
9987
58
      }
9988
81
    }
9989
126
yy878:
9990
126
    YYDEBUG(878, *YYCURSOR);
9991
126
    ++YYCURSOR;
9992
126
    YYFILL(1);
9993
126
    yych = *YYCURSOR;
9994
126
    if (yych <= '*') {
9995
112
      if (yych <= 0x00) goto yy86;
9996
112
      if (yych <= ')') goto yy696;
9997
88
      goto yy906;
9998
112
    } else {
9999
14
      if (yych == '/') goto yy808;
10000
0
      goto yy696;
10001
14
    }
10002
56
yy879:
10003
56
    YYDEBUG(879, *YYCURSOR);
10004
56
    ++YYCURSOR;
10005
56
    YYFILL(1);
10006
56
    yych = *YYCURSOR;
10007
56
    if (yych <= 'Q') {
10008
1
      if (yych <= 0x00) goto yy86;
10009
1
      if (yych == '*') goto yy760;
10010
0
      goto yy696;
10011
55
    } else {
10012
55
      if (yych <= 'R') goto yy907;
10013
10
      if (yych == 'r') goto yy907;
10014
8
      goto yy696;
10015
10
    }
10016
100
yy880:
10017
100
    YYDEBUG(880, *YYCURSOR);
10018
100
    ++YYCURSOR;
10019
100
    YYFILL(1);
10020
100
    yych = *YYCURSOR;
10021
100
    if (yych <= '9') {
10022
36
      if (yych <= '\n') {
10023
7
        if (yych <= 0x00) goto yy875;
10024
7
        if (yych <= '\t') goto yy908;
10025
5
        goto yy909;
10026
29
      } else {
10027
29
        if (yych == '\r') goto yy909;
10028
29
        if (yych <= '/') goto yy908;
10029
1
        goto yy692;
10030
29
      }
10031
64
    } else {
10032
64
      if (yych <= '_') {
10033
47
        if (yych <= '@') goto yy908;
10034
47
        if (yych <= 'Z') goto yy692;
10035
0
        if (yych <= '^') goto yy908;
10036
0
        goto yy692;
10037
17
      } else {
10038
17
        if (yych <= '`') goto yy908;
10039
16
        if (yych <= 'z') goto yy692;
10040
10
        if (yych <= 0x7F) goto yy908;
10041
9
        goto yy692;
10042
10
      }
10043
64
    }
10044
14
yy881:
10045
14
    YYDEBUG(881, *YYCURSOR);
10046
14
    yyaccept = 4;
10047
14
    yych = *(YYMARKER = ++YYCURSOR);
10048
14
    if (yych == '_') goto yy910;
10049
0
    goto yy48;
10050
11
yy882:
10051
11
    YYDEBUG(882, *YYCURSOR);
10052
11
    yyaccept = 4;
10053
11
    yych = *(YYMARKER = ++YYCURSOR);
10054
11
    if (yych == 'I') goto yy912;
10055
4
    if (yych == 'i') goto yy912;
10056
1
    goto yy48;
10057
46
yy883:
10058
46
    YYDEBUG(883, *YYCURSOR);
10059
46
    yyaccept = 4;
10060
46
    yych = *(YYMARKER = ++YYCURSOR);
10061
46
    if (yych == '_') goto yy913;
10062
19
    goto yy48;
10063
19
yy884:
10064
6
    YYDEBUG(884, *YYCURSOR);
10065
6
    yyaccept = 4;
10066
6
    yych = *(YYMARKER = ++YYCURSOR);
10067
6
    if (yych == '_') goto yy914;
10068
2
    goto yy48;
10069
4
yy885:
10070
4
    YYDEBUG(885, *YYCURSOR);
10071
4
    ++YYCURSOR;
10072
14
yy886:
10073
14
    YYDEBUG(886, *YYCURSOR);
10074
14
    yyleng = YYCURSOR - SCNG(yy_text);
10075
14
#line 1570 "Zend/zend_language_scanner.l"
10076
14
    {
10077
14
  yyless(4);
10078
14
  RETURN_TOKEN_WITH_STR(T_STRING, 0);
10079
14
}
10080
0
#line 10081 "Zend/zend_language_scanner.c"
10081
27
yy887:
10082
27
    YYDEBUG(887, *YYCURSOR);
10083
27
    yych = *++YYCURSOR;
10084
27
    if (yych == 'N') goto yy916;
10085
23
    if (yych == 'n') goto yy916;
10086
3
    goto yy86;
10087
14
yy888:
10088
14
    YYDEBUG(888, *YYCURSOR);
10089
14
    ++YYCURSOR;
10090
14
    YYFILL(1);
10091
14
    yych = *YYCURSOR;
10092
14
    if (yych <= '\f') {
10093
9
      if (yych <= 0x00) goto yy86;
10094
9
      if (yych == '\n') goto yy859;
10095
1
      goto yy738;
10096
9
    } else {
10097
5
      if (yych <= '\r') goto yy859;
10098
5
      if (yych == '*') goto yy789;
10099
2
      goto yy738;
10100
5
    }
10101
130
yy889:
10102
130
    YYDEBUG(889, *YYCURSOR);
10103
130
    ++YYCURSOR;
10104
130
    YYFILL(1);
10105
130
    yych = *YYCURSOR;
10106
130
    if (yych <= '\f') {
10107
9
      if (yych <= 0x00) goto yy86;
10108
0
      if (yych == '\n') goto yy787;
10109
0
      goto yy738;
10110
121
    } else {
10111
121
      if (yych <= '\r') goto yy787;
10112
108
      if (yych == '*') goto yy917;
10113
51
      goto yy738;
10114
108
    }
10115
48
yy890:
10116
48
    YYDEBUG(890, *YYCURSOR);
10117
48
    yyaccept = 53;
10118
48
    YYMARKER = ++YYCURSOR;
10119
48
    YYFILL(1);
10120
48
    yych = *YYCURSOR;
10121
48
    if (yych <= '\f') {
10122
4
      if (yych <= 0x00) goto yy583;
10123
4
      if (yych == '\n') goto yy787;
10124
3
      goto yy738;
10125
44
    } else {
10126
44
      if (yych <= '\r') goto yy787;
10127
44
      if (yych == '*') goto yy789;
10128
39
      goto yy738;
10129
44
    }
10130
54
yy891:
10131
54
    YYDEBUG(891, *YYCURSOR);
10132
54
    yyaccept = 53;
10133
54
    YYMARKER = ++YYCURSOR;
10134
54
    YYFILL(1);
10135
54
    yych = *YYCURSOR;
10136
54
    if (yych <= ')') {
10137
4
      if (yych <= '\n') {
10138
0
        if (yych <= 0x00) goto yy583;
10139
0
        if (yych <= '\t') goto yy738;
10140
0
        goto yy787;
10141
4
      } else {
10142
4
        if (yych == '\r') goto yy787;
10143
4
        goto yy738;
10144
4
      }
10145
50
    } else {
10146
50
      if (yych <= 'X') {
10147
18
        if (yych <= '*') goto yy789;
10148
10
        if (yych <= 'W') goto yy738;
10149
8
        goto yy918;
10150
32
      } else {
10151
32
        if (yych == 'x') goto yy918;
10152
22
        goto yy738;
10153
32
      }
10154
50
    }
10155
122
yy892:
10156
122
    YYDEBUG(892, *YYCURSOR);
10157
122
    yyaccept = 53;
10158
122
    YYMARKER = ++YYCURSOR;
10159
122
    YYFILL(1);
10160
122
    yych = *YYCURSOR;
10161
122
    if (yych <= ')') {
10162
24
      if (yych <= '\n') {
10163
12
        if (yych <= 0x00) goto yy583;
10164
12
        if (yych <= '\t') goto yy738;
10165
9
        goto yy787;
10166
12
      } else {
10167
12
        if (yych == '\r') goto yy787;
10168
12
        goto yy738;
10169
12
      }
10170
98
    } else {
10171
98
      if (yych <= 'M') {
10172
61
        if (yych <= '*') goto yy789;
10173
61
        if (yych <= 'L') goto yy738;
10174
59
        goto yy919;
10175
61
      } else {
10176
37
        if (yych == 'm') goto yy919;
10177
5
        goto yy738;
10178
37
      }
10179
98
    }
10180
9
yy893:
10181
9
    YYDEBUG(893, *YYCURSOR);
10182
9
    ++YYCURSOR;
10183
9
    YYFILL(1);
10184
9
    yych = *YYCURSOR;
10185
9
    if (yych <= 'D') {
10186
0
      if (yych <= 0x00) goto yy86;
10187
0
      if (yych == '*') goto yy668;
10188
0
      goto yy590;
10189
9
    } else {
10190
9
      if (yych <= 'E') goto yy920;
10191
9
      if (yych == 'e') goto yy920;
10192
1
      goto yy590;
10193
9
    }
10194
53
yy894:
10195
53
    YYDEBUG(894, *YYCURSOR);
10196
53
    ++YYCURSOR;
10197
53
    YYFILL(1);
10198
53
    yych = *YYCURSOR;
10199
53
    if (yych <= 'K') {
10200
1
      if (yych <= 0x00) goto yy86;
10201
1
      if (yych == '*') goto yy668;
10202
0
      goto yy590;
10203
52
    } else {
10204
52
      if (yych <= 'L') goto yy921;
10205
49
      if (yych == 'l') goto yy921;
10206
3
      goto yy590;
10207
49
    }
10208
33
yy895:
10209
33
    YYDEBUG(895, *YYCURSOR);
10210
33
    ++YYCURSOR;
10211
33
    YYFILL(1);
10212
33
    yych = *YYCURSOR;
10213
33
    if (yych <= '\r') {
10214
2
      if (yych <= '\t') {
10215
2
        if (yych <= 0x00) goto yy86;
10216
0
        goto yy586;
10217
2
      } else {
10218
0
        if (yych <= '\n') goto yy495;
10219
0
        if (yych <= '\f') goto yy586;
10220
0
        goto yy495;
10221
0
      }
10222
31
    } else {
10223
31
      if (yych <= 'S') {
10224
7
        if (yych <= 'R') goto yy586;
10225
5
        goto yy922;
10226
24
      } else {
10227
24
        if (yych == 's') goto yy922;
10228
22
        goto yy586;
10229
24
      }
10230
31
    }
10231
52
yy896:
10232
52
    YYDEBUG(896, *YYCURSOR);
10233
52
    ++YYCURSOR;
10234
52
    YYFILL(1);
10235
52
    yych = *YYCURSOR;
10236
52
    if (yych <= '\r') {
10237
7
      if (yych <= '\t') {
10238
7
        if (yych <= 0x00) goto yy86;
10239
6
        goto yy586;
10240
7
      } else {
10241
0
        if (yych <= '\n') goto yy495;
10242
0
        if (yych <= '\f') goto yy586;
10243
0
        goto yy495;
10244
0
      }
10245
45
    } else {
10246
45
      if (yych <= 'E') {
10247
2
        if (yych <= 'D') goto yy586;
10248
0
        goto yy923;
10249
43
      } else {
10250
43
        if (yych == 'e') goto yy923;
10251
12
        goto yy586;
10252
43
      }
10253
45
    }
10254
0
yy897:
10255
0
    YYDEBUG(897, *YYCURSOR);
10256
0
    yyaccept = 89;
10257
0
    yych = *(YYMARKER = ++YYCURSOR);
10258
0
    if (yybm[256+yych] & 128) {
10259
0
      goto yy47;
10260
0
    }
10261
0
    if (yych == '\\') goto yy164;
10262
0
yy898:
10263
0
    YYDEBUG(898, *YYCURSOR);
10264
0
    yyleng = YYCURSOR - SCNG(yy_text);
10265
0
#line 1726 "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 1794 "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
9
yy901:
10281
9
    YYDEBUG(901, *YYCURSOR);
10282
9
    yych = *++YYCURSOR;
10283
9
    if (yych == 'T') goto yy924;
10284
9
    if (yych == 't') goto yy924;
10285
0
    goto yy86;
10286
12
yy902:
10287
12
    YYDEBUG(902, *YYCURSOR);
10288
12
    yyaccept = 90;
10289
12
    yych = *(YYMARKER = ++YYCURSOR);
10290
12
    if (yybm[256+yych] & 128) {
10291
0
      goto yy47;
10292
0
    }
10293
12
    if (yych == '\\') goto yy164;
10294
12
yy903:
10295
12
    YYDEBUG(903, *YYCURSOR);
10296
12
    yyleng = YYCURSOR - SCNG(yy_text);
10297
12
#line 1734 "Zend/zend_language_scanner.l"
10298
12
    {
10299
12
  RETURN_TOKEN_WITH_IDENT(T_REQUIRE_ONCE);
10300
12
}
10301
0
#line 10302 "Zend/zend_language_scanner.c"
10302
603
yy904:
10303
603
    YYDEBUG(904, *YYCURSOR);
10304
603
    ++YYCURSOR;
10305
603
    YYFILL(1);
10306
603
    yych = *YYCURSOR;
10307
603
    YYDEBUG(905, *YYCURSOR);
10308
603
    if (yych <= '"') {
10309
95
      if (yych <= '\n') {
10310
68
        if (yych <= 0x00) goto yy86;
10311
57
        if (yych <= 0x08) goto yy808;
10312
32
        if (yych <= '\t') goto yy904;
10313
9
        goto yy846;
10314
32
      } else {
10315
27
        if (yych <= '\r') {
10316
26
          if (yych <= '\f') goto yy808;
10317
26
          goto yy846;
10318
26
        } else {
10319
1
          if (yych == ' ') goto yy904;
10320
1
          goto yy808;
10321
1
        }
10322
27
      }
10323
508
    } else {
10324
508
      if (yych <= '/') {
10325
339
        if (yych <= ')') {
10326
49
          if (yych <= '#') goto yy925;
10327
16
          goto yy808;
10328
290
        } else {
10329
290
          if (yych <= '*') goto yy848;
10330
284
          if (yych <= '.') goto yy808;
10331
177
          goto yy926;
10332
284
        }
10333
339
      } else {
10334
169
        if (yych <= 'F') {
10335
97
          if (yych <= 'E') goto yy808;
10336
97
          goto yy927;
10337
97
        } else {
10338
72
          if (yych == 'f') goto yy927;
10339
48
          goto yy808;
10340
72
        }
10341
169
      }
10342
508
    }
10343
88
yy906:
10344
88
    YYDEBUG(906, *YYCURSOR);
10345
88
    ++YYCURSOR;
10346
88
    YYFILL(1);
10347
88
    yych = *YYCURSOR;
10348
88
    if (yych <= '*') {
10349
7
      if (yych <= 0x00) goto yy86;
10350
7
      if (yych <= ')') goto yy696;
10351
0
      goto yy760;
10352
81
    } else {
10353
81
      if (yych == '/') goto yy846;
10354
5
      goto yy696;
10355
81
    }
10356
47
yy907:
10357
47
    YYDEBUG(907, *YYCURSOR);
10358
47
    ++YYCURSOR;
10359
47
    YYFILL(1);
10360
47
    yych = *YYCURSOR;
10361
47
    if (yych <= 'N') {
10362
1
      if (yych <= 0x00) goto yy86;
10363
1
      if (yych == '*') goto yy760;
10364
1
      goto yy696;
10365
46
    } else {
10366
46
      if (yych <= 'O') goto yy928;
10367
2
      if (yych == 'o') goto yy928;
10368
0
      goto yy696;
10369
2
    }
10370
32
yy908:
10371
32
    YYDEBUG(908, *YYCURSOR);
10372
32
    yyaccept = 91;
10373
32
    YYMARKER = ++YYCURSOR;
10374
32
    YYFILL(1);
10375
32
    yych = *YYCURSOR;
10376
32
    if (yych <= '\n') {
10377
24
      if (yych <= 0x00) goto yy876;
10378
19
      if (yych <= '\t') goto yy692;
10379
18
      goto yy616;
10380
19
    } else {
10381
8
      if (yych == '\r') goto yy616;
10382
3
      goto yy692;
10383
8
    }
10384
5
yy909:
10385
5
    YYDEBUG(909, *YYCURSOR);
10386
5
    yyaccept = 91;
10387
5
    YYMARKER = ++YYCURSOR;
10388
5
    YYFILL(5);
10389
5
    yych = *YYCURSOR;
10390
5
    if (yych <= '"') {
10391
3
      if (yych <= '\f') {
10392
0
        if (yych <= 0x08) goto yy876;
10393
0
        if (yych <= '\n') goto yy616;
10394
0
        goto yy876;
10395
3
      } else {
10396
3
        if (yych <= '\r') goto yy616;
10397
3
        if (yych == ' ') goto yy616;
10398
3
        goto yy876;
10399
3
      }
10400
3
    } else {
10401
2
      if (yych <= 'E') {
10402
2
        if (yych <= '#') goto yy618;
10403
1
        if (yych == '/') goto yy619;
10404
1
        goto yy876;
10405
1
      } else {
10406
0
        if (yych <= 'F') goto yy691;
10407
0
        if (yych == 'f') goto yy691;
10408
0
        goto yy876;
10409
0
      }
10410
2
    }
10411
14
yy910:
10412
14
    YYDEBUG(910, *YYCURSOR);
10413
14
    yyaccept = 92;
10414
14
    yych = *(YYMARKER = ++YYCURSOR);
10415
14
    if (yybm[256+yych] & 128) {
10416
1
      goto yy47;
10417
1
    }
10418
13
    if (yych == '\\') goto yy164;
10419
13
yy911:
10420
13
    YYDEBUG(911, *YYCURSOR);
10421
13
    yyleng = YYCURSOR - SCNG(yy_text);
10422
13
#line 2261 "Zend/zend_language_scanner.l"
10423
13
    {
10424
13
  RETURN_TOKEN_WITH_IDENT(T_FUNC_C);
10425
13
}
10426
0
#line 10427 "Zend/zend_language_scanner.c"
10427
10
yy912:
10428
10
    YYDEBUG(912, *YYCURSOR);
10429
10
    yyaccept = 4;
10430
10
    yych = *(YYMARKER = ++YYCURSOR);
10431
10
    if (yych == 'L') goto yy929;
10432
3
    if (yych == 'l') goto yy929;
10433
0
    goto yy48;
10434
27
yy913:
10435
27
    YYDEBUG(913, *YYCURSOR);
10436
27
    yyaccept = 4;
10437
27
    yych = *(YYMARKER = ++YYCURSOR);
10438
27
    if (yych == '_') goto yy930;
10439
1
    goto yy48;
10440
4
yy914:
10441
4
    YYDEBUG(914, *YYCURSOR);
10442
4
    yyaccept = 93;
10443
4
    yych = *(YYMARKER = ++YYCURSOR);
10444
4
    if (yybm[256+yych] & 128) {
10445
0
      goto yy47;
10446
0
    }
10447
4
    if (yych == '\\') goto yy164;
10448
4
yy915:
10449
4
    YYDEBUG(915, *YYCURSOR);
10450
4
    yyleng = YYCURSOR - SCNG(yy_text);
10451
4
#line 2265 "Zend/zend_language_scanner.l"
10452
4
    {
10453
4
  RETURN_TOKEN_WITH_IDENT(T_PROPERTY_C);
10454
4
}
10455
0
#line 10456 "Zend/zend_language_scanner.c"
10456
24
yy916:
10457
24
    YYDEBUG(916, *YYCURSOR);
10458
24
    yych = *++YYCURSOR;
10459
24
    if (yych == 'T') goto yy857;
10460
17
    if (yych == 't') goto yy857;
10461
0
    goto yy86;
10462
57
yy917:
10463
57
    YYDEBUG(917, *YYCURSOR);
10464
57
    ++YYCURSOR;
10465
57
    YYFILL(1);
10466
57
    yych = *YYCURSOR;
10467
57
    if (yych <= '\r') {
10468
8
      if (yych <= '\t') {
10469
2
        if (yych <= 0x00) goto yy86;
10470
2
        goto yy738;
10471
6
      } else {
10472
6
        if (yych <= '\n') goto yy787;
10473
6
        if (yych <= '\f') goto yy738;
10474
6
        goto yy787;
10475
6
      }
10476
49
    } else {
10477
49
      if (yych <= '*') {
10478
20
        if (yych <= ')') goto yy738;
10479
1
        goto yy789;
10480
29
      } else {
10481
29
        if (yych == '/') goto yy859;
10482
18
        goto yy738;
10483
29
      }
10484
49
    }
10485
18
yy918:
10486
18
    YYDEBUG(918, *YYCURSOR);
10487
18
    ++YYCURSOR;
10488
18
    YYFILL(1);
10489
18
    yych = *YYCURSOR;
10490
18
    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
18
    } else {
10500
18
      if (yych <= 'T') {
10501
7
        if (yych <= '*') goto yy789;
10502
7
        if (yych <= 'S') goto yy738;
10503
0
        goto yy932;
10504
11
      } else {
10505
11
        if (yych == 't') goto yy932;
10506
2
        goto yy738;
10507
11
      }
10508
18
    }
10509
91
yy919:
10510
91
    YYDEBUG(919, *YYCURSOR);
10511
91
    ++YYCURSOR;
10512
91
    YYFILL(1);
10513
91
    yych = *YYCURSOR;
10514
91
    if (yych <= ')') {
10515
10
      if (yych <= '\n') {
10516
5
        if (yych <= 0x00) goto yy86;
10517
5
        if (yych <= '\t') goto yy738;
10518
0
        goto yy787;
10519
5
      } else {
10520
5
        if (yych == '\r') goto yy787;
10521
3
        goto yy738;
10522
5
      }
10523
81
    } else {
10524
81
      if (yych <= 'P') {
10525
8
        if (yych <= '*') goto yy789;
10526
8
        if (yych <= 'O') goto yy738;
10527
0
        goto yy933;
10528
73
      } else {
10529
73
        if (yych == 'p') goto yy933;
10530
0
        goto yy738;
10531
73
      }
10532
81
    }
10533
8
yy920:
10534
8
    YYDEBUG(920, *YYCURSOR);
10535
8
    ++YYCURSOR;
10536
8
    YYFILL(1);
10537
8
    yych = *YYCURSOR;
10538
8
    if (yych <= 'M') {
10539
0
      if (yych <= 0x00) goto yy86;
10540
0
      if (yych == '*') goto yy668;
10541
0
      goto yy590;
10542
8
    } else {
10543
8
      if (yych <= 'N') goto yy934;
10544
8
      if (yych == 'n') goto yy934;
10545
3
      goto yy590;
10546
8
    }
10547
49
yy921:
10548
49
    YYDEBUG(921, *YYCURSOR);
10549
49
    ++YYCURSOR;
10550
49
    YYFILL(1);
10551
49
    yych = *YYCURSOR;
10552
49
    if (yych <= 'D') {
10553
5
      if (yych <= 0x00) goto yy86;
10554
5
      if (yych == '*') goto yy668;
10555
5
      goto yy590;
10556
44
    } else {
10557
44
      if (yych <= 'E') goto yy935;
10558
44
      if (yych == 'e') goto yy935;
10559
0
      goto yy590;
10560
44
    }
10561
7
yy922:
10562
7
    YYDEBUG(922, *YYCURSOR);
10563
7
    yyaccept = 94;
10564
7
    YYMARKER = ++YYCURSOR;
10565
7
    YYFILL(1);
10566
7
    yych = *YYCURSOR;
10567
7
    if (yych <= '\n') {
10568
0
      if (yych <= 0x00) goto yy886;
10569
0
      if (yych <= '\t') goto yy586;
10570
0
      goto yy495;
10571
7
    } else {
10572
7
      if (yych == '\r') goto yy495;
10573
7
      goto yy586;
10574
7
    }
10575
31
yy923:
10576
31
    YYDEBUG(923, *YYCURSOR);
10577
31
    ++YYCURSOR;
10578
31
    YYFILL(1);
10579
31
    yych = *YYCURSOR;
10580
31
    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
29
    } else {
10590
29
      if (yych <= 'N') {
10591
18
        if (yych <= 'M') goto yy586;
10592
18
        goto yy936;
10593
18
      } else {
10594
11
        if (yych == 'n') goto yy936;
10595
5
        goto yy586;
10596
11
      }
10597
29
    }
10598
9
yy924:
10599
9
    YYDEBUG(924, *YYCURSOR);
10600
9
    yych = *++YYCURSOR;
10601
9
    if (yych == ')') goto yy937;
10602
2
    goto yy86;
10603
33
yy925:
10604
33
    YYDEBUG(925, *YYCURSOR);
10605
33
    ++YYCURSOR;
10606
33
    YYFILL(1);
10607
33
    yych = *YYCURSOR;
10608
33
    if (yych <= '\f') {
10609
17
      if (yych <= 0x00) goto yy86;
10610
5
      if (yych == '\n') goto yy904;
10611
0
      goto yy808;
10612
16
    } else {
10613
16
      if (yych <= '\r') goto yy904;
10614
7
      if (yych == '*') goto yy848;
10615
0
      goto yy808;
10616
7
    }
10617
177
yy926:
10618
177
    YYDEBUG(926, *YYCURSOR);
10619
177
    ++YYCURSOR;
10620
177
    YYFILL(1);
10621
177
    yych = *YYCURSOR;
10622
177
    if (yych <= '\f') {
10623
10
      if (yych <= 0x00) goto yy86;
10624
8
      if (yych == '\n') goto yy846;
10625
8
      goto yy808;
10626
167
    } else {
10627
167
      if (yych <= '\r') goto yy846;
10628
164
      if (yych == '*') goto yy939;
10629
36
      goto yy808;
10630
164
    }
10631
121
yy927:
10632
121
    YYDEBUG(927, *YYCURSOR);
10633
121
    ++YYCURSOR;
10634
121
    YYFILL(1);
10635
121
    yych = *YYCURSOR;
10636
121
    if (yych <= ')') {
10637
8
      if (yych <= '\n') {
10638
8
        if (yych <= 0x00) goto yy86;
10639
8
        if (yych <= '\t') goto yy808;
10640
2
        goto yy846;
10641
8
      } else {
10642
0
        if (yych == '\r') goto yy846;
10643
0
        goto yy808;
10644
0
      }
10645
113
    } else {
10646
113
      if (yych <= 'R') {
10647
76
        if (yych <= '*') goto yy848;
10648
72
        if (yych <= 'Q') goto yy808;
10649
64
        goto yy940;
10650
72
      } else {
10651
37
        if (yych == 'r') goto yy940;
10652
9
        goto yy808;
10653
37
      }
10654
113
    }
10655
46
yy928:
10656
46
    YYDEBUG(928, *YYCURSOR);
10657
46
    ++YYCURSOR;
10658
46
    YYFILL(1);
10659
46
    yych = *YYCURSOR;
10660
46
    if (yych <= 'L') {
10661
5
      if (yych <= 0x00) goto yy86;
10662
2
      if (yych == '*') goto yy760;
10663
1
      goto yy696;
10664
41
    } else {
10665
41
      if (yych <= 'M') goto yy941;
10666
3
      if (yych == 'm') goto yy941;
10667
2
      goto yy696;
10668
3
    }
10669
10
yy929:
10670
10
    YYDEBUG(929, *YYCURSOR);
10671
10
    yyaccept = 4;
10672
10
    yych = *(YYMARKER = ++YYCURSOR);
10673
10
    if (yych == 'E') goto yy942;
10674
4
    if (yych == 'e') goto yy942;
10675
1
    goto yy48;
10676
26
yy930:
10677
26
    YYDEBUG(930, *YYCURSOR);
10678
26
    yyaccept = 95;
10679
26
    yych = *(YYMARKER = ++YYCURSOR);
10680
26
    if (yybm[256+yych] & 128) {
10681
2
      goto yy47;
10682
2
    }
10683
24
    if (yych == '\\') goto yy164;
10684
24
yy931:
10685
24
    YYDEBUG(931, *YYCURSOR);
10686
24
    yyleng = YYCURSOR - SCNG(yy_text);
10687
24
#line 2285 "Zend/zend_language_scanner.l"
10688
24
    {
10689
24
  RETURN_TOKEN_WITH_IDENT(T_NS_C);
10690
24
}
10691
0
#line 10692 "Zend/zend_language_scanner.c"
10692
9
yy932:
10693
9
    YYDEBUG(932, *YYCURSOR);
10694
9
    ++YYCURSOR;
10695
9
    YYFILL(1);
10696
9
    yych = *YYCURSOR;
10697
9
    if (yych <= ')') {
10698
4
      if (yych <= '\n') {
10699
0
        if (yych <= 0x00) goto yy86;
10700
0
        if (yych <= '\t') goto yy738;
10701
0
        goto yy787;
10702
4
      } else {
10703
4
        if (yych == '\r') goto yy787;
10704
4
        goto yy738;
10705
4
      }
10706
5
    } else {
10707
5
      if (yych <= 'E') {
10708
0
        if (yych <= '*') goto yy789;
10709
0
        if (yych <= 'D') goto yy738;
10710
0
        goto yy943;
10711
5
      } else {
10712
5
        if (yych == 'e') goto yy943;
10713
0
        goto yy738;
10714
5
      }
10715
5
    }
10716
73
yy933:
10717
73
    YYDEBUG(933, *YYCURSOR);
10718
73
    ++YYCURSOR;
10719
73
    YYFILL(1);
10720
73
    yych = *YYCURSOR;
10721
73
    if (yych <= ')') {
10722
3
      if (yych <= '\n') {
10723
1
        if (yych <= 0x00) goto yy86;
10724
0
        if (yych <= '\t') goto yy738;
10725
0
        goto yy787;
10726
2
      } else {
10727
2
        if (yych == '\r') goto yy787;
10728
2
        goto yy738;
10729
2
      }
10730
70
    } else {
10731
70
      if (yych <= 'L') {
10732
11
        if (yych <= '*') goto yy789;
10733
3
        if (yych <= 'K') goto yy738;
10734
0
        goto yy944;
10735
59
      } else {
10736
59
        if (yych == 'l') goto yy944;
10737
2
        goto yy738;
10738
59
      }
10739
70
    }
10740
5
yy934:
10741
5
    YYDEBUG(934, *YYCURSOR);
10742
5
    ++YYCURSOR;
10743
5
    YYFILL(1);
10744
5
    yych = *YYCURSOR;
10745
5
    if (yych <= 'C') {
10746
0
      if (yych <= 0x00) goto yy86;
10747
0
      if (yych == '*') goto yy668;
10748
0
      goto yy590;
10749
5
    } else {
10750
5
      if (yych <= 'D') goto yy945;
10751
5
      if (yych == 'd') goto yy945;
10752
4
      goto yy590;
10753
5
    }
10754
44
yy935:
10755
44
    YYDEBUG(935, *YYCURSOR);
10756
44
    ++YYCURSOR;
10757
44
    YYFILL(1);
10758
44
    yych = *YYCURSOR;
10759
44
    if (yych <= 'L') {
10760
5
      if (yych <= 0x00) goto yy86;
10761
1
      if (yych == '*') goto yy668;
10762
1
      goto yy590;
10763
39
    } else {
10764
39
      if (yych <= 'M') goto yy946;
10765
39
      if (yych == 'm') goto yy946;
10766
2
      goto yy590;
10767
39
    }
10768
24
yy936:
10769
24
    YYDEBUG(936, *YYCURSOR);
10770
24
    ++YYCURSOR;
10771
24
    YYFILL(1);
10772
24
    yych = *YYCURSOR;
10773
24
    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
24
    } else {
10783
24
      if (yych <= 'T') {
10784
18
        if (yych <= 'S') goto yy586;
10785
15
        goto yy895;
10786
18
      } else {
10787
6
        if (yych == 't') goto yy895;
10788
0
        goto yy586;
10789
6
      }
10790
24
    }
10791
7
yy937:
10792
7
    YYDEBUG(937, *YYCURSOR);
10793
7
    ++YYCURSOR;
10794
7
    YYDEBUG(938, *YYCURSOR);
10795
7
    yyleng = YYCURSOR - SCNG(yy_text);
10796
7
#line 1790 "Zend/zend_language_scanner.l"
10797
7
    {
10798
7
  RETURN_TOKEN_WITH_IDENT(T_PROTECTED_SET);
10799
7
}
10800
0
#line 10801 "Zend/zend_language_scanner.c"
10801
128
yy939:
10802
128
    YYDEBUG(939, *YYCURSOR);
10803
128
    ++YYCURSOR;
10804
128
    YYFILL(1);
10805
128
    yych = *YYCURSOR;
10806
128
    if (yych <= '\r') {
10807
19
      if (yych <= '\t') {
10808
8
        if (yych <= 0x00) goto yy86;
10809
8
        goto yy808;
10810
11
      } else {
10811
11
        if (yych <= '\n') goto yy846;
10812
8
        if (yych <= '\f') goto yy808;
10813
8
        goto yy846;
10814
8
      }
10815
109
    } else {
10816
109
      if (yych <= '*') {
10817
12
        if (yych <= ')') goto yy808;
10818
0
        goto yy848;
10819
97
      } else {
10820
97
        if (yych == '/') goto yy904;
10821
45
        goto yy808;
10822
97
      }
10823
109
    }
10824
92
yy940:
10825
92
    YYDEBUG(940, *YYCURSOR);
10826
92
    ++YYCURSOR;
10827
92
    YYFILL(1);
10828
92
    yych = *YYCURSOR;
10829
92
    if (yych <= ')') {
10830
16
      if (yych <= '\n') {
10831
8
        if (yych <= 0x00) goto yy86;
10832
7
        if (yych <= '\t') goto yy808;
10833
4
        goto yy846;
10834
8
      } else {
10835
8
        if (yych == '\r') goto yy846;
10836
8
        goto yy808;
10837
8
      }
10838
76
    } else {
10839
76
      if (yych <= 'O') {
10840
53
        if (yych <= '*') goto yy848;
10841
53
        if (yych <= 'N') goto yy808;
10842
53
        goto yy947;
10843
53
      } else {
10844
23
        if (yych == 'o') goto yy947;
10845
3
        goto yy808;
10846
23
      }
10847
76
    }
10848
39
yy941:
10849
39
    YYDEBUG(941, *YYCURSOR);
10850
39
    ++YYCURSOR;
10851
39
    YYFILL(1);
10852
39
    yych = *YYCURSOR;
10853
39
    if (yych <= '@') {
10854
6
      if (yych <= '*') {
10855
6
        if (yych <= 0x00) goto yy875;
10856
6
        if (yych <= ')') goto yy948;
10857
0
        goto yy949;
10858
6
      } else {
10859
0
        if (yych <= '/') goto yy948;
10860
0
        if (yych <= '9') goto yy696;
10861
0
        goto yy948;
10862
0
      }
10863
33
    } else {
10864
33
      if (yych <= '_') {
10865
3
        if (yych <= 'Z') goto yy696;
10866
0
        if (yych <= '^') goto yy948;
10867
0
        goto yy696;
10868
30
      } else {
10869
30
        if (yych <= '`') goto yy948;
10870
9
        if (yych <= 'z') goto yy696;
10871
8
        if (yych <= 0x7F) goto yy948;
10872
8
        goto yy696;
10873
8
      }
10874
33
    }
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
3
    if (yych == 'r') goto yy950;
10881
1
    goto yy48;
10882
5
yy943:
10883
5
    YYDEBUG(943, *YYCURSOR);
10884
5
    ++YYCURSOR;
10885
5
    YYFILL(1);
10886
5
    yych = *YYCURSOR;
10887
5
    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
4
    } else {
10897
4
      if (yych <= 'N') {
10898
0
        if (yych <= '*') goto yy789;
10899
0
        if (yych <= 'M') goto yy738;
10900
0
        goto yy952;
10901
4
      } else {
10902
4
        if (yych == 'n') goto yy952;
10903
0
        goto yy738;
10904
4
      }
10905
4
    }
10906
57
yy944:
10907
57
    YYDEBUG(944, *YYCURSOR);
10908
57
    ++YYCURSOR;
10909
57
    YYFILL(1);
10910
57
    yych = *YYCURSOR;
10911
57
    if (yych <= ')') {
10912
2
      if (yych <= '\n') {
10913
0
        if (yych <= 0x00) goto yy86;
10914
0
        if (yych <= '\t') goto yy738;
10915
0
        goto yy787;
10916
2
      } else {
10917
2
        if (yych == '\r') goto yy787;
10918
2
        goto yy738;
10919
2
      }
10920
55
    } else {
10921
55
      if (yych <= 'E') {
10922
5
        if (yych <= '*') goto yy789;
10923
3
        if (yych <= 'D') goto yy738;
10924
1
        goto yy953;
10925
50
      } else {
10926
50
        if (yych == 'e') goto yy953;
10927
1
        goto yy738;
10928
50
      }
10929
55
    }
10930
13
yy945:
10931
13
    YYDEBUG(945, *YYCURSOR);
10932
13
    ++YYCURSOR;
10933
13
    YYFILL(1);
10934
13
    yych = *YYCURSOR;
10935
13
    if (yych <= 'R') {
10936
5
      if (yych <= 0x00) goto yy86;
10937
5
      if (yych == '*') goto yy668;
10938
3
      goto yy590;
10939
8
    } else {
10940
8
      if (yych <= 'S') goto yy954;
10941
7
      if (yych == 's') goto yy954;
10942
7
      goto yy590;
10943
7
    }
10944
37
yy946:
10945
37
    YYDEBUG(946, *YYCURSOR);
10946
37
    ++YYCURSOR;
10947
37
    YYFILL(1);
10948
37
    yych = *YYCURSOR;
10949
37
    if (yych <= 'D') {
10950
0
      if (yych <= 0x00) goto yy86;
10951
0
      if (yych == '*') goto yy668;
10952
0
      goto yy590;
10953
37
    } else {
10954
37
      if (yych <= 'E') goto yy955;
10955
37
      if (yych == 'e') goto yy955;
10956
17
      goto yy590;
10957
37
    }
10958
73
yy947:
10959
73
    YYDEBUG(947, *YYCURSOR);
10960
73
    ++YYCURSOR;
10961
73
    YYFILL(1);
10962
73
    yych = *YYCURSOR;
10963
73
    if (yych <= ')') {
10964
16
      if (yych <= '\n') {
10965
4
        if (yych <= 0x00) goto yy86;
10966
0
        if (yych <= '\t') goto yy808;
10967
0
        goto yy846;
10968
12
      } else {
10969
12
        if (yych == '\r') goto yy846;
10970
3
        goto yy808;
10971
12
      }
10972
57
    } else {
10973
57
      if (yych <= 'M') {
10974
49
        if (yych <= '*') goto yy848;
10975
49
        if (yych <= 'L') goto yy808;
10976
45
        goto yy956;
10977
49
      } else {
10978
8
        if (yych == 'm') goto yy956;
10979
2
        goto yy808;
10980
8
      }
10981
57
    }
10982
27
yy948:
10983
27
    YYDEBUG(948, *YYCURSOR);
10984
27
    yyaccept = 91;
10985
27
    YYMARKER = ++YYCURSOR;
10986
27
    YYFILL(1);
10987
27
    yych = *YYCURSOR;
10988
27
    if (yych <= 0x00) goto yy876;
10989
27
    if (yych == '*') goto yy760;
10990
27
    goto yy696;
10991
27
yy949:
10992
0
    YYDEBUG(949, *YYCURSOR);
10993
0
    yyaccept = 91;
10994
0
    YYMARKER = ++YYCURSOR;
10995
0
    YYFILL(1);
10996
0
    yych = *YYCURSOR;
10997
0
    if (yych <= '*') {
10998
0
      if (yych <= 0x00) goto yy876;
10999
0
      if (yych <= ')') goto yy696;
11000
0
      goto yy760;
11001
0
    } else {
11002
0
      if (yych == '/') goto yy616;
11003
0
      goto yy696;
11004
0
    }
11005
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 1762 "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
50
yy953:
11046
50
    YYDEBUG(953, *YYCURSOR);
11047
50
    ++YYCURSOR;
11048
50
    YYFILL(1);
11049
50
    yych = *YYCURSOR;
11050
50
    if (yych <= ')') {
11051
18
      if (yych <= '\n') {
11052
6
        if (yych <= 0x00) goto yy86;
11053
1
        if (yych <= '\t') goto yy738;
11054
1
        goto yy787;
11055
12
      } else {
11056
12
        if (yych == '\r') goto yy787;
11057
3
        goto yy738;
11058
12
      }
11059
32
    } else {
11060
32
      if (yych <= 'M') {
11061
2
        if (yych <= '*') goto yy789;
11062
1
        if (yych <= 'L') goto yy738;
11063
0
        goto yy958;
11064
30
      } else {
11065
30
        if (yych == 'm') goto yy958;
11066
2
        goto yy738;
11067
30
      }
11068
32
    }
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
20
yy955:
11079
20
    YYDEBUG(955, *YYCURSOR);
11080
20
    ++YYCURSOR;
11081
20
    YYFILL(1);
11082
20
    yych = *YYCURSOR;
11083
20
    if (yych <= 'M') {
11084
0
      if (yych <= 0x00) goto yy86;
11085
0
      if (yych == '*') goto yy668;
11086
0
      goto yy590;
11087
20
    } else {
11088
20
      if (yych <= 'N') goto yy959;
11089
12
      if (yych == 'n') goto yy959;
11090
2
      goto yy590;
11091
12
    }
11092
51
yy956:
11093
51
    YYDEBUG(956, *YYCURSOR);
11094
51
    ++YYCURSOR;
11095
51
    YYFILL(1);
11096
51
    yych = *YYCURSOR;
11097
51
    if (yych <= '/') {
11098
27
      if (yych <= '\f') {
11099
12
        if (yych <= 0x00) goto yy875;
11100
12
        if (yych == '\n') goto yy961;
11101
6
        goto yy960;
11102
15
      } else {
11103
15
        if (yych <= '\r') goto yy961;
11104
15
        if (yych == '*') goto yy962;
11105
12
        goto yy960;
11106
15
      }
11107
27
    } else {
11108
24
      if (yych <= '^') {
11109
14
        if (yych <= '9') goto yy808;
11110
14
        if (yych <= '@') goto yy960;
11111
14
        if (yych <= 'Z') goto yy808;
11112
0
        goto yy960;
11113
14
      } else {
11114
10
        if (yych <= '`') {
11115
3
          if (yych <= '_') goto yy808;
11116
3
          goto yy960;
11117
7
        } else {
11118
7
          if (yych <= 'z') goto yy808;
11119
3
          if (yych <= 0x7F) goto yy960;
11120
3
          goto yy808;
11121
3
        }
11122
10
      }
11123
24
    }
11124
20
yy957:
11125
20
    YYDEBUG(957, *YYCURSOR);
11126
20
    ++YYCURSOR;
11127
20
    YYFILL(1);
11128
20
    yych = *YYCURSOR;
11129
20
    if (yych <= ')') {
11130
7
      if (yych <= '\n') {
11131
7
        if (yych <= 0x00) goto yy86;
11132
7
        if (yych <= '\t') goto yy738;
11133
0
        goto yy787;
11134
7
      } else {
11135
0
        if (yych == '\r') goto yy787;
11136
0
        goto yy738;
11137
0
      }
11138
13
    } else {
11139
13
      if (yych <= 'S') {
11140
4
        if (yych <= '*') goto yy789;
11141
4
        if (yych <= 'R') goto yy738;
11142
4
        goto yy963;
11143
9
      } else {
11144
9
        if (yych == 's') goto yy963;
11145
9
        goto yy738;
11146
9
      }
11147
13
    }
11148
28
yy958:
11149
28
    YYDEBUG(958, *YYCURSOR);
11150
28
    ++YYCURSOR;
11151
28
    YYFILL(1);
11152
28
    yych = *YYCURSOR;
11153
28
    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
27
    } else {
11163
27
      if (yych <= 'E') {
11164
5
        if (yych <= '*') goto yy789;
11165
5
        if (yych <= 'D') goto yy738;
11166
2
        goto yy964;
11167
22
      } else {
11168
22
        if (yych == 'e') goto yy964;
11169
0
        goto yy738;
11170
22
      }
11171
27
    }
11172
18
yy959:
11173
18
    YYDEBUG(959, *YYCURSOR);
11174
18
    ++YYCURSOR;
11175
18
    YYFILL(1);
11176
18
    yych = *YYCURSOR;
11177
18
    if (yych <= 'S') {
11178
3
      if (yych <= 0x00) goto yy86;
11179
0
      if (yych == '*') goto yy668;
11180
0
      goto yy590;
11181
15
    } else {
11182
15
      if (yych <= 'T') goto yy945;
11183
9
      if (yych == 't') goto yy945;
11184
3
      goto yy590;
11185
9
    }
11186
21
yy960:
11187
21
    YYDEBUG(960, *YYCURSOR);
11188
21
    yyaccept = 91;
11189
21
    YYMARKER = ++YYCURSOR;
11190
21
    YYFILL(1);
11191
21
    yych = *YYCURSOR;
11192
21
    if (yych <= '\f') {
11193
8
      if (yych <= 0x00) goto yy876;
11194
4
      if (yych == '\n') goto yy846;
11195
0
      goto yy808;
11196
13
    } else {
11197
13
      if (yych <= '\r') goto yy846;
11198
9
      if (yych == '*') goto yy848;
11199
3
      goto yy808;
11200
9
    }
11201
6
yy961:
11202
6
    YYDEBUG(961, *YYCURSOR);
11203
6
    yyaccept = 91;
11204
6
    YYMARKER = ++YYCURSOR;
11205
6
    YYFILL(1);
11206
6
    yych = *YYCURSOR;
11207
6
    if (yych <= '#') {
11208
2
      if (yych <= '\f') {
11209
2
        if (yych <= 0x00) goto yy876;
11210
2
        if (yych <= 0x08) goto yy696;
11211
0
        if (yych <= '\n') goto yy846;
11212
0
        goto yy696;
11213
0
      } else {
11214
0
        if (yych <= 0x1F) {
11215
0
          if (yych <= '\r') goto yy846;
11216
0
          goto yy696;
11217
0
        } else {
11218
0
          if (yych <= ' ') goto yy846;
11219
0
          if (yych <= '"') goto yy696;
11220
0
          goto yy877;
11221
0
        }
11222
0
      }
11223
4
    } else {
11224
4
      if (yych <= '/') {
11225
0
        if (yych == '*') goto yy760;
11226
0
        if (yych <= '.') goto yy696;
11227
0
        goto yy878;
11228
4
      } else {
11229
4
        if (yych <= 'F') {
11230
0
          if (yych <= 'E') goto yy696;
11231
0
          goto yy879;
11232
4
        } else {
11233
4
          if (yych == 'f') goto yy879;
11234
4
          goto yy696;
11235
4
        }
11236
4
      }
11237
4
    }
11238
3
yy962:
11239
3
    YYDEBUG(962, *YYCURSOR);
11240
3
    yyaccept = 91;
11241
3
    YYMARKER = ++YYCURSOR;
11242
3
    YYFILL(1);
11243
3
    yych = *YYCURSOR;
11244
3
    if (yych <= '\r') {
11245
2
      if (yych <= '\t') {
11246
2
        if (yych <= 0x00) goto yy876;
11247
0
        goto yy808;
11248
2
      } else {
11249
0
        if (yych <= '\n') goto yy846;
11250
0
        if (yych <= '\f') goto yy808;
11251
0
        goto yy846;
11252
0
      }
11253
2
    } else {
11254
1
      if (yych <= '*') {
11255
1
        if (yych <= ')') goto yy808;
11256
1
        goto yy848;
11257
1
      } else {
11258
0
        if (yych == '/') goto yy694;
11259
0
        goto yy808;
11260
0
      }
11261
1
    }
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
24
yy964:
11278
24
    YYDEBUG(964, *YYCURSOR);
11279
24
    ++YYCURSOR;
11280
24
    YYFILL(1);
11281
24
    yych = *YYCURSOR;
11282
24
    if (yych <= ')') {
11283
5
      if (yych <= '\n') {
11284
1
        if (yych <= 0x00) goto yy86;
11285
1
        if (yych <= '\t') goto yy738;
11286
1
        goto yy787;
11287
4
      } else {
11288
4
        if (yych == '\r') goto yy787;
11289
4
        goto yy738;
11290
4
      }
11291
19
    } else {
11292
19
      if (yych <= 'N') {
11293
18
        if (yych <= '*') goto yy789;
11294
18
        if (yych <= 'M') goto yy738;
11295
18
      } else {
11296
1
        if (yych != 'n') goto yy738;
11297
1
      }
11298
19
    }
11299
19
    YYDEBUG(965, *YYCURSOR);
11300
19
    ++YYCURSOR;
11301
19
    YYFILL(1);
11302
19
    yych = *YYCURSOR;
11303
19
    if (yych <= ')') {
11304
3
      if (yych <= '\n') {
11305
0
        if (yych <= 0x00) goto yy86;
11306
0
        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
16
    } else {
11313
16
      if (yych <= 'T') {
11314
16
        if (yych <= '*') goto yy789;
11315
16
        if (yych <= 'S') goto yy738;
11316
16
        goto yy957;
11317
16
      } else {
11318
0
        if (yych == 't') goto yy957;
11319
0
        goto yy738;
11320
0
      }
11321
16
    }
11322
19
  }
11323
/* *********************************** */
11324
1.85k
yyc_ST_LOOKING_FOR_PROPERTY:
11325
1.85k
  {
11326
1.85k
    static const unsigned char yybm[] = {
11327
1.85k
        0,   0,   0,   0,   0,   0,   0,   0, 
11328
1.85k
        0,  64,  64,   0,   0,  64,   0,   0, 
11329
1.85k
        0,   0,   0,   0,   0,   0,   0,   0, 
11330
1.85k
        0,   0,   0,   0,   0,   0,   0,   0, 
11331
1.85k
       64,   0,   0,   0,   0,   0,   0,   0, 
11332
1.85k
        0,   0,   0,   0,   0,   0,   0,   0, 
11333
1.85k
      128, 128, 128, 128, 128, 128, 128, 128, 
11334
1.85k
      128, 128,   0,   0,   0,   0,   0,   0, 
11335
1.85k
        0, 128, 128, 128, 128, 128, 128, 128, 
11336
1.85k
      128, 128, 128, 128, 128, 128, 128, 128, 
11337
1.85k
      128, 128, 128, 128, 128, 128, 128, 128, 
11338
1.85k
      128, 128, 128,   0,   0,   0,   0, 128, 
11339
1.85k
        0, 128, 128, 128, 128, 128, 128, 128, 
11340
1.85k
      128, 128, 128, 128, 128, 128, 128, 128, 
11341
1.85k
      128, 128, 128, 128, 128, 128, 128, 128, 
11342
1.85k
      128, 128, 128,   0,   0,   0,   0,   0, 
11343
1.85k
      128, 128, 128, 128, 128, 128, 128, 128, 
11344
1.85k
      128, 128, 128, 128, 128, 128, 128, 128, 
11345
1.85k
      128, 128, 128, 128, 128, 128, 128, 128, 
11346
1.85k
      128, 128, 128, 128, 128, 128, 128, 128, 
11347
1.85k
      128, 128, 128, 128, 128, 128, 128, 128, 
11348
1.85k
      128, 128, 128, 128, 128, 128, 128, 128, 
11349
1.85k
      128, 128, 128, 128, 128, 128, 128, 128, 
11350
1.85k
      128, 128, 128, 128, 128, 128, 128, 128, 
11351
1.85k
      128, 128, 128, 128, 128, 128, 128, 128, 
11352
1.85k
      128, 128, 128, 128, 128, 128, 128, 128, 
11353
1.85k
      128, 128, 128, 128, 128, 128, 128, 128, 
11354
1.85k
      128, 128, 128, 128, 128, 128, 128, 128, 
11355
1.85k
      128, 128, 128, 128, 128, 128, 128, 128, 
11356
1.85k
      128, 128, 128, 128, 128, 128, 128, 128, 
11357
1.85k
      128, 128, 128, 128, 128, 128, 128, 128, 
11358
1.85k
      128, 128, 128, 128, 128, 128, 128, 128, 
11359
1.85k
    };
11360
1.85k
    YYDEBUG(966, *YYCURSOR);
11361
1.85k
    YYFILL(4);
11362
1.85k
    yych = *YYCURSOR;
11363
1.85k
    if (yybm[0+yych] & 64) {
11364
75
      goto yy970;
11365
75
    }
11366
1.77k
    if (yych <= '?') {
11367
418
      if (yych <= '-') {
11368
215
        if (yych == '#') goto yy973;
11369
176
        if (yych >= '-') goto yy975;
11370
203
      } else {
11371
203
        if (yych == '/') goto yy976;
11372
94
        if (yych >= '?') goto yy977;
11373
94
      }
11374
1.36k
    } else {
11375
1.36k
      if (yych <= '_') {
11376
46
        if (yych <= '@') goto yy968;
11377
46
        if (yych <= 'Z') goto yy978;
11378
29
        if (yych >= '_') goto yy978;
11379
1.31k
      } else {
11380
1.31k
        if (yych <= '`') goto yy968;
11381
1.31k
        if (yych <= 'z') goto yy978;
11382
78
        if (yych >= 0x80) goto yy978;
11383
78
      }
11384
1.36k
    }
11385
194
yy968:
11386
194
    YYDEBUG(968, *YYCURSOR);
11387
194
    ++YYCURSOR;
11388
263
yy969:
11389
263
    YYDEBUG(969, *YYCURSOR);
11390
263
    yyleng = YYCURSOR - SCNG(yy_text);
11391
263
#line 2520 "Zend/zend_language_scanner.l"
11392
263
    {
11393
263
  yyless(0);
11394
263
  yy_pop_state();
11395
263
  goto restart;
11396
194
}
11397
0
#line 11398 "Zend/zend_language_scanner.c"
11398
128
yy970:
11399
128
    YYDEBUG(970, *YYCURSOR);
11400
128
    ++YYCURSOR;
11401
128
    YYFILL(1);
11402
128
    yych = *YYCURSOR;
11403
128
    YYDEBUG(971, *YYCURSOR);
11404
128
    if (yybm[0+yych] & 64) {
11405
53
      goto yy970;
11406
53
    }
11407
75
    YYDEBUG(972, *YYCURSOR);
11408
75
    yyleng = YYCURSOR - SCNG(yy_text);
11409
75
#line 1597 "Zend/zend_language_scanner.l"
11410
75
    {
11411
75
  goto return_whitespace;
11412
128
}
11413
0
#line 11414 "Zend/zend_language_scanner.c"
11414
60
yy973:
11415
60
    YYDEBUG(973, *YYCURSOR);
11416
60
    ++YYCURSOR;
11417
60
    YYDEBUG(974, *YYCURSOR);
11418
60
    yyleng = YYCURSOR - SCNG(yy_text);
11419
60
#line 2460 "Zend/zend_language_scanner.l"
11420
60
    {
11421
307
  while (YYCURSOR < YYLIMIT) {
11422
300
    switch (*YYCURSOR++) {
11423
37
      case '\r':
11424
53
      case '\n':
11425
53
        YYCURSOR--;
11426
53
        break;
11427
3
      case '?':
11428
3
        if (*YYCURSOR == '>') {
11429
0
          YYCURSOR--;
11430
0
          break;
11431
0
        }
11432
3
        ZEND_FALLTHROUGH;
11433
247
      default:
11434
247
        continue;
11435
300
    }
11436
11437
53
    break;
11438
300
  }
11439
11440
60
  yyleng = YYCURSOR - SCNG(yy_text);
11441
60
  RETURN_OR_SKIP_TOKEN(T_COMMENT);
11442
60
}
11443
0
#line 11444 "Zend/zend_language_scanner.c"
11444
108
yy975:
11445
108
    YYDEBUG(975, *YYCURSOR);
11446
108
    yych = *++YYCURSOR;
11447
108
    if (yych == '>') goto yy981;
11448
2
    goto yy969;
11449
109
yy976:
11450
109
    YYDEBUG(976, *YYCURSOR);
11451
109
    yych = *++YYCURSOR;
11452
109
    if (yych == '*') goto yy983;
11453
85
    if (yych == '/') goto yy973;
11454
64
    goto yy969;
11455
64
yy977:
11456
14
    YYDEBUG(977, *YYCURSOR);
11457
14
    yyaccept = 0;
11458
14
    yych = *(YYMARKER = ++YYCURSOR);
11459
14
    if (yych == '-') goto yy985;
11460
3
    goto yy969;
11461
7.00k
yy978:
11462
7.00k
    YYDEBUG(978, *YYCURSOR);
11463
7.00k
    ++YYCURSOR;
11464
7.00k
    YYFILL(1);
11465
7.00k
    yych = *YYCURSOR;
11466
7.00k
    YYDEBUG(979, *YYCURSOR);
11467
7.00k
    if (yybm[0+yych] & 128) {
11468
5.69k
      goto yy978;
11469
5.69k
    }
11470
1.31k
    YYDEBUG(980, *YYCURSOR);
11471
1.31k
    yyleng = YYCURSOR - SCNG(yy_text);
11472
1.31k
#line 1609 "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
106
yy981:
11479
106
    YYDEBUG(981, *YYCURSOR);
11480
106
    ++YYCURSOR;
11481
106
    YYDEBUG(982, *YYCURSOR);
11482
106
    yyleng = YYCURSOR - SCNG(yy_text);
11483
106
#line 1601 "Zend/zend_language_scanner.l"
11484
106
    {
11485
106
  RETURN_TOKEN(T_OBJECT_OPERATOR);
11486
106
}
11487
0
#line 11488 "Zend/zend_language_scanner.c"
11488
24
yy983:
11489
24
    YYDEBUG(983, *YYCURSOR);
11490
24
    yyaccept = 1;
11491
24
    yych = *(YYMARKER = ++YYCURSOR);
11492
24
    if (yych == '*') goto yy987;
11493
24
yy984:
11494
24
    YYDEBUG(984, *YYCURSOR);
11495
24
    yyleng = YYCURSOR - SCNG(yy_text);
11496
24
#line 2484 "Zend/zend_language_scanner.l"
11497
24
    {
11498
24
  int doc_com;
11499
11500
24
  if (yyleng > 2) {
11501
4
    doc_com = 1;
11502
4
    RESET_DOC_COMMENT();
11503
20
  } else {
11504
20
    doc_com = 0;
11505
20
  }
11506
11507
497
  while (YYCURSOR < YYLIMIT) {
11508
474
    if (*YYCURSOR++ == '*' && *YYCURSOR == '/') {
11509
1
      break;
11510
1
    }
11511
474
  }
11512
11513
24
  if (YYCURSOR < YYLIMIT) {
11514
1
    YYCURSOR++;
11515
23
  } else {
11516
23
    zend_throw_exception_ex(zend_ce_parse_error, 0, "Unterminated comment starting line %" PRIu32, CG(zend_lineno));
11517
23
    if (PARSER_MODE()) {
11518
8
      RETURN_TOKEN(T_ERROR);
11519
8
    }
11520
23
  }
11521
11522
16
  yyleng = YYCURSOR - SCNG(yy_text);
11523
16
  HANDLE_NEWLINES(yytext, yyleng);
11524
11525
16
  if (doc_com) {
11526
1
    CG(doc_comment) = zend_string_init(yytext, yyleng, 0);
11527
1
    RETURN_OR_SKIP_TOKEN(T_DOC_COMMENT);
11528
1
  }
11529
11530
15
  RETURN_OR_SKIP_TOKEN(T_COMMENT);
11531
15
}
11532
0
#line 11533 "Zend/zend_language_scanner.c"
11533
11
yy985:
11534
11
    YYDEBUG(985, *YYCURSOR);
11535
11
    yych = *++YYCURSOR;
11536
11
    if (yych == '>') goto yy988;
11537
1
yy986:
11538
1
    YYDEBUG(986, *YYCURSOR);
11539
1
    YYCURSOR = YYMARKER;
11540
1
    if (yyaccept == 0) {
11541
0
      goto yy969;
11542
1
    } else {
11543
1
      goto yy984;
11544
1
    }
11545
5
yy987:
11546
5
    YYDEBUG(987, *YYCURSOR);
11547
5
    yych = *++YYCURSOR;
11548
5
    if (yych <= '\f') {
11549
0
      if (yych <= 0x08) goto yy986;
11550
0
      if (yych <= '\n') goto yy990;
11551
0
      goto yy986;
11552
5
    } else {
11553
5
      if (yych <= '\r') goto yy990;
11554
1
      if (yych == ' ') goto yy990;
11555
1
      goto yy986;
11556
1
    }
11557
11
yy988:
11558
11
    YYDEBUG(988, *YYCURSOR);
11559
11
    ++YYCURSOR;
11560
11
    YYDEBUG(989, *YYCURSOR);
11561
11
    yyleng = YYCURSOR - SCNG(yy_text);
11562
11
#line 1605 "Zend/zend_language_scanner.l"
11563
11
    {
11564
11
  RETURN_TOKEN(T_NULLSAFE_OBJECT_OPERATOR);
11565
11
}
11566
0
#line 11567 "Zend/zend_language_scanner.c"
11567
5
yy990:
11568
5
    YYDEBUG(990, *YYCURSOR);
11569
5
    ++YYCURSOR;
11570
5
    YYFILL(1);
11571
5
    yych = *YYCURSOR;
11572
5
    YYDEBUG(991, *YYCURSOR);
11573
5
    if (yych <= '\f') {
11574
1
      if (yych <= 0x08) goto yy984;
11575
1
      if (yych <= '\n') goto yy990;
11576
1
      goto yy984;
11577
4
    } else {
11578
4
      if (yych <= '\r') goto yy990;
11579
3
      if (yych == ' ') goto yy990;
11580
3
      goto yy984;
11581
3
    }
11582
5
  }
11583
/* *********************************** */
11584
3.91k
yyc_ST_BACKQUOTE:
11585
3.91k
  {
11586
3.91k
    static const unsigned char yybm[] = {
11587
3.91k
        0,   0,   0,   0,   0,   0,   0,   0, 
11588
3.91k
        0,   0,   0,   0,   0,   0,   0,   0, 
11589
3.91k
        0,   0,   0,   0,   0,   0,   0,   0, 
11590
3.91k
        0,   0,   0,   0,   0,   0,   0,   0, 
11591
3.91k
        0,   0,   0,   0,   0,   0,   0,   0, 
11592
3.91k
        0,   0,   0,   0,   0,   0,   0,   0, 
11593
3.91k
      128, 128, 128, 128, 128, 128, 128, 128, 
11594
3.91k
      128, 128,   0,   0,   0,   0,   0,   0, 
11595
3.91k
        0, 128, 128, 128, 128, 128, 128, 128, 
11596
3.91k
      128, 128, 128, 128, 128, 128, 128, 128, 
11597
3.91k
      128, 128, 128, 128, 128, 128, 128, 128, 
11598
3.91k
      128, 128, 128,   0,   0,   0,   0, 128, 
11599
3.91k
        0, 128, 128, 128, 128, 128, 128, 128, 
11600
3.91k
      128, 128, 128, 128, 128, 128, 128, 128, 
11601
3.91k
      128, 128, 128, 128, 128, 128, 128, 128, 
11602
3.91k
      128, 128, 128,   0,   0,   0,   0,   0, 
11603
3.91k
      128, 128, 128, 128, 128, 128, 128, 128, 
11604
3.91k
      128, 128, 128, 128, 128, 128, 128, 128, 
11605
3.91k
      128, 128, 128, 128, 128, 128, 128, 128, 
11606
3.91k
      128, 128, 128, 128, 128, 128, 128, 128, 
11607
3.91k
      128, 128, 128, 128, 128, 128, 128, 128, 
11608
3.91k
      128, 128, 128, 128, 128, 128, 128, 128, 
11609
3.91k
      128, 128, 128, 128, 128, 128, 128, 128, 
11610
3.91k
      128, 128, 128, 128, 128, 128, 128, 128, 
11611
3.91k
      128, 128, 128, 128, 128, 128, 128, 128, 
11612
3.91k
      128, 128, 128, 128, 128, 128, 128, 128, 
11613
3.91k
      128, 128, 128, 128, 128, 128, 128, 128, 
11614
3.91k
      128, 128, 128, 128, 128, 128, 128, 128, 
11615
3.91k
      128, 128, 128, 128, 128, 128, 128, 128, 
11616
3.91k
      128, 128, 128, 128, 128, 128, 128, 128, 
11617
3.91k
      128, 128, 128, 128, 128, 128, 128, 128, 
11618
3.91k
      128, 128, 128, 128, 128, 128, 128, 128, 
11619
3.91k
    };
11620
3.91k
    YYDEBUG(992, *YYCURSOR);
11621
3.91k
    YYFILL(2);
11622
3.91k
    yych = *YYCURSOR;
11623
3.91k
    if (yych <= '_') {
11624
2.45k
      if (yych == '$') goto yy996;
11625
2.45k
    } else {
11626
1.46k
      if (yych <= '`') goto yy997;
11627
272
      if (yych == '{') goto yy999;
11628
272
    }
11629
2.34k
    YYDEBUG(994, *YYCURSOR);
11630
2.34k
    ++YYCURSOR;
11631
2.42k
yy995:
11632
2.42k
    YYDEBUG(995, *YYCURSOR);
11633
2.42k
    yyleng = YYCURSOR - SCNG(yy_text);
11634
2.42k
#line 2918 "Zend/zend_language_scanner.l"
11635
2.42k
    {
11636
2.42k
  if (YYCURSOR > YYLIMIT) {
11637
488
    RETURN_END_TOKEN;
11638
488
  }
11639
1.93k
  if (yytext[0] == '\\' && YYCURSOR < YYLIMIT) {
11640
37
    YYCURSOR++;
11641
37
  }
11642
11643
84.2k
  while (YYCURSOR < YYLIMIT) {
11644
83.8k
    switch (*YYCURSOR++) {
11645
1.17k
      case '`':
11646
1.17k
        break;
11647
382
      case '$':
11648
382
        if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
11649
279
          break;
11650
279
        }
11651
103
        continue;
11652
103
      case '{':
11653
44
        if (*YYCURSOR == '$') {
11654
5
          break;
11655
5
        }
11656
39
        continue;
11657
83
      case '\\':
11658
83
        if (YYCURSOR < YYLIMIT) {
11659
79
          YYCURSOR++;
11660
79
        }
11661
83
        ZEND_FALLTHROUGH;
11662
82.1k
      default:
11663
82.1k
        continue;
11664
83.8k
    }
11665
11666
1.46k
    YYCURSOR--;
11667
1.46k
    break;
11668
83.8k
  }
11669
11670
1.93k
  yyleng = YYCURSOR - SCNG(yy_text);
11671
11672
1.93k
  if (EXPECTED(zend_scan_escape_string(zendlval, yytext, yyleng, '`') == SUCCESS)
11673
1.93k
   || !PARSER_MODE()) {
11674
1.93k
    RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
11675
1.93k
  } else {
11676
0
    RETURN_TOKEN(T_ERROR);
11677
0
  }
11678
1.93k
}
11679
0
#line 11680 "Zend/zend_language_scanner.c"
11680
366
yy996:
11681
366
    YYDEBUG(996, *YYCURSOR);
11682
366
    yych = *++YYCURSOR;
11683
366
    if (yych <= '_') {
11684
63
      if (yych <= '@') goto yy995;
11685
31
      if (yych <= 'Z') goto yy1000;
11686
17
      if (yych <= '^') goto yy995;
11687
1
      goto yy1000;
11688
303
    } else {
11689
303
      if (yych <= 'z') {
11690
123
        if (yych <= '`') goto yy995;
11691
109
        goto yy1000;
11692
180
      } else {
11693
180
        if (yych <= '{') goto yy1003;
11694
50
        if (yych <= 0x7F) goto yy995;
11695
45
        goto yy1000;
11696
50
      }
11697
303
    }
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
18
yy999:
11710
18
    YYDEBUG(999, *YYCURSOR);
11711
18
    yych = *++YYCURSOR;
11712
18
    if (yych == '$') goto yy1005;
11713
13
    goto yy995;
11714
540
yy1000:
11715
540
    YYDEBUG(1000, *YYCURSOR);
11716
540
    YYMARKER = ++YYCURSOR;
11717
540
    YYFILL(4);
11718
540
    yych = *YYCURSOR;
11719
540
    YYDEBUG(1001, *YYCURSOR);
11720
540
    if (yybm[0+yych] & 128) {
11721
371
      goto yy1000;
11722
371
    }
11723
169
    if (yych <= '>') {
11724
121
      if (yych == '-') goto yy1007;
11725
121
    } else {
11726
48
      if (yych <= '?') goto yy1009;
11727
29
      if (yych <= '@') goto yy1002;
11728
25
      if (yych <= '[') goto yy1010;
11729
25
    }
11730
153
yy1002:
11731
153
    YYDEBUG(1002, *YYCURSOR);
11732
153
    yyleng = YYCURSOR - SCNG(yy_text);
11733
153
#line 2417 "Zend/zend_language_scanner.l"
11734
153
    {
11735
153
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
11736
153
}
11737
0
#line 11738 "Zend/zend_language_scanner.c"
11738
130
yy1003:
11739
130
    YYDEBUG(1003, *YYCURSOR);
11740
130
    ++YYCURSOR;
11741
130
    YYDEBUG(1004, *YYCURSOR);
11742
130
    yyleng = YYCURSOR - SCNG(yy_text);
11743
130
#line 1981 "Zend/zend_language_scanner.l"
11744
130
    {
11745
130
  yy_push_state(ST_LOOKING_FOR_VARNAME);
11746
130
  enter_nesting('{');
11747
130
  RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES);
11748
130
}
11749
0
#line 11750 "Zend/zend_language_scanner.c"
11750
5
yy1005:
11751
5
    YYDEBUG(1005, *YYCURSOR);
11752
5
    ++YYCURSOR;
11753
5
    YYDEBUG(1006, *YYCURSOR);
11754
5
    yyleng = YYCURSOR - SCNG(yy_text);
11755
5
#line 2845 "Zend/zend_language_scanner.l"
11756
5
    {
11757
5
  yy_push_state(ST_IN_SCRIPTING);
11758
5
  yyless(1);
11759
5
  enter_nesting('{');
11760
5
  RETURN_TOKEN(T_CURLY_OPEN);
11761
5
}
11762
0
#line 11763 "Zend/zend_language_scanner.c"
11763
36
yy1007:
11764
36
    YYDEBUG(1007, *YYCURSOR);
11765
36
    yych = *++YYCURSOR;
11766
36
    if (yych == '>') goto yy1012;
11767
42
yy1008:
11768
42
    YYDEBUG(1008, *YYCURSOR);
11769
42
    YYCURSOR = YYMARKER;
11770
42
    goto yy1002;
11771
19
yy1009:
11772
19
    YYDEBUG(1009, *YYCURSOR);
11773
19
    yych = *++YYCURSOR;
11774
19
    if (yych == '-') goto yy1013;
11775
3
    goto yy1008;
11776
3
yy1010:
11777
3
    YYDEBUG(1010, *YYCURSOR);
11778
3
    ++YYCURSOR;
11779
3
    YYDEBUG(1011, *YYCURSOR);
11780
3
    yyleng = YYCURSOR - SCNG(yy_text);
11781
3
#line 2411 "Zend/zend_language_scanner.l"
11782
3
    {
11783
3
  yyless(yyleng - 1);
11784
3
  yy_push_state(ST_VAR_OFFSET);
11785
3
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
11786
3
}
11787
0
#line 11788 "Zend/zend_language_scanner.c"
11788
25
yy1012:
11789
25
    YYDEBUG(1012, *YYCURSOR);
11790
25
    yych = *++YYCURSOR;
11791
25
    if (yych <= '_') {
11792
17
      if (yych <= '@') goto yy1008;
11793
16
      if (yych <= 'Z') goto yy1014;
11794
12
      if (yych <= '^') goto yy1008;
11795
2
      goto yy1014;
11796
12
    } else {
11797
8
      if (yych <= '`') goto yy1008;
11798
7
      if (yych <= 'z') goto yy1014;
11799
5
      if (yych <= 0x7F) goto yy1008;
11800
5
      goto yy1014;
11801
5
    }
11802
16
yy1013:
11803
16
    YYDEBUG(1013, *YYCURSOR);
11804
16
    yych = *++YYCURSOR;
11805
16
    if (yych == '>') goto yy1016;
11806
0
    goto yy1008;
11807
13
yy1014:
11808
13
    YYDEBUG(1014, *YYCURSOR);
11809
13
    ++YYCURSOR;
11810
13
    YYDEBUG(1015, *YYCURSOR);
11811
13
    yyleng = YYCURSOR - SCNG(yy_text);
11812
13
#line 2397 "Zend/zend_language_scanner.l"
11813
13
    {
11814
13
  yyless(yyleng - 3);
11815
13
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
11816
13
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
11817
13
}
11818
0
#line 11819 "Zend/zend_language_scanner.c"
11819
16
yy1016:
11820
16
    YYDEBUG(1016, *YYCURSOR);
11821
16
    yych = *++YYCURSOR;
11822
16
    if (yych <= '_') {
11823
11
      if (yych <= '@') goto yy1008;
11824
9
      if (yych <= 'Z') goto yy1017;
11825
9
      if (yych <= '^') goto yy1008;
11826
9
    } else {
11827
5
      if (yych <= '`') goto yy1008;
11828
3
      if (yych <= 'z') goto yy1017;
11829
3
      if (yych <= 0x7F) goto yy1008;
11830
3
    }
11831
0
yy1017:
11832
0
    YYDEBUG(1017, *YYCURSOR);
11833
0
    ++YYCURSOR;
11834
0
    YYDEBUG(1018, *YYCURSOR);
11835
0
    yyleng = YYCURSOR - SCNG(yy_text);
11836
0
#line 2403 "Zend/zend_language_scanner.l"
11837
0
    {
11838
0
  yyless(yyleng - 4);
11839
0
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
11840
0
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
11841
0
}
11842
0
#line 11843 "Zend/zend_language_scanner.c"
11843
0
  }
11844
/* *********************************** */
11845
4.90k
yyc_ST_DOUBLE_QUOTES:
11846
4.90k
  {
11847
4.90k
    static const unsigned char yybm[] = {
11848
4.90k
        0,   0,   0,   0,   0,   0,   0,   0, 
11849
4.90k
        0,   0,   0,   0,   0,   0,   0,   0, 
11850
4.90k
        0,   0,   0,   0,   0,   0,   0,   0, 
11851
4.90k
        0,   0,   0,   0,   0,   0,   0,   0, 
11852
4.90k
        0,   0,   0,   0,   0,   0,   0,   0, 
11853
4.90k
        0,   0,   0,   0,   0,   0,   0,   0, 
11854
4.90k
      128, 128, 128, 128, 128, 128, 128, 128, 
11855
4.90k
      128, 128,   0,   0,   0,   0,   0,   0, 
11856
4.90k
        0, 128, 128, 128, 128, 128, 128, 128, 
11857
4.90k
      128, 128, 128, 128, 128, 128, 128, 128, 
11858
4.90k
      128, 128, 128, 128, 128, 128, 128, 128, 
11859
4.90k
      128, 128, 128,   0,   0,   0,   0, 128, 
11860
4.90k
        0, 128, 128, 128, 128, 128, 128, 128, 
11861
4.90k
      128, 128, 128, 128, 128, 128, 128, 128, 
11862
4.90k
      128, 128, 128, 128, 128, 128, 128, 128, 
11863
4.90k
      128, 128, 128,   0,   0,   0,   0,   0, 
11864
4.90k
      128, 128, 128, 128, 128, 128, 128, 128, 
11865
4.90k
      128, 128, 128, 128, 128, 128, 128, 128, 
11866
4.90k
      128, 128, 128, 128, 128, 128, 128, 128, 
11867
4.90k
      128, 128, 128, 128, 128, 128, 128, 128, 
11868
4.90k
      128, 128, 128, 128, 128, 128, 128, 128, 
11869
4.90k
      128, 128, 128, 128, 128, 128, 128, 128, 
11870
4.90k
      128, 128, 128, 128, 128, 128, 128, 128, 
11871
4.90k
      128, 128, 128, 128, 128, 128, 128, 128, 
11872
4.90k
      128, 128, 128, 128, 128, 128, 128, 128, 
11873
4.90k
      128, 128, 128, 128, 128, 128, 128, 128, 
11874
4.90k
      128, 128, 128, 128, 128, 128, 128, 128, 
11875
4.90k
      128, 128, 128, 128, 128, 128, 128, 128, 
11876
4.90k
      128, 128, 128, 128, 128, 128, 128, 128, 
11877
4.90k
      128, 128, 128, 128, 128, 128, 128, 128, 
11878
4.90k
      128, 128, 128, 128, 128, 128, 128, 128, 
11879
4.90k
      128, 128, 128, 128, 128, 128, 128, 128, 
11880
4.90k
    };
11881
4.90k
    YYDEBUG(1019, *YYCURSOR);
11882
4.90k
    YYFILL(2);
11883
4.90k
    yych = *YYCURSOR;
11884
4.90k
    if (yych <= '#') {
11885
2.12k
      if (yych == '"') goto yy1023;
11886
2.77k
    } else {
11887
2.77k
      if (yych <= '$') goto yy1025;
11888
1.51k
      if (yych == '{') goto yy1026;
11889
1.51k
    }
11890
3.22k
    YYDEBUG(1021, *YYCURSOR);
11891
3.22k
    ++YYCURSOR;
11892
3.30k
yy1022:
11893
3.30k
    YYDEBUG(1022, *YYCURSOR);
11894
3.30k
    yyleng = YYCURSOR - SCNG(yy_text);
11895
3.30k
#line 2864 "Zend/zend_language_scanner.l"
11896
3.30k
    {
11897
3.30k
  if (GET_DOUBLE_QUOTES_SCANNED_LENGTH()) {
11898
1.53k
    YYCURSOR += GET_DOUBLE_QUOTES_SCANNED_LENGTH() - 1;
11899
1.53k
    SET_DOUBLE_QUOTES_SCANNED_LENGTH(0);
11900
11901
1.53k
    goto double_quotes_scan_done;
11902
1.53k
  }
11903
11904
1.77k
  if (YYCURSOR > YYLIMIT) {
11905
984
    RETURN_END_TOKEN;
11906
984
  }
11907
793
  if (yytext[0] == '\\' && YYCURSOR < YYLIMIT) {
11908
100
    YYCURSOR++;
11909
100
  }
11910
11911
9.57k
  while (YYCURSOR < YYLIMIT) {
11912
9.46k
    switch (*YYCURSOR++) {
11913
338
      case '"':
11914
338
        break;
11915
482
      case '$':
11916
482
        if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
11917
338
          break;
11918
338
        }
11919
144
        continue;
11920
144
      case '{':
11921
69
        if (*YYCURSOR == '$') {
11922
2
          break;
11923
2
        }
11924
67
        continue;
11925
188
      case '\\':
11926
188
        if (YYCURSOR < YYLIMIT) {
11927
188
          YYCURSOR++;
11928
188
        }
11929
188
        ZEND_FALLTHROUGH;
11930
8.57k
      default:
11931
8.57k
        continue;
11932
9.46k
    }
11933
11934
678
    YYCURSOR--;
11935
678
    break;
11936
9.46k
  }
11937
11938
2.32k
double_quotes_scan_done:
11939
2.32k
  yyleng = YYCURSOR - SCNG(yy_text);
11940
11941
2.32k
  if (EXPECTED(zend_scan_escape_string(zendlval, yytext, yyleng, '"') == SUCCESS)
11942
2.32k
   || !PARSER_MODE()) {
11943
2.32k
    RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
11944
2.32k
  } else {
11945
0
    RETURN_TOKEN(T_ERROR);
11946
0
  }
11947
2.32k
}
11948
0
#line 11949 "Zend/zend_language_scanner.c"
11949
375
yy1023:
11950
375
    YYDEBUG(1023, *YYCURSOR);
11951
375
    ++YYCURSOR;
11952
375
    YYDEBUG(1024, *YYCURSOR);
11953
375
    yyleng = YYCURSOR - SCNG(yy_text);
11954
375
#line 2853 "Zend/zend_language_scanner.l"
11955
375
    {
11956
375
  BEGIN(ST_IN_SCRIPTING);
11957
375
  RETURN_TOKEN('"');
11958
375
}
11959
0
#line 11960 "Zend/zend_language_scanner.c"
11960
1.26k
yy1025:
11961
1.26k
    YYDEBUG(1025, *YYCURSOR);
11962
1.26k
    yych = *++YYCURSOR;
11963
1.26k
    if (yych <= '_') {
11964
190
      if (yych <= '@') goto yy1022;
11965
163
      if (yych <= 'Z') goto yy1027;
11966
28
      if (yych <= '^') goto yy1022;
11967
20
      goto yy1027;
11968
1.07k
    } else {
11969
1.07k
      if (yych <= 'z') {
11970
486
        if (yych <= '`') goto yy1022;
11971
483
        goto yy1027;
11972
586
      } else {
11973
586
        if (yych <= '{') goto yy1030;
11974
254
        if (yych <= 0x7F) goto yy1022;
11975
228
        goto yy1027;
11976
254
      }
11977
1.07k
    }
11978
41
yy1026:
11979
41
    YYDEBUG(1026, *YYCURSOR);
11980
41
    yych = *++YYCURSOR;
11981
41
    if (yych == '$') goto yy1032;
11982
19
    goto yy1022;
11983
2.66k
yy1027:
11984
2.66k
    YYDEBUG(1027, *YYCURSOR);
11985
2.66k
    YYMARKER = ++YYCURSOR;
11986
2.66k
    YYFILL(4);
11987
2.66k
    yych = *YYCURSOR;
11988
2.66k
    YYDEBUG(1028, *YYCURSOR);
11989
2.66k
    if (yybm[0+yych] & 128) {
11990
1.80k
      goto yy1027;
11991
1.80k
    }
11992
866
    if (yych <= '>') {
11993
580
      if (yych == '-') goto yy1034;
11994
580
    } else {
11995
286
      if (yych <= '?') goto yy1036;
11996
251
      if (yych <= '@') goto yy1029;
11997
210
      if (yych <= '[') goto yy1037;
11998
210
    }
11999
791
yy1029:
12000
791
    YYDEBUG(1029, *YYCURSOR);
12001
791
    yyleng = YYCURSOR - SCNG(yy_text);
12002
791
#line 2417 "Zend/zend_language_scanner.l"
12003
791
    {
12004
791
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12005
791
}
12006
0
#line 12007 "Zend/zend_language_scanner.c"
12007
332
yy1030:
12008
332
    YYDEBUG(1030, *YYCURSOR);
12009
332
    ++YYCURSOR;
12010
332
    YYDEBUG(1031, *YYCURSOR);
12011
332
    yyleng = YYCURSOR - SCNG(yy_text);
12012
332
#line 1981 "Zend/zend_language_scanner.l"
12013
332
    {
12014
332
  yy_push_state(ST_LOOKING_FOR_VARNAME);
12015
332
  enter_nesting('{');
12016
332
  RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES);
12017
332
}
12018
0
#line 12019 "Zend/zend_language_scanner.c"
12019
22
yy1032:
12020
22
    YYDEBUG(1032, *YYCURSOR);
12021
22
    ++YYCURSOR;
12022
22
    YYDEBUG(1033, *YYCURSOR);
12023
22
    yyleng = YYCURSOR - SCNG(yy_text);
12024
22
#line 2845 "Zend/zend_language_scanner.l"
12025
22
    {
12026
22
  yy_push_state(ST_IN_SCRIPTING);
12027
22
  yyless(1);
12028
22
  enter_nesting('{');
12029
22
  RETURN_TOKEN(T_CURLY_OPEN);
12030
22
}
12031
0
#line 12032 "Zend/zend_language_scanner.c"
12032
17
yy1034:
12033
17
    YYDEBUG(1034, *YYCURSOR);
12034
17
    yych = *++YYCURSOR;
12035
17
    if (yych == '>') goto yy1039;
12036
42
yy1035:
12037
42
    YYDEBUG(1035, *YYCURSOR);
12038
42
    YYCURSOR = YYMARKER;
12039
42
    goto yy1029;
12040
35
yy1036:
12041
35
    YYDEBUG(1036, *YYCURSOR);
12042
35
    yych = *++YYCURSOR;
12043
35
    if (yych == '-') goto yy1040;
12044
15
    goto yy1035;
12045
65
yy1037:
12046
65
    YYDEBUG(1037, *YYCURSOR);
12047
65
    ++YYCURSOR;
12048
65
    YYDEBUG(1038, *YYCURSOR);
12049
65
    yyleng = YYCURSOR - SCNG(yy_text);
12050
65
#line 2411 "Zend/zend_language_scanner.l"
12051
65
    {
12052
65
  yyless(yyleng - 1);
12053
65
  yy_push_state(ST_VAR_OFFSET);
12054
65
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12055
65
}
12056
0
#line 12057 "Zend/zend_language_scanner.c"
12057
10
yy1039:
12058
10
    YYDEBUG(1039, *YYCURSOR);
12059
10
    yych = *++YYCURSOR;
12060
10
    if (yych <= '_') {
12061
0
      if (yych <= '@') goto yy1035;
12062
0
      if (yych <= 'Z') goto yy1041;
12063
0
      if (yych <= '^') goto yy1035;
12064
0
      goto yy1041;
12065
10
    } else {
12066
10
      if (yych <= '`') goto yy1035;
12067
10
      if (yych <= 'z') goto yy1041;
12068
4
      if (yych <= 0x7F) goto yy1035;
12069
0
      goto yy1041;
12070
4
    }
12071
20
yy1040:
12072
20
    YYDEBUG(1040, *YYCURSOR);
12073
20
    yych = *++YYCURSOR;
12074
20
    if (yych == '>') goto yy1043;
12075
15
    goto yy1035;
12076
15
yy1041:
12077
6
    YYDEBUG(1041, *YYCURSOR);
12078
6
    ++YYCURSOR;
12079
6
    YYDEBUG(1042, *YYCURSOR);
12080
6
    yyleng = YYCURSOR - SCNG(yy_text);
12081
6
#line 2397 "Zend/zend_language_scanner.l"
12082
6
    {
12083
6
  yyless(yyleng - 3);
12084
6
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
12085
6
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12086
6
}
12087
0
#line 12088 "Zend/zend_language_scanner.c"
12088
5
yy1043:
12089
5
    YYDEBUG(1043, *YYCURSOR);
12090
5
    yych = *++YYCURSOR;
12091
5
    if (yych <= '_') {
12092
1
      if (yych <= '@') goto yy1035;
12093
1
      if (yych <= 'Z') goto yy1044;
12094
1
      if (yych <= '^') goto yy1035;
12095
4
    } else {
12096
4
      if (yych <= '`') goto yy1035;
12097
4
      if (yych <= 'z') goto yy1044;
12098
2
      if (yych <= 0x7F) goto yy1035;
12099
2
    }
12100
4
yy1044:
12101
4
    YYDEBUG(1044, *YYCURSOR);
12102
4
    ++YYCURSOR;
12103
4
    YYDEBUG(1045, *YYCURSOR);
12104
4
    yyleng = YYCURSOR - SCNG(yy_text);
12105
4
#line 2403 "Zend/zend_language_scanner.l"
12106
4
    {
12107
4
  yyless(yyleng - 4);
12108
4
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
12109
4
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12110
4
}
12111
4
#line 12112 "Zend/zend_language_scanner.c"
12112
4
  }
12113
/* *********************************** */
12114
31.1k
yyc_ST_HEREDOC:
12115
31.1k
  {
12116
31.1k
    static const unsigned char yybm[] = {
12117
31.1k
        0,   0,   0,   0,   0,   0,   0,   0, 
12118
31.1k
        0,   0,   0,   0,   0,   0,   0,   0, 
12119
31.1k
        0,   0,   0,   0,   0,   0,   0,   0, 
12120
31.1k
        0,   0,   0,   0,   0,   0,   0,   0, 
12121
31.1k
        0,   0,   0,   0,   0,   0,   0,   0, 
12122
31.1k
        0,   0,   0,   0,   0,   0,   0,   0, 
12123
31.1k
      128, 128, 128, 128, 128, 128, 128, 128, 
12124
31.1k
      128, 128,   0,   0,   0,   0,   0,   0, 
12125
31.1k
        0, 128, 128, 128, 128, 128, 128, 128, 
12126
31.1k
      128, 128, 128, 128, 128, 128, 128, 128, 
12127
31.1k
      128, 128, 128, 128, 128, 128, 128, 128, 
12128
31.1k
      128, 128, 128,   0,   0,   0,   0, 128, 
12129
31.1k
        0, 128, 128, 128, 128, 128, 128, 128, 
12130
31.1k
      128, 128, 128, 128, 128, 128, 128, 128, 
12131
31.1k
      128, 128, 128, 128, 128, 128, 128, 128, 
12132
31.1k
      128, 128, 128,   0,   0,   0,   0,   0, 
12133
31.1k
      128, 128, 128, 128, 128, 128, 128, 128, 
12134
31.1k
      128, 128, 128, 128, 128, 128, 128, 128, 
12135
31.1k
      128, 128, 128, 128, 128, 128, 128, 128, 
12136
31.1k
      128, 128, 128, 128, 128, 128, 128, 128, 
12137
31.1k
      128, 128, 128, 128, 128, 128, 128, 128, 
12138
31.1k
      128, 128, 128, 128, 128, 128, 128, 128, 
12139
31.1k
      128, 128, 128, 128, 128, 128, 128, 128, 
12140
31.1k
      128, 128, 128, 128, 128, 128, 128, 128, 
12141
31.1k
      128, 128, 128, 128, 128, 128, 128, 128, 
12142
31.1k
      128, 128, 128, 128, 128, 128, 128, 128, 
12143
31.1k
      128, 128, 128, 128, 128, 128, 128, 128, 
12144
31.1k
      128, 128, 128, 128, 128, 128, 128, 128, 
12145
31.1k
      128, 128, 128, 128, 128, 128, 128, 128, 
12146
31.1k
      128, 128, 128, 128, 128, 128, 128, 128, 
12147
31.1k
      128, 128, 128, 128, 128, 128, 128, 128, 
12148
31.1k
      128, 128, 128, 128, 128, 128, 128, 128, 
12149
31.1k
    };
12150
31.1k
    YYDEBUG(1046, *YYCURSOR);
12151
31.1k
    YYFILL(2);
12152
31.1k
    yych = *YYCURSOR;
12153
31.1k
    if (yych == '$') goto yy1050;
12154
7.59k
    if (yych == '{') goto yy1051;
12155
6.88k
    YYDEBUG(1048, *YYCURSOR);
12156
6.88k
    ++YYCURSOR;
12157
9.00k
yy1049:
12158
9.00k
    YYDEBUG(1049, *YYCURSOR);
12159
9.00k
    yyleng = YYCURSOR - SCNG(yy_text);
12160
9.00k
#line 2964 "Zend/zend_language_scanner.l"
12161
9.00k
    {
12162
9.00k
  zend_heredoc_label *heredoc_label = zend_ptr_stack_top(&SCNG(heredoc_label_stack));
12163
9.00k
  int newline = 0, indentation = 0, spacing = 0;
12164
12165
9.00k
  if (YYCURSOR > YYLIMIT) {
12166
480
    RETURN_END_TOKEN;
12167
480
  }
12168
12169
8.52k
  YYCURSOR--;
12170
12171
129k
  while (YYCURSOR < YYLIMIT) {
12172
129k
    switch (*YYCURSOR++) {
12173
1.69k
      case '\r':
12174
1.69k
        if (*YYCURSOR == '\n') {
12175
86
          YYCURSOR++;
12176
86
        }
12177
1.69k
        ZEND_FALLTHROUGH;
12178
11.5k
      case '\n':
12179
11.5k
        indentation = spacing = 0;
12180
12181
13.3k
        while (YYCURSOR < YYLIMIT && (*YYCURSOR == ' ' || *YYCURSOR == '\t')) {
12182
1.81k
          if (*YYCURSOR == '\t') {
12183
124
            spacing |= HEREDOC_USING_TABS;
12184
1.69k
          } else {
12185
1.69k
            spacing |= HEREDOC_USING_SPACES;
12186
1.69k
          }
12187
1.81k
          ++YYCURSOR;
12188
1.81k
          ++indentation;
12189
1.81k
        }
12190
12191
11.5k
        if (YYCURSOR == YYLIMIT) {
12192
74
          yyleng = YYCURSOR - SCNG(yy_text);
12193
74
          HANDLE_NEWLINES(yytext, yyleng);
12194
74
          ZVAL_NULL(zendlval);
12195
74
          RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
12196
74
        }
12197
12198
        /* Check for ending label on the next line */
12199
11.4k
        if (IS_LABEL_START(*YYCURSOR) && heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, heredoc_label->label, heredoc_label->length)) {
12200
698
          if (IS_LABEL_SUCCESSOR(YYCURSOR[heredoc_label->length])) {
12201
58
            continue;
12202
58
          }
12203
12204
640
          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
639
          if (YYCURSOR[-indentation - 2] == '\r' && YYCURSOR[-indentation - 1] == '\n') {
12214
0
            newline = 2; /* Windows newline */
12215
639
          } else {
12216
639
            newline = 1;
12217
639
          }
12218
12219
639
          CG(increment_lineno) = 1; /* For newline before label */
12220
12221
639
          if (SCNG(heredoc_scan_ahead)) {
12222
344
            SCNG(heredoc_indentation) = indentation;
12223
344
            SCNG(heredoc_indentation_uses_spaces) = (spacing == HEREDOC_USING_SPACES);
12224
344
          } else {
12225
295
            YYCURSOR -= indentation;
12226
295
          }
12227
12228
639
          BEGIN(ST_END_HEREDOC);
12229
12230
639
          goto heredoc_scan_done;
12231
640
        }
12232
10.7k
        continue;
12233
10.7k
      case '$':
12234
10.3k
        if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
12235
7.16k
          break;
12236
7.16k
        }
12237
3.16k
        continue;
12238
3.16k
      case '{':
12239
2.41k
        if (*YYCURSOR == '$') {
12240
312
          break;
12241
312
        }
12242
2.10k
        continue;
12243
2.10k
      case '\\':
12244
616
        if (YYCURSOR < YYLIMIT && *YYCURSOR != '\n' && *YYCURSOR != '\r') {
12245
569
          YYCURSOR++;
12246
569
        }
12247
616
        ZEND_FALLTHROUGH;
12248
104k
      default:
12249
104k
        continue;
12250
129k
    }
12251
12252
7.47k
    YYCURSOR--;
12253
7.47k
    break;
12254
129k
  }
12255
12256
8.45k
heredoc_scan_done:
12257
12258
8.45k
  yyleng = YYCURSOR - SCNG(yy_text);
12259
8.45k
  ZVAL_STRINGL(zendlval, yytext, yyleng - newline);
12260
12261
8.45k
  if (!SCNG(heredoc_scan_ahead) && !EG(exception) && PARSER_MODE()) {
12262
2.46k
    bool newline_at_start = *(yytext - 1) == '\n' || *(yytext - 1) == '\r';
12263
2.46k
    zend_string *copy = Z_STR_P(zendlval);
12264
12265
2.46k
    if (!strip_multiline_string_indentation(
12266
2.46k
        zendlval, heredoc_label->indentation, heredoc_label->indentation_uses_spaces,
12267
2.46k
        newline_at_start, newline != 0)) {
12268
11
      RETURN_TOKEN(T_ERROR);
12269
11
    }
12270
12271
2.45k
    if (UNEXPECTED(zend_scan_escape_string(zendlval, ZSTR_VAL(copy), ZSTR_LEN(copy), 0) != SUCCESS)) {
12272
2
      zend_string_efree(copy);
12273
2
      RETURN_TOKEN(T_ERROR);
12274
2
    }
12275
12276
2.44k
    zend_string_efree(copy);
12277
5.99k
  } else {
12278
5.99k
    HANDLE_NEWLINES(yytext, yyleng - newline);
12279
5.99k
  }
12280
12281
8.43k
  RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
12282
8.43k
}
12283
0
#line 12284 "Zend/zend_language_scanner.c"
12284
23.5k
yy1050:
12285
23.5k
    YYDEBUG(1050, *YYCURSOR);
12286
23.5k
    yych = *++YYCURSOR;
12287
23.5k
    if (yych <= '_') {
12288
1.91k
      if (yych <= '@') goto yy1049;
12289
267
      if (yych <= 'Z') goto yy1052;
12290
62
      if (yych <= '^') goto yy1049;
12291
17
      goto yy1052;
12292
21.5k
    } else {
12293
21.5k
      if (yych <= 'z') {
12294
1.40k
        if (yych <= '`') goto yy1049;
12295
1.38k
        goto yy1052;
12296
20.1k
      } else {
12297
20.1k
        if (yych <= '{') goto yy1055;
12298
668
        if (yych <= 0x7F) goto yy1049;
12299
592
        goto yy1052;
12300
668
      }
12301
21.5k
    }
12302
707
yy1051:
12303
707
    YYDEBUG(1051, *YYCURSOR);
12304
707
    yych = *++YYCURSOR;
12305
707
    if (yych == '$') goto yy1057;
12306
329
    goto yy1049;
12307
7.17k
yy1052:
12308
7.17k
    YYDEBUG(1052, *YYCURSOR);
12309
7.17k
    YYMARKER = ++YYCURSOR;
12310
7.17k
    YYFILL(4);
12311
7.17k
    yych = *YYCURSOR;
12312
7.17k
    YYDEBUG(1053, *YYCURSOR);
12313
7.17k
    if (yybm[0+yych] & 128) {
12314
4.97k
      goto yy1052;
12315
4.97k
    }
12316
2.19k
    if (yych <= '>') {
12317
1.76k
      if (yych == '-') goto yy1059;
12318
1.76k
    } else {
12319
436
      if (yych <= '?') goto yy1061;
12320
381
      if (yych <= '@') goto yy1054;
12321
374
      if (yych <= '[') goto yy1062;
12322
374
    }
12323
1.98k
yy1054:
12324
1.98k
    YYDEBUG(1054, *YYCURSOR);
12325
1.98k
    yyleng = YYCURSOR - SCNG(yy_text);
12326
1.98k
#line 2417 "Zend/zend_language_scanner.l"
12327
1.98k
    {
12328
1.98k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12329
1.98k
}
12330
0
#line 12331 "Zend/zend_language_scanner.c"
12331
19.5k
yy1055:
12332
19.5k
    YYDEBUG(1055, *YYCURSOR);
12333
19.5k
    ++YYCURSOR;
12334
19.5k
    YYDEBUG(1056, *YYCURSOR);
12335
19.5k
    yyleng = YYCURSOR - SCNG(yy_text);
12336
19.5k
#line 1981 "Zend/zend_language_scanner.l"
12337
19.5k
    {
12338
19.5k
  yy_push_state(ST_LOOKING_FOR_VARNAME);
12339
19.5k
  enter_nesting('{');
12340
19.5k
  RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES);
12341
19.5k
}
12342
0
#line 12343 "Zend/zend_language_scanner.c"
12343
378
yy1057:
12344
378
    YYDEBUG(1057, *YYCURSOR);
12345
378
    ++YYCURSOR;
12346
378
    YYDEBUG(1058, *YYCURSOR);
12347
378
    yyleng = YYCURSOR - SCNG(yy_text);
12348
378
#line 2845 "Zend/zend_language_scanner.l"
12349
378
    {
12350
378
  yy_push_state(ST_IN_SCRIPTING);
12351
378
  yyless(1);
12352
378
  enter_nesting('{');
12353
378
  RETURN_TOKEN(T_CURLY_OPEN);
12354
378
}
12355
0
#line 12356 "Zend/zend_language_scanner.c"
12356
77
yy1059:
12357
77
    YYDEBUG(1059, *YYCURSOR);
12358
77
    yych = *++YYCURSOR;
12359
77
    if (yych == '>') goto yy1064;
12360
100
yy1060:
12361
100
    YYDEBUG(1060, *YYCURSOR);
12362
100
    YYCURSOR = YYMARKER;
12363
100
    goto yy1054;
12364
55
yy1061:
12365
55
    YYDEBUG(1061, *YYCURSOR);
12366
55
    yych = *++YYCURSOR;
12367
55
    if (yych == '-') goto yy1065;
12368
35
    goto yy1060;
12369
182
yy1062:
12370
182
    YYDEBUG(1062, *YYCURSOR);
12371
182
    ++YYCURSOR;
12372
182
    YYDEBUG(1063, *YYCURSOR);
12373
182
    yyleng = YYCURSOR - SCNG(yy_text);
12374
182
#line 2411 "Zend/zend_language_scanner.l"
12375
182
    {
12376
182
  yyless(yyleng - 1);
12377
182
  yy_push_state(ST_VAR_OFFSET);
12378
182
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12379
182
}
12380
0
#line 12381 "Zend/zend_language_scanner.c"
12381
58
yy1064:
12382
58
    YYDEBUG(1064, *YYCURSOR);
12383
58
    yych = *++YYCURSOR;
12384
58
    if (yych <= '_') {
12385
24
      if (yych <= '@') goto yy1060;
12386
2
      if (yych <= 'Z') goto yy1066;
12387
2
      if (yych <= '^') goto yy1060;
12388
0
      goto yy1066;
12389
34
    } else {
12390
34
      if (yych <= '`') goto yy1060;
12391
31
      if (yych <= 'z') goto yy1066;
12392
6
      if (yych <= 0x7F) goto yy1060;
12393
0
      goto yy1066;
12394
6
    }
12395
20
yy1065:
12396
20
    YYDEBUG(1065, *YYCURSOR);
12397
20
    yych = *++YYCURSOR;
12398
20
    if (yych == '>') goto yy1068;
12399
4
    goto yy1060;
12400
25
yy1066:
12401
25
    YYDEBUG(1066, *YYCURSOR);
12402
25
    ++YYCURSOR;
12403
25
    YYDEBUG(1067, *YYCURSOR);
12404
25
    yyleng = YYCURSOR - SCNG(yy_text);
12405
25
#line 2397 "Zend/zend_language_scanner.l"
12406
25
    {
12407
25
  yyless(yyleng - 3);
12408
25
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
12409
25
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12410
25
}
12411
0
#line 12412 "Zend/zend_language_scanner.c"
12412
16
yy1068:
12413
16
    YYDEBUG(1068, *YYCURSOR);
12414
16
    yych = *++YYCURSOR;
12415
16
    if (yych <= '_') {
12416
9
      if (yych <= '@') goto yy1060;
12417
7
      if (yych <= 'Z') goto yy1069;
12418
5
      if (yych <= '^') goto yy1060;
12419
7
    } else {
12420
7
      if (yych <= '`') goto yy1060;
12421
7
      if (yych <= 'z') goto yy1069;
12422
4
      if (yych <= 0x7F) goto yy1060;
12423
4
    }
12424
7
yy1069:
12425
7
    YYDEBUG(1069, *YYCURSOR);
12426
7
    ++YYCURSOR;
12427
7
    YYDEBUG(1070, *YYCURSOR);
12428
7
    yyleng = YYCURSOR - SCNG(yy_text);
12429
7
#line 2403 "Zend/zend_language_scanner.l"
12430
7
    {
12431
7
  yyless(yyleng - 4);
12432
7
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
12433
7
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12434
7
}
12435
7
#line 12436 "Zend/zend_language_scanner.c"
12436
7
  }
12437
/* *********************************** */
12438
19.9k
yyc_ST_LOOKING_FOR_VARNAME:
12439
19.9k
  {
12440
19.9k
    static const unsigned char yybm[] = {
12441
19.9k
        0,   0,   0,   0,   0,   0,   0,   0, 
12442
19.9k
        0,   0,   0,   0,   0,   0,   0,   0, 
12443
19.9k
        0,   0,   0,   0,   0,   0,   0,   0, 
12444
19.9k
        0,   0,   0,   0,   0,   0,   0,   0, 
12445
19.9k
        0,   0,   0,   0,   0,   0,   0,   0, 
12446
19.9k
        0,   0,   0,   0,   0,   0,   0,   0, 
12447
19.9k
      128, 128, 128, 128, 128, 128, 128, 128, 
12448
19.9k
      128, 128,   0,   0,   0,   0,   0,   0, 
12449
19.9k
        0, 128, 128, 128, 128, 128, 128, 128, 
12450
19.9k
      128, 128, 128, 128, 128, 128, 128, 128, 
12451
19.9k
      128, 128, 128, 128, 128, 128, 128, 128, 
12452
19.9k
      128, 128, 128,   0,   0,   0,   0, 128, 
12453
19.9k
        0, 128, 128, 128, 128, 128, 128, 128, 
12454
19.9k
      128, 128, 128, 128, 128, 128, 128, 128, 
12455
19.9k
      128, 128, 128, 128, 128, 128, 128, 128, 
12456
19.9k
      128, 128, 128,   0,   0,   0,   0,   0, 
12457
19.9k
      128, 128, 128, 128, 128, 128, 128, 128, 
12458
19.9k
      128, 128, 128, 128, 128, 128, 128, 128, 
12459
19.9k
      128, 128, 128, 128, 128, 128, 128, 128, 
12460
19.9k
      128, 128, 128, 128, 128, 128, 128, 128, 
12461
19.9k
      128, 128, 128, 128, 128, 128, 128, 128, 
12462
19.9k
      128, 128, 128, 128, 128, 128, 128, 128, 
12463
19.9k
      128, 128, 128, 128, 128, 128, 128, 128, 
12464
19.9k
      128, 128, 128, 128, 128, 128, 128, 128, 
12465
19.9k
      128, 128, 128, 128, 128, 128, 128, 128, 
12466
19.9k
      128, 128, 128, 128, 128, 128, 128, 128, 
12467
19.9k
      128, 128, 128, 128, 128, 128, 128, 128, 
12468
19.9k
      128, 128, 128, 128, 128, 128, 128, 128, 
12469
19.9k
      128, 128, 128, 128, 128, 128, 128, 128, 
12470
19.9k
      128, 128, 128, 128, 128, 128, 128, 128, 
12471
19.9k
      128, 128, 128, 128, 128, 128, 128, 128, 
12472
19.9k
      128, 128, 128, 128, 128, 128, 128, 128, 
12473
19.9k
    };
12474
19.9k
    YYDEBUG(1071, *YYCURSOR);
12475
19.9k
    YYFILL(2);
12476
19.9k
    yych = *YYCURSOR;
12477
19.9k
    if (yych <= '_') {
12478
18.3k
      if (yych <= '@') goto yy1073;
12479
443
      if (yych <= 'Z') goto yy1075;
12480
49
      if (yych >= '_') goto yy1075;
12481
1.60k
    } else {
12482
1.60k
      if (yych <= '`') goto yy1073;
12483
1.57k
      if (yych <= 'z') goto yy1075;
12484
672
      if (yych >= 0x80) goto yy1075;
12485
672
    }
12486
18.1k
yy1073:
12487
18.1k
    YYDEBUG(1073, *YYCURSOR);
12488
18.1k
    ++YYCURSOR;
12489
19.9k
yy1074:
12490
19.9k
    YYDEBUG(1074, *YYCURSOR);
12491
19.9k
    yyleng = YYCURSOR - SCNG(yy_text);
12492
19.9k
#line 2004 "Zend/zend_language_scanner.l"
12493
19.9k
    {
12494
19.9k
  yyless(0);
12495
19.9k
  yy_pop_state();
12496
19.9k
  yy_push_state(ST_IN_SCRIPTING);
12497
19.9k
  goto restart;
12498
18.1k
}
12499
0
#line 12500 "Zend/zend_language_scanner.c"
12500
1.87k
yy1075:
12501
1.87k
    YYDEBUG(1075, *YYCURSOR);
12502
1.87k
    yych = *(YYMARKER = ++YYCURSOR);
12503
1.87k
    if (yych <= '_') {
12504
917
      if (yych <= '@') {
12505
716
        if (yych <= '/') goto yy1074;
12506
415
        if (yych <= '9') goto yy1077;
12507
384
        goto yy1074;
12508
415
      } else {
12509
201
        if (yych <= '[') goto yy1077;
12510
45
        if (yych <= '^') goto yy1074;
12511
31
        goto yy1077;
12512
45
      }
12513
954
    } else {
12514
954
      if (yych <= '|') {
12515
557
        if (yych <= '`') goto yy1074;
12516
551
        if (yych <= 'z') goto yy1077;
12517
9
        goto yy1074;
12518
551
      } else {
12519
397
        if (yych <= '}') goto yy1077;
12520
387
        if (yych <= 0x7F) goto yy1074;
12521
372
        goto yy1077;
12522
387
      }
12523
954
    }
12524
4.19k
yy1076:
12525
4.19k
    YYDEBUG(1076, *YYCURSOR);
12526
4.19k
    ++YYCURSOR;
12527
4.19k
    YYFILL(1);
12528
4.19k
    yych = *YYCURSOR;
12529
5.33k
yy1077:
12530
5.33k
    YYDEBUG(1077, *YYCURSOR);
12531
5.33k
    if (yybm[0+yych] & 128) {
12532
4.19k
      goto yy1076;
12533
4.19k
    }
12534
1.14k
    if (yych <= '@') goto yy1078;
12535
121
    if (yych <= '[') goto yy1079;
12536
116
    if (yych == '}') goto yy1079;
12537
1.12k
yy1078:
12538
1.12k
    YYDEBUG(1078, *YYCURSOR);
12539
1.12k
    YYCURSOR = YYMARKER;
12540
1.12k
    goto yy1074;
12541
18
yy1079:
12542
18
    YYDEBUG(1079, *YYCURSOR);
12543
18
    ++YYCURSOR;
12544
18
    YYDEBUG(1080, *YYCURSOR);
12545
18
    yyleng = YYCURSOR - SCNG(yy_text);
12546
18
#line 1996 "Zend/zend_language_scanner.l"
12547
18
    {
12548
18
  yyless(yyleng - 1);
12549
18
  yy_pop_state();
12550
18
  yy_push_state(ST_IN_SCRIPTING);
12551
18
  RETURN_TOKEN_WITH_STR(T_STRING_VARNAME, 0);
12552
18
}
12553
18
#line 12554 "Zend/zend_language_scanner.c"
12554
18
  }
12555
/* *********************************** */
12556
1.57k
yyc_ST_VAR_OFFSET:
12557
1.57k
  {
12558
1.57k
    static const unsigned char yybm[] = {
12559
1.57k
        0,   0,   0,   0,   0,   0,   0,   0, 
12560
1.57k
        0,   0,   0,   0,   0,   0,   0,   0, 
12561
1.57k
        0,   0,   0,   0,   0,   0,   0,   0, 
12562
1.57k
        0,   0,   0,   0,   0,   0,   0,   0, 
12563
1.57k
        0,   0,   0,   0,   0,   0,   0,   0, 
12564
1.57k
        0,   0,   0,   0,   0,   0,   0,   0, 
12565
1.57k
      248, 248, 216, 216, 216, 216, 216, 216, 
12566
1.57k
      152, 152,   0,   0,   0,   0,   0,   0, 
12567
1.57k
        0, 144, 144, 144, 144, 144, 144,  16, 
12568
1.57k
       16,  16,  16,  16,  16,  16,  16,  16, 
12569
1.57k
       16,  16,  16,  16,  16,  16,  16,  16, 
12570
1.57k
       16,  16,  16,   0,   0,   0,   0,  16, 
12571
1.57k
        0, 144, 144, 144, 144, 144, 144,  16, 
12572
1.57k
       16,  16,  16,  16,  16,  16,  16,  16, 
12573
1.57k
       16,  16,  16,  16,  16,  16,  16,  16, 
12574
1.57k
       16,  16,  16,   0,   0,   0,   0,   0, 
12575
1.57k
       16,  16,  16,  16,  16,  16,  16,  16, 
12576
1.57k
       16,  16,  16,  16,  16,  16,  16,  16, 
12577
1.57k
       16,  16,  16,  16,  16,  16,  16,  16, 
12578
1.57k
       16,  16,  16,  16,  16,  16,  16,  16, 
12579
1.57k
       16,  16,  16,  16,  16,  16,  16,  16, 
12580
1.57k
       16,  16,  16,  16,  16,  16,  16,  16, 
12581
1.57k
       16,  16,  16,  16,  16,  16,  16,  16, 
12582
1.57k
       16,  16,  16,  16,  16,  16,  16,  16, 
12583
1.57k
       16,  16,  16,  16,  16,  16,  16,  16, 
12584
1.57k
       16,  16,  16,  16,  16,  16,  16,  16, 
12585
1.57k
       16,  16,  16,  16,  16,  16,  16,  16, 
12586
1.57k
       16,  16,  16,  16,  16,  16,  16,  16, 
12587
1.57k
       16,  16,  16,  16,  16,  16,  16,  16, 
12588
1.57k
       16,  16,  16,  16,  16,  16,  16,  16, 
12589
1.57k
       16,  16,  16,  16,  16,  16,  16,  16, 
12590
1.57k
       16,  16,  16,  16,  16,  16,  16,  16, 
12591
1.57k
    };
12592
1.57k
    YYDEBUG(1081, *YYCURSOR);
12593
1.57k
    YYFILL(2);
12594
1.57k
    yych = *YYCURSOR;
12595
1.57k
    if (yych <= '0') {
12596
722
      if (yych <= ' ') {
12597
339
        if (yych <= '\f') {
12598
284
          if (yych <= 0x08) goto yy1083;
12599
36
          if (yych <= '\n') goto yy1085;
12600
55
        } else {
12601
55
          if (yych <= '\r') goto yy1085;
12602
45
          if (yych >= ' ') goto yy1085;
12603
45
        }
12604
383
      } else {
12605
383
        if (yych <= '$') {
12606
123
          if (yych <= '"') goto yy1087;
12607
118
          if (yych <= '#') goto yy1085;
12608
116
          goto yy1089;
12609
260
        } else {
12610
260
          if (yych == '\'') goto yy1085;
12611
258
          if (yych <= '/') goto yy1087;
12612
125
          goto yy1090;
12613
258
        }
12614
383
      }
12615
856
    } else {
12616
856
      if (yych <= ']') {
12617
596
        if (yych <= 'Z') {
12618
225
          if (yych <= '9') goto yy1092;
12619
146
          if (yych <= '@') goto yy1087;
12620
39
          goto yy1094;
12621
371
        } else {
12622
371
          if (yych <= '[') goto yy1087;
12623
81
          if (yych <= '\\') goto yy1085;
12624
81
          goto yy1097;
12625
81
        }
12626
596
      } else {
12627
260
        if (yych <= '`') {
12628
47
          if (yych == '_') goto yy1094;
12629
30
          goto yy1087;
12630
213
        } else {
12631
213
          if (yych <= 'z') goto yy1094;
12632
136
          if (yych <= '~') goto yy1087;
12633
87
          if (yych >= 0x80) goto yy1094;
12634
87
        }
12635
260
      }
12636
856
    }
12637
295
yy1083:
12638
295
    YYDEBUG(1083, *YYCURSOR);
12639
295
    ++YYCURSOR;
12640
295
    YYDEBUG(1084, *YYCURSOR);
12641
295
    yyleng = YYCURSOR - SCNG(yy_text);
12642
295
#line 3179 "Zend/zend_language_scanner.l"
12643
295
    {
12644
295
  if (YYCURSOR > YYLIMIT) {
12645
63
    RETURN_END_TOKEN;
12646
63
  }
12647
12648
232
  RETURN_TOKEN(T_BAD_CHARACTER);
12649
232
}
12650
0
#line 12651 "Zend/zend_language_scanner.c"
12651
51
yy1085:
12652
51
    YYDEBUG(1085, *YYCURSOR);
12653
51
    ++YYCURSOR;
12654
51
    YYDEBUG(1086, *YYCURSOR);
12655
51
    yyleng = YYCURSOR - SCNG(yy_text);
12656
51
#line 2431 "Zend/zend_language_scanner.l"
12657
51
    {
12658
  /* Invalid rule to return a more explicit parse error with proper line number */
12659
51
  yyless(0);
12660
51
  yy_pop_state();
12661
51
  ZVAL_NULL(zendlval);
12662
51
  RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
12663
51
}
12664
0
#line 12665 "Zend/zend_language_scanner.c"
12665
614
yy1087:
12666
614
    YYDEBUG(1087, *YYCURSOR);
12667
614
    ++YYCURSOR;
12668
662
yy1088:
12669
662
    YYDEBUG(1088, *YYCURSOR);
12670
662
    yyleng = YYCURSOR - SCNG(yy_text);
12671
662
#line 2426 "Zend/zend_language_scanner.l"
12672
662
    {
12673
  /* Only '[' or '-' can be valid, but returning other tokens will allow a more explicit parse error */
12674
662
  RETURN_TOKEN(yytext[0]);
12675
662
}
12676
0
#line 12677 "Zend/zend_language_scanner.c"
12677
116
yy1089:
12678
116
    YYDEBUG(1089, *YYCURSOR);
12679
116
    yych = *++YYCURSOR;
12680
116
    if (yych <= '_') {
12681
53
      if (yych <= '@') goto yy1088;
12682
27
      if (yych <= 'Z') goto yy1099;
12683
8
      if (yych <= '^') goto yy1088;
12684
4
      goto yy1099;
12685
63
    } else {
12686
63
      if (yych <= '`') goto yy1088;
12687
59
      if (yych <= 'z') goto yy1099;
12688
26
      if (yych <= 0x7F) goto yy1088;
12689
12
      goto yy1099;
12690
26
    }
12691
125
yy1090:
12692
125
    YYDEBUG(1090, *YYCURSOR);
12693
125
    yyaccept = 0;
12694
125
    yych = *(YYMARKER = ++YYCURSOR);
12695
125
    if (yych <= 'X') {
12696
61
      if (yych <= 'B') {
12697
56
        if (yych <= '/') goto yy1091;
12698
45
        if (yych <= '9') goto yy1102;
12699
13
        if (yych >= 'B') goto yy1105;
12700
13
      } else {
12701
5
        if (yych == 'O') goto yy1107;
12702
3
        if (yych >= 'X') goto yy1108;
12703
3
      }
12704
64
    } else {
12705
64
      if (yych <= 'b') {
12706
35
        if (yych == '_') goto yy1109;
12707
34
        if (yych >= 'b') goto yy1105;
12708
34
      } else {
12709
29
        if (yych <= 'o') {
12710
25
          if (yych >= 'o') goto yy1107;
12711
25
        } else {
12712
4
          if (yych == 'x') goto yy1108;
12713
4
        }
12714
29
      }
12715
64
    }
12716
150
yy1091:
12717
150
    YYDEBUG(1091, *YYCURSOR);
12718
150
    yyleng = YYCURSOR - SCNG(yy_text);
12719
150
#line 2208 "Zend/zend_language_scanner.l"
12720
150
    { /* Offset could be treated as a long */
12721
150
  if (yyleng < MAX_LENGTH_OF_LONG - 1 || (yyleng == MAX_LENGTH_OF_LONG - 1 && strcmp(yytext, long_min_digits) < 0)) {
12722
145
    char *end;
12723
145
    errno = 0;
12724
145
    ZVAL_LONG(zendlval, ZEND_STRTOL(yytext, &end, 10));
12725
145
    if (errno == ERANGE) {
12726
0
      goto string;
12727
0
    }
12728
145
    ZEND_ASSERT(end == yytext + yyleng);
12729
145
  } else {
12730
5
string:
12731
5
    ZVAL_STRINGL(zendlval, yytext, yyleng);
12732
5
  }
12733
150
  RETURN_TOKEN_WITH_VAL(T_NUM_STRING);
12734
150
}
12735
0
#line 12736 "Zend/zend_language_scanner.c"
12736
331
yy1092:
12737
331
    YYDEBUG(1092, *YYCURSOR);
12738
331
    yyaccept = 0;
12739
331
    YYMARKER = ++YYCURSOR;
12740
331
    YYFILL(1);
12741
331
    yych = *YYCURSOR;
12742
331
    YYDEBUG(1093, *YYCURSOR);
12743
331
    if (yybm[0+yych] & 8) {
12744
252
      goto yy1092;
12745
252
    }
12746
79
    if (yych == '_') goto yy1109;
12747
61
    goto yy1091;
12748
587
yy1094:
12749
587
    YYDEBUG(1094, *YYCURSOR);
12750
587
    ++YYCURSOR;
12751
587
    YYFILL(1);
12752
587
    yych = *YYCURSOR;
12753
587
    YYDEBUG(1095, *YYCURSOR);
12754
587
    if (yybm[0+yych] & 16) {
12755
370
      goto yy1094;
12756
370
    }
12757
217
    YYDEBUG(1096, *YYCURSOR);
12758
217
    yyleng = YYCURSOR - SCNG(yy_text);
12759
217
#line 2455 "Zend/zend_language_scanner.l"
12760
217
    {
12761
217
  RETURN_TOKEN_WITH_STR(T_STRING, 0);
12762
217
}
12763
0
#line 12764 "Zend/zend_language_scanner.c"
12764
81
yy1097:
12765
81
    YYDEBUG(1097, *YYCURSOR);
12766
81
    ++YYCURSOR;
12767
81
    YYDEBUG(1098, *YYCURSOR);
12768
81
    yyleng = YYCURSOR - SCNG(yy_text);
12769
81
#line 2421 "Zend/zend_language_scanner.l"
12770
81
    {
12771
81
  yy_pop_state();
12772
81
  RETURN_TOKEN(']');
12773
81
}
12774
0
#line 12775 "Zend/zend_language_scanner.c"
12775
828
yy1099:
12776
828
    YYDEBUG(1099, *YYCURSOR);
12777
828
    ++YYCURSOR;
12778
828
    YYFILL(1);
12779
828
    yych = *YYCURSOR;
12780
828
    YYDEBUG(1100, *YYCURSOR);
12781
828
    if (yych <= '^') {
12782
539
      if (yych <= '9') {
12783
70
        if (yych >= '0') goto yy1099;
12784
469
      } else {
12785
469
        if (yych <= '@') goto yy1101;
12786
450
        if (yych <= 'Z') goto yy1099;
12787
450
      }
12788
539
    } else {
12789
289
      if (yych <= '`') {
12790
4
        if (yych <= '_') goto yy1099;
12791
285
      } else {
12792
285
        if (yych <= 'z') goto yy1099;
12793
238
        if (yych >= 0x80) goto yy1099;
12794
238
      }
12795
289
    }
12796
68
yy1101:
12797
68
    YYDEBUG(1101, *YYCURSOR);
12798
68
    yyleng = YYCURSOR - SCNG(yy_text);
12799
68
#line 2417 "Zend/zend_language_scanner.l"
12800
68
    {
12801
68
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12802
68
}
12803
0
#line 12804 "Zend/zend_language_scanner.c"
12804
108
yy1102:
12805
108
    YYDEBUG(1102, *YYCURSOR);
12806
108
    yyaccept = 1;
12807
108
    YYMARKER = ++YYCURSOR;
12808
108
    YYFILL(1);
12809
108
    yych = *YYCURSOR;
12810
108
    YYDEBUG(1103, *YYCURSOR);
12811
108
    if (yych <= '/') goto yy1104;
12812
94
    if (yych <= '9') goto yy1102;
12813
36
    if (yych == '_') goto yy1109;
12814
54
yy1104:
12815
54
    YYDEBUG(1104, *YYCURSOR);
12816
54
    yyleng = YYCURSOR - SCNG(yy_text);
12817
54
#line 2224 "Zend/zend_language_scanner.l"
12818
54
    { /* Offset must be treated as a string */
12819
54
  if (yyleng == 1) {
12820
0
    ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR((zend_uchar)*(yytext)));
12821
54
  } else {
12822
54
    ZVAL_STRINGL(zendlval, yytext, yyleng);
12823
54
  }
12824
54
  RETURN_TOKEN_WITH_VAL(T_NUM_STRING);
12825
54
}
12826
0
#line 12827 "Zend/zend_language_scanner.c"
12827
8
yy1105:
12828
8
    YYDEBUG(1105, *YYCURSOR);
12829
8
    ++YYCURSOR;
12830
8
    YYFILL(1);
12831
8
    yych = *YYCURSOR;
12832
8
    if (yybm[0+yych] & 32) {
12833
2
      goto yy1110;
12834
2
    }
12835
31
yy1106:
12836
31
    YYDEBUG(1106, *YYCURSOR);
12837
31
    YYCURSOR = YYMARKER;
12838
31
    if (yyaccept == 0) {
12839
24
      goto yy1091;
12840
24
    } else {
12841
7
      goto yy1104;
12842
7
    }
12843
17
yy1107:
12844
17
    YYDEBUG(1107, *YYCURSOR);
12845
17
    ++YYCURSOR;
12846
17
    YYFILL(1);
12847
17
    yych = *YYCURSOR;
12848
17
    if (yybm[0+yych] & 64) {
12849
9
      goto yy1112;
12850
9
    }
12851
8
    goto yy1106;
12852
8
yy1108:
12853
3
    YYDEBUG(1108, *YYCURSOR);
12854
3
    ++YYCURSOR;
12855
3
    YYFILL(1);
12856
3
    yych = *YYCURSOR;
12857
3
    if (yybm[0+yych] & 128) {
12858
0
      goto yy1114;
12859
0
    }
12860
3
    goto yy1106;
12861
32
yy1109:
12862
32
    YYDEBUG(1109, *YYCURSOR);
12863
32
    ++YYCURSOR;
12864
32
    YYFILL(1);
12865
32
    yych = *YYCURSOR;
12866
32
    if (yych <= '/') goto yy1106;
12867
25
    if (yych <= '9') goto yy1102;
12868
7
    goto yy1106;
12869
7
yy1110:
12870
6
    YYDEBUG(1110, *YYCURSOR);
12871
6
    yyaccept = 1;
12872
6
    YYMARKER = ++YYCURSOR;
12873
6
    YYFILL(1);
12874
6
    yych = *YYCURSOR;
12875
6
    YYDEBUG(1111, *YYCURSOR);
12876
6
    if (yybm[0+yych] & 32) {
12877
4
      goto yy1110;
12878
4
    }
12879
2
    if (yych == '_') goto yy1105;
12880
2
    goto yy1104;
12881
20
yy1112:
12882
20
    YYDEBUG(1112, *YYCURSOR);
12883
20
    yyaccept = 1;
12884
20
    YYMARKER = ++YYCURSOR;
12885
20
    YYFILL(1);
12886
20
    yych = *YYCURSOR;
12887
20
    YYDEBUG(1113, *YYCURSOR);
12888
20
    if (yybm[0+yych] & 64) {
12889
11
      goto yy1112;
12890
11
    }
12891
9
    if (yych == '_') goto yy1107;
12892
8
    goto yy1104;
12893
8
yy1114:
12894
0
    YYDEBUG(1114, *YYCURSOR);
12895
0
    yyaccept = 1;
12896
0
    YYMARKER = ++YYCURSOR;
12897
0
    YYFILL(1);
12898
0
    yych = *YYCURSOR;
12899
0
    YYDEBUG(1115, *YYCURSOR);
12900
0
    if (yybm[0+yych] & 128) {
12901
0
      goto yy1114;
12902
0
    }
12903
0
    if (yych == '_') goto yy1108;
12904
0
    goto yy1104;
12905
0
  }
12906
/* *********************************** */
12907
0
yyc_SHEBANG:
12908
0
  {
12909
0
    static const unsigned char yybm[] = {
12910
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12911
0
      128, 128,   0, 128, 128, 128, 128, 128, 
12912
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12913
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12914
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12915
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12916
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12917
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12918
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12919
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12920
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12921
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12922
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12923
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12924
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12925
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12926
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12927
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12928
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12929
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12930
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12931
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12932
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12933
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12934
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12935
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12936
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12937
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12938
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12939
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12940
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12941
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12942
0
    };
12943
0
    YYDEBUG(1116, *YYCURSOR);
12944
0
    YYFILL(2);
12945
0
    yych = *YYCURSOR;
12946
0
    if (yych == '#') goto yy1120;
12947
0
    YYDEBUG(1118, *YYCURSOR);
12948
0
    ++YYCURSOR;
12949
0
yy1119:
12950
0
    YYDEBUG(1119, *YYCURSOR);
12951
0
    yyleng = YYCURSOR - SCNG(yy_text);
12952
0
#line 2295 "Zend/zend_language_scanner.l"
12953
0
    {
12954
0
  yyless(0);
12955
0
  BEGIN(INITIAL);
12956
0
  goto restart;
12957
0
}
12958
0
#line 12959 "Zend/zend_language_scanner.c"
12959
0
yy1120:
12960
0
    YYDEBUG(1120, *YYCURSOR);
12961
0
    yych = *++YYCURSOR;
12962
0
    if (yych != '!') goto yy1119;
12963
0
yy1121:
12964
0
    YYDEBUG(1121, *YYCURSOR);
12965
0
    ++YYCURSOR;
12966
0
    YYFILL(1);
12967
0
    yych = *YYCURSOR;
12968
0
    YYDEBUG(1122, *YYCURSOR);
12969
0
    if (yybm[0+yych] & 128) {
12970
0
      goto yy1121;
12971
0
    }
12972
0
    YYDEBUG(1123, *YYCURSOR);
12973
0
    ++YYCURSOR;
12974
0
    YYDEBUG(1124, *YYCURSOR);
12975
0
    yyleng = YYCURSOR - SCNG(yy_text);
12976
0
#line 2289 "Zend/zend_language_scanner.l"
12977
0
    {
12978
0
  CG(zend_lineno)++;
12979
0
  BEGIN(INITIAL);
12980
0
  goto restart;
12981
0
}
12982
0
#line 12983 "Zend/zend_language_scanner.c"
12983
0
  }
12984
/* *********************************** */
12985
22.0k
yyc_INITIAL:
12986
22.0k
  YYDEBUG(1125, *YYCURSOR);
12987
22.0k
  YYFILL(7);
12988
22.0k
  yych = *YYCURSOR;
12989
22.0k
  if (yych == '<') goto yy1129;
12990
9.62k
  YYDEBUG(1127, *YYCURSOR);
12991
9.62k
  ++YYCURSOR;
12992
9.92k
yy1128:
12993
9.92k
  YYDEBUG(1128, *YYCURSOR);
12994
9.92k
  yyleng = YYCURSOR - SCNG(yy_text);
12995
9.92k
#line 2341 "Zend/zend_language_scanner.l"
12996
9.92k
  {
12997
9.92k
  if (YYCURSOR > YYLIMIT) {
12998
4.10k
    RETURN_END_TOKEN;
12999
4.10k
  }
13000
13001
5.82k
inline_char_handler:
13002
13003
6.75k
  while (1) {
13004
6.75k
    YYCTYPE *ptr = memchr(YYCURSOR, '<', YYLIMIT - YYCURSOR);
13005
13006
6.75k
    YYCURSOR = ptr ? ptr + 1 : YYLIMIT;
13007
13008
6.75k
    if (YYCURSOR >= YYLIMIT) {
13009
813
      break;
13010
813
    }
13011
13012
5.94k
    if (*YYCURSOR == '?') {
13013
5.01k
      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
5.01k
      ) {
13020
5.01k
        YYCURSOR--;
13021
5.01k
        break;
13022
5.01k
      }
13023
5.01k
    }
13024
5.94k
  }
13025
13026
5.82k
  yyleng = YYCURSOR - SCNG(yy_text);
13027
13028
5.82k
  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.82k
  } else if (yyleng == 1) {
13040
883
    ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR((zend_uchar)*yytext));
13041
4.94k
  } else {
13042
4.94k
    ZVAL_STRINGL(zendlval, yytext, yyleng);
13043
4.94k
  }
13044
5.82k
  HANDLE_NEWLINES(yytext, yyleng);
13045
5.82k
  RETURN_TOKEN_WITH_VAL(T_INLINE_HTML);
13046
5.82k
}
13047
0
#line 13048 "Zend/zend_language_scanner.c"
13048
12.4k
yy1129:
13049
12.4k
  YYDEBUG(1129, *YYCURSOR);
13050
12.4k
  yych = *++YYCURSOR;
13051
12.4k
  if (yych != '?') goto yy1128;
13052
12.1k
  YYDEBUG(1130, *YYCURSOR);
13053
12.1k
  yych = *(YYMARKER = ++YYCURSOR);
13054
12.1k
  if (yych <= 'O') {
13055
4.89k
    if (yych == '=') goto yy1132;
13056
7.26k
  } else {
13057
7.26k
    if (yych <= 'P') goto yy1134;
13058
7.25k
    if (yych == 'p') goto yy1134;
13059
7.25k
  }
13060
6.93k
yy1131:
13061
6.93k
  YYDEBUG(1131, *YYCURSOR);
13062
6.93k
  yyleng = YYCURSOR - SCNG(yy_text);
13063
6.93k
#line 2332 "Zend/zend_language_scanner.l"
13064
6.93k
  {
13065
6.93k
  if (CG(short_tags)) {
13066
6.93k
    BEGIN(ST_IN_SCRIPTING);
13067
6.93k
    RETURN_OR_SKIP_TOKEN(T_OPEN_TAG);
13068
6.93k
  } else {
13069
0
    goto inline_char_handler;
13070
0
  }
13071
6.93k
}
13072
0
#line 13073 "Zend/zend_language_scanner.c"
13073
319
yy1132:
13074
319
  YYDEBUG(1132, *YYCURSOR);
13075
319
  ++YYCURSOR;
13076
319
  YYDEBUG(1133, *YYCURSOR);
13077
319
  yyleng = YYCURSOR - SCNG(yy_text);
13078
319
#line 2301 "Zend/zend_language_scanner.l"
13079
319
  {
13080
319
  BEGIN(ST_IN_SCRIPTING);
13081
319
  if (PARSER_MODE()) {
13082
    /* We'll reject this as an identifier in zend_lex_tstring. */
13083
237
    RETURN_TOKEN_WITH_IDENT(T_ECHO);
13084
237
  }
13085
82
  RETURN_TOKEN(T_OPEN_TAG_WITH_ECHO);
13086
82
}
13087
0
#line 13088 "Zend/zend_language_scanner.c"
13088
5.56k
yy1134:
13089
5.56k
  YYDEBUG(1134, *YYCURSOR);
13090
5.56k
  yych = *++YYCURSOR;
13091
5.56k
  if (yych == 'H') goto yy1136;
13092
5.41k
  if (yych == 'h') goto yy1136;
13093
660
yy1135:
13094
660
  YYDEBUG(1135, *YYCURSOR);
13095
660
  YYCURSOR = YYMARKER;
13096
660
  goto yy1131;
13097
4.93k
yy1136:
13098
4.93k
  YYDEBUG(1136, *YYCURSOR);
13099
4.93k
  yych = *++YYCURSOR;
13100
4.93k
  if (yych == 'P') goto yy1137;
13101
4.92k
  if (yych != 'p') goto yy1135;
13102
4.90k
yy1137:
13103
4.90k
  YYDEBUG(1137, *YYCURSOR);
13104
4.90k
  yych = *++YYCURSOR;
13105
4.90k
  if (yych <= '\f') {
13106
4.32k
    if (yych <= 0x08) goto yy1138;
13107
4.21k
    if (yych <= '\n') goto yy1139;
13108
4.21k
  } else {
13109
584
    if (yych <= '\r') goto yy1141;
13110
579
    if (yych == ' ') goto yy1139;
13111
579
  }
13112
418
yy1138:
13113
418
  YYDEBUG(1138, *YYCURSOR);
13114
418
  yyleng = YYCURSOR - SCNG(yy_text);
13115
418
#line 2317 "Zend/zend_language_scanner.l"
13116
418
  {
13117
  /* Allow <?php followed by end of file. */
13118
418
  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
307
  if (CG(short_tags)) {
13124
307
    yyless(2);
13125
307
    BEGIN(ST_IN_SCRIPTING);
13126
307
    RETURN_OR_SKIP_TOKEN(T_OPEN_TAG);
13127
307
  }
13128
0
  goto inline_char_handler;
13129
307
}
13130
0
#line 13131 "Zend/zend_language_scanner.c"
13131
4.48k
yy1139:
13132
4.48k
  YYDEBUG(1139, *YYCURSOR);
13133
4.48k
  ++YYCURSOR;
13134
4.48k
yy1140:
13135
4.48k
  YYDEBUG(1140, *YYCURSOR);
13136
4.48k
  yyleng = YYCURSOR - SCNG(yy_text);
13137
4.48k
#line 2311 "Zend/zend_language_scanner.l"
13138
4.48k
  {
13139
4.48k
  HANDLE_NEWLINE(yytext[yyleng-1]);
13140
4.48k
  BEGIN(ST_IN_SCRIPTING);
13141
4.48k
  RETURN_OR_SKIP_TOKEN(T_OPEN_TAG);
13142
4.48k
}
13143
0
#line 13144 "Zend/zend_language_scanner.c"
13144
5
yy1141:
13145
5
  YYDEBUG(1141, *YYCURSOR);
13146
5
  yych = *++YYCURSOR;
13147
5
  if (yych == '\n') goto yy1139;
13148
1
  goto yy1140;
13149
/* *********************************** */
13150
718
yyc_ST_END_HEREDOC:
13151
718
  YYDEBUG(1142, *YYCURSOR);
13152
718
  YYFILL(1);
13153
718
  yych = *YYCURSOR;
13154
718
  YYDEBUG(1144, *YYCURSOR);
13155
718
  ++YYCURSOR;
13156
718
  YYDEBUG(1145, *YYCURSOR);
13157
718
  yyleng = YYCURSOR - SCNG(yy_text);
13158
718
#line 2831 "Zend/zend_language_scanner.l"
13159
718
  {
13160
718
  zend_heredoc_label *heredoc_label = zend_ptr_stack_pop(&SCNG(heredoc_label_stack));
13161
13162
718
  yyleng = heredoc_label->indentation + heredoc_label->length;
13163
718
  YYCURSOR += yyleng - 1;
13164
13165
718
  heredoc_label_dtor(heredoc_label);
13166
718
  efree(heredoc_label);
13167
13168
718
  BEGIN(ST_IN_SCRIPTING);
13169
718
  RETURN_TOKEN(T_END_HEREDOC);
13170
718
}
13171
0
#line 13172 "Zend/zend_language_scanner.c"
13172
/* *********************************** */
13173
103
yyc_ST_NOWDOC:
13174
103
  YYDEBUG(1146, *YYCURSOR);
13175
103
  YYFILL(1);
13176
103
  yych = *YYCURSOR;
13177
103
  YYDEBUG(1148, *YYCURSOR);
13178
103
  ++YYCURSOR;
13179
103
  YYDEBUG(1149, *YYCURSOR);
13180
103
  yyleng = YYCURSOR - SCNG(yy_text);
13181
103
#line 3088 "Zend/zend_language_scanner.l"
13182
103
  {
13183
103
  zend_heredoc_label *heredoc_label = zend_ptr_stack_top(&SCNG(heredoc_label_stack));
13184
103
  int newline = 0, indentation = 0, spacing = -1;
13185
13186
103
  if (YYCURSOR > YYLIMIT) {
13187
34
    RETURN_END_TOKEN;
13188
34
  }
13189
13190
69
  YYCURSOR--;
13191
13192
2.82k
  while (YYCURSOR < YYLIMIT) {
13193
2.80k
    switch (*YYCURSOR++) {
13194
25
      case '\r':
13195
25
        if (*YYCURSOR == '\n') {
13196
2
          YYCURSOR++;
13197
2
        }
13198
25
        ZEND_FALLTHROUGH;
13199
235
      case '\n':
13200
235
        indentation = spacing = 0;
13201
13202
385
        while (YYCURSOR < YYLIMIT && (*YYCURSOR == ' ' || *YYCURSOR == '\t')) {
13203
150
          if (*YYCURSOR == '\t') {
13204
20
            spacing |= HEREDOC_USING_TABS;
13205
130
          } else {
13206
130
            spacing |= HEREDOC_USING_SPACES;
13207
130
          }
13208
150
          ++YYCURSOR;
13209
150
          ++indentation;
13210
150
        }
13211
13212
235
        if (YYCURSOR == YYLIMIT) {
13213
11
          yyleng = YYCURSOR - SCNG(yy_text);
13214
11
          HANDLE_NEWLINES(yytext, yyleng);
13215
11
          ZVAL_NULL(zendlval);
13216
11
          RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
13217
11
        }
13218
13219
        /* Check for ending label on the next line */
13220
224
        if (IS_LABEL_START(*YYCURSOR) && heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, heredoc_label->label, heredoc_label->length)) {
13221
34
          if (IS_LABEL_SUCCESSOR(YYCURSOR[heredoc_label->length])) {
13222
4
            continue;
13223
4
          }
13224
13225
30
          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
29
          if (YYCURSOR[-indentation - 2] == '\r' && YYCURSOR[-indentation - 1] == '\n') {
13235
0
            newline = 2; /* Windows newline */
13236
29
          } else {
13237
29
            newline = 1;
13238
29
          }
13239
13240
29
          CG(increment_lineno) = 1; /* For newline before label */
13241
13242
29
          YYCURSOR -= indentation;
13243
29
          heredoc_label->indentation = indentation;
13244
13245
29
          BEGIN(ST_END_HEREDOC);
13246
13247
29
          goto nowdoc_scan_done;
13248
30
        }
13249
190
        ZEND_FALLTHROUGH;
13250
2.75k
      default:
13251
2.75k
        continue;
13252
2.80k
    }
13253
2.80k
  }
13254
13255
57
nowdoc_scan_done:
13256
57
  yyleng = YYCURSOR - SCNG(yy_text);
13257
57
  ZVAL_STRINGL(zendlval, yytext, yyleng - newline);
13258
13259
57
  if (!EG(exception) && spacing != -1 && PARSER_MODE()) {
13260
40
    bool newline_at_start = *(yytext - 1) == '\n' || *(yytext - 1) == '\r';
13261
40
    if (!strip_multiline_string_indentation(
13262
40
        zendlval, indentation, spacing == HEREDOC_USING_SPACES,
13263
40
        newline_at_start, newline != 0)) {
13264
7
      RETURN_TOKEN(T_ERROR);
13265
7
    }
13266
40
  }
13267
13268
50
  HANDLE_NEWLINES(yytext, yyleng - newline);
13269
50
  RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
13270
50
}
13271
50
#line 13272 "Zend/zend_language_scanner.c"
13272
50
}
13273
0
#line 3187 "Zend/zend_language_scanner.l"
13274
13275
13276
114k
emit_token_with_str:
13277
114k
  zend_copy_value(zendlval, (yytext + offset), (yyleng - offset));
13278
13279
169k
emit_token_with_val:
13280
169k
  if (PARSER_MODE()) {
13281
49.3k
    ZEND_ASSERT(Z_TYPE_P(zendlval) != IS_UNDEF);
13282
49.3k
    elem->ast = zend_ast_create_zval_with_lineno(zendlval, start_line);
13283
49.3k
  }
13284
13285
542k
emit_token:
13286
542k
  if (SCNG(on_event)) {
13287
0
    SCNG(on_event)(ON_TOKEN, token, start_line, yytext, yyleng, SCNG(on_event_context));
13288
0
  }
13289
542k
  return token;
13290
13291
18.8k
emit_token_with_ident:
13292
18.8k
  if (PARSER_MODE()) {
13293
13.5k
    elem->ident = SCNG(yy_text);
13294
13.5k
  }
13295
18.8k
  if (SCNG(on_event)) {
13296
0
    SCNG(on_event)(ON_TOKEN, token, start_line, yytext, yyleng, SCNG(on_event_context));
13297
0
  }
13298
18.8k
  return token;
13299
13300
115k
return_whitespace:
13301
115k
  HANDLE_NEWLINES(yytext, yyleng);
13302
115k
  if (SCNG(on_event)) {
13303
0
    SCNG(on_event)(ON_TOKEN, T_WHITESPACE, start_line, yytext, yyleng, SCNG(on_event_context));
13304
0
  }
13305
115k
  if (PARSER_MODE()) {
13306
50.3k
    start_line = CG(zend_lineno);
13307
50.3k
    goto restart;
13308
65.5k
  } else {
13309
65.5k
    return T_WHITESPACE;
13310
65.5k
  }
13311
13312
8.63k
skip_token:
13313
8.63k
  if (SCNG(on_event)) {
13314
0
    SCNG(on_event)(ON_TOKEN, token, start_line, yytext, yyleng, SCNG(on_event_context));
13315
0
  }
13316
8.63k
  start_line = CG(zend_lineno);
13317
8.63k
  goto restart;
13318
115k
}