]> git.saurik.com Git - bison.git/blobdiff - src/main.c
* src/macrotab.c: New file.
[bison.git] / src / main.c
index 248bcd89fbeeaf1b513c78da0e9ae452c5f63e80..fb62ff2d2b0aeb73fe0e04f58a5e74dbb82bfa82 100644 (file)
@@ -1,5 +1,5 @@
 /* Top level entry point of bison,
-   Copyright (C) 1984, 1986, 1989, 1992, 1995, 2000
+   Copyright 1984, 1986, 1989, 1992, 1995, 2000
    Free Software Foundation, Inc.
 
    This file is part of Bison, the GNU Compiler Compiler.
 #include "reduce.h"
 #include "nullable.h"
 #include "print.h"
-
-#if 0                          /* XXX currently unused.  */
-/* Nonzero means failure has been detected; don't write a parser file.  */
-static int failure;
-#endif
+#include "LR0.h"
+#include "conflicts.h"
+#include "print_graph.h"
 
 /* The name this program was run with, for messages.  */
 char *program_name;
 
 extern void berror PARAMS((const char *));
 
-extern char *printable_version PARAMS ((int));
-
-extern void generate_states PARAMS ((void));
-extern void initialize_conflicts PARAMS ((void));
-extern void finalize_conflicts PARAMS ((void));
-
-
-/* VMS complained about using `int'.  */
-
 int
 main (int argc, char *argv[])
 {
@@ -62,9 +51,6 @@ main (int argc, char *argv[])
   lineno = 0;
   getargs (argc, argv);
 
-  /* Be ready to clean up if we exit. */
-  atexit (done);
-
   open_files ();
 
   /* Read the input.  Copy some parts of it to FGUARD, FACTION, FTABLE
@@ -98,6 +84,9 @@ main (int argc, char *argv[])
   /* Print information about results, if requested.  */
   print_results ();
 
+  /* Output the VCG graph. */
+  print_graph ();
+
   /* Output the tables and the parser to ftable.  In file output.  */
   output ();
 
@@ -105,26 +94,12 @@ main (int argc, char *argv[])
   free_nullable ();
   free_derives ();
 
+  if (!complain_message_count)
+    output_files ();
+
   exit (complain_message_count ? 1 : 0);
 }
 \f
-/* Return a string containing a printable version of C:
-   either C itself, or the corresponding \DDD code.  */
-
-char *
-printable_version (int c)
-{
-  static char buf[10];
-  if (c < ' ' || c >= '\177')
-    sprintf (buf, "\\%o", c);
-  else
-    {
-      buf[0] = c;
-      buf[1] = '\0';
-    }
-  return buf;
-}
-
 /* Abort for an internal error denoted by string S.  */
 
 void