struct dnodeS; struct unodeS; typedef void (*pull)(struct unodeS*); typedef void (*push)(char, struct dnodeS *, struct unodeS*); typedef struct dnodeS {push code; struct dnodeS* nsn;} dnode; typedef struct unodeS {pull code; dnode* dn;} unode; #include jmp_buf trmp; unode * ug; #include dnode* carm(dnode*); dnode* cinterleave(dnode*, unode*); unode* crptr(dnode*, char); dnode* ctee(dnode*, dnode*); dnode* cx2uc(dnode*); dnode* cprint(FILE*, int); void start(unode*); unode* conce(unode***); unode* chllo(dnode*, char*);