Coverage Report

Created: 2025-12-14 06:05

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/php-src/Zend/zend_language_scanner.c
Line
Count
Source
1
/* Generated by re2c 1.3 */
2
#line 1 "Zend/zend_language_scanner.l"
3
/*
4
   +----------------------------------------------------------------------+
5
   | Zend Engine                                                          |
6
   +----------------------------------------------------------------------+
7
   | Copyright (c) Zend Technologies Ltd. (http://www.zend.com)           |
8
   +----------------------------------------------------------------------+
9
   | This source file is subject to version 2.00 of the Zend license,     |
10
   | that is bundled with this package in the file LICENSE, and is        |
11
   | available through the world-wide-web at the following url:           |
12
   | http://www.zend.com/license/2_00.txt.                                |
13
   | If you did not receive a copy of the Zend license and are unable to  |
14
   | obtain it through the world-wide-web, please send a note to          |
15
   | license@zend.com so we can mail you a copy immediately.              |
16
   +----------------------------------------------------------------------+
17
   | Authors: Marcus Boerger <helly@php.net>                              |
18
   |          Nuno Lopes <nlopess@php.net>                                |
19
   |          Scott MacVicar <scottmac@php.net>                           |
20
   | Flex version authors:                                                |
21
   |          Andi Gutmans <andi@php.net>                                 |
22
   |          Zeev Suraski <zeev@php.net>                                 |
23
   +----------------------------------------------------------------------+
24
*/
25
26
#if 0
27
# define YYDEBUG(s, c) printf("state: %d char: %c\n", s, c)
28
#else
29
# define YYDEBUG(s, c)
30
#endif
31
32
#include "zend_language_scanner_defs.h"
33
34
#include <errno.h>
35
#include <stdint.h>
36
#include "zend.h"
37
#ifdef ZEND_WIN32
38
# include <Winuser.h>
39
#endif
40
#include "zend_alloc.h"
41
#include <zend_language_parser.h>
42
#include "zend_compile.h"
43
#include "zend_language_scanner.h"
44
#include "zend_highlight.h"
45
#include "zend_constants.h"
46
#include "zend_variables.h"
47
#include "zend_operators.h"
48
#include "zend_API.h"
49
#include "zend_strtod.h"
50
#include "zend_exceptions.h"
51
#include "zend_virtual_cwd.h"
52
53
0
#define YYCTYPE   unsigned char
54
0
#define YYFILL(n) { if ((YYCURSOR + n) >= (YYLIMIT + ZEND_MMAP_AHEAD)) { return 0; } }
55
0
#define YYCURSOR  SCNG(yy_cursor)
56
0
#define YYLIMIT   SCNG(yy_limit)
57
0
#define YYMARKER  SCNG(yy_marker)
58
59
0
#define YYGETCONDITION()  SCNG(yy_state)
60
0
#define YYSETCONDITION(s) SCNG(yy_state) = s
61
62
#define STATE(name)  yyc##name
63
64
/* emulate flex constructs */
65
0
#define BEGIN(state) YYSETCONDITION(STATE(state))
66
0
#define YYSTATE      YYGETCONDITION()
67
0
#define yytext       ((char*)SCNG(yy_text))
68
0
#define yyleng       SCNG(yy_leng)
69
0
#define yyless(x)    do { YYCURSOR = (unsigned char*)yytext + x; \
70
0
                          yyleng   = (unsigned int)x; } while(0)
71
#define yymore()     goto yymore_restart
72
73
/* perform sanity check. If this message is triggered you should
74
   increase the ZEND_MMAP_AHEAD value in the zend_streams.h file */
75
#define YYMAXFILL 16
76
77
#if ZEND_MMAP_AHEAD < YYMAXFILL
78
# error ZEND_MMAP_AHEAD should be greater than or equal to YYMAXFILL
79
#endif
80
81
#include <stdarg.h>
82
83
#ifdef HAVE_UNISTD_H
84
# include <unistd.h>
85
#endif
86
87
/* Globals Macros */
88
69.6k
#define SCNG  LANG_SCNG
89
#ifdef ZTS
90
ZEND_API ts_rsrc_id language_scanner_globals_id;
91
ZEND_API size_t language_scanner_globals_offset;
92
#else
93
ZEND_API zend_php_scanner_globals language_scanner_globals;
94
#endif
95
96
0
#define HANDLE_NEWLINES(s, l)                         \
97
0
do {                                     \
98
0
  char *p = (s), *boundary = p+(l);                     \
99
0
                                        \
100
0
  while (p<boundary) {                           \
101
0
    if (*p == '\n' || (*p == '\r' && (*(p+1) != '\n'))) {         \
102
0
      CG(zend_lineno)++;                          \
103
0
    }                                   \
104
0
    p++;                                  \
105
0
  }                                     \
106
0
} while (0)
107
108
0
#define HANDLE_NEWLINE(c) \
109
0
{ \
110
0
  if (c == '\n' || c == '\r') { \
111
0
    CG(zend_lineno)++; \
112
0
  } \
113
0
}
114
115
/* To save initial string length after scanning to first variable */
116
0
#define SET_DOUBLE_QUOTES_SCANNED_LENGTH(len) SCNG(scanned_string_len) = (len)
117
0
#define GET_DOUBLE_QUOTES_SCANNED_LENGTH()    SCNG(scanned_string_len)
118
119
0
#define IS_LABEL_START(c) (((c) >= 'a' && (c) <= 'z') || ((c) >= 'A' && (c) <= 'Z') || (c) == '_' || (c) >= 0x80)
120
0
#define IS_LABEL_SUCCESSOR(c) (((c) >= 'a' && (c) <= 'z') || ((c) >= 'A' && (c) <= 'Z') || ((c) >= '0' && (c) <= '9') || (c) == '_' || (c) >= 0x80)
121
122
0
#define ZEND_IS_OCT(c)  ((c)>='0' && (c)<='7')
123
0
#define ZEND_IS_HEX(c)  (((c)>='0' && (c)<='9') || ((c)>='a' && (c)<='f') || ((c)>='A' && (c)<='F'))
124
125
126
static void strip_underscores(char *str, size_t *len)
127
0
{
128
0
  char *src = str, *dest = str;
129
0
  while (*src != '\0') {
130
0
    if (*src != '_') {
131
0
      *dest = *src;
132
0
      dest++;
133
0
    } else {
134
0
      --(*len);
135
0
    }
136
0
    src++;
137
0
  }
138
0
  *dest = '\0';
139
0
}
140
141
static size_t encoding_filter_script_to_internal(unsigned char **to, size_t *to_length, const unsigned char *from, size_t from_length)
142
0
{
143
0
  const zend_encoding *internal_encoding = zend_multibyte_get_internal_encoding();
144
0
  ZEND_ASSERT(internal_encoding);
145
0
  return zend_multibyte_encoding_converter(to, to_length, from, from_length, internal_encoding, LANG_SCNG(script_encoding));
146
0
}
147
148
static size_t encoding_filter_script_to_intermediate(unsigned char **to, size_t *to_length, const unsigned char *from, size_t from_length)
149
0
{
150
0
  return zend_multibyte_encoding_converter(to, to_length, from, from_length, zend_multibyte_encoding_utf8, LANG_SCNG(script_encoding));
151
0
}
152
153
static size_t encoding_filter_intermediate_to_script(unsigned char **to, size_t *to_length, const unsigned char *from, size_t from_length)
154
0
{
155
0
  return zend_multibyte_encoding_converter(to, to_length, from, from_length,
156
0
LANG_SCNG(script_encoding), zend_multibyte_encoding_utf8);
157
0
}
158
159
static size_t encoding_filter_intermediate_to_internal(unsigned char **to, size_t *to_length, const unsigned char *from, size_t from_length)
160
0
{
161
0
  const zend_encoding *internal_encoding = zend_multibyte_get_internal_encoding();
162
0
  ZEND_ASSERT(internal_encoding);
163
0
  return zend_multibyte_encoding_converter(to, to_length, from, from_length,
164
0
internal_encoding, zend_multibyte_encoding_utf8);
165
0
}
166
167
168
static void _yy_push_state(int new_state)
169
0
{
170
0
  zend_stack_push(&SCNG(state_stack), (void *) &YYGETCONDITION());
171
0
  YYSETCONDITION(new_state);
172
0
}
173
174
0
#define yy_push_state(state_and_tsrm) _yy_push_state(yyc##state_and_tsrm)
175
176
static void yy_pop_state(void)
177
0
{
178
0
  int *stack_state = zend_stack_top(&SCNG(state_stack));
179
0
  YYSETCONDITION(*stack_state);
180
0
  zend_stack_del_top(&SCNG(state_stack));
181
0
}
182
183
static void yy_scan_buffer(char *str, size_t len)
184
0
{
185
0
  YYCURSOR       = (YYCTYPE*)str;
186
0
  YYLIMIT        = YYCURSOR + len;
187
0
  if (!SCNG(yy_start)) {
188
0
    SCNG(yy_start) = YYCURSOR;
189
0
  }
190
0
}
191
192
void startup_scanner(void)
193
6.33k
{
194
6.33k
  CG(parse_error) = 0;
195
6.33k
  CG(doc_comment) = NULL;
196
6.33k
  CG(extra_fn_flags) = 0;
197
6.33k
  zend_stack_init(&SCNG(state_stack), sizeof(int));
198
6.33k
  zend_stack_init(&SCNG(nest_location_stack), sizeof(zend_nest_location));
199
6.33k
  zend_ptr_stack_init(&SCNG(heredoc_label_stack));
200
6.33k
  SCNG(heredoc_scan_ahead) = 0;
201
6.33k
}
202
203
0
static void heredoc_label_dtor(zend_heredoc_label *heredoc_label) {
204
0
    efree(heredoc_label->label);
205
0
}
206
207
void shutdown_scanner(void)
208
6.33k
{
209
6.33k
  CG(parse_error) = 0;
210
6.33k
  RESET_DOC_COMMENT();
211
6.33k
  zend_stack_destroy(&SCNG(state_stack));
212
6.33k
  zend_stack_destroy(&SCNG(nest_location_stack));
213
6.33k
  zend_ptr_stack_clean(&SCNG(heredoc_label_stack), (void (*)(void *)) &heredoc_label_dtor, 1);
214
6.33k
  zend_ptr_stack_destroy(&SCNG(heredoc_label_stack));
215
6.33k
  SCNG(heredoc_scan_ahead) = 0;
216
6.33k
  SCNG(on_event) = NULL;
217
6.33k
  SCNG(on_event_context) = NULL;
218
6.33k
}
219
220
ZEND_API void zend_save_lexical_state(zend_lex_state *lex_state)
221
0
{
222
0
  lex_state->yy_leng   = SCNG(yy_leng);
223
0
  lex_state->yy_start  = SCNG(yy_start);
224
0
  lex_state->yy_text   = SCNG(yy_text);
225
0
  lex_state->yy_cursor = SCNG(yy_cursor);
226
0
  lex_state->yy_marker = SCNG(yy_marker);
227
0
  lex_state->yy_limit  = SCNG(yy_limit);
228
229
0
  lex_state->state_stack = SCNG(state_stack);
230
0
  zend_stack_init(&SCNG(state_stack), sizeof(int));
231
232
0
  lex_state->nest_location_stack = SCNG(nest_location_stack);
233
0
  zend_stack_init(&SCNG(nest_location_stack), sizeof(zend_nest_location));
234
235
0
  lex_state->heredoc_label_stack = SCNG(heredoc_label_stack);
236
0
  zend_ptr_stack_init(&SCNG(heredoc_label_stack));
237
238
0
  lex_state->in = SCNG(yy_in);
239
0
  lex_state->yy_state = YYSTATE;
240
0
  lex_state->filename = CG(compiled_filename);
241
0
  lex_state->lineno = CG(zend_lineno);
242
0
  CG(compiled_filename) = NULL;
243
244
0
  lex_state->script_org = SCNG(script_org);
245
0
  lex_state->script_org_size = SCNG(script_org_size);
246
0
  lex_state->script_filtered = SCNG(script_filtered);
247
0
  lex_state->script_filtered_size = SCNG(script_filtered_size);
248
0
  lex_state->input_filter = SCNG(input_filter);
249
0
  lex_state->output_filter = SCNG(output_filter);
250
0
  lex_state->script_encoding = SCNG(script_encoding);
251
252
0
  lex_state->on_event = SCNG(on_event);
253
0
  lex_state->on_event_context = SCNG(on_event_context);
254
255
0
  lex_state->ast = CG(ast);
256
0
  lex_state->ast_arena = CG(ast_arena);
257
0
}
258
259
ZEND_API void zend_restore_lexical_state(zend_lex_state *lex_state)
260
0
{
261
0
  SCNG(yy_leng)   = lex_state->yy_leng;
262
0
  SCNG(yy_start)  = lex_state->yy_start;
263
0
  SCNG(yy_text)   = lex_state->yy_text;
264
0
  SCNG(yy_cursor) = lex_state->yy_cursor;
265
0
  SCNG(yy_marker) = lex_state->yy_marker;
266
0
  SCNG(yy_limit)  = lex_state->yy_limit;
267
268
0
  zend_stack_destroy(&SCNG(state_stack));
269
0
  SCNG(state_stack) = lex_state->state_stack;
270
271
0
  zend_stack_destroy(&SCNG(nest_location_stack));
272
0
  SCNG(nest_location_stack) = lex_state->nest_location_stack;
273
274
0
  zend_ptr_stack_clean(&SCNG(heredoc_label_stack), (void (*)(void *)) &heredoc_label_dtor, 1);
275
0
  zend_ptr_stack_destroy(&SCNG(heredoc_label_stack));
276
0
  SCNG(heredoc_label_stack) = lex_state->heredoc_label_stack;
277
278
0
  SCNG(yy_in) = lex_state->in;
279
0
  YYSETCONDITION(lex_state->yy_state);
280
0
  CG(zend_lineno) = lex_state->lineno;
281
0
  zend_restore_compiled_filename(lex_state->filename);
282
283
0
  if (SCNG(script_filtered) && SCNG(script_filtered) != lex_state->script_filtered) {
284
0
    efree(SCNG(script_filtered));
285
0
    SCNG(script_filtered) = NULL;
286
0
  }
287
0
  SCNG(script_org) = lex_state->script_org;
288
0
  SCNG(script_org_size) = lex_state->script_org_size;
289
0
  SCNG(script_filtered) = lex_state->script_filtered;
290
0
  SCNG(script_filtered_size) = lex_state->script_filtered_size;
291
0
  SCNG(input_filter) = lex_state->input_filter;
292
0
  SCNG(output_filter) = lex_state->output_filter;
293
0
  SCNG(script_encoding) = lex_state->script_encoding;
294
295
0
  SCNG(on_event) = lex_state->on_event;
296
0
  SCNG(on_event_context) = lex_state->on_event_context;
297
298
0
  CG(ast) = lex_state->ast;
299
0
  CG(ast_arena) = lex_state->ast_arena;
300
301
0
  RESET_DOC_COMMENT();
302
0
}
303
304
ZEND_API zend_result zend_lex_tstring(zval *zv, unsigned char *ident)
305
0
{
306
0
  unsigned char *end = ident;
307
0
  while ((*end >= 'a' && *end <= 'z') || (*end >= 'A' && *end <= 'Z') || *end == '_') {
308
0
    end++;
309
0
  }
310
311
0
  size_t length = end - ident;
312
0
  if (length == 0) {
313
0
    ZEND_ASSERT(ident[0] == '<' && ident[1] == '?' && ident[2] == '=');
314
0
    zend_throw_exception(zend_ce_parse_error, "Cannot use \"<?=\" as an identifier", 0);
315
0
    return FAILURE;
316
0
  }
317
318
0
  if (SCNG(on_event)) {
319
0
    SCNG(on_event)(ON_FEEDBACK, T_STRING, 0, (char *) ident, length, SCNG(on_event_context));
320
0
  }
321
322
0
  ZVAL_STRINGL(zv, (char *) ident, length);
323
0
  return SUCCESS;
324
0
}
325
326
0
#define BOM_UTF32_BE  "\x00\x00\xfe\xff"
327
0
#define BOM_UTF32_LE  "\xff\xfe\x00\x00"
328
0
#define BOM_UTF16_BE  "\xfe\xff"
329
0
#define BOM_UTF16_LE  "\xff\xfe"
330
0
#define BOM_UTF8    "\xef\xbb\xbf"
331
332
static const zend_encoding *zend_multibyte_detect_utf_encoding(const unsigned char *script, size_t script_size)
333
0
{
334
0
  const unsigned char *p;
335
0
  int wchar_size = 2;
336
0
  int le = 0;
337
338
  /* utf-16 or utf-32? */
339
0
  p = script;
340
0
  assert(p >= script);
341
0
  while ((size_t)(p-script) < script_size) {
342
0
    p = memchr(p, 0, script_size-(p-script)-2);
343
0
    if (!p) {
344
0
      break;
345
0
    }
346
0
    if (*(p+1) == '\0' && *(p+2) == '\0') {
347
0
      wchar_size = 4;
348
0
      break;
349
0
    }
350
351
    /* searching for UTF-32 specific byte orders, so this will do */
352
0
    p += 4;
353
0
  }
354
355
  /* BE or LE? */
356
0
  p = script;
357
0
  assert(p >= script);
358
0
  while ((size_t)(p-script) < script_size) {
359
0
    if (*p == '\0' && *(p+wchar_size-1) != '\0') {
360
      /* BE */
361
0
      le = 0;
362
0
      break;
363
0
    } else if (*p != '\0' && *(p+wchar_size-1) == '\0') {
364
      /* LE* */
365
0
      le = 1;
366
0
      break;
367
0
    }
368
0
    p += wchar_size;
369
0
  }
370
371
0
  if (wchar_size == 2) {
372
0
    return le ? zend_multibyte_encoding_utf16le : zend_multibyte_encoding_utf16be;
373
0
  } else {
374
0
    return le ? zend_multibyte_encoding_utf32le : zend_multibyte_encoding_utf32be;
375
0
  }
376
377
0
  return NULL;
378
0
}
379
380
static const zend_encoding* zend_multibyte_detect_unicode(void)
381
0
{
382
0
  const zend_encoding *script_encoding = NULL;
383
0
  int bom_size;
384
0
  unsigned char *pos1, *pos2;
385
386
0
  if (LANG_SCNG(script_org_size) < sizeof(BOM_UTF32_LE)-1) {
387
0
    return NULL;
388
0
  }
389
390
  /* check out BOM */
391
0
  if (!memcmp(LANG_SCNG(script_org), BOM_UTF32_BE, sizeof(BOM_UTF32_BE)-1)) {
392
0
    script_encoding = zend_multibyte_encoding_utf32be;
393
0
    bom_size = sizeof(BOM_UTF32_BE)-1;
394
0
  } else if (!memcmp(LANG_SCNG(script_org), BOM_UTF32_LE, sizeof(BOM_UTF32_LE)-1)) {
395
0
    script_encoding = zend_multibyte_encoding_utf32le;
396
0
    bom_size = sizeof(BOM_UTF32_LE)-1;
397
0
  } else if (!memcmp(LANG_SCNG(script_org), BOM_UTF16_BE, sizeof(BOM_UTF16_BE)-1)) {
398
0
    script_encoding = zend_multibyte_encoding_utf16be;
399
0
    bom_size = sizeof(BOM_UTF16_BE)-1;
400
0
  } else if (!memcmp(LANG_SCNG(script_org), BOM_UTF16_LE, sizeof(BOM_UTF16_LE)-1)) {
401
0
    script_encoding = zend_multibyte_encoding_utf16le;
402
0
    bom_size = sizeof(BOM_UTF16_LE)-1;
403
0
  } else if (!memcmp(LANG_SCNG(script_org), BOM_UTF8, sizeof(BOM_UTF8)-1)) {
404
0
    script_encoding = zend_multibyte_encoding_utf8;
405
0
    bom_size = sizeof(BOM_UTF8)-1;
406
0
  }
407
408
0
  if (script_encoding) {
409
    /* remove BOM */
410
0
    LANG_SCNG(script_org) += bom_size;
411
0
    LANG_SCNG(script_org_size) -= bom_size;
412
413
0
    return script_encoding;
414
0
  }
415
416
  /* script contains NULL bytes -> auto-detection */
417
0
  if ((pos1 = memchr(LANG_SCNG(script_org), 0, LANG_SCNG(script_org_size)))) {
418
    /* check if the NULL byte is after the __HALT_COMPILER(); */
419
0
    pos2 = LANG_SCNG(script_org);
420
421
0
    while ((size_t)(pos1 - pos2) >= sizeof("__HALT_COMPILER();")-1) {
422
0
      pos2 = memchr(pos2, '_', pos1 - pos2);
423
0
      if (!pos2) break;
424
0
      pos2++;
425
0
      if (strncasecmp((char*)pos2, "_HALT_COMPILER", sizeof("_HALT_COMPILER")-1) == 0) {
426
0
        pos2 += sizeof("_HALT_COMPILER")-1;
427
0
        while (*pos2 == ' '  ||
428
0
             *pos2 == '\t' ||
429
0
             *pos2 == '\r' ||
430
0
             *pos2 == '\n') {
431
0
          pos2++;
432
0
        }
433
0
        if (*pos2 == '(') {
434
0
          pos2++;
435
0
          while (*pos2 == ' '  ||
436
0
               *pos2 == '\t' ||
437
0
               *pos2 == '\r' ||
438
0
               *pos2 == '\n') {
439
0
            pos2++;
440
0
          }
441
0
          if (*pos2 == ')') {
442
0
            pos2++;
443
0
            while (*pos2 == ' '  ||
444
0
                 *pos2 == '\t' ||
445
0
                 *pos2 == '\r' ||
446
0
                 *pos2 == '\n') {
447
0
              pos2++;
448
0
            }
449
0
            if (*pos2 == ';') {
450
0
              return NULL;
451
0
            }
452
0
          }
453
0
        }
454
0
      }
455
0
    }
456
    /* make best effort if BOM is missing */
457
0
    return zend_multibyte_detect_utf_encoding(LANG_SCNG(script_org), LANG_SCNG(script_org_size));
458
0
  }
459
460
0
  return NULL;
461
0
}
462
463
static const zend_encoding* zend_multibyte_find_script_encoding(void)
464
0
{
465
0
  const zend_encoding *script_encoding;
466
467
0
  if (CG(detect_unicode)) {
468
    /* check out bom(byte order mark) and see if containing wchars */
469
0
    script_encoding = zend_multibyte_detect_unicode();
470
0
    if (script_encoding != NULL) {
471
      /* bom or wchar detection is prior to 'script_encoding' option */
472
0
      return script_encoding;
473
0
    }
474
0
  }
475
476
  /* if no script_encoding specified, just leave alone */
477
0
  if (!CG(script_encoding_list) || !CG(script_encoding_list_size)) {
478
0
    return NULL;
479
0
  }
480
481
  /* if multiple encodings specified, detect automagically */
482
0
  if (CG(script_encoding_list_size) > 1) {
483
0
    return zend_multibyte_encoding_detector(LANG_SCNG(script_org), LANG_SCNG(script_org_size), CG(script_encoding_list), CG(script_encoding_list_size));
484
0
  }
485
486
0
  return CG(script_encoding_list)[0];
487
0
}
488
489
ZEND_API zend_result zend_multibyte_set_filter(const zend_encoding *onetime_encoding)
490
0
{
491
0
  const zend_encoding *internal_encoding = zend_multibyte_get_internal_encoding();
492
0
  const zend_encoding *script_encoding = onetime_encoding ? onetime_encoding: zend_multibyte_find_script_encoding();
493
494
0
  if (!script_encoding) {
495
0
    return FAILURE;
496
0
  }
497
498
  /* judge input/output filter */
499
0
  LANG_SCNG(script_encoding) = script_encoding;
500
0
  LANG_SCNG(input_filter) = NULL;
501
0
  LANG_SCNG(output_filter) = NULL;
502
503
0
  if (!internal_encoding || LANG_SCNG(script_encoding) == internal_encoding) {
504
0
    if (!zend_multibyte_check_lexer_compatibility(LANG_SCNG(script_encoding))) {
505
      /* and if not, work around w/ script_encoding -> utf-8 -> script_encoding conversion */
506
0
      LANG_SCNG(input_filter) = encoding_filter_script_to_intermediate;
507
0
      LANG_SCNG(output_filter) = encoding_filter_intermediate_to_script;
508
0
    } else {
509
0
      LANG_SCNG(input_filter) = NULL;
510
0
      LANG_SCNG(output_filter) = NULL;
511
0
    }
512
0
    return SUCCESS;
513
0
  }
514
515
0
  if (zend_multibyte_check_lexer_compatibility(internal_encoding)) {
516
0
    LANG_SCNG(input_filter) = encoding_filter_script_to_internal;
517
0
    LANG_SCNG(output_filter) = NULL;
518
0
  } else if (zend_multibyte_check_lexer_compatibility(LANG_SCNG(script_encoding))) {
519
0
    LANG_SCNG(input_filter) = NULL;
520
0
    LANG_SCNG(output_filter) = encoding_filter_script_to_internal;
521
0
  } else {
522
    /* both script and internal encodings are incompatible w/ flex */
523
0
    LANG_SCNG(input_filter) = encoding_filter_script_to_intermediate;
524
0
    LANG_SCNG(output_filter) = encoding_filter_intermediate_to_internal;
525
0
  }
526
527
0
  return SUCCESS;
528
0
}
529
530
ZEND_API zend_result open_file_for_scanning(zend_file_handle *file_handle)
531
0
{
532
0
  char *buf;
533
0
  size_t size;
534
0
  zend_string *compiled_filename;
535
536
0
  if (zend_stream_fixup(file_handle, &buf, &size) == FAILURE) {
537
    /* Still add it to open_files to make destroy_file_handle work */
538
0
    zend_llist_add_element(&CG(open_files), file_handle);
539
0
    file_handle->in_list = 1;
540
0
    return FAILURE;
541
0
  }
542
543
0
  ZEND_ASSERT(!EG(exception) && "stream_fixup() should have failed");
544
0
  zend_llist_add_element(&CG(open_files), file_handle);
545
0
  file_handle->in_list = 1;
546
547
  /* Reset the scanner for scanning the new file */
548
0
  SCNG(yy_in) = file_handle;
549
0
  SCNG(yy_start) = NULL;
550
551
0
  if (size != (size_t)-1) {
552
0
    if (CG(multibyte)) {
553
0
      SCNG(script_org) = (unsigned char*)buf;
554
0
      SCNG(script_org_size) = size;
555
0
      SCNG(script_filtered) = NULL;
556
557
0
      zend_multibyte_set_filter(NULL);
558
559
0
      if (SCNG(input_filter)) {
560
0
        if ((size_t)-1 == SCNG(input_filter)(&SCNG(script_filtered), &SCNG(script_filtered_size), SCNG(script_org), SCNG(script_org_size))) {
561
0
          zend_error_noreturn(E_COMPILE_ERROR, "Could not convert the script from the detected "
562
0
              "encoding \"%s\" to a compatible encoding", zend_multibyte_get_encoding_name(LANG_SCNG(script_encoding)));
563
0
        }
564
0
        buf = (char*)SCNG(script_filtered);
565
0
        size = SCNG(script_filtered_size);
566
0
      }
567
0
    }
568
0
    SCNG(yy_start) = (unsigned char *)buf;
569
0
    yy_scan_buffer(buf, size);
570
0
  } else {
571
0
    zend_error_noreturn(E_COMPILE_ERROR, "zend_stream_mmap() failed");
572
0
  }
573
574
0
  if (CG(skip_shebang)) {
575
0
    BEGIN(SHEBANG);
576
0
  } else {
577
0
    BEGIN(INITIAL);
578
0
  }
579
580
0
  if (file_handle->opened_path) {
581
0
    compiled_filename = zend_string_copy(file_handle->opened_path);
582
0
  } else {
583
0
    compiled_filename = zend_string_copy(file_handle->filename);
584
0
  }
585
586
0
  zend_set_compiled_filename(compiled_filename);
587
0
  zend_string_release_ex(compiled_filename, 0);
588
589
0
  SCNG(on_event) = NULL;
590
0
  SCNG(on_event_context) = NULL;
591
0
  RESET_DOC_COMMENT();
592
0
  CG(zend_lineno) = 1;
593
0
  CG(increment_lineno) = 0;
594
0
  return SUCCESS;
595
0
}
596
597
static zend_op_array *zend_compile(int type)
598
0
{
599
0
  zend_op_array *op_array = NULL;
600
0
  bool original_in_compilation = CG(in_compilation);
601
602
0
  CG(in_compilation) = 1;
603
0
  CG(ast) = NULL;
604
0
  CG(ast_arena) = zend_arena_create(1024 * 32);
605
606
0
  if (!zendparse()) {
607
0
    uint32_t last_lineno = CG(zend_lineno);
608
0
    zend_file_context original_file_context;
609
0
    zend_oparray_context original_oparray_context;
610
0
    zend_op_array *original_active_op_array = CG(active_op_array);
611
612
0
    op_array = emalloc(sizeof(zend_op_array));
613
0
    init_op_array(op_array, type, INITIAL_OP_ARRAY_SIZE);
614
0
    CG(active_op_array) = op_array;
615
616
    /* Use heap to not waste arena memory */
617
0
    op_array->fn_flags |= ZEND_ACC_HEAP_RT_CACHE;
618
619
0
    if (zend_ast_process) {
620
0
      zend_ast_process(CG(ast));
621
0
    }
622
623
0
    zend_file_context_begin(&original_file_context);
624
0
    zend_oparray_context_begin(&original_oparray_context, op_array);
625
0
    zend_compile_top_stmt(CG(ast));
626
0
    CG(zend_lineno) = last_lineno;
627
0
    zend_emit_final_return(type == ZEND_USER_FUNCTION);
628
0
    op_array->line_start = 1;
629
0
    op_array->line_end = last_lineno;
630
0
    pass_two(op_array);
631
0
    zend_oparray_context_end(&original_oparray_context);
632
0
    zend_file_context_end(&original_file_context);
633
634
0
    CG(active_op_array) = original_active_op_array;
635
0
  }
636
637
0
  zend_ast_destroy(CG(ast));
638
0
  zend_arena_destroy(CG(ast_arena));
639
640
0
  CG(in_compilation) = original_in_compilation;
641
642
0
  return op_array;
643
0
}
644
645
ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type)
646
0
{
647
0
  zend_lex_state original_lex_state;
648
0
  zend_op_array *op_array = NULL;
649
0
  zend_save_lexical_state(&original_lex_state);
650
651
0
  if (open_file_for_scanning(file_handle)==FAILURE) {
652
0
    if (!EG(exception)) {
653
0
      if (type==ZEND_REQUIRE) {
654
0
        zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, ZSTR_VAL(file_handle->filename));
655
0
      } else {
656
0
        zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, ZSTR_VAL(file_handle->filename));
657
0
      }
658
0
    }
659
0
  } else {
660
0
    bool orig_record_errors = EG(record_errors);
661
0
    if (!orig_record_errors) {
662
0
      zend_begin_record_errors();
663
0
    }
664
665
0
    op_array = zend_compile(ZEND_USER_FUNCTION);
666
667
0
    if (!orig_record_errors) {
668
0
      zend_emit_recorded_errors();
669
0
      zend_free_recorded_errors();
670
0
    }
671
0
  }
672
673
0
  zend_restore_lexical_state(&original_lex_state);
674
0
  return op_array;
