expr(Z,S0,S) :- term(Z,S0,S). expr(Z,S0,S) :- term(X,S0,S1),c(S1,43,S2),expr(Y,S2,S),Z is X+Y. expr(Z,S0,S) :- term(X,S0,S1),c(S1,45,S2),expr(Y,S2,S),Z is X-Y. term(Z,S0,S) :- number(Z,S0,S). term(Z,S0,S) :- number(X,S0,S1),c(S1,42,S2), write('s2 '),write(S2),nl, write('s '),write(S),nl, term(Y,S2,S), write('y '),write(Y),nl, write('x '),write(X),nl, integer(X),integer(Y), Z is X*Y. term(Z,S0,S) :- number(X,S0,S1),c(S1,47,S2),term(Y,S2,S),Z is X/Y. number(X,S0,S) :- c(S0,C,S),48=