1
- /* Generated by re2c 0.13.5 on Wed Apr 18 22:30:06 2012 */
1
+ /* Generated by re2c 0.13.5 on Thu Apr 19 12:42:11 2012 */
2
2
#line 1 "ext/pdo/pdo_sql_parser.re"
3
3
/*
4
4
+----------------------------------------------------------------------+
34
34
35
35
#define YYCTYPE unsigned char
36
36
#define YYCURSOR cursor
37
- #define YYLIMIT cursor
37
+ #define YYLIMIT s->end
38
38
#define YYMARKER s->ptr
39
- #define YYFILL (n )
39
+ #define YYFILL (n ) { RET(PDO_PARSER_EOI); }
40
40
41
41
typedef struct Scanner {
42
- char * ptr , * cur , * tok ;
42
+ char * ptr , * cur , * tok , * end ;
43
43
} Scanner ;
44
44
45
45
static int scan (Scanner * s )
46
46
{
47
47
char * cursor = s -> cur ;
48
48
49
49
s -> tok = cursor ;
50
- #line 56 "ext/pdo/pdo_sql_parser.re"
50
+ #line 55 "ext/pdo/pdo_sql_parser.re"
51
51
52
52
53
53
@@ -59,29 +59,35 @@ static int scan(Scanner *s)
59
59
if ((YYLIMIT - YYCURSOR ) < 2 ) YYFILL (2 );
60
60
yych = * YYCURSOR ;
61
61
switch (yych ) {
62
- case 0x00 : goto yy13 ;
63
- case '"' : goto yy2 ;
64
- case '\'' : goto yy4 ;
65
- case '-' : goto yy10 ;
66
- case '/' : goto yy8 ;
67
- case ':' : goto yy5 ;
68
- case '?' : goto yy6 ;
69
- default : goto yy11 ;
62
+ case 0x00 : goto yy2 ;
63
+ case '"' : goto yy3 ;
64
+ case '\'' : goto yy5 ;
65
+ case '-' : goto yy11 ;
66
+ case '/' : goto yy9 ;
67
+ case ':' : goto yy6 ;
68
+ case '?' : goto yy7 ;
69
+ default : goto yy12 ;
70
70
}
71
71
yy2 :
72
+ YYCURSOR = YYMARKER ;
73
+ switch (yyaccept ) {
74
+ case 0 : goto yy4 ;
75
+ case 1 : goto yy10 ;
76
+ }
77
+ yy3 :
72
78
yyaccept = 0 ;
73
79
yych = * (YYMARKER = ++ YYCURSOR );
74
- if (yych >= 0x01 ) goto yy43 ;
75
- yy3 :
76
- #line 64 "ext/pdo/pdo_sql_parser.re"
77
- { SKIP_ONE (PDO_PARSER_TEXT ); }
78
- #line 79 "ext/pdo/pdo_sql_parser.c"
80
+ if (yych >= 0x01 ) goto yy41 ;
79
81
yy4 :
82
+ #line 63 "ext/pdo/pdo_sql_parser.re"
83
+ { SKIP_ONE (PDO_PARSER_TEXT ); }
84
+ #line 85 "ext/pdo/pdo_sql_parser.c"
85
+ yy5 :
80
86
yyaccept = 0 ;
81
87
yych = * (YYMARKER = ++ YYCURSOR );
82
- if (yych <= 0x00 ) goto yy3 ;
83
- goto yy37 ;
84
- yy5 :
88
+ if (yych <= 0x00 ) goto yy4 ;
89
+ goto yy36 ;
90
+ yy6 :
85
91
yych = * ++ YYCURSOR ;
86
92
switch (yych ) {
87
93
case '0' :
@@ -146,57 +152,52 @@ static int scan(Scanner *s)
146
152
case 'w' :
147
153
case 'x' :
148
154
case 'y' :
149
- case 'z' : goto yy33 ;
155
+ case 'z' : goto yy32 ;
150
156
case ':' :
151
- case '?' : goto yy30 ;
152
- default : goto yy3 ;
157
+ case '?' : goto yy29 ;
158
+ default : goto yy4 ;
153
159
}
154
- yy6 :
160
+ yy7 :
155
161
++ YYCURSOR ;
156
162
switch ((yych = * YYCURSOR )) {
157
163
case ':' :
158
- case '?' : goto yy30 ;
159
- default : goto yy7 ;
164
+ case '?' : goto yy29 ;
165
+ default : goto yy8 ;
160
166
}
161
- yy7 :
162
- #line 63 "ext/pdo/pdo_sql_parser.re"
163
- { RET (PDO_PARSER_BIND_POS ); }
164
- #line 165 "ext/pdo/pdo_sql_parser.c"
165
167
yy8 :
168
+ #line 62 "ext/pdo/pdo_sql_parser.re"
169
+ { RET (PDO_PARSER_BIND_POS ); }
170
+ #line 171 "ext/pdo/pdo_sql_parser.c"
171
+ yy9 :
166
172
++ YYCURSOR ;
167
173
switch ((yych = * YYCURSOR )) {
168
- case '*' : goto yy20 ;
169
- default : goto yy12 ;
174
+ case '*' : goto yy19 ;
175
+ default : goto yy13 ;
170
176
}
171
- yy9 :
172
- #line 66 "ext/pdo/pdo_sql_parser.re"
173
- { RET (PDO_PARSER_TEXT ); }
174
- #line 175 "ext/pdo/pdo_sql_parser.c"
175
177
yy10 :
178
+ #line 65 "ext/pdo/pdo_sql_parser.re"
179
+ { RET (PDO_PARSER_TEXT ); }
180
+ #line 181 "ext/pdo/pdo_sql_parser.c"
181
+ yy11 :
176
182
yych = * ++ YYCURSOR ;
177
183
switch (yych ) {
178
- case '-' : goto yy15 ;
179
- default : goto yy12 ;
184
+ case '-' : goto yy14 ;
185
+ default : goto yy13 ;
180
186
}
181
- yy11 :
187
+ yy12 :
182
188
++ YYCURSOR ;
183
189
if (YYLIMIT <= YYCURSOR ) YYFILL (1 );
184
190
yych = * YYCURSOR ;
185
- yy12 :
191
+ yy13 :
186
192
switch (yych ) {
187
193
case 0x00 :
188
194
case '"' :
189
195
case '\'' :
190
196
case ':' :
191
- case '?' : goto yy9 ;
192
- default : goto yy11 ;
197
+ case '?' : goto yy10 ;
198
+ default : goto yy12 ;
193
199
}
194
- yy13 :
195
- ++ YYCURSOR ;
196
- #line 67 "ext/pdo/pdo_sql_parser.re"
197
- { RET (PDO_PARSER_EOI ); }
198
- #line 199 "ext/pdo/pdo_sql_parser.c"
199
- yy15 :
200
+ yy14 :
200
201
++ YYCURSOR ;
201
202
if (YYLIMIT <= YYCURSOR ) YYFILL (1 );
202
203
yych = * YYCURSOR ;
@@ -205,25 +206,25 @@ static int scan(Scanner *s)
205
206
case '"' :
206
207
case '\'' :
207
208
case ':' :
208
- case '?' : goto yy18 ;
209
+ case '?' : goto yy17 ;
209
210
case '\n' :
210
- case '\r' : goto yy11 ;
211
- default : goto yy15 ;
211
+ case '\r' : goto yy12 ;
212
+ default : goto yy14 ;
212
213
}
213
- yy17 :
214
- #line 65 "ext/pdo/pdo_sql_parser.re"
214
+ yy16 :
215
+ #line 64 "ext/pdo/pdo_sql_parser.re"
215
216
{ RET (PDO_PARSER_TEXT ); }
216
- #line 217 "ext/pdo/pdo_sql_parser.c"
217
- yy18 :
217
+ #line 218 "ext/pdo/pdo_sql_parser.c"
218
+ yy17 :
218
219
++ YYCURSOR ;
219
220
if (YYLIMIT <= YYCURSOR ) YYFILL (1 );
220
221
yych = * YYCURSOR ;
221
222
switch (yych ) {
222
223
case '\n' :
223
- case '\r' : goto yy17 ;
224
- default : goto yy18 ;
224
+ case '\r' : goto yy16 ;
225
+ default : goto yy17 ;
225
226
}
226
- yy20 :
227
+ yy19 :
227
228
yyaccept = 1 ;
228
229
YYMARKER = ++ YYCURSOR ;
229
230
if (YYLIMIT <= YYCURSOR ) YYFILL (1 );
@@ -233,19 +234,19 @@ static int scan(Scanner *s)
233
234
case '"' :
234
235
case '\'' :
235
236
case ':' :
236
- case '?' : goto yy22 ;
237
- case '*' : goto yy24 ;
238
- default : goto yy20 ;
237
+ case '?' : goto yy21 ;
238
+ case '*' : goto yy23 ;
239
+ default : goto yy19 ;
239
240
}
240
- yy22 :
241
+ yy21 :
241
242
++ YYCURSOR ;
242
243
if (YYLIMIT <= YYCURSOR ) YYFILL (1 );
243
244
yych = * YYCURSOR ;
244
245
switch (yych ) {
245
- case '*' : goto yy27 ;
246
- default : goto yy22 ;
246
+ case '*' : goto yy26 ;
247
+ default : goto yy21 ;
247
248
}
248
- yy24 :
249
+ yy23 :
249
250
yyaccept = 1 ;
250
251
YYMARKER = ++ YYCURSOR ;
251
252
if ((YYLIMIT - YYCURSOR ) < 2 ) YYFILL (2 );
@@ -255,47 +256,47 @@ static int scan(Scanner *s)
255
256
case '"' :
256
257
case '\'' :
257
258
case ':' :
258
- case '?' : goto yy22 ;
259
- case '*' : goto yy24 ;
260
- case '/' : goto yy26 ;
261
- default : goto yy20 ;
259
+ case '?' : goto yy21 ;
260
+ case '*' : goto yy23 ;
261
+ case '/' : goto yy25 ;
262
+ default : goto yy19 ;
262
263
}
263
- yy26 :
264
+ yy25 :
264
265
yych = * ++ YYCURSOR ;
265
266
switch (yych ) {
266
267
case 0x00 :
267
268
case '"' :
268
269
case '\'' :
269
270
case ':' :
270
- case '?' : goto yy17 ;
271
- default : goto yy11 ;
271
+ case '?' : goto yy16 ;
272
+ default : goto yy12 ;
272
273
}
273
- yy27 :
274
+ yy26 :
274
275
++ YYCURSOR ;
275
276
if (YYLIMIT <= YYCURSOR ) YYFILL (1 );
276
277
yych = * YYCURSOR ;
277
278
switch (yych ) {
278
- case '*' : goto yy27 ;
279
- case '/' : goto yy29 ;
280
- default : goto yy22 ;
279
+ case '*' : goto yy26 ;
280
+ case '/' : goto yy28 ;
281
+ default : goto yy21 ;
281
282
}
282
- yy29 :
283
+ yy28 :
283
284
yych = * ++ YYCURSOR ;
284
- goto yy17 ;
285
- yy30 :
285
+ goto yy16 ;
286
+ yy29 :
286
287
++ YYCURSOR ;
287
288
if (YYLIMIT <= YYCURSOR ) YYFILL (1 );
288
289
yych = * YYCURSOR ;
289
290
switch (yych ) {
290
291
case ':' :
291
- case '?' : goto yy30 ;
292
- default : goto yy32 ;
292
+ case '?' : goto yy29 ;
293
+ default : goto yy31 ;
293
294
}
294
- yy32 :
295
- #line 61 "ext/pdo/pdo_sql_parser.re"
295
+ yy31 :
296
+ #line 60 "ext/pdo/pdo_sql_parser.re"
296
297
{ RET (PDO_PARSER_TEXT ); }
297
- #line 298 "ext/pdo/pdo_sql_parser.c"
298
- yy33 :
298
+ #line 299 "ext/pdo/pdo_sql_parser.c"
299
+ yy32 :
299
300
++ YYCURSOR ;
300
301
if (YYLIMIT <= YYCURSOR ) YYFILL (1 );
301
302
yych = * YYCURSOR ;
@@ -362,65 +363,59 @@ static int scan(Scanner *s)
362
363
case 'w' :
363
364
case 'x' :
364
365
case 'y' :
365
- case 'z' : goto yy33 ;
366
- default : goto yy35 ;
366
+ case 'z' : goto yy32 ;
367
+ default : goto yy34 ;
367
368
}
368
- yy35 :
369
- #line 62 "ext/pdo/pdo_sql_parser.re"
369
+ yy34 :
370
+ #line 61 "ext/pdo/pdo_sql_parser.re"
370
371
{ RET (PDO_PARSER_BIND ); }
371
- #line 372 "ext/pdo/pdo_sql_parser.c"
372
- yy36 :
372
+ #line 373 "ext/pdo/pdo_sql_parser.c"
373
+ yy35 :
373
374
++ YYCURSOR ;
374
375
if (YYLIMIT <= YYCURSOR ) YYFILL (1 );
375
376
yych = * YYCURSOR ;
376
- yy37 :
377
+ yy36 :
377
378
switch (yych ) {
378
- case 0x00 : goto yy38 ;
379
- case '\'' : goto yy40 ;
380
- case '\\' : goto yy39 ;
381
- default : goto yy36 ;
382
- }
383
- yy38 :
384
- YYCURSOR = YYMARKER ;
385
- switch (yyaccept ) {
386
- case 0 : goto yy3 ;
387
- case 1 : goto yy9 ;
379
+ case 0x00 : goto yy2 ;
380
+ case '\'' : goto yy38 ;
381
+ case '\\' : goto yy37 ;
382
+ default : goto yy35 ;
388
383
}
389
- yy39 :
384
+ yy37 :
390
385
++ YYCURSOR ;
391
386
if (YYLIMIT <= YYCURSOR ) YYFILL (1 );
392
387
yych = * YYCURSOR ;
393
- if (yych <= 0x00 ) goto yy38 ;
394
- goto yy36 ;
395
- yy40 :
388
+ if (yych <= 0x00 ) goto yy2 ;
389
+ goto yy35 ;
390
+ yy38 :
396
391
++ YYCURSOR ;
397
- #line 60 "ext/pdo/pdo_sql_parser.re"
392
+ #line 59 "ext/pdo/pdo_sql_parser.re"
398
393
{ RET (PDO_PARSER_TEXT ); }
399
- #line 400 "ext/pdo/pdo_sql_parser.c"
400
- yy42 :
394
+ #line 395 "ext/pdo/pdo_sql_parser.c"
395
+ yy40 :
401
396
++ YYCURSOR ;
402
397
if (YYLIMIT <= YYCURSOR ) YYFILL (1 );
403
398
yych = * YYCURSOR ;
404
- yy43 :
399
+ yy41 :
405
400
switch (yych ) {
406
- case 0x00 : goto yy38 ;
407
- case '"' : goto yy45 ;
408
- case '\\' : goto yy44 ;
409
- default : goto yy42 ;
401
+ case 0x00 : goto yy2 ;
402
+ case '"' : goto yy43 ;
403
+ case '\\' : goto yy42 ;
404
+ default : goto yy40 ;
410
405
}
411
- yy44 :
406
+ yy42 :
412
407
++ YYCURSOR ;
413
408
if (YYLIMIT <= YYCURSOR ) YYFILL (1 );
414
409
yych = * YYCURSOR ;
415
- if (yych <= 0x00 ) goto yy38 ;
416
- goto yy42 ;
417
- yy45 :
410
+ if (yych <= 0x00 ) goto yy2 ;
411
+ goto yy40 ;
412
+ yy43 :
418
413
++ YYCURSOR ;
419
- #line 59 "ext/pdo/pdo_sql_parser.re"
414
+ #line 58 "ext/pdo/pdo_sql_parser.re"
420
415
{ RET (PDO_PARSER_TEXT ); }
421
- #line 422 "ext/pdo/pdo_sql_parser.c"
416
+ #line 417 "ext/pdo/pdo_sql_parser.c"
422
417
}
423
- #line 68 "ext/pdo/pdo_sql_parser.re"
418
+ #line 66 "ext/pdo/pdo_sql_parser.re"
424
419
425
420
}
426
421
@@ -450,6 +445,7 @@ PDO_API int pdo_parse_params(pdo_stmt_t *stmt, char *inquery, int inquery_len,
450
445
451
446
ptr = * outquery ;
452
447
s .cur = inquery ;
448
+ s .end = inquery + inquery_len + 1 ;
453
449
454
450
/* phase 1: look for args */
455
451
while ((t = scan (& s )) != PDO_PARSER_EOI ) {
0 commit comments