V10/cmd/hdr/ident.h

struct ident
{
	ident	*id_next;
	ident	**id_last;
	char	*id_name;
	xnode	*id_type;
	token	*id_token;
	data	id_value;
	ident	*id_parent;
	ident	*id_levelp;
	object	*id_object;
	long	id_flags;
	ident	*id_memblist;
	int	id_levnum;
	long	id_index;
};

#define	ID_NAMES	(IDIS_NAME | IDIS_LABEL | IDIS_MOENUM | IDIS_TYPENAME)
#define	ID_FACTOR	(IDIS_NAME | IDIS_MOENUM)
#define	ID_TAG		(IDIS_STRUCTNAME | IDIS_UNIONNAME | IDIS_ENUMNAME)
#define	ID_MEMBER	(IDIS_MOAGG)

#define	IDIS_NAME		0x000001L
#define	IDIS_STRUCTNAME		0x000002L
#define	IDIS_UNIONNAME		0x000004L
#define	IDIS_ENUMNAME		0x000008L
#define	IDIS_FAKE		0x000010L
#define	IDIS_LABEL		0x000020L
#define	IDIS_MOAGG		0x000040L
#define	IDIS_MOENUM		0x000080L
#define	IDIS_TYPENAME		0x000100L

#define	IDIS_ARGUMENT		0x002000L

#define	IDIS_INIT		0x004000L	/* function: had the body */
#define	IDIS_ALLOC		0x008000L	/* optimiser generated */
#define	IDIS_UNDEF		0x010000L	/*
						 *	undefined aggragate or
						 *	identifier that has been
						 *	diagnosed as undefined
						 */

#define	IDIS_UANDED		0x100000L	/* someone used '&' on it */
						/* if function --- */
#define	IDIS_INTRIN		0x200000L	/* is an instrinic */
#define	IDIS_NOTINTRIN		0x400000L	/* not an intrinsic */