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
15.4k
#define YYCTYPE   unsigned char
54
36.3k
#define YYFILL(n) { if ((YYCURSOR + n) >= (YYLIMIT + ZEND_MMAP_AHEAD)) { return 0; } }
55
1.40M
#define YYCURSOR  SCNG(yy_cursor)
56
474k
#define YYLIMIT   SCNG(yy_limit)
57
14.4k
#define YYMARKER  SCNG(yy_marker)
58
59
48.9k
#define YYGETCONDITION()  SCNG(yy_state)
60
2.09k
#define YYSETCONDITION(s) SCNG(yy_state) = s
61
62
#define STATE(name)  yyc##name
63
64
/* emulate flex constructs */
65
399
#define BEGIN(state) YYSETCONDITION(STATE(state))
66
79
#define YYSTATE      YYGETCONDITION()
67
3.42k
#define yytext       ((char*)SCNG(yy_text))
68
19.1k
#define yyleng       SCNG(yy_leng)
69
527
#define yyless(x)    do { YYCURSOR = (unsigned char*)yytext + x; \
70
527
                          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
2.03M
#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
3.31k
#define HANDLE_NEWLINES(s, l)                         \
97
3.31k
do {                                     \
98
3.31k
  char *p = (s), *boundary = p+(l);                     \
99
3.31k
                                        \
100
54.1k
  while (p<boundary) {                           \
101
50.8k
    if (*p == '\n' || (*p == '\r' && (*(p+1) != '\n'))) {         \
102
1.79k
      CG(zend_lineno)++;                          \
103
1.79k
    }                                    \
104
50.8k
    p++;                                  \
105
50.8k
  }                                      \
106
3.31k
} while (0)
107
108
611
#define HANDLE_NEWLINE(c) \
109
611
{ \
110
611
  if (c == '\n' || c == '\r') { \
111
85
    CG(zend_lineno)++; \
112
85
  } \
113
611
}
114
115
/* To save initial string length after scanning to first variable */
116
149
#define SET_DOUBLE_QUOTES_SCANNED_LENGTH(len) SCNG(scanned_string_len) = (len)
117
1.27k
#define GET_DOUBLE_QUOTES_SCANNED_LENGTH()    SCNG(scanned_string_len)
118
119
3.27k
#define IS_LABEL_START(c) (((c) >= 'a' && (c) <= 'z') || ((c) >= 'A' && (c) <= 'Z') || (c) == '_' || (c) >= 0x80)
120
0
#define IS_LABEL_SUCCESSOR(c) (((c) >= 'a' && (c) <= 'z') || ((c) >= 'A' && (c) <= 'Z') || ((c) >= '0' && (c) <= '9') || (c) == '_' || (c) >= 0x80)
121
122
132
#define ZEND_IS_OCT(c)  ((c)>='0' && (c)<='7')
123
10
#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
840
{
170
840
  zend_stack_push(&SCNG(state_stack), (void *) &YYGETCONDITION());
171
840
  YYSETCONDITION(new_state);
172
840
}
173
174
840
#define yy_push_state(state_and_tsrm) _yy_push_state(yyc##state_and_tsrm)
175
176
static void yy_pop_state(void)
177
778
{
178
778
  int *stack_state = zend_stack_top(&SCNG(state_stack));
179
778
  YYSETCONDITION(*stack_state);
180
778
  zend_stack_del_top(&SCNG(state_stack));
181
778
}
182
183
static void yy_scan_buffer(char *str, size_t len)
184
71
{
185
71
  YYCURSOR       = (YYCTYPE*)str;
186
71
  YYLIMIT        = YYCURSOR + len;
187
71
  if (!SCNG(yy_start)) {
188
10
    SCNG(yy_start) = YYCURSOR;
189
10
  }
190
71
}
191
192
void startup_scanner(void)
193
61
{
194
61
  CG(parse_error) = 0;
195
61
  CG(doc_comment) = NULL;
196
61
  CG(extra_fn_flags) = 0;
197
61
  zend_stack_init(&SCNG(state_stack), sizeof(int));
198
61
  zend_stack_init(&SCNG(nest_location_stack), sizeof(zend_nest_location));
199
61
  zend_ptr_stack_init(&SCNG(heredoc_label_stack));
200
61
  SCNG(heredoc_scan_ahead) = 0;
201
61
}
202
203
42
static void heredoc_label_dtor(zend_heredoc_label *heredoc_label) {
204
42
    efree(heredoc_label->label);
205
42
}
206
207
void shutdown_scanner(void)
208
61
{
209
61
  CG(parse_error) = 0;
210
61
  RESET_DOC_COMMENT();
211
61
  zend_stack_destroy(&SCNG(state_stack));
212
61
  zend_stack_destroy(&SCNG(nest_location_stack));
213
61
  zend_ptr_stack_clean(&SCNG(heredoc_label_stack), (void (*)(void *)) &heredoc_label_dtor, 1);
214
61
  zend_ptr_stack_destroy(&SCNG(heredoc_label_stack));
215
61
  SCNG(heredoc_scan_ahead) = 0;
216
61
  SCNG(on_event) = NULL;
217
61
  SCNG(on_event_context) = NULL;
218
61
}
219
220
ZEND_API void zend_save_lexical_state(zend_lex_state *lex_state)
221
79
{
222
79
  lex_state->yy_leng   = SCNG(yy_leng);
223
79
  lex_state->yy_start  = SCNG(yy_start);
224
79
  lex_state->yy_text   = SCNG(yy_text);
225
79
  lex_state->yy_cursor = SCNG(yy_cursor);
226
79
  lex_state->yy_marker = SCNG(yy_marker);
227
79
  lex_state->yy_limit  = SCNG(yy_limit);
228
229
79
  lex_state->state_stack = SCNG(state_stack);
230
79
  zend_stack_init(&SCNG(state_stack), sizeof(int));
231
232
79
  lex_state->nest_location_stack = SCNG(nest_location_stack);
233
79
  zend_stack_init(&SCNG(nest_location_stack), sizeof(zend_nest_location));
234
235
79
  lex_state->heredoc_label_stack = SCNG(heredoc_label_stack);
236
79
  zend_ptr_stack_init(&SCNG(heredoc_label_stack));
237
238
79
  lex_state->in = SCNG(yy_in);
239
79
  lex_state->yy_state = YYSTATE;
240
79
  lex_state->filename = CG(compiled_filename);
241
79
  lex_state->lineno = CG(zend_lineno);
242
79
  CG(compiled_filename) = NULL;
243
244
79
  lex_state->script_org = SCNG(script_org);
245
79
  lex_state->script_org_size = SCNG(script_org_size);
246
79
  lex_state->script_filtered = SCNG(script_filtered);
247
79
  lex_state->script_filtered_size = SCNG(script_filtered_size);
248
79
  lex_state->input_filter = SCNG(input_filter);
249
79
  lex_state->output_filter = SCNG(output_filter);
250
79
  lex_state->script_encoding = SCNG(script_encoding);
251
252
79
  lex_state->on_event = SCNG(on_event);
253
79
  lex_state->on_event_context = SCNG(on_event_context);
254
255
79
  lex_state->ast = CG(ast);
256
79
  lex_state->ast_arena = CG(ast_arena);
257
79
}
258
259
ZEND_API void zend_restore_lexical_state(zend_lex_state *lex_state)
260
79
{
261
79
  SCNG(yy_leng)   = lex_state->yy_leng;
262
79
  SCNG(yy_start)  = lex_state->yy_start;
263
79
  SCNG(yy_text)   = lex_state->yy_text;
264
79
  SCNG(yy_cursor) = lex_state->yy_cursor;
265
79
  SCNG(yy_marker) = lex_state->yy_marker;
266
79
  SCNG(yy_limit)  = lex_state->yy_limit;
267
268
79
  zend_stack_destroy(&SCNG(state_stack));
269
79
  SCNG(state_stack) = lex_state->state_stack;
270
271
79
  zend_stack_destroy(&SCNG(nest_location_stack));
272
79
  SCNG(nest_location_stack) = lex_state->nest_location_stack;
273
274
79
  zend_ptr_stack_clean(&SCNG(heredoc_label_stack), (void (*)(void *)) &heredoc_label_dtor, 1);
275
79
  zend_ptr_stack_destroy(&SCNG(heredoc_label_stack));
276
79
  SCNG(heredoc_label_stack) = lex_state->heredoc_label_stack;
277
278
79
  SCNG(yy_in) = lex_state->in;
279
79
  YYSETCONDITION(lex_state->yy_state);
280
79
  CG(zend_lineno) = lex_state->lineno;
281
79
  zend_restore_compiled_filename(lex_state->filename);
282
283
79
  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
79
  SCNG(script_org) = lex_state->script_org;
288
79
  SCNG(script_org_size) = lex_state->script_org_size;
289
79
  SCNG(script_filtered) = lex_state->script_filtered;
290
79
  SCNG(script_filtered_size) = lex_state->script_filtered_size;
291
79
  SCNG(input_filter) = lex_state->input_filter;
292
79
  SCNG(output_filter) = lex_state->output_filter;
293
79
  SCNG(script_encoding) = lex_state->script_encoding;
294
295
79
  SCNG(on_event) = lex_state->on_event;
296
79
  SCNG(on_event_context) = lex_state->on_event_context;
297
298
79
  CG(ast) = lex_state->ast;
299
79
  CG(ast_arena) = lex_state->ast_arena;
300
301
79
  RESET_DOC_COMMENT();
302
79
}
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
61
{
532
61
  char *buf;
533
61
  size_t size;
534
61
  zend_string *compiled_filename;
535
536
61
  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
61
  ZEND_ASSERT(!EG(exception) && "stream_fixup() should have failed");
544
61
  zend_llist_add_element(&CG(open_files), file_handle);
545
61
  file_handle->in_list = 1;
546
547
  /* Reset the scanner for scanning the new file */
548
61
  SCNG(yy_in) = file_handle;
549
61
  SCNG(yy_start) = NULL;
550
551
61
  if (size != (size_t)-1) {
552
61
    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
61
    SCNG(yy_start) = (unsigned char *)buf;
569
61
    yy_scan_buffer(buf, size);
570
61
  } else {
571
0
    zend_error_noreturn(E_COMPILE_ERROR, "zend_stream_mmap() failed");
572
0
  }
573
574
61
  if (CG(skip_shebang)) {
575
0
    BEGIN(SHEBANG);
576
61
  } else {
577
61
    BEGIN(INITIAL);
578
61
  }
579
580
61
  if (file_handle->opened_path) {
581
0
    compiled_filename = zend_string_copy(file_handle->opened_path);
582
61
  } else {
583
61
    compiled_filename = zend_string_copy(file_handle->filename);
584
61
  }
585
586
61
  zend_set_compiled_filename(compiled_filename);
587
61
  zend_string_release_ex(compiled_filename, 0);
588
589
61
  SCNG(on_event) = NULL;
590
61
  SCNG(on_event_context) = NULL;
591
61
  RESET_DOC_COMMENT();
592
61
  CG(zend_lineno) = 1;
593
61
  CG(increment_lineno) = 0;
594
61
  return SUCCESS;
595
61
}
596
597
static zend_op_array *zend_compile(int type)
598
67
{
599
67
  zend_op_array *op_array = NULL;
600
67
  bool original_in_compilation = CG(in_compilation);
601
602
67
  CG(in_compilation) = 1;
603
67
  CG(ast) = NULL;
604
67
  CG(ast_arena) = zend_arena_create(1024 * 32);
605
606
67
  if (!zendparse()) {
607
67
    uint32_t last_lineno = CG(zend_lineno);
608
67
    zend_file_context original_file_context;
609
67
    zend_oparray_context original_oparray_context;
610
67
    zend_op_array *original_active_op_array = CG(active_op_array);
611
612
67
    op_array = emalloc(sizeof(zend_op_array));
613
67
    init_op_array(op_array, type, INITIAL_OP_ARRAY_SIZE);
614
67
    CG(active_op_array) = op_array;
615
616
    /* Use heap to not waste arena memory */
617
67
    op_array->fn_flags |= ZEND_ACC_HEAP_RT_CACHE;
618
619
67
    if (zend_ast_process) {
620
0
      zend_ast_process(CG(ast));
621
0
    }
622
623
67
    zend_file_context_begin(&original_file_context);
624
67
    zend_oparray_context_begin(&original_oparray_context, op_array);
625
67
    zend_compile_top_stmt(CG(ast));
626
67
    CG(zend_lineno) = last_lineno;
627
67
    zend_emit_final_return(type == ZEND_USER_FUNCTION);
628
67
    op_array->line_start = 1;
629
67
    op_array->line_end = last_lineno;
630
67
    pass_two(op_array);
631
67
    zend_oparray_context_end(&original_oparray_context);
632
67
    zend_file_context_end(&original_file_context);
633
634
67
    CG(active_op_array) = original_active_op_array;
635
67
  }
636
637
67
  zend_ast_destroy(CG(ast));
638
67
  zend_arena_destroy(CG(ast_arena));
639
640
67
  CG(in_compilation) = original_in_compilation;
641
642
67
  return op_array;
643
67
}
644
645
ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type)
646
61
{
647
61
  zend_lex_state original_lex_state;
648
61
  zend_op_array *op_array = NULL;
649
61
  zend_save_lexical_state(&original_lex_state);
650
651
61
  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
61
  } else {
660
61
    bool orig_record_errors = EG(record_errors);
661
61
    if (!orig_record_errors) {
662
0
      zend_begin_record_errors();
663
0
    }
664
665
61
    op_array = zend_compile(ZEND_USER_FUNCTION);
666
667
61
    if (!orig_record_errors) {
668
0
      zend_emit_recorded_errors();
669
0
      zend_free_recorded_errors();
670
0
    }
671
61
  }
672
673
61
  zend_restore_lexical_state(&original_lex_state);
674
61
  return op_array;
675
61
}
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
645
{
715
645
  zend_file_handle file_handle;
716
645
  zend_op_array *retval;
717
645
  zend_string *opened_path = NULL;
718
719
645
  zend_stream_init_filename_ex(&file_handle, filename);
720
721
645
  retval = zend_compile_file(&file_handle, type);
722
645
  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
645
  zend_destroy_file_handle(&file_handle);
734
735
645
  return retval;
736
645
}
737
738
ZEND_API void zend_prepare_string_for_scanning(zval *str, zend_string *filename)
739
10
{
740
10
  char *buf;
741
10
  size_t size, old_len;
742
743
  /* enforce ZEND_MMAP_AHEAD trailing NULLs for flex... */
744
10
  old_len = Z_STRLEN_P(str);
745
10
  Z_STR_P(str) = zend_string_extend(Z_STR_P(str), old_len + ZEND_MMAP_AHEAD, 0);
746
10
  Z_TYPE_INFO_P(str) = IS_STRING_EX;
747
10
  memset(Z_STRVAL_P(str) + old_len, 0, ZEND_MMAP_AHEAD + 1);
748
749
10
  SCNG(yy_in) = NULL;
750
10
  SCNG(yy_start) = NULL;
751
752
10
  buf = Z_STRVAL_P(str);
753
10
  size = old_len;
754
755
10
  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
10
  yy_scan_buffer(buf, size);
773
10
  zend_set_compiled_filename(filename);
774
10
  CG(zend_lineno) = 1;
775
10
  CG(increment_lineno) = 0;
776
10
  SCNG(on_event) = NULL;
777
10
  SCNG(on_event_context) = NULL;
778
10
  RESET_DOC_COMMENT();
779
10
}
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
6
{
805
6
  zend_lex_state original_lex_state;
806
6
  zend_op_array *op_array = NULL;
807
6
  zval tmp;
808
6
  zend_string *filename_str;
809
810
6
  if (ZSTR_LEN(source_string) == 0) {
811
0
    return NULL;
812
0
  }
813
814
6
  ZVAL_STR_COPY(&tmp, source_string);
815
816
6
  zend_save_lexical_state(&original_lex_state);
817
6
  filename_str = zend_string_init(filename, strlen(filename), 0);
818
6
  zend_prepare_string_for_scanning(&tmp, filename_str);
819
6
  zend_string_release(filename_str);
820
821
6
  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
6
    case ZEND_COMPILE_POSITION_AFTER_OPEN_TAG:
829
6
      BEGIN(ST_IN_SCRIPTING);
830
6
      break;
831
6
  }
832
833
6
  op_array = zend_compile(ZEND_EVAL_CODE);
834
835
6
  zend_restore_lexical_state(&original_lex_state);
836
6
  zval_ptr_dtor(&tmp);
837
838
6
  return op_array;
839
6
}
840
841
842
zend_result highlight_file(const char *filename, zend_syntax_highlighter_ini *syntax_highlighter_ini)
843
0
{
844
0
  zend_lex_state original_lex_state;
845
0
  zend_file_handle file_handle;
846
847
0
  zend_stream_init_filename(&file_handle, filename);
848
0
  zend_save_lexical_state(&original_lex_state);
849
0
  if (open_file_for_scanning(&file_handle)==FAILURE) {
850
0
    zend_message_dispatcher(ZMSG_FAILED_HIGHLIGHT_FOPEN, filename);
851
0
    zend_destroy_file_handle(&file_handle);
852
0
    zend_restore_lexical_state(&original_lex_state);
853
0
    return FAILURE;
854
0
  }
855
0
  zend_highlight(syntax_highlighter_ini);
856
0
  if (SCNG(script_filtered)) {
857
0
    efree(SCNG(script_filtered));
858
0
    SCNG(script_filtered) = NULL;
859
0
  }
860
0
  zend_destroy_file_handle(&file_handle);
861
0
  zend_restore_lexical_state(&original_lex_state);
862
0
  return SUCCESS;
863
0
}
864
865
void highlight_string(zend_string *str, zend_syntax_highlighter_ini *syntax_highlighter_ini, const char *filename)
866
4
{
867
4
  zend_lex_state original_lex_state;
868
4
  zval str_zv;
869
4
  zend_string *filename_str = zend_string_init(filename, strlen(filename), 0);
870
4
  ZVAL_STR_COPY(&str_zv, str);
871
4
  zend_save_lexical_state(&original_lex_state);
872
4
  zend_prepare_string_for_scanning(&str_zv, filename_str);
873
4
  zend_string_release(filename_str);
874
4
  BEGIN(INITIAL);
875
4
  zend_highlight(syntax_highlighter_ini);
876
4
  if (SCNG(script_filtered)) {
877
0
    efree(SCNG(script_filtered));
878
0
    SCNG(script_filtered) = NULL;
879
0
  }
880
4
  zend_restore_lexical_state(&original_lex_state);
881
4
  zval_ptr_dtor(&str_zv);
882
4
}
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
3.55k
  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
3.55k
  } else if (yyleng == 1) { \
928
1.10k
    ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR((zend_uchar)*(yytext))); \
929
2.45k
  } else { \
930
2.45k
    ZVAL_STRINGL(zendlval, yytext, yyleng); \
931
2.45k
  }
932
933
static zend_result zend_scan_escape_string(zval *zendlval, char *str, size_t len, char quote_type)
934
1.31k
{
935
1.31k
  char *s, *t;
936
1.31k
  char *end;
937
938
1.31k
  if (len <= 1) {
939
527
    if (len < 1) {
940
0
      ZVAL_EMPTY_STRING(zendlval);
941
527
    } else {
942
527
      zend_uchar c = (zend_uchar)*str;
943
527
      HANDLE_NEWLINE(c);
944
527
      ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR(c));
945
527
    }
946
527
    goto skip_escape_conversion;
947
527
  }
948
949
789
  ZVAL_STRINGL(zendlval, str, len);
950
951
  /* convert escape sequences */
952
789
  s = Z_STRVAL_P(zendlval);
953
789
  end = s+Z_STRLEN_P(zendlval);
954
32.8k
  while (1) {
955
32.8k
    if (UNEXPECTED(*s=='\\')) {
956
62
      break;
957
62
    }
958
32.7k
    if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
959
564
      CG(zend_lineno)++;
960
564
    }
961
32.7k
    s++;
962
32.7k
    if (s == end) {
963
727
      goto skip_escape_conversion;
964
727
    }
965
32.7k
  }
966
967
62
  t = s;
968
2.00k
  while (s<end) {
969
1.93k
    if (*s=='\\') {
970
213
      s++;
971
213
      if (s >= end) {
972
0
        *t++ = '\\';
973
0
        break;
974
0
      }
975
976
213
      switch(*s) {
977
12
        case 'n':
978
12
          *t++ = '\n';
979
12
          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
2
        case 'v':
990
2
          *t++ = '\v';
991
2
          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
0
        case '"':
1000
0
        case '`':
1001
0
          if (*s != quote_type) {
1002
0
            *t++ = '\\';
1003
0
            *t++ = *s;
1004
0
            break;
1005
0
          }
1006
0
          ZEND_FALLTHROUGH;
1007
101
        case '\\':
1008
101
        case '$':
1009
101
          *t++ = *s;
1010
101
          break;
1011
5
        case 'x':
1012
5
        case 'X':
1013
5
          if (ZEND_IS_HEX(*(s+1))) {
1014
5
            char hex_buf[3] = { 0, 0, 0 };
1015
1016
5
            hex_buf[0] = *(++s);
1017
5
            if (ZEND_IS_HEX(*(s+1))) {
1018
4
              hex_buf[1] = *(++s);
1019
4
            }
1020
5
            *t++ = (char) ZEND_STRTOL(hex_buf, NULL, 16);
1021
5
          } else {
1022
0
            *t++ = '\\';
1023
0
            *t++ = *s;
1024
0
          }
1025
5
          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
93
        default:
1106
          /* check for an octal */
1107
93
          if (ZEND_IS_OCT(*s)) {
1108
39
            char octal_buf[4] = { 0, 0, 0, 0 };
1109
1110
39
            octal_buf[0] = *s;
1111
39
            if (ZEND_IS_OCT(*(s+1))) {
1112
0
              octal_buf[1] = *(++s);
1113
0
              if (ZEND_IS_OCT(*(s+1))) {
1114
0
                octal_buf[2] = *(++s);
1115
0
              }
1116
0
            }
1117
39
            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
39
            *t++ = (char) ZEND_STRTOL(octal_buf, NULL, 8);
1123
54
          } else {
1124
54
            *t++ = '\\';
1125
54
            *t++ = *s;
1126
54
          }
1127
93
          break;
1128
213
      }
1129
1.72k
    } else {
1130
1.72k
      *t++ = *s;
1131
1.72k
    }
1132
1133
1.93k
    if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
1134
64
      CG(zend_lineno)++;
1135
64
    }
1136
1.93k
    s++;
1137
1.93k
  }
1138
62
  *t = 0;
1139
62
  Z_STRLEN_P(zendlval) = t - Z_STRVAL_P(zendlval);
1140
1141
1.31k
skip_escape_conversion:
1142
1.31k
  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
1.31k
  return SUCCESS;
1153
62
}
1154
1155
69
#define HEREDOC_USING_SPACES 1
1156
0
#define HEREDOC_USING_TABS 2
1157
1158
0
static const char *next_newline(const char *str, const char *end, size_t *newline_len) {
1159
0
  for (; str < end; str++) {
1160
0
    if (*str == '\r') {
1161
0
      *newline_len = str + 1 < end && *(str + 1) == '\n' ? 2 : 1;
1162
0
      return str;
1163
0
    } else if (*str == '\n') {
1164
0
      *newline_len = 1;
1165
0
      return str;
1166
0
    }
1167
0
  }
1168
0
  *newline_len = 0;
1169
0
  return NULL;
1170
0
}
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
0
{
1176
0
  const char *str = Z_STRVAL_P(zendlval), *end = str + Z_STRLEN_P(zendlval);
1177
0
  char *copy = Z_STRVAL_P(zendlval);
1178
1179
0
  uint32_t newline_count = 0;
1180
0
  size_t newline_len;
1181
0
  const char *nl;
1182
1183
0
  if (!newline_at_start) {
1184
0
    nl = next_newline(str, end, &newline_len);
1185
0
    if (!nl) {
1186
0
      return 1;
1187
0
    }
1188
1189
0
    str = nl + newline_len;
1190
0
    copy = (char *) nl + newline_len;
1191
0
    newline_count++;
1192
0
  } else {
1193
0
    nl = str;
1194
0
  }
1195
1196
  /* <= intentional */
1197
0
  while (str <= end && nl) {
1198
0
    size_t skip;
1199
0
    nl = next_newline(str, end, &newline_len);
1200
0
    if (!nl && newline_at_end) {
1201
0
      nl = end;
1202
0
    }
1203
1204
    /* Try to skip indentation */
1205
0
    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
0
    if (str == end) {
1227
0
      break;
1228
0
    }
1229
1230
0
    size_t len = nl ? (nl - str + newline_len) : (end - str);
1231
0
    memmove(copy, str, len);
1232
0
    str += len;
1233
0
    copy += len;
1234
0
    newline_count++;
1235
0
  }
1236
1237
0
  *copy = '\0';
1238
0
  Z_STRLEN_P(zendlval) = copy - Z_STRVAL_P(zendlval);
1239
0
  return 1;
1240
1241
0
error:
1242
0
  zval_ptr_dtor_str(zendlval);
1243
0
  ZVAL_UNDEF(zendlval);
1244
1245
0
  return 0;
1246
0
}
1247
1248
static void copy_heredoc_label_stack(void *void_heredoc_label)
1249
21
{
1250
21
  zend_heredoc_label *heredoc_label = void_heredoc_label;
1251
21
  zend_heredoc_label *new_heredoc_label = emalloc(sizeof(zend_heredoc_label));
1252
1253
21
  *new_heredoc_label = *heredoc_label;
1254
21
  new_heredoc_label->label = estrndup(heredoc_label->label, heredoc_label->length);
1255
1256
21
  zend_ptr_stack_push(&SCNG(heredoc_label_stack), (void *) new_heredoc_label);
1257
21
}
1258
1259
/* Check that { }, [ ], ( ) are nested correctly */
1260
static void report_bad_nesting(char opening, uint32_t opening_lineno, char closing)
1261
25
{
1262
25
  char   buf[256];
1263
25
  size_t used = 0;
1264
1265
25
  used = snprintf(buf, sizeof(buf), "Unclosed '%c'", opening);
1266
1267
25
  if (opening_lineno != CG(zend_lineno)) {
1268
13
    used += snprintf(buf + used, sizeof(buf) - used, " on line %d", opening_lineno);
1269
13
  }
1270
1271
25
  if (closing) {   /* 'closing' will be 0 if at end of file */
1272
13
    used += snprintf(buf + used, sizeof(buf) - used, " does not match '%c'", closing);
1273
13
  }
1274
1275
25
  zend_throw_exception(zend_ce_parse_error, buf, 0);
1276
25
}
1277
1278
static void enter_nesting(char opening)
1279
870
{
1280
870
  zend_nest_location nest_loc = {opening, CG(zend_lineno)};
1281
870
  zend_stack_push(&SCNG(nest_location_stack), &nest_loc);
1282
870
}
1283
1284
static zend_result exit_nesting(char closing)
1285
846
{
1286
846
  if (zend_stack_is_empty(&SCNG(nest_location_stack))) {
1287
29
    zend_throw_exception_ex(zend_ce_parse_error, 0, "Unmatched '%c'", closing);
1288
29
    return FAILURE;
1289
29
  }
1290
1291
817
  zend_nest_location *nest_loc = zend_stack_top(&SCNG(nest_location_stack));
1292
817
  char opening = nest_loc->text;
1293
1294
817
  if ((opening == '{' && closing != '}') ||
1295
814
      (opening == '[' && closing != ']') ||
1296
812
      (opening == '(' && closing != ')')) {
1297
13
    report_bad_nesting(opening, nest_loc->lineno, closing);
1298
13
    return FAILURE;
1299
13
  }
1300
1301
804
  zend_stack_del_top(&SCNG(nest_location_stack));
1302
804
  return SUCCESS;
1303
817
}
1304
1305
static zend_result check_nesting_at_end(void)
1306
79
{
1307
79
  if (!zend_stack_is_empty(&SCNG(nest_location_stack))) {
1308
12
    zend_nest_location *nest_loc = zend_stack_top(&SCNG(nest_location_stack));
1309
12
    report_bad_nesting(nest_loc->text, nest_loc->lineno, 0);
1310
12
    return FAILURE;
1311
12
  }
1312
1313
67
  return SUCCESS;
1314
79
}
1315
1316
#define PARSER_MODE() \
1317
10.0k
  EXPECTED(elem != NULL)
1318
1319
5.20k
#define RETURN_TOKEN(_token) do { \
1320
5.20k
    token = _token; \
1321
5.20k
    goto emit_token; \
1322
5.20k
  } while (0)
1323
1324
2.32k
#define RETURN_TOKEN_WITH_VAL(_token) do { \
1325
2.32k
    token = _token; \
1326
2.32k
    goto emit_token_with_val; \
1327
2.32k
  } while (0)
1328
1329
3.55k
#define RETURN_TOKEN_WITH_STR(_token, _offset) do { \
1330
3.55k
    token = _token; \
1331
3.55k
    offset = _offset; \
1332
3.55k
    goto emit_token_with_str; \
1333
3.55k
  } while (0)
1334
1335
551
#define RETURN_TOKEN_WITH_IDENT(_token) do { \
1336
551
    token = _token; \
1337
551
    goto emit_token_with_ident; \
1338
551
  } while (0)
1339
1340
343
#define RETURN_OR_SKIP_TOKEN(_token) do { \
1341
343
    token = _token; \
1342
343
    if (PARSER_MODE()) { \
1343
334
      goto skip_token; \
1344
334
    } \
1345
343
    goto emit_token; \
1346
343
  } while (0)
1347
1348
846
#define RETURN_EXIT_NESTING_TOKEN(_token) do { \
1349
846
    if (exit_nesting(_token) != SUCCESS && PARSER_MODE()) { \
1350
0
      RETURN_TOKEN(T_ERROR); \
1351
846
    } else { \
1352
846
      RETURN_TOKEN(_token); \
1353
846
    } \
1354
846
  } while(0)
1355
1356
79
#define RETURN_END_TOKEN do { \
1357
79
    if (check_nesting_at_end() != SUCCESS && PARSER_MODE()) { \
1358
0
      RETURN_TOKEN(T_ERROR); \
1359
79
    } else { \
1360
79
      RETURN_TOKEN(END); \
1361
79
    } \
1362
79
  } while (0)
