digit('0'). digit('1'). digit('2').
digit('3'). digit('4'). digit('5').
digit('6'). digit('7'). digit('8').
digit('9').

parse(S) :- atom_chars(S,Chars), digits(Chars,[]).

digits --> [A], {digit(A), format('digit is ~w~n', A)}, digits.
digits --> [].

