diff options
author | Mark A. Hershberger <mah@debian.(none)> | 2009-03-25 00:38:30 -0400 |
---|---|---|
committer | Mark A. Hershberger <mah@debian.(none)> | 2009-03-25 00:38:30 -0400 |
commit | 1f589a2bd44ba835ad1b009a5d83abd453724829 (patch) | |
tree | ec84d715d1ff049cc61f5eaf18db21eb7f3bab40 /ext/pdo/pdo_sql_parser.c | |
parent | bb01389fbd53ec1cbcb80d0681a37cca1267891a (diff) | |
download | php-1f589a2bd44ba835ad1b009a5d83abd453724829.tar.gz |
Imported Upstream version 5.2.5upstream/5.2.5
Diffstat (limited to 'ext/pdo/pdo_sql_parser.c')
-rw-r--r-- | ext/pdo/pdo_sql_parser.c | 322 |
1 files changed, 215 insertions, 107 deletions
diff --git a/ext/pdo/pdo_sql_parser.c b/ext/pdo/pdo_sql_parser.c index f611f10a8..4aaa8973a 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 Tue Jun 5 18:45:24 2007 */ +/* Generated by re2c 0.11.0 on Mon Oct 29 18:36:37 2007 */ /* +----------------------------------------------------------------------+ | PHP Version 5 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: pdo_sql_parser.c,v 1.35.2.6.2.12 2007/06/05 22:55:26 iliaa Exp $ */ +/* $Id: pdo_sql_parser.c,v 1.35.2.6.2.13 2007/10/29 22:37:25 iliaa Exp $ */ #include "php.h" #include "php_pdo_driver.h" @@ -48,125 +48,233 @@ static int scan(Scanner *s) s->tok = cursor; - { - 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, - }; - - { - 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; + +{ + 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; + } yy2: - yych = *++YYCURSOR; - goto yy24; + yych = *++YYCURSOR; + goto yy24; yy3: - { SKIP_ONE(PDO_PARSER_TEXT); } + { SKIP_ONE(PDO_PARSER_TEXT); } yy4: - yych = *++YYCURSOR; - goto yy20; + yych = *++YYCURSOR; + goto yy20; yy5: - yych = *++YYCURSOR; - if(yybm[0+yych] & 32) { - goto yy16; - } - if(yych == ':') goto yy13; - if(yych == '?') goto yy13; - goto yy3; + yych = *++YYCURSOR; + switch(yych) { + case '-': + 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; + } yy6: - ++YYCURSOR; - if(yybm[0+(yych = *YYCURSOR)] & 16) { - goto yy13; - } - { RET(PDO_PARSER_BIND_POS); } + ++YYCURSOR; + switch((yych = *YYCURSOR)) { + case ':': + case '?': goto yy13; + default: goto yy7; + } +yy7: + { RET(PDO_PARSER_BIND_POS); } yy8: - ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if(yybm[0+yych] & 8) { - goto yy8; - } - { RET(PDO_PARSER_TEXT); } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych) { + case 0x00: + case '"': + case '\'': + case ':': + case '?': goto yy10; + default: goto yy8; + } +yy10: + { RET(PDO_PARSER_TEXT); } yy11: - ++YYCURSOR; - { RET(PDO_PARSER_EOI); } + ++YYCURSOR; + { RET(PDO_PARSER_EOI); } yy13: - ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if(yybm[0+yych] & 16) { - goto yy13; - } - { RET(PDO_PARSER_TEXT); } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych) { + case ':': + case '?': goto yy13; + default: goto yy15; + } +yy15: + { RET(PDO_PARSER_TEXT); } yy16: - ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if(yybm[0+yych] & 32) { - goto yy16; - } - { RET(PDO_PARSER_BIND); } + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch(yych) { + case '-': + 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: + { RET(PDO_PARSER_BIND); } yy19: - ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; yy20: - if(yybm[0+yych] & 64) { - goto yy19; - } - ++YYCURSOR; - { RET(PDO_PARSER_TEXT); } + switch(yych) { + case '\'': goto yy21; + default: goto yy19; + } +yy21: + ++YYCURSOR; + { RET(PDO_PARSER_TEXT); } yy23: - ++YYCURSOR; - if(YYLIMIT == YYCURSOR) YYFILL(1); - yych = *YYCURSOR; + ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; yy24: - if(yybm[0+yych] & 128) { - goto yy23; - } - ++YYCURSOR; - { RET(PDO_PARSER_TEXT); } + switch(yych) { + case '"': goto yy25; + default: goto yy23; } +yy25: + ++YYCURSOR; + { RET(PDO_PARSER_TEXT); } } } |