Coverage Report

Created: 2026-01-18 06:48

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
449k
#define YYCTYPE   unsigned char
54
1.28M
#define YYFILL(n) { if ((YYCURSOR + n) >= (YYLIMIT + ZEND_MMAP_AHEAD)) { return 0; } }
55
10.0M
#define YYCURSOR  SCNG(yy_cursor)
56
3.63M
#define YYLIMIT   SCNG(yy_limit)
57
482k
#define YYMARKER  SCNG(yy_marker)
58
59
1.44M
#define YYGETCONDITION()  SCNG(yy_state)
60
109k
#define YYSETCONDITION(s) SCNG(yy_state) = s
61
62
#define STATE(name)  yyc##name
63
64
/* emulate flex constructs */
65
22.6k
#define BEGIN(state) YYSETCONDITION(STATE(state))
66
647
#define YYSTATE      YYGETCONDITION()
67
121k
#define yytext       ((char*)SCNG(yy_text))
68
561k
#define yyleng       SCNG(yy_leng)
69
28.3k
#define yyless(x)    do { YYCURSOR = (unsigned char*)yytext + x; \
70
28.3k
                          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.1M
#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
68.9k
#define HANDLE_NEWLINES(s, l)                         \
97
68.9k
do {                                     \
98
68.9k
  char *p = (s), *boundary = p+(l);                     \
99
68.9k
                                        \
100
1.47M
  while (p<boundary) {                           \
101
1.40M
    if (*p == '\n' || (*p == '\r' && (*(p+1) != '\n'))) {         \
102
89.3k
      CG(zend_lineno)++;                          \
103
89.3k
    }                                    \
104
1.40M
    p++;                                  \
105
1.40M
  }                                      \
106
68.9k
} while (0)
107
108
6.37k
#define HANDLE_NEWLINE(c) \
109
6.37k
{ \
110
6.37k
  if (c == '\n' || c == '\r') { \
111
371
    CG(zend_lineno)++; \
112
371
  } \
113
6.37k
}
114
115
/* To save initial string length after scanning to first variable */
116
2.19k
#define SET_DOUBLE_QUOTES_SCANNED_LENGTH(len) SCNG(scanned_string_len) = (len)
117
5.85k
#define GET_DOUBLE_QUOTES_SCANNED_LENGTH()    SCNG(scanned_string_len)
118
119
141k
#define IS_LABEL_START(c) (((c) >= 'a' && (c) <= 'z') || ((c) >= 'A' && (c) <= 'Z') || (c) == '_' || (c) >= 0x80)
120
557
#define IS_LABEL_SUCCESSOR(c) (((c) >= 'a' && (c) <= 'z') || ((c) >= 'A' && (c) <= 'Z') || ((c) >= '0' && (c) <= '9') || (c) == '_' || (c) >= 0x80)
121
122
1.04k
#define ZEND_IS_OCT(c)  ((c)>='0' && (c)<='7')
123
90
#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
0
{
128
0
  char *src = str, *dest = str;
129
0
  while (*src != '\0') {
130
0
    if (*src != '_') {
131
0
      *dest = *src;
132
0
      dest++;
133
0
    } else {
134
0
      --(*len);
135
0
    }
136
0
    src++;
137
0
  }
138
0
  *dest = '\0';
139
0
}
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
58.1k
{
170
58.1k
  zend_stack_push(&SCNG(state_stack), (void *) &YYGETCONDITION());
171
58.1k
  YYSETCONDITION(new_state);
172
58.1k
}
173
174
58.1k
#define yy_push_state(state_and_tsrm) _yy_push_state(yyc##state_and_tsrm)
175
176
static void yy_pop_state(void)
177
28.0k
{
178
28.0k
  int *stack_state = zend_stack_top(&SCNG(state_stack));
179
28.0k
  YYSETCONDITION(*stack_state);
180
28.0k
  zend_stack_del_top(&SCNG(state_stack));
181
28.0k
}
182
183
static void yy_scan_buffer(char *str, size_t len)
184
142
{
185
142
  YYCURSOR       = (YYCTYPE*)str;
186
142
  YYLIMIT        = YYCURSOR + len;
187
142
  if (!SCNG(yy_start)) {
188
43
    SCNG(yy_start) = YYCURSOR;
189
43
  }
190
142
}
191
192
void startup_scanner(void)
193
130
{
194
130
  CG(parse_error) = 0;
195
130
  CG(doc_comment) = NULL;
196
130
  CG(extra_fn_flags) = 0;
197
130
  zend_stack_init(&SCNG(state_stack), sizeof(int));
198
130
  zend_stack_init(&SCNG(nest_location_stack), sizeof(zend_nest_location));
199
130
  zend_ptr_stack_init(&SCNG(heredoc_label_stack));
200
130
  SCNG(heredoc_scan_ahead) = 0;
201
130
}
202
203
40.3k
static void heredoc_label_dtor(zend_heredoc_label *heredoc_label) {
204
40.3k
    efree(heredoc_label->label);
205
40.3k
}
206
207
void shutdown_scanner(void)
208
130
{
209
130
  CG(parse_error) = 0;
210
130
  RESET_DOC_COMMENT();
211
130
  zend_stack_destroy(&SCNG(state_stack));
212
130
  zend_stack_destroy(&SCNG(nest_location_stack));
213
130
  zend_ptr_stack_clean(&SCNG(heredoc_label_stack), (void (*)(void *)) &heredoc_label_dtor, 1);
214
130
  zend_ptr_stack_destroy(&SCNG(heredoc_label_stack));
215
130
  SCNG(heredoc_scan_ahead) = 0;
216
130
  SCNG(on_event) = NULL;
217
130
  SCNG(on_event_context) = NULL;
218
130
}
219
220
ZEND_API void zend_save_lexical_state(zend_lex_state *lex_state)
221
647
{
222
647
  lex_state->yy_leng   = SCNG(yy_leng);
223
647
  lex_state->yy_start  = SCNG(yy_start);
224
647
  lex_state->yy_text   = SCNG(yy_text);
225
647
  lex_state->yy_cursor = SCNG(yy_cursor);
226
647
  lex_state->yy_marker = SCNG(yy_marker);
227
647
  lex_state->yy_limit  = SCNG(yy_limit);
228
229
647
  lex_state->state_stack = SCNG(state_stack);
230
647
  zend_stack_init(&SCNG(state_stack), sizeof(int));
231
232
647
  lex_state->nest_location_stack = SCNG(nest_location_stack);
233
647
  zend_stack_init(&SCNG(nest_location_stack), sizeof(zend_nest_location));
234
235
647
  lex_state->heredoc_label_stack = SCNG(heredoc_label_stack);
236
647
  zend_ptr_stack_init(&SCNG(heredoc_label_stack));
237
238
647
  lex_state->in = SCNG(yy_in);
239
647
  lex_state->yy_state = YYSTATE;
240
647
  lex_state->filename = CG(compiled_filename);
241
647
  lex_state->lineno = CG(zend_lineno);
242
647
  CG(compiled_filename) = NULL;
243
244
647
  lex_state->script_org = SCNG(script_org);
245
647
  lex_state->script_org_size = SCNG(script_org_size);
246
647
  lex_state->script_filtered = SCNG(script_filtered);
247
647
  lex_state->script_filtered_size = SCNG(script_filtered_size);
248
647
  lex_state->input_filter = SCNG(input_filter);
249
647
  lex_state->output_filter = SCNG(output_filter);
250
647
  lex_state->script_encoding = SCNG(script_encoding);
251
252
647
  lex_state->on_event = SCNG(on_event);
253
647
  lex_state->on_event_context = SCNG(on_event_context);
254
255
647
  lex_state->ast = CG(ast);
256
647
  lex_state->ast_arena = CG(ast_arena);
257
647
}
258
259
ZEND_API void zend_restore_lexical_state(zend_lex_state *lex_state)
260
647
{
261
647
  SCNG(yy_leng)   = lex_state->yy_leng;
262
647
  SCNG(yy_start)  = lex_state->yy_start;
263
647
  SCNG(yy_text)   = lex_state->yy_text;
264
647
  SCNG(yy_cursor) = lex_state->yy_cursor;
265
647
  SCNG(yy_marker) = lex_state->yy_marker;
266
647
  SCNG(yy_limit)  = lex_state->yy_limit;
267
268
647
  zend_stack_destroy(&SCNG(state_stack));
269
647
  SCNG(state_stack) = lex_state->state_stack;
270
271
647
  zend_stack_destroy(&SCNG(nest_location_stack));
272
647
  SCNG(nest_location_stack) = lex_state->nest_location_stack;
273
274
647
  zend_ptr_stack_clean(&SCNG(heredoc_label_stack), (void (*)(void *)) &heredoc_label_dtor, 1);
275
647
  zend_ptr_stack_destroy(&SCNG(heredoc_label_stack));
276
647
  SCNG(heredoc_label_stack) = lex_state->heredoc_label_stack;
277
278
647
  SCNG(yy_in) = lex_state->in;
279
647
  YYSETCONDITION(lex_state->yy_state);
280
647
  CG(zend_lineno) = lex_state->lineno;
281
647
  zend_restore_compiled_filename(lex_state->filename);
282
283
647
  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
647
  SCNG(script_org) = lex_state->script_org;
288
647
  SCNG(script_org_size) = lex_state->script_org_size;
289
647
  SCNG(script_filtered) = lex_state->script_filtered;
290
647
  SCNG(script_filtered_size) = lex_state->script_filtered_size;
291
647
  SCNG(input_filter) = lex_state->input_filter;
292
647
  SCNG(output_filter) = lex_state->output_filter;
293
647
  SCNG(script_encoding) = lex_state->script_encoding;
294
295
647
  SCNG(on_event) = lex_state->on_event;
296
647
  SCNG(on_event_context) = lex_state->on_event_context;
297
298
647
  CG(ast) = lex_state->ast;
299
647
  CG(ast_arena) = lex_state->ast_arena;
300
301
647
  RESET_DOC_COMMENT();
302
647
}
303
304
ZEND_API zend_result zend_lex_tstring(zval *zv, unsigned char *ident)
305
0
{
306
0
  unsigned char *end = ident;
307
0
  while ((*end >= 'a' && *end <= 'z') || (*end >= 'A' && *end <= 'Z') || *end == '_') {
308
0
    end++;
309
0
  }
310
311
0
  size_t length = end - ident;
312
0
  if (length == 0) {
313
0
    ZEND_ASSERT(ident[0] == '<' && ident[1] == '?' && ident[2] == '=');
314
0
    zend_throw_exception(zend_ce_parse_error, "Cannot use \"<?=\" as an identifier", 0);
315
0
    return FAILURE;
316
0
  }
317
318
0
  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
0
  ZVAL_STRINGL(zv, (char *) ident, length);
323
0
  return SUCCESS;
324
0
}
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
99
{
532
99
  char *buf;
533
99
  size_t size;
534
99
  zend_string *compiled_filename;
535
536
99
  if (zend_stream_fixup(file_handle, &buf, &size) == FAILURE) {
537
    /* Still add it to open_files to make destroy_file_handle work */
538
0
    zend_llist_add_element(&CG(open_files), file_handle);
539
0
    file_handle->in_list = 1;
540
0
    return FAILURE;
541
0
  }
542
543
99
  ZEND_ASSERT(!EG(exception) && "stream_fixup() should have failed");
544
99
  zend_llist_add_element(&CG(open_files), file_handle);
545
99
  file_handle->in_list = 1;
546
547
  /* Reset the scanner for scanning the new file */
548
99
  SCNG(yy_in) = file_handle;
549
99
  SCNG(yy_start) = NULL;
550
551
99
  if (size != (size_t)-1) {
552
99
    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
99
    SCNG(yy_start) = (unsigned char *)buf;
569
99
    yy_scan_buffer(buf, size);
570
99
  } else {
571
0
    zend_error_noreturn(E_COMPILE_ERROR, "zend_stream_mmap() failed");
572
0
  }
573
574
99
  if (CG(skip_shebang)) {
575
0
    BEGIN(SHEBANG);
576
99
  } else {
577
99
    BEGIN(INITIAL);
578
99
  }
579
580
99
  if (file_handle->opened_path) {
581
0
    compiled_filename = zend_string_copy(file_handle->opened_path);
582
99
  } else {
583
99
    compiled_filename = zend_string_copy(file_handle->filename);
584
99
  }
585
586
99
  zend_set_compiled_filename(compiled_filename);
587
99
  zend_string_release_ex(compiled_filename, 0);
588
589
99
  SCNG(on_event) = NULL;
590
99
  SCNG(on_event_context) = NULL;
591
99
  RESET_DOC_COMMENT();
592
99
  CG(zend_lineno) = 1;
593
99
  CG(increment_lineno) = 0;
594
99
  return SUCCESS;
595
99
}
596
597
static zend_op_array *zend_compile(int type)
598
110
{
599
110
  zend_op_array *op_array = NULL;
600
110
  bool original_in_compilation = CG(in_compilation);
601
602
110
  CG(in_compilation) = 1;
603
110
  CG(ast) = NULL;
604
110
  CG(ast_arena) = zend_arena_create(1024 * 32);
605
606
110
  if (!zendparse()) {
607
110
    uint32_t last_lineno = CG(zend_lineno);
608
110
    zend_file_context original_file_context;
609
110
    zend_oparray_context original_oparray_context;
610
110
    zend_op_array *original_active_op_array = CG(active_op_array);
611
612
110
    op_array = emalloc(sizeof(zend_op_array));
613
110
    init_op_array(op_array, type, INITIAL_OP_ARRAY_SIZE);
614
110
    CG(active_op_array) = op_array;
615
616
    /* Use heap to not waste arena memory */
617
110
    op_array->fn_flags |= ZEND_ACC_HEAP_RT_CACHE;
618
619
110
    if (zend_ast_process) {
620
0
      zend_ast_process(CG(ast));
621
0
    }
622
623
110
    zend_file_context_begin(&original_file_context);
624
110
    zend_oparray_context_begin(&original_oparray_context, op_array);
625
110
    zend_compile_top_stmt(CG(ast));
626
110
    CG(zend_lineno) = last_lineno;
627
110
    zend_emit_final_return(type == ZEND_USER_FUNCTION);
628
110
    op_array->line_start = 1;
629
110
    op_array->line_end = last_lineno;
630
110
    pass_two(op_array);
631
110
    zend_oparray_context_end(&original_oparray_context);
632
110
    zend_file_context_end(&original_file_context);
633
634
110
    CG(active_op_array) = original_active_op_array;
635
110
  }
636
637
110
  zend_ast_destroy(CG(ast));
638
110
  zend_arena_destroy(CG(ast_arena));
639
640
110
  CG(in_compilation) = original_in_compilation;
641
642
110
  return op_array;
643
110
}
644
645
ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type)
646
99
{
647
99
  zend_lex_state original_lex_state;
648
99
  zend_op_array *op_array = NULL;
649
99
  zend_save_lexical_state(&original_lex_state);
650
651
99
  if (open_file_for_scanning(file_handle)==FAILURE) {
652
0
    if (!EG(exception)) {
653
0
      if (type==ZEND_REQUIRE) {
654
0
        zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, ZSTR_VAL(file_handle->filename));
655
0
      } else {
656
0
        zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, ZSTR_VAL(file_handle->filename));
657
0
      }
658
0
    }
659
99
  } else {
660
99
    bool orig_record_errors = EG(record_errors);
661
99
    if (!orig_record_errors) {
662
0
      zend_begin_record_errors();
663
0
    }
664
665
99
    op_array = zend_compile(ZEND_USER_FUNCTION);
666
667
99
    if (!orig_record_errors) {
668
0
      zend_emit_recorded_errors();
669
0
      zend_free_recorded_errors();
670
0
    }
671
99
  }
672
673
99
  zend_restore_lexical_state(&original_lex_state);
674
99
  return op_array;
675
99
}
676
677
ZEND_API zend_ast *zend_compile_string_to_ast(
678
0
    zend_string *code, zend_arena **ast_arena, zend_string *filename) {
679
0
  zval code_zv;
680
0
  bool original_in_compilation;
681
0
  zend_lex_state original_lex_state;
682
0
  zend_ast *ast;
683
684
0
  ZVAL_STR_COPY(&code_zv, code);
685
686
0
  original_in_compilation = CG(in_compilation);
687
0
  CG(in_compilation) = 1;
688
689
0
  zend_save_lexical_state(&original_lex_state);
690
0
  zend_prepare_string_for_scanning(&code_zv, filename);
691
0
  CG(ast) = NULL;
692
0
  CG(ast_arena) = zend_arena_create(1024 * 32);
693
0
  LANG_SCNG(yy_state) = yycINITIAL;
694
695
0
  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
0
  ast = CG(ast);
703
0
  *ast_arena = CG(ast_arena);
704
705
0
  zend_restore_lexical_state(&original_lex_state);
706
0
  CG(in_compilation) = original_in_compilation;
707
708
0
  zval_ptr_dtor_str(&code_zv);
709
710
0
  return ast;
711
0
}
712
713
zend_op_array *compile_filename(int type, zend_string *filename)
714
182
{
715
182
  zend_file_handle file_handle;
716
182
  zend_op_array *retval;
717
182
  zend_string *opened_path = NULL;
718
719
182
  zend_stream_init_filename_ex(&file_handle, filename);
720
721
182
  retval = zend_compile_file(&file_handle, type);
722
182
  if (retval && file_handle.handle.stream.handle) {
723
0
    if (!file_handle.opened_path) {
724
0
      file_handle.opened_path = opened_path = zend_string_copy(filename);
725
0
    }
726
727
0
    zend_hash_add_empty_element(&EG(included_files), file_handle.opened_path);
728
729
0
    if (opened_path) {
730
0
      zend_string_release_ex(opened_path, 0);
731
0
    }
732
0
  }
733
182
  zend_destroy_file_handle(&file_handle);
734
735
182
  return retval;
736
182
}
737
738
ZEND_API void zend_prepare_string_for_scanning(zval *str, zend_string *filename)
739
43
{
740
43
  char *buf;
741
43
  size_t size, old_len;
742
743
  /* enforce ZEND_MMAP_AHEAD trailing NULLs for flex... */
744
43
  old_len = Z_STRLEN_P(str);
745
43
  Z_STR_P(str) = zend_string_extend(Z_STR_P(str), old_len + ZEND_MMAP_AHEAD, 0);
746
43
  Z_TYPE_INFO_P(str) = IS_STRING_EX;
747
43
  memset(Z_STRVAL_P(str) + old_len, 0, ZEND_MMAP_AHEAD + 1);
748
749
43
  SCNG(yy_in) = NULL;
750
43
  SCNG(yy_start) = NULL;
751
752
43
  buf = Z_STRVAL_P(str);
753
43
  size = old_len;
754
755
43
  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
43
  yy_scan_buffer(buf, size);
773
43
  zend_set_compiled_filename(filename);
774
43
  CG(zend_lineno) = 1;
775
43
  CG(increment_lineno) = 0;
776
43
  SCNG(on_event) = NULL;
777
43
  SCNG(on_event_context) = NULL;
778
43
  RESET_DOC_COMMENT();
779
43
}
780
781
782
ZEND_API size_t zend_get_scanned_file_offset(void)
783
0
{
784
0
  size_t offset = SCNG(yy_cursor) - SCNG(yy_start);
785
0
  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
0
  return offset;
801
0
}
802
803
zend_op_array *compile_string(zend_string *source_string, const char *filename, zend_compile_position position)
804
11
{
805
11
  zend_lex_state original_lex_state;
806
11
  zend_op_array *op_array = NULL;
807
11
  zval tmp;
808
11
  zend_string *filename_str;
809
810
11
  if (ZSTR_LEN(source_string) == 0) {
811
0
    return NULL;
812
0
  }
813
814
11
  ZVAL_STR_COPY(&tmp, source_string);
815
816
11
  zend_save_lexical_state(&original_lex_state);
817
11
  filename_str = zend_string_init(filename, strlen(filename), 0);
818
11
  zend_prepare_string_for_scanning(&tmp, filename_str);
819
11
  zend_string_release(filename_str);
820
821
11
  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
11
    case ZEND_COMPILE_POSITION_AFTER_OPEN_TAG:
829
11
      BEGIN(ST_IN_SCRIPTING);
830
11
      break;
831
11
  }
832
833
11
  op_array = zend_compile(ZEND_EVAL_CODE);
834
835
11
  zend_restore_lexical_state(&original_lex_state);
836
11
  zval_ptr_dtor(&tmp);
837
838
11
  return op_array;
839
11
}
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
32
{
867
32
  zend_lex_state original_lex_state;
868
32
  zval str_zv;
869
32
  zend_string *filename_str = zend_string_init(filename, strlen(filename), 0);
870
32
  ZVAL_STR_COPY(&str_zv, str);
871
32
  zend_save_lexical_state(&original_lex_state);
872
32
  zend_prepare_string_for_scanning(&str_zv, filename_str);
873
32
  zend_string_release(filename_str);
874
32
  BEGIN(INITIAL);
875
32
  zend_highlight(syntax_highlighter_ini);
876
32
  if (SCNG(script_filtered)) {
877
0
    efree(SCNG(script_filtered));
878
0
    SCNG(script_filtered) = NULL;
879
0
  }
880
32
  zend_restore_lexical_state(&original_lex_state);
881
32
  zval_ptr_dtor(&str_zv);
882
32
}
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
78.3k
  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
78.3k
  } else if (yyleng == 1) { \
928
19.0k
    ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR((zend_uchar)*(yytext))); \
929
59.3k
  } else { \
930
59.3k
    ZVAL_STRINGL(zendlval, yytext, yyleng); \
931
59.3k
  }
932
933
static zend_result zend_scan_escape_string(zval *zendlval, char *str, size_t len, char quote_type)
934
9.73k
{
935
9.73k
  char *s, *t;
936
9.73k
  char *end;
937
938
9.73k
  if (len <= 1) {
939
6.07k
    if (len < 1) {
940
195
      ZVAL_EMPTY_STRING(zendlval);
941
5.87k
    } else {
942
5.87k
      zend_uchar c = (zend_uchar)*str;
943
5.87k
      HANDLE_NEWLINE(c);
944
5.87k
      ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR(c));
945
5.87k
    }
946
6.07k
    goto skip_escape_conversion;
947
6.07k
  }
948
949
3.65k
  ZVAL_STRINGL(zendlval, str, len);
950
951
  /* convert escape sequences */
952
3.65k
  s = Z_STRVAL_P(zendlval);
953
3.65k
  end = s+Z_STRLEN_P(zendlval);
954
117k
  while (1) {
955
117k
    if (UNEXPECTED(*s=='\\')) {
956
997
      break;
957
997
    }
958
116k
    if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
959
1.93k
      CG(zend_lineno)++;
960
1.93k
    }
961
116k
    s++;
962
116k
    if (s == end) {
963
2.66k
      goto skip_escape_conversion;
964
2.66k
    }
965
116k
  }
966
967
997
  t = s;
968
45.6k
  while (s<end) {
969
44.6k
    if (*s=='\\') {
970
1.23k
      s++;
971
1.23k
      if (s >= end) {
972
0
        *t++ = '\\';
973
0
        break;
974
0
      }
975
976
1.23k
      switch(*s) {
977
46
        case 'n':
978
46
          *t++ = '\n';
979
46
          break;
980
0
        case 'r':
981
0
          *t++ = '\r';
982
0
          break;
983
0
        case 't':
984
0
          *t++ = '\t';
985
0
          break;
986
0
        case 'f':
987
0
          *t++ = '\f';
988
0
          break;
989
0
        case 'v':
990
0
          *t++ = '\v';
991
0
          break;
992
0
        case 'e':
993
#ifdef ZEND_WIN32
994
          *t++ = VK_ESCAPE;
995
#else
996
0
          *t++ = '\e';
997
0
#endif
998
0
          break;
999
30
        case '"':
1000
31
        case '`':
1001
31
          if (*s != quote_type) {
1002
1
            *t++ = '\\';
1003
1
            *t++ = *s;
1004
1
            break;
1005
1
          }
1006
30
          ZEND_FALLTHROUGH;
1007
87
        case '\\':
1008
177
        case '$':
1009
177
          *t++ = *s;
1010
177
          break;
1011
47
        case 'x':
1012
47
        case 'X':
1013
47
          if (ZEND_IS_HEX(*(s+1))) {
1014
43
            char hex_buf[3] = { 0, 0, 0 };
1015
1016
43
            hex_buf[0] = *(++s);
1017
43
            if (ZEND_IS_HEX(*(s+1))) {
1018
25
              hex_buf[1] = *(++s);
1019
25
            }
1020
43
            *t++ = (char) ZEND_STRTOL(hex_buf, NULL, 16);
1021
43
          } else {
1022
4
            *t++ = '\\';
1023
4
            *t++ = *s;
1024
4
          }
1025
47
          break;
1026
        /* UTF-8 codepoint escape, format: /\\u\{\x+\}/ */
1027
0
        case 'u':
1028
0
          {
1029
            /* cache where we started so we can parse after validating */
1030
0
            char *start = s + 1;
1031
0
            size_t len = 0;
1032
0
            bool valid = 1;
1033
0
            unsigned long codepoint;
1034
1035
0
            if (*start != '{') {
1036
              /* we silently let this pass to avoid breaking code
1037
               * with JSON in string literals (e.g. "\"\u202e\""
1038
               */
1039
0
              *t++ = '\\';
1040
0
              *t++ = 'u';
1041
0
              break;
1042
0
            } else {
1043
              /* on the other hand, invalid \u{blah} errors */
1044
0
              s++;
1045
0
              len++;
1046
0
              s++;
1047
0
              while (*s != '}') {
1048
0
                if (!ZEND_IS_HEX(*s)) {
1049
0
                  valid = 0;
1050
0
                  break;
1051
0
                } else {
1052
0
                  len++;
1053
0
                }
1054
0
                s++;
1055
0
              }
1056
0
              if (*s == '}') {
1057
0
                valid = 1;
1058
0
                len++;
1059
0
              }
1060
0
            }
1061
1062
            /* \u{} is invalid */
1063
0
            if (len <= 2) {
1064
0
              valid = 0;
1065
0
            }
1066
1067
0
            if (!valid) {
1068
0
              zend_throw_exception(zend_ce_parse_error,
1069
0
                "Invalid UTF-8 codepoint escape sequence", 0);
1070
0
              zval_ptr_dtor(zendlval);
1071
0
              ZVAL_UNDEF(zendlval);
1072
0
              return FAILURE;
1073
0
            }
1074
1075
0
            errno = 0;
1076
0
            codepoint = strtoul(start + 1, NULL, 16);
1077
1078
            /* per RFC 3629, UTF-8 can only represent 21 bits */
1079
0
            if (codepoint > 0x10FFFF || errno) {
1080
0
              zend_throw_exception(zend_ce_parse_error,
1081
0
                "Invalid UTF-8 codepoint escape sequence: Codepoint too large", 0);
1082
0
              zval_ptr_dtor(zendlval);
1083
0
              ZVAL_UNDEF(zendlval);
1084
0
              return FAILURE;
1085
0
            }
1086
1087
            /* based on https://en.wikipedia.org/wiki/UTF-8#Sample_code */
1088
0
            if (codepoint < 0x80) {
1089
0
              *t++ = codepoint;
1090
0
            } else if (codepoint <= 0x7FF) {
1091
0
              *t++ = (codepoint >> 6) + 0xC0;
1092
0
              *t++ = (codepoint & 0x3F) + 0x80;
1093
0
            } else if (codepoint <= 0xFFFF) {
1094
0
              *t++ = (codepoint >> 12) + 0xE0;
1095
0
              *t++ = ((codepoint >> 6) & 0x3F) + 0x80;
1096
0
              *t++ = (codepoint & 0x3F) + 0x80;
1097
0
            } else if (codepoint <= 0x10FFFF) {
1098
0
              *t++ = (codepoint >> 18) + 0xF0;
1099
0
              *t++ = ((codepoint >> 12) & 0x3F) + 0x80;
1100
0
              *t++ = ((codepoint >> 6) & 0x3F) + 0x80;
1101
0
              *t++ = (codepoint & 0x3F) + 0x80;
1102
0
            }
1103
0
          }
1104
0
          break;
1105
960
        default:
1106
          /* check for an octal */
1107
960
          if (ZEND_IS_OCT(*s)) {
1108
70
            char octal_buf[4] = { 0, 0, 0, 0 };
1109
1110
70
            octal_buf[0] = *s;
1111
70
            if (ZEND_IS_OCT(*(s+1))) {
1112
15
              octal_buf[1] = *(++s);
1113
15
              if (ZEND_IS_OCT(*(s+1))) {
1114
0
                octal_buf[2] = *(++s);
1115
0
              }
1116
15
            }
1117
70
            if (octal_buf[2] && (octal_buf[0] > '3') && !SCNG(heredoc_scan_ahead)) {
1118
              /* 3 octit values must not overflow 0xFF (\377) */
1119
0
              zend_error(E_COMPILE_WARNING, "Octal escape sequence overflow \\%s is greater than \\377", octal_buf);
1120
0
            }
1121
1122
70
            *t++ = (char) ZEND_STRTOL(octal_buf, NULL, 8);
1123
890
          } else {
1124
890
            *t++ = '\\';
1125
890
            *t++ = *s;
1126
890
          }
1127
960
          break;
1128
1.23k
      }
1129
43.3k
    } else {
1130
43.3k
      *t++ = *s;
1131
43.3k
    }
1132
1133
44.6k
    if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
1134
3.86k
      CG(zend_lineno)++;
1135
3.86k
    }
1136
44.6k
    s++;
1137
44.6k
  }
1138
997
  *t = 0;
1139
997
  Z_STRLEN_P(zendlval) = t - Z_STRVAL_P(zendlval);
1140
1141
9.73k
skip_escape_conversion:
1142
9.73k
  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
9.73k
  return SUCCESS;
1153
997
}
1154
1155
19.7k
#define HEREDOC_USING_SPACES 1
1156
11
#define HEREDOC_USING_TABS 2
1157
1158
3.07k
static const char *next_newline(const char *str, const char *end, size_t *newline_len) {
1159
51.0k
  for (; str < end; str++) {
1160
50.4k
    if (*str == '\r') {
1161
255
      *newline_len = str + 1 < end && *(str + 1) == '\n' ? 2 : 1;
1162
255
      return str;
1163
50.1k
    } else if (*str == '\n') {
1164
2.18k
      *newline_len = 1;
1165
2.18k
      return str;
1166
2.18k
    }
1167
50.4k
  }
1168
630
  *newline_len = 0;
1169
630
  return NULL;
1170
3.07k
}
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
623
{
1176
623
  const char *str = Z_STRVAL_P(zendlval), *end = str + Z_STRLEN_P(zendlval);
1177
623
  char *copy = Z_STRVAL_P(zendlval);
1178
1179
623
  uint32_t newline_count = 0;
1180
623
  size_t newline_len;
1181
623
  const char *nl;
1182
1183
623
  if (!newline_at_start) {
1184
616
    nl = next_newline(str, end, &newline_len);
1185
616
    if (!nl) {
1186
594
      return 1;
1187
594
    }
1188
1189
22
    str = nl + newline_len;
1190
22
    copy = (char *) nl + newline_len;
1191
22
    newline_count++;
1192
22
  } else {
1193
7
    nl = str;
1194
7
  }
1195
1196
  /* <= intentional */
1197
2.45k
  while (str <= end && nl) {
1198
2.45k
    size_t skip;
1199
2.45k
    nl = next_newline(str, end, &newline_len);
1200
2.45k
    if (!nl && newline_at_end) {
1201
14
      nl = end;
1202
14
    }
1203
1204
    /* Try to skip indentation */
1205
2.45k
    for (skip = 0; skip < indentation; skip++, str++) {
1206
0
      if (str == nl) {
1207
        /* Don't require full indentation on whitespace-only lines */
1208
0
        break;
1209
0
      }
1210
1211
0
      if (str == end || (*str != ' ' && *str != '\t')) {
1212
0
        CG(zend_lineno) += newline_count;
1213
0
        zend_throw_exception_ex(zend_ce_parse_error, 0,
1214
0
          "Invalid body indentation level (expecting an indentation level of at least %d)", indentation);
1215
0
        goto error;
1216
0
      }
1217
1218
0
      if ((!using_spaces && *str == ' ') || (using_spaces && *str == '\t')) {
1219
0
        CG(zend_lineno) += newline_count;
1220
0
        zend_throw_exception(zend_ce_parse_error,
1221
0
          "Invalid indentation - tabs and spaces cannot be mixed", 0);
1222
0
        goto error;
1223
0
      }
1224
0
    }
1225
1226
2.45k
    if (str == end) {
1227
29
      break;
1228
29
    }
1229
1230
2.42k
    size_t len = nl ? (nl - str + newline_len) : (end - str);
1231
2.42k
    memmove(copy, str, len);
1232
2.42k
    str += len;
1233
2.42k
    copy += len;
1234
2.42k
    newline_count++;
1235
2.42k
  }
1236
1237
29
  *copy = '\0';
1238
29
  Z_STRLEN_P(zendlval) = copy - Z_STRVAL_P(zendlval);
1239
29
  return 1;
1240
1241
0
error:
1242
0
  zval_ptr_dtor_str(zendlval);
1243
0
  ZVAL_UNDEF(zendlval);
1244
1245
0
  return 0;
1246
29
}
1247
1248
static void copy_heredoc_label_stack(void *void_heredoc_label)
1249
20.2k
{
1250
20.2k
  zend_heredoc_label *heredoc_label = void_heredoc_label;
1251
20.2k
  zend_heredoc_label *new_heredoc_label = emalloc(sizeof(zend_heredoc_label));
1252
1253
20.2k
  *new_heredoc_label = *heredoc_label;
1254
20.2k
  new_heredoc_label->label = estrndup(heredoc_label->label, heredoc_label->length);
1255
1256
20.2k
  zend_ptr_stack_push(&SCNG(heredoc_label_stack), (void *) new_heredoc_label);
1257
20.2k
}
1258
1259
/* Check that { }, [ ], ( ) are nested correctly */
1260
static void report_bad_nesting(char opening, uint32_t opening_lineno, char closing)
1261
613
{
1262
613
  char   buf[256];
1263
613
  size_t used = 0;
1264
1265
613
  used = snprintf(buf, sizeof(buf), "Unclosed '%c'", opening);
1266
1267
613
  if (opening_lineno != CG(zend_lineno)) {
1268
253
    used += snprintf(buf + used, sizeof(buf) - used, " on line %d", opening_lineno);
1269
253
  }
1270
1271
613
  if (closing) {   /* 'closing' will be 0 if at end of file */
1272
421
    used += snprintf(buf + used, sizeof(buf) - used, " does not match '%c'", closing);
1273
421
  }
1274
1275
613
  zend_throw_exception(zend_ce_parse_error, buf, 0);
1276
613
}
1277
1278
static void enter_nesting(char opening)
1279
45.6k
{
1280
45.6k
  zend_nest_location nest_loc = {opening, CG(zend_lineno)};
1281
45.6k
  zend_stack_push(&SCNG(nest_location_stack), &nest_loc);
1282
45.6k
}
1283
1284
static zend_result exit_nesting(char closing)
1285
5.51k
{
1286
5.51k
  if (zend_stack_is_empty(&SCNG(nest_location_stack))) {
1287
89
    zend_throw_exception_ex(zend_ce_parse_error, 0, "Unmatched '%c'", closing);
1288
89
    return FAILURE;
1289
89
  }
1290
1291
5.42k
  zend_nest_location *nest_loc = zend_stack_top(&SCNG(nest_location_stack));
1292
5.42k
  char opening = nest_loc->text;
1293
1294
5.42k
  if ((opening == '{' && closing != '}') ||
1295
5.06k
      (opening == '[' && closing != ']') ||
1296
5.03k
      (opening == '(' && closing != ')')) {
1297
421
    report_bad_nesting(opening, nest_loc->lineno, closing);
1298
421
    return FAILURE;
1299
421
  }
1300
1301
5.00k
  zend_stack_del_top(&SCNG(nest_location_stack));
1302
5.00k
  return SUCCESS;
1303
5.42k
}
1304
1305
static zend_result check_nesting_at_end(void)
1306
302
{
1307
302
  if (!zend_stack_is_empty(&SCNG(nest_location_stack))) {
1308
192
    zend_nest_location *nest_loc = zend_stack_top(&SCNG(nest_location_stack));
1309
192
    report_bad_nesting(nest_loc->text, nest_loc->lineno, 0);
1310
192
    return FAILURE;
1311
192
  }
1312
1313
110
  return SUCCESS;
1314
302
}
1315
1316
#define PARSER_MODE() \
1317
193k
  EXPECTED(elem != NULL)
1318
1319
234k
#define RETURN_TOKEN(_token) do { \
1320
234k
    token = _token; \
1321
234k
    goto emit_token; \
1322
234k
  } while (0)
1323
1324
28.8k
#define RETURN_TOKEN_WITH_VAL(_token) do { \
1325
28.8k
    token = _token; \
1326
28.8k
    goto emit_token_with_val; \
1327
28.8k
  } while (0)
1328
1329
78.3k
#define RETURN_TOKEN_WITH_STR(_token, _offset) do { \
1330
78.3k
    token = _token; \
1331
78.3k
    offset = _offset; \
1332
78.3k
    goto emit_token_with_str; \
1333
78.3k
  } while (0)
1334
1335
11.8k
#define RETURN_TOKEN_WITH_IDENT(_token) do { \
1336
11.8k
    token = _token; \
1337
11.8k
    goto emit_token_with_ident; \
1338
11.8k
  } while (0)
1339
1340
13.4k
#define RETURN_OR_SKIP_TOKEN(_token) do { \
1341
13.4k
    token = _token; \
1342
13.4k
    if (PARSER_MODE()) { \
1343
1.41k
      goto skip_token; \
1344
1.41k
    } \
1345
13.4k
    goto emit_token; \
1346
13.4k
  } while (0)
1347
1348
5.51k
#define RETURN_EXIT_NESTING_TOKEN(_token) do { \
1349
5.51k
    if (exit_nesting(_token) != SUCCESS && PARSER_MODE()) { \
1350
0
      RETURN_TOKEN(T_ERROR); \
1351
5.51k
    } else { \
1352
5.51k
      RETURN_TOKEN(_token); \
1353
5.51k
    } \
1354
5.51k
  } while(0)
1355
1356
302
#define RETURN_END_TOKEN do { \
1357
302
    if (check_nesting_at_end() != SUCCESS && PARSER_MODE()) { \
1358
0
      RETURN_TOKEN(T_ERROR); \
1359
302
    } else { \
1360
302
      RETURN_TOKEN(END); \
1361
302
    } \
1362
302
  } while (0)
1363
1364
int ZEND_FASTCALL lex_scan(zval *zendlval, zend_parser_stack_elem *elem)
1365
416k
{
1366
416k
int token;
1367
416k
int offset;
1368
416k
uint32_t start_line = CG(zend_lineno);
1369
1370
416k
  ZVAL_UNDEF(zendlval);
1371
445k
restart:
1372
445k
  SCNG(yy_text) = YYCURSOR;
1373
1374
1375
445k
#line 1376 "Zend/zend_language_scanner.c"
1376
445k
{
1377
445k
  YYCTYPE yych;
1378
445k
  unsigned int yyaccept = 0;
1379
445k
  if (YYGETCONDITION() < 5) {
1380
413k
    if (YYGETCONDITION() < 2) {
1381
362k
      if (YYGETCONDITION() < 1) {
1382
353k
        goto yyc_ST_IN_SCRIPTING;
1383
353k
      } else {
1384
8.52k
        goto yyc_ST_LOOKING_FOR_PROPERTY;
1385
8.52k
      }
1386
362k
    } else {
1387
50.9k
      if (YYGETCONDITION() < 3) {
1388
6.83k
        goto yyc_ST_BACKQUOTE;
1389
44.1k
      } else {
1390
44.1k
        if (YYGETCONDITION() < 4) {
1391
9.56k
          goto yyc_ST_DOUBLE_QUOTES;
1392
34.5k
        } else {
1393
34.5k
          goto yyc_ST_HEREDOC;
1394
34.5k
        }
1395
44.1k
      }
1396
50.9k
    }
1397
413k
  } else {
1398
32.0k
    if (YYGETCONDITION() < 8) {
1399
30.5k
      if (YYGETCONDITION() < 6) {
1400
19.8k
        goto yyc_ST_LOOKING_FOR_VARNAME;
1401
19.8k
      } else {
1402
10.6k
        if (YYGETCONDITION() < 7) {
1403
10.6k
          goto yyc_ST_VAR_OFFSET;
1404
10.6k
        } else {
1405
0
          goto yyc_SHEBANG;
1406
0
        }
1407
10.6k
      }
1408
30.5k
    } else {
1409
1.46k
      if (YYGETCONDITION() < 9) {
1410
1.14k
        goto yyc_INITIAL;
1411
1.14k
      } else {
1412
314
        if (YYGETCONDITION() < 10) {
1413
11
          goto yyc_ST_END_HEREDOC;
1414
303
        } else {
1415
303
          goto yyc_ST_NOWDOC;
1416
303
        }
1417
314
      }
1418
1.46k
    }
1419
32.0k
  }
1420
/* *********************************** */
1421
353k
yyc_ST_IN_SCRIPTING:
1422
353k
  {
1423
353k
    static const unsigned char yybm[] = {
1424
      /* table 1 .. 8: 0 */
1425
353k
        0, 134, 134, 134, 134, 134, 134, 134, 
1426
353k
      134, 135,   4, 134, 134,   4, 134, 134, 
1427
353k
      134, 134, 134, 134, 134, 134, 134, 134, 
1428
353k
      134, 134, 134, 134, 134, 134, 134, 134, 
1429
353k
      135, 134, 134, 134, 134, 134, 134, 134, 
1430
353k
      134, 134,  66, 134, 134, 134, 134, 134, 
1431
353k
      190, 190, 182, 182, 182, 182, 182, 182, 
1432
353k
      166, 166, 134, 134, 134, 134, 134, 134, 
1433
353k
      134, 166, 166, 166, 166, 166, 166, 134, 
1434
353k
      134, 134, 134, 134, 134, 134, 134, 134, 
1435
353k
      134, 134, 134, 134, 134, 134, 134, 134, 
1436
353k
      134, 134, 134, 134, 134, 134, 134, 134, 
1437
353k
      134, 166, 166, 166, 166, 166, 166, 134, 
1438
353k
      134, 134, 134, 134, 134, 134, 134, 134, 
1439
353k
      134, 134, 134, 134, 134, 134, 134, 134, 
1440
353k
      134, 134, 134, 134, 134, 134, 134, 134, 
1441
353k
      134, 134, 134, 134, 134, 134, 134, 134, 
1442
353k
      134, 134, 134, 134, 134, 134, 134, 134, 
1443
353k
      134, 134, 134, 134, 134, 134, 134, 134, 
1444
353k
      134, 134, 134, 134, 134, 134, 134, 134, 
1445
353k
      134, 134, 134, 134, 134, 134, 134, 134, 
1446
353k
      134, 134, 134, 134, 134, 134, 134, 134, 
1447
353k
      134, 134, 134, 134, 134, 134, 134, 134, 
1448
353k
      134, 134, 134, 134, 134, 134, 134, 134, 
1449
353k
      134, 134, 134, 134, 134, 134, 134, 134, 
1450
353k
      134, 134, 134, 134, 134, 134, 134, 134, 
1451
353k
      134, 134, 134, 134, 134, 134, 134, 134, 
1452
353k
      134, 134, 134, 134, 134, 134, 134, 134, 
1453
353k
      134, 134, 134, 134, 134, 134, 134, 134, 
1454
353k
      134, 134, 134, 134, 134, 134, 134, 134, 
1455
353k
      134, 134, 134, 134, 134, 134, 134, 134, 
1456
353k
      134, 134, 134, 134, 134, 134, 134, 134, 
1457
      /* table 9 .. 11: 256 */
1458
353k
        0,   0,   0,   0,   0,   0,   0,   0, 
1459
353k
        0,  32,  32,   0,   0,  32,   0,   0, 
1460
353k
        0,   0,   0,   0,   0,   0,   0,   0, 
1461
353k
        0,   0,   0,   0,   0,   0,   0,   0, 
1462
353k
       32,   0,   0,   0,   0,   0,   0,   0, 
1463
353k
        0,   0,   0,   0,   0,   0,   0,   0, 
1464
353k
      192, 192, 192, 192, 192, 192, 192, 192, 
1465
353k
      192, 192,   0,   0,   0,   0,   0,   0, 
1466
353k
        0, 128, 128, 128, 128, 128, 128, 128, 
1467
353k
      128, 128, 128, 128, 128, 128, 128, 128, 
1468
353k
      128, 128, 128, 128, 128, 128, 128, 128, 
1469
353k
      128, 128, 128,   0,   0,   0,   0, 128, 
1470
353k
        0, 128, 128, 128, 128, 128, 128, 128, 
1471
353k
      128, 128, 128, 128, 128, 128, 128, 128, 
1472
353k
      128, 128, 128, 128, 128, 128, 128, 128, 
1473
353k
      128, 128, 128,   0,   0,   0,   0,   0, 
1474
353k
      128, 128, 128, 128, 128, 128, 128, 128, 
1475
353k
      128, 128, 128, 128, 128, 128, 128, 128, 
1476
353k
      128, 128, 128, 128, 128, 128, 128, 128, 
1477
353k
      128, 128, 128, 128, 128, 128, 128, 128, 
1478
353k
      128, 128, 128, 128, 128, 128, 128, 128, 
1479
353k
      128, 128, 128, 128, 128, 128, 128, 128, 
1480
353k
      128, 128, 128, 128, 128, 128, 128, 128, 
1481
353k
      128, 128, 128, 128, 128, 128, 128, 128, 
1482
353k
      128, 128, 128, 128, 128, 128, 128, 128, 
1483
353k
      128, 128, 128, 128, 128, 128, 128, 128, 
1484
353k
      128, 128, 128, 128, 128, 128, 128, 128, 
1485
353k
      128, 128, 128, 128, 128, 128, 128, 128, 
1486
353k
      128, 128, 128, 128, 128, 128, 128, 128, 
1487
353k
      128, 128, 128, 128, 128, 128, 128, 128, 
1488
353k
      128, 128, 128, 128, 128, 128, 128, 128, 
1489
353k
      128, 128, 128, 128, 128, 128, 128, 128, 
1490
353k
    };
1491
353k
    YYDEBUG(1, *YYCURSOR);
1492
353k
    YYFILL(16);
1493
353k
    yych = *YYCURSOR;
1494
353k
    if (yybm[256+yych] & 32) {
1495
58.1k
      goto yy5;
1496
58.1k
    }
1497
295k
    switch (yych) {
1498
77.5k
    case 0x00:
1499
78.4k
    case 0x01:
1500
79.8k
    case 0x02:
1501
82.0k
    case 0x03:
1502
82.4k
    case 0x04:
1503
85.9k
    case 0x05:
1504
86.0k
    case 0x06:
1505
87.3k
    case 0x07:
1506
87.6k
    case 0x08:
1507
87.6k
    case '\t':
1508
87.6k
    case '\n':
1509
88.1k
    case '\v':
1510
88.7k
    case '\f':
1511
88.7k
    case '\r':
1512
88.7k
    case 0x0E:
1513
89.8k
    case 0x0F:
1514
89.8k
    case 0x10:
1515
89.9k
    case 0x11:
1516
90.0k
    case 0x12:
1517
90.1k
    case 0x13:
1518
93.6k
    case 0x14:
1519
93.6k
    case 0x15:
1520
94.4k
    case 0x16:
1521
94.4k
    case 0x17:
1522
94.4k
    case 0x18:
1523
94.5k
    case 0x19:
1524
94.6k
    case 0x1A:
1525
94.6k
    case 0x1B:
1526
100k
    case 0x1C:
1527
100k
    case 0x1D:
1528
100k
    case 0x1E:
1529
100k
    case 0x1F:
1530
100k
    case 0x7F:  goto yy3;
1531
0
    case ' ':
1532
1.09k
    case '!': goto yy8;
1533
2.11k
    case '"': goto yy10;
1534
9.78k
    case '#': goto yy12;
1535
16.7k
    case '$': goto yy14;
1536
361
    case '%': goto yy15;
1537
175
    case '&': goto yy16;
1538
2.65k
    case '\'':  goto yy18;
1539
11.5k
    case '(': goto yy20;
1540
2.67k
    case ')':
1541
3.02k
    case ']': goto yy22;
1542
125
    case '*': goto yy24;
1543
499
    case '+': goto yy25;
1544
1.73k
    case ',':
1545
5.62k
    case ';':
1546
8.98k
    case '@':
1547
9.35k
    case '~': goto yy26;
1548
3.22k
    case '-': goto yy27;
1549
1.03k
    case '.': goto yy28;
1550
5.50k
    case '/': goto yy29;
1551
667
    case '0': goto yy30;
1552
1.70k
    case '1':
1553
2.46k
    case '2':
1554
2.56k
    case '3':
1555
3.65k
    case '4':
1556
4.49k
    case '5':
1557
4.97k
    case '6':
1558
5.04k
    case '7':
1559
5.41k
    case '8':
1560
5.41k
    case '9': goto yy32;
1561
997
    case ':': goto yy34;
1562
35.9k
    case '<': goto yy35;
1563
2.96k
    case '=': goto yy36;
1564
120
    case '>': goto yy37;
1565
5.10k
    case '?': goto yy38;
1566
783
    case 'A':
1567
2.23k
    case 'a': goto yy39;
1568
1.79k
    case 'B':
1569
2.24k
    case 'b': goto yy41;
1570
866
    case 'C':
1571
3.93k
    case 'c': goto yy42;
1572
147
    case 'D':
1573
178
    case 'd': goto yy43;
1574
675
    case 'E':
1575
5.35k
    case 'e': goto yy44;
1576
376
    case 'F':
1577
5.81k
    case 'f': goto yy45;
1578
144
    case 'G':
1579
172
    case 'g': goto yy46;
1580
22
    case 'I':
1581
2.63k
    case 'i': goto yy49;
1582
14
    case 'L':
1583
1.23k
    case 'l': goto yy50;
1584
6
    case 'M':
1585
1.29k
    case 'm': goto yy51;
1586
22
    case 'N':
1587
1.53k
    case 'n': goto yy52;
1588
394
    case 'O':
1589
950
    case 'o': goto yy53;
1590
916
    case 'P':
1591
11.0k
    case 'p': goto yy54;
1592
363
    case 'R':
1593
1.53k
    case 'r': goto yy55;
1594
55
    case 'S':
1595
2.61k
    case 's': goto yy56;
1596
904
    case 'T':
1597
2.53k
    case 't': goto yy57;
1598
14
    case 'U':
1599
47
    case 'u': goto yy58;
1600
2
    case 'V':
1601
205
    case 'v': goto yy59;
1602
11
    case 'W':
1603
12
    case 'w': goto yy60;
1604
68
    case 'X':
1605
328
    case 'x': goto yy61;
1606
31
    case 'Y':
1607
52
    case 'y': goto yy62;
1608
2.04k
    case '[': goto yy63;
1609
495
    case '\\':  goto yy64;
1610
1.21k
    case '^': goto yy66;
1611
4.59k
    case '_': goto yy67;
1612
31
    case '`': goto yy68;
1613
11.1k
    case '{': goto yy70;
1614
165
    case '|': goto yy72;
1615
2.49k
    case '}': goto yy73;
1616
8.46k
    default:  goto yy47;
1617
295k
    }
1618
100k
yy3:
1619
100k
    YYDEBUG(3, *YYCURSOR);
1620
100k
    ++YYCURSOR;
1621
100k
    YYDEBUG(4, *YYCURSOR);
1622
100k
    yyleng = YYCURSOR - SCNG(yy_text);
1623
100k
#line 3180 "Zend/zend_language_scanner.l"
1624
100k
    {
1625
100k
  if (YYCURSOR > YYLIMIT) {
1626
55
    RETURN_END_TOKEN;
1627
55
  }
1628
1629
100k
  RETURN_TOKEN(T_BAD_CHARACTER);
1630
100k
}
1631
0
#line 1632 "Zend/zend_language_scanner.c"
1632
74.9k
yy5:
1633
74.9k
    YYDEBUG(5, *YYCURSOR);
1634
74.9k
    ++YYCURSOR;
1635
74.9k
    YYFILL(1);
1636
74.9k
    yych = *YYCURSOR;
1637
74.9k
    YYDEBUG(6, *YYCURSOR);
1638
74.9k
    if (yybm[256+yych] & 32) {
1639
16.7k
      goto yy5;
1640
16.7k
    }
1641
58.1k
    YYDEBUG(7, *YYCURSOR);
1642
58.1k
    yyleng = YYCURSOR - SCNG(yy_text);
1643
58.1k
#line 1597 "Zend/zend_language_scanner.l"
1644
58.1k
    {
1645
58.1k
  goto return_whitespace;
1646
74.9k
}
1647
0
#line 1648 "Zend/zend_language_scanner.c"
1648
1.09k
yy8:
1649
1.09k
    YYDEBUG(8, *YYCURSOR);
1650
1.09k
    yych = *++YYCURSOR;
1651
1.09k
    if (yych == '=') goto yy75;
1652
38.4k
yy9:
1653
38.4k
    YYDEBUG(9, *YYCURSOR);
1654
38.4k
    yyleng = YYCURSOR - SCNG(yy_text);
1655
38.4k
#line 1969 "Zend/zend_language_scanner.l"
1656
38.4k
    {
1657
38.4k
  RETURN_TOKEN(yytext[0]);
1658
38.4k
}
1659
0
#line 1660 "Zend/zend_language_scanner.c"
1660
2.13k
yy10:
1661
2.13k
    YYDEBUG(10, *YYCURSOR);
1662
2.13k
    ++YYCURSOR;
1663
2.13k
    YYDEBUG(11, *YYCURSOR);
1664
2.13k
    yyleng = YYCURSOR - SCNG(yy_text);
1665
2.13k
#line 2632 "Zend/zend_language_scanner.l"
1666
2.13k
    {
1667
2.13k
  int bprefix = (yytext[0] != '"') ? 1 : 0;
1668
1669
96.4k
  while (YYCURSOR < YYLIMIT) {
1670
96.4k
    switch (*YYCURSOR++) {
1671
1.04k
      case '"':
1672
1.04k
        yyleng = YYCURSOR - SCNG(yy_text);
1673
1.04k
        if (EXPECTED(zend_scan_escape_string(zendlval, yytext+bprefix+1, yyleng-bprefix-2, '"') == SUCCESS)
1674
1.04k
         || !PARSER_MODE()) {
1675
1.04k
          RETURN_TOKEN_WITH_VAL(T_CONSTANT_ENCAPSED_STRING);
1676
1.04k
        } else {
1677
0
          RETURN_TOKEN(T_ERROR);
1678
0
        }
1679
519
      case '$':
1680
519
        if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
1681
505
          break;
1682
505
        }
1683
14
        continue;
1684
704
      case '{':
1685
704
        if (*YYCURSOR == '$') {
1686
588
          break;
1687
588
        }
1688
116
        continue;
1689
1.02k
      case '\\':
1690
1.02k
        if (YYCURSOR < YYLIMIT) {
1691
1.02k
          YYCURSOR++;
1692
1.02k
        }
1693
1.02k
        ZEND_FALLTHROUGH;
1694
94.1k
      default:
1695
94.1k
        continue;
1696
96.4k
    }
1697
1698
1.09k
    YYCURSOR--;
1699
1.09k
    break;
1700
96.4k
  }
1701
1702
  /* Remember how much was scanned to save rescanning */
1703
2.13k
  SET_DOUBLE_QUOTES_SCANNED_LENGTH(YYCURSOR - SCNG(yy_text) - yyleng);
1704
1705
1.09k
  YYCURSOR = SCNG(yy_text) + yyleng;
1706
1707
1.09k
  BEGIN(ST_DOUBLE_QUOTES);
1708
1.09k
  RETURN_TOKEN('"');
1709
1.09k
}
1710
0
#line 1711 "Zend/zend_language_scanner.c"
1711
9.78k
yy12:
1712
9.78k
    YYDEBUG(12, *YYCURSOR);
1713
9.78k
    yych = *++YYCURSOR;
1714
9.78k
    if (yych == '[') goto yy77;
1715
11.6k
yy13:
1716
11.6k
    YYDEBUG(13, *YYCURSOR);
1717
11.6k
    yyleng = YYCURSOR - SCNG(yy_text);
1718
11.6k
#line 2460 "Zend/zend_language_scanner.l"
1719
11.6k
    {
1720
208k
  while (YYCURSOR < YYLIMIT) {
1721
208k
    switch (*YYCURSOR++) {
1722
2.28k
      case '\r':
1723
11.6k
      case '\n':
1724
11.6k
        YYCURSOR--;
1725
11.6k
        break;
1726
292
      case '?':
1727
292
        if (*YYCURSOR == '>') {
1728
10
          YYCURSOR--;
1729
10
          break;
1730
10
        }
1731
282
        ZEND_FALLTHROUGH;
1732
196k
      default:
1733
196k
        continue;
1734
208k
    }
1735
1736
11.6k
    break;
1737
208k
  }
1738
1739
11.6k
  yyleng = YYCURSOR - SCNG(yy_text);
1740
11.6k
  RETURN_OR_SKIP_TOKEN(T_COMMENT);
1741
11.6k
}
1742
0
#line 1743 "Zend/zend_language_scanner.c"
1743
16.7k
yy14:
1744
16.7k
    YYDEBUG(14, *YYCURSOR);
1745
16.7k
    yych = *++YYCURSOR;
1746
16.7k
    if (yych <= '_') {
1747
337
      if (yych <= '@') goto yy9;
1748
41
      if (yych <= 'Z') goto yy79;
1749
0
      if (yych <= '^') goto yy9;
1750
0
      goto yy79;
1751
16.3k
    } else {
1752
16.3k
      if (yych <= '`') goto yy9;
1753
16.3k
      if (yych <= 'z') goto yy79;
1754
5.53k
      if (yych <= 0x7F) goto yy9;
1755
939
      goto yy79;
1756
5.53k
    }
1757
361
yy15:
1758
361
    YYDEBUG(15, *YYCURSOR);
1759
361
    yych = *++YYCURSOR;
1760
361
    if (yych == '=') goto yy82;
1761
361
    goto yy9;
1762
361
yy16:
1763
175
    YYDEBUG(16, *YYCURSOR);
1764
175
    yyaccept = 0;
1765
175
    yych = *(YYMARKER = ++YYCURSOR);
1766
175
    if (yych <= '"') {
1767
12
      if (yych <= '\f') {
1768
11
        if (yych <= 0x08) goto yy17;
1769
11
        if (yych <= '\n') goto yy85;
1770
11
      } else {
1771
1
        if (yych <= '\r') goto yy85;
1772
1
        if (yych == ' ') goto yy85;
1773
1
      }
1774
163
    } else {
1775
163
      if (yych <= '-') {
1776
28
        if (yych <= '$') goto yy85;
1777
27
        if (yych == '&') goto yy90;
1778
135
      } else {
1779
135
        if (yych <= '/') goto yy85;
1780
135
        if (yych == '=') goto yy94;
1781
135
      }
1782
163
    }
1783
70
yy17:
1784
70
    YYDEBUG(17, *YYCURSOR);
1785
70
    yyleng = YYCURSOR - SCNG(yy_text);
1786
70
#line 1955 "Zend/zend_language_scanner.l"
1787
70
    {
1788
70
  RETURN_TOKEN(T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG);
1789
70
}
1790
0
#line 1791 "Zend/zend_language_scanner.c"
1791
2.65k
yy18:
1792
2.65k
    YYDEBUG(18, *YYCURSOR);
1793
2.65k
    ++YYCURSOR;
1794
2.65k
    YYDEBUG(19, *YYCURSOR);
1795
2.65k
    yyleng = YYCURSOR - SCNG(yy_text);
1796
2.65k
#line 2538 "Zend/zend_language_scanner.l"
1797
2.65k
    {
1798
2.65k
  char *s, *t;
1799
2.65k
  char *end;
1800
2.65k
  int bprefix = (yytext[0] != '\'') ? 1 : 0;
1801
1802
422k
  while (1) {
1803
422k
    if (YYCURSOR < YYLIMIT) {
1804
422k
      if (*YYCURSOR == '\'') {
1805
2.64k
        YYCURSOR++;
1806
2.64k
        yyleng = YYCURSOR - SCNG(yy_text);
1807
1808
2.64k
        break;
1809
420k
      } else if (*YYCURSOR++ == '\\' && YYCURSOR < YYLIMIT) {
1810
642
        YYCURSOR++;
1811
642
      }
1812
422k
    } else {
1813
9
      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
9
      ZVAL_NULL(zendlval);
1819
9
      RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
1820
9
    }
1821
422k
  }
1822
1823
2.64k
  if (yyleng-bprefix-2 <= 1) {
1824
392
    if (yyleng-bprefix-2 < 1) {
1825
4
      ZVAL_EMPTY_STRING(zendlval);
1826
388
    } else {
1827
388
      zend_uchar c = (zend_uchar)*(yytext+bprefix+1);
1828
388
      HANDLE_NEWLINE(c);
1829
388
      ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR(c));
1830
388
    }
1831
392
    goto skip_escape_conversion;
1832
392
  }
1833
2.25k
  ZVAL_STRINGL(zendlval, yytext+bprefix+1, yyleng-bprefix-2);
1834
1835
  /* convert escape sequences */
1836
2.25k
  s = Z_STRVAL_P(zendlval);
1837
2.25k
  end = s+Z_STRLEN_P(zendlval);
1838
301k
  while (1) {
1839
301k
    if (UNEXPECTED(*s=='\\')) {
1840
406
      break;
1841
406
    }
1842
300k
    if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
1843
4.82k
      CG(zend_lineno)++;
1844
4.82k
    }
1845
300k
    s++;
1846
300k
    if (s == end) {
1847
1.85k
      goto skip_escape_conversion;
1848
1.85k
    }
1849
300k
  }
1850
1851
406
  t = s;
1852
118k
  while (s<end) {
1853
117k
    if (*s=='\\') {
1854
636
      s++;
1855
636
      if (*s == '\\' || *s == '\'') {
1856
43
        *t++ = *s;
1857
593
      } else {
1858
593
        *t++ = '\\';
1859
593
        *t++ = *s;
1860
593
      }
1861
117k
    } else {
1862
117k
      *t++ = *s;
1863
117k
    }
1864
117k
    if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
1865
2.48k
      CG(zend_lineno)++;
1866
2.48k
    }
1867
117k
    s++;
1868
117k
  }
1869
406
  *t = 0;
1870
406
  Z_STRLEN_P(zendlval) = t - Z_STRVAL_P(zendlval);
1871
1872
2.64k
skip_escape_conversion:
1873
2.64k
  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
2.64k
  RETURN_TOKEN_WITH_VAL(T_CONSTANT_ENCAPSED_STRING);
1888
2.64k
}
1889
0
#line 1890 "Zend/zend_language_scanner.c"
1890
11.5k
yy20:
1891
11.5k
    YYDEBUG(20, *YYCURSOR);
1892
11.5k
    yyaccept = 1;
1893
11.5k
    yych = *(YYMARKER = ++YYCURSOR);
1894
11.5k
    if (yych <= 'S') {
1895
6.84k
      if (yych <= 'D') {
1896
6.78k
        if (yych <= ' ') {
1897
399
          if (yych == '\t') goto yy97;
1898
399
          if (yych >= ' ') goto yy97;
1899
6.38k
        } else {
1900
6.38k
          if (yych <= '@') goto yy21;
1901
1.19k
          if (yych != 'C') goto yy97;
1902
1.19k
        }
1903
6.78k
      } else {
1904
55
        if (yych <= 'I') {
1905
39
          if (yych == 'F') goto yy97;
1906
38
          if (yych >= 'I') goto yy97;
1907
38
        } else {
1908
16
          if (yych == 'O') goto yy97;
1909
16
          if (yych >= 'R') goto yy97;
1910
16
        }
1911
55
      }
1912
6.84k
    } else {
1913
4.66k
      if (yych <= 'f') {
1914
2.12k
        if (yych <= 'b') {
1915
1.02k
          if (yych <= 'T') goto yy21;
1916
984
          if (yych <= 'V') goto yy97;
1917
984
          if (yych >= 'a') goto yy97;
1918
1.09k
        } else {
1919
1.09k
          if (yych == 'd') goto yy97;
1920
1.09k
          if (yych >= 'f') goto yy97;
1921
1.09k
        }
1922
2.53k
      } else {
1923
2.53k
        if (yych <= 'o') {
1924
1.30k
          if (yych == 'i') goto yy97;
1925
1.21k
          if (yych >= 'o') goto yy97;
1926
1.23k
        } else {
1927
1.23k
          if (yych <= 's') {
1928
1.10k
            if (yych >= 'r') goto yy97;
1929
1.10k
          } else {
1930
137
            if (yych <= 't') goto yy21;
1931
137
            if (yych <= 'v') goto yy97;
1932
137
          }
1933
1.23k
        }
1934
2.53k
      }
1935
4.66k
    }
1936
13.1k
yy21:
1937
13.1k
    YYDEBUG(21, *YYCURSOR);
1938
13.1k
    yyleng = YYCURSOR - SCNG(yy_text);
1939
13.1k
#line 1964 "Zend/zend_language_scanner.l"
1940
13.1k
    {
1941
13.1k
  enter_nesting(yytext[0]);
1942
13.1k
  RETURN_TOKEN(yytext[0]);
1943
13.1k
}
1944
0
#line 1945 "Zend/zend_language_scanner.c"
1945
3.02k
yy22:
1946
3.02k
    YYDEBUG(22, *YYCURSOR);
1947
3.02k
    ++YYCURSOR;
1948
3.02k
    YYDEBUG(23, *YYCURSOR);
1949
3.02k
    yyleng = YYCURSOR - SCNG(yy_text);
1950
3.02k
#line 1959 "Zend/zend_language_scanner.l"
1951
3.02k
    {
1952
  /* Check that ] and ) match up properly with a preceding [ or ( */
1953
3.02k
  RETURN_EXIT_NESTING_TOKEN(yytext[0]);
1954
3.02k
}
1955
0
#line 1956 "Zend/zend_language_scanner.c"
1956
125
yy24:
1957
125
    YYDEBUG(24, *YYCURSOR);
1958
125
    yych = *++YYCURSOR;
1959
125
    if (yych == '*') goto yy108;
1960
118
    if (yych == '=') goto yy110;
1961
86
    goto yy9;
1962
499
yy25:
1963
499
    YYDEBUG(25, *YYCURSOR);
1964
499
    yych = *++YYCURSOR;
1965
499
    if (yych == '+') goto yy112;
1966
352
    if (yych == '=') goto yy114;
1967
322
    goto yy9;
1968
9.35k
yy26:
1969
9.35k
    YYDEBUG(26, *YYCURSOR);
1970
9.35k
    ++YYCURSOR;
1971
9.35k
    goto yy9;
1972
3.22k
yy27:
1973
3.22k
    YYDEBUG(27, *YYCURSOR);
1974
3.22k
    yych = *++YYCURSOR;
1975
3.22k
    if (yych <= '<') {
1976
1.23k
      if (yych == '-') goto yy116;
1977
1.18k
      goto yy9;
1978
1.98k
    } else {
1979
1.98k
      if (yych <= '=') goto yy118;
1980
1.96k
      if (yych <= '>') goto yy120;
1981
1.80k
      goto yy9;
1982
1.96k
    }
1983
1.03k
yy28:
1984
1.03k
    YYDEBUG(28, *YYCURSOR);
1985
1.03k
    yyaccept = 2;
1986
1.03k
    yych = *(YYMARKER = ++YYCURSOR);
1987
1.03k
    if (yych <= '/') {
1988
554
      if (yych == '.') goto yy122;
1989
521
      goto yy9;
1990
554
    } else {
1991
484
      if (yych <= '9') goto yy123;
1992
385
      if (yych == '=') goto yy126;
1993
313
      goto yy9;
1994
385
    }
1995
5.50k
yy29:
1996
5.50k
    YYDEBUG(29, *YYCURSOR);
1997
5.50k
    yych = *++YYCURSOR;
1998
5.50k
    if (yych <= '.') {
1999
2.08k
      if (yych == '*') goto yy128;
2000
842
      goto yy9;
2001
3.41k
    } else {
2002
3.41k
      if (yych <= '/') goto yy130;
2003
1.51k
      if (yych == '=') goto yy131;
2004
1.51k
      goto yy9;
2005
1.51k
    }
2006
667
yy30:
2007
667
    YYDEBUG(30, *YYCURSOR);
2008
667
    yyaccept = 3;
2009
667
    yych = *(YYMARKER = ++YYCURSOR);
2010
667
    if (yych <= 'X') {
2011
630
      if (yych <= 'N') {
2012
629
        if (yych == 'B') goto yy134;
2013
629
        goto yy33;
2014
629
      } else {
2015
1
        if (yych <= 'O') goto yy136;
2016
1
        if (yych <= 'W') goto yy33;
2017
0
        goto yy137;
2018
1
      }
2019
630
    } else {
2020
37
      if (yych <= 'n') {
2021
31
        if (yych == 'b') goto yy134;
2022
31
        goto yy33;
2023
31
      } else {
2024
6
        if (yych <= 'o') goto yy136;
2025
6
        if (yych == 'x') goto yy137;
2026
0
        goto yy33;
2027
6
      }
2028
37
    }
2029
5.21k
yy31:
2030
5.21k
    YYDEBUG(31, *YYCURSOR);
2031
5.21k
    yyleng = YYCURSOR - SCNG(yy_text);
2032
5.21k
#line 2103 "Zend/zend_language_scanner.l"
2033
5.21k
    {
2034
5.21k
  size_t len = yyleng;
2035
5.21k
  char *end, *lnum = yytext;
2036
5.21k
  bool is_octal = lnum[0] == '0';
2037
5.21k
  bool contains_underscores = (memchr(lnum, '_', len) != NULL);
2038
2039
5.21k
  if (contains_underscores) {
2040
0
    lnum = estrndup(lnum, len);
2041
0
    strip_underscores(lnum, &len);
2042
0
  }
2043
2044
  /* Digits 8 and 9 are illegal in octal literals. */
2045
5.21k
  if (is_octal) {
2046
538
    size_t i;
2047
4.23k
    for (i = 0; i < len; i++) {
2048
3.69k
      if (lnum[i] == '8' || lnum[i] == '9') {
2049
0
        zend_throw_exception(zend_ce_parse_error, "Invalid numeric literal", 0);
2050
0
        if (PARSER_MODE()) {
2051
0
          if (contains_underscores) {
2052
0
            efree(lnum);
2053
0
          }
2054
0
          ZVAL_UNDEF(zendlval);
2055
0
          RETURN_TOKEN(T_ERROR);
2056
0
        }
2057
2058
        /* Continue in order to determine if this is T_LNUMBER or T_DNUMBER. */
2059
0
        len = i;
2060
0
        break;
2061
0
      }
2062
3.69k
    }
2063
538
  }
2064
2065
2066
5.21k
  if (len < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
2067
5.20k
    errno = 0;
2068
    /* base must be passed explicitly for correct parse error on Windows */
2069
5.20k
    ZVAL_LONG(zendlval, ZEND_STRTOL(lnum, &end, is_octal ? 8 : 10));
2070
5.20k
    ZEND_ASSERT(end == lnum + len);
2071
5.20k
  } else {
2072
10
    errno = 0;
2073
10
    ZVAL_LONG(zendlval, ZEND_STRTOL(lnum, &end, 0));
2074
10
    if (errno == ERANGE) { /* Overflow */
2075
10
      errno = 0;
2076
10
      if (is_octal) { /* octal overflow */
2077
0
        ZVAL_DOUBLE(zendlval, zend_oct_strtod(lnum, (const char **)&end));
2078
10
      } else {
2079
10
        ZVAL_DOUBLE(zendlval, zend_strtod(lnum, (const char **)&end));
2080
10
      }
2081
10
      ZEND_ASSERT(end == lnum + len);
2082
10
      if (contains_underscores) {
2083
0
        efree(lnum);
2084
0
      }
2085
10
      RETURN_TOKEN_WITH_VAL(T_DNUMBER);
2086
10
    }
2087
0
    ZEND_ASSERT(end == lnum + len);
2088
0
  }
2089
5.20k
  ZEND_ASSERT(!errno);
2090
5.20k
  if (contains_underscores) {
2091
0
    efree(lnum);
2092
0
  }
2093
5.20k
  RETURN_TOKEN_WITH_VAL(T_LNUMBER);
2094
5.20k
}
2095
0
#line 2096 "Zend/zend_language_scanner.c"
2096
15.0k
yy32:
2097
15.0k
    YYDEBUG(32, *YYCURSOR);
2098
15.0k
    yyaccept = 3;
2099
15.0k
    YYMARKER = ++YYCURSOR;
2100
15.0k
    YYFILL(3);
2101
15.0k
    yych = *YYCURSOR;
2102
15.7k
yy33:
2103
15.7k
    YYDEBUG(33, *YYCURSOR);
2104
15.7k
    if (yybm[256+yych] & 64) {
2105
9.67k
      goto yy32;
2106
9.67k
    }
2107
6.07k
    if (yych <= 'E') {
2108
4.31k
      if (yych == '.') goto yy133;
2109
3.44k
      if (yych <= 'D') goto yy31;
2110
0
      goto yy135;
2111
3.44k
    } else {
2112
1.76k
      if (yych <= '_') {
2113
1.22k
        if (yych <= '^') goto yy31;
2114
2
        goto yy138;
2115
1.22k
      } else {
2116
536
        if (yych == 'e') goto yy135;
2117
536
        goto yy31;
2118
536
      }
2119
1.76k
    }
2120
997
yy34:
2121
997
    YYDEBUG(34, *YYCURSOR);
2122
997
    yych = *++YYCURSOR;
2123
997
    if (yych == ':') goto yy139;
2124
977
    goto yy9;
2125
35.9k
yy35:
2126
35.9k
    YYDEBUG(35, *YYCURSOR);
2127
35.9k
    yych = *++YYCURSOR;
2128
35.9k
    if (yych <= ';') goto yy9;
2129
34.5k
    if (yych <= '<') goto yy141;
2130
6.85k
    if (yych <= '=') goto yy143;
2131
6.79k
    if (yych <= '>') goto yy145;
2132
6.79k
    goto yy9;
2133
6.79k
yy36:
2134
2.96k
    YYDEBUG(36, *YYCURSOR);
2135
2.96k
    yych = *++YYCURSOR;
2136
2.96k
    if (yych <= '<') goto yy9;
2137
395
    if (yych <= '=') goto yy146;
2138
310
    if (yych <= '>') goto yy148;
2139
235
    goto yy9;
2140
235
yy37:
2141
120
    YYDEBUG(37, *YYCURSOR);
2142
120
    yych = *++YYCURSOR;
2143
120
    if (yych <= '<') goto yy9;
2144
88
    if (yych <= '=') goto yy150;
2145
68
    if (yych <= '>') goto yy152;
2146
60
    goto yy9;
2147
5.10k
yy38:
2148
5.10k
    YYDEBUG(38, *YYCURSOR);
2149
5.10k
    yyaccept = 2;
2150
5.10k
    yych = *(YYMARKER = ++YYCURSOR);
2151
5.10k
    if (yych <= '=') {
2152
3.82k
      if (yych == '-') goto yy154;
2153
2.30k
      goto yy9;
2154
3.82k
    } else {
2155
1.27k
      if (yych <= '>') goto yy155;
2156
775
      if (yych <= '?') goto yy157;
2157
681
      goto yy9;
2158
775
    }
2159
2.23k
yy39:
2160
2.23k
    YYDEBUG(39, *YYCURSOR);
2161
2.23k
    yyaccept = 4;
2162
2.23k
    yych = *(YYMARKER = ++YYCURSOR);
2163
2.23k
    if (yych <= 'S') {
2164
788
      if (yych <= 'M') {
2165
787
        if (yych == 'B') goto yy159;
2166
787
        goto yy48;
2167
787
      } else {
2168
1
        if (yych <= 'N') goto yy160;
2169
1
        if (yych <= 'Q') goto yy48;
2170
1
        if (yych <= 'R') goto yy161;
2171
1
        goto yy162;
2172
1
      }
2173
1.44k
    } else {
2174
1.44k
      if (yych <= 'n') {
2175
626
        if (yych == 'b') goto yy159;
2176
521
        if (yych <= 'm') goto yy48;
2177
329
        goto yy160;
2178
818
      } else {
2179
818
        if (yych <= 'q') goto yy48;
2180
818
        if (yych <= 'r') goto yy161;
2181
23
        if (yych <= 's') goto yy162;
2182
5
        goto yy48;
2183
23
      }
2184
1.44k
    }
2185
47.0k
yy40:
2186
47.0k
    YYDEBUG(40, *YYCURSOR);
2187
47.0k
    yyleng = YYCURSOR - SCNG(yy_text);
2188
47.0k
#line 2455 "Zend/zend_language_scanner.l"
2189
47.0k
    {
2190
47.0k
  RETURN_TOKEN_WITH_STR(T_STRING, 0);
2191
47.0k
}
2192
0
#line 2193 "Zend/zend_language_scanner.c"
2193
2.24k
yy41:
2194
2.24k
    YYDEBUG(41, *YYCURSOR);
2195
2.24k
    yyaccept = 4;
2196
2.24k
    yych = *(YYMARKER = ++YYCURSOR);
2197
2.24k
    if (yych <= ';') {
2198
428
      if (yych <= '"') {
2199
428
        if (yych <= '!') goto yy48;
2200
18
        goto yy10;
2201
428
      } else {
2202
0
        if (yych == '\'') goto yy18;
2203
0
        goto yy48;
2204
0
      }
2205
1.81k
    } else {
2206
1.81k
      if (yych <= 'R') {
2207
1.09k
        if (yych <= '<') goto yy165;
2208
837
        if (yych <= 'Q') goto yy48;
2209
0
        goto yy166;
2210
837
      } else {
2211
717
        if (yych == 'r') goto yy166;
2212
716
        goto yy48;
2213
717
      }
2214
1.81k
    }
2215
3.93k
yy42:
2216
3.93k
    YYDEBUG(42, *YYCURSOR);
2217
3.93k
    yyaccept = 4;
2218
3.93k
    yych = *(YYMARKER = ++YYCURSOR);
2219
3.93k
    if (yych <= 'O') {
2220
48
      if (yych <= 'K') {
2221
48
        if (yych == 'A') goto yy167;
2222
48
        goto yy48;
2223
48
      } else {
2224
0
        if (yych <= 'L') goto yy168;
2225
0
        if (yych <= 'N') goto yy48;
2226
0
        goto yy169;
2227
0
      }
2228
3.88k
    } else {
2229
3.88k
      if (yych <= 'k') {
2230
1.02k
        if (yych == 'a') goto yy167;
2231
114
        goto yy48;
2232
2.85k
      } else {
2233
2.85k
        if (yych <= 'l') goto yy168;
2234
1.26k
        if (yych == 'o') goto yy169;
2235
691
        goto yy48;
2236
1.26k
      }
2237
3.88k
    }
2238
178
yy43:
2239
178
    YYDEBUG(43, *YYCURSOR);
2240
178
    yyaccept = 4;
2241
178
    yych = *(YYMARKER = ++YYCURSOR);
2242
178
    if (yych <= 'O') {
2243
45
      if (yych <= 'H') {
2244
19
        if (yych == 'E') goto yy170;
2245
19
        goto yy48;
2246
26
      } else {
2247
26
        if (yych <= 'I') goto yy171;
2248
26
        if (yych <= 'N') goto yy48;
2249
26
        goto yy172;
2250
26
      }
2251
133
    } else {
2252
133
      if (yych <= 'h') {
2253
132
        if (yych == 'e') goto yy170;
2254
113
        goto yy48;
2255
132
      } else {
2256
1
        if (yych <= 'i') goto yy171;
2257
1
        if (yych == 'o') goto yy172;
2258
1
        goto yy48;
2259
1
      }
2260
133
    }
2261
5.35k
yy44:
2262
5.35k
    YYDEBUG(44, *YYCURSOR);
2263
5.35k
    yyaccept = 4;
2264
5.35k
    yych = *(YYMARKER = ++YYCURSOR);
2265
5.35k
    switch (yych) {
2266
11
    case 'C':
2267
300
    case 'c': goto yy174;
2268
0
    case 'L':
2269
471
    case 'l': goto yy175;
2270
0
    case 'M':
2271
0
    case 'm': goto yy176;
2272
1.24k
    case 'N':
2273
2.82k
    case 'n': goto yy177;
2274
0
    case 'V':
2275
8
    case 'v': goto yy178;
2276
0
    case 'X':
2277
633
    case 'x': goto yy179;
2278
1.12k
    default:  goto yy48;
2279
5.35k
    }
2280
5.81k
yy45:
2281
5.81k
    YYDEBUG(45, *YYCURSOR);
2282
5.81k
    yyaccept = 4;
2283
5.81k
    yych = *(YYMARKER = ++YYCURSOR);
2284
5.81k
    if (yych <= 'U') {
2285
372
      if (yych <= 'M') {
2286
372
        if (yych == 'I') goto yy180;
2287
372
        goto yy48;
2288
372
      } else {
2289
0
        if (yych <= 'N') goto yy181;
2290
0
        if (yych <= 'O') goto yy183;
2291
0
        if (yych <= 'T') goto yy48;
2292
0
        goto yy184;
2293
0
      }
2294
5.43k
    } else {
2295
5.43k
      if (yych <= 'n') {
2296
852
        if (yych == 'i') goto yy180;
2297
852
        if (yych <= 'm') goto yy48;
2298
3
        goto yy181;
2299
4.58k
      } else {
2300
4.58k
        if (yych <= 'o') goto yy183;
2301
2.70k
        if (yych == 'u') goto yy184;
2302
311
        goto yy48;
2303
2.70k
      }
2304
5.43k
    }
2305
172
yy46:
2306
172
    YYDEBUG(46, *YYCURSOR);
2307
172
    yyaccept = 4;
2308
172
    yych = *(YYMARKER = ++YYCURSOR);
2309
172
    if (yych <= 'O') {
2310
15
      if (yych == 'L') goto yy185;
2311
15
      if (yych <= 'N') goto yy48;
2312
0
      goto yy186;
2313
157
    } else {
2314
157
      if (yych <= 'l') {
2315
22
        if (yych <= 'k') goto yy48;
2316
18
        goto yy185;
2317
135
      } else {
2318
135
        if (yych == 'o') goto yy186;
2319
135
        goto yy48;
2320
135
      }
2321
157
    }
2322
221k
yy47:
2323
221k
    YYDEBUG(47, *YYCURSOR);
2324
221k
    yyaccept = 4;
2325
221k
    YYMARKER = ++YYCURSOR;
2326
221k
    YYFILL(1);
2327
221k
    yych = *YYCURSOR;
2328
258k
yy48:
2329
258k
    YYDEBUG(48, *YYCURSOR);
2330
258k
    if (yybm[256+yych] & 128) {
2331
211k
      goto yy47;
2332
211k
    }
2333
46.8k
    if (yych == '\\') goto yy164;
2334
46.6k
    goto yy40;
2335
46.6k
yy49:
2336
2.63k
    YYDEBUG(49, *YYCURSOR);
2337
2.63k
    yyaccept = 4;
2338
2.63k
    yych = *(YYMARKER = ++YYCURSOR);
2339
2.63k
    if (yych <= 'S') {
2340
366
      if (yych <= 'L') {
2341
365
        if (yych == 'F') goto yy187;
2342
365
        goto yy48;
2343
365
      } else {
2344
1
        if (yych <= 'M') goto yy189;
2345
1
        if (yych <= 'N') goto yy190;
2346
0
        if (yych <= 'R') goto yy48;
2347
0
        goto yy191;
2348
0
      }
2349
2.26k
    } else {
2350
2.26k
      if (yych <= 'm') {
2351
1.32k
        if (yych == 'f') goto yy187;
2352
1.32k
        if (yych <= 'l') goto yy48;
2353
837
        goto yy189;
2354
1.32k
      } else {
2355
939
        if (yych <= 'n') goto yy190;
2356
32
        if (yych == 's') goto yy191;
2357
23
        goto yy48;
2358
32
      }
2359
2.26k
    }
2360
1.23k
yy50:
2361
1.23k
    YYDEBUG(50, *YYCURSOR);
2362
1.23k
    yyaccept = 4;
2363
1.23k
    yych = *(YYMARKER = ++YYCURSOR);
2364
1.23k
    if (yych == 'I') goto yy192;
2365
1.23k
    if (yych == 'i') goto yy192;
2366
1.23k
    goto yy48;
2367
1.29k
yy51:
2368
1.29k
    YYDEBUG(51, *YYCURSOR);
2369
1.29k
    yyaccept = 4;
2370
1.29k
    yych = *(YYMARKER = ++YYCURSOR);
2371
1.29k
    if (yych == 'A') goto yy193;
2372
1.29k
    if (yych == 'a') goto yy193;
2373
1.29k
    goto yy48;
2374
1.53k
yy52:
2375
1.53k
    YYDEBUG(52, *YYCURSOR);
2376
1.53k
    yyaccept = 4;
2377
1.53k
    yych = *(YYMARKER = ++YYCURSOR);
2378
1.53k
    if (yych <= 'E') {
2379
13
      if (yych == 'A') goto yy194;
2380
13
      if (yych <= 'D') goto yy48;
2381
0
      goto yy195;
2382
1.51k
    } else {
2383
1.51k
      if (yych <= 'a') {
2384
9
        if (yych <= '`') goto yy48;
2385
0
        goto yy194;
2386
1.50k
      } else {
2387
1.50k
        if (yych == 'e') goto yy195;
2388
1.24k
        goto yy48;
2389
1.50k
      }
2390
1.51k
    }
2391
950
yy53:
2392
950
    YYDEBUG(53, *YYCURSOR);
2393
950
    yyaccept = 4;
2394
950
    yych = *(YYMARKER = ++YYCURSOR);
2395
950
    if (yych == 'R') goto yy196;
2396
950
    if (yych == 'r') goto yy196;
2397
757
    goto yy48;
2398
11.0k
yy54:
2399
11.0k
    YYDEBUG(54, *YYCURSOR);
2400
11.0k
    yyaccept = 4;
2401
11.0k
    yych = *(YYMARKER = ++YYCURSOR);
2402
11.0k
    if (yych <= 'U') {
2403
4.32k
      if (yych == 'R') goto yy198;
2404
4.32k
      if (yych <= 'T') goto yy48;
2405
0
      goto yy199;
2406
6.75k
    } else {
2407
6.75k
      if (yych <= 'r') {
2408
3.63k
        if (yych <= 'q') goto yy48;
2409
74
        goto yy198;
2410
3.63k
      } else {
2411
3.12k
        if (yych == 'u') goto yy199;
2412
1.12k
        goto yy48;
2413
3.12k
      }
2414
6.75k
    }
2415
1.53k
yy55:
2416
1.53k
    YYDEBUG(55, *YYCURSOR);
2417
1.53k
    yyaccept = 4;
2418
1.53k
    yych = *(YYMARKER = ++YYCURSOR);
2419
1.53k
    if (yych == 'E') goto yy200;
2420
1.52k
    if (yych == 'e') goto yy200;
2421
205
    goto yy48;
2422
2.61k
yy56:
2423
2.61k
    YYDEBUG(56, *YYCURSOR);
2424
2.61k
    yyaccept = 4;
2425
2.61k
    yych = *(YYMARKER = ++YYCURSOR);
2426
2.61k
    if (yych <= 'W') {
2427
591
      if (yych == 'T') goto yy201;
2428
567
      if (yych <= 'V') goto yy48;
2429
0
      goto yy202;
2430
2.02k
    } else {
2431
2.02k
      if (yych <= 't') {
2432
1.97k
        if (yych <= 's') goto yy48;
2433
903
        goto yy201;
2434
1.97k
      } else {
2435
55
        if (yych == 'w') goto yy202;
2436
6
        goto yy48;
2437
55
      }
2438
2.02k
    }
2439
2.53k
yy57:
2440
2.53k
    YYDEBUG(57, *YYCURSOR);
2441
2.53k
    yyaccept = 4;
2442
2.53k
    yych = *(YYMARKER = ++YYCURSOR);
2443
2.53k
    if (yych <= 'R') {
2444
902
      if (yych == 'H') goto yy203;
2445
893
      if (yych <= 'Q') goto yy48;
2446
1
      goto yy204;
2447
1.63k
    } else {
2448
1.63k
      if (yych <= 'h') {
2449
1.31k
        if (yych <= 'g') goto yy48;
2450
18
        goto yy203;
2451
1.31k
      } else {
2452
320
        if (yych == 'r') goto yy204;
2453
285
        goto yy48;
2454
320
      }
2455
1.63k
    }
2456
47
yy58:
2457
47
    YYDEBUG(58, *YYCURSOR);
2458
47
    yyaccept = 4;
2459
47
    yych = *(YYMARKER = ++YYCURSOR);
2460
47
    if (yych <= 'S') {
2461
4
      if (yych == 'N') goto yy205;
2462
4
      if (yych <= 'R') goto yy48;
2463
0
      goto yy206;
2464
43
    } else {
2465
43
      if (yych <= 'n') {
2466
43
        if (yych <= 'm') goto yy48;
2467
31
        goto yy205;
2468
43
      } else {
2469
0
        if (yych == 's') goto yy206;
2470
0
        goto yy48;
2471
0
      }
2472
43
    }
2473
205
yy59:
2474
205
    YYDEBUG(59, *YYCURSOR);
2475
205
    yyaccept = 4;
2476
205
    yych = *(YYMARKER = ++YYCURSOR);
2477
205
    if (yych == 'A') goto yy207;
2478
205
    if (yych == 'a') goto yy207;
2479
2
    goto yy48;
2480
12
yy60:
2481
12
    YYDEBUG(60, *YYCURSOR);
2482
12
    yyaccept = 4;
2483
12
    yych = *(YYMARKER = ++YYCURSOR);
2484
12
    if (yych == 'H') goto yy208;
2485
11
    if (yych == 'h') goto yy208;
2486
11
    goto yy48;
2487
328
yy61:
2488
328
    YYDEBUG(61, *YYCURSOR);
2489
328
    yyaccept = 4;
2490
328
    yych = *(YYMARKER = ++YYCURSOR);
2491
328
    if (yych == 'O') goto yy209;
2492
328
    if (yych == 'o') goto yy209;
2493
135
    goto yy48;
2494
135
yy62:
2495
52
    YYDEBUG(62, *YYCURSOR);
2496
52
    yyaccept = 4;
2497
52
    yych = *(YYMARKER = ++YYCURSOR);
2498
52
    if (yych == 'I') goto yy210;
2499
52
    if (yych == 'i') goto yy210;
2500
52
    goto yy48;
2501
2.04k
yy63:
2502
2.04k
    YYDEBUG(63, *YYCURSOR);
2503
2.04k
    ++YYCURSOR;
2504
2.04k
    goto yy21;
2505
495
yy64:
2506
495
    YYDEBUG(64, *YYCURSOR);
2507
495
    yych = *++YYCURSOR;
2508
495
    if (yych <= '_') {
2509
342
      if (yych <= '@') goto yy65;
2510
49
      if (yych <= 'Z') goto yy211;
2511
21
      if (yych >= '_') goto yy211;
2512
153
    } else {
2513
153
      if (yych <= '`') goto yy65;
2514
153
      if (yych <= 'z') goto yy211;
2515
153
      if (yych >= 0x80) goto yy211;
2516
153
    }
2517
467
yy65:
2518
467
    YYDEBUG(65, *YYCURSOR);
2519
467
    yyleng = YYCURSOR - SCNG(yy_text);
2520
467
#line 2451 "Zend/zend_language_scanner.l"
2521
467
    {
2522
467
  RETURN_TOKEN(T_NS_SEPARATOR);
2523
467
}
2524
0
#line 2525 "Zend/zend_language_scanner.c"
2525
1.21k
yy66:
2526
1.21k
    YYDEBUG(66, *YYCURSOR);
2527
1.21k
    yych = *++YYCURSOR;
2528
1.21k
    if (yych == '=') goto yy214;
2529
1.21k
    goto yy9;
2530
4.59k
yy67:
2531
4.59k
    YYDEBUG(67, *YYCURSOR);
2532
4.59k
    yyaccept = 4;
2533
4.59k
    yych = *(YYMARKER = ++YYCURSOR);
2534
4.59k
    if (yych == '_') goto yy216;
2535
1.73k
    goto yy48;
2536
1.73k
yy68:
2537
31
    YYDEBUG(68, *YYCURSOR);
2538
31
    ++YYCURSOR;
2539
31
    YYDEBUG(69, *YYCURSOR);
2540
31
    yyleng = YYCURSOR - SCNG(yy_text);
2541
31
#line 2826 "Zend/zend_language_scanner.l"
2542
31
    {
2543
31
  BEGIN(ST_BACKQUOTE);
2544
31
  RETURN_TOKEN('`');
2545
31
}
2546
0
#line 2547 "Zend/zend_language_scanner.c"
2547
11.1k
yy70:
2548
11.1k
    YYDEBUG(70, *YYCURSOR);
2549
11.1k
    ++YYCURSOR;
2550
11.1k
    YYDEBUG(71, *YYCURSOR);
2551
11.1k
    yyleng = YYCURSOR - SCNG(yy_text);
2552
11.1k
#line 1974 "Zend/zend_language_scanner.l"
2553
11.1k
    {
2554
11.1k
  yy_push_state(ST_IN_SCRIPTING);
2555
11.1k
  enter_nesting('{');
2556
11.1k
  RETURN_TOKEN('{');
2557
11.1k
}
2558
0
#line 2559 "Zend/zend_language_scanner.c"
2559
165
yy72:
2560
165
    YYDEBUG(72, *YYCURSOR);
2561
165
    yych = *++YYCURSOR;
2562
165
    if (yych <= '>') {
2563
144
      if (yych <= '<') goto yy9;
2564
36
      if (yych <= '=') goto yy217;
2565
36
      goto yy219;
2566
36
    } else {
2567
21
      if (yych == '|') goto yy221;
2568
1
      goto yy9;
2569
21
    }
2570
2.49k
yy73:
2571
2.49k
    YYDEBUG(73, *YYCURSOR);
2572
2.49k
    ++YYCURSOR;
2573
2.49k
    YYDEBUG(74, *YYCURSOR);
2574
2.49k
    yyleng = YYCURSOR - SCNG(yy_text);
2575
2.49k
#line 1987 "Zend/zend_language_scanner.l"
2576
2.49k
    {
2577
2.49k
  RESET_DOC_COMMENT();
2578
2.49k
  if (!zend_stack_is_empty(&SCNG(state_stack))) {
2579
2.43k
    yy_pop_state();
2580
2.43k
  }
2581
2.49k
  RETURN_EXIT_NESTING_TOKEN('}');
2582
2.49k
}
2583
0
#line 2584 "Zend/zend_language_scanner.c"
2584
189
yy75:
2585
189
    YYDEBUG(75, *YYCURSOR);
2586
189
    yych = *++YYCURSOR;
2587
189
    if (yych == '=') goto yy223;
2588
105
yy76:
2589
105
    YYDEBUG(76, *YYCURSOR);
2590
105
    yyleng = YYCURSOR - SCNG(yy_text);
2591
105
#line 1846 "Zend/zend_language_scanner.l"
2592
105
    {
2593
105
  RETURN_TOKEN(T_IS_NOT_EQUAL);
2594
105
}
2595
0
#line 2596 "Zend/zend_language_scanner.c"
2596
0
yy77:
2597
0
    YYDEBUG(77, *YYCURSOR);
2598
0
    ++YYCURSOR;
2599
0
    YYDEBUG(78, *YYCURSOR);
2600
0
    yyleng = YYCURSOR - SCNG(yy_text);
2601
0
#line 1423 "Zend/zend_language_scanner.l"
2602
0
    {
2603
0
  enter_nesting('[');
2604
0
  RETURN_TOKEN(T_ATTRIBUTE);
2605
0
}
2606
0
#line 2607 "Zend/zend_language_scanner.c"
2607
44.5k
yy79:
2608
44.5k
    YYDEBUG(79, *YYCURSOR);
2609
44.5k
    ++YYCURSOR;
2610
44.5k
    YYFILL(1);
2611
44.5k
    yych = *YYCURSOR;
2612
44.5k
    YYDEBUG(80, *YYCURSOR);
2613
44.5k
    if (yych <= '^') {
2614
11.9k
      if (yych <= '9') {
2615
7.60k
        if (yych >= '0') goto yy79;
2616
7.60k
      } else {
2617
4.31k
        if (yych <= '@') goto yy81;
2618
787
        if (yych <= 'Z') goto yy79;
2619
787
      }
2620
32.6k
    } else {
2621
32.6k
      if (yych <= '`') {
2622
8
        if (yych <= '_') goto yy79;
2623
32.6k
      } else {
2624
32.6k
        if (yych <= 'z') goto yy79;
2625
14.1k
        if (yych >= 0x80) goto yy79;
2626
14.1k
      }
2627
32.6k
    }
2628
11.8k
yy81:
2629
11.8k
    YYDEBUG(81, *YYCURSOR);
2630
11.8k
    yyleng = YYCURSOR - SCNG(yy_text);
2631
11.8k
#line 2417 "Zend/zend_language_scanner.l"
2632
11.8k
    {
2633
11.8k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
2634
11.8k
}
2635
0
#line 2636 "Zend/zend_language_scanner.c"
2636
0
yy82:
2637
0
    YYDEBUG(82, *YYCURSOR);
2638
0
    ++YYCURSOR;
2639
0
    YYDEBUG(83, *YYCURSOR);
2640
0
    yyleng = YYCURSOR - SCNG(yy_text);
2641
0
#line 1890 "Zend/zend_language_scanner.l"
2642
0
    {
2643
0
  RETURN_TOKEN(T_MOD_EQUAL);
2644
0
}
2645
0
#line 2646 "Zend/zend_language_scanner.c"
2646
16
yy84:
2647
16
    YYDEBUG(84, *YYCURSOR);
2648
16
    ++YYCURSOR;
2649
16
    YYFILL(3);
2650
16
    yych = *YYCURSOR;
2651
28
yy85:
2652
28
    YYDEBUG(85, *YYCURSOR);
2653
28
    if (yych <= ' ') {
2654
16
      if (yych <= '\f') {
2655
16
        if (yych <= 0x08) goto yy86;
2656
16
        if (yych <= '\n') goto yy84;
2657
16
      } else {
2658
0
        if (yych <= '\r') goto yy84;
2659
0
        if (yych >= ' ') goto yy84;
2660
0
      }
2661
16
    } else {
2662
12
      if (yych <= '$') {
2663
6
        if (yych <= '"') goto yy86;
2664
6
        if (yych <= '#') goto yy87;
2665
6
        goto yy88;
2666
6
      } else {
2667
6
        if (yych <= '-') goto yy86;
2668
6
        if (yych <= '.') goto yy92;
2669
6
        if (yych <= '/') goto yy93;
2670
6
      }
2671
12
    }
2672
7.66k
yy86:
2673
7.66k
    YYDEBUG(86, *YYCURSOR);
2674
7.66k
    YYCURSOR = YYMARKER;
2675
7.66k
    if (yyaccept <= 48) {
2676
7.06k
      if (yyaccept <= 24) {
2677
7.06k
        if (yyaccept <= 12) {
2678
7.06k
          if (yyaccept <= 6) {
2679
3.11k
            if (yyaccept <= 3) {
2680
2.70k
              if (yyaccept <= 1) {
2681
2.70k
                if (yyaccept == 0) {
2682
6
                  goto yy17;
2683
2.69k
                } else {
2684
2.69k
                  goto yy21;
2685
2.69k
                }
2686
2.70k
              } else {
2687
3
                if (yyaccept == 2) {
2688
1
                  goto yy9;
2689
2
                } else {
2690
2
                  goto yy31;
2691
2
                }
2692
3
              }
2693
2.70k
            } else {
2694
413
              if (yyaccept <= 5) {
2695
413
                if (yyaccept == 4) {
2696
413
                  goto yy40;
2697
413
                } else {
2698
0
                  goto yy125;
2699
0
                }
2700
413
              } else {
2701
0
                goto yy129;
2702
0
              }
2703
413
            }
2704
3.94k
          } else {
2705
3.94k
            if (yyaccept <= 9) {
2706
3.94k
              if (yyaccept <= 8) {
2707
3.94k
                if (yyaccept == 7) {
2708
3.94k
                  goto yy142;
2709
3.94k
                } else {
2710
0
                  goto yy163;
2711
0
                }
2712
3.94k
              } else {
2713
0
                goto yy173;
2714
0
              }
2715
3.94k
            } 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
3.94k
          }
2727
7.06k
        } else {
2728
0
          if (yyaccept <= 18) {
2729
0
            if (yyaccept <= 15) {
2730
0
              if (yyaccept <= 14) {
2731
0
                if (yyaccept == 13) {
2732
0
                  goto yy213;
2733
0
                } else {
2734
0
                  goto yy251;
2735
0
                }
2736
0
              } else {
2737
0
                goto yy257;
2738
0
              }
2739
0
            } else {
2740
0
              if (yyaccept <= 17) {
2741
0
                if (yyaccept == 16) {
2742
0
                  goto yy260;
2743
0
                } else {
2744
0
                  goto yy279;
2745
0
                }
2746
0
              } else {
2747
0
                goto yy283;
2748
0
              }
2749
0
            }
2750
0
          } else {
2751
0
            if (yyaccept <= 21) {
2752
0
              if (yyaccept <= 20) {
2753
0
                if (yyaccept == 19) {
2754
0
                  goto yy295;
2755
0
                } else {
2756
0
                  goto yy306;
2757
0
                }
2758
0
              } else {
2759
0
                goto yy319;
2760
0
              }
2761
0
            } else {
2762
0
              if (yyaccept <= 23) {
2763
0
                if (yyaccept == 22) {
2764
0
                  goto yy331;
2765
0
                } else {
2766
0
                  goto yy334;
2767
0
                }
2768
0
              } else {
2769
0
                goto yy336;
2770
0
              }
2771
0
            }
2772
0
          }
2773
0
        }
2774
7.06k
      } else {
2775
0
        if (yyaccept <= 36) {
2776
0
          if (yyaccept <= 30) {
2777
0
            if (yyaccept <= 27) {
2778
0
              if (yyaccept <= 26) {
2779
0
                if (yyaccept == 25) {
2780
0
                  goto yy339;
2781
0
                } else {
2782
0
                  goto yy89;
2783
0
                }
2784
0
              } else {
2785
0
                goto yy379;
2786
0
              }
2787
0
            } else {
2788
0
              if (yyaccept <= 29) {
2789
0
                if (yyaccept == 28) {
2790
0
                  goto yy388;
2791
0
                } else {
2792
0
                  goto yy390;
2793
0
                }
2794
0
              } else {
2795
0
                goto yy399;
2796
0
              }
2797
0
            }
2798
0
          } else {
2799
0
            if (yyaccept <= 33) {
2800
0
              if (yyaccept <= 32) {
2801
0
                if (yyaccept == 31) {
2802
0
                  goto yy401;
2803
0
                } else {
2804
0
                  goto yy408;
2805
0
                }
2806
0
              } else {
2807
0
                goto yy415;
2808
0
              }
2809
0
            } else {
2810
0
              if (yyaccept <= 35) {
2811
0
                if (yyaccept == 34) {
2812
0
                  goto yy471;
2813
0
                } else {
2814
0
                  goto yy473;
2815
0
                }
2816
0
              } else {
2817
0
                goto yy476;
2818
0
              }
2819
0
            }
2820
0
          }
2821
0
        } else {
2822
0
          if (yyaccept <= 42) {
2823
0
            if (yyaccept <= 39) {
2824
0
              if (yyaccept <= 38) {
2825
0
                if (yyaccept == 37) {
2826
0
                  goto yy478;
2827
0
                } else {
2828
0
                  goto yy480;
2829
0
                }
2830
0
              } else {
2831
0
                goto yy482;
2832
0
              }
2833
0
            } else {
2834
0
              if (yyaccept <= 41) {
2835
0
                if (yyaccept == 40) {
2836
0
                  goto yy488;
2837
0
                } else {
2838
0
                  goto yy492;
2839
0
                }
2840
0
              } else {
2841
0
                goto yy501;
2842
0
              }
2843
0
            }
2844
0
          } else {
2845
0
            if (yyaccept <= 45) {
2846
0
              if (yyaccept <= 44) {
2847
0
                if (yyaccept == 43) {
2848
0
                  goto yy511;
2849
0
                } else {
2850
0
                  goto yy513;
2851
0
                }
2852
0
              } else {
2853
0
                goto yy516;
2854
0
              }
2855
0
            } else {
2856
0
              if (yyaccept <= 47) {
2857
0
                if (yyaccept == 46) {
2858
0
                  goto yy526;
2859
0
                } else {
2860
0
                  goto yy528;
2861
0
                }
2862
0
              } else {
2863
0
                goto yy530;
2864
0
              }
2865
0
            }
2866
0
          }
2867
0
        }
2868
0
      }
2869
7.06k
    } else {
2870
602
      if (yyaccept <= 72) {
2871
602
        if (yyaccept <= 60) {
2872
602
          if (yyaccept <= 54) {
2873
602
            if (yyaccept <= 51) {
2874
0
              if (yyaccept <= 50) {
2875
0
                if (yyaccept == 49) {
2876
0
                  goto yy532;
2877
0
                } else {
2878
0
                  goto yy534;
2879
0
                }
2880
0
              } else {
2881
0
                goto yy576;
2882
0
              }
2883
602
            } else {
2884
602
              if (yyaccept <= 53) {
2885
602
                if (yyaccept == 52) {
2886
0
                  goto yy579;
2887
602
                } else {
2888
602
                  goto yy583;
2889
602
                }
2890
602
              } else {
2891
0
                goto yy597;
2892
0
              }
2893
602
            }
2894
602
          } 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
602
        } else {
2918
0
          if (yyaccept <= 66) {
2919
0
            if (yyaccept <= 63) {
2920
0
              if (yyaccept <= 62) {
2921
0
                if (yyaccept == 61) {
2922
0
                  goto yy671;
2923
0
                } else {
2924
0
                  goto yy673;
2925
0
                }
2926
0
              } else {
2927
0
                goto yy675;
2928
0
              }
2929
0
            } else {
2930
0
              if (yyaccept <= 65) {
2931
0
                if (yyaccept == 64) {
2932
0
                  goto yy679;
2933
0
                } else {
2934
0
                  goto yy685;
2935
0
                }
2936
0
              } else {
2937
0
                goto yy690;
2938
0
              }
2939
0
            }
2940
0
          } 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
0
        }
2964
602
      } else {
2965
0
        if (yyaccept <= 84) {
2966
0
          if (yyaccept <= 78) {
2967
0
            if (yyaccept <= 75) {
2968
0
              if (yyaccept <= 74) {
2969
0
                if (yyaccept == 73) {
2970
0
                  goto yy754;
2971
0
                } else {
2972
0
                  goto yy764;
2973
0
                }
2974
0
              } else {
2975
0
                goto yy768;
2976
0
              }
2977
0
            } 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
0
          } else {
2989
0
            if (yyaccept <= 81) {
2990
0
              if (yyaccept <= 80) {
2991
0
                if (yyaccept == 79) {
2992
0
                  goto yy801;
2993
0
                } else {
2994
0
                  goto yy804;
2995
0
                }
2996
0
              } else {
2997
0
                goto yy812;
2998
0
              }
2999
0
            } 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
0
          }
3011
0
        } else {
3012
0
          if (yyaccept <= 90) {
3013
0
            if (yyaccept <= 87) {
3014
0
              if (yyaccept <= 86) {
3015
0
                if (yyaccept == 85) {
3016
0
                  goto yy836;
3017
0
                } else {
3018
0
                  goto yy839;
3019
0
                }
3020
0
              } else {
3021
0
                goto yy854;
3022
0
              }
3023
0
            } else {
3024
0
              if (yyaccept <= 89) {
3025
0
                if (yyaccept == 88) {
3026
0
                  goto yy869;
3027
0
                } else {
3028
0
                  goto yy898;
3029
0
                }
3030
0
              } else {
3031
0
                goto yy903;
3032
0
              }
3033
0
            }
3034
0
          } else {
3035
0
            if (yyaccept <= 93) {
3036
0
              if (yyaccept <= 92) {
3037
0
                if (yyaccept == 91) {
3038
0
                  goto yy876;
3039
0
                } else {
3040
0
                  goto yy911;
3041
0
                }
3042
0
              } else {
3043
0
                goto yy915;
3044
0
              }
3045
0
            } else {
3046
0
              if (yyaccept <= 95) {
3047
0
                if (yyaccept == 94) {
3048
0
                  goto yy886;
3049
0
                } else {
3050
0
                  goto yy931;
3051
0
                }
3052
0
              } else {
3053
0
                goto yy951;
3054
0
              }
3055
0
            }
3056
0
          }
3057
0
        }
3058
0
      }
3059
602
    }
3060
0
yy87:
3061
0
    YYDEBUG(87, *YYCURSOR);
3062
0
    ++YYCURSOR;
3063
0
    YYFILL(1);
3064
0
    yych = *YYCURSOR;
3065
0
    if (yych <= '\f') {
3066
0
      if (yych <= 0x00) goto yy86;
3067
0
      if (yych == '\n') goto yy227;
3068
0
      goto yy225;
3069
0
    } else {
3070
0
      if (yych <= '\r') goto yy227;
3071
0
      if (yych == '[') goto yy86;
3072
0
      goto yy225;
3073
0
    }
3074
6
yy88:
3075
6
    YYDEBUG(88, *YYCURSOR);
3076
6
    ++YYCURSOR;
3077
6
yy89:
3078
6
    YYDEBUG(89, *YYCURSOR);
3079
6
    yyleng = YYCURSOR - SCNG(yy_text);
3080
6
#line 1950 "Zend/zend_language_scanner.l"
3081
6
    {
3082
6
  yyless(1);
3083
6
  RETURN_TOKEN(T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG);
3084
6
}
3085
0
#line 3086 "Zend/zend_language_scanner.c"
3086
18
yy90:
3087
18
    YYDEBUG(90, *YYCURSOR);
3088
18
    ++YYCURSOR;
3089
18
    YYDEBUG(91, *YYCURSOR);
3090
18
    yyleng = YYCURSOR - SCNG(yy_text);
3091
18
#line 1926 "Zend/zend_language_scanner.l"
3092
18
    {
3093
18
  RETURN_TOKEN(T_BOOLEAN_AND);
3094
18
}
3095
0
#line 3096 "Zend/zend_language_scanner.c"
3096
0
yy92:
3097
0
    YYDEBUG(92, *YYCURSOR);
3098
0
    yych = *++YYCURSOR;
3099
0
    if (yych == '.') goto yy229;
3100
0
    goto yy86;
3101
0
yy93:
3102
0
    YYDEBUG(93, *YYCURSOR);
3103
0
    ++YYCURSOR;
3104
0
    YYFILL(1);
3105
0
    yych = *YYCURSOR;
3106
0
    if (yych == '*') goto yy230;
3107
0
    if (yych == '/') goto yy225;
3108
0
    goto yy86;
3109
81
yy94:
3110
81
    YYDEBUG(94, *YYCURSOR);
3111
81
    ++YYCURSOR;
3112
81
    YYDEBUG(95, *YYCURSOR);
3113
81
    yyleng = YYCURSOR - SCNG(yy_text);
3114
81
#line 1902 "Zend/zend_language_scanner.l"
3115
81
    {
3116
81
  RETURN_TOKEN(T_AND_EQUAL);
3117
81
}
3118
0
#line 3119 "Zend/zend_language_scanner.c"
3119
14
yy96:
3120
14
    YYDEBUG(96, *YYCURSOR);
3121
14
    ++YYCURSOR;
3122
14
    YYFILL(7);
3123
14
    yych = *YYCURSOR;
3124
3.12k
yy97:
3125
3.12k
    YYDEBUG(97, *YYCURSOR);
3126
3.12k
    if (yybm[0+yych] & 1) {
3127
14
      goto yy96;
3128
14
    }
3129
3.11k
    switch (yych) {
3130
0
    case 'A':
3131
925
    case 'a': goto yy98;
3132
835
    case 'B':
3133
880
    case 'b': goto yy99;
3134
0
    case 'D':
3135
0
    case 'd': goto yy100;
3136
1
    case 'F':
3137
40
    case 'f': goto yy101;
3138
0
    case 'I':
3139
84
    case 'i': goto yy102;
3140
0
    case 'O':
3141
64
    case 'o': goto yy103;
3142
0
    case 'R':
3143
189
    case 'r': goto yy104;
3144
15
    case 'S':
3145
920
    case 's': goto yy105;
3146
0
    case 'U':
3147
0
    case 'u': goto yy106;
3148
0
    case 'V':
3149
0
    case 'v': goto yy107;
3150
11
    default:  goto yy86;
3151
3.11k
    }
3152
925
yy98:
3153
925
    YYDEBUG(98, *YYCURSOR);
3154
925
    yych = *++YYCURSOR;
3155
925
    if (yych == 'R') goto yy232;
3156
925
    if (yych == 'r') goto yy232;
3157
1
    goto yy86;
3158
880
yy99:
3159
880
    YYDEBUG(99, *YYCURSOR);
3160
880
    yych = *++YYCURSOR;
3161
880
    if (yych <= 'O') {
3162
834
      if (yych == 'I') goto yy233;
3163
834
      if (yych <= 'N') goto yy86;
3164
0
      goto yy234;
3165
834
    } else {
3166
46
      if (yych <= 'i') {
3167
1
        if (yych <= 'h') goto yy86;
3168
0
        goto yy233;
3169
45
      } else {
3170
45
        if (yych == 'o') goto yy234;
3171
0
        goto yy86;
3172
45
      }
3173
46
    }
3174
0
yy100:
3175
0
    YYDEBUG(100, *YYCURSOR);
3176
0
    yych = *++YYCURSOR;
3177
0
    if (yych == 'O') goto yy235;
3178
0
    if (yych == 'o') goto yy235;
3179
0
    goto yy86;
3180
40
yy101:
3181
40
    YYDEBUG(101, *YYCURSOR);
3182
40
    yych = *++YYCURSOR;
3183
40
    if (yych == 'L') goto yy236;
3184
40
    if (yych == 'l') goto yy236;
3185
1
    goto yy86;
3186
84
yy102:
3187
84
    YYDEBUG(102, *YYCURSOR);
3188
84
    yych = *++YYCURSOR;
3189
84
    if (yych == 'N') goto yy237;
3190
84
    if (yych == 'n') goto yy237;
3191
0
    goto yy86;
3192
64
yy103:
3193
64
    YYDEBUG(103, *YYCURSOR);
3194
64
    yych = *++YYCURSOR;
3195
64
    if (yych == 'B') goto yy238;
3196
64
    if (yych == 'b') goto yy238;
3197
1
    goto yy86;
3198
189
yy104:
3199
189
    YYDEBUG(104, *YYCURSOR);
3200
189
    yych = *++YYCURSOR;
3201
189
    if (yych == 'E') goto yy239;
3202
189
    if (yych == 'e') goto yy239;
3203
189
    goto yy86;
3204
920
yy105:
3205
920
    YYDEBUG(105, *YYCURSOR);
3206
920
    yych = *++YYCURSOR;
3207
920
    if (yych == 'T') goto yy240;
3208
905
    if (yych == 't') goto yy240;
3209
0
    goto yy86;
3210
0
yy106:
3211
0
    YYDEBUG(106, *YYCURSOR);
3212
0
    yych = *++YYCURSOR;
3213
0
    if (yych == 'N') goto yy241;
3214
0
    if (yych == 'n') goto yy241;
3215
0
    goto yy86;
3216
0
yy107:
3217
0
    YYDEBUG(107, *YYCURSOR);
3218
0
    yych = *++YYCURSOR;
3219
0
    if (yych == 'O') goto yy242;
3220
0
    if (yych == 'o') goto yy242;
3221
0
    goto yy86;
3222
7
yy108:
3223
7
    YYDEBUG(108, *YYCURSOR);
3224
7
    yych = *++YYCURSOR;
3225
7
    if (yych == '=') goto yy243;
3226
7
    YYDEBUG(109, *YYCURSOR);
3227
7
    yyleng = YYCURSOR - SCNG(yy_text);
3228
7
#line 1874 "Zend/zend_language_scanner.l"
3229
7
    {
3230
7
  RETURN_TOKEN(T_POW);
3231
7
}
3232
0
#line 3233 "Zend/zend_language_scanner.c"
3233
32
yy110:
3234
32
    YYDEBUG(110, *YYCURSOR);
3235
32
    ++YYCURSOR;
3236
32
    YYDEBUG(111, *YYCURSOR);
3237
32
    yyleng = YYCURSOR - SCNG(yy_text);
3238
32
#line 1870 "Zend/zend_language_scanner.l"
3239
32
    {
3240
32
  RETURN_TOKEN(T_MUL_EQUAL);
3241
32
}
3242
0
#line 3243 "Zend/zend_language_scanner.c"
3243
147
yy112:
3244
147
    YYDEBUG(112, *YYCURSOR);
3245
147
    ++YYCURSOR;
3246
147
    YYDEBUG(113, *YYCURSOR);
3247
147
    yyleng = YYCURSOR - SCNG(yy_text);
3248
147
#line 1826 "Zend/zend_language_scanner.l"
3249
147
    {
3250
147
  RETURN_TOKEN(T_INC);
3251
147
}
3252
0
#line 3253 "Zend/zend_language_scanner.c"
3253
30
yy114:
3254
30
    YYDEBUG(114, *YYCURSOR);
3255
30
    ++YYCURSOR;
3256
30
    YYDEBUG(115, *YYCURSOR);
3257
30
    yyleng = YYCURSOR - SCNG(yy_text);
3258
30
#line 1862 "Zend/zend_language_scanner.l"
3259
30
    {
3260
30
  RETURN_TOKEN(T_PLUS_EQUAL);
3261
30
}
3262
0
#line 3263 "Zend/zend_language_scanner.c"
3263
46
yy116:
3264
46
    YYDEBUG(116, *YYCURSOR);
3265
46
    ++YYCURSOR;
3266
46
    YYDEBUG(117, *YYCURSOR);
3267
46
    yyleng = YYCURSOR - SCNG(yy_text);
3268
46
#line 1830 "Zend/zend_language_scanner.l"
3269
46
    {
3270
46
  RETURN_TOKEN(T_DEC);
3271
46
}
3272
0
#line 3273 "Zend/zend_language_scanner.c"
3273
24
yy118:
3274
24
    YYDEBUG(118, *YYCURSOR);
3275
24
    ++YYCURSOR;
3276
24
    YYDEBUG(119, *YYCURSOR);
3277
24
    yyleng = YYCURSOR - SCNG(yy_text);
3278
24
#line 1866 "Zend/zend_language_scanner.l"
3279
24
    {
3280
24
  RETURN_TOKEN(T_MINUS_EQUAL);
3281
24
}
3282
0
#line 3283 "Zend/zend_language_scanner.c"
3283
159
yy120:
3284
159
    YYDEBUG(120, *YYCURSOR);
3285
159
    ++YYCURSOR;
3286
159
    YYDEBUG(121, *YYCURSOR);
3287
159
    yyleng = YYCURSOR - SCNG(yy_text);
3288
159
#line 1587 "Zend/zend_language_scanner.l"
3289
159
    {
3290
159
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
3291
159
  RETURN_TOKEN(T_OBJECT_OPERATOR);
3292
159
}
3293
0
#line 3294 "Zend/zend_language_scanner.c"
3294
33
yy122:
3295
33
    YYDEBUG(122, *YYCURSOR);
3296
33
    yych = *++YYCURSOR;
3297
33
    if (yych == '.') goto yy245;
3298
0
    goto yy86;
3299
316
yy123:
3300
316
    YYDEBUG(123, *YYCURSOR);
3301
316
    yyaccept = 5;
3302
316
    YYMARKER = ++YYCURSOR;
3303
316
    YYFILL(2);
3304
316
    yych = *YYCURSOR;
3305
1.18k
yy124:
3306
1.18k
    YYDEBUG(124, *YYCURSOR);
3307
1.18k
    if (yych <= 'E') {
3308
1.18k
      if (yych <= '/') goto yy125;
3309
438
      if (yych <= '9') goto yy123;
3310
221
      if (yych >= 'E') goto yy135;
3311
221
    } else {
3312
0
      if (yych <= '_') {
3313
0
        if (yych >= '_') goto yy247;
3314
0
      } else {
3315
0
        if (yych == 'e') goto yy135;
3316
0
      }
3317
0
    }
3318
964
yy125:
3319
964
    YYDEBUG(125, *YYCURSOR);
3320
964
    yyleng = YYCURSOR - SCNG(yy_text);
3321
964
#line 2233 "Zend/zend_language_scanner.l"
3322
964
    {
3323
964
  const char *end;
3324
964
  size_t len = yyleng;
3325
964
  char *dnum = yytext;
3326
964
  bool contains_underscores = (memchr(dnum, '_', len) != NULL);
3327
3328
964
  if (contains_underscores) {
3329
0
    dnum = estrndup(dnum, len);
3330
0
    strip_underscores(dnum, &len);
3331
0
  }
3332
3333
964
  ZVAL_DOUBLE(zendlval, zend_strtod(dnum, &end));
3334
  /* errno isn't checked since we allow HUGE_VAL/INF overflow */
3335
964
  ZEND_ASSERT(end == dnum + len);
3336
964
  if (contains_underscores) {
3337
0
    efree(dnum);
3338
0
  }
3339
964
  RETURN_TOKEN_WITH_VAL(T_DNUMBER);
3340
964
}
3341
0
#line 3342 "Zend/zend_language_scanner.c"
3342
72
yy126:
3343
72
    YYDEBUG(126, *YYCURSOR);
3344
72
    ++YYCURSOR;
3345
72
    YYDEBUG(127, *YYCURSOR);
3346
72
    yyleng = YYCURSOR - SCNG(yy_text);
3347
72
#line 1886 "Zend/zend_language_scanner.l"
3348
72
    {
3349
72
  RETURN_TOKEN(T_CONCAT_EQUAL);
3350
72
}
3351
0
#line 3352 "Zend/zend_language_scanner.c"
3352
1.24k
yy128:
3353
1.24k
    YYDEBUG(128, *YYCURSOR);
3354
1.24k
    yyaccept = 6;
3355
1.24k
    yych = *(YYMARKER = ++YYCURSOR);
3356
1.24k
    if (yych == '*') goto yy248;
3357
1.24k
yy129:
3358
1.24k
    YYDEBUG(129, *YYCURSOR);
3359
1.24k
    yyleng = YYCURSOR - SCNG(yy_text);
3360
1.24k
#line 2484 "Zend/zend_language_scanner.l"
3361
1.24k
    {
3362
1.24k
  int doc_com;
3363
3364
1.24k
  if (yyleng > 2) {
3365
0
    doc_com = 1;
3366
0
    RESET_DOC_COMMENT();
3367
1.24k
  } else {
3368
1.24k
    doc_com = 0;
3369
1.24k
  }
3370
3371
66.3k
  while (YYCURSOR < YYLIMIT) {
3372
66.3k
    if (*YYCURSOR++ == '*' && *YYCURSOR == '/') {
3373
1.24k
      break;
3374
1.24k
    }
3375
66.3k
  }
3376
3377
1.24k
  if (YYCURSOR < YYLIMIT) {
3378
1.24k
    YYCURSOR++;
3379
1.24k
  } else {
3380
0
    zend_throw_exception_ex(zend_ce_parse_error, 0, "Unterminated comment starting line %" PRIu32, CG(zend_lineno));
3381
0
    if (PARSER_MODE()) {
3382
0
      RETURN_TOKEN(T_ERROR);
3383
0
    }
3384
0
  }
3385
3386
1.24k
  yyleng = YYCURSOR - SCNG(yy_text);
3387
1.24k
  HANDLE_NEWLINES(yytext, yyleng);
3388
3389
1.24k
  if (doc_com) {
3390
0
    CG(doc_comment) = zend_string_init(yytext, yyleng, 0);
3391
0
    RETURN_OR_SKIP_TOKEN(T_DOC_COMMENT);
3392
0
  }
3393
3394
1.24k
  RETURN_OR_SKIP_TOKEN(T_COMMENT);
3395
1.24k
}
3396
0
#line 3397 "Zend/zend_language_scanner.c"
3397
1.89k
yy130:
3398
1.89k
    YYDEBUG(130, *YYCURSOR);
3399
1.89k
    ++YYCURSOR;
3400
1.89k
    goto yy13;
3401
0
yy131:
3402
0
    YYDEBUG(131, *YYCURSOR);
3403
0
    ++YYCURSOR;
3404
0
    YYDEBUG(132, *YYCURSOR);
3405
0
    yyleng = YYCURSOR - SCNG(yy_text);
3406
0
#line 1882 "Zend/zend_language_scanner.l"
3407
0
    {
3408
0
  RETURN_TOKEN(T_DIV_EQUAL);
3409
0
}
3410
0
#line 3411 "Zend/zend_language_scanner.c"
3411
865
yy133:
3412
865
    YYDEBUG(133, *YYCURSOR);
3413
865
    yyaccept = 5;
3414
865
    yych = *(YYMARKER = ++YYCURSOR);
3415
865
    if (yych == '_') goto yy125;
3416
865
    goto yy124;
3417
865
yy134:
3418
0
    YYDEBUG(134, *YYCURSOR);
3419
0
    ++YYCURSOR;
3420
0
    YYFILL(1);
3421
0
    yych = *YYCURSOR;
3422
0
    if (yybm[0+yych] & 8) {
3423
0
      goto yy249;
3424
0
    }
3425
0
    goto yy86;
3426
0
yy135:
3427
0
    YYDEBUG(135, *YYCURSOR);
3428
0
    yych = *++YYCURSOR;
3429
0
    if (yych <= ',') {
3430
0
      if (yych == '+') goto yy252;
3431
0
      goto yy86;
3432
0
    } else {
3433
0
      if (yych <= '-') goto yy252;
3434
0
      if (yych <= '/') goto yy86;
3435
0
      if (yych <= '9') goto yy253;
3436
0
      goto yy86;
3437
0
    }
3438
0
yy136:
3439
0
    YYDEBUG(136, *YYCURSOR);
3440
0
    ++YYCURSOR;
3441
0
    YYFILL(1);
3442
0
    yych = *YYCURSOR;
3443
0
    if (yybm[0+yych] & 16) {
3444
0
      goto yy255;
3445
0
    }
3446
0
    goto yy86;
3447
6
yy137:
3448
6
    YYDEBUG(137, *YYCURSOR);
3449
6
    ++YYCURSOR;
3450
6
    YYFILL(1);
3451
6
    yych = *YYCURSOR;
3452
6
    if (yybm[0+yych] & 32) {
3453
6
      goto yy258;
3454
6
    }
3455
0
    goto yy86;
3456
2
yy138:
3457
2
    YYDEBUG(138, *YYCURSOR);
3458
2
    ++YYCURSOR;
3459
2
    YYFILL(1);
3460
2
    yych = *YYCURSOR;
3461
2
    if (yybm[256+yych] & 64) {
3462
0
      goto yy32;
3463
0
    }
3464
2
    goto yy86;
3465
20
yy139:
3466
20
    YYDEBUG(139, *YYCURSOR);
3467
20
    ++YYCURSOR;
3468
20
    YYDEBUG(140, *YYCURSOR);
3469
20
    yyleng = YYCURSOR - SCNG(yy_text);
3470
20
#line 1614 "Zend/zend_language_scanner.l"
3471
20
    {
3472
20
  RETURN_TOKEN(T_PAAMAYIM_NEKUDOTAYIM);
3473
20
}
3474
0
#line 3475 "Zend/zend_language_scanner.c"
3475
27.7k
yy141:
3476
27.7k
    YYDEBUG(141, *YYCURSOR);
3477
27.7k
    yyaccept = 7;
3478
27.7k
    yych = *(YYMARKER = ++YYCURSOR);
3479
27.7k
    if (yych <= ';') goto yy142;
3480
27.5k
    if (yych <= '<') goto yy261;
3481
3.50k
    if (yych <= '=') goto yy263;
3482
7.61k
yy142:
3483
7.61k
    YYDEBUG(142, *YYCURSOR);
3484
7.61k
    yyleng = YYCURSOR - SCNG(yy_text);
3485
7.61k
#line 1942 "Zend/zend_language_scanner.l"
3486
7.61k
    {
3487
7.61k
  RETURN_TOKEN(T_SL);
3488
7.61k
}
3489
0
#line 3490 "Zend/zend_language_scanner.c"
3490
56
yy143:
3491
56
    YYDEBUG(143, *YYCURSOR);
3492
56
    yych = *++YYCURSOR;
3493
56
    if (yych == '>') goto yy265;
3494
56
    YYDEBUG(144, *YYCURSOR);
3495
56
    yyleng = YYCURSOR - SCNG(yy_text);
3496
56
#line 1854 "Zend/zend_language_scanner.l"
3497
56
    {
3498
56
  RETURN_TOKEN(T_IS_SMALLER_OR_EQUAL);
3499
56
}
3500
0
#line 3501 "Zend/zend_language_scanner.c"
3501
0
yy145:
3502
0
    YYDEBUG(145, *YYCURSOR);
3503
0
    ++YYCURSOR;
3504
0
    goto yy76;
3505
85
yy146:
3506
85
    YYDEBUG(146, *YYCURSOR);
3507
85
    yych = *++YYCURSOR;
3508
85
    if (yych == '=') goto yy267;
3509
41
    YYDEBUG(147, *YYCURSOR);
3510
41
    yyleng = YYCURSOR - SCNG(yy_text);
3511
41
#line 1842 "Zend/zend_language_scanner.l"
3512
41
    {
3513
41
  RETURN_TOKEN(T_IS_EQUAL);
3514
41
}
3515
0
#line 3516 "Zend/zend_language_scanner.c"
3516
75
yy148:
3517
75
    YYDEBUG(148, *YYCURSOR);
3518
75
    ++YYCURSOR;
3519
75
    YYDEBUG(149, *YYCURSOR);
3520
75
    yyleng = YYCURSOR - SCNG(yy_text);
3521
75
#line 1810 "Zend/zend_language_scanner.l"
3522
75
    {
3523
75
  RETURN_TOKEN(T_DOUBLE_ARROW);
3524
75
}
3525
0
#line 3526 "Zend/zend_language_scanner.c"
3526
20
yy150:
3527
20
    YYDEBUG(150, *YYCURSOR);
3528
20
    ++YYCURSOR;
3529
20
    YYDEBUG(151, *YYCURSOR);
3530
20
    yyleng = YYCURSOR - SCNG(yy_text);
3531
20
#line 1858 "Zend/zend_language_scanner.l"
3532
20
    {
3533
20
  RETURN_TOKEN(T_IS_GREATER_OR_EQUAL);
3534
20
}
3535
0
#line 3536 "Zend/zend_language_scanner.c"
3536
8
yy152:
3537
8
    YYDEBUG(152, *YYCURSOR);
3538
8
    yych = *++YYCURSOR;
3539
8
    if (yych == '=') goto yy269;
3540
8
    YYDEBUG(153, *YYCURSOR);
3541
8
    yyleng = YYCURSOR - SCNG(yy_text);
3542
8
#line 1946 "Zend/zend_language_scanner.l"
3543
8
    {
3544
8
  RETURN_TOKEN(T_SR);
3545
8
}
3546
0
#line 3547 "Zend/zend_language_scanner.c"
3547
1.52k
yy154:
3548
1.52k
    YYDEBUG(154, *YYCURSOR);
3549
1.52k
    yych = *++YYCURSOR;
3550
1.52k
    if (yych == '>') goto yy271;
3551
1
    goto yy86;
3552
497
yy155:
3553
497
    YYDEBUG(155, *YYCURSOR);
3554
497
    yych = *++YYCURSOR;
3555
497
    if (yych == '\n') goto yy273;
3556
136
    if (yych == '\r') goto yy274;
3557
497
yy156:
3558
497
    YYDEBUG(156, *YYCURSOR);
3559
497
    yyleng = YYCURSOR - SCNG(yy_text);
3560
497
#line 2526 "Zend/zend_language_scanner.l"
3561
497
    {
3562
497
  BEGIN(INITIAL);
3563
497
  if (yytext[yyleng-1] != '>') {
3564
362
    CG(increment_lineno) = 1;
3565
362
  }
3566
497
  if (PARSER_MODE()) {
3567
113
    RETURN_TOKEN(';');  /* implicit ';' at php-end tag */
3568
113
  }
3569
384
  RETURN_TOKEN(T_CLOSE_TAG);
3570
384
}
3571
0
#line 3572 "Zend/zend_language_scanner.c"
3572
94
yy157:
3573
94
    YYDEBUG(157, *YYCURSOR);
3574
94
    yych = *++YYCURSOR;
3575
94
    if (yych == '=') goto yy275;
3576
90
    YYDEBUG(158, *YYCURSOR);
3577
90
    yyleng = YYCURSOR - SCNG(yy_text);
3578
90
#line 1622 "Zend/zend_language_scanner.l"
3579
90
    {
3580
90
  RETURN_TOKEN(T_COALESCE);
3581
90
}
3582
0
#line 3583 "Zend/zend_language_scanner.c"
3583
105
yy159:
3584
105
    YYDEBUG(159, *YYCURSOR);
3585
105
    yyaccept = 4;
3586
105
    yych = *(YYMARKER = ++YYCURSOR);
3587
105
    if (yych == 'S') goto yy277;
3588
105
    if (yych == 's') goto yy277;
3589
105
    goto yy48;
3590
329
yy160:
3591
329
    YYDEBUG(160, *YYCURSOR);
3592
329
    yyaccept = 4;
3593
329
    yych = *(YYMARKER = ++YYCURSOR);
3594
329
    if (yych == 'D') goto yy278;
3595
329
    if (yych == 'd') goto yy278;
3596
0
    goto yy48;
3597
795
yy161:
3598
795
    YYDEBUG(161, *YYCURSOR);
3599
795
    yyaccept = 4;
3600
795
    yych = *(YYMARKER = ++YYCURSOR);
3601
795
    if (yych == 'R') goto yy280;
3602
795
    if (yych == 'r') goto yy280;
3603
288
    goto yy48;
3604
288
yy162:
3605
19
    YYDEBUG(162, *YYCURSOR);
3606
19
    yyaccept = 8;
3607
19
    yych = *(YYMARKER = ++YYCURSOR);
3608
19
    if (yybm[256+yych] & 128) {
3609
1
      goto yy47;
3610
1
    }
3611
18
    if (yych == '\\') goto yy164;
3612
18
yy163:
3613
18
    YYDEBUG(163, *YYCURSOR);
3614
18
    yyleng = YYCURSOR - SCNG(yy_text);
3615
18
#line 1510 "Zend/zend_language_scanner.l"
3616
18
    {
3617
18
  RETURN_TOKEN_WITH_IDENT(T_AS);
3618
18
}
3619
0
#line 3620 "Zend/zend_language_scanner.c"
3620
268
yy164:
3621
268
    YYDEBUG(164, *YYCURSOR);
3622
268
    ++YYCURSOR;
3623
268
    YYFILL(1);
3624
268
    yych = *YYCURSOR;
3625
268
    if (yych <= '_') {
3626
6
      if (yych <= '@') goto yy86;
3627
4
      if (yych <= 'Z') goto yy281;
3628
0
      if (yych <= '^') goto yy86;
3629
0
      goto yy281;
3630
262
    } else {
3631
262
      if (yych <= '`') goto yy86;
3632
262
      if (yych <= 'z') goto yy281;
3633
153
      if (yych <= 0x7F) goto yy86;
3634
0
      goto yy281;
3635
153
    }
3636
258
yy165:
3637
258
    YYDEBUG(165, *YYCURSOR);
3638
258
    yych = *++YYCURSOR;
3639
258
    if (yych == '<') goto yy284;
3640
0
    goto yy86;
3641
1
yy166:
3642
1
    YYDEBUG(166, *YYCURSOR);
3643
1
    yyaccept = 4;
3644
1
    yych = *(YYMARKER = ++YYCURSOR);
3645
1
    if (yych == 'E') goto yy285;
3646
1
    if (yych == 'e') goto yy285;
3647
0
    goto yy48;
3648
915
yy167:
3649
915
    YYDEBUG(167, *YYCURSOR);
3650
915
    yyaccept = 4;
3651
915
    yych = *(YYMARKER = ++YYCURSOR);
3652
915
    if (yych <= 'T') {
3653
0
      if (yych <= 'L') {
3654
0
        if (yych <= 'K') goto yy48;
3655
0
        goto yy286;
3656
0
      } else {
3657
0
        if (yych <= 'R') goto yy48;
3658
0
        if (yych <= 'S') goto yy287;
3659
0
        goto yy288;
3660
0
      }
3661
915
    } else {
3662
915
      if (yych <= 'r') {
3663
863
        if (yych == 'l') goto yy286;
3664
0
        goto yy48;
3665
863
      } else {
3666
52
        if (yych <= 's') goto yy287;
3667
52
        if (yych <= 't') goto yy288;
3668
0
        goto yy48;
3669
52
      }
3670
915
    }
3671
1.58k
yy168:
3672
1.58k
    YYDEBUG(168, *YYCURSOR);
3673
1.58k
    yyaccept = 4;
3674
1.58k
    yych = *(YYMARKER = ++YYCURSOR);
3675
1.58k
    if (yych <= 'O') {
3676
0
      if (yych == 'A') goto yy289;
3677
0
      if (yych <= 'N') goto yy48;
3678
0
      goto yy290;
3679
1.58k
    } else {
3680
1.58k
      if (yych <= 'a') {
3681
866
        if (yych <= '`') goto yy48;
3682
866
        goto yy289;
3683
866
      } else {
3684
720
        if (yych == 'o') goto yy290;
3685
0
        goto yy48;
3686
720
      }
3687
1.58k
    }
3688
578
yy169:
3689
578
    YYDEBUG(169, *YYCURSOR);
3690
578
    yyaccept = 4;
3691
578
    yych = *(YYMARKER = ++YYCURSOR);
3692
578
    if (yych == 'N') goto yy291;
3693
578
    if (yych == 'n') goto yy291;
3694
0
    goto yy48;
3695
19
yy170:
3696
19
    YYDEBUG(170, *YYCURSOR);
3697
19
    yyaccept = 4;
3698
19
    yych = *(YYMARKER = ++YYCURSOR);
3699
19
    if (yych <= 'F') {
3700
0
      if (yych == 'C') goto yy292;
3701
0
      if (yych <= 'E') goto yy48;
3702
0
      goto yy293;
3703
19
    } else {
3704
19
      if (yych <= 'c') {
3705
0
        if (yych <= 'b') goto yy48;
3706
0
        goto yy292;
3707
19
      } else {
3708
19
        if (yych == 'f') goto yy293;
3709
0
        goto yy48;
3710
19
      }
3711
19
    }
3712
0
yy171:
3713
0
    YYDEBUG(171, *YYCURSOR);
3714
0
    yyaccept = 4;
3715
0
    yych = *(YYMARKER = ++YYCURSOR);
3716
0
    if (yych == 'E') goto yy294;
3717
0
    if (yych == 'e') goto yy294;
3718
0
    goto yy48;
3719
26
yy172:
3720
26
    YYDEBUG(172, *YYCURSOR);
3721
26
    yyaccept = 9;
3722
26
    yych = *(YYMARKER = ++YYCURSOR);
3723
26
    if (yybm[256+yych] & 128) {
3724
26
      goto yy47;
3725
26
    }
3726
0
    if (yych == '\\') goto yy164;
3727
0
yy173:
3728
0
    YYDEBUG(173, *YYCURSOR);
3729
0
    yyleng = YYCURSOR - SCNG(yy_text);
3730
0
#line 1478 "Zend/zend_language_scanner.l"
3731
0
    {
3732
0
  RETURN_TOKEN_WITH_IDENT(T_DO);
3733
0
}
3734
0
#line 3735 "Zend/zend_language_scanner.c"
3735
300
yy174:
3736
300
    YYDEBUG(174, *YYCURSOR);
3737
300
    yyaccept = 4;
3738
300
    yych = *(YYMARKER = ++YYCURSOR);
3739
300
    if (yych == 'H') goto yy296;
3740
300
    if (yych == 'h') goto yy296;
3741
0
    goto yy48;
3742
471
yy175:
3743
471
    YYDEBUG(175, *YYCURSOR);
3744
471
    yyaccept = 4;
3745
471
    yych = *(YYMARKER = ++YYCURSOR);
3746
471
    if (yych == 'S') goto yy297;
3747
471
    if (yych == 's') goto yy297;
3748
471
    goto yy48;
3749
471
yy176:
3750
0
    YYDEBUG(176, *YYCURSOR);
3751
0
    yyaccept = 4;
3752
0
    yych = *(YYMARKER = ++YYCURSOR);
3753
0
    if (yych == 'P') goto yy298;
3754
0
    if (yych == 'p') goto yy298;
3755
0
    goto yy48;
3756
2.82k
yy177:
3757
2.82k
    YYDEBUG(177, *YYCURSOR);
3758
2.82k
    yyaccept = 4;
3759
2.82k
    yych = *(YYMARKER = ++YYCURSOR);
3760
2.82k
    if (yych <= 'U') {
3761
0
      if (yych == 'D') goto yy299;
3762
0
      if (yych <= 'T') goto yy48;
3763
0
      goto yy300;
3764
2.82k
    } else {
3765
2.82k
      if (yych <= 'd') {
3766
282
        if (yych <= 'c') goto yy48;
3767
282
        goto yy299;
3768
2.54k
      } else {
3769
2.54k
        if (yych == 'u') goto yy300;
3770
191
        goto yy48;
3771
2.54k
      }
3772
2.82k
    }
3773
8
yy178:
3774
8
    YYDEBUG(178, *YYCURSOR);
3775
8
    yyaccept = 4;
3776
8
    yych = *(YYMARKER = ++YYCURSOR);
3777
8
    if (yych == 'A') goto yy301;
3778
8
    if (yych == 'a') goto yy301;
3779
0
    goto yy48;
3780
633
yy179:
3781
633
    YYDEBUG(179, *YYCURSOR);
3782
633
    yyaccept = 4;
3783
633
    yych = *(YYMARKER = ++YYCURSOR);
3784
633
    if (yych <= 'T') {
3785
190
      if (yych == 'I') goto yy302;
3786
190
      if (yych <= 'S') goto yy48;
3787
0
      goto yy303;
3788
443
    } else {
3789
443
      if (yych <= 'i') {
3790
38
        if (yych <= 'h') goto yy48;
3791
0
        goto yy302;
3792
405
      } else {
3793
405
        if (yych == 't') goto yy303;
3794
0
        goto yy48;
3795
405
      }
3796
443
    }
3797
0
yy180:
3798
0
    YYDEBUG(180, *YYCURSOR);
3799
0
    yyaccept = 4;
3800
0
    yych = *(YYMARKER = ++YYCURSOR);
3801
0
    if (yych == 'N') goto yy304;
3802
0
    if (yych == 'n') goto yy304;
3803
0
    goto yy48;
3804
3
yy181:
3805
3
    YYDEBUG(181, *YYCURSOR);
3806
3
    yyaccept = 10;
3807
3
    yych = *(YYMARKER = ++YYCURSOR);
3808
3
    if (yybm[256+yych] & 128) {
3809
0
      goto yy47;
3810
0
    }
3811
3
    if (yych == '\\') goto yy164;
3812
3
yy182:
3813
3
    YYDEBUG(182, *YYCURSOR);
3814
3
    yyleng = YYCURSOR - SCNG(yy_text);
3815
3
#line 1407 "Zend/zend_language_scanner.l"
3816
3
    {
3817
3
  RETURN_TOKEN_WITH_IDENT(T_FN);
3818
3
}
3819
0
#line 3820 "Zend/zend_language_scanner.c"
3820
1.88k
yy183:
3821
1.88k
    YYDEBUG(183, *YYCURSOR);
3822
1.88k
    yyaccept = 4;
3823
1.88k
    yych = *(YYMARKER = ++YYCURSOR);
3824
1.88k
    if (yych == 'R') goto yy305;
3825
1.88k
    if (yych == 'r') goto yy305;
3826
1.00k
    goto yy48;
3827
2.39k
yy184:
3828
2.39k
    YYDEBUG(184, *YYCURSOR);
3829
2.39k
    yyaccept = 4;
3830
2.39k
    yych = *(YYMARKER = ++YYCURSOR);
3831
2.39k
    if (yych == 'N') goto yy307;
3832
2.39k
    if (yych == 'n') goto yy307;
3833
0
    goto yy48;
3834
18
yy185:
3835
18
    YYDEBUG(185, *YYCURSOR);
3836
18
    yyaccept = 4;
3837
18
    yych = *(YYMARKER = ++YYCURSOR);
3838
18
    if (yych == 'O') goto yy308;
3839
18
    if (yych == 'o') goto yy308;
3840
18
    goto yy48;
3841
18
yy186:
3842
0
    YYDEBUG(186, *YYCURSOR);
3843
0
    yyaccept = 4;
3844
0
    yych = *(YYMARKER = ++YYCURSOR);
3845
0
    if (yych == 'T') goto yy309;
3846
0
    if (yych == 't') goto yy309;
3847
0
    goto yy48;
3848
6
yy187:
3849
6
    YYDEBUG(187, *YYCURSOR);
3850
6
    yyaccept = 11;
3851
6
    yych = *(YYMARKER = ++YYCURSOR);
3852
6
    if (yybm[256+yych] & 128) {
3853
0
      goto yy47;
3854
0
    }
3855
6
    if (yych == '\\') goto yy164;
3856
6
yy188:
3857
6
    YYDEBUG(188, *YYCURSOR);
3858
6
    yyleng = YYCURSOR - SCNG(yy_text);
3859
6
#line 1454 "Zend/zend_language_scanner.l"
3860
6
    {
3861
6
  RETURN_TOKEN_WITH_IDENT(T_IF);
3862
6
}
3863
0
#line 3864 "Zend/zend_language_scanner.c"
3864
837
yy189:
3865
837
    YYDEBUG(189, *YYCURSOR);
3866
837
    yyaccept = 4;
3867
837
    yych = *(YYMARKER = ++YYCURSOR);
3868
837
    if (yych == 'P') goto yy310;
3869
837
    if (yych == 'p') goto yy310;
3870
3
    goto yy48;
3871
908
yy190:
3872
908
    YYDEBUG(190, *YYCURSOR);
3873
908
    yyaccept = 4;
3874
908
    yych = *(YYMARKER = ++YYCURSOR);
3875
908
    if (yych <= 'T') {
3876
130
      if (yych <= 'C') {
3877
130
        if (yych <= 'B') goto yy48;
3878
0
        goto yy311;
3879
130
      } else {
3880
0
        if (yych <= 'R') goto yy48;
3881
0
        if (yych <= 'S') goto yy312;
3882
0
        goto yy313;
3883
0
      }
3884
778
    } else {
3885
778
      if (yych <= 'r') {
3886
4
        if (yych == 'c') goto yy311;
3887
4
        goto yy48;
3888
774
      } else {
3889
774
        if (yych <= 's') goto yy312;
3890
774
        if (yych <= 't') goto yy313;
3891
741
        goto yy48;
3892
774
      }
3893
778
    }
3894
9
yy191:
3895
9
    YYDEBUG(191, *YYCURSOR);
3896
9
    yyaccept = 4;
3897
9
    yych = *(YYMARKER = ++YYCURSOR);
3898
9
    if (yych == 'S') goto yy314;
3899
9
    if (yych == 's') goto yy314;
3900
9
    goto yy48;
3901
9
yy192:
3902
0
    YYDEBUG(192, *YYCURSOR);
3903
0
    yyaccept = 4;
3904
0
    yych = *(YYMARKER = ++YYCURSOR);
3905
0
    if (yych == 'S') goto yy315;
3906
0
    if (yych == 's') goto yy315;
3907
0
    goto yy48;
3908
1
yy193:
3909
1
    YYDEBUG(193, *YYCURSOR);
3910
1
    yyaccept = 4;
3911
1
    yych = *(YYMARKER = ++YYCURSOR);
3912
1
    if (yych == 'T') goto yy316;
3913
1
    if (yych == 't') goto yy316;
3914
1
    goto yy48;
3915
1
yy194:
3916
0
    YYDEBUG(194, *YYCURSOR);
3917
0
    yyaccept = 4;
3918
0
    yych = *(YYMARKER = ++YYCURSOR);
3919
0
    if (yych == 'M') goto yy317;
3920
0
    if (yych == 'm') goto yy317;
3921
0
    goto yy48;
3922
260
yy195:
3923
260
    YYDEBUG(195, *YYCURSOR);
3924
260
    yyaccept = 4;
3925
260
    yych = *(YYMARKER = ++YYCURSOR);
3926
260
    if (yych == 'W') goto yy318;
3927
260
    if (yych == 'w') goto yy318;
3928
0
    goto yy48;
3929
193
yy196:
3930
193
    YYDEBUG(196, *YYCURSOR);
3931
193
    yyaccept = 12;
3932
193
    yych = *(YYMARKER = ++YYCURSOR);
3933
193
    if (yybm[256+yych] & 128) {
3934
0
      goto yy47;
3935
0
    }
3936
193
    if (yych == '\\') goto yy164;
3937
193
yy197:
3938
193
    YYDEBUG(197, *YYCURSOR);
3939
193
    yyleng = YYCURSOR - SCNG(yy_text);
3940
193
#line 1930 "Zend/zend_language_scanner.l"
3941
193
    {
3942
193
  RETURN_TOKEN_WITH_IDENT(T_LOGICAL_OR);
3943
193
}
3944
0
#line 3945 "Zend/zend_language_scanner.c"
3945
74
yy198:
3946
74
    YYDEBUG(198, *YYCURSOR);
3947
74
    yyaccept = 4;
3948
74
    yych = *(YYMARKER = ++YYCURSOR);
3949
74
    if (yych <= 'O') {
3950
0
      if (yych == 'I') goto yy320;
3951
0
      if (yych <= 'N') goto yy48;
3952
0
      goto yy321;
3953
74
    } else {
3954
74
      if (yych <= 'i') {
3955
28
        if (yych <= 'h') goto yy48;
3956
28
        goto yy320;
3957
46
      } else {
3958
46
        if (yych == 'o') goto yy321;
3959
0
        goto yy48;
3960
46
      }
3961
74
    }
3962
2.00k
yy199:
3963
2.00k
    YYDEBUG(199, *YYCURSOR);
3964
2.00k
    yyaccept = 4;
3965
2.00k
    yych = *(YYMARKER = ++YYCURSOR);
3966
2.00k
    if (yych == 'B') goto yy322;
3967
2.00k
    if (yych == 'b') goto yy322;
3968
351
    goto yy48;
3969
1.33k
yy200:
3970
1.33k
    YYDEBUG(200, *YYCURSOR);
3971
1.33k
    yyaccept = 4;
3972
1.33k
    yych = *(YYMARKER = ++YYCURSOR);
3973
1.33k
    if (yych <= 'T') {
3974
9
      if (yych <= 'P') {
3975
9
        if (yych == 'A') goto yy323;
3976
9
        goto yy48;
3977
9
      } else {
3978
0
        if (yych <= 'Q') goto yy324;
3979
0
        if (yych <= 'S') goto yy48;
3980
0
        goto yy325;
3981
0
      }
3982
1.32k
    } else {
3983
1.32k
      if (yych <= 'p') {
3984
0
        if (yych == 'a') goto yy323;
3985
0
        goto yy48;
3986
1.32k
      } else {
3987
1.32k
        if (yych <= 'q') goto yy324;
3988
632
        if (yych == 't') goto yy325;
3989
561
        goto yy48;
3990
632
      }
3991
1.32k
    }
3992
927
yy201:
3993
927
    YYDEBUG(201, *YYCURSOR);
3994
927
    yyaccept = 4;
3995
927
    yych = *(YYMARKER = ++YYCURSOR);
3996
927
    if (yych == 'A') goto yy326;
3997
927
    if (yych == 'a') goto yy326;
3998
927
    goto yy48;
3999
927
yy202:
4000
49
    YYDEBUG(202, *YYCURSOR);
4001
49
    yyaccept = 4;
4002
49
    yych = *(YYMARKER = ++YYCURSOR);
4003
49
    if (yych == 'I') goto yy327;
4004
49
    if (yych == 'i') goto yy327;
4005
0
    goto yy48;
4006
27
yy203:
4007
27
    YYDEBUG(203, *YYCURSOR);
4008
27
    yyaccept = 4;
4009
27
    yych = *(YYMARKER = ++YYCURSOR);
4010
27
    if (yych == 'R') goto yy328;
4011
27
    if (yych == 'r') goto yy328;
4012
27
    goto yy48;
4013
36
yy204:
4014
36
    YYDEBUG(204, *YYCURSOR);
4015
36
    yyaccept = 4;
4016
36
    yych = *(YYMARKER = ++YYCURSOR);
4017
36
    if (yych <= 'Y') {
4018
1
      if (yych == 'A') goto yy329;
4019
1
      if (yych <= 'X') goto yy48;
4020
0
      goto yy330;
4021
35
    } else {
4022
35
      if (yych <= 'a') {
4023
0
        if (yych <= '`') goto yy48;
4024
0
        goto yy329;
4025
35
      } else {
4026
35
        if (yych == 'y') goto yy330;
4027
8
        goto yy48;
4028
35
      }
4029
35
    }
4030
31
yy205:
4031
31
    YYDEBUG(205, *YYCURSOR);
4032
31
    yyaccept = 4;
4033
31
    yych = *(YYMARKER = ++YYCURSOR);
4034
31
    if (yych == 'S') goto yy332;
4035
31
    if (yych == 's') goto yy332;
4036
3
    goto yy48;
4037
3
yy206:
4038
0
    YYDEBUG(206, *YYCURSOR);
4039
0
    yyaccept = 4;
4040
0
    yych = *(YYMARKER = ++YYCURSOR);
4041
0
    if (yych == 'E') goto yy333;
4042
0
    if (yych == 'e') goto yy333;
4043
0
    goto yy48;
4044
203
yy207:
4045
203
    YYDEBUG(207, *YYCURSOR);
4046
203
    yyaccept = 4;
4047
203
    yych = *(YYMARKER = ++YYCURSOR);
4048
203
    if (yych == 'R') goto yy335;
4049
203
    if (yych == 'r') goto yy335;
4050
5
    goto yy48;
4051
5
yy208:
4052
1
    YYDEBUG(208, *YYCURSOR);
4053
1
    yyaccept = 4;
4054
1
    yych = *(YYMARKER = ++YYCURSOR);
4055
1
    if (yych == 'I') goto yy337;
4056
1
    if (yych == 'i') goto yy337;
4057
1
    goto yy48;
4058
193
yy209:
4059
193
    YYDEBUG(209, *YYCURSOR);
4060
193
    yyaccept = 4;
4061
193
    yych = *(YYMARKER = ++YYCURSOR);
4062
193
    if (yych == 'R') goto yy338;
4063
193
    if (yych == 'r') goto yy338;
4064
0
    goto yy48;
4065
0
yy210:
4066
0
    YYDEBUG(210, *YYCURSOR);
4067
0
    yyaccept = 4;
4068
0
    yych = *(YYMARKER = ++YYCURSOR);
4069
0
    if (yych == 'E') goto yy340;
4070
0
    if (yych == 'e') goto yy340;
4071
0
    goto yy48;
4072
28
yy211:
4073
28
    YYDEBUG(211, *YYCURSOR);
4074
28
    yyaccept = 13;
4075
28
    YYMARKER = ++YYCURSOR;
4076
28
    YYFILL(1);
4077
28
    yych = *YYCURSOR;
4078
28
    YYDEBUG(212, *YYCURSOR);
4079
28
    if (yych <= '\\') {
4080
28
      if (yych <= '@') {
4081
28
        if (yych <= '/') goto yy213;
4082
28
        if (yych <= '9') goto yy211;
4083
28
      } else {
4084
0
        if (yych <= 'Z') goto yy211;
4085
0
        if (yych >= '\\') goto yy341;
4086
0
      }
4087
28
    } else {
4088
0
      if (yych <= '`') {
4089
0
        if (yych == '_') goto yy211;
4090
0
      } else {
4091
0
        if (yych <= 'z') goto yy211;
4092
0
        if (yych >= 0x80) goto yy211;
4093
0
      }
4094
0
    }
4095
28
yy213:
4096
28
    YYDEBUG(213, *YYCURSOR);
4097
28
    yyleng = YYCURSOR - SCNG(yy_text);
4098
28
#line 2447 "Zend/zend_language_scanner.l"
4099
28
    {
4100
28
  RETURN_TOKEN_WITH_STR(T_NAME_FULLY_QUALIFIED, 1);
4101
28
}
4102
0
#line 4103 "Zend/zend_language_scanner.c"
4103
0
yy214:
4104
0
    YYDEBUG(214, *YYCURSOR);
4105
0
    ++YYCURSOR;
4106
0
    YYDEBUG(215, *YYCURSOR);
4107
0
    yyleng = YYCURSOR - SCNG(yy_text);
4108
0
#line 1910 "Zend/zend_language_scanner.l"
4109
0
    {
4110
0
  RETURN_TOKEN(T_XOR_EQUAL);
4111
0
}
4112
0
#line 4113 "Zend/zend_language_scanner.c"
4113
2.85k
yy216:
4114
2.85k
    YYDEBUG(216, *YYCURSOR);
4115
2.85k
    yyaccept = 4;
4116
2.85k
    yych = *(YYMARKER = ++YYCURSOR);
4117
2.85k
    switch (yych) {
4118
0
    case 'C':
4119
0
    case 'c': goto yy342;
4120
0
    case 'D':
4121
33
    case 'd': goto yy343;
4122
8
    case 'F':
4123
8
    case 'f': goto yy344;
4124
0
    case 'H':
4125
0
    case 'h': goto yy345;
4126
33
    case 'L':
4127
33
    case 'l': goto yy346;
4128
189
    case 'M':
4129
189
    case 'm': goto yy347;
4130
1
    case 'N':
4131
1
    case 'n': goto yy348;
4132
0
    case 'P':
4133
0
    case 'p': goto yy349;
4134
3
    case 'T':
4135
3
    case 't': goto yy350;
4136
2.59k
    default:  goto yy48;
4137
2.85k
    }
4138
0
yy217:
4139
0
    YYDEBUG(217, *YYCURSOR);
4140
0
    ++YYCURSOR;
4141
0
    YYDEBUG(218, *YYCURSOR);
4142
0
    yyleng = YYCURSOR - SCNG(yy_text);
4143
0
#line 1906 "Zend/zend_language_scanner.l"
4144
0
    {
4145
0
  RETURN_TOKEN(T_OR_EQUAL);
4146
0
}
4147
0
#line 4148 "Zend/zend_language_scanner.c"
4148
36
yy219:
4149
36
    YYDEBUG(219, *YYCURSOR);
4150
36
    ++YYCURSOR;
4151
36
    YYDEBUG(220, *YYCURSOR);
4152
36
    yyleng = YYCURSOR - SCNG(yy_text);
4153
36
#line 1918 "Zend/zend_language_scanner.l"
4154
36
    {
4155
36
  RETURN_TOKEN(T_PIPE);
4156
36
}
4157
0
#line 4158 "Zend/zend_language_scanner.c"
4158
20
yy221:
4159
20
    YYDEBUG(221, *YYCURSOR);
4160
20
    ++YYCURSOR;
4161
20
    YYDEBUG(222, *YYCURSOR);
4162
20
    yyleng = YYCURSOR - SCNG(yy_text);
4163
20
#line 1922 "Zend/zend_language_scanner.l"
4164
20
    {
4165
20
  RETURN_TOKEN(T_BOOLEAN_OR);
4166
20
}
4167
0
#line 4168 "Zend/zend_language_scanner.c"
4168
84
yy223:
4169
84
    YYDEBUG(223, *YYCURSOR);
4170
84
    ++YYCURSOR;
4171
84
    YYDEBUG(224, *YYCURSOR);
4172
84
    yyleng = YYCURSOR - SCNG(yy_text);
4173
84
#line 1838 "Zend/zend_language_scanner.l"
4174
84
    {
4175
84
  RETURN_TOKEN(T_IS_NOT_IDENTICAL);
4176
84
}
4177
0
#line 4178 "Zend/zend_language_scanner.c"
4178
0
yy225:
4179
0
    YYDEBUG(225, *YYCURSOR);
4180
0
    ++YYCURSOR;
4181
0
    YYFILL(1);
4182
0
    yych = *YYCURSOR;
4183
0
    YYDEBUG(226, *YYCURSOR);
4184
0
    if (yybm[0+yych] & 2) {
4185
0
      goto yy225;
4186
0
    }
4187
0
    if (yych <= 0x00) goto yy86;
4188
0
    goto yy84;
4189
0
yy227:
4190
0
    YYDEBUG(227, *YYCURSOR);
4191
0
    ++YYCURSOR;
4192
0
    YYFILL(1);
4193
0
    yych = *YYCURSOR;
4194
0
    YYDEBUG(228, *YYCURSOR);
4195
0
    if (yych <= 0x1F) {
4196
0
      if (yych <= '\t') {
4197
0
        if (yych <= 0x00) goto yy86;
4198
0
        if (yych <= 0x08) goto yy225;
4199
0
        goto yy227;
4200
0
      } else {
4201
0
        if (yych <= '\n') goto yy84;
4202
0
        if (yych == '\r') goto yy84;
4203
0
        goto yy225;
4204
0
      }
4205
0
    } else {
4206
0
      if (yych <= '$') {
4207
0
        if (yych <= ' ') goto yy227;
4208
0
        if (yych <= '"') goto yy225;
4209
0
        if (yych <= '#') goto yy351;
4210
0
        goto yy352;
4211
0
      } else {
4212
0
        if (yych <= '-') goto yy225;
4213
0
        if (yych <= '.') goto yy353;
4214
0
        if (yych <= '/') goto yy354;
4215
0
        goto yy225;
4216
0
      }
4217
0
    }
4218
0
yy229:
4219
0
    YYDEBUG(229, *YYCURSOR);
4220
0
    yych = *++YYCURSOR;
4221
0
    if (yych == '.') goto yy88;
4222
0
    goto yy86;
4223
0
yy230:
4224
0
    YYDEBUG(230, *YYCURSOR);
4225
0
    ++YYCURSOR;
4226
0
    YYFILL(1);
4227
0
    yych = *YYCURSOR;
4228
0
    YYDEBUG(231, *YYCURSOR);
4229
0
    if (yybm[0+yych] & 4) {
4230
0
      goto yy230;
4231
0
    }
4232
0
    if (yych <= 0x00) goto yy86;
4233
0
    goto yy355;
4234
924
yy232:
4235
924
    YYDEBUG(232, *YYCURSOR);
4236
924
    yych = *++YYCURSOR;
4237
924
    if (yych == 'R') goto yy357;
4238
924
    if (yych == 'r') goto yy357;
4239
285
    goto yy86;
4240
285
yy233:
4241
0
    YYDEBUG(233, *YYCURSOR);
4242
0
    yych = *++YYCURSOR;
4243
0
    if (yych == 'N') goto yy358;
4244
0
    if (yych == 'n') goto yy358;
4245
0
    goto yy86;
4246
45
yy234:
4247
45
    YYDEBUG(234, *YYCURSOR);
4248
45
    yych = *++YYCURSOR;
4249
45
    if (yych == 'O') goto yy359;
4250
45
    if (yych == 'o') goto yy359;
4251
0
    goto yy86;
4252
0
yy235:
4253
0
    YYDEBUG(235, *YYCURSOR);
4254
0
    yych = *++YYCURSOR;
4255
0
    if (yych == 'U') goto yy360;
4256
0
    if (yych == 'u') goto yy360;
4257
0
    goto yy86;
4258
39
yy236:
4259
39
    YYDEBUG(236, *YYCURSOR);
4260
39
    yych = *++YYCURSOR;
4261
39
    if (yych == 'O') goto yy361;
4262
39
    if (yych == 'o') goto yy361;
4263
0
    goto yy86;
4264
84
yy237:
4265
84
    YYDEBUG(237, *YYCURSOR);
4266
84
    yych = *++YYCURSOR;
4267
84
    if (yych == 'T') goto yy362;
4268
84
    if (yych == 't') goto yy362;
4269
0
    goto yy86;
4270
63
yy238:
4271
63
    YYDEBUG(238, *YYCURSOR);
4272
63
    yych = *++YYCURSOR;
4273
63
    if (yych == 'J') goto yy363;
4274
63
    if (yych == 'j') goto yy363;
4275
0
    goto yy86;
4276
0
yy239:
4277
0
    YYDEBUG(239, *YYCURSOR);
4278
0
    yych = *++YYCURSOR;
4279
0
    if (yych == 'A') goto yy364;
4280
0
    if (yych == 'a') goto yy364;
4281
0
    goto yy86;
4282
920
yy240:
4283
920
    YYDEBUG(240, *YYCURSOR);
4284
920
    yych = *++YYCURSOR;
4285
920
    if (yych == 'R') goto yy365;
4286
920
    if (yych == 'r') goto yy365;
4287
15
    goto yy86;
4288
15
yy241:
4289
0
    YYDEBUG(241, *YYCURSOR);
4290
0
    yych = *++YYCURSOR;
4291
0
    if (yych == 'S') goto yy366;
4292
0
    if (yych == 's') goto yy366;
4293
0
    goto yy86;
4294
0
yy242:
4295
0
    YYDEBUG(242, *YYCURSOR);
4296
0
    yych = *++YYCURSOR;
4297
0
    if (yych == 'I') goto yy367;
4298
0
    if (yych == 'i') goto yy367;
4299
0
    goto yy86;
4300
0
yy243:
4301
0
    YYDEBUG(243, *YYCURSOR);
4302
0
    ++YYCURSOR;
4303
0
    YYDEBUG(244, *YYCURSOR);
4304
0
    yyleng = YYCURSOR - SCNG(yy_text);
4305
0
#line 1878 "Zend/zend_language_scanner.l"
4306
0
    {
4307
0
  RETURN_TOKEN(T_POW_EQUAL);
4308
0
}
4309
0
#line 4310 "Zend/zend_language_scanner.c"
4310
33
yy245:
4311
33
    YYDEBUG(245, *YYCURSOR);
4312
33
    ++YYCURSOR;
4313
33
    YYDEBUG(246, *YYCURSOR);
4314
33
    yyleng = YYCURSOR - SCNG(yy_text);
4315
33
#line 1618 "Zend/zend_language_scanner.l"
4316
33
    {
4317
33
  RETURN_TOKEN(T_ELLIPSIS);
4318
33
}
4319
0
#line 4320 "Zend/zend_language_scanner.c"
4320
0
yy247:
4321
0
    YYDEBUG(247, *YYCURSOR);
4322
0
    ++YYCURSOR;
4323
0
    YYFILL(1);
4324
0
    yych = *YYCURSOR;
4325
0
    if (yych <= '/') goto yy86;
4326
0
    if (yych <= '9') goto yy123;
4327
0
    goto yy86;
4328
0
yy248:
4329
0
    YYDEBUG(248, *YYCURSOR);
4330
0
    yych = *++YYCURSOR;
4331
0
    if (yych <= '\f') {
4332
0
      if (yych <= 0x08) goto yy86;
4333
0
      if (yych <= '\n') goto yy368;
4334
0
      goto yy86;
4335
0
    } else {
4336
0
      if (yych <= '\r') goto yy368;
4337
0
      if (yych == ' ') goto yy368;
4338
0
      goto yy86;
4339
0
    }
4340
0
yy249:
4341
0
    YYDEBUG(249, *YYCURSOR);
4342
0
    yyaccept = 14;
4343
0
    YYMARKER = ++YYCURSOR;
4344
0
    YYFILL(1);
4345
0
    yych = *YYCURSOR;
4346
0
    YYDEBUG(250, *YYCURSOR);
4347
0
    if (yybm[0+yych] & 8) {
4348
0
      goto yy249;
4349
0
    }
4350
0
    if (yych == '_') goto yy134;
4351
0
yy251:
4352
0
    YYDEBUG(251, *YYCURSOR);
4353
0
    yyleng = YYCURSOR - SCNG(yy_text);
4354
0
#line 2011 "Zend/zend_language_scanner.l"
4355
0
    {
4356
  /* The +/- 2 skips "0b" */
4357
0
  size_t len = yyleng - 2;
4358
0
  char *end, *bin = yytext + 2;
4359
0
  bool contains_underscores;
4360
4361
  /* Skip any leading 0s */
4362
0
  while (len > 0 && (*bin == '0' || *bin == '_')) {
4363
0
    ++bin;
4364
0
    --len;
4365
0
  }
4366
4367
0
  contains_underscores = (memchr(bin, '_', len) != NULL);
4368
4369
0
  if (contains_underscores) {
4370
0
    bin = estrndup(bin, len);
4371
0
    strip_underscores(bin, &len);
4372
0
  }
4373
4374
0
  if (len < SIZEOF_ZEND_LONG * 8) {
4375
0
    if (len == 0) {
4376
0
      ZVAL_LONG(zendlval, 0);
4377
0
    } else {
4378
0
      errno = 0;
4379
0
      ZVAL_LONG(zendlval, ZEND_STRTOL(bin, &end, 2));
4380
0
      ZEND_ASSERT(!errno && end == bin + len);
4381
0
    }
4382
0
    if (contains_underscores) {
4383
0
      efree(bin);
4384
0
    }
4385
0
    RETURN_TOKEN_WITH_VAL(T_LNUMBER);
4386
0
  } 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
0
}
4396
0
#line 4397 "Zend/zend_language_scanner.c"
4397
0
yy252:
4398
0
    YYDEBUG(252, *YYCURSOR);
4399
0
    ++YYCURSOR;
4400
0
    YYFILL(1);
4401
0
    yych = *YYCURSOR;
4402
0
    if (yych <= '/') goto yy86;
4403
0
    if (yych >= ':') goto yy86;
4404
0
yy253:
4405
0
    YYDEBUG(253, *YYCURSOR);
4406
0
    yyaccept = 5;
4407
0
    YYMARKER = ++YYCURSOR;
4408
0
    YYFILL(1);
4409
0
    yych = *YYCURSOR;
4410
0
    YYDEBUG(254, *YYCURSOR);
4411
0
    if (yych <= '/') goto yy125;
4412
0
    if (yych <= '9') goto yy253;
4413
0
    if (yych == '_') goto yy252;
4414
0
    goto yy125;
4415
0
yy255:
4416
0
    YYDEBUG(255, *YYCURSOR);
4417
0
    yyaccept = 15;
4418
0
    YYMARKER = ++YYCURSOR;
4419
0
    YYFILL(1);
4420
0
    yych = *YYCURSOR;
4421
0
    YYDEBUG(256, *YYCURSOR);
4422
0
    if (yybm[0+yych] & 16) {
4423
0
      goto yy255;
4424
0
    }
4425
0
    if (yych == '_') goto yy136;
4426
0
yy257:
4427
0
    YYDEBUG(257, *YYCURSOR);
4428
0
    yyleng = YYCURSOR - SCNG(yy_text);
4429
0
#line 2053 "Zend/zend_language_scanner.l"
4430
0
    {
4431
  /* The +/- 2 skips "0o" */
4432
0
  size_t len = yyleng - 2;
4433
0
  char *end, *octal = yytext + 2;
4434
0
  bool contains_underscores = (memchr(octal, '_', len) != NULL);
4435
4436
  /* Skip any leading 0s */
4437
0
  while (len > 0 && (*octal == '0' || *octal == '_')) {
4438
0
    ++octal;
4439
0
    --len;
4440
0
  }
4441
4442
0
  if (len == 0) {
4443
0
    ZVAL_LONG(zendlval, 0);
4444
0
    RETURN_TOKEN_WITH_VAL(T_LNUMBER);
4445
0
  }
4446
4447
0
  if (contains_underscores) {
4448
0
    octal = estrndup(octal, len);
4449
0
    strip_underscores(octal, &len);
4450
0
  }
4451
4452
0
  errno = 0;
4453
4454
0
  ZVAL_LONG(zendlval, ZEND_STRTOL(octal, &end, 8));
4455
4456
0
  ZEND_ASSERT(end == octal + len);
4457
4458
0
  if (!errno) {
4459
0
    if (contains_underscores) {
4460
0
      efree(octal);
4461
0
    }
4462
0
    RETURN_TOKEN_WITH_VAL(T_LNUMBER);
4463
0
  }
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
18
yy258:
4481
18
    YYDEBUG(258, *YYCURSOR);
4482
18
    yyaccept = 16;
4483
18
    YYMARKER = ++YYCURSOR;
4484
18
    YYFILL(1);
4485
18
    yych = *YYCURSOR;
4486
18
    YYDEBUG(259, *YYCURSOR);
4487
18
    if (yybm[0+yych] & 32) {
4488
12
      goto yy258;
4489
12
    }
4490
6
    if (yych == '_') goto yy137;
4491
6
yy260:
4492
6
    YYDEBUG(260, *YYCURSOR);
4493
6
    yyleng = YYCURSOR - SCNG(yy_text);
4494
6
#line 2166 "Zend/zend_language_scanner.l"
4495
6
    {
4496
  /* The +/- 2 skips "0x" */
4497
6
  size_t len = yyleng - 2;
4498
6
  char *end, *hex = yytext + 2;
4499
6
  bool contains_underscores;
4500
4501
  /* Skip any leading 0s */
4502
6
  while (len > 0 && (*hex == '0' || *hex == '_')) {
4503
0
    ++hex;
4504
0
    --len;
4505
0
  }
4506
4507
6
  contains_underscores = (memchr(hex, '_', len) != NULL);
4508
4509
6
  if (contains_underscores) {
4510
0
    hex = estrndup(hex, len);
4511
0
    strip_underscores(hex, &len);
4512
0
  }
4513
4514
6
  if (len < SIZEOF_ZEND_LONG * 2 || (len == SIZEOF_ZEND_LONG * 2 && *hex <= '7')) {
4515
6
    if (len == 0) {
4516
0
      ZVAL_LONG(zendlval, 0);
4517
6
    } else {
4518
6
      errno = 0;
4519
6
      ZVAL_LONG(zendlval, ZEND_STRTOL(hex, &end, 16));
4520
6
      ZEND_ASSERT(!errno && end == hex + len);
4521
6
    }
4522
6
    if (contains_underscores) {
4523
0
      efree(hex);
4524
0
    }
4525
6
    RETURN_TOKEN_WITH_VAL(T_LNUMBER);
4526
6
  } else {
4527
0
    ZVAL_DOUBLE(zendlval, zend_hex_strtod(hex, (const char **)&end));
4528
    /* errno isn't checked since we allow HUGE_VAL/INF overflow */
4529
0
    ZEND_ASSERT(end == hex + len);
4530
0
    if (contains_underscores) {
4531
0
      efree(hex);
4532
0
    }
4533
0
    RETURN_TOKEN_WITH_VAL(T_DNUMBER);
4534
0
  }
4535
6
}
4536
0
#line 4537 "Zend/zend_language_scanner.c"
4537
24.2k
yy261:
4538
24.2k
    YYDEBUG(261, *YYCURSOR);
4539
24.2k
    ++YYCURSOR;
4540
24.2k
    YYFILL(2);
4541
24.2k
    yych = *YYCURSOR;
4542
24.2k
    YYDEBUG(262, *YYCURSOR);
4543
24.2k
    if (yych <= '\'') {
4544
166
      if (yych <= ' ') {
4545
10
        if (yych == '\t') goto yy261;
4546
10
        if (yych <= 0x1F) goto yy86;
4547
0
        goto yy261;
4548
156
      } else {
4549
156
        if (yych == '"') goto yy370;
4550
156
        if (yych <= '&') goto yy86;
4551
156
        goto yy371;
4552
156
      }
4553
24.1k
    } else {
4554
24.1k
      if (yych <= '_') {
4555
1.47k
        if (yych <= '@') goto yy86;
4556
55
        if (yych <= 'Z') goto yy372;
4557
0
        if (yych <= '^') goto yy86;
4558
0
        goto yy372;
4559
22.6k
      } else {
4560
22.6k
        if (yych <= '`') goto yy86;
4561
22.6k
        if (yych <= 'z') goto yy372;
4562
78
        if (yych <= 0x7F) goto yy86;
4563
78
        goto yy372;
4564
78
      }
4565
24.1k
    }
4566
0
yy263:
4567
0
    YYDEBUG(263, *YYCURSOR);
4568
0
    ++YYCURSOR;
4569
0
    YYDEBUG(264, *YYCURSOR);
4570
0
    yyleng = YYCURSOR - SCNG(yy_text);
4571
0
#line 1894 "Zend/zend_language_scanner.l"
4572
0
    {
4573
0
  RETURN_TOKEN(T_SL_EQUAL);
4574
0
}
4575
0
#line 4576 "Zend/zend_language_scanner.c"
4576
0
yy265:
4577
0
    YYDEBUG(265, *YYCURSOR);
4578
0
    ++YYCURSOR;
4579
0
    YYDEBUG(266, *YYCURSOR);
4580
0
    yyleng = YYCURSOR - SCNG(yy_text);
4581
0
#line 1850 "Zend/zend_language_scanner.l"
4582
0
    {
4583
0
  RETURN_TOKEN(T_SPACESHIP);
4584
0
}
4585
0
#line 4586 "Zend/zend_language_scanner.c"
4586
44
yy267:
4587
44
    YYDEBUG(267, *YYCURSOR);
4588
44
    ++YYCURSOR;
4589
44
    YYDEBUG(268, *YYCURSOR);
4590
44
    yyleng = YYCURSOR - SCNG(yy_text);
4591
44
#line 1834 "Zend/zend_language_scanner.l"
4592
44
    {
4593
44
  RETURN_TOKEN(T_IS_IDENTICAL);
4594
44
}
4595
0
#line 4596 "Zend/zend_language_scanner.c"
4596
0
yy269:
4597
0
    YYDEBUG(269, *YYCURSOR);
4598
0
    ++YYCURSOR;
4599
0
    YYDEBUG(270, *YYCURSOR);
4600
0
    yyleng = YYCURSOR - SCNG(yy_text);
4601
0
#line 1898 "Zend/zend_language_scanner.l"
4602
0
    {
4603
0
  RETURN_TOKEN(T_SR_EQUAL);
4604
0
}
4605
0
#line 4606 "Zend/zend_language_scanner.c"
4606
1.52k
yy271:
4607
1.52k
    YYDEBUG(271, *YYCURSOR);
4608
1.52k
    ++YYCURSOR;
4609
1.52k
    YYDEBUG(272, *YYCURSOR);
4610
1.52k
    yyleng = YYCURSOR - SCNG(yy_text);
4611
1.52k
#line 1592 "Zend/zend_language_scanner.l"
4612
1.52k
    {
4613
1.52k
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
4614
1.52k
  RETURN_TOKEN(T_NULLSAFE_OBJECT_OPERATOR);
4615
1.52k
}
4616
0
#line 4617 "Zend/zend_language_scanner.c"
4617
362
yy273:
4618
362
    YYDEBUG(273, *YYCURSOR);
4619
362
    ++YYCURSOR;
4620
362
    goto yy156;
4621
1
yy274:
4622
1
    YYDEBUG(274, *YYCURSOR);
4623
1
    yych = *++YYCURSOR;
4624
1
    if (yych == '\n') goto yy273;
4625
0
    goto yy156;
4626
4
yy275:
4627
4
    YYDEBUG(275, *YYCURSOR);
4628
4
    ++YYCURSOR;
4629
4
    YYDEBUG(276, *YYCURSOR);
4630
4
    yyleng = YYCURSOR - SCNG(yy_text);
4631
4
#line 1914 "Zend/zend_language_scanner.l"
4632
4
    {
4633
4
  RETURN_TOKEN(T_COALESCE_EQUAL);
4634
4
}
4635
0
#line 4636 "Zend/zend_language_scanner.c"
4636
0
yy277:
4637
0
    YYDEBUG(277, *YYCURSOR);
4638
0
    yyaccept = 4;
4639
0
    yych = *(YYMARKER = ++YYCURSOR);
4640
0
    if (yych == 'T') goto yy374;
4641
0
    if (yych == 't') goto yy374;
4642
0
    goto yy48;
4643
329
yy278:
4644
329
    YYDEBUG(278, *YYCURSOR);
4645
329
    yyaccept = 17;
4646
329
    yych = *(YYMARKER = ++YYCURSOR);
4647
329
    if (yybm[256+yych] & 128) {
4648
0
      goto yy47;
4649
0
    }
4650
329
    if (yych == '\\') goto yy164;
4651
329
yy279:
4652
329
    YYDEBUG(279, *YYCURSOR);
4653
329
    yyleng = YYCURSOR - SCNG(yy_text);
4654
329
#line 1934 "Zend/zend_language_scanner.l"
4655
329
    {
4656
329
  RETURN_TOKEN_WITH_IDENT(T_LOGICAL_AND);
4657
329
}
4658
0
#line 4659 "Zend/zend_language_scanner.c"
4659
507
yy280:
4660
507
    YYDEBUG(280, *YYCURSOR);
4661
507
    yyaccept = 4;
4662
507
    yych = *(YYMARKER = ++YYCURSOR);
4663
507
    if (yych == 'A') goto yy375;
4664
507
    if (yych == 'a') goto yy375;
4665
3
    goto yy48;
4666
113
yy281:
4667
113
    YYDEBUG(281, *YYCURSOR);
4668
113
    yyaccept = 18;
4669
113
    YYMARKER = ++YYCURSOR;
4670
113
    YYFILL(1);
4671
113
    yych = *YYCURSOR;
4672
113
    YYDEBUG(282, *YYCURSOR);
4673
113
    if (yych <= '\\') {
4674
113
      if (yych <= '@') {
4675
113
        if (yych <= '/') goto yy283;
4676
0
        if (yych <= '9') goto yy281;
4677
0
      } else {
4678
0
        if (yych <= 'Z') goto yy281;
4679
0
        if (yych >= '\\') goto yy164;
4680
0
      }
4681
113
    } else {
4682
0
      if (yych <= '`') {
4683
0
        if (yych == '_') goto yy281;
4684
0
      } else {
4685
0
        if (yych <= 'z') goto yy281;
4686
0
        if (yych >= 0x80) goto yy281;
4687
0
      }
4688
0
    }
4689
113
yy283:
4690
113
    YYDEBUG(283, *YYCURSOR);
4691
113
    yyleng = YYCURSOR - SCNG(yy_text);
4692
113
#line 2443 "Zend/zend_language_scanner.l"
4693
113
    {
4694
113
  RETURN_TOKEN_WITH_STR(T_NAME_QUALIFIED, 0);
4695
113
}
4696
0
#line 4697 "Zend/zend_language_scanner.c"
4697
258
yy284:
4698
258
    YYDEBUG(284, *YYCURSOR);
4699
258
    yych = *++YYCURSOR;
4700
258
    if (yych == '<') goto yy261;
4701
0
    goto yy86;
4702
1
yy285:
4703
1
    YYDEBUG(285, *YYCURSOR);
4704
1
    yyaccept = 4;
4705
1
    yych = *(YYMARKER = ++YYCURSOR);
4706
1
    if (yych == 'A') goto yy376;
4707
1
    if (yych == 'a') goto yy376;
4708
0
    goto yy48;
4709
863
yy286:
4710
863
    YYDEBUG(286, *YYCURSOR);
4711
863
    yyaccept = 4;
4712
863
    yych = *(YYMARKER = ++YYCURSOR);
4713
863
    if (yych == 'L') goto yy377;
4714
863
    if (yych == 'l') goto yy377;
4715
14
    goto yy48;
4716
14
yy287:
4717
0
    YYDEBUG(287, *YYCURSOR);
4718
0
    yyaccept = 4;
4719
0
    yych = *(YYMARKER = ++YYCURSOR);
4720
0
    if (yych == 'E') goto yy378;
4721
0
    if (yych == 'e') goto yy378;
4722
0
    goto yy48;
4723
52
yy288:
4724
52
    YYDEBUG(288, *YYCURSOR);
4725
52
    yyaccept = 4;
4726
52
    yych = *(YYMARKER = ++YYCURSOR);
4727
52
    if (yych == 'C') goto yy380;
4728
52
    if (yych == 'c') goto yy380;
4729
0
    goto yy48;
4730
866
yy289:
4731
866
    YYDEBUG(289, *YYCURSOR);
4732
866
    yyaccept = 4;
4733
866
    yych = *(YYMARKER = ++YYCURSOR);
4734
866
    if (yych == 'S') goto yy381;
4735
866
    if (yych == 's') goto yy381;
4736
0
    goto yy48;
4737
720
yy290:
4738
720
    YYDEBUG(290, *YYCURSOR);
4739
720
    yyaccept = 4;
4740
720
    yych = *(YYMARKER = ++YYCURSOR);
4741
720
    if (yych == 'N') goto yy382;
4742
720
    if (yych == 'n') goto yy382;
4743
720
    goto yy48;
4744
720
yy291:
4745
578
    YYDEBUG(291, *YYCURSOR);
4746
578
    yyaccept = 4;
4747
578
    yych = *(YYMARKER = ++YYCURSOR);
4748
578
    if (yych <= 'T') {
4749
0
      if (yych <= 'R') goto yy48;
4750
0
      if (yych <= 'S') goto yy383;
4751
0
      goto yy384;
4752
578
    } else {
4753
578
      if (yych <= 'r') goto yy48;
4754
578
      if (yych <= 's') goto yy383;
4755
0
      if (yych <= 't') goto yy384;
4756
0
      goto yy48;
4757
0
    }
4758
0
yy292:
4759
0
    YYDEBUG(292, *YYCURSOR);
4760
0
    yyaccept = 4;
4761
0
    yych = *(YYMARKER = ++YYCURSOR);
4762
0
    if (yych == 'L') goto yy385;
4763
0
    if (yych == 'l') goto yy385;
4764
0
    goto yy48;
4765
19
yy293:
4766
19
    YYDEBUG(293, *YYCURSOR);
4767
19
    yyaccept = 4;
4768
19
    yych = *(YYMARKER = ++YYCURSOR);
4769
19
    if (yych == 'A') goto yy386;
4770
19
    if (yych == 'a') goto yy386;
4771
19
    goto yy48;
4772
19
yy294:
4773
0
    YYDEBUG(294, *YYCURSOR);
4774
0
    yyaccept = 19;
4775
0
    yych = *(YYMARKER = ++YYCURSOR);
4776
0
    if (yybm[256+yych] & 128) {
4777
0
      goto yy47;
4778
0
    }
4779
0
    if (yych == '\\') goto yy164;
4780
0
yy295:
4781
0
    YYDEBUG(295, *YYCURSOR);
4782
0
    yyleng = YYCURSOR - SCNG(yy_text);
4783
0
#line 1403 "Zend/zend_language_scanner.l"
4784
0
    {
4785
0
  RETURN_TOKEN_WITH_IDENT(T_EXIT);
4786
0
}
4787
0
#line 4788 "Zend/zend_language_scanner.c"
4788
300
yy296:
4789
300
    YYDEBUG(296, *YYCURSOR);
4790
300
    yyaccept = 4;
4791
300
    yych = *(YYMARKER = ++YYCURSOR);
4792
300
    if (yych == 'O') goto yy387;
4793
300
    if (yych == 'o') goto yy387;
4794
0
    goto yy48;
4795
0
yy297:
4796
0
    YYDEBUG(297, *YYCURSOR);
4797
0
    yyaccept = 4;
4798
0
    yych = *(YYMARKER = ++YYCURSOR);
4799
0
    if (yych == 'E') goto yy389;
4800
0
    if (yych == 'e') goto yy389;
4801
0
    goto yy48;
4802
0
yy298:
4803
0
    YYDEBUG(298, *YYCURSOR);
4804
0
    yyaccept = 4;
4805
0
    yych = *(YYMARKER = ++YYCURSOR);
4806
0
    if (yych == 'T') goto yy391;
4807
0
    if (yych == 't') goto yy391;
4808
0
    goto yy48;
4809
282
yy299:
4810
282
    YYDEBUG(299, *YYCURSOR);
4811
282
    yyaccept = 4;
4812
282
    yych = *(YYMARKER = ++YYCURSOR);
4813
282
    switch (yych) {
4814
0
    case 'D':
4815
0
    case 'd': goto yy392;
4816
0
    case 'F':
4817
0
    case 'f': goto yy393;
4818
0
    case 'I':
4819
0
    case 'i': goto yy394;
4820
0
    case 'S':
4821
6
    case 's': goto yy395;
4822
0
    case 'W':
4823
276
    case 'w': goto yy396;
4824
0
    default:  goto yy48;
4825
282
    }
4826
2.35k
yy300:
4827
2.35k
    YYDEBUG(300, *YYCURSOR);
4828
2.35k
    yyaccept = 4;
4829
2.35k
    yych = *(YYMARKER = ++YYCURSOR);
4830
2.35k
    if (yych == 'M') goto yy397;
4831
2.20k
    if (yych == 'm') goto yy397;
4832
0
    goto yy48;
4833
8
yy301:
4834
8
    YYDEBUG(301, *YYCURSOR);
4835
8
    yyaccept = 4;
4836
8
    yych = *(YYMARKER = ++YYCURSOR);
4837
8
    if (yych == 'L') goto yy398;
4838
8
    if (yych == 'l') goto yy398;
4839
0
    goto yy48;
4840
0
yy302:
4841
0
    YYDEBUG(302, *YYCURSOR);
4842
0
    yyaccept = 4;
4843
0
    yych = *(YYMARKER = ++YYCURSOR);
4844
0
    if (yych == 'T') goto yy400;
4845
0
    if (yych == 't') goto yy400;
4846
0
    goto yy48;
4847
405
yy303:
4848
405
    YYDEBUG(303, *YYCURSOR);
4849
405
    yyaccept = 4;
4850
405
    yych = *(YYMARKER = ++YYCURSOR);
4851
405
    if (yych == 'E') goto yy402;
4852
405
    if (yych == 'e') goto yy402;
4853
6
    goto yy48;
4854
6
yy304:
4855
0
    YYDEBUG(304, *YYCURSOR);
4856
0
    yyaccept = 4;
4857
0
    yych = *(YYMARKER = ++YYCURSOR);
4858
0
    if (yych == 'A') goto yy403;
4859
0
    if (yych == 'a') goto yy403;
4860
0
    goto yy48;
4861
875
yy305:
4862
875
    YYDEBUG(305, *YYCURSOR);
4863
875
    yyaccept = 20;
4864
875
    yych = *(YYMARKER = ++YYCURSOR);
4865
875
    if (yych <= '\\') {
4866
857
      if (yych <= 'D') {
4867
857
        if (yych <= '/') goto yy306;
4868
0
        if (yych <= '9') goto yy47;
4869
0
        if (yych >= 'A') goto yy47;
4870
0
      } else {
4871
0
        if (yych <= 'E') goto yy404;
4872
0
        if (yych <= 'Z') goto yy47;
4873
0
        if (yych >= '\\') goto yy164;
4874
0
      }
4875
857
    } else {
4876
18
      if (yych <= 'd') {
4877
0
        if (yych == '_') goto yy47;
4878
0
        if (yych >= 'a') goto yy47;
4879
18
      } else {
4880
18
        if (yych <= 'e') goto yy404;
4881
0
        if (yych <= 'z') goto yy47;
4882
0
        if (yych >= 0x80) goto yy47;
4883
0
      }
4884
18
    }
4885
857
yy306:
4886
857
    YYDEBUG(306, *YYCURSOR);
4887
857
    yyleng = YYCURSOR - SCNG(yy_text);
4888
857
#line 1482 "Zend/zend_language_scanner.l"
4889
857
    {
4890
857
  RETURN_TOKEN_WITH_IDENT(T_FOR);
4891
857
}
4892
0
#line 4893 "Zend/zend_language_scanner.c"
4893
2.39k
yy307:
4894
2.39k
    YYDEBUG(307, *YYCURSOR);
4895
2.39k
    yyaccept = 4;
4896
2.39k
    yych = *(YYMARKER = ++YYCURSOR);
4897
2.39k
    if (yych == 'C') goto yy405;
4898
2.39k
    if (yych == 'c') goto yy405;
4899
0
    goto yy48;
4900
0
yy308:
4901
0
    YYDEBUG(308, *YYCURSOR);
4902
0
    yyaccept = 4;
4903
0
    yych = *(YYMARKER = ++YYCURSOR);
4904
0
    if (yych == 'B') goto yy406;
4905
0
    if (yych == 'b') goto yy406;
4906
0
    goto yy48;
4907
0
yy309:
4908
0
    YYDEBUG(309, *YYCURSOR);
4909
0
    yyaccept = 4;
4910
0
    yych = *(YYMARKER = ++YYCURSOR);
4911
0
    if (yych == 'O') goto yy407;
4912
0
    if (yych == 'o') goto yy407;
4913
0
    goto yy48;
4914
834
yy310:
4915
834
    YYDEBUG(310, *YYCURSOR);
4916
834
    yyaccept = 4;
4917
834
    yych = *(YYMARKER = ++YYCURSOR);
4918
834
    if (yych == 'L') goto yy409;
4919
834
    if (yych == 'l') goto yy409;
4920
264
    goto yy48;
4921
264
yy311:
4922
0
    YYDEBUG(311, *YYCURSOR);
4923
0
    yyaccept = 4;
4924
0
    yych = *(YYMARKER = ++YYCURSOR);
4925
0
    if (yych == 'L') goto yy410;
4926
0
    if (yych == 'l') goto yy410;
4927
0
    goto yy48;
4928
0
yy312:
4929
0
    YYDEBUG(312, *YYCURSOR);
4930
0
    yyaccept = 4;
4931
0
    yych = *(YYMARKER = ++YYCURSOR);
4932
0
    if (yych == 'T') goto yy411;
4933
0
    if (yych == 't') goto yy411;
4934
0
    goto yy48;
4935
33
yy313:
4936
33
    YYDEBUG(313, *YYCURSOR);
4937
33
    yyaccept = 4;
4938
33
    yych = *(YYMARKER = ++YYCURSOR);
4939
33
    if (yych == 'E') goto yy412;
4940
33
    if (yych == 'e') goto yy412;
4941
33
    goto yy48;
4942
33
yy314:
4943
0
    YYDEBUG(314, *YYCURSOR);
4944
0
    yyaccept = 4;
4945
0
    yych = *(YYMARKER = ++YYCURSOR);
4946
0
    if (yych == 'E') goto yy413;
4947
0
    if (yych == 'e') goto yy413;
4948
0
    goto yy48;
4949
0
yy315:
4950
0
    YYDEBUG(315, *YYCURSOR);
4951
0
    yyaccept = 4;
4952
0
    yych = *(YYMARKER = ++YYCURSOR);
4953
0
    if (yych == 'T') goto yy414;
4954
0
    if (yych == 't') goto yy414;
4955
0
    goto yy48;
4956
0
yy316:
4957
0
    YYDEBUG(316, *YYCURSOR);
4958
0
    yyaccept = 4;
4959
0
    yych = *(YYMARKER = ++YYCURSOR);
4960
0
    if (yych == 'C') goto yy416;
4961
0
    if (yych == 'c') goto yy416;
4962
0
    goto yy48;
4963
0
yy317:
4964
0
    YYDEBUG(317, *YYCURSOR);
4965
0
    yyaccept = 4;
4966
0
    yych = *(YYMARKER = ++YYCURSOR);
4967
0
    if (yych == 'E') goto yy417;
4968
0
    if (yych == 'e') goto yy417;
4969
0
    goto yy48;
4970
260
yy318:
4971
260
    YYDEBUG(318, *YYCURSOR);
4972
260
    yyaccept = 21;
4973
260
    yych = *(YYMARKER = ++YYCURSOR);
4974
260
    if (yybm[256+yych] & 128) {
4975
0
      goto yy47;
4976
0
    }
4977
260
    if (yych == '\\') goto yy164;
4978
260
yy319:
4979
260
    YYDEBUG(319, *YYCURSOR);
4980
260
    yyleng = YYCURSOR - SCNG(yy_text);
4981
260
#line 1626 "Zend/zend_language_scanner.l"
4982
260
    {
4983
260
  RETURN_TOKEN_WITH_IDENT(T_NEW);
4984
260
}
4985
0
#line 4986 "Zend/zend_language_scanner.c"
4986
28
yy320:
4987
28
    YYDEBUG(320, *YYCURSOR);
4988
28
    yyaccept = 4;
4989
28
    yych = *(YYMARKER = ++YYCURSOR);
4990
28
    if (yych <= 'V') {
4991
0
      if (yych == 'N') goto yy418;
4992
0
      if (yych <= 'U') goto yy48;
4993
0
      goto yy419;
4994
28
    } else {
4995
28
      if (yych <= 'n') {
4996
28
        if (yych <= 'm') goto yy48;
4997
28
        goto yy418;
4998
28
      } else {
4999
0
        if (yych == 'v') goto yy419;
5000
0
        goto yy48;
5001
0
      }
5002
28
    }
5003
46
yy321:
5004
46
    YYDEBUG(321, *YYCURSOR);
5005
46
    yyaccept = 4;
5006
46
    yych = *(YYMARKER = ++YYCURSOR);
5007
46
    if (yych == 'T') goto yy420;
5008
46
    if (yych == 't') goto yy420;
5009
1
    goto yy48;
5010
1.65k
yy322:
5011
1.65k
    YYDEBUG(322, *YYCURSOR);
5012
1.65k
    yyaccept = 4;
5013
1.65k
    yych = *(YYMARKER = ++YYCURSOR);
5014
1.65k
    if (yych == 'L') goto yy421;
5015
1.65k
    if (yych == 'l') goto yy421;
5016
0
    goto yy48;
5017
0
yy323:
5018
0
    YYDEBUG(323, *YYCURSOR);
5019
0
    yyaccept = 4;
5020
0
    yych = *(YYMARKER = ++YYCURSOR);
5021
0
    if (yych == 'D') goto yy422;
5022
0
    if (yych == 'd') goto yy422;
5023
0
    goto yy48;
5024
692
yy324:
5025
692
    YYDEBUG(324, *YYCURSOR);
5026
692
    yyaccept = 4;
5027
692
    yych = *(YYMARKER = ++YYCURSOR);
5028
692
    if (yych == 'U') goto yy423;
5029
692
    if (yych == 'u') goto yy423;
5030
0
    goto yy48;
5031
71
yy325:
5032
71
    YYDEBUG(325, *YYCURSOR);
5033
71
    yyaccept = 4;
5034
71
    yych = *(YYMARKER = ++YYCURSOR);
5035
71
    if (yych == 'U') goto yy424;
5036
71
    if (yych == 'u') goto yy424;
5037
0
    goto yy48;
5038
0
yy326:
5039
0
    YYDEBUG(326, *YYCURSOR);
5040
0
    yyaccept = 4;
5041
0
    yych = *(YYMARKER = ++YYCURSOR);
5042
0
    if (yych == 'T') goto yy425;
5043
0
    if (yych == 't') goto yy425;
5044
0
    goto yy48;
5045
49
yy327:
5046
49
    YYDEBUG(327, *YYCURSOR);
5047
49
    yyaccept = 4;
5048
49
    yych = *(YYMARKER = ++YYCURSOR);
5049
49
    if (yych == 'T') goto yy426;
5050
49
    if (yych == 't') goto yy426;
5051
0
    goto yy48;
5052
0
yy328:
5053
0
    YYDEBUG(328, *YYCURSOR);
5054
0
    yyaccept = 4;
5055
0
    yych = *(YYMARKER = ++YYCURSOR);
5056
0
    if (yych == 'O') goto yy427;
5057
0
    if (yych == 'o') goto yy427;
5058
0
    goto yy48;
5059
0
yy329:
5060
0
    YYDEBUG(329, *YYCURSOR);
5061
0
    yyaccept = 4;
5062
0
    yych = *(YYMARKER = ++YYCURSOR);
5063
0
    if (yych == 'I') goto yy428;
5064
0
    if (yych == 'i') goto yy428;
5065
0
    goto yy48;
5066
27
yy330:
5067
27
    YYDEBUG(330, *YYCURSOR);
5068
27
    yyaccept = 22;
5069
27
    yych = *(YYMARKER = ++YYCURSOR);
5070
27
    if (yybm[256+yych] & 128) {
5071
0
      goto yy47;
5072
0
    }
5073
27
    if (yych == '\\') goto yy164;
5074
27
yy331:
5075
27
    YYDEBUG(331, *YYCURSOR);
5076
27
    yyleng = YYCURSOR - SCNG(yy_text);
5077
27
#line 1438 "Zend/zend_language_scanner.l"
5078
27
    {
5079
27
  RETURN_TOKEN_WITH_IDENT(T_TRY);
5080
27
}
5081
0
#line 5082 "Zend/zend_language_scanner.c"
5082
28
yy332:
5083
28
    YYDEBUG(332, *YYCURSOR);
5084
28
    yyaccept = 4;
5085
28
    yych = *(YYMARKER = ++YYCURSOR);
5086
28
    if (yych == 'E') goto yy429;
5087
28
    if (yych == 'e') goto yy429;
5088
0
    goto yy48;
5089
0
yy333:
5090
0
    YYDEBUG(333, *YYCURSOR);
5091
0
    yyaccept = 23;
5092
0
    yych = *(YYMARKER = ++YYCURSOR);
5093
0
    if (yybm[256+yych] & 128) {
5094
0
      goto yy47;
5095
0
    }
5096
0
    if (yych == '\\') goto yy164;
5097
0
yy334:
5098
0
    YYDEBUG(334, *YYCURSOR);
5099
0
    yyleng = YYCURSOR - SCNG(yy_text);
5100
0
#line 1742 "Zend/zend_language_scanner.l"
5101
0
    {
5102
0
  RETURN_TOKEN_WITH_IDENT(T_USE);
5103
0
}
5104
0
#line 5105 "Zend/zend_language_scanner.c"
5105
198
yy335:
5106
198
    YYDEBUG(335, *YYCURSOR);
5107
198
    yyaccept = 24;
5108
198
    yych = *(YYMARKER = ++YYCURSOR);
5109
198
    if (yybm[256+yych] & 128) {
5110
198
      goto yy47;
5111
198
    }
5112
0
    if (yych == '\\') goto yy164;
5113
0
yy336:
5114
0
    YYDEBUG(336, *YYCURSOR);
5115
0
    yyleng = YYCURSOR - SCNG(yy_text);
5116
0
#line 1634 "Zend/zend_language_scanner.l"
5117
0
    {
5118
0
  RETURN_TOKEN_WITH_IDENT(T_VAR);
5119
0
}
5120
0
#line 5121 "Zend/zend_language_scanner.c"
5121
0
yy337:
5122
0
    YYDEBUG(337, *YYCURSOR);
5123
0
    yyaccept = 4;
5124
0
    yych = *(YYMARKER = ++YYCURSOR);
5125
0
    if (yych == 'L') goto yy430;
5126
0
    if (yych == 'l') goto yy430;
5127
0
    goto yy48;
5128
193
yy338:
5129
193
    YYDEBUG(338, *YYCURSOR);
5130
193
    yyaccept = 25;
5131
193
    yych = *(YYMARKER = ++YYCURSOR);
5132
193
    if (yybm[256+yych] & 128) {
5133
0
      goto yy47;
5134
0
    }
5135
193
    if (yych == '\\') goto yy164;
5136
193
yy339:
5137
193
    YYDEBUG(339, *YYCURSOR);
5138
193
    yyleng = YYCURSOR - SCNG(yy_text);
5139
193
#line 1938 "Zend/zend_language_scanner.l"
5140
193
    {
5141
193
  RETURN_TOKEN_WITH_IDENT(T_LOGICAL_XOR);
5142
193
}
5143
0
#line 5144 "Zend/zend_language_scanner.c"
5144
0
yy340:
5145
0
    YYDEBUG(340, *YYCURSOR);
5146
0
    yyaccept = 4;
5147
0
    yych = *(YYMARKER = ++YYCURSOR);
5148
0
    if (yych == 'L') goto yy431;
5149
0
    if (yych == 'l') goto yy431;
5150
0
    goto yy48;
5151
0
yy341:
5152
0
    YYDEBUG(341, *YYCURSOR);
5153
0
    ++YYCURSOR;
5154
0
    YYFILL(1);
5155
0
    yych = *YYCURSOR;
5156
0
    if (yych <= '_') {
5157
0
      if (yych <= '@') goto yy86;
5158
0
      if (yych <= 'Z') goto yy211;
5159
0
      if (yych <= '^') goto yy86;
5160
0
      goto yy211;
5161
0
    } else {
5162
0
      if (yych <= '`') goto yy86;
5163
0
      if (yych <= 'z') goto yy211;
5164
0
      if (yych <= 0x7F) goto yy86;
5165
0
      goto yy211;
5166
0
    }
5167
0
yy342:
5168
0
    YYDEBUG(342, *YYCURSOR);
5169
0
    yyaccept = 4;
5170
0
    yych = *(YYMARKER = ++YYCURSOR);
5171
0
    if (yych == 'L') goto yy432;
5172
0
    if (yych == 'l') goto yy432;
5173
0
    goto yy48;
5174
33
yy343:
5175
33
    YYDEBUG(343, *YYCURSOR);
5176
33
    yyaccept = 4;
5177
33
    yych = *(YYMARKER = ++YYCURSOR);
5178
33
    if (yych == 'I') goto yy433;
5179
33
    if (yych == 'i') goto yy433;
5180
33
    goto yy48;
5181
33
yy344:
5182
8
    YYDEBUG(344, *YYCURSOR);
5183
8
    yyaccept = 4;
5184
8
    yych = *(YYMARKER = ++YYCURSOR);
5185
8
    if (yych <= 'U') {
5186
8
      if (yych == 'I') goto yy434;
5187
0
      if (yych <= 'T') goto yy48;
5188
0
      goto yy435;
5189
0
    } else {
5190
0
      if (yych <= 'i') {
5191
0
        if (yych <= 'h') goto yy48;
5192
0
        goto yy434;
5193
0
      } else {
5194
0
        if (yych == 'u') goto yy435;
5195
0
        goto yy48;
5196
0
      }
5197
0
    }
5198
0
yy345:
5199
0
    YYDEBUG(345, *YYCURSOR);
5200
0
    yyaccept = 4;
5201
0
    yych = *(YYMARKER = ++YYCURSOR);
5202
0
    if (yych == 'A') goto yy436;
5203
0
    if (yych == 'a') goto yy436;
5204
0
    goto yy48;
5205
33
yy346:
5206
33
    YYDEBUG(346, *YYCURSOR);
5207
33
    yyaccept = 4;
5208
33
    yych = *(YYMARKER = ++YYCURSOR);
5209
33
    if (yych == 'I') goto yy437;
5210
0
    if (yych == 'i') goto yy437;
5211
0
    goto yy48;
5212
189
yy347:
5213
189
    YYDEBUG(347, *YYCURSOR);
5214
189
    yyaccept = 4;
5215
189
    yych = *(YYMARKER = ++YYCURSOR);
5216
189
    if (yych == 'E') goto yy438;
5217
0
    if (yych == 'e') goto yy438;
5218
0
    goto yy48;
5219
1
yy348:
5220
1
    YYDEBUG(348, *YYCURSOR);
5221
1
    yyaccept = 4;
5222
1
    yych = *(YYMARKER = ++YYCURSOR);
5223
1
    if (yych == 'A') goto yy439;
5224
0
    if (yych == 'a') goto yy439;
5225
0
    goto yy48;
5226
0
yy349:
5227
0
    YYDEBUG(349, *YYCURSOR);
5228
0
    yyaccept = 4;
5229
0
    yych = *(YYMARKER = ++YYCURSOR);
5230
0
    if (yych == 'R') goto yy440;
5231
0
    if (yych == 'r') goto yy440;
5232
0
    goto yy48;
5233
3
yy350:
5234
3
    YYDEBUG(350, *YYCURSOR);
5235
3
    yyaccept = 4;
5236
3
    yych = *(YYMARKER = ++YYCURSOR);
5237
3
    if (yych == 'R') goto yy441;
5238
3
    if (yych == 'r') goto yy441;
5239
3
    goto yy48;
5240
3
yy351:
5241
0
    YYDEBUG(351, *YYCURSOR);
5242
0
    ++YYCURSOR;
5243
0
    YYFILL(1);
5244
0
    yych = *YYCURSOR;
5245
0
    if (yybm[0+yych] & 2) {
5246
0
      goto yy225;
5247
0
    }
5248
0
    if (yych <= 0x00) goto yy86;
5249
0
    goto yy227;
5250
0
yy352:
5251
0
    YYDEBUG(352, *YYCURSOR);
5252
0
    yyaccept = 26;
5253
0
    YYMARKER = ++YYCURSOR;
5254
0
    YYFILL(1);
5255
0
    yych = *YYCURSOR;
5256
0
    if (yybm[0+yych] & 2) {
5257
0
      goto yy225;
5258
0
    }
5259
0
    if (yych <= 0x00) goto yy89;
5260
0
    goto yy84;
5261
0
yy353:
5262
0
    YYDEBUG(353, *YYCURSOR);
5263
0
    ++YYCURSOR;
5264
0
    YYFILL(1);
5265
0
    yych = *YYCURSOR;
5266
0
    if (yych <= '\f') {
5267
0
      if (yych <= 0x00) goto yy86;
5268
0
      if (yych == '\n') goto yy84;
5269
0
      goto yy225;
5270
0
    } else {
5271
0
      if (yych <= '\r') goto yy84;
5272
0
      if (yych == '.') goto yy442;
5273
0
      goto yy225;
5274
0
    }
5275
0
yy354:
5276
0
    YYDEBUG(354, *YYCURSOR);
5277
0
    ++YYCURSOR;
5278
0
    YYFILL(1);
5279
0
    yych = *YYCURSOR;
5280
0
    if (yych <= '\f') {
5281
0
      if (yych <= 0x00) goto yy86;
5282
0
      if (yych == '\n') goto yy84;
5283
0
      goto yy225;
5284
0
    } else {
5285
0
      if (yych <= '\r') goto yy84;
5286
0
      if (yych == '*') goto yy443;
5287
0
      goto yy225;
5288
0
    }
5289
0
yy355:
5290
0
    YYDEBUG(355, *YYCURSOR);
5291
0
    ++YYCURSOR;
5292
0
    YYFILL(1);
5293
0
    yych = *YYCURSOR;
5294
0
    YYDEBUG(356, *YYCURSOR);
5295
0
    if (yybm[0+yych] & 64) {
5296
0
      goto yy355;
5297
0
    }
5298
0
    if (yych <= 0x00) goto yy86;
5299
0
    if (yych == '/') goto yy84;
5300
0
    goto yy230;
5301
639
yy357:
5302
639
    YYDEBUG(357, *YYCURSOR);
5303
639
    yych = *++YYCURSOR;
5304
639
    if (yych == 'A') goto yy445;
5305
639
    if (yych == 'a') goto yy445;
5306
3
    goto yy86;
5307
3
yy358:
5308
0
    YYDEBUG(358, *YYCURSOR);
5309
0
    yych = *++YYCURSOR;
5310
0
    if (yych == 'A') goto yy446;
5311
0
    if (yych == 'a') goto yy446;
5312
0
    goto yy86;
5313
45
yy359:
5314
45
    YYDEBUG(359, *YYCURSOR);
5315
45
    yych = *++YYCURSOR;
5316
45
    if (yych == 'L') goto yy447;
5317
45
    if (yych == 'l') goto yy447;
5318
0
    goto yy86;
5319
0
yy360:
5320
0
    YYDEBUG(360, *YYCURSOR);
5321
0
    yych = *++YYCURSOR;
5322
0
    if (yych == 'B') goto yy448;
5323
0
    if (yych == 'b') goto yy448;
5324
0
    goto yy86;
5325
39
yy361:
5326
39
    YYDEBUG(361, *YYCURSOR);
5327
39
    yych = *++YYCURSOR;
5328
39
    if (yych == 'A') goto yy449;
5329
39
    if (yych == 'a') goto yy449;
5330
0
    goto yy86;
5331
84
yy362:
5332
84
    YYDEBUG(362, *YYCURSOR);
5333
84
    yych = *++YYCURSOR;
5334
84
    if (yych == 'E') goto yy454;
5335
84
    if (yych == 'e') goto yy454;
5336
84
    goto yy451;
5337
84
yy363:
5338
63
    YYDEBUG(363, *YYCURSOR);
5339
63
    yych = *++YYCURSOR;
5340
63
    if (yych == 'E') goto yy455;
5341
63
    if (yych == 'e') goto yy455;
5342
0
    goto yy86;
5343
0
yy364:
5344
0
    YYDEBUG(364, *YYCURSOR);
5345
0
    yych = *++YYCURSOR;
5346
0
    if (yych == 'L') goto yy456;
5347
0
    if (yych == 'l') goto yy456;
5348
0
    goto yy86;
5349
905
yy365:
5350
905
    YYDEBUG(365, *YYCURSOR);
5351
905
    yych = *++YYCURSOR;
5352
905
    if (yych == 'I') goto yy458;
5353
905
    if (yych == 'i') goto yy458;
5354
12
    goto yy86;
5355
12
yy366:
5356
0
    YYDEBUG(366, *YYCURSOR);
5357
0
    yych = *++YYCURSOR;
5358
0
    if (yych == 'E') goto yy459;
5359
0
    if (yych == 'e') goto yy459;
5360
0
    goto yy86;
5361
0
yy367:
5362
0
    YYDEBUG(367, *YYCURSOR);
5363
0
    yych = *++YYCURSOR;
5364
0
    if (yych == 'D') goto yy460;
5365
0
    if (yych == 'd') goto yy460;
5366
0
    goto yy86;
5367
0
yy368:
5368
0
    YYDEBUG(368, *YYCURSOR);
5369
0
    ++YYCURSOR;
5370
0
    YYFILL(1);
5371
0
    yych = *YYCURSOR;
5372
0
    YYDEBUG(369, *YYCURSOR);
5373
0
    if (yych <= '\f') {
5374
0
      if (yych <= 0x08) goto yy129;
5375
0
      if (yych <= '\n') goto yy368;
5376
0
      goto yy129;
5377
0
    } else {
5378
0
      if (yych <= '\r') goto yy368;
5379
0
      if (yych == ' ') goto yy368;
5380
0
      goto yy129;
5381
0
    }
5382
0
yy370:
5383
0
    YYDEBUG(370, *YYCURSOR);
5384
0
    yych = *++YYCURSOR;
5385
0
    if (yych == '"') goto yy86;
5386
0
    if (yych <= '/') goto yy463;
5387
0
    if (yych <= '9') goto yy86;
5388
0
    goto yy463;
5389
156
yy371:
5390
156
    YYDEBUG(371, *YYCURSOR);
5391
156
    yych = *++YYCURSOR;
5392
156
    if (yych == '\'') goto yy86;
5393
156
    if (yych <= '/') goto yy465;
5394
156
    if (yych <= '9') goto yy86;
5395
156
    goto yy465;
5396
72.6k
yy372:
5397
72.6k
    YYDEBUG(372, *YYCURSOR);
5398
72.6k
    ++YYCURSOR;
5399
72.6k
    YYFILL(2);
5400
72.6k
    yych = *YYCURSOR;
5401
72.6k
    YYDEBUG(373, *YYCURSOR);
5402
72.6k
    if (yych <= '@') {
5403
22.7k
      if (yych <= '\f') {
5404
20.1k
        if (yych == '\n') goto yy466;
5405
592
        goto yy86;
5406
20.1k
      } else {
5407
2.59k
        if (yych <= '\r') goto yy468;
5408
2.20k
        if (yych <= '/') goto yy86;
5409
369
        if (yych <= '9') goto yy372;
5410
342
        goto yy86;
5411
369
      }
5412
49.8k
    } else {
5413
49.8k
      if (yych <= '_') {
5414
2.58k
        if (yych <= 'Z') goto yy372;
5415
0
        if (yych <= '^') goto yy86;
5416
0
        goto yy372;
5417
47.2k
      } else {
5418
47.2k
        if (yych <= '`') goto yy86;
5419
47.2k
        if (yych <= 'z') goto yy372;
5420
41.6k
        if (yych <= 0x7F) goto yy86;
5421
41.6k
        goto yy372;
5422
41.6k
      }
5423
49.8k
    }
5424
0
yy374:
5425
0
    YYDEBUG(374, *YYCURSOR);
5426
0
    yyaccept = 4;
5427
0
    yych = *(YYMARKER = ++YYCURSOR);
5428
0
    if (yych == 'R') goto yy469;
5429
0
    if (yych == 'r') goto yy469;
5430
0
    goto yy48;
5431
504
yy375:
5432
504
    YYDEBUG(375, *YYCURSOR);
5433
504
    yyaccept = 4;
5434
504
    yych = *(YYMARKER = ++YYCURSOR);
5435
504
    if (yych == 'Y') goto yy470;
5436
504
    if (yych == 'y') goto yy470;
5437
0
    goto yy48;
5438
1
yy376:
5439
1
    YYDEBUG(376, *YYCURSOR);
5440
1
    yyaccept = 4;
5441
1
    yych = *(YYMARKER = ++YYCURSOR);
5442
1
    if (yych == 'K') goto yy472;
5443
1
    if (yych == 'k') goto yy472;
5444
0
    goto yy48;
5445
849
yy377:
5446
849
    YYDEBUG(377, *YYCURSOR);
5447
849
    yyaccept = 4;
5448
849
    yych = *(YYMARKER = ++YYCURSOR);
5449
849
    if (yych == 'A') goto yy474;
5450
849
    if (yych == 'a') goto yy474;
5451
129
    goto yy48;
5452
129
yy378:
5453
0
    YYDEBUG(378, *YYCURSOR);
5454
0
    yyaccept = 27;
5455
0
    yych = *(YYMARKER = ++YYCURSOR);
5456
0
    if (yybm[256+yych] & 128) {
5457
0
      goto yy47;
5458
0
    }
5459
0
    if (yych == '\\') goto yy164;
5460
0
yy379:
5461
0
    YYDEBUG(379, *YYCURSOR);
5462
0
    yyleng = YYCURSOR - SCNG(yy_text);
5463
0
#line 1526 "Zend/zend_language_scanner.l"
5464
0
    {
5465
0
  RETURN_TOKEN_WITH_IDENT(T_CASE);
5466
0
}
5467
0
#line 5468 "Zend/zend_language_scanner.c"
5468
52
yy380:
5469
52
    YYDEBUG(380, *YYCURSOR);
5470
52
    yyaccept = 4;
5471
52
    yych = *(YYMARKER = ++YYCURSOR);
5472
52
    if (yych == 'H') goto yy475;
5473
52
    if (yych == 'h') goto yy475;
5474
0
    goto yy48;
5475
866
yy381:
5476
866
    YYDEBUG(381, *YYCURSOR);
5477
866
    yyaccept = 4;
5478
866
    yych = *(YYMARKER = ++YYCURSOR);
5479
866
    if (yych == 'S') goto yy477;
5480
866
    if (yych == 's') goto yy477;
5481
0
    goto yy48;
5482
0
yy382:
5483
0
    YYDEBUG(382, *YYCURSOR);
5484
0
    yyaccept = 4;
5485
0
    yych = *(YYMARKER = ++YYCURSOR);
5486
0
    if (yych == 'E') goto yy479;
5487
0
    if (yych == 'e') goto yy479;
5488
0
    goto yy48;
5489
578
yy383:
5490
578
    YYDEBUG(383, *YYCURSOR);
5491
578
    yyaccept = 4;
5492
578
    yych = *(YYMARKER = ++YYCURSOR);
5493
578
    if (yych == 'T') goto yy481;
5494
578
    if (yych == 't') goto yy481;
5495
33
    goto yy48;
5496
33
yy384:
5497
0
    YYDEBUG(384, *YYCURSOR);
5498
0
    yyaccept = 4;
5499
0
    yych = *(YYMARKER = ++YYCURSOR);
5500
0
    if (yych == 'I') goto yy483;
5501
0
    if (yych == 'i') goto yy483;
5502
0
    goto yy48;
5503
0
yy385:
5504
0
    YYDEBUG(385, *YYCURSOR);
5505
0
    yyaccept = 4;
5506
0
    yych = *(YYMARKER = ++YYCURSOR);
5507
0
    if (yych == 'A') goto yy484;
5508
0
    if (yych == 'a') goto yy484;
5509
0
    goto yy48;
5510
0
yy386:
5511
0
    YYDEBUG(386, *YYCURSOR);
5512
0
    yyaccept = 4;
5513
0
    yych = *(YYMARKER = ++YYCURSOR);
5514
0
    if (yych == 'U') goto yy485;
5515
0
    if (yych == 'u') goto yy485;
5516
0
    goto yy48;
5517
300
yy387:
5518
300
    YYDEBUG(387, *YYCURSOR);
5519
300
    yyaccept = 28;
5520
300
    yych = *(YYMARKER = ++YYCURSOR);
5521
300
    if (yybm[256+yych] & 128) {
5522
4
      goto yy47;
5523
4
    }
5524
296
    if (yych == '\\') goto yy164;
5525
296
yy388:
5526
296
    YYDEBUG(388, *YYCURSOR);
5527
296
    yyleng = YYCURSOR - SCNG(yy_text);
5528
296
#line 1546 "Zend/zend_language_scanner.l"
5529
296
    {
5530
296
  RETURN_TOKEN_WITH_IDENT(T_ECHO);
5531
296
}
5532
0
#line 5533 "Zend/zend_language_scanner.c"
5533
0
yy389:
5534
0
    YYDEBUG(389, *YYCURSOR);
5535
0
    yyaccept = 29;
5536
0
    yych = *(YYMARKER = ++YYCURSOR);
5537
0
    if (yych <= '\\') {
5538
0
      if (yych <= 'H') {
5539
0
        if (yych <= '/') goto yy390;
5540
0
        if (yych <= '9') goto yy47;
5541
0
        if (yych >= 'A') goto yy47;
5542
0
      } else {
5543
0
        if (yych <= 'I') goto yy486;
5544
0
        if (yych <= 'Z') goto yy47;
5545
0
        if (yych >= '\\') goto yy164;
5546
0
      }
5547
0
    } else {
5548
0
      if (yych <= 'h') {
5549
0
        if (yych == '_') goto yy47;
5550
0
        if (yych >= 'a') goto yy47;
5551
0
      } else {
5552
0
        if (yych <= 'i') goto yy486;
5553
0
        if (yych <= 'z') goto yy47;
5554
0
        if (yych >= 0x80) goto yy47;
5555
0
      }
5556
0
    }
5557
0
yy390:
5558
0
    YYDEBUG(390, *YYCURSOR);
5559
0
    yyleng = YYCURSOR - SCNG(yy_text);
5560
0
#line 1466 "Zend/zend_language_scanner.l"
5561
0
    {
5562
0
  RETURN_TOKEN_WITH_IDENT(T_ELSE);
5563
0
}
5564
0
#line 5565 "Zend/zend_language_scanner.c"
5565
0
yy391:
5566
0
    YYDEBUG(391, *YYCURSOR);
5567
0
    yyaccept = 4;
5568
0
    yych = *(YYMARKER = ++YYCURSOR);
5569
0
    if (yych == 'Y') goto yy487;
5570
0
    if (yych == 'y') goto yy487;
5571
0
    goto yy48;
5572
0
yy392:
5573
0
    YYDEBUG(392, *YYCURSOR);
5574
0
    yyaccept = 4;
5575
0
    yych = *(YYMARKER = ++YYCURSOR);
5576
0
    if (yych == 'E') goto yy489;
5577
0
    if (yych == 'e') goto yy489;
5578
0
    goto yy48;
5579
0
yy393:
5580
0
    YYDEBUG(393, *YYCURSOR);
5581
0
    yyaccept = 4;
5582
0
    yych = *(YYMARKER = ++YYCURSOR);
5583
0
    if (yych == 'O') goto yy490;
5584
0
    if (yych == 'o') goto yy490;
5585
0
    goto yy48;
5586
0
yy394:
5587
0
    YYDEBUG(394, *YYCURSOR);
5588
0
    yyaccept = 4;
5589
0
    yych = *(YYMARKER = ++YYCURSOR);
5590
0
    if (yych == 'F') goto yy491;
5591
0
    if (yych == 'f') goto yy491;
5592
0
    goto yy48;
5593
6
yy395:
5594
6
    YYDEBUG(395, *YYCURSOR);
5595
6
    yyaccept = 4;
5596
6
    yych = *(YYMARKER = ++YYCURSOR);
5597
6
    if (yych == 'W') goto yy493;
5598
6
    if (yych == 'w') goto yy493;
5599
6
    goto yy48;
5600
276
yy396:
5601
276
    YYDEBUG(396, *YYCURSOR);
5602
276
    yyaccept = 4;
5603
276
    yych = *(YYMARKER = ++YYCURSOR);
5604
276
    if (yych == 'H') goto yy494;
5605
276
    if (yych == 'h') goto yy494;
5606
0
    goto yy48;
5607
2.35k
yy397:
5608
2.35k
    YYDEBUG(397, *YYCURSOR);
5609
2.35k
    yyaccept = 4;
5610
2.35k
    yych = *(YYMARKER = ++YYCURSOR);
5611
2.35k
    if (yych <= 0x1F) {
5612
2.20k
      if (yych <= '\n') {
5613
0
        if (yych <= 0x08) goto yy48;
5614
0
        goto yy495;
5615
2.20k
      } else {
5616
2.20k
        if (yych == '\r') goto yy495;
5617
0
        goto yy48;
5618
2.20k
      }
5619
2.20k
    } else {
5620
149
      if (yych <= '#') {
5621
0
        if (yych <= ' ') goto yy495;
5622
0
        if (yych <= '"') goto yy48;
5623
0
        goto yy497;
5624
149
      } else {
5625
149
        if (yych == '/') goto yy498;
5626
149
        goto yy48;
5627
149
      }
5628
149
    }
5629
8
yy398:
5630
8
    YYDEBUG(398, *YYCURSOR);
5631
8
    yyaccept = 30;
5632
8
    yych = *(YYMARKER = ++YYCURSOR);
5633
8
    if (yybm[256+yych] & 128) {
5634
0
      goto yy47;
5635
0
    }
5636
8
    if (yych == '\\') goto yy164;
5637
8
yy399:
5638
8
    YYDEBUG(399, *YYCURSOR);
5639
8
    yyleng = YYCURSOR - SCNG(yy_text);
5640
8
#line 1718 "Zend/zend_language_scanner.l"
5641
8
    {
5642
8
  RETURN_TOKEN_WITH_IDENT(T_EVAL);
5643
8
}
5644
0
#line 5645 "Zend/zend_language_scanner.c"
5645
0
yy400:
5646
0
    YYDEBUG(400, *YYCURSOR);
5647
0
    yyaccept = 31;
5648
0
    yych = *(YYMARKER = ++YYCURSOR);
5649
0
    if (yybm[256+yych] & 128) {
5650
0
      goto yy47;
5651
0
    }
5652
0
    if (yych == '\\') goto yy164;
5653
0
yy401:
5654
0
    YYDEBUG(401, *YYCURSOR);
5655
0
    yyleng = YYCURSOR - SCNG(yy_text);
5656
0
#line 1399 "Zend/zend_language_scanner.l"
5657
0
    {
5658
0
  RETURN_TOKEN_WITH_IDENT(T_EXIT);
5659
0
}
5660
0
#line 5661 "Zend/zend_language_scanner.c"
5661
399
yy402:
5662
399
    YYDEBUG(402, *YYCURSOR);
5663
399
    yyaccept = 4;
5664
399
    yych = *(YYMARKER = ++YYCURSOR);
5665
399
    if (yych == 'N') goto yy499;
5666
399
    if (yych == 'n') goto yy499;
5667
0
    goto yy48;
5668
0
yy403:
5669
0
    YYDEBUG(403, *YYCURSOR);
5670
0
    yyaccept = 4;
5671
0
    yych = *(YYMARKER = ++YYCURSOR);
5672
0
    if (yych == 'L') goto yy500;
5673
0
    if (yych == 'l') goto yy500;
5674
0
    goto yy48;
5675
18
yy404:
5676
18
    YYDEBUG(404, *YYCURSOR);
5677
18
    yyaccept = 4;
5678
18
    yych = *(YYMARKER = ++YYCURSOR);
5679
18
    if (yych == 'A') goto yy502;
5680
18
    if (yych == 'a') goto yy502;
5681
0
    goto yy48;
5682
2.39k
yy405:
5683
2.39k
    YYDEBUG(405, *YYCURSOR);
5684
2.39k
    yyaccept = 4;
5685
2.39k
    yych = *(YYMARKER = ++YYCURSOR);
5686
2.39k
    if (yych == 'T') goto yy503;
5687
2.39k
    if (yych == 't') goto yy503;
5688
0
    goto yy48;
5689
0
yy406:
5690
0
    YYDEBUG(406, *YYCURSOR);
5691
0
    yyaccept = 4;
5692
0
    yych = *(YYMARKER = ++YYCURSOR);
5693
0
    if (yych == 'A') goto yy504;
5694
0
    if (yych == 'a') goto yy504;
5695
0
    goto yy48;
5696
0
yy407:
5697
0
    YYDEBUG(407, *YYCURSOR);
5698
0
    yyaccept = 32;
5699
0
    yych = *(YYMARKER = ++YYCURSOR);
5700
0
    if (yybm[256+yych] & 128) {
5701
0
      goto yy47;
5702
0
    }
5703
0
    if (yych == '\\') goto yy164;
5704
0
yy408:
5705
0
    YYDEBUG(408, *YYCURSOR);
5706
0
    yyleng = YYCURSOR - SCNG(yy_text);
5707
0
#line 1542 "Zend/zend_language_scanner.l"
5708
0
    {
5709
0
  RETURN_TOKEN_WITH_IDENT(T_GOTO);
5710
0
}
5711
0
#line 5712 "Zend/zend_language_scanner.c"
5712
570
yy409:
5713
570
    YYDEBUG(409, *YYCURSOR);
5714
570
    yyaccept = 4;
5715
570
    yych = *(YYMARKER = ++YYCURSOR);
5716
570
    if (yych == 'E') goto yy505;
5717
570
    if (yych == 'e') goto yy505;
5718
0
    goto yy48;
5719
0
yy410:
5720
0
    YYDEBUG(410, *YYCURSOR);
5721
0
    yyaccept = 4;
5722
0
    yych = *(YYMARKER = ++YYCURSOR);
5723
0
    if (yych == 'U') goto yy506;
5724
0
    if (yych == 'u') goto yy506;
5725
0
    goto yy48;
5726
0
yy411:
5727
0
    YYDEBUG(411, *YYCURSOR);
5728
0
    yyaccept = 4;
5729
0
    yych = *(YYMARKER = ++YYCURSOR);
5730
0
    if (yych <= 'E') {
5731
0
      if (yych == 'A') goto yy507;
5732
0
      if (yych <= 'D') goto yy48;
5733
0
      goto yy508;
5734
0
    } else {
5735
0
      if (yych <= 'a') {
5736
0
        if (yych <= '`') goto yy48;
5737
0
        goto yy507;
5738
0
      } else {
5739
0
        if (yych == 'e') goto yy508;
5740
0
        goto yy48;
5741
0
      }
5742
0
    }
5743
0
yy412:
5744
0
    YYDEBUG(412, *YYCURSOR);
5745
0
    yyaccept = 4;
5746
0
    yych = *(YYMARKER = ++YYCURSOR);
5747
0
    if (yych == 'R') goto yy509;
5748
0
    if (yych == 'r') goto yy509;
5749
0
    goto yy48;
5750
0
yy413:
5751
0
    YYDEBUG(413, *YYCURSOR);
5752
0
    yyaccept = 4;
5753
0
    yych = *(YYMARKER = ++YYCURSOR);
5754
0
    if (yych == 'T') goto yy510;
5755
0
    if (yych == 't') goto yy510;
5756
0
    goto yy48;
5757
0
yy414:
5758
0
    YYDEBUG(414, *YYCURSOR);
5759
0
    yyaccept = 33;
5760
0
    yych = *(YYMARKER = ++YYCURSOR);
5761
0
    if (yybm[256+yych] & 128) {
5762
0
      goto yy47;
5763
0
    }
5764
0
    if (yych == '\\') goto yy164;
5765
0
yy415:
5766
0
    YYDEBUG(415, *YYCURSOR);
5767
0
    yyleng = YYCURSOR - SCNG(yy_text);
5768
0
#line 1814 "Zend/zend_language_scanner.l"
5769
0
    {
5770
0
  RETURN_TOKEN_WITH_IDENT(T_LIST);
5771
0
}
5772
0
#line 5773 "Zend/zend_language_scanner.c"
5773
0
yy416:
5774
0
    YYDEBUG(416, *YYCURSOR);
5775
0
    yyaccept = 4;
5776
0
    yych = *(YYMARKER = ++YYCURSOR);
5777
0
    if (yych == 'H') goto yy512;
5778
0
    if (yych == 'h') goto yy512;
5779
0
    goto yy48;
5780
0
yy417:
5781
0
    YYDEBUG(417, *YYCURSOR);
5782
0
    yyaccept = 4;
5783
0
    yych = *(YYMARKER = ++YYCURSOR);
5784
0
    if (yych == 'S') goto yy514;
5785
0
    if (yych == 's') goto yy514;
5786
0
    goto yy48;
5787
28
yy418:
5788
28
    YYDEBUG(418, *YYCURSOR);
5789
28
    yyaccept = 4;
5790
28
    yych = *(YYMARKER = ++YYCURSOR);
5791
28
    if (yych == 'T') goto yy515;
5792
28
    if (yych == 't') goto yy515;
5793
0
    goto yy48;
5794
0
yy419:
5795
0
    YYDEBUG(419, *YYCURSOR);
5796
0
    yyaccept = 4;
5797
0
    yych = *(YYMARKER = ++YYCURSOR);
5798
0
    if (yych == 'A') goto yy517;
5799
0
    if (yych == 'a') goto yy517;
5800
0
    goto yy48;
5801
45
yy420:
5802
45
    YYDEBUG(420, *YYCURSOR);
5803
45
    yyaccept = 4;
5804
45
    yych = *(YYMARKER = ++YYCURSOR);
5805
45
    if (yych == 'E') goto yy518;
5806
45
    if (yych == 'e') goto yy518;
5807
0
    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.65k
    if (yych == 'i') goto yy519;
5814
0
    goto yy48;
5815
0
yy422:
5816
0
    YYDEBUG(422, *YYCURSOR);
5817
0
    yyaccept = 4;
5818
0
    yych = *(YYMARKER = ++YYCURSOR);
5819
0
    if (yych == 'O') goto yy520;
5820
0
    if (yych == 'o') goto yy520;
5821
0
    goto yy48;
5822
692
yy423:
5823
692
    YYDEBUG(423, *YYCURSOR);
5824
692
    yyaccept = 4;
5825
692
    yych = *(YYMARKER = ++YYCURSOR);
5826
692
    if (yych == 'I') goto yy521;
5827
692
    if (yych == 'i') goto yy521;
5828
0
    goto yy48;
5829
71
yy424:
5830
71
    YYDEBUG(424, *YYCURSOR);
5831
71
    yyaccept = 4;
5832
71
    yych = *(YYMARKER = ++YYCURSOR);
5833
71
    if (yych == 'R') goto yy522;
5834
71
    if (yych == 'r') goto yy522;
5835
0
    goto yy48;
5836
0
yy425:
5837
0
    YYDEBUG(425, *YYCURSOR);
5838
0
    yyaccept = 4;
5839
0
    yych = *(YYMARKER = ++YYCURSOR);
5840
0
    if (yych == 'I') goto yy523;
5841
0
    if (yych == 'i') goto yy523;
5842
0
    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
0
    goto yy48;
5850
0
yy427:
5851
0
    YYDEBUG(427, *YYCURSOR);
5852
0
    yyaccept = 4;
5853
0
    yych = *(YYMARKER = ++YYCURSOR);
5854
0
    if (yych == 'W') goto yy525;
5855
0
    if (yych == 'w') goto yy525;
5856
0
    goto yy48;
5857
0
yy428:
5858
0
    YYDEBUG(428, *YYCURSOR);
5859
0
    yyaccept = 4;
5860
0
    yych = *(YYMARKER = ++YYCURSOR);
5861
0
    if (yych == 'T') goto yy527;
5862
0
    if (yych == 't') goto yy527;
5863
0
    goto yy48;
5864
28
yy429:
5865
28
    YYDEBUG(429, *YYCURSOR);
5866
28
    yyaccept = 4;
5867
28
    yych = *(YYMARKER = ++YYCURSOR);
5868
28
    if (yych == 'T') goto yy529;
5869
28
    if (yych == 't') goto yy529;
5870
0
    goto yy48;
5871
0
yy430:
5872
0
    YYDEBUG(430, *YYCURSOR);
5873
0
    yyaccept = 4;
5874
0
    yych = *(YYMARKER = ++YYCURSOR);
5875
0
    if (yych == 'E') goto yy531;
5876
0
    if (yych == 'e') goto yy531;
5877
0
    goto yy48;
5878
0
yy431:
5879
0
    YYDEBUG(431, *YYCURSOR);
5880
0
    yyaccept = 4;
5881
0
    yych = *(YYMARKER = ++YYCURSOR);
5882
0
    if (yych == 'D') goto yy533;
5883
0
    if (yych == 'd') goto yy533;
5884
0
    goto yy48;
5885
0
yy432:
5886
0
    YYDEBUG(432, *YYCURSOR);
5887
0
    yyaccept = 4;
5888
0
    yych = *(YYMARKER = ++YYCURSOR);
5889
0
    if (yych == 'A') goto yy535;
5890
0
    if (yych == 'a') goto yy535;
5891
0
    goto yy48;
5892
0
yy433:
5893
0
    YYDEBUG(433, *YYCURSOR);
5894
0
    yyaccept = 4;
5895
0
    yych = *(YYMARKER = ++YYCURSOR);
5896
0
    if (yych == 'R') goto yy536;
5897
0
    if (yych == 'r') goto yy536;
5898
0
    goto yy48;
5899
8
yy434:
5900
8
    YYDEBUG(434, *YYCURSOR);
5901
8
    yyaccept = 4;
5902
8
    yych = *(YYMARKER = ++YYCURSOR);
5903
8
    if (yych == 'L') goto yy537;
5904
0
    if (yych == 'l') goto yy537;
5905
0
    goto yy48;
5906
0
yy435:
5907
0
    YYDEBUG(435, *YYCURSOR);
5908
0
    yyaccept = 4;
5909
0
    yych = *(YYMARKER = ++YYCURSOR);
5910
0
    if (yych == 'N') goto yy538;
5911
0
    if (yych == 'n') goto yy538;
5912
0
    goto yy48;
5913
0
yy436:
5914
0
    YYDEBUG(436, *YYCURSOR);
5915
0
    yyaccept = 4;
5916
0
    yych = *(YYMARKER = ++YYCURSOR);
5917
0
    if (yych == 'L') goto yy539;
5918
0
    if (yych == 'l') goto yy539;
5919
0
    goto yy48;
5920
33
yy437:
5921
33
    YYDEBUG(437, *YYCURSOR);
5922
33
    yyaccept = 4;
5923
33
    yych = *(YYMARKER = ++YYCURSOR);
5924
33
    if (yych == 'N') goto yy540;
5925
0
    if (yych == 'n') goto yy540;
5926
0
    goto yy48;
5927
189
yy438:
5928
189
    YYDEBUG(438, *YYCURSOR);
5929
189
    yyaccept = 4;
5930
189
    yych = *(YYMARKER = ++YYCURSOR);
5931
189
    if (yych == 'T') goto yy541;
5932
0
    if (yych == 't') goto yy541;
5933
0
    goto yy48;
5934
1
yy439:
5935
1
    YYDEBUG(439, *YYCURSOR);
5936
1
    yyaccept = 4;
5937
1
    yych = *(YYMARKER = ++YYCURSOR);
5938
1
    if (yych == 'M') goto yy542;
5939
0
    if (yych == 'm') goto yy542;
5940
0
    goto yy48;
5941
0
yy440:
5942
0
    YYDEBUG(440, *YYCURSOR);
5943
0
    yyaccept = 4;
5944
0
    yych = *(YYMARKER = ++YYCURSOR);
5945
0
    if (yych == 'O') goto yy543;
5946
0
    if (yych == 'o') goto yy543;
5947
0
    goto yy48;
5948
0
yy441:
5949
0
    YYDEBUG(441, *YYCURSOR);
5950
0
    yyaccept = 4;
5951
0
    yych = *(YYMARKER = ++YYCURSOR);
5952
0
    if (yych == 'A') goto yy544;
5953
0
    if (yych == 'a') goto yy544;
5954
0
    goto yy48;
5955
0
yy442:
5956
0
    YYDEBUG(442, *YYCURSOR);
5957
0
    ++YYCURSOR;
5958
0
    YYFILL(1);
5959
0
    yych = *YYCURSOR;
5960
0
    if (yych <= '\f') {
5961
0
      if (yych <= 0x00) goto yy86;
5962
0
      if (yych == '\n') goto yy84;
5963
0
      goto yy225;
5964
0
    } else {
5965
0
      if (yych <= '\r') goto yy84;
5966
0
      if (yych == '.') goto yy352;
5967
0
      goto yy225;
5968
0
    }
5969
0
yy443:
5970
0
    YYDEBUG(443, *YYCURSOR);
5971
0
    ++YYCURSOR;
5972
0
    YYFILL(1);
5973
0
    yych = *YYCURSOR;
5974
0
    YYDEBUG(444, *YYCURSOR);
5975
0
    if (yybm[0+yych] & 128) {
5976
0
      goto yy443;
5977
0
    }
5978
0
    if (yych <= 0x00) goto yy86;
5979
0
    if (yych <= '\r') goto yy545;
5980
0
    goto yy547;
5981
636
yy445:
5982
636
    YYDEBUG(445, *YYCURSOR);
5983
636
    yych = *++YYCURSOR;
5984
636
    if (yych == 'Y') goto yy549;
5985
636
    if (yych == 'y') goto yy549;
5986
0
    goto yy86;
5987
0
yy446:
5988
0
    YYDEBUG(446, *YYCURSOR);
5989
0
    yych = *++YYCURSOR;
5990
0
    if (yych == 'R') goto yy551;
5991
0
    if (yych == 'r') goto yy551;
5992
0
    goto yy86;
5993
45
yy447:
5994
45
    YYDEBUG(447, *YYCURSOR);
5995
45
    yych = *++YYCURSOR;
5996
45
    if (yych == 'E') goto yy556;
5997
45
    if (yych == 'e') goto yy556;
5998
45
    goto yy553;
5999
45
yy448:
6000
0
    YYDEBUG(448, *YYCURSOR);
6001
0
    yych = *++YYCURSOR;
6002
0
    if (yych == 'L') goto yy557;
6003
0
    if (yych == 'l') goto yy557;
6004
0
    goto yy86;
6005
39
yy449:
6006
39
    YYDEBUG(449, *YYCURSOR);
6007
39
    yych = *++YYCURSOR;
6008
39
    if (yych == 'T') goto yy558;
6009
39
    if (yych == 't') goto yy558;
6010
0
    goto yy86;
6011
0
yy450:
6012
0
    YYDEBUG(450, *YYCURSOR);
6013
0
    ++YYCURSOR;
6014
0
    YYFILL(1);
6015
0
    yych = *YYCURSOR;
6016
84
yy451:
6017
84
    YYDEBUG(451, *YYCURSOR);
6018
84
    if (yych <= 0x1F) {
6019
0
      if (yych == '\t') goto yy450;
6020
0
      goto yy86;
6021
84
    } else {
6022
84
      if (yych <= ' ') goto yy450;
6023
84
      if (yych != ')') goto yy86;
6024
84
    }
6025
84
    YYDEBUG(452, *YYCURSOR);
6026
84
    ++YYCURSOR;
6027
84
    YYDEBUG(453, *YYCURSOR);
6028
84
    yyleng = YYCURSOR - SCNG(yy_text);
6029
84
#line 1638 "Zend/zend_language_scanner.l"
6030
84
    {
6031
84
  RETURN_TOKEN(T_INT_CAST);
6032
84
}
6033
0
#line 6034 "Zend/zend_language_scanner.c"
6034
0
yy454:
6035
0
    YYDEBUG(454, *YYCURSOR);
6036
0
    yych = *++YYCURSOR;
6037
0
    if (yych == 'G') goto yy560;
6038
0
    if (yych == 'g') goto yy560;
6039
0
    goto yy86;
6040
63
yy455:
6041
63
    YYDEBUG(455, *YYCURSOR);
6042
63
    yych = *++YYCURSOR;
6043
63
    if (yych == 'C') goto yy561;
6044
63
    if (yych == 'c') goto yy561;
6045
0
    goto yy86;
6046
0
yy456:
6047
0
    YYDEBUG(456, *YYCURSOR);
6048
0
    ++YYCURSOR;
6049
0
    YYFILL(1);
6050
0
    yych = *YYCURSOR;
6051
0
    YYDEBUG(457, *YYCURSOR);
6052
0
    if (yych <= 0x1F) {
6053
0
      if (yych == '\t') goto yy456;
6054
0
      goto yy86;
6055
0
    } else {
6056
0
      if (yych <= ' ') goto yy456;
6057
0
      if (yych == ')') goto yy562;
6058
0
      goto yy86;
6059
0
    }
6060
893
yy458:
6061
893
    YYDEBUG(458, *YYCURSOR);
6062
893
    yych = *++YYCURSOR;
6063
893
    if (yych == 'N') goto yy564;
6064
893
    if (yych == 'n') goto yy564;
6065
8
    goto yy86;
6066
8
yy459:
6067
0
    YYDEBUG(459, *YYCURSOR);
6068
0
    yych = *++YYCURSOR;
6069
0
    if (yych == 'T') goto yy565;
6070
0
    if (yych == 't') goto yy565;
6071
0
    goto yy86;
6072
0
yy460:
6073
0
    YYDEBUG(460, *YYCURSOR);
6074
0
    ++YYCURSOR;
6075
0
    YYFILL(1);
6076
0
    yych = *YYCURSOR;
6077
0
    YYDEBUG(461, *YYCURSOR);
6078
0
    if (yych <= 0x1F) {
6079
0
      if (yych == '\t') goto yy460;
6080
0
      goto yy86;
6081
0
    } else {
6082
0
      if (yych <= ' ') goto yy460;
6083
0
      if (yych == ')') goto yy567;
6084
0
      goto yy86;
6085
0
    }
6086
0
yy462:
6087
0
    YYDEBUG(462, *YYCURSOR);
6088
0
    ++YYCURSOR;
6089
0
    YYFILL(3);
6090
0
    yych = *YYCURSOR;
6091
0
yy463:
6092
0
    YYDEBUG(463, *YYCURSOR);
6093
0
    if (yych <= 'Z') {
6094
0
      if (yych <= '/') {
6095
0
        if (yych == '"') goto yy569;
6096
0
        goto yy86;
6097
0
      } else {
6098
0
        if (yych <= '9') goto yy462;
6099
0
        if (yych <= '@') goto yy86;
6100
0
        goto yy462;
6101
0
      }
6102
0
    } else {
6103
0
      if (yych <= '`') {
6104
0
        if (yych == '_') goto yy462;
6105
0
        goto yy86;
6106
0
      } else {
6107
0
        if (yych <= 'z') goto yy462;
6108
0
        if (yych <= 0x7F) goto yy86;
6109
0
        goto yy462;
6110
0
      }
6111
0
    }
6112
468
yy464:
6113
468
    YYDEBUG(464, *YYCURSOR);
6114
468
    ++YYCURSOR;
6115
468
    YYFILL(3);
6116
468
    yych = *YYCURSOR;
6117
624
yy465:
6118
624
    YYDEBUG(465, *YYCURSOR);
6119
624
    if (yych <= 'Z') {
6120
624
      if (yych <= '/') {
6121
156
        if (yych == '\'') goto yy569;
6122
0
        goto yy86;
6123
468
      } else {
6124
468
        if (yych <= '9') goto yy464;
6125
468
        if (yych <= '@') goto yy86;
6126
468
        goto yy464;
6127
468
      }
6128
624
    } else {
6129
0
      if (yych <= '`') {
6130
0
        if (yych == '_') goto yy464;
6131
0
        goto yy86;
6132
0
      } else {
6133
0
        if (yych <= 'z') goto yy464;
6134
0
        if (yych <= 0x7F) goto yy86;
6135
0
        goto yy464;
6136
0
      }
6137
0
    }
6138
19.7k
yy466:
6139
19.7k
    YYDEBUG(466, *YYCURSOR);
6140
19.7k
    ++YYCURSOR;
6141
20.0k
yy467:
6142
20.0k
    YYDEBUG(467, *YYCURSOR);
6143
20.0k
    yyleng = YYCURSOR - SCNG(yy_text);
6144
20.0k
#line 2678 "Zend/zend_language_scanner.l"
6145
20.0k
    {
6146
20.0k
  char *s;
6147
20.0k
  unsigned char *saved_cursor;
6148
20.0k
  int bprefix = (yytext[0] != '<') ? 1 : 0, spacing = 0, indentation = 0;
6149
20.0k
  zend_heredoc_label *heredoc_label = emalloc(sizeof(zend_heredoc_label));
6150
20.0k
  bool is_heredoc = 1;
6151
6152
20.0k
  CG(zend_lineno)++;
6153
20.0k
  heredoc_label->length = yyleng-bprefix-3-1-(yytext[yyleng-2]=='\r'?1:0);
6154
20.0k
  s = yytext+bprefix+3;
6155
20.0k
  while ((*s == ' ') || (*s == '\t')) {
6156
0
    s++;
6157
0
    heredoc_label->length--;
6158
0
  }
6159
6160
20.0k
  if (*s == '\'') {
6161
156
    s++;
6162
156
    heredoc_label->length -= 2;
6163
156
    is_heredoc = 0;
6164
6165
156
    BEGIN(ST_NOWDOC);
6166
19.9k
  } else {
6167
19.9k
    if (*s == '"') {
6168
0
      s++;
6169
0
      heredoc_label->length -= 2;
6170
0
    }
6171
6172
19.9k
    BEGIN(ST_HEREDOC);
6173
19.9k
  }
6174
6175
20.0k
  heredoc_label->label = estrndup(s, heredoc_label->length);
6176
20.0k
  heredoc_label->indentation_uses_spaces = 0;
6177
20.0k
  heredoc_label->indentation = 0;
6178
20.0k
  saved_cursor = YYCURSOR;
6179
6180
20.0k
  zend_ptr_stack_push(&SCNG(heredoc_label_stack), (void *) heredoc_label);
6181
6182
20.0k
  while (YYCURSOR < YYLIMIT && (*YYCURSOR == ' ' || *YYCURSOR == '\t')) {
6183
0
    if (*YYCURSOR == '\t') {
6184
0
      spacing |= HEREDOC_USING_TABS;
6185
0
    } else {
6186
0
      spacing |= HEREDOC_USING_SPACES;
6187
0
    }
6188
0
    ++YYCURSOR;
6189
0
    ++indentation;
6190
0
  }
6191
6192
20.0k
  if (YYCURSOR == YYLIMIT) {
6193
0
    YYCURSOR = saved_cursor;
6194
0
    RETURN_TOKEN(T_START_HEREDOC);
6195
0
  }
6196
6197
  /* Check for ending label on the next line */
6198
20.0k
  if (heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, s, heredoc_label->length)) {
6199
0
    if (!IS_LABEL_SUCCESSOR(YYCURSOR[heredoc_label->length])) {
6200
0
      if (spacing == (HEREDOC_USING_SPACES | HEREDOC_USING_TABS)) {
6201
0
        zend_throw_exception(zend_ce_parse_error, "Invalid indentation - tabs and spaces cannot be mixed", 0);
6202
0
        if (PARSER_MODE()) {
6203
0
          RETURN_TOKEN(T_ERROR);
6204
0
        }
6205
0
      }
6206
6207
0
      YYCURSOR = saved_cursor;
6208
0
      heredoc_label->indentation = indentation;
6209
6210
0
      BEGIN(ST_END_HEREDOC);
6211
0
      RETURN_TOKEN(T_START_HEREDOC);
6212
0
    }
6213
0
  }
6214
6215
20.0k
  YYCURSOR = saved_cursor;
6216
6217
20.0k
  if (is_heredoc && !SCNG(heredoc_scan_ahead)) {
6218
505
    zend_lex_state current_state;
6219
505
    zend_string *saved_doc_comment = CG(doc_comment);
6220
505
    int heredoc_nesting_level = 1;
6221
505
    int first_token = 0;
6222
505
    int error = 0;
6223
6224
505
    zend_save_lexical_state(&current_state);
6225
6226
505
    SCNG(heredoc_scan_ahead) = 1;
6227
505
    SCNG(heredoc_indentation) = 0;
6228
505
    SCNG(heredoc_indentation_uses_spaces) = 0;
6229
505
    SCNG(on_event_context) = NULL;
6230
505
    LANG_SCNG(on_event) = NULL;
6231
505
    CG(doc_comment) = NULL;
6232
6233
505
    zend_ptr_stack_reverse_apply(&current_state.heredoc_label_stack, copy_heredoc_label_stack);
6234
6235
505
    zend_object *prev_exception = EG(exception);
6236
505
    EG(exception) = NULL;
6237
368k
    while (heredoc_nesting_level) {
6238
368k
      zval zv;
6239
368k
      int retval;
6240
6241
368k
      ZVAL_UNDEF(&zv);
6242
368k
      retval = lex_scan(&zv, NULL);
6243
368k
      zval_ptr_dtor_nogc(&zv);
6244
6245
368k
      if (EG(exception)) {
6246
504
        zend_clear_exception();
6247
504
        break;
6248
504
      }
6249
6250
367k
      if (!first_token) {
6251
505
        first_token = retval;
6252
505
      }
6253
6254
367k
      switch (retval) {
6255
19.5k
        case T_START_HEREDOC:
6256
19.5k
          ++heredoc_nesting_level;
6257
19.5k
          break;
6258
1
        case T_END_HEREDOC:
6259
1
          --heredoc_nesting_level;
6260
1
          break;
6261
0
        case END:
6262
0
          heredoc_nesting_level = 0;
6263
367k
      }
6264
367k
    }
6265
505
    EG(exception) = prev_exception;
6266
6267
505
    if (
6268
505
        (first_token == T_VARIABLE
6269
453
         || first_token == T_DOLLAR_OPEN_CURLY_BRACES
6270
153
         || first_token == T_CURLY_OPEN
6271
505
        ) && SCNG(heredoc_indentation)) {
6272
0
      zend_throw_exception_ex(zend_ce_parse_error, 0, "Invalid body indentation level (expecting an indentation level of at least %d)", SCNG(heredoc_indentation));
6273
0
      error = 1;
6274
0
    }
6275
6276
505
    heredoc_label->indentation = SCNG(heredoc_indentation);
6277
505
    heredoc_label->indentation_uses_spaces = SCNG(heredoc_indentation_uses_spaces);
6278
6279
505
    zend_restore_lexical_state(&current_state);
6280
505
    SCNG(heredoc_scan_ahead) = 0;
6281
505
    CG(increment_lineno) = 0;
6282
505
    CG(doc_comment) = saved_doc_comment;
6283
6284
505
    if (PARSER_MODE() && error) {
6285
0
      RETURN_TOKEN(T_ERROR);
6286
0
    }
6287
505
  }
6288
6289
20.0k
  RETURN_TOKEN(T_START_HEREDOC);
6290
20.0k
}
6291
0
#line 6292 "Zend/zend_language_scanner.c"
6292
387
yy468:
6293
387
    YYDEBUG(468, *YYCURSOR);
6294
387
    yych = *++YYCURSOR;
6295
387
    if (yych == '\n') goto yy466;
6296
387
    goto yy467;
6297
387
yy469:
6298
0
    YYDEBUG(469, *YYCURSOR);
6299
0
    yyaccept = 4;
6300
0
    yych = *(YYMARKER = ++YYCURSOR);
6301
0
    if (yych == 'A') goto yy570;
6302
0
    if (yych == 'a') goto yy570;
6303
0
    goto yy48;
6304
504
yy470:
6305
504
    YYDEBUG(470, *YYCURSOR);
6306
504
    yyaccept = 34;
6307
504
    yych = *(YYMARKER = ++YYCURSOR);
6308
504
    if (yybm[256+yych] & 128) {
6309
3
      goto yy47;
6310
3
    }
6311
501
    if (yych == '\\') goto yy164;
6312
501
yy471:
6313
501
    YYDEBUG(471, *YYCURSOR);
6314
501
    yyleng = YYCURSOR - SCNG(yy_text);
6315
501
#line 1818 "Zend/zend_language_scanner.l"
6316
501
    {
6317
501
  RETURN_TOKEN_WITH_IDENT(T_ARRAY);
6318
501
}
6319
0
#line 6320 "Zend/zend_language_scanner.c"
6320
1
yy472:
6321
1
    YYDEBUG(472, *YYCURSOR);
6322
1
    yyaccept = 35;
6323
1
    yych = *(YYMARKER = ++YYCURSOR);
6324
1
    if (yybm[256+yych] & 128) {
6325
0
      goto yy47;
6326
0
    }
6327
1
    if (yych == '\\') goto yy164;
6328
1
yy473:
6329
1
    YYDEBUG(473, *YYCURSOR);
6330
1
    yyleng = YYCURSOR - SCNG(yy_text);
6331
1
#line 1534 "Zend/zend_language_scanner.l"
6332
1
    {
6333
1
  RETURN_TOKEN_WITH_IDENT(T_BREAK);
6334
1
}
6335
0
#line 6336 "Zend/zend_language_scanner.c"
6336
720
yy474:
6337
720
    YYDEBUG(474, *YYCURSOR);
6338
720
    yyaccept = 4;
6339
720
    yych = *(YYMARKER = ++YYCURSOR);
6340
720
    if (yych == 'B') goto yy571;
6341
720
    if (yych == 'b') goto yy571;
6342
0
    goto yy48;
6343
52
yy475:
6344
52
    YYDEBUG(475, *YYCURSOR);
6345
52
    yyaccept = 36;
6346
52
    yych = *(YYMARKER = ++YYCURSOR);
6347
52
    if (yybm[256+yych] & 128) {
6348
0
      goto yy47;
6349
0
    }
6350
52
    if (yych == '\\') goto yy164;
6351
52
yy476:
6352
52
    YYDEBUG(476, *YYCURSOR);
6353
52
    yyleng = YYCURSOR - SCNG(yy_text);
6354
52
#line 1442 "Zend/zend_language_scanner.l"
6355
52
    {
6356
52
  RETURN_TOKEN_WITH_IDENT(T_CATCH);
6357
52
}
6358
0
#line 6359 "Zend/zend_language_scanner.c"
6359
866
yy477:
6360
866
    YYDEBUG(477, *YYCURSOR);
6361
866
    yyaccept = 37;
6362
866
    yych = *(YYMARKER = ++YYCURSOR);
6363
866
    if (yybm[256+yych] & 128) {
6364
9
      goto yy47;
6365
9
    }
6366
857
    if (yych == '\\') goto yy164;
6367
857
yy478:
6368
857
    YYDEBUG(478, *YYCURSOR);
6369
857
    yyleng = YYCURSOR - SCNG(yy_text);
6370
857
#line 1554 "Zend/zend_language_scanner.l"
6371
857
    {
6372
857
  RETURN_TOKEN_WITH_IDENT(T_CLASS);
6373
857
}
6374
0
#line 6375 "Zend/zend_language_scanner.c"
6375
0
yy479:
6376
0
    YYDEBUG(479, *YYCURSOR);
6377
0
    yyaccept = 38;
6378
0
    yych = *(YYMARKER = ++YYCURSOR);
6379
0
    if (yybm[256+yych] & 128) {
6380
0
      goto yy47;
6381
0
    }
6382
0
    if (yych == '\\') goto yy164;
6383
0
yy480:
6384
0
    YYDEBUG(480, *YYCURSOR);
6385
0
    yyleng = YYCURSOR - SCNG(yy_text);
6386
0
#line 1630 "Zend/zend_language_scanner.l"
6387
0
    {
6388
0
  RETURN_TOKEN_WITH_IDENT(T_CLONE);
6389
0
}
6390
0
#line 6391 "Zend/zend_language_scanner.c"
6391
545
yy481:
6392
545
    YYDEBUG(481, *YYCURSOR);
6393
545
    yyaccept = 39;
6394
545
    yych = *(YYMARKER = ++YYCURSOR);
6395
545
    if (yybm[256+yych] & 128) {
6396
83
      goto yy47;
6397
83
    }
6398
462
    if (yych == '\\') goto yy164;
6399
462
yy482:
6400
462
    YYDEBUG(482, *YYCURSOR);
6401
462
    yyleng = YYCURSOR - SCNG(yy_text);
6402
462
#line 1415 "Zend/zend_language_scanner.l"
6403
462
    {
6404
462
  RETURN_TOKEN_WITH_IDENT(T_CONST);
6405
462
}
6406
0
#line 6407 "Zend/zend_language_scanner.c"
6407
0
yy483:
6408
0
    YYDEBUG(483, *YYCURSOR);
6409
0
    yyaccept = 4;
6410
0
    yych = *(YYMARKER = ++YYCURSOR);
6411
0
    if (yych == 'N') goto yy572;
6412
0
    if (yych == 'n') goto yy572;
6413
0
    goto yy48;
6414
0
yy484:
6415
0
    YYDEBUG(484, *YYCURSOR);
6416
0
    yyaccept = 4;
6417
0
    yych = *(YYMARKER = ++YYCURSOR);
6418
0
    if (yych == 'R') goto yy573;
6419
0
    if (yych == 'r') goto yy573;
6420
0
    goto yy48;
6421
0
yy485:
6422
0
    YYDEBUG(485, *YYCURSOR);
6423
0
    yyaccept = 4;
6424
0
    yych = *(YYMARKER = ++YYCURSOR);
6425
0
    if (yych == 'L') goto yy574;
6426
0
    if (yych == 'l') goto yy574;
6427
0
    goto yy48;
6428
0
yy486:
6429
0
    YYDEBUG(486, *YYCURSOR);
6430
0
    yyaccept = 4;
6431
0
    yych = *(YYMARKER = ++YYCURSOR);
6432
0
    if (yych == 'F') goto yy575;
6433
0
    if (yych == 'f') goto yy575;
6434
0
    goto yy48;
6435
0
yy487:
6436
0
    YYDEBUG(487, *YYCURSOR);
6437
0
    yyaccept = 40;
6438
0
    yych = *(YYMARKER = ++YYCURSOR);
6439
0
    if (yybm[256+yych] & 128) {
6440
0
      goto yy47;
6441
0
    }
6442
0
    if (yych == '\\') goto yy164;
6443
0
yy488:
6444
0
    YYDEBUG(488, *YYCURSOR);
6445
0
    yyleng = YYCURSOR - SCNG(yy_text);
6446
0
#line 1758 "Zend/zend_language_scanner.l"
6447
0
    {
6448
0
  RETURN_TOKEN_WITH_IDENT(T_EMPTY);
6449
0
}
6450
0
#line 6451 "Zend/zend_language_scanner.c"
6451
0
yy489:
6452
0
    YYDEBUG(489, *YYCURSOR);
6453
0
    yyaccept = 4;
6454
0
    yych = *(YYMARKER = ++YYCURSOR);
6455
0
    if (yych == 'C') goto yy577;
6456
0
    if (yych == 'c') goto yy577;
6457
0
    goto yy48;
6458
0
yy490:
6459
0
    YYDEBUG(490, *YYCURSOR);
6460
0
    yyaccept = 4;
6461
0
    yych = *(YYMARKER = ++YYCURSOR);
6462
0
    if (yych == 'R') goto yy578;
6463
0
    if (yych == 'r') goto yy578;
6464
0
    goto yy48;
6465
0
yy491:
6466
0
    YYDEBUG(491, *YYCURSOR);
6467
0
    yyaccept = 41;
6468
0
    yych = *(YYMARKER = ++YYCURSOR);
6469
0
    if (yybm[256+yych] & 128) {
6470
0
      goto yy47;
6471
0
    }
6472
0
    if (yych == '\\') goto yy164;
6473
0
yy492:
6474
0
    YYDEBUG(492, *YYCURSOR);
6475
0
    yyleng = YYCURSOR - SCNG(yy_text);
6476
0
#line 1462 "Zend/zend_language_scanner.l"
6477
0
    {
6478
0
  RETURN_TOKEN_WITH_IDENT(T_ENDIF);
6479
0
}
6480
0
#line 6481 "Zend/zend_language_scanner.c"
6481
0
yy493:
6482
0
    YYDEBUG(493, *YYCURSOR);
6483
0
    yyaccept = 4;
6484
0
    yych = *(YYMARKER = ++YYCURSOR);
6485
0
    if (yych == 'I') goto yy580;
6486
0
    if (yych == 'i') goto yy580;
6487
0
    goto yy48;
6488
276
yy494:
6489
276
    YYDEBUG(494, *YYCURSOR);
6490
276
    yyaccept = 4;
6491
276
    yych = *(YYMARKER = ++YYCURSOR);
6492
276
    if (yych == 'I') goto yy581;
6493
276
    if (yych == 'i') goto yy581;
6494
0
    goto yy48;
6495
17.6k
yy495:
6496
17.6k
    YYDEBUG(495, *YYCURSOR);
6497
17.6k
    ++YYCURSOR;
6498
17.6k
    YYFILL(10);
6499
17.6k
    yych = *YYCURSOR;
6500
17.6k
    YYDEBUG(496, *YYCURSOR);
6501
17.6k
    if (yych <= 'E') {
6502
16.0k
      if (yych <= ' ') {
6503
4.32k
        if (yych <= '\f') {
6504
960
          if (yych <= 0x08) goto yy86;
6505
960
          if (yych <= '\n') goto yy495;
6506
0
          goto yy86;
6507
3.36k
        } else {
6508
3.36k
          if (yych <= '\r') goto yy495;
6509
2.52k
          if (yych <= 0x1F) goto yy86;
6510
2.52k
          goto yy495;
6511
2.52k
        }
6512
11.7k
      } else {
6513
11.7k
        if (yych <= '.') {
6514
11.5k
          if (yych != '#') goto yy86;
6515
11.5k
        } else {
6516
189
          if (yych <= '/') goto yy498;
6517
0
          if (yych <= '@') goto yy86;
6518
0
          if (yych <= 'D') goto yy582;
6519
0
          goto yy584;
6520
0
        }
6521
11.7k
      }
6522
16.0k
    } else {
6523
1.59k
      if (yych <= '`') {
6524
0
        if (yych <= 'Z') {
6525
0
          if (yych == 'I') goto yy585;
6526
0
          goto yy582;
6527
0
        } else {
6528
0
          if (yych == '_') goto yy582;
6529
0
          goto yy86;
6530
0
        }
6531
1.59k
      } else {
6532
1.59k
        if (yych <= 'h') {
6533
960
          if (yych == 'e') goto yy584;
6534
960
          goto yy582;
6535
960
        } else {
6536
639
          if (yych <= 'i') goto yy585;
6537
639
          if (yych <= 'z') goto yy582;
6538
189
          if (yych <= 0x7F) goto yy86;
6539
189
          goto yy582;
6540
189
        }
6541
1.59k
      }
6542
1.59k
    }
6543
11.5k
yy497:
6544
11.5k
    YYDEBUG(497, *YYCURSOR);
6545
11.5k
    ++YYCURSOR;
6546
11.5k
    YYFILL(1);
6547
11.5k
    yych = *YYCURSOR;
6548
11.5k
    if (yych <= '\f') {
6549
8.14k
      if (yych <= 0x00) goto yy86;
6550
8.14k
      if (yych == '\n') goto yy588;
6551
0
      goto yy586;
6552
8.14k
    } else {
6553
3.39k
      if (yych <= '\r') goto yy588;
6554
1.80k
      if (yych == '[') goto yy86;
6555
1.80k
      goto yy586;
6556
1.80k
    }
6557
189
yy498:
6558
189
    YYDEBUG(498, *YYCURSOR);
6559
189
    ++YYCURSOR;
6560
189
    YYFILL(1);
6561
189
    yych = *YYCURSOR;
6562
189
    if (yych == '*') goto yy590;
6563
0
    if (yych == '/') goto yy586;
6564
0
    goto yy86;
6565
399
yy499:
6566
399
    YYDEBUG(499, *YYCURSOR);
6567
399
    yyaccept = 4;
6568
399
    yych = *(YYMARKER = ++YYCURSOR);
6569
399
    if (yych == 'D') goto yy592;
6570
399
    if (yych == 'd') goto yy592;
6571
0
    goto yy48;
6572
0
yy500:
6573
0
    YYDEBUG(500, *YYCURSOR);
6574
0
    yyaccept = 42;
6575
0
    yych = *(YYMARKER = ++YYCURSOR);
6576
0
    if (yych <= '\\') {
6577
0
      if (yych <= 'K') {
6578
0
        if (yych <= '/') goto yy501;
6579
0
        if (yych <= '9') goto yy47;
6580
0
        if (yych >= 'A') goto yy47;
6581
0
      } else {
6582
0
        if (yych <= 'L') goto yy593;
6583
0
        if (yych <= 'Z') goto yy47;
6584
0
        if (yych >= '\\') goto yy164;
6585
0
      }
6586
0
    } else {
6587
0
      if (yych <= 'k') {
6588
0
        if (yych == '_') goto yy47;
6589
0
        if (yych >= 'a') goto yy47;
6590
0
      } else {
6591
0
        if (yych <= 'l') goto yy593;
6592
0
        if (yych <= 'z') goto yy47;
6593
0
        if (yych >= 0x80) goto yy47;
6594
0
      }
6595
0
    }
6596
0
yy501:
6597
0
    YYDEBUG(501, *YYCURSOR);
6598
0
    yyleng = YYCURSOR - SCNG(yy_text);
6599
0
#line 1774 "Zend/zend_language_scanner.l"
6600
0
    {
6601
0
  RETURN_TOKEN_WITH_IDENT(T_FINAL);
6602
0
}
6603
0
#line 6604 "Zend/zend_language_scanner.c"
6604
18
yy502:
6605
18
    YYDEBUG(502, *YYCURSOR);
6606
18
    yyaccept = 4;
6607
18
    yych = *(YYMARKER = ++YYCURSOR);
6608
18
    if (yych == 'C') goto yy594;
6609
18
    if (yych == 'c') goto yy594;
6610
0
    goto yy48;
6611
2.39k
yy503:
6612
2.39k
    YYDEBUG(503, *YYCURSOR);
6613
2.39k
    yyaccept = 4;
6614
2.39k
    yych = *(YYMARKER = ++YYCURSOR);
6615
2.39k
    if (yych == 'I') goto yy595;
6616
2.39k
    if (yych == 'i') goto yy595;
6617
0
    goto yy48;
6618
0
yy504:
6619
0
    YYDEBUG(504, *YYCURSOR);
6620
0
    yyaccept = 4;
6621
0
    yych = *(YYMARKER = ++YYCURSOR);
6622
0
    if (yych == 'L') goto yy596;
6623
0
    if (yych == 'l') goto yy596;
6624
0
    goto yy48;
6625
570
yy505:
6626
570
    YYDEBUG(505, *YYCURSOR);
6627
570
    yyaccept = 4;
6628
570
    yych = *(YYMARKER = ++YYCURSOR);
6629
570
    if (yych == 'M') goto yy598;
6630
570
    if (yych == 'm') goto yy598;
6631
570
    goto yy48;
6632
570
yy506:
6633
0
    YYDEBUG(506, *YYCURSOR);
6634
0
    yyaccept = 4;
6635
0
    yych = *(YYMARKER = ++YYCURSOR);
6636
0
    if (yych == 'D') goto yy599;
6637
0
    if (yych == 'd') goto yy599;
6638
0
    goto yy48;
6639
0
yy507:
6640
0
    YYDEBUG(507, *YYCURSOR);
6641
0
    yyaccept = 4;
6642
0
    yych = *(YYMARKER = ++YYCURSOR);
6643
0
    if (yych == 'N') goto yy600;
6644
0
    if (yych == 'n') goto yy600;
6645
0
    goto yy48;
6646
0
yy508:
6647
0
    YYDEBUG(508, *YYCURSOR);
6648
0
    yyaccept = 4;
6649
0
    yych = *(YYMARKER = ++YYCURSOR);
6650
0
    if (yych == 'A') goto yy601;
6651
0
    if (yych == 'a') goto yy601;
6652
0
    goto yy48;
6653
0
yy509:
6654
0
    YYDEBUG(509, *YYCURSOR);
6655
0
    yyaccept = 4;
6656
0
    yych = *(YYMARKER = ++YYCURSOR);
6657
0
    if (yych == 'F') goto yy602;
6658
0
    if (yych == 'f') goto yy602;
6659
0
    goto yy48;
6660
0
yy510:
6661
0
    YYDEBUG(510, *YYCURSOR);
6662
0
    yyaccept = 43;
6663
0
    yych = *(YYMARKER = ++YYCURSOR);
6664
0
    if (yybm[256+yych] & 128) {
6665
0
      goto yy47;
6666
0
    }
6667
0
    if (yych == '\\') goto yy164;
6668
0
yy511:
6669
0
    YYDEBUG(511, *YYCURSOR);
6670
0
    yyleng = YYCURSOR - SCNG(yy_text);
6671
0
#line 1754 "Zend/zend_language_scanner.l"
6672
0
    {
6673
0
  RETURN_TOKEN_WITH_IDENT(T_ISSET);
6674
0
}
6675
0
#line 6676 "Zend/zend_language_scanner.c"
6676
0
yy512:
6677
0
    YYDEBUG(512, *YYCURSOR);
6678
0
    yyaccept = 44;
6679
0
    yych = *(YYMARKER = ++YYCURSOR);
6680
0
    if (yybm[256+yych] & 128) {
6681
0
      goto yy47;
6682
0
    }
6683
0
    if (yych == '\\') goto yy164;
6684
0
yy513:
6685
0
    YYDEBUG(513, *YYCURSOR);
6686
0
    yyleng = YYCURSOR - SCNG(yy_text);
6687
0
#line 1518 "Zend/zend_language_scanner.l"
6688
0
    {
6689
0
  RETURN_TOKEN_WITH_IDENT(T_MATCH);
6690
0
}
6691
0
#line 6692 "Zend/zend_language_scanner.c"
6692
0
yy514:
6693
0
    YYDEBUG(514, *YYCURSOR);
6694
0
    yyaccept = 4;
6695
0
    yych = *(YYMARKER = ++YYCURSOR);
6696
0
    if (yych == 'P') goto yy603;
6697
0
    if (yych == 'p') goto yy603;
6698
0
    goto yy48;
6699
28
yy515:
6700
28
    YYDEBUG(515, *YYCURSOR);
6701
28
    yyaccept = 45;
6702
28
    yych = *(YYMARKER = ++YYCURSOR);
6703
28
    if (yybm[256+yych] & 128) {
6704
28
      goto yy47;
6705
28
    }
6706
0
    if (yych == '\\') goto yy164;
6707
0
yy516:
6708
0
    YYDEBUG(516, *YYCURSOR);
6709
0
    yyleng = YYCURSOR - SCNG(yy_text);
6710
0
#line 1550 "Zend/zend_language_scanner.l"
6711
0
    {
6712
0
  RETURN_TOKEN_WITH_IDENT(T_PRINT);
6713
0
}
6714
0
#line 6715 "Zend/zend_language_scanner.c"
6715
0
yy517:
6716
0
    YYDEBUG(517, *YYCURSOR);
6717
0
    yyaccept = 4;
6718
0
    yych = *(YYMARKER = ++YYCURSOR);
6719
0
    if (yych == 'T') goto yy604;
6720
0
    if (yych == 't') goto yy604;
6721
0
    goto yy48;
6722
45
yy518:
6723
45
    YYDEBUG(518, *YYCURSOR);
6724
45
    yyaccept = 4;
6725
45
    yych = *(YYMARKER = ++YYCURSOR);
6726
45
    if (yych == 'C') goto yy605;
6727
45
    if (yych == 'c') goto yy605;
6728
0
    goto yy48;
6729
1.65k
yy519:
6730
1.65k
    YYDEBUG(519, *YYCURSOR);
6731
1.65k
    yyaccept = 4;
6732
1.65k
    yych = *(YYMARKER = ++YYCURSOR);
6733
1.65k
    if (yych == 'C') goto yy606;
6734
1.65k
    if (yych == 'c') goto yy606;
6735
0
    goto yy48;
6736
0
yy520:
6737
0
    YYDEBUG(520, *YYCURSOR);
6738
0
    yyaccept = 4;
6739
0
    yych = *(YYMARKER = ++YYCURSOR);
6740
0
    if (yych == 'N') goto yy608;
6741
0
    if (yych == 'n') goto yy608;
6742
0
    goto yy48;
6743
692
yy521:
6744
692
    YYDEBUG(521, *YYCURSOR);
6745
692
    yyaccept = 4;
6746
692
    yych = *(YYMARKER = ++YYCURSOR);
6747
692
    if (yych == 'R') goto yy609;
6748
692
    if (yych == 'r') goto yy609;
6749
0
    goto yy48;
6750
71
yy522:
6751
71
    YYDEBUG(522, *YYCURSOR);
6752
71
    yyaccept = 4;
6753
71
    yych = *(YYMARKER = ++YYCURSOR);
6754
71
    if (yych == 'N') goto yy610;
6755
71
    if (yych == 'n') goto yy610;
6756
0
    goto yy48;
6757
0
yy523:
6758
0
    YYDEBUG(523, *YYCURSOR);
6759
0
    yyaccept = 4;
6760
0
    yych = *(YYMARKER = ++YYCURSOR);
6761
0
    if (yych == 'C') goto yy612;
6762
0
    if (yych == 'c') goto yy612;
6763
0
    goto yy48;
6764
49
yy524:
6765
49
    YYDEBUG(524, *YYCURSOR);
6766
49
    yyaccept = 4;
6767
49
    yych = *(YYMARKER = ++YYCURSOR);
6768
49
    if (yych == 'H') goto yy614;
6769
49
    if (yych == 'h') goto yy614;
6770
0
    goto yy48;
6771
0
yy525:
6772
0
    YYDEBUG(525, *YYCURSOR);
6773
0
    yyaccept = 46;
6774
0
    yych = *(YYMARKER = ++YYCURSOR);
6775
0
    if (yybm[256+yych] & 128) {
6776
0
      goto yy47;
6777
0
    }
6778
0
    if (yych == '\\') goto yy164;
6779
0
yy526:
6780
0
    YYDEBUG(526, *YYCURSOR);
6781
0
    yyleng = YYCURSOR - SCNG(yy_text);
6782
0
#line 1450 "Zend/zend_language_scanner.l"
6783
0
    {
6784
0
  RETURN_TOKEN_WITH_IDENT(T_THROW);
6785
0
}
6786
0
#line 6787 "Zend/zend_language_scanner.c"
6787
0
yy527:
6788
0
    YYDEBUG(527, *YYCURSOR);
6789
0
    yyaccept = 47;
6790
0
    yych = *(YYMARKER = ++YYCURSOR);
6791
0
    if (yybm[256+yych] & 128) {
6792
0
      goto yy47;
6793
0
    }
6794
0
    if (yych == '\\') goto yy164;
6795
0
yy528:
6796
0
    YYDEBUG(528, *YYCURSOR);
6797
0
    yyleng = YYCURSOR - SCNG(yy_text);
6798
0
#line 1562 "Zend/zend_language_scanner.l"
6799
0
    {
6800
0
  RETURN_TOKEN_WITH_IDENT(T_TRAIT);
6801
0
}
6802
0
#line 6803 "Zend/zend_language_scanner.c"
6803
28
yy529:
6804
28
    YYDEBUG(529, *YYCURSOR);
6805
28
    yyaccept = 48;
6806
28
    yych = *(YYMARKER = ++YYCURSOR);
6807
28
    if (yybm[256+yych] & 128) {
6808
0
      goto yy47;
6809
0
    }
6810
28
    if (yych == '\\') goto yy164;
6811
28
yy530:
6812
28
    YYDEBUG(530, *YYCURSOR);
6813
28
    yyleng = YYCURSOR - SCNG(yy_text);
6814
28
#line 1806 "Zend/zend_language_scanner.l"
6815
28
    {
6816
28
  RETURN_TOKEN_WITH_IDENT(T_UNSET);
6817
28
}
6818
0
#line 6819 "Zend/zend_language_scanner.c"
6819
0
yy531:
6820
0
    YYDEBUG(531, *YYCURSOR);
6821
0
    yyaccept = 49;
6822
0
    yych = *(YYMARKER = ++YYCURSOR);
6823
0
    if (yybm[256+yych] & 128) {
6824
0
      goto yy47;
6825
0
    }
6826
0
    if (yych == '\\') goto yy164;
6827
0
yy532:
6828
0
    YYDEBUG(532, *YYCURSOR);
6829
0
    yyleng = YYCURSOR - SCNG(yy_text);
6830
0
#line 1470 "Zend/zend_language_scanner.l"
6831
0
    {
6832
0
  RETURN_TOKEN_WITH_IDENT(T_WHILE);
6833
0
}
6834
0
#line 6835 "Zend/zend_language_scanner.c"
6835
0
yy533:
6836
0
    YYDEBUG(533, *YYCURSOR);
6837
0
    yyaccept = 50;
6838
0
    yych = *(YYMARKER = ++YYCURSOR);
6839
0
    if (yybm[256+yych] & 128) {
6840
0
      goto yy47;
6841
0
    }
6842
0
    if (yych <= ' ') {
6843
0
      if (yych <= '\f') {
6844
0
        if (yych <= 0x08) goto yy534;
6845
0
        if (yych <= '\n') goto yy616;
6846
0
      } else {
6847
0
        if (yych <= '\r') goto yy616;
6848
0
        if (yych >= ' ') goto yy616;
6849
0
      }
6850
0
    } else {
6851
0
      if (yych <= '.') {
6852
0
        if (yych == '#') goto yy618;
6853
0
      } else {
6854
0
        if (yych <= '/') goto yy619;
6855
0
        if (yych == '\\') goto yy164;
6856
0
      }
6857
0
    }
6858
0
yy534:
6859
0
    YYDEBUG(534, *YYCURSOR);
6860
0
    yyleng = YYCURSOR - SCNG(yy_text);
6861
0
#line 1434 "Zend/zend_language_scanner.l"
6862
0
    {
6863
0
  RETURN_TOKEN_WITH_IDENT(T_YIELD);
6864
0
}
6865
0
#line 6866 "Zend/zend_language_scanner.c"
6866
0
yy535:
6867
0
    YYDEBUG(535, *YYCURSOR);
6868
0
    yyaccept = 4;
6869
0
    yych = *(YYMARKER = ++YYCURSOR);
6870
0
    if (yych == 'S') goto yy620;
6871
0
    if (yych == 's') goto yy620;
6872
0
    goto yy48;
6873
0
yy536:
6874
0
    YYDEBUG(536, *YYCURSOR);
6875
0
    yyaccept = 4;
6876
0
    yych = *(YYMARKER = ++YYCURSOR);
6877
0
    if (yych == '_') goto yy621;
6878
0
    goto yy48;
6879
8
yy537:
6880
8
    YYDEBUG(537, *YYCURSOR);
6881
8
    yyaccept = 4;
6882
8
    yych = *(YYMARKER = ++YYCURSOR);
6883
8
    if (yych == 'E') goto yy622;
6884
0
    if (yych == 'e') goto yy622;
6885
0
    goto yy48;
6886
0
yy538:
6887
0
    YYDEBUG(538, *YYCURSOR);
6888
0
    yyaccept = 4;
6889
0
    yych = *(YYMARKER = ++YYCURSOR);
6890
0
    if (yych == 'C') goto yy623;
6891
0
    if (yych == 'c') goto yy623;
6892
0
    goto yy48;
6893
0
yy539:
6894
0
    YYDEBUG(539, *YYCURSOR);
6895
0
    yyaccept = 4;
6896
0
    yych = *(YYMARKER = ++YYCURSOR);
6897
0
    if (yych == 'T') goto yy624;
6898
0
    if (yych == 't') goto yy624;
6899
0
    goto yy48;
6900
33
yy540:
6901
33
    YYDEBUG(540, *YYCURSOR);
6902
33
    yyaccept = 4;
6903
33
    yych = *(YYMARKER = ++YYCURSOR);
6904
33
    if (yych == 'E') goto yy625;
6905
0
    if (yych == 'e') goto yy625;
6906
0
    goto yy48;
6907
189
yy541:
6908
189
    YYDEBUG(541, *YYCURSOR);
6909
189
    yyaccept = 4;
6910
189
    yych = *(YYMARKER = ++YYCURSOR);
6911
189
    if (yych == 'H') goto yy626;
6912
0
    if (yych == 'h') goto yy626;
6913
0
    goto yy48;
6914
1
yy542:
6915
1
    YYDEBUG(542, *YYCURSOR);
6916
1
    yyaccept = 4;
6917
1
    yych = *(YYMARKER = ++YYCURSOR);
6918
1
    if (yych == 'E') goto yy627;
6919
0
    if (yych == 'e') goto yy627;
6920
0
    goto yy48;
6921
0
yy543:
6922
0
    YYDEBUG(543, *YYCURSOR);
6923
0
    yyaccept = 4;
6924
0
    yych = *(YYMARKER = ++YYCURSOR);
6925
0
    if (yych == 'P') goto yy628;
6926
0
    if (yych == 'p') goto yy628;
6927
0
    goto yy48;
6928
0
yy544:
6929
0
    YYDEBUG(544, *YYCURSOR);
6930
0
    yyaccept = 4;
6931
0
    yych = *(YYMARKER = ++YYCURSOR);
6932
0
    if (yych == 'I') goto yy629;
6933
0
    if (yych == 'i') goto yy629;
6934
0
    goto yy48;
6935
0
yy545:
6936
0
    YYDEBUG(545, *YYCURSOR);
6937
0
    ++YYCURSOR;
6938
0
    YYFILL(1);
6939
0
    yych = *YYCURSOR;
6940
0
    YYDEBUG(546, *YYCURSOR);
6941
0
    if (yybm[0+yych] & 64) {
6942
0
      goto yy355;
6943
0
    }
6944
0
    if (yych <= ' ') {
6945
0
      if (yych <= '\n') {
6946
0
        if (yych <= 0x00) goto yy86;
6947
0
        if (yych <= 0x08) goto yy230;
6948
0
        goto yy545;
6949
0
      } else {
6950
0
        if (yych == '\r') goto yy545;
6951
0
        if (yych <= 0x1F) goto yy230;
6952
0
        goto yy545;
6953
0
      }
6954
0
    } else {
6955
0
      if (yych <= '$') {
6956
0
        if (yych <= '"') goto yy230;
6957
0
        if (yych <= '#') goto yy630;
6958
0
        goto yy631;
6959
0
      } else {
6960
0
        if (yych <= '-') goto yy230;
6961
0
        if (yych <= '.') goto yy632;
6962
0
        if (yych <= '/') goto yy633;
6963
0
        goto yy230;
6964
0
      }
6965
0
    }
6966
0
yy547:
6967
0
    YYDEBUG(547, *YYCURSOR);
6968
0
    ++YYCURSOR;
6969
0
    YYFILL(1);
6970
0
    yych = *YYCURSOR;
6971
0
    YYDEBUG(548, *YYCURSOR);
6972
0
    if (yych <= '\r') {
6973
0
      if (yych <= '\t') {
6974
0
        if (yych <= 0x00) goto yy86;
6975
0
        goto yy443;
6976
0
      } else {
6977
0
        if (yych <= '\n') goto yy545;
6978
0
        if (yych <= '\f') goto yy443;
6979
0
        goto yy545;
6980
0
      }
6981
0
    } else {
6982
0
      if (yych <= '*') {
6983
0
        if (yych <= ')') goto yy443;
6984
0
        goto yy547;
6985
0
      } else {
6986
0
        if (yych == '/') goto yy227;
6987
0
        goto yy443;
6988
0
      }
6989
0
    }
6990
1.13k
yy549:
6991
1.13k
    YYDEBUG(549, *YYCURSOR);
6992
1.13k
    ++YYCURSOR;
6993
1.13k
    YYFILL(1);
6994
1.13k
    yych = *YYCURSOR;
6995
1.13k
    YYDEBUG(550, *YYCURSOR);
6996
1.13k
    if (yych <= 0x1F) {
6997
0
      if (yych == '\t') goto yy549;
6998
0
      goto yy86;
6999
1.13k
    } else {
7000
1.13k
      if (yych <= ' ') goto yy549;
7001
636
      if (yych == ')') goto yy634;
7002
501
      goto yy86;
7003
636
    }
7004
0
yy551:
7005
0
    YYDEBUG(551, *YYCURSOR);
7006
0
    yych = *++YYCURSOR;
7007
0
    if (yych == 'Y') goto yy636;
7008
0
    if (yych == 'y') goto yy636;
7009
0
    goto yy86;
7010
0
yy552:
7011
0
    YYDEBUG(552, *YYCURSOR);
7012
0
    ++YYCURSOR;
7013
0
    YYFILL(1);
7014
0
    yych = *YYCURSOR;
7015
45
yy553:
7016
45
    YYDEBUG(553, *YYCURSOR);
7017
45
    if (yych <= 0x1F) {
7018
0
      if (yych == '\t') goto yy552;
7019
0
      goto yy86;
7020
45
    } else {
7021
45
      if (yych <= ' ') goto yy552;
7022
45
      if (yych != ')') goto yy86;
7023
45
    }
7024
45
    YYDEBUG(554, *YYCURSOR);
7025
45
    ++YYCURSOR;
7026
45
    YYDEBUG(555, *YYCURSOR);
7027
45
    yyleng = YYCURSOR - SCNG(yy_text);
7028
45
#line 1696 "Zend/zend_language_scanner.l"
7029
45
    {
7030
45
  RETURN_TOKEN(T_BOOL_CAST);
7031
45
}
7032
0
#line 7033 "Zend/zend_language_scanner.c"
7033
0
yy556:
7034
0
    YYDEBUG(556, *YYCURSOR);
7035
0
    yych = *++YYCURSOR;
7036
0
    if (yych == 'A') goto yy638;
7037
0
    if (yych == 'a') goto yy638;
7038
0
    goto yy86;
7039
0
yy557:
7040
0
    YYDEBUG(557, *YYCURSOR);
7041
0
    yych = *++YYCURSOR;
7042
0
    if (yych == 'E') goto yy639;
7043
0
    if (yych == 'e') goto yy639;
7044
0
    goto yy86;
7045
39
yy558:
7046
39
    YYDEBUG(558, *YYCURSOR);
7047
39
    ++YYCURSOR;
7048
39
    YYFILL(1);
7049
39
    yych = *YYCURSOR;
7050
39
    YYDEBUG(559, *YYCURSOR);
7051
39
    if (yych <= 0x1F) {
7052
0
      if (yych == '\t') goto yy558;
7053
0
      goto yy86;
7054
39
    } else {
7055
39
      if (yych <= ' ') goto yy558;
7056
39
      if (yych == ')') goto yy641;
7057
0
      goto yy86;
7058
39
    }
7059
0
yy560:
7060
0
    YYDEBUG(560, *YYCURSOR);
7061
0
    yych = *++YYCURSOR;
7062
0
    if (yych == 'E') goto yy643;
7063
0
    if (yych == 'e') goto yy643;
7064
0
    goto yy86;
7065
63
yy561:
7066
63
    YYDEBUG(561, *YYCURSOR);
7067
63
    yych = *++YYCURSOR;
7068
63
    if (yych == 'T') goto yy644;
7069
63
    if (yych == 't') goto yy644;
7070
0
    goto yy86;
7071
0
yy562:
7072
0
    YYDEBUG(562, *YYCURSOR);
7073
0
    ++YYCURSOR;
7074
0
    YYDEBUG(563, *YYCURSOR);
7075
0
    yyleng = YYCURSOR - SCNG(yy_text);
7076
0
#line 1666 "Zend/zend_language_scanner.l"
7077
0
    {
7078
0
  if (PARSER_MODE()) {
7079
0
    zend_throw_exception(zend_ce_parse_error, "The (real) cast has been removed, use (float) instead", 0);
7080
0
    RETURN_TOKEN(T_ERROR);
7081
0
  }
7082
0
  RETURN_TOKEN(T_DOUBLE_CAST);
7083
0
}
7084
0
#line 7085 "Zend/zend_language_scanner.c"
7085
885
yy564:
7086
885
    YYDEBUG(564, *YYCURSOR);
7087
885
    yych = *++YYCURSOR;
7088
885
    if (yych == 'G') goto yy646;
7089
885
    if (yych == 'g') goto yy646;
7090
0
    goto yy86;
7091
0
yy565:
7092
0
    YYDEBUG(565, *YYCURSOR);
7093
0
    ++YYCURSOR;
7094
0
    YYFILL(1);
7095
0
    yych = *YYCURSOR;
7096
0
    YYDEBUG(566, *YYCURSOR);
7097
0
    if (yych <= 0x1F) {
7098
0
      if (yych == '\t') goto yy565;
7099
0
      goto yy86;
7100
0
    } else {
7101
0
      if (yych <= ' ') goto yy565;
7102
0
      if (yych == ')') goto yy648;
7103
0
      goto yy86;
7104
0
    }
7105
0
yy567:
7106
0
    YYDEBUG(567, *YYCURSOR);
7107
0
    ++YYCURSOR;
7108
0
    YYDEBUG(568, *YYCURSOR);
7109
0
    yyleng = YYCURSOR - SCNG(yy_text);
7110
0
#line 1714 "Zend/zend_language_scanner.l"
7111
0
    {
7112
0
  RETURN_TOKEN(T_VOID_CAST);
7113
0
}
7114
0
#line 7115 "Zend/zend_language_scanner.c"
7115
156
yy569:
7116
156
    YYDEBUG(569, *YYCURSOR);
7117
156
    yych = *++YYCURSOR;
7118
156
    if (yych == '\n') goto yy466;
7119
0
    if (yych == '\r') goto yy468;
7120
0
    goto yy86;
7121
0
yy570:
7122
0
    YYDEBUG(570, *YYCURSOR);
7123
0
    yyaccept = 4;
7124
0
    yych = *(YYMARKER = ++YYCURSOR);
7125
0
    if (yych == 'C') goto yy650;
7126
0
    if (yych == 'c') goto yy650;
7127
0
    goto yy48;
7128
720
yy571:
7129
720
    YYDEBUG(571, *YYCURSOR);
7130
720
    yyaccept = 4;
7131
720
    yych = *(YYMARKER = ++YYCURSOR);
7132
720
    if (yych == 'L') goto yy651;
7133
720
    if (yych == 'l') goto yy651;
7134
0
    goto yy48;
7135
0
yy572:
7136
0
    YYDEBUG(572, *YYCURSOR);
7137
0
    yyaccept = 4;
7138
0
    yych = *(YYMARKER = ++YYCURSOR);
7139
0
    if (yych == 'U') goto yy652;
7140
0
    if (yych == 'u') goto yy652;
7141
0
    goto yy48;
7142
0
yy573:
7143
0
    YYDEBUG(573, *YYCURSOR);
7144
0
    yyaccept = 4;
7145
0
    yych = *(YYMARKER = ++YYCURSOR);
7146
0
    if (yych == 'E') goto yy653;
7147
0
    if (yych == 'e') goto yy653;
7148
0
    goto yy48;
7149
0
yy574:
7150
0
    YYDEBUG(574, *YYCURSOR);
7151
0
    yyaccept = 4;
7152
0
    yych = *(YYMARKER = ++YYCURSOR);
7153
0
    if (yych == 'T') goto yy655;
7154
0
    if (yych == 't') goto yy655;
7155
0
    goto yy48;
7156
0
yy575:
7157
0
    YYDEBUG(575, *YYCURSOR);
7158
0
    yyaccept = 51;
7159
0
    yych = *(YYMARKER = ++YYCURSOR);
7160
0
    if (yybm[256+yych] & 128) {
7161
0
      goto yy47;
7162
0
    }
7163
0
    if (yych == '\\') goto yy164;
7164
0
yy576:
7165
0
    YYDEBUG(576, *YYCURSOR);
7166
0
    yyleng = YYCURSOR - SCNG(yy_text);
7167
0
#line 1458 "Zend/zend_language_scanner.l"
7168
0
    {
7169
0
  RETURN_TOKEN_WITH_IDENT(T_ELSEIF);
7170
0
}
7171
0
#line 7172 "Zend/zend_language_scanner.c"
7172
0
yy577:
7173
0
    YYDEBUG(577, *YYCURSOR);
7174
0
    yyaccept = 4;
7175
0
    yych = *(YYMARKER = ++YYCURSOR);
7176
0
    if (yych == 'L') goto yy657;
7177
0
    if (yych == 'l') goto yy657;
7178
0
    goto yy48;
7179
0
yy578:
7180
0
    YYDEBUG(578, *YYCURSOR);
7181
0
    yyaccept = 52;
7182
0
    yych = *(YYMARKER = ++YYCURSOR);
7183
0
    if (yych <= '\\') {
7184
0
      if (yych <= 'D') {
7185
0
        if (yych <= '/') goto yy579;
7186
0
        if (yych <= '9') goto yy47;
7187
0
        if (yych >= 'A') goto yy47;
7188
0
      } else {
7189
0
        if (yych <= 'E') goto yy658;
7190
0
        if (yych <= 'Z') goto yy47;
7191
0
        if (yych >= '\\') goto yy164;
7192
0
      }
7193
0
    } else {
7194
0
      if (yych <= 'd') {
7195
0
        if (yych == '_') goto yy47;
7196
0
        if (yych >= 'a') goto yy47;
7197
0
      } else {
7198
0
        if (yych <= 'e') goto yy658;
7199
0
        if (yych <= 'z') goto yy47;
7200
0
        if (yych >= 0x80) goto yy47;
7201
0
      }
7202
0
    }
7203
0
yy579:
7204
0
    YYDEBUG(579, *YYCURSOR);
7205
0
    yyleng = YYCURSOR - SCNG(yy_text);
7206
0
#line 1486 "Zend/zend_language_scanner.l"
7207
0
    {
7208
0
  RETURN_TOKEN_WITH_IDENT(T_ENDFOR);
7209
0
}
7210
0
#line 7211 "Zend/zend_language_scanner.c"
7211
0
yy580:
7212
0
    YYDEBUG(580, *YYCURSOR);
7213
0
    yyaccept = 4;
7214
0
    yych = *(YYMARKER = ++YYCURSOR);
7215
0
    if (yych == 'T') goto yy659;
7216
0
    if (yych == 't') goto yy659;
7217
0
    goto yy48;
7218
276
yy581:
7219
276
    YYDEBUG(581, *YYCURSOR);
7220
276
    yyaccept = 4;
7221
276
    yych = *(YYMARKER = ++YYCURSOR);
7222
276
    if (yych == 'L') goto yy660;
7223
276
    if (yych == 'l') goto yy660;
7224
0
    goto yy48;
7225
1.59k
yy582:
7226
1.59k
    YYDEBUG(582, *YYCURSOR);
7227
1.59k
    ++YYCURSOR;
7228
2.20k
yy583:
7229
2.20k
    YYDEBUG(583, *YYCURSOR);
7230
2.20k
    yyleng = YYCURSOR - SCNG(yy_text);
7231
2.20k
#line 1574 "Zend/zend_language_scanner.l"
7232
2.20k
    {
7233
2.20k
  yyless(4);
7234
2.20k
  RETURN_TOKEN_WITH_IDENT(T_ENUM);
7235
2.20k
}
7236
0
#line 7237 "Zend/zend_language_scanner.c"
7237
0
yy584:
7238
0
    YYDEBUG(584, *YYCURSOR);
7239
0
    yyaccept = 53;
7240
0
    yych = *(YYMARKER = ++YYCURSOR);
7241
0
    if (yych == 'X') goto yy661;
7242
0
    if (yych == 'x') goto yy661;
7243
0
    goto yy583;
7244
0
yy585:
7245
0
    YYDEBUG(585, *YYCURSOR);
7246
0
    yyaccept = 53;
7247
0
    yych = *(YYMARKER = ++YYCURSOR);
7248
0
    if (yych == 'M') goto yy662;
7249
0
    if (yych == 'm') goto yy662;
7250
0
    goto yy583;
7251
179k
yy586:
7252
179k
    YYDEBUG(586, *YYCURSOR);
7253
179k
    ++YYCURSOR;
7254
179k
    YYFILL(1);
7255
179k
    yych = *YYCURSOR;
7256
179k
    YYDEBUG(587, *YYCURSOR);
7257
179k
    if (yych <= '\n') {
7258
6.48k
      if (yych <= 0x00) goto yy86;
7259
6.21k
      if (yych <= '\t') goto yy586;
7260
4.27k
      goto yy495;
7261
172k
    } else {
7262
172k
      if (yych == '\r') goto yy495;
7263
167k
      goto yy586;
7264
172k
    }
7265
13.8k
yy588:
7266
13.8k
    YYDEBUG(588, *YYCURSOR);
7267
13.8k
    ++YYCURSOR;
7268
13.8k
    YYFILL(1);
7269
13.8k
    yych = *YYCURSOR;
7270
13.8k
    YYDEBUG(589, *YYCURSOR);
7271
13.8k
    if (yych <= 'D') {
7272
8.51k
      if (yych <= 0x1F) {
7273
720
        if (yych <= '\t') {
7274
0
          if (yych <= 0x00) goto yy86;
7275
0
          if (yych <= 0x08) goto yy586;
7276
0
          goto yy588;
7277
720
        } else {
7278
720
          if (yych <= '\n') goto yy495;
7279
0
          if (yych == '\r') goto yy495;
7280
0
          goto yy586;
7281
0
        }
7282
7.79k
      } else {
7283
7.79k
        if (yych <= '#') {
7284
3.42k
          if (yych <= ' ') goto yy588;
7285
1.59k
          if (yych <= '"') goto yy586;
7286
1.59k
          goto yy663;
7287
4.37k
        } else {
7288
4.37k
          if (yych == '/') goto yy664;
7289
960
          if (yych <= '@') goto yy586;
7290
0
          goto yy665;
7291
960
        }
7292
7.79k
      }
7293
8.51k
    } else {
7294
5.35k
      if (yych <= '`') {
7295
0
        if (yych <= 'I') {
7296
0
          if (yych <= 'E') goto yy666;
7297
0
          if (yych <= 'H') goto yy665;
7298
0
          goto yy667;
7299
0
        } else {
7300
0
          if (yych <= 'Z') goto yy665;
7301
0
          if (yych == '_') goto yy665;
7302
0
          goto yy586;
7303
0
        }
7304
5.35k
      } else {
7305
5.35k
        if (yych <= 'h') {
7306
2.21k
          if (yych == 'e') goto yy666;
7307
0
          goto yy665;
7308
3.14k
        } else {
7309
3.14k
          if (yych <= 'i') goto yy667;
7310
721
          if (yych <= 'z') goto yy665;
7311
721
          if (yych <= 0x7F) goto yy586;
7312
0
          goto yy665;
7313
721
        }
7314
5.35k
      }
7315
5.35k
    }
7316
9.88k
yy590:
7317
9.88k
    YYDEBUG(590, *YYCURSOR);
7318
9.88k
    ++YYCURSOR;
7319
9.88k
    YYFILL(1);
7320
9.88k
    yych = *YYCURSOR;
7321
9.88k
    YYDEBUG(591, *YYCURSOR);
7322
9.88k
    if (yych <= 0x00) goto yy86;
7323
9.69k
    if (yych == '*') goto yy668;
7324
8.61k
    goto yy590;
7325
8.61k
yy592:
7326
399
    YYDEBUG(592, *YYCURSOR);
7327
399
    yyaccept = 4;
7328
399
    yych = *(YYMARKER = ++YYCURSOR);
7329
399
    if (yych == 'S') goto yy670;
7330
399
    if (yych == 's') goto yy670;
7331
0
    goto yy48;
7332
0
yy593:
7333
0
    YYDEBUG(593, *YYCURSOR);
7334
0
    yyaccept = 4;
7335
0
    yych = *(YYMARKER = ++YYCURSOR);
7336
0
    if (yych == 'Y') goto yy672;
7337
0
    if (yych == 'y') goto yy672;
7338
0
    goto yy48;
7339
18
yy594:
7340
18
    YYDEBUG(594, *YYCURSOR);
7341
18
    yyaccept = 4;
7342
18
    yych = *(YYMARKER = ++YYCURSOR);
7343
18
    if (yych == 'H') goto yy674;
7344
18
    if (yych == 'h') goto yy674;
7345
0
    goto yy48;
7346
2.39k
yy595:
7347
2.39k
    YYDEBUG(595, *YYCURSOR);
7348
2.39k
    yyaccept = 4;
7349
2.39k
    yych = *(YYMARKER = ++YYCURSOR);
7350
2.39k
    if (yych == 'O') goto yy676;
7351
2.39k
    if (yych == 'o') goto yy676;
7352
285
    goto yy48;
7353
285
yy596:
7354
0
    YYDEBUG(596, *YYCURSOR);
7355
0
    yyaccept = 54;
7356
0
    yych = *(YYMARKER = ++YYCURSOR);
7357
0
    if (yybm[256+yych] & 128) {
7358
0
      goto yy47;
7359
0
    }
7360
0
    if (yych == '\\') goto yy164;
7361
0
yy597:
7362
0
    YYDEBUG(597, *YYCURSOR);
7363
0
    yyleng = YYCURSOR - SCNG(yy_text);
7364
0
#line 1750 "Zend/zend_language_scanner.l"
7365
0
    {
7366
0
  RETURN_TOKEN_WITH_IDENT(T_GLOBAL);
7367
0
}
7368
0
#line 7369 "Zend/zend_language_scanner.c"
7369
0
yy598:
7370
0
    YYDEBUG(598, *YYCURSOR);
7371
0
    yyaccept = 4;
7372
0
    yych = *(YYMARKER = ++YYCURSOR);
7373
0
    if (yych == 'E') goto yy677;
7374
0
    if (yych == 'e') goto yy677;
7375
0
    goto yy48;
7376
0
yy599:
7377
0
    YYDEBUG(599, *YYCURSOR);
7378
0
    yyaccept = 4;
7379
0
    yych = *(YYMARKER = ++YYCURSOR);
7380
0
    if (yych == 'E') goto yy678;
7381
0
    if (yych == 'e') goto yy678;
7382
0
    goto yy48;
7383
0
yy600:
7384
0
    YYDEBUG(600, *YYCURSOR);
7385
0
    yyaccept = 4;
7386
0
    yych = *(YYMARKER = ++YYCURSOR);
7387
0
    if (yych == 'C') goto yy680;
7388
0
    if (yych == 'c') goto yy680;
7389
0
    goto yy48;
7390
0
yy601:
7391
0
    YYDEBUG(601, *YYCURSOR);
7392
0
    yyaccept = 4;
7393
0
    yych = *(YYMARKER = ++YYCURSOR);
7394
0
    if (yych == 'D') goto yy681;
7395
0
    if (yych == 'd') goto yy681;
7396
0
    goto yy48;
7397
0
yy602:
7398
0
    YYDEBUG(602, *YYCURSOR);
7399
0
    yyaccept = 4;
7400
0
    yych = *(YYMARKER = ++YYCURSOR);
7401
0
    if (yych == 'A') goto yy682;
7402
0
    if (yych == 'a') goto yy682;
7403
0
    goto yy48;
7404
0
yy603:
7405
0
    YYDEBUG(603, *YYCURSOR);
7406
0
    yyaccept = 4;
7407
0
    yych = *(YYMARKER = ++YYCURSOR);
7408
0
    if (yych == 'A') goto yy683;
7409
0
    if (yych == 'a') goto yy683;
7410
0
    goto yy48;
7411
0
yy604:
7412
0
    YYDEBUG(604, *YYCURSOR);
7413
0
    yyaccept = 4;
7414
0
    yych = *(YYMARKER = ++YYCURSOR);
7415
0
    if (yych == 'E') goto yy684;
7416
0
    if (yych == 'e') goto yy684;
7417
0
    goto yy48;
7418
45
yy605:
7419
45
    YYDEBUG(605, *YYCURSOR);
7420
45
    yyaccept = 4;
7421
45
    yych = *(YYMARKER = ++YYCURSOR);
7422
45
    if (yych == 'T') goto yy686;
7423
45
    if (yych == 't') goto yy686;
7424
0
    goto yy48;
7425
1.65k
yy606:
7426
1.65k
    YYDEBUG(606, *YYCURSOR);
7427
1.65k
    yyaccept = 55;
7428
1.65k
    yych = *(YYMARKER = ++YYCURSOR);
7429
1.65k
    if (yybm[256+yych] & 128) {
7430
0
      goto yy47;
7431
0
    }
7432
1.65k
    if (yych == '(') goto yy687;
7433
1.65k
    if (yych == '\\') goto yy164;
7434
1.65k
yy607:
7435
1.65k
    YYDEBUG(607, *YYCURSOR);
7436
1.65k
    yyleng = YYCURSOR - SCNG(yy_text);
7437
1.65k
#line 1798 "Zend/zend_language_scanner.l"
7438
1.65k
    {
7439
1.65k
  RETURN_TOKEN_WITH_IDENT(T_PUBLIC);
7440
1.65k
}
7441
0
#line 7442 "Zend/zend_language_scanner.c"
7442
0
yy608:
7443
0
    YYDEBUG(608, *YYCURSOR);
7444
0
    yyaccept = 4;
7445
0
    yych = *(YYMARKER = ++YYCURSOR);
7446
0
    if (yych == 'L') goto yy688;
7447
0
    if (yych == 'l') goto yy688;
7448
0
    goto yy48;
7449
692
yy609:
7450
692
    YYDEBUG(609, *YYCURSOR);
7451
692
    yyaccept = 4;
7452
692
    yych = *(YYMARKER = ++YYCURSOR);
7453
692
    if (yych == 'E') goto yy689;
7454
692
    if (yych == 'e') goto yy689;
7455
0
    goto yy48;
7456
71
yy610:
7457
71
    YYDEBUG(610, *YYCURSOR);
7458
71
    yyaccept = 56;
7459
71
    yych = *(YYMARKER = ++YYCURSOR);
7460
71
    if (yybm[256+yych] & 128) {
7461
0
      goto yy47;
7462
0
    }
7463
71
    if (yych == '\\') goto yy164;
7464
71
yy611:
7465
71
    YYDEBUG(611, *YYCURSOR);
7466
71
    yyleng = YYCURSOR - SCNG(yy_text);
7467
71
#line 1419 "Zend/zend_language_scanner.l"
7468
71
    {
7469
71
  RETURN_TOKEN_WITH_IDENT(T_RETURN);
7470
71
}
7471
0
#line 7472 "Zend/zend_language_scanner.c"
7472
0
yy612:
7473
0
    YYDEBUG(612, *YYCURSOR);
7474
0
    yyaccept = 57;
7475
0
    yych = *(YYMARKER = ++YYCURSOR);
7476
0
    if (yybm[256+yych] & 128) {
7477
0
      goto yy47;
7478
0
    }
7479
0
    if (yych == '\\') goto yy164;
7480
0
yy613:
7481
0
    YYDEBUG(613, *YYCURSOR);
7482
0
    yyleng = YYCURSOR - SCNG(yy_text);
7483
0
#line 1766 "Zend/zend_language_scanner.l"
7484
0
    {
7485
0
  RETURN_TOKEN_WITH_IDENT(T_STATIC);
7486
0
}
7487
0
#line 7488 "Zend/zend_language_scanner.c"
7488
49
yy614:
7489
49
    YYDEBUG(614, *YYCURSOR);
7490
49
    yyaccept = 58;
7491
49
    yych = *(YYMARKER = ++YYCURSOR);
7492
49
    if (yybm[256+yych] & 128) {
7493
0
      goto yy47;
7494
0
    }
7495
49
    if (yych == '\\') goto yy164;
7496
49
yy615:
7497
49
    YYDEBUG(615, *YYCURSOR);
7498
49
    yyleng = YYCURSOR - SCNG(yy_text);
7499
49
#line 1514 "Zend/zend_language_scanner.l"
7500
49
    {
7501
49
  RETURN_TOKEN_WITH_IDENT(T_SWITCH);
7502
49
}
7503
0
#line 7504 "Zend/zend_language_scanner.c"
7504
0
yy616:
7505
0
    YYDEBUG(616, *YYCURSOR);
7506
0
    ++YYCURSOR;
7507
0
    YYFILL(5);
7508
0
    yych = *YYCURSOR;
7509
0
    YYDEBUG(617, *YYCURSOR);
7510
0
    if (yych <= '"') {
7511
0
      if (yych <= '\f') {
7512
0
        if (yych <= 0x08) goto yy86;
7513
0
        if (yych <= '\n') goto yy616;
7514
0
        goto yy86;
7515
0
      } else {
7516
0
        if (yych <= '\r') goto yy616;
7517
0
        if (yych == ' ') goto yy616;
7518
0
        goto yy86;
7519
0
      }
7520
0
    } else {
7521
0
      if (yych <= 'E') {
7522
0
        if (yych <= '#') goto yy618;
7523
0
        if (yych == '/') goto yy619;
7524
0
        goto yy86;
7525
0
      } else {
7526
0
        if (yych <= 'F') goto yy691;
7527
0
        if (yych == 'f') goto yy691;
7528
0
        goto yy86;
7529
0
      }
7530
0
    }
7531
0
yy618:
7532
0
    YYDEBUG(618, *YYCURSOR);
7533
0
    ++YYCURSOR;
7534
0
    YYFILL(1);
7535
0
    yych = *YYCURSOR;
7536
0
    if (yych <= '\f') {
7537
0
      if (yych <= 0x00) goto yy86;
7538
0
      if (yych == '\n') goto yy694;
7539
0
      goto yy692;
7540
0
    } else {
7541
0
      if (yych <= '\r') goto yy694;
7542
0
      if (yych == '[') goto yy86;
7543
0
      goto yy692;
7544
0
    }
7545
0
yy619:
7546
0
    YYDEBUG(619, *YYCURSOR);
7547
0
    ++YYCURSOR;
7548
0
    YYFILL(1);
7549
0
    yych = *YYCURSOR;
7550
0
    if (yych == '*') goto yy696;
7551
0
    if (yych == '/') goto yy692;
7552
0
    goto yy86;
7553
0
yy620:
7554
0
    YYDEBUG(620, *YYCURSOR);
7555
0
    yyaccept = 4;
7556
0
    yych = *(YYMARKER = ++YYCURSOR);
7557
0
    if (yych == 'S') goto yy698;
7558
0
    if (yych == 's') goto yy698;
7559
0
    goto yy48;
7560
0
yy621:
7561
0
    YYDEBUG(621, *YYCURSOR);
7562
0
    yyaccept = 4;
7563
0
    yych = *(YYMARKER = ++YYCURSOR);
7564
0
    if (yych == '_') goto yy699;
7565
0
    goto yy48;
7566
8
yy622:
7567
8
    YYDEBUG(622, *YYCURSOR);
7568
8
    yyaccept = 4;
7569
8
    yych = *(YYMARKER = ++YYCURSOR);
7570
8
    if (yych == '_') goto yy701;
7571
0
    goto yy48;
7572
0
yy623:
7573
0
    YYDEBUG(623, *YYCURSOR);
7574
0
    yyaccept = 4;
7575
0
    yych = *(YYMARKER = ++YYCURSOR);
7576
0
    if (yych == 'T') goto yy702;
7577
0
    if (yych == 't') goto yy702;
7578
0
    goto yy48;
7579
0
yy624:
7580
0
    YYDEBUG(624, *YYCURSOR);
7581
0
    yyaccept = 4;
7582
0
    yych = *(YYMARKER = ++YYCURSOR);
7583
0
    if (yych == '_') goto yy703;
7584
0
    goto yy48;
7585
33
yy625:
7586
33
    YYDEBUG(625, *YYCURSOR);
7587
33
    yyaccept = 4;
7588
33
    yych = *(YYMARKER = ++YYCURSOR);
7589
33
    if (yych == '_') goto yy704;
7590
0
    goto yy48;
7591
189
yy626:
7592
189
    YYDEBUG(626, *YYCURSOR);
7593
189
    yyaccept = 4;
7594
189
    yych = *(YYMARKER = ++YYCURSOR);
7595
189
    if (yych == 'O') goto yy705;
7596
0
    if (yych == 'o') goto yy705;
7597
0
    goto yy48;
7598
1
yy627:
7599
1
    YYDEBUG(627, *YYCURSOR);
7600
1
    yyaccept = 4;
7601
1
    yych = *(YYMARKER = ++YYCURSOR);
7602
1
    if (yych == 'S') goto yy706;
7603
0
    if (yych == 's') goto yy706;
7604
0
    goto yy48;
7605
0
yy628:
7606
0
    YYDEBUG(628, *YYCURSOR);
7607
0
    yyaccept = 4;
7608
0
    yych = *(YYMARKER = ++YYCURSOR);
7609
0
    if (yych == 'E') goto yy707;
7610
0
    if (yych == 'e') goto yy707;
7611
0
    goto yy48;
7612
0
yy629:
7613
0
    YYDEBUG(629, *YYCURSOR);
7614
0
    yyaccept = 4;
7615
0
    yych = *(YYMARKER = ++YYCURSOR);
7616
0
    if (yych == 'T') goto yy708;
7617
0
    if (yych == 't') goto yy708;
7618
0
    goto yy48;
7619
0
yy630:
7620
0
    YYDEBUG(630, *YYCURSOR);
7621
0
    ++YYCURSOR;
7622
0
    YYFILL(1);
7623
0
    yych = *YYCURSOR;
7624
0
    if (yych <= '\r') {
7625
0
      if (yych <= '\t') {
7626
0
        if (yych <= 0x00) goto yy86;
7627
0
        goto yy443;
7628
0
      } else {
7629
0
        if (yych <= '\n') goto yy709;
7630
0
        if (yych <= '\f') goto yy443;
7631
0
        goto yy709;
7632
0
      }
7633
0
    } else {
7634
0
      if (yych <= '*') {
7635
0
        if (yych <= ')') goto yy443;
7636
0
        goto yy547;
7637
0
      } else {
7638
0
        if (yych == '[') goto yy230;
7639
0
        goto yy443;
7640
0
      }
7641
0
    }
7642
0
yy631:
7643
0
    YYDEBUG(631, *YYCURSOR);
7644
0
    yyaccept = 26;
7645
0
    YYMARKER = ++YYCURSOR;
7646
0
    YYFILL(1);
7647
0
    yych = *YYCURSOR;
7648
0
    if (yybm[0+yych] & 4) {
7649
0
      goto yy230;
7650
0
    }
7651
0
    if (yych <= 0x00) goto yy89;
7652
0
    goto yy355;
7653
0
yy632:
7654
0
    YYDEBUG(632, *YYCURSOR);
7655
0
    ++YYCURSOR;
7656
0
    YYFILL(1);
7657
0
    yych = *YYCURSOR;
7658
0
    if (yybm[0+yych] & 64) {
7659
0
      goto yy355;
7660
0
    }
7661
0
    if (yych <= 0x00) goto yy86;
7662
0
    if (yych == '.') goto yy711;
7663
0
    goto yy230;
7664
0
yy633:
7665
0
    YYDEBUG(633, *YYCURSOR);
7666
0
    ++YYCURSOR;
7667
0
    YYFILL(1);
7668
0
    yych = *YYCURSOR;
7669
0
    if (yych <= '*') {
7670
0
      if (yych <= 0x00) goto yy86;
7671
0
      if (yych <= ')') goto yy230;
7672
0
      goto yy712;
7673
0
    } else {
7674
0
      if (yych == '/') goto yy443;
7675
0
      goto yy230;
7676
0
    }
7677
135
yy634:
7678
135
    YYDEBUG(634, *YYCURSOR);
7679
135
    ++YYCURSOR;
7680
135
    YYDEBUG(635, *YYCURSOR);
7681
135
    yyleng = YYCURSOR - SCNG(yy_text);
7682
135
#line 1688 "Zend/zend_language_scanner.l"
7683
135
    {
7684
135
  RETURN_TOKEN(T_ARRAY_CAST);
7685
135
}
7686
0
#line 7687 "Zend/zend_language_scanner.c"
7687
0
yy636:
7688
0
    YYDEBUG(636, *YYCURSOR);
7689
0
    ++YYCURSOR;
7690
0
    YYFILL(1);
7691
0
    yych = *YYCURSOR;
7692
0
    YYDEBUG(637, *YYCURSOR);
7693
0
    if (yych <= 0x1F) {
7694
0
      if (yych == '\t') goto yy636;
7695
0
      goto yy86;
7696
0
    } else {
7697
0
      if (yych <= ' ') goto yy636;
7698
0
      if (yych == ')') goto yy713;
7699
0
      goto yy86;
7700
0
    }
7701
0
yy638:
7702
0
    YYDEBUG(638, *YYCURSOR);
7703
0
    yych = *++YYCURSOR;
7704
0
    if (yych == 'N') goto yy715;
7705
0
    if (yych == 'n') goto yy715;
7706
0
    goto yy86;
7707
0
yy639:
7708
0
    YYDEBUG(639, *YYCURSOR);
7709
0
    ++YYCURSOR;
7710
0
    YYFILL(1);
7711
0
    yych = *YYCURSOR;
7712
0
    YYDEBUG(640, *YYCURSOR);
7713
0
    if (yych <= 0x1F) {
7714
0
      if (yych == '\t') goto yy639;
7715
0
      goto yy86;
7716
0
    } else {
7717
0
      if (yych <= ' ') goto yy639;
7718
0
      if (yych == ')') goto yy717;
7719
0
      goto yy86;
7720
0
    }
7721
39
yy641:
7722
39
    YYDEBUG(641, *YYCURSOR);
7723
39
    ++YYCURSOR;
7724
39
    YYDEBUG(642, *YYCURSOR);
7725
39
    yyleng = YYCURSOR - SCNG(yy_text);
7726
39
#line 1652 "Zend/zend_language_scanner.l"
7727
39
    {
7728
39
  RETURN_TOKEN(T_DOUBLE_CAST);
7729
39
}
7730
0
#line 7731 "Zend/zend_language_scanner.c"
7731
0
yy643:
7732
0
    YYDEBUG(643, *YYCURSOR);
7733
0
    yych = *++YYCURSOR;
7734
0
    if (yych == 'R') goto yy719;
7735
0
    if (yych == 'r') goto yy719;
7736
0
    goto yy86;
7737
63
yy644:
7738
63
    YYDEBUG(644, *YYCURSOR);
7739
63
    ++YYCURSOR;
7740
63
    YYFILL(1);
7741
63
    yych = *YYCURSOR;
7742
63
    YYDEBUG(645, *YYCURSOR);
7743
63
    if (yych <= 0x1F) {
7744
0
      if (yych == '\t') goto yy644;
7745
0
      goto yy86;
7746
63
    } else {
7747
63
      if (yych <= ' ') goto yy644;
7748
63
      if (yych == ')') goto yy721;
7749
0
      goto yy86;
7750
63
    }
7751
885
yy646:
7752
885
    YYDEBUG(646, *YYCURSOR);
7753
885
    ++YYCURSOR;
7754
885
    YYFILL(1);
7755
885
    yych = *YYCURSOR;
7756
885
    YYDEBUG(647, *YYCURSOR);
7757
885
    if (yych <= 0x1F) {
7758
834
      if (yych == '\t') goto yy646;
7759
834
      goto yy86;
7760
834
    } else {
7761
51
      if (yych <= ' ') goto yy646;
7762
51
      if (yych == ')') goto yy723;
7763
0
      goto yy86;
7764
51
    }
7765
0
yy648:
7766
0
    YYDEBUG(648, *YYCURSOR);
7767
0
    ++YYCURSOR;
7768
0
    YYDEBUG(649, *YYCURSOR);
7769
0
    yyleng = YYCURSOR - SCNG(yy_text);
7770
0
#line 1710 "Zend/zend_language_scanner.l"
7771
0
    {
7772
0
  RETURN_TOKEN(T_UNSET_CAST);
7773
0
}
7774
0
#line 7775 "Zend/zend_language_scanner.c"
7775
0
yy650:
7776
0
    YYDEBUG(650, *YYCURSOR);
7777
0
    yyaccept = 4;
7778
0
    yych = *(YYMARKER = ++YYCURSOR);
7779
0
    if (yych == 'T') goto yy725;
7780
0
    if (yych == 't') goto yy725;
7781
0
    goto yy48;
7782
720
yy651:
7783
720
    YYDEBUG(651, *YYCURSOR);
7784
720
    yyaccept = 4;
7785
720
    yych = *(YYMARKER = ++YYCURSOR);
7786
720
    if (yych == 'E') goto yy727;
7787
720
    if (yych == 'e') goto yy727;
7788
0
    goto yy48;
7789
0
yy652:
7790
0
    YYDEBUG(652, *YYCURSOR);
7791
0
    yyaccept = 4;
7792
0
    yych = *(YYMARKER = ++YYCURSOR);
7793
0
    if (yych == 'E') goto yy729;
7794
0
    if (yych == 'e') goto yy729;
7795
0
    goto yy48;
7796
0
yy653:
7797
0
    YYDEBUG(653, *YYCURSOR);
7798
0
    yyaccept = 59;
7799
0
    yych = *(YYMARKER = ++YYCURSOR);
7800
0
    if (yybm[256+yych] & 128) {
7801
0
      goto yy47;
7802
0
    }
7803
0
    if (yych == '\\') goto yy164;
7804
0
yy654:
7805
0
    YYDEBUG(654, *YYCURSOR);
7806
0
    yyleng = YYCURSOR - SCNG(yy_text);
7807
0
#line 1498 "Zend/zend_language_scanner.l"
7808
0
    {
7809
0
  RETURN_TOKEN_WITH_IDENT(T_DECLARE);
7810
0
}
7811
0
#line 7812 "Zend/zend_language_scanner.c"
7812
0
yy655:
7813
0
    YYDEBUG(655, *YYCURSOR);
7814
0
    yyaccept = 60;
7815
0
    yych = *(YYMARKER = ++YYCURSOR);
7816
0
    if (yybm[256+yych] & 128) {
7817
0
      goto yy47;
7818
0
    }
7819
0
    if (yych == '\\') goto yy164;
7820
0
yy656:
7821
0
    YYDEBUG(656, *YYCURSOR);
7822
0
    yyleng = YYCURSOR - SCNG(yy_text);
7823
0
#line 1530 "Zend/zend_language_scanner.l"
7824
0
    {
7825
0
  RETURN_TOKEN_WITH_IDENT(T_DEFAULT);
7826
0
}
7827
0
#line 7828 "Zend/zend_language_scanner.c"
7828
0
yy657:
7829
0
    YYDEBUG(657, *YYCURSOR);
7830
0
    yyaccept = 4;
7831
0
    yych = *(YYMARKER = ++YYCURSOR);
7832
0
    if (yych == 'A') goto yy731;
7833
0
    if (yych == 'a') goto yy731;
7834
0
    goto yy48;
7835
0
yy658:
7836
0
    YYDEBUG(658, *YYCURSOR);
7837
0
    yyaccept = 4;
7838
0
    yych = *(YYMARKER = ++YYCURSOR);
7839
0
    if (yych == 'A') goto yy732;
7840
0
    if (yych == 'a') goto yy732;
7841
0
    goto yy48;
7842
0
yy659:
7843
0
    YYDEBUG(659, *YYCURSOR);
7844
0
    yyaccept = 4;
7845
0
    yych = *(YYMARKER = ++YYCURSOR);
7846
0
    if (yych == 'C') goto yy733;
7847
0
    if (yych == 'c') goto yy733;
7848
0
    goto yy48;
7849
276
yy660:
7850
276
    YYDEBUG(660, *YYCURSOR);
7851
276
    yyaccept = 4;
7852
276
    yych = *(YYMARKER = ++YYCURSOR);
7853
276
    if (yych == 'E') goto yy734;
7854
276
    if (yych == 'e') goto yy734;
7855
0
    goto yy48;
7856
0
yy661:
7857
0
    YYDEBUG(661, *YYCURSOR);
7858
0
    yych = *++YYCURSOR;
7859
0
    if (yych == 'T') goto yy736;
7860
0
    if (yych == 't') goto yy736;
7861
0
    goto yy86;
7862
0
yy662:
7863
0
    YYDEBUG(662, *YYCURSOR);
7864
0
    yych = *++YYCURSOR;
7865
0
    if (yych == 'P') goto yy737;
7866
0
    if (yych == 'p') goto yy737;
7867
0
    goto yy86;
7868
1.59k
yy663:
7869
1.59k
    YYDEBUG(663, *YYCURSOR);
7870
1.59k
    ++YYCURSOR;
7871
1.59k
    YYFILL(1);
7872
1.59k
    yych = *YYCURSOR;
7873
1.59k
    if (yych <= '\n') {
7874
1.59k
      if (yych <= 0x00) goto yy86;
7875
1.59k
      if (yych <= '\t') goto yy586;
7876
1.59k
      goto yy588;
7877
1.59k
    } else {
7878
2
      if (yych == '\r') goto yy588;
7879
2
      goto yy586;
7880
2
    }
7881
3.41k
yy664:
7882
3.41k
    YYDEBUG(664, *YYCURSOR);
7883
3.41k
    ++YYCURSOR;
7884
3.41k
    YYFILL(1);
7885
3.41k
    yych = *YYCURSOR;
7886
3.41k
    if (yych <= '\f') {
7887
0
      if (yych <= 0x00) goto yy86;
7888
0
      if (yych == '\n') goto yy495;
7889
0
      goto yy586;
7890
3.41k
    } else {
7891
3.41k
      if (yych <= '\r') goto yy495;
7892
3.41k
      if (yych == '*') goto yy738;
7893
1.46k
      goto yy586;
7894
3.41k
    }
7895
0
yy665:
7896
0
    YYDEBUG(665, *YYCURSOR);
7897
0
    yyaccept = 53;
7898
0
    YYMARKER = ++YYCURSOR;
7899
0
    YYFILL(1);
7900
0
    yych = *YYCURSOR;
7901
0
    if (yych <= '\n') {
7902
0
      if (yych <= 0x00) goto yy583;
7903
0
      if (yych <= '\t') goto yy586;
7904
0
      goto yy495;
7905
0
    } else {
7906
0
      if (yych == '\r') goto yy495;
7907
0
      goto yy586;
7908
0
    }
7909
2.21k
yy666:
7910
2.21k
    YYDEBUG(666, *YYCURSOR);
7911
2.21k
    yyaccept = 53;
7912
2.21k
    YYMARKER = ++YYCURSOR;
7913
2.21k
    YYFILL(1);
7914
2.21k
    yych = *YYCURSOR;
7915
2.21k
    if (yych <= '\r') {
7916
0
      if (yych <= '\t') {
7917
0
        if (yych <= 0x00) goto yy583;
7918
0
        goto yy586;
7919
0
      } else {
7920
0
        if (yych <= '\n') goto yy495;
7921
0
        if (yych <= '\f') goto yy586;
7922
0
        goto yy495;
7923
0
      }
7924
2.21k
    } else {
7925
2.21k
      if (yych <= 'X') {
7926
360
        if (yych <= 'W') goto yy586;
7927
0
        goto yy740;
7928
1.85k
      } else {
7929
1.85k
        if (yych == 'x') goto yy740;
7930
1.66k
        goto yy586;
7931
1.85k
      }
7932
2.21k
    }
7933
2.42k
yy667:
7934
2.42k
    YYDEBUG(667, *YYCURSOR);
7935
2.42k
    yyaccept = 53;
7936
2.42k
    YYMARKER = ++YYCURSOR;
7937
2.42k
    YYFILL(1);
7938
2.42k
    yych = *YYCURSOR;
7939
2.42k
    if (yych <= '\r') {
7940
0
      if (yych <= '\t') {
7941
0
        if (yych <= 0x00) goto yy583;
7942
0
        goto yy586;
7943
0
      } else {
7944
0
        if (yych <= '\n') goto yy495;
7945
0
        if (yych <= '\f') goto yy586;
7946
0
        goto yy495;
7947
0
      }
7948
2.42k
    } else {
7949
2.42k
      if (yych <= 'M') {
7950
0
        if (yych <= 'L') goto yy586;
7951
0
        goto yy741;
7952
2.42k
      } else {
7953
2.42k
        if (yych == 'm') goto yy741;
7954
1.32k
        goto yy586;
7955
2.42k
      }
7956
2.42k
    }
7957
1.08k
yy668:
7958
1.08k
    YYDEBUG(668, *YYCURSOR);
7959
1.08k
    ++YYCURSOR;
7960
1.08k
    YYFILL(1);
7961
1.08k
    yych = *YYCURSOR;
7962
1.08k
    YYDEBUG(669, *YYCURSOR);
7963
1.08k
    if (yych <= '*') {
7964
0
      if (yych <= 0x00) goto yy86;
7965
0
      if (yych <= ')') goto yy590;
7966
0
      goto yy668;
7967
1.08k
    } else {
7968
1.08k
      if (yych == '/') goto yy495;
7969
0
      goto yy590;
7970
1.08k
    }
7971
399
yy670:
7972
399
    YYDEBUG(670, *YYCURSOR);
7973
399
    yyaccept = 61;
7974
399
    yych = *(YYMARKER = ++YYCURSOR);
7975
399
    if (yybm[256+yych] & 128) {
7976
0
      goto yy47;
7977
0
    }
7978
399
    if (yych == '\\') goto yy164;
7979
399
yy671:
7980
399
    YYDEBUG(671, *YYCURSOR);
7981
399
    yyleng = YYCURSOR - SCNG(yy_text);
7982
399
#line 1579 "Zend/zend_language_scanner.l"
7983
399
    {
7984
399
  RETURN_TOKEN_WITH_IDENT(T_EXTENDS);
7985
399
}
7986
0
#line 7987 "Zend/zend_language_scanner.c"
7987
0
yy672:
7988
0
    YYDEBUG(672, *YYCURSOR);
7989
0
    yyaccept = 62;
7990
0
    yych = *(YYMARKER = ++YYCURSOR);
7991
0
    if (yybm[256+yych] & 128) {
7992
0
      goto yy47;
7993
0
    }
7994
0
    if (yych == '\\') goto yy164;
7995
0
yy673:
7996
0
    YYDEBUG(673, *YYCURSOR);
7997
0
    yyleng = YYCURSOR - SCNG(yy_text);
7998
0
#line 1446 "Zend/zend_language_scanner.l"
7999
0
    {
8000
0
  RETURN_TOKEN_WITH_IDENT(T_FINALLY);
8001
0
}
8002
0
#line 8003 "Zend/zend_language_scanner.c"
8003
18
yy674:
8004
18
    YYDEBUG(674, *YYCURSOR);
8005
18
    yyaccept = 63;
8006
18
    yych = *(YYMARKER = ++YYCURSOR);
8007
18
    if (yybm[256+yych] & 128) {
8008
0
      goto yy47;
8009
0
    }
8010
18
    if (yych == '\\') goto yy164;
8011
18
yy675:
8012
18
    YYDEBUG(675, *YYCURSOR);
8013
18
    yyleng = YYCURSOR - SCNG(yy_text);
8014
18
#line 1490 "Zend/zend_language_scanner.l"
8015
18
    {
8016
18
  RETURN_TOKEN_WITH_IDENT(T_FOREACH);
8017
18
}
8018
0
#line 8019 "Zend/zend_language_scanner.c"
8019
2.10k
yy676:
8020
2.10k
    YYDEBUG(676, *YYCURSOR);
8021
2.10k
    yyaccept = 4;
8022
2.10k
    yych = *(YYMARKER = ++YYCURSOR);
8023
2.10k
    if (yych == 'N') goto yy742;
8024
2.10k
    if (yych == 'n') goto yy742;
8025
0
    goto yy48;
8026
0
yy677:
8027
0
    YYDEBUG(677, *YYCURSOR);
8028
0
    yyaccept = 4;
8029
0
    yych = *(YYMARKER = ++YYCURSOR);
8030
0
    if (yych == 'N') goto yy744;
8031
0
    if (yych == 'n') goto yy744;
8032
0
    goto yy48;
8033
0
yy678:
8034
0
    YYDEBUG(678, *YYCURSOR);
8035
0
    yyaccept = 64;
8036
0
    yych = *(YYMARKER = ++YYCURSOR);
8037
0
    if (yych <= '\\') {
8038
0
      if (yych <= '@') {
8039
0
        if (yych <= '/') goto yy679;
8040
0
        if (yych <= '9') goto yy47;
8041
0
      } else {
8042
0
        if (yych <= 'Z') goto yy47;
8043
0
        if (yych >= '\\') goto yy164;
8044
0
      }
8045
0
    } else {
8046
0
      if (yych <= '`') {
8047
0
        if (yych == '_') goto yy745;
8048
0
      } else {
8049
0
        if (yych <= 'z') goto yy47;
8050
0
        if (yych >= 0x80) goto yy47;
8051
0
      }
8052
0
    }
8053
0
yy679:
8054
0
    YYDEBUG(679, *YYCURSOR);
8055
0
    yyleng = YYCURSOR - SCNG(yy_text);
8056
0
#line 1722 "Zend/zend_language_scanner.l"
8057
0
    {
8058
0
  RETURN_TOKEN_WITH_IDENT(T_INCLUDE);
8059
0
}
8060
0
#line 8061 "Zend/zend_language_scanner.c"
8061
0
yy680:
8062
0
    YYDEBUG(680, *YYCURSOR);
8063
0
    yyaccept = 4;
8064
0
    yych = *(YYMARKER = ++YYCURSOR);
8065
0
    if (yych == 'E') goto yy746;
8066
0
    if (yych == 'e') goto yy746;
8067
0
    goto yy48;
8068
0
yy681:
8069
0
    YYDEBUG(681, *YYCURSOR);
8070
0
    yyaccept = 4;
8071
0
    yych = *(YYMARKER = ++YYCURSOR);
8072
0
    if (yych == 'O') goto yy747;
8073
0
    if (yych == 'o') goto yy747;
8074
0
    goto yy48;
8075
0
yy682:
8076
0
    YYDEBUG(682, *YYCURSOR);
8077
0
    yyaccept = 4;
8078
0
    yych = *(YYMARKER = ++YYCURSOR);
8079
0
    if (yych == 'C') goto yy748;
8080
0
    if (yych == 'c') goto yy748;
8081
0
    goto yy48;
8082
0
yy683:
8083
0
    YYDEBUG(683, *YYCURSOR);
8084
0
    yyaccept = 4;
8085
0
    yych = *(YYMARKER = ++YYCURSOR);
8086
0
    if (yych == 'C') goto yy749;
8087
0
    if (yych == 'c') goto yy749;
8088
0
    goto yy48;
8089
0
yy684:
8090
0
    YYDEBUG(684, *YYCURSOR);
8091
0
    yyaccept = 65;
8092
0
    yych = *(YYMARKER = ++YYCURSOR);
8093
0
    if (yybm[256+yych] & 128) {
8094
0
      goto yy47;
8095
0
    }
8096
0
    if (yych == '(') goto yy750;
8097
0
    if (yych == '\\') goto yy164;
8098
0
yy685:
8099
0
    YYDEBUG(685, *YYCURSOR);
8100
0
    yyleng = YYCURSOR - SCNG(yy_text);
8101
0
#line 1778 "Zend/zend_language_scanner.l"
8102
0
    {
8103
0
  RETURN_TOKEN_WITH_IDENT(T_PRIVATE);
8104
0
}
8105
0
#line 8106 "Zend/zend_language_scanner.c"
8106
45
yy686:
8107
45
    YYDEBUG(686, *YYCURSOR);
8108
45
    yyaccept = 4;
8109
45
    yych = *(YYMARKER = ++YYCURSOR);
8110
45
    if (yych == 'E') goto yy751;
8111
45
    if (yych == 'e') goto yy751;
8112
0
    goto yy48;
8113
0
yy687:
8114
0
    YYDEBUG(687, *YYCURSOR);
8115
0
    yych = *++YYCURSOR;
8116
0
    if (yych == 'S') goto yy752;
8117
0
    if (yych == 's') goto yy752;
8118
0
    goto yy86;
8119
0
yy688:
8120
0
    YYDEBUG(688, *YYCURSOR);
8121
0
    yyaccept = 4;
8122
0
    yych = *(YYMARKER = ++YYCURSOR);
8123
0
    if (yych == 'Y') goto yy753;
8124
0
    if (yych == 'y') goto yy753;
8125
0
    goto yy48;
8126
692
yy689:
8127
692
    YYDEBUG(689, *YYCURSOR);
8128
692
    yyaccept = 66;
8129
692
    yych = *(YYMARKER = ++YYCURSOR);
8130
692
    if (yych <= '\\') {
8131
8
      if (yych <= '@') {
8132
8
        if (yych <= '/') goto yy690;
8133
0
        if (yych <= '9') goto yy47;
8134
0
      } else {
8135
0
        if (yych <= 'Z') goto yy47;
8136
0
        if (yych >= '\\') goto yy164;
8137
0
      }
8138
684
    } else {
8139
684
      if (yych <= '`') {
8140
0
        if (yych == '_') goto yy755;
8141
684
      } else {
8142
684
        if (yych <= 'z') goto yy47;
8143
684
        if (yych >= 0x80) goto yy47;
8144
684
      }
8145
684
    }
8146
8
yy690:
8147
8
    YYDEBUG(690, *YYCURSOR);
8148
8
    yyleng = YYCURSOR - SCNG(yy_text);
8149
8
#line 1730 "Zend/zend_language_scanner.l"
8150
8
    {
8151
8
  RETURN_TOKEN_WITH_IDENT(T_REQUIRE);
8152
8
}
8153
0
#line 8154 "Zend/zend_language_scanner.c"
8154
0
yy691:
8155
0
    YYDEBUG(691, *YYCURSOR);
8156
0
    yych = *++YYCURSOR;
8157
0
    if (yych == 'R') goto yy756;
8158
0
    if (yych == 'r') goto yy756;
8159
0
    goto yy86;
8160
0
yy692:
8161
0
    YYDEBUG(692, *YYCURSOR);
8162
0
    ++YYCURSOR;
8163
0
    YYFILL(1);
8164
0
    yych = *YYCURSOR;
8165
0
    YYDEBUG(693, *YYCURSOR);
8166
0
    if (yych <= '\n') {
8167
0
      if (yych <= 0x00) goto yy86;
8168
0
      if (yych <= '\t') goto yy692;
8169
0
      goto yy616;
8170
0
    } else {
8171
0
      if (yych == '\r') goto yy616;
8172
0
      goto yy692;
8173
0
    }
8174
0
yy694:
8175
0
    YYDEBUG(694, *YYCURSOR);
8176
0
    ++YYCURSOR;
8177
0
    YYFILL(1);
8178
0
    yych = *YYCURSOR;
8179
0
    YYDEBUG(695, *YYCURSOR);
8180
0
    if (yych <= ' ') {
8181
0
      if (yych <= '\n') {
8182
0
        if (yych <= 0x00) goto yy86;
8183
0
        if (yych <= 0x08) goto yy692;
8184
0
        if (yych <= '\t') goto yy694;
8185
0
        goto yy616;
8186
0
      } else {
8187
0
        if (yych == '\r') goto yy616;
8188
0
        if (yych <= 0x1F) goto yy692;
8189
0
        goto yy694;
8190
0
      }
8191
0
    } else {
8192
0
      if (yych <= '/') {
8193
0
        if (yych == '#') goto yy757;
8194
0
        if (yych <= '.') goto yy692;
8195
0
        goto yy758;
8196
0
      } else {
8197
0
        if (yych <= 'F') {
8198
0
          if (yych <= 'E') goto yy692;
8199
0
          goto yy759;
8200
0
        } else {
8201
0
          if (yych == 'f') goto yy759;
8202
0
          goto yy692;
8203
0
        }
8204
0
      }
8205
0
    }
8206
0
yy696:
8207
0
    YYDEBUG(696, *YYCURSOR);
8208
0
    ++YYCURSOR;
8209
0
    YYFILL(1);
8210
0
    yych = *YYCURSOR;
8211
0
    YYDEBUG(697, *YYCURSOR);
8212
0
    if (yych <= 0x00) goto yy86;
8213
0
    if (yych == '*') goto yy760;
8214
0
    goto yy696;
8215
0
yy698:
8216
0
    YYDEBUG(698, *YYCURSOR);
8217
0
    yyaccept = 4;
8218
0
    yych = *(YYMARKER = ++YYCURSOR);
8219
0
    if (yych == '_') goto yy762;
8220
0
    goto yy48;
8221
0
yy699:
8222
0
    YYDEBUG(699, *YYCURSOR);
8223
0
    yyaccept = 67;
8224
0
    yych = *(YYMARKER = ++YYCURSOR);
8225
0
    if (yybm[256+yych] & 128) {
8226
0
      goto yy47;
8227
0
    }
8228
0
    if (yych == '\\') goto yy164;
8229
0
yy700:
8230
0
    YYDEBUG(700, *YYCURSOR);
8231
0
    yyleng = YYCURSOR - SCNG(yy_text);
8232
0
#line 2281 "Zend/zend_language_scanner.l"
8233
0
    {
8234
0
  RETURN_TOKEN_WITH_IDENT(T_DIR);
8235
0
}
8236
0
#line 8237 "Zend/zend_language_scanner.c"
8237
8
yy701:
8238
8
    YYDEBUG(701, *YYCURSOR);
8239
8
    yyaccept = 4;
8240
8
    yych = *(YYMARKER = ++YYCURSOR);
8241
8
    if (yych == '_') goto yy763;
8242
0
    goto yy48;
8243
0
yy702:
8244
0
    YYDEBUG(702, *YYCURSOR);
8245
0
    yyaccept = 4;
8246
0
    yych = *(YYMARKER = ++YYCURSOR);
8247
0
    if (yych == 'I') goto yy765;
8248
0
    if (yych == 'i') goto yy765;
8249
0
    goto yy48;
8250
0
yy703:
8251
0
    YYDEBUG(703, *YYCURSOR);
8252
0
    yyaccept = 4;
8253
0
    yych = *(YYMARKER = ++YYCURSOR);
8254
0
    if (yych == 'C') goto yy766;
8255
0
    if (yych == 'c') goto yy766;
8256
0
    goto yy48;
8257
33
yy704:
8258
33
    YYDEBUG(704, *YYCURSOR);
8259
33
    yyaccept = 4;
8260
33
    yych = *(YYMARKER = ++YYCURSOR);
8261
33
    if (yych == '_') goto yy767;
8262
0
    goto yy48;
8263
189
yy705:
8264
189
    YYDEBUG(705, *YYCURSOR);
8265
189
    yyaccept = 4;
8266
189
    yych = *(YYMARKER = ++YYCURSOR);
8267
189
    if (yych == 'D') goto yy769;
8268
0
    if (yych == 'd') goto yy769;
8269
0
    goto yy48;
8270
1
yy706:
8271
1
    YYDEBUG(706, *YYCURSOR);
8272
1
    yyaccept = 4;
8273
1
    yych = *(YYMARKER = ++YYCURSOR);
8274
1
    if (yych == 'P') goto yy770;
8275
0
    if (yych == 'p') goto yy770;
8276
0
    goto yy48;
8277
0
yy707:
8278
0
    YYDEBUG(707, *YYCURSOR);
8279
0
    yyaccept = 4;
8280
0
    yych = *(YYMARKER = ++YYCURSOR);
8281
0
    if (yych == 'R') goto yy771;
8282
0
    if (yych == 'r') goto yy771;
8283
0
    goto yy48;
8284
0
yy708:
8285
0
    YYDEBUG(708, *YYCURSOR);
8286
0
    yyaccept = 4;
8287
0
    yych = *(YYMARKER = ++YYCURSOR);
8288
0
    if (yych == '_') goto yy772;
8289
0
    goto yy48;
8290
0
yy709:
8291
0
    YYDEBUG(709, *YYCURSOR);
8292
0
    ++YYCURSOR;
8293
0
    YYFILL(1);
8294
0
    yych = *YYCURSOR;
8295
0
    YYDEBUG(710, *YYCURSOR);
8296
0
    if (yych <= ' ') {
8297
0
      if (yych <= '\n') {
8298
0
        if (yych <= 0x00) goto yy86;
8299
0
        if (yych <= 0x08) goto yy443;
8300
0
        if (yych <= '\t') goto yy709;
8301
0
        goto yy545;
8302
0
      } else {
8303
0
        if (yych == '\r') goto yy545;
8304
0
        if (yych <= 0x1F) goto yy443;
8305
0
        goto yy709;
8306
0
      }
8307
0
    } else {
8308
0
      if (yych <= ')') {
8309
0
        if (yych <= '"') goto yy443;
8310
0
        if (yych <= '#') goto yy773;
8311
0
        if (yych <= '$') goto yy774;
8312
0
        goto yy443;
8313
0
      } else {
8314
0
        if (yych <= '-') {
8315
0
          if (yych <= '*') goto yy547;
8316
0
          goto yy443;
8317
0
        } else {
8318
0
          if (yych <= '.') goto yy775;
8319
0
          if (yych <= '/') goto yy776;
8320
0
          goto yy443;
8321
0
        }
8322
0
      }
8323
0
    }
8324
0
yy711:
8325
0
    YYDEBUG(711, *YYCURSOR);
8326
0
    ++YYCURSOR;
8327
0
    YYFILL(1);
8328
0
    yych = *YYCURSOR;
8329
0
    if (yybm[0+yych] & 64) {
8330
0
      goto yy355;
8331
0
    }
8332
0
    if (yych <= 0x00) goto yy86;
8333
0
    if (yych == '.') goto yy631;
8334
0
    goto yy230;
8335
0
yy712:
8336
0
    YYDEBUG(712, *YYCURSOR);
8337
0
    ++YYCURSOR;
8338
0
    YYFILL(1);
8339
0
    yych = *YYCURSOR;
8340
0
    if (yybm[0+yych] & 64) {
8341
0
      goto yy355;
8342
0
    }
8343
0
    if (yych <= 0x00) goto yy86;
8344
0
    if (yych == '/') goto yy545;
8345
0
    goto yy230;
8346
0
yy713:
8347
0
    YYDEBUG(713, *YYCURSOR);
8348
0
    ++YYCURSOR;
8349
0
    YYDEBUG(714, *YYCURSOR);
8350
0
    yyleng = YYCURSOR - SCNG(yy_text);
8351
0
#line 1678 "Zend/zend_language_scanner.l"
8352
0
    {
8353
0
  if (PARSER_MODE()) {
8354
0
    zend_error(E_DEPRECATED, "Non-canonical cast (binary) is deprecated, use the (string) cast instead");
8355
0
    if (EG(exception)) {
8356
0
      RETURN_TOKEN(T_ERROR);
8357
0
    }
8358
0
  }
8359
0
  RETURN_TOKEN(T_STRING_CAST);
8360
0
}
8361
0
#line 8362 "Zend/zend_language_scanner.c"
8362
0
yy715:
8363
0
    YYDEBUG(715, *YYCURSOR);
8364
0
    ++YYCURSOR;
8365
0
    YYFILL(1);
8366
0
    yych = *YYCURSOR;
8367
0
    YYDEBUG(716, *YYCURSOR);
8368
0
    if (yych <= 0x1F) {
8369
0
      if (yych == '\t') goto yy715;
8370
0
      goto yy86;
8371
0
    } else {
8372
0
      if (yych <= ' ') goto yy715;
8373
0
      if (yych == ')') goto yy777;
8374
0
      goto yy86;
8375
0
    }
8376
0
yy717:
8377
0
    YYDEBUG(717, *YYCURSOR);
8378
0
    ++YYCURSOR;
8379
0
    YYDEBUG(718, *YYCURSOR);
8380
0
    yyleng = YYCURSOR - SCNG(yy_text);
8381
0
#line 1656 "Zend/zend_language_scanner.l"
8382
0
    {
8383
0
  if (PARSER_MODE()) {
8384
0
    zend_error(E_DEPRECATED, "Non-canonical cast (double) is deprecated, use the (float) cast instead");
8385
0
    if (EG(exception)) {
8386
0
      RETURN_TOKEN(T_ERROR);
8387
0
    }
8388
0
  }
8389
0
  RETURN_TOKEN(T_DOUBLE_CAST);
8390
0
}
8391
0
#line 8392 "Zend/zend_language_scanner.c"
8392
0
yy719:
8393
0
    YYDEBUG(719, *YYCURSOR);
8394
0
    ++YYCURSOR;
8395
0
    YYFILL(1);
8396
0
    yych = *YYCURSOR;
8397
0
    YYDEBUG(720, *YYCURSOR);
8398
0
    if (yych <= 0x1F) {
8399
0
      if (yych == '\t') goto yy719;
8400
0
      goto yy86;
8401
0
    } else {
8402
0
      if (yych <= ' ') goto yy719;
8403
0
      if (yych == ')') goto yy779;
8404
0
      goto yy86;
8405
0
    }
8406
63
yy721:
8407
63
    YYDEBUG(721, *YYCURSOR);
8408
63
    ++YYCURSOR;
8409
63
    YYDEBUG(722, *YYCURSOR);
8410
63
    yyleng = YYCURSOR - SCNG(yy_text);
8411
63
#line 1692 "Zend/zend_language_scanner.l"
8412
63
    {
8413
63
  RETURN_TOKEN(T_OBJECT_CAST);
8414
63
}
8415
0
#line 8416 "Zend/zend_language_scanner.c"
8416
51
yy723:
8417
51
    YYDEBUG(723, *YYCURSOR);
8418
51
    ++YYCURSOR;
8419
51
    YYDEBUG(724, *YYCURSOR);
8420
51
    yyleng = YYCURSOR - SCNG(yy_text);
8421
51
#line 1674 "Zend/zend_language_scanner.l"
8422
51
    {
8423
51
  RETURN_TOKEN(T_STRING_CAST);
8424
51
}
8425
0
#line 8426 "Zend/zend_language_scanner.c"
8426
0
yy725:
8427
0
    YYDEBUG(725, *YYCURSOR);
8428
0
    yyaccept = 68;
8429
0
    yych = *(YYMARKER = ++YYCURSOR);
8430
0
    if (yybm[256+yych] & 128) {
8431
0
      goto yy47;
8432
0
    }
8433
0
    if (yych == '\\') goto yy164;
8434
0
yy726:
8435
0
    YYDEBUG(726, *YYCURSOR);
8436
0
    yyleng = YYCURSOR - SCNG(yy_text);
8437
0
#line 1770 "Zend/zend_language_scanner.l"
8438
0
    {
8439
0
  RETURN_TOKEN_WITH_IDENT(T_ABSTRACT);
8440
0
}
8441
0
#line 8442 "Zend/zend_language_scanner.c"
8442
720
yy727:
8443
720
    YYDEBUG(727, *YYCURSOR);
8444
720
    yyaccept = 69;
8445
720
    yych = *(YYMARKER = ++YYCURSOR);
8446
720
    if (yybm[256+yych] & 128) {
8447
0
      goto yy47;
8448
0
    }
8449
720
    if (yych == '\\') goto yy164;
8450
720
yy728:
8451
720
    YYDEBUG(728, *YYCURSOR);
8452
720
    yyleng = YYCURSOR - SCNG(yy_text);
8453
720
#line 1822 "Zend/zend_language_scanner.l"
8454
720
    {
8455
720
  RETURN_TOKEN_WITH_IDENT(T_CALLABLE);
8456
720
}
8457
0
#line 8458 "Zend/zend_language_scanner.c"
8458
0
yy729:
8459
0
    YYDEBUG(729, *YYCURSOR);
8460
0
    yyaccept = 70;
8461
0
    yych = *(YYMARKER = ++YYCURSOR);
8462
0
    if (yybm[256+yych] & 128) {
8463
0
      goto yy47;
8464
0
    }
8465
0
    if (yych == '\\') goto yy164;
8466
0
yy730:
8467
0
    YYDEBUG(730, *YYCURSOR);
8468
0
    yyleng = YYCURSOR - SCNG(yy_text);
8469
0
#line 1538 "Zend/zend_language_scanner.l"
8470
0
    {
8471
0
  RETURN_TOKEN_WITH_IDENT(T_CONTINUE);
8472
0
}
8473
0
#line 8474 "Zend/zend_language_scanner.c"
8474
0
yy731:
8475
0
    YYDEBUG(731, *YYCURSOR);
8476
0
    yyaccept = 4;
8477
0
    yych = *(YYMARKER = ++YYCURSOR);
8478
0
    if (yych == 'R') goto yy781;
8479
0
    if (yych == 'r') goto yy781;
8480
0
    goto yy48;
8481
0
yy732:
8482
0
    YYDEBUG(732, *YYCURSOR);
8483
0
    yyaccept = 4;
8484
0
    yych = *(YYMARKER = ++YYCURSOR);
8485
0
    if (yych == 'C') goto yy782;
8486
0
    if (yych == 'c') goto yy782;
8487
0
    goto yy48;
8488
0
yy733:
8489
0
    YYDEBUG(733, *YYCURSOR);
8490
0
    yyaccept = 4;
8491
0
    yych = *(YYMARKER = ++YYCURSOR);
8492
0
    if (yych == 'H') goto yy783;
8493
0
    if (yych == 'h') goto yy783;
8494
0
    goto yy48;
8495
276
yy734:
8496
276
    YYDEBUG(734, *YYCURSOR);
8497
276
    yyaccept = 71;
8498
276
    yych = *(YYMARKER = ++YYCURSOR);
8499
276
    if (yybm[256+yych] & 128) {
8500
0
      goto yy47;
8501
0
    }
8502
276
    if (yych == '\\') goto yy164;
8503
276
yy735:
8504
276
    YYDEBUG(735, *YYCURSOR);
8505
276
    yyleng = YYCURSOR - SCNG(yy_text);
8506
276
#line 1474 "Zend/zend_language_scanner.l"
8507
276
    {
8508
276
  RETURN_TOKEN_WITH_IDENT(T_ENDWHILE);
8509
276
}
8510
0
#line 8511 "Zend/zend_language_scanner.c"
8511
0
yy736:
8512
0
    YYDEBUG(736, *YYCURSOR);
8513
0
    yych = *++YYCURSOR;
8514
0
    if (yych == 'E') goto yy785;
8515
0
    if (yych == 'e') goto yy785;
8516
0
    goto yy86;
8517
0
yy737:
8518
0
    YYDEBUG(737, *YYCURSOR);
8519
0
    yych = *++YYCURSOR;
8520
0
    if (yych == 'L') goto yy786;
8521
0
    if (yych == 'l') goto yy786;
8522
0
    goto yy86;
8523
40.0k
yy738:
8524
40.0k
    YYDEBUG(738, *YYCURSOR);
8525
40.0k
    ++YYCURSOR;
8526
40.0k
    YYFILL(1);
8527
40.0k
    yych = *YYCURSOR;
8528
40.0k
    YYDEBUG(739, *YYCURSOR);
8529
40.0k
    if (yych <= '\f') {
8530
2.60k
      if (yych <= 0x00) goto yy86;
8531
2.45k
      if (yych == '\n') goto yy787;
8532
147
      goto yy738;
8533
37.4k
    } else {
8534
37.4k
      if (yych <= '\r') goto yy787;
8535
36.6k
      if (yych == '*') goto yy789;
8536
36.6k
      goto yy738;
8537
36.6k
    }
8538
189
yy740:
8539
189
    YYDEBUG(740, *YYCURSOR);
8540
189
    ++YYCURSOR;
8541
189
    YYFILL(1);
8542
189
    yych = *YYCURSOR;
8543
189
    if (yych <= '\r') {
8544
0
      if (yych <= '\t') {
8545
0
        if (yych <= 0x00) goto yy86;
8546
0
        goto yy586;
8547
0
      } else {
8548
0
        if (yych <= '\n') goto yy495;
8549
0
        if (yych <= '\f') goto yy586;
8550
0
        goto yy495;
8551
0
      }
8552
189
    } else {
8553
189
      if (yych <= 'T') {
8554
189
        if (yych <= 'S') goto yy586;
8555
0
        goto yy791;
8556
189
      } else {
8557
0
        if (yych == 't') goto yy791;
8558
0
        goto yy586;
8559
0
      }
8560
189
    }
8561
1.10k
yy741:
8562
1.10k
    YYDEBUG(741, *YYCURSOR);
8563
1.10k
    ++YYCURSOR;
8564
1.10k
    YYFILL(1);
8565
1.10k
    yych = *YYCURSOR;
8566
1.10k
    if (yych <= '\r') {
8567
0
      if (yych <= '\t') {
8568
0
        if (yych <= 0x00) goto yy86;
8569
0
        goto yy586;
8570
0
      } else {
8571
0
        if (yych <= '\n') goto yy495;
8572
0
        if (yych <= '\f') goto yy586;
8573
0
        goto yy495;
8574
0
      }
8575
1.10k
    } else {
8576
1.10k
      if (yych <= 'P') {
8577
2
        if (yych <= 'O') goto yy586;
8578
0
        goto yy792;
8579
1.10k
      } else {
8580
1.10k
        if (yych == 'p') goto yy792;
8581
0
        goto yy586;
8582
1.10k
      }
8583
1.10k
    }
8584
2.10k
yy742:
8585
2.10k
    YYDEBUG(742, *YYCURSOR);
8586
2.10k
    yyaccept = 72;
8587
2.10k
    yych = *(YYMARKER = ++YYCURSOR);
8588
2.10k
    if (yybm[256+yych] & 128) {
8589
0
      goto yy47;
8590
0
    }
8591
2.10k
    if (yych == '\\') goto yy164;
8592
2.10k
yy743:
8593
2.10k
    YYDEBUG(743, *YYCURSOR);
8594
2.10k
    yyleng = YYCURSOR - SCNG(yy_text);
8595
2.10k
#line 1411 "Zend/zend_language_scanner.l"
8596
2.10k
    {
8597
2.10k
  RETURN_TOKEN_WITH_IDENT(T_FUNCTION);
8598
2.10k
}
8599
0
#line 8600 "Zend/zend_language_scanner.c"
8600
0
yy744:
8601
0
    YYDEBUG(744, *YYCURSOR);
8602
0
    yyaccept = 4;
8603
0
    yych = *(YYMARKER = ++YYCURSOR);
8604
0
    if (yych == 'T') goto yy793;
8605
0
    if (yych == 't') goto yy793;
8606
0
    goto yy48;
8607
0
yy745:
8608
0
    YYDEBUG(745, *YYCURSOR);
8609
0
    yyaccept = 4;
8610
0
    yych = *(YYMARKER = ++YYCURSOR);
8611
0
    if (yych == 'O') goto yy794;
8612
0
    if (yych == 'o') goto yy794;
8613
0
    goto yy48;
8614
0
yy746:
8615
0
    YYDEBUG(746, *YYCURSOR);
8616
0
    yyaccept = 4;
8617
0
    yych = *(YYMARKER = ++YYCURSOR);
8618
0
    if (yych == 'O') goto yy795;
8619
0
    if (yych == 'o') goto yy795;
8620
0
    goto yy48;
8621
0
yy747:
8622
0
    YYDEBUG(747, *YYCURSOR);
8623
0
    yyaccept = 4;
8624
0
    yych = *(YYMARKER = ++YYCURSOR);
8625
0
    if (yych == 'F') goto yy796;
8626
0
    if (yych == 'f') goto yy796;
8627
0
    goto yy48;
8628
0
yy748:
8629
0
    YYDEBUG(748, *YYCURSOR);
8630
0
    yyaccept = 4;
8631
0
    yych = *(YYMARKER = ++YYCURSOR);
8632
0
    if (yych == 'E') goto yy798;
8633
0
    if (yych == 'e') goto yy798;
8634
0
    goto yy48;
8635
0
yy749:
8636
0
    YYDEBUG(749, *YYCURSOR);
8637
0
    yyaccept = 4;
8638
0
    yych = *(YYMARKER = ++YYCURSOR);
8639
0
    if (yych == 'E') goto yy800;
8640
0
    if (yych == 'e') goto yy800;
8641
0
    goto yy48;
8642
0
yy750:
8643
0
    YYDEBUG(750, *YYCURSOR);
8644
0
    yych = *++YYCURSOR;
8645
0
    if (yych == 'S') goto yy802;
8646
0
    if (yych == 's') goto yy802;
8647
0
    goto yy86;
8648
45
yy751:
8649
45
    YYDEBUG(751, *YYCURSOR);
8650
45
    yyaccept = 4;
8651
45
    yych = *(YYMARKER = ++YYCURSOR);
8652
45
    if (yych == 'D') goto yy803;
8653
45
    if (yych == 'd') goto yy803;
8654
0
    goto yy48;
8655
0
yy752:
8656
0
    YYDEBUG(752, *YYCURSOR);
8657
0
    yych = *++YYCURSOR;
8658
0
    if (yych == 'E') goto yy805;
8659
0
    if (yych == 'e') goto yy805;
8660
0
    goto yy86;
8661
0
yy753:
8662
0
    YYDEBUG(753, *YYCURSOR);
8663
0
    yyaccept = 73;
8664
0
    yych = *(YYMARKER = ++YYCURSOR);
8665
0
    if (yybm[256+yych] & 128) {
8666
0
      goto yy47;
8667
0
    }
8668
0
    if (yych == '\\') goto yy164;
8669
0
yy754:
8670
0
    YYDEBUG(754, *YYCURSOR);
8671
0
    yyleng = YYCURSOR - SCNG(yy_text);
8672
0
#line 1802 "Zend/zend_language_scanner.l"
8673
0
    {
8674
0
  RETURN_TOKEN_WITH_IDENT(T_READONLY);
8675
0
}
8676
0
#line 8677 "Zend/zend_language_scanner.c"
8677
0
yy755:
8678
0
    YYDEBUG(755, *YYCURSOR);
8679
0
    yyaccept = 4;
8680
0
    yych = *(YYMARKER = ++YYCURSOR);
8681
0
    if (yych == 'O') goto yy806;
8682
0
    if (yych == 'o') goto yy806;
8683
0
    goto yy48;
8684
0
yy756:
8685
0
    YYDEBUG(756, *YYCURSOR);
8686
0
    yych = *++YYCURSOR;
8687
0
    if (yych == 'O') goto yy807;
8688
0
    if (yych == 'o') goto yy807;
8689
0
    goto yy86;
8690
0
yy757:
8691
0
    YYDEBUG(757, *YYCURSOR);
8692
0
    ++YYCURSOR;
8693
0
    YYFILL(1);
8694
0
    yych = *YYCURSOR;
8695
0
    if (yych <= '\n') {
8696
0
      if (yych <= 0x00) goto yy86;
8697
0
      if (yych <= '\t') goto yy692;
8698
0
      goto yy694;
8699
0
    } else {
8700
0
      if (yych == '\r') goto yy694;
8701
0
      goto yy692;
8702
0
    }
8703
0
yy758:
8704
0
    YYDEBUG(758, *YYCURSOR);
8705
0
    ++YYCURSOR;
8706
0
    YYFILL(1);
8707
0
    yych = *YYCURSOR;
8708
0
    if (yych <= '\f') {
8709
0
      if (yych <= 0x00) goto yy86;
8710
0
      if (yych == '\n') goto yy616;
8711
0
      goto yy692;
8712
0
    } else {
8713
0
      if (yych <= '\r') goto yy616;
8714
0
      if (yych == '*') goto yy808;
8715
0
      goto yy692;
8716
0
    }
8717
0
yy759:
8718
0
    YYDEBUG(759, *YYCURSOR);
8719
0
    ++YYCURSOR;
8720
0
    YYFILL(1);
8721
0
    yych = *YYCURSOR;
8722
0
    if (yych <= '\r') {
8723
0
      if (yych <= '\t') {
8724
0
        if (yych <= 0x00) goto yy86;
8725
0
        goto yy692;
8726
0
      } else {
8727
0
        if (yych <= '\n') goto yy616;
8728
0
        if (yych <= '\f') goto yy692;
8729
0
        goto yy616;
8730
0
      }
8731
0
    } else {
8732
0
      if (yych <= 'R') {
8733
0
        if (yych <= 'Q') goto yy692;
8734
0
        goto yy810;
8735
0
      } else {
8736
0
        if (yych == 'r') goto yy810;
8737
0
        goto yy692;
8738
0
      }
8739
0
    }
8740
0
yy760:
8741
0
    YYDEBUG(760, *YYCURSOR);
8742
0
    ++YYCURSOR;
8743
0
    YYFILL(1);
8744
0
    yych = *YYCURSOR;
8745
0
    YYDEBUG(761, *YYCURSOR);
8746
0
    if (yych <= '*') {
8747
0
      if (yych <= 0x00) goto yy86;
8748
0
      if (yych <= ')') goto yy696;
8749
0
      goto yy760;
8750
0
    } else {
8751
0
      if (yych == '/') goto yy616;
8752
0
      goto yy696;
8753
0
    }
8754
0
yy762:
8755
0
    YYDEBUG(762, *YYCURSOR);
8756
0
    yyaccept = 4;
8757
0
    yych = *(YYMARKER = ++YYCURSOR);
8758
0
    if (yych == '_') goto yy811;
8759
0
    goto yy48;
8760
8
yy763:
8761
8
    YYDEBUG(763, *YYCURSOR);
8762
8
    yyaccept = 74;
8763
8
    yych = *(YYMARKER = ++YYCURSOR);
8764
8
    if (yybm[256+yych] & 128) {
8765
0
      goto yy47;
8766
0
    }
8767
8
    if (yych == '\\') goto yy164;
8768
8
yy764:
8769
8
    YYDEBUG(764, *YYCURSOR);
8770
8
    yyleng = YYCURSOR - SCNG(yy_text);
8771
8
#line 2277 "Zend/zend_language_scanner.l"
8772
8
    {
8773
8
  RETURN_TOKEN_WITH_IDENT(T_FILE);
8774
8
}
8775
0
#line 8776 "Zend/zend_language_scanner.c"
8776
0
yy765:
8777
0
    YYDEBUG(765, *YYCURSOR);
8778
0
    yyaccept = 4;
8779
0
    yych = *(YYMARKER = ++YYCURSOR);
8780
0
    if (yych == 'O') goto yy813;
8781
0
    if (yych == 'o') goto yy813;
8782
0
    goto yy48;
8783
0
yy766:
8784
0
    YYDEBUG(766, *YYCURSOR);
8785
0
    yyaccept = 4;
8786
0
    yych = *(YYMARKER = ++YYCURSOR);
8787
0
    if (yych == 'O') goto yy814;
8788
0
    if (yych == 'o') goto yy814;
8789
0
    goto yy48;
8790
33
yy767:
8791
33
    YYDEBUG(767, *YYCURSOR);
8792
33
    yyaccept = 75;
8793
33
    yych = *(YYMARKER = ++YYCURSOR);
8794
33
    if (yybm[256+yych] & 128) {
8795
0
      goto yy47;
8796
0
    }
8797
33
    if (yych == '\\') goto yy164;
8798
33
yy768:
8799
33
    YYDEBUG(768, *YYCURSOR);
8800
33
    yyleng = YYCURSOR - SCNG(yy_text);
8801
33
#line 2273 "Zend/zend_language_scanner.l"
8802
33
    {
8803
33
  RETURN_TOKEN_WITH_IDENT(T_LINE);
8804
33
}
8805
0
#line 8806 "Zend/zend_language_scanner.c"
8806
189
yy769:
8807
189
    YYDEBUG(769, *YYCURSOR);
8808
189
    yyaccept = 4;
8809
189
    yych = *(YYMARKER = ++YYCURSOR);
8810
189
    if (yych == '_') goto yy815;
8811
0
    goto yy48;
8812
1
yy770:
8813
1
    YYDEBUG(770, *YYCURSOR);
8814
1
    yyaccept = 4;
8815
1
    yych = *(YYMARKER = ++YYCURSOR);
8816
1
    if (yych == 'A') goto yy816;
8817
0
    if (yych == 'a') goto yy816;
8818
0
    goto yy48;
8819
0
yy771:
8820
0
    YYDEBUG(771, *YYCURSOR);
8821
0
    yyaccept = 4;
8822
0
    yych = *(YYMARKER = ++YYCURSOR);
8823
0
    if (yych == 'T') goto yy817;
8824
0
    if (yych == 't') goto yy817;
8825
0
    goto yy48;
8826
0
yy772:
8827
0
    YYDEBUG(772, *YYCURSOR);
8828
0
    yyaccept = 4;
8829
0
    yych = *(YYMARKER = ++YYCURSOR);
8830
0
    if (yych == '_') goto yy818;
8831
0
    goto yy48;
8832
0
yy773:
8833
0
    YYDEBUG(773, *YYCURSOR);
8834
0
    ++YYCURSOR;
8835
0
    YYFILL(1);
8836
0
    yych = *YYCURSOR;
8837
0
    if (yybm[0+yych] & 128) {
8838
0
      goto yy443;
8839
0
    }
8840
0
    if (yych <= 0x00) goto yy86;
8841
0
    if (yych <= '\r') goto yy709;
8842
0
    goto yy547;
8843
0
yy774:
8844
0
    YYDEBUG(774, *YYCURSOR);
8845
0
    yyaccept = 26;
8846
0
    YYMARKER = ++YYCURSOR;
8847
0
    YYFILL(1);
8848
0
    yych = *YYCURSOR;
8849
0
    if (yybm[0+yych] & 128) {
8850
0
      goto yy443;
8851
0
    }
8852
0
    if (yych <= 0x00) goto yy89;
8853
0
    if (yych <= '\r') goto yy545;
8854
0
    goto yy547;
8855
0
yy775:
8856
0
    YYDEBUG(775, *YYCURSOR);
8857
0
    ++YYCURSOR;
8858
0
    YYFILL(1);
8859
0
    yych = *YYCURSOR;
8860
0
    if (yych <= '\r') {
8861
0
      if (yych <= '\t') {
8862
0
        if (yych <= 0x00) goto yy86;
8863
0
        goto yy443;
8864
0
      } else {
8865
0
        if (yych <= '\n') goto yy545;
8866
0
        if (yych <= '\f') goto yy443;
8867
0
        goto yy545;
8868
0
      }
8869
0
    } else {
8870
0
      if (yych <= '*') {
8871
0
        if (yych <= ')') goto yy443;
8872
0
        goto yy547;
8873
0
      } else {
8874
0
        if (yych == '.') goto yy820;
8875
0
        goto yy443;
8876
0
      }
8877
0
    }
8878
0
yy776:
8879
0
    YYDEBUG(776, *YYCURSOR);
8880
0
    ++YYCURSOR;
8881
0
    YYFILL(1);
8882
0
    yych = *YYCURSOR;
8883
0
    if (yybm[0+yych] & 128) {
8884
0
      goto yy443;
8885
0
    }
8886
0
    if (yych <= 0x00) goto yy86;
8887
0
    if (yych <= '\r') goto yy545;
8888
0
    goto yy821;
8889
0
yy777:
8890
0
    YYDEBUG(777, *YYCURSOR);
8891
0
    ++YYCURSOR;
8892
0
    YYDEBUG(778, *YYCURSOR);
8893
0
    yyleng = YYCURSOR - SCNG(yy_text);
8894
0
#line 1700 "Zend/zend_language_scanner.l"
8895
0
    {
8896
0
  if (PARSER_MODE()) {
8897
0
    zend_error(E_DEPRECATED, "Non-canonical cast (boolean) is deprecated, use the (bool) cast instead");
8898
0
    if (EG(exception)) {
8899
0
      RETURN_TOKEN(T_ERROR);
8900
0
    }
8901
0
  }
8902
0
  RETURN_TOKEN(T_BOOL_CAST);
8903
0
}
8904
0
#line 8905 "Zend/zend_language_scanner.c"
8905
0
yy779:
8906
0
    YYDEBUG(779, *YYCURSOR);
8907
0
    ++YYCURSOR;
8908
0
    YYDEBUG(780, *YYCURSOR);
8909
0
    yyleng = YYCURSOR - SCNG(yy_text);
8910
0
#line 1642 "Zend/zend_language_scanner.l"
8911
0
    {
8912
0
  if (PARSER_MODE()) {
8913
0
    zend_error(E_DEPRECATED, "Non-canonical cast (integer) is deprecated, use the (int) cast instead");
8914
0
    if (EG(exception)) {
8915
0
      RETURN_TOKEN(T_ERROR);
8916
0
    }
8917
0
  }
8918
0
  RETURN_TOKEN(T_INT_CAST);
8919
0
}
8920
0
#line 8921 "Zend/zend_language_scanner.c"
8921
0
yy781:
8922
0
    YYDEBUG(781, *YYCURSOR);
8923
0
    yyaccept = 4;
8924
0
    yych = *(YYMARKER = ++YYCURSOR);
8925
0
    if (yych == 'E') goto yy822;
8926
0
    if (yych == 'e') goto yy822;
8927
0
    goto yy48;
8928
0
yy782:
8929
0
    YYDEBUG(782, *YYCURSOR);
8930
0
    yyaccept = 4;
8931
0
    yych = *(YYMARKER = ++YYCURSOR);
8932
0
    if (yych == 'H') goto yy824;
8933
0
    if (yych == 'h') goto yy824;
8934
0
    goto yy48;
8935
0
yy783:
8936
0
    YYDEBUG(783, *YYCURSOR);
8937
0
    yyaccept = 76;
8938
0
    yych = *(YYMARKER = ++YYCURSOR);
8939
0
    if (yybm[256+yych] & 128) {
8940
0
      goto yy47;
8941
0
    }
8942
0
    if (yych == '\\') goto yy164;
8943
0
yy784:
8944
0
    YYDEBUG(784, *YYCURSOR);
8945
0
    yyleng = YYCURSOR - SCNG(yy_text);
8946
0
#line 1522 "Zend/zend_language_scanner.l"
8947
0
    {
8948
0
  RETURN_TOKEN_WITH_IDENT(T_ENDSWITCH);
8949
0
}
8950
0
#line 8951 "Zend/zend_language_scanner.c"
8951
0
yy785:
8952
0
    YYDEBUG(785, *YYCURSOR);
8953
0
    yych = *++YYCURSOR;
8954
0
    if (yych == 'N') goto yy826;
8955
0
    if (yych == 'n') goto yy826;
8956
0
    goto yy86;
8957
0
yy786:
8958
0
    YYDEBUG(786, *YYCURSOR);
8959
0
    yych = *++YYCURSOR;
8960
0
    if (yych == 'E') goto yy827;
8961
0
    if (yych == 'e') goto yy827;
8962
0
    goto yy86;
8963
3.03k
yy787:
8964
3.03k
    YYDEBUG(787, *YYCURSOR);
8965
3.03k
    ++YYCURSOR;
8966
3.03k
    YYFILL(1);
8967
3.03k
    yych = *YYCURSOR;
8968
3.03k
    YYDEBUG(788, *YYCURSOR);
8969
3.03k
    if (yych <= '@') {
8970
1.95k
      if (yych <= ' ') {
8971
0
        if (yych <= '\n') {
8972
0
          if (yych <= 0x00) goto yy86;
8973
0
          if (yych <= 0x08) goto yy590;
8974
0
          goto yy787;
8975
0
        } else {
8976
0
          if (yych == '\r') goto yy787;
8977
0
          if (yych <= 0x1F) goto yy590;
8978
0
          goto yy787;
8979
0
        }
8980
1.95k
      } else {
8981
1.95k
        if (yych <= ')') {
8982
1.95k
          if (yych == '#') goto yy828;
8983
0
          goto yy590;
8984
1.95k
        } else {
8985
0
          if (yych <= '*') goto yy668;
8986
0
          if (yych == '/') goto yy829;
8987
0
          goto yy590;
8988
0
        }
8989
1.95k
      }
8990
1.95k
    } else {
8991
1.08k
      if (yych <= '_') {
8992
0
        if (yych <= 'H') {
8993
0
          if (yych == 'E') goto yy831;
8994
0
          goto yy830;
8995
0
        } else {
8996
0
          if (yych <= 'I') goto yy832;
8997
0
          if (yych <= 'Z') goto yy830;
8998
0
          if (yych <= '^') goto yy590;
8999
0
          goto yy830;
9000
0
        }
9001
1.08k
      } else {
9002
1.08k
        if (yych <= 'h') {
9003
0
          if (yych <= '`') goto yy590;
9004
0
          if (yych == 'e') goto yy831;
9005
0
          goto yy830;
9006
1.08k
        } else {
9007
1.08k
          if (yych <= 'i') goto yy832;
9008
0
          if (yych <= 'z') goto yy830;
9009
0
          if (yych <= 0x7F) goto yy590;
9010
0
          goto yy830;
9011
0
        }
9012
1.08k
      }
9013
1.08k
    }
9014
722
yy789:
9015
722
    YYDEBUG(789, *YYCURSOR);
9016
722
    ++YYCURSOR;
9017
722
    YYFILL(1);
9018
722
    yych = *YYCURSOR;
9019
722
    YYDEBUG(790, *YYCURSOR);
9020
722
    if (yych <= '\r') {
9021
0
      if (yych <= '\t') {
9022
0
        if (yych <= 0x00) goto yy86;
9023
0
        goto yy738;
9024
0
      } else {
9025
0
        if (yych <= '\n') goto yy787;
9026
0
        if (yych <= '\f') goto yy738;
9027
0
        goto yy787;
9028
0
      }
9029
722
    } else {
9030
722
      if (yych <= '*') {
9031
0
        if (yych <= ')') goto yy738;
9032
0
        goto yy789;
9033
722
      } else {
9034
722
        if (yych == '/') goto yy588;
9035
0
        goto yy738;
9036
722
      }
9037
722
    }
9038
0
yy791:
9039
0
    YYDEBUG(791, *YYCURSOR);
9040
0
    ++YYCURSOR;
9041
0
    YYFILL(1);
9042
0
    yych = *YYCURSOR;
9043
0
    if (yych <= '\r') {
9044
0
      if (yych <= '\t') {
9045
0
        if (yych <= 0x00) goto yy86;
9046
0
        goto yy586;
9047
0
      } else {
9048
0
        if (yych <= '\n') goto yy495;
9049
0
        if (yych <= '\f') goto yy586;
9050
0
        goto yy495;
9051
0
      }
9052
0
    } else {
9053
0
      if (yych <= 'E') {
9054
0
        if (yych <= 'D') goto yy586;
9055
0
        goto yy833;
9056
0
      } else {
9057
0
        if (yych == 'e') goto yy833;
9058
0
        goto yy586;
9059
0
      }
9060
0
    }
9061
1.10k
yy792:
9062
1.10k
    YYDEBUG(792, *YYCURSOR);
9063
1.10k
    ++YYCURSOR;
9064
1.10k
    YYFILL(1);
9065
1.10k
    yych = *YYCURSOR;
9066
1.10k
    if (yych <= '\r') {
9067
0
      if (yych <= '\t') {
9068
0
        if (yych <= 0x00) goto yy86;
9069
0
        goto yy586;
9070
0
      } else {
9071
0
        if (yych <= '\n') goto yy495;
9072
0
        if (yych <= '\f') goto yy586;
9073
0
        goto yy495;
9074
0
      }
9075
1.10k
    } else {
9076
1.10k
      if (yych <= 'L') {
9077
264
        if (yych <= 'K') goto yy586;
9078
0
        goto yy834;
9079
840
      } else {
9080
840
        if (yych == 'l') goto yy834;
9081
0
        goto yy586;
9082
840
      }
9083
1.10k
    }
9084
0
yy793:
9085
0
    YYDEBUG(793, *YYCURSOR);
9086
0
    yyaccept = 4;
9087
0
    yych = *(YYMARKER = ++YYCURSOR);
9088
0
    if (yych == 'S') goto yy835;
9089
0
    if (yych == 's') goto yy835;
9090
0
    goto yy48;
9091
0
yy794:
9092
0
    YYDEBUG(794, *YYCURSOR);
9093
0
    yyaccept = 4;
9094
0
    yych = *(YYMARKER = ++YYCURSOR);
9095
0
    if (yych == 'N') goto yy837;
9096
0
    if (yych == 'n') goto yy837;
9097
0
    goto yy48;
9098
0
yy795:
9099
0
    YYDEBUG(795, *YYCURSOR);
9100
0
    yyaccept = 4;
9101
0
    yych = *(YYMARKER = ++YYCURSOR);
9102
0
    if (yych == 'F') goto yy838;
9103
0
    if (yych == 'f') goto yy838;
9104
0
    goto yy48;
9105
0
yy796:
9106
0
    YYDEBUG(796, *YYCURSOR);
9107
0
    yyaccept = 77;
9108
0
    yych = *(YYMARKER = ++YYCURSOR);
9109
0
    if (yybm[256+yych] & 128) {
9110
0
      goto yy47;
9111
0
    }
9112
0
    if (yych == '\\') goto yy164;
9113
0
yy797:
9114
0
    YYDEBUG(797, *YYCURSOR);
9115
0
    yyleng = YYCURSOR - SCNG(yy_text);
9116
0
#line 1746 "Zend/zend_language_scanner.l"
9117
0
    {
9118
0
    RETURN_TOKEN_WITH_IDENT(T_INSTEADOF);
9119
0
}
9120
0
#line 9121 "Zend/zend_language_scanner.c"
9121
0
yy798:
9122
0
    YYDEBUG(798, *YYCURSOR);
9123
0
    yyaccept = 78;
9124
0
    yych = *(YYMARKER = ++YYCURSOR);
9125
0
    if (yybm[256+yych] & 128) {
9126
0
      goto yy47;
9127
0
    }
9128
0
    if (yych == '\\') goto yy164;
9129
0
yy799:
9130
0
    YYDEBUG(799, *YYCURSOR);
9131
0
    yyleng = YYCURSOR - SCNG(yy_text);
9132
0
#line 1558 "Zend/zend_language_scanner.l"
9133
0
    {
9134
0
  RETURN_TOKEN_WITH_IDENT(T_INTERFACE);
9135
0
}
9136
0
#line 9137 "Zend/zend_language_scanner.c"
9137
0
yy800:
9138
0
    YYDEBUG(800, *YYCURSOR);
9139
0
    yyaccept = 79;
9140
0
    yych = *(YYMARKER = ++YYCURSOR);
9141
0
    if (yybm[256+yych] & 128) {
9142
0
      goto yy47;
9143
0
    }
9144
0
    if (yych == '\\') goto yy840;
9145
0
yy801:
9146
0
    YYDEBUG(801, *YYCURSOR);
9147
0
    yyleng = YYCURSOR - SCNG(yy_text);
9148
0
#line 1738 "Zend/zend_language_scanner.l"
9149
0
    {
9150
0
  RETURN_TOKEN_WITH_IDENT(T_NAMESPACE);
9151
0
}
9152
0
#line 9153 "Zend/zend_language_scanner.c"
9153
0
yy802:
9154
0
    YYDEBUG(802, *YYCURSOR);
9155
0
    yych = *++YYCURSOR;
9156
0
    if (yych == 'E') goto yy841;
9157
0
    if (yych == 'e') goto yy841;
9158
0
    goto yy86;
9159
45
yy803:
9160
45
    YYDEBUG(803, *YYCURSOR);
9161
45
    yyaccept = 80;
9162
45
    yych = *(YYMARKER = ++YYCURSOR);
9163
45
    if (yybm[256+yych] & 128) {
9164
0
      goto yy47;
9165
0
    }
9166
45
    if (yych == '(') goto yy842;
9167
45
    if (yych == '\\') goto yy164;
9168
45
yy804:
9169
45
    YYDEBUG(804, *YYCURSOR);
9170
45
    yyleng = YYCURSOR - SCNG(yy_text);
9171
45
#line 1782 "Zend/zend_language_scanner.l"
9172
45
    {
9173
45
  RETURN_TOKEN_WITH_IDENT(T_PROTECTED);
9174
45
}
9175
0
#line 9176 "Zend/zend_language_scanner.c"
9176
0
yy805:
9177
0
    YYDEBUG(805, *YYCURSOR);
9178
0
    yych = *++YYCURSOR;
9179
0
    if (yych == 'T') goto yy843;
9180
0
    if (yych == 't') goto yy843;
9181
0
    goto yy86;
9182
0
yy806:
9183
0
    YYDEBUG(806, *YYCURSOR);
9184
0
    yyaccept = 4;
9185
0
    yych = *(YYMARKER = ++YYCURSOR);
9186
0
    if (yych == 'N') goto yy844;
9187
0
    if (yych == 'n') goto yy844;
9188
0
    goto yy48;
9189
0
yy807:
9190
0
    YYDEBUG(807, *YYCURSOR);
9191
0
    yych = *++YYCURSOR;
9192
0
    if (yych == 'M') goto yy845;
9193
0
    if (yych == 'm') goto yy845;
9194
0
    goto yy86;
9195
0
yy808:
9196
0
    YYDEBUG(808, *YYCURSOR);
9197
0
    ++YYCURSOR;
9198
0
    YYFILL(1);
9199
0
    yych = *YYCURSOR;
9200
0
    YYDEBUG(809, *YYCURSOR);
9201
0
    if (yych <= '\f') {
9202
0
      if (yych <= 0x00) goto yy86;
9203
0
      if (yych == '\n') goto yy846;
9204
0
      goto yy808;
9205
0
    } else {
9206
0
      if (yych <= '\r') goto yy846;
9207
0
      if (yych == '*') goto yy848;
9208
0
      goto yy808;
9209
0
    }
9210
0
yy810:
9211
0
    YYDEBUG(810, *YYCURSOR);
9212
0
    ++YYCURSOR;
9213
0
    YYFILL(1);
9214
0
    yych = *YYCURSOR;
9215
0
    if (yych <= '\r') {
9216
0
      if (yych <= '\t') {
9217
0
        if (yych <= 0x00) goto yy86;
9218
0
        goto yy692;
9219
0
      } else {
9220
0
        if (yych <= '\n') goto yy616;
9221
0
        if (yych <= '\f') goto yy692;
9222
0
        goto yy616;
9223
0
      }
9224
0
    } else {
9225
0
      if (yych <= 'O') {
9226
0
        if (yych <= 'N') goto yy692;
9227
0
        goto yy850;
9228
0
      } else {
9229
0
        if (yych == 'o') goto yy850;
9230
0
        goto yy692;
9231
0
      }
9232
0
    }
9233
0
yy811:
9234
0
    YYDEBUG(811, *YYCURSOR);
9235
0
    yyaccept = 81;
9236
0
    yych = *(YYMARKER = ++YYCURSOR);
9237
0
    if (yybm[256+yych] & 128) {
9238
0
      goto yy47;
9239
0
    }
9240
0
    if (yych == '\\') goto yy164;
9241
0
yy812:
9242
0
    YYDEBUG(812, *YYCURSOR);
9243
0
    yyleng = YYCURSOR - SCNG(yy_text);
9244
0
#line 2253 "Zend/zend_language_scanner.l"
9245
0
    {
9246
0
  RETURN_TOKEN_WITH_IDENT(T_CLASS_C);
9247
0
}
9248
0
#line 9249 "Zend/zend_language_scanner.c"
9249
0
yy813:
9250
0
    YYDEBUG(813, *YYCURSOR);
9251
0
    yyaccept = 4;
9252
0
    yych = *(YYMARKER = ++YYCURSOR);
9253
0
    if (yych == 'N') goto yy851;
9254
0
    if (yych == 'n') goto yy851;
9255
0
    goto yy48;
9256
0
yy814:
9257
0
    YYDEBUG(814, *YYCURSOR);
9258
0
    yyaccept = 4;
9259
0
    yych = *(YYMARKER = ++YYCURSOR);
9260
0
    if (yych == 'M') goto yy852;
9261
0
    if (yych == 'm') goto yy852;
9262
0
    goto yy48;
9263
189
yy815:
9264
189
    YYDEBUG(815, *YYCURSOR);
9265
189
    yyaccept = 4;
9266
189
    yych = *(YYMARKER = ++YYCURSOR);
9267
189
    if (yych == '_') goto yy853;
9268
0
    goto yy48;
9269
1
yy816:
9270
1
    YYDEBUG(816, *YYCURSOR);
9271
1
    yyaccept = 4;
9272
1
    yych = *(YYMARKER = ++YYCURSOR);
9273
1
    if (yych == 'C') goto yy855;
9274
0
    if (yych == 'c') goto yy855;
9275
0
    goto yy48;
9276
0
yy817:
9277
0
    YYDEBUG(817, *YYCURSOR);
9278
0
    yyaccept = 4;
9279
0
    yych = *(YYMARKER = ++YYCURSOR);
9280
0
    if (yych == 'Y') goto yy856;
9281
0
    if (yych == 'y') goto yy856;
9282
0
    goto yy48;
9283
0
yy818:
9284
0
    YYDEBUG(818, *YYCURSOR);
9285
0
    yyaccept = 82;
9286
0
    yych = *(YYMARKER = ++YYCURSOR);
9287
0
    if (yybm[256+yych] & 128) {
9288
0
      goto yy47;
9289
0
    }
9290
0
    if (yych == '\\') goto yy164;
9291
0
yy819:
9292
0
    YYDEBUG(819, *YYCURSOR);
9293
0
    yyleng = YYCURSOR - SCNG(yy_text);
9294
0
#line 2257 "Zend/zend_language_scanner.l"
9295
0
    {
9296
0
  RETURN_TOKEN_WITH_IDENT(T_TRAIT_C);
9297
0
}
9298
0
#line 9299 "Zend/zend_language_scanner.c"
9299
0
yy820:
9300
0
    YYDEBUG(820, *YYCURSOR);
9301
0
    ++YYCURSOR;
9302
0
    YYFILL(1);
9303
0
    yych = *YYCURSOR;
9304
0
    if (yych <= '\r') {
9305
0
      if (yych <= '\t') {
9306
0
        if (yych <= 0x00) goto yy86;
9307
0
        goto yy443;
9308
0
      } else {
9309
0
        if (yych <= '\n') goto yy545;
9310
0
        if (yych <= '\f') goto yy443;
9311
0
        goto yy545;
9312
0
      }
9313
0
    } else {
9314
0
      if (yych <= '*') {
9315
0
        if (yych <= ')') goto yy443;
9316
0
        goto yy547;
9317
0
      } else {
9318
0
        if (yych == '.') goto yy774;
9319
0
        goto yy443;
9320
0
      }
9321
0
    }
9322
0
yy821:
9323
0
    YYDEBUG(821, *YYCURSOR);
9324
0
    ++YYCURSOR;
9325
0
    YYFILL(1);
9326
0
    yych = *YYCURSOR;
9327
0
    if (yych <= '\r') {
9328
0
      if (yych <= '\t') {
9329
0
        if (yych <= 0x00) goto yy86;
9330
0
        goto yy443;
9331
0
      } else {
9332
0
        if (yych <= '\n') goto yy545;
9333
0
        if (yych <= '\f') goto yy443;
9334
0
        goto yy545;
9335
0
      }
9336
0
    } else {
9337
0
      if (yych <= '*') {
9338
0
        if (yych <= ')') goto yy443;
9339
0
        goto yy547;
9340
0
      } else {
9341
0
        if (yych == '/') goto yy709;
9342
0
        goto yy443;
9343
0
      }
9344
0
    }
9345
0
yy822:
9346
0
    YYDEBUG(822, *YYCURSOR);
9347
0
    yyaccept = 83;
9348
0
    yych = *(YYMARKER = ++YYCURSOR);
9349
0
    if (yybm[256+yych] & 128) {
9350
0
      goto yy47;
9351
0
    }
9352
0
    if (yych == '\\') goto yy164;
9353
0
yy823:
9354
0
    YYDEBUG(823, *YYCURSOR);
9355
0
    yyleng = YYCURSOR - SCNG(yy_text);
9356
0
#line 1502 "Zend/zend_language_scanner.l"
9357
0
    {
9358
0
  RETURN_TOKEN_WITH_IDENT(T_ENDDECLARE);
9359
0
}
9360
0
#line 9361 "Zend/zend_language_scanner.c"
9361
0
yy824:
9362
0
    YYDEBUG(824, *YYCURSOR);
9363
0
    yyaccept = 84;
9364
0
    yych = *(YYMARKER = ++YYCURSOR);
9365
0
    if (yybm[256+yych] & 128) {
9366
0
      goto yy47;
9367
0
    }
9368
0
    if (yych == '\\') goto yy164;
9369
0
yy825:
9370
0
    YYDEBUG(825, *YYCURSOR);
9371
0
    yyleng = YYCURSOR - SCNG(yy_text);
9372
0
#line 1494 "Zend/zend_language_scanner.l"
9373
0
    {
9374
0
  RETURN_TOKEN_WITH_IDENT(T_ENDFOREACH);
9375
0
}
9376
0
#line 9377 "Zend/zend_language_scanner.c"
9377
0
yy826:
9378
0
    YYDEBUG(826, *YYCURSOR);
9379
0
    yych = *++YYCURSOR;
9380
0
    if (yych == 'D') goto yy857;
9381
0
    if (yych == 'd') goto yy857;
9382
0
    goto yy86;
9383
0
yy827:
9384
0
    YYDEBUG(827, *YYCURSOR);
9385
0
    yych = *++YYCURSOR;
9386
0
    if (yych == 'M') goto yy858;
9387
0
    if (yych == 'm') goto yy858;
9388
0
    goto yy86;
9389
1.95k
yy828:
9390
1.95k
    YYDEBUG(828, *YYCURSOR);
9391
1.95k
    ++YYCURSOR;
9392
1.95k
    YYFILL(1);
9393
1.95k
    yych = *YYCURSOR;
9394
1.95k
    if (yych <= '\r') {
9395
1.95k
      if (yych <= '\t') {
9396
1.08k
        if (yych <= 0x00) goto yy86;
9397
1.08k
        goto yy738;
9398
1.08k
      } else {
9399
873
        if (yych <= '\n') goto yy859;
9400
2
        if (yych <= '\f') goto yy738;
9401
2
        goto yy859;
9402
2
      }
9403
1.95k
    } else {
9404
0
      if (yych <= '*') {
9405
0
        if (yych <= ')') goto yy738;
9406
0
        goto yy789;
9407
0
      } else {
9408
0
        if (yych == '[') goto yy590;
9409
0
        goto yy738;
9410
0
      }
9411
0
    }
9412
0
yy829:
9413
0
    YYDEBUG(829, *YYCURSOR);
9414
0
    ++YYCURSOR;
9415
0
    YYFILL(1);
9416
0
    yych = *YYCURSOR;
9417
0
    if (yych <= '*') {
9418
0
      if (yych <= 0x00) goto yy86;
9419
0
      if (yych <= ')') goto yy590;
9420
0
      goto yy861;
9421
0
    } else {
9422
0
      if (yych == '/') goto yy738;
9423
0
      goto yy590;
9424
0
    }
9425
0
yy830:
9426
0
    YYDEBUG(830, *YYCURSOR);
9427
0
    yyaccept = 53;
9428
0
    YYMARKER = ++YYCURSOR;
9429
0
    YYFILL(1);
9430
0
    yych = *YYCURSOR;
9431
0
    if (yych <= 0x00) goto yy583;
9432
0
    if (yych == '*') goto yy668;
9433
0
    goto yy590;
9434
0
yy831:
9435
0
    YYDEBUG(831, *YYCURSOR);
9436
0
    yyaccept = 53;
9437
0
    YYMARKER = ++YYCURSOR;
9438
0
    YYFILL(1);
9439
0
    yych = *YYCURSOR;
9440
0
    if (yych <= 'W') {
9441
0
      if (yych <= 0x00) goto yy583;
9442
0
      if (yych == '*') goto yy668;
9443
0
      goto yy590;
9444
0
    } else {
9445
0
      if (yych <= 'X') goto yy862;
9446
0
      if (yych == 'x') goto yy862;
9447
0
      goto yy590;
9448
0
    }
9449
1.08k
yy832:
9450
1.08k
    YYDEBUG(832, *YYCURSOR);
9451
1.08k
    yyaccept = 53;
9452
1.08k
    YYMARKER = ++YYCURSOR;
9453
1.08k
    YYFILL(1);
9454
1.08k
    yych = *YYCURSOR;
9455
1.08k
    if (yych <= 'L') {
9456
0
      if (yych <= 0x00) goto yy583;
9457
0
      if (yych == '*') goto yy668;
9458
0
      goto yy590;
9459
1.08k
    } else {
9460
1.08k
      if (yych <= 'M') goto yy863;
9461
1.08k
      if (yych == 'm') goto yy863;
9462
0
      goto yy590;
9463
1.08k
    }
9464
0
yy833:
9465
0
    YYDEBUG(833, *YYCURSOR);
9466
0
    ++YYCURSOR;
9467
0
    YYFILL(1);
9468
0
    yych = *YYCURSOR;
9469
0
    if (yych <= '\r') {
9470
0
      if (yych <= '\t') {
9471
0
        if (yych <= 0x00) goto yy86;
9472
0
        goto yy586;
9473
0
      } else {
9474
0
        if (yych <= '\n') goto yy495;
9475
0
        if (yych <= '\f') goto yy586;
9476
0
        goto yy495;
9477
0
      }
9478
0
    } else {
9479
0
      if (yych <= 'N') {
9480
0
        if (yych <= 'M') goto yy586;
9481
0
        goto yy864;
9482
0
      } else {
9483
0
        if (yych == 'n') goto yy864;
9484
0
        goto yy586;
9485
0
      }
9486
0
    }
9487
840
yy834:
9488
840
    YYDEBUG(834, *YYCURSOR);
9489
840
    ++YYCURSOR;
9490
840
    YYFILL(1);
9491
840
    yych = *YYCURSOR;
9492
840
    if (yych <= '\r') {
9493
0
      if (yych <= '\t') {
9494
0
        if (yych <= 0x00) goto yy86;
9495
0
        goto yy586;
9496
0
      } else {
9497
0
        if (yych <= '\n') goto yy495;
9498
0
        if (yych <= '\f') goto yy586;
9499
0
        goto yy495;
9500
0
      }
9501
840
    } else {
9502
840
      if (yych <= 'E') {
9503
0
        if (yych <= 'D') goto yy586;
9504
0
        goto yy865;
9505
840
      } else {
9506
840
        if (yych == 'e') goto yy865;
9507
0
        goto yy586;
9508
840
      }
9509
840
    }
9510
0
yy835:
9511
0
    YYDEBUG(835, *YYCURSOR);
9512
0
    yyaccept = 85;
9513
0
    yych = *(YYMARKER = ++YYCURSOR);
9514
0
    if (yybm[256+yych] & 128) {
9515
0
      goto yy47;
9516
0
    }
9517
0
    if (yych == '\\') goto yy164;
9518
0
yy836:
9519
0
    YYDEBUG(836, *YYCURSOR);
9520
0
    yyleng = YYCURSOR - SCNG(yy_text);
9521
0
#line 1583 "Zend/zend_language_scanner.l"
9522
0
    {
9523
0
  RETURN_TOKEN_WITH_IDENT(T_IMPLEMENTS);
9524
0
}
9525
0
#line 9526 "Zend/zend_language_scanner.c"
9526
0
yy837:
9527
0
    YYDEBUG(837, *YYCURSOR);
9528
0
    yyaccept = 4;
9529
0
    yych = *(YYMARKER = ++YYCURSOR);
9530
0
    if (yych == 'C') goto yy866;
9531
0
    if (yych == 'c') goto yy866;
9532
0
    goto yy48;
9533
0
yy838:
9534
0
    YYDEBUG(838, *YYCURSOR);
9535
0
    yyaccept = 86;
9536
0
    yych = *(YYMARKER = ++YYCURSOR);
9537
0
    if (yybm[256+yych] & 128) {
9538
0
      goto yy47;
9539
0
    }
9540
0
    if (yych == '\\') goto yy164;
9541
0
yy839:
9542
0
    YYDEBUG(839, *YYCURSOR);
9543
0
    yyleng = YYCURSOR - SCNG(yy_text);
9544
0
#line 1506 "Zend/zend_language_scanner.l"
9545
0
    {
9546
0
  RETURN_TOKEN_WITH_IDENT(T_INSTANCEOF);
9547
0
}
9548
0
#line 9549 "Zend/zend_language_scanner.c"
9549
0
yy840:
9550
0
    YYDEBUG(840, *YYCURSOR);
9551
0
    ++YYCURSOR;
9552
0
    YYFILL(1);
9553
0
    yych = *YYCURSOR;
9554
0
    if (yych <= '_') {
9555
0
      if (yych <= '@') goto yy86;
9556
0
      if (yych <= 'Z') goto yy867;
9557
0
      if (yych <= '^') goto yy86;
9558
0
      goto yy867;
9559
0
    } else {
9560
0
      if (yych <= '`') goto yy86;
9561
0
      if (yych <= 'z') goto yy867;
9562
0
      if (yych <= 0x7F) goto yy86;
9563
0
      goto yy867;
9564
0
    }
9565
0
yy841:
9566
0
    YYDEBUG(841, *YYCURSOR);
9567
0
    yych = *++YYCURSOR;
9568
0
    if (yych == 'T') goto yy870;
9569
0
    if (yych == 't') goto yy870;
9570
0
    goto yy86;
9571
0
yy842:
9572
0
    YYDEBUG(842, *YYCURSOR);
9573
0
    yych = *++YYCURSOR;
9574
0
    if (yych == 'S') goto yy871;
9575
0
    if (yych == 's') goto yy871;
9576
0
    goto yy86;
9577
0
yy843:
9578
0
    YYDEBUG(843, *YYCURSOR);
9579
0
    yych = *++YYCURSOR;
9580
0
    if (yych == ')') goto yy872;
9581
0
    goto yy86;
9582
0
yy844:
9583
0
    YYDEBUG(844, *YYCURSOR);
9584
0
    yyaccept = 4;
9585
0
    yych = *(YYMARKER = ++YYCURSOR);
9586
0
    if (yych == 'C') goto yy874;
9587
0
    if (yych == 'c') goto yy874;
9588
0
    goto yy48;
9589
0
yy845:
9590
0
    YYDEBUG(845, *YYCURSOR);
9591
0
    yych = *++YYCURSOR;
9592
0
    if (yych <= '^') {
9593
0
      if (yych <= '9') {
9594
0
        if (yych <= '/') goto yy875;
9595
0
        goto yy86;
9596
0
      } else {
9597
0
        if (yych <= '@') goto yy875;
9598
0
        if (yych <= 'Z') goto yy86;
9599
0
        goto yy875;
9600
0
      }
9601
0
    } else {
9602
0
      if (yych <= '`') {
9603
0
        if (yych <= '_') goto yy86;
9604
0
        goto yy875;
9605
0
      } else {
9606
0
        if (yych <= 'z') goto yy86;
9607
0
        if (yych <= 0x7F) goto yy875;
9608
0
        goto yy86;
9609
0
      }
9610
0
    }
9611
0
yy846:
9612
0
    YYDEBUG(846, *YYCURSOR);
9613
0
    ++YYCURSOR;
9614
0
    YYFILL(1);
9615
0
    yych = *YYCURSOR;
9616
0
    YYDEBUG(847, *YYCURSOR);
9617
0
    if (yych <= '#') {
9618
0
      if (yych <= '\f') {
9619
0
        if (yych <= 0x00) goto yy86;
9620
0
        if (yych <= 0x08) goto yy696;
9621
0
        if (yych <= '\n') goto yy846;
9622
0
        goto yy696;
9623
0
      } else {
9624
0
        if (yych <= 0x1F) {
9625
0
          if (yych <= '\r') goto yy846;
9626
0
          goto yy696;
9627
0
        } else {
9628
0
          if (yych <= ' ') goto yy846;
9629
0
          if (yych <= '"') goto yy696;
9630
0
          goto yy877;
9631
0
        }
9632
0
      }
9633
0
    } else {
9634
0
      if (yych <= '/') {
9635
0
        if (yych == '*') goto yy760;
9636
0
        if (yych <= '.') goto yy696;
9637
0
        goto yy878;
9638
0
      } else {
9639
0
        if (yych <= 'F') {
9640
0
          if (yych <= 'E') goto yy696;
9641
0
          goto yy879;
9642
0
        } else {
9643
0
          if (yych == 'f') goto yy879;
9644
0
          goto yy696;
9645
0
        }
9646
0
      }
9647
0
    }
9648
0
yy848:
9649
0
    YYDEBUG(848, *YYCURSOR);
9650
0
    ++YYCURSOR;
9651
0
    YYFILL(1);
9652
0
    yych = *YYCURSOR;
9653
0
    YYDEBUG(849, *YYCURSOR);
9654
0
    if (yych <= '\r') {
9655
0
      if (yych <= '\t') {
9656
0
        if (yych <= 0x00) goto yy86;
9657
0
        goto yy808;
9658
0
      } else {
9659
0
        if (yych <= '\n') goto yy846;
9660
0
        if (yych <= '\f') goto yy808;
9661
0
        goto yy846;
9662
0
      }
9663
0
    } else {
9664
0
      if (yych <= '*') {
9665
0
        if (yych <= ')') goto yy808;
9666
0
        goto yy848;
9667
0
      } else {
9668
0
        if (yych == '/') goto yy694;
9669
0
        goto yy808;
9670
0
      }
9671
0
    }
9672
0
yy850:
9673
0
    YYDEBUG(850, *YYCURSOR);
9674
0
    ++YYCURSOR;
9675
0
    YYFILL(1);
9676
0
    yych = *YYCURSOR;
9677
0
    if (yych <= '\r') {
9678
0
      if (yych <= '\t') {
9679
0
        if (yych <= 0x00) goto yy86;
9680
0
        goto yy692;
9681
0
      } else {
9682
0
        if (yych <= '\n') goto yy616;
9683
0
        if (yych <= '\f') goto yy692;
9684
0
        goto yy616;
9685
0
      }
9686
0
    } else {
9687
0
      if (yych <= 'M') {
9688
0
        if (yych <= 'L') goto yy692;
9689
0
        goto yy880;
9690
0
      } else {
9691
0
        if (yych == 'm') goto yy880;
9692
0
        goto yy692;
9693
0
      }
9694
0
    }
9695
0
yy851:
9696
0
    YYDEBUG(851, *YYCURSOR);
9697
0
    yyaccept = 4;
9698
0
    yych = *(YYMARKER = ++YYCURSOR);
9699
0
    if (yych == '_') goto yy881;
9700
0
    goto yy48;
9701
0
yy852:
9702
0
    YYDEBUG(852, *YYCURSOR);
9703
0
    yyaccept = 4;
9704
0
    yych = *(YYMARKER = ++YYCURSOR);
9705
0
    if (yych == 'P') goto yy882;
9706
0
    if (yych == 'p') goto yy882;
9707
0
    goto yy48;
9708
189
yy853:
9709
189
    YYDEBUG(853, *YYCURSOR);
9710
189
    yyaccept = 87;
9711
189
    yych = *(YYMARKER = ++YYCURSOR);
9712
189
    if (yybm[256+yych] & 128) {
9713
0
      goto yy47;
9714
0
    }
9715
189
    if (yych == '\\') goto yy164;
9716
189
yy854:
9717
189
    YYDEBUG(854, *YYCURSOR);
9718
189
    yyleng = YYCURSOR - SCNG(yy_text);
9719
189
#line 2269 "Zend/zend_language_scanner.l"
9720
189
    {
9721
189
  RETURN_TOKEN_WITH_IDENT(T_METHOD_C);
9722
189
}
9723
0
#line 9724 "Zend/zend_language_scanner.c"
9724
1
yy855:
9725
1
    YYDEBUG(855, *YYCURSOR);
9726
1
    yyaccept = 4;
9727
1
    yych = *(YYMARKER = ++YYCURSOR);
9728
1
    if (yych == 'E') goto yy883;
9729
0
    if (yych == 'e') goto yy883;
9730
0
    goto yy48;
9731
0
yy856:
9732
0
    YYDEBUG(856, *YYCURSOR);
9733
0
    yyaccept = 4;
9734
0
    yych = *(YYMARKER = ++YYCURSOR);
9735
0
    if (yych == '_') goto yy884;
9736
0
    goto yy48;
9737
0
yy857:
9738
0
    YYDEBUG(857, *YYCURSOR);
9739
0
    yych = *++YYCURSOR;
9740
0
    if (yych == 'S') goto yy885;
9741
0
    if (yych == 's') goto yy885;
9742
0
    goto yy86;
9743
0
yy858:
9744
0
    YYDEBUG(858, *YYCURSOR);
9745
0
    yych = *++YYCURSOR;
9746
0
    if (yych == 'E') goto yy887;
9747
0
    if (yych == 'e') goto yy887;
9748
0
    goto yy86;
9749
1.02k
yy859:
9750
1.02k
    YYDEBUG(859, *YYCURSOR);
9751
1.02k
    ++YYCURSOR;
9752
1.02k
    YYFILL(1);
9753
1.02k
    yych = *YYCURSOR;
9754
1.02k
    YYDEBUG(860, *YYCURSOR);
9755
1.02k
    if (yych <= '@') {
9756
151
      if (yych <= 0x1F) {
9757
0
        if (yych <= '\t') {
9758
0
          if (yych <= 0x00) goto yy86;
9759
0
          if (yych <= 0x08) goto yy738;
9760
0
          goto yy859;
9761
0
        } else {
9762
0
          if (yych <= '\n') goto yy787;
9763
0
          if (yych == '\r') goto yy787;
9764
0
          goto yy738;
9765
0
        }
9766
151
      } else {
9767
151
        if (yych <= ')') {
9768
151
          if (yych <= ' ') goto yy859;
9769
2
          if (yych == '#') goto yy888;
9770
0
          goto yy738;
9771
2
        } else {
9772
0
          if (yych <= '*') goto yy789;
9773
0
          if (yych == '/') goto yy889;
9774
0
          goto yy738;
9775
0
        }
9776
151
      }
9777
871
    } else {
9778
871
      if (yych <= '_') {
9779
0
        if (yych <= 'H') {
9780
0
          if (yych == 'E') goto yy891;
9781
0
          goto yy890;
9782
0
        } else {
9783
0
          if (yych <= 'I') goto yy892;
9784
0
          if (yych <= 'Z') goto yy890;
9785
0
          if (yych <= '^') goto yy738;
9786
0
          goto yy890;
9787
0
        }
9788
871
      } else {
9789
871
        if (yych <= 'h') {
9790
149
          if (yych <= '`') goto yy738;
9791
149
          if (yych == 'e') goto yy891;
9792
0
          goto yy890;
9793
722
        } else {
9794
722
          if (yych <= 'i') goto yy892;
9795
0
          if (yych <= 'z') goto yy890;
9796
0
          if (yych <= 0x7F) goto yy738;
9797
0
          goto yy890;
9798
0
        }
9799
871
      }
9800
871
    }
9801
0
yy861:
9802
0
    YYDEBUG(861, *YYCURSOR);
9803
0
    ++YYCURSOR;
9804
0
    YYFILL(1);
9805
0
    yych = *YYCURSOR;
9806
0
    if (yych <= '*') {
9807
0
      if (yych <= 0x00) goto yy86;
9808
0
      if (yych <= ')') goto yy590;
9809
0
      goto yy668;
9810
0
    } else {
9811
0
      if (yych == '/') goto yy787;
9812
0
      goto yy590;
9813
0
    }
9814
0
yy862:
9815
0
    YYDEBUG(862, *YYCURSOR);
9816
0
    ++YYCURSOR;
9817
0
    YYFILL(1);
9818
0
    yych = *YYCURSOR;
9819
0
    if (yych <= 'S') {
9820
0
      if (yych <= 0x00) goto yy86;
9821
0
      if (yych == '*') goto yy668;
9822
0
      goto yy590;
9823
0
    } else {
9824
0
      if (yych <= 'T') goto yy893;
9825
0
      if (yych == 't') goto yy893;
9826
0
      goto yy590;
9827
0
    }
9828
1.08k
yy863:
9829
1.08k
    YYDEBUG(863, *YYCURSOR);
9830
1.08k
    ++YYCURSOR;
9831
1.08k
    YYFILL(1);
9832
1.08k
    yych = *YYCURSOR;
9833
1.08k
    if (yych <= 'O') {
9834
0
      if (yych <= 0x00) goto yy86;
9835
0
      if (yych == '*') goto yy668;
9836
0
      goto yy590;
9837
1.08k
    } else {
9838
1.08k
      if (yych <= 'P') goto yy894;
9839
1.08k
      if (yych == 'p') goto yy894;
9840
0
      goto yy590;
9841
1.08k
    }
9842
0
yy864:
9843
0
    YYDEBUG(864, *YYCURSOR);
9844
0
    ++YYCURSOR;
9845
0
    YYFILL(1);
9846
0
    yych = *YYCURSOR;
9847
0
    if (yych <= '\r') {
9848
0
      if (yych <= '\t') {
9849
0
        if (yych <= 0x00) goto yy86;
9850
0
        goto yy586;
9851
0
      } else {
9852
0
        if (yych <= '\n') goto yy495;
9853
0
        if (yych <= '\f') goto yy586;
9854
0
        goto yy495;
9855
0
      }
9856
0
    } else {
9857
0
      if (yych <= 'D') {
9858
0
        if (yych <= 'C') goto yy586;
9859
0
        goto yy895;
9860
0
      } else {
9861
0
        if (yych == 'd') goto yy895;
9862
0
        goto yy586;
9863
0
      }
9864
0
    }
9865
840
yy865:
9866
840
    YYDEBUG(865, *YYCURSOR);
9867
840
    ++YYCURSOR;
9868
840
    YYFILL(1);
9869
840
    yych = *YYCURSOR;
9870
840
    if (yych <= '\r') {
9871
0
      if (yych <= '\t') {
9872
0
        if (yych <= 0x00) goto yy86;
9873
0
        goto yy586;
9874
0
      } else {
9875
0
        if (yych <= '\n') goto yy495;
9876
0
        if (yych <= '\f') goto yy586;
9877
0
        goto yy495;
9878
0
      }
9879
840
    } else {
9880
840
      if (yych <= 'M') {
9881
0
        if (yych <= 'L') goto yy586;
9882
0
        goto yy896;
9883
840
      } else {
9884
840
        if (yych == 'm') goto yy896;
9885
840
        goto yy586;
9886
840
      }
9887
840
    }
9888
0
yy866:
9889
0
    YYDEBUG(866, *YYCURSOR);
9890
0
    yyaccept = 4;
9891
0
    yych = *(YYMARKER = ++YYCURSOR);
9892
0
    if (yych == 'E') goto yy897;
9893
0
    if (yych == 'e') goto yy897;
9894
0
    goto yy48;
9895
0
yy867:
9896
0
    YYDEBUG(867, *YYCURSOR);
9897
0
    yyaccept = 88;
9898
0
    YYMARKER = ++YYCURSOR;
9899
0
    YYFILL(1);
9900
0
    yych = *YYCURSOR;
9901
0
    YYDEBUG(868, *YYCURSOR);
9902
0
    if (yych <= '\\') {
9903
0
      if (yych <= '@') {
9904
0
        if (yych <= '/') goto yy869;
9905
0
        if (yych <= '9') goto yy867;
9906
0
      } else {
9907
0
        if (yych <= 'Z') goto yy867;
9908
0
        if (yych >= '\\') goto yy840;
9909
0
      }
9910
0
    } else {
9911
0
      if (yych <= '`') {
9912
0
        if (yych == '_') goto yy867;
9913
0
      } else {
9914
0
        if (yych <= 'z') goto yy867;
9915
0
        if (yych >= 0x80) goto yy867;
9916
0
      }
9917
0
    }
9918
0
yy869:
9919
0
    YYDEBUG(869, *YYCURSOR);
9920
0
    yyleng = YYCURSOR - SCNG(yy_text);
9921
0
#line 2439 "Zend/zend_language_scanner.l"
9922
0
    {
9923
0
  RETURN_TOKEN_WITH_STR(T_NAME_RELATIVE, sizeof("namespace\\") - 1);
9924
0
}
9925
0
#line 9926 "Zend/zend_language_scanner.c"
9926
0
yy870:
9927
0
    YYDEBUG(870, *YYCURSOR);
9928
0
    yych = *++YYCURSOR;
9929
0
    if (yych == ')') goto yy899;
9930
0
    goto yy86;
9931
0
yy871:
9932
0
    YYDEBUG(871, *YYCURSOR);
9933
0
    yych = *++YYCURSOR;
9934
0
    if (yych == 'E') goto yy901;
9935
0
    if (yych == 'e') goto yy901;
9936
0
    goto yy86;
9937
0
yy872:
9938
0
    YYDEBUG(872, *YYCURSOR);
9939
0
    ++YYCURSOR;
9940
0
    YYDEBUG(873, *YYCURSOR);
9941
0
    yyleng = YYCURSOR - SCNG(yy_text);
9942
0
#line 1786 "Zend/zend_language_scanner.l"
9943
0
    {
9944
0
  RETURN_TOKEN_WITH_IDENT(T_PUBLIC_SET);
9945
0
}
9946
0
#line 9947 "Zend/zend_language_scanner.c"
9947
0
yy874:
9948
0
    YYDEBUG(874, *YYCURSOR);
9949
0
    yyaccept = 4;
9950
0
    yych = *(YYMARKER = ++YYCURSOR);
9951
0
    if (yych == 'E') goto yy902;
9952
0
    if (yych == 'e') goto yy902;
9953
0
    goto yy48;
9954
0
yy875:
9955
0
    YYDEBUG(875, *YYCURSOR);
9956
0
    ++YYCURSOR;
9957
0
yy876:
9958
0
    YYDEBUG(876, *YYCURSOR);
9959
0
    yyleng = YYCURSOR - SCNG(yy_text);
9960
0
#line 1428 "Zend/zend_language_scanner.l"
9961
0
    {
9962
0
  yyless(yyleng - 1);
9963
0
  HANDLE_NEWLINES(yytext, yyleng);
9964
0
  RETURN_TOKEN_WITH_IDENT(T_YIELD_FROM);
9965
0
}
9966
0
#line 9967 "Zend/zend_language_scanner.c"
9967
0
yy877:
9968
0
    YYDEBUG(877, *YYCURSOR);
9969
0
    ++YYCURSOR;
9970
0
    YYFILL(1);
9971
0
    yych = *YYCURSOR;
9972
0
    if (yych <= '\r') {
9973
0
      if (yych <= '\t') {
9974
0
        if (yych <= 0x00) goto yy86;
9975
0
        goto yy808;
9976
0
      } else {
9977
0
        if (yych <= '\n') goto yy904;
9978
0
        if (yych <= '\f') goto yy808;
9979
0
        goto yy904;
9980
0
      }
9981
0
    } else {
9982
0
      if (yych <= '*') {
9983
0
        if (yych <= ')') goto yy808;
9984
0
        goto yy848;
9985
0
      } else {
9986
0
        if (yych == '[') goto yy696;
9987
0
        goto yy808;
9988
0
      }
9989
0
    }
9990
0
yy878:
9991
0
    YYDEBUG(878, *YYCURSOR);
9992
0
    ++YYCURSOR;
9993
0
    YYFILL(1);
9994
0
    yych = *YYCURSOR;
9995
0
    if (yych <= '*') {
9996
0
      if (yych <= 0x00) goto yy86;
9997
0
      if (yych <= ')') goto yy696;
9998
0
      goto yy906;
9999
0
    } else {
10000
0
      if (yych == '/') goto yy808;
10001
0
      goto yy696;
10002
0
    }
10003
0
yy879:
10004
0
    YYDEBUG(879, *YYCURSOR);
10005
0
    ++YYCURSOR;
10006
0
    YYFILL(1);
10007
0
    yych = *YYCURSOR;
10008
0
    if (yych <= 'Q') {
10009
0
      if (yych <= 0x00) goto yy86;
10010
0
      if (yych == '*') goto yy760;
10011
0
      goto yy696;
10012
0
    } else {
10013
0
      if (yych <= 'R') goto yy907;
10014
0
      if (yych == 'r') goto yy907;
10015
0
      goto yy696;
10016
0
    }
10017
0
yy880:
10018
0
    YYDEBUG(880, *YYCURSOR);
10019
0
    ++YYCURSOR;
10020
0
    YYFILL(1);
10021
0
    yych = *YYCURSOR;
10022
0
    if (yych <= '9') {
10023
0
      if (yych <= '\n') {
10024
0
        if (yych <= 0x00) goto yy875;
10025
0
        if (yych <= '\t') goto yy908;
10026
0
        goto yy909;
10027
0
      } else {
10028
0
        if (yych == '\r') goto yy909;
10029
0
        if (yych <= '/') goto yy908;
10030
0
        goto yy692;
10031
0
      }
10032
0
    } else {
10033
0
      if (yych <= '_') {
10034
0
        if (yych <= '@') goto yy908;
10035
0
        if (yych <= 'Z') goto yy692;
10036
0
        if (yych <= '^') goto yy908;
10037
0
        goto yy692;
10038
0
      } else {
10039
0
        if (yych <= '`') goto yy908;
10040
0
        if (yych <= 'z') goto yy692;
10041
0
        if (yych <= 0x7F) goto yy908;
10042
0
        goto yy692;
10043
0
      }
10044
0
    }
10045
0
yy881:
10046
0
    YYDEBUG(881, *YYCURSOR);
10047
0
    yyaccept = 4;
10048
0
    yych = *(YYMARKER = ++YYCURSOR);
10049
0
    if (yych == '_') goto yy910;
10050
0
    goto yy48;
10051
0
yy882:
10052
0
    YYDEBUG(882, *YYCURSOR);
10053
0
    yyaccept = 4;
10054
0
    yych = *(YYMARKER = ++YYCURSOR);
10055
0
    if (yych == 'I') goto yy912;
10056
0
    if (yych == 'i') goto yy912;
10057
0
    goto yy48;
10058
1
yy883:
10059
1
    YYDEBUG(883, *YYCURSOR);
10060
1
    yyaccept = 4;
10061
1
    yych = *(YYMARKER = ++YYCURSOR);
10062
1
    if (yych == '_') goto yy913;
10063
0
    goto yy48;
10064
0
yy884:
10065
0
    YYDEBUG(884, *YYCURSOR);
10066
0
    yyaccept = 4;
10067
0
    yych = *(YYMARKER = ++YYCURSOR);
10068
0
    if (yych == '_') goto yy914;
10069
0
    goto yy48;
10070
0
yy885:
10071
0
    YYDEBUG(885, *YYCURSOR);
10072
0
    ++YYCURSOR;
10073
0
yy886:
10074
0
    YYDEBUG(886, *YYCURSOR);
10075
0
    yyleng = YYCURSOR - SCNG(yy_text);
10076
0
#line 1570 "Zend/zend_language_scanner.l"
10077
0
    {
10078
0
  yyless(4);
10079
0
  RETURN_TOKEN_WITH_STR(T_STRING, 0);
10080
0
}
10081
0
#line 10082 "Zend/zend_language_scanner.c"
10082
0
yy887:
10083
0
    YYDEBUG(887, *YYCURSOR);
10084
0
    yych = *++YYCURSOR;
10085
0
    if (yych == 'N') goto yy916;
10086
0
    if (yych == 'n') goto yy916;
10087
0
    goto yy86;
10088
2
yy888:
10089
2
    YYDEBUG(888, *YYCURSOR);
10090
2
    ++YYCURSOR;
10091
2
    YYFILL(1);
10092
2
    yych = *YYCURSOR;
10093
2
    if (yych <= '\f') {
10094
2
      if (yych <= 0x00) goto yy86;
10095
2
      if (yych == '\n') goto yy859;
10096
2
      goto yy738;
10097
2
    } else {
10098
0
      if (yych <= '\r') goto yy859;
10099
0
      if (yych == '*') goto yy789;
10100
0
      goto yy738;
10101
0
    }
10102
0
yy889:
10103
0
    YYDEBUG(889, *YYCURSOR);
10104
0
    ++YYCURSOR;
10105
0
    YYFILL(1);
10106
0
    yych = *YYCURSOR;
10107
0
    if (yych <= '\f') {
10108
0
      if (yych <= 0x00) goto yy86;
10109
0
      if (yych == '\n') goto yy787;
10110
0
      goto yy738;
10111
0
    } else {
10112
0
      if (yych <= '\r') goto yy787;
10113
0
      if (yych == '*') goto yy917;
10114
0
      goto yy738;
10115
0
    }
10116
0
yy890:
10117
0
    YYDEBUG(890, *YYCURSOR);
10118
0
    yyaccept = 53;
10119
0
    YYMARKER = ++YYCURSOR;
10120
0
    YYFILL(1);
10121
0
    yych = *YYCURSOR;
10122
0
    if (yych <= '\f') {
10123
0
      if (yych <= 0x00) goto yy583;
10124
0
      if (yych == '\n') goto yy787;
10125
0
      goto yy738;
10126
0
    } else {
10127
0
      if (yych <= '\r') goto yy787;
10128
0
      if (yych == '*') goto yy789;
10129
0
      goto yy738;
10130
0
    }
10131
149
yy891:
10132
149
    YYDEBUG(891, *YYCURSOR);
10133
149
    yyaccept = 53;
10134
149
    YYMARKER = ++YYCURSOR;
10135
149
    YYFILL(1);
10136
149
    yych = *YYCURSOR;
10137
149
    if (yych <= ')') {
10138
0
      if (yych <= '\n') {
10139
0
        if (yych <= 0x00) goto yy583;
10140
0
        if (yych <= '\t') goto yy738;
10141
0
        goto yy787;
10142
0
      } else {
10143
0
        if (yych == '\r') goto yy787;
10144
0
        goto yy738;
10145
0
      }
10146
149
    } else {
10147
149
      if (yych <= 'X') {
10148
0
        if (yych <= '*') goto yy789;
10149
0
        if (yych <= 'W') goto yy738;
10150
0
        goto yy918;
10151
149
      } else {
10152
149
        if (yych == 'x') goto yy918;
10153
149
        goto yy738;
10154
149
      }
10155
149
    }
10156
722
yy892:
10157
722
    YYDEBUG(892, *YYCURSOR);
10158
722
    yyaccept = 53;
10159
722
    YYMARKER = ++YYCURSOR;
10160
722
    YYFILL(1);
10161
722
    yych = *YYCURSOR;
10162
722
    if (yych <= ')') {
10163
0
      if (yych <= '\n') {
10164
0
        if (yych <= 0x00) goto yy583;
10165
0
        if (yych <= '\t') goto yy738;
10166
0
        goto yy787;
10167
0
      } else {
10168
0
        if (yych == '\r') goto yy787;
10169
0
        goto yy738;
10170
0
      }
10171
722
    } else {
10172
722
      if (yych <= 'M') {
10173
0
        if (yych <= '*') goto yy789;
10174
0
        if (yych <= 'L') goto yy738;
10175
0
        goto yy919;
10176
722
      } else {
10177
722
        if (yych == 'm') goto yy919;
10178
0
        goto yy738;
10179
722
      }
10180
722
    }
10181
0
yy893:
10182
0
    YYDEBUG(893, *YYCURSOR);
10183
0
    ++YYCURSOR;
10184
0
    YYFILL(1);
10185
0
    yych = *YYCURSOR;
10186
0
    if (yych <= 'D') {
10187
0
      if (yych <= 0x00) goto yy86;
10188
0
      if (yych == '*') goto yy668;
10189
0
      goto yy590;
10190
0
    } else {
10191
0
      if (yych <= 'E') goto yy920;
10192
0
      if (yych == 'e') goto yy920;
10193
0
      goto yy590;
10194
0
    }
10195
1.08k
yy894:
10196
1.08k
    YYDEBUG(894, *YYCURSOR);
10197
1.08k
    ++YYCURSOR;
10198
1.08k
    YYFILL(1);
10199
1.08k
    yych = *YYCURSOR;
10200
1.08k
    if (yych <= 'K') {
10201
1.08k
      if (yych <= 0x00) goto yy86;
10202
1.08k
      if (yych == '*') goto yy668;
10203
1.08k
      goto yy590;
10204
1.08k
    } else {
10205
0
      if (yych <= 'L') goto yy921;
10206
0
      if (yych == 'l') goto yy921;
10207
0
      goto yy590;
10208
0
    }
10209
0
yy895:
10210
0
    YYDEBUG(895, *YYCURSOR);
10211
0
    ++YYCURSOR;
10212
0
    YYFILL(1);
10213
0
    yych = *YYCURSOR;
10214
0
    if (yych <= '\r') {
10215
0
      if (yych <= '\t') {
10216
0
        if (yych <= 0x00) goto yy86;
10217
0
        goto yy586;
10218
0
      } else {
10219
0
        if (yych <= '\n') goto yy495;
10220
0
        if (yych <= '\f') goto yy586;
10221
0
        goto yy495;
10222
0
      }
10223
0
    } else {
10224
0
      if (yych <= 'S') {
10225
0
        if (yych <= 'R') goto yy586;
10226
0
        goto yy922;
10227
0
      } else {
10228
0
        if (yych == 's') goto yy922;
10229
0
        goto yy586;
10230
0
      }
10231
0
    }
10232
0
yy896:
10233
0
    YYDEBUG(896, *YYCURSOR);
10234
0
    ++YYCURSOR;
10235
0
    YYFILL(1);
10236
0
    yych = *YYCURSOR;
10237
0
    if (yych <= '\r') {
10238
0
      if (yych <= '\t') {
10239
0
        if (yych <= 0x00) goto yy86;
10240
0
        goto yy586;
10241
0
      } else {
10242
0
        if (yych <= '\n') goto yy495;
10243
0
        if (yych <= '\f') goto yy586;
10244
0
        goto yy495;
10245
0
      }
10246
0
    } else {
10247
0
      if (yych <= 'E') {
10248
0
        if (yych <= 'D') goto yy586;
10249
0
        goto yy923;
10250
0
      } else {
10251
0
        if (yych == 'e') goto yy923;
10252
0
        goto yy586;
10253
0
      }
10254
0
    }
10255
0
yy897:
10256
0
    YYDEBUG(897, *YYCURSOR);
10257
0
    yyaccept = 89;
10258
0
    yych = *(YYMARKER = ++YYCURSOR);
10259
0
    if (yybm[256+yych] & 128) {
10260
0
      goto yy47;
10261
0
    }
10262
0
    if (yych == '\\') goto yy164;
10263
0
yy898:
10264
0
    YYDEBUG(898, *YYCURSOR);
10265
0
    yyleng = YYCURSOR - SCNG(yy_text);
10266
0
#line 1726 "Zend/zend_language_scanner.l"
10267
0
    {
10268
0
  RETURN_TOKEN_WITH_IDENT(T_INCLUDE_ONCE);
10269
0
}
10270
0
#line 10271 "Zend/zend_language_scanner.c"
10271
0
yy899:
10272
0
    YYDEBUG(899, *YYCURSOR);
10273
0
    ++YYCURSOR;
10274
0
    YYDEBUG(900, *YYCURSOR);
10275
0
    yyleng = YYCURSOR - SCNG(yy_text);
10276
0
#line 1794 "Zend/zend_language_scanner.l"
10277
0
    {
10278
0
  RETURN_TOKEN_WITH_IDENT(T_PRIVATE_SET);
10279
0
}
10280
0
#line 10281 "Zend/zend_language_scanner.c"
10281
0
yy901:
10282
0
    YYDEBUG(901, *YYCURSOR);
10283
0
    yych = *++YYCURSOR;
10284
0
    if (yych == 'T') goto yy924;
10285
0
    if (yych == 't') goto yy924;
10286
0
    goto yy86;
10287
0
yy902:
10288
0
    YYDEBUG(902, *YYCURSOR);
10289
0
    yyaccept = 90;
10290
0
    yych = *(YYMARKER = ++YYCURSOR);
10291
0
    if (yybm[256+yych] & 128) {
10292
0
      goto yy47;
10293
0
    }
10294
0
    if (yych == '\\') goto yy164;
10295
0
yy903:
10296
0
    YYDEBUG(903, *YYCURSOR);
10297
0
    yyleng = YYCURSOR - SCNG(yy_text);
10298
0
#line 1734 "Zend/zend_language_scanner.l"
10299
0
    {
10300
0
  RETURN_TOKEN_WITH_IDENT(T_REQUIRE_ONCE);
10301
0
}
10302
0
#line 10303 "Zend/zend_language_scanner.c"
10303
0
yy904:
10304
0
    YYDEBUG(904, *YYCURSOR);
10305
0
    ++YYCURSOR;
10306
0
    YYFILL(1);
10307
0
    yych = *YYCURSOR;
10308
0
    YYDEBUG(905, *YYCURSOR);
10309
0
    if (yych <= '"') {
10310
0
      if (yych <= '\n') {
10311
0
        if (yych <= 0x00) goto yy86;
10312
0
        if (yych <= 0x08) goto yy808;
10313
0
        if (yych <= '\t') goto yy904;
10314
0
        goto yy846;
10315
0
      } else {
10316
0
        if (yych <= '\r') {
10317
0
          if (yych <= '\f') goto yy808;
10318
0
          goto yy846;
10319
0
        } else {
10320
0
          if (yych == ' ') goto yy904;
10321
0
          goto yy808;
10322
0
        }
10323
0
      }
10324
0
    } else {
10325
0
      if (yych <= '/') {
10326
0
        if (yych <= ')') {
10327
0
          if (yych <= '#') goto yy925;
10328
0
          goto yy808;
10329
0
        } else {
10330
0
          if (yych <= '*') goto yy848;
10331
0
          if (yych <= '.') goto yy808;
10332
0
          goto yy926;
10333
0
        }
10334
0
      } else {
10335
0
        if (yych <= 'F') {
10336
0
          if (yych <= 'E') goto yy808;
10337
0
          goto yy927;
10338
0
        } else {
10339
0
          if (yych == 'f') goto yy927;
10340
0
          goto yy808;
10341
0
        }
10342
0
      }
10343
0
    }
10344
0
yy906:
10345
0
    YYDEBUG(906, *YYCURSOR);
10346
0
    ++YYCURSOR;
10347
0
    YYFILL(1);
10348
0
    yych = *YYCURSOR;
10349
0
    if (yych <= '*') {
10350
0
      if (yych <= 0x00) goto yy86;
10351
0
      if (yych <= ')') goto yy696;
10352
0
      goto yy760;
10353
0
    } else {
10354
0
      if (yych == '/') goto yy846;
10355
0
      goto yy696;
10356
0
    }
10357
0
yy907:
10358
0
    YYDEBUG(907, *YYCURSOR);
10359
0
    ++YYCURSOR;
10360
0
    YYFILL(1);
10361
0
    yych = *YYCURSOR;
10362
0
    if (yych <= 'N') {
10363
0
      if (yych <= 0x00) goto yy86;
10364
0
      if (yych == '*') goto yy760;
10365
0
      goto yy696;
10366
0
    } else {
10367
0
      if (yych <= 'O') goto yy928;
10368
0
      if (yych == 'o') goto yy928;
10369
0
      goto yy696;
10370
0
    }
10371
0
yy908:
10372
0
    YYDEBUG(908, *YYCURSOR);
10373
0
    yyaccept = 91;
10374
0
    YYMARKER = ++YYCURSOR;
10375
0
    YYFILL(1);
10376
0
    yych = *YYCURSOR;
10377
0
    if (yych <= '\n') {
10378
0
      if (yych <= 0x00) goto yy876;
10379
0
      if (yych <= '\t') goto yy692;
10380
0
      goto yy616;
10381
0
    } else {
10382
0
      if (yych == '\r') goto yy616;
10383
0
      goto yy692;
10384
0
    }
10385
0
yy909:
10386
0
    YYDEBUG(909, *YYCURSOR);
10387
0
    yyaccept = 91;
10388
0
    YYMARKER = ++YYCURSOR;
10389
0
    YYFILL(5);
10390
0
    yych = *YYCURSOR;
10391
0
    if (yych <= '"') {
10392
0
      if (yych <= '\f') {
10393
0
        if (yych <= 0x08) goto yy876;
10394
0
        if (yych <= '\n') goto yy616;
10395
0
        goto yy876;
10396
0
      } else {
10397
0
        if (yych <= '\r') goto yy616;
10398
0
        if (yych == ' ') goto yy616;
10399
0
        goto yy876;
10400
0
      }
10401
0
    } else {
10402
0
      if (yych <= 'E') {
10403
0
        if (yych <= '#') goto yy618;
10404
0
        if (yych == '/') goto yy619;
10405
0
        goto yy876;
10406
0
      } else {
10407
0
        if (yych <= 'F') goto yy691;
10408
0
        if (yych == 'f') goto yy691;
10409
0
        goto yy876;
10410
0
      }
10411
0
    }
10412
0
yy910:
10413
0
    YYDEBUG(910, *YYCURSOR);
10414
0
    yyaccept = 92;
10415
0
    yych = *(YYMARKER = ++YYCURSOR);
10416
0
    if (yybm[256+yych] & 128) {
10417
0
      goto yy47;
10418
0
    }
10419
0
    if (yych == '\\') goto yy164;
10420
0
yy911:
10421
0
    YYDEBUG(911, *YYCURSOR);
10422
0
    yyleng = YYCURSOR - SCNG(yy_text);
10423
0
#line 2261 "Zend/zend_language_scanner.l"
10424
0
    {
10425
0
  RETURN_TOKEN_WITH_IDENT(T_FUNC_C);
10426
0
}
10427
0
#line 10428 "Zend/zend_language_scanner.c"
10428
0
yy912:
10429
0
    YYDEBUG(912, *YYCURSOR);
10430
0
    yyaccept = 4;
10431
0
    yych = *(YYMARKER = ++YYCURSOR);
10432
0
    if (yych == 'L') goto yy929;
10433
0
    if (yych == 'l') goto yy929;
10434
0
    goto yy48;
10435
1
yy913:
10436
1
    YYDEBUG(913, *YYCURSOR);
10437
1
    yyaccept = 4;
10438
1
    yych = *(YYMARKER = ++YYCURSOR);
10439
1
    if (yych == '_') goto yy930;
10440
1
    goto yy48;
10441
1
yy914:
10442
0
    YYDEBUG(914, *YYCURSOR);
10443
0
    yyaccept = 93;
10444
0
    yych = *(YYMARKER = ++YYCURSOR);
10445
0
    if (yybm[256+yych] & 128) {
10446
0
      goto yy47;
10447
0
    }
10448
0
    if (yych == '\\') goto yy164;
10449
0
yy915:
10450
0
    YYDEBUG(915, *YYCURSOR);
10451
0
    yyleng = YYCURSOR - SCNG(yy_text);
10452
0
#line 2265 "Zend/zend_language_scanner.l"
10453
0
    {
10454
0
  RETURN_TOKEN_WITH_IDENT(T_PROPERTY_C);
10455
0
}
10456
0
#line 10457 "Zend/zend_language_scanner.c"
10457
0
yy916:
10458
0
    YYDEBUG(916, *YYCURSOR);
10459
0
    yych = *++YYCURSOR;
10460
0
    if (yych == 'T') goto yy857;
10461
0
    if (yych == 't') goto yy857;
10462
0
    goto yy86;
10463
0
yy917:
10464
0
    YYDEBUG(917, *YYCURSOR);
10465
0
    ++YYCURSOR;
10466
0
    YYFILL(1);
10467
0
    yych = *YYCURSOR;
10468
0
    if (yych <= '\r') {
10469
0
      if (yych <= '\t') {
10470
0
        if (yych <= 0x00) goto yy86;
10471
0
        goto yy738;
10472
0
      } else {
10473
0
        if (yych <= '\n') goto yy787;
10474
0
        if (yych <= '\f') goto yy738;
10475
0
        goto yy787;
10476
0
      }
10477
0
    } else {
10478
0
      if (yych <= '*') {
10479
0
        if (yych <= ')') goto yy738;
10480
0
        goto yy789;
10481
0
      } else {
10482
0
        if (yych == '/') goto yy859;
10483
0
        goto yy738;
10484
0
      }
10485
0
    }
10486
0
yy918:
10487
0
    YYDEBUG(918, *YYCURSOR);
10488
0
    ++YYCURSOR;
10489
0
    YYFILL(1);
10490
0
    yych = *YYCURSOR;
10491
0
    if (yych <= ')') {
10492
0
      if (yych <= '\n') {
10493
0
        if (yych <= 0x00) goto yy86;
10494
0
        if (yych <= '\t') goto yy738;
10495
0
        goto yy787;
10496
0
      } else {
10497
0
        if (yych == '\r') goto yy787;
10498
0
        goto yy738;
10499
0
      }
10500
0
    } else {
10501
0
      if (yych <= 'T') {
10502
0
        if (yych <= '*') goto yy789;
10503
0
        if (yych <= 'S') goto yy738;
10504
0
        goto yy932;
10505
0
      } else {
10506
0
        if (yych == 't') goto yy932;
10507
0
        goto yy738;
10508
0
      }
10509
0
    }
10510
722
yy919:
10511
722
    YYDEBUG(919, *YYCURSOR);
10512
722
    ++YYCURSOR;
10513
722
    YYFILL(1);
10514
722
    yych = *YYCURSOR;
10515
722
    if (yych <= ')') {
10516
0
      if (yych <= '\n') {
10517
0
        if (yych <= 0x00) goto yy86;
10518
0
        if (yych <= '\t') goto yy738;
10519
0
        goto yy787;
10520
0
      } else {
10521
0
        if (yych == '\r') goto yy787;
10522
0
        goto yy738;
10523
0
      }
10524
722
    } else {
10525
722
      if (yych <= 'P') {
10526
0
        if (yych <= '*') goto yy789;
10527
0
        if (yych <= 'O') goto yy738;
10528
0
        goto yy933;
10529
722
      } else {
10530
722
        if (yych == 'p') goto yy933;
10531
0
        goto yy738;
10532
722
      }
10533
722
    }
10534
0
yy920:
10535
0
    YYDEBUG(920, *YYCURSOR);
10536
0
    ++YYCURSOR;
10537
0
    YYFILL(1);
10538
0
    yych = *YYCURSOR;
10539
0
    if (yych <= 'M') {
10540
0
      if (yych <= 0x00) goto yy86;
10541
0
      if (yych == '*') goto yy668;
10542
0
      goto yy590;
10543
0
    } else {
10544
0
      if (yych <= 'N') goto yy934;
10545
0
      if (yych == 'n') goto yy934;
10546
0
      goto yy590;
10547
0
    }
10548
0
yy921:
10549
0
    YYDEBUG(921, *YYCURSOR);
10550
0
    ++YYCURSOR;
10551
0
    YYFILL(1);
10552
0
    yych = *YYCURSOR;
10553
0
    if (yych <= 'D') {
10554
0
      if (yych <= 0x00) goto yy86;
10555
0
      if (yych == '*') goto yy668;
10556
0
      goto yy590;
10557
0
    } else {
10558
0
      if (yych <= 'E') goto yy935;
10559
0
      if (yych == 'e') goto yy935;
10560
0
      goto yy590;
10561
0
    }
10562
0
yy922:
10563
0
    YYDEBUG(922, *YYCURSOR);
10564
0
    yyaccept = 94;
10565
0
    YYMARKER = ++YYCURSOR;
10566
0
    YYFILL(1);
10567
0
    yych = *YYCURSOR;
10568
0
    if (yych <= '\n') {
10569
0
      if (yych <= 0x00) goto yy886;
10570
0
      if (yych <= '\t') goto yy586;
10571
0
      goto yy495;
10572
0
    } else {
10573
0
      if (yych == '\r') goto yy495;
10574
0
      goto yy586;
10575
0
    }
10576
0
yy923:
10577
0
    YYDEBUG(923, *YYCURSOR);
10578
0
    ++YYCURSOR;
10579
0
    YYFILL(1);
10580
0
    yych = *YYCURSOR;
10581
0
    if (yych <= '\r') {
10582
0
      if (yych <= '\t') {
10583
0
        if (yych <= 0x00) goto yy86;
10584
0
        goto yy586;
10585
0
      } else {
10586
0
        if (yych <= '\n') goto yy495;
10587
0
        if (yych <= '\f') goto yy586;
10588
0
        goto yy495;
10589
0
      }
10590
0
    } else {
10591
0
      if (yych <= 'N') {
10592
0
        if (yych <= 'M') goto yy586;
10593
0
        goto yy936;
10594
0
      } else {
10595
0
        if (yych == 'n') goto yy936;
10596
0
        goto yy586;
10597
0
      }
10598
0
    }
10599
0
yy924:
10600
0
    YYDEBUG(924, *YYCURSOR);
10601
0
    yych = *++YYCURSOR;
10602
0
    if (yych == ')') goto yy937;
10603
0
    goto yy86;
10604
0
yy925:
10605
0
    YYDEBUG(925, *YYCURSOR);
10606
0
    ++YYCURSOR;
10607
0
    YYFILL(1);
10608
0
    yych = *YYCURSOR;
10609
0
    if (yych <= '\f') {
10610
0
      if (yych <= 0x00) goto yy86;
10611
0
      if (yych == '\n') goto yy904;
10612
0
      goto yy808;
10613
0
    } else {
10614
0
      if (yych <= '\r') goto yy904;
10615
0
      if (yych == '*') goto yy848;
10616
0
      goto yy808;
10617
0
    }
10618
0
yy926:
10619
0
    YYDEBUG(926, *YYCURSOR);
10620
0
    ++YYCURSOR;
10621
0
    YYFILL(1);
10622
0
    yych = *YYCURSOR;
10623
0
    if (yych <= '\f') {
10624
0
      if (yych <= 0x00) goto yy86;
10625
0
      if (yych == '\n') goto yy846;
10626
0
      goto yy808;
10627
0
    } else {
10628
0
      if (yych <= '\r') goto yy846;
10629
0
      if (yych == '*') goto yy939;
10630
0
      goto yy808;
10631
0
    }
10632
0
yy927:
10633
0
    YYDEBUG(927, *YYCURSOR);
10634
0
    ++YYCURSOR;
10635
0
    YYFILL(1);
10636
0
    yych = *YYCURSOR;
10637
0
    if (yych <= ')') {
10638
0
      if (yych <= '\n') {
10639
0
        if (yych <= 0x00) goto yy86;
10640
0
        if (yych <= '\t') goto yy808;
10641
0
        goto yy846;
10642
0
      } else {
10643
0
        if (yych == '\r') goto yy846;
10644
0
        goto yy808;
10645
0
      }
10646
0
    } else {
10647
0
      if (yych <= 'R') {
10648
0
        if (yych <= '*') goto yy848;
10649
0
        if (yych <= 'Q') goto yy808;
10650
0
        goto yy940;
10651
0
      } else {
10652
0
        if (yych == 'r') goto yy940;
10653
0
        goto yy808;
10654
0
      }
10655
0
    }
10656
0
yy928:
10657
0
    YYDEBUG(928, *YYCURSOR);
10658
0
    ++YYCURSOR;
10659
0
    YYFILL(1);
10660
0
    yych = *YYCURSOR;
10661
0
    if (yych <= 'L') {
10662
0
      if (yych <= 0x00) goto yy86;
10663
0
      if (yych == '*') goto yy760;
10664
0
      goto yy696;
10665
0
    } else {
10666
0
      if (yych <= 'M') goto yy941;
10667
0
      if (yych == 'm') goto yy941;
10668
0
      goto yy696;
10669
0
    }
10670
0
yy929:
10671
0
    YYDEBUG(929, *YYCURSOR);
10672
0
    yyaccept = 4;
10673
0
    yych = *(YYMARKER = ++YYCURSOR);
10674
0
    if (yych == 'E') goto yy942;
10675
0
    if (yych == 'e') goto yy942;
10676
0
    goto yy48;
10677
0
yy930:
10678
0
    YYDEBUG(930, *YYCURSOR);
10679
0
    yyaccept = 95;
10680
0
    yych = *(YYMARKER = ++YYCURSOR);
10681
0
    if (yybm[256+yych] & 128) {
10682
0
      goto yy47;
10683
0
    }
10684
0
    if (yych == '\\') goto yy164;
10685
0
yy931:
10686
0
    YYDEBUG(931, *YYCURSOR);
10687
0
    yyleng = YYCURSOR - SCNG(yy_text);
10688
0
#line 2285 "Zend/zend_language_scanner.l"
10689
0
    {
10690
0
  RETURN_TOKEN_WITH_IDENT(T_NS_C);
10691
0
}
10692
0
#line 10693 "Zend/zend_language_scanner.c"
10693
0
yy932:
10694
0
    YYDEBUG(932, *YYCURSOR);
10695
0
    ++YYCURSOR;
10696
0
    YYFILL(1);
10697
0
    yych = *YYCURSOR;
10698
0
    if (yych <= ')') {
10699
0
      if (yych <= '\n') {
10700
0
        if (yych <= 0x00) goto yy86;
10701
0
        if (yych <= '\t') goto yy738;
10702
0
        goto yy787;
10703
0
      } else {
10704
0
        if (yych == '\r') goto yy787;
10705
0
        goto yy738;
10706
0
      }
10707
0
    } else {
10708
0
      if (yych <= 'E') {
10709
0
        if (yych <= '*') goto yy789;
10710
0
        if (yych <= 'D') goto yy738;
10711
0
        goto yy943;
10712
0
      } else {
10713
0
        if (yych == 'e') goto yy943;
10714
0
        goto yy738;
10715
0
      }
10716
0
    }
10717
722
yy933:
10718
722
    YYDEBUG(933, *YYCURSOR);
10719
722
    ++YYCURSOR;
10720
722
    YYFILL(1);
10721
722
    yych = *YYCURSOR;
10722
722
    if (yych <= ')') {
10723
0
      if (yych <= '\n') {
10724
0
        if (yych <= 0x00) goto yy86;
10725
0
        if (yych <= '\t') goto yy738;
10726
0
        goto yy787;
10727
0
      } else {
10728
0
        if (yych == '\r') goto yy787;
10729
0
        goto yy738;
10730
0
      }
10731
722
    } else {
10732
722
      if (yych <= 'L') {
10733
0
        if (yych <= '*') goto yy789;
10734
0
        if (yych <= 'K') goto yy738;
10735
0
        goto yy944;
10736
722
      } else {
10737
722
        if (yych == 'l') goto yy944;
10738
0
        goto yy738;
10739
722
      }
10740
722
    }
10741
0
yy934:
10742
0
    YYDEBUG(934, *YYCURSOR);
10743
0
    ++YYCURSOR;
10744
0
    YYFILL(1);
10745
0
    yych = *YYCURSOR;
10746
0
    if (yych <= 'C') {
10747
0
      if (yych <= 0x00) goto yy86;
10748
0
      if (yych == '*') goto yy668;
10749
0
      goto yy590;
10750
0
    } else {
10751
0
      if (yych <= 'D') goto yy945;
10752
0
      if (yych == 'd') goto yy945;
10753
0
      goto yy590;
10754
0
    }
10755
0
yy935:
10756
0
    YYDEBUG(935, *YYCURSOR);
10757
0
    ++YYCURSOR;
10758
0
    YYFILL(1);
10759
0
    yych = *YYCURSOR;
10760
0
    if (yych <= 'L') {
10761
0
      if (yych <= 0x00) goto yy86;
10762
0
      if (yych == '*') goto yy668;
10763
0
      goto yy590;
10764
0
    } else {
10765
0
      if (yych <= 'M') goto yy946;
10766
0
      if (yych == 'm') goto yy946;
10767
0
      goto yy590;
10768
0
    }
10769
0
yy936:
10770
0
    YYDEBUG(936, *YYCURSOR);
10771
0
    ++YYCURSOR;
10772
0
    YYFILL(1);
10773
0
    yych = *YYCURSOR;
10774
0
    if (yych <= '\r') {
10775
0
      if (yych <= '\t') {
10776
0
        if (yych <= 0x00) goto yy86;
10777
0
        goto yy586;
10778
0
      } else {
10779
0
        if (yych <= '\n') goto yy495;
10780
0
        if (yych <= '\f') goto yy586;
10781
0
        goto yy495;
10782
0
      }
10783
0
    } else {
10784
0
      if (yych <= 'T') {
10785
0
        if (yych <= 'S') goto yy586;
10786
0
        goto yy895;
10787
0
      } else {
10788
0
        if (yych == 't') goto yy895;
10789
0
        goto yy586;
10790
0
      }
10791
0
    }
10792
0
yy937:
10793
0
    YYDEBUG(937, *YYCURSOR);
10794
0
    ++YYCURSOR;
10795
0
    YYDEBUG(938, *YYCURSOR);
10796
0
    yyleng = YYCURSOR - SCNG(yy_text);
10797
0
#line 1790 "Zend/zend_language_scanner.l"
10798
0
    {
10799
0
  RETURN_TOKEN_WITH_IDENT(T_PROTECTED_SET);
10800
0
}
10801
0
#line 10802 "Zend/zend_language_scanner.c"
10802
0
yy939:
10803
0
    YYDEBUG(939, *YYCURSOR);
10804
0
    ++YYCURSOR;
10805
0
    YYFILL(1);
10806
0
    yych = *YYCURSOR;
10807
0
    if (yych <= '\r') {
10808
0
      if (yych <= '\t') {
10809
0
        if (yych <= 0x00) goto yy86;
10810
0
        goto yy808;
10811
0
      } else {
10812
0
        if (yych <= '\n') goto yy846;
10813
0
        if (yych <= '\f') goto yy808;
10814
0
        goto yy846;
10815
0
      }
10816
0
    } else {
10817
0
      if (yych <= '*') {
10818
0
        if (yych <= ')') goto yy808;
10819
0
        goto yy848;
10820
0
      } else {
10821
0
        if (yych == '/') goto yy904;
10822
0
        goto yy808;
10823
0
      }
10824
0
    }
10825
0
yy940:
10826
0
    YYDEBUG(940, *YYCURSOR);
10827
0
    ++YYCURSOR;
10828
0
    YYFILL(1);
10829
0
    yych = *YYCURSOR;
10830
0
    if (yych <= ')') {
10831
0
      if (yych <= '\n') {
10832
0
        if (yych <= 0x00) goto yy86;
10833
0
        if (yych <= '\t') goto yy808;
10834
0
        goto yy846;
10835
0
      } else {
10836
0
        if (yych == '\r') goto yy846;
10837
0
        goto yy808;
10838
0
      }
10839
0
    } else {
10840
0
      if (yych <= 'O') {
10841
0
        if (yych <= '*') goto yy848;
10842
0
        if (yych <= 'N') goto yy808;
10843
0
        goto yy947;
10844
0
      } else {
10845
0
        if (yych == 'o') goto yy947;
10846
0
        goto yy808;
10847
0
      }
10848
0
    }
10849
0
yy941:
10850
0
    YYDEBUG(941, *YYCURSOR);
10851
0
    ++YYCURSOR;
10852
0
    YYFILL(1);
10853
0
    yych = *YYCURSOR;
10854
0
    if (yych <= '@') {
10855
0
      if (yych <= '*') {
10856
0
        if (yych <= 0x00) goto yy875;
10857
0
        if (yych <= ')') goto yy948;
10858
0
        goto yy949;
10859
0
      } else {
10860
0
        if (yych <= '/') goto yy948;
10861
0
        if (yych <= '9') goto yy696;
10862
0
        goto yy948;
10863
0
      }
10864
0
    } else {
10865
0
      if (yych <= '_') {
10866
0
        if (yych <= 'Z') goto yy696;
10867
0
        if (yych <= '^') goto yy948;
10868
0
        goto yy696;
10869
0
      } else {
10870
0
        if (yych <= '`') goto yy948;
10871
0
        if (yych <= 'z') goto yy696;
10872
0
        if (yych <= 0x7F) goto yy948;
10873
0
        goto yy696;
10874
0
      }
10875
0
    }
10876
0
yy942:
10877
0
    YYDEBUG(942, *YYCURSOR);
10878
0
    yyaccept = 4;
10879
0
    yych = *(YYMARKER = ++YYCURSOR);
10880
0
    if (yych == 'R') goto yy950;
10881
0
    if (yych == 'r') goto yy950;
10882
0
    goto yy48;
10883
0
yy943:
10884
0
    YYDEBUG(943, *YYCURSOR);
10885
0
    ++YYCURSOR;
10886
0
    YYFILL(1);
10887
0
    yych = *YYCURSOR;
10888
0
    if (yych <= ')') {
10889
0
      if (yych <= '\n') {
10890
0
        if (yych <= 0x00) goto yy86;
10891
0
        if (yych <= '\t') goto yy738;
10892
0
        goto yy787;
10893
0
      } else {
10894
0
        if (yych == '\r') goto yy787;
10895
0
        goto yy738;
10896
0
      }
10897
0
    } else {
10898
0
      if (yych <= 'N') {
10899
0
        if (yych <= '*') goto yy789;
10900
0
        if (yych <= 'M') goto yy738;
10901
0
        goto yy952;
10902
0
      } else {
10903
0
        if (yych == 'n') goto yy952;
10904
0
        goto yy738;
10905
0
      }
10906
0
    }
10907
722
yy944:
10908
722
    YYDEBUG(944, *YYCURSOR);
10909
722
    ++YYCURSOR;
10910
722
    YYFILL(1);
10911
722
    yych = *YYCURSOR;
10912
722
    if (yych <= ')') {
10913
0
      if (yych <= '\n') {
10914
0
        if (yych <= 0x00) goto yy86;
10915
0
        if (yych <= '\t') goto yy738;
10916
0
        goto yy787;
10917
0
      } else {
10918
0
        if (yych == '\r') goto yy787;
10919
0
        goto yy738;
10920
0
      }
10921
722
    } else {
10922
722
      if (yych <= 'E') {
10923
0
        if (yych <= '*') goto yy789;
10924
0
        if (yych <= 'D') goto yy738;
10925
0
        goto yy953;
10926
722
      } else {
10927
722
        if (yych == 'e') goto yy953;
10928
0
        goto yy738;
10929
722
      }
10930
722
    }
10931
0
yy945:
10932
0
    YYDEBUG(945, *YYCURSOR);
10933
0
    ++YYCURSOR;
10934
0
    YYFILL(1);
10935
0
    yych = *YYCURSOR;
10936
0
    if (yych <= 'R') {
10937
0
      if (yych <= 0x00) goto yy86;
10938
0
      if (yych == '*') goto yy668;
10939
0
      goto yy590;
10940
0
    } else {
10941
0
      if (yych <= 'S') goto yy954;
10942
0
      if (yych == 's') goto yy954;
10943
0
      goto yy590;
10944
0
    }
10945
0
yy946:
10946
0
    YYDEBUG(946, *YYCURSOR);
10947
0
    ++YYCURSOR;
10948
0
    YYFILL(1);
10949
0
    yych = *YYCURSOR;
10950
0
    if (yych <= 'D') {
10951
0
      if (yych <= 0x00) goto yy86;
10952
0
      if (yych == '*') goto yy668;
10953
0
      goto yy590;
10954
0
    } else {
10955
0
      if (yych <= 'E') goto yy955;
10956
0
      if (yych == 'e') goto yy955;
10957
0
      goto yy590;
10958
0
    }
10959
0
yy947:
10960
0
    YYDEBUG(947, *YYCURSOR);
10961
0
    ++YYCURSOR;
10962
0
    YYFILL(1);
10963
0
    yych = *YYCURSOR;
10964
0
    if (yych <= ')') {
10965
0
      if (yych <= '\n') {
10966
0
        if (yych <= 0x00) goto yy86;
10967
0
        if (yych <= '\t') goto yy808;
10968
0
        goto yy846;
10969
0
      } else {
10970
0
        if (yych == '\r') goto yy846;
10971
0
        goto yy808;
10972
0
      }
10973
0
    } else {
10974
0
      if (yych <= 'M') {
10975
0
        if (yych <= '*') goto yy848;
10976
0
        if (yych <= 'L') goto yy808;
10977
0
        goto yy956;
10978
0
      } else {
10979
0
        if (yych == 'm') goto yy956;
10980
0
        goto yy808;
10981
0
      }
10982
0
    }
10983
0
yy948:
10984
0
    YYDEBUG(948, *YYCURSOR);
10985
0
    yyaccept = 91;
10986
0
    YYMARKER = ++YYCURSOR;
10987
0
    YYFILL(1);
10988
0
    yych = *YYCURSOR;
10989
0
    if (yych <= 0x00) goto yy876;
10990
0
    if (yych == '*') goto yy760;
10991
0
    goto yy696;
10992
0
yy949:
10993
0
    YYDEBUG(949, *YYCURSOR);
10994
0
    yyaccept = 91;
10995
0
    YYMARKER = ++YYCURSOR;
10996
0
    YYFILL(1);
10997
0
    yych = *YYCURSOR;
10998
0
    if (yych <= '*') {
10999
0
      if (yych <= 0x00) goto yy876;
11000
0
      if (yych <= ')') goto yy696;
11001
0
      goto yy760;
11002
0
    } else {
11003
0
      if (yych == '/') goto yy616;
11004
0
      goto yy696;
11005
0
    }
11006
0
yy950:
11007
0
    YYDEBUG(950, *YYCURSOR);
11008
0
    yyaccept = 96;
11009
0
    yych = *(YYMARKER = ++YYCURSOR);
11010
0
    if (yybm[256+yych] & 128) {
11011
0
      goto yy47;
11012
0
    }
11013
0
    if (yych == '\\') goto yy164;
11014
0
yy951:
11015
0
    YYDEBUG(951, *YYCURSOR);
11016
0
    yyleng = YYCURSOR - SCNG(yy_text);
11017
0
#line 1762 "Zend/zend_language_scanner.l"
11018
0
    {
11019
0
  RETURN_TOKEN_WITH_IDENT(T_HALT_COMPILER);
11020
0
}
11021
0
#line 11022 "Zend/zend_language_scanner.c"
11022
0
yy952:
11023
0
    YYDEBUG(952, *YYCURSOR);
11024
0
    ++YYCURSOR;
11025
0
    YYFILL(1);
11026
0
    yych = *YYCURSOR;
11027
0
    if (yych <= ')') {
11028
0
      if (yych <= '\n') {
11029
0
        if (yych <= 0x00) goto yy86;
11030
0
        if (yych <= '\t') goto yy738;
11031
0
        goto yy787;
11032
0
      } else {
11033
0
        if (yych == '\r') goto yy787;
11034
0
        goto yy738;
11035
0
      }
11036
0
    } else {
11037
0
      if (yych <= 'D') {
11038
0
        if (yych <= '*') goto yy789;
11039
0
        if (yych <= 'C') goto yy738;
11040
0
        goto yy957;
11041
0
      } else {
11042
0
        if (yych == 'd') goto yy957;
11043
0
        goto yy738;
11044
0
      }
11045
0
    }
11046
722
yy953:
11047
722
    YYDEBUG(953, *YYCURSOR);
11048
722
    ++YYCURSOR;
11049
722
    YYFILL(1);
11050
722
    yych = *YYCURSOR;
11051
722
    if (yych <= ')') {
11052
0
      if (yych <= '\n') {
11053
0
        if (yych <= 0x00) goto yy86;
11054
0
        if (yych <= '\t') goto yy738;
11055
0
        goto yy787;
11056
0
      } else {
11057
0
        if (yych == '\r') goto yy787;
11058
0
        goto yy738;
11059
0
      }
11060
722
    } else {
11061
722
      if (yych <= 'M') {
11062
722
        if (yych <= '*') goto yy789;
11063
2
        if (yych <= 'L') goto yy738;
11064
2
        goto yy958;
11065
2
      } else {
11066
0
        if (yych == 'm') goto yy958;
11067
0
        goto yy738;
11068
0
      }
11069
722
    }
11070
0
yy954:
11071
0
    YYDEBUG(954, *YYCURSOR);
11072
0
    yyaccept = 94;
11073
0
    YYMARKER = ++YYCURSOR;
11074
0
    YYFILL(1);
11075
0
    yych = *YYCURSOR;
11076
0
    if (yych <= 0x00) goto yy886;
11077
0
    if (yych == '*') goto yy668;
11078
0
    goto yy590;
11079
0
yy955:
11080
0
    YYDEBUG(955, *YYCURSOR);
11081
0
    ++YYCURSOR;
11082
0
    YYFILL(1);
11083
0
    yych = *YYCURSOR;
11084
0
    if (yych <= 'M') {
11085
0
      if (yych <= 0x00) goto yy86;
11086
0
      if (yych == '*') goto yy668;
11087
0
      goto yy590;
11088
0
    } else {
11089
0
      if (yych <= 'N') goto yy959;
11090
0
      if (yych == 'n') goto yy959;
11091
0
      goto yy590;
11092
0
    }
11093
0
yy956:
11094
0
    YYDEBUG(956, *YYCURSOR);
11095
0
    ++YYCURSOR;
11096
0
    YYFILL(1);
11097
0
    yych = *YYCURSOR;
11098
0
    if (yych <= '/') {
11099
0
      if (yych <= '\f') {
11100
0
        if (yych <= 0x00) goto yy875;
11101
0
        if (yych == '\n') goto yy961;
11102
0
        goto yy960;
11103
0
      } else {
11104
0
        if (yych <= '\r') goto yy961;
11105
0
        if (yych == '*') goto yy962;
11106
0
        goto yy960;
11107
0
      }
11108
0
    } else {
11109
0
      if (yych <= '^') {
11110
0
        if (yych <= '9') goto yy808;
11111
0
        if (yych <= '@') goto yy960;
11112
0
        if (yych <= 'Z') goto yy808;
11113
0
        goto yy960;
11114
0
      } else {
11115
0
        if (yych <= '`') {
11116
0
          if (yych <= '_') goto yy808;
11117
0
          goto yy960;
11118
0
        } else {
11119
0
          if (yych <= 'z') goto yy808;
11120
0
          if (yych <= 0x7F) goto yy960;
11121
0
          goto yy808;
11122
0
        }
11123
0
      }
11124
0
    }
11125
0
yy957:
11126
0
    YYDEBUG(957, *YYCURSOR);
11127
0
    ++YYCURSOR;
11128
0
    YYFILL(1);
11129
0
    yych = *YYCURSOR;
11130
0
    if (yych <= ')') {
11131
0
      if (yych <= '\n') {
11132
0
        if (yych <= 0x00) goto yy86;
11133
0
        if (yych <= '\t') goto yy738;
11134
0
        goto yy787;
11135
0
      } else {
11136
0
        if (yych == '\r') goto yy787;
11137
0
        goto yy738;
11138
0
      }
11139
0
    } else {
11140
0
      if (yych <= 'S') {
11141
0
        if (yych <= '*') goto yy789;
11142
0
        if (yych <= 'R') goto yy738;
11143
0
        goto yy963;
11144
0
      } else {
11145
0
        if (yych == 's') goto yy963;
11146
0
        goto yy738;
11147
0
      }
11148
0
    }
11149
2
yy958:
11150
2
    YYDEBUG(958, *YYCURSOR);
11151
2
    ++YYCURSOR;
11152
2
    YYFILL(1);
11153
2
    yych = *YYCURSOR;
11154
2
    if (yych <= ')') {
11155
0
      if (yych <= '\n') {
11156
0
        if (yych <= 0x00) goto yy86;
11157
0
        if (yych <= '\t') goto yy738;
11158
0
        goto yy787;
11159
0
      } else {
11160
0
        if (yych == '\r') goto yy787;
11161
0
        goto yy738;
11162
0
      }
11163
2
    } else {
11164
2
      if (yych <= 'E') {
11165
0
        if (yych <= '*') goto yy789;
11166
0
        if (yych <= 'D') goto yy738;
11167
0
        goto yy964;
11168
2
      } else {
11169
2
        if (yych == 'e') goto yy964;
11170
0
        goto yy738;
11171
2
      }
11172
2
    }
11173
0
yy959:
11174
0
    YYDEBUG(959, *YYCURSOR);
11175
0
    ++YYCURSOR;
11176
0
    YYFILL(1);
11177
0
    yych = *YYCURSOR;
11178
0
    if (yych <= 'S') {
11179
0
      if (yych <= 0x00) goto yy86;
11180
0
      if (yych == '*') goto yy668;
11181
0
      goto yy590;
11182
0
    } else {
11183
0
      if (yych <= 'T') goto yy945;
11184
0
      if (yych == 't') goto yy945;
11185
0
      goto yy590;
11186
0
    }
11187
0
yy960:
11188
0
    YYDEBUG(960, *YYCURSOR);
11189
0
    yyaccept = 91;
11190
0
    YYMARKER = ++YYCURSOR;
11191
0
    YYFILL(1);
11192
0
    yych = *YYCURSOR;
11193
0
    if (yych <= '\f') {
11194
0
      if (yych <= 0x00) goto yy876;
11195
0
      if (yych == '\n') goto yy846;
11196
0
      goto yy808;
11197
0
    } else {
11198
0
      if (yych <= '\r') goto yy846;
11199
0
      if (yych == '*') goto yy848;
11200
0
      goto yy808;
11201
0
    }
11202
0
yy961:
11203
0
    YYDEBUG(961, *YYCURSOR);
11204
0
    yyaccept = 91;
11205
0
    YYMARKER = ++YYCURSOR;
11206
0
    YYFILL(1);
11207
0
    yych = *YYCURSOR;
11208
0
    if (yych <= '#') {
11209
0
      if (yych <= '\f') {
11210
0
        if (yych <= 0x00) goto yy876;
11211
0
        if (yych <= 0x08) goto yy696;
11212
0
        if (yych <= '\n') goto yy846;
11213
0
        goto yy696;
11214
0
      } else {
11215
0
        if (yych <= 0x1F) {
11216
0
          if (yych <= '\r') goto yy846;
11217
0
          goto yy696;
11218
0
        } else {
11219
0
          if (yych <= ' ') goto yy846;
11220
0
          if (yych <= '"') goto yy696;
11221
0
          goto yy877;
11222
0
        }
11223
0
      }
11224
0
    } else {
11225
0
      if (yych <= '/') {
11226
0
        if (yych == '*') goto yy760;
11227
0
        if (yych <= '.') goto yy696;
11228
0
        goto yy878;
11229
0
      } else {
11230
0
        if (yych <= 'F') {
11231
0
          if (yych <= 'E') goto yy696;
11232
0
          goto yy879;
11233
0
        } else {
11234
0
          if (yych == 'f') goto yy879;
11235
0
          goto yy696;
11236
0
        }
11237
0
      }
11238
0
    }
11239
0
yy962:
11240
0
    YYDEBUG(962, *YYCURSOR);
11241
0
    yyaccept = 91;
11242
0
    YYMARKER = ++YYCURSOR;
11243
0
    YYFILL(1);
11244
0
    yych = *YYCURSOR;
11245
0
    if (yych <= '\r') {
11246
0
      if (yych <= '\t') {
11247
0
        if (yych <= 0x00) goto yy876;
11248
0
        goto yy808;
11249
0
      } else {
11250
0
        if (yych <= '\n') goto yy846;
11251
0
        if (yych <= '\f') goto yy808;
11252
0
        goto yy846;
11253
0
      }
11254
0
    } else {
11255
0
      if (yych <= '*') {
11256
0
        if (yych <= ')') goto yy808;
11257
0
        goto yy848;
11258
0
      } else {
11259
0
        if (yych == '/') goto yy694;
11260
0
        goto yy808;
11261
0
      }
11262
0
    }
11263
0
yy963:
11264
0
    YYDEBUG(963, *YYCURSOR);
11265
0
    yyaccept = 94;
11266
0
    YYMARKER = ++YYCURSOR;
11267
0
    YYFILL(1);
11268
0
    yych = *YYCURSOR;
11269
0
    if (yych <= '\f') {
11270
0
      if (yych <= 0x00) goto yy886;
11271
0
      if (yych == '\n') goto yy787;
11272
0
      goto yy738;
11273
0
    } else {
11274
0
      if (yych <= '\r') goto yy787;
11275
0
      if (yych == '*') goto yy789;
11276
0
      goto yy738;
11277
0
    }
11278
2
yy964:
11279
2
    YYDEBUG(964, *YYCURSOR);
11280
2
    ++YYCURSOR;
11281
2
    YYFILL(1);
11282
2
    yych = *YYCURSOR;
11283
2
    if (yych <= ')') {
11284
2
      if (yych <= '\n') {
11285
2
        if (yych <= 0x00) goto yy86;
11286
2
        if (yych <= '\t') goto yy738;
11287
0
        goto yy787;
11288
2
      } else {
11289
0
        if (yych == '\r') goto yy787;
11290
0
        goto yy738;
11291
0
      }
11292
2
    } else {
11293
0
      if (yych <= 'N') {
11294
0
        if (yych <= '*') goto yy789;
11295
0
        if (yych <= 'M') goto yy738;
11296
0
      } else {
11297
0
        if (yych != 'n') goto yy738;
11298
0
      }
11299
0
    }
11300
0
    YYDEBUG(965, *YYCURSOR);
11301
0
    ++YYCURSOR;
11302
0
    YYFILL(1);
11303
0
    yych = *YYCURSOR;
11304
0
    if (yych <= ')') {
11305
0
      if (yych <= '\n') {
11306
0
        if (yych <= 0x00) goto yy86;
11307
0
        if (yych <= '\t') goto yy738;
11308
0
        goto yy787;
11309
0
      } else {
11310
0
        if (yych == '\r') goto yy787;
11311
0
        goto yy738;
11312
0
      }
11313
0
    } else {
11314
0
      if (yych <= 'T') {
11315
0
        if (yych <= '*') goto yy789;
11316
0
        if (yych <= 'S') goto yy738;
11317
0
        goto yy957;
11318
0
      } else {
11319
0
        if (yych == 't') goto yy957;
11320
0
        goto yy738;
11321
0
      }
11322
0
    }
11323
0
  }
11324
/* *********************************** */
11325
8.52k
yyc_ST_LOOKING_FOR_PROPERTY:
11326
8.52k
  {
11327
8.52k
    static const unsigned char yybm[] = {
11328
8.52k
        0,   0,   0,   0,   0,   0,   0,   0, 
11329
8.52k
        0,  64,  64,   0,   0,  64,   0,   0, 
11330
8.52k
        0,   0,   0,   0,   0,   0,   0,   0, 
11331
8.52k
        0,   0,   0,   0,   0,   0,   0,   0, 
11332
8.52k
       64,   0,   0,   0,   0,   0,   0,   0, 
11333
8.52k
        0,   0,   0,   0,   0,   0,   0,   0, 
11334
8.52k
      128, 128, 128, 128, 128, 128, 128, 128, 
11335
8.52k
      128, 128,   0,   0,   0,   0,   0,   0, 
11336
8.52k
        0, 128, 128, 128, 128, 128, 128, 128, 
11337
8.52k
      128, 128, 128, 128, 128, 128, 128, 128, 
11338
8.52k
      128, 128, 128, 128, 128, 128, 128, 128, 
11339
8.52k
      128, 128, 128,   0,   0,   0,   0, 128, 
11340
8.52k
        0, 128, 128, 128, 128, 128, 128, 128, 
11341
8.52k
      128, 128, 128, 128, 128, 128, 128, 128, 
11342
8.52k
      128, 128, 128, 128, 128, 128, 128, 128, 
11343
8.52k
      128, 128, 128,   0,   0,   0,   0,   0, 
11344
8.52k
      128, 128, 128, 128, 128, 128, 128, 128, 
11345
8.52k
      128, 128, 128, 128, 128, 128, 128, 128, 
11346
8.52k
      128, 128, 128, 128, 128, 128, 128, 128, 
11347
8.52k
      128, 128, 128, 128, 128, 128, 128, 128, 
11348
8.52k
      128, 128, 128, 128, 128, 128, 128, 128, 
11349
8.52k
      128, 128, 128, 128, 128, 128, 128, 128, 
11350
8.52k
      128, 128, 128, 128, 128, 128, 128, 128, 
11351
8.52k
      128, 128, 128, 128, 128, 128, 128, 128, 
11352
8.52k
      128, 128, 128, 128, 128, 128, 128, 128, 
11353
8.52k
      128, 128, 128, 128, 128, 128, 128, 128, 
11354
8.52k
      128, 128, 128, 128, 128, 128, 128, 128, 
11355
8.52k
      128, 128, 128, 128, 128, 128, 128, 128, 
11356
8.52k
      128, 128, 128, 128, 128, 128, 128, 128, 
11357
8.52k
      128, 128, 128, 128, 128, 128, 128, 128, 
11358
8.52k
      128, 128, 128, 128, 128, 128, 128, 128, 
11359
8.52k
      128, 128, 128, 128, 128, 128, 128, 128, 
11360
8.52k
    };
11361
8.52k
    YYDEBUG(966, *YYCURSOR);
11362
8.52k
    YYFILL(4);
11363
8.52k
    yych = *YYCURSOR;
11364
8.52k
    if (yybm[0+yych] & 64) {
11365
26
      goto yy970;
11366
26
    }
11367
8.49k
    if (yych <= '?') {
11368
3.44k
      if (yych <= '-') {
11369
221
        if (yych == '#') goto yy973;
11370
221
        if (yych >= '-') goto yy975;
11371
3.22k
      } else {
11372
3.22k
        if (yych == '/') goto yy976;
11373
3.19k
        if (yych >= '?') goto yy977;
11374
3.19k
      }
11375
5.05k
    } else {
11376
5.05k
      if (yych <= '_') {
11377
0
        if (yych <= '@') goto yy968;
11378
0
        if (yych <= 'Z') goto yy978;
11379
0
        if (yych >= '_') goto yy978;
11380
5.05k
      } else {
11381
5.05k
        if (yych <= '`') goto yy968;
11382
5.05k
        if (yych <= 'z') goto yy978;
11383
104
        if (yych >= 0x80) goto yy978;
11384
104
      }
11385
5.05k
    }
11386
24
yy968:
11387
24
    YYDEBUG(968, *YYCURSOR);
11388
24
    ++YYCURSOR;
11389
24
yy969:
11390
24
    YYDEBUG(969, *YYCURSOR);
11391
24
    yyleng = YYCURSOR - SCNG(yy_text);
11392
24
#line 2520 "Zend/zend_language_scanner.l"
11393
24
    {
11394
24
  yyless(0);
11395
24
  yy_pop_state();
11396
24
  goto restart;
11397
24
}
11398
0
#line 11399 "Zend/zend_language_scanner.c"
11399
130
yy970:
11400
130
    YYDEBUG(970, *YYCURSOR);
11401
130
    ++YYCURSOR;
11402
130
    YYFILL(1);
11403
130
    yych = *YYCURSOR;
11404
130
    YYDEBUG(971, *YYCURSOR);
11405
130
    if (yybm[0+yych] & 64) {
11406
104
      goto yy970;
11407
104
    }
11408
26
    YYDEBUG(972, *YYCURSOR);
11409
26
    yyleng = YYCURSOR - SCNG(yy_text);
11410
26
#line 1597 "Zend/zend_language_scanner.l"
11411
26
    {
11412
26
  goto return_whitespace;
11413
130
}
11414
0
#line 11415 "Zend/zend_language_scanner.c"
11415
26
yy973:
11416
26
    YYDEBUG(973, *YYCURSOR);
11417
26
    ++YYCURSOR;
11418
26
    YYDEBUG(974, *YYCURSOR);
11419
26
    yyleng = YYCURSOR - SCNG(yy_text);
11420
26
#line 2460 "Zend/zend_language_scanner.l"
11421
26
    {
11422
13.2k
  while (YYCURSOR < YYLIMIT) {
11423
13.2k
    switch (*YYCURSOR++) {
11424
0
      case '\r':
11425
26
      case '\n':
11426
26
        YYCURSOR--;
11427
26
        break;
11428
2
      case '?':
11429
2
        if (*YYCURSOR == '>') {
11430
0
          YYCURSOR--;
11431
0
          break;
11432
0
        }
11433
2
        ZEND_FALLTHROUGH;
11434
13.2k
      default:
11435
13.2k
        continue;
11436
13.2k
    }
11437
11438
26
    break;
11439
13.2k
  }
11440
11441
26
  yyleng = YYCURSOR - SCNG(yy_text);
11442
26
  RETURN_OR_SKIP_TOKEN(T_COMMENT);
11443
26
}
11444
0
#line 11445 "Zend/zend_language_scanner.c"
11445
197
yy975:
11446
197
    YYDEBUG(975, *YYCURSOR);
11447
197
    yych = *++YYCURSOR;
11448
197
    if (yych == '>') goto yy981;
11449
0
    goto yy969;
11450
26
yy976:
11451
26
    YYDEBUG(976, *YYCURSOR);
11452
26
    yych = *++YYCURSOR;
11453
26
    if (yych == '*') goto yy983;
11454
26
    if (yych == '/') goto yy973;
11455
0
    goto yy969;
11456
3.19k
yy977:
11457
3.19k
    YYDEBUG(977, *YYCURSOR);
11458
3.19k
    yyaccept = 0;
11459
3.19k
    yych = *(YYMARKER = ++YYCURSOR);
11460
3.19k
    if (yych == '-') goto yy985;
11461
0
    goto yy969;
11462
15.3k
yy978:
11463
15.3k
    YYDEBUG(978, *YYCURSOR);
11464
15.3k
    ++YYCURSOR;
11465
15.3k
    YYFILL(1);
11466
15.3k
    yych = *YYCURSOR;
11467
15.3k
    YYDEBUG(979, *YYCURSOR);
11468
15.3k
    if (yybm[0+yych] & 128) {
11469
10.2k
      goto yy978;
11470
10.2k
    }
11471
5.05k
    YYDEBUG(980, *YYCURSOR);
11472
5.05k
    yyleng = YYCURSOR - SCNG(yy_text);
11473
5.05k
#line 1609 "Zend/zend_language_scanner.l"
11474
5.05k
    {
11475
5.05k
  yy_pop_state();
11476
5.05k
  RETURN_TOKEN_WITH_STR(T_STRING, 0);
11477
5.05k
}
11478
0
#line 11479 "Zend/zend_language_scanner.c"
11479
197
yy981:
11480
197
    YYDEBUG(981, *YYCURSOR);
11481
197
    ++YYCURSOR;
11482
197
    YYDEBUG(982, *YYCURSOR);
11483
197
    yyleng = YYCURSOR - SCNG(yy_text);
11484
197
#line 1601 "Zend/zend_language_scanner.l"
11485
197
    {
11486
197
  RETURN_TOKEN(T_OBJECT_OPERATOR);
11487
197
}
11488
0
#line 11489 "Zend/zend_language_scanner.c"
11489
0
yy983:
11490
0
    YYDEBUG(983, *YYCURSOR);
11491
0
    yyaccept = 1;
11492
0
    yych = *(YYMARKER = ++YYCURSOR);
11493
0
    if (yych == '*') goto yy987;
11494
0
yy984:
11495
0
    YYDEBUG(984, *YYCURSOR);
11496
0
    yyleng = YYCURSOR - SCNG(yy_text);
11497
0
#line 2484 "Zend/zend_language_scanner.l"
11498
0
    {
11499
0
  int doc_com;
11500
11501
0
  if (yyleng > 2) {
11502
0
    doc_com = 1;
11503
0
    RESET_DOC_COMMENT();
11504
0
  } else {
11505
0
    doc_com = 0;
11506
0
  }
11507
11508
0
  while (YYCURSOR < YYLIMIT) {
11509
0
    if (*YYCURSOR++ == '*' && *YYCURSOR == '/') {
11510
0
      break;
11511
0
    }
11512
0
  }
11513
11514
0
  if (YYCURSOR < YYLIMIT) {
11515
0
    YYCURSOR++;
11516
0
  } else {
11517
0
    zend_throw_exception_ex(zend_ce_parse_error, 0, "Unterminated comment starting line %" PRIu32, CG(zend_lineno));
11518
0
    if (PARSER_MODE()) {
11519
0
      RETURN_TOKEN(T_ERROR);
11520
0
    }
11521
0
  }
11522
11523
0
  yyleng = YYCURSOR - SCNG(yy_text);
11524
0
  HANDLE_NEWLINES(yytext, yyleng);
11525
11526
0
  if (doc_com) {
11527
0
    CG(doc_comment) = zend_string_init(yytext, yyleng, 0);
11528
0
    RETURN_OR_SKIP_TOKEN(T_DOC_COMMENT);
11529
0
  }
11530
11531
0
  RETURN_OR_SKIP_TOKEN(T_COMMENT);
11532
0
}
11533
0
#line 11534 "Zend/zend_language_scanner.c"
11534
3.19k
yy985:
11535
3.19k
    YYDEBUG(985, *YYCURSOR);
11536
3.19k
    yych = *++YYCURSOR;
11537
3.19k
    if (yych == '>') goto yy988;
11538
0
yy986:
11539
0
    YYDEBUG(986, *YYCURSOR);
11540
0
    YYCURSOR = YYMARKER;
11541
0
    if (yyaccept == 0) {
11542
0
      goto yy969;
11543
0
    } else {
11544
0
      goto yy984;
11545
0
    }
11546
0
yy987:
11547
0
    YYDEBUG(987, *YYCURSOR);
11548
0
    yych = *++YYCURSOR;
11549
0
    if (yych <= '\f') {
11550
0
      if (yych <= 0x08) goto yy986;
11551
0
      if (yych <= '\n') goto yy990;
11552
0
      goto yy986;
11553
0
    } else {
11554
0
      if (yych <= '\r') goto yy990;
11555
0
      if (yych == ' ') goto yy990;
11556
0
      goto yy986;
11557
0
    }
11558
3.19k
yy988:
11559
3.19k
    YYDEBUG(988, *YYCURSOR);
11560
3.19k
    ++YYCURSOR;
11561
3.19k
    YYDEBUG(989, *YYCURSOR);
11562
3.19k
    yyleng = YYCURSOR - SCNG(yy_text);
11563
3.19k
#line 1605 "Zend/zend_language_scanner.l"
11564
3.19k
    {
11565
3.19k
  RETURN_TOKEN(T_NULLSAFE_OBJECT_OPERATOR);
11566
3.19k
}
11567
0
#line 11568 "Zend/zend_language_scanner.c"
11568
0
yy990:
11569
0
    YYDEBUG(990, *YYCURSOR);
11570
0
    ++YYCURSOR;
11571
0
    YYFILL(1);
11572
0
    yych = *YYCURSOR;
11573
0
    YYDEBUG(991, *YYCURSOR);
11574
0
    if (yych <= '\f') {
11575
0
      if (yych <= 0x08) goto yy984;
11576
0
      if (yych <= '\n') goto yy990;
11577
0
      goto yy984;
11578
0
    } else {
11579
0
      if (yych <= '\r') goto yy990;
11580
0
      if (yych == ' ') goto yy990;
11581
0
      goto yy984;
11582
0
    }
11583
0
  }
11584
/* *********************************** */
11585
6.83k
yyc_ST_BACKQUOTE:
11586
6.83k
  {
11587
6.83k
    static const unsigned char yybm[] = {
11588
6.83k
        0,   0,   0,   0,   0,   0,   0,   0, 
11589
6.83k
        0,   0,   0,   0,   0,   0,   0,   0, 
11590
6.83k
        0,   0,   0,   0,   0,   0,   0,   0, 
11591
6.83k
        0,   0,   0,   0,   0,   0,   0,   0, 
11592
6.83k
        0,   0,   0,   0,   0,   0,   0,   0, 
11593
6.83k
        0,   0,   0,   0,   0,   0,   0,   0, 
11594
6.83k
      128, 128, 128, 128, 128, 128, 128, 128, 
11595
6.83k
      128, 128,   0,   0,   0,   0,   0,   0, 
11596
6.83k
        0, 128, 128, 128, 128, 128, 128, 128, 
11597
6.83k
      128, 128, 128, 128, 128, 128, 128, 128, 
11598
6.83k
      128, 128, 128, 128, 128, 128, 128, 128, 
11599
6.83k
      128, 128, 128,   0,   0,   0,   0, 128, 
11600
6.83k
        0, 128, 128, 128, 128, 128, 128, 128, 
11601
6.83k
      128, 128, 128, 128, 128, 128, 128, 128, 
11602
6.83k
      128, 128, 128, 128, 128, 128, 128, 128, 
11603
6.83k
      128, 128, 128,   0,   0,   0,   0,   0, 
11604
6.83k
      128, 128, 128, 128, 128, 128, 128, 128, 
11605
6.83k
      128, 128, 128, 128, 128, 128, 128, 128, 
11606
6.83k
      128, 128, 128, 128, 128, 128, 128, 128, 
11607
6.83k
      128, 128, 128, 128, 128, 128, 128, 128, 
11608
6.83k
      128, 128, 128, 128, 128, 128, 128, 128, 
11609
6.83k
      128, 128, 128, 128, 128, 128, 128, 128, 
11610
6.83k
      128, 128, 128, 128, 128, 128, 128, 128, 
11611
6.83k
      128, 128, 128, 128, 128, 128, 128, 128, 
11612
6.83k
      128, 128, 128, 128, 128, 128, 128, 128, 
11613
6.83k
      128, 128, 128, 128, 128, 128, 128, 128, 
11614
6.83k
      128, 128, 128, 128, 128, 128, 128, 128, 
11615
6.83k
      128, 128, 128, 128, 128, 128, 128, 128, 
11616
6.83k
      128, 128, 128, 128, 128, 128, 128, 128, 
11617
6.83k
      128, 128, 128, 128, 128, 128, 128, 128, 
11618
6.83k
      128, 128, 128, 128, 128, 128, 128, 128, 
11619
6.83k
      128, 128, 128, 128, 128, 128, 128, 128, 
11620
6.83k
    };
11621
6.83k
    YYDEBUG(992, *YYCURSOR);
11622
6.83k
    YYFILL(2);
11623
6.83k
    yych = *YYCURSOR;
11624
6.83k
    if (yych <= '_') {
11625
6.83k
      if (yych == '$') goto yy996;
11626
6.83k
    } else {
11627
6
      if (yych <= '`') goto yy997;
11628
3
      if (yych == '{') goto yy999;
11629
3
    }
11630
3.27k
    YYDEBUG(994, *YYCURSOR);
11631
3.27k
    ++YYCURSOR;
11632
3.33k
yy995:
11633
3.33k
    YYDEBUG(995, *YYCURSOR);
11634
3.33k
    yyleng = YYCURSOR - SCNG(yy_text);
11635
3.33k
#line 2919 "Zend/zend_language_scanner.l"
11636
3.33k
    {
11637
3.33k
  if (YYCURSOR > YYLIMIT) {
11638
14
    RETURN_END_TOKEN;
11639
14
  }
11640
3.32k
  if (yytext[0] == '\\' && YYCURSOR < YYLIMIT) {
11641
28
    YYCURSOR++;
11642
28
  }
11643
11644
12.0k
  while (YYCURSOR < YYLIMIT) {
11645
12.0k
    switch (*YYCURSOR++) {
11646
3
      case '`':
11647
3
        break;
11648
3.37k
      case '$':
11649
3.37k
        if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
11650
3.30k
          break;
11651
3.30k
        }
11652
73
        continue;
11653
73
      case '{':
11654
0
        if (*YYCURSOR == '$') {
11655
0
          break;
11656
0
        }
11657
0
        continue;
11658
17
      case '\\':
11659
17
        if (YYCURSOR < YYLIMIT) {
11660
17
          YYCURSOR++;
11661
17
        }
11662
17
        ZEND_FALLTHROUGH;
11663
8.65k
      default:
11664
8.65k
        continue;
11665
12.0k
    }
11666
11667
3.30k
    YYCURSOR--;
11668
3.30k
    break;
11669
12.0k
  }
11670
11671
3.32k
  yyleng = YYCURSOR - SCNG(yy_text);
11672
11673
3.32k
  if (EXPECTED(zend_scan_escape_string(zendlval, yytext, yyleng, '`') == SUCCESS)
11674
3.32k
   || !PARSER_MODE()) {
11675
3.32k
    RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
11676
3.32k
  } else {
11677
0
    RETURN_TOKEN(T_ERROR);
11678
0
  }
11679
3.32k
}
11680
0
#line 11681 "Zend/zend_language_scanner.c"
11681
3.55k
yy996:
11682
3.55k
    YYDEBUG(996, *YYCURSOR);
11683
3.55k
    yych = *++YYCURSOR;
11684
3.55k
    if (yych <= '_') {
11685
56
      if (yych <= '@') goto yy995;
11686
0
      if (yych <= 'Z') goto yy1000;
11687
0
      if (yych <= '^') goto yy995;
11688
0
      goto yy1000;
11689
3.50k
    } else {
11690
3.50k
      if (yych <= 'z') {
11691
3.45k
        if (yych <= '`') goto yy995;
11692
3.45k
        goto yy1000;
11693
3.45k
      } else {
11694
42
        if (yych <= '{') goto yy1003;
11695
28
        if (yych <= 0x7F) goto yy995;
11696
28
        goto yy1000;
11697
28
      }
11698
3.50k
    }
11699
3
yy997:
11700
3
    YYDEBUG(997, *YYCURSOR);
11701
3
    ++YYCURSOR;
11702
3
    YYDEBUG(998, *YYCURSOR);
11703
3
    yyleng = YYCURSOR - SCNG(yy_text);
11704
3
#line 2859 "Zend/zend_language_scanner.l"
11705
3
    {
11706
3
  BEGIN(ST_IN_SCRIPTING);
11707
3
  RETURN_TOKEN('`');
11708
3
}
11709
0
#line 11710 "Zend/zend_language_scanner.c"
11710
0
yy999:
11711
0
    YYDEBUG(999, *YYCURSOR);
11712
0
    yych = *++YYCURSOR;
11713
0
    if (yych == '$') goto yy1005;
11714
0
    goto yy995;
11715
11.1k
yy1000:
11716
11.1k
    YYDEBUG(1000, *YYCURSOR);
11717
11.1k
    YYMARKER = ++YYCURSOR;
11718
11.1k
    YYFILL(4);
11719
11.1k
    yych = *YYCURSOR;
11720
11.1k
    YYDEBUG(1001, *YYCURSOR);
11721
11.1k
    if (yybm[0+yych] & 128) {
11722
7.61k
      goto yy1000;
11723
7.61k
    }
11724
3.48k
    if (yych <= '>') {
11725
406
      if (yych == '-') goto yy1007;
11726
3.08k
    } else {
11727
3.08k
      if (yych <= '?') goto yy1009;
11728
14
      if (yych <= '@') goto yy1002;
11729
14
      if (yych <= '[') goto yy1010;
11730
14
    }
11731
1.83k
yy1002:
11732
1.83k
    YYDEBUG(1002, *YYCURSOR);
11733
1.83k
    yyleng = YYCURSOR - SCNG(yy_text);
11734
1.83k
#line 2417 "Zend/zend_language_scanner.l"
11735
1.83k
    {
11736
1.83k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
11737
1.83k
}
11738
0
#line 11739 "Zend/zend_language_scanner.c"
11739
14
yy1003:
11740
14
    YYDEBUG(1003, *YYCURSOR);
11741
14
    ++YYCURSOR;
11742
14
    YYDEBUG(1004, *YYCURSOR);
11743
14
    yyleng = YYCURSOR - SCNG(yy_text);
11744
14
#line 1981 "Zend/zend_language_scanner.l"
11745
14
    {
11746
14
  yy_push_state(ST_LOOKING_FOR_VARNAME);
11747
14
  enter_nesting('{');
11748
14
  RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES);
11749
14
}
11750
0
#line 11751 "Zend/zend_language_scanner.c"
11751
0
yy1005:
11752
0
    YYDEBUG(1005, *YYCURSOR);
11753
0
    ++YYCURSOR;
11754
0
    YYDEBUG(1006, *YYCURSOR);
11755
0
    yyleng = YYCURSOR - SCNG(yy_text);
11756
0
#line 2846 "Zend/zend_language_scanner.l"
11757
0
    {
11758
0
  yy_push_state(ST_IN_SCRIPTING);
11759
0
  yyless(1);
11760
0
  enter_nesting('{');
11761
0
  RETURN_TOKEN(T_CURLY_OPEN);
11762
0
}
11763
0
#line 11764 "Zend/zend_language_scanner.c"
11764
84
yy1007:
11765
84
    YYDEBUG(1007, *YYCURSOR);
11766
84
    yych = *++YYCURSOR;
11767
84
    if (yych == '>') goto yy1012;
11768
1.51k
yy1008:
11769
1.51k
    YYDEBUG(1008, *YYCURSOR);
11770
1.51k
    YYCURSOR = YYMARKER;
11771
1.51k
    goto yy1002;
11772
3.06k
yy1009:
11773
3.06k
    YYDEBUG(1009, *YYCURSOR);
11774
3.06k
    yych = *++YYCURSOR;
11775
3.06k
    if (yych == '-') goto yy1013;
11776
1.51k
    goto yy1008;
11777
1.51k
yy1010:
11778
14
    YYDEBUG(1010, *YYCURSOR);
11779
14
    ++YYCURSOR;
11780
14
    YYDEBUG(1011, *YYCURSOR);
11781
14
    yyleng = YYCURSOR - SCNG(yy_text);
11782
14
#line 2411 "Zend/zend_language_scanner.l"
11783
14
    {
11784
14
  yyless(yyleng - 1);
11785
14
  yy_push_state(ST_VAR_OFFSET);
11786
14
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
11787
14
}
11788
0
#line 11789 "Zend/zend_language_scanner.c"
11789
84
yy1012:
11790
84
    YYDEBUG(1012, *YYCURSOR);
11791
84
    yych = *++YYCURSOR;
11792
84
    if (yych <= '_') {
11793
0
      if (yych <= '@') goto yy1008;
11794
0
      if (yych <= 'Z') goto yy1014;
11795
0
      if (yych <= '^') goto yy1008;
11796
0
      goto yy1014;
11797
84
    } else {
11798
84
      if (yych <= '`') goto yy1008;
11799
84
      if (yych <= 'z') goto yy1014;
11800
0
      if (yych <= 0x7F) goto yy1008;
11801
0
      goto yy1014;
11802
0
    }
11803
1.55k
yy1013:
11804
1.55k
    YYDEBUG(1013, *YYCURSOR);
11805
1.55k
    yych = *++YYCURSOR;
11806
1.55k
    if (yych == '>') goto yy1016;
11807
0
    goto yy1008;
11808
84
yy1014:
11809
84
    YYDEBUG(1014, *YYCURSOR);
11810
84
    ++YYCURSOR;
11811
84
    YYDEBUG(1015, *YYCURSOR);
11812
84
    yyleng = YYCURSOR - SCNG(yy_text);
11813
84
#line 2397 "Zend/zend_language_scanner.l"
11814
84
    {
11815
84
  yyless(yyleng - 3);
11816
84
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
11817
84
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
11818
84
}
11819
0
#line 11820 "Zend/zend_language_scanner.c"
11820
1.55k
yy1016:
11821
1.55k
    YYDEBUG(1016, *YYCURSOR);
11822
1.55k
    yych = *++YYCURSOR;
11823
1.55k
    if (yych <= '_') {
11824
0
      if (yych <= '@') goto yy1008;
11825
0
      if (yych <= 'Z') goto yy1017;
11826
0
      if (yych <= '^') goto yy1008;
11827
1.55k
    } else {
11828
1.55k
      if (yych <= '`') goto yy1008;
11829
1.55k
      if (yych <= 'z') goto yy1017;
11830
0
      if (yych <= 0x7F) goto yy1008;
11831
0
    }
11832
1.55k
yy1017:
11833
1.55k
    YYDEBUG(1017, *YYCURSOR);
11834
1.55k
    ++YYCURSOR;
11835
1.55k
    YYDEBUG(1018, *YYCURSOR);
11836
1.55k
    yyleng = YYCURSOR - SCNG(yy_text);
11837
1.55k
#line 2403 "Zend/zend_language_scanner.l"
11838
1.55k
    {
11839
1.55k
  yyless(yyleng - 4);
11840
1.55k
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
11841
1.55k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
11842
1.55k
}
11843
1.55k
#line 11844 "Zend/zend_language_scanner.c"
11844
1.55k
  }
11845
/* *********************************** */
11846
9.56k
yyc_ST_DOUBLE_QUOTES:
11847
9.56k
  {
11848
9.56k
    static const unsigned char yybm[] = {
11849
9.56k
        0,   0,   0,   0,   0,   0,   0,   0, 
11850
9.56k
        0,   0,   0,   0,   0,   0,   0,   0, 
11851
9.56k
        0,   0,   0,   0,   0,   0,   0,   0, 
11852
9.56k
        0,   0,   0,   0,   0,   0,   0,   0, 
11853
9.56k
        0,   0,   0,   0,   0,   0,   0,   0, 
11854
9.56k
        0,   0,   0,   0,   0,   0,   0,   0, 
11855
9.56k
      128, 128, 128, 128, 128, 128, 128, 128, 
11856
9.56k
      128, 128,   0,   0,   0,   0,   0,   0, 
11857
9.56k
        0, 128, 128, 128, 128, 128, 128, 128, 
11858
9.56k
      128, 128, 128, 128, 128, 128, 128, 128, 
11859
9.56k
      128, 128, 128, 128, 128, 128, 128, 128, 
11860
9.56k
      128, 128, 128,   0,   0,   0,   0, 128, 
11861
9.56k
        0, 128, 128, 128, 128, 128, 128, 128, 
11862
9.56k
      128, 128, 128, 128, 128, 128, 128, 128, 
11863
9.56k
      128, 128, 128, 128, 128, 128, 128, 128, 
11864
9.56k
      128, 128, 128,   0,   0,   0,   0,   0, 
11865
9.56k
      128, 128, 128, 128, 128, 128, 128, 128, 
11866
9.56k
      128, 128, 128, 128, 128, 128, 128, 128, 
11867
9.56k
      128, 128, 128, 128, 128, 128, 128, 128, 
11868
9.56k
      128, 128, 128, 128, 128, 128, 128, 128, 
11869
9.56k
      128, 128, 128, 128, 128, 128, 128, 128, 
11870
9.56k
      128, 128, 128, 128, 128, 128, 128, 128, 
11871
9.56k
      128, 128, 128, 128, 128, 128, 128, 128, 
11872
9.56k
      128, 128, 128, 128, 128, 128, 128, 128, 
11873
9.56k
      128, 128, 128, 128, 128, 128, 128, 128, 
11874
9.56k
      128, 128, 128, 128, 128, 128, 128, 128, 
11875
9.56k
      128, 128, 128, 128, 128, 128, 128, 128, 
11876
9.56k
      128, 128, 128, 128, 128, 128, 128, 128, 
11877
9.56k
      128, 128, 128, 128, 128, 128, 128, 128, 
11878
9.56k
      128, 128, 128, 128, 128, 128, 128, 128, 
11879
9.56k
      128, 128, 128, 128, 128, 128, 128, 128, 
11880
9.56k
      128, 128, 128, 128, 128, 128, 128, 128, 
11881
9.56k
    };
11882
9.56k
    YYDEBUG(1019, *YYCURSOR);
11883
9.56k
    YYFILL(2);
11884
9.56k
    yych = *YYCURSOR;
11885
9.56k
    if (yych <= '#') {
11886
996
      if (yych == '"') goto yy1023;
11887
8.56k
    } else {
11888
8.56k
      if (yych <= '$') goto yy1025;
11889
4.82k
      if (yych == '{') goto yy1026;
11890
4.82k
    }
11891
4.74k
    YYDEBUG(1021, *YYCURSOR);
11892
4.74k
    ++YYCURSOR;
11893
4.75k
yy1022:
11894
4.75k
    YYDEBUG(1022, *YYCURSOR);
11895
4.75k
    yyleng = YYCURSOR - SCNG(yy_text);
11896
4.75k
#line 2865 "Zend/zend_language_scanner.l"
11897
4.75k
    {
11898
4.75k
  if (GET_DOUBLE_QUOTES_SCANNED_LENGTH()) {
11899
1.09k
    YYCURSOR += GET_DOUBLE_QUOTES_SCANNED_LENGTH() - 1;
11900
1.09k
    SET_DOUBLE_QUOTES_SCANNED_LENGTH(0);
11901
11902
1.09k
    goto double_quotes_scan_done;
11903
1.09k
  }
11904
11905
3.66k
  if (YYCURSOR > YYLIMIT) {
11906
3
    RETURN_END_TOKEN;
11907
3
  }
11908
3.65k
  if (yytext[0] == '\\' && YYCURSOR < YYLIMIT) {
11909
5
    YYCURSOR++;
11910
5
  }
11911
11912
57.7k
  while (YYCURSOR < YYLIMIT) {
11913
57.7k
    switch (*YYCURSOR++) {
11914
160
      case '"':
11915
160
        break;
11916
4.00k
      case '$':
11917
4.00k
        if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
11918
3.23k
          break;
11919
3.23k
        }
11920
768
        continue;
11921
768
      case '{':
11922
357
        if (*YYCURSOR == '$') {
11923
264
          break;
11924
264
        }
11925
93
        continue;
11926
150
      case '\\':
11927
150
        if (YYCURSOR < YYLIMIT) {
11928
150
          YYCURSOR++;
11929
150
        }
11930
150
        ZEND_FALLTHROUGH;
11931
53.1k
      default:
11932
53.1k
        continue;
11933
57.7k
    }
11934
11935
3.65k
    YYCURSOR--;
11936
3.65k
    break;
11937
57.7k
  }
11938
11939
4.75k
double_quotes_scan_done:
11940
4.75k
  yyleng = YYCURSOR - SCNG(yy_text);
11941
11942
4.75k
  if (EXPECTED(zend_scan_escape_string(zendlval, yytext, yyleng, '"') == SUCCESS)
11943
4.75k
   || !PARSER_MODE()) {
11944
4.75k
    RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
11945
4.75k
  } else {
11946
0
    RETURN_TOKEN(T_ERROR);
11947
0
  }
11948
4.75k
}
11949
0
#line 11950 "Zend/zend_language_scanner.c"
11950
208
yy1023:
11951
208
    YYDEBUG(1023, *YYCURSOR);
11952
208
    ++YYCURSOR;
11953
208
    YYDEBUG(1024, *YYCURSOR);
11954
208
    yyleng = YYCURSOR - SCNG(yy_text);
11955
208
#line 2854 "Zend/zend_language_scanner.l"
11956
208
    {
11957
208
  BEGIN(ST_IN_SCRIPTING);
11958
208
  RETURN_TOKEN('"');
11959
208
}
11960
0
#line 11961 "Zend/zend_language_scanner.c"
11961
3.74k
yy1025:
11962
3.74k
    YYDEBUG(1025, *YYCURSOR);
11963
3.74k
    yych = *++YYCURSOR;
11964
3.74k
    if (yych <= '_') {
11965
75
      if (yych <= '@') goto yy1022;
11966
75
      if (yych <= 'Z') goto yy1027;
11967
0
      if (yych <= '^') goto yy1022;
11968
0
      goto yy1027;
11969
3.67k
    } else {
11970
3.67k
      if (yych <= 'z') {
11971
3.62k
        if (yych <= '`') goto yy1022;
11972
3.62k
        goto yy1027;
11973
3.62k
      } else {
11974
42
        if (yych <= '{') goto yy1030;
11975
9
        if (yych <= 0x7F) goto yy1022;
11976
9
        goto yy1027;
11977
9
      }
11978
3.67k
    }
11979
861
yy1026:
11980
861
    YYDEBUG(1026, *YYCURSOR);
11981
861
    yych = *++YYCURSOR;
11982
861
    if (yych == '$') goto yy1032;
11983
9
    goto yy1022;
11984
14.7k
yy1027:
11985
14.7k
    YYDEBUG(1027, *YYCURSOR);
11986
14.7k
    YYMARKER = ++YYCURSOR;
11987
14.7k
    YYFILL(4);
11988
14.7k
    yych = *YYCURSOR;
11989
14.7k
    YYDEBUG(1028, *YYCURSOR);
11990
14.7k
    if (yybm[0+yych] & 128) {
11991
11.0k
      goto yy1027;
11992
11.0k
    }
11993
3.71k
    if (yych <= '>') {
11994
453
      if (yych == '-') goto yy1034;
11995
3.26k
    } else {
11996
3.26k
      if (yych <= '?') goto yy1036;
11997
598
      if (yych <= '@') goto yy1029;
11998
598
      if (yych <= '[') goto yy1037;
11999
598
    }
12000
1.95k
yy1029:
12001
1.95k
    YYDEBUG(1029, *YYCURSOR);
12002
1.95k
    yyleng = YYCURSOR - SCNG(yy_text);
12003
1.95k
#line 2417 "Zend/zend_language_scanner.l"
12004
1.95k
    {
12005
1.95k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12006
1.95k
}
12007
0
#line 12008 "Zend/zend_language_scanner.c"
12008
33
yy1030:
12009
33
    YYDEBUG(1030, *YYCURSOR);
12010
33
    ++YYCURSOR;
12011
33
    YYDEBUG(1031, *YYCURSOR);
12012
33
    yyleng = YYCURSOR - SCNG(yy_text);
12013
33
#line 1981 "Zend/zend_language_scanner.l"
12014
33
    {
12015
33
  yy_push_state(ST_LOOKING_FOR_VARNAME);
12016
33
  enter_nesting('{');
12017
33
  RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES);
12018
33
}
12019
0
#line 12020 "Zend/zend_language_scanner.c"
12020
852
yy1032:
12021
852
    YYDEBUG(1032, *YYCURSOR);
12022
852
    ++YYCURSOR;
12023
852
    YYDEBUG(1033, *YYCURSOR);
12024
852
    yyleng = YYCURSOR - SCNG(yy_text);
12025
852
#line 2846 "Zend/zend_language_scanner.l"
12026
852
    {
12027
852
  yy_push_state(ST_IN_SCRIPTING);
12028
852
  yyless(1);
12029
852
  enter_nesting('{');
12030
852
  RETURN_TOKEN(T_CURLY_OPEN);
12031
852
}
12032
0
#line 12033 "Zend/zend_language_scanner.c"
12033
120
yy1034:
12034
120
    YYDEBUG(1034, *YYCURSOR);
12035
120
    yych = *++YYCURSOR;
12036
120
    if (yych == '>') goto yy1039;
12037
1.55k
yy1035:
12038
1.55k
    YYDEBUG(1035, *YYCURSOR);
12039
1.55k
    YYCURSOR = YYMARKER;
12040
1.55k
    goto yy1029;
12041
2.66k
yy1036:
12042
2.66k
    YYDEBUG(1036, *YYCURSOR);
12043
2.66k
    yych = *++YYCURSOR;
12044
2.66k
    if (yych == '-') goto yy1040;
12045
1.48k
    goto yy1035;
12046
1.48k
yy1037:
12047
529
    YYDEBUG(1037, *YYCURSOR);
12048
529
    ++YYCURSOR;
12049
529
    YYDEBUG(1038, *YYCURSOR);
12050
529
    yyleng = YYCURSOR - SCNG(yy_text);
12051
529
#line 2411 "Zend/zend_language_scanner.l"
12052
529
    {
12053
529
  yyless(yyleng - 1);
12054
529
  yy_push_state(ST_VAR_OFFSET);
12055
529
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12056
529
}
12057
0
#line 12058 "Zend/zend_language_scanner.c"
12058
111
yy1039:
12059
111
    YYDEBUG(1039, *YYCURSOR);
12060
111
    yych = *++YYCURSOR;
12061
111
    if (yych <= '_') {
12062
0
      if (yych <= '@') goto yy1035;
12063
0
      if (yych <= 'Z') goto yy1041;
12064
0
      if (yych <= '^') goto yy1035;
12065
0
      goto yy1041;
12066
111
    } else {
12067
111
      if (yych <= '`') goto yy1035;
12068
111
      if (yych <= 'z') goto yy1041;
12069
0
      if (yych <= 0x7F) goto yy1035;
12070
0
      goto yy1041;
12071
0
    }
12072
1.17k
yy1040:
12073
1.17k
    YYDEBUG(1040, *YYCURSOR);
12074
1.17k
    yych = *++YYCURSOR;
12075
1.17k
    if (yych == '>') goto yy1043;
12076
18
    goto yy1035;
12077
111
yy1041:
12078
111
    YYDEBUG(1041, *YYCURSOR);
12079
111
    ++YYCURSOR;
12080
111
    YYDEBUG(1042, *YYCURSOR);
12081
111
    yyleng = YYCURSOR - SCNG(yy_text);
12082
111
#line 2397 "Zend/zend_language_scanner.l"
12083
111
    {
12084
111
  yyless(yyleng - 3);
12085
111
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
12086
111
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12087
111
}
12088
0
#line 12089 "Zend/zend_language_scanner.c"
12089
1.16k
yy1043:
12090
1.16k
    YYDEBUG(1043, *YYCURSOR);
12091
1.16k
    yych = *++YYCURSOR;
12092
1.16k
    if (yych <= '_') {
12093
44
      if (yych <= '@') goto yy1035;
12094
4
      if (yych <= 'Z') goto yy1044;
12095
4
      if (yych <= '^') goto yy1035;
12096
1.11k
    } else {
12097
1.11k
      if (yych <= '`') goto yy1035;
12098
1.11k
      if (yych <= 'z') goto yy1044;
12099
0
      if (yych <= 0x7F) goto yy1035;
12100
0
    }
12101
1.11k
yy1044:
12102
1.11k
    YYDEBUG(1044, *YYCURSOR);
12103
1.11k
    ++YYCURSOR;
12104
1.11k
    YYDEBUG(1045, *YYCURSOR);
12105
1.11k
    yyleng = YYCURSOR - SCNG(yy_text);
12106
1.11k
#line 2403 "Zend/zend_language_scanner.l"
12107
1.11k
    {
12108
1.11k
  yyless(yyleng - 4);
12109
1.11k
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
12110
1.11k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12111
1.11k
}
12112
1.11k
#line 12113 "Zend/zend_language_scanner.c"
12113
1.11k
  }
12114
/* *********************************** */
12115
34.5k
yyc_ST_HEREDOC:
12116
34.5k
  {
12117
34.5k
    static const unsigned char yybm[] = {
12118
34.5k
        0,   0,   0,   0,   0,   0,   0,   0, 
12119
34.5k
        0,   0,   0,   0,   0,   0,   0,   0, 
12120
34.5k
        0,   0,   0,   0,   0,   0,   0,   0, 
12121
34.5k
        0,   0,   0,   0,   0,   0,   0,   0, 
12122
34.5k
        0,   0,   0,   0,   0,   0,   0,   0, 
12123
34.5k
        0,   0,   0,   0,   0,   0,   0,   0, 
12124
34.5k
      128, 128, 128, 128, 128, 128, 128, 128, 
12125
34.5k
      128, 128,   0,   0,   0,   0,   0,   0, 
12126
34.5k
        0, 128, 128, 128, 128, 128, 128, 128, 
12127
34.5k
      128, 128, 128, 128, 128, 128, 128, 128, 
12128
34.5k
      128, 128, 128, 128, 128, 128, 128, 128, 
12129
34.5k
      128, 128, 128,   0,   0,   0,   0, 128, 
12130
34.5k
        0, 128, 128, 128, 128, 128, 128, 128, 
12131
34.5k
      128, 128, 128, 128, 128, 128, 128, 128, 
12132
34.5k
      128, 128, 128, 128, 128, 128, 128, 128, 
12133
34.5k
      128, 128, 128,   0,   0,   0,   0,   0, 
12134
34.5k
      128, 128, 128, 128, 128, 128, 128, 128, 
12135
34.5k
      128, 128, 128, 128, 128, 128, 128, 128, 
12136
34.5k
      128, 128, 128, 128, 128, 128, 128, 128, 
12137
34.5k
      128, 128, 128, 128, 128, 128, 128, 128, 
12138
34.5k
      128, 128, 128, 128, 128, 128, 128, 128, 
12139
34.5k
      128, 128, 128, 128, 128, 128, 128, 128, 
12140
34.5k
      128, 128, 128, 128, 128, 128, 128, 128, 
12141
34.5k
      128, 128, 128, 128, 128, 128, 128, 128, 
12142
34.5k
      128, 128, 128, 128, 128, 128, 128, 128, 
12143
34.5k
      128, 128, 128, 128, 128, 128, 128, 128, 
12144
34.5k
      128, 128, 128, 128, 128, 128, 128, 128, 
12145
34.5k
      128, 128, 128, 128, 128, 128, 128, 128, 
12146
34.5k
      128, 128, 128, 128, 128, 128, 128, 128, 
12147
34.5k
      128, 128, 128, 128, 128, 128, 128, 128, 
12148
34.5k
      128, 128, 128, 128, 128, 128, 128, 128, 
12149
34.5k
      128, 128, 128, 128, 128, 128, 128, 128, 
12150
34.5k
    };
12151
34.5k
    YYDEBUG(1046, *YYCURSOR);
12152
34.5k
    YYFILL(2);
12153
34.5k
    yych = *YYCURSOR;
12154
34.5k
    if (yych == '$') goto yy1050;
12155
9.09k
    if (yych == '{') goto yy1051;
12156
7.88k
    YYDEBUG(1048, *YYCURSOR);
12157
7.88k
    ++YYCURSOR;
12158
9.47k
yy1049:
12159
9.47k
    YYDEBUG(1049, *YYCURSOR);
12160
9.47k
    yyleng = YYCURSOR - SCNG(yy_text);
12161
9.47k
#line 2965 "Zend/zend_language_scanner.l"
12162
9.47k
    {
12163
9.47k
  zend_heredoc_label *heredoc_label = zend_ptr_stack_top(&SCNG(heredoc_label_stack));
12164
9.47k
  int newline = 0, indentation = 0, spacing = 0;
12165
12166
9.47k
  if (YYCURSOR > YYLIMIT) {
12167
0
    RETURN_END_TOKEN;
12168
0
  }
12169
12170
9.47k
  YYCURSOR--;
12171
12172
230k
  while (YYCURSOR < YYLIMIT) {
12173
230k
    switch (*YYCURSOR++) {
12174
643
      case '\r':
12175
643
        if (*YYCURSOR == '\n') {
12176
4
          YYCURSOR++;
12177
4
        }
12178
643
        ZEND_FALLTHROUGH;
12179
11.5k
      case '\n':
12180
11.5k
        indentation = spacing = 0;
12181
12182
15.5k
        while (YYCURSOR < YYLIMIT && (*YYCURSOR == ' ' || *YYCURSOR == '\t')) {
12183
4.03k
          if (*YYCURSOR == '\t') {
12184
0
            spacing |= HEREDOC_USING_TABS;
12185
4.03k
          } else {
12186
4.03k
            spacing |= HEREDOC_USING_SPACES;
12187
4.03k
          }
12188
4.03k
          ++YYCURSOR;
12189
4.03k
          ++indentation;
12190
4.03k
        }
12191
12192
11.5k
        if (YYCURSOR == YYLIMIT) {
12193
0
          yyleng = YYCURSOR - SCNG(yy_text);
12194
0
          HANDLE_NEWLINES(yytext, yyleng);
12195
0
          ZVAL_NULL(zendlval);
12196
0
          RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
12197
0
        }
12198
12199
        /* Check for ending label on the next line */
12200
11.5k
        if (IS_LABEL_START(*YYCURSOR) && heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, heredoc_label->label, heredoc_label->length)) {
12201
548
          if (IS_LABEL_SUCCESSOR(YYCURSOR[heredoc_label->length])) {
12202
546
            continue;
12203
546
          }
12204
12205
2
          if (spacing == (HEREDOC_USING_SPACES | HEREDOC_USING_TABS)) {
12206
0
            zend_throw_exception(zend_ce_parse_error, "Invalid indentation - tabs and spaces cannot be mixed", 0);
12207
0
            if (PARSER_MODE()) {
12208
0
              RETURN_TOKEN(T_ERROR);
12209
0
            }
12210
0
          }
12211
12212
          /* newline before label will be subtracted from returned text, but
12213
           * yyleng/yytext will include it, for zend_highlight/strip, tokenizer, etc. */
12214
2
          if (YYCURSOR[-indentation - 2] == '\r' && YYCURSOR[-indentation - 1] == '\n') {
12215
0
            newline = 2; /* Windows newline */
12216
2
          } else {
12217
2
            newline = 1;
12218
2
          }
12219
12220
2
          CG(increment_lineno) = 1; /* For newline before label */
12221
12222
2
          if (SCNG(heredoc_scan_ahead)) {
12223
1
            SCNG(heredoc_indentation) = indentation;
12224
1
            SCNG(heredoc_indentation_uses_spaces) = (spacing == HEREDOC_USING_SPACES);
12225
1
          } else {
12226
1
            YYCURSOR -= indentation;
12227
1
          }
12228
12229
2
          BEGIN(ST_END_HEREDOC);
12230
12231
2
          goto heredoc_scan_done;
12232
2
        }
12233
11.0k
        continue;
12234
12.5k
      case '$':
12235
12.5k
        if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
12236
9.32k
          break;
12237
9.32k
        }
12238
3.22k
        continue;
12239
3.22k
      case '{':
12240
3.05k
        if (*YYCURSOR == '$') {
12241
141
          break;
12242
141
        }
12243
2.91k
        continue;
12244
2.91k
      case '\\':
12245
380
        if (YYCURSOR < YYLIMIT && *YYCURSOR != '\n' && *YYCURSOR != '\r') {
12246
380
          YYCURSOR++;
12247
380
        }
12248
380
        ZEND_FALLTHROUGH;
12249
203k
      default:
12250
203k
        continue;
12251
230k
    }
12252
12253
9.46k
    YYCURSOR--;
12254
9.46k
    break;
12255
230k
  }
12256
12257
9.47k
heredoc_scan_done:
12258
12259
9.47k
  yyleng = YYCURSOR - SCNG(yy_text);
12260
9.47k
  ZVAL_STRINGL(zendlval, yytext, yyleng - newline);
12261
12262
9.47k
  if (!SCNG(heredoc_scan_ahead) && !EG(exception) && PARSER_MODE()) {
12263
617
    bool newline_at_start = *(yytext - 1) == '\n' || *(yytext - 1) == '\r';
12264
617
    zend_string *copy = Z_STR_P(zendlval);
12265
12266
617
    if (!strip_multiline_string_indentation(
12267
617
        zendlval, heredoc_label->indentation, heredoc_label->indentation_uses_spaces,
12268
617
        newline_at_start, newline != 0)) {
12269
0
      RETURN_TOKEN(T_ERROR);
12270
0
    }
12271
12272
617
    if (UNEXPECTED(zend_scan_escape_string(zendlval, ZSTR_VAL(copy), ZSTR_LEN(copy), 0) != SUCCESS)) {
12273
0
      zend_string_efree(copy);
12274
0
      RETURN_TOKEN(T_ERROR);
12275
0
    }
12276
12277
617
    zend_string_efree(copy);
12278
8.85k
  } else {
12279
8.85k
    HANDLE_NEWLINES(yytext, yyleng - newline);
12280
8.85k
  }
12281
12282
9.47k
  RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
12283
9.47k
}
12284
0
#line 12285 "Zend/zend_language_scanner.c"
12285
25.4k
yy1050:
12286
25.4k
    YYDEBUG(1050, *YYCURSOR);
12287
25.4k
    yych = *++YYCURSOR;
12288
25.4k
    if (yych <= '_') {
12289
993
      if (yych <= '@') goto yy1049;
12290
0
      if (yych <= 'Z') goto yy1052;
12291
0
      if (yych <= '^') goto yy1049;
12292
0
      goto yy1052;
12293
24.4k
    } else {
12294
24.4k
      if (yych <= 'z') {
12295
2.25k
        if (yych <= '`') goto yy1049;
12296
2.25k
        goto yy1052;
12297
22.2k
      } else {
12298
22.2k
        if (yych <= '{') goto yy1055;
12299
2.39k
        if (yych <= 0x7F) goto yy1049;
12300
2.39k
        goto yy1052;
12301
2.39k
      }
12302
24.4k
    }
12303
1.21k
yy1051:
12304
1.21k
    YYDEBUG(1051, *YYCURSOR);
12305
1.21k
    yych = *++YYCURSOR;
12306
1.21k
    if (yych == '$') goto yy1057;
12307
597
    goto yy1049;
12308
25.1k
yy1052:
12309
25.1k
    YYDEBUG(1052, *YYCURSOR);
12310
25.1k
    YYMARKER = ++YYCURSOR;
12311
25.1k
    YYFILL(4);
12312
25.1k
    yych = *YYCURSOR;
12313
25.1k
    YYDEBUG(1053, *YYCURSOR);
12314
25.1k
    if (yybm[0+yych] & 128) {
12315
20.4k
      goto yy1052;
12316
20.4k
    }
12317
4.65k
    if (yych <= '>') {
12318
2.38k
      if (yych == '-') goto yy1059;
12319
2.38k
    } else {
12320
2.26k
      if (yych <= '?') goto yy1061;
12321
1.13k
      if (yych <= '@') goto yy1054;
12322
1.13k
      if (yych <= '[') goto yy1062;
12323
1.13k
    }
12324
3.94k
yy1054:
12325
3.94k
    YYDEBUG(1054, *YYCURSOR);
12326
3.94k
    yyleng = YYCURSOR - SCNG(yy_text);
12327
3.94k
#line 2417 "Zend/zend_language_scanner.l"
12328
3.94k
    {
12329
3.94k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12330
3.94k
}
12331
0
#line 12332 "Zend/zend_language_scanner.c"
12332
19.8k
yy1055:
12333
19.8k
    YYDEBUG(1055, *YYCURSOR);
12334
19.8k
    ++YYCURSOR;
12335
19.8k
    YYDEBUG(1056, *YYCURSOR);
12336
19.8k
    yyleng = YYCURSOR - SCNG(yy_text);
12337
19.8k
#line 1981 "Zend/zend_language_scanner.l"
12338
19.8k
    {
12339
19.8k
  yy_push_state(ST_LOOKING_FOR_VARNAME);
12340
19.8k
  enter_nesting('{');
12341
19.8k
  RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES);
12342
19.8k
}
12343
0
#line 12344 "Zend/zend_language_scanner.c"
12344
621
yy1057:
12345
621
    YYDEBUG(1057, *YYCURSOR);
12346
621
    ++YYCURSOR;
12347
621
    YYDEBUG(1058, *YYCURSOR);
12348
621
    yyleng = YYCURSOR - SCNG(yy_text);
12349
621
#line 2846 "Zend/zend_language_scanner.l"
12350
621
    {
12351
621
  yy_push_state(ST_IN_SCRIPTING);
12352
621
  yyless(1);
12353
621
  enter_nesting('{');
12354
621
  RETURN_TOKEN(T_CURLY_OPEN);
12355
621
}
12356
0
#line 12357 "Zend/zend_language_scanner.c"
12357
4
yy1059:
12358
4
    YYDEBUG(1059, *YYCURSOR);
12359
4
    yych = *++YYCURSOR;
12360
4
    if (yych == '>') goto yy1064;
12361
608
yy1060:
12362
608
    YYDEBUG(1060, *YYCURSOR);
12363
608
    YYCURSOR = YYMARKER;
12364
608
    goto yy1054;
12365
1.13k
yy1061:
12366
1.13k
    YYDEBUG(1061, *YYCURSOR);
12367
1.13k
    yych = *++YYCURSOR;
12368
1.13k
    if (yych == '-') goto yy1065;
12369
588
    goto yy1060;
12370
588
yy1062:
12371
174
    YYDEBUG(1062, *YYCURSOR);
12372
174
    ++YYCURSOR;
12373
174
    YYDEBUG(1063, *YYCURSOR);
12374
174
    yyleng = YYCURSOR - SCNG(yy_text);
12375
174
#line 2411 "Zend/zend_language_scanner.l"
12376
174
    {
12377
174
  yyless(yyleng - 1);
12378
174
  yy_push_state(ST_VAR_OFFSET);
12379
174
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12380
174
}
12381
0
#line 12382 "Zend/zend_language_scanner.c"
12382
2
yy1064:
12383
2
    YYDEBUG(1064, *YYCURSOR);
12384
2
    yych = *++YYCURSOR;
12385
2
    if (yych <= '_') {
12386
0
      if (yych <= '@') goto yy1060;
12387
0
      if (yych <= 'Z') goto yy1066;
12388
0
      if (yych <= '^') goto yy1060;
12389
0
      goto yy1066;
12390
2
    } else {
12391
2
      if (yych <= '`') goto yy1060;
12392
2
      if (yych <= 'z') goto yy1066;
12393
0
      if (yych <= 0x7F) goto yy1060;
12394
0
      goto yy1066;
12395
0
    }
12396
548
yy1065:
12397
548
    YYDEBUG(1065, *YYCURSOR);
12398
548
    yych = *++YYCURSOR;
12399
548
    if (yych == '>') goto yy1068;
12400
18
    goto yy1060;
12401
18
yy1066:
12402
2
    YYDEBUG(1066, *YYCURSOR);
12403
2
    ++YYCURSOR;
12404
2
    YYDEBUG(1067, *YYCURSOR);
12405
2
    yyleng = YYCURSOR - SCNG(yy_text);
12406
2
#line 2397 "Zend/zend_language_scanner.l"
12407
2
    {
12408
2
  yyless(yyleng - 3);
12409
2
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
12410
2
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12411
2
}
12412
0
#line 12413 "Zend/zend_language_scanner.c"
12413
530
yy1068:
12414
530
    YYDEBUG(1068, *YYCURSOR);
12415
530
    yych = *++YYCURSOR;
12416
530
    if (yych <= '_') {
12417
0
      if (yych <= '@') goto yy1060;
12418
0
      if (yych <= 'Z') goto yy1069;
12419
0
      if (yych <= '^') goto yy1060;
12420
530
    } else {
12421
530
      if (yych <= '`') goto yy1060;
12422
530
      if (yych <= 'z') goto yy1069;
12423
20
      if (yych <= 0x7F) goto yy1060;
12424
20
    }
12425
530
yy1069:
12426
530
    YYDEBUG(1069, *YYCURSOR);
12427
530
    ++YYCURSOR;
12428
530
    YYDEBUG(1070, *YYCURSOR);
12429
530
    yyleng = YYCURSOR - SCNG(yy_text);
12430
530
#line 2403 "Zend/zend_language_scanner.l"
12431
530
    {
12432
530
  yyless(yyleng - 4);
12433
530
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
12434
530
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12435
530
}
12436
530
#line 12437 "Zend/zend_language_scanner.c"
12437
530
  }
12438
/* *********************************** */
12439
19.8k
yyc_ST_LOOKING_FOR_VARNAME:
12440
19.8k
  {
12441
19.8k
    static const unsigned char yybm[] = {
12442
19.8k
        0,   0,   0,   0,   0,   0,   0,   0, 
12443
19.8k
        0,   0,   0,   0,   0,   0,   0,   0, 
12444
19.8k
        0,   0,   0,   0,   0,   0,   0,   0, 
12445
19.8k
        0,   0,   0,   0,   0,   0,   0,   0, 
12446
19.8k
        0,   0,   0,   0,   0,   0,   0,   0, 
12447
19.8k
        0,   0,   0,   0,   0,   0,   0,   0, 
12448
19.8k
      128, 128, 128, 128, 128, 128, 128, 128, 
12449
19.8k
      128, 128,   0,   0,   0,   0,   0,   0, 
12450
19.8k
        0, 128, 128, 128, 128, 128, 128, 128, 
12451
19.8k
      128, 128, 128, 128, 128, 128, 128, 128, 
12452
19.8k
      128, 128, 128, 128, 128, 128, 128, 128, 
12453
19.8k
      128, 128, 128,   0,   0,   0,   0, 128, 
12454
19.8k
        0, 128, 128, 128, 128, 128, 128, 128, 
12455
19.8k
      128, 128, 128, 128, 128, 128, 128, 128, 
12456
19.8k
      128, 128, 128, 128, 128, 128, 128, 128, 
12457
19.8k
      128, 128, 128,   0,   0,   0,   0,   0, 
12458
19.8k
      128, 128, 128, 128, 128, 128, 128, 128, 
12459
19.8k
      128, 128, 128, 128, 128, 128, 128, 128, 
12460
19.8k
      128, 128, 128, 128, 128, 128, 128, 128, 
12461
19.8k
      128, 128, 128, 128, 128, 128, 128, 128, 
12462
19.8k
      128, 128, 128, 128, 128, 128, 128, 128, 
12463
19.8k
      128, 128, 128, 128, 128, 128, 128, 128, 
12464
19.8k
      128, 128, 128, 128, 128, 128, 128, 128, 
12465
19.8k
      128, 128, 128, 128, 128, 128, 128, 128, 
12466
19.8k
      128, 128, 128, 128, 128, 128, 128, 128, 
12467
19.8k
      128, 128, 128, 128, 128, 128, 128, 128, 
12468
19.8k
      128, 128, 128, 128, 128, 128, 128, 128, 
12469
19.8k
      128, 128, 128, 128, 128, 128, 128, 128, 
12470
19.8k
      128, 128, 128, 128, 128, 128, 128, 128, 
12471
19.8k
      128, 128, 128, 128, 128, 128, 128, 128, 
12472
19.8k
      128, 128, 128, 128, 128, 128, 128, 128, 
12473
19.8k
      128, 128, 128, 128, 128, 128, 128, 128, 
12474
19.8k
    };
12475
19.8k
    YYDEBUG(1071, *YYCURSOR);
12476
19.8k
    YYFILL(2);
12477
19.8k
    yych = *YYCURSOR;
12478
19.8k
    if (yych <= '_') {
12479
19.5k
      if (yych <= '@') goto yy1073;
12480
0
      if (yych <= 'Z') goto yy1075;
12481
0
      if (yych >= '_') goto yy1075;
12482
348
    } else {
12483
348
      if (yych <= '`') goto yy1073;
12484
348
      if (yych <= 'z') goto yy1075;
12485
348
      if (yych >= 0x80) goto yy1075;
12486
348
    }
12487
19.5k
yy1073:
12488
19.5k
    YYDEBUG(1073, *YYCURSOR);
12489
19.5k
    ++YYCURSOR;
12490
19.8k
yy1074:
12491
19.8k
    YYDEBUG(1074, *YYCURSOR);
12492
19.8k
    yyleng = YYCURSOR - SCNG(yy_text);
12493
19.8k
#line 2004 "Zend/zend_language_scanner.l"
12494
19.8k
    {
12495
19.8k
  yyless(0);
12496
19.8k
  yy_pop_state();
12497
19.8k
  yy_push_state(ST_IN_SCRIPTING);
12498
19.8k
  goto restart;
12499
19.5k
}
12500
0
#line 12501 "Zend/zend_language_scanner.c"
12501
348
yy1075:
12502
348
    YYDEBUG(1075, *YYCURSOR);
12503
348
    yych = *(YYMARKER = ++YYCURSOR);
12504
348
    if (yych <= '_') {
12505
0
      if (yych <= '@') {
12506
0
        if (yych <= '/') goto yy1074;
12507
0
        if (yych <= '9') goto yy1077;
12508
0
        goto yy1074;
12509
0
      } else {
12510
0
        if (yych <= '[') goto yy1077;
12511
0
        if (yych <= '^') goto yy1074;
12512
0
        goto yy1077;
12513
0
      }
12514
348
    } else {
12515
348
      if (yych <= '|') {
12516
0
        if (yych <= '`') goto yy1074;
12517
0
        if (yych <= 'z') goto yy1077;
12518
0
        goto yy1074;
12519
348
      } else {
12520
348
        if (yych <= '}') goto yy1077;
12521
348
        if (yych <= 0x7F) goto yy1074;
12522
348
        goto yy1077;
12523
348
      }
12524
348
    }
12525
2.78k
yy1076:
12526
2.78k
    YYDEBUG(1076, *YYCURSOR);
12527
2.78k
    ++YYCURSOR;
12528
2.78k
    YYFILL(1);
12529
2.78k
    yych = *YYCURSOR;
12530
3.13k
yy1077:
12531
3.13k
    YYDEBUG(1077, *YYCURSOR);
12532
3.13k
    if (yybm[0+yych] & 128) {
12533
2.78k
      goto yy1076;
12534
2.78k
    }
12535
348
    if (yych <= '@') goto yy1078;
12536
0
    if (yych <= '[') goto yy1079;
12537
0
    if (yych == '}') goto yy1079;
12538
348
yy1078:
12539
348
    YYDEBUG(1078, *YYCURSOR);
12540
348
    YYCURSOR = YYMARKER;
12541
348
    goto yy1074;
12542
0
yy1079:
12543
0
    YYDEBUG(1079, *YYCURSOR);
12544
0
    ++YYCURSOR;
12545
0
    YYDEBUG(1080, *YYCURSOR);
12546
0
    yyleng = YYCURSOR - SCNG(yy_text);
12547
0
#line 1996 "Zend/zend_language_scanner.l"
12548
0
    {
12549
0
  yyless(yyleng - 1);
12550
0
  yy_pop_state();
12551
0
  yy_push_state(ST_IN_SCRIPTING);
12552
0
  RETURN_TOKEN_WITH_STR(T_STRING_VARNAME, 0);
12553
0
}
12554
0
#line 12555 "Zend/zend_language_scanner.c"
12555
0
  }
12556
/* *********************************** */
12557
10.6k
yyc_ST_VAR_OFFSET:
12558
10.6k
  {
12559
10.6k
    static const unsigned char yybm[] = {
12560
10.6k
        0,   0,   0,   0,   0,   0,   0,   0, 
12561
10.6k
        0,   0,   0,   0,   0,   0,   0,   0, 
12562
10.6k
        0,   0,   0,   0,   0,   0,   0,   0, 
12563
10.6k
        0,   0,   0,   0,   0,   0,   0,   0, 
12564
10.6k
        0,   0,   0,   0,   0,   0,   0,   0, 
12565
10.6k
        0,   0,   0,   0,   0,   0,   0,   0, 
12566
10.6k
      248, 248, 216, 216, 216, 216, 216, 216, 
12567
10.6k
      152, 152,   0,   0,   0,   0,   0,   0, 
12568
10.6k
        0, 144, 144, 144, 144, 144, 144,  16, 
12569
10.6k
       16,  16,  16,  16,  16,  16,  16,  16, 
12570
10.6k
       16,  16,  16,  16,  16,  16,  16,  16, 
12571
10.6k
       16,  16,  16,   0,   0,   0,   0,  16, 
12572
10.6k
        0, 144, 144, 144, 144, 144, 144,  16, 
12573
10.6k
       16,  16,  16,  16,  16,  16,  16,  16, 
12574
10.6k
       16,  16,  16,  16,  16,  16,  16,  16, 
12575
10.6k
       16,  16,  16,   0,   0,   0,   0,   0, 
12576
10.6k
       16,  16,  16,  16,  16,  16,  16,  16, 
12577
10.6k
       16,  16,  16,  16,  16,  16,  16,  16, 
12578
10.6k
       16,  16,  16,  16,  16,  16,  16,  16, 
12579
10.6k
       16,  16,  16,  16,  16,  16,  16,  16, 
12580
10.6k
       16,  16,  16,  16,  16,  16,  16,  16, 
12581
10.6k
       16,  16,  16,  16,  16,  16,  16,  16, 
12582
10.6k
       16,  16,  16,  16,  16,  16,  16,  16, 
12583
10.6k
       16,  16,  16,  16,  16,  16,  16,  16, 
12584
10.6k
       16,  16,  16,  16,  16,  16,  16,  16, 
12585
10.6k
       16,  16,  16,  16,  16,  16,  16,  16, 
12586
10.6k
       16,  16,  16,  16,  16,  16,  16,  16, 
12587
10.6k
       16,  16,  16,  16,  16,  16,  16,  16, 
12588
10.6k
       16,  16,  16,  16,  16,  16,  16,  16, 
12589
10.6k
       16,  16,  16,  16,  16,  16,  16,  16, 
12590
10.6k
       16,  16,  16,  16,  16,  16,  16,  16, 
12591
10.6k
       16,  16,  16,  16,  16,  16,  16,  16, 
12592
10.6k
    };
12593
10.6k
    YYDEBUG(1081, *YYCURSOR);
12594
10.6k
    YYFILL(2);
12595
10.6k
    yych = *YYCURSOR;
12596
10.6k
    if (yych <= '0') {
12597
4.63k
      if (yych <= ' ') {
12598
3.86k
        if (yych <= '\f') {
12599
3.15k
          if (yych <= 0x08) goto yy1083;
12600
351
          if (yych <= '\n') goto yy1085;
12601
704
        } else {
12602
704
          if (yych <= '\r') goto yy1085;
12603
704
          if (yych >= ' ') goto yy1085;
12604
704
        }
12605
3.86k
      } else {
12606
774
        if (yych <= '$') {
12607
413
          if (yych <= '"') goto yy1087;
12608
384
          if (yych <= '#') goto yy1085;
12609
384
          goto yy1089;
12610
384
        } else {
12611
361
          if (yych == '\'') goto yy1085;
12612
361
          if (yych <= '/') goto yy1087;
12613
0
          goto yy1090;
12614
361
        }
12615
774
      }
12616
6.06k
    } else {
12617
6.06k
      if (yych <= ']') {
12618
3.58k
        if (yych <= 'Z') {
12619
2.84k
          if (yych <= '9') goto yy1092;
12620
2.84k
          if (yych <= '@') goto yy1087;
12621
10
          goto yy1094;
12622
2.84k
        } else {
12623
731
          if (yych <= '[') goto yy1087;
12624
14
          if (yych <= '\\') goto yy1085;
12625
14
          goto yy1097;
12626
14
        }
12627
3.58k
      } else {
12628
2.48k
        if (yych <= '`') {
12629
352
          if (yych == '_') goto yy1094;
12630
1
          goto yy1087;
12631
2.13k
        } else {
12632
2.13k
          if (yych <= 'z') goto yy1094;
12633
1.40k
          if (yych <= '~') goto yy1087;
12634
1.05k
          if (yych >= 0x80) goto yy1094;
12635
1.05k
        }
12636
2.48k
      }
12637
6.06k
    }
12638
3.16k
yy1083:
12639
3.16k
    YYDEBUG(1083, *YYCURSOR);
12640
3.16k
    ++YYCURSOR;
12641
3.16k
    YYDEBUG(1084, *YYCURSOR);
12642
3.16k
    yyleng = YYCURSOR - SCNG(yy_text);
12643
3.16k
#line 3180 "Zend/zend_language_scanner.l"
12644
3.16k
    {
12645
3.16k
  if (YYCURSOR > YYLIMIT) {
12646
0
    RETURN_END_TOKEN;
12647
0
  }
12648
12649
3.16k
  RETURN_TOKEN(T_BAD_CHARACTER);
12650
3.16k
}
12651
0
#line 12652 "Zend/zend_language_scanner.c"
12652
703
yy1085:
12653
703
    YYDEBUG(1085, *YYCURSOR);
12654
703
    ++YYCURSOR;
12655
703
    YYDEBUG(1086, *YYCURSOR);
12656
703
    yyleng = YYCURSOR - SCNG(yy_text);
12657
703
#line 2431 "Zend/zend_language_scanner.l"
12658
703
    {
12659
  /* Invalid rule to return a more explicit parse error with proper line number */
12660
703
  yyless(0);
12661
703
  yy_pop_state();
12662
703
  ZVAL_NULL(zendlval);
12663
703
  RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
12664
703
}
12665
0
#line 12666 "Zend/zend_language_scanner.c"
12666
4.29k
yy1087:
12667
4.29k
    YYDEBUG(1087, *YYCURSOR);
12668
4.29k
    ++YYCURSOR;
12669
4.32k
yy1088:
12670
4.32k
    YYDEBUG(1088, *YYCURSOR);
12671
4.32k
    yyleng = YYCURSOR - SCNG(yy_text);
12672
4.32k
#line 2426 "Zend/zend_language_scanner.l"
12673
4.32k
    {
12674
  /* Only '[' or '-' can be valid, but returning other tokens will allow a more explicit parse error */
12675
4.32k
  RETURN_TOKEN(yytext[0]);
12676
4.32k
}
12677
0
#line 12678 "Zend/zend_language_scanner.c"
12678
384
yy1089:
12679
384
    YYDEBUG(1089, *YYCURSOR);
12680
384
    yych = *++YYCURSOR;
12681
384
    if (yych <= '_') {
12682
24
      if (yych <= '@') goto yy1088;
12683
0
      if (yych <= 'Z') goto yy1099;
12684
0
      if (yych <= '^') goto yy1088;
12685
0
      goto yy1099;
12686
360
    } else {
12687
360
      if (yych <= '`') goto yy1088;
12688
360
      if (yych <= 'z') goto yy1099;
12689
0
      if (yych <= 0x7F) goto yy1088;
12690
0
      goto yy1099;
12691
0
    }
12692
0
yy1090:
12693
0
    YYDEBUG(1090, *YYCURSOR);
12694
0
    yyaccept = 0;
12695
0
    yych = *(YYMARKER = ++YYCURSOR);
12696
0
    if (yych <= 'X') {
12697
0
      if (yych <= 'B') {
12698
0
        if (yych <= '/') goto yy1091;
12699
0
        if (yych <= '9') goto yy1102;
12700
0
        if (yych >= 'B') goto yy1105;
12701
0
      } else {
12702
0
        if (yych == 'O') goto yy1107;
12703
0
        if (yych >= 'X') goto yy1108;
12704
0
      }
12705
0
    } else {
12706
0
      if (yych <= 'b') {
12707
0
        if (yych == '_') goto yy1109;
12708
0
        if (yych >= 'b') goto yy1105;
12709
0
      } else {
12710
0
        if (yych <= 'o') {
12711
0
          if (yych >= 'o') goto yy1107;
12712
0
        } else {
12713
0
          if (yych == 'x') goto yy1108;
12714
0
        }
12715
0
      }
12716
0
    }
12717
0
yy1091:
12718
0
    YYDEBUG(1091, *YYCURSOR);
12719
0
    yyleng = YYCURSOR - SCNG(yy_text);
12720
0
#line 2208 "Zend/zend_language_scanner.l"
12721
0
    { /* Offset could be treated as a long */
12722
0
  if (yyleng < MAX_LENGTH_OF_LONG - 1 || (yyleng == MAX_LENGTH_OF_LONG - 1 && strcmp(yytext, long_min_digits) < 0)) {
12723
0
    char *end;
12724
0
    errno = 0;
12725
0
    ZVAL_LONG(zendlval, ZEND_STRTOL(yytext, &end, 10));
12726
0
    if (errno == ERANGE) {
12727
0
      goto string;
12728
0
    }
12729
0
    ZEND_ASSERT(end == yytext + yyleng);
12730
0
  } else {
12731
0
string:
12732
0
    ZVAL_STRINGL(zendlval, yytext, yyleng);
12733
0
  }
12734
0
  RETURN_TOKEN_WITH_VAL(T_NUM_STRING);
12735
0
}
12736
0
#line 12737 "Zend/zend_language_scanner.c"
12737
0
yy1092:
12738
0
    YYDEBUG(1092, *YYCURSOR);
12739
0
    yyaccept = 0;
12740
0
    YYMARKER = ++YYCURSOR;
12741
0
    YYFILL(1);
12742
0
    yych = *YYCURSOR;
12743
0
    YYDEBUG(1093, *YYCURSOR);
12744
0
    if (yybm[0+yych] & 8) {
12745
0
      goto yy1092;
12746
0
    }
12747
0
    if (yych == '_') goto yy1109;
12748
0
    goto yy1091;
12749
15.5k
yy1094:
12750
15.5k
    YYDEBUG(1094, *YYCURSOR);
12751
15.5k
    ++YYCURSOR;
12752
15.5k
    YYFILL(1);
12753
15.5k
    yych = *YYCURSOR;
12754
15.5k
    YYDEBUG(1095, *YYCURSOR);
12755
15.5k
    if (yybm[0+yych] & 16) {
12756
13.4k
      goto yy1094;
12757
13.4k
    }
12758
2.14k
    YYDEBUG(1096, *YYCURSOR);
12759
2.14k
    yyleng = YYCURSOR - SCNG(yy_text);
12760
2.14k
#line 2455 "Zend/zend_language_scanner.l"
12761
2.14k
    {
12762
2.14k
  RETURN_TOKEN_WITH_STR(T_STRING, 0);
12763
2.14k
}
12764
0
#line 12765 "Zend/zend_language_scanner.c"
12765
14
yy1097:
12766
14
    YYDEBUG(1097, *YYCURSOR);
12767
14
    ++YYCURSOR;
12768
14
    YYDEBUG(1098, *YYCURSOR);
12769
14
    yyleng = YYCURSOR - SCNG(yy_text);
12770
14
#line 2421 "Zend/zend_language_scanner.l"
12771
14
    {
12772
14
  yy_pop_state();
12773
14
  RETURN_TOKEN(']');
12774
14
}
12775
0
#line 12776 "Zend/zend_language_scanner.c"
12776
723
yy1099:
12777
723
    YYDEBUG(1099, *YYCURSOR);
12778
723
    ++YYCURSOR;
12779
723
    YYFILL(1);
12780
723
    yych = *YYCURSOR;
12781
723
    YYDEBUG(1100, *YYCURSOR);
12782
723
    if (yych <= '^') {
12783
359
      if (yych <= '9') {
12784
353
        if (yych >= '0') goto yy1099;
12785
353
      } else {
12786
6
        if (yych <= '@') goto yy1101;
12787
0
        if (yych <= 'Z') goto yy1099;
12788
0
      }
12789
364
    } else {
12790
364
      if (yych <= '`') {
12791
1
        if (yych <= '_') goto yy1099;
12792
363
      } else {
12793
363
        if (yych <= 'z') goto yy1099;
12794
351
        if (yych >= 0x80) goto yy1099;
12795
351
      }
12796
364
    }
12797
360
yy1101:
12798
360
    YYDEBUG(1101, *YYCURSOR);
12799
360
    yyleng = YYCURSOR - SCNG(yy_text);
12800
360
#line 2417 "Zend/zend_language_scanner.l"
12801
360
    {
12802
360
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12803
360
}
12804
0
#line 12805 "Zend/zend_language_scanner.c"
12805
0
yy1102:
12806
0
    YYDEBUG(1102, *YYCURSOR);
12807
0
    yyaccept = 1;
12808
0
    YYMARKER = ++YYCURSOR;
12809
0
    YYFILL(1);
12810
0
    yych = *YYCURSOR;
12811
0
    YYDEBUG(1103, *YYCURSOR);
12812
0
    if (yych <= '/') goto yy1104;
12813
0
    if (yych <= '9') goto yy1102;
12814
0
    if (yych == '_') goto yy1109;
12815
0
yy1104:
12816
0
    YYDEBUG(1104, *YYCURSOR);
12817
0
    yyleng = YYCURSOR - SCNG(yy_text);
12818
0
#line 2224 "Zend/zend_language_scanner.l"
12819
0
    { /* Offset must be treated as a string */
12820
0
  if (yyleng == 1) {
12821
0
    ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR((zend_uchar)*(yytext)));
12822
0
  } else {
12823
0
    ZVAL_STRINGL(zendlval, yytext, yyleng);
12824
0
  }
12825
0
  RETURN_TOKEN_WITH_VAL(T_NUM_STRING);
12826
0
}
12827
0
#line 12828 "Zend/zend_language_scanner.c"
12828
0
yy1105:
12829
0
    YYDEBUG(1105, *YYCURSOR);
12830
0
    ++YYCURSOR;
12831
0
    YYFILL(1);
12832
0
    yych = *YYCURSOR;
12833
0
    if (yybm[0+yych] & 32) {
12834
0
      goto yy1110;
12835
0
    }
12836
0
yy1106:
12837
0
    YYDEBUG(1106, *YYCURSOR);
12838
0
    YYCURSOR = YYMARKER;
12839
0
    if (yyaccept == 0) {
12840
0
      goto yy1091;
12841
0
    } else {
12842
0
      goto yy1104;
12843
0
    }
12844
0
yy1107:
12845
0
    YYDEBUG(1107, *YYCURSOR);
12846
0
    ++YYCURSOR;
12847
0
    YYFILL(1);
12848
0
    yych = *YYCURSOR;
12849
0
    if (yybm[0+yych] & 64) {
12850
0
      goto yy1112;
12851
0
    }
12852
0
    goto yy1106;
12853
0
yy1108:
12854
0
    YYDEBUG(1108, *YYCURSOR);
12855
0
    ++YYCURSOR;
12856
0
    YYFILL(1);
12857
0
    yych = *YYCURSOR;
12858
0
    if (yybm[0+yych] & 128) {
12859
0
      goto yy1114;
12860
0
    }
12861
0
    goto yy1106;
12862
0
yy1109:
12863
0
    YYDEBUG(1109, *YYCURSOR);
12864
0
    ++YYCURSOR;
12865
0
    YYFILL(1);
12866
0
    yych = *YYCURSOR;
12867
0
    if (yych <= '/') goto yy1106;
12868
0
    if (yych <= '9') goto yy1102;
12869
0
    goto yy1106;
12870
0
yy1110:
12871
0
    YYDEBUG(1110, *YYCURSOR);
12872
0
    yyaccept = 1;
12873
0
    YYMARKER = ++YYCURSOR;
12874
0
    YYFILL(1);
12875
0
    yych = *YYCURSOR;
12876
0
    YYDEBUG(1111, *YYCURSOR);
12877
0
    if (yybm[0+yych] & 32) {
12878
0
      goto yy1110;
12879
0
    }
12880
0
    if (yych == '_') goto yy1105;
12881
0
    goto yy1104;
12882
0
yy1112:
12883
0
    YYDEBUG(1112, *YYCURSOR);
12884
0
    yyaccept = 1;
12885
0
    YYMARKER = ++YYCURSOR;
12886
0
    YYFILL(1);
12887
0
    yych = *YYCURSOR;
12888
0
    YYDEBUG(1113, *YYCURSOR);
12889
0
    if (yybm[0+yych] & 64) {
12890
0
      goto yy1112;
12891
0
    }
12892
0
    if (yych == '_') goto yy1107;
12893
0
    goto yy1104;
12894
0
yy1114:
12895
0
    YYDEBUG(1114, *YYCURSOR);
12896
0
    yyaccept = 1;
12897
0
    YYMARKER = ++YYCURSOR;
12898
0
    YYFILL(1);
12899
0
    yych = *YYCURSOR;
12900
0
    YYDEBUG(1115, *YYCURSOR);
12901
0
    if (yybm[0+yych] & 128) {
12902
0
      goto yy1114;
12903
0
    }
12904
0
    if (yych == '_') goto yy1108;
12905
0
    goto yy1104;
12906
0
  }
12907
/* *********************************** */
12908
0
yyc_SHEBANG:
12909
0
  {
12910
0
    static const unsigned char yybm[] = {
12911
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12912
0
      128, 128,   0, 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
      128, 128, 128, 128, 128, 128, 128, 128, 
12943
0
    };
12944
0
    YYDEBUG(1116, *YYCURSOR);
12945
0
    YYFILL(2);
12946
0
    yych = *YYCURSOR;
12947
0
    if (yych == '#') goto yy1120;
12948
0
    YYDEBUG(1118, *YYCURSOR);
12949
0
    ++YYCURSOR;
12950
0
yy1119:
12951
0
    YYDEBUG(1119, *YYCURSOR);
12952
0
    yyleng = YYCURSOR - SCNG(yy_text);
12953
0
#line 2295 "Zend/zend_language_scanner.l"
12954
0
    {
12955
0
  yyless(0);
12956
0
  BEGIN(INITIAL);
12957
0
  goto restart;
12958
0
}
12959
0
#line 12960 "Zend/zend_language_scanner.c"
12960
0
yy1120:
12961
0
    YYDEBUG(1120, *YYCURSOR);
12962
0
    yych = *++YYCURSOR;
12963
0
    if (yych != '!') goto yy1119;
12964
0
yy1121:
12965
0
    YYDEBUG(1121, *YYCURSOR);
12966
0
    ++YYCURSOR;
12967
0
    YYFILL(1);
12968
0
    yych = *YYCURSOR;
12969
0
    YYDEBUG(1122, *YYCURSOR);
12970
0
    if (yybm[0+yych] & 128) {
12971
0
      goto yy1121;
12972
0
    }
12973
0
    YYDEBUG(1123, *YYCURSOR);
12974
0
    ++YYCURSOR;
12975
0
    YYDEBUG(1124, *YYCURSOR);
12976
0
    yyleng = YYCURSOR - SCNG(yy_text);
12977
0
#line 2289 "Zend/zend_language_scanner.l"
12978
0
    {
12979
0
  CG(zend_lineno)++;
12980
0
  BEGIN(INITIAL);
12981
0
  goto restart;
12982
0
}
12983
0
#line 12984 "Zend/zend_language_scanner.c"
12984
0
  }
12985
/* *********************************** */
12986
1.14k
yyc_INITIAL:
12987
1.14k
  YYDEBUG(1125, *YYCURSOR);
12988
1.14k
  YYFILL(7);
12989
1.14k
  yych = *YYCURSOR;
12990
1.14k
  if (yych == '<') goto yy1129;
12991
583
  YYDEBUG(1127, *YYCURSOR);
12992
583
  ++YYCURSOR;
12993
601
yy1128:
12994
601
  YYDEBUG(1128, *YYCURSOR);
12995
601
  yyleng = YYCURSOR - SCNG(yy_text);
12996
601
#line 2341 "Zend/zend_language_scanner.l"
12997
601
  {
12998
601
  if (YYCURSOR > YYLIMIT) {
12999
83
    RETURN_END_TOKEN;
13000
83
  }
13001
13002
518
inline_char_handler:
13003
13004
3.82k
  while (1) {
13005
3.82k
    YYCTYPE *ptr = memchr(YYCURSOR, '<', YYLIMIT - YYCURSOR);
13006
13007
3.82k
    YYCURSOR = ptr ? ptr + 1 : YYLIMIT;
13008
13009
3.82k
    if (YYCURSOR >= YYLIMIT) {
13010
32
      break;
13011
32
    }
13012
13013
3.79k
    if (*YYCURSOR == '?') {
13014
486
      if (CG(short_tags) /* <? */
13015
0
        || (*(YYCURSOR + 1) == '=') /* <?= */
13016
0
        || (!strncasecmp((char*)YYCURSOR + 1, "php", 3) && /* <?php[ \t\r\n] */
13017
0
          (YYCURSOR + 4 == YYLIMIT ||
13018
0
          YYCURSOR[4] == ' ' || YYCURSOR[4] == '\t' ||
13019
0
          YYCURSOR[4] == '\n' || YYCURSOR[4] == '\r'))
13020
486
      ) {
13021
486
        YYCURSOR--;
13022
486
        break;
13023
486
      }
13024
486
    }
13025
3.79k
  }
13026
13027
518
  yyleng = YYCURSOR - SCNG(yy_text);
13028
13029
518
  if (SCNG(output_filter)) {
13030
0
    size_t readsize;
13031
0
    char *s = NULL;
13032
0
    size_t sz = 0;
13033
    // TODO: avoid reallocation ???
13034
0
    readsize = SCNG(output_filter)((unsigned char **)&s, &sz, (unsigned char *)yytext, (size_t)yyleng);
13035
0
    ZVAL_STRINGL(zendlval, s, sz);
13036
0
    efree(s);
13037
0
    if (readsize < yyleng) {
13038
0
      yyless(readsize);
13039
0
    }
13040
518
  } else if (yyleng == 1) {
13041
1
    ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR((zend_uchar)*yytext));
13042
517
  } else {
13043
517
    ZVAL_STRINGL(zendlval, yytext, yyleng);
13044
517
  }
13045
518
  HANDLE_NEWLINES(yytext, yyleng);
13046
518
  RETURN_TOKEN_WITH_VAL(T_INLINE_HTML);
13047
518
}
13048
0
#line 13049 "Zend/zend_language_scanner.c"
13049
563
yy1129:
13050
563
  YYDEBUG(1129, *YYCURSOR);
13051
563
  yych = *++YYCURSOR;
13052
563
  if (yych != '?') goto yy1128;
13053
545
  YYDEBUG(1130, *YYCURSOR);
13054
545
  yych = *(YYMARKER = ++YYCURSOR);
13055
545
  if (yych <= 'O') {
13056
38
    if (yych == '=') goto yy1132;
13057
507
  } else {
13058
507
    if (yych <= 'P') goto yy1134;
13059
507
    if (yych == 'p') goto yy1134;
13060
507
  }
13061
437
yy1131:
13062
437
  YYDEBUG(1131, *YYCURSOR);
13063
437
  yyleng = YYCURSOR - SCNG(yy_text);
13064
437
#line 2332 "Zend/zend_language_scanner.l"
13065
437
  {
13066
437
  if (CG(short_tags)) {
13067
437
    BEGIN(ST_IN_SCRIPTING);
13068
437
    RETURN_OR_SKIP_TOKEN(T_OPEN_TAG);
13069
437
  } else {
13070
0
    goto inline_char_handler;
13071
0
  }
13072
437
}
13073
0
#line 13074 "Zend/zend_language_scanner.c"
13074
0
yy1132:
13075
0
  YYDEBUG(1132, *YYCURSOR);
13076
0
  ++YYCURSOR;
13077
0
  YYDEBUG(1133, *YYCURSOR);
13078
0
  yyleng = YYCURSOR - SCNG(yy_text);
13079
0
#line 2301 "Zend/zend_language_scanner.l"
13080
0
  {
13081
0
  BEGIN(ST_IN_SCRIPTING);
13082
0
  if (PARSER_MODE()) {
13083
    /* We'll reject this as an identifier in zend_lex_tstring. */
13084
0
    RETURN_TOKEN_WITH_IDENT(T_ECHO);
13085
0
  }
13086
0
  RETURN_TOKEN(T_OPEN_TAG_WITH_ECHO);
13087
0
}
13088
0
#line 13089 "Zend/zend_language_scanner.c"
13089
108
yy1134:
13090
108
  YYDEBUG(1134, *YYCURSOR);
13091
108
  yych = *++YYCURSOR;
13092
108
  if (yych == 'H') goto yy1136;
13093
108
  if (yych == 'h') goto yy1136;
13094
0
yy1135:
13095
0
  YYDEBUG(1135, *YYCURSOR);
13096
0
  YYCURSOR = YYMARKER;
13097
0
  goto yy1131;
13098
108
yy1136:
13099
108
  YYDEBUG(1136, *YYCURSOR);
13100
108
  yych = *++YYCURSOR;
13101
108
  if (yych == 'P') goto yy1137;
13102
108
  if (yych != 'p') goto yy1135;
13103
108
yy1137:
13104
108
  YYDEBUG(1137, *YYCURSOR);
13105
108
  yych = *++YYCURSOR;
13106
108
  if (yych <= '\f') {
13107
107
    if (yych <= 0x08) goto yy1138;
13108
107
    if (yych <= '\n') goto yy1139;
13109
107
  } else {
13110
1
    if (yych <= '\r') goto yy1141;
13111
1
    if (yych == ' ') goto yy1139;
13112
1
  }
13113
0
yy1138:
13114
0
  YYDEBUG(1138, *YYCURSOR);
13115
0
  yyleng = YYCURSOR - SCNG(yy_text);
13116
0
#line 2317 "Zend/zend_language_scanner.l"
13117
0
  {
13118
  /* Allow <?php followed by end of file. */
13119
0
  if (YYCURSOR == YYLIMIT) {
13120
0
    BEGIN(ST_IN_SCRIPTING);
13121
0
    RETURN_OR_SKIP_TOKEN(T_OPEN_TAG);
13122
0
  }
13123
  /* Degenerate case: <?phpX is interpreted as <? phpX with short tags. */
13124
0
  if (CG(short_tags)) {
13125
0
    yyless(2);
13126
0
    BEGIN(ST_IN_SCRIPTING);
13127
0
    RETURN_OR_SKIP_TOKEN(T_OPEN_TAG);
13128
0
  }
13129
0
  goto inline_char_handler;
13130
0
}
13131
0
#line 13132 "Zend/zend_language_scanner.c"
13132
108
yy1139:
13133
108
  YYDEBUG(1139, *YYCURSOR);
13134
108
  ++YYCURSOR;
13135
108
yy1140:
13136
108
  YYDEBUG(1140, *YYCURSOR);
13137
108
  yyleng = YYCURSOR - SCNG(yy_text);
13138
108
#line 2311 "Zend/zend_language_scanner.l"
13139
108
  {
13140
108
  HANDLE_NEWLINE(yytext[yyleng-1]);
13141
108
  BEGIN(ST_IN_SCRIPTING);
13142
108
  RETURN_OR_SKIP_TOKEN(T_OPEN_TAG);
13143
108
}
13144
0
#line 13145 "Zend/zend_language_scanner.c"
13145
0
yy1141:
13146
0
  YYDEBUG(1141, *YYCURSOR);
13147
0
  yych = *++YYCURSOR;
13148
0
  if (yych == '\n') goto yy1139;
13149
0
  goto yy1140;
13150
/* *********************************** */
13151
11
yyc_ST_END_HEREDOC:
13152
11
  YYDEBUG(1142, *YYCURSOR);
13153
11
  YYFILL(1);
13154
11
  yych = *YYCURSOR;
13155
11
  YYDEBUG(1144, *YYCURSOR);
13156
11
  ++YYCURSOR;
13157
11
  YYDEBUG(1145, *YYCURSOR);
13158
11
  yyleng = YYCURSOR - SCNG(yy_text);
13159
11
#line 2832 "Zend/zend_language_scanner.l"
13160
11
  {
13161
11
  zend_heredoc_label *heredoc_label = zend_ptr_stack_pop(&SCNG(heredoc_label_stack));
13162
13163
11
  yyleng = heredoc_label->indentation + heredoc_label->length;
13164
11
  YYCURSOR += yyleng - 1;
13165
13166
11
  heredoc_label_dtor(heredoc_label);
13167
11
  efree(heredoc_label);
13168
13169
11
  BEGIN(ST_IN_SCRIPTING);
13170
11
  RETURN_TOKEN(T_END_HEREDOC);
13171
11
}
13172
0
#line 13173 "Zend/zend_language_scanner.c"
13173
/* *********************************** */
13174
303
yyc_ST_NOWDOC:
13175
303
  YYDEBUG(1146, *YYCURSOR);
13176
303
  YYFILL(1);
13177
303
  yych = *YYCURSOR;
13178
303
  YYDEBUG(1148, *YYCURSOR);
13179
303
  ++YYCURSOR;
13180
303
  YYDEBUG(1149, *YYCURSOR);
13181
303
  yyleng = YYCURSOR - SCNG(yy_text);
13182
303
#line 3089 "Zend/zend_language_scanner.l"
13183
303
  {
13184
303
  zend_heredoc_label *heredoc_label = zend_ptr_stack_top(&SCNG(heredoc_label_stack));
13185
303
  int newline = 0, indentation = 0, spacing = -1;
13186
13187
303
  if (YYCURSOR > YYLIMIT) {
13188
147
    RETURN_END_TOKEN;
13189
147
  }
13190
13191
156
  YYCURSOR--;
13192
13193
914k
  while (YYCURSOR < YYLIMIT) {
13194
914k
    switch (*YYCURSOR++) {
13195
7.44k
      case '\r':
13196
7.44k
        if (*YYCURSOR == '\n') {
13197
0
          YYCURSOR++;
13198
0
        }
13199
7.44k
        ZEND_FALLTHROUGH;
13200
38.9k
      case '\n':
13201
38.9k
        indentation = spacing = 0;
13202
13203
54.7k
        while (YYCURSOR < YYLIMIT && (*YYCURSOR == ' ' || *YYCURSOR == '\t')) {
13204
15.7k
          if (*YYCURSOR == '\t') {
13205
0
            spacing |= HEREDOC_USING_TABS;
13206
15.7k
          } else {
13207
15.7k
            spacing |= HEREDOC_USING_SPACES;
13208
15.7k
          }
13209
15.7k
          ++YYCURSOR;
13210
15.7k
          ++indentation;
13211
15.7k
        }
13212
13213
38.9k
        if (YYCURSOR == YYLIMIT) {
13214
0
          yyleng = YYCURSOR - SCNG(yy_text);
13215
0
          HANDLE_NEWLINES(yytext, yyleng);
13216
0
          ZVAL_NULL(zendlval);
13217
0
          RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
13218
0
        }
13219
13220
        /* Check for ending label on the next line */
13221
38.9k
        if (IS_LABEL_START(*YYCURSOR) && heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, heredoc_label->label, heredoc_label->length)) {
13222
9
          if (IS_LABEL_SUCCESSOR(YYCURSOR[heredoc_label->length])) {
13223
0
            continue;
13224
0
          }
13225
13226
9
          if (spacing == (HEREDOC_USING_SPACES | HEREDOC_USING_TABS)) {
13227
0
            zend_throw_exception(zend_ce_parse_error, "Invalid indentation - tabs and spaces cannot be mixed", 0);
13228
0
            if (PARSER_MODE()) {
13229
0
              RETURN_TOKEN(T_ERROR);
13230
0
            }
13231
0
          }
13232
13233
          /* newline before label will be subtracted from returned text, but
13234
           * yyleng/yytext will include it, for zend_highlight/strip, tokenizer, etc. */
13235
9
          if (YYCURSOR[-indentation - 2] == '\r' && YYCURSOR[-indentation - 1] == '\n') {
13236
0
            newline = 2; /* Windows newline */
13237
9
          } else {
13238
9
            newline = 1;
13239
9
          }
13240
13241
9
          CG(increment_lineno) = 1; /* For newline before label */
13242
13243
9
          YYCURSOR -= indentation;
13244
9
          heredoc_label->indentation = indentation;
13245
13246
9
          BEGIN(ST_END_HEREDOC);
13247
13248
9
          goto nowdoc_scan_done;
13249
9
        }
13250
38.9k
        ZEND_FALLTHROUGH;
13251
914k
      default:
13252
914k
        continue;
13253
914k
    }
13254
914k
  }
13255
13256
156
nowdoc_scan_done:
13257
156
  yyleng = YYCURSOR - SCNG(yy_text);
13258
156
  ZVAL_STRINGL(zendlval, yytext, yyleng - newline);
13259
13260
156
  if (!EG(exception) && spacing != -1 && PARSER_MODE()) {
13261
6
    bool newline_at_start = *(yytext - 1) == '\n' || *(yytext - 1) == '\r';
13262
6
    if (!strip_multiline_string_indentation(
13263
6
        zendlval, indentation, spacing == HEREDOC_USING_SPACES,
13264
6
        newline_at_start, newline != 0)) {
13265
0
      RETURN_TOKEN(T_ERROR);
13266
0
    }
13267
6
  }
13268
13269
156
  HANDLE_NEWLINES(yytext, yyleng - newline);
13270
156
  RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
13271
156
}
13272
156
#line 13273 "Zend/zend_language_scanner.c"
13273
156
}
13274
0
#line 3188 "Zend/zend_language_scanner.l"
13275
13276
13277
78.3k
emit_token_with_str:
13278
78.3k
  zend_copy_value(zendlval, (yytext + offset), (yyleng - offset));
13279
13280
107k
emit_token_with_val:
13281
107k
  if (PARSER_MODE()) {
13282
14.3k
    ZEND_ASSERT(Z_TYPE_P(zendlval) != IS_UNDEF);
13283
14.3k
    elem->ast = zend_ast_create_zval_with_lineno(zendlval, start_line);
13284
14.3k
  }
13285
13286
353k
emit_token:
13287
353k
  if (SCNG(on_event)) {
13288
0
    SCNG(on_event)(ON_TOKEN, token, start_line, yytext, yyleng, SCNG(on_event_context));
13289
0
  }
13290
353k
  return token;
13291
13292
11.8k
emit_token_with_ident:
13293
11.8k
  if (PARSER_MODE()) {
13294
728
    elem->ident = SCNG(yy_text);
13295
728
  }
13296
11.8k
  if (SCNG(on_event)) {
13297
0
    SCNG(on_event)(ON_TOKEN, token, start_line, yytext, yyleng, SCNG(on_event_context));
13298
0
  }
13299
11.8k
  return token;
13300
13301
58.2k
return_whitespace:
13302
58.2k
  HANDLE_NEWLINES(yytext, yyleng);
13303
58.2k
  if (SCNG(on_event)) {
13304
0
    SCNG(on_event)(ON_TOKEN, T_WHITESPACE, start_line, yytext, yyleng, SCNG(on_event_context));
13305
0
  }
13306
58.2k
  if (PARSER_MODE()) {
13307
7.39k
    start_line = CG(zend_lineno);
13308
7.39k
    goto restart;
13309
50.8k
  } else {
13310
50.8k
    return T_WHITESPACE;
13311
50.8k
  }
13312
13313
1.41k
skip_token:
13314
1.41k
  if (SCNG(on_event)) {
13315
0
    SCNG(on_event)(ON_TOKEN, token, start_line, yytext, yyleng, SCNG(on_event_context));
13316
0
  }
13317
1.41k
  start_line = CG(zend_lineno);
13318
1.41k
  goto restart;
13319
58.2k
}