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