% simplified syntax
/* c1': */ parse(L,T,e)       :- parse(L,T,t).
/* c2': */ parse(L,T,e)       :- parse(L,[plus|C],t), parse(C,T,e).
/* c3': */ parse(L,T,t)       :- parse(L,T,n).
/* c4': */ parse(L,T,t)       :- parse(L,[star|C],n), parse(C,T,t).
/* c5': */ parse([L|T],T,n)   :- z(L).
/* c6': */ parse([open|A],B,n) :- parse(A,[close|B],e),
/* c7': */ z(a).
/* c8': */ z(b).
/* c9': */ z(c).
