]> git.saurik.com Git - bison.git/blobdiff - examples/extexi
* doc/bison.texinfo (Decl Summary): In the %language entry, mention
[bison.git] / examples / extexi
index b7af17a1e554e03546228ddb9ee73758de252d66..df3fc21cebb05d4bb5dd31d6e1ede38bfb3c9dcf 100644 (file)
@@ -1,7 +1,7 @@
 # Extract all examples from the manual source.            -*- AWK -*-
 
-# This file is part of GNU M4
-# Copyright 1992, 2000, 2001 Free Software Foundation, Inc.
+# This file is part of GNU Bison
+# Copyright 1992, 2000, 2001, 2005, 2006 Free Software Foundation, Inc.
 #
 # 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
@@ -18,8 +18,8 @@
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 # 02111-1307  USA
 
-# This script is for use with any New AWK.
-# Well, now it uses ARGV/ARGC, and I don't know if it's New AWK portable.
+# 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.
 #
 # Usage: extexi input-file.texi ... -- [FILES to extract]
 BEGIN {
@@ -77,9 +77,11 @@ BEGIN {
       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;
 
@@ -109,6 +111,7 @@ function normalize(contents,    i, lines, n, line, res) {
        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) {