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