]> git.saurik.com Git - bison.git/blobdiff - src/files.c
Regenerate.
[bison.git] / src / files.c
index a27a2772e2936e3297e65fc7437be762d67c81ee..5073f04f5780d518f1f929a1f3d859de82f58c61 100644 (file)
@@ -1,5 +1,5 @@
 /* Open and close files for bison,
 /* Open and close files for bison,
-   Copyright 1984, 1986, 1989, 1992, 2000, 2001, 2002
+   Copyright (C) 1984, 1986, 1989, 1992, 2000, 2001, 2002
    Free Software Foundation, Inc.
 
    This file is part of Bison, the GNU Compiler Compiler.
    Free Software Foundation, Inc.
 
    This file is part of Bison, the GNU Compiler Compiler.
@@ -32,9 +32,8 @@ const char *base_name PARAMS ((char const *name));
 
 FILE *finput = NULL;
 
 
 FILE *finput = NULL;
 
-struct obstack action_obstack;
-struct obstack attrs_obstack;
-struct obstack output_obstack;
+struct obstack pre_prologue_obstack;
+struct obstack post_prologue_obstack;
 
 /* Initializing some values below (such SPEC_NAME_PREFIX to `yy') is
    tempting, but don't do that: for the time being our handling of the
 
 /* Initializing some values below (such SPEC_NAME_PREFIX to `yy') is
    tempting, but don't do that: for the time being our handling of the
@@ -52,7 +51,6 @@ char *spec_defines_file = NULL; /* for --defines. */
 char *parser_file_name = NULL;
 
 char *infile = NULL;
 char *parser_file_name = NULL;
 
 char *infile = NULL;
-char *attrsfile = NULL;
 
 static char *full_base_name = NULL;
 
 
 static char *full_base_name = NULL;
 
@@ -101,49 +99,6 @@ stringappend (const char *string1, const char *string2)
   return res;
 }
 
   return res;
 }
 
-
-/*-----------------------------------------------------------------.
-| Computes the macro name used to avoid double inclusion in the    |
-| header of the parser and store it in header_macro_name.  Be sure |
-| to produce valid CPP names (don't start with digit, remain       |
-| alphanumerical + underscore).                                    |
-`-----------------------------------------------------------------*/
-
-char *
-compute_header_macro (void)
-{
-  const char *prefix = "BISON_";
-  char *macro_name, *cp;
-
-  if (spec_defines_file)
-    {
-      macro_name = XMALLOC (char,
-                           strlen (prefix) +
-                           strlen (spec_defines_file) + 1);
-      cp = stpcpy (macro_name, prefix);
-      cp = stpcpy (cp, spec_defines_file);
-    }
-  else
-    {
-      macro_name = XMALLOC (char,
-                           strlen (prefix) +
-                           strlen (full_base_name) +
-                           strlen (header_extension) + 1);
-      cp = stpcpy (macro_name, prefix);
-      cp = stpcpy (cp, full_base_name);
-      cp = stpcpy (cp, header_extension);
-    }
-
-  for (cp = macro_name; *cp; ++cp)
-    if (islower (*cp))
-      *cp = toupper (*cp);
-    else if (!isalnum (*cp))
-      *cp = '_';
-
-  return macro_name;
-}
-
-
 /*-----------------------------------------------------------------.
 | Try to open file NAME with mode MODE, and print an error message |
 | if fails.                                                        |
 /*-----------------------------------------------------------------.
 | Try to open file NAME with mode MODE, and print an error message |
 | if fails.                                                        |
@@ -192,6 +147,7 @@ skeleton_find (const char *envvar, const char *skeleton_name)
   const char *res = getenv (envvar);
 
 #if defined (MSDOS) || defined (_WIN32)
   const char *res = getenv (envvar);
 
 #if defined (MSDOS) || defined (_WIN32)
+  const char *cp = getenv ("INIT");
   if (!res)
     {
       /* Skeleton file name without path */
   if (!res)
     {
       /* Skeleton file name without path */
@@ -204,7 +160,6 @@ skeleton_find (const char *envvar, const char *skeleton_name)
         ++skel_name;
 
       /* File doesn't exist in current directory; try in INIT directory.  */
         ++skel_name;
 
       /* File doesn't exist in current directory; try in INIT directory.  */
-      const char *cp = getenv ("INIT");
       if (cp)
        {
          res = XMALLOC (char, strlen (cp) + strlen (skel_name) + 2);
       if (cp)
        {
          res = XMALLOC (char, strlen (cp) + strlen (skel_name) + 2);
@@ -386,11 +341,11 @@ compute_base_names (void)
       else
        {
          /* Otherwise, the short base name is computed from the input
       else
        {
          /* Otherwise, the short base name is computed from the input
-            grammar: `foo.yy' => `foo'.  */
+            grammar: `foo/bar.yy' => `bar'.  */
          filename_split (infile, &base, &tab, &ext);
          short_base_name =
          filename_split (infile, &base, &tab, &ext);
          short_base_name =
-           xstrndup (infile,
-                     (strlen (infile) - (ext ? strlen (ext) : 0)));
+           xstrndup (base,
+                     (strlen (base) - (ext ? strlen (ext) : 0)));
        }
 
       /* In these cases, always append `.tab'. */
        }
 
       /* In these cases, always append `.tab'. */
@@ -417,15 +372,15 @@ compute_output_file_names (void)
 {
   compute_base_names ();
 
 {
   compute_base_names ();
 
-  parser_file_name =
-    spec_outfile ? spec_outfile : stringappend (full_base_name, src_extension);
-
   /* If not yet done. */
   if (!src_extension)
     src_extension = ".c";
   if (!header_extension)
     header_extension = ".h";
   /* If not yet done. */
   if (!src_extension)
     src_extension = ".c";
   if (!header_extension)
     header_extension = ".h";
-  
+
+  parser_file_name =
+    spec_outfile ? spec_outfile : stringappend (full_base_name, src_extension);
+
   /* It the defines filename if not given, we create it.  */
   if (!spec_defines_file)
     spec_defines_file = stringappend (full_base_name, header_extension);
   /* It the defines filename if not given, we create it.  */
   if (!spec_defines_file)
     spec_defines_file = stringappend (full_base_name, header_extension);
@@ -435,6 +390,4 @@ compute_output_file_names (void)
     spec_graph_file = stringappend (short_base_name, ".vcg");
 
   spec_verbose_file = stringappend (short_base_name, EXT_OUTPUT);
     spec_graph_file = stringappend (short_base_name, ".vcg");
 
   spec_verbose_file = stringappend (short_base_name, EXT_OUTPUT);
-
-  attrsfile = stringappend (short_base_name, EXT_STYPE_H);
 }
 }