You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
906 B
35 lines
906 B
#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_ */
|