#ifndef nametable_incl
#define nametable_incl
typedef char * NAMETABLE_id_t;
#define NAMETABLE_NIL_ID ((NAMETABLE_id_t) NULL)
#ifdef MSDOS
typedef int STRTAB_str_t ;
#define STRTAB_NULL_STR ((STRTAB_str_t) 0)
#else
typedef NAMETABLE_id_t STRTAB_str_t ;
#define STRTAB_NULL_STR ((STRTAB_str_t) NULL)
#endif
#include <nidl.h>
#define NAMETABLE_id_too_long 1
#define NAMETABLE_no_space 2
#define NAMETABLE_different_casing 3
#define NAMETABLE_string_to_long 4
#define NAMETABLE_bad_id_len 5
#define NAMETABLE_bad_string_len 6
#define max_string_len 2048
NAMETABLE_id_t NAMETABLE_add_id(
char *id
);
NAMETABLE_id_t NAMETABLE_lookup_id(
char *id
);
void NAMETABLE_id_to_string(
NAMETABLE_id_t NAMETABLE_id,
char **str_ptr
);
boolean NAMETABLE_add_binding(
NAMETABLE_id_t id,
char * binding
);
char* NAMETABLE_lookup_binding(
NAMETABLE_id_t identifier
);
boolean NAMETABLE_add_tag_binding(
NAMETABLE_id_t id,
char * binding
);
char* NAMETABLE_lookup_tag_binding(
NAMETABLE_id_t identifier
);
char* NAMETABLE_lookup_local(
NAMETABLE_id_t identifier
);
void NAMETABLE_push_level(
void
);
void NAMETABLE_pop_level(
void
);
void NAMETABLE_set_temp_name_mode (
void
);
void NAMETABLE_set_perm_name_mode (
void
);
void NAMETABLE_clear_temp_name_mode (
void
);
STRTAB_str_t STRTAB_add_string(
char *string
);
void STRTAB_str_to_string(
STRTAB_str_t str,
char **strp
);
void NAMETABLE_init(
void
);
#ifdef DUMPERS
void NAMETABLE_dump_tab(
void
);
#endif
void STRTAB_init(
void
);
NAMETABLE_id_t NAMETABLE_add_derived_name(
NAMETABLE_id_t id,
char *matrix
);
NAMETABLE_id_t NAMETABLE_add_derived_name2(
NAMETABLE_id_t id1,
NAMETABLE_id_t id2,
char *matrix
);
#endif