Back to index

php5  5.3.10
Defines | Functions | Variables
zend_ini_scanner.c File Reference
#include <errno.h>
#include "zend.h"
#include "zend_globals.h"
#include <zend_ini_parser.h>
#include "zend_ini_scanner.h"
#include "zend_ini_scanner_defs.h"

Go to the source code of this file.

Defines

#define YYDEBUG(s, c)
#define YYCTYPE   unsigned char
#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
#define BEGIN(state)   YYSETCONDITION(STATE(state))
#define YYSTATE   YYGETCONDITION()
#define yytext   ((char*)SCNG(yy_text))
#define yyleng   SCNG(yy_leng)
#define yyless(x)
#define YYMAXFILL   6
#define SCNG   INI_SCNG
#define EAT_LEADING_WHITESPACE()
#define EAT_TRAILING_WHITESPACE_EX(ch)
#define EAT_TRAILING_WHITESPACE()   EAT_TRAILING_WHITESPACE_EX('X')
#define zend_ini_copy_value(retval, str, len)
#define RETURN_TOKEN(type, str, len)
#define yy_push_state(state_and_tsrm)   _yy_push_state(yyc##state_and_tsrm)
#define ini_filename   SCNG(filename)

Functions

static void _yy_push_state (int new_state TSRMLS_DC)
static void yy_pop_state (TSRMLS_D)
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)
void shutdown_ini_scanner (TSRMLS_D)
int zend_ini_scanner_get_lineno (TSRMLS_D)
char * zend_ini_scanner_get_filename (TSRMLS_D)
int zend_ini_open_file_for_scanning (zend_file_handle *fh, int scanner_mode TSRMLS_DC)
int zend_ini_prepare_string_for_scanning (char *str, int scanner_mode TSRMLS_DC)
static void zend_ini_escape_string (zval *lval, char *str, int len, char quote_type TSRMLS_DC)
int ini_lex (zval *ini_lval TSRMLS_DC)

Variables

ZEND_API zend_ini_scanner_globals ini_scanner_globals

Define Documentation

#define BEGIN (   state)    YYSETCONDITION(STATE(state))

Definition at line 55 of file zend_ini_scanner.c.

Value:
while (yytext[0]) {                              \
              if (yytext[0] == ' ' || yytext[0] == '\t') { \
                     SCNG(yy_text)++;                         \
                     yyleng--;                                \
              } else {                                     \
                     break;                                   \
              }                                            \
       }

Definition at line 111 of file zend_ini_scanner.c.

Definition at line 134 of file zend_ini_scanner.c.

#define EAT_TRAILING_WHITESPACE_EX (   ch)
Value:
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--;                                   \
       }

Definition at line 122 of file zend_ini_scanner.c.

#define ini_filename   SCNG(filename)

Definition at line 170 of file zend_ini_scanner.c.

#define RETURN_TOKEN (   type,
  str,
  len 
)
Value:
{           \
       zend_ini_copy_value(ini_lval, str, len);     \
       return type;                                 \
}

Definition at line 142 of file zend_ini_scanner.c.

#define SCNG   INI_SCNG

Definition at line 103 of file zend_ini_scanner.c.

#define STATE (   name)    yyc##name

Definition at line 52 of file zend_ini_scanner.c.

#define yy_push_state (   state_and_tsrm)    _yy_push_state(yyc##state_and_tsrm)

Definition at line 153 of file zend_ini_scanner.c.

#define YYCTYPE   unsigned char

Definition at line 41 of file zend_ini_scanner.c.

#define YYCURSOR   SCNG(yy_cursor)

Definition at line 45 of file zend_ini_scanner.c.

#define YYDEBUG (   s,
 
)

Definition at line 36 of file zend_ini_scanner.c.

#define YYFILL (   n)    { if (YYCURSOR > YYLIMIT) return 0; }

Definition at line 44 of file zend_ini_scanner.c.

#define YYGETCONDITION ( )    SCNG(yy_state)

Definition at line 49 of file zend_ini_scanner.c.

#define yyleng   SCNG(yy_leng)

Definition at line 58 of file zend_ini_scanner.c.

#define yyless (   x)
Value:
do {   YYCURSOR = (unsigned char*)yytext + x; \
                                                 yyleng   = (unsigned int)x; } while(0)

Definition at line 59 of file zend_ini_scanner.c.

#define YYLIMIT   SCNG(yy_limit)

Definition at line 46 of file zend_ini_scanner.c.

#define YYMARKER   SCNG(yy_marker)

Definition at line 47 of file zend_ini_scanner.c.

#define YYMAXFILL   6

Definition at line 66 of file zend_ini_scanner.c.

#define YYSETCONDITION (   s)    SCNG(yy_state) = s

Definition at line 50 of file zend_ini_scanner.c.

#define YYSTATE   YYGETCONDITION()

Definition at line 56 of file zend_ini_scanner.c.

#define yytext   ((char*)SCNG(yy_text))

Definition at line 57 of file zend_ini_scanner.c.

#define zend_ini_copy_value (   retval,
  str,
  len 
)
Value:
{  \
       Z_STRVAL_P(retval) = zend_strndup(str, len); \
       Z_STRLEN_P(retval) = len;                    \
       Z_TYPE_P(retval) = IS_STRING;                \
}

Definition at line 136 of file zend_ini_scanner.c.


Function Documentation

static void _yy_push_state ( int new_state  TSRMLS_DC) [static]

Definition at line 147 of file zend_ini_scanner.c.

{
       zend_stack_push(&SCNG(state_stack), (void *) &YYGETCONDITION(), sizeof(int));
       YYSETCONDITION(new_state);
}

Here is the call graph for this function:

int ini_lex ( zval *ini_lval  TSRMLS_DC)

Definition at line 310 of file zend_ini_scanner.c.

{
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 334 "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, 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, 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 '~':     goto yy10;
              case '#':     goto yy12;
              case '%':
              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 426 "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 473 "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 544 "Zend/zend_ini_scanner.l"
              {
       /* eat whitespace */
       goto restart;
}
#line 487 "Zend/zend_ini_scanner.c"
yy6:
              YYDEBUG(6, *YYCURSOR);
              ++YYCURSOR;
yy7:
              YYDEBUG(7, *YYCURSOR);
              yyleng = YYCURSOR - SCNG(yy_text);
#line 549 "Zend/zend_ini_scanner.l"
              {
       SCNG(lineno)++;
       return END_OF_LINE;
}
#line 499 "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 472 "Zend/zend_ini_scanner.l"
              { /* Disallow these chars outside option values */
       return yytext[0];
}
#line 538 "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 572 "Zend/zend_ini_scanner.l"
              {
       return 0;
}
#line 559 "Zend/zend_ini_scanner.c"
yy16:
              YYDEBUG(16, *YYCURSOR);
              ++YYCURSOR;
              yych = *YYCURSOR;
              goto yy52;
yy17:
              YYDEBUG(17, *YYCURSOR);
              yyleng = YYCURSOR - SCNG(yy_text);
#line 436 "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 577 "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 355 "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 643 "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 380 "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 686 "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 <= '\r') {
                            if (yych <= '\t') {
                                   if (yych <= 0x08) goto yy25;
                                   goto yy34;
                            } else {
                                   if (yych <= '\n') goto yy33;
                                   if (yych <= '\f') goto yy25;
                            }
                     } else {
                            if (yych <= '#') {
                                   if (yych <= ' ') goto yy25;
                                   if (yych >= '#') goto yy25;
                            } else {
                                   if (yych == '%') goto yy25;
                            }
                     }
              } else {
                     if (yych <= '<') {
                            if (yych <= ')') {
                                   if (yych <= '\'') goto yy25;
                            } else {
                                   if (yych != ';') goto yy25;
                            }
                     } else {
                            if (yych <= '[') {
                                   if (yych <= '=') goto yy33;
                                   if (yych <= 'Z') goto yy25;
                                   goto yy28;
                            } else {
                                   if (yych <= 'z') goto yy25;
                                   if (yych >= 0x7F) goto yy25;
                            }
                     }
              }
yy33:
              YYDEBUG(33, *YYCURSOR);
              yyleng = YYCURSOR - SCNG(yy_text);
#line 418 "Zend/zend_ini_scanner.l"
              { /* TRUE value (when used outside option value/offset this causes parse error!) */
       RETURN_TOKEN(BOOL_TRUE, "1", 1);
}
#line 738 "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 <= '\r') {
                            if (yych <= '\t') {
                                   if (yych <= 0x08) goto yy25;
                                   goto yy42;
                            } else {
                                   if (yych <= '\n') goto yy41;
                                   if (yych <= '\f') goto yy25;
                            }
                     } else {
                            if (yych <= '"') {
                                   if (yych <= 0x1F) goto yy25;
                                   if (yych <= ' ') goto yy39;
                            } else {
                                   if (yych != '$') goto yy25;
                            }
                     }
              } else {
                     if (yych <= '<') {
                            if (yych <= ')') {
                                   if (yych == '\'') goto yy25;
                            } else {
                                   if (yych != ';') goto yy25;
                            }
                     } else {
                            if (yych <= '[') {
                                   if (yych <= '=') goto yy41;
                                   if (yych <= 'Z') goto yy25;
                                   goto yy28;
                            } else {
                                   if (yych <= 'z') goto yy25;
                                   if (yych >= 0x7F) goto yy25;
                            }
                     }
              }
yy41:
              YYDEBUG(41, *YYCURSOR);
              yyleng = YYCURSOR - SCNG(yy_text);
