From 5270ee1aef83a4cd17dc1175052ab3b9da94717a Mon Sep 17 00:00:00 2001 From: Tjerk Meesters Date: Mon, 1 Sep 2014 21:22:28 +0800 Subject: [PATCH] Making ini parser typed - Added ZEND_INI_SCANNER_TYPED mode for parse_ini_string() and parse_ini_file() - Added NULL_NULL token to separate it from BOOL_FALSE and BOOL_TRUE - Added zend_ini_copy_typed_value() function for zval initialisation - Updated RETURN_TOKEN() to observe scanner_mode --- Zend/zend_globals.h | 2 +- Zend/zend_ini_parser.y | 6 +- Zend/zend_ini_scanner.c | 9490 ++++++++++++++++---------------- Zend/zend_ini_scanner.h | 1 + Zend/zend_ini_scanner.l | 61 +- ext/standard/basic_functions.c | 1 + 6 files changed, 4890 insertions(+), 4671 deletions(-) diff --git a/Zend/zend_globals.h b/Zend/zend_globals.h index 31dd9af6197..f78d404dac8 100644 --- a/Zend/zend_globals.h +++ b/Zend/zend_globals.h @@ -283,7 +283,7 @@ struct _zend_ini_scanner_globals { char *filename; int lineno; - /* Modes are: ZEND_INI_SCANNER_NORMAL, ZEND_INI_SCANNER_RAW */ + /* Modes are: ZEND_INI_SCANNER_NORMAL, ZEND_INI_SCANNER_RAW, ZEND_INI_SCANNER_TYPED */ int scanner_mode; }; diff --git a/Zend/zend_ini_parser.y b/Zend/zend_ini_parser.y index 3823efd4130..e9ea36956d4 100644 --- a/Zend/zend_ini_parser.y +++ b/Zend/zend_ini_parser.y @@ -265,6 +265,7 @@ ZEND_API int zend_parse_ini_string(char *str, zend_bool unbuffered_errors, int s %token TC_QUOTED_STRING %token BOOL_TRUE %token BOOL_FALSE +%token NULL_NULL %token END_OF_LINE %token '=' ':' ',' '.' '"' '\'' '^' '+' '-' '/' '*' '%' '$' '~' '<' '>' '?' '@' '{' '}' %left '|' '&' '^' @@ -291,7 +292,7 @@ statement: #endif ZEND_INI_PARSER_CB(&$1, &$3, NULL, ZEND_INI_PARSER_ENTRY, ZEND_INI_PARSER_ARG TSRMLS_CC); free(Z_STRVAL($1)); - free(Z_STRVAL($3)); + zval_internal_dtor(&$3); } | TC_OFFSET option_offset ']' '=' string_or_value { #if DEBUG_CFG_PARSER @@ -300,7 +301,7 @@ statement: ZEND_INI_PARSER_CB(&$1, &$5, &$2, ZEND_INI_PARSER_POP_ENTRY, ZEND_INI_PARSER_ARG TSRMLS_CC); free(Z_STRVAL($1)); free(Z_STRVAL($2)); - free(Z_STRVAL($5)); + zval_internal_dtor(&$5); } | TC_LABEL { ZEND_INI_PARSER_CB(&$1, NULL, NULL, ZEND_INI_PARSER_ENTRY, ZEND_INI_PARSER_ARG TSRMLS_CC); free(Z_STRVAL($1)); } | END_OF_LINE @@ -315,6 +316,7 @@ string_or_value: expr { $$ = $1; } | BOOL_TRUE { $$ = $1; } | BOOL_FALSE { $$ = $1; } + | NULL_NULL { $$ = $1; } | END_OF_LINE { zend_ini_init_string(&$$); } ; diff --git a/Zend/zend_ini_scanner.c b/Zend/zend_ini_scanner.c index c73f3ceddae..97f664ad3bd 100644 --- a/Zend/zend_ini_scanner.c +++ b/Zend/zend_ini_scanner.c @@ -1,4663 +1,4827 @@ -/* Generated by re2c 0.13.5 */ -#line 1 "Zend/zend_ini_scanner.l" -/* - +----------------------------------------------------------------------+ - | Zend Engine | - +----------------------------------------------------------------------+ - | Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) | - +----------------------------------------------------------------------+ - | This source file is subject to version 2.00 of the Zend license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.zend.com/license/2_00.txt. | - | If you did not receive a copy of the Zend license and are unable to | - | obtain it through the world-wide-web, please send a note to | - | license@zend.com so we can mail you a copy immediately. | - +----------------------------------------------------------------------+ - | Authors: Zeev Suraski | - | Jani Taskinen | - | Marcus Boerger | - | Nuno Lopes | - | Scott MacVicar | - +----------------------------------------------------------------------+ -*/ - -/* $Id$ */ - -#include -#include "zend.h" -#include "zend_globals.h" -#include -#include "zend_ini_scanner.h" - -#if 0 -# define YYDEBUG(s, c) printf("state: %d char: %c\n", s, c) -#else -# define YYDEBUG(s, c) -#endif - -#include "zend_ini_scanner_defs.h" - -#define YYCTYPE unsigned char -/* allow the scanner to read one null byte after the end of the string (from ZEND_MMAP_AHEAD) - * so that if will be able to terminate to match the current token (e.g. non-enclosed string) */ -#define YYFILL(n) { if (YYCURSOR > YYLIMIT) return 0; } -#define YYCURSOR SCNG(yy_cursor) -#define YYLIMIT SCNG(yy_limit) -#define YYMARKER SCNG(yy_marker) - -#define YYGETCONDITION() SCNG(yy_state) -#define YYSETCONDITION(s) SCNG(yy_state) = s - -#define STATE(name) yyc##name - -/* emulate flex constructs */ -#define BEGIN(state) YYSETCONDITION(STATE(state)) -#define YYSTATE YYGETCONDITION() -#define yytext ((char*)SCNG(yy_text)) -#define yyleng SCNG(yy_leng) -#define yyless(x) do { YYCURSOR = (unsigned char*)yytext + x; \ - yyleng = (unsigned int)x; } while(0) - -/* #define yymore() goto yymore_restart */ - -/* perform sanity check. If this message is triggered you should - increase the ZEND_MMAP_AHEAD value in the zend_streams.h file */ -#define YYMAXFILL 6 -#if ZEND_MMAP_AHEAD < (YYMAXFILL + 1) -# error ZEND_MMAP_AHEAD should be greater than YYMAXFILL -#endif - - -/* How it works (for the core ini directives): - * =========================================== - * - * 1. Scanner scans file for tokens and passes them to parser. - * 2. Parser parses the tokens and passes the name/value pairs to the callback - * function which stores them in the configuration hash table. - * 3. Later REGISTER_INI_ENTRIES() is called which triggers the actual - * registering of ini entries and uses zend_get_configuration_directive() - * to fetch the previously stored name/value pair from configuration hash table - * and registers the static ini entries which match the name to the value - * into EG(ini_directives) hash table. - * 4. PATH section entries are used per-request from down to top, each overriding - * previous if one exists. zend_alter_ini_entry() is called for each entry. - * Settings in PATH section are ZEND_INI_SYSTEM accessible and thus mimics the - * php_admin_* directives used within Apache httpd.conf when PHP is compiled as - * module for Apache. - * 5. User defined ini files (like .htaccess for apache) are parsed for each request and - * stored in separate hash defined by SAPI. - */ - -/* TODO: (ordered by importance :-) - * =============================================================================== - * - * - Separate constant lookup totally from plain strings (using CONSTANT pattern) - * - Add #if .. #else .. #endif and ==, !=, <, > , <=, >= operators - * - Add #include "some.ini" - * - Allow variables to refer to options also when using parse_ini_file() - * - */ - -/* Globals Macros */ -#define SCNG INI_SCNG -#ifdef ZTS -ZEND_API ts_rsrc_id ini_scanner_globals_id; -#else -ZEND_API zend_ini_scanner_globals ini_scanner_globals; -#endif - -/* Eat leading whitespace */ -#define EAT_LEADING_WHITESPACE() \ - while (yytext[0]) { \ - if (yytext[0] == ' ' || yytext[0] == '\t') { \ - SCNG(yy_text)++; \ - yyleng--; \ - } else { \ - break; \ - } \ - } - -/* Eat trailing whitespace + extra char */ -#define EAT_TRAILING_WHITESPACE_EX(ch) \ - while (yyleng > 0 && ( \ - (ch != 'X' && yytext[yyleng - 1] == ch) || \ - yytext[yyleng - 1] == '\n' || \ - yytext[yyleng - 1] == '\r' || \ - yytext[yyleng - 1] == '\t' || \ - yytext[yyleng - 1] == ' ') \ - ) { \ - yyleng--; \ - } - -/* Eat trailing whitespace */ -#define EAT_TRAILING_WHITESPACE() EAT_TRAILING_WHITESPACE_EX('X') - -#define zend_ini_copy_value(retval, str, len) { \ - Z_STRVAL_P(retval) = zend_strndup(str, len); \ - Z_STRLEN_P(retval) = len; \ - Z_TYPE_P(retval) = IS_STRING; \ -} - -#define RETURN_TOKEN(type, str, len) { \ - zend_ini_copy_value(ini_lval, str, len); \ - return type; \ -} - -static void _yy_push_state(int new_state TSRMLS_DC) -{ - zend_stack_push(&SCNG(state_stack), (void *) &YYGETCONDITION(), sizeof(int)); - YYSETCONDITION(new_state); -} - -#define yy_push_state(state_and_tsrm) _yy_push_state(yyc##state_and_tsrm) - -static void yy_pop_state(TSRMLS_D) -{ - int *stack_state; - zend_stack_top(&SCNG(state_stack), (void **) &stack_state); - YYSETCONDITION(*stack_state); - zend_stack_del_top(&SCNG(state_stack)); -} - -static void yy_scan_buffer(char *str, unsigned int len TSRMLS_DC) -{ - YYCURSOR = (YYCTYPE*)str; - SCNG(yy_start) = YYCURSOR; - YYLIMIT = YYCURSOR + len; -} - -#define ini_filename SCNG(filename) - -/* {{{ init_ini_scanner() -*/ -static int init_ini_scanner(int scanner_mode, zend_file_handle *fh TSRMLS_DC) -{ - /* Sanity check */ - if (scanner_mode != ZEND_INI_SCANNER_NORMAL && scanner_mode != ZEND_INI_SCANNER_RAW) { - zend_error(E_WARNING, "Invalid scanner mode"); - return FAILURE; - } - - SCNG(lineno) = 1; - SCNG(scanner_mode) = scanner_mode; - SCNG(yy_in) = fh; - - if (fh != NULL) { - ini_filename = zend_strndup(fh->filename, strlen(fh->filename)); - } else { - ini_filename = NULL; - } - - zend_stack_init(&SCNG(state_stack)); - BEGIN(INITIAL); - - return SUCCESS; -} -/* }}} */ - -/* {{{ shutdown_ini_scanner() -*/ -void shutdown_ini_scanner(TSRMLS_D) -{ - zend_stack_destroy(&SCNG(state_stack)); - if (ini_filename) { - free(ini_filename); - } -} -/* }}} */ - -/* {{{ zend_ini_scanner_get_lineno() -*/ -int zend_ini_scanner_get_lineno(TSRMLS_D) -{ - return SCNG(lineno); -} -/* }}} */ - -/* {{{ zend_ini_scanner_get_filename() -*/ -char *zend_ini_scanner_get_filename(TSRMLS_D) -{ - return ini_filename ? ini_filename : "Unknown"; -} -/* }}} */ - -/* {{{ zend_ini_open_file_for_scanning() -*/ -int zend_ini_open_file_for_scanning(zend_file_handle *fh, int scanner_mode TSRMLS_DC) -{ - char *buf; - size_t size; - - if (zend_stream_fixup(fh, &buf, &size TSRMLS_CC) == FAILURE) { - return FAILURE; - } - - if (init_ini_scanner(scanner_mode, fh TSRMLS_CC) == FAILURE) { - zend_file_handle_dtor(fh TSRMLS_CC); - return FAILURE; - } - - yy_scan_buffer(buf, size TSRMLS_CC); - - return SUCCESS; -} -/* }}} */ - -/* {{{ zend_ini_prepare_string_for_scanning() -*/ -int zend_ini_prepare_string_for_scanning(char *str, int scanner_mode TSRMLS_DC) -{ - int len = strlen(str); - - if (init_ini_scanner(scanner_mode, NULL TSRMLS_CC) == FAILURE) { - return FAILURE; - } - - yy_scan_buffer(str, len TSRMLS_CC); - - return SUCCESS; -} -/* }}} */ - -/* {{{ zend_ini_escape_string() - */ -static void zend_ini_escape_string(zval *lval, char *str, int len, char quote_type TSRMLS_DC) -{ - register char *s, *t; - char *end; - - zend_ini_copy_value(lval, str, len); - - /* convert escape sequences */ - s = t = Z_STRVAL_P(lval); - end = s + Z_STRLEN_P(lval); - - while (s < end) { - if (*s == '\\') { - s++; - if (s >= end) { - *t++ = '\\'; - continue; - } - switch (*s) { - case '"': - if (*s != quote_type) { - *t++ = '\\'; - *t++ = *s; - break; - } - case '\\': - case '$': - *t++ = *s; - Z_STRLEN_P(lval)--; - break; - default: - *t++ = '\\'; - *t++ = *s; - break; - } - } else { - *t++ = *s; - } - if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) { - SCNG(lineno)++; - } - s++; - } - *t = 0; -} -/* }}} */ - -int ini_lex(zval *ini_lval TSRMLS_DC) -{ -restart: - SCNG(yy_text) = YYCURSOR; - -/* yymore_restart: */ - /* detect EOF */ - if (YYCURSOR >= YYLIMIT) { - if (YYSTATE == STATE(ST_VALUE) || YYSTATE == STATE(ST_RAW)) { - BEGIN(INITIAL); - return END_OF_LINE; - } - return 0; - } - - /* Eat any UTF-8 BOM we find in the first 3 bytes */ - if (YYCURSOR == SCNG(yy_start) && YYCURSOR + 3 < YYLIMIT) { - if (memcmp(YYCURSOR, "\xef\xbb\xbf", 3) == 0) { - YYCURSOR += 3; - goto restart; - } - } - -#line 337 "Zend/zend_ini_scanner.c" -{ - YYCTYPE yych; - unsigned int yyaccept = 0; - if (YYGETCONDITION() < 4) { - if (YYGETCONDITION() < 2) { - if (YYGETCONDITION() < 1) { - goto yyc_INITIAL; - } else { - goto yyc_ST_OFFSET; - } - } else { - if (YYGETCONDITION() < 3) { - goto yyc_ST_SECTION_VALUE; - } else { - goto yyc_ST_VALUE; - } - } - } else { - if (YYGETCONDITION() < 6) { - if (YYGETCONDITION() < 5) { - goto yyc_ST_SECTION_RAW; - } else { - goto yyc_ST_DOUBLE_QUOTES; - } - } else { - if (YYGETCONDITION() < 7) { - goto yyc_ST_VARNAME; - } else { - goto yyc_ST_RAW; - } - } - } -/* *********************************** */ -yyc_INITIAL: - { - static const unsigned char yybm[] = { - 144, 144, 144, 144, 144, 144, 144, 144, - 144, 160, 0, 144, 144, 0, 144, 144, - 144, 144, 144, 144, 144, 144, 144, 144, - 144, 144, 144, 144, 144, 144, 144, 144, - 240, 128, 128, 144, 128, 144, 128, 144, - 128, 128, 144, 144, 144, 144, 144, 144, - 144, 144, 144, 144, 144, 144, 144, 144, - 144, 144, 144, 128, 144, 128, 144, 144, - 144, 144, 144, 144, 144, 144, 144, 144, - 144, 144, 144, 144, 144, 144, 144, 144, - 144, 144, 144, 144, 144, 144, 144, 144, - 144, 144, 144, 128, 144, 144, 128, 144, - 144, 144, 144, 144, 144, 144, 144, 144, - 144, 144, 144, 144, 144, 144, 144, 144, - 144, 144, 144, 144, 144, 144, 144, 144, - 144, 144, 144, 128, 128, 128, 128, 144, - 144, 144, 144, 144, 144, 144, 144, 144, - 144, 144, 144, 144, 144, 144, 144, 144, - 144, 144, 144, 144, 144, 144, 144, 144, - 144, 144, 144, 144, 144, 144, 144, 144, - 144, 144, 144, 144, 144, 144, 144, 144, - 144, 144, 144, 144, 144, 144, 144, 144, - 144, 144, 144, 144, 144, 144, 144, 144, - 144, 144, 144, 144, 144, 144, 144, 144, - 144, 144, 144, 144, 144, 144, 144, 144, - 144, 144, 144, 144, 144, 144, 144, 144, - 144, 144, 144, 144, 144, 144, 144, 144, - 144, 144, 144, 144, 144, 144, 144, 144, - 144, 144, 144, 144, 144, 144, 144, 144, - 144, 144, 144, 144, 144, 144, 144, 144, - 144, 144, 144, 144, 144, 144, 144, 144, - 144, 144, 144, 144, 144, 144, 144, 144, - }; - - YYDEBUG(0, *YYCURSOR); - YYFILL(5); - yych = *YYCURSOR; - YYDEBUG(-1, yych); - switch (yych) { - case '\t': goto yy4; - case '\n': goto yy6; - case '\r': goto yy8; - case ' ': goto yy9; - case '!': - case '"': - case '$': - case '&': - case '(': - case ')': - case '^': - case '{': - case '|': - case '}': - case '~': goto yy10; - case '#': goto yy12; - case '%': - case '\'': - case '*': - case '+': - case ',': - case '-': - case '.': - case '/': - case ':': - case '<': - case '>': - case '?': - case '@': - case ']': goto yy13; - case ';': goto yy14; - case '=': goto yy16; - case 'F': - case 'f': goto yy18; - case 'N': - case 'n': goto yy19; - case 'O': - case 'o': goto yy20; - case 'T': - case 't': goto yy21; - case 'Y': - case 'y': goto yy22; - case '[': goto yy23; - default: goto yy2; - } -yy2: - YYDEBUG(2, *YYCURSOR); - ++YYCURSOR; - yych = *YYCURSOR; - goto yy26; -yy3: - YYDEBUG(3, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 429 "Zend/zend_ini_scanner.l" - { /* Get option name */ - /* Eat leading whitespace */ - EAT_LEADING_WHITESPACE(); - - /* Eat trailing whitespace */ - EAT_TRAILING_WHITESPACE(); - - RETURN_TOKEN(TC_LABEL, yytext, yyleng); -} -#line 476 "Zend/zend_ini_scanner.c" -yy4: - YYDEBUG(4, *YYCURSOR); - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - goto yy68; -yy5: - YYDEBUG(5, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 575 "Zend/zend_ini_scanner.l" - { - /* eat whitespace */ - goto restart; -} -#line 490 "Zend/zend_ini_scanner.c" -yy6: - YYDEBUG(6, *YYCURSOR); - ++YYCURSOR; -yy7: - YYDEBUG(7, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 580 "Zend/zend_ini_scanner.l" - { - SCNG(lineno)++; - return END_OF_LINE; -} -#line 502 "Zend/zend_ini_scanner.c" -yy8: - YYDEBUG(8, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '\n') goto yy71; - goto yy7; -yy9: - YYDEBUG(9, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= ' ') { - if (yych <= '\n') { - if (yych <= 0x08) goto yy26; - if (yych <= '\t') goto yy67; - goto yy71; - } else { - if (yych == '\r') goto yy72; - if (yych <= 0x1F) goto yy26; - goto yy69; - } - } else { - if (yych <= ':') { - if (yych == '#') goto yy58; - goto yy26; - } else { - if (yych <= ';') goto yy53; - if (yych == '=') goto yy51; - goto yy26; - } - } -yy10: - YYDEBUG(10, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(11, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 503 "Zend/zend_ini_scanner.l" - { /* Disallow these chars outside option values */ - return yytext[0]; -} -#line 541 "Zend/zend_ini_scanner.c" -yy12: - YYDEBUG(12, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - goto yy59; -yy13: - YYDEBUG(13, *YYCURSOR); - yych = *++YYCURSOR; - goto yy26; -yy14: - YYDEBUG(14, *YYCURSOR); - yyaccept = 2; - yych = *(YYMARKER = ++YYCURSOR); - goto yy54; - YYDEBUG(15, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 603 "Zend/zend_ini_scanner.l" - { - return 0; -} -#line 562 "Zend/zend_ini_scanner.c" -yy16: - YYDEBUG(16, *YYCURSOR); - ++YYCURSOR; - yych = *YYCURSOR; - goto yy52; -yy17: - YYDEBUG(17, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 439 "Zend/zend_ini_scanner.l" - { /* Start option value */ - if (SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW) { - yy_push_state(ST_RAW TSRMLS_CC); - } else { - yy_push_state(ST_VALUE TSRMLS_CC); - } - return '='; -} -#line 580 "Zend/zend_ini_scanner.c" -yy18: - YYDEBUG(18, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy48; - if (yych == 'a') goto yy48; - goto yy26; -yy19: - YYDEBUG(19, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'U') { - if (yych == 'O') goto yy44; - if (yych <= 'T') goto yy26; - goto yy45; - } else { - if (yych <= 'o') { - if (yych <= 'n') goto yy26; - goto yy44; - } else { - if (yych == 'u') goto yy45; - goto yy26; - } - } -yy20: - YYDEBUG(20, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= 'N') { - if (yych == 'F') goto yy38; - if (yych <= 'M') goto yy26; - goto yy31; - } else { - if (yych <= 'f') { - if (yych <= 'e') goto yy26; - goto yy38; - } else { - if (yych == 'n') goto yy31; - goto yy26; - } - } -yy21: - YYDEBUG(21, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy36; - if (yych == 'r') goto yy36; - goto yy26; -yy22: - YYDEBUG(22, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy27; - if (yych == 'e') goto yy27; - goto yy26; -yy23: - YYDEBUG(23, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(24, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 358 "Zend/zend_ini_scanner.l" - { /* Section start */ - /* Enter section data lookup state */ - if (SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW) { - yy_push_state(ST_SECTION_RAW TSRMLS_CC); - } else { - yy_push_state(ST_SECTION_VALUE TSRMLS_CC); - } - return TC_SECTION; -} -#line 646 "Zend/zend_ini_scanner.c" -yy25: - YYDEBUG(25, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; -yy26: - YYDEBUG(26, *YYCURSOR); - if (yybm[0+yych] & 16) { - goto yy25; - } - if (yych == '[') goto yy28; - goto yy3; -yy27: - YYDEBUG(27, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy31; - if (yych == 's') goto yy31; - goto yy26; -yy28: - YYDEBUG(28, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(29, *YYCURSOR); - if (yybm[0+yych] & 32) { - goto yy28; - } - YYDEBUG(30, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 383 "Zend/zend_ini_scanner.l" - { /* Start of option with offset */ - /* Eat leading whitespace */ - EAT_LEADING_WHITESPACE(); - - /* Eat trailing whitespace and [ */ - EAT_TRAILING_WHITESPACE_EX('['); - - /* Enter offset lookup state */ - yy_push_state(ST_OFFSET TSRMLS_CC); - - RETURN_TOKEN(TC_OFFSET, yytext, yyleng); -} -#line 689 "Zend/zend_ini_scanner.c" -yy31: - YYDEBUG(31, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(32, *YYCURSOR); - if (yybm[0+yych] & 64) { - goto yy31; - } - if (yych <= '\'') { - if (yych <= ' ') { - if (yych <= '\n') { - if (yych <= 0x08) goto yy25; - if (yych <= '\t') goto yy34; - } else { - if (yych != '\r') goto yy25; - } - } else { - if (yych <= '$') { - if (yych == '#') goto yy25; - } else { - if (yych != '&') goto yy25; - } - } - } else { - if (yych <= 'Z') { - if (yych <= ';') { - if (yych <= ')') goto yy33; - if (yych <= ':') goto yy25; - } else { - if (yych != '=') goto yy25; - } - } else { - if (yych <= '^') { - if (yych <= '[') goto yy28; - if (yych <= ']') goto yy25; - } else { - if (yych <= 'z') goto yy25; - if (yych >= 0x7F) goto yy25; - } - } - } -yy33: - YYDEBUG(33, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 421 "Zend/zend_ini_scanner.l" - { /* TRUE value (when used outside option value/offset this causes parse error!) */ - RETURN_TOKEN(BOOL_TRUE, "1", 1); -} -#line 739 "Zend/zend_ini_scanner.c" -yy34: - YYDEBUG(34, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(35, *YYCURSOR); - if (yych == '\t') goto yy34; - if (yych == ' ') goto yy34; - goto yy33; -yy36: - YYDEBUG(36, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'U') goto yy37; - if (yych != 'u') goto yy26; -yy37: - YYDEBUG(37, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy31; - if (yych == 'e') goto yy31; - goto yy26; -yy38: - YYDEBUG(38, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'F') goto yy39; - if (yych != 'f') goto yy26; -yy39: - YYDEBUG(39, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(40, *YYCURSOR); - if (yych <= '&') { - if (yych <= 0x1F) { - if (yych <= '\n') { - if (yych <= 0x08) goto yy25; - if (yych <= '\t') goto yy42; - } else { - if (yych != '\r') goto yy25; - } - } else { - if (yych <= '#') { - if (yych <= ' ') goto yy39; - if (yych >= '#') goto yy25; - } else { - if (yych == '%') goto yy25; - } - } - } else { - if (yych <= '=') { - if (yych <= ':') { - if (yych <= '\'') goto yy25; - if (yych >= '*') goto yy25; - } else { - if (yych == '<') goto yy25; - } - } else { - if (yych <= ']') { - if (yych == '[') goto yy28; - goto yy25; - } else { - if (yych <= '^') goto yy41; - if (yych <= 'z') goto yy25; - if (yych >= 0x7F) goto yy25; - } - } - } -yy41: - YYDEBUG(41, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 425 "Zend/zend_ini_scanner.l" - { /* FALSE value (when used outside option value/offset this causes parse error!)*/ - RETURN_TOKEN(BOOL_FALSE, "", 0); -} -#line 813 "Zend/zend_ini_scanner.c" -yy42: - YYDEBUG(42, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(43, *YYCURSOR); - if (yych == '\t') goto yy42; - if (yych == ' ') goto yy42; - goto yy41; -yy44: - YYDEBUG(44, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '\'') { - if (yych <= 0x1F) { - if (yych <= '\n') { - if (yych <= 0x08) goto yy26; - if (yych <= '\t') goto yy42; - goto yy41; - } else { - if (yych == '\r') goto yy41; - goto yy26; - } - } else { - if (yych <= '#') { - if (yych <= ' ') goto yy39; - if (yych <= '"') goto yy41; - goto yy26; - } else { - if (yych == '%') goto yy26; - if (yych <= '&') goto yy41; - goto yy26; - } - } - } else { - if (yych <= 'N') { - if (yych <= ';') { - if (yych <= ')') goto yy41; - if (yych <= ':') goto yy26; - goto yy41; - } else { - if (yych == '=') goto yy41; - if (yych <= 'M') goto yy26; - goto yy47; - } - } else { - if (yych <= 'm') { - if (yych == '^') goto yy41; - goto yy26; - } else { - if (yych <= 'n') goto yy47; - if (yych <= 'z') goto yy26; - if (yych <= '~') goto yy41; - goto yy26; - } - } - } -yy45: - YYDEBUG(45, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy46; - if (yych != 'l') goto yy26; -yy46: - YYDEBUG(46, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy39; - if (yych == 'l') goto yy39; - goto yy26; -yy47: - YYDEBUG(47, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy39; - if (yych == 'e') goto yy39; - goto yy26; -yy48: - YYDEBUG(48, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy49; - if (yych != 'l') goto yy26; -yy49: - YYDEBUG(49, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy50; - if (yych != 's') goto yy26; -yy50: - YYDEBUG(50, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy39; - if (yych == 'e') goto yy39; - goto yy26; -yy51: - YYDEBUG(51, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; -yy52: - YYDEBUG(52, *YYCURSOR); - if (yych == '\t') goto yy51; - if (yych == ' ') goto yy51; - goto yy17; -yy53: - YYDEBUG(53, *YYCURSOR); - ++YYCURSOR; - YYFILL(2); - yych = *YYCURSOR; -yy54: - YYDEBUG(54, *YYCURSOR); - if (yybm[0+yych] & 128) { - goto yy53; - } - if (yych >= '\r') goto yy57; -yy55: - YYDEBUG(55, *YYCURSOR); - ++YYCURSOR; -yy56: - YYDEBUG(56, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 585 "Zend/zend_ini_scanner.l" - { /* Comment */ - BEGIN(INITIAL); - SCNG(lineno)++; - return END_OF_LINE; -} -#line 936 "Zend/zend_ini_scanner.c" -yy57: - YYDEBUG(57, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '\n') goto yy55; - goto yy56; -yy58: - YYDEBUG(58, *YYCURSOR); - yyaccept = 1; - YYMARKER = ++YYCURSOR; - YYFILL(2); - yych = *YYCURSOR; -yy59: - YYDEBUG(59, *YYCURSOR); - if (yych <= '\'') { - if (yych <= ' ') { - if (yych <= '\n') { - if (yych <= 0x08) goto yy58; - if (yych >= '\n') goto yy64; - } else { - if (yych == '\r') goto yy66; - goto yy58; - } - } else { - if (yych <= '$') { - if (yych == '#') goto yy58; - } else { - if (yych != '&') goto yy58; - } - } - } else { - if (yych <= 'Z') { - if (yych <= ';') { - if (yych <= ')') goto yy60; - if (yych <= ':') goto yy58; - } else { - if (yych != '=') goto yy58; - } - } else { - if (yych <= '^') { - if (yych <= '[') goto yy62; - if (yych <= ']') goto yy58; - } else { - if (yych <= 'z') goto yy58; - if (yych >= 0x7F) goto yy58; - } - } - } -yy60: - YYDEBUG(60, *YYCURSOR); - ++YYCURSOR; - YYFILL(2); - yych = *YYCURSOR; - YYDEBUG(61, *YYCURSOR); - if (yych == '\n') goto yy64; - if (yych == '\r') goto yy66; - goto yy60; -yy62: - YYDEBUG(62, *YYCURSOR); - yyaccept = 3; - YYMARKER = ++YYCURSOR; - YYFILL(2); - yych = *YYCURSOR; - YYDEBUG(63, *YYCURSOR); - if (yych <= '\f') { - if (yych <= 0x08) goto yy60; - if (yych <= '\t') goto yy62; - if (yych >= '\v') goto yy60; - } else { - if (yych <= '\r') goto yy66; - if (yych == ' ') goto yy62; - goto yy60; - } -yy64: - YYDEBUG(64, *YYCURSOR); - ++YYCURSOR; -yy65: - YYDEBUG(65, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 591 "Zend/zend_ini_scanner.l" - { /* #Comment */ - zend_error(E_DEPRECATED, "Comments starting with '#' are deprecated in %s on line %d", zend_ini_scanner_get_filename(TSRMLS_C), SCNG(lineno)); - BEGIN(INITIAL); - SCNG(lineno)++; - return END_OF_LINE; -} -#line 1022 "Zend/zend_ini_scanner.c" -yy66: - YYDEBUG(66, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '\n') goto yy64; - goto yy65; -yy67: - YYDEBUG(67, *YYCURSOR); - yyaccept = 0; - YYMARKER = ++YYCURSOR; - YYFILL(2); - yych = *YYCURSOR; -yy68: - YYDEBUG(68, *YYCURSOR); - if (yych <= ' ') { - if (yych <= '\n') { - if (yych <= 0x08) goto yy5; - if (yych <= '\t') goto yy67; - goto yy71; - } else { - if (yych == '\r') goto yy72; - if (yych <= 0x1F) goto yy5; - goto yy67; - } - } else { - if (yych <= ':') { - if (yych == '#') goto yy60; - goto yy5; - } else { - if (yych <= ';') goto yy53; - if (yych == '=') goto yy51; - goto yy5; - } - } -yy69: - YYDEBUG(69, *YYCURSOR); - yyaccept = 1; - YYMARKER = ++YYCURSOR; - YYFILL(2); - yych = *YYCURSOR; - YYDEBUG(70, *YYCURSOR); - if (yych <= '&') { - if (yych <= 0x1F) { - if (yych <= '\n') { - if (yych <= 0x08) goto yy25; - if (yych <= '\t') goto yy67; - } else { - if (yych == '\r') goto yy72; - goto yy25; - } - } else { - if (yych <= '#') { - if (yych <= ' ') goto yy69; - if (yych <= '"') goto yy3; - goto yy58; - } else { - if (yych == '%') goto yy25; - goto yy3; - } - } - } else { - if (yych <= '=') { - if (yych <= ':') { - if (yych <= '\'') goto yy25; - if (yych <= ')') goto yy3; - goto yy25; - } else { - if (yych <= ';') goto yy53; - if (yych <= '<') goto yy25; - goto yy51; - } - } else { - if (yych <= ']') { - if (yych == '[') goto yy28; - goto yy25; - } else { - if (yych <= '^') goto yy3; - if (yych <= 'z') goto yy25; - if (yych <= '~') goto yy3; - goto yy25; - } - } - } -yy71: - YYDEBUG(71, *YYCURSOR); - yych = *++YYCURSOR; - goto yy7; -yy72: - YYDEBUG(72, *YYCURSOR); - ++YYCURSOR; - if ((yych = *YYCURSOR) == '\n') goto yy71; - goto yy7; - } -/* *********************************** */ -yyc_ST_DOUBLE_QUOTES: - { - static const unsigned char yybm[] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 128, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }; - YYDEBUG(73, *YYCURSOR); - YYFILL(2); - yych = *YYCURSOR; - if (yych == '"') goto yy77; - if (yych == '$') goto yy79; - YYDEBUG(75, *YYCURSOR); - ++YYCURSOR; -yy76: - YYDEBUG(76, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 535 "Zend/zend_ini_scanner.l" - { /* Escape double quoted string contents */ - if (YYCURSOR > YYLIMIT) { - return 0; - } - - while (YYCURSOR < YYLIMIT) { - switch (*YYCURSOR++) { - case '"': - if (YYCURSOR < YYLIMIT && YYCURSOR[-2] == '\\' && *YYCURSOR != '\r' && *YYCURSOR != '\n') { - continue; - } - break; - case '$': - if (*YYCURSOR == '{') { - break; - } - continue; - case '\\': - if (YYCURSOR < YYLIMIT && *YYCURSOR != '"') { - YYCURSOR++; - } - /* fall through */ - default: - continue; - } - - YYCURSOR--; - break; - } - - yyleng = YYCURSOR - SCNG(yy_text); - - zend_ini_escape_string(ini_lval, yytext, yyleng, '"' TSRMLS_CC); - return TC_QUOTED_STRING; -} -#line 1198 "Zend/zend_ini_scanner.c" -yy77: - YYDEBUG(77, *YYCURSOR); - ++YYCURSOR; - yych = *YYCURSOR; - goto yy83; -yy78: - YYDEBUG(78, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 530 "Zend/zend_ini_scanner.l" - { /* Double quoted '"' string ends */ - yy_pop_state(TSRMLS_C); - return '"'; -} -#line 1212 "Zend/zend_ini_scanner.c" -yy79: - YYDEBUG(79, *YYCURSOR); - yych = *++YYCURSOR; - if (yych != '{') goto yy76; - YYDEBUG(80, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(81, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 401 "Zend/zend_ini_scanner.l" - { /* Variable start */ - yy_push_state(ST_VARNAME TSRMLS_CC); - return TC_DOLLAR_CURLY; -} -#line 1226 "Zend/zend_ini_scanner.c" -yy82: - YYDEBUG(82, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; -yy83: - YYDEBUG(83, *YYCURSOR); - if (yybm[0+yych] & 128) { - goto yy82; - } - goto yy78; - } -/* *********************************** */ -yyc_ST_OFFSET: - { - static const unsigned char yybm[] = { - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 194, 64, 66, 66, 64, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 194, 66, 64, 66, 68, 66, 66, 0, - 66, 66, 66, 66, 66, 66, 66, 66, - 114, 114, 114, 114, 114, 114, 114, 114, - 114, 114, 66, 64, 66, 66, 66, 66, - 66, 82, 82, 82, 82, 82, 82, 82, - 82, 82, 82, 82, 82, 82, 82, 82, - 82, 82, 82, 82, 82, 82, 82, 82, - 82, 82, 82, 66, 72, 64, 66, 82, - 66, 82, 82, 82, 82, 82, 82, 82, - 82, 82, 82, 82, 82, 82, 82, 82, - 82, 82, 82, 82, 82, 82, 82, 82, - 82, 82, 82, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - }; - YYDEBUG(84, *YYCURSOR); - YYFILL(2); - yych = *YYCURSOR; - if (yych <= '-') { - if (yych <= ' ') { - if (yych <= '\n') { - if (yych <= 0x08) goto yy86; - if (yych <= '\t') goto yy88; - goto yy89; - } else { - if (yych == '\r') goto yy89; - if (yych >= ' ') goto yy88; - } - } else { - if (yych <= '$') { - if (yych == '"') goto yy91; - if (yych >= '$') goto yy93; - } else { - if (yych == '\'') goto yy94; - if (yych >= '-') goto yy95; - } - } - } else { - if (yych <= 'Z') { - if (yych <= '9') { - if (yych <= '.') goto yy96; - if (yych >= '0') goto yy97; - } else { - if (yych == ';') goto yy89; - if (yych >= 'A') goto yy99; - } - } else { - if (yych <= '^') { - if (yych <= '[') goto yy86; - if (yych <= '\\') goto yy101; - if (yych <= ']') goto yy102; - } else { - if (yych == '`') goto yy86; - if (yych <= 'z') goto yy99; - } - } - } -yy86: - YYDEBUG(86, *YYCURSOR); - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - goto yy105; -yy87: - YYDEBUG(87, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 521 "Zend/zend_ini_scanner.l" - { /* Get rest as section/offset value */ - RETURN_TOKEN(TC_STRING, yytext, yyleng); -} -#line 1330 "Zend/zend_ini_scanner.c" -yy88: - YYDEBUG(88, *YYCURSOR); - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if (yybm[0+yych] & 128) { - goto yy131; - } - if (yych == '"') goto yy133; - if (yych == ']') goto yy134; - goto yy105; -yy89: - YYDEBUG(89, *YYCURSOR); - ++YYCURSOR; -yy90: - YYDEBUG(90, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 603 "Zend/zend_ini_scanner.l" - { - return 0; -} -#line 1351 "Zend/zend_ini_scanner.c" -yy91: - YYDEBUG(91, *YYCURSOR); - ++YYCURSOR; -yy92: - YYDEBUG(92, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 525 "Zend/zend_ini_scanner.l" - { /* Double quoted '"' string start */ - yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC); - return '"'; -} -#line 1363 "Zend/zend_ini_scanner.c" -yy93: - YYDEBUG(93, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '\\') { - if (yych <= 0x00) goto yy90; - if (yych <= '[') goto yy104; - goto yy109; - } else { - if (yych == '{') goto yy129; - goto yy104; - } -yy94: - YYDEBUG(94, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yybm[0+yych] & 64) { - goto yy125; - } - goto yy90; -yy95: - YYDEBUG(95, *YYCURSOR); - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy105; - if (yych <= '9') goto yy123; - goto yy105; -yy96: - YYDEBUG(96, *YYCURSOR); - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy105; - if (yych <= '9') goto yy121; - goto yy105; -yy97: - YYDEBUG(97, *YYCURSOR); - yyaccept = 2; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '\'') { - if (yych <= '\r') { - if (yych == '\n') goto yy98; - if (yych <= '\f') goto yy105; - } else { - if (yych == '"') goto yy98; - if (yych <= '&') goto yy105; - } - } else { - if (yych <= '9') { - if (yych == '.') goto yy117; - if (yych <= '/') goto yy105; - goto yy119; - } else { - if (yych <= ';') { - if (yych <= ':') goto yy105; - } else { - if (yych != ']') goto yy105; - } - } - } -yy98: - YYDEBUG(98, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 499 "Zend/zend_ini_scanner.l" - { /* Get number option value as string */ - RETURN_TOKEN(TC_NUMBER, yytext, yyleng); -} -#line 1429 "Zend/zend_ini_scanner.c" -yy99: - YYDEBUG(99, *YYCURSOR); - yyaccept = 3; - yych = *(YYMARKER = ++YYCURSOR); - if (yybm[0+yych] & 16) { - goto yy115; - } - if (yych <= '"') { - if (yych <= '\f') { - if (yych != '\n') goto yy105; - } else { - if (yych <= '\r') goto yy100; - if (yych <= '!') goto yy105; - } - } else { - if (yych <= ':') { - if (yych != '\'') goto yy105; - } else { - if (yych <= ';') goto yy100; - if (yych != ']') goto yy105; - } - } -yy100: - YYDEBUG(100, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 495 "Zend/zend_ini_scanner.l" - { /* Get constant option value */ - RETURN_TOKEN(TC_CONSTANT, yytext, yyleng); -} -#line 1459 "Zend/zend_ini_scanner.c" -yy101: - YYDEBUG(101, *YYCURSOR); - yych = *++YYCURSOR; - goto yy104; -yy102: - YYDEBUG(102, *YYCURSOR); - ++YYCURSOR; -yy103: - YYDEBUG(103, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 396 "Zend/zend_ini_scanner.l" - { /* End of section or an option offset */ - BEGIN(INITIAL); - return ']'; -} -#line 1475 "Zend/zend_ini_scanner.c" -yy104: - YYDEBUG(104, *YYCURSOR); - yyaccept = 0; - YYMARKER = ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; -yy105: - YYDEBUG(105, *YYCURSOR); - if (yybm[0+yych] & 2) { - goto yy104; - } - if (yych == '$') goto yy107; - if (yych != '\\') goto yy87; -yy106: - YYDEBUG(106, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - goto yy104; -yy107: - YYDEBUG(107, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - if (yych <= '\\') { - if (yych <= 0x00) goto yy108; - if (yych <= '[') goto yy104; - goto yy109; - } else { - if (yych != '{') goto yy104; - } -yy108: - YYDEBUG(108, *YYCURSOR); - YYCURSOR = YYMARKER; - if (yyaccept <= 1) { - if (yyaccept <= 0) { - goto yy87; - } else { - goto yy90; - } - } else { - if (yyaccept <= 2) { - goto yy98; - } else { - goto yy100; - } - } -yy109: - YYDEBUG(109, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - if (yybm[0+yych] & 4) { - goto yy110; - } - if (yych == '\\') goto yy112; - goto yy104; -yy110: - YYDEBUG(110, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(111, *YYCURSOR); - if (yybm[0+yych] & 4) { - goto yy110; - } - if (yych == '\\') goto yy114; - goto yy104; -yy112: - YYDEBUG(112, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(113, *YYCURSOR); - if (yybm[0+yych] & 4) { - goto yy110; - } - if (yych == '\\') goto yy112; - goto yy104; -yy114: - YYDEBUG(114, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - if (yybm[0+yych] & 4) { - goto yy110; - } - if (yych == '\\') goto yy112; - goto yy104; -yy115: - YYDEBUG(115, *YYCURSOR); - yyaccept = 3; - YYMARKER = ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(116, *YYCURSOR); - if (yybm[0+yych] & 16) { - goto yy115; - } - if (yych <= '$') { - if (yych <= '\r') { - if (yych == '\n') goto yy100; - if (yych <= '\f') goto yy104; - goto yy100; - } else { - if (yych == '"') goto yy100; - if (yych <= '#') goto yy104; - goto yy107; - } - } else { - if (yych <= ';') { - if (yych == '\'') goto yy100; - if (yych <= ':') goto yy104; - goto yy100; - } else { - if (yych <= '[') goto yy104; - if (yych <= '\\') goto yy106; - if (yych <= ']') goto yy100; - goto yy104; - } - } -yy117: - YYDEBUG(117, *YYCURSOR); - yyaccept = 2; - YYMARKER = ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(118, *YYCURSOR); - if (yybm[0+yych] & 32) { - goto yy117; - } - if (yych <= '$') { - if (yych <= '\r') { - if (yych == '\n') goto yy98; - if (yych <= '\f') goto yy104; - goto yy98; - } else { - if (yych == '"') goto yy98; - if (yych <= '#') goto yy104; - goto yy107; - } - } else { - if (yych <= ';') { - if (yych == '\'') goto yy98; - if (yych <= ':') goto yy104; - goto yy98; - } else { - if (yych <= '[') goto yy104; - if (yych <= '\\') goto yy106; - if (yych <= ']') goto yy98; - goto yy104; - } - } -yy119: - YYDEBUG(119, *YYCURSOR); - yyaccept = 2; - YYMARKER = ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(120, *YYCURSOR); - if (yych <= '\'') { - if (yych <= '!') { - if (yych <= '\n') { - if (yych <= '\t') goto yy104; - goto yy98; - } else { - if (yych == '\r') goto yy98; - goto yy104; - } - } else { - if (yych <= '#') { - if (yych <= '"') goto yy98; - goto yy104; - } else { - if (yych <= '$') goto yy107; - if (yych <= '&') goto yy104; - goto yy98; - } - } - } else { - if (yych <= ':') { - if (yych <= '.') { - if (yych <= '-') goto yy104; - goto yy117; - } else { - if (yych <= '/') goto yy104; - if (yych <= '9') goto yy119; - goto yy104; - } - } else { - if (yych <= '[') { - if (yych <= ';') goto yy98; - goto yy104; - } else { - if (yych <= '\\') goto yy106; - if (yych <= ']') goto yy98; - goto yy104; - } - } - } -yy121: - YYDEBUG(121, *YYCURSOR); - yyaccept = 2; - YYMARKER = ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(122, *YYCURSOR); - if (yych <= '&') { - if (yych <= '\r') { - if (yych == '\n') goto yy98; - if (yych <= '\f') goto yy104; - goto yy98; - } else { - if (yych <= '"') { - if (yych <= '!') goto yy104; - goto yy98; - } else { - if (yych == '$') goto yy107; - goto yy104; - } - } - } else { - if (yych <= ':') { - if (yych <= '\'') goto yy98; - if (yych <= '/') goto yy104; - if (yych <= '9') goto yy121; - goto yy104; - } else { - if (yych <= '[') { - if (yych <= ';') goto yy98; - goto yy104; - } else { - if (yych <= '\\') goto yy106; - if (yych <= ']') goto yy98; - goto yy104; - } - } - } -yy123: - YYDEBUG(123, *YYCURSOR); - yyaccept = 2; - YYMARKER = ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(124, *YYCURSOR); - if (yych <= '&') { - if (yych <= '\r') { - if (yych == '\n') goto yy98; - if (yych <= '\f') goto yy104; - goto yy98; - } else { - if (yych <= '"') { - if (yych <= '!') goto yy104; - goto yy98; - } else { - if (yych == '$') goto yy107; - goto yy104; - } - } - } else { - if (yych <= ':') { - if (yych <= '\'') goto yy98; - if (yych <= '/') goto yy104; - if (yych <= '9') goto yy123; - goto yy104; - } else { - if (yych <= '[') { - if (yych <= ';') goto yy98; - goto yy104; - } else { - if (yych <= '\\') goto yy106; - if (yych <= ']') goto yy98; - goto yy104; - } - } - } -yy125: - YYDEBUG(125, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(126, *YYCURSOR); - if (yybm[0+yych] & 64) { - goto yy125; - } - YYDEBUG(127, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(128, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 368 "Zend/zend_ini_scanner.l" - { /* Raw string */ - /* Eat leading and trailing single quotes */ - if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') { - SCNG(yy_text)++; - yyleng = yyleng - 2; - } - RETURN_TOKEN(TC_RAW, yytext, yyleng); -} -#line 1774 "Zend/zend_ini_scanner.c" -yy129: - YYDEBUG(129, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(130, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 401 "Zend/zend_ini_scanner.l" - { /* Variable start */ - yy_push_state(ST_VARNAME TSRMLS_CC); - return TC_DOLLAR_CURLY; -} -#line 1785 "Zend/zend_ini_scanner.c" -yy131: - YYDEBUG(131, *YYCURSOR); - yyaccept = 0; - YYMARKER = ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(132, *YYCURSOR); - if (yybm[0+yych] & 128) { - goto yy131; - } - if (yych <= '$') { - if (yych <= '\r') { - if (yych == '\n') goto yy87; - if (yych <= '\f') goto yy104; - goto yy87; - } else { - if (yych == '"') goto yy133; - if (yych <= '#') goto yy104; - goto yy107; - } - } else { - if (yych <= ';') { - if (yych == '\'') goto yy87; - if (yych <= ':') goto yy104; - goto yy87; - } else { - if (yych <= '[') goto yy104; - if (yych <= '\\') goto yy106; - if (yych <= ']') goto yy134; - goto yy104; - } - } -yy133: - YYDEBUG(133, *YYCURSOR); - yych = *++YYCURSOR; - goto yy92; -yy134: - YYDEBUG(134, *YYCURSOR); - ++YYCURSOR; - yych = *YYCURSOR; - goto yy103; - } -/* *********************************** */ -yyc_ST_RAW: - { - static const unsigned char yybm[] = { - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 192, 0, 64, 64, 0, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 192, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - }; - YYDEBUG(135, *YYCURSOR); - YYFILL(3); - yych = *YYCURSOR; - if (yych <= '\f') { - if (yych <= 0x08) { - if (yych >= 0x01) goto yy139; - } else { - if (yych <= '\t') goto yy141; - if (yych <= '\n') goto yy142; - goto yy139; - } - } else { - if (yych <= ' ') { - if (yych <= '\r') goto yy144; - if (yych <= 0x1F) goto yy139; - goto yy141; - } else { - if (yych == ';') goto yy145; - goto yy139; - } - } - YYDEBUG(137, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(138, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 598 "Zend/zend_ini_scanner.l" - { /* End of option value (if EOF is reached before EOL */ - BEGIN(INITIAL); - return END_OF_LINE; -} -#line 1895 "Zend/zend_ini_scanner.c" -yy139: - YYDEBUG(139, *YYCURSOR); - ++YYCURSOR; -yy140: - YYDEBUG(140, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 448 "Zend/zend_ini_scanner.l" - { /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */ - char *sc = NULL; - while (YYCURSOR < YYLIMIT) { - switch (*YYCURSOR) { - case '\n': - case '\r': - goto end_raw_value_chars; - break; - case ';': - if (sc == NULL) { - sc = YYCURSOR; - } - /* no break */ - default: - YYCURSOR++; - break; - } - } -end_raw_value_chars: - yyleng = YYCURSOR - SCNG(yy_text); - - /* Eat trailing semicolons */ - while (yytext[yyleng - 1] == ';') { - yyleng--; - } - - /* Eat leading and trailing double quotes */ - if (yytext[0] == '"' && yytext[yyleng - 1] == '"') { - SCNG(yy_text)++; - yyleng = yyleng - 2; - } else if (sc) { - YYCURSOR = sc; - yyleng = YYCURSOR - SCNG(yy_text); - } - RETURN_TOKEN(TC_RAW, yytext, yyleng); -} -#line 1939 "Zend/zend_ini_scanner.c" -yy141: - YYDEBUG(141, *YYCURSOR); - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '\r') { - if (yych <= 0x08) goto yy140; - if (yych <= '\n') goto yy153; - if (yych <= '\f') goto yy140; - goto yy153; - } else { - if (yych <= ' ') { - if (yych <= 0x1F) goto yy140; - goto yy153; - } else { - if (yych == ';') goto yy153; - goto yy140; - } - } -yy142: - YYDEBUG(142, *YYCURSOR); - ++YYCURSOR; -yy143: - YYDEBUG(143, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 489 "Zend/zend_ini_scanner.l" - { /* End of option value */ - BEGIN(INITIAL); - SCNG(lineno)++; - return END_OF_LINE; -} -#line 1970 "Zend/zend_ini_scanner.c" -yy144: - YYDEBUG(144, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '\n') goto yy151; - goto yy143; -yy145: - YYDEBUG(145, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - goto yy147; -yy146: - YYDEBUG(146, *YYCURSOR); - ++YYCURSOR; - YYFILL(2); - yych = *YYCURSOR; -yy147: - YYDEBUG(147, *YYCURSOR); - if (yybm[0+yych] & 64) { - goto yy146; - } - if (yych >= '\r') goto yy150; -yy148: - YYDEBUG(148, *YYCURSOR); - ++YYCURSOR; -yy149: - YYDEBUG(149, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 585 "Zend/zend_ini_scanner.l" - { /* Comment */ - BEGIN(INITIAL); - SCNG(lineno)++; - return END_OF_LINE; -} -#line 2004 "Zend/zend_ini_scanner.c" -yy150: - YYDEBUG(150, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '\n') goto yy148; - goto yy149; -yy151: - YYDEBUG(151, *YYCURSOR); - yych = *++YYCURSOR; - goto yy143; -yy152: - YYDEBUG(152, *YYCURSOR); - yyaccept = 2; - YYMARKER = ++YYCURSOR; - YYFILL(2); - yych = *YYCURSOR; -yy153: - YYDEBUG(153, *YYCURSOR); - if (yybm[0+yych] & 128) { - goto yy152; - } - if (yych <= '\f') { - if (yych == '\n') goto yy151; - } else { - if (yych <= '\r') goto yy155; - if (yych == ';') goto yy146; - } - YYDEBUG(154, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 575 "Zend/zend_ini_scanner.l" - { - /* eat whitespace */ - goto restart; -} -#line 2038 "Zend/zend_ini_scanner.c" -yy155: - YYDEBUG(155, *YYCURSOR); - ++YYCURSOR; - if ((yych = *YYCURSOR) == '\n') goto yy151; - goto yy143; - } -/* *********************************** */ -yyc_ST_SECTION_RAW: - { - static const unsigned char yybm[] = { - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 192, 0, 128, 128, 0, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 192, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 0, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - }; - YYDEBUG(156, *YYCURSOR); - YYFILL(3); - yych = *YYCURSOR; - if (yych <= '\f') { - if (yych == '\n') goto yy160; - } else { - if (yych <= '\r') goto yy160; - if (yych == ']') goto yy162; - } - YYDEBUG(158, *YYCURSOR); - ++YYCURSOR; - yych = *YYCURSOR; - goto yy169; -yy159: - YYDEBUG(159, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 485 "Zend/zend_ini_scanner.l" - { /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */ - RETURN_TOKEN(TC_RAW, yytext, yyleng); -} -#line 2102 "Zend/zend_ini_scanner.c" -yy160: - YYDEBUG(160, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(161, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 603 "Zend/zend_ini_scanner.l" - { - return 0; -} -#line 2112 "Zend/zend_ini_scanner.c" -yy162: - YYDEBUG(162, *YYCURSOR); - ++YYCURSOR; - yych = *YYCURSOR; - goto yy165; -yy163: - YYDEBUG(163, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 377 "Zend/zend_ini_scanner.l" - { /* End of section */ - BEGIN(INITIAL); - SCNG(lineno)++; - return ']'; -} -#line 2127 "Zend/zend_ini_scanner.c" -yy164: - YYDEBUG(164, *YYCURSOR); - ++YYCURSOR; - YYFILL(2); - yych = *YYCURSOR; -yy165: - YYDEBUG(165, *YYCURSOR); - if (yybm[0+yych] & 64) { - goto yy164; - } - if (yych == '\n') goto yy166; - if (yych == '\r') goto yy167; - goto yy163; -yy166: - YYDEBUG(166, *YYCURSOR); - yych = *++YYCURSOR; - goto yy163; -yy167: - YYDEBUG(167, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '\n') goto yy166; - goto yy163; -yy168: - YYDEBUG(168, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; -yy169: - YYDEBUG(169, *YYCURSOR); - if (yybm[0+yych] & 128) { - goto yy168; - } - goto yy159; - } -/* *********************************** */ -yyc_ST_SECTION_VALUE: - { - static const unsigned char yybm[] = { - 132, 132, 132, 132, 132, 132, 132, 132, - 132, 134, 128, 132, 132, 128, 132, 132, - 132, 132, 132, 132, 132, 132, 132, 132, - 132, 132, 132, 132, 132, 132, 132, 132, - 134, 132, 128, 132, 136, 132, 132, 0, - 132, 132, 132, 132, 132, 132, 132, 132, - 228, 228, 228, 228, 228, 228, 228, 228, - 228, 228, 132, 128, 132, 132, 132, 132, - 132, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 132, 144, 128, 132, 164, - 132, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 132, 132, 132, 132, 132, - 132, 132, 132, 132, 132, 132, 132, 132, - 132, 132, 132, 132, 132, 132, 132, 132, - 132, 132, 132, 132, 132, 132, 132, 132, - 132, 132, 132, 132, 132, 132, 132, 132, - 132, 132, 132, 132, 132, 132, 132, 132, - 132, 132, 132, 132, 132, 132, 132, 132, - 132, 132, 132, 132, 132, 132, 132, 132, - 132, 132, 132, 132, 132, 132, 132, 132, - 132, 132, 132, 132, 132, 132, 132, 132, - 132, 132, 132, 132, 132, 132, 132, 132, - 132, 132, 132, 132, 132, 132, 132, 132, - 132, 132, 132, 132, 132, 132, 132, 132, - 132, 132, 132, 132, 132, 132, 132, 132, - 132, 132, 132, 132, 132, 132, 132, 132, - 132, 132, 132, 132, 132, 132, 132, 132, - 132, 132, 132, 132, 132, 132, 132, 132, - }; - YYDEBUG(170, *YYCURSOR); - YYFILL(3); - yych = *YYCURSOR; - if (yych <= '-') { - if (yych <= ' ') { - if (yych <= '\n') { - if (yych <= 0x08) goto yy172; - if (yych <= '\t') goto yy174; - goto yy175; - } else { - if (yych == '\r') goto yy175; - if (yych >= ' ') goto yy174; - } - } else { - if (yych <= '$') { - if (yych == '"') goto yy177; - if (yych >= '$') goto yy179; - } else { - if (yych == '\'') goto yy180; - if (yych >= '-') goto yy181; - } - } - } else { - if (yych <= 'Z') { - if (yych <= '9') { - if (yych <= '.') goto yy182; - if (yych >= '0') goto yy183; - } else { - if (yych == ';') goto yy175; - if (yych >= 'A') goto yy185; - } - } else { - if (yych <= '^') { - if (yych <= '[') goto yy172; - if (yych <= '\\') goto yy187; - if (yych <= ']') goto yy188; - } else { - if (yych == '`') goto yy172; - if (yych <= 'z') goto yy185; - } - } - } -yy172: - YYDEBUG(172, *YYCURSOR); - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - goto yy195; -yy173: - YYDEBUG(173, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 521 "Zend/zend_ini_scanner.l" - { /* Get rest as section/offset value */ - RETURN_TOKEN(TC_STRING, yytext, yyleng); -} -#line 2253 "Zend/zend_ini_scanner.c" -yy174: - YYDEBUG(174, *YYCURSOR); - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 0x1F) { - if (yych == '\t') goto yy221; - goto yy195; - } else { - if (yych <= ' ') goto yy221; - if (yych == '"') goto yy223; - goto yy195; - } -yy175: - YYDEBUG(175, *YYCURSOR); - ++YYCURSOR; -yy176: - YYDEBUG(176, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 603 "Zend/zend_ini_scanner.l" - { - return 0; -} -#line 2276 "Zend/zend_ini_scanner.c" -yy177: - YYDEBUG(177, *YYCURSOR); - ++YYCURSOR; -yy178: - YYDEBUG(178, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 525 "Zend/zend_ini_scanner.l" - { /* Double quoted '"' string start */ - yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC); - return '"'; -} -#line 2288 "Zend/zend_ini_scanner.c" -yy179: - YYDEBUG(179, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '\\') { - if (yych <= 0x00) goto yy176; - if (yych <= '[') goto yy194; - goto yy199; - } else { - if (yych == '{') goto yy219; - goto yy194; - } -yy180: - YYDEBUG(180, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yybm[0+yych] & 128) { - goto yy215; - } - goto yy176; -yy181: - YYDEBUG(181, *YYCURSOR); - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy195; - if (yych <= '9') goto yy213; - goto yy195; -yy182: - YYDEBUG(182, *YYCURSOR); - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy195; - if (yych <= '9') goto yy211; - goto yy195; -yy183: - YYDEBUG(183, *YYCURSOR); - yyaccept = 2; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '\'') { - if (yych <= '\r') { - if (yych == '\n') goto yy184; - if (yych <= '\f') goto yy195; - } else { - if (yych == '"') goto yy184; - if (yych <= '&') goto yy195; - } - } else { - if (yych <= '9') { - if (yych == '.') goto yy207; - if (yych <= '/') goto yy195; - goto yy209; - } else { - if (yych <= ';') { - if (yych <= ':') goto yy195; - } else { - if (yych != ']') goto yy195; - } - } - } -yy184: - YYDEBUG(184, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 499 "Zend/zend_ini_scanner.l" - { /* Get number option value as string */ - RETURN_TOKEN(TC_NUMBER, yytext, yyleng); -} -#line 2354 "Zend/zend_ini_scanner.c" -yy185: - YYDEBUG(185, *YYCURSOR); - yyaccept = 3; - yych = *(YYMARKER = ++YYCURSOR); - if (yybm[0+yych] & 32) { - goto yy205; - } - if (yych <= '"') { - if (yych <= '\f') { - if (yych != '\n') goto yy195; - } else { - if (yych <= '\r') goto yy186; - if (yych <= '!') goto yy195; - } - } else { - if (yych <= ':') { - if (yych != '\'') goto yy195; - } else { - if (yych <= ';') goto yy186; - if (yych != ']') goto yy195; - } - } -yy186: - YYDEBUG(186, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 495 "Zend/zend_ini_scanner.l" - { /* Get constant option value */ - RETURN_TOKEN(TC_CONSTANT, yytext, yyleng); -} -#line 2384 "Zend/zend_ini_scanner.c" -yy187: - YYDEBUG(187, *YYCURSOR); - yych = *++YYCURSOR; - goto yy194; -yy188: - YYDEBUG(188, *YYCURSOR); - ++YYCURSOR; - yych = *YYCURSOR; - goto yy191; -yy189: - YYDEBUG(189, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 377 "Zend/zend_ini_scanner.l" - { /* End of section */ - BEGIN(INITIAL); - SCNG(lineno)++; - return ']'; -} -#line 2403 "Zend/zend_ini_scanner.c" -yy190: - YYDEBUG(190, *YYCURSOR); - ++YYCURSOR; - YYFILL(2); - yych = *YYCURSOR; -yy191: - YYDEBUG(191, *YYCURSOR); - if (yybm[0+yych] & 2) { - goto yy190; - } - if (yych == '\n') goto yy192; - if (yych == '\r') goto yy193; - goto yy189; -yy192: - YYDEBUG(192, *YYCURSOR); - yych = *++YYCURSOR; - goto yy189; -yy193: - YYDEBUG(193, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '\n') goto yy192; - goto yy189; -yy194: - YYDEBUG(194, *YYCURSOR); - yyaccept = 0; - YYMARKER = ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; -yy195: - YYDEBUG(195, *YYCURSOR); - if (yybm[0+yych] & 4) { - goto yy194; - } - if (yych == '$') goto yy197; - if (yych != '\\') goto yy173; -yy196: - YYDEBUG(196, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - goto yy194; -yy197: - YYDEBUG(197, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - if (yych <= '\\') { - if (yych <= 0x00) goto yy198; - if (yych <= '[') goto yy194; - goto yy199; - } else { - if (yych != '{') goto yy194; - } -yy198: - YYDEBUG(198, *YYCURSOR); - YYCURSOR = YYMARKER; - if (yyaccept <= 1) { - if (yyaccept <= 0) { - goto yy173; - } else { - goto yy176; - } - } else { - if (yyaccept <= 2) { - goto yy184; - } else { - goto yy186; - } - } -yy199: - YYDEBUG(199, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - if (yybm[0+yych] & 8) { - goto yy200; - } - if (yych == '\\') goto yy202; - goto yy194; -yy200: - YYDEBUG(200, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(201, *YYCURSOR); - if (yybm[0+yych] & 8) { - goto yy200; - } - if (yych == '\\') goto yy204; - goto yy194; -yy202: - YYDEBUG(202, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(203, *YYCURSOR); - if (yybm[0+yych] & 8) { - goto yy200; - } - if (yych == '\\') goto yy202; - goto yy194; -yy204: - YYDEBUG(204, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - if (yybm[0+yych] & 8) { - goto yy200; - } - if (yych == '\\') goto yy202; - goto yy194; -yy205: - YYDEBUG(205, *YYCURSOR); - yyaccept = 3; - YYMARKER = ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(206, *YYCURSOR); - if (yybm[0+yych] & 32) { - goto yy205; - } - if (yych <= '$') { - if (yych <= '\r') { - if (yych == '\n') goto yy186; - if (yych <= '\f') goto yy194; - goto yy186; - } else { - if (yych == '"') goto yy186; - if (yych <= '#') goto yy194; - goto yy197; - } - } else { - if (yych <= ';') { - if (yych == '\'') goto yy186; - if (yych <= ':') goto yy194; - goto yy186; - } else { - if (yych <= '[') goto yy194; - if (yych <= '\\') goto yy196; - if (yych <= ']') goto yy186; - goto yy194; - } - } -yy207: - YYDEBUG(207, *YYCURSOR); - yyaccept = 2; - YYMARKER = ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(208, *YYCURSOR); - if (yybm[0+yych] & 64) { - goto yy207; - } - if (yych <= '$') { - if (yych <= '\r') { - if (yych == '\n') goto yy184; - if (yych <= '\f') goto yy194; - goto yy184; - } else { - if (yych == '"') goto yy184; - if (yych <= '#') goto yy194; - goto yy197; - } - } else { - if (yych <= ';') { - if (yych == '\'') goto yy184; - if (yych <= ':') goto yy194; - goto yy184; - } else { - if (yych <= '[') goto yy194; - if (yych <= '\\') goto yy196; - if (yych <= ']') goto yy184; - goto yy194; - } - } -yy209: - YYDEBUG(209, *YYCURSOR); - yyaccept = 2; - YYMARKER = ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(210, *YYCURSOR); - if (yych <= '\'') { - if (yych <= '!') { - if (yych <= '\n') { - if (yych <= '\t') goto yy194; - goto yy184; - } else { - if (yych == '\r') goto yy184; - goto yy194; - } - } else { - if (yych <= '#') { - if (yych <= '"') goto yy184; - goto yy194; - } else { - if (yych <= '$') goto yy197; - if (yych <= '&') goto yy194; - goto yy184; - } - } - } else { - if (yych <= ':') { - if (yych <= '.') { - if (yych <= '-') goto yy194; - goto yy207; - } else { - if (yych <= '/') goto yy194; - if (yych <= '9') goto yy209; - goto yy194; - } - } else { - if (yych <= '[') { - if (yych <= ';') goto yy184; - goto yy194; - } else { - if (yych <= '\\') goto yy196; - if (yych <= ']') goto yy184; - goto yy194; - } - } - } -yy211: - YYDEBUG(211, *YYCURSOR); - yyaccept = 2; - YYMARKER = ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(212, *YYCURSOR); - if (yych <= '&') { - if (yych <= '\r') { - if (yych == '\n') goto yy184; - if (yych <= '\f') goto yy194; - goto yy184; - } else { - if (yych <= '"') { - if (yych <= '!') goto yy194; - goto yy184; - } else { - if (yych == '$') goto yy197; - goto yy194; - } - } - } else { - if (yych <= ':') { - if (yych <= '\'') goto yy184; - if (yych <= '/') goto yy194; - if (yych <= '9') goto yy211; - goto yy194; - } else { - if (yych <= '[') { - if (yych <= ';') goto yy184; - goto yy194; - } else { - if (yych <= '\\') goto yy196; - if (yych <= ']') goto yy184; - goto yy194; - } - } - } -yy213: - YYDEBUG(213, *YYCURSOR); - yyaccept = 2; - YYMARKER = ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(214, *YYCURSOR); - if (yych <= '&') { - if (yych <= '\r') { - if (yych == '\n') goto yy184; - if (yych <= '\f') goto yy194; - goto yy184; - } else { - if (yych <= '"') { - if (yych <= '!') goto yy194; - goto yy184; - } else { - if (yych == '$') goto yy197; - goto yy194; - } - } - } else { - if (yych <= ':') { - if (yych <= '\'') goto yy184; - if (yych <= '/') goto yy194; - if (yych <= '9') goto yy213; - goto yy194; - } else { - if (yych <= '[') { - if (yych <= ';') goto yy184; - goto yy194; - } else { - if (yych <= '\\') goto yy196; - if (yych <= ']') goto yy184; - goto yy194; - } - } - } -yy215: - YYDEBUG(215, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(216, *YYCURSOR); - if (yybm[0+yych] & 128) { - goto yy215; - } - YYDEBUG(217, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(218, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 368 "Zend/zend_ini_scanner.l" - { /* Raw string */ - /* Eat leading and trailing single quotes */ - if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') { - SCNG(yy_text)++; - yyleng = yyleng - 2; - } - RETURN_TOKEN(TC_RAW, yytext, yyleng); -} -#line 2724 "Zend/zend_ini_scanner.c" -yy219: - YYDEBUG(219, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(220, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 401 "Zend/zend_ini_scanner.l" - { /* Variable start */ - yy_push_state(ST_VARNAME TSRMLS_CC); - return TC_DOLLAR_CURLY; -} -#line 2735 "Zend/zend_ini_scanner.c" -yy221: - YYDEBUG(221, *YYCURSOR); - yyaccept = 0; - YYMARKER = ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(222, *YYCURSOR); - if (yych <= '"') { - if (yych <= '\f') { - if (yych <= 0x08) goto yy194; - if (yych <= '\t') goto yy221; - if (yych <= '\n') goto yy173; - goto yy194; - } else { - if (yych <= 0x1F) { - if (yych <= '\r') goto yy173; - goto yy194; - } else { - if (yych <= ' ') goto yy221; - if (yych <= '!') goto yy194; - } - } - } else { - if (yych <= ':') { - if (yych <= '$') { - if (yych <= '#') goto yy194; - goto yy197; - } else { - if (yych == '\'') goto yy173; - goto yy194; - } - } else { - if (yych <= '[') { - if (yych <= ';') goto yy173; - goto yy194; - } else { - if (yych <= '\\') goto yy196; - if (yych <= ']') goto yy173; - goto yy194; - } - } - } -yy223: - YYDEBUG(223, *YYCURSOR); - ++YYCURSOR; - yych = *YYCURSOR; - goto yy178; - } -/* *********************************** */ -yyc_ST_VALUE: - { - static const unsigned char yybm[] = { - 160, 162, 162, 162, 162, 162, 162, 162, - 162, 176, 128, 162, 162, 128, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, - 176, 160, 160, 162, 168, 162, 160, 32, - 160, 160, 162, 162, 162, 162, 162, 162, - 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 162, 160, 162, 160, 162, 162, - 162, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 162, 162, 162, 160, 166, - 162, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 162, 160, 162, 160, 162, - 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, - 162, 162, 162, 162, 162, 162, 162, 162, - }; - YYDEBUG(224, *YYCURSOR); - YYFILL(6); - yych = *YYCURSOR; - YYDEBUG(-1, yych); - switch (yych) { - case 0x00: goto yy226; - case '\t': - case ' ': goto yy230; - case '\n': goto yy232; - case '\r': goto yy234; - case '!': - case '&': - case '(': - case ')': - case '^': - case '|': - case '~': goto yy235; - case '"': goto yy237; - case '$': goto yy239; - case '\'': goto yy240; - case '-': goto yy241; - case '.': goto yy242; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy243; - case ';': goto yy245; - case '=': goto yy246; - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Z': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'p': - case 'q': - case 'r': - case 's': - case 'u': - case 'v': - case 'w': - case 'x': - case 'z': goto yy248; - case 'F': - case 'f': goto yy250; - case 'N': - case 'n': goto yy251; - case 'O': - case 'o': goto yy252; - case 'T': - case 't': goto yy253; - case 'Y': - case 'y': goto yy254; - default: goto yy228; - } -yy226: - YYDEBUG(226, *YYCURSOR); - ++YYCURSOR; -yy227: - YYDEBUG(227, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 598 "Zend/zend_ini_scanner.l" - { /* End of option value (if EOF is reached before EOL */ - BEGIN(INITIAL); - return END_OF_LINE; -} -#line 2921 "Zend/zend_ini_scanner.c" -yy228: - YYDEBUG(228, *YYCURSOR); - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - goto yy256; -yy229: - YYDEBUG(229, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 517 "Zend/zend_ini_scanner.l" - { /* Get everything else as option/offset value */ - RETURN_TOKEN(TC_STRING, yytext, yyleng); -} -#line 2934 "Zend/zend_ini_scanner.c" -yy230: - YYDEBUG(230, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - goto yy306; -yy231: - YYDEBUG(231, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 571 "Zend/zend_ini_scanner.l" - { - RETURN_TOKEN(TC_WHITESPACE, yytext, yyleng); -} -#line 2947 "Zend/zend_ini_scanner.c" -yy232: - YYDEBUG(232, *YYCURSOR); - ++YYCURSOR; -yy233: - YYDEBUG(233, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 489 "Zend/zend_ini_scanner.l" - { /* End of option value */ - BEGIN(INITIAL); - SCNG(lineno)++; - return END_OF_LINE; -} -#line 2960 "Zend/zend_ini_scanner.c" -yy234: - YYDEBUG(234, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '\n') goto yy304; - goto yy233; -yy235: - YYDEBUG(235, *YYCURSOR); - ++YYCURSOR; - yych = *YYCURSOR; - goto yy303; -yy236: - YYDEBUG(236, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 507 "Zend/zend_ini_scanner.l" - { /* Boolean operators */ - return yytext[0]; -} -#line 2978 "Zend/zend_ini_scanner.c" -yy237: - YYDEBUG(237, *YYCURSOR); - ++YYCURSOR; -yy238: - YYDEBUG(238, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 525 "Zend/zend_ini_scanner.l" - { /* Double quoted '"' string start */ - yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC); - return '"'; -} -#line 2990 "Zend/zend_ini_scanner.c" -yy239: - YYDEBUG(239, *YYCURSOR); - yych = *++YYCURSOR; - if (yych <= '\\') { - if (yych <= 0x00) goto yy227; - if (yych <= '[') goto yy255; - goto yy262; - } else { - if (yych == '{') goto yy300; - goto yy255; - } -yy240: - YYDEBUG(240, *YYCURSOR); - yyaccept = 2; - yych = *(YYMARKER = ++YYCURSOR); - if (yybm[0+yych] & 128) { - goto yy296; - } - goto yy227; -yy241: - YYDEBUG(241, *YYCURSOR); - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy256; - if (yych <= '9') goto yy294; - goto yy256; -yy242: - YYDEBUG(242, *YYCURSOR); - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy256; - if (yych <= '9') goto yy292; - goto yy256; -yy243: - YYDEBUG(243, *YYCURSOR); - yyaccept = 3; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') { - if (yych <= 0x1F) { - if (yych <= '\n') { - if (yych <= 0x00) goto yy244; - if (yych <= 0x08) goto yy256; - } else { - if (yych != '\r') goto yy256; - } - } else { - if (yych <= ')') { - if (yych <= '"') goto yy244; - if (yych <= '%') goto yy256; - } else { - if (yych == '.') goto yy288; - goto yy256; - } - } - } else { - if (yych <= ']') { - if (yych <= ';') { - if (yych <= '9') goto yy290; - if (yych <= ':') goto yy256; - } else { - if (yych != '=') goto yy256; - } - } else { - if (yych <= '|') { - if (yych <= '^') goto yy244; - if (yych <= '{') goto yy256; - } else { - if (yych != '~') goto yy256; - } - } - } -yy244: - YYDEBUG(244, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 499 "Zend/zend_ini_scanner.l" - { /* Get number option value as string */ - RETURN_TOKEN(TC_NUMBER, yytext, yyleng); -} -#line 3069 "Zend/zend_ini_scanner.c" -yy245: - YYDEBUG(245, *YYCURSOR); - yyaccept = 2; - yych = *(YYMARKER = ++YYCURSOR); - goto yy284; -yy246: - YYDEBUG(246, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(247, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 511 "Zend/zend_ini_scanner.l" - { /* Make = used in option value to trigger error */ - yyless(0); - BEGIN(INITIAL); - return END_OF_LINE; -} -#line 3086 "Zend/zend_ini_scanner.c" -yy248: - YYDEBUG(248, *YYCURSOR); - yyaccept = 4; - yych = *(YYMARKER = ++YYCURSOR); - if (yybm[0+yych] & 4) { - goto yy257; - } - if (yych <= ':') { - if (yych <= '\r') { - if (yych <= 0x08) { - if (yych >= 0x01) goto yy256; - } else { - if (yych <= '\n') goto yy249; - if (yych <= '\f') goto yy256; - } - } else { - if (yych <= '"') { - if (yych <= 0x1F) goto yy256; - } else { - if (yych <= '%') goto yy256; - if (yych >= '*') goto yy256; - } - } - } else { - if (yych <= '^') { - if (yych <= '<') { - if (yych >= '<') goto yy256; - } else { - if (yych <= '=') goto yy249; - if (yych <= ']') goto yy256; - } - } else { - if (yych <= '|') { - if (yych <= '{') goto yy256; - } else { - if (yych != '~') goto yy256; - } - } - } -yy249: - YYDEBUG(249, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 495 "Zend/zend_ini_scanner.l" - { /* Get constant option value */ - RETURN_TOKEN(TC_CONSTANT, yytext, yyleng); -} -#line 3133 "Zend/zend_ini_scanner.c" -yy250: - YYDEBUG(250, *YYCURSOR); - yyaccept = 4; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '<') { - if (yych <= '"') { - if (yych <= '\n') { - if (yych <= 0x00) goto yy249; - if (yych <= 0x08) goto yy256; - goto yy249; - } else { - if (yych == '\r') goto yy249; - if (yych <= 0x1F) goto yy256; - goto yy249; - } - } else { - if (yych <= '/') { - if (yych <= '%') goto yy256; - if (yych <= ')') goto yy249; - goto yy256; - } else { - if (yych <= '9') goto yy257; - if (yych == ';') goto yy249; - goto yy256; - } - } - } else { - if (yych <= '_') { - if (yych <= 'A') { - if (yych <= '=') goto yy249; - if (yych <= '@') goto yy256; - goto yy280; - } else { - if (yych <= 'Z') goto yy257; - if (yych <= ']') goto yy256; - if (yych <= '^') goto yy249; - goto yy257; - } - } else { - if (yych <= '{') { - if (yych <= '`') goto yy256; - if (yych <= 'a') goto yy280; - if (yych <= 'z') goto yy257; - goto yy256; - } else { - if (yych == '}') goto yy256; - if (yych <= '~') goto yy249; - goto yy256; - } - } - } -yy251: - YYDEBUG(251, *YYCURSOR); - yyaccept = 4; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'N') { - if (yych <= '%') { - if (yych <= '\f') { - if (yych <= 0x00) goto yy249; - if (yych <= 0x08) goto yy256; - if (yych <= '\n') goto yy249; - goto yy256; - } else { - if (yych <= '\r') goto yy249; - if (yych <= 0x1F) goto yy256; - if (yych <= '"') goto yy249; - goto yy256; - } - } else { - if (yych <= ':') { - if (yych <= ')') goto yy249; - if (yych <= '/') goto yy256; - if (yych <= '9') goto yy257; - goto yy256; - } else { - if (yych <= '<') { - if (yych <= ';') goto yy249; - goto yy256; - } else { - if (yych <= '=') goto yy249; - if (yych <= '@') goto yy256; - goto yy257; - } - } - } - } else { - if (yych <= 'n') { - if (yych <= 'Z') { - if (yych <= 'O') goto yy276; - if (yych == 'U') goto yy277; - goto yy257; - } else { - if (yych <= '^') { - if (yych <= ']') goto yy256; - goto yy249; - } else { - if (yych == '`') goto yy256; - goto yy257; - } - } - } else { - if (yych <= 'z') { - if (yych <= 'o') goto yy276; - if (yych == 'u') goto yy277; - goto yy257; - } else { - if (yych <= '|') { - if (yych <= '{') goto yy256; - goto yy249; - } else { - if (yych == '~') goto yy249; - goto yy256; - } - } - } - } -yy252: - YYDEBUG(252, *YYCURSOR); - yyaccept = 4; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'E') { - if (yych <= '%') { - if (yych <= '\f') { - if (yych <= 0x00) goto yy249; - if (yych <= 0x08) goto yy256; - if (yych <= '\n') goto yy249; - goto yy256; - } else { - if (yych <= '\r') goto yy249; - if (yych <= 0x1F) goto yy256; - if (yych <= '"') goto yy249; - goto yy256; - } - } else { - if (yych <= ':') { - if (yych <= ')') goto yy249; - if (yych <= '/') goto yy256; - if (yych <= '9') goto yy257; - goto yy256; - } else { - if (yych <= '<') { - if (yych <= ';') goto yy249; - goto yy256; - } else { - if (yych <= '=') goto yy249; - if (yych <= '@') goto yy256; - goto yy257; - } - } - } - } else { - if (yych <= 'e') { - if (yych <= 'Z') { - if (yych <= 'F') goto yy271; - if (yych == 'N') goto yy265; - goto yy257; - } else { - if (yych <= '^') { - if (yych <= ']') goto yy256; - goto yy249; - } else { - if (yych == '`') goto yy256; - goto yy257; - } - } - } else { - if (yych <= 'z') { - if (yych <= 'f') goto yy271; - if (yych == 'n') goto yy265; - goto yy257; - } else { - if (yych <= '|') { - if (yych <= '{') goto yy256; - goto yy249; - } else { - if (yych == '~') goto yy249; - goto yy256; - } - } - } - } -yy253: - YYDEBUG(253, *YYCURSOR); - yyaccept = 4; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '=') { - if (yych <= '"') { - if (yych <= '\n') { - if (yych <= 0x00) goto yy249; - if (yych <= 0x08) goto yy256; - goto yy249; - } else { - if (yych == '\r') goto yy249; - if (yych <= 0x1F) goto yy256; - goto yy249; - } - } else { - if (yych <= '9') { - if (yych <= '%') goto yy256; - if (yych <= ')') goto yy249; - if (yych <= '/') goto yy256; - goto yy257; - } else { - if (yych == ';') goto yy249; - if (yych <= '<') goto yy256; - goto yy249; - } - } - } else { - if (yych <= '`') { - if (yych <= 'Z') { - if (yych <= '@') goto yy256; - if (yych == 'R') goto yy269; - goto yy257; - } else { - if (yych <= ']') goto yy256; - if (yych <= '^') goto yy249; - if (yych <= '_') goto yy257; - goto yy256; - } - } else { - if (yych <= '{') { - if (yych == 'r') goto yy269; - if (yych <= 'z') goto yy257; - goto yy256; - } else { - if (yych == '}') goto yy256; - if (yych <= '~') goto yy249; - goto yy256; - } - } - } -yy254: - YYDEBUG(254, *YYCURSOR); - yyaccept = 4; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '=') { - if (yych <= '"') { - if (yych <= '\n') { - if (yych <= 0x00) goto yy249; - if (yych <= 0x08) goto yy256; - goto yy249; - } else { - if (yych == '\r') goto yy249; - if (yych <= 0x1F) goto yy256; - goto yy249; - } - } else { - if (yych <= '9') { - if (yych <= '%') goto yy256; - if (yych <= ')') goto yy249; - if (yych <= '/') goto yy256; - goto yy257; - } else { - if (yych == ';') goto yy249; - if (yych <= '<') goto yy256; - goto yy249; - } - } - } else { - if (yych <= '`') { - if (yych <= 'Z') { - if (yych <= '@') goto yy256; - if (yych == 'E') goto yy259; - goto yy257; - } else { - if (yych <= ']') goto yy256; - if (yych <= '^') goto yy249; - if (yych <= '_') goto yy257; - goto yy256; - } - } else { - if (yych <= '{') { - if (yych == 'e') goto yy259; - if (yych <= 'z') goto yy257; - goto yy256; - } else { - if (yych == '}') goto yy256; - if (yych <= '~') goto yy249; - goto yy256; - } - } - } -yy255: - YYDEBUG(255, *YYCURSOR); - yyaccept = 0; - YYMARKER = ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; -yy256: - YYDEBUG(256, *YYCURSOR); - if (yybm[0+yych] & 2) { - goto yy255; - } - if (yych == '$') goto yy260; - goto yy229; -yy257: - YYDEBUG(257, *YYCURSOR); - yyaccept = 4; - YYMARKER = ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(258, *YYCURSOR); - if (yybm[0+yych] & 4) { - goto yy257; - } - if (yych <= ')') { - if (yych <= '\r') { - if (yych <= 0x08) { - if (yych <= 0x00) goto yy249; - goto yy255; - } else { - if (yych <= '\n') goto yy249; - if (yych <= '\f') goto yy255; - goto yy249; - } - } else { - if (yych <= '#') { - if (yych <= 0x1F) goto yy255; - if (yych <= '"') goto yy249; - goto yy255; - } else { - if (yych <= '$') goto yy260; - if (yych <= '%') goto yy255; - goto yy249; - } - } - } else { - if (yych <= ']') { - if (yych <= ';') { - if (yych <= ':') goto yy255; - goto yy249; - } else { - if (yych == '=') goto yy249; - goto yy255; - } - } else { - if (yych <= '|') { - if (yych <= '^') goto yy249; - if (yych <= '{') goto yy255; - goto yy249; - } else { - if (yych == '~') goto yy249; - goto yy255; - } - } - } -yy259: - YYDEBUG(259, *YYCURSOR); - yyaccept = 4; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '=') { - if (yych <= '"') { - if (yych <= '\n') { - if (yych <= 0x00) goto yy249; - if (yych <= 0x08) goto yy256; - goto yy249; - } else { - if (yych == '\r') goto yy249; - if (yych <= 0x1F) goto yy256; - goto yy249; - } - } else { - if (yych <= '9') { - if (yych <= '%') goto yy256; - if (yych <= ')') goto yy249; - if (yych <= '/') goto yy256; - goto yy257; - } else { - if (yych == ';') goto yy249; - if (yych <= '<') goto yy256; - goto yy249; - } - } - } else { - if (yych <= '`') { - if (yych <= 'Z') { - if (yych <= '@') goto yy256; - if (yych == 'S') goto yy265; - goto yy257; - } else { - if (yych <= ']') goto yy256; - if (yych <= '^') goto yy249; - if (yych <= '_') goto yy257; - goto yy256; - } - } else { - if (yych <= '{') { - if (yych == 's') goto yy265; - if (yych <= 'z') goto yy257; - goto yy256; - } else { - if (yych == '}') goto yy256; - if (yych <= '~') goto yy249; - goto yy256; - } - } - } -yy260: - YYDEBUG(260, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - if (yych <= '\\') { - if (yych <= 0x00) goto yy261; - if (yych <= '[') goto yy255; - goto yy262; - } else { - if (yych != '{') goto yy255; - } -yy261: - YYDEBUG(261, *YYCURSOR); - YYCURSOR = YYMARKER; - if (yyaccept <= 3) { - if (yyaccept <= 1) { - if (yyaccept <= 0) { - goto yy229; - } else { - goto yy231; - } - } else { - if (yyaccept <= 2) { - goto yy227; - } else { - goto yy244; - } - } - } else { - if (yyaccept <= 5) { - if (yyaccept <= 4) { - goto yy249; - } else { - goto yy266; - } - } else { - goto yy273; - } - } -yy262: - YYDEBUG(262, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - if (yybm[0+yych] & 8) { - goto yy263; - } - goto yy255; -yy263: - YYDEBUG(263, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(264, *YYCURSOR); - if (yybm[0+yych] & 8) { - goto yy263; - } - if (yych <= 0x00) goto yy229; - if (yych == '\\') goto yy262; - goto yy255; -yy265: - YYDEBUG(265, *YYCURSOR); - yyaccept = 5; - yych = *(YYMARKER = ++YYCURSOR); - if (yybm[0+yych] & 16) { - goto yy267; - } - if (yych <= ';') { - if (yych <= ' ') { - if (yych <= '\n') { - if (yych <= 0x00) goto yy266; - if (yych <= '\t') goto yy256; - } else { - if (yych != '\r') goto yy256; - } - } else { - if (yych <= ')') { - if (yych <= '"') goto yy266; - if (yych <= '%') goto yy256; - } else { - if (yych <= '/') goto yy256; - if (yych <= '9') goto yy257; - if (yych <= ':') goto yy256; - } - } - } else { - if (yych <= '_') { - if (yych <= '@') { - if (yych != '=') goto yy256; - } else { - if (yych <= 'Z') goto yy257; - if (yych <= ']') goto yy256; - if (yych >= '_') goto yy257; - } - } else { - if (yych <= '{') { - if (yych <= '`') goto yy256; - if (yych <= 'z') goto yy257; - goto yy256; - } else { - if (yych == '}') goto yy256; - if (yych >= 0x7F) goto yy256; - } - } - } -yy266: - YYDEBUG(266, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 421 "Zend/zend_ini_scanner.l" - { /* TRUE value (when used outside option value/offset this causes parse error!) */ - RETURN_TOKEN(BOOL_TRUE, "1", 1); -} -#line 3645 "Zend/zend_ini_scanner.c" -yy267: - YYDEBUG(267, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(268, *YYCURSOR); - if (yybm[0+yych] & 16) { - goto yy267; - } - goto yy266; -yy269: - YYDEBUG(269, *YYCURSOR); - yyaccept = 4; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '=') { - if (yych <= '"') { - if (yych <= '\n') { - if (yych <= 0x00) goto yy249; - if (yych <= 0x08) goto yy256; - goto yy249; - } else { - if (yych == '\r') goto yy249; - if (yych <= 0x1F) goto yy256; - goto yy249; - } - } else { - if (yych <= '9') { - if (yych <= '%') goto yy256; - if (yych <= ')') goto yy249; - if (yych <= '/') goto yy256; - goto yy257; - } else { - if (yych == ';') goto yy249; - if (yych <= '<') goto yy256; - goto yy249; - } - } - } else { - if (yych <= '`') { - if (yych <= 'Z') { - if (yych <= '@') goto yy256; - if (yych != 'U') goto yy257; - } else { - if (yych <= ']') goto yy256; - if (yych <= '^') goto yy249; - if (yych <= '_') goto yy257; - goto yy256; - } - } else { - if (yych <= '{') { - if (yych == 'u') goto yy270; - if (yych <= 'z') goto yy257; - goto yy256; - } else { - if (yych == '}') goto yy256; - if (yych <= '~') goto yy249; - goto yy256; - } - } - } -yy270: - YYDEBUG(270, *YYCURSOR); - yyaccept = 4; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '=') { - if (yych <= '"') { - if (yych <= '\n') { - if (yych <= 0x00) goto yy249; - if (yych <= 0x08) goto yy256; - goto yy249; - } else { - if (yych == '\r') goto yy249; - if (yych <= 0x1F) goto yy256; - goto yy249; - } - } else { - if (yych <= '9') { - if (yych <= '%') goto yy256; - if (yych <= ')') goto yy249; - if (yych <= '/') goto yy256; - goto yy257; - } else { - if (yych == ';') goto yy249; - if (yych <= '<') goto yy256; - goto yy249; - } - } - } else { - if (yych <= '`') { - if (yych <= 'Z') { - if (yych <= '@') goto yy256; - if (yych == 'E') goto yy265; - goto yy257; - } else { - if (yych <= ']') goto yy256; - if (yych <= '^') goto yy249; - if (yych <= '_') goto yy257; - goto yy256; - } - } else { - if (yych <= '{') { - if (yych == 'e') goto yy265; - if (yych <= 'z') goto yy257; - goto yy256; - } else { - if (yych == '}') goto yy256; - if (yych <= '~') goto yy249; - goto yy256; - } - } - } -yy271: - YYDEBUG(271, *YYCURSOR); - yyaccept = 4; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '=') { - if (yych <= '"') { - if (yych <= '\n') { - if (yych <= 0x00) goto yy249; - if (yych <= 0x08) goto yy256; - goto yy249; - } else { - if (yych == '\r') goto yy249; - if (yych <= 0x1F) goto yy256; - goto yy249; - } - } else { - if (yych <= '9') { - if (yych <= '%') goto yy256; - if (yych <= ')') goto yy249; - if (yych <= '/') goto yy256; - goto yy257; - } else { - if (yych == ';') goto yy249; - if (yych <= '<') goto yy256; - goto yy249; - } - } - } else { - if (yych <= '`') { - if (yych <= 'Z') { - if (yych <= '@') goto yy256; - if (yych != 'F') goto yy257; - } else { - if (yych <= ']') goto yy256; - if (yych <= '^') goto yy249; - if (yych <= '_') goto yy257; - goto yy256; - } - } else { - if (yych <= '{') { - if (yych == 'f') goto yy272; - if (yych <= 'z') goto yy257; - goto yy256; - } else { - if (yych == '}') goto yy256; - if (yych <= '~') goto yy249; - goto yy256; - } - } - } -yy272: - YYDEBUG(272, *YYCURSOR); - yyaccept = 6; - yych = *(YYMARKER = ++YYCURSOR); - if (yybm[0+yych] & 4) { - goto yy257; - } - if (yych <= ')') { - if (yych <= '\f') { - if (yych <= 0x08) { - if (yych >= 0x01) goto yy256; - } else { - if (yych <= '\t') goto yy274; - if (yych >= '\v') goto yy256; - } - } else { - if (yych <= ' ') { - if (yych <= '\r') goto yy273; - if (yych <= 0x1F) goto yy256; - goto yy274; - } else { - if (yych <= '"') goto yy273; - if (yych <= '%') goto yy256; - } - } - } else { - if (yych <= ']') { - if (yych <= ';') { - if (yych <= ':') goto yy256; - } else { - if (yych != '=') goto yy256; - } - } else { - if (yych <= '|') { - if (yych <= '^') goto yy273; - if (yych <= '{') goto yy256; - } else { - if (yych != '~') goto yy256; - } - } - } -yy273: - YYDEBUG(273, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 425 "Zend/zend_ini_scanner.l" - { /* FALSE value (when used outside option value/offset this causes parse error!)*/ - RETURN_TOKEN(BOOL_FALSE, "", 0); -} -#line 3855 "Zend/zend_ini_scanner.c" -yy274: - YYDEBUG(274, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(275, *YYCURSOR); - if (yych == '\t') goto yy274; - if (yych == ' ') goto yy274; - goto yy273; -yy276: - YYDEBUG(276, *YYCURSOR); - yyaccept = 6; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '<') { - if (yych <= ' ') { - if (yych <= '\n') { - if (yych <= 0x00) goto yy273; - if (yych <= 0x08) goto yy256; - if (yych <= '\t') goto yy274; - goto yy273; - } else { - if (yych == '\r') goto yy273; - if (yych <= 0x1F) goto yy256; - goto yy274; - } - } else { - if (yych <= '/') { - if (yych <= '"') goto yy273; - if (yych <= '%') goto yy256; - if (yych <= ')') goto yy273; - goto yy256; - } else { - if (yych <= '9') goto yy257; - if (yych == ';') goto yy273; - goto yy256; - } - } - } else { - if (yych <= '_') { - if (yych <= 'N') { - if (yych <= '=') goto yy273; - if (yych <= '@') goto yy256; - if (yych <= 'M') goto yy257; - goto yy279; - } else { - if (yych <= 'Z') goto yy257; - if (yych <= ']') goto yy256; - if (yych <= '^') goto yy273; - goto yy257; - } - } else { - if (yych <= 'z') { - if (yych <= '`') goto yy256; - if (yych == 'n') goto yy279; - goto yy257; - } else { - if (yych <= '|') { - if (yych <= '{') goto yy256; - goto yy273; - } else { - if (yych == '~') goto yy273; - goto yy256; - } - } - } - } -yy277: - YYDEBUG(277, *YYCURSOR); - yyaccept = 4; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '=') { - if (yych <= '"') { - if (yych <= '\n') { - if (yych <= 0x00) goto yy249; - if (yych <= 0x08) goto yy256; - goto yy249; - } else { - if (yych == '\r') goto yy249; - if (yych <= 0x1F) goto yy256; - goto yy249; - } - } else { - if (yych <= '9') { - if (yych <= '%') goto yy256; - if (yych <= ')') goto yy249; - if (yych <= '/') goto yy256; - goto yy257; - } else { - if (yych == ';') goto yy249; - if (yych <= '<') goto yy256; - goto yy249; - } - } - } else { - if (yych <= '`') { - if (yych <= 'Z') { - if (yych <= '@') goto yy256; - if (yych != 'L') goto yy257; - } else { - if (yych <= ']') goto yy256; - if (yych <= '^') goto yy249; - if (yych <= '_') goto yy257; - goto yy256; - } - } else { - if (yych <= '{') { - if (yych == 'l') goto yy278; - if (yych <= 'z') goto yy257; - goto yy256; - } else { - if (yych == '}') goto yy256; - if (yych <= '~') goto yy249; - goto yy256; - } - } - } -yy278: - YYDEBUG(278, *YYCURSOR); - yyaccept = 4; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '=') { - if (yych <= '"') { - if (yych <= '\n') { - if (yych <= 0x00) goto yy249; - if (yych <= 0x08) goto yy256; - goto yy249; - } else { - if (yych == '\r') goto yy249; - if (yych <= 0x1F) goto yy256; - goto yy249; - } - } else { - if (yych <= '9') { - if (yych <= '%') goto yy256; - if (yych <= ')') goto yy249; - if (yych <= '/') goto yy256; - goto yy257; - } else { - if (yych == ';') goto yy249; - if (yych <= '<') goto yy256; - goto yy249; - } - } - } else { - if (yych <= '`') { - if (yych <= 'Z') { - if (yych <= '@') goto yy256; - if (yych == 'L') goto yy272; - goto yy257; - } else { - if (yych <= ']') goto yy256; - if (yych <= '^') goto yy249; - if (yych <= '_') goto yy257; - goto yy256; - } - } else { - if (yych <= '{') { - if (yych == 'l') goto yy272; - if (yych <= 'z') goto yy257; - goto yy256; - } else { - if (yych == '}') goto yy256; - if (yych <= '~') goto yy249; - goto yy256; - } - } - } -yy279: - YYDEBUG(279, *YYCURSOR); - yyaccept = 4; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '=') { - if (yych <= '"') { - if (yych <= '\n') { - if (yych <= 0x00) goto yy249; - if (yych <= 0x08) goto yy256; - goto yy249; - } else { - if (yych == '\r') goto yy249; - if (yych <= 0x1F) goto yy256; - goto yy249; - } - } else { - if (yych <= '9') { - if (yych <= '%') goto yy256; - if (yych <= ')') goto yy249; - if (yych <= '/') goto yy256; - goto yy257; - } else { - if (yych == ';') goto yy249; - if (yych <= '<') goto yy256; - goto yy249; - } - } - } else { - if (yych <= '`') { - if (yych <= 'Z') { - if (yych <= '@') goto yy256; - if (yych == 'E') goto yy272; - goto yy257; - } else { - if (yych <= ']') goto yy256; - if (yych <= '^') goto yy249; - if (yych <= '_') goto yy257; - goto yy256; - } - } else { - if (yych <= '{') { - if (yych == 'e') goto yy272; - if (yych <= 'z') goto yy257; - goto yy256; - } else { - if (yych == '}') goto yy256; - if (yych <= '~') goto yy249; - goto yy256; - } - } - } -yy280: - YYDEBUG(280, *YYCURSOR); - yyaccept = 4; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '=') { - if (yych <= '"') { - if (yych <= '\n') { - if (yych <= 0x00) goto yy249; - if (yych <= 0x08) goto yy256; - goto yy249; - } else { - if (yych == '\r') goto yy249; - if (yych <= 0x1F) goto yy256; - goto yy249; - } - } else { - if (yych <= '9') { - if (yych <= '%') goto yy256; - if (yych <= ')') goto yy249; - if (yych <= '/') goto yy256; - goto yy257; - } else { - if (yych == ';') goto yy249; - if (yych <= '<') goto yy256; - goto yy249; - } - } - } else { - if (yych <= '`') { - if (yych <= 'Z') { - if (yych <= '@') goto yy256; - if (yych != 'L') goto yy257; - } else { - if (yych <= ']') goto yy256; - if (yych <= '^') goto yy249; - if (yych <= '_') goto yy257; - goto yy256; - } - } else { - if (yych <= '{') { - if (yych == 'l') goto yy281; - if (yych <= 'z') goto yy257; - goto yy256; - } else { - if (yych == '}') goto yy256; - if (yych <= '~') goto yy249; - goto yy256; - } - } - } -yy281: - YYDEBUG(281, *YYCURSOR); - yyaccept = 4; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '=') { - if (yych <= '"') { - if (yych <= '\n') { - if (yych <= 0x00) goto yy249; - if (yych <= 0x08) goto yy256; - goto yy249; - } else { - if (yych == '\r') goto yy249; - if (yych <= 0x1F) goto yy256; - goto yy249; - } - } else { - if (yych <= '9') { - if (yych <= '%') goto yy256; - if (yych <= ')') goto yy249; - if (yych <= '/') goto yy256; - goto yy257; - } else { - if (yych == ';') goto yy249; - if (yych <= '<') goto yy256; - goto yy249; - } - } - } else { - if (yych <= '`') { - if (yych <= 'Z') { - if (yych <= '@') goto yy256; - if (yych != 'S') goto yy257; - } else { - if (yych <= ']') goto yy256; - if (yych <= '^') goto yy249; - if (yych <= '_') goto yy257; - goto yy256; - } - } else { - if (yych <= '{') { - if (yych == 's') goto yy282; - if (yych <= 'z') goto yy257; - goto yy256; - } else { - if (yych == '}') goto yy256; - if (yych <= '~') goto yy249; - goto yy256; - } - } - } -yy282: - YYDEBUG(282, *YYCURSOR); - yyaccept = 4; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '=') { - if (yych <= '"') { - if (yych <= '\n') { - if (yych <= 0x00) goto yy249; - if (yych <= 0x08) goto yy256; - goto yy249; - } else { - if (yych == '\r') goto yy249; - if (yych <= 0x1F) goto yy256; - goto yy249; - } - } else { - if (yych <= '9') { - if (yych <= '%') goto yy256; - if (yych <= ')') goto yy249; - if (yych <= '/') goto yy256; - goto yy257; - } else { - if (yych == ';') goto yy249; - if (yych <= '<') goto yy256; - goto yy249; - } - } - } else { - if (yych <= '`') { - if (yych <= 'Z') { - if (yych <= '@') goto yy256; - if (yych == 'E') goto yy272; - goto yy257; - } else { - if (yych <= ']') goto yy256; - if (yych <= '^') goto yy249; - if (yych <= '_') goto yy257; - goto yy256; - } - } else { - if (yych <= '{') { - if (yych == 'e') goto yy272; - if (yych <= 'z') goto yy257; - goto yy256; - } else { - if (yych == '}') goto yy256; - if (yych <= '~') goto yy249; - goto yy256; - } - } - } -yy283: - YYDEBUG(283, *YYCURSOR); - ++YYCURSOR; - YYFILL(2); - yych = *YYCURSOR; -yy284: - YYDEBUG(284, *YYCURSOR); - if (yybm[0+yych] & 32) { - goto yy283; - } - if (yych >= '\r') goto yy287; -yy285: - YYDEBUG(285, *YYCURSOR); - ++YYCURSOR; -yy286: - YYDEBUG(286, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 585 "Zend/zend_ini_scanner.l" - { /* Comment */ - BEGIN(INITIAL); - SCNG(lineno)++; - return END_OF_LINE; -} -#line 4248 "Zend/zend_ini_scanner.c" -yy287: - YYDEBUG(287, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '\n') goto yy285; - goto yy286; -yy288: - YYDEBUG(288, *YYCURSOR); - yyaccept = 3; - YYMARKER = ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(289, *YYCURSOR); - if (yybm[0+yych] & 64) { - goto yy288; - } - if (yych <= ')') { - if (yych <= '\r') { - if (yych <= 0x08) { - if (yych <= 0x00) goto yy244; - goto yy255; - } else { - if (yych <= '\n') goto yy244; - if (yych <= '\f') goto yy255; - goto yy244; - } - } else { - if (yych <= '#') { - if (yych <= 0x1F) goto yy255; - if (yych <= '"') goto yy244; - goto yy255; - } else { - if (yych <= '$') goto yy260; - if (yych <= '%') goto yy255; - goto yy244; - } - } - } else { - if (yych <= ']') { - if (yych <= ';') { - if (yych <= ':') goto yy255; - goto yy244; - } else { - if (yych == '=') goto yy244; - goto yy255; - } - } else { - if (yych <= '|') { - if (yych <= '^') goto yy244; - if (yych <= '{') goto yy255; - goto yy244; - } else { - if (yych == '~') goto yy244; - goto yy255; - } - } - } -yy290: - YYDEBUG(290, *YYCURSOR); - yyaccept = 3; - YYMARKER = ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(291, *YYCURSOR); - if (yych <= '.') { - if (yych <= 0x1F) { - if (yych <= '\n') { - if (yych <= 0x00) goto yy244; - if (yych <= 0x08) goto yy255; - goto yy244; - } else { - if (yych == '\r') goto yy244; - goto yy255; - } - } else { - if (yych <= '$') { - if (yych <= '"') goto yy244; - if (yych <= '#') goto yy255; - goto yy260; - } else { - if (yych <= '%') goto yy255; - if (yych <= ')') goto yy244; - if (yych <= '-') goto yy255; - goto yy288; - } - } - } else { - if (yych <= '=') { - if (yych <= ':') { - if (yych <= '/') goto yy255; - if (yych <= '9') goto yy290; - goto yy255; - } else { - if (yych == '<') goto yy255; - goto yy244; - } - } else { - if (yych <= '{') { - if (yych == '^') goto yy244; - goto yy255; - } else { - if (yych == '}') goto yy255; - if (yych <= '~') goto yy244; - goto yy255; - } - } - } -yy292: - YYDEBUG(292, *YYCURSOR); - yyaccept = 3; - YYMARKER = ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(293, *YYCURSOR); - if (yych <= '/') { - if (yych <= 0x1F) { - if (yych <= '\n') { - if (yych <= 0x00) goto yy244; - if (yych <= 0x08) goto yy255; - goto yy244; - } else { - if (yych == '\r') goto yy244; - goto yy255; - } - } else { - if (yych <= '$') { - if (yych <= '"') goto yy244; - if (yych <= '#') goto yy255; - goto yy260; - } else { - if (yych <= '%') goto yy255; - if (yych <= ')') goto yy244; - goto yy255; - } - } - } else { - if (yych <= ']') { - if (yych <= ';') { - if (yych <= '9') goto yy292; - if (yych <= ':') goto yy255; - goto yy244; - } else { - if (yych == '=') goto yy244; - goto yy255; - } - } else { - if (yych <= '|') { - if (yych <= '^') goto yy244; - if (yych <= '{') goto yy255; - goto yy244; - } else { - if (yych == '~') goto yy244; - goto yy255; - } - } - } -yy294: - YYDEBUG(294, *YYCURSOR); - yyaccept = 3; - YYMARKER = ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(295, *YYCURSOR); - if (yych <= '/') { - if (yych <= 0x1F) { - if (yych <= '\n') { - if (yych <= 0x00) goto yy244; - if (yych <= 0x08) goto yy255; - goto yy244; - } else { - if (yych == '\r') goto yy244; - goto yy255; - } - } else { - if (yych <= '$') { - if (yych <= '"') goto yy244; - if (yych <= '#') goto yy255; - goto yy260; - } else { - if (yych <= '%') goto yy255; - if (yych <= ')') goto yy244; - goto yy255; - } - } - } else { - if (yych <= ']') { - if (yych <= ';') { - if (yych <= '9') goto yy294; - if (yych <= ':') goto yy255; - goto yy244; - } else { - if (yych == '=') goto yy244; - goto yy255; - } - } else { - if (yych <= '|') { - if (yych <= '^') goto yy244; - if (yych <= '{') goto yy255; - goto yy244; - } else { - if (yych == '~') goto yy244; - goto yy255; - } - } - } -yy296: - YYDEBUG(296, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; - YYDEBUG(297, *YYCURSOR); - if (yybm[0+yych] & 128) { - goto yy296; - } - YYDEBUG(298, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(299, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 368 "Zend/zend_ini_scanner.l" - { /* Raw string */ - /* Eat leading and trailing single quotes */ - if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') { - SCNG(yy_text)++; - yyleng = yyleng - 2; - } - RETURN_TOKEN(TC_RAW, yytext, yyleng); -} -#line 4475 "Zend/zend_ini_scanner.c" -yy300: - YYDEBUG(300, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(301, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 401 "Zend/zend_ini_scanner.l" - { /* Variable start */ - yy_push_state(ST_VARNAME TSRMLS_CC); - return TC_DOLLAR_CURLY; -} -#line 4486 "Zend/zend_ini_scanner.c" -yy302: - YYDEBUG(302, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; -yy303: - YYDEBUG(303, *YYCURSOR); - if (yych == '\t') goto yy302; - if (yych == ' ') goto yy302; - goto yy236; -yy304: - YYDEBUG(304, *YYCURSOR); - yych = *++YYCURSOR; - goto yy233; -yy305: - YYDEBUG(305, *YYCURSOR); - yyaccept = 1; - YYMARKER = ++YYCURSOR; - YYFILL(2); - yych = *YYCURSOR; -yy306: - YYDEBUG(306, *YYCURSOR); - if (yych <= 0x1F) { - if (yych <= '\n') { - if (yych <= 0x08) goto yy231; - if (yych <= '\t') goto yy305; - goto yy304; - } else { - if (yych == '\r') goto yy308; - goto yy231; - } - } else { - if (yych <= '"') { - if (yych <= ' ') goto yy305; - if (yych <= '!') goto yy231; - } else { - if (yych == ';') goto yy283; - goto yy231; - } - } - YYDEBUG(307, *YYCURSOR); - yych = *++YYCURSOR; - goto yy238; -yy308: - YYDEBUG(308, *YYCURSOR); - ++YYCURSOR; - if ((yych = *YYCURSOR) == '\n') goto yy304; - goto yy233; - } -/* *********************************** */ -yyc_ST_VARNAME: - { - static const unsigned char yybm[] = { - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 0, 0, 128, 128, 0, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 0, 0, 128, 0, 128, 0, 128, - 0, 0, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 0, 128, 0, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 0, 128, 128, 0, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 0, 0, 0, 0, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - }; - YYDEBUG(309, *YYCURSOR); - YYFILL(2); - yych = *YYCURSOR; - if (yych <= ')') { - if (yych <= '"') { - if (yych <= '\f') { - if (yych <= 0x08) goto yy311; - if (yych <= '\n') goto yy313; - } else { - if (yych <= '\r') goto yy313; - if (yych >= '!') goto yy313; - } - } else { - if (yych <= '%') { - if (yych == '$') goto yy313; - } else { - if (yych != '\'') goto yy313; - } - } - } else { - if (yych <= '[') { - if (yych <= '<') { - if (yych == ';') goto yy313; - } else { - if (yych <= '=') goto yy313; - if (yych >= '[') goto yy313; - } - } else { - if (yych <= 'z') { - if (yych == '^') goto yy313; - } else { - if (yych == '}') goto yy315; - if (yych <= '~') goto yy313; - } - } - } -yy311: - YYDEBUG(311, *YYCURSOR); - ++YYCURSOR; - yych = *YYCURSOR; - goto yy318; -yy312: - YYDEBUG(312, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 406 "Zend/zend_ini_scanner.l" - { /* Variable name */ - /* Eat leading whitespace */ - EAT_LEADING_WHITESPACE(); - - /* Eat trailing whitespace */ - EAT_TRAILING_WHITESPACE(); - - RETURN_TOKEN(TC_VARNAME, yytext, yyleng); -} -#line 4627 "Zend/zend_ini_scanner.c" -yy313: - YYDEBUG(313, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(314, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 603 "Zend/zend_ini_scanner.l" - { - return 0; -} -#line 4637 "Zend/zend_ini_scanner.c" -yy315: - YYDEBUG(315, *YYCURSOR); - ++YYCURSOR; - YYDEBUG(316, *YYCURSOR); - yyleng = YYCURSOR - SCNG(yy_text); -#line 416 "Zend/zend_ini_scanner.l" - { /* Variable end */ - yy_pop_state(TSRMLS_C); - return '}'; -} -#line 4648 "Zend/zend_ini_scanner.c" -yy317: - YYDEBUG(317, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; -yy318: - YYDEBUG(318, *YYCURSOR); - if (yybm[0+yych] & 128) { - goto yy317; - } - goto yy312; - } -} -#line 607 "Zend/zend_ini_scanner.l" - -} +/* Generated by re2c 0.13.6 */ +#line 1 "Zend/zend_ini_scanner.l" +/* + +----------------------------------------------------------------------+ + | Zend Engine | + +----------------------------------------------------------------------+ + | Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) | + +----------------------------------------------------------------------+ + | This source file is subject to version 2.00 of the Zend license, | + | that is bundled with this package in the file LICENSE, and is | + | available through the world-wide-web at the following url: | + | http://www.zend.com/license/2_00.txt. | + | If you did not receive a copy of the Zend license and are unable to | + | obtain it through the world-wide-web, please send a note to | + | license@zend.com so we can mail you a copy immediately. | + +----------------------------------------------------------------------+ + | Authors: Zeev Suraski | + | Jani Taskinen | + | Marcus Boerger | + | Nuno Lopes | + | Scott MacVicar | + +----------------------------------------------------------------------+ +*/ + +/* $Id$ */ + +#include +#include "zend.h" +#include "zend_API.h" +#include "zend_globals.h" +#include +#include "zend_ini_scanner.h" + +#if 0 +# define YYDEBUG(s, c) printf("state: %d char: %c\n", s, c) +#else +# define YYDEBUG(s, c) +#endif + +#include "zend_ini_scanner_defs.h" + +#define YYCTYPE unsigned char +/* allow the scanner to read one null byte after the end of the string (from ZEND_MMAP_AHEAD) + * so that if will be able to terminate to match the current token (e.g. non-enclosed string) */ +#define YYFILL(n) { if (YYCURSOR > YYLIMIT) return 0; } +#define YYCURSOR SCNG(yy_cursor) +#define YYLIMIT SCNG(yy_limit) +#define YYMARKER SCNG(yy_marker) + +#define YYGETCONDITION() SCNG(yy_state) +#define YYSETCONDITION(s) SCNG(yy_state) = s + +#define STATE(name) yyc##name + +/* emulate flex constructs */ +#define BEGIN(state) YYSETCONDITION(STATE(state)) +#define YYSTATE YYGETCONDITION() +#define yytext ((char*)SCNG(yy_text)) +#define yyleng SCNG(yy_leng) +#define yyless(x) do { YYCURSOR = (unsigned char*)yytext + x; \ + yyleng = (unsigned int)x; } while(0) + +/* #define yymore() goto yymore_restart */ + +/* perform sanity check. If this message is triggered you should + increase the ZEND_MMAP_AHEAD value in the zend_streams.h file */ +#define YYMAXFILL 6 +#if ZEND_MMAP_AHEAD < (YYMAXFILL + 1) +# error ZEND_MMAP_AHEAD should be greater than YYMAXFILL +#endif + + +/* How it works (for the core ini directives): + * =========================================== + * + * 1. Scanner scans file for tokens and passes them to parser. + * 2. Parser parses the tokens and passes the name/value pairs to the callback + * function which stores them in the configuration hash table. + * 3. Later REGISTER_INI_ENTRIES() is called which triggers the actual + * registering of ini entries and uses zend_get_configuration_directive() + * to fetch the previously stored name/value pair from configuration hash table + * and registers the static ini entries which match the name to the value + * into EG(ini_directives) hash table. + * 4. PATH section entries are used per-request from down to top, each overriding + * previous if one exists. zend_alter_ini_entry() is called for each entry. + * Settings in PATH section are ZEND_INI_SYSTEM accessible and thus mimics the + * php_admin_* directives used within Apache httpd.conf when PHP is compiled as + * module for Apache. + * 5. User defined ini files (like .htaccess for apache) are parsed for each request and + * stored in separate hash defined by SAPI. + */ + +/* TODO: (ordered by importance :-) + * =============================================================================== + * + * - Separate constant lookup totally from plain strings (using CONSTANT pattern) + * - Add #if .. #else .. #endif and ==, !=, <, > , <=, >= operators + * - Add #include "some.ini" + * - Allow variables to refer to options also when using parse_ini_file() + * + */ + +/* Globals Macros */ +#define SCNG INI_SCNG +#ifdef ZTS +ZEND_API ts_rsrc_id ini_scanner_globals_id; +#else +ZEND_API zend_ini_scanner_globals ini_scanner_globals; +#endif + +/* Eat leading whitespace */ +#define EAT_LEADING_WHITESPACE() \ + while (yytext[0]) { \ + if (yytext[0] == ' ' || yytext[0] == '\t') { \ + SCNG(yy_text)++; \ + yyleng--; \ + } else { \ + break; \ + } \ + } + +/* Eat trailing whitespace + extra char */ +#define EAT_TRAILING_WHITESPACE_EX(ch) \ + while (yyleng > 0 && ( \ + (ch != 'X' && yytext[yyleng - 1] == ch) || \ + yytext[yyleng - 1] == '\n' || \ + yytext[yyleng - 1] == '\r' || \ + yytext[yyleng - 1] == '\t' || \ + yytext[yyleng - 1] == ' ') \ + ) { \ + yyleng--; \ + } + +/* Eat trailing whitespace */ +#define EAT_TRAILING_WHITESPACE() EAT_TRAILING_WHITESPACE_EX('X') + +#define zend_ini_copy_value(retval, str, len) { \ + Z_STRVAL_P(retval) = zend_strndup(str, len); \ + Z_STRLEN_P(retval) = len; \ + Z_TYPE_P(retval) = IS_STRING; \ +} + +#define RETURN_TOKEN(type, str, len) { \ + if (SCNG(scanner_mode) == ZEND_INI_SCANNER_TYPED) { \ + zend_ini_copy_typed_value(ini_lval, type, str, len); \ + } else { \ + zend_ini_copy_value(ini_lval, str, len); \ + } \ + return type; \ +} + +static inline int convert_to_number(zval *retval, const char *str, const int str_len) +{ + zend_uchar type; + int overflow; + long lval; + double dval; + + if ((type = is_numeric_string_ex(str, str_len, &lval, &dval, 0, &overflow)) != 0) { + if (type == IS_LONG) { + ZVAL_LONG(retval, lval); + return SUCCESS; + } else if (type == IS_DOUBLE && !overflow) { + ZVAL_DOUBLE(retval, dval); + return SUCCESS; + } + } + + return FAILURE; +} + +static void zend_ini_copy_typed_value(zval *retval, const int type, const char *str, int len) +{ + switch (type) { + case BOOL_FALSE: + case BOOL_TRUE: + ZVAL_BOOL(retval, type == BOOL_TRUE); + break; + + case NULL_NULL: + ZVAL_NULL(retval); + break; + + case TC_NUMBER: + if (convert_to_number(retval, str, len) == SUCCESS) { + break; + } + /* intentional fall-through */ + default: + zend_ini_copy_value(retval, str, len); + } +} + +static void _yy_push_state(int new_state TSRMLS_DC) +{ + zend_stack_push(&SCNG(state_stack), (void *) &YYGETCONDITION(), sizeof(int)); + YYSETCONDITION(new_state); +} + +#define yy_push_state(state_and_tsrm) _yy_push_state(yyc##state_and_tsrm) + +static void yy_pop_state(TSRMLS_D) +{ + int *stack_state; + zend_stack_top(&SCNG(state_stack), (void **) &stack_state); + YYSETCONDITION(*stack_state); + zend_stack_del_top(&SCNG(state_stack)); +} + +static void yy_scan_buffer(char *str, unsigned int len TSRMLS_DC) +{ + YYCURSOR = (YYCTYPE*)str; + SCNG(yy_start) = YYCURSOR; + YYLIMIT = YYCURSOR + len; +} + +#define ini_filename SCNG(filename) + +/* {{{ init_ini_scanner() +*/ +static int init_ini_scanner(int scanner_mode, zend_file_handle *fh TSRMLS_DC) +{ + /* Sanity check */ + if (scanner_mode != ZEND_INI_SCANNER_NORMAL && scanner_mode != ZEND_INI_SCANNER_RAW && scanner_mode != ZEND_INI_SCANNER_TYPED) { + zend_error(E_WARNING, "Invalid scanner mode"); + return FAILURE; + } + + SCNG(lineno) = 1; + SCNG(scanner_mode) = scanner_mode; + SCNG(yy_in) = fh; + + if (fh != NULL) { + ini_filename = zend_strndup(fh->filename, strlen(fh->filename)); + } else { + ini_filename = NULL; + } + + zend_stack_init(&SCNG(state_stack)); + BEGIN(INITIAL); + + return SUCCESS; +} +/* }}} */ + +/* {{{ shutdown_ini_scanner() +*/ +void shutdown_ini_scanner(TSRMLS_D) +{ + zend_stack_destroy(&SCNG(state_stack)); + if (ini_filename) { + free(ini_filename); + } +} +/* }}} */ + +/* {{{ zend_ini_scanner_get_lineno() +*/ +int zend_ini_scanner_get_lineno(TSRMLS_D) +{ + return SCNG(lineno); +} +/* }}} */ + +/* {{{ zend_ini_scanner_get_filename() +*/ +char *zend_ini_scanner_get_filename(TSRMLS_D) +{ + return ini_filename ? ini_filename : "Unknown"; +} +/* }}} */ + +/* {{{ zend_ini_open_file_for_scanning() +*/ +int zend_ini_open_file_for_scanning(zend_file_handle *fh, int scanner_mode TSRMLS_DC) +{ + char *buf; + size_t size; + + if (zend_stream_fixup(fh, &buf, &size TSRMLS_CC) == FAILURE) { + return FAILURE; + } + + if (init_ini_scanner(scanner_mode, fh TSRMLS_CC) == FAILURE) { + zend_file_handle_dtor(fh TSRMLS_CC); + return FAILURE; + } + + yy_scan_buffer(buf, size TSRMLS_CC); + + return SUCCESS; +} +/* }}} */ + +/* {{{ zend_ini_prepare_string_for_scanning() +*/ +int zend_ini_prepare_string_for_scanning(char *str, int scanner_mode TSRMLS_DC) +{ + int len = strlen(str); + + if (init_ini_scanner(scanner_mode, NULL TSRMLS_CC) == FAILURE) { + return FAILURE; + } + + yy_scan_buffer(str, len TSRMLS_CC); + + return SUCCESS; +} +/* }}} */ + +/* {{{ zend_ini_escape_string() + */ +static void zend_ini_escape_string(zval *lval, char *str, int len, char quote_type TSRMLS_DC) +{ + register char *s, *t; + char *end; + + zend_ini_copy_value(lval, str, len); + + /* convert escape sequences */ + s = t = Z_STRVAL_P(lval); + end = s + Z_STRLEN_P(lval); + + while (s < end) { + if (*s == '\\') { + s++; + if (s >= end) { + *t++ = '\\'; + continue; + } + switch (*s) { + case '"': + if (*s != quote_type) { + *t++ = '\\'; + *t++ = *s; + break; + } + case '\\': + case '$': + *t++ = *s; + Z_STRLEN_P(lval)--; + break; + default: + *t++ = '\\'; + *t++ = *s; + break; + } + } else { + *t++ = *s; + } + if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) { + SCNG(lineno)++; + } + s++; + } + *t = 0; +} +/* }}} */ + +int ini_lex(zval *ini_lval TSRMLS_DC) +{ +restart: + SCNG(yy_text) = YYCURSOR; + +/* yymore_restart: */ + /* detect EOF */ + if (YYCURSOR >= YYLIMIT) { + if (YYSTATE == STATE(ST_VALUE) || YYSTATE == STATE(ST_RAW)) { + BEGIN(INITIAL); + return END_OF_LINE; + } + return 0; + } + + /* Eat any UTF-8 BOM we find in the first 3 bytes */ + if (YYCURSOR == SCNG(yy_start) && YYCURSOR + 3 < YYLIMIT) { + if (memcmp(YYCURSOR, "\xef\xbb\xbf", 3) == 0) { + YYCURSOR += 3; + goto restart; + } + } + +#line 384 "Zend/zend_ini_scanner.c" +{ + YYCTYPE yych; + unsigned int yyaccept = 0; + if (YYGETCONDITION() < 4) { + if (YYGETCONDITION() < 2) { + if (YYGETCONDITION() < 1) { + goto yyc_INITIAL; + } else { + goto yyc_ST_OFFSET; + } + } else { + if (YYGETCONDITION() < 3) { + goto yyc_ST_SECTION_VALUE; + } else { + goto yyc_ST_VALUE; + } + } + } else { + if (YYGETCONDITION() < 6) { + if (YYGETCONDITION() < 5) { + goto yyc_ST_SECTION_RAW; + } else { + goto yyc_ST_DOUBLE_QUOTES; + } + } else { + if (YYGETCONDITION() < 7) { + goto yyc_ST_VARNAME; + } else { + goto yyc_ST_RAW; + } + } + } +/* *********************************** */ +yyc_INITIAL: + { + static const unsigned char yybm[] = { + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 160, 0, 144, 144, 0, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 240, 128, 128, 144, 128, 144, 128, 144, + 128, 128, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 128, 144, 128, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 128, 144, 144, 128, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 128, 128, 128, 128, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + }; + YYDEBUG(1, *YYCURSOR); + YYFILL(5); + yych = *YYCURSOR; + YYDEBUG(-1, yych); + switch (yych) { + case '\t': goto yy5; + case '\n': goto yy7; + case '\r': goto yy9; + case ' ': goto yy10; + case '!': + case '"': + case '$': + case '&': + case '(': + case ')': + case '^': + case '{': + case '|': + case '}': + case '~': goto yy11; + case '#': goto yy13; + case '%': + case '\'': + case '*': + case '+': + case ',': + case '-': + case '.': + case '/': + case ':': + case '<': + case '>': + case '?': + case '@': + case ']': goto yy14; + case ';': goto yy15; + case '=': goto yy17; + case 'F': + case 'f': goto yy19; + case 'N': + case 'n': goto yy20; + case 'O': + case 'o': goto yy21; + case 'T': + case 't': goto yy22; + case 'Y': + case 'y': goto yy23; + case '[': goto yy24; + default: goto yy3; + } +yy3: + YYDEBUG(3, *YYCURSOR); + ++YYCURSOR; + yych = *YYCURSOR; + goto yy27; +yy4: + YYDEBUG(4, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 480 "Zend/zend_ini_scanner.l" + { /* Get option name */ + /* Eat leading whitespace */ + EAT_LEADING_WHITESPACE(); + + /* Eat trailing whitespace */ + EAT_TRAILING_WHITESPACE(); + + RETURN_TOKEN(TC_LABEL, yytext, yyleng); +} +#line 522 "Zend/zend_ini_scanner.c" +yy5: + YYDEBUG(5, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + goto yy74; +yy6: + YYDEBUG(6, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 626 "Zend/zend_ini_scanner.l" + { + /* eat whitespace */ + goto restart; +} +#line 536 "Zend/zend_ini_scanner.c" +yy7: + YYDEBUG(7, *YYCURSOR); + ++YYCURSOR; +yy8: + YYDEBUG(8, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 631 "Zend/zend_ini_scanner.l" + { + SCNG(lineno)++; + return END_OF_LINE; +} +#line 548 "Zend/zend_ini_scanner.c" +yy9: + YYDEBUG(9, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '\n') goto yy77; + goto yy8; +yy10: + YYDEBUG(10, *YYCURSOR); + yyaccept = 1; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ' ') { + if (yych <= '\n') { + if (yych <= 0x08) goto yy27; + if (yych <= '\t') goto yy73; + goto yy77; + } else { + if (yych == '\r') goto yy78; + if (yych <= 0x1F) goto yy27; + goto yy75; + } + } else { + if (yych <= ':') { + if (yych == '#') goto yy64; + goto yy27; + } else { + if (yych <= ';') goto yy59; + if (yych == '=') goto yy57; + goto yy27; + } + } +yy11: + YYDEBUG(11, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(12, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 554 "Zend/zend_ini_scanner.l" + { /* Disallow these chars outside option values */ + return yytext[0]; +} +#line 587 "Zend/zend_ini_scanner.c" +yy13: + YYDEBUG(13, *YYCURSOR); + yyaccept = 1; + yych = *(YYMARKER = ++YYCURSOR); + goto yy65; +yy14: + YYDEBUG(14, *YYCURSOR); + yych = *++YYCURSOR; + goto yy27; +yy15: + YYDEBUG(15, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + goto yy60; + YYDEBUG(16, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 654 "Zend/zend_ini_scanner.l" + { + return 0; +} +#line 608 "Zend/zend_ini_scanner.c" +yy17: + YYDEBUG(17, *YYCURSOR); + ++YYCURSOR; + yych = *YYCURSOR; + goto yy58; +yy18: + YYDEBUG(18, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 490 "Zend/zend_ini_scanner.l" + { /* Start option value */ + if (SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW) { + yy_push_state(ST_RAW TSRMLS_CC); + } else { + yy_push_state(ST_VALUE TSRMLS_CC); + } + return '='; +} +#line 626 "Zend/zend_ini_scanner.c" +yy19: + YYDEBUG(19, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'A') goto yy54; + if (yych == 'a') goto yy54; + goto yy27; +yy20: + YYDEBUG(20, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'U') { + if (yych == 'O') goto yy45; + if (yych <= 'T') goto yy27; + goto yy46; + } else { + if (yych <= 'o') { + if (yych <= 'n') goto yy27; + goto yy45; + } else { + if (yych == 'u') goto yy46; + goto yy27; + } + } +yy21: + YYDEBUG(21, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= 'N') { + if (yych == 'F') goto yy39; + if (yych <= 'M') goto yy27; + goto yy32; + } else { + if (yych <= 'f') { + if (yych <= 'e') goto yy27; + goto yy39; + } else { + if (yych == 'n') goto yy32; + goto yy27; + } + } +yy22: + YYDEBUG(22, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'R') goto yy37; + if (yych == 'r') goto yy37; + goto yy27; +yy23: + YYDEBUG(23, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy28; + if (yych == 'e') goto yy28; + goto yy27; +yy24: + YYDEBUG(24, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(25, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 405 "Zend/zend_ini_scanner.l" + { /* Section start */ + /* Enter section data lookup state */ + if (SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW) { + yy_push_state(ST_SECTION_RAW TSRMLS_CC); + } else { + yy_push_state(ST_SECTION_VALUE TSRMLS_CC); + } + return TC_SECTION; +} +#line 692 "Zend/zend_ini_scanner.c" +yy26: + YYDEBUG(26, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; +yy27: + YYDEBUG(27, *YYCURSOR); + if (yybm[0+yych] & 16) { + goto yy26; + } + if (yych == '[') goto yy29; + goto yy4; +yy28: + YYDEBUG(28, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy32; + if (yych == 's') goto yy32; + goto yy27; +yy29: + YYDEBUG(29, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(30, *YYCURSOR); + if (yybm[0+yych] & 32) { + goto yy29; + } + YYDEBUG(31, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 430 "Zend/zend_ini_scanner.l" + { /* Start of option with offset */ + /* Eat leading whitespace */ + EAT_LEADING_WHITESPACE(); + + /* Eat trailing whitespace and [ */ + EAT_TRAILING_WHITESPACE_EX('['); + + /* Enter offset lookup state */ + yy_push_state(ST_OFFSET TSRMLS_CC); + + RETURN_TOKEN(TC_OFFSET, yytext, yyleng); +} +#line 735 "Zend/zend_ini_scanner.c" +yy32: + YYDEBUG(32, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(33, *YYCURSOR); + if (yybm[0+yych] & 64) { + goto yy32; + } + if (yych <= '\'') { + if (yych <= ' ') { + if (yych <= '\n') { + if (yych <= 0x08) goto yy26; + if (yych <= '\t') goto yy35; + } else { + if (yych != '\r') goto yy26; + } + } else { + if (yych <= '$') { + if (yych == '#') goto yy26; + } else { + if (yych != '&') goto yy26; + } + } + } else { + if (yych <= 'Z') { + if (yych <= ';') { + if (yych <= ')') goto yy34; + if (yych <= ':') goto yy26; + } else { + if (yych != '=') goto yy26; + } + } else { + if (yych <= '^') { + if (yych <= '[') goto yy29; + if (yych <= ']') goto yy26; + } else { + if (yych <= 'z') goto yy26; + if (yych >= 0x7F) goto yy26; + } + } + } +yy34: + YYDEBUG(34, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 468 "Zend/zend_ini_scanner.l" + { /* TRUE value (when used outside option value/offset this causes parse error!) */ + RETURN_TOKEN(BOOL_TRUE, "1", 1); +} +#line 785 "Zend/zend_ini_scanner.c" +yy35: + YYDEBUG(35, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(36, *YYCURSOR); + if (yych == '\t') goto yy35; + if (yych == ' ') goto yy35; + goto yy34; +yy37: + YYDEBUG(37, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'U') goto yy38; + if (yych != 'u') goto yy27; +yy38: + YYDEBUG(38, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy32; + if (yych == 'e') goto yy32; + goto yy27; +yy39: + YYDEBUG(39, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'F') goto yy40; + if (yych != 'f') goto yy27; +yy40: + YYDEBUG(40, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(41, *YYCURSOR); + if (yych <= '&') { + if (yych <= 0x1F) { + if (yych <= '\n') { + if (yych <= 0x08) goto yy26; + if (yych <= '\t') goto yy43; + } else { + if (yych != '\r') goto yy26; + } + } else { + if (yych <= '#') { + if (yych <= ' ') goto yy40; + if (yych >= '#') goto yy26; + } else { + if (yych == '%') goto yy26; + } + } + } else { + if (yych <= '=') { + if (yych <= ':') { + if (yych <= '\'') goto yy26; + if (yych >= '*') goto yy26; + } else { + if (yych == '<') goto yy26; + } + } else { + if (yych <= ']') { + if (yych == '[') goto yy29; + goto yy26; + } else { + if (yych <= '^') goto yy42; + if (yych <= 'z') goto yy26; + if (yych >= 0x7F) goto yy26; + } + } + } +yy42: + YYDEBUG(42, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 472 "Zend/zend_ini_scanner.l" + { /* FALSE value (when used outside option value/offset this causes parse error!)*/ + RETURN_TOKEN(BOOL_FALSE, "", 0); +} +#line 859 "Zend/zend_ini_scanner.c" +yy43: + YYDEBUG(43, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(44, *YYCURSOR); + if (yych == '\t') goto yy43; + if (yych == ' ') goto yy43; + goto yy42; +yy45: + YYDEBUG(45, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '\'') { + if (yych <= 0x1F) { + if (yych <= '\n') { + if (yych <= 0x08) goto yy27; + if (yych <= '\t') goto yy43; + goto yy42; + } else { + if (yych == '\r') goto yy42; + goto yy27; + } + } else { + if (yych <= '#') { + if (yych <= ' ') goto yy40; + if (yych <= '"') goto yy42; + goto yy27; + } else { + if (yych == '%') goto yy27; + if (yych <= '&') goto yy42; + goto yy27; + } + } + } else { + if (yych <= 'N') { + if (yych <= ';') { + if (yych <= ')') goto yy42; + if (yych <= ':') goto yy27; + goto yy42; + } else { + if (yych == '=') goto yy42; + if (yych <= 'M') goto yy27; + goto yy53; + } + } else { + if (yych <= 'm') { + if (yych == '^') goto yy42; + goto yy27; + } else { + if (yych <= 'n') goto yy53; + if (yych <= 'z') goto yy27; + if (yych <= '~') goto yy42; + goto yy27; + } + } + } +yy46: + YYDEBUG(46, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy47; + if (yych != 'l') goto yy27; +yy47: + YYDEBUG(47, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy48; + if (yych != 'l') goto yy27; +yy48: + YYDEBUG(48, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(49, *YYCURSOR); + if (yych <= '&') { + if (yych <= 0x1F) { + if (yych <= '\n') { + if (yych <= 0x08) goto yy26; + if (yych <= '\t') goto yy51; + } else { + if (yych != '\r') goto yy26; + } + } else { + if (yych <= '#') { + if (yych <= ' ') goto yy48; + if (yych >= '#') goto yy26; + } else { + if (yych == '%') goto yy26; + } + } + } else { + if (yych <= '=') { + if (yych <= ':') { + if (yych <= '\'') goto yy26; + if (yych >= '*') goto yy26; + } else { + if (yych == '<') goto yy26; + } + } else { + if (yych <= ']') { + if (yych == '[') goto yy29; + goto yy26; + } else { + if (yych <= '^') goto yy50; + if (yych <= 'z') goto yy26; + if (yych >= 0x7F) goto yy26; + } + } + } +yy50: + YYDEBUG(50, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 476 "Zend/zend_ini_scanner.l" + { + RETURN_TOKEN(NULL_NULL, "", 0); +} +#line 974 "Zend/zend_ini_scanner.c" +yy51: + YYDEBUG(51, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(52, *YYCURSOR); + if (yych == '\t') goto yy51; + if (yych == ' ') goto yy51; + goto yy50; +yy53: + YYDEBUG(53, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy40; + if (yych == 'e') goto yy40; + goto yy27; +yy54: + YYDEBUG(54, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'L') goto yy55; + if (yych != 'l') goto yy27; +yy55: + YYDEBUG(55, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy56; + if (yych != 's') goto yy27; +yy56: + YYDEBUG(56, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy40; + if (yych == 'e') goto yy40; + goto yy27; +yy57: + YYDEBUG(57, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; +yy58: + YYDEBUG(58, *YYCURSOR); + if (yych == '\t') goto yy57; + if (yych == ' ') goto yy57; + goto yy18; +yy59: + YYDEBUG(59, *YYCURSOR); + ++YYCURSOR; + YYFILL(2); + yych = *YYCURSOR; +yy60: + YYDEBUG(60, *YYCURSOR); + if (yybm[0+yych] & 128) { + goto yy59; + } + if (yych >= '\r') goto yy63; +yy61: + YYDEBUG(61, *YYCURSOR); + ++YYCURSOR; +yy62: + YYDEBUG(62, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 636 "Zend/zend_ini_scanner.l" + { /* Comment */ + BEGIN(INITIAL); + SCNG(lineno)++; + return END_OF_LINE; +} +#line 1039 "Zend/zend_ini_scanner.c" +yy63: + YYDEBUG(63, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '\n') goto yy61; + goto yy62; +yy64: + YYDEBUG(64, *YYCURSOR); + yyaccept = 1; + YYMARKER = ++YYCURSOR; + YYFILL(2); + yych = *YYCURSOR; +yy65: + YYDEBUG(65, *YYCURSOR); + if (yych <= '\'') { + if (yych <= ' ') { + if (yych <= '\n') { + if (yych <= 0x08) goto yy64; + if (yych >= '\n') goto yy70; + } else { + if (yych == '\r') goto yy72; + goto yy64; + } + } else { + if (yych <= '$') { + if (yych == '#') goto yy64; + } else { + if (yych != '&') goto yy64; + } + } + } else { + if (yych <= 'Z') { + if (yych <= ';') { + if (yych <= ')') goto yy66; + if (yych <= ':') goto yy64; + } else { + if (yych != '=') goto yy64; + } + } else { + if (yych <= '^') { + if (yych <= '[') goto yy68; + if (yych <= ']') goto yy64; + } else { + if (yych <= 'z') goto yy64; + if (yych >= 0x7F) goto yy64; + } + } + } +yy66: + YYDEBUG(66, *YYCURSOR); + ++YYCURSOR; + YYFILL(2); + yych = *YYCURSOR; + YYDEBUG(67, *YYCURSOR); + if (yych == '\n') goto yy70; + if (yych == '\r') goto yy72; + goto yy66; +yy68: + YYDEBUG(68, *YYCURSOR); + yyaccept = 3; + YYMARKER = ++YYCURSOR; + YYFILL(2); + yych = *YYCURSOR; + YYDEBUG(69, *YYCURSOR); + if (yych <= '\f') { + if (yych <= 0x08) goto yy66; + if (yych <= '\t') goto yy68; + if (yych >= '\v') goto yy66; + } else { + if (yych <= '\r') goto yy72; + if (yych == ' ') goto yy68; + goto yy66; + } +yy70: + YYDEBUG(70, *YYCURSOR); + ++YYCURSOR; +yy71: + YYDEBUG(71, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 642 "Zend/zend_ini_scanner.l" + { /* #Comment */ + zend_error(E_DEPRECATED, "Comments starting with '#' are deprecated in %s on line %d", zend_ini_scanner_get_filename(TSRMLS_C), SCNG(lineno)); + BEGIN(INITIAL); + SCNG(lineno)++; + return END_OF_LINE; +} +#line 1125 "Zend/zend_ini_scanner.c" +yy72: + YYDEBUG(72, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '\n') goto yy70; + goto yy71; +yy73: + YYDEBUG(73, *YYCURSOR); + yyaccept = 0; + YYMARKER = ++YYCURSOR; + YYFILL(2); + yych = *YYCURSOR; +yy74: + YYDEBUG(74, *YYCURSOR); + if (yych <= ' ') { + if (yych <= '\n') { + if (yych <= 0x08) goto yy6; + if (yych <= '\t') goto yy73; + goto yy77; + } else { + if (yych == '\r') goto yy78; + if (yych <= 0x1F) goto yy6; + goto yy73; + } + } else { + if (yych <= ':') { + if (yych == '#') goto yy66; + goto yy6; + } else { + if (yych <= ';') goto yy59; + if (yych == '=') goto yy57; + goto yy6; + } + } +yy75: + YYDEBUG(75, *YYCURSOR); + yyaccept = 1; + YYMARKER = ++YYCURSOR; + YYFILL(2); + yych = *YYCURSOR; + YYDEBUG(76, *YYCURSOR); + if (yych <= '&') { + if (yych <= 0x1F) { + if (yych <= '\n') { + if (yych <= 0x08) goto yy26; + if (yych <= '\t') goto yy73; + } else { + if (yych == '\r') goto yy78; + goto yy26; + } + } else { + if (yych <= '#') { + if (yych <= ' ') goto yy75; + if (yych <= '"') goto yy4; + goto yy64; + } else { + if (yych == '%') goto yy26; + goto yy4; + } + } + } else { + if (yych <= '=') { + if (yych <= ':') { + if (yych <= '\'') goto yy26; + if (yych <= ')') goto yy4; + goto yy26; + } else { + if (yych <= ';') goto yy59; + if (yych <= '<') goto yy26; + goto yy57; + } + } else { + if (yych <= ']') { + if (yych == '[') goto yy29; + goto yy26; + } else { + if (yych <= '^') goto yy4; + if (yych <= 'z') goto yy26; + if (yych <= '~') goto yy4; + goto yy26; + } + } + } +yy77: + YYDEBUG(77, *YYCURSOR); + yych = *++YYCURSOR; + goto yy8; +yy78: + YYDEBUG(78, *YYCURSOR); + ++YYCURSOR; + if ((yych = *YYCURSOR) == '\n') goto yy77; + goto yy8; + } +/* *********************************** */ +yyc_ST_DOUBLE_QUOTES: + { + static const unsigned char yybm[] = { + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 128, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 128, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + }; + YYDEBUG(79, *YYCURSOR); + YYFILL(2); + yych = *YYCURSOR; + if (yych == '"') goto yy83; + if (yych == '$') goto yy85; + YYDEBUG(81, *YYCURSOR); + ++YYCURSOR; +yy82: + YYDEBUG(82, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 586 "Zend/zend_ini_scanner.l" + { /* Escape double quoted string contents */ + if (YYCURSOR > YYLIMIT) { + return 0; + } + + while (YYCURSOR < YYLIMIT) { + switch (*YYCURSOR++) { + case '"': + if (YYCURSOR < YYLIMIT && YYCURSOR[-2] == '\\' && *YYCURSOR != '\r' && *YYCURSOR != '\n') { + continue; + } + break; + case '$': + if (*YYCURSOR == '{') { + break; + } + continue; + case '\\': + if (YYCURSOR < YYLIMIT && *YYCURSOR != '"') { + YYCURSOR++; + } + /* fall through */ + default: + continue; + } + + YYCURSOR--; + break; + } + + yyleng = YYCURSOR - SCNG(yy_text); + + zend_ini_escape_string(ini_lval, yytext, yyleng, '"' TSRMLS_CC); + return TC_QUOTED_STRING; +} +#line 1301 "Zend/zend_ini_scanner.c" +yy83: + YYDEBUG(83, *YYCURSOR); + ++YYCURSOR; + yych = *YYCURSOR; + goto yy89; +yy84: + YYDEBUG(84, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 581 "Zend/zend_ini_scanner.l" + { /* Double quoted '"' string ends */ + yy_pop_state(TSRMLS_C); + return '"'; +} +#line 1315 "Zend/zend_ini_scanner.c" +yy85: + YYDEBUG(85, *YYCURSOR); + yych = *++YYCURSOR; + if (yych != '{') goto yy82; + YYDEBUG(86, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(87, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 448 "Zend/zend_ini_scanner.l" + { /* Variable start */ + yy_push_state(ST_VARNAME TSRMLS_CC); + return TC_DOLLAR_CURLY; +} +#line 1329 "Zend/zend_ini_scanner.c" +yy88: + YYDEBUG(88, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; +yy89: + YYDEBUG(89, *YYCURSOR); + if (yybm[0+yych] & 128) { + goto yy88; + } + goto yy84; + } +/* *********************************** */ +yyc_ST_OFFSET: + { + static const unsigned char yybm[] = { + 66, 66, 66, 66, 66, 66, 66, 66, + 66, 194, 64, 66, 66, 64, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, + 194, 66, 64, 66, 68, 66, 66, 0, + 66, 66, 66, 66, 66, 66, 66, 66, + 114, 114, 114, 114, 114, 114, 114, 114, + 114, 114, 66, 64, 66, 66, 66, 66, + 66, 82, 82, 82, 82, 82, 82, 82, + 82, 82, 82, 82, 82, 82, 82, 82, + 82, 82, 82, 82, 82, 82, 82, 82, + 82, 82, 82, 66, 72, 64, 66, 82, + 66, 82, 82, 82, 82, 82, 82, 82, + 82, 82, 82, 82, 82, 82, 82, 82, + 82, 82, 82, 82, 82, 82, 82, 82, + 82, 82, 82, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 66, 66, 66, 66, 66, 66, + }; + YYDEBUG(90, *YYCURSOR); + YYFILL(2); + yych = *YYCURSOR; + if (yych <= '-') { + if (yych <= ' ') { + if (yych <= '\n') { + if (yych <= 0x08) goto yy92; + if (yych <= '\t') goto yy94; + goto yy95; + } else { + if (yych == '\r') goto yy95; + if (yych >= ' ') goto yy94; + } + } else { + if (yych <= '$') { + if (yych == '"') goto yy97; + if (yych >= '$') goto yy99; + } else { + if (yych == '\'') goto yy100; + if (yych >= '-') goto yy101; + } + } + } else { + if (yych <= 'Z') { + if (yych <= '9') { + if (yych <= '.') goto yy102; + if (yych >= '0') goto yy103; + } else { + if (yych == ';') goto yy95; + if (yych >= 'A') goto yy105; + } + } else { + if (yych <= '^') { + if (yych <= '[') goto yy92; + if (yych <= '\\') goto yy107; + if (yych <= ']') goto yy108; + } else { + if (yych == '`') goto yy92; + if (yych <= 'z') goto yy105; + } + } + } +yy92: + YYDEBUG(92, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + goto yy111; +yy93: + YYDEBUG(93, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 572 "Zend/zend_ini_scanner.l" + { /* Get rest as section/offset value */ + RETURN_TOKEN(TC_STRING, yytext, yyleng); +} +#line 1433 "Zend/zend_ini_scanner.c" +yy94: + YYDEBUG(94, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yybm[0+yych] & 128) { + goto yy137; + } + if (yych == '"') goto yy139; + if (yych == ']') goto yy140; + goto yy111; +yy95: + YYDEBUG(95, *YYCURSOR); + ++YYCURSOR; +yy96: + YYDEBUG(96, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 654 "Zend/zend_ini_scanner.l" + { + return 0; +} +#line 1454 "Zend/zend_ini_scanner.c" +yy97: + YYDEBUG(97, *YYCURSOR); + ++YYCURSOR; +yy98: + YYDEBUG(98, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 576 "Zend/zend_ini_scanner.l" + { /* Double quoted '"' string start */ + yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC); + return '"'; +} +#line 1466 "Zend/zend_ini_scanner.c" +yy99: + YYDEBUG(99, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '\\') { + if (yych <= 0x00) goto yy96; + if (yych <= '[') goto yy110; + goto yy115; + } else { + if (yych == '{') goto yy135; + goto yy110; + } +yy100: + YYDEBUG(100, *YYCURSOR); + yyaccept = 1; + yych = *(YYMARKER = ++YYCURSOR); + if (yybm[0+yych] & 64) { + goto yy131; + } + goto yy96; +yy101: + YYDEBUG(101, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') goto yy111; + if (yych <= '9') goto yy129; + goto yy111; +yy102: + YYDEBUG(102, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') goto yy111; + if (yych <= '9') goto yy127; + goto yy111; +yy103: + YYDEBUG(103, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '\'') { + if (yych <= '\r') { + if (yych == '\n') goto yy104; + if (yych <= '\f') goto yy111; + } else { + if (yych == '"') goto yy104; + if (yych <= '&') goto yy111; + } + } else { + if (yych <= '9') { + if (yych == '.') goto yy123; + if (yych <= '/') goto yy111; + goto yy125; + } else { + if (yych <= ';') { + if (yych <= ':') goto yy111; + } else { + if (yych != ']') goto yy111; + } + } + } +yy104: + YYDEBUG(104, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 550 "Zend/zend_ini_scanner.l" + { /* Get number option value as string */ + RETURN_TOKEN(TC_NUMBER, yytext, yyleng); +} +#line 1532 "Zend/zend_ini_scanner.c" +yy105: + YYDEBUG(105, *YYCURSOR); + yyaccept = 3; + yych = *(YYMARKER = ++YYCURSOR); + if (yybm[0+yych] & 16) { + goto yy121; + } + if (yych <= '"') { + if (yych <= '\f') { + if (yych != '\n') goto yy111; + } else { + if (yych <= '\r') goto yy106; + if (yych <= '!') goto yy111; + } + } else { + if (yych <= ':') { + if (yych != '\'') goto yy111; + } else { + if (yych <= ';') goto yy106; + if (yych != ']') goto yy111; + } + } +yy106: + YYDEBUG(106, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 546 "Zend/zend_ini_scanner.l" + { /* Get constant option value */ + RETURN_TOKEN(TC_CONSTANT, yytext, yyleng); +} +#line 1562 "Zend/zend_ini_scanner.c" +yy107: + YYDEBUG(107, *YYCURSOR); + yych = *++YYCURSOR; + goto yy110; +yy108: + YYDEBUG(108, *YYCURSOR); + ++YYCURSOR; +yy109: + YYDEBUG(109, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 443 "Zend/zend_ini_scanner.l" + { /* End of section or an option offset */ + BEGIN(INITIAL); + return ']'; +} +#line 1578 "Zend/zend_ini_scanner.c" +yy110: + YYDEBUG(110, *YYCURSOR); + yyaccept = 0; + YYMARKER = ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; +yy111: + YYDEBUG(111, *YYCURSOR); + if (yybm[0+yych] & 2) { + goto yy110; + } + if (yych == '$') goto yy113; + if (yych != '\\') goto yy93; +yy112: + YYDEBUG(112, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + goto yy110; +yy113: + YYDEBUG(113, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + if (yych <= '\\') { + if (yych <= 0x00) goto yy114; + if (yych <= '[') goto yy110; + goto yy115; + } else { + if (yych != '{') goto yy110; + } +yy114: + YYDEBUG(114, *YYCURSOR); + YYCURSOR = YYMARKER; + if (yyaccept <= 1) { + if (yyaccept == 0) { + goto yy93; + } else { + goto yy96; + } + } else { + if (yyaccept == 2) { + goto yy104; + } else { + goto yy106; + } + } +yy115: + YYDEBUG(115, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + if (yybm[0+yych] & 4) { + goto yy116; + } + if (yych == '\\') goto yy118; + goto yy110; +yy116: + YYDEBUG(116, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(117, *YYCURSOR); + if (yybm[0+yych] & 4) { + goto yy116; + } + if (yych == '\\') goto yy120; + goto yy110; +yy118: + YYDEBUG(118, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(119, *YYCURSOR); + if (yybm[0+yych] & 4) { + goto yy116; + } + if (yych == '\\') goto yy118; + goto yy110; +yy120: + YYDEBUG(120, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + if (yybm[0+yych] & 4) { + goto yy116; + } + if (yych == '\\') goto yy118; + goto yy110; +yy121: + YYDEBUG(121, *YYCURSOR); + yyaccept = 3; + YYMARKER = ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(122, *YYCURSOR); + if (yybm[0+yych] & 16) { + goto yy121; + } + if (yych <= '$') { + if (yych <= '\r') { + if (yych == '\n') goto yy106; + if (yych <= '\f') goto yy110; + goto yy106; + } else { + if (yych == '"') goto yy106; + if (yych <= '#') goto yy110; + goto yy113; + } + } else { + if (yych <= ';') { + if (yych == '\'') goto yy106; + if (yych <= ':') goto yy110; + goto yy106; + } else { + if (yych <= '[') goto yy110; + if (yych <= '\\') goto yy112; + if (yych <= ']') goto yy106; + goto yy110; + } + } +yy123: + YYDEBUG(123, *YYCURSOR); + yyaccept = 2; + YYMARKER = ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(124, *YYCURSOR); + if (yybm[0+yych] & 32) { + goto yy123; + } + if (yych <= '$') { + if (yych <= '\r') { + if (yych == '\n') goto yy104; + if (yych <= '\f') goto yy110; + goto yy104; + } else { + if (yych == '"') goto yy104; + if (yych <= '#') goto yy110; + goto yy113; + } + } else { + if (yych <= ';') { + if (yych == '\'') goto yy104; + if (yych <= ':') goto yy110; + goto yy104; + } else { + if (yych <= '[') goto yy110; + if (yych <= '\\') goto yy112; + if (yych <= ']') goto yy104; + goto yy110; + } + } +yy125: + YYDEBUG(125, *YYCURSOR); + yyaccept = 2; + YYMARKER = ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(126, *YYCURSOR); + if (yych <= '\'') { + if (yych <= '!') { + if (yych <= '\n') { + if (yych <= '\t') goto yy110; + goto yy104; + } else { + if (yych == '\r') goto yy104; + goto yy110; + } + } else { + if (yych <= '#') { + if (yych <= '"') goto yy104; + goto yy110; + } else { + if (yych <= '$') goto yy113; + if (yych <= '&') goto yy110; + goto yy104; + } + } + } else { + if (yych <= ':') { + if (yych <= '.') { + if (yych <= '-') goto yy110; + goto yy123; + } else { + if (yych <= '/') goto yy110; + if (yych <= '9') goto yy125; + goto yy110; + } + } else { + if (yych <= '[') { + if (yych <= ';') goto yy104; + goto yy110; + } else { + if (yych <= '\\') goto yy112; + if (yych <= ']') goto yy104; + goto yy110; + } + } + } +yy127: + YYDEBUG(127, *YYCURSOR); + yyaccept = 2; + YYMARKER = ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(128, *YYCURSOR); + if (yych <= '&') { + if (yych <= '\r') { + if (yych == '\n') goto yy104; + if (yych <= '\f') goto yy110; + goto yy104; + } else { + if (yych <= '"') { + if (yych <= '!') goto yy110; + goto yy104; + } else { + if (yych == '$') goto yy113; + goto yy110; + } + } + } else { + if (yych <= ':') { + if (yych <= '\'') goto yy104; + if (yych <= '/') goto yy110; + if (yych <= '9') goto yy127; + goto yy110; + } else { + if (yych <= '[') { + if (yych <= ';') goto yy104; + goto yy110; + } else { + if (yych <= '\\') goto yy112; + if (yych <= ']') goto yy104; + goto yy110; + } + } + } +yy129: + YYDEBUG(129, *YYCURSOR); + yyaccept = 2; + YYMARKER = ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(130, *YYCURSOR); + if (yych <= '&') { + if (yych <= '\r') { + if (yych == '\n') goto yy104; + if (yych <= '\f') goto yy110; + goto yy104; + } else { + if (yych <= '"') { + if (yych <= '!') goto yy110; + goto yy104; + } else { + if (yych == '$') goto yy113; + goto yy110; + } + } + } else { + if (yych <= ':') { + if (yych <= '\'') goto yy104; + if (yych <= '/') goto yy110; + if (yych <= '9') goto yy129; + goto yy110; + } else { + if (yych <= '[') { + if (yych <= ';') goto yy104; + goto yy110; + } else { + if (yych <= '\\') goto yy112; + if (yych <= ']') goto yy104; + goto yy110; + } + } + } +yy131: + YYDEBUG(131, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(132, *YYCURSOR); + if (yybm[0+yych] & 64) { + goto yy131; + } + YYDEBUG(133, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(134, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 415 "Zend/zend_ini_scanner.l" + { /* Raw string */ + /* Eat leading and trailing single quotes */ + if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') { + SCNG(yy_text)++; + yyleng = yyleng - 2; + } + RETURN_TOKEN(TC_RAW, yytext, yyleng); +} +#line 1877 "Zend/zend_ini_scanner.c" +yy135: + YYDEBUG(135, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(136, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 448 "Zend/zend_ini_scanner.l" + { /* Variable start */ + yy_push_state(ST_VARNAME TSRMLS_CC); + return TC_DOLLAR_CURLY; +} +#line 1888 "Zend/zend_ini_scanner.c" +yy137: + YYDEBUG(137, *YYCURSOR); + yyaccept = 0; + YYMARKER = ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(138, *YYCURSOR); + if (yybm[0+yych] & 128) { + goto yy137; + } + if (yych <= '$') { + if (yych <= '\r') { + if (yych == '\n') goto yy93; + if (yych <= '\f') goto yy110; + goto yy93; + } else { + if (yych == '"') goto yy139; + if (yych <= '#') goto yy110; + goto yy113; + } + } else { + if (yych <= ';') { + if (yych == '\'') goto yy93; + if (yych <= ':') goto yy110; + goto yy93; + } else { + if (yych <= '[') goto yy110; + if (yych <= '\\') goto yy112; + if (yych <= ']') goto yy140; + goto yy110; + } + } +yy139: + YYDEBUG(139, *YYCURSOR); + yych = *++YYCURSOR; + goto yy98; +yy140: + YYDEBUG(140, *YYCURSOR); + ++YYCURSOR; + yych = *YYCURSOR; + goto yy109; + } +/* *********************************** */ +yyc_ST_RAW: + { + static const unsigned char yybm[] = { + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 192, 0, 64, 64, 0, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 192, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 64, 64, + }; + YYDEBUG(141, *YYCURSOR); + YYFILL(3); + yych = *YYCURSOR; + if (yych <= '\f') { + if (yych <= 0x08) { + if (yych >= 0x01) goto yy145; + } else { + if (yych <= '\t') goto yy147; + if (yych <= '\n') goto yy148; + goto yy145; + } + } else { + if (yych <= ' ') { + if (yych <= '\r') goto yy150; + if (yych <= 0x1F) goto yy145; + goto yy147; + } else { + if (yych == ';') goto yy151; + goto yy145; + } + } + YYDEBUG(143, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(144, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 649 "Zend/zend_ini_scanner.l" + { /* End of option value (if EOF is reached before EOL */ + BEGIN(INITIAL); + return END_OF_LINE; +} +#line 1998 "Zend/zend_ini_scanner.c" +yy145: + YYDEBUG(145, *YYCURSOR); + ++YYCURSOR; +yy146: + YYDEBUG(146, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 499 "Zend/zend_ini_scanner.l" + { /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */ + char *sc = NULL; + while (YYCURSOR < YYLIMIT) { + switch (*YYCURSOR) { + case '\n': + case '\r': + goto end_raw_value_chars; + break; + case ';': + if (sc == NULL) { + sc = YYCURSOR; + } + /* no break */ + default: + YYCURSOR++; + break; + } + } +end_raw_value_chars: + yyleng = YYCURSOR - SCNG(yy_text); + + /* Eat trailing semicolons */ + while (yytext[yyleng - 1] == ';') { + yyleng--; + } + + /* Eat leading and trailing double quotes */ + if (yytext[0] == '"' && yytext[yyleng - 1] == '"') { + SCNG(yy_text)++; + yyleng = yyleng - 2; + } else if (sc) { + YYCURSOR = sc; + yyleng = YYCURSOR - SCNG(yy_text); + } + RETURN_TOKEN(TC_RAW, yytext, yyleng); +} +#line 2042 "Zend/zend_ini_scanner.c" +yy147: + YYDEBUG(147, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '\r') { + if (yych <= 0x08) goto yy146; + if (yych <= '\n') goto yy159; + if (yych <= '\f') goto yy146; + goto yy159; + } else { + if (yych <= ' ') { + if (yych <= 0x1F) goto yy146; + goto yy159; + } else { + if (yych == ';') goto yy159; + goto yy146; + } + } +yy148: + YYDEBUG(148, *YYCURSOR); + ++YYCURSOR; +yy149: + YYDEBUG(149, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 540 "Zend/zend_ini_scanner.l" + { /* End of option value */ + BEGIN(INITIAL); + SCNG(lineno)++; + return END_OF_LINE; +} +#line 2073 "Zend/zend_ini_scanner.c" +yy150: + YYDEBUG(150, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '\n') goto yy157; + goto yy149; +yy151: + YYDEBUG(151, *YYCURSOR); + yyaccept = 1; + yych = *(YYMARKER = ++YYCURSOR); + goto yy153; +yy152: + YYDEBUG(152, *YYCURSOR); + ++YYCURSOR; + YYFILL(2); + yych = *YYCURSOR; +yy153: + YYDEBUG(153, *YYCURSOR); + if (yybm[0+yych] & 64) { + goto yy152; + } + if (yych >= '\r') goto yy156; +yy154: + YYDEBUG(154, *YYCURSOR); + ++YYCURSOR; +yy155: + YYDEBUG(155, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 636 "Zend/zend_ini_scanner.l" + { /* Comment */ + BEGIN(INITIAL); + SCNG(lineno)++; + return END_OF_LINE; +} +#line 2107 "Zend/zend_ini_scanner.c" +yy156: + YYDEBUG(156, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '\n') goto yy154; + goto yy155; +yy157: + YYDEBUG(157, *YYCURSOR); + yych = *++YYCURSOR; + goto yy149; +yy158: + YYDEBUG(158, *YYCURSOR); + yyaccept = 2; + YYMARKER = ++YYCURSOR; + YYFILL(2); + yych = *YYCURSOR; +yy159: + YYDEBUG(159, *YYCURSOR); + if (yybm[0+yych] & 128) { + goto yy158; + } + if (yych <= '\f') { + if (yych == '\n') goto yy157; + } else { + if (yych <= '\r') goto yy161; + if (yych == ';') goto yy152; + } + YYDEBUG(160, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 626 "Zend/zend_ini_scanner.l" + { + /* eat whitespace */ + goto restart; +} +#line 2141 "Zend/zend_ini_scanner.c" +yy161: + YYDEBUG(161, *YYCURSOR); + ++YYCURSOR; + if ((yych = *YYCURSOR) == '\n') goto yy157; + goto yy149; + } +/* *********************************** */ +yyc_ST_SECTION_RAW: + { + static const unsigned char yybm[] = { + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 192, 0, 128, 128, 0, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 192, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 0, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + }; + YYDEBUG(162, *YYCURSOR); + YYFILL(3); + yych = *YYCURSOR; + if (yych <= '\f') { + if (yych == '\n') goto yy166; + } else { + if (yych <= '\r') goto yy166; + if (yych == ']') goto yy168; + } + YYDEBUG(164, *YYCURSOR); + ++YYCURSOR; + yych = *YYCURSOR; + goto yy175; +yy165: + YYDEBUG(165, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 536 "Zend/zend_ini_scanner.l" + { /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */ + RETURN_TOKEN(TC_RAW, yytext, yyleng); +} +#line 2205 "Zend/zend_ini_scanner.c" +yy166: + YYDEBUG(166, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(167, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 654 "Zend/zend_ini_scanner.l" + { + return 0; +} +#line 2215 "Zend/zend_ini_scanner.c" +yy168: + YYDEBUG(168, *YYCURSOR); + ++YYCURSOR; + yych = *YYCURSOR; + goto yy171; +yy169: + YYDEBUG(169, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 424 "Zend/zend_ini_scanner.l" + { /* End of section */ + BEGIN(INITIAL); + SCNG(lineno)++; + return ']'; +} +#line 2230 "Zend/zend_ini_scanner.c" +yy170: + YYDEBUG(170, *YYCURSOR); + ++YYCURSOR; + YYFILL(2); + yych = *YYCURSOR; +yy171: + YYDEBUG(171, *YYCURSOR); + if (yybm[0+yych] & 64) { + goto yy170; + } + if (yych == '\n') goto yy172; + if (yych == '\r') goto yy173; + goto yy169; +yy172: + YYDEBUG(172, *YYCURSOR); + yych = *++YYCURSOR; + goto yy169; +yy173: + YYDEBUG(173, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '\n') goto yy172; + goto yy169; +yy174: + YYDEBUG(174, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; +yy175: + YYDEBUG(175, *YYCURSOR); + if (yybm[0+yych] & 128) { + goto yy174; + } + goto yy165; + } +/* *********************************** */ +yyc_ST_SECTION_VALUE: + { + static const unsigned char yybm[] = { + 132, 132, 132, 132, 132, 132, 132, 132, + 132, 134, 128, 132, 132, 128, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, + 134, 132, 128, 132, 136, 132, 132, 0, + 132, 132, 132, 132, 132, 132, 132, 132, + 228, 228, 228, 228, 228, 228, 228, 228, + 228, 228, 132, 128, 132, 132, 132, 132, + 132, 164, 164, 164, 164, 164, 164, 164, + 164, 164, 164, 164, 164, 164, 164, 164, + 164, 164, 164, 164, 164, 164, 164, 164, + 164, 164, 164, 132, 144, 128, 132, 164, + 132, 164, 164, 164, 164, 164, 164, 164, + 164, 164, 164, 164, 164, 164, 164, 164, + 164, 164, 164, 164, 164, 164, 164, 164, + 164, 164, 164, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, + 132, 132, 132, 132, 132, 132, 132, 132, + }; + YYDEBUG(176, *YYCURSOR); + YYFILL(3); + yych = *YYCURSOR; + if (yych <= '-') { + if (yych <= ' ') { + if (yych <= '\n') { + if (yych <= 0x08) goto yy178; + if (yych <= '\t') goto yy180; + goto yy181; + } else { + if (yych == '\r') goto yy181; + if (yych >= ' ') goto yy180; + } + } else { + if (yych <= '$') { + if (yych == '"') goto yy183; + if (yych >= '$') goto yy185; + } else { + if (yych == '\'') goto yy186; + if (yych >= '-') goto yy187; + } + } + } else { + if (yych <= 'Z') { + if (yych <= '9') { + if (yych <= '.') goto yy188; + if (yych >= '0') goto yy189; + } else { + if (yych == ';') goto yy181; + if (yych >= 'A') goto yy191; + } + } else { + if (yych <= '^') { + if (yych <= '[') goto yy178; + if (yych <= '\\') goto yy193; + if (yych <= ']') goto yy194; + } else { + if (yych == '`') goto yy178; + if (yych <= 'z') goto yy191; + } + } + } +yy178: + YYDEBUG(178, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + goto yy201; +yy179: + YYDEBUG(179, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 572 "Zend/zend_ini_scanner.l" + { /* Get rest as section/offset value */ + RETURN_TOKEN(TC_STRING, yytext, yyleng); +} +#line 2356 "Zend/zend_ini_scanner.c" +yy180: + YYDEBUG(180, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 0x1F) { + if (yych == '\t') goto yy227; + goto yy201; + } else { + if (yych <= ' ') goto yy227; + if (yych == '"') goto yy229; + goto yy201; + } +yy181: + YYDEBUG(181, *YYCURSOR); + ++YYCURSOR; +yy182: + YYDEBUG(182, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 654 "Zend/zend_ini_scanner.l" + { + return 0; +} +#line 2379 "Zend/zend_ini_scanner.c" +yy183: + YYDEBUG(183, *YYCURSOR); + ++YYCURSOR; +yy184: + YYDEBUG(184, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 576 "Zend/zend_ini_scanner.l" + { /* Double quoted '"' string start */ + yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC); + return '"'; +} +#line 2391 "Zend/zend_ini_scanner.c" +yy185: + YYDEBUG(185, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '\\') { + if (yych <= 0x00) goto yy182; + if (yych <= '[') goto yy200; + goto yy205; + } else { + if (yych == '{') goto yy225; + goto yy200; + } +yy186: + YYDEBUG(186, *YYCURSOR); + yyaccept = 1; + yych = *(YYMARKER = ++YYCURSOR); + if (yybm[0+yych] & 128) { + goto yy221; + } + goto yy182; +yy187: + YYDEBUG(187, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') goto yy201; + if (yych <= '9') goto yy219; + goto yy201; +yy188: + YYDEBUG(188, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') goto yy201; + if (yych <= '9') goto yy217; + goto yy201; +yy189: + YYDEBUG(189, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '\'') { + if (yych <= '\r') { + if (yych == '\n') goto yy190; + if (yych <= '\f') goto yy201; + } else { + if (yych == '"') goto yy190; + if (yych <= '&') goto yy201; + } + } else { + if (yych <= '9') { + if (yych == '.') goto yy213; + if (yych <= '/') goto yy201; + goto yy215; + } else { + if (yych <= ';') { + if (yych <= ':') goto yy201; + } else { + if (yych != ']') goto yy201; + } + } + } +yy190: + YYDEBUG(190, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 550 "Zend/zend_ini_scanner.l" + { /* Get number option value as string */ + RETURN_TOKEN(TC_NUMBER, yytext, yyleng); +} +#line 2457 "Zend/zend_ini_scanner.c" +yy191: + YYDEBUG(191, *YYCURSOR); + yyaccept = 3; + yych = *(YYMARKER = ++YYCURSOR); + if (yybm[0+yych] & 32) { + goto yy211; + } + if (yych <= '"') { + if (yych <= '\f') { + if (yych != '\n') goto yy201; + } else { + if (yych <= '\r') goto yy192; + if (yych <= '!') goto yy201; + } + } else { + if (yych <= ':') { + if (yych != '\'') goto yy201; + } else { + if (yych <= ';') goto yy192; + if (yych != ']') goto yy201; + } + } +yy192: + YYDEBUG(192, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 546 "Zend/zend_ini_scanner.l" + { /* Get constant option value */ + RETURN_TOKEN(TC_CONSTANT, yytext, yyleng); +} +#line 2487 "Zend/zend_ini_scanner.c" +yy193: + YYDEBUG(193, *YYCURSOR); + yych = *++YYCURSOR; + goto yy200; +yy194: + YYDEBUG(194, *YYCURSOR); + ++YYCURSOR; + yych = *YYCURSOR; + goto yy197; +yy195: + YYDEBUG(195, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 424 "Zend/zend_ini_scanner.l" + { /* End of section */ + BEGIN(INITIAL); + SCNG(lineno)++; + return ']'; +} +#line 2506 "Zend/zend_ini_scanner.c" +yy196: + YYDEBUG(196, *YYCURSOR); + ++YYCURSOR; + YYFILL(2); + yych = *YYCURSOR; +yy197: + YYDEBUG(197, *YYCURSOR); + if (yybm[0+yych] & 2) { + goto yy196; + } + if (yych == '\n') goto yy198; + if (yych == '\r') goto yy199; + goto yy195; +yy198: + YYDEBUG(198, *YYCURSOR); + yych = *++YYCURSOR; + goto yy195; +yy199: + YYDEBUG(199, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '\n') goto yy198; + goto yy195; +yy200: + YYDEBUG(200, *YYCURSOR); + yyaccept = 0; + YYMARKER = ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; +yy201: + YYDEBUG(201, *YYCURSOR); + if (yybm[0+yych] & 4) { + goto yy200; + } + if (yych == '$') goto yy203; + if (yych != '\\') goto yy179; +yy202: + YYDEBUG(202, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + goto yy200; +yy203: + YYDEBUG(203, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + if (yych <= '\\') { + if (yych <= 0x00) goto yy204; + if (yych <= '[') goto yy200; + goto yy205; + } else { + if (yych != '{') goto yy200; + } +yy204: + YYDEBUG(204, *YYCURSOR); + YYCURSOR = YYMARKER; + if (yyaccept <= 1) { + if (yyaccept == 0) { + goto yy179; + } else { + goto yy182; + } + } else { + if (yyaccept == 2) { + goto yy190; + } else { + goto yy192; + } + } +yy205: + YYDEBUG(205, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + if (yybm[0+yych] & 8) { + goto yy206; + } + if (yych == '\\') goto yy208; + goto yy200; +yy206: + YYDEBUG(206, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(207, *YYCURSOR); + if (yybm[0+yych] & 8) { + goto yy206; + } + if (yych == '\\') goto yy210; + goto yy200; +yy208: + YYDEBUG(208, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(209, *YYCURSOR); + if (yybm[0+yych] & 8) { + goto yy206; + } + if (yych == '\\') goto yy208; + goto yy200; +yy210: + YYDEBUG(210, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + if (yybm[0+yych] & 8) { + goto yy206; + } + if (yych == '\\') goto yy208; + goto yy200; +yy211: + YYDEBUG(211, *YYCURSOR); + yyaccept = 3; + YYMARKER = ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(212, *YYCURSOR); + if (yybm[0+yych] & 32) { + goto yy211; + } + if (yych <= '$') { + if (yych <= '\r') { + if (yych == '\n') goto yy192; + if (yych <= '\f') goto yy200; + goto yy192; + } else { + if (yych == '"') goto yy192; + if (yych <= '#') goto yy200; + goto yy203; + } + } else { + if (yych <= ';') { + if (yych == '\'') goto yy192; + if (yych <= ':') goto yy200; + goto yy192; + } else { + if (yych <= '[') goto yy200; + if (yych <= '\\') goto yy202; + if (yych <= ']') goto yy192; + goto yy200; + } + } +yy213: + YYDEBUG(213, *YYCURSOR); + yyaccept = 2; + YYMARKER = ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(214, *YYCURSOR); + if (yybm[0+yych] & 64) { + goto yy213; + } + if (yych <= '$') { + if (yych <= '\r') { + if (yych == '\n') goto yy190; + if (yych <= '\f') goto yy200; + goto yy190; + } else { + if (yych == '"') goto yy190; + if (yych <= '#') goto yy200; + goto yy203; + } + } else { + if (yych <= ';') { + if (yych == '\'') goto yy190; + if (yych <= ':') goto yy200; + goto yy190; + } else { + if (yych <= '[') goto yy200; + if (yych <= '\\') goto yy202; + if (yych <= ']') goto yy190; + goto yy200; + } + } +yy215: + YYDEBUG(215, *YYCURSOR); + yyaccept = 2; + YYMARKER = ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(216, *YYCURSOR); + if (yych <= '\'') { + if (yych <= '!') { + if (yych <= '\n') { + if (yych <= '\t') goto yy200; + goto yy190; + } else { + if (yych == '\r') goto yy190; + goto yy200; + } + } else { + if (yych <= '#') { + if (yych <= '"') goto yy190; + goto yy200; + } else { + if (yych <= '$') goto yy203; + if (yych <= '&') goto yy200; + goto yy190; + } + } + } else { + if (yych <= ':') { + if (yych <= '.') { + if (yych <= '-') goto yy200; + goto yy213; + } else { + if (yych <= '/') goto yy200; + if (yych <= '9') goto yy215; + goto yy200; + } + } else { + if (yych <= '[') { + if (yych <= ';') goto yy190; + goto yy200; + } else { + if (yych <= '\\') goto yy202; + if (yych <= ']') goto yy190; + goto yy200; + } + } + } +yy217: + YYDEBUG(217, *YYCURSOR); + yyaccept = 2; + YYMARKER = ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(218, *YYCURSOR); + if (yych <= '&') { + if (yych <= '\r') { + if (yych == '\n') goto yy190; + if (yych <= '\f') goto yy200; + goto yy190; + } else { + if (yych <= '"') { + if (yych <= '!') goto yy200; + goto yy190; + } else { + if (yych == '$') goto yy203; + goto yy200; + } + } + } else { + if (yych <= ':') { + if (yych <= '\'') goto yy190; + if (yych <= '/') goto yy200; + if (yych <= '9') goto yy217; + goto yy200; + } else { + if (yych <= '[') { + if (yych <= ';') goto yy190; + goto yy200; + } else { + if (yych <= '\\') goto yy202; + if (yych <= ']') goto yy190; + goto yy200; + } + } + } +yy219: + YYDEBUG(219, *YYCURSOR); + yyaccept = 2; + YYMARKER = ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(220, *YYCURSOR); + if (yych <= '&') { + if (yych <= '\r') { + if (yych == '\n') goto yy190; + if (yych <= '\f') goto yy200; + goto yy190; + } else { + if (yych <= '"') { + if (yych <= '!') goto yy200; + goto yy190; + } else { + if (yych == '$') goto yy203; + goto yy200; + } + } + } else { + if (yych <= ':') { + if (yych <= '\'') goto yy190; + if (yych <= '/') goto yy200; + if (yych <= '9') goto yy219; + goto yy200; + } else { + if (yych <= '[') { + if (yych <= ';') goto yy190; + goto yy200; + } else { + if (yych <= '\\') goto yy202; + if (yych <= ']') goto yy190; + goto yy200; + } + } + } +yy221: + YYDEBUG(221, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(222, *YYCURSOR); + if (yybm[0+yych] & 128) { + goto yy221; + } + YYDEBUG(223, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(224, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 415 "Zend/zend_ini_scanner.l" + { /* Raw string */ + /* Eat leading and trailing single quotes */ + if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') { + SCNG(yy_text)++; + yyleng = yyleng - 2; + } + RETURN_TOKEN(TC_RAW, yytext, yyleng); +} +#line 2827 "Zend/zend_ini_scanner.c" +yy225: + YYDEBUG(225, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(226, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 448 "Zend/zend_ini_scanner.l" + { /* Variable start */ + yy_push_state(ST_VARNAME TSRMLS_CC); + return TC_DOLLAR_CURLY; +} +#line 2838 "Zend/zend_ini_scanner.c" +yy227: + YYDEBUG(227, *YYCURSOR); + yyaccept = 0; + YYMARKER = ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(228, *YYCURSOR); + if (yych <= '"') { + if (yych <= '\f') { + if (yych <= 0x08) goto yy200; + if (yych <= '\t') goto yy227; + if (yych <= '\n') goto yy179; + goto yy200; + } else { + if (yych <= 0x1F) { + if (yych <= '\r') goto yy179; + goto yy200; + } else { + if (yych <= ' ') goto yy227; + if (yych <= '!') goto yy200; + } + } + } else { + if (yych <= ':') { + if (yych <= '$') { + if (yych <= '#') goto yy200; + goto yy203; + } else { + if (yych == '\'') goto yy179; + goto yy200; + } + } else { + if (yych <= '[') { + if (yych <= ';') goto yy179; + goto yy200; + } else { + if (yych <= '\\') goto yy202; + if (yych <= ']') goto yy179; + goto yy200; + } + } + } +yy229: + YYDEBUG(229, *YYCURSOR); + ++YYCURSOR; + yych = *YYCURSOR; + goto yy184; + } +/* *********************************** */ +yyc_ST_VALUE: + { + static const unsigned char yybm[] = { + 160, 162, 162, 162, 162, 162, 162, 162, + 162, 176, 128, 162, 162, 128, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, + 176, 160, 160, 162, 168, 162, 160, 32, + 160, 160, 162, 162, 162, 162, 162, 162, + 230, 230, 230, 230, 230, 230, 230, 230, + 230, 230, 162, 160, 162, 160, 162, 162, + 162, 166, 166, 166, 166, 166, 166, 166, + 166, 166, 166, 166, 166, 166, 166, 166, + 166, 166, 166, 166, 166, 166, 166, 166, + 166, 166, 166, 162, 162, 162, 160, 166, + 162, 166, 166, 166, 166, 166, 166, 166, + 166, 166, 166, 166, 166, 166, 166, 166, + 166, 166, 166, 166, 166, 166, 166, 166, + 166, 166, 166, 162, 160, 162, 160, 162, + 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, + 162, 162, 162, 162, 162, 162, 162, 162, + }; + YYDEBUG(230, *YYCURSOR); + YYFILL(6); + yych = *YYCURSOR; + YYDEBUG(-1, yych); + switch (yych) { + case 0x00: goto yy232; + case '\t': + case ' ': goto yy236; + case '\n': goto yy238; + case '\r': goto yy240; + case '!': + case '&': + case '(': + case ')': + case '^': + case '|': + case '~': goto yy241; + case '"': goto yy243; + case '$': goto yy245; + case '\'': goto yy246; + case '-': goto yy247; + case '.': goto yy248; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': goto yy249; + case ';': goto yy251; + case '=': goto yy252; + case 'A': + case 'B': + case 'C': + case 'D': + case 'E': + case 'G': + case 'H': + case 'I': + case 'J': + case 'K': + case 'L': + case 'M': + case 'P': + case 'Q': + case 'R': + case 'S': + case 'U': + case 'V': + case 'W': + case 'X': + case 'Z': + case '_': + case 'a': + case 'b': + case 'c': + case 'd': + case 'e': + case 'g': + case 'h': + case 'i': + case 'j': + case 'k': + case 'l': + case 'm': + case 'p': + case 'q': + case 'r': + case 's': + case 'u': + case 'v': + case 'w': + case 'x': + case 'z': goto yy254; + case 'F': + case 'f': goto yy256; + case 'N': + case 'n': goto yy257; + case 'O': + case 'o': goto yy258; + case 'T': + case 't': goto yy259; + case 'Y': + case 'y': goto yy260; + default: goto yy234; + } +yy232: + YYDEBUG(232, *YYCURSOR); + ++YYCURSOR; +yy233: + YYDEBUG(233, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 649 "Zend/zend_ini_scanner.l" + { /* End of option value (if EOF is reached before EOL */ + BEGIN(INITIAL); + return END_OF_LINE; +} +#line 3024 "Zend/zend_ini_scanner.c" +yy234: + YYDEBUG(234, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + goto yy262; +yy235: + YYDEBUG(235, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 568 "Zend/zend_ini_scanner.l" + { /* Get everything else as option/offset value */ + RETURN_TOKEN(TC_STRING, yytext, yyleng); +} +#line 3037 "Zend/zend_ini_scanner.c" +yy236: + YYDEBUG(236, *YYCURSOR); + yyaccept = 1; + yych = *(YYMARKER = ++YYCURSOR); + goto yy316; +yy237: + YYDEBUG(237, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 622 "Zend/zend_ini_scanner.l" + { + RETURN_TOKEN(TC_WHITESPACE, yytext, yyleng); +} +#line 3050 "Zend/zend_ini_scanner.c" +yy238: + YYDEBUG(238, *YYCURSOR); + ++YYCURSOR; +yy239: + YYDEBUG(239, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 540 "Zend/zend_ini_scanner.l" + { /* End of option value */ + BEGIN(INITIAL); + SCNG(lineno)++; + return END_OF_LINE; +} +#line 3063 "Zend/zend_ini_scanner.c" +yy240: + YYDEBUG(240, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '\n') goto yy314; + goto yy239; +yy241: + YYDEBUG(241, *YYCURSOR); + ++YYCURSOR; + yych = *YYCURSOR; + goto yy313; +yy242: + YYDEBUG(242, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 558 "Zend/zend_ini_scanner.l" + { /* Boolean operators */ + return yytext[0]; +} +#line 3081 "Zend/zend_ini_scanner.c" +yy243: + YYDEBUG(243, *YYCURSOR); + ++YYCURSOR; +yy244: + YYDEBUG(244, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 576 "Zend/zend_ini_scanner.l" + { /* Double quoted '"' string start */ + yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC); + return '"'; +} +#line 3093 "Zend/zend_ini_scanner.c" +yy245: + YYDEBUG(245, *YYCURSOR); + yych = *++YYCURSOR; + if (yych <= '\\') { + if (yych <= 0x00) goto yy233; + if (yych <= '[') goto yy261; + goto yy268; + } else { + if (yych == '{') goto yy310; + goto yy261; + } +yy246: + YYDEBUG(246, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + if (yybm[0+yych] & 128) { + goto yy306; + } + goto yy233; +yy247: + YYDEBUG(247, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') goto yy262; + if (yych <= '9') goto yy304; + goto yy262; +yy248: + YYDEBUG(248, *YYCURSOR); + yyaccept = 0; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') goto yy262; + if (yych <= '9') goto yy302; + goto yy262; +yy249: + YYDEBUG(249, *YYCURSOR); + yyaccept = 3; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '/') { + if (yych <= 0x1F) { + if (yych <= '\n') { + if (yych <= 0x00) goto yy250; + if (yych <= 0x08) goto yy262; + } else { + if (yych != '\r') goto yy262; + } + } else { + if (yych <= ')') { + if (yych <= '"') goto yy250; + if (yych <= '%') goto yy262; + } else { + if (yych == '.') goto yy298; + goto yy262; + } + } + } else { + if (yych <= ']') { + if (yych <= ';') { + if (yych <= '9') goto yy300; + if (yych <= ':') goto yy262; + } else { + if (yych != '=') goto yy262; + } + } else { + if (yych <= '|') { + if (yych <= '^') goto yy250; + if (yych <= '{') goto yy262; + } else { + if (yych != '~') goto yy262; + } + } + } +yy250: + YYDEBUG(250, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 550 "Zend/zend_ini_scanner.l" + { /* Get number option value as string */ + RETURN_TOKEN(TC_NUMBER, yytext, yyleng); +} +#line 3172 "Zend/zend_ini_scanner.c" +yy251: + YYDEBUG(251, *YYCURSOR); + yyaccept = 2; + yych = *(YYMARKER = ++YYCURSOR); + goto yy294; +yy252: + YYDEBUG(252, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(253, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 562 "Zend/zend_ini_scanner.l" + { /* Make = used in option value to trigger error */ + yyless(0); + BEGIN(INITIAL); + return END_OF_LINE; +} +#line 3189 "Zend/zend_ini_scanner.c" +yy254: + YYDEBUG(254, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yybm[0+yych] & 4) { + goto yy263; + } + if (yych <= ':') { + if (yych <= '\r') { + if (yych <= 0x08) { + if (yych >= 0x01) goto yy262; + } else { + if (yych <= '\n') goto yy255; + if (yych <= '\f') goto yy262; + } + } else { + if (yych <= '"') { + if (yych <= 0x1F) goto yy262; + } else { + if (yych <= '%') goto yy262; + if (yych >= '*') goto yy262; + } + } + } else { + if (yych <= '^') { + if (yych <= '<') { + if (yych >= '<') goto yy262; + } else { + if (yych <= '=') goto yy255; + if (yych <= ']') goto yy262; + } + } else { + if (yych <= '|') { + if (yych <= '{') goto yy262; + } else { + if (yych != '~') goto yy262; + } + } + } +yy255: + YYDEBUG(255, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 546 "Zend/zend_ini_scanner.l" + { /* Get constant option value */ + RETURN_TOKEN(TC_CONSTANT, yytext, yyleng); +} +#line 3236 "Zend/zend_ini_scanner.c" +yy256: + YYDEBUG(256, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '<') { + if (yych <= '"') { + if (yych <= '\n') { + if (yych <= 0x00) goto yy255; + if (yych <= 0x08) goto yy262; + goto yy255; + } else { + if (yych == '\r') goto yy255; + if (yych <= 0x1F) goto yy262; + goto yy255; + } + } else { + if (yych <= '/') { + if (yych <= '%') goto yy262; + if (yych <= ')') goto yy255; + goto yy262; + } else { + if (yych <= '9') goto yy263; + if (yych == ';') goto yy255; + goto yy262; + } + } + } else { + if (yych <= '_') { + if (yych <= 'A') { + if (yych <= '=') goto yy255; + if (yych <= '@') goto yy262; + goto yy290; + } else { + if (yych <= 'Z') goto yy263; + if (yych <= ']') goto yy262; + if (yych <= '^') goto yy255; + goto yy263; + } + } else { + if (yych <= '{') { + if (yych <= '`') goto yy262; + if (yych <= 'a') goto yy290; + if (yych <= 'z') goto yy263; + goto yy262; + } else { + if (yych == '}') goto yy262; + if (yych <= '~') goto yy255; + goto yy262; + } + } + } +yy257: + YYDEBUG(257, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'N') { + if (yych <= '%') { + if (yych <= '\f') { + if (yych <= 0x00) goto yy255; + if (yych <= 0x08) goto yy262; + if (yych <= '\n') goto yy255; + goto yy262; + } else { + if (yych <= '\r') goto yy255; + if (yych <= 0x1F) goto yy262; + if (yych <= '"') goto yy255; + goto yy262; + } + } else { + if (yych <= ':') { + if (yych <= ')') goto yy255; + if (yych <= '/') goto yy262; + if (yych <= '9') goto yy263; + goto yy262; + } else { + if (yych <= '<') { + if (yych <= ';') goto yy255; + goto yy262; + } else { + if (yych <= '=') goto yy255; + if (yych <= '@') goto yy262; + goto yy263; + } + } + } + } else { + if (yych <= 'n') { + if (yych <= 'Z') { + if (yych <= 'O') goto yy282; + if (yych == 'U') goto yy283; + goto yy263; + } else { + if (yych <= '^') { + if (yych <= ']') goto yy262; + goto yy255; + } else { + if (yych == '`') goto yy262; + goto yy263; + } + } + } else { + if (yych <= 'z') { + if (yych <= 'o') goto yy282; + if (yych == 'u') goto yy283; + goto yy263; + } else { + if (yych <= '|') { + if (yych <= '{') goto yy262; + goto yy255; + } else { + if (yych == '~') goto yy255; + goto yy262; + } + } + } + } +yy258: + YYDEBUG(258, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= 'E') { + if (yych <= '%') { + if (yych <= '\f') { + if (yych <= 0x00) goto yy255; + if (yych <= 0x08) goto yy262; + if (yych <= '\n') goto yy255; + goto yy262; + } else { + if (yych <= '\r') goto yy255; + if (yych <= 0x1F) goto yy262; + if (yych <= '"') goto yy255; + goto yy262; + } + } else { + if (yych <= ':') { + if (yych <= ')') goto yy255; + if (yych <= '/') goto yy262; + if (yych <= '9') goto yy263; + goto yy262; + } else { + if (yych <= '<') { + if (yych <= ';') goto yy255; + goto yy262; + } else { + if (yych <= '=') goto yy255; + if (yych <= '@') goto yy262; + goto yy263; + } + } + } + } else { + if (yych <= 'e') { + if (yych <= 'Z') { + if (yych <= 'F') goto yy277; + if (yych == 'N') goto yy271; + goto yy263; + } else { + if (yych <= '^') { + if (yych <= ']') goto yy262; + goto yy255; + } else { + if (yych == '`') goto yy262; + goto yy263; + } + } + } else { + if (yych <= 'z') { + if (yych <= 'f') goto yy277; + if (yych == 'n') goto yy271; + goto yy263; + } else { + if (yych <= '|') { + if (yych <= '{') goto yy262; + goto yy255; + } else { + if (yych == '~') goto yy255; + goto yy262; + } + } + } + } +yy259: + YYDEBUG(259, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '=') { + if (yych <= '"') { + if (yych <= '\n') { + if (yych <= 0x00) goto yy255; + if (yych <= 0x08) goto yy262; + goto yy255; + } else { + if (yych == '\r') goto yy255; + if (yych <= 0x1F) goto yy262; + goto yy255; + } + } else { + if (yych <= '9') { + if (yych <= '%') goto yy262; + if (yych <= ')') goto yy255; + if (yych <= '/') goto yy262; + goto yy263; + } else { + if (yych == ';') goto yy255; + if (yych <= '<') goto yy262; + goto yy255; + } + } + } else { + if (yych <= '`') { + if (yych <= 'Z') { + if (yych <= '@') goto yy262; + if (yych == 'R') goto yy275; + goto yy263; + } else { + if (yych <= ']') goto yy262; + if (yych <= '^') goto yy255; + if (yych <= '_') goto yy263; + goto yy262; + } + } else { + if (yych <= '{') { + if (yych == 'r') goto yy275; + if (yych <= 'z') goto yy263; + goto yy262; + } else { + if (yych == '}') goto yy262; + if (yych <= '~') goto yy255; + goto yy262; + } + } + } +yy260: + YYDEBUG(260, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '=') { + if (yych <= '"') { + if (yych <= '\n') { + if (yych <= 0x00) goto yy255; + if (yych <= 0x08) goto yy262; + goto yy255; + } else { + if (yych == '\r') goto yy255; + if (yych <= 0x1F) goto yy262; + goto yy255; + } + } else { + if (yych <= '9') { + if (yych <= '%') goto yy262; + if (yych <= ')') goto yy255; + if (yych <= '/') goto yy262; + goto yy263; + } else { + if (yych == ';') goto yy255; + if (yych <= '<') goto yy262; + goto yy255; + } + } + } else { + if (yych <= '`') { + if (yych <= 'Z') { + if (yych <= '@') goto yy262; + if (yych == 'E') goto yy265; + goto yy263; + } else { + if (yych <= ']') goto yy262; + if (yych <= '^') goto yy255; + if (yych <= '_') goto yy263; + goto yy262; + } + } else { + if (yych <= '{') { + if (yych == 'e') goto yy265; + if (yych <= 'z') goto yy263; + goto yy262; + } else { + if (yych == '}') goto yy262; + if (yych <= '~') goto yy255; + goto yy262; + } + } + } +yy261: + YYDEBUG(261, *YYCURSOR); + yyaccept = 0; + YYMARKER = ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; +yy262: + YYDEBUG(262, *YYCURSOR); + if (yybm[0+yych] & 2) { + goto yy261; + } + if (yych == '$') goto yy266; + goto yy235; +yy263: + YYDEBUG(263, *YYCURSOR); + yyaccept = 4; + YYMARKER = ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(264, *YYCURSOR); + if (yybm[0+yych] & 4) { + goto yy263; + } + if (yych <= ')') { + if (yych <= '\r') { + if (yych <= 0x08) { + if (yych <= 0x00) goto yy255; + goto yy261; + } else { + if (yych <= '\n') goto yy255; + if (yych <= '\f') goto yy261; + goto yy255; + } + } else { + if (yych <= '#') { + if (yych <= 0x1F) goto yy261; + if (yych <= '"') goto yy255; + goto yy261; + } else { + if (yych <= '$') goto yy266; + if (yych <= '%') goto yy261; + goto yy255; + } + } + } else { + if (yych <= ']') { + if (yych <= ';') { + if (yych <= ':') goto yy261; + goto yy255; + } else { + if (yych == '=') goto yy255; + goto yy261; + } + } else { + if (yych <= '|') { + if (yych <= '^') goto yy255; + if (yych <= '{') goto yy261; + goto yy255; + } else { + if (yych == '~') goto yy255; + goto yy261; + } + } + } +yy265: + YYDEBUG(265, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '=') { + if (yych <= '"') { + if (yych <= '\n') { + if (yych <= 0x00) goto yy255; + if (yych <= 0x08) goto yy262; + goto yy255; + } else { + if (yych == '\r') goto yy255; + if (yych <= 0x1F) goto yy262; + goto yy255; + } + } else { + if (yych <= '9') { + if (yych <= '%') goto yy262; + if (yych <= ')') goto yy255; + if (yych <= '/') goto yy262; + goto yy263; + } else { + if (yych == ';') goto yy255; + if (yych <= '<') goto yy262; + goto yy255; + } + } + } else { + if (yych <= '`') { + if (yych <= 'Z') { + if (yych <= '@') goto yy262; + if (yych == 'S') goto yy271; + goto yy263; + } else { + if (yych <= ']') goto yy262; + if (yych <= '^') goto yy255; + if (yych <= '_') goto yy263; + goto yy262; + } + } else { + if (yych <= '{') { + if (yych == 's') goto yy271; + if (yych <= 'z') goto yy263; + goto yy262; + } else { + if (yych == '}') goto yy262; + if (yych <= '~') goto yy255; + goto yy262; + } + } + } +yy266: + YYDEBUG(266, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + if (yych <= '\\') { + if (yych <= 0x00) goto yy267; + if (yych <= '[') goto yy261; + goto yy268; + } else { + if (yych != '{') goto yy261; + } +yy267: + YYDEBUG(267, *YYCURSOR); + YYCURSOR = YYMARKER; + if (yyaccept <= 3) { + if (yyaccept <= 1) { + if (yyaccept == 0) { + goto yy235; + } else { + goto yy237; + } + } else { + if (yyaccept == 2) { + goto yy233; + } else { + goto yy250; + } + } + } else { + if (yyaccept <= 5) { + if (yyaccept == 4) { + goto yy255; + } else { + goto yy272; + } + } else { + if (yyaccept == 6) { + goto yy279; + } else { + goto yy286; + } + } + } +yy268: + YYDEBUG(268, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + if (yybm[0+yych] & 8) { + goto yy269; + } + goto yy261; +yy269: + YYDEBUG(269, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(270, *YYCURSOR); + if (yybm[0+yych] & 8) { + goto yy269; + } + if (yych <= 0x00) goto yy235; + if (yych == '\\') goto yy268; + goto yy261; +yy271: + YYDEBUG(271, *YYCURSOR); + yyaccept = 5; + yych = *(YYMARKER = ++YYCURSOR); + if (yybm[0+yych] & 16) { + goto yy273; + } + if (yych <= ';') { + if (yych <= ' ') { + if (yych <= '\n') { + if (yych <= 0x00) goto yy272; + if (yych <= '\t') goto yy262; + } else { + if (yych != '\r') goto yy262; + } + } else { + if (yych <= ')') { + if (yych <= '"') goto yy272; + if (yych <= '%') goto yy262; + } else { + if (yych <= '/') goto yy262; + if (yych <= '9') goto yy263; + if (yych <= ':') goto yy262; + } + } + } else { + if (yych <= '_') { + if (yych <= '@') { + if (yych != '=') goto yy262; + } else { + if (yych <= 'Z') goto yy263; + if (yych <= ']') goto yy262; + if (yych >= '_') goto yy263; + } + } else { + if (yych <= '{') { + if (yych <= '`') goto yy262; + if (yych <= 'z') goto yy263; + goto yy262; + } else { + if (yych == '}') goto yy262; + if (yych >= 0x7F) goto yy262; + } + } + } +yy272: + YYDEBUG(272, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 468 "Zend/zend_ini_scanner.l" + { /* TRUE value (when used outside option value/offset this causes parse error!) */ + RETURN_TOKEN(BOOL_TRUE, "1", 1); +} +#line 3752 "Zend/zend_ini_scanner.c" +yy273: + YYDEBUG(273, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(274, *YYCURSOR); + if (yybm[0+yych] & 16) { + goto yy273; + } + goto yy272; +yy275: + YYDEBUG(275, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '=') { + if (yych <= '"') { + if (yych <= '\n') { + if (yych <= 0x00) goto yy255; + if (yych <= 0x08) goto yy262; + goto yy255; + } else { + if (yych == '\r') goto yy255; + if (yych <= 0x1F) goto yy262; + goto yy255; + } + } else { + if (yych <= '9') { + if (yych <= '%') goto yy262; + if (yych <= ')') goto yy255; + if (yych <= '/') goto yy262; + goto yy263; + } else { + if (yych == ';') goto yy255; + if (yych <= '<') goto yy262; + goto yy255; + } + } + } else { + if (yych <= '`') { + if (yych <= 'Z') { + if (yych <= '@') goto yy262; + if (yych != 'U') goto yy263; + } else { + if (yych <= ']') goto yy262; + if (yych <= '^') goto yy255; + if (yych <= '_') goto yy263; + goto yy262; + } + } else { + if (yych <= '{') { + if (yych == 'u') goto yy276; + if (yych <= 'z') goto yy263; + goto yy262; + } else { + if (yych == '}') goto yy262; + if (yych <= '~') goto yy255; + goto yy262; + } + } + } +yy276: + YYDEBUG(276, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '=') { + if (yych <= '"') { + if (yych <= '\n') { + if (yych <= 0x00) goto yy255; + if (yych <= 0x08) goto yy262; + goto yy255; + } else { + if (yych == '\r') goto yy255; + if (yych <= 0x1F) goto yy262; + goto yy255; + } + } else { + if (yych <= '9') { + if (yych <= '%') goto yy262; + if (yych <= ')') goto yy255; + if (yych <= '/') goto yy262; + goto yy263; + } else { + if (yych == ';') goto yy255; + if (yych <= '<') goto yy262; + goto yy255; + } + } + } else { + if (yych <= '`') { + if (yych <= 'Z') { + if (yych <= '@') goto yy262; + if (yych == 'E') goto yy271; + goto yy263; + } else { + if (yych <= ']') goto yy262; + if (yych <= '^') goto yy255; + if (yych <= '_') goto yy263; + goto yy262; + } + } else { + if (yych <= '{') { + if (yych == 'e') goto yy271; + if (yych <= 'z') goto yy263; + goto yy262; + } else { + if (yych == '}') goto yy262; + if (yych <= '~') goto yy255; + goto yy262; + } + } + } +yy277: + YYDEBUG(277, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '=') { + if (yych <= '"') { + if (yych <= '\n') { + if (yych <= 0x00) goto yy255; + if (yych <= 0x08) goto yy262; + goto yy255; + } else { + if (yych == '\r') goto yy255; + if (yych <= 0x1F) goto yy262; + goto yy255; + } + } else { + if (yych <= '9') { + if (yych <= '%') goto yy262; + if (yych <= ')') goto yy255; + if (yych <= '/') goto yy262; + goto yy263; + } else { + if (yych == ';') goto yy255; + if (yych <= '<') goto yy262; + goto yy255; + } + } + } else { + if (yych <= '`') { + if (yych <= 'Z') { + if (yych <= '@') goto yy262; + if (yych != 'F') goto yy263; + } else { + if (yych <= ']') goto yy262; + if (yych <= '^') goto yy255; + if (yych <= '_') goto yy263; + goto yy262; + } + } else { + if (yych <= '{') { + if (yych == 'f') goto yy278; + if (yych <= 'z') goto yy263; + goto yy262; + } else { + if (yych == '}') goto yy262; + if (yych <= '~') goto yy255; + goto yy262; + } + } + } +yy278: + YYDEBUG(278, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yybm[0+yych] & 4) { + goto yy263; + } + if (yych <= ')') { + if (yych <= '\f') { + if (yych <= 0x08) { + if (yych >= 0x01) goto yy262; + } else { + if (yych <= '\t') goto yy280; + if (yych >= '\v') goto yy262; + } + } else { + if (yych <= ' ') { + if (yych <= '\r') goto yy279; + if (yych <= 0x1F) goto yy262; + goto yy280; + } else { + if (yych <= '"') goto yy279; + if (yych <= '%') goto yy262; + } + } + } else { + if (yych <= ']') { + if (yych <= ';') { + if (yych <= ':') goto yy262; + } else { + if (yych != '=') goto yy262; + } + } else { + if (yych <= '|') { + if (yych <= '^') goto yy279; + if (yych <= '{') goto yy262; + } else { + if (yych != '~') goto yy262; + } + } + } +yy279: + YYDEBUG(279, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 472 "Zend/zend_ini_scanner.l" + { /* FALSE value (when used outside option value/offset this causes parse error!)*/ + RETURN_TOKEN(BOOL_FALSE, "", 0); +} +#line 3962 "Zend/zend_ini_scanner.c" +yy280: + YYDEBUG(280, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(281, *YYCURSOR); + if (yych == '\t') goto yy280; + if (yych == ' ') goto yy280; + goto yy279; +yy282: + YYDEBUG(282, *YYCURSOR); + yyaccept = 6; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '<') { + if (yych <= ' ') { + if (yych <= '\n') { + if (yych <= 0x00) goto yy279; + if (yych <= 0x08) goto yy262; + if (yych <= '\t') goto yy280; + goto yy279; + } else { + if (yych == '\r') goto yy279; + if (yych <= 0x1F) goto yy262; + goto yy280; + } + } else { + if (yych <= '/') { + if (yych <= '"') goto yy279; + if (yych <= '%') goto yy262; + if (yych <= ')') goto yy279; + goto yy262; + } else { + if (yych <= '9') goto yy263; + if (yych == ';') goto yy279; + goto yy262; + } + } + } else { + if (yych <= '_') { + if (yych <= 'N') { + if (yych <= '=') goto yy279; + if (yych <= '@') goto yy262; + if (yych <= 'M') goto yy263; + goto yy289; + } else { + if (yych <= 'Z') goto yy263; + if (yych <= ']') goto yy262; + if (yych <= '^') goto yy279; + goto yy263; + } + } else { + if (yych <= 'z') { + if (yych <= '`') goto yy262; + if (yych == 'n') goto yy289; + goto yy263; + } else { + if (yych <= '|') { + if (yych <= '{') goto yy262; + goto yy279; + } else { + if (yych == '~') goto yy279; + goto yy262; + } + } + } + } +yy283: + YYDEBUG(283, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '=') { + if (yych <= '"') { + if (yych <= '\n') { + if (yych <= 0x00) goto yy255; + if (yych <= 0x08) goto yy262; + goto yy255; + } else { + if (yych == '\r') goto yy255; + if (yych <= 0x1F) goto yy262; + goto yy255; + } + } else { + if (yych <= '9') { + if (yych <= '%') goto yy262; + if (yych <= ')') goto yy255; + if (yych <= '/') goto yy262; + goto yy263; + } else { + if (yych == ';') goto yy255; + if (yych <= '<') goto yy262; + goto yy255; + } + } + } else { + if (yych <= '`') { + if (yych <= 'Z') { + if (yych <= '@') goto yy262; + if (yych != 'L') goto yy263; + } else { + if (yych <= ']') goto yy262; + if (yych <= '^') goto yy255; + if (yych <= '_') goto yy263; + goto yy262; + } + } else { + if (yych <= '{') { + if (yych == 'l') goto yy284; + if (yych <= 'z') goto yy263; + goto yy262; + } else { + if (yych == '}') goto yy262; + if (yych <= '~') goto yy255; + goto yy262; + } + } + } +yy284: + YYDEBUG(284, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '=') { + if (yych <= '"') { + if (yych <= '\n') { + if (yych <= 0x00) goto yy255; + if (yych <= 0x08) goto yy262; + goto yy255; + } else { + if (yych == '\r') goto yy255; + if (yych <= 0x1F) goto yy262; + goto yy255; + } + } else { + if (yych <= '9') { + if (yych <= '%') goto yy262; + if (yych <= ')') goto yy255; + if (yych <= '/') goto yy262; + goto yy263; + } else { + if (yych == ';') goto yy255; + if (yych <= '<') goto yy262; + goto yy255; + } + } + } else { + if (yych <= '`') { + if (yych <= 'Z') { + if (yych <= '@') goto yy262; + if (yych != 'L') goto yy263; + } else { + if (yych <= ']') goto yy262; + if (yych <= '^') goto yy255; + if (yych <= '_') goto yy263; + goto yy262; + } + } else { + if (yych <= '{') { + if (yych == 'l') goto yy285; + if (yych <= 'z') goto yy263; + goto yy262; + } else { + if (yych == '}') goto yy262; + if (yych <= '~') goto yy255; + goto yy262; + } + } + } +yy285: + YYDEBUG(285, *YYCURSOR); + yyaccept = 7; + yych = *(YYMARKER = ++YYCURSOR); + if (yybm[0+yych] & 4) { + goto yy263; + } + if (yych <= ')') { + if (yych <= '\f') { + if (yych <= 0x08) { + if (yych >= 0x01) goto yy262; + } else { + if (yych <= '\t') goto yy287; + if (yych >= '\v') goto yy262; + } + } else { + if (yych <= ' ') { + if (yych <= '\r') goto yy286; + if (yych <= 0x1F) goto yy262; + goto yy287; + } else { + if (yych <= '"') goto yy286; + if (yych <= '%') goto yy262; + } + } + } else { + if (yych <= ']') { + if (yych <= ';') { + if (yych <= ':') goto yy262; + } else { + if (yych != '=') goto yy262; + } + } else { + if (yych <= '|') { + if (yych <= '^') goto yy286; + if (yych <= '{') goto yy262; + } else { + if (yych != '~') goto yy262; + } + } + } +yy286: + YYDEBUG(286, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 476 "Zend/zend_ini_scanner.l" + { + RETURN_TOKEN(NULL_NULL, "", 0); +} +#line 4177 "Zend/zend_ini_scanner.c" +yy287: + YYDEBUG(287, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(288, *YYCURSOR); + if (yych == '\t') goto yy287; + if (yych == ' ') goto yy287; + goto yy286; +yy289: + YYDEBUG(289, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '=') { + if (yych <= '"') { + if (yych <= '\n') { + if (yych <= 0x00) goto yy255; + if (yych <= 0x08) goto yy262; + goto yy255; + } else { + if (yych == '\r') goto yy255; + if (yych <= 0x1F) goto yy262; + goto yy255; + } + } else { + if (yych <= '9') { + if (yych <= '%') goto yy262; + if (yych <= ')') goto yy255; + if (yych <= '/') goto yy262; + goto yy263; + } else { + if (yych == ';') goto yy255; + if (yych <= '<') goto yy262; + goto yy255; + } + } + } else { + if (yych <= '`') { + if (yych <= 'Z') { + if (yych <= '@') goto yy262; + if (yych == 'E') goto yy278; + goto yy263; + } else { + if (yych <= ']') goto yy262; + if (yych <= '^') goto yy255; + if (yych <= '_') goto yy263; + goto yy262; + } + } else { + if (yych <= '{') { + if (yych == 'e') goto yy278; + if (yych <= 'z') goto yy263; + goto yy262; + } else { + if (yych == '}') goto yy262; + if (yych <= '~') goto yy255; + goto yy262; + } + } + } +yy290: + YYDEBUG(290, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '=') { + if (yych <= '"') { + if (yych <= '\n') { + if (yych <= 0x00) goto yy255; + if (yych <= 0x08) goto yy262; + goto yy255; + } else { + if (yych == '\r') goto yy255; + if (yych <= 0x1F) goto yy262; + goto yy255; + } + } else { + if (yych <= '9') { + if (yych <= '%') goto yy262; + if (yych <= ')') goto yy255; + if (yych <= '/') goto yy262; + goto yy263; + } else { + if (yych == ';') goto yy255; + if (yych <= '<') goto yy262; + goto yy255; + } + } + } else { + if (yych <= '`') { + if (yych <= 'Z') { + if (yych <= '@') goto yy262; + if (yych != 'L') goto yy263; + } else { + if (yych <= ']') goto yy262; + if (yych <= '^') goto yy255; + if (yych <= '_') goto yy263; + goto yy262; + } + } else { + if (yych <= '{') { + if (yych == 'l') goto yy291; + if (yych <= 'z') goto yy263; + goto yy262; + } else { + if (yych == '}') goto yy262; + if (yych <= '~') goto yy255; + goto yy262; + } + } + } +yy291: + YYDEBUG(291, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '=') { + if (yych <= '"') { + if (yych <= '\n') { + if (yych <= 0x00) goto yy255; + if (yych <= 0x08) goto yy262; + goto yy255; + } else { + if (yych == '\r') goto yy255; + if (yych <= 0x1F) goto yy262; + goto yy255; + } + } else { + if (yych <= '9') { + if (yych <= '%') goto yy262; + if (yych <= ')') goto yy255; + if (yych <= '/') goto yy262; + goto yy263; + } else { + if (yych == ';') goto yy255; + if (yych <= '<') goto yy262; + goto yy255; + } + } + } else { + if (yych <= '`') { + if (yych <= 'Z') { + if (yych <= '@') goto yy262; + if (yych != 'S') goto yy263; + } else { + if (yych <= ']') goto yy262; + if (yych <= '^') goto yy255; + if (yych <= '_') goto yy263; + goto yy262; + } + } else { + if (yych <= '{') { + if (yych == 's') goto yy292; + if (yych <= 'z') goto yy263; + goto yy262; + } else { + if (yych == '}') goto yy262; + if (yych <= '~') goto yy255; + goto yy262; + } + } + } +yy292: + YYDEBUG(292, *YYCURSOR); + yyaccept = 4; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= '=') { + if (yych <= '"') { + if (yych <= '\n') { + if (yych <= 0x00) goto yy255; + if (yych <= 0x08) goto yy262; + goto yy255; + } else { + if (yych == '\r') goto yy255; + if (yych <= 0x1F) goto yy262; + goto yy255; + } + } else { + if (yych <= '9') { + if (yych <= '%') goto yy262; + if (yych <= ')') goto yy255; + if (yych <= '/') goto yy262; + goto yy263; + } else { + if (yych == ';') goto yy255; + if (yych <= '<') goto yy262; + goto yy255; + } + } + } else { + if (yych <= '`') { + if (yych <= 'Z') { + if (yych <= '@') goto yy262; + if (yych == 'E') goto yy278; + goto yy263; + } else { + if (yych <= ']') goto yy262; + if (yych <= '^') goto yy255; + if (yych <= '_') goto yy263; + goto yy262; + } + } else { + if (yych <= '{') { + if (yych == 'e') goto yy278; + if (yych <= 'z') goto yy263; + goto yy262; + } else { + if (yych == '}') goto yy262; + if (yych <= '~') goto yy255; + goto yy262; + } + } + } +yy293: + YYDEBUG(293, *YYCURSOR); + ++YYCURSOR; + YYFILL(2); + yych = *YYCURSOR; +yy294: + YYDEBUG(294, *YYCURSOR); + if (yybm[0+yych] & 32) { + goto yy293; + } + if (yych >= '\r') goto yy297; +yy295: + YYDEBUG(295, *YYCURSOR); + ++YYCURSOR; +yy296: + YYDEBUG(296, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 636 "Zend/zend_ini_scanner.l" + { /* Comment */ + BEGIN(INITIAL); + SCNG(lineno)++; + return END_OF_LINE; +} +#line 4412 "Zend/zend_ini_scanner.c" +yy297: + YYDEBUG(297, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == '\n') goto yy295; + goto yy296; +yy298: + YYDEBUG(298, *YYCURSOR); + yyaccept = 3; + YYMARKER = ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(299, *YYCURSOR); + if (yybm[0+yych] & 64) { + goto yy298; + } + if (yych <= ')') { + if (yych <= '\r') { + if (yych <= 0x08) { + if (yych <= 0x00) goto yy250; + goto yy261; + } else { + if (yych <= '\n') goto yy250; + if (yych <= '\f') goto yy261; + goto yy250; + } + } else { + if (yych <= '#') { + if (yych <= 0x1F) goto yy261; + if (yych <= '"') goto yy250; + goto yy261; + } else { + if (yych <= '$') goto yy266; + if (yych <= '%') goto yy261; + goto yy250; + } + } + } else { + if (yych <= ']') { + if (yych <= ';') { + if (yych <= ':') goto yy261; + goto yy250; + } else { + if (yych == '=') goto yy250; + goto yy261; + } + } else { + if (yych <= '|') { + if (yych <= '^') goto yy250; + if (yych <= '{') goto yy261; + goto yy250; + } else { + if (yych == '~') goto yy250; + goto yy261; + } + } + } +yy300: + YYDEBUG(300, *YYCURSOR); + yyaccept = 3; + YYMARKER = ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(301, *YYCURSOR); + if (yych <= '.') { + if (yych <= 0x1F) { + if (yych <= '\n') { + if (yych <= 0x00) goto yy250; + if (yych <= 0x08) goto yy261; + goto yy250; + } else { + if (yych == '\r') goto yy250; + goto yy261; + } + } else { + if (yych <= '$') { + if (yych <= '"') goto yy250; + if (yych <= '#') goto yy261; + goto yy266; + } else { + if (yych <= '%') goto yy261; + if (yych <= ')') goto yy250; + if (yych <= '-') goto yy261; + goto yy298; + } + } + } else { + if (yych <= '=') { + if (yych <= ':') { + if (yych <= '/') goto yy261; + if (yych <= '9') goto yy300; + goto yy261; + } else { + if (yych == '<') goto yy261; + goto yy250; + } + } else { + if (yych <= '{') { + if (yych == '^') goto yy250; + goto yy261; + } else { + if (yych == '}') goto yy261; + if (yych <= '~') goto yy250; + goto yy261; + } + } + } +yy302: + YYDEBUG(302, *YYCURSOR); + yyaccept = 3; + YYMARKER = ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(303, *YYCURSOR); + if (yych <= '/') { + if (yych <= 0x1F) { + if (yych <= '\n') { + if (yych <= 0x00) goto yy250; + if (yych <= 0x08) goto yy261; + goto yy250; + } else { + if (yych == '\r') goto yy250; + goto yy261; + } + } else { + if (yych <= '$') { + if (yych <= '"') goto yy250; + if (yych <= '#') goto yy261; + goto yy266; + } else { + if (yych <= '%') goto yy261; + if (yych <= ')') goto yy250; + goto yy261; + } + } + } else { + if (yych <= ']') { + if (yych <= ';') { + if (yych <= '9') goto yy302; + if (yych <= ':') goto yy261; + goto yy250; + } else { + if (yych == '=') goto yy250; + goto yy261; + } + } else { + if (yych <= '|') { + if (yych <= '^') goto yy250; + if (yych <= '{') goto yy261; + goto yy250; + } else { + if (yych == '~') goto yy250; + goto yy261; + } + } + } +yy304: + YYDEBUG(304, *YYCURSOR); + yyaccept = 3; + YYMARKER = ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(305, *YYCURSOR); + if (yych <= '/') { + if (yych <= 0x1F) { + if (yych <= '\n') { + if (yych <= 0x00) goto yy250; + if (yych <= 0x08) goto yy261; + goto yy250; + } else { + if (yych == '\r') goto yy250; + goto yy261; + } + } else { + if (yych <= '$') { + if (yych <= '"') goto yy250; + if (yych <= '#') goto yy261; + goto yy266; + } else { + if (yych <= '%') goto yy261; + if (yych <= ')') goto yy250; + goto yy261; + } + } + } else { + if (yych <= ']') { + if (yych <= ';') { + if (yych <= '9') goto yy304; + if (yych <= ':') goto yy261; + goto yy250; + } else { + if (yych == '=') goto yy250; + goto yy261; + } + } else { + if (yych <= '|') { + if (yych <= '^') goto yy250; + if (yych <= '{') goto yy261; + goto yy250; + } else { + if (yych == '~') goto yy250; + goto yy261; + } + } + } +yy306: + YYDEBUG(306, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(307, *YYCURSOR); + if (yybm[0+yych] & 128) { + goto yy306; + } + YYDEBUG(308, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(309, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 415 "Zend/zend_ini_scanner.l" + { /* Raw string */ + /* Eat leading and trailing single quotes */ + if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') { + SCNG(yy_text)++; + yyleng = yyleng - 2; + } + RETURN_TOKEN(TC_RAW, yytext, yyleng); +} +#line 4639 "Zend/zend_ini_scanner.c" +yy310: + YYDEBUG(310, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(311, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 448 "Zend/zend_ini_scanner.l" + { /* Variable start */ + yy_push_state(ST_VARNAME TSRMLS_CC); + return TC_DOLLAR_CURLY; +} +#line 4650 "Zend/zend_ini_scanner.c" +yy312: + YYDEBUG(312, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; +yy313: + YYDEBUG(313, *YYCURSOR); + if (yych == '\t') goto yy312; + if (yych == ' ') goto yy312; + goto yy242; +yy314: + YYDEBUG(314, *YYCURSOR); + yych = *++YYCURSOR; + goto yy239; +yy315: + YYDEBUG(315, *YYCURSOR); + yyaccept = 1; + YYMARKER = ++YYCURSOR; + YYFILL(2); + yych = *YYCURSOR; +yy316: + YYDEBUG(316, *YYCURSOR); + if (yych <= 0x1F) { + if (yych <= '\n') { + if (yych <= 0x08) goto yy237; + if (yych <= '\t') goto yy315; + goto yy314; + } else { + if (yych == '\r') goto yy318; + goto yy237; + } + } else { + if (yych <= '"') { + if (yych <= ' ') goto yy315; + if (yych <= '!') goto yy237; + } else { + if (yych == ';') goto yy293; + goto yy237; + } + } + YYDEBUG(317, *YYCURSOR); + yych = *++YYCURSOR; + goto yy244; +yy318: + YYDEBUG(318, *YYCURSOR); + ++YYCURSOR; + if ((yych = *YYCURSOR) == '\n') goto yy314; + goto yy239; + } +/* *********************************** */ +yyc_ST_VARNAME: + { + static const unsigned char yybm[] = { + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 0, 0, 128, 128, 0, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 0, 0, 128, 0, 128, 0, 128, + 0, 0, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 0, 128, 0, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 0, 128, 128, 0, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 0, 0, 0, 0, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 128, 128, 128, 128, + }; + YYDEBUG(319, *YYCURSOR); + YYFILL(2); + yych = *YYCURSOR; + if (yych <= ')') { + if (yych <= '"') { + if (yych <= '\f') { + if (yych <= 0x08) goto yy321; + if (yych <= '\n') goto yy323; + } else { + if (yych <= '\r') goto yy323; + if (yych >= '!') goto yy323; + } + } else { + if (yych <= '%') { + if (yych == '$') goto yy323; + } else { + if (yych != '\'') goto yy323; + } + } + } else { + if (yych <= '[') { + if (yych <= '<') { + if (yych == ';') goto yy323; + } else { + if (yych <= '=') goto yy323; + if (yych >= '[') goto yy323; + } + } else { + if (yych <= 'z') { + if (yych == '^') goto yy323; + } else { + if (yych == '}') goto yy325; + if (yych <= '~') goto yy323; + } + } + } +yy321: + YYDEBUG(321, *YYCURSOR); + ++YYCURSOR; + yych = *YYCURSOR; + goto yy328; +yy322: + YYDEBUG(322, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 453 "Zend/zend_ini_scanner.l" + { /* Variable name */ + /* Eat leading whitespace */ + EAT_LEADING_WHITESPACE(); + + /* Eat trailing whitespace */ + EAT_TRAILING_WHITESPACE(); + + RETURN_TOKEN(TC_VARNAME, yytext, yyleng); +} +#line 4791 "Zend/zend_ini_scanner.c" +yy323: + YYDEBUG(323, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(324, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 654 "Zend/zend_ini_scanner.l" + { + return 0; +} +#line 4801 "Zend/zend_ini_scanner.c" +yy325: + YYDEBUG(325, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(326, *YYCURSOR); + yyleng = YYCURSOR - SCNG(yy_text); +#line 463 "Zend/zend_ini_scanner.l" + { /* Variable end */ + yy_pop_state(TSRMLS_C); + return '}'; +} +#line 4812 "Zend/zend_ini_scanner.c" +yy327: + YYDEBUG(327, *YYCURSOR); + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; +yy328: + YYDEBUG(328, *YYCURSOR); + if (yybm[0+yych] & 128) { + goto yy327; + } + goto yy322; + } +} +#line 658 "Zend/zend_ini_scanner.l" + +} diff --git a/Zend/zend_ini_scanner.h b/Zend/zend_ini_scanner.h index aafe7efddef..c81e3605d8f 100644 --- a/Zend/zend_ini_scanner.h +++ b/Zend/zend_ini_scanner.h @@ -25,6 +25,7 @@ /* Scanner modes */ #define ZEND_INI_SCANNER_NORMAL 0 /* Normal mode. [DEFAULT] */ #define ZEND_INI_SCANNER_RAW 1 /* Raw mode. Option values are not parsed */ +#define ZEND_INI_SCANNER_TYPED 2 /* Typed mode. */ BEGIN_EXTERN_C() int zend_ini_scanner_get_lineno(TSRMLS_D); diff --git a/Zend/zend_ini_scanner.l b/Zend/zend_ini_scanner.l index 6207c76b270..54c642c3abd 100644 --- a/Zend/zend_ini_scanner.l +++ b/Zend/zend_ini_scanner.l @@ -24,6 +24,7 @@ #include #include "zend.h" +#include "zend_API.h" #include "zend_globals.h" #include #include "zend_ini_scanner.h" @@ -137,9 +138,55 @@ ZEND_API zend_ini_scanner_globals ini_scanner_globals; Z_TYPE_P(retval) = IS_STRING; \ } -#define RETURN_TOKEN(type, str, len) { \ - zend_ini_copy_value(ini_lval, str, len); \ - return type; \ +#define RETURN_TOKEN(type, str, len) { \ + if (SCNG(scanner_mode) == ZEND_INI_SCANNER_TYPED) { \ + zend_ini_copy_typed_value(ini_lval, type, str, len); \ + } else { \ + zend_ini_copy_value(ini_lval, str, len); \ + } \ + return type; \ +} + +static inline int convert_to_number(zval *retval, const char *str, const int str_len) +{ + zend_uchar type; + int overflow; + long lval; + double dval; + + if ((type = is_numeric_string_ex(str, str_len, &lval, &dval, 0, &overflow)) != 0) { + if (type == IS_LONG) { + ZVAL_LONG(retval, lval); + return SUCCESS; + } else if (type == IS_DOUBLE && !overflow) { + ZVAL_DOUBLE(retval, dval); + return SUCCESS; + } + } + + return FAILURE; +} + +static void zend_ini_copy_typed_value(zval *retval, const int type, const char *str, int len) +{ + switch (type) { + case BOOL_FALSE: + case BOOL_TRUE: + ZVAL_BOOL(retval, type == BOOL_TRUE); + break; + + case NULL_NULL: + ZVAL_NULL(retval); + break; + + case TC_NUMBER: + if (convert_to_number(retval, str, len) == SUCCESS) { + break; + } + /* intentional fall-through */ + default: + zend_ini_copy_value(retval, str, len); + } } static void _yy_push_state(int new_state TSRMLS_DC) @@ -172,7 +219,7 @@ static void yy_scan_buffer(char *str, unsigned int len TSRMLS_DC) static int init_ini_scanner(int scanner_mode, zend_file_handle *fh TSRMLS_DC) { /* Sanity check */ - if (scanner_mode != ZEND_INI_SCANNER_NORMAL && scanner_mode != ZEND_INI_SCANNER_RAW) { + if (scanner_mode != ZEND_INI_SCANNER_NORMAL && scanner_mode != ZEND_INI_SCANNER_RAW && scanner_mode != ZEND_INI_SCANNER_TYPED) { zend_error(E_WARNING, "Invalid scanner mode"); return FAILURE; } @@ -422,10 +469,14 @@ SECTION_VALUE_CHARS ([^$\n\r;"'\]\\]|("\\"{ANY_CHAR})|{LITERAL_DOLLAR}) RETURN_TOKEN(BOOL_TRUE, "1", 1); } -("false"|"off"|"no"|"none"|"null"){TABS_AND_SPACES}* { /* FALSE value (when used outside option value/offset this causes parse error!)*/ +("false"|"off"|"no"|"none"){TABS_AND_SPACES}* { /* FALSE value (when used outside option value/offset this causes parse error!)*/ RETURN_TOKEN(BOOL_FALSE, "", 0); } +("null"){TABS_AND_SPACES}* { + RETURN_TOKEN(NULL_NULL, "", 0); +} + {LABEL} { /* Get option name */ /* Eat leading whitespace */ EAT_LEADING_WHITESPACE(); diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c index fed2a4f0fb5..ca14b28ccd2 100644 --- a/ext/standard/basic_functions.c +++ b/ext/standard/basic_functions.c @@ -3561,6 +3561,7 @@ PHP_MINIT_FUNCTION(basic) /* {{{ */ REGISTER_LONG_CONSTANT("INI_SCANNER_NORMAL", ZEND_INI_SCANNER_NORMAL, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("INI_SCANNER_RAW", ZEND_INI_SCANNER_RAW, CONST_CS | CONST_PERSISTENT); + REGISTER_LONG_CONSTANT("INI_SCANNER_TYPED", ZEND_INI_SCANNER_TYPED, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("PHP_URL_SCHEME", PHP_URL_SCHEME, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("PHP_URL_HOST", PHP_URL_HOST, CONST_CS | CONST_PERSISTENT);