mirror of
https://github.com/postgres/postgres.git
synced 2025-05-06 19:59:18 +03:00
CHECK/DEFAULT syntax (some tricks to get current scan position).
This commit is contained in:
parent
4527172b80
commit
0c001f080b
@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/parser/scan.l,v 1.13 1997/06/29 17:29:14 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/parser/scan.l,v 1.14 1997/08/20 01:50:06 vadim Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -36,6 +36,10 @@
|
||||
extern char *parseString;
|
||||
extern char *parseCh;
|
||||
|
||||
int CurScanPosition(void);
|
||||
int DefaultStartPosition;
|
||||
int CheckStartPosition;
|
||||
|
||||
/* some versions of lex define this as a macro */
|
||||
#if defined(yywrap)
|
||||
#undef yywrap
|
||||
@ -173,6 +177,10 @@ other .
|
||||
|
||||
keyword = ScanKeywordLookup((char*)yytext);
|
||||
if (keyword != NULL) {
|
||||
if ( keyword->value == DEFAULT )
|
||||
DefaultStartPosition = CurScanPosition () + yyleng + 1;
|
||||
else if ( keyword->value == CHECK )
|
||||
CheckStartPosition = CurScanPosition () + yyleng + 1;
|
||||
return (keyword->value);
|
||||
} else {
|
||||
yylval.str = pstrdup((char*)yytext);
|
||||
@ -240,6 +248,12 @@ unput(char c)
|
||||
*--parseCh = c;
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
CurScanPosition(void)
|
||||
{
|
||||
return (parseCh - parseString - yyleng - 1);
|
||||
}
|
||||
#endif /* !defined(FLEX_SCANNER) */
|
||||
|
||||
#ifdef FLEX_SCANNER
|
||||
@ -265,16 +279,11 @@ myinput(char* buf, int max)
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef NOT_USED
|
||||
char*
|
||||
CurScan(void)
|
||||
int
|
||||
CurScanPosition(void)
|
||||
{
|
||||
/*
|
||||
return (InputFrag ? InputFrag : parseCh) +
|
||||
(yy_c_buf_p - &yy_current_buffer->yy_ch_buf[yy_n_chars]);
|
||||
*/
|
||||
return (yy_c_buf_p - yy_current_buffer->yy_ch_buf - yyleng);
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* FLEX_SCANNER */
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user