term: term([ name([ name_token(a, letter_digit_token([ small_letter_char(a)]))]), name([ name_token('.', graphic_token([ graphic_token_char(graphic_char('.'))]))]), name([ layout_text_sequence([ layout_text( layout_char( space_char(' ')))]), name_token(b, letter_digit_token([ small_letter_char(b)]))]), name([ name_token('.', graphic_token([ graphic_token_char( graphic_char('.'))]))])]) <=> "a. b.". term: term([ name([ name_token('..', graphic_token([ graphic_token_char( graphic_char('.')), graphic_token_char( graphic_char('.'))]))])]) <=> "..". term: "a(X).". term: "member(X,[X|_]).". term: "member(X,[_|Xs]) :- member(X,Xs).". term: "a b.". % There is no logic in the tokenizing, so all of % them work, although not valid Prolog programs: term: "a(1). b.". term: "a(1). b./*test*/". term: "a(1). b/*test*/.". term: "a(1). /*test*/b.". term: "a(1)./*test*/ b.". term: "a(1)/*test*/. b.". term: "a(1/*test*/). b.". term: "a(/*test*/1). b.". term: "a/*test*/(1). b.". term: "/*test*/a(1). b.". term: "[a]".