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
977 B
35 lines
977 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_ */
|