Next: Containers, Previous: Macros and Functions, Up: Tree overview
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_NODE
s representing the
same identifier. Therefore, you may use pointer equality to compare
IDENTIFIER_NODE
s, 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
char*
. This string is always NUL
-terminated, and contains
no embedded NUL
characters.
IDENTIFIER_LENGTH
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
IDENTIFIER_POINTER
or the
IDENTIFIER_LENGTH
.
IDENTIFIER_TYPENAME_P
TREE_TYPE
of
the IDENTIFIER_NODE
holds the type to which the conversion
operator converts.