1363
1364
int ZEND_FASTCALL lex_scan(zval *zendlval, zend_parser_stack_elem *elem)
1365
11.7k
{
1366
11.7k
int token;
1367
11.7k
int offset;
1368
11.7k
uint32_t start_line = CG(zend_lineno);
1369
1370
11.7k
  ZVAL_UNDEF(zendlval);
1371
15.1k
restart:
1372
15.1k
  SCNG(yy_text) = YYCURSOR;
1373
1374
1375
15.1k
#line 1376 "Zend/zend_language_scanner.c"
1376
15.1k
{
1377
15.1k
  YYCTYPE yych;
1378
15.1k
  unsigned int yyaccept = 0;
1379
15.1k
  if (YYGETCONDITION() < 5) {
1380
14.8k
    if (YYGETCONDITION() < 2) {
1381
12.2k
      if (YYGETCONDITION() < 1) {
1382
11.2k
        goto yyc_ST_IN_SCRIPTING;
1383
11.2k
      } else {
1384
989
        goto yyc_ST_LOOKING_FOR_PROPERTY;
1385
989
      }
1386
12.2k
    } else {
1387
2.63k
      if (YYGETCONDITION() < 3) {
1388
132
        goto yyc_ST_BACKQUOTE;
1389
2.50k
      } else {
1390
2.50k
        if (YYGETCONDITION() < 4) {
1391
2.40k
          goto yyc_ST_DOUBLE_QUOTES;
1392
2.40k
        } else {
1393
102
          goto yyc_ST_HEREDOC;
1394
102
        }
1395
2.50k
      }
1396
2.63k
    }
1397
14.8k
  } else {
1398
317
    if (YYGETCONDITION() < 8) {
1399
49
      if (YYGETCONDITION() < 6) {
1400
43
        goto yyc_ST_LOOKING_FOR_VARNAME;
1401
43
      } else {
1402
6
        if (YYGETCONDITION() < 7) {
1403
6
          goto yyc_ST_VAR_OFFSET;
1404
6
        } else {
1405
0
          goto yyc_SHEBANG;
1406
0
        }
1407
6
      }
1408
268
    } else {
1409
268
      if (YYGETCONDITION() < 9) {
1410
268
        goto yyc_INITIAL;
1411
268
      } else {
1412
0
        if (YYGETCONDITION() < 10) {
1413
0
          goto yyc_ST_END_HEREDOC;
1414
0
        } else {
1415
0
          goto yyc_ST_NOWDOC;
1416
0
        }
1417
0
      }
1418
268
    }
1419
317
  }
1420
/* *********************************** */
1421
11.2k
yyc_ST_IN_SCRIPTING:
1422
11.2k
  {
1423
11.2k
    static const unsigned char yybm[] = {
1424
      /* table 1 .. 8: 0 */
1425
11.2k
        0, 134, 134, 134, 134, 134, 134, 134, 
1426
11.2k
      134, 135,   4, 134, 134,   4, 134, 134, 
1427
11.2k
      134, 134, 134, 134, 134, 134, 134, 134, 
1428
11.2k
      134, 134, 134, 134, 134, 134, 134, 134, 
1429
11.2k
      135, 134, 134, 134, 134, 134, 134, 134, 
1430
11.2k
      134, 134,  66, 134, 134, 134, 134, 134, 
1431
11.2k
      190, 190, 182, 182, 182, 182, 182, 182, 
1432
11.2k
      166, 166, 134, 134, 134, 134, 134, 134, 
1433
11.2k
      134, 166, 166, 166, 166, 166, 166, 134, 
1434
11.2k
      134, 134, 134, 134, 134, 134, 134, 134, 
1435
11.2k
      134, 134, 134, 134, 134, 134, 134, 134, 
1436
11.2k
      134, 134, 134, 134, 134, 134, 134, 134, 
1437
11.2k
      134, 166, 166, 166, 166, 166, 166, 134, 
1438
11.2k
      134, 134, 134, 134, 134, 134, 134, 134, 
1439
11.2k
      134, 134, 134, 134, 134, 134, 134, 134, 
1440
11.2k
      134, 134, 134, 134, 134, 134, 134, 134, 
1441
11.2k
      134, 134, 134, 134, 134, 134, 134, 134, 
1442
11.2k
      134, 134, 134, 134, 134, 134, 134, 134, 
1443
11.2k
      134, 134, 134, 134, 134, 134, 134, 134, 
1444
11.2k
      134, 134, 134, 134, 134, 134, 134, 134, 
1445
11.2k
      134, 134, 134, 134, 134, 134, 134, 134, 
1446
11.2k
      134, 134, 134, 134, 134, 134, 134, 134, 
1447
11.2k
      134, 134, 134, 134, 134, 134, 134, 134, 
1448
11.2k
      134, 134, 134, 134, 134, 134, 134, 134, 
1449
11.2k
      134, 134, 134, 134, 134, 134, 134, 134, 
1450
11.2k
      134, 134, 134, 134, 134, 134, 134, 134, 
1451
11.2k
      134, 134, 134, 134, 134, 134, 134, 134, 
1452
11.2k
      134, 134, 134, 134, 134, 134, 134, 134, 
1453
11.2k
      134, 134, 134, 134, 134, 134, 134, 134, 
1454
11.2k
      134, 134, 134, 134, 134, 134, 134, 134, 
1455
11.2k
      134, 134, 134, 134, 134, 134, 134, 134, 
1456
11.2k
      134, 134, 134, 134, 134, 134, 134, 134, 
1457
      /* table 9 .. 11: 256 */
1458
11.2k
        0,   0,   0,   0,   0,   0,   0,   0, 
1459
11.2k
        0,  32,  32,   0,   0,  32,   0,   0, 
1460
11.2k
        0,   0,   0,   0,   0,   0,   0,   0, 
1461
11.2k
        0,   0,   0,   0,   0,   0,   0,   0, 
1462
11.2k
       32,   0,   0,   0,   0,   0,   0,   0, 
1463
11.2k
        0,   0,   0,   0,   0,   0,   0,   0, 
1464
11.2k
      192, 192, 192, 192, 192, 192, 192, 192, 
1465
11.2k
      192, 192,   0,   0,   0,   0,   0,   0, 
1466
11.2k
        0, 128, 128, 128, 128, 128, 128, 128, 
1467
11.2k
      128, 128, 128, 128, 128, 128, 128, 128, 
1468
11.2k
      128, 128, 128, 128, 128, 128, 128, 128, 
1469
11.2k
      128, 128, 128,   0,   0,   0,   0, 128, 
1470
11.2k
        0, 128, 128, 128, 128, 128, 128, 128, 
1471
11.2k
      128, 128, 128, 128, 128, 128, 128, 128, 
1472
11.2k
      128, 128, 128, 128, 128, 128, 128, 128, 
1473
11.2k
      128, 128, 128,   0,   0,   0,   0,   0, 
1474
11.2k
      128, 128, 128, 128, 128, 128, 128, 128, 
1475
11.2k
      128, 128, 128, 128, 128, 128, 128, 128, 
1476
11.2k
      128, 128, 128, 128, 128, 128, 128, 128, 
1477
11.2k
      128, 128, 128, 128, 128, 128, 128, 128, 
1478
11.2k
      128, 128, 128, 128, 128, 128, 128, 128, 
1479
11.2k
      128, 128, 128, 128, 128, 128, 128, 128, 
1480
11.2k
      128, 128, 128, 128, 128, 128, 128, 128, 
1481
11.2k
      128, 128, 128, 128, 128, 128, 128, 128, 
1482
11.2k
      128, 128, 128, 128, 128, 128, 128, 128, 
1483
11.2k
      128, 128, 128, 128, 128, 128, 128, 128, 
1484
11.2k
      128, 128, 128, 128, 128, 128, 128, 128, 
1485
11.2k
      128, 128, 128, 128, 128, 128, 128, 128, 
1486
11.2k
      128, 128, 128, 128, 128, 128, 128, 128, 
1487
11.2k
      128, 128, 128, 128, 128, 128, 128, 128, 
1488
11.2k
      128, 128, 128, 128, 128, 128, 128, 128, 
1489
11.2k
      128, 128, 128, 128, 128, 128, 128, 128, 
1490
11.2k
    };
1491
11.2k
    YYDEBUG(1, *YYCURSOR);
1492
11.2k
    YYFILL(16);
1493
11.2k
    yych = *YYCURSOR;
1494
11.2k
    if (yybm[256+yych] & 32) {
1495
3.13k
      goto yy5;
1496
3.13k
    }
1497
8.08k
    switch (yych) {
1498
127
    case 0x00:
1499
128
    case 0x01:
1500
128
    case 0x02:
1501
128
    case 0x03:
1502
132
    case 0x04:
1503
135
    case 0x05:
1504
135
    case 0x06:
1505
137
    case 0x07:
1506
137
    case 0x08:
1507
137
    case '\t':
1508
137
    case '\n':
1509
140
    case '\v':
1510
140
    case '\f':
1511
140
    case '\r':
1512
142
    case 0x0E:
1513
147
    case 0x0F:
1514
161
    case 0x10:
1515
163
    case 0x11:
1516
165
    case 0x12:
1517
167
    case 0x13:
1518
168
    case 0x14:
1519
170
    case 0x15:
1520
171
    case 0x16:
1521
174
    case 0x17:
1522
175
    case 0x18:
1523
176
    case 0x19:
1524
179
    case 0x1A:
1525
180
    case 0x1B:
1526
188
    case 0x1C:
1527
194
    case 0x1D:
1528
198
    case 0x1E:
1529
200
    case 0x1F:
1530
320
    case 0x7F:  goto yy3;
1531
0
    case ' ':
1532
55
    case '!': goto yy8;
1533
137
    case '"': goto yy10;
1534
5
    case '#': goto yy12;
1535
1.11k
    case '$': goto yy14;
1536
16
    case '%': goto yy15;
1537
76
    case '&': goto yy16;
1538
510
    case '\'':  goto yy18;
1539
535
    case '(': goto yy20;
1540
535
    case ')':
1541
603
    case ']': goto yy22;
1542
17
    case '*': goto yy24;
1543
104
    case '+': goto yy25;
1544
224
    case ',':
1545
884
    case ';':
1546
887
    case '@':
1547
908
    case '~': goto yy26;
1548
128
    case '-': goto yy27;
1549
192
    case '.': goto yy28;
1550
306
    case '/': goto yy29;
1551
110
    case '0': goto yy30;
1552
79
    case '1':
1553
103
    case '2':
1554
136
    case '3':
1555
163
    case '4':
1556
180
    case '5':
1557
186
    case '6':
1558
195
    case '7':
1559
200
    case '8':
1560
202
    case '9': goto yy32;
1561
22
    case ':': goto yy34;
1562
162
    case '<': goto yy35;
1563
418
    case '=': goto yy36;
1564
40
    case '>': goto yy37;
1565
172
    case '?': goto yy38;
1566
8
    case 'A':
1567
25
    case 'a': goto yy39;
1568
8
    case 'B':
1569
12
    case 'b': goto yy41;
1570
3
    case 'C':
1571
158
    case 'c': goto yy42;
1572
116
    case 'D':
1573
117
    case 'd': goto yy43;
1574
68
    case 'E':
1575
136
    case 'e': goto yy44;
1576
9
    case 'F':
1577
156
    case 'f': goto yy45;
1578
0
    case 'G':
1579
8
    case 'g': goto yy46;
1580
10
    case 'I':
1581
33
    case 'i': goto yy49;
1582
1
    case 'L':
1583
4
    case 'l': goto yy50;
1584
2
    case 'M':
1585
21
    case 'm': goto yy51;
1586
1
    case 'N':
1587
163
    case 'n': goto yy52;
1588
2
    case 'O':
1589
31
    case 'o': goto yy53;
1590
4
    case 'P':
1591
28
    case 'p': goto yy54;
1592
5
    case 'R':
1593
35
    case 'r': goto yy55;
1594
4
    case 'S':
1595
38
    case 's': goto yy56;
1596
1
    case 'T':
1597
76
    case 't': goto yy57;
1598
1
    case 'U':
1599
5
    case 'u': goto yy58;
1600
2
    case 'V':
1601
37
    case 'v': goto yy59;
1602
2
    case 'W':
1603
7
    case 'w': goto yy60;
1604
3
    case 'X':
1605
26
    case 'x': goto yy61;
1606
1
    case 'Y':
1607
12
    case 'y': goto yy62;
1608
67
    case '[': goto yy63;
1609
2
    case '\\':  goto yy64;
1610
58
    case '^': goto yy66;
1611
46
    case '_': goto yy67;
1612
7
    case '`': goto yy68;
1613
223
    case '{': goto yy70;
1614
66
    case '|': goto yy72;
1615
243
    case '}': goto yy73;
1616
92
    default:  goto yy47;
1617
8.08k
    }
1618
320
yy3:
1619
320
    YYDEBUG(3, *YYCURSOR);
1620
320
    ++YYCURSOR;
1621
320
    YYDEBUG(4, *YYCURSOR);
1622
320
    yyleng = YYCURSOR - SCNG(yy_text);
1623
320
#line 3180 "Zend/zend_language_scanner.l"
1624
320
    {
1625
320
  if (YYCURSOR > YYLIMIT) {
1626
15
    RETURN_END_TOKEN;
1627
15
  }
1628
1629
305
  RETURN_TOKEN(T_BAD_CHARACTER);
1630
305
}
1631
0
#line 1632 "Zend/zend_language_scanner.c"
1632
4.61k
yy5:
1633
4.61k
    YYDEBUG(5, *YYCURSOR);
1634
4.61k
    ++YYCURSOR;
1635
4.61k
    YYFILL(1);
1636
4.61k
    yych = *YYCURSOR;
1637
4.61k
    YYDEBUG(6, *YYCURSOR);
1638
4.61k
    if (yybm[256+yych] & 32) {
1639
1.48k
      goto yy5;
1640
1.48k
    }
1641
3.13k
    YYDEBUG(7, *YYCURSOR);
1642
3.13k
    yyleng = YYCURSOR - SCNG(yy_text);
1643
3.13k
#line 1597 "Zend/zend_language_scanner.l"
1644
3.13k
    {
1645
3.13k
  goto return_whitespace;
1646
4.61k
}
1647
0
#line 1648 "Zend/zend_language_scanner.c"
1648
55
yy8:
1649
55
    YYDEBUG(8, *YYCURSOR);
1650
55
    yych = *++YYCURSOR;
1651
55
    if (yych == '=') goto yy75;
1652
1.94k
yy9:
1653
1.94k
    YYDEBUG(9, *YYCURSOR);
1654
1.94k
    yyleng = YYCURSOR - SCNG(yy_text);
1655
1.94k
#line 1969 "Zend/zend_language_scanner.l"
1656
1.94k
    {
1657
1.94k
  RETURN_TOKEN(yytext[0]);
1658
1.94k
}
1659
0
#line 1660 "Zend/zend_language_scanner.c"
1660
138
yy10:
1661
138
    YYDEBUG(10, *YYCURSOR);
1662
138
    ++YYCURSOR;
1663
138
    YYDEBUG(11, *YYCURSOR);
1664
138
    yyleng = YYCURSOR - SCNG(yy_text);
1665
138
#line 2632 "Zend/zend_language_scanner.l"
1666
138
    {
1667
138
  int bprefix = (yytext[0] != '"') ? 1 : 0;
1668
1669
5.04k
  while (YYCURSOR < YYLIMIT) {
1670
5.03k
    switch (*YYCURSOR++) {
1671
63
      case '"':
1672
63
        yyleng = YYCURSOR - SCNG(yy_text);
1673
63
        if (EXPECTED(zend_scan_escape_string(zendlval, yytext+bprefix+1, yyleng-bprefix-2, '"') == SUCCESS)
1674
63
         || !PARSER_MODE()) {
1675
63
          RETURN_TOKEN_WITH_VAL(T_CONSTANT_ENCAPSED_STRING);
1676
63
        } else {
1677
0
          RETURN_TOKEN(T_ERROR);
1678
0
        }
1679
65
      case '$':
1680
65
        if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
1681
64
          break;
1682
64
        }
1683
1
        continue;
1684
35
      case '{':
1685
35
        if (*YYCURSOR == '$') {
1686
1
          break;
1687
1
        }
1688
34
        continue;
1689
201
      case '\\':
1690
201
        if (YYCURSOR < YYLIMIT) {
1691
201
          YYCURSOR++;
1692
201
        }
1693
201
        ZEND_FALLTHROUGH;
1694
4.86k
      default:
1695
4.86k
        continue;
1696
5.03k
    }
1697
1698
65
    YYCURSOR--;
1699
65
    break;
1700
5.03k
  }
1701
1702
  /* Remember how much was scanned to save rescanning */
1703
138
  SET_DOUBLE_QUOTES_SCANNED_LENGTH(YYCURSOR - SCNG(yy_text) - yyleng);
1704
1705
75
  YYCURSOR = SCNG(yy_text) + yyleng;
1706
1707
75
  BEGIN(ST_DOUBLE_QUOTES);
1708
75
  RETURN_TOKEN('"');
1709
75
}
1710
0
#line 1711 "Zend/zend_language_scanner.c"
1711
5
yy12:
1712
5
    YYDEBUG(12, *YYCURSOR);
1713
5
    yych = *++YYCURSOR;
1714
5
    if (yych == '[') goto yy77;
1715
251
yy13:
1716
251
    YYDEBUG(13, *YYCURSOR);
1717
251
    yyleng = YYCURSOR - SCNG(yy_text);
1718
251
#line 2460 "Zend/zend_language_scanner.l"
1719
251
    {
1720
13.7k
  while (YYCURSOR < YYLIMIT) {
1721
13.7k
    switch (*YYCURSOR++) {
1722
1
      case '\r':
1723
234
      case '\n':
1724
234
        YYCURSOR--;
1725
234
        break;
1726
37
      case '?':
1727
37
        if (*YYCURSOR == '>') {
1728
2
          YYCURSOR--;
1729
2
          break;
1730
2
        }
1731
35
        ZEND_FALLTHROUGH;
1732
13.4k
      default:
1733
13.4k
        continue;
1734
13.7k
    }
1735
1736
236
    break;
1737
13.7k
  }
1738
1739
251
  yyleng = YYCURSOR - SCNG(yy_text);
1740
251
  RETURN_OR_SKIP_TOKEN(T_COMMENT);
1741
251
}
1742
0
#line 1743 "Zend/zend_language_scanner.c"
1743
1.11k
yy14:
1744
1.11k
    YYDEBUG(14, *YYCURSOR);
1745
1.11k
    yych = *++YYCURSOR;
1746
1.11k
    if (yych <= '_') {
1747
50
      if (yych <= '@') goto yy9;
1748
31
      if (yych <= 'Z') goto yy79;
1749
4
      if (yych <= '^') goto yy9;
1750
4
      goto yy79;
1751
1.06k
    } else {
1752
1.06k
      if (yych <= '`') goto yy9;
1753
1.06k
      if (yych <= 'z') goto yy79;
1754
13
      if (yych <= 0x7F) goto yy9;
1755
8
      goto yy79;
1756
13
    }
1757
16
yy15:
1758
16
    YYDEBUG(15, *YYCURSOR);
1759
16
    yych = *++YYCURSOR;
1760
16
    if (yych == '=') goto yy82;
1761
16
    goto yy9;
1762
76
yy16:
1763
76
    YYDEBUG(16, *YYCURSOR);
1764
76
    yyaccept = 0;
1765
76
    yych = *(YYMARKER = ++YYCURSOR);
1766
76
    if (yych <= '"') {
1767
7
      if (yych <= '\f') {
1768
6
        if (yych <= 0x08) goto yy17;
1769
4
        if (yych <= '\n') goto yy85;
1770
4
      } else {
1771
1
        if (yych <= '\r') goto yy85;
1772
1
        if (yych == ' ') goto yy85;
1773
1
      }
1774
69
    } else {
1775
69
      if (yych <= '-') {
1776
51
        if (yych <= '$') goto yy85;
1777
45
        if (yych == '&') goto yy90;
1778
45
      } else {
1779
18
        if (yych <= '/') goto yy85;
1780
18
        if (yych == '=') goto yy94;
1781
18
      }
1782
69
    }
1783
42
yy17:
1784
42
    YYDEBUG(17, *YYCURSOR);
1785
42
    yyleng = YYCURSOR - SCNG(yy_text);
1786
42
#line 1955 "Zend/zend_language_scanner.l"
1787
42
    {
1788
42
  RETURN_TOKEN(T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG);
1789
42
}
1790
0
#line 1791 "Zend/zend_language_scanner.c"
1791
510
yy18:
1792
510
    YYDEBUG(18, *YYCURSOR);
1793
510
    ++YYCURSOR;
1794
510
    YYDEBUG(19, *YYCURSOR);
1795
510
    yyleng = YYCURSOR - SCNG(yy_text);
1796
510
#line 2538 "Zend/zend_language_scanner.l"
1797
510
    {
1798
510
  char *s, *t;
1799
510
  char *end;
1800
510
  int bprefix = (yytext[0] != '\'') ? 1 : 0;
1801
1802
382k
  while (1) {
1803
382k
    if (YYCURSOR < YYLIMIT) {
1804
382k
      if (*YYCURSOR == '\'') {
1805
510
        YYCURSOR++;
1806
510
        yyleng = YYCURSOR - SCNG(yy_text);
1807
1808
510
        break;
1809
382k
      } else if (*YYCURSOR++ == '\\' && YYCURSOR < YYLIMIT) {
1810
910
        YYCURSOR++;
1811
910
      }
1812
382k
    } else {
1813
0
      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
0
      ZVAL_NULL(zendlval);
1819
0
      RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
1820
0
    }
1821
382k
  }
1822
1823
510
  if (yyleng-bprefix-2 <= 1) {
1824
6
    if (yyleng-bprefix-2 < 1) {
1825
6
      ZVAL_EMPTY_STRING(zendlval);
1826
6
    } else {
1827
0
      zend_uchar c = (zend_uchar)*(yytext+bprefix+1);
1828
0
      HANDLE_NEWLINE(c);
1829
0
      ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR(c));
1830
0
    }
1831
6
    goto skip_escape_conversion;
1832
6
  }
1833
504
  ZVAL_STRINGL(zendlval, yytext+bprefix+1, yyleng-bprefix-2);
1834
1835
  /* convert escape sequences */
1836
504
  s = Z_STRVAL_P(zendlval);
1837
504
  end = s+Z_STRLEN_P(zendlval);
1838
103k
  while (1) {
1839
103k
    if (UNEXPECTED(*s=='\\')) {
1840
128
      break;
1841
128
    }
1842
103k
    if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
1843
1.31k
      CG(zend_lineno)++;
1844
1.31k
    }
1845
103k
    s++;
1846
103k
    if (s == end) {
1847
376
      goto skip_escape_conversion;
1848
376
    }
1849
103k
  }
1850
1851
128
  t = s;
1852
278k
  while (s<end) {
1853
278k
    if (*s=='\\') {
1854
910
      s++;
1855
910
      if (*s == '\\' || *s == '\'') {
1856
170
        *t++ = *s;
1857
740
      } else {
1858
740
        *t++ = '\\';
1859
740
        *t++ = *s;
1860
740
      }
1861
277k
    } else {
1862
277k
      *t++ = *s;
1863
277k
    }
1864
278k
    if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
1865
3.71k
      CG(zend_lineno)++;
1866
3.71k
    }
1867
278k
    s++;
1868
278k
  }
1869
128
  *t = 0;
1870
128
  Z_STRLEN_P(zendlval) = t - Z_STRVAL_P(zendlval);
1871
1872
510
skip_escape_conversion:
1873
510
  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
510
  RETURN_TOKEN_WITH_VAL(T_CONSTANT_ENCAPSED_STRING);
1888
510
}
1889
0
#line 1890 "Zend/zend_language_scanner.c"
1890
535
yy20:
1891
535
    YYDEBUG(20, *YYCURSOR);
1892
535
    yyaccept = 1;
1893
535
    yych = *(YYMARKER = ++YYCURSOR);
1894
535
    if (yych <= 'S') {
1895
444
      if (yych <= 'D') {
1896
375
        if (yych <= ' ') {
1897
2
          if (yych == '\t') goto yy97;
1898
1
          if (yych >= ' ') goto yy97;
1899
373
        } else {
1900
373
          if (yych <= '@') goto yy21;
1901
1
          if (yych != 'C') goto yy97;
1902
1
        }
1903
375
      } else {
1904
69
        if (yych <= 'I') {
1905
68
          if (yych == 'F') goto yy97;
1906
67
          if (yych >= 'I') goto yy97;
1907
67
        } else {
1908
1
          if (yych == 'O') goto yy97;
1909
1
          if (yych >= 'R') goto yy97;
1910
1
        }
1911
69
      }
1912
444
    } else {
1913
91
      if (yych <= 'f') {
1914
62
        if (yych <= 'b') {
1915
33
          if (yych <= 'T') goto yy21;
1916
33
          if (yych <= 'V') goto yy97;
1917
33
          if (yych >= 'a') goto yy97;
1918
33
        } else {
1919
29
          if (yych == 'd') goto yy97;
1920
29
          if (yych >= 'f') goto yy97;
1921
29
        }
1922
62
      } else {
1923
29
        if (yych <= 'o') {
1924
6
          if (yych == 'i') goto yy97;
1925
6
          if (yych >= 'o') goto yy97;
1926
23
        } else {
1927
23
          if (yych <= 's') {
1928
12
            if (yych >= 'r') goto yy97;
1929
12
          } else {
1930
11
            if (yych <= 't') goto yy21;
1931
11
            if (yych <= 'v') goto yy97;
1932
11
          }
1933
23
        }
1934
29
      }
1935
91
    }
1936
602
yy21:
1937
602
    YYDEBUG(21, *YYCURSOR);
1938
602
    yyleng = YYCURSOR - SCNG(yy_text);
1939
602
#line 1964 "Zend/zend_language_scanner.l"
1940
602
    {
1941
602
  enter_nesting(yytext[0]);
1942
602
  RETURN_TOKEN(yytext[0]);
1943
602
}
1944
0
#line 1945 "Zend/zend_language_scanner.c"
1945
603
yy22:
1946
603
    YYDEBUG(22, *YYCURSOR);
1947
603
    ++YYCURSOR;
1948
603
    YYDEBUG(23, *YYCURSOR);
1949
603
    yyleng = YYCURSOR - SCNG(yy_text);
1950
603
#line 1959 "Zend/zend_language_scanner.l"
1951
603
    {
1952
  /* Check that ] and ) match up properly with a preceding [ or ( */
1953
603
  RETURN_EXIT_NESTING_TOKEN(yytext[0]);
1954
603
}
1955
0
#line 1956 "Zend/zend_language_scanner.c"
1956
17
yy24:
1957
17
    YYDEBUG(24, *YYCURSOR);
1958
17
    yych = *++YYCURSOR;
1959
17
    if (yych == '*') goto yy108;
1960
17
    if (yych == '=') goto yy110;
1961
17
    goto yy9;
1962
104
yy25:
1963
104
    YYDEBUG(25, *YYCURSOR);
1964
104
    yych = *++YYCURSOR;
1965
104
    if (yych == '+') goto yy112;
1966
51
    if (yych == '=') goto yy114;
1967
26
    goto yy9;
1968
908
yy26:
1969
908
    YYDEBUG(26, *YYCURSOR);
1970
908
    ++YYCURSOR;
1971
908
    goto yy9;
1972
128
yy27:
1973
128
    YYDEBUG(27, *YYCURSOR);
1974
128
    yych = *++YYCURSOR;
1975
128
    if (yych <= '<') {
1976
44
      if (yych == '-') goto yy116;
1977
41
      goto yy9;
1978
84
    } else {
1979
84
      if (yych <= '=') goto yy118;
1980
84
      if (yych <= '>') goto yy120;
1981
18
      goto yy9;
1982
84
    }
1983
192
yy28:
1984
192
    YYDEBUG(28, *YYCURSOR);
1985
192
    yyaccept = 2;
1986
192
    yych = *(YYMARKER = ++YYCURSOR);
1987
192
    if (yych <= '/') {
1988
122
      if (yych == '.') goto yy122;
1989
122
      goto yy9;
1990
122
    } else {
1991
70
      if (yych <= '9') goto yy123;
1992
59
      if (yych == '=') goto yy126;
1993
7
      goto yy9;
1994
59
    }
1995
306
yy29:
1996
306
    YYDEBUG(29, *YYCURSOR);
1997
306
    yych = *++YYCURSOR;
1998
306
    if (yych <= '.') {
1999
33
      if (yych == '*') goto yy128;
2000
33
      goto yy9;
2001
273
    } else {
2002
273
      if (yych <= '/') goto yy130;
2003
27
      if (yych == '=') goto yy131;
2004
27
      goto yy9;
2005
27
    }
2006
110
yy30:
2007
110
    YYDEBUG(30, *YYCURSOR);
2008
110
    yyaccept = 3;
2009
110
    yych = *(YYMARKER = ++YYCURSOR);
2010
110
    if (yych <= 'X') {
2011
106
      if (yych <= 'N') {
2012
106
        if (yych == 'B') goto yy134;
2013
106
        goto yy33;
2014
106
      } else {
2015
0
        if (yych <= 'O') goto yy136;
2016
0
        if (yych <= 'W') goto yy33;
2017
0
        goto yy137;
2018
0
      }
2019
106
    } else {
2020
4
      if (yych <= 'n') {
2021
4
        if (yych == 'b') goto yy134;
2022
4
        goto yy33;
2023
4
      } else {
2024
0
        if (yych <= 'o') goto yy136;
2025
0
        if (yych == 'x') goto yy137;
2026
0
        goto yy33;
2027
0
      }
2028
4
    }
2029
308
yy31:
2030
308
    YYDEBUG(31, *YYCURSOR);
2031
308
    yyleng = YYCURSOR - SCNG(yy_text);
2032
308
#line 2103 "Zend/zend_language_scanner.l"
2033
308
    {
2034
308
  size_t len = yyleng;
2035
308
  char *end, *lnum = yytext;
2036
308
  bool is_octal = lnum[0] == '0';
2037
308
  bool contains_underscores = (memchr(lnum, '_', len) != NULL);
2038
2039
308
  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
308
  if (is_octal) {
2046
109
    size_t i;
2047
220
    for (i = 0; i < len; i++) {
2048
111
      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
111
    }
2063
109
  }
2064
2065
2066
308
  if (len < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
2067
304
    errno = 0;
2068
    /* base must be passed explicitly for correct parse error on Windows */
2069
304
    ZVAL_LONG(zendlval, ZEND_STRTOL(lnum, &end, is_octal ? 8 : 10));
2070
304
    ZEND_ASSERT(end == lnum + len);
2071
304
  } else {
2072
4
    errno = 0;
2073
4
    ZVAL_LONG(zendlval, ZEND_STRTOL(lnum, &end, 0));
2074
4
    if (errno == ERANGE) { /* Overflow */
2075
4
      errno = 0;
2076
4
      if (is_octal) { /* octal overflow */
2077
0
        ZVAL_DOUBLE(zendlval, zend_oct_strtod(lnum, (const char **)&end));
2078
4
      } else {
2079
4
        ZVAL_DOUBLE(zendlval, zend_strtod(lnum, (const char **)&end));
2080
4
      }
2081
4
      ZEND_ASSERT(end == lnum + len);
2082
4
      if (contains_underscores) {
2083
0
        efree(lnum);
2084
0
      }
2085
4
      RETURN_TOKEN_WITH_VAL(T_DNUMBER);
2086
4
    }
2087
0
    ZEND_ASSERT(end == lnum + len);
2088
0
  }
2089
304
  ZEND_ASSERT(!errno);
2090
304
  if (contains_underscores) {
2091
0
    efree(lnum);
2092
0
  }
2093
304
  RETURN_TOKEN_WITH_VAL(T_LNUMBER);
2094
304
}
2095
0
#line 2096 "Zend/zend_language_scanner.c"
2096
578
yy32:
2097
578
    YYDEBUG(32, *YYCURSOR);
2098
578
    yyaccept = 3;
2099
578
    YYMARKER = ++YYCURSOR;
2100
578
    YYFILL(3);
2101
578
    yych = *YYCURSOR;
2102
688
yy33:
2103
688
    YYDEBUG(33, *YYCURSOR);
2104
688
    if (yybm[256+yych] & 64) {
2105
376
      goto yy32;
2106
376
    }
2107
312
    if (yych <= 'E') {
2108
289
      if (yych == '.') goto yy133;
2109
285
      if (yych <= 'D') goto yy31;
2110
0
      goto yy135;
2111
285
    } else {
2112
23
      if (yych <= '_') {
2113
13
        if (yych <= '^') goto yy31;
2114
0
        goto yy138;
2115
13
      } else {
2116
10
        if (yych == 'e') goto yy135;
2117
10
        goto yy31;
2118
10
      }
2119
23
    }
2120
22
yy34:
2121
22
    YYDEBUG(34, *YYCURSOR);
2122
22
    yych = *++YYCURSOR;
2123
22
    if (yych == ':') goto yy139;
2124
16
    goto yy9;
2125
162
yy35:
2126
162
    YYDEBUG(35, *YYCURSOR);
2127
162
    yych = *++YYCURSOR;
2128
162
    if (yych <= ';') goto yy9;
2129
128
    if (yych <= '<') goto yy141;
2130
93
    if (yych <= '=') goto yy143;
2131
28
    if (yych <= '>') goto yy145;
2132
28
    goto yy9;
2133
418
yy36:
2134
418
    YYDEBUG(36, *YYCURSOR);
2135
418
    yych = *++YYCURSOR;
2136
418
    if (yych <= '<') goto yy9;
2137
27
    if (yych <= '=') goto yy146;
2138
10
    if (yych <= '>') goto yy148;
2139
4
    goto yy9;
2140
40
yy37:
2141
40
    YYDEBUG(37, *YYCURSOR);
2142
40
    yych = *++YYCURSOR;
2143
40
    if (yych <= '<') goto yy9;
2144
22
    if (yych <= '=') goto yy150;
2145
22
    if (yych <= '>') goto yy152;
2146
20
    goto yy9;
2147
172
yy38:
2148
172
    YYDEBUG(38, *YYCURSOR);
2149
172
    yyaccept = 2;
2150
172
    yych = *(YYMARKER = ++YYCURSOR);
2151
172
    if (yych <= '=') {
2152
32
      if (yych == '-') goto yy154;
2153
32
      goto yy9;
2154
140
    } else {
2155
140
      if (yych <= '>') goto yy155;
2156
61
      if (yych <= '?') goto yy157;
2157
23
      goto yy9;
2158
61
    }
2159
25
yy39:
2160
25
    YYDEBUG(39, *YYCURSOR);
2161
25
    yyaccept = 4;
2162
25
    yych = *(YYMARKER = ++YYCURSOR);
2163
25
    if (yych <= 'S') {
2164
1
      if (yych <= 'M') {
2165
1
        if (yych == 'B') goto yy159;
2166
1
        goto yy48;
2167
1
      } else {
2168
0
        if (yych <= 'N') goto yy160;
2169
0
        if (yych <= 'Q') goto yy48;
2170
0
        if (yych <= 'R') goto yy161;
2171
0
        goto yy162;
2172
0
      }
2173
24
    } else {
2174
24
      if (yych <= 'n') {
2175
3
        if (yych == 'b') goto yy159;
2176
3
        if (yych <= 'm') goto yy48;
2177
2
        goto yy160;
2178
21
      } else {
2179
21
        if (yych <= 'q') goto yy48;
2180
21
        if (yych <= 'r') goto yy161;
2181
14
        if (yych <= 's') goto yy162;
2182
1
        goto yy48;
2183
14
      }
2184
24
    }
2185
713
yy40:
2186
713
    YYDEBUG(40, *YYCURSOR);
2187
713
    yyleng = YYCURSOR - SCNG(yy_text);
2188
713
#line 2455 "Zend/zend_language_scanner.l"
2189
713
    {
2190
713
  RETURN_TOKEN_WITH_STR(T_STRING, 0);
2191
713
}
2192
0
#line 2193 "Zend/zend_language_scanner.c"
2193
12
yy41:
2194
12
    YYDEBUG(41, *YYCURSOR);
2195
12
    yyaccept = 4;
2196
12
    yych = *(YYMARKER = ++YYCURSOR);
2197
12
    if (yych <= ';') {
2198
1
      if (yych <= '"') {
2199
1
        if (yych <= '!') goto yy48;
2200
1
        goto yy10;
2201
1
      } else {
2202
0
        if (yych == '\'') goto yy18;
2203
0
        goto yy48;
2204
0
      }
2205
11
    } else {
2206
11
      if (yych <= 'R') {
2207
0
        if (yych <= '<') goto yy165;
2208
0
        if (yych <= 'Q') goto yy48;
2209
0
        goto yy166;
2210
11
      } else {
2211
11
        if (yych == 'r') goto yy166;
2212
11
        goto yy48;
2213
11
      }
2214
11
    }
2215
158
yy42:
2216
158
    YYDEBUG(42, *YYCURSOR);
2217
158
    yyaccept = 4;
2218
158
    yych = *(YYMARKER = ++YYCURSOR);
2219
158
    if (yych <= 'O') {
2220
2
      if (yych <= 'K') {
2221
2
        if (yych == 'A') goto yy167;
2222
2
        goto yy48;
2223
2
      } else {
2224
0
        if (yych <= 'L') goto yy168;
2225
0
        if (yych <= 'N') goto yy48;
2226
0
        goto yy169;
2227
0
      }
2228
156
    } else {
2229
156
      if (yych <= 'k') {
2230
92
        if (yych == 'a') goto yy167;
2231
0
        goto yy48;
2232
92
      } else {
2233
64
        if (yych <= 'l') goto yy168;
2234
47
        if (yych == 'o') goto yy169;
2235
3
        goto yy48;
2236
47
      }
2237
156
    }
2238
117
yy43:
2239
117
    YYDEBUG(43, *YYCURSOR);
2240
117
    yyaccept = 4;
2241
117
    yych = *(YYMARKER = ++YYCURSOR);
2242
117
    if (yych <= 'O') {
2243
12
      if (yych <= 'H') {
2244
1
        if (yych == 'E') goto yy170;
2245
1
        goto yy48;
2246
11
      } else {
2247
11
        if (yych <= 'I') goto yy171;
2248
11
        if (yych <= 'N') goto yy48;
2249
11
        goto yy172;
2250
11
      }
2251
105
    } else {
2252
105
      if (yych <= 'h') {
2253
105
        if (yych == 'e') goto yy170;
2254
105
        goto yy48;
2255
105
      } else {
2256
0
        if (yych <= 'i') goto yy171;
2257
0
        if (yych == 'o') goto yy172;
2258
0
        goto yy48;
2259
0
      }
2260
105
    }
2261
136
yy44:
2262
136
    YYDEBUG(44, *YYCURSOR);
2263
136
    yyaccept = 4;
2264
136
    yych = *(YYMARKER = ++YYCURSOR);
2265
136
    switch (yych) {
2266
1
    case 'C':
2267
26
    case 'c': goto yy174;
2268
0
    case 'L':
2269
0
    case 'l': goto yy175;
2270
0
    case 'M':
2271
1
    case 'm': goto yy176;
2272
0
    case 'N':
2273
4
    case 'n': goto yy177;
2274
0
    case 'V':
2275
6
    case 'v': goto yy178;
2276
0
    case 'X':
2277
66
    case 'x': goto yy179;
2278
33
    default:  goto yy48;
2279
136
    }
2280
156
yy45:
2281
156
    YYDEBUG(45, *YYCURSOR);
2282
156
    yyaccept = 4;
2283
156
    yych = *(YYMARKER = ++YYCURSOR);
2284
156
    if (yych <= 'U') {
2285
10
      if (yych <= 'M') {
2286
10
        if (yych == 'I') goto yy180;
2287
10
        goto yy48;
2288
10
      } 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
146
    } else {
2295
146
      if (yych <= 'n') {
2296
26
        if (yych == 'i') goto yy180;
2297
26
        if (yych <= 'm') goto yy48;
2298
1
        goto yy181;
2299
120
      } else {
2300
120
        if (yych <= 'o') goto yy183;
2301
22
        if (yych == 'u') goto yy184;
2302
1
        goto yy48;
2303
22
      }
2304
146
    }
2305
8
yy46:
2306
8
    YYDEBUG(46, *YYCURSOR);
2307
8
    yyaccept = 4;
2308
8
    yych = *(YYMARKER = ++YYCURSOR);
2309
8
    if (yych <= 'O') {
2310
0
      if (yych == 'L') goto yy185;
2311
0
      if (yych <= 'N') goto yy48;
2312
0
      goto yy186;
2313
8
    } else {
2314
8
      if (yych <= 'l') {
2315
5
        if (yych <= 'k') goto yy48;
2316
0
        goto yy185;
2317
5
      } else {
2318
3
        if (yych == 'o') goto yy186;
2319
3
        goto yy48;
2320
3
      }
2321
8
    }
2322
4.72k
yy47:
2323
4.72k
    YYDEBUG(47, *YYCURSOR);
2324
4.72k
    yyaccept = 4;
2325
4.72k
    YYMARKER = ++YYCURSOR;
2326
4.72k
    YYFILL(1);
2327
4.72k
    yych = *YYCURSOR;
2328
5.25k
yy48:
2329
5.25k
    YYDEBUG(48, *YYCURSOR);
2330
5.25k
    if (yybm[256+yych] & 128) {
2331
4.54k
      goto yy47;
2332
4.54k
    }
2333
714
    if (yych == '\\') goto yy164;
2334
712
    goto yy40;
2335
712
yy49:
2336
33
    YYDEBUG(49, *YYCURSOR);
2337
33
    yyaccept = 4;
2338
33
    yych = *(YYMARKER = ++YYCURSOR);
2339
33
    if (yych <= 'S') {
2340
3
      if (yych <= 'L') {
2341
2
        if (yych == 'F') goto yy187;
2342
2
        goto yy48;
2343
2
      } else {
2344
1
        if (yych <= 'M') goto yy189;
2345
0
        if (yych <= 'N') goto yy190;
2346
0
        if (yych <= 'R') goto yy48;
2347
0
        goto yy191;
2348
0
      }
2349
30
    } else {
2350
30
      if (yych <= 'm') {
2351
5
        if (yych == 'f') goto yy187;
2352
1
        if (yych <= 'l') goto yy48;
2353
1
        goto yy189;
2354
25
      } else {
2355
25
        if (yych <= 'n') goto yy190;
2356
10
        if (yych == 's') goto yy191;
2357
10
        goto yy48;
2358
10
      }
2359
30
    }
2360
4
yy50:
2361
4
    YYDEBUG(50, *YYCURSOR);
2362
4
    yyaccept = 4;
2363
4
    yych = *(YYMARKER = ++YYCURSOR);
2364
4
    if (yych == 'I') goto yy192;
2365
4
    if (yych == 'i') goto yy192;
2366
3
    goto yy48;
2367
21
yy51:
2368
21
    YYDEBUG(51, *YYCURSOR);
2369
21
    yyaccept = 4;
2370
21
    yych = *(YYMARKER = ++YYCURSOR);
2371
21
    if (yych == 'A') goto yy193;
2372
21
    if (yych == 'a') goto yy193;
2373
21
    goto yy48;
2374
163
yy52:
2375
163
    YYDEBUG(52, *YYCURSOR);
2376
163
    yyaccept = 4;
2377
163
    yych = *(YYMARKER = ++YYCURSOR);
2378
163
    if (yych <= 'E') {
2379
0
      if (yych == 'A') goto yy194;
2380
0
      if (yych <= 'D') goto yy48;
2381
0
      goto yy195;
2382
163
    } else {
2383
163
      if (yych <= 'a') {
2384
0
        if (yych <= '`') goto yy48;
2385
0
        goto yy194;
2386
163
      } else {
2387
163
        if (yych == 'e') goto yy195;
2388
5
        goto yy48;
2389
163
      }
2390
163
    }
2391
31
yy53:
2392
31
    YYDEBUG(53, *YYCURSOR);
2393
31
    yyaccept = 4;
2394
31
    yych = *(YYMARKER = ++YYCURSOR);
2395
31
    if (yych == 'R') goto yy196;
2396
31
    if (yych == 'r') goto yy196;
2397
25
    goto yy48;
2398
28
yy54:
2399
28
    YYDEBUG(54, *YYCURSOR);
2400
28
    yyaccept = 4;
2401
28
    yych = *(YYMARKER = ++YYCURSOR);
2402
28
    if (yych <= 'U') {
2403
3
      if (yych == 'R') goto yy198;
2404
3
      if (yych <= 'T') goto yy48;
2405
0
      goto yy199;
2406
25
    } else {
2407
25
      if (yych <= 'r') {
2408
9
        if (yych <= 'q') goto yy48;
2409
4
        goto yy198;
2410
16
      } else {
2411
16
        if (yych == 'u') goto yy199;
2412
0
        goto yy48;
2413
16
      }
2414
25
    }
2415
35
yy55:
2416
35
    YYDEBUG(55, *YYCURSOR);
2417
35
    yyaccept = 4;
2418
35
    yych = *(YYMARKER = ++YYCURSOR);
2419
35
    if (yych == 'E') goto yy200;
2420
34
    if (yych == 'e') goto yy200;
2421
4
    goto yy48;
2422
38
yy56:
2423
38
    YYDEBUG(56, *YYCURSOR);
2424
38
    yyaccept = 4;
2425
38
    yych = *(YYMARKER = ++YYCURSOR);
2426
38
    if (yych <= 'W') {
2427
5
      if (yych == 'T') goto yy201;
2428
5
      if (yych <= 'V') goto yy48;
2429
0
      goto yy202;
2430
33
    } else {
2431
33
      if (yych <= 't') {
2432
32
        if (yych <= 's') goto yy48;
2433
28
        goto yy201;
2434
32
      } else {
2435
1
        if (yych == 'w') goto yy202;
2436
1
        goto yy48;
2437
1
      }
2438
33
    }
2439
76
yy57:
2440
76
    YYDEBUG(57, *YYCURSOR);
2441
76
    yyaccept = 4;
2442
76
    yych = *(YYMARKER = ++YYCURSOR);
2443
76
    if (yych <= 'R') {
2444
1
      if (yych == 'H') goto yy203;
2445
1
      if (yych <= 'Q') goto yy48;
2446
0
      goto yy204;
2447
75
    } else {
2448
75
      if (yych <= 'h') {
2449
15
        if (yych <= 'g') goto yy48;
2450
1
        goto yy203;
2451
60
      } else {
2452
60
        if (yych == 'r') goto yy204;
2453
10
        goto yy48;
2454
60
      }
2455
75
    }
2456
5
yy58:
2457
5
    YYDEBUG(58, *YYCURSOR);
