OSDN Git Service

* config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include.
[pf3gnuchains/gcc-fork.git] / gcc / ch / lex.c
index 30096a7..8b05f52 100644 (file)
@@ -1,5 +1,6 @@
 /* Lexical analyzer for GNU CHILL. -*- C -*-
-   Copyright (C) 1992, 93, 1994, 1998 Free Software Foundation, Inc.
+   Copyright (C) 1992, 1993, 1994, 1998, 1999, 2000, 2001
+   Free Software Foundation, Inc.
 
 This file is part of GNU CC.
 
@@ -20,7 +21,6 @@ Boston, MA 02111-1307, USA.  */
 \f
 #include "config.h"
 #include "system.h"
-#include <setjmp.h>
 #include <sys/stat.h>
 
 #include "tree.h"
@@ -32,10 +32,7 @@ Boston, MA 02111-1307, USA.  */
 #include "parse.h"
 #include "obstack.h"
 #include "toplev.h"
-
-#ifdef DWARF_DEBUGGING_INFO
-#include "dwarfout.h"
-#endif
+#include "tm_p.h"
 
 #ifdef MULTIBYTE_CHARS
 #include <locale.h>
@@ -67,22 +64,26 @@ extern struct obstack permanent_obstack;
 extern struct obstack temporary_obstack;
 
 /* forward declarations */
-static void close_input_file         PROTO((char *));
-static tree convert_bitstring        PROTO((char *));
-static tree convert_integer          PROTO((char *));
-static void maybe_downcase           PROTO((char *));
-static int  maybe_number             PROTO((char *));
-static tree equal_number             PROTO((void));
-static void handle_use_seizefile_directive PROTO((int));
-static int  handle_name                     PROTO((tree));
-static char *readstring              PROTO((int, int *));
-static void read_directive          PROTO((void));
-static tree read_identifier         PROTO((int));
-static tree read_number              PROTO((int));
-static void skip_c_comment           PROTO((void));
-static void skip_line_comment        PROTO((void));
-static int  skip_whitespace          PROTO((void));
-static tree string_or_char           PROTO((int, char *));
+static void close_input_file         PARAMS ((const char *));
+static tree convert_bitstring        PARAMS ((char *));
+static tree convert_integer          PARAMS ((char *));
+static void maybe_downcase           PARAMS ((char *));
+static int  maybe_number             PARAMS ((const char *));
+static tree equal_number             PARAMS ((void));
+static void handle_use_seizefile_directive PARAMS ((int));
+static int  handle_name                     PARAMS ((tree));
+static char *readstring              PARAMS ((int, int *));
+static void read_directive          PARAMS ((void));
+static tree read_identifier         PARAMS ((int));
+static tree read_number              PARAMS ((int));
+static void skip_c_comment           PARAMS ((void));
+static void skip_line_comment        PARAMS ((void));
+static int  skip_whitespace          PARAMS ((void));
+static tree string_or_char           PARAMS ((int, const char *));
+static void ch_lex_init              PARAMS ((void));
+static void skip_directive           PARAMS ((void));
+static int same_file                 PARAMS ((const char *, const char *));
+static int getlc                     PARAMS ((FILE *));
 
 /* next variables are public, because ch-actions uses them */
 
@@ -192,9 +193,9 @@ ch_lex_init ()
 }
 
 
-char *
+const char *
 init_parse (filename)
-     char *filename;
+     const char *filename;
 {
   int lowercase_standard_names = ignore_case || ! special_UC;
 
@@ -206,8 +207,9 @@ init_parse (filename)
     }
   else
     finput = fopen (filename, "r");
+
   if (finput == 0)
-    pfatal_with_name (filename);
+    fatal_io_error ("can't open %s", filename);
 
 #ifdef IO_BUFFER_SIZE
   setvbuf (finput, (char *) xmalloc (IO_BUFFER_SIZE), _IOFBF, IO_BUFFER_SIZE);
@@ -289,7 +291,8 @@ finish_parse ()
     fclose (finput);
 }
 \f
-static int yywrap ();
+static int yywrap PARAMS ((void));
+static int yy_refill PARAMS ((void));
 
 #define YY_PUTBACK_SIZE 5
 #define YY_BUF_SIZE 1000
@@ -298,7 +301,8 @@ static char yy_buffer[YY_PUTBACK_SIZE + YY_BUF_SIZE];
 static char *yy_cur = yy_buffer + YY_PUTBACK_SIZE;
 static char *yy_lim = yy_buffer + YY_PUTBACK_SIZE;
 
