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