Fixed bug in parsing of #line statement in declare section.
authorMichael Meskes <meskes@postgresql.org>
Wed, 2 Feb 2005 15:37:43 +0000 (15:37 +0000)
committerMichael Meskes <meskes@postgresql.org>
Wed, 2 Feb 2005 15:37:43 +0000 (15:37 +0000)
src/interfaces/ecpg/ChangeLog
src/interfaces/ecpg/preproc/pgc.l
src/interfaces/ecpg/preproc/preproc.y

index 3e04df895cce3d913d71ef5b083ad1a17cc2eb9a..14a7c9af256ea6a3175e8fbe8b3c5ac2c7dc302d 100644 (file)
@@ -1898,5 +1898,9 @@ Mon Jan 10 13:55:32 CET 2005
 Tue Jan 25 13:47:45 CET 2005
 
    - 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.
 
index fad995fbd728b0048bb1d927cd092f85a83e17bf..ce1b4eb885aebc2382c933e869349945dffa3b38 100644 (file)
@@ -12,7 +12,7 @@
  *
  *
  * 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 */
 cppinclude         {space}*#{include}{space}*
 
-/* Take care of cpp continuation lines */
-cppline            {space}*#(.*\\{space})+.*
+/* Take care of cpp lines, they may also be continuated */
+cppline            {space}*#(.*\\{space})*.*{newline}
 
 /*
  * Dollar quoted strings are totally opaque, and no escaping is done on them.
@@ -685,7 +685,7 @@ cppline         {space}*#(.*\\{space})+.*
                        return(CPP_LINE);
                      }
            }
-<C>{cppline}       {
+<C,SQL>{cppline}       {
                        yylval.str = mm_strdup(yytext);
                        return(CPP_LINE);
                    }
index 6797787d8ea69adb6d8a2e2c615f97054544dadc..b70fa9487208cd57671caf49829a3a44b3cff309 100644 (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 */
 %{
@@ -4635,12 +4635,14 @@ sql_enddeclare: ecpgstart END_P DECLARE SQL_SECTION ';' {};
 
 var_type_declarations: /*EMPTY*/           { $$ = EMPTY; }
        | vt_declarations           { $$ = $1; }
+       | CPP_LINE              { $$ = $1; }
        ;
 
 vt_declarations:  var_declaration          { $$ = $1; }
        | type_declaration          { $$ = $1; }
        | vt_declarations var_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; }