2458
5
    yyaccept = 4;
2459
5
    yych = *(YYMARKER = ++YYCURSOR);
2460
5
    if (yych <= 'S') {
2461
4
      if (yych == 'N') goto yy205;
2462
4
      if (yych <= 'R') goto yy48;
2463
1
      goto yy206;
2464
4
    } else {
2465
1
      if (yych <= 'n') {
2466
0
        if (yych <= 'm') goto yy48;
2467
0
        goto yy205;
2468
1
      } else {
2469
1
        if (yych == 's') goto yy206;
2470
0
        goto yy48;
2471
1
      }
2472
1
    }
2473
37
yy59:
2474
37
    YYDEBUG(59, *YYCURSOR);
2475
37
    yyaccept = 4;
2476
37
    yych = *(YYMARKER = ++YYCURSOR);
2477
37
    if (yych == 'A') goto yy207;
2478
37
    if (yych == 'a') goto yy207;
2479
4
    goto yy48;
2480
7
yy60:
2481
7
    YYDEBUG(60, *YYCURSOR);
2482
7
    yyaccept = 4;
2483
7
    yych = *(YYMARKER = ++YYCURSOR);
2484
7
    if (yych == 'H') goto yy208;
2485
7
    if (yych == 'h') goto yy208;
2486
7
    goto yy48;
2487
26
yy61:
2488
26
    YYDEBUG(61, *YYCURSOR);
2489
26
    yyaccept = 4;
2490
26
    yych = *(YYMARKER = ++YYCURSOR);
2491
26
    if (yych == 'O') goto yy209;
2492
26
    if (yych == 'o') goto yy209;
2493
20
    goto yy48;
2494
20
yy62:
2495
12
    YYDEBUG(62, *YYCURSOR);
2496
12
    yyaccept = 4;
2497
12
    yych = *(YYMARKER = ++YYCURSOR);
2498
12
    if (yych == 'I') goto yy210;
2499
12
    if (yych == 'i') goto yy210;
2500
12
    goto yy48;
2501
67
yy63:
2502
67
    YYDEBUG(63, *YYCURSOR);
2503
67
    ++YYCURSOR;
2504
67
    goto yy21;
2505
2
yy64:
2506
2
    YYDEBUG(64, *YYCURSOR);
2507
2
    yych = *++YYCURSOR;
2508
2
    if (yych <= '_') {
2509
0
      if (yych <= '@') goto yy65;
2510
0
      if (yych <= 'Z') goto yy211;
2511
0
      if (yych >= '_') goto yy211;
2512
2
    } else {
2513
2
      if (yych <= '`') goto yy65;
2514
2
      if (yych <= 'z') goto yy211;
2515
1
      if (yych >= 0x80) goto yy211;
2516
1
    }
2517
1
yy65:
2518
1
    YYDEBUG(65, *YYCURSOR);
2519
1
    yyleng = YYCURSOR - SCNG(yy_text);
2520
1
#line 2451 "Zend/zend_language_scanner.l"
2521
1
    {
2522
1
  RETURN_TOKEN(T_NS_SEPARATOR);
2523
1
}
2524
0
#line 2525 "Zend/zend_language_scanner.c"
2525
58
yy66:
2526
58
    YYDEBUG(66, *YYCURSOR);
2527
58
    yych = *++YYCURSOR;
2528
58
    if (yych == '=') goto yy214;
2529
58
    goto yy9;
2530
58
yy67:
2531
46
    YYDEBUG(67, *YYCURSOR);
2532
46
    yyaccept = 4;
2533
46
    yych = *(YYMARKER = ++YYCURSOR);
2534
46
    if (yych == '_') goto yy216;
2535
4
    goto yy48;
2536
7
yy68:
2537
7
    YYDEBUG(68, *YYCURSOR);
2538
7
    ++YYCURSOR;
2539
7
    YYDEBUG(69, *YYCURSOR);
2540
7
    yyleng = YYCURSOR - SCNG(yy_text);
2541
7
#line 2826 "Zend/zend_language_scanner.l"
2542
7
    {
2543
7
  BEGIN(ST_BACKQUOTE);
2544
7
  RETURN_TOKEN('`');
2545
7
}
2546
0
#line 2547 "Zend/zend_language_scanner.c"
2547
223
yy70:
2548
223
    YYDEBUG(70, *YYCURSOR);
2549
223
    ++YYCURSOR;
2550
223
    YYDEBUG(71, *YYCURSOR);
2551
223
    yyleng = YYCURSOR - SCNG(yy_text);
2552
223
#line 1974 "Zend/zend_language_scanner.l"
2553
223
    {
2554
223
  yy_push_state(ST_IN_SCRIPTING);
2555
223
  enter_nesting('{');
2556
223
  RETURN_TOKEN('{');
2557
223
}
2558
0
#line 2559 "Zend/zend_language_scanner.c"
2559
66
yy72:
2560
66
    YYDEBUG(72, *YYCURSOR);
2561
66
    yych = *++YYCURSOR;
2562
66
    if (yych <= '>') {
2563
56
      if (yych <= '<') goto yy9;
2564
0
      if (yych <= '=') goto yy217;
2565
0
      goto yy219;
2566
10
    } else {
2567
10
      if (yych == '|') goto yy221;
2568
5
      goto yy9;
2569
10
    }
2570
243
yy73:
2571
243
    YYDEBUG(73, *YYCURSOR);
2572
243
    ++YYCURSOR;
2573
243
    YYDEBUG(74, *YYCURSOR);
2574
243
    yyleng = YYCURSOR - SCNG(yy_text);
2575
243
#line 1987 "Zend/zend_language_scanner.l"
2576
243
    {
2577
243
  RESET_DOC_COMMENT();
2578
243
  if (!zend_stack_is_empty(&SCNG(state_stack))) {
2579
206
    yy_pop_state();
2580
206
  }
2581
243
  RETURN_EXIT_NESTING_TOKEN('}');
2582
243
}
2583
0
#line 2584 "Zend/zend_language_scanner.c"
2584
33
yy75:
2585
33
    YYDEBUG(75, *YYCURSOR);
2586
33
    yych = *++YYCURSOR;
2587
33
    if (yych == '=') goto yy223;
2588
23
yy76:
2589
23
    YYDEBUG(76, *YYCURSOR);
2590
23
    yyleng = YYCURSOR - SCNG(yy_text);
2591
23
#line 1846 "Zend/zend_language_scanner.l"
2592
23
    {
2593
23
  RETURN_TOKEN(T_IS_NOT_EQUAL);
2594
23
}
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
5.80k
yy79:
2608
5.80k
    YYDEBUG(79, *YYCURSOR);
2609
5.80k
    ++YYCURSOR;
2610
5.80k
    YYFILL(1);
2611
5.80k
    yych = *YYCURSOR;
2612
5.80k
    YYDEBUG(80, *YYCURSOR);
2613
5.80k
    if (yych <= '^') {
2614
1.43k
      if (yych <= '9') {
2615
1.00k
        if (yych >= '0') goto yy79;
2616
1.00k
      } else {
2617
431
        if (yych <= '@') goto yy81;
2618
321
        if (yych <= 'Z') goto yy79;
2619
321
      }
2620
4.37k
    } else {
2621
4.37k
      if (yych <= '`') {
2622
2
        if (yych <= '_') goto yy79;
2623
4.37k
      } else {
2624
4.37k
        if (yych <= 'z') goto yy79;
2625
898
        if (yych >= 0x80) goto yy79;
2626
898
      }
2627
4.37k
    }
2628
1.09k
yy81:
2629
1.09k
    YYDEBUG(81, *YYCURSOR);
2630
1.09k
    yyleng = YYCURSOR - SCNG(yy_text);
2631
1.09k
#line 2417 "Zend/zend_language_scanner.l"
2632
1.09k
    {
2633
1.09k
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
2634
1.09k
}
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
7
yy84:
2647
7
    YYDEBUG(84, *YYCURSOR);
2648
7
    ++YYCURSOR;
2649
7
    YYFILL(3);
2650
7
    yych = *YYCURSOR;
2651
17
yy85:
2652
17
    YYDEBUG(85, *YYCURSOR);
2653
17
    if (yych <= ' ') {
2654
7
      if (yych <= '\f') {
2655
7
        if (yych <= 0x08) goto yy86;
2656
7
        if (yych <= '\n') goto yy84;
2657
7
      } else {
2658
0
        if (yych <= '\r') goto yy84;
2659
0
        if (yych >= ' ') goto yy84;
2660
0
      }
2661
10
    } else {
2662
10
      if (yych <= '$') {
2663
10
        if (yych <= '"') goto yy86;
2664
10
        if (yych <= '#') goto yy87;
2665
10
        goto yy88;
2666
10
      } else {
2667
0
        if (yych <= '-') goto yy86;
2668
0
        if (yych <= '.') goto yy92;
2669
0
        if (yych <= '/') goto yy93;
2670
0
      }
2671
10
    }
2672
29
yy86:
2673
29
    YYDEBUG(86, *YYCURSOR);
2674
29
    YYCURSOR = YYMARKER;
2675
29
    if (yyaccept <= 48) {
2676
29
      if (yyaccept <= 24) {
2677
29
        if (yyaccept <= 12) {
2678
29
          if (yyaccept <= 6) {
2679
19
            if (yyaccept <= 3) {
2680
18
              if (yyaccept <= 1) {
2681
18
                if (yyaccept == 0) {
2682
0
                  goto yy17;
2683
18
                } else {
2684
18
                  goto yy21;
2685
18
                }
2686
18
              } else {
2687
0
                if (yyaccept == 2) {
2688
0
                  goto yy9;
2689
0
                } else {
2690
0
                  goto yy31;
2691
0
                }
2692
0
              }
2693
18
            } else {
2694
1
              if (yyaccept <= 5) {
2695
1
                if (yyaccept == 4) {
2696
1
                  goto yy40;
2697
1
                } else {
2698
0
                  goto yy125;
2699
0
                }
2700
1
              } else {
2701
0
                goto yy129;
2702
0
              }
2703
1
            }
2704
19
          } else {
2705
10
            if (yyaccept <= 9) {
2706
10
              if (yyaccept <= 8) {
2707
10
                if (yyaccept == 7) {
2708
10
                  goto yy142;
2709
10
                } else {
2710
0
                  goto yy163;
2711
0
                }
2712
10
              } else {
2713
0
                goto yy173;
2714
0
              }
2715
10
            } 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
10
          }
2727
29
        } 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
29
      } 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
29
    } else {
2870
0
      if (yyaccept <= 72) {
2871
0
        if (yyaccept <= 60) {
2872
0
          if (yyaccept <= 54) {
2873
0
            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
0
            } else {
2884
0
              if (yyaccept <= 53) {
2885
0
                if (yyaccept == 52) {
2886
0
                  goto yy579;
2887
0
                } else {
2888
0
                  goto yy583;
2889
0
                }
2890
0
              } else {
2891
0
                goto yy597;
2892
0
              }
2893
0
            }
2894
0
          } 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
0
        } 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
0
      } 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
0
    }
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
10
yy88:
3075
10
    YYDEBUG(88, *YYCURSOR);
3076
10
    ++YYCURSOR;
3077
10
yy89:
3078
10
    YYDEBUG(89, *YYCURSOR);
3079
10
    yyleng = YYCURSOR - SCNG(yy_text);
3080
10
#line 1950 "Zend/zend_language_scanner.l"
3081
10
    {
3082
10
  yyless(1);
3083
10
  RETURN_TOKEN(T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG);
3084
10
}
3085
0
#line 3086 "Zend/zend_language_scanner.c"
3086
16
yy90:
3087
16
    YYDEBUG(90, *YYCURSOR);
3088
16
    ++YYCURSOR;
3089
16
    YYDEBUG(91, *YYCURSOR);
3090
16
    yyleng = YYCURSOR - SCNG(yy_text);
3091
16
#line 1926 "Zend/zend_language_scanner.l"
3092
16
    {
3093
16
  RETURN_TOKEN(T_BOOLEAN_AND);
3094
16
}
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
8
yy94:
3110
8
    YYDEBUG(94, *YYCURSOR);
3111
8
    ++YYCURSOR;
3112
8
    YYDEBUG(95, *YYCURSOR);
3113
8
    yyleng = YYCURSOR - SCNG(yy_text);
3114
8
#line 1902 "Zend/zend_language_scanner.l"
3115
8
    {
3116
8
  RETURN_TOKEN(T_AND_EQUAL);
3117
8
}
3118
0
#line 3119 "Zend/zend_language_scanner.c"
3119
5
yy96:
3120
5
    YYDEBUG(96, *YYCURSOR);
3121
5
    ++YYCURSOR;
3122
5
    YYFILL(7);
3123
5
    yych = *YYCURSOR;
3124
23
yy97:
3125
23
    YYDEBUG(97, *YYCURSOR);
3126
23
    if (yybm[0+yych] & 1) {
3127
5
      goto yy96;
3128
5
    }
3129
18
    switch (yych) {
3130
0
    case 'A':
3131
0
    case 'a': goto yy98;
3132
0
    case 'B':
3133
0
    case 'b': goto yy99;
3134
0
    case 'D':
3135
0
    case 'd': goto yy100;
3136
1
    case 'F':
3137
2
    case 'f': goto yy101;
3138
1
    case 'I':
3139
1
    case 'i': goto yy102;
3140
0
    case 'O':
3141
0
    case 'o': goto yy103;
3142
0
    case 'R':
3143
0
    case 'r': goto yy104;
3144
1
    case 'S':
3145
13
    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
2
    default:  goto yy86;
3151
18
    }
3152
0
yy98:
3153
0
    YYDEBUG(98, *YYCURSOR);
3154
0
    yych = *++YYCURSOR;
3155
0
    if (yych == 'R') goto yy232;
3156
0
    if (yych == 'r') goto yy232;
3157
0
    goto yy86;
3158
0
yy99:
3159
0
    YYDEBUG(99, *YYCURSOR);
3160
0
    yych = *++YYCURSOR;
3161
0
    if (yych <= 'O') {
3162
0
      if (yych == 'I') goto yy233;
3163
0
      if (yych <= 'N') goto yy86;
3164
0
      goto yy234;
3165
0
    } else {
3166
0
      if (yych <= 'i') {
3167
0
        if (yych <= 'h') goto yy86;
3168
0
        goto yy233;
3169
0
      } else {
3170
0
        if (yych == 'o') goto yy234;
3171
0
        goto yy86;
3172
0
      }
3173
0
    }
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
2
yy101:
3181
2
    YYDEBUG(101, *YYCURSOR);
3182
2
    yych = *++YYCURSOR;
3183
2
    if (yych == 'L') goto yy236;
3184
2
    if (yych == 'l') goto yy236;
3185
2
    goto yy86;
3186
2
yy102:
3187
1
    YYDEBUG(102, *YYCURSOR);
3188
1
    yych = *++YYCURSOR;
3189
1
    if (yych == 'N') goto yy237;
3190
1
    if (yych == 'n') goto yy237;
3191
0
    goto yy86;
3192
0
yy103:
3193
0
    YYDEBUG(103, *YYCURSOR);
3194
0
    yych = *++YYCURSOR;
3195
0
    if (yych == 'B') goto yy238;
3196
0
    if (yych == 'b') goto yy238;
3197
0
    goto yy86;
3198
0
yy104:
3199
0
    YYDEBUG(104, *YYCURSOR);
3200
0
    yych = *++YYCURSOR;
3201
0
    if (yych == 'E') goto yy239;
3202
0
    if (yych == 'e') goto yy239;
3203
0
    goto yy86;
3204
13
yy105:
3205
13
    YYDEBUG(105, *YYCURSOR);
3206
13
    yych = *++YYCURSOR;
3207
13
    if (yych == 'T') goto yy240;
3208
13
    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
0
yy108:
3223
0
    YYDEBUG(108, *YYCURSOR);
3224
0
    yych = *++YYCURSOR;
3225
0
    if (yych == '=') goto yy243;
3226
0
    YYDEBUG(109, *YYCURSOR);
3227
0
    yyleng = YYCURSOR - SCNG(yy_text);
3228
0
#line 1874 "Zend/zend_language_scanner.l"
3229
0
    {
3230
0
  RETURN_TOKEN(T_POW);
3231
0
}
3232
0
#line 3233 "Zend/zend_language_scanner.c"
3233
0
yy110:
3234
0
    YYDEBUG(110, *YYCURSOR);
3235
0
    ++YYCURSOR;
3236
0
    YYDEBUG(111, *YYCURSOR);
3237
0
    yyleng = YYCURSOR - SCNG(yy_text);
3238
0
#line 1870 "Zend/zend_language_scanner.l"
3239
0
    {
3240
0
  RETURN_TOKEN(T_MUL_EQUAL);
3241
0
}
3242
0
#line 3243 "Zend/zend_language_scanner.c"
3243
53
yy112:
3244
53
    YYDEBUG(112, *YYCURSOR);
3245
53
    ++YYCURSOR;
3246
53
    YYDEBUG(113, *YYCURSOR);
3247
53
    yyleng = YYCURSOR - SCNG(yy_text);
3248
53
#line 1826 "Zend/zend_language_scanner.l"
3249
53
    {
3250
53
  RETURN_TOKEN(T_INC);
3251
53
}
3252
0
#line 3253 "Zend/zend_language_scanner.c"
3253
25
yy114:
3254
25
    YYDEBUG(114, *YYCURSOR);
3255
25
    ++YYCURSOR;
3256
25
    YYDEBUG(115, *YYCURSOR);
3257
25
    yyleng = YYCURSOR - SCNG(yy_text);
3258
25
#line 1862 "Zend/zend_language_scanner.l"
3259
25
    {
3260
25
  RETURN_TOKEN(T_PLUS_EQUAL);
3261
25
}
3262
0
#line 3263 "Zend/zend_language_scanner.c"
3263
3
yy116:
3264
3
    YYDEBUG(116, *YYCURSOR);
3265
3
    ++YYCURSOR;
3266
3
    YYDEBUG(117, *YYCURSOR);
3267
3
    yyleng = YYCURSOR - SCNG(yy_text);
3268
3
#line 1830 "Zend/zend_language_scanner.l"
3269
3
    {
3270
3
  RETURN_TOKEN(T_DEC);
3271
3
}
3272
0
#line 3273 "Zend/zend_language_scanner.c"
3273
0
yy118:
3274
0
    YYDEBUG(118, *YYCURSOR);
3275
0
    ++YYCURSOR;
3276
0
    YYDEBUG(119, *YYCURSOR);
3277
0
    yyleng = YYCURSOR - SCNG(yy_text);
3278
0
#line 1866 "Zend/zend_language_scanner.l"
3279
0
    {
3280
0
  RETURN_TOKEN(T_MINUS_EQUAL);
3281
0
}
3282
0
#line 3283 "Zend/zend_language_scanner.c"
3283
66
yy120:
3284
66
    YYDEBUG(120, *YYCURSOR);
3285
66
    ++YYCURSOR;
3286
66
    YYDEBUG(121, *YYCURSOR);
3287
66
    yyleng = YYCURSOR - SCNG(yy_text);
3288
66
#line 1587 "Zend/zend_language_scanner.l"
3289
66
    {
3290
66
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
3291
66
  RETURN_TOKEN(T_OBJECT_OPERATOR);
3292
66
}
3293
0
#line 3294 "Zend/zend_language_scanner.c"
3294
0
yy122:
3295
0
    YYDEBUG(122, *YYCURSOR);
3296
0
    yych = *++YYCURSOR;
3297
0
    if (yych == '.') goto yy245;
3298
0
    goto yy86;
3299
30
yy123:
3300
30
    YYDEBUG(123, *YYCURSOR);
3301
30
    yyaccept = 5;
3302
30
    YYMARKER = ++YYCURSOR;
3303
30
    YYFILL(2);
3304
30
    yych = *YYCURSOR;
3305
34
yy124:
3306
34
    YYDEBUG(124, *YYCURSOR);
3307
34
    if (yych <= 'E') {
3308
34
      if (yych <= '/') goto yy125;
3309
30
      if (yych <= '9') goto yy123;
3310
11
      if (yych >= 'E') goto yy135;
3311
11
    } 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
15
yy125:
3319
15
    YYDEBUG(125, *YYCURSOR);
3320
15
    yyleng = YYCURSOR - SCNG(yy_text);
3321
15
#line 2233 "Zend/zend_language_scanner.l"
3322
15
    {
3323
15
  const char *end;
3324
15
  size_t len = yyleng;
3325
15
  char *dnum = yytext;
3326
15
  bool contains_underscores = (memchr(dnum, '_', len) != NULL);
3327
3328
15
  if (contains_underscores) {
3329
0
    dnum = estrndup(dnum, len);
3330
0
    strip_underscores(dnum, &len);
3331
0
  }
3332
3333
15
  ZVAL_DOUBLE(zendlval, zend_strtod(dnum, &end));
3334
  /* errno isn't checked since we allow HUGE_VAL/INF overflow */
3335
15
  ZEND_ASSERT(end == dnum + len);
3336
15
  if (contains_underscores) {
3337
0
    efree(dnum);
3338
0
  }
3339
15
  RETURN_TOKEN_WITH_VAL(T_DNUMBER);
3340
15
}
3341
0
#line 3342 "Zend/zend_language_scanner.c"
3342
52
yy126:
3343
52
    YYDEBUG(126, *YYCURSOR);
3344
52
    ++YYCURSOR;
3345
52
    YYDEBUG(127, *YYCURSOR);
3346
52
    yyleng = YYCURSOR - SCNG(yy_text);
3347
52
#line 1886 "Zend/zend_language_scanner.l"
3348
52
    {
3349
52
  RETURN_TOKEN(T_CONCAT_EQUAL);
3350
52
}
3351
0
#line 3352 "Zend/zend_language_scanner.c"
3352
0
yy128:
3353
0
    YYDEBUG(128, *YYCURSOR);
3354
0
    yyaccept = 6;
3355
0
    yych = *(YYMARKER = ++YYCURSOR);
3356
0
    if (yych == '*') goto yy248;
3357
0
yy129:
3358
0
    YYDEBUG(129, *YYCURSOR);
3359
0
    yyleng = YYCURSOR - SCNG(yy_text);
3360
0
#line 2484 "Zend/zend_language_scanner.l"
3361
0
    {
3362
0
  int doc_com;
3363
3364
0
  if (yyleng > 2) {
3365
0
    doc_com = 1;
3366
0
    RESET_DOC_COMMENT();
3367
0
  } else {
3368
0
    doc_com = 0;
3369
0
  }
3370
3371
0
  while (YYCURSOR < YYLIMIT) {
3372
0
    if (*YYCURSOR++ == '*' && *YYCURSOR == '/') {
3373
0
      break;
3374
0
    }
3375
0
  }
3376
3377
0
  if (YYCURSOR < YYLIMIT) {
3378
0
    YYCURSOR++;
3379
0
  } 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
0
  yyleng = YYCURSOR - SCNG(yy_text);
3387
0
  HANDLE_NEWLINES(yytext, yyleng);
3388
3389
0
  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
0
  RETURN_OR_SKIP_TOKEN(T_COMMENT);
3395
0
}
3396
0
#line 3397 "Zend/zend_language_scanner.c"
3397
246
yy130:
3398
246
    YYDEBUG(130, *YYCURSOR);
3399
246
    ++YYCURSOR;
3400
246
    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
4
yy133:
3412
4
    YYDEBUG(133, *YYCURSOR);
3413
4
    yyaccept = 5;
3414
4
    yych = *(YYMARKER = ++YYCURSOR);
3415
4
    if (yych == '_') goto yy125;
3416
4
    goto yy124;
3417
4
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
0
yy137:
3448
0
    YYDEBUG(137, *YYCURSOR);
3449
0
    ++YYCURSOR;
3450
0
    YYFILL(1);
3451
0
    yych = *YYCURSOR;
3452
0
    if (yybm[0+yych] & 32) {
3453
0
      goto yy258;
3454
0
    }
3455
0
    goto yy86;
3456
0
yy138:
3457
0
    YYDEBUG(138, *YYCURSOR);
3458
0
    ++YYCURSOR;
3459
0
    YYFILL(1);
3460
0
    yych = *YYCURSOR;
3461
0
    if (yybm[256+yych] & 64) {
3462
0
      goto yy32;
3463
0
    }
3464
0
    goto yy86;
3465
6
yy139:
3466
6
    YYDEBUG(139, *YYCURSOR);
3467
6
    ++YYCURSOR;
3468
6
    YYDEBUG(140, *YYCURSOR);
3469
6
    yyleng = YYCURSOR - SCNG(yy_text);
3470
6
#line 1614 "Zend/zend_language_scanner.l"
3471
6
    {
3472
6
  RETURN_TOKEN(T_PAAMAYIM_NEKUDOTAYIM);
3473
6
}
3474
0
#line 3475 "Zend/zend_language_scanner.c"
3475
35
yy141:
3476
35
    YYDEBUG(141, *YYCURSOR);
3477
35
    yyaccept = 7;
3478
35
    yych = *(YYMARKER = ++YYCURSOR);
3479
35
    if (yych <= ';') goto yy142;
3480
31
    if (yych <= '<') goto yy261;
3481
0
    if (yych <= '=') goto yy263;
3482
14
yy142:
3483
14
    YYDEBUG(142, *YYCURSOR);
3484
14
    yyleng = YYCURSOR - SCNG(yy_text);
3485
14
#line 1942 "Zend/zend_language_scanner.l"
3486
14
    {
3487
14
  RETURN_TOKEN(T_SL);
3488
14
}
3489
0
#line 3490 "Zend/zend_language_scanner.c"
3490
65
yy143:
3491
65
    YYDEBUG(143, *YYCURSOR);
3492
65
    yych = *++YYCURSOR;
3493
65
    if (yych == '>') goto yy265;
3494
65
    YYDEBUG(144, *YYCURSOR);
3495
65
    yyleng = YYCURSOR - SCNG(yy_text);
3496
65
#line 1854 "Zend/zend_language_scanner.l"
3497
65
    {
3498
65
  RETURN_TOKEN(T_IS_SMALLER_OR_EQUAL);
3499
65
}
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
17
yy146:
3506
17
    YYDEBUG(146, *YYCURSOR);
3507
17
    yych = *++YYCURSOR;
3508
17
    if (yych == '=') goto yy267;
3509
9
    YYDEBUG(147, *YYCURSOR);
3510
9
    yyleng = YYCURSOR - SCNG(yy_text);
3511
9
#line 1842 "Zend/zend_language_scanner.l"
3512
9
    {
3513
9
  RETURN_TOKEN(T_IS_EQUAL);
3514
9
}
3515
0
#line 3516 "Zend/zend_language_scanner.c"
3516
6
yy148:
3517
6
    YYDEBUG(148, *YYCURSOR);
3518
6
    ++YYCURSOR;
3519
6
    YYDEBUG(149, *YYCURSOR);
3520
6
    yyleng = YYCURSOR - SCNG(yy_text);
3521
6
#line 1810 "Zend/zend_language_scanner.l"
3522
6
    {
3523
6
  RETURN_TOKEN(T_DOUBLE_ARROW);
3524
6
}
3525
0
#line 3526 "Zend/zend_language_scanner.c"
3526
0
yy150:
3527
0
    YYDEBUG(150, *YYCURSOR);
3528
0
    ++YYCURSOR;
3529
0
    YYDEBUG(151, *YYCURSOR);
3530
0
    yyleng = YYCURSOR - SCNG(yy_text);
3531
0
#line 1858 "Zend/zend_language_scanner.l"
3532
0
    {
3533
0
  RETURN_TOKEN(T_IS_GREATER_OR_EQUAL);
3534
0
}
3535
0
#line 3536 "Zend/zend_language_scanner.c"
3536
2
yy152:
3537
2
    YYDEBUG(152, *YYCURSOR);
3538
2
    yych = *++YYCURSOR;
3539
2
    if (yych == '=') goto yy269;
3540
2
    YYDEBUG(153, *YYCURSOR);
3541
2
    yyleng = YYCURSOR - SCNG(yy_text);
3542
2
#line 1946 "Zend/zend_language_scanner.l"
3543
2
    {
3544
2
  RETURN_TOKEN(T_SR);
3545
2
}
3546
0
#line 3547 "Zend/zend_language_scanner.c"
3547
0
yy154:
3548
0
    YYDEBUG(154, *YYCURSOR);
3549
0
    yych = *++YYCURSOR;
3550
0
    if (yych == '>') goto yy271;
3551
0
    goto yy86;
3552
79
yy155:
3553
79
    YYDEBUG(155, *YYCURSOR);
3554
79
    yych = *++YYCURSOR;
3555
79
    if (yych == '\n') goto yy273;
3556
79
    if (yych == '\r') goto yy274;
3557
79
yy156:
3558
79
    YYDEBUG(156, *YYCURSOR);
3559
79
    yyleng = YYCURSOR - SCNG(yy_text);
3560
79
#line 2526 "Zend/zend_language_scanner.l"
3561
79
    {
3562
79
  BEGIN(INITIAL);
3563
79
  if (yytext[yyleng-1] != '>') {
3564
0
    CG(increment_lineno) = 1;
3565
0
  }
3566
79
  if (PARSER_MODE()) {
3567
76
    RETURN_TOKEN(';');  /* implicit ';' at php-end tag */
3568
76
  }
3569
3
  RETURN_TOKEN(T_CLOSE_TAG);
3570
3
}
3571
0
#line 3572 "Zend/zend_language_scanner.c"
3572
38
yy157:
3573
38
    YYDEBUG(157, *YYCURSOR);
3574
38
    yych = *++YYCURSOR;
3575
38
    if (yych == '=') goto yy275;
3576
38
    YYDEBUG(158, *YYCURSOR);
3577
38
    yyleng = YYCURSOR - SCNG(yy_text);
3578
38
#line 1622 "Zend/zend_language_scanner.l"
3579
38
    {
3580
38
  RETURN_TOKEN(T_COALESCE);
3581
38
}
3582
0
#line 3583 "Zend/zend_language_scanner.c"
3583
0
yy159:
3584
0
    YYDEBUG(159, *YYCURSOR);
3585
0
    yyaccept = 4;
3586
0
    yych = *(YYMARKER = ++YYCURSOR);
3587
0
    if (yych == 'S') goto yy277;
3588
0
    if (yych == 's') goto yy277;
3589
0
    goto yy48;
3590
2
yy160:
3591
2
    YYDEBUG(160, *YYCURSOR);
3592
2
    yyaccept = 4;
3593
2
    yych = *(YYMARKER = ++YYCURSOR);
3594
2
    if (yych == 'D') goto yy278;
3595
2
    if (yych == 'd') goto yy278;
3596
0
    goto yy48;
3597
7
yy161:
3598
7
    YYDEBUG(161, *YYCURSOR);
3599
7
    yyaccept = 4;
3600
7
    yych = *(YYMARKER = ++YYCURSOR);
3601
7
    if (yych == 'R') goto yy280;
3602
7
    if (yych == 'r') goto yy280;
3603
0
    goto yy48;
3604
13
yy162:
3605
13
    YYDEBUG(162, *YYCURSOR);
3606
13
    yyaccept = 8;
3607
13
    yych = *(YYMARKER = ++YYCURSOR);
3608
13
    if (yybm[256+yych] & 128) {
3609
1
      goto yy47;
3610
1
    }
3611
12
    if (yych == '\\') goto yy164;
3612
12
yy163:
3613
12
    YYDEBUG(163, *YYCURSOR);
3614
12
    yyleng = YYCURSOR - SCNG(yy_text);
3615
12
#line 1510 "Zend/zend_language_scanner.l"
3616
12
    {
3617
12
  RETURN_TOKEN_WITH_IDENT(T_AS);
3618
12
}
3619
0
#line 3620 "Zend/zend_language_scanner.c"
3620
2
yy164:
3621
2
    YYDEBUG(164, *YYCURSOR);
3622
2
    ++YYCURSOR;
3623
2
    YYFILL(1);
3624
2
    yych = *YYCURSOR;
3625
2
    if (yych <= '_') {
3626
0
      if (yych <= '@') goto yy86;
3627
0
      if (yych <= 'Z') goto yy281;
3628
0
      if (yych <= '^') goto yy86;
3629
0
      goto yy281;
3630
2
    } else {
3631
2
      if (yych <= '`') goto yy86;
3632
2
      if (yych <= 'z') goto yy281;
3633
2
      if (yych <= 0x7F) goto yy86;
3634
1
      goto yy281;
3635
2
    }
3636
0
yy165:
3637
0
    YYDEBUG(165, *YYCURSOR);
3638
0
    yych = *++YYCURSOR;
3639
0
    if (yych == '<') goto yy284;
3640
0
    goto yy86;
3641
0
yy166:
3642
0
    YYDEBUG(166, *YYCURSOR);
3643
0
    yyaccept = 4;
3644
0
    yych = *(YYMARKER = ++YYCURSOR);
3645
0
    if (yych == 'E') goto yy285;
3646
0
    if (yych == 'e') goto yy285;
3647
0
    goto yy48;
3648
92
yy167:
3649
92
    YYDEBUG(167, *YYCURSOR);
3650
92
    yyaccept = 4;
3651
92
    yych = *(YYMARKER = ++YYCURSOR);
3652
92
    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
92
    } else {
3662
92
      if (yych <= 'r') {
3663
11
        if (yych == 'l') goto yy286;
3664
0
        goto yy48;
3665
81
      } else {
3666
81
        if (yych <= 's') goto yy287;
3667
77
        if (yych <= 't') goto yy288;
3668
0
        goto yy48;
3669
77
      }
3670
92
    }
3671
17
yy168:
3672
17
    YYDEBUG(168, *YYCURSOR);
3673
17
    yyaccept = 4;
3674
17
    yych = *(YYMARKER = ++YYCURSOR);
3675
17
    if (yych <= 'O') {
3676
0
      if (yych == 'A') goto yy289;
3677
0
      if (yych <= 'N') goto yy48;
3678
0
      goto yy290;
3679
17
    } else {
3680
17
      if (yych <= 'a') {
3681
17
        if (yych <= '`') goto yy48;
3682
17
        goto yy289;
3683
17
      } else {
3684
0
        if (yych == 'o') goto yy290;
3685
0
        goto yy48;
3686
0
      }
3687
17
    }
3688
44
yy169:
3689
44
    YYDEBUG(169, *YYCURSOR);
3690
44
    yyaccept = 4;
3691
44
    yych = *(YYMARKER = ++YYCURSOR);
3692
44
    if (yych == 'N') goto yy291;
3693
44
    if (yych == 'n') goto yy291;
3694
0
    goto yy48;
3695
0
yy170:
3696
0
    YYDEBUG(170, *YYCURSOR);
3697
0
    yyaccept = 4;
3698
0
    yych = *(YYMARKER = ++YYCURSOR);
3699
0
    if (yych <= 'F') {
3700
0
      if (yych == 'C') goto yy292;
3701
0
      if (yych <= 'E') goto yy48;
3702
0
      goto yy293;
3703
0
    } else {
3704
0
      if (yych <= 'c') {
3705
0
        if (yych <= 'b') goto yy48;
3706
0
        goto yy292;
3707
0
      } else {
3708
0
        if (yych == 'f') goto yy293;
3709
0
        goto yy48;
3710
0
      }
3711
0
    }
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
11
yy172:
3720
11
    YYDEBUG(172, *YYCURSOR);
3721
11
    yyaccept = 9;
3722
11
    yych = *(YYMARKER = ++YYCURSOR);
3723
11
    if (yybm[256+yych] & 128) {
3724
9
      goto yy47;
3725
9
    }
3726
2
    if (yych == '\\') goto yy164;
3727
2
yy173:
3728
2
    YYDEBUG(173, *YYCURSOR);
3729
2
    yyleng = YYCURSOR - SCNG(yy_text);
3730
2
#line 1478 "Zend/zend_language_scanner.l"
3731
2
    {
3732
2
  RETURN_TOKEN_WITH_IDENT(T_DO);
3733
2
}
3734
0
#line 3735 "Zend/zend_language_scanner.c"
3735
26
yy174:
3736
26
    YYDEBUG(174, *YYCURSOR);
3737
26
    yyaccept = 4;
3738
26
    yych = *(YYMARKER = ++YYCURSOR);
3739
26
    if (yych == 'H') goto yy296;
3740
26
    if (yych == 'h') goto yy296;
3741
0
    goto yy48;
3742
0
yy175:
3743
0
    YYDEBUG(175, *YYCURSOR);
3744
0
    yyaccept = 4;
3745
0
    yych = *(YYMARKER = ++YYCURSOR);
3746
0
    if (yych == 'S') goto yy297;
3747
0
    if (yych == 's') goto yy297;
3748
0
    goto yy48;
3749
1
yy176:
3750
1
    YYDEBUG(176, *YYCURSOR);
3751
1
    yyaccept = 4;
3752
1
    yych = *(YYMARKER = ++YYCURSOR);
3753
1
    if (yych == 'P') goto yy298;
3754
1
    if (yych == 'p') goto yy298;
3755
1
    goto yy48;
3756
4
yy177:
3757
4
    YYDEBUG(177, *YYCURSOR);
3758
4
    yyaccept = 4;
3759
4
    yych = *(YYMARKER = ++YYCURSOR);
3760
4
    if (yych <= 'U') {
3761
0
      if (yych == 'D') goto yy299;
3762
0
      if (yych <= 'T') goto yy48;
3763
0
      goto yy300;
3764
4
    } else {
3765
4
      if (yych <= 'd') {
3766
0
        if (yych <= 'c') goto yy48;
3767
0
        goto yy299;
3768
4
      } else {
3769
4
        if (yych == 'u') goto yy300;
3770
0
        goto yy48;
3771
4
      }
3772
4
    }
3773
6
yy178:
3774
6
    YYDEBUG(178, *YYCURSOR);
3775
6
    yyaccept = 4;
3776
6
    yych = *(YYMARKER = ++YYCURSOR);
3777
6
    if (yych == 'A') goto yy301;
3778
6
    if (yych == 'a') goto yy301;
3779
0
    goto yy48;
3780
66
yy179:
3781
66
    YYDEBUG(179, *YYCURSOR);
3782
66
    yyaccept = 4;
3783
66
    yych = *(YYMARKER = ++YYCURSOR);
3784
66
    if (yych <= 'T') {
3785
0
      if (yych == 'I') goto yy302;
3786
0
      if (yych <= 'S') goto yy48;
3787
0
      goto yy303;
3788
66
    } else {
3789
66
      if (yych <= 'i') {
3790
62
        if (yych <= 'h') goto yy48;
3791
0
        goto yy302;
3792
62
      } else {
3793
4
        if (yych == 't') goto yy303;
3794
4
        goto yy48;
3795
4
      }
3796
66
    }
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
1
yy181:
3805
1
    YYDEBUG(181, *YYCURSOR);
