Coverage Report

Created: 2026-01-18 06:49

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/php-src/Zend/zend_ini_scanner.c
Line
Count
Source
1
/* Generated by re2c 1.3 */
2
#line 1 "Zend/zend_ini_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: Zeev Suraski <zeev@php.net>                                 |
18
   |          Jani Taskinen <jani@php.net>                                |
19
   |          Marcus Boerger <helly@php.net>                              |
20
   |          Nuno Lopes <nlopess@php.net>                                |
21
   |          Scott MacVicar <scottmac@php.net>                           |
22
   +----------------------------------------------------------------------+
23
*/
24
25
#include <errno.h>
26
#include "zend.h"
27
#include "zend_API.h"
28
#include "zend_globals.h"
29
#include <zend_ini_parser.h>
30
#include "zend_ini_scanner.h"
31
32
#ifdef YYDEBUG
33
#undef YYDEBUG
34
#endif
35
36
#if 0
37
# define YYDEBUG(s, c) printf("state: %d char: %c\n", s, c)
38
#else
39
# define YYDEBUG(s, c)
40
#endif
41
42
#include "zend_ini_scanner_defs.h"
43
44
8.01k
#define YYCTYPE   unsigned char
45
/* allow the scanner to read one null byte after the end of the string (from ZEND_MMAP_AHEAD)
46
 * so that if will be able to terminate to match the current token (e.g. non-enclosed string) */
47
72.3k
#define YYFILL(n) { if (YYCURSOR > YYLIMIT) return 0; }
48
270k
#define YYCURSOR  SCNG(yy_cursor)
49
96.7k
#define YYLIMIT   SCNG(yy_limit)
50
21.5k
#define YYMARKER  SCNG(yy_marker)
51
52
26.0k
#define YYGETCONDITION()  SCNG(yy_state)
53
3.53k
#define YYSETCONDITION(s) SCNG(yy_state) = s
54
55
568
#define STATE(name)  yyc##name
56
57
/* emulate flex constructs */
58
2.76k
#define BEGIN(state) YYSETCONDITION(STATE(state))
59
568
#define YYSTATE      YYGETCONDITION()
60
19.1k
#define yytext       ((const char*)SCNG(yy_text))
61
27.9k
#define yyleng       SCNG(yy_leng)
62
19
#define yyless(x)    do { YYCURSOR = (const unsigned char*)yytext + x; \
63
19
              yyleng   = (unsigned int)x; } while(0)
64
65
/* #define yymore()     goto yymore_restart */
66
67
/* perform sanity check. If this message is triggered you should
68
   increase the ZEND_MMAP_AHEAD value in the zend_streams.h file */
69
#define YYMAXFILL 6
70
71
#if ZEND_MMAP_AHEAD < (YYMAXFILL + 1)
72
# error ZEND_MMAP_AHEAD should be greater than YYMAXFILL
73
#endif
74
75
76
/* How it works (for the core ini directives):
77
 * ===========================================
78
 *
79
 * 1. Scanner scans file for tokens and passes them to parser.
80
 * 2. Parser parses the tokens and passes the name/value pairs to the callback
81
 *    function which stores them in the configuration hash table.
82
 * 3. Later REGISTER_INI_ENTRIES() is called which triggers the actual
83
 *    registering of ini entries and uses zend_get_configuration_directive()
84
 *    to fetch the previously stored name/value pair from configuration hash table
85
 *    and registers the static ini entries which match the name to the value
86
 *    into EG(ini_directives) hash table.
87
 * 4. PATH section entries are used per-request from down to top, each overriding
88
 *    previous if one exists. zend_alter_ini_entry() is called for each entry.
89
 *    Settings in PATH section are ZEND_INI_SYSTEM accessible and thus mimics the
90
 *    php_admin_* directives used within Apache httpd.conf when PHP is compiled as
91
 *    module for Apache.
92
 * 5. User defined ini files (like .htaccess for apache) are parsed for each request and
93
 *    stored in separate hash defined by SAPI.
94
 */
95
96
/* TODO: (ordered by importance :-)
97
 * ===============================================================================
98
 *
99
 *  - Separate constant lookup totally from plain strings (using CONSTANT pattern)
100
 *  - Add #if .. #else .. #endif and ==, !=, <, > , <=, >= operators
101
 *  - Add #include "some.ini"
102
 *  - Allow variables to refer to options also when using parse_ini_file()
103
 *
104
 */
105
106
/* Globals Macros */
107
503k
#define SCNG  INI_SCNG
108
#ifdef ZTS
109
ZEND_API ts_rsrc_id ini_scanner_globals_id;
110
ZEND_API size_t ini_scanner_globals_offset;
111
#else
112
ZEND_API zend_ini_scanner_globals ini_scanner_globals;
113
#endif
114
115
#define ZEND_SYSTEM_INI CG(ini_parser_unbuffered_errors)
116
117
/* Eat leading whitespace */
118
#define EAT_LEADING_WHITESPACE()                     \
119
3.30k
  while (yyleng) {                                 \
120
3.30k
    if (yytext[0] == ' ' || yytext[0] == '\t') { \
121
1.31k
      SCNG(yy_text)++;                         \
122
1.31k
      yyleng--;                                \
123
1.98k
    } else {                                     \
124
1.98k
      break;                                   \
125
1.98k
    }                                            \
126
3.30k
  }
127
128
/* Eat trailing whitespace + extra char */
129
#define EAT_TRAILING_WHITESPACE_EX(ch)              \
130
2.98k
  while (yyleng && (                              \
131
2.98k
    (ch != 'X' && yytext[yyleng - 1] ==  ch) || \
132
2.98k
    yytext[yyleng - 1] == '\n' ||               \
133
2.98k
    yytext[yyleng - 1] == '\r' ||               \
134
2.98k
    yytext[yyleng - 1] == '\t' ||               \
135
2.98k
    yytext[yyleng - 1] == ' ')                  \
136
1.98k
  ) {                                             \
137
1.00k
    yyleng--;                                   \
138
1.00k
  }
139
140
/* Eat trailing whitespace */
141
1.94k
#define EAT_TRAILING_WHITESPACE() EAT_TRAILING_WHITESPACE_EX('X')
142
143
#define zend_ini_copy_value(retval, str, len) \
144
4.22k
  ZVAL_NEW_STR(retval, zend_string_init(str, len, ZEND_SYSTEM_INI))
145
146
147
4.03k
#define RETURN_TOKEN(type, str, len) {                             \
148
4.03k
  if (SCNG(scanner_mode) == ZEND_INI_SCANNER_TYPED &&            \
149
4.03k
    (YYSTATE == STATE(ST_VALUE) || YYSTATE == STATE(ST_RAW))) {\
150
76
    zend_ini_copy_typed_value(ini_lval, type, str, len);       \
151
3.95k
  } else {                                                       \
152
3.95k
    zend_ini_copy_value(ini_lval, str, len);                   \
153
3.95k
  }                                                              \
154
4.03k
  Z_EXTRA_P(ini_lval) = 0;                                       \
155
4.03k
  return type;                                                   \
156
4.03k
}
157
158
static void zend_ini_copy_typed_value(zval *retval, const int type, const char *str, int len)
159
76
{
160
76
  switch (type) {
161
0
    case BOOL_FALSE:
162
4
    case BOOL_TRUE:
163
4
      ZVAL_BOOL(retval, type == BOOL_TRUE);
164
4
      break;
165
166
0
    case NULL_NULL:
167
0
      ZVAL_NULL(retval);
168
0
      break;
169
170
72
    default:
171
72
      zend_ini_copy_value(retval, str, len);
172
76
  }
173
76
}
174
175
static void _yy_push_state(int new_state)
176
416
{
177
416
  zend_stack_push(&SCNG(state_stack), (void *) &YYGETCONDITION());
178
416
  YYSETCONDITION(new_state);
179
416
}
180
181
416
#define yy_push_state(state_and_tsrm) _yy_push_state(yyc##state_and_tsrm)
182
183
static void yy_pop_state(void)
184
351
{
185
351
  int *stack_state = zend_stack_top(&SCNG(state_stack));
186
351
  YYSETCONDITION(*stack_state);
187
351
  zend_stack_del_top(&SCNG(state_stack));
188
351
}
189
190
static void yy_scan_buffer(const char *str, unsigned int len)
191
379
{
192
379
  YYCURSOR = (const YYCTYPE*)str;
193
379
  SCNG(yy_start) = YYCURSOR;
194
379
  YYLIMIT  = YYCURSOR + len;
195
379
}
196
197
1.02k
#define ini_filename SCNG(filename)
198
199
/* {{{ init_ini_scanner() */
200
static zend_result init_ini_scanner(int scanner_mode, zend_file_handle *fh)
201
379
{
202
  /* Sanity check */
203
379
  if (scanner_mode != ZEND_INI_SCANNER_NORMAL && scanner_mode != ZEND_INI_SCANNER_RAW && scanner_mode != ZEND_INI_SCANNER_TYPED) {
204
0
    zend_error(E_WARNING, "Invalid scanner mode");
205
0
    return FAILURE;
206
0
  }
207
208
379
  SCNG(lineno) = 1;
209
379
  SCNG(scanner_mode) = scanner_mode;
210
379
  SCNG(yy_in) = fh;
211
212
379
  if (fh != NULL) {
213
0
    ini_filename = zend_string_copy(fh->filename);
214
379
  } else {
215
379
    ini_filename = NULL;
216
379
  }
217
218
379
  zend_stack_init(&SCNG(state_stack), sizeof(int));
219
379
  BEGIN(INITIAL);
220
221
379
  return SUCCESS;
222
379
}
223
/* }}} */
224
225
/* {{{ shutdown_ini_scanner() */
226
void shutdown_ini_scanner(void)
227
379
{
228
379
  zend_stack_destroy(&SCNG(state_stack));
229
379
  if (ini_filename) {
230
0
    zend_string_release(ini_filename);
231
0
  }
232
379
}
233
/* }}} */
234
235
/* {{{ zend_ini_scanner_get_lineno() */
236
ZEND_COLD uint32_t zend_ini_scanner_get_lineno(void)
237
268
{
238
268
  return SCNG(lineno);
239
268
}
240
/* }}} */
241
242
/* {{{ zend_ini_scanner_get_filename() */
243
ZEND_COLD const char *zend_ini_scanner_get_filename(void)
244
268
{
245
268
  return ini_filename ? ZSTR_VAL(ini_filename) : "Unknown";
246
268
}
247
/* }}} */
248
249
/* {{{ zend_ini_open_file_for_scanning() */
250
zend_result zend_ini_open_file_for_scanning(zend_file_handle *fh, int scanner_mode)
251
0
{
252
0
  char *buf;
253
0
  size_t size;
254
255
0
  if (zend_stream_fixup(fh, &buf, &size) == FAILURE) {
256
0
    return FAILURE;
257
0
  }
258
259
0
  if (init_ini_scanner(scanner_mode, fh) == FAILURE) {
260
0
    return FAILURE;
261
0
  }
262
263
0
  yy_scan_buffer(buf, (unsigned int)size);
264
265
0
  return SUCCESS;
266
0
}
267
/* }}} */
268
269
/* {{{ zend_ini_prepare_string_for_scanning() */
270
zend_result zend_ini_prepare_string_for_scanning(const char *str, int scanner_mode)
271
379
{
272
379
  int len = (int)strlen(str);
273
274
379
  if (init_ini_scanner(scanner_mode, NULL) == FAILURE) {
275
0
    return FAILURE;
276
0
  }
277
278
379
  yy_scan_buffer(str, len);
279
280
379
  return SUCCESS;
281
379
}
282
/* }}} */
283
284
/* {{{ zend_ini_escape_string() */
285
static void zend_ini_escape_string(zval *lval, const char *str, int len, char quote_type)
286
193
{
287
193
  char *s, *t;
288
193
  char *end;
289
290
193
  zend_ini_copy_value(lval, str, len);
291
292
  /* convert escape sequences */
293
193
  s = t = Z_STRVAL_P(lval);
294
193
  end = s + Z_STRLEN_P(lval);
295
296
8.02k
  while (s < end) {
297
7.83k
    if (*s == '\\') {
298
18
      s++;
299
18
      if (s >= end) {
300
0
        *t++ = '\\';
301
0
        continue;
302
0
      }
303
18
      switch (*s) {
304
0
        case '"':
305
0
          if (*s != quote_type) {
306
0
            *t++ = '\\';
307
0
            *t++ = *s;
308
0
            break;
309
0
          }
310
0
          ZEND_FALLTHROUGH;
311
0
        case '\\':
312
0
        case '$':
313
0
          *t++ = *s;
314
0
          Z_STRLEN_P(lval)--;
315
0
          break;
316
18
        default:
317
18
          *t++ = '\\';
318
18
          *t++ = *s;
319
18
          break;
320
18
      }
321
7.81k
    } else {
322
7.81k
      *t++ = *s;
323
7.81k
    }
324
7.83k
    if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
325
498
      SCNG(lineno)++;
326
498
    }
327
7.83k
    s++;
328
7.83k
  }
329
193
  *t = 0;
