summaryrefslogtreecommitdiff
path: root/ext/pdo/pdo_sql_parser.c
diff options
context:
space:
mode:
authorMark A. Hershberger <mah@debian.(none)>2009-03-25 00:38:30 -0400
committerMark A. Hershberger <mah@debian.(none)>2009-03-25 00:38:30 -0400
commit1f589a2bd44ba835ad1b009a5d83abd453724829 (patch)
treeec84d715d1ff049cc61f5eaf18db21eb7f3bab40 /ext/pdo/pdo_sql_parser.c
parentbb01389fbd53ec1cbcb80d0681a37cca1267891a (diff)
downloadphp-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.c322
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); }
}
}