<> <> <> <<>> <> <<>> DIRECTORY FS, IO, Rope, OracleGen; Gen2Impl: CEDAR PROGRAM IMPORTS FS, IO, OracleGen, Rope ~ BEGIN OPEN OracleGen; outf: IO.STREAM; k : INT; c : LONG CARDINAL; s,s0,s1,s2,s3,r,t: Rope.ROPE; GenCount64: PROC [k: INT] RETURNS [] ~ { mid: INT _ 32; SELECT k FROM IN [0..3) => { s _ Hex[c]; s _ LExtend[s,8]; s0 _ s; s _ Rope.Concat["00000000 ",s]; t _ "XXXXXXXX XXXXXXXX"; }; IN [3..32) => { s _ Hex[c]; s _ LExtend[s,8]; s0 _ s; s _ Rope.Concat["00000000 ",s]; t _ Rope.Concat["00000000 ",s3]; }; IN [mid..36) => { IF k=mid THEN c _0 ; s _ Hex[c]; s _ LExtend[s,8]; s0 _ s; s _ Rope.Concat[s," 00000000"]; t _ Rope.Concat["00000000 ",s3]; }; IN [36..64) => { s _ Hex[c]; s _ LExtend[s,8]; s0 _ s; s _ Rope.Concat[s," 00000000"]; t _ Rope.Concat[s3," 00000000"]; }; ENDCASE; s3 _ s2; s2 _ s1; s1 _ s0; IF c=0 THEN c _1 ELSE c _ 2*c; }; <> <> <<>> r _ "Gen.oracle"; outf _ FS.StreamOpen[r, $create]; outf.PutF["-- Begining of the text : \n"]; <> s _ "00000000 00000000"; t _ "XXXXXXXX XXXXXXXX"; outf.PutF["%g | %g \n",IO.rope[s],IO.rope[t]]; c _ 0; s1 _ "XXXXXXXX"; s2 _ "XXXXXXXX"; s3 _ ""; FOR k IN[0..64) DO GenCount64[k]; outf.PutF["%g | %g \n",IO.rope[s],IO.rope[t]]; ENDLOOP; outf.Close[]; END.