330
193
}
331
/* }}} */
332
333
int ini_lex(zval *ini_lval)
334
8.08k
{
335
8.23k
restart:
336
8.23k
  SCNG(yy_text) = YYCURSOR;
337
338
/* yymore_restart: */
339
  /* detect EOF */
340
8.23k
  if (YYCURSOR >= YYLIMIT) {
341
160
    if (YYSTATE == STATE(ST_VALUE) || YYSTATE == STATE(ST_RAW)) {
342
58
      BEGIN(INITIAL);
343
58
      return END_OF_LINE;
344
58
    }
345
102
    return 0;
346
160
  }
347
348
  /* Eat any UTF-8 BOM we find in the first 3 bytes */
349
8.07k
  if (YYCURSOR == SCNG(yy_start) && YYCURSOR + 3 < YYLIMIT) {
350
374
    if (memcmp(YYCURSOR, "\xef\xbb\xbf", 3) == 0) {
351
55
      YYCURSOR += 3;
352
55
      goto restart;
353
55
    }
354
374
  }
355
356
8.01k
#line 357 "Zend/zend_ini_scanner.c"
357
8.01k
{
358
8.01k
  YYCTYPE yych;
359
8.01k
  unsigned int yyaccept = 0;
360
8.01k
  if (YYGETCONDITION() < 4) {
361
6.31k
    if (YYGETCONDITION() < 2) {
362
4.10k
      if (YYGETCONDITION() < 1) {
363
3.35k
        goto yyc_INITIAL;
364
3.35k
      } else {
365
745
        goto yyc_ST_OFFSET;
366
745
      }
367
4.10k
    } else {
368
2.21k
      if (YYGETCONDITION() < 3) {
369
358
        goto yyc_ST_SECTION_VALUE;
370
1.85k
      } else {
371
1.85k
        goto yyc_ST_VALUE;
372
1.85k
      }
373
2.21k
    }
374
6.31k
  } else {
375
1.69k
    if (YYGETCONDITION() < 6) {
376
485
      if (YYGETCONDITION() < 5) {
377
0
        goto yyc_ST_SECTION_RAW;
378
485
      } else {
379
485
        goto yyc_ST_DOUBLE_QUOTES;
380
485
      }
381
1.21k
    } else {
382
1.21k
      if (YYGETCONDITION() < 7) {
383
148
        goto yyc_ST_VAR_FALLBACK;
384
1.06k
      } else {
385
1.06k
        if (YYGETCONDITION() < 8) {
386
114
          goto yyc_ST_VARNAME;
387
952
        } else {
388
952
          goto yyc_ST_RAW;
389
952
        }
390
1.06k
      }
391
1.21k
    }
392
1.69k
  }
393
/* *********************************** */
394
3.35k
yyc_INITIAL:
395
3.35k
  {
396
3.35k
    static const unsigned char yybm[] = {
397
3.35k
      128, 144, 144, 144, 144, 144, 144, 144, 
398
3.35k
      144, 160,   0, 144, 144,   0, 144, 144, 
399
3.35k
      144, 144, 144, 144, 144, 144, 144, 144, 
400
3.35k
      144, 144, 144, 144, 144, 144, 144, 144, 
401
3.35k
      240, 128, 128, 144, 128, 144, 128, 144, 
402
3.35k
      128, 128, 144, 144, 144, 144, 144, 144, 
403
3.35k
      144, 144, 144, 144, 144, 144, 144, 144, 
404
3.35k
      144, 144, 144, 128, 144, 128, 144, 144, 
405
3.35k
      144, 144, 144, 144, 144, 144, 144, 144, 
406
3.35k
      144, 144, 144, 144, 144, 144, 144, 144, 
407
3.35k
      144, 144, 144, 144, 144, 144, 144, 144, 
408
3.35k
      144, 144, 144, 128, 144, 128, 128, 144, 
409
3.35k
      144, 144, 144, 144, 144, 144, 144, 144, 
410
3.35k
      144, 144, 144, 144, 144, 144, 144, 144, 
411
3.35k
      144, 144, 144, 144, 144, 144, 144, 144, 
412
3.35k
      144, 144, 144, 128, 128, 128, 128, 144, 
413
3.35k
      144, 144, 144, 144, 144, 144, 144, 144, 
414
3.35k
      144, 144, 144, 144, 144, 144, 144, 144, 
415
3.35k
      144, 144, 144, 144, 144, 144, 144, 144, 
416
3.35k
      144, 144, 144, 144, 144, 144, 144, 144, 
417
3.35k
      144, 144, 144, 144, 144, 144, 144, 144, 
418
3.35k
      144, 144, 144, 144, 144, 144, 144, 144, 
419
3.35k
      144, 144, 144, 144, 144, 144, 144, 144, 
420
3.35k
      144, 144, 144, 144, 144, 144, 144, 144, 
421
3.35k
      144, 144, 144, 144, 144, 144, 144, 144, 
422
3.35k
      144, 144, 144, 144, 144, 144, 144, 144, 
423
3.35k
      144, 144, 144, 144, 144, 144, 144, 144, 
424
3.35k
      144, 144, 144, 144, 144, 144, 144, 144, 
425
3.35k
      144, 144, 144, 144, 144, 144, 144, 144, 
426
3.35k
      144, 144, 144, 144, 144, 144, 144, 144, 
427
3.35k
      144, 144, 144, 144, 144, 144, 144, 144, 
428
3.35k
      144, 144, 144, 144, 144, 144, 144, 144, 
429
3.35k
    };
430
3.35k
    YYDEBUG(1, *YYCURSOR);
431
3.35k
    YYFILL(5);
432
3.35k
    yych = *YYCURSOR;
433
3.35k
    if (yybm[0+yych] & 64) {
434
429
      goto yy14;
435
429
    }
436
2.92k
    if (yych <= 'M') {
437
2.07k
      if (yych <= '$') {
438
645
        if (yych <= '\f') {
439
402
          if (yych <= 0x08) {
440
69
            if (yych >= 0x01) goto yy5;
441
333
          } else {
442
333
            if (yych <= '\t') goto yy8;
443
238
            if (yych <= '\n') goto yy11;
444
9
            goto yy5;
445
238
          }
446
402
        } else {
447
243
          if (yych <= 0x1F) {
448
196
            if (yych <= '\r') goto yy13;
449
2
            goto yy5;
450
196
          } else {
451
47
            if (yych == '#') goto yy5;
452
30
            goto yy16;
453
47
          }
454
243
        }
455
1.43k
      } else {
456
1.43k
        if (yych <= ':') {
457
310
          if (yych <= '&') {
458
1
            if (yych <= '%') goto yy5;
459
0
            goto yy16;
460
309
          } else {
461
309
            if (yych <= '\'') goto yy5;
462
308
            if (yych <= ')') goto yy16;
463
300
            goto yy5;
464
308
          }
465
1.12k
        } else {
466
1.12k
          if (yych <= '=') {
467
1.10k
            if (yych <= ';') goto yy18;
468
1.01k
            if (yych <= '<') goto yy5;
469
1.01k
            goto yy20;
470
1.01k
          } else {
471
23
            if (yych == 'F') goto yy23;
472
23
            goto yy5;
473
23
          }
474
1.12k
        }
475
1.43k
      }
476
2.07k
    } else {
477
849
      if (yych <= 'e') {
478
364
        if (yych <= 'X') {
479
14
          if (yych <= 'O') {
480
13
            if (yych <= 'N') goto yy24;
481
13
            goto yy25;
482
13
          } else {
483
1
            if (yych == 'T') goto yy26;
484
1
            goto yy5;
485
1
          }
486
350
        } else {
487
350
          if (yych <= '[') {
488
157
            if (yych <= 'Y') goto yy27;
489
157
            if (yych <= 'Z') goto yy5;
490
157
            goto yy28;
491
193
          } else {
492
193
            if (yych <= '\\') goto yy5;
493
193
            if (yych <= '^') goto yy16;
494
191
            goto yy5;
495
193
          }
496
350
        }
497
485
      } else {
498
485
        if (yych <= 's') {
499
77
          if (yych <= 'm') {
500
46
            if (yych <= 'f') goto yy23;
501
45
            goto yy5;
502
46
          } else {
503
31
            if (yych <= 'n') goto yy24;
504
22
            if (yych <= 'o') goto yy25;
505
13
            goto yy5;
506
22
          }
507
408
        } else {
508
408
          if (yych <= 'y') {
509
38
            if (yych <= 't') goto yy26;
510
38
            if (yych <= 'x') goto yy5;
511
5
            goto yy27;
512
370
          } else {
513
370
            if (yych <= 'z') goto yy5;
514
370
            if (yych <= '~') goto yy16;
515
369
            goto yy5;
516
370
          }
517
408
        }
518
485
      }
519
849
    }
520
0
    YYDEBUG(3, *YYCURSOR);
521
0
    ++YYCURSOR;
522
0
    YYDEBUG(4, *YYCURSOR);
523
0
    yyleng = YYCURSOR - SCNG(yy_text);
524
0
#line 686 "Zend/zend_ini_scanner.l"
525
0
    {
526
0
  return 0;
527
2.92k
}
528
0
#line 529 "Zend/zend_ini_scanner.c"
529
13.8k
yy5:
530
13.8k
    YYDEBUG(5, *YYCURSOR);
531
13.8k
    ++YYCURSOR;
532
13.8k
    YYFILL(1);
533
13.8k
    yych = *YYCURSOR;
534
13.9k
yy6:
535
13.9k
    YYDEBUG(6, *YYCURSOR);
536
13.9k
    if (yybm[0+yych] & 16) {
537
12.4k
      goto yy5;
538
12.4k
    }
539
1.44k
    if (yych <= '=') goto yy7;
540
49
    if (yych <= '[') goto yy30;
541
1.40k
yy7:
542
1.40k
    YYDEBUG(7, *YYCURSOR);
543
1.40k
    yyleng = YYCURSOR - SCNG(yy_text);
544
1.40k
#line 503 "Zend/zend_ini_scanner.l"
545
1.40k
    { /* Get option name */
546
  /* Eat leading whitespace */
547
1.40k
  EAT_LEADING_WHITESPACE();
548
549
  /* Eat trailing whitespace */
550
1.40k
  EAT_TRAILING_WHITESPACE();
551
552
1.40k
  RETURN_TOKEN(TC_LABEL, yytext, yyleng);
553
0
}
554
0
#line 555 "Zend/zend_ini_scanner.c"
555
1.19k
yy8:
556
1.19k
    YYDEBUG(8, *YYCURSOR);
557
1.19k
    ++YYCURSOR;
558
1.19k
    YYFILL(2);
559
1.19k
    yych = *YYCURSOR;
560
1.19k
    YYDEBUG(9, *YYCURSOR);
561
1.19k
    if (yybm[0+yych] & 32) {
562
1.09k
      goto yy8;
563
1.09k
    }
564
99
    if (yych <= '\r') {
565
58
      if (yych <= 0x08) goto yy10;
566
0
      if (yych <= '\n') goto yy11;
567
0
      if (yych >= '\r') goto yy13;
568
41
    } else {
569
41
      if (yych <= ';') {
570
7
        if (yych >= ';') goto yy18;
571
34
      } else {
572
34
        if (yych == '=') goto yy20;
573
34
      }
574
41
    }
575
91
yy10:
576
91
    YYDEBUG(10, *YYCURSOR);
577
91
    yyleng = YYCURSOR - SCNG(yy_text);
578
91
#line 665 "Zend/zend_ini_scanner.l"
579
91
    {
580
  /* eat whitespace */
581
91
  goto restart;
582
99
}
583
0
#line 584 "Zend/zend_ini_scanner.c"
584
231
yy11:
585
231
    YYDEBUG(11, *YYCURSOR);
586
231
    ++YYCURSOR;
587
423
yy12:
588
423
    YYDEBUG(12, *YYCURSOR);
589
423
    yyleng = YYCURSOR - SCNG(yy_text);
590
423
#line 670 "Zend/zend_ini_scanner.l"
591
423
    {
592
423
  SCNG(lineno)++;
593
423
  return END_OF_LINE;
594
231
}
595
0
#line 596 "Zend/zend_ini_scanner.c"
596
194
yy13:
597
194
    YYDEBUG(13, *YYCURSOR);
598
194
    yych = *++YYCURSOR;
599
194
    if (yych == '\n') goto yy11;
600
192
    goto yy12;
601
1.48k
yy14:
602
1.48k
    YYDEBUG(14, *YYCURSOR);
603
1.48k
    ++YYCURSOR;
604
1.48k
    YYFILL(2);
605
1.48k
    yych = *YYCURSOR;
606
1.48k
    YYDEBUG(15, *YYCURSOR);
607
1.48k
    if (yybm[0+yych] & 64) {
608
1.05k
      goto yy14;
609
1.05k
    }
610
429
    if (yych <= '&') {
611
4
      if (yych <= '\r') {
612
4
        if (yych <= '\t') {
613
4
          if (yych <= 0x00) goto yy7;
614
4
          if (yych <= 0x08) goto yy5;
615
4
          goto yy8;
616
4
        } else {
617
0
          if (yych <= '\n') goto yy11;
618
0
          if (yych <= '\f') goto yy5;
619
0
          goto yy13;
620
0
        }
621
4
      } else {
622
0
        if (yych <= '#') {
623
0
          if (yych <= 0x1F) goto yy5;
624
0
          if (yych <= '"') goto yy7;
625
0
          goto yy5;
626
0
        } else {
627
0
          if (yych == '%') goto yy5;
628
0
          goto yy7;
629
0
        }
630
0
      }
631
425
    } else {
632
425
      if (yych <= '=') {
633
91
        if (yych <= ':') {
634
5
          if (yych <= '\'') goto yy5;
635
5
          if (yych <= ')') goto yy7;
636
3
          goto yy5;
637
86
        } else {
638
86
          if (yych <= ';') goto yy18;
639
1
          if (yych <= '<') goto yy5;
640
0
          goto yy20;
641
1
        }
642
334
      } else {
643
334
        if (yych <= '\\') {
644
1
          if (yych == '[') goto yy30;
645
0
          goto yy5;
646
333
        } else {
647
333
          if (yych <= '^') goto yy7;
648
333
          if (yych <= 'z') goto yy5;
649
1
          if (yych <= '~') goto yy7;
650
1
          goto yy5;
651
1
        }
652
334
      }
653
425
    }
654
41
yy16:
655
41
    YYDEBUG(16, *YYCURSOR);
656
41
    ++YYCURSOR;
657
41
    YYDEBUG(17, *YYCURSOR);
658
41
    yyleng = YYCURSOR - SCNG(yy_text);
659
41
#line 584 "Zend/zend_ini_scanner.l"
660
41
    { /* Disallow these chars outside option values */
661
41
  return yytext[0];
662
429
}
663
0
#line 664 "Zend/zend_ini_scanner.c"
664
6.05k
yy18:
665
6.05k
    YYDEBUG(18, *YYCURSOR);
666
6.05k
    ++YYCURSOR;
667
6.05k
    YYFILL(2);
668
6.04k
    yych = *YYCURSOR;
669
6.04k
    YYDEBUG(19, *YYCURSOR);
670
6.04k
    if (yybm[0+yych] & 128) {
671
5.87k
      goto yy18;
672
5.87k
    }
673
165
    if (yych <= '\n') goto yy33;
674
5
    goto yy35;
675
1.58k
yy20:
676
1.58k
    YYDEBUG(20, *YYCURSOR);
677
1.58k
    ++YYCURSOR;
678
1.58k
    YYFILL(1);
679
1.58k
    yych = *YYCURSOR;
680
1.58k
    YYDEBUG(21, *YYCURSOR);
681
1.58k
    if (yych == '\t') goto yy20;
682
1.58k
    if (yych == ' ') goto yy20;
683
1.02k
    YYDEBUG(22, *YYCURSOR);
684
1.02k
    yyleng = YYCURSOR - SCNG(yy_text);
685
1.02k
#line 513 "Zend/zend_ini_scanner.l"
686
1.02k
    { /* Start option value */
687
1.02k
  if (SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW) {
688
492
    BEGIN(ST_RAW);
689
528
  } else {
690
528
    BEGIN(ST_VALUE);
691
528
  }
692
1.02k
  return '=';
693
1.58k
}
694
0
#line 695 "Zend/zend_ini_scanner.c"
695
1
yy23:
696
1
    YYDEBUG(23, *YYCURSOR);
697
1
    yych = *++YYCURSOR;
698
1
    if (yych == 'A') goto yy36;
699
0
    if (yych == 'a') goto yy36;
700
0
    goto yy6;
701
9
yy24:
702
9
    YYDEBUG(24, *YYCURSOR);
703
9
    yych = *++YYCURSOR;
704
9
    if (yych <= 'U') {
705
0
      if (yych == 'O') goto yy37;
706
0
      if (yych <= 'T') goto yy6;
707
0
      goto yy39;
708
9
    } else {
709
9
      if (yych <= 'o') {
710
5
        if (yych <= 'n') goto yy6;
711
1
        goto yy37;
712
5
      } else {
713
4
        if (yych == 'u') goto yy39;
714
4
        goto yy6;
715
4
      }
716
9
    }
717
22
yy25:
718
22
    YYDEBUG(25, *YYCURSOR);
719
22
    yych = *++YYCURSOR;
720
22
    if (yych <= 'N') {
721
14
      if (yych == 'F') goto yy40;
722
13
      if (yych <= 'M') goto yy6;
723
0
      goto yy41;
724
13
    } else {
725
8
      if (yych <= 'f') {
726
0
        if (yych <= 'e') goto yy6;
727
0
        goto yy40;
728
8
      } else {
729
8
        if (yych == 'n') goto yy41;
730
4
        goto yy6;
731
8
      }
732
8
    }
733
0
yy26:
734
0
    YYDEBUG(26, *YYCURSOR);
735
0
    yych = *++YYCURSOR;
736
0
    if (yych == 'R') goto yy44;
737
0
    if (yych == 'r') goto yy44;
738
0
    goto yy6;
739
5
yy27:
740
5
    YYDEBUG(27, *YYCURSOR);
741
5
    yych = *++YYCURSOR;
742
5
    if (yych == 'E') goto yy45;
743
5
    if (yych == 'e') goto yy45;
744
0
    goto yy6;
745
157
yy28:
746
157
    YYDEBUG(28, *YYCURSOR);
747
157
    ++YYCURSOR;
748
157
    YYDEBUG(29, *YYCURSOR);
749
157
    yyleng = YYCURSOR - SCNG(yy_text);
750
157
#line 379 "Zend/zend_ini_scanner.l"
751
157
    { /* Section start */
752
  /* Enter section data lookup state */
753
157
  if (SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW) {
754
0
    BEGIN(ST_SECTION_RAW);
755
157
  } else {
756
157
    BEGIN(ST_SECTION_VALUE);
757
157
  }
758
157
  return TC_SECTION;
759
5
}
760
0
#line 761 "Zend/zend_ini_scanner.c"
761
74
yy30:
762
74
    YYDEBUG(30, *YYCURSOR);
763
74
    ++YYCURSOR;
764
74
    YYFILL(1);
765
74
    yych = *YYCURSOR;
766
74
    YYDEBUG(31, *YYCURSOR);
767
74
    if (yych == '\t') goto yy30;
768
74
    if (yych == ' ') goto yy30;
769
47
    YYDEBUG(32, *YYCURSOR);
770
47
    yyleng = YYCURSOR - SCNG(yy_text);
771
47
#line 404 "Zend/zend_ini_scanner.l"
772
47
    { /* Start of option with offset */
773
  /* Eat leading whitespace */
774
47
  EAT_LEADING_WHITESPACE();
775
776
  /* Eat trailing whitespace and [ */
777
47
  EAT_TRAILING_WHITESPACE_EX('[');
778
779
  /* Enter offset lookup state */
780
47
  BEGIN(ST_OFFSET);
781
782
47
  RETURN_TOKEN(TC_OFFSET, yytext, yyleng);
783
0
}
784
0
#line 785 "Zend/zend_ini_scanner.c"
785
161
yy33:
786
161
    YYDEBUG(33, *YYCURSOR);
787
161
    ++YYCURSOR;
788
165
yy34:
789
165
    YYDEBUG(34, *YYCURSOR);
790
165
    yyleng = YYCURSOR - SCNG(yy_text);
791
165
#line 675 "Zend/zend_ini_scanner.l"
792
165
    { /* Comment */
793
165
  BEGIN(INITIAL);
794
165
  SCNG(lineno)++;
795
165
  return END_OF_LINE;
796
161
}
797
0
#line 798 "Zend/zend_ini_scanner.c"
798
5
yy35:
799
5
    YYDEBUG(35, *YYCURSOR);
800
5
    yych = *++YYCURSOR;
801
5
    if (yych == '\n') goto yy33;
802
4
    goto yy34;
803
4
yy36:
804
1
    YYDEBUG(36, *YYCURSOR);
805
1
    yych = *++YYCURSOR;
806
1
    if (yych == 'L') goto yy46;
807
0
    if (yych == 'l') goto yy46;
808
0
    goto yy6;
809
1
yy37:
810
1
    YYDEBUG(37, *YYCURSOR);
811
1
    yych = *++YYCURSOR;
812
1
    if (yych <= '\'') {
813
1
      if (yych <= 0x1F) {
814
1
        if (yych <= '\t') {
815
1
          if (yych <= 0x00) goto yy38;
816
1
          if (yych <= 0x08) goto yy6;
817
0
          goto yy47;
818
1
        } else {
819
0
          if (yych <= '\n') goto yy38;
820
0
          if (yych != '\r') goto yy6;
821
0
        }
822
1
      } else {
823
0
        if (yych <= '#') {
824
0
          if (yych <= ' ') goto yy49;
825
0
          if (yych >= '#') goto yy6;
826
0
        } else {
827
0
          if (yych == '%') goto yy6;
828
0
          if (yych >= '\'') goto yy6;
829
0
        }
830
0
      }
831
1
    } else {
832
0
      if (yych <= 'N') {
833
0
        if (yych <= ';') {
834
0
          if (yych <= ')') goto yy38;
835
0
          if (yych <= ':') goto yy6;
836
0
        } else {
837
0
          if (yych == '=') goto yy38;
838
0
          if (yych <= 'M') goto yy6;
839
0
          goto yy51;
840
0
        }
841
0
      } else {
842
0
        if (yych <= 'm') {
843
0
          if (yych <= '\\') goto yy6;
844
0
          if (yych >= '_') goto yy6;
845
0
        } else {
846
0
          if (yych <= 'n') goto yy51;
847
0
          if (yych <= 'z') goto yy6;
848
0
          if (yych >= 0x7F) goto yy6;
849
0
        }
850
0
      }
851
0
    }
852
0
yy38:
853
0
    YYDEBUG(38, *YYCURSOR);
854
0
    yyleng = YYCURSOR - SCNG(yy_text);
855
0
#line 495 "Zend/zend_ini_scanner.l"
856
0
    { /* FALSE value (when used outside option value/offset this causes parse error!)*/
857
0
  RETURN_TOKEN(BOOL_FALSE, "", 0);
858
0
}
859
0
#line 860 "Zend/zend_ini_scanner.c"
860
0
yy39:
861
0
    YYDEBUG(39, *YYCURSOR);
862
0
    yych = *++YYCURSOR;
863
0
    if (yych == 'L') goto yy52;
864
0
    if (yych == 'l') goto yy52;
865
0
    goto yy6;
866
1
yy40:
867
1
    YYDEBUG(40, *YYCURSOR);
868
1
    yych = *++YYCURSOR;
869
1
    if (yych == 'F') goto yy49;
870
1
    if (yych == 'f') goto yy49;
871
1
    goto yy6;
872
7
yy41:
873
7
    YYDEBUG(41, *YYCURSOR);
874
7
    ++YYCURSOR;
875
7
    YYFILL(1);
876
7
    yych = *YYCURSOR;
877
7
    YYDEBUG(42, *YYCURSOR);
878
7
    if (yych <= '&') {
879
6
      if (yych <= '\r') {
880
2
        if (yych <= '\t') {
881
0
          if (yych <= 0x00) goto yy43;
882
0
          if (yych <= 0x08) goto yy5;
883
0
          goto yy53;
884
2
        } else {
885
2
          if (yych <= '\n') goto yy43;
886
2
          if (yych <= '\f') goto yy5;
887
2
        }
888
4
      } else {
889
4
        if (yych <= '"') {
890
3
          if (yych <= 0x1F) goto yy5;
891
3
          if (yych <= ' ') goto yy41;
892
3
        } else {
893
1
          if (yych == '$') goto yy43;
894
1
          if (yych <= '%') goto yy5;
895
1
        }
896
4
      }
897
6
    } else {
898
1
      if (yych <= '=') {
899
0
        if (yych <= ':') {
900
0
          if (yych <= '\'') goto yy5;
901
0
          if (yych >= '*') goto yy5;
902
0
        } else {
903
0
          if (yych == '<') goto yy5;
904
0
        }
905
1
      } else {
906
1
        if (yych <= '\\') {
907
1
          if (yych == '[') goto yy30;
908
1
          goto yy5;
909
1
        } else {
910
0
          if (yych <= '^') goto yy43;
911
0
          if (yych <= 'z') goto yy5;
912
0
          if (yych >= 0x7F) goto yy5;
913
0
        }
914
1
      }
915
1
    }
916
2
yy43:
917
2
    YYDEBUG(43, *YYCURSOR);
918
2
    yyleng = YYCURSOR - SCNG(yy_text);
919
2
#line 491 "Zend/zend_ini_scanner.l"
920
2
    { /* TRUE value (when used outside option value/offset this causes parse error!) */
921
2
  RETURN_TOKEN(BOOL_TRUE, "1", 1);
922
0
}
923
0
#line 924 "Zend/zend_ini_scanner.c"
924
0
yy44:
925
0
    YYDEBUG(44, *YYCURSOR);
926
0
    yych = *++YYCURSOR;
927
0
    if (yych == 'U') goto yy55;
928
0
    if (yych == 'u') goto yy55;
929
0
    goto yy6;
930
5
yy45:
931
5
    YYDEBUG(45, *YYCURSOR);
932
5
    yych = *++YYCURSOR;
933
5
    if (yych == 'S') goto yy41;
934
5
    if (yych == 's') goto yy41;
935
5
    goto yy6;
936
5
yy46:
937
1
    YYDEBUG(46, *YYCURSOR);
938
1
    yych = *++YYCURSOR;
939
1
    if (yych == 'S') goto yy51;
940
1
    if (yych == 's') goto yy51;
941
1
    goto yy6;
942
1
yy47:
943
0
    YYDEBUG(47, *YYCURSOR);
944
0
    ++YYCURSOR;
945
0
    YYFILL(1);
946
0
    yych = *YYCURSOR;
947
0
    YYDEBUG(48, *YYCURSOR);
948
0
    if (yych == '\t') goto yy47;
949
0
    if (yych == ' ') goto yy47;
950
0
    goto yy38;
951
0
yy49:
952
0
    YYDEBUG(49, *YYCURSOR);
953
0
    ++YYCURSOR;
954
0
    YYFILL(1);
955
0
    yych = *YYCURSOR;
956
0
    YYDEBUG(50, *YYCURSOR);
957
0
    if (yych <= '&') {
958
0
      if (yych <= '\r') {
959
0
        if (yych <= '\t') {
960
0
          if (yych <= 0x00) goto yy38;
961
0
          if (yych <= 0x08) goto yy5;
962
0
          goto yy47;
963
0
        } else {
964
0
          if (yych <= '\n') goto yy38;
965
0
          if (yych <= '\f') goto yy5;
966
0
          goto yy38;
967
0
        }
968
0
      } else {
969
0
        if (yych <= '"') {
970
0
          if (yych <= 0x1F) goto yy5;
971
0
          if (yych <= ' ') goto yy49;
972
0
          goto yy38;
973
0
        } else {
974
0
          if (yych == '$') goto yy38;
975
0
          if (yych <= '%') goto yy5;
976
0
          goto yy38;
977
0
        }
978
0
      }
979
0
    } else {
980
0
      if (yych <= '=') {
981
0
        if (yych <= ':') {
982
0
          if (yych <= '\'') goto yy5;
983
0
          if (yych <= ')') goto yy38;
984
0
          goto yy5;
985
0
        } else {
986
0
          if (yych == '<') goto yy5;
987
0
          goto yy38;
988
0
        }
989
0
      } else {
990
0
        if (yych <= '\\') {
991
0
          if (yych == '[') goto yy30;
992
0
          goto yy5;
993
0
        } else {
994
0
          if (yych <= '^') goto yy38;
995
0
          if (yych <= 'z') goto yy5;
996
0
          if (yych <= '~') goto yy38;
997
0
          goto yy5;
998
0
        }
999
0
      }
1000
0
    }
1001
0
yy51:
1002
0
    YYDEBUG(51, *YYCURSOR);
1003
0
    yych = *++YYCURSOR;
1004
0
    if (yych == 'E') goto yy49;
1005
0
    if (yych == 'e') goto yy49;
1006
0
    goto yy6;
1007
0
yy52:
1008
0
    YYDEBUG(52, *YYCURSOR);
1009
0
    yych = *++YYCURSOR;
1010
0
    if (yych == 'L') goto yy56;
1011
0
    if (yych == 'l') goto yy56;
1012
0
    goto yy6;
1013
0
yy53:
1014
0
    YYDEBUG(53, *YYCURSOR);
1015
0
    ++YYCURSOR;
1016
0
    YYFILL(1);
1017
0
    yych = *YYCURSOR;
1018
0
    YYDEBUG(54, *YYCURSOR);
1019
0
    if (yych == '\t') goto yy53;
1020
0
    if (yych == ' ') goto yy53;
1021
0
    goto yy43;
1022
0
yy55:
1023
0
    YYDEBUG(55, *YYCURSOR);
1024
0
    yych = *++YYCURSOR;
1025
0
    if (yych == 'E') goto yy41;
1026
0
    if (yych == 'e') goto yy41;
1027
0
    goto yy6;
1028
0
yy56:
1029
0
    YYDEBUG(56, *YYCURSOR);
1030
0
    ++YYCURSOR;
1031
0
    YYFILL(1);
1032
0
    yych = *YYCURSOR;
1033
0
    YYDEBUG(57, *YYCURSOR);
1034
0
    if (yych <= '&') {
1035
0
      if (yych <= '\r') {
1036
0
        if (yych <= '\t') {
1037
0
          if (yych <= 0x00) goto yy58;
1038
0
          if (yych <= 0x08) goto yy5;
1039
0
          goto yy59;
1040
0
        } else {
1041
0
          if (yych <= '\n') goto yy58;
1042
0
          if (yych <= '\f') goto yy5;
1043
0
        }
1044
0
      } else {
1045
0
        if (yych <= '"') {
1046
0
          if (yych <= 0x1F) goto yy5;
1047
0
          if (yych <= ' ') goto yy56;
1048
0
        } else {
1049
0
          if (yych == '$') goto yy58;
1050
0
          if (yych <= '%') goto yy5;
1051
0
        }
1052
0
      }
1053
0
    } else {
1054
0
      if (yych <= '=') {
1055
0
        if (yych <= ':') {
1056
0
          if (yych <= '\'') goto yy5;
1057
0
          if (yych >= '*') goto yy5;
1058
0
        } else {
1059
0
          if (yych == '<') goto yy5;
1060
0
        }
1061
0
      } else {
1062
0
        if (yych <= '\\') {
1063
0
          if (yych == '[') goto yy30;
1064
0
          goto yy5;
1065
0
        } else {
1066
0
          if (yych <= '^') goto yy58;
1067
0
          if (yych <= 'z') goto yy5;
1068
0
          if (yych >= 0x7F) goto yy5;
1069
0
        }
1070
0
      }
1071
0
    }
1072
0
yy58:
1073
0
    YYDEBUG(58, *YYCURSOR);
1074
0
    yyleng = YYCURSOR - SCNG(yy_text);
1075
0
#line 499 "Zend/zend_ini_scanner.l"
1076
0
    {
1077
0
  RETURN_TOKEN(NULL_NULL, "", 0);
1078
0
}
1079
0
#line 1080 "Zend/zend_ini_scanner.c"
1080
0
yy59:
1081
0
    YYDEBUG(59, *YYCURSOR);
1082
0
    ++YYCURSOR;
1083
0
    YYFILL(1);
1084
0
    yych = *YYCURSOR;
1085
0
    YYDEBUG(60, *YYCURSOR);
1086
0
    if (yych == '\t') goto yy59;
1087
0
    if (yych == ' ') goto yy59;
1088
0
    goto yy58;
1089
0
  }
1090
/* *********************************** */
1091
745
yyc_ST_OFFSET:
1092
745
  {
1093
745
    static const unsigned char yybm[] = {
1094
745
      132, 132, 132, 132, 132, 132, 132, 132, 
1095
745
      132, 140, 128, 132, 132, 128, 132, 132, 
1096
745
      132, 132, 132, 132, 132, 132, 132, 132, 
1097
745
      132, 132, 132, 132, 132, 132, 132, 132, 
1098
745
      140, 132, 128, 132, 192, 132, 132,   0, 
1099
745
      132, 132, 132, 132, 132, 132, 132, 132, 
1100
745
      180, 180, 180, 180, 180, 180, 180, 180, 
1101
745
      180, 180, 132, 128, 132, 132, 132, 132, 
1102
745
      132, 164, 164, 164, 164, 164, 164, 164, 
1103
745
      164, 164, 164, 164, 164, 164, 164, 164, 
1104
745
      164, 164, 164, 164, 164, 164, 164, 164, 
1105
745
      164, 164, 164, 132, 192, 128, 132, 164, 
1106
745
      132, 164, 164, 164, 164, 164, 164, 164, 
1107
745
      164, 164, 164, 164, 164, 164, 164, 164, 
1108
745
      164, 164, 164, 164, 164, 164, 164, 164, 
1109
745
      164, 164, 164, 132, 132, 132, 132, 132, 
1110
745
      132, 132, 132, 132, 132, 132, 132, 132, 
1111
745
      132, 132, 132, 132, 132, 132, 132, 132, 
1112
745
      132, 132, 132, 132, 132, 132, 132, 132, 
1113
745
      132, 132, 132, 132, 132, 132, 132, 132, 
1114
745
      132, 132, 132, 132, 132, 132, 132, 132, 
1115
745
      132, 132, 132, 132, 132, 132, 132, 132, 
1116
745
      132, 132, 132, 132, 132, 132, 132, 132, 
1117
745
      132, 132, 132, 132, 132, 132, 132, 132, 
1118
745
      132, 132, 132, 132, 132, 132, 132, 132, 
1119
745
      132, 132, 132, 132, 132, 132, 132, 132, 
1120
745
      132, 132, 132, 132, 132, 132, 132, 132, 
1121
745
      132, 132, 132, 132, 132, 132, 132, 132, 
1122
745
      132, 132, 132, 132, 132, 132, 132, 132, 
1123
745
      132, 132, 132, 132, 132, 132, 132, 132, 
1124
745
      132, 132, 132, 132, 132, 132, 132, 132, 
1125
745
      132, 132, 132, 132, 132, 132, 132, 132, 
1126
745
    };
1127
745
    YYDEBUG(61, *YYCURSOR);
1128
745
    YYFILL(2);
1129
745
    yych = *YYCURSOR;
1130
745
    if (yybm[0+yych] & 8) {
1131
30
      goto yy66;
1132
30
    }
1133
715
    if (yych <= '/') {
1134
390
      if (yych <= '"') {
1135
40
        if (yych <= '\f') {
1136
3
          if (yych <= 0x08) goto yy63;
1137
3
          if (yych <= '\n') goto yy68;
1138
37
        } else {
1139
37
          if (yych <= '\r') goto yy68;
1140
37
          if (yych >= '"') goto yy70;
1141
37
        }
1142
350
      } else {
1143
350
        if (yych <= '&') {
1144
0
          if (yych == '$') goto yy72;
1145
350
        } else {
1146
350
          if (yych <= '\'') goto yy73;
1147
23
          if (yych <= ',') goto yy63;
1148
23
          if (yych <= '.') goto yy74;
1149
23
        }
1150
350
      }
1151
390
    } else {
1152
325
      if (yych <= '[') {
1153
273
        if (yych <= ';') {
1154
183
          if (yych <= '9') goto yy75;
1155
17
          if (yych >= ';') goto yy68;
1156
90
        } else {
1157
90
          if (yych <= '@') goto yy63;
1158
71
          if (yych <= 'Z') goto yy78;
1159
71
        }
1160
273
      } else {
1161
52
        if (yych <= '^') {
1162
1
          if (yych <= '\\') goto yy81;
1163
1
          if (yych <= ']') goto yy82;
1164
51
        } else {
1165
51
          if (yych == '`') goto yy63;
1166
51
          if (yych <= 'z') goto yy78;
1167
51
        }
1168
52
      }
1169
325
    }
1170
972
yy63:
1171
972
    YYDEBUG(63, *YYCURSOR);
1172
972
    yyaccept = 0;
1173
972
    YYMARKER = ++YYCURSOR;
1174
972
    YYFILL(1);
1175
961
    yych = *YYCURSOR;
1176
967
yy64:
1177
967
    YYDEBUG(64, *YYCURSOR);
1178
967
    if (yybm[0+yych] & 4) {
1179
782
      goto yy63;
1180
782
    }
1181
185
    if (yych <= '"') goto yy65;
1182
172
    if (yych <= '$') goto yy84;
1183
172
    if (yych <= ';') goto yy65;
1184
0
    if (yych <= '\\') goto yy81;
1185
215
yy65:
1186
215
    YYDEBUG(65, *YYCURSOR);
1187
215
    yyleng = YYCURSOR - SCNG(yy_text);
1188
215
#line 606 "Zend/zend_ini_scanner.l"
1189
215
    { /* Get rest as section/offset value */
1190
215
  RETURN_TOKEN(TC_STRING, yytext, yyleng);
1191
0
}
1192
0
#line 1193 "Zend/zend_ini_scanner.c"
1193
30
yy66:
1194
30
    YYDEBUG(66, *YYCURSOR);
1195
30
    yyaccept = 0;
1196
30
    YYMARKER = ++YYCURSOR;
1197
30
    YYFILL(1);
1198
30
    yych = *YYCURSOR;
1199
30
    YYDEBUG(67, *YYCURSOR);
1200
30
    if (yybm[0+yych] & 8) {
1201
0
      goto yy66;
1202
0
    }
1203
30
    if (yych <= '$') {
1204
0
      if (yych <= '\r') {
1205
0
        if (yych <= 0x08) goto yy63;
1206
0
        if (yych <= '\n') goto yy65;
1207
0
        if (yych <= '\f') goto yy63;
1208
0
        goto yy65;
1209
0
      } else {
1210
0
        if (yych == '"') goto yy70;
1211
0
        if (yych <= '#') goto yy63;
1212
0
        goto yy84;
1213
0
      }
1214
30
    } else {
1215
30
      if (yych <= ';') {
1216
30
        if (yych == '\'') goto yy65;
1217
0
        if (yych <= ':') goto yy63;
1218
0
        goto yy65;
1219
0
      } else {
1220
0
        if (yych <= '[') goto yy63;
1221
0
        if (yych <= '\\') goto yy81;
1222
0
        if (yych <= ']') goto yy82;
1223
0
        goto yy63;
1224
0
      }
1225
30
    }
1226
20
yy68:
1227
20
    YYDEBUG(68, *YYCURSOR);
1228
20
    ++YYCURSOR;
1229
20
yy69:
1230
20
    YYDEBUG(69, *YYCURSOR);
1231
20
    yyleng = YYCURSOR - SCNG(yy_text);
1232
20
#line 686 "Zend/zend_ini_scanner.l"
1233
20
    {
1234
20
  return 0;
1235
20
}
1236
0
#line 1237 "Zend/zend_ini_scanner.c"
1237
37
yy70:
1238
37
    YYDEBUG(70, *YYCURSOR);
1239
37
    ++YYCURSOR;
1240
37
    YYDEBUG(71, *YYCURSOR);
1241
37
    yyleng = YYCURSOR - SCNG(yy_text);
1242
37
#line 610 "Zend/zend_ini_scanner.l"
1243
37
    { /* Double quoted '"' string start */
1244
37
  yy_push_state(ST_DOUBLE_QUOTES);
1245
37
  return '"';
1246
20
}
1247
0
#line 1248 "Zend/zend_ini_scanner.c"
1248
0
yy72:
1249
0
    YYDEBUG(72, *YYCURSOR);
1250
0
    yych = *++YYCURSOR;
1251
0
    if (yych <= '\\') {
1252
0
      if (yych <= 0x00) goto yy69;
1253
0
      if (yych <= '[') goto yy63;
1254
0
      goto yy86;
1255
0
    } else {
1256
0
      if (yych == '{') goto yy88;
1257
0
      goto yy63;
1258
0
    }
1259
327
yy73:
1260
327
    YYDEBUG(73, *YYCURSOR);
1261
327
    yych = *++YYCURSOR;
1262
327
    if (yybm[0+yych] & 128) {
1263
327
      goto yy90;
1264
327
    }
1265
0
    goto yy69;
1266
23
yy74:
1267
23
    YYDEBUG(74, *YYCURSOR);
1268
23
    yyaccept = 0;
1269
23
    yych = *(YYMARKER = ++YYCURSOR);
1270
23
    if (yych <= '/') goto yy64;
1271
23
    if (yych <= '9') goto yy92;
1272
6
    goto yy64;
1273
373
yy75:
1274
373
    YYDEBUG(75, *YYCURSOR);
1275
373
    yyaccept = 1;
1276
373
    YYMARKER = ++YYCURSOR;
1277
373
    YYFILL(1);
1278
373
    yych = *YYCURSOR;
1279
373
    YYDEBUG(76, *YYCURSOR);
1280
373
    if (yybm[0+yych] & 16) {
1281
207
      goto yy75;
1282
207
    }
1283
166
    if (yych <= '&') {
1284
27
      if (yych <= '\r') {
1285
0
        if (yych == '\n') goto yy77;
1286
0
        if (yych <= '\f') goto yy63;
1287
27
      } else {
1288
27
        if (yych <= '"') {
1289
21
          if (yych <= '!') goto yy63;
1290
21
        } else {
1291
6
          if (yych == '$') goto yy84;
1292
6
          goto yy63;
1293
6
        }
1294
27
      }
1295
139
    } else {
1296
139
      if (yych <= ':') {
1297
41
        if (yych <= '\'') goto yy77;
1298
30
        if (yych == '.') goto yy92;
1299
0
        goto yy63;
1300
98
      } else {
1301
98
        if (yych <= '[') {
1302
60
          if (yych >= '<') goto yy63;
1303
60
        } else {
1304
38
          if (yych <= '\\') goto yy81;
1305
38
          if (yych >= '^') goto yy63;
1306
38
        }
1307
98
      }
1308
139
    }
1309
80
yy77:
1310
80
    YYDEBUG(77, *YYCURSOR);
1311
80
    yyleng = YYCURSOR - SCNG(yy_text);
1312
80
#line 580 "Zend/zend_ini_scanner.l"
1313
80
    { /* Get number option value as string */
1314
80
  RETURN_TOKEN(TC_NUMBER, yytext, yyleng);
1315
0
}
1316
0
#line 1317 "Zend/zend_ini_scanner.c"
1317
298
yy78:
1318
298
    YYDEBUG(78, *YYCURSOR);
1319
298
    yyaccept = 2;
1320
298
    YYMARKER = ++YYCURSOR;
1321
298
    YYFILL(1);
1322
298
    yych = *YYCURSOR;
1323
298
    YYDEBUG(79, *YYCURSOR);
1324
298
    if (yybm[0+yych] & 32) {
1325
225
      goto yy78;
1326
225
    }
1327
73
    if (yych <= '$') {
1328
22
      if (yych <= '\r') {
1329
3
        if (yych == '\n') goto yy80;
1330
0
        if (yych <= '\f') goto yy63;
1331
19
      } else {
1332
19
        if (yych == '"') goto yy80;
1333
19
        if (yych <= '#') goto yy63;
1334
0
        goto yy84;
1335
19
      }
1336
51
    } else {
1337
51
      if (yych <= ';') {
1338
51
        if (yych == '\'') goto yy80;
1339
0
        if (yych <= ':') goto yy63;
1340
0
      } else {
1341
0
        if (yych <= '[') goto yy63;
1342
0
        if (yych <= '\\') goto yy81;
1343
0
        if (yych >= '^') goto yy63;
1344
0
      }
1345
51
    }
1346
54
yy80:
1347
54
    YYDEBUG(80, *YYCURSOR);
1348
54
    yyleng = YYCURSOR - SCNG(yy_text);
1349
54
#line 576 "Zend/zend_ini_scanner.l"
1350
54
    { /* Get constant option value */
1351
54
  RETURN_TOKEN(TC_CONSTANT, yytext, yyleng);
1352
0
}
1353
0
#line 1354 "Zend/zend_ini_scanner.c"
1354
0
yy81:
1355
0
    YYDEBUG(81, *YYCURSOR);
1356
0
    ++YYCURSOR;
1357
0
    YYFILL(1);
1358
0
    yych = *YYCURSOR;
1359
0
    goto yy63;
1360
1
yy82:
1361
1
    YYDEBUG(82, *YYCURSOR);
1362
1
    ++YYCURSOR;
1363
1
    YYDEBUG(83, *YYCURSOR);
1364
1
    yyleng = YYCURSOR - SCNG(yy_text);
1365
1
#line 417 "Zend/zend_ini_scanner.l"
1366
1
    { /* End of section or an option offset */
1367
1
  BEGIN(INITIAL);
1368
1
  return ']';
1369
0
}
1370
0
#line 1371 "Zend/zend_ini_scanner.c"
1371
0
yy84:
1372
0
    YYDEBUG(84, *YYCURSOR);
1373
0
    ++YYCURSOR;
1374
0
    YYFILL(1);
1375
0
    yych = *YYCURSOR;
1376
0
    if (yych <= '\\') {
1377
0
      if (yych <= 0x00) goto yy85;
1378
0
      if (yych <= '[') goto yy63;
1379
0
      goto yy86;
1380
0
    } else {
1381
0
      if (yych != '{') goto yy63;
1382
0
    }
1383
0
yy85:
1384
0
    YYDEBUG(85, *YYCURSOR);
1385
0
    YYCURSOR = YYMARKER;
1386
0
    if (yyaccept <= 1) {
1387
0
      if (yyaccept == 0) {
1388
0
        goto yy65;
1389
0
      } else {
1390
0
        goto yy77;
1391
0
      }
1392
0
    } else {
1393
0
      goto yy80;
1394
0
    }
1395
0
yy86:
1396
0
    YYDEBUG(86, *YYCURSOR);
1397
0
    ++YYCURSOR;
1398
0
    YYFILL(1);
1399
0
    yych = *YYCURSOR;
1400
0
    YYDEBUG(87, *YYCURSOR);
1401
0
    if (yybm[0+yych] & 64) {
1402
0
      goto yy86;
1403
0
    }
1404
0
    goto yy63;
1405
0
yy88:
1406
0
    YYDEBUG(88, *YYCURSOR);
1407
0
    ++YYCURSOR;
1408
0
    YYDEBUG(89, *YYCURSOR);
1409
0
    yyleng = YYCURSOR - SCNG(yy_text);
1410
0
#line 422 "Zend/zend_ini_scanner.l"
1411
0
    { /* Variable start */
1412
0
  yy_push_state(ST_VARNAME);
1413
0
  return TC_DOLLAR_CURLY;
1414
0
}
1415
0
#line 1416 "Zend/zend_ini_scanner.c"
1416
10.0k
yy90:
1417
10.0k
    YYDEBUG(90, *YYCURSOR);
1418
10.0k
    ++YYCURSOR;
1419
10.0k
    YYFILL(1);
1420
10.0k
    yych = *YYCURSOR;
1421
10.0k
    YYDEBUG(91, *YYCURSOR);
1422
10.0k
    if (yybm[0+yych] & 128) {
1423
9.71k
      goto yy90;
1424
9.71k
    }
1425
318
    goto yy94;
1426
318
yy92:
1427
247
    YYDEBUG(92, *YYCURSOR);
1428
247
    yyaccept = 1;
1429
247
    YYMARKER = ++YYCURSOR;
1430
247
    YYFILL(1);
1431
247
    yych = *YYCURSOR;
1432
247
    YYDEBUG(93, *YYCURSOR);
1433
247
    if (yych <= '&') {
1434
0
      if (yych <= '\r') {
1435
0
        if (yych == '\n') goto yy77;
1436
0
        if (yych <= '\f') goto yy63;
1437
0
        goto yy77;
1438
0
      } else {
1439
0
        if (yych <= '"') {
1440
0
          if (yych <= '!') goto yy63;
1441
0
          goto yy77;
1442
0
        } else {
1443
0
          if (yych == '$') goto yy84;
1444
0
          goto yy63;
1445
0
        }
1446
0
      }
1447
247
    } else {
1448
247
      if (yych <= ':') {
1449
230
        if (yych <= '\'') goto yy77;
1450
200
        if (yych <= '/') goto yy63;
1451
200
        if (yych <= '9') goto yy92;
1452
0
        goto yy63;
1453
200
      } else {
1454
17
        if (yych <= '[') {
1455
17
          if (yych <= ';') goto yy77;
1456
0
          goto yy63;
1457
17
        } else {
1458
0
          if (yych <= '\\') goto yy81;
1459
0
          if (yych <= ']') goto yy77;
1460
0
          goto yy63;
1461
0
        }
1462
17
      }
1463
247
    }
1464
318
yy94:
1465
318
    YYDEBUG(94, *YYCURSOR);
1466
318
    ++YYCURSOR;
1467
318
    YYDEBUG(95, *YYCURSOR);
1468
318
    yyleng = YYCURSOR - SCNG(yy_text);
1469
318
#line 389 "Zend/zend_ini_scanner.l"
1470
318
    { /* Raw string */
1471
  /* Eat leading and trailing single quotes */
1472
318
  if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') {
1473
318
    SCNG(yy_text)++;
1474
318
    yyleng = yyleng - 2;
1475
318
  }
1476
318
  RETURN_TOKEN(TC_RAW, yytext, yyleng);
1477
0
}
1478
0
#line 1479 "Zend/zend_ini_scanner.c"
1479
0
  }
1480
/* *********************************** */
1481
358
yyc_ST_SECTION_VALUE:
1482
358
  {
1483
358
    static const unsigned char yybm[] = {
1484
358
      132, 132, 132, 132, 132, 132, 132, 132, 
1485
358
      132, 140, 128, 132, 132, 128, 132, 132, 
1486
358
      132, 132, 132, 132, 132, 132, 132, 132, 
1487
358
      132, 132, 132, 132, 132, 132, 132, 132, 
1488
358
      140, 132, 128, 132, 192, 132, 132,   0, 
1489
358
      132, 132, 132, 132, 132, 132, 132, 132, 
1490
358
      180, 180, 180, 180, 180, 180, 180, 180, 
1491
358
      180, 180, 132, 128, 132, 132, 132, 132, 
1492
358
      132, 164, 164, 164, 164, 164, 164, 164, 
1493
358
      164, 164, 164, 164, 164, 164, 164, 164, 
1494
358
      164, 164, 164, 164, 164, 164, 164, 164, 
1495
358
      164, 164, 164, 132, 192, 128, 132, 164, 
1496
358
      132, 164, 164, 164, 164, 164, 164, 164, 
1497
358
      164, 164, 164, 164, 164, 164, 164, 164, 
1498
358
      164, 164, 164, 164, 164, 164, 164, 164, 
1499
358
      164, 164, 164, 132, 132, 132, 132, 132, 
1500
358
      132, 132, 132, 132, 132, 132, 132, 132, 
1501
358
      132, 132, 132, 132, 132, 132, 132, 132, 
1502
358
      132, 132, 132, 132, 132, 132, 132, 132, 
1503
358
      132, 132, 132, 132, 132, 132, 132, 132, 
1504
358
      132, 132, 132, 132, 132, 132, 132, 132, 
1505
358
      132, 132, 132, 132, 132, 132, 132, 132, 
1506
358
      132, 132, 132, 132, 132, 132, 132, 132, 
1507
358
      132, 132, 132, 132, 132, 132, 132, 132, 
1508
358
      132, 132, 132, 132, 132, 132, 132, 132, 
1509
358
      132, 132, 132, 132, 132, 132, 132, 132, 
1510
358
      132, 132, 132, 132, 132, 132, 132, 132, 
1511
358
      132, 132, 132, 132, 132, 132, 132, 132, 
1512
358
      132, 132, 132, 132, 132, 132, 132, 132, 
1513
358
      132, 132, 132, 132, 132, 132, 132, 132, 
1514
358
      132, 132, 132, 132, 132, 132, 132, 132, 
1515
358
      132, 132, 132, 132, 132, 132, 132, 132, 
1516
358
    };
1517
358
    YYDEBUG(96, *YYCURSOR);
1518
358
    YYFILL(2);
1519
358
    yych = *YYCURSOR;
1520
358
    if (yybm[0+yych] & 8) {
1521
61
      goto yy101;
1522
61
    }
1523
297
    if (yych <= '/') {
1524
117
      if (yych <= '"') {
1525
60
        if (yych <= '\f') {
1526
2
          if (yych <= 0x08) goto yy98;
1527
2
          if (yych <= '\n') goto yy103;
1528
58
        } else {
1529
58
          if (yych <= '\r') goto yy103;
1530
57
          if (yych >= '"') goto yy105;
1531
57
        }
1532
60
      } else {
1533
57
        if (yych <= '&') {
1534
15
          if (yych == '$') goto yy107;
1535
42
        } else {
1536
42
          if (yych <= '\'') goto yy108;
1537
5
          if (yych <= ',') goto yy98;
1538
4
          if (yych <= '.') goto yy109;
1539
4
        }
1540
57
      }
1541
180
    } else {
1542
180
      if (yych <= '[') {
1543
64
        if (yych <= ';') {
1544
58
          if (yych <= '9') goto yy110;
1545
4
          if (yych >= ';') goto yy103;
1546
6
        } else {
1547
6
          if (yych <= '@') goto yy98;
1548
6
          if (yych <= 'Z') goto yy113;
1549
6
        }
1550
116
      } else {
1551
116
        if (yych <= '^') {
1552
71
          if (yych <= '\\') goto yy116;
1553
71
          if (yych <= ']') goto yy117;
1554
71
        } else {
1555
45
          if (yych == '`') goto yy98;
1556
45
          if (yych <= 'z') goto yy113;
1557
45
        }
1558
116
      }
1559
180
    }
1560
7.51k
yy98:
1561
7.51k
    YYDEBUG(98, *YYCURSOR);
1562
7.51k
    yyaccept = 0;
1563
7.51k
    YYMARKER = ++YYCURSOR;
1564
7.51k
    YYFILL(1);
1565
7.44k
    yych = *YYCURSOR;
1566
7.44k
yy99:
1567
7.44k
    YYDEBUG(99, *YYCURSOR);
1568
7.44k
    if (yybm[0+yych] & 4) {
1569
7.38k
      goto yy98;
1570
7.38k
    }
1571
58
    if (yych <= '"') goto yy100;
1572
37
    if (yych <= '$') goto yy120;
1573
34
    if (yych <= ';') goto yy100;
1574
3
    if (yych <= '\\') goto yy116;
1575
60
yy100:
1576
60
    YYDEBUG(100, *YYCURSOR);
1577
60
    yyleng = YYCURSOR - SCNG(yy_text);
1578
60
#line 606 "Zend/zend_ini_scanner.l"
1579
60
    { /* Get rest as section/offset value */
1580
60
  RETURN_TOKEN(TC_STRING, yytext, yyleng);
1581
0
}
1582
0
#line 1583 "Zend/zend_ini_scanner.c"
1583
238
yy101:
1584
238
    YYDEBUG(101, *YYCURSOR);
1585
238
    yyaccept = 0;
1586
238
    YYMARKER = ++YYCURSOR;
1587
238
    YYFILL(1);
1588
238
    yych = *YYCURSOR;
1589
238
    YYDEBUG(102, *YYCURSOR);
1590
238
    if (yybm[0+yych] & 8) {
1591
177
      goto yy101;
1592
177
    }
1593
61
    if (yych <= '$') {
1594
59
      if (yych <= '\r') {
1595
59
        if (yych <= 0x08) goto yy98;
1596
29
        if (yych <= '\n') goto yy100;
1597
29
        if (yych <= '\f') goto yy98;
1598
0
        goto yy100;
1599
29
      } else {
1600
0
        if (yych == '"') goto yy105;
1601
0
        if (yych <= '#') goto yy98;
1602
0
        goto yy120;
1603
0
      }
1604
59
    } else {
1605
2
      if (yych <= ';') {
1606
1
        if (yych == '\'') goto yy100;
1607
0
        if (yych <= ':') goto yy98;
1608
0
        goto yy100;
1609
1
      } else {
1610
1
        if (yych <= '[') goto yy98;
1611
1
        if (yych <= '\\') goto yy116;
1612
1
        if (yych <= ']') goto yy100;
1613
0
        goto yy98;
1614
1
      }
1615
2
    }
1616
4
yy103:
1617
4
    YYDEBUG(103, *YYCURSOR);
1618
4
    ++YYCURSOR;
1619
7
yy104:
1620
7
    YYDEBUG(104, *YYCURSOR);
1621
7
    yyleng = YYCURSOR - SCNG(yy_text);
1622
7
#line 686 "Zend/zend_ini_scanner.l"
1623
7
    {
1624
7
  return 0;
1625
4
}
1626
0
#line 1627 "Zend/zend_ini_scanner.c"
1627
57
yy105:
1628
57
    YYDEBUG(105, *YYCURSOR);
1629
57
    ++YYCURSOR;
1630
57
    YYDEBUG(106, *YYCURSOR);
1631
57
    yyleng = YYCURSOR - SCNG(yy_text);
1632
57
#line 610 "Zend/zend_ini_scanner.l"
1633
57
    { /* Double quoted '"' string start */
1634
57
  yy_push_state(ST_DOUBLE_QUOTES);
1635
57
  return '"';
1636
4
}
1637
0
#line 1638 "Zend/zend_ini_scanner.c"
1638
4
yy107:
1639
4
    YYDEBUG(107, *YYCURSOR);
1640
4
    yych = *++YYCURSOR;
1641
4
    if (yych <= '\\') {
1642
3
      if (yych <= 0x00) goto yy104;
1643
0
      if (yych <= '[') goto yy98;
1644
0
      goto yy122;
1645
1
    } else {
1646
1
      if (yych == '{') goto yy124;
1647
0
      goto yy98;
1648
1
    }
1649
37
yy108:
1650
37
    YYDEBUG(108, *YYCURSOR);
1651
37
    yych = *++YYCURSOR;
1652
37
    if (yybm[0+yych] & 128) {
1653
37
      goto yy126;
1654
37
    }
1655
0
    goto yy104;
1656
4
yy109:
1657
4
    YYDEBUG(109, *YYCURSOR);
1658
4
    yyaccept = 0;
1659
4
    yych = *(YYMARKER = ++YYCURSOR);
1660
4
    if (yych <= '/') goto yy99;
1661
4
    if (yych <= '9') goto yy128;
1662
0
    goto yy99;
1663
100
yy110:
1664
100
    YYDEBUG(110, *YYCURSOR);
1665
100
    yyaccept = 1;
1666
100
    YYMARKER = ++YYCURSOR;
1667
100
    YYFILL(1);
1668
100
    yych = *YYCURSOR;
1669
100
    YYDEBUG(111, *YYCURSOR);
1670
100
    if (yybm[0+yych] & 16) {
1671
46
      goto yy110;
1672
46
    }
1673
54
    if (yych <= '&') {
1674
4
      if (yych <= '\r') {
1675
0
        if (yych == '\n') goto yy112;
1676
0
        if (yych <= '\f') goto yy98;
1677
4
      } else {
1678
4
        if (yych <= '"') {
1679
4
          if (yych <= '!') goto yy98;
1680
4
        } else {
1681
0
          if (yych == '$') goto yy120;
1682
0
          goto yy98;
1683
0
        }
1684
4
      }
1685
50
    } else {
1686
50
      if (yych <= ':') {
1687
6
        if (yych <= '\'') goto yy112;
1688
2
        if (yych == '.') goto yy128;
1689
2
        goto yy98;
1690
44
      } else {
1691
44
        if (yych <= '[') {
1692
0
          if (yych >= '<') goto yy98;
1693
44
        } else {
1694
44
          if (yych <= '\\') goto yy116;
1695
44
          if (yych >= '^') goto yy98;
1696
44
        }
1697
44
      }
1698
50
    }
1699
50
yy112:
1700
50
    YYDEBUG(112, *YYCURSOR);
1701
50
    yyleng = YYCURSOR - SCNG(yy_text);
1702
50
#line 580 "Zend/zend_ini_scanner.l"
1703
50
    { /* Get number option value as string */
1704
50
  RETURN_TOKEN(TC_NUMBER, yytext, yyleng);
1705
0
}
1706
0
#line 1707 "Zend/zend_ini_scanner.c"
1707
38
yy113:
1708
38
    YYDEBUG(113, *YYCURSOR);
1709
38
    yyaccept = 2;
1710
38
    YYMARKER = ++YYCURSOR;
1711
38
    YYFILL(1);
1712
38
    yych = *YYCURSOR;
1713
38
    YYDEBUG(114, *YYCURSOR);
1714
38
    if (yybm[0+yych] & 32) {
1715
22
      goto yy113;
1716
22
    }
1717
16
    if (yych <= '$') {
1718
14
      if (yych <= '\r') {
1719
13
        if (yych == '\n') goto yy115;
1720
11
        if (yych <= '\f') goto yy98;
1721
11
      } else {
1722
1
        if (yych == '"') goto yy115;
1723
0
        if (yych <= '#') goto yy98;
1724
0
        goto yy120;
1725
0
      }
1726
14
    } else {
1727
2
      if (yych <= ';') {
1728
1
        if (yych == '\'') goto yy115;
1729
0
        if (yych <= ':') goto yy98;
1730
1
      } else {
1731
1
        if (yych <= '[') goto yy98;
1732
1
        if (yych <= '\\') goto yy116;
1733
1
        if (yych >= '^') goto yy98;
1734
1
      }
1735
2
    }
1736
4
yy115:
1737
4
    YYDEBUG(115, *YYCURSOR);
1738
4
    yyleng = YYCURSOR - SCNG(yy_text);
1739
4
#line 576 "Zend/zend_ini_scanner.l"
1740
4
    { /* Get constant option value */
1741
4
  RETURN_TOKEN(TC_CONSTANT, yytext, yyleng);
1742
0
}
1743
0
#line 1744 "Zend/zend_ini_scanner.c"
1744
0
yy116:
1745
0
    YYDEBUG(116, *YYCURSOR);
1746
0
    ++YYCURSOR;
1747
0
    YYFILL(1);
1748
0
    yych = *YYCURSOR;
1749
0
    goto yy98;
1750
71
yy117:
1751
71
    YYDEBUG(117, *YYCURSOR);
1752
71
    ++YYCURSOR;
1753
71
    YYFILL(2);
1754
71
    yych = *YYCURSOR;
1755
71
    YYDEBUG(118, *YYCURSOR);
1756
71
    if (yych <= '\f') {
1757
59
      if (yych <= 0x08) goto yy119;
1758
59
      if (yych <= '\t') goto yy117;
1759
59
      if (yych <= '\n') goto yy130;
1760
59
    } else {
1761
12
      if (yych <= '\r') goto yy131;
1762
12
      if (yych == ' ') goto yy117;
1763
12
    }
1764
71
yy119:
1765
71
    YYDEBUG(119, *YYCURSOR);
1766
71
    yyleng = YYCURSOR - SCNG(yy_text);
1767
71
#line 398 "Zend/zend_ini_scanner.l"
1768
71
    { /* End of section */
1769
71
  BEGIN(INITIAL);
1770
71
  SCNG(lineno)++;
1771
71
  return ']';
1772
71
}
1773
0
#line 1774 "Zend/zend_ini_scanner.c"
1774
3
yy120:
1775
3
    YYDEBUG(120, *YYCURSOR);
1776
3
    ++YYCURSOR;
1777
3
    YYFILL(1);
1778
3
    yych = *YYCURSOR;
1779
3
    if (yych <= '\\') {
1780
3
      if (yych <= 0x00) goto yy121;
1781
0
      if (yych <= '[') goto yy98;
1782
0
      goto yy122;
1783
0
    } else {
1784
0
      if (yych != '{') goto yy98;
1785
0
    }
1786
3
yy121:
1787
3
    YYDEBUG(121, *YYCURSOR);
1788
3
    YYCURSOR = YYMARKER;
1789
3
    if (yyaccept <= 1) {
1790
3
      if (yyaccept == 0) {
1791
3
        goto yy100;
1792
3
      } else {
1793
0
        goto yy112;
1794
0
      }
1795
3
    } else {
1796
0
      goto yy115;
1797
0
    }
1798
0
yy122:
1799
0
    YYDEBUG(122, *YYCURSOR);
1800
0
    ++YYCURSOR;
1801
0
    YYFILL(1);
1802
0
    yych = *YYCURSOR;
1803
0
    YYDEBUG(123, *YYCURSOR);
1804
0
    if (yybm[0+yych] & 64) {
1805
0
      goto yy122;
1806
0
    }
1807
0
    goto yy98;
1808
1
yy124:
1809
1
    YYDEBUG(124, *YYCURSOR);
1810
1
    ++YYCURSOR;
1811
1
    YYDEBUG(125, *YYCURSOR);
1812
1
    yyleng = YYCURSOR - SCNG(yy_text);
1813
1
#line 422 "Zend/zend_ini_scanner.l"
1814
1
    { /* Variable start */
1815
1
  yy_push_state(ST_VARNAME);
1816
1
  return TC_DOLLAR_CURLY;
1817
0
}
1818
0
#line 1819 "Zend/zend_ini_scanner.c"
1819
193
yy126:
1820
193
    YYDEBUG(126, *YYCURSOR);
1821
193
    ++YYCURSOR;
1822
193
    YYFILL(1);
1823
188
    yych = *YYCURSOR;
1824
188
    YYDEBUG(127, *YYCURSOR);
1825
188
    if (yybm[0+yych] & 128) {
1826
156
      goto yy126;
1827
156
    }
1828
32
    goto yy132;
1829
32
yy128:
1830
26
    YYDEBUG(128, *YYCURSOR);
1831
26
    yyaccept = 1;
1832
26
    YYMARKER = ++YYCURSOR;
1833
26
    YYFILL(1);
1834
26
    yych = *YYCURSOR;
1835
26
    YYDEBUG(129, *YYCURSOR);
1836
26
    if (yych <= '&') {
1837
3
      if (yych <= '\r') {
1838
0
        if (yych == '\n') goto yy112;
1839
0
        if (yych <= '\f') goto yy98;
1840
0
        goto yy112;
1841
3
      } else {
1842
3
        if (yych <= '"') {
1843
3
          if (yych <= '!') goto yy98;
1844
0
          goto yy112;
1845
3
        } else {
1846
0
          if (yych == '$') goto yy120;
1847
0
          goto yy98;
1848
0
        }
1849
3
      }
1850
23
    } else {
1851
23
      if (yych <= ':') {
1852
22
        if (yych <= '\'') goto yy112;
1853
22
        if (yych <= '/') goto yy98;
1854
22
        if (yych <= '9') goto yy128;
1855
0
        goto yy98;
1856
22
      } else {
1857
1
        if (yych <= '[') {
1858
1
          if (yych <= ';') goto yy112;
1859
0
          goto yy98;
1860
1
        } else {
1861
0
          if (yych <= '\\') goto yy116;
1862
0
          if (yych <= ']') goto yy112;
1863
0
          goto yy98;
1864
0
        }
1865
1
      }
1866
23
    }
1867
59
yy130:
1868
59
    YYDEBUG(130, *YYCURSOR);
1869
59
    ++YYCURSOR;
1870
59
    goto yy119;
1871
0
yy131:
1872
0
    YYDEBUG(131, *YYCURSOR);
1873
0
    yych = *++YYCURSOR;
1874
0
    if (yych == '\n') goto yy130;
1875
0
    goto yy119;
1876
32
yy132:
1877
32
    YYDEBUG(132, *YYCURSOR);
1878
32
    ++YYCURSOR;
1879
32
    YYDEBUG(133, *YYCURSOR);
1880
32
    yyleng = YYCURSOR - SCNG(yy_text);
1881
32
#line 389 "Zend/zend_ini_scanner.l"
1882
32
    { /* Raw string */
1883
  /* Eat leading and trailing single quotes */
1884
32
  if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') {
1885
32
    SCNG(yy_text)++;
1886
32
    yyleng = yyleng - 2;
1887
32
  }
1888
32
  RETURN_TOKEN(TC_RAW, yytext, yyleng);
1889
0
}
1890
0
#line 1891 "Zend/zend_ini_scanner.c"
1891
0
  }
