[FILCOM.CNV] [Harold V. McIntosh, 26 January 1984] [[Compare FILE.ONE with FILE.TWO, report differences.]] [first line, file 1] (()()(0)( ((PWS,a: )(or),); (<:Z:>,(v,(T))); ((and,;[insert],<0>),(0)(I,(T)(!)(T)(!)(T))): ((and,;[delete],<0>),(0)(D,(O)(!)(O)(!)(O))): ((and,;[change],<0>),(0)(G,(O))): (<0>,(b,(T))): )) a [first line, file 2] (()()(1)( (<:Z:>,(u,<0>)); (<0><>,(A)(O)); (<1>,(c,(O))); )) b [second line, file 1] (()()(2)( (<:Z:>,(0)(1)(v,(T))); (<1><>,(0)(C)); (<2>,(d,(T))); )) c [second line, file 2] (()()(3)( (<:Z:>,(0)(1)(u,<2>)); (<0><>,(1)(B)<2>); (<2><>,(0)(1)(C)); (<3>,(e,(O))); )) d [third line, file 1] (()()(4)( (<:Z:>,(2)(3)(v,(T))); (<1><>,(2)(B)(x,(O)(!)<3>)); (<3><>,(2)(1)(C)); (<4>,(f,(T))); )) e [one line each already read] (()()(0 1)( (<0><:&:><0>,(A)(O)); (<0><:&:><1>,(c,(O))); )) x [third line, file 2] (()()(5)( (<:Z:>,(2)(3)(u,<4>)); (<0><>,(3)(B)(y,<2>(!)(T)(!)<4>(!)(T))); (<2><>,(0)(3)(B)(x,<4>(!)(T))); (<4><>,(2)(3)(C)); (<5>,(g,(O))); )) f [two lines each already read] (()()(0 1 2 3)( (<0><:&:><0><:&:><1><:&:><1>,(A)(A)(O)); (<2><:&:><2><:&:><0><:&:><1>,(A)(x,<0>(!)<1>)); (<0><:&:><1><:&:><1><:&:><3>,(0)(B)(x,(O)(!)<3>)); (<0><:&:><1><:&:><2><:&:><0>,(1)(B)(x,<2>(!)(T))); (<0><:&:><1><:&:><2><:&:><3>,(e,(O))); )) y [fourth line, file 1] (()()(6)( (<:Z:>,(4)(5)(v,(T))); (<1><>,(4)(|)(y,(O)(!)(O)(!)<3>(!)<5>)); (<3><>,(4)(1)(|)(x,(O)(!)<5>)); (<5><>,(4)(3)(C)); (<6>,(h,(T))); )) g [fourth line, file 2] (()()(7)( (<:Z:>,(4)(5)(u,<6>)); (<0><>,(5)(|)(z,<2>(!)(T)(!)<4>(!)(T)(!)<6>(!)(T))); (<2><>,(0)(5)(|)(y,<4>(!)(T)(!)<6>(!)(T))); (<4><>,(2)(5)(B)<6>); (<6><>,(4)(5)(C)); (<7>,(i,(O))); )) h [three lines each already read] (()()(0 1 2 3 4 5)( (<0><:&:><0><:&:><1><:&:><1><:&:><2><:&:><2>,(A)(A)(A)(O)); (<2><:&:><2><:&:><3><:&:><3><:&:><0><:&:><1>,(A)(A)(c,(O))); (<4><:&:><4><:&:><0><:&:><1><:&:><2><:&:><3>,(A)(f,(O))); (<0><:&:><1><:&:><1><:&:><3>,(0)(B)(x,(O)(!)<3>)); (<0><:&:><1><:&:><2><:&:><0>,(1)(B)(x,<2>(!)(T))); (<0><:&:><1><:&:><2><:&:><3>,(e,(O))); )) z [fifth line, file 1] (()()(8)( (<:Z:>,(6)(7)(v,(T))); (<1><>,(6)(|)(z,(O)(!)<3>(!)(O)(!)<5>(!)(O)(!)<7>)); (<3><>,(6)(1)(|)(y,(O)(!)(O)(!)<5>(!)<7>)); (<5><>,(6)(3)(|)(x,(O)(!)<7>)); (<7><>,(6)(5)(C)); (<8>,(0)(1)(|)(j,<2>(!)<3>(!)<4>(!)<5>(!)<6>(!)<7>)); )) i (()()(0 1 2 3 4 5)( (<0><:&:><1><:&:><2><:&:><3><:&:><4><:&:><5>,(g,<8>)); )) j [known deletion - define synchronizing lines] (()()(3 4 5)( (<3><:&:><4><:&:><5>,(E,(T)(!)(T)(!)(T))); )) D [known deletion - test three lines] (()()(0 1 2)( (<3><:&:><4><:&:><5><>,(A)(A)(C)); (<1><:&:><0><:&:><2>,(1)<0>(!)<2>(!)(T)): )) E [known change - find end, then delete] (()()(0)( ((and,;[endchange],<0>),(0)(|)(D,(O)(!)(O)(!)(O))); (<0>,(0)(O)): )) G [known insertion - define synchronizing lines] (()()(3 4 5)( (<3><:&:><4><:&:><5>,(J,(O)(!)(O)(!)(O))); )) I [known insertion - test three lines] (()()(0 1 2)( (<3><:&:><4><:&:><5><>,(A)(A)(C)); (<0><:&:><1><:&:><2>,(0)<1>(!)<2>(!)(O)): )) J (()()(0)( (<:Z:>,(^Z)); (<0>,(0)(O)): )) u (()()(1)( (<:Z:>,(^Z)); (<1>,(1)(T)): )) v [main program] (( ((^MJ)) & (<-->(^Z)) Z )( ((%R,<9>.ONE)) O ((%R,<9>.TWO)) T ((,(%R,CTR:F1)(%R,CTR:F2))) A ((|)(A)) B ((B)(O)) C (<9>.DIF<,>File 1<,> Line (%R,CTR:F1): ) o (<9>.DIF<,>File 2<,> Line (%R,CTR:F2): ) t ((%W,<9>.DIF<,>(%|))) | ((^MJ)) ! ((%W,(o)<0>(%|))) 0 ((%W,(t)<1>(%|))) 1 ((0)(%W,(o)<2>(%|))) 2 ((1)(%W,(t)<3>(%|))) 3 ((2)(%W,(o)<4>(%|))) 4 ((3)(%W,(t)<5>(%|))) 5 ((4)(%W,(o)<6>(%|))) 6 ((5)(%W,(t)<7>(%|))) 7 )(9)( (<9>(or, ,.,<>),<< >>(%Or,<9>.ONE)<< >>(%Or,<9>.TWO)<< >>(%Ow,<9>.DIF)<< >>(%Or,CTR:F1)<< >>(%Or,CTR:F2)<< >>(%W,CTR:F1,0,1)<< >>(%W,CTR:F2,0,1)<< >>(a,(O))<< >>(%E)); )) [end]