typedef struct 的问题

typedef struct a_stm_ *a_stm; typedef struct a_explist *a_explist; struct a_stm_ { emu{a,b,c}kind; union { struct{a_stm stm1,stm2}compound; struct{a_explist exps}print; }u; }; a_stm a_compoundstm(a_stm stm1,a_stm stm2);
a_stm a_compoundstm(a_stm stm1,a_stm stm2);这句看不懂,求解释