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