DIRECTORY Rope, SiroccoPrivate, WartDef; AbstractTypesDef: CEDAR DEFINITIONS = BEGIN OPEN Rope, SiroccoPrivate, WartDef; <> ProgramNode: TYPE = REF ProgramNodeBody; ProgramNodeBody: TYPE = RECORD[ position: INT, length: INT, procs: ProgramNodeProcs, data: REF ANY]; ProgramNodeProcs: TYPE = REF ProgramNodeProcsBody; ProgramNodeProcsBody: TYPE = RECORD[ MakeSymbolTable: MakeSymbolTableProcType]; <> ReferencedProgramListNode: TYPE = REF ReferencedProgramListNodeBody; ReferencedProgramListNodeBody: TYPE = RECORD[ position: INT, length: INT, procs: ReferencedProgramListNodeProcs, data: REF ANY]; ReferencedProgramListNodeProcs: TYPE = REF ReferencedProgramListNodeProcsBody; ReferencedProgramListNodeProcsBody: TYPE = RECORD[ ReadInTable: ReadInTableProcType]; <> ReferencedProgramNode: TYPE = REF ReferencedProgramNodeBody; ReferencedProgramNodeBody: TYPE = RECORD[ position: INT, length: INT, procs: ReferencedProgramNodeProcs, data: REF ANY]; ReferencedProgramNodeProcs: TYPE = REF ReferencedProgramNodeProcsBody; ReferencedProgramNodeProcsBody: TYPE = RECORD[ ReadInTable: ReadInTableProcType]; <> DeclarationListNode: TYPE = REF DeclarationListNodeBody; DeclarationListNodeBody: TYPE = RECORD[ position: INT, length: INT, procs: DeclarationListNodeProcs, data: REF ANY]; DeclarationListNodeProcs: TYPE = REF DeclarationListNodeProcsBody; DeclarationListNodeProcsBody: TYPE = RECORD[ BuildTable: BuildTableProcType, RecordNames: RecordNamesProcType]; <> DeclarationNode: TYPE = REF DeclarationNodeBody; DeclarationNodeBody: TYPE = RECORD[ position: INT, length: INT, procs: DeclarationNodeProcs, data: REF ANY]; DeclarationNodeProcs: TYPE = REF DeclarationNodeProcsBody; DeclarationNodeProcsBody: TYPE = RECORD[ BuildTable: BuildTableProcType, RecordNames: RecordNamesProcType]; <> TypeNode: TYPE = REF TypeNodeBody; TypeNodeBody: TYPE = RECORD[ position: INT, length: INT, procs: TypeNodeProcs, data: REF ANY]; TypeNodeProcs: TYPE = REF TypeNodeProcsBody; TypeNodeProcsBody: TYPE = RECORD[ CanonicaliseType: CanonicaliseTypeProcType]; <> CorrespondenceListNode: TYPE = REF CorrespondenceListNodeBody; CorrespondenceListNodeBody: TYPE = RECORD[ position: INT, length: INT, procs: CorrespondenceListNodeProcs, data: REF ANY]; CorrespondenceListNodeProcs: TYPE = REF CorrespondenceListNodeProcsBody; CorrespondenceListNodeProcsBody: TYPE = RECORD[ CanonicaliseCorrespondenceList: CanonicaliseCorrespondenceListProcType, CheckCorrespondenceList: CheckCorrespondenceListProcType]; <> CandidateListNode: TYPE = REF CandidateListNodeBody; CandidateListNodeBody: TYPE = RECORD[ position: INT, length: INT, procs: CandidateListNodeProcs, data: REF ANY]; CandidateListNodeProcs: TYPE = REF CandidateListNodeProcsBody; CandidateListNodeProcsBody: TYPE = RECORD[ CanonicaliseCandidateList: CanonicaliseCandidateListProcType, EmptyWorkTableOfNames: EmptyWorkTableOfNamesProcType]; <> FieldListNode: TYPE = REF FieldListNodeBody; FieldListNodeBody: TYPE = RECORD[ position: INT, length: INT, procs: FieldListNodeProcs, data: REF ANY]; FieldListNodeProcs: TYPE = REF FieldListNodeProcsBody; FieldListNodeProcsBody: TYPE = RECORD[ CanonicaliseFieldList: CanonicaliseFieldListProcType]; <> ConstantNode: TYPE = REF ConstantNodeBody; ConstantNodeBody: TYPE = RECORD[ position: INT, length: INT, procs: ConstantNodeProcs, data: REF ANY]; ConstantNodeProcs: TYPE = REF ConstantNodeProcsBody; ConstantNodeProcsBody: TYPE = RECORD[ Coerce: CoerceProcType, GetCARDINAL: GetCARDINALProcType, ConstantToRope: ConstantToRopeProcType]; <> ElementListNode: TYPE = REF ElementListNodeBody; ElementListNodeBody: TYPE = RECORD[ position: INT, length: INT, procs: ElementListNodeProcs, data: REF ANY]; ElementListNodeProcs: TYPE = REF ElementListNodeProcsBody; ElementListNodeProcsBody: TYPE = RECORD[ CoerceElementList: CoerceElementListProcType, ConstantToRope: ConstantToRopeProcType, Size: SizeProcType, ConstructFunction: ConstructFunctionProcType]; <> ComponentListNode: TYPE = REF ComponentListNodeBody; ComponentListNodeBody: TYPE = RECORD[ position: INT, length: INT, procs: ComponentListNodeProcs, data: REF ANY]; ComponentListNodeProcs: TYPE = REF ComponentListNodeProcsBody; ComponentListNodeProcsBody: TYPE = RECORD[ CoerceComponents: CoerceComponentsProcType, ConstantToRope: ConstantToRopeProcType, CheckAllNames: CheckAllNamesProcType]; <> ComponentNode: TYPE = REF ComponentNodeBody; ComponentNodeBody: TYPE = RECORD[ position: INT, length: INT, procs: ComponentNodeProcs, data: REF ANY]; ComponentNodeProcs: TYPE = REF ComponentNodeProcsBody; ComponentNodeProcsBody: TYPE = RECORD[ CoerceComponents: CoerceComponentsProcType, ConstantToRope: ConstantToRopeProcType, CheckAllNames: CheckAllNamesProcType]; <> NameListNode: TYPE = REF NameListNodeBody; NameListNodeBody: TYPE = RECORD[ position: INT, length: INT, procs: NameListNodeProcs, data: REF ANY]; NameListNodeProcs: TYPE = REF NameListNodeProcsBody; NameListNodeProcsBody: TYPE = RECORD[ CheckIfErrorNames: CheckIfErrorNamesProcType, CanonicaliseFieldsFromNameList: CanonicaliseFieldsFromNameListProcType, CoerceComponentNameList: CoerceComponentNameListProcType, NameListToRope: NameListToRopeProcType, EmptyWorkTableOfNames: EmptyWorkTableOfNamesProcType, TypeOfNameList: TypeOfNameListProcType]; <> numberNode: TYPE = REF numberNodeBody; numberNodeBody: TYPE = RECORD[ position: INT, length: INT, procs: numberNodeProcs, data: REF ANY]; numberNodeProcs: TYPE = REF numberNodeProcsBody; numberNodeProcsBody: TYPE = RECORD[ GetCARDINAL: GetCARDINALProcType, NumberToCard: NumberToCardProcType]; BuildTableProcType: TYPE = PROC[REF ANY, TABLES] RETURNS[TABLES]; CanonicaliseCandidateListProcType: TYPE = PROC[REF ANY, CComponent, CType, TABLES] RETURNS[CComponent, TABLES]; CanonicaliseCorrespondenceListProcType: TYPE = PROC[REF ANY, CComponent, TABLES] RETURNS[CComponent, TABLES]; CanonicaliseFieldListProcType: TYPE = PROC[REF ANY, CComponent, TABLES] RETURNS[CComponent, TABLES]; CanonicaliseFieldsFromNameListProcType: TYPE = PROC[REF ANY, ROPE, CComponent, TABLES] RETURNS[CComponent, TABLES]; CanonicaliseTypeProcType: TYPE = PROC[REF ANY, TABLES] RETURNS[ROPE, CType, TABLES]; CheckAllNamesProcType: TYPE = PROC[REF ANY, TABLES] RETURNS[TABLES]; CheckCorrespondenceListProcType: TYPE = PROC[REF ANY, TABLES] RETURNS[TABLES]; CheckIfErrorNamesProcType: TYPE = PROC[REF ANY, TABLES] RETURNS[TABLES]; CoerceProcType: TYPE = PROC[REF ANY, CType, ROPE, TABLES] RETURNS[TABLES]; CoerceComponentNameListProcType: TYPE = PROC[REF ANY, ConstantNode, CComponent, TABLES] RETURNS[TABLES]; CoerceComponentsProcType: TYPE = PROC[REF ANY, CComponent, TABLES] RETURNS[TABLES]; CoerceElementListProcType: TYPE = PROC[REF ANY, CType, ROPE, TABLES] RETURNS[TABLES]; ConstantToRopeProcType: TYPE = PROC[REF ANY, ROPE, ROPE, FunctionList, ROPE, TABLES] RETURNS[ROPE, FunctionList, TABLES]; ConstructFunctionProcType: TYPE = PROC[REF ANY, INT, ROPE, ROPE, ROPE, FunctionList, TABLES] RETURNS[ROPE, FunctionList, TABLES]; EmptyWorkTableOfNamesProcType: TYPE = PROC[REF ANY, TABLES] RETURNS[TABLES]; GetCARDINALProcType: TYPE = PROC[REF ANY, TABLES] RETURNS[CARD, TABLES]; MakeSymbolTableProcType: TYPE = PROC[REF ANY] RETURNS[TABLES]; NumberToCardProcType: TYPE = PROC[REF ANY] RETURNS[CARD]; NameListToRopeProcType: TYPE = PROC[REF ANY, ROPE, ROPE, TABLES] RETURNS[ROPE]; ReadInTableProcType: TYPE = PROC[REF ANY, TABLES] RETURNS[TABLES]; RecordNamesProcType: TYPE = PROC[REF ANY, TABLES] RETURNS[TABLES]; ReturnNodeClassProcType: TYPE = PROC[REF ANY] RETURNS[Generic]; SizeProcType: TYPE = PROC[REF ANY, INT] RETURNS[INT]; TypeOfNameListProcType: TYPE = PROC[REF ANY, ROPE, TABLES] RETURNS[ROPE]; END..