I have the following simple expression parser:
expr(+(T,E))-->term(T),\"+\",expr(E). expr(T)-->term(T). term(*(F,T))-->factor(F),\"*\",term(T). ter
nat(0). nat(N):-nat(N-1).
But you use a syntax that I don't know (see my comment above).