Fixed bug in parsing of #line statement in declare section.

This commit is contained in:
Michael Meskes 2005-02-02 15:37:43 +00:00
parent cde6056e34
commit 4b56bd85c0
3 changed files with 11 additions and 5 deletions

View File

@ -1898,5 +1898,9 @@ Mon Jan 10 13:55:32 CET 2005
Tue Jan 25 13:47:45 CET 2005 Tue Jan 25 13:47:45 CET 2005
- Fixed segfault in preprocessor due to free a struct twice. - Fixed segfault in preprocessor due to free a struct twice.
Wed Feb 2 16:35:27 CET 2005
- Fixed bug in parsing of #line statement in declare section.
- Set ecpg version to 3.2.1. - Set ecpg version to 3.2.1.

View File

@ -12,7 +12,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/pgc.l,v 1.134 2004/12/31 22:03:48 pgsql Exp $ * $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/pgc.l,v 1.135 2005/02/02 15:37:43 meskes Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
@ -288,8 +288,8 @@ ip {ipdigit}\.{ipdigit}\.{ipdigit}\.{ipdigit}
/* we might want to parse all cpp include files */ /* we might want to parse all cpp include files */
cppinclude {space}*#{include}{space}* cppinclude {space}*#{include}{space}*
/* Take care of cpp continuation lines */ /* Take care of cpp lines, they may also be continuated */
cppline {space}*#(.*\\{space})+.* cppline {space}*#(.*\\{space})*.*{newline}
/* /*
* Dollar quoted strings are totally opaque, and no escaping is done on them. * Dollar quoted strings are totally opaque, and no escaping is done on them.
@ -685,7 +685,7 @@ cppline {space}*#(.*\\{space})+.*
return(CPP_LINE); return(CPP_LINE);
} }
} }
<C>{cppline} { <C,SQL>{cppline} {
yylval.str = mm_strdup(yytext); yylval.str = mm_strdup(yytext);
return(CPP_LINE); return(CPP_LINE);
} }

View File

@ -1,4 +1,4 @@
/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/preproc.y,v 1.304 2005/01/25 12:51:31 meskes Exp $ */ /* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/preproc.y,v 1.305 2005/02/02 15:37:43 meskes Exp $ */
/* Copyright comment */ /* Copyright comment */
%{ %{
@ -4635,12 +4635,14 @@ sql_enddeclare: ecpgstart END_P DECLARE SQL_SECTION ';' {};
var_type_declarations: /*EMPTY*/ { $$ = EMPTY; } var_type_declarations: /*EMPTY*/ { $$ = EMPTY; }
| vt_declarations { $$ = $1; } | vt_declarations { $$ = $1; }
| CPP_LINE { $$ = $1; }
; ;
vt_declarations: var_declaration { $$ = $1; } vt_declarations: var_declaration { $$ = $1; }
| type_declaration { $$ = $1; } | type_declaration { $$ = $1; }
| vt_declarations var_declaration { $$ = cat2_str($1, $2); } | vt_declarations var_declaration { $$ = cat2_str($1, $2); }
| vt_declarations type_declaration { $$ = cat2_str($1, $2); } | vt_declarations type_declaration { $$ = cat2_str($1, $2); }
| vt_declarations CPP_LINE { $$ = cat2_str($1, $2); }
; ;
variable_declarations: var_declaration { $$ = $1; } variable_declarations: var_declaration { $$ = $1; }