/* Example of definite clause grammar, as given on the class handout */ expr(Z) --> term(Z). expr(Z) --> term(X),"+",expr(Y),{Z is X+Y}. expr(Z) --> term(X),"-",expr(Y),{Z is X-Y}. term(Z) --> number(Z). term(Z) --> number(X),"*",term(Y),{Z is X*Y}. term(Z) --> number(X),"/",term(Y),{Z is X/Y}. number(X) --> [C],{48= "+",number(C). number(C) --> "-",number(X),{C is -X}.