%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%% phiCAD2NC %%% %%% Transforming cwp's from rng-notation to p-notation %%% %%% Michael Sintek First Version: August 1991 %%% %%% Harold Boley, Markus Perling Current Version: June 1997 %%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% cwp-rng2p(cwp[Globals,Class-feat-rng]) :- Class-feat-p .= rng2p-feature-list(Class-feat-rng) & cwp[Globals,Class-feat-p]. rng2p-feature(nft[lsh[flk[Flank],grd[Ground]],Refined-ground]) :- Flank-p .= rng2p(Flank), Ground-p .= rng2p(Ground), Refined-ground-p .= rng2p-feature-list(Refined-ground) & nft[lsh[flk[Flank-p],grd[Ground-p]],Refined-ground-p]. rng2p-feature(nft[rsh[grd[Ground],flk[Flank]],Refined-ground]) :- Flank-p .= rng2p(Flank), Ground-p .= rng2p(Ground), Refined-ground-p .= rng2p-feature-list(Refined-ground) & nft[rsh[grd[Ground-p],flk[Flank-p]],Refined-ground-p]. rng2p-feature(nft[grv[flk[Flank1],grd[Ground],flk[Flank2]],Refined-ground]) :- Flank1-p .= rng2p(Flank1), Ground-p .= rng2p(Ground), Flank2-p .= rng2p(Flank2), Refined-ground-p .= rng2p-feature-list(Refined-ground) & nft[grv[flk[Flank1-p],grd[Ground-p],flk[Flank2-p]],Refined-ground-p]. rng2p-feature-list([]) :& []. rng2p-feature-list([H|T]) :& tup(rng2p-feature(H)|rng2p-feature-list(T)). rng2p([]) :& []. rng2p([rng[Z,Ri,Ro]|Rest]) :- /=(Ri,Ro) & tup(p[Z,Ri],p[Z,Ro]|rng2p(Rest)). rng2p([rng[Z,Ro,Ro]|Rest]) :& tup(p[Z,Ro]|rng2p(Rest)).