675
0
}
676
677
ZEND_API zend_ast *zend_compile_string_to_ast(
678
0
    zend_string *code, zend_arena **ast_arena, zend_string *filename) {
679
0
  zval code_zv;
680
0
  bool original_in_compilation;
681
0
  zend_lex_state original_lex_state;
682
0
  zend_ast *ast;
683
684
0
  ZVAL_STR_COPY(&code_zv, code);
685
686
0
  original_in_compilation = CG(in_compilation);
687
0
  CG(in_compilation) = 1;
688
689
0
  zend_save_lexical_state(&original_lex_state);
690
0
  zend_prepare_string_for_scanning(&code_zv, filename);
691
0
  CG(ast) = NULL;
692
0
  CG(ast_arena) = zend_arena_create(1024 * 32);
693
0
  LANG_SCNG(yy_state) = yycINITIAL;
694
695
0
  if (zendparse() != 0) {
696
0
    zend_ast_destroy(CG(ast));
697
0
    zend_arena_destroy(CG(ast_arena));
698
0
    CG(ast) = NULL;
699
0
  }
700
701
  /* restore_lexical_state changes CG(ast) and CG(ast_arena) */
702
0
  ast = CG(ast);
703
0
  *ast_arena = CG(ast_arena);
704
705
0
  zend_restore_lexical_state(&original_lex_state);
706
0
  CG(in_compilation) = original_in_compilation;
707
708
0
  zval_ptr_dtor_str(&code_zv);
709
710
0
  return ast;
711
0
}
712
713
zend_op_array *compile_filename(int type, zend_string *filename)
714
0
{
715
0
  zend_file_handle file_handle;
716
0
  zend_op_array *retval;
717
0
  zend_string *opened_path = NULL;
718
719
0
  zend_stream_init_filename_ex(&file_handle, filename);
720
721
0
  retval = zend_compile_file(&file_handle, type);
722
0
  if (retval && file_handle.handle.stream.handle) {
723
0
    if (!file_handle.opened_path) {
724
0
      file_handle.opened_path = opened_path = zend_string_copy(filename);
725
0
    }
726
727
0
    zend_hash_add_empty_element(&EG(included_files), file_handle.opened_path);
728
729
0
    if (opened_path) {
730
0
      zend_string_release_ex(opened_path, 0);
731
0
    }
732
0
  }
733
0
  zend_destroy_file_handle(&file_handle);
734
735
0
  return retval;
736
0
}
737
738
ZEND_API void zend_prepare_string_for_scanning(zval *str, zend_string *filename)
739
0
{
740
0
  char *buf;
741
0
  size_t size, old_len;
742
743
  /* enforce ZEND_MMAP_AHEAD trailing NULLs for flex... */
744
0
  old_len = Z_STRLEN_P(str);
745
0
  Z_STR_P(str) = zend_string_extend(Z_STR_P(str), old_len + ZEND_MMAP_AHEAD, 0);
746
0
  Z_TYPE_INFO_P(str) = IS_STRING_EX;
747
0
  memset(Z_STRVAL_P(str) + old_len, 0, ZEND_MMAP_AHEAD + 1);
748
749
0
  SCNG(yy_in) = NULL;
750
0
  SCNG(yy_start) = NULL;
751
752
0
  buf = Z_STRVAL_P(str);
753
0
  size = old_len;
754
755
0
  if (CG(multibyte)) {
756
0
    SCNG(script_org) = (unsigned char*)buf;
757
0
    SCNG(script_org_size) = size;
758
0
    SCNG(script_filtered) = NULL;
759
760
0
    zend_multibyte_set_filter(zend_multibyte_get_internal_encoding());
761
762
0
    if (SCNG(input_filter)) {
763
0
      if ((size_t)-1 == SCNG(input_filter)(&SCNG(script_filtered), &SCNG(script_filtered_size), SCNG(script_org), SCNG(script_org_size))) {
764
0
        zend_error_noreturn(E_COMPILE_ERROR, "Could not convert the script from the detected "
765
0
            "encoding \"%s\" to a compatible encoding", zend_multibyte_get_encoding_name(LANG_SCNG(script_encoding)));
766
0
      }
767
0
      buf = (char*)SCNG(script_filtered);
768
0
      size = SCNG(script_filtered_size);
769
0
    }
770
0
  }
771
772
0
  yy_scan_buffer(buf, size);
773
0
  zend_set_compiled_filename(filename);
774
0
  CG(zend_lineno) = 1;
775
0
  CG(increment_lineno) = 0;
776
0
  SCNG(on_event) = NULL;
777
0
  SCNG(on_event_context) = NULL;
778
0
  RESET_DOC_COMMENT();
779
0
}
780
781
782
ZEND_API size_t zend_get_scanned_file_offset(void)
783
0
{
784
0
  size_t offset = SCNG(yy_cursor) - SCNG(yy_start);
785
0
  if (SCNG(input_filter)) {
786
0
    size_t original_offset = offset, length = 0;
787
0
    do {
788
0
      unsigned char *p = NULL;
789
0
      if ((size_t)-1 == SCNG(input_filter)(&p, &length, SCNG(script_org), offset)) {
790
0
        return (size_t)-1;
791
0
      }
792
0
      efree(p);
793
0
      if (length > original_offset) {
794
0
        offset--;
795
0
      } else if (length < original_offset) {
796
0
        offset++;
797
0
      }
798
0
    } while (original_offset != length);
799
0
  }
800
0
  return offset;
801
0
}
802
803
zend_op_array *compile_string(zend_string *source_string, const char *filename, zend_compile_position position)
804
0
{
805
0
  zend_lex_state original_lex_state;
806
0
  zend_op_array *op_array = NULL;
807
0
  zval tmp;
808
0
  zend_string *filename_str;
809
810
0
  if (ZSTR_LEN(source_string) == 0) {
811
0
    return NULL;
812
0
  }
813
814
0
  ZVAL_STR_COPY(&tmp, source_string);
815
816
0
  zend_save_lexical_state(&original_lex_state);
817
0
  filename_str = zend_string_init(filename, strlen(filename), 0);
818
0
  zend_prepare_string_for_scanning(&tmp, filename_str);
819
0
  zend_string_release(filename_str);
820
821
0
  switch (position) {
822
0
    case ZEND_COMPILE_POSITION_AT_SHEBANG:
823
0
      BEGIN(SHEBANG);
824
0
      break;
825
0
    case ZEND_COMPILE_POSITION_AT_OPEN_TAG:
826
0
      BEGIN(INITIAL);
827
0
      break;
828
0
    case ZEND_COMPILE_POSITION_AFTER_OPEN_TAG:
829
0
      BEGIN(ST_IN_SCRIPTING);
830
0
      break;
831
0
  }
832
833
0
  op_array = zend_compile(ZEND_EVAL_CODE);
834
835
0
  zend_restore_lexical_state(&original_lex_state);
836
0
  zval_ptr_dtor(&tmp);
837
838
0
  return op_array;
839
0
}
840
841
842
zend_result highlight_file(const char *filename, zend_syntax_highlighter_ini *syntax_highlighter_ini)
843
0
{
844
0
  zend_lex_state original_lex_state;
845
0
  zend_file_handle file_handle;
846
847
0
  zend_stream_init_filename(&file_handle, filename);
848
0
  zend_save_lexical_state(&original_lex_state);
849
0
  if (open_file_for_scanning(&file_handle)==FAILURE) {
850
0
    zend_message_dispatcher(ZMSG_FAILED_HIGHLIGHT_FOPEN, filename);
851
0
    zend_destroy_file_handle(&file_handle);
852
0
    zend_restore_lexical_state(&original_lex_state);
853
0
    return FAILURE;
854
0
  }
855
0
  zend_highlight(syntax_highlighter_ini);
856
0
  if (SCNG(script_filtered)) {
857
0
    efree(SCNG(script_filtered));
858
0
    SCNG(script_filtered) = NULL;
859
0
  }
860
0
  zend_destroy_file_handle(&file_handle);
861
0
  zend_restore_lexical_state(&original_lex_state);
862
0
  return SUCCESS;
863
0
}
864
865
void highlight_string(zend_string *str, zend_syntax_highlighter_ini *syntax_highlighter_ini, const char *filename)
866
0
{
867
0
  zend_lex_state original_lex_state;
868
0
  zval str_zv;
869
0
  zend_string *filename_str = zend_string_init(filename, strlen(filename), 0);
870
0
  ZVAL_STR_COPY(&str_zv, str);
871
0
  zend_save_lexical_state(&original_lex_state);
872
0
  zend_prepare_string_for_scanning(&str_zv, filename_str);
873
0
  zend_string_release(filename_str);
874
0
  BEGIN(INITIAL);
875
0
  zend_highlight(syntax_highlighter_ini);
876
0
  if (SCNG(script_filtered)) {
877
0
    efree(SCNG(script_filtered));
878
0
    SCNG(script_filtered) = NULL;
879
0
  }
880
0
  zend_restore_lexical_state(&original_lex_state);
881
0
  zval_ptr_dtor(&str_zv);
882
0
}
883
884
ZEND_API void zend_multibyte_yyinput_again(zend_encoding_filter old_input_filter, const zend_encoding *old_encoding)
885
0
{
886
0
  size_t length;
887
0
  unsigned char *new_yy_start;
888
889
  /* convert and set */
890
0
  if (!SCNG(input_filter)) {
891
0
    if (SCNG(script_filtered)) {
892
0
      efree(SCNG(script_filtered));
893
0
      SCNG(script_filtered) = NULL;
894
0
    }
895
0
    SCNG(script_filtered_size) = 0;
896
0
    length = SCNG(script_org_size);
897
0
    new_yy_start = SCNG(script_org);
898
0
  } else {
899
0
    if ((size_t)-1 == SCNG(input_filter)(&new_yy_start, &length, SCNG(script_org), SCNG(script_org_size))) {
900
0
      zend_error_noreturn(E_COMPILE_ERROR, "Could not convert the script from the detected "
901
0
          "encoding \"%s\" to a compatible encoding", zend_multibyte_get_encoding_name(LANG_SCNG(script_encoding)));
902
0
    }
903
0
    if (SCNG(script_filtered)) {
904
0
      efree(SCNG(script_filtered));
905
0
    }
906
0
    SCNG(script_filtered) = new_yy_start;
907
0
    SCNG(script_filtered_size) = length;
908
0
  }
909
910
0
  SCNG(yy_cursor) = new_yy_start + (SCNG(yy_cursor) - SCNG(yy_start));
911
0
  SCNG(yy_marker) = new_yy_start + (SCNG(yy_marker) - SCNG(yy_start));
912
0
  SCNG(yy_text) = new_yy_start + (SCNG(yy_text) - SCNG(yy_start));
913
0
  SCNG(yy_limit) = new_yy_start + length;
914
915
0
  SCNG(yy_start) = new_yy_start;
916
0
}
917
918
919
// TODO: avoid reallocation ???
920
# define zend_copy_value(zendlval, yytext, yyleng) \
921
0
  if (SCNG(output_filter)) { \
922
0
    size_t sz = 0; \
923
0
    char *s = NULL; \
924
0
    SCNG(output_filter)((unsigned char **)&s, &sz, (unsigned char *)yytext, (size_t)yyleng); \
925
0
    ZVAL_STRINGL(zendlval, s, sz); \
926
0
    efree(s); \
927
0
  } else if (yyleng == 1) { \
928
0
    ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR((zend_uchar)*(yytext))); \
929
0
  } else { \
930
0
    ZVAL_STRINGL(zendlval, yytext, yyleng); \
931
0
  }
932
933
static zend_result zend_scan_escape_string(zval *zendlval, char *str, size_t len, char quote_type)
934
0
{
935
0
  char *s, *t;
936
0
  char *end;
937
938
0
  if (len <= 1) {
939
0
    if (len < 1) {
940
0
      ZVAL_EMPTY_STRING(zendlval);
941
0
    } else {
942
0
      zend_uchar c = (zend_uchar)*str;
943
0
      HANDLE_NEWLINE(c);
944
0
      ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR(c));
945
0
    }
946
0
    goto skip_escape_conversion;
947
0
  }
948
949
0
  ZVAL_STRINGL(zendlval, str, len);
950
951
  /* convert escape sequences */
952
0
  s = Z_STRVAL_P(zendlval);
953
0
  end = s+Z_STRLEN_P(zendlval);
954
0
  while (1) {
955
0
    if (UNEXPECTED(*s=='\\')) {
956
0
      break;
957
0
    }
958
0
    if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
959
0
      CG(zend_lineno)++;
960
0
    }
961
0
    s++;
962
0
    if (s == end) {
963
0
      goto skip_escape_conversion;
964
0
    }
965
0
  }
966
967
0
  t = s;
968
0
  while (s<end) {
969
0
    if (*s=='\\') {
970
0
      s++;
971
0
      if (s >= end) {
972
0
        *t++ = '\\';
973
0
        break;
974
0
      }
975
976
0
      switch(*s) {
977
0
        case 'n':
978
0
          *t++ = '\n';
979
0
          break;
980
0
        case 'r':
981
0
          *t++ = '\r';
982
0
          break;
983
0
        case 't':
984
0
          *t++ = '\t';
985
0
          break;
986
0
        case 'f':
987
0
          *t++ = '\f';
988
0
          break;
989
0
        case 'v':
990
0
          *t++ = '\v';
991
0
          break;
992
0
        case 'e':
993
#ifdef ZEND_WIN32
994
          *t++ = VK_ESCAPE;
995
#else
996
0
          *t++ = '\e';
997
0
#endif
998
0
          break;
999
0
        case '"':
1000
0
        case '`':
1001
0
          if (*s != quote_type) {
1002
0
            *t++ = '\\';
1003
0
            *t++ = *s;
1004
0
            break;
1005
0
          }
1006
0
          ZEND_FALLTHROUGH;
1007
0
        case '\\':
1008
0
        case '$':
1009
0
          *t++ = *s;
1010
0
          break;
1011
0
        case 'x':
1012
0
        case 'X':
1013
0
          if (ZEND_IS_HEX(*(s+1))) {
1014
0
            char hex_buf[3] = { 0, 0, 0 };
1015
1016
0
            hex_buf[0] = *(++s);
1017
0
            if (ZEND_IS_HEX(*(s+1))) {
1018
0
              hex_buf[1] = *(++s);
1019
0
            }
1020
0
            *t++ = (char) ZEND_STRTOL(hex_buf, NULL, 16);
1021
0
          } else {
1022
0
            *t++ = '\\';
1023
0
            *t++ = *s;
1024
0
          }
1025
0
          break;
1026
        /* UTF-8 codepoint escape, format: /\\u\{\x+\}/ */
1027
0
        case 'u':
1028
0
          {
1029
            /* cache where we started so we can parse after validating */
1030
0
            char *start = s + 1;
1031
0
            size_t len = 0;
1032
0
            bool valid = 1;
1033
0
            unsigned long codepoint;
1034
1035
0
            if (*start != '{') {
1036
              /* we silently let this pass to avoid breaking code
1037
               * with JSON in string literals (e.g. "\"\u202e\""
1038
               */
1039
0
              *t++ = '\\';
1040
0
              *t++ = 'u';
1041
0
              break;
1042
0
            } else {
1043
              /* on the other hand, invalid \u{blah} errors */
1044
0
              s++;
1045
0
              len++;
1046
0
              s++;
1047
0
              while (*s != '}') {
1048
0
                if (!ZEND_IS_HEX(*s)) {
1049
0
                  valid = 0;
1050
0
                  break;
1051
0
                } else {
1052
0
                  len++;
1053
0
                }
1054
0
                s++;
1055
0
              }
1056
0
              if (*s == '}') {
1057
0
                valid = 1;
1058
0
                len++;
1059
0
              }
1060
0
            }
1061
1062
            /* \u{} is invalid */
1063
0
            if (len <= 2) {
1064
0
              valid = 0;
1065
0
            }
1066
1067
0
            if (!valid) {
1068
0
              zend_throw_exception(zend_ce_parse_error,
1069
0
                "Invalid UTF-8 codepoint escape sequence", 0);
1070
0
              zval_ptr_dtor(zendlval);
1071
0
              ZVAL_UNDEF(zendlval);
1072
0
              return FAILURE;
1073
0
            }
1074
1075
0
            errno = 0;
1076
0
            codepoint = strtoul(start + 1, NULL, 16);
1077
1078
            /* per RFC 3629, UTF-8 can only represent 21 bits */
1079
0
            if (codepoint > 0x10FFFF || errno) {
1080
0
              zend_throw_exception(zend_ce_parse_error,
1081
0
                "Invalid UTF-8 codepoint escape sequence: Codepoint too large", 0);
1082
0
              zval_ptr_dtor(zendlval);
1083
0
              ZVAL_UNDEF(zendlval);
1084
0
              return FAILURE;
1085
0
            }
1086
1087
            /* based on https://en.wikipedia.org/wiki/UTF-8#Sample_code */
1088
0
            if (codepoint < 0x80) {
1089
0
              *t++ = codepoint;
1090
0
            } else if (codepoint <= 0x7FF) {
1091
0
              *t++ = (codepoint >> 6) + 0xC0;
1092
0
              *t++ = (codepoint & 0x3F) + 0x80;
1093
0
            } else if (codepoint <= 0xFFFF) {
1094
0
              *t++ = (codepoint >> 12) + 0xE0;
1095
0
              *t++ = ((codepoint >> 6) & 0x3F) + 0x80;
1096
0
              *t++ = (codepoint & 0x3F) + 0x80;
1097
0
            } else if (codepoint <= 0x10FFFF) {
1098
0
              *t++ = (codepoint >> 18) + 0xF0;
1099
0
              *t++ = ((codepoint >> 12) & 0x3F) + 0x80;
1100
0
              *t++ = ((codepoint >> 6) & 0x3F) + 0x80;
1101
0
              *t++ = (codepoint & 0x3F) + 0x80;
1102
0
            }
1103
0
          }
1104
0
          break;
1105
0
        default:
1106
          /* check for an octal */
1107
0
          if (ZEND_IS_OCT(*s)) {
1108
0
            char octal_buf[4] = { 0, 0, 0, 0 };
1109
1110
0
            octal_buf[0] = *s;
1111
0
            if (ZEND_IS_OCT(*(s+1))) {
1112
0
              octal_buf[1] = *(++s);
1113
0
              if (ZEND_IS_OCT(*(s+1))) {
1114
0
                octal_buf[2] = *(++s);
1115
0
              }
1116
0
            }
1117
0
            if (octal_buf[2] && (octal_buf[0] > '3') && !SCNG(heredoc_scan_ahead)) {
1118
              /* 3 octit values must not overflow 0xFF (\377) */
1119
0
              zend_error(E_COMPILE_WARNING, "Octal escape sequence overflow \\%s is greater than \\377", octal_buf);
1120
0
            }
1121
1122
0
            *t++ = (char) ZEND_STRTOL(octal_buf, NULL, 8);
1123
0
          } else {
1124
0
            *t++ = '\\';
1125
0
            *t++ = *s;
1126
0
          }
1127
0
          break;
1128
0
      }
1129
0
    } else {
1130
0
      *t++ = *s;
1131
0
    }
1132
1133
0
    if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
1134
0
      CG(zend_lineno)++;
1135
0
    }
1136
0
    s++;
1137
0
  }
1138
0
  *t = 0;
1139
0
  Z_STRLEN_P(zendlval) = t - Z_STRVAL_P(zendlval);
1140
1141
0
skip_escape_conversion:
1142
0
  if (SCNG(output_filter)) {
1143
0
    size_t sz = 0;
1144
0
    unsigned char *str;
1145
    // TODO: avoid realocation ???
1146
0
    s = Z_STRVAL_P(zendlval);
1147
0
    SCNG(output_filter)(&str, &sz, (unsigned char *)s, Z_STRLEN_P(zendlval));
1148
0
    zval_ptr_dtor(zendlval);
1149
0
    ZVAL_STRINGL(zendlval, (char *) str, sz);
1150
0
    efree(str);
1151
0
  }
1152
0
  return SUCCESS;
1153
0
}
1154
1155
0
#define HEREDOC_USING_SPACES 1
1156
0
#define HEREDOC_USING_TABS 2
1157
1158
0
static const char *next_newline(const char *str, const char *end, size_t *newline_len) {
1159
0
  for (; str < end; str++) {
1160
0
    if (*str == '\r') {
1161
0
      *newline_len = str + 1 < end && *(str + 1) == '\n' ? 2 : 1;
1162
0
      return str;
1163
0
    } else if (*str == '\n') {
1164
0
      *newline_len = 1;
1165
0
      return str;
1166
0
    }
1167
0
  }
1168
0
  *newline_len = 0;
1169
0
  return NULL;
1170
0
}
1171
1172
static bool strip_multiline_string_indentation(
1173
  zval *zendlval, int indentation, bool using_spaces,
1174
  bool newline_at_start, bool newline_at_end)
1175
0
{
1176
0
  const char *str = Z_STRVAL_P(zendlval), *end = str + Z_STRLEN_P(zendlval);
1177
0
  char *copy = Z_STRVAL_P(zendlval);
1178
1179
0
  uint32_t newline_count = 0;
1180
0
  size_t newline_len;
1181
0
  const char *nl;
1182
1183
0
  if (!newline_at_start) {
1184
0
    nl = next_newline(str, end, &newline_len);
1185
0
    if (!nl) {
1186
0
      return 1;
1187
0
    }
1188
1189
0
    str = nl + newline_len;
1190
0
    copy = (char *) nl + newline_len;
1191
0
    newline_count++;
1192
0
  } else {
1193
0
    nl = str;
1194
0
  }
1195
1196
  /* <= intentional */
1197
0
  while (str <= end && nl) {
1198
0
    size_t skip;
1199
0
    nl = next_newline(str, end, &newline_len);
1200
0
    if (!nl && newline_at_end) {
1201
0
      nl = end;
1202
0
    }
1203
1204
    /* Try to skip indentation */
1205
0
    for (skip = 0; skip < indentation; skip++, str++) {
1206
0
      if (str == nl) {
1207
        /* Don't require full indentation on whitespace-only lines */
1208
0
        break;
1209
0
      }
1210
1211
0
      if (str == end || (*str != ' ' && *str != '\t')) {
1212
0
        CG(zend_lineno) += newline_count;
1213
0
        zend_throw_exception_ex(zend_ce_parse_error, 0,
1214
0
          "Invalid body indentation level (expecting an indentation level of at least %d)", indentation);
1215
0
        goto error;
1216
0
      }
1217
1218
0
      if ((!using_spaces && *str == ' ') || (using_spaces && *str == '\t')) {
1219
0
        CG(zend_lineno) += newline_count;
1220
0
        zend_throw_exception(zend_ce_parse_error,
1221
0
          "Invalid indentation - tabs and spaces cannot be mixed", 0);
1222
0
        goto error;
1223
0
      }
1224
0
    }
1225
1226
0
    if (str == end) {
1227
0
      break;
1228
0
    }
1229
1230
0
    size_t len = nl ? (nl - str + newline_len) : (end - str);
1231
0
    memmove(copy, str, len);
1232
0
    str += len;
1233
0
    copy += len;
1234
0
    newline_count++;
1235
0
  }
1236
1237
0
  *copy = '\0';
1238
0
  Z_STRLEN_P(zendlval) = copy - Z_STRVAL_P(zendlval);
1239
0
  return 1;
1240
1241
0
error:
1242
0
  zval_ptr_dtor_str(zendlval);
1243
0
  ZVAL_UNDEF(zendlval);
1244
1245
0
  return 0;
1246
0
}
1247
1248
static void copy_heredoc_label_stack(void *void_heredoc_label)
1249
0
{
1250
0
  zend_heredoc_label *heredoc_label = void_heredoc_label;
1251
0
  zend_heredoc_label *new_heredoc_label = emalloc(sizeof(zend_heredoc_label));
1252
1253
0
  *new_heredoc_label = *heredoc_label;
1254
0
  new_heredoc_label->label = estrndup(heredoc_label->label, heredoc_label->length);
1255
1256
0
  zend_ptr_stack_push(&SCNG(heredoc_label_stack), (void *) new_heredoc_label);
1257
0
}
1258
1259
/* Check that { }, [ ], ( ) are nested correctly */
1260
static void report_bad_nesting(char opening, uint32_t opening_lineno, char closing)
1261
0
{
1262
0
  char   buf[256];
1263
0
  size_t used = 0;
1264
1265
0
  used = snprintf(buf, sizeof(buf), "Unclosed '%c'", opening);
1266
1267
0
  if (opening_lineno != CG(zend_lineno)) {
1268
0
    used += snprintf(buf + used, sizeof(buf) - used, " on line %d", opening_lineno);
1269
0
  }
1270
1271
0
  if (closing) {   /* 'closing' will be 0 if at end of file */
1272
0
    used += snprintf(buf + used, sizeof(buf) - used, " does not match '%c'", closing);
1273
0
  }
1274
1275
0
  zend_throw_exception(zend_ce_parse_error, buf, 0);
1276
0
}
1277
1278
static void enter_nesting(char opening)
1279
0
{
1280
0
  zend_nest_location nest_loc = {opening, CG(zend_lineno)};
1281
0
  zend_stack_push(&SCNG(nest_location_stack), &nest_loc);
1282
0
}
1283
1284
static zend_result exit_nesting(char closing)
1285
0
{
1286
0
  if (zend_stack_is_empty(&SCNG(nest_location_stack))) {
1287
0
    zend_throw_exception_ex(zend_ce_parse_error, 0, "Unmatched '%c'", closing);
1288
0
    return FAILURE;
1289
0
  }
1290
1291
0
  zend_nest_location *nest_loc = zend_stack_top(&SCNG(nest_location_stack));
1292
0
  char opening = nest_loc->text;
1293
1294
0
  if ((opening == '{' && closing != '}') ||
1295
0
      (opening == '[' && closing != ']') ||
1296
0
      (opening == '(' && closing != ')')) {
1297
0
    report_bad_nesting(opening, nest_loc->lineno, closing);
1298
0
    return FAILURE;
1299
0
  }
1300
1301
0
  zend_stack_del_top(&SCNG(nest_location_stack));
1302
0
  return SUCCESS;
1303
0
}
1304
1305
static zend_result check_nesting_at_end(void)
1306
0
{
1307
0
  if (!zend_stack_is_empty(&SCNG(nest_location_stack))) {
1308
0
    zend_nest_location *nest_loc = zend_stack_top(&SCNG(nest_location_stack));
1309
0
    report_bad_nesting(nest_loc->text, nest_loc->lineno, 0);
1310
0
    return FAILURE;
1311
0
  }
1312
1313
0
  return SUCCESS;
1314
0
}
1315
1316
#define PARSER_MODE() \
1317
0
  EXPECTED(elem != NULL)
1318
1319
0
#define RETURN_TOKEN(_token) do { \
1320
0
    token = _token; \
1321
0
    goto emit_token; \
1322
0
  } while (0)
1323
1324
0
#define RETURN_TOKEN_WITH_VAL(_token) do { \
1325
0
    token = _token; \
1326
0
    goto emit_token_with_val; \
1327
0
  } while (0)
1328
1329
0
#define RETURN_TOKEN_WITH_STR(_token, _offset) do { \
1330
0
    token = _token; \
1331
0
    offset = _offset; \
1332
0
    goto emit_token_with_str; \
1333
0
  } while (0)
1334
1335
0
#define RETURN_TOKEN_WITH_IDENT(_token) do { \
1336
0
    token = _token; \
1337
0
    goto emit_token_with_ident; \
1338
0
  } while (0)
1339
1340
0
#define RETURN_OR_SKIP_TOKEN(_token) do { \
1341
0
    token = _token; \
1342
0
    if (PARSER_MODE()) { \
1343
0
      goto skip_token; \
1344
0
    } \
1345
0
    goto emit_token; \
1346
0
  } while (0)
1347
1348
0
#define RETURN_EXIT_NESTING_TOKEN(_token) do { \
1349
0
    if (exit_nesting(_token) != SUCCESS && PARSER_MODE()) { \
1350
0
      RETURN_TOKEN(T_ERROR); \
1351
0
    } else { \
1352
0
      RETURN_TOKEN(_token); \
1353
0
    } \
1354
0
  } while(0)
1355
1356
0
#define RETURN_END_TOKEN do { \
1357
0
    if (check_nesting_at_end() != SUCCESS && PARSER_MODE()) { \
1358
0
      RETURN_TOKEN(T_ERROR); \
1359
0
    } else { \
1360
0
      RETURN_TOKEN(END); \
1361
0
    } \
1362
0
  } while (0)
