<<>> <> <> <> <> <<>> DIRECTORY Rope, MathObjects, MathStructures; MathExprs: CEDAR DEFINITIONS ~ BEGIN <> ROPE: TYPE = Rope.ROPE; STREAM: TYPE = IO.STREAM; Object: TYPE = MathObjects.Object; <> Expr: TYPE = Object; ExprData: TYPE ~ REF ExprDataRep; -- external abstract type ExprDataRep: TYPE; -- internal concrete rep <> None - no Domain-specific data <> DomMake: PROC RETURNS [domain: Object]; <> <> <> <> EltDisplay: MathObjects.UnaryOp; <> <> <> <> <> <> <> <> <> <"] ] can quickly do the right thing.>> <] ]. >> << >> EltRead: MathObjects.ReadOp; <> <> <<>> EltToRope: MathObjects.ToRopeOp; <> EltFromRope: MathObjects.FromRopeOp; LegalFirstChar: MathObjects.LegalFirstCharOp; EltLBKey: MathObjects.ToRopeOp; <> EltWrite: MathObjects.WriteOp; WidenOther: MathObjects.BinaryOp; <> <> <> CanWidenOther: MathObjects.BinaryPredicate; <> <> NarrowOther: MathObjects.BinaryOp; <> <> CanNarrowOther: MathObjects.BinaryPredicate; <> WidenThis: MathObjects.UnaryOp; <> <> <> <> <<>> NarrowThis: MathObjects.UnaryOp; <> <> <> <<>> <> GetNameDomainData: MathObjects.GetDomainDataProc; <> <> <<>> Data1: MathObjects.UnaryOp; <> <<>> Data2: MathObjects.UnaryOp; <> <> Flavor: MathObjects.FlavorOp; <> <> <> <> DomToRope: MathObjects.ToRopeOp; <> DomName: MathObjects.ToRopeOp; <> DomLBKey: MathObjects.ToRopeOp; <> DomData: MathObjects.UnaryToListOp; <> <<>> IsNameDomain: MathObjects.UnaryPredicate; <> MakeName: MathObjects.ListImbedOp; <> <<>> MakeElementNameData: PROC [field1, field2] RETURNS [elementData: ElementNameData]; <> GetNameElementData: MathObjects.GetElementDataProc; <> <> <<>> Field1: MathObjects.UnaryOp; <> <<>> Field2: MathObjects.UnaryOp; <> <> BinaryOp: MathObjects.BinaryOp; UnaryOp: MathObjects.UnaryOp; END.