#line 422 "Zend/zend_ini_scanner.l"
              { /* FALSE value (when used outside option value/offset this causes parse error!)*/
       RETURN_TOKEN(BOOL_FALSE, "", 0);
}
#line 812 "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;
                                   goto yy41;
                            }
                     }
              } else {
                     if (yych <= '=') {
                            if (yych <= ':') {
                                   if (yych <= '\'') goto yy26;
                                   if (yych <= ')') goto yy41;
                                   goto yy26;
                            } else {
                                   if (yych == '<') goto yy26;
                                   goto yy41;
                            }
                     } else {
                            if (yych <= 'm') {
                                   if (yych == 'N') goto yy47;
                                   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 554 "Zend/zend_ini_scanner.l"
              { /* Comment */
       BEGIN(INITIAL);
       SCNG(lineno)++;
       return END_OF_LINE;
}
#line 933 "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 <= '\r') {
                            if (yych <= '\t') {
                                   if (yych <= 0x08) goto yy58;
                            } else {
                                   if (yych <= '\n') goto yy64;
                                   if (yych <= '\f') goto yy58;
                                   goto yy66;
                            }
                     } else {
                            if (yych <= '#') {
                                   if (yych <= ' ') goto yy58;
                                   if (yych >= '#') goto yy58;
                            } else {
                                   if (yych == '%') goto yy58;
                            }
                     }
              } else {
                     if (yych <= '<') {
                            if (yych <= ')') {
                                   if (yych <= '\'') goto yy58;
                            } else {
                                   if (yych != ';') goto yy58;
                            }
                     } else {
                            if (yych <= '[') {
                                   if (yych <= '=') goto yy60;
                                   if (yych <= 'Z') goto yy58;
                                   goto yy62;
                            } 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 560 "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 1020 "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 <= '\r') {
                            if (yych <= '\t') {
                                   if (yych <= 0x08) goto yy25;
                                   goto yy67;
                            } else {
                                   if (yych <= '\n') goto yy71;
                                   if (yych <= '\f') goto yy25;
                                   goto yy72;
                            }
                     } else {
                            if (yych <= '"') {
                                   if (yych <= 0x1F) goto yy25;
                                   if (yych <= ' ') goto yy69;
                                   goto yy3;
                            } else {
                                   if (yych <= '#') goto yy58;
                                   if (yych <= '$') goto yy3;
                                   goto yy25;
                            }
                     }
              } else {
                     if (yych <= '<') {
                            if (yych <= ')') {
                                   if (yych == '\'') goto yy25;
                                   goto yy3;
                            } else {
                                   if (yych == ';') goto yy53;
                                   goto yy25;
                            }
                     } else {
                            if (yych <= '[') {
                                   if (yych <= '=') goto yy51;
                                   if (yych <= 'Z') goto yy25;
                                   goto yy28;
                            } else {
                                   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 504 "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 1196 "Zend/zend_ini_scanner.c"
yy77:
              YYDEBUG(77, *YYCURSOR);
              ++YYCURSOR;
              yych = *YYCURSOR;
              goto yy83;
yy78:
              YYDEBUG(78, *YYCURSOR);
              yyleng = YYCURSOR - SCNG(yy_text);
#line 499 "Zend/zend_ini_scanner.l"
              { /* Double quoted '"' string ends */
       yy_pop_state(TSRMLS_C);
       return '"';
}
#line 1210 "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 398 "Zend/zend_ini_scanner.l"
              { /* Variable start */
       yy_push_state(ST_VARNAME TSRMLS_CC);
       return TC_DOLLAR_CURLY;
}
#line 1224 "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 490 "Zend/zend_ini_scanner.l"
              { /* Get rest as section/offset value */
       RETURN_TOKEN(TC_STRING, yytext, yyleng);
}
#line 1328 "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 572 "Zend/zend_ini_scanner.l"
              {
       return 0;
}
#line 1349 "Zend/zend_ini_scanner.c"
yy91:
              YYDEBUG(91, *YYCURSOR);
              ++YYCURSOR;
yy92:
              YYDEBUG(92, *YYCURSOR);
              yyleng = YYCURSOR - SCNG(yy_text);
#line 494 "Zend/zend_ini_scanner.l"
              { /* Double quoted '"' string start */
       yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC);
       return '"';
}
#line 1361 "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 468 "Zend/zend_ini_scanner.l"
              { /* Get number option value as string */
       RETURN_TOKEN(TC_NUMBER, yytext, yyleng);
}
#line 1427 "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 464 "Zend/zend_ini_scanner.l"
              { /* Get constant option value */
       RETURN_TOKEN(TC_CONSTANT, yytext, yyleng);
}
#line 1457 "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 393 "Zend/zend_ini_scanner.l"
              { /* End of section or an option offset */
       BEGIN(INITIAL);
       return ']';
}
#line 1473 "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 365 "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 1772 "Zend/zend_ini_scanner.c"
yy129:
              YYDEBUG(129, *YYCURSOR);
              ++YYCURSOR;
              YYDEBUG(130, *YYCURSOR);
              yyleng = YYCURSOR - SCNG(yy_text);
#line 398 "Zend/zend_ini_scanner.l"
              { /* Variable start */
       yy_push_state(ST_VARNAME TSRMLS_CC);
       return TC_DOLLAR_CURLY;
}
#line 1783 "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[] = {
                      32, 160, 160, 160, 160, 160, 160, 160, 
                     160, 224,   0, 160, 160,   0, 160, 160, 
                     160, 160, 160, 160, 160, 160, 160, 160, 
                     160, 160, 160, 160, 160, 160, 160, 160, 
                     224, 160, 160, 160, 160, 160, 160, 160, 
                     160, 160, 160, 160, 160, 160, 160, 160, 
                     160, 160, 160, 160, 160, 160, 160, 160, 
                     160, 160, 160,  32, 160, 160, 160, 160, 
                     160, 160, 160, 160, 160, 160, 160, 160, 
                     160, 160, 160, 160, 160, 160, 160, 160, 
                     160, 160, 160, 160, 160, 160, 160, 160, 
                     160, 160, 160, 160, 160, 160, 160, 160, 
                     160, 160, 160, 160, 160, 160, 160, 160, 
                     160, 160, 160, 160, 160, 160, 160, 160, 
                     160, 160, 160, 160, 160, 160, 160, 160, 
                     160, 160, 160, 160, 160, 160, 160, 160, 
                     160, 160, 160, 160, 160, 160, 160, 160, 
                     160, 160, 160, 160, 160, 160, 160, 160, 
                     160, 160, 160, 160, 160, 160, 160, 160, 
                     160, 160, 160, 160, 160, 160, 160, 160, 
                     160, 160, 160, 160, 160, 160, 160, 160, 
                     160, 160, 160, 160, 160, 160, 160, 160, 
                     160, 160, 160, 160, 160, 160, 160, 160, 
                     160, 160, 160, 160, 160, 160, 160, 160, 
                     160, 160, 160, 160, 160, 160, 160, 160, 
                     160, 160, 160, 160, 160, 160, 160, 160, 
                     160, 160, 160, 160, 160, 160, 160, 160, 
                     160, 160, 160, 160, 160, 160, 160, 160, 
                     160, 160, 160, 160, 160, 160, 160, 160, 
                     160, 160, 160, 160, 160, 160, 160, 160, 
                     160, 160, 160, 160, 160, 160, 160, 160, 
                     160, 160, 160, 160, 160, 160, 160, 160, 
              };
              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 567 "Zend/zend_ini_scanner.l"
              { /* End of option value (if EOF is reached before EOL */
       BEGIN(INITIAL);
       return END_OF_LINE;
}
#line 1893 "Zend/zend_ini_scanner.c"
yy139:
              YYDEBUG(139, *YYCURSOR);
              ++YYCURSOR;
              yych = *YYCURSOR;
              goto yy156;
yy140:
              YYDEBUG(140, *YYCURSOR);
              yyleng = YYCURSOR - SCNG(yy_text);
#line 445 "Zend/zend_ini_scanner.l"
              { /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */
       /* Eat leading and trailing double quotes */
       if (yytext[0] == '"' && yytext[yyleng - 1] == '"') {
              SCNG(yy_text)++;
              yyleng = yyleng - 2;
       }
       RETURN_TOKEN(TC_RAW, yytext, yyleng);
}
#line 1911 "Zend/zend_ini_scanner.c"
yy141:
              YYDEBUG(141, *YYCURSOR);
              yyaccept = 0;
              yych = *(YYMARKER = ++YYCURSOR);
              if (yybm[0+yych] & 64) {
                     goto yy152;
              }
              if (yych <= '\f') {
                     if (yych == '\n') goto yy151;
                     goto yy156;
              } else {
                     if (yych <= '\r') goto yy154;
                     if (yych == ';') goto yy146;
                     goto yy156;
              }
yy142:
              YYDEBUG(142, *YYCURSOR);
              ++YYCURSOR;
yy143:
              YYDEBUG(143, *YYCURSOR);
              yyleng = YYCURSOR - SCNG(yy_text);
#line 458 "Zend/zend_ini_scanner.l"
              { /* End of option value */
       BEGIN(INITIAL);
       SCNG(lineno)++;
       return END_OF_LINE;
}
#line 1939 "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] & 32) {
                     goto yy146;
              }
              if (yych >= '\r') goto yy150;
yy148:
              YYDEBUG(148, *YYCURSOR);
              ++YYCURSOR;
yy149:
              YYDEBUG(149, *YYCURSOR);
              yyleng = YYCURSOR - SCNG(yy_text);
#line 554 "Zend/zend_ini_scanner.l"
              { /* Comment */
       BEGIN(INITIAL);
       SCNG(lineno)++;
       return END_OF_LINE;
}
#line 1973 "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 = 0;
              YYMARKER = ++YYCURSOR;
              YYFILL(2);
              yych = *YYCURSOR;
              YYDEBUG(153, *YYCURSOR);
              if (yybm[0+yych] & 64) {
                     goto yy152;
              }
              if (yych <= '\f') {
                     if (yych <= 0x00) goto yy140;
                     if (yych == '\n') goto yy151;
                     goto yy155;
              } else {
                     if (yych <= '\r') goto yy154;
                     if (yych == ';') goto yy146;
                     goto yy155;
              }
yy154:
              YYDEBUG(154, *YYCURSOR);
              yych = *++YYCURSOR;
              if (yych == '\n') goto yy151;
              goto yy143;
yy155:
              YYDEBUG(155, *YYCURSOR);
              ++YYCURSOR;
              YYFILL(1);
              yych = *YYCURSOR;
yy156:
              YYDEBUG(156, *YYCURSOR);
              if (yybm[0+yych] & 128) {
                     goto yy155;
              }
              goto yy140;
       }
/* *********************************** */
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(157, *YYCURSOR);
              YYFILL(3);
              yych = *YYCURSOR;
              if (yych <= '\f') {
                     if (yych == '\n') goto yy161;
              } else {
                     if (yych <= '\r') goto yy161;
                     if (yych == ']') goto yy163;
              }
              YYDEBUG(159, *YYCURSOR);
              ++YYCURSOR;
              yych = *YYCURSOR;
              goto yy170;
yy160:
              YYDEBUG(160, *YYCURSOR);
              yyleng = YYCURSOR - SCNG(yy_text);
#line 454 "Zend/zend_ini_scanner.l"
              { /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */
       RETURN_TOKEN(TC_RAW, yytext, yyleng);
}
#line 2076 "Zend/zend_ini_scanner.c"
yy161:
              YYDEBUG(161, *YYCURSOR);
              ++YYCURSOR;
              YYDEBUG(162, *YYCURSOR);
              yyleng = YYCURSOR - SCNG(yy_text);
#line 572 "Zend/zend_ini_scanner.l"
              {
       return 0;
}
#line 2086 "Zend/zend_ini_scanner.c"
yy163:
              YYDEBUG(163, *YYCURSOR);
              ++YYCURSOR;
              yych = *YYCURSOR;
              goto yy166;
yy164:
              YYDEBUG(164, *YYCURSOR);
              yyleng = YYCURSOR - SCNG(yy_text);
#line 374 "Zend/zend_ini_scanner.l"
              { /* End of section */
       BEGIN(INITIAL);
       SCNG(lineno)++;
       return ']';
}
#line 2101 "Zend/zend_ini_scanner.c"
yy165:
              YYDEBUG(165, *YYCURSOR);
              ++YYCURSOR;
              YYFILL(2);
              yych = *YYCURSOR;
yy166:
              YYDEBUG(166, *YYCURSOR);
              if (yybm[0+yych] & 64) {
                     goto yy165;
              }
              if (yych == '\n') goto yy167;
              if (yych == '\r') goto yy168;
              goto yy164;
yy167:
              YYDEBUG(167, *YYCURSOR);
              yych = *++YYCURSOR;
              goto yy164;
yy168:
              YYDEBUG(168, *YYCURSOR);
              yych = *++YYCURSOR;
              if (yych == '\n') goto yy167;
              goto yy164;
yy169:
              YYDEBUG(169, *YYCURSOR);
              ++YYCURSOR;
              YYFILL(1);
              yych = *YYCURSOR;
yy170:
              YYDEBUG(170, *YYCURSOR);
              if (yybm[0+yych] & 128) {
                     goto yy169;
              }
              goto yy160;
       }
/* *********************************** */
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(171, *YYCURSOR);
              YYFILL(3);
              yych = *YYCURSOR;
              if (yych <= '-') {
                     if (yych <= ' ') {
                            if (yych <= '\n') {
                                   if (yych <= 0x08) goto yy173;
                                   if (yych <= '\t') goto yy175;
                                   goto yy176;
                            } else {
                                   if (yych == '\r') goto yy176;
                                   if (yych >= ' ') goto yy175;
                            }
                     } else {
                            if (yych <= '$') {
                                   if (yych == '"') goto yy178;
                                   if (yych >= '$') goto yy180;
                            } else {
                                   if (yych == '\'') goto yy181;
                                   if (yych >= '-') goto yy182;
                            }
                     }
              } else {
                     if (yych <= 'Z') {
                            if (yych <= '9') {
                                   if (yych <= '.') goto yy183;
                                   if (yych >= '0') goto yy184;
                            } else {
                                   if (yych == ';') goto yy176;
                                   if (yych >= 'A') goto yy186;
                            }
                     } else {
                            if (yych <= '^') {
                                   if (yych <= '[') goto yy173;
                                   if (yych <= '\\') goto yy188;
                                   if (yych <= ']') goto yy189;
                            } else {
                                   if (yych == '`') goto yy173;
                                   if (yych <= 'z') goto yy186;
                            }
                     }
              }
