DIRECTORY Basics, Commander, CommandTool, FS, IO, PrioritySearchRef, Rope; PrioritySearchRefExample: CEDAR PROGRAM IMPORTS Commander, CommandTool, FS, IO, PrioritySearchRef, Rope = BEGIN bitsPerXChar: NAT = 1+Basics.bitsPerByte; -- high-order virtual bit is 1 if char present, 0 if not ExampleDepth: PROC [ item1, item2: PrioritySearchRef.Item ] RETURNS [ Basics.Comparison ] = BEGIN r1: Rope.ROPE = NARROW[item1]; r2: Rope.ROPE = NARROW[item2]; RETURN [ SELECT r1.Length-r2.Length FROM <0 => less, >0 => greater, ENDCASE => equal ]; END; ExampleTreeHalf: PROC [ item: PrioritySearchRef.Item, index: PrioritySearchRef.RadixIndex ] RETURNS [ half: PrioritySearchRef.Half ] = BEGIN r: Rope.ROPE = NARROW[item]; charPos: NAT = index/bitsPerXChar; half _ PrioritySearchRef.TreeHalfImpl[ LONG[(IF charPos EXIT ].token; [] _ PrioritySearchRef.Insert[tree, r]; ENDLOOP; s.Close[]; cmd.out.PutF["\nTree has %d entries ...\nQuery matches", IO.int[tree.Size]]; PrioritySearchRef.Search[tree, argv[2], argv[3], argv[4], TouchProc]; END; Commander.Register["PSRExample", PSRExample, "Example of client usage of PrioritySearchRef package. Syntax is\n\n PSRExample fileName a b c\n\nwhere fileName is searched for all tokens alphabetically between b and c whose length is not greater than that of a."]; END. -- of PrioritySearchRefExample  PrioritySearchRefExample.mesa Uses PrioritySearchRef to maintain sets of ROPE's that can be searched by alphabetic order and/or by length (a semi-independent ordering). last modified by E. McCreight, May 16, 1985 2:04:07 pm PDT written by E. McCreight, May 17, 1985 9:34:33 am PDT ÊZ˜Jšœ™J˜JšœŠ™ŠJ˜Jšœ:™:Jšœ4™4J˜šÏk ˜ Jšœ œœ˜@J˜—šœœ˜'Jšœœ˜AJš˜J˜JšœœÏc8˜bJ˜šÏn œœ*œ˜[Jš˜Jšœ œœ˜Jšœ œœ˜šœœ˜(Jšœ ˜ Jšœ˜Jšœ ˜—Jšœ˜J˜—šŸœœGœ#˜†Jš˜Jšœœœ˜Jšœ œ˜"šœ&˜&Jšœœœœ˜CJšœ)œ˜<—Jšœ˜J˜—šŸ œœ*œ+˜oJš˜Jšœ œœ˜Jšœ œœ˜Jšœœœ˜,šœ œœ˜7Jšœœ˜Jšœœ˜šœ œœ˜.Jšœœœ&ž%œ˜‘—Jšœ˜—Jšœœœœ˜[Jšœ˜J˜—š Ÿœœœœœ˜3Jšœœ˜Jšœœ˜!Jšœ˜J˜—Jšœœ˜ J˜šŸ œœœ œœ œœžœ˜xJš˜J˜šŸ œœ#˜2Jšœœœ ˜-J˜—Jšœ:˜:Jšœœœœ˜&Jšœ˜Jšœ ˜ š˜Jšœœœœ ˜EJšœ'˜'Jšœ˜—Jšœ ˜ Jšœ9œ˜LJšœE˜EJšœ˜J˜—Jšœˆ˜ˆJ˜Jšœž˜#J˜J˜—J˜—…— ÒL