ident.h 906 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_ */