yy173:
              YYDEBUG(173, *YYCURSOR);
              yyaccept = 0;
              yych = *(YYMARKER = ++YYCURSOR);
              goto yy196;
yy174:
              YYDEBUG(174, *YYCURSOR);
              yyleng = YYCURSOR - SCNG(yy_text);
#line 490 "Zend/zend_ini_scanner.l"
              { /* Get rest as section/offset value */
       RETURN_TOKEN(TC_STRING, yytext, yyleng);
}
#line 2227 "Zend/zend_ini_scanner.c"
yy175:
              YYDEBUG(175, *YYCURSOR);
              yyaccept = 0;
              yych = *(YYMARKER = ++YYCURSOR);
              if (yych <= 0x1F) {
                     if (yych == '\t') goto yy222;
                     goto yy196;
              } else {
                     if (yych <= ' ') goto yy222;
                     if (yych == '"') goto yy224;
                     goto yy196;
              }
yy176:
              YYDEBUG(176, *YYCURSOR);
              ++YYCURSOR;
yy177:
              YYDEBUG(177, *YYCURSOR);
              yyleng = YYCURSOR - SCNG(yy_text);
#line 572 "Zend/zend_ini_scanner.l"
              {
       return 0;
}
#line 2250 "Zend/zend_ini_scanner.c"
yy178:
              YYDEBUG(178, *YYCURSOR);
              ++YYCURSOR;
yy179:
              YYDEBUG(179, *YYCURSOR);
              yyleng = YYCURSOR - SCNG(yy_text);
#line 494 "Zend/zend_ini_scanner.l"
              { /* Double quoted '"' string start */
       yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC);
       return '"';
}
#line 2262 "Zend/zend_ini_scanner.c"
yy180:
              YYDEBUG(180, *YYCURSOR);
              yych = *++YYCURSOR;
              if (yych <= '\\') {
                     if (yych <= 0x00) goto yy177;
                     if (yych <= '[') goto yy195;
                     goto yy200;
              } else {
                     if (yych == '{') goto yy220;
                     goto yy195;
              }
yy181:
              YYDEBUG(181, *YYCURSOR);
              yyaccept = 1;
              yych = *(YYMARKER = ++YYCURSOR);
              if (yybm[0+yych] & 128) {
                     goto yy216;
              }
              goto yy177;
yy182:
              YYDEBUG(182, *YYCURSOR);
              yyaccept = 0;
              yych = *(YYMARKER = ++YYCURSOR);
              if (yych <= '/') goto yy196;
              if (yych <= '9') goto yy214;
              goto yy196;
yy183:
              YYDEBUG(183, *YYCURSOR);
              yyaccept = 0;
              yych = *(YYMARKER = ++YYCURSOR);
              if (yych <= '/') goto yy196;
              if (yych <= '9') goto yy212;
              goto yy196;
yy184:
              YYDEBUG(184, *YYCURSOR);
              yyaccept = 2;
              yych = *(YYMARKER = ++YYCURSOR);
              if (yych <= '\'') {
                     if (yych <= '\r') {
                            if (yych == '\n') goto yy185;
                            if (yych <= '\f') goto yy196;
                     } else {
                            if (yych == '"') goto yy185;
                            if (yych <= '&') goto yy196;
                     }
              } else {
                     if (yych <= '9') {
                            if (yych == '.') goto yy208;
                            if (yych <= '/') goto yy196;
                            goto yy210;
                     } else {
                            if (yych <= ';') {
                                   if (yych <= ':') goto yy196;
                            } else {
                                   if (yych != ']') goto yy196;
                            }
                     }
              }
yy185:
              YYDEBUG(185, *YYCURSOR);
              yyleng = YYCURSOR - SCNG(yy_text);
#line 468 "Zend/zend_ini_scanner.l"
              { /* Get number option value as string */
       RETURN_TOKEN(TC_NUMBER, yytext, yyleng);
}
#line 2328 "Zend/zend_ini_scanner.c"
yy186:
              YYDEBUG(186, *YYCURSOR);
              yyaccept = 3;
              yych = *(YYMARKER = ++YYCURSOR);
              if (yybm[0+yych] & 32) {
                     goto yy206;
              }
              if (yych <= '"') {
                     if (yych <= '\f') {
                            if (yych != '\n') goto yy196;
                     } else {
                            if (yych <= '\r') goto yy187;
                            if (yych <= '!') goto yy196;
                     }
              } else {
                     if (yych <= ':') {
                            if (yych != '\'') goto yy196;
                     } else {
                            if (yych <= ';') goto yy187;
                            if (yych != ']') goto yy196;
                     }
              }
yy187:
              YYDEBUG(187, *YYCURSOR);
              yyleng = YYCURSOR - SCNG(yy_text);
#line 464 "Zend/zend_ini_scanner.l"
              { /* Get constant option value */
       RETURN_TOKEN(TC_CONSTANT, yytext, yyleng);
}
#line 2358 "Zend/zend_ini_scanner.c"
yy188:
              YYDEBUG(188, *YYCURSOR);
              yych = *++YYCURSOR;
              goto yy195;
yy189:
              YYDEBUG(189, *YYCURSOR);
              ++YYCURSOR;
              yych = *YYCURSOR;
              goto yy192;
yy190:
              YYDEBUG(190, *YYCURSOR);
              yyleng = YYCURSOR - SCNG(yy_text);
#line 374 "Zend/zend_ini_scanner.l"
              { /* End of section */
       BEGIN(INITIAL);
       SCNG(lineno)++;
       return ']';
}
#line 2377 "Zend/zend_ini_scanner.c"
yy191:
              YYDEBUG(191, *YYCURSOR);
              ++YYCURSOR;
              YYFILL(2);
              yych = *YYCURSOR;
yy192:
              YYDEBUG(192, *YYCURSOR);
              if (yybm[0+yych] & 2) {
                     goto yy191;
              }
              if (yych == '\n') goto yy193;
              if (yych == '\r') goto yy194;
              goto yy190;
yy193:
              YYDEBUG(193, *YYCURSOR);
              yych = *++YYCURSOR;
              goto yy190;
yy194:
              YYDEBUG(194, *YYCURSOR);
              yych = *++YYCURSOR;
              if (yych == '\n') goto yy193;
              goto yy190;
yy195:
              YYDEBUG(195, *YYCURSOR);
              yyaccept = 0;
              YYMARKER = ++YYCURSOR;
              YYFILL(1);
              yych = *YYCURSOR;
yy196:
              YYDEBUG(196, *YYCURSOR);
              if (yybm[0+yych] & 4) {
                     goto yy195;
              }
              if (yych == '$') goto yy198;
              if (yych != '\\') goto yy174;
yy197:
              YYDEBUG(197, *YYCURSOR);
              ++YYCURSOR;
              YYFILL(1);
              yych = *YYCURSOR;
              goto yy195;
yy198:
              YYDEBUG(198, *YYCURSOR);
              ++YYCURSOR;
              YYFILL(1);
              yych = *YYCURSOR;
              if (yych <= '\\') {
                     if (yych <= 0x00) goto yy199;
                     if (yych <= '[') goto yy195;
                     goto yy200;
              } else {
                     if (yych != '{') goto yy195;
              }
yy199:
              YYDEBUG(199, *YYCURSOR);
              YYCURSOR = YYMARKER;
              if (yyaccept <= 1) {
                     if (yyaccept <= 0) {
                            goto yy174;
                     } else {
                            goto yy177;
                     }
              } else {
                     if (yyaccept <= 2) {
                            goto yy185;
                     } else {
                            goto yy187;
                     }
              }
yy200:
              YYDEBUG(200, *YYCURSOR);
              ++YYCURSOR;
              YYFILL(1);
              yych = *YYCURSOR;
              if (yybm[0+yych] & 8) {
                     goto yy201;
              }
              if (yych == '\\') goto yy203;
              goto yy195;
yy201:
              YYDEBUG(201, *YYCURSOR);
              ++YYCURSOR;
              YYFILL(1);
              yych = *YYCURSOR;
              YYDEBUG(202, *YYCURSOR);
              if (yybm[0+yych] & 8) {
                     goto yy201;
              }
              if (yych == '\\') goto yy205;
              goto yy195;
yy203:
              YYDEBUG(203, *YYCURSOR);
              ++YYCURSOR;
              YYFILL(1);
              yych = *YYCURSOR;
              YYDEBUG(204, *YYCURSOR);
              if (yybm[0+yych] & 8) {
                     goto yy201;
              }
              if (yych == '\\') goto yy203;
              goto yy195;
yy205:
              YYDEBUG(205, *YYCURSOR);
              ++YYCURSOR;
              YYFILL(1);
              yych = *YYCURSOR;
              if (yybm[0+yych] & 8) {
                     goto yy201;
              }
              if (yych == '\\') goto yy203;
              goto yy195;
yy206:
              YYDEBUG(206, *YYCURSOR);
              yyaccept = 3;
              YYMARKER = ++YYCURSOR;
              YYFILL(1);
              yych = *YYCURSOR;
              YYDEBUG(207, *YYCURSOR);
              if (yybm[0+yych] & 32) {
                     goto yy206;
              }
              if (yych <= '$') {
                     if (yych <= '\r') {
                            if (yych == '\n') goto yy187;
                            if (yych <= '\f') goto yy195;
                            goto yy187;
                     } else {
                            if (yych == '"') goto yy187;
                            if (yych <= '#') goto yy195;
                            goto yy198;
                     }
              } else {
                     if (yych <= ';') {
                            if (yych == '\'') goto yy187;
                            if (yych <= ':') goto yy195;
                            goto yy187;
                     } else {
                            if (yych <= '[') goto yy195;
                            if (yych <= '\\') goto yy197;
                            if (yych <= ']') goto yy187;
                            goto yy195;
                     }
              }
yy208:
              YYDEBUG(208, *YYCURSOR);
              yyaccept = 2;
              YYMARKER = ++YYCURSOR;
              YYFILL(1);
              yych = *YYCURSOR;
              YYDEBUG(209, *YYCURSOR);
              if (yybm[0+yych] & 64) {
                     goto yy208;
              }
              if (yych <= '$') {
                     if (yych <= '\r') {
                            if (yych == '\n') goto yy185;
                            if (yych <= '\f') goto yy195;
                            goto yy185;
                     } else {
                            if (yych == '"') goto yy185;
                            if (yych <= '#') goto yy195;
                            goto yy198;
                     }
              } else {
                     if (yych <= ';') {
                            if (yych == '\'') goto yy185;
                            if (yych <= ':') goto yy195;
                            goto yy185;
                     } else {
                            if (yych <= '[') goto yy195;
                            if (yych <= '\\') goto yy197;
                            if (yych <= ']') goto yy185;
                            goto yy195;
                     }
              }
yy210:
              YYDEBUG(210, *YYCURSOR);
              yyaccept = 2;
              YYMARKER = ++YYCURSOR;
              YYFILL(1);
              yych = *YYCURSOR;
              YYDEBUG(211, *YYCURSOR);
              if (yych <= '\'') {
                     if (yych <= '!') {
                            if (yych <= '\n') {
                                   if (yych <= '\t') goto yy195;
                                   goto yy185;
                            } else {
                                   if (yych == '\r') goto yy185;
                                   goto yy195;
                            }
                     } else {
                            if (yych <= '#') {
                                   if (yych <= '"') goto yy185;
                                   goto yy195;
                            } else {
                                   if (yych <= '$') goto yy198;
                                   if (yych <= '&') goto yy195;
                                   goto yy185;
                            }
                     }
              } else {
                     if (yych <= ':') {
                            if (yych <= '.') {
                                   if (yych <= '-') goto yy195;
                                   goto yy208;
                            } else {
                                   if (yych <= '/') goto yy195;
                                   if (yych <= '9') goto yy210;
                                   goto yy195;
                            }
                     } else {
                            if (yych <= '[') {
                                   if (yych <= ';') goto yy185;
                                   goto yy195;
                            } else {
                                   if (yych <= '\\') goto yy197;
                                   if (yych <= ']') goto yy185;
                                   goto yy195;
                            }
                     }
              }
