8
8
*
9
9
*
10
10
* IDENTIFICATION
11
- * $Header: /cvsroot/pgsql/src/backend/parser/scan.l,v 1.13 1997/06/29 17:29:14 momjian Exp $
11
+ * $Header: /cvsroot/pgsql/src/backend/parser/scan.l,v 1.14 1997/08/20 01:50:06 vadim Exp $
12
12
*
13
13
*-------------------------------------------------------------------------
14
14
*/
36
36
extern char *parseString;
37
37
extern char *parseCh;
38
38
39
+ int CurScanPosition (void );
40
+ int DefaultStartPosition;
41
+ int CheckStartPosition;
42
+
39
43
/* some versions of lex define this as a macro */
40
44
#if defined(yywrap)
41
45
#undef yywrap
@@ -173,6 +177,10 @@ other .
173
177
174
178
keyword = ScanKeywordLookup ((char *)yytext);
175
179
if (keyword != NULL ) {
180
+ if ( keyword->value == DEFAULT )
181
+ DefaultStartPosition = CurScanPosition () + yyleng + 1 ;
182
+ else if ( keyword->value == CHECK )
183
+ CheckStartPosition = CurScanPosition () + yyleng + 1 ;
176
184
return (keyword->value );
177
185
} else {
178
186
yylval.str = pstrdup ((char *)yytext);
@@ -240,6 +248,12 @@ unput(char c)
240
248
*--parseCh = c;
241
249
}
242
250
}
251
+
252
+ int
253
+ CurScanPosition (void )
254
+ {
255
+ return (parseCh - parseString - yyleng - 1 );
256
+ }
243
257
#endif /* !defined(FLEX_SCANNER) */
244
258
245
259
#ifdef FLEX_SCANNER
@@ -265,16 +279,11 @@ myinput(char* buf, int max)
265
279
}
266
280
}
267
281
268
- #ifdef NOT_USED
269
- char *
270
- CurScan (void )
282
+ int
283
+ CurScanPosition (void )
271
284
{
272
- /*
273
- return (InputFrag ? InputFrag : parseCh) +
274
- (yy_c_buf_p - &yy_current_buffer->yy_ch_buf[yy_n_chars]);
275
- */
285
+ return (yy_c_buf_p - yy_current_buffer->yy_ch_buf - yyleng);
276
286
}
277
- #endif
278
287
279
288
#endif /* FLEX_SCANNER */
280
289
0 commit comments