type_t
type_t *d_type; /* list of attributes or NULL */
extern type_t *decl_GetType(decl_t *);
extern int type_IsArray(type_t *);
extern int type_IsPtrTo(type_t *);
extern int type_IsFunction(type_t *);
extern int type_IsVarargs(type_t *);
extern int type_IsPtrFun(type_t *);
static type_t *
type_t *tp = malloc(sizeof (type_t));
type_Destroy(type_t *tp) {
type_t *nextp = tp->t_next;
static type_t *
type_SetPtr(type_t *tp, stt_t s) {
static type_t *
type_SetAry(type_t *tp, char *dim) {
static type_t *
type_SetFun(type_t *tp, decl_t *arglist) {
static type_t *
type_AddTail(type_t *dp, type_t *tp) {
type_t *lastp = dp;
type_t *p;
type_PrintType(type_t *tp, int lvl) {
type_Verify(type_t *tp) {
type_t *nextp;
type_t *
type_GetNext(type_t *tp) {
type_IsArray(type_t *tp) {
type_GetArraySize(type_t *tp) {
type_IsPtrTo(type_t *tp) {
type_GetPtrToTypeQual(type_t *tp) {
type_IsFunction(type_t *tp) {
type_GetArgLength(type_t *tp) {
type_IsVarargs(type_t *tp) {
type_GetArg(type_t *tp) {
type_IsPtrFun(type_t *tp) {
type_t *
type_t *tp = dp->d_type;
type_t *np;
decl_AddTypeTail(decl_t *dp, type_t *tp) {
decl_addptr(decl_t *dp, type_t *tp) {
type_t *tp = type_Construct();
type_t *tp = type_Construct();
type_t *tp = dp->d_type;
type_t *tp;
type_t *tp;
type_t *tp = dp->d_type;
static type_t *type_Construct(void);
static void type_Destroy(type_t *);
static type_t *type_SetPtr(type_t *, stt_t);
static type_t *type_SetFun(type_t *, decl_t *);
type_t *tp = type_Construct();
static type_t *type_AddTail(type_t *, type_t *);
type_t *tp = type_Construct();
static const char *type_Verify(type_t *);
static decl_t *decl_AddTypeTail(decl_t *, type_t *);
static decl_t *decl_addptr(decl_t *, type_t *);
static void type_PrintType(type_t *, int);
type_t *t_val;
type_t *tp;
type_t *type = types;
static type_t types[] = {
extern type_t fun(int);
type_t obj, *ptr;