yy212:
              YYDEBUG(212, *YYCURSOR);
              yyaccept = 2;
              YYMARKER = ++YYCURSOR;
              YYFILL(1);
              yych = *YYCURSOR;
              YYDEBUG(213, *YYCURSOR);
              if (yych <= '&') {
                     if (yych <= '\r') {
                            if (yych == '\n') goto yy185;
                            if (yych <= '\f') goto yy195;
                            goto yy185;
                     } else {
                            if (yych <= '"') {
                                   if (yych <= '!') goto yy195;
                                   goto yy185;
                            } else {
                                   if (yych == '$') goto yy198;
                                   goto yy195;
                            }
                     }
              } else {
                     if (yych <= ':') {
                            if (yych <= '\'') goto yy185;
                            if (yych <= '/') goto yy195;
                            if (yych <= '9') goto yy212;
                            goto yy195;
                     } else {
                            if (yych <= '[') {
                                   if (yych <= ';') goto yy185;
                                   goto yy195;
                            } else {
                                   if (yych <= '\\') goto yy197;
                                   if (yych <= ']') goto yy185;
                                   goto yy195;
                            }
                     }
              }
yy214:
              YYDEBUG(214, *YYCURSOR);
              yyaccept = 2;
              YYMARKER = ++YYCURSOR;
              YYFILL(1);
              yych = *YYCURSOR;
              YYDEBUG(215, *YYCURSOR);
              if (yych <= '&') {
                     if (yych <= '\r') {
                            if (yych == '\n') goto yy185;
                            if (yych <= '\f') goto yy195;
                            goto yy185;
                     } else {
                            if (yych <= '"') {
                                   if (yych <= '!') goto yy195;
                                   goto yy185;
                            } else {
                                   if (yych == '$') goto yy198;
                                   goto yy195;
                            }
                     }
              } else {
                     if (yych <= ':') {
                            if (yych <= '\'') goto yy185;
                            if (yych <= '/') goto yy195;
                            if (yych <= '9') goto yy214;
                            goto yy195;
                     } else {
                            if (yych <= '[') {
                                   if (yych <= ';') goto yy185;
                                   goto yy195;
                            } else {
                                   if (yych <= '\\') goto yy197;
                                   if (yych <= ']') goto yy185;
                                   goto yy195;
                            }
                     }
              }
yy216:
              YYDEBUG(216, *YYCURSOR);
              ++YYCURSOR;
              YYFILL(1);
              yych = *YYCURSOR;
              YYDEBUG(217, *YYCURSOR);
              if (yybm[0+yych] & 128) {
                     goto yy216;
              }
              YYDEBUG(218, *YYCURSOR);
              ++YYCURSOR;
              YYDEBUG(219, *YYCURSOR);
              yyleng = YYCURSOR - SCNG(yy_text);
#line 365 "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 2698 "Zend/zend_ini_scanner.c"
yy220:
              YYDEBUG(220, *YYCURSOR);
              ++YYCURSOR;
              YYDEBUG(221, *YYCURSOR);
              yyleng = YYCURSOR - SCNG(yy_text);
#line 398 "Zend/zend_ini_scanner.l"
              { /* Variable start */
       yy_push_state(ST_VARNAME TSRMLS_CC);
       return TC_DOLLAR_CURLY;
}
#line 2709 "Zend/zend_ini_scanner.c"
yy222:
              YYDEBUG(222, *YYCURSOR);
              yyaccept = 0;
              YYMARKER = ++YYCURSOR;
              YYFILL(1);
              yych = *YYCURSOR;
              YYDEBUG(223, *YYCURSOR);
              if (yych <= '"') {
                     if (yych <= '\f') {
                            if (yych <= 0x08) goto yy195;
                            if (yych <= '\t') goto yy222;
                            if (yych <= '\n') goto yy174;
                            goto yy195;
                     } else {
                            if (yych <= 0x1F) {
                                   if (yych <= '\r') goto yy174;
                                   goto yy195;
                            } else {
                                   if (yych <= ' ') goto yy222;
                                   if (yych <= '!') goto yy195;
                            }
                     }
              } else {
                     if (yych <= ':') {
                            if (yych <= '$') {
                                   if (yych <= '#') goto yy195;
                                   goto yy198;
                            } else {
                                   if (yych == '\'') goto yy174;
                                   goto yy195;
                            }
                     } else {
                            if (yych <= '[') {
                                   if (yych <= ';') goto yy174;
                                   goto yy195;
                            } else {
                                   if (yych <= '\\') goto yy197;
                                   if (yych <= ']') goto yy174;
                                   goto yy195;
                            }
                     }
              }
yy224:
              YYDEBUG(224, *YYCURSOR);
              ++YYCURSOR;
              yych = *YYCURSOR;
              goto yy179;
       }
/* *********************************** */
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, 162, 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(225, *YYCURSOR);
              YYFILL(6);
              yych = *YYCURSOR;
              YYDEBUG(-1, yych);
              switch (yych) {
              case 0x00:    goto yy227;
              case '\t':
              case ' ':     goto yy231;
              case '\n':    goto yy233;
              case '\r':    goto yy235;
              case '!':
              case '&':
              case '(':
              case ')':
              case '|':
              case '~':     goto yy236;
              case '"':     goto yy238;
              case '$':     goto yy240;
              case '\'':    goto yy241;
              case '-':     goto yy242;
              case '.':     goto yy243;
              case '0':
              case '1':
              case '2':
              case '3':
              case '4':
              case '5':
              case '6':
              case '7':
              case '8':
              case '9':     goto yy244;
              case ';':     goto yy246;
              case '=':     goto yy247;
              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 yy249;
              case 'F':
              case 'f':     goto yy251;
              case 'N':
              case 'n':     goto yy252;
              case 'O':
              case 'o':     goto yy253;
              case 'T':
              case 't':     goto yy254;
              case 'Y':
              case 'y':     goto yy255;
              default:      goto yy229;
              }
yy227:
              YYDEBUG(227, *YYCURSOR);
              ++YYCURSOR;
yy228:
              YYDEBUG(228, *YYCURSOR);
              yyleng = YYCURSOR - SCNG(yy_text);
#line 567 "Zend/zend_ini_scanner.l"
              { /* End of option value (if EOF is reached before EOL */
       BEGIN(INITIAL);
       return END_OF_LINE;
}
#line 2894 "Zend/zend_ini_scanner.c"
yy229:
              YYDEBUG(229, *YYCURSOR);
              yyaccept = 0;
              yych = *(YYMARKER = ++YYCURSOR);
              goto yy257;
yy230:
              YYDEBUG(230, *YYCURSOR);
              yyleng = YYCURSOR - SCNG(yy_text);
#line 486 "Zend/zend_ini_scanner.l"
              { /* Get everything else as option/offset value */
       RETURN_TOKEN(TC_STRING, yytext, yyleng);
}
#line 2907 "Zend/zend_ini_scanner.c"
yy231:
              YYDEBUG(231, *YYCURSOR);
              yyaccept = 1;
              yych = *(YYMARKER = ++YYCURSOR);
              goto yy307;
yy232:
              YYDEBUG(232, *YYCURSOR);
              yyleng = YYCURSOR - SCNG(yy_text);
#line 540 "Zend/zend_ini_scanner.l"
              {
       RETURN_TOKEN(TC_WHITESPACE, yytext, yyleng);
}
#line 2920 "Zend/zend_ini_scanner.c"
yy233:
              YYDEBUG(233, *YYCURSOR);
              ++YYCURSOR;
yy234:
              YYDEBUG(234, *YYCURSOR);
              yyleng = YYCURSOR - SCNG(yy_text);
#line 458 "Zend/zend_ini_scanner.l"
              { /* End of option value */
       BEGIN(INITIAL);
       SCNG(lineno)++;
       return END_OF_LINE;
}
#line 2933 "Zend/zend_ini_scanner.c"
yy235:
              YYDEBUG(235, *YYCURSOR);
              yych = *++YYCURSOR;
              if (yych == '\n') goto yy305;
              goto yy234;
yy236:
              YYDEBUG(236, *YYCURSOR);
              ++YYCURSOR;
              yych = *YYCURSOR;
              goto yy304;
yy237:
              YYDEBUG(237, *YYCURSOR);
              yyleng = YYCURSOR - SCNG(yy_text);
#line 476 "Zend/zend_ini_scanner.l"
              { /* Boolean operators */
       return yytext[0];
}
#line 2951 "Zend/zend_ini_scanner.c"
yy238:
              YYDEBUG(238, *YYCURSOR);
              ++YYCURSOR;
yy239:
              YYDEBUG(239, *YYCURSOR);
              yyleng = YYCURSOR - SCNG(yy_text);
#line 494 "Zend/zend_ini_scanner.l"
              { /* Double quoted '"' string start */
       yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC);
       return '"';
}
#line 2963 "Zend/zend_ini_scanner.c"
yy240:
              YYDEBUG(240, *YYCURSOR);
              yych = *++YYCURSOR;
              if (yych <= '\\') {
                     if (yych <= 0x00) goto yy228;
                     if (yych <= '[') goto yy256;
                     goto yy263;
              } else {
                     if (yych == '{') goto yy301;
                     goto yy256;
              }
yy241:
              YYDEBUG(241, *YYCURSOR);
              yyaccept = 2;
              yych = *(YYMARKER = ++YYCURSOR);
              if (yybm[0+yych] & 128) {
                     goto yy297;
              }
              goto yy228;
yy242:
              YYDEBUG(242, *YYCURSOR);
              yyaccept = 0;
              yych = *(YYMARKER = ++YYCURSOR);
              if (yych <= '/') goto yy257;
              if (yych <= '9') goto yy295;
              goto yy257;
yy243:
              YYDEBUG(243, *YYCURSOR);
              yyaccept = 0;
              yych = *(YYMARKER = ++YYCURSOR);
              if (yych <= '/') goto yy257;
              if (yych <= '9') goto yy293;
              goto yy257;
yy244:
              YYDEBUG(244, *YYCURSOR);
              yyaccept = 3;
              yych = *(YYMARKER = ++YYCURSOR);
              if (yych <= '.') {
                     if (yych <= '\r') {
                            if (yych <= 0x08) {
                                   if (yych >= 0x01) goto yy257;
                            } else {
                                   if (yych <= '\n') goto yy245;
                                   if (yych <= '\f') goto yy257;
                            }
                     } else {
                            if (yych <= '%') {
                                   if (yych <= 0x1F) goto yy257;
                                   if (yych >= '#') goto yy257;
                            } else {
                                   if (yych <= ')') goto yy245;
                                   if (yych <= '-') goto yy257;
                                   goto yy289;
                            }
                     }
              } else {
                     if (yych <= '<') {
                            if (yych <= '9') {
                                   if (yych <= '/') goto yy257;
                                   goto yy291;
                            } else {
                                   if (yych != ';') goto yy257;
                            }
                     } else {
                            if (yych <= '|') {
                                   if (yych <= '=') goto yy245;
                                   if (yych <= '{') goto yy257;
                            } else {
                                   if (yych != '~') goto yy257;
                            }
                     }
              }
yy245:
              YYDEBUG(245, *YYCURSOR);
              yyleng = YYCURSOR - SCNG(yy_text);
#line 468 "Zend/zend_ini_scanner.l"
              { /* Get number option value as string */
       RETURN_TOKEN(TC_NUMBER, yytext, yyleng);
}
#line 3043 "Zend/zend_ini_scanner.c"
yy246:
              YYDEBUG(246, *YYCURSOR);
              yyaccept = 2;
              yych = *(YYMARKER = ++YYCURSOR);
              goto yy285;
yy247:
              YYDEBUG(247, *YYCURSOR);
              ++YYCURSOR;
              YYDEBUG(248, *YYCURSOR);
              yyleng = YYCURSOR - SCNG(yy_text);
