<> <> <> <> DIRECTORY Rope, SiroccoPrivate; SiroccoATDef: CEDAR DEFINITIONS = BEGIN OPEN Rope, SiroccoPrivate; <> 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]; <> ImportListNode: TYPE = REF ImportListNodeBody; ImportListNodeBody: TYPE = RECORD[ position: INT, length: INT, procs: ImportListNodeProcs, data: REF ANY]; ImportListNodeProcs: TYPE = REF ImportListNodeProcsBody; ImportListNodeProcsBody: TYPE = RECORD[ BuildRIB: BuildRIBProcType]; <> ImportNode: TYPE = REF ImportNodeBody; ImportNodeBody: TYPE = RECORD[ position: INT, length: INT, procs: ImportNodeProcs, data: REF ANY]; ImportNodeProcs: TYPE = REF ImportNodeProcsBody; ImportNodeProcsBody: TYPE = RECORD[ BuildScope: BuildScopeProcType]; <> DeclarationListNode: TYPE = REF DeclarationListNodeBody; DeclarationListNodeBody: TYPE = RECORD[ position: INT, length: INT, procs: DeclarationListNodeProcs, data: REF ANY]; DeclarationListNodeProcs: TYPE = REF DeclarationListNodeProcsBody; DeclarationListNodeProcsBody: TYPE = RECORD[ BuildItemTable: BuildItemTableProcType, BuildTypeGraph: BuildTypeGraphProcType]; <> DeclarationNode: TYPE = REF DeclarationNodeBody; DeclarationNodeBody: TYPE = RECORD[ position: INT, length: INT, procs: DeclarationNodeProcs, data: REF ANY]; DeclarationNodeProcs: TYPE = REF DeclarationNodeProcsBody; DeclarationNodeProcsBody: TYPE = RECORD[ BuildItem: BuildItemProcType, BuildNamedItem: BuildNamedItemProcType]; <> TypeNode: TYPE = REF TypeNodeBody; TypeNodeBody: TYPE = RECORD[ position: INT, length: INT, procs: TypeNodeProcs, data: REF ANY]; TypeNodeProcs: TYPE = REF TypeNodeProcsBody; TypeNodeProcsBody: TYPE = RECORD[ BuildTGN: BuildTGNProcType]; <> EnumerationNode: TYPE = REF EnumerationNodeBody; EnumerationNodeBody: TYPE = RECORD[ position: INT, length: INT, procs: EnumerationNodeProcs, data: REF ANY]; EnumerationNodeProcs: TYPE = REF EnumerationNodeProcsBody; EnumerationNodeProcsBody: TYPE = RECORD[ BuildTGN: BuildTGNProcType]; <> UnionNode: TYPE = REF UnionNodeBody; UnionNodeBody: TYPE = RECORD[ position: INT, length: INT, procs: UnionNodeProcs, data: REF ANY]; UnionNodeProcs: TYPE = REF UnionNodeProcsBody; UnionNodeProcsBody: TYPE = RECORD[ BuildTGN: BuildTGNProcType]; <> FieldListNode: TYPE = REF FieldListNodeBody; FieldListNodeBody: TYPE = RECORD[ position: INT, length: INT, procs: FieldListNodeProcs, data: REF ANY]; FieldListNodeProcs: TYPE = REF FieldListNodeProcsBody; FieldListNodeProcsBody: TYPE = RECORD[ BuildTGN: BuildTGNProcType]; <> ConstantNode: TYPE = REF ConstantNodeBody; ConstantNodeBody: TYPE = RECORD[ position: INT, length: INT, procs: ConstantNodeProcs, data: REF ANY]; ConstantNodeProcs: TYPE = REF ConstantNodeProcsBody; ConstantNodeProcsBody: TYPE = RECORD[ BuildAbstractValue: BuildAbstractValueProcType]; <> GroupingNode: TYPE = REF GroupingNodeBody; GroupingNodeBody: TYPE = RECORD[ position: INT, length: INT, procs: GroupingNodeProcs, data: REF ANY]; GroupingNodeProcs: TYPE = REF GroupingNodeProcsBody; GroupingNodeProcsBody: TYPE = RECORD[ BuildAbstractValue: BuildAbstractValueProcType]; <> ConstructorNode: TYPE = REF ConstructorNodeBody; ConstructorNodeBody: TYPE = RECORD[ position: INT, length: INT, procs: ConstructorNodeProcs, data: REF ANY]; ConstructorNodeProcs: TYPE = REF ConstructorNodeProcsBody; ConstructorNodeProcsBody: TYPE = RECORD[ BuildAbstractValue: BuildAbstractValueProcType]; <> BindingNode: TYPE = REF BindingNodeBody; BindingNodeBody: TYPE = RECORD[ position: INT, length: INT, procs: BindingNodeProcs, data: REF ANY]; BindingNodeProcs: TYPE = REF BindingNodeProcsBody; BindingNodeProcsBody: TYPE = RECORD[ BuildAbstractValue: BuildAbstractValueProcType]; <> NameListNode: TYPE = REF NameListNodeBody; NameListNodeBody: TYPE = RECORD[ position: INT, length: INT, procs: NameListNodeProcs, data: REF ANY]; NameListNodeProcs: TYPE = REF NameListNodeProcsBody; NameListNodeProcsBody: TYPE = RECORD[ BuildTGN: BuildTGNProcType]; <> NumberNode: TYPE = REF NumberNodeBody; NumberNodeBody: TYPE = RECORD[ position: INT, length: INT, procs: NumberNodeProcs, data: REF ANY]; NumberNodeProcs: TYPE = REF NumberNodeProcsBody; NumberNodeProcsBody: TYPE = RECORD[ BuildAbstractValue: BuildAbstractValueProcType]; MakeSymbolTableProcType: TYPE = PROC[REF ANY] RETURNS[ROPE, CARD, CARD, TypeGraph]; BuildRIBProcType: TYPE = PROC[REF ANY] RETURNS[RIB]; BuildScopeProcType: TYPE = PROC[REF ANY] RETURNS[SCOPE]; BuildItemTableProcType: TYPE = PROC[REF ANY] RETURNS[SCOPE]; BuildItemProcType: TYPE = PROC[REF ANY] RETURNS[ITEM]; BuildTypeGraphProcType: TYPE = PROC[REF ANY, CONTEXT] RETURNS[TypeGraph]; BuildNamedItemProcType: TYPE = PROC[REF ANY, CONTEXT] RETURNS[ROPE, TypeGraphNode, AbstractValue]; BuildTGNProcType: TYPE = PROC[REF ANY, CONTEXT] RETURNS[TypeGraphNode]; BuildAbstractValueProcType: TYPE = PROC[REF ANY, CONTEXT] RETURNS[AbstractValue]; END..