X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=include%2Flibfirm%2Fident.h;h=5b97bf6b799655beb9cf7c214a22832429c4c0be;hb=1b7d2c0224fb8403a7a0a76d5f6e4fe2b07adfef;hp=ba5eb7c997667b098ff8a46411afe94f24c243cc;hpb=c021732d2f0c04113e6afd153a7a9be38e40ca6f;p=libfirm diff --git a/include/libfirm/ident.h b/include/libfirm/ident.h index ba5eb7c99..5b97bf6b7 100644 --- a/include/libfirm/ident.h +++ b/include/libfirm/ident.h @@ -21,63 +21,19 @@ * @file * @brief Data type for unique names. * @author Goetz Lindenmaier - * @version $Id$ - * @brief - * Declarations for identifiers in the firm library - * - * Identifiers are used in the firm library. This is the interface to it. + * @brief Declarations for identifiers in the firm library */ -#ifndef FIRM_IDENT_IDENT_H -#define FIRM_IDENT_IDENT_H +#ifndef FIRM_IDENT_H +#define FIRM_IDENT_H +#include #include "firm_types.h" #include "begin.h" -/* Identifiers */ - /** - * The ident module interface. + * @defgroup ir_ident Identifiers + * @{ */ -struct ident_if_t { - /** The handle. */ - void *handle; - - /** - * Store a string and create an ident. - * This function may be NULL, new_id_from_chars() - * is then used to emulate its behavior. - * - * @param str the string which shall be stored - */ - ident *(*new_id_from_str)(void *handle, const char *str); - - /** - * Store a string and create an ident. - * - * @param str the string (or whatever) which shall be stored - * @param len the length of the data in bytes - */ - ident *(*new_id_from_chars)(void *handle, const char *str, int len); - - /** - * Returns a string represented by an ident. - */ - const char *(*get_id_str)(void *handle, ident *id); - - /** - * Returns the length of the string represented by an ident. - * This function may be NULL, get_id_str() is then used - * to emulate its behavior. - * - * @param id the ident - */ - int (*get_id_strlen)(void *handle, ident *id); - - /** - * Finish the ident module and frees all idents, may be NULL. - */ - void (*finish_ident)(void *handle); -}; /** * Store a string and create an ident. @@ -87,12 +43,10 @@ struct ident_if_t { * Copies the string. @p str must be zero terminated * * @param str the string which shall be stored - * * @return id a handle for the generated ident - * * @see get_id_str(), get_id_strlen() */ -FIRM_DLL ident *new_id_from_str(const char *str); +FIRM_API ident *new_id_from_str(const char *str); /** Store a string and create an ident. * @@ -101,12 +55,10 @@ FIRM_DLL ident *new_id_from_str(const char *str); * * @param str the string (or whatever) which shall be stored * @param len the length of the data in bytes - * * @return id a handle for the generated ident - * * @see new_id_from_str(), get_id_strlen() */ -FIRM_DLL ident *new_id_from_chars(const char *str, int len); +FIRM_API ident *new_id_from_chars(const char *str, size_t len); /** * Returns a string represented by an ident. @@ -115,83 +67,75 @@ FIRM_DLL ident *new_id_from_chars(const char *str, int len); * NULL terminated. The string may not be changed. * * @param id the ident - * * @return cp a string - * * @see new_id_from_str(), new_id_from_chars(), get_id_strlen() */ -FIRM_DLL const char *get_id_str(ident *id); +FIRM_API const char *get_id_str(ident *id); /** * Returns the length of the string represented by an ident. * * @param id the ident - * * @return len the length of the string - * * @see new_id_from_str(), new_id_from_chars(), get_id_str() */ -FIRM_DLL int get_id_strlen(ident *id); +FIRM_API size_t get_id_strlen(ident *id); /** * Returns true if prefix is a prefix of an ident. * * @param prefix the prefix * @param id the ident - * * @see new_id_from_str(), new_id_from_chars(), get_id_str(), id_is_prefix() */ -FIRM_DLL int id_is_prefix(ident *prefix, ident *id); +FIRM_API int id_is_prefix(ident *prefix, ident *id); /** * Returns true if suffix is a suffix of an ident. * * @param suffix the suffix * @param id the ident - * * @see new_id_from_str(), new_id_from_chars(), get_id_str(), id_is_prefix() */ -FIRM_DLL int id_is_suffix(ident *suffix, ident *id); +FIRM_API int id_is_suffix(ident *suffix, ident *id); /** * Return true if an ident contains a given character. * * @param id the ident * @param c the character - * * @see new_id_from_str(), new_id_from_chars(), get_id_str() */ -FIRM_DLL int id_contains_char(ident *id, char c); +FIRM_API int id_contains_char(ident *id, char c); /** * helper function for creating unique idents. It contains an internal counter * and replaces a "%u" inside the tag with the counter. */ -FIRM_DLL ident *id_unique(const char *tag); - -/** initializes the name mangling code */ -FIRM_DLL void firm_init_mangle (void); +FIRM_API ident *id_unique(const char *tag); /** Computes a definite name for this entity by concatenating the name of the owner type and the name of the entity with a separating "_". */ -FIRM_DLL ident *id_mangle_entity(ir_entity *ent); +FIRM_API ident *id_mangle_entity(const ir_entity *ent); /** mangle underscore: Returns a new ident that represents first_scnd. */ -FIRM_DLL ident *id_mangle_u(ident *first, ident* scnd); +FIRM_API ident *id_mangle_u(ident *first, ident* scnd); /** mangle dot: Returns a new ident that represents first.scnd. */ -FIRM_DLL ident *id_mangle_dot(ident *first, ident* scnd); +FIRM_API ident *id_mangle_dot(ident *first, ident* scnd); /** mangle: Returns a new ident that represents firstscnd. */ -FIRM_DLL ident *id_mangle(ident *first, ident* scnd); +FIRM_API ident *id_mangle(ident *first, ident* scnd); /** Returns a new ident that represents 'prefixscndsuffix'. */ -FIRM_DLL ident *id_mangle3(const char *prefix, ident *middle, +FIRM_API ident *id_mangle3(const char *prefix, ident *middle, const char *suffix); /** returns a mangled name for a Win32 function using its calling convention */ -FIRM_DLL ident *id_decorate_win32_c_fkt(ir_entity *ent, ident *id); +FIRM_API ident *id_decorate_win32_c_fkt(const ir_entity *ent, ident *id); + +/** @} */ #include "end.h"