#line 480 "Zend/zend_ini_scanner.l"
              { /* Make = used in option value to trigger error */
       yyless(0);
       BEGIN(INITIAL);
       return END_OF_LINE;
}
#line 3060 "Zend/zend_ini_scanner.c"
yy249:
              YYDEBUG(249, *YYCURSOR);
              yyaccept = 4;
              yych = *(YYMARKER = ++YYCURSOR);
              if (yybm[0+yych] & 4) {
                     goto yy258;
              }
              if (yych <= ')') {
                     if (yych <= '\f') {
                            if (yych <= 0x00) goto yy250;
                            if (yych <= 0x08) goto yy257;
                            if (yych >= '\v') goto yy257;
                     } else {
                            if (yych <= 0x1F) {
                                   if (yych >= 0x0E) goto yy257;
                            } else {
                                   if (yych <= '"') goto yy250;
                                   if (yych <= '%') goto yy257;
                            }
                     }
              } else {
                     if (yych <= '=') {
                            if (yych == ';') goto yy250;
                            if (yych <= '<') goto yy257;
                     } else {
                            if (yych <= '|') {
                                   if (yych <= '{') goto yy257;
                            } else {
                                   if (yych != '~') goto yy257;
                            }
                     }
              }
yy250:
              YYDEBUG(250, *YYCURSOR);
              yyleng = YYCURSOR - SCNG(yy_text);
#line 464 "Zend/zend_ini_scanner.l"
              { /* Get constant option value */
       RETURN_TOKEN(TC_CONSTANT, yytext, yyleng);
}
#line 3100 "Zend/zend_ini_scanner.c"
yy251:
              YYDEBUG(251, *YYCURSOR);
              yyaccept = 4;
              yych = *(YYMARKER = ++YYCURSOR);
              if (yych <= '<') {
                     if (yych <= '"') {
                            if (yych <= '\n') {
                                   if (yych <= 0x00) goto yy250;
                                   if (yych <= 0x08) goto yy257;
                                   goto yy250;
                            } else {
                                   if (yych == '\r') goto yy250;
                                   if (yych <= 0x1F) goto yy257;
                                   goto yy250;
                            }
                     } else {
                            if (yych <= '/') {
                                   if (yych <= '%') goto yy257;
                                   if (yych <= ')') goto yy250;
                                   goto yy257;
                            } else {
                                   if (yych <= '9') goto yy258;
                                   if (yych == ';') goto yy250;
                                   goto yy257;
                            }
                     }
              } else {
                     if (yych <= '`') {
                            if (yych <= 'A') {
                                   if (yych <= '=') goto yy250;
                                   if (yych <= '@') goto yy257;
                                   goto yy281;
                            } else {
                                   if (yych <= 'Z') goto yy258;
                                   if (yych == '_') goto yy258;
                                   goto yy257;
                            }
                     } else {
                            if (yych <= '{') {
                                   if (yych <= 'a') goto yy281;
                                   if (yych <= 'z') goto yy258;
                                   goto yy257;
                            } else {
                                   if (yych == '}') goto yy257;
                                   if (yych <= '~') goto yy250;
                                   goto yy257;
                            }
                     }
              }
yy252:
              YYDEBUG(252, *YYCURSOR);
              yyaccept = 4;
              yych = *(YYMARKER = ++YYCURSOR);
              if (yych <= 'N') {
                     if (yych <= '%') {
                            if (yych <= '\f') {
                                   if (yych <= 0x00) goto yy250;
                                   if (yych <= 0x08) goto yy257;
                                   if (yych <= '\n') goto yy250;
                                   goto yy257;
                            } else {
                                   if (yych <= '\r') goto yy250;
                                   if (yych <= 0x1F) goto yy257;
                                   if (yych <= '"') goto yy250;
                                   goto yy257;
                            }
                     } else {
                            if (yych <= ':') {
                                   if (yych <= ')') goto yy250;
                                   if (yych <= '/') goto yy257;
                                   if (yych <= '9') goto yy258;
                                   goto yy257;
                            } else {
                                   if (yych <= '<') {
                                          if (yych <= ';') goto yy250;
                                          goto yy257;
                                   } else {
                                          if (yych <= '=') goto yy250;
                                          if (yych <= '@') goto yy257;
                                          goto yy258;
                                   }
                            }
                     }
              } else {
                     if (yych <= 'n') {
                            if (yych <= 'Z') {
                                   if (yych <= 'O') goto yy277;
                                   if (yych == 'U') goto yy278;
                                   goto yy258;
                            } else {
                                   if (yych == '_') goto yy258;
                                   if (yych <= '`') goto yy257;
                                   goto yy258;
                            }
                     } else {
                            if (yych <= 'z') {
                                   if (yych <= 'o') goto yy277;
                                   if (yych == 'u') goto yy278;
                                   goto yy258;
                            } else {
                                   if (yych <= '|') {
                                          if (yych <= '{') goto yy257;
                                          goto yy250;
                                   } else {
                                          if (yych == '~') goto yy250;
                                          goto yy257;
                                   }
                            }
                     }
              }
yy253:
              YYDEBUG(253, *YYCURSOR);
              yyaccept = 4;
              yych = *(YYMARKER = ++YYCURSOR);
              if (yych <= 'E') {
                     if (yych <= '%') {
                            if (yych <= '\f') {
                                   if (yych <= 0x00) goto yy250;
                                   if (yych <= 0x08) goto yy257;
                                   if (yych <= '\n') goto yy250;
                                   goto yy257;
                            } else {
                                   if (yych <= '\r') goto yy250;
                                   if (yych <= 0x1F) goto yy257;
                                   if (yych <= '"') goto yy250;
                                   goto yy257;
                            }
                     } else {
                            if (yych <= ':') {
                                   if (yych <= ')') goto yy250;
                                   if (yych <= '/') goto yy257;
                                   if (yych <= '9') goto yy258;
                                   goto yy257;
                            } else {
                                   if (yych <= '<') {
                                          if (yych <= ';') goto yy250;
                                          goto yy257;
                                   } else {
                                          if (yych <= '=') goto yy250;
                                          if (yych <= '@') goto yy257;
                                          goto yy258;
                                   }
                            }
                     }
              } else {
                     if (yych <= 'e') {
                            if (yych <= 'Z') {
                                   if (yych <= 'F') goto yy272;
                                   if (yych == 'N') goto yy266;
                                   goto yy258;
                            } else {
                                   if (yych == '_') goto yy258;
                                   if (yych <= '`') goto yy257;
                                   goto yy258;
                            }
                     } else {
                            if (yych <= 'z') {
                                   if (yych <= 'f') goto yy272;
                                   if (yych == 'n') goto yy266;
                                   goto yy258;
                            } else {
                                   if (yych <= '|') {
                                          if (yych <= '{') goto yy257;
                                          goto yy250;
                                   } else {
                                          if (yych == '~') goto yy250;
                                          goto yy257;
                                   }
                            }
                     }
              }
yy254:
              YYDEBUG(254, *YYCURSOR);
              yyaccept = 4;
              yych = *(YYMARKER = ++YYCURSOR);
              if (yych <= '=') {
                     if (yych <= '"') {
                            if (yych <= '\n') {
                                   if (yych <= 0x00) goto yy250;
                                   if (yych <= 0x08) goto yy257;
                                   goto yy250;
                            } else {
                                   if (yych == '\r') goto yy250;
                                   if (yych <= 0x1F) goto yy257;
                                   goto yy250;
                            }
                     } else {
                            if (yych <= '9') {
                                   if (yych <= '%') goto yy257;
                                   if (yych <= ')') goto yy250;
                                   if (yych <= '/') goto yy257;
                                   goto yy258;
                            } else {
                                   if (yych == ';') goto yy250;
                                   if (yych <= '<') goto yy257;
                                   goto yy250;
                            }
                     }
              } else {
                     if (yych <= '`') {
                            if (yych <= 'R') {
                                   if (yych <= '@') goto yy257;
                                   if (yych <= 'Q') goto yy258;
                                   goto yy270;
                            } else {
                                   if (yych <= 'Z') goto yy258;
                                   if (yych == '_') goto yy258;
                                   goto yy257;
                            }
                     } else {
                            if (yych <= '{') {
                                   if (yych == 'r') goto yy270;
                                   if (yych <= 'z') goto yy258;
                                   goto yy257;
                            } else {
                                   if (yych == '}') goto yy257;
                                   if (yych <= '~') goto yy250;
                                   goto yy257;
                            }
                     }
              }
yy255:
              YYDEBUG(255, *YYCURSOR);
              yyaccept = 4;
              yych = *(YYMARKER = ++YYCURSOR);
              if (yych <= '=') {
                     if (yych <= '"') {
                            if (yych <= '\n') {
                                   if (yych <= 0x00) goto yy250;
                                   if (yych <= 0x08) goto yy257;
                                   goto yy250;
                            } else {
                                   if (yych == '\r') goto yy250;
                                   if (yych <= 0x1F) goto yy257;
                                   goto yy250;
                            }
                     } else {
                            if (yych <= '9') {
                                   if (yych <= '%') goto yy257;
                                   if (yych <= ')') goto yy250;
                                   if (yych <= '/') goto yy257;
                                   goto yy258;
                            } else {
                                   if (yych == ';') goto yy250;
                                   if (yych <= '<') goto yy257;
                                   goto yy250;
                            }
                     }
              } else {
                     if (yych <= '`') {
                            if (yych <= 'E') {
                                   if (yych <= '@') goto yy257;
                                   if (yych <= 'D') goto yy258;
                                   goto yy260;
                            } else {
                                   if (yych <= 'Z') goto yy258;
                                   if (yych == '_') goto yy258;
                                   goto yy257;
                            }
                     } else {
                            if (yych <= '{') {
                                   if (yych == 'e') goto yy260;
                                   if (yych <= 'z') goto yy258;
                                   goto yy257;
                            } else {
                                   if (yych == '}') goto yy257;
                                   if (yych <= '~') goto yy250;
                                   goto yy257;
                            }
                     }
              }
yy256:
              YYDEBUG(256, *YYCURSOR);
              yyaccept = 0;
              YYMARKER = ++YYCURSOR;
              YYFILL(1);
              yych = *YYCURSOR;
yy257:
              YYDEBUG(257, *YYCURSOR);
              if (yybm[0+yych] & 2) {
                     goto yy256;
              }
              if (yych == '$') goto yy261;
              goto yy230;
yy258:
              YYDEBUG(258, *YYCURSOR);
              yyaccept = 4;
              YYMARKER = ++YYCURSOR;
              YYFILL(1);
              yych = *YYCURSOR;
              YYDEBUG(259, *YYCURSOR);
              if (yybm[0+yych] & 4) {
                     goto yy258;
              }
              if (yych <= '%') {
                     if (yych <= '\r') {
                            if (yych <= 0x08) {
                                   if (yych <= 0x00) goto yy250;
                                   goto yy256;
                            } else {
                                   if (yych <= '\n') goto yy250;
                                   if (yych <= '\f') goto yy256;
                                   goto yy250;
                            }
                     } else {
                            if (yych <= '"') {
                                   if (yych <= 0x1F) goto yy256;
                                   goto yy250;
                            } else {
                                   if (yych == '$') goto yy261;
                                   goto yy256;
                            }
                     }
              } else {
                     if (yych <= '=') {
                            if (yych <= ':') {
                                   if (yych <= ')') goto yy250;
                                   goto yy256;
                            } else {
                                   if (yych == '<') goto yy256;
                                   goto yy250;
                            }
                     } else {
                            if (yych <= '|') {
                                   if (yych <= '{') goto yy256;
                                   goto yy250;
                            } else {
                                   if (yych == '~') goto yy250;
                                   goto yy256;
                            }
                     }
              }