1363
1364
int ZEND_FASTCALL lex_scan(zval *zendlval, zend_parser_stack_elem *elem)
1365
0
{
1366
0
int token;
1367
0
int offset;
1368
0
uint32_t start_line = CG(zend_lineno);
1369
1370
0
  ZVAL_UNDEF(zendlval);
1371
0
restart:
1372
0
  SCNG(yy_text) = YYCURSOR;
1373
1374
1375
0
#line 1376 "Zend/zend_language_scanner.c"
1376
0
{
1377
0
  YYCTYPE yych;
1378
0
  unsigned int yyaccept = 0;
1379
0
  if (YYGETCONDITION() < 5) {
1380
0
    if (YYGETCONDITION() < 2) {
1381
0
      if (YYGETCONDITION() < 1) {
1382
0
        goto yyc_ST_IN_SCRIPTING;
1383
0
      } else {
1384
0
        goto yyc_ST_LOOKING_FOR_PROPERTY;
1385
0
      }
1386
0
    } else {
1387
0
      if (YYGETCONDITION() < 3) {
1388
0
        goto yyc_ST_BACKQUOTE;
1389
0
      } else {
1390
0
        if (YYGETCONDITION() < 4) {
1391
0
          goto yyc_ST_DOUBLE_QUOTES;
1392
0
        } else {
1393
0
          goto yyc_ST_HEREDOC;
1394
0
        }
1395
0
      }
1396
0
    }
1397
0
  } else {
1398
0
    if (YYGETCONDITION() < 8) {
1399
0
      if (YYGETCONDITION() < 6) {
1400
0
        goto yyc_ST_LOOKING_FOR_VARNAME;
1401
0
      } else {
1402
0
        if (YYGETCONDITION() < 7) {
1403
0
          goto yyc_ST_VAR_OFFSET;
1404
0
        } else {
1405
0
          goto yyc_SHEBANG;
1406
0
        }
1407
0
      }
1408
0
    } else {
1409
0
      if (YYGETCONDITION() < 9) {
1410
0
        goto yyc_INITIAL;
1411
0
      } else {
1412
0
        if (YYGETCONDITION() < 10) {
1413
0
          goto yyc_ST_END_HEREDOC;
1414
0
        } else {
1415
0
          goto yyc_ST_NOWDOC;
1416
0
        }
1417
0
      }
1418
0
    }
1419
0
  }
1420
/* *********************************** */
1421
0
yyc_ST_IN_SCRIPTING:
1422
0
  {
1423
0
    static const unsigned char yybm[] = {
1424
      /* table 1 .. 8: 0 */
1425
0
        0, 134, 134, 134, 134, 134, 134, 134, 
1426
0
      134, 135,   4, 134, 134,   4, 134, 134, 
1427
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1428
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1429
0
      135, 134, 134, 134, 134, 134, 134, 134, 
1430
0
      134, 134,  66, 134, 134, 134, 134, 134, 
1431
0
      190, 190, 182, 182, 182, 182, 182, 182, 
1432
0
      166, 166, 134, 134, 134, 134, 134, 134, 
1433
0
      134, 166, 166, 166, 166, 166, 166, 134, 
1434
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1435
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1436
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1437
0
      134, 166, 166, 166, 166, 166, 166, 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
0
      134, 134, 134, 134, 134, 134, 134, 134, 
1457
      /* table 9 .. 11: 256 */
1458
0
        0,   0,   0,   0,   0,   0,   0,   0, 
1459
0
        0,  32,  32,   0,   0,  32,   0,   0, 
1460
0
        0,   0,   0,   0,   0,   0,   0,   0, 
1461
0
        0,   0,   0,   0,   0,   0,   0,   0, 
1462
0
       32,   0,   0,   0,   0,   0,   0,   0, 
1463
0
        0,   0,   0,   0,   0,   0,   0,   0, 
1464
0
      192, 192, 192, 192, 192, 192, 192, 192, 
1465
0
      192, 192,   0,   0,   0,   0,   0,   0, 
1466
0
        0, 128, 128, 128, 128, 128, 128, 128, 
1467
0
      128, 128, 128, 128, 128, 128, 128, 128, 
1468
0
      128, 128, 128, 128, 128, 128, 128, 128, 
1469
0
      128, 128, 128,   0,   0,   0,   0, 128, 
1470
0
        0, 128, 128, 128, 128, 128, 128, 128, 
1471
0
      128, 128, 128, 128, 128, 128, 128, 128, 
1472
0
      128, 128, 128, 128, 128, 128, 128, 128, 
1473
0
      128, 128, 128,   0,   0,   0,   0,   0, 
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
      128, 128, 128, 128, 128, 128, 128, 128, 
1490
0
    };
1491
0
    YYDEBUG(1, *YYCURSOR);
1492
0
    YYFILL(16);
1493
0
    yych = *YYCURSOR;
1494
0
    if (yybm[256+yych] & 32) {
1495
0
      goto yy5;
1496
0
    }
1497
0
    switch (yych) {
1498
0
    case 0x00:
1499
0
    case 0x01:
1500
0
    case 0x02:
1501
0
    case 0x03:
1502
0
    case 0x04:
1503
0
    case 0x05:
1504
0
    case 0x06:
1505
0
    case 0x07:
1506
0
    case 0x08:
1507
0
    case '\t':
1508
0
    case '\n':
1509
0
    case '\v':
1510
0
    case '\f':
1511
0
    case '\r':
1512
0
    case 0x0E:
1513
0
    case 0x0F:
1514
0
    case 0x10:
1515
0
    case 0x11:
1516
0
    case 0x12:
1517
0
    case 0x13:
1518
0
    case 0x14:
1519
0
    case 0x15:
1520
0
    case 0x16:
1521
0
    case 0x17:
1522
0
    case 0x18:
1523
0
    case 0x19:
1524
0
    case 0x1A:
1525
0
    case 0x1B:
1526
0
    case 0x1C:
1527
0
    case 0x1D:
1528
0
    case 0x1E:
1529
0
    case 0x1F:
1530
0
    case 0x7F:  goto yy3;
1531
0
    case ' ':
1532
0
    case '!': goto yy8;
1533
0
    case '"': goto yy10;
1534
0
    case '#': goto yy12;
1535
0
    case '$': goto yy14;
1536
0
    case '%': goto yy15;
1537
0
    case '&': goto yy16;
1538
0
    case '\'':  goto yy18;
1539
0
    case '(': goto yy20;
1540
0
    case ')':
1541
0
    case ']': goto yy22;
1542
0
    case '*': goto yy24;
1543
0
    case '+': goto yy25;
1544
0
    case ',':
1545
0
    case ';':
1546
0
    case '@':
1547
0
    case '~': goto yy26;
1548
0
    case '-': goto yy27;
1549
0
    case '.': goto yy28;
1550
0
    case '/': goto yy29;
1551
0
    case '0': goto yy30;
1552
0
    case '1':
1553
0
    case '2':
1554
0
    case '3':
1555
0
    case '4':
1556
0
    case '5':
1557
0
    case '6':
1558
0
    case '7':
1559
0
    case '8':
1560
0
    case '9': goto yy32;
1561
0
    case ':': goto yy34;
1562
0
    case '<': goto yy35;
1563
0
    case '=': goto yy36;
1564
0
    case '>': goto yy37;
1565
0
    case '?': goto yy38;
1566
0
    case 'A':
1567
0
    case 'a': goto yy39;
1568
0
    case 'B':
1569
0
    case 'b': goto yy41;
1570
0
    case 'C':
1571
0
    case 'c': goto yy42;
1572
0
    case 'D':
1573
0
    case 'd': goto yy43;
1574
0
    case 'E':
1575
0
    case 'e': goto yy44;
1576
0
    case 'F':
1577
0
    case 'f': goto yy45;
1578
0
    case 'G':
1579
0
    case 'g': goto yy46;
1580
0
    case 'I':
1581
0
    case 'i': goto yy49;
1582
0
    case 'L':
1583
0
    case 'l': goto yy50;
1584
0
    case 'M':
1585
0
    case 'm': goto yy51;
1586
0
    case 'N':
1587
0
    case 'n': goto yy52;
1588
0
    case 'O':
1589
0
    case 'o': goto yy53;
1590
0
    case 'P':
1591
0
    case 'p': goto yy54;
1592
0
    case 'R':
1593
0
    case 'r': goto yy55;
1594
0
    case 'S':
1595
0
    case 's': goto yy56;
1596
0
    case 'T':
1597
0
    case 't': goto yy57;
1598
0
    case 'U':
1599
0
    case 'u': goto yy58;
1600
0
    case 'V':
1601
0
    case 'v': goto yy59;
1602
0
    case 'W':
1603
0
    case 'w': goto yy60;
1604
0
    case 'X':
1605
0
    case 'x': goto yy61;
1606
0
    case 'Y':
1607
0
    case 'y': goto yy62;
1608
0
    case '[': goto yy63;
1609
0
    case '\\':  goto yy64;
1610
0
    case '^': goto yy66;
1611
0
    case '_': goto yy67;
1612
0
    case '`': goto yy68;
1613
0
    case '{': goto yy70;
1614
0
    case '|': goto yy72;
1615
0
    case '}': goto yy73;
1616
0
    default:  goto yy47;
1617
0
    }
1618
0
yy3:
1619
0
    YYDEBUG(3, *YYCURSOR);
1620
0
    ++YYCURSOR;
1621
0
    YYDEBUG(4, *YYCURSOR);
1622
0
    yyleng = YYCURSOR - SCNG(yy_text);
1623
0
#line 3179 "Zend/zend_language_scanner.l"
1624
0
    {
1625
0
  if (YYCURSOR > YYLIMIT) {
1626
0
    RETURN_END_TOKEN;
1627
0
  }
1628
1629
0
  RETURN_TOKEN(T_BAD_CHARACTER);
1630
0
}
1631
0
#line 1632 "Zend/zend_language_scanner.c"
1632
0
yy5:
1633
0
    YYDEBUG(5, *YYCURSOR);
1634
0
    ++YYCURSOR;
1635
0
    YYFILL(1);
1636
0
    yych = *YYCURSOR;
1637
0
    YYDEBUG(6, *YYCURSOR);
1638
0
    if (yybm[256+yych] & 32) {
1639
0
      goto yy5;
1640
0
    }
1641
0
    YYDEBUG(7, *YYCURSOR);
1642
0
    yyleng = YYCURSOR - SCNG(yy_text);
1643
0
#line 1597 "Zend/zend_language_scanner.l"
1644
0
    {
1645
0
  goto return_whitespace;
1646
0
}
1647
0
#line 1648 "Zend/zend_language_scanner.c"
1648
0
yy8:
1649
0
    YYDEBUG(8, *YYCURSOR);
1650
0
    yych = *++YYCURSOR;
1651
0
    if (yych == '=') goto yy75;
1652
0
yy9:
1653
0
    YYDEBUG(9, *YYCURSOR);
1654
0
    yyleng = YYCURSOR - SCNG(yy_text);
1655
0
#line 1969 "Zend/zend_language_scanner.l"
1656
0
    {
1657
0
  RETURN_TOKEN(yytext[0]);
1658
0
}
1659
0
#line 1660 "Zend/zend_language_scanner.c"
1660
0
yy10:
1661
0
    YYDEBUG(10, *YYCURSOR);
1662
0
    ++YYCURSOR;
1663
0
    YYDEBUG(11, *YYCURSOR);
1664
0
    yyleng = YYCURSOR - SCNG(yy_text);
1665
0
#line 2632 "Zend/zend_language_scanner.l"
1666
0
    {
1667
0
  int bprefix = (yytext[0] != '"') ? 1 : 0;
1668
1669
0
  while (YYCURSOR < YYLIMIT) {
1670
0
    switch (*YYCURSOR++) {
1671
0
      case '"':
1672
0
        yyleng = YYCURSOR - SCNG(yy_text);
1673
0
        if (EXPECTED(zend_scan_escape_string(zendlval, yytext+bprefix+1, yyleng-bprefix-2, '"') == SUCCESS)
1674
0
         || !PARSER_MODE()) {
1675
0
          RETURN_TOKEN_WITH_VAL(T_CONSTANT_ENCAPSED_STRING);
1676
0
        } else {
1677
0
          RETURN_TOKEN(T_ERROR);
1678
0
        }
1679
0
      case '$':
1680
0
        if (IS_LABEL_START(*YYCURSOR) || *YYCURSOR == '{') {
1681
0
          break;
1682
0
        }
1683
0
        continue;
1684
0
      case '{':
1685
0
        if (*YYCURSOR == '$') {
1686
0
          break;
1687
0
        }
1688
0
        continue;
1689
0
      case '\\':
1690
0
        if (YYCURSOR < YYLIMIT) {
1691
0
          YYCURSOR++;
1692
0
        }
1693
0
        ZEND_FALLTHROUGH;
1694
0
      default:
1695
0
        continue;
1696
0
    }
1697
1698
0
    YYCURSOR--;
1699
0
    break;
1700
0
  }
1701
1702
  /* Remember how much was scanned to save rescanning */
1703
0
  SET_DOUBLE_QUOTES_SCANNED_LENGTH(YYCURSOR - SCNG(yy_text) - yyleng);
1704
1705
0
  YYCURSOR = SCNG(yy_text) + yyleng;
1706
1707
0
  BEGIN(ST_DOUBLE_QUOTES);
1708
0
  RETURN_TOKEN('"');
1709
0
}
1710
0
#line 1711 "Zend/zend_language_scanner.c"
1711
0
yy12:
1712
0
    YYDEBUG(12, *YYCURSOR);
1713
0
    yych = *++YYCURSOR;
1714
0
    if (yych == '[') goto yy77;
1715
0
yy13:
1716
0
    YYDEBUG(13, *YYCURSOR);
1717
0
    yyleng = YYCURSOR - SCNG(yy_text);
1718
0
#line 2460 "Zend/zend_language_scanner.l"
1719
0
    {
1720
0
  while (YYCURSOR < YYLIMIT) {
1721
0
    switch (*YYCURSOR++) {
1722
0
      case '\r':
1723
0
      case '\n':
1724
0
        YYCURSOR--;
1725
0
        break;
1726
0
      case '?':
1727
0
        if (*YYCURSOR == '>') {
1728
0
          YYCURSOR--;
1729
0
          break;
1730
0
        }
1731
0
        ZEND_FALLTHROUGH;
1732
0
      default:
1733
0
        continue;
1734
0
    }
1735
1736
0
    break;
1737
0
  }
1738
1739
0
  yyleng = YYCURSOR - SCNG(yy_text);
1740
0
  RETURN_OR_SKIP_TOKEN(T_COMMENT);
1741
0
}
1742
0
#line 1743 "Zend/zend_language_scanner.c"
1743
0
yy14:
1744
0
    YYDEBUG(14, *YYCURSOR);
1745
0
    yych = *++YYCURSOR;
1746
0
    if (yych <= '_') {
1747
0
      if (yych <= '@') goto yy9;
1748
0
      if (yych <= 'Z') goto yy79;
1749
0
      if (yych <= '^') goto yy9;
1750
0
      goto yy79;
1751
0
    } else {
1752
0
      if (yych <= '`') goto yy9;
1753
0
      if (yych <= 'z') goto yy79;
1754
0
      if (yych <= 0x7F) goto yy9;
1755
0
      goto yy79;
1756
0
    }
1757
0
yy15:
1758
0
    YYDEBUG(15, *YYCURSOR);
1759
0
    yych = *++YYCURSOR;
1760
0
    if (yych == '=') goto yy82;
1761
0
    goto yy9;
1762
0
yy16:
1763
0
    YYDEBUG(16, *YYCURSOR);
1764
0
    yyaccept = 0;
1765
0
    yych = *(YYMARKER = ++YYCURSOR);
1766
0
    if (yych <= '"') {
1767
0
      if (yych <= '\f') {
1768
0
        if (yych <= 0x08) goto yy17;
1769
0
        if (yych <= '\n') goto yy85;
1770
0
      } else {
1771
0
        if (yych <= '\r') goto yy85;
1772
0
        if (yych == ' ') goto yy85;
1773
0
      }
1774
0
    } else {
1775
0
      if (yych <= '-') {
1776
0
        if (yych <= '$') goto yy85;
1777
0
        if (yych == '&') goto yy90;
1778
0
      } else {
1779
0
        if (yych <= '/') goto yy85;
1780
0
        if (yych == '=') goto yy94;
1781
0
      }
1782
0
    }
1783
0
yy17:
1784
0
    YYDEBUG(17, *YYCURSOR);
1785
0
    yyleng = YYCURSOR - SCNG(yy_text);
1786
0
#line 1955 "Zend/zend_language_scanner.l"
1787
0
    {
1788
0
  RETURN_TOKEN(T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG);
1789
0
}
1790
0
#line 1791 "Zend/zend_language_scanner.c"
1791
0
yy18:
1792
0
    YYDEBUG(18, *YYCURSOR);
1793
0
    ++YYCURSOR;
1794
0
    YYDEBUG(19, *YYCURSOR);
1795
0
    yyleng = YYCURSOR - SCNG(yy_text);
1796
0
#line 2538 "Zend/zend_language_scanner.l"
1797
0
    {
1798
0
  char *s, *t;
1799
0
  char *end;
1800
0
  int bprefix = (yytext[0] != '\'') ? 1 : 0;
1801
1802
0
  while (1) {
1803
0
    if (YYCURSOR < YYLIMIT) {
1804
0
      if (*YYCURSOR == '\'') {
1805
0
        YYCURSOR++;
1806
0
        yyleng = YYCURSOR - SCNG(yy_text);
1807
1808
0
        break;
1809
0
      } else if (*YYCURSOR++ == '\\' && YYCURSOR < YYLIMIT) {
1810
0
        YYCURSOR++;
1811
0
      }
1812
0
    } else {
1813
0
      yyleng = YYLIMIT - SCNG(yy_text);
1814
1815
      /* Unclosed single quotes; treat similar to double quotes, but without a separate token
1816
       * for ' (unrecognized by parser), instead of old flex fallback to "Unexpected character..."
1817
       * rule, which continued in ST_IN_SCRIPTING state after the quote */
1818
0
      ZVAL_NULL(zendlval);
1819
0
      RETURN_TOKEN_WITH_VAL(T_ENCAPSED_AND_WHITESPACE);
1820
0
    }
1821
0
  }
1822
1823
0
  if (yyleng-bprefix-2 <= 1) {
1824
0
    if (yyleng-bprefix-2 < 1) {
1825
0
      ZVAL_EMPTY_STRING(zendlval);
1826
0
    } else {
1827
0
      zend_uchar c = (zend_uchar)*(yytext+bprefix+1);
1828
0
      HANDLE_NEWLINE(c);
1829
0
      ZVAL_INTERNED_STR(zendlval, ZSTR_CHAR(c));
1830
0
    }
1831
0
    goto skip_escape_conversion;
1832
0
  }
1833
0
  ZVAL_STRINGL(zendlval, yytext+bprefix+1, yyleng-bprefix-2);
1834
1835
  /* convert escape sequences */
1836
0
  s = Z_STRVAL_P(zendlval);
1837
0
  end = s+Z_STRLEN_P(zendlval);
1838
0
  while (1) {
1839
0
    if (UNEXPECTED(*s=='\\')) {
1840
0
      break;
1841
0
    }
1842
0
    if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
1843
0
      CG(zend_lineno)++;
1844
0
    }
1845
0
    s++;
1846
0
    if (s == end) {
1847
0
      goto skip_escape_conversion;
1848
0
    }
1849
0
  }
1850
1851
0
  t = s;
1852
0
  while (s<end) {
1853
0
    if (*s=='\\') {
1854
0
      s++;
1855
0
      if (*s == '\\' || *s == '\'') {
1856
0
        *t++ = *s;
1857
0
      } else {
1858
0
        *t++ = '\\';
1859
0
        *t++ = *s;
1860
0
      }
1861
0
    } else {
1862
0
      *t++ = *s;
1863
0
    }
1864
0
    if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
1865
0
      CG(zend_lineno)++;
1866
0
    }
1867
0
    s++;
1868
0
  }
1869
0
  *t = 0;
1870
0
  Z_STRLEN_P(zendlval) = t - Z_STRVAL_P(zendlval);
1871
1872
0
skip_escape_conversion:
1873
0
  if (SCNG(output_filter)) {
1874
0
    size_t sz = 0;
1875
0
    char *str = NULL;
1876
0
    zend_string *new_str;
1877
0
    s = Z_STRVAL_P(zendlval);
1878
    // TODO: avoid reallocation ???
1879
0
    SCNG(output_filter)((unsigned char **)&str, &sz, (unsigned char *)s, Z_STRLEN_P(zendlval));
1880
0
    new_str = zend_string_init(str, sz, 0);
1881
0
    if (str != s) {
1882
0
      efree(str);
1883
0
    }
1884
0
    zend_string_release_ex(Z_STR_P(zendlval), 0);
1885
0
    ZVAL_STR(zendlval, new_str);
1886
0
  }
1887
0
  RETURN_TOKEN_WITH_VAL(T_CONSTANT_ENCAPSED_STRING);
1888
0
}
1889
0
#line 1890 "Zend/zend_language_scanner.c"
1890
0
yy20:
1891
0
    YYDEBUG(20, *YYCURSOR);
1892
0
    yyaccept = 1;
1893
0
    yych = *(YYMARKER = ++YYCURSOR);
1894
0
    if (yych <= 'S') {
1895
0
      if (yych <= 'D') {
1896
0
        if (yych <= ' ') {
1897
0
          if (yych == '\t') goto yy97;
1898
0
          if (yych >= ' ') goto yy97;
1899
0
        } else {
1900
0
          if (yych <= '@') goto yy21;
1901
0
          if (yych != 'C') goto yy97;
1902
0
        }
1903
0
      } else {
1904
0
        if (yych <= 'I') {
1905
0
          if (yych == 'F') goto yy97;
1906
0
          if (yych >= 'I') goto yy97;
1907
0
        } else {
1908
0
          if (yych == 'O') goto yy97;
1909
0
          if (yych >= 'R') goto yy97;
1910
0
        }
1911
0
      }
1912
0
    } else {
1913
0
      if (yych <= 'f') {
1914
0
        if (yych <= 'b') {
1915
0
          if (yych <= 'T') goto yy21;
1916
0
          if (yych <= 'V') goto yy97;
1917
0
          if (yych >= 'a') goto yy97;
1918
0
        } else {
1919
0
          if (yych == 'd') goto yy97;
1920
0
          if (yych >= 'f') goto yy97;
1921
0
        }
1922
0
      } else {
1923
0
        if (yych <= 'o') {
1924
0
          if (yych == 'i') goto yy97;
1925
0
          if (yych >= 'o') goto yy97;
1926
0
        } else {
1927
0
          if (yych <= 's') {
1928
0
            if (yych >= 'r') goto yy97;
1929
0
          } else {
1930
0
            if (yych <= 't') goto yy21;
1931
0
            if (yych <= 'v') goto yy97;
1932
0
          }
1933
0
        }
1934
0
      }
1935
0
    }
1936
0
yy21:
1937
0
    YYDEBUG(21, *YYCURSOR);
1938
0
    yyleng = YYCURSOR - SCNG(yy_text);
1939
0
#line 1964 "Zend/zend_language_scanner.l"
1940
0
    {
1941
0
  enter_nesting(yytext[0]);
1942
0
  RETURN_TOKEN(yytext[0]);
1943
0
}
1944
0
#line 1945 "Zend/zend_language_scanner.c"
1945
0
yy22:
1946
0
    YYDEBUG(22, *YYCURSOR);
1947
0
    ++YYCURSOR;
1948
0
    YYDEBUG(23, *YYCURSOR);
1949
0
    yyleng = YYCURSOR - SCNG(yy_text);
1950
0
#line 1959 "Zend/zend_language_scanner.l"
1951
0
    {
1952
  /* Check that ] and ) match up properly with a preceding [ or ( */
1953
0
  RETURN_EXIT_NESTING_TOKEN(yytext[0]);
1954
0
}
1955
0
#line 1956 "Zend/zend_language_scanner.c"
1956
0
yy24:
1957
0
    YYDEBUG(24, *YYCURSOR);
1958
0
    yych = *++YYCURSOR;
1959
0
    if (yych == '*') goto yy108;
1960
0
    if (yych == '=') goto yy110;
1961
0
    goto yy9;
1962
0
yy25:
1963
0
    YYDEBUG(25, *YYCURSOR);
1964
0
    yych = *++YYCURSOR;
1965
0
    if (yych == '+') goto yy112;
1966
0
    if (yych == '=') goto yy114;
1967
0
    goto yy9;
1968
0
yy26:
1969
0
    YYDEBUG(26, *YYCURSOR);
1970
0
    ++YYCURSOR;
1971
0
    goto yy9;
1972
0
yy27:
1973
0
    YYDEBUG(27, *YYCURSOR);
1974
0
    yych = *++YYCURSOR;
1975
0
    if (yych <= '<') {
1976
0
      if (yych == '-') goto yy116;
1977
0
      goto yy9;
1978
0
    } else {
1979
0
      if (yych <= '=') goto yy118;
1980
0
      if (yych <= '>') goto yy120;
1981
0
      goto yy9;
1982
0
    }
1983
0
yy28:
1984
0
    YYDEBUG(28, *YYCURSOR);
1985
0
    yyaccept = 2;
1986
0
    yych = *(YYMARKER = ++YYCURSOR);
1987
0
    if (yych <= '/') {
1988
0
      if (yych == '.') goto yy122;
1989
0
      goto yy9;
1990
0
    } else {
1991
0
      if (yych <= '9') goto yy123;
1992
0
      if (yych == '=') goto yy126;
1993
0
      goto yy9;
1994
0
    }
1995
0
yy29:
1996
0
    YYDEBUG(29, *YYCURSOR);
1997
0
    yych = *++YYCURSOR;
1998
0
    if (yych <= '.') {
1999
0
      if (yych == '*') goto yy128;
2000
0
      goto yy9;
2001
0
    } else {
2002
0
      if (yych <= '/') goto yy130;
2003
0
      if (yych == '=') goto yy131;
2004
0
      goto yy9;
2005
0
    }
2006
0
yy30:
2007
0
    YYDEBUG(30, *YYCURSOR);
2008
0
    yyaccept = 3;
2009
0
    yych = *(YYMARKER = ++YYCURSOR);
2010
0
    if (yych <= 'X') {
2011
0
      if (yych <= 'N') {
2012
0
        if (yych == 'B') goto yy134;
2013
0
        goto yy33;
2014
0
      } else {
2015
0
        if (yych <= 'O') goto yy136;
2016
0
        if (yych <= 'W') goto yy33;
2017
0
        goto yy137;
2018
0
      }
2019
0
    } else {
2020
0
      if (yych <= 'n') {
2021
0
        if (yych == 'b') goto yy134;
2022
0
        goto yy33;
2023
0
      } else {
2024
0
        if (yych <= 'o') goto yy136;
2025
0
        if (yych == 'x') goto yy137;
2026
0
        goto yy33;
2027
0
      }
2028
0
    }
2029
0
yy31:
2030
0
    YYDEBUG(31, *YYCURSOR);
2031
0
    yyleng = YYCURSOR - SCNG(yy_text);
2032
0
#line 2103 "Zend/zend_language_scanner.l"
2033
0
    {
2034
0
  size_t len = yyleng;
2035
0
  char *end, *lnum = yytext;
2036
0
  bool is_octal = lnum[0] == '0';
2037
0
  bool contains_underscores = (memchr(lnum, '_', len) != NULL);
2038
2039
0
  if (contains_underscores) {
2040
0
    lnum = estrndup(lnum, len);
2041
0
    strip_underscores(lnum, &len);
2042
0
  }
2043
2044
  /* Digits 8 and 9 are illegal in octal literals. */
2045
0
  if (is_octal) {
2046
0
    size_t i;
2047
0
    for (i = 0; i < len; i++) {
2048
0
      if (lnum[i] == '8' || lnum[i] == '9') {
2049
0
        zend_throw_exception(zend_ce_parse_error, "Invalid numeric literal", 0);
2050
0
        if (PARSER_MODE()) {
2051
0
          if (contains_underscores) {
2052
0
            efree(lnum);
2053
0
          }
2054
0
          ZVAL_UNDEF(zendlval);
2055
0
          RETURN_TOKEN(T_ERROR);
2056
0
        }
2057
2058
        /* Continue in order to determine if this is T_LNUMBER or T_DNUMBER. */
2059
0
        len = i;
2060
0
        break;
2061
0
      }
2062
0
    }
2063
0
  }
2064
2065
2066
0
  if (len < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
2067
0
    errno = 0;
2068
    /* base must be passed explicitly for correct parse error on Windows */
2069
0
    ZVAL_LONG(zendlval, ZEND_STRTOL(lnum, &end, is_octal ? 8 : 10));
2070
0
    ZEND_ASSERT(end == lnum + len);
2071
0
  } else {
2072
0
    errno = 0;
2073
0
    ZVAL_LONG(zendlval, ZEND_STRTOL(lnum, &end, 0));
2074
0
    if (errno == ERANGE) { /* Overflow */
2075
0
      errno = 0;
2076
0
      if (is_octal) { /* octal overflow */
2077
0
        ZVAL_DOUBLE(zendlval, zend_oct_strtod(lnum, (const char **)&end));
2078
0
      } else {
2079
0
        ZVAL_DOUBLE(zendlval, zend_strtod(lnum, (const char **)&end));
2080
0
      }
2081
0
      ZEND_ASSERT(end == lnum + len);
2082
0
      if (contains_underscores) {
2083
0
        efree(lnum);
2084
0
      }
2085
0
      RETURN_TOKEN_WITH_VAL(T_DNUMBER);
2086
0
    }
2087
0
    ZEND_ASSERT(end == lnum + len);
2088
0
  }
2089
0
  ZEND_ASSERT(!errno);
2090
0
  if (contains_underscores) {
2091
0
    efree(lnum);
2092
0
  }
2093
0
  RETURN_TOKEN_WITH_VAL(T_LNUMBER);
2094
0
}
2095
0
#line 2096 "Zend/zend_language_scanner.c"
2096
0
yy32:
2097
0
    YYDEBUG(32, *YYCURSOR);
2098
0
    yyaccept = 3;
2099
0
    YYMARKER = ++YYCURSOR;
2100
0
    YYFILL(3);
2101
0
    yych = *YYCURSOR;
2102
0
yy33:
2103
0
    YYDEBUG(33, *YYCURSOR);
2104
0
    if (yybm[256+yych] & 64) {
2105
0
      goto yy32;
2106
0
    }
2107
0
    if (yych <= 'E') {
2108
0
      if (yych == '.') goto yy133;
2109
0
      if (yych <= 'D') goto yy31;
2110
0
      goto yy135;
2111
0
    } else {
2112
0
      if (yych <= '_') {
2113
0
        if (yych <= '^') goto yy31;
2114
0
        goto yy138;
2115
0
      } else {
2116
0
        if (yych == 'e') goto yy135;
2117
0
        goto yy31;
2118
0
      }
2119
0
    }
2120
0
yy34:
2121
0
    YYDEBUG(34, *YYCURSOR);
2122
0
    yych = *++YYCURSOR;
2123
0
    if (yych == ':') goto yy139;
2124
0
    goto yy9;
2125
0
yy35:
2126
0
    YYDEBUG(35, *YYCURSOR);
2127
0
    yych = *++YYCURSOR;
2128
0
    if (yych <= ';') goto yy9;
2129
0
    if (yych <= '<') goto yy141;
2130
0
    if (yych <= '=') goto yy143;
2131
0
    if (yych <= '>') goto yy145;
2132
0
    goto yy9;
2133
0
yy36:
2134
0
    YYDEBUG(36, *YYCURSOR);
2135
0
    yych = *++YYCURSOR;
2136
0
    if (yych <= '<') goto yy9;
2137
0
    if (yych <= '=') goto yy146;
2138
0
    if (yych <= '>') goto yy148;
2139
0
    goto yy9;
2140
0
yy37:
2141
0
    YYDEBUG(37, *YYCURSOR);
2142
0
    yych = *++YYCURSOR;
2143
0
    if (yych <= '<') goto yy9;
2144
0
    if (yych <= '=') goto yy150;
2145
0
    if (yych <= '>') goto yy152;
2146
0
    goto yy9;
2147
0
yy38:
2148
0
    YYDEBUG(38, *YYCURSOR);
2149
0
    yyaccept = 2;
2150
0
    yych = *(YYMARKER = ++YYCURSOR);
2151
0
    if (yych <= '=') {
2152
0
      if (yych == '-') goto yy154;
2153
0
      goto yy9;
2154
0
    } else {
2155
0
      if (yych <= '>') goto yy155;
2156
0
      if (yych <= '?') goto yy157;
2157
0
      goto yy9;
2158
0
    }
2159
0
yy39:
2160
0
    YYDEBUG(39, *YYCURSOR);
2161
0
    yyaccept = 4;
2162
0
    yych = *(YYMARKER = ++YYCURSOR);
2163
0
    if (yych <= 'S') {
2164
0
      if (yych <= 'M') {
2165
0
        if (yych == 'B') goto yy159;
2166
0
        goto yy48;
2167
0
      } else {
2168
0
        if (yych <= 'N') goto yy160;
2169
0
        if (yych <= 'Q') goto yy48;
2170
0
        if (yych <= 'R') goto yy161;
2171
0
        goto yy162;
2172
0
      }
2173
0
    } else {
2174
0
      if (yych <= 'n') {
2175
0
        if (yych == 'b') goto yy159;
2176
0
        if (yych <= 'm') goto yy48;
2177
0
        goto yy160;
2178
0
      } else {
2179
0
        if (yych <= 'q') goto yy48;
2180
0
        if (yych <= 'r') goto yy161;
2181
0
        if (yych <= 's') goto yy162;
2182
0
        goto yy48;
2183
0
      }
2184
0
    }
2185
0
yy40:
2186
0
    YYDEBUG(40, *YYCURSOR);
2187
0
    yyleng = YYCURSOR - SCNG(yy_text);
2188
0
#line 2455 "Zend/zend_language_scanner.l"
2189
0
    {
2190
0
  RETURN_TOKEN_WITH_STR(T_STRING, 0);
2191
0
}
2192
0
#line 2193 "Zend/zend_language_scanner.c"
2193
0
yy41:
2194
0
    YYDEBUG(41, *YYCURSOR);
2195
0
    yyaccept = 4;
2196
0
    yych = *(YYMARKER = ++YYCURSOR);
2197
0
    if (yych <= ';') {
2198
0
      if (yych <= '"') {
2199
0
        if (yych <= '!') goto yy48;
2200
0
        goto yy10;
2201
0
      } else {
2202
0
        if (yych == '\'') goto yy18;
2203
0
        goto yy48;
2204
0
      }
2205
0
    } else {
2206
0
      if (yych <= 'R') {
2207
0
        if (yych <= '<') goto yy165;
2208
0
        if (yych <= 'Q') goto yy48;
2209
0
        goto yy166;
2210
0
      } else {
2211
0
        if (yych == 'r') goto yy166;
2212
0
        goto yy48;
2213
0
      }
2214
0
    }
2215
0
yy42:
2216
0
    YYDEBUG(42, *YYCURSOR);
2217
0
    yyaccept = 4;
2218
0
    yych = *(YYMARKER = ++YYCURSOR);
2219
0
    if (yych <= 'O') {
2220
0
      if (yych <= 'K') {
2221
0
        if (yych == 'A') goto yy167;
2222
0
        goto yy48;
2223
0
      } else {
2224
0
        if (yych <= 'L') goto yy168;
2225
0
        if (yych <= 'N') goto yy48;
2226
0
        goto yy169;
2227
0
      }
2228
0
    } else {
2229
0
      if (yych <= 'k') {
2230
0
        if (yych == 'a') goto yy167;
2231
0
        goto yy48;
2232
0
      } else {
2233
0
        if (yych <= 'l') goto yy168;
2234
0
        if (yych == 'o') goto yy169;
2235
0
        goto yy48;
2236
0
      }
2237
0
    }
2238
0
yy43:
2239
0
    YYDEBUG(43, *YYCURSOR);
2240
0
    yyaccept = 4;
2241
0
    yych = *(YYMARKER = ++YYCURSOR);
2242
0
    if (yych <= 'O') {
2243
0
      if (yych <= 'H') {
2244
0
        if (yych == 'E') goto yy170;
2245
0
        goto yy48;
2246
0
      } else {
2247
0
        if (yych <= 'I') goto yy171;
2248
0
        if (yych <= 'N') goto yy48;
2249
0
        goto yy172;
2250
0
      }
2251
0
    } else {
2252
0
      if (yych <= 'h') {
2253
0
        if (yych == 'e') goto yy170;
2254
0
        goto yy48;
2255
0
      } else {
2256
0
        if (yych <= 'i') goto yy171;
2257
0
        if (yych == 'o') goto yy172;
2258
0
        goto yy48;
2259
0
      }
2260
0
    }
2261
0
yy44:
2262
0
    YYDEBUG(44, *YYCURSOR);
2263
0
    yyaccept = 4;
2264
0
    yych = *(YYMARKER = ++YYCURSOR);
2265
0
    switch (yych) {
2266
0
    case 'C':
2267
0
    case 'c': goto yy174;
2268
0
    case 'L':
2269
0
    case 'l': goto yy175;
2270
0
    case 'M':
2271
0
    case 'm': goto yy176;
2272
0
    case 'N':
2273
0
    case 'n': goto yy177;
2274
0
    case 'V':
2275
0
    case 'v': goto yy178;
2276
0
    case 'X':
2277
0
    case 'x': goto yy179;
2278
0
    default:  goto yy48;
2279
0
    }
2280
0
yy45:
2281
0
    YYDEBUG(45, *YYCURSOR);
2282
0
    yyaccept = 4;
2283
0
    yych = *(YYMARKER = ++YYCURSOR);
2284
0
    if (yych <= 'U') {
2285
0
      if (yych <= 'M') {
2286
0
        if (yych == 'I') goto yy180;
2287
0
        goto yy48;
2288
0
      } else {
2289
0
        if (yych <= 'N') goto yy181;
2290
0
        if (yych <= 'O') goto yy183;
2291
0
        if (yych <= 'T') goto yy48;
2292
0
        goto yy184;
2293
0
      }
2294
0
    } else {
2295
0
      if (yych <= 'n') {
2296
0
        if (yych == 'i') goto yy180;
2297
0
        if (yych <= 'm') goto yy48;
2298
0
        goto yy181;
2299
0
      } else {
2300
0
        if (yych <= 'o') goto yy183;
2301
0
        if (yych == 'u') goto yy184;
2302
0
        goto yy48;
2303
0
      }
2304
0
    }
2305
0
yy46:
2306
0
    YYDEBUG(46, *YYCURSOR);
2307
0
    yyaccept = 4;
2308
0
    yych = *(YYMARKER = ++YYCURSOR);
2309
0
    if (yych <= 'O') {
2310
0
      if (yych == 'L') goto yy185;
2311
0
      if (yych <= 'N') goto yy48;
2312
0
      goto yy186;
2313
0
    } else {
2314
0
      if (yych <= 'l') {
2315
0
        if (yych <= 'k') goto yy48;
2316
0
        goto yy185;
2317
0
      } else {
2318
0
        if (yych == 'o') goto yy186;
2319
0
        goto yy48;
2320
0
      }
2321
0
    }
2322
0
yy47:
2323
0
    YYDEBUG(47, *YYCURSOR);
2324
0
    yyaccept = 4;
2325
0
    YYMARKER = ++YYCURSOR;
2326
0
    YYFILL(1);
2327
0
    yych = *YYCURSOR;
2328
0
yy48:
2329
0
    YYDEBUG(48, *YYCURSOR);
2330
0
    if (yybm[256+yych] & 128) {
2331
0
      goto yy47;
2332
0
    }
2333
0
    if (yych == '\\') goto yy164;
2334
0
    goto yy40;
2335
0
yy49:
2336
0
    YYDEBUG(49, *YYCURSOR);
2337
0
    yyaccept = 4;
2338
0
    yych = *(YYMARKER = ++YYCURSOR);
2339
0
    if (yych <= 'S') {
2340
0
      if (yych <= 'L') {
2341
0
        if (yych == 'F') goto yy187;
2342
0
        goto yy48;
2343
0
      } else {
2344
0
        if (yych <= 'M') goto yy189;
2345
0
        if (yych <= 'N') goto yy190;
2346
0
        if (yych <= 'R') goto yy48;
2347
0
        goto yy191;
2348
0
      }
2349
0
    } else {
2350
0
      if (yych <= 'm') {
2351
0
        if (yych == 'f') goto yy187;
2352
0
        if (yych <= 'l') goto yy48;
2353
0
        goto yy189;
2354
0
      } else {
2355
0
        if (yych <= 'n') goto yy190;
2356
0
        if (yych == 's') goto yy191;
2357
0
        goto yy48;
2358
0
      }
2359
0
    }
2360
0
yy50:
2361
0
    YYDEBUG(50, *YYCURSOR);
2362
0
    yyaccept = 4;
2363
0
    yych = *(YYMARKER = ++YYCURSOR);
2364
0
    if (yych == 'I') goto yy192;
2365
0
    if (yych == 'i') goto yy192;
2366
0
    goto yy48;
2367
0
yy51:
2368
0
    YYDEBUG(51, *YYCURSOR);
2369
0
    yyaccept = 4;
2370
0
    yych = *(YYMARKER = ++YYCURSOR);
2371
0
    if (yych == 'A') goto yy193;
2372
0
    if (yych == 'a') goto yy193;
2373
0
    goto yy48;
2374
0
yy52:
2375
0
    YYDEBUG(52, *YYCURSOR);
2376
0
    yyaccept = 4;
2377
0
    yych = *(YYMARKER = ++YYCURSOR);
2378
0
    if (yych <= 'E') {
2379
0
      if (yych == 'A') goto yy194;
2380
0
      if (yych <= 'D') goto yy48;
2381
0
      goto yy195;
2382
0
    } else {
2383
0
      if (yych <= 'a') {
2384
0
        if (yych <= '`') goto yy48;
2385
0
        goto yy194;
2386
0
      } else {
2387
0
        if (yych == 'e') goto yy195;
2388
0
        goto yy48;
2389
0
      }
2390
0
    }
2391
0
yy53:
2392
0
    YYDEBUG(53, *YYCURSOR);
2393
0
    yyaccept = 4;
2394
0
    yych = *(YYMARKER = ++YYCURSOR);
2395
0
    if (yych == 'R') goto yy196;
2396
0
    if (yych == 'r') goto yy196;
2397
0
    goto yy48;
2398
0
yy54:
2399
0
    YYDEBUG(54, *YYCURSOR);
2400
0
    yyaccept = 4;
2401
0
    yych = *(YYMARKER = ++YYCURSOR);
2402
0
    if (yych <= 'U') {
2403
0
      if (yych == 'R') goto yy198;
2404
0
      if (yych <= 'T') goto yy48;
2405
0
      goto yy199;
2406
0
    } else {
2407
0
      if (yych <= 'r') {
2408
0
        if (yych <= 'q') goto yy48;
2409
0
        goto yy198;
2410
0
      } else {
2411
0
        if (yych == 'u') goto yy199;
2412
0
        goto yy48;
2413
0
      }
2414
0
    }
2415
0
yy55:
2416
0
    YYDEBUG(55, *YYCURSOR);
2417
0
    yyaccept = 4;
2418
0
    yych = *(YYMARKER = ++YYCURSOR);
2419
0
    if (yych == 'E') goto yy200;
2420
0
    if (yych == 'e') goto yy200;
2421
0
    goto yy48;
2422
0
yy56:
2423
0
    YYDEBUG(56, *YYCURSOR);
2424
0
    yyaccept = 4;
2425
0
    yych = *(YYMARKER = ++YYCURSOR);
2426
0
    if (yych <= 'W') {
2427
0
      if (yych == 'T') goto yy201;
2428
0
      if (yych <= 'V') goto yy48;
2429
0
      goto yy202;
2430
0
    } else {
2431
0
      if (yych <= 't') {
2432
0
        if (yych <= 's') goto yy48;
2433
0
        goto yy201;
2434
0
      } else {
2435
0
        if (yych == 'w') goto yy202;
2436
0
        goto yy48;
2437
0
      }
2438
0
    }
2439
0
yy57:
2440
0
    YYDEBUG(57, *YYCURSOR);
2441
0
    yyaccept = 4;
2442
0
    yych = *(YYMARKER = ++YYCURSOR);
2443
0
    if (yych <= 'R') {
2444
0
      if (yych == 'H') goto yy203;
2445
0
      if (yych <= 'Q') goto yy48;
2446
0
      goto yy204;
2447
0
    } else {
2448
0
      if (yych <= 'h') {
2449
0
        if (yych <= 'g') goto yy48;
2450
0
        goto yy203;
2451
0
      } else {
2452
0
        if (yych == 'r') goto yy204;
2453
0
        goto yy48;
2454
0
      }
2455
0
    }
2456
0
yy58:
2457
0
    YYDEBUG(58, *YYCURSOR);
2458
0
    yyaccept = 4;
2459
0
    yych = *(YYMARKER = ++YYCURSOR);
2460
0
    if (yych <= 'S') {
2461
0
      if (yych == 'N') goto yy205;
2462
0
      if (yych <= 'R') goto yy48;
2463
0
      goto yy206;
2464
0
    } else {
2465
0
      if (yych <= 'n') {
2466
0
        if (yych <= 'm') goto yy48;
2467
0
        goto yy205;
2468
0
      } else {
2469
0
        if (yych == 's') goto yy206;
2470
0
        goto yy48;
2471
0
      }
2472
0
    }
2473
0
yy59:
2474
0
    YYDEBUG(59, *YYCURSOR);
2475
0
    yyaccept = 4;
2476
0
    yych = *(YYMARKER = ++YYCURSOR);
2477
0
    if (yych == 'A') goto yy207;
2478
0
    if (yych == 'a') goto yy207;
2479
0
    goto yy48;
2480
0
yy60:
2481
0
    YYDEBUG(60, *YYCURSOR);
2482
0
    yyaccept = 4;
2483
0
    yych = *(YYMARKER = ++YYCURSOR);
2484
0
    if (yych == 'H') goto yy208;
2485
0
    if (yych == 'h') goto yy208;
2486
0
    goto yy48;
2487
0
yy61:
2488
0
    YYDEBUG(61, *YYCURSOR);
2489
0
    yyaccept = 4;
2490
0
    yych = *(YYMARKER = ++YYCURSOR);
2491
0
    if (yych == 'O') goto yy209;
2492
0
    if (yych == 'o') goto yy209;
2493
0
    goto yy48;
2494
0
yy62:
2495
0
    YYDEBUG(62, *YYCURSOR);
2496
0
    yyaccept = 4;
2497
0
    yych = *(YYMARKER = ++YYCURSOR);
2498
0
    if (yych == 'I') goto yy210;
2499
0
    if (yych == 'i') goto yy210;
2500
0
    goto yy48;
2501
0
yy63:
2502
0
    YYDEBUG(63, *YYCURSOR);
2503
0
    ++YYCURSOR;
2504
0
    goto yy21;
2505
0
yy64:
2506
0
    YYDEBUG(64, *YYCURSOR);
2507
0
    yych = *++YYCURSOR;
2508
0
    if (yych <= '_') {
2509
0
      if (yych <= '@') goto yy65;
2510
0
      if (yych <= 'Z') goto yy211;
2511
0
      if (yych >= '_') goto yy211;
2512
0
    } else {
2513
0
      if (yych <= '`') goto yy65;
2514
0
      if (yych <= 'z') goto yy211;
2515
0
      if (yych >= 0x80) goto yy211;
2516
0
    }
2517
0
yy65:
2518
0
    YYDEBUG(65, *YYCURSOR);
2519
0
    yyleng = YYCURSOR - SCNG(yy_text);
2520
0
#line 2451 "Zend/zend_language_scanner.l"
2521
0
    {
2522
0
  RETURN_TOKEN(T_NS_SEPARATOR);
2523
0
}
2524
0
#line 2525 "Zend/zend_language_scanner.c"
2525
0
yy66:
2526
0
    YYDEBUG(66, *YYCURSOR);
2527
0
    yych = *++YYCURSOR;
2528
0
    if (yych == '=') goto yy214;
2529
0
    goto yy9;
2530
0
yy67:
2531
0
    YYDEBUG(67, *YYCURSOR);
2532
0
    yyaccept = 4;
2533
0
    yych = *(YYMARKER = ++YYCURSOR);
2534
0
    if (yych == '_') goto yy216;
2535
0
    goto yy48;
2536
0
yy68:
2537
0
    YYDEBUG(68, *YYCURSOR);
2538
0
    ++YYCURSOR;
2539
0
    YYDEBUG(69, *YYCURSOR);
2540
0
    yyleng = YYCURSOR - SCNG(yy_text);
2541
0
#line 2825 "Zend/zend_language_scanner.l"
2542
0
    {
2543
0
  BEGIN(ST_BACKQUOTE);
2544
0
  RETURN_TOKEN('`');
2545
0
}
2546
0
#line 2547 "Zend/zend_language_scanner.c"
2547
0
yy70:
2548
0
    YYDEBUG(70, *YYCURSOR);
2549
0
    ++YYCURSOR;
2550
0
    YYDEBUG(71, *YYCURSOR);
2551
0
    yyleng = YYCURSOR - SCNG(yy_text);
2552
0
#line 1974 "Zend/zend_language_scanner.l"
2553
0
    {
2554
0
  yy_push_state(ST_IN_SCRIPTING);
2555
0
  enter_nesting('{');
2556
0
  RETURN_TOKEN('{');
2557
0
}
2558
0
#line 2559 "Zend/zend_language_scanner.c"
2559
0
yy72:
2560
0
    YYDEBUG(72, *YYCURSOR);
2561
0
    yych = *++YYCURSOR;
2562
0
    if (yych <= '>') {
2563
0
      if (yych <= '<') goto yy9;
2564
0
      if (yych <= '=') goto yy217;
2565
0
      goto yy219;
2566
0
    } else {
2567
0
      if (yych == '|') goto yy221;
2568
0
      goto yy9;
2569
0
    }
2570
0
yy73:
2571
0
    YYDEBUG(73, *YYCURSOR);
2572
0
    ++YYCURSOR;
2573
0
    YYDEBUG(74, *YYCURSOR);
2574
0
    yyleng = YYCURSOR - SCNG(yy_text);
2575
0
#line 1987 "Zend/zend_language_scanner.l"
2576
0
    {
2577
0
  RESET_DOC_COMMENT();
2578
0
  if (!zend_stack_is_empty(&SCNG(state_stack))) {
2579
0
    yy_pop_state();
2580
0
  }
2581
0
  RETURN_EXIT_NESTING_TOKEN('}');
2582
0
}
2583
0
#line 2584 "Zend/zend_language_scanner.c"
2584
0
yy75:
2585
0
    YYDEBUG(75, *YYCURSOR);
2586
0
    yych = *++YYCURSOR;
2587
0
    if (yych == '=') goto yy223;
2588
0
yy76:
2589
0
    YYDEBUG(76, *YYCURSOR);
2590
0
    yyleng = YYCURSOR - SCNG(yy_text);
2591
0
#line 1846 "Zend/zend_language_scanner.l"
2592
0
    {
2593
0
  RETURN_TOKEN(T_IS_NOT_EQUAL);
2594
0
}
2595
0
#line 2596 "Zend/zend_language_scanner.c"
2596
0
yy77:
2597
0
    YYDEBUG(77, *YYCURSOR);
2598
0
    ++YYCURSOR;
2599
0
    YYDEBUG(78, *YYCURSOR);
2600
0
    yyleng = YYCURSOR - SCNG(yy_text);
2601
0
#line 1423 "Zend/zend_language_scanner.l"
2602
0
    {
2603
0
  enter_nesting('[');
2604
0
  RETURN_TOKEN(T_ATTRIBUTE);
2605
0
}
2606
0
#line 2607 "Zend/zend_language_scanner.c"
2607
0
yy79:
2608
0
    YYDEBUG(79, *YYCURSOR);
2609
0
    ++YYCURSOR;
2610
0
    YYFILL(1);
2611
0
    yych = *YYCURSOR;
2612
0
    YYDEBUG(80, *YYCURSOR);
2613
0
    if (yych <= '^') {
2614
0
      if (yych <= '9') {
2615
0
        if (yych >= '0') goto yy79;
2616
0
      } else {
2617
0
        if (yych <= '@') goto yy81;
2618
0
        if (yych <= 'Z') goto yy79;
2619
0
      }
2620
0
    } else {
2621
0
      if (yych <= '`') {
2622
0
        if (yych <= '_') goto yy79;
2623
0
      } else {
2624
0
        if (yych <= 'z') goto yy79;
2625
0
        if (yych >= 0x80) goto yy79;
2626
0
      }
2627
0
    }
2628
0
yy81:
2629
0
    YYDEBUG(81, *YYCURSOR);
2630
0
    yyleng = YYCURSOR - SCNG(yy_text);
2631
0
#line 2417 "Zend/zend_language_scanner.l"
2632
0
    {
2633
0
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
2634
0
}
2635
0
#line 2636 "Zend/zend_language_scanner.c"
2636
0
yy82:
2637
0
    YYDEBUG(82, *YYCURSOR);
2638
0
    ++YYCURSOR;
2639
0
    YYDEBUG(83, *YYCURSOR);
2640
0
    yyleng = YYCURSOR - SCNG(yy_text);
2641
0
#line 1890 "Zend/zend_language_scanner.l"
2642
0
    {
2643
0
  RETURN_TOKEN(T_MOD_EQUAL);
2644
0
}
2645
0
#line 2646 "Zend/zend_language_scanner.c"
2646
0
yy84:
2647
0
    YYDEBUG(84, *YYCURSOR);
2648
0
    ++YYCURSOR;
2649
0
    YYFILL(3);
2650
0
    yych = *YYCURSOR;
2651
0
yy85:
2652
0
    YYDEBUG(85, *YYCURSOR);
2653
0
    if (yych <= ' ') {
2654
0
      if (yych <= '\f') {
2655
0
        if (yych <= 0x08) goto yy86;
2656
0
        if (yych <= '\n') goto yy84;
2657
0
      } else {
2658
0
        if (yych <= '\r') goto yy84;
2659
0
        if (yych >= ' ') goto yy84;
2660
0
      }
2661
0
    } else {
2662
0
      if (yych <= '$') {
2663
0
        if (yych <= '"') goto yy86;
2664
0
        if (yych <= '#') goto yy87;
2665
0
        goto yy88;
2666
0
      } else {
2667
0
        if (yych <= '-') goto yy86;
2668
0
        if (yych <= '.') goto yy92;
2669
0
        if (yych <= '/') goto yy93;
2670
0
      }
2671
0
    }
2672
0
yy86:
2673
0
    YYDEBUG(86, *YYCURSOR);
2674
0
    YYCURSOR = YYMARKER;
2675
0
    if (yyaccept <= 48) {
2676
0
      if (yyaccept <= 24) {
2677
0
        if (yyaccept <= 12) {
2678
0
          if (yyaccept <= 6) {
2679
0
            if (yyaccept <= 3) {
2680
0
              if (yyaccept <= 1) {
2681
0
                if (yyaccept == 0) {
2682
0
                  goto yy17;
2683
0
                } else {
2684
0
                  goto yy21;
2685
0
                }
2686
0
              } else {
2687
0
                if (yyaccept == 2) {
2688
0
                  goto yy9;
2689
0
                } else {
2690
0
                  goto yy31;
2691
0
                }
2692
0
              }
2693
0
            } else {
2694
0
              if (yyaccept <= 5) {
2695
0
                if (yyaccept == 4) {
2696
0
                  goto yy40;
2697
0
                } else {
2698
0
                  goto yy125;
2699
0
                }
2700
0
              } else {
2701
0
                goto yy129;
2702
0
              }
2703
0
            }
2704
0
          } else {
2705
0
            if (yyaccept <= 9) {
2706
0
              if (yyaccept <= 8) {
2707
0
                if (yyaccept == 7) {
2708
0
                  goto yy142;
2709
0
                } else {
2710
0
                  goto yy163;
2711
0
                }
2712
0
              } else {
2713
0
                goto yy173;
2714
0
              }
2715
0
            } else {
2716
0
              if (yyaccept <= 11) {
2717
0
                if (yyaccept == 10) {
2718
0
                  goto yy182;
2719
0
                } else {
2720
0
                  goto yy188;
2721
0
                }
2722
0
              } else {
2723
0
                goto yy197;
2724
0
              }
2725
0
            }
2726
0
          }
2727
0
        } else {
2728
0
          if (yyaccept <= 18) {
2729
0
            if (yyaccept <= 15) {
2730
0
              if (yyaccept <= 14) {
2731
0
                if (yyaccept == 13) {
2732
0
                  goto yy213;
2733
0
                } else {
2734
0
                  goto yy251;
2735
0
                }
2736
0
              } else {
2737
0
                goto yy257;
2738
0
              }
2739
0
            } else {
2740
0
              if (yyaccept <= 17) {
2741
0
                if (yyaccept == 16) {
2742
0
                  goto yy260;
2743
0
                } else {
2744
0
                  goto yy279;
2745
0
                }
2746
0
              } else {
2747
0
                goto yy283;
2748
0
              }
2749
0
            }
2750
0
          } else {
2751
0
            if (yyaccept <= 21) {
2752
0
              if (yyaccept <= 20) {
2753
0
                if (yyaccept == 19) {
2754
0
                  goto yy295;
2755
0
                } else {
2756
0
                  goto yy306;
2757
0
                }
2758
0
              } else {
2759
0
                goto yy319;
2760
0
              }
2761
0
            } else {
2762
0
              if (yyaccept <= 23) {
2763
0
                if (yyaccept == 22) {
2764
0
                  goto yy331;
2765
0
                } else {
2766
0
                  goto yy334;
2767
0
                }
2768
0
              } else {
2769
0
                goto yy336;
2770
0
              }
2771
0
            }
2772
0
          }
2773
0
        }
2774
0
      } else {
2775
0
        if (yyaccept <= 36) {
2776
0
          if (yyaccept <= 30) {
2777
0
            if (yyaccept <= 27) {
2778
0
              if (yyaccept <= 26) {
2779
0
                if (yyaccept == 25) {
2780
0
                  goto yy339;
2781
0
                } else {
2782
0
                  goto yy89;
2783
0
                }
2784
0
              } else {
2785
0
                goto yy379;
2786
0
              }
2787
0
            } else {
2788
0
              if (yyaccept <= 29) {
2789
0
                if (yyaccept == 28) {
2790
0
                  goto yy388;
2791
0
                } else {
2792
0
                  goto yy390;
2793
0
                }
2794
0
              } else {
2795
0
                goto yy399;
2796
0
              }
2797
0
            }
2798
0
          } else {
2799
0
            if (yyaccept <= 33) {
2800
0
              if (yyaccept <= 32) {
2801
0
                if (yyaccept == 31) {
2802
0
                  goto yy401;
2803
0
                } else {
2804
0
                  goto yy408;
2805
0
                }
2806
0
              } else {
2807
0
                goto yy415;
2808
0
              }
2809
0
            } else {
2810
0
              if (yyaccept <= 35) {
2811
0
                if (yyaccept == 34) {
2812
0
                  goto yy471;
2813
0
                } else {
2814
0
                  goto yy473;
2815
0
                }
2816
0
              } else {
2817
0
                goto yy476;
2818
0
              }
2819
0
            }
2820
0
          }
2821
0
        } else {
2822
0
          if (yyaccept <= 42) {
2823
0
            if (yyaccept <= 39) {
2824
0
              if (yyaccept <= 38) {
2825
0
                if (yyaccept == 37) {
2826
0
                  goto yy478;
2827
0
                } else {
2828
0
                  goto yy480;
2829
0
                }
2830
0
              } else {
2831
0
                goto yy482;
2832
0
              }
2833
0
            } else {
2834
0
              if (yyaccept <= 41) {
2835
0
                if (yyaccept == 40) {
2836
0
                  goto yy488;
2837
0
                } else {
2838
0
                  goto yy492;
2839
0
                }
2840
0
              } else {
2841
0
                goto yy501;
2842
0
              }
2843
0
            }
2844
0
          } else {
2845
0
            if (yyaccept <= 45) {
2846
0
              if (yyaccept <= 44) {
2847
0
                if (yyaccept == 43) {
2848
0
                  goto yy511;
2849
0
                } else {
2850
0
                  goto yy513;
2851
0
                }
2852
0
              } else {
2853
0
                goto yy516;
2854
0
              }
2855
0
            } else {
2856
0
              if (yyaccept <= 47) {
2857
0
                if (yyaccept == 46) {
2858
0
                  goto yy526;
2859
0
                } else {
2860
0
                  goto yy528;
2861
0
                }
2862
0
              } else {
2863
0
                goto yy530;
2864
0
              }
2865
0
            }
2866
0
          }
2867
0
        }
2868
0
      }
2869
0
    } else {
2870
0
      if (yyaccept <= 72) {
2871
0
        if (yyaccept <= 60) {
2872
0
          if (yyaccept <= 54) {
2873
0
            if (yyaccept <= 51) {
2874
0
              if (yyaccept <= 50) {
2875
0
                if (yyaccept == 49) {
2876
0
                  goto yy532;
2877
0
                } else {
2878
0
                  goto yy534;
2879
0
                }
2880
0
              } else {
2881
0
                goto yy576;
2882
0
              }
2883
0
            } else {
2884
0
              if (yyaccept <= 53) {
2885
0
                if (yyaccept == 52) {
2886
0
                  goto yy579;
2887
0
                } else {
2888
0
                  goto yy583;
2889
0
                }
2890
0
              } else {
2891
0
                goto yy597;
2892
0
              }
2893
0
            }
2894
0
          } else {
2895
0
            if (yyaccept <= 57) {
2896
0
              if (yyaccept <= 56) {
2897
0
                if (yyaccept == 55) {
2898
0
                  goto yy607;
2899
0
                } else {
2900
0
                  goto yy611;
2901
0
                }
2902
0
              } else {
2903
0
                goto yy613;
2904
0
              }
2905
0
            } else {
2906
0
              if (yyaccept <= 59) {
2907
0
                if (yyaccept == 58) {
2908
0
                  goto yy615;
2909
0
                } else {
2910
0
                  goto yy654;
2911
0
                }
2912
0
              } else {
2913
0
                goto yy656;
2914
0
              }
2915
0
            }
2916
0
          }
2917
0
        } else {
2918
0
          if (yyaccept <= 66) {
2919
0
            if (yyaccept <= 63) {
2920
0
              if (yyaccept <= 62) {
2921
0
                if (yyaccept == 61) {
2922
0
                  goto yy671;
2923
0
                } else {
2924
0
                  goto yy673;
2925
0
                }
2926
0
              } else {
2927
0
                goto yy675;
2928
0
              }
2929
0
            } else {
2930
0
              if (yyaccept <= 65) {
2931
0
                if (yyaccept == 64) {
2932
0
                  goto yy679;
2933
0
                } else {
2934
0
                  goto yy685;
2935
0
                }
2936
0
              } else {
2937
0
                goto yy690;
2938
0
              }
2939
0
            }
2940
0
          } else {
2941
0
            if (yyaccept <= 69) {
2942
0
              if (yyaccept <= 68) {
2943
0
                if (yyaccept == 67) {
2944
0
                  goto yy700;
2945
0
                } else {
2946
0
                  goto yy726;
2947
0
                }
2948
0
              } else {
2949
0
                goto yy728;
2950
0
              }
2951
0
            } else {
2952
0
              if (yyaccept <= 71) {
2953
0
                if (yyaccept == 70) {
2954
0
                  goto yy730;
2955
0
                } else {
2956
0
                  goto yy735;
2957
0
                }
2958
0
              } else {
2959
0
                goto yy743;
2960
0
              }
2961
0
            }
2962
0
          }
2963
0
        }
2964
0
      } else {
2965
0
        if (yyaccept <= 84) {
2966
0
          if (yyaccept <= 78) {
2967
0
            if (yyaccept <= 75) {
2968
0
              if (yyaccept <= 74) {
2969
0
                if (yyaccept == 73) {
2970
0
                  goto yy754;
2971
0
                } else {
2972
0
                  goto yy764;
2973
0
                }
2974
0
              } else {
2975
0
                goto yy768;
2976
0
              }
2977
0
            } else {
2978
0
              if (yyaccept <= 77) {
2979
0
                if (yyaccept == 76) {
2980
0
                  goto yy784;
2981
0
                } else {
2982
0
                  goto yy797;
2983
0
                }
2984
0
              } else {
2985
0
                goto yy799;
2986
0
              }
2987
0
            }
2988
0
          } else {
2989
0
            if (yyaccept <= 81) {
2990
0
              if (yyaccept <= 80) {
2991
0
                if (yyaccept == 79) {
2992
0
                  goto yy801;
2993
0
                } else {
2994
0
                  goto yy804;
2995
0
                }
2996
0
              } else {
2997
0
                goto yy812;
2998
0
              }
2999
0
            } else {
3000
0
              if (yyaccept <= 83) {
3001
0
                if (yyaccept == 82) {
3002
0
                  goto yy819;
3003
0
                } else {
3004
0
                  goto yy823;
3005
0
                }
3006
0
              } else {
3007
0
                goto yy825;
3008
0
              }
3009
0
            }
3010
0
          }
3011
0
        } else {
3012
0
          if (yyaccept <= 90) {
3013
0
            if (yyaccept <= 87) {
3014
0
              if (yyaccept <= 86) {
3015
0
                if (yyaccept == 85) {
3016
0
                  goto yy836;
3017
0
                } else {
3018
0
                  goto yy839;
3019
0
                }
3020
0
              } else {
3021
0
                goto yy854;
3022
0
              }
3023
0
            } else {
3024
0
              if (yyaccept <= 89) {
3025
0
                if (yyaccept == 88) {
3026
0
                  goto yy869;
3027
0
                } else {
3028
0
                  goto yy898;
3029
0
                }
3030
0
              } else {
3031
0
                goto yy903;
3032
0
              }
3033
0
            }
3034
0
          } else {
3035
0
            if (yyaccept <= 93) {
3036
0
              if (yyaccept <= 92) {
3037
0
                if (yyaccept == 91) {
3038
0
                  goto yy876;
3039
0
                } else {
3040
0
                  goto yy911;
3041
0
                }
3042
0
              } else {
3043
0
                goto yy915;
3044
0
              }
3045
0
            } else {
3046
0
              if (yyaccept <= 95) {
3047
0
                if (yyaccept == 94) {
3048
0
                  goto yy886;
3049
0
                } else {
3050
0
                  goto yy931;
3051
0
                }
3052
0
              } else {
3053
0
                goto yy951;
3054
0
              }
3055
0
            }
3056
0
          }
3057
0
        }
3058
0
      }
3059
0
    }
3060
0
yy87:
3061
0
    YYDEBUG(87, *YYCURSOR);
3062
0
    ++YYCURSOR;
3063
0
    YYFILL(1);
3064
0
    yych = *YYCURSOR;
3065
0
    if (yych <= '\f') {
3066
0
      if (yych <= 0x00) goto yy86;
3067
0
      if (yych == '\n') goto yy227;
3068
0
      goto yy225;
3069
0
    } else {
3070
0
      if (yych <= '\r') goto yy227;
3071
0
      if (yych == '[') goto yy86;
3072
0
      goto yy225;
3073
0
    }
3074
0
yy88:
3075
0
    YYDEBUG(88, *YYCURSOR);
3076
0
    ++YYCURSOR;
3077
0
yy89:
3078
0
    YYDEBUG(89, *YYCURSOR);
3079
0
    yyleng = YYCURSOR - SCNG(yy_text);
3080
0
#line 1950 "Zend/zend_language_scanner.l"
3081
0
    {
3082
0
  yyless(1);
3083
0
  RETURN_TOKEN(T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG);
3084
0
}
3085
0
#line 3086 "Zend/zend_language_scanner.c"
3086
0
yy90:
3087
0
    YYDEBUG(90, *YYCURSOR);
3088
0
    ++YYCURSOR;
3089
0
    YYDEBUG(91, *YYCURSOR);
3090
0
    yyleng = YYCURSOR - SCNG(yy_text);
3091
0
#line 1926 "Zend/zend_language_scanner.l"
3092
0
    {
3093
0
  RETURN_TOKEN(T_BOOLEAN_AND);
3094
0
}
3095
0
#line 3096 "Zend/zend_language_scanner.c"
3096
0
yy92:
3097
0
    YYDEBUG(92, *YYCURSOR);
3098
0
    yych = *++YYCURSOR;
3099
0
    if (yych == '.') goto yy229;
3100
0
    goto yy86;
3101
0
yy93:
3102
0
    YYDEBUG(93, *YYCURSOR);
3103
0
    ++YYCURSOR;
3104
0
    YYFILL(1);
3105
0
    yych = *YYCURSOR;
3106
0
    if (yych == '*') goto yy230;
3107
0
    if (yych == '/') goto yy225;
3108
0
    goto yy86;
3109
0
yy94:
3110
0
    YYDEBUG(94, *YYCURSOR);
3111
0
    ++YYCURSOR;
3112
0
    YYDEBUG(95, *YYCURSOR);
3113
0
    yyleng = YYCURSOR - SCNG(yy_text);
3114
0
#line 1902 "Zend/zend_language_scanner.l"
3115
0
    {
3116
0
  RETURN_TOKEN(T_AND_EQUAL);
3117
0
}
3118
0
#line 3119 "Zend/zend_language_scanner.c"
3119
0
yy96:
3120
0
    YYDEBUG(96, *YYCURSOR);
3121
0
    ++YYCURSOR;
3122
0
    YYFILL(7);
3123
0
    yych = *YYCURSOR;
3124
0
yy97:
3125
0
    YYDEBUG(97, *YYCURSOR);
3126
0
    if (yybm[0+yych] & 1) {
3127
0
      goto yy96;
3128
0
    }
3129
0
    switch (yych) {
3130
0
    case 'A':
3131
0
    case 'a': goto yy98;
3132
0
    case 'B':
3133
0
    case 'b': goto yy99;
3134
0
    case 'D':
3135
0
    case 'd': goto yy100;
3136
0
    case 'F':
3137
0
    case 'f': goto yy101;
3138
0
    case 'I':
3139
0
    case 'i': goto yy102;
3140
0
    case 'O':
3141
0
    case 'o': goto yy103;
3142
0
    case 'R':
3143
0
    case 'r': goto yy104;
3144
0
    case 'S':
3145
0
    case 's': goto yy105;
3146
0
    case 'U':
3147
0
    case 'u': goto yy106;
3148
0
    case 'V':
3149
0
    case 'v': goto yy107;
3150
0
    default:  goto yy86;
3151
0
    }
3152
0
yy98:
3153
0
    YYDEBUG(98, *YYCURSOR);
3154
0
    yych = *++YYCURSOR;
3155
0
    if (yych == 'R') goto yy232;
3156
0
    if (yych == 'r') goto yy232;
3157
0
    goto yy86;
3158
0
yy99:
3159
0
    YYDEBUG(99, *YYCURSOR);
3160
0
    yych = *++YYCURSOR;
3161
0
    if (yych <= 'O') {
3162
0
      if (yych == 'I') goto yy233;
3163
0
      if (yych <= 'N') goto yy86;
3164
0
      goto yy234;
3165
0
    } else {
3166
0
      if (yych <= 'i') {
3167
0
        if (yych <= 'h') goto yy86;
3168
0
        goto yy233;
3169
0
      } else {
3170
0
        if (yych == 'o') goto yy234;
3171
0
        goto yy86;
3172
0
      }
3173
0
    }
3174
0
yy100:
3175
0
    YYDEBUG(100, *YYCURSOR);
3176
0
    yych = *++YYCURSOR;
3177
0
    if (yych == 'O') goto yy235;
3178
0
    if (yych == 'o') goto yy235;
3179
0
    goto yy86;
3180
0
yy101:
3181
0
    YYDEBUG(101, *YYCURSOR);
3182
0
    yych = *++YYCURSOR;
3183
0
    if (yych == 'L') goto yy236;
3184
0
    if (yych == 'l') goto yy236;
3185
0
    goto yy86;
3186
0
yy102:
3187
0
    YYDEBUG(102, *YYCURSOR);
3188
0
    yych = *++YYCURSOR;
3189
0
    if (yych == 'N') goto yy237;
3190
0
    if (yych == 'n') goto yy237;
3191
0
    goto yy86;
3192
0
yy103:
3193
0
    YYDEBUG(103, *YYCURSOR);
3194
0
    yych = *++YYCURSOR;
3195
0
    if (yych == 'B') goto yy238;
3196
0
    if (yych == 'b') goto yy238;
3197
0
    goto yy86;
3198
0
yy104:
3199
0
    YYDEBUG(104, *YYCURSOR);
3200
0
    yych = *++YYCURSOR;
3201
0
    if (yych == 'E') goto yy239;
3202
0
    if (yych == 'e') goto yy239;
3203
0
    goto yy86;
3204
0
yy105:
3205
0
    YYDEBUG(105, *YYCURSOR);
3206
0
    yych = *++YYCURSOR;
3207
0
    if (yych == 'T') goto yy240;
3208
0
    if (yych == 't') goto yy240;
3209
0
    goto yy86;
3210
0
yy106:
3211
0
    YYDEBUG(106, *YYCURSOR);
3212
0
    yych = *++YYCURSOR;
3213
0
    if (yych == 'N') goto yy241;
3214
0
    if (yych == 'n') goto yy241;
3215
0
    goto yy86;
3216
0
yy107:
3217
0
    YYDEBUG(107, *YYCURSOR);
3218
0
    yych = *++YYCURSOR;
3219
0
    if (yych == 'O') goto yy242;
3220
0
    if (yych == 'o') goto yy242;
3221
0
    goto yy86;
3222
0
yy108:
3223
0
    YYDEBUG(108, *YYCURSOR);
3224
0
    yych = *++YYCURSOR;
3225
0
    if (yych == '=') goto yy243;
3226
0
    YYDEBUG(109, *YYCURSOR);
3227
0
    yyleng = YYCURSOR - SCNG(yy_text);
3228
0
#line 1874 "Zend/zend_language_scanner.l"
3229
0
    {
3230
0
  RETURN_TOKEN(T_POW);
3231
0
}
3232
0
#line 3233 "Zend/zend_language_scanner.c"
3233
0
yy110:
3234
0
    YYDEBUG(110, *YYCURSOR);
3235
0
    ++YYCURSOR;
3236
0
    YYDEBUG(111, *YYCURSOR);
3237
0
    yyleng = YYCURSOR - SCNG(yy_text);
3238
0
#line 1870 "Zend/zend_language_scanner.l"
3239
0
    {
3240
0
  RETURN_TOKEN(T_MUL_EQUAL);
3241
0
}
3242
0
#line 3243 "Zend/zend_language_scanner.c"
3243
0
yy112:
3244
0
    YYDEBUG(112, *YYCURSOR);
3245
0
    ++YYCURSOR;
3246
0
    YYDEBUG(113, *YYCURSOR);
3247
0
    yyleng = YYCURSOR - SCNG(yy_text);
3248
0
#line 1826 "Zend/zend_language_scanner.l"
3249
0
    {
3250
0
  RETURN_TOKEN(T_INC);
3251
0
}
3252
0
#line 3253 "Zend/zend_language_scanner.c"
3253
0
yy114:
3254
0
    YYDEBUG(114, *YYCURSOR);
3255
0
    ++YYCURSOR;
3256
0
    YYDEBUG(115, *YYCURSOR);
3257
0
    yyleng = YYCURSOR - SCNG(yy_text);
3258
0
#line 1862 "Zend/zend_language_scanner.l"
3259
0
    {
3260
0
  RETURN_TOKEN(T_PLUS_EQUAL);
3261
0
}
3262
0
#line 3263 "Zend/zend_language_scanner.c"
3263
0
yy116:
3264
0
    YYDEBUG(116, *YYCURSOR);
3265
0
    ++YYCURSOR;
3266
0
    YYDEBUG(117, *YYCURSOR);
3267
0
    yyleng = YYCURSOR - SCNG(yy_text);
3268
0
#line 1830 "Zend/zend_language_scanner.l"
3269
0
    {
3270
0
  RETURN_TOKEN(T_DEC);
3271
0
}
3272
0
#line 3273 "Zend/zend_language_scanner.c"
3273
0
yy118:
3274
0
    YYDEBUG(118, *YYCURSOR);
3275
0
    ++YYCURSOR;
3276
0
    YYDEBUG(119, *YYCURSOR);
3277
0
    yyleng = YYCURSOR - SCNG(yy_text);
3278
0
#line 1866 "Zend/zend_language_scanner.l"
3279
0
    {
3280
0
  RETURN_TOKEN(T_MINUS_EQUAL);
3281
0
}
3282
0
#line 3283 "Zend/zend_language_scanner.c"
3283
0
yy120:
3284
0
    YYDEBUG(120, *YYCURSOR);
3285
0
    ++YYCURSOR;
3286
0
    YYDEBUG(121, *YYCURSOR);
3287
0
    yyleng = YYCURSOR - SCNG(yy_text);
3288
0
#line 1587 "Zend/zend_language_scanner.l"
3289
0
    {
3290
0
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
3291
0
  RETURN_TOKEN(T_OBJECT_OPERATOR);
3292
0
}
3293
0
#line 3294 "Zend/zend_language_scanner.c"
3294
0
yy122:
3295
0
    YYDEBUG(122, *YYCURSOR);
3296
0
    yych = *++YYCURSOR;
3297
0
    if (yych == '.') goto yy245;
3298
0
    goto yy86;
3299
0
yy123:
3300
0
    YYDEBUG(123, *YYCURSOR);
3301
0
    yyaccept = 5;
3302
0
    YYMARKER = ++YYCURSOR;
3303
0
    YYFILL(2);
3304
0
    yych = *YYCURSOR;
3305
0
yy124:
3306
0
    YYDEBUG(124, *YYCURSOR);
3307
0
    if (yych <= 'E') {
3308
0
      if (yych <= '/') goto yy125;
3309
0
      if (yych <= '9') goto yy123;
3310
0
      if (yych >= 'E') goto yy135;
3311
0
    } else {
3312
0
      if (yych <= '_') {
3313
0
        if (yych >= '_') goto yy247;
3314
0
      } else {
3315
0
        if (yych == 'e') goto yy135;
3316
0
      }
3317
0
    }
3318
0
yy125:
3319
0
    YYDEBUG(125, *YYCURSOR);
3320
0
    yyleng = YYCURSOR - SCNG(yy_text);
3321
0
#line 2233 "Zend/zend_language_scanner.l"
3322
0
    {
3323
0
  const char *end;
3324
0
  size_t len = yyleng;
3325
0
  char *dnum = yytext;
3326
0
  bool contains_underscores = (memchr(dnum, '_', len) != NULL);
3327
3328
0
  if (contains_underscores) {
3329
0
    dnum = estrndup(dnum, len);
3330
0
    strip_underscores(dnum, &len);
3331
0
  }
3332
3333
0
  ZVAL_DOUBLE(zendlval, zend_strtod(dnum, &end));
3334
  /* errno isn't checked since we allow HUGE_VAL/INF overflow */
3335
0
  ZEND_ASSERT(end == dnum + len);
3336
0
  if (contains_underscores) {
3337
0
    efree(dnum);
3338
0
  }
3339
0
  RETURN_TOKEN_WITH_VAL(T_DNUMBER);
3340
0
}
3341
0
#line 3342 "Zend/zend_language_scanner.c"
3342
0
yy126:
3343
0
    YYDEBUG(126, *YYCURSOR);
3344
0
    ++YYCURSOR;
3345
0
    YYDEBUG(127, *YYCURSOR);
3346
0
    yyleng = YYCURSOR - SCNG(yy_text);
3347
0
#line 1886 "Zend/zend_language_scanner.l"
3348
0
    {
3349
0
  RETURN_TOKEN(T_CONCAT_EQUAL);
3350
0
}
3351
0
#line 3352 "Zend/zend_language_scanner.c"
3352
0
yy128:
3353
0
    YYDEBUG(128, *YYCURSOR);
3354
0
    yyaccept = 6;
3355
0
    yych = *(YYMARKER = ++YYCURSOR);
3356
0
    if (yych == '*') goto yy248;
3357
0
yy129:
3358
0
    YYDEBUG(129, *YYCURSOR);
3359
0
    yyleng = YYCURSOR - SCNG(yy_text);
3360
0
#line 2484 "Zend/zend_language_scanner.l"
3361
0
    {
3362
0
  int doc_com;
3363
3364
0
  if (yyleng > 2) {
3365
0
    doc_com = 1;
3366
0
    RESET_DOC_COMMENT();
3367
0
  } else {
3368
0
    doc_com = 0;
3369
0
  }
3370
3371
0
  while (YYCURSOR < YYLIMIT) {
3372
0
    if (*YYCURSOR++ == '*' && *YYCURSOR == '/') {
3373
0
      break;
3374
0
    }
3375
0
  }
3376
3377
0
  if (YYCURSOR < YYLIMIT) {
3378
0
    YYCURSOR++;
3379
0
  } else {
3380
0
    zend_throw_exception_ex(zend_ce_parse_error, 0, "Unterminated comment starting line %" PRIu32, CG(zend_lineno));
3381
0
    if (PARSER_MODE()) {
3382
0
      RETURN_TOKEN(T_ERROR);
3383
0
    }
3384
0
  }
3385
3386
0
  yyleng = YYCURSOR - SCNG(yy_text);
3387
0
  HANDLE_NEWLINES(yytext, yyleng);
3388
3389
0
  if (doc_com) {
3390
0
    CG(doc_comment) = zend_string_init(yytext, yyleng, 0);
3391
0
    RETURN_OR_SKIP_TOKEN(T_DOC_COMMENT);
3392
0
  }
3393
3394
0
  RETURN_OR_SKIP_TOKEN(T_COMMENT);
3395
0
}
3396
0
#line 3397 "Zend/zend_language_scanner.c"
3397
0
yy130:
3398
0
    YYDEBUG(130, *YYCURSOR);
3399
0
    ++YYCURSOR;
3400
0
    goto yy13;
3401
0
yy131:
3402
0
    YYDEBUG(131, *YYCURSOR);
3403
0
    ++YYCURSOR;
3404
0
    YYDEBUG(132, *YYCURSOR);
3405
0
    yyleng = YYCURSOR - SCNG(yy_text);
3406
0
#line 1882 "Zend/zend_language_scanner.l"
3407
0
    {
3408
0
  RETURN_TOKEN(T_DIV_EQUAL);
3409
0
}
3410
0
#line 3411 "Zend/zend_language_scanner.c"
3411
0
yy133:
3412
0
    YYDEBUG(133, *YYCURSOR);
3413
0
    yyaccept = 5;
3414
0
    yych = *(YYMARKER = ++YYCURSOR);
3415
0
    if (yych == '_') goto yy125;
3416
0
    goto yy124;
3417
0
yy134:
3418
0
    YYDEBUG(134, *YYCURSOR);
3419
0
    ++YYCURSOR;
3420
0
    YYFILL(1);
3421
0
    yych = *YYCURSOR;
3422
0
    if (yybm[0+yych] & 8) {
3423
0
      goto yy249;
3424
0
    }
3425
0
    goto yy86;
3426
0
yy135:
3427
0
    YYDEBUG(135, *YYCURSOR);
3428
0
    yych = *++YYCURSOR;
3429
0
    if (yych <= ',') {
3430
0
      if (yych == '+') goto yy252;
3431
0
      goto yy86;
3432
0
    } else {
3433
0
      if (yych <= '-') goto yy252;
3434
0
      if (yych <= '/') goto yy86;
3435
0
      if (yych <= '9') goto yy253;
3436
0
      goto yy86;
3437
0
    }
3438
0
yy136:
3439
0
    YYDEBUG(136, *YYCURSOR);
3440
0
    ++YYCURSOR;
3441
0
    YYFILL(1);
3442
0
    yych = *YYCURSOR;
3443
0
    if (yybm[0+yych] & 16) {
3444
0
      goto yy255;
3445
0
    }
3446
0
    goto yy86;
3447
0
yy137:
3448
0
    YYDEBUG(137, *YYCURSOR);
3449
0
    ++YYCURSOR;
3450
0
    YYFILL(1);
3451
0
    yych = *YYCURSOR;
3452
0
    if (yybm[0+yych] & 32) {
3453
0
      goto yy258;
3454
0
    }
3455
0
    goto yy86;
3456
0
yy138:
3457
0
    YYDEBUG(138, *YYCURSOR);
3458
0
    ++YYCURSOR;
3459
0
    YYFILL(1);
3460
0
    yych = *YYCURSOR;
3461
0
    if (yybm[256+yych] & 64) {
3462
0
      goto yy32;
3463
0
    }
3464
0
    goto yy86;
3465
0
yy139:
3466
0
    YYDEBUG(139, *YYCURSOR);
3467
0
    ++YYCURSOR;
3468
0
    YYDEBUG(140, *YYCURSOR);
3469
0
    yyleng = YYCURSOR - SCNG(yy_text);
3470
0
#line 1614 "Zend/zend_language_scanner.l"
3471
0
    {
3472
0
  RETURN_TOKEN(T_PAAMAYIM_NEKUDOTAYIM);
3473
0
}
3474
0
#line 3475 "Zend/zend_language_scanner.c"
3475
0
yy141:
3476
0
    YYDEBUG(141, *YYCURSOR);
3477
0
    yyaccept = 7;
3478
0
    yych = *(YYMARKER = ++YYCURSOR);
3479
0
    if (yych <= ';') goto yy142;
3480
0
    if (yych <= '<') goto yy261;
3481
0
    if (yych <= '=') goto yy263;
3482
0
yy142:
3483
0
    YYDEBUG(142, *YYCURSOR);
3484
0
    yyleng = YYCURSOR - SCNG(yy_text);
3485
0
#line 1942 "Zend/zend_language_scanner.l"
3486
0
    {
3487
0
  RETURN_TOKEN(T_SL);
3488
0
}
3489
0
#line 3490 "Zend/zend_language_scanner.c"
3490
0
yy143:
3491
0
    YYDEBUG(143, *YYCURSOR);
3492
0
    yych = *++YYCURSOR;
3493
0
    if (yych == '>') goto yy265;
3494
0
    YYDEBUG(144, *YYCURSOR);
3495
0
    yyleng = YYCURSOR - SCNG(yy_text);
3496
0
#line 1854 "Zend/zend_language_scanner.l"
3497
0
    {
3498
0
  RETURN_TOKEN(T_IS_SMALLER_OR_EQUAL);
3499
0
}
3500
0
#line 3501 "Zend/zend_language_scanner.c"
3501
0
yy145:
3502
0
    YYDEBUG(145, *YYCURSOR);
3503
0
    ++YYCURSOR;
3504
0
    goto yy76;
3505
0
yy146:
3506
0
    YYDEBUG(146, *YYCURSOR);
3507
0
    yych = *++YYCURSOR;
3508
0
    if (yych == '=') goto yy267;
3509
0
    YYDEBUG(147, *YYCURSOR);
3510
0
    yyleng = YYCURSOR - SCNG(yy_text);
3511
0
#line 1842 "Zend/zend_language_scanner.l"
3512
0
    {
3513
0
  RETURN_TOKEN(T_IS_EQUAL);
3514
0
}
3515
0
#line 3516 "Zend/zend_language_scanner.c"
3516
0
yy148:
3517
0
    YYDEBUG(148, *YYCURSOR);
3518
0
    ++YYCURSOR;
3519
0
    YYDEBUG(149, *YYCURSOR);
3520
0
    yyleng = YYCURSOR - SCNG(yy_text);
3521
0
#line 1810 "Zend/zend_language_scanner.l"
3522
0
    {
3523
0
  RETURN_TOKEN(T_DOUBLE_ARROW);
3524
0
}
3525
0
#line 3526 "Zend/zend_language_scanner.c"
3526
0
yy150:
3527
0
    YYDEBUG(150, *YYCURSOR);
3528
0
    ++YYCURSOR;
3529
0
    YYDEBUG(151, *YYCURSOR);
3530
0
    yyleng = YYCURSOR - SCNG(yy_text);
3531
0
#line 1858 "Zend/zend_language_scanner.l"
3532
0
    {
3533
0
  RETURN_TOKEN(T_IS_GREATER_OR_EQUAL);
3534
0
}
3535
0
#line 3536 "Zend/zend_language_scanner.c"
3536
0
yy152:
3537
0
    YYDEBUG(152, *YYCURSOR);
3538
0
    yych = *++YYCURSOR;
3539
0
    if (yych == '=') goto yy269;
3540
0
    YYDEBUG(153, *YYCURSOR);
3541
0
    yyleng = YYCURSOR - SCNG(yy_text);
3542
0
#line 1946 "Zend/zend_language_scanner.l"
3543
0
    {
3544
0
  RETURN_TOKEN(T_SR);
3545
0
}
3546
0
#line 3547 "Zend/zend_language_scanner.c"
3547
0
yy154:
3548
0
    YYDEBUG(154, *YYCURSOR);
3549
0
    yych = *++YYCURSOR;
3550
0
    if (yych == '>') goto yy271;
3551
0
    goto yy86;
3552
0
yy155:
3553
0
    YYDEBUG(155, *YYCURSOR);
3554
0
    yych = *++YYCURSOR;
3555
0
    if (yych == '\n') goto yy273;
3556
0
    if (yych == '\r') goto yy274;
3557
0
yy156:
3558
0
    YYDEBUG(156, *YYCURSOR);
3559
0
    yyleng = YYCURSOR - SCNG(yy_text);
3560
0
#line 2526 "Zend/zend_language_scanner.l"
3561
0
    {
3562
0
  BEGIN(INITIAL);
3563
0
  if (yytext[yyleng-1] != '>') {
3564
0
    CG(increment_lineno) = 1;
3565
0
  }
3566
0
  if (PARSER_MODE()) {
3567
0
    RETURN_TOKEN(';');  /* implicit ';' at php-end tag */
3568
0
  }
3569
0
  RETURN_TOKEN(T_CLOSE_TAG);
3570
0
}
3571
0
#line 3572 "Zend/zend_language_scanner.c"
3572
0
yy157:
3573
0
    YYDEBUG(157, *YYCURSOR);
3574
0
    yych = *++YYCURSOR;
3575
0
    if (yych == '=') goto yy275;
3576
0
    YYDEBUG(158, *YYCURSOR);
3577
0
    yyleng = YYCURSOR - SCNG(yy_text);
3578
0
#line 1622 "Zend/zend_language_scanner.l"
3579
0
    {
3580
0
  RETURN_TOKEN(T_COALESCE);
3581
0
}
3582
0
#line 3583 "Zend/zend_language_scanner.c"
3583
0
yy159:
3584
0
    YYDEBUG(159, *YYCURSOR);
3585
0
    yyaccept = 4;
3586
0
    yych = *(YYMARKER = ++YYCURSOR);
3587
0
    if (yych == 'S') goto yy277;
3588
0
    if (yych == 's') goto yy277;
3589
0
    goto yy48;
3590
0
yy160:
3591
0
    YYDEBUG(160, *YYCURSOR);
3592
0
    yyaccept = 4;
3593
0
    yych = *(YYMARKER = ++YYCURSOR);
3594
0
    if (yych == 'D') goto yy278;
3595
0
    if (yych == 'd') goto yy278;
3596
0
    goto yy48;
3597
0
yy161:
3598
0
    YYDEBUG(161, *YYCURSOR);
3599
0
    yyaccept = 4;
3600
0
    yych = *(YYMARKER = ++YYCURSOR);
3601
0
    if (yych == 'R') goto yy280;
3602
0
    if (yych == 'r') goto yy280;
3603
0
    goto yy48;
3604
0
yy162:
3605
0
    YYDEBUG(162, *YYCURSOR);
3606
0
    yyaccept = 8;
3607
0
    yych = *(YYMARKER = ++YYCURSOR);
3608
0
    if (yybm[256+yych] & 128) {
3609
0
      goto yy47;
3610
0
    }
3611
0
    if (yych == '\\') goto yy164;
3612
0
yy163:
3613
0
    YYDEBUG(163, *YYCURSOR);
3614
0
    yyleng = YYCURSOR - SCNG(yy_text);
3615
0
#line 1510 "Zend/zend_language_scanner.l"
3616
0
    {
3617
0
  RETURN_TOKEN_WITH_IDENT(T_AS);
3618
0
}
3619
0
#line 3620 "Zend/zend_language_scanner.c"
3620
0
yy164:
3621
0
    YYDEBUG(164, *YYCURSOR);
3622
0
    ++YYCURSOR;
3623
0
    YYFILL(1);
3624
0
    yych = *YYCURSOR;
3625
0
    if (yych <= '_') {
3626
0
      if (yych <= '@') goto yy86;
3627
0
      if (yych <= 'Z') goto yy281;
3628
0
      if (yych <= '^') goto yy86;
3629
0
      goto yy281;
3630
0
    } else {
3631
0
      if (yych <= '`') goto yy86;
3632
0
      if (yych <= 'z') goto yy281;
3633
0
      if (yych <= 0x7F) goto yy86;
3634
0
      goto yy281;
3635
0
    }
3636
0
yy165:
3637
0
    YYDEBUG(165, *YYCURSOR);
3638
0
    yych = *++YYCURSOR;
3639
0
    if (yych == '<') goto yy284;
3640
0
    goto yy86;
3641
0
yy166:
3642
0
    YYDEBUG(166, *YYCURSOR);
3643
0
    yyaccept = 4;
3644
0
    yych = *(YYMARKER = ++YYCURSOR);
3645
0
    if (yych == 'E') goto yy285;
3646
0
    if (yych == 'e') goto yy285;
3647
0
    goto yy48;
3648
0
yy167:
3649
0
    YYDEBUG(167, *YYCURSOR);
3650
0
    yyaccept = 4;
3651
0
    yych = *(YYMARKER = ++YYCURSOR);
3652
0
    if (yych <= 'T') {
3653
0
      if (yych <= 'L') {
3654
0
        if (yych <= 'K') goto yy48;
3655
0
        goto yy286;
3656
0
      } else {
3657
0
        if (yych <= 'R') goto yy48;
3658
0
        if (yych <= 'S') goto yy287;
3659
0
        goto yy288;
3660
0
      }
3661
0
    } else {
3662
0
      if (yych <= 'r') {
3663
0
        if (yych == 'l') goto yy286;
3664
0
        goto yy48;
3665
0
      } else {
3666
0
        if (yych <= 's') goto yy287;
3667
0
        if (yych <= 't') goto yy288;
3668
0
        goto yy48;
3669
0
      }
3670
0
    }
3671
0
yy168:
3672
0
    YYDEBUG(168, *YYCURSOR);
3673
0
    yyaccept = 4;
3674
0
    yych = *(YYMARKER = ++YYCURSOR);
3675
0
    if (yych <= 'O') {
3676
0
      if (yych == 'A') goto yy289;
3677
0
      if (yych <= 'N') goto yy48;
3678
0
      goto yy290;
3679
0
    } else {
3680
0
      if (yych <= 'a') {
3681
0
        if (yych <= '`') goto yy48;
3682
0
        goto yy289;
3683
0
      } else {
3684
0
        if (yych == 'o') goto yy290;
3685
0
        goto yy48;
3686
0
      }
3687
0
    }
3688
0
yy169:
3689
0
    YYDEBUG(169, *YYCURSOR);
3690
0
    yyaccept = 4;
3691
0
    yych = *(YYMARKER = ++YYCURSOR);
3692
0
    if (yych == 'N') goto yy291;
3693
0
    if (yych == 'n') goto yy291;
3694
0
    goto yy48;
3695
0
yy170:
3696
0
    YYDEBUG(170, *YYCURSOR);
3697
0
    yyaccept = 4;
3698
0
    yych = *(YYMARKER = ++YYCURSOR);
3699
0
    if (yych <= 'F') {
3700
0
      if (yych == 'C') goto yy292;
3701
0
      if (yych <= 'E') goto yy48;
3702
0
      goto yy293;
3703
0
    } else {
3704
0
      if (yych <= 'c') {
3705
0
        if (yych <= 'b') goto yy48;
3706
0
        goto yy292;
3707
0
      } else {
3708
0
        if (yych == 'f') goto yy293;
3709
0
        goto yy48;
3710
0
      }
3711
0
    }
3712
0
yy171:
3713
0
    YYDEBUG(171, *YYCURSOR);
3714
0
    yyaccept = 4;
3715
0
    yych = *(YYMARKER = ++YYCURSOR);
3716
0
    if (yych == 'E') goto yy294;
3717
0
    if (yych == 'e') goto yy294;
3718
0
    goto yy48;
3719
0
yy172:
3720
0
    YYDEBUG(172, *YYCURSOR);
3721
0
    yyaccept = 9;
3722
0
    yych = *(YYMARKER = ++YYCURSOR);
3723
0
    if (yybm[256+yych] & 128) {
3724
0
      goto yy47;
3725
0
    }
3726
0
    if (yych == '\\') goto yy164;
3727
0
yy173:
3728
0
    YYDEBUG(173, *YYCURSOR);
3729
0
    yyleng = YYCURSOR - SCNG(yy_text);
3730
0
#line 1478 "Zend/zend_language_scanner.l"
3731
0
    {
3732
0
  RETURN_TOKEN_WITH_IDENT(T_DO);
3733
0
}
3734
0
#line 3735 "Zend/zend_language_scanner.c"
3735
0
yy174:
3736
0
    YYDEBUG(174, *YYCURSOR);
3737
0
    yyaccept = 4;
3738
0
    yych = *(YYMARKER = ++YYCURSOR);
3739
0
    if (yych == 'H') goto yy296;
3740
0
    if (yych == 'h') goto yy296;
3741
0
    goto yy48;
3742
0
yy175:
3743
0
    YYDEBUG(175, *YYCURSOR);
3744
0
    yyaccept = 4;
3745
0
    yych = *(YYMARKER = ++YYCURSOR);
3746
0
    if (yych == 'S') goto yy297;
3747
0
    if (yych == 's') goto yy297;
3748
0
    goto yy48;
3749
0
yy176:
3750
0
    YYDEBUG(176, *YYCURSOR);
3751
0
    yyaccept = 4;
3752
0
    yych = *(YYMARKER = ++YYCURSOR);
3753
0
    if (yych == 'P') goto yy298;
3754
0
    if (yych == 'p') goto yy298;
3755
0
    goto yy48;
3756
0
yy177:
3757
0
    YYDEBUG(177, *YYCURSOR);
3758
0
    yyaccept = 4;
3759
0
    yych = *(YYMARKER = ++YYCURSOR);
3760
0
    if (yych <= 'U') {
3761
0
      if (yych == 'D') goto yy299;
3762
0
      if (yych <= 'T') goto yy48;
3763
0
      goto yy300;
3764
0
    } else {
3765
0
      if (yych <= 'd') {
3766
0
        if (yych <= 'c') goto yy48;
3767
0
        goto yy299;
3768
0
      } else {
3769
0
        if (yych == 'u') goto yy300;
3770
0
        goto yy48;
3771
0
      }
3772
0
    }
3773
0
yy178:
3774
0
    YYDEBUG(178, *YYCURSOR);
3775
0
    yyaccept = 4;
3776
0
    yych = *(YYMARKER = ++YYCURSOR);
3777
0
    if (yych == 'A') goto yy301;
3778
0
    if (yych == 'a') goto yy301;
3779
0
    goto yy48;
3780
0
yy179:
3781
0
    YYDEBUG(179, *YYCURSOR);
3782
0
    yyaccept = 4;
3783
0
    yych = *(YYMARKER = ++YYCURSOR);
3784
0
    if (yych <= 'T') {
3785
0
      if (yych == 'I') goto yy302;
3786
0
      if (yych <= 'S') goto yy48;
3787
0
      goto yy303;
3788
0
    } else {
3789
0
      if (yych <= 'i') {
3790
0
        if (yych <= 'h') goto yy48;
3791
0
        goto yy302;
3792
0
      } else {
3793
0
        if (yych == 't') goto yy303;
3794
0
        goto yy48;
3795
0
      }
3796
0
    }
3797
0
yy180:
3798
0
    YYDEBUG(180, *YYCURSOR);
3799
0
    yyaccept = 4;
3800
0
    yych = *(YYMARKER = ++YYCURSOR);
3801
0
    if (yych == 'N') goto yy304;
3802
0
    if (yych == 'n') goto yy304;
3803
0
    goto yy48;
3804
0
yy181:
3805
0
    YYDEBUG(181, *YYCURSOR);
3806
0
    yyaccept = 10;
3807
0
    yych = *(YYMARKER = ++YYCURSOR);
3808
0
    if (yybm[256+yych] & 128) {
3809
0
      goto yy47;
3810
0
    }
3811
0
    if (yych == '\\') goto yy164;
3812
0
yy182:
3813
0
    YYDEBUG(182, *YYCURSOR);
3814
0
    yyleng = YYCURSOR - SCNG(yy_text);
3815
0
#line 1407 "Zend/zend_language_scanner.l"
3816
0
    {
3817
0
  RETURN_TOKEN_WITH_IDENT(T_FN);
3818
0
}
3819
0
#line 3820 "Zend/zend_language_scanner.c"
3820
0
yy183:
3821
0
    YYDEBUG(183, *YYCURSOR);
3822
0
    yyaccept = 4;
3823
0
    yych = *(YYMARKER = ++YYCURSOR);
3824
0
    if (yych == 'R') goto yy305;
3825
0
    if (yych == 'r') goto yy305;
3826
0
    goto yy48;
3827
0
yy184:
3828
0
    YYDEBUG(184, *YYCURSOR);
3829
0
    yyaccept = 4;
3830
0
    yych = *(YYMARKER = ++YYCURSOR);
3831
0
    if (yych == 'N') goto yy307;
3832
0
    if (yych == 'n') goto yy307;
3833
0
    goto yy48;
3834
0
yy185:
3835
0
    YYDEBUG(185, *YYCURSOR);
3836
0
    yyaccept = 4;
3837
0
    yych = *(YYMARKER = ++YYCURSOR);
3838
0
    if (yych == 'O') goto yy308;
3839
0
    if (yych == 'o') goto yy308;
3840
0
    goto yy48;
3841
0
yy186:
3842
0
    YYDEBUG(186, *YYCURSOR);
3843
0
    yyaccept = 4;
3844
0
    yych = *(YYMARKER = ++YYCURSOR);
3845
0
    if (yych == 'T') goto yy309;
3846
0
    if (yych == 't') goto yy309;
3847
0
    goto yy48;
3848
0
yy187:
3849
0
    YYDEBUG(187, *YYCURSOR);
3850
0
    yyaccept = 11;
3851
0
    yych = *(YYMARKER = ++YYCURSOR);
3852
0
    if (yybm[256+yych] & 128) {
3853
0
      goto yy47;
3854
0
    }
3855
0
    if (yych == '\\') goto yy164;
3856
0
yy188:
3857
0
    YYDEBUG(188, *YYCURSOR);
3858
0
    yyleng = YYCURSOR - SCNG(yy_text);
3859
0
#line 1454 "Zend/zend_language_scanner.l"
3860
0
    {
3861
0
  RETURN_TOKEN_WITH_IDENT(T_IF);
3862
0
}
3863
0
#line 3864 "Zend/zend_language_scanner.c"
3864
0
yy189:
3865
0
    YYDEBUG(189, *YYCURSOR);
3866
0
    yyaccept = 4;
3867
0
    yych = *(YYMARKER = ++YYCURSOR);
3868
0
    if (yych == 'P') goto yy310;
3869
0
    if (yych == 'p') goto yy310;
3870
0
    goto yy48;
3871
0
yy190:
3872
0
    YYDEBUG(190, *YYCURSOR);
3873
0
    yyaccept = 4;
3874
0
    yych = *(YYMARKER = ++YYCURSOR);
3875
0
    if (yych <= 'T') {
3876
0
      if (yych <= 'C') {
3877
0
        if (yych <= 'B') goto yy48;
3878
0
        goto yy311;
3879
0
      } else {
3880
0
        if (yych <= 'R') goto yy48;
3881
0
        if (yych <= 'S') goto yy312;
3882
0
        goto yy313;
3883
0
      }
3884
0
    } else {
3885
0
      if (yych <= 'r') {
3886
0
        if (yych == 'c') goto yy311;
3887
0
        goto yy48;
3888
0
      } else {
3889
0
        if (yych <= 's') goto yy312;
3890
0
        if (yych <= 't') goto yy313;
3891
0
        goto yy48;
3892
0
      }
3893
0
    }
3894
0
yy191:
3895
0
    YYDEBUG(191, *YYCURSOR);
3896
0
    yyaccept = 4;
3897
0
    yych = *(YYMARKER = ++YYCURSOR);
3898
0
    if (yych == 'S') goto yy314;
3899
0
    if (yych == 's') goto yy314;
3900
0
    goto yy48;
3901
0
yy192:
3902
0
    YYDEBUG(192, *YYCURSOR);
3903
0
    yyaccept = 4;
3904
0
    yych = *(YYMARKER = ++YYCURSOR);
3905
0
    if (yych == 'S') goto yy315;
3906
0
    if (yych == 's') goto yy315;
3907
0
    goto yy48;
3908
0
yy193:
3909
0
    YYDEBUG(193, *YYCURSOR);
3910
0
    yyaccept = 4;
3911
0
    yych = *(YYMARKER = ++YYCURSOR);
3912
0
    if (yych == 'T') goto yy316;
3913
0
    if (yych == 't') goto yy316;
3914
0
    goto yy48;
3915
0
yy194:
3916
0
    YYDEBUG(194, *YYCURSOR);
3917
0
    yyaccept = 4;
3918
0
    yych = *(YYMARKER = ++YYCURSOR);
3919
0
    if (yych == 'M') goto yy317;
3920
0
    if (yych == 'm') goto yy317;
3921
0
    goto yy48;
3922
0
yy195:
3923
0
    YYDEBUG(195, *YYCURSOR);
3924
0
    yyaccept = 4;
3925
0
    yych = *(YYMARKER = ++YYCURSOR);
3926
0
    if (yych == 'W') goto yy318;
3927
0
    if (yych == 'w') goto yy318;
3928
0
    goto yy48;
3929
0
yy196:
3930
0
    YYDEBUG(196, *YYCURSOR);
3931
0
    yyaccept = 12;
3932
0
    yych = *(YYMARKER = ++YYCURSOR);
3933
0
    if (yybm[256+yych] & 128) {
3934
0
      goto yy47;
3935
0
    }
3936
0
    if (yych == '\\') goto yy164;
3937
0
yy197:
3938
0
    YYDEBUG(197, *YYCURSOR);
3939
0
    yyleng = YYCURSOR - SCNG(yy_text);
3940
0
#line 1930 "Zend/zend_language_scanner.l"
3941
0
    {
3942
0
  RETURN_TOKEN_WITH_IDENT(T_LOGICAL_OR);
3943
0
}
3944
0
#line 3945 "Zend/zend_language_scanner.c"
3945
0
yy198:
3946
0
    YYDEBUG(198, *YYCURSOR);
3947
0
    yyaccept = 4;
3948
0
    yych = *(YYMARKER = ++YYCURSOR);
3949
0
    if (yych <= 'O') {
3950
0
      if (yych == 'I') goto yy320;
3951
0
      if (yych <= 'N') goto yy48;
3952
0
      goto yy321;
3953
0
    } else {
3954
0
      if (yych <= 'i') {
3955
0
        if (yych <= 'h') goto yy48;
3956
0
        goto yy320;
3957
0
      } else {
3958
0
        if (yych == 'o') goto yy321;
3959
0
        goto yy48;
3960
0
      }
3961
0
    }
3962
0
yy199:
3963
0
    YYDEBUG(199, *YYCURSOR);
3964
0
    yyaccept = 4;
3965
0
    yych = *(YYMARKER = ++YYCURSOR);
3966
0
    if (yych == 'B') goto yy322;
3967
0
    if (yych == 'b') goto yy322;
3968
0
    goto yy48;
3969
0
yy200:
3970
0
    YYDEBUG(200, *YYCURSOR);
3971
0
    yyaccept = 4;
3972
0
    yych = *(YYMARKER = ++YYCURSOR);
3973
0
    if (yych <= 'T') {
3974
0
      if (yych <= 'P') {
3975
0
        if (yych == 'A') goto yy323;
3976
0
        goto yy48;
3977
0
      } else {
3978
0
        if (yych <= 'Q') goto yy324;
3979
0
        if (yych <= 'S') goto yy48;
3980
0
        goto yy325;
3981
0
      }
3982
0
    } else {
3983
0
      if (yych <= 'p') {
3984
0
        if (yych == 'a') goto yy323;
3985
0
        goto yy48;
3986
0
      } else {
3987
0
        if (yych <= 'q') goto yy324;
3988
0
        if (yych == 't') goto yy325;
3989
0
        goto yy48;
3990
0
      }
3991
0
    }
3992
0
yy201:
3993
0
    YYDEBUG(201, *YYCURSOR);
3994
0
    yyaccept = 4;
3995
0
    yych = *(YYMARKER = ++YYCURSOR);
3996
0
    if (yych == 'A') goto yy326;
3997
0
    if (yych == 'a') goto yy326;
3998
0
    goto yy48;
3999
0
yy202:
4000
0
    YYDEBUG(202, *YYCURSOR);
4001
0
    yyaccept = 4;
4002
0
    yych = *(YYMARKER = ++YYCURSOR);
4003
0
    if (yych == 'I') goto yy327;
4004
0
    if (yych == 'i') goto yy327;
4005
0
    goto yy48;
4006
0
yy203:
4007
0
    YYDEBUG(203, *YYCURSOR);
4008
0
    yyaccept = 4;
4009
0
    yych = *(YYMARKER = ++YYCURSOR);
4010
0
    if (yych == 'R') goto yy328;
4011
0
    if (yych == 'r') goto yy328;
4012
0
    goto yy48;
4013
0
yy204:
4014
0
    YYDEBUG(204, *YYCURSOR);
4015
0
    yyaccept = 4;
4016
0
    yych = *(YYMARKER = ++YYCURSOR);
4017
0
    if (yych <= 'Y') {
4018
0
      if (yych == 'A') goto yy329;
4019
0
      if (yych <= 'X') goto yy48;
4020
0
      goto yy330;
4021
0
    } else {
4022
0
      if (yych <= 'a') {
4023
0
        if (yych <= '`') goto yy48;
4024
0
        goto yy329;
4025
0
      } else {
4026
0
        if (yych == 'y') goto yy330;
4027
0
        goto yy48;
4028
0
      }
4029
0
    }
4030
0
yy205:
4031
0
    YYDEBUG(205, *YYCURSOR);
4032
0
    yyaccept = 4;
4033
0
    yych = *(YYMARKER = ++YYCURSOR);
4034
0
    if (yych == 'S') goto yy332;
4035
0
    if (yych == 's') goto yy332;
4036
0
    goto yy48;
4037
0
yy206:
4038
0
    YYDEBUG(206, *YYCURSOR);
4039
0
    yyaccept = 4;
4040
0
    yych = *(YYMARKER = ++YYCURSOR);
4041
0
    if (yych == 'E') goto yy333;
4042
0
    if (yych == 'e') goto yy333;
4043
0
    goto yy48;
4044
0
yy207:
4045
0
    YYDEBUG(207, *YYCURSOR);
4046
0
    yyaccept = 4;
4047
0
    yych = *(YYMARKER = ++YYCURSOR);
4048
0
    if (yych == 'R') goto yy335;
4049
0
    if (yych == 'r') goto yy335;
4050
0
    goto yy48;
4051
0
yy208:
4052
0
    YYDEBUG(208, *YYCURSOR);
4053
0
    yyaccept = 4;
4054
0
    yych = *(YYMARKER = ++YYCURSOR);
4055
0
    if (yych == 'I') goto yy337;
4056
0
    if (yych == 'i') goto yy337;
4057
0
    goto yy48;
4058
0
yy209:
4059
0
    YYDEBUG(209, *YYCURSOR);
4060
0
    yyaccept = 4;
4061
0
    yych = *(YYMARKER = ++YYCURSOR);
4062
0
    if (yych == 'R') goto yy338;
4063
0
    if (yych == 'r') goto yy338;
4064
0
    goto yy48;
4065
0
yy210:
4066
0
    YYDEBUG(210, *YYCURSOR);
4067
0
    yyaccept = 4;
4068
0
    yych = *(YYMARKER = ++YYCURSOR);
4069
0
    if (yych == 'E') goto yy340;
4070
0
    if (yych == 'e') goto yy340;
4071
0
    goto yy48;
4072
0
yy211:
4073
0
    YYDEBUG(211, *YYCURSOR);
4074
0
    yyaccept = 13;
4075
0
    YYMARKER = ++YYCURSOR;
4076
0
    YYFILL(1);
4077
0
    yych = *YYCURSOR;
4078
0
    YYDEBUG(212, *YYCURSOR);
4079
0
    if (yych <= '\\') {
4080
0
      if (yych <= '@') {
4081
0
        if (yych <= '/') goto yy213;
4082
0
        if (yych <= '9') goto yy211;
4083
0
      } else {
4084
0
        if (yych <= 'Z') goto yy211;
4085
0
        if (yych >= '\\') goto yy341;
4086
0
      }
4087
0
    } else {
4088
0
      if (yych <= '`') {
4089
0
        if (yych == '_') goto yy211;
4090
0
      } else {
4091
0
        if (yych <= 'z') goto yy211;
4092
0
        if (yych >= 0x80) goto yy211;
4093
0
      }
4094
0
    }
4095
0
yy213:
4096
0
    YYDEBUG(213, *YYCURSOR);
4097
0
    yyleng = YYCURSOR - SCNG(yy_text);
4098
0
#line 2447 "Zend/zend_language_scanner.l"
4099
0
    {
4100
0
  RETURN_TOKEN_WITH_STR(T_NAME_FULLY_QUALIFIED, 1);
4101
0
}
4102
0
#line 4103 "Zend/zend_language_scanner.c"
4103
0
yy214:
4104
0
    YYDEBUG(214, *YYCURSOR);
4105
0
    ++YYCURSOR;
4106
0
    YYDEBUG(215, *YYCURSOR);
4107
0
    yyleng = YYCURSOR - SCNG(yy_text);
4108
0
#line 1910 "Zend/zend_language_scanner.l"
4109
0
    {
4110
0
  RETURN_TOKEN(T_XOR_EQUAL);
4111
0
}
4112
0
#line 4113 "Zend/zend_language_scanner.c"
4113
0
yy216:
4114
0
    YYDEBUG(216, *YYCURSOR);
4115
0
    yyaccept = 4;
4116
0
    yych = *(YYMARKER = ++YYCURSOR);
4117
0
    switch (yych) {
4118
0
    case 'C':
4119
0
    case 'c': goto yy342;
4120
0
    case 'D':
4121
0
    case 'd': goto yy343;
4122
0
    case 'F':
4123
0
    case 'f': goto yy344;
4124
0
    case 'H':
4125
0
    case 'h': goto yy345;
4126
0
    case 'L':
4127
0
    case 'l': goto yy346;
4128
0
    case 'M':
4129
0
    case 'm': goto yy347;
4130
0
    case 'N':
4131
0
    case 'n': goto yy348;
4132
0
    case 'P':
4133
0
    case 'p': goto yy349;
4134
0
    case 'T':
4135
0
    case 't': goto yy350;
4136
0
    default:  goto yy48;
4137
0
    }
4138
0
yy217:
4139
0
    YYDEBUG(217, *YYCURSOR);
4140
0
    ++YYCURSOR;
4141
0
    YYDEBUG(218, *YYCURSOR);
4142
0
    yyleng = YYCURSOR - SCNG(yy_text);
4143
0
#line 1906 "Zend/zend_language_scanner.l"
4144
0
    {
4145
0
  RETURN_TOKEN(T_OR_EQUAL);
4146
0
}
4147
0
#line 4148 "Zend/zend_language_scanner.c"
4148
0
yy219:
4149
0
    YYDEBUG(219, *YYCURSOR);
4150
0
    ++YYCURSOR;
4151
0
    YYDEBUG(220, *YYCURSOR);
4152
0
    yyleng = YYCURSOR - SCNG(yy_text);
4153
0
#line 1918 "Zend/zend_language_scanner.l"
4154
0
    {
4155
0
  RETURN_TOKEN(T_PIPE);
4156
0
}
4157
0
#line 4158 "Zend/zend_language_scanner.c"
4158
0
yy221:
4159
0
    YYDEBUG(221, *YYCURSOR);
4160
0
    ++YYCURSOR;
4161
0
    YYDEBUG(222, *YYCURSOR);
4162
0
    yyleng = YYCURSOR - SCNG(yy_text);
4163
0
#line 1922 "Zend/zend_language_scanner.l"
4164
0
    {
4165
0
  RETURN_TOKEN(T_BOOLEAN_OR);
4166
0
}
4167
0
#line 4168 "Zend/zend_language_scanner.c"
4168
0
yy223:
4169
0
    YYDEBUG(223, *YYCURSOR);
4170
0
    ++YYCURSOR;
4171
0
    YYDEBUG(224, *YYCURSOR);
4172
0
    yyleng = YYCURSOR - SCNG(yy_text);
4173
0
#line 1838 "Zend/zend_language_scanner.l"
4174
0
    {
4175
0
  RETURN_TOKEN(T_IS_NOT_IDENTICAL);
4176
0
}
4177
0
#line 4178 "Zend/zend_language_scanner.c"
4178
0
yy225:
4179
0
    YYDEBUG(225, *YYCURSOR);
4180
0
    ++YYCURSOR;
4181
0
    YYFILL(1);
4182
0
    yych = *YYCURSOR;
4183
0
    YYDEBUG(226, *YYCURSOR);
4184
0
    if (yybm[0+yych] & 2) {
4185
0
      goto yy225;
4186
0
    }
4187
0
    if (yych <= 0x00) goto yy86;
4188
0
    goto yy84;
4189
0
yy227:
4190
0
    YYDEBUG(227, *YYCURSOR);
4191
0
    ++YYCURSOR;
4192
0
    YYFILL(1);
4193
0
    yych = *YYCURSOR;
4194
0
    YYDEBUG(228, *YYCURSOR);
4195
0
    if (yych <= 0x1F) {
4196
0
      if (yych <= '\t') {
4197
0
        if (yych <= 0x00) goto yy86;
4198
0
        if (yych <= 0x08) goto yy225;
4199
0
        goto yy227;
4200
0
      } else {
4201
0
        if (yych <= '\n') goto yy84;
4202
0
        if (yych == '\r') goto yy84;
4203
0
        goto yy225;
4204
0
      }
4205
0
    } else {
4206
0
      if (yych <= '$') {
4207
0
        if (yych <= ' ') goto yy227;
4208
0
        if (yych <= '"') goto yy225;
4209
0
        if (yych <= '#') goto yy351;
4210
0
        goto yy352;
4211
0
      } else {
4212
0
        if (yych <= '-') goto yy225;
4213
0
        if (yych <= '.') goto yy353;
4214
0
        if (yych <= '/') goto yy354;
4215
0
        goto yy225;
4216
0
      }
4217
0
    }
4218
0
yy229:
4219
0
    YYDEBUG(229, *YYCURSOR);
4220
0
    yych = *++YYCURSOR;
4221
0
    if (yych == '.') goto yy88;
4222
0
    goto yy86;
4223
0
yy230:
4224
0
    YYDEBUG(230, *YYCURSOR);
4225
0
    ++YYCURSOR;
4226
0
    YYFILL(1);
4227
0
    yych = *YYCURSOR;
4228
0
    YYDEBUG(231, *YYCURSOR);
4229
0
    if (yybm[0+yych] & 4) {
4230
0
      goto yy230;
4231
0
    }
4232
0
    if (yych <= 0x00) goto yy86;
4233
0
    goto yy355;
4234
0
yy232:
4235
0
    YYDEBUG(232, *YYCURSOR);
4236
0
    yych = *++YYCURSOR;
4237
0
    if (yych == 'R') goto yy357;
4238
0
    if (yych == 'r') goto yy357;
4239
0
    goto yy86;
4240
0
yy233:
4241
0
    YYDEBUG(233, *YYCURSOR);
4242
0
    yych = *++YYCURSOR;
4243
0
    if (yych == 'N') goto yy358;
4244
0
    if (yych == 'n') goto yy358;
4245
0
    goto yy86;
4246
0
yy234:
4247
0
    YYDEBUG(234, *YYCURSOR);
4248
0
    yych = *++YYCURSOR;
4249
0
    if (yych == 'O') goto yy359;
4250
0
    if (yych == 'o') goto yy359;
4251
0
    goto yy86;
4252
0
yy235:
4253
0
    YYDEBUG(235, *YYCURSOR);
4254
0
    yych = *++YYCURSOR;
4255
0
    if (yych == 'U') goto yy360;
4256
0
    if (yych == 'u') goto yy360;
4257
0
    goto yy86;
4258
0
yy236:
4259
0
    YYDEBUG(236, *YYCURSOR);
4260
0
    yych = *++YYCURSOR;
4261
0
    if (yych == 'O') goto yy361;
4262
0
    if (yych == 'o') goto yy361;
4263
0
    goto yy86;
4264
0
yy237:
4265
0
    YYDEBUG(237, *YYCURSOR);
4266
0
    yych = *++YYCURSOR;
4267
0
    if (yych == 'T') goto yy362;
4268
0
    if (yych == 't') goto yy362;
4269
0
    goto yy86;
4270
0
yy238:
4271
0
    YYDEBUG(238, *YYCURSOR);
4272
0
    yych = *++YYCURSOR;
4273
0
    if (yych == 'J') goto yy363;
4274
0
    if (yych == 'j') goto yy363;
4275
0
    goto yy86;
4276
0
yy239:
4277
0
    YYDEBUG(239, *YYCURSOR);
4278
0
    yych = *++YYCURSOR;
4279
0
    if (yych == 'A') goto yy364;
4280
0
    if (yych == 'a') goto yy364;
4281
0
    goto yy86;
4282
0
yy240:
4283
0
    YYDEBUG(240, *YYCURSOR);
4284
0
    yych = *++YYCURSOR;
4285
0
    if (yych == 'R') goto yy365;
4286
0
    if (yych == 'r') goto yy365;
4287
0
    goto yy86;
4288
0
yy241:
4289
0
    YYDEBUG(241, *YYCURSOR);
4290
0
    yych = *++YYCURSOR;
4291
0
    if (yych == 'S') goto yy366;
4292
0
    if (yych == 's') goto yy366;
4293
0
    goto yy86;
4294
0
yy242:
4295
0
    YYDEBUG(242, *YYCURSOR);
4296
0
    yych = *++YYCURSOR;
4297
0
    if (yych == 'I') goto yy367;
4298
0
    if (yych == 'i') goto yy367;
4299
0
    goto yy86;
4300
0
yy243:
4301
0
    YYDEBUG(243, *YYCURSOR);
4302
0
    ++YYCURSOR;
4303
0
    YYDEBUG(244, *YYCURSOR);
4304
0
    yyleng = YYCURSOR - SCNG(yy_text);
4305
0
#line 1878 "Zend/zend_language_scanner.l"
4306
0
    {
4307
0
  RETURN_TOKEN(T_POW_EQUAL);
4308
0
}
4309
0
#line 4310 "Zend/zend_language_scanner.c"
4310
0
yy245:
4311
0
    YYDEBUG(245, *YYCURSOR);
4312
0
    ++YYCURSOR;
4313
0
    YYDEBUG(246, *YYCURSOR);
4314
0
    yyleng = YYCURSOR - SCNG(yy_text);
4315
0
#line 1618 "Zend/zend_language_scanner.l"
4316
0
    {
4317
0
  RETURN_TOKEN(T_ELLIPSIS);
4318
0
}
4319
0
#line 4320 "Zend/zend_language_scanner.c"
4320
0
yy247:
4321
0
    YYDEBUG(247, *YYCURSOR);
4322
0
    ++YYCURSOR;
4323
0
    YYFILL(1);
4324
0
    yych = *YYCURSOR;
4325
0
    if (yych <= '/') goto yy86;
4326
0
    if (yych <= '9') goto yy123;
4327
0
    goto yy86;
4328
0
yy248:
4329
0
    YYDEBUG(248, *YYCURSOR);
4330
0
    yych = *++YYCURSOR;
4331
0
    if (yych <= '\f') {
4332
0
      if (yych <= 0x08) goto yy86;
4333
0
      if (yych <= '\n') goto yy368;
4334
0
      goto yy86;
4335
0
    } else {
4336
0
      if (yych <= '\r') goto yy368;
4337
0
      if (yych == ' ') goto yy368;
4338
0
      goto yy86;
4339
0
    }
4340
0
yy249:
4341
0
    YYDEBUG(249, *YYCURSOR);
4342
0
    yyaccept = 14;
4343
0
    YYMARKER = ++YYCURSOR;
4344
0
    YYFILL(1);
4345
0
    yych = *YYCURSOR;
4346
0
    YYDEBUG(250, *YYCURSOR);
4347
0
    if (yybm[0+yych] & 8) {
4348
0
      goto yy249;
4349
0
    }
4350
0
    if (yych == '_') goto yy134;
4351
0
yy251:
4352
0
    YYDEBUG(251, *YYCURSOR);
4353
0
    yyleng = YYCURSOR - SCNG(yy_text);
4354
0
#line 2011 "Zend/zend_language_scanner.l"
4355
0
    {
4356
  /* The +/- 2 skips "0b" */
4357
0
  size_t len = yyleng - 2;
4358
0
  char *end, *bin = yytext + 2;
4359
0
  bool contains_underscores;
4360
4361
  /* Skip any leading 0s */
4362
0
  while (len > 0 && (*bin == '0' || *bin == '_')) {
4363
0
    ++bin;
4364
0
    --len;
4365
0
  }
4366
4367
0
  contains_underscores = (memchr(bin, '_', len) != NULL);
4368
4369
0
  if (contains_underscores) {
4370
0
    bin = estrndup(bin, len);
4371
0
    strip_underscores(bin, &len);
4372
0
  }
4373
4374
0
  if (len < SIZEOF_ZEND_LONG * 8) {
4375
0
    if (len == 0) {
4376
0
      ZVAL_LONG(zendlval, 0);
4377
0
    } else {
4378
0
      errno = 0;
4379
0
      ZVAL_LONG(zendlval, ZEND_STRTOL(bin, &end, 2));
4380
0
      ZEND_ASSERT(!errno && end == bin + len);
4381
0
    }
4382
0
    if (contains_underscores) {
4383
0
      efree(bin);
4384
0
    }
4385
0
    RETURN_TOKEN_WITH_VAL(T_LNUMBER);
4386
0
  } else {
4387
0
    ZVAL_DOUBLE(zendlval, zend_bin_strtod(bin, (const char **)&end));
4388
    /* errno isn't checked since we allow HUGE_VAL/INF overflow */
4389
0
    ZEND_ASSERT(end == bin + len);
4390
0
    if (contains_underscores) {
4391
0
      efree(bin);
4392
0
    }
4393
0
    RETURN_TOKEN_WITH_VAL(T_DNUMBER);
4394
0
  }
4395
0
}
4396
0
#line 4397 "Zend/zend_language_scanner.c"
4397
0
yy252:
4398
0
    YYDEBUG(252, *YYCURSOR);
4399
0
    ++YYCURSOR;
4400
0
    YYFILL(1);
4401
0
    yych = *YYCURSOR;
4402
0
    if (yych <= '/') goto yy86;
4403
0
    if (yych >= ':') goto yy86;
4404
0
yy253:
4405
0
    YYDEBUG(253, *YYCURSOR);
4406
0
    yyaccept = 5;
4407
0
    YYMARKER = ++YYCURSOR;
4408
0
    YYFILL(1);
4409
0
    yych = *YYCURSOR;
4410
0
    YYDEBUG(254, *YYCURSOR);
4411
0
    if (yych <= '/') goto yy125;
4412
0
    if (yych <= '9') goto yy253;
4413
0
    if (yych == '_') goto yy252;
4414
0
    goto yy125;
4415
0
yy255:
4416
0
    YYDEBUG(255, *YYCURSOR);
4417
0
    yyaccept = 15;
4418
0
    YYMARKER = ++YYCURSOR;
4419
0
    YYFILL(1);
4420
0
    yych = *YYCURSOR;
4421
0
    YYDEBUG(256, *YYCURSOR);
4422
0
    if (yybm[0+yych] & 16) {
4423
0
      goto yy255;
4424
0
    }
4425
0
    if (yych == '_') goto yy136;
4426
0
yy257:
4427
0
    YYDEBUG(257, *YYCURSOR);
4428
0
    yyleng = YYCURSOR - SCNG(yy_text);
4429
0
#line 2053 "Zend/zend_language_scanner.l"
4430
0
    {
4431
  /* The +/- 2 skips "0o" */
4432
0
  size_t len = yyleng - 2;
4433
0
  char *end, *octal = yytext + 2;
4434
0
  bool contains_underscores = (memchr(octal, '_', len) != NULL);
4435
4436
  /* Skip any leading 0s */
4437
0
  while (len > 0 && (*octal == '0' || *octal == '_')) {
4438
0
    ++octal;
4439
0
    --len;
4440
0
  }
4441
4442
0
  if (len == 0) {
4443
0
    ZVAL_LONG(zendlval, 0);
4444
0
    RETURN_TOKEN_WITH_VAL(T_LNUMBER);
4445
0
  }
4446
4447
0
  if (contains_underscores) {
4448
0
    octal = estrndup(octal, len);
4449
0
    strip_underscores(octal, &len);
4450
0
  }
4451
4452
0
  errno = 0;
4453
4454
0
  ZVAL_LONG(zendlval, ZEND_STRTOL(octal, &end, 8));
4455
4456
0
  ZEND_ASSERT(end == octal + len);
4457
4458
0
  if (!errno) {
4459
0
    if (contains_underscores) {
4460
0
      efree(octal);
4461
0
    }
4462
0
    RETURN_TOKEN_WITH_VAL(T_LNUMBER);
4463
0
  }
4464
4465
  /* Overflow */
4466
0
  ZEND_ASSERT(errno == ERANGE);
4467
  /* Reset errno */
4468
0
  errno = 0;
4469
4470
  /* zend_oct_strtod skips leading '0' */
4471
0
  ZVAL_DOUBLE(zendlval, zend_oct_strtod(octal, (const char **)&end));
4472
0
  ZEND_ASSERT(!errno);
4473
0
  ZEND_ASSERT(end == octal + len);
4474
0
  if (contains_underscores) {
4475
0
    efree(octal);
4476
0
  }
4477
0
  RETURN_TOKEN_WITH_VAL(T_DNUMBER);
4478
0
}
4479
0
#line 4480 "Zend/zend_language_scanner.c"
4480
0
yy258:
4481
0
    YYDEBUG(258, *YYCURSOR);
4482
0
    yyaccept = 16;
4483
0
    YYMARKER = ++YYCURSOR;
4484
0
    YYFILL(1);
4485
0
    yych = *YYCURSOR;
4486
0
    YYDEBUG(259, *YYCURSOR);
4487
0
    if (yybm[0+yych] & 32) {
4488
0
      goto yy258;
4489
0
    }
4490
0
    if (yych == '_') goto yy137;
4491
0
yy260:
4492
0
    YYDEBUG(260, *YYCURSOR);
4493
0
    yyleng = YYCURSOR - SCNG(yy_text);
4494
0
#line 2166 "Zend/zend_language_scanner.l"
4495
0
    {
4496
  /* The +/- 2 skips "0x" */
4497
0
  size_t len = yyleng - 2;
4498
0
  char *end, *hex = yytext + 2;
4499
0
  bool contains_underscores;
4500
4501
  /* Skip any leading 0s */
4502
0
  while (len > 0 && (*hex == '0' || *hex == '_')) {
4503
0
    ++hex;
4504
0
    --len;
4505
0
  }
4506
4507
0
  contains_underscores = (memchr(hex, '_', len) != NULL);
4508
4509
0
  if (contains_underscores) {
4510
0
    hex = estrndup(hex, len);
4511
0
    strip_underscores(hex, &len);
4512
0
  }
4513
4514
0
  if (len < SIZEOF_ZEND_LONG * 2 || (len == SIZEOF_ZEND_LONG * 2 && *hex <= '7')) {
4515
0
    if (len == 0) {
4516
0
      ZVAL_LONG(zendlval, 0);
4517
0
    } else {
4518
0
      errno = 0;
4519
0
      ZVAL_LONG(zendlval, ZEND_STRTOL(hex, &end, 16));
4520
0
      ZEND_ASSERT(!errno && end == hex + len);
4521
0
    }
4522
0
    if (contains_underscores) {
4523
0
      efree(hex);
4524
0
    }
4525
0
    RETURN_TOKEN_WITH_VAL(T_LNUMBER);
4526
0
  } else {
4527
0
    ZVAL_DOUBLE(zendlval, zend_hex_strtod(hex, (const char **)&end));
4528
    /* errno isn't checked since we allow HUGE_VAL/INF overflow */
4529
0
    ZEND_ASSERT(end == hex + len);
4530
0
    if (contains_underscores) {
4531
0
      efree(hex);
4532
0
    }
4533
0
    RETURN_TOKEN_WITH_VAL(T_DNUMBER);
4534
0
  }
4535
0
}
4536
0
#line 4537 "Zend/zend_language_scanner.c"
4537
0
yy261:
4538
0
    YYDEBUG(261, *YYCURSOR);
4539
0
    ++YYCURSOR;
4540
0
    YYFILL(2);
4541
0
    yych = *YYCURSOR;
4542
0
    YYDEBUG(262, *YYCURSOR);
4543
0
    if (yych <= '\'') {
4544
0
      if (yych <= ' ') {
4545
0
        if (yych == '\t') goto yy261;
4546
0
        if (yych <= 0x1F) goto yy86;
4547
0
        goto yy261;
4548
0
      } else {
4549
0
        if (yych == '"') goto yy370;
4550
0
        if (yych <= '&') goto yy86;
4551
0
        goto yy371;
4552
0
      }
4553
0
    } else {
4554
0
      if (yych <= '_') {
4555
0
        if (yych <= '@') goto yy86;
4556
0
        if (yych <= 'Z') goto yy372;
4557
0
        if (yych <= '^') goto yy86;
4558
0
        goto yy372;
4559
0
      } else {
4560
0
        if (yych <= '`') goto yy86;
4561
0
        if (yych <= 'z') goto yy372;
4562
0
        if (yych <= 0x7F) goto yy86;
4563
0
        goto yy372;
4564
0
      }
4565
0
    }
4566
0
yy263:
4567
0
    YYDEBUG(263, *YYCURSOR);
4568
0
    ++YYCURSOR;
4569
0
    YYDEBUG(264, *YYCURSOR);
4570
0
    yyleng = YYCURSOR - SCNG(yy_text);
4571
0
#line 1894 "Zend/zend_language_scanner.l"
4572
0
    {
4573
0
  RETURN_TOKEN(T_SL_EQUAL);
4574
0
}
4575
0
#line 4576 "Zend/zend_language_scanner.c"
4576
0
yy265:
4577
0
    YYDEBUG(265, *YYCURSOR);
4578
0
    ++YYCURSOR;
4579
0
    YYDEBUG(266, *YYCURSOR);
4580
0
    yyleng = YYCURSOR - SCNG(yy_text);
4581
0
#line 1850 "Zend/zend_language_scanner.l"
4582
0
    {
4583
0
  RETURN_TOKEN(T_SPACESHIP);
4584
0
}
4585
0
#line 4586 "Zend/zend_language_scanner.c"
4586
0
yy267:
4587
0
    YYDEBUG(267, *YYCURSOR);
4588
0
    ++YYCURSOR;
4589
0
    YYDEBUG(268, *YYCURSOR);
4590
0
    yyleng = YYCURSOR - SCNG(yy_text);
4591
0
#line 1834 "Zend/zend_language_scanner.l"
4592
0
    {
4593
0
  RETURN_TOKEN(T_IS_IDENTICAL);
4594
0
}
4595
0
#line 4596 "Zend/zend_language_scanner.c"
4596
0
yy269:
4597
0
    YYDEBUG(269, *YYCURSOR);
4598
0
    ++YYCURSOR;
4599
0
    YYDEBUG(270, *YYCURSOR);
4600
0
    yyleng = YYCURSOR - SCNG(yy_text);
4601
0
#line 1898 "Zend/zend_language_scanner.l"
4602
0
    {
4603
0
  RETURN_TOKEN(T_SR_EQUAL);
4604
0
}
4605
0
#line 4606 "Zend/zend_language_scanner.c"
4606
0
yy271:
4607
0
    YYDEBUG(271, *YYCURSOR);
4608
0
    ++YYCURSOR;
4609
0
    YYDEBUG(272, *YYCURSOR);
4610
0
    yyleng = YYCURSOR - SCNG(yy_text);
4611
0
#line 1592 "Zend/zend_language_scanner.l"
4612
0
    {
4613
0
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
4614
0
  RETURN_TOKEN(T_NULLSAFE_OBJECT_OPERATOR);
4615
0
}
4616
0
#line 4617 "Zend/zend_language_scanner.c"
4617
0
yy273:
4618
0
    YYDEBUG(273, *YYCURSOR);
4619
0
    ++YYCURSOR;
4620
0
    goto yy156;
4621
0
yy274:
4622
0
    YYDEBUG(274, *YYCURSOR);
4623
0
    yych = *++YYCURSOR;
4624
0
    if (yych == '\n') goto yy273;
4625
0
    goto yy156;
4626
0
yy275:
4627
0
    YYDEBUG(275, *YYCURSOR);
4628
0
    ++YYCURSOR;
4629
0
    YYDEBUG(276, *YYCURSOR);
4630
0
    yyleng = YYCURSOR - SCNG(yy_text);
4631
0
#line 1914 "Zend/zend_language_scanner.l"
4632
0
    {
4633
0
  RETURN_TOKEN(T_COALESCE_EQUAL);
4634
0
}
4635
0
#line 4636 "Zend/zend_language_scanner.c"
4636
0
yy277:
4637
0
    YYDEBUG(277, *YYCURSOR);
4638
0
    yyaccept = 4;
4639
0
    yych = *(YYMARKER = ++YYCURSOR);
4640
0
    if (yych == 'T') goto yy374;
4641
0
    if (yych == 't') goto yy374;
4642
0
    goto yy48;
4643
0
yy278:
4644
0
    YYDEBUG(278, *YYCURSOR);
4645
0
    yyaccept = 17;
4646
0
    yych = *(YYMARKER = ++YYCURSOR);
4647
0
    if (yybm[256+yych] & 128) {
4648
0
      goto yy47;
4649
0
    }
4650
0
    if (yych == '\\') goto yy164;
4651
0
yy279:
4652
0
    YYDEBUG(279, *YYCURSOR);
4653
0
    yyleng = YYCURSOR - SCNG(yy_text);
4654
0
#line 1934 "Zend/zend_language_scanner.l"
4655
0
    {
4656
0
  RETURN_TOKEN_WITH_IDENT(T_LOGICAL_AND);
4657
0
}
4658
0
#line 4659 "Zend/zend_language_scanner.c"
4659
0
yy280:
4660
0
    YYDEBUG(280, *YYCURSOR);
4661
0
    yyaccept = 4;
4662
0
    yych = *(YYMARKER = ++YYCURSOR);
4663
0
    if (yych == 'A') goto yy375;
4664
0
    if (yych == 'a') goto yy375;
4665
0
    goto yy48;
4666
0
yy281:
4667
0
    YYDEBUG(281, *YYCURSOR);
4668
0
    yyaccept = 18;
4669
0
    YYMARKER = ++YYCURSOR;
4670
0
    YYFILL(1);
4671
0
    yych = *YYCURSOR;
4672
0
    YYDEBUG(282, *YYCURSOR);
4673
0
    if (yych <= '\\') {
4674
0
      if (yych <= '@') {
4675
0
        if (yych <= '/') goto yy283;
4676
0
        if (yych <= '9') goto yy281;
4677
0
      } else {
4678
0
        if (yych <= 'Z') goto yy281;
4679
0
        if (yych >= '\\') goto yy164;
4680
0
      }
4681
0
    } else {
4682
0
      if (yych <= '`') {
4683
0
        if (yych == '_') goto yy281;
4684
0
      } else {
4685
0
        if (yych <= 'z') goto yy281;
4686
0
        if (yych >= 0x80) goto yy281;
4687
0
      }
4688
0
    }
4689
0
yy283:
4690
0
    YYDEBUG(283, *YYCURSOR);
4691
0
    yyleng = YYCURSOR - SCNG(yy_text);
4692
0
#line 2443 "Zend/zend_language_scanner.l"
4693
0
    {
4694
0
  RETURN_TOKEN_WITH_STR(T_NAME_QUALIFIED, 0);
4695
0
}
4696
0
#line 4697 "Zend/zend_language_scanner.c"
4697
0
yy284:
4698
0
    YYDEBUG(284, *YYCURSOR);
4699
0
    yych = *++YYCURSOR;
4700
0
    if (yych == '<') goto yy261;
4701
0
    goto yy86;
4702
0
yy285:
4703
0
    YYDEBUG(285, *YYCURSOR);
4704
0
    yyaccept = 4;
4705
0
    yych = *(YYMARKER = ++YYCURSOR);
4706
0
    if (yych == 'A') goto yy376;
4707
0
    if (yych == 'a') goto yy376;
4708
0
    goto yy48;
4709
0
yy286:
4710
0
    YYDEBUG(286, *YYCURSOR);
4711
0
    yyaccept = 4;
4712
0
    yych = *(YYMARKER = ++YYCURSOR);
4713
0
    if (yych == 'L') goto yy377;
4714
0
    if (yych == 'l') goto yy377;
4715
0
    goto yy48;
4716
0
yy287:
4717
0
    YYDEBUG(287, *YYCURSOR);
4718
0
    yyaccept = 4;
4719
0
    yych = *(YYMARKER = ++YYCURSOR);
4720
0
    if (yych == 'E') goto yy378;
4721
0
    if (yych == 'e') goto yy378;
4722
0
    goto yy48;
4723
0
yy288:
4724
0
    YYDEBUG(288, *YYCURSOR);
4725
0
    yyaccept = 4;
4726
0
    yych = *(YYMARKER = ++YYCURSOR);
4727
0
    if (yych == 'C') goto yy380;
4728
0
    if (yych == 'c') goto yy380;
4729
0
    goto yy48;
4730
0
yy289:
4731
0
    YYDEBUG(289, *YYCURSOR);
4732
0
    yyaccept = 4;
4733
0
    yych = *(YYMARKER = ++YYCURSOR);
4734
0
    if (yych == 'S') goto yy381;
4735
0
    if (yych == 's') goto yy381;
4736
0
    goto yy48;
4737
0
yy290:
4738
0
    YYDEBUG(290, *YYCURSOR);
4739
0
    yyaccept = 4;
4740
0
    yych = *(YYMARKER = ++YYCURSOR);
4741
0
    if (yych == 'N') goto yy382;
4742
0
    if (yych == 'n') goto yy382;
4743
0
    goto yy48;
4744
0
yy291:
4745
0
    YYDEBUG(291, *YYCURSOR);
4746
0
    yyaccept = 4;
4747
0
    yych = *(YYMARKER = ++YYCURSOR);
4748
0
    if (yych <= 'T') {
4749
0
      if (yych <= 'R') goto yy48;
4750
0
      if (yych <= 'S') goto yy383;
4751
0
      goto yy384;
4752
0
    } else {
4753
0
      if (yych <= 'r') goto yy48;
4754
0
      if (yych <= 's') goto yy383;
4755
0
      if (yych <= 't') goto yy384;
4756
0
      goto yy48;
4757
0
    }
4758
0
yy292:
4759
0
    YYDEBUG(292, *YYCURSOR);
4760
0
    yyaccept = 4;
4761
0
    yych = *(YYMARKER = ++YYCURSOR);
4762
0
    if (yych == 'L') goto yy385;
4763
0
    if (yych == 'l') goto yy385;
4764
0
    goto yy48;
4765
0
yy293:
4766
0
    YYDEBUG(293, *YYCURSOR);
4767
0
    yyaccept = 4;
4768
0
    yych = *(YYMARKER = ++YYCURSOR);
4769
0
    if (yych == 'A') goto yy386;
4770
0
    if (yych == 'a') goto yy386;
4771
0
    goto yy48;
4772
0
yy294:
4773
0
    YYDEBUG(294, *YYCURSOR);
4774
0
    yyaccept = 19;
4775
0
    yych = *(YYMARKER = ++YYCURSOR);
4776
0
    if (yybm[256+yych] & 128) {
4777
0
      goto yy47;
4778
0
    }
4779
0
    if (yych == '\\') goto yy164;
4780
0
yy295:
4781
0
    YYDEBUG(295, *YYCURSOR);
4782
0
    yyleng = YYCURSOR - SCNG(yy_text);
4783
0
#line 1403 "Zend/zend_language_scanner.l"
4784
0
    {
4785
0
  RETURN_TOKEN_WITH_IDENT(T_EXIT);
4786
0
}
4787
0
#line 4788 "Zend/zend_language_scanner.c"
4788
0
yy296:
4789
0
    YYDEBUG(296, *YYCURSOR);
4790
0
    yyaccept = 4;
4791
0
    yych = *(YYMARKER = ++YYCURSOR);
4792
0
    if (yych == 'O') goto yy387;
4793
0
    if (yych == 'o') goto yy387;
4794
0
    goto yy48;
4795
0
yy297:
4796
0
    YYDEBUG(297, *YYCURSOR);
4797
0
    yyaccept = 4;
4798
0
    yych = *(YYMARKER = ++YYCURSOR);
4799
0
    if (yych == 'E') goto yy389;
4800
0
    if (yych == 'e') goto yy389;
4801
0
    goto yy48;
4802
0
yy298:
4803
0
    YYDEBUG(298, *YYCURSOR);
4804
0
    yyaccept = 4;
4805
0
    yych = *(YYMARKER = ++YYCURSOR);
4806
0
    if (yych == 'T') goto yy391;
4807
0
    if (yych == 't') goto yy391;
4808
0
    goto yy48;
4809
0
yy299:
4810
0
    YYDEBUG(299, *YYCURSOR);
4811
0
    yyaccept = 4;
4812
0
    yych = *(YYMARKER = ++YYCURSOR);
4813
0
    switch (yych) {
4814
0
    case 'D':
4815
0
    case 'd': goto yy392;
4816
0
    case 'F':
4817
0
    case 'f': goto yy393;
4818
0
    case 'I':
4819
0
    case 'i': goto yy394;
4820
0
    case 'S':
4821
0
    case 's': goto yy395;
4822
0
    case 'W':
4823
0
    case 'w': goto yy396;
4824
0
    default:  goto yy48;
4825
0
    }
4826
0
yy300:
4827
0
    YYDEBUG(300, *YYCURSOR);
4828
0
    yyaccept = 4;
4829
0
    yych = *(YYMARKER = ++YYCURSOR);
4830
0
    if (yych == 'M') goto yy397;
4831
0
    if (yych == 'm') goto yy397;
4832
0
    goto yy48;
4833
0
yy301:
4834
0
    YYDEBUG(301, *YYCURSOR);
4835
0
    yyaccept = 4;
4836
0
    yych = *(YYMARKER = ++YYCURSOR);
4837
0
    if (yych == 'L') goto yy398;
4838
0
    if (yych == 'l') goto yy398;
4839
0
    goto yy48;
4840
0
yy302:
4841
0
    YYDEBUG(302, *YYCURSOR);
4842
0
    yyaccept = 4;
4843
0
    yych = *(YYMARKER = ++YYCURSOR);
4844
0
    if (yych == 'T') goto yy400;
4845
0
    if (yych == 't') goto yy400;
4846
0
    goto yy48;
4847
0
yy303:
4848
0
    YYDEBUG(303, *YYCURSOR);
4849
0
    yyaccept = 4;
4850
0
    yych = *(YYMARKER = ++YYCURSOR);
4851
0
    if (yych == 'E') goto yy402;
4852
0
    if (yych == 'e') goto yy402;
4853
0
    goto yy48;
4854
0
yy304:
4855
0
    YYDEBUG(304, *YYCURSOR);
4856
0
    yyaccept = 4;
4857
0
    yych = *(YYMARKER = ++YYCURSOR);
4858
0
    if (yych == 'A') goto yy403;
4859
0
    if (yych == 'a') goto yy403;
4860
0
    goto yy48;
4861
0
yy305:
4862
0
    YYDEBUG(305, *YYCURSOR);
4863
0
    yyaccept = 20;
4864
0
    yych = *(YYMARKER = ++YYCURSOR);
4865
0
    if (yych <= '\\') {
4866
0
      if (yych <= 'D') {
4867
0
        if (yych <= '/') goto yy306;
4868
0
        if (yych <= '9') goto yy47;
4869
0
        if (yych >= 'A') goto yy47;
4870
0
      } else {
4871
0
        if (yych <= 'E') goto yy404;
4872
0
        if (yych <= 'Z') goto yy47;
4873
0
        if (yych >= '\\') goto yy164;
4874
0
      }
4875
0
    } else {
4876
0
      if (yych <= 'd') {
4877
0
        if (yych == '_') goto yy47;
4878
0
        if (yych >= 'a') goto yy47;
4879
0
      } else {
4880
0
        if (yych <= 'e') goto yy404;
4881
0
        if (yych <= 'z') goto yy47;
4882
0
        if (yych >= 0x80) goto yy47;
4883
0
      }
4884
0
    }
4885
0
yy306:
4886
0
    YYDEBUG(306, *YYCURSOR);
4887
0
    yyleng = YYCURSOR - SCNG(yy_text);
4888
0
#line 1482 "Zend/zend_language_scanner.l"
4889
0
    {
4890
0
  RETURN_TOKEN_WITH_IDENT(T_FOR);
4891
0
}
4892
0
#line 4893 "Zend/zend_language_scanner.c"
4893
0
yy307:
4894
0
    YYDEBUG(307, *YYCURSOR);
4895
0
    yyaccept = 4;
4896
0
    yych = *(YYMARKER = ++YYCURSOR);
4897
0
    if (yych == 'C') goto yy405;
4898
0
    if (yych == 'c') goto yy405;
4899
0
    goto yy48;
4900
0
yy308:
4901
0
    YYDEBUG(308, *YYCURSOR);
4902
0
    yyaccept = 4;
4903
0
    yych = *(YYMARKER = ++YYCURSOR);
4904
0
    if (yych == 'B') goto yy406;
4905
0
    if (yych == 'b') goto yy406;
4906
0
    goto yy48;
4907
0
yy309:
4908
0
    YYDEBUG(309, *YYCURSOR);
4909
0
    yyaccept = 4;
4910
0
    yych = *(YYMARKER = ++YYCURSOR);
4911
0
    if (yych == 'O') goto yy407;
4912
0
    if (yych == 'o') goto yy407;
4913
0
    goto yy48;
4914
0
yy310:
4915
0
    YYDEBUG(310, *YYCURSOR);
4916
0
    yyaccept = 4;
4917
0
    yych = *(YYMARKER = ++YYCURSOR);
4918
0
    if (yych == 'L') goto yy409;
4919
0
    if (yych == 'l') goto yy409;
4920
0
    goto yy48;
4921
0
yy311:
4922
0
    YYDEBUG(311, *YYCURSOR);
4923
0
    yyaccept = 4;
4924
0
    yych = *(YYMARKER = ++YYCURSOR);
4925
0
    if (yych == 'L') goto yy410;
4926
0
    if (yych == 'l') goto yy410;
4927
0
    goto yy48;
4928
0
yy312:
4929
0
    YYDEBUG(312, *YYCURSOR);
4930
0
    yyaccept = 4;
4931
0
    yych = *(YYMARKER = ++YYCURSOR);
4932
0
    if (yych == 'T') goto yy411;
4933
0
    if (yych == 't') goto yy411;
4934
0
    goto yy48;
4935
0
yy313:
4936
0
    YYDEBUG(313, *YYCURSOR);
4937
0
    yyaccept = 4;
4938
0
    yych = *(YYMARKER = ++YYCURSOR);
4939
0
    if (yych == 'E') goto yy412;
4940
0
    if (yych == 'e') goto yy412;
4941
0
    goto yy48;
4942
0
yy314:
4943
0
    YYDEBUG(314, *YYCURSOR);
4944
0
    yyaccept = 4;
4945
0
    yych = *(YYMARKER = ++YYCURSOR);
4946
0
    if (yych == 'E') goto yy413;
4947
0
    if (yych == 'e') goto yy413;
4948
0
    goto yy48;
4949
0
yy315:
4950
0
    YYDEBUG(315, *YYCURSOR);
4951
0
    yyaccept = 4;
4952
0
    yych = *(YYMARKER = ++YYCURSOR);
4953
0
    if (yych == 'T') goto yy414;
4954
0
    if (yych == 't') goto yy414;
4955
0
    goto yy48;
4956
0
yy316:
4957
0
    YYDEBUG(316, *YYCURSOR);
4958
0
    yyaccept = 4;
4959
0
    yych = *(YYMARKER = ++YYCURSOR);
4960
0
    if (yych == 'C') goto yy416;
4961
0
    if (yych == 'c') goto yy416;
4962
0
    goto yy48;
4963
0
yy317:
4964
0
    YYDEBUG(317, *YYCURSOR);
4965
0
    yyaccept = 4;
4966
0
    yych = *(YYMARKER = ++YYCURSOR);
4967
0
    if (yych == 'E') goto yy417;
4968
0
    if (yych == 'e') goto yy417;
4969
0
    goto yy48;
4970
0
yy318:
4971
0
    YYDEBUG(318, *YYCURSOR);
4972
0
    yyaccept = 21;
4973
0
    yych = *(YYMARKER = ++YYCURSOR);
4974
0
    if (yybm[256+yych] & 128) {
4975
0
      goto yy47;
4976
0
    }
4977
0
    if (yych == '\\') goto yy164;
4978
0
yy319:
4979
0
    YYDEBUG(319, *YYCURSOR);
4980
0
    yyleng = YYCURSOR - SCNG(yy_text);
4981
0
#line 1626 "Zend/zend_language_scanner.l"
4982
0
    {
4983
0
  RETURN_TOKEN_WITH_IDENT(T_NEW);
4984
0
}
4985
0
#line 4986 "Zend/zend_language_scanner.c"
4986
0
yy320:
4987
0
    YYDEBUG(320, *YYCURSOR);
4988
0
    yyaccept = 4;
4989
0
    yych = *(YYMARKER = ++YYCURSOR);
4990
0
    if (yych <= 'V') {
4991
0
      if (yych == 'N') goto yy418;
4992
0
      if (yych <= 'U') goto yy48;
4993
0
      goto yy419;
4994
0
    } else {
4995
0
      if (yych <= 'n') {
4996
0
        if (yych <= 'm') goto yy48;
4997
0
        goto yy418;
4998
0
      } else {
4999
0
        if (yych == 'v') goto yy419;
5000
0
        goto yy48;
5001
0
      }
5002
0
    }
5003
0
yy321:
5004
0
    YYDEBUG(321, *YYCURSOR);
5005
0
    yyaccept = 4;
5006
0
    yych = *(YYMARKER = ++YYCURSOR);
5007
0
    if (yych == 'T') goto yy420;
5008
0
    if (yych == 't') goto yy420;
5009
0
    goto yy48;
5010
0
yy322:
5011
0
    YYDEBUG(322, *YYCURSOR);
5012
0
    yyaccept = 4;
5013
0
    yych = *(YYMARKER = ++YYCURSOR);
5014
0
    if (yych == 'L') goto yy421;
5015
0
    if (yych == 'l') goto yy421;
5016
0
    goto yy48;
5017
0
yy323:
5018
0
    YYDEBUG(323, *YYCURSOR);
5019
0
    yyaccept = 4;
5020
0
    yych = *(YYMARKER = ++YYCURSOR);
5021
0
    if (yych == 'D') goto yy422;
5022
0
    if (yych == 'd') goto yy422;
5023
0
    goto yy48;
5024
0
yy324:
5025
0
    YYDEBUG(324, *YYCURSOR);
5026
0
    yyaccept = 4;
5027
0
    yych = *(YYMARKER = ++YYCURSOR);
5028
0
    if (yych == 'U') goto yy423;
5029
0
    if (yych == 'u') goto yy423;
5030
0
    goto yy48;
5031
0
yy325:
5032
0
    YYDEBUG(325, *YYCURSOR);
5033
0
    yyaccept = 4;
5034
0
    yych = *(YYMARKER = ++YYCURSOR);
5035
0
    if (yych == 'U') goto yy424;
5036
0
    if (yych == 'u') goto yy424;
5037
0
    goto yy48;
5038
0
yy326:
5039
0
    YYDEBUG(326, *YYCURSOR);
5040
0
    yyaccept = 4;
5041
0
    yych = *(YYMARKER = ++YYCURSOR);
5042
0
    if (yych == 'T') goto yy425;
5043
0
    if (yych == 't') goto yy425;
5044
0
    goto yy48;
5045
0
yy327:
5046
0
    YYDEBUG(327, *YYCURSOR);
5047
0
    yyaccept = 4;
5048
0
    yych = *(YYMARKER = ++YYCURSOR);
5049
0
    if (yych == 'T') goto yy426;
5050
0
    if (yych == 't') goto yy426;
5051
0
    goto yy48;
5052
0
yy328:
5053
0
    YYDEBUG(328, *YYCURSOR);
5054
0
    yyaccept = 4;
5055
0
    yych = *(YYMARKER = ++YYCURSOR);
5056
0
    if (yych == 'O') goto yy427;
5057
0
    if (yych == 'o') goto yy427;
5058
0
    goto yy48;
5059
0
yy329:
5060
0
    YYDEBUG(329, *YYCURSOR);
5061
0
    yyaccept = 4;
5062
0
    yych = *(YYMARKER = ++YYCURSOR);
5063
0
    if (yych == 'I') goto yy428;
5064
0
    if (yych == 'i') goto yy428;
5065
0
    goto yy48;
5066
0
yy330:
5067
0
    YYDEBUG(330, *YYCURSOR);
5068
0
    yyaccept = 22;
5069
0
    yych = *(YYMARKER = ++YYCURSOR);
5070
0
    if (yybm[256+yych] & 128) {
5071
0
      goto yy47;
5072
0
    }
5073
0
    if (yych == '\\') goto yy164;
5074
0
yy331:
5075
0
    YYDEBUG(331, *YYCURSOR);
5076
0
    yyleng = YYCURSOR - SCNG(yy_text);
5077
0
#line 1438 "Zend/zend_language_scanner.l"
5078
0
    {
5079
0
  RETURN_TOKEN_WITH_IDENT(T_TRY);
5080
0
}
5081
0
#line 5082 "Zend/zend_language_scanner.c"
5082
0
yy332:
5083
0
    YYDEBUG(332, *YYCURSOR);
5084
0
    yyaccept = 4;
5085
0
    yych = *(YYMARKER = ++YYCURSOR);
5086
0
    if (yych == 'E') goto yy429;
5087
0
    if (yych == 'e') goto yy429;
5088
0
    goto yy48;
5089
0
yy333:
5090
0
    YYDEBUG(333, *YYCURSOR);
5091
0
    yyaccept = 23;
5092
0
    yych = *(YYMARKER = ++YYCURSOR);
5093
0
    if (yybm[256+yych] & 128) {
5094
0
      goto yy47;
5095
0
    }
5096
0
    if (yych == '\\') goto yy164;
5097
0
yy334:
5098
0
    YYDEBUG(334, *YYCURSOR);
5099
0
    yyleng = YYCURSOR - SCNG(yy_text);
5100
0
#line 1742 "Zend/zend_language_scanner.l"
5101
0
    {
5102
0
  RETURN_TOKEN_WITH_IDENT(T_USE);
5103
0
}
5104
0
#line 5105 "Zend/zend_language_scanner.c"
5105
0
yy335:
5106
0
    YYDEBUG(335, *YYCURSOR);
5107
0
    yyaccept = 24;
5108
0
    yych = *(YYMARKER = ++YYCURSOR);
5109
0
    if (yybm[256+yych] & 128) {
5110
0
      goto yy47;
5111
0
    }
5112
0
    if (yych == '\\') goto yy164;
5113
0
yy336:
5114
0
    YYDEBUG(336, *YYCURSOR);
5115
0
    yyleng = YYCURSOR - SCNG(yy_text);
5116
0
#line 1634 "Zend/zend_language_scanner.l"
5117
0
    {
5118
0
  RETURN_TOKEN_WITH_IDENT(T_VAR);
5119
0
}
5120
0
#line 5121 "Zend/zend_language_scanner.c"
5121
0
yy337:
5122
0
    YYDEBUG(337, *YYCURSOR);
5123
0
    yyaccept = 4;
5124
0
    yych = *(YYMARKER = ++YYCURSOR);
5125
0
    if (yych == 'L') goto yy430;
5126
0
    if (yych == 'l') goto yy430;
5127
0
    goto yy48;
5128
0
yy338:
5129
0
    YYDEBUG(338, *YYCURSOR);
5130
0
    yyaccept = 25;
5131
0
    yych = *(YYMARKER = ++YYCURSOR);
5132
0
    if (yybm[256+yych] & 128) {
5133
0
      goto yy47;
5134
0
    }
5135
0
    if (yych == '\\') goto yy164;
5136
0
yy339:
5137
0
    YYDEBUG(339, *YYCURSOR);
5138
0
    yyleng = YYCURSOR - SCNG(yy_text);
5139
0
#line 1938 "Zend/zend_language_scanner.l"
5140
0
    {
5141
0
  RETURN_TOKEN_WITH_IDENT(T_LOGICAL_XOR);
5142
0
}
5143
0
#line 5144 "Zend/zend_language_scanner.c"
5144
0
yy340:
5145
0
    YYDEBUG(340, *YYCURSOR);
5146
0
    yyaccept = 4;
5147
0
    yych = *(YYMARKER = ++YYCURSOR);
5148
0
    if (yych == 'L') goto yy431;
5149
0
    if (yych == 'l') goto yy431;
5150
0
    goto yy48;
5151
0
yy341:
5152
0
    YYDEBUG(341, *YYCURSOR);
5153
0
    ++YYCURSOR;
5154
0
    YYFILL(1);
5155
0
    yych = *YYCURSOR;
5156
0
    if (yych <= '_') {
5157
0
      if (yych <= '@') goto yy86;
5158
0
      if (yych <= 'Z') goto yy211;
5159
0
      if (yych <= '^') goto yy86;
5160
0
      goto yy211;
5161
0
    } else {
5162
0
      if (yych <= '`') goto yy86;
5163
0
      if (yych <= 'z') goto yy211;
5164
0
      if (yych <= 0x7F) goto yy86;
5165
0
      goto yy211;
5166
0
    }
5167
0
yy342:
5168
0
    YYDEBUG(342, *YYCURSOR);
5169
0
    yyaccept = 4;
5170
0
    yych = *(YYMARKER = ++YYCURSOR);
5171
0
    if (yych == 'L') goto yy432;
5172
0
    if (yych == 'l') goto yy432;
5173
0
    goto yy48;
5174
0
yy343:
5175
0
    YYDEBUG(343, *YYCURSOR);
5176
0
    yyaccept = 4;
5177
0
    yych = *(YYMARKER = ++YYCURSOR);
5178
0
    if (yych == 'I') goto yy433;
5179
0
    if (yych == 'i') goto yy433;
5180
0
    goto yy48;
5181
0
yy344:
5182
0
    YYDEBUG(344, *YYCURSOR);
5183
0
    yyaccept = 4;
5184
0
    yych = *(YYMARKER = ++YYCURSOR);
5185
0
    if (yych <= 'U') {
5186
0
      if (yych == 'I') goto yy434;
5187
0
      if (yych <= 'T') goto yy48;
5188
0
      goto yy435;
5189
0
    } else {
5190
0
      if (yych <= 'i') {
5191
0
        if (yych <= 'h') goto yy48;
5192
0
        goto yy434;
5193
0
      } else {
5194
0
        if (yych == 'u') goto yy435;
5195
0
        goto yy48;
5196
0
      }
5197
0
    }
5198
0
yy345:
5199
0
    YYDEBUG(345, *YYCURSOR);
5200
0
    yyaccept = 4;
5201
0
    yych = *(YYMARKER = ++YYCURSOR);
5202
0
    if (yych == 'A') goto yy436;
5203
0
    if (yych == 'a') goto yy436;
5204
0
    goto yy48;
5205
0
yy346:
5206
0
    YYDEBUG(346, *YYCURSOR);
5207
0
    yyaccept = 4;
5208
0
    yych = *(YYMARKER = ++YYCURSOR);
5209
0
    if (yych == 'I') goto yy437;
5210
0
    if (yych == 'i') goto yy437;
5211
0
    goto yy48;
5212
0
yy347:
5213
0
    YYDEBUG(347, *YYCURSOR);
5214
0
    yyaccept = 4;
5215
0
    yych = *(YYMARKER = ++YYCURSOR);
5216
0
    if (yych == 'E') goto yy438;
5217
0
    if (yych == 'e') goto yy438;
5218
0
    goto yy48;
5219
0
yy348:
5220
0
    YYDEBUG(348, *YYCURSOR);
5221
0
    yyaccept = 4;
5222
0
    yych = *(YYMARKER = ++YYCURSOR);
5223
0
    if (yych == 'A') goto yy439;
5224
0
    if (yych == 'a') goto yy439;
5225
0
    goto yy48;
5226
0
yy349:
5227
0
    YYDEBUG(349, *YYCURSOR);
5228
0
    yyaccept = 4;
5229
0
    yych = *(YYMARKER = ++YYCURSOR);
5230
0
    if (yych == 'R') goto yy440;
5231
0
    if (yych == 'r') goto yy440;
5232
0
    goto yy48;
5233
0
yy350:
5234
0
    YYDEBUG(350, *YYCURSOR);
5235
0
    yyaccept = 4;
5236
0
    yych = *(YYMARKER = ++YYCURSOR);
5237
0
    if (yych == 'R') goto yy441;
5238
0
    if (yych == 'r') goto yy441;
5239
0
    goto yy48;
5240
0
yy351:
5241
0
    YYDEBUG(351, *YYCURSOR);
5242
0
    ++YYCURSOR;
5243
0
    YYFILL(1);
5244
0
    yych = *YYCURSOR;
5245
0
    if (yybm[0+yych] & 2) {
5246
0
      goto yy225;
5247
0
    }
5248
0
    if (yych <= 0x00) goto yy86;
5249
0
    goto yy227;
5250
0
yy352:
5251
0
    YYDEBUG(352, *YYCURSOR);
5252
0
    yyaccept = 26;
5253
0
    YYMARKER = ++YYCURSOR;
5254
0
    YYFILL(1);
5255
0
    yych = *YYCURSOR;
5256
0
    if (yybm[0+yych] & 2) {
5257
0
      goto yy225;
5258
0
    }
5259
0
    if (yych <= 0x00) goto yy89;
5260
0
    goto yy84;
5261
0
yy353:
5262
0
    YYDEBUG(353, *YYCURSOR);
5263
0
    ++YYCURSOR;
5264
0
    YYFILL(1);
5265
0
    yych = *YYCURSOR;
5266
0
    if (yych <= '\f') {
5267
0
      if (yych <= 0x00) goto yy86;
5268
0
      if (yych == '\n') goto yy84;
5269
0
      goto yy225;
5270
0
    } else {
5271
0
      if (yych <= '\r') goto yy84;
5272
0
      if (yych == '.') goto yy442;
5273
0
      goto yy225;
5274
0
    }
5275
0
yy354:
5276
0
    YYDEBUG(354, *YYCURSOR);
5277
0
    ++YYCURSOR;
5278
0
    YYFILL(1);
5279
0
    yych = *YYCURSOR;
5280
0
    if (yych <= '\f') {
5281
0
      if (yych <= 0x00) goto yy86;
5282
0
      if (yych == '\n') goto yy84;
5283
0
      goto yy225;
5284
0
    } else {
5285
0
      if (yych <= '\r') goto yy84;
5286
0
      if (yych == '*') goto yy443;
5287
0
      goto yy225;
5288
0
    }
5289
0
yy355:
5290
0
    YYDEBUG(355, *YYCURSOR);
5291
0
    ++YYCURSOR;
5292
0
    YYFILL(1);
5293
0
    yych = *YYCURSOR;
5294
0
    YYDEBUG(356, *YYCURSOR);
5295
0
    if (yybm[0+yych] & 64) {
5296
0
      goto yy355;
5297
0
    }
5298
0
    if (yych <= 0x00) goto yy86;
5299
0
    if (yych == '/') goto yy84;
5300
0
    goto yy230;
5301
0
yy357:
5302
0
    YYDEBUG(357, *YYCURSOR);
5303
0
    yych = *++YYCURSOR;
5304
0
    if (yych == 'A') goto yy445;
5305
0
    if (yych == 'a') goto yy445;
5306
0
    goto yy86;
5307
0
yy358:
5308
0
    YYDEBUG(358, *YYCURSOR);
5309
0
    yych = *++YYCURSOR;
5310
0
    if (yych == 'A') goto yy446;
5311
0
    if (yych == 'a') goto yy446;
5312
0
    goto yy86;
5313
0
yy359:
5314
0
    YYDEBUG(359, *YYCURSOR);
5315
0
    yych = *++YYCURSOR;
5316
0
    if (yych == 'L') goto yy447;
5317
0
    if (yych == 'l') goto yy447;
5318
0
    goto yy86;
5319
0
yy360:
5320
0
    YYDEBUG(360, *YYCURSOR);
5321
0
    yych = *++YYCURSOR;
5322
0
    if (yych == 'B') goto yy448;
5323
0
    if (yych == 'b') goto yy448;
5324
0
    goto yy86;
5325
0
yy361:
5326
0
    YYDEBUG(361, *YYCURSOR);
5327
0
    yych = *++YYCURSOR;
5328
0
    if (yych == 'A') goto yy449;
5329
0
    if (yych == 'a') goto yy449;
5330
0
    goto yy86;
5331
0
yy362:
5332
0
    YYDEBUG(362, *YYCURSOR);
5333
0
    yych = *++YYCURSOR;
5334
0
    if (yych == 'E') goto yy454;
5335
0
    if (yych == 'e') goto yy454;
5336
0
    goto yy451;
5337
0
yy363:
5338
0
    YYDEBUG(363, *YYCURSOR);
5339
0
    yych = *++YYCURSOR;
5340
0
    if (yych == 'E') goto yy455;
5341
0
    if (yych == 'e') goto yy455;
5342
0
    goto yy86;
5343
0
yy364:
5344
0
    YYDEBUG(364, *YYCURSOR);
5345
0
    yych = *++YYCURSOR;
5346
0
    if (yych == 'L') goto yy456;
5347
0
    if (yych == 'l') goto yy456;
5348
0
    goto yy86;
5349
0
yy365:
5350
0
    YYDEBUG(365, *YYCURSOR);
5351
0
    yych = *++YYCURSOR;
5352
0
    if (yych == 'I') goto yy458;
5353
0
    if (yych == 'i') goto yy458;
5354
0
    goto yy86;
5355
0
yy366:
5356
0
    YYDEBUG(366, *YYCURSOR);
5357
0
    yych = *++YYCURSOR;
5358
0
    if (yych == 'E') goto yy459;
5359
0
    if (yych == 'e') goto yy459;
5360
0
    goto yy86;
5361
0
yy367:
5362
0
    YYDEBUG(367, *YYCURSOR);
5363
0
    yych = *++YYCURSOR;
5364
0
    if (yych == 'D') goto yy460;
5365
0
    if (yych == 'd') goto yy460;
5366
0
    goto yy86;
5367
0
yy368:
5368
0
    YYDEBUG(368, *YYCURSOR);
5369
0
    ++YYCURSOR;
5370
0
    YYFILL(1);
5371
0
    yych = *YYCURSOR;
5372
0
    YYDEBUG(369, *YYCURSOR);
5373
0
    if (yych <= '\f') {
5374
0
      if (yych <= 0x08) goto yy129;
5375
0
      if (yych <= '\n') goto yy368;
5376
0
      goto yy129;
5377
0
    } else {
5378
0
      if (yych <= '\r') goto yy368;
5379
0
      if (yych == ' ') goto yy368;
5380
0
      goto yy129;
5381
0
    }
5382
0
yy370:
5383
0
    YYDEBUG(370, *YYCURSOR);
5384
0
    yych = *++YYCURSOR;
5385
0
    if (yych == '"') goto yy86;
5386
0
    if (yych <= '/') goto yy463;
5387
0
    if (yych <= '9') goto yy86;
5388
0
    goto yy463;
5389
0
yy371:
5390
0
    YYDEBUG(371, *YYCURSOR);
5391
0
    yych = *++YYCURSOR;
5392
0
    if (yych == '\'') goto yy86;
5393
0
    if (yych <= '/') goto yy465;
5394
0
    if (yych <= '9') goto yy86;
5395
0
    goto yy465;
5396
0
yy372:
5397
0
    YYDEBUG(372, *YYCURSOR);
5398
0
    ++YYCURSOR;
5399
0
    YYFILL(2);
5400
0
    yych = *YYCURSOR;
5401
0
    YYDEBUG(373, *YYCURSOR);
5402
0
    if (yych <= '@') {
5403
0
      if (yych <= '\f') {
5404
0
        if (yych == '\n') goto yy466;
5405
0
        goto yy86;
5406
0
      } else {
5407
0
        if (yych <= '\r') goto yy468;
5408
0
        if (yych <= '/') goto yy86;
5409
0
        if (yych <= '9') goto yy372;
5410
0
        goto yy86;
5411
0
      }
5412
0
    } else {
5413
0
      if (yych <= '_') {
5414
0
        if (yych <= 'Z') goto yy372;
5415
0
        if (yych <= '^') goto yy86;
5416
0
        goto yy372;
5417
0
      } else {
5418
0
        if (yych <= '`') goto yy86;
5419
0
        if (yych <= 'z') goto yy372;
5420
0
        if (yych <= 0x7F) goto yy86;
5421
0
        goto yy372;
5422
0
      }
5423
0
    }
5424
0
yy374:
5425
0
    YYDEBUG(374, *YYCURSOR);
5426
0
    yyaccept = 4;
5427
0
    yych = *(YYMARKER = ++YYCURSOR);
5428
0
    if (yych == 'R') goto yy469;
5429
0
    if (yych == 'r') goto yy469;
5430
0
    goto yy48;
5431
0
yy375:
5432
0
    YYDEBUG(375, *YYCURSOR);
5433
0
    yyaccept = 4;
5434
0
    yych = *(YYMARKER = ++YYCURSOR);
5435
0
    if (yych == 'Y') goto yy470;
5436
0
    if (yych == 'y') goto yy470;
5437
0
    goto yy48;
5438
0
yy376:
5439
0
    YYDEBUG(376, *YYCURSOR);
5440
0
    yyaccept = 4;
5441
0
    yych = *(YYMARKER = ++YYCURSOR);
5442
0
    if (yych == 'K') goto yy472;
5443
0
    if (yych == 'k') goto yy472;
5444
0
    goto yy48;
5445
0
yy377:
5446
0
    YYDEBUG(377, *YYCURSOR);
5447
0
    yyaccept = 4;
5448
0
    yych = *(YYMARKER = ++YYCURSOR);
5449
0
    if (yych == 'A') goto yy474;
5450
0
    if (yych == 'a') goto yy474;
5451
0
    goto yy48;
5452
0
yy378:
5453
0
    YYDEBUG(378, *YYCURSOR);
5454
0
    yyaccept = 27;
5455
0
    yych = *(YYMARKER = ++YYCURSOR);
5456
0
    if (yybm[256+yych] & 128) {
5457
0
      goto yy47;
5458
0
    }
5459
0
    if (yych == '\\') goto yy164;
5460
0
yy379:
5461
0
    YYDEBUG(379, *YYCURSOR);
5462
0
    yyleng = YYCURSOR - SCNG(yy_text);
5463
0
#line 1526 "Zend/zend_language_scanner.l"
5464
0
    {
5465
0
  RETURN_TOKEN_WITH_IDENT(T_CASE);
5466
0
}
5467
0
#line 5468 "Zend/zend_language_scanner.c"
5468
0
yy380:
5469
0
    YYDEBUG(380, *YYCURSOR);
5470
0
    yyaccept = 4;
5471
0
    yych = *(YYMARKER = ++YYCURSOR);
5472
0
    if (yych == 'H') goto yy475;
5473
0
    if (yych == 'h') goto yy475;
5474
0
    goto yy48;
5475
0
yy381:
5476
0
    YYDEBUG(381, *YYCURSOR);
5477
0
    yyaccept = 4;
5478
0
    yych = *(YYMARKER = ++YYCURSOR);
5479
0
    if (yych == 'S') goto yy477;
5480
0
    if (yych == 's') goto yy477;
5481
0
    goto yy48;
5482
0
yy382:
5483
0
    YYDEBUG(382, *YYCURSOR);
5484
0
    yyaccept = 4;
5485
0
    yych = *(YYMARKER = ++YYCURSOR);
5486
0
    if (yych == 'E') goto yy479;
5487
0
    if (yych == 'e') goto yy479;
5488
0
    goto yy48;
5489
0
yy383:
5490
0
    YYDEBUG(383, *YYCURSOR);
5491
0
    yyaccept = 4;
5492
0
    yych = *(YYMARKER = ++YYCURSOR);
5493
0
    if (yych == 'T') goto yy481;
5494
0
    if (yych == 't') goto yy481;
5495
0
    goto yy48;
5496
0
yy384:
5497
0
    YYDEBUG(384, *YYCURSOR);
5498
0
    yyaccept = 4;
5499
0
    yych = *(YYMARKER = ++YYCURSOR);
5500
0
    if (yych == 'I') goto yy483;
5501
0
    if (yych == 'i') goto yy483;
5502
0
    goto yy48;
5503
0
yy385:
5504
0
    YYDEBUG(385, *YYCURSOR);
5505
0
    yyaccept = 4;
5506
0
    yych = *(YYMARKER = ++YYCURSOR);
5507
0
    if (yych == 'A') goto yy484;
5508
0
    if (yych == 'a') goto yy484;
5509
0
    goto yy48;
5510
0
yy386:
5511
0
    YYDEBUG(386, *YYCURSOR);
5512
0
    yyaccept = 4;
5513
0
    yych = *(YYMARKER = ++YYCURSOR);
5514
0
    if (yych == 'U') goto yy485;
5515
0
    if (yych == 'u') goto yy485;
5516
0
    goto yy48;
5517
0
yy387:
5518
0
    YYDEBUG(387, *YYCURSOR);
5519
0
    yyaccept = 28;
5520
0
    yych = *(YYMARKER = ++YYCURSOR);
5521
0
    if (yybm[256+yych] & 128) {
5522
0
      goto yy47;
5523
0
    }
5524
0
    if (yych == '\\') goto yy164;
5525
0
yy388:
5526
0
    YYDEBUG(388, *YYCURSOR);
5527
0
    yyleng = YYCURSOR - SCNG(yy_text);
5528
0
#line 1546 "Zend/zend_language_scanner.l"
5529
0
    {
5530
0
  RETURN_TOKEN_WITH_IDENT(T_ECHO);
5531
0
}
5532
0
#line 5533 "Zend/zend_language_scanner.c"
5533
0
yy389:
5534
0
    YYDEBUG(389, *YYCURSOR);
5535
0
    yyaccept = 29;
5536
0
    yych = *(YYMARKER = ++YYCURSOR);
5537
0
    if (yych <= '\\') {
5538
0
      if (yych <= 'H') {
5539
0
        if (yych <= '/') goto yy390;
5540
0
        if (yych <= '9') goto yy47;
5541
0
        if (yych >= 'A') goto yy47;
5542
0
      } else {
5543
0
        if (yych <= 'I') goto yy486;
5544
0
        if (yych <= 'Z') goto yy47;
5545
0
        if (yych >= '\\') goto yy164;
5546
0
      }
5547
0
    } else {
5548
0
      if (yych <= 'h') {
5549
0
        if (yych == '_') goto yy47;
5550
0
        if (yych >= 'a') goto yy47;
5551
0
      } else {
5552
0
        if (yych <= 'i') goto yy486;
5553
0
        if (yych <= 'z') goto yy47;
5554
0
        if (yych >= 0x80) goto yy47;
5555
0
      }
5556
0
    }
5557
0
yy390:
5558
0
    YYDEBUG(390, *YYCURSOR);
5559
0
    yyleng = YYCURSOR - SCNG(yy_text);
5560
0
#line 1466 "Zend/zend_language_scanner.l"
5561
0
    {
5562
0
  RETURN_TOKEN_WITH_IDENT(T_ELSE);
5563
0
}
5564
0
#line 5565 "Zend/zend_language_scanner.c"
5565
0
yy391:
5566
0
    YYDEBUG(391, *YYCURSOR);
5567
0
    yyaccept = 4;
5568
0
    yych = *(YYMARKER = ++YYCURSOR);
5569
0
    if (yych == 'Y') goto yy487;
5570
0
    if (yych == 'y') goto yy487;
5571
0
    goto yy48;
5572
0
yy392:
5573
0
    YYDEBUG(392, *YYCURSOR);
5574
0
    yyaccept = 4;
5575
0
    yych = *(YYMARKER = ++YYCURSOR);
5576
0
    if (yych == 'E') goto yy489;
5577
0
    if (yych == 'e') goto yy489;
5578
0
    goto yy48;
5579
0
yy393:
5580
0
    YYDEBUG(393, *YYCURSOR);
5581
0
    yyaccept = 4;
5582
0
    yych = *(YYMARKER = ++YYCURSOR);
5583
0
    if (yych == 'O') goto yy490;
5584
0
    if (yych == 'o') goto yy490;
5585
0
    goto yy48;
5586
0
yy394:
5587
0
    YYDEBUG(394, *YYCURSOR);
5588
0
    yyaccept = 4;
5589
0
    yych = *(YYMARKER = ++YYCURSOR);
5590
0
    if (yych == 'F') goto yy491;
5591
0
    if (yych == 'f') goto yy491;
5592
0
    goto yy48;
5593
0
yy395:
5594
0
    YYDEBUG(395, *YYCURSOR);
5595
0
    yyaccept = 4;
5596
0
    yych = *(YYMARKER = ++YYCURSOR);
5597
0
    if (yych == 'W') goto yy493;
5598
0
    if (yych == 'w') goto yy493;
5599
0
    goto yy48;
5600
0
yy396:
5601
0
    YYDEBUG(396, *YYCURSOR);
5602
0
    yyaccept = 4;
5603
0
    yych = *(YYMARKER = ++YYCURSOR);
5604
0
    if (yych == 'H') goto yy494;
5605
0
    if (yych == 'h') goto yy494;
5606
0
    goto yy48;
5607
0
yy397:
5608
0
    YYDEBUG(397, *YYCURSOR);
5609
0
    yyaccept = 4;
5610
0
    yych = *(YYMARKER = ++YYCURSOR);
5611
0
    if (yych <= 0x1F) {
5612
0
      if (yych <= '\n') {
5613
0
        if (yych <= 0x08) goto yy48;
5614
0
        goto yy495;
5615
0
      } else {
5616
0
        if (yych == '\r') goto yy495;
5617
0
        goto yy48;
5618
0
      }
5619
0
    } else {
5620
0
      if (yych <= '#') {
5621
0
        if (yych <= ' ') goto yy495;
5622
0
        if (yych <= '"') goto yy48;
5623
0
        goto yy497;
5624
0
      } else {
5625
0
        if (yych == '/') goto yy498;
5626
0
        goto yy48;
5627
0
      }
5628
0
    }
5629
0
yy398:
5630
0
    YYDEBUG(398, *YYCURSOR);
5631
0
    yyaccept = 30;
5632
0
    yych = *(YYMARKER = ++YYCURSOR);
5633
0
    if (yybm[256+yych] & 128) {
5634
0
      goto yy47;
5635
0
    }
5636
0
    if (yych == '\\') goto yy164;
5637
0
yy399:
5638
0
    YYDEBUG(399, *YYCURSOR);
5639
0
    yyleng = YYCURSOR - SCNG(yy_text);
5640
0
#line 1718 "Zend/zend_language_scanner.l"
5641
0
    {
5642
0
  RETURN_TOKEN_WITH_IDENT(T_EVAL);
5643
0
}
5644
0
#line 5645 "Zend/zend_language_scanner.c"
5645
0
yy400:
5646
0
    YYDEBUG(400, *YYCURSOR);
5647
0
    yyaccept = 31;
5648
0
    yych = *(YYMARKER = ++YYCURSOR);
5649
0
    if (yybm[256+yych] & 128) {
5650
0
      goto yy47;
5651
0
    }
5652
0
    if (yych == '\\') goto yy164;
5653
0
yy401:
5654
0
    YYDEBUG(401, *YYCURSOR);
5655
0
    yyleng = YYCURSOR - SCNG(yy_text);
5656
0
#line 1399 "Zend/zend_language_scanner.l"
5657
0
    {
5658
0
  RETURN_TOKEN_WITH_IDENT(T_EXIT);
5659
0
}
5660
0
#line 5661 "Zend/zend_language_scanner.c"
5661
0
yy402:
5662
0
    YYDEBUG(402, *YYCURSOR);
5663
0
    yyaccept = 4;
5664
0
    yych = *(YYMARKER = ++YYCURSOR);
5665
0
    if (yych == 'N') goto yy499;
5666
0
    if (yych == 'n') goto yy499;
5667
0
    goto yy48;
5668
0
yy403:
5669
0
    YYDEBUG(403, *YYCURSOR);
5670
0
    yyaccept = 4;
5671
0
    yych = *(YYMARKER = ++YYCURSOR);
5672
0
    if (yych == 'L') goto yy500;
5673
0
    if (yych == 'l') goto yy500;
5674
0
    goto yy48;
5675
0
yy404:
5676
0
    YYDEBUG(404, *YYCURSOR);
5677
0
    yyaccept = 4;
5678
0
    yych = *(YYMARKER = ++YYCURSOR);
5679
0
    if (yych == 'A') goto yy502;
5680
0
    if (yych == 'a') goto yy502;
5681
0
    goto yy48;
5682
0
yy405:
5683
0
    YYDEBUG(405, *YYCURSOR);
5684
0
    yyaccept = 4;
5685
0
    yych = *(YYMARKER = ++YYCURSOR);
5686
0
    if (yych == 'T') goto yy503;
5687
0
    if (yych == 't') goto yy503;
5688
0
    goto yy48;
5689
0
yy406:
5690
0
    YYDEBUG(406, *YYCURSOR);
5691
0
    yyaccept = 4;
5692
0
    yych = *(YYMARKER = ++YYCURSOR);
5693
0
    if (yych == 'A') goto yy504;
5694
0
    if (yych == 'a') goto yy504;
5695
0
    goto yy48;
5696
0
yy407:
5697
0
    YYDEBUG(407, *YYCURSOR);
5698
0
    yyaccept = 32;
5699
0
    yych = *(YYMARKER = ++YYCURSOR);
5700
0
    if (yybm[256+yych] & 128) {
5701
0
      goto yy47;
5702
0
    }
5703
0
    if (yych == '\\') goto yy164;
5704
0
yy408:
5705
0
    YYDEBUG(408, *YYCURSOR);
5706
0
    yyleng = YYCURSOR - SCNG(yy_text);
5707
0
#line 1542 "Zend/zend_language_scanner.l"
5708
0
    {
5709
0
  RETURN_TOKEN_WITH_IDENT(T_GOTO);
5710
0
}
5711
0
#line 5712 "Zend/zend_language_scanner.c"
5712
0
yy409:
5713
0
    YYDEBUG(409, *YYCURSOR);
5714
0
    yyaccept = 4;
5715
0
    yych = *(YYMARKER = ++YYCURSOR);
5716
0
    if (yych == 'E') goto yy505;
5717
0
    if (yych == 'e') goto yy505;
5718
0
    goto yy48;
5719
0
yy410:
5720
0
    YYDEBUG(410, *YYCURSOR);
5721
0
    yyaccept = 4;
5722
0
    yych = *(YYMARKER = ++YYCURSOR);
5723
0
    if (yych == 'U') goto yy506;
5724
0
    if (yych == 'u') goto yy506;
5725
0
    goto yy48;
5726
0
yy411:
5727
0
    YYDEBUG(411, *YYCURSOR);
5728
0
    yyaccept = 4;
5729
0
    yych = *(YYMARKER = ++YYCURSOR);
5730
0
    if (yych <= 'E') {
5731
0
      if (yych == 'A') goto yy507;
5732
0
      if (yych <= 'D') goto yy48;
5733
0
      goto yy508;
5734
0
    } else {
5735
0
      if (yych <= 'a') {
5736
0
        if (yych <= '`') goto yy48;
5737
0
        goto yy507;
5738
0
      } else {
5739
0
        if (yych == 'e') goto yy508;
5740
0
        goto yy48;
5741
0
      }
5742
0
    }
5743
0
yy412:
5744
0
    YYDEBUG(412, *YYCURSOR);
5745
0
    yyaccept = 4;
5746
0
    yych = *(YYMARKER = ++YYCURSOR);
5747
0
    if (yych == 'R') goto yy509;
5748
0
    if (yych == 'r') goto yy509;
5749
0
    goto yy48;
5750
0
yy413:
5751
0
    YYDEBUG(413, *YYCURSOR);
5752
0
    yyaccept = 4;
5753
0
    yych = *(YYMARKER = ++YYCURSOR);
5754
0
    if (yych == 'T') goto yy510;
5755
0
    if (yych == 't') goto yy510;
5756
0
    goto yy48;
5757
0
yy414:
5758
0
    YYDEBUG(414, *YYCURSOR);
5759
0
    yyaccept = 33;
5760
0
    yych = *(YYMARKER = ++YYCURSOR);
5761
0
    if (yybm[256+yych] & 128) {
5762
0
      goto yy47;
5763
0
    }
5764
0
    if (yych == '\\') goto yy164;
5765
0
yy415:
5766
0
    YYDEBUG(415, *YYCURSOR);
5767
0
    yyleng = YYCURSOR - SCNG(yy_text);
5768
0
#line 1814 "Zend/zend_language_scanner.l"
5769
0
    {
5770
0
  RETURN_TOKEN_WITH_IDENT(T_LIST);
5771
0
}
5772
0
#line 5773 "Zend/zend_language_scanner.c"
5773
0
yy416:
5774
0
    YYDEBUG(416, *YYCURSOR);
5775
0
    yyaccept = 4;
5776
0
    yych = *(YYMARKER = ++YYCURSOR);
5777
0
    if (yych == 'H') goto yy512;
5778
0
    if (yych == 'h') goto yy512;
5779
0
    goto yy48;
5780
0
yy417:
5781
0
    YYDEBUG(417, *YYCURSOR);
5782
0
    yyaccept = 4;
5783
0
    yych = *(YYMARKER = ++YYCURSOR);
5784
0
    if (yych == 'S') goto yy514;
5785
0
    if (yych == 's') goto yy514;
5786
0
    goto yy48;
5787
0
yy418:
5788
0
    YYDEBUG(418, *YYCURSOR);
5789
0
    yyaccept = 4;
5790
0
    yych = *(YYMARKER = ++YYCURSOR);
5791
0
    if (yych == 'T') goto yy515;
5792
0
    if (yych == 't') goto yy515;
5793
0
    goto yy48;
5794
0
yy419:
5795
0
    YYDEBUG(419, *YYCURSOR);
5796
0
    yyaccept = 4;
5797
0
    yych = *(YYMARKER = ++YYCURSOR);
5798
0
    if (yych == 'A') goto yy517;
5799
0
    if (yych == 'a') goto yy517;
5800
0
    goto yy48;
5801
0
yy420:
5802
0
    YYDEBUG(420, *YYCURSOR);
5803
0
    yyaccept = 4;
5804
0
    yych = *(YYMARKER = ++YYCURSOR);
5805
0
    if (yych == 'E') goto yy518;
5806
0
    if (yych == 'e') goto yy518;
5807
0
    goto yy48;
5808
0
yy421:
5809
0
    YYDEBUG(421, *YYCURSOR);
5810
0
    yyaccept = 4;
5811
0
    yych = *(YYMARKER = ++YYCURSOR);
5812
0
    if (yych == 'I') goto yy519;
5813
0
    if (yych == 'i') goto yy519;
5814
0
    goto yy48;
5815
0
yy422:
5816
0
    YYDEBUG(422, *YYCURSOR);
5817
0
    yyaccept = 4;
5818
0
    yych = *(YYMARKER = ++YYCURSOR);
5819
0
    if (yych == 'O') goto yy520;
5820
0
    if (yych == 'o') goto yy520;
5821
0
    goto yy48;
5822
0
yy423:
5823
0
    YYDEBUG(423, *YYCURSOR);
5824
0
    yyaccept = 4;
5825
0
    yych = *(YYMARKER = ++YYCURSOR);
5826
0
    if (yych == 'I') goto yy521;
5827
0
    if (yych == 'i') goto yy521;
5828
0
    goto yy48;
5829
0
yy424:
5830
0
    YYDEBUG(424, *YYCURSOR);
5831
0
    yyaccept = 4;
5832
0
    yych = *(YYMARKER = ++YYCURSOR);
5833
0
    if (yych == 'R') goto yy522;
5834
0
    if (yych == 'r') goto yy522;
5835
0
    goto yy48;
5836
0
yy425:
5837
0
    YYDEBUG(425, *YYCURSOR);
5838
0
    yyaccept = 4;
5839
0
    yych = *(YYMARKER = ++YYCURSOR);
5840
0
    if (yych == 'I') goto yy523;
5841
0
    if (yych == 'i') goto yy523;
5842
0
    goto yy48;
5843
0
yy426:
5844
0
    YYDEBUG(426, *YYCURSOR);
5845
0
    yyaccept = 4;
5846
0
    yych = *(YYMARKER = ++YYCURSOR);
5847
0
    if (yych == 'C') goto yy524;
5848
0
    if (yych == 'c') goto yy524;
5849
0
    goto yy48;
5850
0
yy427:
5851
0
    YYDEBUG(427, *YYCURSOR);
5852
0
    yyaccept = 4;
5853
0
    yych = *(YYMARKER = ++YYCURSOR);
5854
0
    if (yych == 'W') goto yy525;
5855
0
    if (yych == 'w') goto yy525;
5856
0
    goto yy48;
5857
0
yy428:
5858
0
    YYDEBUG(428, *YYCURSOR);
5859
0
    yyaccept = 4;
5860
0
    yych = *(YYMARKER = ++YYCURSOR);
5861
0
    if (yych == 'T') goto yy527;
5862
0
    if (yych == 't') goto yy527;
5863
0
    goto yy48;
5864
0
yy429:
5865
0
    YYDEBUG(429, *YYCURSOR);
5866
0
    yyaccept = 4;
5867
0
    yych = *(YYMARKER = ++YYCURSOR);
5868
0
    if (yych == 'T') goto yy529;
5869
0
    if (yych == 't') goto yy529;
5870
0
    goto yy48;
5871
0
yy430:
5872
0
    YYDEBUG(430, *YYCURSOR);
5873
0
    yyaccept = 4;
5874
0
    yych = *(YYMARKER = ++YYCURSOR);
5875
0
    if (yych == 'E') goto yy531;
5876
0
    if (yych == 'e') goto yy531;
5877
0
    goto yy48;
5878
0
yy431:
5879
0
    YYDEBUG(431, *YYCURSOR);
5880
0
    yyaccept = 4;
5881
0
    yych = *(YYMARKER = ++YYCURSOR);
5882
0
    if (yych == 'D') goto yy533;
5883
0
    if (yych == 'd') goto yy533;
5884
0
    goto yy48;
5885
0
yy432:
5886
0
    YYDEBUG(432, *YYCURSOR);
5887
0
    yyaccept = 4;
5888
0
    yych = *(YYMARKER = ++YYCURSOR);
5889
0
    if (yych == 'A') goto yy535;
5890
0
    if (yych == 'a') goto yy535;
5891
0
    goto yy48;
5892
0
yy433:
5893
0
    YYDEBUG(433, *YYCURSOR);
5894
0
    yyaccept = 4;
5895
0
    yych = *(YYMARKER = ++YYCURSOR);
5896
0
    if (yych == 'R') goto yy536;
5897
0
    if (yych == 'r') goto yy536;
5898
0
    goto yy48;
5899
0
yy434:
5900
0
    YYDEBUG(434, *YYCURSOR);
5901
0
    yyaccept = 4;
5902
0
    yych = *(YYMARKER = ++YYCURSOR);
5903
0
    if (yych == 'L') goto yy537;
5904
0
    if (yych == 'l') goto yy537;
5905
0
    goto yy48;
5906
0
yy435:
5907
0
    YYDEBUG(435, *YYCURSOR);
5908
0
    yyaccept = 4;
5909
0
    yych = *(YYMARKER = ++YYCURSOR);
5910
0
    if (yych == 'N') goto yy538;
5911
0
    if (yych == 'n') goto yy538;
5912
0
    goto yy48;
5913
0
yy436:
5914
0
    YYDEBUG(436, *YYCURSOR);
5915
0
    yyaccept = 4;
5916
0
    yych = *(YYMARKER = ++YYCURSOR);
5917
0
    if (yych == 'L') goto yy539;
5918
0
    if (yych == 'l') goto yy539;
5919
0
    goto yy48;
5920
0
yy437:
5921
0
    YYDEBUG(437, *YYCURSOR);
5922
0
    yyaccept = 4;
5923
0
    yych = *(YYMARKER = ++YYCURSOR);
5924
0
    if (yych == 'N') goto yy540;
5925
0
    if (yych == 'n') goto yy540;
5926
0
    goto yy48;
5927
0
yy438:
5928
0
    YYDEBUG(438, *YYCURSOR);
5929
0
    yyaccept = 4;
5930
0
    yych = *(YYMARKER = ++YYCURSOR);
5931
0
    if (yych == 'T') goto yy541;
5932
0
    if (yych == 't') goto yy541;
5933
0
    goto yy48;
5934
0
yy439:
5935
0
    YYDEBUG(439, *YYCURSOR);
5936
0
    yyaccept = 4;
5937
0
    yych = *(YYMARKER = ++YYCURSOR);
5938
0
    if (yych == 'M') goto yy542;
5939
0
    if (yych == 'm') goto yy542;
5940
0
    goto yy48;
5941
0
yy440:
5942
0
    YYDEBUG(440, *YYCURSOR);
5943
0
    yyaccept = 4;
5944
0
    yych = *(YYMARKER = ++YYCURSOR);
5945
0
    if (yych == 'O') goto yy543;
5946
0
    if (yych == 'o') goto yy543;
5947
0
    goto yy48;
5948
0
yy441:
5949
0
    YYDEBUG(441, *YYCURSOR);
5950
0
    yyaccept = 4;
5951
0
    yych = *(YYMARKER = ++YYCURSOR);
5952
0
    if (yych == 'A') goto yy544;
5953
0
    if (yych == 'a') goto yy544;
5954
0
    goto yy48;
5955
0
yy442:
5956
0
    YYDEBUG(442, *YYCURSOR);
5957
0
    ++YYCURSOR;
5958
0
    YYFILL(1);
5959
0
    yych = *YYCURSOR;
5960
0
    if (yych <= '\f') {
5961
0
      if (yych <= 0x00) goto yy86;
5962
0
      if (yych == '\n') goto yy84;
5963
0
      goto yy225;
5964
0
    } else {
5965
0
      if (yych <= '\r') goto yy84;
5966
0
      if (yych == '.') goto yy352;
5967
0
      goto yy225;
5968
0
    }
5969
0
yy443:
5970
0
    YYDEBUG(443, *YYCURSOR);
5971
0
    ++YYCURSOR;
5972
0
    YYFILL(1);
5973
0
    yych = *YYCURSOR;
5974
0
    YYDEBUG(444, *YYCURSOR);
5975
0
    if (yybm[0+yych] & 128) {
5976
0
      goto yy443;
5977
0
    }
5978
0
    if (yych <= 0x00) goto yy86;
5979
0
    if (yych <= '\r') goto yy545;
5980
0
    goto yy547;
5981
0
yy445:
5982
0
    YYDEBUG(445, *YYCURSOR);
5983
0
    yych = *++YYCURSOR;
5984
0
    if (yych == 'Y') goto yy549;
5985
0
    if (yych == 'y') goto yy549;
5986
0
    goto yy86;
5987
0
yy446:
5988
0
    YYDEBUG(446, *YYCURSOR);
5989
0
    yych = *++YYCURSOR;
5990
0
    if (yych == 'R') goto yy551;
5991
0
    if (yych == 'r') goto yy551;
5992
0
    goto yy86;
5993
0
yy447:
5994
0
    YYDEBUG(447, *YYCURSOR);
5995
0
    yych = *++YYCURSOR;
5996
0
    if (yych == 'E') goto yy556;
5997
0
    if (yych == 'e') goto yy556;
5998
0
    goto yy553;
5999
0
yy448:
6000
0
    YYDEBUG(448, *YYCURSOR);
6001
0
    yych = *++YYCURSOR;
6002
0
    if (yych == 'L') goto yy557;
6003
0
    if (yych == 'l') goto yy557;
6004
0
    goto yy86;
6005
0
yy449:
6006
0
    YYDEBUG(449, *YYCURSOR);
6007
0
    yych = *++YYCURSOR;
6008
0
    if (yych == 'T') goto yy558;
6009
0
    if (yych == 't') goto yy558;
6010
0
    goto yy86;
6011
0
yy450:
6012
0
    YYDEBUG(450, *YYCURSOR);
6013
0
    ++YYCURSOR;
6014
0
    YYFILL(1);
6015
0
    yych = *YYCURSOR;
6016
0
yy451:
6017
0
    YYDEBUG(451, *YYCURSOR);
6018
0
    if (yych <= 0x1F) {
6019
0
      if (yych == '\t') goto yy450;
6020
0
      goto yy86;
6021
0
    } else {
6022
0
      if (yych <= ' ') goto yy450;
6023
0
      if (yych != ')') goto yy86;
6024
0
    }
6025
0
    YYDEBUG(452, *YYCURSOR);
6026
0
    ++YYCURSOR;
6027
0
    YYDEBUG(453, *YYCURSOR);
6028
0
    yyleng = YYCURSOR - SCNG(yy_text);
6029
0
#line 1638 "Zend/zend_language_scanner.l"
6030
0
    {
6031
0
  RETURN_TOKEN(T_INT_CAST);
6032
0
}
6033
0
#line 6034 "Zend/zend_language_scanner.c"
6034
0
yy454:
6035
0
    YYDEBUG(454, *YYCURSOR);
6036
0
    yych = *++YYCURSOR;
6037
0
    if (yych == 'G') goto yy560;
6038
0
    if (yych == 'g') goto yy560;
6039
0
    goto yy86;
6040
0
yy455:
6041
0
    YYDEBUG(455, *YYCURSOR);
6042
0
    yych = *++YYCURSOR;
6043
0
    if (yych == 'C') goto yy561;
6044
0
    if (yych == 'c') goto yy561;
6045
0
    goto yy86;
6046
0
yy456:
6047
0
    YYDEBUG(456, *YYCURSOR);
6048
0
    ++YYCURSOR;
6049
0
    YYFILL(1);
6050
0
    yych = *YYCURSOR;
6051
0
    YYDEBUG(457, *YYCURSOR);
6052
0
    if (yych <= 0x1F) {
6053
0
      if (yych == '\t') goto yy456;
6054
0
      goto yy86;
6055
0
    } else {
6056
0
      if (yych <= ' ') goto yy456;
6057
0
      if (yych == ')') goto yy562;
6058
0
      goto yy86;
6059
0
    }
6060
0
yy458:
6061
0
    YYDEBUG(458, *YYCURSOR);
6062
0
    yych = *++YYCURSOR;
6063
0
    if (yych == 'N') goto yy564;
6064
0
    if (yych == 'n') goto yy564;
6065
0
    goto yy86;
6066
0
yy459:
6067
0
    YYDEBUG(459, *YYCURSOR);
6068
0
    yych = *++YYCURSOR;
6069
0
    if (yych == 'T') goto yy565;
6070
0
    if (yych == 't') goto yy565;
6071
0
    goto yy86;
6072
0
yy460:
6073
0
    YYDEBUG(460, *YYCURSOR);
6074
0
    ++YYCURSOR;
6075
0
    YYFILL(1);
6076
0
    yych = *YYCURSOR;
6077
0
    YYDEBUG(461, *YYCURSOR);
6078
0
    if (yych <= 0x1F) {
6079
0
      if (yych == '\t') goto yy460;
6080
0
      goto yy86;
6081
0
    } else {
6082
0
      if (yych <= ' ') goto yy460;
6083
0
      if (yych == ')') goto yy567;
6084
0
      goto yy86;
6085
0
    }
6086
0
yy462:
6087
0
    YYDEBUG(462, *YYCURSOR);
6088
0
    ++YYCURSOR;
6089
0
    YYFILL(3);
6090
0
    yych = *YYCURSOR;
6091
0
yy463:
6092
0
    YYDEBUG(463, *YYCURSOR);
6093
0
    if (yych <= 'Z') {
6094
0
      if (yych <= '/') {
6095
0
        if (yych == '"') goto yy569;
6096
0
        goto yy86;
6097
0
      } else {
6098
0
        if (yych <= '9') goto yy462;
6099
0
        if (yych <= '@') goto yy86;
6100
0
        goto yy462;
6101
0
      }
6102
0
    } else {
6103
0
      if (yych <= '`') {
6104
0
        if (yych == '_') goto yy462;
6105
0
        goto yy86;
6106
0
      } else {
6107
0
        if (yych <= 'z') goto yy462;
6108
0
        if (yych <= 0x7F) goto yy86;
6109
0
        goto yy462;
6110
0
      }
6111
0
    }
6112
0
yy464:
6113
0
    YYDEBUG(464, *YYCURSOR);
6114
0
    ++YYCURSOR;
6115
0
    YYFILL(3);
6116
0
    yych = *YYCURSOR;
6117
0
yy465:
6118
0
    YYDEBUG(465, *YYCURSOR);
6119
0
    if (yych <= 'Z') {
6120
0
      if (yych <= '/') {
6121
0
        if (yych == '\'') goto yy569;
6122
0
        goto yy86;
6123
0
      } else {
6124
0
        if (yych <= '9') goto yy464;
6125
0
        if (yych <= '@') goto yy86;
6126
0
        goto yy464;
6127
0
      }
6128
0
    } else {
6129
0
      if (yych <= '`') {
6130
0
        if (yych == '_') goto yy464;
6131
0
        goto yy86;
6132
0
      } else {
6133
0
        if (yych <= 'z') goto yy464;
6134
0
        if (yych <= 0x7F) goto yy86;
6135
0
        goto yy464;
6136
0
      }
6137
0
    }
6138
0
yy466:
6139
0
    YYDEBUG(466, *YYCURSOR);
6140
0
    ++YYCURSOR;
6141
0
yy467:
6142
0
    YYDEBUG(467, *YYCURSOR);
6143
0
    yyleng = YYCURSOR - SCNG(yy_text);
6144
0
#line 2678 "Zend/zend_language_scanner.l"
6145
0
    {
6146
0
  char *s;
6147
0
  unsigned char *saved_cursor;
6148
0
  int bprefix = (yytext[0] != '<') ? 1 : 0, spacing = 0, indentation = 0;
6149
0
  zend_heredoc_label *heredoc_label = emalloc(sizeof(zend_heredoc_label));
6150
0
  bool is_heredoc = 1;
6151
6152
0
  CG(zend_lineno)++;
6153
0
  heredoc_label->length = yyleng-bprefix-3-1-(yytext[yyleng-2]=='\r'?1:0);
6154
0
  s = yytext+bprefix+3;
6155
0
  while ((*s == ' ') || (*s == '\t')) {
6156
0
    s++;
6157
0
    heredoc_label->length--;
6158
0
  }
6159
6160
0
  if (*s == '\'') {
6161
0
    s++;
6162
0
    heredoc_label->length -= 2;
6163
0
    is_heredoc = 0;
6164
6165
0
    BEGIN(ST_NOWDOC);
6166
0
  } else {
6167
0
    if (*s == '"') {
6168
0
      s++;
6169
0
      heredoc_label->length -= 2;
6170
0
    }
6171
6172
0
    BEGIN(ST_HEREDOC);
6173
0
  }
6174
6175
0
  heredoc_label->label = estrndup(s, heredoc_label->length);
6176
0
  heredoc_label->indentation_uses_spaces = 0;
6177
0
  heredoc_label->indentation = 0;
6178
0
  saved_cursor = YYCURSOR;
6179
6180
0
  zend_ptr_stack_push(&SCNG(heredoc_label_stack), (void *) heredoc_label);
6181
6182
0
  while (YYCURSOR < YYLIMIT && (*YYCURSOR == ' ' || *YYCURSOR == '\t')) {
6183
0
    if (*YYCURSOR == '\t') {
6184
0
      spacing |= HEREDOC_USING_TABS;
6185
0
    } else {
6186
0
      spacing |= HEREDOC_USING_SPACES;
6187
0
    }
6188
0
    ++YYCURSOR;
6189
0
    ++indentation;
6190
0
  }
6191
6192
0
  if (YYCURSOR == YYLIMIT) {
6193
0
    YYCURSOR = saved_cursor;
6194
0
    RETURN_TOKEN(T_START_HEREDOC);
6195
0
  }
6196
6197
  /* Check for ending label on the next line */
6198
0
  if (heredoc_label->length < YYLIMIT - YYCURSOR && !memcmp(YYCURSOR, s, heredoc_label->length)) {
6199
0
    if (!IS_LABEL_SUCCESSOR(YYCURSOR[heredoc_label->length])) {
6200
0
      if (spacing == (HEREDOC_USING_SPACES | HEREDOC_USING_TABS)) {
6201
0
        zend_throw_exception(zend_ce_parse_error, "Invalid indentation - tabs and spaces cannot be mixed", 0);
6202
0
        if (PARSER_MODE()) {
6203
0
          RETURN_TOKEN(T_ERROR);
6204
0
        }
6205
0
      }
6206
6207
0
      YYCURSOR = saved_cursor;
6208
0
      heredoc_label->indentation = indentation;
6209
6210
0
      BEGIN(ST_END_HEREDOC);
6211
0
      RETURN_TOKEN(T_START_HEREDOC);
6212
0
    }
6213
0
  }
6214
6215
0
  YYCURSOR = saved_cursor;
6216
6217
0
  if (is_heredoc && !SCNG(heredoc_scan_ahead)) {
6218
0
    zend_lex_state current_state;
6219
0
    zend_string *saved_doc_comment = CG(doc_comment);
6220
0
    int heredoc_nesting_level = 1;
6221
0
    int first_token = 0;
6222
0
    int error = 0;
6223
6224
0
    zend_save_lexical_state(&current_state);
6225
6226
0
    SCNG(heredoc_scan_ahead) = 1;
6227
0
    SCNG(heredoc_indentation) = 0;
6228
0
    SCNG(heredoc_indentation_uses_spaces) = 0;
6229
0
    SCNG(on_event_context) = NULL;
6230
0
    LANG_SCNG(on_event) = NULL;
6231
0
    CG(doc_comment) = NULL;
6232
6233
0
    zend_ptr_stack_reverse_apply(&current_state.heredoc_label_stack, copy_heredoc_label_stack);
6234
6235
0
    zend_exception_save();
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
    zend_exception_restore();
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 1818 "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 1534 "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 1442 "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 1554 "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 1630 "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 1415 "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 1758 "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 1462 "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 1774 "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 1754 "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 1518 "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 1550 "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 1450 "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 1562 "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 1806 "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 1470 "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 1434 "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 1696 "Zend/zend_language_scanner.l"
7028
0
    {
7029
0
  RETURN_TOKEN(T_BOOL_CAST);
7030
0
}
7031
0
#line 7032 "Zend/zend_language_scanner.c"
7032
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 1666 "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 1714 "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 1458 "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 1486 "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 1574 "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 1750 "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 1798 "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 1419 "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 1766 "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 1514 "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 1688 "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 1652 "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 1710 "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 1498 "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 1530 "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 1579 "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 1446 "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 1490 "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 1722 "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 1778 "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 1730 "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 2281 "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 1678 "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 1656 "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 1692 "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 1674 "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 1770 "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 1822 "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 1538 "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 1474 "Zend/zend_language_scanner.l"
8506
0
    {
8507
0
  RETURN_TOKEN_WITH_IDENT(T_ENDWHILE);
8508
0
}
8509
0
#line 8510 "Zend/zend_language_scanner.c"
8510
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 1411 "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 1802 "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 2277 "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 2273 "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 1700 "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 1642 "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 1522 "Zend/zend_language_scanner.l"
8946
0
    {
8947
0
  RETURN_TOKEN_WITH_IDENT(T_ENDSWITCH);
8948
0
}
8949
0
#line 8950 "Zend/zend_language_scanner.c"
8950
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 1746 "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 1558 "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 1738 "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 1782 "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 2253 "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 2257 "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 1502 "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 1494 "Zend/zend_language_scanner.l"
9372
0
    {
9373
0
  RETURN_TOKEN_WITH_IDENT(T_ENDFOREACH);
9374
0
}
9375
0
#line 9376 "Zend/zend_language_scanner.c"
9376
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 1583 "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 1506 "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 2269 "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 2439 "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 1786 "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 1428 "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 1570 "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 1726 "Zend/zend_language_scanner.l"
10266
0
    {
10267
0
  RETURN_TOKEN_WITH_IDENT(T_INCLUDE_ONCE);
10268
0
}
10269
0
#line 10270 "Zend/zend_language_scanner.c"
10270
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 1794 "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 1734 "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 2261 "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 2265 "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 2285 "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 1790 "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 1762 "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 2520 "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 1597 "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 2460 "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 1609 "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 1601 "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 2484 "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 1605 "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 2417 "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 1981 "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 2411 "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 2397 "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 2403 "Zend/zend_language_scanner.l"
11837
0
    {
11838
0
  yyless(yyleng - 4);
11839
0
  yy_push_state(ST_LOOKING_FOR_PROPERTY);
11840
0
  RETURN_TOKEN_WITH_STR(T_VARIABLE, 1);
11841
0
}
11842
0
#line 11843 "Zend/zend_language_scanner.c"
11843
0
  }
11844
/* *********************************** */
11845
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 2417 "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 1981 "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 2411 "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 2397 "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 2403 "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 2417 "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 1981 "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 2411 "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 2397 "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 2403 "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 2004 "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 1996 "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 2431 "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 2426 "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 2208 "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 2455 "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 2421 "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 2417 "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 2224 "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 2295 "Zend/zend_language_scanner.l"
12953
0
    {
12954
0
  yyless(0);
12955
0
  BEGIN(INITIAL);
12956
0
  goto restart;
12957
0
}
12958
0
#line 12959 "Zend/zend_language_scanner.c"
12959
0
yy1120:
12960
0
    YYDEBUG(1120, *YYCURSOR);
12961
0
    yych = *++YYCURSOR;
12962
0
    if (yych != '!') goto yy1119;
12963
0
yy1121:
12964
0
    YYDEBUG(1121, *YYCURSOR);
12965
0
    ++YYCURSOR;
12966
0
    YYFILL(1);
12967
0
    yych = *YYCURSOR;
12968
0
    YYDEBUG(1122, *YYCURSOR);
12969
0
    if (yybm[0+yych] & 128) {
12970
0
      goto yy1121;
12971
0
    }
12972
0
    YYDEBUG(1123, *YYCURSOR);
12973
0
    ++YYCURSOR;
12974
0
    YYDEBUG(1124, *YYCURSOR);
12975
0
    yyleng = YYCURSOR - SCNG(yy_text);
12976
0
#line 2289 "Zend/zend_language_scanner.l"
12977
0
    {
12978
0
  CG(zend_lineno)++;
12979
0
  BEGIN(INITIAL);
12980
0
  goto restart;
12981
0
}
12982
0
#line 12983 "Zend/zend_language_scanner.c"
12983
0
  }
12984
/* *********************************** */
12985
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 2341 "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 2332 "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 2301 "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 2317 "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 2311 "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
}