-- SaffronBaseDef.mesa -- Copyright Ó 1987 by Xerox Corporation. All rights reserved. -- Generated by Rauen.pa at September 1, 1988 6:23:00 pm PDT -- using ThreeCasabaFour [1.2] of June 1, 1987 6:00:00 pm PDT DIRECTORY SaffronTargetArchitecture, SaffronGenericDef, Rope, BigIntegers; SaffronBaseDef: CEDAR DEFINITIONS = BEGIN OPEN SaffronTargetArchitecture, SaffronGenericDef, Rope, BigIntegers; Error: PROC[ROPE] RETURNS[BOOLEAN]; NullId: PROC RETURNS[IdNode]; True: PROC RETURNS[BOOLEAN]; False: PROC RETURNS[BOOLEAN]; And: PROC[BOOLEAN, BOOLEAN] RETURNS[BOOLEAN]; Or: PROC[BOOLEAN, BOOLEAN] RETURNS[BOOLEAN]; Not: PROC[BOOLEAN] RETURNS[BOOLEAN]; RopeFromId: PROC[IdNode] RETURNS[ROPE]; RopeFromString: PROC[StringNode] RETURNS[ROPE]; RopeFromDecimalnum: PROC[DecimalnumNode] RETURNS[ROPE]; RopeFromOctalnum: PROC[OctalnumNode] RETURNS[ROPE]; RopeFromHexnum: PROC[HexnumNode] RETURNS[ROPE]; RopeFromFlnum: PROC[FlnumNode] RETURNS[ROPE]; StringFromId: PROC[IdNode] RETURNS[StringNode]; IdFromRope: PROC[ROPE] RETURNS[IdNode]; MakeUnparsedNullValue: PROC RETURNS[ValueNode]; ScopePTreeNode: TYPE = REF ScopePTreeNodeBody; ScopePTreeNodeBody: TYPE; ModulePPTreeNode: TYPE = REF ModulePPTreeNodeBody; ModulePPTreeNodeBody: TYPE; ReadDefFile: PROC[ROPE] RETURNS[ModulePPTreeNode]; DefBodyPTreeNode: TYPE = REF DefBodyPTreeNodeBody; DefBodyPTreeNodeBody: TYPE; TypeExpPTreeNode: TYPE = REF TypeExpPTreeNodeBody; TypeExpPTreeNodeBody: TYPE; BogusTypeExpPTree: PROC RETURNS[TypeExpPTreeNode]; InitializationPTreeNode: TYPE = REF InitializationPTreeNodeBody; InitializationPTreeNodeBody: TYPE; DeclarationPTreeNode: TYPE = REF DeclarationPTreeNodeBody; DeclarationPTreeNodeBody: TYPE; EnvironmentNode: TYPE = REF EnvironmentNodeBody; EnvironmentNodeBody: TYPE; FakeDamageEnvironment: PROC[EnvironmentNode] RETURNS[EnvironmentNode]; CreateEmptyEnvironment: PROC RETURNS[EnvironmentNode]; AddCompiledDefinitionsFileToEnvironment: PROC[EnvironmentNode, ROPE, ContextTreeNode] RETURNS[EnvironmentNode]; AddCompiledImplementationFileToEnvironment: PROC[EnvironmentNode, ROPE, ContextTreeNode, ProgramGraphNode] RETURNS[EnvironmentNode]; IsCompiledFileInEnv: PROC[EnvironmentNode, ROPE] RETURNS[BOOLEAN]; LookupCompiledFileInEnv: PROC[EnvironmentNode, ROPE] RETURNS[ContextTreeNode]; LookupInterfaceInEnv: PROC[EnvironmentNode, ROPE, IdNode] RETURNS[TypeGraphNodeNode]; InterfaceValNode: TYPE = REF InterfaceValNodeBody; InterfaceValNodeBody: TYPE; LookupInterfaceEntry: PROC[TypeGraphNodeNode, IdNode] RETURNS[AccessValNode, TypeGraphNodeNode]; CreateEmptyInterfaceTGN: PROC[LocalContextNode] RETURNS[LocalContextNode, TypeGraphNodeNode]; CreateLinkTGN: PROC[LocalContextNode, TypeGraphNodeNode, InterfaceValNode, IdNode] RETURNS[LocalContextNode, TypeGraphNodeNode]; AddTGNToInterfaceTGN: PROC[LocalContextNode, TypeGraphNodeNode, IdNode, AccessValNode, TypeGraphNodeNode] RETURNS[LocalContextNode]; CreateInterfaceTGNFromInterface: PROC[LocalContextNode, InterfaceValNode] RETURNS[LocalContextNode, TypeGraphNodeNode]; RenameInterface: PROC[LocalContextNode, IdNode, TypeGraphNodeNode] RETURNS[LocalContextNode]; OpenInterface: PROC[LocalContextNode, TypeGraphNodeNode] RETURNS[LocalContextNode]; ContextRibNode: TYPE = REF ContextRibNodeBody; ContextRibNodeBody: TYPE; SetUpRootContext: PROC[CompilerStateNode] RETURNS[ContextRibNode, CompilerStateNode]; LocalContextNode: TYPE = REF LocalContextNodeBody; LocalContextNodeBody: TYPE; CreateEmptyContext: PROC[ContextRibNode, BOOLEAN] RETURNS[LocalContextNode]; FreezeLocalContext: PROC[LocalContextNode, TypeGraphNodeNode] RETURNS[ContextRibNode]; FakeDamageContext: PROC[LocalContextNode] RETURNS[LocalContextNode]; ParentRib: PROC[LocalContextNode] RETURNS[ContextRibNode]; ContextTreeNode: TYPE = REF ContextTreeNodeBody; ContextTreeNodeBody: TYPE; EmptyContextTree: PROC[ContextRibNode] RETURNS[ContextTreeNode]; AddSubContextTree: PROC[ContextTreeNode, ContextTreeNode] RETURNS[ContextTreeNode]; FakeDamageContextTree: PROC[ContextTreeNode] RETURNS[ContextTreeNode]; Rib: PROC[ContextTreeNode] RETURNS[ContextRibNode]; TypeGraphNodeNode: TYPE = REF TypeGraphNodeNodeBody; TypeGraphNodeNodeBody: TYPE; TypeGraphNodeListNode: TYPE = REF TypeGraphNodeListNodeBody; TypeGraphNodeListNodeBody: TYPE; AddIdToRestrictionList: PROC[IdNode, TypeGraphNodeNode] RETURNS[TypeGraphNodeNode]; AddAllIdsToRestrictionList: PROC[TypeGraphNodeNode] RETURNS[TypeGraphNodeNode]; FakeDamageTypeGraphNode: PROC[TypeGraphNodeNode] RETURNS[TypeGraphNodeNode]; CreateArrayTGN: PROC[LocalContextNode, BOOLEAN, TypeGraphNodeNode, TypeGraphNodeNode] RETURNS[LocalContextNode, TypeGraphNodeNode]; CreateBlockTGN: PROC[LocalContextNode, FrozenFieldListNode] RETURNS[LocalContextNode, TypeGraphNodeNode]; CreateDescriptorTGN: PROC[LocalContextNode, BOOLEAN, TypeGraphNodeNode] RETURNS[LocalContextNode, TypeGraphNodeNode]; CreateSubrangeTGN: PROC[LocalContextNode, TypeGraphNodeNode, BoundsValNode] RETURNS[LocalContextNode, TypeGraphNodeNode]; CreateEmptyEnumTypeTGN: PROC[LocalContextNode, BOOLEAN] RETURNS[LocalContextNode, TypeGraphNodeNode]; AppendElementToEnumTypeTGN: PROC[LocalContextNode, TypeGraphNodeNode, IdNode, ValueNode] RETURNS[LocalContextNode]; First: PROC[TypeGraphNodeNode] RETURNS[ValueNode]; Last: PROC[TypeGraphNodeNode] RETURNS[ValueNode]; CreateIdentifierTGN: PROC[LocalContextNode, IdNode] RETURNS[LocalContextNode, TypeGraphNodeNode]; CreateImplementationTGN: PROC[LocalContextNode, BOOLEAN, TypeGraphNodeNode, ROPE, ROPE, ROPE, ROPE] RETURNS[LocalContextNode, TypeGraphNodeNode]; CreateInterfaceTGN: PROC[LocalContextNode, BOOLEAN, ROPE, ROPE, ROPE] RETURNS[LocalContextNode, TypeGraphNodeNode]; CreateInterfaceContentsTGN: PROC[LocalContextNode, FrozenFieldListNode] RETURNS[LocalContextNode, TypeGraphNodeNode]; CreateListTGN: PROC[LocalContextNode, BOOLEAN, TypeGraphNodeNode] RETURNS[LocalContextNode, TypeGraphNodeNode]; CreateLongTGN: PROC[LocalContextNode, TypeGraphNodeNode] RETURNS[LocalContextNode, TypeGraphNodeNode]; CreateModuleTGN: PROC[LocalContextNode, FrozenFieldListNode] RETURNS[LocalContextNode, TypeGraphNodeNode]; CreateNamedTGN: PROC[LocalContextNode, IdNode, PositionValNode, AccessValNode, TypeGraphNodeNode, DefaultExpNode] RETURNS[LocalContextNode, TypeGraphNodeNode]; CreateOpaqueTGN: PROC[LocalContextNode, PaintNode, ValueNode] RETURNS[LocalContextNode, TypeGraphNodeNode]; CreatePointerTGN: PROC[LocalContextNode, BOOLEAN, BOOLEAN, BoundsValNode, BOOLEAN, TypeGraphNodeNode] RETURNS[LocalContextNode, TypeGraphNodeNode]; CreateRecordTGN: PROC[LocalContextNode, PaintNode, BOOLEAN, BOOLEAN, FrozenFieldListNode] RETURNS[LocalContextNode, TypeGraphNodeNode]; CreateRefTGN: PROC[LocalContextNode, BOOLEAN, TypeGraphNodeNode] RETURNS[LocalContextNode, TypeGraphNodeNode]; CreateRelativeTGN: PROC[LocalContextNode, TypeGraphNodeNode, TypeGraphNodeNode] RETURNS[LocalContextNode, TypeGraphNodeNode]; CreateSequenceTGN: PROC[LocalContextNode, BOOLEAN, IdNode, PositionValNode, AccessValNode, TypeGraphNodeNode, TypeGraphNodeNode] RETURNS[LocalContextNode, TypeGraphNodeNode]; CreateSpecianatedTGNUsingExp: PROC[LocalContextNode, TypeGraphNodeNode, ValueNode] RETURNS[LocalContextNode, TypeGraphNodeNode]; CreateSpecianatedTGNUsingId: PROC[LocalContextNode, TypeGraphNodeNode, IdNode] RETURNS[LocalContextNode, TypeGraphNodeNode]; CreateTransferTGN: PROC[LocalContextNode, BOOLEAN, ROPE, FrozenFieldListNode, FrozenFieldListNode] RETURNS[LocalContextNode, TypeGraphNodeNode]; CreateVarTGN: PROC[LocalContextNode, TypeGraphNodeNode] RETURNS[LocalContextNode, TypeGraphNodeNode]; CreateVariantPartTGN: PROC[LocalContextNode, VariantFlavorNode, TypeGraphNodeNode, UnionListNode] RETURNS[LocalContextNode, TypeGraphNodeNode]; CreateZoneTGN: PROC[LocalContextNode, BOOLEAN] RETURNS[LocalContextNode, TypeGraphNodeNode]; FindFrameTGN: PROC[LocalContextNode, IdNode] RETURNS[TypeGraphNodeNode]; ValueNode: TYPE = REF ValueNodeBody; ValueNodeBody: TYPE; Static: PROC[ValueNode] RETURNS[BOOLEAN]; Type: PROC[ValueNode] RETURNS[TypeGraphNodeNode]; Code: PROC[ValueNode] RETURNS[ProgramFragmentNode]; IsTrash: PROC[ValueNode] RETURNS[BOOLEAN]; ChangeType: PROC[ValueNode, TypeGraphNodeNode] RETURNS[ValueNode]; RopeFromValue: PROC[ValueNode] RETURNS[ROPE]; MakeDummy: PROC[ROPE] RETURNS[ValueNode]; MakeTrash: PROC[TypeGraphNodeNode] RETURNS[ValueNode]; MakeDefaultMeValue: PROC RETURNS[ValueNode]; MakeRuntimeValue: PROC[ProgramFragmentNode, TypeGraphNodeNode] RETURNS[ValueNode]; DummyBigINT: PROC RETURNS[BigINT]; ParseIntegerLiteral: PROC[ROPE, INT] RETURNS[BigINT]; CastIntegerValue: PROC[BigINT, TypeGraphNodeListNode] RETURNS[ValueNode]; CanCastIntegerValue: PROC[BigINT, TypeGraphNodeNode] RETURNS[BOOLEAN]; RetrieveIntegerValue: PROC[ValueNode] RETURNS[BigINT]; MakeStaticBoolean: PROC[BOOLEAN, TypeGraphNodeNode] RETURNS[ValueNode]; BooleanValue: PROC[ValueNode] RETURNS[BOOLEAN]; MakeStaticCharacter: PROC[CHARACTER, TypeGraphNodeNode] RETURNS[ValueNode]; CharacterValue: PROC[ValueNode] RETURNS[CHARACTER]; Pred: PROC[ValueNode] RETURNS[ValueNode]; Succ: PROC[ValueNode] RETURNS[ValueNode]; MakeTransferValue: PROC[TypeGraphNodeNode, ProcedureGraphNode] RETURNS[ValueNode]; FieldNode: TYPE = REF FieldNodeBody; FieldNodeBody: TYPE; FieldListNode: TYPE = REF FieldListNodeBody; FieldListNodeBody: TYPE; FrozenFieldListNode: TYPE = REF FrozenFieldListNodeBody; FrozenFieldListNodeBody: TYPE; CreateEmptyFieldList: PROC RETURNS[FieldListNode]; FakeDamageFieldList: PROC[FieldListNode] RETURNS[FieldListNode]; AnyFieldList: PROC RETURNS[FieldListNode]; AppendFieldToFieldList: PROC[FieldListNode, FieldNode] RETURNS[FieldListNode]; FreezeFieldList: PROC[FieldListNode] RETURNS[FrozenFieldListNode]; FakeDamageField: PROC[FieldNode] RETURNS[FieldNode]; CreateNamedTypeField: PROC[IdNode, PositionValNode, AccessValNode, TypeGraphNodeNode, TypeExpPTreeNode] RETURNS[FieldNode]; CreateModuleField: PROC[IdNode, PositionValNode, TypeGraphNodeNode] RETURNS[FieldNode]; CreateConstantField: PROC[IdNode, PositionValNode, DeclarationPTreeNode, AccessValNode, TypeGraphNodeNode, InitializationPTreeNode] RETURNS[FieldNode]; CreateVariableField: PROC[IdNode, PositionValNode, DeclarationPTreeNode, AccessValNode, TypeGraphNodeNode, InitializationPTreeNode] RETURNS[FieldNode]; CreateNamedField: PROC[IdNode, PositionValNode, AccessValNode, TypeGraphNodeNode, DefaultExpNode] RETURNS[FieldNode]; CreateUnnamedField: PROC[TypeGraphNodeNode, DefaultExpNode] RETURNS[FieldNode]; DemandTypeDeclarationField: PROC[FieldNode] RETURNS[AccessValNode, TypeGraphNodeNode]; DemandConstantField: PROC[FieldNode] RETURNS[AccessValNode, TypeGraphNodeNode, InitializationPTreeNode, ValueNode]; DemandConstantOrVariableField: PROC[FieldNode] RETURNS[AccessValNode, TypeGraphNodeNode, InitializationPTreeNode, BOOLEAN]; FieldExists: PROC[FieldNode] RETURNS[BOOLEAN]; FieldType: PROC[FieldNode] RETURNS[TypeGraphNodeNode]; LookupNameInFieldList: PROC[FieldListNode, IdNode] RETURNS[FieldNode]; LookupNameInContextRib: PROC[IdNode, ContextRibNode] RETURNS[FieldNode]; UnionListNode: TYPE = REF UnionListNodeBody; UnionListNodeBody: TYPE; CreateEmptyUnionList: PROC RETURNS[UnionListNode]; AppendToUnionList: PROC[UnionListNode, IdNode, FrozenFieldListNode] RETURNS[UnionListNode]; VariantFlavorNode: TYPE = REF VariantFlavorNodeBody; VariantFlavorNodeBody: TYPE; OverlaidVariantFlavorConst: PROC RETURNS[VariantFlavorNode]; ComputedVariantFlavorConst: PROC RETURNS[VariantFlavorNode]; VanillaVariantFlavorVal: PROC[IdNode, PositionValNode, AccessValNode] RETURNS[VariantFlavorNode]; PaintNode: TYPE = REF PaintNodeBody; PaintNodeBody: TYPE; GetUnpaintedPaint: PROC[LocalContextNode] RETURNS[LocalContextNode, PaintNode]; GetUniquePaint: PROC[LocalContextNode] RETURNS[LocalContextNode, PaintNode]; BoundsValNode: TYPE = REF BoundsValNodeBody; BoundsValNodeBody: TYPE; NullBounds: PROC RETURNS[BoundsValNode]; BoundsValFun: PROC[ROPE, ValueNode, ValueNode, ROPE] RETURNS[BoundsValNode]; PositionValNode: TYPE = REF PositionValNodeBody; PositionValNodeBody: TYPE; NullPosition: PROC RETURNS[PositionValNode]; PositionValFun: PROC[ValueNode, BoundsValNode] RETURNS[PositionValNode]; AccessValNode: TYPE = REF AccessValNodeBody; AccessValNodeBody: TYPE; AccessValConst: PROC[ROPE] RETURNS[AccessValNode]; NullAccessVal: PROC RETURNS[AccessValNode]; FakeCopyAccessVal: PROC[AccessValNode] RETURNS[AccessValNode]; DefaultExpNode: TYPE = REF DefaultExpNodeBody; DefaultExpNodeBody: TYPE; DefaultExpVal: PROC[ROPE, ValueNode] RETURNS[DefaultExpNode]; NullDefaultVal: PROC RETURNS[DefaultExpNode]; NameSequenceNode: TYPE = REF NameSequenceNodeBody; NameSequenceNodeBody: TYPE; EmptyNameSequence: PROC RETURNS[NameSequenceNode]; InsertNameOnNameSequence: PROC[IdNode, NameSequenceNode] RETURNS[NameSequenceNode]; CompilerStateNode: TYPE = REF CompilerStateNodeBody; CompilerStateNodeBody: TYPE; FakeDamageCompilerState: PROC[CompilerStateNode] RETURNS[CompilerStateNode]; MakeCompilerState: PROC[TargetArchitecture, ROPE] RETURNS[CompilerStateNode]; GetTargetArchitecture: PROC[CompilerStateNode] RETURNS[TargetArchitecture]; GetRootContextRib: PROC[CompilerStateNode] RETURNS[ContextRibNode]; GetIntrinsicAtomType: PROC[CompilerStateNode] RETURNS[TypeGraphNodeNode]; GetIntrinsicBooleanType: PROC[CompilerStateNode] RETURNS[TypeGraphNodeNode]; GetIntrinsicCharacterType: PROC[CompilerStateNode] RETURNS[TypeGraphNodeNode]; GetIntrinsicIntegerTypes: PROC[CompilerStateNode] RETURNS[TypeGraphNodeListNode]; GetIntrinsicRealTypes: PROC[CompilerStateNode] RETURNS[TypeGraphNodeListNode]; GetTop: PROC[CompilerStateNode] RETURNS[TypeGraphNodeNode]; GetBottom: PROC[CompilerStateNode] RETURNS[TypeGraphNodeNode]; GetDefaultAccess: PROC[CompilerStateNode] RETURNS[AccessValNode]; ProgramGraphNode: TYPE = REF ProgramGraphNodeBody; ProgramGraphNodeBody: TYPE; ProcedureGraphNode: TYPE = REF ProcedureGraphNodeBody; ProcedureGraphNodeBody: TYPE; ProgramFragmentNode: TYPE = REF ProgramFragmentNodeBody; ProgramFragmentNodeBody: TYPE; ParameterizedFieldDescriptorNode: TYPE = REF ParameterizedFieldDescriptorNodeBody; ParameterizedFieldDescriptorNodeBody: TYPE; RelationOp: TYPE = {eq, ne, lt, le, gt, ge}; DemandNumber: PROC[ValueNode] RETURNS[ValueNode]; ConformsToInteger: PROC[TypeGraphNodeNode] RETURNS[BOOLEAN]; DemandBoolean: PROC[ValueNode] RETURNS[ValueNode]; NumberOfBits: PROC[TypeGraphNodeNode, ValueNode, CompilerStateNode] RETURNS[ValueNode]; NumberOfBytes: PROC[TypeGraphNodeNode, ValueNode, CompilerStateNode] RETURNS[ValueNode]; NumberOfWords: PROC[TypeGraphNodeNode, ValueNode, CompilerStateNode] RETURNS[ValueNode]; DependencyGraphNode: TYPE = REF DependencyGraphNodeBody; DependencyGraphNodeBody: TYPE; DependencyGraphNodeNode: TYPE = REF DependencyGraphNodeNodeBody; DependencyGraphNodeNodeBody: TYPE; FakeDamageDependencyGraph: PROC[DependencyGraphNode] RETURNS[DependencyGraphNode]; AddSizeDependency: PROC[DependencyGraphNode, DependencyGraphNodeNode, IdNode] RETURNS[DependencyGraphNode]; AddFirstDependency: PROC[DependencyGraphNode, DependencyGraphNodeNode, IdNode] RETURNS[DependencyGraphNode]; AddLastDependency: PROC[DependencyGraphNode, DependencyGraphNodeNode, IdNode] RETURNS[DependencyGraphNode]; AddRuntimeDependency: PROC[DependencyGraphNode, DependencyGraphNodeNode] RETURNS[DependencyGraphNode]; AddValueDependency: PROC[DependencyGraphNode, DependencyGraphNodeNode, IdNode] RETURNS[DependencyGraphNode]; CompileLValueIntoRValue: PROC[ParameterizedFieldDescriptorNode, ContextTreeNode] RETURNS[ValueNode]; GetPathToName: PROC[ContextTreeNode, IdNode] RETURNS[ParameterizedFieldDescriptorNode, TypeGraphNodeNode]; LookupIdentifierTGNs: PROC[FieldListNode, LocalContextNode] RETURNS[FieldListNode]; DiscernSpecianatedTGNs: PROC[FieldListNode, LocalContextNode] RETURNS[FieldListNode]; BuildDependencyGraph: PROC[FieldListNode, LocalContextNode] RETURNS[DependencyGraphNode]; AnalyzeDependencies: PROC[DependencyGraphNode, FieldListNode, LocalContextNode, CompilerStateNode] RETURNS[FieldListNode, LocalContextNode]; SetLocalContextContents: PROC[LocalContextNode, TypeGraphNodeNode] RETURNS[LocalContextNode]; FindAFieldCorrespondingToDeclaration: PROC[ContextTreeNode, DeclarationPTreeNode] RETURNS[FieldNode]; CompileDefaultInitialization: PROC[TypeGraphNodeNode] RETURNS[ValueNode]; END..