yy260:
              YYDEBUG(260, *YYCURSOR);
              yyaccept = 4;
              yych = *(YYMARKER = ++YYCURSOR);
              if (yych <= '=') {
                     if (yych <= '"') {
                            if (yych <= '\n') {
                                   if (yych <= 0x00) goto yy250;
                                   if (yych <= 0x08) goto yy257;
                                   goto yy250;
                            } else {
                                   if (yych == '\r') goto yy250;
                                   if (yych <= 0x1F) goto yy257;
                                   goto yy250;
                            }
                     } else {
                            if (yych <= '9') {
                                   if (yych <= '%') goto yy257;
                                   if (yych <= ')') goto yy250;
                                   if (yych <= '/') goto yy257;
                                   goto yy258;
                            } else {
                                   if (yych == ';') goto yy250;
                                   if (yych <= '<') goto yy257;
                                   goto yy250;
                            }
                     }
              } else {
                     if (yych <= '`') {
                            if (yych <= 'S') {
                                   if (yych <= '@') goto yy257;
                                   if (yych <= 'R') goto yy258;
                                   goto yy266;
                            } else {
                                   if (yych <= 'Z') goto yy258;
                                   if (yych == '_') goto yy258;
                                   goto yy257;
                            }
                     } else {
                            if (yych <= '{') {
                                   if (yych == 's') goto yy266;
                                   if (yych <= 'z') goto yy258;
                                   goto yy257;
                            } else {
                                   if (yych == '}') goto yy257;
                                   if (yych <= '~') goto yy250;
                                   goto yy257;
                            }
                     }
              }
yy261:
              YYDEBUG(261, *YYCURSOR);
              ++YYCURSOR;
              YYFILL(1);
              yych = *YYCURSOR;
              if (yych <= '\\') {
                     if (yych <= 0x00) goto yy262;
                     if (yych <= '[') goto yy256;
                     goto yy263;
              } else {
                     if (yych != '{') goto yy256;
              }
yy262:
              YYDEBUG(262, *YYCURSOR);
              YYCURSOR = YYMARKER;
              if (yyaccept <= 3) {
                     if (yyaccept <= 1) {
                            if (yyaccept <= 0) {
                                   goto yy230;
                            } else {
                                   goto yy232;
                            }
                     } else {
                            if (yyaccept <= 2) {
                                   goto yy228;
                            } else {
                                   goto yy245;
                            }
                     }
              } else {
                     if (yyaccept <= 5) {
                            if (yyaccept <= 4) {
                                   goto yy250;
                            } else {
                                   goto yy267;
                            }
                     } else {
                            goto yy274;
                     }
              }
yy263:
              YYDEBUG(263, *YYCURSOR);
              ++YYCURSOR;
              YYFILL(1);
              yych = *YYCURSOR;
              if (yybm[0+yych] & 8) {
                     goto yy264;
              }
              goto yy256;
yy264:
              YYDEBUG(264, *YYCURSOR);
              ++YYCURSOR;
              YYFILL(1);
              yych = *YYCURSOR;
              YYDEBUG(265, *YYCURSOR);
              if (yybm[0+yych] & 8) {
                     goto yy264;
              }
              if (yych <= 0x00) goto yy230;
              if (yych == '\\') goto yy263;
              goto yy256;
yy266:
              YYDEBUG(266, *YYCURSOR);
              yyaccept = 5;
              yych = *(YYMARKER = ++YYCURSOR);
              if (yybm[0+yych] & 16) {
                     goto yy268;
              }
              if (yych <= ';') {
                     if (yych <= ' ') {
                            if (yych <= '\n') {
                                   if (yych <= 0x00) goto yy267;
                                   if (yych <= '\t') goto yy257;
                            } else {
                                   if (yych != '\r') goto yy257;
                            }
                     } else {
                            if (yych <= ')') {
                                   if (yych <= '"') goto yy267;
                                   if (yych <= '%') goto yy257;
                            } else {
                                   if (yych <= '/') goto yy257;
                                   if (yych <= '9') goto yy258;
                                   if (yych <= ':') goto yy257;
                            }
                     }
              } else {
                     if (yych <= '_') {
                            if (yych <= '@') {
                                   if (yych != '=') goto yy257;
                            } else {
                                   if (yych <= 'Z') goto yy258;
                                   if (yych <= '^') goto yy257;
                                   goto yy258;
                            }
                     } else {
                            if (yych <= '{') {
                                   if (yych <= '`') goto yy257;
                                   if (yych <= 'z') goto yy258;
                                   goto yy257;
                            } else {
                                   if (yych == '}') goto yy257;
                                   if (yych >= 0x7F) goto yy257;
                            }
                     }
              }
yy267:
              YYDEBUG(267, *YYCURSOR);
              yyleng = YYCURSOR - SCNG(yy_text);
#line 418 "Zend/zend_ini_scanner.l"
              { /* TRUE value (when used outside option value/offset this causes parse error!) */
       RETURN_TOKEN(BOOL_TRUE, "1", 1);
}
#line 3596 "Zend/zend_ini_scanner.c"
yy268:
              YYDEBUG(268, *YYCURSOR);
              ++YYCURSOR;
              YYFILL(1);
              yych = *YYCURSOR;
              YYDEBUG(269, *YYCURSOR);
              if (yybm[0+yych] & 16) {
                     goto yy268;
              }
              goto yy267;
yy270:
              YYDEBUG(270, *YYCURSOR);
              yyaccept = 4;
              yych = *(YYMARKER = ++YYCURSOR);
              if (yych <= '=') {
                     if (yych <= '"') {
                            if (yych <= '\n') {
                                   if (yych <= 0x00) goto yy250;
                                   if (yych <= 0x08) goto yy257;
                                   goto yy250;
                            } else {
                                   if (yych == '\r') goto yy250;
                                   if (yych <= 0x1F) goto yy257;
                                   goto yy250;
                            }
                     } else {
                            if (yych <= '9') {
                                   if (yych <= '%') goto yy257;
                                   if (yych <= ')') goto yy250;
                                   if (yych <= '/') goto yy257;
                                   goto yy258;
                            } else {
                                   if (yych == ';') goto yy250;
                                   if (yych <= '<') goto yy257;
                                   goto yy250;
                            }
                     }
              } else {
                     if (yych <= '`') {
                            if (yych <= 'U') {
                                   if (yych <= '@') goto yy257;
                                   if (yych <= 'T') goto yy258;
                            } else {
                                   if (yych <= 'Z') goto yy258;
                                   if (yych == '_') goto yy258;
                                   goto yy257;
                            }
                     } else {
                            if (yych <= '{') {
                                   if (yych == 'u') goto yy271;
                                   if (yych <= 'z') goto yy258;
                                   goto yy257;
                            } else {
                                   if (yych == '}') goto yy257;
                                   if (yych <= '~') goto yy250;
                                   goto yy257;
                            }
                     }
              }
yy271:
              YYDEBUG(271, *YYCURSOR);
              yyaccept = 4;
              yych = *(YYMARKER = ++YYCURSOR);
              if (yych <= '=') {
                     if (yych <= '"') {
                            if (yych <= '\n') {
                                   if (yych <= 0x00) goto yy250;
                                   if (yych <= 0x08) goto yy257;
                                   goto yy250;
                            } else {
                                   if (yych == '\r') goto yy250;
                                   if (yych <= 0x1F) goto yy257;
                                   goto yy250;
                            }
                     } else {
                            if (yych <= '9') {
                                   if (yych <= '%') goto yy257;
                                   if (yych <= ')') goto yy250;
                                   if (yych <= '/') goto yy257;
                                   goto yy258;
                            } else {
                                   if (yych == ';') goto yy250;
                                   if (yych <= '<') goto yy257;
                                   goto yy250;
                            }
                     }
              } else {
                     if (yych <= '`') {
                            if (yych <= 'E') {
                                   if (yych <= '@') goto yy257;
                                   if (yych <= 'D') goto yy258;
                                   goto yy266;
                            } else {
                                   if (yych <= 'Z') goto yy258;
                                   if (yych == '_') goto yy258;
                                   goto yy257;
                            }
                     } else {
                            if (yych <= '{') {
                                   if (yych == 'e') goto yy266;
                                   if (yych <= 'z') goto yy258;
                                   goto yy257;
                            } else {
                                   if (yych == '}') goto yy257;
                                   if (yych <= '~') goto yy250;
                                   goto yy257;
                            }
                     }
              }
yy272:
              YYDEBUG(272, *YYCURSOR);
              yyaccept = 4;
              yych = *(YYMARKER = ++YYCURSOR);
              if (yych <= '=') {
                     if (yych <= '"') {
                            if (yych <= '\n') {
                                   if (yych <= 0x00) goto yy250;
                                   if (yych <= 0x08) goto yy257;
                                   goto yy250;
                            } else {
                                   if (yych == '\r') goto yy250;
                                   if (yych <= 0x1F) goto yy257;
                                   goto yy250;
                            }
                     } else {
                            if (yych <= '9') {
                                   if (yych <= '%') goto yy257;
                                   if (yych <= ')') goto yy250;
                                   if (yych <= '/') goto yy257;
                                   goto yy258;
                            } else {
                                   if (yych == ';') goto yy250;
                                   if (yych <= '<') goto yy257;
                                   goto yy250;
                            }
                     }
              } else {
                     if (yych <= '`') {
                            if (yych <= 'F') {
                                   if (yych <= '@') goto yy257;
                                   if (yych <= 'E') goto yy258;
                            } else {
                                   if (yych <= 'Z') goto yy258;
                                   if (yych == '_') goto yy258;
                                   goto yy257;
                            }
                     } else {
                            if (yych <= '{') {
                                   if (yych == 'f') goto yy273;
                                   if (yych <= 'z') goto yy258;
                                   goto yy257;
                            } else {
                                   if (yych == '}') goto yy257;
                                   if (yych <= '~') goto yy250;
                                   goto yy257;
                            }
                     }
              }
yy273:
              YYDEBUG(273, *YYCURSOR);
              yyaccept = 6;
              yych = *(YYMARKER = ++YYCURSOR);
              if (yybm[0+yych] & 4) {
                     goto yy258;
              }
              if (yych <= '%') {
                     if (yych <= '\f') {
                            if (yych <= 0x08) {
                                   if (yych >= 0x01) goto yy257;
                            } else {
                                   if (yych <= '\t') goto yy275;
                                   if (yych >= '\v') goto yy257;
                            }
                     } else {
                            if (yych <= 0x1F) {
                                   if (yych >= 0x0E) goto yy257;
                            } else {
                                   if (yych <= ' ') goto yy275;
                                   if (yych >= '#') goto yy257;
                            }
                     }
              } else {
                     if (yych <= '=') {
                            if (yych <= ':') {
                                   if (yych >= '*') goto yy257;
                            } else {
                                   if (yych == '<') goto yy257;
                            }
                     } else {
                            if (yych <= '|') {
                                   if (yych <= '{') goto yy257;
                            } else {
                                   if (yych != '~') goto yy257;
                            }
                     }
              }
yy274:
              YYDEBUG(274, *YYCURSOR);
              yyleng = YYCURSOR - SCNG(yy_text);
#line 422 "Zend/zend_ini_scanner.l"
              { /* FALSE value (when used outside option value/offset this causes parse error!)*/
       RETURN_TOKEN(BOOL_FALSE, "", 0);
}
#line 3800 "Zend/zend_ini_scanner.c"
yy275:
              YYDEBUG(275, *YYCURSOR);
              ++YYCURSOR;
              YYFILL(1);
              yych = *YYCURSOR;
              YYDEBUG(276, *YYCURSOR);
              if (yych == '\t') goto yy275;
              if (yych == ' ') goto yy275;
              goto yy274;
yy277:
              YYDEBUG(277, *YYCURSOR);
              yyaccept = 6;
              yych = *(YYMARKER = ++YYCURSOR);
              if (yych <= '<') {
                     if (yych <= ' ') {
                            if (yych <= '\n') {
                                   if (yych <= 0x00) goto yy274;
                                   if (yych <= 0x08) goto yy257;
                                   if (yych <= '\t') goto yy275;
                                   goto yy274;
                            } else {
                                   if (yych == '\r') goto yy274;
                                   if (yych <= 0x1F) goto yy257;
                                   goto yy275;
                            }
                     } else {
                            if (yych <= '/') {
                                   if (yych <= '"') goto yy274;
                                   if (yych <= '%') goto yy257;
                                   if (yych <= ')') goto yy274;
                                   goto yy257;
                            } else {
                                   if (yych <= '9') goto yy258;
                                   if (yych == ';') goto yy274;
                                   goto yy257;
                            }
                     }
              } else {
                     if (yych <= '`') {
                            if (yych <= 'N') {
                                   if (yych <= '=') goto yy274;
                                   if (yych <= '@') goto yy257;
                                   if (yych <= 'M') goto yy258;
                                   goto yy280;
                            } else {
                                   if (yych <= 'Z') goto yy258;
                                   if (yych == '_') goto yy258;
                                   goto yy257;
                            }
                     } else {
                            if (yych <= '{') {
                                   if (yych == 'n') goto yy280;
                                   if (yych <= 'z') goto yy258;
                                   goto yy257;
                            } else {
                                   if (yych == '}') goto yy257;
                                   if (yych <= '~') goto yy274;
                                   goto yy257;
                            }
                     }
              }
