- Print error message if an indicator array is given for input
variables.
+
+Fri Mar 3 10:47:06 CET 2000
+
+ - Fixed handling of double quote in C code.
- Set library version to 3.1.0.
- Set ecpg version to 2.7.0.
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/pgc.l,v 1.51 2000/02/22 19:57:10 meskes Exp $
+ * $Header: /cvsroot/pgsql/src/interfaces/ecpg/preproc/pgc.l,v 1.52 2000/03/03 09:56:03 meskes Exp $
*
*-------------------------------------------------------------------------
*/
#define startlit() (literalbuf[0] = '\0', literallen = 0)
static void addlit(char *ytext, int yleng);
-int before_comment;
+int state_before;
struct _yy_buffer { YY_BUFFER_STATE buffer;
long lineno;
{xcline} { ECHO; }
{xcstart} {
- before_comment = YYSTATE;
+ state_before = YYSTATE;
ECHO;
BEGIN(xc);
}
-{xcstop} { ECHO; BEGIN(before_comment); }
+{xcstop} { ECHO; BEGIN(state_before); }
{xcinside} { ECHO; }
BEGIN(xh);
startlit();
}
-{xhstop} {
+{xhstop} {
char* endptr;
BEGIN(SQL);
return ICONST;
}
-{xqstart} {
+{xqstart} {
+ state_before == YYSTATE;
BEGIN(xq);
startlit();
}
-{xqstop} {
- BEGIN(SQL);
+{xqstop} {
+ BEGIN(state_before);
yylval.str = mm_strdup(literalbuf);
return SCONST;
}
{xqdouble} |
{xqinside} |
-{xqliteral} {
+{xqliteral} {
addlit(yytext, yyleng);
}
-{xqcat} { /* ignore */
+{xqcat} {
+ /* ignore */
}
-{xdstart} {
+{xdstart} {
+ state_before = YYSTATE;
BEGIN(xd);
startlit();
}
-{xdstop} {
- BEGIN(SQL);
- yylval.str = mm_strdup(literalbuf);
- return CSTRING;
- }
-{xdinside} {
- addlit(yytext, yyleng);
- }
-{xdstart} {
- BEGIN(xdc);
- startlit();
- }
-{xdstop} {
- BEGIN(C);
+{xdstop} {
+ BEGIN(state_before);
yylval.str = mm_strdup(literalbuf);
return CSTRING;
}
-c>{xdcinside} {
+>{xdinside} {
addlit(yytext, yyleng);
}
{typecast} { return TYPECAST; }
BEGIN C;
return yytext[0];
}
-{operator} {
+{operator} {
if (strcmp((char*)yytext,"!=") == 0)
yylval.str = mm_strdup("<>"); /* compatability */
else
| CSTRING { $$ = make3_str(make_str("\""), $1, make_str("\"")); }
| Iconst { $$ = $1; }
| Fconst { $$ = $1; }
+ | Sconst { $$ = $1; }
| '*' { $$ = make_str("*"); }
| '+' { $$ = make_str("+"); }
| '-' { $$ = make_str("-"); }
| VARCHAR { $$ = make_str("varchar"); }
| '[' { $$ = make_str("["); }
| ']' { $$ = make_str("]"); }
-/* | '(' { $$ = make_str("("); }
- | ')' { $$ = make_str(")"); }*/
| '=' { $$ = make_str("="); }
blockstart : '{' {