]> git.saurik.com Git - bison.git/blobdiff - examples/extexi
maint: remove trailing empty lines.
[bison.git] / examples / extexi
index c0f67df2d3ff81ab7437f08dda5ab20639854c78..efce4e5738f1852cb3b3ddcd7a5b35302be66d4e 100644 (file)
@@ -1,11 +1,13 @@
 # Extract all examples from the manual source.            -*- AWK -*-
 
 # This file is part of GNU Bison
-# Copyright 1992, 2000, 2001, 2005 Free Software Foundation, Inc.
+
+# Copyright (C) 1992, 2000-2001, 2005-2006, 2009-2012 Free Software
+# Foundation, Inc.
 #
-# This program is free software; you can redistribute it and/or modify
+# This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
+# the Free Software Foundation, either version 3 of the License, or
 # (at your option) any later version.
 #
 # This program is distributed in the hope that it will be useful,
@@ -14,9 +16,7 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-# 02111-1307  USA
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # This script is for use with any Awk that conforms to POSIX.
 # It was derived from a similar script tests/generate.awk in GNU m4.
@@ -52,11 +52,11 @@ BEGIN {
     }
 }
 
-/^@example$/, /^@end example$/ {
+/^@(small)?example$/, /^@end (small)?example$/ {
   if (!file)
     next;
 
-  if ($0 ~ /^@example$/)
+  if ($0 ~ /^@(small)?example$/)
     {
       input = files_output[file] ? "\n" : "";
 
@@ -65,21 +65,23 @@ BEGIN {
       # => + 2.
       # Note that recent Bison support it, but not Flex.
       if (file ~ /\.[chy]*$/)
-       input = "#line " (FNR + 1) " \"" FILENAME "\"\n";
+        input = "#line " (FNR + 1) " \"" FILENAME "\"\n";
       next;
     }
 
-  if ($0 ~ /^@end example$/)
+  if ($0 ~ /^@end (small)?example$/)
     {
       if (input == "")
-       fatal("no contents: " file);
+        fatal("no contents: " file);
 
       input = normalize(input);
       # No spurious end of line: use printf.
       if (files_output[file])
-       printf ("%s", input) >> output_dir "/" file;
+        # The parens around the output file seem to be required
+        # by awk on Mac OS X Tiger (darwin 8.4.6).
+        printf ("%s", input) >> (output_dir "/" file);
       else
-       printf ("%s", input) > output_dir "/" file;
+        printf ("%s", input) > (output_dir "/" file);
       close (output_dir "/" file);
       files_output[file] = 1;
 
@@ -103,12 +105,13 @@ function normalize(contents,    i, lines, n, line, res) {
 
       # Whole line commands.
       if (line ~ /^@(c |comment|dots|end (ignore|group)|ignore|group)/)
-       # Gperf accepts empty lines as valid input!!!
-       if (file ~ /\.gperf$/)
-         continue;
-       else
-         line = "";
+        # Gperf accepts empty lines as valid input!!!
+        if (file ~ /\.gperf$/)
+          continue;
+        else
+          line = "";
 
+      gsub (/"@value\{VERSION\}"/, "\"" VERSION "\"", line)
       gsub (/^@result\{\}/, "", line);
       gsub (/^@error\{\}/,  "", line);
       gsub ("@[{]", "{", line);
@@ -123,8 +126,11 @@ function normalize(contents,    i, lines, n, line, res) {
 
 
 function message(msg) {
-  # FNR starts at 0 instead of 1 for line numbers.
-  print "extexi: " FILENAME ":" (FNR + 1) ": " msg > "/dev/stderr";
+  if (! message_printed[msg])
+    {
+      print "extexi: " msg > "/dev/stderr";
+      message_printed[msg] = 1;
+    }
 }
 
 function fatal(msg) {