diff options
| author | Ondřej Surý <ondrej@sury.org> | 2011-08-19 10:22:38 +0200 |
|---|---|---|
| committer | Ondřej Surý <ondrej@sury.org> | 2011-08-19 10:22:38 +0200 |
| commit | f452a2b3e4e4279b27594a8ddb66525442d59227 (patch) | |
| tree | d05cb62c5515ada33076d3cc3e49b664733a478c /ext/pdo/pdo_sql_parser.c | |
| parent | 038ba12e8724d537040e88ec794354b0c063f0a6 (diff) | |
| download | php-upstream/5.3.7.tar.gz | |
Imported Upstream version 5.3.7upstream/5.3.7
Diffstat (limited to 'ext/pdo/pdo_sql_parser.c')
| -rw-r--r-- | ext/pdo/pdo_sql_parser.c | 193 |
1 files changed, 149 insertions, 44 deletions
diff --git a/ext/pdo/pdo_sql_parser.c b/ext/pdo/pdo_sql_parser.c index 3898ec8b1..1fa56e50b 100644 --- a/ext/pdo/pdo_sql_parser.c +++ b/ext/pdo/pdo_sql_parser.c @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.6.dev on Thu Nov 13 14:47:06 2008 */ +/* Generated by re2c 0.13.5 on Sat Jun 4 18:42:25 2011 */ /* +----------------------------------------------------------------------+ | PHP Version 5 | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: pdo_sql_parser.c 306939 2011-01-01 02:19:59Z felipe $ */ +/* $Id: pdo_sql_parser.c 311812 2011-06-04 22:54:40Z felipe $ */ #include "php.h" #include "php_pdo_driver.h" @@ -29,7 +29,7 @@ #define PDO_PARSER_EOI 4 #define RET(i) {s->cur = cursor; return i; } -#define SKIP_ONE(i) {s->cur = s->tok + 1; return 1; } +#define SKIP_ONE(i) {s->cur = s->tok + 1; return i; } #define YYCTYPE unsigned char #define YYCURSOR cursor @@ -51,26 +51,31 @@ static int scan(Scanner *s) { YYCTYPE yych; + unsigned int yyaccept = 0; if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; switch (yych) { - case 0x00: goto yy11; + case 0x00: goto yy13; case '"': goto yy2; case '\'': goto yy4; + case '-': goto yy10; + case '/': goto yy8; case ':': goto yy5; case '?': goto yy6; - default: goto yy8; + default: goto yy11; } yy2: + yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych >= 0x01) goto yy26; + if (yych >= 0x01) goto yy43; yy3: { SKIP_ONE(PDO_PARSER_TEXT); } yy4: + yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 0x00) goto yy3; - goto yy20; + goto yy37; yy5: yych = *++YYCURSOR; switch (yych) { @@ -136,49 +141,146 @@ yy5: case 'w': case 'x': case 'y': - case 'z': goto yy16; + case 'z': goto yy33; case ':': - case '?': goto yy13; + case '?': goto yy30; default: goto yy3; } yy6: ++YYCURSOR; switch ((yych = *YYCURSOR)) { case ':': - case '?': goto yy13; + case '?': goto yy30; default: goto yy7; } yy7: { RET(PDO_PARSER_BIND_POS); } yy8: ++YYCURSOR; + switch ((yych = *YYCURSOR)) { + case '*': goto yy20; + default: goto yy12; + } +yy9: + { RET(PDO_PARSER_TEXT); } +yy10: + yych = *++YYCURSOR; + switch (yych) { + case '-': goto yy15; + default: goto yy12; + } +yy11: + ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; +yy12: switch (yych) { case 0x00: case '"': case '\'': case ':': - case '?': goto yy10; - default: goto yy8; + case '?': goto yy9; + default: goto yy11; } -yy10: - { RET(PDO_PARSER_TEXT); } -yy11: +yy13: ++YYCURSOR; { RET(PDO_PARSER_EOI); } -yy13: +yy15: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; switch (yych) { + case 0x00: + case '"': + case '\'': case ':': - case '?': goto yy13; + case '?': goto yy18; + case '\n': + case '\r': goto yy11; default: goto yy15; } -yy15: +yy17: + { RET(PDO_PARSER_TEXT); } +yy18: + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch (yych) { + case '\n': + case '\r': goto yy17; + default: goto yy18; + } +yy20: + yyaccept = 1; + YYMARKER = ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch (yych) { + case 0x00: + case '"': + case '\'': + case ':': + case '?': goto yy22; + case '*': goto yy24; + default: goto yy20; + } +yy22: + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch (yych) { + case '*': goto yy27; + default: goto yy22; + } +yy24: + yyaccept = 1; + YYMARKER = ++YYCURSOR; + if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); + yych = *YYCURSOR; + switch (yych) { + case 0x00: + case '"': + case '\'': + case ':': + case '?': goto yy22; + case '*': goto yy24; + case '/': goto yy26; + default: goto yy20; + } +yy26: + yych = *++YYCURSOR; + switch (yych) { + case 0x00: + case '"': + case '\'': + case ':': + case '?': goto yy17; + default: goto yy11; + } +yy27: + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch (yych) { + case '*': goto yy27; + case '/': goto yy29; + default: goto yy22; + } +yy29: + yych = *++YYCURSOR; + goto yy17; +yy30: + ++YYCURSOR; + if (YYLIMIT <= YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + switch (yych) { + case ':': + case '?': goto yy30; + default: goto yy32; + } +yy32: { RET(PDO_PARSER_TEXT); } -yy16: +yy33: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; @@ -245,52 +347,55 @@ yy16: case 'w': case 'x': case 'y': - case 'z': goto yy16; - default: goto yy18; + case 'z': goto yy33; + default: goto yy35; } -yy18: +yy35: { RET(PDO_PARSER_BIND); } -yy19: +yy36: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy20: +yy37: switch (yych) { - case 0x00: goto yy21; - case '\'': goto yy23; - case '\\': goto yy22; - default: goto yy19; + case 0x00: goto yy38; + case '\'': goto yy40; + case '\\': goto yy39; + default: goto yy36; } -yy21: +yy38: YYCURSOR = YYMARKER; - goto yy3; -yy22: + switch (yyaccept) { + case 0: goto yy3; + case 1: goto yy9; + } +yy39: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; - if (yych <= 0x00) goto yy21; - goto yy19; -yy23: + if (yych <= 0x00) goto yy38; + goto yy36; +yy40: ++YYCURSOR; { RET(PDO_PARSER_TEXT); } -yy25: +yy42: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; -yy26: +yy43: switch (yych) { - case 0x00: goto yy21; - case '"': goto yy28; - case '\\': goto yy27; - default: goto yy25; + case 0x00: goto yy38; + case '"': goto yy45; + case '\\': goto yy44; + default: goto yy42; } -yy27: +yy44: ++YYCURSOR; if (YYLIMIT <= YYCURSOR) YYFILL(1); yych = *YYCURSOR; - if (yych <= 0x00) goto yy21; - goto yy25; -yy28: + if (yych <= 0x00) goto yy38; + goto yy42; +yy45: ++YYCURSOR; { RET(PDO_PARSER_TEXT); } } |