yy278:
              YYDEBUG(278, *YYCURSOR);
              yyaccept = 4;
              yych = *(YYMARKER = ++YYCURSOR);
              if (yych <= '=') {
                     if (yych <= '"') {
                            if (yych <= '\n') {
                                   if (yych <= 0x00) goto yy250;
                                   if (yych <= 0x08) goto yy257;
                                   goto yy250;
                            } else {
                                   if (yych == '\r') goto yy250;
                                   if (yych <= 0x1F) goto yy257;
                                   goto yy250;
                            }
                     } else {
                            if (yych <= '9') {
                                   if (yych <= '%') goto yy257;
                                   if (yych <= ')') goto yy250;
                                   if (yych <= '/') goto yy257;
                                   goto yy258;
                            } else {
                                   if (yych == ';') goto yy250;
                                   if (yych <= '<') goto yy257;
                                   goto yy250;
                            }
                     }
              } else {
                     if (yych <= '`') {
                            if (yych <= 'L') {
                                   if (yych <= '@') goto yy257;
                                   if (yych <= 'K') goto yy258;
                            } else {
                                   if (yych <= 'Z') goto yy258;
                                   if (yych == '_') goto yy258;
                                   goto yy257;
                            }
                     } else {
                            if (yych <= '{') {
                                   if (yych == 'l') goto yy279;
                                   if (yych <= 'z') goto yy258;
                                   goto yy257;
                            } else {
                                   if (yych == '}') goto yy257;
                                   if (yych <= '~') goto yy250;
                                   goto yy257;
                            }
                     }
              }
yy279:
              YYDEBUG(279, *YYCURSOR);
              yyaccept = 4;
              yych = *(YYMARKER = ++YYCURSOR);
              if (yych <= '=') {
                     if (yych <= '"') {
                            if (yych <= '\n') {
                                   if (yych <= 0x00) goto yy250;
                                   if (yych <= 0x08) goto yy257;
                                   goto yy250;
                            } else {
                                   if (yych == '\r') goto yy250;
                                   if (yych <= 0x1F) goto yy257;
                                   goto yy250;
                            }
                     } else {
                            if (yych <= '9') {
                                   if (yych <= '%') goto yy257;
                                   if (yych <= ')') goto yy250;
                                   if (yych <= '/') goto yy257;
                                   goto yy258;
                            } else {
                                   if (yych == ';') goto yy250;
                                   if (yych <= '<') goto yy257;
                                   goto yy250;
                            }
                     }
              } else {
                     if (yych <= '`') {
                            if (yych <= 'L') {
                                   if (yych <= '@') goto yy257;
                                   if (yych <= 'K') goto yy258;
                                   goto yy273;
                            } else {
                                   if (yych <= 'Z') goto yy258;
                                   if (yych == '_') goto yy258;
                                   goto yy257;
                            }
                     } else {
                            if (yych <= '{') {
                                   if (yych == 'l') goto yy273;
                                   if (yych <= 'z') goto yy258;
                                   goto yy257;
                            } else {
                                   if (yych == '}') goto yy257;
                                   if (yych <= '~') goto yy250;
                                   goto yy257;
                            }
                     }
              }
yy280:
              YYDEBUG(280, *YYCURSOR);
              yyaccept = 4;
              yych = *(YYMARKER = ++YYCURSOR);
              if (yych <= '=') {
                     if (yych <= '"') {
                            if (yych <= '\n') {
                                   if (yych <= 0x00) goto yy250;
                                   if (yych <= 0x08) goto yy257;
                                   goto yy250;
                            } else {
                                   if (yych == '\r') goto yy250;
                                   if (yych <= 0x1F) goto yy257;
                                   goto yy250;
                            }
                     } else {
                            if (yych <= '9') {
                                   if (yych <= '%') goto yy257;
                                   if (yych <= ')') goto yy250;
                                   if (yych <= '/') goto yy257;
                                   goto yy258;
                            } else {
                                   if (yych == ';') goto yy250;
                                   if (yych <= '<') goto yy257;
                                   goto yy250;
                            }
                     }
              } else {
                     if (yych <= '`') {
                            if (yych <= 'E') {
                                   if (yych <= '@') goto yy257;
                                   if (yych <= 'D') goto yy258;
                                   goto yy273;
                            } else {
                                   if (yych <= 'Z') goto yy258;
                                   if (yych == '_') goto yy258;
                                   goto yy257;
                            }
                     } else {
                            if (yych <= '{') {
                                   if (yych == 'e') goto yy273;
                                   if (yych <= 'z') goto yy258;
                                   goto yy257;
                            } else {
                                   if (yych == '}') goto yy257;
                                   if (yych <= '~') goto yy250;
                                   goto yy257;
                            }
                     }
              }
yy281:
              YYDEBUG(281, *YYCURSOR);
              yyaccept = 4;
              yych = *(YYMARKER = ++YYCURSOR);
              if (yych <= '=') {
                     if (yych <= '"') {
                            if (yych <= '\n') {
                                   if (yych <= 0x00) goto yy250;
                                   if (yych <= 0x08) goto yy257;
                                   goto yy250;
                            } else {
                                   if (yych == '\r') goto yy250;
                                   if (yych <= 0x1F) goto yy257;
                                   goto yy250;
                            }
                     } else {
                            if (yych <= '9') {
                                   if (yych <= '%') goto yy257;
                                   if (yych <= ')') goto yy250;
                                   if (yych <= '/') goto yy257;
                                   goto yy258;
                            } else {
                                   if (yych == ';') goto yy250;
                                   if (yych <= '<') goto yy257;
                                   goto yy250;
                            }
                     }
              } else {
                     if (yych <= '`') {
                            if (yych <= 'L') {
                                   if (yych <= '@') goto yy257;
                                   if (yych <= 'K') goto yy258;
                            } else {
                                   if (yych <= 'Z') goto yy258;
                                   if (yych == '_') goto yy258;
                                   goto yy257;
                            }
                     } else {
                            if (yych <= '{') {
                                   if (yych == 'l') goto yy282;
                                   if (yych <= 'z') goto yy258;
                                   goto yy257;
                            } else {
                                   if (yych == '}') goto yy257;
                                   if (yych <= '~') goto yy250;
                                   goto yy257;
                            }
                     }
              }
yy282:
              YYDEBUG(282, *YYCURSOR);
              yyaccept = 4;
              yych = *(YYMARKER = ++YYCURSOR);
              if (yych <= '=') {
                     if (yych <= '"') {
                            if (yych <= '\n') {
                                   if (yych <= 0x00) goto yy250;
                                   if (yych <= 0x08) goto yy257;
                                   goto yy250;
                            } else {
                                   if (yych == '\r') goto yy250;
                                   if (yych <= 0x1F) goto yy257;
                                   goto yy250;
                            }
                     } else {
                            if (yych <= '9') {
                                   if (yych <= '%') goto yy257;
                                   if (yych <= ')') goto yy250;
                                   if (yych <= '/') goto yy257;
                                   goto yy258;
                            } else {
                                   if (yych == ';') goto yy250;
                                   if (yych <= '<') goto yy257;
                                   goto yy250;
                            }
                     }
              } else {
                     if (yych <= '`') {
                            if (yych <= 'S') {
                                   if (yych <= '@') goto yy257;
                                   if (yych <= 'R') goto yy258;
                            } else {
                                   if (yych <= 'Z') goto yy258;
                                   if (yych == '_') goto yy258;
                                   goto yy257;
                            }
                     } else {
                            if (yych <= '{') {
                                   if (yych == 's') goto yy283;
                                   if (yych <= 'z') goto yy258;
                                   goto yy257;
                            } else {
                                   if (yych == '}') goto yy257;
                                   if (yych <= '~') goto yy250;
                                   goto yy257;
                            }
                     }
              }
yy283:
              YYDEBUG(283, *YYCURSOR);
              yyaccept = 4;
              yych = *(YYMARKER = ++YYCURSOR);
              if (yych <= '=') {
                     if (yych <= '"') {
                            if (yych <= '\n') {
                                   if (yych <= 0x00) goto yy250;
                                   if (yych <= 0x08) goto yy257;
                                   goto yy250;
                            } else {
                                   if (yych == '\r') goto yy250;
                                   if (yych <= 0x1F) goto yy257;
                                   goto yy250;
                            }
                     } else {
                            if (yych <= '9') {
                                   if (yych <= '%') goto yy257;
                                   if (yych <= ')') goto yy250;
                                   if (yych <= '/') goto yy257;
                                   goto yy258;
                            } else {
                                   if (yych == ';') goto yy250;
                                   if (yych <= '<') goto yy257;
                                   goto yy250;
                            }
                     }
              } else {
                     if (yych <= '`') {
                            if (yych <= 'E') {
                                   if (yych <= '@') goto yy257;
                                   if (yych <= 'D') goto yy258;
                                   goto yy273;
                            } else {
                                   if (yych <= 'Z') goto yy258;
                                   if (yych == '_') goto yy258;
                                   goto yy257;
                            }
                     } else {
                            if (yych <= '{') {
                                   if (yych == 'e') goto yy273;
                                   if (yych <= 'z') goto yy258;
                                   goto yy257;
                            } else {
                                   if (yych == '}') goto yy257;
                                   if (yych <= '~') goto yy250;
                                   goto yy257;
                            }
                     }
              }
yy284:
              YYDEBUG(284, *YYCURSOR);
              ++YYCURSOR;
              YYFILL(2);
              yych = *YYCURSOR;
yy285:
              YYDEBUG(285, *YYCURSOR);
              if (yybm[0+yych] & 32) {
                     goto yy284;
              }
              if (yych >= '\r') goto yy288;
yy286:
              YYDEBUG(286, *YYCURSOR);
              ++YYCURSOR;
yy287:
              YYDEBUG(287, *YYCURSOR);
              yyleng = YYCURSOR - SCNG(yy_text);
#line 554 "Zend/zend_ini_scanner.l"
              { /* Comment */
       BEGIN(INITIAL);
       SCNG(lineno)++;
       return END_OF_LINE;
}
#line 4182 "Zend/zend_ini_scanner.c"
yy288:
              YYDEBUG(288, *YYCURSOR);
              yych = *++YYCURSOR;
              if (yych == '\n') goto yy286;
              goto yy287;
yy289:
              YYDEBUG(289, *YYCURSOR);
              yyaccept = 3;
              YYMARKER = ++YYCURSOR;
              YYFILL(1);
              yych = *YYCURSOR;
              YYDEBUG(290, *YYCURSOR);
              if (yybm[0+yych] & 64) {
                     goto yy289;
              }
              if (yych <= '%') {
                     if (yych <= '\r') {
                            if (yych <= 0x08) {
                                   if (yych <= 0x00) goto yy245;
                                   goto yy256;
                            } else {
                                   if (yych <= '\n') goto yy245;
                                   if (yych <= '\f') goto yy256;
                                   goto yy245;
                            }
                     } else {
                            if (yych <= '"') {
                                   if (yych <= 0x1F) goto yy256;
                                   goto yy245;
                            } else {
                                   if (yych == '$') goto yy261;
                                   goto yy256;
                            }
                     }
              } else {
                     if (yych <= '=') {
                            if (yych <= ':') {
                                   if (yych <= ')') goto yy245;
                                   goto yy256;
                            } else {
                                   if (yych == '<') goto yy256;
                                   goto yy245;
                            }
                     } else {
                            if (yych <= '|') {
                                   if (yych <= '{') goto yy256;
                                   goto yy245;
                            } else {
                                   if (yych == '~') goto yy245;
                                   goto yy256;
                            }
                     }
              }