1892
/* *********************************** */
1893
1.85k
yyc_ST_VALUE:
1894
1.85k
  {
1895
1.85k
    static const unsigned char yybm[] = {
1896
1.85k
       80,  82,  82,  82,  82,  82,  82,  82, 
1897
1.85k
       82,  84,  64,  82,  82,  64,  82,  82, 
1898
1.85k
       82,  82,  82,  82,  82,  82,  82,  82, 
1899
1.85k
       82,  82,  82,  82,  82,  82,  82,  82, 
1900
1.85k
       84,  80,  80,  82, 208,  82,  80,  16, 
1901
1.85k
       80,  80,  82,  82,  82,  82,  82,  82, 
1902
1.85k
      122, 122, 122, 122, 122, 122, 122, 122, 
1903
1.85k
      122, 122,  82,  80,  82,  80,  82,  82, 
1904
1.85k
       82, 114, 114, 114, 114, 114, 114, 114, 
1905
1.85k
      114, 114, 114, 114, 114, 114, 114, 114, 
1906
1.85k
      114, 114, 114, 114, 114, 114, 114, 114, 
1907
1.85k
      114, 114, 114,  82,  82,  82,  80, 114, 
1908
1.85k
       82, 114, 114, 114, 114, 114, 114, 114, 
1909
1.85k
      114, 114, 114, 114, 114, 114, 114, 114, 
1910
1.85k
      114, 114, 114, 114, 114, 114, 114, 114, 
1911
1.85k
      114, 114, 114,  82,  80,  82,  80,  82, 
1912
1.85k
       82,  82,  82,  82,  82,  82,  82,  82, 
1913
1.85k
       82,  82,  82,  82,  82,  82,  82,  82, 
1914
1.85k
       82,  82,  82,  82,  82,  82,  82,  82, 
1915
1.85k
       82,  82,  82,  82,  82,  82,  82,  82, 
1916
1.85k
       82,  82,  82,  82,  82,  82,  82,  82, 
1917
1.85k
       82,  82,  82,  82,  82,  82,  82,  82, 
1918
1.85k
       82,  82,  82,  82,  82,  82,  82,  82, 
1919
1.85k
       82,  82,  82,  82,  82,  82,  82,  82, 
1920
1.85k
       82,  82,  82,  82,  82,  82,  82,  82, 
1921
1.85k
       82,  82,  82,  82,  82,  82,  82,  82, 
1922
1.85k
       82,  82,  82,  82,  82,  82,  82,  82, 
1923
1.85k
       82,  82,  82,  82,  82,  82,  82,  82, 
1924
1.85k
       82,  82,  82,  82,  82,  82,  82,  82, 
1925
1.85k
       82,  82,  82,  82,  82,  82,  82,  82, 
1926
1.85k
       82,  82,  82,  82,  82,  82,  82,  82, 
1927
1.85k
       82,  82,  82,  82,  82,  82,  82,  82, 
1928
1.85k
    };
1929
1.85k
    YYDEBUG(134, *YYCURSOR);
1930
1.85k
    YYFILL(6);
1931
1.85k
    yych = *YYCURSOR;
1932
1.85k
    if (yybm[0+yych] & 4) {
1933
219
      goto yy141;
1934
219
    }
1935
1.63k
    switch (yych) {
1936
0
    case 0x00:  goto yy136;
1937
0
    case '\t':
1938
269
    case '\n':  goto yy144;
1939
42
    case '\r':  goto yy146;
1940
0
    case ' ':
1941
0
    case '!':
1942
1
    case '&':
1943
29
    case '(':
1944
64
    case ')':
1945
76
    case '^':
1946
90
    case '|':
1947
94
    case '~': goto yy147;
1948
195
    case '"': goto yy150;
1949
1
    case '$': goto yy152;
1950
113
    case '\'':  goto yy153;
1951
6
    case '-':
1952
7
    case '.': goto yy154;
1953
17
    case '0':
1954
51
    case '1':
1955
59
    case '2':
1956
59
    case '3':
1957
60
    case '4':
1958
62
    case '5':
1959
68
    case '6':
1960
73
    case '7':
1961
76
    case '8':
1962
82
    case '9': goto yy155;
1963
33
    case ';': goto yy158;
1964
19
    case '=': goto yy160;
1965
0
    case 'A':
1966
0
    case 'B':
1967
0
    case 'C':
1968
0
    case 'D':
1969
0
    case 'E':
1970
0
    case 'G':
1971
0
    case 'H':
1972
14
    case 'I':
1973
14
    case 'J':
1974
14
    case 'K':
1975
14
    case 'L':
1976
35
    case 'M':
1977
35
    case 'P':
1978
38
    case 'Q':
1979
47
    case 'R':
1980
47
    case 'S':
1981
47
    case 'U':
1982
47
    case 'V':
1983
50
    case 'W':
1984
50
    case 'X':
1985
50
    case 'Z':
1986
50
    case '_':
1987
50
    case 'a':
1988
73
    case 'b':
1989
81
    case 'c':
1990
85
    case 'd':
1991
86
    case 'e':
1992
88
    case 'g':
1993
88
    case 'h':
1994
90
    case 'i':
1995
95
    case 'j':
1996
95
    case 'k':
1997
96
    case 'l':
1998
96
    case 'm':
1999
121
    case 'p':
2000
123
    case 'q':
2001
146
    case 'r':
2002
157
    case 's':
2003
157
    case 'u':
2004
163
    case 'v':
2005
163
    case 'w':
2006
163
    case 'x':
2007
163
    case 'z': goto yy162;
2008
2
    case 'F':
2009
41
    case 'f': goto yy165;
2010
25
    case 'N':
2011
198
    case 'n': goto yy166;
2012
1
    case 'O':
2013
29
    case 'o': goto yy167;
2014
20
    case 'T':
2015
75
    case 't': goto yy168;
2016
0
    case 'Y':
2017
11
    case 'y': goto yy169;
2018
266
    default:  goto yy138;
2019
1.63k
    }
2020
0
yy136:
2021
0
    YYDEBUG(136, *YYCURSOR);
2022
0
    ++YYCURSOR;
2023
1
yy137:
2024
1
    YYDEBUG(137, *YYCURSOR);
2025
1
    yyleng = YYCURSOR - SCNG(yy_text);
2026
1
#line 681 "Zend/zend_ini_scanner.l"
2027
1
    { /* End of option value (if EOF is reached before EOL */
2028
1
  BEGIN(INITIAL);
2029
1
  return END_OF_LINE;
2030
0
}
2031
0
#line 2032 "Zend/zend_ini_scanner.c"
2032
8.86k
yy138:
2033
8.86k
    YYDEBUG(138, *YYCURSOR);
2034
8.86k
    yyaccept = 0;
2035
8.86k
    YYMARKER = ++YYCURSOR;
2036
8.86k
    YYFILL(1);
2037
8.86k
    yych = *YYCURSOR;
2038
8.98k
yy139:
2039
8.98k
    YYDEBUG(139, *YYCURSOR);
2040
8.98k
    if (yybm[0+yych] & 2) {
2041
8.39k
      goto yy138;
2042
8.39k
    }
2043
590
    if (yych <= '"') goto yy140;
2044
118
    if (yych <= '$') goto yy170;
2045
565
yy140:
2046
565
    YYDEBUG(140, *YYCURSOR);
2047
565
    yyleng = YYCURSOR - SCNG(yy_text);
2048
565
#line 598 "Zend/zend_ini_scanner.l"
2049
565
    { /* Get everything else as option/offset value */
2050
565
  RETURN_TOKEN(TC_STRING, yytext, yyleng);
2051
0
}
2052
0
#line 2053 "Zend/zend_ini_scanner.c"
2053
255
yy141:
2054
255
    YYDEBUG(141, *YYCURSOR);
2055
255
    ++YYCURSOR;
2056
255
    YYFILL(2);
2057
255
    yych = *YYCURSOR;
2058
255
    YYDEBUG(142, *YYCURSOR);
2059
255
    if (yybm[0+yych] & 4) {
2060
36
      goto yy141;
2061
36
    }
2062
219
    if (yych <= '\r') {
2063
34
      if (yych <= 0x08) goto yy143;
2064
34
      if (yych <= '\n') goto yy144;
2065
34
      if (yych >= '\r') goto yy146;
2066
185
    } else {
2067
185
      if (yych <= '"') {
2068
2
        if (yych >= '"') goto yy150;
2069
183
      } else {
2070
183
        if (yych == ';') goto yy158;
2071
183
      }
2072
185
    }
2073
183
yy143:
2074
183
    YYDEBUG(143, *YYCURSOR);
2075
183
    yyleng = YYCURSOR - SCNG(yy_text);
2076
183
#line 661 "Zend/zend_ini_scanner.l"
2077
183
    {
2078
183
  RETURN_TOKEN(TC_WHITESPACE, yytext, yyleng);
2079
0
}
2080
0
#line 2081 "Zend/zend_ini_scanner.c"
2081
269
yy144:
2082
269
    YYDEBUG(144, *YYCURSOR);
2083
269
    ++YYCURSOR;
2084
345
yy145:
2085
345
    YYDEBUG(145, *YYCURSOR);
2086
345
    yyleng = YYCURSOR - SCNG(yy_text);
2087
345
#line 570 "Zend/zend_ini_scanner.l"
2088
345
    { /* End of option value */
2089
345
  BEGIN(INITIAL);
2090
345
  SCNG(lineno)++;
2091
345
  return END_OF_LINE;
2092
269
}
2093
0
#line 2094 "Zend/zend_ini_scanner.c"
2094
76
yy146:
2095
76
    YYDEBUG(146, *YYCURSOR);
2096
76
    yych = *++YYCURSOR;
2097
76
    if (yych == '\n') goto yy144;
2098
76
    goto yy145;
2099
101
yy147:
2100
101
    YYDEBUG(147, *YYCURSOR);
2101
101
    ++YYCURSOR;
2102
101
    YYFILL(1);
2103
101
    yych = *YYCURSOR;
2104
101
    YYDEBUG(148, *YYCURSOR);
2105
101
    if (yych == '\t') goto yy147;
2106
101
    if (yych == ' ') goto yy147;
2107
94
    YYDEBUG(149, *YYCURSOR);
2108
94
    yyleng = YYCURSOR - SCNG(yy_text);
2109
94
#line 588 "Zend/zend_ini_scanner.l"
2110
94
    { /* Boolean operators */
2111
94
  return yytext[0];
2112
101
}
2113
0
#line 2114 "Zend/zend_ini_scanner.c"
2114
197
yy150:
2115
197
    YYDEBUG(150, *YYCURSOR);
2116
197
    ++YYCURSOR;
2117
197
    YYDEBUG(151, *YYCURSOR);
2118
197
    yyleng = YYCURSOR - SCNG(yy_text);
2119
197
#line 610 "Zend/zend_ini_scanner.l"
2120
197
    { /* Double quoted '"' string start */
2121
197
  yy_push_state(ST_DOUBLE_QUOTES);
2122
197
  return '"';
2123
101
}
2124
0
#line 2125 "Zend/zend_ini_scanner.c"
2125
1
yy152:
2126
1
    YYDEBUG(152, *YYCURSOR);
2127
1
    yych = *++YYCURSOR;
2128
1
    if (yych <= '\\') {
2129
0
      if (yych <= 0x00) goto yy137;
2130
0
      if (yych <= '[') goto yy138;
2131
0
      goto yy172;
2132
1
    } else {
2133
1
      if (yych == '{') goto yy173;
2134
0
      goto yy138;
2135
1
    }
2136
113
yy153:
2137
113
    YYDEBUG(153, *YYCURSOR);
2138
113
    yych = *++YYCURSOR;
2139
113
    if (yybm[0+yych] & 64) {
2140
112
      goto yy175;
2141
112
    }
2142
1
    goto yy137;
2143
7
yy154:
2144
7
    YYDEBUG(154, *YYCURSOR);
2145
7
    yyaccept = 0;
2146
7
    yych = *(YYMARKER = ++YYCURSOR);
2147
7
    if (yych <= '/') goto yy139;
2148
7
    if (yych <= '9') goto yy177;
2149
0
    goto yy139;
2150
139
yy155:
2151
139
    YYDEBUG(155, *YYCURSOR);
2152
139
    yyaccept = 1;
2153
139
    YYMARKER = ++YYCURSOR;
2154
139
    YYFILL(1);
2155
139
    yych = *YYCURSOR;
2156
139
    YYDEBUG(156, *YYCURSOR);
2157
139
    if (yybm[0+yych] & 8) {
2158
57
      goto yy155;
2159
57
    }
2160
82
    if (yych <= '-') {
2161
67
      if (yych <= 0x1F) {
2162
65
        if (yych <= '\n') {
2163
61
          if (yych <= 0x00) goto yy157;
2164
61
          if (yych <= 0x08) goto yy138;
2165
61
        } else {
2166
4
          if (yych != '\r') goto yy138;
2167
4
        }
2168
65
      } else {
2169
2
        if (yych <= '$') {
2170
2
          if (yych <= '"') goto yy157;
2171
0
          if (yych <= '#') goto yy138;
2172
0
          goto yy170;
2173
0
        } else {
2174
0
          if (yych <= '%') goto yy138;
2175
0
          if (yych >= '*') goto yy138;
2176
0
        }
2177
2
      }
2178
67
    } else {
2179
15
      if (yych <= ']') {
2180
5
        if (yych <= ';') {
2181
3
          if (yych <= '.') goto yy177;
2182
3
          if (yych <= ':') goto yy138;
2183
3
        } else {
2184
2
          if (yych != '=') goto yy138;
2185
2
        }
2186
10
      } else {
2187
10
        if (yych <= '|') {
2188
1
          if (yych <= '^') goto yy157;
2189
0
          if (yych <= '{') goto yy138;
2190
9
        } else {
2191
9
          if (yych != '~') goto yy138;
2192
9
        }
2193
10
      }
2194
15
    }
2195
68
yy157:
2196
68
    YYDEBUG(157, *YYCURSOR);
2197
68
    yyleng = YYCURSOR - SCNG(yy_text);
2198
68
#line 580 "Zend/zend_ini_scanner.l"
2199
68
    { /* Get number option value as string */
2200
68
  RETURN_TOKEN(TC_NUMBER, yytext, yyleng);
2201
0
}
2202
0
#line 2203 "Zend/zend_ini_scanner.c"
2203
474
yy158:
2204
474
    YYDEBUG(158, *YYCURSOR);
2205
474
    ++YYCURSOR;
2206
474
    YYFILL(2);
2207
471
    yych = *YYCURSOR;
2208
471
    YYDEBUG(159, *YYCURSOR);
2209
471
    if (yybm[0+yych] & 16) {
2210
441
      goto yy158;
2211
441
    }
2212
30
    if (yych <= '\n') goto yy179;
2213
3
    goto yy181;
2214
19
yy160:
2215
19
    YYDEBUG(160, *YYCURSOR);
2216
19
    ++YYCURSOR;
2217
19
    YYDEBUG(161, *YYCURSOR);
2218
19
    yyleng = YYCURSOR - SCNG(yy_text);
2219
19
#line 592 "Zend/zend_ini_scanner.l"
2220
19
    { /* Make = used in option value to trigger error */
2221
19
  yyless(0);
2222
19
  BEGIN(INITIAL);
2223
19
  return END_OF_LINE;
2224
30
}
2225
0
#line 2226 "Zend/zend_ini_scanner.c"
2226
1.24k
yy162:
2227
1.24k
    YYDEBUG(162, *YYCURSOR);
2228
1.24k
    yyaccept = 2;
2229
1.24k
    YYMARKER = ++YYCURSOR;
2230
1.24k
    YYFILL(1);
2231
1.24k
    yych = *YYCURSOR;
2232
1.24k
    YYDEBUG(163, *YYCURSOR);
2233
1.24k
    if (yybm[0+yych] & 32) {
2234
933
      goto yy162;
2235
933
    }
2236
312
    if (yych <= ')') {
2237
215
      if (yych <= '\r') {
2238
49
        if (yych <= 0x08) {
2239
10
          if (yych >= 0x01) goto yy138;
2240
39
        } else {
2241
39
          if (yych <= '\n') goto yy164;
2242
0
          if (yych <= '\f') goto yy138;
2243
0
        }
2244
166
      } else {
2245
166
        if (yych <= '#') {
2246
60
          if (yych <= 0x1F) goto yy138;
2247
60
          if (yych >= '#') goto yy138;
2248
106
        } else {
2249
106
          if (yych <= '$') goto yy170;
2250
46
          if (yych <= '%') goto yy138;
2251
46
        }
2252
166
      }
2253
215
    } else {
2254
97
      if (yych <= ']') {
2255
35
        if (yych <= ';') {
2256
31
          if (yych <= ':') goto yy138;
2257
31
        } else {
2258
4
          if (yych != '=') goto yy138;
2259
4
        }
2260
62
      } else {
2261
62
        if (yych <= '|') {
2262
0
          if (yych <= '^') goto yy164;
2263
0
          if (yych <= '{') goto yy138;
2264
62
        } else {
2265
62
          if (yych != '~') goto yy138;
2266
62
        }
2267
62
      }
2268
97
    }
2269
211
yy164:
2270
211
    YYDEBUG(164, *YYCURSOR);
2271
211
    yyleng = YYCURSOR - SCNG(yy_text);
2272
211
#line 576 "Zend/zend_ini_scanner.l"
2273
211
    { /* Get constant option value */
2274
211
  RETURN_TOKEN(TC_CONSTANT, yytext, yyleng);
2275
0
}
2276
0
#line 2277 "Zend/zend_ini_scanner.c"
2277
41
yy165:
2278
41
    YYDEBUG(165, *YYCURSOR);
2279
41
    yyaccept = 2;
2280
41
    yych = *(YYMARKER = ++YYCURSOR);
2281
41
    if (yych <= '<') {
2282
0
      if (yych <= '"') {
2283
0
        if (yych <= '\n') {
2284
0
          if (yych <= 0x00) goto yy164;
2285
0
          if (yych <= 0x08) goto yy139;
2286
0
          goto yy164;
2287
0
        } else {
2288
0
          if (yych == '\r') goto yy164;
2289
0
          if (yych <= 0x1F) goto yy139;
2290
0
          goto yy164;
2291
0
        }
2292
0
      } else {
2293
0
        if (yych <= '/') {
2294
0
          if (yych <= '%') goto yy139;
2295
0
          if (yych <= ')') goto yy164;
2296
0
          goto yy139;
2297
0
        } else {
2298
0
          if (yych <= '9') goto yy162;
2299
0
          if (yych == ';') goto yy164;
2300
0
          goto yy139;
2301
0
        }
2302
0
      }
2303
41
    } else {
2304
41
      if (yych <= '_') {
2305
2
        if (yych <= 'A') {
2306
0
          if (yych <= '=') goto yy164;
2307
0
          if (yych <= '@') goto yy139;
2308
0
          goto yy182;
2309
2
        } else {
2310
2
          if (yych <= 'Z') goto yy162;
2311
0
          if (yych <= ']') goto yy139;
2312
0
          if (yych <= '^') goto yy164;
2313
0
          goto yy162;
2314
0
        }
2315
39
      } else {
2316
39
        if (yych <= '{') {
2317
39
          if (yych <= '`') goto yy139;
2318
39
          if (yych <= 'a') goto yy182;
2319
20
          if (yych <= 'z') goto yy162;
2320
0
          goto yy139;
2321
20
        } else {
2322
0
          if (yych == '}') goto yy139;
2323
0
          if (yych <= '~') goto yy164;
2324
0
          goto yy139;
2325
0
        }
2326
39
      }
2327
41
    }
2328
198
yy166:
2329
198
    YYDEBUG(166, *YYCURSOR);
2330
198
    yyaccept = 2;
2331
198
    yych = *(YYMARKER = ++YYCURSOR);
2332
198
    if (yych <= 'N') {
2333
91
      if (yych <= '%') {
2334
37
        if (yych <= '\f') {
2335
3
          if (yych <= 0x00) goto yy164;
2336
3
          if (yych <= 0x08) goto yy139;
2337
0
          if (yych <= '\n') goto yy164;
2338
0
          goto yy139;
2339
34
        } else {
2340
34
          if (yych <= '\r') goto yy164;
2341
34
          if (yych <= 0x1F) goto yy139;
2342
19
          if (yych <= '"') goto yy164;
2343
0
          goto yy139;
2344
19
        }
2345
54
      } else {
2346
54
        if (yych <= ':') {
2347
53
          if (yych <= ')') goto yy164;
2348
53
          if (yych <= '/') goto yy139;
2349
53
          if (yych <= '9') goto yy162;
2350
0
          goto yy139;
2351
53
        } else {
2352
1
          if (yych <= '<') {
2353
0
            if (yych <= ';') goto yy164;
2354
0
            goto yy139;
2355
1
          } else {
2356
1
            if (yych <= '=') goto yy164;
2357
1
            if (yych <= '@') goto yy139;
2358
1
            goto yy162;
2359
1
          }
2360
1
        }
2361
54
      }
2362
107
    } else {
2363
107
      if (yych <= 'n') {
2364
50
        if (yych <= 'Z') {
2365
15
          if (yych <= 'O') goto yy183;
2366
14
          if (yych == 'U') goto yy185;
2367
14
          goto yy162;
2368
35
        } else {
2369
35
          if (yych <= '^') {
2370
32
            if (yych <= ']') goto yy139;
2371
0
            goto yy164;
2372
32
          } else {
2373
3
            if (yych == '`') goto yy139;
2374
3
            goto yy162;
2375
3
          }
2376
35
        }
2377
57
      } else {
2378
57
        if (yych <= 'z') {
2379
54
          if (yych <= 'o') goto yy183;
2380
33
          if (yych == 'u') goto yy185;
2381
0
          goto yy162;
2382
33
        } else {
2383
3
          if (yych <= '|') {
2384
0
            if (yych <= '{') goto yy139;
2385
0
            goto yy164;
2386
3
          } else {
2387
3
            if (yych == '~') goto yy164;
2388
3
            goto yy139;
2389
3
          }
2390
3
        }
2391
57
      }
2392
107
    }
2393
29
yy167:
2394
29
    YYDEBUG(167, *YYCURSOR);
2395
29
    yyaccept = 2;
2396
29
    yych = *(YYMARKER = ++YYCURSOR);
2397
29
    if (yych <= 'E') {
2398
7
      if (yych <= '%') {
2399
3
        if (yych <= '\f') {
2400
0
          if (yych <= 0x00) goto yy164;
2401
0
          if (yych <= 0x08) goto yy139;
2402
0
          if (yych <= '\n') goto yy164;
2403
0
          goto yy139;
2404
3
        } else {
2405
3
          if (yych <= '\r') goto yy164;
2406
3
          if (yych <= 0x1F) goto yy139;
2407
0
          if (yych <= '"') goto yy164;
2408
0
          goto yy139;
2409
0
        }
2410
4
      } else {
2411
4
        if (yych <= ':') {
2412
3
          if (yych <= ')') goto yy164;
2413
3
          if (yych <= '/') goto yy139;
2414
3
          if (yych <= '9') goto yy162;
2415
0
          goto yy139;
2416
3
        } else {
2417
1
          if (yych <= '<') {
2418
0
            if (yych <= ';') goto yy164;
2419
0
            goto yy139;
2420
1
          } else {
2421
1
            if (yych <= '=') goto yy164;
2422
1
            if (yych <= '@') goto yy139;
2423
1
            goto yy162;
2424
1
          }
2425
1
        }
2426
4
      }
2427
22
    } else {
2428
22
      if (yych <= 'e') {
2429
0
        if (yych <= 'Z') {
2430
0
          if (yych <= 'F') goto yy186;
2431
0
          if (yych == 'N') goto yy187;
2432
0
          goto yy162;
2433
0
        } else {
2434
0
          if (yych <= '^') {
2435
0
            if (yych <= ']') goto yy139;
2436
0
            goto yy164;
2437
0
          } else {
2438
0
            if (yych == '`') goto yy139;
2439
0
            goto yy162;
2440
0
          }
2441
0
        }
2442
22
      } else {
2443
22
        if (yych <= 'z') {
2444
22
          if (yych <= 'f') goto yy186;
2445
3
          if (yych == 'n') goto yy187;
2446
0
          goto yy162;
2447
3
        } else {
2448
0
          if (yych <= '|') {
2449
0
            if (yych <= '{') goto yy139;
2450
0
            goto yy164;
2451
0
          } else {
2452
0
            if (yych == '~') goto yy164;
2453
0
            goto yy139;
2454
0
          }
2455
0
        }
2456
22
      }
2457
22
    }
2458
75
yy168:
2459
75
    YYDEBUG(168, *YYCURSOR);
2460
75
    yyaccept = 2;
2461
75
    yych = *(YYMARKER = ++YYCURSOR);
2462
75
    if (yych <= '=') {
2463
2
      if (yych <= '"') {
2464
1
        if (yych <= '\n') {
2465
0
          if (yych <= 0x00) goto yy164;
2466
0
          if (yych <= 0x08) goto yy139;
2467
0
          goto yy164;
2468
1
        } else {
2469
1
          if (yych == '\r') goto yy164;
2470
1
          if (yych <= 0x1F) goto yy139;
2471
0
          goto yy164;
2472
1
        }
2473
1
      } else {
2474
1
        if (yych <= '9') {
2475
0
          if (yych <= '%') goto yy139;
2476
0
          if (yych <= ')') goto yy164;
2477
0
          if (yych <= '/') goto yy139;
2478
0
          goto yy162;
2479
1
        } else {
2480
1
          if (yych == ';') goto yy164;
2481
1
          if (yych <= '<') goto yy139;
2482
1
          goto yy164;
2483
1
        }
2484
1
      }
2485
73
    } else {
2486
73
      if (yych <= '`') {
2487
20
        if (yych <= 'Z') {
2488
0
          if (yych <= '@') goto yy139;
2489
0
          if (yych == 'R') goto yy189;
2490
0
          goto yy162;
2491
20
        } else {
2492
20
          if (yych <= ']') goto yy139;
2493
20
          if (yych <= '^') goto yy164;
2494
11
          if (yych <= '_') goto yy162;
2495
0
          goto yy139;
2496
11
        }
2497
53
      } else {
2498
53
        if (yych <= '{') {
2499
53
          if (yych == 'r') goto yy189;
2500
1
          if (yych <= 'z') goto yy162;
2501
0
          goto yy139;
2502
1
        } else {
2503
0
          if (yych == '}') goto yy139;
2504
0
          if (yych <= '~') goto yy164;
2505
0
          goto yy139;
2506
0
        }
2507
53
      }
2508
73
    }
2509
11
yy169:
2510
11
    YYDEBUG(169, *YYCURSOR);
2511
11
    yyaccept = 2;
2512
11
    yych = *(YYMARKER = ++YYCURSOR);
2513
11
    if (yych <= '=') {
2514
3
      if (yych <= '"') {
2515
0
        if (yych <= '\n') {
2516
0
          if (yych <= 0x00) goto yy164;
2517
0
          if (yych <= 0x08) goto yy139;
2518
0
          goto yy164;
2519
0
        } else {
2520
0
          if (yych == '\r') goto yy164;
2521
0
          if (yych <= 0x1F) goto yy139;
2522
0
          goto yy164;
2523
0
        }
2524
3
      } else {
2525
3
        if (yych <= '9') {
2526
3
          if (yych <= '%') goto yy139;
2527
3
          if (yych <= ')') goto yy164;
2528
3
          if (yych <= '/') goto yy139;
2529
0
          goto yy162;
2530
3
        } else {
2531
0
          if (yych == ';') goto yy164;
2532
0
          if (yych <= '<') goto yy139;
2533
0
          goto yy164;
2534
0
        }
2535
3
      }
2536
8
    } else {
2537
8
      if (yych <= '`') {
2538
1
        if (yych <= 'Z') {
2539
1
          if (yych <= '@') goto yy139;
2540
1
          if (yych == 'E') goto yy190;
2541
0
          goto yy162;
2542
1
        } else {
2543
0
          if (yych <= ']') goto yy139;
2544
0
          if (yych <= '^') goto yy164;
2545
0
          if (yych <= '_') goto yy162;
2546
0
          goto yy139;
2547
0
        }
2548
7
      } else {
2549
7
        if (yych <= '{') {
2550
5
          if (yych == 'e') goto yy190;
2551
0
          if (yych <= 'z') goto yy162;
2552
0
          goto yy139;
2553
2
        } else {
2554
2
          if (yych == '}') goto yy139;
2555
1
          if (yych <= '~') goto yy164;
2556
1
          goto yy139;
2557
1
        }
2558
7
      }
2559
8
    }
2560
86
yy170:
2561
86
    YYDEBUG(170, *YYCURSOR);
2562
86
    ++YYCURSOR;
2563
86
    YYFILL(1);
2564
86
    yych = *YYCURSOR;
2565
86
    if (yych <= '\\') {
2566
83
      if (yych <= 0x00) goto yy171;
2567
83
      if (yych <= '[') goto yy138;
2568
0
      goto yy172;
2569
83
    } else {
2570
3
      if (yych != '{') goto yy138;
2571
3
    }
2572
1
yy171:
2573
1
    YYDEBUG(171, *YYCURSOR);
2574
1
    YYCURSOR = YYMARKER;
2575
1
    if (yyaccept <= 2) {
2576
1
      if (yyaccept <= 1) {
2577
1
        if (yyaccept == 0) {
2578
1
          goto yy140;
2579
1
        } else {
2580
0
          goto yy157;
2581
0
        }
2582
1
      } else {
2583
0
        goto yy164;
2584
0
      }
2585
1
    } else {
2586
0
      if (yyaccept <= 4) {
2587
0
        if (yyaccept == 3) {
2588
0
          goto yy184;
2589
0
        } else {
2590
0
          goto yy188;
2591
0
        }
2592
0
      } else {
2593
0
        goto yy205;
2594
0
      }
2595
0
    }
2596
0
yy172:
2597
0
    YYDEBUG(172, *YYCURSOR);
2598
0
    ++YYCURSOR;
2599
0
    YYFILL(1);
2600
0
    yych = *YYCURSOR;
2601
0
    if (yybm[0+yych] & 128) {
2602
0
      goto yy191;
2603
0
    }
2604
0
    goto yy138;
2605
1
yy173:
2606
1
    YYDEBUG(173, *YYCURSOR);
2607
1
    ++YYCURSOR;
2608
1
    YYDEBUG(174, *YYCURSOR);
2609
1
    yyleng = YYCURSOR - SCNG(yy_text);
2610
1
#line 422 "Zend/zend_ini_scanner.l"
2611
1
    { /* Variable start */
2612
1
  yy_push_state(ST_VARNAME);
2613
1
  return TC_DOLLAR_CURLY;
2614
0
}
2615
0
#line 2616 "Zend/zend_ini_scanner.c"
2616
7.54k
yy175:
2617
7.54k
    YYDEBUG(175, *YYCURSOR);
2618
7.54k
    ++YYCURSOR;
2619
7.54k
    YYFILL(1);
2620
7.53k
    yych = *YYCURSOR;
2621
7.53k
    YYDEBUG(176, *YYCURSOR);
2622
7.53k
    if (yybm[0+yych] & 64) {
2623
7.43k
      goto yy175;
2624
7.43k
    }
2625
102
    goto yy193;
2626
102
yy177:
2627
20
    YYDEBUG(177, *YYCURSOR);
2628
20
    yyaccept = 1;
2629
20
    YYMARKER = ++YYCURSOR;
2630
20
    YYFILL(1);
2631
20
    yych = *YYCURSOR;
2632
20
    YYDEBUG(178, *YYCURSOR);
2633
20
    if (yych <= '/') {
2634
6
      if (yych <= 0x1F) {
2635
5
        if (yych <= '\n') {
2636
5
          if (yych <= 0x00) goto yy157;
2637
5
          if (yych <= 0x08) goto yy138;
2638
5
          goto yy157;
2639
5
        } else {
2640
0
          if (yych == '\r') goto yy157;
2641
0
          goto yy138;
2642
0
        }
2643
5
      } else {
2644
1
        if (yych <= '$') {
2645
0
          if (yych <= '"') goto yy157;
2646
0
          if (yych <= '#') goto yy138;
2647
0
          goto yy170;
2648
1
        } else {
2649
1
          if (yych <= '%') goto yy138;
2650
0
          if (yych <= ')') goto yy157;
2651
0
          goto yy138;
2652
0
        }
2653
1
      }
2654
14
    } else {
2655
14
      if (yych <= ']') {
2656
13
        if (yych <= ';') {
2657
13
          if (yych <= '9') goto yy177;
2658
0
          if (yych <= ':') goto yy138;
2659
0
          goto yy157;
2660
0
        } else {
2661
0
          if (yych == '=') goto yy157;
2662
0
          goto yy138;
2663
0
        }
2664
13
      } else {
2665
1
        if (yych <= '|') {
2666
1
          if (yych <= '^') goto yy157;
2667
1
          if (yych <= '{') goto yy138;
2668
0
          goto yy157;
2669
1
        } else {
2670
0
          if (yych == '~') goto yy157;
2671
0
          goto yy138;
2672
0
        }
2673
1
      }
2674
14
    }
2675
27
yy179:
2676
27
    YYDEBUG(179, *YYCURSOR);
2677
27
    ++YYCURSOR;
2678
30
yy180:
2679
30
    YYDEBUG(180, *YYCURSOR);
2680
30
    yyleng = YYCURSOR - SCNG(yy_text);
2681
30
#line 675 "Zend/zend_ini_scanner.l"
2682
30
    { /* Comment */
2683
30
  BEGIN(INITIAL);
2684
30
  SCNG(lineno)++;
2685
30
  return END_OF_LINE;
2686
27
}
2687
0
#line 2688 "Zend/zend_ini_scanner.c"
2688
3
yy181:
2689
3
    YYDEBUG(181, *YYCURSOR);
2690
3
    yych = *++YYCURSOR;
2691
3
    if (yych == '\n') goto yy179;
2692
3
    goto yy180;
2693
19
yy182:
2694
19
    YYDEBUG(182, *YYCURSOR);
2695
19
    yyaccept = 2;
2696
19
    yych = *(YYMARKER = ++YYCURSOR);
2697
19
    if (yych <= '=') {
2698
0
      if (yych <= '"') {
2699
0
        if (yych <= '\n') {
2700
0
          if (yych <= 0x00) goto yy164;
2701
0
          if (yych <= 0x08) goto yy139;
2702
0
          goto yy164;
2703
0
        } else {
2704
0
          if (yych == '\r') goto yy164;
2705
0
          if (yych <= 0x1F) goto yy139;
2706
0
          goto yy164;
2707
0
        }
2708
0
      } else {
2709
0
        if (yych <= '9') {
2710
0
          if (yych <= '%') goto yy139;
2711
0
          if (yych <= ')') goto yy164;
2712
0
          if (yych <= '/') goto yy139;
2713
0
          goto yy162;
2714
0
        } else {
2715
0
          if (yych == ';') goto yy164;
2716
0
          if (yych <= '<') goto yy139;
2717
0
          goto yy164;
2718
0
        }
2719
0
      }
2720
19
    } else {
2721
19
      if (yych <= '`') {
2722
0
        if (yych <= 'Z') {
2723
0
          if (yych <= '@') goto yy139;
2724
0
          if (yych == 'L') goto yy195;
2725
0
          goto yy162;
2726
0
        } else {
2727
0
          if (yych <= ']') goto yy139;
2728
0
          if (yych <= '^') goto yy164;
2729
0
          if (yych <= '_') goto yy162;
2730
0
          goto yy139;
2731
0
        }
2732
19
      } else {
2733
19
        if (yych <= '{') {
2734
19
          if (yych == 'l') goto yy195;
2735
0
          if (yych <= 'z') goto yy162;
2736
0
          goto yy139;
2737
0
        } else {
2738
0
          if (yych == '}') goto yy139;
2739
0
          if (yych <= '~') goto yy164;
2740
0
          goto yy139;
2741
0
        }
2742
19
      }
2743
19
    }
2744
22
yy183:
2745
22
    YYDEBUG(183, *YYCURSOR);
2746
22
    yyaccept = 3;
2747
22
    yych = *(YYMARKER = ++YYCURSOR);
2748
22
    if (yych <= '<') {
2749
20
      if (yych <= ' ') {
2750
5
        if (yych <= '\n') {
2751
4
          if (yych <= 0x00) goto yy184;
2752
0
          if (yych <= 0x08) goto yy139;
2753
0
          if (yych <= '\t') goto yy196;
2754
1
        } else {
2755
1
          if (yych == '\r') goto yy184;
2756
1
          if (yych <= 0x1F) goto yy139;
2757
0
          goto yy196;
2758
1
        }
2759
15
      } else {
2760
15
        if (yych <= '/') {
2761
0
          if (yych <= '"') goto yy184;
2762
0
          if (yych <= '%') goto yy139;
2763
0
          if (yych >= '*') goto yy139;
2764
15
        } else {
2765
15
          if (yych <= '9') goto yy162;
2766
15
          if (yych != ';') goto yy139;
2767
15
        }
2768
15
      }
2769
20
    } else {
2770
2
      if (yych <= '_') {
2771
1
        if (yych <= 'N') {
2772
1
          if (yych <= '=') goto yy184;
2773
1
          if (yych <= '@') goto yy139;
2774
1
          if (yych <= 'M') goto yy162;
2775
0
          goto yy198;
2776
1
        } else {
2777
0
          if (yych <= 'Z') goto yy162;
2778
0
          if (yych <= ']') goto yy139;
2779
0
          if (yych >= '_') goto yy162;
2780
0
        }
2781
1
      } else {
2782
1
        if (yych <= 'z') {
2783
0
          if (yych <= '`') goto yy139;
2784
0
          if (yych == 'n') goto yy198;
2785
0
          goto yy162;
2786
1
        } else {
2787
1
          if (yych <= '|') {
2788
0
            if (yych <= '{') goto yy139;
2789
1
          } else {
2790
1
            if (yych != '~') goto yy139;
2791
1
          }
2792
1
        }
2793
1
      }
2794
2
    }
2795
13
yy184:
2796
13
    YYDEBUG(184, *YYCURSOR);
2797
13
    yyleng = YYCURSOR - SCNG(yy_text);
2798
13
#line 495 "Zend/zend_ini_scanner.l"
2799
13
    { /* FALSE value (when used outside option value/offset this causes parse error!)*/
2800
13
  RETURN_TOKEN(BOOL_FALSE, "", 0);
2801
0
}
2802
0
#line 2803 "Zend/zend_ini_scanner.c"
2803
33
yy185:
2804
33
    YYDEBUG(185, *YYCURSOR);
2805
33
    yyaccept = 2;
2806
33
    yych = *(YYMARKER = ++YYCURSOR);
2807
33
    if (yych <= '=') {
2808
3
      if (yych <= '"') {
2809
2
        if (yych <= '\n') {
2810
0
          if (yych <= 0x00) goto yy164;
2811
0
          if (yych <= 0x08) goto yy139;
2812
0
          goto yy164;
2813
2
        } else {
2814
2
          if (yych == '\r') goto yy164;
2815
2
          if (yych <= 0x1F) goto yy139;
2816
1
          goto yy164;
2817
2
        }
2818
2
      } else {
2819
1
        if (yych <= '9') {
2820
1
          if (yych <= '%') goto yy139;
2821
1
          if (yych <= ')') goto yy164;
2822
1
          if (yych <= '/') goto yy139;
2823
0
          goto yy162;
2824
1
        } else {
2825
0
          if (yych == ';') goto yy164;
2826
0
          if (yych <= '<') goto yy139;
2827
0
          goto yy164;
2828
0
        }
2829
1
      }
2830
30
    } else {
2831
30
      if (yych <= '`') {
2832
0
        if (yych <= 'Z') {
2833
0
          if (yych <= '@') goto yy139;
2834
0
          if (yych == 'L') goto yy199;
2835
0
          goto yy162;
2836
0
        } else {
2837
0
          if (yych <= ']') goto yy139;
2838
0
          if (yych <= '^') goto yy164;
2839
0
          if (yych <= '_') goto yy162;
2840
0
          goto yy139;
2841
0
        }
2842
30
      } else {
2843
30
        if (yych <= '{') {
2844
25
          if (yych == 'l') goto yy199;
2845
0
          if (yych <= 'z') goto yy162;
2846
0
          goto yy139;
2847
5
        } else {
2848
5
          if (yych == '}') goto yy139;
2849
5
          if (yych <= '~') goto yy164;
2850
0
          goto yy139;
2851
5
        }
2852
30
      }
2853
30
    }
2854
19
yy186:
2855
19
    YYDEBUG(186, *YYCURSOR);
2856
19
    yyaccept = 2;
2857
19
    yych = *(YYMARKER = ++YYCURSOR);
2858
19
    if (yych <= '=') {
2859
1
      if (yych <= '"') {
2860
1
        if (yych <= '\n') {
2861
0
          if (yych <= 0x00) goto yy164;
2862
0
          if (yych <= 0x08) goto yy139;
2863
0
          goto yy164;
2864
1
        } else {
2865
1
          if (yych == '\r') goto yy164;
2866
1
          if (yych <= 0x1F) goto yy139;
2867
0
          goto yy164;
2868
1
        }
2869
1
      } else {
2870
0
        if (yych <= '9') {
2871
0
          if (yych <= '%') goto yy139;
2872
0
          if (yych <= ')') goto yy164;
2873
0
          if (yych <= '/') goto yy139;
2874
0
          goto yy162;
2875
0
        } else {
2876
0
          if (yych == ';') goto yy164;
2877
0
          if (yych <= '<') goto yy139;
2878
0
          goto yy164;
2879
0
        }
2880
0
      }
2881
18
    } else {
2882
18
      if (yych <= '`') {
2883
2
        if (yych <= 'Z') {
2884
2
          if (yych <= '@') goto yy139;
2885
2
          if (yych == 'F') goto yy200;
2886
0
          goto yy162;
2887
2
        } else {
2888
0
          if (yych <= ']') goto yy139;
2889
0
          if (yych <= '^') goto yy164;
2890
0
          if (yych <= '_') goto yy162;
2891
0
          goto yy139;
2892
0
        }
2893
16
      } else {
2894
16
        if (yych <= '{') {
2895
15
          if (yych == 'f') goto yy200;
2896
0
          if (yych <= 'z') goto yy162;
2897
0
          goto yy139;
2898
1
        } else {
2899
1
          if (yych == '}') goto yy139;
2900
0
          if (yych <= '~') goto yy164;
2901
0
          goto yy139;
2902
0
        }
2903
16
      }
2904
18
    }
2905
4
yy187:
2906
4
    YYDEBUG(187, *YYCURSOR);
2907
4
    yyaccept = 4;
2908
4
    yych = *(YYMARKER = ++YYCURSOR);
2909
4
    if (yybm[0+yych] & 32) {
2910
0
      goto yy162;
2911
0
    }
2912
4
    if (yych <= ')') {
2913
4
      if (yych <= '\f') {
2914
4
        if (yych <= 0x08) {
2915
0
          if (yych >= 0x01) goto yy139;
2916
4
        } else {
2917
4
          if (yych <= '\t') goto yy201;
2918
4
          if (yych >= '\v') goto yy139;
2919
4
        }
2920
4
      } else {
2921
0
        if (yych <= ' ') {
2922
0
          if (yych <= '\r') goto yy188;
2923
0
          if (yych <= 0x1F) goto yy139;
2924
0
          goto yy201;
2925
0
        } else {
2926
0
          if (yych <= '"') goto yy188;
2927
0
          if (yych <= '%') goto yy139;
2928
0
        }
2929
0
      }
2930
4
    } else {
2931
0
      if (yych <= ']') {
2932
0
        if (yych <= ';') {
2933
0
          if (yych <= ':') goto yy139;
2934
0
        } else {
2935
0
          if (yych != '=') goto yy139;
2936
0
        }
2937
0
      } else {
2938
0
        if (yych <= '|') {
2939
0
          if (yych <= '^') goto yy188;
2940
0
          if (yych <= '{') goto yy139;
2941
0
        } else {
2942
0
          if (yych != '~') goto yy139;
2943
0
        }
2944
0
      }
2945
0
    }
2946
4
yy188:
2947
4
    YYDEBUG(188, *YYCURSOR);
2948
4
    yyleng = YYCURSOR - SCNG(yy_text);
2949
4
#line 491 "Zend/zend_ini_scanner.l"
2950
4
    { /* TRUE value (when used outside option value/offset this causes parse error!) */
2951
4
  RETURN_TOKEN(BOOL_TRUE, "1", 1);
2952
0
}
2953
0
#line 2954 "Zend/zend_ini_scanner.c"
2954
52
yy189:
2955
52
    YYDEBUG(189, *YYCURSOR);
2956
52
    yyaccept = 2;
2957
52
    yych = *(YYMARKER = ++YYCURSOR);
2958
52
    if (yych <= '=') {
2959
5
      if (yych <= '"') {
2960
4
        if (yych <= '\n') {
2961
4
          if (yych <= 0x00) goto yy164;
2962
4
          if (yych <= 0x08) goto yy139;
2963
4
          goto yy164;
2964
4
        } else {
2965
0
          if (yych == '\r') goto yy164;
2966
0
          if (yych <= 0x1F) goto yy139;
2967
0
          goto yy164;
2968
0
        }
2969
4
      } else {
2970
1
        if (yych <= '9') {
2971
0
          if (yych <= '%') goto yy139;
2972
0
          if (yych <= ')') goto yy164;
2973
0
          if (yych <= '/') goto yy139;
2974
0
          goto yy162;
2975
1
        } else {
2976
1
          if (yych == ';') goto yy164;
2977
1
          if (yych <= '<') goto yy139;
2978
0
          goto yy164;
2979
1
        }
2980
1
      }
2981
47
    } else {
2982
47
      if (yych <= '`') {
2983
20
        if (yych <= 'Z') {
2984
20
          if (yych <= '@') goto yy139;
2985
19
          if (yych == 'U') goto yy203;
2986
0
          goto yy162;
2987
19
        } else {
2988
0
          if (yych <= ']') goto yy139;
2989
0
          if (yych <= '^') goto yy164;
2990
0
          if (yych <= '_') goto yy162;
2991
0
          goto yy139;
2992
0
        }
2993
27
      } else {
2994
27
        if (yych <= '{') {
2995
24
          if (yych == 'u') goto yy203;
2996
12
          if (yych <= 'z') goto yy162;
2997
0
          goto yy139;
2998
12
        } else {
2999
3
          if (yych == '}') goto yy139;
3000
3
          if (yych <= '~') goto yy164;
3001
3
          goto yy139;
3002
3
        }
3003
27
      }
3004
47
    }
3005
6
yy190:
3006
6
    YYDEBUG(190, *YYCURSOR);
3007
6
    yyaccept = 2;
3008
6
    yych = *(YYMARKER = ++YYCURSOR);
3009
6
    if (yych <= '=') {
3010
6
      if (yych <= '"') {
3011
6
        if (yych <= '\n') {
3012
6
          if (yych <= 0x00) goto yy164;
3013
6
          if (yych <= 0x08) goto yy139;
3014
5
          goto yy164;
3015
6
        } else {
3016
0
          if (yych == '\r') goto yy164;
3017
0
          if (yych <= 0x1F) goto yy139;
3018
0
          goto yy164;
3019
0
        }
3020
6
      } else {
3021
0
        if (yych <= '9') {
3022
0
          if (yych <= '%') goto yy139;
3023
0
          if (yych <= ')') goto yy164;
3024
0
          if (yych <= '/') goto yy139;
3025
0
          goto yy162;
3026
0
        } else {
3027
0
          if (yych == ';') goto yy164;
3028
0
          if (yych <= '<') goto yy139;
3029
0
          goto yy164;
3030
0
        }
3031
0
      }
3032
6
    } else {
3033
0
      if (yych <= '`') {
3034
0
        if (yych <= 'Z') {
3035
0
          if (yych <= '@') goto yy139;
3036
0
          if (yych == 'S') goto yy187;
3037
0
          goto yy162;
3038
0
        } else {
3039
0
          if (yych <= ']') goto yy139;
3040
0
          if (yych <= '^') goto yy164;
3041
0
          if (yych <= '_') goto yy162;
3042
0
          goto yy139;
3043
0
        }
3044
0
      } else {
3045
0
        if (yych <= '{') {
3046
0
          if (yych == 's') goto yy187;
3047
0
          if (yych <= 'z') goto yy162;
3048
0
          goto yy139;
3049
0
        } else {
3050
0
          if (yych == '}') goto yy139;
3051
0
          if (yych <= '~') goto yy164;
3052
0
          goto yy139;
3053
0
        }
3054
0
      }
3055
0
    }
3056
0
yy191:
3057
0
    YYDEBUG(191, *YYCURSOR);
3058
0
    ++YYCURSOR;
3059
0
    YYFILL(1);
3060
0
    yych = *YYCURSOR;
3061
0
    YYDEBUG(192, *YYCURSOR);
3062
0
    if (yybm[0+yych] & 128) {
3063
0
      goto yy191;
3064
0
    }
3065
0
    if (yych <= 0x00) goto yy140;
3066
0
    if (yych == '\\') goto yy172;
3067
0
    goto yy138;
3068
102
yy193:
3069
102
    YYDEBUG(193, *YYCURSOR);
3070
102
    ++YYCURSOR;
3071
102
    YYDEBUG(194, *YYCURSOR);
3072
102
    yyleng = YYCURSOR - SCNG(yy_text);
3073
102
#line 389 "Zend/zend_ini_scanner.l"
3074
102
    { /* Raw string */
3075
  /* Eat leading and trailing single quotes */
3076
102
  if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') {
3077
102
    SCNG(yy_text)++;
3078
102
    yyleng = yyleng - 2;
3079
102
  }
3080
102
  RETURN_TOKEN(TC_RAW, yytext, yyleng);
3081
0
}
3082
0
#line 3083 "Zend/zend_ini_scanner.c"
3083
19
yy195:
3084
19
    YYDEBUG(195, *YYCURSOR);