3806
1
    yyaccept = 10;
3807
1
    yych = *(YYMARKER = ++YYCURSOR);
3808
1
    if (yybm[256+yych] & 128) {
3809
0
      goto yy47;
3810
0
    }
3811
1
    if (yych == '\\') goto yy164;
3812
1
yy182:
3813
1
    YYDEBUG(182, *YYCURSOR);
3814
1
    yyleng = YYCURSOR - SCNG(yy_text);
3815
1
#line 1407 "Zend/zend_language_scanner.l"
3816
1
    {
3817
1
  RETURN_TOKEN_WITH_IDENT(T_FN);
3818
1
}
3819
0
#line 3820 "Zend/zend_language_scanner.c"
3820
98
yy183:
3821
98
    YYDEBUG(183, *YYCURSOR);
3822
98
    yyaccept = 4;
3823
98
    yych = *(YYMARKER = ++YYCURSOR);
3824
98
    if (yych == 'R') goto yy305;
3825
98
    if (yych == 'r') goto yy305;
3826
14
    goto yy48;
3827
21
yy184:
3828
21
    YYDEBUG(184, *YYCURSOR);
3829
21
    yyaccept = 4;
3830
21
    yych = *(YYMARKER = ++YYCURSOR);
3831
21
    if (yych == 'N') goto yy307;
3832
21
    if (yych == 'n') goto yy307;
3833
1
    goto yy48;
3834
1
yy185:
3835
0
    YYDEBUG(185, *YYCURSOR);
3836
0
    yyaccept = 4;
3837
0
    yych = *(YYMARKER = ++YYCURSOR);
3838
0
    if (yych == 'O') goto yy308;
3839
0
    if (yych == 'o') goto yy308;
3840
0
    goto yy48;
3841
0
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
4
yy187:
3849
4
    YYDEBUG(187, *YYCURSOR);
3850
4
    yyaccept = 11;
3851
4
    yych = *(YYMARKER = ++YYCURSOR);
3852
4
    if (yybm[256+yych] & 128) {
3853
0
      goto yy47;
3854
0
    }
3855
4
    if (yych == '\\') goto yy164;
3856
4
yy188:
3857
4
    YYDEBUG(188, *YYCURSOR);
3858
4
    yyleng = YYCURSOR - SCNG(yy_text);
3859
4
#line 1454 "Zend/zend_language_scanner.l"
3860
4
    {
3861
4
  RETURN_TOKEN_WITH_IDENT(T_IF);
3862
4
}
3863
0
#line 3864 "Zend/zend_language_scanner.c"
3864
2
yy189:
3865
2
    YYDEBUG(189, *YYCURSOR);
3866
2
    yyaccept = 4;
3867
2
    yych = *(YYMARKER = ++YYCURSOR);
3868
2
    if (yych == 'P') goto yy310;
3869
2
    if (yych == 'p') goto yy310;
3870
1
    goto yy48;
3871
15
yy190:
3872
15
    YYDEBUG(190, *YYCURSOR);
3873
15
    yyaccept = 4;
3874
15
    yych = *(YYMARKER = ++YYCURSOR);
3875
15
    if (yych <= 'T') {
3876
0
      if (yych <= 'C') {
3877
0
        if (yych <= 'B') goto yy48;
3878
0
        goto yy311;
3879
0
      } else {
3880
0
        if (yych <= 'R') goto yy48;
3881
0
        if (yych <= 'S') goto yy312;
3882
0
        goto yy313;
3883
0
      }
3884
15
    } else {
3885
15
      if (yych <= 'r') {
3886
11
        if (yych == 'c') goto yy311;
3887
11
        goto yy48;
3888
11
      } else {
3889
4
        if (yych <= 's') goto yy312;
3890
4
        if (yych <= 't') goto yy313;
3891
0
        goto yy48;
3892
4
      }
3893
15
    }
3894
0
yy191:
3895
0
    YYDEBUG(191, *YYCURSOR);
3896
0
    yyaccept = 4;
3897
0
    yych = *(YYMARKER = ++YYCURSOR);
3898
0
    if (yych == 'S') goto yy314;
3899
0
    if (yych == 's') goto yy314;
3900
0
    goto yy48;
3901
1
yy192:
3902
1
    YYDEBUG(192, *YYCURSOR);
3903
1
    yyaccept = 4;
3904
1
    yych = *(YYMARKER = ++YYCURSOR);
3905
1
    if (yych == 'S') goto yy315;
3906
1
    if (yych == 's') goto yy315;
3907
0
    goto yy48;
3908
0
yy193:
3909
0
    YYDEBUG(193, *YYCURSOR);
3910
0
    yyaccept = 4;
3911
0
    yych = *(YYMARKER = ++YYCURSOR);
3912
0
    if (yych == 'T') goto yy316;
3913
0
    if (yych == 't') goto yy316;
3914
0
    goto yy48;
3915
0
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
158
yy195:
3923
158
    YYDEBUG(195, *YYCURSOR);
3924
158
    yyaccept = 4;
3925
158
    yych = *(YYMARKER = ++YYCURSOR);
3926
158
    if (yych == 'W') goto yy318;
3927
158
    if (yych == 'w') goto yy318;
3928
0
    goto yy48;
3929
6
yy196:
3930
6
    YYDEBUG(196, *YYCURSOR);
3931
6
    yyaccept = 12;
3932
6
    yych = *(YYMARKER = ++YYCURSOR);
3933
6
    if (yybm[256+yych] & 128) {
3934
0
      goto yy47;
3935
0
    }
3936
6
    if (yych == '\\') goto yy164;
3937
6
yy197:
3938
6
    YYDEBUG(197, *YYCURSOR);
3939
6
    yyleng = YYCURSOR - SCNG(yy_text);
3940
6
#line 1930 "Zend/zend_language_scanner.l"
3941
6
    {
3942
6
  RETURN_TOKEN_WITH_IDENT(T_LOGICAL_OR);
3943
6
}
3944
0
#line 3945 "Zend/zend_language_scanner.c"
3945
4
yy198:
3946
4
    YYDEBUG(198, *YYCURSOR);
3947
4
    yyaccept = 4;
3948
4
    yych = *(YYMARKER = ++YYCURSOR);
3949
4
    if (yych <= 'O') {
3950
1
      if (yych == 'I') goto yy320;
3951
1
      if (yych <= 'N') goto yy48;
3952
0
      goto yy321;
3953
3
    } else {
3954
3
      if (yych <= 'i') {
3955
3
        if (yych <= 'h') goto yy48;
3956
3
        goto yy320;
3957
3
      } else {
3958
0
        if (yych == 'o') goto yy321;
3959
0
        goto yy48;
3960
0
      }
3961
3
    }
3962
16
yy199:
3963
16
    YYDEBUG(199, *YYCURSOR);
3964
16
    yyaccept = 4;
3965
16
    yych = *(YYMARKER = ++YYCURSOR);
3966
16
    if (yych == 'B') goto yy322;
3967
16
    if (yych == 'b') goto yy322;
3968
0
    goto yy48;
3969
31
yy200:
3970
31
    YYDEBUG(200, *YYCURSOR);
3971
31
    yyaccept = 4;
3972
31
    yych = *(YYMARKER = ++YYCURSOR);
3973
31
    if (yych <= 'T') {
3974
1
      if (yych <= 'P') {
3975
1
        if (yych == 'A') goto yy323;
3976
0
        goto yy48;
3977
1
      } else {
3978
0
        if (yych <= 'Q') goto yy324;
3979
0
        if (yych <= 'S') goto yy48;
3980
0
        goto yy325;
3981
0
      }
3982
30
    } else {
3983
30
      if (yych <= 'p') {
3984
0
        if (yych == 'a') goto yy323;
3985
0
        goto yy48;
3986
30
      } else {
3987
30
        if (yych <= 'q') goto yy324;
3988
4
        if (yych == 't') goto yy325;
3989
0
        goto yy48;
3990
4
      }
3991
30
    }
3992
28
yy201:
3993
28
    YYDEBUG(201, *YYCURSOR);
3994
28
    yyaccept = 4;
3995
28
    yych = *(YYMARKER = ++YYCURSOR);
3996
28
    if (yych == 'A') goto yy326;
3997
28
    if (yych == 'a') goto yy326;
3998
28
    goto yy48;
3999
28
yy202:
4000
0
    YYDEBUG(202, *YYCURSOR);
4001
0
    yyaccept = 4;
4002
0
    yych = *(YYMARKER = ++YYCURSOR);
4003
0
    if (yych == 'I') goto yy327;
4004
0
    if (yych == 'i') goto yy327;
4005
0
    goto yy48;
4006
1
yy203:
4007
1
    YYDEBUG(203, *YYCURSOR);
4008
1
    yyaccept = 4;
4009
1
    yych = *(YYMARKER = ++YYCURSOR);
4010
1
    if (yych == 'R') goto yy328;
4011
1
    if (yych == 'r') goto yy328;
4012
1
    goto yy48;
4013
50
yy204:
4014
50
    YYDEBUG(204, *YYCURSOR);
4015
50
    yyaccept = 4;
4016
50
    yych = *(YYMARKER = ++YYCURSOR);
4017
50
    if (yych <= 'Y') {
4018
0
      if (yych == 'A') goto yy329;
4019
0
      if (yych <= 'X') goto yy48;
4020
0
      goto yy330;
4021
50
    } else {
4022
50
      if (yych <= 'a') {
4023
0
        if (yych <= '`') goto yy48;
4024
0
        goto yy329;
4025
50
      } else {
4026
50
        if (yych == 'y') goto yy330;
4027
4
        goto yy48;
4028
50
      }
4029
50
    }
4030
0
yy205:
4031
0
    YYDEBUG(205, *YYCURSOR);
4032
0
    yyaccept = 4;
4033
0
    yych = *(YYMARKER = ++YYCURSOR);
4034
0
    if (yych == 'S') goto yy332;
4035
0
    if (yych == 's') goto yy332;
4036
0
    goto yy48;
4037
2
yy206:
4038
2
    YYDEBUG(206, *YYCURSOR);
4039
2
    yyaccept = 4;
4040
2
    yych = *(YYMARKER = ++YYCURSOR);
4041
2
    if (yych == 'E') goto yy333;
4042
2
    if (yych == 'e') goto yy333;
4043
2
    goto yy48;
4044
33
yy207:
4045
33
    YYDEBUG(207, *YYCURSOR);
4046
33
    yyaccept = 4;
4047
33
    yych = *(YYMARKER = ++YYCURSOR);
4048
33
    if (yych == 'R') goto yy335;
4049
33
    if (yych == 'r') goto yy335;
4050
0
    goto yy48;
4051
0
yy208:
4052
0
    YYDEBUG(208, *YYCURSOR);
4053
0
    yyaccept = 4;
4054
0
    yych = *(YYMARKER = ++YYCURSOR);
4055
0
    if (yych == 'I') goto yy337;
4056
0
    if (yych == 'i') goto yy337;
4057
0
    goto yy48;
4058
6
yy209:
4059
6
    YYDEBUG(209, *YYCURSOR);
4060
6
    yyaccept = 4;
4061
6
    yych = *(YYMARKER = ++YYCURSOR);
4062
6
    if (yych == 'R') goto yy338;
4063
6
    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
7
yy211:
4073
7
    YYDEBUG(211, *YYCURSOR);
4074
7
    yyaccept = 13;
4075
7
    YYMARKER = ++YYCURSOR;
4076
7
    YYFILL(1);
4077
7
    yych = *YYCURSOR;
4078
7
    YYDEBUG(212, *YYCURSOR);
4079
7
    if (yych <= '\\') {
4080
4
      if (yych <= '@') {
4081
1
        if (yych <= '/') goto yy213;
4082
0
        if (yych <= '9') goto yy211;
4083
3
      } else {
4084
3
        if (yych <= 'Z') goto yy211;
4085
0
        if (yych >= '\\') goto yy341;
4086
0
      }
4087
4
    } else {
4088
3
      if (yych <= '`') {
4089
0
        if (yych == '_') goto yy211;
4090
3
      } else {
4091
3
        if (yych <= 'z') goto yy211;
4092
0
        if (yych >= 0x80) goto yy211;
4093
0
      }
4094
3
    }
4095
1
yy213:
4096
1
    YYDEBUG(213, *YYCURSOR);
4097
1
    yyleng = YYCURSOR - SCNG(yy_text);
4098
1
#line 2447 "Zend/zend_language_scanner.l"
4099
1
    {
4100
1
  RETURN_TOKEN_WITH_STR(T_NAME_FULLY_QUALIFIED, 1);
4101
1
}
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
42
yy216:
4114
42
    YYDEBUG(216, *YYCURSOR);
4115
42
    yyaccept = 4;
4116
42
    yych = *(YYMARKER = ++YYCURSOR);
4117
42
    switch (yych) {
4118
0
    case 'C':
4119
0
    case 'c': goto yy342;
4120
0
    case 'D':
4121
11
    case 'd': goto yy343;
4122
26
    case 'F':
4123
26
    case 'f': goto yy344;
4124
0
    case 'H':
4125
0
    case 'h': goto yy345;
4126
0
    case 'L':
4127
0
    case 'l': goto yy346;
4128
5
    case 'M':
4129
5
    case 'm': goto yy347;
4130
0
    case 'N':
4131
0
    case 'n': goto yy348;
4132
0
    case 'P':
4133
0
    case 'p': goto yy349;
4134
0
    case 'T':
4135
0
    case 't': goto yy350;
4136
0
    default:  goto yy48;
4137
42
    }
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
0
yy219:
4149
0
    YYDEBUG(219, *YYCURSOR);
4150
0
    ++YYCURSOR;
4151
0
    YYDEBUG(220, *YYCURSOR);
4152
0
    yyleng = YYCURSOR - SCNG(yy_text);
4153
0
#line 1918 "Zend/zend_language_scanner.l"
4154
0
    {
4155
0
  RETURN_TOKEN(T_PIPE);
4156
0
}
4157
0
#line 4158 "Zend/zend_language_scanner.c"
4158
5
yy221:
4159
5
    YYDEBUG(221, *YYCURSOR);
4160
5
    ++YYCURSOR;
4161
5
    YYDEBUG(222, *YYCURSOR);
4162
5
    yyleng = YYCURSOR - SCNG(yy_text);
4163
5
#line 1922 "Zend/zend_language_scanner.l"
4164
5
    {
4165
5
  RETURN_TOKEN(T_BOOLEAN_OR);
4166
5
}
4167
0
#line 4168 "Zend/zend_language_scanner.c"
4168
10
yy223:
4169
10
    YYDEBUG(223, *YYCURSOR);
4170
10
    ++YYCURSOR;
4171
10
    YYDEBUG(224, *YYCURSOR);
4172
10
    yyleng = YYCURSOR - SCNG(yy_text);
4173
10
#line 1838 "Zend/zend_language_scanner.l"
4174
10
    {
4175
10
  RETURN_TOKEN(T_IS_NOT_IDENTICAL);
4176
10
}
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
0
yy232:
4235
0
    YYDEBUG(232, *YYCURSOR);
4236
0
    yych = *++YYCURSOR;
4237
0
    if (yych == 'R') goto yy357;
4238
0
    if (yych == 'r') goto yy357;
4239
0
    goto yy86;
4240
0
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
0
yy234:
4247
0
    YYDEBUG(234, *YYCURSOR);
4248
0
    yych = *++YYCURSOR;
4249
0
    if (yych == 'O') goto yy359;
4250
0
    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
0
yy236:
4259
0
    YYDEBUG(236, *YYCURSOR);
4260
0
    yych = *++YYCURSOR;
4261
0
    if (yych == 'O') goto yy361;
4262
0
    if (yych == 'o') goto yy361;
4263
0
    goto yy86;
4264
1
yy237:
4265
1
    YYDEBUG(237, *YYCURSOR);
4266
1
    yych = *++YYCURSOR;
4267
1
    if (yych == 'T') goto yy362;
4268
1
    if (yych == 't') goto yy362;
4269
0
    goto yy86;
4270
0
yy238:
4271
0
    YYDEBUG(238, *YYCURSOR);
4272
0
    yych = *++YYCURSOR;
4273
0
    if (yych == 'J') goto yy363;
4274
0
    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
13
yy240:
4283
13
    YYDEBUG(240, *YYCURSOR);
4284
13
    yych = *++YYCURSOR;
4285
13
    if (yych == 'R') goto yy365;
4286
13
    if (yych == 'r') goto yy365;
4287
0
    goto yy86;
4288
0
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
0
yy245:
4311
0
    YYDEBUG(245, *YYCURSOR);
4312
0
    ++YYCURSOR;
4313
0
    YYDEBUG(246, *YYCURSOR);
4314
0
    yyleng = YYCURSOR - SCNG(yy_text);
4315
0
#line 1618 "Zend/zend_language_scanner.l"
4316
0
    {
4317
0
  RETURN_TOKEN(T_ELLIPSIS);
4318
0
}
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
0
yy258:
4481
0
    YYDEBUG(258, *YYCURSOR);
4482
0
    yyaccept = 16;
4483
0
    YYMARKER = ++YYCURSOR;
4484
0
    YYFILL(1);
4485
0
    yych = *YYCURSOR;
4486
0
    YYDEBUG(259, *YYCURSOR);
4487
0
    if (yybm[0+yych] & 32) {
4488
0
      goto yy258;
4489
0
    }
4490
0
    if (yych == '_') goto yy137;
4491
0
yy260:
4492
0
    YYDEBUG(260, *YYCURSOR);
4493
0
    yyleng = YYCURSOR - SCNG(yy_text);
4494
0
#line 2166 "Zend/zend_language_scanner.l"
4495
0
    {
4496
  /* The +/- 2 skips "0x" */
4497
0
  size_t len = yyleng - 2;
4498
0
  char *end, *hex = yytext + 2;
4499
0
  bool contains_underscores;
4500
4501
  /* Skip any leading 0s */
4502
0
  while (len > 0 && (*hex == '0' || *hex == '_')) {
4503
0
    ++hex;
4504
0
    --len;
4505
0
  }
4506
4507
0
  contains_underscores = (memchr(hex, '_', len) != NULL);
4508
4509
0
  if (contains_underscores) {
4510
0
    hex = estrndup(hex, len);
4511
0
    strip_underscores(hex, &len);
4512
0
  }
4513
4514
0
  if (len < SIZEOF_ZEND_LONG * 2 || (len == SIZEOF_ZEND_LONG * 2 && *hex <= '7')) {
4515
0
    if (len == 0) {
4516
0
      ZVAL_LONG(zendlval, 0);
4517
0
    } else {
4518
0
      errno = 0;
4519
0
      ZVAL_LONG(zendlval, ZEND_STRTOL(hex, &end, 16));
4520
0
      ZEND_ASSERT(!errno && end == hex + len);
4521
0
    }
4522
0
    if (contains_underscores) {
4523
0
      efree(hex);
4524
0
    }
4525
0
    RETURN_TOKEN_WITH_VAL(T_LNUMBER);
4526
0
  } 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
0
}
4536
0
#line 4537 "Zend/zend_language_scanner.c"
4537
31
yy261:
4538
31
    YYDEBUG(261, *YYCURSOR);
4539
31
    ++YYCURSOR;
4540
31
    YYFILL(2);
4541
31
    yych = *YYCURSOR;
4542
31
    YYDEBUG(262, *YYCURSOR);
4543
31
    if (yych <= '\'') {
4544
0
      if (yych <= ' ') {
4545
0
        if (yych == '\t') goto yy261;
4546
0
        if (yych <= 0x1F) goto yy86;
4547
0
        goto yy261;
4548
0
      } else {
4549
0
        if (yych == '"') goto yy370;
4550
0
        if (yych <= '&') goto yy86;
4551
0
        goto yy371;
4552
0
      }
4553
31
    } else {
4554
31
      if (yych <= '_') {
4555
31
        if (yych <= '@') goto yy86;
4556
31
        if (yych <= 'Z') goto yy372;
4557
0
        if (yych <= '^') goto yy86;
4558
0
        goto yy372;
4559
0
      } else {
4560
0
        if (yych <= '`') goto yy86;
4561
0
        if (yych <= 'z') goto yy372;
4562
0
        if (yych <= 0x7F) goto yy86;
4563
0
        goto yy372;
4564
0
      }
4565
31
    }
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
8
yy267:
4587
8
    YYDEBUG(267, *YYCURSOR);
4588
8
    ++YYCURSOR;
4589
8
    YYDEBUG(268, *YYCURSOR);
4590
8
    yyleng = YYCURSOR - SCNG(yy_text);
4591
8
#line 1834 "Zend/zend_language_scanner.l"
4592
8
    {
4593
8
  RETURN_TOKEN(T_IS_IDENTICAL);
4594
8
}
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
0
yy271:
4607
0
    YYDEBUG(271, *YYCURSOR);
4608
0
    ++YYCURSOR;
4609
0
    YYDEBUG(272, *YYCURSOR);
4610
0
    yyleng = YYCURSOR - SCNG(yy_text);
4611
0
#line 1592 "Zend/zend_language_scanner.l"
4612
0
    {
4613
0
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
4614
0
  RETURN_TOKEN(T_NULLSAFE_OBJECT_OPERATOR);
4615
0
}
4616
0
#line 4617 "Zend/zend_language_scanner.c"
4617
0
yy273:
4618
0
    YYDEBUG(273, *YYCURSOR);
4619
0
    ++YYCURSOR;
4620
0
    goto yy156;
4621
0
yy274:
4622
0
    YYDEBUG(274, *YYCURSOR);
4623
0
    yych = *++YYCURSOR;
4624
0
    if (yych == '\n') goto yy273;
4625
0
    goto yy156;
4626
0
yy275:
4627
0
    YYDEBUG(275, *YYCURSOR);
4628
0
    ++YYCURSOR;
4629
0
    YYDEBUG(276, *YYCURSOR);
4630
0
    yyleng = YYCURSOR - SCNG(yy_text);
4631
0
#line 1914 "Zend/zend_language_scanner.l"
4632
0
    {
4633
0
  RETURN_TOKEN(T_COALESCE_EQUAL);
4634
0
}
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
2
yy278:
4644
2
    YYDEBUG(278, *YYCURSOR);
4645
2
    yyaccept = 17;
4646
2
    yych = *(YYMARKER = ++YYCURSOR);
4647
2
    if (yybm[256+yych] & 128) {
4648
0
      goto yy47;
4649
0
    }
4650
2
    if (yych == '\\') goto yy164;
4651
2
yy279:
4652
2
    YYDEBUG(279, *YYCURSOR);
4653
2
    yyleng = YYCURSOR - SCNG(yy_text);
4654
2
#line 1934 "Zend/zend_language_scanner.l"
4655
2
    {
4656
2
  RETURN_TOKEN_WITH_IDENT(T_LOGICAL_AND);
4657
2
}
4658
0
#line 4659 "Zend/zend_language_scanner.c"
4659
7
yy280:
4660
7
    YYDEBUG(280, *YYCURSOR);
4661
7
    yyaccept = 4;
4662
7
    yych = *(YYMARKER = ++YYCURSOR);
4663
7
    if (yych == 'A') goto yy375;
4664
7
    if (yych == 'a') goto yy375;
4665
0
    goto yy48;
4666
1
yy281:
4667
1
    YYDEBUG(281, *YYCURSOR);
4668
1
    yyaccept = 18;
4669
1
    YYMARKER = ++YYCURSOR;
4670
1
    YYFILL(1);
4671
1
    yych = *YYCURSOR;
4672
1
    YYDEBUG(282, *YYCURSOR);
