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