<> <> <> <> Include [ SaffronBaseDecls ]; SaffronTreeDecls: Module = Begin DoTop: TreeRecursiveFunction [ Tree ] Returns [ BOOLEAN ]; NewScope: TreeRecursiveFunction [ Tree, RibContext, TypeGraph.a ] Returns [ ContextTree, TypeGraph ] DamagedReps [ TypeGraph.a ]; PreprocessDecls: TreeRecursiveFunction [ Tree, LocalContext.a, TypeGraph.a ] Returns [ LocalContext.b, TypeGraph.b ] DamagedReps [ LocalContext.a, TypeGraph.a ]; InsertDescriptor: TreeRecursiveFunction [ Tree, Descriptor, LocalContext.a ] Returns [ LocalContext.b ] DamagedReps [ LocalContext.a ]; ReplaceDescriptor: TreeRecursiveFunction [ Tree, Descriptor, LocalContext.a ] Returns [ LocalContext.b ] DamagedReps [ LocalContext.a ]; ProcessDecls: TreeRecursiveFunction [ Tree, LocalContext.a, RibContext, TypeGraph.a ] Returns [ LocalContext.b, TypeGraph.b ] DamagedReps [ LocalContext.a, TypeGraph.a ]; ProcessOneDecl: TreeRecursiveFunction [ Tree, TypeIndex, LocalContext.a, RibContext, TypeGraph.a ] Returns [ LocalContext.b, TypeGraph.b ] DamagedReps [ LocalContext.a, TypeGraph.a ]; MakeType: TreeRecursiveFunction [ Tree, LocalContext.a, RibContext, TypeGraph.a, TypeIndex.opt ] Returns [ TypeIndex, LocalContext.b, TypeGraph.b ] DamagedReps [ LocalContext.a, TypeGraph.a ]; MakeValue: TreeRecursiveFunction [ Tree, LocalContext.a, RibContext, TypeGraph.a, TypeIndex ] Returns [ Value, LocalContext.b, TypeGraph.b ] DamagedReps [ LocalContext.a, TypeGraph.a ]; MakeFieldList: TreeRecursiveFunction [ Tree, LocalContext.a, RibContext, TypeGraph.a ] Returns [ FieldList, LocalContext.b, TypeGraph.b ] DamagedReps [ LocalContext.a, TypeGraph.a ]; MakeNamedFieldList: TreeRecursiveFunction [ Tree, NamedFieldList.a, LocalContext.a, RibContext, TypeGraph.a ] Returns [ NamedFieldList.b, LocalContext.b, TypeGraph.b ] DamagedReps [ NamedFieldList.a, LocalContext.a, TypeGraph.a ]; MakeUnnamedFieldList: TreeRecursiveFunction [ Tree, UnnamedFieldList.a, LocalContext.a, RibContext, TypeGraph.a ] Returns [ UnnamedFieldList.b, LocalContext.b, TypeGraph.b ] DamagedReps [ UnnamedFieldList.a, LocalContext.a, TypeGraph.a ]; AddToNamedFieldList: TreeRecursiveFunction [ Tree, TypeIndex, NamedFieldList.a ] Returns [ NamedFieldList.b ] DamagedReps [ NamedFieldList.a ]; MakeEltList: TreeRecursiveFunction [ Tree ] Returns [ EltList ]; InsertElement: TreeRecursiveFunction [ Tree, EltList.a ] Returns [ EltList.b ] DamagedReps [ EltList.a ]; MakeTypeInterval: TreeRecursiveFunction [ Tree, TypeIndex, LocalContext.a, RibContext, TypeGraph.a ] Returns [ TypeNode, TypeBounds, LocalContext.b, TypeGraph.b ] DamagedReps [ LocalContext.a, TypeGraph.a ]; MakeTypeBounds: TreeRecursiveFunction [ Tree, BOOLEAN.leftClosed, BOOLEAN.rightClosed, TypeIndex.a, LocalContext.a, RibContext, TypeGraph.a ] Returns [ TypeNode, TypeBounds, LocalContext.b, TypeGraph.b ] DamagedReps [ LocalContext.a, TypeGraph.a ]; MakeTypeBound: TreeRecursiveFunction [ Tree, TypeIndex, LocalContext.a, RibContext, TypeGraph.a ] Returns [ OrdinalValue, LocalContext.b, TypeGraph.b ] DamagedReps [ LocalContext.a, TypeGraph.a ]; End. <>