3085
19
    yyaccept = 2;
3086
19
    yych = *(YYMARKER = ++YYCURSOR);
3087
19
    if (yych <= '=') {
3088
15
      if (yych <= '"') {
3089
15
        if (yych <= '\n') {
3090
15
          if (yych <= 0x00) goto yy164;
3091
15
          if (yych <= 0x08) goto yy139;
3092
0
          goto yy164;
3093
15
        } else {
3094
0
          if (yych == '\r') goto yy164;
3095
0
          if (yych <= 0x1F) goto yy139;
3096
0
          goto yy164;
3097
0
        }
3098
15
      } else {
3099
0
        if (yych <= '9') {
3100
0
          if (yych <= '%') goto yy139;
3101
0
          if (yych <= ')') goto yy164;
3102
0
          if (yych <= '/') goto yy139;
3103
0
          goto yy162;
3104
0
        } else {
3105
0
          if (yych == ';') goto yy164;
3106
0
          if (yych <= '<') goto yy139;
3107
0
          goto yy164;
3108
0
        }
3109
0
      }
3110
15
    } else {
3111
4
      if (yych <= '`') {
3112
0
        if (yych <= 'Z') {
3113
0
          if (yych <= '@') goto yy139;
3114
0
          if (yych == 'S') goto yy198;
3115
0
          goto yy162;
3116
0
        } else {
3117
0
          if (yych <= ']') goto yy139;
3118
0
          if (yych <= '^') goto yy164;
3119
0
          if (yych <= '_') goto yy162;
3120
0
          goto yy139;
3121
0
        }
3122
4
      } else {
3123
4
        if (yych <= '{') {
3124
4
          if (yych == 's') goto yy198;
3125
0
          if (yych <= 'z') goto yy162;
3126
0
          goto yy139;
3127
0
        } else {
3128
0
          if (yych == '}') goto yy139;
3129
0
          if (yych <= '~') goto yy164;
3130
0
          goto yy139;
3131
0
        }
3132
4
      }
3133
4
    }
