diff options
author | Ilia Alshanetsky <iliaa@php.net> | 2007-02-02 00:03:33 +0000 |
---|---|---|
committer | Ilia Alshanetsky <iliaa@php.net> | 2007-02-02 00:03:33 +0000 |
commit | a8c006235cd48c06768cb835ba8b4313713a6f81 (patch) | |
tree | 3a533e6c07cc00c2787eea283dadc03d5231a5a9 /ext/pdo/pdo_sql_parser.c | |
parent | 79dfb302b1b206bcac24f143561c6dbe969fcc9e (diff) | |
download | php-git-a8c006235cd48c06768cb835ba8b4313713a6f81.tar.gz |
Better generated parser
Diffstat (limited to 'ext/pdo/pdo_sql_parser.c')
-rw-r--r-- | ext/pdo/pdo_sql_parser.c | 338 |
1 files changed, 116 insertions, 222 deletions
diff --git a/ext/pdo/pdo_sql_parser.c b/ext/pdo/pdo_sql_parser.c index 00f0fea0c3..c2b508cd97 100644 --- a/ext/pdo/pdo_sql_parser.c +++ b/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" |