:- op(1200,xfx,'==>'). parse(NT) --> {NT ==> Body}, parse(Body). parse((Body1,Body2)) --> parse(Body1), parse(Body2). parse([]) --> []. parse([Word|Rest]) --> [Word], parse(Rest). parse({Goals}) --> {call(Goals)}.