yy291:
              YYDEBUG(291, *YYCURSOR);
              yyaccept = 3;
              YYMARKER = ++YYCURSOR;
              YYFILL(1);
              yych = *YYCURSOR;
              YYDEBUG(292, *YYCURSOR);
              if (yych <= '-') {
                     if (yych <= 0x1F) {
                            if (yych <= '\n') {
                                   if (yych <= 0x00) goto yy245;
                                   if (yych <= 0x08) goto yy256;
                                   goto yy245;
                            } else {
                                   if (yych == '\r') goto yy245;
                                   goto yy256;
                            }
                     } else {
                            if (yych <= '$') {
                                   if (yych <= '"') goto yy245;
                                   if (yych <= '#') goto yy256;
                                   goto yy261;
                            } else {
                                   if (yych <= '%') goto yy256;
                                   if (yych <= ')') goto yy245;
                                   goto yy256;
                            }
                     }
              } else {
                     if (yych <= '<') {
                            if (yych <= '9') {
                                   if (yych <= '.') goto yy289;
                                   if (yych <= '/') goto yy256;
                                   goto yy291;
                            } else {
                                   if (yych == ';') goto yy245;
                                   goto yy256;
                            }
                     } else {
                            if (yych <= '|') {
                                   if (yych <= '=') goto yy245;
                                   if (yych <= '{') goto yy256;
                                   goto yy245;
                            } else {
                                   if (yych == '~') goto yy245;
                                   goto yy256;
                            }
                     }
              }
yy293:
              YYDEBUG(293, *YYCURSOR);
              yyaccept = 3;
              YYMARKER = ++YYCURSOR;
              YYFILL(1);
              yych = *YYCURSOR;
              YYDEBUG(294, *YYCURSOR);
              if (yych <= ')') {
                     if (yych <= '\r') {
                            if (yych <= 0x08) {
                                   if (yych <= 0x00) goto yy245;
                                   goto yy256;
                            } else {
                                   if (yych <= '\n') goto yy245;
                                   if (yych <= '\f') goto yy256;
                                   goto yy245;
                            }
                     } else {
                            if (yych <= '#') {
                                   if (yych <= 0x1F) goto yy256;
                                   if (yych <= '"') goto yy245;
                                   goto yy256;
                            } else {
                                   if (yych <= '$') goto yy261;
                                   if (yych <= '%') goto yy256;
                                   goto yy245;
                            }
                     }
              } else {
                     if (yych <= '<') {
                            if (yych <= '9') {
                                   if (yych <= '/') goto yy256;
                                   goto yy293;
                            } else {
                                   if (yych == ';') goto yy245;
                                   goto yy256;
                            }
                     } else {
                            if (yych <= '|') {
                                   if (yych <= '=') goto yy245;
                                   if (yych <= '{') goto yy256;
                                   goto yy245;
                            } else {
                                   if (yych == '~') goto yy245;
                                   goto yy256;
                            }
                     }
              }
yy295:
              YYDEBUG(295, *YYCURSOR);
              yyaccept = 3;
              YYMARKER = ++YYCURSOR;
              YYFILL(1);
              yych = *YYCURSOR;
              YYDEBUG(296, *YYCURSOR);
              if (yych <= ')') {
                     if (yych <= '\r') {
                            if (yych <= 0x08) {
                                   if (yych <= 0x00) goto yy245;
                                   goto yy256;
                            } else {
                                   if (yych <= '\n') goto yy245;
                                   if (yych <= '\f') goto yy256;
                                   goto yy245;
                            }
                     } else {
                            if (yych <= '#') {
                                   if (yych <= 0x1F) goto yy256;
                                   if (yych <= '"') goto yy245;
                                   goto yy256;
                            } else {
                                   if (yych <= '$') goto yy261;
                                   if (yych <= '%') goto yy256;
                                   goto yy245;
                            }
                     }
              } else {
                     if (yych <= '<') {
                            if (yych <= '9') {
                                   if (yych <= '/') goto yy256;
                                   goto yy295;
                            } else {
                                   if (yych == ';') goto yy245;
                                   goto yy256;
                            }
                     } else {
                            if (yych <= '|') {
                                   if (yych <= '=') goto yy245;
                                   if (yych <= '{') goto yy256;
                                   goto yy245;
                            } else {
                                   if (yych == '~') goto yy245;
                                   goto yy256;
                            }
                     }
              }
yy297:
              YYDEBUG(297, *YYCURSOR);
              ++YYCURSOR;
              YYFILL(1);
              yych = *YYCURSOR;
              YYDEBUG(298, *YYCURSOR);
              if (yybm[0+yych] & 128) {
                     goto yy297;
              }
              YYDEBUG(299, *YYCURSOR);
              ++YYCURSOR;
              YYDEBUG(300, *YYCURSOR);
              yyleng = YYCURSOR - SCNG(yy_text);
#line 365 "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 4403 "Zend/zend_ini_scanner.c"
yy301:
              YYDEBUG(301, *YYCURSOR);
              ++YYCURSOR;
              YYDEBUG(302, *YYCURSOR);
              yyleng = YYCURSOR - SCNG(yy_text);
#line 398 "Zend/zend_ini_scanner.l"
              { /* Variable start */
       yy_push_state(ST_VARNAME TSRMLS_CC);
       return TC_DOLLAR_CURLY;
}
#line 4414 "Zend/zend_ini_scanner.c"
yy303:
              YYDEBUG(303, *YYCURSOR);
              ++YYCURSOR;
              YYFILL(1);
              yych = *YYCURSOR;
yy304:
              YYDEBUG(304, *YYCURSOR);
              if (yych == '\t') goto yy303;
              if (yych == ' ') goto yy303;
              goto yy237;
yy305:
              YYDEBUG(305, *YYCURSOR);
              yych = *++YYCURSOR;
              goto yy234;
yy306:
              YYDEBUG(306, *YYCURSOR);
              yyaccept = 1;
              YYMARKER = ++YYCURSOR;
              YYFILL(2);
              yych = *YYCURSOR;
yy307:
              YYDEBUG(307, *YYCURSOR);
              if (yych <= 0x1F) {
                     if (yych <= '\n') {
                            if (yych <= 0x08) goto yy232;
                            if (yych <= '\t') goto yy306;
                            goto yy305;
                     } else {
                            if (yych == '\r') goto yy309;
                            goto yy232;
                     }
              } else {
                     if (yych <= '"') {
                            if (yych <= ' ') goto yy306;
                            if (yych <= '!') goto yy232;
                     } else {
                            if (yych == ';') goto yy284;
                            goto yy232;
                     }
              }
              YYDEBUG(308, *YYCURSOR);
              yych = *++YYCURSOR;
              goto yy239;
yy309:
              YYDEBUG(309, *YYCURSOR);
              ++YYCURSOR;
              if ((yych = *YYCURSOR) == '\n') goto yy305;
              goto yy234;
       }
/* *********************************** */
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, 128, 128, 
                     128, 128, 128, 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(310, *YYCURSOR);
              YYFILL(2);
              yych = *YYCURSOR;
              if (yych <= '\'') {
                     if (yych <= ' ') {
                            if (yych <= '\n') {
                                   if (yych >= '\t') goto yy314;
                            } else {
                                   if (yych == '\r') goto yy314;
                            }
                     } else {
                            if (yych <= '$') {
                                   if (yych != '#') goto yy314;
                            } else {
                                   if (yych == '&') goto yy314;
                            }
                     }
              } else {
                     if (yych <= 'Z') {
                            if (yych <= ';') {
                                   if (yych <= ')') goto yy314;
                                   if (yych >= ';') goto yy314;
                            } else {
                                   if (yych == '=') goto yy314;
                            }
                     } else {
                            if (yych <= '|') {
                                   if (yych <= '[') goto yy314;
                                   if (yych >= '{') goto yy314;
                            } else {
                                   if (yych <= '}') goto yy316;
                                   if (yych <= '~') goto yy314;
                            }
                     }
              }
              YYDEBUG(312, *YYCURSOR);
              ++YYCURSOR;
              yych = *YYCURSOR;
              goto yy319;
yy313:
              YYDEBUG(313, *YYCURSOR);
              yyleng = YYCURSOR - SCNG(yy_text);
#line 403 "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 4553 "Zend/zend_ini_scanner.c"
yy314:
              YYDEBUG(314, *YYCURSOR);
              ++YYCURSOR;
              YYDEBUG(315, *YYCURSOR);
              yyleng = YYCURSOR - SCNG(yy_text);
#line 572 "Zend/zend_ini_scanner.l"
              {
       return 0;
}
#line 4563 "Zend/zend_ini_scanner.c"
yy316:
              YYDEBUG(316, *YYCURSOR);
              ++YYCURSOR;
              YYDEBUG(317, *YYCURSOR);
              yyleng = YYCURSOR - SCNG(yy_text);
#line 413 "Zend/zend_ini_scanner.l"
              { /* Variable end */
       yy_pop_state(TSRMLS_C);
       return '}';
}
#line 4574 "Zend/zend_ini_scanner.c"
yy318:
              YYDEBUG(318, *YYCURSOR);
              ++YYCURSOR;
              YYFILL(1);
              yych = *YYCURSOR;
yy319:
              YYDEBUG(319, *YYCURSOR);
              if (yybm[0+yych] & 128) {
                     goto yy318;
              }
              goto yy313;
       }
}
#line 576 "Zend/zend_ini_scanner.l"

}

Here is the call graph for this function:

static int init_ini_scanner ( int  scanner_mode,
zend_file_handle *fh  TSRMLS_DC 
) [static]

Definition at line 174 of file zend_ini_scanner.c.

{
       /* 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;
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 201 of file zend_ini_scanner.c.

{
       zend_stack_destroy(&SCNG(state_stack));
       if (ini_filename) {
              free(ini_filename);
       }
}

Here is the call graph for this function:

Here is the caller graph for this function:

static void yy_pop_state ( TSRMLS_D  ) [static]

Definition at line 155 of file zend_ini_scanner.c.

{
       int *stack_state;
       zend_stack_top(&SCNG(state_stack), (void **) &stack_state);
       YYSETCONDITION(*stack_state);
       zend_stack_del_top(&SCNG(state_stack));
}

Here is the call graph for this function:

Here is the caller graph for this function:

static void yy_scan_buffer ( char *  str,
unsigned int len  TSRMLS_DC 
) [static]

Definition at line 163 of file zend_ini_scanner.c.

{
       YYCURSOR = (YYCTYPE*)str;
       SCNG(yy_start) = YYCURSOR;
       YYLIMIT  = YYCURSOR + len;
}

Here is the caller graph for this function:

static void zend_ini_escape_string ( zval *  lval,
char *  str,
int  len,
char quote_type  TSRMLS_DC 
) [static]

Definition at line 263 of file zend_ini_scanner.c.

{
       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;
}

Here is the caller graph for this function:

int zend_ini_open_file_for_scanning ( zend_file_handle fh,
int scanner_mode  TSRMLS_DC 
)

Definition at line 228 of file zend_ini_scanner.c.

{
       char *buf;
       size_t size;

       if (zend_stream_fixup(fh, &buf, &size TSRMLS_CC) == FAILURE ||
              init_ini_scanner(scanner_mode, fh TSRMLS_CC) == FAILURE
       ) {
              return FAILURE;
       }

       yy_scan_buffer(buf, size TSRMLS_CC);

       return SUCCESS;
}

Here is the call graph for this function:

Here is the caller graph for this function:

int zend_ini_prepare_string_for_scanning ( char *  str,
int scanner_mode  TSRMLS_DC 
)

Definition at line 247 of file zend_ini_scanner.c.

{
       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;
}

Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 220 of file zend_ini_scanner.c.

{
       return ini_filename ? ini_filename : "Unknown";
}

Here is the caller graph for this function:

Definition at line 212 of file zend_ini_scanner.c.

{
       return SCNG(lineno);
}

Here is the caller graph for this function:


Variable Documentation

ZEND_API zend_ini_scanner_globals ini_scanner_globals

Definition at line 107 of file zend_ini_scanner.c.