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