Browse Source

Better generated parser

experimental/5.2-WITH_DRCP
Ilia Alshanetsky 20 years ago
parent
commit
a8c006235c
  1. 338
      ext/pdo/pdo_sql_parser.c

338
ext/pdo/pdo_sql_parser.c

@ -1,4 +1,4 @@
/* Generated by re2c 0.11.0 on Wed Jan 31 18:53:45 2007 */
/* Generated by re2c 0.11.0 on Thu Feb 1 19:01:11 2007 */
#line 1 "ext/pdo/pdo_sql_parser.re"
/*
+----------------------------------------------------------------------+
@ -49,248 +49,142 @@ static int scan(Scanner *s)
#line 54 "ext/pdo/pdo_sql_parser.re"
#line 54 "ext/pdo/pdo_sql_parser.c"
{
YYCTYPE yych;
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
switch(yych) {
case 0x00: goto yy11;
case '"': goto yy2;
case '\'': goto yy4;
case ':': goto yy5;
case '?': goto yy6;
default: goto yy8;
}
{
static unsigned char yybm[] = {
192, 200, 200, 200, 200, 200, 200, 200,
200, 200, 200, 200, 200, 200, 200, 200,
200, 200, 200, 200, 200, 200, 200, 200,
200, 200, 200, 200, 200, 200, 200, 200,
200, 200, 64, 200, 200, 200, 200, 128,
200, 200, 200, 200, 200, 200, 200, 200,
232, 232, 232, 232, 232, 232, 232, 232,
232, 232, 208, 200, 200, 200, 200, 208,
200, 232, 232, 232, 232, 232, 232, 232,
232, 232, 232, 232, 232, 232, 232, 232,
232, 232, 232, 232, 232, 232, 232, 232,
232, 232, 232, 200, 200, 200, 200, 232,
200, 232, 232, 232, 232, 232, 232, 232,
232, 232, 232, 232, 232, 232, 232, 232,
232, 232, 232, 232, 232, 232, 232, 232,
232, 232, 232, 200, 200, 200, 200, 200,
200, 200, 200, 200, 200, 200, 200, 200,
200, 200, 200, 200, 200, 200, 200, 200,
200, 200, 200, 200, 200, 200, 200, 200,
200, 200, 200, 200, 200, 200, 200, 200,
200, 200, 200, 200, 200, 200, 200, 200,
200, 200, 200, 200, 200, 200, 200, 200,
200, 200, 200, 200, 200, 200, 200, 200,
200, 200, 200, 200, 200, 200, 200, 200,
200, 200, 200, 200, 200, 200, 200, 200,
200, 200, 200, 200, 200, 200, 200, 200,
200, 200, 200, 200, 200, 200, 200, 200,
200, 200, 200, 200, 200, 200, 200, 200,
200, 200, 200, 200, 200, 200, 200, 200,
200, 200, 200, 200, 200, 200, 200, 200,
200, 200, 200, 200, 200, 200, 200, 200,
200, 200, 200, 200, 200, 200, 200, 200,
};
#line 89 "ext/pdo/pdo_sql_parser.c"
{
YYCTYPE yych;
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
if(yybm[0+yych] & 8) {
goto yy8;
}
if(yych <= 0x00) goto yy11;
if(yych <= '&') goto yy2;
if(yych <= '\'') goto yy4;
if(yych <= '>') goto yy5;
goto yy6;
yy2:
yych = *++YYCURSOR;
goto yy24;
yych = *++YYCURSOR;
goto yy24;
yy3:
#line 62 "ext/pdo/pdo_sql_parser.re"
{ RET(PDO_PARSER_TEXT); }
#line 74 "ext/pdo/pdo_sql_parser.c"
{ RET(PDO_PARSER_TEXT); }
#line 109 "ext/pdo/pdo_sql_parser.c"
yy4:
yych = *++YYCURSOR;
goto yy20;
yych = *++YYCURSOR;
goto yy20;
yy5:
yych = *++YYCURSOR;
switch(yych) {
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
case 'A':
case 'B':
case 'C':
case 'D':
case 'E':
case 'F':
case 'G':
case 'H':
case 'I':
case 'J':
case 'K':
case 'L':
case 'M':
case 'N':
case 'O':
case 'P':
case 'Q':
case 'R':
case 'S':
case 'T':
case 'U':
case 'V':
case 'W':
case 'X':
case 'Y':
case 'Z':
case '_':
case 'a':
case 'b':
case 'c':
case 'd':
case 'e':
case 'f':
case 'g':
case 'h':
case 'i':
case 'j':
case 'k':
case 'l':
case 'm':
case 'n':
case 'o':
case 'p':
case 'q':
case 'r':
case 's':
case 't':
case 'u':
case 'v':
case 'w':
case 'x':
case 'y':
case 'z': goto yy16;
case ':':
case '?': goto yy13;
default: goto yy3;
}
yych = *++YYCURSOR;
if(yybm[0+yych] & 32) {
goto yy16;
}
if(yych == ':') goto yy13;
if(yych == '?') goto yy13;
goto yy3;
yy6:
++YYCURSOR;
switch((yych = *YYCURSOR)) {
case ':':
case '?': goto yy13;
default: goto yy7;
}
yy7:
++YYCURSOR;
if(yybm[0+(yych = *YYCURSOR)] & 16) {
goto yy13;
}
#line 61 "ext/pdo/pdo_sql_parser.re"
{ RET(PDO_PARSER_BIND_POS); }
#line 158 "ext/pdo/pdo_sql_parser.c"
{ RET(PDO_PARSER_BIND_POS); }
#line 128 "ext/pdo/pdo_sql_parser.c"
yy8:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
switch(yych) {
case 0x00:
case '"':
case '\'':
case ':':
case '?': goto yy10;
default: goto yy8;
}
yy10:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
if(yybm[0+yych] & 8) {
goto yy8;
}
#line 63 "ext/pdo/pdo_sql_parser.re"
{ RET(PDO_PARSER_TEXT); }
#line 174 "ext/pdo/pdo_sql_parser.c"
{ RET(PDO_PARSER_TEXT); }
#line 138 "ext/pdo/pdo_sql_parser.c"
yy11:
++YYCURSOR;
++YYCURSOR;
#line 64 "ext/pdo/pdo_sql_parser.re"
{ RET(PDO_PARSER_EOI); }
#line 179 "ext/pdo/pdo_sql_parser.c"
{ RET(PDO_PARSER_EOI); }
#line 143 "ext/pdo/pdo_sql_parser.c"
yy13:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
switch(yych) {
case ':':
case '?': goto yy13;
default: goto yy15;
}
yy15:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
if(yybm[0+yych] & 16) {
goto yy13;
}
#line 59 "ext/pdo/pdo_sql_parser.re"
{ RET(PDO_PARSER_TEXT); }
#line 192 "ext/pdo/pdo_sql_parser.c"
{ RET(PDO_PARSER_TEXT); }
#line 153 "ext/pdo/pdo_sql_parser.c"
yy16:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
switch(yych) {
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
case 'A':
case 'B':
case 'C':
case 'D':
case 'E':
case 'F':
case 'G':
case 'H':
case 'I':
case 'J':
case 'K':
case 'L':
case 'M':
case 'N':
case 'O':
case 'P':
case 'Q':
case 'R':
case 'S':
case 'T':
case 'U':
case 'V':
case 'W':
case 'X':
case 'Y':
case 'Z':
case '_':
case 'a':
case 'b':
case 'c':
case 'd':
case 'e':
case 'f':
case 'g':
case 'h':
case 'i':
case 'j':
case 'k':
case 'l':
case 'm':
case 'n':
case 'o':
case 'p':
case 'q':
case 'r':
case 's':
case 't':
case 'u':
case 'v':
case 'w':
case 'x':
case 'y':
case 'z': goto yy16;
default: goto yy18;
}
yy18:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
if(yybm[0+yych] & 32) {
goto yy16;
}
#line 60 "ext/pdo/pdo_sql_parser.re"
{ RET(PDO_PARSER_BIND); }
#line 266 "ext/pdo/pdo_sql_parser.c"
{ RET(PDO_PARSER_BIND); }
#line 163 "ext/pdo/pdo_sql_parser.c"
yy19:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy20:
switch(yych) {
case '\'': goto yy21;
default: goto yy19;
}
yy21:
++YYCURSOR;
if(yybm[0+yych] & 64) {
goto yy19;
}
++YYCURSOR;
#line 58 "ext/pdo/pdo_sql_parser.re"
{ RET(PDO_PARSER_TEXT); }
#line 280 "ext/pdo/pdo_sql_parser.c"
{ RET(PDO_PARSER_TEXT); }
#line 175 "ext/pdo/pdo_sql_parser.c"
yy23:
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
yy24:
switch(yych) {
case '"': goto yy25;
default: goto yy23;
}
yy25:
++YYCURSOR;
if(yybm[0+yych] & 128) {
goto yy23;
}
++YYCURSOR;
#line 57 "ext/pdo/pdo_sql_parser.re"
{ RET(PDO_PARSER_TEXT); }
#line 294 "ext/pdo/pdo_sql_parser.c"
{ RET(PDO_PARSER_TEXT); }
#line 187 "ext/pdo/pdo_sql_parser.c"
}
}
#line 65 "ext/pdo/pdo_sql_parser.re"

Loading…
Cancel
Save