/* 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
/* Print column number in error messages. */
unsigned char show_column;
+
+ /* Treat C++ alternate operator names special. */
+ unsigned char operator_names;
};
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. */
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;
/* 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
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));