DIRECTORY Basics, ConstArith, YggEnvironment, YggLog; YggLogInline: CEDAR DEFINITIONS IMPORTS ConstArith = BEGIN Comparison: TYPE = Basics.Comparison; RecordID: TYPE = YggLog.RecordID; PageNumber: TYPE = YggEnvironment.PageNumber; WordNumber: TYPE = YggEnvironment.WordNumber; WordCount: TYPE = YggEnvironment.WordCount; Compare: PROC [a, b: RecordID] RETURNS [Comparison] = TRUSTED INLINE { RETURN ConstArith.Compare[a, b] }; Min: PROC [a, b: RecordID] RETURNS [RecordID] = TRUSTED INLINE { RETURN [IF Compare[a, b] = greater THEN b ELSE a]; }; Max: PROC [a, b: RecordID] RETURNS [RecordID] = TRUSTED INLINE { RETURN [IF Compare[a, b] = less THEN b ELSE a]; }; WordsFromSubtract: PROC [larger, smaller: RecordID] RETURNS [result: WordCount] = TRUSTED INLINE { RETURN [ConstArith.Sub[larger, smaller]]; }; AddLC: PROC [r: RecordID, words: LONG CARDINAL] RETURNS [RecordID] = TRUSTED INLINE { RETURN ConstArith.Add[r, ConstArith.FromCard[words]]; }; AddC: PROC [r: RecordID, words: CARDINAL] RETURNS [RecordID] = TRUSTED INLINE { RETURN [AddLC[r, LONG[words]]]; }; AddNumberAndCount: PROC [num: WordNumber, words: WordCount] RETURNS [WordNumber] = TRUSTED INLINE { RETURN ConstArith.Add[num, words]; }; SubNumberLessCount: PROC [num: WordNumber, words: WordCount] RETURNS [WordNumber] = TRUSTED INLINE { RETURN ConstArith.Sub[num, words]; }; RecordIDFromWordNumber: PROC [w: WordNumber] RETURNS [RecordID] = TRUSTED INLINE { RETURN LOOPHOLE[w] }; WordInPageFromRecordID: PROC [r: RecordID, wordsPerPage: CARD] RETURNS [CARD] = TRUSTED INLINE { RETURN ConstArith.ToCard[ConstArith.Mod[r, ConstArith.FromCard[wordsPerPage]]] }; END. CHANGE LOG Created by MBrown on September 21, 1982 2:45 pm Changed by MBrown on September 25, 1982 3:50 pm Changed by MBrown on October 4, 1982 10:19 pm Changed by MBrown on October 25, 1982 10:45 pm Changed by MBrown on November 9, 1982 3:01 pm Changed by MBrown on January 30, 1984 10:11:20 am PST *YggLogInline.mesa Copyright c 1987 by Xerox Corporation. All rights reserved. Useful procs for manipulating RecordIDs. Last edited by MBrown on January 30, 1984 10:14:00 am PST Hauser, March 8, 1985 10:52:24 am PST Carl Hauser, February 24, 1987 5:01:36 pm PST Bob Hagmann April 21, 1988 4:12:12 pm PDT Operations on RecordIDs Returns r+c. Returns r+c. Returns r+c. Returns r+c. Moved stuff here from LogCoreImpl: Compare, DecomposeWordNumber, etc. Cedar 3.4: use Environment.Comparison, Inline.CompareCard. Eliminate dependency on LogBasic so that this interface can be made public. Moved page <-> word stuff to AlpineInline. Cedar 5.0: use Basics, RuntimeError. Hauser, March 8, 1985 10:51:50 am PST Nodified, added copyright. Carl Hauser, October 4, 1985 1:35:26 pm PDT Change "Log" to "AlpineLog" Κ˜šœ™Icodešœ Οmœ1™<—Jšœ(™(šœ™Jšœ*™*K™%K™-K™)—J˜˜šΟk ˜ J˜J˜ Jšœ˜Jšœ˜J˜——šœž˜šž˜J˜ —Jšœž˜Jšœ žœ˜%Jšœ žœ˜!Jšœ žœ˜-Jšœ žœ˜-Jšœ žœ˜+J˜Jšœ™J˜š Οnœžœžœžœžœ˜FJšžœ˜J˜J˜—šŸœžœžœžœ˜@Jšžœžœžœžœ˜2J˜J˜—šŸœžœžœžœ˜@Jšžœžœžœžœ˜/J˜J˜—šŸœžœžœžœ˜bJšžœ#˜)J˜J˜—š Ÿœžœžœžœžœžœ˜UJšœ ™ Jšžœ/˜5J˜J˜—š Ÿœžœžœžœžœ˜OJšœ ™ Jšžœ žœ ˜J˜J˜—šŸœžœ%žœžœ˜cJšœ ™ Jšžœ˜"J˜J˜—šŸœžœ%žœžœ˜dJšœ ™ Jšžœ˜"J˜J˜—šŸœžœžœžœ˜RJšžœ˜J˜—š Ÿœžœžœžœžœžœ˜`JšžœK˜QJ˜—Jšžœ˜J˜J˜—Jšžœž˜ J˜J˜/J˜J˜/JšœE™EJ˜J˜-Jšœ:™:J˜J˜.JšœK™KJ˜J˜-Jšœ*™*J˜Jšœ2ž˜5Jšœ$™$™%K™—™+K™—K™J˜—…—€ ΰ