3134
0
yy196:
3135
0
    YYDEBUG(196, *YYCURSOR);
3136
0
    ++YYCURSOR;
3137
0
    YYFILL(1);
3138
0
    yych = *YYCURSOR;
3139
0
    YYDEBUG(197, *YYCURSOR);
3140
0
    if (yych == '\t') goto yy196;
3141
0
    if (yych == ' ') goto yy196;
3142
0
    goto yy184;
3143
4
yy198:
3144
4
    YYDEBUG(198, *YYCURSOR);
3145
4
    yyaccept = 2;
3146
4
    yych = *(YYMARKER = ++YYCURSOR);
3147
4
    if (yych <= '=') {
3148
1
      if (yych <= '"') {
3149
0
        if (yych <= '\n') {
3150
0
          if (yych <= 0x00) goto yy164;
3151
0
          if (yych <= 0x08) goto yy139;
3152
0
          goto yy164;
3153
0
        } else {
3154
0
          if (yych == '\r') goto yy164;
3155
0
          if (yych <= 0x1F) goto yy139;
3156
0
          goto yy164;
3157
0
        }
3158
1
      } else {
3159
1
        if (yych <= '9') {
3160
1
          if (yych <= '%') goto yy139;
3161
1
          if (yych <= ')') goto yy164;
3162
1
          if (yych <= '/') goto yy139;
3163
0
          goto yy162;
3164
1
        } else {
3165
0
          if (yych == ';') goto yy164;
3166
0
          if (yych <= '<') goto yy139;
3167
0
          goto yy164;
3168
0
        }
3169
1
      }
3170
3
    } else {
3171
3
      if (yych <= '`') {
3172
0
        if (yych <= 'Z') {
3173
0
          if (yych <= '@') goto yy139;
3174
0
          if (yych == 'E') goto yy200;
3175
0
          goto yy162;
3176
0
        } else {
3177
0
          if (yych <= ']') goto yy139;
3178
0
          if (yych <= '^') goto yy164;
3179
0
          if (yych <= '_') goto yy162;
3180
0
          goto yy139;
3181
0
        }
3182
3
      } else {
3183
3
        if (yych <= '{') {
3184
0
          if (yych == 'e') goto yy200;
3185
0
          if (yych <= 'z') goto yy162;
3186
0
          goto yy139;
3187
3
        } else {
3188
3
          if (yych == '}') goto yy139;
3189
3
          if (yych <= '~') goto yy164;
3190
3
          goto yy139;
3191
3
        }
3192
3
      }
3193
3
    }
