DIRECTORY Rope USING [ROPE], AlgebraClasses; Variables: CEDAR DEFINITIONS = BEGIN OPEN AC: AlgebraClasses; Variable: TYPE = AC.Object; VariableData: TYPE = Rope.ROPE; Variables: AC.Object; PrintName: AC.ToRopeOp; ShortPrintName: AC.ToRopeOp; IsVariables: AC.UnaryPredicate; Recast: AC.BinaryOp; CanRecast: AC.BinaryPredicate; ToExpr: AC.ToExprOp; FromExpr: AC.FromExprOp; LegalFirstChar: AC.LegalFirstCharOp; Read: AC.ReadOp; FromRope: AC.FromRopeOp; ToRope: AC.ToRopeOp; Write: AC.WriteOp; Equal: AC.BinaryPredicate; END. fVariables.mesa Last Edited by: Arnon, June 10, 1985 4:19:22 pm PDT Types Structure Operations Conversion and IO Comparison VariableIndex: PROC [var: Rope.ROPE, V: VariableSeq] RETURNS [CARDINAL]; Variable indices are positive integers, thus if var = V[i], then i+1 returned. RemoveMainVariable: PROC [V: VariableSeq] RETURNS [VariableSeq]; AddMainVariable: PROC [oldVars, newVar: VariableSeq] RETURNS [VariableSeq]; MainVariable: PROC [V: VariableSeq] RETURNS [VariableSeq]; VariableFirstChar: PROC [char: CHAR, V: VariableSeq] RETURNS [BOOL]; True if char is the first character of some variable in V. ส,˜Jšœ™J™3J˜šฯk ˜ Jšœœœ˜Jšœ˜—Ihead2šœ œ ˜Jš œœ˜ J˜headšฯn™Icodešœ œœ˜J˜Mšœœœ˜M˜Jšž œœ˜—šž™šž œœ ˜J˜—šžœœ ˜J˜—Jšž œœ˜—šœ™šžœœ ˜J˜—šž œœ˜J˜—šžœœ ˜J˜—šžœœ ˜J˜—šžœœ˜$J˜—šžœœ˜J˜—šžœœ ˜J˜—šžœœ ˜J˜—Jšžœœ ˜—šœ ™ Jšžœœ˜J˜š ž œœ œœœ™HMšœN™NM™—šžœœœ™@J™—šžœœ œ™KJ™—šž œœœ™:M™—š žœœœžœœœ™DMšœ:™:—J˜—Jšœ˜—…—ฎ