Move most printing to the action in the content production.
authorCarl Worth <cworth@cworth.org>
Fri, 14 May 2010 17:17:38 +0000 (10:17 -0700)
committerCarl Worth <cworth@cworth.org>
Fri, 14 May 2010 18:50:27 +0000 (11:50 -0700)
Previously, printing was occurring all over the place. Here we
document that it should all be happening at the top-level content
production, and we move the printing of directive newlines.

The printing of expanded macros is still happening in lower-level
productions, but we plan to fix that soon.

glcpp-parse.y

index 4e5de8254d8b74de33df70745717f0a392c1f615..8dc78975114e88a855ecdea9c96f2905221b54a1 100644 (file)
@@ -103,6 +103,7 @@ input:
 |      input content
 ;
 
+       /* We do all printing at the content level */
 content:
        IDENTIFIER {
                printf ("%s", $1);
@@ -113,7 +114,7 @@ content:
                talloc_free ($1);
        }
 |      macro
-|      directive_with_newline
+|      directive_with_newline { printf ("\n"); }
 |      NEWLINE { printf ("\n"); }
 |      '('     { printf ("("); }
 |      ')'     { printf (")"); }
@@ -154,9 +155,7 @@ argument:
 ;
 
 directive_with_newline:
-       directive NEWLINE {
-               printf ("\n");
-       }
+       directive NEWLINE
 ;
 
 directive: