Next: Containers, Previous: Macros and Functions, Up: Tree overview [Contents][Index]
An IDENTIFIER_NODE represents a slightly more general concept
than the standard C or C++ concept of identifier. In particular, an
IDENTIFIER_NODE may contain a ‘$’, or other extraordinary
characters.
There are never two distinct IDENTIFIER_NODEs representing the
same identifier. Therefore, you may use pointer equality to compare
IDENTIFIER_NODEs, rather than using a routine like
strcmp. Use get_identifier to obtain the unique
IDENTIFIER_NODE for a supplied string.
You can use the following macros to access identifiers:
IDENTIFIER_POINTER
The string represented by the identifier, represented as a
char*. This string is always NUL-terminated, and contains
no embedded NUL characters.
IDENTIFIER_LENGTH
The length of the string returned by IDENTIFIER_POINTER, not
including the trailing NUL. This value of
IDENTIFIER_LENGTH (x) is always the same as strlen
(IDENTIFIER_POINTER (x)).
IDENTIFIER_OPNAME_P
This predicate holds if the identifier represents the name of an
overloaded operator. In this case, you should not depend on the
contents of either the IDENTIFIER_POINTER or the
IDENTIFIER_LENGTH.
IDENTIFIER_TYPENAME_P
This predicate holds if the identifier represents the name of a
user-defined conversion operator. In this case, the TREE_TYPE of
the IDENTIFIER_NODE holds the type to which the conversion
operator converts.