3194
25
yy199:
3195
25
    YYDEBUG(199, *YYCURSOR);
3196
25
    yyaccept = 2;
3197
25
    yych = *(YYMARKER = ++YYCURSOR);
3198
25
    if (yych <= '=') {
3199
2
      if (yych <= '"') {
3200
0
        if (yych <= '\n') {
3201
0
          if (yych <= 0x00) goto yy164;
3202
0
          if (yych <= 0x08) goto yy139;
3203
0
          goto yy164;
3204
0
        } else {
3205
0
          if (yych == '\r') goto yy164;
3206
0
          if (yych <= 0x1F) goto yy139;
3207
0
          goto yy164;
3208
0
        }
3209
2
      } else {
3210
2
        if (yych <= '9') {
3211
2
          if (yych <= '%') goto yy139;
3212
1
          if (yych <= ')') goto yy164;
3213
0
          if (yych <= '/') goto yy139;
3214
0
          goto yy162;
3215
0
        } else {
3216
0
          if (yych == ';') goto yy164;
3217
0
          if (yych <= '<') goto yy139;
3218
0
          goto yy164;
3219
0
        }
3220
2
      }
3221
23
    } else {
3222
23
      if (yych <= '`') {
3223
0
        if (yych <= 'Z') {
3224
0
          if (yych <= '@') goto yy139;
3225
0
          if (yych == 'L') goto yy204;
3226
0
          goto yy162;
3227
0
        } else {
3228
0
          if (yych <= ']') goto yy139;
3229
0
          if (yych <= '^') goto yy164;
3230
0
          if (yych <= '_') goto yy162;
3231
0
          goto yy139;
3232
0
        }
3233
23
      } else {
3234
23
        if (yych <= '{') {
3235
23
          if (yych == 'l') goto yy204;
3236
0
          if (yych <= 'z') goto yy162;
3237
0
          goto yy139;
3238
0
        } else {
3239
0
          if (yych == '}') goto yy139;
3240
0
          if (yych <= '~') goto yy164;
3241
0
          goto yy139;
3242
0
        }
3243
23
      }
3244
23
    }
3245
17
yy200:
3246
17
    YYDEBUG(200, *YYCURSOR);
3247
17
    yyaccept = 3;
3248
17
    yych = *(YYMARKER = ++YYCURSOR);
3249
17
    if (yybm[0+yych] & 32) {
3250
17
      goto yy162;
3251
17
    }
3252
0
    if (yych <= ')') {
3253
0
      if (yych <= '\f') {
3254
0
        if (yych <= 0x08) {
3255
0
          if (yych <= 0x00) goto yy184;
3256
0
          goto yy139;
3257
0
        } else {
3258
0
          if (yych <= '\t') goto yy196;
3259
0
          if (yych <= '\n') goto yy184;
3260
0
          goto yy139;
3261
0
        }
3262
0
      } else {
3263
0
        if (yych <= ' ') {
3264
0
          if (yych <= '\r') goto yy184;
3265
0
          if (yych <= 0x1F) goto yy139;
3266
0
          goto yy196;
3267
0
        } else {
3268
0
          if (yych <= '"') goto yy184;
3269
0
          if (yych <= '%') goto yy139;
3270
0
          goto yy184;
3271
0
        }
3272
0
      }
3273
0
    } else {
3274
0
      if (yych <= ']') {
3275
0
        if (yych <= ';') {
3276
0
          if (yych <= ':') goto yy139;
3277
0
          goto yy184;
3278
0
        } else {
3279
0
          if (yych == '=') goto yy184;
3280
0
          goto yy139;
3281
0
        }
3282
0
      } else {
3283
0
        if (yych <= '|') {
3284
0
          if (yych <= '^') goto yy184;
3285
0
          if (yych <= '{') goto yy139;
3286
0
          goto yy184;
3287
0
        } else {
3288
0
          if (yych == '~') goto yy184;
3289
0
          goto yy139;
3290
0
        }
3291
0
      }
3292
0
    }
3293
0
yy201:
3294
0
    YYDEBUG(201, *YYCURSOR);
3295
0
    ++YYCURSOR;
3296
0
    YYFILL(1);
3297
0
    yych = *YYCURSOR;
3298
0
    YYDEBUG(202, *YYCURSOR);
3299
0
    if (yych == '\t') goto yy201;
3300
0
    if (yych == ' ') goto yy201;
3301
0
    goto yy188;
3302
31
yy203:
3303
31
    YYDEBUG(203, *YYCURSOR);
3304
31
    yyaccept = 2;
3305
31
    yych = *(YYMARKER = ++YYCURSOR);
3306
31
    if (yych <= '=') {
3307
4
      if (yych <= '"') {
3308
0
        if (yych <= '\n') {
3309
0
          if (yych <= 0x00) goto yy164;
3310
0
          if (yych <= 0x08) goto yy139;
3311
0
          goto yy164;
3312
0
        } else {
3313
0
          if (yych == '\r') goto yy164;
3314
0
          if (yych <= 0x1F) goto yy139;
3315
0
          goto yy164;
3316
0
        }
3317
4
      } else {
3318
4
        if (yych <= '9') {
3319
4
          if (yych <= '%') goto yy139;
3320
4
          if (yych <= ')') goto yy164;
3321
0
          if (yych <= '/') goto yy139;
3322
0
          goto yy162;
3323
0
        } else {
3324
0
          if (yych == ';') goto yy164;
3325
0
          if (yych <= '<') goto yy139;
3326
0
          goto yy164;
3327
0
        }
3328
4
      }
3329
27
    } else {
3330
27
      if (yych <= '`') {
3331
0
        if (yych <= 'Z') {
3332
0
          if (yych <= '@') goto yy139;
3333
0
          if (yych == 'E') goto yy187;
3334
0
          goto yy162;
3335
0
        } else {
3336
0
          if (yych <= ']') goto yy139;
3337
0
          if (yych <= '^') goto yy164;
3338
0
          if (yych <= '_') goto yy162;
3339
0
          goto yy139;
3340
0
        }
3341
27
      } else {
3342
27
        if (yych <= '{') {
3343
1
          if (yych == 'e') goto yy187;
3344
0
          if (yych <= 'z') goto yy162;
3345
0
          goto yy139;
3346
26
        } else {
3347
26
          if (yych == '}') goto yy139;
3348
26
          if (yych <= '~') goto yy164;
3349
26
          goto yy139;
3350
26
        }
3351
27
      }
3352
27
    }