4673
1
    if (yych <= '\\') {
4674
1
      if (yych <= '@') {
4675
1
        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
1
    } 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
1
yy283:
4690
1
    YYDEBUG(283, *YYCURSOR);
4691
1
    yyleng = YYCURSOR - SCNG(yy_text);
4692
1
#line 2443 "Zend/zend_language_scanner.l"
4693
1
    {
4694
1
  RETURN_TOKEN_WITH_STR(T_NAME_QUALIFIED, 0);
4695
1
}
4696
0
#line 4697 "Zend/zend_language_scanner.c"
4697
0
yy284:
4698
0
    YYDEBUG(284, *YYCURSOR);
4699
0
    yych = *++YYCURSOR;
4700
0
    if (yych == '<') goto yy261;
4701
0
    goto yy86;
4702
0
yy285:
4703
0
    YYDEBUG(285, *YYCURSOR);
4704
0
    yyaccept = 4;
4705
0
    yych = *(YYMARKER = ++YYCURSOR);
4706
0
    if (yych == 'A') goto yy376;
4707
0
    if (yych == 'a') goto yy376;
4708
0
    goto yy48;
4709
11
yy286:
4710
11
    YYDEBUG(286, *YYCURSOR);
4711
11
    yyaccept = 4;
4712
11
    yych = *(YYMARKER = ++YYCURSOR);
4713
11
    if (yych == 'L') goto yy377;
4714
11
    if (yych == 'l') goto yy377;
4715
11
    goto yy48;
4716
11
yy287:
4717
4
    YYDEBUG(287, *YYCURSOR);
4718
4
    yyaccept = 4;
4719
4
    yych = *(YYMARKER = ++YYCURSOR);
4720
4
    if (yych == 'E') goto yy378;
4721
4
    if (yych == 'e') goto yy378;
4722
0
    goto yy48;
4723
77
yy288:
4724
77
    YYDEBUG(288, *YYCURSOR);
4725
77
    yyaccept = 4;
4726
77
    yych = *(YYMARKER = ++YYCURSOR);
4727
77
    if (yych == 'C') goto yy380;
4728
77
    if (yych == 'c') goto yy380;
4729
0
    goto yy48;
4730
17
yy289:
4731
17
    YYDEBUG(289, *YYCURSOR);
4732
17
    yyaccept = 4;
4733
17
    yych = *(YYMARKER = ++YYCURSOR);
4734
17
    if (yych == 'S') goto yy381;
4735
17
    if (yych == 's') goto yy381;
4736
0
    goto yy48;
4737
0
yy290:
4738
0
    YYDEBUG(290, *YYCURSOR);
4739
0
    yyaccept = 4;
4740
0
    yych = *(YYMARKER = ++YYCURSOR);
4741
0
    if (yych == 'N') goto yy382;
4742
0
    if (yych == 'n') goto yy382;
4743
0
    goto yy48;
4744
44
yy291:
4745
44
    YYDEBUG(291, *YYCURSOR);
4746
44
    yyaccept = 4;
4747
44
    yych = *(YYMARKER = ++YYCURSOR);
4748
44
    if (yych <= 'T') {
4749
0
      if (yych <= 'R') goto yy48;
4750
0
      if (yych <= 'S') goto yy383;
4751
0
      goto yy384;
4752
44
    } else {
4753
44
      if (yych <= 'r') goto yy48;
4754
44
      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
0
yy293:
4766
0
    YYDEBUG(293, *YYCURSOR);
4767
0
    yyaccept = 4;
4768
0
    yych = *(YYMARKER = ++YYCURSOR);
4769
0
    if (yych == 'A') goto yy386;
4770
0
    if (yych == 'a') goto yy386;
4771
0
    goto yy48;
4772
0
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
26
yy296:
4789
26
    YYDEBUG(296, *YYCURSOR);
4790
26
    yyaccept = 4;
4791
26
    yych = *(YYMARKER = ++YYCURSOR);
4792
26
    if (yych == 'O') goto yy387;
4793
26
    if (yych == 'o') goto yy387;
4794
1
    goto yy48;
4795
1
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
0
yy299:
4810
0
    YYDEBUG(299, *YYCURSOR);
4811
0
    yyaccept = 4;
4812
0
    yych = *(YYMARKER = ++YYCURSOR);
4813
0
    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
0
    case 's': goto yy395;
4822
0
    case 'W':
4823
0
    case 'w': goto yy396;
4824
0
    default:  goto yy48;
4825
0
    }
4826
4
yy300:
4827
4
    YYDEBUG(300, *YYCURSOR);
4828
4
    yyaccept = 4;
4829
4
    yych = *(YYMARKER = ++YYCURSOR);
4830
4
    if (yych == 'M') goto yy397;
4831
4
    if (yych == 'm') goto yy397;
4832
0
    goto yy48;
4833
6
yy301:
4834
6
    YYDEBUG(301, *YYCURSOR);
4835
6
    yyaccept = 4;
4836
6
    yych = *(YYMARKER = ++YYCURSOR);
4837
6
    if (yych == 'L') goto yy398;
4838
6
    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
0
yy303:
4848
0
    YYDEBUG(303, *YYCURSOR);
4849
0
    yyaccept = 4;
4850
0
    yych = *(YYMARKER = ++YYCURSOR);
4851
0
    if (yych == 'E') goto yy402;
4852
0
    if (yych == 'e') goto yy402;
4853
0
    goto yy48;
4854
0
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
84
yy305:
4862
84
    YYDEBUG(305, *YYCURSOR);
4863
84
    yyaccept = 20;
4864
84
    yych = *(YYMARKER = ++YYCURSOR);
4865
84
    if (yych <= '\\') {
4866
72
      if (yych <= 'D') {
4867
72
        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
72
    } else {
4876
12
      if (yych <= 'd') {
4877
0
        if (yych == '_') goto yy47;
4878
0
        if (yych >= 'a') goto yy47;
4879
12
      } else {
4880
12
        if (yych <= 'e') goto yy404;
4881
0
        if (yych <= 'z') goto yy47;
4882
0
        if (yych >= 0x80) goto yy47;
4883
0
      }
4884
12
    }
4885
72
yy306:
4886
72
    YYDEBUG(306, *YYCURSOR);
4887
72
    yyleng = YYCURSOR - SCNG(yy_text);
4888
72
#line 1482 "Zend/zend_language_scanner.l"
4889
72
    {
4890
72
  RETURN_TOKEN_WITH_IDENT(T_FOR);
4891
72
}
4892
0
#line 4893 "Zend/zend_language_scanner.c"
4893
20
yy307:
4894
20
    YYDEBUG(307, *YYCURSOR);
4895
20
    yyaccept = 4;
4896
20
    yych = *(YYMARKER = ++YYCURSOR);
4897
20
    if (yych == 'C') goto yy405;
4898
20
    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
1
yy310:
4915
1
    YYDEBUG(310, *YYCURSOR);
4916
1
    yyaccept = 4;
4917
1
    yych = *(YYMARKER = ++YYCURSOR);
4918
1
    if (yych == 'L') goto yy409;
4919
1
    if (yych == 'l') goto yy409;
4920
0
    goto yy48;
4921
0
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
4
yy313:
4936
4
    YYDEBUG(313, *YYCURSOR);
4937
4
    yyaccept = 4;
4938
4
    yych = *(YYMARKER = ++YYCURSOR);
4939
4
    if (yych == 'E') goto yy412;
4940
4
    if (yych == 'e') goto yy412;
4941
4
    goto yy48;
4942
4
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
1
yy315:
4950
1
    YYDEBUG(315, *YYCURSOR);
4951
1
    yyaccept = 4;
4952
1
    yych = *(YYMARKER = ++YYCURSOR);
4953
1
    if (yych == 'T') goto yy414;
4954
1
    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
158
yy318:
4971
158
    YYDEBUG(318, *YYCURSOR);
4972
158
    yyaccept = 21;
4973
158
    yych = *(YYMARKER = ++YYCURSOR);
4974
158
    if (yybm[256+yych] & 128) {
4975
0
      goto yy47;
4976
0
    }
4977
158
    if (yych == '\\') goto yy164;
4978
158
yy319:
4979
158
    YYDEBUG(319, *YYCURSOR);
4980
158
    yyleng = YYCURSOR - SCNG(yy_text);
4981
158
#line 1626 "Zend/zend_language_scanner.l"
4982
158
    {
4983
158
  RETURN_TOKEN_WITH_IDENT(T_NEW);
4984
158
}
4985
0
#line 4986 "Zend/zend_language_scanner.c"
4986
3
yy320:
4987
3
    YYDEBUG(320, *YYCURSOR);
4988
3
    yyaccept = 4;
4989
3
    yych = *(YYMARKER = ++YYCURSOR);
4990
3
    if (yych <= 'V') {
4991
0
      if (yych == 'N') goto yy418;
4992
0
      if (yych <= 'U') goto yy48;
4993
0
      goto yy419;
4994
3
    } else {
4995
3
      if (yych <= 'n') {
4996
0
        if (yych <= 'm') goto yy48;
4997
0
        goto yy418;
4998
3
      } else {
4999
3
        if (yych == 'v') goto yy419;
5000
0
        goto yy48;
5001
3
      }
5002
3
    }
5003
0
yy321:
5004
0
    YYDEBUG(321, *YYCURSOR);
5005
0
    yyaccept = 4;
5006
0
    yych = *(YYMARKER = ++YYCURSOR);
5007
0
    if (yych == 'T') goto yy420;
5008
0
    if (yych == 't') goto yy420;
5009
0
    goto yy48;
5010
16
yy322:
5011
16
    YYDEBUG(322, *YYCURSOR);
5012
16
    yyaccept = 4;
5013
16
    yych = *(YYMARKER = ++YYCURSOR);
5014
16
    if (yych == 'L') goto yy421;
5015
16
    if (yych == 'l') goto yy421;
5016
1
    goto yy48;
5017
1
yy323:
5018
1
    YYDEBUG(323, *YYCURSOR);
5019
1
    yyaccept = 4;
5020
1
    yych = *(YYMARKER = ++YYCURSOR);
5021
1
    if (yych == 'D') goto yy422;
5022
0
    if (yych == 'd') goto yy422;
5023
0
    goto yy48;
5024
26
yy324:
5025
26
    YYDEBUG(324, *YYCURSOR);
5026
26
    yyaccept = 4;
5027
26
    yych = *(YYMARKER = ++YYCURSOR);
5028
26
    if (yych == 'U') goto yy423;
5029
26
    if (yych == 'u') goto yy423;
5030
0
    goto yy48;
5031
4
yy325:
5032
4
    YYDEBUG(325, *YYCURSOR);
5033
4
    yyaccept = 4;
5034
4
    yych = *(YYMARKER = ++YYCURSOR);
5035
4
    if (yych == 'U') goto yy424;
5036
4
    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
0
yy327:
5046
0
    YYDEBUG(327, *YYCURSOR);
5047
0
    yyaccept = 4;
5048
0
    yych = *(YYMARKER = ++YYCURSOR);
5049
0
    if (yych == 'T') goto yy426;
5050
0
    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
46
yy330:
5067
46
    YYDEBUG(330, *YYCURSOR);
5068
46
    yyaccept = 22;
5069
46
    yych = *(YYMARKER = ++YYCURSOR);
5070
46
    if (yybm[256+yych] & 128) {
5071
0
      goto yy47;
5072
0
    }
5073
46
    if (yych == '\\') goto yy164;
5074
46
yy331:
5075
46
    YYDEBUG(331, *YYCURSOR);
5076
46
    yyleng = YYCURSOR - SCNG(yy_text);
5077
46
#line 1438 "Zend/zend_language_scanner.l"
5078
46
    {
5079
46
  RETURN_TOKEN_WITH_IDENT(T_TRY);
5080
46
}
5081
0
#line 5082 "Zend/zend_language_scanner.c"
5082
0
yy332:
5083
0
    YYDEBUG(332, *YYCURSOR);
5084
0
    yyaccept = 4;
5085
0
    yych = *(YYMARKER = ++YYCURSOR);
5086
0
    if (yych == 'E') goto yy429;
5087
0
    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
33
yy335:
5106
33
    YYDEBUG(335, *YYCURSOR);
5107
33
    yyaccept = 24;
5108
33
    yych = *(YYMARKER = ++YYCURSOR);
5109
33
    if (yybm[256+yych] & 128) {
5110
33
      goto yy47;
5111
33
    }
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
6
yy338:
5129
6
    YYDEBUG(338, *YYCURSOR);
5130
6
    yyaccept = 25;
5131
6
    yych = *(YYMARKER = ++YYCURSOR);
5132
6
    if (yybm[256+yych] & 128) {
5133
0
      goto yy47;
5134
0
    }
5135
6
    if (yych == '\\') goto yy164;
5136
6
yy339:
5137
6
    YYDEBUG(339, *YYCURSOR);
5138
6
    yyleng = YYCURSOR - SCNG(yy_text);
5139
6
#line 1938 "Zend/zend_language_scanner.l"
5140
6
    {
5141
6
  RETURN_TOKEN_WITH_IDENT(T_LOGICAL_XOR);
5142
6
}
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
11
yy343:
5175
11
    YYDEBUG(343, *YYCURSOR);
5176
11
    yyaccept = 4;
5177
11
    yych = *(YYMARKER = ++YYCURSOR);
5178
11
    if (yych == 'I') goto yy433;
5179
11
    if (yych == 'i') goto yy433;
5180
11
    goto yy48;
5181
26
yy344:
5182
26
    YYDEBUG(344, *YYCURSOR);
5183
26
    yyaccept = 4;
5184
26
    yych = *(YYMARKER = ++YYCURSOR);
5185
26
    if (yych <= 'U') {
5186
26
      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
0
yy346:
5206
0
    YYDEBUG(346, *YYCURSOR);
5207
0
    yyaccept = 4;
5208
0
    yych = *(YYMARKER = ++YYCURSOR);
5209
0
    if (yych == 'I') goto yy437;
5210
0
    if (yych == 'i') goto yy437;
5211
0
    goto yy48;
5212
5
yy347:
5213
5
    YYDEBUG(347, *YYCURSOR);
5214
5
    yyaccept = 4;
5215
5
    yych = *(YYMARKER = ++YYCURSOR);
5216
5
    if (yych == 'E') goto yy438;
5217
0
    if (yych == 'e') goto yy438;
5218
0
    goto yy48;
5219
0
yy348:
5220
0
    YYDEBUG(348, *YYCURSOR);
5221
0
    yyaccept = 4;
5222
0
    yych = *(YYMARKER = ++YYCURSOR);
5223
0
    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
0
yy350:
5234
0
    YYDEBUG(350, *YYCURSOR);
5235
0
    yyaccept = 4;
5236
0
    yych = *(YYMARKER = ++YYCURSOR);
5237
0
    if (yych == 'R') goto yy441;
5238
0
    if (yych == 'r') goto yy441;
5239
0
    goto yy48;
5240
0
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
0
yy357:
5302
0
    YYDEBUG(357, *YYCURSOR);
5303
0
    yych = *++YYCURSOR;
5304
0
    if (yych == 'A') goto yy445;
5305
0
    if (yych == 'a') goto yy445;
5306
0
    goto yy86;
5307
0
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
0
yy359:
5314
0
    YYDEBUG(359, *YYCURSOR);
5315
0
    yych = *++YYCURSOR;
5316
0
    if (yych == 'L') goto yy447;
5317
0
    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
0
yy361:
5326
0
    YYDEBUG(361, *YYCURSOR);
5327
0
    yych = *++YYCURSOR;
5328
0
    if (yych == 'A') goto yy449;
5329
0
    if (yych == 'a') goto yy449;
5330
0
    goto yy86;
5331
1
yy362:
5332
1
    YYDEBUG(362, *YYCURSOR);
5333
1
    yych = *++YYCURSOR;
5334
1
    if (yych == 'E') goto yy454;
5335
1
    if (yych == 'e') goto yy454;
5336
1
    goto yy451;
5337
1
yy363:
5338
0
    YYDEBUG(363, *YYCURSOR);
5339
0
    yych = *++YYCURSOR;
5340
0
    if (yych == 'E') goto yy455;
5341
0
    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
13
yy365:
5350
13
    YYDEBUG(365, *YYCURSOR);
5351
13
    yych = *++YYCURSOR;
5352
13
    if (yych == 'I') goto yy458;
5353
13
    if (yych == 'i') goto yy458;
5354
6
    goto yy86;
5355
6
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
0
yy371:
5390
0
    YYDEBUG(371, *YYCURSOR);
5391
0
    yych = *++YYCURSOR;
5392
0
    if (yych == '\'') goto yy86;
5393
0
    if (yych <= '/') goto yy465;
5394
0
    if (yych <= '9') goto yy86;
5395
0
    goto yy465;
5396
98
yy372:
5397
98
    YYDEBUG(372, *YYCURSOR);
5398
98
    ++YYCURSOR;
5399
98
    YYFILL(2);
5400
98
    yych = *YYCURSOR;
5401
98
    YYDEBUG(373, *YYCURSOR);
5402
98
    if (yych <= '@') {
5403
45
      if (yych <= '\f') {
5404
21
        if (yych == '\n') goto yy466;
5405
0
        goto yy86;
5406
24
      } else {
5407
24
        if (yych <= '\r') goto yy468;
5408
24
        if (yych <= '/') goto yy86;
5409
21
        if (yych <= '9') goto yy372;
5410
0
        goto yy86;
5411
21
      }
5412
53
    } else {
5413
53
      if (yych <= '_') {
5414
42
        if (yych <= 'Z') goto yy372;
5415
0
        if (yych <= '^') goto yy86;
5416
0
        goto yy372;
5417
11
      } else {
5418
11
        if (yych <= '`') goto yy86;
5419
10
        if (yych <= 'z') goto yy372;
5420
8
        if (yych <= 0x7F) goto yy86;
5421
2
        goto yy372;
5422
8
      }
5423
53
    }
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
7
yy375:
5432
7
    YYDEBUG(375, *YYCURSOR);
5433
7
    yyaccept = 4;
5434
7
    yych = *(YYMARKER = ++YYCURSOR);
5435
7
    if (yych == 'Y') goto yy470;
5436
7
    if (yych == 'y') goto yy470;
5437
0
    goto yy48;
5438
0
yy376:
5439
0
    YYDEBUG(376, *YYCURSOR);
5440
0
    yyaccept = 4;
5441
0
    yych = *(YYMARKER = ++YYCURSOR);
5442
0
    if (yych == 'K') goto yy472;
5443
0
    if (yych == 'k') goto yy472;
5444
0
    goto yy48;
5445
0
yy377:
5446
0
    YYDEBUG(377, *YYCURSOR);
5447
0
    yyaccept = 4;
5448
0
    yych = *(YYMARKER = ++YYCURSOR);
5449
0
    if (yych == 'A') goto yy474;
5450
0
    if (yych == 'a') goto yy474;
5451
0
    goto yy48;
5452
4
yy378:
5453
4
    YYDEBUG(378, *YYCURSOR);
5454
4
    yyaccept = 27;
5455
4
    yych = *(YYMARKER = ++YYCURSOR);
5456
4
    if (yybm[256+yych] & 128) {
5457
0
      goto yy47;
5458
0
    }
5459
4
    if (yych == '\\') goto yy164;
5460
4
yy379:
5461
4
    YYDEBUG(379, *YYCURSOR);
5462
4
    yyleng = YYCURSOR - SCNG(yy_text);
5463
4
#line 1526 "Zend/zend_language_scanner.l"
5464
4
    {
5465
4
  RETURN_TOKEN_WITH_IDENT(T_CASE);
5466
4
}
5467
0
#line 5468 "Zend/zend_language_scanner.c"
5468
77
yy380:
5469
77
    YYDEBUG(380, *YYCURSOR);
5470
77
    yyaccept = 4;
5471
77
    yych = *(YYMARKER = ++YYCURSOR);
5472
77
    if (yych == 'H') goto yy475;
5473
77
    if (yych == 'h') goto yy475;
5474
0
    goto yy48;
5475
17
yy381:
5476
17
    YYDEBUG(381, *YYCURSOR);
5477
17
    yyaccept = 4;
5478
17
    yych = *(YYMARKER = ++YYCURSOR);
5479
17
    if (yych == 'S') goto yy477;
5480
17
    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
44
yy383:
5490
44
    YYDEBUG(383, *YYCURSOR);
5491
44
    yyaccept = 4;
5492
44
    yych = *(YYMARKER = ++YYCURSOR);
5493
44
    if (yych == 'T') goto yy481;
5494
44
    if (yych == 't') goto yy481;
5495
0
    goto yy48;
5496
0
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
25
yy387:
5518
25
    YYDEBUG(387, *YYCURSOR);
5519
25
    yyaccept = 28;
5520
25
    yych = *(YYMARKER = ++YYCURSOR);
5521
25
    if (yybm[256+yych] & 128) {
5522
0
      goto yy47;
5523
0
    }
5524
25
    if (yych == '\\') goto yy164;
5525
25
yy388:
5526
25
    YYDEBUG(388, *YYCURSOR);
5527
25
    yyleng = YYCURSOR - SCNG(yy_text);
5528
25
#line 1546 "Zend/zend_language_scanner.l"
5529
25
    {
5530
25
  RETURN_TOKEN_WITH_IDENT(T_ECHO);
5531
25
}
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
0
yy395:
5594
0
    YYDEBUG(395, *YYCURSOR);
5595
0
    yyaccept = 4;
5596
0
    yych = *(YYMARKER = ++YYCURSOR);
5597
0
    if (yych == 'W') goto yy493;
5598
0
    if (yych == 'w') goto yy493;
5599
0
    goto yy48;
5600
0
yy396:
5601
0
    YYDEBUG(396, *YYCURSOR);
5602
0
    yyaccept = 4;
5603
0
    yych = *(YYMARKER = ++YYCURSOR);
5604
0
    if (yych == 'H') goto yy494;
5605
0
    if (yych == 'h') goto yy494;
5606
0
    goto yy48;
5607
4
yy397:
5608
4
    YYDEBUG(397, *YYCURSOR);
5609
4
    yyaccept = 4;
5610
4
    yych = *(YYMARKER = ++YYCURSOR);
5611
4
    if (yych <= 0x1F) {
5612
0
      if (yych <= '\n') {
5613
0
        if (yych <= 0x08) goto yy48;
5614
0
        goto yy495;
5615
0
      } else {
5616
0
        if (yych == '\r') goto yy495;
5617
0
        goto yy48;
5618
0
      }
5619
4
    } else {
5620
4
      if (yych <= '#') {
5621
4
        if (yych <= ' ') goto yy495;
5622
0
        if (yych <= '"') goto yy48;
5623
0
        goto yy497;
5624
0
      } else {
5625
0
        if (yych == '/') goto yy498;
5626
0
        goto yy48;
5627
0
      }
5628
4
    }
5629
6
yy398:
5630
6
    YYDEBUG(398, *YYCURSOR);
5631
6
    yyaccept = 30;
5632
6
    yych = *(YYMARKER = ++YYCURSOR);
5633
6
    if (yybm[256+yych] & 128) {
5634
0
      goto yy47;
5635
0
    }
5636
6
    if (yych == '\\') goto yy164;
5637
6
yy399:
5638
6
    YYDEBUG(399, *YYCURSOR);
5639
6
    yyleng = YYCURSOR - SCNG(yy_text);
5640
6
#line 1718 "Zend/zend_language_scanner.l"
5641
6
    {
5642
6
  RETURN_TOKEN_WITH_IDENT(T_EVAL);
5643
6
}
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
0
yy402:
5662
0
    YYDEBUG(402, *YYCURSOR);
5663
0
    yyaccept = 4;
5664
0
    yych = *(YYMARKER = ++YYCURSOR);
5665
0
    if (yych == 'N') goto yy499;
5666
0
    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
12
yy404:
5676
12
    YYDEBUG(404, *YYCURSOR);
5677
12
    yyaccept = 4;
5678
12
    yych = *(YYMARKER = ++YYCURSOR);
5679
12
    if (yych == 'A') goto yy502;
5680
12
    if (yych == 'a') goto yy502;
5681
0
    goto yy48;
5682
20
yy405:
5683
20
    YYDEBUG(405, *YYCURSOR);
5684
20
    yyaccept = 4;
5685
20
    yych = *(YYMARKER = ++YYCURSOR);
5686
20
    if (yych == 'T') goto yy503;
5687
20
    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
1
yy409:
5713
1
    YYDEBUG(409, *YYCURSOR);
5714
1
    yyaccept = 4;
5715
1
    yych = *(YYMARKER = ++YYCURSOR);
5716
1
    if (yych == 'E') goto yy505;
5717
1
    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
1
yy414:
5758
1
    YYDEBUG(414, *YYCURSOR);
5759
1
    yyaccept = 33;
5760
1
    yych = *(YYMARKER = ++YYCURSOR);
5761
1
    if (yybm[256+yych] & 128) {
5762
1
      goto yy47;
5763
1
    }
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
0
yy418:
5788
0
    YYDEBUG(418, *YYCURSOR);
5789
0
    yyaccept = 4;
5790
0
    yych = *(YYMARKER = ++YYCURSOR);
5791
0
    if (yych == 'T') goto yy515;
5792
0
    if (yych == 't') goto yy515;
5793
0
    goto yy48;
5794
3
yy419:
5795
3
    YYDEBUG(419, *YYCURSOR);
5796
3
    yyaccept = 4;
5797
3
    yych = *(YYMARKER = ++YYCURSOR);
5798
3
    if (yych == 'A') goto yy517;
5799
3
    if (yych == 'a') goto yy517;
5800
0
    goto yy48;
5801
0
yy420:
5802
0
    YYDEBUG(420, *YYCURSOR);
5803
0
    yyaccept = 4;
5804
0
    yych = *(YYMARKER = ++YYCURSOR);
5805
0
    if (yych == 'E') goto yy518;
5806
0
    if (yych == 'e') goto yy518;
5807
0
    goto yy48;
5808
15
yy421:
5809
15
    YYDEBUG(421, *YYCURSOR);
5810
15
    yyaccept = 4;
5811
15
    yych = *(YYMARKER = ++YYCURSOR);
5812
15
    if (yych == 'I') goto yy519;
5813
15
    if (yych == 'i') goto yy519;
5814
0
    goto yy48;
5815
1
yy422:
5816
1
    YYDEBUG(422, *YYCURSOR);
5817
1
    yyaccept = 4;
5818
1
    yych = *(YYMARKER = ++YYCURSOR);
5819
1
    if (yych == 'O') goto yy520;
5820
0
    if (yych == 'o') goto yy520;
5821
0
    goto yy48;
5822
26
yy423:
5823
26
    YYDEBUG(423, *YYCURSOR);
5824
26
    yyaccept = 4;
5825
26
    yych = *(YYMARKER = ++YYCURSOR);
5826
26
    if (yych == 'I') goto yy521;
5827
26
    if (yych == 'i') goto yy521;
5828
0
    goto yy48;
5829
4
yy424:
5830
4
    YYDEBUG(424, *YYCURSOR);
5831
4
    yyaccept = 4;
5832
4
    yych = *(YYMARKER = ++YYCURSOR);
5833
4
    if (yych == 'R') goto yy522;
5834
4
    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
0
yy426:
5844
0
    YYDEBUG(426, *YYCURSOR);
5845
0
    yyaccept = 4;
5846
0
    yych = *(YYMARKER = ++YYCURSOR);
5847
0
    if (yych == 'C') goto yy524;
5848
0
    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
0
yy429:
5865
0
    YYDEBUG(429, *YYCURSOR);
5866
0
    yyaccept = 4;
5867
0
    yych = *(YYMARKER = ++YYCURSOR);
5868
0
    if (yych == 'T') goto yy529;
5869
0
    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
26
yy434:
5900
26
    YYDEBUG(434, *YYCURSOR);
5901
26
    yyaccept = 4;
5902
26
    yych = *(YYMARKER = ++YYCURSOR);
5903
26
    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
0
yy437:
5921
0
    YYDEBUG(437, *YYCURSOR);
5922
0
    yyaccept = 4;
5923
0
    yych = *(YYMARKER = ++YYCURSOR);
5924
0
    if (yych == 'N') goto yy540;
5925
0
    if (yych == 'n') goto yy540;
5926
0
    goto yy48;
5927
5
yy438:
5928
5
    YYDEBUG(438, *YYCURSOR);
5929
5
    yyaccept = 4;
5930
5
    yych = *(YYMARKER = ++YYCURSOR);
5931
5
    if (yych == 'T') goto yy541;
5932
0
    if (yych == 't') goto yy541;
5933
0
    goto yy48;
5934
0
yy439:
5935
0
    YYDEBUG(439, *YYCURSOR);
5936
0
    yyaccept = 4;
5937
0
    yych = *(YYMARKER = ++YYCURSOR);
5938
0
    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
0
yy445:
5982
0
    YYDEBUG(445, *YYCURSOR);
5983
0
    yych = *++YYCURSOR;
5984
0
    if (yych == 'Y') goto yy549;
5985
0
    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
0
yy447:
5994
0
    YYDEBUG(447, *YYCURSOR);
5995
0
    yych = *++YYCURSOR;
5996
0
    if (yych == 'E') goto yy556;
5997
0
    if (yych == 'e') goto yy556;
5998
0
    goto yy553;
5999
0
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
0
yy449:
6006
0
    YYDEBUG(449, *YYCURSOR);
6007
0
    yych = *++YYCURSOR;
6008
0
    if (yych == 'T') goto yy558;
6009
0
    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
1
yy451:
6017
1
    YYDEBUG(451, *YYCURSOR);
6018
1
    if (yych <= 0x1F) {
6019
0
      if (yych == '\t') goto yy450;
6020
0
      goto yy86;
6021
1
    } else {
6022
1
      if (yych <= ' ') goto yy450;
6023
1
      if (yych != ')') goto yy86;
6024
1
    }
6025
0
    YYDEBUG(452, *YYCURSOR);
6026
0
    ++YYCURSOR;
6027
0
    YYDEBUG(453, *YYCURSOR);
6028
0
    yyleng = YYCURSOR - SCNG(yy_text);
6029
0
#line 1638 "Zend/zend_language_scanner.l"
6030
0
    {
6031
0
  RETURN_TOKEN(T_INT_CAST);
6032
0
}
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
0
yy455:
6041
0
    YYDEBUG(455, *YYCURSOR);
6042
0
    yych = *++YYCURSOR;
6043
0
    if (yych == 'C') goto yy561;
6044
0
    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
7
yy458:
6061
7
    YYDEBUG(458, *YYCURSOR);
6062
7
    yych = *++YYCURSOR;
6063
7
    if (yych == 'N') goto yy564;
6064
7
    if (yych == 'n') goto yy564;
6065
6
    goto yy86;
6066
6
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
0
yy464:
6113
0
    YYDEBUG(464, *YYCURSOR);
6114
0
    ++YYCURSOR;
6115
0
    YYFILL(3);
6116
0
    yych = *YYCURSOR;
6117
0
yy465:
6118
0
    YYDEBUG(465, *YYCURSOR);
6119
0
    if (yych <= 'Z') {
6120
0
      if (yych <= '/') {
6121
0
        if (yych == '\'') goto yy569;
6122
0
        goto yy86;
6123
0
      } else {
6124
0
        if (yych <= '9') goto yy464;
6125
0
        if (yych <= '@') goto yy86;
6126
0
        goto yy464;
6127
0
      }
6128
0
    } 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
21
yy466:
6139
21
    YYDEBUG(466, *YYCURSOR);
6140
21
    ++YYCURSOR;
6141
21
yy467:
6142
21
    YYDEBUG(467, *YYCURSOR);
6143
21
    yyleng = YYCURSOR - SCNG(yy_text);
6144
21
#line 2678 "Zend/zend_language_scanner.l"
6145
21
    {
6146
21
  char *s;
6147
21
  unsigned char *saved_cursor;
6148
21
  int bprefix = (yytext[0] != '<') ? 1 : 0, spacing = 0, indentation = 0;
6149
21
  zend_heredoc_label *heredoc_label = emalloc(sizeof(zend_heredoc_label));
6150
21
  bool is_heredoc = 1;
6151
6152
21
  CG(zend_lineno)++;
6153
21
  heredoc_label->length = yyleng-bprefix-3-1-(yytext[yyleng-2]=='\r'?1:0);
6154
21
  s = yytext+bprefix+3;
6155
21
  while ((*s == ' ') || (*s == '\t')) {
6156
0
    s++;
6157
0
    heredoc_label->length--;
6158
0
  }
6159
6160
21
  if (*s == '\'') {
6161
0
    s++;
6162
0
    heredoc_label->length -= 2;
6163
0
    is_heredoc = 0;
6164
6165
0
    BEGIN(ST_NOWDOC);
6166
21
  } else {
6167
21
    if (*s == '"') {
6168
0
      s++;
6169
0
      heredoc_label->length -= 2;
6170
0
    }
6171
6172
21
    BEGIN(ST_HEREDOC);
6173
21
  }
6174
6175
21
  heredoc_label->label = estrndup(s, heredoc_label->length);
6176
21
  heredoc_label->indentation_uses_spaces = 0;
6177
21
  heredoc_label->indentation = 0;
6178
21
  saved_cursor = YYCURSOR;
6179
6180
21
  zend_ptr_stack_push(&SCNG(heredoc_label_stack), (void *) heredoc_label);
6181
6182
38
  while (YYCURSOR < YYLIMIT && (*YYCURSOR == ' ' || *YYCURSOR == '\t')) {
6183
17
    if (*YYCURSOR == '\t') {
6184
0
      spacing |= HEREDOC_USING_TABS;
6185
17
    } else {
6186
17
      spacing |= HEREDOC_USING_SPACES;
6187
17
    }
6188
17
    ++YYCURSOR;
6189
17
    ++indentation;
6190
17
  }
6191
6192
21
  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
21
  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
21
  YYCURSOR = saved_cursor;
6216
6217
21
  if (is_heredoc && !SCNG(heredoc_scan_ahead)) {
6218
8
    zend_lex_state current_state;
6219
8
    zend_string *saved_doc_comment = CG(doc_comment);
6220
8
    int heredoc_nesting_level = 1;
6221
8
    int first_token = 0;
6222
8
    int error = 0;
6223
6224
8
    zend_save_lexical_state(&current_state);
6225
6226
8
    SCNG(heredoc_scan_ahead) = 1;
6227
8
    SCNG(heredoc_indentation) = 0;
6228
8
    SCNG(heredoc_indentation_uses_spaces) = 0;
6229
8
    SCNG(on_event_context) = NULL;
6230
8
    LANG_SCNG(on_event) = NULL;
6231
8
    CG(doc_comment) = NULL;
6232
6233
8
    zend_ptr_stack_reverse_apply(&current_state.heredoc_label_stack, copy_heredoc_label_stack);
6234
6235
8
    zend_object *prev_exception = EG(exception);
6236
8
    EG(exception) = NULL;
6237
280
    while (heredoc_nesting_level) {
6238
280
      zval zv;
6239
280
      int retval;
6240
6241
280
      ZVAL_UNDEF(&zv);
6242
280
      retval = lex_scan(&zv, NULL);
6243
280
      zval_ptr_dtor_nogc(&zv);
6244
6245
280
      if (EG(exception)) {
6246
8
        zend_clear_exception();
6247
8
        break;
6248
8
      }
6249
6250
272
      if (!first_token) {
6251
8
        first_token = retval;
6252
8
      }
6253
6254
272
      switch (retval) {
6255
13
        case T_START_HEREDOC:
6256
13
          ++heredoc_nesting_level;
6257
13
          break;
6258
0
        case T_END_HEREDOC:
6259
0
          --heredoc_nesting_level;
6260
0
          break;
6261
0
        case END:
6262
0
          heredoc_nesting_level = 0;
6263
272
      }
6264
272
    }
6265
8
    EG(exception) = prev_exception;
6266
6267
8
    if (
6268
8
        (first_token == T_VARIABLE
6269
8
         || first_token == T_DOLLAR_OPEN_CURLY_BRACES
6270
8
         || first_token == T_CURLY_OPEN
6271
8
        ) && 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
8
    heredoc_label->indentation = SCNG(heredoc_indentation);
6277
8
    heredoc_label->indentation_uses_spaces = SCNG(heredoc_indentation_uses_spaces);
6278
6279
8
    zend_restore_lexical_state(&current_state);
6280
8
    SCNG(heredoc_scan_ahead) = 0;
6281
8
    CG(increment_lineno) = 0;
6282
8
    CG(doc_comment) = saved_doc_comment;
6283
6284
8
    if (PARSER_MODE() && error) {
6285
0
      RETURN_TOKEN(T_ERROR);
6286
0
    }
6287
8
  }
6288
6289
21
  RETURN_TOKEN(T_START_HEREDOC);
6290
21
}
6291
0
#line 6292 "Zend/zend_language_scanner.c"
6292
0
yy468:
6293
0
    YYDEBUG(468, *YYCURSOR);
6294
0
    yych = *++YYCURSOR;
6295
0
    if (yych == '\n') goto yy466;
6296
0
    goto yy467;
6297
0
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
7
yy470:
6305
7
    YYDEBUG(470, *YYCURSOR);
6306
7
    yyaccept = 34;
6307
7
    yych = *(YYMARKER = ++YYCURSOR);
6308
7
    if (yybm[256+yych] & 128) {
6309
7
      goto yy47;
6310
7
    }
6311
0
    if (yych == '\\') goto yy164;
6312
0
yy471:
6313
0
    YYDEBUG(471, *YYCURSOR);
6314
0
    yyleng = YYCURSOR - SCNG(yy_text);
6315
0
#line 1818 "Zend/zend_language_scanner.l"
6316
0
    {
6317
0
  RETURN_TOKEN_WITH_IDENT(T_ARRAY);
6318
0
}
6319
0
#line 6320 "Zend/zend_language_scanner.c"
6320
0
yy472:
6321
0
    YYDEBUG(472, *YYCURSOR);
6322
0
    yyaccept = 35;
6323
0
    yych = *(YYMARKER = ++YYCURSOR);
6324
0
    if (yybm[256+yych] & 128) {
6325
0
      goto yy47;
6326
0
    }
6327
0
    if (yych == '\\') goto yy164;
6328
0
yy473:
6329
0
    YYDEBUG(473, *YYCURSOR);
6330
0
    yyleng = YYCURSOR - SCNG(yy_text);
6331
0
#line 1534 "Zend/zend_language_scanner.l"
6332
0
    {
6333
0
  RETURN_TOKEN_WITH_IDENT(T_BREAK);
6334
0
}
6335
0
#line 6336 "Zend/zend_language_scanner.c"
6336
0
yy474:
6337
0
    YYDEBUG(474, *YYCURSOR);
6338
0
    yyaccept = 4;
6339
0
    yych = *(YYMARKER = ++YYCURSOR);
6340
0
    if (yych == 'B') goto yy571;
6341
0
    if (yych == 'b') goto yy571;
6342
0
    goto yy48;
6343
77
yy475:
6344
77
    YYDEBUG(475, *YYCURSOR);
6345
77
    yyaccept = 36;
6346
77
    yych = *(YYMARKER = ++YYCURSOR);
6347
77
    if (yybm[256+yych] & 128) {
6348
0
      goto yy47;
6349
0
    }
6350
77
    if (yych == '\\') goto yy164;
6351
77
yy476:
6352
77
    YYDEBUG(476, *YYCURSOR);
6353
77
    yyleng = YYCURSOR - SCNG(yy_text);
6354
77
#line 1442 "Zend/zend_language_scanner.l"
6355
77
    {
6356
77
  RETURN_TOKEN_WITH_IDENT(T_CATCH);
6357
77
}
6358
0
#line 6359 "Zend/zend_language_scanner.c"
6359
17
yy477:
6360
17
    YYDEBUG(477, *YYCURSOR);
6361
17
    yyaccept = 37;
6362
17
    yych = *(YYMARKER = ++YYCURSOR);
6363
17
    if (yybm[256+yych] & 128) {
6364
0
      goto yy47;
6365
0
    }
6366
17
    if (yych == '\\') goto yy164;
6367
17
yy478:
6368
17
    YYDEBUG(478, *YYCURSOR);
6369
17
    yyleng = YYCURSOR - SCNG(yy_text);
6370
17
#line 1554 "Zend/zend_language_scanner.l"
6371
17
    {
6372
17
  RETURN_TOKEN_WITH_IDENT(T_CLASS);
6373
17
}
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
44
yy481:
6392
44
    YYDEBUG(481, *YYCURSOR);
6393
44
    yyaccept = 39;
6394
44
    yych = *(YYMARKER = ++YYCURSOR);
6395
44
    if (yybm[256+yych] & 128) {
6396
44
      goto yy47;
6397
44
    }
6398
0
    if (yych == '\\') goto yy164;
6399
0
yy482:
6400
0
    YYDEBUG(482, *YYCURSOR);
6401
0
    yyleng = YYCURSOR - SCNG(yy_text);
6402
0
#line 1415 "Zend/zend_language_scanner.l"
6403
0
    {
6404
0
  RETURN_TOKEN_WITH_IDENT(T_CONST);
6405
0
}
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
0
yy494:
6489
0
    YYDEBUG(494, *YYCURSOR);
6490
0
    yyaccept = 4;
6491
0
    yych = *(YYMARKER = ++YYCURSOR);
6492
0
    if (yych == 'I') goto yy581;
6493
0
    if (yych == 'i') goto yy581;
6494
0
    goto yy48;
6495
4
yy495:
6496
4
    YYDEBUG(495, *YYCURSOR);
6497
4
    ++YYCURSOR;
6498
4
    YYFILL(10);
6499
4
    yych = *YYCURSOR;
6500
4
    YYDEBUG(496, *YYCURSOR);
6501
4
    if (yych <= 'E') {
6502
1
      if (yych <= ' ') {
6503
0
        if (yych <= '\f') {
6504
0
          if (yych <= 0x08) goto yy86;
6505
0
          if (yych <= '\n') goto yy495;
6506
0
          goto yy86;
6507
0
        } else {
6508
0
          if (yych <= '\r') goto yy495;
6509
0
          if (yych <= 0x1F) goto yy86;
6510
0
          goto yy495;
6511
0
        }
6512
1
      } else {
6513
1
        if (yych <= '.') {
6514
0
          if (yych != '#') goto yy86;
6515
1
        } else {
6516
1
          if (yych <= '/') goto yy498;
6517
1
          if (yych <= '@') goto yy86;
6518
1
          if (yych <= 'D') goto yy582;
6519
0
          goto yy584;
6520
1
        }
6521
1
      }
6522
3
    } else {
6523
3
      if (yych <= '`') {
6524
2
        if (yych <= 'Z') {
6525
2
          if (yych == 'I') goto yy585;
6526
1
          goto yy582;
6527
2
        } else {
6528
0
          if (yych == '_') goto yy582;
6529
0
          goto yy86;
6530
0
        }
6531
2
      } else {
6532
1
        if (yych <= 'h') {
6533
1
          if (yych == 'e') goto yy584;
6534
1
          goto yy582;
6535
1
        } else {
6536
0
          if (yych <= 'i') goto yy585;
6537
0
          if (yych <= 'z') goto yy582;
6538
0
          if (yych <= 0x7F) goto yy86;
6539
0
          goto yy582;
6540
0
        }
6541
1
      }
6542
3
    }
6543
0
yy497:
6544
0
    YYDEBUG(497, *YYCURSOR);
6545
0
    ++YYCURSOR;
6546
0
    YYFILL(1);
6547
0
    yych = *YYCURSOR;
6548
0
    if (yych <= '\f') {
6549
0
      if (yych <= 0x00) goto yy86;
6550
0
      if (yych == '\n') goto yy588;
6551
0
      goto yy586;
6552
0
    } else {
6553
0
      if (yych <= '\r') goto yy588;
6554
0
      if (yych == '[') goto yy86;
6555
0
      goto yy586;
6556
0
    }
6557
0
yy498:
6558
0
    YYDEBUG(498, *YYCURSOR);
6559
0
    ++YYCURSOR;
6560
0
    YYFILL(1);
6561
0
    yych = *YYCURSOR;
6562
0
    if (yych == '*') goto yy590;
6563
0
    if (yych == '/') goto yy586;
6564
0
    goto yy86;
6565
0
yy499:
6566
0
    YYDEBUG(499, *YYCURSOR);
6567
0
    yyaccept = 4;
6568
0
    yych = *(YYMARKER = ++YYCURSOR);
6569
0
    if (yych == 'D') goto yy592;
6570
0
    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
12
yy502:
6605
12
    YYDEBUG(502, *YYCURSOR);
6606
12
    yyaccept = 4;
6607
12
    yych = *(YYMARKER = ++YYCURSOR);
6608
12
    if (yych == 'C') goto yy594;
6609
12
    if (yych == 'c') goto yy594;
6610
0
    goto yy48;
6611
20
yy503:
6612
20
    YYDEBUG(503, *YYCURSOR);
6613
20
    yyaccept = 4;
6614
20
    yych = *(YYMARKER = ++YYCURSOR);
6615
20
    if (yych == 'I') goto yy595;
6616
20
    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
1
yy505:
6626
1
    YYDEBUG(505, *YYCURSOR);
6627
1
    yyaccept = 4;
6628
1
    yych = *(YYMARKER = ++YYCURSOR);
6629
1
    if (yych == 'M') goto yy598;
6630
1
    if (yych == 'm') goto yy598;
6631
0
    goto yy48;
6632
0
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
0
yy515:
6700
0
    YYDEBUG(515, *YYCURSOR);
6701
0
    yyaccept = 45;
6702
0
    yych = *(YYMARKER = ++YYCURSOR);
6703
0
    if (yybm[256+yych] & 128) {
6704
0
      goto yy47;
6705
0
    }
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
3
yy517:
6716
3
    YYDEBUG(517, *YYCURSOR);
6717
3
    yyaccept = 4;
6718
3
    yych = *(YYMARKER = ++YYCURSOR);
6719
3
    if (yych == 'T') goto yy604;
6720
3
    if (yych == 't') goto yy604;
6721
0
    goto yy48;
6722
0
yy518:
6723
0
    YYDEBUG(518, *YYCURSOR);
6724
0
    yyaccept = 4;
6725
0
    yych = *(YYMARKER = ++YYCURSOR);
6726
0
    if (yych == 'C') goto yy605;
6727
0
    if (yych == 'c') goto yy605;
6728
0
    goto yy48;
6729
15
yy519:
6730
15
    YYDEBUG(519, *YYCURSOR);
6731
15
    yyaccept = 4;
6732
15
    yych = *(YYMARKER = ++YYCURSOR);
6733
15
    if (yych == 'C') goto yy606;
6734
15
    if (yych == 'c') goto yy606;
6735
0
    goto yy48;
6736
1
yy520:
6737
1
    YYDEBUG(520, *YYCURSOR);
6738
1
    yyaccept = 4;
6739
1
    yych = *(YYMARKER = ++YYCURSOR);
6740
1
    if (yych == 'N') goto yy608;
6741
0
    if (yych == 'n') goto yy608;
6742
0
    goto yy48;
6743
26
yy521:
6744
26
    YYDEBUG(521, *YYCURSOR);
6745
26
    yyaccept = 4;
6746
26
    yych = *(YYMARKER = ++YYCURSOR);
6747
26
    if (yych == 'R') goto yy609;
6748
26
    if (yych == 'r') goto yy609;
6749
0
    goto yy48;
6750
4
yy522:
6751
4
    YYDEBUG(522, *YYCURSOR);
6752
4
    yyaccept = 4;
6753
4
    yych = *(YYMARKER = ++YYCURSOR);
6754
4
    if (yych == 'N') goto yy610;
6755
4
    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
0
yy524:
6765
0
    YYDEBUG(524, *YYCURSOR);
6766
0
    yyaccept = 4;
6767
0
    yych = *(YYMARKER = ++YYCURSOR);
6768
0
    if (yych == 'H') goto yy614;
6769
0
    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
0
yy529:
6804
0
    YYDEBUG(529, *YYCURSOR);
6805
0
    yyaccept = 48;
6806
0
    yych = *(YYMARKER = ++YYCURSOR);
6807
0
    if (yybm[256+yych] & 128) {
6808
0
      goto yy47;
6809
0
    }
6810
0
    if (yych == '\\') goto yy164;
6811
0
yy530:
6812
0
    YYDEBUG(530, *YYCURSOR);
6813
0
    yyleng = YYCURSOR - SCNG(yy_text);
6814
0
#line 1806 "Zend/zend_language_scanner.l"
6815
0
    {
6816
0
  RETURN_TOKEN_WITH_IDENT(T_UNSET);
6817
0
}
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
26
yy537:
6880
26
    YYDEBUG(537, *YYCURSOR);
6881
26
    yyaccept = 4;
6882
26
    yych = *(YYMARKER = ++YYCURSOR);
6883
26
    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
0
yy540:
6901
0
    YYDEBUG(540, *YYCURSOR);
6902
0
    yyaccept = 4;
6903
0
    yych = *(YYMARKER = ++YYCURSOR);
6904
0
    if (yych == 'E') goto yy625;
6905
0
    if (yych == 'e') goto yy625;
6906
0
    goto yy48;
6907
5
yy541:
6908
5
    YYDEBUG(541, *YYCURSOR);
6909
5
    yyaccept = 4;
6910
5
    yych = *(YYMARKER = ++YYCURSOR);
6911
5
    if (yych == 'H') goto yy626;
6912
1
    if (yych == 'h') goto yy626;
6913
1
    goto yy48;
6914
1
yy542:
6915
0
    YYDEBUG(542, *YYCURSOR);
6916
0
    yyaccept = 4;
6917
0
    yych = *(YYMARKER = ++YYCURSOR);
6918
0
    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
0
yy549:
6991
0
    YYDEBUG(549, *YYCURSOR);
6992
0
    ++YYCURSOR;
6993
0
    YYFILL(1);
6994
0
    yych = *YYCURSOR;
6995
0
    YYDEBUG(550, *YYCURSOR);
6996
0
    if (yych <= 0x1F) {
6997
0
      if (yych == '\t') goto yy549;
6998
0
      goto yy86;
6999
0
    } else {
7000
0
      if (yych <= ' ') goto yy549;
7001
0
      if (yych == ')') goto yy634;
7002
0
      goto yy86;
7003
0
    }
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
0
yy553:
7016
0
    YYDEBUG(553, *YYCURSOR);
7017
0
    if (yych <= 0x1F) {
7018
0
      if (yych == '\t') goto yy552;
7019
0
      goto yy86;
7020
0
    } else {
7021
0
      if (yych <= ' ') goto yy552;
7022
0
      if (yych != ')') goto yy86;
7023
0
    }
7024
0
    YYDEBUG(554, *YYCURSOR);
7025
0
    ++YYCURSOR;
7026
0
    YYDEBUG(555, *YYCURSOR);
7027
0
    yyleng = YYCURSOR - SCNG(yy_text);
7028
0
#line 1696 "Zend/zend_language_scanner.l"
7029
0
    {
7030
0
  RETURN_TOKEN(T_BOOL_CAST);
7031
0
}
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
0
yy558:
7046
0
    YYDEBUG(558, *YYCURSOR);
7047
0
    ++YYCURSOR;
7048
0
    YYFILL(1);
7049
0
    yych = *YYCURSOR;
7050
0
    YYDEBUG(559, *YYCURSOR);
7051
0
    if (yych <= 0x1F) {
7052
0
      if (yych == '\t') goto yy558;
7053
0
      goto yy86;
7054
0
    } else {
7055
0
      if (yych <= ' ') goto yy558;
7056
0
      if (yych == ')') goto yy641;
7057
0
      goto yy86;
7058
0
    }
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
0
yy561:
7066
0
    YYDEBUG(561, *YYCURSOR);
7067
0
    yych = *++YYCURSOR;
7068
0
    if (yych == 'T') goto yy644;
7069
0
    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
1
yy564:
7086
1
    YYDEBUG(564, *YYCURSOR);
7087
1
    yych = *++YYCURSOR;
7088
1
    if (yych == 'G') goto yy646;
7089
1
    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
0
yy569:
7116
0
    YYDEBUG(569, *YYCURSOR);
7117
0
    yych = *++YYCURSOR;
7118
0
    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
0
yy571:
7129
0
    YYDEBUG(571, *YYCURSOR);
7130
0
    yyaccept = 4;
7131
0
    yych = *(YYMARKER = ++YYCURSOR);
7132
0
    if (yych == 'L') goto yy651;
7133
0
    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
0
yy581:
7219
0
    YYDEBUG(581, *YYCURSOR);
7220
0
    yyaccept = 4;
7221
0
    yych = *(YYMARKER = ++YYCURSOR);
7222
0
    if (yych == 'L') goto yy660;
7223
0
    if (yych == 'l') goto yy660;
7224
0
    goto yy48;
7225
3
yy582:
7226
3
    YYDEBUG(582, *YYCURSOR);
7227
3
    ++YYCURSOR;
7228
4
yy583:
7229
4
    YYDEBUG(583, *YYCURSOR);
7230
4
    yyleng = YYCURSOR - SCNG(yy_text);
7231
4
#line 1574 "Zend/zend_language_scanner.l"
7232
4
    {
7233
4
  yyless(4);
7234
4
  RETURN_TOKEN_WITH_IDENT(T_ENUM);
7235
4
}
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
1
yy585:
7245
1
    YYDEBUG(585, *YYCURSOR);
7246
1
    yyaccept = 53;
7247
1
    yych = *(YYMARKER = ++YYCURSOR);
7248
1
    if (yych == 'M') goto yy662;
7249
1
    if (yych == 'm') goto yy662;
7250
1
    goto yy583;
7251
1
yy586:
7252
0
    YYDEBUG(586, *YYCURSOR);
7253
0
    ++YYCURSOR;
7254
0
    YYFILL(1);
7255
0
    yych = *YYCURSOR;
7256
0
    YYDEBUG(587, *YYCURSOR);
7257
0
    if (yych <= '\n') {
7258
0
      if (yych <= 0x00) goto yy86;
7259
0
      if (yych <= '\t') goto yy586;
7260
0
      goto yy495;
7261
0
    } else {
7262
0
      if (yych == '\r') goto yy495;
7263
0
      goto yy586;
7264
0
    }
7265
0
yy588:
7266
0
    YYDEBUG(588, *YYCURSOR);
7267
0
    ++YYCURSOR;
7268
0
    YYFILL(1);
7269
0
    yych = *YYCURSOR;
7270
0
    YYDEBUG(589, *YYCURSOR);
7271
0
    if (yych <= 'D') {
7272
0
      if (yych <= 0x1F) {
7273
0
        if (yych <= '\t') {
7274
0
          if (yych <= 0x00) goto yy86;
7275
0
          if (yych <= 0x08) goto yy586;
7276
0
          goto yy588;
7277
0
        } else {
7278
0
          if (yych <= '\n') goto yy495;
7279
0
          if (yych == '\r') goto yy495;
7280
0
          goto yy586;
7281
0
        }
7282
0
      } else {
7283
0
        if (yych <= '#') {
7284
0
          if (yych <= ' ') goto yy588;
7285
0
          if (yych <= '"') goto yy586;
7286
0
          goto yy663;
7287
0
        } else {
7288
0
          if (yych == '/') goto yy664;
7289
0
          if (yych <= '@') goto yy586;
7290
0
          goto yy665;
7291
0
        }
7292
0
      }
7293
0
    } else {
7294
0
      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
0
      } else {
7305
0
        if (yych <= 'h') {
7306
0
          if (yych == 'e') goto yy666;
7307
0
          goto yy665;
7308
0
        } else {
7309
0
          if (yych <= 'i') goto yy667;
7310
0
          if (yych <= 'z') goto yy665;
7311
0
          if (yych <= 0x7F) goto yy586;
7312
0
          goto yy665;
7313
0
        }
7314
0
      }
7315
0
    }
7316
0
yy590:
7317
0
    YYDEBUG(590, *YYCURSOR);
7318
0
    ++YYCURSOR;
7319
0
    YYFILL(1);
7320
0
    yych = *YYCURSOR;
7321
0
    YYDEBUG(591, *YYCURSOR);
7322
0
    if (yych <= 0x00) goto yy86;
7323
0
    if (yych == '*') goto yy668;
7324
0
    goto yy590;
7325
0
yy592:
7326
0
    YYDEBUG(592, *YYCURSOR);
7327
0
    yyaccept = 4;
7328
0
    yych = *(YYMARKER = ++YYCURSOR);
7329
0
    if (yych == 'S') goto yy670;
7330
0
    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
12
yy594:
7340
12
    YYDEBUG(594, *YYCURSOR);
7341
12
    yyaccept = 4;
7342
12
    yych = *(YYMARKER = ++YYCURSOR);
7343
12
    if (yych == 'H') goto yy674;
7344
12
    if (yych == 'h') goto yy674;
7345
0
    goto yy48;
7346
20
yy595:
7347
20
    YYDEBUG(595, *YYCURSOR);
7348
20
    yyaccept = 4;
7349
20
    yych = *(YYMARKER = ++YYCURSOR);
7350
20
    if (yych == 'O') goto yy676;
7351
20
    if (yych == 'o') goto yy676;
7352
0
    goto yy48;
7353
0
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
1
yy598:
7370
1
    YYDEBUG(598, *YYCURSOR);
7371
1
    yyaccept = 4;
7372
1
    yych = *(YYMARKER = ++YYCURSOR);
7373
1
    if (yych == 'E') goto yy677;
7374
1
    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
3
yy604:
7412
3
    YYDEBUG(604, *YYCURSOR);
7413
3
    yyaccept = 4;
7414
3
    yych = *(YYMARKER = ++YYCURSOR);
7415
3
    if (yych == 'E') goto yy684;
7416
3
    if (yych == 'e') goto yy684;
7417
0
    goto yy48;
7418
0
yy605:
7419
0
    YYDEBUG(605, *YYCURSOR);
7420
0
    yyaccept = 4;
7421
0
    yych = *(YYMARKER = ++YYCURSOR);
7422
0
    if (yych == 'T') goto yy686;
7423
0
    if (yych == 't') goto yy686;
7424
0
    goto yy48;
7425
15
yy606:
7426
15
    YYDEBUG(606, *YYCURSOR);
7427
15
    yyaccept = 55;
7428
15
    yych = *(YYMARKER = ++YYCURSOR);
7429
15
    if (yybm[256+yych] & 128) {
7430
0
      goto yy47;
7431
0
    }
7432
15
    if (yych == '(') goto yy687;
7433
15
    if (yych == '\\') goto yy164;
7434
15
yy607:
7435
15
    YYDEBUG(607, *YYCURSOR);
7436
15
    yyleng = YYCURSOR - SCNG(yy_text);
7437
15
#line 1798 "Zend/zend_language_scanner.l"
7438
15
    {
7439
15
  RETURN_TOKEN_WITH_IDENT(T_PUBLIC);
7440
15
}
7441
0
#line 7442 "Zend/zend_language_scanner.c"
7442
1
yy608:
7443
1
    YYDEBUG(608, *YYCURSOR);
7444
1
    yyaccept = 4;
7445
1
    yych = *(YYMARKER = ++YYCURSOR);
7446
1
    if (yych == 'L') goto yy688;
7447
1
    if (yych == 'l') goto yy688;
7448
1
    goto yy48;
7449
26
yy609:
7450
26
    YYDEBUG(609, *YYCURSOR);
7451
26
    yyaccept = 4;
7452
26
    yych = *(YYMARKER = ++YYCURSOR);
7453
26
    if (yych == 'E') goto yy689;
7454
26
    if (yych == 'e') goto yy689;
7455
0
    goto yy48;
7456
4
yy610:
7457
4
    YYDEBUG(610, *YYCURSOR);
7458
4
    yyaccept = 56;
7459
4
    yych = *(YYMARKER = ++YYCURSOR);
7460
4
    if (yybm[256+yych] & 128) {
7461
0
      goto yy47;
7462
0
    }
7463
4
    if (yych == '\\') goto yy164;
7464
4
yy611:
7465
4
    YYDEBUG(611, *YYCURSOR);
7466
4
    yyleng = YYCURSOR - SCNG(yy_text);
7467
4
#line 1419 "Zend/zend_language_scanner.l"
7468
4
    {
7469
4
  RETURN_TOKEN_WITH_IDENT(T_RETURN);
7470
4
}
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
0
yy614:
7489
0
    YYDEBUG(614, *YYCURSOR);
7490
0
    yyaccept = 58;
7491
0
    yych = *(YYMARKER = ++YYCURSOR);
7492
0
    if (yybm[256+yych] & 128) {
7493
0
      goto yy47;
7494
0
    }
7495
0
    if (yych == '\\') goto yy164;
7496
0
yy615:
7497
0
    YYDEBUG(615, *YYCURSOR);
7498
0
    yyleng = YYCURSOR - SCNG(yy_text);
7499
0
#line 1514 "Zend/zend_language_scanner.l"
7500
0
    {
7501
0
  RETURN_TOKEN_WITH_IDENT(T_SWITCH);
7502
0
}
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
26
yy622:
7567
26
    YYDEBUG(622, *YYCURSOR);
7568
26
    yyaccept = 4;
7569
26
    yych = *(YYMARKER = ++YYCURSOR);
7570
26
    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
0
yy625:
7586
0
    YYDEBUG(625, *YYCURSOR);
7587
0
    yyaccept = 4;
7588
0
    yych = *(YYMARKER = ++YYCURSOR);
7589
0
    if (yych == '_') goto yy704;
7590
0
    goto yy48;
7591
4
yy626:
7592
4
    YYDEBUG(626, *YYCURSOR);
7593
4
    yyaccept = 4;
7594
4
    yych = *(YYMARKER = ++YYCURSOR);
7595
4
    if (yych == 'O') goto yy705;
7596
0
    if (yych == 'o') goto yy705;
7597
0
    goto yy48;
7598
0
yy627:
7599
0
    YYDEBUG(627, *YYCURSOR);
7600
0
    yyaccept = 4;
7601
0
    yych = *(YYMARKER = ++YYCURSOR);
7602
0
    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
0
yy634:
7678
0
    YYDEBUG(634, *YYCURSOR);
7679
0
    ++YYCURSOR;
7680
0
    YYDEBUG(635, *YYCURSOR);
7681
0
    yyleng = YYCURSOR - SCNG(yy_text);
7682
0
#line 1688 "Zend/zend_language_scanner.l"
7683
0
    {
7684
0
  RETURN_TOKEN(T_ARRAY_CAST);
7685
0
}
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
0
yy641:
7722
0
    YYDEBUG(641, *YYCURSOR);
7723
0
    ++YYCURSOR;
7724
0
    YYDEBUG(642, *YYCURSOR);
7725
0
    yyleng = YYCURSOR - SCNG(yy_text);
7726
0
#line 1652 "Zend/zend_language_scanner.l"
7727
0
    {
7728
0
  RETURN_TOKEN(T_DOUBLE_CAST);
7729
0
}
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
0
yy644:
7738
0
    YYDEBUG(644, *YYCURSOR);
7739
0
    ++YYCURSOR;
7740
0
    YYFILL(1);
7741
0
    yych = *YYCURSOR;
7742
0
    YYDEBUG(645, *YYCURSOR);
7743
0
    if (yych <= 0x1F) {
7744
0
      if (yych == '\t') goto yy644;
7745
0
      goto yy86;
7746
0
    } else {
7747
0
      if (yych <= ' ') goto yy644;
7748
0
      if (yych == ')') goto yy721;
7749
0
      goto yy86;
7750
0
    }
7751
1
yy646:
7752
1
    YYDEBUG(646, *YYCURSOR);
7753
1
    ++YYCURSOR;
7754
1
    YYFILL(1);
7755
1
    yych = *YYCURSOR;
7756
1
    YYDEBUG(647, *YYCURSOR);
7757
1
    if (yych <= 0x1F) {
7758
0
      if (yych == '\t') goto yy646;
7759
0
      goto yy86;
7760
1
    } else {
7761
1
      if (yych <= ' ') goto yy646;
7762
1
      if (yych == ')') goto yy723;
7763
1
      goto yy86;
7764
1
    }
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
0
yy651:
7783
0
    YYDEBUG(651, *YYCURSOR);
7784
0
    yyaccept = 4;
7785
0
    yych = *(YYMARKER = ++YYCURSOR);
7786
0
    if (yych == 'E') goto yy727;
7787
0
    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
0
yy660:
7850
0
    YYDEBUG(660, *YYCURSOR);
7851
0
    yyaccept = 4;
7852
0
    yych = *(YYMARKER = ++YYCURSOR);
7853
0
    if (yych == 'E') goto yy734;
7854
0
    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
0
yy663:
7869
0
    YYDEBUG(663, *YYCURSOR);
7870
0
    ++YYCURSOR;
7871
0
    YYFILL(1);
7872
0
    yych = *YYCURSOR;
7873
0
    if (yych <= '\n') {
7874
0
      if (yych <= 0x00) goto yy86;
7875
0
      if (yych <= '\t') goto yy586;
7876
0
      goto yy588;
7877
0
    } else {
7878
0
      if (yych == '\r') goto yy588;
7879
0
      goto yy586;
7880
0
    }
7881
0
yy664:
7882
0
    YYDEBUG(664, *YYCURSOR);
7883
0
    ++YYCURSOR;
7884
0
    YYFILL(1);
7885
0
    yych = *YYCURSOR;
7886
0
    if (yych <= '\f') {
7887
0
      if (yych <= 0x00) goto yy86;
7888
0
      if (yych == '\n') goto yy495;
7889
0
      goto yy586;
7890
0
    } else {
7891
0
      if (yych <= '\r') goto yy495;
7892
0
      if (yych == '*') goto yy738;
7893
0
      goto yy586;
7894
0
    }
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
0
yy666:
7910
0
    YYDEBUG(666, *YYCURSOR);
7911
0
    yyaccept = 53;
7912
0
    YYMARKER = ++YYCURSOR;
7913
0
    YYFILL(1);
7914
0
    yych = *YYCURSOR;
7915
0
    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
0
    } else {
7925
0
      if (yych <= 'X') {
7926
0
        if (yych <= 'W') goto yy586;
7927
0
        goto yy740;
7928
0
      } else {
7929
0
        if (yych == 'x') goto yy740;
7930
0
        goto yy586;
7931
0
      }
7932
0
    }
7933
0
yy667:
7934
0
    YYDEBUG(667, *YYCURSOR);
7935
0
    yyaccept = 53;
7936
0
    YYMARKER = ++YYCURSOR;
7937
0
    YYFILL(1);
7938
0
    yych = *YYCURSOR;
7939
0
    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
0
    } else {
7949
0
      if (yych <= 'M') {
7950
0
        if (yych <= 'L') goto yy586;
7951
0
        goto yy741;
7952
0
      } else {
7953
0
        if (yych == 'm') goto yy741;
7954
0
        goto yy586;
7955
0
      }
7956
0
    }
7957
0
yy668:
7958
0
    YYDEBUG(668, *YYCURSOR);
7959
0
    ++YYCURSOR;
7960
0
    YYFILL(1);
7961
0
    yych = *YYCURSOR;
7962
0
    YYDEBUG(669, *YYCURSOR);
7963
0
    if (yych <= '*') {
7964
0
      if (yych <= 0x00) goto yy86;
7965
0
      if (yych <= ')') goto yy590;
7966
0
      goto yy668;
7967
0
    } else {
7968
0
      if (yych == '/') goto yy495;
7969
0
      goto yy590;
7970
0
    }
7971
0
yy670:
7972
0
    YYDEBUG(670, *YYCURSOR);
7973
0
    yyaccept = 61;
7974
0
    yych = *(YYMARKER = ++YYCURSOR);
7975
0
    if (yybm[256+yych] & 128) {
7976
0
      goto yy47;
7977
0
    }
7978
0
    if (yych == '\\') goto yy164;
7979
0
yy671:
7980
0
    YYDEBUG(671, *YYCURSOR);
7981
0
    yyleng = YYCURSOR - SCNG(yy_text);
7982
0
#line 1579 "Zend/zend_language_scanner.l"
7983
0
    {
7984
0
  RETURN_TOKEN_WITH_IDENT(T_EXTENDS);
7985
0
}
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
12
yy674:
8004
12
    YYDEBUG(674, *YYCURSOR);
8005
12
    yyaccept = 63;
8006
12
    yych = *(YYMARKER = ++YYCURSOR);
8007
12
    if (yybm[256+yych] & 128) {
8008
0
      goto yy47;
8009
0
    }
8010
12
    if (yych == '\\') goto yy164;
8011
12
yy675:
8012
12
    YYDEBUG(675, *YYCURSOR);
8013
12
    yyleng = YYCURSOR - SCNG(yy_text);
8014
12
#line 1490 "Zend/zend_language_scanner.l"
8015
12
    {
8016
12
  RETURN_TOKEN_WITH_IDENT(T_FOREACH);
8017
12
}
8018
0
#line 8019 "Zend/zend_language_scanner.c"
8019
20
yy676:
8020
20
    YYDEBUG(676, *YYCURSOR);
8021
20
    yyaccept = 4;
8022
20
    yych = *(YYMARKER = ++YYCURSOR);
8023
20
    if (yych == 'N') goto yy742;
8024
20
    if (yych == 'n') goto yy742;
8025
0
    goto yy48;
8026
1
yy677:
8027
1
    YYDEBUG(677, *YYCURSOR);
8028
1
    yyaccept = 4;
8029
1
    yych = *(YYMARKER = ++YYCURSOR);
8030
1
    if (yych == 'N') goto yy744;
8031
1
    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
3
yy684:
8090
3
    YYDEBUG(684, *YYCURSOR);
8091
3
    yyaccept = 65;
8092
3
    yych = *(YYMARKER = ++YYCURSOR);
8093
3
    if (yybm[256+yych] & 128) {
8094
0
      goto yy47;
8095
0
    }
8096
3
    if (yych == '(') goto yy750;
8097
3
    if (yych == '\\') goto yy164;
8098
3
yy685:
8099
3
    YYDEBUG(685, *YYCURSOR);
8100
3
    yyleng = YYCURSOR - SCNG(yy_text);
8101
3
#line 1778 "Zend/zend_language_scanner.l"
8102
3
    {
8103
3
  RETURN_TOKEN_WITH_IDENT(T_PRIVATE);
8104
3
}
8105
0
#line 8106 "Zend/zend_language_scanner.c"
8106
0
yy686:
8107
0
    YYDEBUG(686, *YYCURSOR);
8108
0
    yyaccept = 4;
8109
0
    yych = *(YYMARKER = ++YYCURSOR);
8110
0
    if (yych == 'E') goto yy751;
8111
0
    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
26
yy689:
8127
26
    YYDEBUG(689, *YYCURSOR);
8128
26
    yyaccept = 66;
8129
26
    yych = *(YYMARKER = ++YYCURSOR);
8130
26
    if (yych <= '\\') {
8131
26
      if (yych <= '@') {
8132
26
        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
26
    } else {
8139
0
      if (yych <= '`') {
8140
0
        if (yych == '_') goto yy755;
8141
0
      } else {
8142
0
        if (yych <= 'z') goto yy47;
8143
0
        if (yych >= 0x80) goto yy47;
8144
0
      }
8145
0
    }
8146
26
yy690:
8147
26
    YYDEBUG(690, *YYCURSOR);
8148
26
    yyleng = YYCURSOR - SCNG(yy_text);
8149
26
#line 1730 "Zend/zend_language_scanner.l"
8150
26
    {
8151
26
  RETURN_TOKEN_WITH_IDENT(T_REQUIRE);
8152
26
}
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
26
yy701:
8238
26
    YYDEBUG(701, *YYCURSOR);
8239
26
    yyaccept = 4;
8240
26
    yych = *(YYMARKER = ++YYCURSOR);
8241
26
    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
0
yy704:
8258
0
    YYDEBUG(704, *YYCURSOR);
8259
0
    yyaccept = 4;
8260
0
    yych = *(YYMARKER = ++YYCURSOR);
8261
0
    if (yych == '_') goto yy767;
8262
0
    goto yy48;
8263
4
yy705:
8264
4
    YYDEBUG(705, *YYCURSOR);
8265
4
    yyaccept = 4;
8266
4
    yych = *(YYMARKER = ++YYCURSOR);
8267
4
    if (yych == 'D') goto yy769;
8268
0
    if (yych == 'd') goto yy769;
8269
0
    goto yy48;
8270
0
yy706:
8271
0
    YYDEBUG(706, *YYCURSOR);
8272
0
    yyaccept = 4;
8273
0
    yych = *(YYMARKER = ++YYCURSOR);
8274
0
    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
0
yy721:
8407
0
    YYDEBUG(721, *YYCURSOR);
8408
0
    ++YYCURSOR;
8409
0
    YYDEBUG(722, *YYCURSOR);
8410
0
    yyleng = YYCURSOR - SCNG(yy_text);
8411
0
#line 1692 "Zend/zend_language_scanner.l"
8412
0
    {
8413
0
  RETURN_TOKEN(T_OBJECT_CAST);
8414
0
}
8415
0
#line 8416 "Zend/zend_language_scanner.c"
8416
0
yy723:
8417
0
    YYDEBUG(723, *YYCURSOR);
8418
0
    ++YYCURSOR;
8419
0
    YYDEBUG(724, *YYCURSOR);
8420
0
    yyleng = YYCURSOR - SCNG(yy_text);
8421
0
#line 1674 "Zend/zend_language_scanner.l"
8422
0
    {
8423
0
  RETURN_TOKEN(T_STRING_CAST);
8424
0
}
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
0
yy727:
8443
0
    YYDEBUG(727, *YYCURSOR);
8444
0
    yyaccept = 69;
8445
0
    yych = *(YYMARKER = ++YYCURSOR);
8446
0
    if (yybm[256+yych] & 128) {
8447
0
      goto yy47;
8448
0
    }
8449
0
    if (yych == '\\') goto yy164;
8450
0
yy728:
8451
0
    YYDEBUG(728, *YYCURSOR);
8452
0
    yyleng = YYCURSOR - SCNG(yy_text);
8453
0
#line 1822 "Zend/zend_language_scanner.l"
8454
0
    {
8455
0
  RETURN_TOKEN_WITH_IDENT(T_CALLABLE);
8456
0
}
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
0
yy734:
8496
0
    YYDEBUG(734, *YYCURSOR);
8497
0
    yyaccept = 71;
8498
0
    yych = *(YYMARKER = ++YYCURSOR);
8499
0
    if (yybm[256+yych] & 128) {
8500
0
      goto yy47;
8501
0
    }
8502
0
    if (yych == '\\') goto yy164;
8503
0
yy735:
8504
0
    YYDEBUG(735, *YYCURSOR);
8505
0
    yyleng = YYCURSOR - SCNG(yy_text);
8506
0
#line 1474 "Zend/zend_language_scanner.l"
8507
0
    {
8508
0
  RETURN_TOKEN_WITH_IDENT(T_ENDWHILE);
8509
0
}
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
0
yy738:
8524
0
    YYDEBUG(738, *YYCURSOR);
8525
0
    ++YYCURSOR;
8526
0
    YYFILL(1);
8527
0
    yych = *YYCURSOR;
8528
0
    YYDEBUG(739, *YYCURSOR);
8529
0
    if (yych <= '\f') {
8530
0
      if (yych <= 0x00) goto yy86;
8531
0
      if (yych == '\n') goto yy787;
8532
0
      goto yy738;
8533
0
    } else {
8534
0
      if (yych <= '\r') goto yy787;
8535
0
      if (yych == '*') goto yy789;
8536
0
      goto yy738;
8537
0
    }
8538
0
yy740:
8539
0
    YYDEBUG(740, *YYCURSOR);
8540
0
    ++YYCURSOR;
8541
0
    YYFILL(1);
8542
0
    yych = *YYCURSOR;
8543
0
    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
0
    } else {
8553
0
      if (yych <= 'T') {
8554
0
        if (yych <= 'S') goto yy586;
8555
0
        goto yy791;
8556
0
      } else {
8557
0
        if (yych == 't') goto yy791;
8558
0
        goto yy586;
8559
0
      }
8560
0
    }
8561
0
yy741:
8562
0
    YYDEBUG(741, *YYCURSOR);
8563
0
    ++YYCURSOR;
8564
0
    YYFILL(1);
8565
0
    yych = *YYCURSOR;
8566
0
    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
0
    } else {
8576
0
      if (yych <= 'P') {
8577
0
        if (yych <= 'O') goto yy586;
8578
0
        goto yy792;
8579
0
      } else {
8580
0
        if (yych == 'p') goto yy792;
8581
0
        goto yy586;
8582
0
      }
8583
0
    }