-int yy_refill ()
+static int
+yy_refill ()
 {
   char *buf = yy_buffer + YY_PUTBACK_SIZE;
   int c, result;
@@ -593,7 +597,7 @@ yylex ()
 
 static void
 close_input_file (fn)
-  char *fn;
+  const char *fn;
 {
   if (finput == NULL)
     abort ();
@@ -838,7 +842,7 @@ read_directive ()
 tree
 build_chill_string (len, str)
     int   len;
-    char  *str;
+    const char  *str;
 {
   tree t;
 
@@ -855,7 +859,7 @@ build_chill_string (len, str)
 static tree
 string_or_char (len, str)
      int   len;
-     char *str;
+     const char *str;
 {
   tree result;
   
@@ -881,8 +885,7 @@ maybe_downcase (str)
     return;
   while (*str)
     {
-      if (ISUPPER ((unsigned char) *str))
-       *str = tolower ((unsigned char)*str);
+      *str = TOLOWER (*str);
       str++;
     }
 }
@@ -890,7 +893,7 @@ maybe_downcase (str)
 
 static int
 maybe_number (s)
-  char *s;
+  const char *s;
 {
   char fc;
   
@@ -1281,7 +1284,6 @@ convert_bitstring (p)
   
   /* Move p to stack so we can re-use temporary_obstack for result. */
   char *oldp = (char*) alloca (strlen (p) + 1);
-  if (oldp == 0) fatal ("stack space exhausted");
   strcpy (oldp, p);
   obstack_free (&temporary_obstack, p);
   p = oldp;
@@ -1349,11 +1351,11 @@ convert_bitstring (p)
 
 static int
 same_file (filename1, filename2)
-     char *filename1;
-     char *filename2;
+     const char *filename1;
+     const char *filename2;
 {
   struct stat s[2];
-  char        *fn_input[2];
+  const char *fn_input[2];
   int         i, stat_status;
   
   if (grant_only_flag)
@@ -1371,16 +1373,16 @@ same_file (filename1, filename2)
   for (i = 0; i < 2; i++)
     {
       stat_status = stat (fn_input[i], &s[i]);
-      if (stat_status < 0 &&
-         strchr (fn_input[i], '/') == 0)
+      if (stat_status < 0
+         && strchr (fn_input[i], '/') == 0)
         {
          STRING_LIST *plp;
-         char        *path;
+         char *path;
          
          for (plp = seize_path_list; plp != 0; plp = plp->next)
            {
-             path = (char *)xmalloc (strlen (fn_input[i]) +
-                                     strlen (plp->str) + 2);
+             path = (char *) xmalloc (strlen (fn_input[i])
+                                      + strlen (plp->str) + 2);
              sprintf (path, "%s/%s", plp->str, fn_input[i]);
              stat_status = stat (path, &s[i]);
              free (path);
@@ -1388,8 +1390,9 @@ same_file (filename1, filename2)
                break;
            }
         }
+
       if (stat_status < 0)
-        pfatal_with_name (fn_input[i]);
+       fatal_io_error ("can't find %s", fn_input[i]);
   }
   return s[0].st_ino == s[1].st_ino && s[0].st_dev == s[1].st_dev;
 }
@@ -1457,15 +1460,15 @@ handle_use_seizefile_directive (restricted)
 /*
  * get input, convert to lower case for comparison
  */
-int
+static int
 getlc (file)
      FILE *file;
 {
   register int c;
 
   c = getc (file);  
-  if (ISUPPER (c) && ignore_case)
-    c = tolower (c);
+  if (ignore_case)
+    c = TOLOWER (c);
   return c;
 }
 \f
@@ -1518,9 +1521,9 @@ handle_generic_pragma (buffer)
          * buff ++ = c;
          c = getc (finput);
        }
-      while (c != EOF && isascii (c) && ! isspace (c) && c != '\n'
-            && buff < buffer + 128); /* XXX shared knowledge about size of buffer.  */
-      
+      while (c != EOF && ! ISSPACE (c) && buff < buffer + 128);
+        /* XXX shared knowledge about size of buffer.  */
+
       ungetc (c, finput);
       
       * -- buff = 0;
@@ -1571,8 +1574,8 @@ check_newline ()
      it and ignore it; otherwise, ignore the line, with an error
      if the word isn't `pragma', `ident', `define', or `undef'.  */
 
-  if (ISUPPER (c) && ignore_case)
-    c = tolower (c);
+  if (ignore_case)
+    c = TOLOWER (c);
 
   if (c >= 'a' && c <= 'z')
     {
@@ -1670,7 +1673,7 @@ check_newline ()
              && getlc (finput) == 't'
              && ((c = getlc (finput)) == ' ' || c == '\t'))
            {
-             /* #ident.  The pedantic warning is now in cccp.c.  */
+             /* #ident.  The pedantic warning is now in cpp.  */
 
              /* Here we have just seen `#ident '.
                 A string constant should follow.  */
@@ -2104,7 +2107,7 @@ equal_number ()
  */
 void
 register_seize_path (path)
-     char *path;
+     const char *path;
 {
   int          pathlen = strlen (path);
   char        *new_path = (char *)xmalloc (pathlen + 1);
@@ -2151,7 +2154,7 @@ yywrap ()
   if (next_file_to_seize && !grant_only_flag)
     {
       FILE *grt_in = NULL;
-      char *seizefile_name_chars
+      const char *seizefile_name_chars
        = IDENTIFIER_POINTER (TREE_VALUE (next_file_to_seize));
 
       /* find a seize file, open it.  If it's not at the path the
@@ -2183,7 +2186,7 @@ yywrap ()
        }
 
       if (grt_in == NULL)
-       pfatal_with_name (seizefile_name_chars);
+       fatal_io_error ("can't open %s", seizefile_name_chars);
 
       finput = grt_in;
       input_filename = seizefile_name_chars;