3353
23
yy204:
3354
23
    YYDEBUG(204, *YYCURSOR);
3355
23
    yyaccept = 5;
3356
23
    yych = *(YYMARKER = ++YYCURSOR);
3357
23
    if (yybm[0+yych] & 32) {
3358
10
      goto yy162;
3359
10
    }
3360
13
    if (yych <= ')') {
3361
0
      if (yych <= '\f') {
3362
0
        if (yych <= 0x08) {
3363
0
          if (yych >= 0x01) goto yy139;
3364
0
        } else {
3365
0
          if (yych <= '\t') goto yy206;
3366
0
          if (yych >= '\v') goto yy139;
3367
0
        }
3368
0
      } else {
3369
0
        if (yych <= ' ') {
3370
0
          if (yych <= '\r') goto yy205;
3371
0
          if (yych <= 0x1F) goto yy139;
3372
0
          goto yy206;
3373
0
        } else {
3374
0
          if (yych <= '"') goto yy205;
3375
0
          if (yych <= '%') goto yy139;
3376
0
        }
3377
0
      }
3378
13
    } else {
3379
13
      if (yych <= ']') {
3380
12
        if (yych <= ';') {
3381
12
          if (yych <= ':') goto yy139;
3382
12
        } else {
3383
0
          if (yych != '=') goto yy139;
3384
0
        }
3385
12
      } else {
3386
1
        if (yych <= '|') {
3387
0
          if (yych <= '^') goto yy205;
3388
0
          if (yych <= '{') goto yy139;
3389
1
        } else {
3390
1
          if (yych != '~') goto yy139;
3391
1
        }
3392
1
      }
3393
13
    }
3394
11
yy205:
3395
11
    YYDEBUG(205, *YYCURSOR);
3396
11
    yyleng = YYCURSOR - SCNG(yy_text);
3397
11
#line 499 "Zend/zend_ini_scanner.l"
3398
11
    {
3399
11
  RETURN_TOKEN(NULL_NULL, "", 0);
3400
0
}
3401
0
#line 3402 "Zend/zend_ini_scanner.c"
3402
0
yy206:
3403
0
    YYDEBUG(206, *YYCURSOR);
3404
0
    ++YYCURSOR;
3405
0
    YYFILL(1);
3406
0
    yych = *YYCURSOR;
3407
0
    YYDEBUG(207, *YYCURSOR);
3408
0
    if (yych == '\t') goto yy206;
3409
0
    if (yych == ' ') goto yy206;
3410
0
    goto yy205;
3411
0
  }
3412
/* *********************************** */
3413
0
yyc_ST_SECTION_RAW:
3414
0
  {
3415
0
    static const unsigned char yybm[] = {
3416
0
       64,  64,  64,  64,  64,  64,  64,  64, 
3417
0
       64, 192,   0,  64,  64,   0,  64,  64, 
3418
0
       64,  64,  64,  64,  64,  64,  64,  64, 
3419
0
       64,  64,  64,  64,  64,  64,  64,  64, 
3420
0
      192,  64,  64,  64,  64,  64,  64,  64, 
3421
0
       64,  64,  64,  64,  64,  64,  64,  64, 
3422
0
       64,  64,  64,  64,  64,  64,  64,  64, 
3423
0
       64,  64,  64,  64,  64,  64,  64,  64, 
3424
0
       64,  64,  64,  64,  64,  64,  64,  64, 
3425
0
       64,  64,  64,  64,  64,  64,  64,  64, 
3426
0
       64,  64,  64,  64,  64,  64,  64,  64, 
3427
0
       64,  64,  64,  64,  64,   0,  64,  64, 
3428
0
       64,  64,  64,  64,  64,  64,  64,  64, 
3429
0
       64,  64,  64,  64,  64,  64,  64,  64, 
3430
0
       64,  64,  64,  64,  64,  64,  64,  64, 
3431
0
       64,  64,  64,  64,  64,  64,  64,  64, 
3432
0
       64,  64,  64,  64,  64,  64,  64,  64, 
3433
0
       64,  64,  64,  64,  64,  64,  64,  64, 
3434
0
       64,  64,  64,  64,  64,  64,  64,  64, 
3435
0
       64,  64,  64,  64,  64,  64,  64,  64, 
3436
0
       64,  64,  64,  64,  64,  64,  64,  64, 
3437
0
       64,  64,  64,  64,  64,  64,  64,  64, 
3438
0
       64,  64,  64,  64,  64,  64,  64,  64, 
3439
0
       64,  64,  64,  64,  64,  64,  64,  64, 
3440
0
       64,  64,  64,  64,  64,  64,  64,  64, 
3441
0
       64,  64,  64,  64,  64,  64,  64,  64, 
3442
0
       64,  64,  64,  64,  64,  64,  64,  64, 
3443
0
       64,  64,  64,  64,  64,  64,  64,  64, 
3444
0
       64,  64,  64,  64,  64,  64,  64,  64, 
3445
0
       64,  64,  64,  64,  64,  64,  64,  64, 
3446
0
       64,  64,  64,  64,  64,  64,  64,  64, 
3447
0
       64,  64,  64,  64,  64,  64,  64,  64, 
3448
0
    };
3449
0
    YYDEBUG(208, *YYCURSOR);
3450
0
    YYFILL(1);
3451
0
    yych = *YYCURSOR;
3452
0
    if (yybm[0+yych] & 64) {
3453
0
      goto yy210;
3454
0
    }
3455
0
    if (yych <= '\r') goto yy213;
3456
0
    goto yy215;
3457
0
yy210:
3458
0
    YYDEBUG(210, *YYCURSOR);
3459
0
    ++YYCURSOR;
3460
0
    YYFILL(1);
3461
0
    yych = *YYCURSOR;
3462
0
    YYDEBUG(211, *YYCURSOR);
3463
0
    if (yybm[0+yych] & 64) {
3464
0
      goto yy210;
3465
0
    }
3466
0
    YYDEBUG(212, *YYCURSOR);
3467
0
    yyleng = YYCURSOR - SCNG(yy_text);
3468
0
#line 566 "Zend/zend_ini_scanner.l"
3469
0
    { /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */
3470
0
  RETURN_TOKEN(TC_RAW, yytext, yyleng);
3471
0
}
3472
0
#line 3473 "Zend/zend_ini_scanner.c"
3473
0
yy213:
3474
0
    YYDEBUG(213, *YYCURSOR);
3475
0
    ++YYCURSOR;
3476
0
    YYDEBUG(214, *YYCURSOR);
3477
0
    yyleng = YYCURSOR - SCNG(yy_text);
3478
0
#line 686 "Zend/zend_ini_scanner.l"
3479
0
    {
3480
0
  return 0;
3481
0
}
3482
0
#line 3483 "Zend/zend_ini_scanner.c"
3483
0
yy215:
3484
0
    YYDEBUG(215, *YYCURSOR);
3485
0
    ++YYCURSOR;
3486
0
    YYFILL(2);
3487
0
    yych = *YYCURSOR;
3488
0
    YYDEBUG(216, *YYCURSOR);
3489
0
    if (yybm[0+yych] & 128) {
3490
0
      goto yy215;
3491
0
    }
3492
0
    if (yych <= 0x08) goto yy217;
3493
0
    if (yych <= '\n') goto yy218;
3494
0
    if (yych == '\r') goto yy219;
3495
0
yy217:
3496
0
    YYDEBUG(217, *YYCURSOR);
3497
0
    yyleng = YYCURSOR - SCNG(yy_text);
3498
0
#line 398 "Zend/zend_ini_scanner.l"
3499
0
    { /* End of section */
3500
0
  BEGIN(INITIAL);
3501
0
  SCNG(lineno)++;
3502
0
  return ']';
3503
0
}
3504
0
#line 3505 "Zend/zend_ini_scanner.c"
3505
0
yy218:
3506
0
    YYDEBUG(218, *YYCURSOR);
3507
0
    ++YYCURSOR;
3508
0
    goto yy217;
3509
0
yy219:
3510
0
    YYDEBUG(219, *YYCURSOR);
3511
0
    yych = *++YYCURSOR;
3512
0
    if (yych == '\n') goto yy218;
3513
0
    goto yy217;
3514
0
  }
3515
/* *********************************** */
3516
485
yyc_ST_DOUBLE_QUOTES:
3517
485
  {
3518
485
    static const unsigned char yybm[] = {
3519
485
        0,   0,   0,   0,   0,   0,   0,   0, 
3520
485
        0, 128,   0,   0,   0,   0,   0,   0, 
3521
485
        0,   0,   0,   0,   0,   0,   0,   0, 
3522
485
        0,   0,   0,   0,   0,   0,   0,   0, 
3523
485
      128,   0,   0,   0,   0,   0,   0,   0, 
3524
485
        0,   0,   0,   0,   0,   0,   0,   0, 
3525
485
        0,   0,   0,   0,   0,   0,   0,   0, 
3526
485
        0,   0,   0,   0,   0,   0,   0,   0, 
3527
485
        0,   0,   0,   0,   0,   0,   0,   0, 
3528
485
        0,   0,   0,   0,   0,   0,   0,   0, 
3529
485
        0,   0,   0,   0,   0,   0,   0,   0, 
3530
485
        0,   0,   0,   0,   0,   0,   0,   0, 
3531
485
        0,   0,   0,   0,   0,   0,   0,   0, 
3532
485
        0,   0,   0,   0,   0,   0,   0,   0, 
3533
485
        0,   0,   0,   0,   0,   0,   0,   0, 
3534
485
        0,   0,   0,   0,   0,   0,   0,   0, 
3535
485
        0,   0,   0,   0,   0,   0,   0,   0, 
3536
485
        0,   0,   0,   0,   0,   0,   0,   0, 
3537
485
        0,   0,   0,   0,   0,   0,   0,   0, 
3538
485
        0,   0,   0,   0,   0,   0,   0,   0, 
3539
485
        0,   0,   0,   0,   0,   0,   0,   0, 
3540
485
        0,   0,   0,   0,   0,   0,   0,   0, 
3541
485
        0,   0,   0,   0,   0,   0,   0,   0, 
3542
485
        0,   0,   0,   0,   0,   0,   0,   0, 
3543
485
        0,   0,   0,   0,   0,   0,   0,   0, 
3544
485
        0,   0,   0,   0,   0,   0,   0,   0, 
3545
485
        0,   0,   0,   0,   0,   0,   0,   0, 
3546
485
        0,   0,   0,   0,   0,   0,   0,   0, 
3547
485
        0,   0,   0,   0,   0,   0,   0,   0, 
3548
485
        0,   0,   0,   0,   0,   0,   0,   0, 
3549
485
        0,   0,   0,   0,   0,   0,   0,   0, 
3550
485
        0,   0,   0,   0,   0,   0,   0,   0, 
3551
485
    };
3552
485
    YYDEBUG(220, *YYCURSOR);
3553
485
    YYFILL(2);
3554
485
    yych = *YYCURSOR;
3555
485
    if (yych == '"') goto yy224;
3556
208
    if (yych == '$') goto yy227;
3557
193
    YYDEBUG(222, *YYCURSOR);
3558
193
    ++YYCURSOR;
3559
193
yy223:
3560
193
    YYDEBUG(223, *YYCURSOR);
3561
193
    yyleng = YYCURSOR - SCNG(yy_text);
3562
193
#line 620 "Zend/zend_ini_scanner.l"
3563
193
    { /* Escape double quoted string contents */
3564
193
  if (YYCURSOR > YYLIMIT) {
3565
0
    return 0;
3566
0
  }
3567
3568
193
  const unsigned char *s = SCNG(yy_text);
3569
3570
8.02k
  while (s < YYLIMIT) {
3571
8.01k
    switch (*s++) {
3572
165
      case '"':
3573
165
        break;
3574
17
      case '$':
3575
17
        if (s < YYLIMIT && *s == '{') {
3576
15
          break;
3577
15
        }
3578
2
        continue;
3579
18
      case '\\':
3580
18
        if (s < YYLIMIT) {
3581
18
          unsigned char escaped = *s++;
3582
          /* A special case for Windows paths, e.g. key="C:\path\" */
3583
18
          if (escaped == '"' && (s >= YYLIMIT || *s == '\n' || *s == '\r')) {
3584
0
            break;
3585
0
          }
3586
18
        }
3587
18
        ZEND_FALLTHROUGH;
3588
7.83k
      default:
3589
7.83k
        continue;
3590
8.01k
    }
3591
3592
180
    s--;
3593
180
    break;
3594
8.01k
  }
3595
3596
193
  YYCURSOR = s;
3597
193
  yyleng = YYCURSOR - SCNG(yy_text);
3598
3599
193
  zend_ini_escape_string(ini_lval, yytext, yyleng, '"');
3600
193
  Z_EXTRA_P(ini_lval) = 0;
3601
193
  return TC_QUOTED_STRING;
3602
193
}
3603
0
#line 3604 "Zend/zend_ini_scanner.c"
3604
299
yy224:
3605
299
    YYDEBUG(224, *YYCURSOR);
3606
299
    ++YYCURSOR;
3607
299
    YYFILL(1);
3608
299
    yych = *YYCURSOR;
3609
299
    YYDEBUG(225, *YYCURSOR);
3610
299
    if (yybm[0+yych] & 128) {
3611
22
      goto yy224;
3612
22
    }
3613
277
    YYDEBUG(226, *YYCURSOR);
3614
277
    yyleng = YYCURSOR - SCNG(yy_text);
3615
277
#line 615 "Zend/zend_ini_scanner.l"
3616
277
    { /* Double quoted '"' string ends */
3617
277
  yy_pop_state();
3618
277
  return '"';
3619
299
}
3620
0
#line 3621 "Zend/zend_ini_scanner.c"
3621
15
yy227:
3622
15
    YYDEBUG(227, *YYCURSOR);
3623
15
    yych = *++YYCURSOR;
3624
15
    if (yych != '{') goto yy223;
3625
15
    YYDEBUG(228, *YYCURSOR);
3626
15
    ++YYCURSOR;
3627
15
    YYDEBUG(229, *YYCURSOR);
3628
15
    yyleng = YYCURSOR - SCNG(yy_text);
3629
15
#line 422 "Zend/zend_ini_scanner.l"
3630
15
    { /* Variable start */
3631
15
  yy_push_state(ST_VARNAME);
3632
15
  return TC_DOLLAR_CURLY;
3633
15
}
3634
15
#line 3635 "Zend/zend_ini_scanner.c"
3635
15
  }
3636
/* *********************************** */
3637
148
yyc_ST_VAR_FALLBACK:
3638
148
  {
3639
148
    static const unsigned char yybm[] = {
3640
148
        8,   8,   8,   8,   8,   8,   8,   8, 
3641
148
        8,  24,   0,   8,   8,   0,   8,   8, 
3642
148
        8,   8,   8,   8,   8,   8,   8,   8, 
3643
148
        8,   8,   8,   8,   8,   8,   8,   8, 
3644
148
       24,   8,   0,   8, 128,   8,   8,   0, 
3645
148
        8,   8,   8,   8,   8,   8,   8,   8, 
3646
148
      104, 104, 104, 104, 104, 104, 104, 104, 
3647
148
      104, 104,   8,   0,   8,   8,   8,   8, 
3648
148
        8,  72,  72,  72,  72,  72,  72,  72, 
3649
148
       72,  72,  72,  72,  72,  72,  72,  72, 
3650
148
       72,  72,  72,  72,  72,  72,  72,  72, 
3651
148
       72,  72,  72,   8, 128,   8,   8,  72, 
3652
148
        8,  72,  72,  72,  72,  72,  72,  72, 
3653
148
       72,  72,  72,  72,  72,  72,  72,  72, 
3654
148
       72,  72,  72,  72,  72,  72,  72,  72, 
3655
148
       72,  72,  72,   8,   8,   0,   8,   8, 
3656
148
        8,   8,   8,   8,   8,   8,   8,   8, 
3657
148
        8,   8,   8,   8,   8,   8,   8,   8, 
3658
148
        8,   8,   8,   8,   8,   8,   8,   8, 
3659
148
        8,   8,   8,   8,   8,   8,   8,   8, 
3660
148
        8,   8,   8,   8,   8,   8,   8,   8, 
3661
148
        8,   8,   8,   8,   8,   8,   8,   8, 
3662
148
        8,   8,   8,   8,   8,   8,   8,   8, 
3663
148
        8,   8,   8,   8,   8,   8,   8,   8, 
3664
148
        8,   8,   8,   8,   8,   8,   8,   8, 
3665
148
        8,   8,   8,   8,   8,   8,   8,   8, 
3666
148
        8,   8,   8,   8,   8,   8,   8,   8, 
3667
148
        8,   8,   8,   8,   8,   8,   8,   8, 
3668
148
        8,   8,   8,   8,   8,   8,   8,   8, 
3669
148
        8,   8,   8,   8,   8,   8,   8,   8, 
3670
148
        8,   8,   8,   8,   8,   8,   8,   8, 
3671
148
        8,   8,   8,   8,   8,   8,   8,   8, 
3672
148
    };
3673
148
    YYDEBUG(230, *YYCURSOR);
3674
148
    YYFILL(2);
3675
148
    yych = *YYCURSOR;
3676
148
    if (yybm[0+yych] & 16) {
3677
0
      goto yy235;
3678
0
    }
3679
148
    if (yych <= '/') {
3680
54
      if (yych <= '"') {
3681
14
        if (yych <= '\f') {
3682
0
          if (yych <= 0x08) goto yy232;
3683
0
          if (yych <= '\n') goto yy237;
3684
14
        } else {
3685
14
          if (yych <= '\r') goto yy237;
3686
14
          if (yych >= '"') goto yy239;
3687
14
        }
3688
40
      } else {
3689
40
        if (yych <= '&') {
3690
40
          if (yych == '$') goto yy241;
3691
40
        } else {
3692
0
          if (yych <= '\'') goto yy237;
3693
0
          if (yych <= ',') goto yy232;
3694
0
          if (yych <= '.') goto yy242;
3695
0
        }
3696
40
      }
3697
94
    } else {
3698
94
      if (yych <= '\\') {
3699
29
        if (yych <= ';') {
3700
0
          if (yych <= '9') goto yy243;
3701
0
          if (yych >= ';') goto yy237;
3702
29
        } else {
3703
29
          if (yych <= '@') goto yy232;
3704
29
          if (yych <= 'Z') goto yy246;
3705
0
          if (yych >= '\\') goto yy249;
3706
0
        }
3707
65
      } else {
3708
65
        if (yych <= '`') {
3709
0
          if (yych == '_') goto yy246;
3710
65
        } else {
3711
65
          if (yych <= 'z') goto yy246;
3712
40
          if (yych == '}') goto yy250;
3713
40
        }
3714
65
      }
3715
94
    }
3716
655
yy232:
3717
655
    YYDEBUG(232, *YYCURSOR);
3718
655
    yyaccept = 0;
3719
655
    YYMARKER = ++YYCURSOR;
3720
655
    YYFILL(1);
3721
655
    yych = *YYCURSOR;
3722
655
yy233:
3723
655
    YYDEBUG(233, *YYCURSOR);
3724
655
    if (yybm[0+yych] & 8) {
3725
590
      goto yy232;
3726
590
    }
3727
65
    if (yych <= '"') goto yy234;
3728
65
    if (yych <= '$') goto yy252;
3729
25
    if (yych <= ';') goto yy234;
3730
25
    if (yych <= '\\') goto yy249;
3731
60
yy234:
3732
60
    YYDEBUG(234, *YYCURSOR);
3733
60
    yyleng = YYCURSOR - SCNG(yy_text);
3734
60
#line 602 "Zend/zend_ini_scanner.l"
3735
60
    { /* Same as below, but excluding '}' */
3736
60
  RETURN_TOKEN(TC_STRING, yytext, yyleng);
3737
0
}
3738
0
#line 3739 "Zend/zend_ini_scanner.c"
3739
0
yy235:
3740
0
    YYDEBUG(235, *YYCURSOR);
3741
0
    yyaccept = 0;
3742
0
    YYMARKER = ++YYCURSOR;
3743
0
    YYFILL(1);
3744
0
    yych = *YYCURSOR;
3745
0
    YYDEBUG(236, *YYCURSOR);
3746
0
    if (yybm[0+yych] & 16) {
3747
0
      goto yy235;
3748
0
    }
3749
0
    if (yych <= '$') {
3750
0
      if (yych <= '\r') {
3751
0
        if (yych <= 0x08) goto yy232;
3752
0
        if (yych <= '\n') goto yy234;
3753
0
        if (yych <= '\f') goto yy232;
3754
0
        goto yy234;
3755
0
      } else {
3756
0
        if (yych == '"') goto yy239;
3757
0
        if (yych <= '#') goto yy232;
3758
0
        goto yy252;
3759
0
      }
3760
0
    } else {
3761
0
      if (yych <= ';') {
3762
0
        if (yych == '\'') goto yy234;
3763
0
        if (yych <= ':') goto yy232;
3764
0
        goto yy234;
3765
0
      } else {
3766
0
        if (yych <= '\\') {
3767
0
          if (yych <= '[') goto yy232;
3768
0
          goto yy249;
3769
0
        } else {
3770
0
          if (yych == '}') goto yy234;
3771
0
          goto yy232;
3772
0
        }
3773
0
      }
3774
0
    }
3775
0
yy237:
3776
0
    YYDEBUG(237, *YYCURSOR);
3777
0
    ++YYCURSOR;
3778
0
yy238:
3779
0
    YYDEBUG(238, *YYCURSOR);
3780
0
    yyleng = YYCURSOR - SCNG(yy_text);
3781
0
#line 686 "Zend/zend_ini_scanner.l"
3782
0
    {
3783
0
  return 0;
3784
0
}
3785
0
#line 3786 "Zend/zend_ini_scanner.c"
3786
14
yy239:
3787
14
    YYDEBUG(239, *YYCURSOR);
3788
14
    ++YYCURSOR;
3789
14
    YYDEBUG(240, *YYCURSOR);
3790
14
    yyleng = YYCURSOR - SCNG(yy_text);
3791
14
#line 610 "Zend/zend_ini_scanner.l"
3792
14
    { /* Double quoted '"' string start */
3793
14
  yy_push_state(ST_DOUBLE_QUOTES);
3794
14
  return '"';
3795
0
}
3796
0
#line 3797 "Zend/zend_ini_scanner.c"
3797
40
yy241:
3798
40
    YYDEBUG(241, *YYCURSOR);
3799
40
    yych = *++YYCURSOR;
3800
40
    if (yych <= '\\') {
3801
0
      if (yych <= 0x00) goto yy238;
3802
0
      if (yych <= '[') goto yy232;
3803
0
      goto yy254;
3804
40
    } else {
3805
40
      if (yych == '{') goto yy256;
3806
0
      goto yy232;
3807
40
    }
3808
0
yy242:
3809
0
    YYDEBUG(242, *YYCURSOR);
3810
0
    yyaccept = 0;
3811
0
    yych = *(YYMARKER = ++YYCURSOR);
3812
0
    if (yych <= '/') goto yy233;
3813
0
    if (yych <= '9') goto yy258;
3814
0
    goto yy233;
3815
0
yy243:
3816
0
    YYDEBUG(243, *YYCURSOR);
3817
0
    yyaccept = 1;
3818
0
    YYMARKER = ++YYCURSOR;
3819
0
    YYFILL(1);
3820
0
    yych = *YYCURSOR;
3821
0
    YYDEBUG(244, *YYCURSOR);
3822
0
    if (yybm[0+yych] & 32) {
3823
0
      goto yy243;
3824
0
    }
3825
0
    if (yych <= '&') {
3826
0
      if (yych <= '\r') {
3827
0
        if (yych == '\n') goto yy245;
3828
0
        if (yych <= '\f') goto yy232;
3829
0
      } else {
3830
0
        if (yych <= '"') {
3831
0
          if (yych <= '!') goto yy232;
3832
0
        } else {
3833
0
          if (yych == '$') goto yy252;
3834
0
          goto yy232;
3835
0
        }
3836
0
      }
3837
0
    } else {
3838
0
      if (yych <= ';') {
3839
0
        if (yych <= '-') {
3840
0
          if (yych >= '(') goto yy232;
3841
0
        } else {
3842
0
          if (yych <= '.') goto yy258;
3843
0
          if (yych <= ':') goto yy232;
3844
0
        }
3845
0
      } else {
3846
0
        if (yych <= '\\') {
3847
0
          if (yych <= '[') goto yy232;
3848
0
          goto yy249;
3849
0
        } else {
3850
0
          if (yych != '}') goto yy232;
3851
0
        }
3852
0
      }
3853
0
    }
3854
0
yy245:
3855
0
    YYDEBUG(245, *YYCURSOR);
3856
0
    yyleng = YYCURSOR - SCNG(yy_text);
3857
0
#line 580 "Zend/zend_ini_scanner.l"
3858
0
    { /* Get number option value as string */
3859
0
  RETURN_TOKEN(TC_NUMBER, yytext, yyleng);
3860
0
}
3861
0
#line 3862 "Zend/zend_ini_scanner.c"
3862
112
yy246:
3863
112
    YYDEBUG(246, *YYCURSOR);
3864
112
    yyaccept = 2;
3865
112
    YYMARKER = ++YYCURSOR;
3866
112
    YYFILL(1);
3867
112
    yych = *YYCURSOR;
3868
112
    YYDEBUG(247, *YYCURSOR);
3869
112
    if (yybm[0+yych] & 64) {
3870
58
      goto yy246;
3871
58
    }
3872
54
    if (yych <= '$') {
3873
29
      if (yych <= '\r') {
3874
15
        if (yych == '\n') goto yy248;
3875
15
        if (yych <= '\f') goto yy232;
3876
15
      } else {
3877
14
        if (yych == '"') goto yy248;
3878
0
        if (yych <= '#') goto yy232;
3879
0
        goto yy252;
3880
0
      }
3881
29
    } else {
3882
25
      if (yych <= ';') {
3883
0
        if (yych == '\'') goto yy248;
3884
0
        if (yych <= ':') goto yy232;
3885
25
      } else {
3886
25
        if (yych <= '\\') {
3887
0
          if (yych <= '[') goto yy232;
3888
0
          goto yy249;
3889
25
        } else {
3890
25
          if (yych != '}') goto yy232;
3891
25
        }
3892
25
      }
3893
25
    }
3894
14
yy248:
3895
14
    YYDEBUG(248, *YYCURSOR);
3896
14
    yyleng = YYCURSOR - SCNG(yy_text);
3897
14
#line 576 "Zend/zend_ini_scanner.l"
3898
14
    { /* Get constant option value */
3899
14
  RETURN_TOKEN(TC_CONSTANT, yytext, yyleng);
3900
0
}
3901
0
#line 3902 "Zend/zend_ini_scanner.c"
3902
5
yy249:
3903
5
    YYDEBUG(249, *YYCURSOR);
3904
5
    ++YYCURSOR;
3905
5
    YYFILL(1);
3906
5
    yych = *YYCURSOR;
3907
5
    goto yy232;
3908
20
yy250:
3909
20
    YYDEBUG(250, *YYCURSOR);
3910
20
    ++YYCURSOR;
3911
20
    YYDEBUG(251, *YYCURSOR);
3912
20
    yyleng = YYCURSOR - SCNG(yy_text);
3913
20
#line 486 "Zend/zend_ini_scanner.l"
3914
20
    { /* Variable/fallback end */
3915
20
  yy_pop_state();
3916
20
  return '}';
3917
5
}
3918
0
#line 3919 "Zend/zend_ini_scanner.c"
3919
40
yy252:
3920
40
    YYDEBUG(252, *YYCURSOR);
3921
40
    ++YYCURSOR;
3922
40
    YYFILL(1);
3923
40
    yych = *YYCURSOR;
3924
40
    if (yych <= '\\') {
3925
0
      if (yych <= 0x00) goto yy253;
3926
0
      if (yych <= '[') goto yy232;
3927
0
      goto yy254;
3928
40
    } else {
3929
40
      if (yych != '{') goto yy232;
3930
40
    }
3931
40
yy253:
3932
40
    YYDEBUG(253, *YYCURSOR);
3933
40
    YYCURSOR = YYMARKER;
3934
40
    if (yyaccept <= 1) {
3935
40
      if (yyaccept == 0) {
3936
40
        goto yy234;
3937
40
      } else {
3938
0
        goto yy245;
3939
0
      }
3940
40
    } else {
3941
0
      goto yy248;
3942
0
    }
3943
0
yy254:
3944
0
    YYDEBUG(254, *YYCURSOR);
3945
0
    ++YYCURSOR;
3946
0
    YYFILL(1);
3947
0
    yych = *YYCURSOR;
3948
0
    YYDEBUG(255, *YYCURSOR);
3949
0
    if (yybm[0+yych] & 128) {
3950
0
      goto yy254;
3951
0
    }
3952
0
    goto yy232;
3953
40
yy256:
3954
40
    YYDEBUG(256, *YYCURSOR);
3955
40
    ++YYCURSOR;
3956
40
    YYDEBUG(257, *YYCURSOR);
3957
40
    yyleng = YYCURSOR - SCNG(yy_text);
3958
40
#line 422 "Zend/zend_ini_scanner.l"
3959
40
    { /* Variable start */
3960
40
  yy_push_state(ST_VARNAME);
3961
40
  return TC_DOLLAR_CURLY;
3962
0
}
3963
0
#line 3964 "Zend/zend_ini_scanner.c"
3964
0
yy258:
3965
0
    YYDEBUG(258, *YYCURSOR);
3966
0
    yyaccept = 1;
3967
0
    YYMARKER = ++YYCURSOR;
3968
0
    YYFILL(1);
3969
0
    yych = *YYCURSOR;
3970
0
    YYDEBUG(259, *YYCURSOR);
3971
0
    if (yych <= '&') {
3972
0
      if (yych <= '\r') {
3973
0
        if (yych == '\n') goto yy245;
3974
0
        if (yych <= '\f') goto yy232;
3975
0
        goto yy245;
3976
0
      } else {
3977
0
        if (yych <= '"') {
3978
0
          if (yych <= '!') goto yy232;
3979
0
          goto yy245;
3980
0
        } else {
3981
0
          if (yych == '$') goto yy252;
3982
0
          goto yy232;
3983
0
        }
3984
0
      }
3985
0
    } else {
3986
0
      if (yych <= ';') {
3987
0
        if (yych <= '/') {
3988
0
          if (yych <= '\'') goto yy245;
3989
0
          goto yy232;
3990
0
        } else {
3991
0
          if (yych <= '9') goto yy258;
3992
0
          if (yych <= ':') goto yy232;
3993
0
          goto yy245;
3994
0
        }
3995
0
      } else {
3996
0
        if (yych <= '\\') {
3997
0
          if (yych <= '[') goto yy232;
3998
0
          goto yy249;
3999
0
        } else {
4000
0
          if (yych == '}') goto yy245;
4001
0
          goto yy232;
4002
0
        }
4003
0
      }
4004
0
    }
4005
0
  }
