ident.h 977 Bytes
#ifndef _IDENT_H_
#define _IDENT_H_

#define	ID_TYP_UNDEF	'n'
#define	ID_TYP_EXP		'e'
#define	ID_TYP_IDL		'L'

struct ident;
typedef struct ident s_ident;

#include <expValue.h>
#include <identList.h>

/* identifier constructors/destructors */
s_ident *		identNew						(int, const char *);
s_ident *		identUndefNew				(int, const char *);
s_ident *		identExpNew					(int, const char *, s_expVal *);
s_ident *		identIdlNew					(int, const char *, s_identList *);
void				identFree					(s_ident *);

/* analyse ident */
int				identIsQueued				(s_ident *);
void				identEnqueue				(s_ident *);
void				identDequeue				(s_ident *);
int				identGetType				(s_ident *);
char *			identGetKey					(s_ident *);
int				identGetIdx					(s_ident *);

/* identifier to value */
s_expVal *		identExp						(s_ident *);
s_identList *	identIdl						(s_ident *);
s_ident *		identSetExp					(s_ident *, s_expVal *);
s_ident *		identSetIdl					(s_ident *, s_identList *);

#endif /* _IDENT_H_ */