-/* Generated by re2c 0.13.5 on Wed Apr 18 22:30:06 2012 */
+/* Generated by re2c 0.13.5 on Thu Apr 19 12:42:11 2012 */
#line 1 "ext/pdo/pdo_sql_parser.re"
/*
+----------------------------------------------------------------------+
#define YYCTYPE unsigned char
#define YYCURSOR cursor
-#define YYLIMIT cursor
+#define YYLIMIT s->end
#define YYMARKER s->ptr
-#define YYFILL(n)
+#define YYFILL(n) { RET(PDO_PARSER_EOI); }
typedef struct Scanner {
- char *ptr, *cur, *tok;
+ char *ptr, *cur, *tok, *end;
} Scanner;
static int scan(Scanner *s)
char *cursor = s->cur;
s->tok = cursor;
- #line 56 "ext/pdo/pdo_sql_parser.re"
+ #line 55 "ext/pdo/pdo_sql_parser.re"
if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
switch (yych) {
- case 0x00: goto yy13;
- case '"': goto yy2;
- case '\'': goto yy4;
- case '-': goto yy10;
- case '/': goto yy8;
- case ':': goto yy5;
- case '?': goto yy6;
- default: goto yy11;
+ case 0x00: goto yy2;
+ case '"': goto yy3;
+ case '\'': goto yy5;
+ case '-': goto yy11;
+ case '/': goto yy9;
+ case ':': goto yy6;
+ case '?': goto yy7;
+ default: goto yy12;
}
yy2:
+ YYCURSOR = YYMARKER;
+ switch (yyaccept) {
+ case 0: goto yy4;
+ case 1: goto yy10;
+ }
+yy3:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if (yych >= 0x01) goto yy43;
-yy3:
-#line 64 "ext/pdo/pdo_sql_parser.re"
- { SKIP_ONE(PDO_PARSER_TEXT); }
-#line 79 "ext/pdo/pdo_sql_parser.c"
+ if (yych >= 0x01) goto yy41;
yy4:
+#line 63 "ext/pdo/pdo_sql_parser.re"
+ { SKIP_ONE(PDO_PARSER_TEXT); }
+#line 85 "ext/pdo/pdo_sql_parser.c"
+yy5:
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= 0x00) goto yy3;
- goto yy37;
-yy5:
+ if (yych <= 0x00) goto yy4;
+ goto yy36;
+yy6:
yych = *++YYCURSOR;
switch (yych) {
case '0':
case 'w':
case 'x':
case 'y':
- case 'z': goto yy33;
+ case 'z': goto yy32;
case ':':
- case '?': goto yy30;
- default: goto yy3;
+ case '?': goto yy29;
+ default: goto yy4;
}
-yy6:
+yy7:
++YYCURSOR;
switch ((yych = *YYCURSOR)) {
case ':':
- case '?': goto yy30;
- default: goto yy7;
+ case '?': goto yy29;
+ default: goto yy8;
}
-yy7:
-#line 63 "ext/pdo/pdo_sql_parser.re"
- { RET(PDO_PARSER_BIND_POS); }
-#line 165 "ext/pdo/pdo_sql_parser.c"
yy8:
+#line 62 "ext/pdo/pdo_sql_parser.re"
+ { RET(PDO_PARSER_BIND_POS); }
+#line 171 "ext/pdo/pdo_sql_parser.c"
+yy9:
++YYCURSOR;
switch ((yych = *YYCURSOR)) {
- case '*': goto yy20;
- default: goto yy12;
+ case '*': goto yy19;
+ default: goto yy13;
}
-yy9:
-#line 66 "ext/pdo/pdo_sql_parser.re"
- { RET(PDO_PARSER_TEXT); }
-#line 175 "ext/pdo/pdo_sql_parser.c"
yy10:
+#line 65 "ext/pdo/pdo_sql_parser.re"
+ { RET(PDO_PARSER_TEXT); }
+#line 181 "ext/pdo/pdo_sql_parser.c"
+yy11:
yych = *++YYCURSOR;
switch (yych) {
- case '-': goto yy15;
- default: goto yy12;
+ case '-': goto yy14;
+ default: goto yy13;
}
-yy11:
+yy12:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy12:
+yy13:
switch (yych) {
case 0x00:
case '"':
case '\'':
case ':':
- case '?': goto yy9;
- default: goto yy11;
+ case '?': goto yy10;
+ default: goto yy12;
}
-yy13:
- ++YYCURSOR;
-#line 67 "ext/pdo/pdo_sql_parser.re"
- { RET(PDO_PARSER_EOI); }
-#line 199 "ext/pdo/pdo_sql_parser.c"
-yy15:
+yy14:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
case '"':
case '\'':
case ':':
- case '?': goto yy18;
+ case '?': goto yy17;
case '\n':
- case '\r': goto yy11;
- default: goto yy15;
+ case '\r': goto yy12;
+ default: goto yy14;
}
-yy17:
-#line 65 "ext/pdo/pdo_sql_parser.re"
+yy16:
+#line 64 "ext/pdo/pdo_sql_parser.re"
{ RET(PDO_PARSER_TEXT); }
-#line 217 "ext/pdo/pdo_sql_parser.c"
-yy18:
+#line 218 "ext/pdo/pdo_sql_parser.c"
+yy17:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
switch (yych) {
case '\n':
- case '\r': goto yy17;
- default: goto yy18;
+ case '\r': goto yy16;
+ default: goto yy17;
}
-yy20:
+yy19:
yyaccept = 1;
YYMARKER = ++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
case '"':
case '\'':
case ':':
- case '?': goto yy22;
- case '*': goto yy24;
- default: goto yy20;
+ case '?': goto yy21;
+ case '*': goto yy23;
+ default: goto yy19;
}
-yy22:
+yy21:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
switch (yych) {
- case '*': goto yy27;
- default: goto yy22;
+ case '*': goto yy26;
+ default: goto yy21;
}
-yy24:
+yy23:
yyaccept = 1;
YYMARKER = ++YYCURSOR;
if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
case '"':
case '\'':
case ':':
- case '?': goto yy22;
- case '*': goto yy24;
- case '/': goto yy26;
- default: goto yy20;
+ case '?': goto yy21;
+ case '*': goto yy23;
+ case '/': goto yy25;
+ default: goto yy19;
}
-yy26:
+yy25:
yych = *++YYCURSOR;
switch (yych) {
case 0x00:
case '"':
case '\'':
case ':':
- case '?': goto yy17;
- default: goto yy11;
+ case '?': goto yy16;
+ default: goto yy12;
}
-yy27:
+yy26:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
switch (yych) {
- case '*': goto yy27;
- case '/': goto yy29;
- default: goto yy22;
+ case '*': goto yy26;
+ case '/': goto yy28;
+ default: goto yy21;
}
-yy29:
+yy28:
yych = *++YYCURSOR;
- goto yy17;
-yy30:
+ goto yy16;
+yy29:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
switch (yych) {
case ':':
- case '?': goto yy30;
- default: goto yy32;
+ case '?': goto yy29;
+ default: goto yy31;
}
-yy32:
-#line 61 "ext/pdo/pdo_sql_parser.re"
+yy31:
+#line 60 "ext/pdo/pdo_sql_parser.re"
{ RET(PDO_PARSER_TEXT); }
-#line 298 "ext/pdo/pdo_sql_parser.c"
-yy33:
+#line 299 "ext/pdo/pdo_sql_parser.c"
+yy32:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
case 'w':
case 'x':
case 'y':
- case 'z': goto yy33;
- default: goto yy35;
+ case 'z': goto yy32;
+ default: goto yy34;
}
-yy35:
-#line 62 "ext/pdo/pdo_sql_parser.re"
+yy34:
+#line 61 "ext/pdo/pdo_sql_parser.re"
{ RET(PDO_PARSER_BIND); }
-#line 372 "ext/pdo/pdo_sql_parser.c"
-yy36:
+#line 373 "ext/pdo/pdo_sql_parser.c"
+yy35:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy37:
+yy36:
switch (yych) {
- case 0x00: goto yy38;
- case '\'': goto yy40;
- case '\\': goto yy39;
- default: goto yy36;
- }
-yy38:
- YYCURSOR = YYMARKER;
- switch (yyaccept) {
- case 0: goto yy3;
- case 1: goto yy9;
+ case 0x00: goto yy2;
+ case '\'': goto yy38;
+ case '\\': goto yy37;
+ default: goto yy35;
}
-yy39:
+yy37:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- if (yych <= 0x00) goto yy38;
- goto yy36;
-yy40:
+ if (yych <= 0x00) goto yy2;
+ goto yy35;
+yy38:
++YYCURSOR;
-#line 60 "ext/pdo/pdo_sql_parser.re"
+#line 59 "ext/pdo/pdo_sql_parser.re"
{ RET(PDO_PARSER_TEXT); }
-#line 400 "ext/pdo/pdo_sql_parser.c"
-yy42:
+#line 395 "ext/pdo/pdo_sql_parser.c"
+yy40:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
-yy43:
+yy41:
switch (yych) {
- case 0x00: goto yy38;
- case '"': goto yy45;
- case '\\': goto yy44;
- default: goto yy42;
+ case 0x00: goto yy2;
+ case '"': goto yy43;
+ case '\\': goto yy42;
+ default: goto yy40;
}
-yy44:
+yy42:
++YYCURSOR;
if (YYLIMIT <= YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- if (yych <= 0x00) goto yy38;
- goto yy42;
-yy45:
+ if (yych <= 0x00) goto yy2;
+ goto yy40;
+yy43:
++YYCURSOR;
-#line 59 "ext/pdo/pdo_sql_parser.re"
+#line 58 "ext/pdo/pdo_sql_parser.re"
{ RET(PDO_PARSER_TEXT); }
-#line 422 "ext/pdo/pdo_sql_parser.c"
+#line 417 "ext/pdo/pdo_sql_parser.c"
}
-#line 68 "ext/pdo/pdo_sql_parser.re"
+#line 66 "ext/pdo/pdo_sql_parser.re"
}
ptr = *outquery;
s.cur = inquery;
+ s.end = inquery + inquery_len + 1;
/* phase 1: look for args */
while((t = scan(&s)) != PDO_PARSER_EOI) {