cpplib.h (cpp_comments, [...]): New structs.

2008-10-05  Matthew Gingell  <gingell@adacore.com>
	    Arnaud Charlet  <charlet@adacore.com>

	* include/cpplib.h (cpp_comments, cpp_comment_table): New structs.
	(cpp_get_comments): New function.
	* internal.h (struct cpp_reader): Add comments field.
	* init.c (cpp_destroy): Free comments.
	* lex.c (store_comment, cpp_get_comments): New functions.
	(comments): New struct.
	(save_comment): Store comments in comments struct.

Co-Authored-By: Arnaud Charlet <charlet@adacore.com>

From-SVN: r140883
This commit is contained in:
Matthew Gingell 2008-10-05 12:35:36 +00:00 committed by Arnaud Charlet
parent 7a90b0ca0c
commit 631d0d3610
5 changed files with 102 additions and 0 deletions

View file

@ -870,6 +870,36 @@ extern const char *cpp_type2name (enum cpp_ttype);
extern cppchar_t cpp_parse_escape (cpp_reader *, const unsigned char ** pstr,
const unsigned char *limit, int wide);
/* Structure used to hold a comment block at a given location in the
source code. */
typedef struct
{
/* Text of the comment including the terminators. */
char *comment;
/* source location for the given comment. */
source_location sloc;
} cpp_comment;
/* Structure holding all comments for a given cpp_reader. */
typedef struct
{
/* table of comment entries. */
cpp_comment *entries;
/* number of actual entries entered in the table. */
int count;
/* number of entries allocated currently. */
int allocated;
} cpp_comment_table;
/* Returns the table of comments encountered by the preprocessor. This
table is only populated when pfile->state.save_comments is true. */
extern cpp_comment_table *cpp_get_comments (cpp_reader *);
/* In hash.c */
/* Lookup an identifier in the hashtable. Puts the identifier in the