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