OSDN Git Service

* c-lex.c: Move main_input_filename handling to FC_ENTER. Clean up.
[pf3gnuchains/gcc-fork.git] / gcc / cpplib.h
index 524b8f6..4c4b7e3 100644 (file)
@@ -1,5 +1,6 @@
 /* Definitions for CPP library.
-   Copyright (C) 1995, 96-99, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000
+   Free Software Foundation, Inc.
    Written by Per Bothner, 1994-95.
 
 This program is free software; you can redistribute it and/or modify it
@@ -423,6 +424,9 @@ struct cpp_options
 
   /* Print column number in error messages.  */
   unsigned char show_column;
+
+  /* Treat C++ alternate operator names special.  */
+  unsigned char operator_names;
 };
 
 struct lexer_state
@@ -454,6 +458,9 @@ struct lexer_state
 
   /* Nonzero when parsing arguments to a function-like macro.  */
   unsigned char parsing_args;
+
+  /* Nonzero when in a # NUMBER directive.  */
+  unsigned char line_extension;
 };
 
 /* Special nodes - identifiers with predefined significance.  */
@@ -602,10 +609,6 @@ struct cpp_reader
      preprocessor.  */
   struct spec_nodes spec_nodes;
 
-  /* Nonzero means we have printed (while error reporting) a list of
-     containing files that matches the current status.  */
-  unsigned char input_stack_listing_current;
-
   /* We're printed a warning recommending against using #import.  */
   unsigned char import_warning;
 
@@ -630,6 +633,11 @@ struct cpp_reader
 /* Name under which this program was invoked.  */
 extern const char *progname;
 
+/* Where does this buffer come from?  A faked include, a source file,
+   a builtin macro, a command-line option, or a _Pragma operator.  */
+enum cpp_buffer_type {BUF_FAKE, BUF_FILE, BUF_BUILTIN,
+                     BUF_CL_OPTION, BUF_PRAGMA};
+
 /* The structure of a node in the hash table.  The hash table has
    entries for all identifiers: either macros defined by #define
    commands (type NT_MACRO), assertions created with #assert
@@ -725,7 +733,9 @@ extern void cpp_undef  PARAMS ((cpp_reader *, const char *));
 extern void cpp_unassert PARAMS ((cpp_reader *, const char *));
 
 extern cpp_buffer *cpp_push_buffer PARAMS ((cpp_reader *,
-                                           const unsigned char *, long));
+                                           const unsigned char *, size_t,
+                                           enum cpp_buffer_type,
+                                           const char *));
 extern cpp_buffer *cpp_pop_buffer PARAMS ((cpp_reader *));
 extern int cpp_defined PARAMS ((cpp_reader *, const unsigned char *, int));