#ifndef CP_SUPPORT_H
#define CP_SUPPORT_H
#include "symtab.h"
struct symbol;
struct obstack;
struct block;
struct objfile;
struct type;
struct using_direct
{
char *inner;
char *outer;
struct using_direct *next;
};
extern char *class_name_from_physname (const char *physname);
extern char *method_name_from_physname (const char *physname);
extern unsigned int cp_find_first_component (const char *name);
extern unsigned int cp_entire_prefix_len (const char *name);
extern char *cp_func_name (const char *full_name);
extern struct symbol **make_symbol_overload_list (const char *,
const char *);
extern struct type *cp_lookup_rtti_type (const char *name,
struct block *block);
extern unsigned char processing_has_namespace_info;
extern const char *processing_current_prefix;
extern int cp_is_anonymous (const char *namespace);
extern void cp_add_using_directive (const char *name,
unsigned int outer_length,
unsigned int inner_length);
extern void cp_initialize_namespace (void);
extern void cp_finalize_namespace (struct block *static_block,
struct obstack *obstack);
extern void cp_set_block_scope (const struct symbol *symbol,
struct block *block,
struct obstack *obstack);
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,
struct symtab **symtab);
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,
struct symtab **symtab);
extern struct type *cp_lookup_nested_type (struct type *parent_type,
const char *nested_name,
const struct block *block);
extern void cp_check_possible_namespace_symbols (const char *name,
struct objfile *objfile);
struct type *cp_lookup_transparent_type (const char *name);
extern struct cmd_list_element *maint_cplus_cmd_list;
#endif