]> git.saurik.com Git - bison.git/blobdiff - src/main.c
* src/bison.simple (_yy_memcpy): CPP reformat.
[bison.git] / src / main.c
index d53d105fd776e99379345c010eabd29aa6d72160..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 "files.h"
 #include "complain.h"
 #include "derives.h"
-
-#if 0                          /* XXX currently unused.  */
-/* Nonzero means failure has been detected; don't write a parser file.  */
-static int failure;
-#endif
+#include "output.h"
+#include "reader.h"
+#include "lalr.h"
+#include "reduce.h"
+#include "nullable.h"
+#include "print.h"
+#include "LR0.h"
+#include "conflicts.h"
+#include "print_graph.h"
 
 /* The name this program was run with, for messages.  */
 char *program_name;
 
-extern char *printable_version PARAMS ((int));
-extern void berror PARAMS ((const char *));
-
-extern void openfiles PARAMS ((void));
-extern void reader PARAMS ((void));
-extern void reduce_grammar PARAMS ((void));
-extern void set_nullable PARAMS ((void));
-extern void free_nullable PARAMS ((void));
-extern void generate_states PARAMS ((void));
-extern void lalr PARAMS ((void));
-extern void initialize_conflicts PARAMS ((void));
-extern void finalize_conflicts PARAMS ((void));
-extern void verbose PARAMS ((void));
-extern void terse PARAMS ((void));
-extern void output PARAMS ((void));
-
-
-/* VMS complained about using `int'.  */
+extern void berror PARAMS((const char *));
 
 int
 main (int argc, char *argv[])
@@ -64,10 +51,7 @@ main (int argc, char *argv[])
   lineno = 0;
   getargs (argc, argv);
 
-  /* Be ready to clean up if we exit. */
-  atexit (done);
-
-  openfiles ();
+  open_files ();
 
   /* Read the input.  Copy some parts of it to FGUARD, FACTION, FTABLE
      and FATTRS.  In file reader.c.  The other parts are recorded in
@@ -97,12 +81,11 @@ main (int argc, char *argv[])
      declarations.  */
   initialize_conflicts ();
 
-  /* Print information about results, if requested.  In file print.
-     */
-  if (verboseflag)
-    verbose ();
-  else
-    terse ();
+  /* 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 ();
@@ -111,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