8584
20
yy742:
8585
20
    YYDEBUG(742, *YYCURSOR);
8586
20
    yyaccept = 72;
8587
20
    yych = *(YYMARKER = ++YYCURSOR);
8588
20
    if (yybm[256+yych] & 128) {
8589
0
      goto yy47;
8590
0
    }
8591
20
    if (yych == '\\') goto yy164;
8592
20
yy743:
8593
20
    YYDEBUG(743, *YYCURSOR);
8594
20
    yyleng = YYCURSOR - SCNG(yy_text);
8595
20
#line 1411 "Zend/zend_language_scanner.l"
8596
20
    {
8597
20
  RETURN_TOKEN_WITH_IDENT(T_FUNCTION);
8598
20
}
8599
0
#line 8600 "Zend/zend_language_scanner.c"
8600
1
yy744:
8601
1
    YYDEBUG(744, *YYCURSOR);
8602
1
    yyaccept = 4;
8603
1
    yych = *(YYMARKER = ++YYCURSOR);
8604
1
    if (yych == 'T') goto yy793;
8605
1
    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
0
yy751:
8649
0
    YYDEBUG(751, *YYCURSOR);
8650
0
    yyaccept = 4;
8651
0
    yych = *(YYMARKER = ++YYCURSOR);
8652
0
    if (yych == 'D') goto yy803;
8653
0
    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
26
yy763:
8761
26
    YYDEBUG(763, *YYCURSOR);
8762
26
    yyaccept = 74;
8763
26
    yych = *(YYMARKER = ++YYCURSOR);
8764
26
    if (yybm[256+yych] & 128) {
8765
0
      goto yy47;
8766
0
    }
8767
26
    if (yych == '\\') goto yy164;
8768
26
yy764:
8769
26
    YYDEBUG(764, *YYCURSOR);
8770
26
    yyleng = YYCURSOR - SCNG(yy_text);
8771
26
#line 2277 "Zend/zend_language_scanner.l"
8772
26
    {
8773
26
  RETURN_TOKEN_WITH_IDENT(T_FILE);
8774
26
}
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
0
yy767:
8791
0
    YYDEBUG(767, *YYCURSOR);
8792
0
    yyaccept = 75;
8793
0
    yych = *(YYMARKER = ++YYCURSOR);
8794
0
    if (yybm[256+yych] & 128) {
8795
0
      goto yy47;
8796
0
    }
8797
0
    if (yych == '\\') goto yy164;
8798
0
yy768:
8799
0
    YYDEBUG(768, *YYCURSOR);
8800
0
    yyleng = YYCURSOR - SCNG(yy_text);
8801
0
#line 2273 "Zend/zend_language_scanner.l"
8802
0
    {
8803
0
  RETURN_TOKEN_WITH_IDENT(T_LINE);
8804
0
}
8805
0
#line 8806 "Zend/zend_language_scanner.c"
8806
4
yy769:
8807
4
    YYDEBUG(769, *YYCURSOR);
8808
4
    yyaccept = 4;
8809
4
    yych = *(YYMARKER = ++YYCURSOR);
8810
4
    if (yych == '_') goto yy815;
8811
0
    goto yy48;
8812
0
yy770:
8813
0
    YYDEBUG(770, *YYCURSOR);
8814
0
    yyaccept = 4;
8815
0
    yych = *(YYMARKER = ++YYCURSOR);
8816
0
    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
0
yy787:
8964
0
    YYDEBUG(787, *YYCURSOR);
8965
0
    ++YYCURSOR;
8966
0
    YYFILL(1);
8967
0
    yych = *YYCURSOR;
8968
0
    YYDEBUG(788, *YYCURSOR);
8969
0
    if (yych <= '@') {
8970
0
      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
0
      } else {
8981
0
        if (yych <= ')') {
8982
0
          if (yych == '#') goto yy828;
8983
0
          goto yy590;
8984
0
        } else {
8985
0
          if (yych <= '*') goto yy668;
8986
0
          if (yych == '/') goto yy829;
8987
0
          goto yy590;
8988
0
        }
8989
0
      }
8990
0
    } else {
8991
0
      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
0
      } else {
9002
0
        if (yych <= 'h') {
9003
0
          if (yych <= '`') goto yy590;
9004
0
          if (yych == 'e') goto yy831;
9005
0
          goto yy830;
9006
0
        } else {
9007
0
          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
0
      }
9013
0
    }
9014
0
yy789:
9015
0
    YYDEBUG(789, *YYCURSOR);
9016
0
    ++YYCURSOR;
9017
0
    YYFILL(1);
9018
0
    yych = *YYCURSOR;
9019
0
    YYDEBUG(790, *YYCURSOR);
9020
0
    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
0
    } else {
9030
0
      if (yych <= '*') {
9031
0
        if (yych <= ')') goto yy738;
9032
0
        goto yy789;
9033
0
      } else {
9034
0
        if (yych == '/') goto yy588;
9035
0
        goto yy738;
9036
0
      }
9037
0
    }
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
0
yy792:
9062
0
    YYDEBUG(792, *YYCURSOR);
9063
0
    ++YYCURSOR;
9064
0
    YYFILL(1);
9065
0
    yych = *YYCURSOR;
9066
0
    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
0
    } else {
9076
0
      if (yych <= 'L') {
9077
0
        if (yych <= 'K') goto yy586;
9078
0
        goto yy834;
9079
0
      } else {
9080
0
        if (yych == 'l') goto yy834;
9081
0
        goto yy586;
9082
0
      }
9083
0
    }
9084
1
yy793:
9085
1
    YYDEBUG(793, *YYCURSOR);
9086
1
    yyaccept = 4;
9087
1
    yych = *(YYMARKER = ++YYCURSOR);
9088
1
    if (yych == 'S') goto yy835;
9089
1
    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
0
yy803:
9160
0
    YYDEBUG(803, *YYCURSOR);
9161
0
    yyaccept = 80;
9162
0
    yych = *(YYMARKER = ++YYCURSOR);
9163
0
    if (yybm[256+yych] & 128) {
9164
0
      goto yy47;
9165
0
    }
9166
0
    if (yych == '(') goto yy842;
9167
0
    if (yych == '\\') goto yy164;
9168
0
yy804:
9169
0
    YYDEBUG(804, *YYCURSOR);
9170
0
    yyleng = YYCURSOR - SCNG(yy_text);
9171
0
#line 1782 "Zend/zend_language_scanner.l"
9172
0
    {
9173
0
  RETURN_TOKEN_WITH_IDENT(T_PROTECTED);
9174
0
}
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
4
yy815:
9264
4
    YYDEBUG(815, *YYCURSOR);
9265
4
    yyaccept = 4;
9266
4
    yych = *(YYMARKER = ++YYCURSOR);
9267
4
    if (yych == '_') goto yy853;
9268
2
    goto yy48;
9269
2
yy816:
9270
0
    YYDEBUG(816, *YYCURSOR);
9271
0
    yyaccept = 4;
9272
0
    yych = *(YYMARKER = ++YYCURSOR);
9273
0
    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
0
yy828:
9390
0
    YYDEBUG(828, *YYCURSOR);
9391
0
    ++YYCURSOR;
9392
0
    YYFILL(1);
9393
0
    yych = *YYCURSOR;
9394
0
    if (yych <= '\r') {
9395
0
      if (yych <= '\t') {
9396
0
        if (yych <= 0x00) goto yy86;
9397
0
        goto yy738;
9398
0
      } else {
9399
0
        if (yych <= '\n') goto yy859;
9400
0
        if (yych <= '\f') goto yy738;
9401
0
        goto yy859;
9402
0
      }
9403
0
    } 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
0
yy832:
9450
0
    YYDEBUG(832, *YYCURSOR);
9451
0
    yyaccept = 53;
9452
0
    YYMARKER = ++YYCURSOR;
9453
0
    YYFILL(1);
9454
0
    yych = *YYCURSOR;
9455
0
    if (yych <= 'L') {
9456
0
      if (yych <= 0x00) goto yy583;
9457
0
      if (yych == '*') goto yy668;
9458
0
      goto yy590;
9459
0
    } else {
9460
0
      if (yych <= 'M') goto yy863;
9461
0
      if (yych == 'm') goto yy863;
9462
0
      goto yy590;
9463
0
    }
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
0
yy834:
9488
0
    YYDEBUG(834, *YYCURSOR);
9489
0
    ++YYCURSOR;
9490
0
    YYFILL(1);
9491
0
    yych = *YYCURSOR;
9492
0
    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
0
    } else {
9502
0
      if (yych <= 'E') {
9503
0
        if (yych <= 'D') goto yy586;
9504
0
        goto yy865;
9505
0
      } else {
9506
0
        if (yych == 'e') goto yy865;
9507
0
        goto yy586;
9508
0
      }
9509
0
    }
9510
1
yy835:
9511
1
    YYDEBUG(835, *YYCURSOR);
9512
1
    yyaccept = 85;
9513
1
    yych = *(YYMARKER = ++YYCURSOR);
9514
1
    if (yybm[256+yych] & 128) {
9515
0
      goto yy47;
9516
0
    }
9517
1
    if (yych == '\\') goto yy164;
9518
1
yy836:
9519
1
    YYDEBUG(836, *YYCURSOR);
9520
1
    yyleng = YYCURSOR - SCNG(yy_text);
9521
1
#line 1583 "Zend/zend_language_scanner.l"
9522
1
    {
9523
1
  RETURN_TOKEN_WITH_IDENT(T_IMPLEMENTS);
9524
1
}
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
2
yy853:
9709
2
    YYDEBUG(853, *YYCURSOR);
9710
2
    yyaccept = 87;
9711
2
    yych = *(YYMARKER = ++YYCURSOR);
9712
2
    if (yybm[256+yych] & 128) {
9713
0
      goto yy47;
9714
0
    }
9715
2
    if (yych == '\\') goto yy164;
9716
2
yy854:
9717
2
    YYDEBUG(854, *YYCURSOR);
9718
2
    yyleng = YYCURSOR - SCNG(yy_text);
9719
2
#line 2269 "Zend/zend_language_scanner.l"
9720
2
    {
9721
2
  RETURN_TOKEN_WITH_IDENT(T_METHOD_C);
9722
2
}
9723
0
#line 9724 "Zend/zend_language_scanner.c"
9724
0
yy855:
9725
0
    YYDEBUG(855, *YYCURSOR);
9726
0
    yyaccept = 4;
9727
0
    yych = *(YYMARKER = ++YYCURSOR);
9728
0
    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
0
yy859:
9750
0
    YYDEBUG(859, *YYCURSOR);
9751
0
    ++YYCURSOR;
9752
0
    YYFILL(1);
9753
0
    yych = *YYCURSOR;
9754
0
    YYDEBUG(860, *YYCURSOR);
9755
0
    if (yych <= '@') {
9756
0
      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
0
      } else {
9767
0
        if (yych <= ')') {
9768
0
          if (yych <= ' ') goto yy859;
9769
0
          if (yych == '#') goto yy888;
9770
0
          goto yy738;
9771
0
        } else {
9772
0
          if (yych <= '*') goto yy789;
9773
0
          if (yych == '/') goto yy889;
9774
0
          goto yy738;
9775
0
        }
9776
0
      }
9777
0
    } else {
9778
0
      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
0
      } else {
9789
0
        if (yych <= 'h') {
9790
0
          if (yych <= '`') goto yy738;
9791
0
          if (yych == 'e') goto yy891;
9792
0
          goto yy890;
9793
0
        } else {
9794
0
          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
0
      }
9800
0
    }
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
0
yy863:
9829
0
    YYDEBUG(863, *YYCURSOR);
9830
0
    ++YYCURSOR;
9831
0
    YYFILL(1);
9832
0
    yych = *YYCURSOR;
9833
0
    if (yych <= 'O') {
9834
0
      if (yych <= 0x00) goto yy86;
9835
0
      if (yych == '*') goto yy668;
9836
0
      goto yy590;
9837
0
    } else {
9838
0
      if (yych <= 'P') goto yy894;
9839
0
      if (yych == 'p') goto yy894;
9840
0
      goto yy590;
9841
0
    }
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
0
yy865:
9866
0
    YYDEBUG(865, *YYCURSOR);
9867
0
    ++YYCURSOR;
9868
0
    YYFILL(1);
9869
0
    yych = *YYCURSOR;
9870
0
    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
0
    } else {
9880
0
      if (yych <= 'M') {
9881
0
        if (yych <= 'L') goto yy586;
9882
0
        goto yy896;
9883
0
      } else {
9884
0
        if (yych == 'm') goto yy896;
9885
0
        goto yy586;
9886
0
      }
9887
0
    }
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
0
yy883:
10059
0
    YYDEBUG(883, *YYCURSOR);
10060
0
    yyaccept = 4;
10061
0
    yych = *(YYMARKER = ++YYCURSOR);
10062
0
    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
0
yy888:
10089
0
    YYDEBUG(888, *YYCURSOR);
10090
0
    ++YYCURSOR;
10091
0
    YYFILL(1);
10092
0
    yych = *YYCURSOR;
10093
0
    if (yych <= '\f') {
10094
0
      if (yych <= 0x00) goto yy86;
10095
0
      if (yych == '\n') goto yy859;
10096
0
      goto yy738;
10097
0
    } 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
0
yy891:
10132
0
    YYDEBUG(891, *YYCURSOR);
10133
0
    yyaccept = 53;
10134
0
    YYMARKER = ++YYCURSOR;
10135
0
    YYFILL(1);
10136
0
    yych = *YYCURSOR;
10137
0
    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
0
    } else {
10147
0
      if (yych <= 'X') {
10148
0
        if (yych <= '*') goto yy789;
10149
0
        if (yych <= 'W') goto yy738;
10150
0
        goto yy918;
10151
0
      } else {
10152
0
        if (yych == 'x') goto yy918;
10153
0
        goto yy738;
10154
0
      }
10155
0
    }
10156
0
yy892:
10157
0
    YYDEBUG(892, *YYCURSOR);
10158
0
    yyaccept = 53;
10159
0
    YYMARKER = ++YYCURSOR;
10160
0
    YYFILL(1);
10161
0
    yych = *YYCURSOR;
10162
0
    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
0
    } else {
10172
0
      if (yych <= 'M') {
10173
0
        if (yych <= '*') goto yy789;
10174
0
        if (yych <= 'L') goto yy738;
10175
0
        goto yy919;
10176
0
      } else {
10177
0
        if (yych == 'm') goto yy919;
10178
0
        goto yy738;
10179
0
      }
10180
0
    }
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
0
yy894:
10196
0
    YYDEBUG(894, *YYCURSOR);
10197
0
    ++YYCURSOR;
10198
0
    YYFILL(1);
10199
0
    yych = *YYCURSOR;
10200
0
    if (yych <= 'K') {
10201
0
      if (yych <= 0x00) goto yy86;
10202
0
      if (yych == '*') goto yy668;
10203
0
      goto yy590;
10204
0
    } 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
0
yy913:
10436
0
    YYDEBUG(913, *YYCURSOR);
10437
0
    yyaccept = 4;
10438
0
    yych = *(YYMARKER = ++YYCURSOR);
10439
0
    if (yych == '_') goto yy930;
10440
0
    goto yy48;
10441
0
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
0
yy919:
10511
0
    YYDEBUG(919, *YYCURSOR);
10512
0
    ++YYCURSOR;
