/* This struct is designed to store data from using directives. It
says that names from namespace IMPORT_SRC should be visible within
- namespace IMPORT_DEST. IMPORT_DEST should always be a strict initial
- substring of IMPORT_SRC. These form a linked list; NEXT is the next element
- of the list. */
+ namespace IMPORT_DEST. These form a linked list; NEXT is the next element
+ of the list. If the imported namespace has been aliased, ALIAS is set to a
+ string representing the alias. Otherwise, ALIAS is NULL.
+ Eg:
+ namespace C = A::B;
+ ALIAS = "C"
+ DECLARATION is the name of the imported declaration, if this import
+ statement represents one.
+ Eg:
+ using A::x;
+ Where x is variable in namespace A. DECLARATION is set to x.
+*/
struct using_direct
{
char *import_src;
char *import_dest;
+
+ char *alias;
+ char *declaration;
+
struct using_direct *next;
/* Used during import search to temporarily mark this node as searched. */
extern int cp_is_anonymous (const char *namespace);
extern void cp_add_using_directive (const char *dest,
- const char *src);
-
-extern struct using_direct *cp_add_using (const char *dest,
- const char *src,
- struct using_direct *next);
+ const char *src,
+ const char *alias,
+ const char *declaration,
+ struct obstack *obstack);
extern void cp_initialize_namespace (void);
extern void cp_scan_for_anonymous_namespaces (const struct symbol *symbol);
extern struct symbol *cp_lookup_symbol_nonlocal (const char *name,
- const char *linkage_name,
const struct block *block,
const domain_enum domain);
extern struct symbol *cp_lookup_symbol_namespace (const char *namespace,
const char *name,
- const char *linkage_name,
const struct block *block,
- const domain_enum domain,
- const int search_parents);
+ const domain_enum domain);
+
+extern struct symbol *cp_lookup_symbol_imports (const char *scope,
+ const char *name,
+ const struct block *block,
+ const domain_enum domain,
+ const int declaration_only,
+ const int search_parents);
extern struct type *cp_lookup_nested_type (struct type *parent_type,
const char *nested_name,