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