Next: Containers, Previous: Macros and Functions, Up: Tree overview
9.2.2 Identifiers
An IDENTIFIER_NODE represents a slightly more general concept
that 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.
You can use the following macros to access identifiers:
IDENTIFIER_POINTER- The string represented by the identifier, represented as a
char*. This string is alwaysNUL-terminated, and contains no embeddedNULcharacters. IDENTIFIER_LENGTH- The length of the string returned by
IDENTIFIER_POINTER, not including the trailingNUL. This value ofIDENTIFIER_LENGTH (x)is always the same asstrlen (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_POINTERor theIDENTIFIER_LENGTH. IDENTIFIER_TYPENAME_P- This predicate holds if the identifier represents the name of a
user-defined conversion operator. In this case, the
TREE_TYPEof theIDENTIFIER_NODEholds the type to which the conversion operator converts.