10513
0
    YYFILL(1);
10514
0
    yych = *YYCURSOR;
10515
0
    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
0
    } else {
10525
0
      if (yych <= 'P') {
10526
0
        if (yych <= '*') goto yy789;
10527
0
        if (yych <= 'O') goto yy738;
10528
0
        goto yy933;
10529
0
      } else {
10530
0
        if (yych == 'p') goto yy933;
10531
0
        goto yy738;
10532
0
      }
10533
0
    }
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
0
yy933:
10718
0
    YYDEBUG(933, *YYCURSOR);
10719
0
    ++YYCURSOR;
10720
0
    YYFILL(1);
10721
0
    yych = *YYCURSOR;
10722
0
    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
0
    } else {
10732
0
      if (yych <= 'L') {
10733
0
        if (yych <= '*') goto yy789;
10734
0
        if (yych <= 'K') goto yy738;
10735
0
        goto yy944;
10736
0
      } else {
10737
0
        if (yych == 'l') goto yy944;
10738
0
        goto yy738;
10739
0
      }
10740
0
    }
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
0
yy944:
10908
0
    YYDEBUG(944, *YYCURSOR);
10909
0
    ++YYCURSOR;
10910
0
    YYFILL(1);
10911
0
    yych = *YYCURSOR;
10912
0
    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
0
    } else {
10922
0
      if (yych <= 'E') {
10923
0
        if (yych <= '*') goto yy789;
10924
0
        if (yych <= 'D') goto yy738;
10925
0
        goto yy953;
10926
0
      } else {
10927
0
        if (yych == 'e') goto yy953;
10928
0
        goto yy738;
10929
0
      }
10930
0
    }
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
0
yy953:
11047
0
    YYDEBUG(953, *YYCURSOR);
11048
0
    ++YYCURSOR;
11049
0
    YYFILL(1);
11050
0
    yych = *YYCURSOR;
11051
0
    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
0
    } else {
11061
0
      if (yych <= 'M') {
11062
0
        if (yych <= '*') goto yy789;
11063
0
        if (yych <= 'L') goto yy738;
11064
0
        goto yy958;
11065
0
      } else {
11066
0
        if (yych == 'm') goto yy958;
11067
0
        goto yy738;
11068
0
      }
11069
0
    }
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
0
yy958:
11150
0
    YYDEBUG(958, *YYCURSOR);
11151
0
    ++YYCURSOR;
11152
0
    YYFILL(1);
11153
0
    yych = *YYCURSOR;
11154
0
    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
0
    } else {
11164
0
      if (yych <= 'E') {
11165
0
        if (yych <= '*') goto yy789;
11166
0
        if (yych <= 'D') goto yy738;
11167
0
        goto yy964;
11168
0
      } else {
11169
0
        if (yych == 'e') goto yy964;
11170
0
        goto yy738;
11171
0
      }
11172
0
    }
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
0
yy964:
11279
0
    YYDEBUG(964, *YYCURSOR);
11280
0
    ++YYCURSOR;
11281
0
    YYFILL(1);
11282
0
    yych = *YYCURSOR;
11283
0
    if (yych <= ')') {
11284
0
      if (yych <= '\n') {
11285
0
        if (yych <= 0x00) goto yy86;
11286
0
        if (yych <= '\t') goto yy738;
11287
0
        goto yy787;
11288
0
      } else {
11289
0
        if (yych == '\r') goto yy787;
11290
0
        goto yy738;
11291
0
      }
11292
0
    } 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
989
yyc_ST_LOOKING_FOR_PROPERTY:
11326
989
  {
11327
989
    static const unsigned char yybm[] = {
11328
989
        0,   0,   0,   0,   0,   0,   0,   0, 
11329
989
        0,  64,  64,   0,   0,  64,   0,   0, 
11330
989
        0,   0,   0,   0,   0,   0,   0,   0, 
11331
989
        0,   0,   0,   0,   0,   0,   0,   0, 
11332
989
       64,   0,   0,   0,   0,   0,   0,   0, 
11333
989
        0,   0,   0,   0,   0,   0,   0,   0, 
11334
989
      128, 128, 128, 128, 128, 128, 128, 128, 
11335
989
      128, 128,   0,   0,   0,   0,   0,   0, 
11336
989
        0, 128, 128, 128, 128, 128, 128, 128, 
11337
989
      128, 128, 128, 128, 128, 128, 128, 128, 
11338
989
      128, 128, 128, 128, 128, 128, 128, 128, 
11339
989
      128, 128, 128,   0,   0,   0,   0, 128, 
11340
989
        0, 128, 128, 128, 128, 128, 128, 128, 
11341
989
      128, 128, 128, 128, 128, 128, 128, 128, 
11342
989
      128, 128, 128, 128, 128, 128, 128, 128, 
11343
989
      128, 128, 128,   0,   0,   0,   0,   0, 
11344
989
      128, 128, 128, 128, 128, 128, 128, 128, 
11345
989
      128, 128, 128, 128, 128, 128, 128, 128, 
11346
989
      128, 128, 128, 128, 128, 128, 128, 128, 
11347
989
      128, 128, 128, 128, 128, 128, 128, 128, 
11348
989
      128, 128, 128, 128, 128, 128, 128, 128, 
11349
989
      128, 128, 128, 128, 128, 128, 128, 128, 
11350
989
      128, 128, 128, 128, 128, 128, 128, 128, 
11351
989
      128, 128, 128, 128, 128, 128, 128, 128, 
11352
989
      128, 128, 128, 128, 128, 128, 128, 128, 
11353
989
      128, 128, 128, 128, 128, 128, 128, 128, 
11354
989
      128, 128, 128, 128, 128, 128, 128, 128, 
11355
989
      128, 128, 128, 128, 128, 128, 128, 128, 
11356
989
      128, 128, 128, 128, 128, 128, 128, 128, 
11357
989
      128, 128, 128, 128, 128, 128, 128, 128, 
11358
989
      128, 128, 128, 128, 128, 128, 128, 128, 
11359
989
      128, 128, 128, 128, 128, 128, 128, 128, 
11360
989
    };
11361
989
    YYDEBUG(966, *YYCURSOR);
11362
989
    YYFILL(4);
11363
989
    yych = *YYCURSOR;
11364
989
    if (yybm[0+yych] & 64) {
11365
1
      goto yy970;
11366
1
    }
11367
988
    if (yych <= '?') {
11368
465
      if (yych <= '-') {
11369
230
        if (yych == '#') goto yy973;
11370
230
        if (yych >= '-') goto yy975;
11371
235
      } else {
11372
235
        if (yych == '/') goto yy976;
11373
235
        if (yych >= '?') goto yy977;
11374
235
      }
11375
523
    } else {
11376
523
      if (yych <= '_') {
11377
211
        if (yych <= '@') goto yy968;
11378
211
        if (yych <= 'Z') goto yy978;
11379
9
        if (yych >= '_') goto yy978;
11380
312
      } else {
11381
312
        if (yych <= '`') goto yy968;
11382
312
        if (yych <= 'z') goto yy978;
11383
5
        if (yych >= 0x80) goto yy978;
11384
5
      }
11385
523
    }
11386
4
yy968:
11387
4
    YYDEBUG(968, *YYCURSOR);
11388
4
    ++YYCURSOR;
11389
5
yy969:
11390
5
    YYDEBUG(969, *YYCURSOR);
11391
5
    yyleng = YYCURSOR - SCNG(yy_text);
11392
5
#line 2520 "Zend/zend_language_scanner.l"
11393
5
    {
11394
5
  yyless(0);
11395
5
  yy_pop_state();
11396
5
  goto restart;
11397
4
}
11398
0
#line 11399 "Zend/zend_language_scanner.c"
11399
1
yy970:
11400
1
    YYDEBUG(970, *YYCURSOR);
11401
1
    ++YYCURSOR;
11402
1
    YYFILL(1);
11403
1
    yych = *YYCURSOR;
11404
1
    YYDEBUG(971, *YYCURSOR);
11405
1
    if (yybm[0+yych] & 64) {
11406
0
      goto yy970;
11407
0
    }
11408
1
    YYDEBUG(972, *YYCURSOR);
11409
1
    yyleng = YYCURSOR - SCNG(yy_text);
11410
1
#line 1597 "Zend/zend_language_scanner.l"
11411
1
    {
11412
1
  goto return_whitespace;
11413
1
}
11414
0
#line 11415 "Zend/zend_language_scanner.c"
11415
0
yy973:
11416
0
    YYDEBUG(973, *YYCURSOR);
11417
0
    ++YYCURSOR;
11418
0
    YYDEBUG(974, *YYCURSOR);
11419
0
    yyleng = YYCURSOR - SCNG(yy_text);
11420
0
#line 2460 "Zend/zend_language_scanner.l"
11421
0
    {
11422
0
  while (YYCURSOR < YYLIMIT) {
11423
0
    switch (*YYCURSOR++) {
11424
0
      case '\r':
11425
0
      case '\n':
11426
0
        YYCURSOR--;
11427
0
        break;
11428
0
      case '?':
11429
0
        if (*YYCURSOR == '>') {
11430
0
          YYCURSOR--;
11431
0
          break;
11432
0
        }
11433
0
        ZEND_FALLTHROUGH;
11434
0
      default:
11435
0
        continue;
11436
0
    }
11437
11438
0
    break;
11439
0
  }
11440
11441
0
  yyleng = YYCURSOR - SCNG(yy_text);
11442
0
  RETURN_OR_SKIP_TOKEN(T_COMMENT);
11443
0
}
11444
0
#line 11445 "Zend/zend_language_scanner.c"
11445
229
yy975:
11446
229
    YYDEBUG(975, *YYCURSOR);
11447
229
    yych = *++YYCURSOR;
11448
229
    if (yych == '>') goto yy981;
11449
0
    goto yy969;
11450
0
yy976:
11451
0
    YYDEBUG(976, *YYCURSOR);
11452
0
    yych = *++YYCURSOR;
11453
0
    if (yych == '*') goto yy983;
11454
0
    if (yych == '/') goto yy973;
11455
0
    goto yy969;
11456
233
yy977:
11457
233
    YYDEBUG(977, *YYCURSOR);
11458
233
    yyaccept = 0;
11459
233
    yych = *(YYMARKER = ++YYCURSOR);
11460
233
    if (yych == '-') goto yy985;
11461
1
    goto yy969;
11462
1.61k
yy978:
11463
1.61k
    YYDEBUG(978, *YYCURSOR);
11464
1.61k
    ++YYCURSOR;
11465
1.61k
    YYFILL(1);
11466
1.61k
    yych = *YYCURSOR;
11467
1.61k
    YYDEBUG(979, *YYCURSOR);
11468
1.61k
    if (yybm[0+yych] & 128) {
11469
1.09k
      goto yy978;
11470
1.09k
    }
11471
522
    YYDEBUG(980, *YYCURSOR);
11472
522
    yyleng = YYCURSOR - SCNG(yy_text);
11473
522
#line 1609 "Zend/zend_language_scanner.l"
11474
522
    {
11475
522
  yy_pop_state();
11476
522
  RETURN_TOKEN_WITH_STR(T_STRING, 0);
11477
522
}
11478
0
#line 11479 "Zend/zend_language_scanner.c"
11479
229
yy981:
11480
229
    YYDEBUG(981, *YYCURSOR);
11481
229
    ++YYCURSOR;
11482
229
    YYDEBUG(982, *YYCURSOR);
11483
229
    yyleng = YYCURSOR - SCNG(yy_text);
11484
229
#line 1601 "Zend/zend_language_scanner.l"
11485
229
    {
11486
229
  RETURN_TOKEN(T_OBJECT_OPERATOR);
11487
229
}
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
232
yy985:
11535
232
    YYDEBUG(985, *YYCURSOR);
11536
232
    yych = *++YYCURSOR;
11537
232
    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
232
yy988:
11559
232
    YYDEBUG(988, *YYCURSOR);
11560
232
    ++YYCURSOR;
11561
232
    YYDEBUG(989, *YYCURSOR);
11562
232
    yyleng = YYCURSOR - SCNG(yy_text);
11563
232
#line 1605 "Zend/zend_language_scanner.l"
11564
232
    {
11565
232
  RETURN_TOKEN(T_NULLSAFE_OBJECT_OPERATOR);
11566
232
}
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
132
yyc_ST_BACKQUOTE:
11586
132
  {
11587
132
    static const unsigned char yybm[] = {
11588
132
        0,   0,   0,   0,   0,   0,   0,   0, 
11589
132
        0,   0,   0,   0,   0,   0,   0,   0, 
11590
132
        0,   0,   0,   0,   0,   0,   0,   0, 
11591
132
        0,   0,   0,   0,   0,   0,   0,   0, 
11592
132
        0,   0,   0,   0,   0,   0,   0,   0, 
11593
132
        0,   0,   0,   0,   0,   0,   0,   0, 
11594
132
      128, 128, 128, 128, 128, 128, 128, 128, 
11595
132
      128, 128,   0,   0,   0,   0,   0,   0, 
11596
132
        0, 128, 128, 128, 128, 128, 128, 128, 
11597
132
      128, 128, 128, 128, 128, 128, 128, 128, 
11598
132
      128, 128, 128, 128, 128, 128, 128, 128, 
11599
132
      128, 128, 128,   0,   0,   0,   0, 128, 
11600
132
        0, 128, 128, 128, 128, 128, 128, 128, 
11601
132
      128, 128, 128, 128, 128, 128, 128, 128, 
11602
132
      128, 128, 128, 128, 128, 128, 128, 128, 
11603
132
      128, 128, 128,   0,   0,   0,   0,   0, 
11604
132
      128, 128, 128, 128, 128, 128, 128, 128, 
11605
132
      128, 128, 128, 128, 128, 128, 128, 128, 
11606
132
      128, 128, 128, 128, 128, 128, 128, 128, 
11607
132
      128, 128, 128, 128, 128, 128, 128, 128, 
11608
132
      128, 128, 128, 128, 128, 128, 128, 128, 
11609
132
      128, 128, 128, 128, 128, 128, 128, 128, 
11610
132
      128, 128, 128, 128, 128, 128, 128, 128, 
11611
132
      128, 128, 128, 128, 128, 128, 128, 128, 
11612
132
      128, 128, 128, 128, 128, 128, 128, 128, 
11613
132
      128, 128, 128, 128, 128, 128, 128, 128, 
11614
132
      128, 128, 128, 128, 128, 128, 128, 128, 
11615
132
      128, 128, 128, 128, 128, 128, 128, 128, 
11616
132
      128, 128, 128, 128, 128, 128, 128, 128, 
11617
132
      128, 128, 128, 128, 128, 128, 128, 128, 
11618
132
      128, 128, 128, 128, 128, 128, 128, 128, 
11619
132
      128, 128, 128, 128, 128, 128, 128, 128, 
11620
132
    };
11621
132
    YYDEBUG(992, *YYCURSOR);
11622
132
    YYFILL(2);
11623
132
    yych = *YYCURSOR;
11624
132
    if (yych <= '_') {
11625
127
      if (yych == '$') goto yy996;
11626
127
    } else {
11627
5
      if (yych <= '`') goto yy997;
11628
2
      if (yych == '{') goto yy999;
11629
2
    }
11630
68
    YYDEBUG(994, *YYCURSOR);
11631
68
    ++YYCURSOR;
11632
68
yy995:
11633
68
    YYDEBUG(995, *YYCURSOR);
11634
68
    yyleng = YYCURSOR - SCNG(yy_text);
11635
68
#line 2919 "Zend/zend_language_scanner.l"
11636
68
    {
11637
68
  if (YYCURSOR > YYLIMIT) {
11638
2
    RETURN_END_TOKEN;
11639
2
  }
11640
66
  if (yytext[0] == '\\' && YYCURSOR < YYLIMIT) {
11641
0
    YYCURSOR++;
11642
0
  }
11643
11644
3.54k
  while (YYCURSOR < YYLIMIT) {
11645
3.53k
    switch (*YYCURSOR++) {
11646
3
      case '`':
11647
3
        break;
11648
69
      case '$':
11649
69
        if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
11650
61
          break;
11651
61
        }
11652
8
        continue;
11653
28
      case '{':
11654
28
        if (*YYCURSOR == '$') {
11655
0
          break;
11656
0
        }
11657
28
        continue;
11658
28
      case '\\':
11659
4
        if (YYCURSOR < YYLIMIT) {
11660
4
          YYCURSOR++;
11661
4
        }
11662
4
        ZEND_FALLTHROUGH;
11663
3.43k
      default:
11664
3.43k
        continue;
11665
3.53k
    }
11666
11667
64
    YYCURSOR--;
11668
64
    break;
11669
3.53k
  }
11670
11671
66
  yyleng = YYCURSOR - SCNG(yy_text);
11672
11673
66
  if (EXPECTED(zend_scan_escape_string(zendlval, yytext, yyleng, '`') == SUCCESS)
11674
66
   || !PARSER_MODE()) {
11675
66
    RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
11676
66
  } else {
11677
0
    RETURN_TOKEN(T_ERROR);
11678
0
  }
11679
66
}
11680
0
#line 11681 "Zend/zend_language_scanner.c"
11681
61
yy996:
11682
61
    YYDEBUG(996, *YYCURSOR);
11683
61
    yych = *++YYCURSOR;
11684
61
    if (yych <= '_') {
11685
11
      if (yych <= '@') goto yy995;
11686
11
      if (yych <= 'Z') goto yy1000;
11687
6
      if (yych <= '^') goto yy995;
11688
6
      goto yy1000;
11689
50
    } else {
11690
50
      if (yych <= 'z') {
11691
46
        if (yych <= '`') goto yy995;
11692
46
        goto yy1000;
11693
46
      } else {
11694
4
        if (yych <= '{') goto yy1003;
11695
2
        if (yych <= 0x7F) goto yy995;
11696
2
        goto yy1000;
11697
2
      }
11698
50
    }
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
318
yy1000:
11716
318
    YYDEBUG(1000, *YYCURSOR);
11717
318
    YYMARKER = ++YYCURSOR;
11718
318
    YYFILL(4);
11719
318
    yych = *YYCURSOR;
11720
318
    YYDEBUG(1001, *YYCURSOR);
11721
318
    if (yybm[0+yych] & 128) {
11722
259
      goto yy1000;
11723
259
    }
11724
59
    if (yych <= '>') {
11725
58
      if (yych == '-') goto yy1007;
11726
58
    } else {
11727
1
      if (yych <= '?') goto yy1009;
11728
1
      if (yych <= '@') goto yy1002;
11729
1
      if (yych <= '[') goto yy1010;
11730
1
    }
11731
51
yy1002:
11732
51
    YYDEBUG(1002, *YYCURSOR);
11733
51
    yyleng = YYCURSOR - SCNG(yy_text);
11734
51
#line 2417 "Zend/zend_language_scanner.l"
11735
51
    {
11736
51
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
11737
51
}
11738
0
#line 11739 "Zend/zend_language_scanner.c"
11739
2
yy1003:
11740
2
    YYDEBUG(1003, *YYCURSOR);
11741
2
    ++YYCURSOR;
11742
2
    YYDEBUG(1004, *YYCURSOR);
11743
2
    yyleng = YYCURSOR - SCNG(yy_text);
11744
2
#line 1981 "Zend/zend_language_scanner.l"
11745
2
    {
11746
2
  yy_push_state(ST_LOOKING_FOR_VARNAME);
11747
2
  enter_nesting('{');
11748
2
  RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES);
11749
2
}
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
9
yy1007:
11765
9
    YYDEBUG(1007, *YYCURSOR);
11766
9
    yych = *++YYCURSOR;
11767
9
    if (yych == '>') goto yy1012;
11768
2
yy1008:
11769
2
    YYDEBUG(1008, *YYCURSOR);
11770
2
    YYCURSOR = YYMARKER;
11771
2
    goto yy1002;
11772
0
yy1009:
11773
0
    YYDEBUG(1009, *YYCURSOR);
11774
0
    yych = *++YYCURSOR;
11775
0
    if (yych == '-') goto yy1013;
11776
0
    goto yy1008;
11777
1
yy1010:
11778
1
    YYDEBUG(1010, *YYCURSOR);
11779
1
    ++YYCURSOR;
11780
1
    YYDEBUG(1011, *YYCURSOR);
11781
1
    yyleng = YYCURSOR - SCNG(yy_text);
11782
1
#line 2411 "Zend/zend_language_scanner.l"
11783
1
    {
11784
1
  yyless(yyleng - 1);
11785
1
  yy_push_state(ST_VAR_OFFSET);
11786
1
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
11787
1
}
11788
0
#line 11789 "Zend/zend_language_scanner.c"
11789
9
yy1012:
11790
9
    YYDEBUG(1012, *YYCURSOR);
11791
9
    yych = *++YYCURSOR;
11792
9
    if (yych <= '_') {
11793
8
      if (yych <= '@') goto yy1008;
11794
6
      if (yych <= 'Z') goto yy1014;
11795
6
      if (yych <= '^') goto yy1008;
11796
6
      goto yy1014;
11797
6
    } else {
11798
1
      if (yych <= '`') goto yy1008;
11799
1
      if (yych <= 'z') goto yy1014;
11800
0
      if (yych <= 0x7F) goto yy1008;
11801
0
      goto yy1014;
11802
0
    }
11803
0
yy1013:
11804
0
    YYDEBUG(1013, *YYCURSOR);
11805
0
    yych = *++YYCURSOR;
11806
0
    if (yych == '>') goto yy1016;
11807
0
    goto yy1008;
11808
7
yy1014:
11809
7
    YYDEBUG(1014, *YYCURSOR);
11810
7
    ++YYCURSOR;
11811
7
    YYDEBUG(1015, *YYCURSOR);
11812
7
    yyleng = YYCURSOR - SCNG(yy_text);
11813
7
#line 2397 "Zend/zend_language_scanner.l"
11814
7
    {
11815
7
  yyless(yyleng - 3);
11816
7
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
11817
7
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
11818
7
}
11819
0
#line 11820 "Zend/zend_language_scanner.c"
11820
0
yy1016:
11821
0
    YYDEBUG(1016, *YYCURSOR);
11822
0
    yych = *++YYCURSOR;
11823
0
    if (yych <= '_') {
11824
0
      if (yych <= '@') goto yy1008;
11825
0
      if (yych <= 'Z') goto yy1017;
11826
0
      if (yych <= '^') goto yy1008;
11827
0
    } else {
11828
0
      if (yych <= '`') goto yy1008;
11829
0
      if (yych <= 'z') goto yy1017;
11830
0
      if (yych <= 0x7F) goto yy1008;
11831
0
    }
11832
0
yy1017:
11833
0
    YYDEBUG(1017, *YYCURSOR);
11834
0
    ++YYCURSOR;
11835
0
    YYDEBUG(1018, *YYCURSOR);
11836
0
    yyleng = YYCURSOR - SCNG(yy_text);
11837
0
#line 2403 "Zend/zend_language_scanner.l"
11838
0
    {
11839
0
  yyless(yyleng - 4);
11840
0
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
11841
0
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
11842
0
}
11843
0
#line 11844 "Zend/zend_language_scanner.c"
11844
0
  }
11845
/* *********************************** */
11846
2.40k
yyc_ST_DOUBLE_QUOTES:
11847
2.40k
  {
11848
2.40k
    static const unsigned char yybm[] = {
11849
2.40k
        0,   0,   0,   0,   0,   0,   0,   0, 
11850
2.40k
        0,   0,   0,   0,   0,   0,   0,   0, 
11851
2.40k
        0,   0,   0,   0,   0,   0,   0,   0, 
11852
2.40k
        0,   0,   0,   0,   0,   0,   0,   0, 
11853
2.40k
        0,   0,   0,   0,   0,   0,   0,   0, 
11854
2.40k
        0,   0,   0,   0,   0,   0,   0,   0, 
11855
2.40k
      128, 128, 128, 128, 128, 128, 128, 128, 
11856
2.40k
      128, 128,   0,   0,   0,   0,   0,   0, 
11857
2.40k
        0, 128, 128, 128, 128, 128, 128, 128, 
11858
2.40k
      128, 128, 128, 128, 128, 128, 128, 128, 
11859
2.40k
      128, 128, 128, 128, 128, 128, 128, 128, 
11860
2.40k
      128, 128, 128,   0,   0,   0,   0, 128, 
11861
2.40k
        0, 128, 128, 128, 128, 128, 128, 128, 
11862
2.40k
      128, 128, 128, 128, 128, 128, 128, 128, 
11863
2.40k
      128, 128, 128, 128, 128, 128, 128, 128, 
11864
2.40k
      128, 128, 128,   0,   0,   0,   0,   0, 
11865
2.40k
      128, 128, 128, 128, 128, 128, 128, 128, 
11866
2.40k
      128, 128, 128, 128, 128, 128, 128, 128, 
11867
2.40k
      128, 128, 128, 128, 128, 128, 128, 128, 
11868
2.40k
      128, 128, 128, 128, 128, 128, 128, 128, 
11869
2.40k
      128, 128, 128, 128, 128, 128, 128, 128, 
11870
2.40k
      128, 128, 128, 128, 128, 128, 128, 128, 
11871
2.40k
      128, 128, 128, 128, 128, 128, 128, 128, 
11872
2.40k
      128, 128, 128, 128, 128, 128, 128, 128, 
11873
2.40k
      128, 128, 128, 128, 128, 128, 128, 128, 
11874
2.40k
      128, 128, 128, 128, 128, 128, 128, 128, 
11875
2.40k
      128, 128, 128, 128, 128, 128, 128, 128, 
11876
2.40k
      128, 128, 128, 128, 128, 128, 128, 128, 
11877
2.40k
      128, 128, 128, 128, 128, 128, 128, 128, 
11878
2.40k
      128, 128, 128, 128, 128, 128, 128, 128, 
11879
2.40k
      128, 128, 128, 128, 128, 128, 128, 128, 
11880
2.40k
      128, 128, 128, 128, 128, 128, 128, 128, 
11881
2.40k
    };
11882
2.40k
    YYDEBUG(1019, *YYCURSOR);
11883
2.40k
    YYFILL(2);
11884
2.40k
    yych = *YYCURSOR;
11885
2.40k
    if (yych <= '#') {
11886
155
      if (yych == '"') goto yy1023;
11887
2.24k
    } else {
11888
2.24k
      if (yych <= '$') goto yy1025;
11889
1.09k
      if (yych == '{') goto yy1026;
11890
1.09k
    }
11891
1.18k
    YYDEBUG(1021, *YYCURSOR);
11892
1.18k
    ++YYCURSOR;
11893
1.19k
yy1022:
11894
1.19k
    YYDEBUG(1022, *YYCURSOR);
11895
1.19k
    yyleng = YYCURSOR - SCNG(yy_text);
11896
1.19k
#line 2865 "Zend/zend_language_scanner.l"
11897
1.19k
    {
11898
1.19k
  if (GET_DOUBLE_QUOTES_SCANNED_LENGTH()) {
11899
74
    YYCURSOR += GET_DOUBLE_QUOTES_SCANNED_LENGTH() - 1;
11900
74
    SET_DOUBLE_QUOTES_SCANNED_LENGTH(0);
11901
11902
74
    goto double_quotes_scan_done;
11903
74
  }
11904
11905
1.12k
  if (YYCURSOR > YYLIMIT) {
11906
10
    RETURN_END_TOKEN;
11907
10
  }
11908
1.11k
  if (yytext[0] == '\\' && YYCURSOR < YYLIMIT) {
11909
2
    YYCURSOR++;
11910
2
  }
11911
11912
26.8k
  while (YYCURSOR < YYLIMIT) {
11913
26.8k
    switch (*YYCURSOR++) {
11914
41
      case '"':
11915
41
        break;
11916
1.15k
      case '$':
11917
1.15k
        if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
11918
1.07k
          break;
11919
1.07k
        }
11920
87
        continue;
11921
87
      case '{':
11922
14
        if (*YYCURSOR == '$') {
11923
1
          break;
11924
1
        }
11925
13
        continue;
11926
13
      case '\\':
11927
6
        if (YYCURSOR < YYLIMIT) {
11928
6
          YYCURSOR++;
11929
6
        }
11930
6
        ZEND_FALLTHROUGH;
11931
25.6k
      default:
11932
25.6k
        continue;
11933
26.8k
    }
11934
11935
1.11k
    YYCURSOR--;
11936
1.11k
    break;
11937
26.8k
  }
11938
11939
1.18k
double_quotes_scan_done:
11940
1.18k
  yyleng = YYCURSOR - SCNG(yy_text);
11941
11942
1.18k
  if (EXPECTED(zend_scan_escape_string(zendlval, yytext, yyleng, '"') == SUCCESS)
11943
1.18k
   || !PARSER_MODE()) {
11944
1.18k
    RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
11945
1.18k
  } else {
11946
0
    RETURN_TOKEN(T_ERROR);
11947
0
  }
11948
1.18k
}
11949
0
#line 11950 "Zend/zend_language_scanner.c"
11950
51
yy1023:
11951
51
    YYDEBUG(1023, *YYCURSOR);
11952
51
    ++YYCURSOR;
11953
51
    YYDEBUG(1024, *YYCURSOR);
11954
51
    yyleng = YYCURSOR - SCNG(yy_text);
11955
51
#line 2854 "Zend/zend_language_scanner.l"
11956
51
    {
11957
51
  BEGIN(ST_IN_SCRIPTING);
11958
51
  RETURN_TOKEN('"');
11959
51
}
11960
0
#line 11961 "Zend/zend_language_scanner.c"
11961
1.15k
yy1025:
11962
1.15k
    YYDEBUG(1025, *YYCURSOR);
11963
1.15k
    yych = *++YYCURSOR;
11964
1.15k
    if (yych <= '_') {
11965
4
      if (yych <= '@') goto yy1022;
11966
4
      if (yych <= 'Z') goto yy1027;
11967
0
      if (yych <= '^') goto yy1022;
11968
0
      goto yy1027;
11969
1.14k
    } else {
11970
1.14k
      if (yych <= 'z') {
11971
1.12k
        if (yych <= '`') goto yy1022;
11972
1.12k
        goto yy1027;
11973
1.12k
      } else {
11974
21
        if (yych <= '{') goto yy1030;
11975
9
        if (yych <= 0x7F) goto yy1022;
11976
9
        goto yy1027;
11977
9
      }
11978
1.14k
    }
11979
12
yy1026:
11980
12
    YYDEBUG(1026, *YYCURSOR);
11981
12
    yych = *++YYCURSOR;
11982
12
    if (yych == '$') goto yy1032;
11983
10
    goto yy1022;
11984
3.31k
yy1027:
11985
3.31k
    YYDEBUG(1027, *YYCURSOR);
11986
3.31k
    YYMARKER = ++YYCURSOR;
11987
3.31k
    YYFILL(4);
11988
3.31k
    yych = *YYCURSOR;
11989
3.31k
    YYDEBUG(1028, *YYCURSOR);
11990
3.31k
    if (yybm[0+yych] & 128) {
11991
2.17k
      goto yy1027;
11992
2.17k
    }
11993
1.13k
    if (yych <= '>') {
11994
450
      if (yych == '-') goto yy1034;
11995
689
    } else {
11996
689
      if (yych <= '?') goto yy1036;
11997
9
      if (yych <= '@') goto yy1029;
11998
9
      if (yych <= '[') goto yy1037;
11999
9
    }
12000
684
yy1029:
12001
684
    YYDEBUG(1029, *YYCURSOR);
12002
684
    yyleng = YYCURSOR - SCNG(yy_text);
12003
684
#line 2417 "Zend/zend_language_scanner.l"
12004
684
    {
12005
684
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12006
684
}
12007
0
#line 12008 "Zend/zend_language_scanner.c"
12008
12
yy1030:
12009
12
    YYDEBUG(1030, *YYCURSOR);
12010
12
    ++YYCURSOR;
12011
12
    YYDEBUG(1031, *YYCURSOR);
12012
12
    yyleng = YYCURSOR - SCNG(yy_text);
12013
12
#line 1981 "Zend/zend_language_scanner.l"
12014
12
    {
12015
12
  yy_push_state(ST_LOOKING_FOR_VARNAME);
12016
12
  enter_nesting('{');
12017
12
  RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES);
12018
12
}
12019
0
#line 12020 "Zend/zend_language_scanner.c"
12020
2
yy1032:
12021
2
    YYDEBUG(1032, *YYCURSOR);
12022
2
    ++YYCURSOR;
12023
2
    YYDEBUG(1033, *YYCURSOR);
12024
2
    yyleng = YYCURSOR - SCNG(yy_text);
12025
2
#line 2846 "Zend/zend_language_scanner.l"
12026
2
    {
12027
2
  yy_push_state(ST_IN_SCRIPTING);
12028
2
  yyless(1);
12029
2
  enter_nesting('{');
12030
2
  RETURN_TOKEN(T_CURLY_OPEN);
12031
2
}
12032
0
#line 12033 "Zend/zend_language_scanner.c"
12033
243
yy1034:
12034
243
    YYDEBUG(1034, *YYCURSOR);
12035
243
    yych = *++YYCURSOR;
12036
243
    if (yych == '>') goto yy1039;
12037
469
yy1035:
12038
469
    YYDEBUG(1035, *YYCURSOR);
12039
469
    YYCURSOR = YYMARKER;
12040
469
    goto yy1029;
12041
680
yy1036:
12042
680
    YYDEBUG(1036, *YYCURSOR);
12043
680
    yych = *++YYCURSOR;
12044
680
    if (yych == '-') goto yy1040;
12045
414
    goto yy1035;
12046
414
yy1037:
12047
1
    YYDEBUG(1037, *YYCURSOR);
12048
1
    ++YYCURSOR;
12049
1
    YYDEBUG(1038, *YYCURSOR);
12050
1
    yyleng = YYCURSOR - SCNG(yy_text);
12051
1
#line 2411 "Zend/zend_language_scanner.l"
12052
1
    {
12053
1
  yyless(yyleng - 1);
12054
1
  yy_push_state(ST_VAR_OFFSET);
12055
1
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12056
1
}
12057
0
#line 12058 "Zend/zend_language_scanner.c"
12058
229
yy1039:
12059
229
    YYDEBUG(1039, *YYCURSOR);
12060
229
    yych = *++YYCURSOR;
12061
229
    if (yych <= '_') {
12062
208
      if (yych <= '@') goto yy1035;
12063
202
      if (yych <= 'Z') goto yy1041;
12064
0
      if (yych <= '^') goto yy1035;
12065
0
      goto yy1041;
12066
21
    } else {
12067
21
      if (yych <= '`') goto yy1035;
12068
21
      if (yych <= 'z') goto yy1041;
12069
3
      if (yych <= 0x7F) goto yy1035;
12070
2
      goto yy1041;
12071
3
    }
12072
266
yy1040:
12073
266
    YYDEBUG(1040, *YYCURSOR);
12074
266
    yych = *++YYCURSOR;
12075
266
    if (yych == '>') goto yy1043;
12076
23
    goto yy1035;
12077
222
yy1041:
12078
222
    YYDEBUG(1041, *YYCURSOR);
12079
222
    ++YYCURSOR;
12080
222
    YYDEBUG(1042, *YYCURSOR);
12081
222
    yyleng = YYCURSOR - SCNG(yy_text);
12082
222
#line 2397 "Zend/zend_language_scanner.l"
12083
222
    {
12084
222
  yyless(yyleng - 3);
12085
222
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
12086
222
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12087
222
}
12088
0
#line 12089 "Zend/zend_language_scanner.c"
12089
243
yy1043:
12090
243
    YYDEBUG(1043, *YYCURSOR);
12091
243
    yych = *++YYCURSOR;
12092
243
    if (yych <= '_') {
12093
11
      if (yych <= '@') goto yy1035;
12094
10
      if (yych <= 'Z') goto yy1044;
12095
10
      if (yych <= '^') goto yy1035;
12096
232
    } else {
12097
232
      if (yych <= '`') goto yy1035;
12098
232
      if (yych <= 'z') goto yy1044;
12099
2
      if (yych <= 0x7F) goto yy1035;
12100
2
    }
12101
232
yy1044:
12102
232
    YYDEBUG(1044, *YYCURSOR);
12103
232
    ++YYCURSOR;
12104
232
    YYDEBUG(1045, *YYCURSOR);
12105
232
    yyleng = YYCURSOR - SCNG(yy_text);
12106
232
#line 2403 "Zend/zend_language_scanner.l"
12107
232
    {
12108
232
  yyless(yyleng - 4);
12109
232
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
12110
232
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12111
232
}
12112
232
#line 12113 "Zend/zend_language_scanner.c"
12113
232
  }
