Coverage Report

Created: 2026-06-02 06:36

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/php-src/Zend/zend_language_scanner.c
Line
Count
Source
1
/* Generated by re2c 1.3 */
2
#line 1 "Zend/zend_language_scanner.l"
3
/*
4
   +----------------------------------------------------------------------+
5
   | Zend Engine                                                          |
6
   +----------------------------------------------------------------------+
7
   | Copyright © Zend Technologies Ltd., a subsidiary company of          |
8
   |     Perforce Software, Inc., and Contributors.                       |
9
   +----------------------------------------------------------------------+
10
   | This source file is subject to the Modified BSD License that is      |
11
   | bundled with this package in the file LICENSE, and is available      |
12
   | through the World Wide Web at <https://www.php.net/license/>.        |
13
   |                                                                      |
14
   | SPDX-License-Identifier: BSD-3-Clause                                |
15
   +----------------------------------------------------------------------+
16
   | Authors: Marcus Boerger <helly@php.net>                              |
17
   |          Nuno Lopes <nlopess@php.net>                                |
18
   |          Scott MacVicar <scottmac@php.net>                           |
19
   | Flex version authors:                                                |
20
   |          Andi Gutmans <andi@php.net>                                 |
21
   |          Zeev Suraski <zeev@php.net>                                 |
22
   +----------------------------------------------------------------------+
23
*/
24
25
#if 0
26
# define YYDEBUG(s, c) printf("state: %d char: %c\n", s, c)
27
#else
28
# define YYDEBUG(s, c)
29
#endif
30
31
#include "zend_language_scanner_defs.h"
32
33
#include <errno.h>
34
#include <stdint.h>
35
#include "zend.h"
36
#ifdef ZEND_WIN32
37
# include <Winuser.h>
38
#endif
39
#include "zend_alloc.h"
40
#include <zend_language_parser.h>
41
#include "zend_compile.h"
42
#include "zend_language_scanner.h"
43
#include "zend_highlight.h"
44
#include "zend_constants.h"
45
#include "zend_variables.h"
46
#include "zend_operators.h"
47
#include "zend_API.h"
48
#include "zend_strtod.h"
49
#include "zend_exceptions.h"
50
#include "zend_virtual_cwd.h"
51
52
0
#define YYCTYPE   unsigned char
53
0
#define YYFILL(n) { if ((YYCURSOR + n) >= (YYLIMIT + ZEND_MMAP_AHEAD)) { return 0; } }
54
0
#define YYCURSOR  SCNG(yy_cursor)
55
0
#define YYLIMIT   SCNG(yy_limit)
56
0
#define YYMARKER  SCNG(yy_marker)
57
58
0
#define YYGETCONDITION()  SCNG(yy_state)
59
0
#define YYSETCONDITION(s) SCNG(yy_state) = s
60
61
#define STATE(name)  yyc##name
62
63
/* emulate flex constructs */
64
0
#define BEGIN(state) YYSETCONDITION(STATE(state))
65
0
#define YYSTATE      YYGETCONDITION()
66
0
#define yytext       ((char*)SCNG(yy_text))
67
0
#define yyleng       SCNG(yy_leng)
68
0
#define yyless(x)    do { YYCURSOR = (unsigned char*)yytext + x; \
69
0
                          yyleng   = (unsigned int)x; } while(0)
70
#define yymore()     goto yymore_restart
71
72
/* perform sanity check. If this message is triggered you should
73
   increase the ZEND_MMAP_AHEAD value in the zend_streams.h file */
74
#define YYMAXFILL 16
75
76
#if ZEND_MMAP_AHEAD < YYMAXFILL
77
# error ZEND_MMAP_AHEAD should be greater than or equal to YYMAXFILL
78
#endif
79
80
#include <stdarg.h>
81
82
#ifdef HAVE_UNISTD_H
83
# include <unistd.h>
84
#endif
85
86
/* Globals Macros */
87
74.5k
#define SCNG  LANG_SCNG
88
#ifdef ZTS
89
ZEND_API ts_rsrc_id language_scanner_globals_id;
90
ZEND_API size_t language_scanner_globals_offset;
91
#else
92
ZEND_API zend_php_scanner_globals language_scanner_globals;
93
#endif
94
95
0
#define HANDLE_NEWLINES(s, l)                         \
96
0
do {                                     \
97
0
  char *p = (s), *boundary = p+(l);                     \
98
0
                                        \
99
0
  while (p<boundary) {                           \
100
0
    if (*p == '\n' || (*p == '\r' && (*(p+1) != '\n'))) {         \
101
0
      CG(zend_lineno)++;                          \
102
0
    }                                   \
103
0
    p++;                                  \
104
0
  }                                     \
105
0
} while (0)
106
107
0
#define HANDLE_NEWLINE(c) \
108
0
{ \
109
0
  if (c == '\n' || c == '\r') { \
110
0
    CG(zend_lineno)++; \
111
0
  } \
112
0
}
113
114
/* To save initial string length after scanning to first variable */
115
0
#define SET_DOUBLE_QUOTES_SCANNED_LENGTH(len) SCNG(scanned_string_len) = (len)
116
0
#define GET_DOUBLE_QUOTES_SCANNED_LENGTH()    SCNG(scanned_string_len)
117
118
0
#define IS_LABEL_START(c) (((c) >= 'a' && (c) <= 'z') || ((c) >= 'A' && (c) <= 'Z') || (c) == '_' || (c) >= 0x80)
119
0
#define IS_LABEL_SUCCESSOR(c) (((c) >= 'a' && (c) <= 'z') || ((c) >= 'A' && (c) <= 'Z') || ((c) >= '0' && (c) <= '9') || (c) == '_' || (c) >= 0x80)
120
121
0
#define ZEND_IS_OCT(c)  ((c)>='0' && (c)<='7')
122
0
#define ZEND_IS_HEX(c)  (((c)>='0' && (c)<='9') || ((c)>='a' && (c)<='f') || ((c)>='A' && (c)<='F'))
123
124
125
static void strip_underscores(char *str, size_t *len)
126
0
{
127
0
  char *src = str, *dest = str;
128
0
  while (*src != '\0') {
129
0
    if (*src != '_') {
130
0
      *dest = *src;
131
0
      dest++;
132
0
    } else {
133
0
      --(*len);
134
0
    }
135
0
    src++;
136
0
  }
137
0
  *dest = '\0';
138
0
}
139
140
static size_t encoding_filter_script_to_internal(unsigned char **to, size_t *to_length, const unsigned char *from, size_t from_length)
141
0
{
142
0
  const zend_encoding *internal_encoding = zend_multibyte_get_internal_encoding();
143
0
  ZEND_ASSERT(internal_encoding);
144
0
  return zend_multibyte_encoding_converter(to, to_length, from, from_length, internal_encoding, LANG_SCNG(script_encoding));
145
0
}
146
147
static size_t encoding_filter_script_to_intermediate(unsigned char **to, size_t *to_length, const unsigned char *from, size_t from_length)
148
0
{
149
0
  return zend_multibyte_encoding_converter(to, to_length, from, from_length, zend_multibyte_encoding_utf8, LANG_SCNG(script_encoding));
150
0
}
151
152
static size_t encoding_filter_intermediate_to_script(unsigned char **to, size_t *to_length, const unsigned char *from, size_t from_length)
153
0
{
154
0
  return zend_multibyte_encoding_converter(to, to_length, from, from_length,
155
0
LANG_SCNG(script_encoding), zend_multibyte_encoding_utf8);
156
0
}
157
158
static size_t encoding_filter_intermediate_to_internal(unsigned char **to, size_t *to_length, const unsigned char *from, size_t from_length)
159
0
{
160
0
  const zend_encoding *internal_encoding = zend_multibyte_get_internal_encoding();
161
0
  ZEND_ASSERT(internal_encoding);
162
0
  return zend_multibyte_encoding_converter(to, to_length, from, from_length,
163
0
internal_encoding, zend_multibyte_encoding_utf8);
164
0
}
165
166
167
static void _yy_push_state(int new_state)
168
0
{
169
0
  zend_stack_push(&SCNG(state_stack), (void *) &YYGETCONDITION());
170
0
  YYSETCONDITION(new_state);
171
0
}
172
173
0
#define yy_push_state(state_and_tsrm) _yy_push_state(yyc##state_and_tsrm)
174
175
static void yy_pop_state(void)
176
0
{
177
0
  int *stack_state = zend_stack_top(&SCNG(state_stack));
178
0
  YYSETCONDITION(*stack_state);
179
0
  zend_stack_del_top(&SCNG(state_stack));
180
0
}
181
182
static void yy_scan_buffer(char *str, size_t len)
183
0
{
184
0
  YYCURSOR       = (YYCTYPE*)str;
185
0
  YYLIMIT        = YYCURSOR + len;
186
0
  if (!SCNG(yy_start)) {
187
0
    SCNG(yy_start) = YYCURSOR;
188
0
  }
189
0
}
190
191
void startup_scanner(void)
192
6.77k
{
193
6.77k
  CG(parse_error) = 0;
194
6.77k
  CG(doc_comment) = NULL;
195
6.77k
  CG(extra_fn_flags) = 0;
196
6.77k
  zend_stack_init(&SCNG(state_stack), sizeof(int));
197
6.77k
  zend_stack_init(&SCNG(nest_location_stack), sizeof(zend_nest_location));
198
6.77k
  zend_ptr_stack_init(&SCNG(heredoc_label_stack));
199
6.77k
  SCNG(heredoc_scan_ahead) = 0;
200
6.77k
}
201
202
0
static void heredoc_label_dtor(zend_heredoc_label *heredoc_label) {
203
0
    efree(heredoc_label->label);
204
0
}
205
206
void shutdown_scanner(void)
207
6.77k
{
208
6.77k
  CG(parse_error) = 0;
209
6.77k
  RESET_DOC_COMMENT();
210
6.77k
  zend_stack_destroy(&SCNG(state_stack));
211
6.77k
  zend_stack_destroy(&SCNG(nest_location_stack));
212
6.77k
  zend_ptr_stack_clean(&SCNG(heredoc_label_stack), (void (*)(void *)) &heredoc_label_dtor, 1);
213
6.77k
  zend_ptr_stack_destroy(&SCNG(heredoc_label_stack));
214
6.77k
  SCNG(heredoc_scan_ahead) = 0;
215
6.77k
  SCNG(on_event) = NULL;
216
6.77k
  SCNG(on_event_context) = NULL;
217
6.77k
}
218
219
ZEND_API void zend_save_lexical_state(zend_lex_state *lex_state)
220
0
{
221
0
  lex_state->yy_leng   = SCNG(yy_leng);
222
0
  lex_state->yy_start  = SCNG(yy_start);
223
0
  lex_state->yy_text   = SCNG(yy_text);
224
0
  lex_state->yy_cursor = SCNG(yy_cursor);
225
0
  lex_state->yy_marker = SCNG(yy_marker);
226
0
  lex_state->yy_limit  = SCNG(yy_limit);
227
228
0
  lex_state->state_stack = SCNG(state_stack);
229
0
  zend_stack_init(&SCNG(state_stack), sizeof(int));
230
231
0
  lex_state->nest_location_stack = SCNG(nest_location_stack);
232
0
  zend_stack_init(&SCNG(nest_location_stack), sizeof(zend_nest_location));
233
234
0
  lex_state->heredoc_label_stack = SCNG(heredoc_label_stack);
235
0
  zend_ptr_stack_init(&SCNG(heredoc_label_stack));
236
237
0
  lex_state->in = SCNG(yy_in);
238
0
  lex_state->yy_state = YYSTATE;
239
0
  lex_state->filename = CG(compiled_filename);
240
0
  lex_state->lineno = CG(zend_lineno);
241
0
  CG(compiled_filename) = NULL;
242
243
0
  lex_state->script_org = SCNG(script_org);
244
0
  lex_state->script_org_size = SCNG(script_org_size);
245
0
  lex_state->script_filtered = SCNG(script_filtered);
246
0
  lex_state->script_filtered_size = SCNG(script_filtered_size);
247
0
  lex_state->input_filter = SCNG(input_filter);
248
0
  lex_state->output_filter = SCNG(output_filter);
249
0
  lex_state->script_encoding = SCNG(script_encoding);
250
251
0
  lex_state->on_event = SCNG(on_event);
252
0
  lex_state->on_event_context = SCNG(on_event_context);
253
254
0
  lex_state->ast = CG(ast);
255
0
  lex_state->ast_arena = CG(ast_arena);
256
0
}
257
258
ZEND_API void zend_restore_lexical_state(zend_lex_state *lex_state)
259
0
{
260
0
  SCNG(yy_leng)   = lex_state->yy_leng;
261
0
  SCNG(yy_start)  = lex_state->yy_start;
262
0
  SCNG(yy_text)   = lex_state->yy_text;
263
0
  SCNG(yy_cursor) = lex_state->yy_cursor;
264
0
  SCNG(yy_marker) = lex_state->yy_marker;
265
0
  SCNG(yy_limit)  = lex_state->yy_limit;
266
267
0
  zend_stack_destroy(&SCNG(state_stack));
268
0
  SCNG(state_stack) = lex_state->state_stack;
269
270
0
  zend_stack_destroy(&SCNG(nest_location_stack));
271
0
  SCNG(nest_location_stack) = lex_state->nest_location_stack;
272
273
0
  zend_ptr_stack_clean(&SCNG(heredoc_label_stack), (void (*)(void *)) &heredoc_label_dtor, 1);
274
0
  zend_ptr_stack_destroy(&SCNG(heredoc_label_stack));
275
0
  SCNG(heredoc_label_stack) = lex_state->heredoc_label_stack;
276
277
0
  SCNG(yy_in) = lex_state->in;
278
0
  YYSETCONDITION(lex_state->yy_state);
279
0
  CG(zend_lineno) = lex_state->lineno;
280
0
  zend_restore_compiled_filename(lex_state->filename);
281
282
0
  if (SCNG(script_filtered) && SCNG(script_filtered) != lex_state->script_filtered) {
283
0
    efree(SCNG(script_filtered));
284
0
    SCNG(script_filtered) = NULL;
285
0
  }
286
0
  SCNG(script_org) = lex_state->script_org;
287
0
  SCNG(script_org_size) = lex_state->script_org_size;
288
0
  SCNG(script_filtered) = lex_state->script_filtered;
289
0
  SCNG(script_filtered_size) = lex_state->script_filtered_size;
290
0
  SCNG(input_filter) = lex_state->input_filter;
291
0
  SCNG(output_filter) = lex_state->output_filter;
292
0
  SCNG(script_encoding) = lex_state->script_encoding;
293
294
0
  SCNG(on_event) = lex_state->on_event;
295
0
  SCNG(on_event_context) = lex_state->on_event_context;
296
297
0
  CG(ast) = lex_state->ast;
298
0
  CG(ast_arena) = lex_state->ast_arena;
299
300
0
  RESET_DOC_COMMENT();
301
0
}
302
303
ZEND_API zend_result zend_lex_tstring(zval *zv, unsigned char *ident)
304
0
{
305
0
  unsigned char *end = ident;
306
0
  while ((*end >= 'a' && *end <= 'z') || (*end >= 'A' && *end <= 'Z') || *end == '_') {
307
0
    end++;
308
0
  }
309
310
0
  size_t length = end - ident;
311
0
  if (length == 0) {
312
0
    ZEND_ASSERT(ident[0] == '<' && ident[1] == '?' && ident[2] == '=');
313
0
    zend_throw_exception(zend_ce_parse_error, "Cannot use \"<?=\" as an identifier", 0);
314
0
    return FAILURE;
315
0
  }
316
317
0
  if (SCNG(on_event)) {
318
0
    SCNG(on_event)(ON_FEEDBACK, T_STRING, 0, (char *) ident, length, SCNG(on_event_context));
319
0
  }
320
321
0
  ZVAL_STRINGL(zv, (char *) ident, length);
322
0
  return SUCCESS;
323
0
}
324
325
0
#define BOM_UTF32_BE  "\x00\x00\xfe\xff"
326
0
#define BOM_UTF32_LE  "\xff\xfe\x00\x00"
327
0
#define BOM_UTF16_BE  "\xfe\xff"
328
0
#define BOM_UTF16_LE  "\xff\xfe"
329
0
#define BOM_UTF8    "\xef\xbb\xbf"
330
331
static const zend_encoding *zend_multibyte_detect_utf_encoding(const unsigned char *script, size_t script_size)
332
0
{
333
0
  const unsigned char *p;
334
0
  int wchar_size = 2;
335
0
  int le = 0;
336
337
  /* utf-16 or utf-32? */
338
0
  p = script;
339
0
  assert(p >= script);
340
0
  while ((size_t)(p-script) < script_size) {
341
0
    p = memchr(p, 0, script_size-(p-script)-2);
342
0
    if (!p) {
343
0
      break;
344
0
    }
345
0
    if (*(p+1) == '\0' && *(p+2) == '\0') {
346
0
      wchar_size = 4;
347
0
      break;
348
0
    }
349
350
    /* searching for UTF-32 specific byte orders, so this will do */
351
0
    p += 4;
352
0
  }
353
354
  /* BE or LE? */
355
0
  p = script;
356
0
  assert(p >= script);
357
0
  while ((size_t)(p-script) < script_size) {
358
0
    if (*p == '\0' && *(p+wchar_size-1) != '\0') {
359
      /* BE */
360
0
      le = 0;
361
0
      break;
362
0
    } else if (*p != '\0' && *(p+wchar_size-1) == '\0') {
363
      /* LE* */
364
0
      le = 1;
365
0
      break;
366
0
    }
367
0
    p += wchar_size;
368
0
  }
369
370
0
  if (wchar_size == 2) {
371
0
    return le ? zend_multibyte_encoding_utf16le : zend_multibyte_encoding_utf16be;
372
0
  } else {
373
0
    return le ? zend_multibyte_encoding_utf32le : zend_multibyte_encoding_utf32be;
374
0
  }
375
376
0
  return NULL;
377
0
}
378
379
static const zend_encoding* zend_multibyte_detect_unicode(void)
380
0
{
381
0
  const zend_encoding *script_encoding = NULL;
382
0
  int bom_size;
383
0
  unsigned char *pos1, *pos2;
384
385
0
  if (LANG_SCNG(script_org_size) < sizeof(BOM_UTF32_LE)-1) {
386
0
    return NULL;
387
0
  }
388
389
  /* check out BOM */
390
0
  if (!memcmp(LANG_SCNG(script_org), BOM_UTF32_BE, sizeof(BOM_UTF32_BE)-1)) {
391
0
    script_encoding = zend_multibyte_encoding_utf32be;
392
0
    bom_size = sizeof(BOM_UTF32_BE)-1;
393
0
  } else if (!memcmp(LANG_SCNG(script_org), BOM_UTF32_LE, sizeof(BOM_UTF32_LE)-1)) {
394
0
    script_encoding = zend_multibyte_encoding_utf32le;
395
0
    bom_size = sizeof(BOM_UTF32_LE)-1;
396
0
  } else if (!memcmp(LANG_SCNG(script_org), BOM_UTF16_BE, sizeof(BOM_UTF16_BE)-1)) {
397
0
    script_encoding = zend_multibyte_encoding_utf16be;
398
0
    bom_size = sizeof(BOM_UTF16_BE)-1;
399
0
  } else if (!memcmp(LANG_SCNG(script_org), BOM_UTF16_LE, sizeof(BOM_UTF16_LE)-1)) {
400
0
    script_encoding = zend_multibyte_encoding_utf16le;
401
0
    bom_size = sizeof(BOM_UTF16_LE)-1;
402
0
  } else if (!memcmp(LANG_SCNG(script_org), BOM_UTF8, sizeof(BOM_UTF8)-1)) {
403
0
    script_encoding = zend_multibyte_encoding_utf8;
404
0
    bom_size = sizeof(BOM_UTF8)-1;
405
0
  }
406
407
0
  if (script_encoding) {
408
    /* remove BOM */
409
0
    LANG_SCNG(script_org) += bom_size;
410
0
    LANG_SCNG(script_org_size) -= bom_size;
411
412
0
    return script_encoding;
413
0
  }
414
415
  /* script contains NULL bytes -> auto-detection */
416
0
  if ((pos1 = memchr(LANG_SCNG(script_org), 0, LANG_SCNG(script_org_size)))) {
417
    /* check if the NULL byte is after the __HALT_COMPILER(); */
418
0
    pos2 = LANG_SCNG(script_org);
419
420
0
    while ((size_t)(pos1 - pos2) >= sizeof("__HALT_COMPILER();")-1) {
421
0
      pos2 = memchr(pos2, '_', pos1 - pos2);
422
0
      if (!pos2) break;
423
0
      pos2++;
424
0
      if (strncasecmp((char*)pos2, "_HALT_COMPILER", sizeof("_HALT_COMPILER")-1) == 0) {
425
0
        pos2 += sizeof("_HALT_COMPILER")-1;
426
0
        while (*pos2 == ' '  ||
427
0
             *pos2 == '\t' ||
428
0
             *pos2 == '\r' ||
429
0
             *pos2 == '\n') {
430
0
          pos2++;
431
0
        }
432
0
        if (*pos2 == '(') {
433
0
          pos2++;
434
0
          while (*pos2 == ' '  ||
435
0
               *pos2 == '\t' ||
436
0
               *pos2 == '\r' ||
437
0
               *pos2 == '\n') {
438
0
            pos2++;
439
0
          }
440
0
          if (*pos2 == ')') {
441
0
            pos2++;
442
0
            while (*pos2 == ' '  ||
443
0
                 *pos2 == '\t' ||
444
0
                 *pos2 == '\r' ||
445
0
                 *pos2 == '\n') {
446
0
              pos2++;
447
0
            }
448
0
            if (*pos2 == ';') {
449
0
              return NULL;
450
0
            }
451
0
          }
452
0
        }
453
0
      }
454
0
    }
455
    /* make best effort if BOM is missing */
456
0
    return zend_multibyte_detect_utf_encoding(LANG_SCNG(script_org), LANG_SCNG(script_org_size));
457
0
  }
458
459
0
  return NULL;
460
0
}
461
462
static const zend_encoding* zend_multibyte_find_script_encoding(void)
463
0
{
464
0
  const zend_encoding *script_encoding;
465
466
0
  if (CG(detect_unicode)) {
467
    /* check out bom(byte order mark) and see if containing wchars */
468
0
    script_encoding = zend_multibyte_detect_unicode();
469
0
    if (script_encoding != NULL) {
470
      /* bom or wchar detection is prior to 'script_encoding' option */
471
0
      return script_encoding;
472
0
    }
473
0
  }
474
475
  /* if no script_encoding specified, just leave alone */
476
0
  if (!CG(script_encoding_list) || !CG(script_encoding_list_size)) {
477
0
    return NULL;
478
0
  }
479
480
  /* if multiple encodings specified, detect automagically */
481
0
  if (CG(script_encoding_list_size) > 1) {
482
0
    return zend_multibyte_encoding_detector(LANG_SCNG(script_org), LANG_SCNG(script_org_size), CG(script_encoding_list), CG(script_encoding_list_size));
483
0
  }
484
485
0
  return CG(script_encoding_list)[0];
486
0
}
487
488
ZEND_API zend_result zend_multibyte_set_filter(const zend_encoding *onetime_encoding)
489
0
{
490
0
  const zend_encoding *internal_encoding = zend_multibyte_get_internal_encoding();
491
0
  const zend_encoding *script_encoding = onetime_encoding ? onetime_encoding: zend_multibyte_find_script_encoding();
492
493
0
  if (!script_encoding) {
494
0
    return FAILURE;
495
0
  }
496
497
  /* judge input/output filter */
498
0
  LANG_SCNG(script_encoding) = script_encoding;
499
0
  LANG_SCNG(input_filter) = NULL;
500
0
  LANG_SCNG(output_filter) = NULL;
501
502
0
  if (!internal_encoding || LANG_SCNG(script_encoding) == internal_encoding) {
503
0
    if (!zend_multibyte_check_lexer_compatibility(LANG_SCNG(script_encoding))) {
504
      /* and if not, work around w/ script_encoding -> utf-8 -> script_encoding conversion */
505
0
      LANG_SCNG(input_filter) = encoding_filter_script_to_intermediate;
506
0
      LANG_SCNG(output_filter) = encoding_filter_intermediate_to_script;
507
0
    } else {
508
0
      LANG_SCNG(input_filter) = NULL;
509
0
      LANG_SCNG(output_filter) = NULL;
510
0
    }
511
0
    return SUCCESS;
512
0
  }
513
514
0
  if (zend_multibyte_check_lexer_compatibility(internal_encoding)) {
515
0
    LANG_SCNG(input_filter) = encoding_filter_script_to_internal;
516
0
    LANG_SCNG(output_filter) = NULL;
517
0
  } else if (zend_multibyte_check_lexer_compatibility(LANG_SCNG(script_encoding))) {
518
0
    LANG_SCNG(input_filter) = NULL;
519
0
    LANG_SCNG(output_filter) = encoding_filter_script_to_internal;
520
0
  } else {
521
    /* both script and internal encodings are incompatible w/ flex */
522
0
    LANG_SCNG(input_filter) = encoding_filter_script_to_intermediate;
523
0
    LANG_SCNG(output_filter) = encoding_filter_intermediate_to_internal;
524
0
  }
525
526
0
  return SUCCESS;
527
0
}
528
529
ZEND_API zend_result open_file_for_scanning(zend_file_handle *file_handle)
530
0
{
531
0
  char *buf;
532
0
  size_t size;
533
0
  zend_string *compiled_filename;
534
535
0
  if (zend_stream_fixup(file_handle, &buf, &size) == FAILURE) {
536
    /* Still add it to open_files to make destroy_file_handle work */
537
0
    zend_llist_add_element(&CG(open_files), file_handle);
538
0
    file_handle->in_list = 1;
539
0
    return FAILURE;
540
0
  }
541
542
0
  ZEND_ASSERT(!EG(exception) && "stream_fixup() should have failed");
543
0
  zend_llist_add_element(&CG(open_files), file_handle);
544
0
  file_handle->in_list = 1;
545
546
  /* Reset the scanner for scanning the new file */
547
0
  SCNG(yy_in) = file_handle;
548
0
  SCNG(yy_start) = NULL;
549
550
0
  if (size != (size_t)-1) {
551
0
    if (CG(multibyte)) {
552
0
      SCNG(script_org) = (unsigned char*)buf;
553
0
      SCNG(script_org_size) = size;
554
0
      SCNG(script_filtered) = NULL;
555
556
0
      zend_multibyte_set_filter(NULL);
557
558
0
      if (SCNG(input_filter)) {
559
0
        if ((size_t)-1 == SCNG(input_filter)(&SCNG(script_filtered), &SCNG(script_filtered_size), SCNG(script_org), SCNG(script_org_size))) {
560
0
          zend_error_noreturn(E_COMPILE_ERROR, "Could not convert the script from the detected "
561
0
              "encoding \"%s\" to a compatible encoding", zend_multibyte_get_encoding_name(LANG_SCNG(script_encoding)));
562
0
        }
563
0
        buf = (char*)SCNG(script_filtered);
564
0
        size = SCNG(script_filtered_size);
565
0
      }
566
0
    }
567
0
    SCNG(yy_start) = (unsigned char *)buf;
568
0
    yy_scan_buffer(buf, size);
569
0
  } else {
570
0
    zend_error_noreturn(E_COMPILE_ERROR, "zend_stream_mmap() failed");
571
0
  }
572
573
0
  if (CG(skip_shebang)) {
574
0
    BEGIN(SHEBANG);
575
0
  } else {
576
0
    BEGIN(INITIAL);
577
0
  }
578
579
0
  if (file_handle->opened_path) {
580
0
    compiled_filename = zend_string_copy(file_handle->opened_path);
581
0
  } else {
582
0
    compiled_filename = zend_string_copy(file_handle->filename);
583
0
  }
584
585
0
  zend_set_compiled_filename(compiled_filename);
586
0
  zend_string_release_ex(compiled_filename, 0);
587
588
0
  SCNG(on_event) = NULL;
589
0
  SCNG(on_event_context) = NULL;
590
0
  RESET_DOC_COMMENT();
591
0
  CG(zend_lineno) = 1;
592
0
  CG(increment_lineno) = 0;
593
0
  return SUCCESS;
594
0
}
595
596
static zend_op_array *zend_compile(zend_function_type type)
597
0
{
598
0
  zend_op_array *op_array = NULL;
599
0
  bool original_in_compilation = CG(in_compilation);
600
601
0
  CG(in_compilation) = 1;
602
0
  CG(ast) = NULL;
603
0
  CG(ast_arena) = zend_arena_create(1024 * 32);
604
605
0
  if (!zendparse()) {
606
0
    uint32_t last_lineno = CG(zend_lineno);
607
0
    zend_file_context original_file_context;
608
0
    zend_oparray_context original_oparray_context;
609
0
    zend_op_array *original_active_op_array = CG(active_op_array);
610
611
0
    op_array = emalloc(sizeof(zend_op_array));
612
0
    init_op_array(op_array, type, INITIAL_OP_ARRAY_SIZE);
613
0
    CG(active_op_array) = op_array;
614
615
    /* Use heap to not waste arena memory */
616
0
    op_array->fn_flags |= ZEND_ACC_HEAP_RT_CACHE;
617
618
0
    if (zend_ast_process) {
619
0
      zend_ast_process(CG(ast));
620
0
    }
621
622
0
    zend_file_context_begin(&original_file_context);
623
0
    zend_oparray_context_begin(&original_oparray_context, op_array);
624
0
    zend_compile_top_stmt(CG(ast));
625
0
    CG(zend_lineno) = last_lineno;
626
0
    zend_emit_final_return(type == ZEND_USER_FUNCTION);
627
0
    op_array->line_start = 1;
628
0
    op_array->line_end = last_lineno;
629
0
    pass_two(op_array);
630
0
    zend_oparray_context_end(&original_oparray_context);
631
0
    zend_file_context_end(&original_file_context);
632
633
0
    CG(active_op_array) = original_active_op_array;
634
0
  }
635
636
0
  zend_ast_destroy(CG(ast));
637
0
  zend_arena_destroy(CG(ast_arena));
638
639
0
  CG(in_compilation) = original_in_compilation;
640
641
0
  return op_array;
642
0
}
643
644
ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type)
645
0
{
646
0
  zend_lex_state original_lex_state;
647
0
  zend_op_array *op_array = NULL;
648
0
  zend_save_lexical_state(&original_lex_state);
649
650
0
  if (open_file_for_scanning(file_handle)==FAILURE) {
651
0
    if (!EG(exception)) {
652
0
      if (type==ZEND_REQUIRE) {
653
0
        zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, ZSTR_VAL(file_handle->filename));
654
0
      } else {
655
0
        zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, ZSTR_VAL(file_handle->filename));
656
0
      }
657
0
    }
658
0
  } else {
659
0
    bool orig_record_errors = EG(record_errors);
660
0
    if (!orig_record_errors) {
661
0
      zend_begin_record_errors();
662
0
    }
663
664
0
    op_array = zend_compile(ZEND_USER_FUNCTION);
665
666
0
    if (!orig_record_errors) {
667
0
      zend_emit_recorded_errors();
668
0
      zend_free_recorded_errors();
669
0
    }
670
0
  }
671
672
0
  zend_restore_lexical_state(&original_lex_state);
673
0
  return op_array;
674
0
}
675
676
ZEND_API zend_ast *zend_compile_string_to_ast(
677
0
    zend_string *code, zend_arena **ast_arena, zend_string *filename) {
678
0
  zval code_zv;
679
0
  bool original_in_compilation;
680
0
  zend_lex_state original_lex_state;
681
0
  zend_ast *ast;
682
683
0
  ZVAL_STR_COPY(&code_zv, code);
684
685
0
  original_in_compilation = CG(in_compilation);
686
0
  CG(in_compilation) = 1;
687
688
0
  zend_save_lexical_state(&original_lex_state);
689
0
  zend_prepare_string_for_scanning(&code_zv, filename);
690
0
  CG(ast) = NULL;
691
0
  CG(ast_arena) = zend_arena_create(1024 * 32);
692
0
  LANG_SCNG(yy_state) = yycINITIAL;
693
694
0
  if (zendparse() != 0) {
695
0
    zend_ast_destroy(CG(ast));
696
0
    zend_arena_destroy(CG(ast_arena));
697
0
    CG(ast) = NULL;
698
0
  }
699
700
  /* restore_lexical_state changes CG(ast) and CG(ast_arena) */
701
0
  ast = CG(ast);
702
0
  *ast_arena = CG(ast_arena);
703
704
0
  zend_restore_lexical_state(&original_lex_state);
705
0
  CG(in_compilation) = original_in_compilation;
706
707
0
  zval_ptr_dtor_str(&code_zv);
708
709
0
  return ast;
710
0
}
711
712
zend_op_array *compile_filename(int type, zend_string *filename)
713
0
{
714
0
  zend_file_handle file_handle;
715
0
  zend_op_array *retval;
716
0
  zend_string *opened_path = NULL;
717
718
0
  zend_stream_init_filename_ex(&file_handle, filename);
719
720
0
  retval = zend_compile_file(&file_handle, type);
721
0
  if (retval && file_handle.handle.stream.handle) {
722
0
    if (!file_handle.opened_path) {
723
0
      file_handle.opened_path = opened_path = zend_string_copy(filename);
724
0
    }
725
726
0
    zend_hash_add_empty_element(&EG(included_files), file_handle.opened_path);
727
728
0
    if (opened_path) {
729
0
      zend_string_release_ex(opened_path, 0);
730
0
    }
731
0
  }
732
0
  zend_destroy_file_handle(&file_handle);
733
734
0
  return retval;
735
0
}
736
737
ZEND_API void zend_prepare_string_for_scanning(zval *str, zend_string *filename)
738
0
{
739
0
  char *buf;
740
0
  size_t size, old_len;
741
742
  /* enforce ZEND_MMAP_AHEAD trailing NULLs for flex... */
743
0
  old_len = Z_STRLEN_P(str);
744
0
  Z_STR_P(str) = zend_string_extend(Z_STR_P(str), old_len + ZEND_MMAP_AHEAD, 0);
745
0
  Z_TYPE_INFO_P(str) = IS_STRING_EX;
746
0
  memset(Z_STRVAL_P(str) + old_len, 0, ZEND_MMAP_AHEAD + 1);
747
748
0
  SCNG(yy_in) = NULL;
749
0
  SCNG(yy_start) = NULL;
750
751
0
  buf = Z_STRVAL_P(str);
752
0
  size = old_len;
753
754
0
  if (CG(multibyte)) {
755
0
    SCNG(script_org) = (unsigned char*)buf;
756
0
    SCNG(script_org_size) = size;
757
0
    SCNG(script_filtered) = NULL;
758
759
0
    zend_multibyte_set_filter(zend_multibyte_get_internal_encoding());
760
761
0
    if (SCNG(input_filter)) {
762
0
      if ((size_t)-1 == SCNG(input_filter)(&SCNG(script_filtered), &SCNG(script_filtered_size), SCNG(script_org), SCNG(script_org_size))) {
763
0
        zend_error_noreturn(E_COMPILE_ERROR, "Could not convert the script from the detected "
764
0
            "encoding \"%s\" to a compatible encoding", zend_multibyte_get_encoding_name(LANG_SCNG(script_encoding)));
765
0
      }
766
0
      buf = (char*)SCNG(script_filtered);
767
0
      size = SCNG(script_filtered_size);
768
0
    }
769
0
  }
770
771
0
  yy_scan_buffer(buf, size);
772
0
  zend_set_compiled_filename(filename);
773
0
  CG(zend_lineno) = 1;
774
0
  CG(increment_lineno) = 0;
775
0
  SCNG(on_event) = NULL;
776
0
  SCNG(on_event_context) = NULL;
777
0
  RESET_DOC_COMMENT();
778
0
}
779
780
781
ZEND_API size_t zend_get_scanned_file_offset(void)
782
0
{
783
0
  size_t offset = SCNG(yy_cursor) - SCNG(yy_start);
784
0
  if (SCNG(input_filter)) {
785
0
    size_t original_offset = offset, length = 0;
786
0
    do {
787
0
      unsigned char *p = NULL;
788
0
      if ((size_t)-1 == SCNG(input_filter)(&p, &length, SCNG(script_org), offset)) {
789
0
        return (size_t)-1;
790
0
      }
791
0
      efree(p);
792
0
      if (length > original_offset) {
793
0
        offset--;
794
0
      } else if (length < original_offset) {
795
0
        offset++;
796
0
      }
797
0
    } while (original_offset != length);
798
0
  }
799
0
  return offset;
800
0
}
801
802
zend_op_array *compile_string(zend_string *source_string, const char *filename, zend_compile_position position)
803
0
{
804
0
  zend_lex_state original_lex_state;
805
0
  zend_op_array *op_array = NULL;
806
0
  zval tmp;
807
0
  zend_string *filename_str;
808
809
0
  if (ZSTR_LEN(source_string) == 0) {
810
0
    return NULL;
811
0
  }
812
813
0
  ZVAL_STR_COPY(&tmp, source_string);
814
815
0
  zend_save_lexical_state(&original_lex_state);
816
0
  filename_str = zend_string_init(filename, strlen(filename), 0);
817
0
  zend_prepare_string_for_scanning(&tmp, filename_str);
818
0
  zend_string_release(filename_str);
819
820
0
  switch (position) {
821
0
    case ZEND_COMPILE_POSITION_AT_SHEBANG:
822
0
      BEGIN(SHEBANG);
823
0
      break;
824
0
    case ZEND_COMPILE_POSITION_AT_OPEN_TAG:
825
0
      BEGIN(INITIAL);
826
0
      break;
827
0
    case ZEND_COMPILE_POSITION_AFTER_OPEN_TAG:
828
0
      BEGIN(ST_IN_SCRIPTING);
829
0
      break;
830
0
  }
831
832
0
  op_array = zend_compile(ZEND_EVAL_CODE);
833
834
0
  zend_restore_lexical_state(&original_lex_state);
835
0
  zval_ptr_dtor(&tmp);
836
837
0
  return op_array;
838
0
}
839
840
841
zend_result highlight_file(const char *filename, zend_syntax_highlighter_ini *syntax_highlighter_ini)
842
0
{
843
0
  zend_lex_state original_lex_state;
844
0
  zend_file_handle file_handle;
845
846
0
  zend_stream_init_filename(&file_handle, filename);
847
0
  zend_save_lexical_state(&original_lex_state);
848
0
  if (open_file_for_scanning(&file_handle)==FAILURE) {
849
0
    zend_message_dispatcher(ZMSG_FAILED_HIGHLIGHT_FOPEN, filename);
850
0
    zend_destroy_file_handle(&file_handle);
851
0
    zend_restore_lexical_state(&original_lex_state);
852
0
    return FAILURE;
853
0
  }
854
0
  zend_highlight(syntax_highlighter_ini);
855
0
  if (SCNG(script_filtered)) {
856
0
    efree(SCNG(script_filtered));
857
0
    SCNG(script_filtered) = NULL;
858
0
  }
859
0
  zend_destroy_file_handle(&file_handle);
860
0
  zend_restore_lexical_state(&original_lex_state);
861
0
  return SUCCESS;
862
0
}
863
864
void highlight_string(zend_string *str, zend_syntax_highlighter_ini *syntax_highlighter_ini, const char *filename)
865
0
{
866
0
  zend_lex_state original_lex_state;
867
0
  zval str_zv;
868
0
  zend_string *filename_str = zend_string_init(filename, strlen(filename), 0);
869
0
  ZVAL_STR_COPY(&str_zv, str);
870
0
  zend_save_lexical_state(&original_lex_state);
871
0
  zend_prepare_string_for_scanning(&str_zv, filename_str);
872
0
  zend_string_release(filename_str);
873
0
  BEGIN(INITIAL);
874
0
  zend_highlight(syntax_highlighter_ini);
875
0
  if (SCNG(script_filtered)) {
876
0
    efree(SCNG(script_filtered));
877
0
    SCNG(script_filtered) = NULL;
878
0
  }
879
0
  zend_restore_lexical_state(&original_lex_state);
880
0
  zval_ptr_dtor(&str_zv);
881
0
}
882
883
ZEND_API void zend_multibyte_yyinput_again(zend_encoding_filter old_input_filter, const zend_encoding *old_encoding)
884
0
{
885
0
  size_t length;
886
0
  unsigned char *new_yy_start;
887
888
  /* convert and set */
889
0
  if (!SCNG(input_filter)) {
890
0
    if (SCNG(script_filtered)) {
891
0
      efree(SCNG(script_filtered));
892
0
      SCNG(script_filtered) = NULL;
893
0
    }
894
0
    SCNG(script_filtered_size) = 0;
895
0
    length = SCNG(script_org_size);
896
0
    new_yy_start = SCNG(script_org);
897
0
  } else {
898
0
    if ((size_t)-1 == SCNG(input_filter)(&new_yy_start, &length, SCNG(script_org), SCNG(script_org_size))) {
899
0
      zend_error_noreturn(E_COMPILE_ERROR, "Could not convert the script from the detected "
900
0
          "encoding \"%s\" to a compatible encoding", zend_multibyte_get_encoding_name(LANG_SCNG(script_encoding)));
901
0
    }
902
0
    if (SCNG(script_filtered)) {
903
0
      efree(SCNG(script_filtered));
904
0
    }
905
0
    SCNG(script_filtered) = new_yy_start;
906
0
    SCNG(script_filtered_size) = length;
907
0
  }
908
909
0
  SCNG(yy_cursor) = new_yy_start + (SCNG(yy_cursor) - SCNG(yy_start));
910
0
  SCNG(yy_marker) = new_yy_start + (SCNG(yy_marker) - SCNG(yy_start));
911
0
  SCNG(yy_text) = new_yy_start + (SCNG(yy_text) - SCNG(yy_start));
912
0
  SCNG(yy_limit) = new_yy_start + length;
913
914
0
  SCNG(yy_start) = new_yy_start;
915
0
}
916
917
918
// TODO: avoid reallocation ???
919
# define zend_copy_value(zendlval, yytext, yyleng) \
920
0
  if (SCNG(output_filter)) { \
921
0
    size_t sz = 0; \
922
0
    char *s = NULL; \
923
0
    SCNG(output_filter)((unsigned char **)&s, &sz, (unsigned char *)yytext, (size_t)yyleng); \
924
0
    ZVAL_STRINGL(zendlval, s, sz); \
925
0
    efree(s); \
926
0
  } else if (yyleng == 1) { \
927
0
    ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR((zend_uchar)*(yytext))); \
928
0
  } else { \
929
0
    ZVAL_STRINGL(zendlval, yytext, yyleng); \
930
0
  }
931
932
static zend_result zend_scan_escape_string(zval *zendlval, char *str, size_t len, char quote_type)
933
0
{
934
0
  char *s, *t;
935
0
  char *end;
936
937
0
  if (len <= 1) {
938
0
    if (len < 1) {
939
0
      ZVAL_EMPTY_STRING(zendlval);
940
0
    } else {
941
0
      zend_uchar c = (zend_uchar)*str;
942
0
      HANDLE_NEWLINE(c);
943
0
      ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR(c));
944
0
    }
945
0
    goto skip_escape_conversion;
946
0
  }
947
948
0
  ZVAL_STRINGL(zendlval, str, len);
949
950
  /* convert escape sequences */
951
0
  s = Z_STRVAL_P(zendlval);
952
0
  end = s+Z_STRLEN_P(zendlval);
953
0
  while (1) {
954
0
    if (UNEXPECTED(*s=='\\')) {
955
0
      break;
956
0
    }
957
0
    if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
958
0
      CG(zend_lineno)++;
959
0
    }
960
0
    s++;
961
0
    if (s == end) {
962
0
      goto skip_escape_conversion;
963
0
    }
964
0
  }
965
966
0
  t = s;
967
0
  while (s<end) {
968
0
    if (*s=='\\') {
969
0
      s++;
970
0
      if (s >= end) {
971
0
        *t++ = '\\';
972
0
        break;
973
0
      }
974
975
0
      switch(*s) {
976
0
        case 'n':
977
0
          *t++ = '\n';
978
0
          break;
979
0
        case 'r':
980
0
          *t++ = '\r';
981
0
          break;
982
0
        case 't':
983
0
          *t++ = '\t';
984
0
          break;
985
0
        case 'f':
986
0
          *t++ = '\f';
987
0
          break;
988
0
        case 'v':
989
0
          *t++ = '\v';
990
0
          break;
991
0
        case 'e':
992
#ifdef ZEND_WIN32
993
          *t++ = VK_ESCAPE;
994
#else
995
0
          *t++ = '\e';
996
0
#endif
997
0
          break;
998
0
        case '"':
999
0
        case '`':
1000
0
          if (*s != quote_type) {
1001
0
            *t++ = '\\';
1002
0
            *t++ = *s;
1003
0
            break;
1004
0
          }
1005
0
          ZEND_FALLTHROUGH;
1006
0
        case '\\':
1007
0
        case '$':
1008
0
          *t++ = *s;
1009
0
          break;
1010
0
        case 'x':
1011
0
        case 'X':
1012
0
          if (ZEND_IS_HEX(*(s+1))) {
1013
0
            char hex_buf[3] = { 0, 0, 0 };
1014
1015
0
            hex_buf[0] = *(++s);
1016
0
            if (ZEND_IS_HEX(*(s+1))) {
1017
0
              hex_buf[1] = *(++s);
1018
0
            }
1019
0
            *t++ = (char) ZEND_STRTOL(hex_buf, NULL, 16);
1020
0
          } else {
1021
0
            *t++ = '\\';
1022
0
            *t++ = *s;
1023
0
          }
1024
0
          break;
1025
        /* UTF-8 codepoint escape, format: /\\u\{\x+\}/ */
1026
0
        case 'u':
1027
0
          {
1028
            /* cache where we started so we can parse after validating */
1029
0
            char *start = s + 1;
1030
0
            size_t len = 0;
1031
0
            bool valid = 1;
1032
0
            unsigned long codepoint;
1033
1034
0
            if (*start != '{') {
1035
              /* we silently let this pass to avoid breaking code
1036
               * with JSON in string literals (e.g. "\"\u202e\""
1037
               */
1038
0
              *t++ = '\\';
1039
0
              *t++ = 'u';
1040
0
              break;
1041
0
            } else {
1042
              /* on the other hand, invalid \u{blah} errors */
1043
0
              s++;
1044
0
              len++;
1045
0
              s++;
1046
0
              while (*s != '}') {
1047
0
                if (!ZEND_IS_HEX(*s)) {
1048
0
                  valid = 0;
1049
0
                  break;
1050
0
                } else {
1051
0
                  len++;
1052
0
                }
1053
0
                s++;
1054
0
              }
1055
0
              if (*s == '}') {
1056
0
                valid = 1;
1057
0
                len++;
1058
0
              }
1059
0
            }
1060
1061
            /* \u{} is invalid */
1062
0
            if (len <= 2) {
1063
0
              valid = 0;
1064
0
            }
1065
1066
0
            if (!valid) {
1067
0
              zend_throw_exception(zend_ce_parse_error,
1068
0
                "Invalid UTF-8 codepoint escape sequence", 0);
1069
0
              zval_ptr_dtor(zendlval);
1070
0
              ZVAL_UNDEF(zendlval);
1071
0
              return FAILURE;
1072
0
            }
1073
1074
0
            errno = 0;
1075
0
            codepoint = strtoul(start + 1, NULL, 16);
1076
1077
            /* per RFC 3629, UTF-8 can only represent 21 bits */
1078
0
            if (codepoint > 0x10FFFF || errno) {
1079
0
              zend_throw_exception(zend_ce_parse_error,
1080
0
                "Invalid UTF-8 codepoint escape sequence: Codepoint too large", 0);
1081
0
              zval_ptr_dtor(zendlval);
1082
0
              ZVAL_UNDEF(zendlval);
1083
0
              return FAILURE;
1084
0
            }
1085
1086
            /* based on https://en.wikipedia.org/wiki/UTF-8#Sample_code */
1087
0
            if (codepoint < 0x80) {
1088
0
              *t++ = codepoint;
1089
0
            } else if (codepoint <= 0x7FF) {
1090
0
              *t++ = (codepoint >> 6) + 0xC0;
1091
0
              *t++ = (codepoint & 0x3F) + 0x80;
1092
0
            } else if (codepoint <= 0xFFFF) {
1093
0
              *t++ = (codepoint >> 12) + 0xE0;
1094
0
              *t++ = ((codepoint >> 6) & 0x3F) + 0x80;
1095
0
              *t++ = (codepoint & 0x3F) + 0x80;
1096
0
            } else if (codepoint <= 0x10FFFF) {
1097
0
              *t++ = (codepoint >> 18) + 0xF0;
1098
0
              *t++ = ((codepoint >> 12) & 0x3F) + 0x80;
1099
0
              *t++ = ((codepoint >> 6) & 0x3F) + 0x80;
1100
0
              *t++ = (codepoint & 0x3F) + 0x80;
1101
0
            }
1102
0
          }
1103
0
          break;
1104
0
        default:
1105
          /* check for an octal */
1106
0
          if (ZEND_IS_OCT(*s)) {
1107
0
            char octal_buf[4] = { 0, 0, 0, 0 };
1108
1109
0
            octal_buf[0] = *s;
1110
0
            if (ZEND_IS_OCT(*(s+1))) {
1111
0
              octal_buf[1] = *(++s);
1112
0
              if (ZEND_IS_OCT(*(s+1))) {
1113
0
                octal_buf[2] = *(++s);
1114
0
              }
1115
0
            }
1116
0
            if (octal_buf[2] && (octal_buf[0] > '3') && !SCNG(heredoc_scan_ahead)) {
1117
              /* 3 octit values must not overflow 0xFF (\377) */
1118
0
              zend_error(E_COMPILE_WARNING, "Octal escape sequence overflow \\%s is greater than \\377", octal_buf);
1119
0
            }
1120
1121
0
            *t++ = (char) ZEND_STRTOL(octal_buf, NULL, 8);
1122
0
          } else {
1123
0
            *t++ = '\\';
1124
0
            *t++ = *s;
1125
0
          }
1126
0
          break;
1127
0
      }
1128
0
    } else {
1129
0
      *t++ = *s;
1130
0
    }
1131
1132
0
    if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
1133
0
      CG(zend_lineno)++;
1134
0
    }
1135
0
    s++;
1136
0
  }
1137
0
  *t = 0;
1138
0
  Z_STRLEN_P(zendlval) = t - Z_STRVAL_P(zendlval);
1139
1140
0
skip_escape_conversion:
1141
0
  if (SCNG(output_filter)) {
1142
0
    size_t sz = 0;
1143
0
    unsigned char *str;
1144
    // TODO: avoid realocation ???
1145
0
    s = Z_STRVAL_P(zendlval);
1146
0
    SCNG(output_filter)(&str, &sz, (unsigned char *)s, Z_STRLEN_P(zendlval));
1147
0
    zval_ptr_dtor(zendlval);
1148
0
    ZVAL_STRINGL(zendlval, (char *) str, sz);
1149
0
    efree(str);
1150
0
  }
1151
0
  return SUCCESS;
1152
0
}
1153
1154
0
#define HEREDOC_USING_SPACES 1
1155
0
#define HEREDOC_USING_TABS 2
1156
1157
0
static const char *next_newline(const char *str, const char *end, size_t *newline_len) {
1158
0
  for (; str < end; str++) {
1159
0
    if (*str == '\r') {
1160
0
      *newline_len = str + 1 < end && *(str + 1) == '\n' ? 2 : 1;
1161
0
      return str;
1162
0
    } else if (*str == '\n') {
1163
0
      *newline_len = 1;
1164
0
      return str;
1165
0
    }
1166
0
  }
1167
0
  *newline_len = 0;
1168
0
  return NULL;
1169
0
}
1170
1171
static bool strip_multiline_string_indentation(
1172
  zval *zendlval, int indentation, bool using_spaces,
1173
  bool newline_at_start, bool newline_at_end)
1174
0
{
1175
0
  const char *str = Z_STRVAL_P(zendlval), *end = str + Z_STRLEN_P(zendlval);
1176
0
  char *copy = Z_STRVAL_P(zendlval);
1177
1178
0
  uint32_t newline_count = 0;
1179
0
  size_t newline_len;
1180
0
  const char *nl;
1181
1182
0
  if (!newline_at_start) {
1183
0
    nl = next_newline(str, end, &newline_len);
1184
0
    if (!nl) {
1185
0
      return 1;
1186
0
    }
1187
1188
0
    str = nl + newline_len;
1189
0
    copy = (char *) nl + newline_len;
1190
0
    newline_count++;
1191
0
  } else {
1192
0
    nl = str;
1193
0
  }
1194
1195
  /* <= intentional */
1196
0
  while (str <= end && nl) {
1197
0
    size_t skip;
1198
0
    nl = next_newline(str, end, &newline_len);
1199
0
    if (!nl && newline_at_end) {
1200
0
      nl = end;
1201
0
    }
1202
1203
    /* Try to skip indentation */
1204
0
    for (skip = 0; skip < indentation; skip++, str++) {
1205
0
      if (str == nl) {
1206
        /* Don't require full indentation on whitespace-only lines */
1207
0
        break;
1208
0
      }
1209
1210
0
      if (str == end || (*str != ' ' && *str != '\t')) {
1211
0
        CG(zend_lineno) += newline_count;
1212
0
        zend_throw_exception_ex(zend_ce_parse_error, 0,
1213
0
          "Invalid body indentation level (expecting an indentation level of at least %d)", indentation);
1214
0
        goto error;
1215
0
      }
1216
1217
0
      if ((!using_spaces && *str == ' ') || (using_spaces && *str == '\t')) {
1218
0
        CG(zend_lineno) += newline_count;
1219
0
        zend_throw_exception(zend_ce_parse_error,
1220
0
          "Invalid indentation - tabs and spaces cannot be mixed", 0);
1221
0
        goto error;
1222
0
      }
1223
0
    }
1224
1225
0
    if (str == end) {
1226
0
      break;
1227
0
    }
1228
1229
0
    size_t len = nl ? (nl - str + newline_len) : (end - str);
1230
0
    memmove(copy, str, len);
1231
0
    str += len;
1232
0
    copy += len;
1233
0
    newline_count++;
1234
0
  }
1235
1236
0
  *copy = '\0';
1237
0
  Z_STRLEN_P(zendlval) = copy - Z_STRVAL_P(zendlval);
1238
0
  return 1;
1239
1240
0
error:
1241
0
  zval_ptr_dtor_str(zendlval);
1242
0
  ZVAL_UNDEF(zendlval);
1243
1244
0
  return 0;
1245
0
}
1246
1247
static void copy_heredoc_label_stack(void *void_heredoc_label)
1248
0
{
1249
0
  zend_heredoc_label *heredoc_label = void_heredoc_label;
1250
0
  zend_heredoc_label *new_heredoc_label = emalloc(sizeof(zend_heredoc_label));
1251
1252
0
  *new_heredoc_label = *heredoc_label;
1253
0
  new_heredoc_label->label = estrndup(heredoc_label->label, heredoc_label->length);
1254
1255
0
  zend_ptr_stack_push(&SCNG(heredoc_label_stack), (void *) new_heredoc_label);
1256
0
}
1257
1258
/* Check that { }, [ ], ( ) are nested correctly */
1259
static void report_bad_nesting(char opening, uint32_t opening_lineno, char closing)
1260
0
{
1261
0
  char   buf[256];
1262
0
  size_t used = 0;
1263
1264
0
  used = snprintf(buf, sizeof(buf), "Unclosed '%c'", opening);
1265
1266
0
  if (opening_lineno != CG(zend_lineno)) {
1267
0
    used += snprintf(buf + used, sizeof(buf) - used, " on line %d", opening_lineno);
1268
0
  }
1269
1270
0
  if (closing) {   /* 'closing' will be 0 if at end of file */
1271
0
    used += snprintf(buf + used, sizeof(buf) - used, " does not match '%c'", closing);
1272
0
  }
1273
1274
0
  zend_throw_exception(zend_ce_parse_error, buf, 0);
1275
0
}
1276
1277
static void enter_nesting(char opening)
1278
0
{
1279
0
  zend_nest_location nest_loc = {opening, CG(zend_lineno)};
1280
0
  zend_stack_push(&SCNG(nest_location_stack), &nest_loc);
1281
0
}
1282
1283
static zend_result exit_nesting(char closing)
1284
0
{
1285
0
  if (zend_stack_is_empty(&SCNG(nest_location_stack))) {
1286
0
    zend_throw_exception_ex(zend_ce_parse_error, 0, "Unmatched '%c'", closing);
1287
0
    return FAILURE;
1288
0
  }
1289
1290
0
  zend_nest_location *nest_loc = zend_stack_top(&SCNG(nest_location_stack));
1291
0
  char opening = nest_loc->text;
1292
1293
0
  if ((opening == '{' && closing != '}') ||
1294
0
      (opening == '[' && closing != ']') ||
1295
0
      (opening == '(' && closing != ')')) {
1296
0
    report_bad_nesting(opening, nest_loc->lineno, closing);
1297
0
    return FAILURE;
1298
0
  }
1299
1300
0
  zend_stack_del_top(&SCNG(nest_location_stack));
1301
0
  return SUCCESS;
1302
0
}
1303
1304
static zend_result check_nesting_at_end(void)
1305
0
{
1306
0
  if (!zend_stack_is_empty(&SCNG(nest_location_stack))) {
1307
0
    zend_nest_location *nest_loc = zend_stack_top(&SCNG(nest_location_stack));
1308
0
    report_bad_nesting(nest_loc->text, nest_loc->lineno, 0);
1309
0
    return FAILURE;
1310
0
  }
1311
1312
0
  return SUCCESS;
1313
0
}
1314
1315
#define PARSER_MODE() \
1316
0
  EXPECTED(elem != NULL)
1317
1318
0
#define RETURN_TOKEN(_token) do { \
1319
0
    token = _token; \
1320
0
    goto emit_token; \
1321
0
  } while (0)
1322
1323
0
#define RETURN_TOKEN_WITH_VAL(_token) do { \
1324
0
    token = _token; \
1325
0
    goto emit_token_with_val; \
1326
0
  } while (0)
1327
1328
0
#define RETURN_TOKEN_WITH_STR(_token, _offset) do { \
1329
0
    token = _token; \
1330
0
    offset = _offset; \
1331
0
    goto emit_token_with_str; \
1332
0
  } while (0)
1333
1334
0
#define RETURN_TOKEN_WITH_IDENT(_token) do { \
1335
0
    token = _token; \
1336
0
    goto emit_token_with_ident; \
1337
0
  } while (0)
1338
1339
0
#define RETURN_OR_SKIP_TOKEN(_token) do { \
1340
0
    token = _token; \
1341
0
    if (PARSER_MODE()) { \
1342
0
      goto skip_token; \
1343
0
    } \
1344
0
    goto emit_token; \
1345
0
  } while (0)
1346
1347
0
#define RETURN_EXIT_NESTING_TOKEN(_token) do { \
1348
0
    if (exit_nesting(_token) != SUCCESS && PARSER_MODE()) { \
1349
0
      RETURN_TOKEN(T_ERROR); \
1350
0
    } else { \
1351
0
      RETURN_TOKEN(_token); \
1352
0
    } \
1353
0
  } while(0)
1354
1355
0
#define RETURN_END_TOKEN do { \
1356
0
    if (check_nesting_at_end() != SUCCESS && PARSER_MODE()) { \
1357
0
      RETURN_TOKEN(T_ERROR); \
1358
0
    } else { \
1359
0
      RETURN_TOKEN(END); \
1360
0
    } \
1361
0
  } while (0)
1362
1363
int ZEND_FASTCALL lex_scan(zval *zendlval, zend_parser_stack_elem *elem)
1364
0
{
1365
0
int token;
1366
0
int offset;
1367
0
uint32_t start_line = CG(zend_lineno);
1368
1369
0
  ZVAL_UNDEF(zendlval);
1370
0
restart:
1371
0
  SCNG(yy_text) = YYCURSOR;
1372
1373
1374
0
#line 1375 "Zend/zend_language_scanner.c"
1375
0
{
1376
0
  YYCTYPE yych;
1377
0
  unsigned int yyaccept = 0;
1378
0
  if (YYGETCONDITION() < 5) {
1379
0
    if (YYGETCONDITION() < 2) {
1380
0
      if (YYGETCONDITION() < 1) {
1381
0
        goto yyc_ST_IN_SCRIPTING;
1382
0
      } else {
1383
0
        goto yyc_ST_LOOKING_FOR_PROPERTY;
1384
0
      }
1385
0
    } else {
1386
0
      if (YYGETCONDITION() < 3) {
1387
0
        goto yyc_ST_BACKQUOTE;
1388
0
      } else {
1389
0
        if (YYGETCONDITION() < 4) {
1390
0
          goto yyc_ST_DOUBLE_QUOTES;
1391
0
        } else {
1392
0
          goto yyc_ST_HEREDOC;
1393
0
        }
1394
0
      }
1395
0
    }
1396
0
  } else {
1397
0
    if (YYGETCONDITION() < 8) {
1398
0
      if (YYGETCONDITION() < 6) {
1399
0
        goto yyc_ST_LOOKING_FOR_VARNAME;
1400
0
      } else {
1401
0
        if (YYGETCONDITION() < 7) {
1402
0
          goto yyc_ST_VAR_OFFSET;
1403
0
        } else {
1404
0
          goto yyc_SHEBANG;
1405
0
        }
1406
0
      }
1407
0
    } else {
1408
0
      if (YYGETCONDITION() < 9) {
1409
0
        goto yyc_INITIAL;
1410
0
      } else {
1411
0
        if (YYGETCONDITION() < 10) {
1412
0
          goto yyc_ST_END_HEREDOC;
1413
0
        } else {
1414
0
          goto yyc_ST_NOWDOC;
1415
0
        }
1416
0
      }
1417
0
    }
1418
0
  }
1419
/* *********************************** */
1420
0
yyc_ST_IN_SCRIPTING:
1421
0
  {
1422
0
    static const unsigned char yybm[] = {
1423
      /* table 1 .. 8: 0 */
1424
0
        0, 134, 134, 134, 134, 134, 134, 134, 
1425
0
      134, 135,   4, 134, 134,   4, 134, 134, 
1426
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1427
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1428
0
      135, 134, 134, 134, 134, 134, 134, 134, 
1429
0
      134, 134,  66, 134, 134, 134, 134, 134, 
1430
0
      190, 190, 182, 182, 182, 182, 182, 182, 
1431
0
      166, 166, 134, 134, 134, 134, 134, 134, 
1432
0
      134, 166, 166, 166, 166, 166, 166, 134, 
1433
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1434
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1435
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1436
0
      134, 166, 166, 166, 166, 166, 166, 134, 
1437
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1438
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1439
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1440
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1441
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1442
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1443
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1444
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1445
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1446
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1447
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1448
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1449
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1450
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1451
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1452
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1453
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1454
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1455
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1456
      /* table 9 .. 11: 256 */
1457
0
        0,   0,   0,   0,   0,   0,   0,   0, 
1458
0
        0,  32,  32,   0,   0,  32,   0,   0, 
1459
0
        0,   0,   0,   0,   0,   0,   0,   0, 
1460
0
        0,   0,   0,   0,   0,   0,   0,   0, 
1461
0
       32,   0,   0,   0,   0,   0,   0,   0, 
1462
0
        0,   0,   0,   0,   0,   0,   0,   0, 
1463
0
      192, 192, 192, 192, 192, 192, 192, 192, 
1464
0
      192, 192,   0,   0,   0,   0,   0,   0, 
1465
0
        0, 128, 128, 128, 128, 128, 128, 128, 
1466
0
      128, 128, 128, 128, 128, 128, 128, 128, 
1467
0
      128, 128, 128, 128, 128, 128, 128, 128, 
1468
0
      128, 128, 128,   0,   0,   0,   0, 128, 
1469
0
        0, 128, 128, 128, 128, 128, 128, 128, 
1470
0
      128, 128, 128, 128, 128, 128, 128, 128, 
1471
0
      128, 128, 128, 128, 128, 128, 128, 128, 
1472
0
      128, 128, 128,   0,   0,   0,   0,   0, 
1473
0
      128, 128, 128, 128, 128, 128, 128, 128, 
1474
0
      128, 128, 128, 128, 128, 128, 128, 128, 
1475
0
      128, 128, 128, 128, 128, 128, 128, 128, 
1476
0
      128, 128, 128, 128, 128, 128, 128, 128, 
1477
0
      128, 128, 128, 128, 128, 128, 128, 128, 
1478
0
      128, 128, 128, 128, 128, 128, 128, 128, 
1479
0
      128, 128, 128, 128, 128, 128, 128, 128, 
1480
0
      128, 128, 128, 128, 128, 128, 128, 128, 
1481
0
      128, 128, 128, 128, 128, 128, 128, 128, 
1482
0
      128, 128, 128, 128, 128, 128, 128, 128, 
1483
0
      128, 128, 128, 128, 128, 128, 128, 128, 
1484
0
      128, 128, 128, 128, 128, 128, 128, 128, 
1485
0
      128, 128, 128, 128, 128, 128, 128, 128, 
1486
0
      128, 128, 128, 128, 128, 128, 128, 128, 
1487
0
      128, 128, 128, 128, 128, 128, 128, 128, 
1488
0
      128, 128, 128, 128, 128, 128, 128, 128, 
1489
0
    };
1490
0
    YYDEBUG(1, *YYCURSOR);
1491
0
    YYFILL(16);
1492
0
    yych = *YYCURSOR;
1493
0
    if (yybm[256+yych] & 32) {
1494
0
      goto yy5;
1495
0
    }
1496
0
    switch (yych) {
1497
0
    case 0x00:
1498
0
    case 0x01:
1499
0
    case 0x02:
1500
0
    case 0x03:
1501
0
    case 0x04:
1502
0
    case 0x05:
1503
0
    case 0x06:
1504
0
    case 0x07:
1505
0
    case 0x08:
1506
0
    case '\t':
1507
0
    case '\n':
1508
0
    case '\v':
1509
0
    case '\f':
1510
0
    case '\r':
1511
0
    case 0x0E:
1512
0
    case 0x0F:
1513
0
    case 0x10:
1514
0
    case 0x11:
1515
0
    case 0x12:
1516
0
    case 0x13:
1517
0
    case 0x14:
1518
0
    case 0x15:
1519
0
    case 0x16:
1520
0
    case 0x17:
1521
0
    case 0x18:
1522
0
    case 0x19:
1523
0
    case 0x1A:
1524
0
    case 0x1B:
1525
0
    case 0x1C:
1526
0
    case 0x1D:
1527
0
    case 0x1E:
1528
0
    case 0x1F:
1529
0
    case 0x7F:  goto yy3;
1530
0
    case ' ':
1531
0
    case '!': goto yy8;
1532
0
    case '"': goto yy10;
1533
0
    case '#': goto yy12;
1534
0
    case '$': goto yy14;
1535
0
    case '%': goto yy15;
1536
0
    case '&': goto yy16;
1537
0
    case '\'':  goto yy18;
1538
0
    case '(': goto yy20;
1539
0
    case ')':
1540
0
    case ']': goto yy22;
1541
0
    case '*': goto yy24;
1542
0
    case '+': goto yy25;
1543
0
    case ',':
1544
0
    case ';':
1545
0
    case '@':
1546
0
    case '~': goto yy26;
1547
0
    case '-': goto yy27;
1548
0
    case '.': goto yy28;
1549
0
    case '/': goto yy29;
1550
0
    case '0': goto yy30;
1551
0
    case '1':
1552
0
    case '2':
1553
0
    case '3':
1554
0
    case '4':
1555
0
    case '5':
1556
0
    case '6':
1557
0
    case '7':
1558
0
    case '8':
1559
0
    case '9': goto yy32;
1560
0
    case ':': goto yy34;
1561
0
    case '<': goto yy35;
1562
0
    case '=': goto yy36;
1563
0
    case '>': goto yy37;
1564
0
    case '?': goto yy38;
1565
0
    case 'A':
1566
0
    case 'a': goto yy39;
1567
0
    case 'B':
1568
0
    case 'b': goto yy41;
1569
0
    case 'C':
1570
0
    case 'c': goto yy42;
1571
0
    case 'D':
1572
0
    case 'd': goto yy43;
1573
0
    case 'E':
1574
0
    case 'e': goto yy44;
1575
0
    case 'F':
1576
0
    case 'f': goto yy45;
1577
0
    case 'G':
1578
0
    case 'g': goto yy46;
1579
0
    case 'I':
1580
0
    case 'i': goto yy49;
1581
0
    case 'L':
1582
0
    case 'l': goto yy50;
1583
0
    case 'M':
1584
0
    case 'm': goto yy51;
1585
0
    case 'N':
1586
0
    case 'n': goto yy52;
1587
0
    case 'O':
1588
0
    case 'o': goto yy53;
1589
0
    case 'P':
1590
0
    case 'p': goto yy54;
1591
0
    case 'R':
1592
0
    case 'r': goto yy55;
1593
0
    case 'S':
1594
0
    case 's': goto yy56;
1595
0
    case 'T':
1596
0
    case 't': goto yy57;
1597
0
    case 'U':
1598
0
    case 'u': goto yy58;
1599
0
    case 'V':
1600
0
    case 'v': goto yy59;
1601
0
    case 'W':
1602
0
    case 'w': goto yy60;
1603
0
    case 'X':
1604
0
    case 'x': goto yy61;
1605
0
    case 'Y':
1606
0
    case 'y': goto yy62;
1607
0
    case '[': goto yy63;
1608
0
    case '\\':  goto yy64;
1609
0
    case '^': goto yy66;
1610
0
    case '_': goto yy67;
1611
0
    case '`': goto yy68;
1612
0
    case '{': goto yy70;
1613
0
    case '|': goto yy72;
1614
0
    case '}': goto yy73;
1615
0
    default:  goto yy47;
1616
0
    }
1617
0
yy3:
1618
0
    YYDEBUG(3, *YYCURSOR);
1619
0
    ++YYCURSOR;
1620
0
    YYDEBUG(4, *YYCURSOR);
1621
0
    yyleng = YYCURSOR - SCNG(yy_text);
1622
0
#line 3179 "Zend/zend_language_scanner.l"
1623
0
    {
1624
0
  if (YYCURSOR > YYLIMIT) {
1625
0
    RETURN_END_TOKEN;
1626
0
  }
1627
1628
0
  RETURN_TOKEN(T_BAD_CHARACTER);
1629
0
}
1630
0
#line 1631 "Zend/zend_language_scanner.c"
1631
0
yy5:
1632
0
    YYDEBUG(5, *YYCURSOR);
1633
0
    ++YYCURSOR;
1634
0
    YYFILL(1);
1635
0
    yych = *YYCURSOR;
1636
0
    YYDEBUG(6, *YYCURSOR);
1637
0
    if (yybm[256+yych] & 32) {
1638
0
      goto yy5;
1639
0
    }
1640
0
    YYDEBUG(7, *YYCURSOR);
1641
0
    yyleng = YYCURSOR - SCNG(yy_text);
1642
0
#line 1596 "Zend/zend_language_scanner.l"
1643
0
    {
1644
0
  goto return_whitespace;
1645
0
}
1646
0
#line 1647 "Zend/zend_language_scanner.c"
1647
0
yy8:
1648
0
    YYDEBUG(8, *YYCURSOR);
1649
0
    yych = *++YYCURSOR;
1650
0
    if (yych == '=') goto yy75;
1651
0
yy9:
1652
0
    YYDEBUG(9, *YYCURSOR);
1653
0
    yyleng = YYCURSOR - SCNG(yy_text);
1654
0
#line 1968 "Zend/zend_language_scanner.l"
1655
0
    {
1656
0
  RETURN_TOKEN(yytext[0]);
1657
0
}
1658
0
#line 1659 "Zend/zend_language_scanner.c"
1659
0
yy10:
1660
0
    YYDEBUG(10, *YYCURSOR);
1661
0
    ++YYCURSOR;
1662
0
    YYDEBUG(11, *YYCURSOR);
1663
0
    yyleng = YYCURSOR - SCNG(yy_text);
1664
0
#line 2631 "Zend/zend_language_scanner.l"
1665
0
    {
1666
0
  int bprefix = (yytext[0] != '"') ? 1 : 0;
1667
1668
0
  while (YYCURSOR < YYLIMIT) {
1669
0
    switch (*YYCURSOR++) {
1670
0
      case '"':
1671
0
        yyleng = YYCURSOR - SCNG(yy_text);
1672
0
        if (EXPECTED(zend_scan_escape_string(zendlval, yytext+bprefix+1, yyleng-bprefix-2, '"') == SUCCESS)
1673
0
         || !PARSER_MODE()) {
1674
0
          RETURN_TOKEN_WITH_VAL(T_CONSTANT_ENCAPSED_STRING);
1675
0
        } else {
1676
0
          RETURN_TOKEN(T_ERROR);
1677
0
        }
1678
0
      case '$':
1679
0
        if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
1680
0
          break;
1681
0
        }
1682
0
        continue;
1683
0
      case '{':
1684
0
        if (*YYCURSOR == '$') {
1685
0
          break;
1686
0
        }
1687
0
        continue;
1688
0
      case '\\':
1689
0
        if (YYCURSOR < YYLIMIT) {
1690
0
          YYCURSOR++;
1691
0
        }
1692
0
        ZEND_FALLTHROUGH;
1693
0
      default:
1694
0
        continue;
1695
0
    }
1696
1697
0
    YYCURSOR--;
1698
0
    break;
1699
0
  }
1700
1701
  /* Remember how much was scanned to save rescanning */
1702
0
  SET_DOUBLE_QUOTES_SCANNED_LENGTH(YYCURSOR - SCNG(yy_text) - yyleng);
1703
1704
0
  YYCURSOR = SCNG(yy_text) + yyleng;
1705
1706
0
  BEGIN(ST_DOUBLE_QUOTES);
1707
0
  RETURN_TOKEN('"');
1708
0
}
1709
0
#line 1710 "Zend/zend_language_scanner.c"
1710
0
yy12:
1711
0
    YYDEBUG(12, *YYCURSOR);
1712
0
    yych = *++YYCURSOR;
1713
0
    if (yych == '[') goto yy77;
1714
0
yy13:
1715
0
    YYDEBUG(13, *YYCURSOR);
1716
0
    yyleng = YYCURSOR - SCNG(yy_text);
1717
0
#line 2459 "Zend/zend_language_scanner.l"
1718
0
    {
1719
0
  while (YYCURSOR < YYLIMIT) {
1720
0
    switch (*YYCURSOR++) {
1721
0
      case '\r':
1722
0
      case '\n':
1723
0
        YYCURSOR--;
1724
0
        break;
1725
0
      case '?':
1726
0
        if (*YYCURSOR == '>') {
1727
0
          YYCURSOR--;
1728
0
          break;
1729
0
        }
1730
0
        ZEND_FALLTHROUGH;
1731
0
      default:
1732
0
        continue;
1733
0
    }
1734
1735
0
    break;
1736
0
  }
1737
1738
0
  yyleng = YYCURSOR - SCNG(yy_text);
1739
0
  RETURN_OR_SKIP_TOKEN(T_COMMENT);
1740
0
}
1741
0
#line 1742 "Zend/zend_language_scanner.c"
1742
0
yy14:
1743
0
    YYDEBUG(14, *YYCURSOR);
1744
0
    yych = *++YYCURSOR;
1745
0
    if (yych <= '_') {
1746
0
      if (yych <= '@') goto yy9;
1747
0
      if (yych <= 'Z') goto yy79;
1748
0
      if (yych <= '^') goto yy9;
1749
0
      goto yy79;
1750
0
    } else {
1751
0
      if (yych <= '`') goto yy9;
1752
0
      if (yych <= 'z') goto yy79;
1753
0
      if (yych <= 0x7F) goto yy9;
1754
0
      goto yy79;
1755
0
    }
1756
0
yy15:
1757
0
    YYDEBUG(15, *YYCURSOR);
1758
0
    yych = *++YYCURSOR;
1759
0
    if (yych == '=') goto yy82;
1760
0
    goto yy9;
1761
0
yy16:
1762
0
    YYDEBUG(16, *YYCURSOR);
1763
0
    yyaccept = 0;
1764
0
    yych = *(YYMARKER = ++YYCURSOR);
1765
0
    if (yych <= '"') {
1766
0
      if (yych <= '\f') {
1767
0
        if (yych <= 0x08) goto yy17;
1768
0
        if (yych <= '\n') goto yy85;
1769
0
      } else {
1770
0
        if (yych <= '\r') goto yy85;
1771
0
        if (yych == ' ') goto yy85;
1772
0
      }
1773
0
    } else {
1774
0
      if (yych <= '-') {
1775
0
        if (yych <= '$') goto yy85;
1776
0
        if (yych == '&') goto yy90;
1777
0
      } else {
1778
0
        if (yych <= '/') goto yy85;
1779
0
        if (yych == '=') goto yy94;
1780
0
      }
1781
0
    }
1782
0
yy17:
1783
0
    YYDEBUG(17, *YYCURSOR);
1784
0
    yyleng = YYCURSOR - SCNG(yy_text);
1785
0
#line 1954 "Zend/zend_language_scanner.l"
1786
0
    {
1787
0
  RETURN_TOKEN(T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG);
1788
0
}
1789
0
#line 1790 "Zend/zend_language_scanner.c"
1790
0
yy18:
1791
0
    YYDEBUG(18, *YYCURSOR);
1792
0
    ++YYCURSOR;
1793
0
    YYDEBUG(19, *YYCURSOR);
1794
0
    yyleng = YYCURSOR - SCNG(yy_text);
1795
0
#line 2537 "Zend/zend_language_scanner.l"
1796
0
    {
1797
0
  char *s, *t;
1798
0
  char *end;
1799
0
  int bprefix = (yytext[0] != '\'') ? 1 : 0;
1800
1801
0
  while (1) {
1802
0
    if (YYCURSOR < YYLIMIT) {
1803
0
      if (*YYCURSOR == '\'') {
1804
0
        YYCURSOR++;
1805
0
        yyleng = YYCURSOR - SCNG(yy_text);
1806
1807
0
        break;
1808
0
      } else if (*YYCURSOR++ == '\\' && YYCURSOR < YYLIMIT) {
1809
0
        YYCURSOR++;
1810
0
      }
1811
0
    } else {
1812
0
      yyleng = YYLIMIT - SCNG(yy_text);
1813
1814
      /* Unclosed single quotes; treat similar to double quotes, but without a separate token
1815
       * for ' (unrecognized by parser), instead of old flex fallback to "Unexpected character..."
1816
       * rule, which continued in ST_IN_SCRIPTING state after the quote */
1817
0
      ZVAL_NULL(zendlval);
1818
0
      RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
1819
0
    }
1820
0
  }
1821
1822
0
  if (yyleng-bprefix-2 <= 1) {
1823
0
    if (yyleng-bprefix-2 < 1) {
1824
0
      ZVAL_EMPTY_STRING(zendlval);
1825
0
    } else {
1826
0
      zend_uchar c = (zend_uchar)*(yytext+bprefix+1);
1827
0
      HANDLE_NEWLINE(c);
1828
0
      ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR(c));
1829
0
    }
1830
0
    goto skip_escape_conversion;
1831
0
  }
1832
0
  ZVAL_STRINGL(zendlval, yytext+bprefix+1, yyleng-bprefix-2);
1833
1834
  /* convert escape sequences */
1835
0
  s = Z_STRVAL_P(zendlval);
1836
0
  end = s+Z_STRLEN_P(zendlval);
1837
0
  while (1) {
1838
0
    if (UNEXPECTED(*s=='\\')) {
1839
0
      break;
1840
0
    }
1841
0
    if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
1842
0
      CG(zend_lineno)++;
1843
0
    }
1844
0
    s++;
1845
0
    if (s == end) {
1846
0
      goto skip_escape_conversion;
1847
0
    }
1848
0
  }
1849
1850
0
  t = s;
1851
0
  while (s<end) {
1852
0
    if (*s=='\\') {
1853
0
      s++;
1854
0
      if (*s == '\\' || *s == '\'') {
1855
0
        *t++ = *s;
1856
0
      } else {
1857
0
        *t++ = '\\';
1858
0
        *t++ = *s;
1859
0
      }
1860
0
    } else {
1861
0
      *t++ = *s;
1862
0
    }
1863
0
    if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
1864
0
      CG(zend_lineno)++;
1865
0
    }
1866
0
    s++;
1867
0
  }
1868
0
  *t = 0;
1869
0
  Z_STRLEN_P(zendlval) = t - Z_STRVAL_P(zendlval);
1870
1871
0
skip_escape_conversion:
1872
0
  if (SCNG(output_filter)) {
1873
0
    size_t sz = 0;
1874
0
    char *str = NULL;
1875
0
    zend_string *new_str;
1876
0
    s = Z_STRVAL_P(zendlval);
1877
    // TODO: avoid reallocation ???
1878
0
    SCNG(output_filter)((unsigned char **)&str, &sz, (unsigned char *)s, Z_STRLEN_P(zendlval));
1879
0
    new_str = zend_string_init(str, sz, 0);
1880
0
    if (str != s) {
1881
0
      efree(str);
1882
0
    }
1883
0
    zend_string_release_ex(Z_STR_P(zendlval), 0);
1884
0
    ZVAL_STR(zendlval, new_str);
1885
0
  }
1886
0
  RETURN_TOKEN_WITH_VAL(T_CONSTANT_ENCAPSED_STRING);
1887
0
}
1888
0
#line 1889 "Zend/zend_language_scanner.c"
1889
0
yy20:
1890
0
    YYDEBUG(20, *YYCURSOR);
1891
0
    yyaccept = 1;
1892
0
    yych = *(YYMARKER = ++YYCURSOR);
1893
0
    if (yych <= 'S') {
1894
0
      if (yych <= 'D') {
1895
0
        if (yych <= ' ') {
1896
0
          if (yych == '\t') goto yy97;
1897
0
          if (yych >= ' ') goto yy97;
1898
0
        } else {
1899
0
          if (yych <= '@') goto yy21;
1900
0
          if (yych != 'C') goto yy97;
1901
0
        }
1902
0
      } else {
1903
0
        if (yych <= 'I') {
1904
0
          if (yych == 'F') goto yy97;
1905
0
          if (yych >= 'I') goto yy97;
1906
0
        } else {
1907
0
          if (yych == 'O') goto yy97;
1908
0
          if (yych >= 'R') goto yy97;
1909
0
        }
1910
0
      }
1911
0
    } else {
1912
0
      if (yych <= 'f') {
1913
0
        if (yych <= 'b') {
1914
0
          if (yych <= 'T') goto yy21;
1915
0
          if (yych <= 'V') goto yy97;
1916
0
          if (yych >= 'a') goto yy97;
1917
0
        } else {
1918
0
          if (yych == 'd') goto yy97;
1919
0
          if (yych >= 'f') goto yy97;
1920
0
        }
1921
0
      } else {
1922
0
        if (yych <= 'o') {
1923
0
          if (yych == 'i') goto yy97;
1924
0
          if (yych >= 'o') goto yy97;
1925
0
        } else {
1926
0
          if (yych <= 's') {
1927
0
            if (yych >= 'r') goto yy97;
1928
0
          } else {
1929
0
            if (yych <= 't') goto yy21;
1930
0
            if (yych <= 'v') goto yy97;
1931
0
          }
1932
0
        }
1933
0
      }
1934
0
    }
1935
0
yy21:
1936
0
    YYDEBUG(21, *YYCURSOR);
1937
0
    yyleng = YYCURSOR - SCNG(yy_text);
1938
0
#line 1963 "Zend/zend_language_scanner.l"
1939
0
    {
1940
0
  enter_nesting(yytext[0]);
1941
0
  RETURN_TOKEN(yytext[0]);
1942
0
}
1943
0
#line 1944 "Zend/zend_language_scanner.c"
1944
0
yy22:
1945
0
    YYDEBUG(22, *YYCURSOR);
1946
0
    ++YYCURSOR;
1947
0
    YYDEBUG(23, *YYCURSOR);
1948
0
    yyleng = YYCURSOR - SCNG(yy_text);
1949
0
#line 1958 "Zend/zend_language_scanner.l"
1950
0
    {
1951
  /* Check that ] and ) match up properly with a preceding [ or ( */
1952
0
  RETURN_EXIT_NESTING_TOKEN(yytext[0]);
1953
0
}
1954
0
#line 1955 "Zend/zend_language_scanner.c"
1955
0
yy24:
1956
0
    YYDEBUG(24, *YYCURSOR);
1957
0
    yych = *++YYCURSOR;
1958
0
    if (yych == '*') goto yy108;
1959
0
    if (yych == '=') goto yy110;
1960
0
    goto yy9;
1961
0
yy25:
1962
0
    YYDEBUG(25, *YYCURSOR);
1963
0
    yych = *++YYCURSOR;
1964
0
    if (yych == '+') goto yy112;
1965
0
    if (yych == '=') goto yy114;
1966
0
    goto yy9;
1967
0
yy26:
1968
0
    YYDEBUG(26, *YYCURSOR);
1969
0
    ++YYCURSOR;
1970
0
    goto yy9;
1971
0
yy27:
1972
0
    YYDEBUG(27, *YYCURSOR);
1973
0
    yych = *++YYCURSOR;
1974
0
    if (yych <= '<') {
1975
0
      if (yych == '-') goto yy116;
1976
0
      goto yy9;
1977
0
    } else {
1978
0
      if (yych <= '=') goto yy118;
1979
0
      if (yych <= '>') goto yy120;
1980
0
      goto yy9;
1981
0
    }
1982
0
yy28:
1983
0
    YYDEBUG(28, *YYCURSOR);
1984
0
    yyaccept = 2;
1985
0
    yych = *(YYMARKER = ++YYCURSOR);
1986
0
    if (yych <= '/') {
1987
0
      if (yych == '.') goto yy122;
1988
0
      goto yy9;
1989
0
    } else {
1990
0
      if (yych <= '9') goto yy123;
1991
0
      if (yych == '=') goto yy126;
1992
0
      goto yy9;
1993
0
    }
1994
0
yy29:
1995
0
    YYDEBUG(29, *YYCURSOR);
1996
0
    yych = *++YYCURSOR;
1997
0
    if (yych <= '.') {
1998
0
      if (yych == '*') goto yy128;
1999
0
      goto yy9;
2000
0
    } else {
2001
0
      if (yych <= '/') goto yy130;
2002
0
      if (yych == '=') goto yy131;
2003
0
      goto yy9;
2004
0
    }
2005
0
yy30:
2006
0
    YYDEBUG(30, *YYCURSOR);
2007
0
    yyaccept = 3;
2008
0
    yych = *(YYMARKER = ++YYCURSOR);
2009
0
    if (yych <= 'X') {
2010
0
      if (yych <= 'N') {
2011
0
        if (yych == 'B') goto yy134;
2012
0
        goto yy33;
2013
0
      } else {
2014
0
        if (yych <= 'O') goto yy136;
2015
0
        if (yych <= 'W') goto yy33;
2016
0
        goto yy137;
2017
0
      }
2018
0
    } else {
2019
0
      if (yych <= 'n') {
2020
0
        if (yych == 'b') goto yy134;
2021
0
        goto yy33;
2022
0
      } else {
2023
0
        if (yych <= 'o') goto yy136;
2024
0
        if (yych == 'x') goto yy137;
2025
0
        goto yy33;
2026
0
      }
2027
0
    }
2028
0
yy31:
2029
0
    YYDEBUG(31, *YYCURSOR);
2030
0
    yyleng = YYCURSOR - SCNG(yy_text);
2031
0
#line 2102 "Zend/zend_language_scanner.l"
2032
0
    {
2033
0
  size_t len = yyleng;
2034
0
  char *end, *lnum = yytext;
2035
0
  bool is_octal = lnum[0] == '0';
2036
0
  bool contains_underscores = (memchr(lnum, '_', len) != NULL);
2037
2038
0
  if (contains_underscores) {
2039
0
    lnum = estrndup(lnum, len);
2040
0
    strip_underscores(lnum, &len);
2041
0
  }
2042
2043
  /* Digits 8 and 9 are illegal in octal literals. */
2044
0
  if (is_octal) {
2045
0
    size_t i;
2046
0
    for (i = 0; i < len; i++) {
2047
0
      if (lnum[i] == '8' || lnum[i] == '9') {
2048
0
        zend_throw_exception(zend_ce_parse_error, "Invalid numeric literal", 0);
2049
0
        if (PARSER_MODE()) {
2050
0
          if (contains_underscores) {
2051
0
            efree(lnum);
2052
0
          }
2053
0
          ZVAL_UNDEF(zendlval);
2054
0
          RETURN_TOKEN(T_ERROR);
2055
0
        }
2056
2057
        /* Continue in order to determine if this is T_LNUMBER or T_DNUMBER. */
2058
0
        len = i;
2059
0
        break;
2060
0
      }
2061
0
    }
2062
0
  }
2063
2064
2065
0
  if (len < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
2066
0
    errno = 0;
2067
    /* base must be passed explicitly for correct parse error on Windows */
2068
0
    ZVAL_LONG(zendlval, ZEND_STRTOL(lnum, &end, is_octal ? 8 : 10));
2069
0
    ZEND_ASSERT(end == lnum + len);
2070
0
  } else {
2071
0
    errno = 0;
2072
0
    ZVAL_LONG(zendlval, ZEND_STRTOL(lnum, &end, 0));
2073
0
    if (errno == ERANGE) { /* Overflow */
2074
0
      errno = 0;
2075
0
      if (is_octal) { /* octal overflow */
2076
0
        ZVAL_DOUBLE(zendlval, zend_oct_strtod(lnum, (const char **)&end));
2077
0
      } else {
2078
0
        ZVAL_DOUBLE(zendlval, zend_strtod(lnum, (const char **)&end));
2079
0
      }
2080
0
      ZEND_ASSERT(end == lnum + len);
2081
0
      if (contains_underscores) {
2082
0
        efree(lnum);
2083
0
      }
2084
0
      RETURN_TOKEN_WITH_VAL(T_DNUMBER);
2085
0
    }
2086
0
    ZEND_ASSERT(end == lnum + len);
2087
0
  }
2088
0
  ZEND_ASSERT(!errno);
2089
0
  if (contains_underscores) {
2090
0
    efree(lnum);
2091
0
  }
2092
0
  RETURN_TOKEN_WITH_VAL(T_LNUMBER);
2093
0
}
2094
0
#line 2095 "Zend/zend_language_scanner.c"
2095
0
yy32:
2096
0
    YYDEBUG(32, *YYCURSOR);
2097
0
    yyaccept = 3;
2098
0
    YYMARKER = ++YYCURSOR;
2099
0
    YYFILL(3);
2100
0
    yych = *YYCURSOR;
2101
0
yy33:
2102
0
    YYDEBUG(33, *YYCURSOR);
2103
0
    if (yybm[256+yych] & 64) {
2104
0
      goto yy32;
2105
0
    }
2106
0
    if (yych <= 'E') {
2107
0
      if (yych == '.') goto yy133;
2108
0
      if (yych <= 'D') goto yy31;
2109
0
      goto yy135;
2110
0
    } else {
2111
0
      if (yych <= '_') {
2112
0
        if (yych <= '^') goto yy31;
2113
0
        goto yy138;
2114
0
      } else {
2115
0
        if (yych == 'e') goto yy135;
2116
0
        goto yy31;
2117
0
      }
2118
0
    }
2119
0
yy34:
2120
0
    YYDEBUG(34, *YYCURSOR);
2121
0
    yych = *++YYCURSOR;
2122
0
    if (yych == ':') goto yy139;
2123
0
    goto yy9;
2124
0
yy35:
2125
0
    YYDEBUG(35, *YYCURSOR);
2126
0
    yych = *++YYCURSOR;
2127
0
    if (yych <= ';') goto yy9;
2128
0
    if (yych <= '<') goto yy141;
2129
0
    if (yych <= '=') goto yy143;
2130
0
    if (yych <= '>') goto yy145;
2131
0
    goto yy9;
2132
0
yy36:
2133
0
    YYDEBUG(36, *YYCURSOR);
2134
0
    yych = *++YYCURSOR;
2135
0
    if (yych <= '<') goto yy9;
2136
0
    if (yych <= '=') goto yy146;
2137
0
    if (yych <= '>') goto yy148;
2138
0
    goto yy9;
2139
0
yy37:
2140
0
    YYDEBUG(37, *YYCURSOR);
2141
0
    yych = *++YYCURSOR;
2142
0
    if (yych <= '<') goto yy9;
2143
0
    if (yych <= '=') goto yy150;
2144
0
    if (yych <= '>') goto yy152;
2145
0
    goto yy9;
2146
0
yy38:
2147
0
    YYDEBUG(38, *YYCURSOR);
2148
0
    yyaccept = 2;
2149
0
    yych = *(YYMARKER = ++YYCURSOR);
2150
0
    if (yych <= '=') {
2151
0
      if (yych == '-') goto yy154;
2152
0
      goto yy9;
2153
0
    } else {
2154
0
      if (yych <= '>') goto yy155;
2155
0
      if (yych <= '?') goto yy157;
2156
0
      goto yy9;
2157
0
    }
2158
0
yy39:
2159
0
    YYDEBUG(39, *YYCURSOR);
2160
0
    yyaccept = 4;
2161
0
    yych = *(YYMARKER = ++YYCURSOR);
2162
0
    if (yych <= 'S') {
2163
0
      if (yych <= 'M') {
2164
0
        if (yych == 'B') goto yy159;
2165
0
        goto yy48;
2166
0
      } else {
2167
0
        if (yych <= 'N') goto yy160;
2168
0
        if (yych <= 'Q') goto yy48;
2169
0
        if (yych <= 'R') goto yy161;
2170
0
        goto yy162;
2171
0
      }
2172
0
    } else {
2173
0
      if (yych <= 'n') {
2174
0
        if (yych == 'b') goto yy159;
2175
0
        if (yych <= 'm') goto yy48;
2176
0
        goto yy160;
2177
0
      } else {
2178
0
        if (yych <= 'q') goto yy48;
2179
0
        if (yych <= 'r') goto yy161;
2180
0
        if (yych <= 's') goto yy162;
2181
0
        goto yy48;
2182
0
      }
2183
0
    }
2184
0
yy40:
2185
0
    YYDEBUG(40, *YYCURSOR);
2186
0
    yyleng = YYCURSOR - SCNG(yy_text);
2187
0
#line 2454 "Zend/zend_language_scanner.l"
2188
0
    {
2189
0
  RETURN_TOKEN_WITH_STR(T_STRING, 0);
2190
0
}
2191
0
#line 2192 "Zend/zend_language_scanner.c"
2192
0
yy41:
2193
0
    YYDEBUG(41, *YYCURSOR);
2194
0
    yyaccept = 4;
2195
0
    yych = *(YYMARKER = ++YYCURSOR);
2196
0
    if (yych <= ';') {
2197
0
      if (yych <= '"') {
2198
0
        if (yych <= '!') goto yy48;
2199
0
        goto yy10;
2200
0
      } else {
2201
0
        if (yych == '\'') goto yy18;
2202
0
        goto yy48;
2203
0
      }
2204
0
    } else {
2205
0
      if (yych <= 'R') {
2206
0
        if (yych <= '<') goto yy165;
2207
0
        if (yych <= 'Q') goto yy48;
2208
0
        goto yy166;
2209
0
      } else {
2210
0
        if (yych == 'r') goto yy166;
2211
0
        goto yy48;
2212
0
      }
2213
0
    }
2214
0
yy42:
2215
0
    YYDEBUG(42, *YYCURSOR);
2216
0
    yyaccept = 4;
2217
0
    yych = *(YYMARKER = ++YYCURSOR);
2218
0
    if (yych <= 'O') {
2219
0
      if (yych <= 'K') {
2220
0
        if (yych == 'A') goto yy167;
2221
0
        goto yy48;
2222
0
      } else {
2223
0
        if (yych <= 'L') goto yy168;
2224
0
        if (yych <= 'N') goto yy48;
2225
0
        goto yy169;
2226
0
      }
2227
0
    } else {
2228
0
      if (yych <= 'k') {
2229
0
        if (yych == 'a') goto yy167;
2230
0
        goto yy48;
2231
0
      } else {
2232
0
        if (yych <= 'l') goto yy168;
2233
0
        if (yych == 'o') goto yy169;
2234
0
        goto yy48;
2235
0
      }
2236
0
    }
2237
0
yy43:
2238
0
    YYDEBUG(43, *YYCURSOR);
2239
0
    yyaccept = 4;
2240
0
    yych = *(YYMARKER = ++YYCURSOR);
2241
0
    if (yych <= 'O') {
2242
0
      if (yych <= 'H') {
2243
0
        if (yych == 'E') goto yy170;
2244
0
        goto yy48;
2245
0
      } else {
2246
0
        if (yych <= 'I') goto yy171;
2247
0
        if (yych <= 'N') goto yy48;
2248
0
        goto yy172;
2249
0
      }
2250
0
    } else {
2251
0
      if (yych <= 'h') {
2252
0
        if (yych == 'e') goto yy170;
2253
0
        goto yy48;
2254
0
      } else {
2255
0
        if (yych <= 'i') goto yy171;
2256
0
        if (yych == 'o') goto yy172;
2257
0
        goto yy48;
2258
0
      }
2259
0
    }
2260
0
yy44:
2261
0
    YYDEBUG(44, *YYCURSOR);
2262
0
    yyaccept = 4;
2263
0
    yych = *(YYMARKER = ++YYCURSOR);
2264
0
    switch (yych) {
2265
0
    case 'C':
2266
0
    case 'c': goto yy174;
2267
0
    case 'L':
2268
0
    case 'l': goto yy175;
2269
0
    case 'M':
2270
0
    case 'm': goto yy176;
2271
0
    case 'N':
2272
0
    case 'n': goto yy177;
2273
0
    case 'V':
2274
0
    case 'v': goto yy178;
2275
0
    case 'X':
2276
0
    case 'x': goto yy179;
2277
0
    default:  goto yy48;
2278
0
    }
2279
0
yy45:
2280
0
    YYDEBUG(45, *YYCURSOR);
2281
0
    yyaccept = 4;
2282
0
    yych = *(YYMARKER = ++YYCURSOR);
2283
0
    if (yych <= 'U') {
2284
0
      if (yych <= 'M') {
2285
0
        if (yych == 'I') goto yy180;
2286
0
        goto yy48;
2287
0
      } else {
2288
0
        if (yych <= 'N') goto yy181;
2289
0
        if (yych <= 'O') goto yy183;
2290
0
        if (yych <= 'T') goto yy48;
2291
0
        goto yy184;
2292
0
      }
2293
0
    } else {
2294
0
      if (yych <= 'n') {
2295
0
        if (yych == 'i') goto yy180;
2296
0
        if (yych <= 'm') goto yy48;
2297
0
        goto yy181;
2298
0
      } else {
2299
0
        if (yych <= 'o') goto yy183;
2300
0
        if (yych == 'u') goto yy184;
2301
0
        goto yy48;
2302
0
      }
2303
0
    }
2304
0
yy46:
2305
0
    YYDEBUG(46, *YYCURSOR);
2306
0
    yyaccept = 4;
2307
0
    yych = *(YYMARKER = ++YYCURSOR);
2308
0
    if (yych <= 'O') {
2309
0
      if (yych == 'L') goto yy185;
2310
0
      if (yych <= 'N') goto yy48;
2311
0
      goto yy186;
2312
0
    } else {
2313
0
      if (yych <= 'l') {
2314
0
        if (yych <= 'k') goto yy48;
2315
0
        goto yy185;
2316
0
      } else {
2317
0
        if (yych == 'o') goto yy186;
2318
0
        goto yy48;
2319
0
      }
2320
0
    }
2321
0
yy47:
2322
0
    YYDEBUG(47, *YYCURSOR);
2323
0
    yyaccept = 4;
2324
0
    YYMARKER = ++YYCURSOR;
2325
0
    YYFILL(1);
2326
0
    yych = *YYCURSOR;
2327
0
yy48:
2328
0
    YYDEBUG(48, *YYCURSOR);
2329
0
    if (yybm[256+yych] & 128) {
2330
0
      goto yy47;
2331
0
    }
2332
0
    if (yych == '\\') goto yy164;
2333
0
    goto yy40;
2334
0
yy49:
2335
0
    YYDEBUG(49, *YYCURSOR);
2336
0
    yyaccept = 4;
2337
0
    yych = *(YYMARKER = ++YYCURSOR);
2338
0
    if (yych <= 'S') {
2339
0
      if (yych <= 'L') {
2340
0
        if (yych == 'F') goto yy187;
2341
0
        goto yy48;
2342
0
      } else {
2343
0
        if (yych <= 'M') goto yy189;
2344
0
        if (yych <= 'N') goto yy190;
2345
0
        if (yych <= 'R') goto yy48;
2346
0
        goto yy191;
2347
0
      }
2348
0
    } else {
2349
0
      if (yych <= 'm') {
2350
0
        if (yych == 'f') goto yy187;
2351
0
        if (yych <= 'l') goto yy48;
2352
0
        goto yy189;
2353
0
      } else {
2354
0
        if (yych <= 'n') goto yy190;
2355
0
        if (yych == 's') goto yy191;
2356
0
        goto yy48;
2357
0
      }
2358
0
    }
2359
0
yy50:
2360
0
    YYDEBUG(50, *YYCURSOR);
2361
0
    yyaccept = 4;
2362
0
    yych = *(YYMARKER = ++YYCURSOR);
2363
0
    if (yych == 'I') goto yy192;
2364
0
    if (yych == 'i') goto yy192;
2365
0
    goto yy48;
2366
0
yy51:
2367
0
    YYDEBUG(51, *YYCURSOR);
2368
0
    yyaccept = 4;
2369
0
    yych = *(YYMARKER = ++YYCURSOR);
2370
0
    if (yych == 'A') goto yy193;
2371
0
    if (yych == 'a') goto yy193;
2372
0
    goto yy48;
2373
0
yy52:
2374
0
    YYDEBUG(52, *YYCURSOR);
2375
0
    yyaccept = 4;
2376
0
    yych = *(YYMARKER = ++YYCURSOR);
2377
0
    if (yych <= 'E') {
2378
0
      if (yych == 'A') goto yy194;
2379
0
      if (yych <= 'D') goto yy48;
2380
0
      goto yy195;
2381
0
    } else {
2382
0
      if (yych <= 'a') {
2383
0
        if (yych <= '`') goto yy48;
2384
0
        goto yy194;
2385
0
      } else {
2386
0
        if (yych == 'e') goto yy195;
2387
0
        goto yy48;
2388
0
      }
2389
0
    }
2390
0
yy53:
2391
0
    YYDEBUG(53, *YYCURSOR);
2392
0
    yyaccept = 4;
2393
0
    yych = *(YYMARKER = ++YYCURSOR);
2394
0
    if (yych == 'R') goto yy196;
2395
0
    if (yych == 'r') goto yy196;
2396
0
    goto yy48;
2397
0
yy54:
2398
0
    YYDEBUG(54, *YYCURSOR);
2399
0
    yyaccept = 4;
2400
0
    yych = *(YYMARKER = ++YYCURSOR);
2401
0
    if (yych <= 'U') {
2402
0
      if (yych == 'R') goto yy198;
2403
0
      if (yych <= 'T') goto yy48;
2404
0
      goto yy199;
2405
0
    } else {
2406
0
      if (yych <= 'r') {
2407
0
        if (yych <= 'q') goto yy48;
2408
0
        goto yy198;
2409
0
      } else {
2410
0
        if (yych == 'u') goto yy199;
2411
0
        goto yy48;
2412
0
      }
2413
0
    }
2414
0
yy55:
2415
0
    YYDEBUG(55, *YYCURSOR);
2416
0
    yyaccept = 4;
2417
0
    yych = *(YYMARKER = ++YYCURSOR);
2418
0
    if (yych == 'E') goto yy200;
2419
0
    if (yych == 'e') goto yy200;
2420
0
    goto yy48;
2421
0
yy56:
2422
0
    YYDEBUG(56, *YYCURSOR);
2423
0
    yyaccept = 4;
2424
0
    yych = *(YYMARKER = ++YYCURSOR);
2425
0
    if (yych <= 'W') {
2426
0
      if (yych == 'T') goto yy201;
2427
0
      if (yych <= 'V') goto yy48;
2428
0
      goto yy202;
2429
0
    } else {
2430
0
      if (yych <= 't') {
2431
0
        if (yych <= 's') goto yy48;
2432
0
        goto yy201;
2433
0
      } else {
2434
0
        if (yych == 'w') goto yy202;
2435
0
        goto yy48;
2436
0
      }
2437
0
    }
2438
0
yy57:
2439
0
    YYDEBUG(57, *YYCURSOR);
2440
0
    yyaccept = 4;
2441
0
    yych = *(YYMARKER = ++YYCURSOR);
2442
0
    if (yych <= 'R') {
2443
0
      if (yych == 'H') goto yy203;
2444
0
      if (yych <= 'Q') goto yy48;
2445
0
      goto yy204;
2446
0
    } else {
2447
0
      if (yych <= 'h') {
2448
0
        if (yych <= 'g') goto yy48;
2449
0
        goto yy203;
2450
0
      } else {
2451
0
        if (yych == 'r') goto yy204;
2452
0
        goto yy48;
2453
0
      }
2454
0
    }
2455
0
yy58:
2456
0
    YYDEBUG(58, *YYCURSOR);
2457
0
    yyaccept = 4;
2458
0
    yych = *(YYMARKER = ++YYCURSOR);
2459
0
    if (yych <= 'S') {
2460
0
      if (yych == 'N') goto yy205;
2461
0
      if (yych <= 'R') goto yy48;
2462
0
      goto yy206;
2463
0
    } else {
2464
0
      if (yych <= 'n') {
2465
0
        if (yych <= 'm') goto yy48;
2466
0
        goto yy205;
2467
0
      } else {
2468
0
        if (yych == 's') goto yy206;
2469
0
        goto yy48;
2470
0
      }
2471
0
    }
2472
0
yy59:
2473
0
    YYDEBUG(59, *YYCURSOR);
2474
0
    yyaccept = 4;
2475
0
    yych = *(YYMARKER = ++YYCURSOR);
2476
0
    if (yych == 'A') goto yy207;
2477
0
    if (yych == 'a') goto yy207;
2478
0
    goto yy48;
2479
0
yy60:
2480
0
    YYDEBUG(60, *YYCURSOR);
2481
0
    yyaccept = 4;
2482
0
    yych = *(YYMARKER = ++YYCURSOR);
2483
0
    if (yych == 'H') goto yy208;
2484
0
    if (yych == 'h') goto yy208;
2485
0
    goto yy48;
2486
0
yy61:
2487
0
    YYDEBUG(61, *YYCURSOR);
2488
0
    yyaccept = 4;
2489
0
    yych = *(YYMARKER = ++YYCURSOR);
2490
0
    if (yych == 'O') goto yy209;
2491
0
    if (yych == 'o') goto yy209;
2492
0
    goto yy48;
2493
0
yy62:
2494
0
    YYDEBUG(62, *YYCURSOR);
2495
0
    yyaccept = 4;
2496
0
    yych = *(YYMARKER = ++YYCURSOR);
2497
0
    if (yych == 'I') goto yy210;
2498
0
    if (yych == 'i') goto yy210;
2499
0
    goto yy48;
2500
0
yy63:
2501
0
    YYDEBUG(63, *YYCURSOR);
2502
0
    ++YYCURSOR;
2503
0
    goto yy21;
2504
0
yy64:
2505
0
    YYDEBUG(64, *YYCURSOR);
2506
0
    yych = *++YYCURSOR;
2507
0
    if (yych <= '_') {
2508
0
      if (yych <= '@') goto yy65;
2509
0
      if (yych <= 'Z') goto yy211;
2510
0
      if (yych >= '_') goto yy211;
2511
0
    } else {
2512
0
      if (yych <= '`') goto yy65;
2513
0
      if (yych <= 'z') goto yy211;
2514
0
      if (yych >= 0x80) goto yy211;
2515
0
    }
2516
0
yy65:
2517
0
    YYDEBUG(65, *YYCURSOR);
2518
0
    yyleng = YYCURSOR - SCNG(yy_text);
2519
0
#line 2450 "Zend/zend_language_scanner.l"
2520
0
    {
2521
0
  RETURN_TOKEN(T_NS_SEPARATOR);
2522
0
}
2523
0
#line 2524 "Zend/zend_language_scanner.c"
2524
0
yy66:
2525
0
    YYDEBUG(66, *YYCURSOR);
2526
0
    yych = *++YYCURSOR;
2527
0
    if (yych == '=') goto yy214;
2528
0
    goto yy9;
2529
0
yy67:
2530
0
    YYDEBUG(67, *YYCURSOR);
2531
0
    yyaccept = 4;
2532
0
    yych = *(YYMARKER = ++YYCURSOR);
2533
0
    if (yych == '_') goto yy216;
2534
0
    goto yy48;
2535
0
yy68:
2536
0
    YYDEBUG(68, *YYCURSOR);
2537
0
    ++YYCURSOR;
2538
0
    YYDEBUG(69, *YYCURSOR);
2539
0
    yyleng = YYCURSOR - SCNG(yy_text);
2540
0
#line 2825 "Zend/zend_language_scanner.l"
2541
0
    {
2542
0
  BEGIN(ST_BACKQUOTE);
2543
0
  RETURN_TOKEN('`');
2544
0
}
2545
0
#line 2546 "Zend/zend_language_scanner.c"
2546
0
yy70:
2547
0
    YYDEBUG(70, *YYCURSOR);
2548
0
    ++YYCURSOR;
2549
0
    YYDEBUG(71, *YYCURSOR);
2550
0
    yyleng = YYCURSOR - SCNG(yy_text);
2551
0
#line 1973 "Zend/zend_language_scanner.l"
2552
0
    {
2553
0
  yy_push_state(ST_IN_SCRIPTING);
2554
0
  enter_nesting('{');
2555
0
  RETURN_TOKEN('{');
2556
0
}
2557
0
#line 2558 "Zend/zend_language_scanner.c"
2558
0
yy72:
2559
0
    YYDEBUG(72, *YYCURSOR);
2560
0
    yych = *++YYCURSOR;
2561
0
    if (yych <= '>') {
2562
0
      if (yych <= '<') goto yy9;
2563
0
      if (yych <= '=') goto yy217;
2564
0
      goto yy219;
2565
0
    } else {
2566
0
      if (yych == '|') goto yy221;
2567
0
      goto yy9;
2568
0
    }
2569
0
yy73:
2570
0
    YYDEBUG(73, *YYCURSOR);
2571
0
    ++YYCURSOR;
2572
0
    YYDEBUG(74, *YYCURSOR);
2573
0
    yyleng = YYCURSOR - SCNG(yy_text);
2574
0
#line 1986 "Zend/zend_language_scanner.l"
2575
0
    {
2576
0
  RESET_DOC_COMMENT();
2577
0
  if (!zend_stack_is_empty(&SCNG(state_stack))) {
2578
0
    yy_pop_state();
2579
0
  }
2580
0
  RETURN_EXIT_NESTING_TOKEN('}');
2581
0
}
2582
0
#line 2583 "Zend/zend_language_scanner.c"
2583
0
yy75:
2584
0
    YYDEBUG(75, *YYCURSOR);
2585
0
    yych = *++YYCURSOR;
2586
0
    if (yych == '=') goto yy223;
2587
0
yy76:
2588
0
    YYDEBUG(76, *YYCURSOR);
2589
0
    yyleng = YYCURSOR - SCNG(yy_text);
2590
0
#line 1845 "Zend/zend_language_scanner.l"
2591
0
    {
2592
0
  RETURN_TOKEN(T_IS_NOT_EQUAL);
2593
0
}
2594
0
#line 2595 "Zend/zend_language_scanner.c"
2595
0
yy77:
2596
0
    YYDEBUG(77, *YYCURSOR);
2597
0
    ++YYCURSOR;
2598
0
    YYDEBUG(78, *YYCURSOR);
2599
0
    yyleng = YYCURSOR - SCNG(yy_text);
2600
0
#line 1422 "Zend/zend_language_scanner.l"
2601
0
    {
2602
0
  enter_nesting('[');
2603
0
  RETURN_TOKEN(T_ATTRIBUTE);
2604
0
}
2605
0
#line 2606 "Zend/zend_language_scanner.c"
2606
0
yy79:
2607
0
    YYDEBUG(79, *YYCURSOR);
2608
0
    ++YYCURSOR;
2609
0
    YYFILL(1);
2610
0
    yych = *YYCURSOR;
2611
0
    YYDEBUG(80, *YYCURSOR);
2612
0
    if (yych <= '^') {
2613
0
      if (yych <= '9') {
2614
0
        if (yych >= '0') goto yy79;
2615
0
      } else {
2616
0
        if (yych <= '@') goto yy81;
2617
0
        if (yych <= 'Z') goto yy79;
2618
0
      }
2619
0
    } else {
2620
0
      if (yych <= '`') {
2621
0
        if (yych <= '_') goto yy79;
2622
0
      } else {
2623
0
        if (yych <= 'z') goto yy79;
2624
0
        if (yych >= 0x80) goto yy79;
2625
0
      }
2626
0
    }
2627
0
yy81:
2628
0
    YYDEBUG(81, *YYCURSOR);
2629
0
    yyleng = YYCURSOR - SCNG(yy_text);
2630
0
#line 2416 "Zend/zend_language_scanner.l"
2631
0
    {
2632
0
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
2633
0
}
2634
0
#line 2635 "Zend/zend_language_scanner.c"
2635
0
yy82:
2636
0
    YYDEBUG(82, *YYCURSOR);
2637
0
    ++YYCURSOR;
2638
0
    YYDEBUG(83, *YYCURSOR);
2639
0
    yyleng = YYCURSOR - SCNG(yy_text);
2640
0
#line 1889 "Zend/zend_language_scanner.l"
2641
0
    {
2642
0
  RETURN_TOKEN(T_MOD_EQUAL);
2643
0
}
2644
0
#line 2645 "Zend/zend_language_scanner.c"
2645
0
yy84:
2646
0
    YYDEBUG(84, *YYCURSOR);
2647
0
    ++YYCURSOR;
2648
0
    YYFILL(3);
2649
0
    yych = *YYCURSOR;
2650
0
yy85:
2651
0
    YYDEBUG(85, *YYCURSOR);
2652
0
    if (yych <= ' ') {
2653
0
      if (yych <= '\f') {
2654
0
        if (yych <= 0x08) goto yy86;
2655
0
        if (yych <= '\n') goto yy84;
2656
0
      } else {
2657
0
        if (yych <= '\r') goto yy84;
2658
0
        if (yych >= ' ') goto yy84;
2659
0
      }
2660
0
    } else {
2661
0
      if (yych <= '$') {
2662
0
        if (yych <= '"') goto yy86;
2663
0
        if (yych <= '#') goto yy87;
2664
0
        goto yy88;
2665
0
      } else {
2666
0
        if (yych <= '-') goto yy86;
2667
0
        if (yych <= '.') goto yy92;
2668
0
        if (yych <= '/') goto yy93;
2669
0
      }
2670
0
    }
2671
0
yy86:
2672
0
    YYDEBUG(86, *YYCURSOR);
2673
0
    YYCURSOR = YYMARKER;
2674
0
    if (yyaccept <= 48) {
2675
0
      if (yyaccept <= 24) {
2676
0
        if (yyaccept <= 12) {
2677
0
          if (yyaccept <= 6) {
2678
0
            if (yyaccept <= 3) {
2679
0
              if (yyaccept <= 1) {
2680
0
                if (yyaccept == 0) {
2681
0
                  goto yy17;
2682
0
                } else {
2683
0
                  goto yy21;
2684
0
                }
2685
0
              } else {
2686
0
                if (yyaccept == 2) {
2687
0
                  goto yy9;
2688
0
                } else {
2689
0
                  goto yy31;
2690
0
                }
2691
0
              }
2692
0
            } else {
2693
0
              if (yyaccept <= 5) {
2694
0
                if (yyaccept == 4) {
2695
0
                  goto yy40;
2696
0
                } else {
2697
0
                  goto yy125;
2698
0
                }
2699
0
              } else {
2700
0
                goto yy129;
2701
0
              }
2702
0
            }
2703
0
          } else {
2704
0
            if (yyaccept <= 9) {
2705
0
              if (yyaccept <= 8) {
2706
0
                if (yyaccept == 7) {
2707
0
                  goto yy142;
2708
0
                } else {
2709
0
                  goto yy163;
2710
0
                }
2711
0
              } else {
2712
0
                goto yy173;
2713
0
              }
2714
0
            } else {
2715
0
              if (yyaccept <= 11) {
2716
0
                if (yyaccept == 10) {
2717
0
                  goto yy182;
2718
0
                } else {
2719
0
                  goto yy188;
2720
0
                }
2721
0
              } else {
2722
0
                goto yy197;
2723
0
              }
2724
0
            }
2725
0
          }
2726
0
        } else {
2727
0
          if (yyaccept <= 18) {
2728
0
            if (yyaccept <= 15) {
2729
0
              if (yyaccept <= 14) {
2730
0
                if (yyaccept == 13) {
2731
0
                  goto yy213;
2732
0
                } else {
2733
0
                  goto yy251;
2734
0
                }
2735
0
              } else {
2736
0
                goto yy257;
2737
0
              }
2738
0
            } else {
2739
0
              if (yyaccept <= 17) {
2740
0
                if (yyaccept == 16) {
2741
0
                  goto yy260;
2742
0
                } else {
2743
0
                  goto yy279;
2744
0
                }
2745
0
              } else {
2746
0
                goto yy283;
2747
0
              }
2748
0
            }
2749
0
          } else {
2750
0
            if (yyaccept <= 21) {
2751
0
              if (yyaccept <= 20) {
2752
0
                if (yyaccept == 19) {
2753
0
                  goto yy295;
2754
0
                } else {
2755
0
                  goto yy306;
2756
0
                }
2757
0
              } else {
2758
0
                goto yy319;
2759
0
              }
2760
0
            } else {
2761
0
              if (yyaccept <= 23) {
2762
0
                if (yyaccept == 22) {
2763
0
                  goto yy331;
2764
0
                } else {
2765
0
                  goto yy334;
2766
0
                }
2767
0
              } else {
2768
0
                goto yy336;
2769
0
              }
2770
0
            }
2771
0
          }
2772
0
        }
2773
0
      } else {
2774
0
        if (yyaccept <= 36) {
2775
0
          if (yyaccept <= 30) {
2776
0
            if (yyaccept <= 27) {
2777
0
              if (yyaccept <= 26) {
2778
0
                if (yyaccept == 25) {
2779
0
                  goto yy339;
2780
0
                } else {
2781
0
                  goto yy89;
2782
0
                }
2783
0
              } else {
2784
0
                goto yy379;
2785
0
              }
2786
0
            } else {
2787
0
              if (yyaccept <= 29) {
2788
0
                if (yyaccept == 28) {
2789
0
                  goto yy388;
2790
0
                } else {
2791
0
                  goto yy390;
2792
0
                }
2793
0
              } else {
2794
0
                goto yy399;
2795
0
              }
2796
0
            }
2797
0
          } else {
2798
0
            if (yyaccept <= 33) {
2799
0
              if (yyaccept <= 32) {
2800
0
                if (yyaccept == 31) {
2801
0
                  goto yy401;
2802
0
                } else {
2803
0
                  goto yy408;
2804
0
                }
2805
0
              } else {
2806
0
                goto yy415;
2807
0
              }
2808
0
            } else {
2809
0
              if (yyaccept <= 35) {
2810
0
                if (yyaccept == 34) {
2811
0
                  goto yy471;
2812
0
                } else {
2813
0
                  goto yy473;
2814
0
                }
2815
0
              } else {
2816
0
                goto yy476;
2817
0
              }
2818
0
            }
2819
0
          }
2820
0
        } else {
2821
0
          if (yyaccept <= 42) {
2822
0
            if (yyaccept <= 39) {
2823
0
              if (yyaccept <= 38) {
2824
0
                if (yyaccept == 37) {
2825
0
                  goto yy478;
2826
0
                } else {
2827
0
                  goto yy480;
2828
0
                }
2829
0
              } else {
2830
0
                goto yy482;
2831
0
              }
2832
0
            } else {
2833
0
              if (yyaccept <= 41) {
2834
0
                if (yyaccept == 40) {
2835
0
                  goto yy488;
2836
0
                } else {
2837
0
                  goto yy492;
2838
0
                }
2839
0
              } else {
2840
0
                goto yy501;
2841
0
              }
2842
0
            }
2843
0
          } else {
2844
0
            if (yyaccept <= 45) {
2845
0
              if (yyaccept <= 44) {
2846
0
                if (yyaccept == 43) {
2847
0
                  goto yy511;
2848
0
                } else {
2849
0
                  goto yy513;
2850
0
                }
2851
0
              } else {
2852
0
                goto yy516;
2853
0
              }
2854
0
            } else {
2855
0
              if (yyaccept <= 47) {
2856
0
                if (yyaccept == 46) {
2857
0
                  goto yy526;
2858
0
                } else {
2859
0
                  goto yy528;
2860
0
                }
2861
0
              } else {
2862
0
                goto yy530;
2863
0
              }
2864
0
            }
2865
0
          }
2866
0
        }
2867
0
      }
2868
0
    } else {
2869
0
      if (yyaccept <= 72) {
2870
0
        if (yyaccept <= 60) {
2871
0
          if (yyaccept <= 54) {
2872
0
            if (yyaccept <= 51) {
2873
0
              if (yyaccept <= 50) {
2874
0
                if (yyaccept == 49) {
2875
0
                  goto yy532;
2876
0
                } else {
2877
0
                  goto yy534;
2878
0
                }
2879
0
              } else {
2880
0
                goto yy576;
2881
0
              }
2882
0
            } else {
2883
0
              if (yyaccept <= 53) {
2884
0
                if (yyaccept == 52) {
2885
0
                  goto yy579;
2886
0
                } else {
2887
0
                  goto yy583;
2888
0
                }
2889
0
              } else {
2890
0
                goto yy597;
2891
0
              }
2892
0
            }
2893
0
          } else {
2894
0
            if (yyaccept <= 57) {
2895
0
              if (yyaccept <= 56) {
2896
0
                if (yyaccept == 55) {
2897
0
                  goto yy607;
2898
0
                } else {
2899
0
                  goto yy611;
2900
0
                }
2901
0
              } else {
2902
0
                goto yy613;
2903
0
              }
2904
0
            } else {
2905
0
              if (yyaccept <= 59) {
2906
0
                if (yyaccept == 58) {
2907
0
                  goto yy615;
2908
0
                } else {
2909
0
                  goto yy654;
2910
0
                }
2911
0
              } else {
2912
0
                goto yy656;
2913
0
              }
2914
0
            }
2915
0
          }
2916
0
        } else {
2917
0
          if (yyaccept <= 66) {
2918
0
            if (yyaccept <= 63) {
2919
0
              if (yyaccept <= 62) {
2920
0
                if (yyaccept == 61) {
2921
0
                  goto yy671;
2922
0
                } else {
2923
0
                  goto yy673;
2924
0
                }
2925
0
              } else {
2926
0
                goto yy675;
2927
0
              }
2928
0
            } else {
2929
0
              if (yyaccept <= 65) {
2930
0
                if (yyaccept == 64) {
2931
0
                  goto yy679;
2932
0
                } else {
2933
0
                  goto yy685;
2934
0
                }
2935
0
              } else {
2936
0
                goto yy690;
2937
0
              }
2938
0
            }
2939
0
          } else {
2940
0
            if (yyaccept <= 69) {
2941
0
              if (yyaccept <= 68) {
2942
0
                if (yyaccept == 67) {
2943
0
                  goto yy700;
2944
0
                } else {
2945
0
                  goto yy726;
2946
0
                }
2947
0
              } else {
2948
0
                goto yy728;
2949
0
              }
2950
0
            } else {
2951
0
              if (yyaccept <= 71) {
2952
0
                if (yyaccept == 70) {
2953
0
                  goto yy730;
2954
0
                } else {
2955
0
                  goto yy735;
2956
0
                }
2957
0
              } else {
2958
0
                goto yy743;
2959
0
              }
2960
0
            }
2961
0
          }
2962
0
        }
2963
0
      } else {
2964
0
        if (yyaccept <= 84) {
2965
0
          if (yyaccept <= 78) {
2966
0
            if (yyaccept <= 75) {
2967
0
              if (yyaccept <= 74) {
2968
0
                if (yyaccept == 73) {
2969
0
                  goto yy754;
2970
0
                } else {
2971
0
                  goto yy764;
2972
0
                }
2973
0
              } else {
2974
0
                goto yy768;
2975
0
              }
2976
0
            } else {
2977
0
              if (yyaccept <= 77) {
2978
0
                if (yyaccept == 76) {
2979
0
                  goto yy784;
2980
0
                } else {
2981
0
                  goto yy797;
2982
0
                }
2983
0
              } else {
2984
0
                goto yy799;
2985
0
              }
2986
0
            }
2987
0
          } else {
2988
0
            if (yyaccept <= 81) {
2989
0
              if (yyaccept <= 80) {
2990
0
                if (yyaccept == 79) {
2991
0
                  goto yy801;
2992
0
                } else {
2993
0
                  goto yy804;
2994
0
                }
2995
0
              } else {
2996
0
                goto yy812;
2997
0
              }
2998
0
            } else {
2999
0
              if (yyaccept <= 83) {
3000
0
                if (yyaccept == 82) {
3001
0
                  goto yy819;
3002
0
                } else {
3003
0
                  goto yy823;
3004
0
                }
3005
0
              } else {
3006
0
                goto yy825;
3007
0
              }
3008
0
            }
3009
0
          }
3010
0
        } else {
3011
0
          if (yyaccept <= 90) {
3012
0
            if (yyaccept <= 87) {
3013
0
              if (yyaccept <= 86) {
3014
0
                if (yyaccept == 85) {
3015
0
                  goto yy836;
3016
0
                } else {
3017
0
                  goto yy839;
3018
0
                }
3019
0
              } else {
3020
0
                goto yy854;
3021
0
              }
3022
0
            } else {
3023
0
              if (yyaccept <= 89) {
3024
0
                if (yyaccept == 88) {
3025
0
                  goto yy869;
3026
0
                } else {
3027
0
                  goto yy898;
3028
0
                }
3029
0
              } else {
3030
0
                goto yy903;
3031
0
              }
3032
0
            }
3033
0
          } else {
3034
0
            if (yyaccept <= 93) {
3035
0
              if (yyaccept <= 92) {
3036
0
                if (yyaccept == 91) {
3037
0
                  goto yy876;
3038
0
                } else {
3039
0
                  goto yy911;
3040
0
                }
3041
0
              } else {
3042
0
                goto yy915;
3043
0
              }
3044
0
            } else {
3045
0
              if (yyaccept <= 95) {
3046
0
                if (yyaccept == 94) {
3047
0
                  goto yy886;
3048
0
                } else {
3049
0
                  goto yy931;
3050
0
                }
3051
0
              } else {
3052
0
                goto yy951;
3053
0
              }
3054
0
            }
3055
0
          }
3056
0
        }
3057
0
      }
3058
0
    }
3059
0
yy87:
3060
0
    YYDEBUG(87, *YYCURSOR);
3061
0
    ++YYCURSOR;
3062
0
    YYFILL(1);
3063
0
    yych = *YYCURSOR;
3064
0
    if (yych <= '\f') {
3065
0
      if (yych <= 0x00) goto yy86;
3066
0
      if (yych == '\n') goto yy227;
3067
0
      goto yy225;
3068
0
    } else {
3069
0
      if (yych <= '\r') goto yy227;
3070
0
      if (yych == '[') goto yy86;
3071
0
      goto yy225;
3072
0
    }
3073
0
yy88:
3074
0
    YYDEBUG(88, *YYCURSOR);
3075
0
    ++YYCURSOR;
3076
0
yy89:
3077
0
    YYDEBUG(89, *YYCURSOR);
3078
0
    yyleng = YYCURSOR - SCNG(yy_text);
3079
0
#line 1949 "Zend/zend_language_scanner.l"
3080
0
    {
3081
0
  yyless(1);
3082
0
  RETURN_TOKEN(T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG);
3083
0
}
3084
0
#line 3085 "Zend/zend_language_scanner.c"
3085
0
yy90:
3086
0
    YYDEBUG(90, *YYCURSOR);
3087
0
    ++YYCURSOR;
3088
0
    YYDEBUG(91, *YYCURSOR);
3089
0
    yyleng = YYCURSOR - SCNG(yy_text);
3090
0
#line 1925 "Zend/zend_language_scanner.l"
3091
0
    {
3092
0
  RETURN_TOKEN(T_BOOLEAN_AND);
3093
0
}
3094
0
#line 3095 "Zend/zend_language_scanner.c"
3095
0
yy92:
3096
0
    YYDEBUG(92, *YYCURSOR);
3097
0
    yych = *++YYCURSOR;
3098
0
    if (yych == '.') goto yy229;
3099
0
    goto yy86;
3100
0
yy93:
3101
0
    YYDEBUG(93, *YYCURSOR);
3102
0
    ++YYCURSOR;
3103
0
    YYFILL(1);
3104
0
    yych = *YYCURSOR;
3105
0
    if (yych == '*') goto yy230;
3106
0
    if (yych == '/') goto yy225;
3107
0
    goto yy86;
3108
0
yy94:
3109
0
    YYDEBUG(94, *YYCURSOR);
3110
0
    ++YYCURSOR;
3111
0
    YYDEBUG(95, *YYCURSOR);
3112
0
    yyleng = YYCURSOR - SCNG(yy_text);
3113
0
#line 1901 "Zend/zend_language_scanner.l"
3114
0
    {
3115
0
  RETURN_TOKEN(T_AND_EQUAL);
3116
0
}
3117
0
#line 3118 "Zend/zend_language_scanner.c"
3118
0
yy96:
3119
0
    YYDEBUG(96, *YYCURSOR);
3120
0
    ++YYCURSOR;
3121
0
    YYFILL(7);
3122
0
    yych = *YYCURSOR;
3123
0
yy97:
3124
0
    YYDEBUG(97, *YYCURSOR);
3125
0
    if (yybm[0+yych] & 1) {
3126
0
      goto yy96;
3127
0
    }
3128
0
    switch (yych) {
3129
0
    case 'A':
3130
0
    case 'a': goto yy98;
3131
0
    case 'B':
3132
0
    case 'b': goto yy99;
3133
0
    case 'D':
3134
0
    case 'd': goto yy100;
3135
0
    case 'F':
3136
0
    case 'f': goto yy101;
3137
0
    case 'I':
3138
0
    case 'i': goto yy102;
3139
0
    case 'O':
3140
0
    case 'o': goto yy103;
3141
0
    case 'R':
3142
0
    case 'r': goto yy104;
3143
0
    case 'S':
3144
0
    case 's': goto yy105;
3145
0
    case 'U':
3146
0
    case 'u': goto yy106;
3147
0
    case 'V':
3148
0
    case 'v': goto yy107;
3149
0
    default:  goto yy86;
3150
0
    }
3151
0
yy98:
3152
0
    YYDEBUG(98, *YYCURSOR);
3153
0
    yych = *++YYCURSOR;
3154
0
    if (yych == 'R') goto yy232;
3155
0
    if (yych == 'r') goto yy232;
3156
0
    goto yy86;
3157
0
yy99:
3158
0
    YYDEBUG(99, *YYCURSOR);
3159
0
    yych = *++YYCURSOR;
3160
0
    if (yych <= 'O') {
3161
0
      if (yych == 'I') goto yy233;
3162
0
      if (yych <= 'N') goto yy86;
3163
0
      goto yy234;
3164
0
    } else {
3165
0
      if (yych <= 'i') {
3166
0
        if (yych <= 'h') goto yy86;
3167
0
        goto yy233;
3168
0
      } else {
3169
0
        if (yych == 'o') goto yy234;
3170
0
        goto yy86;
3171
0
      }
3172
0
    }
3173
0
yy100:
3174
0
    YYDEBUG(100, *YYCURSOR);
3175
0
    yych = *++YYCURSOR;
3176
0
    if (yych == 'O') goto yy235;
3177
0
    if (yych == 'o') goto yy235;
3178
0
    goto yy86;
3179
0
yy101:
3180
0
    YYDEBUG(101, *YYCURSOR);
3181
0
    yych = *++YYCURSOR;
3182
0
    if (yych == 'L') goto yy236;
3183
0
    if (yych == 'l') goto yy236;
3184
0
    goto yy86;
3185
0
yy102:
3186
0
    YYDEBUG(102, *YYCURSOR);
3187
0
    yych = *++YYCURSOR;
3188
0
    if (yych == 'N') goto yy237;
3189
0
    if (yych == 'n') goto yy237;
3190
0
    goto yy86;
3191
0
yy103:
3192
0
    YYDEBUG(103, *YYCURSOR);
3193
0
    yych = *++YYCURSOR;
3194
0
    if (yych == 'B') goto yy238;
3195
0
    if (yych == 'b') goto yy238;
3196
0
    goto yy86;
3197
0
yy104:
3198
0
    YYDEBUG(104, *YYCURSOR);
3199
0
    yych = *++YYCURSOR;
3200
0
    if (yych == 'E') goto yy239;
3201
0
    if (yych == 'e') goto yy239;
3202
0
    goto yy86;
3203
0
yy105:
3204
0
    YYDEBUG(105, *YYCURSOR);
3205
0
    yych = *++YYCURSOR;
3206
0
    if (yych == 'T') goto yy240;
3207
0
    if (yych == 't') goto yy240;
3208
0
    goto yy86;
3209
0
yy106:
3210
0
    YYDEBUG(106, *YYCURSOR);
3211
0
    yych = *++YYCURSOR;
3212
0
    if (yych == 'N') goto yy241;
3213
0
    if (yych == 'n') goto yy241;
3214
0
    goto yy86;
3215
0
yy107:
3216
0
    YYDEBUG(107, *YYCURSOR);
3217
0
    yych = *++YYCURSOR;
3218
0
    if (yych == 'O') goto yy242;
3219
0
    if (yych == 'o') goto yy242;
3220
0
    goto yy86;
3221
0
yy108:
3222
0
    YYDEBUG(108, *YYCURSOR);
3223
0
    yych = *++YYCURSOR;
3224
0
    if (yych == '=') goto yy243;
3225
0
    YYDEBUG(109, *YYCURSOR);
3226
0
    yyleng = YYCURSOR - SCNG(yy_text);
3227
0
#line 1873 "Zend/zend_language_scanner.l"
3228
0
    {
3229
0
  RETURN_TOKEN(T_POW);
3230
0
}
3231
0
#line 3232 "Zend/zend_language_scanner.c"
3232
0
yy110:
3233
0
    YYDEBUG(110, *YYCURSOR);
3234
0
    ++YYCURSOR;
3235
0
    YYDEBUG(111, *YYCURSOR);
3236
0
    yyleng = YYCURSOR - SCNG(yy_text);
3237
0
#line 1869 "Zend/zend_language_scanner.l"
3238
0
    {
3239
0
  RETURN_TOKEN(T_MUL_EQUAL);
3240
0
}
3241
0
#line 3242 "Zend/zend_language_scanner.c"
3242
0
yy112:
3243
0
    YYDEBUG(112, *YYCURSOR);
3244
0
    ++YYCURSOR;
3245
0
    YYDEBUG(113, *YYCURSOR);
3246
0
    yyleng = YYCURSOR - SCNG(yy_text);
3247
0
#line 1825 "Zend/zend_language_scanner.l"
3248
0
    {
3249
0
  RETURN_TOKEN(T_INC);
3250
0
}
3251
0
#line 3252 "Zend/zend_language_scanner.c"
3252
0
yy114:
3253
0
    YYDEBUG(114, *YYCURSOR);
3254
0
    ++YYCURSOR;
3255
0
    YYDEBUG(115, *YYCURSOR);
3256
0
    yyleng = YYCURSOR - SCNG(yy_text);
3257
0
#line 1861 "Zend/zend_language_scanner.l"
3258
0
    {
3259
0
  RETURN_TOKEN(T_PLUS_EQUAL);
3260
0
}
3261
0
#line 3262 "Zend/zend_language_scanner.c"
3262
0
yy116:
3263
0
    YYDEBUG(116, *YYCURSOR);
3264
0
    ++YYCURSOR;
3265
0
    YYDEBUG(117, *YYCURSOR);
3266
0
    yyleng = YYCURSOR - SCNG(yy_text);
3267
0
#line 1829 "Zend/zend_language_scanner.l"
3268
0
    {
3269
0
  RETURN_TOKEN(T_DEC);
3270
0
}
3271
0
#line 3272 "Zend/zend_language_scanner.c"
3272
0
yy118:
3273
0
    YYDEBUG(118, *YYCURSOR);
3274
0
    ++YYCURSOR;
3275
0
    YYDEBUG(119, *YYCURSOR);
3276
0
    yyleng = YYCURSOR - SCNG(yy_text);
3277
0
#line 1865 "Zend/zend_language_scanner.l"
3278
0
    {
3279
0
  RETURN_TOKEN(T_MINUS_EQUAL);
3280
0
}
3281
0
#line 3282 "Zend/zend_language_scanner.c"
3282
0
yy120:
3283
0
    YYDEBUG(120, *YYCURSOR);
3284
0
    ++YYCURSOR;
3285
0
    YYDEBUG(121, *YYCURSOR);
3286
0
    yyleng = YYCURSOR - SCNG(yy_text);
3287
0
#line 1586 "Zend/zend_language_scanner.l"
3288
0
    {
3289
0
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
3290
0
  RETURN_TOKEN(T_OBJECT_OPERATOR);
3291
0
}
3292
0
#line 3293 "Zend/zend_language_scanner.c"
3293
0
yy122:
3294
0
    YYDEBUG(122, *YYCURSOR);
3295
0
    yych = *++YYCURSOR;
3296
0
    if (yych == '.') goto yy245;
3297
0
    goto yy86;
3298
0
yy123:
3299
0
    YYDEBUG(123, *YYCURSOR);
3300
0
    yyaccept = 5;
3301
0
    YYMARKER = ++YYCURSOR;
3302
0
    YYFILL(2);
3303
0
    yych = *YYCURSOR;
3304
0
yy124:
3305
0
    YYDEBUG(124, *YYCURSOR);
3306
0
    if (yych <= 'E') {
3307
0
      if (yych <= '/') goto yy125;
3308
0
      if (yych <= '9') goto yy123;
3309
0
      if (yych >= 'E') goto yy135;
3310
0
    } else {
3311
0
      if (yych <= '_') {
3312
0
        if (yych >= '_') goto yy247;
3313
0
      } else {
3314
0
        if (yych == 'e') goto yy135;
3315
0
      }
3316
0
    }
3317
0
yy125:
3318
0
    YYDEBUG(125, *YYCURSOR);
3319
0
    yyleng = YYCURSOR - SCNG(yy_text);
3320
0
#line 2232 "Zend/zend_language_scanner.l"
3321
0
    {
3322
0
  const char *end;
3323
0
  size_t len = yyleng;
3324
0
  char *dnum = yytext;
3325
0
  bool contains_underscores = (memchr(dnum, '_', len) != NULL);
3326
3327
0
  if (contains_underscores) {
3328
0
    dnum = estrndup(dnum, len);
3329
0
    strip_underscores(dnum, &len);
3330
0
  }
3331
3332
0
  ZVAL_DOUBLE(zendlval, zend_strtod(dnum, &end));
3333
  /* errno isn't checked since we allow HUGE_VAL/INF overflow */
3334
0
  ZEND_ASSERT(end == dnum + len);
3335
0
  if (contains_underscores) {
3336
0
    efree(dnum);
3337
0
  }
3338
0
  RETURN_TOKEN_WITH_VAL(T_DNUMBER);
3339
0
}
3340
0
#line 3341 "Zend/zend_language_scanner.c"
3341
0
yy126:
3342
0
    YYDEBUG(126, *YYCURSOR);
3343
0
    ++YYCURSOR;
3344
0
    YYDEBUG(127, *YYCURSOR);
3345
0
    yyleng = YYCURSOR - SCNG(yy_text);
3346
0
#line 1885 "Zend/zend_language_scanner.l"
3347
0
    {
3348
0
  RETURN_TOKEN(T_CONCAT_EQUAL);
3349
0
}
3350
0
#line 3351 "Zend/zend_language_scanner.c"
3351
0
yy128:
3352
0
    YYDEBUG(128, *YYCURSOR);
3353
0
    yyaccept = 6;
3354
0
    yych = *(YYMARKER = ++YYCURSOR);
3355
0
    if (yych == '*') goto yy248;
3356
0
yy129:
3357
0
    YYDEBUG(129, *YYCURSOR);
3358
0
    yyleng = YYCURSOR - SCNG(yy_text);
3359
0
#line 2483 "Zend/zend_language_scanner.l"
3360
0
    {
3361
0
  int doc_com;
3362
3363
0
  if (yyleng > 2) {
3364
0
    doc_com = 1;
3365
0
    RESET_DOC_COMMENT();
3366
0
  } else {
3367
0
    doc_com = 0;
3368
0
  }
3369
3370
0
  while (YYCURSOR < YYLIMIT) {
3371
0
    if (*YYCURSOR++ == '*' && *YYCURSOR == '/') {
3372
0
      break;
3373
0
    }
3374
0
  }
3375
3376
0
  if (YYCURSOR < YYLIMIT) {
3377
0
    YYCURSOR++;
3378
0
  } else {
3379
0
    zend_throw_exception_ex(zend_ce_parse_error, 0, "Unterminated comment starting line %" PRIu32, CG(zend_lineno));
3380
0
    if (PARSER_MODE()) {
3381
0
      RETURN_TOKEN(T_ERROR);
3382
0
    }
3383
0
  }
3384
3385
0
  yyleng = YYCURSOR - SCNG(yy_text);
3386
0
  HANDLE_NEWLINES(yytext, yyleng);
3387
3388
0
  if (doc_com) {
3389
0
    CG(doc_comment) = zend_string_init(yytext, yyleng, 0);
3390
0
    RETURN_OR_SKIP_TOKEN(T_DOC_COMMENT);
3391
0
  }
3392
3393
0
  RETURN_OR_SKIP_TOKEN(T_COMMENT);
3394
0
}
3395
0
#line 3396 "Zend/zend_language_scanner.c"
3396
0
yy130:
3397
0
    YYDEBUG(130, *YYCURSOR);
3398
0
    ++YYCURSOR;
3399
0
    goto yy13;
3400
0
yy131:
3401
0
    YYDEBUG(131, *YYCURSOR);
3402
0
    ++YYCURSOR;
3403
0
    YYDEBUG(132, *YYCURSOR);
3404
0
    yyleng = YYCURSOR - SCNG(yy_text);
3405
0
#line 1881 "Zend/zend_language_scanner.l"
3406
0
    {
3407
0
  RETURN_TOKEN(T_DIV_EQUAL);
3408
0
}
3409
0
#line 3410 "Zend/zend_language_scanner.c"
3410
0
yy133:
3411
0
    YYDEBUG(133, *YYCURSOR);
3412
0
    yyaccept = 5;
3413
0
    yych = *(YYMARKER = ++YYCURSOR);
3414
0
    if (yych == '_') goto yy125;
3415
0
    goto yy124;
3416
0
yy134:
3417
0
    YYDEBUG(134, *YYCURSOR);
3418
0
    ++YYCURSOR;
3419
0
    YYFILL(1);
3420
0
    yych = *YYCURSOR;
3421
0
    if (yybm[0+yych] & 8) {
3422
0
      goto yy249;
3423
0
    }
3424
0
    goto yy86;
3425
0
yy135:
3426
0
    YYDEBUG(135, *YYCURSOR);
3427
0
    yych = *++YYCURSOR;
3428
0
    if (yych <= ',') {
3429
0
      if (yych == '+') goto yy252;
3430
0
      goto yy86;
3431
0
    } else {
3432
0
      if (yych <= '-') goto yy252;
3433
0
      if (yych <= '/') goto yy86;
3434
0
      if (yych <= '9') goto yy253;
3435
0
      goto yy86;
3436
0
    }
3437
0
yy136:
3438
0
    YYDEBUG(136, *YYCURSOR);
3439
0
    ++YYCURSOR;
3440
0
    YYFILL(1);
3441
0
    yych = *YYCURSOR;
3442
0
    if (yybm[0+yych] & 16) {
3443
0
      goto yy255;
3444
0
    }
3445
0
    goto yy86;
3446
0
yy137:
3447
0
    YYDEBUG(137, *YYCURSOR);
3448
0
    ++YYCURSOR;
3449
0
    YYFILL(1);
3450
0
    yych = *YYCURSOR;
3451
0
    if (yybm[0+yych] & 32) {
3452
0
      goto yy258;
3453
0
    }
3454
0
    goto yy86;
3455
0
yy138:
3456
0
    YYDEBUG(138, *YYCURSOR);
3457
0
    ++YYCURSOR;
3458
0
    YYFILL(1);
3459
0
    yych = *YYCURSOR;
3460
0
    if (yybm[256+yych] & 64) {
3461
0
      goto yy32;
3462
0
    }
3463
0
    goto yy86;
3464
0
yy139:
3465
0
    YYDEBUG(139, *YYCURSOR);
3466
0
    ++YYCURSOR;
3467
0
    YYDEBUG(140, *YYCURSOR);
3468
0
    yyleng = YYCURSOR - SCNG(yy_text);
3469
0
#line 1613 "Zend/zend_language_scanner.l"
3470
0
    {
3471
0
  RETURN_TOKEN(T_PAAMAYIM_NEKUDOTAYIM);
3472
0
}
3473
0
#line 3474 "Zend/zend_language_scanner.c"
3474
0
yy141:
3475
0
    YYDEBUG(141, *YYCURSOR);
3476
0
    yyaccept = 7;
3477
0
    yych = *(YYMARKER = ++YYCURSOR);
3478
0
    if (yych <= ';') goto yy142;
3479
0
    if (yych <= '<') goto yy261;
3480
0
    if (yych <= '=') goto yy263;
3481
0
yy142:
3482
0
    YYDEBUG(142, *YYCURSOR);
3483
0
    yyleng = YYCURSOR - SCNG(yy_text);
3484
0
#line 1941 "Zend/zend_language_scanner.l"
3485
0
    {
3486
0
  RETURN_TOKEN(T_SL);
3487
0
}
3488
0
#line 3489 "Zend/zend_language_scanner.c"
3489
0
yy143:
3490
0
    YYDEBUG(143, *YYCURSOR);
3491
0
    yych = *++YYCURSOR;
3492
0
    if (yych == '>') goto yy265;
3493
0
    YYDEBUG(144, *YYCURSOR);
3494
0
    yyleng = YYCURSOR - SCNG(yy_text);
3495
0
#line 1853 "Zend/zend_language_scanner.l"
3496
0
    {
3497
0
  RETURN_TOKEN(T_IS_SMALLER_OR_EQUAL);
3498
0
}
3499
0
#line 3500 "Zend/zend_language_scanner.c"
3500
0
yy145:
3501
0
    YYDEBUG(145, *YYCURSOR);
3502
0
    ++YYCURSOR;
3503
0
    goto yy76;
3504
0
yy146:
3505
0
    YYDEBUG(146, *YYCURSOR);
3506
0
    yych = *++YYCURSOR;
3507
0
    if (yych == '=') goto yy267;
3508
0
    YYDEBUG(147, *YYCURSOR);
3509
0
    yyleng = YYCURSOR - SCNG(yy_text);
3510
0
#line 1841 "Zend/zend_language_scanner.l"
3511
0
    {
3512
0
  RETURN_TOKEN(T_IS_EQUAL);
3513
0
}
3514
0
#line 3515 "Zend/zend_language_scanner.c"
3515
0
yy148:
3516
0
    YYDEBUG(148, *YYCURSOR);
3517
0
    ++YYCURSOR;
3518
0
    YYDEBUG(149, *YYCURSOR);
3519
0
    yyleng = YYCURSOR - SCNG(yy_text);
3520
0
#line 1809 "Zend/zend_language_scanner.l"
3521
0
    {
3522
0
  RETURN_TOKEN(T_DOUBLE_ARROW);
3523
0
}
3524
0
#line 3525 "Zend/zend_language_scanner.c"
3525
0
yy150:
3526
0
    YYDEBUG(150, *YYCURSOR);
3527
0
    ++YYCURSOR;
3528
0
    YYDEBUG(151, *YYCURSOR);
3529
0
    yyleng = YYCURSOR - SCNG(yy_text);
3530
0
#line 1857 "Zend/zend_language_scanner.l"
3531
0
    {
3532
0
  RETURN_TOKEN(T_IS_GREATER_OR_EQUAL);
3533
0
}
3534
0
#line 3535 "Zend/zend_language_scanner.c"
3535
0
yy152:
3536
0
    YYDEBUG(152, *YYCURSOR);
3537
0
    yych = *++YYCURSOR;
3538
0
    if (yych == '=') goto yy269;
3539
0
    YYDEBUG(153, *YYCURSOR);
3540
0
    yyleng = YYCURSOR - SCNG(yy_text);
3541
0
#line 1945 "Zend/zend_language_scanner.l"
3542
0
    {
3543
0
  RETURN_TOKEN(T_SR);
3544
0
}
3545
0
#line 3546 "Zend/zend_language_scanner.c"
3546
0
yy154:
3547
0
    YYDEBUG(154, *YYCURSOR);
3548
0
    yych = *++YYCURSOR;
3549
0
    if (yych == '>') goto yy271;
3550
0
    goto yy86;
3551
0
yy155:
3552
0
    YYDEBUG(155, *YYCURSOR);
3553
0
    yych = *++YYCURSOR;
3554
0
    if (yych == '\n') goto yy273;
3555
0
    if (yych == '\r') goto yy274;
3556
0
yy156:
3557
0
    YYDEBUG(156, *YYCURSOR);
3558
0
    yyleng = YYCURSOR - SCNG(yy_text);
3559
0
#line 2525 "Zend/zend_language_scanner.l"
3560
0
    {
3561
0
  BEGIN(INITIAL);
3562
0
  if (yytext[yyleng-1] != '>') {
3563
0
    CG(increment_lineno) = 1;
3564
0
  }
3565
0
  if (PARSER_MODE()) {
3566
0
    RETURN_TOKEN(';');  /* implicit ';' at php-end tag */
3567
0
  }
3568
0
  RETURN_TOKEN(T_CLOSE_TAG);
3569
0
}
3570
0
#line 3571 "Zend/zend_language_scanner.c"
3571
0
yy157:
3572
0
    YYDEBUG(157, *YYCURSOR);
3573
0
    yych = *++YYCURSOR;
3574
0
    if (yych == '=') goto yy275;
3575
0
    YYDEBUG(158, *YYCURSOR);
3576
0
    yyleng = YYCURSOR - SCNG(yy_text);
3577
0
#line 1621 "Zend/zend_language_scanner.l"
3578
0
    {
3579
0
  RETURN_TOKEN(T_COALESCE);
3580
0
}
3581
0
#line 3582 "Zend/zend_language_scanner.c"
3582
0
yy159:
3583
0
    YYDEBUG(159, *YYCURSOR);
3584
0
    yyaccept = 4;
3585
0
    yych = *(YYMARKER = ++YYCURSOR);
3586
0
    if (yych == 'S') goto yy277;
3587
0
    if (yych == 's') goto yy277;
3588
0
    goto yy48;
3589
0
yy160:
3590
0
    YYDEBUG(160, *YYCURSOR);
3591
0
    yyaccept = 4;
3592
0
    yych = *(YYMARKER = ++YYCURSOR);
3593
0
    if (yych == 'D') goto yy278;
3594
0
    if (yych == 'd') goto yy278;
3595
0
    goto yy48;
3596
0
yy161:
3597
0
    YYDEBUG(161, *YYCURSOR);
3598
0
    yyaccept = 4;
3599
0
    yych = *(YYMARKER = ++YYCURSOR);
3600
0
    if (yych == 'R') goto yy280;
3601
0
    if (yych == 'r') goto yy280;
3602
0
    goto yy48;
3603
0
yy162:
3604
0
    YYDEBUG(162, *YYCURSOR);
3605
0
    yyaccept = 8;
3606
0
    yych = *(YYMARKER = ++YYCURSOR);
3607
0
    if (yybm[256+yych] & 128) {
3608
0
      goto yy47;
3609
0
    }
3610
0
    if (yych == '\\') goto yy164;
3611
0
yy163:
3612
0
    YYDEBUG(163, *YYCURSOR);
3613
0
    yyleng = YYCURSOR - SCNG(yy_text);
3614
0
#line 1509 "Zend/zend_language_scanner.l"
3615
0
    {
3616
0
  RETURN_TOKEN_WITH_IDENT(T_AS);
3617
0
}
3618
0
#line 3619 "Zend/zend_language_scanner.c"
3619
0
yy164:
3620
0
    YYDEBUG(164, *YYCURSOR);
3621
0
    ++YYCURSOR;
3622
0
    YYFILL(1);
3623
0
    yych = *YYCURSOR;
3624
0
    if (yych <= '_') {
3625
0
      if (yych <= '@') goto yy86;
3626
0
      if (yych <= 'Z') goto yy281;
3627
0
      if (yych <= '^') goto yy86;
3628
0
      goto yy281;
3629
0
    } else {
3630
0
      if (yych <= '`') goto yy86;
3631
0
      if (yych <= 'z') goto yy281;
3632
0
      if (yych <= 0x7F) goto yy86;
3633
0
      goto yy281;
3634
0
    }
3635
0
yy165:
3636
0
    YYDEBUG(165, *YYCURSOR);
3637
0
    yych = *++YYCURSOR;
3638
0
    if (yych == '<') goto yy284;
3639
0
    goto yy86;
3640
0
yy166:
3641
0
    YYDEBUG(166, *YYCURSOR);
3642
0
    yyaccept = 4;
3643
0
    yych = *(YYMARKER = ++YYCURSOR);
3644
0
    if (yych == 'E') goto yy285;
3645
0
    if (yych == 'e') goto yy285;
3646
0
    goto yy48;
3647
0
yy167:
3648
0
    YYDEBUG(167, *YYCURSOR);
3649
0
    yyaccept = 4;
3650
0
    yych = *(YYMARKER = ++YYCURSOR);
3651
0
    if (yych <= 'T') {
3652
0
      if (yych <= 'L') {
3653
0
        if (yych <= 'K') goto yy48;
3654
0
        goto yy286;
3655
0
      } else {
3656
0
        if (yych <= 'R') goto yy48;
3657
0
        if (yych <= 'S') goto yy287;
3658
0
        goto yy288;
3659
0
      }
3660
0
    } else {
3661
0
      if (yych <= 'r') {
3662
0
        if (yych == 'l') goto yy286;
3663
0
        goto yy48;
3664
0
      } else {
3665
0
        if (yych <= 's') goto yy287;
3666
0
        if (yych <= 't') goto yy288;
3667
0
        goto yy48;
3668
0
      }
3669
0
    }
3670
0
yy168:
3671
0
    YYDEBUG(168, *YYCURSOR);
3672
0
    yyaccept = 4;
3673
0
    yych = *(YYMARKER = ++YYCURSOR);
3674
0
    if (yych <= 'O') {
3675
0
      if (yych == 'A') goto yy289;
3676
0
      if (yych <= 'N') goto yy48;
3677
0
      goto yy290;
3678
0
    } else {
3679
0
      if (yych <= 'a') {
3680
0
        if (yych <= '`') goto yy48;
3681
0
        goto yy289;
3682
0
      } else {
3683
0
        if (yych == 'o') goto yy290;
3684
0
        goto yy48;
3685
0
      }
3686
0
    }
3687
0
yy169:
3688
0
    YYDEBUG(169, *YYCURSOR);
3689
0
    yyaccept = 4;
3690
0
    yych = *(YYMARKER = ++YYCURSOR);
3691
0
    if (yych == 'N') goto yy291;
3692
0
    if (yych == 'n') goto yy291;
3693
0
    goto yy48;
3694
0
yy170:
3695
0
    YYDEBUG(170, *YYCURSOR);
3696
0
    yyaccept = 4;
3697
0
    yych = *(YYMARKER = ++YYCURSOR);
3698
0
    if (yych <= 'F') {
3699
0
      if (yych == 'C') goto yy292;
3700
0
      if (yych <= 'E') goto yy48;
3701
0
      goto yy293;
3702
0
    } else {
3703
0
      if (yych <= 'c') {
3704
0
        if (yych <= 'b') goto yy48;
3705
0
        goto yy292;
3706
0
      } else {
3707
0
        if (yych == 'f') goto yy293;
3708
0
        goto yy48;
3709
0
      }
3710
0
    }
3711
0
yy171:
3712
0
    YYDEBUG(171, *YYCURSOR);
3713
0
    yyaccept = 4;
3714
0
    yych = *(YYMARKER = ++YYCURSOR);
3715
0
    if (yych == 'E') goto yy294;
3716
0
    if (yych == 'e') goto yy294;
3717
0
    goto yy48;
3718
0
yy172:
3719
0
    YYDEBUG(172, *YYCURSOR);
3720
0
    yyaccept = 9;
3721
0
    yych = *(YYMARKER = ++YYCURSOR);
3722
0
    if (yybm[256+yych] & 128) {
3723
0
      goto yy47;
3724
0
    }
3725
0
    if (yych == '\\') goto yy164;
3726
0
yy173:
3727
0
    YYDEBUG(173, *YYCURSOR);
3728
0
    yyleng = YYCURSOR - SCNG(yy_text);
3729
0
#line 1477 "Zend/zend_language_scanner.l"
3730
0
    {
3731
0
  RETURN_TOKEN_WITH_IDENT(T_DO);
3732
0
}
3733
0
#line 3734 "Zend/zend_language_scanner.c"
3734
0
yy174:
3735
0
    YYDEBUG(174, *YYCURSOR);
3736
0
    yyaccept = 4;
3737
0
    yych = *(YYMARKER = ++YYCURSOR);
3738
0
    if (yych == 'H') goto yy296;
3739
0
    if (yych == 'h') goto yy296;
3740
0
    goto yy48;
3741
0
yy175:
3742
0
    YYDEBUG(175, *YYCURSOR);
3743
0
    yyaccept = 4;
3744
0
    yych = *(YYMARKER = ++YYCURSOR);
3745
0
    if (yych == 'S') goto yy297;
3746
0
    if (yych == 's') goto yy297;
3747
0
    goto yy48;
3748
0
yy176:
3749
0
    YYDEBUG(176, *YYCURSOR);
3750
0
    yyaccept = 4;
3751
0
    yych = *(YYMARKER = ++YYCURSOR);
3752
0
    if (yych == 'P') goto yy298;
3753
0
    if (yych == 'p') goto yy298;
3754
0
    goto yy48;
3755
0
yy177:
3756
0
    YYDEBUG(177, *YYCURSOR);
3757
0
    yyaccept = 4;
3758
0
    yych = *(YYMARKER = ++YYCURSOR);
3759
0
    if (yych <= 'U') {
3760
0
      if (yych == 'D') goto yy299;
3761
0
      if (yych <= 'T') goto yy48;
3762
0
      goto yy300;
3763
0
    } else {
3764
0
      if (yych <= 'd') {
3765
0
        if (yych <= 'c') goto yy48;
3766
0
        goto yy299;
3767
0
      } else {
3768
0
        if (yych == 'u') goto yy300;
3769
0
        goto yy48;
3770
0
      }
3771
0
    }
3772
0
yy178:
3773
0
    YYDEBUG(178, *YYCURSOR);
3774
0
    yyaccept = 4;
3775
0
    yych = *(YYMARKER = ++YYCURSOR);
3776
0
    if (yych == 'A') goto yy301;
3777
0
    if (yych == 'a') goto yy301;
3778
0
    goto yy48;
3779
0
yy179:
3780
0
    YYDEBUG(179, *YYCURSOR);
3781
0
    yyaccept = 4;
3782
0
    yych = *(YYMARKER = ++YYCURSOR);
3783
0
    if (yych <= 'T') {
3784
0
      if (yych == 'I') goto yy302;
3785
0
      if (yych <= 'S') goto yy48;
3786
0
      goto yy303;
3787
0
    } else {
3788
0
      if (yych <= 'i') {
3789
0
        if (yych <= 'h') goto yy48;
3790
0
        goto yy302;
3791
0
      } else {
3792
0
        if (yych == 't') goto yy303;
3793
0
        goto yy48;
3794
0
      }
3795
0
    }
3796
0
yy180:
3797
0
    YYDEBUG(180, *YYCURSOR);
3798
0
    yyaccept = 4;
3799
0
    yych = *(YYMARKER = ++YYCURSOR);
3800
0
    if (yych == 'N') goto yy304;
3801
0
    if (yych == 'n') goto yy304;
3802
0
    goto yy48;
3803
0
yy181:
3804
0
    YYDEBUG(181, *YYCURSOR);
3805
0
    yyaccept = 10;
3806
0
    yych = *(YYMARKER = ++YYCURSOR);
3807
0
    if (yybm[256+yych] & 128) {
3808
0
      goto yy47;
3809
0
    }
3810
0
    if (yych == '\\') goto yy164;
3811
0
yy182:
3812
0
    YYDEBUG(182, *YYCURSOR);
3813
0
    yyleng = YYCURSOR - SCNG(yy_text);
3814
0
#line 1406 "Zend/zend_language_scanner.l"
3815
0
    {
3816
0
  RETURN_TOKEN_WITH_IDENT(T_FN);
3817
0
}
3818
0
#line 3819 "Zend/zend_language_scanner.c"
3819
0
yy183:
3820
0
    YYDEBUG(183, *YYCURSOR);
3821
0
    yyaccept = 4;
3822
0
    yych = *(YYMARKER = ++YYCURSOR);
3823
0
    if (yych == 'R') goto yy305;
3824
0
    if (yych == 'r') goto yy305;
3825
0
    goto yy48;
3826
0
yy184:
3827
0
    YYDEBUG(184, *YYCURSOR);
3828
0
    yyaccept = 4;
3829
0
    yych = *(YYMARKER = ++YYCURSOR);
3830
0
    if (yych == 'N') goto yy307;
3831
0
    if (yych == 'n') goto yy307;
3832
0
    goto yy48;
3833
0
yy185:
3834
0
    YYDEBUG(185, *YYCURSOR);
3835
0
    yyaccept = 4;
3836
0
    yych = *(YYMARKER = ++YYCURSOR);
3837
0
    if (yych == 'O') goto yy308;
3838
0
    if (yych == 'o') goto yy308;
3839
0
    goto yy48;
3840
0
yy186:
3841
0
    YYDEBUG(186, *YYCURSOR);
3842
0
    yyaccept = 4;
3843
0
    yych = *(YYMARKER = ++YYCURSOR);
3844
0
    if (yych == 'T') goto yy309;
3845
0
    if (yych == 't') goto yy309;
3846
0
    goto yy48;
3847
0
yy187:
3848
0
    YYDEBUG(187, *YYCURSOR);
3849
0
    yyaccept = 11;
3850
0
    yych = *(YYMARKER = ++YYCURSOR);
3851
0
    if (yybm[256+yych] & 128) {
3852
0
      goto yy47;
3853
0
    }
3854
0
    if (yych == '\\') goto yy164;
3855
0
yy188:
3856
0
    YYDEBUG(188, *YYCURSOR);
3857
0
    yyleng = YYCURSOR - SCNG(yy_text);
3858
0
#line 1453 "Zend/zend_language_scanner.l"
3859
0
    {
3860
0
  RETURN_TOKEN_WITH_IDENT(T_IF);
3861
0
}
3862
0
#line 3863 "Zend/zend_language_scanner.c"
3863
0
yy189:
3864
0
    YYDEBUG(189, *YYCURSOR);
3865
0
    yyaccept = 4;
3866
0
    yych = *(YYMARKER = ++YYCURSOR);
3867
0
    if (yych == 'P') goto yy310;
3868
0
    if (yych == 'p') goto yy310;
3869
0
    goto yy48;
3870
0
yy190:
3871
0
    YYDEBUG(190, *YYCURSOR);
3872
0
    yyaccept = 4;
3873
0
    yych = *(YYMARKER = ++YYCURSOR);
3874
0
    if (yych <= 'T') {
3875
0
      if (yych <= 'C') {
3876
0
        if (yych <= 'B') goto yy48;
3877
0
        goto yy311;
3878
0
      } else {
3879
0
        if (yych <= 'R') goto yy48;
3880
0
        if (yych <= 'S') goto yy312;
3881
0
        goto yy313;
3882
0
      }
3883
0
    } else {
3884
0
      if (yych <= 'r') {
3885
0
        if (yych == 'c') goto yy311;
3886
0
        goto yy48;
3887
0
      } else {
3888
0
        if (yych <= 's') goto yy312;
3889
0
        if (yych <= 't') goto yy313;
3890
0
        goto yy48;
3891
0
      }
3892
0
    }
3893
0
yy191:
3894
0
    YYDEBUG(191, *YYCURSOR);
3895
0
    yyaccept = 4;
3896
0
    yych = *(YYMARKER = ++YYCURSOR);
3897
0
    if (yych == 'S') goto yy314;
3898
0
    if (yych == 's') goto yy314;
3899
0
    goto yy48;
3900
0
yy192:
3901
0
    YYDEBUG(192, *YYCURSOR);
3902
0
    yyaccept = 4;
3903
0
    yych = *(YYMARKER = ++YYCURSOR);
3904
0
    if (yych == 'S') goto yy315;
3905
0
    if (yych == 's') goto yy315;
3906
0
    goto yy48;
3907
0
yy193:
3908
0
    YYDEBUG(193, *YYCURSOR);
3909
0
    yyaccept = 4;
3910
0
    yych = *(YYMARKER = ++YYCURSOR);
3911
0
    if (yych == 'T') goto yy316;
3912
0
    if (yych == 't') goto yy316;
3913
0
    goto yy48;
3914
0
yy194:
3915
0
    YYDEBUG(194, *YYCURSOR);
3916
0
    yyaccept = 4;
3917
0
    yych = *(YYMARKER = ++YYCURSOR);
3918
0
    if (yych == 'M') goto yy317;
3919
0
    if (yych == 'm') goto yy317;
3920
0
    goto yy48;
3921
0
yy195:
3922
0
    YYDEBUG(195, *YYCURSOR);
3923
0
    yyaccept = 4;
3924
0
    yych = *(YYMARKER = ++YYCURSOR);
3925
0
    if (yych == 'W') goto yy318;
3926
0
    if (yych == 'w') goto yy318;
3927
0
    goto yy48;
3928
0
yy196:
3929
0
    YYDEBUG(196, *YYCURSOR);
3930
0
    yyaccept = 12;
3931
0
    yych = *(YYMARKER = ++YYCURSOR);
3932
0
    if (yybm[256+yych] & 128) {
3933
0
      goto yy47;
3934
0
    }
3935
0
    if (yych == '\\') goto yy164;
3936
0
yy197:
3937
0
    YYDEBUG(197, *YYCURSOR);
3938
0
    yyleng = YYCURSOR - SCNG(yy_text);
3939
0
#line 1929 "Zend/zend_language_scanner.l"
3940
0
    {
3941
0
  RETURN_TOKEN_WITH_IDENT(T_LOGICAL_OR);
3942
0
}
3943
0
#line 3944 "Zend/zend_language_scanner.c"
3944
0
yy198:
3945
0
    YYDEBUG(198, *YYCURSOR);
3946
0
    yyaccept = 4;
3947
0
    yych = *(YYMARKER = ++YYCURSOR);
3948
0
    if (yych <= 'O') {
3949
0
      if (yych == 'I') goto yy320;
3950
0
      if (yych <= 'N') goto yy48;
3951
0
      goto yy321;
3952
0
    } else {
3953
0
      if (yych <= 'i') {
3954
0
        if (yych <= 'h') goto yy48;
3955
0
        goto yy320;
3956
0
      } else {
3957
0
        if (yych == 'o') goto yy321;
3958
0
        goto yy48;
3959
0
      }
3960
0
    }
3961
0
yy199:
3962
0
    YYDEBUG(199, *YYCURSOR);
3963
0
    yyaccept = 4;
3964
0
    yych = *(YYMARKER = ++YYCURSOR);
3965
0
    if (yych == 'B') goto yy322;
3966
0
    if (yych == 'b') goto yy322;
3967
0
    goto yy48;
3968
0
yy200:
3969
0
    YYDEBUG(200, *YYCURSOR);
3970
0
    yyaccept = 4;
3971
0
    yych = *(YYMARKER = ++YYCURSOR);
3972
0
    if (yych <= 'T') {
3973
0
      if (yych <= 'P') {
3974
0
        if (yych == 'A') goto yy323;
3975
0
        goto yy48;
3976
0
      } else {
3977
0
        if (yych <= 'Q') goto yy324;
3978
0
        if (yych <= 'S') goto yy48;
3979
0
        goto yy325;
3980
0
      }
3981
0
    } else {
3982
0
      if (yych <= 'p') {
3983
0
        if (yych == 'a') goto yy323;
3984
0
        goto yy48;
3985
0
      } else {
3986
0
        if (yych <= 'q') goto yy324;
3987
0
        if (yych == 't') goto yy325;
3988
0
        goto yy48;
3989
0
      }
3990
0
    }
3991
0
yy201:
3992
0
    YYDEBUG(201, *YYCURSOR);
3993
0
    yyaccept = 4;
3994
0
    yych = *(YYMARKER = ++YYCURSOR);
3995
0
    if (yych == 'A') goto yy326;
3996
0
    if (yych == 'a') goto yy326;
3997
0
    goto yy48;
3998
0
yy202:
3999
0
    YYDEBUG(202, *YYCURSOR);
4000
0
    yyaccept = 4;
4001
0
    yych = *(YYMARKER = ++YYCURSOR);
4002
0
    if (yych == 'I') goto yy327;
4003
0
    if (yych == 'i') goto yy327;
4004
0
    goto yy48;
4005
0
yy203:
4006
0
    YYDEBUG(203, *YYCURSOR);
4007
0
    yyaccept = 4;
4008
0
    yych = *(YYMARKER = ++YYCURSOR);
4009
0
    if (yych == 'R') goto yy328;
4010
0
    if (yych == 'r') goto yy328;
4011
0
    goto yy48;
4012
0
yy204:
4013
0
    YYDEBUG(204, *YYCURSOR);
4014
0
    yyaccept = 4;
4015
0
    yych = *(YYMARKER = ++YYCURSOR);
4016
0
    if (yych <= 'Y') {
4017
0
      if (yych == 'A') goto yy329;
4018
0
      if (yych <= 'X') goto yy48;
4019
0
      goto yy330;
4020
0
    } else {
4021
0
      if (yych <= 'a') {
4022
0
        if (yych <= '`') goto yy48;
4023
0
        goto yy329;
4024
0
      } else {
4025
0
        if (yych == 'y') goto yy330;
4026
0
        goto yy48;
4027
0
      }
4028
0
    }
4029
0
yy205:
4030
0
    YYDEBUG(205, *YYCURSOR);
4031
0
    yyaccept = 4;
4032
0
    yych = *(YYMARKER = ++YYCURSOR);
4033
0
    if (yych == 'S') goto yy332;
4034
0
    if (yych == 's') goto yy332;
4035
0
    goto yy48;
4036
0
yy206:
4037
0
    YYDEBUG(206, *YYCURSOR);
4038
0
    yyaccept = 4;
4039
0
    yych = *(YYMARKER = ++YYCURSOR);
4040
0
    if (yych == 'E') goto yy333;
4041
0
    if (yych == 'e') goto yy333;
4042
0
    goto yy48;
4043
0
yy207:
4044
0
    YYDEBUG(207, *YYCURSOR);
4045
0
    yyaccept = 4;
4046
0
    yych = *(YYMARKER = ++YYCURSOR);
4047
0
    if (yych == 'R') goto yy335;
4048
0
    if (yych == 'r') goto yy335;
4049
0
    goto yy48;
4050
0
yy208:
4051
0
    YYDEBUG(208, *YYCURSOR);
4052
0
    yyaccept = 4;
4053
0
    yych = *(YYMARKER = ++YYCURSOR);
4054
0
    if (yych == 'I') goto yy337;
4055
0
    if (yych == 'i') goto yy337;
4056
0
    goto yy48;
4057
0
yy209:
4058
0
    YYDEBUG(209, *YYCURSOR);
4059
0
    yyaccept = 4;
4060
0
    yych = *(YYMARKER = ++YYCURSOR);
4061
0
    if (yych == 'R') goto yy338;
4062
0
    if (yych == 'r') goto yy338;
4063
0
    goto yy48;
4064
0
yy210:
4065
0
    YYDEBUG(210, *YYCURSOR);
4066
0
    yyaccept = 4;
4067
0
    yych = *(YYMARKER = ++YYCURSOR);
4068
0
    if (yych == 'E') goto yy340;
4069
0
    if (yych == 'e') goto yy340;
4070
0
    goto yy48;
4071
0
yy211:
4072
0
    YYDEBUG(211, *YYCURSOR);
4073
0
    yyaccept = 13;
4074
0
    YYMARKER = ++YYCURSOR;
4075
0
    YYFILL(1);
4076
0
    yych = *YYCURSOR;
4077
0
    YYDEBUG(212, *YYCURSOR);
4078
0
    if (yych <= '\\') {
4079
0
      if (yych <= '@') {
4080
0
        if (yych <= '/') goto yy213;
4081
0
        if (yych <= '9') goto yy211;
4082
0
      } else {
4083
0
        if (yych <= 'Z') goto yy211;
4084
0
        if (yych >= '\\') goto yy341;
4085
0
      }
4086
0
    } else {
4087
0
      if (yych <= '`') {
4088
0
        if (yych == '_') goto yy211;
4089
0
      } else {
4090
0
        if (yych <= 'z') goto yy211;
4091
0
        if (yych >= 0x80) goto yy211;
4092
0
      }
4093
0
    }
4094
0
yy213:
4095
0
    YYDEBUG(213, *YYCURSOR);
4096
0
    yyleng = YYCURSOR - SCNG(yy_text);
4097
0
#line 2446 "Zend/zend_language_scanner.l"
4098
0
    {
4099
0
  RETURN_TOKEN_WITH_STR(T_NAME_FULLY_QUALIFIED, 1);
4100
0
}
4101
0
#line 4102 "Zend/zend_language_scanner.c"
4102
0
yy214:
4103
0
    YYDEBUG(214, *YYCURSOR);
4104
0
    ++YYCURSOR;
4105
0
    YYDEBUG(215, *YYCURSOR);
4106
0
    yyleng = YYCURSOR - SCNG(yy_text);
4107
0
#line 1909 "Zend/zend_language_scanner.l"
4108
0
    {
4109
0
  RETURN_TOKEN(T_XOR_EQUAL);
4110
0
}
4111
0
#line 4112 "Zend/zend_language_scanner.c"
4112
0
yy216:
4113
0
    YYDEBUG(216, *YYCURSOR);
4114
0
    yyaccept = 4;
4115
0
    yych = *(YYMARKER = ++YYCURSOR);
4116
0
    switch (yych) {
4117
0
    case 'C':
4118
0
    case 'c': goto yy342;
4119
0
    case 'D':
4120
0
    case 'd': goto yy343;
4121
0
    case 'F':
4122
0
    case 'f': goto yy344;
4123
0
    case 'H':
4124
0
    case 'h': goto yy345;
4125
0
    case 'L':
4126
0
    case 'l': goto yy346;
4127
0
    case 'M':
4128
0
    case 'm': goto yy347;
4129
0
    case 'N':
4130
0
    case 'n': goto yy348;
4131
0
    case 'P':
4132
0
    case 'p': goto yy349;
4133
0
    case 'T':
4134
0
    case 't': goto yy350;
4135
0
    default:  goto yy48;
4136
0
    }
4137
0
yy217:
4138
0
    YYDEBUG(217, *YYCURSOR);
4139
0
    ++YYCURSOR;
4140
0
    YYDEBUG(218, *YYCURSOR);
4141
0
    yyleng = YYCURSOR - SCNG(yy_text);
4142
0
#line 1905 "Zend/zend_language_scanner.l"
4143
0
    {
4144
0
  RETURN_TOKEN(T_OR_EQUAL);
4145
0
}
4146
0
#line 4147 "Zend/zend_language_scanner.c"
4147
0
yy219:
4148
0
    YYDEBUG(219, *YYCURSOR);
4149
0
    ++YYCURSOR;
4150
0
    YYDEBUG(220, *YYCURSOR);
4151
0
    yyleng = YYCURSOR - SCNG(yy_text);
4152
0
#line 1917 "Zend/zend_language_scanner.l"
4153
0
    {
4154
0
  RETURN_TOKEN(T_PIPE);
4155
0
}
4156
0
#line 4157 "Zend/zend_language_scanner.c"
4157
0
yy221:
4158
0
    YYDEBUG(221, *YYCURSOR);
4159
0
    ++YYCURSOR;
4160
0
    YYDEBUG(222, *YYCURSOR);
4161
0
    yyleng = YYCURSOR - SCNG(yy_text);
4162
0
#line 1921 "Zend/zend_language_scanner.l"
4163
0
    {
4164
0
  RETURN_TOKEN(T_BOOLEAN_OR);
4165
0
}
4166
0
#line 4167 "Zend/zend_language_scanner.c"
4167
0
yy223:
4168
0
    YYDEBUG(223, *YYCURSOR);
4169
0
    ++YYCURSOR;
4170
0
    YYDEBUG(224, *YYCURSOR);
4171
0
    yyleng = YYCURSOR - SCNG(yy_text);
4172
0
#line 1837 "Zend/zend_language_scanner.l"
4173
0
    {
4174
0
  RETURN_TOKEN(T_IS_NOT_IDENTICAL);
4175
0
}
4176
0
#line 4177 "Zend/zend_language_scanner.c"
4177
0
yy225:
4178
0
    YYDEBUG(225, *YYCURSOR);
4179
0
    ++YYCURSOR;
4180
0
    YYFILL(1);
4181
0
    yych = *YYCURSOR;
4182
0
    YYDEBUG(226, *YYCURSOR);
4183
0
    if (yybm[0+yych] & 2) {
4184
0
      goto yy225;
4185
0
    }
4186
0
    if (yych <= 0x00) goto yy86;
4187
0
    goto yy84;
4188
0
yy227:
4189
0
    YYDEBUG(227, *YYCURSOR);
4190
0
    ++YYCURSOR;
4191
0
    YYFILL(1);
4192
0
    yych = *YYCURSOR;
4193
0
    YYDEBUG(228, *YYCURSOR);
4194
0
    if (yych <= 0x1F) {
4195
0
      if (yych <= '\t') {
4196
0
        if (yych <= 0x00) goto yy86;
4197
0
        if (yych <= 0x08) goto yy225;
4198
0
        goto yy227;
4199
0
      } else {
4200
0
        if (yych <= '\n') goto yy84;
4201
0
        if (yych == '\r') goto yy84;
4202
0
        goto yy225;
4203
0
      }
4204
0
    } else {
4205
0
      if (yych <= '$') {
4206
0
        if (yych <= ' ') goto yy227;
4207
0
        if (yych <= '"') goto yy225;
4208
0
        if (yych <= '#') goto yy351;
4209
0
        goto yy352;
4210
0
      } else {
4211
0
        if (yych <= '-') goto yy225;
4212
0
        if (yych <= '.') goto yy353;
4213
0
        if (yych <= '/') goto yy354;
4214
0
        goto yy225;
4215
0
      }
4216
0
    }
4217
0
yy229:
4218
0
    YYDEBUG(229, *YYCURSOR);
4219
0
    yych = *++YYCURSOR;
4220
0
    if (yych == '.') goto yy88;
4221
0
    goto yy86;
4222
0
yy230:
4223
0
    YYDEBUG(230, *YYCURSOR);
4224
0
    ++YYCURSOR;
4225
0
    YYFILL(1);
4226
0
    yych = *YYCURSOR;
4227
0
    YYDEBUG(231, *YYCURSOR);
4228
0
    if (yybm[0+yych] & 4) {
4229
0
      goto yy230;
4230
0
    }
4231
0
    if (yych <= 0x00) goto yy86;
4232
0
    goto yy355;
4233
0
yy232:
4234
0
    YYDEBUG(232, *YYCURSOR);
4235
0
    yych = *++YYCURSOR;
4236
0
    if (yych == 'R') goto yy357;
4237
0
    if (yych == 'r') goto yy357;
4238
0
    goto yy86;
4239
0
yy233:
4240
0
    YYDEBUG(233, *YYCURSOR);
4241
0
    yych = *++YYCURSOR;
4242
0
    if (yych == 'N') goto yy358;
4243
0
    if (yych == 'n') goto yy358;
4244
0
    goto yy86;
4245
0
yy234:
4246
0
    YYDEBUG(234, *YYCURSOR);
4247
0
    yych = *++YYCURSOR;
4248
0
    if (yych == 'O') goto yy359;
4249
0
    if (yych == 'o') goto yy359;
4250
0
    goto yy86;
4251
0
yy235:
4252
0
    YYDEBUG(235, *YYCURSOR);
4253
0
    yych = *++YYCURSOR;
4254
0
    if (yych == 'U') goto yy360;
4255
0
    if (yych == 'u') goto yy360;
4256
0
    goto yy86;
4257
0
yy236:
4258
0
    YYDEBUG(236, *YYCURSOR);
4259
0
    yych = *++YYCURSOR;
4260
0
    if (yych == 'O') goto yy361;
4261
0
    if (yych == 'o') goto yy361;
4262
0
    goto yy86;
4263
0
yy237:
4264
0
    YYDEBUG(237, *YYCURSOR);
4265
0
    yych = *++YYCURSOR;
4266
0
    if (yych == 'T') goto yy362;
4267
0
    if (yych == 't') goto yy362;
4268
0
    goto yy86;
4269
0
yy238:
4270
0
    YYDEBUG(238, *YYCURSOR);
4271
0
    yych = *++YYCURSOR;
4272
0
    if (yych == 'J') goto yy363;
4273
0
    if (yych == 'j') goto yy363;
4274
0
    goto yy86;
4275
0
yy239:
4276
0
    YYDEBUG(239, *YYCURSOR);
4277
0
    yych = *++YYCURSOR;
4278
0
    if (yych == 'A') goto yy364;
4279
0
    if (yych == 'a') goto yy364;
4280
0
    goto yy86;
4281
0
yy240:
4282
0
    YYDEBUG(240, *YYCURSOR);
4283
0
    yych = *++YYCURSOR;
4284
0
    if (yych == 'R') goto yy365;
4285
0
    if (yych == 'r') goto yy365;
4286
0
    goto yy86;
4287
0
yy241:
4288
0
    YYDEBUG(241, *YYCURSOR);
4289
0
    yych = *++YYCURSOR;
4290
0
    if (yych == 'S') goto yy366;
4291
0
    if (yych == 's') goto yy366;
4292
0
    goto yy86;
4293
0
yy242:
4294
0
    YYDEBUG(242, *YYCURSOR);
4295
0
    yych = *++YYCURSOR;
4296
0
    if (yych == 'I') goto yy367;
4297
0
    if (yych == 'i') goto yy367;
4298
0
    goto yy86;
4299
0
yy243:
4300
0
    YYDEBUG(243, *YYCURSOR);
4301
0
    ++YYCURSOR;
4302
0
    YYDEBUG(244, *YYCURSOR);
4303
0
    yyleng = YYCURSOR - SCNG(yy_text);
4304
0
#line 1877 "Zend/zend_language_scanner.l"
4305
0
    {
4306
0
  RETURN_TOKEN(T_POW_EQUAL);
4307
0
}
4308
0
#line 4309 "Zend/zend_language_scanner.c"
4309
0
yy245:
4310
0
    YYDEBUG(245, *YYCURSOR);
4311
0
    ++YYCURSOR;
4312
0
    YYDEBUG(246, *YYCURSOR);
4313
0
    yyleng = YYCURSOR - SCNG(yy_text);
4314
0
#line 1617 "Zend/zend_language_scanner.l"
4315
0
    {
4316
0
  RETURN_TOKEN(T_ELLIPSIS);
4317
0
}
4318
0
#line 4319 "Zend/zend_language_scanner.c"
4319
0
yy247:
4320
0
    YYDEBUG(247, *YYCURSOR);
4321
0
    ++YYCURSOR;
4322
0
    YYFILL(1);
4323
0
    yych = *YYCURSOR;
4324
0
    if (yych <= '/') goto yy86;
4325
0
    if (yych <= '9') goto yy123;
4326
0
    goto yy86;
4327
0
yy248:
4328
0
    YYDEBUG(248, *YYCURSOR);
4329
0
    yych = *++YYCURSOR;
4330
0
    if (yych <= '\f') {
4331
0
      if (yych <= 0x08) goto yy86;
4332
0
      if (yych <= '\n') goto yy368;
4333
0
      goto yy86;
4334
0
    } else {
4335
0
      if (yych <= '\r') goto yy368;
4336
0
      if (yych == ' ') goto yy368;
4337
0
      goto yy86;
4338
0
    }
4339
0
yy249:
4340
0
    YYDEBUG(249, *YYCURSOR);
4341
0
    yyaccept = 14;
4342
0
    YYMARKER = ++YYCURSOR;
4343
0
    YYFILL(1);
4344
0
    yych = *YYCURSOR;
4345
0
    YYDEBUG(250, *YYCURSOR);
4346
0
    if (yybm[0+yych] & 8) {
4347
0
      goto yy249;
4348
0
    }
4349
0
    if (yych == '_') goto yy134;
4350
0
yy251:
4351
0
    YYDEBUG(251, *YYCURSOR);
4352
0
    yyleng = YYCURSOR - SCNG(yy_text);
4353
0
#line 2010 "Zend/zend_language_scanner.l"
4354
0
    {
4355
  /* The +/- 2 skips "0b" */
4356
0
  size_t len = yyleng - 2;
4357
0
  char *end, *bin = yytext + 2;
4358
0
  bool contains_underscores;
4359
4360
  /* Skip any leading 0s */
4361
0
  while (len > 0 && (*bin == '0' || *bin == '_')) {
4362
0
    ++bin;
4363
0
    --len;
4364
0
  }
4365
4366
0
  contains_underscores = (memchr(bin, '_', len) != NULL);
4367
4368
0
  if (contains_underscores) {
4369
0
    bin = estrndup(bin, len);
4370
0
    strip_underscores(bin, &len);
4371
0
  }
4372
4373
0
  if (len < SIZEOF_ZEND_LONG * 8) {
4374
0
    if (len == 0) {
4375
0
      ZVAL_LONG(zendlval, 0);
4376
0
    } else {
4377
0
      errno = 0;
4378
0
      ZVAL_LONG(zendlval, ZEND_STRTOL(bin, &end, 2));
4379
0
      ZEND_ASSERT(!errno && end == bin + len);
4380
0
    }
4381
0
    if (contains_underscores) {
4382
0
      efree(bin);
4383
0
    }
4384
0
    RETURN_TOKEN_WITH_VAL(T_LNUMBER);
4385
0
  } else {
4386
0
    ZVAL_DOUBLE(zendlval, zend_bin_strtod(bin, (const char **)&end));
4387
    /* errno isn't checked since we allow HUGE_VAL/INF overflow */
4388
0
    ZEND_ASSERT(end == bin + len);
4389
0
    if (contains_underscores) {
4390
0
      efree(bin);
4391
0
    }
4392
0
    RETURN_TOKEN_WITH_VAL(T_DNUMBER);
4393
0
  }
4394
0
}
4395
0
#line 4396 "Zend/zend_language_scanner.c"
4396
0
yy252:
4397
0
    YYDEBUG(252, *YYCURSOR);
4398
0
    ++YYCURSOR;
4399
0
    YYFILL(1);
4400
0
    yych = *YYCURSOR;
4401
0
    if (yych <= '/') goto yy86;
4402
0
    if (yych >= ':') goto yy86;
4403
0
yy253:
4404
0
    YYDEBUG(253, *YYCURSOR);
4405
0
    yyaccept = 5;
4406
0
    YYMARKER = ++YYCURSOR;
4407
0
    YYFILL(1);
4408
0
    yych = *YYCURSOR;
4409
0
    YYDEBUG(254, *YYCURSOR);
4410
0
    if (yych <= '/') goto yy125;
4411
0
    if (yych <= '9') goto yy253;
4412
0
    if (yych == '_') goto yy252;
4413
0
    goto yy125;
4414
0
yy255:
4415
0
    YYDEBUG(255, *YYCURSOR);
4416
0
    yyaccept = 15;
4417
0
    YYMARKER = ++YYCURSOR;
4418
0
    YYFILL(1);
4419
0
    yych = *YYCURSOR;
4420
0
    YYDEBUG(256, *YYCURSOR);
4421
0
    if (yybm[0+yych] & 16) {
4422
0
      goto yy255;
4423
0
    }
4424
0
    if (yych == '_') goto yy136;
4425
0
yy257:
4426
0
    YYDEBUG(257, *YYCURSOR);
4427
0
    yyleng = YYCURSOR - SCNG(yy_text);
4428
0
#line 2052 "Zend/zend_language_scanner.l"
4429
0
    {
4430
  /* The +/- 2 skips "0o" */
4431
0
  size_t len = yyleng - 2;
4432
0
  char *end, *octal = yytext + 2;
4433
0
  bool contains_underscores = (memchr(octal, '_', len) != NULL);
4434
4435
  /* Skip any leading 0s */
4436
0
  while (len > 0 && (*octal == '0' || *octal == '_')) {
4437
0
    ++octal;
4438
0
    --len;
4439
0
  }
4440
4441
0
  if (len == 0) {
4442
0
    ZVAL_LONG(zendlval, 0);
4443
0
    RETURN_TOKEN_WITH_VAL(T_LNUMBER);
4444
0
  }
4445
4446
0
  if (contains_underscores) {
4447
0
    octal = estrndup(octal, len);
4448
0
    strip_underscores(octal, &len);
4449
0
  }
4450
4451
0
  errno = 0;
4452
4453
0
  ZVAL_LONG(zendlval, ZEND_STRTOL(octal, &end, 8));
4454
4455
0
  ZEND_ASSERT(end == octal + len);
4456
4457
0
  if (!errno) {
4458
0
    if (contains_underscores) {
4459
0
      efree(octal);
4460
0
    }
4461
0
    RETURN_TOKEN_WITH_VAL(T_LNUMBER);
4462
0
  }
4463
4464
  /* Overflow */
4465
0
  ZEND_ASSERT(errno == ERANGE);
4466
  /* Reset errno */
4467
0
  errno = 0;
4468
4469
  /* zend_oct_strtod skips leading '0' */
4470
0
  ZVAL_DOUBLE(zendlval, zend_oct_strtod(octal, (const char **)&end));
4471
0
  ZEND_ASSERT(!errno);
4472
0
  ZEND_ASSERT(end == octal + len);
4473
0
  if (contains_underscores) {
4474
0
    efree(octal);
4475
0
  }
4476
0
  RETURN_TOKEN_WITH_VAL(T_DNUMBER);
4477
0
}
4478
0
#line 4479 "Zend/zend_language_scanner.c"
4479
0
yy258:
4480
0
    YYDEBUG(258, *YYCURSOR);
4481
0
    yyaccept = 16;
4482
0
    YYMARKER = ++YYCURSOR;
4483
0
    YYFILL(1);
4484
0
    yych = *YYCURSOR;
4485
0
    YYDEBUG(259, *YYCURSOR);
4486
0
    if (yybm[0+yych] & 32) {
4487
0
      goto yy258;
4488
0
    }
4489
0
    if (yych == '_') goto yy137;
4490
0
yy260:
4491
0
    YYDEBUG(260, *YYCURSOR);
4492
0
    yyleng = YYCURSOR - SCNG(yy_text);
4493
0
#line 2165 "Zend/zend_language_scanner.l"
4494
0
    {
4495
  /* The +/- 2 skips "0x" */
4496
0
  size_t len = yyleng - 2;
4497
0
  char *end, *hex = yytext + 2;
4498
0
  bool contains_underscores;
4499
4500
  /* Skip any leading 0s */
4501
0
  while (len > 0 && (*hex == '0' || *hex == '_')) {
4502
0
    ++hex;
4503
0
    --len;
4504
0
  }
4505
4506
0
  contains_underscores = (memchr(hex, '_', len) != NULL);
4507
4508
0
  if (contains_underscores) {
4509
0
    hex = estrndup(hex, len);
4510
0
    strip_underscores(hex, &len);
4511
0
  }
4512
4513
0
  if (len < SIZEOF_ZEND_LONG * 2 || (len == SIZEOF_ZEND_LONG * 2 && *hex <= '7')) {
4514
0
    if (len == 0) {
4515
0
      ZVAL_LONG(zendlval, 0);
4516
0
    } else {
4517
0
      errno = 0;
4518
0
      ZVAL_LONG(zendlval, ZEND_STRTOL(hex, &end, 16));
4519
0
      ZEND_ASSERT(!errno && end == hex + len);
4520
0
    }
4521
0
    if (contains_underscores) {
4522
0
      efree(hex);
4523
0
    }
4524
0
    RETURN_TOKEN_WITH_VAL(T_LNUMBER);
4525
0
  } else {
4526
0
    ZVAL_DOUBLE(zendlval, zend_hex_strtod(hex, (const char **)&end));
4527
    /* errno isn't checked since we allow HUGE_VAL/INF overflow */
4528
0
    ZEND_ASSERT(end == hex + len);
4529
0
    if (contains_underscores) {
4530
0
      efree(hex);
4531
0
    }
4532
0
    RETURN_TOKEN_WITH_VAL(T_DNUMBER);
4533
0
  }
4534
0
}
4535
0
#line 4536 "Zend/zend_language_scanner.c"
4536
0
yy261:
4537
0
    YYDEBUG(261, *YYCURSOR);
4538
0
    ++YYCURSOR;
4539
0
    YYFILL(2);
4540
0
    yych = *YYCURSOR;
4541
0
    YYDEBUG(262, *YYCURSOR);
4542
0
    if (yych <= '\'') {
4543
0
      if (yych <= ' ') {
4544
0
        if (yych == '\t') goto yy261;
4545
0
        if (yych <= 0x1F) goto yy86;
4546
0
        goto yy261;
4547
0
      } else {
4548
0
        if (yych == '"') goto yy370;
4549
0
        if (yych <= '&') goto yy86;
4550
0
        goto yy371;
4551
0
      }
4552
0
    } else {
4553
0
      if (yych <= '_') {
4554
0
        if (yych <= '@') goto yy86;
4555
0
        if (yych <= 'Z') goto yy372;
4556
0
        if (yych <= '^') goto yy86;
4557
0
        goto yy372;
4558
0
      } else {
4559
0
        if (yych <= '`') goto yy86;
4560
0
        if (yych <= 'z') goto yy372;
4561
0
        if (yych <= 0x7F) goto yy86;
4562
0
        goto yy372;
4563
0
      }
4564
0
    }
4565
0
yy263:
4566
0
    YYDEBUG(263, *YYCURSOR);
4567
0
    ++YYCURSOR;
4568
0
    YYDEBUG(264, *YYCURSOR);
4569
0
    yyleng = YYCURSOR - SCNG(yy_text);
4570
0
#line 1893 "Zend/zend_language_scanner.l"
4571
0
    {
4572
0
  RETURN_TOKEN(T_SL_EQUAL);
4573
0
}
4574
0
#line 4575 "Zend/zend_language_scanner.c"
4575
0
yy265:
4576
0
    YYDEBUG(265, *YYCURSOR);
4577
0
    ++YYCURSOR;
4578
0
    YYDEBUG(266, *YYCURSOR);
4579
0
    yyleng = YYCURSOR - SCNG(yy_text);
4580
0
#line 1849 "Zend/zend_language_scanner.l"
4581
0
    {
4582
0
  RETURN_TOKEN(T_SPACESHIP);
4583
0
}
4584
0
#line 4585 "Zend/zend_language_scanner.c"
4585
0
yy267:
4586
0
    YYDEBUG(267, *YYCURSOR);
4587
0
    ++YYCURSOR;
4588
0
    YYDEBUG(268, *YYCURSOR);
4589
0
    yyleng = YYCURSOR - SCNG(yy_text);
4590
0
#line 1833 "Zend/zend_language_scanner.l"
4591
0
    {
4592
0
  RETURN_TOKEN(T_IS_IDENTICAL);
4593
0
}
4594
0
#line 4595 "Zend/zend_language_scanner.c"
4595
0
yy269:
4596
0
    YYDEBUG(269, *YYCURSOR);
4597
0
    ++YYCURSOR;
4598
0
    YYDEBUG(270, *YYCURSOR);
4599
0
    yyleng = YYCURSOR - SCNG(yy_text);
4600
0
#line 1897 "Zend/zend_language_scanner.l"
4601
0
    {
4602
0
  RETURN_TOKEN(T_SR_EQUAL);
4603
0
}
4604
0
#line 4605 "Zend/zend_language_scanner.c"
4605
0
yy271:
4606
0
    YYDEBUG(271, *YYCURSOR);
4607
0
    ++YYCURSOR;
4608
0
    YYDEBUG(272, *YYCURSOR);
4609
0
    yyleng = YYCURSOR - SCNG(yy_text);
4610
0
#line 1591 "Zend/zend_language_scanner.l"
4611
0
    {
4612
0
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
4613
0
  RETURN_TOKEN(T_NULLSAFE_OBJECT_OPERATOR);
4614
0
}
4615
0
#line 4616 "Zend/zend_language_scanner.c"
4616
0
yy273:
4617
0
    YYDEBUG(273, *YYCURSOR);
4618
0
    ++YYCURSOR;
4619
0
    goto yy156;
4620
0
yy274:
4621
0
    YYDEBUG(274, *YYCURSOR);
4622
0
    yych = *++YYCURSOR;
4623
0
    if (yych == '\n') goto yy273;
4624
0
    goto yy156;
4625
0
yy275:
4626
0
    YYDEBUG(275, *YYCURSOR);
4627
0
    ++YYCURSOR;
4628
0
    YYDEBUG(276, *YYCURSOR);
4629
0
    yyleng = YYCURSOR - SCNG(yy_text);
4630
0
#line 1913 "Zend/zend_language_scanner.l"
4631
0
    {
4632
0
  RETURN_TOKEN(T_COALESCE_EQUAL);
4633
0
}
4634
0
#line 4635 "Zend/zend_language_scanner.c"
4635
0
yy277:
4636
0
    YYDEBUG(277, *YYCURSOR);
4637
0
    yyaccept = 4;
4638
0
    yych = *(YYMARKER = ++YYCURSOR);
4639
0
    if (yych == 'T') goto yy374;
4640
0
    if (yych == 't') goto yy374;
4641
0
    goto yy48;
4642
0
yy278:
4643
0
    YYDEBUG(278, *YYCURSOR);
4644
0
    yyaccept = 17;
4645
0
    yych = *(YYMARKER = ++YYCURSOR);
4646
0
    if (yybm[256+yych] & 128) {
4647
0
      goto yy47;
4648
0
    }
4649
0
    if (yych == '\\') goto yy164;
4650
0
yy279:
4651
0
    YYDEBUG(279, *YYCURSOR);
4652
0
    yyleng = YYCURSOR - SCNG(yy_text);
4653
0
#line 1933 "Zend/zend_language_scanner.l"
4654
0
    {
4655
0
  RETURN_TOKEN_WITH_IDENT(T_LOGICAL_AND);
4656
0
}
4657
0
#line 4658 "Zend/zend_language_scanner.c"
4658
0
yy280:
4659
0
    YYDEBUG(280, *YYCURSOR);
4660
0
    yyaccept = 4;
4661
0
    yych = *(YYMARKER = ++YYCURSOR);
4662
0
    if (yych == 'A') goto yy375;
4663
0
    if (yych == 'a') goto yy375;
4664
0
    goto yy48;
4665
0
yy281:
4666
0
    YYDEBUG(281, *YYCURSOR);
4667
0
    yyaccept = 18;
4668
0
    YYMARKER = ++YYCURSOR;
4669
0
    YYFILL(1);
4670
0
    yych = *YYCURSOR;
4671
0
    YYDEBUG(282, *YYCURSOR);
4672
0
    if (yych <= '\\') {
4673
0
      if (yych <= '@') {
4674
0
        if (yych <= '/') goto yy283;
4675
0
        if (yych <= '9') goto yy281;
4676
0
      } else {
4677
0
        if (yych <= 'Z') goto yy281;
4678
0
        if (yych >= '\\') goto yy164;
4679
0
      }
4680
0
    } else {
4681
0
      if (yych <= '`') {
4682
0
        if (yych == '_') goto yy281;
4683
0
      } else {
4684
0
        if (yych <= 'z') goto yy281;
4685
0
        if (yych >= 0x80) goto yy281;
4686
0
      }
4687
0
    }
4688
0
yy283:
4689
0
    YYDEBUG(283, *YYCURSOR);
4690
0
    yyleng = YYCURSOR - SCNG(yy_text);
4691
0
#line 2442 "Zend/zend_language_scanner.l"
4692
0
    {
4693
0
  RETURN_TOKEN_WITH_STR(T_NAME_QUALIFIED, 0);
4694
0
}
4695
0
#line 4696 "Zend/zend_language_scanner.c"
4696
0
yy284:
4697
0
    YYDEBUG(284, *YYCURSOR);
4698
0
    yych = *++YYCURSOR;
4699
0
    if (yych == '<') goto yy261;
4700
0
    goto yy86;
4701
0
yy285:
4702
0
    YYDEBUG(285, *YYCURSOR);
4703
0
    yyaccept = 4;
4704
0
    yych = *(YYMARKER = ++YYCURSOR);
4705
0
    if (yych == 'A') goto yy376;
4706
0
    if (yych == 'a') goto yy376;
4707
0
    goto yy48;
4708
0
yy286:
4709
0
    YYDEBUG(286, *YYCURSOR);
4710
0
    yyaccept = 4;
4711
0
    yych = *(YYMARKER = ++YYCURSOR);
4712
0
    if (yych == 'L') goto yy377;
4713
0
    if (yych == 'l') goto yy377;
4714
0
    goto yy48;
4715
0
yy287:
4716
0
    YYDEBUG(287, *YYCURSOR);
4717
0
    yyaccept = 4;
4718
0
    yych = *(YYMARKER = ++YYCURSOR);
4719
0
    if (yych == 'E') goto yy378;
4720
0
    if (yych == 'e') goto yy378;
4721
0
    goto yy48;
4722
0
yy288:
4723
0
    YYDEBUG(288, *YYCURSOR);
4724
0
    yyaccept = 4;
4725
0
    yych = *(YYMARKER = ++YYCURSOR);
4726
0
    if (yych == 'C') goto yy380;
4727
0
    if (yych == 'c') goto yy380;
4728
0
    goto yy48;
4729
0
yy289:
4730
0
    YYDEBUG(289, *YYCURSOR);
4731
0
    yyaccept = 4;
4732
0
    yych = *(YYMARKER = ++YYCURSOR);
4733
0
    if (yych == 'S') goto yy381;
4734
0
    if (yych == 's') goto yy381;
4735
0
    goto yy48;
4736
0
yy290:
4737
0
    YYDEBUG(290, *YYCURSOR);
4738
0
    yyaccept = 4;
4739
0
    yych = *(YYMARKER = ++YYCURSOR);
4740
0
    if (yych == 'N') goto yy382;
4741
0
    if (yych == 'n') goto yy382;
4742
0
    goto yy48;
4743
0
yy291:
4744
0
    YYDEBUG(291, *YYCURSOR);
4745
0
    yyaccept = 4;
4746
0
    yych = *(YYMARKER = ++YYCURSOR);
4747
0
    if (yych <= 'T') {
4748
0
      if (yych <= 'R') goto yy48;
4749
0
      if (yych <= 'S') goto yy383;
4750
0
      goto yy384;
4751
0
    } else {
4752
0
      if (yych <= 'r') goto yy48;
4753
0
      if (yych <= 's') goto yy383;
4754
0
      if (yych <= 't') goto yy384;
4755
0
      goto yy48;
4756
0
    }
4757
0
yy292:
4758
0
    YYDEBUG(292, *YYCURSOR);
4759
0
    yyaccept = 4;
4760
0
    yych = *(YYMARKER = ++YYCURSOR);
4761
0
    if (yych == 'L') goto yy385;
4762
0
    if (yych == 'l') goto yy385;
4763
0
    goto yy48;
4764
0
yy293:
4765
0
    YYDEBUG(293, *YYCURSOR);
4766
0
    yyaccept = 4;
4767
0
    yych = *(YYMARKER = ++YYCURSOR);
4768
0
    if (yych == 'A') goto yy386;
4769
0
    if (yych == 'a') goto yy386;
4770
0
    goto yy48;
4771
0
yy294:
4772
0
    YYDEBUG(294, *YYCURSOR);
4773
0
    yyaccept = 19;
4774
0
    yych = *(YYMARKER = ++YYCURSOR);
4775
0
    if (yybm[256+yych] & 128) {
4776
0
      goto yy47;
4777
0
    }
4778
0
    if (yych == '\\') goto yy164;
4779
0
yy295:
4780
0
    YYDEBUG(295, *YYCURSOR);
4781
0
    yyleng = YYCURSOR - SCNG(yy_text);
4782
0
#line 1402 "Zend/zend_language_scanner.l"
4783
0
    {
4784
0
  RETURN_TOKEN_WITH_IDENT(T_EXIT);
4785
0
}
4786
0
#line 4787 "Zend/zend_language_scanner.c"
4787
0
yy296:
4788
0
    YYDEBUG(296, *YYCURSOR);
4789
0
    yyaccept = 4;
4790
0
    yych = *(YYMARKER = ++YYCURSOR);
4791
0
    if (yych == 'O') goto yy387;
4792
0
    if (yych == 'o') goto yy387;
4793
0
    goto yy48;
4794
0
yy297:
4795
0
    YYDEBUG(297, *YYCURSOR);
4796
0
    yyaccept = 4;
4797
0
    yych = *(YYMARKER = ++YYCURSOR);
4798
0
    if (yych == 'E') goto yy389;
4799
0
    if (yych == 'e') goto yy389;
4800
0
    goto yy48;
4801
0
yy298:
4802
0
    YYDEBUG(298, *YYCURSOR);
4803
0
    yyaccept = 4;
4804
0
    yych = *(YYMARKER = ++YYCURSOR);
4805
0
    if (yych == 'T') goto yy391;
4806
0
    if (yych == 't') goto yy391;
4807
0
    goto yy48;
4808
0
yy299:
4809
0
    YYDEBUG(299, *YYCURSOR);
4810
0
    yyaccept = 4;
4811
0
    yych = *(YYMARKER = ++YYCURSOR);
4812
0
    switch (yych) {
4813
0
    case 'D':
4814
0
    case 'd': goto yy392;
4815
0
    case 'F':
4816
0
    case 'f': goto yy393;
4817
0
    case 'I':
4818
0
    case 'i': goto yy394;
4819
0
    case 'S':
4820
0
    case 's': goto yy395;
4821
0
    case 'W':
4822
0
    case 'w': goto yy396;
4823
0
    default:  goto yy48;
4824
0
    }
4825
0
yy300:
4826
0
    YYDEBUG(300, *YYCURSOR);
4827
0
    yyaccept = 4;
4828
0
    yych = *(YYMARKER = ++YYCURSOR);
4829
0
    if (yych == 'M') goto yy397;
4830
0
    if (yych == 'm') goto yy397;
4831
0
    goto yy48;
4832
0
yy301:
4833
0
    YYDEBUG(301, *YYCURSOR);
4834
0
    yyaccept = 4;
4835
0
    yych = *(YYMARKER = ++YYCURSOR);
4836
0
    if (yych == 'L') goto yy398;
4837
0
    if (yych == 'l') goto yy398;
4838
0
    goto yy48;
4839
0
yy302:
4840
0
    YYDEBUG(302, *YYCURSOR);
4841
0
    yyaccept = 4;
4842
0
    yych = *(YYMARKER = ++YYCURSOR);
4843
0
    if (yych == 'T') goto yy400;
4844
0
    if (yych == 't') goto yy400;
4845
0
    goto yy48;
4846
0
yy303:
4847
0
    YYDEBUG(303, *YYCURSOR);
4848
0
    yyaccept = 4;
4849
0
    yych = *(YYMARKER = ++YYCURSOR);
4850
0
    if (yych == 'E') goto yy402;
4851
0
    if (yych == 'e') goto yy402;
4852
0
    goto yy48;
4853
0
yy304:
4854
0
    YYDEBUG(304, *YYCURSOR);
4855
0
    yyaccept = 4;
4856
0
    yych = *(YYMARKER = ++YYCURSOR);
4857
0
    if (yych == 'A') goto yy403;
4858
0
    if (yych == 'a') goto yy403;
4859
0
    goto yy48;
4860
0
yy305:
4861
0
    YYDEBUG(305, *YYCURSOR);
4862
0
    yyaccept = 20;
4863
0
    yych = *(YYMARKER = ++YYCURSOR);
4864
0
    if (yych <= '\\') {
4865
0
      if (yych <= 'D') {
4866
0
        if (yych <= '/') goto yy306;
4867
0
        if (yych <= '9') goto yy47;
4868
0
        if (yych >= 'A') goto yy47;
4869
0
      } else {
4870
0
        if (yych <= 'E') goto yy404;
4871
0
        if (yych <= 'Z') goto yy47;
4872
0
        if (yych >= '\\') goto yy164;
4873
0
      }
4874
0
    } else {
4875
0
      if (yych <= 'd') {
4876
0
        if (yych == '_') goto yy47;
4877
0
        if (yych >= 'a') goto yy47;
4878
0
      } else {
4879
0
        if (yych <= 'e') goto yy404;
4880
0
        if (yych <= 'z') goto yy47;
4881
0
        if (yych >= 0x80) goto yy47;
4882
0
      }
4883
0
    }
4884
0
yy306:
4885
0
    YYDEBUG(306, *YYCURSOR);
4886
0
    yyleng = YYCURSOR - SCNG(yy_text);
4887
0
#line 1481 "Zend/zend_language_scanner.l"
4888
0
    {
4889
0
  RETURN_TOKEN_WITH_IDENT(T_FOR);
4890
0
}
4891
0
#line 4892 "Zend/zend_language_scanner.c"
4892
0
yy307:
4893
0
    YYDEBUG(307, *YYCURSOR);
4894
0
    yyaccept = 4;
4895
0
    yych = *(YYMARKER = ++YYCURSOR);
4896
0
    if (yych == 'C') goto yy405;
4897
0
    if (yych == 'c') goto yy405;
4898
0
    goto yy48;
4899
0
yy308:
4900
0
    YYDEBUG(308, *YYCURSOR);
4901
0
    yyaccept = 4;
4902
0
    yych = *(YYMARKER = ++YYCURSOR);
4903
0
    if (yych == 'B') goto yy406;
4904
0
    if (yych == 'b') goto yy406;
4905
0
    goto yy48;
4906
0
yy309:
4907
0
    YYDEBUG(309, *YYCURSOR);
4908
0
    yyaccept = 4;
4909
0
    yych = *(YYMARKER = ++YYCURSOR);
4910
0
    if (yych == 'O') goto yy407;
4911
0
    if (yych == 'o') goto yy407;
4912
0
    goto yy48;
4913
0
yy310:
4914
0
    YYDEBUG(310, *YYCURSOR);
4915
0
    yyaccept = 4;
4916
0
    yych = *(YYMARKER = ++YYCURSOR);
4917
0
    if (yych == 'L') goto yy409;
4918
0
    if (yych == 'l') goto yy409;
4919
0
    goto yy48;
4920
0
yy311:
4921
0
    YYDEBUG(311, *YYCURSOR);
4922
0
    yyaccept = 4;
4923
0
    yych = *(YYMARKER = ++YYCURSOR);
4924
0
    if (yych == 'L') goto yy410;
4925
0
    if (yych == 'l') goto yy410;
4926
0
    goto yy48;
4927
0
yy312:
4928
0
    YYDEBUG(312, *YYCURSOR);
4929
0
    yyaccept = 4;
4930
0
    yych = *(YYMARKER = ++YYCURSOR);
4931
0
    if (yych == 'T') goto yy411;
4932
0
    if (yych == 't') goto yy411;
4933
0
    goto yy48;
4934
0
yy313:
4935
0
    YYDEBUG(313, *YYCURSOR);
4936
0
    yyaccept = 4;
4937
0
    yych = *(YYMARKER = ++YYCURSOR);
4938
0
    if (yych == 'E') goto yy412;
4939
0
    if (yych == 'e') goto yy412;
4940
0
    goto yy48;
4941
0
yy314:
4942
0
    YYDEBUG(314, *YYCURSOR);
4943
0
    yyaccept = 4;
4944
0
    yych = *(YYMARKER = ++YYCURSOR);
4945
0
    if (yych == 'E') goto yy413;
4946
0
    if (yych == 'e') goto yy413;
4947
0
    goto yy48;
4948
0
yy315:
4949
0
    YYDEBUG(315, *YYCURSOR);
4950
0
    yyaccept = 4;
4951
0
    yych = *(YYMARKER = ++YYCURSOR);
4952
0
    if (yych == 'T') goto yy414;
4953
0
    if (yych == 't') goto yy414;
4954
0
    goto yy48;
4955
0
yy316:
4956
0
    YYDEBUG(316, *YYCURSOR);
4957
0
    yyaccept = 4;
4958
0
    yych = *(YYMARKER = ++YYCURSOR);
4959
0
    if (yych == 'C') goto yy416;
4960
0
    if (yych == 'c') goto yy416;
4961
0
    goto yy48;
4962
0
yy317:
4963
0
    YYDEBUG(317, *YYCURSOR);
4964
0
    yyaccept = 4;
4965
0
    yych = *(YYMARKER = ++YYCURSOR);
4966
0
    if (yych == 'E') goto yy417;
4967
0
    if (yych == 'e') goto yy417;
4968
0
    goto yy48;
4969
0
yy318:
4970
0
    YYDEBUG(318, *YYCURSOR);
4971
0
    yyaccept = 21;
4972
0
    yych = *(YYMARKER = ++YYCURSOR);
4973
0
    if (yybm[256+yych] & 128) {
4974
0
      goto yy47;
4975
0
    }
4976
0
    if (yych == '\\') goto yy164;
4977
0
yy319:
4978
0
    YYDEBUG(319, *YYCURSOR);
4979
0
    yyleng = YYCURSOR - SCNG(yy_text);
4980
0
#line 1625 "Zend/zend_language_scanner.l"
4981
0
    {
4982
0
  RETURN_TOKEN_WITH_IDENT(T_NEW);
4983
0
}
4984
0
#line 4985 "Zend/zend_language_scanner.c"
4985
0
yy320:
4986
0
    YYDEBUG(320, *YYCURSOR);
4987
0
    yyaccept = 4;
4988
0
    yych = *(YYMARKER = ++YYCURSOR);
4989
0
    if (yych <= 'V') {
4990
0
      if (yych == 'N') goto yy418;
4991
0
      if (yych <= 'U') goto yy48;
4992
0
      goto yy419;
4993
0
    } else {
4994
0
      if (yych <= 'n') {
4995
0
        if (yych <= 'm') goto yy48;
4996
0
        goto yy418;
4997
0
      } else {
4998
0
        if (yych == 'v') goto yy419;
4999
0
        goto yy48;
5000
0
      }
5001
0
    }
5002
0
yy321:
5003
0
    YYDEBUG(321, *YYCURSOR);
5004
0
    yyaccept = 4;
5005
0
    yych = *(YYMARKER = ++YYCURSOR);
5006
0
    if (yych == 'T') goto yy420;
5007
0
    if (yych == 't') goto yy420;
5008
0
    goto yy48;
5009
0
yy322:
5010
0
    YYDEBUG(322, *YYCURSOR);
5011
0
    yyaccept = 4;
5012
0
    yych = *(YYMARKER = ++YYCURSOR);
5013
0
    if (yych == 'L') goto yy421;
5014
0
    if (yych == 'l') goto yy421;
5015
0
    goto yy48;
5016
0
yy323:
5017
0
    YYDEBUG(323, *YYCURSOR);
5018
0
    yyaccept = 4;
5019
0
    yych = *(YYMARKER = ++YYCURSOR);
5020
0
    if (yych == 'D') goto yy422;
5021
0
    if (yych == 'd') goto yy422;
5022
0
    goto yy48;
5023
0
yy324:
5024
0
    YYDEBUG(324, *YYCURSOR);
5025
0
    yyaccept = 4;
5026
0
    yych = *(YYMARKER = ++YYCURSOR);
5027
0
    if (yych == 'U') goto yy423;
5028
0
    if (yych == 'u') goto yy423;
5029
0
    goto yy48;
5030
0
yy325:
5031
0
    YYDEBUG(325, *YYCURSOR);
5032
0
    yyaccept = 4;
5033
0
    yych = *(YYMARKER = ++YYCURSOR);
5034
0
    if (yych == 'U') goto yy424;
5035
0
    if (yych == 'u') goto yy424;
5036
0
    goto yy48;
5037
0
yy326:
5038
0
    YYDEBUG(326, *YYCURSOR);
5039
0
    yyaccept = 4;
5040
0
    yych = *(YYMARKER = ++YYCURSOR);
5041
0
    if (yych == 'T') goto yy425;
5042
0
    if (yych == 't') goto yy425;
5043
0
    goto yy48;
5044
0
yy327:
5045
0
    YYDEBUG(327, *YYCURSOR);
5046
0
    yyaccept = 4;
5047
0
    yych = *(YYMARKER = ++YYCURSOR);
5048
0
    if (yych == 'T') goto yy426;
5049
0
    if (yych == 't') goto yy426;
5050
0
    goto yy48;
5051
0
yy328:
5052
0
    YYDEBUG(328, *YYCURSOR);
5053
0
    yyaccept = 4;
5054
0
    yych = *(YYMARKER = ++YYCURSOR);
5055
0
    if (yych == 'O') goto yy427;
5056
0
    if (yych == 'o') goto yy427;
5057
0
    goto yy48;
5058
0
yy329:
5059
0
    YYDEBUG(329, *YYCURSOR);
5060
0
    yyaccept = 4;
5061
0
    yych = *(YYMARKER = ++YYCURSOR);
5062
0
    if (yych == 'I') goto yy428;
5063
0
    if (yych == 'i') goto yy428;
5064
0
    goto yy48;
5065
0
yy330:
5066
0
    YYDEBUG(330, *YYCURSOR);
5067
0
    yyaccept = 22;
5068
0
    yych = *(YYMARKER = ++YYCURSOR);
5069
0
    if (yybm[256+yych] & 128) {
5070
0
      goto yy47;
5071
0
    }
5072
0
    if (yych == '\\') goto yy164;
5073
0
yy331:
5074
0
    YYDEBUG(331, *YYCURSOR);
5075
0
    yyleng = YYCURSOR - SCNG(yy_text);
5076
0
#line 1437 "Zend/zend_language_scanner.l"
5077
0
    {
5078
0
  RETURN_TOKEN_WITH_IDENT(T_TRY);
5079
0
}
5080
0
#line 5081 "Zend/zend_language_scanner.c"
5081
0
yy332:
5082
0
    YYDEBUG(332, *YYCURSOR);
5083
0
    yyaccept = 4;
5084
0
    yych = *(YYMARKER = ++YYCURSOR);
5085
0
    if (yych == 'E') goto yy429;
5086
0
    if (yych == 'e') goto yy429;
5087
0
    goto yy48;
5088
0
yy333:
5089
0
    YYDEBUG(333, *YYCURSOR);
5090
0
    yyaccept = 23;
5091
0
    yych = *(YYMARKER = ++YYCURSOR);
5092
0
    if (yybm[256+yych] & 128) {
5093
0
      goto yy47;
5094
0
    }
5095
0
    if (yych == '\\') goto yy164;
5096
0
yy334:
5097
0
    YYDEBUG(334, *YYCURSOR);
5098
0
    yyleng = YYCURSOR - SCNG(yy_text);
5099
0
#line 1741 "Zend/zend_language_scanner.l"
5100
0
    {
5101
0
  RETURN_TOKEN_WITH_IDENT(T_USE);
5102
0
}
5103
0
#line 5104 "Zend/zend_language_scanner.c"
5104
0
yy335:
5105
0
    YYDEBUG(335, *YYCURSOR);
5106
0
    yyaccept = 24;
5107
0
    yych = *(YYMARKER = ++YYCURSOR);
5108
0
    if (yybm[256+yych] & 128) {
5109
0
      goto yy47;
5110
0
    }
5111
0
    if (yych == '\\') goto yy164;
5112
0
yy336:
5113
0
    YYDEBUG(336, *YYCURSOR);
5114
0
    yyleng = YYCURSOR - SCNG(yy_text);
5115
0
#line 1633 "Zend/zend_language_scanner.l"
5116
0
    {
5117
0
  RETURN_TOKEN_WITH_IDENT(T_VAR);
5118
0
}
5119
0
#line 5120 "Zend/zend_language_scanner.c"
5120
0
yy337:
5121
0
    YYDEBUG(337, *YYCURSOR);
5122
0
    yyaccept = 4;
5123
0
    yych = *(YYMARKER = ++YYCURSOR);
5124
0
    if (yych == 'L') goto yy430;
5125
0
    if (yych == 'l') goto yy430;
5126
0
    goto yy48;
5127
0
yy338:
5128
0
    YYDEBUG(338, *YYCURSOR);
5129
0
    yyaccept = 25;
5130
0
    yych = *(YYMARKER = ++YYCURSOR);
5131
0
    if (yybm[256+yych] & 128) {
5132
0
      goto yy47;
5133
0
    }
5134
0
    if (yych == '\\') goto yy164;
5135
0
yy339:
5136
0
    YYDEBUG(339, *YYCURSOR);
5137
0
    yyleng = YYCURSOR - SCNG(yy_text);
5138
0
#line 1937 "Zend/zend_language_scanner.l"
5139
0
    {
5140
0
  RETURN_TOKEN_WITH_IDENT(T_LOGICAL_XOR);
5141
0
}
5142
0
#line 5143 "Zend/zend_language_scanner.c"
5143
0
yy340:
5144
0
    YYDEBUG(340, *YYCURSOR);
5145
0
    yyaccept = 4;
5146
0
    yych = *(YYMARKER = ++YYCURSOR);
5147
0
    if (yych == 'L') goto yy431;
5148
0
    if (yych == 'l') goto yy431;
5149
0
    goto yy48;
5150
0
yy341:
5151
0
    YYDEBUG(341, *YYCURSOR);
5152
0
    ++YYCURSOR;
5153
0
    YYFILL(1);
5154
0
    yych = *YYCURSOR;
5155
0
    if (yych <= '_') {
5156
0
      if (yych <= '@') goto yy86;
5157
0
      if (yych <= 'Z') goto yy211;
5158
0
      if (yych <= '^') goto yy86;
5159
0
      goto yy211;
5160
0
    } else {
5161
0
      if (yych <= '`') goto yy86;
5162
0
      if (yych <= 'z') goto yy211;
5163
0
      if (yych <= 0x7F) goto yy86;
5164
0
      goto yy211;
5165
0
    }
5166
0
yy342:
5167
0
    YYDEBUG(342, *YYCURSOR);
5168
0
    yyaccept = 4;
5169
0
    yych = *(YYMARKER = ++YYCURSOR);
5170
0
    if (yych == 'L') goto yy432;
5171
0
    if (yych == 'l') goto yy432;
5172
0
    goto yy48;
5173
0
yy343:
5174
0
    YYDEBUG(343, *YYCURSOR);
5175
0
    yyaccept = 4;
5176
0
    yych = *(YYMARKER = ++YYCURSOR);
5177
0
    if (yych == 'I') goto yy433;
5178
0
    if (yych == 'i') goto yy433;
5179
0
    goto yy48;
5180
0
yy344:
5181
0
    YYDEBUG(344, *YYCURSOR);
5182
0
    yyaccept = 4;
5183
0
    yych = *(YYMARKER = ++YYCURSOR);
5184
0
    if (yych <= 'U') {
5185
0
      if (yych == 'I') goto yy434;
5186
0
      if (yych <= 'T') goto yy48;
5187
0
      goto yy435;
5188
0
    } else {
5189
0
      if (yych <= 'i') {
5190
0
        if (yych <= 'h') goto yy48;
5191
0
        goto yy434;
5192
0
      } else {
5193
0
        if (yych == 'u') goto yy435;
5194
0
        goto yy48;
5195
0
      }
5196
0
    }
5197
0
yy345:
5198
0
    YYDEBUG(345, *YYCURSOR);
5199
0
    yyaccept = 4;
5200
0
    yych = *(YYMARKER = ++YYCURSOR);
5201
0
    if (yych == 'A') goto yy436;
5202
0
    if (yych == 'a') goto yy436;
5203
0
    goto yy48;
5204
0
yy346:
5205
0
    YYDEBUG(346, *YYCURSOR);
5206
0
    yyaccept = 4;
5207
0
    yych = *(YYMARKER = ++YYCURSOR);
5208
0
    if (yych == 'I') goto yy437;
5209
0
    if (yych == 'i') goto yy437;
5210
0
    goto yy48;
5211
0
yy347:
5212
0
    YYDEBUG(347, *YYCURSOR);
5213
0
    yyaccept = 4;
5214
0
    yych = *(YYMARKER = ++YYCURSOR);
5215
0
    if (yych == 'E') goto yy438;
5216
0
    if (yych == 'e') goto yy438;
5217
0
    goto yy48;
5218
0
yy348:
5219
0
    YYDEBUG(348, *YYCURSOR);
5220
0
    yyaccept = 4;
5221
0
    yych = *(YYMARKER = ++YYCURSOR);
5222
0
    if (yych == 'A') goto yy439;
5223
0
    if (yych == 'a') goto yy439;
5224
0
    goto yy48;
5225
0
yy349:
5226
0
    YYDEBUG(349, *YYCURSOR);
5227
0
    yyaccept = 4;
5228
0
    yych = *(YYMARKER = ++YYCURSOR);
5229
0
    if (yych == 'R') goto yy440;
5230
0
    if (yych == 'r') goto yy440;
5231
0
    goto yy48;
5232
0
yy350:
5233
0
    YYDEBUG(350, *YYCURSOR);
5234
0
    yyaccept = 4;
5235
0
    yych = *(YYMARKER = ++YYCURSOR);
5236
0
    if (yych == 'R') goto yy441;
5237
0
    if (yych == 'r') goto yy441;
5238
0
    goto yy48;
5239
0
yy351:
5240
0
    YYDEBUG(351, *YYCURSOR);
5241
0
    ++YYCURSOR;
5242
0
    YYFILL(1);
5243
0
    yych = *YYCURSOR;
5244
0
    if (yybm[0+yych] & 2) {
5245
0
      goto yy225;
5246
0
    }
5247
0
    if (yych <= 0x00) goto yy86;
5248
0
    goto yy227;
5249
0
yy352:
5250
0
    YYDEBUG(352, *YYCURSOR);
5251
0
    yyaccept = 26;
5252
0
    YYMARKER = ++YYCURSOR;
5253
0
    YYFILL(1);
5254
0
    yych = *YYCURSOR;
5255
0
    if (yybm[0+yych] & 2) {
5256
0
      goto yy225;
5257
0
    }
5258
0
    if (yych <= 0x00) goto yy89;
5259
0
    goto yy84;
5260
0
yy353:
5261
0
    YYDEBUG(353, *YYCURSOR);
5262
0
    ++YYCURSOR;
5263
0
    YYFILL(1);
5264
0
    yych = *YYCURSOR;
5265
0
    if (yych <= '\f') {
5266
0
      if (yych <= 0x00) goto yy86;
5267
0
      if (yych == '\n') goto yy84;
5268
0
      goto yy225;
5269
0
    } else {
5270
0
      if (yych <= '\r') goto yy84;
5271
0
      if (yych == '.') goto yy442;
5272
0
      goto yy225;
5273
0
    }
5274
0
yy354:
5275
0
    YYDEBUG(354, *YYCURSOR);
5276
0
    ++YYCURSOR;
5277
0
    YYFILL(1);
5278
0
    yych = *YYCURSOR;
5279
0
    if (yych <= '\f') {
5280
0
      if (yych <= 0x00) goto yy86;
5281
0
      if (yych == '\n') goto yy84;
5282
0
      goto yy225;
5283
0
    } else {
5284
0
      if (yych <= '\r') goto yy84;
5285
0
      if (yych == '*') goto yy443;
5286
0
      goto yy225;
5287
0
    }
5288
0
yy355:
5289
0
    YYDEBUG(355, *YYCURSOR);
5290
0
    ++YYCURSOR;
5291
0
    YYFILL(1);
5292
0
    yych = *YYCURSOR;
5293
0
    YYDEBUG(356, *YYCURSOR);
5294
0
    if (yybm[0+yych] & 64) {
5295
0
      goto yy355;
5296
0
    }
5297
0
    if (yych <= 0x00) goto yy86;
5298
0
    if (yych == '/') goto yy84;
5299
0
    goto yy230;
5300
0
yy357:
5301
0
    YYDEBUG(357, *YYCURSOR);
5302
0
    yych = *++YYCURSOR;
5303
0
    if (yych == 'A') goto yy445;
5304
0
    if (yych == 'a') goto yy445;
5305
0
    goto yy86;
5306
0
yy358:
5307
0
    YYDEBUG(358, *YYCURSOR);
5308
0
    yych = *++YYCURSOR;
5309
0
    if (yych == 'A') goto yy446;
5310
0
    if (yych == 'a') goto yy446;
5311
0
    goto yy86;
5312
0
yy359:
5313
0
    YYDEBUG(359, *YYCURSOR);
5314
0
    yych = *++YYCURSOR;
5315
0
    if (yych == 'L') goto yy447;
5316
0
    if (yych == 'l') goto yy447;
5317
0
    goto yy86;
5318
0
yy360:
5319
0
    YYDEBUG(360, *YYCURSOR);
5320
0
    yych = *++YYCURSOR;
5321
0
    if (yych == 'B') goto yy448;
5322
0
    if (yych == 'b') goto yy448;
5323
0
    goto yy86;
5324
0
yy361:
5325
0
    YYDEBUG(361, *YYCURSOR);
5326
0
    yych = *++YYCURSOR;
5327
0
    if (yych == 'A') goto yy449;
5328
0
    if (yych == 'a') goto yy449;
5329
0
    goto yy86;
5330
0
yy362:
5331
0
    YYDEBUG(362, *YYCURSOR);
5332
0
    yych = *++YYCURSOR;
5333
0
    if (yych == 'E') goto yy454;
5334
0
    if (yych == 'e') goto yy454;
5335
0
    goto yy451;
5336
0
yy363:
5337
0
    YYDEBUG(363, *YYCURSOR);
5338
0
    yych = *++YYCURSOR;
5339
0
    if (yych == 'E') goto yy455;
5340
0
    if (yych == 'e') goto yy455;
5341
0
    goto yy86;
5342
0
yy364:
5343
0
    YYDEBUG(364, *YYCURSOR);
5344
0
    yych = *++YYCURSOR;
5345
0
    if (yych == 'L') goto yy456;
5346
0
    if (yych == 'l') goto yy456;
5347
0
    goto yy86;
5348
0
yy365:
5349
0
    YYDEBUG(365, *YYCURSOR);
5350
0
    yych = *++YYCURSOR;
5351
0
    if (yych == 'I') goto yy458;
5352
0
    if (yych == 'i') goto yy458;
5353
0
    goto yy86;
5354
0
yy366:
5355
0
    YYDEBUG(366, *YYCURSOR);
5356
0
    yych = *++YYCURSOR;
5357
0
    if (yych == 'E') goto yy459;
5358
0
    if (yych == 'e') goto yy459;
5359
0
    goto yy86;
5360
0
yy367:
5361
0
    YYDEBUG(367, *YYCURSOR);
5362
0
    yych = *++YYCURSOR;
5363
0
    if (yych == 'D') goto yy460;
5364
0
    if (yych == 'd') goto yy460;
5365
0
    goto yy86;
5366
0
yy368:
5367
0
    YYDEBUG(368, *YYCURSOR);
5368
0
    ++YYCURSOR;
5369
0
    YYFILL(1);
5370
0
    yych = *YYCURSOR;
5371
0
    YYDEBUG(369, *YYCURSOR);
5372
0
    if (yych <= '\f') {
5373
0
      if (yych <= 0x08) goto yy129;
5374
0
      if (yych <= '\n') goto yy368;
5375
0
      goto yy129;
5376
0
    } else {
5377
0
      if (yych <= '\r') goto yy368;
5378
0
      if (yych == ' ') goto yy368;
5379
0
      goto yy129;
5380
0
    }
5381
0
yy370:
5382
0
    YYDEBUG(370, *YYCURSOR);
5383
0
    yych = *++YYCURSOR;
5384
0
    if (yych == '"') goto yy86;
5385
0
    if (yych <= '/') goto yy463;
5386
0
    if (yych <= '9') goto yy86;
5387
0
    goto yy463;
5388
0
yy371:
5389
0
    YYDEBUG(371, *YYCURSOR);
5390
0
    yych = *++YYCURSOR;
5391
0
    if (yych == '\'') goto yy86;
5392
0
    if (yych <= '/') goto yy465;
5393
0
    if (yych <= '9') goto yy86;
5394
0
    goto yy465;
5395
0
yy372:
5396
0
    YYDEBUG(372, *YYCURSOR);
5397
0
    ++YYCURSOR;
5398
0
    YYFILL(2);
5399
0
    yych = *YYCURSOR;
5400
0
    YYDEBUG(373, *YYCURSOR);
5401
0
    if (yych <= '@') {
5402
0
      if (yych <= '\f') {
5403
0
        if (yych == '\n') goto yy466;
5404
0
        goto yy86;
5405
0
      } else {
5406
0
        if (yych <= '\r') goto yy468;
5407
0
        if (yych <= '/') goto yy86;
5408
0
        if (yych <= '9') goto yy372;
5409
0
        goto yy86;
5410
0
      }
5411
0
    } else {
5412
0
      if (yych <= '_') {
5413
0
        if (yych <= 'Z') goto yy372;
5414
0
        if (yych <= '^') goto yy86;
5415
0
        goto yy372;
5416
0
      } else {
5417
0
        if (yych <= '`') goto yy86;
5418
0
        if (yych <= 'z') goto yy372;
5419
0
        if (yych <= 0x7F) goto yy86;
5420
0
        goto yy372;
5421
0
      }
5422
0
    }
5423
0
yy374:
5424
0
    YYDEBUG(374, *YYCURSOR);
5425
0
    yyaccept = 4;
5426
0
    yych = *(YYMARKER = ++YYCURSOR);
5427
0
    if (yych == 'R') goto yy469;
5428
0
    if (yych == 'r') goto yy469;
5429
0
    goto yy48;
5430
0
yy375:
5431
0
    YYDEBUG(375, *YYCURSOR);
5432
0
    yyaccept = 4;
5433
0
    yych = *(YYMARKER = ++YYCURSOR);
5434
0
    if (yych == 'Y') goto yy470;
5435
0
    if (yych == 'y') goto yy470;
5436
0
    goto yy48;
5437
0
yy376:
5438
0
    YYDEBUG(376, *YYCURSOR);
5439
0
    yyaccept = 4;
5440
0
    yych = *(YYMARKER = ++YYCURSOR);
5441
0
    if (yych == 'K') goto yy472;
5442
0
    if (yych == 'k') goto yy472;
5443
0
    goto yy48;
5444
0
yy377:
5445
0
    YYDEBUG(377, *YYCURSOR);
5446
0
    yyaccept = 4;
5447
0
    yych = *(YYMARKER = ++YYCURSOR);
5448
0
    if (yych == 'A') goto yy474;
5449
0
    if (yych == 'a') goto yy474;
5450
0
    goto yy48;
5451
0
yy378:
5452
0
    YYDEBUG(378, *YYCURSOR);
5453
0
    yyaccept = 27;
5454
0
    yych = *(YYMARKER = ++YYCURSOR);
5455
0
    if (yybm[256+yych] & 128) {
5456
0
      goto yy47;
5457
0
    }
5458
0
    if (yych == '\\') goto yy164;
5459
0
yy379:
5460
0
    YYDEBUG(379, *YYCURSOR);
5461
0
    yyleng = YYCURSOR - SCNG(yy_text);
5462
0
#line 1525 "Zend/zend_language_scanner.l"
5463
0
    {
5464
0
  RETURN_TOKEN_WITH_IDENT(T_CASE);
5465
0
}
5466
0
#line 5467 "Zend/zend_language_scanner.c"
5467
0
yy380:
5468
0
    YYDEBUG(380, *YYCURSOR);
5469
0
    yyaccept = 4;
5470
0
    yych = *(YYMARKER = ++YYCURSOR);
5471
0
    if (yych == 'H') goto yy475;
5472
0
    if (yych == 'h') goto yy475;
5473
0
    goto yy48;
5474
0
yy381:
5475
0
    YYDEBUG(381, *YYCURSOR);
5476
0
    yyaccept = 4;
5477
0
    yych = *(YYMARKER = ++YYCURSOR);
5478
0
    if (yych == 'S') goto yy477;
5479
0
    if (yych == 's') goto yy477;
5480
0
    goto yy48;
5481
0
yy382:
5482
0
    YYDEBUG(382, *YYCURSOR);
5483
0
    yyaccept = 4;
5484
0
    yych = *(YYMARKER = ++YYCURSOR);
5485
0
    if (yych == 'E') goto yy479;
5486
0
    if (yych == 'e') goto yy479;
5487
0
    goto yy48;
5488
0
yy383:
5489
0
    YYDEBUG(383, *YYCURSOR);
5490
0
    yyaccept = 4;
5491
0
    yych = *(YYMARKER = ++YYCURSOR);
5492
0
    if (yych == 'T') goto yy481;
5493
0
    if (yych == 't') goto yy481;
5494
0
    goto yy48;
5495
0
yy384:
5496
0
    YYDEBUG(384, *YYCURSOR);
5497
0
    yyaccept = 4;
5498
0
    yych = *(YYMARKER = ++YYCURSOR);
5499
0
    if (yych == 'I') goto yy483;
5500
0
    if (yych == 'i') goto yy483;
5501
0
    goto yy48;
5502
0
yy385:
5503
0
    YYDEBUG(385, *YYCURSOR);
5504
0
    yyaccept = 4;
5505
0
    yych = *(YYMARKER = ++YYCURSOR);
5506
0
    if (yych == 'A') goto yy484;
5507
0
    if (yych == 'a') goto yy484;
5508
0
    goto yy48;
5509
0
yy386:
5510
0
    YYDEBUG(386, *YYCURSOR);
5511
0
    yyaccept = 4;
5512
0
    yych = *(YYMARKER = ++YYCURSOR);
5513
0
    if (yych == 'U') goto yy485;
5514
0
    if (yych == 'u') goto yy485;
5515
0
    goto yy48;
5516
0
yy387:
5517
0
    YYDEBUG(387, *YYCURSOR);
5518
0
    yyaccept = 28;
5519
0
    yych = *(YYMARKER = ++YYCURSOR);
5520
0
    if (yybm[256+yych] & 128) {
5521
0
      goto yy47;
5522
0
    }
5523
0
    if (yych == '\\') goto yy164;
5524
0
yy388:
5525
0
    YYDEBUG(388, *YYCURSOR);
5526
0
    yyleng = YYCURSOR - SCNG(yy_text);
5527
0
#line 1545 "Zend/zend_language_scanner.l"
5528
0
    {
5529
0
  RETURN_TOKEN_WITH_IDENT(T_ECHO);
5530
0
}
5531
0
#line 5532 "Zend/zend_language_scanner.c"
5532
0
yy389:
5533
0
    YYDEBUG(389, *YYCURSOR);
5534
0
    yyaccept = 29;
5535
0
    yych = *(YYMARKER = ++YYCURSOR);
5536
0
    if (yych <= '\\') {
5537
0
      if (yych <= 'H') {
5538
0
        if (yych <= '/') goto yy390;
5539
0
        if (yych <= '9') goto yy47;
5540
0
        if (yych >= 'A') goto yy47;
5541
0
      } else {
5542
0
        if (yych <= 'I') goto yy486;
5543
0
        if (yych <= 'Z') goto yy47;
5544
0
        if (yych >= '\\') goto yy164;
5545
0
      }
5546
0
    } else {
5547
0
      if (yych <= 'h') {
5548
0
        if (yych == '_') goto yy47;
5549
0
        if (yych >= 'a') goto yy47;
5550
0
      } else {
5551
0
        if (yych <= 'i') goto yy486;
5552
0
        if (yych <= 'z') goto yy47;
5553
0
        if (yych >= 0x80) goto yy47;
5554
0
      }
5555
0
    }
5556
0
yy390:
5557
0
    YYDEBUG(390, *YYCURSOR);
5558
0
    yyleng = YYCURSOR - SCNG(yy_text);
5559
0
#line 1465 "Zend/zend_language_scanner.l"
5560
0
    {
5561
0
  RETURN_TOKEN_WITH_IDENT(T_ELSE);
5562
0
}
5563
0
#line 5564 "Zend/zend_language_scanner.c"
5564
0
yy391:
5565
0
    YYDEBUG(391, *YYCURSOR);
5566
0
    yyaccept = 4;
5567
0
    yych = *(YYMARKER = ++YYCURSOR);
5568
0
    if (yych == 'Y') goto yy487;
5569
0
    if (yych == 'y') goto yy487;
5570
0
    goto yy48;
5571
0
yy392:
5572
0
    YYDEBUG(392, *YYCURSOR);
5573
0
    yyaccept = 4;
5574
0
    yych = *(YYMARKER = ++YYCURSOR);
5575
0
    if (yych == 'E') goto yy489;
5576
0
    if (yych == 'e') goto yy489;
5577
0
    goto yy48;
5578
0
yy393:
5579
0
    YYDEBUG(393, *YYCURSOR);
5580
0
    yyaccept = 4;
5581
0
    yych = *(YYMARKER = ++YYCURSOR);
5582
0
    if (yych == 'O') goto yy490;
5583
0
    if (yych == 'o') goto yy490;
5584
0
    goto yy48;
5585
0
yy394:
5586
0
    YYDEBUG(394, *YYCURSOR);
5587
0
    yyaccept = 4;
5588
0
    yych = *(YYMARKER = ++YYCURSOR);
5589
0
    if (yych == 'F') goto yy491;
5590
0
    if (yych == 'f') goto yy491;
5591
0
    goto yy48;
5592
0
yy395:
5593
0
    YYDEBUG(395, *YYCURSOR);
5594
0
    yyaccept = 4;
5595
0
    yych = *(YYMARKER = ++YYCURSOR);
5596
0
    if (yych == 'W') goto yy493;
5597
0
    if (yych == 'w') goto yy493;
5598
0
    goto yy48;
5599
0
yy396:
5600
0
    YYDEBUG(396, *YYCURSOR);
5601
0
    yyaccept = 4;
5602
0
    yych = *(YYMARKER = ++YYCURSOR);
5603
0
    if (yych == 'H') goto yy494;
5604
0
    if (yych == 'h') goto yy494;
5605
0
    goto yy48;
5606
0
yy397:
5607
0
    YYDEBUG(397, *YYCURSOR);
5608
0
    yyaccept = 4;
5609
0
    yych = *(YYMARKER = ++YYCURSOR);
5610
0
    if (yych <= 0x1F) {
5611
0
      if (yych <= '\n') {
5612
0
        if (yych <= 0x08) goto yy48;
5613
0
        goto yy495;
5614
0
      } else {
5615
0
        if (yych == '\r') goto yy495;
5616
0
        goto yy48;
5617
0
      }
5618
0
    } else {
5619
0
      if (yych <= '#') {
5620
0
        if (yych <= ' ') goto yy495;
5621
0
        if (yych <= '"') goto yy48;
5622
0
        goto yy497;
5623
0
      } else {
5624
0
        if (yych == '/') goto yy498;
5625
0
        goto yy48;
5626
0
      }
5627
0
    }
5628
0
yy398:
5629
0
    YYDEBUG(398, *YYCURSOR);
5630
0
    yyaccept = 30;
5631
0
    yych = *(YYMARKER = ++YYCURSOR);
5632
0
    if (yybm[256+yych] & 128) {
5633
0
      goto yy47;
5634
0
    }
5635
0
    if (yych == '\\') goto yy164;
5636
0
yy399:
5637
0
    YYDEBUG(399, *YYCURSOR);
5638
0
    yyleng = YYCURSOR - SCNG(yy_text);
5639
0
#line 1717 "Zend/zend_language_scanner.l"
5640
0
    {
5641
0
  RETURN_TOKEN_WITH_IDENT(T_EVAL);
5642
0
}
5643
0
#line 5644 "Zend/zend_language_scanner.c"
5644
0
yy400:
5645
0
    YYDEBUG(400, *YYCURSOR);
5646
0
    yyaccept = 31;
5647
0
    yych = *(YYMARKER = ++YYCURSOR);
5648
0
    if (yybm[256+yych] & 128) {
5649
0
      goto yy47;
5650
0
    }
5651
0
    if (yych == '\\') goto yy164;
5652
0
yy401:
5653
0
    YYDEBUG(401, *YYCURSOR);
5654
0
    yyleng = YYCURSOR - SCNG(yy_text);
5655
0
#line 1398 "Zend/zend_language_scanner.l"
5656
0
    {
5657
0
  RETURN_TOKEN_WITH_IDENT(T_EXIT);
5658
0
}
5659
0
#line 5660 "Zend/zend_language_scanner.c"
5660
0
yy402:
5661
0
    YYDEBUG(402, *YYCURSOR);
5662
0
    yyaccept = 4;
5663
0
    yych = *(YYMARKER = ++YYCURSOR);
5664
0
    if (yych == 'N') goto yy499;
5665
0
    if (yych == 'n') goto yy499;
5666
0
    goto yy48;
5667
0
yy403:
5668
0
    YYDEBUG(403, *YYCURSOR);
5669
0
    yyaccept = 4;
5670
0
    yych = *(YYMARKER = ++YYCURSOR);
5671
0
    if (yych == 'L') goto yy500;
5672
0
    if (yych == 'l') goto yy500;
5673
0
    goto yy48;
5674
0
yy404:
5675
0
    YYDEBUG(404, *YYCURSOR);
5676
0
    yyaccept = 4;
5677
0
    yych = *(YYMARKER = ++YYCURSOR);
5678
0
    if (yych == 'A') goto yy502;
5679
0
    if (yych == 'a') goto yy502;
5680
0
    goto yy48;
5681
0
yy405:
5682
0
    YYDEBUG(405, *YYCURSOR);
5683
0
    yyaccept = 4;
5684
0
    yych = *(YYMARKER = ++YYCURSOR);
5685
0
    if (yych == 'T') goto yy503;
5686
0
    if (yych == 't') goto yy503;
5687
0
    goto yy48;
5688
0
yy406:
5689
0
    YYDEBUG(406, *YYCURSOR);
5690
0
    yyaccept = 4;
5691
0
    yych = *(YYMARKER = ++YYCURSOR);
5692
0
    if (yych == 'A') goto yy504;
5693
0
    if (yych == 'a') goto yy504;
5694
0
    goto yy48;
5695
0
yy407:
5696
0
    YYDEBUG(407, *YYCURSOR);
5697
0
    yyaccept = 32;
5698
0
    yych = *(YYMARKER = ++YYCURSOR);
5699
0
    if (yybm[256+yych] & 128) {
5700
0
      goto yy47;
5701
0
    }
5702
0
    if (yych == '\\') goto yy164;
5703
0
yy408:
5704
0
    YYDEBUG(408, *YYCURSOR);
5705
0
    yyleng = YYCURSOR - SCNG(yy_text);
5706
0
#line 1541 "Zend/zend_language_scanner.l"
5707
0
    {
5708
0
  RETURN_TOKEN_WITH_IDENT(T_GOTO);
5709
0
}
5710
0
#line 5711 "Zend/zend_language_scanner.c"
5711
0
yy409:
5712
0
    YYDEBUG(409, *YYCURSOR);
5713
0
    yyaccept = 4;
5714
0
    yych = *(YYMARKER = ++YYCURSOR);
5715
0
    if (yych == 'E') goto yy505;
5716
0
    if (yych == 'e') goto yy505;
5717
0
    goto yy48;
5718
0
yy410:
5719
0
    YYDEBUG(410, *YYCURSOR);
5720
0
    yyaccept = 4;
5721
0
    yych = *(YYMARKER = ++YYCURSOR);
5722
0
    if (yych == 'U') goto yy506;
5723
0
    if (yych == 'u') goto yy506;
5724
0
    goto yy48;
5725
0
yy411:
5726
0
    YYDEBUG(411, *YYCURSOR);
5727
0
    yyaccept = 4;
5728
0
    yych = *(YYMARKER = ++YYCURSOR);
5729
0
    if (yych <= 'E') {
5730
0
      if (yych == 'A') goto yy507;
5731
0
      if (yych <= 'D') goto yy48;
5732
0
      goto yy508;
5733
0
    } else {
5734
0
      if (yych <= 'a') {
5735
0
        if (yych <= '`') goto yy48;
5736
0
        goto yy507;
5737
0
      } else {
5738
0
        if (yych == 'e') goto yy508;
5739
0
        goto yy48;
5740
0
      }
5741
0
    }
5742
0
yy412:
5743
0
    YYDEBUG(412, *YYCURSOR);
5744
0
    yyaccept = 4;
5745
0
    yych = *(YYMARKER = ++YYCURSOR);
5746
0
    if (yych == 'R') goto yy509;
5747
0
    if (yych == 'r') goto yy509;
5748
0
    goto yy48;
5749
0
yy413:
5750
0
    YYDEBUG(413, *YYCURSOR);
5751
0
    yyaccept = 4;
5752
0
    yych = *(YYMARKER = ++YYCURSOR);
5753
0
    if (yych == 'T') goto yy510;
5754
0
    if (yych == 't') goto yy510;
5755
0
    goto yy48;
5756
0
yy414:
5757
0
    YYDEBUG(414, *YYCURSOR);
5758
0
    yyaccept = 33;
5759
0
    yych = *(YYMARKER = ++YYCURSOR);
5760
0
    if (yybm[256+yych] & 128) {
5761
0
      goto yy47;
5762
0
    }
5763
0
    if (yych == '\\') goto yy164;
5764
0
yy415:
5765
0
    YYDEBUG(415, *YYCURSOR);
5766
0
    yyleng = YYCURSOR - SCNG(yy_text);
5767
0
#line 1813 "Zend/zend_language_scanner.l"
5768
0
    {
5769
0
  RETURN_TOKEN_WITH_IDENT(T_LIST);
5770
0
}
5771
0
#line 5772 "Zend/zend_language_scanner.c"
5772
0
yy416:
5773
0
    YYDEBUG(416, *YYCURSOR);
5774
0
    yyaccept = 4;
5775
0
    yych = *(YYMARKER = ++YYCURSOR);
5776
0
    if (yych == 'H') goto yy512;
5777
0
    if (yych == 'h') goto yy512;
5778
0
    goto yy48;
5779
0
yy417:
5780
0
    YYDEBUG(417, *YYCURSOR);
5781
0
    yyaccept = 4;
5782
0
    yych = *(YYMARKER = ++YYCURSOR);
5783
0
    if (yych == 'S') goto yy514;
5784
0
    if (yych == 's') goto yy514;
5785
0
    goto yy48;
5786
0
yy418:
5787
0
    YYDEBUG(418, *YYCURSOR);
5788
0
    yyaccept = 4;
5789
0
    yych = *(YYMARKER = ++YYCURSOR);
5790
0
    if (yych == 'T') goto yy515;
5791
0
    if (yych == 't') goto yy515;
5792
0
    goto yy48;
5793
0
yy419:
5794
0
    YYDEBUG(419, *YYCURSOR);
5795
0
    yyaccept = 4;
5796
0
    yych = *(YYMARKER = ++YYCURSOR);
5797
0
    if (yych == 'A') goto yy517;
5798
0
    if (yych == 'a') goto yy517;
5799
0
    goto yy48;
5800
0
yy420:
5801
0
    YYDEBUG(420, *YYCURSOR);
5802
0
    yyaccept = 4;
5803
0
    yych = *(YYMARKER = ++YYCURSOR);
5804
0
    if (yych == 'E') goto yy518;
5805
0
    if (yych == 'e') goto yy518;
5806
0
    goto yy48;
5807
0
yy421:
5808
0
    YYDEBUG(421, *YYCURSOR);
5809
0
    yyaccept = 4;
5810
0
    yych = *(YYMARKER = ++YYCURSOR);
5811
0
    if (yych == 'I') goto yy519;
5812
0
    if (yych == 'i') goto yy519;
5813
0
    goto yy48;
5814
0
yy422:
5815
0
    YYDEBUG(422, *YYCURSOR);
5816
0
    yyaccept = 4;
5817
0
    yych = *(YYMARKER = ++YYCURSOR);
5818
0
    if (yych == 'O') goto yy520;
5819
0
    if (yych == 'o') goto yy520;
5820
0
    goto yy48;
5821
0
yy423:
5822
0
    YYDEBUG(423, *YYCURSOR);
5823
0
    yyaccept = 4;
5824
0
    yych = *(YYMARKER = ++YYCURSOR);
5825
0
    if (yych == 'I') goto yy521;
5826
0
    if (yych == 'i') goto yy521;
5827
0
    goto yy48;
5828
0
yy424:
5829
0
    YYDEBUG(424, *YYCURSOR);
5830
0
    yyaccept = 4;
5831
0
    yych = *(YYMARKER = ++YYCURSOR);
5832
0
    if (yych == 'R') goto yy522;
5833
0
    if (yych == 'r') goto yy522;
5834
0
    goto yy48;
5835
0
yy425:
5836
0
    YYDEBUG(425, *YYCURSOR);
5837
0
    yyaccept = 4;
5838
0
    yych = *(YYMARKER = ++YYCURSOR);
5839
0
    if (yych == 'I') goto yy523;
5840
0
    if (yych == 'i') goto yy523;
5841
0
    goto yy48;
5842
0
yy426:
5843
0
    YYDEBUG(426, *YYCURSOR);
5844
0
    yyaccept = 4;
5845
0
    yych = *(YYMARKER = ++YYCURSOR);
5846
0
    if (yych == 'C') goto yy524;
5847
0
    if (yych == 'c') goto yy524;
5848
0
    goto yy48;
5849
0
yy427:
5850
0
    YYDEBUG(427, *YYCURSOR);
5851
0
    yyaccept = 4;
5852
0
    yych = *(YYMARKER = ++YYCURSOR);
5853
0
    if (yych == 'W') goto yy525;
5854
0
    if (yych == 'w') goto yy525;
5855
0
    goto yy48;
5856
0
yy428:
5857
0
    YYDEBUG(428, *YYCURSOR);
5858
0
    yyaccept = 4;
5859
0
    yych = *(YYMARKER = ++YYCURSOR);
5860
0
    if (yych == 'T') goto yy527;
5861
0
    if (yych == 't') goto yy527;
5862
0
    goto yy48;
5863
0
yy429:
5864
0
    YYDEBUG(429, *YYCURSOR);
5865
0
    yyaccept = 4;
5866
0
    yych = *(YYMARKER = ++YYCURSOR);
5867
0
    if (yych == 'T') goto yy529;
5868
0
    if (yych == 't') goto yy529;
5869
0
    goto yy48;
5870
0
yy430:
5871
0
    YYDEBUG(430, *YYCURSOR);
5872
0
    yyaccept = 4;
5873
0
    yych = *(YYMARKER = ++YYCURSOR);
5874
0
    if (yych == 'E') goto yy531;
5875
0
    if (yych == 'e') goto yy531;
5876
0
    goto yy48;
5877
0
yy431:
5878
0
    YYDEBUG(431, *YYCURSOR);
5879
0
    yyaccept = 4;
5880
0
    yych = *(YYMARKER = ++YYCURSOR);
5881
0
    if (yych == 'D') goto yy533;
5882
0
    if (yych == 'd') goto yy533;
5883
0
    goto yy48;
5884
0
yy432:
5885
0
    YYDEBUG(432, *YYCURSOR);
5886
0
    yyaccept = 4;
5887
0
    yych = *(YYMARKER = ++YYCURSOR);
5888
0
    if (yych == 'A') goto yy535;
5889
0
    if (yych == 'a') goto yy535;
5890
0
    goto yy48;
5891
0
yy433:
5892
0
    YYDEBUG(433, *YYCURSOR);
5893
0
    yyaccept = 4;
5894
0
    yych = *(YYMARKER = ++YYCURSOR);
5895
0
    if (yych == 'R') goto yy536;
5896
0
    if (yych == 'r') goto yy536;
5897
0
    goto yy48;
5898
0
yy434:
5899
0
    YYDEBUG(434, *YYCURSOR);
5900
0
    yyaccept = 4;
5901
0
    yych = *(YYMARKER = ++YYCURSOR);
5902
0
    if (yych == 'L') goto yy537;
5903
0
    if (yych == 'l') goto yy537;
5904
0
    goto yy48;
5905
0
yy435:
5906
0
    YYDEBUG(435, *YYCURSOR);
5907
0
    yyaccept = 4;
5908
0
    yych = *(YYMARKER = ++YYCURSOR);
5909
0
    if (yych == 'N') goto yy538;
5910
0
    if (yych == 'n') goto yy538;
5911
0
    goto yy48;
5912
0
yy436:
5913
0
    YYDEBUG(436, *YYCURSOR);
5914
0
    yyaccept = 4;
5915
0
    yych = *(YYMARKER = ++YYCURSOR);
5916
0
    if (yych == 'L') goto yy539;
5917
0
    if (yych == 'l') goto yy539;
5918
0
    goto yy48;
5919
0
yy437:
5920
0
    YYDEBUG(437, *YYCURSOR);
5921
0
    yyaccept = 4;
5922
0
    yych = *(YYMARKER = ++YYCURSOR);
5923
0
    if (yych == 'N') goto yy540;
5924
0
    if (yych == 'n') goto yy540;
5925
0
    goto yy48;
5926
0
yy438:
5927
0
    YYDEBUG(438, *YYCURSOR);
5928
0
    yyaccept = 4;
5929
0
    yych = *(YYMARKER = ++YYCURSOR);
5930
0
    if (yych == 'T') goto yy541;
5931
0
    if (yych == 't') goto yy541;
5932
0
    goto yy48;
5933
0
yy439:
5934
0
    YYDEBUG(439, *YYCURSOR);
5935
0
    yyaccept = 4;
5936
0
    yych = *(YYMARKER = ++YYCURSOR);
5937
0
    if (yych == 'M') goto yy542;
5938
0
    if (yych == 'm') goto yy542;
5939
0
    goto yy48;
5940
0
yy440:
5941
0
    YYDEBUG(440, *YYCURSOR);
5942
0
    yyaccept = 4;
5943
0
    yych = *(YYMARKER = ++YYCURSOR);
5944
0
    if (yych == 'O') goto yy543;
5945
0
    if (yych == 'o') goto yy543;
5946
0
    goto yy48;
5947
0
yy441:
5948
0
    YYDEBUG(441, *YYCURSOR);
5949
0
    yyaccept = 4;
5950
0
    yych = *(YYMARKER = ++YYCURSOR);
5951
0
    if (yych == 'A') goto yy544;
5952
0
    if (yych == 'a') goto yy544;
5953
0
    goto yy48;
5954
0
yy442:
5955
0
    YYDEBUG(442, *YYCURSOR);
5956
0
    ++YYCURSOR;
5957
0
    YYFILL(1);
5958
0
    yych = *YYCURSOR;
5959
0
    if (yych <= '\f') {
5960
0
      if (yych <= 0x00) goto yy86;
5961
0
      if (yych == '\n') goto yy84;
5962
0
      goto yy225;
5963
0
    } else {
5964
0
      if (yych <= '\r') goto yy84;
5965
0
      if (yych == '.') goto yy352;
5966
0
      goto yy225;
5967
0
    }
5968
0
yy443:
5969
0
    YYDEBUG(443, *YYCURSOR);
5970
0
    ++YYCURSOR;
5971
0
    YYFILL(1);
5972
0
    yych = *YYCURSOR;
5973
0
    YYDEBUG(444, *YYCURSOR);
5974
0
    if (yybm[0+yych] & 128) {
5975
0
      goto yy443;
5976
0
    }
5977
0
    if (yych <= 0x00) goto yy86;
5978
0
    if (yych <= '\r') goto yy545;
5979
0
    goto yy547;
5980
0
yy445:
5981
0
    YYDEBUG(445, *YYCURSOR);
5982
0
    yych = *++YYCURSOR;
5983
0
    if (yych == 'Y') goto yy549;
5984
0
    if (yych == 'y') goto yy549;
5985
0
    goto yy86;
5986
0
yy446:
5987
0
    YYDEBUG(446, *YYCURSOR);
5988
0
    yych = *++YYCURSOR;
5989
0
    if (yych == 'R') goto yy551;
5990
0
    if (yych == 'r') goto yy551;
5991
0
    goto yy86;
5992
0
yy447:
5993
0
    YYDEBUG(447, *YYCURSOR);
5994
0
    yych = *++YYCURSOR;
5995
0
    if (yych == 'E') goto yy556;
5996
0
    if (yych == 'e') goto yy556;
5997
0
    goto yy553;
5998
0
yy448:
5999
0
    YYDEBUG(448, *YYCURSOR);
6000
0
    yych = *++YYCURSOR;
6001
0
    if (yych == 'L') goto yy557;
6002
0
    if (yych == 'l') goto yy557;
6003
0
    goto yy86;
6004
0
yy449:
6005
0
    YYDEBUG(449, *YYCURSOR);
6006
0
    yych = *++YYCURSOR;
6007
0
    if (yych == 'T') goto yy558;
6008
0
    if (yych == 't') goto yy558;
6009
0
    goto yy86;
6010
0
yy450:
6011
0
    YYDEBUG(450, *YYCURSOR);
6012
0
    ++YYCURSOR;
6013
0
    YYFILL(1);
6014
0
    yych = *YYCURSOR;
6015
0
yy451:
6016
0
    YYDEBUG(451, *YYCURSOR);
6017
0
    if (yych <= 0x1F) {
6018
0
      if (yych == '\t') goto yy450;
6019
0
      goto yy86;
6020
0
    } else {
6021
0
      if (yych <= ' ') goto yy450;
6022
0
      if (yych != ')') goto yy86;
6023
0
    }
6024
0
    YYDEBUG(452, *YYCURSOR);
6025
0
    ++YYCURSOR;
6026
0
    YYDEBUG(453, *YYCURSOR);
6027
0
    yyleng = YYCURSOR - SCNG(yy_text);
6028
0
#line 1637 "Zend/zend_language_scanner.l"
6029
0
    {
6030
0
  RETURN_TOKEN(T_INT_CAST);
6031
0
}
6032
0
#line 6033 "Zend/zend_language_scanner.c"
6033
0
yy454:
6034
0
    YYDEBUG(454, *YYCURSOR);
6035
0
    yych = *++YYCURSOR;
6036
0
    if (yych == 'G') goto yy560;
6037
0
    if (yych == 'g') goto yy560;
6038
0
    goto yy86;
6039
0
yy455:
6040
0
    YYDEBUG(455, *YYCURSOR);
6041
0
    yych = *++YYCURSOR;
6042
0
    if (yych == 'C') goto yy561;
6043
0
    if (yych == 'c') goto yy561;
6044
0
    goto yy86;
6045
0
yy456:
6046
0
    YYDEBUG(456, *YYCURSOR);
6047
0
    ++YYCURSOR;
6048
0
    YYFILL(1);
6049
0
    yych = *YYCURSOR;
6050
0
    YYDEBUG(457, *YYCURSOR);
6051
0
    if (yych <= 0x1F) {
6052
0
      if (yych == '\t') goto yy456;
6053
0
      goto yy86;
6054
0
    } else {
6055
0
      if (yych <= ' ') goto yy456;
6056
0
      if (yych == ')') goto yy562;
6057
0
      goto yy86;
6058
0
    }
6059
0
yy458:
6060
0
    YYDEBUG(458, *YYCURSOR);
6061
0
    yych = *++YYCURSOR;
6062
0
    if (yych == 'N') goto yy564;
6063
0
    if (yych == 'n') goto yy564;
6064
0
    goto yy86;
6065
0
yy459:
6066
0
    YYDEBUG(459, *YYCURSOR);
6067
0
    yych = *++YYCURSOR;
6068
0
    if (yych == 'T') goto yy565;
6069
0
    if (yych == 't') goto yy565;
6070
0
    goto yy86;
6071
0
yy460:
6072
0
    YYDEBUG(460, *YYCURSOR);
6073
0
    ++YYCURSOR;
6074
0
    YYFILL(1);
6075
0
    yych = *YYCURSOR;
6076
0
    YYDEBUG(461, *YYCURSOR);
6077
0
    if (yych <= 0x1F) {
6078
0
      if (yych == '\t') goto yy460;
6079
0
      goto yy86;
6080
0
    } else {
6081
0
      if (yych <= ' ') goto yy460;
6082
0
      if (yych == ')') goto yy567;
6083
0
      goto yy86;
6084
0
    }
6085
0
yy462:
6086
0
    YYDEBUG(462, *YYCURSOR);
6087
0
    ++YYCURSOR;
6088
0
    YYFILL(3);
6089
0
    yych = *YYCURSOR;
6090
0
yy463:
6091
0
    YYDEBUG(463, *YYCURSOR);
6092
0
    if (yych <= 'Z') {
6093
0
      if (yych <= '/') {
6094
0
        if (yych == '"') goto yy569;
6095
0
        goto yy86;
6096
0
      } else {
6097
0
        if (yych <= '9') goto yy462;
6098
0
        if (yych <= '@') goto yy86;
6099
0
        goto yy462;
6100
0
      }
6101
0
    } else {
6102
0
      if (yych <= '`') {
6103
0
        if (yych == '_') goto yy462;
6104
0
        goto yy86;
6105
0
      } else {
6106
0
        if (yych <= 'z') goto yy462;
6107
0
        if (yych <= 0x7F) goto yy86;
6108
0
        goto yy462;
6109
0
      }
6110
0
    }
6111
0
yy464:
6112
0
    YYDEBUG(464, *YYCURSOR);
6113
0
    ++YYCURSOR;
6114
0
    YYFILL(3);
6115
0
    yych = *YYCURSOR;
6116
0
yy465:
6117
0
    YYDEBUG(465, *YYCURSOR);
6118
0
    if (yych <= 'Z') {
6119
0
      if (yych <= '/') {
6120
0
        if (yych == '\'') goto yy569;
6121
0
        goto yy86;
6122
0
      } else {
6123
0
        if (yych <= '9') goto yy464;
6124
0
        if (yych <= '@') goto yy86;
6125
0
        goto yy464;
6126
0
      }
6127
0
    } else {
6128
0
      if (yych <= '`') {
6129
0
        if (yych == '_') goto yy464;
6130
0
        goto yy86;
6131
0
      } else {
6132
0
        if (yych <= 'z') goto yy464;
6133
0
        if (yych <= 0x7F) goto yy86;
6134
0
        goto yy464;
6135
0
      }
6136
0
    }
6137
0
yy466:
6138
0
    YYDEBUG(466, *YYCURSOR);
6139
0
    ++YYCURSOR;
6140
0
yy467:
6141
0
    YYDEBUG(467, *YYCURSOR);
6142
0
    yyleng = YYCURSOR - SCNG(yy_text);
6143
0
#line 2677 "Zend/zend_language_scanner.l"
6144
0
    {
6145
0
  char *s;
6146
0
  unsigned char *saved_cursor;
6147
0
  int bprefix = (yytext[0] != '<') ? 1 : 0, spacing = 0, indentation = 0;
6148
0
  zend_heredoc_label *heredoc_label = emalloc(sizeof(zend_heredoc_label));
6149
0
  bool is_heredoc = 1;
6150
6151
0
  CG(zend_lineno)++;
6152
0
  heredoc_label->length = yyleng-bprefix-3-1-(yytext[yyleng-2]=='\r'?1:0);
6153
0
  s = yytext+bprefix+3;
6154
0
  while ((*s == ' ') || (*s == '\t')) {
6155
0
    s++;
6156
0
    heredoc_label->length--;
6157
0
  }
6158
6159
0
  if (*s == '\'') {
6160
0
    s++;
6161
0
    heredoc_label->length -= 2;
6162
0
    is_heredoc = 0;
6163
6164
0
    BEGIN(ST_NOWDOC);
6165
0
  } else {
6166
0
    if (*s == '"') {
6167
0
      s++;
6168
0
      heredoc_label->length -= 2;
6169
0
    }
6170
6171
0
    BEGIN(ST_HEREDOC);
6172
0
  }
6173
6174
0
  heredoc_label->label = estrndup(s, heredoc_label->length);
6175
0
  heredoc_label->indentation_uses_spaces = 0;
6176
0
  heredoc_label->indentation = 0;
6177
0
  saved_cursor = YYCURSOR;
6178
6179
0
  zend_ptr_stack_push(&SCNG(heredoc_label_stack), (void *) heredoc_label);
6180
6181
0
  while (YYCURSOR < YYLIMIT && (*YYCURSOR == ' ' || *YYCURSOR == '\t')) {
6182
0
    if (*YYCURSOR == '\t') {
6183
0
      spacing |= HEREDOC_USING_TABS;
6184
0
    } else {
6185
0
      spacing |= HEREDOC_USING_SPACES;
6186
0
    }
6187
0
    ++YYCURSOR;
6188
0
    ++indentation;
6189
0
  }
6190
6191
0
  if (YYCURSOR == YYLIMIT) {
6192
0
    YYCURSOR = saved_cursor;
6193
0
    RETURN_TOKEN(T_START_HEREDOC);
6194
0
  }
6195
6196
  /* Check for ending label on the next line */
6197
0
  if (heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, s, heredoc_label->length)) {
6198
0
    if (!IS_LABEL_SUCCESSOR(YYCURSOR[heredoc_label->length])) {
6199
0
      if (spacing == (HEREDOC_USING_SPACES | HEREDOC_USING_TABS)) {
6200
0
        zend_throw_exception(zend_ce_parse_error, "Invalid indentation - tabs and spaces cannot be mixed", 0);
6201
0
        if (PARSER_MODE()) {
6202
0
          RETURN_TOKEN(T_ERROR);
6203
0
        }
6204
0
      }
6205
6206
0
      YYCURSOR = saved_cursor;
6207
0
      heredoc_label->indentation = indentation;
6208
6209
0
      BEGIN(ST_END_HEREDOC);
6210
0
      RETURN_TOKEN(T_START_HEREDOC);
6211
0
    }
6212
0
  }
6213
6214
0
  YYCURSOR = saved_cursor;
6215
6216
0
  if (is_heredoc && !SCNG(heredoc_scan_ahead)) {
6217
0
    zend_lex_state current_state;
6218
0
    zend_string *saved_doc_comment = CG(doc_comment);
6219
0
    int heredoc_nesting_level = 1;
6220
0
    int first_token = 0;
6221
0
    int error = 0;
6222
6223
0
    zend_save_lexical_state(&current_state);
6224
6225
0
    SCNG(heredoc_scan_ahead) = 1;
6226
0
    SCNG(heredoc_indentation) = 0;
6227
0
    SCNG(heredoc_indentation_uses_spaces) = 0;
6228
0
    SCNG(on_event_context) = NULL;
6229
0
    LANG_SCNG(on_event) = NULL;
6230
0
    CG(doc_comment) = NULL;
6231
6232
0
    zend_ptr_stack_reverse_apply(&current_state.heredoc_label_stack, copy_heredoc_label_stack);
6233
6234
0
    zend_object *prev_exception = EG(exception);
6235
0
    EG(exception) = NULL;
6236
0
    while (heredoc_nesting_level) {
6237
0
      zval zv;
6238
0
      int retval;
6239
6240
0
      ZVAL_UNDEF(&zv);
6241
0
      retval = lex_scan(&zv, NULL);
6242
0
      zval_ptr_dtor_nogc(&zv);
6243
6244
0
      if (EG(exception)) {
6245
0
        zend_clear_exception();
6246
0
        break;
6247
0
      }
6248
6249
0
      if (!first_token) {
6250
0
        first_token = retval;
6251
0
      }
6252
6253
0
      switch (retval) {
6254
0
        case T_START_HEREDOC:
6255
0
          ++heredoc_nesting_level;
6256
0
          break;
6257
0
        case T_END_HEREDOC:
6258
0
          --heredoc_nesting_level;
6259
0
          break;
6260
0
        case END:
6261
0
          heredoc_nesting_level = 0;
6262
0
      }
6263
0
    }
6264
0
    EG(exception) = prev_exception;
6265
6266
0
    if (
6267
0
        (first_token == T_VARIABLE
6268
0
         || first_token == T_DOLLAR_OPEN_CURLY_BRACES
6269
0
         || first_token == T_CURLY_OPEN
6270
0
        ) && SCNG(heredoc_indentation)) {
6271
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));
6272
0
      error = 1;
6273
0
    }
6274
6275
0
    heredoc_label->indentation = SCNG(heredoc_indentation);
6276
0
    heredoc_label->indentation_uses_spaces = SCNG(heredoc_indentation_uses_spaces);
6277
6278
0
    zend_restore_lexical_state(&current_state);
6279
0
    SCNG(heredoc_scan_ahead) = 0;
6280
0
    CG(increment_lineno) = 0;
6281
0
    CG(doc_comment) = saved_doc_comment;
6282
6283
0
    if (PARSER_MODE() && error) {
6284
0
      RETURN_TOKEN(T_ERROR);
6285
0
    }
6286
0
  }
6287
6288
0
  RETURN_TOKEN(T_START_HEREDOC);
6289
0
}
6290
0
#line 6291 "Zend/zend_language_scanner.c"
6291
0
yy468:
6292
0
    YYDEBUG(468, *YYCURSOR);
6293
0
    yych = *++YYCURSOR;
6294
0
    if (yych == '\n') goto yy466;
6295
0
    goto yy467;
6296
0
yy469:
6297
0
    YYDEBUG(469, *YYCURSOR);
6298
0
    yyaccept = 4;
6299
0
    yych = *(YYMARKER = ++YYCURSOR);
6300
0
    if (yych == 'A') goto yy570;
6301
0
    if (yych == 'a') goto yy570;
6302
0
    goto yy48;
6303
0
yy470:
6304
0
    YYDEBUG(470, *YYCURSOR);
6305
0
    yyaccept = 34;
6306
0
    yych = *(YYMARKER = ++YYCURSOR);
6307
0
    if (yybm[256+yych] & 128) {
6308
0
      goto yy47;
6309
0
    }
6310
0
    if (yych == '\\') goto yy164;
6311
0
yy471:
6312
0
    YYDEBUG(471, *YYCURSOR);
6313
0
    yyleng = YYCURSOR - SCNG(yy_text);
6314
0
#line 1817 "Zend/zend_language_scanner.l"
6315
0
    {
6316
0
  RETURN_TOKEN_WITH_IDENT(T_ARRAY);
6317
0
}
6318
0
#line 6319 "Zend/zend_language_scanner.c"
6319
0
yy472:
6320
0
    YYDEBUG(472, *YYCURSOR);
6321
0
    yyaccept = 35;
6322
0
    yych = *(YYMARKER = ++YYCURSOR);
6323
0
    if (yybm[256+yych] & 128) {
6324
0
      goto yy47;
6325
0
    }
6326
0
    if (yych == '\\') goto yy164;
6327
0
yy473:
6328
0
    YYDEBUG(473, *YYCURSOR);
6329
0
    yyleng = YYCURSOR - SCNG(yy_text);
6330
0
#line 1533 "Zend/zend_language_scanner.l"
6331
0
    {
6332
0
  RETURN_TOKEN_WITH_IDENT(T_BREAK);
6333
0
}
6334
0
#line 6335 "Zend/zend_language_scanner.c"
6335
0
yy474:
6336
0
    YYDEBUG(474, *YYCURSOR);
6337
0
    yyaccept = 4;
6338
0
    yych = *(YYMARKER = ++YYCURSOR);
6339
0
    if (yych == 'B') goto yy571;
6340
0
    if (yych == 'b') goto yy571;
6341
0
    goto yy48;
6342
0
yy475:
6343
0
    YYDEBUG(475, *YYCURSOR);
6344
0
    yyaccept = 36;
6345
0
    yych = *(YYMARKER = ++YYCURSOR);
6346
0
    if (yybm[256+yych] & 128) {
6347
0
      goto yy47;
6348
0
    }
6349
0
    if (yych == '\\') goto yy164;
6350
0
yy476:
6351
0
    YYDEBUG(476, *YYCURSOR);
6352
0
    yyleng = YYCURSOR - SCNG(yy_text);
6353
0
#line 1441 "Zend/zend_language_scanner.l"
6354
0
    {
6355
0
  RETURN_TOKEN_WITH_IDENT(T_CATCH);
6356
0
}
6357
0
#line 6358 "Zend/zend_language_scanner.c"
6358
0
yy477:
6359
0
    YYDEBUG(477, *YYCURSOR);
6360
0
    yyaccept = 37;
6361
0
    yych = *(YYMARKER = ++YYCURSOR);
6362
0
    if (yybm[256+yych] & 128) {
6363
0
      goto yy47;
6364
0
    }
6365
0
    if (yych == '\\') goto yy164;
6366
0
yy478:
6367
0
    YYDEBUG(478, *YYCURSOR);
6368
0
    yyleng = YYCURSOR - SCNG(yy_text);
6369
0
#line 1553 "Zend/zend_language_scanner.l"
6370
0
    {
6371
0
  RETURN_TOKEN_WITH_IDENT(T_CLASS);
6372
0
}
6373
0
#line 6374 "Zend/zend_language_scanner.c"
6374
0
yy479:
6375
0
    YYDEBUG(479, *YYCURSOR);
6376
0
    yyaccept = 38;
6377
0
    yych = *(YYMARKER = ++YYCURSOR);
6378
0
    if (yybm[256+yych] & 128) {
6379
0
      goto yy47;
6380
0
    }
6381
0
    if (yych == '\\') goto yy164;
6382
0
yy480:
6383
0
    YYDEBUG(480, *YYCURSOR);
6384
0
    yyleng = YYCURSOR - SCNG(yy_text);
6385
0
#line 1629 "Zend/zend_language_scanner.l"
6386
0
    {
6387
0
  RETURN_TOKEN_WITH_IDENT(T_CLONE);
6388
0
}
6389
0
#line 6390 "Zend/zend_language_scanner.c"
6390
0
yy481:
6391
0
    YYDEBUG(481, *YYCURSOR);
6392
0
    yyaccept = 39;
6393
0
    yych = *(YYMARKER = ++YYCURSOR);
6394
0
    if (yybm[256+yych] & 128) {
6395
0
      goto yy47;
6396
0
    }
6397
0
    if (yych == '\\') goto yy164;
6398
0
yy482:
6399
0
    YYDEBUG(482, *YYCURSOR);
6400
0
    yyleng = YYCURSOR - SCNG(yy_text);
6401
0
#line 1414 "Zend/zend_language_scanner.l"
6402
0
    {
6403
0
  RETURN_TOKEN_WITH_IDENT(T_CONST);
6404
0
}
6405
0
#line 6406 "Zend/zend_language_scanner.c"
6406
0
yy483:
6407
0
    YYDEBUG(483, *YYCURSOR);
6408
0
    yyaccept = 4;
6409
0
    yych = *(YYMARKER = ++YYCURSOR);
6410
0
    if (yych == 'N') goto yy572;
6411
0
    if (yych == 'n') goto yy572;
6412
0
    goto yy48;
6413
0
yy484:
6414
0
    YYDEBUG(484, *YYCURSOR);
6415
0
    yyaccept = 4;
6416
0
    yych = *(YYMARKER = ++YYCURSOR);
6417
0
    if (yych == 'R') goto yy573;
6418
0
    if (yych == 'r') goto yy573;
6419
0
    goto yy48;
6420
0
yy485:
6421
0
    YYDEBUG(485, *YYCURSOR);
6422
0
    yyaccept = 4;
6423
0
    yych = *(YYMARKER = ++YYCURSOR);
6424
0
    if (yych == 'L') goto yy574;
6425
0
    if (yych == 'l') goto yy574;
6426
0
    goto yy48;
6427
0
yy486:
6428
0
    YYDEBUG(486, *YYCURSOR);
6429
0
    yyaccept = 4;
6430
0
    yych = *(YYMARKER = ++YYCURSOR);
6431
0
    if (yych == 'F') goto yy575;
6432
0
    if (yych == 'f') goto yy575;
6433
0
    goto yy48;
6434
0
yy487:
6435
0
    YYDEBUG(487, *YYCURSOR);
6436
0
    yyaccept = 40;
6437
0
    yych = *(YYMARKER = ++YYCURSOR);
6438
0
    if (yybm[256+yych] & 128) {
6439
0
      goto yy47;
6440
0
    }
6441
0
    if (yych == '\\') goto yy164;
6442
0
yy488:
6443
0
    YYDEBUG(488, *YYCURSOR);
6444
0
    yyleng = YYCURSOR - SCNG(yy_text);
6445
0
#line 1757 "Zend/zend_language_scanner.l"
6446
0
    {
6447
0
  RETURN_TOKEN_WITH_IDENT(T_EMPTY);
6448
0
}
6449
0
#line 6450 "Zend/zend_language_scanner.c"
6450
0
yy489:
6451
0
    YYDEBUG(489, *YYCURSOR);
6452
0
    yyaccept = 4;
6453
0
    yych = *(YYMARKER = ++YYCURSOR);
6454
0
    if (yych == 'C') goto yy577;
6455
0
    if (yych == 'c') goto yy577;
6456
0
    goto yy48;
6457
0
yy490:
6458
0
    YYDEBUG(490, *YYCURSOR);
6459
0
    yyaccept = 4;
6460
0
    yych = *(YYMARKER = ++YYCURSOR);
6461
0
    if (yych == 'R') goto yy578;
6462
0
    if (yych == 'r') goto yy578;
6463
0
    goto yy48;
6464
0
yy491:
6465
0
    YYDEBUG(491, *YYCURSOR);
6466
0
    yyaccept = 41;
6467
0
    yych = *(YYMARKER = ++YYCURSOR);
6468
0
    if (yybm[256+yych] & 128) {
6469
0
      goto yy47;
6470
0
    }
6471
0
    if (yych == '\\') goto yy164;
6472
0
yy492:
6473
0
    YYDEBUG(492, *YYCURSOR);
6474
0
    yyleng = YYCURSOR - SCNG(yy_text);
6475
0
#line 1461 "Zend/zend_language_scanner.l"
6476
0
    {
6477
0
  RETURN_TOKEN_WITH_IDENT(T_ENDIF);
6478
0
}
6479
0
#line 6480 "Zend/zend_language_scanner.c"
6480
0
yy493:
6481
0
    YYDEBUG(493, *YYCURSOR);
6482
0
    yyaccept = 4;
6483
0
    yych = *(YYMARKER = ++YYCURSOR);
6484
0
    if (yych == 'I') goto yy580;
6485
0
    if (yych == 'i') goto yy580;
6486
0
    goto yy48;
6487
0
yy494:
6488
0
    YYDEBUG(494, *YYCURSOR);
6489
0
    yyaccept = 4;
6490
0
    yych = *(YYMARKER = ++YYCURSOR);
6491
0
    if (yych == 'I') goto yy581;
6492
0
    if (yych == 'i') goto yy581;
6493
0
    goto yy48;
6494
0
yy495:
6495
0
    YYDEBUG(495, *YYCURSOR);
6496
0
    ++YYCURSOR;
6497
0
    YYFILL(10);
6498
0
    yych = *YYCURSOR;
6499
0
    YYDEBUG(496, *YYCURSOR);
6500
0
    if (yych <= 'E') {
6501
0
      if (yych <= ' ') {
6502
0
        if (yych <= '\f') {
6503
0
          if (yych <= 0x08) goto yy86;
6504
0
          if (yych <= '\n') goto yy495;
6505
0
          goto yy86;
6506
0
        } else {
6507
0
          if (yych <= '\r') goto yy495;
6508
0
          if (yych <= 0x1F) goto yy86;
6509
0
          goto yy495;
6510
0
        }
6511
0
      } else {
6512
0
        if (yych <= '.') {
6513
0
          if (yych != '#') goto yy86;
6514
0
        } else {
6515
0
          if (yych <= '/') goto yy498;
6516
0
          if (yych <= '@') goto yy86;
6517
0
          if (yych <= 'D') goto yy582;
6518
0
          goto yy584;
6519
0
        }
6520
0
      }
6521
0
    } else {
6522
0
      if (yych <= '`') {
6523
0
        if (yych <= 'Z') {
6524
0
          if (yych == 'I') goto yy585;
6525
0
          goto yy582;
6526
0
        } else {
6527
0
          if (yych == '_') goto yy582;
6528
0
          goto yy86;
6529
0
        }
6530
0
      } else {
6531
0
        if (yych <= 'h') {
6532
0
          if (yych == 'e') goto yy584;
6533
0
          goto yy582;
6534
0
        } else {
6535
0
          if (yych <= 'i') goto yy585;
6536
0
          if (yych <= 'z') goto yy582;
6537
0
          if (yych <= 0x7F) goto yy86;
6538
0
          goto yy582;
6539
0
        }
6540
0
      }
6541
0
    }
6542
0
yy497:
6543
0
    YYDEBUG(497, *YYCURSOR);
6544
0
    ++YYCURSOR;
6545
0
    YYFILL(1);
6546
0
    yych = *YYCURSOR;
6547
0
    if (yych <= '\f') {
6548
0
      if (yych <= 0x00) goto yy86;
6549
0
      if (yych == '\n') goto yy588;
6550
0
      goto yy586;
6551
0
    } else {
6552
0
      if (yych <= '\r') goto yy588;
6553
0
      if (yych == '[') goto yy86;
6554
0
      goto yy586;
6555
0
    }
6556
0
yy498:
6557
0
    YYDEBUG(498, *YYCURSOR);
6558
0
    ++YYCURSOR;
6559
0
    YYFILL(1);
6560
0
    yych = *YYCURSOR;
6561
0
    if (yych == '*') goto yy590;
6562
0
    if (yych == '/') goto yy586;
6563
0
    goto yy86;
6564
0
yy499:
6565
0
    YYDEBUG(499, *YYCURSOR);
6566
0
    yyaccept = 4;
6567
0
    yych = *(YYMARKER = ++YYCURSOR);
6568
0
    if (yych == 'D') goto yy592;
6569
0
    if (yych == 'd') goto yy592;
6570
0
    goto yy48;
6571
0
yy500:
6572
0
    YYDEBUG(500, *YYCURSOR);
6573
0
    yyaccept = 42;
6574
0
    yych = *(YYMARKER = ++YYCURSOR);
6575
0
    if (yych <= '\\') {
6576
0
      if (yych <= 'K') {
6577
0
        if (yych <= '/') goto yy501;
6578
0
        if (yych <= '9') goto yy47;
6579
0
        if (yych >= 'A') goto yy47;
6580
0
      } else {
6581
0
        if (yych <= 'L') goto yy593;
6582
0
        if (yych <= 'Z') goto yy47;
6583
0
        if (yych >= '\\') goto yy164;
6584
0
      }
6585
0
    } else {
6586
0
      if (yych <= 'k') {
6587
0
        if (yych == '_') goto yy47;
6588
0
        if (yych >= 'a') goto yy47;
6589
0
      } else {
6590
0
        if (yych <= 'l') goto yy593;
6591
0
        if (yych <= 'z') goto yy47;
6592
0
        if (yych >= 0x80) goto yy47;
6593
0
      }
6594
0
    }
6595
0
yy501:
6596
0
    YYDEBUG(501, *YYCURSOR);
6597
0
    yyleng = YYCURSOR - SCNG(yy_text);
6598
0
#line 1773 "Zend/zend_language_scanner.l"
6599
0
    {
6600
0
  RETURN_TOKEN_WITH_IDENT(T_FINAL);
6601
0
}
6602
0
#line 6603 "Zend/zend_language_scanner.c"
6603
0
yy502:
6604
0
    YYDEBUG(502, *YYCURSOR);
6605
0
    yyaccept = 4;
6606
0
    yych = *(YYMARKER = ++YYCURSOR);
6607
0
    if (yych == 'C') goto yy594;
6608
0
    if (yych == 'c') goto yy594;
6609
0
    goto yy48;
6610
0
yy503:
6611
0
    YYDEBUG(503, *YYCURSOR);
6612
0
    yyaccept = 4;
6613
0
    yych = *(YYMARKER = ++YYCURSOR);
6614
0
    if (yych == 'I') goto yy595;
6615
0
    if (yych == 'i') goto yy595;
6616
0
    goto yy48;
6617
0
yy504:
6618
0
    YYDEBUG(504, *YYCURSOR);
6619
0
    yyaccept = 4;
6620
0
    yych = *(YYMARKER = ++YYCURSOR);
6621
0
    if (yych == 'L') goto yy596;
6622
0
    if (yych == 'l') goto yy596;
6623
0
    goto yy48;
6624
0
yy505:
6625
0
    YYDEBUG(505, *YYCURSOR);
6626
0
    yyaccept = 4;
6627
0
    yych = *(YYMARKER = ++YYCURSOR);
6628
0
    if (yych == 'M') goto yy598;
6629
0
    if (yych == 'm') goto yy598;
6630
0
    goto yy48;
6631
0
yy506:
6632
0
    YYDEBUG(506, *YYCURSOR);
6633
0
    yyaccept = 4;
6634
0
    yych = *(YYMARKER = ++YYCURSOR);
6635
0
    if (yych == 'D') goto yy599;
6636
0
    if (yych == 'd') goto yy599;
6637
0
    goto yy48;
6638
0
yy507:
6639
0
    YYDEBUG(507, *YYCURSOR);
6640
0
    yyaccept = 4;
6641
0
    yych = *(YYMARKER = ++YYCURSOR);
6642
0
    if (yych == 'N') goto yy600;
6643
0
    if (yych == 'n') goto yy600;
6644
0
    goto yy48;
6645
0
yy508:
6646
0
    YYDEBUG(508, *YYCURSOR);
6647
0
    yyaccept = 4;
6648
0
    yych = *(YYMARKER = ++YYCURSOR);
6649
0
    if (yych == 'A') goto yy601;
6650
0
    if (yych == 'a') goto yy601;
6651
0
    goto yy48;
6652
0
yy509:
6653
0
    YYDEBUG(509, *YYCURSOR);
6654
0
    yyaccept = 4;
6655
0
    yych = *(YYMARKER = ++YYCURSOR);
6656
0
    if (yych == 'F') goto yy602;
6657
0
    if (yych == 'f') goto yy602;
6658
0
    goto yy48;
6659
0
yy510:
6660
0
    YYDEBUG(510, *YYCURSOR);
6661
0
    yyaccept = 43;
6662
0
    yych = *(YYMARKER = ++YYCURSOR);
6663
0
    if (yybm[256+yych] & 128) {
6664
0
      goto yy47;
6665
0
    }
6666
0
    if (yych == '\\') goto yy164;
6667
0
yy511:
6668
0
    YYDEBUG(511, *YYCURSOR);
6669
0
    yyleng = YYCURSOR - SCNG(yy_text);
6670
0
#line 1753 "Zend/zend_language_scanner.l"
6671
0
    {
6672
0
  RETURN_TOKEN_WITH_IDENT(T_ISSET);
6673
0
}
6674
0
#line 6675 "Zend/zend_language_scanner.c"
6675
0
yy512:
6676
0
    YYDEBUG(512, *YYCURSOR);
6677
0
    yyaccept = 44;
6678
0
    yych = *(YYMARKER = ++YYCURSOR);
6679
0
    if (yybm[256+yych] & 128) {
6680
0
      goto yy47;
6681
0
    }
6682
0
    if (yych == '\\') goto yy164;
6683
0
yy513:
6684
0
    YYDEBUG(513, *YYCURSOR);
6685
0
    yyleng = YYCURSOR - SCNG(yy_text);
6686
0
#line 1517 "Zend/zend_language_scanner.l"
6687
0
    {
6688
0
  RETURN_TOKEN_WITH_IDENT(T_MATCH);
6689
0
}
6690
0
#line 6691 "Zend/zend_language_scanner.c"
6691
0
yy514:
6692
0
    YYDEBUG(514, *YYCURSOR);
6693
0
    yyaccept = 4;
6694
0
    yych = *(YYMARKER = ++YYCURSOR);
6695
0
    if (yych == 'P') goto yy603;
6696
0
    if (yych == 'p') goto yy603;
6697
0
    goto yy48;
6698
0
yy515:
6699
0
    YYDEBUG(515, *YYCURSOR);
6700
0
    yyaccept = 45;
6701
0
    yych = *(YYMARKER = ++YYCURSOR);
6702
0
    if (yybm[256+yych] & 128) {
6703
0
      goto yy47;
6704
0
    }
6705
0
    if (yych == '\\') goto yy164;
6706
0
yy516:
6707
0
    YYDEBUG(516, *YYCURSOR);
6708
0
    yyleng = YYCURSOR - SCNG(yy_text);
6709
0
#line 1549 "Zend/zend_language_scanner.l"
6710
0
    {
6711
0
  RETURN_TOKEN_WITH_IDENT(T_PRINT);
6712
0
}
6713
0
#line 6714 "Zend/zend_language_scanner.c"
6714
0
yy517:
6715
0
    YYDEBUG(517, *YYCURSOR);
6716
0
    yyaccept = 4;
6717
0
    yych = *(YYMARKER = ++YYCURSOR);
6718
0
    if (yych == 'T') goto yy604;
6719
0
    if (yych == 't') goto yy604;
6720
0
    goto yy48;
6721
0
yy518:
6722
0
    YYDEBUG(518, *YYCURSOR);
6723
0
    yyaccept = 4;
6724
0
    yych = *(YYMARKER = ++YYCURSOR);
6725
0
    if (yych == 'C') goto yy605;
6726
0
    if (yych == 'c') goto yy605;
6727
0
    goto yy48;
6728
0
yy519:
6729
0
    YYDEBUG(519, *YYCURSOR);
6730
0
    yyaccept = 4;
6731
0
    yych = *(YYMARKER = ++YYCURSOR);
6732
0
    if (yych == 'C') goto yy606;
6733
0
    if (yych == 'c') goto yy606;
6734
0
    goto yy48;
6735
0
yy520:
6736
0
    YYDEBUG(520, *YYCURSOR);
6737
0
    yyaccept = 4;
6738
0
    yych = *(YYMARKER = ++YYCURSOR);
6739
0
    if (yych == 'N') goto yy608;
6740
0
    if (yych == 'n') goto yy608;
6741
0
    goto yy48;
6742
0
yy521:
6743
0
    YYDEBUG(521, *YYCURSOR);
6744
0
    yyaccept = 4;
6745
0
    yych = *(YYMARKER = ++YYCURSOR);
6746
0
    if (yych == 'R') goto yy609;
6747
0
    if (yych == 'r') goto yy609;
6748
0
    goto yy48;
6749
0
yy522:
6750
0
    YYDEBUG(522, *YYCURSOR);
6751
0
    yyaccept = 4;
6752
0
    yych = *(YYMARKER = ++YYCURSOR);
6753
0
    if (yych == 'N') goto yy610;
6754
0
    if (yych == 'n') goto yy610;
6755
0
    goto yy48;
6756
0
yy523:
6757
0
    YYDEBUG(523, *YYCURSOR);
6758
0
    yyaccept = 4;
6759
0
    yych = *(YYMARKER = ++YYCURSOR);
6760
0
    if (yych == 'C') goto yy612;
6761
0
    if (yych == 'c') goto yy612;
6762
0
    goto yy48;
6763
0
yy524:
6764
0
    YYDEBUG(524, *YYCURSOR);
6765
0
    yyaccept = 4;
6766
0
    yych = *(YYMARKER = ++YYCURSOR);
6767
0
    if (yych == 'H') goto yy614;
6768
0
    if (yych == 'h') goto yy614;
6769
0
    goto yy48;
6770
0
yy525:
6771
0
    YYDEBUG(525, *YYCURSOR);
6772
0
    yyaccept = 46;
6773
0
    yych = *(YYMARKER = ++YYCURSOR);
6774
0
    if (yybm[256+yych] & 128) {
6775
0
      goto yy47;
6776
0
    }
6777
0
    if (yych == '\\') goto yy164;
6778
0
yy526:
6779
0
    YYDEBUG(526, *YYCURSOR);
6780
0
    yyleng = YYCURSOR - SCNG(yy_text);
6781
0
#line 1449 "Zend/zend_language_scanner.l"
6782
0
    {
6783
0
  RETURN_TOKEN_WITH_IDENT(T_THROW);
6784
0
}
6785
0
#line 6786 "Zend/zend_language_scanner.c"
6786
0
yy527:
6787
0
    YYDEBUG(527, *YYCURSOR);
6788
0
    yyaccept = 47;
6789
0
    yych = *(YYMARKER = ++YYCURSOR);
6790
0
    if (yybm[256+yych] & 128) {
6791
0
      goto yy47;
6792
0
    }
6793
0
    if (yych == '\\') goto yy164;
6794
0
yy528:
6795
0
    YYDEBUG(528, *YYCURSOR);
6796
0
    yyleng = YYCURSOR - SCNG(yy_text);
6797
0
#line 1561 "Zend/zend_language_scanner.l"
6798
0
    {
6799
0
  RETURN_TOKEN_WITH_IDENT(T_TRAIT);
6800
0
}
6801
0
#line 6802 "Zend/zend_language_scanner.c"
6802
0
yy529:
6803
0
    YYDEBUG(529, *YYCURSOR);
6804
0
    yyaccept = 48;
6805
0
    yych = *(YYMARKER = ++YYCURSOR);
6806
0
    if (yybm[256+yych] & 128) {
6807
0
      goto yy47;
6808
0
    }
6809
0
    if (yych == '\\') goto yy164;
6810
0
yy530:
6811
0
    YYDEBUG(530, *YYCURSOR);
6812
0
    yyleng = YYCURSOR - SCNG(yy_text);
6813
0
#line 1805 "Zend/zend_language_scanner.l"
6814
0
    {
6815
0
  RETURN_TOKEN_WITH_IDENT(T_UNSET);
6816
0
}
6817
0
#line 6818 "Zend/zend_language_scanner.c"
6818
0
yy531:
6819
0
    YYDEBUG(531, *YYCURSOR);
6820
0
    yyaccept = 49;
6821
0
    yych = *(YYMARKER = ++YYCURSOR);
6822
0
    if (yybm[256+yych] & 128) {
6823
0
      goto yy47;
6824
0
    }
6825
0
    if (yych == '\\') goto yy164;
6826
0
yy532:
6827
0
    YYDEBUG(532, *YYCURSOR);
6828
0
    yyleng = YYCURSOR - SCNG(yy_text);
6829
0
#line 1469 "Zend/zend_language_scanner.l"
6830
0
    {
6831
0
  RETURN_TOKEN_WITH_IDENT(T_WHILE);
6832
0
}
6833
0
#line 6834 "Zend/zend_language_scanner.c"
6834
0
yy533:
6835
0
    YYDEBUG(533, *YYCURSOR);
6836
0
    yyaccept = 50;
6837
0
    yych = *(YYMARKER = ++YYCURSOR);
6838
0
    if (yybm[256+yych] & 128) {
6839
0
      goto yy47;
6840
0
    }
6841
0
    if (yych <= ' ') {
6842
0
      if (yych <= '\f') {
6843
0
        if (yych <= 0x08) goto yy534;
6844
0
        if (yych <= '\n') goto yy616;
6845
0
      } else {
6846
0
        if (yych <= '\r') goto yy616;
6847
0
        if (yych >= ' ') goto yy616;
6848
0
      }
6849
0
    } else {
6850
0
      if (yych <= '.') {
6851
0
        if (yych == '#') goto yy618;
6852
0
      } else {
6853
0
        if (yych <= '/') goto yy619;
6854
0
        if (yych == '\\') goto yy164;
6855
0
      }
6856
0
    }
6857
0
yy534:
6858
0
    YYDEBUG(534, *YYCURSOR);
6859
0
    yyleng = YYCURSOR - SCNG(yy_text);
6860
0
#line 1433 "Zend/zend_language_scanner.l"
6861
0
    {
6862
0
  RETURN_TOKEN_WITH_IDENT(T_YIELD);
6863
0
}
6864
0
#line 6865 "Zend/zend_language_scanner.c"
6865
0
yy535:
6866
0
    YYDEBUG(535, *YYCURSOR);
6867
0
    yyaccept = 4;
6868
0
    yych = *(YYMARKER = ++YYCURSOR);
6869
0
    if (yych == 'S') goto yy620;
6870
0
    if (yych == 's') goto yy620;
6871
0
    goto yy48;
6872
0
yy536:
6873
0
    YYDEBUG(536, *YYCURSOR);
6874
0
    yyaccept = 4;
6875
0
    yych = *(YYMARKER = ++YYCURSOR);
6876
0
    if (yych == '_') goto yy621;
6877
0
    goto yy48;
6878
0
yy537:
6879
0
    YYDEBUG(537, *YYCURSOR);
6880
0
    yyaccept = 4;
6881
0
    yych = *(YYMARKER = ++YYCURSOR);
6882
0
    if (yych == 'E') goto yy622;
6883
0
    if (yych == 'e') goto yy622;
6884
0
    goto yy48;
6885
0
yy538:
6886
0
    YYDEBUG(538, *YYCURSOR);
6887
0
    yyaccept = 4;
6888
0
    yych = *(YYMARKER = ++YYCURSOR);
6889
0
    if (yych == 'C') goto yy623;
6890
0
    if (yych == 'c') goto yy623;
6891
0
    goto yy48;
6892
0
yy539:
6893
0
    YYDEBUG(539, *YYCURSOR);
6894
0
    yyaccept = 4;
6895
0
    yych = *(YYMARKER = ++YYCURSOR);
6896
0
    if (yych == 'T') goto yy624;
6897
0
    if (yych == 't') goto yy624;
6898
0
    goto yy48;
6899
0
yy540:
6900
0
    YYDEBUG(540, *YYCURSOR);
6901
0
    yyaccept = 4;
6902
0
    yych = *(YYMARKER = ++YYCURSOR);
6903
0
    if (yych == 'E') goto yy625;
6904
0
    if (yych == 'e') goto yy625;
6905
0
    goto yy48;
6906
0
yy541:
6907
0
    YYDEBUG(541, *YYCURSOR);
6908
0
    yyaccept = 4;
6909
0
    yych = *(YYMARKER = ++YYCURSOR);
6910
0
    if (yych == 'H') goto yy626;
6911
0
    if (yych == 'h') goto yy626;
6912
0
    goto yy48;
6913
0
yy542:
6914
0
    YYDEBUG(542, *YYCURSOR);
6915
0
    yyaccept = 4;
6916
0
    yych = *(YYMARKER = ++YYCURSOR);
6917
0
    if (yych == 'E') goto yy627;
6918
0
    if (yych == 'e') goto yy627;
6919
0
    goto yy48;
6920
0
yy543:
6921
0
    YYDEBUG(543, *YYCURSOR);
6922
0
    yyaccept = 4;
6923
0
    yych = *(YYMARKER = ++YYCURSOR);
6924
0
    if (yych == 'P') goto yy628;
6925
0
    if (yych == 'p') goto yy628;
6926
0
    goto yy48;
6927
0
yy544:
6928
0
    YYDEBUG(544, *YYCURSOR);
6929
0
    yyaccept = 4;
6930
0
    yych = *(YYMARKER = ++YYCURSOR);
6931
0
    if (yych == 'I') goto yy629;
6932
0
    if (yych == 'i') goto yy629;
6933
0
    goto yy48;
6934
0
yy545:
6935
0
    YYDEBUG(545, *YYCURSOR);
6936
0
    ++YYCURSOR;
6937
0
    YYFILL(1);
6938
0
    yych = *YYCURSOR;
6939
0
    YYDEBUG(546, *YYCURSOR);
6940
0
    if (yybm[0+yych] & 64) {
6941
0
      goto yy355;
6942
0
    }
6943
0
    if (yych <= ' ') {
6944
0
      if (yych <= '\n') {
6945
0
        if (yych <= 0x00) goto yy86;
6946
0
        if (yych <= 0x08) goto yy230;
6947
0
        goto yy545;
6948
0
      } else {
6949
0
        if (yych == '\r') goto yy545;
6950
0
        if (yych <= 0x1F) goto yy230;
6951
0
        goto yy545;
6952
0
      }
6953
0
    } else {
6954
0
      if (yych <= '$') {
6955
0
        if (yych <= '"') goto yy230;
6956
0
        if (yych <= '#') goto yy630;
6957
0
        goto yy631;
6958
0
      } else {
6959
0
        if (yych <= '-') goto yy230;
6960
0
        if (yych <= '.') goto yy632;
6961
0
        if (yych <= '/') goto yy633;
6962
0
        goto yy230;
6963
0
      }
6964
0
    }
6965
0
yy547:
6966
0
    YYDEBUG(547, *YYCURSOR);
6967
0
    ++YYCURSOR;
6968
0
    YYFILL(1);
6969
0
    yych = *YYCURSOR;
6970
0
    YYDEBUG(548, *YYCURSOR);
6971
0
    if (yych <= '\r') {
6972
0
      if (yych <= '\t') {
6973
0
        if (yych <= 0x00) goto yy86;
6974
0
        goto yy443;
6975
0
      } else {
6976
0
        if (yych <= '\n') goto yy545;
6977
0
        if (yych <= '\f') goto yy443;
6978
0
        goto yy545;
6979
0
      }
6980
0
    } else {
6981
0
      if (yych <= '*') {
6982
0
        if (yych <= ')') goto yy443;
6983
0
        goto yy547;
6984
0
      } else {
6985
0
        if (yych == '/') goto yy227;
6986
0
        goto yy443;
6987
0
      }
6988
0
    }
6989
0
yy549:
6990
0
    YYDEBUG(549, *YYCURSOR);
6991
0
    ++YYCURSOR;
6992
0
    YYFILL(1);
6993
0
    yych = *YYCURSOR;
6994
0
    YYDEBUG(550, *YYCURSOR);
6995
0
    if (yych <= 0x1F) {
6996
0
      if (yych == '\t') goto yy549;
6997
0
      goto yy86;
6998
0
    } else {
6999
0
      if (yych <= ' ') goto yy549;
7000
0
      if (yych == ')') goto yy634;
7001
0
      goto yy86;
7002
0
    }
7003
0
yy551:
7004
0
    YYDEBUG(551, *YYCURSOR);
7005
0
    yych = *++YYCURSOR;
7006
0
    if (yych == 'Y') goto yy636;
7007
0
    if (yych == 'y') goto yy636;
7008
0
    goto yy86;
7009
0
yy552:
7010
0
    YYDEBUG(552, *YYCURSOR);
7011
0
    ++YYCURSOR;
7012
0
    YYFILL(1);
7013
0
    yych = *YYCURSOR;
7014
0
yy553:
7015
0
    YYDEBUG(553, *YYCURSOR);
7016
0
    if (yych <= 0x1F) {
7017
0
      if (yych == '\t') goto yy552;
7018
0
      goto yy86;
7019
0
    } else {
7020
0
      if (yych <= ' ') goto yy552;
7021
0
      if (yych != ')') goto yy86;
7022
0
    }
7023
0
    YYDEBUG(554, *YYCURSOR);
7024
0
    ++YYCURSOR;
7025
0
    YYDEBUG(555, *YYCURSOR);
7026
0
    yyleng = YYCURSOR - SCNG(yy_text);
7027
0
#line 1695 "Zend/zend_language_scanner.l"
7028
0
    {
7029
0
  RETURN_TOKEN(T_BOOL_CAST);
7030
0
}
7031
0
#line 7032 "Zend/zend_language_scanner.c"
7032
0
yy556:
7033
0
    YYDEBUG(556, *YYCURSOR);
7034
0
    yych = *++YYCURSOR;
7035
0
    if (yych == 'A') goto yy638;
7036
0
    if (yych == 'a') goto yy638;
7037
0
    goto yy86;
7038
0
yy557:
7039
0
    YYDEBUG(557, *YYCURSOR);
7040
0
    yych = *++YYCURSOR;
7041
0
    if (yych == 'E') goto yy639;
7042
0
    if (yych == 'e') goto yy639;
7043
0
    goto yy86;
7044
0
yy558:
7045
0
    YYDEBUG(558, *YYCURSOR);
7046
0
    ++YYCURSOR;
7047
0
    YYFILL(1);
7048
0
    yych = *YYCURSOR;
7049
0
    YYDEBUG(559, *YYCURSOR);
7050
0
    if (yych <= 0x1F) {
7051
0
      if (yych == '\t') goto yy558;
7052
0
      goto yy86;
7053
0
    } else {
7054
0
      if (yych <= ' ') goto yy558;
7055
0
      if (yych == ')') goto yy641;
7056
0
      goto yy86;
7057
0
    }
7058
0
yy560:
7059
0
    YYDEBUG(560, *YYCURSOR);
7060
0
    yych = *++YYCURSOR;
7061
0
    if (yych == 'E') goto yy643;
7062
0
    if (yych == 'e') goto yy643;
7063
0
    goto yy86;
7064
0
yy561:
7065
0
    YYDEBUG(561, *YYCURSOR);
7066
0
    yych = *++YYCURSOR;
7067
0
    if (yych == 'T') goto yy644;
7068
0
    if (yych == 't') goto yy644;
7069
0
    goto yy86;
7070
0
yy562:
7071
0
    YYDEBUG(562, *YYCURSOR);
7072
0
    ++YYCURSOR;
7073
0
    YYDEBUG(563, *YYCURSOR);
7074
0
    yyleng = YYCURSOR - SCNG(yy_text);
7075
0
#line 1665 "Zend/zend_language_scanner.l"
7076
0
    {
7077
0
  if (PARSER_MODE()) {
7078
0
    zend_throw_exception(zend_ce_parse_error, "The (real) cast has been removed, use (float) instead", 0);
7079
0
    RETURN_TOKEN(T_ERROR);
7080
0
  }
7081
0
  RETURN_TOKEN(T_DOUBLE_CAST);
7082
0
}
7083
0
#line 7084 "Zend/zend_language_scanner.c"
7084
0
yy564:
7085
0
    YYDEBUG(564, *YYCURSOR);
7086
0
    yych = *++YYCURSOR;
7087
0
    if (yych == 'G') goto yy646;
7088
0
    if (yych == 'g') goto yy646;
7089
0
    goto yy86;
7090
0
yy565:
7091
0
    YYDEBUG(565, *YYCURSOR);
7092
0
    ++YYCURSOR;
7093
0
    YYFILL(1);
7094
0
    yych = *YYCURSOR;
7095
0
    YYDEBUG(566, *YYCURSOR);
7096
0
    if (yych <= 0x1F) {
7097
0
      if (yych == '\t') goto yy565;
7098
0
      goto yy86;
7099
0
    } else {
7100
0
      if (yych <= ' ') goto yy565;
7101
0
      if (yych == ')') goto yy648;
7102
0
      goto yy86;
7103
0
    }
7104
0
yy567:
7105
0
    YYDEBUG(567, *YYCURSOR);
7106
0
    ++YYCURSOR;
7107
0
    YYDEBUG(568, *YYCURSOR);
7108
0
    yyleng = YYCURSOR - SCNG(yy_text);
7109
0
#line 1713 "Zend/zend_language_scanner.l"
7110
0
    {
7111
0
  RETURN_TOKEN(T_VOID_CAST);
7112
0
}
7113
0
#line 7114 "Zend/zend_language_scanner.c"
7114
0
yy569:
7115
0
    YYDEBUG(569, *YYCURSOR);
7116
0
    yych = *++YYCURSOR;
7117
0
    if (yych == '\n') goto yy466;
7118
0
    if (yych == '\r') goto yy468;
7119
0
    goto yy86;
7120
0
yy570:
7121
0
    YYDEBUG(570, *YYCURSOR);
7122
0
    yyaccept = 4;
7123
0
    yych = *(YYMARKER = ++YYCURSOR);
7124
0
    if (yych == 'C') goto yy650;
7125
0
    if (yych == 'c') goto yy650;
7126
0
    goto yy48;
7127
0
yy571:
7128
0
    YYDEBUG(571, *YYCURSOR);
7129
0
    yyaccept = 4;
7130
0
    yych = *(YYMARKER = ++YYCURSOR);
7131
0
    if (yych == 'L') goto yy651;
7132
0
    if (yych == 'l') goto yy651;
7133
0
    goto yy48;
7134
0
yy572:
7135
0
    YYDEBUG(572, *YYCURSOR);
7136
0
    yyaccept = 4;
7137
0
    yych = *(YYMARKER = ++YYCURSOR);
7138
0
    if (yych == 'U') goto yy652;
7139
0
    if (yych == 'u') goto yy652;
7140
0
    goto yy48;
7141
0
yy573:
7142
0
    YYDEBUG(573, *YYCURSOR);
7143
0
    yyaccept = 4;
7144
0
    yych = *(YYMARKER = ++YYCURSOR);
7145
0
    if (yych == 'E') goto yy653;
7146
0
    if (yych == 'e') goto yy653;
7147
0
    goto yy48;
7148
0
yy574:
7149
0
    YYDEBUG(574, *YYCURSOR);
7150
0
    yyaccept = 4;
7151
0
    yych = *(YYMARKER = ++YYCURSOR);
7152
0
    if (yych == 'T') goto yy655;
7153
0
    if (yych == 't') goto yy655;
7154
0
    goto yy48;
7155
0
yy575:
7156
0
    YYDEBUG(575, *YYCURSOR);
7157
0
    yyaccept = 51;
7158
0
    yych = *(YYMARKER = ++YYCURSOR);
7159
0
    if (yybm[256+yych] & 128) {
7160
0
      goto yy47;
7161
0
    }
7162
0
    if (yych == '\\') goto yy164;
7163
0
yy576:
7164
0
    YYDEBUG(576, *YYCURSOR);
7165
0
    yyleng = YYCURSOR - SCNG(yy_text);
7166
0
#line 1457 "Zend/zend_language_scanner.l"
7167
0
    {
7168
0
  RETURN_TOKEN_WITH_IDENT(T_ELSEIF);
7169
0
}
7170
0
#line 7171 "Zend/zend_language_scanner.c"
7171
0
yy577:
7172
0
    YYDEBUG(577, *YYCURSOR);
7173
0
    yyaccept = 4;
7174
0
    yych = *(YYMARKER = ++YYCURSOR);
7175
0
    if (yych == 'L') goto yy657;
7176
0
    if (yych == 'l') goto yy657;
7177
0
    goto yy48;
7178
0
yy578:
7179
0
    YYDEBUG(578, *YYCURSOR);
7180
0
    yyaccept = 52;
7181
0
    yych = *(YYMARKER = ++YYCURSOR);
7182
0
    if (yych <= '\\') {
7183
0
      if (yych <= 'D') {
7184
0
        if (yych <= '/') goto yy579;
7185
0
        if (yych <= '9') goto yy47;
7186
0
        if (yych >= 'A') goto yy47;
7187
0
      } else {
7188
0
        if (yych <= 'E') goto yy658;
7189
0
        if (yych <= 'Z') goto yy47;
7190
0
        if (yych >= '\\') goto yy164;
7191
0
      }
7192
0
    } else {
7193
0
      if (yych <= 'd') {
7194
0
        if (yych == '_') goto yy47;
7195
0
        if (yych >= 'a') goto yy47;
7196
0
      } else {
7197
0
        if (yych <= 'e') goto yy658;
7198
0
        if (yych <= 'z') goto yy47;
7199
0
        if (yych >= 0x80) goto yy47;
7200
0
      }
7201
0
    }
7202
0
yy579:
7203
0
    YYDEBUG(579, *YYCURSOR);
7204
0
    yyleng = YYCURSOR - SCNG(yy_text);
7205
0
#line 1485 "Zend/zend_language_scanner.l"
7206
0
    {
7207
0
  RETURN_TOKEN_WITH_IDENT(T_ENDFOR);
7208
0
}
7209
0
#line 7210 "Zend/zend_language_scanner.c"
7210
0
yy580:
7211
0
    YYDEBUG(580, *YYCURSOR);
7212
0
    yyaccept = 4;
7213
0
    yych = *(YYMARKER = ++YYCURSOR);
7214
0
    if (yych == 'T') goto yy659;
7215
0
    if (yych == 't') goto yy659;
7216
0
    goto yy48;
7217
0
yy581:
7218
0
    YYDEBUG(581, *YYCURSOR);
7219
0
    yyaccept = 4;
7220
0
    yych = *(YYMARKER = ++YYCURSOR);
7221
0
    if (yych == 'L') goto yy660;
7222
0
    if (yych == 'l') goto yy660;
7223
0
    goto yy48;
7224
0
yy582:
7225
0
    YYDEBUG(582, *YYCURSOR);
7226
0
    ++YYCURSOR;
7227
0
yy583:
7228
0
    YYDEBUG(583, *YYCURSOR);
7229
0
    yyleng = YYCURSOR - SCNG(yy_text);
7230
0
#line 1573 "Zend/zend_language_scanner.l"
7231
0
    {
7232
0
  yyless(4);
7233
0
  RETURN_TOKEN_WITH_IDENT(T_ENUM);
7234
0
}
7235
0
#line 7236 "Zend/zend_language_scanner.c"
7236
0
yy584:
7237
0
    YYDEBUG(584, *YYCURSOR);
7238
0
    yyaccept = 53;
7239
0
    yych = *(YYMARKER = ++YYCURSOR);
7240
0
    if (yych == 'X') goto yy661;
7241
0
    if (yych == 'x') goto yy661;
7242
0
    goto yy583;
7243
0
yy585:
7244
0
    YYDEBUG(585, *YYCURSOR);
7245
0
    yyaccept = 53;
7246
0
    yych = *(YYMARKER = ++YYCURSOR);
7247
0
    if (yych == 'M') goto yy662;
7248
0
    if (yych == 'm') goto yy662;
7249
0
    goto yy583;
7250
0
yy586:
7251
0
    YYDEBUG(586, *YYCURSOR);
7252
0
    ++YYCURSOR;
7253
0
    YYFILL(1);
7254
0
    yych = *YYCURSOR;
7255
0
    YYDEBUG(587, *YYCURSOR);
7256
0
    if (yych <= '\n') {
7257
0
      if (yych <= 0x00) goto yy86;
7258
0
      if (yych <= '\t') goto yy586;
7259
0
      goto yy495;
7260
0
    } else {
7261
0
      if (yych == '\r') goto yy495;
7262
0
      goto yy586;
7263
0
    }
7264
0
yy588:
7265
0
    YYDEBUG(588, *YYCURSOR);
7266
0
    ++YYCURSOR;
7267
0
    YYFILL(1);
7268
0
    yych = *YYCURSOR;
7269
0
    YYDEBUG(589, *YYCURSOR);
7270
0
    if (yych <= 'D') {
7271
0
      if (yych <= 0x1F) {
7272
0
        if (yych <= '\t') {
7273
0
          if (yych <= 0x00) goto yy86;
7274
0
          if (yych <= 0x08) goto yy586;
7275
0
          goto yy588;
7276
0
        } else {
7277
0
          if (yych <= '\n') goto yy495;
7278
0
          if (yych == '\r') goto yy495;
7279
0
          goto yy586;
7280
0
        }
7281
0
      } else {
7282
0
        if (yych <= '#') {
7283
0
          if (yych <= ' ') goto yy588;
7284
0
          if (yych <= '"') goto yy586;
7285
0
          goto yy663;
7286
0
        } else {
7287
0
          if (yych == '/') goto yy664;
7288
0
          if (yych <= '@') goto yy586;
7289
0
          goto yy665;
7290
0
        }
7291
0
      }
7292
0
    } else {
7293
0
      if (yych <= '`') {
7294
0
        if (yych <= 'I') {
7295
0
          if (yych <= 'E') goto yy666;
7296
0
          if (yych <= 'H') goto yy665;
7297
0
          goto yy667;
7298
0
        } else {
7299
0
          if (yych <= 'Z') goto yy665;
7300
0
          if (yych == '_') goto yy665;
7301
0
          goto yy586;
7302
0
        }
7303
0
      } else {
7304
0
        if (yych <= 'h') {
7305
0
          if (yych == 'e') goto yy666;
7306
0
          goto yy665;
7307
0
        } else {
7308
0
          if (yych <= 'i') goto yy667;
7309
0
          if (yych <= 'z') goto yy665;
7310
0
          if (yych <= 0x7F) goto yy586;
7311
0
          goto yy665;
7312
0
        }
7313
0
      }
7314
0
    }
7315
0
yy590:
7316
0
    YYDEBUG(590, *YYCURSOR);
7317
0
    ++YYCURSOR;
7318
0
    YYFILL(1);
7319
0
    yych = *YYCURSOR;
7320
0
    YYDEBUG(591, *YYCURSOR);
7321
0
    if (yych <= 0x00) goto yy86;
7322
0
    if (yych == '*') goto yy668;
7323
0
    goto yy590;
7324
0
yy592:
7325
0
    YYDEBUG(592, *YYCURSOR);
7326
0
    yyaccept = 4;
7327
0
    yych = *(YYMARKER = ++YYCURSOR);
7328
0
    if (yych == 'S') goto yy670;
7329
0
    if (yych == 's') goto yy670;
7330
0
    goto yy48;
7331
0
yy593:
7332
0
    YYDEBUG(593, *YYCURSOR);
7333
0
    yyaccept = 4;
7334
0
    yych = *(YYMARKER = ++YYCURSOR);
7335
0
    if (yych == 'Y') goto yy672;
7336
0
    if (yych == 'y') goto yy672;
7337
0
    goto yy48;
7338
0
yy594:
7339
0
    YYDEBUG(594, *YYCURSOR);
7340
0
    yyaccept = 4;
7341
0
    yych = *(YYMARKER = ++YYCURSOR);
7342
0
    if (yych == 'H') goto yy674;
7343
0
    if (yych == 'h') goto yy674;
7344
0
    goto yy48;
7345
0
yy595:
7346
0
    YYDEBUG(595, *YYCURSOR);
7347
0
    yyaccept = 4;
7348
0
    yych = *(YYMARKER = ++YYCURSOR);
7349
0
    if (yych == 'O') goto yy676;
7350
0
    if (yych == 'o') goto yy676;
7351
0
    goto yy48;
7352
0
yy596:
7353
0
    YYDEBUG(596, *YYCURSOR);
7354
0
    yyaccept = 54;
7355
0
    yych = *(YYMARKER = ++YYCURSOR);
7356
0
    if (yybm[256+yych] & 128) {
7357
0
      goto yy47;
7358
0
    }
7359
0
    if (yych == '\\') goto yy164;
7360
0
yy597:
7361
0
    YYDEBUG(597, *YYCURSOR);
7362
0
    yyleng = YYCURSOR - SCNG(yy_text);
7363
0
#line 1749 "Zend/zend_language_scanner.l"
7364
0
    {
7365
0
  RETURN_TOKEN_WITH_IDENT(T_GLOBAL);
7366
0
}
7367
0
#line 7368 "Zend/zend_language_scanner.c"
7368
0
yy598:
7369
0
    YYDEBUG(598, *YYCURSOR);
7370
0
    yyaccept = 4;
7371
0
    yych = *(YYMARKER = ++YYCURSOR);
7372
0
    if (yych == 'E') goto yy677;
7373
0
    if (yych == 'e') goto yy677;
7374
0
    goto yy48;
7375
0
yy599:
7376
0
    YYDEBUG(599, *YYCURSOR);
7377
0
    yyaccept = 4;
7378
0
    yych = *(YYMARKER = ++YYCURSOR);
7379
0
    if (yych == 'E') goto yy678;
7380
0
    if (yych == 'e') goto yy678;
7381
0
    goto yy48;
7382
0
yy600:
7383
0
    YYDEBUG(600, *YYCURSOR);
7384
0
    yyaccept = 4;
7385
0
    yych = *(YYMARKER = ++YYCURSOR);
7386
0
    if (yych == 'C') goto yy680;
7387
0
    if (yych == 'c') goto yy680;
7388
0
    goto yy48;
7389
0
yy601:
7390
0
    YYDEBUG(601, *YYCURSOR);
7391
0
    yyaccept = 4;
7392
0
    yych = *(YYMARKER = ++YYCURSOR);
7393
0
    if (yych == 'D') goto yy681;
7394
0
    if (yych == 'd') goto yy681;
7395
0
    goto yy48;
7396
0
yy602:
7397
0
    YYDEBUG(602, *YYCURSOR);
7398
0
    yyaccept = 4;
7399
0
    yych = *(YYMARKER = ++YYCURSOR);
7400
0
    if (yych == 'A') goto yy682;
7401
0
    if (yych == 'a') goto yy682;
7402
0
    goto yy48;
7403
0
yy603:
7404
0
    YYDEBUG(603, *YYCURSOR);
7405
0
    yyaccept = 4;
7406
0
    yych = *(YYMARKER = ++YYCURSOR);
7407
0
    if (yych == 'A') goto yy683;
7408
0
    if (yych == 'a') goto yy683;
7409
0
    goto yy48;
7410
0
yy604:
7411
0
    YYDEBUG(604, *YYCURSOR);
7412
0
    yyaccept = 4;
7413
0
    yych = *(YYMARKER = ++YYCURSOR);
7414
0
    if (yych == 'E') goto yy684;
7415
0
    if (yych == 'e') goto yy684;
7416
0
    goto yy48;
7417
0
yy605:
7418
0
    YYDEBUG(605, *YYCURSOR);
7419
0
    yyaccept = 4;
7420
0
    yych = *(YYMARKER = ++YYCURSOR);
7421
0
    if (yych == 'T') goto yy686;
7422
0
    if (yych == 't') goto yy686;
7423
0
    goto yy48;
7424
0
yy606:
7425
0
    YYDEBUG(606, *YYCURSOR);
7426
0
    yyaccept = 55;
7427
0
    yych = *(YYMARKER = ++YYCURSOR);
7428
0
    if (yybm[256+yych] & 128) {
7429
0
      goto yy47;
7430
0
    }
7431
0
    if (yych == '(') goto yy687;
7432
0
    if (yych == '\\') goto yy164;
7433
0
yy607:
7434
0
    YYDEBUG(607, *YYCURSOR);
7435
0
    yyleng = YYCURSOR - SCNG(yy_text);
7436
0
#line 1797 "Zend/zend_language_scanner.l"
7437
0
    {
7438
0
  RETURN_TOKEN_WITH_IDENT(T_PUBLIC);
7439
0
}
7440
0
#line 7441 "Zend/zend_language_scanner.c"
7441
0
yy608:
7442
0
    YYDEBUG(608, *YYCURSOR);
7443
0
    yyaccept = 4;
7444
0
    yych = *(YYMARKER = ++YYCURSOR);
7445
0
    if (yych == 'L') goto yy688;
7446
0
    if (yych == 'l') goto yy688;
7447
0
    goto yy48;
7448
0
yy609:
7449
0
    YYDEBUG(609, *YYCURSOR);
7450
0
    yyaccept = 4;
7451
0
    yych = *(YYMARKER = ++YYCURSOR);
7452
0
    if (yych == 'E') goto yy689;
7453
0
    if (yych == 'e') goto yy689;
7454
0
    goto yy48;
7455
0
yy610:
7456
0
    YYDEBUG(610, *YYCURSOR);
7457
0
    yyaccept = 56;
7458
0
    yych = *(YYMARKER = ++YYCURSOR);
7459
0
    if (yybm[256+yych] & 128) {
7460
0
      goto yy47;
7461
0
    }
7462
0
    if (yych == '\\') goto yy164;
7463
0
yy611:
7464
0
    YYDEBUG(611, *YYCURSOR);
7465
0
    yyleng = YYCURSOR - SCNG(yy_text);
7466
0
#line 1418 "Zend/zend_language_scanner.l"
7467
0
    {
7468
0
  RETURN_TOKEN_WITH_IDENT(T_RETURN);
7469
0
}
7470
0
#line 7471 "Zend/zend_language_scanner.c"
7471
0
yy612:
7472
0
    YYDEBUG(612, *YYCURSOR);
7473
0
    yyaccept = 57;
7474
0
    yych = *(YYMARKER = ++YYCURSOR);
7475
0
    if (yybm[256+yych] & 128) {
7476
0
      goto yy47;
7477
0
    }
7478
0
    if (yych == '\\') goto yy164;
7479
0
yy613:
7480
0
    YYDEBUG(613, *YYCURSOR);
7481
0
    yyleng = YYCURSOR - SCNG(yy_text);
7482
0
#line 1765 "Zend/zend_language_scanner.l"
7483
0
    {
7484
0
  RETURN_TOKEN_WITH_IDENT(T_STATIC);
7485
0
}
7486
0
#line 7487 "Zend/zend_language_scanner.c"
7487
0
yy614:
7488
0
    YYDEBUG(614, *YYCURSOR);
7489
0
    yyaccept = 58;
7490
0
    yych = *(YYMARKER = ++YYCURSOR);
7491
0
    if (yybm[256+yych] & 128) {
7492
0
      goto yy47;
7493
0
    }
7494
0
    if (yych == '\\') goto yy164;
7495
0
yy615:
7496
0
    YYDEBUG(615, *YYCURSOR);
7497
0
    yyleng = YYCURSOR - SCNG(yy_text);
7498
0
#line 1513 "Zend/zend_language_scanner.l"
7499
0
    {
7500
0
  RETURN_TOKEN_WITH_IDENT(T_SWITCH);
7501
0
}
7502
0
#line 7503 "Zend/zend_language_scanner.c"
7503
0
yy616:
7504
0
    YYDEBUG(616, *YYCURSOR);
7505
0
    ++YYCURSOR;
7506
0
    YYFILL(5);
7507
0
    yych = *YYCURSOR;
7508
0
    YYDEBUG(617, *YYCURSOR);
7509
0
    if (yych <= '"') {
7510
0
      if (yych <= '\f') {
7511
0
        if (yych <= 0x08) goto yy86;
7512
0
        if (yych <= '\n') goto yy616;
7513
0
        goto yy86;
7514
0
      } else {
7515
0
        if (yych <= '\r') goto yy616;
7516
0
        if (yych == ' ') goto yy616;
7517
0
        goto yy86;
7518
0
      }
7519
0
    } else {
7520
0
      if (yych <= 'E') {
7521
0
        if (yych <= '#') goto yy618;
7522
0
        if (yych == '/') goto yy619;
7523
0
        goto yy86;
7524
0
      } else {
7525
0
        if (yych <= 'F') goto yy691;
7526
0
        if (yych == 'f') goto yy691;
7527
0
        goto yy86;
7528
0
      }
7529
0
    }
7530
0
yy618:
7531
0
    YYDEBUG(618, *YYCURSOR);
7532
0
    ++YYCURSOR;
7533
0
    YYFILL(1);
7534
0
    yych = *YYCURSOR;
7535
0
    if (yych <= '\f') {
7536
0
      if (yych <= 0x00) goto yy86;
7537
0
      if (yych == '\n') goto yy694;
7538
0
      goto yy692;
7539
0
    } else {
7540
0
      if (yych <= '\r') goto yy694;
7541
0
      if (yych == '[') goto yy86;
7542
0
      goto yy692;
7543
0
    }
7544
0
yy619:
7545
0
    YYDEBUG(619, *YYCURSOR);
7546
0
    ++YYCURSOR;
7547
0
    YYFILL(1);
7548
0
    yych = *YYCURSOR;
7549
0
    if (yych == '*') goto yy696;
7550
0
    if (yych == '/') goto yy692;
7551
0
    goto yy86;
7552
0
yy620:
7553
0
    YYDEBUG(620, *YYCURSOR);
7554
0
    yyaccept = 4;
7555
0
    yych = *(YYMARKER = ++YYCURSOR);
7556
0
    if (yych == 'S') goto yy698;
7557
0
    if (yych == 's') goto yy698;
7558
0
    goto yy48;
7559
0
yy621:
7560
0
    YYDEBUG(621, *YYCURSOR);
7561
0
    yyaccept = 4;
7562
0
    yych = *(YYMARKER = ++YYCURSOR);
7563
0
    if (yych == '_') goto yy699;
7564
0
    goto yy48;
7565
0
yy622:
7566
0
    YYDEBUG(622, *YYCURSOR);
7567
0
    yyaccept = 4;
7568
0
    yych = *(YYMARKER = ++YYCURSOR);
7569
0
    if (yych == '_') goto yy701;
7570
0
    goto yy48;
7571
0
yy623:
7572
0
    YYDEBUG(623, *YYCURSOR);
7573
0
    yyaccept = 4;
7574
0
    yych = *(YYMARKER = ++YYCURSOR);
7575
0
    if (yych == 'T') goto yy702;
7576
0
    if (yych == 't') goto yy702;
7577
0
    goto yy48;
7578
0
yy624:
7579
0
    YYDEBUG(624, *YYCURSOR);
7580
0
    yyaccept = 4;
7581
0
    yych = *(YYMARKER = ++YYCURSOR);
7582
0
    if (yych == '_') goto yy703;
7583
0
    goto yy48;
7584
0
yy625:
7585
0
    YYDEBUG(625, *YYCURSOR);
7586
0
    yyaccept = 4;
7587
0
    yych = *(YYMARKER = ++YYCURSOR);
7588
0
    if (yych == '_') goto yy704;
7589
0
    goto yy48;
7590
0
yy626:
7591
0
    YYDEBUG(626, *YYCURSOR);
7592
0
    yyaccept = 4;
7593
0
    yych = *(YYMARKER = ++YYCURSOR);
7594
0
    if (yych == 'O') goto yy705;
7595
0
    if (yych == 'o') goto yy705;
7596
0
    goto yy48;
7597
0
yy627:
7598
0
    YYDEBUG(627, *YYCURSOR);
7599
0
    yyaccept = 4;
7600
0
    yych = *(YYMARKER = ++YYCURSOR);
7601
0
    if (yych == 'S') goto yy706;
7602
0
    if (yych == 's') goto yy706;
7603
0
    goto yy48;
7604
0
yy628:
7605
0
    YYDEBUG(628, *YYCURSOR);
7606
0
    yyaccept = 4;
7607
0
    yych = *(YYMARKER = ++YYCURSOR);
7608
0
    if (yych == 'E') goto yy707;
7609
0
    if (yych == 'e') goto yy707;
7610
0
    goto yy48;
7611
0
yy629:
7612
0
    YYDEBUG(629, *YYCURSOR);
7613
0
    yyaccept = 4;
7614
0
    yych = *(YYMARKER = ++YYCURSOR);
7615
0
    if (yych == 'T') goto yy708;
7616
0
    if (yych == 't') goto yy708;
7617
0
    goto yy48;
7618
0
yy630:
7619
0
    YYDEBUG(630, *YYCURSOR);
7620
0
    ++YYCURSOR;
7621
0
    YYFILL(1);
7622
0
    yych = *YYCURSOR;
7623
0
    if (yych <= '\r') {
7624
0
      if (yych <= '\t') {
7625
0
        if (yych <= 0x00) goto yy86;
7626
0
        goto yy443;
7627
0
      } else {
7628
0
        if (yych <= '\n') goto yy709;
7629
0
        if (yych <= '\f') goto yy443;
7630
0
        goto yy709;
7631
0
      }
7632
0
    } else {
7633
0
      if (yych <= '*') {
7634
0
        if (yych <= ')') goto yy443;
7635
0
        goto yy547;
7636
0
      } else {
7637
0
        if (yych == '[') goto yy230;
7638
0
        goto yy443;
7639
0
      }
7640
0
    }
7641
0
yy631:
7642
0
    YYDEBUG(631, *YYCURSOR);
7643
0
    yyaccept = 26;
7644
0
    YYMARKER = ++YYCURSOR;
7645
0
    YYFILL(1);
7646
0
    yych = *YYCURSOR;
7647
0
    if (yybm[0+yych] & 4) {
7648
0
      goto yy230;
7649
0
    }
7650
0
    if (yych <= 0x00) goto yy89;
7651
0
    goto yy355;
7652
0
yy632:
7653
0
    YYDEBUG(632, *YYCURSOR);
7654
0
    ++YYCURSOR;
7655
0
    YYFILL(1);
7656
0
    yych = *YYCURSOR;
7657
0
    if (yybm[0+yych] & 64) {
7658
0
      goto yy355;
7659
0
    }
7660
0
    if (yych <= 0x00) goto yy86;
7661
0
    if (yych == '.') goto yy711;
7662
0
    goto yy230;
7663
0
yy633:
7664
0
    YYDEBUG(633, *YYCURSOR);
7665
0
    ++YYCURSOR;
7666
0
    YYFILL(1);
7667
0
    yych = *YYCURSOR;
7668
0
    if (yych <= '*') {
7669
0
      if (yych <= 0x00) goto yy86;
7670
0
      if (yych <= ')') goto yy230;
7671
0
      goto yy712;
7672
0
    } else {
7673
0
      if (yych == '/') goto yy443;
7674
0
      goto yy230;
7675
0
    }
7676
0
yy634:
7677
0
    YYDEBUG(634, *YYCURSOR);
7678
0
    ++YYCURSOR;
7679
0
    YYDEBUG(635, *YYCURSOR);
7680
0
    yyleng = YYCURSOR - SCNG(yy_text);
7681
0
#line 1687 "Zend/zend_language_scanner.l"
7682
0
    {
7683
0
  RETURN_TOKEN(T_ARRAY_CAST);
7684
0
}
7685
0
#line 7686 "Zend/zend_language_scanner.c"
7686
0
yy636:
7687
0
    YYDEBUG(636, *YYCURSOR);
7688
0
    ++YYCURSOR;
7689
0
    YYFILL(1);
7690
0
    yych = *YYCURSOR;
7691
0
    YYDEBUG(637, *YYCURSOR);
7692
0
    if (yych <= 0x1F) {
7693
0
      if (yych == '\t') goto yy636;
7694
0
      goto yy86;
7695
0
    } else {
7696
0
      if (yych <= ' ') goto yy636;
7697
0
      if (yych == ')') goto yy713;
7698
0
      goto yy86;
7699
0
    }
7700
0
yy638:
7701
0
    YYDEBUG(638, *YYCURSOR);
7702
0
    yych = *++YYCURSOR;
7703
0
    if (yych == 'N') goto yy715;
7704
0
    if (yych == 'n') goto yy715;
7705
0
    goto yy86;
7706
0
yy639:
7707
0
    YYDEBUG(639, *YYCURSOR);
7708
0
    ++YYCURSOR;
7709
0
    YYFILL(1);
7710
0
    yych = *YYCURSOR;
7711
0
    YYDEBUG(640, *YYCURSOR);
7712
0
    if (yych <= 0x1F) {
7713
0
      if (yych == '\t') goto yy639;
7714
0
      goto yy86;
7715
0
    } else {
7716
0
      if (yych <= ' ') goto yy639;
7717
0
      if (yych == ')') goto yy717;
7718
0
      goto yy86;
7719
0
    }
7720
0
yy641:
7721
0
    YYDEBUG(641, *YYCURSOR);
7722
0
    ++YYCURSOR;
7723
0
    YYDEBUG(642, *YYCURSOR);
7724
0
    yyleng = YYCURSOR - SCNG(yy_text);
7725
0
#line 1651 "Zend/zend_language_scanner.l"
7726
0
    {
7727
0
  RETURN_TOKEN(T_DOUBLE_CAST);
7728
0
}
7729
0
#line 7730 "Zend/zend_language_scanner.c"
7730
0
yy643:
7731
0
    YYDEBUG(643, *YYCURSOR);
7732
0
    yych = *++YYCURSOR;
7733
0
    if (yych == 'R') goto yy719;
7734
0
    if (yych == 'r') goto yy719;
7735
0
    goto yy86;
7736
0
yy644:
7737
0
    YYDEBUG(644, *YYCURSOR);
7738
0
    ++YYCURSOR;
7739
0
    YYFILL(1);
7740
0
    yych = *YYCURSOR;
7741
0
    YYDEBUG(645, *YYCURSOR);
7742
0
    if (yych <= 0x1F) {
7743
0
      if (yych == '\t') goto yy644;
7744
0
      goto yy86;
7745
0
    } else {
7746
0
      if (yych <= ' ') goto yy644;
7747
0
      if (yych == ')') goto yy721;
7748
0
      goto yy86;
7749
0
    }
7750
0
yy646:
7751
0
    YYDEBUG(646, *YYCURSOR);
7752
0
    ++YYCURSOR;
7753
0
    YYFILL(1);
7754
0
    yych = *YYCURSOR;
7755
0
    YYDEBUG(647, *YYCURSOR);
7756
0
    if (yych <= 0x1F) {
7757
0
      if (yych == '\t') goto yy646;
7758
0
      goto yy86;
7759
0
    } else {
7760
0
      if (yych <= ' ') goto yy646;
7761
0
      if (yych == ')') goto yy723;
7762
0
      goto yy86;
7763
0
    }
7764
0
yy648:
7765
0
    YYDEBUG(648, *YYCURSOR);
7766
0
    ++YYCURSOR;
7767
0
    YYDEBUG(649, *YYCURSOR);
7768
0
    yyleng = YYCURSOR - SCNG(yy_text);
7769
0
#line 1709 "Zend/zend_language_scanner.l"
7770
0
    {
7771
0
  RETURN_TOKEN(T_UNSET_CAST);
7772
0
}
7773
0
#line 7774 "Zend/zend_language_scanner.c"
7774
0
yy650:
7775
0
    YYDEBUG(650, *YYCURSOR);
7776
0
    yyaccept = 4;
7777
0
    yych = *(YYMARKER = ++YYCURSOR);
7778
0
    if (yych == 'T') goto yy725;
7779
0
    if (yych == 't') goto yy725;
7780
0
    goto yy48;
7781
0
yy651:
7782
0
    YYDEBUG(651, *YYCURSOR);
7783
0
    yyaccept = 4;
7784
0
    yych = *(YYMARKER = ++YYCURSOR);
7785
0
    if (yych == 'E') goto yy727;
7786
0
    if (yych == 'e') goto yy727;
7787
0
    goto yy48;
7788
0
yy652:
7789
0
    YYDEBUG(652, *YYCURSOR);
7790
0
    yyaccept = 4;
7791
0
    yych = *(YYMARKER = ++YYCURSOR);
7792
0
    if (yych == 'E') goto yy729;
7793
0
    if (yych == 'e') goto yy729;
7794
0
    goto yy48;
7795
0
yy653:
7796
0
    YYDEBUG(653, *YYCURSOR);
7797
0
    yyaccept = 59;
7798
0
    yych = *(YYMARKER = ++YYCURSOR);
7799
0
    if (yybm[256+yych] & 128) {
7800
0
      goto yy47;
7801
0
    }
7802
0
    if (yych == '\\') goto yy164;
7803
0
yy654:
7804
0
    YYDEBUG(654, *YYCURSOR);
7805
0
    yyleng = YYCURSOR - SCNG(yy_text);
7806
0
#line 1497 "Zend/zend_language_scanner.l"
7807
0
    {
7808
0
  RETURN_TOKEN_WITH_IDENT(T_DECLARE);
7809
0
}
7810
0
#line 7811 "Zend/zend_language_scanner.c"
7811
0
yy655:
7812
0
    YYDEBUG(655, *YYCURSOR);
7813
0
    yyaccept = 60;
7814
0
    yych = *(YYMARKER = ++YYCURSOR);
7815
0
    if (yybm[256+yych] & 128) {
7816
0
      goto yy47;
7817
0
    }
7818
0
    if (yych == '\\') goto yy164;
7819
0
yy656:
7820
0
    YYDEBUG(656, *YYCURSOR);
7821
0
    yyleng = YYCURSOR - SCNG(yy_text);
7822
0
#line 1529 "Zend/zend_language_scanner.l"
7823
0
    {
7824
0
  RETURN_TOKEN_WITH_IDENT(T_DEFAULT);
7825
0
}
7826
0
#line 7827 "Zend/zend_language_scanner.c"
7827
0
yy657:
7828
0
    YYDEBUG(657, *YYCURSOR);
7829
0
    yyaccept = 4;
7830
0
    yych = *(YYMARKER = ++YYCURSOR);
7831
0
    if (yych == 'A') goto yy731;
7832
0
    if (yych == 'a') goto yy731;
7833
0
    goto yy48;
7834
0
yy658:
7835
0
    YYDEBUG(658, *YYCURSOR);
7836
0
    yyaccept = 4;
7837
0
    yych = *(YYMARKER = ++YYCURSOR);
7838
0
    if (yych == 'A') goto yy732;
7839
0
    if (yych == 'a') goto yy732;
7840
0
    goto yy48;
7841
0
yy659:
7842
0
    YYDEBUG(659, *YYCURSOR);
7843
0
    yyaccept = 4;
7844
0
    yych = *(YYMARKER = ++YYCURSOR);
7845
0
    if (yych == 'C') goto yy733;
7846
0
    if (yych == 'c') goto yy733;
7847
0
    goto yy48;
7848
0
yy660:
7849
0
    YYDEBUG(660, *YYCURSOR);
7850
0
    yyaccept = 4;
7851
0
    yych = *(YYMARKER = ++YYCURSOR);
7852
0
    if (yych == 'E') goto yy734;
7853
0
    if (yych == 'e') goto yy734;
7854
0
    goto yy48;
7855
0
yy661:
7856
0
    YYDEBUG(661, *YYCURSOR);
7857
0
    yych = *++YYCURSOR;
7858
0
    if (yych == 'T') goto yy736;
7859
0
    if (yych == 't') goto yy736;
7860
0
    goto yy86;
7861
0
yy662:
7862
0
    YYDEBUG(662, *YYCURSOR);
7863
0
    yych = *++YYCURSOR;
7864
0
    if (yych == 'P') goto yy737;
7865
0
    if (yych == 'p') goto yy737;
7866
0
    goto yy86;
7867
0
yy663:
7868
0
    YYDEBUG(663, *YYCURSOR);
7869
0
    ++YYCURSOR;
7870
0
    YYFILL(1);
7871
0
    yych = *YYCURSOR;
7872
0
    if (yych <= '\n') {
7873
0
      if (yych <= 0x00) goto yy86;
7874
0
      if (yych <= '\t') goto yy586;
7875
0
      goto yy588;
7876
0
    } else {
7877
0
      if (yych == '\r') goto yy588;
7878
0
      goto yy586;
7879
0
    }
7880
0
yy664:
7881
0
    YYDEBUG(664, *YYCURSOR);
7882
0
    ++YYCURSOR;
7883
0
    YYFILL(1);
7884
0
    yych = *YYCURSOR;
7885
0
    if (yych <= '\f') {
7886
0
      if (yych <= 0x00) goto yy86;
7887
0
      if (yych == '\n') goto yy495;
7888
0
      goto yy586;
7889
0
    } else {
7890
0
      if (yych <= '\r') goto yy495;
7891
0
      if (yych == '*') goto yy738;
7892
0
      goto yy586;
7893
0
    }
7894
0
yy665:
7895
0
    YYDEBUG(665, *YYCURSOR);
7896
0
    yyaccept = 53;
7897
0
    YYMARKER = ++YYCURSOR;
7898
0
    YYFILL(1);
7899
0
    yych = *YYCURSOR;
7900
0
    if (yych <= '\n') {
7901
0
      if (yych <= 0x00) goto yy583;
7902
0
      if (yych <= '\t') goto yy586;
7903
0
      goto yy495;
7904
0
    } else {
7905
0
      if (yych == '\r') goto yy495;
7906
0
      goto yy586;
7907
0
    }
7908
0
yy666:
7909
0
    YYDEBUG(666, *YYCURSOR);
7910
0
    yyaccept = 53;
7911
0
    YYMARKER = ++YYCURSOR;
7912
0
    YYFILL(1);
7913
0
    yych = *YYCURSOR;
7914
0
    if (yych <= '\r') {
7915
0
      if (yych <= '\t') {
7916
0
        if (yych <= 0x00) goto yy583;
7917
0
        goto yy586;
7918
0
      } else {
7919
0
        if (yych <= '\n') goto yy495;
7920
0
        if (yych <= '\f') goto yy586;
7921
0
        goto yy495;
7922
0
      }
7923
0
    } else {
7924
0
      if (yych <= 'X') {
7925
0
        if (yych <= 'W') goto yy586;
7926
0
        goto yy740;
7927
0
      } else {
7928
0
        if (yych == 'x') goto yy740;
7929
0
        goto yy586;
7930
0
      }
7931
0
    }
7932
0
yy667:
7933
0
    YYDEBUG(667, *YYCURSOR);
7934
0
    yyaccept = 53;
7935
0
    YYMARKER = ++YYCURSOR;
7936
0
    YYFILL(1);
7937
0
    yych = *YYCURSOR;
7938
0
    if (yych <= '\r') {
7939
0
      if (yych <= '\t') {
7940
0
        if (yych <= 0x00) goto yy583;
7941
0
        goto yy586;
7942
0
      } else {
7943
0
        if (yych <= '\n') goto yy495;
7944
0
        if (yych <= '\f') goto yy586;
7945
0
        goto yy495;
7946
0
      }
7947
0
    } else {
7948
0
      if (yych <= 'M') {
7949
0
        if (yych <= 'L') goto yy586;
7950
0
        goto yy741;
7951
0
      } else {
7952
0
        if (yych == 'm') goto yy741;
7953
0
        goto yy586;
7954
0
      }
7955
0
    }
7956
0
yy668:
7957
0
    YYDEBUG(668, *YYCURSOR);
7958
0
    ++YYCURSOR;
7959
0
    YYFILL(1);
7960
0
    yych = *YYCURSOR;
7961
0
    YYDEBUG(669, *YYCURSOR);
7962
0
    if (yych <= '*') {
7963
0
      if (yych <= 0x00) goto yy86;
7964
0
      if (yych <= ')') goto yy590;
7965
0
      goto yy668;
7966
0
    } else {
7967
0
      if (yych == '/') goto yy495;
7968
0
      goto yy590;
7969
0
    }
7970
0
yy670:
7971
0
    YYDEBUG(670, *YYCURSOR);
7972
0
    yyaccept = 61;
7973
0
    yych = *(YYMARKER = ++YYCURSOR);
7974
0
    if (yybm[256+yych] & 128) {
7975
0
      goto yy47;
7976
0
    }
7977
0
    if (yych == '\\') goto yy164;
7978
0
yy671:
7979
0
    YYDEBUG(671, *YYCURSOR);
7980
0
    yyleng = YYCURSOR - SCNG(yy_text);
7981
0
#line 1578 "Zend/zend_language_scanner.l"
7982
0
    {
7983
0
  RETURN_TOKEN_WITH_IDENT(T_EXTENDS);
7984
0
}
7985
0
#line 7986 "Zend/zend_language_scanner.c"
7986
0
yy672:
7987
0
    YYDEBUG(672, *YYCURSOR);
7988
0
    yyaccept = 62;
7989
0
    yych = *(YYMARKER = ++YYCURSOR);
7990
0
    if (yybm[256+yych] & 128) {
7991
0
      goto yy47;
7992
0
    }
7993
0
    if (yych == '\\') goto yy164;
7994
0
yy673:
7995
0
    YYDEBUG(673, *YYCURSOR);
7996
0
    yyleng = YYCURSOR - SCNG(yy_text);
7997
0
#line 1445 "Zend/zend_language_scanner.l"
7998
0
    {
7999
0
  RETURN_TOKEN_WITH_IDENT(T_FINALLY);
8000
0
}
8001
0
#line 8002 "Zend/zend_language_scanner.c"
8002
0
yy674:
8003
0
    YYDEBUG(674, *YYCURSOR);
8004
0
    yyaccept = 63;
8005
0
    yych = *(YYMARKER = ++YYCURSOR);
8006
0
    if (yybm[256+yych] & 128) {
8007
0
      goto yy47;
8008
0
    }
8009
0
    if (yych == '\\') goto yy164;
8010
0
yy675:
8011
0
    YYDEBUG(675, *YYCURSOR);
8012
0
    yyleng = YYCURSOR - SCNG(yy_text);
8013
0
#line 1489 "Zend/zend_language_scanner.l"
8014
0
    {
8015
0
  RETURN_TOKEN_WITH_IDENT(T_FOREACH);
8016
0
}
8017
0
#line 8018 "Zend/zend_language_scanner.c"
8018
0
yy676:
8019
0
    YYDEBUG(676, *YYCURSOR);
8020
0
    yyaccept = 4;
8021
0
    yych = *(YYMARKER = ++YYCURSOR);
8022
0
    if (yych == 'N') goto yy742;
8023
0
    if (yych == 'n') goto yy742;
8024
0
    goto yy48;
8025
0
yy677:
8026
0
    YYDEBUG(677, *YYCURSOR);
8027
0
    yyaccept = 4;
8028
0
    yych = *(YYMARKER = ++YYCURSOR);
8029
0
    if (yych == 'N') goto yy744;
8030
0
    if (yych == 'n') goto yy744;
8031
0
    goto yy48;
8032
0
yy678:
8033
0
    YYDEBUG(678, *YYCURSOR);
8034
0
    yyaccept = 64;
8035
0
    yych = *(YYMARKER = ++YYCURSOR);
8036
0
    if (yych <= '\\') {
8037
0
      if (yych <= '@') {
8038
0
        if (yych <= '/') goto yy679;
8039
0
        if (yych <= '9') goto yy47;
8040
0
      } else {
8041
0
        if (yych <= 'Z') goto yy47;
8042
0
        if (yych >= '\\') goto yy164;
8043
0
      }
8044
0
    } else {
8045
0
      if (yych <= '`') {
8046
0
        if (yych == '_') goto yy745;
8047
0
      } else {
8048
0
        if (yych <= 'z') goto yy47;
8049
0
        if (yych >= 0x80) goto yy47;
8050
0
      }
8051
0
    }
8052
0
yy679:
8053
0
    YYDEBUG(679, *YYCURSOR);
8054
0
    yyleng = YYCURSOR - SCNG(yy_text);
8055
0
#line 1721 "Zend/zend_language_scanner.l"
8056
0
    {
8057
0
  RETURN_TOKEN_WITH_IDENT(T_INCLUDE);
8058
0
}
8059
0
#line 8060 "Zend/zend_language_scanner.c"
8060
0
yy680:
8061
0
    YYDEBUG(680, *YYCURSOR);
8062
0
    yyaccept = 4;
8063
0
    yych = *(YYMARKER = ++YYCURSOR);
8064
0
    if (yych == 'E') goto yy746;
8065
0
    if (yych == 'e') goto yy746;
8066
0
    goto yy48;
8067
0
yy681:
8068
0
    YYDEBUG(681, *YYCURSOR);
8069
0
    yyaccept = 4;
8070
0
    yych = *(YYMARKER = ++YYCURSOR);
8071
0
    if (yych == 'O') goto yy747;
8072
0
    if (yych == 'o') goto yy747;
8073
0
    goto yy48;
8074
0
yy682:
8075
0
    YYDEBUG(682, *YYCURSOR);
8076
0
    yyaccept = 4;
8077
0
    yych = *(YYMARKER = ++YYCURSOR);
8078
0
    if (yych == 'C') goto yy748;
8079
0
    if (yych == 'c') goto yy748;
8080
0
    goto yy48;
8081
0
yy683:
8082
0
    YYDEBUG(683, *YYCURSOR);
8083
0
    yyaccept = 4;
8084
0
    yych = *(YYMARKER = ++YYCURSOR);
8085
0
    if (yych == 'C') goto yy749;
8086
0
    if (yych == 'c') goto yy749;
8087
0
    goto yy48;
8088
0
yy684:
8089
0
    YYDEBUG(684, *YYCURSOR);
8090
0
    yyaccept = 65;
8091
0
    yych = *(YYMARKER = ++YYCURSOR);
8092
0
    if (yybm[256+yych] & 128) {
8093
0
      goto yy47;
8094
0
    }
8095
0
    if (yych == '(') goto yy750;
8096
0
    if (yych == '\\') goto yy164;
8097
0
yy685:
8098
0
    YYDEBUG(685, *YYCURSOR);
8099
0
    yyleng = YYCURSOR - SCNG(yy_text);
8100
0
#line 1777 "Zend/zend_language_scanner.l"
8101
0
    {
8102
0
  RETURN_TOKEN_WITH_IDENT(T_PRIVATE);
8103
0
}
8104
0
#line 8105 "Zend/zend_language_scanner.c"
8105
0
yy686:
8106
0
    YYDEBUG(686, *YYCURSOR);
8107
0
    yyaccept = 4;
8108
0
    yych = *(YYMARKER = ++YYCURSOR);
8109
0
    if (yych == 'E') goto yy751;
8110
0
    if (yych == 'e') goto yy751;
8111
0
    goto yy48;
8112
0
yy687:
8113
0
    YYDEBUG(687, *YYCURSOR);
8114
0
    yych = *++YYCURSOR;
8115
0
    if (yych == 'S') goto yy752;
8116
0
    if (yych == 's') goto yy752;
8117
0
    goto yy86;
8118
0
yy688:
8119
0
    YYDEBUG(688, *YYCURSOR);
8120
0
    yyaccept = 4;
8121
0
    yych = *(YYMARKER = ++YYCURSOR);
8122
0
    if (yych == 'Y') goto yy753;
8123
0
    if (yych == 'y') goto yy753;
8124
0
    goto yy48;
8125
0
yy689:
8126
0
    YYDEBUG(689, *YYCURSOR);
8127
0
    yyaccept = 66;
8128
0
    yych = *(YYMARKER = ++YYCURSOR);
8129
0
    if (yych <= '\\') {
8130
0
      if (yych <= '@') {
8131
0
        if (yych <= '/') goto yy690;
8132
0
        if (yych <= '9') goto yy47;
8133
0
      } else {
8134
0
        if (yych <= 'Z') goto yy47;
8135
0
        if (yych >= '\\') goto yy164;
8136
0
      }
8137
0
    } else {
8138
0
      if (yych <= '`') {
8139
0
        if (yych == '_') goto yy755;
8140
0
      } else {
8141
0
        if (yych <= 'z') goto yy47;
8142
0
        if (yych >= 0x80) goto yy47;
8143
0
      }
8144
0
    }
8145
0
yy690:
8146
0
    YYDEBUG(690, *YYCURSOR);
8147
0
    yyleng = YYCURSOR - SCNG(yy_text);
8148
0
#line 1729 "Zend/zend_language_scanner.l"
8149
0
    {
8150
0
  RETURN_TOKEN_WITH_IDENT(T_REQUIRE);
8151
0
}
8152
0
#line 8153 "Zend/zend_language_scanner.c"
8153
0
yy691:
8154
0
    YYDEBUG(691, *YYCURSOR);
8155
0
    yych = *++YYCURSOR;
8156
0
    if (yych == 'R') goto yy756;
8157
0
    if (yych == 'r') goto yy756;
8158
0
    goto yy86;
8159
0
yy692:
8160
0
    YYDEBUG(692, *YYCURSOR);
8161
0
    ++YYCURSOR;
8162
0
    YYFILL(1);
8163
0
    yych = *YYCURSOR;
8164
0
    YYDEBUG(693, *YYCURSOR);
8165
0
    if (yych <= '\n') {
8166
0
      if (yych <= 0x00) goto yy86;
8167
0
      if (yych <= '\t') goto yy692;
8168
0
      goto yy616;
8169
0
    } else {
8170
0
      if (yych == '\r') goto yy616;
8171
0
      goto yy692;
8172
0
    }
8173
0
yy694:
8174
0
    YYDEBUG(694, *YYCURSOR);
8175
0
    ++YYCURSOR;
8176
0
    YYFILL(1);
8177
0
    yych = *YYCURSOR;
8178
0
    YYDEBUG(695, *YYCURSOR);
8179
0
    if (yych <= ' ') {
8180
0
      if (yych <= '\n') {
8181
0
        if (yych <= 0x00) goto yy86;
8182
0
        if (yych <= 0x08) goto yy692;
8183
0
        if (yych <= '\t') goto yy694;
8184
0
        goto yy616;
8185
0
      } else {
8186
0
        if (yych == '\r') goto yy616;
8187
0
        if (yych <= 0x1F) goto yy692;
8188
0
        goto yy694;
8189
0
      }
8190
0
    } else {
8191
0
      if (yych <= '/') {
8192
0
        if (yych == '#') goto yy757;
8193
0
        if (yych <= '.') goto yy692;
8194
0
        goto yy758;
8195
0
      } else {
8196
0
        if (yych <= 'F') {
8197
0
          if (yych <= 'E') goto yy692;
8198
0
          goto yy759;
8199
0
        } else {
8200
0
          if (yych == 'f') goto yy759;
8201
0
          goto yy692;
8202
0
        }
8203
0
      }
8204
0
    }
8205
0
yy696:
8206
0
    YYDEBUG(696, *YYCURSOR);
8207
0
    ++YYCURSOR;
8208
0
    YYFILL(1);
8209
0
    yych = *YYCURSOR;
8210
0
    YYDEBUG(697, *YYCURSOR);
8211
0
    if (yych <= 0x00) goto yy86;
8212
0
    if (yych == '*') goto yy760;
8213
0
    goto yy696;
8214
0
yy698:
8215
0
    YYDEBUG(698, *YYCURSOR);
8216
0
    yyaccept = 4;
8217
0
    yych = *(YYMARKER = ++YYCURSOR);
8218
0
    if (yych == '_') goto yy762;
8219
0
    goto yy48;
8220
0
yy699:
8221
0
    YYDEBUG(699, *YYCURSOR);
8222
0
    yyaccept = 67;
8223
0
    yych = *(YYMARKER = ++YYCURSOR);
8224
0
    if (yybm[256+yych] & 128) {
8225
0
      goto yy47;
8226
0
    }
8227
0
    if (yych == '\\') goto yy164;
8228
0
yy700:
8229
0
    YYDEBUG(700, *YYCURSOR);
8230
0
    yyleng = YYCURSOR - SCNG(yy_text);
8231
0
#line 2280 "Zend/zend_language_scanner.l"
8232
0
    {
8233
0
  RETURN_TOKEN_WITH_IDENT(T_DIR);
8234
0
}
8235
0
#line 8236 "Zend/zend_language_scanner.c"
8236
0
yy701:
8237
0
    YYDEBUG(701, *YYCURSOR);
8238
0
    yyaccept = 4;
8239
0
    yych = *(YYMARKER = ++YYCURSOR);
8240
0
    if (yych == '_') goto yy763;
8241
0
    goto yy48;
8242
0
yy702:
8243
0
    YYDEBUG(702, *YYCURSOR);
8244
0
    yyaccept = 4;
8245
0
    yych = *(YYMARKER = ++YYCURSOR);
8246
0
    if (yych == 'I') goto yy765;
8247
0
    if (yych == 'i') goto yy765;
8248
0
    goto yy48;
8249
0
yy703:
8250
0
    YYDEBUG(703, *YYCURSOR);
8251
0
    yyaccept = 4;
8252
0
    yych = *(YYMARKER = ++YYCURSOR);
8253
0
    if (yych == 'C') goto yy766;
8254
0
    if (yych == 'c') goto yy766;
8255
0
    goto yy48;
8256
0
yy704:
8257
0
    YYDEBUG(704, *YYCURSOR);
8258
0
    yyaccept = 4;
8259
0
    yych = *(YYMARKER = ++YYCURSOR);
8260
0
    if (yych == '_') goto yy767;
8261
0
    goto yy48;
8262
0
yy705:
8263
0
    YYDEBUG(705, *YYCURSOR);
8264
0
    yyaccept = 4;
8265
0
    yych = *(YYMARKER = ++YYCURSOR);
8266
0
    if (yych == 'D') goto yy769;
8267
0
    if (yych == 'd') goto yy769;
8268
0
    goto yy48;
8269
0
yy706:
8270
0
    YYDEBUG(706, *YYCURSOR);
8271
0
    yyaccept = 4;
8272
0
    yych = *(YYMARKER = ++YYCURSOR);
8273
0
    if (yych == 'P') goto yy770;
8274
0
    if (yych == 'p') goto yy770;
8275
0
    goto yy48;
8276
0
yy707:
8277
0
    YYDEBUG(707, *YYCURSOR);
8278
0
    yyaccept = 4;
8279
0
    yych = *(YYMARKER = ++YYCURSOR);
8280
0
    if (yych == 'R') goto yy771;
8281
0
    if (yych == 'r') goto yy771;
8282
0
    goto yy48;
8283
0
yy708:
8284
0
    YYDEBUG(708, *YYCURSOR);
8285
0
    yyaccept = 4;
8286
0
    yych = *(YYMARKER = ++YYCURSOR);
8287
0
    if (yych == '_') goto yy772;
8288
0
    goto yy48;
8289
0
yy709:
8290
0
    YYDEBUG(709, *YYCURSOR);
8291
0
    ++YYCURSOR;
8292
0
    YYFILL(1);
8293
0
    yych = *YYCURSOR;
8294
0
    YYDEBUG(710, *YYCURSOR);
8295
0
    if (yych <= ' ') {
8296
0
      if (yych <= '\n') {
8297
0
        if (yych <= 0x00) goto yy86;
8298
0
        if (yych <= 0x08) goto yy443;
8299
0
        if (yych <= '\t') goto yy709;
8300
0
        goto yy545;
8301
0
      } else {
8302
0
        if (yych == '\r') goto yy545;
8303
0
        if (yych <= 0x1F) goto yy443;
8304
0
        goto yy709;
8305
0
      }
8306
0
    } else {
8307
0
      if (yych <= ')') {
8308
0
        if (yych <= '"') goto yy443;
8309
0
        if (yych <= '#') goto yy773;
8310
0
        if (yych <= '$') goto yy774;
8311
0
        goto yy443;
8312
0
      } else {
8313
0
        if (yych <= '-') {
8314
0
          if (yych <= '*') goto yy547;
8315
0
          goto yy443;
8316
0
        } else {
8317
0
          if (yych <= '.') goto yy775;
8318
0
          if (yych <= '/') goto yy776;
8319
0
          goto yy443;
8320
0
        }
8321
0
      }
8322
0
    }
8323
0
yy711:
8324
0
    YYDEBUG(711, *YYCURSOR);
8325
0
    ++YYCURSOR;
8326
0
    YYFILL(1);
8327
0
    yych = *YYCURSOR;
8328
0
    if (yybm[0+yych] & 64) {
8329
0
      goto yy355;
8330
0
    }
8331
0
    if (yych <= 0x00) goto yy86;
8332
0
    if (yych == '.') goto yy631;
8333
0
    goto yy230;
8334
0
yy712:
8335
0
    YYDEBUG(712, *YYCURSOR);
8336
0
    ++YYCURSOR;
8337
0
    YYFILL(1);
8338
0
    yych = *YYCURSOR;
8339
0
    if (yybm[0+yych] & 64) {
8340
0
      goto yy355;
8341
0
    }
8342
0
    if (yych <= 0x00) goto yy86;
8343
0
    if (yych == '/') goto yy545;
8344
0
    goto yy230;
8345
0
yy713:
8346
0
    YYDEBUG(713, *YYCURSOR);
8347
0
    ++YYCURSOR;
8348
0
    YYDEBUG(714, *YYCURSOR);
8349
0
    yyleng = YYCURSOR - SCNG(yy_text);
8350
0
#line 1677 "Zend/zend_language_scanner.l"
8351
0
    {
8352
0
  if (PARSER_MODE()) {
8353
0
    zend_error(E_DEPRECATED, "Non-canonical cast (binary) is deprecated, use the (string) cast instead");
8354
0
    if (EG(exception)) {
8355
0
      RETURN_TOKEN(T_ERROR);
8356
0
    }
8357
0
  }
8358
0
  RETURN_TOKEN(T_STRING_CAST);
8359
0
}
8360
0
#line 8361 "Zend/zend_language_scanner.c"
8361
0
yy715:
8362
0
    YYDEBUG(715, *YYCURSOR);
8363
0
    ++YYCURSOR;
8364
0
    YYFILL(1);
8365
0
    yych = *YYCURSOR;
8366
0
    YYDEBUG(716, *YYCURSOR);
8367
0
    if (yych <= 0x1F) {
8368
0
      if (yych == '\t') goto yy715;
8369
0
      goto yy86;
8370
0
    } else {
8371
0
      if (yych <= ' ') goto yy715;
8372
0
      if (yych == ')') goto yy777;
8373
0
      goto yy86;
8374
0
    }
8375
0
yy717:
8376
0
    YYDEBUG(717, *YYCURSOR);
8377
0
    ++YYCURSOR;
8378
0
    YYDEBUG(718, *YYCURSOR);
8379
0
    yyleng = YYCURSOR - SCNG(yy_text);
8380
0
#line 1655 "Zend/zend_language_scanner.l"
8381
0
    {
8382
0
  if (PARSER_MODE()) {
8383
0
    zend_error(E_DEPRECATED, "Non-canonical cast (double) is deprecated, use the (float) cast instead");
8384
0
    if (EG(exception)) {
8385
0
      RETURN_TOKEN(T_ERROR);
8386
0
    }
8387
0
  }
8388
0
  RETURN_TOKEN(T_DOUBLE_CAST);
8389
0
}
8390
0
#line 8391 "Zend/zend_language_scanner.c"
8391
0
yy719:
8392
0
    YYDEBUG(719, *YYCURSOR);
8393
0
    ++YYCURSOR;
8394
0
    YYFILL(1);
8395
0
    yych = *YYCURSOR;
8396
0
    YYDEBUG(720, *YYCURSOR);
8397
0
    if (yych <= 0x1F) {
8398
0
      if (yych == '\t') goto yy719;
8399
0
      goto yy86;
8400
0
    } else {
8401
0
      if (yych <= ' ') goto yy719;
8402
0
      if (yych == ')') goto yy779;
8403
0
      goto yy86;
8404
0
    }
8405
0
yy721:
8406
0
    YYDEBUG(721, *YYCURSOR);
8407
0
    ++YYCURSOR;
8408
0
    YYDEBUG(722, *YYCURSOR);
8409
0
    yyleng = YYCURSOR - SCNG(yy_text);
8410
0
#line 1691 "Zend/zend_language_scanner.l"
8411
0
    {
8412
0
  RETURN_TOKEN(T_OBJECT_CAST);
8413
0
}
8414
0
#line 8415 "Zend/zend_language_scanner.c"
8415
0
yy723:
8416
0
    YYDEBUG(723, *YYCURSOR);
8417
0
    ++YYCURSOR;
8418
0
    YYDEBUG(724, *YYCURSOR);
8419
0
    yyleng = YYCURSOR - SCNG(yy_text);
8420
0
#line 1673 "Zend/zend_language_scanner.l"
8421
0
    {
8422
0
  RETURN_TOKEN(T_STRING_CAST);
8423
0
}
8424
0
#line 8425 "Zend/zend_language_scanner.c"
8425
0
yy725:
8426
0
    YYDEBUG(725, *YYCURSOR);
8427
0
    yyaccept = 68;
8428
0
    yych = *(YYMARKER = ++YYCURSOR);
8429
0
    if (yybm[256+yych] & 128) {
8430
0
      goto yy47;
8431
0
    }
8432
0
    if (yych == '\\') goto yy164;
8433
0
yy726:
8434
0
    YYDEBUG(726, *YYCURSOR);
8435
0
    yyleng = YYCURSOR - SCNG(yy_text);
8436
0
#line 1769 "Zend/zend_language_scanner.l"
8437
0
    {
8438
0
  RETURN_TOKEN_WITH_IDENT(T_ABSTRACT);
8439
0
}
8440
0
#line 8441 "Zend/zend_language_scanner.c"
8441
0
yy727:
8442
0
    YYDEBUG(727, *YYCURSOR);
8443
0
    yyaccept = 69;
8444
0
    yych = *(YYMARKER = ++YYCURSOR);
8445
0
    if (yybm[256+yych] & 128) {
8446
0
      goto yy47;
8447
0
    }
8448
0
    if (yych == '\\') goto yy164;
8449
0
yy728:
8450
0
    YYDEBUG(728, *YYCURSOR);
8451
0
    yyleng = YYCURSOR - SCNG(yy_text);
8452
0
#line 1821 "Zend/zend_language_scanner.l"
8453
0
    {
8454
0
  RETURN_TOKEN_WITH_IDENT(T_CALLABLE);
8455
0
}
8456
0
#line 8457 "Zend/zend_language_scanner.c"
8457
0
yy729:
8458
0
    YYDEBUG(729, *YYCURSOR);
8459
0
    yyaccept = 70;
8460
0
    yych = *(YYMARKER = ++YYCURSOR);
8461
0
    if (yybm[256+yych] & 128) {
8462
0
      goto yy47;
8463
0
    }
8464
0
    if (yych == '\\') goto yy164;
8465
0
yy730:
8466
0
    YYDEBUG(730, *YYCURSOR);
8467
0
    yyleng = YYCURSOR - SCNG(yy_text);
8468
0
#line 1537 "Zend/zend_language_scanner.l"
8469
0
    {
8470
0
  RETURN_TOKEN_WITH_IDENT(T_CONTINUE);
8471
0
}
8472
0
#line 8473 "Zend/zend_language_scanner.c"
8473
0
yy731:
8474
0
    YYDEBUG(731, *YYCURSOR);
8475
0
    yyaccept = 4;
8476
0
    yych = *(YYMARKER = ++YYCURSOR);
8477
0
    if (yych == 'R') goto yy781;
8478
0
    if (yych == 'r') goto yy781;
8479
0
    goto yy48;
8480
0
yy732:
8481
0
    YYDEBUG(732, *YYCURSOR);
8482
0
    yyaccept = 4;
8483
0
    yych = *(YYMARKER = ++YYCURSOR);
8484
0
    if (yych == 'C') goto yy782;
8485
0
    if (yych == 'c') goto yy782;
8486
0
    goto yy48;
8487
0
yy733:
8488
0
    YYDEBUG(733, *YYCURSOR);
8489
0
    yyaccept = 4;
8490
0
    yych = *(YYMARKER = ++YYCURSOR);
8491
0
    if (yych == 'H') goto yy783;
8492
0
    if (yych == 'h') goto yy783;
8493
0
    goto yy48;
8494
0
yy734:
8495
0
    YYDEBUG(734, *YYCURSOR);
8496
0
    yyaccept = 71;
8497
0
    yych = *(YYMARKER = ++YYCURSOR);
8498
0
    if (yybm[256+yych] & 128) {
8499
0
      goto yy47;
8500
0
    }
8501
0
    if (yych == '\\') goto yy164;
8502
0
yy735:
8503
0
    YYDEBUG(735, *YYCURSOR);
8504
0
    yyleng = YYCURSOR - SCNG(yy_text);
8505
0
#line 1473 "Zend/zend_language_scanner.l"
8506
0
    {
8507
0
  RETURN_TOKEN_WITH_IDENT(T_ENDWHILE);
8508
0
}
8509
0
#line 8510 "Zend/zend_language_scanner.c"
8510
0
yy736:
8511
0
    YYDEBUG(736, *YYCURSOR);
8512
0
    yych = *++YYCURSOR;
8513
0
    if (yych == 'E') goto yy785;
8514
0
    if (yych == 'e') goto yy785;
8515
0
    goto yy86;
8516
0
yy737:
8517
0
    YYDEBUG(737, *YYCURSOR);
8518
0
    yych = *++YYCURSOR;
8519
0
    if (yych == 'L') goto yy786;
8520
0
    if (yych == 'l') goto yy786;
8521
0
    goto yy86;
8522
0
yy738:
8523
0
    YYDEBUG(738, *YYCURSOR);
8524
0
    ++YYCURSOR;
8525
0
    YYFILL(1);
8526
0
    yych = *YYCURSOR;
8527
0
    YYDEBUG(739, *YYCURSOR);
8528
0
    if (yych <= '\f') {
8529
0
      if (yych <= 0x00) goto yy86;
8530
0
      if (yych == '\n') goto yy787;
8531
0
      goto yy738;
8532
0
    } else {
8533
0
      if (yych <= '\r') goto yy787;
8534
0
      if (yych == '*') goto yy789;
8535
0
      goto yy738;
8536
0
    }
8537
0
yy740:
8538
0
    YYDEBUG(740, *YYCURSOR);
8539
0
    ++YYCURSOR;
8540
0
    YYFILL(1);
8541
0
    yych = *YYCURSOR;
8542
0
    if (yych <= '\r') {
8543
0
      if (yych <= '\t') {
8544
0
        if (yych <= 0x00) goto yy86;
8545
0
        goto yy586;
8546
0
      } else {
8547
0
        if (yych <= '\n') goto yy495;
8548
0
        if (yych <= '\f') goto yy586;
8549
0
        goto yy495;
8550
0
      }
8551
0
    } else {
8552
0
      if (yych <= 'T') {
8553
0
        if (yych <= 'S') goto yy586;
8554
0
        goto yy791;
8555
0
      } else {
8556
0
        if (yych == 't') goto yy791;
8557
0
        goto yy586;
8558
0
      }
8559
0
    }
8560
0
yy741:
8561
0
    YYDEBUG(741, *YYCURSOR);
8562
0
    ++YYCURSOR;
8563
0
    YYFILL(1);
8564
0
    yych = *YYCURSOR;
8565
0
    if (yych <= '\r') {
8566
0
      if (yych <= '\t') {
8567
0
        if (yych <= 0x00) goto yy86;
8568
0
        goto yy586;
8569
0
      } else {
8570
0
        if (yych <= '\n') goto yy495;
8571
0
        if (yych <= '\f') goto yy586;
8572
0
        goto yy495;
8573
0
      }
8574
0
    } else {
8575
0
      if (yych <= 'P') {
8576
0
        if (yych <= 'O') goto yy586;
8577
0
        goto yy792;
8578
0
      } else {
8579
0
        if (yych == 'p') goto yy792;
8580
0
        goto yy586;
8581
0
      }
8582
0
    }
8583
0
yy742:
8584
0
    YYDEBUG(742, *YYCURSOR);
8585
0
    yyaccept = 72;
8586
0
    yych = *(YYMARKER = ++YYCURSOR);
8587
0
    if (yybm[256+yych] & 128) {
8588
0
      goto yy47;
8589
0
    }
8590
0
    if (yych == '\\') goto yy164;
8591
0
yy743:
8592
0
    YYDEBUG(743, *YYCURSOR);
8593
0
    yyleng = YYCURSOR - SCNG(yy_text);
8594
0
#line 1410 "Zend/zend_language_scanner.l"
8595
0
    {
8596
0
  RETURN_TOKEN_WITH_IDENT(T_FUNCTION);
8597
0
}
8598
0
#line 8599 "Zend/zend_language_scanner.c"
8599
0
yy744:
8600
0
    YYDEBUG(744, *YYCURSOR);
8601
0
    yyaccept = 4;
8602
0
    yych = *(YYMARKER = ++YYCURSOR);
8603
0
    if (yych == 'T') goto yy793;
8604
0
    if (yych == 't') goto yy793;
8605
0
    goto yy48;
8606
0
yy745:
8607
0
    YYDEBUG(745, *YYCURSOR);
8608
0
    yyaccept = 4;
8609
0
    yych = *(YYMARKER = ++YYCURSOR);
8610
0
    if (yych == 'O') goto yy794;
8611
0
    if (yych == 'o') goto yy794;
8612
0
    goto yy48;
8613
0
yy746:
8614
0
    YYDEBUG(746, *YYCURSOR);
8615
0
    yyaccept = 4;
8616
0
    yych = *(YYMARKER = ++YYCURSOR);
8617
0
    if (yych == 'O') goto yy795;
8618
0
    if (yych == 'o') goto yy795;
8619
0
    goto yy48;
8620
0
yy747:
8621
0
    YYDEBUG(747, *YYCURSOR);
8622
0
    yyaccept = 4;
8623
0
    yych = *(YYMARKER = ++YYCURSOR);
8624
0
    if (yych == 'F') goto yy796;
8625
0
    if (yych == 'f') goto yy796;
8626
0
    goto yy48;
8627
0
yy748:
8628
0
    YYDEBUG(748, *YYCURSOR);
8629
0
    yyaccept = 4;
8630
0
    yych = *(YYMARKER = ++YYCURSOR);
8631
0
    if (yych == 'E') goto yy798;
8632
0
    if (yych == 'e') goto yy798;
8633
0
    goto yy48;
8634
0
yy749:
8635
0
    YYDEBUG(749, *YYCURSOR);
8636
0
    yyaccept = 4;
8637
0
    yych = *(YYMARKER = ++YYCURSOR);
8638
0
    if (yych == 'E') goto yy800;
8639
0
    if (yych == 'e') goto yy800;
8640
0
    goto yy48;
8641
0
yy750:
8642
0
    YYDEBUG(750, *YYCURSOR);
8643
0
    yych = *++YYCURSOR;
8644
0
    if (yych == 'S') goto yy802;
8645
0
    if (yych == 's') goto yy802;
8646
0
    goto yy86;
8647
0
yy751:
8648
0
    YYDEBUG(751, *YYCURSOR);
8649
0
    yyaccept = 4;
8650
0
    yych = *(YYMARKER = ++YYCURSOR);
8651
0
    if (yych == 'D') goto yy803;
8652
0
    if (yych == 'd') goto yy803;
8653
0
    goto yy48;
8654
0
yy752:
8655
0
    YYDEBUG(752, *YYCURSOR);
8656
0
    yych = *++YYCURSOR;
8657
0
    if (yych == 'E') goto yy805;
8658
0
    if (yych == 'e') goto yy805;
8659
0
    goto yy86;
8660
0
yy753:
8661
0
    YYDEBUG(753, *YYCURSOR);
8662
0
    yyaccept = 73;
8663
0
    yych = *(YYMARKER = ++YYCURSOR);
8664
0
    if (yybm[256+yych] & 128) {
8665
0
      goto yy47;
8666
0
    }
8667
0
    if (yych == '\\') goto yy164;
8668
0
yy754:
8669
0
    YYDEBUG(754, *YYCURSOR);
8670
0
    yyleng = YYCURSOR - SCNG(yy_text);
8671
0
#line 1801 "Zend/zend_language_scanner.l"
8672
0
    {
8673
0
  RETURN_TOKEN_WITH_IDENT(T_READONLY);
8674
0
}
8675
0
#line 8676 "Zend/zend_language_scanner.c"
8676
0
yy755:
8677
0
    YYDEBUG(755, *YYCURSOR);
8678
0
    yyaccept = 4;
8679
0
    yych = *(YYMARKER = ++YYCURSOR);
8680
0
    if (yych == 'O') goto yy806;
8681
0
    if (yych == 'o') goto yy806;
8682
0
    goto yy48;
8683
0
yy756:
8684
0
    YYDEBUG(756, *YYCURSOR);
8685
0
    yych = *++YYCURSOR;
8686
0
    if (yych == 'O') goto yy807;
8687
0
    if (yych == 'o') goto yy807;
8688
0
    goto yy86;
8689
0
yy757:
8690
0
    YYDEBUG(757, *YYCURSOR);
8691
0
    ++YYCURSOR;
8692
0
    YYFILL(1);
8693
0
    yych = *YYCURSOR;
8694
0
    if (yych <= '\n') {
8695
0
      if (yych <= 0x00) goto yy86;
8696
0
      if (yych <= '\t') goto yy692;
8697
0
      goto yy694;
8698
0
    } else {
8699
0
      if (yych == '\r') goto yy694;
8700
0
      goto yy692;
8701
0
    }
8702
0
yy758:
8703
0
    YYDEBUG(758, *YYCURSOR);
8704
0
    ++YYCURSOR;
8705
0
    YYFILL(1);
8706
0
    yych = *YYCURSOR;
8707
0
    if (yych <= '\f') {
8708
0
      if (yych <= 0x00) goto yy86;
8709
0
      if (yych == '\n') goto yy616;
8710
0
      goto yy692;
8711
0
    } else {
8712
0
      if (yych <= '\r') goto yy616;
8713
0
      if (yych == '*') goto yy808;
8714
0
      goto yy692;
8715
0
    }
8716
0
yy759:
8717
0
    YYDEBUG(759, *YYCURSOR);
8718
0
    ++YYCURSOR;
8719
0
    YYFILL(1);
8720
0
    yych = *YYCURSOR;
8721
0
    if (yych <= '\r') {
8722
0
      if (yych <= '\t') {
8723
0
        if (yych <= 0x00) goto yy86;
8724
0
        goto yy692;
8725
0
      } else {
8726
0
        if (yych <= '\n') goto yy616;
8727
0
        if (yych <= '\f') goto yy692;
8728
0
        goto yy616;
8729
0
      }
8730
0
    } else {
8731
0
      if (yych <= 'R') {
8732
0
        if (yych <= 'Q') goto yy692;
8733
0
        goto yy810;
8734
0
      } else {
8735
0
        if (yych == 'r') goto yy810;
8736
0
        goto yy692;
8737
0
      }
8738
0
    }
8739
0
yy760:
8740
0
    YYDEBUG(760, *YYCURSOR);
8741
0
    ++YYCURSOR;
8742
0
    YYFILL(1);
8743
0
    yych = *YYCURSOR;
8744
0
    YYDEBUG(761, *YYCURSOR);
8745
0
    if (yych <= '*') {
8746
0
      if (yych <= 0x00) goto yy86;
8747
0
      if (yych <= ')') goto yy696;
8748
0
      goto yy760;
8749
0
    } else {
8750
0
      if (yych == '/') goto yy616;
8751
0
      goto yy696;
8752
0
    }
8753
0
yy762:
8754
0
    YYDEBUG(762, *YYCURSOR);
8755
0
    yyaccept = 4;
8756
0
    yych = *(YYMARKER = ++YYCURSOR);
8757
0
    if (yych == '_') goto yy811;
8758
0
    goto yy48;
8759
0
yy763:
8760
0
    YYDEBUG(763, *YYCURSOR);
8761
0
    yyaccept = 74;
8762
0
    yych = *(YYMARKER = ++YYCURSOR);
8763
0
    if (yybm[256+yych] & 128) {
8764
0
      goto yy47;
8765
0
    }
8766
0
    if (yych == '\\') goto yy164;
8767
0
yy764:
8768
0
    YYDEBUG(764, *YYCURSOR);
8769
0
    yyleng = YYCURSOR - SCNG(yy_text);
8770
0
#line 2276 "Zend/zend_language_scanner.l"
8771
0
    {
8772
0
  RETURN_TOKEN_WITH_IDENT(T_FILE);
8773
0
}
8774
0
#line 8775 "Zend/zend_language_scanner.c"
8775
0
yy765:
8776
0
    YYDEBUG(765, *YYCURSOR);
8777
0
    yyaccept = 4;
8778
0
    yych = *(YYMARKER = ++YYCURSOR);
8779
0
    if (yych == 'O') goto yy813;
8780
0
    if (yych == 'o') goto yy813;
8781
0
    goto yy48;
8782
0
yy766:
8783
0
    YYDEBUG(766, *YYCURSOR);
8784
0
    yyaccept = 4;
8785
0
    yych = *(YYMARKER = ++YYCURSOR);
8786
0
    if (yych == 'O') goto yy814;
8787
0
    if (yych == 'o') goto yy814;
8788
0
    goto yy48;
8789
0
yy767:
8790
0
    YYDEBUG(767, *YYCURSOR);
8791
0
    yyaccept = 75;
8792
0
    yych = *(YYMARKER = ++YYCURSOR);
8793
0
    if (yybm[256+yych] & 128) {
8794
0
      goto yy47;
8795
0
    }
8796
0
    if (yych == '\\') goto yy164;
8797
0
yy768:
8798
0
    YYDEBUG(768, *YYCURSOR);
8799
0
    yyleng = YYCURSOR - SCNG(yy_text);
8800
0
#line 2272 "Zend/zend_language_scanner.l"
8801
0
    {
8802
0
  RETURN_TOKEN_WITH_IDENT(T_LINE);
8803
0
}
8804
0
#line 8805 "Zend/zend_language_scanner.c"
8805
0
yy769:
8806
0
    YYDEBUG(769, *YYCURSOR);
8807
0
    yyaccept = 4;
8808
0
    yych = *(YYMARKER = ++YYCURSOR);
8809
0
    if (yych == '_') goto yy815;
8810
0
    goto yy48;
8811
0
yy770:
8812
0
    YYDEBUG(770, *YYCURSOR);
8813
0
    yyaccept = 4;
8814
0
    yych = *(YYMARKER = ++YYCURSOR);
8815
0
    if (yych == 'A') goto yy816;
8816
0
    if (yych == 'a') goto yy816;
8817
0
    goto yy48;
8818
0
yy771:
8819
0
    YYDEBUG(771, *YYCURSOR);
8820
0
    yyaccept = 4;
8821
0
    yych = *(YYMARKER = ++YYCURSOR);
8822
0
    if (yych == 'T') goto yy817;
8823
0
    if (yych == 't') goto yy817;
8824
0
    goto yy48;
8825
0
yy772:
8826
0
    YYDEBUG(772, *YYCURSOR);
8827
0
    yyaccept = 4;
8828
0
    yych = *(YYMARKER = ++YYCURSOR);
8829
0
    if (yych == '_') goto yy818;
8830
0
    goto yy48;
8831
0
yy773:
8832
0
    YYDEBUG(773, *YYCURSOR);
8833
0
    ++YYCURSOR;
8834
0
    YYFILL(1);
8835
0
    yych = *YYCURSOR;
8836
0
    if (yybm[0+yych] & 128) {
8837
0
      goto yy443;
8838
0
    }
8839
0
    if (yych <= 0x00) goto yy86;
8840
0
    if (yych <= '\r') goto yy709;
8841
0
    goto yy547;
8842
0
yy774:
8843
0
    YYDEBUG(774, *YYCURSOR);
8844
0
    yyaccept = 26;
8845
0
    YYMARKER = ++YYCURSOR;
8846
0
    YYFILL(1);
8847
0
    yych = *YYCURSOR;
8848
0
    if (yybm[0+yych] & 128) {
8849
0
      goto yy443;
8850
0
    }
8851
0
    if (yych <= 0x00) goto yy89;
8852
0
    if (yych <= '\r') goto yy545;
8853
0
    goto yy547;
8854
0
yy775:
8855
0
    YYDEBUG(775, *YYCURSOR);
8856
0
    ++YYCURSOR;
8857
0
    YYFILL(1);
8858
0
    yych = *YYCURSOR;
8859
0
    if (yych <= '\r') {
8860
0
      if (yych <= '\t') {
8861
0
        if (yych <= 0x00) goto yy86;
8862
0
        goto yy443;
8863
0
      } else {
8864
0
        if (yych <= '\n') goto yy545;
8865
0
        if (yych <= '\f') goto yy443;
8866
0
        goto yy545;
8867
0
      }
8868
0
    } else {
8869
0
      if (yych <= '*') {
8870
0
        if (yych <= ')') goto yy443;
8871
0
        goto yy547;
8872
0
      } else {
8873
0
        if (yych == '.') goto yy820;
8874
0
        goto yy443;
8875
0
      }
8876
0
    }
8877
0
yy776:
8878
0
    YYDEBUG(776, *YYCURSOR);
8879
0
    ++YYCURSOR;
8880
0
    YYFILL(1);
8881
0
    yych = *YYCURSOR;
8882
0
    if (yybm[0+yych] & 128) {
8883
0
      goto yy443;
8884
0
    }
8885
0
    if (yych <= 0x00) goto yy86;
8886
0
    if (yych <= '\r') goto yy545;
8887
0
    goto yy821;
8888
0
yy777:
8889
0
    YYDEBUG(777, *YYCURSOR);
8890
0
    ++YYCURSOR;
8891
0
    YYDEBUG(778, *YYCURSOR);
8892
0
    yyleng = YYCURSOR - SCNG(yy_text);
8893
0
#line 1699 "Zend/zend_language_scanner.l"
8894
0
    {
8895
0
  if (PARSER_MODE()) {
8896
0
    zend_error(E_DEPRECATED, "Non-canonical cast (boolean) is deprecated, use the (bool) cast instead");
8897
0
    if (EG(exception)) {
8898
0
      RETURN_TOKEN(T_ERROR);
8899
0
    }
8900
0
  }
8901
0
  RETURN_TOKEN(T_BOOL_CAST);
8902
0
}
8903
0
#line 8904 "Zend/zend_language_scanner.c"
8904
0
yy779:
8905
0
    YYDEBUG(779, *YYCURSOR);
8906
0
    ++YYCURSOR;
8907
0
    YYDEBUG(780, *YYCURSOR);
8908
0
    yyleng = YYCURSOR - SCNG(yy_text);
8909
0
#line 1641 "Zend/zend_language_scanner.l"
8910
0
    {
8911
0
  if (PARSER_MODE()) {
8912
0
    zend_error(E_DEPRECATED, "Non-canonical cast (integer) is deprecated, use the (int) cast instead");
8913
0
    if (EG(exception)) {
8914
0
      RETURN_TOKEN(T_ERROR);
8915
0
    }
8916
0
  }
8917
0
  RETURN_TOKEN(T_INT_CAST);
8918
0
}
8919
0
#line 8920 "Zend/zend_language_scanner.c"
8920
0
yy781:
8921
0
    YYDEBUG(781, *YYCURSOR);
8922
0
    yyaccept = 4;
8923
0
    yych = *(YYMARKER = ++YYCURSOR);
8924
0
    if (yych == 'E') goto yy822;
8925
0
    if (yych == 'e') goto yy822;
8926
0
    goto yy48;
8927
0
yy782:
8928
0
    YYDEBUG(782, *YYCURSOR);
8929
0
    yyaccept = 4;
8930
0
    yych = *(YYMARKER = ++YYCURSOR);
8931
0
    if (yych == 'H') goto yy824;
8932
0
    if (yych == 'h') goto yy824;
8933
0
    goto yy48;
8934
0
yy783:
8935
0
    YYDEBUG(783, *YYCURSOR);
8936
0
    yyaccept = 76;
8937
0
    yych = *(YYMARKER = ++YYCURSOR);
8938
0
    if (yybm[256+yych] & 128) {
8939
0
      goto yy47;
8940
0
    }
8941
0
    if (yych == '\\') goto yy164;
8942
0
yy784:
8943
0
    YYDEBUG(784, *YYCURSOR);
8944
0
    yyleng = YYCURSOR - SCNG(yy_text);
8945
0
#line 1521 "Zend/zend_language_scanner.l"
8946
0
    {
8947
0
  RETURN_TOKEN_WITH_IDENT(T_ENDSWITCH);
8948
0
}
8949
0
#line 8950 "Zend/zend_language_scanner.c"
8950
0
yy785:
8951
0
    YYDEBUG(785, *YYCURSOR);
8952
0
    yych = *++YYCURSOR;
8953
0
    if (yych == 'N') goto yy826;
8954
0
    if (yych == 'n') goto yy826;
8955
0
    goto yy86;
8956
0
yy786:
8957
0
    YYDEBUG(786, *YYCURSOR);
8958
0
    yych = *++YYCURSOR;
8959
0
    if (yych == 'E') goto yy827;
8960
0
    if (yych == 'e') goto yy827;
8961
0
    goto yy86;
8962
0
yy787:
8963
0
    YYDEBUG(787, *YYCURSOR);
8964
0
    ++YYCURSOR;
8965
0
    YYFILL(1);
8966
0
    yych = *YYCURSOR;
8967
0
    YYDEBUG(788, *YYCURSOR);
8968
0
    if (yych <= '@') {
8969
0
      if (yych <= ' ') {
8970
0
        if (yych <= '\n') {
8971
0
          if (yych <= 0x00) goto yy86;
8972
0
          if (yych <= 0x08) goto yy590;
8973
0
          goto yy787;
8974
0
        } else {
8975
0
          if (yych == '\r') goto yy787;
8976
0
          if (yych <= 0x1F) goto yy590;
8977
0
          goto yy787;
8978
0
        }
8979
0
      } else {
8980
0
        if (yych <= ')') {
8981
0
          if (yych == '#') goto yy828;
8982
0
          goto yy590;
8983
0
        } else {
8984
0
          if (yych <= '*') goto yy668;
8985
0
          if (yych == '/') goto yy829;
8986
0
          goto yy590;
8987
0
        }
8988
0
      }
8989
0
    } else {
8990
0
      if (yych <= '_') {
8991
0
        if (yych <= 'H') {
8992
0
          if (yych == 'E') goto yy831;
8993
0
          goto yy830;
8994
0
        } else {
8995
0
          if (yych <= 'I') goto yy832;
8996
0
          if (yych <= 'Z') goto yy830;
8997
0
          if (yych <= '^') goto yy590;
8998
0
          goto yy830;
8999
0
        }
9000
0
      } else {
9001
0
        if (yych <= 'h') {
9002
0
          if (yych <= '`') goto yy590;
9003
0
          if (yych == 'e') goto yy831;
9004
0
          goto yy830;
9005
0
        } else {
9006
0
          if (yych <= 'i') goto yy832;
9007
0
          if (yych <= 'z') goto yy830;
9008
0
          if (yych <= 0x7F) goto yy590;
9009
0
          goto yy830;
9010
0
        }
9011
0
      }
9012
0
    }
9013
0
yy789:
9014
0
    YYDEBUG(789, *YYCURSOR);
9015
0
    ++YYCURSOR;
9016
0
    YYFILL(1);
9017
0
    yych = *YYCURSOR;
9018
0
    YYDEBUG(790, *YYCURSOR);
9019
0
    if (yych <= '\r') {
9020
0
      if (yych <= '\t') {
9021
0
        if (yych <= 0x00) goto yy86;
9022
0
        goto yy738;
9023
0
      } else {
9024
0
        if (yych <= '\n') goto yy787;
9025
0
        if (yych <= '\f') goto yy738;
9026
0
        goto yy787;
9027
0
      }
9028
0
    } else {
9029
0
      if (yych <= '*') {
9030
0
        if (yych <= ')') goto yy738;
9031
0
        goto yy789;
9032
0
      } else {
9033
0
        if (yych == '/') goto yy588;
9034
0
        goto yy738;
9035
0
      }
9036
0
    }
9037
0
yy791:
9038
0
    YYDEBUG(791, *YYCURSOR);
9039
0
    ++YYCURSOR;
9040
0
    YYFILL(1);
9041
0
    yych = *YYCURSOR;
9042
0
    if (yych <= '\r') {
9043
0
      if (yych <= '\t') {
9044
0
        if (yych <= 0x00) goto yy86;
9045
0
        goto yy586;
9046
0
      } else {
9047
0
        if (yych <= '\n') goto yy495;
9048
0
        if (yych <= '\f') goto yy586;
9049
0
        goto yy495;
9050
0
      }
9051
0
    } else {
9052
0
      if (yych <= 'E') {
9053
0
        if (yych <= 'D') goto yy586;
9054
0
        goto yy833;
9055
0
      } else {
9056
0
        if (yych == 'e') goto yy833;
9057
0
        goto yy586;
9058
0
      }
9059
0
    }
9060
0
yy792:
9061
0
    YYDEBUG(792, *YYCURSOR);
9062
0
    ++YYCURSOR;
9063
0
    YYFILL(1);
9064
0
    yych = *YYCURSOR;
9065
0
    if (yych <= '\r') {
9066
0
      if (yych <= '\t') {
9067
0
        if (yych <= 0x00) goto yy86;
9068
0
        goto yy586;
9069
0
      } else {
9070
0
        if (yych <= '\n') goto yy495;
9071
0
        if (yych <= '\f') goto yy586;
9072
0
        goto yy495;
9073
0
      }
9074
0
    } else {
9075
0
      if (yych <= 'L') {
9076
0
        if (yych <= 'K') goto yy586;
9077
0
        goto yy834;
9078
0
      } else {
9079
0
        if (yych == 'l') goto yy834;
9080
0
        goto yy586;
9081
0
      }
9082
0
    }
9083
0
yy793:
9084
0
    YYDEBUG(793, *YYCURSOR);
9085
0
    yyaccept = 4;
9086
0
    yych = *(YYMARKER = ++YYCURSOR);
9087
0
    if (yych == 'S') goto yy835;
9088
0
    if (yych == 's') goto yy835;
9089
0
    goto yy48;
9090
0
yy794:
9091
0
    YYDEBUG(794, *YYCURSOR);
9092
0
    yyaccept = 4;
9093
0
    yych = *(YYMARKER = ++YYCURSOR);
9094
0
    if (yych == 'N') goto yy837;
9095
0
    if (yych == 'n') goto yy837;
9096
0
    goto yy48;
9097
0
yy795:
9098
0
    YYDEBUG(795, *YYCURSOR);
9099
0
    yyaccept = 4;
9100
0
    yych = *(YYMARKER = ++YYCURSOR);
9101
0
    if (yych == 'F') goto yy838;
9102
0
    if (yych == 'f') goto yy838;
9103
0
    goto yy48;
9104
0
yy796:
9105
0
    YYDEBUG(796, *YYCURSOR);
9106
0
    yyaccept = 77;
9107
0
    yych = *(YYMARKER = ++YYCURSOR);
9108
0
    if (yybm[256+yych] & 128) {
9109
0
      goto yy47;
9110
0
    }
9111
0
    if (yych == '\\') goto yy164;
9112
0
yy797:
9113
0
    YYDEBUG(797, *YYCURSOR);
9114
0
    yyleng = YYCURSOR - SCNG(yy_text);
9115
0
#line 1745 "Zend/zend_language_scanner.l"
9116
0
    {
9117
0
    RETURN_TOKEN_WITH_IDENT(T_INSTEADOF);
9118
0
}
9119
0
#line 9120 "Zend/zend_language_scanner.c"
9120
0
yy798:
9121
0
    YYDEBUG(798, *YYCURSOR);
9122
0
    yyaccept = 78;
9123
0
    yych = *(YYMARKER = ++YYCURSOR);
9124
0
    if (yybm[256+yych] & 128) {
9125
0
      goto yy47;
9126
0
    }
9127
0
    if (yych == '\\') goto yy164;
9128
0
yy799:
9129
0
    YYDEBUG(799, *YYCURSOR);
9130
0
    yyleng = YYCURSOR - SCNG(yy_text);
9131
0
#line 1557 "Zend/zend_language_scanner.l"
9132
0
    {
9133
0
  RETURN_TOKEN_WITH_IDENT(T_INTERFACE);
9134
0
}
9135
0
#line 9136 "Zend/zend_language_scanner.c"
9136
0
yy800:
9137
0
    YYDEBUG(800, *YYCURSOR);
9138
0
    yyaccept = 79;
9139
0
    yych = *(YYMARKER = ++YYCURSOR);
9140
0
    if (yybm[256+yych] & 128) {
9141
0
      goto yy47;
9142
0
    }
9143
0
    if (yych == '\\') goto yy840;
9144
0
yy801:
9145
0
    YYDEBUG(801, *YYCURSOR);
9146
0
    yyleng = YYCURSOR - SCNG(yy_text);
9147
0
#line 1737 "Zend/zend_language_scanner.l"
9148
0
    {
9149
0
  RETURN_TOKEN_WITH_IDENT(T_NAMESPACE);
9150
0
}
9151
0
#line 9152 "Zend/zend_language_scanner.c"
9152
0
yy802:
9153
0
    YYDEBUG(802, *YYCURSOR);
9154
0
    yych = *++YYCURSOR;
9155
0
    if (yych == 'E') goto yy841;
9156
0
    if (yych == 'e') goto yy841;
9157
0
    goto yy86;
9158
0
yy803:
9159
0
    YYDEBUG(803, *YYCURSOR);
9160
0
    yyaccept = 80;
9161
0
    yych = *(YYMARKER = ++YYCURSOR);
9162
0
    if (yybm[256+yych] & 128) {
9163
0
      goto yy47;
9164
0
    }
9165
0
    if (yych == '(') goto yy842;
9166
0
    if (yych == '\\') goto yy164;
9167
0
yy804:
9168
0
    YYDEBUG(804, *YYCURSOR);
9169
0
    yyleng = YYCURSOR - SCNG(yy_text);
9170
0
#line 1781 "Zend/zend_language_scanner.l"
9171
0
    {
9172
0
  RETURN_TOKEN_WITH_IDENT(T_PROTECTED);
9173
0
}
9174
0
#line 9175 "Zend/zend_language_scanner.c"
9175
0
yy805:
9176
0
    YYDEBUG(805, *YYCURSOR);
9177
0
    yych = *++YYCURSOR;
9178
0
    if (yych == 'T') goto yy843;
9179
0
    if (yych == 't') goto yy843;
9180
0
    goto yy86;
9181
0
yy806:
9182
0
    YYDEBUG(806, *YYCURSOR);
9183
0
    yyaccept = 4;
9184
0
    yych = *(YYMARKER = ++YYCURSOR);
9185
0
    if (yych == 'N') goto yy844;
9186
0
    if (yych == 'n') goto yy844;
9187
0
    goto yy48;
9188
0
yy807:
9189
0
    YYDEBUG(807, *YYCURSOR);
9190
0
    yych = *++YYCURSOR;
9191
0
    if (yych == 'M') goto yy845;
9192
0
    if (yych == 'm') goto yy845;
9193
0
    goto yy86;
9194
0
yy808:
9195
0
    YYDEBUG(808, *YYCURSOR);
9196
0
    ++YYCURSOR;
9197
0
    YYFILL(1);
9198
0
    yych = *YYCURSOR;
9199
0
    YYDEBUG(809, *YYCURSOR);
9200
0
    if (yych <= '\f') {
9201
0
      if (yych <= 0x00) goto yy86;
9202
0
      if (yych == '\n') goto yy846;
9203
0
      goto yy808;
9204
0
    } else {
9205
0
      if (yych <= '\r') goto yy846;
9206
0
      if (yych == '*') goto yy848;
9207
0
      goto yy808;
9208
0
    }
9209
0
yy810:
9210
0
    YYDEBUG(810, *YYCURSOR);
9211
0
    ++YYCURSOR;
9212
0
    YYFILL(1);
9213
0
    yych = *YYCURSOR;
9214
0
    if (yych <= '\r') {
9215
0
      if (yych <= '\t') {
9216
0
        if (yych <= 0x00) goto yy86;
9217
0
        goto yy692;
9218
0
      } else {
9219
0
        if (yych <= '\n') goto yy616;
9220
0
        if (yych <= '\f') goto yy692;
9221
0
        goto yy616;
9222
0
      }
9223
0
    } else {
9224
0
      if (yych <= 'O') {
9225
0
        if (yych <= 'N') goto yy692;
9226
0
        goto yy850;
9227
0
      } else {
9228
0
        if (yych == 'o') goto yy850;
9229
0
        goto yy692;
9230
0
      }
9231
0
    }
9232
0
yy811:
9233
0
    YYDEBUG(811, *YYCURSOR);
9234
0
    yyaccept = 81;
9235
0
    yych = *(YYMARKER = ++YYCURSOR);
9236
0
    if (yybm[256+yych] & 128) {
9237
0
      goto yy47;
9238
0
    }
9239
0
    if (yych == '\\') goto yy164;
9240
0
yy812:
9241
0
    YYDEBUG(812, *YYCURSOR);
9242
0
    yyleng = YYCURSOR - SCNG(yy_text);
9243
0
#line 2252 "Zend/zend_language_scanner.l"
9244
0
    {
9245
0
  RETURN_TOKEN_WITH_IDENT(T_CLASS_C);
9246
0
}
9247
0
#line 9248 "Zend/zend_language_scanner.c"
9248
0
yy813:
9249
0
    YYDEBUG(813, *YYCURSOR);
9250
0
    yyaccept = 4;
9251
0
    yych = *(YYMARKER = ++YYCURSOR);
9252
0
    if (yych == 'N') goto yy851;
9253
0
    if (yych == 'n') goto yy851;
9254
0
    goto yy48;
9255
0
yy814:
9256
0
    YYDEBUG(814, *YYCURSOR);
9257
0
    yyaccept = 4;
9258
0
    yych = *(YYMARKER = ++YYCURSOR);
9259
0
    if (yych == 'M') goto yy852;
9260
0
    if (yych == 'm') goto yy852;
9261
0
    goto yy48;
9262
0
yy815:
9263
0
    YYDEBUG(815, *YYCURSOR);
9264
0
    yyaccept = 4;
9265
0
    yych = *(YYMARKER = ++YYCURSOR);
9266
0
    if (yych == '_') goto yy853;
9267
0
    goto yy48;
9268
0
yy816:
9269
0
    YYDEBUG(816, *YYCURSOR);
9270
0
    yyaccept = 4;
9271
0
    yych = *(YYMARKER = ++YYCURSOR);
9272
0
    if (yych == 'C') goto yy855;
9273
0
    if (yych == 'c') goto yy855;
9274
0
    goto yy48;
9275
0
yy817:
9276
0
    YYDEBUG(817, *YYCURSOR);
9277
0
    yyaccept = 4;
9278
0
    yych = *(YYMARKER = ++YYCURSOR);
9279
0
    if (yych == 'Y') goto yy856;
9280
0
    if (yych == 'y') goto yy856;
9281
0
    goto yy48;
9282
0
yy818:
9283
0
    YYDEBUG(818, *YYCURSOR);
9284
0
    yyaccept = 82;
9285
0
    yych = *(YYMARKER = ++YYCURSOR);
9286
0
    if (yybm[256+yych] & 128) {
9287
0
      goto yy47;
9288
0
    }
9289
0
    if (yych == '\\') goto yy164;
9290
0
yy819:
9291
0
    YYDEBUG(819, *YYCURSOR);
9292
0
    yyleng = YYCURSOR - SCNG(yy_text);
9293
0
#line 2256 "Zend/zend_language_scanner.l"
9294
0
    {
9295
0
  RETURN_TOKEN_WITH_IDENT(T_TRAIT_C);
9296
0
}
9297
0
#line 9298 "Zend/zend_language_scanner.c"
9298
0
yy820:
9299
0
    YYDEBUG(820, *YYCURSOR);
9300
0
    ++YYCURSOR;
9301
0
    YYFILL(1);
9302
0
    yych = *YYCURSOR;
9303
0
    if (yych <= '\r') {
9304
0
      if (yych <= '\t') {
9305
0
        if (yych <= 0x00) goto yy86;
9306
0
        goto yy443;
9307
0
      } else {
9308
0
        if (yych <= '\n') goto yy545;
9309
0
        if (yych <= '\f') goto yy443;
9310
0
        goto yy545;
9311
0
      }
9312
0
    } else {
9313
0
      if (yych <= '*') {
9314
0
        if (yych <= ')') goto yy443;
9315
0
        goto yy547;
9316
0
      } else {
9317
0
        if (yych == '.') goto yy774;
9318
0
        goto yy443;
9319
0
      }
9320
0
    }
9321
0
yy821:
9322
0
    YYDEBUG(821, *YYCURSOR);
9323
0
    ++YYCURSOR;
9324
0
    YYFILL(1);
9325
0
    yych = *YYCURSOR;
9326
0
    if (yych <= '\r') {
9327
0
      if (yych <= '\t') {
9328
0
        if (yych <= 0x00) goto yy86;
9329
0
        goto yy443;
9330
0
      } else {
9331
0
        if (yych <= '\n') goto yy545;
9332
0
        if (yych <= '\f') goto yy443;
9333
0
        goto yy545;
9334
0
      }
9335
0
    } else {
9336
0
      if (yych <= '*') {
9337
0
        if (yych <= ')') goto yy443;
9338
0
        goto yy547;
9339
0
      } else {
9340
0
        if (yych == '/') goto yy709;
9341
0
        goto yy443;
9342
0
      }
9343
0
    }
9344
0
yy822:
9345
0
    YYDEBUG(822, *YYCURSOR);
9346
0
    yyaccept = 83;
9347
0
    yych = *(YYMARKER = ++YYCURSOR);
9348
0
    if (yybm[256+yych] & 128) {
9349
0
      goto yy47;
9350
0
    }
9351
0
    if (yych == '\\') goto yy164;
9352
0
yy823:
9353
0
    YYDEBUG(823, *YYCURSOR);
9354
0
    yyleng = YYCURSOR - SCNG(yy_text);
9355
0
#line 1501 "Zend/zend_language_scanner.l"
9356
0
    {
9357
0
  RETURN_TOKEN_WITH_IDENT(T_ENDDECLARE);
9358
0
}
9359
0
#line 9360 "Zend/zend_language_scanner.c"
9360
0
yy824:
9361
0
    YYDEBUG(824, *YYCURSOR);
9362
0
    yyaccept = 84;
9363
0
    yych = *(YYMARKER = ++YYCURSOR);
9364
0
    if (yybm[256+yych] & 128) {
9365
0
      goto yy47;
9366
0
    }
9367
0
    if (yych == '\\') goto yy164;
9368
0
yy825:
9369
0
    YYDEBUG(825, *YYCURSOR);
9370
0
    yyleng = YYCURSOR - SCNG(yy_text);
9371
0
#line 1493 "Zend/zend_language_scanner.l"
9372
0
    {
9373
0
  RETURN_TOKEN_WITH_IDENT(T_ENDFOREACH);
9374
0
}
9375
0
#line 9376 "Zend/zend_language_scanner.c"
9376
0
yy826:
9377
0
    YYDEBUG(826, *YYCURSOR);
9378
0
    yych = *++YYCURSOR;
9379
0
    if (yych == 'D') goto yy857;
9380
0
    if (yych == 'd') goto yy857;
9381
0
    goto yy86;
9382
0
yy827:
9383
0
    YYDEBUG(827, *YYCURSOR);
9384
0
    yych = *++YYCURSOR;
9385
0
    if (yych == 'M') goto yy858;
9386
0
    if (yych == 'm') goto yy858;
9387
0
    goto yy86;
9388
0
yy828:
9389
0
    YYDEBUG(828, *YYCURSOR);
9390
0
    ++YYCURSOR;
9391
0
    YYFILL(1);
9392
0
    yych = *YYCURSOR;
9393
0
    if (yych <= '\r') {
9394
0
      if (yych <= '\t') {
9395
0
        if (yych <= 0x00) goto yy86;
9396
0
        goto yy738;
9397
0
      } else {
9398
0
        if (yych <= '\n') goto yy859;
9399
0
        if (yych <= '\f') goto yy738;
9400
0
        goto yy859;
9401
0
      }
9402
0
    } else {
9403
0
      if (yych <= '*') {
9404
0
        if (yych <= ')') goto yy738;
9405
0
        goto yy789;
9406
0
      } else {
9407
0
        if (yych == '[') goto yy590;
9408
0
        goto yy738;
9409
0
      }
9410
0
    }
9411
0
yy829:
9412
0
    YYDEBUG(829, *YYCURSOR);
9413
0
    ++YYCURSOR;
9414
0
    YYFILL(1);
9415
0
    yych = *YYCURSOR;
9416
0
    if (yych <= '*') {
9417
0
      if (yych <= 0x00) goto yy86;
9418
0
      if (yych <= ')') goto yy590;
9419
0
      goto yy861;
9420
0
    } else {
9421
0
      if (yych == '/') goto yy738;
9422
0
      goto yy590;
9423
0
    }
9424
0
yy830:
9425
0
    YYDEBUG(830, *YYCURSOR);
9426
0
    yyaccept = 53;
9427
0
    YYMARKER = ++YYCURSOR;
9428
0
    YYFILL(1);
9429
0
    yych = *YYCURSOR;
9430
0
    if (yych <= 0x00) goto yy583;
9431
0
    if (yych == '*') goto yy668;
9432
0
    goto yy590;
9433
0
yy831:
9434
0
    YYDEBUG(831, *YYCURSOR);
9435
0
    yyaccept = 53;
9436
0
    YYMARKER = ++YYCURSOR;
9437
0
    YYFILL(1);
9438
0
    yych = *YYCURSOR;
9439
0
    if (yych <= 'W') {
9440
0
      if (yych <= 0x00) goto yy583;
9441
0
      if (yych == '*') goto yy668;
9442
0
      goto yy590;
9443
0
    } else {
9444
0
      if (yych <= 'X') goto yy862;
9445
0
      if (yych == 'x') goto yy862;
9446
0
      goto yy590;
9447
0
    }
9448
0
yy832:
9449
0
    YYDEBUG(832, *YYCURSOR);
9450
0
    yyaccept = 53;
9451
0
    YYMARKER = ++YYCURSOR;
9452
0
    YYFILL(1);
9453
0
    yych = *YYCURSOR;
9454
0
    if (yych <= 'L') {
9455
0
      if (yych <= 0x00) goto yy583;
9456
0
      if (yych == '*') goto yy668;
9457
0
      goto yy590;
9458
0
    } else {
9459
0
      if (yych <= 'M') goto yy863;
9460
0
      if (yych == 'm') goto yy863;
9461
0
      goto yy590;
9462
0
    }
9463
0
yy833:
9464
0
    YYDEBUG(833, *YYCURSOR);
9465
0
    ++YYCURSOR;
9466
0
    YYFILL(1);
9467
0
    yych = *YYCURSOR;
9468
0
    if (yych <= '\r') {
9469
0
      if (yych <= '\t') {
9470
0
        if (yych <= 0x00) goto yy86;
9471
0
        goto yy586;
9472
0
      } else {
9473
0
        if (yych <= '\n') goto yy495;
9474
0
        if (yych <= '\f') goto yy586;
9475
0
        goto yy495;
9476
0
      }
9477
0
    } else {
9478
0
      if (yych <= 'N') {
9479
0
        if (yych <= 'M') goto yy586;
9480
0
        goto yy864;
9481
0
      } else {
9482
0
        if (yych == 'n') goto yy864;
9483
0
        goto yy586;
9484
0
      }
9485
0
    }
9486
0
yy834:
9487
0
    YYDEBUG(834, *YYCURSOR);
9488
0
    ++YYCURSOR;
9489
0
    YYFILL(1);
9490
0
    yych = *YYCURSOR;
9491
0
    if (yych <= '\r') {
9492
0
      if (yych <= '\t') {
9493
0
        if (yych <= 0x00) goto yy86;
9494
0
        goto yy586;
9495
0
      } else {
9496
0
        if (yych <= '\n') goto yy495;
9497
0
        if (yych <= '\f') goto yy586;
9498
0
        goto yy495;
9499
0
      }
9500
0
    } else {
9501
0
      if (yych <= 'E') {
9502
0
        if (yych <= 'D') goto yy586;
9503
0
        goto yy865;
9504
0
      } else {
9505
0
        if (yych == 'e') goto yy865;
9506
0
        goto yy586;
9507
0
      }
9508
0
    }
9509
0
yy835:
9510
0
    YYDEBUG(835, *YYCURSOR);
9511
0
    yyaccept = 85;
9512
0
    yych = *(YYMARKER = ++YYCURSOR);
9513
0
    if (yybm[256+yych] & 128) {
9514
0
      goto yy47;
9515
0
    }
9516
0
    if (yych == '\\') goto yy164;
9517
0
yy836:
9518
0
    YYDEBUG(836, *YYCURSOR);
9519
0
    yyleng = YYCURSOR - SCNG(yy_text);
9520
0
#line 1582 "Zend/zend_language_scanner.l"
9521
0
    {
9522
0
  RETURN_TOKEN_WITH_IDENT(T_IMPLEMENTS);
9523
0
}
9524
0
#line 9525 "Zend/zend_language_scanner.c"
9525
0
yy837:
9526
0
    YYDEBUG(837, *YYCURSOR);
9527
0
    yyaccept = 4;
9528
0
    yych = *(YYMARKER = ++YYCURSOR);
9529
0
    if (yych == 'C') goto yy866;
9530
0
    if (yych == 'c') goto yy866;
9531
0
    goto yy48;
9532
0
yy838:
9533
0
    YYDEBUG(838, *YYCURSOR);
9534
0
    yyaccept = 86;
9535
0
    yych = *(YYMARKER = ++YYCURSOR);
9536
0
    if (yybm[256+yych] & 128) {
9537
0
      goto yy47;
9538
0
    }
9539
0
    if (yych == '\\') goto yy164;
9540
0
yy839:
9541
0
    YYDEBUG(839, *YYCURSOR);
9542
0
    yyleng = YYCURSOR - SCNG(yy_text);
9543
0
#line 1505 "Zend/zend_language_scanner.l"
9544
0
    {
9545
0
  RETURN_TOKEN_WITH_IDENT(T_INSTANCEOF);
9546
0
}
9547
0
#line 9548 "Zend/zend_language_scanner.c"
9548
0
yy840:
9549
0
    YYDEBUG(840, *YYCURSOR);
9550
0
    ++YYCURSOR;
9551
0
    YYFILL(1);
9552
0
    yych = *YYCURSOR;
9553
0
    if (yych <= '_') {
9554
0
      if (yych <= '@') goto yy86;
9555
0
      if (yych <= 'Z') goto yy867;
9556
0
      if (yych <= '^') goto yy86;
9557
0
      goto yy867;
9558
0
    } else {
9559
0
      if (yych <= '`') goto yy86;
9560
0
      if (yych <= 'z') goto yy867;
9561
0
      if (yych <= 0x7F) goto yy86;
9562
0
      goto yy867;
9563
0
    }
9564
0
yy841:
9565
0
    YYDEBUG(841, *YYCURSOR);
9566
0
    yych = *++YYCURSOR;
9567
0
    if (yych == 'T') goto yy870;
9568
0
    if (yych == 't') goto yy870;
9569
0
    goto yy86;
9570
0
yy842:
9571
0
    YYDEBUG(842, *YYCURSOR);
9572
0
    yych = *++YYCURSOR;
9573
0
    if (yych == 'S') goto yy871;
9574
0
    if (yych == 's') goto yy871;
9575
0
    goto yy86;
9576
0
yy843:
9577
0
    YYDEBUG(843, *YYCURSOR);
9578
0
    yych = *++YYCURSOR;
9579
0
    if (yych == ')') goto yy872;
9580
0
    goto yy86;
9581
0
yy844:
9582
0
    YYDEBUG(844, *YYCURSOR);
9583
0
    yyaccept = 4;
9584
0
    yych = *(YYMARKER = ++YYCURSOR);
9585
0
    if (yych == 'C') goto yy874;
9586
0
    if (yych == 'c') goto yy874;
9587
0
    goto yy48;
9588
0
yy845:
9589
0
    YYDEBUG(845, *YYCURSOR);
9590
0
    yych = *++YYCURSOR;
9591
0
    if (yych <= '^') {
9592
0
      if (yych <= '9') {
9593
0
        if (yych <= '/') goto yy875;
9594
0
        goto yy86;
9595
0
      } else {
9596
0
        if (yych <= '@') goto yy875;
9597
0
        if (yych <= 'Z') goto yy86;
9598
0
        goto yy875;
9599
0
      }
9600
0
    } else {
9601
0
      if (yych <= '`') {
9602
0
        if (yych <= '_') goto yy86;
9603
0
        goto yy875;
9604
0
      } else {
9605
0
        if (yych <= 'z') goto yy86;
9606
0
        if (yych <= 0x7F) goto yy875;
9607
0
        goto yy86;
9608
0
      }
9609
0
    }
9610
0
yy846:
9611
0
    YYDEBUG(846, *YYCURSOR);
9612
0
    ++YYCURSOR;
9613
0
    YYFILL(1);
9614
0
    yych = *YYCURSOR;
9615
0
    YYDEBUG(847, *YYCURSOR);
9616
0
    if (yych <= '#') {
9617
0
      if (yych <= '\f') {
9618
0
        if (yych <= 0x00) goto yy86;
9619
0
        if (yych <= 0x08) goto yy696;
9620
0
        if (yych <= '\n') goto yy846;
9621
0
        goto yy696;
9622
0
      } else {
9623
0
        if (yych <= 0x1F) {
9624
0
          if (yych <= '\r') goto yy846;
9625
0
          goto yy696;
9626
0
        } else {
9627
0
          if (yych <= ' ') goto yy846;
9628
0
          if (yych <= '"') goto yy696;
9629
0
          goto yy877;
9630
0
        }
9631
0
      }
9632
0
    } else {
9633
0
      if (yych <= '/') {
9634
0
        if (yych == '*') goto yy760;
9635
0
        if (yych <= '.') goto yy696;
9636
0
        goto yy878;
9637
0
      } else {
9638
0
        if (yych <= 'F') {
9639
0
          if (yych <= 'E') goto yy696;
9640
0
          goto yy879;
9641
0
        } else {
9642
0
          if (yych == 'f') goto yy879;
9643
0
          goto yy696;
9644
0
        }
9645
0
      }
9646
0
    }
9647
0
yy848:
9648
0
    YYDEBUG(848, *YYCURSOR);
9649
0
    ++YYCURSOR;
9650
0
    YYFILL(1);
9651
0
    yych = *YYCURSOR;
9652
0
    YYDEBUG(849, *YYCURSOR);
9653
0
    if (yych <= '\r') {
9654
0
      if (yych <= '\t') {
9655
0
        if (yych <= 0x00) goto yy86;
9656
0
        goto yy808;
9657
0
      } else {
9658
0
        if (yych <= '\n') goto yy846;
9659
0
        if (yych <= '\f') goto yy808;
9660
0
        goto yy846;
9661
0
      }
9662
0
    } else {
9663
0
      if (yych <= '*') {
9664
0
        if (yych <= ')') goto yy808;
9665
0
        goto yy848;
9666
0
      } else {
9667
0
        if (yych == '/') goto yy694;
9668
0
        goto yy808;
9669
0
      }
9670
0
    }
9671
0
yy850:
9672
0
    YYDEBUG(850, *YYCURSOR);
9673
0
    ++YYCURSOR;
9674
0
    YYFILL(1);
9675
0
    yych = *YYCURSOR;
9676
0
    if (yych <= '\r') {
9677
0
      if (yych <= '\t') {
9678
0
        if (yych <= 0x00) goto yy86;
9679
0
        goto yy692;
9680
0
      } else {
9681
0
        if (yych <= '\n') goto yy616;
9682
0
        if (yych <= '\f') goto yy692;
9683
0
        goto yy616;
9684
0
      }
9685
0
    } else {
9686
0
      if (yych <= 'M') {
9687
0
        if (yych <= 'L') goto yy692;
9688
0
        goto yy880;
9689
0
      } else {
9690
0
        if (yych == 'm') goto yy880;
9691
0
        goto yy692;
9692
0
      }
9693
0
    }
9694
0
yy851:
9695
0
    YYDEBUG(851, *YYCURSOR);
9696
0
    yyaccept = 4;
9697
0
    yych = *(YYMARKER = ++YYCURSOR);
9698
0
    if (yych == '_') goto yy881;
9699
0
    goto yy48;
9700
0
yy852:
9701
0
    YYDEBUG(852, *YYCURSOR);
9702
0
    yyaccept = 4;
9703
0
    yych = *(YYMARKER = ++YYCURSOR);
9704
0
    if (yych == 'P') goto yy882;
9705
0
    if (yych == 'p') goto yy882;
9706
0
    goto yy48;
9707
0
yy853:
9708
0
    YYDEBUG(853, *YYCURSOR);
9709
0
    yyaccept = 87;
9710
0
    yych = *(YYMARKER = ++YYCURSOR);
9711
0
    if (yybm[256+yych] & 128) {
9712
0
      goto yy47;
9713
0
    }
9714
0
    if (yych == '\\') goto yy164;
9715
0
yy854:
9716
0
    YYDEBUG(854, *YYCURSOR);
9717
0
    yyleng = YYCURSOR - SCNG(yy_text);
9718
0
#line 2268 "Zend/zend_language_scanner.l"
9719
0
    {
9720
0
  RETURN_TOKEN_WITH_IDENT(T_METHOD_C);
9721
0
}
9722
0
#line 9723 "Zend/zend_language_scanner.c"
9723
0
yy855:
9724
0
    YYDEBUG(855, *YYCURSOR);
9725
0
    yyaccept = 4;
9726
0
    yych = *(YYMARKER = ++YYCURSOR);
9727
0
    if (yych == 'E') goto yy883;
9728
0
    if (yych == 'e') goto yy883;
9729
0
    goto yy48;
9730
0
yy856:
9731
0
    YYDEBUG(856, *YYCURSOR);
9732
0
    yyaccept = 4;
9733
0
    yych = *(YYMARKER = ++YYCURSOR);
9734
0
    if (yych == '_') goto yy884;
9735
0
    goto yy48;
9736
0
yy857:
9737
0
    YYDEBUG(857, *YYCURSOR);
9738
0
    yych = *++YYCURSOR;
9739
0
    if (yych == 'S') goto yy885;
9740
0
    if (yych == 's') goto yy885;
9741
0
    goto yy86;
9742
0
yy858:
9743
0
    YYDEBUG(858, *YYCURSOR);
9744
0
    yych = *++YYCURSOR;
9745
0
    if (yych == 'E') goto yy887;
9746
0
    if (yych == 'e') goto yy887;
9747
0
    goto yy86;
9748
0
yy859:
9749
0
    YYDEBUG(859, *YYCURSOR);
9750
0
    ++YYCURSOR;
9751
0
    YYFILL(1);
9752
0
    yych = *YYCURSOR;
9753
0
    YYDEBUG(860, *YYCURSOR);
9754
0
    if (yych <= '@') {
9755
0
      if (yych <= 0x1F) {
9756
0
        if (yych <= '\t') {
9757
0
          if (yych <= 0x00) goto yy86;
9758
0
          if (yych <= 0x08) goto yy738;
9759
0
          goto yy859;
9760
0
        } else {
9761
0
          if (yych <= '\n') goto yy787;
9762
0
          if (yych == '\r') goto yy787;
9763
0
          goto yy738;
9764
0
        }
9765
0
      } else {
9766
0
        if (yych <= ')') {
9767
0
          if (yych <= ' ') goto yy859;
9768
0
          if (yych == '#') goto yy888;
9769
0
          goto yy738;
9770
0
        } else {
9771
0
          if (yych <= '*') goto yy789;
9772
0
          if (yych == '/') goto yy889;
9773
0
          goto yy738;
9774
0
        }
9775
0
      }
9776
0
    } else {
9777
0
      if (yych <= '_') {
9778
0
        if (yych <= 'H') {
9779
0
          if (yych == 'E') goto yy891;
9780
0
          goto yy890;
9781
0
        } else {
9782
0
          if (yych <= 'I') goto yy892;
9783
0
          if (yych <= 'Z') goto yy890;
9784
0
          if (yych <= '^') goto yy738;
9785
0
          goto yy890;
9786
0
        }
9787
0
      } else {
9788
0
        if (yych <= 'h') {
9789
0
          if (yych <= '`') goto yy738;
9790
0
          if (yych == 'e') goto yy891;
9791
0
          goto yy890;
9792
0
        } else {
9793
0
          if (yych <= 'i') goto yy892;
9794
0
          if (yych <= 'z') goto yy890;
9795
0
          if (yych <= 0x7F) goto yy738;
9796
0
          goto yy890;
9797
0
        }
9798
0
      }
9799
0
    }
9800
0
yy861:
9801
0
    YYDEBUG(861, *YYCURSOR);
9802
0
    ++YYCURSOR;
9803
0
    YYFILL(1);
9804
0
    yych = *YYCURSOR;
9805
0
    if (yych <= '*') {
9806
0
      if (yych <= 0x00) goto yy86;
9807
0
      if (yych <= ')') goto yy590;
9808
0
      goto yy668;
9809
0
    } else {
9810
0
      if (yych == '/') goto yy787;
9811
0
      goto yy590;
9812
0
    }
9813
0
yy862:
9814
0
    YYDEBUG(862, *YYCURSOR);
9815
0
    ++YYCURSOR;
9816
0
    YYFILL(1);
9817
0
    yych = *YYCURSOR;
9818
0
    if (yych <= 'S') {
9819
0
      if (yych <= 0x00) goto yy86;
9820
0
      if (yych == '*') goto yy668;
9821
0
      goto yy590;
9822
0
    } else {
9823
0
      if (yych <= 'T') goto yy893;
9824
0
      if (yych == 't') goto yy893;
9825
0
      goto yy590;
9826
0
    }
9827
0
yy863:
9828
0
    YYDEBUG(863, *YYCURSOR);
9829
0
    ++YYCURSOR;
9830
0
    YYFILL(1);
9831
0
    yych = *YYCURSOR;
9832
0
    if (yych <= 'O') {
9833
0
      if (yych <= 0x00) goto yy86;
9834
0
      if (yych == '*') goto yy668;
9835
0
      goto yy590;
9836
0
    } else {
9837
0
      if (yych <= 'P') goto yy894;
9838
0
      if (yych == 'p') goto yy894;
9839
0
      goto yy590;
9840
0
    }
9841
0
yy864:
9842
0
    YYDEBUG(864, *YYCURSOR);
9843
0
    ++YYCURSOR;
9844
0
    YYFILL(1);
9845
0
    yych = *YYCURSOR;
9846
0
    if (yych <= '\r') {
9847
0
      if (yych <= '\t') {
9848
0
        if (yych <= 0x00) goto yy86;
9849
0
        goto yy586;
9850
0
      } else {
9851
0
        if (yych <= '\n') goto yy495;
9852
0
        if (yych <= '\f') goto yy586;
9853
0
        goto yy495;
9854
0
      }
9855
0
    } else {
9856
0
      if (yych <= 'D') {
9857
0
        if (yych <= 'C') goto yy586;
9858
0
        goto yy895;
9859
0
      } else {
9860
0
        if (yych == 'd') goto yy895;
9861
0
        goto yy586;
9862
0
      }
9863
0
    }
9864
0
yy865:
9865
0
    YYDEBUG(865, *YYCURSOR);
9866
0
    ++YYCURSOR;
9867
0
    YYFILL(1);
9868
0
    yych = *YYCURSOR;
9869
0
    if (yych <= '\r') {
9870
0
      if (yych <= '\t') {
9871
0
        if (yych <= 0x00) goto yy86;
9872
0
        goto yy586;
9873
0
      } else {
9874
0
        if (yych <= '\n') goto yy495;
9875
0
        if (yych <= '\f') goto yy586;
9876
0
        goto yy495;
9877
0
      }
9878
0
    } else {
9879
0
      if (yych <= 'M') {
9880
0
        if (yych <= 'L') goto yy586;
9881
0
        goto yy896;
9882
0
      } else {
9883
0
        if (yych == 'm') goto yy896;
9884
0
        goto yy586;
9885
0
      }
9886
0
    }
9887
0
yy866:
9888
0
    YYDEBUG(866, *YYCURSOR);
9889
0
    yyaccept = 4;
9890
0
    yych = *(YYMARKER = ++YYCURSOR);
9891
0
    if (yych == 'E') goto yy897;
9892
0
    if (yych == 'e') goto yy897;
9893
0
    goto yy48;
9894
0
yy867:
9895
0
    YYDEBUG(867, *YYCURSOR);
9896
0
    yyaccept = 88;
9897
0
    YYMARKER = ++YYCURSOR;
9898
0
    YYFILL(1);
9899
0
    yych = *YYCURSOR;
9900
0
    YYDEBUG(868, *YYCURSOR);
9901
0
    if (yych <= '\\') {
9902
0
      if (yych <= '@') {
9903
0
        if (yych <= '/') goto yy869;
9904
0
        if (yych <= '9') goto yy867;
9905
0
      } else {
9906
0
        if (yych <= 'Z') goto yy867;
9907
0
        if (yych >= '\\') goto yy840;
9908
0
      }
9909
0
    } else {
9910
0
      if (yych <= '`') {
9911
0
        if (yych == '_') goto yy867;
9912
0
      } else {
9913
0
        if (yych <= 'z') goto yy867;
9914
0
        if (yych >= 0x80) goto yy867;
9915
0
      }
9916
0
    }
9917
0
yy869:
9918
0
    YYDEBUG(869, *YYCURSOR);
9919
0
    yyleng = YYCURSOR - SCNG(yy_text);
9920
0
#line 2438 "Zend/zend_language_scanner.l"
9921
0
    {
9922
0
  RETURN_TOKEN_WITH_STR(T_NAME_RELATIVE, sizeof("namespace\\") - 1);
9923
0
}
9924
0
#line 9925 "Zend/zend_language_scanner.c"
9925
0
yy870:
9926
0
    YYDEBUG(870, *YYCURSOR);
9927
0
    yych = *++YYCURSOR;
9928
0
    if (yych == ')') goto yy899;
9929
0
    goto yy86;
9930
0
yy871:
9931
0
    YYDEBUG(871, *YYCURSOR);
9932
0
    yych = *++YYCURSOR;
9933
0
    if (yych == 'E') goto yy901;
9934
0
    if (yych == 'e') goto yy901;
9935
0
    goto yy86;
9936
0
yy872:
9937
0
    YYDEBUG(872, *YYCURSOR);
9938
0
    ++YYCURSOR;
9939
0
    YYDEBUG(873, *YYCURSOR);
9940
0
    yyleng = YYCURSOR - SCNG(yy_text);
9941
0
#line 1785 "Zend/zend_language_scanner.l"
9942
0
    {
9943
0
  RETURN_TOKEN_WITH_IDENT(T_PUBLIC_SET);
9944
0
}
9945
0
#line 9946 "Zend/zend_language_scanner.c"
9946
0
yy874:
9947
0
    YYDEBUG(874, *YYCURSOR);
9948
0
    yyaccept = 4;
9949
0
    yych = *(YYMARKER = ++YYCURSOR);
9950
0
    if (yych == 'E') goto yy902;
9951
0
    if (yych == 'e') goto yy902;
9952
0
    goto yy48;
9953
0
yy875:
9954
0
    YYDEBUG(875, *YYCURSOR);
9955
0
    ++YYCURSOR;
9956
0
yy876:
9957
0
    YYDEBUG(876, *YYCURSOR);
9958
0
    yyleng = YYCURSOR - SCNG(yy_text);
9959
0
#line 1427 "Zend/zend_language_scanner.l"
9960
0
    {
9961
0
  yyless(yyleng - 1);
9962
0
  HANDLE_NEWLINES(yytext, yyleng);
9963
0
  RETURN_TOKEN_WITH_IDENT(T_YIELD_FROM);
9964
0
}
9965
0
#line 9966 "Zend/zend_language_scanner.c"
9966
0
yy877:
9967
0
    YYDEBUG(877, *YYCURSOR);
9968
0
    ++YYCURSOR;
9969
0
    YYFILL(1);
9970
0
    yych = *YYCURSOR;
9971
0
    if (yych <= '\r') {
9972
0
      if (yych <= '\t') {
9973
0
        if (yych <= 0x00) goto yy86;
9974
0
        goto yy808;
9975
0
      } else {
9976
0
        if (yych <= '\n') goto yy904;
9977
0
        if (yych <= '\f') goto yy808;
9978
0
        goto yy904;
9979
0
      }
9980
0
    } else {
9981
0
      if (yych <= '*') {
9982
0
        if (yych <= ')') goto yy808;
9983
0
        goto yy848;
9984
0
      } else {
9985
0
        if (yych == '[') goto yy696;
9986
0
        goto yy808;
9987
0
      }
9988
0
    }
9989
0
yy878:
9990
0
    YYDEBUG(878, *YYCURSOR);
9991
0
    ++YYCURSOR;
9992
0
    YYFILL(1);
9993
0
    yych = *YYCURSOR;
9994
0
    if (yych <= '*') {
9995
0
      if (yych <= 0x00) goto yy86;
9996
0
      if (yych <= ')') goto yy696;
9997
0
      goto yy906;
9998
0
    } else {
9999
0
      if (yych == '/') goto yy808;
10000
0
      goto yy696;
10001
0
    }
10002
0
yy879:
10003
0
    YYDEBUG(879, *YYCURSOR);
10004
0
    ++YYCURSOR;
10005
0
    YYFILL(1);
10006
0
    yych = *YYCURSOR;
10007
0
    if (yych <= 'Q') {
10008
0
      if (yych <= 0x00) goto yy86;
10009
0
      if (yych == '*') goto yy760;
10010
0
      goto yy696;
10011
0
    } else {
10012
0
      if (yych <= 'R') goto yy907;
10013
0
      if (yych == 'r') goto yy907;
10014
0
      goto yy696;
10015
0
    }
10016
0
yy880:
10017
0
    YYDEBUG(880, *YYCURSOR);
10018
0
    ++YYCURSOR;
10019
0
    YYFILL(1);
10020
0
    yych = *YYCURSOR;
10021
0
    if (yych <= '9') {
10022
0
      if (yych <= '\n') {
10023
0
        if (yych <= 0x00) goto yy875;
10024
0
        if (yych <= '\t') goto yy908;
10025
0
        goto yy909;
10026
0
      } else {
10027
0
        if (yych == '\r') goto yy909;
10028
0
        if (yych <= '/') goto yy908;
10029
0
        goto yy692;
10030
0
      }
10031
0
    } else {
10032
0
      if (yych <= '_') {
10033
0
        if (yych <= '@') goto yy908;
10034
0
        if (yych <= 'Z') goto yy692;
10035
0
        if (yych <= '^') goto yy908;
10036
0
        goto yy692;
10037
0
      } else {
10038
0
        if (yych <= '`') goto yy908;
10039
0
        if (yych <= 'z') goto yy692;
10040
0
        if (yych <= 0x7F) goto yy908;
10041
0
        goto yy692;
10042
0
      }
10043
0
    }
10044
0
yy881:
10045
0
    YYDEBUG(881, *YYCURSOR);
10046
0
    yyaccept = 4;
10047
0
    yych = *(YYMARKER = ++YYCURSOR);
10048
0
    if (yych == '_') goto yy910;
10049
0
    goto yy48;
10050
0
yy882:
10051
0
    YYDEBUG(882, *YYCURSOR);
10052
0
    yyaccept = 4;
10053
0
    yych = *(YYMARKER = ++YYCURSOR);
10054
0
    if (yych == 'I') goto yy912;
10055
0
    if (yych == 'i') goto yy912;
10056
0
    goto yy48;
10057
0
yy883:
10058
0
    YYDEBUG(883, *YYCURSOR);
10059
0
    yyaccept = 4;
10060
0
    yych = *(YYMARKER = ++YYCURSOR);
10061
0
    if (yych == '_') goto yy913;
10062
0
    goto yy48;
10063
0
yy884:
10064
0
    YYDEBUG(884, *YYCURSOR);
10065
0
    yyaccept = 4;
10066
0
    yych = *(YYMARKER = ++YYCURSOR);
10067
0
    if (yych == '_') goto yy914;
10068
0
    goto yy48;
10069
0
yy885:
10070
0
    YYDEBUG(885, *YYCURSOR);
10071
0
    ++YYCURSOR;
10072
0
yy886:
10073
0
    YYDEBUG(886, *YYCURSOR);
10074
0
    yyleng = YYCURSOR - SCNG(yy_text);
10075
0
#line 1569 "Zend/zend_language_scanner.l"
10076
0
    {
10077
0
  yyless(4);
10078
0
  RETURN_TOKEN_WITH_STR(T_STRING, 0);
10079
0
}
10080
0
#line 10081 "Zend/zend_language_scanner.c"
10081
0
yy887:
10082
0
    YYDEBUG(887, *YYCURSOR);
10083
0
    yych = *++YYCURSOR;
10084
0
    if (yych == 'N') goto yy916;
10085
0
    if (yych == 'n') goto yy916;
10086
0
    goto yy86;
10087
0
yy888:
10088
0
    YYDEBUG(888, *YYCURSOR);
10089
0
    ++YYCURSOR;
10090
0
    YYFILL(1);
10091
0
    yych = *YYCURSOR;
10092
0
    if (yych <= '\f') {
10093
0
      if (yych <= 0x00) goto yy86;
10094
0
      if (yych == '\n') goto yy859;
10095
0
      goto yy738;
10096
0
    } else {
10097
0
      if (yych <= '\r') goto yy859;
10098
0
      if (yych == '*') goto yy789;
10099
0
      goto yy738;
10100
0
    }
10101
0
yy889:
10102
0
    YYDEBUG(889, *YYCURSOR);
10103
0
    ++YYCURSOR;
10104
0
    YYFILL(1);
10105
0
    yych = *YYCURSOR;
10106
0
    if (yych <= '\f') {
10107
0
      if (yych <= 0x00) goto yy86;
10108
0
      if (yych == '\n') goto yy787;
10109
0
      goto yy738;
10110
0
    } else {
10111
0
      if (yych <= '\r') goto yy787;
10112
0
      if (yych == '*') goto yy917;
10113
0
      goto yy738;
10114
0
    }
10115
0
yy890:
10116
0
    YYDEBUG(890, *YYCURSOR);
10117
0
    yyaccept = 53;
10118
0
    YYMARKER = ++YYCURSOR;
10119
0
    YYFILL(1);
10120
0
    yych = *YYCURSOR;
10121
0
    if (yych <= '\f') {
10122
0
      if (yych <= 0x00) goto yy583;
10123
0
      if (yych == '\n') goto yy787;
10124
0
      goto yy738;
10125
0
    } else {
10126
0
      if (yych <= '\r') goto yy787;
10127
0
      if (yych == '*') goto yy789;
10128
0
      goto yy738;
10129
0
    }
10130
0
yy891:
10131
0
    YYDEBUG(891, *YYCURSOR);
10132
0
    yyaccept = 53;
10133
0
    YYMARKER = ++YYCURSOR;
10134
0
    YYFILL(1);
10135
0
    yych = *YYCURSOR;
10136
0
    if (yych <= ')') {
10137
0
      if (yych <= '\n') {
10138
0
        if (yych <= 0x00) goto yy583;
10139
0
        if (yych <= '\t') goto yy738;
10140
0
        goto yy787;
10141
0
      } else {
10142
0
        if (yych == '\r') goto yy787;
10143
0
        goto yy738;
10144
0
      }
10145
0
    } else {
10146
0
      if (yych <= 'X') {
10147
0
        if (yych <= '*') goto yy789;
10148
0
        if (yych <= 'W') goto yy738;
10149
0
        goto yy918;
10150
0
      } else {
10151
0
        if (yych == 'x') goto yy918;
10152
0
        goto yy738;
10153
0
      }
10154
0
    }
10155
0
yy892:
10156
0
    YYDEBUG(892, *YYCURSOR);
10157
0
    yyaccept = 53;
10158
0
    YYMARKER = ++YYCURSOR;
10159
0
    YYFILL(1);
10160
0
    yych = *YYCURSOR;
10161
0
    if (yych <= ')') {
10162
0
      if (yych <= '\n') {
10163
0
        if (yych <= 0x00) goto yy583;
10164
0
        if (yych <= '\t') goto yy738;
10165
0
        goto yy787;
10166
0
      } else {
10167
0
        if (yych == '\r') goto yy787;
10168
0
        goto yy738;
10169
0
      }
10170
0
    } else {
10171
0
      if (yych <= 'M') {
10172
0
        if (yych <= '*') goto yy789;
10173
0
        if (yych <= 'L') goto yy738;
10174
0
        goto yy919;
10175
0
      } else {
10176
0
        if (yych == 'm') goto yy919;
10177
0
        goto yy738;
10178
0
      }
10179
0
    }
10180
0
yy893:
10181
0
    YYDEBUG(893, *YYCURSOR);
10182
0
    ++YYCURSOR;
10183
0
    YYFILL(1);
10184
0
    yych = *YYCURSOR;
10185
0
    if (yych <= 'D') {
10186
0
      if (yych <= 0x00) goto yy86;
10187
0
      if (yych == '*') goto yy668;
10188
0
      goto yy590;
10189
0
    } else {
10190
0
      if (yych <= 'E') goto yy920;
10191
0
      if (yych == 'e') goto yy920;
10192
0
      goto yy590;
10193
0
    }
10194
0
yy894:
10195
0
    YYDEBUG(894, *YYCURSOR);
10196
0
    ++YYCURSOR;
10197
0
    YYFILL(1);
10198
0
    yych = *YYCURSOR;
10199
0
    if (yych <= 'K') {
10200
0
      if (yych <= 0x00) goto yy86;
10201
0
      if (yych == '*') goto yy668;
10202
0
      goto yy590;
10203
0
    } else {
10204
0
      if (yych <= 'L') goto yy921;
10205
0
      if (yych == 'l') goto yy921;
10206
0
      goto yy590;
10207
0
    }
10208
0
yy895:
10209
0
    YYDEBUG(895, *YYCURSOR);
10210
0
    ++YYCURSOR;
10211
0
    YYFILL(1);
10212
0
    yych = *YYCURSOR;
10213
0
    if (yych <= '\r') {
10214
0
      if (yych <= '\t') {
10215
0
        if (yych <= 0x00) goto yy86;
10216
0
        goto yy586;
10217
0
      } else {
10218
0
        if (yych <= '\n') goto yy495;
10219
0
        if (yych <= '\f') goto yy586;
10220
0
        goto yy495;
10221
0
      }
10222
0
    } else {
10223
0
      if (yych <= 'S') {
10224
0
        if (yych <= 'R') goto yy586;
10225
0
        goto yy922;
10226
0
      } else {
10227
0
        if (yych == 's') goto yy922;
10228
0
        goto yy586;
10229
0
      }
10230
0
    }
10231
0
yy896:
10232
0
    YYDEBUG(896, *YYCURSOR);
10233
0
    ++YYCURSOR;
10234
0
    YYFILL(1);
10235
0
    yych = *YYCURSOR;
10236
0
    if (yych <= '\r') {
10237
0
      if (yych <= '\t') {
10238
0
        if (yych <= 0x00) goto yy86;
10239
0
        goto yy586;
10240
0
      } else {
10241
0
        if (yych <= '\n') goto yy495;
10242
0
        if (yych <= '\f') goto yy586;
10243
0
        goto yy495;
10244
0
      }
10245
0
    } else {
10246
0
      if (yych <= 'E') {
10247
0
        if (yych <= 'D') goto yy586;
10248
0
        goto yy923;
10249
0
      } else {
10250
0
        if (yych == 'e') goto yy923;
10251
0
        goto yy586;
10252
0
      }
10253
0
    }
10254
0
yy897:
10255
0
    YYDEBUG(897, *YYCURSOR);
10256
0
    yyaccept = 89;
10257
0
    yych = *(YYMARKER = ++YYCURSOR);
10258
0
    if (yybm[256+yych] & 128) {
10259
0
      goto yy47;
10260
0
    }
10261
0
    if (yych == '\\') goto yy164;
10262
0
yy898:
10263
0
    YYDEBUG(898, *YYCURSOR);
10264
0
    yyleng = YYCURSOR - SCNG(yy_text);
10265
0
#line 1725 "Zend/zend_language_scanner.l"
10266
0
    {
10267
0
  RETURN_TOKEN_WITH_IDENT(T_INCLUDE_ONCE);
10268
0
}
10269
0
#line 10270 "Zend/zend_language_scanner.c"
10270
0
yy899:
10271
0
    YYDEBUG(899, *YYCURSOR);
10272
0
    ++YYCURSOR;
10273
0
    YYDEBUG(900, *YYCURSOR);
10274
0
    yyleng = YYCURSOR - SCNG(yy_text);
10275
0
#line 1793 "Zend/zend_language_scanner.l"
10276
0
    {
10277
0
  RETURN_TOKEN_WITH_IDENT(T_PRIVATE_SET);
10278
0
}
10279
0
#line 10280 "Zend/zend_language_scanner.c"
10280
0
yy901:
10281
0
    YYDEBUG(901, *YYCURSOR);
10282
0
    yych = *++YYCURSOR;
10283
0
    if (yych == 'T') goto yy924;
10284
0
    if (yych == 't') goto yy924;
10285
0
    goto yy86;
10286
0
yy902:
10287
0
    YYDEBUG(902, *YYCURSOR);
10288
0
    yyaccept = 90;
10289
0
    yych = *(YYMARKER = ++YYCURSOR);
10290
0
    if (yybm[256+yych] & 128) {
10291
0
      goto yy47;
10292
0
    }
10293
0
    if (yych == '\\') goto yy164;
10294
0
yy903:
10295
0
    YYDEBUG(903, *YYCURSOR);
10296
0
    yyleng = YYCURSOR - SCNG(yy_text);
10297
0
#line 1733 "Zend/zend_language_scanner.l"
10298
0
    {
10299
0
  RETURN_TOKEN_WITH_IDENT(T_REQUIRE_ONCE);
10300
0
}
10301
0
#line 10302 "Zend/zend_language_scanner.c"
10302
0
yy904:
10303
0
    YYDEBUG(904, *YYCURSOR);
10304
0
    ++YYCURSOR;
10305
0
    YYFILL(1);
10306
0
    yych = *YYCURSOR;
10307
0
    YYDEBUG(905, *YYCURSOR);
10308
0
    if (yych <= '"') {
10309
0
      if (yych <= '\n') {
10310
0
        if (yych <= 0x00) goto yy86;
10311
0
        if (yych <= 0x08) goto yy808;
10312
0
        if (yych <= '\t') goto yy904;
10313
0
        goto yy846;
10314
0
      } else {
10315
0
        if (yych <= '\r') {
10316
0
          if (yych <= '\f') goto yy808;
10317
0
          goto yy846;
10318
0
        } else {
10319
0
          if (yych == ' ') goto yy904;
10320
0
          goto yy808;
10321
0
        }
10322
0
      }
10323
0
    } else {
10324
0
      if (yych <= '/') {
10325
0
        if (yych <= ')') {
10326
0
          if (yych <= '#') goto yy925;
10327
0
          goto yy808;
10328
0
        } else {
10329
0
          if (yych <= '*') goto yy848;
10330
0
          if (yych <= '.') goto yy808;
10331
0
          goto yy926;
10332
0
        }
10333
0
      } else {
10334
0
        if (yych <= 'F') {
10335
0
          if (yych <= 'E') goto yy808;
10336
0
          goto yy927;
10337
0
        } else {
10338
0
          if (yych == 'f') goto yy927;
10339
0
          goto yy808;
10340
0
        }
10341
0
      }
10342
0
    }
10343
0
yy906:
10344
0
    YYDEBUG(906, *YYCURSOR);
10345
0
    ++YYCURSOR;
10346
0
    YYFILL(1);
10347
0
    yych = *YYCURSOR;
10348
0
    if (yych <= '*') {
10349
0
      if (yych <= 0x00) goto yy86;
10350
0
      if (yych <= ')') goto yy696;
10351
0
      goto yy760;
10352
0
    } else {
10353
0
      if (yych == '/') goto yy846;
10354
0
      goto yy696;
10355
0
    }
10356
0
yy907:
10357
0
    YYDEBUG(907, *YYCURSOR);
10358
0
    ++YYCURSOR;
10359
0
    YYFILL(1);
10360
0
    yych = *YYCURSOR;
10361
0
    if (yych <= 'N') {
10362
0
      if (yych <= 0x00) goto yy86;
10363
0
      if (yych == '*') goto yy760;
10364
0
      goto yy696;
10365
0
    } else {
10366
0
      if (yych <= 'O') goto yy928;
10367
0
      if (yych == 'o') goto yy928;
10368
0
      goto yy696;
10369
0
    }
10370
0
yy908:
10371
0
    YYDEBUG(908, *YYCURSOR);
10372
0
    yyaccept = 91;
10373
0
    YYMARKER = ++YYCURSOR;
10374
0
    YYFILL(1);
10375
0
    yych = *YYCURSOR;
10376
0
    if (yych <= '\n') {
10377
0
      if (yych <= 0x00) goto yy876;
10378
0
      if (yych <= '\t') goto yy692;
10379
0
      goto yy616;
10380
0
    } else {
10381
0
      if (yych == '\r') goto yy616;
10382
0
      goto yy692;
10383
0
    }
10384
0
yy909:
10385
0
    YYDEBUG(909, *YYCURSOR);
10386
0
    yyaccept = 91;
10387
0
    YYMARKER = ++YYCURSOR;
10388
0
    YYFILL(5);
10389
0
    yych = *YYCURSOR;
10390
0
    if (yych <= '"') {
10391
0
      if (yych <= '\f') {
10392
0
        if (yych <= 0x08) goto yy876;
10393
0
        if (yych <= '\n') goto yy616;
10394
0
        goto yy876;
10395
0
      } else {
10396
0
        if (yych <= '\r') goto yy616;
10397
0
        if (yych == ' ') goto yy616;
10398
0
        goto yy876;
10399
0
      }
10400
0
    } else {
10401
0
      if (yych <= 'E') {
10402
0
        if (yych <= '#') goto yy618;
10403
0
        if (yych == '/') goto yy619;
10404
0
        goto yy876;
10405
0
      } else {
10406
0
        if (yych <= 'F') goto yy691;
10407
0
        if (yych == 'f') goto yy691;
10408
0
        goto yy876;
10409
0
      }
10410
0
    }
10411
0
yy910:
10412
0
    YYDEBUG(910, *YYCURSOR);
10413
0
    yyaccept = 92;
10414
0
    yych = *(YYMARKER = ++YYCURSOR);
10415
0
    if (yybm[256+yych] & 128) {
10416
0
      goto yy47;
10417
0
    }
10418
0
    if (yych == '\\') goto yy164;
10419
0
yy911:
10420
0
    YYDEBUG(911, *YYCURSOR);
10421
0
    yyleng = YYCURSOR - SCNG(yy_text);
10422
0
#line 2260 "Zend/zend_language_scanner.l"
10423
0
    {
10424
0
  RETURN_TOKEN_WITH_IDENT(T_FUNC_C);
10425
0
}
10426
0
#line 10427 "Zend/zend_language_scanner.c"
10427
0
yy912:
10428
0
    YYDEBUG(912, *YYCURSOR);
10429
0
    yyaccept = 4;
10430
0
    yych = *(YYMARKER = ++YYCURSOR);
10431
0
    if (yych == 'L') goto yy929;
10432
0
    if (yych == 'l') goto yy929;
10433
0
    goto yy48;
10434
0
yy913:
10435
0
    YYDEBUG(913, *YYCURSOR);
10436
0
    yyaccept = 4;
10437
0
    yych = *(YYMARKER = ++YYCURSOR);
10438
0
    if (yych == '_') goto yy930;
10439
0
    goto yy48;
10440
0
yy914:
10441
0
    YYDEBUG(914, *YYCURSOR);
10442
0
    yyaccept = 93;
10443
0
    yych = *(YYMARKER = ++YYCURSOR);
10444
0
    if (yybm[256+yych] & 128) {
10445
0
      goto yy47;
10446
0
    }
10447
0
    if (yych == '\\') goto yy164;
10448
0
yy915:
10449
0
    YYDEBUG(915, *YYCURSOR);
10450
0
    yyleng = YYCURSOR - SCNG(yy_text);
10451
0
#line 2264 "Zend/zend_language_scanner.l"
10452
0
    {
10453
0
  RETURN_TOKEN_WITH_IDENT(T_PROPERTY_C);
10454
0
}
10455
0
#line 10456 "Zend/zend_language_scanner.c"
10456
0
yy916:
10457
0
    YYDEBUG(916, *YYCURSOR);
10458
0
    yych = *++YYCURSOR;
10459
0
    if (yych == 'T') goto yy857;
10460
0
    if (yych == 't') goto yy857;
10461
0
    goto yy86;
10462
0
yy917:
10463
0
    YYDEBUG(917, *YYCURSOR);
10464
0
    ++YYCURSOR;
10465
0
    YYFILL(1);
10466
0
    yych = *YYCURSOR;
10467
0
    if (yych <= '\r') {
10468
0
      if (yych <= '\t') {
10469
0
        if (yych <= 0x00) goto yy86;
10470
0
        goto yy738;
10471
0
      } else {
10472
0
        if (yych <= '\n') goto yy787;
10473
0
        if (yych <= '\f') goto yy738;
10474
0
        goto yy787;
10475
0
      }
10476
0
    } else {
10477
0
      if (yych <= '*') {
10478
0
        if (yych <= ')') goto yy738;
10479
0
        goto yy789;
10480
0
      } else {
10481
0
        if (yych == '/') goto yy859;
10482
0
        goto yy738;
10483
0
      }
10484
0
    }
10485
0
yy918:
10486
0
    YYDEBUG(918, *YYCURSOR);
10487
0
    ++YYCURSOR;
10488
0
    YYFILL(1);
10489
0
    yych = *YYCURSOR;
10490
0
    if (yych <= ')') {
10491
0
      if (yych <= '\n') {
10492
0
        if (yych <= 0x00) goto yy86;
10493
0
        if (yych <= '\t') goto yy738;
10494
0
        goto yy787;
10495
0
      } else {
10496
0
        if (yych == '\r') goto yy787;
10497
0
        goto yy738;
10498
0
      }
10499
0
    } else {
10500
0
      if (yych <= 'T') {
10501
0
        if (yych <= '*') goto yy789;
10502
0
        if (yych <= 'S') goto yy738;
10503
0
        goto yy932;
10504
0
      } else {
10505
0
        if (yych == 't') goto yy932;
10506
0
        goto yy738;
10507
0
      }
10508
0
    }
10509
0
yy919:
10510
0
    YYDEBUG(919, *YYCURSOR);
10511
0
    ++YYCURSOR;
10512
0
    YYFILL(1);
10513
0
    yych = *YYCURSOR;
10514
0
    if (yych <= ')') {
10515
0
      if (yych <= '\n') {
10516
0
        if (yych <= 0x00) goto yy86;
10517
0
        if (yych <= '\t') goto yy738;
10518
0
        goto yy787;
10519
0
      } else {
10520
0
        if (yych == '\r') goto yy787;
10521
0
        goto yy738;
10522
0
      }
10523
0
    } else {
10524
0
      if (yych <= 'P') {
10525
0
        if (yych <= '*') goto yy789;
10526
0
        if (yych <= 'O') goto yy738;
10527
0
        goto yy933;
10528
0
      } else {
10529
0
        if (yych == 'p') goto yy933;
10530
0
        goto yy738;
10531
0
      }
10532
0
    }
10533
0
yy920:
10534
0
    YYDEBUG(920, *YYCURSOR);
10535
0
    ++YYCURSOR;
10536
0
    YYFILL(1);
10537
0
    yych = *YYCURSOR;
10538
0
    if (yych <= 'M') {
10539
0
      if (yych <= 0x00) goto yy86;
10540
0
      if (yych == '*') goto yy668;
10541
0
      goto yy590;
10542
0
    } else {
10543
0
      if (yych <= 'N') goto yy934;
10544
0
      if (yych == 'n') goto yy934;
10545
0
      goto yy590;
10546
0
    }
10547
0
yy921:
10548
0
    YYDEBUG(921, *YYCURSOR);
10549
0
    ++YYCURSOR;
10550
0
    YYFILL(1);
10551
0
    yych = *YYCURSOR;
10552
0
    if (yych <= 'D') {
10553
0
      if (yych <= 0x00) goto yy86;
10554
0
      if (yych == '*') goto yy668;
10555
0
      goto yy590;
10556
0
    } else {
10557
0
      if (yych <= 'E') goto yy935;
10558
0
      if (yych == 'e') goto yy935;
10559
0
      goto yy590;
10560
0
    }
10561
0
yy922:
10562
0
    YYDEBUG(922, *YYCURSOR);
10563
0
    yyaccept = 94;
10564
0
    YYMARKER = ++YYCURSOR;
10565
0
    YYFILL(1);
10566
0
    yych = *YYCURSOR;
10567
0
    if (yych <= '\n') {
10568
0
      if (yych <= 0x00) goto yy886;
10569
0
      if (yych <= '\t') goto yy586;
10570
0
      goto yy495;
10571
0
    } else {
10572
0
      if (yych == '\r') goto yy495;
10573
0
      goto yy586;
10574
0
    }
10575
0
yy923:
10576
0
    YYDEBUG(923, *YYCURSOR);
10577
0
    ++YYCURSOR;
10578
0
    YYFILL(1);
10579
0
    yych = *YYCURSOR;
10580
0
    if (yych <= '\r') {
10581
0
      if (yych <= '\t') {
10582
0
        if (yych <= 0x00) goto yy86;
10583
0
        goto yy586;
10584
0
      } else {
10585
0
        if (yych <= '\n') goto yy495;
10586
0
        if (yych <= '\f') goto yy586;
10587
0
        goto yy495;
10588
0
      }
10589
0
    } else {
10590
0
      if (yych <= 'N') {
10591
0
        if (yych <= 'M') goto yy586;
10592
0
        goto yy936;
10593
0
      } else {
10594
0
        if (yych == 'n') goto yy936;
10595
0
        goto yy586;
10596
0
      }
10597
0
    }
10598
0
yy924:
10599
0
    YYDEBUG(924, *YYCURSOR);
10600
0
    yych = *++YYCURSOR;
10601
0
    if (yych == ')') goto yy937;
10602
0
    goto yy86;
10603
0
yy925:
10604
0
    YYDEBUG(925, *YYCURSOR);
10605
0
    ++YYCURSOR;
10606
0
    YYFILL(1);
10607
0
    yych = *YYCURSOR;
10608
0
    if (yych <= '\f') {
10609
0
      if (yych <= 0x00) goto yy86;
10610
0
      if (yych == '\n') goto yy904;
10611
0
      goto yy808;
10612
0
    } else {
10613
0
      if (yych <= '\r') goto yy904;
10614
0
      if (yych == '*') goto yy848;
10615
0
      goto yy808;
10616
0
    }
10617
0
yy926:
10618
0
    YYDEBUG(926, *YYCURSOR);
10619
0
    ++YYCURSOR;
10620
0
    YYFILL(1);
10621
0
    yych = *YYCURSOR;
10622
0
    if (yych <= '\f') {
10623
0
      if (yych <= 0x00) goto yy86;
10624
0
      if (yych == '\n') goto yy846;
10625
0
      goto yy808;
10626
0
    } else {
10627
0
      if (yych <= '\r') goto yy846;
10628
0
      if (yych == '*') goto yy939;
10629
0
      goto yy808;
10630
0
    }
10631
0
yy927:
10632
0
    YYDEBUG(927, *YYCURSOR);
10633
0
    ++YYCURSOR;
10634
0
    YYFILL(1);
10635
0
    yych = *YYCURSOR;
10636
0
    if (yych <= ')') {
10637
0
      if (yych <= '\n') {
10638
0
        if (yych <= 0x00) goto yy86;
10639
0
        if (yych <= '\t') goto yy808;
10640
0
        goto yy846;
10641
0
      } else {
10642
0
        if (yych == '\r') goto yy846;
10643
0
        goto yy808;
10644
0
      }
10645
0
    } else {
10646
0
      if (yych <= 'R') {
10647
0
        if (yych <= '*') goto yy848;
10648
0
        if (yych <= 'Q') goto yy808;
10649
0
        goto yy940;
10650
0
      } else {
10651
0
        if (yych == 'r') goto yy940;
10652
0
        goto yy808;
10653
0
      }
10654
0
    }
10655
0
yy928:
10656
0
    YYDEBUG(928, *YYCURSOR);
10657
0
    ++YYCURSOR;
10658
0
    YYFILL(1);
10659
0
    yych = *YYCURSOR;
10660
0
    if (yych <= 'L') {
10661
0
      if (yych <= 0x00) goto yy86;
10662
0
      if (yych == '*') goto yy760;
10663
0
      goto yy696;
10664
0
    } else {
10665
0
      if (yych <= 'M') goto yy941;
10666
0
      if (yych == 'm') goto yy941;
10667
0
      goto yy696;
10668
0
    }
10669
0
yy929:
10670
0
    YYDEBUG(929, *YYCURSOR);
10671
0
    yyaccept = 4;
10672
0
    yych = *(YYMARKER = ++YYCURSOR);
10673
0
    if (yych == 'E') goto yy942;
10674
0
    if (yych == 'e') goto yy942;
10675
0
    goto yy48;
10676
0
yy930:
10677
0
    YYDEBUG(930, *YYCURSOR);
10678
0
    yyaccept = 95;
10679
0
    yych = *(YYMARKER = ++YYCURSOR);
10680
0
    if (yybm[256+yych] & 128) {
10681
0
      goto yy47;
10682
0
    }
10683
0
    if (yych == '\\') goto yy164;
10684
0
yy931:
10685
0
    YYDEBUG(931, *YYCURSOR);
10686
0
    yyleng = YYCURSOR - SCNG(yy_text);
10687
0
#line 2284 "Zend/zend_language_scanner.l"
10688
0
    {
10689
0
  RETURN_TOKEN_WITH_IDENT(T_NS_C);
10690
0
}
10691
0
#line 10692 "Zend/zend_language_scanner.c"
10692
0
yy932:
10693
0
    YYDEBUG(932, *YYCURSOR);
10694
0
    ++YYCURSOR;
10695
0
    YYFILL(1);
10696
0
    yych = *YYCURSOR;
10697
0
    if (yych <= ')') {
10698
0
      if (yych <= '\n') {
10699
0
        if (yych <= 0x00) goto yy86;
10700
0
        if (yych <= '\t') goto yy738;
10701
0
        goto yy787;
10702
0
      } else {
10703
0
        if (yych == '\r') goto yy787;
10704
0
        goto yy738;
10705
0
      }
10706
0
    } else {
10707
0
      if (yych <= 'E') {
10708
0
        if (yych <= '*') goto yy789;
10709
0
        if (yych <= 'D') goto yy738;
10710
0
        goto yy943;
10711
0
      } else {
10712
0
        if (yych == 'e') goto yy943;
10713
0
        goto yy738;
10714
0
      }
10715
0
    }
10716
0
yy933:
10717
0
    YYDEBUG(933, *YYCURSOR);
10718
0
    ++YYCURSOR;
10719
0
    YYFILL(1);
10720
0
    yych = *YYCURSOR;
10721
0
    if (yych <= ')') {
10722
0
      if (yych <= '\n') {
10723
0
        if (yych <= 0x00) goto yy86;
10724
0
        if (yych <= '\t') goto yy738;
10725
0
        goto yy787;
10726
0
      } else {
10727
0
        if (yych == '\r') goto yy787;
10728
0
        goto yy738;
10729
0
      }
10730
0
    } else {
10731
0
      if (yych <= 'L') {
10732
0
        if (yych <= '*') goto yy789;
10733
0
        if (yych <= 'K') goto yy738;
10734
0
        goto yy944;
10735
0
      } else {
10736
0
        if (yych == 'l') goto yy944;
10737
0
        goto yy738;
10738
0
      }
10739
0
    }
10740
0
yy934:
10741
0
    YYDEBUG(934, *YYCURSOR);
10742
0
    ++YYCURSOR;
10743
0
    YYFILL(1);
10744
0
    yych = *YYCURSOR;
10745
0
    if (yych <= 'C') {
10746
0
      if (yych <= 0x00) goto yy86;
10747
0
      if (yych == '*') goto yy668;
10748
0
      goto yy590;
10749
0
    } else {
10750
0
      if (yych <= 'D') goto yy945;
10751
0
      if (yych == 'd') goto yy945;
10752
0
      goto yy590;
10753
0
    }
10754
0
yy935:
10755
0
    YYDEBUG(935, *YYCURSOR);
10756
0
    ++YYCURSOR;
10757
0
    YYFILL(1);
10758
0
    yych = *YYCURSOR;
10759
0
    if (yych <= 'L') {
10760
0
      if (yych <= 0x00) goto yy86;
10761
0
      if (yych == '*') goto yy668;
10762
0
      goto yy590;
10763
0
    } else {
10764
0
      if (yych <= 'M') goto yy946;
10765
0
      if (yych == 'm') goto yy946;
10766
0
      goto yy590;
10767
0
    }
10768
0
yy936:
10769
0
    YYDEBUG(936, *YYCURSOR);
10770
0
    ++YYCURSOR;
10771
0
    YYFILL(1);
10772
0
    yych = *YYCURSOR;
10773
0
    if (yych <= '\r') {
10774
0
      if (yych <= '\t') {
10775
0
        if (yych <= 0x00) goto yy86;
10776
0
        goto yy586;
10777
0
      } else {
10778
0
        if (yych <= '\n') goto yy495;
10779
0
        if (yych <= '\f') goto yy586;
10780
0
        goto yy495;
10781
0
      }
10782
0
    } else {
10783
0
      if (yych <= 'T') {
10784
0
        if (yych <= 'S') goto yy586;
10785
0
        goto yy895;
10786
0
      } else {
10787
0
        if (yych == 't') goto yy895;
10788
0
        goto yy586;
10789
0
      }
10790
0
    }
10791
0
yy937:
10792
0
    YYDEBUG(937, *YYCURSOR);
10793
0
    ++YYCURSOR;
10794
0
    YYDEBUG(938, *YYCURSOR);
10795
0
    yyleng = YYCURSOR - SCNG(yy_text);
10796
0
#line 1789 "Zend/zend_language_scanner.l"
10797
0
    {
10798
0
  RETURN_TOKEN_WITH_IDENT(T_PROTECTED_SET);
10799
0
}
10800
0
#line 10801 "Zend/zend_language_scanner.c"
10801
0
yy939:
10802
0
    YYDEBUG(939, *YYCURSOR);
10803
0
    ++YYCURSOR;
10804
0
    YYFILL(1);
10805
0
    yych = *YYCURSOR;
10806
0
    if (yych <= '\r') {
10807
0
      if (yych <= '\t') {
10808
0
        if (yych <= 0x00) goto yy86;
10809
0
        goto yy808;
10810
0
      } else {
10811
0
        if (yych <= '\n') goto yy846;
10812
0
        if (yych <= '\f') goto yy808;
10813
0
        goto yy846;
10814
0
      }
10815
0
    } else {
10816
0
      if (yych <= '*') {
10817
0
        if (yych <= ')') goto yy808;
10818
0
        goto yy848;
10819
0
      } else {
10820
0
        if (yych == '/') goto yy904;
10821
0
        goto yy808;
10822
0
      }
10823
0
    }
10824
0
yy940:
10825
0
    YYDEBUG(940, *YYCURSOR);
10826
0
    ++YYCURSOR;
10827
0
    YYFILL(1);
10828
0
    yych = *YYCURSOR;
10829
0
    if (yych <= ')') {
10830
0
      if (yych <= '\n') {
10831
0
        if (yych <= 0x00) goto yy86;
10832
0
        if (yych <= '\t') goto yy808;
10833
0
        goto yy846;
10834
0
      } else {
10835
0
        if (yych == '\r') goto yy846;
10836
0
        goto yy808;
10837
0
      }
10838
0
    } else {
10839
0
      if (yych <= 'O') {
10840
0
        if (yych <= '*') goto yy848;
10841
0
        if (yych <= 'N') goto yy808;
10842
0
        goto yy947;
10843
0
      } else {
10844
0
        if (yych == 'o') goto yy947;
10845
0
        goto yy808;
10846
0
      }
10847
0
    }
10848
0
yy941:
10849
0
    YYDEBUG(941, *YYCURSOR);
10850
0
    ++YYCURSOR;
10851
0
    YYFILL(1);
10852
0
    yych = *YYCURSOR;
10853
0
    if (yych <= '@') {
10854
0
      if (yych <= '*') {
10855
0
        if (yych <= 0x00) goto yy875;
10856
0
        if (yych <= ')') goto yy948;
10857
0
        goto yy949;
10858
0
      } else {
10859
0
        if (yych <= '/') goto yy948;
10860
0
        if (yych <= '9') goto yy696;
10861
0
        goto yy948;
10862
0
      }
10863
0
    } else {
10864
0
      if (yych <= '_') {
10865
0
        if (yych <= 'Z') goto yy696;
10866
0
        if (yych <= '^') goto yy948;
10867
0
        goto yy696;
10868
0
      } else {
10869
0
        if (yych <= '`') goto yy948;
10870
0
        if (yych <= 'z') goto yy696;
10871
0
        if (yych <= 0x7F) goto yy948;
10872
0
        goto yy696;
10873
0
      }
10874
0
    }
10875
0
yy942:
10876
0
    YYDEBUG(942, *YYCURSOR);
10877
0
    yyaccept = 4;
10878
0
    yych = *(YYMARKER = ++YYCURSOR);
10879
0
    if (yych == 'R') goto yy950;
10880
0
    if (yych == 'r') goto yy950;
10881
0
    goto yy48;
10882
0
yy943:
10883
0
    YYDEBUG(943, *YYCURSOR);
10884
0
    ++YYCURSOR;
10885
0
    YYFILL(1);
10886
0
    yych = *YYCURSOR;
10887
0
    if (yych <= ')') {
10888
0
      if (yych <= '\n') {
10889
0
        if (yych <= 0x00) goto yy86;
10890
0
        if (yych <= '\t') goto yy738;
10891
0
        goto yy787;
10892
0
      } else {
10893
0
        if (yych == '\r') goto yy787;
10894
0
        goto yy738;
10895
0
      }
10896
0
    } else {
10897
0
      if (yych <= 'N') {
10898
0
        if (yych <= '*') goto yy789;
10899
0
        if (yych <= 'M') goto yy738;
10900
0
        goto yy952;
10901
0
      } else {
10902
0
        if (yych == 'n') goto yy952;
10903
0
        goto yy738;
10904
0
      }
10905
0
    }
10906
0
yy944:
10907
0
    YYDEBUG(944, *YYCURSOR);
10908
0
    ++YYCURSOR;
10909
0
    YYFILL(1);
10910
0
    yych = *YYCURSOR;
10911
0
    if (yych <= ')') {
10912
0
      if (yych <= '\n') {
10913
0
        if (yych <= 0x00) goto yy86;
10914
0
        if (yych <= '\t') goto yy738;
10915
0
        goto yy787;
10916
0
      } else {
10917
0
        if (yych == '\r') goto yy787;
10918
0
        goto yy738;
10919
0
      }
10920
0
    } else {
10921
0
      if (yych <= 'E') {
10922
0
        if (yych <= '*') goto yy789;
10923
0
        if (yych <= 'D') goto yy738;
10924
0
        goto yy953;
10925
0
      } else {
10926
0
        if (yych == 'e') goto yy953;
10927
0
        goto yy738;
10928
0
      }
10929
0
    }
10930
0
yy945:
10931
0
    YYDEBUG(945, *YYCURSOR);
10932
0
    ++YYCURSOR;
10933
0
    YYFILL(1);
10934
0
    yych = *YYCURSOR;
10935
0
    if (yych <= 'R') {
10936
0
      if (yych <= 0x00) goto yy86;
10937
0
      if (yych == '*') goto yy668;
10938
0
      goto yy590;
10939
0
    } else {
10940
0
      if (yych <= 'S') goto yy954;
10941
0
      if (yych == 's') goto yy954;
10942
0
      goto yy590;
10943
0
    }
10944
0
yy946:
10945
0
    YYDEBUG(946, *YYCURSOR);
10946
0
    ++YYCURSOR;
10947
0
    YYFILL(1);
10948
0
    yych = *YYCURSOR;
10949
0
    if (yych <= 'D') {
10950
0
      if (yych <= 0x00) goto yy86;
10951
0
      if (yych == '*') goto yy668;
10952
0
      goto yy590;
10953
0
    } else {
10954
0
      if (yych <= 'E') goto yy955;
10955
0
      if (yych == 'e') goto yy955;
10956
0
      goto yy590;
10957
0
    }
10958
0
yy947:
10959
0
    YYDEBUG(947, *YYCURSOR);
10960
0
    ++YYCURSOR;
10961
0
    YYFILL(1);
10962
0
    yych = *YYCURSOR;
10963
0
    if (yych <= ')') {
10964
0
      if (yych <= '\n') {
10965
0
        if (yych <= 0x00) goto yy86;
10966
0
        if (yych <= '\t') goto yy808;
10967
0
        goto yy846;
10968
0
      } else {
10969
0
        if (yych == '\r') goto yy846;
10970
0
        goto yy808;
10971
0
      }
10972
0
    } else {
10973
0
      if (yych <= 'M') {
10974
0
        if (yych <= '*') goto yy848;
10975
0
        if (yych <= 'L') goto yy808;
10976
0
        goto yy956;
10977
0
      } else {
10978
0
        if (yych == 'm') goto yy956;
10979
0
        goto yy808;
10980
0
      }
10981
0
    }
10982
0
yy948:
10983
0
    YYDEBUG(948, *YYCURSOR);
10984
0
    yyaccept = 91;
10985
0
    YYMARKER = ++YYCURSOR;
10986
0
    YYFILL(1);
10987
0
    yych = *YYCURSOR;
10988
0
    if (yych <= 0x00) goto yy876;
10989
0
    if (yych == '*') goto yy760;
10990
0
    goto yy696;
10991
0
yy949:
10992
0
    YYDEBUG(949, *YYCURSOR);
10993
0
    yyaccept = 91;
10994
0
    YYMARKER = ++YYCURSOR;
10995
0
    YYFILL(1);
10996
0
    yych = *YYCURSOR;
10997
0
    if (yych <= '*') {
10998
0
      if (yych <= 0x00) goto yy876;
10999
0
      if (yych <= ')') goto yy696;
11000
0
      goto yy760;
11001
0
    } else {
11002
0
      if (yych == '/') goto yy616;
11003
0
      goto yy696;
11004
0
    }
11005
0
yy950:
11006
0
    YYDEBUG(950, *YYCURSOR);
11007
0
    yyaccept = 96;
11008
0
    yych = *(YYMARKER = ++YYCURSOR);
11009
0
    if (yybm[256+yych] & 128) {
11010
0
      goto yy47;
11011
0
    }
11012
0
    if (yych == '\\') goto yy164;
11013
0
yy951:
11014
0
    YYDEBUG(951, *YYCURSOR);
11015
0
    yyleng = YYCURSOR - SCNG(yy_text);
11016
0
#line 1761 "Zend/zend_language_scanner.l"
11017
0
    {
11018
0
  RETURN_TOKEN_WITH_IDENT(T_HALT_COMPILER);
11019
0
}
11020
0
#line 11021 "Zend/zend_language_scanner.c"
11021
0
yy952:
11022
0
    YYDEBUG(952, *YYCURSOR);
11023
0
    ++YYCURSOR;
11024
0
    YYFILL(1);
11025
0
    yych = *YYCURSOR;
11026
0
    if (yych <= ')') {
11027
0
      if (yych <= '\n') {
11028
0
        if (yych <= 0x00) goto yy86;
11029
0
        if (yych <= '\t') goto yy738;
11030
0
        goto yy787;
11031
0
      } else {
11032
0
        if (yych == '\r') goto yy787;
11033
0
        goto yy738;
11034
0
      }
11035
0
    } else {
11036
0
      if (yych <= 'D') {
11037
0
        if (yych <= '*') goto yy789;
11038
0
        if (yych <= 'C') goto yy738;
11039
0
        goto yy957;
11040
0
      } else {
11041
0
        if (yych == 'd') goto yy957;
11042
0
        goto yy738;
11043
0
      }
11044
0
    }
11045
0
yy953:
11046
0
    YYDEBUG(953, *YYCURSOR);
11047
0
    ++YYCURSOR;
11048
0
    YYFILL(1);
11049
0
    yych = *YYCURSOR;
11050
0
    if (yych <= ')') {
11051
0
      if (yych <= '\n') {
11052
0
        if (yych <= 0x00) goto yy86;
11053
0
        if (yych <= '\t') goto yy738;
11054
0
        goto yy787;
11055
0
      } else {
11056
0
        if (yych == '\r') goto yy787;
11057
0
        goto yy738;
11058
0
      }
11059
0
    } else {
11060
0
      if (yych <= 'M') {
11061
0
        if (yych <= '*') goto yy789;
11062
0
        if (yych <= 'L') goto yy738;
11063
0
        goto yy958;
11064
0
      } else {
11065
0
        if (yych == 'm') goto yy958;
11066
0
        goto yy738;
11067
0
      }
11068
0
    }
11069
0
yy954:
11070
0
    YYDEBUG(954, *YYCURSOR);
11071
0
    yyaccept = 94;
11072
0
    YYMARKER = ++YYCURSOR;
11073
0
    YYFILL(1);
11074
0
    yych = *YYCURSOR;
11075
0
    if (yych <= 0x00) goto yy886;
11076
0
    if (yych == '*') goto yy668;
11077
0
    goto yy590;
11078
0
yy955:
11079
0
    YYDEBUG(955, *YYCURSOR);
11080
0
    ++YYCURSOR;
11081
0
    YYFILL(1);
11082
0
    yych = *YYCURSOR;
11083
0
    if (yych <= 'M') {
11084
0
      if (yych <= 0x00) goto yy86;
11085
0
      if (yych == '*') goto yy668;
11086
0
      goto yy590;
11087
0
    } else {
11088
0
      if (yych <= 'N') goto yy959;
11089
0
      if (yych == 'n') goto yy959;
11090
0
      goto yy590;
11091
0
    }
11092
0
yy956:
11093
0
    YYDEBUG(956, *YYCURSOR);
11094
0
    ++YYCURSOR;
11095
0
    YYFILL(1);
11096
0
    yych = *YYCURSOR;
11097
0
    if (yych <= '/') {
11098
0
      if (yych <= '\f') {
11099
0
        if (yych <= 0x00) goto yy875;
11100
0
        if (yych == '\n') goto yy961;
11101
0
        goto yy960;
11102
0
      } else {
11103
0
        if (yych <= '\r') goto yy961;
11104
0
        if (yych == '*') goto yy962;
11105
0
        goto yy960;
11106
0
      }
11107
0
    } else {
11108
0
      if (yych <= '^') {
11109
0
        if (yych <= '9') goto yy808;
11110
0
        if (yych <= '@') goto yy960;
11111
0
        if (yych <= 'Z') goto yy808;
11112
0
        goto yy960;
11113
0
      } else {
11114
0
        if (yych <= '`') {
11115
0
          if (yych <= '_') goto yy808;
11116
0
          goto yy960;
11117
0
        } else {
11118
0
          if (yych <= 'z') goto yy808;
11119
0
          if (yych <= 0x7F) goto yy960;
11120
0
          goto yy808;
11121
0
        }
11122
0
      }
11123
0
    }
11124
0
yy957:
11125
0
    YYDEBUG(957, *YYCURSOR);
11126
0
    ++YYCURSOR;
11127
0
    YYFILL(1);
11128
0
    yych = *YYCURSOR;
11129
0
    if (yych <= ')') {
11130
0
      if (yych <= '\n') {
11131
0
        if (yych <= 0x00) goto yy86;
11132
0
        if (yych <= '\t') goto yy738;
11133
0
        goto yy787;
11134
0
      } else {
11135
0
        if (yych == '\r') goto yy787;
11136
0
        goto yy738;
11137
0
      }
11138
0
    } else {
11139
0
      if (yych <= 'S') {
11140
0
        if (yych <= '*') goto yy789;
11141
0
        if (yych <= 'R') goto yy738;
11142
0
        goto yy963;
11143
0
      } else {
11144
0
        if (yych == 's') goto yy963;
11145
0
        goto yy738;
11146
0
      }
11147
0
    }
11148
0
yy958:
11149
0
    YYDEBUG(958, *YYCURSOR);
11150
0
    ++YYCURSOR;
11151
0
    YYFILL(1);
11152
0
    yych = *YYCURSOR;
11153
0
    if (yych <= ')') {
11154
0
      if (yych <= '\n') {
11155
0
        if (yych <= 0x00) goto yy86;
11156
0
        if (yych <= '\t') goto yy738;
11157
0
        goto yy787;
11158
0
      } else {
11159
0
        if (yych == '\r') goto yy787;
11160
0
        goto yy738;
11161
0
      }
11162
0
    } else {
11163
0
      if (yych <= 'E') {
11164
0
        if (yych <= '*') goto yy789;
11165
0
        if (yych <= 'D') goto yy738;
11166
0
        goto yy964;
11167
0
      } else {
11168
0
        if (yych == 'e') goto yy964;
11169
0
        goto yy738;
11170
0
      }
11171
0
    }
11172
0
yy959:
11173
0
    YYDEBUG(959, *YYCURSOR);
11174
0
    ++YYCURSOR;
11175
0
    YYFILL(1);
11176
0
    yych = *YYCURSOR;
11177
0
    if (yych <= 'S') {
11178
0
      if (yych <= 0x00) goto yy86;
11179
0
      if (yych == '*') goto yy668;
11180
0
      goto yy590;
11181
0
    } else {
11182
0
      if (yych <= 'T') goto yy945;
11183
0
      if (yych == 't') goto yy945;
11184
0
      goto yy590;
11185
0
    }
11186
0
yy960:
11187
0
    YYDEBUG(960, *YYCURSOR);
11188
0
    yyaccept = 91;
11189
0
    YYMARKER = ++YYCURSOR;
11190
0
    YYFILL(1);
11191
0
    yych = *YYCURSOR;
11192
0
    if (yych <= '\f') {
11193
0
      if (yych <= 0x00) goto yy876;
11194
0
      if (yych == '\n') goto yy846;
11195
0
      goto yy808;
11196
0
    } else {
11197
0
      if (yych <= '\r') goto yy846;
11198
0
      if (yych == '*') goto yy848;
11199
0
      goto yy808;
11200
0
    }
11201
0
yy961:
11202
0
    YYDEBUG(961, *YYCURSOR);
11203
0
    yyaccept = 91;
11204
0
    YYMARKER = ++YYCURSOR;
11205
0
    YYFILL(1);
11206
0
    yych = *YYCURSOR;
11207
0
    if (yych <= '#') {
11208
0
      if (yych <= '\f') {
11209
0
        if (yych <= 0x00) goto yy876;
11210
0
        if (yych <= 0x08) goto yy696;
11211
0
        if (yych <= '\n') goto yy846;
11212
0
        goto yy696;
11213
0
      } else {
11214
0
        if (yych <= 0x1F) {
11215
0
          if (yych <= '\r') goto yy846;
11216
0
          goto yy696;
11217
0
        } else {
11218
0
          if (yych <= ' ') goto yy846;
11219
0
          if (yych <= '"') goto yy696;
11220
0
          goto yy877;
11221
0
        }
11222
0
      }
11223
0
    } else {
11224
0
      if (yych <= '/') {
11225
0
        if (yych == '*') goto yy760;
11226
0
        if (yych <= '.') goto yy696;
11227
0
        goto yy878;
11228
0
      } else {
11229
0
        if (yych <= 'F') {
11230
0
          if (yych <= 'E') goto yy696;
11231
0
          goto yy879;
11232
0
        } else {
11233
0
          if (yych == 'f') goto yy879;
11234
0
          goto yy696;
11235
0
        }
11236
0
      }
11237
0
    }
11238
0
yy962:
11239
0
    YYDEBUG(962, *YYCURSOR);
11240
0
    yyaccept = 91;
11241
0
    YYMARKER = ++YYCURSOR;
11242
0
    YYFILL(1);
11243
0
    yych = *YYCURSOR;
11244
0
    if (yych <= '\r') {
11245
0
      if (yych <= '\t') {
11246
0
        if (yych <= 0x00) goto yy876;
11247
0
        goto yy808;
11248
0
      } else {
11249
0
        if (yych <= '\n') goto yy846;
11250
0
        if (yych <= '\f') goto yy808;
11251
0
        goto yy846;
11252
0
      }
11253
0
    } else {
11254
0
      if (yych <= '*') {
11255
0
        if (yych <= ')') goto yy808;
11256
0
        goto yy848;
11257
0
      } else {
11258
0
        if (yych == '/') goto yy694;
11259
0
        goto yy808;
11260
0
      }
11261
0
    }
11262
0
yy963:
11263
0
    YYDEBUG(963, *YYCURSOR);
11264
0
    yyaccept = 94;
11265
0
    YYMARKER = ++YYCURSOR;
11266
0
    YYFILL(1);
11267
0
    yych = *YYCURSOR;
11268
0
    if (yych <= '\f') {
11269
0
      if (yych <= 0x00) goto yy886;
11270
0
      if (yych == '\n') goto yy787;
11271
0
      goto yy738;
11272
0
    } else {
11273
0
      if (yych <= '\r') goto yy787;
11274
0
      if (yych == '*') goto yy789;
11275
0
      goto yy738;
11276
0
    }
11277
0
yy964:
11278
0
    YYDEBUG(964, *YYCURSOR);
11279
0
    ++YYCURSOR;
11280
0
    YYFILL(1);
11281
0
    yych = *YYCURSOR;
11282
0
    if (yych <= ')') {
11283
0
      if (yych <= '\n') {
11284
0
        if (yych <= 0x00) goto yy86;
11285
0
        if (yych <= '\t') goto yy738;
11286
0
        goto yy787;
11287
0
      } else {
11288
0
        if (yych == '\r') goto yy787;
11289
0
        goto yy738;
11290
0
      }
11291
0
    } else {
11292
0
      if (yych <= 'N') {
11293
0
        if (yych <= '*') goto yy789;
11294
0
        if (yych <= 'M') goto yy738;
11295
0
      } else {
11296
0
        if (yych != 'n') goto yy738;
11297
0
      }
11298
0
    }
11299
0
    YYDEBUG(965, *YYCURSOR);
11300
0
    ++YYCURSOR;
11301
0
    YYFILL(1);
11302
0
    yych = *YYCURSOR;
11303
0
    if (yych <= ')') {
11304
0
      if (yych <= '\n') {
11305
0
        if (yych <= 0x00) goto yy86;
11306
0
        if (yych <= '\t') goto yy738;
11307
0
        goto yy787;
11308
0
      } else {
11309
0
        if (yych == '\r') goto yy787;
11310
0
        goto yy738;
11311
0
      }
11312
0
    } else {
11313
0
      if (yych <= 'T') {
11314
0
        if (yych <= '*') goto yy789;
11315
0
        if (yych <= 'S') goto yy738;
11316
0
        goto yy957;
11317
0
      } else {
11318
0
        if (yych == 't') goto yy957;
11319
0
        goto yy738;
11320
0
      }
11321
0
    }
11322
0
  }
11323
/* *********************************** */
11324
0
yyc_ST_LOOKING_FOR_PROPERTY:
11325
0
  {
11326
0
    static const unsigned char yybm[] = {
11327
0
        0,   0,   0,   0,   0,   0,   0,   0, 
11328
0
        0,  64,  64,   0,   0,  64,   0,   0, 
11329
0
        0,   0,   0,   0,   0,   0,   0,   0, 
11330
0
        0,   0,   0,   0,   0,   0,   0,   0, 
11331
0
       64,   0,   0,   0,   0,   0,   0,   0, 
11332
0
        0,   0,   0,   0,   0,   0,   0,   0, 
11333
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11334
0
      128, 128,   0,   0,   0,   0,   0,   0, 
11335
0
        0, 128, 128, 128, 128, 128, 128, 128, 
11336
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11337
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11338
0
      128, 128, 128,   0,   0,   0,   0, 128, 
11339
0
        0, 128, 128, 128, 128, 128, 128, 128, 
11340
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11341
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11342
0
      128, 128, 128,   0,   0,   0,   0,   0, 
11343
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11344
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11345
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11346
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11347
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11348
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11349
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11350
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11351
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11352
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11353
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11354
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11355
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11356
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11357
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11358
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11359
0
    };
11360
0
    YYDEBUG(966, *YYCURSOR);
11361
0
    YYFILL(4);
11362
0
    yych = *YYCURSOR;
11363
0
    if (yybm[0+yych] & 64) {
11364
0
      goto yy970;
11365
0
    }
11366
0
    if (yych <= '?') {
11367
0
      if (yych <= '-') {
11368
0
        if (yych == '#') goto yy973;
11369
0
        if (yych >= '-') goto yy975;
11370
0
      } else {
11371
0
        if (yych == '/') goto yy976;
11372
0
        if (yych >= '?') goto yy977;
11373
0
      }
11374
0
    } else {
11375
0
      if (yych <= '_') {
11376
0
        if (yych <= '@') goto yy968;
11377
0
        if (yych <= 'Z') goto yy978;
11378
0
        if (yych >= '_') goto yy978;
11379
0
      } else {
11380
0
        if (yych <= '`') goto yy968;
11381
0
        if (yych <= 'z') goto yy978;
11382
0
        if (yych >= 0x80) goto yy978;
11383
0
      }
11384
0
    }
11385
0
yy968:
11386
0
    YYDEBUG(968, *YYCURSOR);
11387
0
    ++YYCURSOR;
11388
0
yy969:
11389
0
    YYDEBUG(969, *YYCURSOR);
11390
0
    yyleng = YYCURSOR - SCNG(yy_text);
11391
0
#line 2519 "Zend/zend_language_scanner.l"
11392
0
    {
11393
0
  yyless(0);
11394
0
  yy_pop_state();
11395
0
  goto restart;
11396
0
}
11397
0
#line 11398 "Zend/zend_language_scanner.c"
11398
0
yy970:
11399
0
    YYDEBUG(970, *YYCURSOR);
11400
0
    ++YYCURSOR;
11401
0
    YYFILL(1);
11402
0
    yych = *YYCURSOR;
11403
0
    YYDEBUG(971, *YYCURSOR);
11404
0
    if (yybm[0+yych] & 64) {
11405
0
      goto yy970;
11406
0
    }
11407
0
    YYDEBUG(972, *YYCURSOR);
11408
0
    yyleng = YYCURSOR - SCNG(yy_text);
11409
0
#line 1596 "Zend/zend_language_scanner.l"
11410
0
    {
11411
0
  goto return_whitespace;
11412
0
}
11413
0
#line 11414 "Zend/zend_language_scanner.c"
11414
0
yy973:
11415
0
    YYDEBUG(973, *YYCURSOR);
11416
0
    ++YYCURSOR;
11417
0
    YYDEBUG(974, *YYCURSOR);
11418
0
    yyleng = YYCURSOR - SCNG(yy_text);
11419
0
#line 2459 "Zend/zend_language_scanner.l"
11420
0
    {
11421
0
  while (YYCURSOR < YYLIMIT) {
11422
0
    switch (*YYCURSOR++) {
11423
0
      case '\r':
11424
0
      case '\n':
11425
0
        YYCURSOR--;
11426
0
        break;
11427
0
      case '?':
11428
0
        if (*YYCURSOR == '>') {
11429
0
          YYCURSOR--;
11430
0
          break;
11431
0
        }
11432
0
        ZEND_FALLTHROUGH;
11433
0
      default:
11434
0
        continue;
11435
0
    }
11436
11437
0
    break;
11438
0
  }
11439
11440
0
  yyleng = YYCURSOR - SCNG(yy_text);
11441
0
  RETURN_OR_SKIP_TOKEN(T_COMMENT);
11442
0
}
11443
0
#line 11444 "Zend/zend_language_scanner.c"
11444
0
yy975:
11445
0
    YYDEBUG(975, *YYCURSOR);
11446
0
    yych = *++YYCURSOR;
11447
0
    if (yych == '>') goto yy981;
11448
0
    goto yy969;
11449
0
yy976:
11450
0
    YYDEBUG(976, *YYCURSOR);
11451
0
    yych = *++YYCURSOR;
11452
0
    if (yych == '*') goto yy983;
11453
0
    if (yych == '/') goto yy973;
11454
0
    goto yy969;
11455
0
yy977:
11456
0
    YYDEBUG(977, *YYCURSOR);
11457
0
    yyaccept = 0;
11458
0
    yych = *(YYMARKER = ++YYCURSOR);
11459
0
    if (yych == '-') goto yy985;
11460
0
    goto yy969;
11461
0
yy978:
11462
0
    YYDEBUG(978, *YYCURSOR);
11463
0
    ++YYCURSOR;
11464
0
    YYFILL(1);
11465
0
    yych = *YYCURSOR;
11466
0
    YYDEBUG(979, *YYCURSOR);
11467
0
    if (yybm[0+yych] & 128) {
11468
0
      goto yy978;
11469
0
    }
11470
0
    YYDEBUG(980, *YYCURSOR);
11471
0
    yyleng = YYCURSOR - SCNG(yy_text);
11472
0
#line 1608 "Zend/zend_language_scanner.l"
11473
0
    {
11474
0
  yy_pop_state();
11475
0
  RETURN_TOKEN_WITH_STR(T_STRING, 0);
11476
0
}
11477
0
#line 11478 "Zend/zend_language_scanner.c"
11478
0
yy981:
11479
0
    YYDEBUG(981, *YYCURSOR);
11480
0
    ++YYCURSOR;
11481
0
    YYDEBUG(982, *YYCURSOR);
11482
0
    yyleng = YYCURSOR - SCNG(yy_text);
11483
0
#line 1600 "Zend/zend_language_scanner.l"
11484
0
    {
11485
0
  RETURN_TOKEN(T_OBJECT_OPERATOR);
11486
0
}
11487
0
#line 11488 "Zend/zend_language_scanner.c"
11488
0
yy983:
11489
0
    YYDEBUG(983, *YYCURSOR);
11490
0
    yyaccept = 1;
11491
0
    yych = *(YYMARKER = ++YYCURSOR);
11492
0
    if (yych == '*') goto yy987;
11493
0
yy984:
11494
0
    YYDEBUG(984, *YYCURSOR);
11495
0
    yyleng = YYCURSOR - SCNG(yy_text);
11496
0
#line 2483 "Zend/zend_language_scanner.l"
11497
0
    {
11498
0
  int doc_com;
11499
11500
0
  if (yyleng > 2) {
11501
0
    doc_com = 1;
11502
0
    RESET_DOC_COMMENT();
11503
0
  } else {
11504
0
    doc_com = 0;
11505
0
  }
11506
11507
0
  while (YYCURSOR < YYLIMIT) {
11508
0
    if (*YYCURSOR++ == '*' && *YYCURSOR == '/') {
11509
0
      break;
11510
0
    }
11511
0
  }
11512
11513
0
  if (YYCURSOR < YYLIMIT) {
11514
0
    YYCURSOR++;
11515
0
  } else {
11516
0
    zend_throw_exception_ex(zend_ce_parse_error, 0, "Unterminated comment starting line %" PRIu32, CG(zend_lineno));
11517
0
    if (PARSER_MODE()) {
11518
0
      RETURN_TOKEN(T_ERROR);
11519
0
    }
11520
0
  }
11521
11522
0
  yyleng = YYCURSOR - SCNG(yy_text);
11523
0
  HANDLE_NEWLINES(yytext, yyleng);
11524
11525
0
  if (doc_com) {
11526
0
    CG(doc_comment) = zend_string_init(yytext, yyleng, 0);
11527
0
    RETURN_OR_SKIP_TOKEN(T_DOC_COMMENT);
11528
0
  }
11529
11530
0
  RETURN_OR_SKIP_TOKEN(T_COMMENT);
11531
0
}
11532
0
#line 11533 "Zend/zend_language_scanner.c"
11533
0
yy985:
11534
0
    YYDEBUG(985, *YYCURSOR);
11535
0
    yych = *++YYCURSOR;
11536
0
    if (yych == '>') goto yy988;
11537
0
yy986:
11538
0
    YYDEBUG(986, *YYCURSOR);
11539
0
    YYCURSOR = YYMARKER;
11540
0
    if (yyaccept == 0) {
11541
0
      goto yy969;
11542
0
    } else {
11543
0
      goto yy984;
11544
0
    }
11545
0
yy987:
11546
0
    YYDEBUG(987, *YYCURSOR);
11547
0
    yych = *++YYCURSOR;
11548
0
    if (yych <= '\f') {
11549
0
      if (yych <= 0x08) goto yy986;
11550
0
      if (yych <= '\n') goto yy990;
11551
0
      goto yy986;
11552
0
    } else {
11553
0
      if (yych <= '\r') goto yy990;
11554
0
      if (yych == ' ') goto yy990;
11555
0
      goto yy986;
11556
0
    }
11557
0
yy988:
11558
0
    YYDEBUG(988, *YYCURSOR);
11559
0
    ++YYCURSOR;
11560
0
    YYDEBUG(989, *YYCURSOR);
11561
0
    yyleng = YYCURSOR - SCNG(yy_text);
11562
0
#line 1604 "Zend/zend_language_scanner.l"
11563
0
    {
11564
0
  RETURN_TOKEN(T_NULLSAFE_OBJECT_OPERATOR);
11565
0
}
11566
0
#line 11567 "Zend/zend_language_scanner.c"
11567
0
yy990:
11568
0
    YYDEBUG(990, *YYCURSOR);
11569
0
    ++YYCURSOR;
11570
0
    YYFILL(1);
11571
0
    yych = *YYCURSOR;
11572
0
    YYDEBUG(991, *YYCURSOR);
11573
0
    if (yych <= '\f') {
11574
0
      if (yych <= 0x08) goto yy984;
11575
0
      if (yych <= '\n') goto yy990;
11576
0
      goto yy984;
11577
0
    } else {
11578
0
      if (yych <= '\r') goto yy990;
11579
0
      if (yych == ' ') goto yy990;
11580
0
      goto yy984;
11581
0
    }
11582
0
  }
11583
/* *********************************** */
11584
0
yyc_ST_BACKQUOTE:
11585
0
  {
11586
0
    static const unsigned char yybm[] = {
11587
0
        0,   0,   0,   0,   0,   0,   0,   0, 
11588
0
        0,   0,   0,   0,   0,   0,   0,   0, 
11589
0
        0,   0,   0,   0,   0,   0,   0,   0, 
11590
0
        0,   0,   0,   0,   0,   0,   0,   0, 
11591
0
        0,   0,   0,   0,   0,   0,   0,   0, 
11592
0
        0,   0,   0,   0,   0,   0,   0,   0, 
11593
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11594
0
      128, 128,   0,   0,   0,   0,   0,   0, 
11595
0
        0, 128, 128, 128, 128, 128, 128, 128, 
11596
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11597
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11598
0
      128, 128, 128,   0,   0,   0,   0, 128, 
11599
0
        0, 128, 128, 128, 128, 128, 128, 128, 
11600
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11601
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11602
0
      128, 128, 128,   0,   0,   0,   0,   0, 
11603
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11604
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11605
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11606
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11607
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11608
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11609
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11610
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11611
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11612
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11613
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11614
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11615
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11616
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11617
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11618
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11619
0
    };
11620
0
    YYDEBUG(992, *YYCURSOR);
11621
0
    YYFILL(2);
11622
0
    yych = *YYCURSOR;
11623
0
    if (yych <= '_') {
11624
0
      if (yych == '$') goto yy996;
11625
0
    } else {
11626
0
      if (yych <= '`') goto yy997;
11627
0
      if (yych == '{') goto yy999;
11628
0
    }
11629
0
    YYDEBUG(994, *YYCURSOR);
11630
0
    ++YYCURSOR;
11631
0
yy995:
11632
0
    YYDEBUG(995, *YYCURSOR);
11633
0
    yyleng = YYCURSOR - SCNG(yy_text);
11634
0
#line 2918 "Zend/zend_language_scanner.l"
11635
0
    {
11636
0
  if (YYCURSOR > YYLIMIT) {
11637
0
    RETURN_END_TOKEN;
11638
0
  }
11639
0
  if (yytext[0] == '\\' && YYCURSOR < YYLIMIT) {
11640
0
    YYCURSOR++;
11641
0
  }
11642
11643
0
  while (YYCURSOR < YYLIMIT) {
11644
0
    switch (*YYCURSOR++) {
11645
0
      case '`':
11646
0
        break;
11647
0
      case '$':
11648
0
        if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
11649
0
          break;
11650
0
        }
11651
0
        continue;
11652
0
      case '{':
11653
0
        if (*YYCURSOR == '$') {
11654
0
          break;
11655
0
        }
11656
0
        continue;
11657
0
      case '\\':
11658
0
        if (YYCURSOR < YYLIMIT) {
11659
0
          YYCURSOR++;
11660
0
        }
11661
0
        ZEND_FALLTHROUGH;
11662
0
      default:
11663
0
        continue;
11664
0
    }
11665
11666
0
    YYCURSOR--;
11667
0
    break;
11668
0
  }
11669
11670
0
  yyleng = YYCURSOR - SCNG(yy_text);
11671
11672
0
  if (EXPECTED(zend_scan_escape_string(zendlval, yytext, yyleng, '`') == SUCCESS)
11673
0
   || !PARSER_MODE()) {
11674
0
    RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
11675
0
  } else {
11676
0
    RETURN_TOKEN(T_ERROR);
11677
0
  }
11678
0
}
11679
0
#line 11680 "Zend/zend_language_scanner.c"
11680
0
yy996:
11681
0
    YYDEBUG(996, *YYCURSOR);
11682
0
    yych = *++YYCURSOR;
11683
0
    if (yych <= '_') {
11684
0
      if (yych <= '@') goto yy995;
11685
0
      if (yych <= 'Z') goto yy1000;
11686
0
      if (yych <= '^') goto yy995;
11687
0
      goto yy1000;
11688
0
    } else {
11689
0
      if (yych <= 'z') {
11690
0
        if (yych <= '`') goto yy995;
11691
0
        goto yy1000;
11692
0
      } else {
11693
0
        if (yych <= '{') goto yy1003;
11694
0
        if (yych <= 0x7F) goto yy995;
11695
0
        goto yy1000;
11696
0
      }
11697
0
    }
11698
0
yy997:
11699
0
    YYDEBUG(997, *YYCURSOR);
11700
0
    ++YYCURSOR;
11701
0
    YYDEBUG(998, *YYCURSOR);
11702
0
    yyleng = YYCURSOR - SCNG(yy_text);
11703
0
#line 2858 "Zend/zend_language_scanner.l"
11704
0
    {
11705
0
  BEGIN(ST_IN_SCRIPTING);
11706
0
  RETURN_TOKEN('`');
11707
0
}
11708
0
#line 11709 "Zend/zend_language_scanner.c"
11709
0
yy999:
11710
0
    YYDEBUG(999, *YYCURSOR);
11711
0
    yych = *++YYCURSOR;
11712
0
    if (yych == '$') goto yy1005;
11713
0
    goto yy995;
11714
0
yy1000:
11715
0
    YYDEBUG(1000, *YYCURSOR);
11716
0
    YYMARKER = ++YYCURSOR;
11717
0
    YYFILL(4);
11718
0
    yych = *YYCURSOR;
11719
0
    YYDEBUG(1001, *YYCURSOR);
11720
0
    if (yybm[0+yych] & 128) {
11721
0
      goto yy1000;
11722
0
    }
11723
0
    if (yych <= '>') {
11724
0
      if (yych == '-') goto yy1007;
11725
0
    } else {
11726
0
      if (yych <= '?') goto yy1009;
11727
0
      if (yych <= '@') goto yy1002;
11728
0
      if (yych <= '[') goto yy1010;
11729
0
    }
11730
0
yy1002:
11731
0
    YYDEBUG(1002, *YYCURSOR);
11732
0
    yyleng = YYCURSOR - SCNG(yy_text);
11733
0
#line 2416 "Zend/zend_language_scanner.l"
11734
0
    {
11735
0
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
11736
0
}
11737
0
#line 11738 "Zend/zend_language_scanner.c"
11738
0
yy1003:
11739
0
    YYDEBUG(1003, *YYCURSOR);
11740
0
    ++YYCURSOR;
11741
0
    YYDEBUG(1004, *YYCURSOR);
11742
0
    yyleng = YYCURSOR - SCNG(yy_text);
11743
0
#line 1980 "Zend/zend_language_scanner.l"
11744
0
    {
11745
0
  yy_push_state(ST_LOOKING_FOR_VARNAME);
11746
0
  enter_nesting('{');
11747
0
  RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES);
11748
0
}
11749
0
#line 11750 "Zend/zend_language_scanner.c"
11750
0
yy1005:
11751
0
    YYDEBUG(1005, *YYCURSOR);
11752
0
    ++YYCURSOR;
11753
0
    YYDEBUG(1006, *YYCURSOR);
11754
0
    yyleng = YYCURSOR - SCNG(yy_text);
11755
0
#line 2845 "Zend/zend_language_scanner.l"
11756
0
    {
11757
0
  yy_push_state(ST_IN_SCRIPTING);
11758
0
  yyless(1);
11759
0
  enter_nesting('{');
11760
0
  RETURN_TOKEN(T_CURLY_OPEN);
11761
0
}
11762
0
#line 11763 "Zend/zend_language_scanner.c"
11763
0
yy1007:
11764
0
    YYDEBUG(1007, *YYCURSOR);
11765
0
    yych = *++YYCURSOR;
11766
0
    if (yych == '>') goto yy1012;
11767
0
yy1008:
11768
0
    YYDEBUG(1008, *YYCURSOR);
11769
0
    YYCURSOR = YYMARKER;
11770
0
    goto yy1002;
11771
0
yy1009:
11772
0
    YYDEBUG(1009, *YYCURSOR);
11773
0
    yych = *++YYCURSOR;
11774
0
    if (yych == '-') goto yy1013;
11775
0
    goto yy1008;
11776
0
yy1010:
11777
0
    YYDEBUG(1010, *YYCURSOR);
11778
0
    ++YYCURSOR;
11779
0
    YYDEBUG(1011, *YYCURSOR);
11780
0
    yyleng = YYCURSOR - SCNG(yy_text);
11781
0
#line 2410 "Zend/zend_language_scanner.l"
11782
0
    {
11783
0
  yyless(yyleng - 1);
11784
0
  yy_push_state(ST_VAR_OFFSET);
11785
0
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
11786
0
}
11787
0
#line 11788 "Zend/zend_language_scanner.c"
11788
0
yy1012:
11789
0
    YYDEBUG(1012, *YYCURSOR);
11790
0
    yych = *++YYCURSOR;
11791
0
    if (yych <= '_') {
11792
0
      if (yych <= '@') goto yy1008;
11793
0
      if (yych <= 'Z') goto yy1014;
11794
0
      if (yych <= '^') goto yy1008;
11795
0
      goto yy1014;
11796
0
    } else {
11797
0
      if (yych <= '`') goto yy1008;
11798
0
      if (yych <= 'z') goto yy1014;
11799
0
      if (yych <= 0x7F) goto yy1008;
11800
0
      goto yy1014;
11801
0
    }
11802
0
yy1013:
11803
0
    YYDEBUG(1013, *YYCURSOR);
11804
0
    yych = *++YYCURSOR;
11805
0
    if (yych == '>') goto yy1016;
11806
0
    goto yy1008;
11807
0
yy1014:
11808
0
    YYDEBUG(1014, *YYCURSOR);
11809
0
    ++YYCURSOR;
11810
0
    YYDEBUG(1015, *YYCURSOR);
11811
0
    yyleng = YYCURSOR - SCNG(yy_text);
11812
0
#line 2396 "Zend/zend_language_scanner.l"
11813
0
    {
11814
0
  yyless(yyleng - 3);
11815
0
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
11816
0
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
11817
0
}
11818
0
#line 11819 "Zend/zend_language_scanner.c"
11819
0
yy1016:
11820
0
    YYDEBUG(1016, *YYCURSOR);
11821
0
    yych = *++YYCURSOR;
11822
0
    if (yych <= '_') {
11823
0
      if (yych <= '@') goto yy1008;
11824
0
      if (yych <= 'Z') goto yy1017;
11825
0
      if (yych <= '^') goto yy1008;
11826
0
    } else {
11827
0
      if (yych <= '`') goto yy1008;
11828
0
      if (yych <= 'z') goto yy1017;
11829
0
      if (yych <= 0x7F) goto yy1008;
11830
0
    }
11831
0
yy1017:
11832
0
    YYDEBUG(1017, *YYCURSOR);
11833
0
    ++YYCURSOR;
11834
0
    YYDEBUG(1018, *YYCURSOR);
11835
0
    yyleng = YYCURSOR - SCNG(yy_text);
11836
0
#line 2402 "Zend/zend_language_scanner.l"
11837
0
    {
11838
0
  yyless(yyleng - 4);
11839
0
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
11840
0
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
11841
0
}
11842
0
#line 11843 "Zend/zend_language_scanner.c"
11843
0
  }
11844
/* *********************************** */
11845
0
yyc_ST_DOUBLE_QUOTES:
11846
0
  {
11847
0
    static const unsigned char yybm[] = {
11848
0
        0,   0,   0,   0,   0,   0,   0,   0, 
11849
0
        0,   0,   0,   0,   0,   0,   0,   0, 
11850
0
        0,   0,   0,   0,   0,   0,   0,   0, 
11851
0
        0,   0,   0,   0,   0,   0,   0,   0, 
11852
0
        0,   0,   0,   0,   0,   0,   0,   0, 
11853
0
        0,   0,   0,   0,   0,   0,   0,   0, 
11854
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11855
0
      128, 128,   0,   0,   0,   0,   0,   0, 
11856
0
        0, 128, 128, 128, 128, 128, 128, 128, 
11857
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11858
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11859
0
      128, 128, 128,   0,   0,   0,   0, 128, 
11860
0
        0, 128, 128, 128, 128, 128, 128, 128, 
11861
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11862
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11863
0
      128, 128, 128,   0,   0,   0,   0,   0, 
11864
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11865
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11866
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11867
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11868
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11869
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11870
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11871
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11872
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11873
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11874
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11875
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11876
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11877
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11878
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11879
0
      128, 128, 128, 128, 128, 128, 128, 128, 
11880
0
    };
11881
0
    YYDEBUG(1019, *YYCURSOR);
11882
0
    YYFILL(2);
11883
0
    yych = *YYCURSOR;
11884
0
    if (yych <= '#') {
11885
0
      if (yych == '"') goto yy1023;
11886
0
    } else {
11887
0
      if (yych <= '$') goto yy1025;
11888
0
      if (yych == '{') goto yy1026;
11889
0
    }
11890
0
    YYDEBUG(1021, *YYCURSOR);
11891
0
    ++YYCURSOR;
11892
0
yy1022:
11893
0
    YYDEBUG(1022, *YYCURSOR);
11894
0
    yyleng = YYCURSOR - SCNG(yy_text);
11895
0
#line 2864 "Zend/zend_language_scanner.l"
11896
0
    {
11897
0
  if (GET_DOUBLE_QUOTES_SCANNED_LENGTH()) {
11898
0
    YYCURSOR += GET_DOUBLE_QUOTES_SCANNED_LENGTH() - 1;
11899
0
    SET_DOUBLE_QUOTES_SCANNED_LENGTH(0);
11900
11901
0
    goto double_quotes_scan_done;
11902
0
  }
11903
11904
0
  if (YYCURSOR > YYLIMIT) {
11905
0
    RETURN_END_TOKEN;
11906
0
  }
11907
0
  if (yytext[0] == '\\' && YYCURSOR < YYLIMIT) {
11908
0
    YYCURSOR++;
11909
0
  }
11910
11911
0
  while (YYCURSOR < YYLIMIT) {
11912
0
    switch (*YYCURSOR++) {
11913
0
      case '"':
11914
0
        break;
11915
0
      case '$':
11916
0
        if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
11917
0
          break;
11918
0
        }
11919
0
        continue;
11920
0
      case '{':
11921
0
        if (*YYCURSOR == '$') {
11922
0
          break;
11923
0
        }
11924
0
        continue;
11925
0
      case '\\':
11926
0
        if (YYCURSOR < YYLIMIT) {
11927
0
          YYCURSOR++;
11928
0
        }
11929
0
        ZEND_FALLTHROUGH;
11930
0
      default:
11931
0
        continue;
11932
0
    }
11933
11934
0
    YYCURSOR--;
11935
0
    break;
11936
0
  }
11937
11938
0
double_quotes_scan_done:
11939
0
  yyleng = YYCURSOR - SCNG(yy_text);
11940
11941
0
  if (EXPECTED(zend_scan_escape_string(zendlval, yytext, yyleng, '"') == SUCCESS)
11942
0
   || !PARSER_MODE()) {
11943
0
    RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
11944
0
  } else {
11945
0
    RETURN_TOKEN(T_ERROR);
11946
0
  }
11947
0
}
11948
0
#line 11949 "Zend/zend_language_scanner.c"
11949
0
yy1023:
11950
0
    YYDEBUG(1023, *YYCURSOR);
11951
0
    ++YYCURSOR;
11952
0
    YYDEBUG(1024, *YYCURSOR);
11953
0
    yyleng = YYCURSOR - SCNG(yy_text);
11954
0
#line 2853 "Zend/zend_language_scanner.l"
11955
0
    {
11956
0
  BEGIN(ST_IN_SCRIPTING);
11957
0
  RETURN_TOKEN('"');
11958
0
}
11959
0
#line 11960 "Zend/zend_language_scanner.c"
11960
0
yy1025:
11961
0
    YYDEBUG(1025, *YYCURSOR);
11962
0
    yych = *++YYCURSOR;
11963
0
    if (yych <= '_') {
11964
0
      if (yych <= '@') goto yy1022;
11965
0
      if (yych <= 'Z') goto yy1027;
11966
0
      if (yych <= '^') goto yy1022;
11967
0
      goto yy1027;
11968
0
    } else {
11969
0
      if (yych <= 'z') {
11970
0
        if (yych <= '`') goto yy1022;
11971
0
        goto yy1027;
11972
0
      } else {
11973
0
        if (yych <= '{') goto yy1030;
11974
0
        if (yych <= 0x7F) goto yy1022;
11975
0
        goto yy1027;
11976
0
      }
11977
0
    }
11978
0
yy1026:
11979
0
    YYDEBUG(1026, *YYCURSOR);
11980
0
    yych = *++YYCURSOR;
11981
0
    if (yych == '$') goto yy1032;
11982
0
    goto yy1022;
11983
0
yy1027:
11984
0
    YYDEBUG(1027, *YYCURSOR);
11985
0
    YYMARKER = ++YYCURSOR;
11986
0
    YYFILL(4);
11987
0
    yych = *YYCURSOR;
11988
0
    YYDEBUG(1028, *YYCURSOR);
11989
0
    if (yybm[0+yych] & 128) {
11990
0
      goto yy1027;
11991
0
    }
11992
0
    if (yych <= '>') {
11993
0
      if (yych == '-') goto yy1034;
11994
0
    } else {
11995
0
      if (yych <= '?') goto yy1036;
11996
0
      if (yych <= '@') goto yy1029;
11997
0
      if (yych <= '[') goto yy1037;
11998
0
    }
11999
0
yy1029:
12000
0
    YYDEBUG(1029, *YYCURSOR);
12001
0
    yyleng = YYCURSOR - SCNG(yy_text);
12002
0
#line 2416 "Zend/zend_language_scanner.l"
12003
0
    {
12004
0
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12005
0
}
12006
0
#line 12007 "Zend/zend_language_scanner.c"
12007
0
yy1030:
12008
0
    YYDEBUG(1030, *YYCURSOR);
12009
0
    ++YYCURSOR;
12010
0
    YYDEBUG(1031, *YYCURSOR);
12011
0
    yyleng = YYCURSOR - SCNG(yy_text);
12012
0
#line 1980 "Zend/zend_language_scanner.l"
12013
0
    {
12014
0
  yy_push_state(ST_LOOKING_FOR_VARNAME);
12015
0
  enter_nesting('{');
12016
0
  RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES);
12017
0
}
12018
0
#line 12019 "Zend/zend_language_scanner.c"
12019
0
yy1032:
12020
0
    YYDEBUG(1032, *YYCURSOR);
12021
0
    ++YYCURSOR;
12022
0
    YYDEBUG(1033, *YYCURSOR);
12023
0
    yyleng = YYCURSOR - SCNG(yy_text);
12024
0
#line 2845 "Zend/zend_language_scanner.l"
12025
0
    {
12026
0
  yy_push_state(ST_IN_SCRIPTING);
12027
0
  yyless(1);
12028
0
  enter_nesting('{');
12029
0
  RETURN_TOKEN(T_CURLY_OPEN);
12030
0
}
12031
0
#line 12032 "Zend/zend_language_scanner.c"
12032
0
yy1034:
12033
0
    YYDEBUG(1034, *YYCURSOR);
12034
0
    yych = *++YYCURSOR;
12035
0
    if (yych == '>') goto yy1039;
12036
0
yy1035:
12037
0
    YYDEBUG(1035, *YYCURSOR);
12038
0
    YYCURSOR = YYMARKER;
12039
0
    goto yy1029;
12040
0
yy1036:
12041
0
    YYDEBUG(1036, *YYCURSOR);
12042
0
    yych = *++YYCURSOR;
12043
0
    if (yych == '-') goto yy1040;
12044
0
    goto yy1035;
12045
0
yy1037:
12046
0
    YYDEBUG(1037, *YYCURSOR);
12047
0
    ++YYCURSOR;
12048
0
    YYDEBUG(1038, *YYCURSOR);
12049
0
    yyleng = YYCURSOR - SCNG(yy_text);
12050
0
#line 2410 "Zend/zend_language_scanner.l"
12051
0
    {
12052
0
  yyless(yyleng - 1);
12053
0
  yy_push_state(ST_VAR_OFFSET);
12054
0
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12055
0
}
12056
0
#line 12057 "Zend/zend_language_scanner.c"
12057
0
yy1039:
12058
0
    YYDEBUG(1039, *YYCURSOR);
12059
0
    yych = *++YYCURSOR;
12060
0
    if (yych <= '_') {
12061
0
      if (yych <= '@') goto yy1035;
12062
0
      if (yych <= 'Z') goto yy1041;
12063
0
      if (yych <= '^') goto yy1035;
12064
0
      goto yy1041;
12065
0
    } else {
12066
0
      if (yych <= '`') goto yy1035;
12067
0
      if (yych <= 'z') goto yy1041;
12068
0
      if (yych <= 0x7F) goto yy1035;
12069
0
      goto yy1041;
12070
0
    }
12071
0
yy1040:
12072
0
    YYDEBUG(1040, *YYCURSOR);
12073
0
    yych = *++YYCURSOR;
12074
0
    if (yych == '>') goto yy1043;
12075
0
    goto yy1035;
12076
0
yy1041:
12077
0
    YYDEBUG(1041, *YYCURSOR);
12078
0
    ++YYCURSOR;
12079
0
    YYDEBUG(1042, *YYCURSOR);
12080
0
    yyleng = YYCURSOR - SCNG(yy_text);
12081
0
#line 2396 "Zend/zend_language_scanner.l"
12082
0
    {
12083
0
  yyless(yyleng - 3);
12084
0
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
12085
0
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12086
0
}
12087
0
#line 12088 "Zend/zend_language_scanner.c"
12088
0
yy1043:
12089
0
    YYDEBUG(1043, *YYCURSOR);
12090
0
    yych = *++YYCURSOR;
12091
0
    if (yych <= '_') {
12092
0
      if (yych <= '@') goto yy1035;
12093
0
      if (yych <= 'Z') goto yy1044;
12094
0
      if (yych <= '^') goto yy1035;
12095
0
    } else {
12096
0
      if (yych <= '`') goto yy1035;
12097
0
      if (yych <= 'z') goto yy1044;
12098
0
      if (yych <= 0x7F) goto yy1035;
12099
0
    }
12100
0
yy1044:
12101
0
    YYDEBUG(1044, *YYCURSOR);
12102
0
    ++YYCURSOR;
12103
0
    YYDEBUG(1045, *YYCURSOR);
12104
0
    yyleng = YYCURSOR - SCNG(yy_text);
12105
0
#line 2402 "Zend/zend_language_scanner.l"
12106
0
    {
12107
0
  yyless(yyleng - 4);
12108
0
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
12109
0
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12110
0
}
12111
0
#line 12112 "Zend/zend_language_scanner.c"
12112
0
  }
12113
/* *********************************** */
12114
0
yyc_ST_HEREDOC:
12115
0
  {
12116
0
    static const unsigned char yybm[] = {
12117
0
        0,   0,   0,   0,   0,   0,   0,   0, 
12118
0
        0,   0,   0,   0,   0,   0,   0,   0, 
12119
0
        0,   0,   0,   0,   0,   0,   0,   0, 
12120
0
        0,   0,   0,   0,   0,   0,   0,   0, 
12121
0
        0,   0,   0,   0,   0,   0,   0,   0, 
12122
0
        0,   0,   0,   0,   0,   0,   0,   0, 
12123
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12124
0
      128, 128,   0,   0,   0,   0,   0,   0, 
12125
0
        0, 128, 128, 128, 128, 128, 128, 128, 
12126
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12127
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12128
0
      128, 128, 128,   0,   0,   0,   0, 128, 
12129
0
        0, 128, 128, 128, 128, 128, 128, 128, 
12130
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12131
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12132
0
      128, 128, 128,   0,   0,   0,   0,   0, 
12133
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12134
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12135
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12136
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12137
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12138
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12139
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12140
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12141
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12142
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12143
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12144
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12145
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12146
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12147
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12148
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12149
0
    };
12150
0
    YYDEBUG(1046, *YYCURSOR);
12151
0
    YYFILL(2);
12152
0
    yych = *YYCURSOR;
12153
0
    if (yych == '$') goto yy1050;
12154
0
    if (yych == '{') goto yy1051;
12155
0
    YYDEBUG(1048, *YYCURSOR);
12156
0
    ++YYCURSOR;
12157
0
yy1049:
12158
0
    YYDEBUG(1049, *YYCURSOR);
12159
0
    yyleng = YYCURSOR - SCNG(yy_text);
12160
0
#line 2964 "Zend/zend_language_scanner.l"
12161
0
    {
12162
0
  zend_heredoc_label *heredoc_label = zend_ptr_stack_top(&SCNG(heredoc_label_stack));
12163
0
  int newline = 0, indentation = 0, spacing = 0;
12164
12165
0
  if (YYCURSOR > YYLIMIT) {
12166
0
    RETURN_END_TOKEN;
12167
0
  }
12168
12169
0
  YYCURSOR--;
12170
12171
0
  while (YYCURSOR < YYLIMIT) {
12172
0
    switch (*YYCURSOR++) {
12173
0
      case '\r':
12174
0
        if (*YYCURSOR == '\n') {
12175
0
          YYCURSOR++;
12176
0
        }
12177
0
        ZEND_FALLTHROUGH;
12178
0
      case '\n':
12179
0
        indentation = spacing = 0;
12180
12181
0
        while (YYCURSOR < YYLIMIT && (*YYCURSOR == ' ' || *YYCURSOR == '\t')) {
12182
0
          if (*YYCURSOR == '\t') {
12183
0
            spacing |= HEREDOC_USING_TABS;
12184
0
          } else {
12185
0
            spacing |= HEREDOC_USING_SPACES;
12186
0
          }
12187
0
          ++YYCURSOR;
12188
0
          ++indentation;
12189
0
        }
12190
12191
0
        if (YYCURSOR == YYLIMIT) {
12192
0
          yyleng = YYCURSOR - SCNG(yy_text);
12193
0
          HANDLE_NEWLINES(yytext, yyleng);
12194
0
          ZVAL_NULL(zendlval);
12195
0
          RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
12196
0
        }
12197
12198
        /* Check for ending label on the next line */
12199
0
        if (IS_LABEL_START(*YYCURSOR) && heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, heredoc_label->label, heredoc_label->length)) {
12200
0
          if (IS_LABEL_SUCCESSOR(YYCURSOR[heredoc_label->length])) {
12201
0
            continue;
12202
0
          }
12203
12204
0
          if (spacing == (HEREDOC_USING_SPACES | HEREDOC_USING_TABS)) {
12205
0
            zend_throw_exception(zend_ce_parse_error, "Invalid indentation - tabs and spaces cannot be mixed", 0);
12206
0
            if (PARSER_MODE()) {
12207
0
              RETURN_TOKEN(T_ERROR);
12208
0
            }
12209
0
          }
12210
12211
          /* newline before label will be subtracted from returned text, but
12212
           * yyleng/yytext will include it, for zend_highlight/strip, tokenizer, etc. */
12213
0
          if (YYCURSOR[-indentation - 2] == '\r' && YYCURSOR[-indentation - 1] == '\n') {
12214
0
            newline = 2; /* Windows newline */
12215
0
          } else {
12216
0
            newline = 1;
12217
0
          }
12218
12219
0
          CG(increment_lineno) = 1; /* For newline before label */
12220
12221
0
          if (SCNG(heredoc_scan_ahead)) {
12222
0
            SCNG(heredoc_indentation) = indentation;
12223
0
            SCNG(heredoc_indentation_uses_spaces) = (spacing == HEREDOC_USING_SPACES);
12224
0
          } else {
12225
0
            YYCURSOR -= indentation;
12226
0
          }
12227
12228
0
          BEGIN(ST_END_HEREDOC);
12229
12230
0
          goto heredoc_scan_done;
12231
0
        }
12232
0
        continue;
12233
0
      case '$':
12234
0
        if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
12235
0
          break;
12236
0
        }
12237
0
        continue;
12238
0
      case '{':
12239
0
        if (*YYCURSOR == '$') {
12240
0
          break;
12241
0
        }
12242
0
        continue;
12243
0
      case '\\':
12244
0
        if (YYCURSOR < YYLIMIT && *YYCURSOR != '\n' && *YYCURSOR != '\r') {
12245
0
          YYCURSOR++;
12246
0
        }
12247
0
        ZEND_FALLTHROUGH;
12248
0
      default:
12249
0
        continue;
12250
0
    }
12251
12252
0
    YYCURSOR--;
12253
0
    break;
12254
0
  }
12255
12256
0
heredoc_scan_done:
12257
12258
0
  yyleng = YYCURSOR - SCNG(yy_text);
12259
0
  ZVAL_STRINGL(zendlval, yytext, yyleng - newline);
12260
12261
0
  if (!SCNG(heredoc_scan_ahead) && !EG(exception) && PARSER_MODE()) {
12262
0
    bool newline_at_start = *(yytext - 1) == '\n' || *(yytext - 1) == '\r';
12263
0
    zend_string *copy = Z_STR_P(zendlval);
12264
12265
0
    if (!strip_multiline_string_indentation(
12266
0
        zendlval, heredoc_label->indentation, heredoc_label->indentation_uses_spaces,
12267
0
        newline_at_start, newline != 0)) {
12268
0
      RETURN_TOKEN(T_ERROR);
12269
0
    }
12270
12271
0
    if (UNEXPECTED(zend_scan_escape_string(zendlval, ZSTR_VAL(copy), ZSTR_LEN(copy), 0) != SUCCESS)) {
12272
0
      zend_string_efree(copy);
12273
0
      RETURN_TOKEN(T_ERROR);
12274
0
    }
12275
12276
0
    zend_string_efree(copy);
12277
0
  } else {
12278
0
    HANDLE_NEWLINES(yytext, yyleng - newline);
12279
0
  }
12280
12281
0
  RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
12282
0
}
12283
0
#line 12284 "Zend/zend_language_scanner.c"
12284
0
yy1050:
12285
0
    YYDEBUG(1050, *YYCURSOR);
12286
0
    yych = *++YYCURSOR;
12287
0
    if (yych <= '_') {
12288
0
      if (yych <= '@') goto yy1049;
12289
0
      if (yych <= 'Z') goto yy1052;
12290
0
      if (yych <= '^') goto yy1049;
12291
0
      goto yy1052;
12292
0
    } else {
12293
0
      if (yych <= 'z') {
12294
0
        if (yych <= '`') goto yy1049;
12295
0
        goto yy1052;
12296
0
      } else {
12297
0
        if (yych <= '{') goto yy1055;
12298
0
        if (yych <= 0x7F) goto yy1049;
12299
0
        goto yy1052;
12300
0
      }
12301
0
    }
12302
0
yy1051:
12303
0
    YYDEBUG(1051, *YYCURSOR);
12304
0
    yych = *++YYCURSOR;
12305
0
    if (yych == '$') goto yy1057;
12306
0
    goto yy1049;
12307
0
yy1052:
12308
0
    YYDEBUG(1052, *YYCURSOR);
12309
0
    YYMARKER = ++YYCURSOR;
12310
0
    YYFILL(4);
12311
0
    yych = *YYCURSOR;
12312
0
    YYDEBUG(1053, *YYCURSOR);
12313
0
    if (yybm[0+yych] & 128) {
12314
0
      goto yy1052;
12315
0
    }
12316
0
    if (yych <= '>') {
12317
0
      if (yych == '-') goto yy1059;
12318
0
    } else {
12319
0
      if (yych <= '?') goto yy1061;
12320
0
      if (yych <= '@') goto yy1054;
12321
0
      if (yych <= '[') goto yy1062;
12322
0
    }
12323
0
yy1054:
12324
0
    YYDEBUG(1054, *YYCURSOR);
12325
0
    yyleng = YYCURSOR - SCNG(yy_text);
12326
0
#line 2416 "Zend/zend_language_scanner.l"
12327
0
    {
12328
0
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12329
0
}
12330
0
#line 12331 "Zend/zend_language_scanner.c"
12331
0
yy1055:
12332
0
    YYDEBUG(1055, *YYCURSOR);
12333
0
    ++YYCURSOR;
12334
0
    YYDEBUG(1056, *YYCURSOR);
12335
0
    yyleng = YYCURSOR - SCNG(yy_text);
12336
0
#line 1980 "Zend/zend_language_scanner.l"
12337
0
    {
12338
0
  yy_push_state(ST_LOOKING_FOR_VARNAME);
12339
0
  enter_nesting('{');
12340
0
  RETURN_TOKEN(T_DOLLAR_OPEN_CURLY_BRACES);
12341
0
}
12342
0
#line 12343 "Zend/zend_language_scanner.c"
12343
0
yy1057:
12344
0
    YYDEBUG(1057, *YYCURSOR);
12345
0
    ++YYCURSOR;
12346
0
    YYDEBUG(1058, *YYCURSOR);
12347
0
    yyleng = YYCURSOR - SCNG(yy_text);
12348
0
#line 2845 "Zend/zend_language_scanner.l"
12349
0
    {
12350
0
  yy_push_state(ST_IN_SCRIPTING);
12351
0
  yyless(1);
12352
0
  enter_nesting('{');
12353
0
  RETURN_TOKEN(T_CURLY_OPEN);
12354
0
}
12355
0
#line 12356 "Zend/zend_language_scanner.c"
12356
0
yy1059:
12357
0
    YYDEBUG(1059, *YYCURSOR);
12358
0
    yych = *++YYCURSOR;
12359
0
    if (yych == '>') goto yy1064;
12360
0
yy1060:
12361
0
    YYDEBUG(1060, *YYCURSOR);
12362
0
    YYCURSOR = YYMARKER;
12363
0
    goto yy1054;
12364
0
yy1061:
12365
0
    YYDEBUG(1061, *YYCURSOR);
12366
0
    yych = *++YYCURSOR;
12367
0
    if (yych == '-') goto yy1065;
12368
0
    goto yy1060;
12369
0
yy1062:
12370
0
    YYDEBUG(1062, *YYCURSOR);
12371
0
    ++YYCURSOR;
12372
0
    YYDEBUG(1063, *YYCURSOR);
12373
0
    yyleng = YYCURSOR - SCNG(yy_text);
12374
0
#line 2410 "Zend/zend_language_scanner.l"
12375
0
    {
12376
0
  yyless(yyleng - 1);
12377
0
  yy_push_state(ST_VAR_OFFSET);
12378
0
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12379
0
}
12380
0
#line 12381 "Zend/zend_language_scanner.c"
12381
0
yy1064:
12382
0
    YYDEBUG(1064, *YYCURSOR);
12383
0
    yych = *++YYCURSOR;
12384
0
    if (yych <= '_') {
12385
0
      if (yych <= '@') goto yy1060;
12386
0
      if (yych <= 'Z') goto yy1066;
12387
0
      if (yych <= '^') goto yy1060;
12388
0
      goto yy1066;
12389
0
    } else {
12390
0
      if (yych <= '`') goto yy1060;
12391
0
      if (yych <= 'z') goto yy1066;
12392
0
      if (yych <= 0x7F) goto yy1060;
12393
0
      goto yy1066;
12394
0
    }
12395
0
yy1065:
12396
0
    YYDEBUG(1065, *YYCURSOR);
12397
0
    yych = *++YYCURSOR;
12398
0
    if (yych == '>') goto yy1068;
12399
0
    goto yy1060;
12400
0
yy1066:
12401
0
    YYDEBUG(1066, *YYCURSOR);
12402
0
    ++YYCURSOR;
12403
0
    YYDEBUG(1067, *YYCURSOR);
12404
0
    yyleng = YYCURSOR - SCNG(yy_text);
12405
0
#line 2396 "Zend/zend_language_scanner.l"
12406
0
    {
12407
0
  yyless(yyleng - 3);
12408
0
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
12409
0
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12410
0
}
12411
0
#line 12412 "Zend/zend_language_scanner.c"
12412
0
yy1068:
12413
0
    YYDEBUG(1068, *YYCURSOR);
12414
0
    yych = *++YYCURSOR;
12415
0
    if (yych <= '_') {
12416
0
      if (yych <= '@') goto yy1060;
12417
0
      if (yych <= 'Z') goto yy1069;
12418
0
      if (yych <= '^') goto yy1060;
12419
0
    } else {
12420
0
      if (yych <= '`') goto yy1060;
12421
0
      if (yych <= 'z') goto yy1069;
12422
0
      if (yych <= 0x7F) goto yy1060;
12423
0
    }
12424
0
yy1069:
12425
0
    YYDEBUG(1069, *YYCURSOR);
12426
0
    ++YYCURSOR;
12427
0
    YYDEBUG(1070, *YYCURSOR);
12428
0
    yyleng = YYCURSOR - SCNG(yy_text);
12429
0
#line 2402 "Zend/zend_language_scanner.l"
12430
0
    {
12431
0
  yyless(yyleng - 4);
12432
0
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
12433
0
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12434
0
}
12435
0
#line 12436 "Zend/zend_language_scanner.c"
12436
0
  }
12437
/* *********************************** */
12438
0
yyc_ST_LOOKING_FOR_VARNAME:
12439
0
  {
12440
0
    static const unsigned char yybm[] = {
12441
0
        0,   0,   0,   0,   0,   0,   0,   0, 
12442
0
        0,   0,   0,   0,   0,   0,   0,   0, 
12443
0
        0,   0,   0,   0,   0,   0,   0,   0, 
12444
0
        0,   0,   0,   0,   0,   0,   0,   0, 
12445
0
        0,   0,   0,   0,   0,   0,   0,   0, 
12446
0
        0,   0,   0,   0,   0,   0,   0,   0, 
12447
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12448
0
      128, 128,   0,   0,   0,   0,   0,   0, 
12449
0
        0, 128, 128, 128, 128, 128, 128, 128, 
12450
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12451
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12452
0
      128, 128, 128,   0,   0,   0,   0, 128, 
12453
0
        0, 128, 128, 128, 128, 128, 128, 128, 
12454
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12455
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12456
0
      128, 128, 128,   0,   0,   0,   0,   0, 
12457
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12458
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12459
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12460
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12461
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12462
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12463
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12464
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12465
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12466
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12467
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12468
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12469
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12470
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12471
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12472
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12473
0
    };
12474
0
    YYDEBUG(1071, *YYCURSOR);
12475
0
    YYFILL(2);
12476
0
    yych = *YYCURSOR;
12477
0
    if (yych <= '_') {
12478
0
      if (yych <= '@') goto yy1073;
12479
0
      if (yych <= 'Z') goto yy1075;
12480
0
      if (yych >= '_') goto yy1075;
12481
0
    } else {
12482
0
      if (yych <= '`') goto yy1073;
12483
0
      if (yych <= 'z') goto yy1075;
12484
0
      if (yych >= 0x80) goto yy1075;
12485
0
    }
12486
0
yy1073:
12487
0
    YYDEBUG(1073, *YYCURSOR);
12488
0
    ++YYCURSOR;
12489
0
yy1074:
12490
0
    YYDEBUG(1074, *YYCURSOR);
12491
0
    yyleng = YYCURSOR - SCNG(yy_text);
12492
0
#line 2003 "Zend/zend_language_scanner.l"
12493
0
    {
12494
0
  yyless(0);
12495
0
  yy_pop_state();
12496
0
  yy_push_state(ST_IN_SCRIPTING);
12497
0
  goto restart;
12498
0
}
12499
0
#line 12500 "Zend/zend_language_scanner.c"
12500
0
yy1075:
12501
0
    YYDEBUG(1075, *YYCURSOR);
12502
0
    yych = *(YYMARKER = ++YYCURSOR);
12503
0
    if (yych <= '_') {
12504
0
      if (yych <= '@') {
12505
0
        if (yych <= '/') goto yy1074;
12506
0
        if (yych <= '9') goto yy1077;
12507
0
        goto yy1074;
12508
0
      } else {
12509
0
        if (yych <= '[') goto yy1077;
12510
0
        if (yych <= '^') goto yy1074;
12511
0
        goto yy1077;
12512
0
      }
12513
0
    } else {
12514
0
      if (yych <= '|') {
12515
0
        if (yych <= '`') goto yy1074;
12516
0
        if (yych <= 'z') goto yy1077;
12517
0
        goto yy1074;
12518
0
      } else {
12519
0
        if (yych <= '}') goto yy1077;
12520
0
        if (yych <= 0x7F) goto yy1074;
12521
0
        goto yy1077;
12522
0
      }
12523
0
    }
12524
0
yy1076:
12525
0
    YYDEBUG(1076, *YYCURSOR);
12526
0
    ++YYCURSOR;
12527
0
    YYFILL(1);
12528
0
    yych = *YYCURSOR;
12529
0
yy1077:
12530
0
    YYDEBUG(1077, *YYCURSOR);
12531
0
    if (yybm[0+yych] & 128) {
12532
0
      goto yy1076;
12533
0
    }
12534
0
    if (yych <= '@') goto yy1078;
12535
0
    if (yych <= '[') goto yy1079;
12536
0
    if (yych == '}') goto yy1079;
12537
0
yy1078:
12538
0
    YYDEBUG(1078, *YYCURSOR);
12539
0
    YYCURSOR = YYMARKER;
12540
0
    goto yy1074;
12541
0
yy1079:
12542
0
    YYDEBUG(1079, *YYCURSOR);
12543
0
    ++YYCURSOR;
12544
0
    YYDEBUG(1080, *YYCURSOR);
12545
0
    yyleng = YYCURSOR - SCNG(yy_text);
12546
0
#line 1995 "Zend/zend_language_scanner.l"
12547
0
    {
12548
0
  yyless(yyleng - 1);
12549
0
  yy_pop_state();
12550
0
  yy_push_state(ST_IN_SCRIPTING);
12551
0
  RETURN_TOKEN_WITH_STR(T_STRING_VARNAME, 0);
12552
0
}
12553
0
#line 12554 "Zend/zend_language_scanner.c"
12554
0
  }
12555
/* *********************************** */
12556
0
yyc_ST_VAR_OFFSET:
12557
0
  {
12558
0
    static const unsigned char yybm[] = {
12559
0
        0,   0,   0,   0,   0,   0,   0,   0, 
12560
0
        0,   0,   0,   0,   0,   0,   0,   0, 
12561
0
        0,   0,   0,   0,   0,   0,   0,   0, 
12562
0
        0,   0,   0,   0,   0,   0,   0,   0, 
12563
0
        0,   0,   0,   0,   0,   0,   0,   0, 
12564
0
        0,   0,   0,   0,   0,   0,   0,   0, 
12565
0
      248, 248, 216, 216, 216, 216, 216, 216, 
12566
0
      152, 152,   0,   0,   0,   0,   0,   0, 
12567
0
        0, 144, 144, 144, 144, 144, 144,  16, 
12568
0
       16,  16,  16,  16,  16,  16,  16,  16, 
12569
0
       16,  16,  16,  16,  16,  16,  16,  16, 
12570
0
       16,  16,  16,   0,   0,   0,   0,  16, 
12571
0
        0, 144, 144, 144, 144, 144, 144,  16, 
12572
0
       16,  16,  16,  16,  16,  16,  16,  16, 
12573
0
       16,  16,  16,  16,  16,  16,  16,  16, 
12574
0
       16,  16,  16,   0,   0,   0,   0,   0, 
12575
0
       16,  16,  16,  16,  16,  16,  16,  16, 
12576
0
       16,  16,  16,  16,  16,  16,  16,  16, 
12577
0
       16,  16,  16,  16,  16,  16,  16,  16, 
12578
0
       16,  16,  16,  16,  16,  16,  16,  16, 
12579
0
       16,  16,  16,  16,  16,  16,  16,  16, 
12580
0
       16,  16,  16,  16,  16,  16,  16,  16, 
12581
0
       16,  16,  16,  16,  16,  16,  16,  16, 
12582
0
       16,  16,  16,  16,  16,  16,  16,  16, 
12583
0
       16,  16,  16,  16,  16,  16,  16,  16, 
12584
0
       16,  16,  16,  16,  16,  16,  16,  16, 
12585
0
       16,  16,  16,  16,  16,  16,  16,  16, 
12586
0
       16,  16,  16,  16,  16,  16,  16,  16, 
12587
0
       16,  16,  16,  16,  16,  16,  16,  16, 
12588
0
       16,  16,  16,  16,  16,  16,  16,  16, 
12589
0
       16,  16,  16,  16,  16,  16,  16,  16, 
12590
0
       16,  16,  16,  16,  16,  16,  16,  16, 
12591
0
    };
12592
0
    YYDEBUG(1081, *YYCURSOR);
12593
0
    YYFILL(2);
12594
0
    yych = *YYCURSOR;
12595
0
    if (yych <= '0') {
12596
0
      if (yych <= ' ') {
12597
0
        if (yych <= '\f') {
12598
0
          if (yych <= 0x08) goto yy1083;
12599
0
          if (yych <= '\n') goto yy1085;
12600
0
        } else {
12601
0
          if (yych <= '\r') goto yy1085;
12602
0
          if (yych >= ' ') goto yy1085;
12603
0
        }
12604
0
      } else {
12605
0
        if (yych <= '$') {
12606
0
          if (yych <= '"') goto yy1087;
12607
0
          if (yych <= '#') goto yy1085;
12608
0
          goto yy1089;
12609
0
        } else {
12610
0
          if (yych == '\'') goto yy1085;
12611
0
          if (yych <= '/') goto yy1087;
12612
0
          goto yy1090;
12613
0
        }
12614
0
      }
12615
0
    } else {
12616
0
      if (yych <= ']') {
12617
0
        if (yych <= 'Z') {
12618
0
          if (yych <= '9') goto yy1092;
12619
0
          if (yych <= '@') goto yy1087;
12620
0
          goto yy1094;
12621
0
        } else {
12622
0
          if (yych <= '[') goto yy1087;
12623
0
          if (yych <= '\\') goto yy1085;
12624
0
          goto yy1097;
12625
0
        }
12626
0
      } else {
12627
0
        if (yych <= '`') {
12628
0
          if (yych == '_') goto yy1094;
12629
0
          goto yy1087;
12630
0
        } else {
12631
0
          if (yych <= 'z') goto yy1094;
12632
0
          if (yych <= '~') goto yy1087;
12633
0
          if (yych >= 0x80) goto yy1094;
12634
0
        }
12635
0
      }
12636
0
    }
12637
0
yy1083:
12638
0
    YYDEBUG(1083, *YYCURSOR);
12639
0
    ++YYCURSOR;
12640
0
    YYDEBUG(1084, *YYCURSOR);
12641
0
    yyleng = YYCURSOR - SCNG(yy_text);
12642
0
#line 3179 "Zend/zend_language_scanner.l"
12643
0
    {
12644
0
  if (YYCURSOR > YYLIMIT) {
12645
0
    RETURN_END_TOKEN;
12646
0
  }
12647
12648
0
  RETURN_TOKEN(T_BAD_CHARACTER);
12649
0
}
12650
0
#line 12651 "Zend/zend_language_scanner.c"
12651
0
yy1085:
12652
0
    YYDEBUG(1085, *YYCURSOR);
12653
0
    ++YYCURSOR;
12654
0
    YYDEBUG(1086, *YYCURSOR);
12655
0
    yyleng = YYCURSOR - SCNG(yy_text);
12656
0
#line 2430 "Zend/zend_language_scanner.l"
12657
0
    {
12658
  /* Invalid rule to return a more explicit parse error with proper line number */
12659
0
  yyless(0);
12660
0
  yy_pop_state();
12661
0
  ZVAL_NULL(zendlval);
12662
0
  RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
12663
0
}
12664
0
#line 12665 "Zend/zend_language_scanner.c"
12665
0
yy1087:
12666
0
    YYDEBUG(1087, *YYCURSOR);
12667
0
    ++YYCURSOR;
12668
0
yy1088:
12669
0
    YYDEBUG(1088, *YYCURSOR);
12670
0
    yyleng = YYCURSOR - SCNG(yy_text);
12671
0
#line 2425 "Zend/zend_language_scanner.l"
12672
0
    {
12673
  /* Only '[' or '-' can be valid, but returning other tokens will allow a more explicit parse error */
12674
0
  RETURN_TOKEN(yytext[0]);
12675
0
}
12676
0
#line 12677 "Zend/zend_language_scanner.c"
12677
0
yy1089:
12678
0
    YYDEBUG(1089, *YYCURSOR);
12679
0
    yych = *++YYCURSOR;
12680
0
    if (yych <= '_') {
12681
0
      if (yych <= '@') goto yy1088;
12682
0
      if (yych <= 'Z') goto yy1099;
12683
0
      if (yych <= '^') goto yy1088;
12684
0
      goto yy1099;
12685
0
    } else {
12686
0
      if (yych <= '`') goto yy1088;
12687
0
      if (yych <= 'z') goto yy1099;
12688
0
      if (yych <= 0x7F) goto yy1088;
12689
0
      goto yy1099;
12690
0
    }
12691
0
yy1090:
12692
0
    YYDEBUG(1090, *YYCURSOR);
12693
0
    yyaccept = 0;
12694
0
    yych = *(YYMARKER = ++YYCURSOR);
12695
0
    if (yych <= 'X') {
12696
0
      if (yych <= 'B') {
12697
0
        if (yych <= '/') goto yy1091;
12698
0
        if (yych <= '9') goto yy1102;
12699
0
        if (yych >= 'B') goto yy1105;
12700
0
      } else {
12701
0
        if (yych == 'O') goto yy1107;
12702
0
        if (yych >= 'X') goto yy1108;
12703
0
      }
12704
0
    } else {
12705
0
      if (yych <= 'b') {
12706
0
        if (yych == '_') goto yy1109;
12707
0
        if (yych >= 'b') goto yy1105;
12708
0
      } else {
12709
0
        if (yych <= 'o') {
12710
0
          if (yych >= 'o') goto yy1107;
12711
0
        } else {
12712
0
          if (yych == 'x') goto yy1108;
12713
0
        }
12714
0
      }
12715
0
    }
12716
0
yy1091:
12717
0
    YYDEBUG(1091, *YYCURSOR);
12718
0
    yyleng = YYCURSOR - SCNG(yy_text);
12719
0
#line 2207 "Zend/zend_language_scanner.l"
12720
0
    { /* Offset could be treated as a long */
12721
0
  if (yyleng < MAX_LENGTH_OF_LONG - 1 || (yyleng == MAX_LENGTH_OF_LONG - 1 && strcmp(yytext, long_min_digits) < 0)) {
12722
0
    char *end;
12723
0
    errno = 0;
12724
0
    ZVAL_LONG(zendlval, ZEND_STRTOL(yytext, &end, 10));
12725
0
    if (errno == ERANGE) {
12726
0
      goto string;
12727
0
    }
12728
0
    ZEND_ASSERT(end == yytext + yyleng);
12729
0
  } else {
12730
0
string:
12731
0
    ZVAL_STRINGL(zendlval, yytext, yyleng);
12732
0
  }
12733
0
  RETURN_TOKEN_WITH_VAL(T_NUM_STRING);
12734
0
}
12735
0
#line 12736 "Zend/zend_language_scanner.c"
12736
0
yy1092:
12737
0
    YYDEBUG(1092, *YYCURSOR);
12738
0
    yyaccept = 0;
12739
0
    YYMARKER = ++YYCURSOR;
12740
0
    YYFILL(1);
12741
0
    yych = *YYCURSOR;
12742
0
    YYDEBUG(1093, *YYCURSOR);
12743
0
    if (yybm[0+yych] & 8) {
12744
0
      goto yy1092;
12745
0
    }
12746
0
    if (yych == '_') goto yy1109;
12747
0
    goto yy1091;
12748
0
yy1094:
12749
0
    YYDEBUG(1094, *YYCURSOR);
12750
0
    ++YYCURSOR;
12751
0
    YYFILL(1);
12752
0
    yych = *YYCURSOR;
12753
0
    YYDEBUG(1095, *YYCURSOR);
12754
0
    if (yybm[0+yych] & 16) {
12755
0
      goto yy1094;
12756
0
    }
12757
0
    YYDEBUG(1096, *YYCURSOR);
12758
0
    yyleng = YYCURSOR - SCNG(yy_text);
12759
0
#line 2454 "Zend/zend_language_scanner.l"
12760
0
    {
12761
0
  RETURN_TOKEN_WITH_STR(T_STRING, 0);
12762
0
}
12763
0
#line 12764 "Zend/zend_language_scanner.c"
12764
0
yy1097:
12765
0
    YYDEBUG(1097, *YYCURSOR);
12766
0
    ++YYCURSOR;
12767
0
    YYDEBUG(1098, *YYCURSOR);
12768
0
    yyleng = YYCURSOR - SCNG(yy_text);
12769
0
#line 2420 "Zend/zend_language_scanner.l"
12770
0
    {
12771
0
  yy_pop_state();
12772
0
  RETURN_TOKEN(']');
12773
0
}
12774
0
#line 12775 "Zend/zend_language_scanner.c"
12775
0
yy1099:
12776
0
    YYDEBUG(1099, *YYCURSOR);
12777
0
    ++YYCURSOR;
12778
0
    YYFILL(1);
12779
0
    yych = *YYCURSOR;
12780
0
    YYDEBUG(1100, *YYCURSOR);
12781
0
    if (yych <= '^') {
12782
0
      if (yych <= '9') {
12783
0
        if (yych >= '0') goto yy1099;
12784
0
      } else {
12785
0
        if (yych <= '@') goto yy1101;
12786
0
        if (yych <= 'Z') goto yy1099;
12787
0
      }
12788
0
    } else {
12789
0
      if (yych <= '`') {
12790
0
        if (yych <= '_') goto yy1099;
12791
0
      } else {
12792
0
        if (yych <= 'z') goto yy1099;
12793
0
        if (yych >= 0x80) goto yy1099;
12794
0
      }
12795
0
    }
12796
0
yy1101:
12797
0
    YYDEBUG(1101, *YYCURSOR);
12798
0
    yyleng = YYCURSOR - SCNG(yy_text);
12799
0
#line 2416 "Zend/zend_language_scanner.l"
12800
0
    {
12801
0
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
12802
0
}
12803
0
#line 12804 "Zend/zend_language_scanner.c"
12804
0
yy1102:
12805
0
    YYDEBUG(1102, *YYCURSOR);
12806
0
    yyaccept = 1;
12807
0
    YYMARKER = ++YYCURSOR;
12808
0
    YYFILL(1);
12809
0
    yych = *YYCURSOR;
12810
0
    YYDEBUG(1103, *YYCURSOR);
12811
0
    if (yych <= '/') goto yy1104;
12812
0
    if (yych <= '9') goto yy1102;
12813
0
    if (yych == '_') goto yy1109;
12814
0
yy1104:
12815
0
    YYDEBUG(1104, *YYCURSOR);
12816
0
    yyleng = YYCURSOR - SCNG(yy_text);
12817
0
#line 2223 "Zend/zend_language_scanner.l"
12818
0
    { /* Offset must be treated as a string */
12819
0
  if (yyleng == 1) {
12820
0
    ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR((zend_uchar)*(yytext)));
12821
0
  } else {
12822
0
    ZVAL_STRINGL(zendlval, yytext, yyleng);
12823
0
  }
12824
0
  RETURN_TOKEN_WITH_VAL(T_NUM_STRING);
12825
0
}
12826
0
#line 12827 "Zend/zend_language_scanner.c"
12827
0
yy1105:
12828
0
    YYDEBUG(1105, *YYCURSOR);
12829
0
    ++YYCURSOR;
12830
0
    YYFILL(1);
12831
0
    yych = *YYCURSOR;
12832
0
    if (yybm[0+yych] & 32) {
12833
0
      goto yy1110;
12834
0
    }
12835
0
yy1106:
12836
0
    YYDEBUG(1106, *YYCURSOR);
12837
0
    YYCURSOR = YYMARKER;
12838
0
    if (yyaccept == 0) {
12839
0
      goto yy1091;
12840
0
    } else {
12841
0
      goto yy1104;
12842
0
    }
12843
0
yy1107:
12844
0
    YYDEBUG(1107, *YYCURSOR);
12845
0
    ++YYCURSOR;
12846
0
    YYFILL(1);
12847
0
    yych = *YYCURSOR;
12848
0
    if (yybm[0+yych] & 64) {
12849
0
      goto yy1112;
12850
0
    }
12851
0
    goto yy1106;
12852
0
yy1108:
12853
0
    YYDEBUG(1108, *YYCURSOR);
12854
0
    ++YYCURSOR;
12855
0
    YYFILL(1);
12856
0
    yych = *YYCURSOR;
12857
0
    if (yybm[0+yych] & 128) {
12858
0
      goto yy1114;
12859
0
    }
12860
0
    goto yy1106;
12861
0
yy1109:
12862
0
    YYDEBUG(1109, *YYCURSOR);
12863
0
    ++YYCURSOR;
12864
0
    YYFILL(1);
12865
0
    yych = *YYCURSOR;
12866
0
    if (yych <= '/') goto yy1106;
12867
0
    if (yych <= '9') goto yy1102;
12868
0
    goto yy1106;
12869
0
yy1110:
12870
0
    YYDEBUG(1110, *YYCURSOR);
12871
0
    yyaccept = 1;
12872
0
    YYMARKER = ++YYCURSOR;
12873
0
    YYFILL(1);
12874
0
    yych = *YYCURSOR;
12875
0
    YYDEBUG(1111, *YYCURSOR);
12876
0
    if (yybm[0+yych] & 32) {
12877
0
      goto yy1110;
12878
0
    }
12879
0
    if (yych == '_') goto yy1105;
12880
0
    goto yy1104;
12881
0
yy1112:
12882
0
    YYDEBUG(1112, *YYCURSOR);
12883
0
    yyaccept = 1;
12884
0
    YYMARKER = ++YYCURSOR;
12885
0
    YYFILL(1);
12886
0
    yych = *YYCURSOR;
12887
0
    YYDEBUG(1113, *YYCURSOR);
12888
0
    if (yybm[0+yych] & 64) {
12889
0
      goto yy1112;
12890
0
    }
12891
0
    if (yych == '_') goto yy1107;
12892
0
    goto yy1104;
12893
0
yy1114:
12894
0
    YYDEBUG(1114, *YYCURSOR);
12895
0
    yyaccept = 1;
12896
0
    YYMARKER = ++YYCURSOR;
12897
0
    YYFILL(1);
12898
0
    yych = *YYCURSOR;
12899
0
    YYDEBUG(1115, *YYCURSOR);
12900
0
    if (yybm[0+yych] & 128) {
12901
0
      goto yy1114;
12902
0
    }
12903
0
    if (yych == '_') goto yy1108;
12904
0
    goto yy1104;
12905
0
  }
12906
/* *********************************** */
12907
0
yyc_SHEBANG:
12908
0
  {
12909
0
    static const unsigned char yybm[] = {
12910
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12911
0
      128, 128,   0, 128, 128, 128, 128, 128, 
12912
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12913
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12914
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12915
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12916
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12917
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12918
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12919
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12920
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12921
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12922
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12923
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12924
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12925
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12926
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12927
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12928
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12929
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12930
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12931
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12932
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12933
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12934
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12935
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12936
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12937
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12938
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12939
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12940
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12941
0
      128, 128, 128, 128, 128, 128, 128, 128, 
12942
0
    };
12943
0
    YYDEBUG(1116, *YYCURSOR);
12944
0
    YYFILL(2);
12945
0
    yych = *YYCURSOR;
12946
0
    if (yych == '#') goto yy1120;
12947
0
    YYDEBUG(1118, *YYCURSOR);
12948
0
    ++YYCURSOR;
12949
0
yy1119:
12950
0
    YYDEBUG(1119, *YYCURSOR);
12951
0
    yyleng = YYCURSOR - SCNG(yy_text);
12952
0
#line 2294 "Zend/zend_language_scanner.l"
12953
0
    {
12954
0
  yyless(0);
12955
0
  BEGIN(INITIAL);
12956
0
  goto restart;
12957
0
}
12958
0
#line 12959 "Zend/zend_language_scanner.c"
12959
0
yy1120:
12960
0
    YYDEBUG(1120, *YYCURSOR);
12961
0
    yych = *++YYCURSOR;
12962
0
    if (yych != '!') goto yy1119;
12963
0
yy1121:
12964
0
    YYDEBUG(1121, *YYCURSOR);
12965
0
    ++YYCURSOR;
12966
0
    YYFILL(1);
12967
0
    yych = *YYCURSOR;
12968
0
    YYDEBUG(1122, *YYCURSOR);
12969
0
    if (yybm[0+yych] & 128) {
12970
0
      goto yy1121;
12971
0
    }
12972
0
    YYDEBUG(1123, *YYCURSOR);
12973
0
    ++YYCURSOR;
12974
0
    YYDEBUG(1124, *YYCURSOR);
12975
0
    yyleng = YYCURSOR - SCNG(yy_text);
12976
0
#line 2288 "Zend/zend_language_scanner.l"
12977
0
    {
12978
0
  CG(zend_lineno)++;
12979
0
  BEGIN(INITIAL);
12980
0
  goto restart;
12981
0
}
12982
0
#line 12983 "Zend/zend_language_scanner.c"
12983
0
  }
12984
/* *********************************** */
12985
0
yyc_INITIAL:
12986
0
  YYDEBUG(1125, *YYCURSOR);
12987
0
  YYFILL(7);
12988
0
  yych = *YYCURSOR;
12989
0
  if (yych == '<') goto yy1129;
12990
0
  YYDEBUG(1127, *YYCURSOR);
12991
0
  ++YYCURSOR;
12992
0
yy1128:
12993
0
  YYDEBUG(1128, *YYCURSOR);
12994
0
  yyleng = YYCURSOR - SCNG(yy_text);
12995
0
#line 2340 "Zend/zend_language_scanner.l"
12996
0
  {
12997
0
  if (YYCURSOR > YYLIMIT) {
12998
0
    RETURN_END_TOKEN;
12999
0
  }
13000
13001
0
inline_char_handler:
13002
13003
0
  while (1) {
13004
0
    YYCTYPE *ptr = memchr(YYCURSOR, '<', YYLIMIT - YYCURSOR);
13005
13006
0
    YYCURSOR = ptr ? ptr + 1 : YYLIMIT;
13007
13008
0
    if (YYCURSOR >= YYLIMIT) {
13009
0
      break;
13010
0
    }
13011
13012
0
    if (*YYCURSOR == '?') {
13013
0
      if (CG(short_tags) /* <? */
13014
0
        || (*(YYCURSOR + 1) == '=') /* <?= */
13015
0
        || (!strncasecmp((char*)YYCURSOR + 1, "php", 3) && /* <?php[ \t\r\n] */
13016
0
          (YYCURSOR + 4 == YYLIMIT ||
13017
0
          YYCURSOR[4] == ' ' || YYCURSOR[4] == '\t' ||
13018
0
          YYCURSOR[4] == '\n' || YYCURSOR[4] == '\r'))
13019
0
      ) {
13020
0
        YYCURSOR--;
13021
0
        break;
13022
0
      }
13023
0
    }
13024
0
  }
13025
13026
0
  yyleng = YYCURSOR - SCNG(yy_text);
13027
13028
0
  if (SCNG(output_filter)) {
13029
0
    size_t readsize;
13030
0
    char *s = NULL;
13031
0
    size_t sz = 0;
13032
    // TODO: avoid reallocation ???
13033
0
    readsize = SCNG(output_filter)((unsigned char **)&s, &sz, (unsigned char *)yytext, (size_t)yyleng);
13034
0
    ZVAL_STRINGL(zendlval, s, sz);
13035
0
    efree(s);
13036
0
    if (readsize < yyleng) {
13037
0
      yyless(readsize);
13038
0
    }
13039
0
  } else if (yyleng == 1) {
13040
0
    ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR((zend_uchar)*yytext));
13041
0
  } else {
13042
0
    ZVAL_STRINGL(zendlval, yytext, yyleng);
13043
0
  }
13044
0
  HANDLE_NEWLINES(yytext, yyleng);
13045
0
  RETURN_TOKEN_WITH_VAL(T_INLINE_HTML);
13046
0
}
13047
0
#line 13048 "Zend/zend_language_scanner.c"
13048
0
yy1129:
13049
0
  YYDEBUG(1129, *YYCURSOR);
13050
0
  yych = *++YYCURSOR;
13051
0
  if (yych != '?') goto yy1128;
13052
0
  YYDEBUG(1130, *YYCURSOR);
13053
0
  yych = *(YYMARKER = ++YYCURSOR);
13054
0
  if (yych <= 'O') {
13055
0
    if (yych == '=') goto yy1132;
13056
0
  } else {
13057
0
    if (yych <= 'P') goto yy1134;
13058
0
    if (yych == 'p') goto yy1134;
13059
0
  }
13060
0
yy1131:
13061
0
  YYDEBUG(1131, *YYCURSOR);
13062
0
  yyleng = YYCURSOR - SCNG(yy_text);
13063
0
#line 2331 "Zend/zend_language_scanner.l"
13064
0
  {
13065
0
  if (CG(short_tags)) {
13066
0
    BEGIN(ST_IN_SCRIPTING);
13067
0
    RETURN_OR_SKIP_TOKEN(T_OPEN_TAG);
13068
0
  } else {
13069
0
    goto inline_char_handler;
13070
0
  }
13071
0
}
13072
0
#line 13073 "Zend/zend_language_scanner.c"
13073
0
yy1132:
13074
0
  YYDEBUG(1132, *YYCURSOR);
13075
0
  ++YYCURSOR;
13076
0
  YYDEBUG(1133, *YYCURSOR);
13077
0
  yyleng = YYCURSOR - SCNG(yy_text);
13078
0
#line 2300 "Zend/zend_language_scanner.l"
13079
0
  {
13080
0
  BEGIN(ST_IN_SCRIPTING);
13081
0
  if (PARSER_MODE()) {
13082
    /* We'll reject this as an identifier in zend_lex_tstring. */
13083
0
    RETURN_TOKEN_WITH_IDENT(T_ECHO);
13084
0
  }
13085
0
  RETURN_TOKEN(T_OPEN_TAG_WITH_ECHO);
13086
0
}
13087
0
#line 13088 "Zend/zend_language_scanner.c"
13088
0
yy1134:
13089
0
  YYDEBUG(1134, *YYCURSOR);
13090
0
  yych = *++YYCURSOR;
13091
0
  if (yych == 'H') goto yy1136;
13092
0
  if (yych == 'h') goto yy1136;
13093
0
yy1135:
13094
0
  YYDEBUG(1135, *YYCURSOR);
13095
0
  YYCURSOR = YYMARKER;
13096
0
  goto yy1131;
13097
0
yy1136:
13098
0
  YYDEBUG(1136, *YYCURSOR);
13099
0
  yych = *++YYCURSOR;
13100
0
  if (yych == 'P') goto yy1137;
13101
0
  if (yych != 'p') goto yy1135;
13102
0
yy1137:
13103
0
  YYDEBUG(1137, *YYCURSOR);
13104
0
  yych = *++YYCURSOR;
13105
0
  if (yych <= '\f') {
13106
0
    if (yych <= 0x08) goto yy1138;
13107
0
    if (yych <= '\n') goto yy1139;
13108
0
  } else {
13109
0
    if (yych <= '\r') goto yy1141;
13110
0
    if (yych == ' ') goto yy1139;
13111
0
  }
13112
0
yy1138:
13113
0
  YYDEBUG(1138, *YYCURSOR);
13114
0
  yyleng = YYCURSOR - SCNG(yy_text);
13115
0
#line 2316 "Zend/zend_language_scanner.l"
13116
0
  {
13117
  /* Allow <?php followed by end of file. */
13118
0
  if (YYCURSOR == YYLIMIT) {
13119
0
    BEGIN(ST_IN_SCRIPTING);
13120
0
    RETURN_OR_SKIP_TOKEN(T_OPEN_TAG);
13121
0
  }
13122
  /* Degenerate case: <?phpX is interpreted as <? phpX with short tags. */
13123
0
  if (CG(short_tags)) {
13124
0
    yyless(2);
13125
0
    BEGIN(ST_IN_SCRIPTING);
13126
0
    RETURN_OR_SKIP_TOKEN(T_OPEN_TAG);
13127
0
  }
13128
0
  goto inline_char_handler;
13129
0
}
13130
0
#line 13131 "Zend/zend_language_scanner.c"
13131
0
yy1139:
13132
0
  YYDEBUG(1139, *YYCURSOR);
13133
0
  ++YYCURSOR;
13134
0
yy1140:
13135
0
  YYDEBUG(1140, *YYCURSOR);
13136
0
  yyleng = YYCURSOR - SCNG(yy_text);
13137
0
#line 2310 "Zend/zend_language_scanner.l"
13138
0
  {
13139
0
  HANDLE_NEWLINE(yytext[yyleng-1]);
13140
0
  BEGIN(ST_IN_SCRIPTING);
13141
0
  RETURN_OR_SKIP_TOKEN(T_OPEN_TAG);
13142
0
}
13143
0
#line 13144 "Zend/zend_language_scanner.c"
13144
0
yy1141:
13145
0
  YYDEBUG(1141, *YYCURSOR);
13146
0
  yych = *++YYCURSOR;
13147
0
  if (yych == '\n') goto yy1139;
13148
0
  goto yy1140;
13149
/* *********************************** */
13150
0
yyc_ST_END_HEREDOC:
13151
0
  YYDEBUG(1142, *YYCURSOR);
13152
0
  YYFILL(1);
13153
0
  yych = *YYCURSOR;
13154
0
  YYDEBUG(1144, *YYCURSOR);
13155
0
  ++YYCURSOR;
13156
0
  YYDEBUG(1145, *YYCURSOR);
13157
0
  yyleng = YYCURSOR - SCNG(yy_text);
13158
0
#line 2831 "Zend/zend_language_scanner.l"
13159
0
  {
13160
0
  zend_heredoc_label *heredoc_label = zend_ptr_stack_pop(&SCNG(heredoc_label_stack));
13161
13162
0
  yyleng = heredoc_label->indentation + heredoc_label->length;
13163
0
  YYCURSOR += yyleng - 1;
13164
13165
0
  heredoc_label_dtor(heredoc_label);
13166
0
  efree(heredoc_label);
13167
13168
0
  BEGIN(ST_IN_SCRIPTING);
13169
0
  RETURN_TOKEN(T_END_HEREDOC);
13170
0
}
13171
0
#line 13172 "Zend/zend_language_scanner.c"
13172
/* *********************************** */
13173
0
yyc_ST_NOWDOC:
13174
0
  YYDEBUG(1146, *YYCURSOR);
13175
0
  YYFILL(1);
13176
0
  yych = *YYCURSOR;
13177
0
  YYDEBUG(1148, *YYCURSOR);
13178
0
  ++YYCURSOR;
13179
0
  YYDEBUG(1149, *YYCURSOR);
13180
0
  yyleng = YYCURSOR - SCNG(yy_text);
13181
0
#line 3088 "Zend/zend_language_scanner.l"
13182
0
  {
13183
0
  zend_heredoc_label *heredoc_label = zend_ptr_stack_top(&SCNG(heredoc_label_stack));
13184
0
  int newline = 0, indentation = 0, spacing = -1;
13185
13186
0
  if (YYCURSOR > YYLIMIT) {
13187
0
    RETURN_END_TOKEN;
13188
0
  }
13189
13190
0
  YYCURSOR--;
13191
13192
0
  while (YYCURSOR < YYLIMIT) {
13193
0
    switch (*YYCURSOR++) {
13194
0
      case '\r':
13195
0
        if (*YYCURSOR == '\n') {
13196
0
          YYCURSOR++;
13197
0
        }
13198
0
        ZEND_FALLTHROUGH;
13199
0
      case '\n':
13200
0
        indentation = spacing = 0;
13201
13202
0
        while (YYCURSOR < YYLIMIT && (*YYCURSOR == ' ' || *YYCURSOR == '\t')) {
13203
0
          if (*YYCURSOR == '\t') {
13204
0
            spacing |= HEREDOC_USING_TABS;
13205
0
          } else {
13206
0
            spacing |= HEREDOC_USING_SPACES;
13207
0
          }
13208
0
          ++YYCURSOR;
13209
0
          ++indentation;
13210
0
        }
13211
13212
0
        if (YYCURSOR == YYLIMIT) {
13213
0
          yyleng = YYCURSOR - SCNG(yy_text);
13214
0
          HANDLE_NEWLINES(yytext, yyleng);
13215
0
          ZVAL_NULL(zendlval);
13216
0
          RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
13217
0
        }
13218
13219
        /* Check for ending label on the next line */
13220
0
        if (IS_LABEL_START(*YYCURSOR) && heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, heredoc_label->label, heredoc_label->length)) {
13221
0
          if (IS_LABEL_SUCCESSOR(YYCURSOR[heredoc_label->length])) {
13222
0
            continue;
13223
0
          }
13224
13225
0
          if (spacing == (HEREDOC_USING_SPACES | HEREDOC_USING_TABS)) {
13226
0
            zend_throw_exception(zend_ce_parse_error, "Invalid indentation - tabs and spaces cannot be mixed", 0);
13227
0
            if (PARSER_MODE()) {
13228
0
              RETURN_TOKEN(T_ERROR);
13229
0
            }
13230
0
          }
13231
13232
          /* newline before label will be subtracted from returned text, but
13233
           * yyleng/yytext will include it, for zend_highlight/strip, tokenizer, etc. */
13234
0
          if (YYCURSOR[-indentation - 2] == '\r' && YYCURSOR[-indentation - 1] == '\n') {
13235
0
            newline = 2; /* Windows newline */
13236
0
          } else {
13237
0
            newline = 1;
13238
0
          }
13239
13240
0
          CG(increment_lineno) = 1; /* For newline before label */
13241
13242
0
          YYCURSOR -= indentation;
13243
0
          heredoc_label->indentation = indentation;
13244
13245
0
          BEGIN(ST_END_HEREDOC);
13246
13247
0
          goto nowdoc_scan_done;
13248
0
        }
13249
0
        ZEND_FALLTHROUGH;
13250
0
      default:
13251
0
        continue;
13252
0
    }
13253
0
  }
13254
13255
0
nowdoc_scan_done:
13256
0
  yyleng = YYCURSOR - SCNG(yy_text);
13257
0
  ZVAL_STRINGL(zendlval, yytext, yyleng - newline);
13258
13259
0
  if (!EG(exception) && spacing != -1 && PARSER_MODE()) {
13260
0
    bool newline_at_start = *(yytext - 1) == '\n' || *(yytext - 1) == '\r';
13261
0
    if (!strip_multiline_string_indentation(
13262
0
        zendlval, indentation, spacing == HEREDOC_USING_SPACES,
13263
0
        newline_at_start, newline != 0)) {
13264
0
      RETURN_TOKEN(T_ERROR);
13265
0
    }
13266
0
  }
13267
13268
0
  HANDLE_NEWLINES(yytext, yyleng - newline);
13269
0
  RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
13270
0
}
13271
0
#line 13272 "Zend/zend_language_scanner.c"
13272
0
}
13273
0
#line 3187 "Zend/zend_language_scanner.l"
13274
13275
13276
0
emit_token_with_str:
13277
0
  zend_copy_value(zendlval, (yytext + offset), (yyleng - offset));
13278
13279
0
emit_token_with_val:
13280
0
  if (PARSER_MODE()) {
13281
0
    ZEND_ASSERT(Z_TYPE_P(zendlval) != IS_UNDEF);
13282
0
    elem->ast = zend_ast_create_zval_with_lineno(zendlval, start_line);
13283
0
  }
13284
13285
0
emit_token:
13286
0
  if (SCNG(on_event)) {
13287
0
    SCNG(on_event)(ON_TOKEN, token, start_line, yytext, yyleng, SCNG(on_event_context));
13288
0
  }
13289
0
  return token;
13290
13291
0
emit_token_with_ident:
13292
0
  if (PARSER_MODE()) {
13293
0
    elem->ident = SCNG(yy_text);
13294
0
  }
13295
0
  if (SCNG(on_event)) {
13296
0
    SCNG(on_event)(ON_TOKEN, token, start_line, yytext, yyleng, SCNG(on_event_context));
13297
0
  }
13298
0
  return token;
13299
13300
0
return_whitespace:
13301
0
  HANDLE_NEWLINES(yytext, yyleng);
13302
0
  if (SCNG(on_event)) {
13303
0
    SCNG(on_event)(ON_TOKEN, T_WHITESPACE, start_line, yytext, yyleng, SCNG(on_event_context));
13304
0
  }
13305
0
  if (PARSER_MODE()) {
13306
0
    start_line = CG(zend_lineno);
13307
0
    goto restart;
13308
0
  } else {
13309
0
    return T_WHITESPACE;
13310
0
  }
13311
13312
0
skip_token:
13313
0
  if (SCNG(on_event)) {
13314
0
    SCNG(on_event)(ON_TOKEN, token, start_line, yytext, yyleng, SCNG(on_event_context));
13315
0
  }
13316
0
  start_line = CG(zend_lineno);
13317
0
  goto restart;
13318
0
}