4006
/* *********************************** */
4007
114
yyc_ST_VARNAME:
4008
114
  YYDEBUG(260, *YYCURSOR);
4009
114
  YYFILL(2);
4010
114
  yych = *YYCURSOR;
4011
114
  if (yych <= ')') {
4012
2
    if (yych <= ' ') {
4013
2
      if (yych <= '\n') {
4014
2
        if (yych <= 0x00) goto yy262;
4015
2
        if (yych <= 0x08) goto yy264;
4016
2
      } else {
4017
0
        if (yych != '\r') goto yy264;
4018
0
      }
4019
2
    } else {
4020
0
      if (yych <= '$') {
4021
0
        if (yych == '#') goto yy264;
4022
0
      } else {
4023
0
        if (yych == '&') goto yy262;
4024
0
        if (yych <= '\'') goto yy264;
4025
0
      }
4026
0
    }
4027
112
  } else {
4028
112
    if (yych <= '[') {
4029
56
      if (yych <= ';') {
4030
54
        if (yych <= '9') goto yy264;
4031
54
        if (yych <= ':') goto yy266;
4032
54
      } else {
4033
2
        if (yych == '=') goto yy262;
4034
2
        if (yych <= 'Z') goto yy264;
4035
2
      }
4036
56
    } else {
4037
56
      if (yych <= 'z') {
4038
55
        if (yych <= '\\') goto yy264;
4039
55
        if (yych >= '_') goto yy264;
4040
55
      } else {
4041
1
        if (yych == '}') goto yy267;
4042
1
        if (yych >= 0x7F) goto yy264;
4043
1
      }
4044
56
    }
4045
112
  }
4046
3
yy262:
4047
3
  YYDEBUG(262, *YYCURSOR);
4048
3
  ++YYCURSOR;
4049
3
  YYDEBUG(263, *YYCURSOR);
4050
3
  yyleng = YYCURSOR - SCNG(yy_text);
4051
3
#line 686 "Zend/zend_ini_scanner.l"
4052
3
  {
4053
3
  return 0;
4054
114
}
4055
0
#line 4056 "Zend/zend_ini_scanner.c"
4056
57
yy264:
4057
57
  YYDEBUG(264, *YYCURSOR);
4058
57
  ++YYCURSOR;
4059
57
yy265:
4060
57
  YYDEBUG(265, *YYCURSOR);
4061
57
  yyleng = YYCURSOR - SCNG(yy_text);
4062
57
#line 434 "Zend/zend_ini_scanner.l"
4063
57
  { /* Variable name */
4064
57
  if (YYCURSOR[0] == ':' && YYCURSOR[1] == '-') {
4065
0
    YYCURSOR++;
4066
0
    goto fallback_lexing;
4067
0
  }
4068
4069
122
  while (YYCURSOR < YYLIMIT) {
4070
122
    switch (*YYCURSOR++) {
4071
0
      case '=':
4072
2
      case '\n':
4073
2
      case '\r':
4074
2
      case '\t':
4075
2
      case ';':
4076
2
      case '&':
4077
2
      case '|':
4078
2
      case '^':
4079
2
      case '$':
4080
3
      case '~':
4081
3
      case '(':
4082
3
      case ')':
4083
3
      case '{':
4084
3
      case '}':
4085
3
      case '!':
4086
3
      case '"':
4087
3
      case '[':
4088
3
      case ']':
4089
3
        break;
4090
      /* ':' is only allowed if it isn't followed by '-'. */
4091
55
      case ':':
4092
55
        if (YYCURSOR[0] == '-') {
4093
54
          break;
4094
54
        } else {
4095
1
          continue;
4096
1
        }
4097
64
      default:
4098
64
        continue;
4099
122
    }
4100
4101
57
    YYCURSOR--;
4102
57
    yyleng = YYCURSOR - SCNG(yy_text);
4103
57
    break;
4104
122
  }
4105
4106
  /* Eat leading whitespace */
4107
57
  EAT_LEADING_WHITESPACE();
4108
4109
  /* Eat trailing whitespace */
4110
57
  EAT_TRAILING_WHITESPACE();
4111
4112
57
  RETURN_TOKEN(TC_VARNAME, yytext, yyleng);
4113
0
}
4114
0
#line 4115 "Zend/zend_ini_scanner.c"
4115
54
yy266:
4116
54
  YYDEBUG(266, *YYCURSOR);
4117
54
  yych = *++YYCURSOR;
4118
54
  if (yych == '-') goto yy269;
4119
0
  goto yy265;
4120
0
yy267:
4121
0
  YYDEBUG(267, *YYCURSOR);
4122
0
  ++YYCURSOR;
4123
0
  YYDEBUG(268, *YYCURSOR);
4124
0
  yyleng = YYCURSOR - SCNG(yy_text);
4125
0
#line 486 "Zend/zend_ini_scanner.l"
4126
0
  { /* Variable/fallback end */
4127
0
  yy_pop_state();
4128
0
  return '}';
4129
54
}
4130
0
#line 4131 "Zend/zend_ini_scanner.c"
4131
54
yy269:
4132
54
  YYDEBUG(269, *YYCURSOR);
4133
54
  ++YYCURSOR;
4134
54
  YYDEBUG(270, *YYCURSOR);
4135
54
  yyleng = YYCURSOR - SCNG(yy_text);
4136
54
#line 427 "Zend/zend_ini_scanner.l"
4137
54
  { /* End Variable name, fallback start */
4138
54
fallback_lexing:
4139
54
  yy_pop_state();
4140
54
  yy_push_state(ST_VAR_FALLBACK);
4141
54
  return TC_FALLBACK;
4142
54
}
4143
0
#line 4144 "Zend/zend_ini_scanner.c"
4144
/* *********************************** */
4145
952
yyc_ST_RAW:
4146
952
  {
4147
952
    static const unsigned char yybm[] = {
4148
952
       64,  64,  64,  64,  64,  64,  64,  64, 
4149
952
       64, 192,   0,  64,  64,   0,  64,  64, 
4150
952
       64,  64,  64,  64,  64,  64,  64,  64, 
4151
952
       64,  64,  64,  64,  64,  64,  64,  64, 
4152
952
      192,  64,  64,  64,  64,  64,  64,  64, 
4153
952
       64,  64,  64,  64,  64,  64,  64,  64, 
4154
952
       64,  64,  64,  64,  64,  64,  64,  64, 
4155
952
       64,  64,  64,  64,  64,  64,  64,  64, 
4156
952
       64,  64,  64,  64,  64,  64,  64,  64, 
4157
952
       64,  64,  64,  64,  64,  64,  64,  64, 
4158
952
       64,  64,  64,  64,  64,  64,  64,  64, 
4159
952
       64,  64,  64,  64,  64,  64,  64,  64, 
4160
952
       64,  64,  64,  64,  64,  64,  64,  64, 
4161
952
       64,  64,  64,  64,  64,  64,  64,  64, 
4162
952
       64,  64,  64,  64,  64,  64,  64,  64, 
4163
952
       64,  64,  64,  64,  64,  64,  64,  64, 
4164
952
       64,  64,  64,  64,  64,  64,  64,  64, 
4165
952
       64,  64,  64,  64,  64,  64,  64,  64, 
4166
952
       64,  64,  64,  64,  64,  64,  64,  64, 
4167
952
       64,  64,  64,  64,  64,  64,  64,  64, 
4168
952
       64,  64,  64,  64,  64,  64,  64,  64, 
4169
952
       64,  64,  64,  64,  64,  64,  64,  64, 
4170
952
       64,  64,  64,  64,  64,  64,  64,  64, 
4171
952
       64,  64,  64,  64,  64,  64,  64,  64, 
4172
952
       64,  64,  64,  64,  64,  64,  64,  64, 
4173
952
       64,  64,  64,  64,  64,  64,  64,  64, 
4174
952
       64,  64,  64,  64,  64,  64,  64,  64, 
4175
952
       64,  64,  64,  64,  64,  64,  64,  64, 
4176
952
       64,  64,  64,  64,  64,  64,  64,  64, 
4177
952
       64,  64,  64,  64,  64,  64,  64,  64, 
4178
952
       64,  64,  64,  64,  64,  64,  64,  64, 
4179
952
       64,  64,  64,  64,  64,  64,  64,  64, 
4180
952
    };
4181
952
    YYDEBUG(271, *YYCURSOR);
4182
952
    YYFILL(3);
4183
952
    yych = *YYCURSOR;
4184
952
    if (yych <= '\f') {
4185
451
      if (yych <= 0x08) {
4186
0
        if (yych >= 0x01) goto yy275;
4187
451
      } else {
4188
451
        if (yych <= '\t') goto yy277;
4189
451
        if (yych <= '\n') goto yy278;
4190
0
        goto yy275;
4191
451
      }
4192
501
    } else {
4193
501
      if (yych <= ' ') {
4194
28
        if (yych <= '\r') goto yy280;
4195
19
        if (yych <= 0x1F) goto yy275;
4196
0
        goto yy277;
4197
473
      } else {
4198
473
        if (yych == ';') goto yy281;
4199
463
        goto yy275;
4200
473
      }
4201
501
    }
4202
0
    YYDEBUG(273, *YYCURSOR);
4203
0
    ++YYCURSOR;
4204
0
    YYDEBUG(274, *YYCURSOR);
4205
0
    yyleng = YYCURSOR - SCNG(yy_text);
4206
0
#line 681 "Zend/zend_ini_scanner.l"
4207
0
    { /* End of option value (if EOF is reached before EOL */
4208
0
  BEGIN(INITIAL);
4209
0
  return END_OF_LINE;
4210
952
}
4211
0
#line 4212 "Zend/zend_ini_scanner.c"
4212
482
yy275:
4213
482
    YYDEBUG(275, *YYCURSOR);
4214
482
    ++YYCURSOR;
4215
482
yy276:
4216
482
    YYDEBUG(276, *YYCURSOR);
4217
482
    yyleng = YYCURSOR - SCNG(yy_text);
4218
482
#line 522 "Zend/zend_ini_scanner.l"
4219
482
    { /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */
4220
482
  const unsigned char *sc = NULL;
4221
482
  EAT_LEADING_WHITESPACE();
4222
6.97k
  while (YYCURSOR < YYLIMIT) {
4223
6.95k
    switch (*YYCURSOR) {
4224
451
      case '\n':
4225
460
      case '\r':
4226
460
        goto end_raw_value_chars;
4227
0
        break;
4228
409
      case ';':
4229
409
        if (sc == NULL) {
4230
399
          sc = YYCURSOR;
4231
399
        }
4232
409
        YYCURSOR++;
4233
409
        break;
4234
215
      case '"':
4235
215
        if (yytext[0] == '"') {
4236
45
          sc = NULL;
4237
45
        }
4238
215
        YYCURSOR++;
4239
215
        break;
4240
5.87k
      default:
4241
5.87k
        YYCURSOR++;
4242
5.87k
        break;
4243
6.95k
    }
4244
6.95k
  }
4245
482
end_raw_value_chars:
4246
482
  if (sc) {
4247
377
    yyleng = sc - SCNG(yy_text);
4248
377
  } else {
4249
105
    yyleng = YYCURSOR - SCNG(yy_text);
4250
105
  }
4251
4252
482
  EAT_TRAILING_WHITESPACE();
4253
4254
  /* Eat leading and trailing double quotes */
4255
482
  if (yyleng > 1 && yytext[0] == '"' && yytext[yyleng - 1] == '"') {
4256
37
    SCNG(yy_text)++;
4257
37
    yyleng = yyleng - 2;
4258
37
  }
4259
4260
482
  RETURN_TOKEN(TC_RAW, yytext, yyleng);
4261
0
}
4262
0
#line 4263 "Zend/zend_ini_scanner.c"
4263
0
yy277:
4264
0
    YYDEBUG(277, *YYCURSOR);
4265
0
    yych = *++YYCURSOR;
4266
0
    if (yych <= '\r') {
4267
0
      if (yych <= 0x08) goto yy276;
4268
0
      if (yych <= '\n') goto yy284;
4269
0
      if (yych <= '\f') goto yy276;
4270
0
      goto yy284;
4271
0
    } else {
4272
0
      if (yych <= ' ') {
4273
0
        if (yych <= 0x1F) goto yy276;
4274
0
        goto yy284;
4275
0
      } else {
4276
0
        if (yych == ';') goto yy284;
4277
0
        goto yy276;
4278
0
      }
4279
0
    }
4280
451
yy278:
4281
451
    YYDEBUG(278, *YYCURSOR);
4282
451
    ++YYCURSOR;
4283
460
yy279:
4284
460
    YYDEBUG(279, *YYCURSOR);
4285
460
    yyleng = YYCURSOR - SCNG(yy_text);
4286
460
#line 570 "Zend/zend_ini_scanner.l"
4287
460
    { /* End of option value */
4288
460
  BEGIN(INITIAL);
4289
460
  SCNG(lineno)++;
4290
460
  return END_OF_LINE;
4291
451
}
4292
0
#line 4293 "Zend/zend_ini_scanner.c"
4293
9
yy280:
4294
9
    YYDEBUG(280, *YYCURSOR);
4295
9
    yych = *++YYCURSOR;
4296
9
    if (yych == '\n') goto yy278;
4297
9
    goto yy279;
4298
100
yy281:
4299
100
    YYDEBUG(281, *YYCURSOR);
4300
100
    ++YYCURSOR;
4301
100
    YYFILL(2);
4302
100
    yych = *YYCURSOR;
4303
100
    YYDEBUG(282, *YYCURSOR);
4304
100
    if (yybm[0+yych] & 64) {
4305
90
      goto yy281;
4306
90
    }
4307
10
    if (yych <= '\n') goto yy286;
4308
0
    goto yy288;
4309
0
yy283:
4310
0
    YYDEBUG(283, *YYCURSOR);
4311
0
    ++YYCURSOR;
4312
0
    YYFILL(2);
4313
0
    yych = *YYCURSOR;
4314
0
yy284:
4315
0
    YYDEBUG(284, *YYCURSOR);
4316
0
    if (yybm[0+yych] & 128) {
4317
0
      goto yy283;
4318
0
    }
4319
0
    if (yych <= '\f') {
4320
0
      if (yych <= 0x08) goto yy285;
4321
0
      if (yych <= '\n') goto yy278;
4322
0
    } else {
4323
0
      if (yych <= '\r') goto yy280;
4324
0
      if (yych == ';') goto yy281;
4325
0
    }
4326
0
yy285:
4327
0
    YYDEBUG(285, *YYCURSOR);
4328
0
    yyleng = YYCURSOR - SCNG(yy_text);
4329
0
#line 665 "Zend/zend_ini_scanner.l"
4330
0
    {
4331
  /* eat whitespace */
4332
0
  goto restart;
4333
0
}
4334
0
#line 4335 "Zend/zend_ini_scanner.c"
4335
10
yy286:
4336
10
    YYDEBUG(286, *YYCURSOR);
4337
10
    ++YYCURSOR;
4338
10
yy287:
4339
10
    YYDEBUG(287, *YYCURSOR);
4340
10
    yyleng = YYCURSOR - SCNG(yy_text);
4341
10
#line 675 "Zend/zend_ini_scanner.l"
4342
10
    { /* Comment */
4343
10
  BEGIN(INITIAL);
4344
10
  SCNG(lineno)++;
4345
10
  return END_OF_LINE;
4346
10
}
4347
0
#line 4348 "Zend/zend_ini_scanner.c"
4348
0
yy288:
4349
0
    YYDEBUG(288, *YYCURSOR);
4350
0
    yych = *++YYCURSOR;
4351
0
    if (yych == '\n') goto yy286;
4352
0
    goto yy287;
4353
0
  }
4354
0
}
4355
0
#line 690 "Zend/zend_ini_scanner.l"
4356
4357
0
}