12114
/* *********************************** */
12115
102
yyc_ST_HEREDOC:
12116
102
  {
12117
102
    static const unsigned char yybm[] = {
12118
102
        0,   0,   0,   0,   0,   0,   0,   0, 
12119
102
        0,   0,   0,   0,   0,   0,   0,   0, 
12120
102
        0,   0,   0,   0,   0,   0,   0,   0, 
12121
102
        0,   0,   0,   0,   0,   0,   0,   0, 
12122
102
        0,   0,   0,   0,   0,   0,   0,   0, 
12123
102
        0,   0,   0,   0,   0,   0,   0,   0, 
12124
102
      128, 128, 128, 128, 128, 128, 128, 128, 
12125
102
      128, 128,   0,   0,   0,   0,   0,   0, 
12126
102
        0, 128, 128, 128, 128, 128, 128, 128, 
12127
102
      128, 128, 128, 128, 128, 128, 128, 128, 
12128
102
      128, 128, 128, 128, 128, 128, 128, 128, 
12129
102
      128, 128, 128,   0,   0,   0,   0, 128, 
12130
102
        0, 128, 128, 128, 128, 128, 128, 128, 
12131
102
      128, 128, 128, 128, 128, 128, 128, 128, 
12132
102
      128, 128, 128, 128, 128, 128, 128, 128, 
12133
102
      128, 128, 128,   0,   0,   0,   0,   0, 
12134
102
      128, 128, 128, 128, 128, 128, 128, 128, 
12135
102
      128, 128, 128, 128, 128, 128, 128, 128, 
12136
102
      128, 128, 128, 128, 128, 128, 128, 128, 
12137
102
      128, 128, 128, 128, 128, 128, 128, 128, 
12138
102
      128, 128, 128, 128, 128, 128, 128, 128, 
12139
102
      128, 128, 128, 128, 128, 128, 128, 128, 
12140
102
      128, 128, 128, 128, 128, 128, 128, 128, 
12141
102
      128, 128, 128, 128, 128, 128, 128, 128, 
12142
102
      128, 128, 128, 128, 128, 128, 128, 128, 
12143
102
      128, 128, 128, 128, 128, 128, 128, 128, 
12144
102
      128, 128, 128, 128, 128, 128, 128, 128, 
12145
102
      128, 128, 128, 128, 128, 128, 128, 128, 
12146
102
      128, 128, 128, 128, 128, 128, 128, 128, 
12147
102
      128, 128, 128, 128, 128, 128, 128, 128, 
12148
102
      128, 128, 128, 128, 128, 128, 128, 128, 
12149
102
      128, 128, 128, 128, 128, 128, 128, 128, 
12150
102
    };
12151
102
    YYDEBUG(1046, *YYCURSOR);
12152
102
    YYFILL(2);
12153
102
    yych = *YYCURSOR;
12154
102
    if (yych == '$') goto yy1050;
12155
51
    if (yych == '{') goto yy1051;
12156
51
    YYDEBUG(1048, *YYCURSOR);
12157
51
    ++YYCURSOR;
12158
51
yy1049:
12159
51
    YYDEBUG(1049, *YYCURSOR);
12160
51
    yyleng = YYCURSOR - SCNG(yy_text);
12161
51
#line 2965 "Zend/zend_language_scanner.l"
12162
51
    {
12163
51
  zend_heredoc_label *heredoc_label = zend_ptr_stack_top(&SCNG(heredoc_label_stack));
12164
51
  int newline = 0, indentation = 0, spacing = 0;
12165
12166
51
  if (YYCURSOR > YYLIMIT) {
12167
0
    RETURN_END_TOKEN;
12168
0
  }
12169
12170
51
  YYCURSOR--;
12171
12172
2.93k
  while (YYCURSOR < YYLIMIT) {
12173
2.93k
    switch (*YYCURSOR++) {
12174
18
      case '\r':
12175
18
        if (*YYCURSOR == '\n') {
12176
0
          YYCURSOR++;
12177
0
        }
12178
18
        ZEND_FALLTHROUGH;
12179
79
      case '\n':
12180
79
        indentation = spacing = 0;
12181
12182
131
        while (YYCURSOR < YYLIMIT && (*YYCURSOR == ' ' || *YYCURSOR == '\t')) {
12183
52
          if (*YYCURSOR == '\t') {
12184
0
            spacing |= HEREDOC_USING_TABS;
12185
52
          } else {
12186
52
            spacing |= HEREDOC_USING_SPACES;
12187
52
          }
12188
52
          ++YYCURSOR;
12189
52
          ++indentation;
12190
52
        }
12191
12192
79
        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
79
        if (IS_LABEL_START(*YYCURSOR) && heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, heredoc_label->label, heredoc_label->length)) {
12201
0
          if (IS_LABEL_SUCCESSOR(YYCURSOR[heredoc_label->length])) {
12202
0
            continue;
12203
0
          }
12204
12205
0
          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
0
          if (YYCURSOR[-indentation - 2] == '\r' && YYCURSOR[-indentation - 1] == '\n') {
12215
0
            newline = 2; /* Windows newline */
12216
0
          } else {
12217
0
            newline = 1;
12218
0
          }
12219
12220
0
          CG(increment_lineno) = 1; /* For newline before label */
12221
12222
0
          if (SCNG(heredoc_scan_ahead)) {
12223
0
            SCNG(heredoc_indentation) = indentation;
12224
0
            SCNG(heredoc_indentation_uses_spaces) = (spacing == HEREDOC_USING_SPACES);
12225
0
          } else {
12226
0
            YYCURSOR -= indentation;
12227
0
          }
12228
12229
0
          BEGIN(ST_END_HEREDOC);
12230
12231
0
          goto heredoc_scan_done;
12232
0
        }
12233
79
        continue;
12234
265
      case '$':
12235
265
        if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
12236
51
          break;
12237
51
        }
12238
214
        continue;
12239
214
      case '{':
12240
16
        if (*YYCURSOR == '$') {
12241
0
          break;
12242
0
        }
12243
16
        continue;
12244
16
      case '\\':
12245
0
        if (YYCURSOR < YYLIMIT && *YYCURSOR != '\n' && *YYCURSOR != '\r') {
12246
0
          YYCURSOR++;
12247
0
        }
12248
0
        ZEND_FALLTHROUGH;
12249
2.57k
      default:
12250
2.57k
        continue;
12251
2.93k
    }
12252
12253
51
    YYCURSOR--;
12254
51
    break;
12255
2.93k
  }
12256
12257
51
heredoc_scan_done:
12258
12259
51
  yyleng = YYCURSOR - SCNG(yy_text);
12260
51
  ZVAL_STRINGL(zendlval, yytext, yyleng - newline);
12261
12262
51
  if (!SCNG(heredoc_scan_ahead) && !EG(exception) && PARSER_MODE()) {
12263
0
    bool newline_at_start = *(yytext - 1) == '\n' || *(yytext - 1) == '\r';
12264
0
    zend_string *copy = Z_STR_P(zendlval);
12265
12266
0
    if (!strip_multiline_string_indentation(
12267
0
        zendlval, heredoc_label->indentation, heredoc_label->indentation_uses_spaces,
12268
0
        newline_at_start, newline != 0)) {
12269
0
      RETURN_TOKEN(T_ERROR);
12270
0
    }
12271
12272
0
    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
0
    zend_string_efree(copy);
12278
51
  } else {
12279
51
    HANDLE_NEWLINES(yytext, yyleng - newline);
12280
51
  }
12281
12282
51
  RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
12283
51
}
12284
0
#line 12285 "Zend/zend_language_scanner.c"
12285
51
yy1050:
12286
51
    YYDEBUG(1050, *YYCURSOR);
12287
51
    yych = *++YYCURSOR;
12288
51
    if (yych <= '_') {
12289
0
      if (yych <= '@') goto yy1049;
12290
0
      if (yych <= 'Z') goto yy1052;
12291
0
      if (yych <= '^') goto yy1049;
12292
0
      goto yy1052;
12293
51
    } else {
12294
51
      if (yych <= 'z') {
12295
22
        if (yych <= '`') goto yy1049;
12296
22
        goto yy1052;
12297
29
      } else {
12298
29
        if (yych <= '{') goto yy1055;
12299
0
        if (yych <= 0x7F) goto yy1049;
12300
0
        goto yy1052;
12301
0
      }
12302
51
    }
12303
0
yy1051:
12304
0
    YYDEBUG(1051, *YYCURSOR);
12305
0
    yych = *++YYCURSOR;
12306
0
    if (yych == '$') goto yy1057;
12307
0
    goto yy1049;
12308
24
yy1052:
12309
24
    YYDEBUG(1052, *YYCURSOR);
12310
24
    YYMARKER = ++YYCURSOR;
12311
24
    YYFILL(4);
12312
24
    yych = *YYCURSOR;
12313
24
    YYDEBUG(1053, *YYCURSOR);
12314
24
    if (yybm[0+yych] & 128) {
12315
2
      goto yy1052;
12316
2
    }
12317
22
    if (yych <= '>') {
12318
22
      if (yych == '-') goto yy1059;
12319
22
    } else {
12320
0
      if (yych <= '?') goto yy1061;
12321
0
      if (yych <= '@') goto yy1054;
12322
0
      if (yych <= '[') goto yy1062;
12323
0
    }
12324
22
yy1054:
12325
22
    YYDEBUG(1054, *YYCURSOR);
12326
22
    yyleng = YYCURSOR - SCNG(yy_text);
12327
22
#line 2417 "Zend/zend_language_scanner.l"
12328
22
    {
12329
22
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12330
22
}
12331
0
#line 12332 "Zend/zend_language_scanner.c"
12332
29
yy1055:
12333
29
    YYDEBUG(1055, *YYCURSOR);
12334
29
    ++YYCURSOR;
12335
29
    YYDEBUG(1056, *YYCURSOR);
12336
29
    yyleng = YYCURSOR - SCNG(yy_text);
12337
29
#line 1981 "Zend/zend_language_scanner.l"
12338
29
    {
12339
29
  yy_push_state(ST_LOOKING_FOR_VARNAME);
12340
29
  enter_nesting('{');
12341
29
  RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES);
12342
29
}
12343
0
#line 12344 "Zend/zend_language_scanner.c"
12344
0
yy1057:
12345
0
    YYDEBUG(1057, *YYCURSOR);
12346
0
    ++YYCURSOR;
12347
0
    YYDEBUG(1058, *YYCURSOR);
12348
0
    yyleng = YYCURSOR - SCNG(yy_text);
12349
0
#line 2846 "Zend/zend_language_scanner.l"
12350
0
    {
12351
0
  yy_push_state(ST_IN_SCRIPTING);
12352
0
  yyless(1);
12353
0
  enter_nesting('{');
12354
0
  RETURN_TOKEN(T_CURLY_OPEN);
12355
0
}
12356
0
#line 12357 "Zend/zend_language_scanner.c"
12357
8
yy1059:
12358
8
    YYDEBUG(1059, *YYCURSOR);
12359
8
    yych = *++YYCURSOR;
12360
8
    if (yych == '>') goto yy1064;
12361
8
yy1060:
12362
8
    YYDEBUG(1060, *YYCURSOR);
12363
8
    YYCURSOR = YYMARKER;
12364
8
    goto yy1054;
12365
0
yy1061:
12366
0
    YYDEBUG(1061, *YYCURSOR);
12367
0
    yych = *++YYCURSOR;
12368
0
    if (yych == '-') goto yy1065;
12369
0
    goto yy1060;
12370
0
yy1062:
12371
0
    YYDEBUG(1062, *YYCURSOR);
12372
0
    ++YYCURSOR;
12373
0
    YYDEBUG(1063, *YYCURSOR);
12374
0
    yyleng = YYCURSOR - SCNG(yy_text);
12375
0
#line 2411 "Zend/zend_language_scanner.l"
12376
0
    {
12377
0
  yyless(yyleng - 1);
12378
0
  yy_push_state(ST_VAR_OFFSET);
12379
0
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12380
0
}
12381
0
#line 12382 "Zend/zend_language_scanner.c"
12382
0
yy1064:
12383
0
    YYDEBUG(1064, *YYCURSOR);
12384
0
    yych = *++YYCURSOR;
12385
0
    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
0
    } else {
12391
0
      if (yych <= '`') goto yy1060;
12392
0
      if (yych <= 'z') goto yy1066;
12393
0
      if (yych <= 0x7F) goto yy1060;
12394
0
      goto yy1066;
12395
0
    }
12396
0
yy1065:
12397
0
    YYDEBUG(1065, *YYCURSOR);
12398
0
    yych = *++YYCURSOR;
12399
0
    if (yych == '>') goto yy1068;
12400
0
    goto yy1060;
12401
0
yy1066:
12402
0
    YYDEBUG(1066, *YYCURSOR);
12403
0
    ++YYCURSOR;
12404
0
    YYDEBUG(1067, *YYCURSOR);
12405
0
    yyleng = YYCURSOR - SCNG(yy_text);
12406
0
#line 2397 "Zend/zend_language_scanner.l"
12407
0
    {
12408
0
  yyless(yyleng - 3);
12409
0
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
12410
0
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12411
0
}
12412
0
#line 12413 "Zend/zend_language_scanner.c"
12413
0
yy1068:
12414
0
    YYDEBUG(1068, *YYCURSOR);
12415
0
    yych = *++YYCURSOR;
12416
0
    if (yych <= '_') {
12417
0
      if (yych <= '@') goto yy1060;
12418
0
      if (yych <= 'Z') goto yy1069;
12419
0
      if (yych <= '^') goto yy1060;
12420
0
    } else {
12421
0
      if (yych <= '`') goto yy1060;
12422
0
      if (yych <= 'z') goto yy1069;
12423
0
      if (yych <= 0x7F) goto yy1060;
12424
0
    }
12425
0
yy1069:
12426
0
    YYDEBUG(1069, *YYCURSOR);
12427
0
    ++YYCURSOR;
12428
0
    YYDEBUG(1070, *YYCURSOR);
12429
0
    yyleng = YYCURSOR - SCNG(yy_text);
12430
0
#line 2403 "Zend/zend_language_scanner.l"
12431
0
    {
12432
0
  yyless(yyleng - 4);
12433
0
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
12434
0
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12435
0
}
12436
0
#line 12437 "Zend/zend_language_scanner.c"
12437
0
  }
12438
/* *********************************** */
12439
43
yyc_ST_LOOKING_FOR_VARNAME:
12440
43
  {
12441
43
    static const unsigned char yybm[] = {
12442
43
        0,   0,   0,   0,   0,   0,   0,   0, 
12443
43
        0,   0,   0,   0,   0,   0,   0,   0, 
12444
43
        0,   0,   0,   0,   0,   0,   0,   0, 
12445
43
        0,   0,   0,   0,   0,   0,   0,   0, 
12446
43
        0,   0,   0,   0,   0,   0,   0,   0, 
12447
43
        0,   0,   0,   0,   0,   0,   0,   0, 
12448
43
      128, 128, 128, 128, 128, 128, 128, 128, 
12449
43
      128, 128,   0,   0,   0,   0,   0,   0, 
12450
43
        0, 128, 128, 128, 128, 128, 128, 128, 
12451
43
      128, 128, 128, 128, 128, 128, 128, 128, 
12452
43
      128, 128, 128, 128, 128, 128, 128, 128, 
12453
43
      128, 128, 128,   0,   0,   0,   0, 128, 
12454
43
        0, 128, 128, 128, 128, 128, 128, 128, 
12455
43
      128, 128, 128, 128, 128, 128, 128, 128, 
12456
43
      128, 128, 128, 128, 128, 128, 128, 128, 
12457
43
      128, 128, 128,   0,   0,   0,   0,   0, 
12458
43
      128, 128, 128, 128, 128, 128, 128, 128, 
12459
43
      128, 128, 128, 128, 128, 128, 128, 128, 
12460
43
      128, 128, 128, 128, 128, 128, 128, 128, 
12461
43
      128, 128, 128, 128, 128, 128, 128, 128, 
12462
43
      128, 128, 128, 128, 128, 128, 128, 128, 
12463
43
      128, 128, 128, 128, 128, 128, 128, 128, 
12464
43
      128, 128, 128, 128, 128, 128, 128, 128, 
12465
43
      128, 128, 128, 128, 128, 128, 128, 128, 
12466
43
      128, 128, 128, 128, 128, 128, 128, 128, 
12467
43
      128, 128, 128, 128, 128, 128, 128, 128, 
12468
43
      128, 128, 128, 128, 128, 128, 128, 128, 
12469
43
      128, 128, 128, 128, 128, 128, 128, 128, 
12470
43
      128, 128, 128, 128, 128, 128, 128, 128, 
12471
43
      128, 128, 128, 128, 128, 128, 128, 128, 
12472
43
      128, 128, 128, 128, 128, 128, 128, 128, 
12473
43
      128, 128, 128, 128, 128, 128, 128, 128, 
12474
43
    };
12475
43
    YYDEBUG(1071, *YYCURSOR);
12476
43
    YYFILL(2);
12477
43
    yych = *YYCURSOR;
12478
43
    if (yych <= '_') {
12479
43
      if (yych <= '@') goto yy1073;
12480
0
      if (yych <= 'Z') goto yy1075;
12481
0
      if (yych >= '_') goto yy1075;
12482
0
    } else {
12483
0
      if (yych <= '`') goto yy1073;
12484
0
      if (yych <= 'z') goto yy1075;
12485
0
      if (yych >= 0x80) goto yy1075;
12486
0
    }
12487
43
yy1073:
12488
43
    YYDEBUG(1073, *YYCURSOR);
12489
43
    ++YYCURSOR;
12490
43
yy1074:
12491
43
    YYDEBUG(1074, *YYCURSOR);
12492
43
    yyleng = YYCURSOR - SCNG(yy_text);
12493
43
#line 2004 "Zend/zend_language_scanner.l"
12494
43
    {
12495
43
  yyless(0);
12496
43
  yy_pop_state();
12497
43
  yy_push_state(ST_IN_SCRIPTING);
12498
43
  goto restart;
12499
43
}
12500
0
#line 12501 "Zend/zend_language_scanner.c"
12501
0
yy1075:
12502
0
    YYDEBUG(1075, *YYCURSOR);
12503
0
    yych = *(YYMARKER = ++YYCURSOR);
12504
0
    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
0
    } else {
12515
0
      if (yych <= '|') {
12516
0
        if (yych <= '`') goto yy1074;
12517
0
        if (yych <= 'z') goto yy1077;
12518
0
        goto yy1074;
12519
0
      } else {
12520
0
        if (yych <= '}') goto yy1077;
12521
0
        if (yych <= 0x7F) goto yy1074;
12522
0
        goto yy1077;
12523
0
      }
12524
0
    }
12525
0
yy1076:
12526
0
    YYDEBUG(1076, *YYCURSOR);
12527
0
    ++YYCURSOR;
12528
0
    YYFILL(1);
12529
0
    yych = *YYCURSOR;
12530
0
yy1077:
12531
0
    YYDEBUG(1077, *YYCURSOR);
12532
0
    if (yybm[0+yych] & 128) {
12533
0
      goto yy1076;
12534
0
    }
12535
0
    if (yych <= '@') goto yy1078;
12536
0
    if (yych <= '[') goto yy1079;
12537
0
    if (yych == '}') goto yy1079;
12538
0
yy1078:
12539
0
    YYDEBUG(1078, *YYCURSOR);
12540
0
    YYCURSOR = YYMARKER;
12541
0
    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
6
yyc_ST_VAR_OFFSET:
12558
6
  {
12559
6
    static const unsigned char yybm[] = {
12560
6
        0,   0,   0,   0,   0,   0,   0,   0, 
12561
6
        0,   0,   0,   0,   0,   0,   0,   0, 
12562
6
        0,   0,   0,   0,   0,   0,   0,   0, 
12563
6
        0,   0,   0,   0,   0,   0,   0,   0, 
12564
6
        0,   0,   0,   0,   0,   0,   0,   0, 
12565
6
        0,   0,   0,   0,   0,   0,   0,   0, 
12566
6
      248, 248, 216, 216, 216, 216, 216, 216, 
12567
6
      152, 152,   0,   0,   0,   0,   0,   0, 
12568
6
        0, 144, 144, 144, 144, 144, 144,  16, 
12569
6
       16,  16,  16,  16,  16,  16,  16,  16, 
12570
6
       16,  16,  16,  16,  16,  16,  16,  16, 
12571
6
       16,  16,  16,   0,   0,   0,   0,  16, 
12572
6
        0, 144, 144, 144, 144, 144, 144,  16, 
12573
6
       16,  16,  16,  16,  16,  16,  16,  16, 
12574
6
       16,  16,  16,  16,  16,  16,  16,  16, 
12575
6
       16,  16,  16,   0,   0,   0,   0,   0, 
12576
6
       16,  16,  16,  16,  16,  16,  16,  16, 
12577
6
       16,  16,  16,  16,  16,  16,  16,  16, 
12578
6
       16,  16,  16,  16,  16,  16,  16,  16, 
12579
6
       16,  16,  16,  16,  16,  16,  16,  16, 
12580
6
       16,  16,  16,  16,  16,  16,  16,  16, 
12581
6
       16,  16,  16,  16,  16,  16,  16,  16, 
12582
6
       16,  16,  16,  16,  16,  16,  16,  16, 
12583
6
       16,  16,  16,  16,  16,  16,  16,  16, 
12584
6
       16,  16,  16,  16,  16,  16,  16,  16, 
12585
6
       16,  16,  16,  16,  16,  16,  16,  16, 
12586
6
       16,  16,  16,  16,  16,  16,  16,  16, 
12587
6
       16,  16,  16,  16,  16,  16,  16,  16, 
12588
6
       16,  16,  16,  16,  16,  16,  16,  16, 
12589
6
       16,  16,  16,  16,  16,  16,  16,  16, 
12590
6
       16,  16,  16,  16,  16,  16,  16,  16, 
12591
6
       16,  16,  16,  16,  16,  16,  16,  16, 
12592
6
    };
12593
6
    YYDEBUG(1081, *YYCURSOR);
12594
6
    YYFILL(2);
12595
6
    yych = *YYCURSOR;
12596
6
    if (yych <= '0') {
12597
2
      if (yych <= ' ') {
12598
0
        if (yych <= '\f') {
12599
0
          if (yych <= 0x08) goto yy1083;
12600
0
          if (yych <= '\n') goto yy1085;
12601
0
        } else {
12602
0
          if (yych <= '\r') goto yy1085;
12603
0
          if (yych >= ' ') goto yy1085;
12604
0
        }
12605
2
      } else {
12606
2
        if (yych <= '$') {
12607
2
          if (yych <= '"') goto yy1087;
12608
2
          if (yych <= '#') goto yy1085;
12609
2
          goto yy1089;
12610
2
        } else {
12611
0
          if (yych == '\'') goto yy1085;
12612
0
          if (yych <= '/') goto yy1087;
12613
0
          goto yy1090;
12614
0
        }
12615
2
      }
12616
4
    } else {
12617
4
      if (yych <= ']') {
12618
4
        if (yych <= 'Z') {
12619
0
          if (yych <= '9') goto yy1092;
12620
0
          if (yych <= '@') goto yy1087;
12621
0
          goto yy1094;
12622
4
        } else {
12623
4
          if (yych <= '[') goto yy1087;
12624
2
          if (yych <= '\\') goto yy1085;
12625
2
          goto yy1097;
12626
2
        }
12627
4
      } else {
12628
0
        if (yych <= '`') {
12629
0
          if (yych == '_') goto yy1094;
12630
0
          goto yy1087;
12631
0
        } else {
12632
0
          if (yych <= 'z') goto yy1094;
12633
0
          if (yych <= '~') goto yy1087;
12634
0
          if (yych >= 0x80) goto yy1094;
12635
0
        }
12636
0
      }
12637
4
    }
12638
0
yy1083:
12639
0
    YYDEBUG(1083, *YYCURSOR);
12640
0
    ++YYCURSOR;
12641
0
    YYDEBUG(1084, *YYCURSOR);
12642
0
    yyleng = YYCURSOR - SCNG(yy_text);
12643
0
#line 3180 "Zend/zend_language_scanner.l"
12644
0
    {
12645
0
  if (YYCURSOR > YYLIMIT) {
12646
0
    RETURN_END_TOKEN;
12647
0
  }
12648
12649
0
  RETURN_TOKEN(T_BAD_CHARACTER);
12650
0
}
12651
0
#line 12652 "Zend/zend_language_scanner.c"
12652
0
yy1085:
12653
0
    YYDEBUG(1085, *YYCURSOR);
12654
0
    ++YYCURSOR;
12655
0
    YYDEBUG(1086, *YYCURSOR);
12656
0
    yyleng = YYCURSOR - SCNG(yy_text);
12657
0
#line 2431 "Zend/zend_language_scanner.l"
12658
0
    {
12659
  /* Invalid rule to return a more explicit parse error with proper line number */
12660
0
  yyless(0);
12661
0
  yy_pop_state();
12662
0
  ZVAL_NULL(zendlval);
12663
0
  RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
12664
0
}
12665
0
#line 12666 "Zend/zend_language_scanner.c"
12666
2
yy1087:
12667
2
    YYDEBUG(1087, *YYCURSOR);
12668
2
    ++YYCURSOR;
12669
2
yy1088:
12670
2
    YYDEBUG(1088, *YYCURSOR);
12671
2
    yyleng = YYCURSOR - SCNG(yy_text);
12672
2
#line 2426 "Zend/zend_language_scanner.l"
12673
2
    {
12674
  /* Only '[' or '-' can be valid, but returning other tokens will allow a more explicit parse error */
12675
2
  RETURN_TOKEN(yytext[0]);
12676
2
}
12677
0
#line 12678 "Zend/zend_language_scanner.c"
12678
2
yy1089:
12679
2
    YYDEBUG(1089, *YYCURSOR);
12680
2
    yych = *++YYCURSOR;
12681
2
    if (yych <= '_') {
12682
0
      if (yych <= '@') goto yy1088;
12683
0
      if (yych <= 'Z') goto yy1099;
12684
0
      if (yych <= '^') goto yy1088;
12685
0
      goto yy1099;
12686
2
    } else {
12687
2
      if (yych <= '`') goto yy1088;
12688
2
      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
0
yy1094:
12750
0
    YYDEBUG(1094, *YYCURSOR);
12751
0
    ++YYCURSOR;
12752
0
    YYFILL(1);
12753
0
    yych = *YYCURSOR;
12754
0
    YYDEBUG(1095, *YYCURSOR);
12755
0
    if (yybm[0+yych] & 16) {
12756
0
      goto yy1094;
12757
0
    }
12758
0
    YYDEBUG(1096, *YYCURSOR);
12759
0
    yyleng = YYCURSOR - SCNG(yy_text);
12760
0
#line 2455 "Zend/zend_language_scanner.l"
12761
0
    {
12762
0
  RETURN_TOKEN_WITH_STR(T_STRING, 0);
12763
0
}
12764
0
#line 12765 "Zend/zend_language_scanner.c"
12765
2
yy1097:
12766
2
    YYDEBUG(1097, *YYCURSOR);
12767
2
    ++YYCURSOR;
12768
2
    YYDEBUG(1098, *YYCURSOR);
12769
2
    yyleng = YYCURSOR - SCNG(yy_text);
12770
2
#line 2421 "Zend/zend_language_scanner.l"
12771
2
    {
12772
2
  yy_pop_state();
12773
2
  RETURN_TOKEN(']');
12774
2
}
12775
0
#line 12776 "Zend/zend_language_scanner.c"
12776
2
yy1099:
12777
2
    YYDEBUG(1099, *YYCURSOR);
12778
2
    ++YYCURSOR;
12779
2
    YYFILL(1);
12780
2
    yych = *YYCURSOR;
12781
2
    YYDEBUG(1100, *YYCURSOR);
12782
2
    if (yych <= '^') {
12783
2
      if (yych <= '9') {
12784
0
        if (yych >= '0') goto yy1099;
12785
2
      } else {
12786
2
        if (yych <= '@') goto yy1101;
12787
2
        if (yych <= 'Z') goto yy1099;
12788
2
      }
12789
2
    } else {
12790
0
      if (yych <= '`') {
12791
0
        if (yych <= '_') goto yy1099;
12792
0
      } else {
12793
0
        if (yych <= 'z') goto yy1099;
12794
0
        if (yych >= 0x80) goto yy1099;
12795
0
      }
12796
0
    }
12797
2
yy1101:
12798
2
    YYDEBUG(1101, *YYCURSOR);
12799
2
    yyleng = YYCURSOR - SCNG(yy_text);
12800
2
#line 2417 "Zend/zend_language_scanner.l"
12801
2
    {
12802
2
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12803
2
}
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
268
yyc_INITIAL:
12987
268
  YYDEBUG(1125, *YYCURSOR);
12988
268
  YYFILL(7);
12989
268
  yych = *YYCURSOR;
12990
268
  if (yych == '<') goto yy1129;
12991
173
  YYDEBUG(1127, *YYCURSOR);
12992
173
  ++YYCURSOR;
12993
176
yy1128:
12994
176
  YYDEBUG(1128, *YYCURSOR);
12995
176
  yyleng = YYCURSOR - SCNG(yy_text);
12996
176
#line 2341 "Zend/zend_language_scanner.l"
12997
176
  {
12998
176
  if (YYCURSOR > YYLIMIT) {
12999
52
    RETURN_END_TOKEN;
13000
52
  }
13001
13002
124
inline_char_handler:
13003
13004
256
  while (1) {
13005
256
    YYCTYPE *ptr = memchr(YYCURSOR, '<', YYLIMIT - YYCURSOR);
13006
13007
256
    YYCURSOR = ptr ? ptr + 1 : YYLIMIT;
13008
13009
256
    if (YYCURSOR >= YYLIMIT) {
13010
42
      break;
13011
42
    }
13012
13013
214
    if (*YYCURSOR == '?') {
13014
82
      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
82
      ) {
13021
82
        YYCURSOR--;
13022
82
        break;
13023
82
      }
13024
82
    }
13025
214
  }
13026
13027
124
  yyleng = YYCURSOR - SCNG(yy_text);
13028
13029
124
  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
124
  } else if (yyleng == 1) {
13041
3
    ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR((zend_uchar)*yytext));
13042
121
  } else {
13043
121
    ZVAL_STRINGL(zendlval, yytext, yyleng);
13044
121
  }
13045
124
  HANDLE_NEWLINES(yytext, yyleng);
13046
124
  RETURN_TOKEN_WITH_VAL(T_INLINE_HTML);
13047
124
}
13048
0
#line 13049 "Zend/zend_language_scanner.c"
13049
95
yy1129:
13050
95
  YYDEBUG(1129, *YYCURSOR);
13051
95
  yych = *++YYCURSOR;
13052
95
  if (yych != '?') goto yy1128;
13053
92
  YYDEBUG(1130, *YYCURSOR);
13054
92
  yych = *(YYMARKER = ++YYCURSOR);
13055
92
  if (yych <= 'O') {
13056
5
    if (yych == '=') goto yy1132;
13057
87
  } else {
13058
87
    if (yych <= 'P') goto yy1134;
13059
87
    if (yych == 'p') goto yy1134;
13060
87
  }
13061
8
yy1131:
13062
8
  YYDEBUG(1131, *YYCURSOR);
13063
8
  yyleng = YYCURSOR - SCNG(yy_text);
13064
8
#line 2332 "Zend/zend_language_scanner.l"
13065
8
  {
13066
8
  if (CG(short_tags)) {
13067
8
    BEGIN(ST_IN_SCRIPTING);
13068
8
    RETURN_OR_SKIP_TOKEN(T_OPEN_TAG);
13069
8
  } else {
13070
0
    goto inline_char_handler;
13071
0
  }
13072
8
}
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
84
yy1134:
13090
84
  YYDEBUG(1134, *YYCURSOR);
13091
84
  yych = *++YYCURSOR;
13092
84
  if (yych == 'H') goto yy1136;
13093
82
  if (yych == 'h') goto yy1136;
13094
0
yy1135:
13095
0
  YYDEBUG(1135, *YYCURSOR);
13096
0
  YYCURSOR = YYMARKER;
13097
0
  goto yy1131;
13098
84
yy1136:
13099
84
  YYDEBUG(1136, *YYCURSOR);
13100
84
  yych = *++YYCURSOR;
13101
84
  if (yych == 'P') goto yy1137;
13102
84
  if (yych != 'p') goto yy1135;
13103
84
yy1137:
13104
84
  YYDEBUG(1137, *YYCURSOR);
13105
84
  yych = *++YYCURSOR;
13106
84
  if (yych <= '\f') {
13107
84
    if (yych <= 0x08) goto yy1138;
13108
84
    if (yych <= '\n') goto yy1139;
13109
84
  } else {
13110
0
    if (yych <= '\r') goto yy1141;
13111
0
    if (yych == ' ') goto yy1139;
13112
0
  }
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
84
yy1139:
13133
84
  YYDEBUG(1139, *YYCURSOR);
13134
84
  ++YYCURSOR;
13135
84
yy1140:
13136
84
  YYDEBUG(1140, *YYCURSOR);
13137
84
  yyleng = YYCURSOR - SCNG(yy_text);
13138
84
#line 2311 "Zend/zend_language_scanner.l"
13139
84
  {
13140
84
  HANDLE_NEWLINE(yytext[yyleng-1]);
13141
84
  BEGIN(ST_IN_SCRIPTING);
13142
84
  RETURN_OR_SKIP_TOKEN(T_OPEN_TAG);
13143
84
}
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
0
yyc_ST_END_HEREDOC:
13152
0
  YYDEBUG(1142, *YYCURSOR);
13153
0
  YYFILL(1);
13154
0
  yych = *YYCURSOR;
13155
0
  YYDEBUG(1144, *YYCURSOR);
13156
0
  ++YYCURSOR;
13157
0
  YYDEBUG(1145, *YYCURSOR);
13158
0
  yyleng = YYCURSOR - SCNG(yy_text);
13159
0
#line 2832 "Zend/zend_language_scanner.l"
13160
0
  {
13161
0
  zend_heredoc_label *heredoc_label = zend_ptr_stack_pop(&SCNG(heredoc_label_stack));
13162
13163
0
  yyleng = heredoc_label->indentation + heredoc_label->length;
13164
0
  YYCURSOR += yyleng - 1;
13165
13166
0
  heredoc_label_dtor(heredoc_label);
13167
0
  efree(heredoc_label);
13168
13169
0
  BEGIN(ST_IN_SCRIPTING);
13170
0
  RETURN_TOKEN(T_END_HEREDOC);
13171
0
}
13172
0
#line 13173 "Zend/zend_language_scanner.c"
13173
/* *********************************** */
13174
0
yyc_ST_NOWDOC:
13175
0
  YYDEBUG(1146, *YYCURSOR);
13176
0
  YYFILL(1);
13177
0
  yych = *YYCURSOR;
13178
0
  YYDEBUG(1148, *YYCURSOR);
13179
0
  ++YYCURSOR;
13180
0
  YYDEBUG(1149, *YYCURSOR);
13181
0
  yyleng = YYCURSOR - SCNG(yy_text);
13182
0
#line 3089 "Zend/zend_language_scanner.l"
13183
0
  {
13184
0
  zend_heredoc_label *heredoc_label = zend_ptr_stack_top(&SCNG(heredoc_label_stack));
13185
0
  int newline = 0, indentation = 0, spacing = -1;
13186
13187
0
  if (YYCURSOR > YYLIMIT) {
13188
0
    RETURN_END_TOKEN;
13189
0
  }
13190
13191
0
  YYCURSOR--;
13192
13193
0
  while (YYCURSOR < YYLIMIT) {
13194
0
    switch (*YYCURSOR++) {
13195
0
      case '\r':
13196
0
        if (*YYCURSOR == '\n') {
13197
0
          YYCURSOR++;
13198
0
        }
13199
0
        ZEND_FALLTHROUGH;
13200
0
      case '\n':
13201
0
        indentation = spacing = 0;
13202
13203
0
        while (YYCURSOR < YYLIMIT && (*YYCURSOR == ' ' || *YYCURSOR == '\t')) {
13204
0
          if (*YYCURSOR == '\t') {
13205
0
            spacing |= HEREDOC_USING_TABS;
13206
0
          } else {
13207
0
            spacing |= HEREDOC_USING_SPACES;
13208
0
          }
13209
0
          ++YYCURSOR;
13210
0
          ++indentation;
13211
0
        }
13212
13213
0
        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
0
        if (IS_LABEL_START(*YYCURSOR) && heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, heredoc_label->label, heredoc_label->length)) {
13222
0
          if (IS_LABEL_SUCCESSOR(YYCURSOR[heredoc_label->length])) {
13223
0
            continue;
13224
0
          }
13225
13226
0
          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
0
          if (YYCURSOR[-indentation - 2] == '\r' && YYCURSOR[-indentation - 1] == '\n') {
13236
0
            newline = 2; /* Windows newline */
13237
0
          } else {
13238
0
            newline = 1;
13239
0
          }
13240
13241
0
          CG(increment_lineno) = 1; /* For newline before label */
13242
13243
0
          YYCURSOR -= indentation;
13244
0
          heredoc_label->indentation = indentation;
13245
13246
0
          BEGIN(ST_END_HEREDOC);
13247
13248
0
          goto nowdoc_scan_done;
13249
0
        }
13250
0
        ZEND_FALLTHROUGH;
13251
0
      default:
13252
0
        continue;
13253
0
    }
13254
0
  }
13255
13256
0
nowdoc_scan_done:
13257
0
  yyleng = YYCURSOR - SCNG(yy_text);
13258
0
  ZVAL_STRINGL(zendlval, yytext, yyleng - newline);
13259
13260
0
  if (!EG(exception) && spacing != -1 && PARSER_MODE()) {
13261
0
    bool newline_at_start = *(yytext - 1) == '\n' || *(yytext - 1) == '\r';
13262
0
    if (!strip_multiline_string_indentation(
13263
0
        zendlval, indentation, spacing == HEREDOC_USING_SPACES,
13264
0
        newline_at_start, newline != 0)) {
13265
0
      RETURN_TOKEN(T_ERROR);
13266
0
    }
13267
0
  }
13268
13269
0
  HANDLE_NEWLINES(yytext, yyleng - newline);
13270
0
  RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
13271
0
}
13272
0
#line 13273 "Zend/zend_language_scanner.c"
13273
0
}
13274
0
#line 3188 "Zend/zend_language_scanner.l"
13275
13276
13277
3.55k
emit_token_with_str:
13278
3.55k
  zend_copy_value(zendlval, (yytext + offset), (yyleng - offset));
13279
13280
5.87k
emit_token_with_val:
13281
5.87k
  if (PARSER_MODE()) {
13282
5.29k
    ZEND_ASSERT(Z_TYPE_P(zendlval) != IS_UNDEF);
13283
5.29k
    elem->ast = zend_ast_create_zval_with_lineno(zendlval, start_line);
13284
5.29k
  }
13285
13286
11.0k
emit_token:
13287
11.0k
  if (SCNG(on_event)) {
13288
0
    SCNG(on_event)(ON_TOKEN, token, start_line, yytext, yyleng, SCNG(on_event_context));
13289
0
  }
13290
11.0k
  return token;
13291
13292
551
emit_token_with_ident:
13293
551
  if (PARSER_MODE()) {
13294
523
    elem->ident = SCNG(yy_text);
13295
523
  }
13296
551
  if (SCNG(on_event)) {
13297
0
    SCNG(on_event)(ON_TOKEN, token, start_line, yytext, yyleng, SCNG(on_event_context));
13298
0
  }
13299
551
  return token;
13300
13301
3.13k
return_whitespace:
13302
3.13k
  HANDLE_NEWLINES(yytext, yyleng);
13303
3.13k
  if (SCNG(on_event)) {
13304
0
    SCNG(on_event)(ON_TOKEN, T_WHITESPACE, start_line, yytext, yyleng, SCNG(on_event_context));
13305
0
  }
13306
3.13k
  if (PARSER_MODE()) {
13307
2.99k
    start_line = CG(zend_lineno);
13308
2.99k
    goto restart;
13309
2.99k
  } else {
13310
145
    return T_WHITESPACE;
13311
145
  }
13312
13313
334
skip_token:
13314
334
  if (SCNG(on_event)) {
13315
0
    SCNG(on_event)(ON_TOKEN, token, start_line, yytext, yyleng, SCNG(on_event_context));
13316
0
  }
13317
334
  start_line = CG(zend_lineno);
13318
334
  goto restart;
13319
3.13k
}