/* Interface to C preprocessor macro tables for GDB.
- Copyright (C) 2002, 2007, 2008 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2007-2012 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of GDB.
int *definition_line));
/* Callback function when walking a macro table. NAME is the name of
- the macro, and DEFINITION is the definition. */
+ the macro, and DEFINITION is the definition. SOURCE is the file at the
+ start of the include path, and LINE is the line number of the SOURCE file
+ where the macro was defined. USER_DATA is an arbitrary pointer which is
+ passed by the caller to macro_for_each or macro_for_each_in_scope. */
typedef void (*macro_callback_fn) (const char *name,
- const struct macro_definition *definition);
-
-/* Call the function FN for each macro in the macro table TABLE. */
-void macro_for_each (struct macro_table *table, macro_callback_fn fn);
+ const struct macro_definition *definition,
+ struct macro_source_file *source,
+ int line,
+ void *user_data);
+
+/* Call the function FN for each macro in the macro table TABLE.
+ USER_DATA is passed, untranslated, to FN. */
+void macro_for_each (struct macro_table *table, macro_callback_fn fn,
+ void *user_data);
+
+/* Call the function FN for each macro that is visible in a given
+ scope. The scope is represented by FILE and LINE. USER_DATA is
+ passed, untranslated, to FN. */
+void macro_for_each_in_scope (struct macro_source_file *file, int line,
+ macro_callback_fn fn,
+ void *user_data);
#endif /* MACROTAB_H */