%Prolog example developed by Dr. Klerer, CSUSB t1(L) :- input([i,n,t,a,b,c,',',r,e,a,l,d],[],L). input(S,SZ,[L1]) :- declaration(S,SZ,L1). input(S,SZ,[L1,L]) :- declaration(S,S1,L1), comma(S1,S2), input(S2,SZ,L). declaration(S,SZ,sym(intx,L)) :- intx(S,S1), variables(S1,SZ,L). declaration(S,SZ,sym(realx,L)) :- realx(S,S1), variables(S1,SZ,L). variables(S,SZ,[L]) :- variable(S,SZ,L). variables(S,SZ,[L; L1]) :- variable(S,S1,L), variables(S1,SZ,L1). variable([a; S],S,a). variable([b; S],S,b). variable([c; S],S,c). variable([d; S],S,d). variable([e; S],S,e). intx([i,n,t; S],S). realx([r,e,a,l; S],S). comma([','; S],S). :- write('Compilation example loaded'), nl.