% bb(convrule,conv(From,To),conv(From,To)). % conversion rules % bb(convline,current,Line). % buffer for line main([File,ConvertedFile|_]) :- open(File,read,In), open(ConvertedFile,write,Out), set_input(In), set_output(Out), readrules_from_oldgui, bb_create(convline), convlines. convlines :- get_line(Line),!, bb_put(convline,current,Line), convrules, bb_get(convline,current,ConvertedLine), write(ConvertedLine),nl,flush_output, convlines. convlines. % apply all available conversion rules convrules :- ( bb_get(convrule,Rule,Rule), convrule(Rule), fail ; true ) ,!. convrule(conv(From,To)) :- bb_get(convline,current,OrigLine), substitute_all(From,OrigLine,To,ConvLine), bb_put(convline,current,ConvLine),!. readrules_from_oldgui :- bb_create(convrule), open('oldgui.min',read,In), read(In,X), readrules(In,X). readrules(_In,end_of_file) :- !. readrules(In,X) :- X = (FromTerm :- ToTerm),!, functor(FromTerm, From, _Arity), functor(ToTerm, To, _Arity), bb_put(convrule,conv(From,To),conv(From,To)), read(In,Y), readrules(In,Y). readrules(In,_X) :- % writeq(nogood_ignored(_X)),nl,flush_output,!, read(In,Y), readrules(In,Y).