* c-exp.y (block, variable, name_not_typename, lex_one_token,

classify_name): Update.
	* c-valprint.c (c_val_print): Update.
	* f-exp.y (yylex): Update.
	* go-exp.y (package_name_p, classify_packaged_name)
	(classify_name): Update.
	* jv-exp.y (push_variable): Update.
	* m2-exp.y (variable): Update.
	* mi/mi-cmd-stack.c (list_args_or_locals): Update.
	* p-exp.y (block, variable, yylex): Update.
	* p-valprint.c (pascal_val_print): Update.
	* parse.c (write_dollar_variable): Update.
	* printcmd.c (address_info): Update.
	* python/py-symbol.c (gdbpy_lookup_symbol): Update.
	* symtab.c (lookup_symbol_aux, lookup_symbol_in_language)
	(lookup_symbol): Change type of 'is_a_field_of_this'.
	(check_field): Add 'is_a_field_of_this' argument.
	* symtab.h (struct field_of_this_result): New.
	(lookup_symbol, lookup_symbol_in_language): Update.
This commit is contained in:
Tom Tromey
2012-12-14 17:47:40 +00:00
parent 2dc3df72a7
commit 1993b71979
15 changed files with 127 additions and 64 deletions

View File

@@ -919,19 +919,42 @@ int symbol_matches_domain (enum language symbol_language,
extern struct symtab *lookup_symtab (const char *);
/* An object of this type is passed as the 'is_a_field_of_this'
argument to lookup_symbol and lookup_symbol_in_language. */
struct field_of_this_result
{
/* The type in which the field was found. If this is NULL then the
symbol was not found in 'this'. If non-NULL, then one of the
other fields will be non-NULL as well. */
struct type *type;
/* If the symbol was found as an ordinary field of 'this', then this
is non-NULL and points to the particular field. */
struct field *field;
/* If the symbol was found as an function field of 'this', then this
is non-NULL and points to the particular field. */
struct fn_fieldlist *fn_field;
};
/* lookup a symbol by name (optional block) in language. */
extern struct symbol *lookup_symbol_in_language (const char *,
const struct block *,
const domain_enum,
enum language,
int *);
struct field_of_this_result *);
/* lookup a symbol by name (optional block, optional symtab)
in the current language. */
extern struct symbol *lookup_symbol (const char *, const struct block *,
const domain_enum, int *);
const domain_enum,
struct field_of_this_result *);
/* A default version of lookup_symbol_nonlocal for use by languages
that can't think of anything better to do. */