|
|
|
|
@ -9,7 +9,7 @@ |
|
|
|
|
* |
|
|
|
|
* |
|
|
|
|
* IDENTIFICATION |
|
|
|
|
* $Header: /cvsroot/pgsql/src/backend/parser/scan.l,v 1.89 2001/09/04 00:19:39 petere Exp $ |
|
|
|
|
* $Header: /cvsroot/pgsql/src/backend/parser/scan.l,v 1.90 2001/09/07 23:17:14 tgl Exp $ |
|
|
|
|
* |
|
|
|
|
*------------------------------------------------------------------------- |
|
|
|
|
*/ |
|
|
|
|
@ -69,6 +69,8 @@ void unput(char); |
|
|
|
|
|
|
|
|
|
extern YYSTYPE yylval; |
|
|
|
|
|
|
|
|
|
static int xcdepth = 0; /* depth of nesting in slash-star comments */ |
|
|
|
|
|
|
|
|
|
/* |
|
|
|
|
* literalbuf is used to accumulate literal values when multiple rules |
|
|
|
|
* are needed to parse a single literal. Call startlit to reset buffer |
|
|
|
|
@ -79,8 +81,6 @@ static char *literalbuf; /* expandable buffer */ |
|
|
|
|
static int literallen; /* actual current length */ |
|
|
|
|
static int literalalloc; /* current allocated buffer size */ |
|
|
|
|
|
|
|
|
|
static int xcdepth = 0; /* depth of nesting in slash-star comments */ |
|
|
|
|
|
|
|
|
|
#define startlit() (literalbuf[0] = '\0', literallen = 0) |
|
|
|
|
static void addlit(char *ytext, int yleng); |
|
|
|
|
|
|
|
|
|
@ -375,7 +375,7 @@ other . |
|
|
|
|
return IDENT; |
|
|
|
|
} |
|
|
|
|
<xd>{xddouble} { |
|
|
|
|
addlit(yytext+1, yyleng-1); |
|
|
|
|
addlit(yytext, yyleng-1); |
|
|
|
|
} |
|
|
|
|
<xd>{xdinside} { |
|
|
|
|
addlit(yytext, yyleng); |
|
|
|
|
@ -581,9 +581,10 @@ addlit(char *ytext, int yleng) |
|
|
|
|
} while ((literallen+yleng) >= literalalloc); |
|
|
|
|
literalbuf = (char *) repalloc(literalbuf, literalalloc); |
|
|
|
|
} |
|
|
|
|
/* append data --- note we assume ytext is null-terminated */ |
|
|
|
|
memcpy(literalbuf+literallen, ytext, yleng+1); |
|
|
|
|
/* append new data, add trailing null */ |
|
|
|
|
memcpy(literalbuf+literallen, ytext, yleng); |
|
|
|
|
literallen += yleng; |
|
|
|
|
literalbuf[literallen] = '\0'; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#if !defined(FLEX_SCANNER) |
|
|
|
|
|